From ddb2d6e61a67330bfff9966706262f4bcc8829c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Konrad=20Go=C5=82awski?= Date: Wed, 15 Jun 2022 13:01:22 +0200 Subject: [PATCH] New LUKS v1 modules --- OpenCL/inc_luks_aes.cl | 144 +++++------ OpenCL/inc_luks_serpent.cl | 144 +++++------ OpenCL/inc_luks_twofish.cl | 144 +++++------ OpenCL/m14611-pure.cl | 19 +- OpenCL/m14612-pure.cl | 19 +- OpenCL/m14613-pure.cl | 19 +- OpenCL/m14621-pure.cl | 19 +- OpenCL/m14622-pure.cl | 19 +- OpenCL/m14623-pure.cl | 19 +- OpenCL/m14631-pure.cl | 19 +- OpenCL/m14632-pure.cl | 19 +- OpenCL/m14633-pure.cl | 19 +- OpenCL/m14641-pure.cl | 19 +- OpenCL/m14642-pure.cl | 19 +- OpenCL/m14643-pure.cl | 19 +- docs/changes.txt | 2 + src/modules/module_14600.c | 23 +- src/modules/module_29511.c | 491 +++++++++++++++++++++++++++++++++++++ src/modules/module_29512.c | 471 +++++++++++++++++++++++++++++++++++ src/modules/module_29513.c | 471 +++++++++++++++++++++++++++++++++++ src/modules/module_29521.c | 471 +++++++++++++++++++++++++++++++++++ src/modules/module_29522.c | 471 +++++++++++++++++++++++++++++++++++ src/modules/module_29523.c | 471 +++++++++++++++++++++++++++++++++++ src/modules/module_29531.c | 471 +++++++++++++++++++++++++++++++++++ src/modules/module_29532.c | 471 +++++++++++++++++++++++++++++++++++ src/modules/module_29533.c | 471 +++++++++++++++++++++++++++++++++++ src/modules/module_29541.c | 471 +++++++++++++++++++++++++++++++++++ src/modules/module_29542.c | 471 +++++++++++++++++++++++++++++++++++ src/modules/module_29543.c | 471 +++++++++++++++++++++++++++++++++++ tools/luks2hashcat.py | 328 +++++++++++++++++++++++++ tools/test.sh | 234 +++++++++++++++++- 31 files changed, 6599 insertions(+), 320 deletions(-) create mode 100644 src/modules/module_29511.c create mode 100644 src/modules/module_29512.c create mode 100644 src/modules/module_29513.c create mode 100644 src/modules/module_29521.c create mode 100644 src/modules/module_29522.c create mode 100644 src/modules/module_29523.c create mode 100644 src/modules/module_29531.c create mode 100644 src/modules/module_29532.c create mode 100644 src/modules/module_29533.c create mode 100644 src/modules/module_29541.c create mode 100644 src/modules/module_29542.c create mode 100644 src/modules/module_29543.c create mode 100755 tools/luks2hashcat.py diff --git a/OpenCL/inc_luks_aes.cl b/OpenCL/inc_luks_aes.cl index 9ba6bbc30..34c1cce3b 100644 --- a/OpenCL/inc_luks_aes.cl +++ b/OpenCL/inc_luks_aes.cl @@ -2571,7 +2571,7 @@ DECLSPEC void luks_af_sha1_then_aes_decrypt (GLOBAL_AS const luks_t *luks_bufs, u32 mk[16] = { 0 }; - if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_ESSIV) + if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256) { if (key_size == HC_LUKS_KEY_SIZE_128) { @@ -2597,10 +2597,10 @@ DECLSPEC void luks_af_sha1_then_aes_decrypt (GLOBAL_AS const luks_t *luks_bufs, for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_aes_cbc_essiv128_mk_sha1 (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); + luks_decrypt_sector_aes_cbc_essiv128_mk_sha1 (luks_bufs->af_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } - luks_decrypt_sector_aes_cbc_essiv128_mk_sha1_final (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); + luks_decrypt_sector_aes_cbc_essiv128_mk_sha1_final (luks_bufs->af_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } else if (key_size == HC_LUKS_KEY_SIZE_256) { @@ -2630,13 +2630,13 @@ DECLSPEC void luks_af_sha1_then_aes_decrypt (GLOBAL_AS const luks_t *luks_bufs, for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_aes_cbc_essiv256_mk_sha1 (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); + luks_decrypt_sector_aes_cbc_essiv256_mk_sha1 (luks_bufs->af_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } - luks_decrypt_sector_aes_cbc_essiv256_mk_sha1_final (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); + luks_decrypt_sector_aes_cbc_essiv256_mk_sha1_final (luks_bufs->af_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } } - else if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN) + else if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN || cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN64) { if (key_size == HC_LUKS_KEY_SIZE_128) { @@ -2656,10 +2656,10 @@ DECLSPEC void luks_af_sha1_then_aes_decrypt (GLOBAL_AS const luks_t *luks_bufs, for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_aes_cbc_plain128_mk_sha1 (luks_bufs->af_src_buf + offset, mk, ks1, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); + luks_decrypt_sector_aes_cbc_plain128_mk_sha1 (luks_bufs->af_buf + offset, mk, ks1, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } - luks_decrypt_sector_aes_cbc_plain128_mk_sha1_final (luks_bufs->af_src_buf + offset, mk, ks1, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); + luks_decrypt_sector_aes_cbc_plain128_mk_sha1_final (luks_bufs->af_buf + offset, mk, ks1, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } else if (key_size == HC_LUKS_KEY_SIZE_256) { @@ -2683,13 +2683,13 @@ DECLSPEC void luks_af_sha1_then_aes_decrypt (GLOBAL_AS const luks_t *luks_bufs, for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_aes_cbc_plain256_mk_sha1 (luks_bufs->af_src_buf + offset, mk, ks1, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); + luks_decrypt_sector_aes_cbc_plain256_mk_sha1 (luks_bufs->af_buf + offset, mk, ks1, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } - luks_decrypt_sector_aes_cbc_plain256_mk_sha1_final (luks_bufs->af_src_buf + offset, mk, ks1, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); + luks_decrypt_sector_aes_cbc_plain256_mk_sha1_final (luks_bufs->af_buf + offset, mk, ks1, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } } - else if (cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN) + else if (cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN || cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN64) { if (key_size == HC_LUKS_KEY_SIZE_256) { @@ -2718,10 +2718,10 @@ DECLSPEC void luks_af_sha1_then_aes_decrypt (GLOBAL_AS const luks_t *luks_bufs, for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_aes_xts_plain256_mk_sha1 (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); + luks_decrypt_sector_aes_xts_plain256_mk_sha1 (luks_bufs->af_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } - luks_decrypt_sector_aes_xts_plain256_mk_sha1_final (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); + luks_decrypt_sector_aes_xts_plain256_mk_sha1_final (luks_bufs->af_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } else if (key_size == HC_LUKS_KEY_SIZE_512) { @@ -2758,16 +2758,16 @@ DECLSPEC void luks_af_sha1_then_aes_decrypt (GLOBAL_AS const luks_t *luks_bufs, for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_aes_xts_plain512_mk_sha1 (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); + luks_decrypt_sector_aes_xts_plain512_mk_sha1 (luks_bufs->af_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } - luks_decrypt_sector_aes_xts_plain512_mk_sha1_final (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); + luks_decrypt_sector_aes_xts_plain512_mk_sha1_final (luks_bufs->af_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } } // decrypt payload data - if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_ESSIV) + if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256) { if (key_size == HC_LUKS_KEY_SIZE_128) { @@ -2824,7 +2824,7 @@ DECLSPEC void luks_af_sha1_then_aes_decrypt (GLOBAL_AS const luks_t *luks_bufs, luks_decrypt_sector_aes_cbc_essiv256 (luks_bufs->ct_buf, pt_buf, ks1, ks2, 0, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } } - else if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN) + else if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN || cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN64) { if (key_size == HC_LUKS_KEY_SIZE_128) { @@ -2869,7 +2869,7 @@ DECLSPEC void luks_af_sha1_then_aes_decrypt (GLOBAL_AS const luks_t *luks_bufs, luks_decrypt_sector_aes_cbc_plain256 (luks_bufs->ct_buf, pt_buf, ks1, 0, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } } - else if (cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN) + else if (cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN || cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN64) { if (key_size == HC_LUKS_KEY_SIZE_256) { @@ -2962,7 +2962,7 @@ DECLSPEC void luks_af_sha256_then_aes_decrypt (GLOBAL_AS const luks_t *luks_bufs u32 mk[16] = { 0 }; - if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_ESSIV) + if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256) { if (key_size == HC_LUKS_KEY_SIZE_128) { @@ -2988,10 +2988,10 @@ DECLSPEC void luks_af_sha256_then_aes_decrypt (GLOBAL_AS const luks_t *luks_bufs for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_aes_cbc_essiv128_mk_sha256 (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); + luks_decrypt_sector_aes_cbc_essiv128_mk_sha256 (luks_bufs->af_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } - luks_decrypt_sector_aes_cbc_essiv128_mk_sha256_final (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); + luks_decrypt_sector_aes_cbc_essiv128_mk_sha256_final (luks_bufs->af_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } else if (key_size == HC_LUKS_KEY_SIZE_256) { @@ -3021,13 +3021,13 @@ DECLSPEC void luks_af_sha256_then_aes_decrypt (GLOBAL_AS const luks_t *luks_bufs for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_aes_cbc_essiv256_mk_sha256 (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); + luks_decrypt_sector_aes_cbc_essiv256_mk_sha256 (luks_bufs->af_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } - luks_decrypt_sector_aes_cbc_essiv256_mk_sha256_final (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); + luks_decrypt_sector_aes_cbc_essiv256_mk_sha256_final (luks_bufs->af_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } } - else if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN) + else if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN || cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN64) { if (key_size == HC_LUKS_KEY_SIZE_128) { @@ -3047,10 +3047,10 @@ DECLSPEC void luks_af_sha256_then_aes_decrypt (GLOBAL_AS const luks_t *luks_bufs for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_aes_cbc_plain128_mk_sha256 (luks_bufs->af_src_buf + offset, mk, ks1, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); + luks_decrypt_sector_aes_cbc_plain128_mk_sha256 (luks_bufs->af_buf + offset, mk, ks1, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } - luks_decrypt_sector_aes_cbc_plain128_mk_sha256_final (luks_bufs->af_src_buf + offset, mk, ks1, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); + luks_decrypt_sector_aes_cbc_plain128_mk_sha256_final (luks_bufs->af_buf + offset, mk, ks1, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } else if (key_size == HC_LUKS_KEY_SIZE_256) { @@ -3074,13 +3074,13 @@ DECLSPEC void luks_af_sha256_then_aes_decrypt (GLOBAL_AS const luks_t *luks_bufs for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_aes_cbc_plain256_mk_sha256 (luks_bufs->af_src_buf + offset, mk, ks1, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); + luks_decrypt_sector_aes_cbc_plain256_mk_sha256 (luks_bufs->af_buf + offset, mk, ks1, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } - luks_decrypt_sector_aes_cbc_plain256_mk_sha256_final (luks_bufs->af_src_buf + offset, mk, ks1, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); + luks_decrypt_sector_aes_cbc_plain256_mk_sha256_final (luks_bufs->af_buf + offset, mk, ks1, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } } - else if (cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN) + else if (cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN || cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN64) { if (key_size == HC_LUKS_KEY_SIZE_256) { @@ -3109,10 +3109,10 @@ DECLSPEC void luks_af_sha256_then_aes_decrypt (GLOBAL_AS const luks_t *luks_bufs for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_aes_xts_plain256_mk_sha256 (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); + luks_decrypt_sector_aes_xts_plain256_mk_sha256 (luks_bufs->af_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } - luks_decrypt_sector_aes_xts_plain256_mk_sha256_final (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); + luks_decrypt_sector_aes_xts_plain256_mk_sha256_final (luks_bufs->af_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } else if (key_size == HC_LUKS_KEY_SIZE_512) { @@ -3149,16 +3149,16 @@ DECLSPEC void luks_af_sha256_then_aes_decrypt (GLOBAL_AS const luks_t *luks_bufs for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_aes_xts_plain512_mk_sha256 (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); + luks_decrypt_sector_aes_xts_plain512_mk_sha256 (luks_bufs->af_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } - luks_decrypt_sector_aes_xts_plain512_mk_sha256_final (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); + luks_decrypt_sector_aes_xts_plain512_mk_sha256_final (luks_bufs->af_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } } // decrypt payload data - if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_ESSIV) + if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256) { if (key_size == HC_LUKS_KEY_SIZE_128) { @@ -3207,7 +3207,7 @@ DECLSPEC void luks_af_sha256_then_aes_decrypt (GLOBAL_AS const luks_t *luks_bufs luks_decrypt_sector_aes_cbc_essiv256 (luks_bufs->ct_buf, pt_buf, ks1, ks2, 0, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } } - else if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN) + else if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN || cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN64) { if (key_size == HC_LUKS_KEY_SIZE_128) { @@ -3244,7 +3244,7 @@ DECLSPEC void luks_af_sha256_then_aes_decrypt (GLOBAL_AS const luks_t *luks_bufs luks_decrypt_sector_aes_cbc_plain256 (luks_bufs->ct_buf, pt_buf, ks1, 0, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } } - else if (cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN) + else if (cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN || cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN64) { if (key_size == HC_LUKS_KEY_SIZE_256) { @@ -3340,7 +3340,7 @@ DECLSPEC void luks_af_sha512_then_aes_decrypt (GLOBAL_AS const luks_t *luks_bufs u32 mk[16] = { 0 }; - if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_ESSIV) + if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256) { if (key_size == HC_LUKS_KEY_SIZE_128) { @@ -3366,10 +3366,10 @@ DECLSPEC void luks_af_sha512_then_aes_decrypt (GLOBAL_AS const luks_t *luks_bufs for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_aes_cbc_essiv128_mk_sha512 (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); + luks_decrypt_sector_aes_cbc_essiv128_mk_sha512 (luks_bufs->af_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } - luks_decrypt_sector_aes_cbc_essiv128_mk_sha512_final (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); + luks_decrypt_sector_aes_cbc_essiv128_mk_sha512_final (luks_bufs->af_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } else if (key_size == HC_LUKS_KEY_SIZE_256) { @@ -3399,13 +3399,13 @@ DECLSPEC void luks_af_sha512_then_aes_decrypt (GLOBAL_AS const luks_t *luks_bufs for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_aes_cbc_essiv256_mk_sha512 (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); + luks_decrypt_sector_aes_cbc_essiv256_mk_sha512 (luks_bufs->af_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } - luks_decrypt_sector_aes_cbc_essiv256_mk_sha512_final (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); + luks_decrypt_sector_aes_cbc_essiv256_mk_sha512_final (luks_bufs->af_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } } - else if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN) + else if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN || cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN64) { if (key_size == HC_LUKS_KEY_SIZE_128) { @@ -3425,10 +3425,10 @@ DECLSPEC void luks_af_sha512_then_aes_decrypt (GLOBAL_AS const luks_t *luks_bufs for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_aes_cbc_plain128_mk_sha512 (luks_bufs->af_src_buf + offset, mk, ks1, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); + luks_decrypt_sector_aes_cbc_plain128_mk_sha512 (luks_bufs->af_buf + offset, mk, ks1, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } - luks_decrypt_sector_aes_cbc_plain128_mk_sha512_final (luks_bufs->af_src_buf + offset, mk, ks1, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); + luks_decrypt_sector_aes_cbc_plain128_mk_sha512_final (luks_bufs->af_buf + offset, mk, ks1, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } else if (key_size == HC_LUKS_KEY_SIZE_256) { @@ -3452,13 +3452,13 @@ DECLSPEC void luks_af_sha512_then_aes_decrypt (GLOBAL_AS const luks_t *luks_bufs for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_aes_cbc_plain256_mk_sha512 (luks_bufs->af_src_buf + offset, mk, ks1, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); + luks_decrypt_sector_aes_cbc_plain256_mk_sha512 (luks_bufs->af_buf + offset, mk, ks1, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } - luks_decrypt_sector_aes_cbc_plain256_mk_sha512_final (luks_bufs->af_src_buf + offset, mk, ks1, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); + luks_decrypt_sector_aes_cbc_plain256_mk_sha512_final (luks_bufs->af_buf + offset, mk, ks1, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } } - else if (cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN) + else if (cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN || cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN64) { if (key_size == HC_LUKS_KEY_SIZE_256) { @@ -3487,10 +3487,10 @@ DECLSPEC void luks_af_sha512_then_aes_decrypt (GLOBAL_AS const luks_t *luks_bufs for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_aes_xts_plain256_mk_sha512 (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); + luks_decrypt_sector_aes_xts_plain256_mk_sha512 (luks_bufs->af_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } - luks_decrypt_sector_aes_xts_plain256_mk_sha512_final (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); + luks_decrypt_sector_aes_xts_plain256_mk_sha512_final (luks_bufs->af_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } else if (key_size == HC_LUKS_KEY_SIZE_512) { @@ -3527,16 +3527,16 @@ DECLSPEC void luks_af_sha512_then_aes_decrypt (GLOBAL_AS const luks_t *luks_bufs for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_aes_xts_plain512_mk_sha512 (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); + luks_decrypt_sector_aes_xts_plain512_mk_sha512 (luks_bufs->af_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } - luks_decrypt_sector_aes_xts_plain512_mk_sha512_final (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); + luks_decrypt_sector_aes_xts_plain512_mk_sha512_final (luks_bufs->af_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } } // decrypt payload data - if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_ESSIV) + if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256) { if (key_size == HC_LUKS_KEY_SIZE_128) { @@ -3585,7 +3585,7 @@ DECLSPEC void luks_af_sha512_then_aes_decrypt (GLOBAL_AS const luks_t *luks_bufs luks_decrypt_sector_aes_cbc_essiv256 (luks_bufs->ct_buf, pt_buf, ks1, ks2, 0, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } } - else if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN) + else if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN || cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN64) { if (key_size == HC_LUKS_KEY_SIZE_128) { @@ -3622,7 +3622,7 @@ DECLSPEC void luks_af_sha512_then_aes_decrypt (GLOBAL_AS const luks_t *luks_bufs luks_decrypt_sector_aes_cbc_plain256 (luks_bufs->ct_buf, pt_buf, ks1, 0, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } } - else if (cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN) + else if (cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN || cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN64) { if (key_size == HC_LUKS_KEY_SIZE_256) { @@ -3699,7 +3699,7 @@ DECLSPEC void luks_af_ripemd160_then_aes_decrypt (GLOBAL_AS const luks_t *luks_b u32 mk[16] = { 0 }; - if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_ESSIV) + if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256) { if (key_size == HC_LUKS_KEY_SIZE_128) { @@ -3725,10 +3725,10 @@ DECLSPEC void luks_af_ripemd160_then_aes_decrypt (GLOBAL_AS const luks_t *luks_b for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_aes_cbc_essiv128_mk_ripemd160 (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); + luks_decrypt_sector_aes_cbc_essiv128_mk_ripemd160 (luks_bufs->af_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } - luks_decrypt_sector_aes_cbc_essiv128_mk_ripemd160_final (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); + luks_decrypt_sector_aes_cbc_essiv128_mk_ripemd160_final (luks_bufs->af_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } else if (key_size == HC_LUKS_KEY_SIZE_256) { @@ -3758,13 +3758,13 @@ DECLSPEC void luks_af_ripemd160_then_aes_decrypt (GLOBAL_AS const luks_t *luks_b for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_aes_cbc_essiv256_mk_ripemd160 (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); + luks_decrypt_sector_aes_cbc_essiv256_mk_ripemd160 (luks_bufs->af_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } - luks_decrypt_sector_aes_cbc_essiv256_mk_ripemd160_final (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); + luks_decrypt_sector_aes_cbc_essiv256_mk_ripemd160_final (luks_bufs->af_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } } - else if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN) + else if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN || cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN64) { if (key_size == HC_LUKS_KEY_SIZE_128) { @@ -3784,10 +3784,10 @@ DECLSPEC void luks_af_ripemd160_then_aes_decrypt (GLOBAL_AS const luks_t *luks_b for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_aes_cbc_plain128_mk_ripemd160 (luks_bufs->af_src_buf + offset, mk, ks1, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); + luks_decrypt_sector_aes_cbc_plain128_mk_ripemd160 (luks_bufs->af_buf + offset, mk, ks1, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } - luks_decrypt_sector_aes_cbc_plain128_mk_ripemd160_final (luks_bufs->af_src_buf + offset, mk, ks1, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); + luks_decrypt_sector_aes_cbc_plain128_mk_ripemd160_final (luks_bufs->af_buf + offset, mk, ks1, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } else if (key_size == HC_LUKS_KEY_SIZE_256) { @@ -3811,13 +3811,13 @@ DECLSPEC void luks_af_ripemd160_then_aes_decrypt (GLOBAL_AS const luks_t *luks_b for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_aes_cbc_plain256_mk_ripemd160 (luks_bufs->af_src_buf + offset, mk, ks1, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); + luks_decrypt_sector_aes_cbc_plain256_mk_ripemd160 (luks_bufs->af_buf + offset, mk, ks1, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } - luks_decrypt_sector_aes_cbc_plain256_mk_ripemd160_final (luks_bufs->af_src_buf + offset, mk, ks1, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); + luks_decrypt_sector_aes_cbc_plain256_mk_ripemd160_final (luks_bufs->af_buf + offset, mk, ks1, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } } - else if (cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN) + else if (cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN || cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN64) { if (key_size == HC_LUKS_KEY_SIZE_256) { @@ -3846,10 +3846,10 @@ DECLSPEC void luks_af_ripemd160_then_aes_decrypt (GLOBAL_AS const luks_t *luks_b for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_aes_xts_plain256_mk_ripemd160 (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); + luks_decrypt_sector_aes_xts_plain256_mk_ripemd160 (luks_bufs->af_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } - luks_decrypt_sector_aes_xts_plain256_mk_ripemd160_final (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); + luks_decrypt_sector_aes_xts_plain256_mk_ripemd160_final (luks_bufs->af_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } else if (key_size == HC_LUKS_KEY_SIZE_512) { @@ -3886,16 +3886,16 @@ DECLSPEC void luks_af_ripemd160_then_aes_decrypt (GLOBAL_AS const luks_t *luks_b for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_aes_xts_plain512_mk_ripemd160 (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); + luks_decrypt_sector_aes_xts_plain512_mk_ripemd160 (luks_bufs->af_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } - luks_decrypt_sector_aes_xts_plain512_mk_ripemd160_final (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); + luks_decrypt_sector_aes_xts_plain512_mk_ripemd160_final (luks_bufs->af_buf + offset, mk, ks1, ks2, sector, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } } // decrypt payload data - if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_ESSIV) + if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256) { if (key_size == HC_LUKS_KEY_SIZE_128) { @@ -3944,7 +3944,7 @@ DECLSPEC void luks_af_ripemd160_then_aes_decrypt (GLOBAL_AS const luks_t *luks_b luks_decrypt_sector_aes_cbc_essiv256 (luks_bufs->ct_buf, pt_buf, ks1, ks2, 0, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } } - else if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN) + else if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN || cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN64) { if (key_size == HC_LUKS_KEY_SIZE_128) { @@ -3981,7 +3981,7 @@ DECLSPEC void luks_af_ripemd160_then_aes_decrypt (GLOBAL_AS const luks_t *luks_b luks_decrypt_sector_aes_cbc_plain256 (luks_bufs->ct_buf, pt_buf, ks1, 0, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } } - else if (cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN) + else if (cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN || cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN64) { if (key_size == HC_LUKS_KEY_SIZE_256) { diff --git a/OpenCL/inc_luks_serpent.cl b/OpenCL/inc_luks_serpent.cl index fc1c02616..9270dd49e 100644 --- a/OpenCL/inc_luks_serpent.cl +++ b/OpenCL/inc_luks_serpent.cl @@ -2567,7 +2567,7 @@ DECLSPEC void luks_af_sha1_then_serpent_decrypt (GLOBAL_AS const luks_t *luks_bu u32 mk[16] = { 0 }; - if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_ESSIV) + if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256) { if (key_size == HC_LUKS_KEY_SIZE_128) { @@ -2593,10 +2593,10 @@ DECLSPEC void luks_af_sha1_then_serpent_decrypt (GLOBAL_AS const luks_t *luks_bu for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_serpent_cbc_essiv128_mk_sha1 (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector); + luks_decrypt_sector_serpent_cbc_essiv128_mk_sha1 (luks_bufs->af_buf + offset, mk, ks1, ks2, sector); } - luks_decrypt_sector_serpent_cbc_essiv128_mk_sha1_final (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector); + luks_decrypt_sector_serpent_cbc_essiv128_mk_sha1_final (luks_bufs->af_buf + offset, mk, ks1, ks2, sector); } else if (key_size == HC_LUKS_KEY_SIZE_256) { @@ -2626,13 +2626,13 @@ DECLSPEC void luks_af_sha1_then_serpent_decrypt (GLOBAL_AS const luks_t *luks_bu for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_serpent_cbc_essiv256_mk_sha1 (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector); + luks_decrypt_sector_serpent_cbc_essiv256_mk_sha1 (luks_bufs->af_buf + offset, mk, ks1, ks2, sector); } - luks_decrypt_sector_serpent_cbc_essiv256_mk_sha1_final (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector); + luks_decrypt_sector_serpent_cbc_essiv256_mk_sha1_final (luks_bufs->af_buf + offset, mk, ks1, ks2, sector); } } - else if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN) + else if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN || cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN64) { if (key_size == HC_LUKS_KEY_SIZE_128) { @@ -2652,10 +2652,10 @@ DECLSPEC void luks_af_sha1_then_serpent_decrypt (GLOBAL_AS const luks_t *luks_bu for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_serpent_cbc_plain128_mk_sha1 (luks_bufs->af_src_buf + offset, mk, ks1, sector); + luks_decrypt_sector_serpent_cbc_plain128_mk_sha1 (luks_bufs->af_buf + offset, mk, ks1, sector); } - luks_decrypt_sector_serpent_cbc_plain128_mk_sha1_final (luks_bufs->af_src_buf + offset, mk, ks1, sector); + luks_decrypt_sector_serpent_cbc_plain128_mk_sha1_final (luks_bufs->af_buf + offset, mk, ks1, sector); } else if (key_size == HC_LUKS_KEY_SIZE_256) { @@ -2679,13 +2679,13 @@ DECLSPEC void luks_af_sha1_then_serpent_decrypt (GLOBAL_AS const luks_t *luks_bu for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_serpent_cbc_plain256_mk_sha1 (luks_bufs->af_src_buf + offset, mk, ks1, sector); + luks_decrypt_sector_serpent_cbc_plain256_mk_sha1 (luks_bufs->af_buf + offset, mk, ks1, sector); } - luks_decrypt_sector_serpent_cbc_plain256_mk_sha1_final (luks_bufs->af_src_buf + offset, mk, ks1, sector); + luks_decrypt_sector_serpent_cbc_plain256_mk_sha1_final (luks_bufs->af_buf + offset, mk, ks1, sector); } } - else if (cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN) + else if (cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN || cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN64) { if (key_size == HC_LUKS_KEY_SIZE_256) { @@ -2714,10 +2714,10 @@ DECLSPEC void luks_af_sha1_then_serpent_decrypt (GLOBAL_AS const luks_t *luks_bu for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_serpent_xts_plain256_mk_sha1 (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector); + luks_decrypt_sector_serpent_xts_plain256_mk_sha1 (luks_bufs->af_buf + offset, mk, ks1, ks2, sector); } - luks_decrypt_sector_serpent_xts_plain256_mk_sha1_final (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector); + luks_decrypt_sector_serpent_xts_plain256_mk_sha1_final (luks_bufs->af_buf + offset, mk, ks1, ks2, sector); } else if (key_size == HC_LUKS_KEY_SIZE_512) { @@ -2754,16 +2754,16 @@ DECLSPEC void luks_af_sha1_then_serpent_decrypt (GLOBAL_AS const luks_t *luks_bu for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_serpent_xts_plain512_mk_sha1 (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector); + luks_decrypt_sector_serpent_xts_plain512_mk_sha1 (luks_bufs->af_buf + offset, mk, ks1, ks2, sector); } - luks_decrypt_sector_serpent_xts_plain512_mk_sha1_final (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector); + luks_decrypt_sector_serpent_xts_plain512_mk_sha1_final (luks_bufs->af_buf + offset, mk, ks1, ks2, sector); } } // decrypt payload data - if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_ESSIV) + if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256) { if (key_size == HC_LUKS_KEY_SIZE_128) { @@ -2812,7 +2812,7 @@ DECLSPEC void luks_af_sha1_then_serpent_decrypt (GLOBAL_AS const luks_t *luks_bu luks_decrypt_sector_serpent_cbc_essiv256 (luks_bufs->ct_buf, pt_buf, ks1, ks2, 0); } } - else if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN) + else if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN || cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN64) { if (key_size == HC_LUKS_KEY_SIZE_128) { @@ -2849,7 +2849,7 @@ DECLSPEC void luks_af_sha1_then_serpent_decrypt (GLOBAL_AS const luks_t *luks_bu luks_decrypt_sector_serpent_cbc_plain256 (luks_bufs->ct_buf, pt_buf, ks1, 0); } } - else if (cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN) + else if (cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN || cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN64) { if (key_size == HC_LUKS_KEY_SIZE_256) { @@ -2926,7 +2926,7 @@ DECLSPEC void luks_af_sha256_then_serpent_decrypt (GLOBAL_AS const luks_t *luks_ u32 mk[16] = { 0 }; - if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_ESSIV) + if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256) { if (key_size == HC_LUKS_KEY_SIZE_128) { @@ -2952,10 +2952,10 @@ DECLSPEC void luks_af_sha256_then_serpent_decrypt (GLOBAL_AS const luks_t *luks_ for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_serpent_cbc_essiv128_mk_sha256 (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector); + luks_decrypt_sector_serpent_cbc_essiv128_mk_sha256 (luks_bufs->af_buf + offset, mk, ks1, ks2, sector); } - luks_decrypt_sector_serpent_cbc_essiv128_mk_sha256_final (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector); + luks_decrypt_sector_serpent_cbc_essiv128_mk_sha256_final (luks_bufs->af_buf + offset, mk, ks1, ks2, sector); } else if (key_size == HC_LUKS_KEY_SIZE_256) { @@ -2985,13 +2985,13 @@ DECLSPEC void luks_af_sha256_then_serpent_decrypt (GLOBAL_AS const luks_t *luks_ for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_serpent_cbc_essiv256_mk_sha256 (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector); + luks_decrypt_sector_serpent_cbc_essiv256_mk_sha256 (luks_bufs->af_buf + offset, mk, ks1, ks2, sector); } - luks_decrypt_sector_serpent_cbc_essiv256_mk_sha256_final (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector); + luks_decrypt_sector_serpent_cbc_essiv256_mk_sha256_final (luks_bufs->af_buf + offset, mk, ks1, ks2, sector); } } - else if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN) + else if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN || cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN64) { if (key_size == HC_LUKS_KEY_SIZE_128) { @@ -3011,10 +3011,10 @@ DECLSPEC void luks_af_sha256_then_serpent_decrypt (GLOBAL_AS const luks_t *luks_ for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_serpent_cbc_plain128_mk_sha256 (luks_bufs->af_src_buf + offset, mk, ks1, sector); + luks_decrypt_sector_serpent_cbc_plain128_mk_sha256 (luks_bufs->af_buf + offset, mk, ks1, sector); } - luks_decrypt_sector_serpent_cbc_plain128_mk_sha256_final (luks_bufs->af_src_buf + offset, mk, ks1, sector); + luks_decrypt_sector_serpent_cbc_plain128_mk_sha256_final (luks_bufs->af_buf + offset, mk, ks1, sector); } else if (key_size == HC_LUKS_KEY_SIZE_256) { @@ -3038,13 +3038,13 @@ DECLSPEC void luks_af_sha256_then_serpent_decrypt (GLOBAL_AS const luks_t *luks_ for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_serpent_cbc_plain256_mk_sha256 (luks_bufs->af_src_buf + offset, mk, ks1, sector); + luks_decrypt_sector_serpent_cbc_plain256_mk_sha256 (luks_bufs->af_buf + offset, mk, ks1, sector); } - luks_decrypt_sector_serpent_cbc_plain256_mk_sha256_final (luks_bufs->af_src_buf + offset, mk, ks1, sector); + luks_decrypt_sector_serpent_cbc_plain256_mk_sha256_final (luks_bufs->af_buf + offset, mk, ks1, sector); } } - else if (cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN) + else if (cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN || cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN64) { if (key_size == HC_LUKS_KEY_SIZE_256) { @@ -3073,10 +3073,10 @@ DECLSPEC void luks_af_sha256_then_serpent_decrypt (GLOBAL_AS const luks_t *luks_ for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_serpent_xts_plain256_mk_sha256 (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector); + luks_decrypt_sector_serpent_xts_plain256_mk_sha256 (luks_bufs->af_buf + offset, mk, ks1, ks2, sector); } - luks_decrypt_sector_serpent_xts_plain256_mk_sha256_final (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector); + luks_decrypt_sector_serpent_xts_plain256_mk_sha256_final (luks_bufs->af_buf + offset, mk, ks1, ks2, sector); } else if (key_size == HC_LUKS_KEY_SIZE_512) { @@ -3113,16 +3113,16 @@ DECLSPEC void luks_af_sha256_then_serpent_decrypt (GLOBAL_AS const luks_t *luks_ for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_serpent_xts_plain512_mk_sha256 (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector); + luks_decrypt_sector_serpent_xts_plain512_mk_sha256 (luks_bufs->af_buf + offset, mk, ks1, ks2, sector); } - luks_decrypt_sector_serpent_xts_plain512_mk_sha256_final (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector); + luks_decrypt_sector_serpent_xts_plain512_mk_sha256_final (luks_bufs->af_buf + offset, mk, ks1, ks2, sector); } } // decrypt payload data - if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_ESSIV) + if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256) { if (key_size == HC_LUKS_KEY_SIZE_128) { @@ -3171,7 +3171,7 @@ DECLSPEC void luks_af_sha256_then_serpent_decrypt (GLOBAL_AS const luks_t *luks_ luks_decrypt_sector_serpent_cbc_essiv256 (luks_bufs->ct_buf, pt_buf, ks1, ks2, 0); } } - else if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN) + else if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN || cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN64) { if (key_size == HC_LUKS_KEY_SIZE_128) { @@ -3208,7 +3208,7 @@ DECLSPEC void luks_af_sha256_then_serpent_decrypt (GLOBAL_AS const luks_t *luks_ luks_decrypt_sector_serpent_cbc_plain256 (luks_bufs->ct_buf, pt_buf, ks1, 0); } } - else if (cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN) + else if (cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN || cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN64) { if (key_size == HC_LUKS_KEY_SIZE_256) { @@ -3304,7 +3304,7 @@ DECLSPEC void luks_af_sha512_then_serpent_decrypt (GLOBAL_AS const luks_t *luks_ u32 mk[16] = { 0 }; - if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_ESSIV) + if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256) { if (key_size == HC_LUKS_KEY_SIZE_128) { @@ -3330,10 +3330,10 @@ DECLSPEC void luks_af_sha512_then_serpent_decrypt (GLOBAL_AS const luks_t *luks_ for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_serpent_cbc_essiv128_mk_sha512 (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector); + luks_decrypt_sector_serpent_cbc_essiv128_mk_sha512 (luks_bufs->af_buf + offset, mk, ks1, ks2, sector); } - luks_decrypt_sector_serpent_cbc_essiv128_mk_sha512_final (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector); + luks_decrypt_sector_serpent_cbc_essiv128_mk_sha512_final (luks_bufs->af_buf + offset, mk, ks1, ks2, sector); } else if (key_size == HC_LUKS_KEY_SIZE_256) { @@ -3363,13 +3363,13 @@ DECLSPEC void luks_af_sha512_then_serpent_decrypt (GLOBAL_AS const luks_t *luks_ for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_serpent_cbc_essiv256_mk_sha512 (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector); + luks_decrypt_sector_serpent_cbc_essiv256_mk_sha512 (luks_bufs->af_buf + offset, mk, ks1, ks2, sector); } - luks_decrypt_sector_serpent_cbc_essiv256_mk_sha512_final (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector); + luks_decrypt_sector_serpent_cbc_essiv256_mk_sha512_final (luks_bufs->af_buf + offset, mk, ks1, ks2, sector); } } - else if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN) + else if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN || cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN64) { if (key_size == HC_LUKS_KEY_SIZE_128) { @@ -3389,10 +3389,10 @@ DECLSPEC void luks_af_sha512_then_serpent_decrypt (GLOBAL_AS const luks_t *luks_ for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_serpent_cbc_plain128_mk_sha512 (luks_bufs->af_src_buf + offset, mk, ks1, sector); + luks_decrypt_sector_serpent_cbc_plain128_mk_sha512 (luks_bufs->af_buf + offset, mk, ks1, sector); } - luks_decrypt_sector_serpent_cbc_plain128_mk_sha512_final (luks_bufs->af_src_buf + offset, mk, ks1, sector); + luks_decrypt_sector_serpent_cbc_plain128_mk_sha512_final (luks_bufs->af_buf + offset, mk, ks1, sector); } else if (key_size == HC_LUKS_KEY_SIZE_256) { @@ -3416,13 +3416,13 @@ DECLSPEC void luks_af_sha512_then_serpent_decrypt (GLOBAL_AS const luks_t *luks_ for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_serpent_cbc_plain256_mk_sha512 (luks_bufs->af_src_buf + offset, mk, ks1, sector); + luks_decrypt_sector_serpent_cbc_plain256_mk_sha512 (luks_bufs->af_buf + offset, mk, ks1, sector); } - luks_decrypt_sector_serpent_cbc_plain256_mk_sha512_final (luks_bufs->af_src_buf + offset, mk, ks1, sector); + luks_decrypt_sector_serpent_cbc_plain256_mk_sha512_final (luks_bufs->af_buf + offset, mk, ks1, sector); } } - else if (cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN) + else if (cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN || cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN64) { if (key_size == HC_LUKS_KEY_SIZE_256) { @@ -3451,10 +3451,10 @@ DECLSPEC void luks_af_sha512_then_serpent_decrypt (GLOBAL_AS const luks_t *luks_ for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_serpent_xts_plain256_mk_sha512 (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector); + luks_decrypt_sector_serpent_xts_plain256_mk_sha512 (luks_bufs->af_buf + offset, mk, ks1, ks2, sector); } - luks_decrypt_sector_serpent_xts_plain256_mk_sha512_final (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector); + luks_decrypt_sector_serpent_xts_plain256_mk_sha512_final (luks_bufs->af_buf + offset, mk, ks1, ks2, sector); } else if (key_size == HC_LUKS_KEY_SIZE_512) { @@ -3491,16 +3491,16 @@ DECLSPEC void luks_af_sha512_then_serpent_decrypt (GLOBAL_AS const luks_t *luks_ for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_serpent_xts_plain512_mk_sha512 (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector); + luks_decrypt_sector_serpent_xts_plain512_mk_sha512 (luks_bufs->af_buf + offset, mk, ks1, ks2, sector); } - luks_decrypt_sector_serpent_xts_plain512_mk_sha512_final (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector); + luks_decrypt_sector_serpent_xts_plain512_mk_sha512_final (luks_bufs->af_buf + offset, mk, ks1, ks2, sector); } } // decrypt payload data - if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_ESSIV) + if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256) { if (key_size == HC_LUKS_KEY_SIZE_128) { @@ -3549,7 +3549,7 @@ DECLSPEC void luks_af_sha512_then_serpent_decrypt (GLOBAL_AS const luks_t *luks_ luks_decrypt_sector_serpent_cbc_essiv256 (luks_bufs->ct_buf, pt_buf, ks1, ks2, 0); } } - else if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN) + else if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN || cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN64) { if (key_size == HC_LUKS_KEY_SIZE_128) { @@ -3586,7 +3586,7 @@ DECLSPEC void luks_af_sha512_then_serpent_decrypt (GLOBAL_AS const luks_t *luks_ luks_decrypt_sector_serpent_cbc_plain256 (luks_bufs->ct_buf, pt_buf, ks1, 0); } } - else if (cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN) + else if (cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN || cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN64) { if (key_size == HC_LUKS_KEY_SIZE_256) { @@ -3663,7 +3663,7 @@ DECLSPEC void luks_af_ripemd160_then_serpent_decrypt (GLOBAL_AS const luks_t *lu u32 mk[16] = { 0 }; - if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_ESSIV) + if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256) { if (key_size == HC_LUKS_KEY_SIZE_128) { @@ -3689,10 +3689,10 @@ DECLSPEC void luks_af_ripemd160_then_serpent_decrypt (GLOBAL_AS const luks_t *lu for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_serpent_cbc_essiv128_mk_ripemd160 (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector); + luks_decrypt_sector_serpent_cbc_essiv128_mk_ripemd160 (luks_bufs->af_buf + offset, mk, ks1, ks2, sector); } - luks_decrypt_sector_serpent_cbc_essiv128_mk_ripemd160_final (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector); + luks_decrypt_sector_serpent_cbc_essiv128_mk_ripemd160_final (luks_bufs->af_buf + offset, mk, ks1, ks2, sector); } else if (key_size == HC_LUKS_KEY_SIZE_256) { @@ -3722,13 +3722,13 @@ DECLSPEC void luks_af_ripemd160_then_serpent_decrypt (GLOBAL_AS const luks_t *lu for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_serpent_cbc_essiv256_mk_ripemd160 (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector); + luks_decrypt_sector_serpent_cbc_essiv256_mk_ripemd160 (luks_bufs->af_buf + offset, mk, ks1, ks2, sector); } - luks_decrypt_sector_serpent_cbc_essiv256_mk_ripemd160_final (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector); + luks_decrypt_sector_serpent_cbc_essiv256_mk_ripemd160_final (luks_bufs->af_buf + offset, mk, ks1, ks2, sector); } } - else if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN) + else if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN || cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN64) { if (key_size == HC_LUKS_KEY_SIZE_128) { @@ -3748,10 +3748,10 @@ DECLSPEC void luks_af_ripemd160_then_serpent_decrypt (GLOBAL_AS const luks_t *lu for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_serpent_cbc_plain128_mk_ripemd160 (luks_bufs->af_src_buf + offset, mk, ks1, sector); + luks_decrypt_sector_serpent_cbc_plain128_mk_ripemd160 (luks_bufs->af_buf + offset, mk, ks1, sector); } - luks_decrypt_sector_serpent_cbc_plain128_mk_ripemd160_final (luks_bufs->af_src_buf + offset, mk, ks1, sector); + luks_decrypt_sector_serpent_cbc_plain128_mk_ripemd160_final (luks_bufs->af_buf + offset, mk, ks1, sector); } else if (key_size == HC_LUKS_KEY_SIZE_256) { @@ -3775,13 +3775,13 @@ DECLSPEC void luks_af_ripemd160_then_serpent_decrypt (GLOBAL_AS const luks_t *lu for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_serpent_cbc_plain256_mk_ripemd160 (luks_bufs->af_src_buf + offset, mk, ks1, sector); + luks_decrypt_sector_serpent_cbc_plain256_mk_ripemd160 (luks_bufs->af_buf + offset, mk, ks1, sector); } - luks_decrypt_sector_serpent_cbc_plain256_mk_ripemd160_final (luks_bufs->af_src_buf + offset, mk, ks1, sector); + luks_decrypt_sector_serpent_cbc_plain256_mk_ripemd160_final (luks_bufs->af_buf + offset, mk, ks1, sector); } } - else if (cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN) + else if (cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN || cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN64) { if (key_size == HC_LUKS_KEY_SIZE_256) { @@ -3810,10 +3810,10 @@ DECLSPEC void luks_af_ripemd160_then_serpent_decrypt (GLOBAL_AS const luks_t *lu for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_serpent_xts_plain256_mk_ripemd160 (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector); + luks_decrypt_sector_serpent_xts_plain256_mk_ripemd160 (luks_bufs->af_buf + offset, mk, ks1, ks2, sector); } - luks_decrypt_sector_serpent_xts_plain256_mk_ripemd160_final (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector); + luks_decrypt_sector_serpent_xts_plain256_mk_ripemd160_final (luks_bufs->af_buf + offset, mk, ks1, ks2, sector); } else if (key_size == HC_LUKS_KEY_SIZE_512) { @@ -3850,16 +3850,16 @@ DECLSPEC void luks_af_ripemd160_then_serpent_decrypt (GLOBAL_AS const luks_t *lu for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_serpent_xts_plain512_mk_ripemd160 (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector); + luks_decrypt_sector_serpent_xts_plain512_mk_ripemd160 (luks_bufs->af_buf + offset, mk, ks1, ks2, sector); } - luks_decrypt_sector_serpent_xts_plain512_mk_ripemd160_final (luks_bufs->af_src_buf + offset, mk, ks1, ks2, sector); + luks_decrypt_sector_serpent_xts_plain512_mk_ripemd160_final (luks_bufs->af_buf + offset, mk, ks1, ks2, sector); } } // decrypt payload data - if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_ESSIV) + if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256) { if (key_size == HC_LUKS_KEY_SIZE_128) { @@ -3908,7 +3908,7 @@ DECLSPEC void luks_af_ripemd160_then_serpent_decrypt (GLOBAL_AS const luks_t *lu luks_decrypt_sector_serpent_cbc_essiv256 (luks_bufs->ct_buf, pt_buf, ks1, ks2, 0); } } - else if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN) + else if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN || cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN64) { if (key_size == HC_LUKS_KEY_SIZE_128) { @@ -3945,7 +3945,7 @@ DECLSPEC void luks_af_ripemd160_then_serpent_decrypt (GLOBAL_AS const luks_t *lu luks_decrypt_sector_serpent_cbc_plain256 (luks_bufs->ct_buf, pt_buf, ks1, 0); } } - else if (cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN) + else if (cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN || cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN64) { if (key_size == HC_LUKS_KEY_SIZE_256) { diff --git a/OpenCL/inc_luks_twofish.cl b/OpenCL/inc_luks_twofish.cl index 2eed728a8..103e8d9a9 100644 --- a/OpenCL/inc_luks_twofish.cl +++ b/OpenCL/inc_luks_twofish.cl @@ -2567,7 +2567,7 @@ DECLSPEC void luks_af_sha1_then_twofish_decrypt (GLOBAL_AS const luks_t *luks_bu u32 mk[16] = { 0 }; - if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_ESSIV) + if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256) { if (key_size == HC_LUKS_KEY_SIZE_128) { @@ -2593,10 +2593,10 @@ DECLSPEC void luks_af_sha1_then_twofish_decrypt (GLOBAL_AS const luks_t *luks_bu for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_twofish_cbc_essiv128_mk_sha1 (luks_bufs->af_src_buf + offset, mk, sk1, lk1, sk2, lk2, sector); + luks_decrypt_sector_twofish_cbc_essiv128_mk_sha1 (luks_bufs->af_buf + offset, mk, sk1, lk1, sk2, lk2, sector); } - luks_decrypt_sector_twofish_cbc_essiv128_mk_sha1_final (luks_bufs->af_src_buf + offset, mk, sk1, lk1, sk2, lk2, sector); + luks_decrypt_sector_twofish_cbc_essiv128_mk_sha1_final (luks_bufs->af_buf + offset, mk, sk1, lk1, sk2, lk2, sector); } else if (key_size == HC_LUKS_KEY_SIZE_256) { @@ -2626,13 +2626,13 @@ DECLSPEC void luks_af_sha1_then_twofish_decrypt (GLOBAL_AS const luks_t *luks_bu for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_twofish_cbc_essiv256_mk_sha1 (luks_bufs->af_src_buf + offset, mk, sk1, lk1, sk2, lk2, sector); + luks_decrypt_sector_twofish_cbc_essiv256_mk_sha1 (luks_bufs->af_buf + offset, mk, sk1, lk1, sk2, lk2, sector); } - luks_decrypt_sector_twofish_cbc_essiv256_mk_sha1_final (luks_bufs->af_src_buf + offset, mk, sk1, lk1, sk2, lk2, sector); + luks_decrypt_sector_twofish_cbc_essiv256_mk_sha1_final (luks_bufs->af_buf + offset, mk, sk1, lk1, sk2, lk2, sector); } } - else if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN) + else if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN || cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN64) { if (key_size == HC_LUKS_KEY_SIZE_128) { @@ -2652,10 +2652,10 @@ DECLSPEC void luks_af_sha1_then_twofish_decrypt (GLOBAL_AS const luks_t *luks_bu for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_twofish_cbc_plain128_mk_sha1 (luks_bufs->af_src_buf + offset, mk, sk1, lk1, sector); + luks_decrypt_sector_twofish_cbc_plain128_mk_sha1 (luks_bufs->af_buf + offset, mk, sk1, lk1, sector); } - luks_decrypt_sector_twofish_cbc_plain128_mk_sha1_final (luks_bufs->af_src_buf + offset, mk, sk1, lk1, sector); + luks_decrypt_sector_twofish_cbc_plain128_mk_sha1_final (luks_bufs->af_buf + offset, mk, sk1, lk1, sector); } else if (key_size == HC_LUKS_KEY_SIZE_256) { @@ -2679,13 +2679,13 @@ DECLSPEC void luks_af_sha1_then_twofish_decrypt (GLOBAL_AS const luks_t *luks_bu for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_twofish_cbc_plain256_mk_sha1 (luks_bufs->af_src_buf + offset, mk, sk1, lk1, sector); + luks_decrypt_sector_twofish_cbc_plain256_mk_sha1 (luks_bufs->af_buf + offset, mk, sk1, lk1, sector); } - luks_decrypt_sector_twofish_cbc_plain256_mk_sha1_final (luks_bufs->af_src_buf + offset, mk, sk1, lk1, sector); + luks_decrypt_sector_twofish_cbc_plain256_mk_sha1_final (luks_bufs->af_buf + offset, mk, sk1, lk1, sector); } } - else if (cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN) + else if (cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN || cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN64) { if (key_size == HC_LUKS_KEY_SIZE_256) { @@ -2714,10 +2714,10 @@ DECLSPEC void luks_af_sha1_then_twofish_decrypt (GLOBAL_AS const luks_t *luks_bu for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_twofish_xts_plain256_mk_sha1 (luks_bufs->af_src_buf + offset, mk, sk1, lk1, sk2, lk2, sector); + luks_decrypt_sector_twofish_xts_plain256_mk_sha1 (luks_bufs->af_buf + offset, mk, sk1, lk1, sk2, lk2, sector); } - luks_decrypt_sector_twofish_xts_plain256_mk_sha1_final (luks_bufs->af_src_buf + offset, mk, sk1, lk1, sk2, lk2, sector); + luks_decrypt_sector_twofish_xts_plain256_mk_sha1_final (luks_bufs->af_buf + offset, mk, sk1, lk1, sk2, lk2, sector); } else if (key_size == HC_LUKS_KEY_SIZE_512) { @@ -2754,16 +2754,16 @@ DECLSPEC void luks_af_sha1_then_twofish_decrypt (GLOBAL_AS const luks_t *luks_bu for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_twofish_xts_plain512_mk_sha1 (luks_bufs->af_src_buf + offset, mk, sk1, lk1, sk2, lk2, sector); + luks_decrypt_sector_twofish_xts_plain512_mk_sha1 (luks_bufs->af_buf + offset, mk, sk1, lk1, sk2, lk2, sector); } - luks_decrypt_sector_twofish_xts_plain512_mk_sha1_final (luks_bufs->af_src_buf + offset, mk, sk1, lk1, sk2, lk2, sector); + luks_decrypt_sector_twofish_xts_plain512_mk_sha1_final (luks_bufs->af_buf + offset, mk, sk1, lk1, sk2, lk2, sector); } } // decrypt payload data - if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_ESSIV) + if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256) { if (key_size == HC_LUKS_KEY_SIZE_128) { @@ -2812,7 +2812,7 @@ DECLSPEC void luks_af_sha1_then_twofish_decrypt (GLOBAL_AS const luks_t *luks_bu luks_decrypt_sector_twofish_cbc_essiv256 (luks_bufs->ct_buf, pt_buf, sk1, lk1, sk2, lk2, 0); } } - else if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN) + else if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN || cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN64) { if (key_size == HC_LUKS_KEY_SIZE_128) { @@ -2849,7 +2849,7 @@ DECLSPEC void luks_af_sha1_then_twofish_decrypt (GLOBAL_AS const luks_t *luks_bu luks_decrypt_sector_twofish_cbc_plain256 (luks_bufs->ct_buf, pt_buf, sk1, lk1, 0); } } - else if (cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN) + else if (cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN || cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN64) { if (key_size == HC_LUKS_KEY_SIZE_256) { @@ -2926,7 +2926,7 @@ DECLSPEC void luks_af_sha256_then_twofish_decrypt (GLOBAL_AS const luks_t *luks_ u32 mk[16] = { 0 }; - if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_ESSIV) + if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256) { if (key_size == HC_LUKS_KEY_SIZE_128) { @@ -2952,10 +2952,10 @@ DECLSPEC void luks_af_sha256_then_twofish_decrypt (GLOBAL_AS const luks_t *luks_ for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_twofish_cbc_essiv128_mk_sha256 (luks_bufs->af_src_buf + offset, mk, sk1, lk1, sk2, lk2, sector); + luks_decrypt_sector_twofish_cbc_essiv128_mk_sha256 (luks_bufs->af_buf + offset, mk, sk1, lk1, sk2, lk2, sector); } - luks_decrypt_sector_twofish_cbc_essiv128_mk_sha256_final (luks_bufs->af_src_buf + offset, mk, sk1, lk1, sk2, lk2, sector); + luks_decrypt_sector_twofish_cbc_essiv128_mk_sha256_final (luks_bufs->af_buf + offset, mk, sk1, lk1, sk2, lk2, sector); } else if (key_size == HC_LUKS_KEY_SIZE_256) { @@ -2985,13 +2985,13 @@ DECLSPEC void luks_af_sha256_then_twofish_decrypt (GLOBAL_AS const luks_t *luks_ for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_twofish_cbc_essiv256_mk_sha256 (luks_bufs->af_src_buf + offset, mk, sk1, lk1, sk2, lk2, sector); + luks_decrypt_sector_twofish_cbc_essiv256_mk_sha256 (luks_bufs->af_buf + offset, mk, sk1, lk1, sk2, lk2, sector); } - luks_decrypt_sector_twofish_cbc_essiv256_mk_sha256_final (luks_bufs->af_src_buf + offset, mk, sk1, lk1, sk2, lk2, sector); + luks_decrypt_sector_twofish_cbc_essiv256_mk_sha256_final (luks_bufs->af_buf + offset, mk, sk1, lk1, sk2, lk2, sector); } } - else if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN) + else if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN || cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN64) { if (key_size == HC_LUKS_KEY_SIZE_128) { @@ -3011,10 +3011,10 @@ DECLSPEC void luks_af_sha256_then_twofish_decrypt (GLOBAL_AS const luks_t *luks_ for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_twofish_cbc_plain128_mk_sha256 (luks_bufs->af_src_buf + offset, mk, sk1, lk1, sector); + luks_decrypt_sector_twofish_cbc_plain128_mk_sha256 (luks_bufs->af_buf + offset, mk, sk1, lk1, sector); } - luks_decrypt_sector_twofish_cbc_plain128_mk_sha256_final (luks_bufs->af_src_buf + offset, mk, sk1, lk1, sector); + luks_decrypt_sector_twofish_cbc_plain128_mk_sha256_final (luks_bufs->af_buf + offset, mk, sk1, lk1, sector); } else if (key_size == HC_LUKS_KEY_SIZE_256) { @@ -3038,13 +3038,13 @@ DECLSPEC void luks_af_sha256_then_twofish_decrypt (GLOBAL_AS const luks_t *luks_ for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_twofish_cbc_plain256_mk_sha256 (luks_bufs->af_src_buf + offset, mk, sk1, lk1, sector); + luks_decrypt_sector_twofish_cbc_plain256_mk_sha256 (luks_bufs->af_buf + offset, mk, sk1, lk1, sector); } - luks_decrypt_sector_twofish_cbc_plain256_mk_sha256_final (luks_bufs->af_src_buf + offset, mk, sk1, lk1, sector); + luks_decrypt_sector_twofish_cbc_plain256_mk_sha256_final (luks_bufs->af_buf + offset, mk, sk1, lk1, sector); } } - else if (cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN) + else if (cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN || cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN64) { if (key_size == HC_LUKS_KEY_SIZE_256) { @@ -3073,10 +3073,10 @@ DECLSPEC void luks_af_sha256_then_twofish_decrypt (GLOBAL_AS const luks_t *luks_ for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_twofish_xts_plain256_mk_sha256 (luks_bufs->af_src_buf + offset, mk, sk1, lk1, sk2, lk2, sector); + luks_decrypt_sector_twofish_xts_plain256_mk_sha256 (luks_bufs->af_buf + offset, mk, sk1, lk1, sk2, lk2, sector); } - luks_decrypt_sector_twofish_xts_plain256_mk_sha256_final (luks_bufs->af_src_buf + offset, mk, sk1, lk1, sk2, lk2, sector); + luks_decrypt_sector_twofish_xts_plain256_mk_sha256_final (luks_bufs->af_buf + offset, mk, sk1, lk1, sk2, lk2, sector); } else if (key_size == HC_LUKS_KEY_SIZE_512) { @@ -3113,16 +3113,16 @@ DECLSPEC void luks_af_sha256_then_twofish_decrypt (GLOBAL_AS const luks_t *luks_ for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_twofish_xts_plain512_mk_sha256 (luks_bufs->af_src_buf + offset, mk, sk1, lk1, sk2, lk2, sector); + luks_decrypt_sector_twofish_xts_plain512_mk_sha256 (luks_bufs->af_buf + offset, mk, sk1, lk1, sk2, lk2, sector); } - luks_decrypt_sector_twofish_xts_plain512_mk_sha256_final (luks_bufs->af_src_buf + offset, mk, sk1, lk1, sk2, lk2, sector); + luks_decrypt_sector_twofish_xts_plain512_mk_sha256_final (luks_bufs->af_buf + offset, mk, sk1, lk1, sk2, lk2, sector); } } // decrypt payload data - if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_ESSIV) + if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256) { if (key_size == HC_LUKS_KEY_SIZE_128) { @@ -3171,7 +3171,7 @@ DECLSPEC void luks_af_sha256_then_twofish_decrypt (GLOBAL_AS const luks_t *luks_ luks_decrypt_sector_twofish_cbc_essiv256 (luks_bufs->ct_buf, pt_buf, sk1, lk1, sk2, lk2, 0); } } - else if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN) + else if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN || cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN64) { if (key_size == HC_LUKS_KEY_SIZE_128) { @@ -3208,7 +3208,7 @@ DECLSPEC void luks_af_sha256_then_twofish_decrypt (GLOBAL_AS const luks_t *luks_ luks_decrypt_sector_twofish_cbc_plain256 (luks_bufs->ct_buf, pt_buf, sk1, lk1, 0); } } - else if (cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN) + else if (cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN || cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN64) { if (key_size == HC_LUKS_KEY_SIZE_256) { @@ -3304,7 +3304,7 @@ DECLSPEC void luks_af_sha512_then_twofish_decrypt (GLOBAL_AS const luks_t *luks_ u32 mk[16] = { 0 }; - if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_ESSIV) + if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256) { if (key_size == HC_LUKS_KEY_SIZE_128) { @@ -3330,10 +3330,10 @@ DECLSPEC void luks_af_sha512_then_twofish_decrypt (GLOBAL_AS const luks_t *luks_ for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_twofish_cbc_essiv128_mk_sha512 (luks_bufs->af_src_buf + offset, mk, sk1, lk1, sk2, lk2, sector); + luks_decrypt_sector_twofish_cbc_essiv128_mk_sha512 (luks_bufs->af_buf + offset, mk, sk1, lk1, sk2, lk2, sector); } - luks_decrypt_sector_twofish_cbc_essiv128_mk_sha512_final (luks_bufs->af_src_buf + offset, mk, sk1, lk1, sk2, lk2, sector); + luks_decrypt_sector_twofish_cbc_essiv128_mk_sha512_final (luks_bufs->af_buf + offset, mk, sk1, lk1, sk2, lk2, sector); } else if (key_size == HC_LUKS_KEY_SIZE_256) { @@ -3363,13 +3363,13 @@ DECLSPEC void luks_af_sha512_then_twofish_decrypt (GLOBAL_AS const luks_t *luks_ for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_twofish_cbc_essiv256_mk_sha512 (luks_bufs->af_src_buf + offset, mk, sk1, lk1, sk2, lk2, sector); + luks_decrypt_sector_twofish_cbc_essiv256_mk_sha512 (luks_bufs->af_buf + offset, mk, sk1, lk1, sk2, lk2, sector); } - luks_decrypt_sector_twofish_cbc_essiv256_mk_sha512_final (luks_bufs->af_src_buf + offset, mk, sk1, lk1, sk2, lk2, sector); + luks_decrypt_sector_twofish_cbc_essiv256_mk_sha512_final (luks_bufs->af_buf + offset, mk, sk1, lk1, sk2, lk2, sector); } } - else if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN) + else if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN || cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN64) { if (key_size == HC_LUKS_KEY_SIZE_128) { @@ -3389,10 +3389,10 @@ DECLSPEC void luks_af_sha512_then_twofish_decrypt (GLOBAL_AS const luks_t *luks_ for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_twofish_cbc_plain128_mk_sha512 (luks_bufs->af_src_buf + offset, mk, sk1, lk1, sector); + luks_decrypt_sector_twofish_cbc_plain128_mk_sha512 (luks_bufs->af_buf + offset, mk, sk1, lk1, sector); } - luks_decrypt_sector_twofish_cbc_plain128_mk_sha512_final (luks_bufs->af_src_buf + offset, mk, sk1, lk1, sector); + luks_decrypt_sector_twofish_cbc_plain128_mk_sha512_final (luks_bufs->af_buf + offset, mk, sk1, lk1, sector); } else if (key_size == HC_LUKS_KEY_SIZE_256) { @@ -3416,13 +3416,13 @@ DECLSPEC void luks_af_sha512_then_twofish_decrypt (GLOBAL_AS const luks_t *luks_ for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_twofish_cbc_plain256_mk_sha512 (luks_bufs->af_src_buf + offset, mk, sk1, lk1, sector); + luks_decrypt_sector_twofish_cbc_plain256_mk_sha512 (luks_bufs->af_buf + offset, mk, sk1, lk1, sector); } - luks_decrypt_sector_twofish_cbc_plain256_mk_sha512_final (luks_bufs->af_src_buf + offset, mk, sk1, lk1, sector); + luks_decrypt_sector_twofish_cbc_plain256_mk_sha512_final (luks_bufs->af_buf + offset, mk, sk1, lk1, sector); } } - else if (cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN) + else if (cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN || cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN64) { if (key_size == HC_LUKS_KEY_SIZE_256) { @@ -3451,10 +3451,10 @@ DECLSPEC void luks_af_sha512_then_twofish_decrypt (GLOBAL_AS const luks_t *luks_ for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_twofish_xts_plain256_mk_sha512 (luks_bufs->af_src_buf + offset, mk, sk1, lk1, sk2, lk2, sector); + luks_decrypt_sector_twofish_xts_plain256_mk_sha512 (luks_bufs->af_buf + offset, mk, sk1, lk1, sk2, lk2, sector); } - luks_decrypt_sector_twofish_xts_plain256_mk_sha512_final (luks_bufs->af_src_buf + offset, mk, sk1, lk1, sk2, lk2, sector); + luks_decrypt_sector_twofish_xts_plain256_mk_sha512_final (luks_bufs->af_buf + offset, mk, sk1, lk1, sk2, lk2, sector); } else if (key_size == HC_LUKS_KEY_SIZE_512) { @@ -3491,16 +3491,16 @@ DECLSPEC void luks_af_sha512_then_twofish_decrypt (GLOBAL_AS const luks_t *luks_ for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_twofish_xts_plain512_mk_sha512 (luks_bufs->af_src_buf + offset, mk, sk1, lk1, sk2, lk2, sector); + luks_decrypt_sector_twofish_xts_plain512_mk_sha512 (luks_bufs->af_buf + offset, mk, sk1, lk1, sk2, lk2, sector); } - luks_decrypt_sector_twofish_xts_plain512_mk_sha512_final (luks_bufs->af_src_buf + offset, mk, sk1, lk1, sk2, lk2, sector); + luks_decrypt_sector_twofish_xts_plain512_mk_sha512_final (luks_bufs->af_buf + offset, mk, sk1, lk1, sk2, lk2, sector); } } // decrypt payload data - if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_ESSIV) + if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256) { if (key_size == HC_LUKS_KEY_SIZE_128) { @@ -3549,7 +3549,7 @@ DECLSPEC void luks_af_sha512_then_twofish_decrypt (GLOBAL_AS const luks_t *luks_ luks_decrypt_sector_twofish_cbc_essiv256 (luks_bufs->ct_buf, pt_buf, sk1, lk1, sk2, lk2, 0); } } - else if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN) + else if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN || cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN64) { if (key_size == HC_LUKS_KEY_SIZE_128) { @@ -3586,7 +3586,7 @@ DECLSPEC void luks_af_sha512_then_twofish_decrypt (GLOBAL_AS const luks_t *luks_ luks_decrypt_sector_twofish_cbc_plain256 (luks_bufs->ct_buf, pt_buf, sk1, lk1, 0); } } - else if (cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN) + else if (cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN || cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN64) { if (key_size == HC_LUKS_KEY_SIZE_256) { @@ -3663,7 +3663,7 @@ DECLSPEC void luks_af_ripemd160_then_twofish_decrypt (GLOBAL_AS const luks_t *lu u32 mk[16] = { 0 }; - if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_ESSIV) + if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256) { if (key_size == HC_LUKS_KEY_SIZE_128) { @@ -3689,10 +3689,10 @@ DECLSPEC void luks_af_ripemd160_then_twofish_decrypt (GLOBAL_AS const luks_t *lu for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_twofish_cbc_essiv128_mk_ripemd160 (luks_bufs->af_src_buf + offset, mk, sk1, lk1, sk2, lk2, sector); + luks_decrypt_sector_twofish_cbc_essiv128_mk_ripemd160 (luks_bufs->af_buf + offset, mk, sk1, lk1, sk2, lk2, sector); } - luks_decrypt_sector_twofish_cbc_essiv128_mk_ripemd160_final (luks_bufs->af_src_buf + offset, mk, sk1, lk1, sk2, lk2, sector); + luks_decrypt_sector_twofish_cbc_essiv128_mk_ripemd160_final (luks_bufs->af_buf + offset, mk, sk1, lk1, sk2, lk2, sector); } else if (key_size == HC_LUKS_KEY_SIZE_256) { @@ -3722,13 +3722,13 @@ DECLSPEC void luks_af_ripemd160_then_twofish_decrypt (GLOBAL_AS const luks_t *lu for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_twofish_cbc_essiv256_mk_ripemd160 (luks_bufs->af_src_buf + offset, mk, sk1, lk1, sk2, lk2, sector); + luks_decrypt_sector_twofish_cbc_essiv256_mk_ripemd160 (luks_bufs->af_buf + offset, mk, sk1, lk1, sk2, lk2, sector); } - luks_decrypt_sector_twofish_cbc_essiv256_mk_ripemd160_final (luks_bufs->af_src_buf + offset, mk, sk1, lk1, sk2, lk2, sector); + luks_decrypt_sector_twofish_cbc_essiv256_mk_ripemd160_final (luks_bufs->af_buf + offset, mk, sk1, lk1, sk2, lk2, sector); } } - else if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN) + else if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN || cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN64) { if (key_size == HC_LUKS_KEY_SIZE_128) { @@ -3748,10 +3748,10 @@ DECLSPEC void luks_af_ripemd160_then_twofish_decrypt (GLOBAL_AS const luks_t *lu for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_twofish_cbc_plain128_mk_ripemd160 (luks_bufs->af_src_buf + offset, mk, sk1, lk1, sector); + luks_decrypt_sector_twofish_cbc_plain128_mk_ripemd160 (luks_bufs->af_buf + offset, mk, sk1, lk1, sector); } - luks_decrypt_sector_twofish_cbc_plain128_mk_ripemd160_final (luks_bufs->af_src_buf + offset, mk, sk1, lk1, sector); + luks_decrypt_sector_twofish_cbc_plain128_mk_ripemd160_final (luks_bufs->af_buf + offset, mk, sk1, lk1, sector); } else if (key_size == HC_LUKS_KEY_SIZE_256) { @@ -3775,13 +3775,13 @@ DECLSPEC void luks_af_ripemd160_then_twofish_decrypt (GLOBAL_AS const luks_t *lu for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_twofish_cbc_plain256_mk_ripemd160 (luks_bufs->af_src_buf + offset, mk, sk1, lk1, sector); + luks_decrypt_sector_twofish_cbc_plain256_mk_ripemd160 (luks_bufs->af_buf + offset, mk, sk1, lk1, sector); } - luks_decrypt_sector_twofish_cbc_plain256_mk_ripemd160_final (luks_bufs->af_src_buf + offset, mk, sk1, lk1, sector); + luks_decrypt_sector_twofish_cbc_plain256_mk_ripemd160_final (luks_bufs->af_buf + offset, mk, sk1, lk1, sector); } } - else if (cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN) + else if (cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN || cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN64) { if (key_size == HC_LUKS_KEY_SIZE_256) { @@ -3810,10 +3810,10 @@ DECLSPEC void luks_af_ripemd160_then_twofish_decrypt (GLOBAL_AS const luks_t *lu for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_twofish_xts_plain256_mk_ripemd160 (luks_bufs->af_src_buf + offset, mk, sk1, lk1, sk2, lk2, sector); + luks_decrypt_sector_twofish_xts_plain256_mk_ripemd160 (luks_bufs->af_buf + offset, mk, sk1, lk1, sk2, lk2, sector); } - luks_decrypt_sector_twofish_xts_plain256_mk_ripemd160_final (luks_bufs->af_src_buf + offset, mk, sk1, lk1, sk2, lk2, sector); + luks_decrypt_sector_twofish_xts_plain256_mk_ripemd160_final (luks_bufs->af_buf + offset, mk, sk1, lk1, sk2, lk2, sector); } else if (key_size == HC_LUKS_KEY_SIZE_512) { @@ -3850,16 +3850,16 @@ DECLSPEC void luks_af_ripemd160_then_twofish_decrypt (GLOBAL_AS const luks_t *lu for (sector = 0; sector < SECTOR_PER_AF - 1; sector++, offset += OFFSET_PER_SECTOR) { - luks_decrypt_sector_twofish_xts_plain512_mk_ripemd160 (luks_bufs->af_src_buf + offset, mk, sk1, lk1, sk2, lk2, sector); + luks_decrypt_sector_twofish_xts_plain512_mk_ripemd160 (luks_bufs->af_buf + offset, mk, sk1, lk1, sk2, lk2, sector); } - luks_decrypt_sector_twofish_xts_plain512_mk_ripemd160_final (luks_bufs->af_src_buf + offset, mk, sk1, lk1, sk2, lk2, sector); + luks_decrypt_sector_twofish_xts_plain512_mk_ripemd160_final (luks_bufs->af_buf + offset, mk, sk1, lk1, sk2, lk2, sector); } } // decrypt payload data - if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_ESSIV) + if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256) { if (key_size == HC_LUKS_KEY_SIZE_128) { @@ -3908,7 +3908,7 @@ DECLSPEC void luks_af_ripemd160_then_twofish_decrypt (GLOBAL_AS const luks_t *lu luks_decrypt_sector_twofish_cbc_essiv256 (luks_bufs->ct_buf, pt_buf, sk1, lk1, sk2, lk2, 0); } } - else if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN) + else if (cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN || cipher_mode == HC_LUKS_CIPHER_MODE_CBC_PLAIN64) { if (key_size == HC_LUKS_KEY_SIZE_128) { @@ -3945,7 +3945,7 @@ DECLSPEC void luks_af_ripemd160_then_twofish_decrypt (GLOBAL_AS const luks_t *lu luks_decrypt_sector_twofish_cbc_plain256 (luks_bufs->ct_buf, pt_buf, sk1, lk1, 0); } } - else if (cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN) + else if (cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN || cipher_mode == HC_LUKS_CIPHER_MODE_XTS_PLAIN64) { if (key_size == HC_LUKS_KEY_SIZE_256) { diff --git a/OpenCL/m14611-pure.cl b/OpenCL/m14611-pure.cl index 5f17847d5..0d0a19b82 100644 --- a/OpenCL/m14611-pure.cl +++ b/OpenCL/m14611-pure.cl @@ -18,7 +18,9 @@ #include M2S(INCLUDE_PATH/inc_cipher_aes.cl) #endif -#define LUKS_STRIPES 4000 +#define LUKS_STRIPES 4000 +#define LUKS_CT_LEN 512 +#define LUKS_AF_MAX_LEN ((HC_LUKS_KEY_SIZE_512 / 8) * LUKS_STRIPES) typedef enum hc_luks_hash_type { @@ -48,9 +50,11 @@ typedef enum hc_luks_cipher_type typedef enum hc_luks_cipher_mode { - HC_LUKS_CIPHER_MODE_CBC_ESSIV = 1, - HC_LUKS_CIPHER_MODE_CBC_PLAIN = 2, - HC_LUKS_CIPHER_MODE_XTS_PLAIN = 3, + HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256 = 1, + HC_LUKS_CIPHER_MODE_CBC_PLAIN = 2, + HC_LUKS_CIPHER_MODE_CBC_PLAIN64 = 3, + HC_LUKS_CIPHER_MODE_XTS_PLAIN = 4, + HC_LUKS_CIPHER_MODE_XTS_PLAIN64 = 5, } hc_luks_cipher_mode_t; @@ -61,9 +65,10 @@ typedef struct luks int cipher_type; // hc_luks_cipher_type_t int cipher_mode; // hc_luks_cipher_mode_t - u32 ct_buf[128]; + u32 ct_buf[LUKS_CT_LEN / 4]; - u32 af_src_buf[((HC_LUKS_KEY_SIZE_512 / 8) * LUKS_STRIPES) / 4]; + u32 af_buf[LUKS_AF_MAX_LEN / 4]; + u32 af_len; } luks_t; @@ -367,7 +372,7 @@ KERNEL_FQ void m14611_comp (KERN_ATTR_TMPS_ESALT (luks_tmp_t, luks_t)) { if (hc_atomic_inc (&hashes_shown[DIGESTS_OFFSET_HOST]) == 0) { - mark_hash (plains_buf, d_return_buf, SALT_POS_HOST, DIGESTS_CNT, 0, 0, gid, 0, 0, 0); + mark_hash (plains_buf, d_return_buf, SALT_POS_HOST, DIGESTS_CNT, 0, DIGESTS_OFFSET_HOST + 0, gid, 0, 0, 0); } } } diff --git a/OpenCL/m14612-pure.cl b/OpenCL/m14612-pure.cl index c2a662234..375b35ff3 100644 --- a/OpenCL/m14612-pure.cl +++ b/OpenCL/m14612-pure.cl @@ -18,7 +18,9 @@ #include M2S(INCLUDE_PATH/inc_cipher_serpent.cl) #endif -#define LUKS_STRIPES 4000 +#define LUKS_STRIPES 4000 +#define LUKS_CT_LEN 512 +#define LUKS_AF_MAX_LEN ((HC_LUKS_KEY_SIZE_512 / 8) * LUKS_STRIPES) typedef enum hc_luks_hash_type { @@ -48,9 +50,11 @@ typedef enum hc_luks_cipher_type typedef enum hc_luks_cipher_mode { - HC_LUKS_CIPHER_MODE_CBC_ESSIV = 1, - HC_LUKS_CIPHER_MODE_CBC_PLAIN = 2, - HC_LUKS_CIPHER_MODE_XTS_PLAIN = 3, + HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256 = 1, + HC_LUKS_CIPHER_MODE_CBC_PLAIN = 2, + HC_LUKS_CIPHER_MODE_CBC_PLAIN64 = 3, + HC_LUKS_CIPHER_MODE_XTS_PLAIN = 4, + HC_LUKS_CIPHER_MODE_XTS_PLAIN64 = 5, } hc_luks_cipher_mode_t; @@ -61,9 +65,10 @@ typedef struct luks int cipher_type; // hc_luks_cipher_type_t int cipher_mode; // hc_luks_cipher_mode_t - u32 ct_buf[128]; + u32 ct_buf[LUKS_CT_LEN / 4]; - u32 af_src_buf[((HC_LUKS_KEY_SIZE_512 / 8) * LUKS_STRIPES) / 4]; + u32 af_buf[LUKS_AF_MAX_LEN / 4]; + u32 af_len; } luks_t; @@ -314,7 +319,7 @@ KERNEL_FQ void m14612_comp (KERN_ATTR_TMPS_ESALT (luks_tmp_t, luks_t)) { if (hc_atomic_inc (&hashes_shown[DIGESTS_OFFSET_HOST]) == 0) { - mark_hash (plains_buf, d_return_buf, SALT_POS_HOST, DIGESTS_CNT, 0, 0, gid, 0, 0, 0); + mark_hash (plains_buf, d_return_buf, SALT_POS_HOST, DIGESTS_CNT, 0, DIGESTS_OFFSET_HOST + 0, gid, 0, 0, 0); } } } diff --git a/OpenCL/m14613-pure.cl b/OpenCL/m14613-pure.cl index d45c84014..3e381dfa3 100644 --- a/OpenCL/m14613-pure.cl +++ b/OpenCL/m14613-pure.cl @@ -18,7 +18,9 @@ #include M2S(INCLUDE_PATH/inc_cipher_twofish.cl) #endif -#define LUKS_STRIPES 4000 +#define LUKS_STRIPES 4000 +#define LUKS_CT_LEN 512 +#define LUKS_AF_MAX_LEN ((HC_LUKS_KEY_SIZE_512 / 8) * LUKS_STRIPES) typedef enum hc_luks_hash_type { @@ -48,9 +50,11 @@ typedef enum hc_luks_cipher_type typedef enum hc_luks_cipher_mode { - HC_LUKS_CIPHER_MODE_CBC_ESSIV = 1, - HC_LUKS_CIPHER_MODE_CBC_PLAIN = 2, - HC_LUKS_CIPHER_MODE_XTS_PLAIN = 3, + HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256 = 1, + HC_LUKS_CIPHER_MODE_CBC_PLAIN = 2, + HC_LUKS_CIPHER_MODE_CBC_PLAIN64 = 3, + HC_LUKS_CIPHER_MODE_XTS_PLAIN = 4, + HC_LUKS_CIPHER_MODE_XTS_PLAIN64 = 5, } hc_luks_cipher_mode_t; @@ -61,9 +65,10 @@ typedef struct luks int cipher_type; // hc_luks_cipher_type_t int cipher_mode; // hc_luks_cipher_mode_t - u32 ct_buf[128]; + u32 ct_buf[LUKS_CT_LEN / 4]; - u32 af_src_buf[((HC_LUKS_KEY_SIZE_512 / 8) * LUKS_STRIPES) / 4]; + u32 af_buf[LUKS_AF_MAX_LEN / 4]; + u32 af_len; } luks_t; @@ -314,7 +319,7 @@ KERNEL_FQ void m14613_comp (KERN_ATTR_TMPS_ESALT (luks_tmp_t, luks_t)) { if (hc_atomic_inc (&hashes_shown[DIGESTS_OFFSET_HOST]) == 0) { - mark_hash (plains_buf, d_return_buf, SALT_POS_HOST, DIGESTS_CNT, 0, 0, gid, 0, 0, 0); + mark_hash (plains_buf, d_return_buf, SALT_POS_HOST, DIGESTS_CNT, 0, DIGESTS_OFFSET_HOST + 0, gid, 0, 0, 0); } } } diff --git a/OpenCL/m14621-pure.cl b/OpenCL/m14621-pure.cl index 4b1e2b050..67dc4d81d 100644 --- a/OpenCL/m14621-pure.cl +++ b/OpenCL/m14621-pure.cl @@ -18,7 +18,9 @@ #include M2S(INCLUDE_PATH/inc_cipher_aes.cl) #endif -#define LUKS_STRIPES 4000 +#define LUKS_STRIPES 4000 +#define LUKS_CT_LEN 512 +#define LUKS_AF_MAX_LEN ((HC_LUKS_KEY_SIZE_512 / 8) * LUKS_STRIPES) typedef enum hc_luks_hash_type { @@ -48,9 +50,11 @@ typedef enum hc_luks_cipher_type typedef enum hc_luks_cipher_mode { - HC_LUKS_CIPHER_MODE_CBC_ESSIV = 1, - HC_LUKS_CIPHER_MODE_CBC_PLAIN = 2, - HC_LUKS_CIPHER_MODE_XTS_PLAIN = 3, + HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256 = 1, + HC_LUKS_CIPHER_MODE_CBC_PLAIN = 2, + HC_LUKS_CIPHER_MODE_CBC_PLAIN64 = 3, + HC_LUKS_CIPHER_MODE_XTS_PLAIN = 4, + HC_LUKS_CIPHER_MODE_XTS_PLAIN64 = 5, } hc_luks_cipher_mode_t; @@ -61,9 +65,10 @@ typedef struct luks int cipher_type; // hc_luks_cipher_type_t int cipher_mode; // hc_luks_cipher_mode_t - u32 ct_buf[128]; + u32 ct_buf[LUKS_CT_LEN / 4]; - u32 af_src_buf[((HC_LUKS_KEY_SIZE_512 / 8) * LUKS_STRIPES) / 4]; + u32 af_buf[LUKS_AF_MAX_LEN / 4]; + u32 af_len; } luks_t; @@ -406,7 +411,7 @@ KERNEL_FQ void m14621_comp (KERN_ATTR_TMPS_ESALT (luks_tmp_t, luks_t)) { if (hc_atomic_inc (&hashes_shown[DIGESTS_OFFSET_HOST]) == 0) { - mark_hash (plains_buf, d_return_buf, SALT_POS_HOST, DIGESTS_CNT, 0, 0, gid, 0, 0, 0); + mark_hash (plains_buf, d_return_buf, SALT_POS_HOST, DIGESTS_CNT, 0, DIGESTS_OFFSET_HOST + 0, gid, 0, 0, 0); } } } diff --git a/OpenCL/m14622-pure.cl b/OpenCL/m14622-pure.cl index 2acc9ea23..c282ed3df 100644 --- a/OpenCL/m14622-pure.cl +++ b/OpenCL/m14622-pure.cl @@ -18,7 +18,9 @@ #include M2S(INCLUDE_PATH/inc_cipher_serpent.cl) #endif -#define LUKS_STRIPES 4000 +#define LUKS_STRIPES 4000 +#define LUKS_CT_LEN 512 +#define LUKS_AF_MAX_LEN ((HC_LUKS_KEY_SIZE_512 / 8) * LUKS_STRIPES) typedef enum hc_luks_hash_type { @@ -48,9 +50,11 @@ typedef enum hc_luks_cipher_type typedef enum hc_luks_cipher_mode { - HC_LUKS_CIPHER_MODE_CBC_ESSIV = 1, - HC_LUKS_CIPHER_MODE_CBC_PLAIN = 2, - HC_LUKS_CIPHER_MODE_XTS_PLAIN = 3, + HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256 = 1, + HC_LUKS_CIPHER_MODE_CBC_PLAIN = 2, + HC_LUKS_CIPHER_MODE_CBC_PLAIN64 = 3, + HC_LUKS_CIPHER_MODE_XTS_PLAIN = 4, + HC_LUKS_CIPHER_MODE_XTS_PLAIN64 = 5, } hc_luks_cipher_mode_t; @@ -61,9 +65,10 @@ typedef struct luks int cipher_type; // hc_luks_cipher_type_t int cipher_mode; // hc_luks_cipher_mode_t - u32 ct_buf[128]; + u32 ct_buf[LUKS_CT_LEN / 4]; - u32 af_src_buf[((HC_LUKS_KEY_SIZE_512 / 8) * LUKS_STRIPES) / 4]; + u32 af_buf[LUKS_AF_MAX_LEN / 4]; + u32 af_len; } luks_t; @@ -353,7 +358,7 @@ KERNEL_FQ void m14622_comp (KERN_ATTR_TMPS_ESALT (luks_tmp_t, luks_t)) { if (hc_atomic_inc (&hashes_shown[DIGESTS_OFFSET_HOST]) == 0) { - mark_hash (plains_buf, d_return_buf, SALT_POS_HOST, DIGESTS_CNT, 0, 0, gid, 0, 0, 0); + mark_hash (plains_buf, d_return_buf, SALT_POS_HOST, DIGESTS_CNT, 0, DIGESTS_OFFSET_HOST + 0, gid, 0, 0, 0); } } } diff --git a/OpenCL/m14623-pure.cl b/OpenCL/m14623-pure.cl index f50b9d154..1a938492a 100644 --- a/OpenCL/m14623-pure.cl +++ b/OpenCL/m14623-pure.cl @@ -18,7 +18,9 @@ #include M2S(INCLUDE_PATH/inc_cipher_twofish.cl) #endif -#define LUKS_STRIPES 4000 +#define LUKS_STRIPES 4000 +#define LUKS_CT_LEN 512 +#define LUKS_AF_MAX_LEN ((HC_LUKS_KEY_SIZE_512 / 8) * LUKS_STRIPES) typedef enum hc_luks_hash_type { @@ -48,9 +50,11 @@ typedef enum hc_luks_cipher_type typedef enum hc_luks_cipher_mode { - HC_LUKS_CIPHER_MODE_CBC_ESSIV = 1, - HC_LUKS_CIPHER_MODE_CBC_PLAIN = 2, - HC_LUKS_CIPHER_MODE_XTS_PLAIN = 3, + HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256 = 1, + HC_LUKS_CIPHER_MODE_CBC_PLAIN = 2, + HC_LUKS_CIPHER_MODE_CBC_PLAIN64 = 3, + HC_LUKS_CIPHER_MODE_XTS_PLAIN = 4, + HC_LUKS_CIPHER_MODE_XTS_PLAIN64 = 5, } hc_luks_cipher_mode_t; @@ -61,9 +65,10 @@ typedef struct luks int cipher_type; // hc_luks_cipher_type_t int cipher_mode; // hc_luks_cipher_mode_t - u32 ct_buf[128]; + u32 ct_buf[LUKS_CT_LEN / 4]; - u32 af_src_buf[((HC_LUKS_KEY_SIZE_512 / 8) * LUKS_STRIPES) / 4]; + u32 af_buf[LUKS_AF_MAX_LEN / 4]; + u32 af_len; } luks_t; @@ -353,7 +358,7 @@ KERNEL_FQ void m14623_comp (KERN_ATTR_TMPS_ESALT (luks_tmp_t, luks_t)) { if (hc_atomic_inc (&hashes_shown[DIGESTS_OFFSET_HOST]) == 0) { - mark_hash (plains_buf, d_return_buf, SALT_POS_HOST, DIGESTS_CNT, 0, 0, gid, 0, 0, 0); + mark_hash (plains_buf, d_return_buf, SALT_POS_HOST, DIGESTS_CNT, 0, DIGESTS_OFFSET_HOST + 0, gid, 0, 0, 0); } } } diff --git a/OpenCL/m14631-pure.cl b/OpenCL/m14631-pure.cl index 05a6f1c74..a9c2234dd 100644 --- a/OpenCL/m14631-pure.cl +++ b/OpenCL/m14631-pure.cl @@ -18,7 +18,9 @@ #include M2S(INCLUDE_PATH/inc_cipher_aes.cl) #endif -#define LUKS_STRIPES 4000 +#define LUKS_STRIPES 4000 +#define LUKS_CT_LEN 512 +#define LUKS_AF_MAX_LEN ((HC_LUKS_KEY_SIZE_512 / 8) * LUKS_STRIPES) typedef enum hc_luks_hash_type { @@ -48,9 +50,11 @@ typedef enum hc_luks_cipher_type typedef enum hc_luks_cipher_mode { - HC_LUKS_CIPHER_MODE_CBC_ESSIV = 1, - HC_LUKS_CIPHER_MODE_CBC_PLAIN = 2, - HC_LUKS_CIPHER_MODE_XTS_PLAIN = 3, + HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256 = 1, + HC_LUKS_CIPHER_MODE_CBC_PLAIN = 2, + HC_LUKS_CIPHER_MODE_CBC_PLAIN64 = 3, + HC_LUKS_CIPHER_MODE_XTS_PLAIN = 4, + HC_LUKS_CIPHER_MODE_XTS_PLAIN64 = 5, } hc_luks_cipher_mode_t; @@ -61,9 +65,10 @@ typedef struct luks int cipher_type; // hc_luks_cipher_type_t int cipher_mode; // hc_luks_cipher_mode_t - u32 ct_buf[128]; + u32 ct_buf[LUKS_CT_LEN / 4]; - u32 af_src_buf[((HC_LUKS_KEY_SIZE_512 / 8) * LUKS_STRIPES) / 4]; + u32 af_buf[LUKS_AF_MAX_LEN / 4]; + u32 af_len; } luks_t; @@ -462,7 +467,7 @@ KERNEL_FQ void m14631_comp (KERN_ATTR_TMPS_ESALT (luks_tmp_t, luks_t)) { if (hc_atomic_inc (&hashes_shown[DIGESTS_OFFSET_HOST]) == 0) { - mark_hash (plains_buf, d_return_buf, SALT_POS_HOST, DIGESTS_CNT, 0, 0, gid, 0, 0, 0); + mark_hash (plains_buf, d_return_buf, SALT_POS_HOST, DIGESTS_CNT, 0, DIGESTS_OFFSET_HOST + 0, gid, 0, 0, 0); } } } diff --git a/OpenCL/m14632-pure.cl b/OpenCL/m14632-pure.cl index ed2e1ad31..e2357d2f2 100644 --- a/OpenCL/m14632-pure.cl +++ b/OpenCL/m14632-pure.cl @@ -18,7 +18,9 @@ #include M2S(INCLUDE_PATH/inc_cipher_serpent.cl) #endif -#define LUKS_STRIPES 4000 +#define LUKS_STRIPES 4000 +#define LUKS_CT_LEN 512 +#define LUKS_AF_MAX_LEN ((HC_LUKS_KEY_SIZE_512 / 8) * LUKS_STRIPES) typedef enum hc_luks_hash_type { @@ -48,9 +50,11 @@ typedef enum hc_luks_cipher_type typedef enum hc_luks_cipher_mode { - HC_LUKS_CIPHER_MODE_CBC_ESSIV = 1, - HC_LUKS_CIPHER_MODE_CBC_PLAIN = 2, - HC_LUKS_CIPHER_MODE_XTS_PLAIN = 3, + HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256 = 1, + HC_LUKS_CIPHER_MODE_CBC_PLAIN = 2, + HC_LUKS_CIPHER_MODE_CBC_PLAIN64 = 3, + HC_LUKS_CIPHER_MODE_XTS_PLAIN = 4, + HC_LUKS_CIPHER_MODE_XTS_PLAIN64 = 5, } hc_luks_cipher_mode_t; @@ -61,9 +65,10 @@ typedef struct luks int cipher_type; // hc_luks_cipher_type_t int cipher_mode; // hc_luks_cipher_mode_t - u32 ct_buf[128]; + u32 ct_buf[LUKS_CT_LEN / 4]; - u32 af_src_buf[((HC_LUKS_KEY_SIZE_512 / 8) * LUKS_STRIPES) / 4]; + u32 af_buf[LUKS_AF_MAX_LEN / 4]; + u32 af_len; } luks_t; @@ -409,7 +414,7 @@ KERNEL_FQ void m14632_comp (KERN_ATTR_TMPS_ESALT (luks_tmp_t, luks_t)) { if (hc_atomic_inc (&hashes_shown[DIGESTS_OFFSET_HOST]) == 0) { - mark_hash (plains_buf, d_return_buf, SALT_POS_HOST, DIGESTS_CNT, 0, 0, gid, 0, 0, 0); + mark_hash (plains_buf, d_return_buf, SALT_POS_HOST, DIGESTS_CNT, 0, DIGESTS_OFFSET_HOST + 0, gid, 0, 0, 0); } } } diff --git a/OpenCL/m14633-pure.cl b/OpenCL/m14633-pure.cl index 387e65f28..0b85a2a08 100644 --- a/OpenCL/m14633-pure.cl +++ b/OpenCL/m14633-pure.cl @@ -18,7 +18,9 @@ #include M2S(INCLUDE_PATH/inc_cipher_twofish.cl) #endif -#define LUKS_STRIPES 4000 +#define LUKS_STRIPES 4000 +#define LUKS_CT_LEN 512 +#define LUKS_AF_MAX_LEN ((HC_LUKS_KEY_SIZE_512 / 8) * LUKS_STRIPES) typedef enum hc_luks_hash_type { @@ -48,9 +50,11 @@ typedef enum hc_luks_cipher_type typedef enum hc_luks_cipher_mode { - HC_LUKS_CIPHER_MODE_CBC_ESSIV = 1, - HC_LUKS_CIPHER_MODE_CBC_PLAIN = 2, - HC_LUKS_CIPHER_MODE_XTS_PLAIN = 3, + HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256 = 1, + HC_LUKS_CIPHER_MODE_CBC_PLAIN = 2, + HC_LUKS_CIPHER_MODE_CBC_PLAIN64 = 3, + HC_LUKS_CIPHER_MODE_XTS_PLAIN = 4, + HC_LUKS_CIPHER_MODE_XTS_PLAIN64 = 5, } hc_luks_cipher_mode_t; @@ -61,9 +65,10 @@ typedef struct luks int cipher_type; // hc_luks_cipher_type_t int cipher_mode; // hc_luks_cipher_mode_t - u32 ct_buf[128]; + u32 ct_buf[LUKS_CT_LEN / 4]; - u32 af_src_buf[((HC_LUKS_KEY_SIZE_512 / 8) * LUKS_STRIPES) / 4]; + u32 af_buf[LUKS_AF_MAX_LEN / 4]; + u32 af_len; } luks_t; @@ -409,7 +414,7 @@ KERNEL_FQ void m14633_comp (KERN_ATTR_TMPS_ESALT (luks_tmp_t, luks_t)) { if (hc_atomic_inc (&hashes_shown[DIGESTS_OFFSET_HOST]) == 0) { - mark_hash (plains_buf, d_return_buf, SALT_POS_HOST, DIGESTS_CNT, 0, 0, gid, 0, 0, 0); + mark_hash (plains_buf, d_return_buf, SALT_POS_HOST, DIGESTS_CNT, 0, DIGESTS_OFFSET_HOST + 0, gid, 0, 0, 0); } } } diff --git a/OpenCL/m14641-pure.cl b/OpenCL/m14641-pure.cl index acb24e150..55ff4ad57 100644 --- a/OpenCL/m14641-pure.cl +++ b/OpenCL/m14641-pure.cl @@ -18,7 +18,9 @@ #include M2S(INCLUDE_PATH/inc_cipher_aes.cl) #endif -#define LUKS_STRIPES 4000 +#define LUKS_STRIPES 4000 +#define LUKS_CT_LEN 512 +#define LUKS_AF_MAX_LEN ((HC_LUKS_KEY_SIZE_512 / 8) * LUKS_STRIPES) typedef enum hc_luks_hash_type { @@ -48,9 +50,11 @@ typedef enum hc_luks_cipher_type typedef enum hc_luks_cipher_mode { - HC_LUKS_CIPHER_MODE_CBC_ESSIV = 1, - HC_LUKS_CIPHER_MODE_CBC_PLAIN = 2, - HC_LUKS_CIPHER_MODE_XTS_PLAIN = 3, + HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256 = 1, + HC_LUKS_CIPHER_MODE_CBC_PLAIN = 2, + HC_LUKS_CIPHER_MODE_CBC_PLAIN64 = 3, + HC_LUKS_CIPHER_MODE_XTS_PLAIN = 4, + HC_LUKS_CIPHER_MODE_XTS_PLAIN64 = 5, } hc_luks_cipher_mode_t; @@ -61,9 +65,10 @@ typedef struct luks int cipher_type; // hc_luks_cipher_type_t int cipher_mode; // hc_luks_cipher_mode_t - u32 ct_buf[128]; + u32 ct_buf[LUKS_CT_LEN / 4]; - u32 af_src_buf[((HC_LUKS_KEY_SIZE_512 / 8) * LUKS_STRIPES) / 4]; + u32 af_buf[LUKS_AF_MAX_LEN / 4]; + u32 af_len; } luks_t; @@ -367,7 +372,7 @@ KERNEL_FQ void m14641_comp (KERN_ATTR_TMPS_ESALT (luks_tmp_t, luks_t)) { if (hc_atomic_inc (&hashes_shown[DIGESTS_OFFSET_HOST]) == 0) { - mark_hash (plains_buf, d_return_buf, SALT_POS_HOST, DIGESTS_CNT, 0, 0, gid, 0, 0, 0); + mark_hash (plains_buf, d_return_buf, SALT_POS_HOST, DIGESTS_CNT, 0, DIGESTS_OFFSET_HOST + 0, gid, 0, 0, 0); } } } diff --git a/OpenCL/m14642-pure.cl b/OpenCL/m14642-pure.cl index 1be6dd262..a81a16ebf 100644 --- a/OpenCL/m14642-pure.cl +++ b/OpenCL/m14642-pure.cl @@ -18,7 +18,9 @@ #include M2S(INCLUDE_PATH/inc_cipher_serpent.cl) #endif -#define LUKS_STRIPES 4000 +#define LUKS_STRIPES 4000 +#define LUKS_CT_LEN 512 +#define LUKS_AF_MAX_LEN ((HC_LUKS_KEY_SIZE_512 / 8) * LUKS_STRIPES) typedef enum hc_luks_hash_type { @@ -48,9 +50,11 @@ typedef enum hc_luks_cipher_type typedef enum hc_luks_cipher_mode { - HC_LUKS_CIPHER_MODE_CBC_ESSIV = 1, - HC_LUKS_CIPHER_MODE_CBC_PLAIN = 2, - HC_LUKS_CIPHER_MODE_XTS_PLAIN = 3, + HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256 = 1, + HC_LUKS_CIPHER_MODE_CBC_PLAIN = 2, + HC_LUKS_CIPHER_MODE_CBC_PLAIN64 = 3, + HC_LUKS_CIPHER_MODE_XTS_PLAIN = 4, + HC_LUKS_CIPHER_MODE_XTS_PLAIN64 = 5, } hc_luks_cipher_mode_t; @@ -61,9 +65,10 @@ typedef struct luks int cipher_type; // hc_luks_cipher_type_t int cipher_mode; // hc_luks_cipher_mode_t - u32 ct_buf[128]; + u32 ct_buf[LUKS_CT_LEN / 4]; - u32 af_src_buf[((HC_LUKS_KEY_SIZE_512 / 8) * LUKS_STRIPES) / 4]; + u32 af_buf[LUKS_AF_MAX_LEN / 4]; + u32 af_len; } luks_t; @@ -314,7 +319,7 @@ KERNEL_FQ void m14642_comp (KERN_ATTR_TMPS_ESALT (luks_tmp_t, luks_t)) { if (hc_atomic_inc (&hashes_shown[DIGESTS_OFFSET_HOST]) == 0) { - mark_hash (plains_buf, d_return_buf, SALT_POS_HOST, DIGESTS_CNT, 0, 0, gid, 0, 0, 0); + mark_hash (plains_buf, d_return_buf, SALT_POS_HOST, DIGESTS_CNT, 0, DIGESTS_OFFSET_HOST + 0, gid, 0, 0, 0); } } } diff --git a/OpenCL/m14643-pure.cl b/OpenCL/m14643-pure.cl index 0245df186..c2c687b85 100644 --- a/OpenCL/m14643-pure.cl +++ b/OpenCL/m14643-pure.cl @@ -18,7 +18,9 @@ #include M2S(INCLUDE_PATH/inc_cipher_twofish.cl) #endif -#define LUKS_STRIPES 4000 +#define LUKS_STRIPES 4000 +#define LUKS_CT_LEN 512 +#define LUKS_AF_MAX_LEN ((HC_LUKS_KEY_SIZE_512 / 8) * LUKS_STRIPES) typedef enum hc_luks_hash_type { @@ -48,9 +50,11 @@ typedef enum hc_luks_cipher_type typedef enum hc_luks_cipher_mode { - HC_LUKS_CIPHER_MODE_CBC_ESSIV = 1, - HC_LUKS_CIPHER_MODE_CBC_PLAIN = 2, - HC_LUKS_CIPHER_MODE_XTS_PLAIN = 3, + HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256 = 1, + HC_LUKS_CIPHER_MODE_CBC_PLAIN = 2, + HC_LUKS_CIPHER_MODE_CBC_PLAIN64 = 3, + HC_LUKS_CIPHER_MODE_XTS_PLAIN = 4, + HC_LUKS_CIPHER_MODE_XTS_PLAIN64 = 5, } hc_luks_cipher_mode_t; @@ -61,9 +65,10 @@ typedef struct luks int cipher_type; // hc_luks_cipher_type_t int cipher_mode; // hc_luks_cipher_mode_t - u32 ct_buf[128]; + u32 ct_buf[LUKS_CT_LEN / 4]; - u32 af_src_buf[((HC_LUKS_KEY_SIZE_512 / 8) * LUKS_STRIPES) / 4]; + u32 af_buf[LUKS_AF_MAX_LEN / 4]; + u32 af_len; } luks_t; @@ -314,7 +319,7 @@ KERNEL_FQ void m14643_comp (KERN_ATTR_TMPS_ESALT (luks_tmp_t, luks_t)) { if (hc_atomic_inc (&hashes_shown[DIGESTS_OFFSET_HOST]) == 0) { - mark_hash (plains_buf, d_return_buf, SALT_POS_HOST, DIGESTS_CNT, 0, 0, gid, 0, 0, 0); + mark_hash (plains_buf, d_return_buf, SALT_POS_HOST, DIGESTS_CNT, 0, DIGESTS_OFFSET_HOST + 0, gid, 0, 0, 0); } } } diff --git a/docs/changes.txt b/docs/changes.txt index c3bbe3465..a0f45ca60 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -118,6 +118,8 @@ - Modules: New VeraCrypt modules (29411-29483) which do not use `module_hash_binary_parse` to get data from containers anymore (use new tool `tools/veracrypt2hashcat.py`). - Modules: Added suffix *legacy* to old VeraCrypt modules (13711-13783). - Terminal: Increased size of hash name column in `--help` and `--identify` options. +- Modules: New LUKS v1 modules (29511-29543) which do not use `module_hash_binary_parse` to get data from containers anymore (use new tool `tools/luks2hashcat.py`). +- Modules: Renamed old LUKS module into LUKS v1 and added suffix *legacy* (14600). * changes v6.2.4 -> v6.2.5 diff --git a/src/modules/module_14600.c b/src/modules/module_14600.c index a42a5dc43..b5b3cf31e 100644 --- a/src/modules/module_14600.c +++ b/src/modules/module_14600.c @@ -18,7 +18,7 @@ static const u32 DGST_POS2 = 2; static const u32 DGST_POS3 = 3; static const u32 DGST_SIZE = DGST_SIZE_4_16; static const u32 HASH_CATEGORY = HASH_CATEGORY_FDE; -static const char *HASH_NAME = "LUKS"; +static const char *HASH_NAME = "LUKS v1 (legacy)"; static const u64 KERN_TYPE = 14611; // this gets overwritten later instead of in benchmark static const u32 OPTI_TYPE = OPTI_TYPE_ZERO_BYTE | OPTI_TYPE_SLOW_HASH_SIMD_LOOP; @@ -145,9 +145,11 @@ typedef enum hc_luks_cipher_type typedef enum hc_luks_cipher_mode { - HC_LUKS_CIPHER_MODE_CBC_ESSIV = 1, - HC_LUKS_CIPHER_MODE_CBC_PLAIN = 2, - HC_LUKS_CIPHER_MODE_XTS_PLAIN = 3, + HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256 = 1, + HC_LUKS_CIPHER_MODE_CBC_PLAIN = 2, + HC_LUKS_CIPHER_MODE_CBC_PLAIN64 = 3, + HC_LUKS_CIPHER_MODE_XTS_PLAIN = 4, + HC_LUKS_CIPHER_MODE_XTS_PLAIN64 = 5, } hc_luks_cipher_mode_t; @@ -160,7 +162,8 @@ typedef struct luks u32 ct_buf[128]; - u32 af_src_buf[((HC_LUKS_KEY_SIZE_512 / 8) * LUKS_STRIPES) / 4]; + u32 af_buf[((HC_LUKS_KEY_SIZE_512 / 8) * LUKS_STRIPES) / 4]; + u32 af_len; } luks_t; @@ -432,7 +435,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE if (strcmp (hdr.cipherMode, "cbc-essiv:sha256") == 0) { - luks->cipher_mode = HC_LUKS_CIPHER_MODE_CBC_ESSIV; + luks->cipher_mode = HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256; } else if (strcmp (hdr.cipherMode, "cbc-plain") == 0) { @@ -440,7 +443,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE } else if (strcmp (hdr.cipherMode, "cbc-plain64") == 0) { - luks->cipher_mode = HC_LUKS_CIPHER_MODE_CBC_PLAIN; + luks->cipher_mode = HC_LUKS_CIPHER_MODE_CBC_PLAIN64; } else if (strcmp (hdr.cipherMode, "xts-plain") == 0) { @@ -448,7 +451,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE } else if (strcmp (hdr.cipherMode, "xts-plain64") == 0) { - luks->cipher_mode = HC_LUKS_CIPHER_MODE_XTS_PLAIN; + luks->cipher_mode = HC_LUKS_CIPHER_MODE_XTS_PLAIN64; } else { @@ -556,7 +559,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE return (PARSER_LUKS_FILE_SIZE); } - const size_t nread2 = hc_fread (luks->af_src_buf, keyBytes, stripes, &fp); + const size_t nread2 = hc_fread (luks->af_buf, keyBytes, stripes, &fp); if (nread2 != stripes) { @@ -565,6 +568,8 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE return (PARSER_LUKS_FILE_SIZE); } + luks->af_len = keyBytes * stripes; + // finally, copy some encrypted payload data for entropy check const u32 payloadOffset = byte_swap_32 (hdr.payloadOffset); diff --git a/src/modules/module_29511.c b/src/modules/module_29511.c new file mode 100644 index 000000000..a1865208e --- /dev/null +++ b/src/modules/module_29511.c @@ -0,0 +1,491 @@ +/** + * Author......: See docs/credits.txt + * License.....: MIT + */ + +#include "common.h" +#include "types.h" +#include "modules.h" +#include "bitops.h" +#include "convert.h" +#include "shared.h" +#include "memory.h" + +static const u32 ATTACK_EXEC = ATTACK_EXEC_OUTSIDE_KERNEL; +static const u32 DGST_POS0 = 0; +static const u32 DGST_POS1 = 1; +static const u32 DGST_POS2 = 2; +static const u32 DGST_POS3 = 3; +static const u32 DGST_SIZE = DGST_SIZE_4_16; +static const u32 HASH_CATEGORY = HASH_CATEGORY_FDE; +static const char *HASH_NAME = "LUKS v1 SHA-1 + AES"; +static const u64 KERN_TYPE = 14611; +static const u32 OPTI_TYPE = OPTI_TYPE_ZERO_BYTE + | OPTI_TYPE_SLOW_HASH_SIMD_LOOP; +static const u64 OPTS_TYPE = OPTS_TYPE_STOCK_MODULE + | OPTS_TYPE_PT_GENERATE_LE; +static const u32 SALT_TYPE = SALT_TYPE_EMBEDDED; +static const char *ST_PASS = "hashcat"; +static const char *ST_HASH = "$luks$1$sha1$aes$cbc-essiv:sha256$128$151351$fe93ac0ab67cea12186b30980dd015a5652eec1ae0639aa34629c9e49118d235$4caf8f9e5a1fadff416b8ffe43d3a94b63c31b4740f2c391d282bab7cdb42177b1c601724811403b2692f9c32b17bc953ad6ea7a5e9c7799ec1eb8cf260f3c10be201b0eaf73d380158fc7c5e7ecaa3376d362e3e468383a229db3b6a8bf4778214313cc214f9136cfcacb576b39177ce4583152e707dc7da1d2e85c4c92bbc2bfe5433f536dc68a0fb85b48b61aa190dcb4c886049f972b357843c46ddce81692f14d96763fde8946c532c7b1b7fcc72010af27ba9690accf9d90de872041fe2f8061030871841be384adffe325f7ddf4b3dd5c19504ec393c280a173a6c2e7311b2d484cc49e03692ace082b23680e889bd3a8f0f87238191b56acd312ba95d43658792e125591f57f9b8655d04a004056d6d341a38aed058c5dd6f074fd2b7d364209b0d964b4269b750a9241153d23c371cef21049a8506b669ff19d6418aebec1b7456c46856a9cb36ddf2dc12053124596b827a50d4679f7d1b34550e89f7c5c642e73646c668687bd26fd4c0b83b05992135a0cf7c1149cf23592331c4f35bc7456e993275a933bbb7079dbc4ef57efd1b8ca67c54b5e8fcd029382f0bda3d53b5a28c53e0631c867b657437f0df100d1407c46b30c78fe5ddf666e95f33869bbbc866b4d85561246be960e74e805cec2a631c73884c86727f0919eb79b9500416203096367219bc71f98186e1cf2134307663b20c29a0e630aedc2048163f865a0d80fabaa3da8e83f5a8d7222d0cbaf3becfc3a65b1893195c382b98dc3ba7dd1bf8cd85c7af768d063349c220466dc5c0b1c6781da075abffa8725726f55a1e76e3fc0997cd7c94bbe7e2f12fe2b44e41b0f797370eb60e3503497fa2025f266caa41c9fa0eeb61efac76e6aabdd368ac6bdfca344e4f18e0c45e9ad4bda99b9b050291fb3706e392a32e63e4bcbf3f883d9e0aa3d77970e8a43cb2d849128a18bd488bce7051615c559da95587d2965befb3edfccec03b7a65159aa93b20d834eb00705ce8fe983050d89a6cc6dad541a3ac63288791dc9c6d8ad8394aa8c3650edc0397e2c830410d35a298a75334ac8a17b61b8346faaf18c376db27af41ede1b4232c0c5cfcb0642402b0888a576fbb7069d5eaf8d39a9283c464727a91a7c515a0c37e99731130f985bdaf6515e1b63936776d3b7fcf63fea8d37d1676d607a39004f399b2a475220474fec11e02fa45d66b85e086dee5b1781a7eb0ee17ca442c88dac5ae7deba3296cd11f84e0940eb6719bc9f925c58803b38daf21dd5c668574821f798b18f8eea9cf64c844a6e34b93c23bee5c3f9ee720c83252095e416fd27d921cba98c4495fb5206ac0ca755aa6def34524a97f8dacc1447e0df694c88ea977644a63044f819ccb69dc1994941e8d088cae84b0e2aee50bb8bdaa592911b07d7990a0ba954d719090ddd77b64bc11d25713a3f679cf9f153ac7704ac912d73e41831c7b95d6b54f26f8a56dd1edc81e9107ca15916fe7367d89787e8bf96426f455b67740081d6166c63905849291483ee4d3d3b4693fc1cb32d0596d52619984aed07310ae9c30b6f2478f1d3df35e102cfd44e7f0e075506a29d75950eecf5288358852605c8e52795e31eaae5152804ec44d35c916523b431dadd0a183c59710d6cb52c7e8b51af604c6ff51422b78d8a6785773185997bbcf25e6f175e3d681a3905b4d99c2e18dddcda0680b67d36a4aeb83b9b7ff88bccf7336b906e9dda62bcca7680dc91eab633cc1451f25b854206e781bb621a79b913b74e780c86fd0b4ea939574677bc6c19f91de3782a63a40c2ee47b9d4fb53fb8bd679b7da9b4d506b07a34519bfc511cf38b081a61bbbf3f338c3829a4597cfa46465b3b6e8786eea420a5c61c3ff8cbee5be5eb3a17042b9add3c57876c023c005e532aa9295c9928d68ee2dc867936a6613ae3f743d805f0b65a6a9873b74d532d62b029fb549ecec346c3ab80fae18594ad242ceb46444625113027e2b797303c14aa6922166d8873a31830431fc0bf0267a0a8a107c9ea871f66260d14b615c5e42269e0fe1ebcf3c72c0bf7450f2b428fdb94ffecc1fb3ff81730d15fdda7169c57f1525c7f29b8baad751a5a525d8b4e94932fc8ba425bf038c0e5244df01e901001409184ab44c0234cb847d6eb751c2652e68324a78a1ed5ba541aacc067e2a562fd5fc924a662feb08844dae224185c8bd83a67d9e46b98898f879ac634c67c6133bfe87565ac32a472e7e9ca02ffe695c8b2653004fedd5a144a38985e49ab372f0ee40648f1a79d818e17e8f83b30f2df8ede41f895c38a77c198fe35e1212fd75523eef30dd912ab7f4fbf548e64718dc78ae57d49e03264c1cc2ad6d206bceb5321392365a7c605b263a8a00cb47ecdde063f55f16cd0007d28431e3bfe37661035560decf4d3b5b1c7eb6aac3bd5c95b1f1ad726fb5b4b06e4dfa8581fec4df5755973a1492b0ccea5ca2e039488e3f93117d1d51300b8132ab48bfce8b8c26810963b22395fbc7a7ace65574c52235c41bde16a5bcb016e73417cd7e096830db51214e975d894bce1fa51c8a68931a5c47273ca5b83c9585bae148f1b71b2c69325f3e4abec61fc0a1f99c5c5d70c27272e6277398a7da65d0509a0e02535e4cda1849acfad647d5a71776c94704cabda72f180a09990b5051f4ed567b0e54c1306b8500a736c69923cfbe2507771c6aa39ee265ead5f346072272d6270bd1c2f7c45a11e504d22e785c519d56c262261875a79ad4cb874627c4978856e75e8acc8a1538d4fe09ce7fad5c59c6f706027b6b75c044e8015f09182b52a6ae3d9184304f90d8c2b654f44b631a8120ce3ab1ca257dac912019b3880cbfed3dac4ed6537f3af74f6550606f3a438036a71695fecc77f7ae9f675ccf056e26726d49067d7ec98fe78dd5385d20d97814082c90621990949f138cb09300dd7c9e1530abdc8632188ee5563ef9047cb6cef4d6e13a3e0fd98f9c5f47eb9912eabe83780263a00bce2bab88d70f3acc95e165b59a01e6a320283cb7123a9ee6cbe45a8e6023ad98ed6381720024c84621d26ea34bbc7d9afc92d3560a36b3ff51d8f0885b9604148c6379242815509a207c158fe8f5579abcce895f3fec8da6f68e7bd10d3698c7124f0471ffefa86547880da8fda0ae28b0738f58fc0096648c709a9893f2e620cc2c47341f88fc77a5e115e0ec6fdd537ea3ccc4e533c16640b99362b85c871b7574ca2a22552c0a1bc0309660cb20829cdced7ed339742215dafde933f7c8ea4c5cfe02914d55558e55138c345ce4a225ceecb0de439f6b5313c8281d141b6f7c09f2bf4915ae89470dc2ef01f27a06955b41dde6d3ba988b5261e6154d4e9cbe2ccc369ed7a81e599b13f0eee9c191b53abb0677651603bb3f3eab00f64f187ee35b246511d98fccba2470d9810d3000fe350f83bf7179134f9a6d47281695bdcf6f84d37051ae2cdafdf8ad3d77706601e8819b7ee1aec5c217bd28ed4268a2cc59104307a25b9c16dbac26c371f8723a50b99ab589ed05b143fad22f7be5d56ff94e859f0f0711db294b799527694b8ce454cc21c299654ccf78e0666ccdfba4bbace6ee3786b3ad400d0713f7db7fa108797fabd2f5c1b470923be148e739f4187459a652d8fdab2369f9bc07b750fb710445378ade9bddb5eba14e079855e526b21e1b89285149e40deacecdcab707f551def93a2a7fde8cba3e2d61acd6828247667fbd9b461cda77df6f31ac5c77a3d5edbdd1784bc6fd9c92a27ddf99566eb7c9aee54939771817d89ac4affc500ef719b4f9b6b01f129da54e79ed1f17beacfa24b7cb8c4d3602a1c14ebd9aed90aaac143eccf9f337ec804bd4a7b86abc129665349db87d19280aa084e64159109f9c16e2325c2c3b6bb28fcb739a311eec277a0be896299d8b32e4276665f3969a13f2d8f7852ba36385954addea16213eecd4e79248ed6e2561d94bb88b5792d8cd93c8aa688a88f31d4095a9ffcfa1d19c8be23fac4512271e85a3ec1aaf38977071dd27568895c2f5f5c6e4e0a7d2189515012455a127472763ce7dbbbcae9f0f66203706faa360299215de61d6ae23f0e18d0d6a1e60518e774207706d7f77d6be878eed0ad759675855f78f84d47f7aa358dd8b38c03de862f187e2ce3a938ad064230a6589ce9fc6fc42429857401ba9483c5547e17dbdefcb6d4885b9b6ab088f6f3d69149072a850cd43ff3c1ec55ee7f1b654c6a86e34b7341e9b16656df3f371828a1cf731082ae3a17166c25dc6dd4a3f3a20c10cc42cd9822b1a6a3e25725063c332b4e3624c62b83686c6158b1a4df978aec9c6a9a3bb6e212341d17e4bbbad93eff0290d410ed12ee8546bb57ce8722bd9e0e97d005a72665ad0ffa79680f2a746183e8502f74dc9799f6a05083b2c21f489c0bf733988d3dcede2216220be322f55df817b4035c6a4a3cd596ccbf302f5b5949cc7b918befc0ce671ab95feb2038d9e9f07e98bc109b87cf83867e04e31cb76f4cf66f36f04af68ba0436d691165651c30c4a8311cdfda4ff0b23df4128d330c080a5e113c07583116c8efa929602bcf5a6e387d96e6139f5993d7deaef3dbb3f0ee861b90bbe5439d2b77ec5bbdebadaa6181123916dad876f836e6f716849e3e7275dc5c42872ac18598c5a622375295b9ce604699e162c85fe5434b54edbc3caa7a64d1afaf926fec0da588b54f3defe56d4a7af8f950608f8554b22d68650f19701a9c2a475d3b050c4df281a90afac7b1b7787875d4693886bf12d7db38b699627b8c7cf4c51100ce37d489b978b86dda3e065660ba8b74c32cf712a0fd62a8fa84d6cfb819904199841631062c457648b2fadb1670a851b1c58ab9612512711311339c7124344b91216944c0dbec3ed3d66c2725afe37a92c754f9bc2dd0a5f4521b6df1a11215f365d99349cb1ec10bb0e24caf4b568f77d543f31a2e7fb241996c19ade7205141f84181efa8ddb2351e4ec4a86875b30c3d1bacc96c061f45e6d22bea66522f8a295a5b00f30cb2858c389ec100935a7f3ff1a26487594fb147b39af153bbcf3a5075302313b91ffc25de328eb512aa11288e4ca5b2b09acd614e6fe7b5d74c573987d56150d08c246bbfa8d131ee471a9310e66f94edd7d62604d7ee1e2a728302660dc3d42166df2363d19308665ffb8fb664d43c97f2283fe5f20d7894f914c1ecb037ccd9960b28a1838f5755dfae56f338f366e240a12ab2970d3cc333bcd30715d3d59b4e35611bc6658125716db17d06ac28eb6d144bd6c0df87a407a42034127e1930e4aedd9439f3aaa9a29522477eb198b157f0d6c1d900c9345ee966838833ebd915d5edd0d7b2472558759d6155e899c3fa74b044b550eafc4848a7df4c52b02482d0987ec54d1ff8e50f063bdaa4e5c15cb713b58c695adc8a6b6912d9f7e2f034ba38a9d7bd8230afdf53723c7e353ef008b951b490a9464b96fcd01788f5e743ce65171df0bafb390366c9146e691b76944558452d3e8f0e30ff695405e755d8d0e574a4593a641cdbcf9009129c528663f128e2cba95dea601498053f816b47ecf091be75daabe4aa2c597d5622c4710d9aed3405c1c1e9d166c352642383061e5bcbb41ae9df0cfc84005bb08ef024cc9200b1f4c46beafeccc67a8cbbcf72d79fb4880e5056aa49d66b014bce9e84bfdf37b30a2c4355646d068bf17d529cd762fb06f10e8cef4fda20a99939b9620b3e69fc88e8abe1471ae405a03f0d9ece5fedc73987f32fc51d24d0ee3377cabdace8f1999a6ca9027489f5bdd14897145379b9c92c14797d2af5053577b141f57b7c86d54f1fb54f039ac5604c2958c756a03e79a7572dcbd365a99995532951439ed5614b5e06d2b22e5197b0bf66b4cd9fd9143f2c08c4fa0ffa456586fdf8ebb0a705103dbbf9bc4dd7488e39da874e212c8949a373fca7cf1b0fca6e587cb508725bdfb2a5dba6af16bb7758d6677207a09ada913cde2f67c8a353ee7721c50b49517a499278d3d9c98fd1e51bb27339d78246f1f82c97f7526c97aaeab672fca720826bb6e32931d7e40257711f353074defd3c4a15fa41fae7a13bd94b7c8dfcecd5d6f4d7e4f8c0cbaa477f7dad4c85f7d05036fe645bca5dcbc628dfbb8c5878d497396ba3506cf84f05fa2d69f9a8205b9e50f5b42ac3d453f87de1dfe6b645f2f46e3172fb831e0e92e65236c0f357823a0b16902fb569a291a977d2c88283d47fbbc856f3900848a311f31fb29c26861174f8f10186f6b7b99293be5084cfa9070275dfecdfe7e37d79cca11231e1681f9f92a9890be78b2a3efc75b2c16512cd78e5ccf139e70fa9eb7455c99f1ef8022dc2eb480e58d9d41cab89c345599ebf828596459bc20c492068762ce0e233a8a514174fd979d0299b395978f86eba46a4d159495d586edf18601307bc02d53a484906c3142070e60c8c9ff579eb2c2403c29f3ca261a6826655721daf321ca346bcfcef06fd06e925d4cc3c7c618146119645c54be5ac40917d11fe65fba7869e7dbeaeb017d917f25359bb35c45ef6fbf1c8214a20a26563c22613b226ed2ad32063ea10a3c928fd5ccff7e2697b9985c54aa6235252310dc963145dc190815bafc89a57013f434636526082b6e1779ed38ba2718a38bdc782e2ccc912926e44e32b2890a5a46b13202b8065e81d34c74466501c47c56727f81fc7c730e44545e1fec0a05e390fced8f233e7e4a94fc3b39cdb3cfac63fb926e9636a5ea752826e8298ba914edaf0d0e2966b7f051d851b90915e452aaf5d295287370d1171f749811a469f87ec568f750ebf54b81642d05a27834202aab127269bd9a2937ee92fac5e7b0bc534ac0ad0f14718bd449b1b7dd8bbdaad1e6cfc46e0e71d99549328607a80de567e742db75a1a2ef1f2c92fab07117afb15210590f2ae99ec813dcfd40293414047c8445d8525ae4249191173c4d4930be01325034669cf9b00cd6627cc4beb94dfe224e576550de4c9871bb2733a9bc170275ed7a6c763c14e7eb6637c7129b74eed1cd811227c1880c443a1e8ed947fb3516223d72a997e6581305c8f84e6a04deb668afed963679c89cca1a4a018a644bf657a6051da5fdfe5e853cf6afe4bdaa47b74c3e4c56c55c79926a9105c4785d65a28a3222596015a8d4535318eb6c646b6105447ba39cf3ee03b30645c34d7eb6c0a2b95f335f6f8581f801f442f34bc66391e3c1e5498aecffffdc29e1ef62b855a9954364cabf18249a640de6490c673dbaa5df300319078059e48af3cc6439266a8f68ddd88e93172d60dad7d15215b711cd4e20f5e721a36b03c198394d392f70c22a259f253d8a14cf2619675153495caceaf171a16f1a1ac891a8601f280397bb22f976b08b27a68f6f9e88c091f6750196519b371d30095c857f7e5ef1815b3c6fedde050d4e16a687eeb1f5520516f4d65444f8158b03b52a0139562fb07c157947afae4280dc0a39b39506f68e0627597905c2f3ee1d72062a634656cff9d771ae06e7a09d13fc3b2129bbc068c07f85729e746463ae5170d64247655599ef4807c8fd70d495dd59019cd92816c9b74afc7b73559d29e1661b0941b8041d5a0461044d02fdc0f0a4c417788dfadfec8db3992dbfb21adb0f378bf02558f0c29cce7217b17f112ae38d1224e70dee234f7a169887539fa036faaee3cf325a209c7b14800bab3c76f40ba32f9b008a3f950e4d8995f7eb19930291ced08700f17c1a76cb0c83d78913bc15b43943495f79da5bb2bf486b3e18f02a6fcb92c4404749127cb6f0f590ac48a7b4e7fe070781791b75379ba73b2b3a296d1b95485308f32c9d9f40fda777200d173febc1684241460a2011fddcd9620062e895861333918812d652a6ae0df8fe8208cc9b9c5903e3c5eaa8e1391993eab288ade0cfc63cf3bf67e51aa9afa5f15bc82019e6b7635e7152a16ecb49e8c215375656b2c5839a0a320caa41cb7eafe15494173cb554f38a6c915dba10809b791242585c72b827d99f2a72b4f036b793c68989d8d20d889e2acb93b38e82e277102b539877dbd921ae01f61aff285c4b044a8fe621c3af6aedc57faf03f8a762d34fd62f1cf50f3acb0e451feb03bb681a708a3e1a6181d9e60851d891fc74fb307277168290f13439eec4ec64fd5c85d837ecdef0d5d27c8052e6b1301f466e6286e48159a5384b4e6313416c201a1a95ca7b4552f6e0ef598a1b25fc0f04819506b2489cc046a9b6d52bf56b0a2aa4b3c9a8444d9d1b700cd1c2bc03f4026ae87eef675b139ecc12b0d233d7240b619615920709322c26dd411db9740e81c1dcea8a4b25e8e2ef91154998699582fdf37c695be1434517942f9d66ea0046b33c1bcdacd7865bff065ff40b8f7436e609bad98e5f3959044fcd6bf14697461087b4f7a16cc3a93651247381d407301dc8e3e71f98735f27f96e4ae44bce7a1ba0853056570d330439879b4716b5cd73777f00e20165c7fe4e9a448b9a19e57758e3cea1d9f5c232dcd39fc2bc346d5aa8064c591098e05758a9085f6a743378e9f5d62023f260d784fc671dc7a37b06601a0d7885a429f9a852655c2e9e37887090d52163a07c7d1a1fe859786f32b57e97efa01d04ed285f0499eb00868e349299f230f80772840e26fc334ee403f660e49e90da199a7cfd092ef3215d0aba9214750a9527596a6141c2643ae0001d86763c7914502a7e6db1a6b8adfb01408d739fe8e5557efa903def7b4e7727273adc44721f34cbd466d1cc1b066767af90bf33f265817a99c5ae1b41e57d0ab4e32e72b3fda41e7652ef69ec4747e4ee7c076e6d36d229a1761572ea8ffa31b86f2d68ec5f8150d49af6ec1c6f6c80585a3cb3702ef52f913f0e5de01fbb287cd61acf866f1dab87bbc798b6dc3448e06839955a1204dfcb9d0ebb01119a6fb32505107640910755dc661b0e4940c8364d9e7ecbfb2965b4d825724ea5e1394162584f11406a596e0ac115ee1355980e14ce5e504656d4a893995dc1b4a5aec0937044f08891ec809251610039da98602094b2862c7b0274afe8d49a10a11258d50fa5333fe97446edd89f3c1f6351640744c8ff5c41cc9f4ffaf9be2d09da845ab4d009968977f4a916565abd5f67596207afec05206332bb3c8a1d08b577fbc7895c4da2a45922f9446add20f134c037a707bc9cc817656f252c90cba79f79b179fdec0f55d8449dbf80aab32ba21e358e0c7a987ad180d81032c826c796ea35b14782020275b19446d232170a0a298f3b06b956fdf0ef83a9217411da52e7d6cac174a3da7da010cb6bbd8c28dac5f141378ab594e6f218c8d468689457c106ac1e0d882329ad23686ac61c37bd191fd3cf9d2f7e26bf258e71479e41e8204225faaf42a51255191048a4e84ee5304e61bbf44b6927811e30776e14c3bda0c8f3a8b4dae52cc21bfcf6c64b33d4a9a5184380a4e706ff6824a9a37894a915192a918954a81b8d2467c2b18d78160a79f14b5f0142a1b79e10d177cfe2371396d7e6ca23165bb2c513bbe9f5a75b22bb6ab2b094cdf66a68daa9beeab198cb1387b569e85f2ef76360db0c87566b52b3820e159522a833999057f33134f913b2d5320d9a80349cec6db1d76584ad434b4f9a59ca97171aa7d5712af53223cbea6f82da628dd93c761aa2c88443417977b81379024ab65aaaa9e5a8292079576f19cfd32dba8106547024f0b9585c63673e7d4110b9b307dce9ae626d6729ade50bd9eddc24533a041f277d4b6aec9d82ea8afe09d13f49c47c5b80bd6cd44c418832e74265ac3087626f2938d67a3ba36dc87ae617527755cd7d4fcb43d830155efedda0ef2e3fb48443906b4ffe2c927eedbd1811dc7c4ebb54a0df6cb4d56686fd32e41f65171dfeb1b04030574f1d6dbca38f45604aa67b06c2677f0f477dcb1a052e4dfe9d69731f631c6c80c183f870dcac29693f9a973e4b003495b7b37ffc9c7c69a644ce0a733e0262b99df9288fc59ee2b16b81ffa444f3f4ba32ac2a87126e4026cad8aeaa0ed2855f2e275bc02f42816087595f056060217d65581403d784664d824b6cad49d5376351902646306aa40e7067c684c36852c5c2feba78185cc7da3ef8b0d39396c89675febde9613d034e18c9b5ebf64a8f9dc78531cfc5b7d5b39f22970b155a1b0ed921875e491c77c47a2f707c2d8a5b3785916baef4af222a15fee0e2daf872e16af19335e7404e998423ed7c5152b367a3a6d6bec5f6043fe61f79d6cd6fd801de0853970d3f9eaaef5f9fa6af82b58df478e48aa89ac662fa44b1ba7752a97b142548a276bd52e06c85d51c6ef1a8bc8971df60aa2ee0b690e1b520e81ca9c5937cfd5cc82f2b102d8f8bd9676657155b68d51938bde52b7346e8e34e562d0ac3b4db413267f6f7597f509ebaede084e843a999e710472cbc4351ae23f04120323d3e5f2a057f9aaeb357e8973fe1d7dfb5178a13d59cecd3b29aaed1b0b44c11a66aa8a3fe04fd26f9557c2759fe6b69ebe7a65d0660519ee0dc6ead67d420c307c777e6a00c4921ac6373cf73e137d2062e21b9a6fc284fe6f5c9468364a8f237386ce6967ec0d3b4d39270f5220f1a6a8da497cb6a0337f18abed0c9943a5cab6002f0a359b066d33537b8c6a412d6b10643b4d682b2ecebd85cb998f6aa73a6a67803f7b2bfb0a88ad974082b7b39a21512f73aa725a474321a5e66b23013786277a5cd43f034c02ef3db9d6942729b00db07179f710a49dc0694cfb848800b4f8664bd21445864a9d6b1175f9498962fca8e64176dc6710c2dc594b5bd8c134d6872396bd7768fc12377dc201540db314a01bed102405297716711037eac8d1ddf5615bc363fc504bcf8d1f1fe05e8e56d404e6a56ee61d53d50d2126910ba0b07f73af68d9df1642a86d8293ae1d91fe04a4c998345e5294ff4631d868a084699d27db7ce552038eb5d9cfa629853826183f1066f91f55eae09b0b795e94bc3cdf17e821c86d87c30e16c3a9bcf7a554b641157cf7c2a4eb744ef3e567315fe7535225c650bad95cdab2f826730c6dbf2219d11383cfad4c53a0d58d921a68f2b58fb4fc8ce1337769f7725bacd8a8c92bb0767096901d77ee8020e0a1585925e539515580e51c634d029b7ad6fc89af96403fdd9fe9a6fb17499a81deba8248cebb91f3767b217c87e1508f80877f52f6455d8817c20e631c72ad570b7d757677730712dbb3dafd828c4dc10086a8940c7c4cd3696bff998ed03f5e3a6e043f4923a49b328d4a47e7e8ce1a45639752a7255b2eb3380d39b3d29656a6f4b9409c27d6c9117d465c32cb7d9ecdb9d2c9b7bdec6172210ba41e970b73ae2adcf76f65b13e15e7bf6ea0ad227e07f870a7ed24b338ccdc25c61a81f9d571c29a1778362c1c0cbeef81f7692be6ccc5b7caa4b6dab712634f50461569f1584032a2e87d57e083a14512f6595a4436bf4f2164b90be15ead7c345668f3d156147b157ab17752350997c0ad4fe896f26dea5ce78b652dbb03dbcdd6713f10afa3c3d1560d80ae8658e6b70b7eaf47e1182f7976d9f8a345e173d7e641fb7092780be5bb42d9dd5dc5edc731c00ca795629822f02917155b31c5dc1160c12185500d546590017f2e0ba5e954f63e1cfe4a816d119fc40643b81e54824a8cbbdb929d90c6e71da420c40a0fed0e2cceed794ad6bee2d8c0bedeb0edcb549692f8bc5fdaf90f67291a1c098fba2638e1d02d45c5de4d875ddd8f7b0b6d0522979d1ec1b781c8688e6df72dbe8fe72243b72d92b5087e96a0c9e4565077b281e19dcc3754fdc5a932dd9eb97930193fd220f9e6ffd87cf1229c8f3a87dfbad489a3940020f2f46fe82e938e9eebacf8b9fbd5a4942587098ac46bf63120c61af5fedab694eb0da728f80e0a16265123783367bdcd5e2e844beaa4450759374bb881825d26a4deb0b14c99dcaa4eafc9c03090c7c70b584e784f0bd846e4fb341990dbadef612f5e33a645f4cce128558a2a3ebbbd603648849e223c69f71402ced4a13e8ac3afc641acddc8b3a3a687c737ade20f93697369c85eb1434e276ce081de0015573ca790ebcc45ddad71692ad82ba39cba0fe7fd338ae678307301cc54122916c11f784d7ee73d4f3d8929968a7e7dfc5f5af1d9a34cb6fa904f3d10240bb07ffe48468f1eae2bee94d66c6dcbc704009382c0bd7ab0ae5eff1fda3216d9bf810acb9e74e3c8a060c2ec1045afafef97e0ccc6e3f561d6a85787a1f14fd1be34f816b542be944c1af172b095023207b9b2d187e94384f9dfcf0655f4d5b22b975b35d7fdfe7d9eada8a69049b42a35bdaafacb58bd3858ccd84bbab7abf01adf9d4fbfb778bd5f3506ab476c2a1b8a646de6f774cdb2f04437080b5ced275b940f5abd42045c784db2ac89144b90d0682622dd6db95c2afa3985e729f3aca58c6624ba2fcafb663cd30b1f45ee2251585f0f2efa23b7256c72c754cf75a0df01541e2a7412e8d2e3bcfd138094ae6b2038fe6440353293da9d47cdea4482d5a1856a5a650667452d6d33a39e0157c96ec12e40b13a43db9880e5ee4ec793efe69d6af24dec9dc47504c893da53a88c1ec8a11fa96782f59a4f25fe468786b3090b95818e591ee759bc087c3bf0744c5b423c134bb452e4a06367a16702ea5d9d451b76cef81f5be5ca6d62ca9b0f66fbd3bd9d79fd8e380db54fd5e69449a0ef9e27eea7bad66a5f2f992af258e7a252c27ad7794a3e0ab2ac5eeaeb0e525ac01a7024e1e70526671b39766183b81d29df9e64ef08782463ad99e1d9b55994d10d9420331be2fd056bbff6cc23c0472f23e19cf1afc241c78790d30b05db962ae16e58315484932ae5fb1db0f7eb4c3303442d8fa4d702cf918d4019b114b2f7a7ea284105e87c084bcc4e629c82f925fe7fc3746225cfab15ec60f7965c831a534d69371286dddc5b00106893d94f48428874005390022011f1f9a32d045ef79f9a7e54799afd38901a137ac075944a6b06faec95a039000f3287fc29b5767bb3ab49b9b85e7af070d364406184d54546bd5130ff4879424491e66652280fa2571d62940303fe497c2568d8393c6fa442032d35936648c42b4790c8e27c09b5d8616e370e18abef39837ac4159aa56710e158d96c4d5bf1555e53bce0bb80d97aca9673cd981da9ea26cd4593d92cf45f1645ee4f17f2ac7ab5a7e4708945995ecefd38d3e592232f9788fc817cd859f66ee8621f2b1265b9de5daa4bfc721f579951ab12186b212c863793c1ae12a7b1be99604c5d39953573e25d45e4c7d95b2c3902cd010cf7f407b135c5355181f7777f2130bf49031001b2fc21eb5a47688826285d462ae95694380db906a975a007be58a36599b1ca40dbb08ca1ac855116deb64b0ec914efb232e983387db9e3469c0dd227eade8b6c5657ac6c424106d11115ca344729eb1cbbe0c4efb8ea70434c76709dba89bc61f204ce6d86fdc1b748c84f513888efb31fe25958b3451ee738f10787662a62ba0ae69b0c51e9a0751f87503ce3a67f39741342be245de52b31af9b1ec55e28489ef6732c483943f617602137e3a8e358dc632097b13a7d994d548f3755cd245e1c3505d0d25b56cc96d64c994f221cf30ca62434b6d092bef1addc04cce2ad3d092759775d073de6564a76d610091edf0aaf392a29b867501f56ef24e759736ec8da2a721a845cd1d0cda3e3d40caeae0cac322b0c795b2cfc9ae771c950b6dabb4dc47e85e738f240654632fdc8ec1648fa6381d499df1bfbe355f862245f2a8898695a9dae096bf027cbf4c05ddf305dc3bdd57a7705aec9f2306d6c7cfdadf3f9e504c838bd28993a95cc186783372c78fa6602f8e5f7166f58931c9c0e33875f1f45e414dfe585b8ba12366ef8a341b201d6a927df361248a6a82f837c21ef11c9be9263dad70deed37f9dd294b70779974cf61837b4faa83d87e0a29a05050842ae8d0c5ad1ff5efc2a0dfa54034409fe67041fc196e406fd454ff7f220910ea61fbff248e5e1ee7a8e9469fadd041912132e5536add1efdffbf521f6e5c209000a90072d2736ed2af903f40f7e590de358cd64b18d9ce3c1b44423ab00b89ee841fa357f2030535949bf49ea0040264fc47043f74319f19134f9cb1fbfa13dadae45c5d8f33b2a0c2970cf0e914c01c9ac0e4ccf976e3c8b31e238fa22b2a149ecd0f82b9e3d8c6c3aefe777f668d2ca701cbf6851fe2aab822105e687c62d30a0f95165e8b8603de8af4564e07affb799c7204b7896ecc9dd1c946f499c31f739ac04e4840ec0b231fd4267c52cc5bc855f78215845689168905aec5fc3d34efd57f6de8537965ccdc7faabda4a954e40bdf1b3143740bd6a8eaab9b42e7d456035fc5b0f810279d52c65e25a4e37ea226c2dd53e36c6db20d0ae7bcebcc8f3081b44b354d13f21b31a932055a200b91cff7283f46e24c28456c52c18bf35476438acce71d23de88c3cce6f78f4ba545d6fa5b6cabafbc5cba56579b28a7bee623ee4cc3db15852fbd566668a6a7c4a45592d1496d84ed83643369323a414bd1f60bb24c832d5d7c9d466deffc7ec241e035722c47776dbcaf7c3c7e38e4e29d9ca6ae7593d53a0789288cae0d119becea876231d4884c74ad4b9ff797edde2d81080b2e8901ce580a4b6100c27b4b9e35cc4e87ba547451de7e8615100e91c18d4a27969259ff1186a28d186f57b1d1a74225e87680d24758d66f9f9aabb9775c28c2444c789e1b1d87ad3b1720c5f11453879a2e3353db774ac5b02f1bfb5f19921ae697f5b1b94d3dc3c88351104bd18e76eb2529262ffc37b031bf18d4cc67b63014b96d2b4a5bcccef0fd98a82b0ff911cbcb1cba763738764dd2e325c10180c835e5f26daa88186e91477dabcca35da9c1c902ebf111394f7be9ffdd870e446cc5c9173a0368aa6cae88b9980e706955656f36b1b03e0a2d230971a9becd863453140fbc6d17dbad43a599586f61d9f3ecf221ac97c3e61a1f46bfb3598aebcfb186ab37caa2f9f6a060d84c9e9859affb70b680ecf2b4d94fd2b9322e975e6835209e74222aca31c97a72ceffd4148e2fc2c94354b3cb4b3f4e153e3933fe2f465c42fcce909cb98955d20d1bfd010734940603280a418038a50054c3175b1f1bc7c123fedaeb77000bb315962e8ef0a1b3b098510ee8d1f2f2fa02890a480201ff27151db62fff4714eb3669e90ed6e0382dc14a5af0106e979835c5ffda99d64a6f60c03e4edd941b39c32640a31291663aad37bb3941771b76ddf7795db0f886dee3d60a7a4e8f00847f7b3466642a9cdb6f3b64b6c08d83b0a0e15876d985a4a42b9ca0df00174e95a8e3653976f5b1437fc18e166cf5cec063e203f34900e41e343d2902316080f8b6e76c454ec5594a38ec65bad3c64ca3e86f7e7586a4a51f6ba49b1fbd8e8980d429d6ce445648fb9efe69255c47d089191d125e23fdd2d1036357b2c363ce3e3011a07bf61d75b4884a067215bc0bc51836525bab533fe9ffd4eaa5d7532b153951b94f8d3491a97ad968f34d6fc9454ccfac51204a850914eae33c37d0617c63dd34b221dd6ed3e6cf59a2aafb6d3c5451e40f579e69f516125cfdaef734a9a3bc05038fb6a91077bc235744b397c914e9173bb48fce96f03c8f8b28e801f3c7160330b09e95fae43be9c28239377c8a9e1db8960141441c0e308f98278642b14431eef279140631bcf82fec236da179a2f861444f7f3c7c40d4bf5ada08ed875bcc85aa39bf41936103bc1f4328d350d86b67d594f97134e6cc893bf2596171c349f94be7f5380d4e9ff25a9bd55cac30bcc7b0527327343ff4af8fb6a63fd2cbbbbbcea7a2d9e4b06026abec69298b4b88dd966753cdb005ed7767b1771957ba96a4e4db6af661846f196030d66cd0117b0c083271900d557d30ebc08b0772c7960ad124e4270ae914171e844c837513e9af9bda9264592da1dd46be62cdbeb93ff437e9cf6af8688440f63b9e6d75b0db38b15b07241d63f6e03c910103bdcde03170469f4e036d4674fa682adfed6eca8f1e87fa2e3553a31ab04d0b2c49ddcc6597bedacee3aa39538f1e1a6c6c72b2127716755229289f0fdbf6438653ee3649c6a8a79e5bc8226404310ebe4efc383d7a1e7c0a0af7276e0265c47bec6fafaa0d5986965029636908ab0fe996e5297cbe83351b4da41a184e43ec4457abb9d40ff714d2ec62106a697db01545af3ce8d65997ae10e83747253a5591b3a897fb738cb27eb66feea5e1826d9b9880372a2dc965ebb8876916168c2bc2820597cc78794596917d4f5d456642e00d89e02b28f0b68d00737e8041fbe5066977083cecec3ebd9914b1b3561f7dfb597bfa3bc09ab272600b5d55f2317f5e3af6f23f79e7902795c129207244befee4ca86fa844195d94f001f2c01fa7488c47897c6dc40a6f0f5d5de27c8362b2b63a663fb9df7c79e1b4ba5b89473427583e3ad8ad679da227878706853964ba92b5a7b8ae002e261b9f1112a19f345f737ffe66eb3f21dbbd8093cc1cb447a63d2964e3a815a9b6fcd26fa286cba7e29c2f1597453143e40808fe873236ef7229e595665d0446de2fbd85d20b6800df6cbcaf7e4c050085af7ad4d3b3eafaf7e21798e46b23f0cd421f6177bc13fef9166d7b446dfd133a46062a5bc606fca4c801b0f0e495424f8ddb875c075580c696cdd4da6fbf672b2559f5f22c571a619d9a6ca64abd2a21cac9060dc361f025e2054e078bed17906c59fd56c4dbebb8dccac9d797c37a9753349ef1b3e5da8031c96287ea81a2936dd54059aa420c71146656121145cde616a29127b1cf81cf9fa0486a227ea0a846e19707d8d2b25b72734df3c43dcea52513c2ace912434856556fe30be5857375ead7f47a480af24a94b8fcba055a8c0b70b6c6216f1da1fcb6e414f7dcd609bb39d9a94a1357cc258e0e91e75eb323c33c60e0ff288678c58c52fae7124a9accc9d8b91a42aea23e6ad678542bef521b1314459a748df579cb3fe1e303c9388a8abf208c42735047dddc6d5afeaa4d1d90a27af5e423270bdfb511c00f7308061ececabc1f8ae9b9f005a93a7950fcf21ed696008448078b0b19b80117e1f60030c9fc4ebe91c638722832d2dd2b664289174daac55ee231ef263c131c46d7ab7d994fabbf29c9bf1df31bd29c6842a4908c308520acd126d805b0c0f4dae07abf7a10c71417b38211ac9babf129ad9eacdb88449c707ee6cdfe532e4330e00ac93db8ebbd342b8740055cbd5cc659be5e79b191e63257a8475a5de7ef9e84617b6ecbc12295a417468f01ba05af796bf7ad7d2fdbddc90bfe194bb8c62e0d4b8fe4dc76a3327ffab2c446b2d09333bd1e848f31979b272003d09bb26034976440d12de07e4c86a157dd808c3c4a03eca47a99492c70b29bd0acb35ed0b02ba114e5598d35cc0875e763971dccc2a7fe59d33cafcb0cb20eea2d07107197eb9f679de467de670e1fc3bdf6d4dc41604b55430fd24528e26e075dbeb53e41f8ec9127c0ecb3ebd43d2f8b8748acc2d028d32a893769eda4da04a35ece1442c24dad3a4070e2db3044c379df3d7b4101e3c58a04be6c92e1fd31e5ad29001a4e567929195e8d1d997a33a6710589deaf068214df577cdc6319726a158ee5426c60044a62be72fe87358c0481cc72a5143126d41592d550cc44e824445c072c92c1504c819509723aef85e6fe06b2fc731795d997d0ece770359255f0f58b39a3efdc8e16252d22d853a6aa5e384a968d4fa7465f78806f17ccb7522ada94f905cf8707ebc6b266b256e69913f98e1d2a034b05b0a8f7212ebc8c1ead1366da4901a04e499a6db3b7111081cd9e65ae9eb4dc27074428c9c674dcd927fc2856c7ffc02c5e40f8b40c8836c426d1e3bc75b6805b3aeb21f6160d3ac32a1a00d8edcf5f51f3ef60444d583f7c1e9ed8ed8475489c7948086d80051dbc5897092a2bc595f2faba9116623fdb1dab81b07941d813c9bb7d5ea0a787f0c8ac6a30bc60af3db13d241423adfbe268fdc712df5cfdd3a3764cc46fc0468630b321f1585b820f425b5a15f05da78572da5f9854a8a016bf60c6c5862c71ce9079fb04d19f860fceb5f4b0ec3770a96afd176702e3df76d99c5be3614a90893fadc7868159268ba18df1178402967878e0a443745c749af01cba7583e1d4080b918a42e23ff95aac36b8f2647b9ae659d6a8fa70dd41189fc581a5a5058a625f823b06dbcd7cc6dd474fed34b75eaa776e587c615926c09c7aade3c14313910a22355a6cbd7dad2d953f81a3284f3756f0ee0aafe3014b9b9ed7caac87e06b1af4884e48cfe4d89a202013fc06834d5ebe21ab7d57ad2daea804abd0263dff4f22eff6191085a01d35737b7210f3679ab7a7f6521b14dfee2f9c2785a8389114580ab6fde72409a63ea9d2c1c3a1162273ba89272e99f96caae709cdab38894c604adecd9dc2979390e2b1d0ee7250da72b5a2acbfc1edf0cc2cf76930138d108e1db4d0e2278f5e2075068e73f5248639ef0c48085cfe634848661b4f7af7c1441308e2adf00c017c43ac04a789f2657b4d66a662f669fdd2fdfcf25f912ab48107689f69fd52e425fd8c0f4c135ff93a0a370d293965ea9d3a4c50aeff51a2841702d1984b5908ebf58b96793eea2422ede5fd0ab15b6a4c1454c705712a7b99ed1cfcf8459906fa99145fe4fa173c200046648ebabfb3b1c17feedf85e2e678bd59ecc41dd4d34688523f2e59e865765e268e5ece9424bb842614a259a6bdb497d2b0beadd00364c236ef642b6b45e679d2faa9e2d6f99041230896711413861cb50125e7288560a86ad763ce3f6ee927ece84ffafbd064e621b5a7b399f40953d1d41cb27a4ea1a60e14c5cb0e010431e2e405e25ff0ba2801686eb24ac1b1b05b3f9f3126e6960bd0f1a7f161c56b360a5cb0c1325942653634de521c8d30380cb69cda571f9405338fa9e96ead20f571caf0693918455ef941186d35b40de711e12633c07048cd4c908e92b1e835700c42f7e722865da6f36eb6828b01e4c5b5f5ccd2b054e8bf15854b842da63eb01fe214ee4d2837f89922abdc41537708a4cf4f69406a06d3eb52b65ad954accffa89a64afec76361ad2c2cf12f8d1cbcc5e917d78949203ba58bb8b4ec16aa751e3afce3bf9ddbc012c3d72dc49aab6739fc546855c8a28f737b359c1dbee88f1765922fa71bd2180c56adb979f045f656a4650e9aac4004523b23c21d0fe450c1d8f5d3d2a09d19a4766131a727e7413230f3d7418fdadcd8e4aec2ce022ce028832101f46359ce136048546a10edfa4c730b66d2997ea5b7b159312912a2d9e2ac0d6d31824ea8432ad0c3aa7468d91210afdeca0fdb3eec19c0e29a2c4bc2ab57413dbda83dec995fa88cf99a00fc41b61a74a2fac7e1c0104ef54be6549843b3a44260d5b7202d9af44c76bb67f41b646275b9970a1a39a8e2ee708880fe7b05a171d4aafdc1ffab68535ef0f19d0d91f08949e299960f4fd321dd7a3708d973122f3ed3da1a419668c05f0621e801f14bb49c446f459f83902e7a2dc55a672d0d4b0f3dc9c7c5394697d93ef59659e80133c65b5d6c575640f387054638e3f60afefb3d646b825ba9d04dc8a62c2c1775aa86c74581dcb63ebb80e01909f892ac444a6e39fbc55f44b8b2ce3b9ba4724fbbd855cee091dc36cada70f373d9282fda111578e899ac036df129a202abb10872416bff320899fdb49b41295aa273f87574dea5b28c5c00df43bf36c4122e6d190b1bd385b4e29a88f413082db8d256a89b86ae1dee6dd178f9bc8901538ac9f70dacee7fce57f204bea389966e141c5b45da045217eb2791b26590a58477500069f207fed2308c9ba98e46312f773a751824633c6ab1c0f5a097aa20f945252856183ddb22edfe26c8305b046e900f9e21ccd401808fab50b5e7571a7257fb616846f3bc68d9e48cd151acf77d623293f68ea72c3eebb96cc48a48cee78c964154e2425e9232e5cd2a84624022536e80de09b4f45912a54f40edd79c44090e75e09f1a1bc4bf59db12e321c8efb361696f00e4450562595ce342da1b41a4099d8e1cba37b87f3e89556c3d3d3e10b7decd77d6f3d19a609b63fcb3073fa49544d6b8e648e2ea7a205e8ac872befaee10dbddd4c50015336d7df7af583e2334a9fee85f8e2c8650eec6dbe5aed0c8c5f8e9ea6357b502ca8275517f919906cededcbbfffb25d3aec79bab2de32eef186bf063960f8e8595c4ea032542bfe0ea98a086b3302afa51d69217660a21833e13d592b027a63a9bf4402c1e68d567f241623644655a6e726f8be3367b4c271912178ce6f468fe5c57dfcb3ae481e76357192636e204aa6800a45fdb732721e00c704666e210db20b828c01c0d1c2132bb15572f15529ed0765ea7658b3d23d2b8be9cbd9e175cb4318a83163319a5ac2794e8fd645f53f3057335909c06bb8010afb0b0485efd09243d2cb13d6c8a94b8fb359e28b73c01c20013d38e274d2a20e396d3234ca7d91d34df67e7206bb45a67547d07f9de2d174f465864d123db84796ec9d196c87deaf734f8e6a41faecd3a780a233a39a8079448c1d89ef9218d3a53affe281ccfdd4540f0208f744d74b45fbf2abc65cb6cf2131cae72fc40c8d7ebc5a65b68b5d9edccf19121f6a4b32cf9d7793bbf0476c5e838457eeaa9147fe3e30b50be44f3a9d92fc9036d10ca4ce084e4d6098c6cbe772c243dfe7c744af86069a4723e8bad4783a4574bb6a71964210a84bb312b8525b52b9e8be2a1d5cba4991978f81fb17faa6411f6cc862a8c133294251afe63b90f74819c37dc72ae7fd9a3de578191ede4a03829f3da25db3d29f3b5751d7515cbb259ad3d2b19e929526ff4f08cda8f8955f726e0aa5274c95445829ec3147dc17b9e609aee71bbd22613399083aa2aeefe4eaf950bfbdd2e86f0d3723c5ac7876e8754ef1e2491a68ff98f387d85db2fa738ff48ea4f32778d1a63f8e790a78d221f2dbaa62018cc15323fe7e8cf6fd91f8c64fc24dcbf945e37b5bdbf719abe6986f2f0e9ba922315fa4a5068ec75561259227f6444c1162da3a68fec49ebba3978aad691d35cda5f49d935d9ae6ff07f9baf835314f256e1ec7f8c769a22c7eaaff5257269292e5824f9575686c70c3802db15ed13a2578bad743afc22b63fdca8759c898c65be957a4897005cf332fd17bd2225725f126948c4a689669281161f2ebe0e81bf853f8909dc76a6b424f9cd099545d2607da2700e75407de310ea34b7b7cb6be6eeaef01922ced69b2f9b799d0e2435e08164677c881247f358b35141c8e577c6e955f70a5f9e9c28ba38bdf01a0b5520cb44281743025cdaab599e973b08e57899cc4229e22661f30cfb86509263cdc6ec22160af980ba2113c088e3604f2dfafcf1f108a9211fb5a78bd73a7b24f2358fa850bc44468d129b4e7999881bf921a014b984eeda780cf947d6870d6fce0ebf80dabf2017be53853414b3a6808eb976a4ff92a7599af20931882ef2abf9d71aa5ee8a76746bf23691d9f5e0d356cbf59a8474bec3cacf613e3b9838610f1dc52e052f0fe091a942199a3df6cdde0fec750d3b756ced78b4814cecd29cbbc5d1b2fb378c93e86ccfb05b8c6ea8e419f32c1a7c8d421dc1e574c8437196294d0aa5b5aa1d0d6ad74e0894bef9cdf9d1cf5687b73781f8cac685044600855d7c7276a6cccfef8c71114e68d34c08e12c236d566772a635c6aa051464ff681d35834c0f42a73147ddf949c08dd8be1db7d74db56a0e3c33259a9f402c5abe6ac571714c8acbf27b8c203f26d78e85061c7b6ddf714c14a3dcfbd4eb3b533490240e2673547872d003d9805c447cc8b4fdbbac0d5a7dc6c740ca341b816515ccb4f458e2e76b0710d2595b07dcb66bb276c9c72af3719cb11fc7ced370d5fe15b25899d92fec9ece16b30c408506136021baa584e2ea326c2728f1b1429d7102284db6527a54f910fe7d9cd34ec9477925f268a615019c884ea72a55237b411723af8b7fe307a43d4850957595ffb02509776b01bb2e0171a47dd6d8d330e291993317c0f8b7b3718a64de3b8b0dbfc958a9a55e1bdc6ce6a5ba60a5353bb766957646b6ffb8a683c57d058ccb4bc4d6cebcfe449cafb27d77acc1bc158e1c120216ee366c068da67bfd1ccd4f4f3ca354a8a4d5062fa0a77bc63fe2381413f9c9e5921aa1bd3f81269a84b7193a15f4ead344dc742ff0073760c3cd1a12b7b2dda3b65efff780e0f6234831300ca6a9d379de99de85ff3491db5864c1b14e12501a3c88d424c5ac446d7e1e878af45dba4793ab6bae8df75645c0a0a62b792f32b9455c4582b5ea09290c014ebf47309bdaadcc5297748898b233d1e30cb1ec2a77528f90cf7b617e355ffdf6fecd9cd0b981e33ea17113d64491ea2d7252c9fa89fd1695785a2c0ecac2450ccb562c7a8f21d39d3a694da2ad48644bb04d30930f78f3749f4fd0ed989771e357b9d3e74f8cbc8b55cfb5f2dedc6107445105182a6665ff142030061e5df094c169f237f578f9216b22532aa9b70e63d92da91bf80db73480734596ecaf2d17122d7ea989953a6c4b143e4959ed43f0cc484a1c51cadb010f57ac30f923af5adf7f0c8c93e860224174456ebd2ac33b975a1e64d6bbc55f6f4265fa39a6a2fb90c229fad7e8352949b0d062b9457e9b1e9494a8716447d6c08f429f459d45abf0c3809cd0eddc5c331d900ab46e92feeff9e47523d61f72ab10fbbf1b4dbbbb82672c7e18f0dec1d4b540bbed335961c817c5e14ff5f9de3f127b13104a669de0d5201145de1a816c0ce9eb18bfcd515aa43a54759a260a96c6d4aa9e9c03fb4e76df2cdce9d099e5dc6ec0a3ce6a53bbf35186384373560f9f0943d2b5b46c6cbd3fbd6253464b8fda7120b5ee6ab6f98f166f89d1ec37aaeb635cee6b276825a8f93f6f336b25a9e6c71998dac6bcd9ca05370f4ab2bf383c88dfd1af972cb64c09f6a59a7c0a3d5875d296363d83bc0a623903bd7edd0ef458d93c6e28d775cb2c8da394df83424165977a41a6720a1dce23e539bc1a85a08133ecc70a7cfe2af3ffe0cd7d13aa36392033a1d881f85a178ba66e903266701786c2f1b74b2e76cefd0553fd48f892b30ce7caccfc68f85a4b03a85de6fb8ed9ca89c55646c52b435fa585ff3347c0faa8eba7cff9bd91da6babe64e2980ab3e7b8ece0447307952b896c78e2b430788ad6f9b5300fc7891e07745350f7c4494f24a38d4354497993eca8ba04cf2635ecaadc2a176fed851db0fe35fd8e479910523de84b7caf64268cf0866c2dc06cfc56be1bd2607d2c7ebca3d7712d8ef3d124a46a232974bb56f1b16589ba29cecbd9f707cd1625b63d408bf1efda79d43a953a050713feb284c59953da36663fc0cc993e626f8f84a5e8c3e04bd718c1cebfd63c3f3ed0f45358a8a6f64a3cabe11aec0b9c2419c83f2decb893f45a122a13ce978309f5eb20f72764e4b1f2464f7a7d70921d8c39a2e2f8de5d5884577bece192879c46736124a9477cd19b5824c5dccea7ffd224cd93d7a4b82042fd52f2ec6bbf5d9ce4e76dbba58107fd58404e20d60494376f43cc28d8be9c314db64fe4e8f1941a1fbc5662d7b437c3afc729538eed548338a047e3887eb6ebe4302f03fc4df131bb60ba4d1929c6efbf3c95e2deab68dcfddd485d4638ea844c091ace7c009bd18475aefa920aba76d21b9e93830c1147628c113d14e8a88cee68b5781cefccc725778617078a1135ff9db1e5c6ca6e128199213d23f8cc1212cbf1cced24399b441796f54b4fb1a72a897cc1356e362f472145921577996e7b91c30a823103b893f38854b9c39cd47338c57ff7ac664a9b59efb5f5275ae32b903681f7f0a520980ccdbc8f7d48ac1b44b4e64a60b3c68fa414a5af26e1a25c571c129ddc06f98a3c1afb27730c80b27aec1c356b9a4d5f3d368fc9a5860692797d0741fb56047404bac50895b28c9fc705a32338d0d48c592e770eeccbf839f1a605cc29e191b3893482d8c177d885d7df0d8791397077eab12fc54431d29ca9b5eefaed1ccb0b17221812829b9ad77065c3f8a0f4acd4a445abd3e74741362e6dc0a1132ff3ef29d55167ebeaf100294eb2625065aef20e28e7b3541515caba517faf1c0c697d7f2b756025122ed3c1e26fab3c25c89e8d730464d907194ff9bcf356d7e176820d41ffc4d1f3a78e32f9568c4f313dbbe29dc661174bf12dda6b77f9948ecab443fc580ab161f8f30d1788d7ded020093c6b6f184186ccdeb12f38c391e48d1368542a5389ff421bf6c54ff997c0a1eb1ec2cc805074d8026b13f6ffb532998f0ddc97aafad1170399358eb49b613aac2db2227cd5ca2fdfa6e33d6cfb94bf4ad4a50987987e176e6717f2ebfbe220b433342543f7a98a1da4e3e2ab2b55dd0876476c03b9f04be6bea62cfd8628ef6c75bfe033f99abc2f354da6d644e39606d637fbb746926c6d460b625be3e68b315816b0b92964db7bc2b56525fdb397850dac7eab7db468b798ad37d9d41384e0e92d6db3f669b015b930de844271d2c7cd9c930e79895ba86dbda95deeb130c15f35f58814478d16bcac93c996e8c18df88e7b9a81cb57a7f37f75332e609348be246a50c8e64730fe7e418e510ac1897892cef6ecbd12a6da99e8a277734d6c6f8f756d38c2c47776a1361494a4c0575d88446241f417f9d3cd7bbc6579803abde8d106c121035bd486d3d46395175750f8eb5d82fd84353cedb96ce160e422dce332ca12817066de447d197480b04486c8baa58d3f0150682c8578413765c82e47ac5350e6c335539410fa5da11288fa24677b81dabf6ab8b8760ee6e60295c6a92746b47041e6ca9664a167a667078998e6c3679490a0076a466ca7fecce51a5f34bb36b0cb35ea8956822425adff7bc707db2a44b6883a943211329aeeb89470efca3d3e22a41786ed0b81493ae20777822b76d7e24b686f58eba53973c3ac13b0f354a93d72c4d0027884cd4fd2295fefb2a8ac70d3be10b67ffc496fe1f9ecbe21f3d40b857836f2c58659336528807041a1c08274a74f67211edf15fb34523156e1045cb9eecea163e653d993cd3ea63c50d8e21944c4b472e11305f4ae6484c9f26e1e2b571bb4e475453043612fb04a76f1584c390242e53a73038b4dc0168cb8e8e0ab7bc84370e9748f61f321fc0d3a5d5ab218cdaf9d6799d43f420aeb118452591ab74b2694fd94300e0b254f407ef4a33b9cebae7c63db705121428fff47aac1eec78ef9adbf8e10b756f881afc0d8b687279cddeba86256d8361bdca73e8b045a56597b17a60570987bb68df4161dd3b196a487b3a50bb4cb98f811ebd6df0fd963abc162134d7a8ec4e6b0d2a7cb793d34b4fdb5475282f002b42fceb074129919a6482a4caa3ab70cd4d4367e75378424f56197839bd6fea4b8c7b63348e86dc2cd6426e4c3b98eee8da3be84b14142e8c1104f656b04d8a17d5c26b064c84cf1bc60db5372fdda1f1b2bec6febbc0d5031ae659897845780a83d61a07b54fe2f7d1aff6292ea561dfc0be15a706b85fea4a8f36aabc1d7fe4acb28eb2b6a559162804ab3e335ecee67c489fe87458ff7bb1c03b2812e183b4e16aa0bbe0bee37ecdd840515661e5a4f9e9283aa53b71157ffa3d0b30b7a71539b6cdc755679afdb2be30816b4ef1cb77ca8840c60d5e9a0e05f2c9f8a7efad210f260a5a49e9508a3daae37026d3212f47c2706130fd89040a2b311ff8e50a3769ba0147df9d90eb9c2c654841400a4137330e0357720db35c8cd22327cd84758b34a25c94b909360d19fa04f355f114d870894ee9a539f2dbcfd0fd1ec105db1bb5620683c2238710241550d5b714d802ead1347c1ad256c0429dbf100a82107fa3627392b93020fae6fe73a64af4afc9bddaff1a3f11a044729fa022cfdc89939c0ece5d64b7c8add3425c66fc9b1f9c89ab46ccdd0866f09e426550e42e54c415f200ae58efd2a0ac027e5d3c76472cc8fdf560c37751324df98298ddea9c2f49cc5a786354f18abcc53c06166d81f7b6241ea300c43929089184d77dde4c7b18035def6a782c45de55c3a2804080d4d131200edbe26039b8b45ceb82217cc42428fa61ee1e518f820235192ee40c9c2dce372e46ec665f4389d9f387d69071612471c02c6d994a8573d29c6080feeefa5899a83ff0c5e31698180d1db66b3e392351944be5a7b5cc196ea8904d36b995d34831feea370a6dc8fc01c88bd78ce23f2adfee69d0f77bf87c0c0e379166a6c0843e43d2e99e9da89e763451dc530c4978a73945bde53463bda64d11791c011cbe3fd898da90877a582ecebbc6abf24e1bb8b2bfd7336a19794af0c5ec28bdb101d1b5237296044ed439c512fa11ae4b0c8da044c8a80559d2f31dabc709f42e8522c7e41715493469cee90d7b282993120f19695c3e01d8dce915b83c5b097c4c60270d907371f8107a7847ac2b3a4355b3ad023a4f153f987dcaab15d635cc07b13b97d40668c154f4078f1c523b38a777d47bd7b0eeac1ffc07eef9b99b7875574cb3912aba294b8002a5e0436c4bfa0d6c03c3c5ede4adef43d71a9477e6e82f9a92fc990198f65b08735d3c9fbc1da4c7f8b4ce5dae6446b8af809a6a95a2eb1870e876b98a99f72266a5a2ad55c96ab02068b6e0231abb87af7ef09617d3f1663534439c007389af53c8407a821623039fa3d0bf85d2442764290361eef2d6b7b69fac011528da0b33f704d193b6278491091fe96c48a5486bf54f0441b2b5491960cf40667b173f10d9ea202371ffd8c0769749eacfd894ab473fedd971a04730b6dda88c12eb3173bc80517577fdd4fbe51d7cb05b41908940601b0b4eeafff14a7cdd06efd76f1418f1a59c94a44b9ec3e0978a6c89049e7bb16368271dff7edf3b267f9835a3f4830d5aae422e23f6546c3519a28da3e861f6712ac420cb5a682682453be0c52666ba5a42759b68700cdff9f4a18e2a5b0249f8ffe8d40d3a55f3ca28b00c3c0e616f21bbd7f6d30fa981b7f910e94c6fc33ba80fa5cde0e348c03f0f2be7bf89bdb944946a29c7db175bde81aea6f563239df3afcee6ac3e06d3006516a61a912dc788722c1b2657d7273b08a8d3adaff977ff281915e8456883d8cc21675f8392d6a2d38a7c5a94caa73fbe866a698da269ef05e62f7919fc1f11b2b7b6337bd4e521ff06d5a4629235c8ed7277f29a96231a1518bf7ceb304a8dcb71b5a73c88e18509745682e6d20bf79b72c98807b2019ff14f7118c4d876cd09b3e41d672d70a72d717eccb81fc2556a50208b684ca1654c43d216beffd2d7a3a0373eecc8839cf4647d13b59dfcdf84dab23a99b4f134518f26eb65fcfc8a63677aebfcea0e8df0f2343cc224ffb9f0098342bf2dd568f81a607640353e18571e9f9a6f85fb0369e5d2c9c53b385b4f3312c63a6a435b6d8e594455039d63551bbf7049bd4bd848e10152619926b5a18615d25688eb75f68465341a38f865a8cd4d50c9f3cb647a7fdaa2d0050e6a1db4ff0406be8944c3b14d80d06feac8bb99cfa2e3629a47fe9ce3884a35867cf8ba987d3ee4b27d58c1cebbb90d1e4be7250bc83870a448b430d124593178882617a18f829388137731f84e78249a12bad588f39e2b1961e94cf2303d7817d0846af882ca6c2c39244e8c11a53d19af603210a80b207de3946e1aa044528e25fa56b523c24787def793c9acc2e3ae7697fc13a64b629e068ceaeddbfa7d5d4de6a65fc3aa5b7ec9351834ce699a4dfd21185fb626d7db57799ff90083704538786698675059f7a92f972c99c7951f0d0bc72363555eb99866f8952c442b2ebf44057834d7337fdd63f8ad3f8066556d06dc448054462ed0c43c3cb04cc3cea1a3b576d614764b444c507590567ff302e0a14214864754949b5632e37af0114fff0985439fe46e81414eccc7b478ef79e74fbd1a225d611c3df689477f0909d3368e0c57311ae7559ee45f3fda30ac2377f06d9d5a7e44198611bd56a2cf5a4f11b7ff4850329b6f4a474555f7f4d2a049097ae5fea99224bd9e85475216886ab71d6bb21cf9a09456f2122709a99b5388fb7ec15bd018fc24abc7f4c6d00982e64bdd38d94207a35ca333a708358b0cb3ac7b95466aee57dd3d672761af05f90b00c2c41d153bb335a0212640e1a9cb0a2cb9e892ca5f01c26cdf97003129f3e04ccddc4411f7427f98ef9281a6918644a40582726806dd9f405e8b8b3df6ceb8f7803bd158e2f30ff58095a85bb075d4e0309f9d5271c6de538c35e78bfd2dbd4b5ca47ca01041047b9efb551c27683f976139779430431c3b9da2fb86f9b4d7fc9b42206e741eece39125b239229b8c0a5c81a3634d15ea197e31ae0b077a6d76f6ce778a9478b0145c6af8c7519e15ac84409c5465bbd8816799568a0116a2f0e73b40e37bfdfe900cec1eca2a3a5b7a213eb014302b0610584c52eb2374701d4ba9f746b8072f5c64d1ac60e89e22e407024ddef843f0264c499034b247671519138e436f989ede1ef423bb6e200ed4495a6e46614fbae286e913a27f0220f942154fda2abc42cef4b6951c8cb94502ff306d69d1da6245d5647776393dffec4bfcfbe7d6ff661c987b712652f093112ba008d55ece352effd4aac86fd4e89201813c0e8ace1e2cb45666b1685c0ce1f95f8618daf4d516270ebb814aa6b1340ead5bd18d09f773186b5291bcb1c0f7c7ae262a0755ce11eb354dce09ecadaaae7448b98b938e6d3a87adb999414516927ad6565aa5f6b78288aa6d5b093e4b1cabda955696b538163e04484319f3165d3358e316a926d5f1941a6bfe378f2af9a70cdb935c15683694ee7cf546b5c0cb57404527fd0eee935a56a4f9647df8e3918757558414328e7b650de2b7d0a05859a290b94732534b26310e7dad6c3744d9336f9cb996c78cb53fdffbc8aec4e41163d5cbfded5f9a67b7c2a87502d3dd9de38e122c1d9e407aecd8d64435aa07b50babf27368aaf5b2fb151649d5ef9f652284f0a6abc2b0a1e34d6eb21c706fe288840ab5157428641aeeda244fd930ab22c9fba57aee8700686c720c30c1f568172cb838903061730b29580116223f7b81878831a9f8218739b0661c114c7449fc0784d5dee1452ee8364305029c91a678062a8580d764b6e3d5add627e37e1c6c4bef1513c280e54e7ebba896fad0f25ae0b981f4af00252ee98c204dd89f2b714013a38310ade177ad780e34304b0a072ae7d91acbfc15e78a7e6b086dd802643dbb5952d5bee9776f0c1288e42ca28f4a7ddbe2d4f0ac6b2c96f21c8cee2a7efd341d0fb29068fdabb46f0308b12366bba773c43461161639c320e512ee8e7b17bc674c4148daa8e7fd13ec9f03e28f2f3739af5979cfe1ae2cede2eda0b7db5adeb3d25fb57f79fde083ca618ac4f3b4b9256ab1c441397bfcaa603f3f253f6a722b1fe80591f6f13d35219a8d649f3a68e55076cc96adfe1e1b3d5422dfb1010ec4c656e685a5193a51861d0e71320de6800462035b08e631efd14d88ad218ff8cbf70d7e86544e48471e9dacc04c36fe55e2fc253eddd82e303a4a37820a6f1f1672d314dc0ea74102cc2eb40854cefbf70b3cc71f7ad6f8e45169f7881fb0bbbbfd0a603ef05928fdae0fb3b820ec7c93adffaa26df45181df245bd32447222e771375b480f25b53e922bac2e0c5171cef182013ee0a020fe6d2821afe1b3ea03ec3bc8eede51d25199d31f240c24d62db8a68400650c7c1c3dc963c63e647bdbfa8e2b39a73cd7d7c0875cfdfb043a6de21ca6b1c996887f2e543c93d819ab4e648dc8ce27a68b56aca2f723d9f1c801d0a7ba36eba1edce68c8b7e9bc7a8770952efae7d08ee8eb9d2430952971b267294bd7f63507f84648cb09ab667f743d21b47ae4f54016574ba70c55da532464cd93b32fe8466eb611389df6c8961cba401f2a505f4664c70ba90872f6d461c944f6ef62e1133a02a0f479b859e06184b3622b86222da7316c51e0d26062979aced9736049b0db25769eab29bd9071f74d84dd908edfd83edcc1a19807af79a043adef4acbc5076efe4fa974e69552b426fd0be478ae67abdd8a34ea64cc31d22be4cabda565353cd3c8853712a08dddb4b3002ca468698573c67fb4fe6f780df520416a23a869b34106a03f8fef6275e730b0ccf2bfd23e94401169078dbebc571c4027210a9fc71d1537145c0554fc9b14782868f12cc7a47a7bc7b20e89c1b3f42b12e8728c0dfa48c4cfb902142fe7bdc1855cf9771954916bc48b4bf740fd97b6723e2084521078a6e2db57bfa68239aa1a42c55930fc79114419e44675c9525e61242ce0c70b63320b913185d77bdf394374511e27d3b097722acd7dc9e421c79947c9610b399e399706b16fe0e56d9ef01dc037511d254eab670a7bfdf8671ff85bbaf91d38b369ed1b21911568993d81bfa3b4b0f63e9c27c1741babc312c2c9f535d165d7ea65da3163701bf95e4b25e0c5e5d96ac17dd76fe70574c5e906adaa5a04fd766cb6b120d7bbff59354b6f00d016f0ab424c3a3a83f5e3d55ca3b6bdebba05d3082843cb67010446348b18e6068f8ba7b64c1f62e003c9125d88389ef94cacbf6a61fd53ad960eaf5a3ca3066c248d7cd66af1019bb5a0acc39c5fa94696f197f984aca7a48a4d477035a8271d5f30e9f5dcbc379e26f0d9093b48e78e31b8945fc2ee5af25fed89a100c44fbc4d4c3e67a3f096a4a8255a62fa6c4236353405e41224a021caa1aed137cb472217d9c186f6ba612f0c60642898ee07fc0c31e8ae70c8180b76faabe2b58edac1e7f4778c8351dda7510106565e74e59c979baf8548feca986c258577c5365ee46defd86e982bd1a809444063915d956427688669e37b32ad851ede6e0bf53f6f843bf33391c7fa8b319554ba7d4df64446dfd52c31dd1b3735852f983138e69a47ec50987eed893ade59dd9e9d25a0d372e20b56bb37b6df212b0b7321785517db395954969aa2f959c3b6becd9a799c00097202b99502245c39a84c798e62b615b4618f19c4de9cb1e0553f2694c760543d00ea9aebf2b647e72769f110db5cd65aaa3c4ac2e8c59923199b18879fa3e9c767353d034d589a177781da3e2c330bd463eca617be266d378f40800641f803ac84b730e526425124c8abcff8db9c8da3f8caa74110500a1e80981c33a87cce1380bd23a2ba0dda4351365f052fb048250725f4b493f5c51cc9a9c0684b82761dc728874a68d4b13ee5c10546fb1cb0d12a0d7b09a2602508b3a3c2d7793ca9363769a41a87b7e99a31da6a87635e6dfe545cd3ead6276a9661181242d715f96634e62209162615d5abbef48a672c7894911df4be118c19c56181c88651aceeca48f57470f1d6102e1467b75e180e165d116e5e581b33618a25ed4c82df77ff2952d8d11d5143d98b346984101531dc2d5588dd62f7afb5fcb9810cc86129f2fb42c0e2ecc5d6b21e3a3251ca053666d72b7468e885f45bf3218f999e15560c680f8bb51acac1efa8643733556d957e45f31ace4d1f09e6a6fe473a9e0a0311c1d897c400a8ff4e6f033eb776224201c8a6693e83d33a3538222f52b73c681c3da3c512153de64da7b0ce2c63c3484bc4a4bc4578c83c72e080321e7c8118b6de696c1bca51f572c4f09ac9227baca52a94478de5eea86f1104cf61251cb454a7b385d63f7e42583b0b4c450524e14239d65365db26cb2a4517f2ee24d97cc98e595845f85d76fee3d8cef182e227816a4938a2c79ccf0e03596803f47c05524202f7341fd604ad16464de37ead250028f07329dda28d2be96873aa75c0e15cbe125c6d5377ce6dff04dfad2827cb622dbbdc859e36eaae1b659b66640ec7cf9367d3b93439e6f0c388e4047d96cdb80a27884c7d28062531d106c6a614af7698f5a42a79793713a3c277a5461fdcc2c4a44b2a0c746c2a3a511ae912da1858d1d831e8b020e88926eb85b368e245fa048fcb50c180a0b7888ea50d3f68aabab1032cae87a5e20dbefd8bd6ada078aad963074fd1e754224fba8f3d6f05f01804e0eec66bde745ef4c824b25589af12f4c78b9818c9539e70840d39fe9693d3fbf374b66379206c1843251fb8b9c69a920a47f8fcb2e8c5c56a243d0784ac5e13467d6b6183484be4d5343d1cb11e9248870468b5a803343f7cd4f9d29e7a3cd6223893ed477aa7324c962d18e1fd02363d8f216faa76c61154e4b0b69bf77e735b7197f5a9cf2b45a4f4620fe8ae44d468ae319b9a0444a7fdfbc8bbefaf5a9644d7cdf7967add39145162ba4d740d1a90edf2bdf142ad36dd3494398c0634038a533c90853c4c1f28cad649e53f828cb31193697877f5ed6019ac61fdfb6093862d29a5bbb90fd5878fe62cc2750634cdd1c9ba55fa2d639900bd6b1465ba6d9f424635141789bf96e163f991b1d413031284dcb55650491284cc853b98d1208b3ae42bfcd32d7871bbd9922efc1cbc6871353cc11590168dd94bb1410c084476b4b2fb2b78aee4f1de1226768b375127921480cb66eb04db8a7262ea600cfc68c207f594bbc15da4bdea6cbf5687a975d3083158d1bdaa4048c7c2e966b8744ad6ce32c0fff0ab02251800229c79c5bb3129e4a15061b394a9390c938a881092a6afe9d15008b4eede6fa12f82a0be042ba8024fe02cc70d842e65c6b9cc407a88c4ffffb96f33a2f775659d5a328b1032c755bd6d6fb6b69b98a562378f36b9597c97d4ac6d17c12c4c2d058604a8e29ecd0ddabc2f1f9c154d789b681c8693d8998502ebe1f4e4f1005c51099452862629f3b378db6f0434ed44d4020f9810ae868067f9340d2e32583612d9e43bb05cae66747d79b72e42e7bee0d6cc3dc65d90565ceb0c2ca463c43d44421994b37d54258b2e8faf7c426879bab32c79c850c0ab555801eca827e997433ce1010fe236a0845f9442ac66671e7fe3db91070257c48d65adb4f19e87e4d9885fc6b668139f0229c7e5629c562b0e88f118dfc57fcf0e9c045682921d961e0459ad68c2dbcb5e535fd6d70c3fea8b3fecee85544bf5ae0afe135b70c8276e83f24d2a3c20266ebd88de835e23fbd8f7b6f1ea684e7598eb7efde98a4ad70b994df27e148834dffa968b955125b8e39d1cb4fd607788eec15b5dacda6b039973ef580952de0765a5d9a736bbc126e77555325b8a9968581cad51605dce38abecc4bf163cbd7e2d43e90236009693810297ced045ac7db965ad29cc0f8787006f5ce7156649fe051fa92cdf6e9fbc85c19c6429f9ff1a659c3d3bde29520d568bfadbed2e09af3c28671fd04fbf83287a14e54ed1f20f9d6c314899f25d4269f10e75f1cfcb10591aabb9bb1b653bdeaab393df2295b035eae92830c0c04e5e2679f9dd9889e60b4167046a7a1f95930daf32246cdc22769ead64ead73b02fe4c53f6da83f0ae17d93ece65e4d53fc0108ddd882c95a3da227610464a32a4b368b555edabe2aa87c705b401669220641776940a61d6711fbdf17554df8dcb0e8cc8e63d752bd89bada0ff4f772531ea218c9bcd43721ed5a3346b4f887d345ceefa65ea35647de358bae7d6dfb62a9005e8416b5cd01c66f4bb680d6778009c94effd6c7c7cbb65ccc97e7020f7ec3f9d347d170bec45a25ae2d44644ae680004f9f3508e8a0595fbd2d94e4182550c61447cabc10a4ee9616286a97d0dd3aad485ade362da64517377edb26b264c358655fa9c1b2fddcf480bc0a91284fb8ea6dee2f9d00f56a3ca543ca51d3174519e8f16b2feb06148aaa3ce691898303196d9d2fa72a8d6cd1e91dded52fcec85f339a29d7577e109b2f8f46be7d4c5d124d342bba968414ee6712cceb45dbe87b35cea59882018f27fd88838d421845cd22a93cc1e5ae76566ea85e03c7ad6261b465e6dac3ef5a87fa47ab2081f9000b3affc5a27512edac1978c1a6bee9981a9c06de61227bc90c1b1beb54c4f4db48cbe0ee6cc80b59c8228a364870464a5262d7ca1e6ee605f8956797c8504749fd6a7d8f6ae9345a07fd6808f7364deb0407cdbaa7f7e79e092bbb620f7e08d2eda1c3b410fe8f38393733631488bdffdca727f094000125ef41fedf1603c899c8e403fd41289c08b703c80ea6dd7bafde5459ee878405361e8519a05703bcb5607d93876eabcc789903f304520a62d0a62871229079747dead4ba0c56550e7d64dc883f0e41dfe46979476fbb2d69fdb5718db3295da96bfca25c414fed349c42e5c5085d29bf7e5869ea00bf62e5e45902a13f083ddefa0b526dc1ff0b99bcaba27712b5b41cb69faf38792e0ede0262a5157f9546847c4f813eb71af03c265c59716d1caa3c9e4a9885af1e8bace0b853c636b57291d0171521512b87f63d53fb72bd073fbffc94d9706c926b5ee9f8dff54843d05c634ca7f8a258ab8735de86245026a61c4c6d5423559c891d765222046277ed183c3911d2522b0a52e4cb9c7561bad94845642c55bd16317d793eb474636479981a75e14c9e7e7480d1d7de78f09d0a778d5bd6c7d1cc183873a85e8123251634d3a13f7e7b208ff93b90b707eaf368e26d87229a38fbaabb2240476474bb7b05d1f06e062536aaddb6c04b40e88bb8f4d9c589b6ddff1d7ab925b591f3bc1fd9d2a82aaa9f285a9cdd130996a7261a5c077e449c0d2bc1bd2b55ac86176cb30fa9bffdac4449adc09d79783c217664bb4098b9a2a05505846695555937d715c1424fef2735cf8e65123d742fab8d7a8f256b6fd685c03fbf379d8644ceb87efd6c510eab66f8449caf2730360e320bcfc53b93742d537925616631e6f6f817741d8bb089740757389bacfaca3eae3770a3a8af1b8a0b7395f94df97a5745f6ce8d1657c52598ae89986563598e01787a34489d62a4f14a172d47b70ef5e31080d80b38fd042be9708b6d1f9a9b78d20b461b4f2b5708db13ba39ee24e2cce4467f6873bb470d9e96de989b66d1f365da9574d2069cebbbbe1dc52b8420c839c61456fec191480cc5794fbd58616f7e0116eedc72fbe3daf48a2e36a3f4bb78824a6333629eb0fb62fa47e67c6d6a38eb419fba00b3d4554434c655a127db48bdfd2edf734efedec0ecb607e1f8d8078a32b01efd311b61f82604765219f0b5386523bc91037f02b115b70d38336319b04dc96527d09db7ea8ca7e9c5aa2ddf4340b1b2ed9a2746274d6c8bfc4b1b8c4df875e8e03382f8683269f6b73c0b5ca5aeaee6901830fec2c84e98f144dea6f3d0c484e17a55446208137b18ee96d6ad6c5088394b2627d022a2920897ab077a2ec8e49900e0bf0b28d558c479c66831bf38d2540ed18962478a484a5d076ba6cbe8d9147adce600d13e8fdf6d1524e790e5193bc055b2b0635ab8cfa695c6a14b3068a4bed1f6401e192a9cd9c34e65939ee888df9531cdd354f9bae3a06dcc67aa0d0d5b9c5f6860afe4bc9823c28c41c321abd7a807e5d8e75f8cdbf3ca7f9393c4973727037f5840fa351137c54cbfb0f217c7a170bcf9c06aed98c34c9007e8396cf6ca94205a8ef52ee9691dd5072a27052b7eed481dbfb04239c157c4a868ad4ca59d380e4fee894080bfa6ecbd4cc16bee0dc682303918856590de80f042d9d52d5dc64a9e376e0c24634ddf4691e263a38658d75bf69c13e1d888caab6cf547cf6eeffde8604f7e9d3ff5c9c0b3f7fe0a160a022ca20f3fcc7e13cfe926c61dd85e51b12219be01ed048f67eacdf834305e7b821f878038258a9e4524a66de31a3db2bef229b170004043cd076b6bc12958ca0a0d3704a5e8600e1a894e989ba469f3a73af63aa8a9ccb24ed699f0e9a6172a37e04bdef8ea48017e4b9a88837674ee102d2910f16ad256e8e348fb9566fd6cf2e7c086b0a22a9fa76d04b936e8d221faf8d772c5399f51f90324f1527fc89e99a033daddf3f0e260aa50e8874acd882012bb089e1b1728e11dd50193d7a5206f3e7d795af57de961e1cc8cc47259910dec3c44a1dfa6a7f0a3a503be5b41d6a3fef4765d7581bee023dd75bc61a0b3af36182029b0a7b871348d4d2020ba7f229c767f046d33ed80696e215eef989b42c0d8ee1e997b16147948c4c790db60d317c4b4a0bd4bded1a323717730b070c366632992640b6af26b56c589d59bd63913a11de92f3a2916347c3914d770bc3c70208c566ff9fffc013bbcbe62b74b1344e0a65427e052d699d490b6fa184da2098a60e9536fbfbb4a456ca17500151a3e32a3affec716a289885d2d9e3082688bf753edce1ec62e59e0d1baae5b85897ea2a7c776bae5dad0a2c075cb9e1845f242b8a0445f3ff783a83f6ff6eef4a99010e6156a30b1a1ff04566a44b5065d1a5e2735ac195075ac1a98c2b8f0eccf1ffd41fdd446272f84e627c6149bfa810aadbb517f304f19e3c28b6d88e896c6a84befa424e6c39d886de914ab267ed3727e4b295c94816a44c6ab6eb55a52c6be224c040107d39c9be79056e7c0df84c0ec458464b16dd715ca111ff50e13369588bd5beba75f4d57726b60981cf11dfdd35540404fadc893d1ad3fca8c0910f453d079d93ffc54c9596331eb868e2740c2d1e824128cc1dd1714086480ea433b3fb6c4d606a322f575421fbe53de67b9a526d4c443b9dda06db8fc88ba964a7858255ecf6c44d67c8e30b7744d3b96ce1831316b9c9f9fcf6355bf755ec3683111ca75737e58ae4a3ed52849da1c2f609a47bf90b9b88cf9acb3628641fe867d1951e56252822c7adbe4ec583d1f9144329436262a3ae2db17921fcc12b3fbe01df0396c9fd6a6547c526503990ea3ce76ae025334e3683f74b79b90023f062e00332efd66c9a184f4e3e073084573c47edf517b0060f3e74e84b80145007526313fe4fece12bbb0b84d81f61a2b3c13353e44b58e9fcb5dd50c460b46eb0b0203ee3a63a9345b87c4e40f555367682f724da864fef30f213cba7fb424e3b68366b23841a0b2755fdb63ac3a744bc0bfa2d96cf111ae0a34291f8b0a64dad8f9f9f5bdecf07c57eff3b46f452ae546ad715d51ed325f9bc81c136d8d5c1c43b90a46e307270393c02a87ea43309e0c3957dbf4e9fc20c6c1a22093ee7362999c4251cf865ac3bcbde2ac9d6b064b3d15ce58fb829b7d55d41d385066a49655f5921c37b9666534a63a0a1374783942fcadc6912a433e0fb562ecc5b06d41f771d97a312b0f81a6ab27ccfa6dd2522f24d528a78e8f116b4982e540d6916b5bf51584ca66e30a4954b23255a27ba70975b69592ce5ec923df5322fedbbdc43bc851c7bdd607ba9aa304300f5884c2313243f7e76d31eb74b7b32c2bea92f9d7d414521de7de6797cd18ecdbab153b301e5835a6f949f422226caaddb1848290f32ed807c2be85ad330d7b5d93aa08f4e635e2e6b1a9c9f67e6c47828068f75343f80d3ecefb5961e8e92960c16336f59c56f05801419b69527f0f92d7178611613bf8bd05e9805cdf8850c723aedbf1851c4b59055d109b35d160c671919da3b1d65c10ea69b1fc4c2cd6d2ede7774f65db2b65810e5bb7d11b38f09a446c2ddfa8c2a9ca81a48cd006afefa2c57964e1339441a736f64ed4d446cbe509a19732c6cf4829ef7ac86c46c8c7d8473f523094ae4184d0f2fc386b5b6c07b069acd794c47b5a8e42eb3393a6a1d7c07f9c28de954ed7f1e7db361b1b0cb6b1862647ff3f5dce1682dbba1e1343a8b2b618235d27ae2d24b615d0d5a08dd27d692d104f3cf553d5d3b80df847f4ef51b297066a0a7ae91e348cc945bc3b2bc578a74d92b61a0afb73a39d21c5bb11c2d1bf5dc0a5a01fce83f452cdca83224f2d9ea1411635b37278ac775f6c865f8b0d669a65e1ce20a17adbca7a9305695f010b08008f0607d34d4fbddbc6bdd276b61564494a2aa6b2fa64804590659924d2e180b342722e2fec0ba81e998a65d1deea02be3ab56ea2a11960a03900b525779889c7775c7cd8974b87517bb0f52489e92c843ecd5d0f424bf6afdcafb56fc1c5e046696eec9b7899b0973570bbfbad386d2a4305c4448450c28c8617f7e89f2120b92096108f09379ac81db13ea67661d6e10cb04d6fb27efeaa1803396b18b52b55df42967801b6080cf02a60e8d13af66b3900416b5523f309a7a1aaee3f4989475fa8435b477210813871c80804d0efecfe37a47484e9e1c03c22bacf82defc3233c24fb0c094cd949125c0fcb39a53ffe20058ce2d7f390e7482d11812a8423568fb828df34ff90658152f2a11ab23963ce853be9f48a514fc5e32a7d5c1a532d4fa75eecb80c877626119ef97d211e4c3b3084e3a9f36cb62f01a06abe95bda7e2107509e8dc9786f3e845bbdb196fda813747092b05747fb69c31447ecc9dca8317c895de4340e00f0f3e86556a1a25848a4bc3df350435aa76752d73857c226be8d826af9375ebae7de1d084749958190ac60630c6f364722571bf92f3b7d649e82440adac169313c1bdc7791ae28e99da803dd5986c41ef97ae3d79b1fa1f5fdd0686fc8d1b5461f9874d5ac4c7e5c30d5aaccb03028ab5bbae7f495a56082caef722ca4f926761ca657361808969b738e27313c063514324a3a3c6bea4b1f513fe3944ea0306132c4ab330ebd663e2a76fabdab564d20c4862750cbc8b3791d2aeba3066e7c9362b1018bcfdfceb6363a148e7676753aa14f9bd579c275c065358733ea23ea5ad0afca9eaa03d0f942f16a311a2067acf104c1f6185ce90aa4f2c956a85f702f4db0ddd6c10bd102bbe2aeba19658f7008267221be11c174330f38091e695590be1b7cd4a257a7bdf40393991b1a908a8975d2fd76416fa9d63a2c6a212819d1edd7d3dedc617b07d542dbd44649172a2624f3c0005141b0cbcf17045a55b3d580539c1cc41e5aad24d528d821abe0cb07779f927fff5199926087f6921ff17943e22e6833f9e85b6406b9112c3c99d9f552c534d7abacadff9007e6005dee5607b398132d4a9ef5b152fbfb43431587481788905aa8ca5577704012b9e75129913ff320711f88ecf026cc1ad9de0704532af955878e30fec2a4947e5c3e99be0dabc797eea87a48ba716805ee0b8f9323c83e32f000dc8f39d0d481b57488c32c63841e31bb768690d2741de5550355fa0b8cae4662bfb4c76e37ce68ea7f7107f7332b3ce44edd9d993e5b554b28e586f328f0e740f1e648f783a18d8f3df47ba3e1cd75997bbb6402e4d4d4c99f3b9b0a62f2bae926bf10b14f9f028455423e8da76df542c122440c8ce185775c22d289f264d19bd47dc1468ec9d8a5bcb283cdc547d3fb5136960ed753061f9da33c2345527bc2595f45edce5811afa014ec4fe4f7ba43020ead169bfa656ce65675333f0296be664a3c7c901de8319766289a34b6094d715be033cb43d73bae49473049028a6c661faa555a2a5f3499b1f94ab351e88b5b9abe8e8d87197c9ee03d98128f4c9226b12a13bd2559a999b115bce040e1659761146af8c6d3449eed47e8e89c9914be8d004dd566fdd9c942d7fae0ef221b27039b82019619acbd6fbb09eba7b1de4c136f9e84e548650ecc06cc4f7e9c1fe3c63d052babfa8191eac958081dfb6a09ad222cb68e69419e27c7dca3bae98d13c7702125c38a23d67b5c8e15255282b6b0960257da75442f1ee2c193d4b41fc17c80834ccd41af34b8fb5ae70c7bd9a3b31f3b98862f133546b4a33b7116a1025dd73ac3bc5a1d819c5704e2e7b53f04bbecf15e1314c85de3fb98568f5daefbff3f00c15177ec467ea31c7671d6f9c91ae14d7179d815df52c78769fca7d61798a53ed1fc806bb0652ec28baafba52ba102efd2b82ef80d4f70b5a67ef37919e7dbec436508f8a44679db9a064297650d6fb967fda313c0b07e5ccafb6d7b1701bf2746866abc2360f8c09d9561cd39133d1f154f7ad17a6f1aec0a5c87f68468939bc83477dee98bf8a25b7770ac5d889d3ad49aa800d4ecdd0f858d03e0aa12ac3e6192ba16ded29431905f00f244fa923ca1c74aad8900e6481b323ae66988d538d49ca0ad140cec06bbbab8c48103f860501645ba8a2074e979ec75c50e3c42efe06e3b2c8196a42eb600f82dd34678670f9a0bb61f237913dc5ef08234f67f0425d0122cd661ba2b4314ece1f29f943b2358e211e33e1b94d8333f2b027934474555f5a76d8bb77547e0c6faad70c0b5e3c4c5f8757c77d45005318e4e3954e3700dcb93defe234d3b88c032fd09c9f4c0939c7e02817f8d67a11d6953dfc173d9147ea9eb7b1918e6cc76eee611dd5e019de3482c143a6a687307971a801c36373d3e2ebd4ae3f3e7aee1d071889a27ce21ffd0916fb44e585f8a48a896fb13f2faef259d50a8693f6879b7a07a39ba868a7c4a50ed2bf0aa2851aa44bbb74aa5752347cff311fb32f62fc85620ca4151509e7cfcb04e5cd7a259a1030985fc3ed979032376140c9f00a3576cb6313b4f467ccf2b1d6691fe7703673c988b765c4ebe097007dcf513d93ce34a2869903dfc3bf6aa823dca1a40dfcee8ad73ddf02ff0b21e3c6e2d9bb1eec7cea0b4953400b467366eb453dd291f1d162274b05a221b1090661f3f89cd19c026240bb01c63e7c39fa6ec011065b364f3524ef96133f781c11c5e4bde86df51f1c8aa74c76a24eff9c733bcdeadc6a1e7daf90c8278f43b7f00e0ea450bf1f6610abaad49d0ceb2482740ae1c371948541b806788d0afb1f740ad120c0164b0bac418aa3eab8b594375bb99032940037ec1de66c66909449f79ea889960f2ece8dc3c53d456376d60dc0ca400265a66f02109fb8da7bd0647e8d2deb9973fb368920ba0ebc87bd0182d9a4e71e20988164c8d896ad3c2f130a3e71d3f7105b3bae45b2a556013ac40fb08d70fef56bbb53ee818ca17e335fa78067bbec9a85ce2597981618f53027fa09a884328f7e5a493aa116552ad9c19d42d09f1c17f68425a873ae4d9c82b166c898e72eff9112db6d8a1486e602db030cd2461b2a9db9cd069d1a3aef1a0272f71c0e993593d6a308096a5717c27003167804abe2d8434f880411a0e8384231a96e003bdc4584a0a5ed9e5304cee412b362e7b0472f973f9fddc535c5e83177be01a0aedcf30b76672d36b1986b5f5074a70294c340c8a8cb53b52cdb7b98574b1ad6964d6fe4827e68cf27027d0d95f3a03aacb57fe1892a931e2dc6b27b8cda4cfd3aae6babf8d6c1caa40d9d0ec6003d9e3cce398f357606763b1df665e11bc2299a2c6227bb84a1d66e920d4a57bc6a5081bea3caa52a6093d722e0e85d597b3d1b01abdb5d92ff7f0225241a9952239a90706a0fe3f1589b2347695df186d6475792a175c382689ba6ec3fb87182614189db7a06d50dab823dfdd80d6c32e02c26c10028726a6be65a514512a2ce93d1bb4c6ed98f99ad5961666954a518a171b0972d8d690c4a2de1bd858907a89d347a8978474c0050c3b92c2dece2a2f8dd3773d18493fc7a25a7c13139496854db64dfdfdeb495dc151cbf60e8bb003bef307346f43c3054a34b1cbf010a46c83c63034ead651c673cf61712693c360eaeba96a943e2f46186f00820f49fe57360d06c29ad0092e4702344336ec0d5de52efd464f6c4c326128e1ed1976274e88085e3041ee5991d96c3e9303f2ecb16ebef91a0f72b748ff38a86e41670c43158125ba23a91db65a0b93462705afde2235bcd2450938ac15ca6b17f568279b4e17c500a0078dbe30a428509235656f4bca6c4cc86dde88f1f403628bef6ff3e38933bf95f4bb7ce1daf312c02e6bc7cf31e51cba648e086dbfc3dc101674db6ec45e31d79e62d048eaf11e2a45c67bd5c7d4ae2a7cd2ac2e1635a93b3e3bbdeb003bc45ef1f9857989c6d14189b81297720e692c855815f2bb091bb783fe490467a940d4edb3e39cba38e826ebe05e1ccc923ee1c870eba4c820f794da5ab251c0ac74d975cefb7dab1cb44f166738ed307cb894d3485caa4c198bdb32780461e06cdf7377d1e53f3c3b3c96e0b3894d3af23eb957801b5bd54bc1985fd4007754c017ce629d129dfa0f9d2020493e07f93ebe283a2bf08245f3ad74099ecb63a76d8ed98cc5e864d588e5a93888d8556a6b909ce3984b44434d362d9b3911bed9cd173fb39baa4fc4ea74ca8581a196e3b03a07dd46ca3ea3622d6e52c7b4eee0624d9521a3e5355543ca84e3d826f1f718c083db914981bdf9a6277c7609c2ead9c09fb4a4ac128a49b67cf9e4e9e501564e9b8c46087c7d9617c658b3c8104632471b52878e43ecdf6e15d07ca9179d96341c9cc0d3c48f266a686b4f341eba5b20fba38dbba1d2ec2a89bacaae080f976ada1f60dde8bccfedc20834f268d21ff386de9721992bff5235839704090c5302814d30f2bbf6c809e93c7821799401e5ee2f1521f5d15bfd2f412d0fde0d0aae4e231288031b7f26be60a2cc598862f82fd5039982036c554ec702de361422ebba3cbb15ee3fc56a8b1f93d4cdb0636cc0ad413e36010aa330370af4b50ca433bc4e07994ad908703a27129f1b349195ac6ad9fe1926c6c5d6f6584c61a815043fc29047d813f7d1a5210db2cc8e544eb33753b450daf83c8d12db04da0fd004cd5f9b91aeb0c1171d8bdda8a96faf84cf141b675664240c558fb09c745e4c41b0df031c3df0d1be48977b59cff511321d46aa9be0df3ff2dd77432c71116a4da7c12d4ba8e95c1bd259b5086941fd2ab330a68a6f1168824533eae0287db3186519545de9db37677cfccde808a67da0a9e2e62fdc657c2a13afccb831a7cc57b256359c6aeba2d05779804923fce97c3563ee25b8a9aab737379d501277eecffe4572c675836e7e43f1320bdfe052b68594b4159a850e516de6fdfe125ef127ee3fbf42e020c18da4042f8d13c855eaa86fa990ac959f025218a4e747b88d3d0d271b52a0687a2ef6f024a2bb5ef9c66b1aa09eebffeb45a52f3ed0d12016b7d17466e5fc8057aa80bf93329195bc0455f766245bb2d262826fe3a8609131b78fdbd76d843718bc8006b34dce5e94302a5af0ab29c554841b6f95a3fb1d567e7f209e7c88a067abfe85db360070b3f1f2dfaa67a1476525c11ce5bb7d419fe9ef17e850d1b7ee384cd7c9068791d3d412780af402a49bf6bc1461c76ceb4ba6445a592cd32137862e9cd7a466d6db84b3d48f815a802e0269ee31762726642ab2f750b75a2e54e179fd8cb03bc130e1db68cfe4d6f8c476ee898f425ddc2a8e9b77dee9a05a148982cb6778285682cc21aba48af852a9ebf4d80ea515f24e91861bc3efa496aa870f10cf4222d75bb808395c24e9ff343db1bfad57426a07ef9f25f25507c82d2d759e88abde70392bd489b91961af7b5d7f647667cd2fb4b963c4897950b42df4f9d2333c883742c98840bc7d09aabbaa51208befbc3b30371a17f191da3a787a30691220b42a5abe8c26113e52a14cd54cbfc6fddc4698b908ef03b92018fa8b9e533b381cd4a7125fc84f04fc56478a50675266e528ab7af7dab7f2a8b53403ed767bd40016293c6aac819bf08ba169087ef5aa1714d178d10ced1a2911d4a950d7ec3cf05a481cb2a530d6a19fa9ab02cd9c051bd84b3af642d31d939b4c313eab76dc0c5df5217cacbfb3ef7660d99071f50ff6156b9c9134a86ca5576f97c7f4bd0cd0c0f6370f0a45b2e6470aae10cba3dd69abbd6d3b13a3c5e1dbbc629ac668f490367972c1074f8ed22e696cc0f184ccea5561df85f5b8ab7c13381a2cf652ae0e4e5990d515500ada1d6e85a8919ac35b05c20defb25dd45d7e5463120d100b701fee57d098bae6bb75cbd5772db2f058a1d2eb507203fd3c4b61a34bfd991fca74593f76599bd51d62318c83d815dfc3ea7bae3e5d2db7853dcca8c853e4a6e87d9abe7a8f558f46886d30c54a33fec9b43a591cfd852fed017cc2ba013bd043612106d5be2b62a2275a27ad975570dd1a23133efea6963940b7d5eedc263c2aabf8d706a63490aa77d6f1a213d25b5c8df6b51f93308b2a71dc4a7fc3ae13a2c349c063394e60a8bcf27a2f7ca99a5c4a75a30659818c4805044c4dce3cce07d9e6e1ff886d85b93793bc4277fcdb90b4da8dd4ce07acc25f18ad2248707e0bbfe664f742e13350e4f6f10ff59cb537f00fb60d2f1ec5428688f21c8da71d7427358f9515ffad03fe8dcf134cf6382ff0f521b8de6efc9dd2fa44528b36c36b204b07d2236612a51f1fa37404d5f211a352c7044a0b4252ad3e56f6d263936c0972dc3bcc0e37e23f4f10f2832b497989271c74f0ec0212c6826f05f9688a8f85b563bcc3aa8e5b2b257fce890221d57fb41cc1be2ad69b231b4e71147005f397ffc1b41116a6dee88552c4616b5b447bba84eaaa34ac2711a0ad9de784e9ed5c467d7fe45e926f075ab920243a6a48b6d4741b73c78a9e200d52fbd8f53a92d66bfa58a867a8cf5b7ed3a955f352ba6469864b50e45066048cc7ff845447e0afa022562635a55356102c6e1a010243cd1ed58add3334576c4542ecc769d7ab32c901a83748360f65005994814b2710ecb3bc2adca782aadd4c1af6b20fd3c64c27f3e45b580a791af43ce882484108f01d0492a530c3e4869470bccbd681e3c9576c63e0ccd3a8e31e3027c11ce99f32c04cf051690f1288514f500f00a5962d2bfb665ca664ad1339358b089342ac6ef625d3511bd902799549b7ff7f364b21dad08e7e5ebee6adc98f464095d169586ee6c218cd8fe470f0934a4d9ed029e22176005f093ef8a0144325ca5320b6df007cac7d57c5dced398cd303d99248aa0bdbec03467a8888c4c3390d07f8a01107211bad22d5e9621c6e2b79f99d111770e600457bf37508740c32408869ffebd36b2b372cf9d6e510d88acb9e8cabc5431316fb711299c930c9ed0e0b87b02d17b5e9d643e627f77810aa695103ee797290f251abc568ef2591ba0f03628284d7f494f2e285266a8fb2ef37d1f0b780fe5bc4aaab95a5b186acd2e360a599f57f7f8f3df3b4a7bb9d67e6139ef2d6e25995e1c391dd3495e84f5ca4b1a4567a4daf7cbef3e0c0dc79fdd8d9986fb4f7595b5b8f50d9d37090aac3fbd28bb7588ae5f105cd1da60dcaa7d7844fdb4e584578711f889370cdc86122a79488c53d3c659f0f869fd0ac5c12008de7bb2210af4dd6cff7d75ba09157dc0792e5904ceda75f614543dcdf785577cf241fdd5f9265f3320c2af6db1983da14489c0ffa6be1872d787452c87cbb224fe822b730dfd1afc1af407b2dcb370971dcdaed23dbddd18809b1e51e6f24556a07d43d39f82c70dd84ac7bbf954c19a36d2b10bb13e91dc7f3d78194bfe82b91dc1e1a15be800984eb300830ff0c1cd7b70696e4d307249f22dc199c04bc31218abd25628a57f39dd1613773ecad56eeef082e0d9036d3163e5cf5d8ffd378cc92d23978da090d0675ecd7b2c299861fbdd2fd4f956e453266aee1ad4d6b7bc1da5e00eb8f2ab1e925966b593ad07ac7b26a8be9a85e9bb3c90bc3aa2180de9cefb1ec7894c7911ec3789b6d19495c98c99bce6a8727a33492ec3c2cea0a15a6537fc12ab47629c6ec680c70b0c84b3042100168165de0410da37514ca4c0700c3e005474c1d2e1ccc0e6429cca64f96f5744e06b7df837401be5572554817627c1df452feb23e9892a337ed4c8d34991b820a5eee0498e1126067f19f2f0665882218223368893804144b83cfa28ccde40f3875632c7b72ebff3ff49e31b11a21814b13216a9da8cb7a7f438f88f12c1d6901d2e0de390b5e4e76280e3953dfc3299dfab6f12ddbb338358c58fddf09e3d7d29d82d6f475870807300f9aeb5077a4b14fabfc7c1cabd255ce9bc031a732b6543e3ecac3f67ca63b9f9b14132770149d6adae43c6485e21ada794ee29f6eec3a182180354eaca9cdd49f2ab57e09a18871d468473c926a308737aa05172d668660a9d1fbdc849925a5617ef467e6d071b93ff5906da4a68fc3f406fee9aaf8bf2f8baec9fc81d3a39640cdf4a99fc03605e792216ed6474534eae9f2ab9a754abe5c9b9ef8919713e4e88067a7d7443707c62f4096bdd0c971b904ae2c8296d1d8941439dd555e22fcc98b51c3759c493eb9118cf5da1c21d5b85260a72043e3f65bf70fdb71ab09db7f0f96c060272a2ef2655b4db9bd1e43c80c7942bc40bbbee3e380e044878e92fc949f247d902339f3baa3b4acf127c9ab36bbb5092952f4db6708e8b9ae4de2ded779bea4ced7f65bd1ee6ddfbdb398edc31890c31700a0f6226292994bffeccf16153752fb8bebd54c20f917afeb165807f9b531afb30d5340c6c3180877c812fd62a2c8cfa44c9bff4a44f5dc9e3967fc11460d8771992b29c4ab38b36d3a2c371f422b6c1024c354f008f58877a4070042de71121bc62bd7ca40280b4fc2da585d9fced2668815c6598006f24a56bd1c5fdafa0ca507c1734fea0e05a603ecb424d152d1e42f1bb7229152e5edbf9ccf54de2f1db74d87579d9826bb221be590b5f7b025e59e85c22428f31456cfcc428a6685025d5b603411eaa173cdcbf76b93a9d9da6a73737c1d855e064494dbc3b7fb5c66e5f167c1c77f149d5f6c330bc8b28eef58537376cd6f7ee5cd72a00caad351a9196bbad018d965c7f47e2d3e0ddeb82e0b88be294ceb2b921dd379f188424f266b32315d1345b7890ed963ff0c6cbb83a4c032cac641b27e4f515670edc8842e15ecd76703081e206e73ecec9f48702728baf5e6ebfc17e966f57c529952fadf5fcd8f70a07ed0c0e138352231c25e93f82bce20c0c512957e2b5abcf6abe33a7e4797c697085ada869ffbf4da9ce9abeabe74e23b883f431ede755610d2dee8d6260b903792a2cf15d78cebb48de6b7f31a059a421d32e0dac3d2e4fe18812ec81c7060dcfdbdb5db703b243375af5f8fb620e7945fb67b4c189847614a1551e41e4ce4852a8e5369e735c36a57d718fb730cb0f372670c530bc46c12596731c6f0db4fe052b0d83982b594a9769391b25470ebfd7a46d13176c0f39a4f0b92f9d50c3c48590073f2665b47a42116e117c0bdb72a577c9d292bef2f350d08eb5a3aac2d04e4b5a6521b4a2e5c473f0b50e86357618e10fab14396abd44632381550ae0140287c2efa3bf710ca8b1b1511dda09409a2e18df9b04b4730209f269a21b1f06744a189f0a32ba96b681d1eef0e1ce1ecb746866885f7b210cc91ee4ad55fa134a3b17c46bc46cf35d02b5a71f1cc592a4069dda6e8d2885eb8ebd868cb22a353c9d81fa520abe9b1880faec4f764e07c9159f90fe62b6a3ee25e36277509ff4c8effae70c19430e51cdf813532b68ec09f7845aeaf95f20098449c5278ad19e528437369a16836c8f11e29493a2a171ef240126baad8d6f5f439679c074b519f20b59f5e1da324e1d5566db343c32c8231a373acd8bc22fce58a56f41021e3606dc122983893044ea5eee1167584eb74d47a37651b1c95461fb011b428d7a5a217c5311c36c23c1de4fa67072979c1f5dc41da74d547483c2f62d1aa050714fad4f6115802868a21733d115a233a9709ba6e2a0e47135f09e8e9b450406b731e1637930d2beacba06a245363895b15ad7a837a54f8003a3c344b6310b3bc31c48a3ebfcaa999884ba741fa5723f0a24cb4ef9a5c13edffbba81981b5859d2327e0ac6585fac321e52f6fe77f8cba14aac188d026c44dc479d3fa2fc7b74b69cbf629d44363cba4ea5cb7e65b71a8f4df6daf6fbebc84506ad281f7a623a112406e5854cc2cd3fe4c54a2117cfb9f9251d4e00acc908c64b310327e2df2618b52d9a1be2e736fe98c8104e11b8c8f4138169cf30b2c83d4bc076a32b5142f60aaaf55badad2eed14f53cb401d99cc13cae227b6da68cc0e4f8e2f2d44478a0c0d5078ce6945b324e89f6f1ee2f8853df62c588a68be391eaced557604a027f243d85b232d798720c2e0c1d744d904c3b2eab387f79fe266e4668d987069649d85d1745e186a2830aaaeb829389d964be991bb42264fa8a335eb821f03b9253989c4a8143717f66933a645b6b2c635c6157559a3b6ff4301b449633bc37e7f1580d7a2b7a91defc70dd176d08bb005db87745de7e8348b548c188902cbfa2cff1421dba5a7a04a91d2477540d73d45da782a9f81930f774c2a6d9b8c81cf6ad769649331d2461001d76ed4db6537f352ae94df46a1c13274de345b66e4fe1a8aa9017e5c81da66147cff5683bb2065024343da814b62a61734e7125cc3f714f26d67c319a4e336aa8a6d42fa74c1bd57287250b29f54e16d902e0eda1a49c610e277d0e9d64ee155efc259acbee4f37621cbefedf4829f0d94c9ebeabfe3d1efef7be68e0b06fbf5a2dafe2db39972179cccb260e51c745abc01ba0fd0a7a56f3411d7dfc354da667f76c2b841692301305e072d9a0b5a688280749828207542b699d6c9de429bcc61485f93626d1e30f0ab3d1156ebda18ecbace3de4157c9da69118ddc8935b7fff16fe39f1ee981ec31aed8284a51bbb743deed248ff640e518c04d893d7ad0d70441bde640c1d88c29c89a5a78f30b127edd22de975de06f790b626f15f57454e287d9eb5f844137805e035fb19ab3efd988a9f30763c032cbb887b9a81e7e42f22f9d0dc62b7a80531e09ba9c1fa6855945c5d68b5f88a266d79bfc5bec8d582c4d9a2b305f2898932157caae1b745e5192f9103450dc802db3310113103e72ceeef42d8b41e9f14a3d2bdeda598ffcbe0c13bb4b6b7ab10c2576d92488ee5ad89488b56656442e9a03ca43d4144b37c67adfe47f435571cb35eb6491a1e16232f3c46395383984142e1b62368817c716609bd09acdd8a6f07a4046b63303a831322a02b0dce171f02f700b2b22b2968b204b7bbc593c25c7618f0a2151ccdd6d5572701fd3afb1c40eec240f02f28f4ddf06769696cacadee1bfbdfca04932c2fb4eaf56acb1599f1de46edfc58dec92be6a00c17f045fda4640a0ab042c93f12bef6a410747aba478d72ab82c430b511fe3936c1f2fb88ac28f03e43032a153a1dc3cc8c1077e9c16c72950e70eeef826b778cf99c07f7dc2bbb4e72299a6241f67a81d88de60f238e92b59d712cb18a46cdfbac5fbc606fbca806be4b9a0a7460723eca8c200170134b8a0f7590a570a88539b17b8f299ab3a694481107ade89f323bc7349e4985d5bc8f7926ce1dc0612264b039d13f2b211198882a7975ef45a22382c323da6f14e112f7368a90c1c0200175a891ba58343d6d67646f0ca3bce308181d46a0ee11f92fae796140f3c7b37e98df21c5149b7f40fbda8fb67cb0020f6290ab2e50eef1e669a653c117f2154988c9989ef405a0db2b32154b60bc169415126fb0af652c7dda13c33c02c978ed05a3fa76923d7804266f78932ed7b9cacf71d1720c78848bc2fb59e2fc2803f7605642c291703d5f4fb35d9e8c6dce43b70ffec0ddc79cf5b54243a1fc7afe4128592917c20b3cdab4fd3f3b338acb58c6549033f1afa74d0d7ad7f7fc314351fcf37d787529b2813604f67f7ced9f2c400318b244279bf1f3dbbf8ad11ab32dca2b88a17e1b33a3ef2b6cce21eaaea4c8931bc12ca1e330c593a38cba124ad5e3ee1d90cb1beb3ca00894b472943680398386bf716313ac90448cea2a29ba2019a4e42b9ce711ebc1599d9bb3c668d4683ea6357978ea839d60fd7318de3b6dc784954cab44a960094cb4564469a8c6e643e153d1e41671232f89578240146014620492d56986d1a678775ff17f16f854f83a30417a620bc54f972255ee0da573e698f6143e8e44b2e70ceafd1ffea81410c64aeb11f665e6badf8f54bc4bee8290f9622665b4dde81be02e227c54ed543c5b9a96d32ccb69ceaef829c7cf06215c4375dc341eb0eb108561af97ab7f9e116012c3aac7124e87a72ee6f61ca4046393affaae3be230f87b692e560991544d4c2182509cc412a0d4cc5ee6553d4c49c23c7e99b6a78886f4117ac0683cf3af38ff9204b2748315f85f72127d82b73fc36719f3a24d69952cc45abb9310f07c8d24150d9bb0949499c9899b2eab17396abf562ad796a1e6c2e742c35f3bdabc2fc618c7f59cb9c08846e10e2defc14362c4b87140fcec3842b074aab01c4ea9ffc8350baebc032b05ecce18c59916e7faff06e56d2506309e9c113c31971f5c5c7c56a23b7a0313bc37a9983e5665d467572da375b4dcb2b6111fd7881bfabd5dbaff23badbb63631b7a6ee3facabfecdbc4c68ec6701519f74ddb6ce63e151b761f05a4eab7453e8d26f92c4d4b1243a1d99cc4825fde690928c153380d95ce08f09fe2b4ef9c13f3ddf2458a7fd390a5834607279f81212de449125929a43bce60979b302710a5166a152a9987d2d9309d58cfa898e61a0faf992f5e05022f054c0359cf7984518623f49052f18fa86df75983e36403abd2469f1cfd3d7461f342812b1dd11853398ac429e6553933825121c2d94f6de309d739b73fa6ef52a863d7818c1ac32b3ffd3688dc1c8397187838cc10a797bb6a3e228fe5b94c4b22ea58474078454e1139bfe02dc30cf62dd2ed9231bd76cc9cbbd05f868739fc99dea157e39a5f9e4fe16f820c2226b9dd112dfd16c97c18c6890443d1ffe6144078185303a33d0a6d4f5b03bceb53bec737cba9064a07ca951350bc34fb6b35df61a680825f30b188745a1b57afd63d622c2d098757ecc6e067e43bed85685af5991d27520505c3b1eb35234200940a8952d64ac9621f9d563e32ceb27c1c01f1ebf314dd1c914c0fa019eb74539738194c95526502e11d76e56754925f04864ed51abad4000033b3eafe297227e430b003f5bb275c97b0c434f2866940c618d4b06365d445d2ab6accc5118ac2226c8bfede6fa4e93effa95a4fc05231670ed5f30e541f3e2fc53c98f3ac0e1dcd64bbed0aa448a1ef9beb17d700dabb521d329d83a9b8a5056613eccd926175bba76d83f20c6a2b2e7b3f834977698decd3677b6ff09fe3b95f105e3cfb521cc1cc8bbdd58c6a46cc7b45388497ccefbc0d8340f4f5f2a20c57291ccfbe4c5c63700a5ae2451d714b645edebf1bf3e51204483f341401dea31d01a0a2f92e34ae76f9253592511602c16c06b3c9a882334d2535e3db351f388aa67944574bcf17da5b6a573ced057dd76873f441e230dc6e68d9e0473ff46fac55b1d74c68391395fe65598f4ca0cfdf2d9a5bd756b6c008ddd080cc0572b3f4991709bae46fb324d549cd59bc5b8332eb51c5df5c440b0d0621d2f058519ca252fa3ea6cabb7bf3c0c3d47a9d753102c0f80910e3136bfb49985f08675c08e0b6597c74e24883fed7cd58639e62d5bb30637e873044eb74375c372c47f6559c70273c996f578c1326dcef84d99ea7c19817367815d292709fdade04fe309db53e391b3284088c4b9923d85d20e73c5c158220f9e0ed4df6057ddeb4eb5c287d0a452350ef9d8a580efbb799c700082bfcb0569367ca03c3b5d4f0bd5ade9e37acc6cce36b4c659ff6664285ee746aeb78dce336f4c2fdff4161cb035644dde0f98494c9e5ecf96ae59ea74fd97e7362ec0f92bdfbee583bc3b3a7295c60949cf46f27871f07e7f6fc9303ad75f269a9e7244c111cd6fcf705648372d626364ee5466e950f56f9d0ffef7fcb1192dba2e082b8f6675305f7af58f70ee06c52f11d9636659e3942dd957e28cde86e762073c4d6743d527736f52d4a9dc8c4b1aff8da4cc025dea33c7ea8afb800eae200e626abca2295faeaa827cee2b5a19b047d898710dbf979af9cfd1908759e545f2edd1f77cd681507236f08f2d9733f86a6953529c4876e2727b1337f519cdec0b644a3fa71f5db4756cb68fc1b9e2b995d3e18be7bda6bcc975b06996a6eb5d6103d814d3720c6b2d953459abaef391c0726f79a55c36d8ff71b2bb1060493d4c3a60f665def5bbdd4e743c00b792ce82bd7cde7f2220c36657467c298a353bef8cb0a0fd2d272e650e83c1025476540e0e0ac5ecacf8a0efbca7fcfa7426952435116d0bb36f61d3f41397653ca9e2dbfe3894b23d1870e204e23b874b1c7859bdf73f633d8c33a663f384a2ab30c4941860e50b5650b5f7cb1f4f0f834823d5f4ced5b17df700436b05394d73df432e943d719addfe324d423a8ee543a3f0f58d9ce92c25c04eb3e90277d4f5a1cc7411edb8eb0eb70df4bd17cf49997051e76bd8991f2f65b1e6b5522a0730d90ea74b497dcce323a311fd7afd0df7f058bdc46904f52a86d9cc38b91c90fb5daaa22f082f8fa2807886fef6704bd16cde5255a72b21c8195c937987a85d02b981293749770c6053ad8b065d60b003872a602d249c65e0f391d79a5957d206d13096752443538fa1d5ed2c0ab2067f1d0c2f6183667c1181f34d2f6f9926c76801bcf629ec5ea4d25b83b7389eafe2166e134ac8b24016b145af1e5622eed28e20bfab72d4f3433d84edca37e6a0273470738bff9722f2c153ad6d5c9fc8b4f0235fea7124a3aef23968215bc4dfd87e543000497fe3dfb3d6d3f5af79202ff0c3b530f06eee976a4cbd2051693b82ae8ec838fe4d767fdaa2dea4730566650e35711f2eb14554064862b1cd65408c12ebdfbeb248c1a743955ecdd16d6ebf04789de0f106e7d08dcc8c90a7fccea7acd2e86dcf48e307ec8183ba76181b8b2f1e74dec54f4f8fb65f9faee5752b08bb15cc4e0b3eab0df66eb81ac982dabf62fe6b5bee1dd349e828e461855e1eb4314c3da9c66880833ea5571a8d8d16e888a8c703da983ab3fe9b388b57c5c77c5f8ad5929d648bad5e6d9588a14edcc6d8e984b3b08eb32f68e16f5c8abd49992cf8f08d955c091a277e3610a1ce476d3db409facd48baaee92fda33f4f90c1e908505d4638e89ae9c7b18f674d2116260860782696abe2dfebb51daaa09e143c6236e431560da78bb006d98742f5bcb6d6c59527c4a5ca0e29355595629ac095f064f07471706b01ce49f4b7c34447aa41a9b2dfc427e30b9edd361922c6fb1aa6cf441118ecf92a6671740ea504bcdc9c1bdfbf9a39c2c4e1299ff63b60db253a6d7ecb335d9d2996042258715165d741dd857434b527e232b70b51d07a4e59c381d66bd9c42adc39e94073f06ec0fe3c9c0a38cf24b2a5fccb0a1bb5c1f11456bd6bb92147bd71586c006b18ae4308d0537150a53d19f13f24713c81874ce110fc6214e09e358563c2ff31938ee6fff3cb75ce8dceeb892715ebc9e692cfae5fb53189f481d6008974cfe079be858e19a6c9a514b575725ab641749a416228edcb4d2dc81a81f1a34ecc00b6ee0c00dfdeafcbab04983b3ad743bacdfdd8b3dd67a4ff348626a69019e711a2716b6aea83b32396fabae4e60975fb045c284003656d41869d3e91f86155d5b368d98a378c9ad127926dce74fda6fa897a7696cd8b408987d5c7f717a716835e673104a77967ad47e8fcb6471ddb89a697a0c643cb89d8afa60c1733abfda4ea92f52270bfc7c0d7f0af4ccf1d472ce3b0e6acb681fe2a88ee82e49a18f3a3d5f7604e492713d9139c35e53b87126275c25c247e2885808b312f8a49bf51b406952d46b50da77ba1bcba3595617d233f781236b5aedc65c9130bd04202187f3e741806f4eddacfc42e5a25baf0f8945a9b0a4a3a36a5b7255d963c6fce9d255e21e57eaec5882fe19b9c675f1b3e72b1b11d7328dec5caa366078c73e2201dd4f241aa628eaa8c896ba0431a462d17960940c2899bce8044aecdfae980b4d2743aa3735a230d96f32006210c9833ba5f24476ae60f7d1a4485663d2efc001555a054e6367c7ec01942cc473c35b3b197da0e9658adc0f950e71cff7020d213e81d331011b341b23b8ea347ee0a6eef1c109831d7366c820e1e943597339dc2a6aedef24f9fc4aeb24245da9f44b07f2c2492307f6242c8c28a8970c917139fce94a804aa86fe4af720d2367c59749784d94ccaf2d9c3382c950e2c51df359e66d7dd3fe2adb71cd592451b596d7624cb2a03803e3af17238f5fa9d310492e747d91701bcf925494cfbdfdd6084696258898bbf4d5ca14cf82ffea64931eac9b74c4eeda468a9087c40c3e8114c244b8478208ee36a2034972745fbb941bb8a7b4641c2a21cb3d273311c033d3d85f85f9dd7a9f1b049435c8d096b8b2bffd9943e46b0bc3b738cc54ba742a19b02ef3cb1cf87f5cab2ea7a7c80b9af598d7dca58d05d3554874ea7292739c77cfedd6792270334852963b9a24366bc92ac1a0430d2d14983b0c75719a102193e4cf008ab75ab121f571718075c3e6155165b8b2f06c0d0033e3ead7f4fff47daa1724e7582a7cb7c1b5786a5a58f14c68078daa1f4e6a444097583800adb7407de0bd666c2e7a876f62149b4475ce8c5a9342a646b7c215f0fa60669b7acbdeb334c18f87b275b53e784d0d79784fef609fb335b3b7c2c3c16bde08ae552f77eda53f40f83f3c087745a226c2c9ee3a524be65ed96e482a76dc361ea50a0ac3a888856e50e1a12d6728c61fb88fecf2b953ac93780918457b75666baa6b93622cb84762f0adde914819ae493c64101b30622c5fe805a3176c9aa12e438e5eaed033797444e885acbecec604c46ebebe59f5de827f639dcabdd762d60eb9f030f7685dd65cd04feea49e4d4e5ce7458af146b31f10869a3020a33dd54262aa3b46ef65dbfa1cf097a4da87c2a00f42a35ea2717aa5ddcbbb9911a092a2820c337d3a87e06afe4a94f6160cdb1dca59226d64cdd9cfec526ebc2b06389d4c71e829053992d47442cefcc8ecce54f7cc60be4b318721a26b15322102689867f46f3c9a66b86ea9f9de5afaae544c958139853ccc5b96c0cdc7e07428f742763e089db343caf0feeb4a8c44b8b1a05d1b1755cab2438d00d37ec251bede2acc558371593e9f769eda827ddaa5cd8e7b056cdf44d382ef04e390c607bfb01bb451929397feb9cbda123507a67082670c2f0044905270dc06c5638b63da03d51a9277c9ad4f3c6b1dfe0ed97f464dfa044b42a5a8bd08498614565c84821ea3dd1deb5ddaab63df008107d26153eabbbef6e6b183f4682bcc95fb2ecf562ceda80f45621d225322560b8c28a057bc2de65ab75d08ea50a1d6a8acd74e30b3693cd1cc13d2b3e13c24cb083aa0474ec57ff87913e49d8ccca71461a2ac87b383be2761f97abd05f9df49eaa641f602d674e37c85cd6d3962b44f0c2a1ba58c1c5c626cbca84d36f9c759e7301df6a85261ceca01c0170066ce16c279dfe5d76160f38b70fec178ec967ffb34d7ebe682237231a20499195195765103efcfa3afb48f0032e702dd55d11b7ff6828087187d1ac3cbedf6b599052cd89bcc4076c76b016a1a61cdde2869547c06ffbaad99a543fa3126b528f9951514fa7d8fd1bb3c09a139d7e61e639a48e37bd512f8815ab5832ba705657debfe72dec3bd7a4f2648b3f5a3456fd7f9b1165eedbf189f20e3ef589250814ca3c297d318f8478a4a9e29ad35ec7a1a1646ca7a73ce8877e4cade1cc3490abc83fafb2aed3d89bf5d4f6d5431f72b07af61db77354c25dd38fb8a8bf277d130dbb6067aff07f692c82b56f27579aeb2ae4c0e09c57294a05f130afbc88af5f6702dc842bf66784f4bcb959f0020d98c9a62e550e2e523bea1b14d01f7b10631a589f98192ad89510cc6c26ba57ca9a48920b5d65f7f5a3d82b75f60f2d6113e8fc79cc64ec797972c8566aeb1e0d65f3a70481579eadfb4bef5a8ca6e2c1250ea9aad21a97ab3ce5995273cfc4ae9ffa3c056fd064c63d882fcd238157c4f0e0b9f19380e73616dd0e3f8e945e5bb7c8df98f38541f205b581e57074410c8382ae5818e16c9c4446ec9ae13bd0d86a1e64d8c1475da8e60017904660fe7f9379d001d0f8cdcadf4b67457a99aa410dd4235301d838908e65cfcc582f988995dc6a40e101680f9203a69e11598fba4bf3812c645dee7c75b4e2ae4cb35f9a3fa50cf0a0ac35e10ecef8c1a44492644309163babcfda10ef73783bb228a8795d44c1bbc442c43c2420374cb7ffc0be4f4a0355e0eefc539350400a5b7d303499a8368f9c87cc1808913e279f5e01b8fa1d250951eadb04ab8766399ede4e5e668c202908f648358500bc49ec18ff34c1f6da63f9bfce3f4e0768b457c8850afb7c999bda0e6a935ef7f458c2baf33f3e8b4d2f1447ed5e4a5b94c8a2987435b5f0890b47808680f75e89e361d8b8bc2cff6f9d0eb3b74f49a5c1d737e409dbff65988fa7cdf9c49725d6a272f2919f31e40fc706aef782400ce7256abae8caaf754e0685fe6dfce8ebec8860497dbe8c18076741a0070269af996dbc2baf31769ac55b9e38231bf9db64b6e9dc39e72a4105dedd5261abc0e3e059f72f5ba97986ef4ae0713f8452afc9184a448dc29356fc98c9a931d6b6dcb82525bce01c368efcb09ab5c8db118e1b1ce54f55bb2d881efd1523bed2080e8f4142dfb03a5ab773c958c65055310b9759931fbd3f54f66df952ce47ffc657b6d86867255c1b1c384fc2afba51e023e439ffd7e475e4649e2b9a493134d12ba93601f2e97e3fbe8574e7e86bb8645e6bfdd50377f6f60854ca9bd68d65e94b13322bd07fca456b0a414058fbecdc1cc1a69bfb7a1bd5f50608786a563be624fc67c751051db07445a37fe1896bb7b82a07aeabe9539623cd754dbc87e156677fa5c04c7fdb3c5d655ca46144b64eaf1502c33a23b71e3e3db42ba9d31916ad71c626a67639fca99dd4bf3ef8c19d358c77c24214d2ddeb72b1eb2a27faf3e9fed5892792d7806dbcf953185d7d6f14e1db63d99dc2b57c498fbd45a77734b67955df528d2b64245072dac1a0f1a8915761d7531b5c397cf08d397e26c4c67c499bd17e82948c7ed068c608125017e282cb402e1feb82409287d249c741f66537aa8bff01eaba1a0537b861d89bef5af98c23e7c31b6cfca9a09ff456d7c084fdc52dff5bb120b450c03d4fe196f126397996f6a536d487970b58bfb37a1e005cc4a6dc1227e1ecee66621443658cb11f1a25cc371590a65cce8e3af47d67f57ceae040c9ab4e46608bba1e84714005661dda2623231fa072b76ea4d351458ff194e5b990242d1edd40d6eae3c45f1ec8521900cabccbc390e7f24e1142cf99eb105727ba915c89e1243d5c1e64d4a731852cadb9059655e16a22d4d20d0a6120e21061e0711be4bee451c68a667562a0e0f853daa034207b59d334685e590df152f11e9beacd1944e092fb77ca36d3841c68478aa6816522ff3d098dbd5707e11ada860353ad3b6715ad7293a19b18a2d0d66f8742314c8a8e892234b2d8990386f8819781eb3d9c03531da760dcfc00b2eb49e615c244a32ee9a6f5af1b2bfc273d062cef29f591f5b9474d81e050a28bfe4aa9c42622ce57912696d60cb612c827c6be066a09208a13be54310be8428d5ce760b4e23c27bc7d248139f8ed4372ed0d4a5e2c9304b631ce5d3e48daa9c0c100e3e7faae67c807cd8953ff1c5dd255b717b6c506b76020e54e7a73ac1dc11395737bf4490e72f370cfebf8cb7f685cbdb0739b9734c0cb323b016a4ce7bb9477841de4df67bd19de45c6e08d18da121ee9820f906838b0747e79702bcb8f1270e3b8b6ec3551cac5225ca8241f2b4901206449cf9281fb36a854b0f333ebb23707f28024906bf57439d9280564608688bc95e31003636ec041dd12c1e9de7a85bd8cb4fed73d964de9314cdb04d1d25b8eb67768bdcf6bc22187908e1470a7ede96a4bbc549e58e0fb6adec852a29661211fd59df463ed4a7f4c930a14cd21e66a5fd5d6b7318805817f1e602402ce17852f87dae0f948a2882e12669a070ec95ad9d3ec91d408ceffde3cd595ca7eaac54e1d3c9287fe344a89470c1ed42de054ffd547b69bf6ce96d7a2c7d7c55a1c65b2a14a22468f610df08c899c6ff83a25f268e078b81e4d671ee7ab128fa703f11b388acb2d1c48ca4031c79024c13f0edd227d5fc6c4c9a74ee36927565ad86d7c0cf73300800e3e47c42733f5c9681f4484f723bd43e1058a40f63bf4fb09115304080b29fe7590e9a5fcfb218075a16a29ce38430264a3e61ed3ffa09550f2738e8d0afc5e5df095330b9e6de0857b064db390391283053f80f6c005c385c1b1741515ea5b12655d406601b55a2596c65fb2d483b418c6de5fb8b833ff94d6741e8416fa7a2d6225dd4c650f253155f5bfa814591bdffe4296c5b12a35f1e7773db1c59afa8b14d2e1bdbc5f2330a6a05c0a26baaf30daf19b5d82771101a14ce301ca24725dca27d3317a73bcc2a6c148b48612e42d24c995de250deeb74984a94e170b927ef658d88c94b60ffa52a3b2ed09ffa4a332a0424a7f45586bb82714e8b0b79dc0148f2059ae8f21ff3716b1a47b0f7970139e21eb898aa4868c476baabbae4c0ad164ae59f865b2ee2761e0fd45ab04a64fea56c685e03332fdc0db0fc9fe2ffa1c32035d5f7d5c982e7dbf7aa26c00f947bd92ae8a01e77c53a198cfbd496083c57d0dd4fe38b9757e8a0b532af362c74a986a40a3bac8c06702a33b6d198e87ef8784326bdf332158449d21b8b6dca11c3c17d068aebadd6df9a4abade6302cca5084d055255c6d8d94b121cc71e344f399a60ca0c801ab874fd418ad43e3ddab6e659a34fe786788b239de24d9bcfe3bbd9f53df1d039617d98d0780b7ee7f2eb978e0aa6444818ca73ac953fa32cf7310a647fc7acf05cf533c2550ac0c75dfc5cf1a1d8f834c06ca8b8eb1786673aef63101c5591f0e4fd4342cd6be43c5208f325bcd5a6ff82464a098506e5aa6b931bac350c9c146a24737f2add28e022b5d12d9c796bde8fbef25e251867346f28473622b7d34f4b206ed151e967594e5c021247f233a1400fac2df66f3df83b918fbdcdc4ac2d67d51ec981b375f08872ad1f7e7d1eeeb4f47325c5a10db87ad62186c938a56c8fb01731e621b1121665fda050d754e72eff3c77eaeb726f4e8c8dc3d54ef08a1414c49d096b2357410e9023978c865a561edd3533bd0ed94b7dec56ce14280c20937d576f90280f03c2fc4cdaf4a1269219ee2b794cedf5ed208fba33baa188866bd9bcb00886d651083365588b80817319b9fef65e3d85f9ff0e7048b478b26738104694758942aca236078534ec294a87b111c1e84a190a4ed0197e49ad8f647d7b535aa29c2d5c5291792a24076655bec1e3a6613e978888e37a2eaca940bbd866306aa3ce5cc3984a9fbe68ea650f3eb66c9fa5b81aa5f355ac0a9e83f0d7cebeafece2efb3cd160427e43e4d0c68283e48bc307c13d429ac9bdf87d9bd6e3cc81991a83259379f3e12c656504cc651052885eff70db3fa8e64aa6ef41ed6f7351054c59fd6fb38c1fe8e5e503535caee7cdba81e3e9cfc287c459eff40b797c708e1538987302accd4bcc7742855c909d4f5b11cbd527ab00e0b276492df003ccadb2baa9879a32bc2b23d5f8d811880b92dd389fd732fcf3cdfc2313ebff32be8187b74df9aef823674db303fb04f79785fb0f10438a3137e2fccc9335fa124b0cca5f454704fa0ec9c8877dee8a7364e17a2c9f68d0a291cfe435bf3210f3a549a7485120375e60ab20a63bb26fe91c58f763e577165562f53b56cb96b36e83dc7bef477d25213e87930bddd1a54c6251e2e4c35a0702281aee67106d9ecba2df6fa77a40322c84c296dd267c218eca15af99c740d2bbefb702a4947b266f5e58c3003972e4eafbb716e4e550307ddfe934635be23d3633e15d201c873d4468a0a12c0dd82870e87f0319dad34992ae8e7799641dffd1c694b12b46b035bd4298bd9c39f8d94cd2c2135031e8732a2360c9bdd155d4cf6f564e05feddcad34b624a66a7a0b1471141ec001a1c568734a7350a2aa01086dbb59aaacf25b04692e522fbbedf5426183847275964e87fab91e5d478d6af9a35a9bddcf10cfb985d96e717e5aa45dfb1cc1e149a636a893ada3371ec74191281fc65e36a0707cbf648c0400e4929ef872324dd88a0dbc64f7992165ec1c8822abef681391c942f23863eb594ca428194de21c7d1ff847e554c2c8616d787d6b491bba9fda50d455a51b33a8b1363b6017bab257b0bab2d45a8517874ebffa0552bf7a13b898f048c0ee2658a3553c0f965dce8d7de73da35ced1f459de3723c7b67a38ddf2b4ce56061b509faec268ac30578bedff5c445e0f9529fbe6170b911f65a10c83f4b34679459b11ab70589923d6add7659215399bef5b6f1cdeaca2f55c8defcf03bc3bdf632441512cbe2304c90424bac0884280dedf4e3215dc951e30296ba18ddb3185cf96e4e1f81b77f355834151ab1d301a094c03c3dae3cd673a4e7d68abea413f14f5d36fe313a55d96569561dc437d154fc8f41dee375675793d542b15a038e5cff26a7d21ba953bffe982a1d51f566f579a6a67099d84d4d9aa580dc59820ef6e6522a58aca488a8533f33cccd770a80f002cea4064ae26bbb42eba09f86112fce264a1ee26a65a6edc84b3fa7cb15df83c8efc2e8d3454f79f7f7b640cfdba0bdabcb520087c2842f32aa8cebcda6980dba2e695d543dfbabe7d32eb83b5b39fb01bdb57e9a6a15dfe8e488f90fbff446756a03632b406c50a92dd70780e1919317c3e9a9beb717a4e2b628d736df97af86aee8bdcf088f9602ddd142933f83cf77424d77b3fe3af2d6f22a2efb9a9c71b38221a16d64632c02383fd2f96f48969b42974cd41315e326815bf8e42a9e33d6fd518e3b07650c562c486b5e7244111786f04b6519c1592f1a2d549f4d20e2fb4153489a53b42413cbe26aa6ea190e7b8a4448ff2711172b5e44f35ce26e23f21e42daf3bd75774807a231f74b89652f2f0fff1af0674ae9227a79846ecb0637357bb52c5053d4df105e81803439dfaf3014b53a3000ac5bafaa071327f4dd6d63bc2ad3a11a20802cac9455a9653e2a7bdc59ea806d5f6a269c323dbc2369d5368e1e1864e668a68f58e4f6e969ba05c1ae9c40087dfa14040bac17868a235e1ed0f4b397d93a3c6dd39a7fb810e921fab354b307ca127227b369d7d624efe788cba7cfa3b436afbc3fa894c51d501b843ce1d586635169c962c0d43dfa4f0d8a0f805324e0ebd064d647ab1bba7c611cd9b8962f47897e706577782fbf952a25276183de07868cf0dd05ada8dec3bb5683175ff99546b5a16e12a7e41b1b633865387e76a18496dca28f3edbdd1ff4b9e6a7d8b67ad4d3c8ea0e68b1daaa66e2200f83ae87a64926546da0adf9a02c8edc7e3aeabd9ff9ef4832e1be65ca6d08a4b1a6e65a85163944992155ec4beee1f20cd7277860663c31acbd5facc74c32b466d973d19c2f0f71db179d784f158d1a9b6445a10d61fa68895b4b7a8a65687dd5102ad35b8ea2d6e944f7de14ece46e9b0edd8a46dc80a67d50404847856342bfa4e19f7ff534964ca99d2e41515dfad3ec12d95e1da6e6d1ef2c42f7de739b7c0765971526d1f19abed43d63fdd0aa8761d198956c8edf165f2392d825a3d13e5d3d25741ee3adaf6c313691f71bd75d6b790a24fdf8c08edaad926a9e60de6e9822231460e56fcb8528622893cb5c5e57f82c68d7a316f5044242eff0db9abdbc8c971b1b16b246fbcbf04354d7df6b25d413e7da9a211d989090ec29b7f1628e615f0ad81338b75ae02c4e853d00a0c6e100cd6fb70424bee5f76a3884d2ca13dee376ac284aaec7e30767b33f83aad92a96214233047a3f01ba0e819438447d43ab393b527b531e25eca101915f08fff07f9ddce800599d960ea3183c8633a0c3130ce71e9faedbc7abc697fd6415a8be3140cc2f7ba1983ccc148e9fe9018dcb9adaba7b48ae41b934be97208f103c4e8f56a548921353c28a94f23742adfbc96a41e81aface022960a08e7789abbd5996f20b3f87977d8a28db4b7acbfc57c031fee28b38fcffb6c36919d4fe06eb93760ae16024223a94025b1597a4fed5803433d26c5113f5be89c5eed3d3216e953c9f14037c1e74f2fee3b465794c3e2fee23a034f7c6f850aedde47bc9d6139dca3607d50e07d75690349083d3512ed75d6b77eafc18cbc07652d8836a933b7b7c70c6d5a5606c7bb50cb6f2ae9f332d7b1707e9b2b2afc0b6103d6c8a80e24b52eb10898d482ed43633488c122806bda1b37448a00a37f43288871fd2d5bc4b55d3ab229d8ca2ecfefac7cca8d135f6f631e8674a9b19265a94a3a434a80c5a682759ac1d092066b2d624a9da32933cdba5c1b0702bb6f2e004759a7d3db77ca3d4b9e5f6fa25e79e1656370b75f43155cbf33e106a51e7590bf2674e7d50fdf917ed0e097282dab08895dc9991ecd7399b81d8e205e7154cfce1afc2246a6ef07dea519607f9d4253b43b75149da707ce0b1807ec713230f770e835b3bd6caf706335cd10bb51f98049a3059f3f53bfdca32b22ae413ba71a0f3766d97a75070358d0dbb44fe347ee5a0fb6589cdae2a29d2f3b2ec421ce7474c596c8a9e6a4674c217ead1a4b584ef5767b7bdaa71d980dd86f0a25909428ef49b7852ecd8ab5551e15da3668953e571f6d6dd918eeb0fc8826cb3399d8ee24d34cb37352a60d2966d09e376bdd459158811d4211d2d14bdf29b652432796867187573469218127a7ea7209769f708a42b5ee1a36ea088007529dbc2b1f435bd02317331ffcb6b9c72ab86bfb4be6ae38a11df2c63942bb3fbc42209f86585fcd7bca27df831c40ae76fca7e516eb938d97a11b00aa6b4ef5edcf7680c566de753ce88b6d97e2359e49acc9ffe756ffb921554074578a86977de30ef53a987096404552a3eb0a87a732a5b1a561797e28f283d2becff48a4fe4067e727101cdb02718817d14a5491229da1b7a3a41206214b72e3244ee5f0ff8be4ad9b7d4cf57d2ec149ed0474a56e64b836939fe65b49efc13857d738d42f2bb876914d699aab2aa2b2cbfda1bf176c976be5e5a21fa7add07c356e2065911e7bbe31adb57361f026d2d8387aae57925677b044b887ed98aef65c66c35635ca2839ddaafb7a5852fe5e40d82ebb3f01b5cb588ceef845213ecff8c35ef4b729fbfe6fb04a4ca5a682bfdaaaeb2290e8010e650a4f9fa644b304798230275d855ad0479116aa49d4e0c8d3d294fafd51437993e06ed4e8c0bc8ac6a0546c497f15205ce0b07533c25889a3ed0b47192bb05aa931a2a7429d1b5812044c703b0ff278ce2a4cf4ff6a8f9b9413d00ae25d0936dfff9da147c646506bb40044f111f66131b755a1d80895515c6012b4c5fcba174607149ac5eb1bc4a3485dc25d3701a791544ad7731e786bd419f434813a75acd12fbad20228f56ee04e0da840c7cb750c76ee4b15402af7daf02000d683df977b149bdd81dc7f9d51758d55e33edabddf5a44ca8a9d20dec108c97ce1bb851c522920fff938bc9041de5f3964a985165be2b800f46d6f09754590bee4428044b2d245a316496e1650f179053db60170096253eb7914a397c74ff08103571640ee39e72fac596b523bdd384cedaba31a24d251d1c94b83601eb441211b1b2df15b99c4c306d297d676cd10862f1290c438826299930a1392b984ac8485ab64509c5c1b0a6ef3621a01bcf1bbc6e07da62df25e53d1c9fdd2cfa428c261ee6e7ee5569eac2bb97187e18ea7e413a91c4761eaf1502dbffa7ca84da00a8ee98410777cb829b8e55fb399051d40127df5aca4e3280f0ccd76b5416de824c2af203497dd5ef3c777fcc777035c338e4ef22557dfe451a1c0e13519477bf247e8f5a93769a49e007883369d2f0d4612564cbd5904cb829904ef8f7d2d82107ae741ab5e7b4455526c0ec0a1d82fddc3692e4061af15a2b4db5462dae2ebff45e55d3a2ee137430d878ae70d0da89106590d2c93218da87c2d126ef39e1e67bf6137cdb35f24b92d25b2722a1aabed4cdf69f04a769b0012abde041dd0dbaaa7293f12f9af4006ce0f75fe8327c6c2ac6437f4bb0beffe33129f0622c434acedeaf55691974fa8f01b45c386744ab03b85c60f65cfcb4772c4ccf7a391b490b7bf684a48c25da7db84e38e35b747931cb7bbdc466425286194e105aeae764b633e9a027bccad00f3e10ee79eaa1162fb1a95783dcecb43da4e3028382cebf9cfab04bbb669d3e36b060ccb11eb5af5d5738944f8aa50dfbffe369a401b01d2376fff2228e06ebf7bd89b9d05c12c91d819058dbae7b3b4a4cce4b5642a3460c72cccb92c1dd7328019a672c4dbf088efa22a49aac790ac06cd4f92d765f0d2ed174efab83255619dc828e39f651be769292b6dc2a6622c20a2640a039de4de19499466eaa2818730ea29563d1f82d4293deb35b7dbe2c4b72abecaa5397f4b8beac3331d7c2f86a240131058d2cf2d8c9cf067c3ba85ce8378d69f1f470f22e68358691c380e005768e549a49323f7c52629b19cabd1fc9bc40142db9ced3074b0f7894ec52a367dccb1d95093e81b94eabc88bd5e63d3cadca592075cabf870029567ea7840db7ea4f05247f87fa767ae91c7f37637813b7304955a619be34d03992bb2b62eb481b295fbf930d2557a0426a2787dcb0f1af68cf23e5131abcc7b1879e91da58badfbd674d28cfc915416ebdee2a14cc259d0b45dd202a8ac93474207f877351b17ead2542d6c1348e42264d6542bdbdf46b19c6d717df3a3298c491a758535aa730a5632d8e2329f0ee9586e4fd2d4a6f338ce6a7274deba58798980a2209a8e210e906831789206af8ed9d1a96117a5a46353985d246ab29556ecb117e556785a1d097f3a6386f902aa3aaf28387bb8b518276075bf0973c9e45f6a5b6fc2b3045f39bf2291fbdb4d837862c39bb0b2b22c1a3b6ef51c097967a3bc686a63d86f91e517044107d33a8890f5fbc1a6a033077df0c74e0d97ba171e87cd0cf719f7c61ef0a04246043c89e5cc321e7dfee5ca64b21966e6a7da1d2eb5dfc393670224376e3b1a5256ea258f4e3704118de52cce163fd28da688e0d7dcad69b2c61680ecd5deae21d5bb2d7fcd4b6a9284c126eb5b8b179d76710b8e1bf9a333046923df6e1698d706177e076101503fdae956b7d9a7f68f27dfb95720827cac3210e0b24fd6770f44409737d0cc02343dea5bfaf7007f714a030833f68f262a759fe782f50e47df106897f8863832d8bd725f5625232667e70047d547aaa0cd21feae496216b2323af7b14f02d8ad33ad21f9de51a3dfd4668404dac4a11d91ac74695bb67670b90b6225a5483e75cc535402087ec03500b4b9f63373af7ad8f234610cdbb4e36c907ce643b1a0fb2284c0dcf0c8b9acc77fd4fd9209ff604c178b88b723b130fe5c70a5f06e93a9dd4d8a746e4632715d1a6dd700a0105f539673f22b18bf6c97190f8da5564dacdcf84dfebd848b5ca7af28620f33a2ef7cb21964e1b2e060782ad983260c6d7df27bc3ee3152b5c2145b7f86ab370d3f00422291d298930c3726b5ae8d08004b2c92c3fe5c5a50da8602eca01670bfde5faa4e2807ae20bc0e83cc26f6c46f908b0b8f7885cfd0a9bb7bc451059011e2e2e83221064ff1917b6a1edb2b259d6aef4c779254ec72c34986979d9deb5d949719f5e3ed271b7e1ef9784ea41bf49a341f4e580559e7adff0117b3c741414370267726fad0a9da0fef57cd1bcc9c4a83fda46863756baa69ceb4ad25825d9dd94df9cb566fa3de3d97b741b31cf2041652ea5be6009a143c3f186b08a406681f8c80a27f1609cf444be25796b7b5ea8cf2c378888ed4c326a76e9f6099b00f6a02ac19d68e888499a0f9f7df754e550c6a1504c90b5345e2310494e366c725d84b49e6dbd087d7eed78577b005845186877dc69675d967001345f1325e9f7664f1f2e11583aa966490c0476992402f33ed45bc69b6d0a00c8cb3b144b627fd20904fb741620a149789cfaa3c60cf83c0b626154ce66df4cb8b41f4f683b134ebadb2c2b4abb4b50f16e97271009043fe4bee1a7ef2f160c4bcec8eef473ba65e822c4d5637393e6166fcee6ac5331f1223a418956e2c62f6204963801e69c1931bd2752b0653c9512869ab2801346a2234f61198373b6670b5a4e5cd21883a5f847b929781d1ad967f4ad3aa12b9aa37c0400e79e3b472347531fae13d63c3a84066867d73a95d945a617450578c09c7175734e15a1499c0f4d9ab6eb537f5c836c3a5ee465b895b58e86c35f52df4b5bfe6312e6977d85412613be741999ca896ae932349f208b6bbd90412b2bafa402e9de6a48efe6d6b91c5b68ec01dfd7f5b7b397a50062824301058b139944d2bab5e9c2e01246de108561d8bb37c945d75aa94c81364b9373c1d772fed266d4652e3bb604ce52c6be24922c5f7f815d4f3e6170488c40f4e012064f6a7f7ddd74af464d241758dc1de574d8c559c3df21f7b7c66b3e7bb399c5ef7b153d2529b39f5c3a11c5b7a102ad522c48c09b505d2dcb4371d2c6291becc0d0631e1e2cdbe78f6491c688e9bb823f1d15d3272b4f3831ccb4e6384dde7eb3b525242e4db05adba7e3193cf1472494d6f4615c1e86bb4f47acb1bfde6bef62a1051531d716ba732200c257fad669f46a60bc4cd4543a22b6331a2aca9d381499702513c1c97b0438607a130190d8c7c713609aecc1956c07064b4331305cb85b5df64562f2e8fcb8fc30a49cc6e1fcd0606383fb30ae91274598149c2687616f270c83417b0b3482ca1708e1d91a88a6c63de9317622266459c31b7efcba9062376f36269b5a354d988c469130bde3bd701cb4d9f480a71fb06adf78665e24dc6790d6343eba18dde9368c57c53c3e71a27e5c36dcc1e2db34ad215c058530e71f750a4f71e699b2f4209b72f4f5d5dbc8703bacc85119606c2be34cef3e018656b6bfae9fa9dd9ca1610f7653390e3df610ec1b1131e55c13304e51d4639f72401f91fe87f83fe9c0adb4b204d1e4041bdbac1e2521ce5f17c552046027a9839b3771630e9e4730eedf3f38b5ff9aee88bfb3ce56bba49e65827351f6597b94f1ae276ca0f4fd54b1f056387ecb9b5b43c522c278813db0ca8c9b576a84122e7a4b04895e8c002e86d93dc0a88c48d235726fdc492b3bf9cc1c900c2be0f54125461e982131bca38fd297eba2c333828a3a29f277c20bd69006676da6c5dc2b6357a88843bc1b526afde4b505ccf8cf7e479948efb68a0fc3790a31a5250dabaad9e087ad1da3bd50b021daa7b2133a7dc8b24d39179c3e9ea2d3ddbb3db041ae0fe4f3498b84b5fe31fed2fb471200ad216d30207927b401895ff690f78e1b499a3d300dc72bd005f3dd4fca5af46e70f28bee02fed2b489e9f3bbaa9e56e6f8c9314b441a826e584cdae757438fad1c045f9b35056d96caec5d85214f518eafc9548cec798fc53584078fcc29813ddb5c53e2941f29effd034c4cc6bb4549c07d776d272c3ad0dda8234d0af5e3197e68b53b0bfb3afc0fd20cc209043bef2b9b0ef9834e0ab463eb517aa8ddcc97a9e0bd1ba1d62360ea585a5c7238b3e600052a5f2ab8034873a163f7b1ad06f1eaadd873b0ab338ac5606a7f9ac277930fe94deafc3c7ed1e4425c34cc1430e58851ab031e2a2394998516ead45859f8ca0a506c4ffa743aab69eea1c15503c29c4d9259fbe3155b3c78db2983ed3dfd95f22385a15d1c16d6fae04a375b19004e16773c6fd0e035765bc89128376692761b0b8d18c21a9f34e7ad15d838b871f1c47619391f90e95cde1f19a82c45ead3d5bd3c320a997caa43cd886d28fc96e964f08c417cc6850f9bc938808b9c7fa8e1749d1036511b669264fad9594a8c407c535a65100310bab0f2beda23d624cb2028a4542c4404cc44fe5ae0a38ec7f3508445ba334816ce080df98bc2d121c83f6a91a920f6c853b763f384f8ecc97dbfaa3a694856b8f6454a732a9da1db0c27bcc5615c43aa36016660feb5e8db9614f8f88239f7fbf3ea3ec9d4f7b805d1e8cd3912484116d23155010c55a04c0ccd5bf93f1376f51584f4ef49e097ac58c264899f000a5d7c073898625180d2d74076dcfd8bd04374ec09f3f1285348713c5270571a04a48d5be68d8358c7093ebfdc0b4726c71bdc63f23981966fb2c1ee13abc860175457c3cbea49c44f54903183a65c0d5dbfd2c0ee32598dde38ca9bc327392980d23ac9dc7c0e85ce2da485220a093db0a99b711c09e5946ca4939058b0d1ce2216802bada02c537456020bad0b1c746e8a3255e7d3e18c76fb20f995144d1507b4ff446562bf422095373a3c009406c5bbf7aaee1556adb04fa070aa47633ad4afd6e5509310b3c18208408e6425ff294670427b238ced1904c782f0ff433f089407482567cf9bba65ee6dcffa5d2ac13f068d1449ca24542f4af5a8f3d7eb09a54f12284408ad401369b13d6ea07b955c1242d10c31a1f2c995ef22fb52c90176eea81759ed04aa6221e2356d30bb25b5cbf77d3e52551d61018f11e7be83c59788ccb0716a3fbac88e7753a4e4ccf4db077fd383a325cc2a49d3f7e88c4058f52b0a9abc33c1bc7f766f895cd68b1ca13eadc4e40dcc4e9d6dd8ee81e493b14475abd248845520c1153b1d1a94aded6b4babb8b7ded70b8f9df7f40d4139f4397d869701ada9d7fc91084059b9064f27d097fc7b350a000abf24ea0a9fd161b973820005021211a98a96cd5ae5579596905de2dd4fa83a32fd7480d4e54771f8ea33a521990ab08b45395f1b1af1bbb6c7bf7a36193bdb9b64a07906914b6a86d44a0589fa11b51569d898ec403ee54acf12179d0ba33d16112f68130ed545aa3a02b6d32bb10c03094eb6961055873d195e4f2dc528ad0aebb782427d3afa536e28e5f6a965ff48fc4eb8bed18b83dd9dd53a4d61dd56cd16cd921ace8e36de993c7c5240e4a39f02ba29aa8a13258dcff533169faaa2bbe1517df16799c9d424a0e559df32533398b5d841ca7548e42d7090b8a7b759e1abdbf9226c1260be4c594d54a7ad37831771dd0da43e4108d796873e13fd5d63e096fd2782a465f9b76ea7d3881570e8c911561c59935edbfedbcf173900e8a371aa3aa5388fee055e4cc6bc65f03844df3ed4a160601ce39fdfdbce87a04b49880aca7b3314a99293780c6d2e719f637e3a7f7e3c195bba9b8f91c0d17f2b9ffc9702f2fee0b1ba9d7eff252174dec078d000f16e8499d3cfeedca5636927d00dec79b780a748e5bb463d697e050009600fc297b72e923caa7436a7bea80f2a803f237176540723b667c35e2bef9f101f5abd814020f2a33824cbebb5da0954834d7962432ebf46522e6a9fb38589aab5a302f84cf9cfa5d340501d02cb44fbd70e0b3d19608e1f5b9ec54e40bc7f8cbbfaf4b4d05e765b8eafb4ce2207deef6656433f6b55ea535e47a6fe0400cfbe8d23b14d9241f4133813ddcfae3e5915860a5b40d15b826e015ab4671d92a6013772725e8e9d960d886054a13189e0e6b96ad443be35ff914c29b8814771fb9569e6d1be9b5129fe7779cc8e71cfd6131bccb1d566e392a544536e33fa2de540c5cff0589f9f176b36f89392069a8c0ac77e32c61413b4d296939fc27e6c3fa4ddafacd9c4683e7ad98d8d71a995d47492927975fe05e3440b2918b270bed32aebe612725cde25139fb820b4456d72593b351557487bdd6e9b2b63acde8ab8440f4b4af860c4fa581ee2d110ed7a5a20bc04fca4a773565db58199b95c9b2d991fc59180f7e7626a1e94551745594fe6eaf67c10bab8208bbab6ff57a8f9fcb523491a90b52ee042ea7da09ad5febe2c7453f45af07594d57b4c8cf780b41c8b26411f7cac9d6b5d5b37db3dfef1882d5aa32b8ec31fd8e41804d62b25998615a04df17e6ca9903da1cefa13043220ec43a6296e96ca75aa0698c7a8647b43f233077d517f848db69291f92309c28730bcd85fd1a5f1d38d9e5cfc5fd2de50959688cd0683e889e5e0420fa47ebd4ab10da5bb197200cf1ce29192e9400281fef701a92da326ba789b768077cb123c487cc38b724e9bac72e1d6b53ed9bc0077173399d8ca4855313e8c7812e4395176053890bd016a420f53fd95344dc70cf3ca27224c7b073c79c453537e86574518f4c0d0c272efdc9e01e5fde2e5779f035cbc596761a54f802178c18732239d18fe294349dffcfd34a95e55b010e15760014355c5715e3e48612b6e80ca02a0dc194bd37286d1df8dd51f0d7011f9a287dd87412cf61611fedf03d7b2f927e2ba02eb019c3d73264c22db8d221ae09e89ca48c817b8a1cf905331d5feb568455d649fc9f918ca67888a86313e5f62c7d75e12bb1954cdd57d33d3488d921ef09c48a1fb44f51b5c01cdc2c230b877e4132b44fe380121ed768dad640e942f0014ae5cc7ccf8ffc5f66e3431e2cfe2cf56c65f5bfccdfe70a5254469248d21c1400d102fd7b279dcb626becdd4b8bf03efa64fc24a6dbb671c470d081c6be0b2ed0bb7fe53b63aa01f7160551cbde4d4f1efa4f5d54f54cf414fae06e6fe91847d4512baffed47c88c9d434a34f92bcfa89f16c363efb685f2a057879f7ca0cf720854fb126cfbb119e120eb9aea53ff4343243b06fd5e8931d85a2b30a09ca3f683a08b6e40ac4358e338bc28108af1c55f21a79e6ad17810a7fbb61bd556ff1d1dad5e1fae9a0284889526d1efa30c834c6349f6f8b92de35f48c262e581d423d2bb525ac27a5bf85681fa81c06ea9783cd9da6ed98c6d3ec16f5f01bca8c8d9b5a2d26800b024e6c22db608f4fb1cff8d0d8648c10617d0814633db4fb6d55d79120400274c63a1ab20154965478cf08606a21bb81c26162adf7ee751c07250b9197287bed1699153f83b960116708b781f50ae3e06fe25b8f0224f42507b09702f49fec0226e5c2d6fc85e8fd9a25f68f3d9227ba041f214a19c55fa779f2f540cc359eb383846d98a90b8b4349df2b3599eab4fd8f2019637914cdb3c0d07fbe473d9f10cfcbbba741bb4d1d0ce599f804f9110bc880693061ce830e93149436446ed08ce8b6e07fbc62db5f39f501d3634b289e2b286b34b2e771cfbca827289bfc1b816633aaecadf55c9bc2c1eef6fa53bb6eed63e7f0edbadba2af35daef01a21e851543175f22a15406ec5219212c6d5a479f67e59598b7a202553748f629b272a41710a6b34987deb44733ca81e1d79f229944bb151fa6c32b51706b1d97bad8159a0cecddf86635bb603c788c4ea3d8c6f704afff16373ff09eb6f7238fee93b85c78753fc44546cef1b344d51bc8ed799717a4b0a4a511ca636066bd7303ee4b069586c9a2553e3a723970f9d59e360d5fdc364abb95b37fcdf71097f4eb4f3c83936e61b96c52ad0f3710beffaf7d1321072067d700292ba7d3bb4573fba938861de7bf2b07bf015d921d11b7c774653d75a203976d879ff7bf8ae6f2bdf2d112e7c81d964758fda31358e726e6f14053913cfb154a92d7c52d33fef8a1fe08e1f2b6b8c0ad8569428f7cad3d6a7b23b52e12d1e6e4348391d1e81f9dad28c940282c2c181588c0675679056be1877b4a3d619066778dec49ac101ee989be43fbf3bc07965cba338eb4d8ad83868fc84a19ce08e999cda4e33e9f79bfdbff3225ae5fdf829366e1392eb13b796acd1e7b8dc58cea2a56e95744b3a5415de52aab76f66fd2fcf8d4e82e6148e3d6943d72ebe52b38f2f536c1a00cf1d11aa47d11fb149e01212847e905a8fdb390e01409ed2f0449dbefecd144998fd0ce086332182f764ee371be2f5cd1a725ce081a75d06ef4e2509fac11483373091f27259f777481cff824afb12460c0fe0de53b28c73c4a34c665e3e72a60aa4dff2500e34d65c5d9d8b18f96e26233c79d2a3640f858e7cd1c0fd56cbc2c3fc85a3bc858d2dfed23e3fda73d1afa27e5c082f57eb43e0e7c040d8666c60ec1f7ba5280a0e8a4e5fb4c0fa915f593802797b1aea8a38b26c8de308a5c9439abc4e8fcce09ffa3003ff975fc73aafdb885c9cf2f91a83b956a16fcd568c6e43e4878227ebc0e9f8d43e01dcea6ff996b8bed52c2705ce36a757938169e813859010a3f17791c0aed91b903e9066a97baac7d4842621c62c0653dbbbbb66e1e600247237d24b9c4d2d5ecc7f8cf8653da542c7243a2efb749c08e34a5f4f184d25347181004efd81b56bcfdbec2268380737313b8b16b254e24efe46af25bfd8d1c63d973ea5611823e4971975e07afe217e23d2a7019f0120efa1383109c454d2328f33c571626bb8cf8daa8c4b63dab7721804d9c0d4633db51f406c1ffcb768b343e4100254a3da23525e75a135dfb9dff4bf3b87bed325490a1c9a41dde3673e60e36a872a9cb72de286750d919ff4af7fbf8ff1ecf40362ab046bc28919f853ae2e4c2b4da92a5c1b3e8f0c7fcfb0efe19c8d6829679bd6c3614db0492fb1d2b33d0241c0366749a998f35b212243cce4d38f849c364ff48fdf58ca6579169cff2b72bd50349dcd09bca74eb9fa9929af9cca53b94596c9ad968f0ced1fe7921285e628d9f281a2a4f46238e2dcdc9ac2b976948bde5dd2dba2ad4b4057525f3eab01182e8994c6fdf74552f5f2df024b5bd17f443e254e62508c994f7e2e4b581b2777da31809751d9157cfd969b1a8390709a2206bf02e11edf636e5c21f0e8d850955f90f91bef1ffe18d6ae74bc466cd587fcd51ab7377cd421d01b57a0ff88bfd1e49e431aca33d47597c0a68d2d4674ccd5e1f10dbaa856e891235367d3effdb570f6b1fe0dd8dd705a1f9c3443a506c0b4575af3f318205adec2376a631f4cd50a748a690c1e8551396accd44b2e7e8fa7a0fc20342e15f4fd1bef0c3942359fa77925648b5d27324b8f60704e228c198730a4822214b3d49a6f2de1b2f6dc50efc860baf21fc6dec388e9e0c0e058d82af32d5d5d8db02610b51b34d6a1ad178b94cf283c38988d80f5af0330f5b8f8697033234acccef2335f452a7c2eb1ce6c75f3ddaf199e1ac500edd9f9a45892799da533a8ea38c51039596d9417a7b16066bc84a558e880ed0a5c6c18249db472d628027c24560cd7ebd9b818e27782ecb50bb64b63b3b8005d202f003cacda96329906670c08f962622ef47224b213ebdad8a0906e098bc5fa647828bdc52cbddb2dff6f006ff2a6accc9e96abb45f5f345a37e7a2f383e5f92e2d085d80381f2a281253c5a062c91ea6d4250d90263b26defbe569b3a99260f960d74efc56a1a3242c4558984d75b1ab9449b388f60d7315aa0a7b9f191ed4d4ca4e324b7f498b8df28aaffabb8608a2ce86a5cfa4b0dc0fbf323a4cb530a6d6f64b0e927c5381ee903473c4f111c3fdb6f6e2908eabea7dd3b6c8b7985bacdaef966d7900d0919fe437f516218ed0327d7b8a62c820adcc696388b1e58a1ddff0905f2b703e43d22e6dde9a3607c8242d0d5acca01c69543d3845cafaa05ceddcb5b065c0dadf3294c73c9803ef74ad27b8d0333842d0b3e749ce40695be51f9e779cd48fa954445308fbd8f7f40ba0780c44d059baf68f3baac092769e5d9b24df8615aba4937dc84414096a71ae85952bab50658b4fcf205cf48fb54ea080eb09c80cf421740a84bb96c9aa66c16da9827f36000b15f60cbd0526d85e167ef165a02311295f66f34cede41387192098dd214c0bef15dcc98dba40b59f313bb950bac514b0a6ba0ea2f806b635db10ce65350d4f241871b0b7e555956655f7a8214474b4b2df63f0aa49fc07eaaaaf7a7ca14f0ff2136f1f4b8c351758ac1441dda0acab4119b098513cee9456e5465e269f9ddd653f8d7095ca68c6ffb84a48281d34b8729d9a89e3e91e0862b62aaf63ce19afdec1a218808039a5fe75d6582c09dddf40f140bbeae92a9fcff104ad478a11275553a9043214a2c55981ccdba8768ba3aa57059edaa80e7626fe1f1e21ff525db95b7d27933e704ae5d04c53e2545d328122a512aa348aa1ad254421b7dddafd515aa8c10b44c5a436ef63aabcf09b99059fe7dd79ab449a445c5600d975eafb8d63f55ef7a966618b82ff163e3d53eb3d92b418b60133b8d4cacc39453c0bf96a12920a5ec2f3b8e4ed89a0715b7a1c9428435a4ba0851a79450770dcf1db4bc50c1315da5f16007c59df59073caf029f6eeaff3a2a4384d961dee9dc3bf9355a5be83af37df400517667162fa13c9ca89472d21de8a4c0f962dfb1f865e7d9a5df1bd71c2a717d4e478b60a5bb6c9b992dc5fa8da3b4803930f1a168f99aa253eedd08846f8b9991a33e43425fba56bad0f12e44f687428d9507e01bac95d130d87954acb2854cd28f579ec629bf9814f4c7892e97bbbd588d91e9a88ee2a60df43b2bf23f9a7505af19fdbee468d956a3a499f3e04d593a80e01276527f7eaa1584735194c5d851807bb78eed44fe58b484013820e231c4e702ce3266a2894bcf6479fbbec9c8afa5ce09cf6bfb72227dfb1d1bba90423549abcada13d1fdd867fe858e5a9f577720183a34a4487497dc7fea3e0f33f91b421693b514790dbab952564fec153004ae0cfd98c90d23df723987c863ba7d67b3574f8501b3f13573fc19a48e719a1aa6a09eb1b4aa402483f5d63a60020906d4ef8bb28544cdd61775ecddd9fd5a67b37e27d8dae548a03fdeb4f70529863f9a697b5608846cf73e6de3644a00af187696d2bd44465ed8e42e7396702a34da352838d30b85d47d16968831927519b673dc1ebbbf8f6c66b9bd30cfcd4bf160d73cc944c522b4300bf369e72a6caeda440b4b6224b0e4bf46e2844a35351f4394df68f43ded31422522b87779e0cd08cb34274a85e8b739d81e896174d42735ece0d49c08d74c2965d54d743e30c8d37c8f97fb9053bdb21924392dd8589b41e1e71d881c21f30c881d4ee70c7a67c628e11e37ba290f2b32b43250125aa99cf8581e3c20ca91ad5ca0981131b7b4ef83ad889cd58b5daebe24514a0b38fa8cdbc1e8796316dbab67216748eb8a3764fa78aa1ed964d6de3ee1ed9a0fd16cbcc10b9aa1e990bef3a58036412c15437e932f1224459e698a1337ad792326e034a88b20d47ca64e2ab8beab0fde68b7ec353a3e0f9835e0e33c38d9f3062f220fae477af7ab2e7df59e88f38933ca03b83d0332f46e4a8b5a61bfb9b6d705aaa1b09883031d1b248e9218c0e8c015af34e2515aa374b40219fc2952c2b36f7ec55fe7c3c289ac4b4823a413ab8c6df1fd56a9f02d72b5f050b62944e2ad84b6895ae921da7ebfe22935e400e5bfd9e61d43820e25e84c6212cf98c6cd71080773e5d69cec9b30f29e516432e373a3654920b1685634adc0f279702c0d31f5029f426e03ec7b658c1907cec2bcf4c01f17bfc3a15fa6acc87bc46433690f9278aa95662def5aa40f6f19a9352477b968ce427245a7ee562bb947cfc34062c90dd8561edddbb8dec764ea3a6009e3263b761966c37bf0420320d77cc51675456c821a9b699a2233f14dcc65c4a35d81a314df6aa9f8d8a8034f0e3e378b9d1ad3243bf205cd36ffd4d1442e92ea79172fd5a8b5ea4f29998a93fba3ebbf693e79df8a5f8699131dabe25ed927c2ebfc3ed004857cfc07b234a6e7d51d9778386733f9f62697913a332053e824c12a6ddbdca985a3128d82a00ecb9ecabcce195187b3883cb92c697db14c9e1ee9b9db9d4ff7bb114f31d5f364d297b26060dca9405e56042b2a4fffa9ae5ccf7312c2dfaa7227c01332168125f1adb6ce7a527421da9bd81bb7cc5907be80c9e92c98cb174f7404720aad084cbb2318d1e63b7cd6121e6e7f922cffb564c72f20f55721de8760fd948ba3feaea69cb56872abd3b3af21c520bb7a27fa60d391bf6f720608d1cf9f7f48b1427b532c5f38333d3b7ee9d1069eff07958041d1e6046ec02fdb91ae17fc0df9dd757a64682e7ae777f31e6d9262a6796c3f301c9ea6523efc9849891a9d63c94ecf7e45fbcf176a80422c92a5cb506971a8ab8a5cf4be538c261800bb8f90db7a28edd9caeeaa0c9ee6820c0e8e68b10721dbaad3a28f7b4c5079fc679cf4a6292299a5524fa84ee1f834eb797512e4ec5fac76d85ce0b5c2ca66d73afba3ef46c56f317e043b395a4bfa4888e8b35dd1f643abf5f48a16aab0add8fc60395e240400b8ebb9a18e1b455230781c1b096f38892c548aa801cf13c50cf9a902f0b848fbea06a2e12590c2172760e8d04e5071bcebc0220e3b10fbb17d1c061a429f3a8a6d702f9ee8f9b733b551327f1e064c6cb8ab352c6f71ee5ad7315762f1e335894ae61fd842c11fbb22f06bd3228ecd84d391bba1acd79bddcbd67b6f791f58767817c2e521000de02c8c1fa857d2ef5a940693e91048d5bef771049c537406023270da3b6472a862f5d2ca07540510bcfe6989ef6542a46fafa5e0f3b7c1400042b64e42e9e50349bba56dd8eb9eebd422e870d6e006a5dc3792977d33f364fb759bcc7a88c9d891665da1079d7f38efd03fa211a096799aa6f2537f3b34a3e31191ca4064070614666c1f488f0e6337cc4b667df5043b658f090b8f7474e98d9e1ba9d0acf23975d374b8cb1343c7f8ed927f6e020eb4a99be599c9ea5c8ff4d5a07310f6f56f4de0048cb41b150badf8106c268a8d74ef2eb60f5fef6b3aa084e485ec087a6f6b2ad65d3360e5296555db533c9964ee1d61addd5e2a3a9b09287405d13e1b359324c297833d5f9dd130a7108e21570ac9b5d4c074ffc00ce42db50b86db750ac035d205e3eafea138108a1992f439abf3611887107473488b580dc650fb5eaa00b93b70922a1b9cc9957df8e7fff037022f1196c3c6e86298e8eb0ea059f2254a9ca16c720843ec0bd401d0963f738c8e568c5a53cdc853fda9d817ad2a7050041af6b3ca5a25cc3d4ff4e365a42d4e2be6460f895cb1c0417bd4d3630b679cdb18fec6294ee0a2046d00822a7feba02a4dbdebdbfc1727a45b2af94b354511859fd5dc269e4908b6248941049f3cabf55ee5fb4ae3b1971088e290e2ee48509ccf4229ed03918e87f48b3414f08d1001a8afe978e7a1bbbed5dc52141dad57c48d041df8a9ef57593fa81493e0f15883361025c78744fee88fec59fc6ed96668889cc835d6f785394dcd8039eb817054e396312cb700c0f542e8fc808420b6daf9e0350fa596fd2604bbfce6876e9c4779a1db1182c8dcc39d2b16d28f02ed8bf71d27a592efcebe6bf405b74fe7f49398842be290914af4d07688bb78ddf9ea1c6b3c61741f1425f6494ea7753c87aed6d5ec2734000aa5fbb0d616996772afde8515a49ca19a037eafe3d43da96cc678f89a497c0943f2f092d5eb43b93e67481e926d3e924c0b9e91f582db5c2d41976447e53c8466733e166a5ab6bf4b16ffc79f31e3c0106023bd8d9dec13f5a477abb269e1f1fcfe0e136d402055c0a05bc98d1654cd99dc1f4f2d988d1d6a30cfc9800186ae73b05cb93c1ffd7d38ee26dc9ccbced85667d17fa6f47a2cb9fa9b7709da78b3ed1f38d5ecfb0ad311b78495ed10107485a340cba89d0abd839a899dccec3416ecd634cced5c749774b3531388ee409e5169e03647d4a7528d862e1d4f3ff6452f14dba92055381ee4565a8d8395b55ef19834b1606cfcff311a755728466b3477391c71b4a5ecdc881b5e83aec9c5e4be7e7decc61d67d55fc09dc9d022ddc0d1d1555ef7382f2c90586547c1f0e731c6953f6f58c98ef093b156e8e494565cb131dfc472604f08bd16a103af66bd243d7f03bc2ceacda5d5d10298ec11f7bd279724a1b062b2ecc29bffe8dcfeb198adc45907b8152ec30cf81c6a7605323d8070b8465fa997181d25147579acd255e69edd576f892b27aeaee4e2fe0926c29597829c934e33e09a8232eff0894a888284c933cc22461f5cbef10d32ae0bca47e209ea3863b9772c749e2fc97d2213acb25f3cb01520c3321bc0b280fab5e0969e031a477fc25ea072a174328aa86bf6c48ccb25b0417366baa0cd216da842066b3299bf71526cb6a44807c8938edbda1c83428d7298e79cdabaa5b59a21353de04483706112f744aa1f27b38aa68801192f44a6e20c552120f6e93baf3b6e06a223a1ee55eddd24d0754bf58a0479666901f860e56e05c94272acf58ee8460edd542d3ef8d073ed928f9f7dbeca7e86e1aadd46c01ab7bce5800ffba4a23d9efb4ad877755ad94bb3b817517241ed27a95237131f0c2c34b58c9719f96ce0a3ef0cb25a177f09e720120d7731d6dc4af97308d1784df800f544cce9736ea4b1ab3c64680c1af9ac94752b474ea63c282e37fd4b813b0c5c7cb664e3a31aeafef5c99d629e27e5fc78ed2f696a8e8ec9c6b5233a196b9c75e73f78778b43aa622ea6d474e9be613dde28fd6e1490530c18f7f0400c0f9f539321b323e41a275e93be58c1fe137ab70a4b70d82cc3a3c70ff875c9027336055946bd5d2dbc7435202463997e9b0507fb8eae08c506ff59013d2ae00b0e8ee348df513d291258a0e45da208d662c0b7fa66aa43f1c0d05b7afde1bd3ed0411501dd4c3ae79a5a114e79c11e86a9a780584a6ac77ae2c3d0e2f80559bb627c974b4330da5f48bdb8c61bd9e2e32344bef7dada3862e5be62719c711ba9ffd1a12c96fef161e623995970c635d01431cff81e231a231037577bdeae2a78a7f427260acd1a64e170f44a5e7bf0a9422af41406a40f15d4b7cc9ea1fff8309972e168aff1c192b4dbcd7d9f6d1e34f5144385164122c39ab7f4ef56f447f9611699e42b686e4527462b6b3a9fe18a9d0b0eeba9f477b4458533af059caf5470805b680d5253e8fedf92533f224f0f3a7664fa09ae0d38a27ce0b2bf123f82660840538924e54dc307d59159a2cc2713e79a6986aa27bb5abbc8bc70678eba71d2f751460693476e5676527f5b1668a10d7e65e6cc5726dbb0daedac846930baf7363b974297e4d1de1657ded6aaf5d5c4af35f668160a1594153c4efe10b22655fc7b83670ef29441dde122a453de2141a189e999cee809dd3beb151f4e6981a16b6a58343604087079b23d2d02b51f577bb6e298fa4a07e18e8cf5186f71b0fe40376ab44ec0ed30ba7ad06062ef3f11ec304e01f0f9518fb4478f06cf2bd37ad714845978bcdbbf85c40cec5947fa7150e4809ff74f4739b1316de64b1d92e0cf25e3821606584dde02efd89d60dd7b96c2768758f383d3a964bf3036c6a952716a59ab1b26fb5c4c524ca6e0f5f23c6391228c91bfb6999bd9fa55e99f2e1cbc4135e33f21953c358ff253ea44da7303fc210629678e22b91399609cef7ae01200de5b6b6d91d02da454007182173a23c1afa677c68dc9cdc59005de9b2120c6eeb6c1ba2f4888c71918d82967d11fde5efeb48f527ad781a9598533a20a560e18f12586c4729037b2c55bb94536a1dc7854796fc5f9c57641bf09d56ec5e93cc5653df5f21690887694e925128f4719e78d90bdba29d4bfc48acbfbc808e13cac7ceb895498d834a9f9f7acbfb44ee386efa7dc6689399c6fcac9560dfb1cf0be62571f6f4cf9adb84ff1083859bf92f4663927473577d33f7b5b336f179bda41aed4ab0b194ec1610d247e6ca58c617f65f577d8f18c9b27f7c905252c0660aa0aa09abebbc637aaa936b3e2874ddc8aa0faea310f9cc9ba84cc331b4360ef90a53adfa357ba513b54c05f4a2991fd688d1a0e2be4028ac6b574d5356629c39c17b477027f2948f366a83d6a742ddd5b14ca5cced80665204ff0f58ed4562f33a3e7520c68eb5ca3c28e804fe0aba6165d580efe28f370be16a2707bb01ae7211d91258f1b11a18d9b8c93db0ec4cbba129d06c72bafaed6f1689884b834b5ed369322d59f14f9b08cb4a1486640edda8edcfb23e48344a06c62d45a9be735b58b3cc1e8da32ae0892c0e037db849eaa9a47bb7e0389b5bf951ae66a4788b0415d88b87f6f0beaf3afffec0a4db3c076e112855cf175c2bc299e85f398a6b4fcb5fee4d2002f8896d0e97cd83c0c4aa9c55d6024e11dfb52d97f9e98f21190c2887074e15653e6a46a07f050798c9df456079a0d3a3268151f08f377569cd7dfd37299b41d286f95ba530f18951f29672aa597498e35e34901525fed2311fd6a9a9106a76200d7ece2fc342a4abf3b189d44aa96282295c420f94eea8291cc94c98af027d4a3b4851fa36238c8b54d8810abced2dcaea26ac96a2aad4160feddc95b624ee2ab540c4da829c4dc86eb929ad83b7bc7ae28284bf59be6a6e468bd2e35dca12b0e7ee5a3b9ede445242e0ae6fba04d34edcb7586c6a452a1f4f5dbccbaf8409f7375ca5f5db5cda2cd5b8322aee329da6c62c4a01a563a818933175dbd3d3689a3b11152fa6d5a6469de72705568e206912da1ed1d9fe95fb8347c965509516090055b67bf896c743b2d8ae048ad8471f2d64b8e9adc33594d859c37fbe704ea3b4de20e8e95d1cff0cd4ea2c6d42dc1106e0eab1ab73729025d12b43e6cefbd7d57e455bdba7fb9b78eb22ee383f3bc4fed8960dabe22fabb85acf0feec555cd19e78330435c09af31580f520e1b05619b0ee5f083caf5880bf38023884948110a61735d6c1c0337faa3a69bd31be10f55dbe22c7a4a6377fd165c6dbca88da49f4b04e1f152e1203bf198f800eead1eac756cd1ed91e8a33fd32f3a3a92826f50a2a7b92b20381e33d6c3b18414567f8579603617bc2f61f78ea440945c18a098e598aa66194b20e3bad941091f8ca82db032c5b977beaecf826fe33887ec3d3597374a11b6cceed0c55e7fe74d215a69e1c203550c4425ec0e807b775e25f6c8f28e0e58ae176272b3f3f207422d112a5af64eb4689ec957f3bfcf70fc0f90b0caf001a5332eab32688ef35db043d5bcbfc4dba16be7fd4eee3e5ac2f2ce7f2d3576e7ee3d020b63335e742f330bca5c820db534a24b68c9c8da34cabadfbf746365083511efbc467f1d3da61a7f636a3649fd18c0fa4bc8aefc1643b5d01e1706b42411cabd10882e1215037c559cf53ac9771b91393f74bf9eb41b188c90bf49a6605e3b2565a6d64072bf6190b3214f75701a0ab451d057f842a8a545d69752708131c542a6e2bd7931e8a4a2740dccb326e392dee8b375bb8855a569c6de7eab1a6fc4899e8fa381875e33be0b136958888115d0c1929029b28fd043edd4f8a7fbe178ed42691ebadef8b1b1045e63e83444f4a2462a81a99214ab0fc025989e55efe9c91b5b1294c78e10e08b6cd1b13a33e5461430c8cd7d8e644cbe7a11e88b0945970f862cd718a83e512d0db93e7103a3ae6c70c7988dab39b06625c53576a0aa97da46ff3bece3316dd44e53deb1a2829c77e863a6852a4d85a277a4e15dc1d9e228d07922ba54dc5f675ec273aeca8cb65aeb4a8116ee11691d597c7c4429409be995e503311b009ead59e471818f17745f8a32f174d550dd3eaf7a63fb319f245662f17aa55474bde86c0be143d434052e7da346cb059e62622e43d02302527a88eabea9fd86fa1494a6298285b4fdf36d848a7d5a1c2f666216ed386b7048743ef353149df7fee773b60d05e41ba021e16e9356bc546ef21ec64fd4cdd6a84319ce8aa4b6b7d17a9471fd953f55733e57771db4fd1451c0c90af43cb9156b03c09da5ed53d3f4d4134a0f16daff5e6d8c03121c2bed688f81d4aaffbc989e268feef7862a0c91e758a7d53fba189e7dd2db87a622d4980fecec54a83ea61e198a377c4818583928ecf97b496cb7d9190c148a40d1c37bec8b56055ead25d2213ba284d377414984391edfa7632e6e5c41826c584fafa97edf3488261b4f35054b96100267e083dc38f74bb352d2bdbd72e998887a1b1292948117defbce4a9b19833f961e171b52a85f78a37601e711eac414aff7082cd3a37654fedab6b97212afbebfbc5b6d036744a3748057a17099b5af333305dcc5c10940ce22d8e74ef81d04b8d7cafe1a84b46282f1d0285b96bcca6df1541715ec46595ab38fa7e1ade70eb405f0b62eb7e853e995f02a537fb8f133d40bbec417312e2fda7ee4d8d6d5620fd820ecabf759d67d68c51ab7cf1fa23a6785abcb99ea455cf6cd6dac3d59cbcf26dcdf037f0f6201f824884b14bf110374e8208f18c86d31488ac35318e8d61613ad46508c1a5b96b444581a99ff5169cfc08598530da57c6a2a307894761f1bc08c88f70bc2958e6fdff57e39014227c04c397eed0bd358e6789821b625e3138847129eea6178b23d6726ee241d8186112a0bc52aa56f81f01b1c2541f39741ce1b916a610180d9332fd342d67afd3dc9bf0860cd40200ba563f166cf7e137b7a0dc436e5587b667946c3f8fef629874466851866d2a4046a23b3daaa6d074a77d46379df1109a5bf64a57bee2e122fc1df8adbd89fdeddadde3ed10ac7d81a8a875558fa8dff3d6755e87c85bf4785e8060200abab13fcd02f5b5770aff7ba42ab83a26d9cc6f55ac4bcdc7996748c1ddf8397d38577076c34c4e5111343d8e58a90352143c5c4e36938334485c27c582ad75adfa64b8b2268feeaa2284726da4a03dc2eae95e217db550ea9ba3667cf911f361e3dd6c7406f15c80d9292311d9bdc3c3972968fade1b2e1fb6ffe443e8d39b21ffeac17260999ae05f724d353589f983cd78808af8b5bb2a39d2fa7f2b3f8151402dcd107510c4457e63893145829e72e1db9a88d72c5a3d3085351a28c59632741ac383c81eb4fe03e3657d48e549ba77484d081cf0c995ae0dbb531946fdd2a8800ff9b900ea9815dea1d51a1c08d3ac52cb8bca80c904716abc3398e0ad6957c94f0fbdf4aee2e969652e8cfb0b144c3861be523a00e69f5d628825651dbed5905a9351460be2a668acedf293e3239f79b35f556876941bcb7e435c9800bdaac047c4b6068985d933cf4f85b8f7f596f1a644b30a59b49f870819769211fa4005dc32e24bf3a3fd3c3395b16013a0a83d723efd1450ff26a82369e1fcec34413474fa3aaeda42fc68f2089cc272349f38e0dac76248383062cb903cb25cf0f82f259fbea512eba62a57fc45821cee06e3558bb1637b9d3d7b8ee514dcba36d2acf94143ec8e5636b91b714e42287ce3217cc4377563b57e9bfc93286d5f44ff9ef4ca616998109f1a996f1047ab5d12fc3f8b22fc6d53485cbda0d1a386a34c5acef57030d7a2a625bb974944fb50b67942b7951fcf9a55b76bb01b2dbda67c77a0c804c85d5277943e61a1b99a0bfba66b81c0629ff13ab1a0b975761fa3f628804fa373c440fae7282e680ba91cbcbb72097abb6bfd5196f6527eb9e47eb0666cdbd0b6464451eb5efca375ee88793240406bd1cb9228714bf8573b80c7b82f12ac268fc18de512c3f5a1be2fb418567a31ae97c592cfcb2294a9d3218d487ee39c9681c9f33a3cecd813fe90f116a96ce2e1d5a813cd98d087696e36af46348b4cc9b959d7f33095a37b2596869fa9d7f6316b0dfc119ea94564d8b28a210374ca30ee68e7d0e7aebbaa78eef4d909b8dc28a141b23905dbc57abe1b225ec4e631a80076546238db1f215caa72ff9793fd2922f2cae0e8df49c8b2574e50cd7876e0402412970d06646ff07e2f69588bc6fbf49dec23fa46e0f26a85ae75201c0d8780557eb319c3fbf89c4a7e75213454747a2b5a8d6d87ff520a3e67fc5ab11a2b940b395e4a845f8d4cfdc7da9e56b91d1ece5e7ea0ed75fa0edc3fa267055d7d18dc7540ea88d1ba1e88e5c84f15a4f56c230156918e5e63118cb07b2deece866592658c2f5a0b8ff8401d07b7db65be6e33203a1a7c244a7d36c73ec8638618c675b0d78479ecea3891e8538f842d8f9b7fcdfb8a86425ffe171d2c9b1e2c51e39890fb445183646a218de3ef3e251d84657c19c9ff1d55e84b34d90c3b8bd017161018eb4217584a2921868bdaddaf4a50deb9c56d01aa0bfde17de2a8ffc1163067bcbcc8d42645281e3f5065b1ba1e9158013a989f06947145510886f78544760a614519ef700299b1f25924da9b090e63ecf93c8a01ad2f98b4914476786baa04cb779a52fd0d491465395ce3606f5c04ec0d53000b9cd2ad50aee9ac240c61489e9acfa4801facbe4651b9c82a626e47b746a7442ce54bf19ca3bb2e12ae6f57ffcee5b8b3e6aa8145e2aae2353d22f2fa0baa4549aed118580021b06eb383caac3bda591bc9780ed86798c5e41d030ef51888e13ca34be94602b5a7b7da1ad13de53a83862b63cb848ad4cb605b5ee6d8296cc3a93e7c7f880ce1dfb84000e289d190c03b3b045586fc681365fdcb83da25129e7bd5da50c463d4357638fdfc906de69785356cda135badf4f3c82e5ecc836cb19ebc276b4d38eca9c71e11b7928232119185346b193f47ec6da2a3b2ee4ce1f93612ff5b1649b6eb93eb1d40a933677ff1dc25aeacf22d4534d230a96788e476b1b16bd809be0a9a5bb12369da4872894e51a9f9e53ffb8ee876c3e2dc4e98590c747deedf6d75c7936f4f71e57964ab4c1e03c1d3827ff868ef6c6ed12795700e85bfc6895a036c45c861c80939d19d02fd9e001f87e5860a45f23c89e69512558ccb5505ab53958dd8e67853854e18268107be8833dcd28b62d2fee33f25e6331616485c69a87cad76decdf7aa18245d1ee69512f0abb2f3ceb5f3c10d996ecffe5714cf1107e28cc88f9b496f34e53d25b694bdcdd11f72129ab8e184cd707eaefa4cf9dfca4952ad3999fb7c380d4445863cdde69a056bae60b117b7930d7dfd9294b96f8a3caf175cf06cc9a12f00d77edbc237fc5f84ad561d6656f0028c30d086576d3863578e0248e46e45171076da255cfc62eeda46e96e39278c9da3e267b38cfd0e7f4009cf40052d09303b5e30f9a3b94fae19a6bff01a8ddcd72baa88beab0c432c447e130aaa958453e70f984f2f96cb71a55215d447e5c462f247afb2bb8550cac5a9b13c7f9fbd479b06f7c1c25f97373a51950ee7db289944cb30772ef5cffc4572c8d7dc1c90db6935ef87db247300303a1a9cef963ce4187ffe5a9be1befdabba65e0a566afb39df65f9fc1e3687fff100416082b61e3f8d51548a70ffdf09d50b3ca9191da5798bfd725b379f1b9a7de476d18585e9127fc5df6d010a614598cecb98661e6a1a93baa47b13fa9a02f03bdab322a60ff89d23a637d94a589f8f99553188d49644d261d4d297f95a612e8c965601638da5df3ff404b791b734cbacd6f5306c8668c12ded79643d9e81223a056d7ace13217ea32844eb142e0d1b3fd80a32393d1268ba3b5af469495b5891a8fda786de594efe5e6038ebadc1df138d42982ec32376763a12eb643cc6d874bad72e8d0541e5d5fc2395718def9c98acb6ed42759e4f32c096b35f47d806a7f0f8b7f63196455b1e125cdf0d3df8a6850e2711cd89b175bfcd31defbfa0f84056931efe5597e894b9e20ed0ab986ac56f512233c677de07804eaf7ff018622fd56d5b958ebf419e67ea0b42e805422dcc005246c8a4f14daa8eeeb99ed8ff69a5b855c17eb1704560c4ae2df8824a726a1866cd178eb78f3c0940de6503b81f30b580966d925458733581b60a27cf5b0f9a67cbd54533b709ff2a971684303c3d5ad3e713f95871db24bcd464a861e1f53886b0dcc2740a2e2709d6dbc08b208b09ccd87f6329ba90bfcce45220f0ba1b831fba7a43f159bec9adaa116a2755312c60ca36f5a924fd5ed488d2277ff35bcd0066552a1a95847e17c6cfb1e60837d4fb67f2b5d65693c735f7835554402f2b5e0967b379551764e45276db3299f5704de7981c833209db3b0f799beec1feba0364fca2d5bf63d02c1591861e4f0d18e28ea4c8f0643bf139b610d0828a97b488666c87122e9af2200ee7e9a2d80d4fc6ade8b6b702b52f9743bb554f945d123e160ed0e0555fde5467f12b1f2cb04419c49230d177e1a285511f504df27304c8984c4b8a6e63cad66731aef21e52a5aad933f1fd650a4e1682fb3f935fc57e8a16ca729ef1a70945fdb6d622aba17b35802dec4ae57a8e1c3b2bf64609101cd00f5a9d962aaecfc34d9121342a2009bb9daa897a8fab09f9595bee36bc3bffcae3b3d14fd7ce90061ceb635b5eb163d0a586115fc091b3f9b477f5726edea0d2b0e3477d06861ee7c3730e5e4c592a1bad325662812dab387fd6731c2a7ec5651cfd36c1cb0f5c78f02b8cfac1fea6ba7cafc80ebc0c73b98ebbac8961f5e60351e4c173a765937d204197d14c23464ff28ad8da171a0d9ba93dd61b3ade35f84f524b4ef91494513bda09ba993ef2483d8840397af18b5a3dfe82537eb784e11b042f5dcc0b18502f6e294e36d64aa1dc69471bb91fe38ee6ce0f398e7299ca6a54e0c79394de3ffed8bb7dc86b988023c86c5383805f101028ce95069cf8571eca8ade6b40f3daa5b560939acdfee944f032a3931647a7aa5bc0d7e5c4ccb87b046fd82be827ec775850ad32a918bea7668b8c32e6ee169bccd9337023181f01fca21726c6a0dd976baf90fc0a8c90c0db7b2210f61297f505b26b4c15252ac6785f98c856db6349a0ec37d8af2a70382dfeea71dd595cdbb877b439e23946616a4ac83bc08ac89b4ee59294da4913d252dbf9a31261b330c308d397e60b8331ecf669f3d8f8dca956415883ce61edcbccab5f2b8b8d0b8493a74eefdaed181fd0fbd370e0e05220846320f2e46283c90a3ac07c54dd2ba03890226b3b898c9f8a2793ab638ce89e733f891059790b8fd4fb987e8bd22969bec03725912e1dad31404bfd6744cd749175a844d67080d490e8e9923ebbae01cadca417974914c9900937e088362b8452af9b5ea637859b75af7f2753fb0abea7021092056cda483e922a17a2a0a38a2f1f646a63183eb7d7d5c8ec64962dd77fed22b7fec673295f525b03f5bfe2cc6814b0a322dda5988e34e370e9a31586f835dc57f47fce28f18849c0aa6648946b8e9d1697cab1e709b3bf8bbca24c51c35796a6ad064fcfdc8fb066b8d6ffe1913a02d8c808d6c91ac1debdcb5ec0ced436e3c5b3e7c299f6e94e0c4e844dce789116982def7ce033458054c8d3accb46e530e9a5cc678b63873ff51dd39c04db1a6b2a8ef3d22d47a06e4edde093b903dfbeb1c42268b1066748ea3f3fb700e7f5b0c609933425d69504fcddb6393c53d2e9a41bea4cc783facc2aa785f0a7c61f011e320471198989fd6056bf480172a72485c7fcca65fc1859b178e33a148ef9bccfe68e189bc955b1cfe98fe5107d6cf5d505d165e8e1b43f3f1199bd1e625dca2a428a2ce4f7af3a0bc350f793921dd1c8b33dd59b0fb2962a1d0475e7dbccae950a1f8eaf1d5efed44caf24f75e40b78d015d4c6f0eb921b35170a7534f090ac695c5162b5bfa1af6fc1f9b23960ad525746065625a4c0f65f2441397468a58705409e5c5146154a023d50abd7da6463d8e957385cfd7e9911617a530fb99ac572a4c48a2a6a83e74c69e08812e794a23d3c1ea66c98ef8bac86742f6ce22339ba613671c9a1d1a23060c9abb6c9935adc7bf3226f25c922ae84ed6a00be707cee3f03c3b2206e05512578259c49baad31c63cdd49d3a289e9fba6c1a6519fb36db89c7074f2b6e0e6c801fa3134d25ca4359b883cf82553733d8bc1f1557575902456ab9fc43c88b81021a2de09b6d20614bbdebbe8176c5ab8fcad6d2440e5b56dbd059ed97271cb26bba421358b520c703abd6aa81282ce71f6a7e56fcace4662b713328b0ac6e81ea1177e237cd286bfd0a0f5e910185eea4b18c70f449e3816aa4544d33798cef4176e6b99ce4b81cd37eac6199ac2c1557f41767210087274954ef46e6f34c2ccc06c52617538c563eb392ddcd2e36485c6572e3b75267c07587d035e30ec9cdc6f4c99d33e5fd2ab53e7bda6a812df66fa8f8a8ef56707c18e9a82f966eadeab7ddf8710eda43608a2481134af2f5c48f116049b5e4e7c0d7a224d7e804f0dfd61ce299a0b5689c79ac0e8d5da5a050f5b9cacb5bc3d759f8255cba992f1b9b2082e907497783f456aa2b5229b464c3199f0ecbdb4f7a629e4d8779d8a067ed980d226bdc17c7917895f7184d0956f581aa1f48b19e116ccf2967b2f19cca92fe76c8c457aab9f80d4fae7b83b761007f9cd08eb07ea07b1f4513f4043a9fe5dc5bf80093664266937ed1e0740b44c2bc5d7b5c426402bebe604c59a80e6a1b0466cfa983181946e6533a35dd8d96a65049852e9923ed0cafeaa4d15709804c0af9c25dd63bd6f71cedf634d76571cd8dbbf0af4d6969ba5536fc89c6c714c384f5dc176ee69c6de960c60c5ff7a1c140ca38de7d8f21bcf6693c3fa1016fb9a65557e81e999fc7fd79c21154c7b73eab4755b86a03c20541a8eaf99e5978a84969aac47821525ca01d9e3faf5d6f5f00b60cd88ccd519cb6ab8ec4f1612142d4a9d12551ec2cd15cec2e40fe00e5ede9f5e928870ba7b045e52fe231b0b939b458c7a9dce59d6002ceb002461c1b106819f6e4ff4e841939dfa2ced6353734e29827d4b327828874e732a64a646814c0f6fe7efaa0bc5ffdcb7566f786c6d00b9deeca6544472470d4d2943b56b663541986de8526c7ff33e1f1ecdeabd22bd447bbf29c50c6058b89b75e26bc148e40a69f94a9ffc94fd65e297a79fae247d16ab2a8e300dd0e79cb1aa70a61bf38770f103b87e465849a48eb5919c8788a6807db0175dd17a429534c8311808792b8ef674c67aedd575b5cf2f2fd23a48babb67fafb6db69a144363d04600c17425cfc1af5573ea4a0170fde8a8194eaa4eee11f81090d4d5795fd6b2852fca54fdd5d89f2a1123f4a571565a6b40d278243e242965bfee41adb63f5838298f89557341bb83559d42668abb7550d1982880e130f024ceeae608c457fa37c57535ef1ddf774498057079804158d2d4d8300c5d34f77351c671b843aa78f969656f39bdcb06370b4f4caff69ac3ac985236611c9363d3e6dcda18da278b9019c004dfe608464f5fe8a13c77de54159925276e1cebc5684d4887effccc3dcda53aa3d41f885b0c73ea124ab18e65c58cff53183920bc07d7605b6f10b93cf7e2708386322501cf227892f293f19629a01a00ac76d6eb2ddc85407edd86d68d9b249ee382296996b415089db5e203174c7fd0c3c9afeafe0ded043cfc7fee38d699bb86602401381af3252554d6b2a8ebf547f5f20311741ced37d986c6e831502dfb1efd2a5bb543c7cece60ae86f396c05e734a60d21386681430e3b524c73be559c1ff5fbcba89585d52e014429260278e15e3e7fb27748874cf569b636700158c370e9c691bd75f4e97389a381e34538632c15c86b4f305a981218bbe7e34bdd20d21d539cdfb1c16368e2e592d025f09dcb6ee735eb41ebddfb8c9b613fcfafc2bee20aa6d9c3a245f4b6dead986cee51987fdf836f4a98add850ca7e8df85f7aca150b1150d3941b84e8c121eeb8ac47816beff73057e8d44c2421a3ac67ad33a20ee1268638adb0a47b753105a935af55779eee0b08dfaa07b782bc17e607f8dc75a86b6544272119553da6c8cb7797cd00d6185fcd0f8fd8b421ee63c169326355be6a48eb1d054aeeaa6b821cbc75834ed0d647df115ff84317f47e0069af283c85979cb5fdd8db94abd6f1f66cc87e2cffa0d1bd977a16ccdb41677d25f4f0f4a044b5f3236f75abe22509fee591a882735f04b5373a6588d4c470302da7b2787e9187bc061bb81c7973e1001457ef1bdae0729b6b20d57831504662e8b2caf72b04ba4380750a4e057dfcb48b27207f305ef9c9e0c4161502f6b0369c7393480a2c16928b2883e6c55f5df14343f72379ec451f08b90606b01e9ce1fd8c4c052e6e8cc04a9342e38354f230884ee7238fe1a4cabd6e93d95efabb21de197d1fbf18eecb4190e75c9ec44018673453f0b7e1ccab9fe7bf445a960fca808f7bb1e8c6d9064bfe85387961f7f16298e49021d6b681d3c3d9dce25fd302ccf580fef1214e1e976c8c13f5b01145025f514fb549ae1de8a47b9e2cf4895a64cc7c6d924d200313844d2a2671f918b6859f5756d1ae950df9a0214fc268778d1abe8ef53894bf2e76959ca6342c4163898a18ff64591af1bcdadf4cd1f52d59f6da905926e4fc0686aa51538e1bf9c29ad9d1cebfb1ce8fab1b0a3c211a8b5ce644f12e4b513bab904639eadd5c6fb2244ff3c88022555b412ad75c64dece724f5e63805e86012bec335b615e3f62c78d9f323e4c5981b954f9487ebfef81b7c7fc172600f6f0a0b9600c87257f0097eba74396cb7b8a1cea7715a6f341faa8656ca4883b76e0a9e171a18d7bbf9a9e7d42b0fb464aace852fcb5776a6978ae6fefe6572a14a36bc8837ded2fc1960f8d69ed54600b78d8433fe753e410466c49756f6d182d987375730cb8cc8a9d72142e9a2b9511490c1898ecba207b0d0509f5791909ce9bb968$e5c48d307b4b444184eba144844e053086000b83b9894620633b43da0b3fb601fd8d7d2a81cde7f941b9119d5f1e1caae59bfa236bc8652efef93219f8ae492e4b6a8f7ea8da084d93a7721e9baa58e2700c2606eb0af8adb8373a919238dc7bbde726bced1d58db9fae906d4498deb8e91f44a1c42fbb112d9cbe172952685c3ea4b2735b17b2180b330a2c40b27ae1464c62e774a10be913ee7c131f2324e9890716f32401d77fcaa12ad2e07ce5441b5bcbd6e85c005762759e64c88cbbc97d50fd11b2aed6f3a714f2e6f3d1b4fb6a71b744dabb28e20993810bb474726b77526bc8dd30c75e556405f615eb63acabc56fa97c5a19ed5c524286884bbdb1a22680fa35e74248cb44e646c28833cbd3eb0ce7478425aee76af39360327fe3f2f55db3823404cd8bcad8d6546eed5d6bc7921e810b34ed399cd15780f48f2a3cd2d41113c1b1c1961bb2810bf4fb9053838b3d7978c254ce9c4b7dae92f5341e1418756d0aac510d1e66af3a8d87155ab15a606084e54288ae2548bba0478d80f8af40893e9059d4a870747a8a902063f7878d1cc4703ce4c920edf438ab98e4535f5c2e5bff9f8e9e82ddd3f8d639ecaeab44a1a30a55a59e2a0b208f4cc0a54c1f10c2d20e7fe786ccbdae541f9dc1299451a51974968fdb8281c21daeccfe426666fe02cd10e54f0f5d7d0962b563d7b882d7e125d16ea871e59c995154"; + +u32 module_attack_exec (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ATTACK_EXEC; } +u32 module_dgst_pos0 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_POS0; } +u32 module_dgst_pos1 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_POS1; } +u32 module_dgst_pos2 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_POS2; } +u32 module_dgst_pos3 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_POS3; } +u32 module_dgst_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_SIZE; } +u32 module_hash_category (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return HASH_CATEGORY; } +const char *module_hash_name (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return HASH_NAME; } +u64 module_kern_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return KERN_TYPE; } +u32 module_opti_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return OPTI_TYPE; } +u64 module_opts_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return OPTS_TYPE; } +u32 module_salt_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return SALT_TYPE; } +const char *module_st_hash (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_HASH; } +const char *module_st_pass (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_PASS; } + +#define LUKS_STRIPES 4000 +#define LUKS_SALT_LEN 32 +#define LUKS_CT_LEN 512 +#define LUKS_AF_MIN_LEN ((HC_LUKS_KEY_SIZE_128 / 8) * LUKS_STRIPES) +#define LUKS_AF_MAX_LEN ((HC_LUKS_KEY_SIZE_512 / 8) * LUKS_STRIPES) + +typedef enum kern_type_luks +{ + KERN_TYPE_LUKS_SHA1_AES = 14611, + KERN_TYPE_LUKS_SHA1_SERPENT = 14612, + KERN_TYPE_LUKS_SHA1_TWOFISH = 14613, + KERN_TYPE_LUKS_SHA256_AES = 14621, + KERN_TYPE_LUKS_SHA256_SERPENT = 14622, + KERN_TYPE_LUKS_SHA256_TWOFISH = 14623, + KERN_TYPE_LUKS_SHA512_AES = 14631, + KERN_TYPE_LUKS_SHA512_SERPENT = 14632, + KERN_TYPE_LUKS_SHA512_TWOFISH = 14633, + KERN_TYPE_LUKS_RIPEMD160_AES = 14641, + KERN_TYPE_LUKS_RIPEMD160_SERPENT = 14642, + KERN_TYPE_LUKS_RIPEMD160_TWOFISH = 14643, + KERN_TYPE_LUKS_WHIRLPOOL_AES = 14651, + KERN_TYPE_LUKS_WHIRLPOOL_SERPENT = 14652, + KERN_TYPE_LUKS_WHIRLPOOL_TWOFISH = 14653, + +} kern_type_luks_t; + +typedef enum hc_luks_hash_type +{ + HC_LUKS_HASH_TYPE_SHA1 = 1, + HC_LUKS_HASH_TYPE_SHA256 = 2, + HC_LUKS_HASH_TYPE_SHA512 = 3, + HC_LUKS_HASH_TYPE_RIPEMD160 = 4, + HC_LUKS_HASH_TYPE_WHIRLPOOL = 5, + +} hc_luks_hash_type_t; + +typedef enum hc_luks_key_size +{ + HC_LUKS_KEY_SIZE_128 = 128, + HC_LUKS_KEY_SIZE_256 = 256, + HC_LUKS_KEY_SIZE_512 = 512, + +} hc_luks_key_size_t; + +typedef enum hc_luks_cipher_type +{ + HC_LUKS_CIPHER_TYPE_AES = 1, + HC_LUKS_CIPHER_TYPE_SERPENT = 2, + HC_LUKS_CIPHER_TYPE_TWOFISH = 3, + +} hc_luks_cipher_type_t; + +typedef enum hc_luks_cipher_mode +{ + HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256 = 1, + HC_LUKS_CIPHER_MODE_CBC_PLAIN = 2, + HC_LUKS_CIPHER_MODE_CBC_PLAIN64 = 3, + HC_LUKS_CIPHER_MODE_XTS_PLAIN = 4, + HC_LUKS_CIPHER_MODE_XTS_PLAIN64 = 5, + +} hc_luks_cipher_mode_t; + +typedef struct luks +{ + int hash_type; // hc_luks_hash_type_t + int key_size; // hc_luks_key_size_t + int cipher_type; // hc_luks_cipher_type_t + int cipher_mode; // hc_luks_cipher_mode_t + + u32 ct_buf[LUKS_CT_LEN / 4]; + + u32 af_buf[LUKS_AF_MAX_LEN / 4]; + u32 af_len; + +} luks_t; + +typedef struct luks_tmp +{ + u32 ipad32[8]; + u64 ipad64[8]; + + u32 opad32[8]; + u64 opad64[8]; + + u32 dgst32[32]; + u64 dgst64[16]; + + u32 out32[32]; + u64 out64[16]; + +} luks_tmp_t; + +static const char *SIGNATURE_LUKS = "$luks$1$sha1$aes$"; + +u64 module_esalt_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) +{ + const u64 esalt_size = (const u64) sizeof (luks_t); + + return esalt_size; +} + +u64 module_tmp_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) +{ + const u64 tmp_size = (const u64) sizeof (luks_tmp_t); + + return tmp_size; +} + +u32 module_pw_max (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) +{ + // this overrides the reductions of PW_MAX in case optimized kernel is selected + // IOW, even in optimized kernel mode it support length 256 + + const u32 pw_max = PW_MAX; + + return pw_max; +} + +int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED void *digest_buf, MAYBE_UNUSED salt_t *salt, MAYBE_UNUSED void *esalt_buf, MAYBE_UNUSED void *hook_salt_buf, MAYBE_UNUSED hashinfo_t *hash_info, const char *line_buf, MAYBE_UNUSED const int line_len) +{ + luks_t *luks = (luks_t *) esalt_buf; + + hc_token_t token; + + token.token_cnt = 7; + + token.signatures_cnt = 1; + token.signatures_buf[0] = SIGNATURE_LUKS; + + // signature with hash and cipher type + token.len[0] = 17; + token.attr[0] = TOKEN_ATTR_FIXED_LENGTH + | TOKEN_ATTR_VERIFY_SIGNATURE; + + // cipher mode + token.sep[1] = '$'; + token.len_min[1] = 9; + token.len_max[1] = 16; + token.attr[1] = TOKEN_ATTR_VERIFY_LENGTH; + + // key size + token.sep[2] = '$'; + token.len_min[2] = 3; + token.len_max[2] = 3; + token.attr[2] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_DIGIT; + + // iter + token.sep[3] = '$'; + token.len_min[3] = 1; + token.len_max[3] = 10; + token.attr[3] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_DIGIT; + + // salt + token.sep[4] = '$'; + token.len_min[4] = LUKS_SALT_LEN * 2; + token.len_max[4] = LUKS_SALT_LEN * 2; + token.attr[4] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_HEX; + + // af + token.sep[5] = '$'; + token.len_min[5] = LUKS_AF_MIN_LEN * 2; + token.len_max[5] = LUKS_AF_MAX_LEN * 2; + token.attr[5] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_HEX; + + // ct + token.sep[6] = '$'; + token.len_min[6] = LUKS_CT_LEN * 2; + token.len_max[6] = LUKS_CT_LEN * 2; + token.attr[6] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_HEX; + + const int rc_tokenizer = input_tokenizer ((const u8 *) line_buf, line_len, &token); + + if (rc_tokenizer != PARSER_OK) return (rc_tokenizer); + + // hash type + + luks->hash_type = HC_LUKS_HASH_TYPE_SHA1; + + // cipher type + + luks->cipher_type = HC_LUKS_CIPHER_TYPE_AES; + + // cipher mode + + const u8 *cipher_mode_pos = token.buf[1]; + + if (strncmp ((const char *) cipher_mode_pos, "cbc-essiv:sha256", 16) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256; + } + else if (strncmp ((const char *) cipher_mode_pos, "cbc-plain", 9) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_CBC_PLAIN; + } + else if (strncmp ((const char *) cipher_mode_pos, "cbc-plain64", 11) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_CBC_PLAIN64; + } + else if (strncmp ((const char *) cipher_mode_pos, "xts-plain", 9) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_XTS_PLAIN; + } + else if (strncmp ((const char *) cipher_mode_pos, "xts-plain64", 11) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_XTS_PLAIN64; + } + else + { + return (PARSER_LUKS_CIPHER_MODE); + } + + // key size + + const u8 *key_size_pos = token.buf[2]; + + const u32 key_size = hc_strtoul ((const char *) key_size_pos, NULL, 10); + + if (key_size == 128) + { + luks->key_size = HC_LUKS_KEY_SIZE_128; + } + else if (key_size == 256) + { + luks->key_size = HC_LUKS_KEY_SIZE_256; + } + else if (key_size == 512) + { + luks->key_size = HC_LUKS_KEY_SIZE_512; + } + else + { + return (PARSER_LUKS_KEY_SIZE); + } + + // salt + + const u8 *salt_pos = token.buf[4]; + + for (u32 i = 0, j = 0; i < LUKS_SALT_LEN / 4; i += 1, j += 8) + { + salt->salt_buf[i] = hex_to_u32 (salt_pos + j); + } + + salt->salt_len = LUKS_SALT_LEN; + + // iter + + const u8 *iter_pos = token.buf[3]; + + const u32 iter = hc_strtoul ((const char *) iter_pos, NULL, 10); + + salt->salt_iter = iter - 1; + + // af + + u32 af_len = token.len[5] / 2; + + if (af_len != (key_size / 8) * LUKS_STRIPES) return (PARSER_LUKS_FILE_SIZE); + + const u8 *af_pos = token.buf[5]; + + for (u32 i = 0, j = 0; i < af_len / 4; i += 1, j += 8) + { + luks->af_buf[i] = hex_to_u32 (af_pos + j); + } + + luks->af_len = af_len; + + // ct + + u32 ct_len = token.len[6] / 2; + + if (ct_len != LUKS_CT_LEN) return (PARSER_LUKS_FILE_SIZE); + + const u8 *ct_pos = token.buf[6]; + + for (u32 i = 0, j = 0; i < ct_len / 4; i += 1, j += 8) + { + luks->ct_buf[i] = hex_to_u32 (ct_pos + j); + } + + return (PARSER_OK); +} + +int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const void *digest_buf, MAYBE_UNUSED const salt_t *salt, MAYBE_UNUSED const void *esalt_buf, MAYBE_UNUSED const void *hook_salt_buf, MAYBE_UNUSED const hashinfo_t *hash_info, char *line_buf, MAYBE_UNUSED const int line_size) +{ + luks_t *luks = (luks_t *) esalt_buf; + + // cipher mode + + char *cipher_mode; + + switch (luks->cipher_mode) + { + case HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256: cipher_mode = "cbc-essiv:sha256"; break; + case HC_LUKS_CIPHER_MODE_CBC_PLAIN: cipher_mode = "cbc-plain"; break; + case HC_LUKS_CIPHER_MODE_CBC_PLAIN64: cipher_mode = "cbc-plain64"; break; + case HC_LUKS_CIPHER_MODE_XTS_PLAIN: cipher_mode = "xts-plain"; break; + case HC_LUKS_CIPHER_MODE_XTS_PLAIN64: cipher_mode = "xts-plain64"; break; + } + + // key size + + u32 key_size; + + switch (luks->key_size) + { + case HC_LUKS_KEY_SIZE_128: key_size = 128; break; + case HC_LUKS_KEY_SIZE_256: key_size = 256; break; + case HC_LUKS_KEY_SIZE_512: key_size = 512; break; + } + + // iterations + + u32 iterations = salt->salt_iter + 1; + + // salt + + #define LUKS_SALT_HEX_LEN (LUKS_SALT_LEN * 2 + 1) + + char salt_buf[LUKS_SALT_HEX_LEN] = { 0 }; + + for (u32 i = 0, j = 0; i < LUKS_SALT_LEN / 4; i += 1, j += 8) + { + snprintf (salt_buf + j, LUKS_SALT_HEX_LEN - j, "%08x", byte_swap_32 (salt->salt_buf[i])); + } + + // af + + #define LUKS_AF_HEX_LEN (LUKS_AF_MAX_LEN * 2 + 1) + + char af_buf[LUKS_AF_HEX_LEN] = { 0 }; + + for (u32 i = 0, j = 0; i < luks->af_len / 4; i += 1, j += 8) + { + snprintf (af_buf + j, LUKS_AF_HEX_LEN - j, "%08x", byte_swap_32 (luks->af_buf[i])); + } + + // ct + + #define LUKS_CT_HEX_LEN (LUKS_CT_LEN * 2 + 1) + + char ct_buf[LUKS_CT_HEX_LEN] = { 0 }; + + for (u32 i = 0, j = 0; i < LUKS_CT_LEN / 4; i += 1, j += 8) + { + snprintf (ct_buf + j, LUKS_CT_HEX_LEN - j, "%08x", byte_swap_32 (luks->ct_buf[i])); + } + + // output + + int line_len = snprintf (line_buf, line_size, "%s%s$%u$%u$%s$%s$%s", + SIGNATURE_LUKS, + cipher_mode, + key_size, + iterations, + salt_buf, + af_buf, + ct_buf); + + return line_len; +} + +void module_init (module_ctx_t *module_ctx) +{ + module_ctx->module_context_size = MODULE_CONTEXT_SIZE_CURRENT; + module_ctx->module_interface_version = MODULE_INTERFACE_VERSION_CURRENT; + + module_ctx->module_attack_exec = module_attack_exec; + module_ctx->module_benchmark_esalt = MODULE_DEFAULT; + module_ctx->module_benchmark_hook_salt = MODULE_DEFAULT; + module_ctx->module_benchmark_mask = MODULE_DEFAULT; + module_ctx->module_benchmark_salt = MODULE_DEFAULT; + module_ctx->module_build_plain_postprocess = MODULE_DEFAULT; + module_ctx->module_deep_comp_kernel = MODULE_DEFAULT; + module_ctx->module_deprecated_notice = MODULE_DEFAULT; + module_ctx->module_dgst_pos0 = module_dgst_pos0; + module_ctx->module_dgst_pos1 = module_dgst_pos1; + module_ctx->module_dgst_pos2 = module_dgst_pos2; + module_ctx->module_dgst_pos3 = module_dgst_pos3; + module_ctx->module_dgst_size = module_dgst_size; + module_ctx->module_dictstat_disable = MODULE_DEFAULT; + module_ctx->module_esalt_size = module_esalt_size; + module_ctx->module_extra_buffer_size = MODULE_DEFAULT; + module_ctx->module_extra_tmp_size = MODULE_DEFAULT; + module_ctx->module_extra_tuningdb_block = MODULE_DEFAULT; + module_ctx->module_forced_outfile_format = MODULE_DEFAULT; + module_ctx->module_hash_binary_count = MODULE_DEFAULT; + module_ctx->module_hash_binary_parse = MODULE_DEFAULT; + module_ctx->module_hash_binary_save = MODULE_DEFAULT; + module_ctx->module_hash_decode_postprocess = MODULE_DEFAULT; + module_ctx->module_hash_decode_potfile = MODULE_DEFAULT; + module_ctx->module_hash_decode_zero_hash = MODULE_DEFAULT; + module_ctx->module_hash_decode = module_hash_decode; + module_ctx->module_hash_encode_status = MODULE_DEFAULT; + module_ctx->module_hash_encode_potfile = MODULE_DEFAULT; + module_ctx->module_hash_encode = module_hash_encode; + module_ctx->module_hash_init_selftest = MODULE_DEFAULT; + module_ctx->module_hash_mode = MODULE_DEFAULT; + module_ctx->module_hash_category = module_hash_category; + module_ctx->module_hash_name = module_hash_name; + module_ctx->module_hashes_count_min = MODULE_DEFAULT; + module_ctx->module_hashes_count_max = MODULE_DEFAULT; + module_ctx->module_hlfmt_disable = MODULE_DEFAULT; + module_ctx->module_hook_extra_param_size = MODULE_DEFAULT; + module_ctx->module_hook_extra_param_init = MODULE_DEFAULT; + module_ctx->module_hook_extra_param_term = MODULE_DEFAULT; + module_ctx->module_hook12 = MODULE_DEFAULT; + module_ctx->module_hook23 = MODULE_DEFAULT; + module_ctx->module_hook_salt_size = MODULE_DEFAULT; + module_ctx->module_hook_size = MODULE_DEFAULT; + module_ctx->module_jit_build_options = MODULE_DEFAULT; + module_ctx->module_jit_cache_disable = MODULE_DEFAULT; + module_ctx->module_kernel_accel_max = MODULE_DEFAULT; + module_ctx->module_kernel_accel_min = MODULE_DEFAULT; + module_ctx->module_kernel_loops_max = MODULE_DEFAULT; + module_ctx->module_kernel_loops_min = MODULE_DEFAULT; + module_ctx->module_kernel_threads_max = MODULE_DEFAULT; + module_ctx->module_kernel_threads_min = MODULE_DEFAULT; + module_ctx->module_kern_type = module_kern_type; + module_ctx->module_kern_type_dynamic = MODULE_DEFAULT; + module_ctx->module_opti_type = module_opti_type; + module_ctx->module_opts_type = module_opts_type; + module_ctx->module_outfile_check_disable = MODULE_DEFAULT; + module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT; + module_ctx->module_potfile_custom_check = MODULE_DEFAULT; + module_ctx->module_potfile_disable = MODULE_DEFAULT; + module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT; + module_ctx->module_pwdump_column = MODULE_DEFAULT; + module_ctx->module_pw_max = module_pw_max; + module_ctx->module_pw_min = MODULE_DEFAULT; + module_ctx->module_salt_max = MODULE_DEFAULT; + module_ctx->module_salt_min = MODULE_DEFAULT; + module_ctx->module_salt_type = module_salt_type; + module_ctx->module_separator = MODULE_DEFAULT; + module_ctx->module_st_hash = module_st_hash; + module_ctx->module_st_pass = module_st_pass; + module_ctx->module_tmp_size = module_tmp_size; + module_ctx->module_unstable_warning = MODULE_DEFAULT; + module_ctx->module_warmup_disable = MODULE_DEFAULT; +} diff --git a/src/modules/module_29512.c b/src/modules/module_29512.c new file mode 100644 index 000000000..2c0d387c9 --- /dev/null +++ b/src/modules/module_29512.c @@ -0,0 +1,471 @@ +/** + * Author......: See docs/credits.txt + * License.....: MIT + */ + +#include "common.h" +#include "types.h" +#include "modules.h" +#include "bitops.h" +#include "convert.h" +#include "shared.h" +#include "memory.h" + +static const u32 ATTACK_EXEC = ATTACK_EXEC_OUTSIDE_KERNEL; +static const u32 DGST_POS0 = 0; +static const u32 DGST_POS1 = 1; +static const u32 DGST_POS2 = 2; +static const u32 DGST_POS3 = 3; +static const u32 DGST_SIZE = DGST_SIZE_4_16; +static const u32 HASH_CATEGORY = HASH_CATEGORY_FDE; +static const char *HASH_NAME = "LUKS v1 SHA-1 + Serpent"; +static const u64 KERN_TYPE = 14612; +static const u32 OPTI_TYPE = OPTI_TYPE_ZERO_BYTE + | OPTI_TYPE_SLOW_HASH_SIMD_LOOP; +static const u64 OPTS_TYPE = OPTS_TYPE_STOCK_MODULE + | OPTS_TYPE_PT_GENERATE_LE; +static const u32 SALT_TYPE = SALT_TYPE_EMBEDDED; +static const char *ST_PASS = "hashcat"; +static const char *ST_HASH = "$luks$1$sha1$serpent$cbc-plain64$256$152380$3530e7a181e2ef9ccb053e85380148087313218cac9cca053a772a8f583a23b0$9d42af49be627419ea6a73af8cd30f5e9b87a9c611629c2750b7337ce897255774ac8e06ee17d1bea55abcceab5e2055fb4c607d1a0df1c2c3640450d787a75b80d2bfda9bb29c632514d5e0f865015daea90c04384de8e5310ec1119c299c6963ed4a8bc546f5ee538ae7c2ede100750aa8b58408d2b1c07c7391cbb7d47b985269760e53022a43b6881fee80047bc82e5fd8a6132e365046f6f2c49db5aff655ca373493e27d3ea986bf0c82832ffc4071657b68e275e57448cb1d8ab62cbc7b998c5d189644461fb87faf98be43cf652bde3e3f5ac9e798b5cd515c8625f7bf3c9ea40270bef133a1c15c7c3e2c60145525ccff32e4cc8e2f108ed48b749c660ed6da88f58029f83dfd87af6d9c0eb210c32b41345d8b270c73029a891c144033e476bc0c535bddbd27714934818c8f22cc129b24de3480f0be1e1eda7cad9d041ccfa0d48a6f1d980740ef2053424b1cb22919745cde9904d12c411697d3c9292bc9bccf9c63358aa5a8dad209a7615001440552c8289d0c3a02cb4475515ea5ee61647a62ec3c1bb4d66bef6d4fe42e014194fcc73631daddb2f3ff8813dd23c84dcfb44b56b84cc489291790d3aa0b9a67c796c6436c0d63991104e0708595e54622131e16884af5adad6fa321c2c86f923d242261fe7645c63da5f3afde85cf1421d6af470617757ad468c8f87448a95b1f9eda1767818b17d8cf9a4d4c462a9e6ee1edc2413267535b06e853e083f5b7d086d61163f16d4e30a966e071b06b21a8ab4e81e557146e45e7df83a93b9eb144cb7b5d0423b4667c085ae67ee8738cda4c83808d659465013cc14756fea73a95b70cb847b40e5942f498793983b1b1264700f47b59e052cda647257a1ed49f3a2d72c805095dc22914bbfd5f5156b9178f9aec38341e27b50e4783f70e0b782d11874fe8549083c7841b59d5917e03f3ddf0a0f70b1b4316c04955be3b10dadd68db56f67de4d02b40eb7832e7929b60ccfdd4c0edcdf5d349ed168860ad9fbe7390a8e2b3a556664557b5f54d07d4a036ecffcc371c7d836a40c2bdb8fbfaccedce1b79f6b149e4204969130fcfa4df12918cdc04340a6049c3b7b12edb13dec51ccf2ca406fb807f11d2e50728ca06222c2660feeab6ea5a0a7bb674b04aca0e5299593d93ccd3d665a1f7b80366c7ac078d690c4b4bb4a77c7190596d02c3cfdbb4956d5352c878d724aafd27e3712d2cb411d83bdcb69dfe45896088e352f4052cff2b669b5a134b16e294350fa0e4c72345ffd656985c900334dea9daa4f233f4e0ceaa89183f43c9d9b0ffaa1c9adc3803df284011f3acbdbeb08eaa23b3719878a2b90af8d6d034996d79c4ecc9a2ac28010cfcee1283562c974c2948c4606f519a10895df6640f00c235f6d7bd37c683328f4570504bbd91677aac9360d3f348ec66ea4927d134fffcfc61445c5e9352ceb5403b6f4040d7e71f219413f875bddd19a393e869064981060a8bfe49521d7636083b952ed2e2f1c6a0470af345878d1cd51352b1d5d989ef84ddde713e292ed8e3228480498cd71e2d864867e6b2a26cff50a0ddc1d71a312e8a85dad3e158dba9b76792981108d4b147800c8d2d6500c610672fb22d552775756e55b4036a7ec52d95c11ef304e427f65fef3d290e829c2858394773a98cb992b0341a4160ba0ce1159ffce4c93ead65624aa1d70e1ab660182bcd655911a3bda4473d081bed5bc4aa87038f650687a58380e26e22e756ef48cb017727962050d1f958fa2ea2f10fb29c2aefdbd1908526c72df017b81cc6340465eab50db45c4981454a752e8d81110e5b7c141789ea486079f1ed4f096e126d81a34c002198c5576865ac1ab99cfc0ca82955f9997b65c1c8f25b0f7de12471af2a43f6336907561b171129101a97d784dc178709027fc6911c397a28371e7127d2f36469442712c047cf4e3907c60531782725b7f8763ed9de16d59998e70a93887716f5d880e999b54a1548a0c005ed5b0f6e81ed588f229b2002ffcb3c5f753ebbaa55e958113c955cbed225205dd5da83b88b55ba651059faa0c2cb27ea0a8bb37127f15eff2f7033751214bf7c17cfb0ed9d06987a1297113daf63f90c9c4af9287d206ea8678b614f4756092403e8d630f4b2e14456e00e52331895f2ba0b7da36699c6718b98d10623338bd52ad2cff8fe43d7f374e9bcb244cebab289e8e87cea2130269bf954ff9f5f462300fb88f7350bd1fc69cb68920db4352ce7a81a03da1839a36fe7d6dd715f2a803873ca7d68413869754441cb4428727310692793e9927c08a09d590bc4c33d50f29d0121727f1eea8b21aa235f0a7e1f59a39fdbcebe7e91c111fb697a6a048ce3b8835e3d51f5758da9617673752acd99dc858746eec74b5e3ef60c64109acc9bee2d1aa6995a30db4a054fa32caae83a64641f716478f24458af53e7bca7b9536e0eabe662dfb4d0172ebe2ba1c50892c5749ee1caf37298ae51bfa5404c052d18218a90d8c0b430ae00eea95d1852aa30fbb8587306552af893a0841609d58835a2c6eecb97f518a547422b28728dee39fe42bf0c4f0dcc8e8ea599971e2c1018e290d62e89d7d62343f9a937249d5579420a0464da95a5604a16d70ee4a4a9005d9876d27be66c7a611342db68db40e3f7646af9a35b47d778a6fe595a98670414243b414801c826ee3be71c85a635dad0e87600a7fa45519c1829521a79f7ad0b47ab6190cef990cf66fef50b0fdc692f1f494240dfd40237f0029dfb9cd4d22fed0bf37d2fc8f938410d51f71d4817c6b596ee8a1799aa5be812fbf23650a8f94e41bb45aab6c97b44a38697c53708489cf31a157d8fe49ea6898cd0de12a602651f7976c899959362e3f6fd641dc59e5c624b6944b2e013499c678acc79c2bb115d683fe8dea6d95d1d0f8ba00e0982a4d2f2d33784b01e27d245317aad63a279b46f4e04779310455a994d898a33358022bcc429e571e67ee2717bead54ea7b6070697e5ee9765fe805460dde300e3f7b23f6ac340b7ab3d57ac0110b3fdaa32062454636f900d954fd611ffb9af2c00f5bbb6ff92d020daa22b574b7de1abbff0ccdd8e7e77406866cdd0fa09c1999e9933531771d5575664921c9c2fd6b101c2d750b9d540c6f9584ce244aae38d6c2d7536f414624bbfbee272b9bfe7c2738187429e1169f1d04c58338f5deb544779ee446367f31c2286a01891d966891cc8cf994ebddaec7291b7f3a6c6c881e7f797e1057d34a1e950ca1857ea3a0c77f1e27c825fc7505d71aec6c95b8f532383ec9319c4d1908190fdf83c10911dcef9ad82a7f5f6e2034cad8cbd0138d6b7ba9affd371227a6869bab189ccbef9201fbaa8505bf402f8b5edc2d0ec3329ee9e57d56980c5b4146eca76318f6ef28b8f4e629f0945e6b78d0b933b87365fbba1dd2e908ccffc273b332aec4f5dc006e38a918504693c09fcda28aa0b16de67934997689583091e224629ee23cbc2642fad0bebf7f34364105cadecd232b4ea189563c692848b886d4514d6752ef75e2b6ef983a1467da51da489c9ec31ef289f93fa67c84bfd371e5ac37710ffa22b3e89efe01763f2763d09ce20017873dff1b334fb849917a477ede0e95943c0056a23fd323f7f58d51d88249c049d5c07ea4b45c7cbb85758db00bafef6eae9184ebb37188608cca788981733d2596b6e2c493a25598adb3f3f7c8a0aa93befda9354c44964d37ea74b5b815fdd88b08ebfc6316fb0e77a32c38036488428ca3ba1564d65d891bcadfb6f3e862360b1498e20b294fa6b7fea9c80bcf4055143b5215115de8ea9eb1cadbf0f6b13543cd57c1efcf430d11efcd5d6afa547ad973366fdc8bd205a28a6f031eb2581945bde2711c577d851a0747fc8c5eb841d3133898aa1d59049e9ca18204f74258de34c5617eb9002514d44ac1f3d7bbb76364fa5c5a8597ccc231c566622e581faa6f1bc7893f0310084f70b86f0098d90958d1ef4ec0bb5d604a57a805793f550811c8899ad3c62390f446e2d44d1e0f4955c5122285e0312de2777e6feb79bc3dc99cd2fd5b137e1f91c8f9ac0d5974bb669f64bb608c787feda83e1df781e979bdfa60762b5c439633752b9ca09bafe7ae4bcd7745433593ef3741ee98c0d4c398f14329f4573200c5fbbf92c774e424a7b873961be1b639d8349034e6e8ce759247b7dacd9a16d5608a25389a3eeb725b106e1625cee94412ff9964e60960a937bcd024c45117163b5fa6cb03e56e1a2e4ec4fed4269e787d8e844e49e5c134a177021a899233fabff26ead8404d507a08e475c5a16362a5e3371095e276c8e96e8a57c56966c9fdde9ed44bc5ce88484fe39e224ef4c6c57bfadd7c99594adcd84bc8bb08aeeafff78ca0c1d58a374d98de9e41a1fd0143d9d53044dd31a4071e75c3e28d76d4fc225986a068ba7c08d0800c4b11c444392cfc09806a202f99d3ce39ba58a0f19d5a0469447dde9bc3c2142974683858baf4ef6894ef9e37d7f039237ec5b7992d1a93476f0a5737f8da8c4c00de3895ca65716a9418816e01261b15e2388a139e0380debf912f58fa10cbc89466e2f83556533d55c027e9e86ef956dc58a990b3ea279ffbd2b1f5940a5703964bfd12a747b5524ed43397e8504f76f437feb1b879c418378f1ab26d265cffd46acd168667165b305ca2b71e55b34ba3bbee6184976dc511616be1be11caf76977cfae5e2473d34e2540b8470a376295809fed9c9dad39c12711e837857d85a7b190c3d8023ff5119701431d41ad293a59a231ba03cc4886be864ee49843212adbaae212146441c82f5b024cb6dfb4dacc052f3cb05300ab648d42907aa6a2fc81b6c46f6fe7b6637d14b7e8e01405bb92994a8db89c43ea7a89aeb4f8d14656a2e2229915251754742743192aec1614609082c83dc0776826cf2c7734cc87eb23ed275b2bd065586bf26005cd8a6af4d94325bb88d5587e2bb69f699673ab87ae2194d6008c48ac7b23cb7bf934393d2864a73db9555c164529126a287886f3863c85f0820fe53d545925361d7d946f3748ebe16a190272779a22cd546dccfbd702cef19ef263f00448e76ababc966afb23e68b518059052ed3d0ee21f4bfc23853d664055f9fd343b41015386d4d42d616e04893309bcce3da9316cc4aa4929ee1da8d3364a660bd56466d03eada29a5008ca5723ea2fbc8aa44daced2deebcfb2d601b1916b3e1b71eee8631771c016f402e2d9e0d64bb137c88a5588394b46c937a2abc59bc794c4f3b1a95118d72ddb474aa14345d160af2459e24e843cacb530e88ff7bb3f3dab8cf8bb0fd2bbc789c9ab7791256a4e2942e90e2ce69cd7ed458ee12040da3053f7c47cd20efe3727ea18dc70a3fdb56e73292bd6ddc0ec5585553c484130d6a46dd251f34d6015abc95f03586af7fd1d2e0a6ba6d52e3397e9fedef2d2b327d3fb137834b8a3624ffe55bea34cc1ba3fb5ded8884dce30500e1ca86a0fd0531954266942f9104403df297e0e19bf66559ec7c096a80482f0b26cd06a91fe0aa047f10f2118e3c14ee90a9abe43881b4e42430d449201fc7b0738a940f1f1e2dda8be66204b3ebb11b73312799bff59d4c938cb49dfa398a27b48da68bb2039a06c3b72251ce914c8ba8d5710f07ba88b9aef259deeb33b6b922a7099f0ed82d71d21f255797e92632ce2ec9c06515ce22b49f675025cdfde5201301f3b8abbec6ed5570908d002b2479c7b58566f4d2b3fdc0f5bf2d812666698bfa899474269ee4a899469e3ca031044a3cf0635391f71ba9e45e612d87fa2b5413ad58e2b3d422ee92fab2762bd2337f6d680107f2eb115b636cdc6df85a80079ee953ab22a69518304a36542cda25ffd87163b4f423393de8c0c664c27e5a11a0febcdebc730b31d5160c42c3063fe48de4a5a0424bb3a64b564416afa29c19ac4b9a233bb8a52d8b6ac0bacccfbb44aab366d1a44cd54dbef755ba0c17d24a8048de57b6d49fb26b58b9236ea385f567ab6355d7f95158c3570209e8dc4abb77d4802fdd9eb664f0d25eaba873a81099549217226800d284fe3e75921d9dbcbf22af2dcb2682e3608c8391f97a8d91bfdd7be1080de4e3dc82606256a43352c1e5b9e4aafcdc22317ba90e57297a4bd437460bcb2af5d73328e3289ed6295b18e3d5321a0d99884c05981f39a95d883e57ef62802457f040b3116f2a84cc584927070d2a1595c1e4fec4f6f9984ab0a942092115f8979c2275fad6b00e9d7fc8d22a93f949bdacc025c0cd7af20c965553faf04bf120e4010d1734a441fab46d2650376223d39a65e94cee89dfe0e9b2d6bd1bf859873c6913c2000a3cf6906fc7e00c57e5882000aeccc17a909995818b03c57ca882710176784f930615dc0e2153fe24c53f5bc03ffddf977700c88164cc97ee11e0dc3350f6836ccc178296b3428244c23ba87c641a7643ea709f275c822fb993892d54c6277c6ebaa99a32dcaaed04108871b88b68f171d97c1f4e734d317ec3fc366b0af69cef87e2de0fcdfc04f1e2aa128293b016e7df7377e4aa1d0471cfd8e629486dd7b2bab1ebf2b2ac583ca76fa57eb0ce012eaa2025451bd57e41a87671155cfdc07ace2b8ed895dcfc816745b5ec949e4e35775e958cdbb4f4fb2d5edbfa528700733139afb9e01691c87ff437ea64b5d0d49aa43b3b6fa7ce724217af0c1f0bb4b6ea594619ccd3cba4d956a5452b6e13f35667930f77405d5dc8af75a8be22948390f3bc9974f5687c746a6807906ee2d84400da0331421e49d4e05848d7c65b35473b5fe6b30eb4b31ae44fbe4f3939c790a5a1938cd4091f1239dd6619f586f83481d9e373138206ca6496b02a1a1702423bc791095d4402cc28fb591893a2f74e5e4f69c7bea5bcc4b8af8c36b56a53cc4860a4c336d5cf01048b8a587effd4a490ed4d48661ac6eb64987529b356988e67903fefcc68128a9c1d90d21f51ede9ee6337a2747397d773bb678eec38c68235e21f3e6d31784fcf0c648cde1492347625d9304cc4f2b9c557f6b27f1f6db6a05a4f9c1383af4cbb649f052c960a4237212d3fcfecca1e1b9e3e12c539f1eea0975a43e875c403a472590bf09cb2d4f2028febcbd5b4baed4791f4dc6f3329f1e2fbdb8151d88e3a894ed63184d341951df76498b4e38f057fb2650c6ceaebfa1a24087178e0a063c263d81693fe4b330e72b17b609764c92b3f49aa27d2d0050c78516d55c48223d87badcf34c1b55aced59833805d0d8b8f6b59750cfd995ede5d5762b37559ed4ef4fd85ab65b57305f9417b98c1140ba99d86972b89ae7464f9764b907869fc7037591cac8189cebdd58218fa3bc8a21d2482c490e9c6877a482175443191fb5a4ac490a7f9af20b86d884e9e8b3858d79d89b8daff93ef43e6fa594cf15329d3ddef783c2f73566c734fb0b39c825ddbd632dfa21b2f2951a7242b5a875f5e8d7d31c10aa8b870be47acc9b2b2c638d4127fcc668a75ba05f31711d2fb238c362ae4bd4ae6d0e5459a10eb11b1d580dfa8cac33ad0858c106720bb6fa973353a771a7d0fae2f6bc65e7229eb302980f7edcb4299296b40046c453a4343bdb42ee0e9fc98c20a10cb4a90623d663d3d08297eaa2d96f13ae97006d7d821606af7403107bf4bafcffebee624331733dfe15bb6677bc1e6ac78ae5f3f0a5384931dd89e3e2e7da09eb31ff690c371747a2b69d84a838fb8132df999453f58374380ddde3eb582f6b6ec6cbb535c0d1463e198450de8a2f30364928f5ef4588db89528703260fd5158c35512d3b31d5d8dd7067ad87fbee27711ced8a0d138e7251bd3884351b78f05e1d205b5c8b312c288a33b7a844fe17a03561a6f115930272bc558f7b8713f2dd2296e9e62228f32a2ec2c943a4bd1b5b552a55f373c3d7740eff7296461cba80dce1d2b6c3b5c2d242037c7110116d9489be07e0007ad5e962ea277e18de343f014f329a2ddc01abbf1d4f646e50f8341cc06b4779b92fd626ce9b8ea2c11b72f999d73cb398c0f3ccf51ee5e1714ad12d2aeb92ceb771aaa6cab677e14b2127bdfbf2d8ebbd2e9ac4e6a2f4cd9adcaac85a83c1f2a19a10e1ec8e2629d08be4315523d6ad1d9b5ee47afce0ca3e510de23ec303e525990120f109ec7cf648f3922807b871b9a4ef07670a635f8d916a01fe15ba2b53bd3cd04e4a9c256827ccd368d7a37d1ba19484c405de1479a5f5ba1f4ea954bf20444faeda4c1559500f3a5d0479e7b68b28a18fbcec33007292eaa49400324c7edee53bf2c5b91b989167616aaa673aafd8ce0e4f4ba1b0018790a3aec915b71bc6a3da29b61405b646fa1a244605227e877751ba3f494648dae267b5ea93265c34dd41e03093b4b063bb3ad5c8be7185579ebee61076e538a944b9bd8907133a2241c1c669053a229e18738aa7b92c75b477cd5b33326e7c106b832893387a99de8df087f366b0a5a79bac4aa74888ea6539d623a5166bf5f78d22f815d6f9ee106ff5ab00e82caee99e8fd0bb8905c21a4c10a1fc6076b778205f6ec6fc578afa43c94f7c0d37f381cbc1cdc08299c4cecb6528fb11c932af33859606828d2fd5bc21e4e25ce8b71f7bbed7dea75f9a35b0b8e7f6e17ea453b58798eb63981cb18020f46539b7d6fcf5819d2118ec54d6ff9884ba462480486c592fcdca6743cf50ae325f158f04ff59ec4af8be0fe40b097ac1a66e191e1fd52a73bd8853b0d88eef7d6f75279876a4dfd761c9b04f5c71efbe40e1dfe052c2f9c64919b9ca892875ff32d11663265f62b645cfc0298f1ad88f9a4b4b5f9e69f0f31140d6a90c4e33d0208b4ef7a492287de9b8565cb74333789977c4b81ebf67b634e82c4b14f623dab5810861f866a94aeb1987f7dafac18b59dc7456db3ba088c344f4538bf2f6e0652bdcb24ac042eb18e592a58f9a1907e028c97d08b3a17ae0cac90daf90124bd14c7477379874e20058b68385f44532195edce5fa042a71e7be2e69facef4ccec7ac47f0a51257c3c0d25ff12ae02831e4097041d0ccf84f8382859019d5b783b07fb9e3a42750e870515e30a949afcb8eb279e0bf3d9e507b0a883e92d44df378e2dcc9466dc5317c7a38e9ea4b373228089a30e2b57a7918ff4ead6adcf17f634e2e03487aaf62d096c596b0ccdce80a4706490b609bf83b402c4fded6238d88ec2b553f38c562850d1fbb001db6773b48591fdbebcc1d1c683ec4dab3a7e3309fab59ace9c9d93ca1fde663a8e5a369648ba6f5331158fee66b717a4dd70b4b223cf9ea84c6ad431c6c474460c0ba249ae23c3cc6762e0f2155193f930543217c55307255d9fe6e486a4b3550c5f2b591245a61e200cbccd8cef22748c17ad90a55224f96cfb122a3315c9ac4165db6fb50888b2ffa2ed4a0ef5824c4f80e3469aeda9a64fa75b2e570dc3a9883485f2e518a3f730a33141402788dfbe2c624c1529078d2872c38e61b4e49aebfa483af848436e2d18745ca05ad470612a0fd7d596d7602ca7ae76d14ea98e8c3b8ca24e4df87edbb8a6fa1a52321a19220e51558da74c4f66830608e521a3f4dbcc0e5be0b4fc2e4a7f46f1361bb9f1b90bab8162be83857007704dd5325cd72a36475b02c80313715613ae0bab37c637ecf3d909f138bafd3c8c8028e42f9d93ae5da3a69fcc8078b02348ee703f5ed5d8eae5b6b4dfebce2931e0654f113d488ce22fa393e888b46bf20af49088cd35dc5390d3667d60b0accfddd861f7827de4af939b4c87e6d92d3c475cd9a3a3788808189f0ab6172dd65faf1f9b330cd67f23366b2f55bdc197270b4180fc7246ee4b910d49e6746bbf2bfb68ebd8a189a7cf2672e155698e9fcec13c8dba7752ae75e6287050a8eb840c21d05c3dc9f8063f37f249151506c22a68a180e21eb7b1d2b25dbb4079e528ae0cfba652a62ec05db7fa7c2ba5b9ad12497eb352aa6df8a197ea8cf6f4f9cdce1392c36d76d40fd667b908ae2af347e26a4c0886f3c73695b64b3c696f7e99ecd1fd658775f39557f55f3f12419c232e5562f1a0e9c549529b3ea6c7b33b88f8a4d76baf220fd1c68db50a72f0b6dcd7a478b3e0a0baa5cff4d7a5c4668b8c5e7b0fc2c8bd60dafaf7946dd52ff7d00fefd8520e04dd0f6e107a483236598fdaa2a9f91ef6961e3960b69b815b515f05b13cf16660fc9ee54cbcdca750119ef1cb9f2e42cf1b45bef0e90075864b905e67c65c22c22512cbc4688558b189ed51712a2e30d03ed2785eb1475704867a2106919d114e96ddca9ece537ebee8b75c3098ef06fa52171c5f68bc28429fd02bb875e742caeab861609ba1d64c13cfba675b718b2e5c503cc453522d6cc052a68d5c80e5566dfec8ba9f19cd8794b5576433641bc453faeeb81656c061deb7c4f1d8af45a3ebf9deae4143e6e870d4261c37b588496651aacd7b413cb807ef2e9f5980e0724090b030bb6b339edbc8cd840ce01cd5713a323f4f171ab96feb3d57d3c1fb50517b72c6c2d3b82adfc61d1746fa1a5d58bbfb9c4c83fb3dfca42b7ab23c5b711635ec8ff8a25e17ecbed1e8167da1c59914e6d8d10da48119c099d397b2e06faa42010af96883a7ee513f61f0ef157720eaf73d04ceec38169ea3b4161ede96f498d9b757b81df1a38226fec7d1f82e2bcf5657236a662ffc0417155436d9ee5a69e478523a8270dc2da02862779245952c8705b85779f42bf0d2ee444e92b5b2c4567c833e19e3ee3938ff0c37cd101916048b5ec1f185251dc1ca45e72495a37b8cdf2226c45a8d3cc2f6d868afa75cb39ff83d9733ca6f7a425fb504367eb4b518c4f3d1bb80e1b8fdaa5901e75c5ffab6de7ceb949331f4b83263fe50140aae875b5c1e3f7e9d12e4829c1e2a47838598671f7447448d89ffd7ceb21c321d500107227aed1051d9b58c1d9373a17df19e16a6bb10ccdfffb89a6cd7fd810b440494d6d7cbeea9da62169e7d00c0dfc7ac2f51c2af57866b98e36fbdbb54dd3143dacaee2191f87b14b9de0efe7398208b4515b2cc46fd5d9c1ea56a5db9eaf6e919d0efd0c510d87d7ee39b36a64bec64b5e8cd7e31fd8254a88643a8c241567ffb02683989f7f5c7c0ab4ff83c294cdeae2dccedb6f94c344254d2b0998cc13ae717cf89954d47ec563a0596f3a70668a5549ec14a4d0467f03537ee233c38638bbe2eea98af70002503f8aed73da2bb36d22a3126f5d1417294fb4a65e1a2f27db2b433c96038e252e7bdc584d10b464c4d9286f0620450f8e27f994922060bea106c422de5f2020a2cf8be72194b5c7144103d0d07486b5746cb63a869ef417d85b398faee94ecd83b8fd36a2e10e85e566eb57a8993596dbd2760fa125cd26da1d6c90e9e7bcdf471ad8db8df310d24e10716271a4b3a5ca526fa0003704a9d012a101b8bfba21a48581c956b283f3f74b14fcb01a97d9c2ba9e1e17895ca213f2cdb570f9c5b07f0a7dc46142e0029c236b46c6df647837952a6d0a75da5f5291a21139e98c843febf46f62fd7c974490a477432df472b9fd07e4040e02406af64714b925602743a72dd5a880599cecba641763af8686220e5f297bad1f7e2e0ea777da5d887ae4f0d2205c7e72ac68738294982afaf8eec60d978c713d0677c04aa962e1bc9588e6f271fb21ba8721289367d4c94206cb51bc674ab939e4596f23c13b4a849fc7d93c1c96fd0055b522677d8f4640d88e87b19dd561fb6a18e2d2b1225db4f2546434297bd171d90f1f2be17e176a30fa974cbbb2fd6426b2284c567e27697c39bb8aff54055ae01038004db6a2f597eda842672953edbc65576364af2f286a2039c6c7144da1991915ee05e5ecce015e87cc23bb41b27d260c0cbd51223ae3cd5ea82f2cfc1ad43ead3c6e3a54c5fc4dd91b8e696251d00c0552d406769deeb024144809fa7616af85bdbb71163211937fd9cce90da949109537d15a18031545736cedf1cd463dddf3cd8dccfbff3d77bd3295fdb0f7f5c1838131810337daf0f22982d574bbc939004545eb9ee076712554d147da015aa08b04b9c6425e9e67df5065dbe68f7357b5b1727c8cea5671b6d6c254edabadf3565cdde36d1915d4b8db45c17517e49a916fc10f8496c950707548be0f22aff9cf6bf05e868f0301438578cb8f5992df39feaf0177da18922e0edd9021f6d57cf272bfada59f3f3a92a7a22c3e83931093e26d9cf36289d52d490ee2f9c53beb5d59c641cafa49a8744a13184835c474960f378fa3c47fc3da18f4dbbffea325fcaf88bbc7665e633e7cd6aed9a3fa10f7a6096255215c6f855c5f2edcb5e165a35fd7f7730fe81c1c88732655153750103640191cf3b07ef2c133afbcf86e51b4c9791177e1cee07eb3baaea6986f648e51123e15927b8817e612a7cc50b2492085fa57321e884093d2556c4b732b56a870580252e48021f77c7542200ae49edcb2a31c820e02e73f820b4df5007e845ce9c23d4fdc40611fe25cea2a14582b9f3361052f70434b0624319d910aff4043b243e5e09f5077303e20571ac64c67f4b9031bb7d01795b1b223c6c650fbbd962d18ebaf9efa5d7ba42f88688a6b4426fd62a04d14ffe9caf0cdfa364d3d7a7bc47be561459894a93486e879caf5579673d9947b8301a23027b5e35defc110493a6b44b9a6a7e63d4f9359d70ab11bba0072599b5c313d4462f4c9153551b670e1a5c43520ebc6a6dfd0902cd7947af94aa0ecb1f7988c85e6ed1efd3bd621d2c0384da17cf3238adeae06701792dd63847a73819a09836f34d1eae0e11f30f79ff09853b3a9f1653d2647e8b4cecaa5978d4d372a85d3f14ea257886704412688f0f1ffaa94b6bf54eeb002b1da0e50d7b016fc144f8d8b5cf946065bd6e8e9aa8ab2d4583ade33da4ed45705e49f03fbfe6fd592c68f667a6c6acce0b57a976546786fd01cc0cd4ccc0755b5e64b983ec5cbb5f6158b7de82641128fa127db4334d646750962a475328fcfed6c62f93b7c9e27e02e313221212256601d30ac483d134ef8b529f26e196c56aae0aed34d7cab78935b2323e14cd5eabef52e85050a3286c0dfc9313b63e99e27fbc0cb4b283cc16b4a7615817a3ee68b9c6753d4481d829264a360627218a88d37a22bb449453dc564c571befc8268a22c76c7210b8a9834157611b9a378ce382b28b18a643973d9770eb15ee80e471036cfd816cdda4c0b4251632cea4ca03d4b70d031fb08f377bf23d7b18ca0ad37ed942cc853e0d536b7766cc3252796ee67a62246c1eea98aff35cb5b696ddf84ddcf57331ac131f19f043c461591b67effb54bb8b48c29ac1371f98912d11f9ccff7849e2d3e4bc53157253f362ded61ce1d81c23f491df971a85f9dff3b1d18f6ceb0f31936ef395f1f0e17e85592eb00dfcd3cd439918f54abbe26831c4c3234a3d43ed9e0a9d7e0f724a3f90c28413b02647ffe3942a8d61b100da294d520ccaf2dc8b14136d5152618300871d9d8a8b9385e907915d266548bb332423ac3b0b2239d54baa5b4254185243abf94851bab5a61757b19af04b012423d4132abf5b5cf12148227f1be1865c4d52ad1d218d23169b630c70ef80eb5976fd237e03a0febba9bf6711d12b85de8126c8e2fd61e3b05791054f266fff44fd4dcf0c725782cfec9b4e88c5b7c8a38c524759c81eee4d41e6bc699b51d09715edc5b2d24ccde025c0506a2d3e8b02e2f3ccc32a83a783b538d5e04bc9439a9e31e75281657f151f2a53cf5398b44d2e3ccb67ecb93574b929c06689c8dc14627122da87403ec9403c5e5a509825d3a62c8c5e1fcf0ecc1bb62421a601b66e1bcf0cfb6d5243dffde972b6c7a4fd58de869b5decfc0a5202082a24de874f2fd8409d8f4c4219fad757d814ebf7296682a766ab279670c3448930df797ce15de6e0198d2dd64a9a3dc051d327312f5185881fc1e312105cabf38ad3ba67bcee8ffb2df6456a6a29403ee612725652504e74f4444fbbd3562ec5d06f8e8520f97ab5f5e7dcdef7804c262d9d13503fa1ed7ed716541efef1be7600cdc92b312e32771877f85887d1f4fc726903a8d60357970ed3f4a7c243bae65d5de3a52eebc24ec2faa1bb1cb635e936d2f5cfb074339aa32edaf753b7d61421cd24d3cbe7b5aefab595f436e50c54055829aa55830fd3aeb936d2252d5307d302be07fd2fcce5ea47a2685519fc264972245dbfb558c35083fe81e75836d9f13d050c61ef85aad5a44cda93899d51f2fdef6933c161f7f1d01cf485b2837e17dc81bda170782d4eba0a391073d9d6ccd52b1bb1afa371edac4c610c6e6a6517c1a62666152873f8c925dd9b816493825afdd24c2b391f7706f8e0f2181eb86f770dfec09f8fb367bbb36f2674e632015e3e675863e51a21486d4d66748ed34e14f29ce2efcf26a9413b939d834d8d8b4f4adab1447b2d4808f40d86edbb6fe7cd49a3eca7310dccc86eb9ae5c56dac981c60dd27ac9aaaf69e6985c0faf3332127dcbdcc63ba1785c4790741b4d7261a8d0440df80b745431c15697d50f72e6a45a19b8c28104fa582da1caa3ed0e50e92713b6e9481069ac5fac6786c6b00da07a89d13e1191a71db644f821ed517e89fba46bc2c8213ca856ba664394954c30ab81c050a462313da9de446f259b4edce92aa90d4358d399de06a0f8ce624913822b7f9a7de73b4ffb17da27d95e847bfd7e569e8013f3dac5e8bdade28e14d299d00002a1f501bf48dfb6e38a6d2192d461c323f5f398e3c9b180aaed52c40f422bf3ae9f5fc017aa0b13a4a4c5abd138ab71ea0b4129d8652aa808c548aeffbcb142e1339ecdb38e544edb7ce4c95d681a6796e6e53b78fa64b8de042ea95526fe044ea5774003d5ff6d100e1d64fa597e74b6f8d221c536bd9b1b59658ea5aeaed877e174003700f043d99dd7e1a366ed7c3eb823871d91fe6a326a0183da105cfc1eea67669317a6fe7caa0bd3b6403d694de47499836ff086cca79cc5a17f3b03f8b851d4b69263d8697e77e3ff76c89d6b736fc9d895f8797a96d1e3e16884184361230462da149ba7f27aa0ddf52f50e1ee1aa9c6370fa16094a3dcb47732b31039dbdf4bce8b9e93c683994a2fd48301f87d682e46db662f3006af5d3e64e6c6e9410780a3d546b3dfcb97fd7f9bd1ff744ad16ada5ed6f0b43df0f3cb92c8a70667dc745fae47eb6d0a73b09e47ee784d8d4d69b68dad55ff4e4b3624f1ed0be78bbdc737107e6980c4566e999df2aebb8e43c1710abceb0c99c8cb81158ab6bfee0a36b28e627554a6bbe65c7c1478848fec93ec458a4dda6234291630b1d5d63804594a9090b44688aed78132fb989e1edb729c9c88fc387f938a8b0006b73bd2838c71b063fd9e0c1ee38f7762e6bc51d26ed31281b83b98bee958e2e68ae99d971dff5b7e883cf5efafae0cf058d15d413b0cad49947c6f6bf20cca4550b73c4fba53f22a2326e990494f33793eb5470e0b8b800889d2182cefbb190dad8c66f02a4127eeabf328c216d0a35a0c38bb677aec4a81416920e3e1035153ce216d629df57b068e36768f7b335758945803b4357f0b7187dba0473690bd6cce92be850b323b94ab246f18d26d20933f0b7ee710638bb55bb9330653e9ce696fb4c92c675841aa26696b0c377837be0e2a48deb97c6b7e55a9409716babe0cbed2b15b07f6dd75ed7d2085146904a46963838caef399fd6d1e9f7a39c14fff19ebd749f2b6b3df538fe08a54944e52cd70fa771f02c6764e8488afc043289a11be5a35df962f7a2cca4032c51824fd4504dc5b6627a038b65489a91a6fa575942197fdc5ed344f138c6ca7df7532a66d1dad38a4946ddd86b00f03b56041fccb9b49265bf3120d49cfd227d0aed5f66fa26acc235e18b5b58476f1fc918ea9a52cd1d2b0d40e808eed740fe8863e14ab5220697f07ce3b019a438db634cdda366dac6b6a4a58c9db56fd0f1e9bf5a6a9c0b67ce2f8af47b19cf2b8685da19bf0a806297b89fd91d9eafc05e24ce94771073975dd00ec0e4555aa7826faf328bc102945a0d2383688074575f5acf8fbee68a80ed35ff78c8fa2b36d1fd8041f70d88069a1c15387d790006c89ae1575aec17e852ab009dc3001a17abb6c166df846ef84aa7b7f7eaa258206f9a02325f6685cd28b3e469fc9b90767cc08229c45e4f0b1ea4fbd9e67727c599f38f82b2b283e8a6172c64dae708b62ad20fb98eaca8de4ce80526cb242502d20abdbfa3c97367927d6c7985f00acb3a998cafe237d415988365a317b1b9e18a0f06cae20c259b27364c72ae6de1e2c2d9e77e85373c344c61dfb496b706ce33591b42d6074ae6d8ad80c27e95f39501617ed2db84e9823ff9aa03ac3160d8c0e3fa55f739edbb24c9dfe555cc65fea9c42c2b5b81af71295c74b8e56973bd0b767049a901ce9f8822be08d4ae111d4d618e264eb43eae4ec7e1aa4c9a9e41fb91a42dd10493d409b23cbeded2fad6ea1ed1cba507f55d34e07727e7ee35f78a38b57638b55ee223cacfa087d06098316b7bf39a20e16903971b51ef7a47987f701c5e9ec3236da3af8abb3f9406c348a10e7a5d820e88d119592a0c9d00824808c4d7e111557be93908d316a8b19b14fb134db423de81625078f1d3b6993c7d087f3378ecedb42384cfd60f535669a87f32155e82a1ffc2d5aa4c7da6e63ed0679cdc1d49e763b20c789ee4bd87e908350af49f7a7e994e8801355a7588abda4355988f0f3d8c3cad832c66f55dde4eb48792946abbe45ec20107d98e441f01fa7974913d132e450c9162b2ca279499ca788442cc17d601bf6faf04466ef0f5275c5db6a8dac1ac584d13c5ae78f94c211241204a0638eb715a80cec7f6d56c249974e37e725375625e70bca971e67d7d8e30b1169d766f9e7a1d0c7c342727b175aedcd6961255fbcb386a61bfbbae546bca0c3af93a4bcaefd496becda9c2b7b8a6f87161f9f7be372d3c368db0db01a0a555523cf939d8d710141361f01ef4982741660ae5a4fd3012cb9ced217b01692e1c313f1f05723573f9e3e99d74bb5646938c6477869cb7a9d236b6200c1583a1be57aa33b8642f0419efe264aabf316e5bca8b76e9ee928cc86fd3b926ed8ce8802f604891787145ea892a08052cb63092d766cf5d6cc92551c54ee1a3dadee07c0a19c81e6a3b09fef432038efbf57bc8fc2874120575e7d9a13c220acdd67ac0c0114b005dbbe26380f810aa1ea6300b55d6657fc1b2df4ae0a81b38ef5466e70661596d8d13df49f4973f5c6b9f9dc68af56d71d3469d781548f0016a82608d0b10eb7894921dc04237c664eaeb2c3358a7dcc9e4765d3e5e2d84b9bed00f059045ec76625c0b4440bbf51089def34c738c1881c2fec6b3483c4142ff95878b8503f7faf8b93b09142b0566511687c31aeed537121887daedc0c34417e92f2b95bd5f24e323291292b5a664fe6113afac8240d4ba7ffcf0a16bd39966651aabc651d5cc5e8092930b70d29a2a8740d9ecc0d65b7502d1362431ec8ebb5995cc6a4158469bebece5845da5500ed797be190695aded4cb7dfad6390b9af09044d6c4e8ef96167430f39a37d9853a8379c1a877081266e260b3efa3f0a107b90d5cc072835b17e6a70ce774701c7322dcbc85aefa3002ae8c52152c208c550534bfb7572b4c0bdb1ffcc6608c00797a9b24091ce4f8045039f64412300f468ec42a7019a01ccd21f4b70936102aa2177c1c29066142e92984410cedf59f8dda48ceb681d634ef0d80f8779290029be71d8b8b2707fb0b670630423cd966f0b3f08a806532bd0b83330149ac3c4b8ad9c9a95047313cc22c58316024108f2c3ec25ffd29e6b332537c7dbe4069765b7aca5e56de8f391c6f422fc6acad0c1cbb8163d2d76eecf0cb40d854f0344608032cdce892156b40104527f2e527f02d9c3c81e1d158fc3cf419e7f39f7bc419619276592c223b7512a99866533ddf645aa60d5758a44537db1d1a6b8dc51caf1383dd55197c0ded04d074b1c9122e3b3735431825b8cb2299a901305eaaa8e29e2af2980ae1e9768df1f5f067b8bd9013a1443c7114e1de17ee7a9e0a16c76bc74985a85b8ae7033eafdafb492154a9874b2a69337f04061adde3509100ca1996a6425ffec92585bdc671d730fd08257c4a584a1646f15c678eb8d49717033fa5bca9f2d5bedb76339b9686b9a03586ac6241acfe0427fd0fe00fc26afcce9591895c8428bd2d52c7357d1038f7ea87aba39a6bede21bcb546fcdbb99c505518f59bd36abcb9827f32d93c675d3119a1775ed48f2f5dc3727c273f249666b3ef118a76b817246a1ec3d613273e75814632d61f46512f955e1f7f41ec51c033634a1801ebc48cf045ed1994ce3c90b012d41774fe2192b149f325bf9d4f006ad334a606fbec3bdf4a5473820535787fe1941b93bf5f05d828315a31298d0fe86726aceab73dab890cd35e2e92077775b0ac75f85bb74d23f2cf9ec25dc830216c7f822cd7275171ac0253d22220265c4dd49c073eb42d2dcca9acbe827c46b17cba83cdd1a37a49a9dc9bff7227a2dfa0f2aa76351d817a7760c006c8ba3ac7bf5f7487f1f60c609a505d5dc46632bc5f397fb0ae1984b36108d8adbbf9ec272060f80acdc1baf9a206ae542af942026d41607b9c3e923f7cacd310781db774f2c423d0d39083e23269a644942c6a53d94b69cac93065b10a74dfc6f9cce00a01d94391c0a9d3ea4a05b68428003c744481dbc0a5d5009d952ceba707518e761695e494b73606149216e1f3de7861dd70eb18c9102decc33d3a002538904187043ed5835f7892f6cf9fe887181af210220fa05feefac868084689f2e4840dce59c8b3c0091fdb0f18b3909f57a5ead92e7a973e3f9f1b69ecfcad11450dafae8a0b3400e2f12b149ea8696af22051d5e49f7a7738e5c07b5777532fb372d881de8892d6e2ed42857a9d78ab2951031660ebdae94684ab2d5c2e44ef56d2c17a5f48cc0a1815ea6b08c97d6760c057eb22c4438f46192df72751e7ffd98b55a486c65e1be81da8310b207a4545c53c5eb460088f16d253d1b1e8ad5f73bd0defaea3875a5b59f44ee00e3960581c32ec21aa5184853e5f586ed8d052df52271517b7a7b9ba68385ac43b5d9a75785330b7bfbc7ff78be81434aa4c61f7c7b20f6377abc58daa281f57b1638c1f66f7920fe1132d1ac5c6de41722bae771ddcc41b8614ed9d10e25b61d47f07813b9f483931b821bbe85525de87791c18cfa2f2030f2da28039c7054efe07c708e2cb4e910d785e737f572b8cd8fa683a17df1f859187a2b2472939b7e9d7e1959f7c69e627d235c4e753c1e9b7fb98cf7d4332a68ec2b88b5fab3bd14145a6bd14ba398829189d60f0c68cfb2531b4869dc261999ba8f29a634dd1fbba590f8df1c546ee5d0a66e30d1f9fde4bc7277041899ae29e0b0bf82872a3cd2aed1b34919ae5084f167dd9b97865a81c11ab0d5b54c0a104f2ce8fa0b4c5c6129b07d8396fdc0d9185bbd30f21ff7dd8ce23358a49f7e2e7479ab4235306cb55d8cf448b3a68a6dd49c106d764df9a6f8f228ffd86f2efeb122bdbd2af3d4fe136f955aedcbb7c4b3c0a3905ee528ccd5a0c0944dbdce72ec09b5926181d65bb93edd9f52f7c4ac2dbe71fe0bb351e1af7662b3475cb5849998ba997e9dfa85b966198192babb8be8c4e4cefe3d93d57dcedb95cfe04765f70f14e19dce125cc9cbe85d572f4cb0e57404f8c8878fce5a44d048fa6744a938703ff2737d649c7ace89d207e7197125d59ca0fc8f3f7aa3da49b972811fb62164c24385934d49fe60f43cfc75bd97a105bf5692eae828823987a7e33fd7c5eac2c1e35808a107b83e8798d2e16d4916fc5e5d5d3e5cd12869e33d73f09937fa1f34a08c45ae30db44700c4b8cf4b7ed9c74928877ac73bbc6c99bad7b007e900406b3dc082078f2ceb6ec2d34df91916a1e1faa124d1e970665498a82161d3423ae7693a7eebd7e42366b7271fe9ba9c10afaad6c8298aee9dbc90822379cddfd687ed581ba9dca055ceb4e3a5bfc6f9eeae6fe2c2ca060f250bbf41d64aebdb96d4ee2ac834dd7e67283203e2d38d4989ecb6904335e429c763a92f790d75c801c273e52f4ff175ebb186440cac735bfad21ff0321a8ecf8297f4f8cd83f3fbe7e31bbd495d075d2c9fb845b8f87aa1deb4eff875a4399284cb836fc36330f720f65c995cd0d6fe36d50aefc51eedb8b48f4dabccfd50fcbfe2993b38cf6902047a3991996fc89f6d4093e46706c87cbf35a2d25c9af9804290614e4bb110e81b929804f098c402fcc394df3b39b87afaa3efe25d27d813fa3ad1aadf2f57c90f6fa41977db122adc7274988e9f623ddb18ff1f1e20ba2255d4f70dbfbbf92f470fdeb37e510144b051255fdbf7e5915186776451fdf7724aef63a0c2011a72eb333da026c72b1d949df6348461a40f560e9b7e7df007df286566c525a151fb8a236db057c41805cb85fd83f19cc9c6c555253228df93b6c6457be659022779c08da7dccfecb26f9f5ba59b28da53c5559c7007f1dd433ea8acdabd0257cc45cbb16f7a83b2d771279af16f4624929b54b1f468f108b380fca7b0a05369c6770d16187336f97de14a82758276263cd8a480a5aa52ddd6b30d7c9ca35d9d70fb4b5ed33177f1b3b3719595dadf25edb4a001e40a788bb022a8b8024fd04105fdf8fead4e5a422e4816b44a774050da15806cb1976002208fb27a48069e18d475c1a3289b443973fa25fedd3d257143d5594b50884605acf37c070a04337fa3fbe8976f08d0ba490e7688684c821ed8bc0a1f75b690f6fb8a4f8b9dce03b8e5287220e79d91eee5577e4e98670c770250e1d45cda29146f6f30d90a5d35967402c0f057ddbd16686e62c39b2835db73681d7e9a30306642f46788a26eddbe69d903e2cbcd4c28d6782ff7c2596579b193676c557b6a5beab2c1a2f8e3de1fd4e8962d6010a8bded4f90aa622bae33f79eef9fd76476c730c28d8a108f193606469662b239955a0735045ab932acceb370ee315076df298732f1c9ad4011e1a62452b0b54c5fb025c7a6a90c716c63f3c09f09c252ccf005a53451bc72f620b7fe0bb3769de574347752b7573d8a46da105b8cda07b08467f6fe54249bc6e45602d73e64cc1f774955bb4a05adc9175459653c8679faea5e9b709356e4d9d73dabecff28c216ae5f8d38920f7b1c0e8be8b7a19812690d731e5a5e6e32c7aa7ec7a6b3221964b8222d26fb17f36a111de3b5cc3f696ee28be3222f48915ba96e2b42c0b26caf9643b61d94113e2adb1ff047a74a359390ed23a5c6dec89527f18790c29517595e6fec0b5b87cdb84ffb1ad191c7139be5e3179904060c957ea5f804350e86cff4d6930488e911ce7fd77ad0dcd77c423a84201f9ebd364e6c382f7b701a75fde725415b042f72036c2796932673461621b0b60261415efbdb12db3de34c0ae4ba9e5351fefd9d08ccfed8ac5e223fc15c52d9480e62a9bb0c8b8959c7ee1adae6c6204bf7da389f29300ef394284efb2835adee6e7708f77e3a2e955ce1e0ad6bc4f480eacc2ac2d4ffcb9eca72633ebd4c674e6f11e5fa6301ef357c431113687090df2a4c15c2096a6abde899e07883daa782f6c58377106e1f07e87df8f16f2b515e5f294290a822003a20f5679f29657838a4fbbd01052a3c0226e7fe4cd5922ac5efe6a838139e6fe15e8968c29165d4f88f6057110796e61732ffb7737e4d816005798fb404fa225c429f8847a8825e0a25c545001d761b1a0e6ac37bbe81a97a503f2717fd9fc0e03e5b05e8b3ed0bb813ce34a6dc1d79cdb53df683f81b2b875b4b7158aa3dd363b3c71e069f4e6e2189ac684cd0c7453faee5a300454c0144e97cd6e15d0857fa39b3166d31f56761383caa89440a30122f8246c2d478f38e611be611b744fe24a131bbb37195e3a8312413f6896d5641482c08a9a6c1da065dd72c4b20934b34d280def815ee14d12a9fdd79ea9dab643c12796ea93b298fb02ba976ed658cac9422ab53e0e45c0491f3bcd1ba9dff91a84b3c485c1017a5fe28cb0938c42d8b37e10a9e5a0c7a4bba592be0565e6f41f637d0b513a601cd0249a87febfd472a16cc616724424d82005d870e4e5516acc405fa9831f1601a57aca0cdf939b1923c4bea836d65bfd2cb7f57ce1cd1e74ca104245b7ff115d55f1c0c545f71c09a146c6349628186f1af93d938845fabde24e3012eb62bac3709d449c2a2683c83c248ab5a745acf8474766f7e670bc9e2bf131f310cf791d1f50a782286359e9e9a91d13bf08bed894c7fee3c44eee431e5c80a681416d9c9c00290b3f6072a364218b4f06e97c21f227831bec8b480c481e851a0a11f11f140d7184467539d773abc979d04f634696c0269dd97fdabe727dfeffb37aebd0a015a62597bf544489eaa0d489e33ace5ad5b8b32c9e7d55d6a0e276e77d6682aef1ab9617f7fb1c4b26eb734ab0a0d793d217dab70443abf20980d1404773faf370ab76d9d58035edc16005853b9daa89ad8f7b62a75fe5ed0731d9ba32ad70f468fdbf1cec1bacf20c1610642eb844bfa432c86fe4b8505416c4c5a1d371c11211b56fd66f7d8f0f55fcf065134e09f958fdcdea6b5d32ebde3f495621921efeebeb9cfc6f0edf42aef261aa3e59262840831160ec0aef51b4d4589573c33a33175ee3f356943473d886063353fb0c72347b17a8419bd51eebbf1d569ad25bf57444754c318cd252c10c10e53397098f3558ff0565b2b6cfeabd7cef3b089a8208f59ffa9459ba32fc538d21317472d0ed455c4a136896f3611ad12f6c7d1a9be5f6b7aacb5e3ae186443f21b6f946642104ced9f264458d953999ef0b881249b8297fe1156aaffed0e2524c29f153c62c2c4b612256159048e7196ca258a03f01a4c4434c71dfe149bb1242f590a27f83afc988a4d5c97aef44fb59b161cf8d37a83f8e9c48ab5b631093b65e8e09b2e0f95a73ce516ecf6b972e2bf8b7967ae74f679cc0c51da286e966671043761d7975bc58658af9ae37b6949452c2aee5031a070ecdc1e24f43bddff31e5044a12a4054cc42d37466914c6d61a57f52984707110cbce600bd8c747e53016aa707445d266ec8f25df6d71a46dc18c15c8d89d9294a19e2ddbf5e00a9c745f4157ea3802076a33d837c849b0f8dbe83cf6800d641134c04c53439dbe156d4dd932b00ffee8e6550e7d8f8e4c181205332d1f597116b43c55d9d3d3ea5aba9e0fcc32cc58ce3f96986a4f90fbe8b50d18769f7e57725413a278cebd764c349a7379d6c26b2121b424469cc57cdfcdfc3bc5565831db3fe198fcbfc1a5dc08378aa411f80a10c3aff7030b8f77bea314679f10a42ae7e2938214e0a3ebbb3f992e16f04e92b8f85b73c8d72cdab327a2d00e090b48b66f33c55bdd37bbe0e278a92118804e258aa0c7044fd7e1adbc287677167ce9eb023ca28a71783c3ad9957d43878146d175e259ac9835004f1017fec83a61920fc0a230a693cbda277e47c606513878ec1a9ecdd6be590d763e0aeea7a6e7836036ae25c5fa3fcc0b97e0812d335879dc42cd69b1930bcdf6ff2ae734737ae76d580c2a9309e9aede890a9891b7667bf0234be3469290b8d4fa37b3fc1eb9701879b9088b55cf569a5f40bd7cbf7bcb6791b8eb742c1ec0d39cda65c2404ec6a04a794721c640c84081b7fb148ab45e5f67012cd05e961b60fc88327d1ab0cddd782c354b2fadc94c43b449b81abd1bfe471aaf25ec0b15c7e27b505633095f9be852b17667e186e14589d2a5ba32dfcb4e77a2b24de10a43a1024168396d67f7648fff70b6e8acf11b7cc602ac729549af49b27406193bc606621d7abadda14b236e22405aed3f1b3642c1223edf7a6d588a9674b4c77f67f32c7d3bb4be019a99f2943aa2a25d21a7a20809afcca84b295ea19e98127e17bea5cab280a82e5832be730ce2ced74c11715c8a8f725093f571005c70b0ff92441de4da8a21d84d3879cbcd43bc3a53f0f0584672d6ddeed435785920092ee0cc5715229f47a807eaa70f03d42bc8b0fa8881c415068456abe4bbf05bd5aa96edc802f0a155fa6f9d0b509b56c8fbfe6e88a8ffb40437e0ecfa050b251ab8e3775930ff323483dc3e2fe01a6d4f94b4c6668720799299291d54cf5929356eb3a8720d4f561f637d5e92441299da21713f9b61e024088f3573880995382481753f528561854fa4720bf5b422965c737f0e6c8be4499f6325abdd2c6638c9a39dfab990dda4a10acf2af48071cc2ec3923516e06e86240d1d4d28d18fee1f7410dbdb6971ff8b2e6ff8613c4d7bec2cb3c1850e942b777649636d6caec6443827f968dc8f191fd241cb6d4910e2767dd72a5a0d4f21f442c8134681b463f622af4ac31aeddfebe3704573fb0c237420c18f608ecb0049c53969cceb8eac36c02633a952e95e8b90633e41aa6b55be45ab28ec8deb400656b4e9a898d88f3dc9139050d9db631f20722d06b779f397fa58470efe5505b3c3098260df4d1775775dc7fc0c96e093f359d9af40c2303b52ded43e4c0c637a808b18bdf7d72a29b1124f2a3bb04528fbf151a38f2fc9a8fe2c0dfc4af9b1b2d6b529892e524a2dd65fcdc3d98274e7e75eec702fad432c33cdc038a8a096555c54952c1da0fe2c149e79baae58b20cb2dbc0dd54ac15f73a59d37233c5917075525463c85cc569fc80c1677b5230af5fb932cea624712393d0fcbe64671e14217da249b1e1db703d9934c5b1068ceb0de4ed5f65cfcd460c86d4f564ca879a9ec81bbd55edcd14a5a62e7f48bec8ac6df3ab7f5c4e1fd1b489f367f15cdbdc4c05c8fd142747771b5c3255c3fc413ea9a13d1a9d3952d65a253af594a6f44a73686b6a0a8a5b844c99aa5d9bc3a85995836a78bb2d7d38619262eefa55dd6a05232fda481a9b20c580bde29960f0aad52f57e6df4c13c8874a318e9a8838ca1937bea5b25b481897d77d95d1e13ae4f24a97dcb8a89e301e248def06a497a1abb4dcc0c64d5374f4d57891420a67be8396ce71c9711551f2b7ad2b231c939ab06ef0cb381b392f9b8f96157530fc0f21eac96aee26d79a642c1c0d6c8ac94176c0278d4b013c1c43fde9b7c7de97e2f5aa12d1af20d1cae9afba0c2482c53dc3584bc7487dcd91b5e2ce5e2949afc1435b5ed707931ebbb07a781a961fedde05ba9e4adec6e6d8d703838cbba75b8ec413ae5ef6c8729139781c1076be104f22cbf0e754bf6b31d3f331e82b3afbe73bb272d5d8056c58286b9ff4de283e212407bf20a37807306b8ab53731ecbdc8a374dc8dfd4cd0a5c84a83f44137c4524930c6acaaeaef7214473a41b992b0edd4abf1d8485a949ce7e64dce60ea97543700b790833dab6d7bc786b8ba80ca1adde083fc59e0b471f31db434a919322636cdfb3c76c2e763048ee60f5eb7bd5682563eea4f4e35b5e23a7ac2946dfb87cec2564da99bb30e363c769c499e970b6502165e010446ba033fd599cc3b4067f1a9975be67b4e35b0e506b65f70308b1498652824042e69a1eb55a2462b2f8611a1e20e40aff7c2cd2e02108a8cb723c86d6ec2b11eb7f5fba05c415cfb5d1b5580f13dcad0423954545ab9adda9cb5e8abf7515d1c748ada9e1acfe851c6060b939d26a27c384a0b38b3aa2dae489b5c22f0ef71dca721a78fd36dc5036a39c7496fc492478931b1b1e107b9f2a6a7865901c5a6317327b897560d8539a9a7c4d8e1e5456278dbbb2ee441b078e9556a39682b3da2ebd494bb41ea8dffacab8c198d843b96bef9033c6a47fc97e58e7b7f7ea793864ac4dfb644e843d021f8682e743ff7886f2e8713f0032c03d69983ac875591a0552957a00ef3536490201c34316055473acd6060efbef144e8ec27fb3cfb156ba611865c2121b5eec6ac32acfca27674b87ff1e2c10ff754adf12817c619a64f24d229a3c08c258f90232a3f70b4b3df1bd9579b9e26f29ca68b58a225867eb147dd8d5fd8f8991f16bc268a7e9a18dfba4b324a286926c413018cca51ce965881338c7be1799a114fba4e3bb909cba6799bae9d500109abb511966561edc1862e45c65aad54e85bba3793016ae7c5094db4f6f61faf7bd6901036416a07211dfa97d067674f7889650e7e659ccb2b6f1f4af756f9c783b8b49529c71d5b7173b7a059c0f1c08cc23cfe301f37c9de4971dc4af52108187925f41f2c57f2a365b18827fb5d5130d5829f52471f06838521a0099636f27451e6651ffc2c781b15725cf7ac12da1587a0d2b04b74d7d4ea9ee74a89f26358030eb5b37660d93035c137312265b427c16dc4669a19f06889e55a88f2390133bc481d87a129bedf8337a42ab8206d71480b9026206a8733152d5de6e6755a6603992b47589a684bc7c539c5994c578c105b8d03c633594849e080b5ddf9fb619311c9caaf06c0f295f642e87606a8b38823bc660600d6299ab5b4ade8540f2ba63830f1909af284d407dc6eb028739e6510f410bcc4b51dea557ec7b96fac47a2f7ef716fe80b78e95383375a788ab4f0e7a6218d427779d836f01b2fe6a8e8d7eece5fd7555e98fb634923e376301a562fa742aacf1f0170b6b253dbbbaa463bff596ef7dfab99b998ad258697f4d70f9e2503d437cb742b682e1f3b16bb724b787bec5f563a63a9f80e6a4ad2b8aef4c5e06abd390e323fad79cc6bb62f6d3f1f34734c805bf4837807ebd2e1799fab01416a38ee9b70398994e5686a5bd84259af3923d602938c1ce2fec63329b9188fe07a7d902b7e1b74042a510bced0147120f3ae0a72daae8324ecbf31b18388be02e88a9564e983308a67f9855eb0a8de2373a6608842875f2c79aa09903d25919382ba9b23cf32b863b7c7cc62b73515c542bfdf664e9bf22d86c06eec85dd6d055640eed4a2c9e022bf59ae93f90d663e3a7af9818c649d5be8bbaab84fcaf024f73e22e7594c15ffe72cd976c37209cfc1154e22476dbb20e9708c03a76332bf489d10d8e6f6404c8ad27bbb2019b7107e282f53de345854baed1990dae23d32590fa65bb8d44a976a61e8fc4670f762e888f353cac2226faf4af91ad8d90e41dbcbbe55897a0be7928153266a3fb2ebd263ac7a89ff2c8b807f73147f601f6f77da65c88261c2bc5375c9420affce1e318323d3d66f2ebe7521b92b9833bbedacc8ebc3f3baf58f66bbd840e1ab4d9c8e96f44077a2850d54a5c876b12cad584628a21d5f9bfa89e2233e5298d37354a5feef42a084974bdbd362dd2566bd2f9b2f19817ca56d66290ea295433661cfc9aff57a50e3bfc00874a5de9fcdb7b6d384e6e47ff129dddbeef72d77aa7ac37fa111350e675f1e914992c201e023f500e603f86db7677ca1cda4b47346fef37814fc29a5855752b653739d3cb41f8eb998d1da985b354a1328492b89ef44d3eeca58df9ed438aeab5bd65a74e80941f7e251c292758ca3c3ee52a281333476aaed4e75207468bc5caf015567c999a40c299c092e405563c12b8dd22b0b6e4dca0b713228d37625783036bc917a9baa9a4a7be1dd3ee9640f7e7c24b5516c617c6f9fb1893dc02ddab94042f6d31fd42b1690229600b5310a9ada04a58c70049548e10130f5c70bd402c51afd8977e81be4cb6ca76906e7383e89df0549fd80199e6f158145e513411424044a82fbb9acc8ee3db016c541b0143a93c5ca4a75add7d8d8387ca1f71de07829842c9be817795f58e782da1b9f0ad2bd8bde0c0f6bd9e7dbdc75142cf6fac03c40e86f84ce094dfd44597697ecd8c1f73bb38c92cc077952eb914d0e2f970ce33974fa5e1278a22bcce2cc7beb02550097d8e671ebd47ed7747daa1cb876d39fdacd7bfbe0df8a69860fc5a814e380ebdc7ae0f7777e41362a54ed97332c6c7f2fdda132d643871cd70335c6c1dfb7e234d15e3ab88ccfa6b324bfe5beb61de1594266c91031ffe6bcc33619b31c0dc166a9277fb45b40d4bca8ef8397d95daa62be33ad55a48ffe160009db00954a6516d7f77275ba04fc2ef018e487987d2d8e9dc254822e9c421576adfe98aaa900b8085f4a10f1965cb7c16ef85c3f6b35d7b44c423c1f510062f0240e2ad8adc1a0e82e69feeb6ad5923f1fa5cae13a9c0ba2be7d45a0015aa9751616cded1abe47b0e345cd1d05b869a2bb8120ae3ec01a947411faf4349ccc2dfe015a627637c24bf8c453d221c20341a9e729fd8b5ef2e654b55bf4b6f3e98412928149568269d614bed355a05753673b7294bdeb983215490beeeecd034feb42429ddd3da483fa6f042c01bf727be0b19d62ccaf74d94c08ca77013546418989bc2b1de08b653506fb9d48920b2476b9888811da4736317b065d9434ab013c3f02220cc481a2dbbf7785e289c2c9080c6e701bf664ef6e94aef4e8b8fb97af6fda68faeb7ac2537a41a5388cb922d0053f94de7241e4e9c1a3f7a6adcffd12e7cf187f8558587e8a88e763052c705aa6ad66a0629d920d35edad45c4f896ef0bf71478203bd942437177aa88bc653e80b1136fd9445d80cf3d6f4693da86d3f37599769b5d677a683a32a192eeb03e19c48b515f271a6241b28c527f56e93ea04592da245e846730331ab398ce00b50924eff5f0c37a12f9c09899193fd70fa166d8dbccc3845346d1c6abb5767b42ce8cc7a088f7cd36b8e299081649373797794e6d3005b1c06cdd63c5ffd5bbddd0f97deca55955514e0dfb99f4aecbdfd77f1630c0b4dc7f9ccde5a980a515902e2291a6b401abcfe73edee1acef175a750818ec986a023b6f2b008d97ec05d9a761a6ae44023f4a29102fcbafb04ade59de8c0398d199c39aa94e9d25eb16f363038b354a5f4de2623dbb31c66fe090329eb8096efd4b989e07ee9eeec0b1a6dd3f123363e0c2842a66f07549b36da6f30ec3757d91328023f231b1401f42be4ebebc4c7637933edc8a219de72614abc8dba72ef9941316452a6d789080b54975c1fa26765cbf4e26deee163d036243e53ebc40a2711ad2d6313987bd7f108edd8511e47854cc8a5e0c995f044d0901a0c18c92843c2e12b0c2757bcd1ee5c1dfb44ac2be425e8fcce71beab7dd86c3b53f1a4ddb65e6f1b3ebafc90f271c839825be5f4fff2f4717f11436eaecf3ee1a1b25edc6e6804487fb20ff6ecb92d326f2dd6c583909b324aa2b7987b7b3d77556f472d4df9466f114eecd7c1b7a52a56fc9b2134190d43badab98a53c2a0f82316773b9bb8287e069ad1b05b845659f701426e9064d8b10c9edac0e2861d25117c0393afee47d06322aa6259f84f491ded2bb9f61730298253ac64208431f7ce1dd11aa7146e468540dad34faddeb9052bdcb9edb916b54189f5c7f52e1a857e2a1b9ac1035046f01b2af1b56848b71d69ba8743518559c3a90274754d28cea4b463080a868fb3ec778d09f88687ed7009e7426cecb688cdf6c3558886ba64723b64d9f3718ff07da89168932175b356a20a95e950de5353af9662ae8ded681892f240e68bc78dc1ee8615be09566eada217ace3f414918ff631e7e39c47a8be30ccd5c1f894a6f0210c6008a3eaac8f4007f3a22b5ee779a579ddfe52ec4c1685ad54436cbc0f96d1f5097c8030dbd61fc5c6c60099c217a74be83cb2a2b83f70fc9f38a189b98e16a155d3ca5c94c18e47f23f682d85a2524573b68f62c02ecab65acb6458aa6d32faa14616a632515a7b8f1095a9e836a783844026b475c06bdce9c3ad95e9838258e96e6e5858f3a71dfa27977108c1cce21ca7077a07d4058f9a1e61ded53789305d171eb36a7a2df369deec14fa36f5d4407898e824280348c485722e7d488e7456ca4892de15019d9f244b0da33577e2596c3d53191c7a76c02941bb3c17236b191b9611d3a54a293f3dd71bed0bd16270315db29329e7d62806736850a808b9f46073527d53b5c10bfb2618403ca6bf1944d1b9e9a9eecda3616e064edb8933de0294ec07de1ede726ae219957bef2d074985bd35851b78a1f6aedf440fdae3318a9166d74dca4c5a1db8732db4958ca6fa9e2aae9736c61ce5c576d4a0135139b0d4878a29972bba9e711411aff73ab4822a5308c567ef19256d8438c933795d877538a3de1d79141823490de1b81805afd93cbc9faad0fec975326e5f839c05da437baaa10ee1f81d9b2fa4c1000392ef2ad70b9d653952b5923f9b56c9761c5051a6f26a53757f93a5c503c426312de186a4f8047c2a9faf2fb53284e1008012867cef03316658de061fd739ddd2c031113130631668ab2dc86541baedc9537047317c004eed7902288d03e9835ff5a07ecb2b2bfaaf0511c5c3cdaa34e0df6a57d9fbdb6f82bc1a4df2b003dd7ea0a86a32b534d805ddf9a19545b05d3f0b3b2bed48c85ea89b6dffcbf85fcfd7cf15e6459acb09b6a5355f3d092acc214a6c6f9d2f5b41f70c1ab57b17d899b6e7200a5c389ae556db845c6c59e287af3111d385df3be10341c77a8c70944431e98566b149ff40f8c7f65f88cfd4ab35e45b919d2f8abef6849b1555ba0e1004362d7856417be6ccbcbf786bec07081077ec9e066e744773de1090c9e747a49d4656e5ed3ced8dc4062838d8202eb2d92d0dae7c60de02a24cb7d8feae31417843e4444bc8d0a96999aad07db3a175c489fd5f3fc4eacf34a2e47ed60bb79cac1110d4a33a648c07b1f53f0ed4855c2c1a2e835d14105c70f6053e2e0ba4ec483a7abd3492481a1aeca08d6ef428e95fabbb1fafcab231463477a76010df6d82d5e80c1ada479dfe4c4c7d11da39bf63de0620c82730b9dd62344182289513b6eab488d972b44fc7d283267a9cbe171438f2991da6f04a92b5ca4133d9cda6ed6248be549cc9f727ed54136725379328c0bef2c5eb915b4c7a745da59887f35bfeedafb24f681d02f5bbf7988f22caea1481cd18040b4a206e1eeb40fdff057915aec22f745c43ca105b5330623561b1739c12ee10556c42a112f9bd295b6fb8ab4cb00a6c8c80d96dc8b9b2be53f0768c4f3f1e8d58825a93b5e933cddad20b39b75e393089ddc4e989b554a81e3b28e4d8defe9d40af9114ab545092009a9fa4c198b236b9e65f29ec04c3b0e84ad65c63be9f2456046a8fc46b0f10f17125799f61e554e9fae0e77105df001c7423cbf485d9e8548d45c1425b0c39a359f24080401f67ffa82f7d6c2ccad31f7ae5e49bf7f48cc0c0d14c0979e9db40cd203007e3d01266789a4898e08e2d3fe22da0601ae19c131d8e9375673c7c6b44516baf0aeffdd78efedd2a602ddac18a0c330f03d3051e9f636fe31417433a2632f86cbe5ac7b6c7a31238d0a90434b187d8c92ab4e14d405f315fa8a51877f52bde677f2351f032d066a1fa0798d5ae69e1ebf9f5b08e5f636dff1a3b4d40cf00b68d454a8b22185210df6b39abc7945f0a4c410310750cdaa1c3d8643947d14c6965027f10c3957fadd2ee39bf7b39d7c20b205044342f2632a627df4e16438d6654cbc00dec957c643b5a15e0c2af3552adf4b1525b5be412555295254892f1897f5ca569b05428f7f3b7469334332af65fcbf912e3bdac642af2c057b4c4a7fde2570e06cd6258fd673829b3796982d422c2f0c9a63a31b8a423fe88266d3083ccb6e1ca35f86fec9cd54d40c6d5f5d2d443f6945f5903fbff410326d2ad83f500325d7e4484374f36ff81b06acd30421c411e8701021654405331c8fafa79e0d01927443a9ee30f1a3704fbbb663589f750f984b99e2b8f47c64c017c6013c4af4372b322b8dccac7aa05e3048cd4d3c97b22ec6be98adba39349793919fd1cf8c4266cee90fd65dee9afbeb7e270fe7481bb4c8bd5eae50204632f06a72a109b145736c3af1c814ed4d626cebf96efbb09038afaa69e4295e9f26375a3adeb3a5603a23fec17cf7485c736c5c6beab00f1c14bcaf37053a7a4252973094033b78e18d40615dbc6f42f922ae5260bdbf7baa48b973faacbbcec1314ed0c980889f400e880026852c26dac496adf55e5f705efdec8873e7d72df3ca18982dca3f7f97735407d5cb182b562c1be0e207a051c9d08d77dacc1154c26a5bee6ac1e552c33538c65c7bbf41d927b718557bfa2ff6488566ed4853f4492e23810723cbdd06217cb788ea5678dd6e9fa3b9093bc16e675035d41e1bc477bfedb0671535c3093a545de5353636c2d3c83e706edb2256ef4b9a67d7d960bb57050d8a2bafeb42abb530e05fd8349a52688519397fa23f1da40d91bd8a5359fbb6a02e51592034a50810e1cf1f9c937085f9d37cb782c86324e5a92e7874d251499c3f545775207fe365bf86d1ef1439b1d9c3122bfead185f65986913fa948f2472cd93bbb3cea9b3776971e1239a83feaca187b7d1655019922d9ae35ac5404740ce440557b9b71c9cb8b72d0d597b9d1295b4095e33e79ea961eb2de80c61496a1bc549cd3e59a721b62d5c6295f057dbebdd0e00b75e2da56c58f3a04a2360fc169c74141711a70e349071253523fad71266d2a3969e8d369804ea88fd138541c7c21524fb25e16224ad730ebabf143ed77a080022f35d104a1349bf19c2e616e7e15d0886c334d7c69e1197923684dff6db92e0dbf203126161ad178db2333d5025dad64b9b9a151c739e19b47271ff089a73975e255447d34ae6341e7d3cfad4d1d8f779998347d2ba5e0a406b083466f1211ae0a90dd52adc83489ba44f600e7e18815079edc40158256de5dfa157fcbb7939bd18be8e282d2d12ae20d36b9d0f168660ec74359be594aaab29ba53215f986834b54a37e4cc2cc073710ddcf00fa3f86f9d9b0c459756fe977803ec1aa88b21f41caf7fe7e89540d806afe3177bdf49f88e62785a48b41492b204944973000a390db7c462b7f8aeec6ca4b0de8c11e8928aa99d4e026a25c02301b80ef850942649119986770d2581e10a2219bca94b354ee400acda8ad7f45ac999e33236ca40a46dd43e69af9b930bb91cc0055dc64db66095044850f6060cee53a5cbb3cbeb9edeb6b8cd50bc17efed14861f2507941880b3c42212daf6c5ea781f21de698cad1d65b6bb56b8f15bada9f431129e0d365e1a5f5054c3d288b979ab948942a1bd68f97c231467354cd0d337f391f877709463afa8f80f4e0f969a4e8a400ccda6895aceb648f57fd1f1290b34170d8cf676347a76e7a591c7d5eb3f5a09feca4a629402aea5b14adbeb7802982cb7c51aada44c2836ba563cffa30559c7812e790df072b376927dcdf68a3ee2d92a4397e5fbb21b37e2856d03ffd84ec405f8584e90dfb78cdc1fd8fcd0b92d979942dc6ca5b4cd1522f3f4aa12b2411f71106a6f5e1d4dfe20efb3c358380ce2192d394a6f1fe615b63c60fdc3ee0d7786cec012f64b8a8adcde14ebbf0888af3be1828e0b8aba2026f1bce1d9cd8f34ea6eee358f27a72c2065964de3b0e1e7ad9c262fafadaa46e0d644997c25687a439288fe090467f6d0e5e6ed45e6c389c5240c800efa0d2dc82434f959979619b7f37f4458cc8bd88b0d73d971d5dc1ecd4ea1c4ec4c5b68fb8e627276b80ecc80c0c7052ddd9afb4010eeda3d74703ed9cd5a27abc9af33fa58c052c07d50392fe4531ef06f8171c642da6de4a1488ad947ef65f2b62ec9b5c28a7a8bf7f443b519e05b8b252a510e604e93258d3cc86e42fc8bc490f00f6e4a019da95ba13dc867ae9f0b432fea67910578867b21b04ab11898f87d49bbd8594a822ea2889893196228089dc8091a9ecfe188af40794879d5a9d2328392adbdfdc9bd99425098bd3a81b715b5bfb4138ec9c6094752eb6971fc68e5efe121d44cc4ed5d1b29e27ddfbbbef33ab07cba88fbe6bffa767d41fbf4a5d6bc158355a74d5dd73f50d2055eb4a07cd174620dd318acdaf26c3f2c7f77f00bc3263e06cc6cb2cf19c3d7922f27100199610ef8a60aaf9143eacbbe6b573da0dca1df8d983339501395e8d878970a7d582d5b2901bfd5c2186179dcff0b7326d30c1da2b0e9826b083eebd2ef3507066602d69e320d428d492fd92c3791bb994adcfd813b76ad9d1f3a3351f43459bfebbceaeb538d4d3dcd903333e7a8765855675cf7dce95131c4bca8b3caf28292abc8dd774af71fee677fa55128dff52e34c33b7eb71880b76f9b538defd7a19c1855fde8e27e3d6a730fc0c55c1f03ffe3bf4ad93fcde0d01a827cede07144dc5c8ee27992158a79422ebefa6d4bf6339e3ae9ffb165676b05ca992c9a193a36376ec5c606e4ee94ab1414098d411fba31b4d6071aefa4d65dfac1ea397a7d39f7dd86017a831124da1240193ba6d8973a20567ce7e6a8afbb30732ac337410e20b09e1765e0ee4d063c679844ffb7d07fa526c5d53ad00ab606086f28d4fc138ac5978b685ab0f442abe971d7b4fa42e07ac68e05ec5450f1ed289c88019f4706c5ed5fb4dab696af3df52f0e6edd752aae02b14c6dbbfac3a5a55545fcd0efa5eb8a7d9ce7e921100127a408e8d18e96e578d92bb5445c8a92e0fc6daea7799e4d7859b34e4a67b686a4961825669cec772458a225fb18c5972ca21e1c91e675c2ed5206b2a61ad5dd8722af233620d22181998881b4d8b3d850758130c5e653adcf380ebee3a3dc9c0c602ab2eb3d6ef66a3d0758b88be899c585a84b65b8db2546a28bfd5e989d463558c30e2a34990a188a0a10aa6afe12f60653b720c324a3e2a8aec59ac86e8c6b4d6b142bdc0413b8cf6a1fc418e238e7200274bdb2f5f1daf930f06a69f3208f5441c004bdd33b0e64a8902afd560e80499be181e217dfe2f52122db15ae86decf9957f74e58ec017de033af754078f3d60fb5d2b3132212a102c2f2666ad11ba0224059d9edbc574a47d52e156e7aa793f4d15d1b18d862fcf08dc2f842995ff23ec32c4670315943e6a6ff102d644157908f8a842bc46c34805ca42c70ef3e5cdfb6a6ce6d8999b112974fd4c7c44cd44545c8681b12ac39da17f42e26c0df2e21da04cdf62189f1c1104cf9fe3dfb48b2594d791809f2f5d7e4c338ae9973d41459ace7d72437e181ea85d9cc9566a8e1333a08e4f0d6ed2756d4788058e89a0558fbc403ad9a09619bcbd0223a702310ba6fdf3e68900f99e3218d8bf523b40906b9ca995e45249e34fcf5e8721c9a642e592d2e3af51e04c01a256f7151cd34a5fa197e04eb0d4a504ad15500076d49f3fec55b9b64078278363e69d20eb5999dcc9b42a5b88b81c8329edcbb5b13abbde60b9e6c8766d27e36374e6f932e0b60ba63e8a096015607e4a25bef2f6e3deb435dc2dd44c8d6842a8712840788a2701adbac872587d0a7c8780b5b4c9dad6a07cbdcf6207e461b03e25d6a482452d3434b2ae2135c65c7fd3b29988ad028af74f164a4909cada2d1acff12d5ad4b4109879f69fcdf1c65faae5a369dc05caa76459c4ba4fa5b539cb382fb3a60db7e6161560b3cf5c14e32098cf42bdf3264d88d82321dac5f3c397bd1f100714c9773a6d14c660f0c1547bd1d9a07c1eea93807ccae930863a710b2a915e5891be53cc40d45f2a8358fa8a40821c19a98cc21f69115a56ad41ca22b24b8c8f8216635ce02d1eb08c387029a787d320f136fbd618c8d6e2018ad83889ad1ca0937048f291bedd7fc21cac6ef3c618b187ae2b4db5cb6493fef1d37f810544159f2a0ffbace679e8770786be0f6fc135b08cdb2e9abe8b6634d3ab93b815e8f4b3c787de4c3580de0cc467b2b6a8787dd464e2705e6c5778d3facbd64f8700d2442af588973fd97c12bc548b29c5c7f976a35010c1d2eacd1eb7a8b7950cfb30ca97a502d0c19c000cf44422bf7b311a321f7835167a796fe734255f62dd10d63ed46b19966cb15885b5b02ef4bd14657c22a91a7a04137c1024159432cdbb1a0214c64f9b67a219655acd2cce8cc3121340b8a25f5d8d89a88253efb98c2a0c3e222828296673d1351f662d611edaf5cebab921e911cb2efd792165b7c4b2739e60aa1d8b884916b21e662798ae04b056ab20f1360ae2ae39cabfab2979487b4442ea1a35221a64d5c5939d0aaa3289942f5e1aeee9fc2df406df84ccf5529c7fc34f7e472661f8a988975b00c29a0a58905ba9e98950fd63d399701bf43aba54106759a319196c9de4ba707c89d2cefafd62bc66bc645953770ceab25b752cf98fa423bc31b29fc8d171040b3f0edd94988809c4272d3251b25f1c63811dd5a55443a2d8bc3c468f0b937278186d3690fe58e8ab48040c47a64838c280a877541cca7dcf5bb6da86c4c8b1a2b58f45fe793872c8b79e8de72234a4868b0b799fc7074d648afc174590d090fdd84a59253b0481682d2f036aba37e7d58dc4694f40860f64750bfaaa19771d52317065f63fe4e440e6f5c448d1233c7ba1cf4e5ea6b89889dfcb45df42d4ae2965b74c59b3d443c1c2ae3e0411968f5f14285ed668d7dfa3aeb48533f00dd5ff9cf0cfe4d3cb400f44dfa5190bee593d8fe5b2612eac0f9533e5f7e13ac7bc182e8a82ffcd5993555bad694b728837ac2028659069d35e90d457e59741788e7bb4db24868bec9a9506d9a145fa14c3589bb6ea2e70d58e1abf700657f007caeaf962dc00b84b20b7c59705f0872304b555ac0d225e33347426332d1f6284b508954ee285c342f474175fba343d876a2d52dfdf9733fc7d2d2a3cf4fda1aea5be6caa96dc8c12c2328495acb5f3826ec649daec79c8a3b09938f0a098d143cfcb6545fd35db712fa14dfdd8c93e14a0380a8c721ce47c204adea871d1a7391e79bf2d0ed4b74d7abba920e6131d4841c19031b00c92c16987c7dcfa74f6dd7fc5f51c58afa746229271d49c84fb9ed864f392add4d9ead046a2b0f8a8062cc0eb74d4b235f9c292c97f7e55858a2d524969c2b9108041e5a3d25853f6744a453b8901a0240c7f73cf0abffb1f56cdbc2dc09ff492ce49bcdfe85d81c7ab0c430135e620c4c87e8474d7d62f978a697cbb145d1a5784741c3b5864221e66834866b3f8121ea6f7c36114215d6b382bcfeb78fb6c9a1981a3561b58531ec38fe0781c93c880074b853ffbfdd7371a485ed95f985f0db8368b62a23d9e9daafe9032f12ba2729f39c0be0530ad40420ffb54b1cc2babfc8f743543386f1fe21e99673e176f91f15a5247b8b97b5b40442a663dd6f35f824ae942f93beaded1daa93500d1025bdf6a615cc782c6297c7e9f837d1abaa19bc2728af4901fac3b5c466b56c4953965fe324ad79c0cdffe2677e1ccd934a9f6ada7ff7e366dd5332dc47ce3d2b63a144b1b7567c766ecedc723912ae82fd24509359efc61e15925403b2ed8494ca6b5797c5cf60fe63733f66d662cb1b9ae41bc96d6f049d2ad6d9df8969eee572b27f4cdbf4f4fdaf772be531125ae835f117986b4a0863da294452aba50e01d9b72bf591f79898352542f5d406f8b0db202d2a96a6a3c43d65b4a41fab64f5e701ad2640155642b95c5b29190b56c7745d8ef59ffe9a73407ee5c79b320a9bbed63f7b01d07e0bbfcb2ce6de875b11362e203692fa063bfebacec129250c54c77b20502854d45b5d6270192be6a9ecc6f6db3393534ce2cf602135453e81dff3485d7b49c070cf122c3f0e4195813e7b73ab09acb9d1f70980456bba14425ec00ffc7e4c32189875c4b4579686dee6b755be5916a49c2fb3a2492ee3e7a28fc79253c1406008324dd92bf94021b1d5679ded8b509c6cffb4d4d9b448de3c6d3a41c2cb9bd626d32742f46f7bedc346eb126ce3bed69712fc2605d63b6c3d8cfbf2b96f6b7af5fccd9093048e6365b7f605bcee4a2ea07bd443bc0f3643871af33eca3e708dec762438a3a046847f8d31172132c7b9001760efeeedb47eb588ca95898c5aba50c9852bf63d0826390bd3bc1cd11e1c50b93f29e811743a1a334eb0a374a7d3616f2ab73033b3116277c5eeeb20b5fc150362a05ad38fe073de9edf6bb9f19f724f14b2b5ede6d703dd3ea621c7f6eaa8df31ae0485e3921a95a041aca1a356d87e5fe05de6498bd33460a00077b95e151335f24286a2c5e5177761004b76a59496e124331b8668f9b11f13a69f1a39553ed4d582d59a011d9047bab16f5418dd3d5bf01f57729dd75d442a551844fd75fab84ed0542ea69b0565856f4e6d14d7f6b22e3d479140a9d5ee66d3962d6f307fd69c1199383e3ac2da6806ab9e804f3d2d94912656d7566f88779e4e6e7cdb84362f99631b22f702b8cb626a2e14135c0d723f95d30f1278fb77e7cd0ae13095e650fdefc9047f6b2b327eba66cfc937bee3d02a8f7938cbdc489a741636c2c7daeb3a46a56a974a974b7ea2f116768a39beac2ef7f25c8516962a6100957cfb226714f6cb5f0c8181deec8dcec0e7f78905fb3a19929474250455b8e81385af1045b4e28ace7e8bee6c87930008c58ad82ff3e9acfdff588b4ec60eb15ebe1db44446335bf52486841279434058ccdc6ef3dbf004e306ee837fbad8acc4ac3a2a5474081b96a1096cfc2078e69064a1f55390bf02149348db4fa1220477c97d4f69586279a23bcf0e35940d21a64555c560aea4ba5dd683ce4de01e910d94e78b2d02d6134d6442fccad923451b45936d1c8411d248bfbbb8c0220e31abed2e59209cd85758e5144e282016f12f0b7a6e19a81f8337526cd3aea22df1794ae5f9b95276b767175332471cc0206451cfc452a63c3952576e55f2d7936c3c80ad7733185774f2466024865a42d28103eed6befe9ae0e03067c81f59e624bd74ea52a47b53732519160da8445c6e8f55f49db8b5ff65ab81d6d9582f689a08b892de09fccf682efd93173eebd961e17e4ef1a0a7dae967332f11da3902147088c4991b1aea0105668452916e1bf0fdd2c5032cbea6e3b0e75f904fbe3b25fe898813c70e35e57b86e712822fd83ca204f9ab262b512d2f153efb106c26c9bf7f4cb1392c47d94fbc39f53d389798598cb41bf8961a34426d32292346192adcc7d3ae0fde6574dce228fb5a1a76556ccab77e00424d08eac6db96c28e2fff2cd58d39dbfc4b3bcc35cd9fb5fd58ad684e2f67fbeecce17b7ec0dcb6e41e792284a09df3436a7daa3c97005d58fd8d3a69ba2c45fcef0074b82e3831374052f48e9cb1c210d2f477b2d842b856b9ca87c7b09bad1649fff7513d362c3bf41d4e98cd0d1cd97626cc33abcc25eafe584048184fe77ccf524fa347456cb730db6af35d6108110e157b3ea5430bc7ba028a8cfc44e53ba28d8e0508f88bab36e82c582d1630b22f45c9cebf00fa366801477c31d76aa2ae53a3af93919af95b6b96160b034d43b27b875ce4c7afa93bf2e0182f9e6c5a7a7a9c535340f91ca9fa896f42af1768236a2c379683f026f3ce5b67f43fb392e94dace38d260913fb32bbec0e76d64f3383ef0229c159b8c9ff7bdd50e390e824596b5d745eff41bc861a05b3c83acb45f6d571c9a062d12cdb22f37ebe59e4500ceca94c240e0bc8922526ff2ac35d5ef9d2b3bff76dee24dfa5d97ea91af58fcd87621c2417919ae8bbe3a1d9d4fbabc41a35583f893f4961c6740d3dbe5b1f0b1d442523f0acc6482d2fb407faf0a0cec850887fdea7f4e365c9c98078d5464bc211b109b52a457e559656941f60aebddc906932b0b06518693c8be2751cbf0d9059c805901c0cc4268f9f3c5ef344d2a42d84fce0d1acd94bbe73a66a2246325db71d8484e3b70d80d62a32f11d3b7f5d00a344e72ed53b86b5f44981cc8e619ae438d3dbcef7eb023aacbcb2bd806458d55b99a7802c15f2ea3088d32c4dc1302764dbe16922adac93426d6b3fab19b2b80f017ad4173045a774fb60748fb5dabc3d81040ac0c936a075d29e37c100cfae3efe872569c4b5217da4333a7782d98682aeb28ff6aa2b543e21054dd04f2ea5b6249979c7b488185d413ed75b6feca74a3a2c1602583031ef05894e58f9716dbd916532a1d4b67a199495e9515965bec2183b51b502cd960194dcffd9d6b2af82cccfce2ff3b426988ef792d89bf58db87761dcf7675751babc2633c04eddce720c514dd72136dfe1eb31aea08c13f55fbca43466569075f879ec49e2b329125e15c73435e406dde8c61edcb9bf9efff1567b2f26df6b2be2ff1d9f0e040c2cd0607d806e5b8a1902e2d874727364432c5c2ad27b0e272a1ca10c88ee36ba41a065e7ef77de1c39cde0d96c9c0774f51e46c12fc56b255b32c63e812317d2270a1b2b9617ffeeb3b7e05e78b4737fc0b9a07b611c0b462059649148581d92a560993c92705ca3e5e10220b927df6e50e0adb3cd2a4420933799c47a4e60b441beeb0baaf5ff9b11b1e53fc9731ce135af78ca02dd49c703b8701b037534abcde57dc8e6c32f7f0ff61c42994bb3e45fb500759d93d962141466228439709dae40f20f7ba27c8472b27bb54c44fae1f50853e21db8448e37c2476802d95628516f541ab250e8ccf2ec46cea7bd7d78a1802ad223b144566f419dd81dde4f64a322503b50401e3400536267713bec3234b91e00c67eeb3b33093d2af7da64748c84ff666c9af3269d64cffb6054301dd233307c80668ea4ad7850fdd354f8bc81828a94c47c07a1800974da2aaeafdd6c1ebf4a5dd0c3632c65aa52362526a489fc8d927d13f2608083a920f987200929503939be5173b2f7bfdac1ee2ada1822ceae451b038e4a6a6c79577631dd59040fcca6665b7a20576cabe365d5644b7a5375301756a5c240926b57d05afbcacbe579852b548bd7379b8762ef2b13d9d496de2931f3f6363b35207fb87f0b3c051f772a3ba8359786a005e080722fef1c178874c7bdf2276eb2be22878202c1dc88ea21938cd3298ecafe90807bc24c12c313357a635339d73666c468f6c9d3ac5290bc4737c5bd42c9df5f7e49d5ac918d283f8c1ec134e75f1e567e5d9703a9191fadac7c8039507a0f7da93c6dfbe013237b0322c108ead94f819b8b70c3e1357f9f449dc6e9b0aaf6feda89cdfd5df617ead70eb522b3bc88094fb3175ba40c85b04a1a5240cebedb770336a48ae63139c01feede44c39d9a94f88d9218673fe9e487e1ba58bb16beb31214bc14e2109efca1eb6c50c7261df6333556be7257497b341838a0810cf8fda79e2b2182be29c542f6cecd2404f07011d7fabc3b193ab969132fd34d2ad5f1fdf7eea43151545c4eb095f394e9d9029d0cab32d66ef4b6fd6a25aebe8ff687e8f6bba8a57b935d464bfd9315f6d79d1f8a6d8e191f9072bd93322635b9992465a94275f5561cc7340582829569793a81e1780817c9afe1c8b6f434a2208cc060ee57f05740facfb08c1626d08000ee1bc5269f3c1f2537d586470f1418f11180d6963bd36b6a758a5f9d0b006040bd1709d5ca15505c258a81c81b4277697e143f0b9728446139dacfc3fb84fb9efa90c2f33f96c547a3eca7c8f2e2748f7d6147932fd37d1224e6b3b8ceb95b47df9d9791ed2ee8ac9638207d07050424c973a0bf92ccf04381883375f280aa0703ececd33e1e892d03111b52b4cfbb92f4cd99a0b55a0d831978f33d2284c9ca375200f0dae188c97241f9c14d5430923fb6674ce7efbeea97098103b3064af2647f722784d80362f4dbb5f69cf8406408048bd6ce5ea104fd0a1855825e4a86b13489901c4b69bce3920ea5369629b08965203327474fca307b252fbaa84cff33228d5b3f921b7c72424f53b14c55e78cb2800f91b367487de89c679fa467a926fc2af70663fdf360dc75e3b3e83ccfb57f9f2c609834646fbd1a9f3a227df69451b7307a0399d37142907b13d21c405ccb6b7f3ba5306544cf283e22a3f8599c47c6e8395fee1e6f250f9bb1d679882f943980880947620f0e5a3104efa1c5a98b62f70fdcc53fcf26a59deadcc0602ddeebf172acea7e86691bfeb3eb6600e38e41c49bc9efbff6753b832ec93664e9e296c8a1e3b53673b8fa70f2223df2636e7950f369dd288c77ea7861d18dd2a8807d08710433ad50073cdf9d334d7e348d11a338ccdb72f8bdac74a4735a0a643ca7683481be85bb575b7b453254ee84a740a640d02d032cc7b71ec6e1030f5d027894f59b2ab7e6bf9f384465b95448392ea1af97219c1f0de326d0b8a1687875c40443f1ded85c17a459526ed7fca1d2c256de1b6f86637f993dc36975946cccd152d6ebe9c192f6c75283e6a3eb1d7e447196c923d085cd1e442119a5feed302ebc74dfb5b621aa63268d9825c11d93d9d8d06a07c1c276d6500babab4ec15686070c5dc045b08c2197e170d6122dc7446dfc6ae176ea229c0d4d522b265e3e6a555b5cf24b0a78b8cd9fb27429cc3fd3e2c5ab4e1bae0122957eeb56a0cb6153f58a97ce515b09f4f3020df044e4c7a04c705349277abff51b286d9dbb210feeb726996389243048d27ff87e458b5d8c0acb49b34bda41347bb9e41ac5b880dcac99c0bdb1fd28b523dbf9d1dd61fff7398119a8056cf136e60ec03fb6c7c901ccb40dc1a0421a61513475021c9804f53a62ff3e2a686fc42f7ae05e38cec25f0791fd3a8c5dcbe99166892a34139fc2082a4b0d89891349e50a51ab7991044898243b789d7da1397643a7bdf8f7fba8f07bd8614001617f1e776853a4240b47bb38ce85448ab764c6f44acb5615a3eec9b3b9483c9b939eabae6f44aa44b5dbdd7429de30c053dbfdba848c283db1aa8c7f45a975b148c6b6a89b5265538535e58aee54948684eef37cd2c529bd42e044a1313a354deb144682bff92871eb598158eb172e593deb364842d3dcb2ba3482653eeb3d2fab863794615e7235b6baf263ac8692b751ce14a5ae12ba07783433f4deb75fab393e4916d5cd5563cb663df738404c83aaa1a6c3ab5c32b19d02383d63693650c870878c3fca157a215b3371886d1a05ac9d658bd3e89455493f6fadab957aa802831d5c57c48f61027089fdccaad73832d082ab657f17981c6b74b2e64d6b0f7e78f38c4c635af73ac10d74a4ca6dcd2be68909a5f2b29faba73e803aa7d3f73303aa2296ebd0f6821d14fac6acd39198587d3c26855bca6b98ed3b0d0c82e1b3b434e32002c19083c91a847da88e4a3293d4f032e936f21319814a0bc984b5a095364d0ef5c4c7ba80430bb3baa30ab8b96dc68699cb97fc1bc0f53148776392da0009020425ab3135c19584bfdca1a708dd2d20775fdcc6e2403f6152ef1f21106289e2e32bcf358afd2852a535a6ab4e93e4cf48b67c293f5f8c2d4b11764d03f52d2108b4632e7826434a8edd22c38937cf7dcfd71ba3b383af3908ac48a29cc809795ae05985dc8dda2a0d4d118c94ca089a7ec5c2275721595d7e51be033a124918210ec2165d122d819a46d3005b264de05b7d80541729e5d2c9d671dde2b1d520b23e358255fe553a69d82b0abab02c3b2e938a65c31f67f02d911941f66d1c3dd6d3f715611f4f73b4bef5624b9c0b77c95f6c03ab1699b6e80df6e232d0e97edf91b7ff822af476d887b106bbf3489047566f09f5bbf238aa1278363c67b40580709879a9fc992a33e80bc9776db99bacfec614b1ad75d323060c6d331565633f56f5f5708255f5b8ee836561878bd6ac50a86197f325cf4c59279d5d12085d3fd05861b34efc8cc672d155ad9a0302c0b7aeba769adc1377e85638a43c6db9c4868f7984b3b1fd743dd45a4fb59f932e39895e463dcc9d1f9a928dba12e4b133602af53f53ed9d880ab2864483aa782a88bdcd7c26aa9f0b572a03f36bfae48c6edecc2fb4e3154bf75be2fb4811719481b273d274f584b2a00acc49530550e38d14d177d84bcbad573fc36a1b8ba11d824b07fbf3fccf751aba37e9198e3739390ede7a15bb3a0207729a8eb4f502e5fd278743356e9699bb497491b84aa7e03cdd2d46c8b68b29bdeaf5d3c4fc248056f8d3edae382c753db44bc54091696268301cb033b46e223b54102c78bd0e725e2961e6b9818e3edcd5aac3451d0962d0951aef0890a15520aac3817e275519f05f50ea1366b7d4e50245c532723024a1254f2e72d3fb9a4b0904fdf591d23643439415e39790980f622c734f941584d3672efa82fc9a334ff91f6b0ff990c2bca5be097f88c9a87e92b5201cdbc922cc3d3ad2c09e11de3eae495e23da88efc7653dde547a6c1305454edf79fb6edd77f91b498cd589f22173109a869767212d806a8e0be6fb04bcc42d3667b3e98d79bc0b98ae5b51a8aa44b652c05209da164fde7dd394719eaf8d688e2392ab5a1be9cdd08c96471df4b93e160706549f8e77b1dbe67635b687a47cc33241fc561ccc8d9417675bed2d728593e23efb31070534c790d5fae4b18bc8c48dd10367f775d0f627b93edbc20282a26f5723ff2490f0cd15ab3ed6d9d898b1751fc9fc5d3df4c2f7871336b2e90b4832a222373e4f364d0693cb7f68647a87f79d24074ef3245cc76dcb715b1fc47a4c86724b391be76c8e5b9618396efea9e1f99bdc924870f0cffc8b4e32d9fb16ca555ea50b3b7326a91922597f8e98ad23928b0494d37ac7ca16ebb0f04005809595f1ab6de656cf0de1a9465f9c57fb677d79bdcf9124d28b3774095adc08d3d3ad9a24840a8425b14a8a7e60585503a7ae0635914cadf565ca8109eacdbb75e305decdc03241a5df492551a39a50c23edbb2928dbe55d3e5cbc4f70497c5e580eb578dbbe70139b002454c5f5a388226d381447f4216efa07f846b5ef6ca5ef4d5c73e85ff4c460d4207806972488f50d6c3b73c1ec17fc12d5bf0b02145e79e0981649ab715df35bb7ca3d3b2290a40eb135c5401e4bb54164009705c7d37d44f7ba0e3c493ea6befba4d2554965a03ac2a7f6e00dc47d62bb67a79fded8db4737654ef763c0666e8ead2bc26209625e3d9178683f4a157bcdc39e1653e692ba4a493352072fbe3f2a823d50de767d046ba51cd9f9e03dd233393c84a93a121f2fa30ef4e0bc7db925dcf239cd9f84230e8d4766da60ab69ef3ed746986c5751e3a9f7f6402c5045805b87d85f65833beb7b00c61c30882fcb8f988c19b99b6f65aadfbd5f617aed0cedfa500239b58dae6d105117059c37453f56394db39db53551f34fb1b77c055124e11317d6cbda399f60de948d110846ae9e777e6f7562dd040666a12e85c814c2207bb9897622d6015476814739522e03dd57c0020f6abfedeb2a1dec93162a6ed2269d37f6fdd76472dec4400cb5ada7568e3814da07c060811b46f3e5de6c8d826624af81f3fca9e2c2c833b4ab758cb7b2e505ffdbf37e9967b1dbdb1402269ba81e8f58c5611c546a87a30654e638e31e7c51b1669069b0e2b61e2dec2cb0adbee202979ccc6b0841dc05602a3a965f15e659a6819b6db2b2b261733a16ac425fae5d1fd5bc4251fd05f414d72a7e9602a5d7d66afd71c5e023427b3ad979a94dda7a94bf93f3fab8c3a48769bf6c42bf18b6bcd801bd39d8470bb3bbecd8f3872e45b941ccefb885b95875d61fd6e2e386098cc54f32acc8ef8c0e705c423732f5a25445642425b00d94079a61a2900aa39bd8c54d751b42bd47f033715d35d02b8c5c4d452add763823df7b9182fdeb5636b6e94643ba688cbe4ebae61f1b6a06c64909f80fad5e836f1d8c69881b01cf685402a5031d5c5a94a286c5e2f3ad0e0590cd766c9d0e2c43b6177048f32077e18b019c00bd2321a5075eadf85ab7e13c1dc6c0e7f83986ed6491d02e44407a8e7b44a9e58be6b3a02654c37e3a971d71d94c93b1229ddc0d5aca894c9b8afcc2237e0ae4cc13349a806d514c3fe3e6221b182caf31e5a7b266291c3aae3b52bd6d56f23f2f6188008ef2ca3b0f3fd99d3fdab0c74ef7bdf29034df64698dd54e57dd2d53be89f754ff0f05f4b1447cd973230dfdd9296eb0d6c9a0e126d34d6dd5565b72bac11f33912849227259366d584d1455a4303d6f931d16230c2bd9e4fe1745c78a2a561b5bbeb04938955e2657f8733229293cfede2448b46fed92a2b498b0ae764783cb73cafe0d65cb25a92634b0a51696dbeeff41ff063cdf39e743172bbd1920a770279ab0054d126813c1adb5b527e23ba7cb736bbcf61460cf31bbfbb2eb12ac2fdeec0cadaa550ec513294a31d28af5e6c8a41ecfe90357131c8e36f86e44b06c15ebe95eee2cdbe4ee8fe04a69292d21cbb81ca21df0c9b7274ebe5d1c6f905b331360037c5d138671ed70a1022349c32c9f51a3f0d51c0be77447f9c69e9d8168464d81ae707e4abfc8eb3d9a9e70975c79afefd56d4d2a3df56daa9d624def57db3adb3257b75389ee1eefb637e25ba4544a6439d2be3fb583f94912a763b6b395eece02fe510f06ec81bb50722eafb83fb0db210d3bf098eaaf8b63f71b38f052d16fc417e062b25f14a56fe0931885d580e0362627ed94bf57a020538c313b6461341a7505b4fed4beb478c81700d0bd9328132f25d6675a160e69254f8b99c357518936e68b9540cb7c405b89d202864610cda2d16557c18a123f9e5c675e9837687dc69fdef68fe9d5b4cde503e91620c76cf5c587da5e28a2611d301905890eb5072f97dfdcb12515135e4effb4c32061869f8abb4f069f38022f1f1a6f6846723f657f6c9c920aabc4376cf694b2dccf1718efa06a78d7b3916c9c336fb423fd9b064662f97f3282af4974621bb3f925bfaf824a85927a01f409b621a53aab3c48c65a840053255b3376ed3cbadf16065afcbb794484738f30fd34271386e04efd7ad776b9fd7559a06f7fe30aad0a7e6bcd68a0239bed76c4054bb55ec0a395b76bdd9b372d6349dc0c64df960095d59745b5faabfad8ea9cacf66e609dab2975f8f899a6fafd858d81f6b2899c2dd1e33d3cd552460b8ac481547a4d0718dde41d66a7fd52f8d6d96e79e51a562df6f61e1e24c2f1bfc5626539d9c838d506d77080c89afb122279bfce836a8cf0ae7b1c86b8552d2a4ee429e9441c63a4f96ea8e7acdf148169a38be93a3734efc03ae5770bb8380038fd657017d741887109d4fb3d9169e476626d31a823bcdda223b1c0904e2ea537567987cd10bb50a69dd72f49d3ca4191091b692332b6243e9b412dd68f7a96db991f8afd2ebbbae3beb96695d0dfc455186f8a9ff915d2596824b82f313773d1bbb27afdbc43f2390665e8a063dc8c3ab8a2d427a23ea3dbad65814c0fd8029c1f44ee499c4a24cd2b97fe78c21d51f9c05b64faa92c983c88a5216b70f00b28a4d9624a2cad1064952c5b3c90106db125223f2b582741b546f3828863801be242a46a3110e2a982cf9dfa72ca2f85693f763c022705d7add62b64ed0f3ce7362278edea68df81073182ec601c4ff5477eeebf26346f3a5de9b95555f536bdbc023b56cca0f4afadb47ecf099d1a92b67499391fc3c9463ed6116431eb2251b557bb7f2a82774d1a8701ec99bf361ff562b2ef4b6416c6a443e66dd42c35f612665d55f3778d0039bc1ca339c2a21007b49e4e2dc6c41ab728307f71dadd0e6320a6a53a907f55221d069ec5bb48a5fe8af3d6736b4d035701661da4a0cc0025a923dc3bf87309956afeeed9463ad4f5ba8a4703c62a7abe3c0a81ebbe1f6b89ea244b76a80958107b1b2362db53cb20d9622e9c9be4ced6db99539511eb1bee6a6d09047ad28558497da7625a615c8cc21b4234970c464042c59a2735b2ea32a1aba6772e14da462d57ef716e5946bb3785ca0b6395c54df4834ffea3f96df4147761a083ce48be5177fc10bc2968e70b0e21f1921554b65bc3244c6ae3419901b20eb3d032e2c0ff98422add7f4a2eb6652a207f2bcec883a40cec32354cf47e578af9865996737b3fae597b4fe4a199608eb0fb445724f41d50fe2ca215d8fb7cc80a2b5a484ec4ecb824b87299c21b60621d4017d9f41da8523529bc8a1a41ccd43d03a4b506ac78b0aed62e4a21971d0b563523ebf81cd18bd18dcc89303e2c690ebb3e51f7203c6067b127b1fd344345fb0a3a42e076dec548e4d6d8b10a5ef0e9fa3d5f8f65ab3596b689865b0a57c0063bf42570e6e0de7a5a9e30e61cecfff5beb9ea9bcfb6e8f772daf59b329455848af3f22d71760ef78d727216c5a29e2644ce2d140ddfeeae7eeec4aa70314c5419966e46d7b4be65b7eccf6209b227abb875eadf6246c4995403539be3961b357b17e27a9ba3a679e386ef85ee34e448820e5a872e8757e86a782b5d50f1ea7d07d9f2571758595907ee2b50506abb091e2bf6d9450062d6b352ed2a88f630ae606c4f05dd0880ca947dd0012a60b0ab59c975e6a51e0d14ba484f8c7fe888509979021a18b5cc03ccbff2335011547eee9a0c6fcf095947302db7b85beb5bdb1fe49c4848d6b0db7f7dff4238639c00e60c3643892feac377b35753ee4117cfc62886cf368af4523b556ebc2523a3ccd37de03e96a67bbcb47c5c32071e1c2ca708038583429bf62be85ddaa409a0b295f1a9b308fc1c4857716d2c26f7848dc03e81fe5a3ef4c8baaa1104c253d6cba82e8aaa591fd8b8fb1d8f05eb396fdf0de6eaa2f217102e8f55c55c54e41567ec70f8c21fac8582524247b457b5b0beeac5126cc67c4238dfe0cc8a24b3ddd4c66213b5b49e64a6dde230d0dc6dca9592ffb810a579ea855c7012684aa4f2209486e6a597111885de0d757ac540ec5d0042b96c2986e310f309589a281fe8c3675c05cfb83aae5f5e0f6aeca653fc6b18d8467541bbe5d1125f311facdddf399a25b880d6ffdf0688636c63c3dcde781363fea87e71fb7acc173397ce23e198da7a8d68500f6c1000304ff9b80107316d3fa5ad3d55bef9c998b9355d67057b6e03988721206441abd0ae8f5f32c38813a4691af9d533f4ac2715891b3d0b1ec8d0d7c0444bb3bdee2bf5c32e0903304251deb0075f0288d08f75c117c9a49e48dd17b8587eee10c7249bff44c8d65e582e215aca605d32f40d7a889d05839bc95756286283a494863d57ceac78552ca6fe9d52a99741b0601066b179adf8e4d7e4a15865e9d9a3807fb6bff5239db6461e3fe54a58db76a727544e3acf6c844c471b6e5afd45a76da09b8327da2979b5851df117f386cd9dce2f64181cd4a68de8147e14ba89a65ebfc585a582d477a692f4520e3147bc10865be5c04962306bdb5852161aed38b1798b79a241753599eac0cb284a190459e6a10c1b90af5fce6fa14203ec04179d248d7886d5b012840e7a39999037c09654e0eae34f3ea2ebb37314e0f07e29e726d642f94f903c5baa671a9181d734faf8ce87b9e91f20919f3fd55b00e35c2a04f12bb34d026b866bb77b1e4dce2d92b85263a85895148f1351662f99c4602a6caba53a41cfada7c0b954dc741a161b3db8795c800a34d9e15c33e57879cd1f99b95d6b36e330eec14613f0427f5f6a24ec833a57a9e9f12fed248853ddf59b570aece5f48b3412fd6e7a306cd3258b21cfaee93b48d972f99c4bed66090d3b04f9a21dda426512eef12b7caaab7b9d6d6dd4cc9d41aeb1c1f4623d7cd8d465e299752a13c70215667efb7c303a6f04d445c971a91240ee9675ebf883eebe1a248e69cbe0090e8e6664def71fbac8cf6967c829dc913da53985e11ff057dcb97cfed605493cf1a99117a2d96f5e443c1021621b5648d08160b08199cc6e760ebc3faa9133638c186bbb0427565a4115819653454746422f57446811439ba851f09ac71967b0cc54daf5bebc9f148999cbcca6fc413e310a871cff04c5910ba24dd58d5a6a2c0704596e13a86099056bc1ab19a54df4ed4fd586608e618378546f386479714391a807bb739cc00ee642689d19dfc8caf411a1f4f251c8d03b8e66bbaafea7125cd5d199c9d6c58f6cab4c64a97d21cfef7779ec690ce61d78f5fbc652cb9f9a965ea7646791e80c3f2e5585c259dd60bb7cffeb1ca4604778a12be80bcbad62ddaaca8609af7ab7cf2ea3be1e065807d197065a8edc26e20363f0419ad32392119c5292243162f8fefb03752890ca4ee801a4863fcbe30829a999683a1b13c28103d23fcc4479f283c9b1bddec216685eb53ae4353aa876f2330401ae3306124d23604a761011108bbf9f967f7f9446db5499455c48fe2b3a072940402da3c93a4870c2a2f53892b64fba2277b5ed293f4beed174001b8a7fda33e5ca35841fddf19534720439546fd8c644b29e9d367d66b4bfde30ee62018d7485fd03dca8c48c99f57835df9d5284a5a82321bad1553dca32f4c2c02540952dbb51e459f5f751056c70f6bb2afe17541c973045786b2af610e235d6a69ddcc299744fc15e3e189fcb4bde1805b74b237a429f801d1dc0fe5a51b9d19ab80c2f458549c4b0b5184998fb4efdee45f4a51145353c8938219944186741b3faf0e1142ec5e57b9e8ae68a41bd8aee46af4dc2f467302254e0804499d1151f4131a0f44d04c097eda77612525e8f71714eae238c6a746423fcb3dfa19eac6e81731ea3b04f097a20173304f6de9cee58f1801e75ea17daecc3acc3975f9f6e6d31ed8346442e02da81e55fc2d90268427d3b8927409d1106bb63679f975e15aed034afd94cfcfb57584d7b71d3a736d9acb5e678210a50b86a12ace302847873274b45a3ee5ab8c47ccead148753b2b19ea0acba395ac220745a2e1da2132d0b9491fb97df2b0283134f70eef01d6c33771ec934b06dadc1840fa08a7392831deba31b5b45fcaed1c5e417830cfad10477235a89405674835892fa1d45ddd4c8a0a6ba606913b2324a1380f03e6b44a6795bad4c99f2c68e158689ca07752ec1f2665cc54c28d19c3e317a789002146981c007d4095bd3eaf5411aacffc3b64a506de18fa68c2b7b96ee0b1bce9e2ac1ed035346b1077c6d5339ce9f4b4ab4dd09e5e18ffb4c82b9f1a46931e4fb112a62816c43de043c5d3c2550369809bdf5b0baed44ca6cd8169106545a1e9e0edb8de9db4b1061e800ddb60ad8cc06e0b6b5f8b991c9eec2b3d6f45370086490f1e0779db5379ce44ffaad00705ffa7f97f39af624a388c2a4d64b350842a7d8b89168c20b18471db450db24ca440fc285396dbdc93c8f05d9f9862c53fda73a28ebacdf8e20ab3d4cac6fdfc8a0a8aa4e9d564d032d0b05bb0751cf2e3cc3b388c9b0c151be55dd224937ef9140488d247babb7dc718fddc71ec83ee21975c1a6bd3015f60434764c33241229e8986b75aff09b347eb17671c15f29647cc8e6dab580f8de6d4a03d3509cd6a03c23a5e754ebfedb83e46742185b8f439cc2e9df1b87c123f0351b338f40bea1e493045016dad5b23bc2403afb1fea80f7df05eb63fc92a87332c938164eb5dabfb05a2ec6b807d300dbf19915c871b1c201a5d2a3a9eadb9e410b620bc77ac14c17d25c2ae9e9ebf28ee1e1b8d900cfb0b91b2ba7a24f3fc7d2b98ffbcc75f98b0123ca15e1af836af0a71dda148bf03278ad05bdd5423de825b7035167d4f28d977e634fe9911f4026dbf7c3acc9ef7c000d29387eea3aa254690b1d6ea4995fc7b16748899255adc2d2de6b759ad210faecbb440d3eb149544ee6226901c0dd19af501a6e2775c702c458344a50d77d5a6bb7324c0c1a38a9f773980e95388990548d17b0eca0301072e1e0876ac010ee0b092b475c77ea0e6f65e6c096cf5506ab0059bd8ab1ce2428475b4732b014c9a6c1c46f3ee3ca7b7d8adf4d4211653a9cc0a0b9c3d92813b59aa26540f01ed5354fe6e3e084c16cd9a5636d173d4ceacf8017764c6ed71baa0c73376ab72aeee5f084b17b73b1b1af23f13bf6d56326bc7f45c84c36cd9a80c82dd32c6acbaef8368159887ef7939cc961bece4be402d47b8f765b8ade69ba94d64fa7a641d2bde2169f5f660cba6a2f8844ee58db18874bb96b73be214d340ee7edaddfdca9a106df019117bbc79744f88d27aaf34c0440b081ca9db2e4f3dd92ed3e20d77aa427e919d262e2db71fd2f72e98bd5c5a81b86ebb6a7c7db8768f37a50fb555206d10248e2ea52811e42d7bd4cdef9bd109a8af152c4b4dec0c2e621678dd1d40190fd4ae39cb9f7df41ef7ba9aee43da705f5ab69a75f4aed9bd704f56409bf3e1e6ba1e270ea67da6a329530b334eeb0630b6477e8874ceef8752d9ae8038ce3273a19f232ef026ca135ce7c60108698e5e3f179f0307dbefb4c7a5ed4b8be97eed6fbe3adcc126e65c7488632f4d57533e0a87b2c9e5d2efd74114947b65b3b3b3d7d82d5da4100b851938c402d83605470ac32de53eadc5a614027b00bbe158eea7cdf1bd86389492d9968da14a28a2e3f83edd7b9bbb919397062756ce69aa790380ca53d37dc0b7c6644868aed3dea249d393caab047966c7819415b312ef5cd5205e0e47bcd7695ed2c94b619596b2b7f4576f3c09c0e7df1d16e0a18d786cd2051c6b8d41c88d1945bf0144a0d785894293e5afa6fc59d71a5c67e85cbd71c2ac4a0896d32900a4ea4463446901129967d97331e31ee4a47e057d76fef7dfd7596b96c6aa140f20f194f27200363cd4d32ff0686f95c13c37c5630a11c37d0e814ff1dba97e51f410c4278f815457655a189ce2d23512ca94898c21b50b3285c1a02e0147f87adb71cc8db54399a8a5fadfa6332c0cc4fab49d0c863b6864aa0d489dee2edf949b83c7b19c0ee9b85684e189a54866c699ae19b6e0fc69e3b33a433ad1c31a8d1392d0219b0e41f075bcef74df85fac20b81d329b2468c4ffd58df2a15197595a8835bc5fa31375c40817e61a8f01886527c35871b3d35885602cf948f9c200b173eaf4a175cfd22f1fad47ba985b8e0158837f4144a7bba80927a0c4da7248b1ca3f885bab04014aa5ecee4f2f33ce36ab700726dbc7ca3e001760f4b8595fedf5a70e6aa5f6d01e9623c88a0e45d57a99703059fed69decd0ce7742e3ce326fcb8e12a20ba814f1e74c2451352cd250e3dba44a8e54d137634bda81dd33cf502743b457965c789c53f351944e791e2e1ccfd1a6ce4a7534c417a9b476aa9b0bf67274669b370d7ff428db45c069913fc645242de69a7ba690ce740507973bff07adfd490e7e030dff01574e745902de24c1edfdc72e42974de4eda087e53479b845e67091bf98f9f47d3473435d252944a6370f56eb2c4b9af12029bd65238da0dcbb85d81c3519a9b23341867f29a133e86e014d61611c3343e1d6d1930388f7bf8537b8c1dcb8eae1bb2654afa4e76ae3cc0132c7909fd36018c1338f0c44fc4fd592cc005e93cb6f11efc550de5d32c2910f4c8b5ccc48cf07ffe839fae6e3cbd46ede91c8abd629acda9fce6fb97c8a2efdf14a982d5ddb97abcffd25d85917165f8a1eee093493a8bbabda73b9f694fbfc9021954ab0a4ea995fb37d2044057de302b23b3bbb4dec8c9241789021a3956906f265f2cff6f6b64c348d8bade99c192845d05c424598a548a91d1c503b8e655ae289ee8e4c4fb1538f3d62647d34b21c4c91fdf821ebaf42ddbdbd1619878435da747ffc99ee0d3e5bafc7661b3764bcde6665872afd4e4e3b85d487b831509a1677bc8d7ee9008c05d34cf172e803365a9dfcaef1c0ecb4dd2f390207cc57a82e0063fc3aba71603d0bb1a7ed8502b1cdd2d5fb079cc876a65b491a837e11aa03043835df8d08d1c6e6caac9053811e9813ec4fe431d8b09d5468244c2fa27900f89243834ab1c4cf906f7d47d5022c7dfc94546fc4e3ea76cfe474e02dce1cad1fd69b6d870963d0ea87e6970db5c2efd2acd7c0afc6f3e6e6da59ed824bf5ee83299d4f4f429102f43b9873bc89d70d95bd7778a64782cf799c5ccc40023a46c7648a6a3b1ad413d2a7802832e909dd68e894c63ef683706f977994061042879a331896ead53b987e1f3a04a76f3598eb1c024e3301e8ff30015f0ecc6d98fad9031d95fb76b8f71d536043bcd65d208121c8b021efee68d0a3308b6bc0b7b7d62617d62905ad79c8f5816ba6ba4cd33e2ba68cf254d519c1a855c10ed523d683b01740c4e1ea7719a86e0a96558bcef83d4f17d741bd7abbab7d04b88f39a19bfaa809799752c0a5d44c0e07200a4b2abc4b2d6ec9af62ab31133aa4ba493f828d5198fb237da3747911838b3df54ebad5444c7fc00ca2bb43230163093d615c810ecc30e8114c2f0aaa72c4ab9f1e964be1b37a9b15dde6292fd29dfc67832487d53781d96fca1599c049a9704b1bd1bbb113d8b47473ae573251524efb34e0e7b1bd7ef2077889db20b420be5a9fc3ba0e0cb169ea4f019d16e2975acec7e7e33cd63db0717c3f075ecfa12006e9c56a1ab8a9e89c8a2873cabfb363fce093fd2b4a21f5b5346886d421976099ee5238180d7a495c9f6282668db30bd2a1fece5791bd50a9d8347b2552d9167a4c91250cd6a1888e40badff9212fc6f56c899222ce3efb298806727c014a2184cbcd16382b18cffd1e64fc75dc6fc53cf4265cb49356f7ad4f44c9cd2b5ac5eb920e0d0247c39a9442335291d1c070a1da0d4712093373604f3002b72dc2f16b5c09f80b83140e98f2aaff04caecf0729c3748baae28783be92ba3dccd2b8823508f25015f399bb1eb74b316c418fae74e11eb219e22bd14178b3a7fe64bcd834a78e5ab00a3f77962be25e7baf53bdd671d1c9a7bd768d8854cc163a3b4e4ac06051a6f342c8c3b0d6ec48678c2919580bcb0adc8c41da9cf25ee7e93531d3c18221a8fe5a925ca062bf0a0a3d978c976d254d8c714148edf03d1fb8b6d002c5a26615d5dc55cbbd7ffadcec25acb90598407276531095ffbcf4d65e12c01a38ef6e0ffc7cf2ad766ef3341352f45f8ab861b041db47f8a4fb024187b61328857cc8d9c55969b72ac03070cdd2f971e455b5b69222079789a60c7a3049d72dd3e3807353f16f66923789845796a1ddec62e9f1891bb3042b850ce744abcda6c312db7564a0a2b661ea2b287f306b08267f6771053f82cbf32026e3788d480fc3ccb6dd8d8c6f45c31957930e0fb2d836bb76eb384433b8176a65c0ff8e81f8f2758e239d71916e18126a022c9367ea49b73e0198f030c60926410196872ecdebe551d63a0d823a725866da8ef9382a83f3aab3f1d269b88675df90a49bcdc690b6909d45c938a0e4481783dc532f1e2045536b52771fb848e9899e4aacabce07fffdbbe3a4d6eea0d7212d6792d539926bd40b1d796f3409cc71dc05ccf37be6e95d4e5aea7033e151ec932ead8a3770b7d2496c6fcca015352e5950bfd324cc4c26b2451682d30f2bbeb93c4b9e8eb9c0fd53356fac14611abda30dc4186be2184cd25334b9e609c0843802457b3079b1508df11343c6cb3ca500b5c98d9ec0f8014f50715e979b00ff2ff73de330a622336652b065794a607cee4a78629ecec06f178ae774ab56b44aacea382714f1453d25756cccb7de4b12bee088cca6ebd9cf2f46f4551b3e1825501a7cc525c6409a01abe705f9b394e41f20245e434153ddfecf961412fe264f6101d6727eba4e4e8e1bf57ddb68eee3b8cdf2019733d77dcc7e3364a2888c835867811469dce6d0fab50d8e1915b69fe11b45486444199c52883197d86d1794fbac37df34a3b1ee63a4151b177eebada9c4a1e3d04cbe73d26c68c4ef94a7c0ccecfa6613dd5acdb879a6b837cdcb66034c284446f81175f718fc6d2af3cba865451d583cdba944fd867c80061199166f458fdc975960c40ca338640e13fb935c7062acb2dccdd8698ee41371a7f865ab8fcfe84072ab6d9fb7880c8af6c28b13a9b5ee840ef4179d5ed192143ade72f97406b81ed5d89809eca5673ef37069505a542423620f7615cb65645cfb4c7f04a7b8a6853d2574fa14429185471f6abbb00973667d33cdb051e7cd99e100f747e399a939163168a475b4a6ed015dffb5f4f82c6838d9bba95e53f28f9f08ce1f87bd989ae44eb17ae7893df4a5a1febd16953b7446a87c2c9c956fe778194009bc5ee0c194c179d2a9559810778ad0bb7274ccb848476a6508fbc2baee62d2e69a2d8e97c5fcacaa077d3a5460eee617a032d007c0183d145c7eafcfd34ea20685dc3989c422a0fc8108f487f4b3f298ccb34d569eb07a60f7850bd447f4ba8cccab480424f1b36c8fdfe6b9ea6994d7b40c2d22ea40c511dd2ece5b6b46d9617c067beb520fd957c6a5bd22d8748139bcec122f1160b83b13f7ae14bdccb4fbb95b234cab1e8ca5c58f332d8f36b0a46efc43146e6c8e1e3916c37e0241834ba0cec2e8a8c5f765d66833db66de33c0f2792f70d93601983994ec107f0107fbb43c8f5a18e68e9ab3850414281a2188d97367daee71cba843729dc1ca30883106b3e392828ab66a74e082297cb94359c21107f5c21855a0c5016162f114293ec17907bb6cfd74cf579b4b1fc9199ad0bd86c3985fb5b113d28a3cd7d202587635b28bb4a6d2f91d9f5c074dc990efd3450144f06c0a0b3c06b0be2981518abe5ed6b5aceeb60d3808137c9c187d8d1a6af47eec8c84c3f2c6d00c39c6645b6e96f259cb653f1b3e9e0e4575bb69fb500af3fd3de38e657f289f0f442a372992b00aa9026cda227cfb29cce38105c0e0104ff6b2b908490633bd98f6b3dc6857841b8886e107001c364dcd6ed6cb70f3d2a0de914eebc2ed2885477e31e51d86a140b694588fcf2cfc4c107f6a2c39d2c9da37fed9286dd2954d04bce9fb346147ee7f112da6cf9fdb48a4e8dfe2cb81078a0dbfa0e1676c29e57b3589b198bbce7902444930a8ad3ba2fedb4a3f6d8226a32f18d74540eca658787471b774dfe4cf6ece7f35e573fdcea63846a7ea219f971d9f62eccc51d01c70530e9aa6eb39de3f0633a4762130c5d356cf24ed2ea20a544901775fc4a83284023ac1265dfe562faaa9013c395a9e5fe77dd586e80a0df3bc60d29d35fd58faca426fc04d30570022a72e7a889e57ef3555a7ff89242a4cfa98211cd6c9a6073ff609bc70e446e94478bb70c6597b74f40b6d8347c7b12e0240782a343a873ad309ab242a72c0739e1e24138ae1081f878ca910cd11dab85c7fa28579cbbc083cdba8478314852f55b9014005e4e6af5309ddd2e8a6e13eb29f6050d7b4384f61e0d4772cbe896f3fc67c0f23253b2409ad4bd07d70302b16fb27e082841cfbe8ed6dd115e225cc8aa1af8aed1f0becc192c6da90b370446a5bacf8e78bc4c86de49caab6e205ee6156cd3f7c197b54291d4059c832ef6f370d1e762401b994e3db7364253e01702167c5efae26a5bab8a94f051cb47a9000505df3fdd526907676a37b4859b124d14152ace0d2adefc9cb7f1a01bf0acebdc45670b6bf466f6b3520478ffa7837d1d897072cb9c9bcdee4cd673836db558c2c008aad53767fbd545ad4d558662a7bdf6827df2138f28ee26d08bc233bf709b32b2fcce59851ef0e6bc293cd6761ac5ec09710520cd1e06b57d8c1e1b7185171451341747bcf603d94c8a550f9a333786242e100c98583d4b6fe72b89f75d170c1d2c784c9ae2082ffb18174647d3929dc451b76aa99a7988212ad2ebad7dfd417a230d49110a18f98d3ee6983451a0871bbb3d796955db1e6314b8d292ac157326aa057f2f4b3c4aa31a3caf6fb956a3b4d69c5c07dde72cba1a65e9adad47254f6b15bc02c9dcb4ff63eca2ef2b85231e519524606b25ff5032855db9facc979aebaf597fde112b4d74b3ad64b588c1bee84aa328f901e88044db5295b32d68ee528fefa5a9c87a42d9dcdd9928455b4e544588649bd04acb2d9dad028dcb2e54c344ed6150f334797ee9b5267e0688c868b092cdf6effa0081acd3474e91c5624d14438cd1c2d5a138d1e0ed3ea28b47c21896405663d47ee58c18494a400b11bb5043125b8a96f31cff18e388d9e6c7f98b742dd1529c0bbf5660ade438e646de7291db6e031a582ec2870130010ad67b9a4b378af43d3d2c33afa686e75bd598911710a1c0ba55f9349aced22b959b238261048557dc8d9bcd8b469d94c65ffbee20ce1a7fef52c6db1863ecd2c8b02c932d4488b1ec48d3b60f856e73b5dc1a8d1d7f546934c87cf8214537a065d07c9cddf45c926d7adc1b5f751e4ae4e9a427e466bfae4df4f352c9dcffa9dcad9af357a9675568eeacc33041b6e7a43b142d361c86e638f3492f2f158b97dcfb3834e4dca2c647a5aed3a07207637d00fb5f6cf8bc7c3e634b75a932f2ea11ba1ce524ff283db9c040e77045acf8b3f38354112b41a967aa9354923264a84641b466cadd5eec13cdd5b5fdc1fc2c30ea7524101753dd9aa894046f494645ca83a1176a6cd7e43afcdfc9299a5e5a025bafc87d6b28f8f6c7850ff13f6343591401371c4c9aa02da9585432390b513530224f807d0cfa81220bf4454f5adcf09c3bd66f9c64981a34d8a15ed3ff5e81efb6bd18da3399f8cb0501fd28c06c7fbc5567325cc1b2593d1d97ab281b98e51d3e0b888c1d4a2a6fc21adea5776293127f268477446956eacc2deb8e335dfec9ad1bd08584ba0e4fe2a7b5e5e594cb417cf7fe4169e615d7b307548b42001b1c0b450dcb88b9c8475565e3bc0489df9603d85a41b2f7c3c6879a129005ea2f39d86bf027ebd27734e3db7c17fbb348afa5e0970d586144e1f011d2e84ceff73455f461b1cf2a814b083eeb7d16de5bb19e123a83ccd1e80b8be8a1d066eca5cca40e3d903d273185570cc88172591d28fb8d612a7fbfcd5834cf18a4cc563f53b50feca228cf31eb9aaf85135244ced75305629a53f96f258a0b18311dd4d79fe49d9d35312438d81311cb1a59352cfa961cf66b978ed18e2a36259af0fb076372b5f468e4a94868023dcb02e561807757dab2bd03577188e3b5c06b566ec49412f05aa0ec77d7855356160f64f5307cc74d1f729d17a4cfc8c7b68e803f94ff742e6d9d45cd591bf33fa4a50bf0ca4c74b4b5256139ceb6b5328b49207c78a6f2b4a046f4ef024cac83d8fc257ed55c654609534e3b1f1e3e0f81bed2f67e85e77c73cd61d5f901ac35a05b476625722ca53f787263c5f79ab572f6ac0e03fd8907f987798771b72907f3a2fd87d6d161a719a80f1a3546a4231e75b4d9bc75bada29324127d503c081a9512c1a8fa56140583620677920aa35db3c832786bf92c986582f5a2c792fbd30851eaac9e35b23c7b571717f257fd2cc9786dda03cfbeb70f5113a02023db7877b11d54216d27bf378b9f17c7c86d058ce1a39c2075d189cf84259a88a54d793fa0e5d905383a2cbdd8671e26467b20dad2c3f047cf317572cc0a277d1ad75a8602f2c8f77f35d7d50cf86e6ceda97ff778f80a6a296d32989ab000ed700b4642f90d782190caa29504e40cab08db29a9cfbb6380611bcd44f24b0588cd84891eb20a4439f9cb0bc7027d8cb2f228b687d4a3cf579551fb912f807c854d9988c856b53e162970f755e17588726f7ecb2edff9a4b370cf4ebaae1937d722d3842625bf1ab0f0be02ece4b4bc66717a1e57f88e26665144ee656a5e498ee8569c22bf642c90988caa251f11d254cc44851ff314bc02e92661d59f3731c4a26346732e61f10aaf59d78864f47da574846eee28cba189041b712101845dbe677643a4669941ccc38e15e6ef909078fbaef69d0021dab3ae1d6d46f20a922be8bff39ab2dcbef01b2c9b7524bceefae78bcbdafb9e6178b83678afd3efbe2bb5585f2180cb265649af20558c88918923767abeda9350304dd13f10c2c824281b5e9e5f31a8bde10f16da77632061eef928bbc5c0e20ee1f79f5cf91a8a865fac864137d8c5714b41761ab01ad7df8cf5752a395dc5e5c389901821d3425e0f13e8eac762ad2be4da6d2bcd2bca744c03200aa796bf32f26e4b3dfab05e9d022523a1dafd22dddb18eccdd43c8b44bec20bf975c5a934f94435450d2742c1f884b5f129b30f58ba8b8e278b24a66f19eff7d43ad6974e45d49b3d285ef56fb0f6186ae0d4d5bbb284858cac949f3db72f933a0ab26ffe545c1c66b79c1949e676980dbf52a6b9bdcac00cd13c80f1ba0ec79929396f4e335279b702a5c1f193e24e326423afa56ef2fdb4ab0e29121e57920e117358655724f3e71e03bac6bc9d010a4db37e07eb38ea4c311b94fc216814248cc905bfa89d29e1f40ccdc8686b5f41b7f70a88cffe37137ae882c81ecb8f55255b23882c8388ed17a8d1cf72deaf64440e19be247ad09e7d6e1e4338af0ecf4acd9e43d9171a1229ef230a6c963ca0bd0b1f073f3db2fa0fce6e90aedaf548ffc89eac1efced8be04c0511239ed725bbe19eecf62d750aa2e977f7d3ac6f4408359c06acd3e877f682b3d02c9bf37284dbe6c294f5704d5f8d134795fd2e8891da31e330908bc844779d7fe6a9a43395d2742debcf8a0474443360c6f9ba3cc6cc63e7ed3bbf29b07a0d9117737df5281aa49c699158259d75575ce2f5dcc7bf32172b8d9ffc3324c98443257808d0ee4e67937cbffb436d0bcd24eeb45b89dc9b758a68b4fed9f8f0427374c905ed9441498ffd5fc5c76890dcec7a7bb38a03f34a1adacfd0f11a529cfde1cebf896941765ab4657e6c2803d9c04e7d66635b5408781eed82a7b449db0ba441122eb5916faf0cda182c79c35aee5a5d0bb182f6402cd938c723062f8cdca9c83212520ecffe9e12d398501603b3e3cdce24dab0208cd281366c11415abaa0de6b654437acecc33878504003084ef2fa7fb4de4d496c98f1e4072d5b261150d02faed63d2cd704628999c7e7a9fbfc0c2ab2a971df871014841a93731ddc34e27b2db401fd85ed5a7c0ce2c5e2d7a60c80065e59e90762a41f38019e55d4a9438b9c9bdfef6f81812a299f79a22dc26354500e69aa0bc1518bf9d4598b64b29fc61c5407ba3ed7adcd2cab4835dbfff7e14a32a035c3ebd2ff4aa0a348ef8df67aa59b707ec4f38f868032b5f120695a3fc329291630f20d0cd11f3cc0868c404d50891066efe1e243a29e9354f2133016879e1d9383ebb8ea58baaf1b302404aaa02f3c8942c7dca3bc4f401173c75c863222fa24a4d3c9d2406b7c3fbc083c6f6b1f1d651f7e1bf0a225756bac9a719abb80cc580bf81cc54b60776fdde69c0b06765d3103565956554a23809bedd0e4001132b9eca91cdf54dbc184298e91b812ef541986deae4efd2dcd992c20c668acba45d222b17c730db69a947ae79e8479a6d4ecdcb5bb13d8ad95c2a141076e2cb94ac22fe1749f37385a517a102658cbf8e247e90544601787398f2a66a8f5dca77102ffb8644d3823fdc4aa1073ebc5aa528edd5e6247db8f678efbf15bb3d213aab0727053368a06895fe4a23d6069c1e116a533d7922c09d515f7e3fc913ad94ba9488aa035f0e84ee86a2f8ce23edea62b0750cd153deeaf45faaa00e8890a277dd2774ca42b6ebc34439b77f3f77e60b08dccf50501fb1179ce862a1b55554bd90a69cd7b7ad4f10cc48836c5efcf2bb4fc42614747c05eed4b23d488d40fab245ead492a706d6e700e1068a4a0f85ad7197f14bbb479c6ac40729beb62f995e1555c9e8cb9ed99ce05bc270b082aaf96f70f539943c68f9efa80db5017200b469c12a0e88f843644a9d2c7835f838e5d8d997cbb82cfa14c366bdebf09aa3e9743a0951d2840a731855c19467875dbcdbf0da5eed1bc959c1929608232c23d98a45e08f050eb29e52dd04224938c06b03959680721de036dc3933c8499b454abdb887c6727737d956d238a167d3862b4e6983b86ce1a12e0c54494b12439dde953831a9df10760a62fb0418d6827733d5ca52f23fe029bc4ccc7afb0efba3886fda5129d36b7fffdfdec54432a3c38fcfcfa628401ca3dee6c37f319036c5b78a1ecfc0c2bb0596e6e4d278e2140841dae639f2f405031d20ccded8fb4b8ee1787e91127fd28a445e2cd4eed843c06c21ac32d9a54400d40414085eb5254971ae5efa602bb33eec255bd8df3e48be130f5be6626f45c917d3bcc9536e77300762fa9ab7825e0e29dea58f8e560b8d8a5be2ff4f94181eba2ef6a81251514f3ccf71e6894c1fefd535bced5ef54626f8494d7a99e4f89bc186a2aa2135b1ef512a0a7de2c02e83c375728fb0ef1fd0a90c0423a3b60551e6d6d9c5ea287fda8b31b2821d5bfcea31d377cdf23e75d562fbd63f71ff46057074e2bcd5c8ddd61bff40609dc6a48914ce02ef2de87410edd7e1459921493ce0541c23140e7611770a2e780117da01942e82a4badcce933527322ee78ecb81bd77124825f465e6fc7fe6c6d35b696bf48c76253a37d65e2d05e4a93132d4d6c2f0608991e45b9d1aeea62c2aa096a47737962a9273a290150b23369cfe872a4e17c81ceac7ec83ae2b2c5f4cb5286a9093465d67496168e5c245371b710170d679cf27b7c7442bee9d12d05387374991fd965a3ff71f45de81cb5cf3a4dcb72dd4fdb680e2cfc3c65bb4110d5565a42b722e29a40a63ba1dc5a3ffbc8a25632f6e20755bbaeec459e425fd5f233a51006136ad4bcc3d583900e44802b43ac0276d065f8bd6092d769a394bec35298d175c19e7153b008ebc7d22a87ea9502e21e4cba108a76d2c55b78aa32b53d2660e82f380fbd95b6c5ca6011709bc86955820f14076ce089f23e034e60c06606f71a5e9eca1e0eeabe33f643713e08a3040af6de01d612666605eedd6d7bed50951f846fded02b0028b8281cc663c6a51149048be904ad3352fb3f71dc6ac17838d86f39fc9ce1311cb4e9d6d85dd258c1ead8427d1ab085fa8732476302816826290681b6c66cc4c0b5e6f9fb5d7b8bcba0dcbba602105adac7257ab3cd960c438c56aa12093227af28ab020e0d556b3e3eaf907422e425b5e313ee9646d0998abe39639a9ebcc0ea1e22b1d7519fe0925bf8b969753357aa8a94cc9c23a77778f06d3f6143b4a85c41aeeeb81ed6dcc5d6ee1bdf36e7e6bfb1c1c386caf90e4b001cb7152df4569a0dc44ab0dd86f095dac230c46169379fd225c5d0aee3b71921153d7e9c28d518ac0cfcf5aa125acbaa46811f94d78f9bee30619f66ed23ca524c950d3c6f3f0ab850737234aa47dd746b2d909edfe25f885724c5330fdebe1b64b1ac79b90c2ddb5a29e52e672a0c55d346cd4cb1f913c8b936801fc573aa02e30a14f473f255168296ea4357b42850a9fa85eb2314ba2b38bcec5e632f2cf512bad114fe2f9d5eeaa5d868f73145c4e2570a4feb90e54b47277de678d7d88a5fcffd1d7f7caa99e1c56ead516da85b4ec77644b599f0d5d2edf32c7915da4d302e39fe49411e5d3c4cd672572871c215ec30691b67a0865054a62ecf6b595a181981d24fd4a556a2e88edc0477fb350b623055b1c1987a9e3811257069cc8cc270b8d82cde19c37d74355b5c299bb30c1ac100807ddfbef55d0b35c2a791b249feb87ea91cc61917ed43ac6c704eca2756e5f8c0b0c0140e4cef2e62052b89d6f168d8ba20c3426fb94b5e5baa9b467de5161a97731b20b4d9c807f2c027b1dad92f3c59b48c802b5f4339cedfb5621d79b9fb670b2c4e3e94b32d7d211e135a269e3aee59f79f397c82ace5aebc13735f5e515b4861bba357c0b62c7e5c0d536c1d1962c2195dc0d2824bb7a9391a16da71beaf60dccf315e9326ecf25aec6c7ed5823f999588e130351c67992cddc3b1a06e2aa650873efacc53994281809b5724e4039bd4811df2871b3f15bd50ae1cbee85bc137021da2dbe86e3ae299f326664e761f7f85a2b10981a6b46f0b2d5aa322cee9b7c226f895d64cf3e973e47abb0524d32fed978f96ec69d5b6127e932c7f26c9cefc6398982cae0be3b9e19d10a00fc082be95c3c54cdbb5d1d02c531732a7a23554ad5acbca0af269184321c3c689755a90cc1936cbb7a007104b9b7184552a492bb7c190e61d4ce1bb9286e8df5d6794c755fc5aef5ef47c6927b9b53c413dd014066f5de8b6d357cb653bfe7218c9f0bdce2ebe41e3d378a5703feac5b5b9ef5e46335edb128035911813f0856e654a7733d80742f8d2015af841927b088541f0f35761acd4271a32986bc75c51d51ea9aef9c46d3750c5c58c7e98f8eab923fd1439df124563187da7759fd225da7751174d6bdd58920f496a4c785ec2b526cbae73e5d40ee49dbee2938c897d608703dcf51d9ae36f6acec69af59979207ffd5cfcf7a464648ff60dd8c53ede92fcf02d1e75e4e7e0f83a908523f03595a3543faab090b67cb6a65ac767823d5af643e370c194dc7c68e8c470730ae7d5dc24e16349b8338ee4ca1af5326665833867d771bde8805378e1f9d1232963fb4994bf4a102afd0705cefeff4bd0ae080a83c24a4d7395031473bab06afc0ede828f839ab3966c3bb27ec3e8e14645f7f7a9e742ea4f0403a6649dee054e917a3fccabf5534ecc80943f406acfb9a0af30f99a22c54fe2ba947634c39f8a1ba47c5fd61fef5d28de2b5c94401f9beef72e79f0dd357b4e8445c7d22a917f2f24ab8d4a702d8e22f1b02cfd9b3ffef6a74e2f7f081dae9010bae1b77bf947a468afe0425288cde215b75192d7e2de11f2a25ad33f0029777415695fcc7b2ecb9ad901c0c374e62b4a328518a6ae52560b188102d4ebb1475d4cc16f3bea76866702ade19ff441854be1a25d908d1bb44d063378e99be65a73860afec336c5cc1ee20d60399ab438a2a80232ac53fdbee93d7cecf77dccd47d15801493aa4e3f18b78b93660dff00dcb4e3fdea9926885a7a9add0a2fd276122ef6b9c9040d743b4d90ee6e18f885f80b171df5a0e9e2e4854fd48d102a15569f98488cd93f3ecb170282e20a1100e0f7ad5b7ca2970ed2d40dfe06c7746c6fa8408d98c92474248d93266113f28dc55706ee9ca01b9ea3e6a0c0446733791496a4d19f22b70bfea4b2d490ef1d0443eb569a754a41e7d259c8cd918d9b2e5de0861f6afde9a8b202215959f9312e5bcf313dbe5c62c451e3cd339cb3ea977b00ce03d5fb75982544deb18e615b80bafbe58ccb6a35aee3115f1904b61c8f44b1ea422196392b6b82ae8d6b261af6fb4cdd32c4f0b45fa4a8ce57e5be2ab9fd1e044df937fdb68ca9f44c58fc2ef2f1b94f6a179320dc49c6fd6ce946d8f06ba9916768af3455470bd80a930aa15b904580284c416653521cf784a60b0ce97a946b7a3604cc5fc1d3c26353833b26f9033ed73be64635d4d88b0d44027fef9944bcefc74dabe0fd9a9856ef3fafab76d782f509fb0e93479afeab0100f0568ca8afabb5af1512bcb9e777ac65fe233c14515e6aa82b3e9e5e8a9c07ffebbaa8bf346ce52d0ba7ab638ffcc50c70e4536edbb83dbaf00d838e950f8a2b9fc6e601934b05c1569296d4a7bbdb7774c8a49d6dcbf5da340009cc38835c136aaf853658cadf691a05ca120c43b119d322b8922182310233d7593c1037db8cd857a11bc7e25d40db13f4419a707294b4eafaa51d85f88592be178ff735173d19dff50134f1f9494308cabbfa8d564f3dec1c3be00ace62de458ace541551aad67199619e6f1d4e6eaaef49583113c7b591caef876ce49e5205c525e03a7bad5824b8cde00dfed865a841c3d2722680786e2af0de59c0585a44e29a618918cdbd7cb68f4a447ee80104311d04b656528e6323edd94000e09f6057ab3af14af80c093ff3526a6325b4195fe7b9b82ef305669965f5b5c601d22d9575b859ff61775f9f645ff7af4a37d89b18f0fdb98d868e5db20d80d0976ca82be9b9ce865af18906c6e5ef113c616fe402b055e5417fb66332ffbd1de6a6534e04cd356c255dfa23c2673873157eb8d0f4b8be4e8a953d0283693ff889bdd781d7e2865b6d9c7d84921e5bf21b53f4db74152f8fc53240da5cf647b055addb44611ad74369de2955f9435931f728797c2e3b73d11c08fcf56a473fd9f9ebf0dfbfd97f963eef07541cc2344e920838ad7f1d6593beafdc4b9b224fa288bea8e6715aaf5a33fa28d3fe2758513573b5bf99442500b33d628e6db1f6c0c360a55fd358130ed6e3fa97953f75df0a9e83f80f76cf67fd3567cd1f7ad307757f7f14297abf747b15f112b4e9010d6dbe340d5eef9079d3220ec8be79bef914c04280594d28585cf33ad307ea983cbd29e296024b851ce3fc86418bfa1ff2c6a3cbc22971bbf0ff0036481cde1528df144040dc203413569aa89911a42024002b3ad940ddb6fd92ff1e2348da65eeeb5eafe2ba657f2e88b28aaa219b21f9a61de73dbeb7f8eb43a640c120eed2723281639b3957209a6a5f074ad10c667bd84abecba24d4ad012c7aa1938b30714c8b17cf4dd64ba9100e2708c14fabc18824c1e189a196a48c89e791c2e5c1bd77c1c50fa6bd137e9f282bdd884c97175a56945f95e4f0958c71b7c88deace9239dde6875f9d99283f25712953b562ff3f5274d311a51ad5ab9dd0a3da44c4790507e9310bc47f0e0e18246f29891623ef7348ec46e9f8bf73c698c396026ccaf6c539f62143049e5e8662a57181433f52cb16264387527b3910eab4dbf1c9b70db9df210c0c6fcb01d657f5c53fa9193794fe6342cdc29e9ae065a3a12c7c0fe9da01a2d108f31df0b43f17f708d18fc493e0f1563fca1e98ab1497aac800ac73ee7ba888af7df4c2f4d6f878a41a099150cd47ed80dc200285db151353398da6d215fd9b292f4fd097d25640585ad539dc953c9e6735af5b04bb63596d0d64f17c4a502a773ed8d6cd0aad6aa8c1def1f8d502f0f59cbf522498f5077b95ab8cd3f643987b131e5186e490a1139214a5145f4d4883f960c9d9fd036d749b049c890ea80f8ef47399f9ba4a5f4f92d311f4509cbb77002d3303cd332a52bd2b30cd598b99ef76847106b16d73d7012a3cd0ccc0834f1aca120dc757e11ede8196f3415584d8cb2331a626ddc1300e65622f8f6735be2c1e0c342018eb21d21433695f7fb6d86ecede8b1553065643c720c4b3021b3de3d46092b3e8887ab7f269db4d69089719d543fe298e68894bce1fc662ec17dc480ae1238e1bec392f7e114b92d80845f6bf6b1c9389e0b683eeb11bec6366c9169a6add11d81ba07d293427d36cd8fce2aacc57ef62bce87fd7e6db2a83bc04a6510648b6c4a036edcde1dc39881ddfa8ba063bfd2643a088e031d8e21f00877cc84e026f34c9d254f228c8dcf22367f34cfda6d6f69b11924ef6680800cd6a7c5c3a9aa6a87d690f41eb0d670b1597edbd9361b3989fbe0206cbdfbea76abbafcfb3250ba068711527a0d2d7f032f277bba204551891e947aba21bf2f2a09ecb9dc8ebe1df636ac3aeb5f2d817c105bd1e07151cc2486e6f3d51bec2fbc9283c9baa360c1525905ef9b3707fa497b18325bdccec132e636c23f740a55eb638f756dc71f77849d999081831853c4031eb2e64b02b232bfc82fc437b63b95746722ba0cede8f70df221bfaa8b2360cc76546185a4535f55e3bd3060e6deccec85b59cadf266d0a9230b09f7d7cbe3516c55f614ba42465dc2889249850df8e4728c24e8b303e0d4d65be2e0ba25e959e4386ec499f8e5a810b2547bfebacc38fe013153a922cbf9596255b2594b51f459606bb195a7a0796a50a661628a7fcfb364ff9c00449a09575858905a12348cba1e2688e4c80b5d991f6ed98ad7f08038db6c0c0337199d0e1ef45a8fe28324bcd82d855213bfe991d899d7a461d81ec0d0547702a35b2f45a09910390222b1d7ccd898a8b80023de07b0b59bea0678b463be10d21656fa81627a8eafe1c32c2e7e18d23990663327304a685a06c7d62d729ee6a3b48c13f8ffd069010912383cc6ec4f101307519a5b81822d659525f0df1421c368f962fa2d855f8ffb366af5a8e8898d71604a15dd68775243eb94d43d79437aac63a3feb753f0e27db7ffa78067e9dc5ae6049541d691a88833de520a406025aa3ebbb1dd858107e4a3cab3adffa0920db25e8d22442bd606576b3434002fb574c2b6009719f7d2d4342a3e8f6cbdc8e8607c255d270fcea71d1d4a076fb04767b09fea458b84ab049a18b3d27bf6ad504148d84ae5da099a4dfa1fe22e11f930091aad085a01d6648706210f8d52ce9a4b24d576718e5d0f8c2539ec05b7d3be275abd132bedda6f53c3c8271f8ec809a83411183f33e981d2e382e6af5337b2fb359b2e5b70f8ed7395eee11e9f6dda5725ef8d1ef5564288b1c195cb1f9c604f1ad482d852b05bc694cace301b45c1dec2b482a6e248fed5610a6ed08c1f2454772f9be6cd54f1baf5f68a6629d29c8eba97b15ea9c389814a4dfe2cb853538bb0c987bbeb9019353340708ea772486469bc8ba6ea0a7c8062ae080ea2c9f3f7e0dc056c9c715db0b640bbe2d085a456462f99263cd02bace94e3017436ad845ec93db0bd699ad692fa334e17b3fbe13640891cbeeaeea1eef842e500b838b290c7d958c94499911905c503b6e0bb4fd5204340fdcc4cf70bffb4a61df842c8f2b8ccd183ce070d711afa33655e948080273c57e186d0e3c458431504236905d10180727e7f496cef8027f724ec737c36a8ed65bee3a1a7eeee5025d50bd718e95b84d58340b3964b7be929e6fc04641d8970e40726f69a2748db480db7335a6193ac114ae4e817c90350823f9bceffbcdfbfa6c1fec85b7b4336d64b25379e2da245f74c534027f9150498dbfde0f962ed32ad06e5156d85cbb3da61b5af787a3ea3b19beb2cd5b297cdb29a79920012aad5e1fa2b752f281c45963a9f63914e7ce9789d7e7e92e60913001cee3e8161f734e36838a25e1efa49ebbd5c791935821effedce924a145b8f4ffe40c3534ccef31f87b7945700da90e49ff14d51d6f6721e23c5ef0cd7deff46517af41b70d0d78787aec0e03e780df77b64660ea482ef17a4882bc801add750b4d4e1930010282a99860a8dcc32114ad8328b8af78428870b924c3a7f417f144d75eefcdaac749103e1e194eb168683cedaef94284917363ab828561c5d1b8f9c686bd519829eb4e54f4461f1fdce0b30b074a82860405470ebb76640744a7f782014ed60c7d6528eb55e87d612fe4dbe713b674b4fa0f167b771ccbe49477d61202d8981864480a50d8303f3b927603c7197be7e04df62c9b38cd4b420f22244b6cbea08b7106b113a457b5f81c1dcdb34df1cc6877bf0e5acbbcaf61b384ff193a2c85ed7cf1e08b884c000e23297de51c54b5fe364843952c528c1f1aec7da0c131ef1619e202ff2b09ea28d66c06a6b14231db785033dc0c23fd72b5199af6fe0f2d28fb94594d6eaf0a5a0faa252ab699a35acda4436270a87bcf88c7eb254232e6e854bb9d56d21f94c2be9b459f52243b90e2a86ba37aed170955b3ce3016531c3c527afde09671a3602ef3d9ed93d56db19b08518cb3c3ebdbac9e290dbc222256b98539dd3b429c5cbb5efeb5aaa99e8d1c9dddb7c374e98e40ee8fc38c79ca609481f3ae401229140c9c17ab7d8ab84d2bbd1ef56c6d9ffb68758e4ca4462d5a838bd0f3d7e0ef39c7119e144f453cff989f8c01a8d441495a663ea0e9d5e2f682f8d79631497752d157c6aa2640d1a05e50c2ddd51e673df0eb48d979c140417abad631783a64e6b3c4456619adacf053eb0b846b106b7579b96543820f7897871fa811f449bdc5366d9c52883306f1e1660d9764f8f9e5976d789fa5f5e912d17b12afebfded97960f9c61b6d60d966dd4cf592027e7a15dcd9ce7cba61d5fc62276b0e9992aec56e289ed1aa77b2bae2ce37154673e1c1d18da4423b8464b85abc40e54128c810ebef64329d13aac16fd69eeda91b0c6be0bd5e94f62827e02e2a6a729c90af3ef492c82d923c0a400e44902b2cd6c673641b4532a3734188b9e93b4f5a2130795d62a07bfcc474674be2016467c2e1f2e6efa2b00343a4002baea9bc5cabc3c2d9345733da5484f95b9ff722f8ef7bcd3175f44ad0b1121061790ed04b607d86e72338654ccb4cf1b208d00d4ebedc4b7f4f5fb813b158e289b0093ac2956920db6a777660d61e8fc0bb280dc4d9eace5e60a734473e03949d92a54893bb4d785113424bcd500e35f4a0ebfde105c60ed1947354c2c885b13699f72cec5cd615765514aa15d252fa29c5f33ddee4b8ef25b6fd0257a1ab8360bd51334d526acba0529b90d9971e66e99da2f033beec7d7fd71d812478c783a33e5fa07e625196d558ac3d2efbbb2330efd45cea00ffc95baf30ee06275f1d735f08172b776d2e4cd284fe869745b442237695c73f314423fe891b8c1795475e438d6bf517f029bed0faeca5e83dddeedded108901546c41304096af6f8d8e6334857bd8317ea3bdccd67da2eed6aee3a94357af3d4f696523c81795036e73e47149dd7be6e146e8de664fa2f972cf3ea664b30baa09482024a4372184300172b40c569559aceced62b0bd41932389625ef792626440c2a08162fcf60768d62b43ec84f7ed7eefa717d1b2714cdc13e9b48cc36baa292daef5cf1cf8684c8e98a26e52012f833534f766c97c5d09338a79c1493a8da21fd2a9f701ba212ab4dd2731547ee6f99a90f80d06fda99956f18138ee262b761522a1b716a62d945f6554c335f3faea57193d4fedc2f390cde667ed9085a831bede8df2871fbab1c72f8cfb882018e6e3753fcc99c55d0c075add647982e7708b54587b62057e23b05815a318aa325eb6533269a498e2009e8b827be59d8f3dc8cb810e75dcf9b10c6c07ea1c7263b51f606e6cf4af8e8c577747fb45303b6bd3baad7c6305da91048603f90dd7ccec8ef5e8b8398acd3ddd59baa80ad3c4a1347e7826a66c7b56b0ced1de5e5697397f5dd775ad03a2c3635cf10850a353e0f5242e4289879124e33e7ea2bdff49630b4f47ea11973cfe8fee333c6cb8cf05f3e50da65082dec12316e0dfc8919871637c7f769fc0cd77a0f322f0db8d551a2a151bc475562ef351ef6fa2c198c9c9ebd22a7df9e31d82b1a26d763526e958c9341bd7634c074ca74c3440391634ac10aa831249bfb9322ceed71a30fb8095a83665ff3785aee7f1627ae3ed49decf9dfa90047c01f2c5ebe0360c8aa945d0d5afcaa28f51a4b92772d4c75c1dff730fe157b5cd7b4987a72478ee24fe3af2f94a6f24fe198ac02f07a4e6cdf720463512701bff340b529076f3525bd69ae8655a1c3261764c439953517c948a41ec452fb9409f190639fd0e074514ba1c53c3a7a582c62bd6f16b6ca1b801a1067867865e150889cb54eaf63c1af87d9e2b1fe8a8d03d390d839ed22d1ec1bbe6d6b09b97732d9d9625ada103863c1bad15f0398dd3db13529dead580440dc96fd3c80ce5c2c7c9daf0ffe49d5c352bbbd69de66023da6a09f71c2c836bec55466e035d6331a52bde45fa3a12e34161cec2f88d60592d441da822d9ebcd2fe4b3e9eb1f4fa4e54514e27c3d2ff24466c313f81dafdf9ace492ed50315fe1a2c3b1820112c73086a7af23793920e60d1a1f88b38fb23df3a47702cb7fc45742abed12e3cfc3841dc59752e2ac050a388cb30accfc21c77eba9caea913577e737b517e91798e28e393c61aa8773943577e267840f606f5e2f9b4c6c5616f69f5cefae0ca1702313a12816a16fc51adf0714158bcbace42a49ee6e49c3d0c3d0fbd1c8c9492b610a9aadf4086fe21c1533fd82c3ccb3742ab522008bfbc32b96871bb8b9695e72b8333960b1e468e7b9bc6ea3dd71db55f3f1344fccaa47102b9df4d976afee54d72e40d60a2ab8716f1d6d3df6a79a8814aee885ddf1d0a6f19e11caa6db0385a35c26a991b878ffbde42cd59232efb1c965c5016e5f91946e7731e5274c465e5eecd30b19576210a991ed8d0bddfd75031457cde57d2d4ddd1a0888c0b7d4cf6b96eb7eae1d1093cd013f063c5d974b3cef8c7e29f9262e95f9e3f6c5d146857b3e8623a5f48a2d92d80bcda70512d4e9364a81d34d9ce419b7578ce677c0ae87dd717dd591f5844ffb508a2eb471902ea28ff793a71c8a9c54e9d8af2723758be8719a58e2b91c1eaa5803fa28e32256ad61f55130e9ddc5f0e408f4b6994749567db67e63cb0cf60cb089ae77b62c18daaa6bfd052799f30f3e324d45e6b9420508d7fad8d4690425989b68950f5561ea5227e6f190ca851d7bed4a461822a18def6f143766e464cdf1da2491d5b7a883f16994b784d6bf805e2bf870a5e3964e5e70bacf2b93f5a46aad3a1c795c89be5ac655a4784e8333dccf9e5f36a6a0328706b7810b34a9078922165a114d570b468b2ce7d5438ca9c55d7268afe383be9462d5a5755323670203963945e9f61a28f9d023806624976e9846652ef4f65c4f2a7b429d0daadb275ccd6d8f91cf4522b4d5cf17e95ac62ea6e75fddd95ac901c97e4d7f45ef5b5fa94e473760d16db26380aac781033d489d0525e48cf451bbe79a4a1cea322c882e8abee8f4befe45ab009509a183eb21f9470b3f723584ec7b271bc5054ac09701c41dc48112cbd3f689b286b7d9fb2a298f531d9625219fdc8f7bbc259da0eef9bf5a520b5e2f2f477632d076dc843c35b3b4527d8c617a708dcb9a0e103a18f0626529e68622f9d8f98354140f956b49b5a5269248a94678c00a95ca423a67c21121081b6a5e54d74c9627c6f19bc899821344769224b151a9dc62f34d30dc4a727993d2844dc249d0ad487e344458a754a74a0f3c6d999a99c8846f548aa3019feb14a6f45ff0e7b197485412d3e42ddd9a40306ffd9650150d936756d15b9fb6a61152fa22145dddc9f8cffcc6bf158907482cababb1250755e0e78f5f47e6606eaaaaccd627ca3798fd000cef7d4397a116d1d5b7791b922c7bd838c9c2f52a0532006852e4500ab4bba161827b63dd9ac4437b1eb7d71591fbe96869fcbda8a1d54acb132e56d58e0d452a76e64a4961aadf31f5b822bb3b65082108f51454f7094df1ccee6db5561feadfc804403d1fa1ed35d5a52a645fd8d868faa3703b9c91b5ff1b2ff8540dffa15419a71574b2e05c81d4bfb868906df718b0fccb9df3512fed41f365fefa3cc214bcefc3491d4f3b81e47dcd9a5ed0c65599f2fa903db83749c31cb4cf7b95c0889014a7035bb0b5dcd25edb1f1e7cb17b5abb29f404aba970b392fabafa1cceb7d81734388670f103fa2a1d10f09f09895b7a8176709041faac0a9c9aa3473751ad842b234269a30c686de84aeb4e61ceb80e06fb95e261080e1201a6a02c8eaca934c2bd5ec19c817587efce7295a6b7ba8475129726858f84de74087d878a1690a9e0acb9a968ae819675b206df98524c8a954750235a9a13727831ba66e4ba78571a06992ab21f4b2c93678dd38144b7fe30ec1a86b825b0a03ac60f8f48a22619a68ddfa555470b61c9c3684204390a20db67952b0dacc369ad9355657bb1765bbe85e6e046a778d86e1ae4e8aba427c346dce1e9dc30684ea7fc5c6329785757d3797877ac7c9fbe2d8ad9e1a26b0d8e383575d16b867012088a156f6a128bf13f530abd54233d287a491d168077599c75e9276fb5a1764ef5e68d966f2043f00437fb340ce64554480ec2dbdedab48ab7e784f25cc622744dd8456160907a253b901e6d28ed5f91bfb1e3a2580c2c4a7f4dcc0c93ae54df3c7f864a25df6183ce47de8ba4a07b7eff888bc5840e3ea3573e72d7f23a415ba02cac06f049509b36428ee77cb2d7328f3b4ac80dfd936449fe9c4a82a33b06995820131f3f123824b0a68251b38207dfa873252d598d7284f5e7095bc04c2e24c7f9dc3720fed638477ec53dc94f0e69ef3327b3798643255d1950dd929e8701e495065043b293e226be403d664d88d067f2e00b6d8a0cb1c1092bda34472c9c6914eacea4e5cf08e79474d33817a4d33517cbded315b83b0fc4e1f6f14ee2d30a973c8a1c78774c7d09c5b53ad606618e3bb1e9e35b259c32c7bf808b34648f2e045da67efc6dbc19343b23a5fd2e5938948653fc525b968abc9d6a7dcc21aee51e82e59b8f5f4cb0b0475247cd024cface9a29d97545a23ca1d7a5cce22d0ebe0ba10d4c9cef3ad65c90a7a1f6ed905c9a605dcc817b8a459f847b17ae36faf50eda1e7b8af8193ce13dd64f11b348b6be6a479514e123c4e65ceb2259fa0cb2438f60d5687613f1688899bb478ec0ed756ace04929f931ed7270b91579e5cd07b19db74eb6b78a1b623cd108be765fe97b4e730d561daea381f64e1d9f5e50392f4aebf8e1ebbf8719823bf9e543b7a70bd1716b3d19f4bc60e1eaa8c532f55bdf77f38c5d7999f0b703cab4e968c3244003ca47d576eba921ef49791c395999c74ebd8612bf14f8abbbec352b5fc8d9ae210794d698ebc8b7b7171b5f665af05f1d6b72aabff6ef40a39697bc47124888870767c049dade7b136dbef65017a1d7db889900feb8ff6fe18df485cfc3f802f179310c82b0b7fc5d32dac5257cfc2acd30263cc35d8e39fddb831cf0b077428069648a0a7034d6000ba5c995edb1290ef296714e6cc1de4d37a6ac2ea620ff7a36e1001e8c606b6c178cb620488f7682823bea51c71a69206e9a4eb6a40269248becc4c4487bdc69828f4a27d2a1b5c0581175216eac08e7709d4a0df4e2476510351132bf445b368a767e59eb335c7e7881252798756983c49e3076ebe9b476e72fa42e685560d6c4bcb6c55ee2281e3fda9b8173fbb601079f61ecdad95e0f876fd09440937e871d0f9f8f5d249883a4c16dbb5bfbc1d0a5a08c17720bf97030c149ebedfe78c09e5296de0b9338b13e9eb273612dd6b0ddf9b8b251b90c63e5ab253cb93ac491f8e58cbc4248f19fb63219a48ed01e7bf762d4c36e51200e4ce3aac87cdb0120daeeabba71bcd27886025e0fc9b3697fd17dc0bcbd6a2828c90d6e5b6bb01f0cb935608eed3f933070f38c3cc305e14822812b2508b66231a135c754e1e69960eca82fec38517019be8c8cd3fa507b9537c8566165f2a22d26305ee04e4081bc106e388ce0c2c57c45a3c9f4dbd9a4376f17e9bbe0956df005cb36945360086a39e5bc352905c612a8603e52ac25118c13a9e6cc0298e5111d17eecda94e8d5cf1604464c902d5bc69958d39106691cf130e5f8289f5320631e22f6c7cffefe1458913b17fa7515dd7d4955f16094b4b70368031c4538241d1cb86883ab18a2da8abbd58f58e10491f4dfaed7aca897ffa85d8402d969f8090c8baf9796e24ddce312396d0acacc8a5dfdf8c600f27a1a8cc476b29b74133d5421afb9f6c9f30b148b77db35f4e1407cf7c1b97b53c9e1b612a5dbd212735b5105ff11f59b03baee8be62e54eac49a362b2527bfd7675b87af6fff90739d76ef7527706f837f0bbf1737a264bf62e670233c439d121dc56d54cf1b363db78b7a1afbd5fa4944a5dad53c6903d7d65ee311687ff9b0fb9ee3d81dc2a58743b4512ba5a02c14fa502054533a387f2607a5c7c5b586d46acb6a6e92ccab00d9540dd6571d2f960e1ef73c7a262c275adc0ba831dbc31a5f5913de38be43cf0ca003c644677cb827f039d717e0ca04bc12869cfb4f0f164687d592a0df6a91b48785d59d8ad5c8b0009a4e2c934ecebab41130d84ae67046ccfd829e03fe42159ab0e96f97fa907066e3db7dd0bccd35e43d3170a7ce881ad3958cb69451add75ee4a6f0091751d1361d7e125af24c52969ad7cdd92e9dd8b14147b7a607ca88b1622c2c20c98ae153b162fff287be57515f2e2db11f359656f181177e90a872402894094610f5ab278505da8289d5b57ae489aa8b51bda0a80fd3400cad63d2917c21da2b0622c67f11d839aef97a7f69d67bf1742ad895d13398801e7ca6df78c1322192ef4d194c931c53b5dd45776699dda70b6cffda9bd622d9108a58c865ae247b59c846cd6ab5b4d610f2e3e6e730f4d87ff17a92499d59fc8576f9dc08db0558a04956d74277d80838f769caeddf8f0040529d891a94bbe13d56d6ed78f6be4ef087c014048c65194de228187756a85ccb8c8755b3084f8263ce017a5e524e5faf658cacc789c9df6417caed4b015f35ebcd0bf8289f73b063f2a7adb702218ad62fa13a0882f3b2a0fe97fa2734bfdb3d0cfa2b9f35bc6b20c395b8ca34ac0ebab1317c563814df8c815ddc204ed5f8ba59460c8d853262fd6d7ffa0aed5e238c02580afe5091f44375d6de4a3b3c8e004512a663b915087230007a17d4fa31db16d3d8cc685af7d56459847d7f48024500b5d7949309da755aee3506a97bafb5e10fd862e3d1f798e2397a58b1ff46bb1bd05b2e9bcba9b68071e93c06f5ad04f8c3f612104dafa8d6e7f6f7b76e925512d0eed859719e729541c2a0a3bc4a7b3db89b12f636323369c485b4a6144f5f0054b529e6e082d0afeb9150e4c1bbda041233346b21b8965975c0b7477f304bbb868803f8b831c642aed2cba119174e9d102762d52820590545b2230aa8c4a65b84f1a8842444980067ad7e42643c0456396908d80d1145f88b785f35509a0a4d4806fdb4145188a9d5abf2f9f2859f63c372bee1d3ff08b9a03f6247f946b0db381946fa5526181a6e705b4c3c7c4ad3e5fbf67b1578756536a6aa91fc21326545b0202405d947aec0d72a56d196d5ebd62d3722d3b98fa90f8ca84acd854f5421b4d100974459df14cc14ce39430467513fa4952f4af6d534c259cd7ba970ac37bd5f979c4f1df0644762621ef50d3ea3214c38665de8c88cb2b08c7942f236e7970a83a7295967c3dc768af19ba0f70ce65877f67356d9bf192d88ff28d8a2fc4dbb20766c2757cdcf0edc4bb2bba2a6f63916ad0385ddadb68df9a0177ac16d49bae5da82d2d4f8072e11b1d1140411dfd9da0da0f0fc13bc261ed0051c306683893e3074049600c4de35da736fd1fc4d98db07786733a3cfca98b5cd89b997979ed72cf67fae4158a284cb61d19c31cbe582076018e57ad48a287d94584054cad3a3d3e859421d6dd49e159e6ee6856d71e447d8656e2582f3bbca53543a64210dba1baff8bc98536e46d18a06e6e3c1c64619353c04389a1db43b25a6c75f7c71b50650bf86858e90e40714fcf9436758c1da1a63486a2623ec889082aea3af7b1a7ea02fc91ee00db25a626801212849a8d8ee3ea367b3ea76adb3e054cecaad9b769daf937d57b24ba9cd3f21287fc39a36603623c94630bdf4c8a18ccd03e9d2877c55000c6eb186de9ae9c4a6edf2f41c2f277b0653e600d2db6714cd0fe4ee0761719736af57026658d8e2a5494e05e314d35e20d7eac7230c45ac786914b76245c5ea8009e50582b01202096348d5cec041bc072ebf0e60af7abb1677cc01600fc40fc519bb1503ac8d5c8f9e9008b1158d0f33f8173e6954a74ed241ba3daf63f25a9dd7c199fd8e09a77fa2b9d5aefa090a139fb336efc31d61b3216bcb7d45dc90ac2356e9a2f3db4e400b86057d374d96d44b2fc279b88deffb4d69b06a71b553d40d2734ca3d169b40795651c0427708b2a2b14b6eefe488c47a3529116b4925f706ad6c8b092174fd774e5ea86d62b774a742142d546237f4a78c6ab545157a5d24ae64393eb64ea95b81146b91da8369815e975460d9221b9553f16d45ce72dfeda88075f24b8432fe16ae2ae62f8fae2f3217c9c921a5764a529d1da1c77ba967952653783de7eb90510ef0bd0e50407fdfe0f4ea00eca555cbafb51cb35578cea5e7ed0f3ef892d27e34395d129fb07c30bc318b092712f5f4fa0c99346d05b044aa6ecf401aab823eee3565a5aed3532716985609dffa3e34a9a0b4b36e06e1652dafdb648630cfdac49e18faf59604f4b225c316b7d1368bf9e3c628c994cd0ca1a1169feb1fd4598349693700bc441ae12f9a820a9cece05bce68c38d60a0d91b5060609305e4f2b7ff5892e88b4da066cab834cebb31a715d93e8df7738adbae57d59a362a52d6010df4740e5622847dc4cd7fbb59ffe7bac447c765cb0854e11f24ff9470f662ff50236661ecd081fe1180a4979b52dec5d35279ccf2ee79dfcbf3aa629f1334f48a798b27bfe1afcbd6aaad2012806b34cbf9379ee038ba945d59a61a06ee7c969578c2e6f07473747010daa602e8ea4d9c4e7d4c7258fc1aa3d4f36ad11b572b647c05b3a85c4d66be7cf159f58b22348cbf1ea65c7ab432e49d04034fa9e74c4bce48e28f4b6652e78f94363a19f2742d472c3ce6cfda746156c96e207098ed14b0f34efa7db76b517abfefbc01d0d74d21fc6adcbfe9ef92090b743e86530f1bcb083dc22a8aabc8334b5b5a76bd3d5b94b20984709200e46aab49901fb9b89c01ce3671131974f7de572f5ef9bc7059f4acf1062a3c79fd0ebe4a6a4dc3fcc24b5c1469d4a3ff3228b1d48af89f1bb8cb2a3ce35df712e486d75d27e59df9e67563e14a2d251536014912ffe3d0ab317c3ef672a0f4b712e7b0dc775d74e19b6a7add7d52b6e062bc69f5f97c1a3a07570031430aaba2fce441f52aa8284a3ce6078fce5d1425f0591d54413d5a4a3b3527100d210f4150b69f0a3ff06525c676ab4fbae4b1e1621a85ec0faa41fe414794f53edd1c05e2a16c8483fec2283fe5b6ee9e03aba3b2869d4387e703b3c514429ad935f60e3fb1087046f83be8e5e299e86d0cfd479e351f0753e719e5765fdbf80ada8d76d9a653ed7034aaa99542a02640e8103848f4393822dd40b8ebfc435812af192d8d3a042331c5ccac48ca8b0dfbebcf018bab4c9e16f1c7422c0dca13b2690225986e74a28e80ab876dac498b5ddaa603ecbbf82d5ed2342b68620e80c100cf3b72355503abfe28050c9a9e47b1668304baa9f94ea2d18e3cd8a907251bfac4a5da938a5b70b543ada966c7834d67b383ada5dbb28e0c95214d38fe25968f33f8715ffd3a8caca923506557ba74d90a049f710f67c5132b99d555992f72ba3c8823550cdeacd3606ad5205676c30fb62f2111c751a0e4375738547cb4d20dda65764974ab5e2461e92dd880f88f9ae5e21b839b2464e8c9db4730012ceaae52b7f4f5b773f60ad17be741f7cee5586c00ecdaa3b19e57538c0be1f7cfb0ed3827027239e6c8d763fc569db14d033a771df2d601db5070e9d6b80f763d8763d90c9f1dbf6bbab6cc000583f8b188f244c489187d6ff14b78928fab4a4dd2ff6429bfb2dc8a9466e85f90806940bf18e4adfaeb486e4f2db1c41f809ddaebec00b64aa7ea91f5c020d1c5ef9fb5565e2e39b5246b2b221c7d27fac3852d3608dcaa8844f9cd321d7b117850329464d1668d0ee38356761de7464509980551df7a6e959dec6f7ba29b4315e43ff59dcff927897ce53036d9bc5a317ed5bff55cf3aa341682a07b26cc7cc923bcfbcc361dd7e954d988ed5d3a3bb3bb905229a20a76757175b97f361c3307bd6cb4e81479c39decccf40d05c64cfb4cd2917eddb7ad96cff13715f8fc5ffcdc95e6fd4f5c015ecf759df76765646f375541bc30265f6913ae00cc82d4a694ec2a168d5e1cbc450ddd7fe3938e66d5de1268330699a913fbb5a96a8fea81207b9a5f2f4dd8c9c248b774eb632b566b50297dfabc2d193c0daa2b579730a02f4cf801d08435f4f4d07adf51732e4b5819d22fd6c9b1e1adef3dd52d162c6f42fa3b403f96672a3d55f3833ebc821b2b5bf7a6b26dc1b080fa064fe77a9554269f42d942caeaf39361758e8ba8472068a7019ab531f8e9b17b066c3ee2b9ac48e9b620ff244c2ee6ea8a819c78669383597a8f998016123b7a69fdf4eb4415d67bdef1d25c6ff95070d655325231ce268ab030461ef054d388f4d4da346fda29d6342e8b837d7ff2d4a858804c7c29442fcfd9b479c6217725c214ff4d9c2fc839028687fcc3458612adfee2b85cc912fdbaff19214d319a540e9ecd2b15b107931a9d1947e83937a78378f74719b83a4a5c76c31600f3dcbe1e26b7b4864b798abcf02a796a2afaeedc8b07146bcdcfef2c992abb1a0daf576bcbb2b33f48249adbabededda117625bf206a75cfe81bcd18e8c1ca3859cb8ebb0085c28fbf477d434799901286e974857755e54290cfe3335d356d7301ecae4bdc32cdb60ddceef05b7abcf861cb2a472732d8afc143632b8beea15981cf2ee1fcf89747cc8feb5b06a8282ca20232cfc1322d14d86ada25b0da6eea3369bb0a071ce52d0bd85800821e97f0b9bae2dfd9916b4f71dc8d6ff27a8686475a934155879f0fa7f3f998769c7097c9628aa87e91f0dd0dfa10659fef2bc0255e47f557d66d7a2ad941f1556be4432625acbf52ee46936cf89bdec6be8057553e53f4389525dc47e70cc8d14a7c3dce69bc453a1de0d343d0c5be7c064488dcdb2ffbbdd92d85f264eae94dec86bc3cbe33201dcef0135bd2e5299c9ade0d157c8815c17c99a69480dbbc5742aa1b4ec2edffa15f7206374635cb6e5d45fd73c326df13cbb8ae50fccc3483fd176eb1be74dee881f7ffcdaaf19cee19cc8081e62d90fa758d4d28e8b1555f57246b61f83b3868c8422f26472f9d8d49c906da8f72667bc4ffb8540ff22488091e1784904e8c1973b063668195c93fb6d85f047831f4d9a39d2c0353f88289c65a2fe628f893b7d128bc843c1df7a0eac23256523152efcaa719464fa35d3bedc56fbd05b168975dee138a67d5a28c0fe11edc31393c9b5283413fee2ddd72c8e909320e992ff37b554b220baf1d2eb2514643748b705a1d95f9b12a4d38e80e72bd95c3ec732ae49260f166e4abbe318578138e105333b6d9d7fbf8e2bdcbd0cd6d299fbb4589f220f94630c449f165555bd4586f2e9d8240f707ada28cccbed1049ee4b46da5f4327a31123cbf3bcb04e7d051396763cfa1c9efbda86351d5d6d1c2a0b1bfe6a4ffb6b196a666b3b3f344bac1c348b7bc000f7dc90d75b2befeaf833046ce02016cdba125a892b9e760992aec5d5b561ee849961f833d95b167b47e0816ec0d7e74da7b3bd94d99c22bf573eab0b0d434382298f7fce64b5a957395c04b0cc3f4f49dc929abfcdc51653e15ff15f5963d58a20e15ca7745c40e9d1ab2dadfbddaa4beebaf46f2283cc3cfd7d7236b3cac2987d3286ec85e2c6b7e076a66f3ec32670906905983ca644640a9d63a63411ea086cd7e903418f95241f56ea5676e2b7d86ff7fd05f1a516667f874c403e133cde07261a0ba6967a79627cbb02d9127f30fe89dbcf586149e7918c8c5b227257ba79fa8141015892b4aa2da4a5afa54844623006fa8858a6c6543a7f2e714d3586fb4766cf69aef58f6030b59962d9c65802680f1301750bbe24f796568111e398ea4893cf7a9522b0df7a9e7920565ea15a1c13e616273f3725e42dc70535e63cda449b854049a39a910d97b2b6841d60216aeed2018895598e24eae485c40dab0e68309d21c2384c20a4a5c6b76f3779b2011bc04410043c52dfe31d60ade5f90fb7d12b021f79085fa1919adf0673b5f0f683d6c2f88a8740511f536bf1574c25a9ca77b10f83abbd759dcd1dece9f00a0cf60bc04ae6d3708871ee6843d50176b0d3e29209e58e5c9c8c1906c97e2dcf218c1883dcd5842bc97a0543a8e2f87cc490432e36f6753b48f022fcb7f75207e7f976d0b0124f918bd2debd1d4850d15a65c7b6409e7acb347854b553f17a3cc252681ec8e752b9dda0dda17f878ce65c5210f8e868038f1b3ee2efb5750fed6eec8e97ec8ea48910f1c9561724e74d2fd372116d2d211ad9b7c485cd65b67f5f6e74f53b8f9b9d6ba7c8f64f16b2f87f1c04e6d68a33b02991c791369dfac5fb5978a92f6d3de7155e23aa49dd5e581c9c980a8ca0f1afff6b2e833052debdabfe338f1bd218f2af11259df6414311a8a463992b2f4038b67933f2cdaa227f757b448dd0d427766c84d6c8ce40726fcc10800bf0ff74ccf7bddb99c3b738a2ea970831dba649fcc8e0c56cca88fe4f8c1b2e457ea8d0d071d748f797075f94e661fc5f6ba0773bb4ec9650d866885bc22bc1d8b74bacbff14c60b935ec26308549c2086599835e3acc1cfe0a1bcaa4f274c0f3dd6ff25fc8f00df4f5188a1a3f2f30d3ab75615b0c117a79e22f01bcee62e8de5b6f6c3abf01ca3c0ca2315a6b30636d0a8e8484b97635f7d5497fbfad7c608d912be7f8d05e4f0ed653af27e5321eb37d371224b1b22994a26abd967ab6ab233c6a6b072114673fa5c4a5201dc5929f2c24e8c59057543e9cf6c5852f31587e52b982758caa21c30c0bf200f37be093fe441f1dc1c1177182863b7811088b833c7b5fbc63cddbb95219ac2a7d3b226ea3037b40bc7853698aa649fd917e656b362f2893c447cf4c5f5d80207505d49761350d1cd8b72491c0908a59db3dcb64082a9ff4b168330d5e282ae17f474328324dcbe4a93a3a63dc14a24240597cfc2180bebb33aa5f143d8a3c3842e9b8d347ab1049bdce206a43fef9030d3c7d26240630bcccfca8b524b46a0072f5944e65cf039e03b5de9c384a6e740951b7ba2d2b5427ce8cb7ee68d9b0f8b58de2b3e9de4735110738ccec11aec3f158902c0b35231a5eefd0577bbfa0972ce9f7aebdf64fe1acdc4c69a244b868ad0fcc0903e8e45efa7487ffb17280608b6ffa1f09eb8acb570612ca82a886f1849d01c6a7524e66f2365cfdbf40044325dda550d64e9639d4c275a10eb254d1b23867a9bc9a7faba2df260b3d4cb158b3ba049f5ac57791527da2cc496b7eec15acaa642be9690d850be5ed218db36068380ec13761d2d158ed74495b833f66201853c7987c11ac69ee88cf6e4c1edbcd0a25382ac66ab27e006b2d167957b652bee45b6e8d5b1243f32832c7cad46207d0f9dbb3a36637c6a48c6e1e4781d8810b63b95c223da1a315cc4226614343eb6407bbbb0fb06bf2e66528fb438940768bd6e950411a512459bd532752dc1e7175bab74afde76dd084cdad07117c21740245ba15e003a74896d53895b4b8926caaf7ae8eac93ebd0f29b768fe3aa66a3af81891bbe03e57b7f8b383d21dd5e00b52b0a67a9099aeda3c39a819239725bc4f28e7273a52f967a313bd241b5bb9f1f56220d93c674189180d86600180982aff2c22eb59164cd88e03eb6c338af7646adc79a245783ab46d7c697cf7ca100a95b7f2210098e1e110b32c27812116eb5b8b3aca285a589af1be85ec44360f38680853dee2fde1a5073ae66d94ae98ab7f84df1cd6fbe230f3ae26b25a3880aa0c06203e6211439c0f67b1cdfd7f191c21a66730cefa91b43a95a759837e2915b913a2ec230a328b3164da1c9584159c272f7e4eb8a12f2b03fbad250f48ccaa1d76286c1a7160ae14830077f33ff606338f73f3117e0045b45f1620653290296a8e7488805b332f1757d95fb346d7cbd9cc15801156a4d06c66556fe7b886531b292c9a9c00b020a589af894644538e63024b18490bbff6f21b0d269ee4d3d3fd6af63c88213da445c207db10ec6044ce76e9a330d74c2f683c6f9e399e39db4392f9776bc44f109353c397a2d77f9d9133d2d7b61b11aeb1b90e39d608ac4b86396d9984ba3c254ca27e22d45c0bb4dc18dc0c8a55a28a7648571dc78859a3d78e68bec4528ed1d4503a20bfaea33ee2f9a3e5b61d081b0511c173faacc1ebdbd2e3704749483b0cad596479030b464b7159caa23663418a5e0f6923d64d399cd48c3b9cc23b1f968963a65e72fbf9725a99e3260004ed9240523b89905d32bbb6b927ce473c10bbc509e722e6102eb4875bb011c0f749422dfad887401936b09ef926368d70c3eb2e8caf02eaaa3d84a957f8811c8a8bffac2adbceac3524fd94a9d76d63824f49b332635ef01924f1674d2b1f58bdb562fe38c9a5122a56fc7d22125401321edb8c3c97f6e6eb9452eff5773ec5061c07fccb7a95e722955d7b1d3892720bdabb45a9ee1d966550b435c66f414b2173cd589004ab9410c1d1d14f5f0d318e644f67d589015f0325bfa139c4cb75a9a4052cc8e18ac3db81489bc5ff33a5a89d2b6dec6b4146420aa7f8302b502c08e935261e1c830da202911d744c50560f85119aa92352145240f9c010a2b01fcceaeab2617a04c359d53b0bc79b741e793b00ca62178aae173b3fc12ba949f79bcd606512b76982d9dd1a0ebc829eb69de095e3ee832c162ad8a94e14a2b1123c3e3c880936c11bba86027b934cb294e6abf6f43d4a18308ee4730d570fe6941dd26ae59b7a0f9e51e5db8795d4fc944bfe982579676742563d2ca5d81359ae345a1413a8d03d86c7ec5a81dbde1031716176966b19cee14c9d23bfc27057890309d32a93b00c681eba694f2225bfc7f968846232b83f21ab639ce0621d486400699d56d67bd8c06017ddbd57b8023ac375cbec827e5a8e920130fa4c46096888e9a9c73226ca8a9a5810997a7001155de002fdc62e1a36d1a5d127f094cdc4f5a411719f85b843afa0a4a575d419c4b54aa25017ee9e4ed52ac9589cd84b9144025acbda6c04d32a9a8dd5b1918250eecbae5e6129bbca39af339eb79348144b9cf4b12edcbcd8c8f25ea01bb78ec86be5a2d1ee2419cf72c84f81e6ccc72686a0c7ec6903770c86692b1d57d24a306d7c442f5bd152bbe484886fb6595bd3a5f8e8c4ede717dbf1b79b1b7dc13001d690f79dfef58a9f750afe3879dcc55220429476e3a5ab0762fb2a80e4a7a1c3f8b8722e9f432c450f11ff7336217124982be48a54475ddc8e88f97bead24ec58c031f547a81ac89c1995dc69cced51f1c1fe04e1595db97e186a74353c84ea0abe717c53d25e8be08e9e0aaaf0f1f6c651ed8cf39b72b276955bc56c8e7da5992d77b616006976f18e4c50ac0b64304993e8536ce22db6d35359e249dc02932842b064da4968990032b902e309bfb738a4b19f421f9dd5e6971ba582433003216cbd8703d0404d19d435a7ee5489f76e4cb29bac31ce753a57c94f9bb8a2c477aff0c2160c332bdd8226db9cbc4cf841f9228860a153563327810a0da3e4347bb3bc7e49604d2a724e7c830247de1222446eec5c7963419d9ac7dd537e4f9258e6cb8996b588b4939997155cfdd3aa3d02e50fe55812b670b45b57ddc6568aa79d3c712f5e1b0018d465354bb27a7c246efde5bad72e16b74edfcd981e550eb96554a9b9452f5d1bab977259d2ffef2e0738cdd6c895e7a9cff6b17adbf606f89de9567f3a1c12c914f20fb65ac482c039a8251b98d0e5a4a05119e39cc195e5f5fc25262fd9fd674d8772ecca97eae32fcd702c01b5f5218f624ee592ee859dbc189183ed4eb3dddaef6b810ca0bb281fedca42cce2dab0badf41fc657fcb9923dba6e8fe22871dd1455e2a36751cf3027cc9a893a18c18f4007ad43d3149e00fb817a265ffec97fb66dc96a2b69e4dad44817c76be89886672bf67c08f13f08a5dd0cb422c935e68ac5955d612f19d2b3b4cdd8969f0b12baca929744c59f8232489554f1a810389a35532d08d107d9d6429a0b7c94acb4a3d410bfdaaaa66a3f91163dc644055ba0dbed3bb3d968a30ae4ba2724d11cda6942bd2d68d9d6545966170d4955ae52362a18ad98c1583b57cefc36c199ee26b6ffb286119c018723ee3e3265698d8b6f56e303e536ba44851ad6d0e43f1ed041cf93b1a6bfb7c5698436f199135fa35241724b5aa26bf33e16a1429c670c34dcdd551f539c6d683062c8ea9dc04655c07c75256175698891ae19c4943fd5b29d0304bf65a9d8e08090f16e0686f526ec50be78b30a0f19cb663d357f65dbf06e89fd2a067aa0446bb2704fbd93cb7010a6608f51b93d6e4cd6cd7a2f9292bdb36ee7b5301d44c0303e201fad5a6f15fdb03ef03dde941e27e8bb5399eb2d52fc641b24c57ec93269b1a4dc407789e6123d94b34f062daeb9d5f6300a49943f70baad3651d6270ef4ac06325c9bbf10a3fc22c488d4ff25e46b8aced550b56e14df3d7e17a7797718e3a5c3e59d3bf63b9ae2e65ab9ba28efc4f9e372912963c3b701ba5ce190e40293dc94932766e7052c2cc87f91b7b71fd2e9509b07904b3b6f50d0c46ed03f3605e46b32e15380a17f73a940ef36b1afc0bee84b8b4eecb68048479e4d8f4ec5920c128b11105b0d9ba9bc2cee65df935f6a2deef702da652824a692defaad2865caf7fae8eba2f8b970149cce5820b78b2eb7148743b8cd21ea16d34abced13edd30c260e254d9beb74deb84307839de00b43ded939ea017634025f21ff8a51bb3b5db9fa403dcc08c685b9d9bbe78c65ac7f59409901088a87db9b8cf522471bfce4896c61bda034d6a050b8b4977970ac6c21e89377181f9cbab430a3fd518cbf685469303b166b5e011be182890396671a01b515418bed2f527913b82db6cecba99e8531d51b8a967dcdf5e887be8af4aa3b17c192decee111a991e687bbc3dffd03d0e27a966a35d9279cb705845cd5933243a161481600e3af7fb69f06c91cfc72b1a89b8e65e58b31660b1cdc2eb4d73cdf0f6250e7be79f652837256134f8e749150e45a9c1447ebb721894b6069eafab498a915944160e4ce3e8cf860cd8806911313232d21f10477faf585fe5bff9ac5ddcd39e3918562341005018cf09665752f484def2cc0491cb935f9d5ec730fee2f37d3ce4106e1738111f24a905891a4aaace58c4290f43b6e110fb853811962642f095e22895ad177b749d5d80d04d656a6505abc0ea9b5f7109dabed7eeb58d3775ebe1cf11a87987f2b40f9a20f2bbbd7db5cef166d98c6e5c77c57a0f66c697d3c9ded699a13c8d07212f3b91e2ff1f7145cee35f4f899da3cf1c477082f9ecf808676687f3afbd29ec7d9add96aaebc839f90080ea79048540dce60f0ac6d26cd831d2dddd1d03f186fe66fe820c6d77f7ab52bac25d5ba0a66e64d5f17e75b67ee3537c29c5016a5e1ff65cd1079dd4d22a54f2e9a020f06b4039e8fd522228b7e1abc7b8d21ea35f0dd596cbb8c7de3d89989a6aebf0c2b0626bcb976d14502b68ce5a19dff4b3e9ebff282d49cac4bf3a6c1e07145ab09d7670af2f90319f287cb4038b768808bddbc5f017a3237c1604245ba1a761855390d592ffe32fa286ac722d9c0b1f137039621c2f574e9ab548708f801d49cf37cca87536f3158cbf0c938768beecbb7f76d7086838a4fe4358b4bb24ecf7a33a9f45e918ab6ad7adb84603d0c1dade8dfc82273eabcffc5fa6f2ed8c8c95385d4bd343c22298e44a41a0ef28727a822495aa230fecf0c42de12977df5fed8592cf3cec7c0687d1980ce9665c7a10fb448052a689a2bbacc846dfc2c8b4ef5a18c48e2e54a635837f9739226749def7b7d77ed388988ec2302753cd1064d64920c6daf78cef6be917d31886bbc82c25b281b02efe65457ebfaada9a6a8e89ea76ca05f54d367d4b6209499c38cfa8c76b647dd4deb64456350171e147d3bd92efdce11189e8a760d02b74bc75115fe9078bfe92adb79049dbb69a2f289c3dd86744eb5e1ac9bb8b0439ae5f4fb086eb327fb4135fadc51d73d5d37a5d630321366b08cc0070d2d6114fe6fd9462f55e6e2cdd2afb17534ceae497ef783bbf825883044757d85024e9b9277f1543873014256b81e7769a7f31d7f2926ee71ab8b58f8734801fbe438df2f2bbdfd6518f2abffbb807e63152b47ccdd025a9c7b7524ed658ae8a482e9d6773caaf0ebd87d094c833ab165ea980349826a4f8791044996fd9562633ef003f990d6cbd93776940b159805cd7218c766b6361ed9f715c1f79726bfd1b93f931c7f705f13e7d99caa93731fca3b3f100d17e88fdf4acaedb85a88bf60a478e5d05fc338998a1557c3f47f5e703ac504131d67c7cb4f4f376beef2415cb5147844aa74a540d171cf24ad739803d5d796f3786ba151490cccd466aa54cca7450e0ca7bf3aa9b9bfea4b8781ed5b77ac66784540585015a19b0de472ea208a2c1266d456b8facf8a46db35773a8960c92ea6a9c719472f1e826dc20bd48a78d2d8a97d27bf12cf63c9f9ad8ab74a503044490994e34bec9378403ebbd431c29888708acff5b77b1ced8a02c77e0ebb6dbf4813b76cf0e5ec5c72e1b85b565eb0c6e2206de206731af185c47c4b2db1dd6146ae3f92dd2ea3f528bb67ea39528867561868259f726c91777727d8c6834dc7abcc08db594f5144d6a12e7cb7de56fc73d15bfb0779f083dec52b72f5d9a83fb4aaf9a1a987dd6cee2c184ce53085630381a91dde1fd63023e1c9c70f23c5888667b9a9aa4d31aa8af5648d2a46e9fddf979244f98fe76cd8d7515f9a6186c610176fce2168f9daf3ef59bfadb3cce544f0c7cb5c1d900250b510d510c119bc8db2bb03a0d83427de891057b1aaf4f972d5ff93c26041992e957f776861aa79d5a1040d9816c90cf55f9e7ecda39c951b465f01814ea683d7ae95ce3dadf515a5a7c85224e53778d24241b40c0992d5a46aa945da961a7363329fdf742f802f8d63ca55ebcabe770b53ade234cd854a62a3aaf3d99be69586e77a17156411ce382d491e3f484e34f61d5c2d47c8b50a5c3a86e017a4f8719f6857423eedf2c77947ef5a9b0e21c67ba55cc94f411711440561ea67b94d9d6edca735e6db5b09e782fcc3c54d91b4ee233f156cda1e2e9ac97e9022b0a000fa50dcd5dcca4ff7107cfaa698f92377f1bffd5219f4c380b28d86215913c87371996ce72b84ddffb44db004051bdfecba579993b68ec40ac8332889c32fb241b689ebf4f6149f891e607bd6d48ab9e766e9ad9fcbb5d378ec3e5b9cc3b53402075cbe304a7bd8795de7f3bdaba56a1cda5d5cc2f611dcf38b97670a8eb75cef16eb1b0d029278267552fcb557f02eab37d4b0b449e27eb4df1a6e9d9a71d9dd7e3a21c85f5a3a03c67b2923345ad17f7779aadcc23ca774fad806dcb5071a8fc8b1502e17954d3f2a2c3dc657b69c6e1d3c6d0f11ed22b90589d96c7d03fea6accda2bc66e797ed04ec46baab7aec6cef60a9c1fdcc119cb163f29f9e884e88e6090b4c5cd558a64bd7cd5cea969f71810b727529f654d65ad1da4d00bf9b5dd33eff85951dc754b64117ad5c33c7af371ebf21ad4f6bcec3a594d632eb6b6c9dea21828ad23cd5ac7d3c733f8109aa86f6574a25bc67830b5763a9610cf1ab5574a4b70225976ceb6dfe6741b2074fcbe82af05b8f0520166fb4d1624c321806460000c031f84327b838787bfdc11514f6a241e56493787f574590c80bae8ae2ded30e7383ddd08e190acf5bbce4c0151ec746dc6bd2af1afda395dd98febc24bf5f51e385724a6deda8c9654224e03a331dc1b1e9cd2521a0411d0fae92c39a5b2c60b40d03956644e52f4cae0dcaf1ea8a820227daf907c939dca6fd437bf25399af409ba7c14d923ab5835184ec68ffe447f3ab1ca903be3e49349bfc0b52aa8e5c20f4f706cf237acc315f3684d29eefd76e10957dc1ce09c0a3b4bdd8094e348a5cce9222eafe402a9bef0d72c4e005d93478d754490951cf050e4459f9b647f6c6cacb2526c32f7f6877e8386a509099f4a3b55b44957579bb4f7a58999cbc02a9f70b1f20fd1fc34423137fdde0153b3fe75b909175f856581f782a4e1b7ff0f3b50c914b666a03ffc3db6e5d0e9463cff94bc6459a3c6096e40139b79e69af8d130becdf3dca2c003cf5c55471fd95ffbc7bca7a3f7bcf749284f9d091efd708ea2da8b37875e753105a533b16854fac8c1817696520e86255c38b849d2b73231d1f2f87a736e087cd93e767d991f4a8f226ff7d9eeaff85d01a028d27b22a2f4918532c832b4d28a2cd9b1e8d77a805654413c631064f95c645e45dab7f983b97a2f67fc82c2a756273164d3c30c966c7cb68b6968ff5eeaf5da424b13d25ff34e1cca7d98e55786ee947f23bf79645cb3659b7250990c49581e312654bfeefde3112f10347554f8551b31c755e38db9b28983686e6c804a7e1d88df1bc1cd02bb032a84073b58cf18c94a6d4395384a99d83ebb9b50a0f0cff1f40502c34c9d270e9143e5ecb925a4a52d6419919a16a84c83a7abd6c72942abd1513a8934cbc6ce1a02e5cc1acd822e4529344a6701dc9d0478c17c20b644cd81afe8cab3b901a5253bd668b2009c7804d84896eaed5b51d09caa704c305d49fd6086c5446eb98fe6cee2aaa6b8e5f98cd78671a993b206fdef86a74f9b600ef07ca66767ec72904e3fff4a85fb2f3f811bbbc2c20ff00c9dcd347bc418d63a7ebc079400e652ed9f14eb30c709336f493809073282beb60f843031dfd3821c87153645b37a760ac8969ee4a78f07c806cfe276be0c644a85d953393b0eccf95a7706df8a413278dfdf0f7afa2d83570c692620361c355923a11f401c17286d7dbad4601d83aeb3f6a1990b35120edff4fe1f6b95ce16992b0899ef43c0ba36d4d06cd547c27f32381f6f60cebe5472db95f44ad2b2bfdba10c7641c021b42ef5b452142e8c7c42a43d7cdf4365c432b10af6114806c310b4799bd59c6beb87909734f19f8722692d994dff900fda2ad73ad6ac5b2c9530d803fd284a4d620893b934b832817a26a02eaa696099951de8bf453b62aab15fa0ccd71211169b53e547a87cef3522ddd138db060c1232dd36f87ccf786db8aaab33ec0ed68c86acae48a64bcda04e18960ad3c241293cef264f91b230b760e0cf3d6c2627c4fedc1d5bb8d720a4f804258f2857ad9a892e3ece37eefa0c56bde0394f33b14d2fbf6071aea4affcc16f51e8441f1e7630ce873d63d3215512042a7987e295c6451e6287c2f83e56d653d040eb7989d2e355cd0314a00f824a155c0470a3650df0b9287c593805389d9c9dbb52834c224aafad31d0db027ad2ba3085ff227b5285f4912774f6c8bf74b52e56f64217acb84cb5ff838d1ffd70bd192fff0c8d1555e6d1690c42266066399cbd63bf714748d0ca46005dcec8b307b96f9c456c60580175b62fde55c804340da457637e316dd344b3e38f46c8e58fb98d1465bf14f3ceaf4d0e8ecfa11cf0cb400b6c3d44d319f76ebb8d55e2703086dd02789715bfda3bbbe99896cbbc26e0a68a4f9415c49a6f444c023b05720d5115f8ea70966d39bc0e70699cbd27a0046721cae7df21126abebce2aa2e447b3482c5f3888af85e283306bf3b166d48f5662c92e15ca7d1a10116b067668f4b74102cb9a86a64feaaccce37a9dad79403707cbb56527abf0a94266ec3d9e36b84dd83b98fd0963e2eeff26942575a80142a10753f7d54b4fba59d4d61a3c600f5752fb5c74eb1dc51ae4e801211b090093cca895fbd67f2c5545a3b6d184dac528aea7dd53ad344b873c41550a1103c1697fe60a20d27c791eff505945b23f9929d342ce1e02e65c6bad0d1bf96fc45475211e60e1795cc3ca9f8070b10fab6da54d0ecf06895e7b2b381d7f799a41e3898a55ba298db36ad6cef99345ef82bd6cef014b5384fa16ba6a84091fe17e5f80774bc69f2bbea97e2e68386b2a2056b6403af904e94ba6ed9227514ffcd133ad9c5e153332e7684b920d39924e1a4118f2ce7b5fb62205d1dd43fc3ac144bbdb5fe973f4d659b7761125f8d040f5319acdc41464b75782bd6a07399b4d97ea5ec014584d34ebc678eb2455bf4e9bdfbcfd2919c876a5528f3c38358b9ef6cc2d07eef291c3bbc224e80c36ae98d6baef02db6080e13d6f226d429a6492eb4563effc26d0eb4ac139a33be9c42d25aac4e37f1c20bebd4d7c4d81dbd3b4f4acbe6a86fe64cc47f878331fecd7bce6621ae24257baece3078a3e92d721897b7c81c51f5d580e3c914672af1dbbab44122730f9feb49e456aa5e811465670a0abf8933f0621be00f462cefe457f7a93a0774a0a0030d2cdc65816fdff4854be77e78e0afe908d22c8f220bd9969a8f4fb9a6b684257400a312b6bfdd30c43da6caed506d7a0eb18bf84b70faa474afb060d47f9678e78f6f39267f8a976499395e7f0f1961f37f3c659d070f2ca2768bde07d4c1cfc6066aa7686bc919dbdbc53a09421da6ab14bc07d00734862e6d269648c6cc058d2bb567748b2bb7f10def090b1c829a7c7eec1b0574074f04d9daa7b7d0a07c374f66798d7601947e399c1e3d16da3479ee95acf8f0c79178da884e2f1eecbfeb386ba114026b7a0ec2d77439163ffe585c711f156dc8c3b99150c340b768f7baa8318b3cb196aa4a3e89ccc8293ec51d122cc83fc58dcafcd3801ca9e0973a2299bcdcc8564d217e4dc451817b080a19bef958884431b5fee7db77df22eefecb95be7f95693a89bd7a7c28f245c4d6e19a8026a9dd3c196f8ce7870fc517b137a6c1f50773dacefa6bb280f1c42595b6808bfecf52852e10a328791e221882efa29c2235683f3f8c3b537ca0a7b1228a999c26cab95403175550b51ccc1cabcb686baf6e5482001010c6883c8db15f69285f452c0aea2682a81cf2a9a29f7f929b8de0388b06b579cf0baea7d0e9d4e24e7807368df8ebe1232020b2e125ea43f745131298dd67cafceebb787b9fdd893ec2caf0fcdd2857c5e01f3449bad738c2d248ac5e5c22001fe9f38eb29ccc8be858569b1b88d853444314cab4b6519665b2a7ffa99cc4ced5b05805c94a7441862016388da152373373ece15470b7fc5e09ae5c74ff0b92051f64be0971ab407211e6aa689b9b4652ae65efb6ebc4f5ac4aa4eacedd28ad50de7bb719637d8c85ebe98eee2f2d21f6171fd5a1380dceb5abe8740110dc6c394fcbecef6b2e637adf180f8928014e94b74ec5fe35cbdd76df7e1aff07ef6dcec379c017a4589364dab9baf0c1a58a7384255e9409f8c71cf5ac664cf3953495a13591a43d99c7e72989f2e1a8322d28642d40b1e74625bace07f4fcb1a6b4c7237007187fd4883bbebd0842b3b130b197d64fb262655cc827ea3c2f94781e5f25293e5ceaa9badf2c543ae9172c98858d7f6e9be1c45f2b827505ffc6e802b09e06f1bef495ba8135eb17255da2cf64773a554b372ad7323a715ef9d16a4cbe611c49ad510aad1231105f283c897dda1648f9bd4f92271de1b13776ad86336495acb948e1aa3513fac84f9bdf102320512de74ee12bf47af03dbd382b4af716ba36f8a0644a3e0f1bd169ca9204a723673c770ab2a1fb24ef93ee650145ec1887d3783215f145d592d866e0b22964a24dff4daa175341b10b8051894740073b64bc0a2fb5e84cc3b27d9751d968e1339a7cea42d651cfb38f188e6f9acac5389c6aa743126af7de221ad9b571dd2c8fd2ccccdda53f4617c3c57fa21932cce35aa81958dcb89b7e5a3de47f6b67d72b50d8ba77b189da070eb27df8adc25c1151aad3f82d02e5aade9af4784197399afe5c75c1b00e4ae3583836eb3bd1666cc603704a9e8229e1fd05d1414e96e60cc0d91d826e832248bbb86221666a961a876316ebd145915f76f11c2489b94c0af4a980f7d74314d4a8594d83f28d9d8be453f7708cfaf2447a81b4b6668adeae0c84178d96d490a166f11c1ba199d4540687ac037f6a52675e0d3aeeabf16594f35c3ff4a1b69f7071c31b7b0b62e472eee534f39dc51abb9c8bf05c8dbeecafef9d2588dc3959765ff3d16cdeeca3261213a5650d28394703243da95b66c0edf8d9b426d2031496961a8fee6a28b35eaa45c7fe01818bc96489a80c89c2c651485133b10c245acca4a268ec8427d051f08d6edcaba29a5cb6c4582290f779369333d3ae8916070b9a13db15193106e2a8c123d4a33cabc1b832fb216c6583d7c815867f9c1f1a6434714011830e6164a195566608a3fbf67dc96a7d19d32c2a1033a97969cf74b13863b981055b8c02ba85508b36e61abe9d898353d2f38a0464643b7b3b61957d384e0a450e00456b1bb9588bb8d626d51e477ec4c27a937e5f1355a91e592a39cc6c0a408de9f413456e88c5cbb3fb255897d5ceccca51c38003d6a9061a1ec540631ac17c01bf70fa77e231571d7a2dc092c288e08519521bb4020e56f2e9245f37e8c8a21787bb19fb7fed05c937bac33e3165dd0682ccf20166e1f200982289d93d9605afd591c992d03f829995b6a5a327cc8929aa07d1dc6cbfd7795a7fcc9b7b688a3ee7766f10f19cf4d853eafa08f338f8eb58961a0bd7214a035a736a849cbb46870bab712cedbfaf94b485c1745d117badd4647736d9b7a6b5ed57c0824abba10747a31db2f9a812929e24d4e2bf9e4ba54933ead503d37e168a5c923abc65b55e37eb26d2de1f7505f71cd4205918f32f73c775f36d925541d2745c9bca2433c6240ea69db026fb5c2c8f209617ccbb8460f2e2a1a2019fb892178861b342fe410db0e4015f3303e575a23885eedcc7aac8fc93d98936f1f59f7f65f72d45ea7524eee4f6ae7754783e287c33feb0bbc720b1cbe784e2ef3607aa9957ad12cffc9cbfc75a6b1a3c69e911bc72536da70ffc3dfb02231ea2ba49611ca77268d96863e096475b251650f8eac514aabf2b14293be3243f730fcc3a1693a4e8ad833925034888add8ded3293056c56273001501292f694b4658b414369282d2e0c653b89158740c5f945c2dccb6b52e240016f9f7ca5ac81710b897e9ca22bc4b03987a147de32a0c3f120309ecd7f9395c416d73f27652a5f6e0029ccc79b884a7060fac096774d3ba5bade90d05f5e414bbf38b62e55df8fcab5309d1e912a736f501a152d8677901393db3cac676e48ac44d98c4cfec02b53b9dd9f3919519495441e3e81e311f08ac1d95fb1c97059babe2c3388dc0fb80dee57712089e5960be9367b75943325fb1125a9351ed2ba97fc8254f7d8552ae1eea0ca02295f4e413bf927ab3b6c5f278b4ec46d60bddaa3fdb4b4c068b6082c1c83c8694884fdcf1f9fa03470f6539b0ea773f5a4efece868f42b7b406a01826d594ce3816a7fb1b3c52202c2ca4b59035166f6117bc11da79e2efcf704ddd09ab3322bdd6f3fcb7b3fe041849a6c85e5007f6bf54a4af1fbd5cc30396e2eff53bd4b41e26bef9b8d1049c21aa04e40ab6a9dbd2f320f7773a24b8c9b35c42cca273602786a13fbaeda83f7abb46c02ac040269ff05c1f8c0802277804a53a539c518305ec59f39ec7f0d601f11cfc865df7d5fc324afb429798c072f846e429ca40615476d49a24987ab1bb91e102083be85b7917e67031febbee6c53122f544eaf8dfb89937145dbf204e328ea8d4475098afc73db3846e53148743f21c1eeb36ff440937d388c34ab266e7df4594088b7cb819687712c757533cd29894def2a801d59f03c167dc0303dacf2639b8a3bc88f01162dd6780ecb72636140edf622bccd0c2adf073fd207772fa6d4e47e7744ea55804773cf249863cbf67706f6aaadf375be0d09958723f14cac7724b9150a4e5526402c7a7eb14b427542b9bc600b7ce04ee767849ceb74fbc8a4b416174302b32007ebfbf1fed1694b045a43906ad2d4ae0237ec5d104c6ea189ce5792f68998ea39d00cb03b6da3ba697d5ce645e3e52f200037820229404e46cc68a811c38e05898d95537f7d0f542b41d0ac96b4a026c42f59e7a8f8e6094ef57c261e04ef05f0eaf37197df665af36bf43e71e5cbba459d1f745dd191b10059661c974a2e2ba1fdc1b55b25efa9b606733050dc991e9dbd7b25b3911de9fc9deefe7ddee07f55d768b4dc58aced721dcf8afe81818b5ceb98378375babc6b64c93aa9f2a4497889569945fd4708d6bbcda3ed1db4dd111f549d5fe3b0bf1f20aaeed02a1f77bcffeab1339bde64e012ca04a95f0d20d6677678252af6306c4264952bc2a68b3bc3d4500219da2dc4658f90d06e93776da3f09d55ab1a4f1477681fd3e4bec6058bd876bcf273c50de0b36e586c46d75be439df083562f522b5a051cdb5a983f9d6dc7b44b3b09ec5bcd193a6dbf8993aecc0c853acb8132d604caf65b47860bd99adcb0dcc3607c0c3b090998689cdfe2edea42a12287204a4d5d8fea71e24e6b422cf52590c138729a285bb217c429a141e80e5865a7d45af4cbd38bb76b0abd65f622fc46746c75ce987052d254c63faa7087826510a5574b62237361d8d5b3cc2fa1af745894a681c64811a39fb82eac8ad3224389a324485f2cb88962ab7aa36ed0b88e033e7f2ae2abe3662ab98941f4b288a89814f207a5e6a201f790a59691b49657de7a0bc6c38de9b5f7b677c02f7de64961e874d9e15c398ddc30b6e5fb4d041961d2a47c985cf2f1070282313b669b3e1d06e24cf07fcea620f98667ac853935615bca690f1ae6085da2e95568bb1cf8be5732a29cb213b98c748c5c94546ae2286f0c1a16aadce4a5fb6472478ad576717ce8fcfb9410906ec1e5dd4d077821eb434d10d069b5bf475ca3128f9a29d508aea11906d48b532b009be662d064a6095d9671b3ea39b32198082e7c0731a395b205f9b4cddc1dbc5fa932433c8f6049b43bacbcfa26b5b73de94d7ea26bf5e57ba0cc0d222824def4f11e399b8e720ee0c5bb6aee695df39d2b711f7a3a6c2e53dcac6083838bbf82c906b281700fa37f0dcb8812bd4f2477bb96bfe347b8df25f44ea9c75224a5a31bd407095248fe186e9fa1345a747017b8b8c517c6ffaae8daea24e214f3a3d28ae8923f175cb58c35a9f2f6fe554f7aa69780d61d9f9bdc1d63f9513847a1fa06478fc44984b030bb2aa8a3058787230f1c962ef884080dd9053b325b29e2c10f1fadaf9bb4e8bf30586e27dcfcf3d44df1420182dace1a058da5088eda739745c087a3e1bb3d21811e936e4a75fc43f16ab957bdbf126cf8c1e59f67aacb2d71aae04e34d019e6d0744430af0f88e5dc4b3a629ae52f500a14c18b5fb755d6c1f1d11536fcd82202a7573fb5d7911d0214eb24f339a06d368daaaf0a3e5dc30e00d263a66ab0cda7234955bc9022cebaaa690d4716cc0cf78393f07d62a2f26645be3b77e72ade0ead5be21ebe5fd78b8b0b9dac3f0678994a11dcf13635568bda3eecc48520f4612f23fc990ba9422aab43677b4da4db9bb8a0fffa14f9a1512c547b2984441fa24c8bde45e55df980c9288f765cb6628d7ec4edd9484a6b5151fa471ff4f717ecf7fda1d202ce3f19ce01715eddb3a31026444ec535147edc73a615f923a9f909be73d3026c8dfc0e50d5acccbb22eebb7f37b7289e6c9fd0d7f6925dd17665a681db1ac53cbc1aceb1715a00715393dd416c19851667481ce913b16ac1e4f2170a23952b521251096d038467fcc30aa462ce4eef352d51daa8a2f9e95026af710f4220defe4c3b350cbc4b2ef11cc0d85f55afdde9ed56c0efe61cb5c31883a80fad7e2198fbba7b34aeb9fb0b348a6e44fb9628f6649711b45f10bb84aab65ad0912df9bcfa8c47751dc993461aaaec490386b52f017cabf24332a49f967f55f33f8c9a11693133fc62bea493d6a755f6e32f3c061374f06eb4f74d8c66d4eb0d61ac6824a7f296e8ac88533a5856c778cd0616d1e5a147f049866198c06dcfd10b9ac37d6909fa31f67ad7f7bb9a2eccf0611e5092f59796af2b0d605c40957caa6c6a14ccc85324b30f7df8d163fbf2587377243aaf1f78d4eb269c0da018da4f0e53117bc7619fe29b35126b8382ba27a801c0f9be63eaf2cea9d7d41668f7372ba643016d014140fa52505e80063a5717c847735dbd147efdcbfe2006c2c0f020265b3e059693d97cba14e777886f5604367ca3eb37b8bc556220b5c9b7fe0fa85f7d95c3964cb2e01ddc3d660fe7abdb281504fe6cf36df0fe347808450164ba5ee54f9c0c22fce192891b38aa7852c7680669c5dbc9f1928666ad0cbef362357891f4c112dbc9d58410b36b7fcba95d41cc83654d0e9a7a7a84c4f5fcd3c35fa309de30c6863bf5c25919971da4427eb98f1ab6e3e7e7e0db47db8b95b91f8c2926af9473b212ba51bd127d70b3a649f4bcc4503651f0d9abd62582e7213d694313384d0b588f9bd57e930900ea2ecb0e4f11d85c3ffdd79f89c2a9f9382daff155da75ff060348ab8d575d3235549a09b6826b34006cd49bafcf4e42ff135de142b4baa53e3f08103359a37249198cb42a6fb4fe7df9f95172745fd19ab275c5e97ebd1709950de1da2e7dfcd05e42f81a5b2caaf7bef64d84b0cb02c4e81c12544a3c864426f3eb178d921ea639338ce647f85c47571831f5a0871804b2b4215d543fad562b50a05fd3ce0ef8cdc55a7ec0ee4bd78c7f52e51653dc31fce07b16559cf37f1b21c6557d1887930f567999af8b86e3a0106cddf58fe4777fa1f8cd642e8adafac459bd3a0c16e6126485a84e2967ddaac1797f8d7d776822fa846aa31304ec6837b2098714dafc0c5c005e60b4304503cd9cf1a8cf9d00f4894ac23f15ee766e8833c768f618fbe65def8aac90641f6b8218d277f8906f1eb49efbdd3a69508d0d1f78fad90e9b659cd7dbec60730007af0ef917e2e7e2ce977328e1e84a1d869e239b9546f5b97477dcd619780fe2cc62427013d696f1afb8ccff45620ada0ff3c4155e55c5a5d1719e85db4a061008ad7be3e3fb954579167d5052272fe20b2cee201204e34197b798c4c39074663a1b5b50597deeddff3c0fc7775c3cef7740e666e482e3cb3075644f5dbd769ee2c790eb489f2d83142f47c8dec9af5e69ab9fab49a3028c9936aebbbc456acdafe35f51c86a10179b9a3ec7d0376364b71d0d1c28ffb2b15993886f7082177d3ecc3ce15339fd13d528fdcadd9377d6218a4e88232dbdbe8faefced496c1eda786c6229f08f24cc61a212a09bd892f23efe0721cd7b1f6855334598ed7b74017774cee927defd436f75dbb3912dcdec402fbfb159bcdf858e39995a6bcdd72ee2e968a2ab8ef4064e1b3feb4b739a47da31db644ed8a3b015eb8c3268d76280f324554c9bb452df6a82f135d293881585eb85d0a81878bfcc64e10650e58e998cdab3b9a6a0e630a83f28a645b052508cc749788868b7b59a56f91020b5ce12bca697edb4c0edaf6f9b9e77fb630ff1d9748412719ae90bee32499985a6662da9a49b8c44d5435ed4e2d55654798b9069e3155258d3d676023c5e8613bbd2196e129a020e378ce33f64eea5ecdc946a41ee9b6e0a58ae3061937974744679e6e5d22e53b4f5677935166cbae35e5bb263e6a66a9a4bb8b8d9673633efa8afe2b4330a79fbc0e915ec9becdfaeca342d2414b62c384efd89b2c6cc77a88abc5e8f9928395279825fda65385ccd6bf100bb6af2dd7daab3398632af1c23a2cdaf99cd1f83df6c9165d8aa0ded397c8fdd96ea165e82343824a0fd991bcd4e3b8bc6ccc7d4da39b8c42893c08b2cd7509d6a65127d1990f09c5a89c8b429c20d42a36e493c36fb30ce2f5d870bf90b4c8e896548c7db1e24a8e9c235e99cbe36033e971130da257099930814d2f1759907944cc21b3f729740a0b74cbe7437d77b5fec01c6da68265293301a277a2bcc7ade01ab07669601e69be584d793d7e6d24685b24796ec810062b614699166310f7dd17e81e6f50ae5711337262646958c99176c44547c8417821f8905513e4f183258298bf7ffbdb028ddd9956c56fe405f30f6bd0bb0d329def795e14cf62da529c4db430ebf3a11f849ed789e5092866e0879d34bbc17ea4114b4197826dc7a630ab8f3f47c98ff072e93d2d27d79487cbe035038c841d84648d55323fc5ae66a0bb682f0a095cb56eaac29eae5895909fca0d1e642d9f0736562b827362596e361fa20518be45e59538b0c9d07ede5367b81683d972296b0d35f7d8cce0b6d1ba5e48900f4c43110f1faf362d330f1d8e6029eb62873a190d12c43e5f40fede8fc6d0c7b058f67e0d1355774ee97ccd92395bf75d1ca57a38b454f28db7a1da5a34b47c80247036bbb508ad91c0918b247ebdba25b313905c6064dd6663fd1b9153772aecab8439d825d3e8cefa57e66e6b8006a7d47bc678d98459c0f214ad09529969c378888f42014483c83c6c6b139038966dfdf237fff8ba039c37f5f797bea0b4abe3bbb97aacd4d4f32d7dc104b891465fa0d97b754398e622b2c7d622f4f519f50b9a3d1eafb32db7a8c0375a6a0b7a870db42265a41f52d36cf9b7183a5cc52ce3f324f4c1ba328febb287ed279734343feba5460d02b850a3f42bc3ea2aaee25c2c39c715871fad62d8de45f13a13d2efc4af81d63445796d45f70be91f3902316deb6ea5847a9c6c723991116cdbbbf9bcf8b97c01e115e570fe30b5606d3c95f2ddae02d824cae0f899e198e0d90df2868c43ecd9f5201a74fa1eb622b937456f31d3fb39a34133baa6f567c61f821b28b036de14662f313b0096e045cb7697db7775dec2dc73d2084d37a455ad68293f97436fc36c2feddb8cf3d91ddfe7e853b5d40384e3f9afe2b0325541e21a904876c23cdd393d25247d8e1ec74cfca15790f5e1fbbdc867e83d4ce5a3ce07b360c0943cb40f695e490a6732080090870699e58470d0e036528d8b892dd55531a0f54793a80eeb4e517fa48572243b69894a64b043ef26fa374e799df18993f4d91b0b6868a2cbd8f337e5345a71135e842563291a5b8d51e624f7a4a61afda567d643e12edc47b6a1b4ab7d4ffa4c8c41fe10f52a5ea2dd7e837465bec18e5f53cca84a4a22be297d978a7d607eb5d5b910fd22756c3f21c1579e25d469cd64916ebde091a84c2d4a3da2d9e049ccceedaaa30812e351ae365119fcc738429ed655d34db8b14083d08138c1e606bcc9998caca7e9f473fa8abc414c6674aeb5a2103ba6c4309c61ba03070f14029703a6c0de441aad189d582a3ffdeb24fb5d0cf192288740b693255913549ef17842034434c3686a73c1b84c8e625d83915916be1ab6ce5bfbbd72c1ab3b70b465dd1d9e4759fa9d96fef7458f5224b9f1287d7dc977081841bf9696fe7f51e425fefbec1d4886ef19d1ad4290b7e7ce6b96b17dbc8c865aa90240b7bf6e24f8bf72fa4712a0935a1281e80b262a659d58c3a0e1a99f840a3a0a47fc09996986e2e0bf9c10b10dca354a34f6e24bae5697516fb757380b62959c7b9339ec39abf85d43fc203301e021fd689a345051a4ca274eaa868d02963f4d646b1c2176ea547df2f5115367c55a7ca46e2e4e1173e698f77df7c9feb2c8c00001c68804df3dbb9ca89079b4b72fc72e231c7e4dfcb29656a8e3553b38216eaafa9aa4ce2dddfd26191b7c0c8a3471488fba9226f2f23977ddda98dedee4880a7ad112c3167b1dff2b9977bb86a86dc001f6db97e37867780042b3f0f011117e59b294aedac1c91a4a8996df182edfe27b51ff6301d4acb6896203b2d749c41e6dea7c390cce716f8752851ed07b7f1eed1159edf5a087b873e0dfb8152e284e4f5931d210f99c224ea63a07b9ccda48719406b833e78535b11b48c3146b9d3b91a6c2b8475ae47baaac9e14c538033cc0d5772bdd94283f7f2f9404f923aaa59ca8599c4d86c6e1b0c8cb1937ada134a14f4f4ec3eb3db5a7601562940687e321ba77d5278fc2e4e5e687806bc9de0f84aa7708db50594aaa050e7c17fa96ba631db495c7418afce40706b6984d45efd10bb9b32b2427419ca15f65c86f25f213403528dacb58a1d3a68ff4a7908edc926dc24fd029013dfda028895ea0c9d1dd78aedf7e1fa9d5a31181fb54bddb9f719992ef450a09d6177d2c885e7ba5d225f0b5c30dbd64912da98e043e121902d119cae542d2c5dbf879c58792df77ee4cad7804729a6b35b267e8c72ca6b0c74c8d3634f5e32fd4578a47b7f01b1b4716d6ce1c6ea762216afc1a4aad7d37a495331fd1eb5e8f5783a0f13f5d0d542201075de67be4e094d04a325a7f2baa3ab45cbb7efcbe6252baa84a07ee2bfdcccc540d3cc41620a62785eef9f01072981189c40cb941a12b985ad0da759d68f36bdf8a0187498bda0b4e2fa5845078ee0e5794fb7b8240c70d7dff5b4ec1dcafc23e43dd22ca61be5616ed68f3c71e071e91cbe1a57be72d01aed2a9d71a0f7814c5217999871ba9eb867acafbb7f9cde78b4811b1fe23abf6ae2f0dcb5519ba96b9279268a79b4824989652118ef2499e3367c62e611e2fcece6059424203953536266b304a6bae01594b8634ecb4726628d13d7be02e8d87353b28319a6f9fdc8c00951fe6d38cebe0f9257b96588b4ffa3f0a0b9002328ae80dc6d985a42e9db86a392d47f22e1841b971f0a9383755ddf10fb54b0103088a070d8575341944098152a40003585b547eb1386f9f65d8b4aca2b507d70132cab1835d5cbc141cf778874ab90334657cb64af048a41d1d9d395ad59db81f9efd353500c8fdeaccb6b71b20232fc8d64c5695b1d8ad5e869d105fdf5eaf6a07159071abdc0708a4169a4e4d3165ac42f046cf249b4b2bd94e6b5da3c1ec13375bcfcce105a7dfa8d5084f8e5770c007109e9cf83b591ed4ab27e33475679f3963d3275d273b161a8c2a8b3a36015805d40c7fd37e6ec713d45beae5c92249fc92c06729c2d4cb2205eb6e79bf7f91175d41d813e06fcdda3164f6d7065e5c8e873c3eae30d26bb98d181cee5e4a38ca3f3bb6d7228b83b9bca74acf3d48a9fadd587a5e7890d24c88577aa5263dcc5562fed879e6c1a98cced0b27cd6f1ec19b39a939e00d4a8088e6b843e0f533473c81da2839b0e4631b544adde27693afac868a4069b896dc7c9322c0c7349c47f578d5f48235d2aede900dee59e9235d2ed82d5337a96e78a95b50e298efbf147bec31fa28e5f81bad3db78f3699b74420d9d49526c2dc8c3b9b4934ce0bd572d6c3effed5bff7b64036516340cb6547f57a2b23628e3f6e638bc136fc315156f580e900356be0610b4647e2104a71e22783d1ba12e98b9d951830c70666cfa0c31c193653e12f9b46d49825db526f6ee8ad217bbdf16940f09b9fdeae89b36e5632fc7615f412858f994bf76cfadf25282c8f1ebfc547bc3e6503533b51f0b25cf579cd72d5ede889cecb862837700639b760f72c0920fd894c78cd599eb5bd6a3a80415c0718342b9ec23b5731762732eb0d20844edb43eba181347534989398c68738a452d00ae8613096005524fdfe61132ca698baa7d565b5f872ef4c2da4662d43f7b6f69722bf30d9b9640fad509912effe3f3cfc2e6cf6df2834cb6419b80778dec5c2ab06164f20a778448df58bfd0190652254280766d766d576001760d006874fb33c0f1346c46275029b1ddb2f3fd19a770c5d35e818ad6a3130fe7bd57dbff34ec005218291a7924e6f5e9992a3367dd6aa4d75e46f0d416e50add5acbe2878d8d7a2236d64eca31197caa42b6f777f06a428e3e888173c5ddcf655e2720e98af1e422efb1289ff5b3080d6a8073364047b6dc940aae8494ead1ac3fe03550bdfd3d031f61200be96df9707d48c177f9ea3378799c135577730233769216165e1e547e155db5bfb2583be66b6d07e2b85c0126f5b6b8b4d6cbcc32b83c7f3f2c62d8abd2e1fbcfcb6f39788260fc195b38114a76f9b4e9b0fe11bfa21aef2c5b7e78a994e3e0fd1eddd914cd3bcfd7637465c4ca453cb95b482dae6e62cad666130ac38d23fb709d302c3eb3a7bcf06affbea5997b0d80c48ace7220c46d59e84b107378b888b8a373af55f46da29b718ff707898972accdb73d3f5cdc17b527c4ad9c81e73dc4d0502876e35fb5ad129eb5ad4dc28929df8bcd3beb6f5855e5365f0e771ee8533f277a20cf5b954934e959bd9308aebd9985741c480c03c466a5d0d347e51b6f3302a8b1f4e2ba29d9f2628c63a4c8e637fee7c473148e1686bc4913539eb63464c627dea38e05c16a0485e660f70d8d8761bf758466d1b4ad6d29125e89fd457a06294539518bfa0b23d28ae21e94bf030218cce98f948e63168cf727abd002c3a036791e09c42a3f3fab3d6bb226e877df0ee06e04b7c4bf45e66d0aca91eea2e28e9a7858ee48b872add704d1ebab872cfed233430d3876c6330b2f026a169cf773453360e77baa2d968c9c7ed3c489f54f2b04759bfb598b4808ef9f14dd5be9d3315d4c3b8ba23b55e911e627a394c9e51e41684e12127dbed796eee46e3cb3c41da9eb1fa936f19f5970f1d24b856d97c16936cc733908c59e5627c646d69c896b160b35bf651fc1087271d042f11b73a9b1d4aaff7d8a15ce0300f60ef51ad98e92bcb64a9ff2007dc32db3d6f72b0a72ba528aa7b97bc2cfa9b1b9d648e2e82bb8bf83b5751142e78896db4e5d5b18c6c38f93c97fca5c7e0c4e9aac5429cd78eedcbb35b8487900530ce517b4d41531246a5fce2899e15cb94b0cc7415f52660830561f2e61963dfb1165d6fb31879f7c2f7ec019dad58883d9c4ffc2883fb77ff0fcb3a31a84c18fb0bd2d047ef3dbce5a3530f1ba775e251176fe628e02440b07c43322a0c623044d2dc851c979da842748d3f879208b8be4eba468a1386a0db785cdb1790e0a6c0733d7681c87d3b3a66c5beaf46cd204729ede68175ecfd2f9cf98328767b6f885e28f655ed47a04d05e2b59d5609f48f5e4845d88c0309c36649f89db2a35f524b7b0663aaa64d37b9c8864e6f85e6f841d761808bbb08d2fe6f3c8e5411bea97f5ceffe1d4c66487ba643313c4cf5ddef582458afea4a8f237a0f2d5fa177a5ea0db29c050208050a333ec42ee1d6e9794b50be8ef3acbe001870bb1ade239e535ef3f86c17813915a0e7468378c421c75455c5029ce3184e960fdf7f4f33af32e7fb2e1e0ded9b52dcc0af626975e23f704ad4f09a91f61899d980b3e02c25871c2d57f442a7ec9a68f49044a0422b9df3ece36c2976e3bb3da639ce97998e9f7e86445dc5d59e3efca62ad643e67adf926a4f583ae3a775c3fb295b35c1b27a9a469acc40ed3addc2558af31ec7c79b04756899228ab41c2b01aba827304b0e0cee2e77bfb8f66bb8468c32a2c95c0c530ed5e9ec9671db8d3e71681f2509bbe3a4afb3839b56e461f983bff1d5e36b55c77a8e1132053c02700a98627be0350f0dacbc98709a4d4357e9c5b41f332575bd6452207f4bf7754e303efe8c29b326cac7b63a48d1126cb3b52bbdd56186e1907409c4dca36a079c0dfc831393255bcd88e591ca1773eb61524fe830bb2d8d2aed9e7e8d52f2b0247b93cebfe41fd0360c1ec65b5df4c6cf3a2c6e5db12308e886a34004a75c8ee060c26476e7dd05362484be38b44f56068f9ada1c79c36163fe570c851ceaf8df6189705286d963e7446355e3db143b527242cad4b147ba3c5df965f07c19160995762c73713282180ae669895c05cc87ee8f2a7ae01161d06edfb6bdcd5de1cb0c322092b186b690a03ce13b209818b67b1e5d69524050e10df6b08fa78635b770ad5881378b20711b25c96411db2a5d91a9398830a66f5d67d77917f48acb4ae1d45ceae6db34949380e565a3879672b1922091c8c97209641a379095081168813691ca251a81daeffd3f9038e93ad457dae74063944fcfaa342b94ab8aade286003d58cb99cef220add5650413e578f4d26e17b6d87dd2a38b43463f77e4a34d3ce678fb2730a7e494b086d28452cf690e7ff6b7fe68b914726ab96d50d21c261aa0ca668dece2af89489401d203aee2418c81f7ba1f8f157989b82ce75063a3a3e56a9c802887263be50a283b7824927bceaccfbc9f665ce4ccd5e1e6b3f31282fbc37ebd38682233cfbde2a8f86b8e7a280882501ad592cd5ff9f3b7e6acabddbbffeed6c284fe7b370d682909eab6995d7c582c4599239b542eb8253059aa636e93d3563493df3b7063dce2e569184628c4504dbc385e40a09d56d530826394433b96c295726795483db1720e059fd74b611a4e0bfe41dd8c657818179bc32933fc28e192e799d531d43acc3a9ff6d3a99b41fd75c41e7ea87ca35c651c5d330d40bfe0f19a1a2c52870968496abd32902166988805044160e3ae0378fac6afc5d33e9ab92547dcbb4ef0465d68961f3eb3f581aeb972b9158d2a576dd75ae9418a0bd33119990e483d26571e34430a1f0827ff20ac53a0683b7bca4d64e66fc923cf293c86a85a60669ba306c655e3aa2bde066d6bab6d171444f504c9932a155048ab7dd5f07538e1aa756ef8743f69d3e5ce3f5d64e1d906d592e511ab25a78b0d8dbdd4e005d8d3ee3b80f961f90a8a43edf6e27c5e1e1ad92c902f68b3e10467e8a86a35d7f5ca52bb81dd5ea7809efa2fb05c929538eb449bfd8fc21941dbefddbb9d5cb667600f39771ec388f1eb51c158b58e25dea2eed154539fcc317d5272f28cb1c6bb83c80e911d78dc33ff1a254ac42be923500b9b1b1438ed26787640006f98cc7b82718037497a326843234e8773f0b89bb4485b22990e05a9fa2455b66d8703b330f14beb7954633c372e69f00c7697cdfea2fa6e2a9a53e0fd2cf61a36a27ce17913042fb6c286a88d6be680e95c690d1f671f38f2fa74ffd898f0738874463e179fa38f3c8b4de31cb67d84e0536ff6bc4f7e3ce08a1059a78808d8c51fc0ee173c310c67f7cf651f299c989117f0ff891c058e3d865aa0fbb6fa6d7ebbdcdefdb1a87913bc07722f461caade39599586cc9c8e3cc6d4ab3a3a94364c92c674d8d76808295de789c04cb3e222ce30ccf890f7b71b03635ccceff41efd0c153a5d722bb230d57e6fcd7fdaa4271d19aa70d736dbaea81f20d6db298f4bbe4f43950fc588a94926551a442946852a704a399ad604e93808d217e149e0e7f7cd5eeb20669c4bc2c5485ce01ac493ae49a8b8b370bde30ffe8dcda472168ae27a490f8c0aa4eb011dc64a79e4f2d00cefe13fec115ea9c45af5bcf6c595d69032489fe77b80284ab74384e1a537ac391bb5703d26b3da0c2595364144ba0f66f722de646a705b9ae14aaa2d2e9fbbbde2ae8e4a2ad6ed6aa4565b3d2fac39639eb1ba7fe108ec6ea8aa36fa8494ab44c4b71149b5cc84a161317b5ee5b8b84b7e102e6adea7d0988effd397f18eeefda0d2fe1c6b5e06c9152ccf1c2133926b362614da09fd82aaec826cd6cc6a8669dbc165cc6780ff7dfb31ad4d3016e1bd2b2d7498606b8779c9c566da2ae127d3eb73a05a017cfe83feb0108121456283a0e44cf4d03c4d6c427f90651c572ef0e36164d6135125095c6311c439911990483482f875077549bed1c521ed53200b5542098e982e55ec362e33f02b25daf58de0bd25b08c7972c4fe98ced05a600fa5bbd6809f3ebd0801413579f2b1b1770cb2387c07e3028e41b8d90eddd3cfd871d810214e72200ff19e0db1b4a10b29efc5855397ecd8dd244087a51be683dce7fa20660d2cc26f2260c2cf28d69a1211fff8ad36129f431380ab7d1b13ccfcb11c8f9869bf82c63a3e32de107e9fffe5a14898ec6ec53fcc8befa8d75bedb1ad3daec48ebad811bec21e1bd38236761d9dd1f6ad084648d8699e868cef6bdffa00599b8ed01392a673417f15a729241799794999c4e12086951a4e6bd68058767d27f7b623ff5f255bf8f151da007c35d4c28804790f0893a4878e268986e4e98d477a4b5b67b576ebd5e9f367e7ed69e83f3f6520b83105e91c21d15a6e9ad7c3b0ffe9315228a8bd0687e028732aec5ce19c2f012210589dca738a92d55e97242b1cd25a1484da888bc3f2aa76db6863dd52060f280bc585c899a682cb3691fa1492be83e6f67d928b9f19b22e724e0a8ee0cfc9cb4a583d3f99cef9394271b339e21b247d08a032648456f2379e05b61b1c4518afb8ff171ae36e1a6bf287b3de005539e58c833303a69fddff97bf5867e898acfb646dcaf22ce9ae9ca63471d2f3061b83cd51e82e7859f9bc232380758fe21dd1403a5078663baf26bd3f8439283ca6f834065145cbef866a2bd79f530ce14971a907ad4c155f3bf4a633e3c36a7c5202b4b47ae6c3472315548d4b24bba15f644bed24bbb11f93d7eafe9435ee1f2fb9bd96f647dd55949e635d777f702bb9753efd14bbfb5947534e0cb95e88af4fed0de66017df4204ddfd899d41d7d800f9815453521db68d733d39fc71afb9370bf35eb9c02de72583395d10b27a2c637413e68be310e7d102f4b35fc5dd4a730b7771a9c287010e2d283d8db67804b0f2bebc4ee039d07582b30eb7a3943c1782f34137986b848c3f1e95c4decdbdf45717e85445288178e75d895c2c6245ce355c3e4a1014cee34a773bbd1367b401c167d51fe92bf93f6d00f8275a191e56a570c3780433832f6021d8074f418a42ae6153a219b7cd4430ae4dd522045b754fd1ed53969f67b76ee30b046339d7a4017d41ac01b9062a3e3cb5a664afb1e4cbaa20051e60dd55cd4d7e49d5e6b492e5aa54289eb5cdc59d72f0b2f61355b60451731e387c89a3ada286030643a60ec65ab3d7fffa8af4bc555b24ca1064bd12ef0fa24793f6dfcb8da906d3a0fa34cb12f56fc839924510ce3ee3284610627aace779eed135ca94377651478f862053c7b84b2cffb7567d83e60cb6b7c7e9382109fdedb3bb720188e92f99a9fe081c2de57e9e52c7eceac12c580b5e4a4c5d1d2a30980585fce9ac7445511102c5b25970d8f1a49d0824fc8576800cde509190acecc734210c71d9f89307160f82ce78ec9325f7e4fc00f41eb7d42b3f918a7c030f2b2f2e4fb037c3d5e49b8d226cb42564c32e4a2593d4d0340fd858a7d39b0f1817bf8aaed1b9cc6afd67fbe151125ea37a995548f61a6943365192a093c67c2ce07b6ebfe2b3daa524a349ccd62f44281cfd55fcbc5aac9625d0b177f791c144361313a68c444168d2fdc6759e50b5fdf693d10306c01982b99693873440e2869584762733b72e85c4b0f784ad68849864ddbc3e6cb197a1cfe459e9ba26d0e0b3b12f2f14ebb8798584a7026a8988184e798680ec0bf4816fb5e5ab842f0e3211bd7a5e3cd88d20225604bef8da520e2aacca0ecdea9c0162effde143121c46d5f6550c060693ed018adc779207915d1729f09d9ba3f75af66754f43944965bf23703f44798174a0bba27cf3049a92a6c4b1f13d6fa9e72a806fba837e9783c4c3e373dd4d1cbe85b1c2b188530041589ef48604c7d6ca32f26f77582f0691d037256673f4eb11ea54b6d838389f00ae0fa33e6e2e9f6848c9495d8f3118b026e8bfcdfafc724a9f13ac593fa7e44b83c94b74336d2f8e5d55946010a3a7c529269708f3ab94d407f3e853ac4be454da0fc0b9a549eb5cfef6c32e6910f3a408da4be4ca5a100113f3fedf7365405690d797b8bb98541f2859a464d42afd95af5d745da9e0d57f6040fc52f3ddfe41e905b41584da917d745ac3ba9f711761012c709d0035c91dd00ecfe609958c548799de214ecf08bacbb55c233715acc51172a17713fa58cc9def709f8e997020506da3f20f0c5121d513d0801164d352b55f48b10be2ecadacdfa2460f041c548760572161bc462659dab386b80da817161b5ba60eeff2f1c1acbc86ba2df9b5b4bc01e496ffbe3f0e8ebef886a5854ccc8bf07ec8d1c914eb96f14aa74c4098d6fdd6de304ca5a647713e2c076644edffcddc82a878a0b09defeb56bb4a815ec0d3a5e957c6c5df7317b21f09b86c91a988c08c6b7effe4f81e2d5fb1b3102c85679fb3a9f8cd2bff2880bc30ff9469f8596e69999faa9ce955c3088a3bbc2a7990d4894f849d33fba720ca19da2f7412d5ade33c8135c726d525d711e130341c5a57086aa24aaa3a9e33e807920c9faf39d3f6a53651ffeead615b256a60b5bd8815413eefb7560cf313c06ca8183f753bfd1bda00c5995da45b4b6e7b9613085e16760f8abdf739580860b3546dcd8789a757a633a4b8d2ff4ea236e6721b8b752b846ce4a6547e51a71cb23ce39b60fb437b75eb6a4039aeae31255e836e3058d4ae33373d977d2c64697701557e602d4a972992c94478db159c134321c522a271bdfd9bb590313c899cb056079dd25ca38a2d006e771415de4bf31aaa56d76395f45589795e8f62cb01aa8bac18f8c9d07f7a6dff59fb50441954770789107b7b80f16bb9356e3b8a385cff8986d832bea0206412a8070ab7712393accb1c3abbc1edbbd56d1f1b29662fcf906efebc7e3feaa816f225a3de3f78fb4da0779cbc504b1c698c197fbc80f4ac5f3c8908f31149a893bf517cf3a8fef63654d5eec182ec644ff7b7648b471a751e8627800ef39c235677383d3e8d1d51e787bee85e222233f1810552a388b75f2a0a07bd26fe949ce9910789d35edc2d80a746e5a1a0f4d8bb3ff692e40c27d075068cc53b35c71bec5d9c56e19a4c2c2785c9a3dae6a4af9f7f04c7c399f4a96aa4b7bfcaa691a5646f964650cd73ccc8e83b65eedf80627265a0a16868995cba04412215c1c36864275bb80360ccb7d569f19e4b14282c0cc175d405492a7c1b7857204b16f5aa23f2676bfc82799505e3c34a0b7041d797c0bc70c43a5bdcd7c893c7980236c808274a5fbb66c2988bf17060d622b298dbb055038c97fe9d636e601e9050e0905ba0b9f4cb0ed9af0d9f98daeb46423a6b409fef447f8071b3e732d6d536d27c20f587a8c17367f5f708c62e42b890bd735126272e8f2b00ccfa78ab8b202a755b84e331f7d0d477897bcc4d007e7b6e3c8d00aea1bcde7002cf3765ddaa41610cd629e4ed537c7b67fff4a178161c810356d2db70c40db07f91922f2aae34a862323cab9531165e7a523483a6c57aa352e76a2941035e37052d85a045ed55c237308913d1cab4bdc235e554f1169764e68b6ec0cc5333616e08841cb64c0ab1fea710c491c96e880b0e9e40144f785261048db9169898e92f701182112b2c258a75c914787979c3ef948faf817f83ef73993ddbea3e6b58ea8c937bc96c663cac5eb962f28d87175fea418945ebfa5a6789527ffd5e8dcc53a13a13196d7f8515e2fc8731eb90476e46304b6648af6a7bef3e95a70bab7d6ba22dd5b9b17590cd9b7e371acd4ac476badd4fbc272f3c5856bf03a3798df2d10ba64183fb589186c85679165f3a4817769b0bf828248cbc2e51123073c4f00a1e19958cc3e9de436967d734571c3393ba583a3caff451fdb19725862c24adb2234530cb1025a0a698683d8637ab8af00dd605b1dbfe1c913d5d4086c75934e9415d48b67e42d2c9848313d737f6aae0eb9e19d7261b31a7d520971e6d09798e627fdda18d0e19e48259a383d84ed09f8b1fb8daeeb013eafde84cbfe863cc591dbe2c92a4b07675b58b521af405c6f7e12466d6be5ee4bb374a23a1704493c5c6927f6cbd1d61bd594c412cbee33302a03dc44a4e5171f0a88ff30682de663282824b4b80e1f83374542c4d65ba1dd718bbf4cdff6a95811f42a6a14b89297c288ff7226d97d5e2304752ce4ebf8bc7a06ecdf98450f54f2a8deb3a272a1fbb4d65525a1ddf2856d135b5325db28a98f24873fb707c9b731d03ddfb179be8dac9837aba0e7ede56d7911eabe2170fd68a2e48e1697c73544dd911029dff825f8557e9ce2f21c1914aaabce5a7400f5ceaa29e41d28fbd4d030fd3fc546a21610eb2c36a7918da6d103b4940be08ce05be4e5f9072b3524f4c41d8f313991259cef8731811555fe5acdb8ff933b18caab6a8992ac3cbd7fea6d2f6a0d703a02d28762efce063c75b5dd167d318ad2241b1274e7b6c67516e9bf6a166215ad8fad34c11a30f24eb5d2669511d421857d5690a2aa731a3288505eb4d2cf5c99da45741a793d4f5ab91d08d90df2de80ee961cd1e9e707a1bd896c3626bf1e3b1dc5e0e46ed739f62e54be39d1da993513ecebfb45e176a3209f3b83a231dbfbca92714b601598ed62d7036cbcf3b9490ec484e865d313c170086f84ea507c91cca8ac6dd1ded5f5488046188fe4ba954cbd2bce0789c39826dd8f70e5ffa7772cdfa547ee2f1ee02bbdc09746e3993fac6f0559cda139c48c5646606a3ba00dca67c664a8325b0dc7e802cb43a19ec0907a1fe760b7ccc83f0c76de5d352da0db4ef16890295051ee5c2fec5df2f99a07fd63564a771fe4a6c7b940a627e31d614587f682baf00252fe2a5cda2f96b49ab2988d05bcfc5e5652e88b111f84130c64203c4fdf17e4b58fdc09d24ba36795fe92f639ba19b3c3dab98f75d284c8b6bb1c28130f0f9fcf6677e7378401407836393c3710ddc9190f59c2b6c469c14c814d40e5db95400a17434503626a72c7bbc018b485dc3067bfd142cc615a7fd0ccbf9cd023af2588a71f022e9312a44ed51acb9a7687fcadb291805f95cf83382aebeff3192ba13b1cf1a0c225f22288cbab45e6ca3b4e150171a942491919c6c761b061aa50030cabe77d48624468dedd410abac9453fba32de88f2987dbd9f4385d23902e38afdd4da27fb57af8e1592dce98b8e4ba28e7065596a1ba2a1222a8d8e88ec421bc3da7ff841faab1534986f56848437d7186a3fd8a6037ab29a525454b43b58545a3ba6582d5af79d4da41ad8c97df4ebec52ef7577482a145c9e1bd173924c3985cbc19809ff2666c21bd4071d922e092f5eed0f2f724a5e4b7f991d16ba6a2e3a118dd66b5f81fe585977541249c1374873213061dde0d6b55cc0adf60160e65c0889a56399b8f7ba600c4031aff0dae1f82e8d6bf91d2bd38f9943c2b7564504f923f78c8e6c8f972e94e372f21c5247aff1e909d0eb043884a681d8abd3c5f3852a906350eff6ffff4cd86ef070c8d6fe729e998af3b2ff0aefb8350d92cb0d2e54528cd3b286cd6a24a1843d49aca93d7ce7340b8872ac0510f8168ba57cf6a599a27de9fd1c8a447bad47d0a523989e56cffbbb3389b1c9b626f03b065a86cc8f3ac243ef460a9fb3b12a3794f01fd09f5fedd91286625da38e3b812cf138d0aa80651301137a282f4a5b7215763b1ce1c2302f7572e5039ad1a9080938d169c0d2453fe5cbfdcfffe137ca20adde4d05630820d2da826f9a0533617ccc41752615b675be0a37d4d7a17e37c3800413cb566447e623923ea725f7edc69422ee2fc2d0ee6efe7ec69e2ee8c332d394cf74235abacfc1645fad0ad94d8df7007153924e1cc1a5e57f288d349f8150df5377c89afc2276fd51280994df4674140f2373056a451f9b49023e769a3edfe68bbcbb2b89faefa7baffb0099d41a6666e9f9aadacb5449914530c36f10ae05a2838e17e0297b03caa219d38b61fcf9a839c845e051b108b6d1c40d2f40bcc1c96bda0627b9dfcb6c6a9038f73ee4982755e144ffccb2e742e256c06810651bb77c75bf9bbfb9ab1b0c79dc19ea30ea9f61c72a319c9ae8031b3ded6637f9c985e4679bef8bd0d0f6a57cb22baa31d789a9f059b045e698200132b413bdcb067e994d599404201fc32a031e71754f0990dcdae4109c203872462fc90c5cd00be978052f0f88f14acf2d749fb3a8c4bc0bec5b3d00c1465c984750340ee4f139c05c0cc24bccad702a119c09fca4fb3ceb6585a20d5aa64dfb7f43ec6b909bb656ab9a8d2e2c860b7bd3f88b4770bb163b1f758960b51b4ad9dac6e97ba8fbef2f1748905a62f85ef300e949eb201b45c24c89246129ceb26e12adc6d99c1f26c0a7eb0e6eab687f55fa2c20a4c04658abc42b34742a4bf33e996a06c093660463b1572d9d5c2e123153d6d56c40f2164a2fed62556cffa6eb925ebe467469e53b7a69c442c92768bbe6807fbc2a7430a800f29df3948aa362e82110dec3a02ee4c4c09f087ba68c87be328be5bc97e425df669cd4da28d1417aaa685879575d2dd8ff7ef07db109a7fce25aaf90125eb93f99e01be46b563c96be9792390ae21b6ab5e962df7aafd23d63548ab500bae45f0bb16cd8f29effa4b0e83c5108fe28f55f889487fa745563cffb8540b2c588ed997bbc9e8dc3730d7fed679032e3b5c52b145e15ab740d9a474d785ddbd6bc5d05db3270baf7f49a9ac16b8aa66079a951d0f37f52effc9f0b36589c1a6709e261c042a92348ec8966dfbb8c4a27021dc76ef312b3f14eaeaf8a1dc612ad7cf8f038f14e9b4f45cda74c8638e2d6fa03e382124b043bd6b54f2628dd38c1134b7eb0b2538c5257db804a44999bcda7c9528beee2a4601787a656f2ca718c747a3dbd995ff23a9a5fbcfe66559a5258fb4e3eb2576079f918eaa51da39e6f01e9ba2fbcf0aee79d54c8c4718dde4b7f6405d102c479ee227b1608051648a7dac611aab0b633c4047f2d0f585c994e284b4aec0f9f4c38e9cc77f495c5f9b2ea698c9f00be036d6b77b3f83b2d8269d376ab1c467d0e86da4a2c3aaedec5208f61e9bf54586193953f8d005f1eeb699057cc21315edeb37f0687f17b770afa143821fd4e7182670e6e55a2cc9164ae0f4c2ea4c6b9129b257da89057ca61c93c5852b5a8dbbb8b052b91a3bfc4813a5e32278da3abcb6cbd0609e66fda338bf4e9c53a287b12bdabbcdb883f16077ed53fb4ed5d7ffe6b6b55f384d1e74dc1363b8da5f5c6c3e88610cbdce9109b83baad9e5a47ab34d29cff91f09bbfc523964d307c56c2e81f6502ed11ef418933e8fa6d2efdece33273472e458f1a8d72681ebab0c20f0e068639e1a9e6d8063643f82b56a81cb7924412d26469c217ee5a3280e49b2ddd21de0ba48cd7b73e8f0debfd76729221071454b442d76a7a0460c030b0a0f7941645726f8c858ffbbc2fa86b133a3b73923413b50741f101c1977015be77d8df959c55f757c40dabb72b4d7dd3cc7c67c6c6b1b1633ff08c9c0941e4664f84a6e82e42dffebfd93eb250e54f31c5fe154aac2640aa2a58a2aa34226d7b468d447264b10f8601072df784ea2f3df75518e15bbb264aea35c84dde0842197bbb9e40a2346f1c649c9280eb5cbdccdc04bf1ba4bab9c796d5c8ad5824817f12b1e5c7766218faa0f4e23e921f02f9aaa305097ead781daa3cd735686b0f39593a4c7adff7522a877ab8e9f23ee8c8ee5b5bae9473ae300cc7798450a39c3d4522effad7230b4c22631afdadc32806adcb243f3e2d0815abeb877d721a3d0b4f2d684282e35c7e60907eb5913fd7f87119d764c3dd19c46e69d24919cb3920013b8d25be73db194074c8428d585fcb1dc60841e88a0121aa85f01b7aebe4427b61f065715bfc76fd22a2af2e88034d3ae3eea9c9c7978200823e90176a49db3935fa5b553b1b1b8cd45bd0e25d4973028ae75213a8c82c3f8829d10d13903c719bd922c1c716d14e4de5d2c2245362ddb92863da3b95fad00deb7946684719085ec4bb3e951e9e7f22c5db53443793e136c5105ff042a761b6c70ad16d111298a9bdacb6459184daba22ff9e1e9a5980854c79d51827824f293acab8cf751aa41c2613c0a5fcfdb6ef736980c7173bb64ea17504f041fc775bc56dde07ab62a9238cc6b3ae0d86ceef98206a1d918ede1923d695d23fa7868b935c5f260cd1a8fba298ccab69ce2c1a9a832fc4a758f3869f2f65f8fb97bed91117c75bb9dc242497c72208633e0df98d60f21a8a19b15ee6a38949f0bcf0a52243aaa44b8feb4e2fd9d4a49c206737125e512649f4bed737df944fec76025462f61a04de05e0b1a8b3ff334e97d0070d6a41355692b62670e816858928c384ecd24843e0a94acb0fbf00cb71541d219317055ecaf20cdf4897cb0c5d6fb6e61fdbb07c7a5bf88e98b06416a895db679761e895f5d5f5caadfa9bf57aa6671c5bc5d6a2749322d614d7b7bacc96dbd0bc9d5e48644453a668add8a50db0bfead8a2daf99099dd530b5026781613dd65f25bf457b2ace8c1de8361c65b8ffc78fda86f9999c55acab695ada731fc5f9592be8b512a2beb0fc9321d202eaf62fa3606073800d63d5588210ffd13705b9fde7ee1224d903b25f69b64b68b797057a58e6e64c3201230684acd70c0f12dc2f09596af21d3c31eeea1561c40aaf3ad9e8b0f2c31c34fc1b19a82912ee7263ec04643f35fb0884777dd640585503e6db81dd23afc3cb1689c79d39abab7bd1424e8734c3f284d10f0b03544f9e1b44b62e387288e75b49ca5437a7834eb3816faa5ee793b442b9d6d932ce220eaf766cc91657c18b79a8252019adf98e8f2abc9b95886e05130e656e2435e77a62132e85a4e97fd5f7ad27eb1c3af1f18dc6a604c8432288d1e6a1f3e95105a4ecf046d68529d098527ccf01431b1e783ccdeef5491725eae906f78e866e64dd4f8a77102a7a4726ff84f9e04e33b3c1e54713b5687fd320597894a4480d33596e0c9127a8e121d1d9e632cbadf74d4a73c1e162694b09d8d36ba9ff583c53056e0e760b52c24b19e0f035536cfe1b8acbcd7e8415f3eb571dab0b88733e25171a39e97356637d851f6db876e99f1da1fb615dbbf8848c9eff524a0f130384c47263b710ee883ac14d34dc448862dc512de7297b3b0194009c53fc0bef35f40f4bee541bc6d28f55242e98616dbe3768585683b477121692f34b401ac21bde1521e7de5c54ea3d02c1c6dff1238cbcf6869c17bf5e6a09a202df5a03b70eed795931e0dd9f358904e431703613d85b0a03ee1f3346c234f57b40b6edc1893521ba6f98632b81fd065fbd81bb12ebc299d5ac52575b201179f803c97370b16cbe965dd79bd90ff8a6c62e3d0b9c411b2d6debd2cbfaca4bcb7865b3b21d380874771b9496f9fa31b3029d43b0d4b4a7e4107d5cbfe61aa6eb99fcdf45cf4a5714ed680ba972017296ae62a3234418dc93583daf7977840f9b74b16876714395bf294ba0662d0266866342d339e0cdaa6cee8c2affe8d55110bf6abb3f83e1b783c0b7dffba7f767e49723605cc15bc7964663f9a054d30594763b247f88a4168316df839a035a3028c42269890ffc3ba20201e7f2eb345f35ecde042b8c824743a9f7d25b9204a69119e5c613bc95a96489e146465d239d959bf15664be6c88d4235000f26b1bb9a9da5d6477852fc8b5f89b149d496dc4a496cd0e4a43fb69000394796ce07c1bb036024d60434d09ec63d6e93d7da6206af4b0f997ebca69f5f20c362801a4e85bb11b7203b2f7f1f75cd79bb1c9f68c072945924bc40a57a38b748b843cca688cd04487a8c675d033680df4817ac3c49e4caf63b5db4017947222095bae441513134d84f7cb0144d414acbc49df854203c73130cf7d027a0fc5f4a3b9d4194a7ce4bb704e750ceb409bf72813f2a494d0045b02b0c63aa70fcdde9501c213c8c3005cc82413ca521ab6091afebcd466a2001c81692d9ca62f9156d0d228e0fd52f4da0ffe085bd14cadac959cb72342f079ece502f095fb9f9208bba96ce1a28f35dc3e38a5aac9d9f527676849d81213901b6b0bbfbd970587138a876fe780f876cb0fbc57f4691d26c413febb75e112b65176b23598f84b66e22de85ac357a5bdc1cb5d1bcd5af0b14640ada0ab83880fba9ed81a29e85bd326a16b61e9db65e15a47a71a38d4c6f9bbd03768905ccc7a1078255c9cb7abd202623d9d6e82e24714d84b02233987386a98f005b3584b7e7ff3202fcaee2665415e4086edccf8d1477cac8202fd46d1e6194c9050622cc2c5002479cc18f2d16b5b57e20bcd6fcc7fc234a978769d1c8ad9ca2d4bbb262648c341d483638973bd895256d4fb97a809ff6d5f22a712de11fe5936e3991704a7433f668d9cd70cdb8b6d9f6f6434d5482fdab44a0f3bda28968a84108ab913caebadca9993bc662d8dda1199cb007ffcb3b6ba602c7bea979054b29c83072a1c1995b17b85b8fe5b7e2896f48f048269959a0479a12354ff2bf3a44a83e0cd96f828b6e832460c268dc76ceee20015e04624fa9663f5f29e25cc6916b3987c5ffe2ae50bcac62cbe911fe6806984dbcad2c8d58ad3e54a7f12ca3c7d2fc6ee16d45cced6c2241a364e9a6601704b2fd5ba851763c507433695d735200ca393574be418c50e22e201022f04dfaedbae82f29821409fec4437bb3123afb8950e3e338f64b99cf767994f047639d3fe3489667b9d1b7225ae18c6f9f9a823c1ee8455e75b50377f65d246d8f0d0246b3824911e7e1b96ccb92a18b768038699c8f012d969d1cebb978a7adcfef98195148190d03082b8468d524076bd2a1f5b3654116814b62028e8f58d4dee67f5b3d78c755376bdd22a89dc00abce4028901d9595bceede48c054c0798457f7f5ce26c46fb801d03ae4365f071bfbad51972ffddfb2a1c1bbc026b70a6d1fa0e620a260f7c366dd75f55ff1d5c3e2281ca61365878d68f84b0f111d9e0b78737184a2d9b62a16d9986ea7bdfda39e0d8b07665619fba48b7a5a9c84fde376f22a28655c6865fbfa505d2efafc9c1d14277142231f03fcf650db65611ab41dde14a42038599fc4689604a7dba5d30c99436bab408b983d5dada20401733dcbb6a0e70f77e52d53938ac9f9ee7a82eaf522db6efd6d64069189700f86dcba02ebebcdba85b93acb9169b888db343e9a4930b96632d1fcd8ed8496a113b115f532a6236c1148f16ccf76475935c5c93c0623d7170756d53ac9f3754d0adbc43f04d6cfb173bf9d36eb3fba689ab901baf1183852a487c8157adc01f54cea3f1d49625bdc2bb081064d8b6a40e83cb0b2c5a0d63a9b8a0f99d77cb9a3aced9166638a7feba422e40c013cdd879c730d7eda099efb2319f879ee819c92bbf716ba0e985ad684cacca95c6d56f2d0ceade8411eeb192f69bf5e276d73553696f08c0e69a4daf9010e2b9800e8465e4e488a4d77c30e882f04e332ba8c559ad3bab10eaf802e3900d8119522952709c507696b96258c3e9d8178df32e6d0ce6789dd5e663d56ef027c577de71b4a9444400ff7eeef4dff652ea9e77652f711b0ce4e6d516f013af68d616abb6072cc503b163076cc559116037397cd566c73dca788a7b5f2439e54e80f3e8c40d85bedf1a8f75a9773205cb88e774199cff34d07a27a85a92cb465f07298b21ca5bb8a4272e948e890153ff336ddf9c864201400483411b2f0d0f94893d403a8eeb73be601fea3b25e7770477461cc9caf3a61cf26f3733672210ef3d6248ab2f95a36ce2877c7fcfabfa4466552164633c508376dc7886a57b2c2153dbc54945a8f15b6b1c6c4c64e921f4937cff09cfb79b98abf81d94363726fbd6d29627ac90c4bc119fc9dcecf8b47b4e5c4b2f91625f3b5aec20400fd5dbf5b66c78ab448871b71e7b5a2b2876c8b32789c3f20a154d323acc0564867236f9ade01cd963a64ee7bb8379b933eec54afb249436d4415a977d9d1918c6399a1edbb002ea590be56299aee1876e5900092608f4bcd05900267c9632f6f79df5cfa31f645f1b1f1db2dcbbc9aa31944afbcf9be28c4d56203ffdb6833986c1d8c618ffa07b86870d1006a0c24aeeed4d21e10bcf992f5ad02ca0446e39702e55aa4924ffd2606abdb3a3d0371d4103d0e03a43e8f9bf5f647b17ffd4283ae9e3802390e6f5e4f4bd48073c641951fc0e6bbcc6cc72439a3996868f54cc75757354ba5225bc146fa7b5012bfa640e289cb3a00a1c7ab774cf082468e5af1943be2c37ec116687c131a23cb3a0689dcbeaf9ff6607d5c8f895b303cedda74af8c3b7afc42b74776a33b4219c4517d17ce383833a772eba9b21834f0a8c4bd3b61b07f597306c43eeffcd649d81c4cb2966874b6d5ddcddfd22a1660e34dbdeed1d7887402e99f10a7a9f94d4f00f771fa38793c618e18750212f30fa69cf6eff25254e2034a3ad01b8455a073e962d63a99a5164c2dac2a8e5950c46830a36bdd07a6fc09c142397cf710971195c4b2143eef30da2570cf5f3ef9dd11c17c91952ce1a1f16f15d8537c223e84729de884cb8d2f2f1e9142e678719fae98e68797c5301b8fcae887f4a509a77b86710f904dc0d3f33a63e824553fbf56c150e46ac65d539688d0fce5b1355065226e09766f90cc9a6d4135f117ba2cf7535a203dad9740b6c6ee575749b6b751cbea308e58036cd8afe3d470ebc52953fdb8764bffeeb4ef8ef5ea24719fd63b3847496e75a07db5bca6af859e67aa7bd93696c5fbb0e582fb9aca16a9b9fba282bb506718a7a9f9ac846b86a27f11549c35a4374c26b3c058441385d35725a3d75fee19285956fccbac2b7597bd4d82027ec79952e241597d45e33d64c80a9239e74389211270170af008351b8e7415328ce6030c29cbf2c19e89d336b5af31e57717481216868f94fe928fbf4c0f1f90a8d32f647fa86c83d84668c2d24184dbb4ea03c64c2f853a8490bc5573e1e127b50ade740a23fb272abdf5ea20e7ea1319093ec446467a6aca706a4104185a3d675d48a1a23dc33aca6db5d4c639279b4ca8870bdfff89750c18106393b8f533bdce7272ee359ae6af2c3cef30fc4e9a124cd6f3cd07d03951f72cee4e28e89a0f689495882557eae4ed954a860abcad77bd8d1d664fef21fa03aea69310b90c29adeb4958751b056523dd1b89b0208199fa20187b91c9b8243589fbcfd4b02ad93470cf649af13eca87114c9bf6186c036d49e897740191aaea60e86164269a342850f2e3ddf579e52b1ffd75198958e7e5cc4fa1a18a9808406bc80b574e322cc69a8b3eed9668cd0dea760f03f4619fcd63cdb8b2640964bac8b9f95ac8f4657956f97a5fece3c701f633137588ed8c309eadfa77e952c1cb0bf39ff27b5ecd428b0137ee9422b70e199f62d06b01432c8cecf836b3e5977910819e9f4a665e50c45de320321597f818930e42778be86181a19e0af926ba5d9537d013c6f52895f9ea458290402d0b7eae44b5922c3d1eaf2d2eaaab605d4c1886940e4db0a8a1a0bd4fb5970d97014e9587787ac7f21b75d650e8d59d7c64041d2229a0240ef9080ca1dbcc88125cfd109e200c572c8ccaed028e7a09d3fe24557642fb4b0ac0a065504cb3dc3c3e708d19186a1026d5a7c971d2e4f5da122dd6c66d0ca0ec3955c0de36978cbdc864b4eab2e0b06bd9bb43ba63959935e090823e13535dd74c3d067a0103945cfbe455c125cc2bb6e6aecd22841b867f6f45cc7d5337e62e9a88f45e463672c7fb280b1bae1c331e44925f7cf56f96713d9de72112f543da74a457b49027ec499e64bc15c54a15de1b4143420ffc7b7a7aa1affa2f8d616ebe18a63d1606968f15d60a989488f90e79833ccaa283bc69b1c0577e2ef828e0b315097649e4d8b2dc76e29b7b78e3f7d4206a979ef8d84771fdce3679e79ad26bb527dd9497eee1708c076565ebd40e24087f97f10044928d71d82be8e08296db719aabb1764dc5f9b27f42381a0ddedd09ec965727ce67749dfc948ee9165448245c4b088ebe511170e2157a29770544ba59950d2ab3867c86633fee30c83c245ddb559650ecbee8f5e8a22ca1e2045f2f159711f6a173850df732e1fbc0fe8992ccf544c524714413ae11e78309a936e3c3e0c00924a15d291d3153656131ee0059722c2fbdb6e401aa936adb7b31785366de8cf8b876a26ad31455ae77e42a089152e0803cd3d412f00e8f8df4bbbe7ba7d81938dc26a1e01063ce81b6908f098de2210491fde5a62ca8751c81af5f48985ad91c4a1accdc98b7987bb59bf7c90ffe6e81793dd5b271e18c09d771518a24e9209930558062ced32d111ef26aaa0a80a08f5a02c65012f1f7697171cb7a2138997fffd79117180097cbb7d40eb7903a56701c9cf9394b32b61a649a692adcdb5c9b9ea8e8ab1e27974347f52eba7c159b6fe92fbfe12588a5a2b8ef56615939c2ce30d2db3a2b2923267180bd9265494a793b169a0b85e3757597c3c7db994e7417219754172c69593f6471f483010402ea00925da8fd83a1a2d15d843bf9f684b9bfbdcdbee02addc42b993b7cce510b06771272cb65931fa946c3c3d1cd7422eadc4a09ccfbe4c4384fddaf471337f159b9149fd261797f987b71b6b2a18478f34e7c20e4dd6980e9cca245e93cb833b94f16712ee49ff4a08cc231dd5f8a793f9a6dfa387b3a6f3aba672419f47e0453200a9204addc68f830e19bdd80b14b3749ea1f7fc125d3fbe91ee667258c7c948b7b7d1de958b162860c95cdf9692de0836cedc029542b0fda9783de99b4d7b93b95e4d2075bae2af210f2f525cc2e4e0909d444372a5bcb68bc76ce40794d35602a40d5c68aefef67c5c0ed203e1aac633d635c81c578cddfa2fa5587e840af98c42a7e3be18e3378759b4009a3e9918856f7f6f7aadfcdfa463e4de7eb4313940a1bfca2776cc257c16c5e0798579ac58365bde964086f6631f1bd31e93cb298c19d2a45a89c0765bb0b6bb1ebe0970ce66a728163302d87063e184d8feba4cf6cea90022f023d86a107b15bb836d666d353eca0f38e1d78851cdbf54f9c0213980ec3db05e03852c3590c37cced404480e38145ab5318651b30068857937a800625c2598a2c13a18030a66f32d1295baaf563f880b119212b57b9ec9ab3f8a3e660bf17600db6b2f4e013e30d2a6612526092c8cb530e9f9291a0ccc9d138b5f2f66a02112e42e29442b4123325c2a04867b011b43079d445767a170de727e28be7462b5ec8c6c48d84131747940427bdb60f5ba8b8aaf0f79912edfb2e1ff9ea458c22779782d1c4ab0ce2a9b59d05acff391eddaef5774c7bfe46e78484b49fa95b2cd2e555b14a1031666602e254f79bdc669e22235e4687b6699cddbd62dc2e5a0013b434401134dd1de014e61f40c58ef8ec2b48ede5521fdbc738b9cef6984cdb94dda92952d22a9e593c8f4896aeaeb1f28bf2d7fe3f00ace98f0e808fb3d560f76556bbd8a6a61a4768f5ce34feaedf9873afa021d9cf2b5ff89bd2d2972a95f788b65ed684a6c64c03a0d3b8746c185d20dc80fe7e8673dab41299d3a169a077a38a9334677f07df65abbd657def65911ccacd21aa24c73c34dde47c21fa969fee4b8e0caf18a4f6d01382288d2ceb56ed4b70e272e60399248c06d6c02711b09f34e4164c9fadb4d4b19981b89b1b34742b8f1a9c0fb608ee064424c93e8d250080fef03328e7a1595fe63eb0a579cabcad591b82fd13e6275e6513859a06bc1430e8ccd0cf2c853578b2e49e76ea86d428a6dea72893387ad2f657e662536841507e8cb608d2ca99e9154621bccd3b22a780b471487bc8a9732719eded5f5b59b47cfa239234283fdd48d65c6987077c79eb35e3e3d0eb7cc726f06a8b3f293961da768423267a50373151019310639bd403253c69f522e1f634213b1344b7b8a2075c3ed977052453abe6a8594930f3a5b2fd4edf84d902f1919b2e2ae03cc536956afe07651e76ff0fe9f36e896a0aae9e3ca362c83fd6357b57105d7f7e7b536cc29df377a8ddceaece6c41db27735c7494cc455e86fedcc001fa1f421ef4bd233b80fbb7c37902a2439ea27d8457c335622f88ef6ce6e783231067d29ff1af5b681da673cdf99be226e0b4d97e4f04f4bd5137f7e2f684c706ae226577fb914860ca646d4c2e1b6fc5bb0436f4757a4aed44539e8b863ee7f343911b6f24e5f40f4ce12ae7b0d54371d551966dee4f8e2ccee8743fb922123945e038983448ea6a0e4dae92217e1300b9a10789f48a878fd84fc60c7d7356658b99bcc481d1f26a7b2ccb94541058c52b0e467e451e7f381bab9c756df5f3509669d14af1b4d4430ed1fee1c9483fa2d8645bca7bcd525dc4538e027dd8c30dba2cadec6d208cc09dd7f2f79fdef5fc2b094bc72dd14075af31337e2f64793feb0b4f0ed02f378390fde6ae675c64a07496fa3f9c8d57e04fb4b8f79c3c213ba6410c5bcfdbb7f9cc05457ec284b51bd6d2be67ac8712d1af6d80328cd68a5b2037445689eacf80b7ca131d174891cc07be9461463d0f77cc0be9796e19064427fb060dc6b244344e4f139c4a3b846209bf292aa5eaee8fe31ff9850d2b156c6b27f0173e2738b01c0606c8557eedf774928a647a79b7a39f16cad7096114618d7e97ef481a548634811b3f6bf18f961865a48e9dfd5911fc248125148b7b0af1659b9d9757e9b95c6c4e5f1d49b1392c735b50edb392aeb15a72e5c4426069e43e1f93a5a661dbf1428f7d21adc9c71d057c97a8646f700fc3d90641626a419ffdc8619461f46f426cd82d9a69faa78c676d5e1b81b750cb3c87b137cd72584fc668ca738e657bbaf648c4235810bff26cc887a8ff9f75e0d604cd51704251818b6a80a17dc120164c4878a7ce09e57a7f5774ac451afaca5d6b03aed9472e196f91e63474941d1eaa4e490aeb31ee968d0b89d5af8a397d25822e2040b2ddc33bfb72afbe261f6e38166802f1df3ff0ca01dcba549fbc6736363aa50ba2f1364cc002aef2ec52f3eee0dfe2fc0bebe16db0ba2e0df5e331c8c4dff04dfbbd39098ffde2a361195d0b1afcadf1fce7e369e76d534f202352424097269893df194aa040cdfcf2888662798a61d3ac18a816c1bce8483010611506756fbe67b3f75eae6142c6e9d0f336a2e9c6a7e58652ee31f3989d691fb2cb7515e6144d3bc636876ee7ae9c8160a7c54ead08175089c1fba30cb49e46801600a95c10384e40825294ef88b3d9bd83779cc3d13e60c2ec0874ae8d0b892a722a6a529eaba53e44ffa4981c919ea49611d0633e9065bd0443fb81f08e262a6159f23374f7e242526bc4b90d2d43ad0d7e0d912b39ce37350129e9f1595a0befdff901ee8d33c66f489730e15455646be8f9f2e13437bae0c5bd0870a70f3deae07b3297c1b161d8509d178848ba04ddb03636af235b3d6d547c24256303206671c7a923d1739302eb80318e7edd9f2ea4f2a7329e3bbbdf2b33e07b4717393a1cafeab14695073879b8b96f6c010998c21224a00a68beeb26b601d258086bdc409a080cae2ce284ab97c108ed350a992fd6878ee6e980f4b2c15c6d6b65b253ecb23a6e0887370be6d420f3ed14b8d10002fa1fbbef87330d284e4802ce64cc3e50a623a7c563a1b2bf348e28bdf2508abda4af4349006409b0a7a2aa651eb5545370874877cef9181ff78b9a9b6831a4ad55fa3f439fd7ca632da54f90f953d5e48f4c1b59322ac2d3c588910e0a81b040d022137d8370c7fd2af04c9c1c78f5257ba5628a1e78a7ece9a9731eb34ae7bc7b6bd58dc3e14b67b74aa0e6493228dece8ccc0a49430bf26c3378c5c181658d7cc5f908451283077c12835ac68b1fc8c42b04d36df5ab236e356802e4c384cf55eae27d4fff27c44039ef9ce4143db1c28dc142c876a8b67331187da572dcde9109e08b67810ab375ee9cb4e51430c4d0c0472a91b00c614c32adb826a52f74923807a9f9464779c6a98848c355325ca5546167b4e9b3aeb146d7850b6f6e9223a76fe3f7265774329adc085db1c407959f8f94d921d60b7cea3171510a13f7538b14312d067450e22ff3ae06742fd854be57a221d805fb2010cd634086b9cc9c07f579b6e88f966f50307ff5cd0bfc45ebdb1923b9eb1ea5fdf1f40c7596885d91a9c0176bbc46241acc7d63459d6a90bdfc9ac26bcf12c00559df57ab9ab2393c5fc50164588c5a4b079d19950888241ddb3f118a30f081bce18d268106943be48222f976402ddc92071b379ed279a2ba54c730fa8d725e964e840e2ef94797d33a19092ad223c296ec93b6585b24c9385a13869c483e0bcf6b64a52d158515afb546d660cd1cb3109224ee134b9d0aa52080834e7c418ecd675f82174ade8ec1d652543f97c31938a2b963a2d025d6b5cd62aef0181e3896c7dde3c3e8547f36241eee01265a4e84d2c777b5ff6cb9ffde688e33cd8d130cfd85ca27dfa51b55c0ba513bfe53c3cada601431c965dbd02076b0070fa042691ddab8ed02ffcf05a3396430740c90f063d7e4f906b60e3c12f265522ad936d378ba44eea11f012fc2d99ffc5c06cce12884958af85b7a9d04043a80a95417899397742e72e6e1d52bf4dbe206cff9a859dacec5b59dbc15ae2242d852e5a5b3363f59835c5306eec34d9964b34ff7c0ebff8f5bd758005f43e845073548878d9e2b8c2e66693a070b143844a5191fa571b27466bbb9bae88e8b66a7f806de493b0b67c39c2a75de3b252361b42ae23c41785f53dfdb64d8b3d01a2cdf0399a76539d125a0b878a3d8fd1f564b2f295c44215e45f4fc8ffe6205dd871dc72d71b696997e1f8081226c844f7bd38d486047363bb00af9f0e3b884299c07877675c0d42ca8bc0d5e9128be2dc16c70f1d42a3a02a2001bda9c27e7a0202119b1fe4ee028b1e5b53dc20f82722677031d27d8ac05196483f2a458a1b2cc243ad24dd4a534c158764c514c0abe2cc84881ecb0a475839bbf86c738a658a10fde19b435baabc545c4975f75e2800bbe51c5b1b0fc44704ec3026789e22f4f09f01ace90335168afe2ac3dae016291bb6390e00c29c07ea6fd185c9a3e5c947d1545e2c95d92c5f8b49d3536d1159ed883e82986c030c6107d9059cab519915fe347948e94ea7ceb6a7a633b8613ed7c037dccdbed989b1c97edb75424d6e864182c19ffb744d202381bc8da551d3e69c18792a3bd072dc8811e7ce5d499135bc56694c3bffc390e0229e957c4c4bfce30cd7245e75e54e4943a6781a990b7bd42904c4b0e69587b8cde91b2475da73d5442eb996518f58cc3908e2cfb3d465298efcd24b587e1dde2af33beb9474064d2d4adb038ea0c6db76b53badc15727f072166fca350999e8965b81af3feb8de6cdcb5100cb0a092f56048af277267abe514e3c575074a55adf04401953a743d2e6fc8b527c8e16ff5560800366696647ecaf9b5843d9c182e2a4fd60b74fa23224ef99b782990f7584c56df86243f14cc250b051a745e0779fca22fbcf52dcc423b2873e50b0c696c483bb1252a19b421a18b13337ab289ead6c10d1672e4818f1f52dc767ab3051a496abe80e745e087422198f7a9a736771b5f2d8fa8a351bbd8badc072e38dc81a240f1bcdb8bc2a84eb94eff9853ecc2cafaf27fa11da151c2bc2bc23c22463f5f6974210828a5009958cfe1836f9f0de3adb9d10c7479e9d7ddab75f759dcf495b05004a1b5a1477e6b065c39b2a2bc064bad3b0d9a8e29c80096905953f3876208fc8ff74b6af14dc499646c2f0523e7f59aa04b00c12447e4c3fd63b4d332446d0a77e5971578809baf7468c35ba3e4f0fb4b1bbd98eb6d9b2a524a0d2b00bb8763a494739282169eb1ff00174223a9cea27fa1033117689ce9dc6d488741b5c3a2367637e9969f959adf23fa18af1b4a4e0d0aa2a862584fdb910fd22276cb56d3d3e0543298e257d895d5ccb32584e12ca047d0f6002c6c9ee344369149334739169a386e8490c8523cbbc34b84c4bd16c71a952e592954ea2ff3868bb29cf306d43dc35fcddb265d369a6d1ab1b6beb2bd8a696fa630514a18266ce1bffa87dc44ac936489dd7b43a3221838b315f91126b1ce571ad49a6e8d9e332e98fbbee5b98c9c80035539e8b3d8efbb4826f64b96a5a4af201d7d5c783e29ae4930cc365e40d0bc026aadf6ecf6fbc62afb2daeeb54a04be06f846633ac24c847c8efcae811fdbf2b9705a1a54b4f2911a7ff00f348e8a4649e85ea68d94bc9d9484aceced6b985c036f545614994af7e1f6f63328bc2c0eb4a28a733600874baa893b15bdd8b104e6ec4adf94878939e1a8a8d8a528415684753b30705c18590fb6f72204a60eca768e814483e8b54c0c970d4d7f9f8d9134a7a6395ca60ffb86ecae0e91d63b0ef6ecdc548e02df292f21b89f1176291a4a66e2e6447301fd77850a71d74d230c8a399acfdf134526e0667fc3b12837f411b938ee0474836981c7d3fd4c465d4e8f04b7ace40b91de89f1046046fbaa5be27cb190bb5333019897374d1b50750911bf19d392d75d8ecd729fcf47b1abe0ac3cd0aa320b257205a78559bd227e3f242a57d6311d208154393ed8955fa2b6b5865527d152a21b98441daa1718be57a24104f485d427c430b66aabd3b5da19621f88d66af06f5ce55589635ada16ba601a312d0991b6bb031837345032fa600f1ffd928cb435c0ae36b495b697b510442ae575f79b428f62e8ecce57972e376700a6b49d683f7dc6d8289699eff81514ce7bf75cfe69898d82e572e222ada36444185d2f6cac2e9f017fd6e5a10c8bb3af96bc5cd2dba2342a19f3433497dbbd1655bb3b2b279500b7d2527f44f6e1c6558e6041ab456bc2e2f5b1652f6ecb81d0ce33d7c40aac9094dfb569aacba2d3a1d52c52c1cbc605389984bca8e608bee600c5f1cd39610c759a2377038f72c241162bd0a95b5baaca5dfc635b9532b4c1338241495940d1b79654a9d850af11aac698a1c4ed56b00075fd6954b4724fb0fbeaa83dc5dad0274d1e8845f728705ea6dc108c3045da4734b020828d435ef5b050342300f5a154fa3b539d66600842cf7b2b6156b90035d44b0788028115df4e5ddd809bd59546bbbc7db127b6dcb6360486846bedee11817147badae930927f3681c00569ed0b31c362528f89e2bf679b020218e8638ae3250e81b3d259a28fc8b28fd68323464f67af5a6c4f3a80b8e4af64e42591103a765ae8aabca5ced49d1c7699354980bccf2b746608a208316fa461f12c4279ce376ceeee9a7e958cebba805acb32c3320838751fc2e7160fff871909430f0b1377711d4016ef3ed8988f50f0b69998e3e8c14f211426888b399c6c276e3a8e0718cbd21d9859532ecf2dd2591b06822c5aeae08a6511a17aaf2e065f7efe7ec913b125e395099157aa921f5706f754427c14bc28f606c2d3e494368a1defb83c1562d9e488b019e3a63f0ac3e815f3ff6d4f4812f0f5ee0529f0f6ffcfd98badaccb45a6d4a5e7e6c95d3ff7d7b85960188c728bab02101d23baf90c54ff9e4519ef6538509dd5b74035465566cebdca1fca267ffff272ca0d44f0faecf2ed8809d786a7a86e7b1632f8740942cb3184da73bb443cf290bbee59eb7c661ec220081dd2d89dfe6171159bfd8ef993d560b2e065777507c72ad70f7591660bb4db601d42c71a422fae68e0c0baeb896243bb5d6d47210350ec965508d8d29150f87035ea28d1bf01463f93e2a00c7787225fc0fffd8db4d42875d35d4b4f74500548cd88ec812b07a734dedd59a718c0fa3f4de021534828773e7d8ac4d3982e52b25f3817f448809bebc57f18653865f713485e81cfae1a86d05edf42d8429865bd07aad4561c7724ae74ce68fa0d28e6d2ed91f677b981004e7b358d85bf34b8b19c908c1405bbc717f87386aea8925055141779006f4cd321163ecad7059b156f21c20324cf9f3c5cc6489605a67521bf5ac69dfc57affd2a860c5228f9104360841e002115dc5d7445c7e2cc634f5b04468ebed7ecb3b5c2fa99e2ebbc355ee9243d7b04c7feffe42a1e26f4bac59bad40628493cb0677147cfc7cb5ed6305dd500802b061ac22456646e99d1c205331fc08f3f255d048117c9129f711734a933e29ccf2e95b6975d572f87e0731bc037bf501ae70006b1b5bb54304cc24115b79d8b8c0a0f408ed64c2cee200eadd8efc37072b94de7cafb6062d9a0d0e44b05d58f25229c3465fd1bec90200ab74764d55b85c661428842249c3ac28c62a570bfaf214bf013b2fda0d452726f9850d75f831dfd5852aa1723fe86d75cd5f8bebf6f09695232e3167afcaba859fc40283476285773ffd4cf256c154bc5322059ab20891f122d299b8fbc063fc6b6e883414352af41a0c198080b719e4d464489c04fb95401cbae2d086efbfa3811806fd1f4af13824eef063e0536b547ac76feb55c490be1f16b0287de27c72acc63df4f5a47786d1f731f3b2b294a6ccd76f01b66e5b0ec3bf5d2640732a06196f372be22eb2115fda18bde7df36400fb50911ef44ae0b5cb951c6692b4e8f3c6e4c5c6b6a1cedb63430b1ff636902b45c26dc2d6dff1ac14d79b678fabc5b5a39a9248799a55422716894a0a1b80520bb814d5865ab46e5a747311592685f702dbbeb7aae248332c35855763f803926cb1fc920fe33cc3bd8d8b1e5edfec2f1917513d8179c4486c82f69d168576a40959c0a80be1424f62f8eb0e91af3fdc6c04a9ad5b1ad698ac523705efd0ec87dc4acc7f9c65695671ffc40c89e19b162e8490f40b5f731396dca6f91572695f04e5f5db7ac14dc479517fc1bfdd3342e68a7a911959f05ebf345252eaec17b467b8f208adb72537a523bb062cfc12aa6e2d29fd20fb9ad55d684a51614a611879e0a60fd6f41655514165cf7ad33f06879da9c56cc3d87a632f0409d110a5ab8fe23911d4549854144b2dd7e6f641f21f2b4533026c8f49a2d28055aab53753588f04281299649a37f855a37ec0882fd91e9bf17220f051844eb69ae561665095d67e695dcffc07aa7c2f32facb89d9b029ba3e7511c8a0017e85910b00dabc98b91128ecdd0e62fbe6ac212e4392d0aa01a1f2dd632e26535f266a63032fbaa552fe3a96e4f12ac671f9390f5007c5fafb65e74d063857fb7148378ef008ed4340038f6716e98e14b5d7bc185254dcd721faaaf76310808d8ccf76e3550baa379905fc76649ad7af652989e8a2808f6728c7724ad99e13ea8c657b06190bf67144718a7874b9807e5053156af367869a567a062d395cbceb89fdf3f782456ae27a4ad876c1508d2ca7381cbc1ab8f22423757b74f8e6b7d885ddd5db86943eedb24f4fae3f1fb94290afe0b04f2fcbeace9630ba876e220defdfb73f35f7d6292e8cea603d163e6cc615f0cdb5aa02f4d6c3baf8aa6aee7af9c6047be30c286196c728ab316914bc5141bf1066e5b0dc1eb4e298bd33dbce6410fc90041f33e1901f8e060d100a50e7a0979d788a289c6fde8774168efb4ca40bfb942757e9e4b28c1d197d06259e6eba99bf85745e102b5967dbd941562187ce42f228406b890f09268533f61e94832fd731ad4730f73a54f3df22ff13315d8bbe904039731d395b3af344a1cc8bb5f16ec9f4b02d535688e9981f9fe6e8c2ec1d6f84312741bcedae10ee26e86bbcc97ea9eac6a333fb0e46087575c74e5a5e90a1d0af15614927e1a567137345b2b287a6fb01fa2b2057ed2c8c908b8f5e5dd6c89cd459d8bafcfa9e2130d5520cade805aaba4714021b7ae4ccbeef76e8d3d28e3226f9d22e0afd057a341b2b98a6e0d1857d8aec49c163bc32e64e88d1a57ac0f1f33a9cfa88050933711bd68c66296881abec666cd04a2b13a39f33a8ed824d9390acd621b5f156e28c01e407a0235db5ea04fb4ccff796caf7b6727e540ef237b78a74aa879062f7fab53d1471d13058771e469553426efd4968152895f01203608c00a00582e0720bc4fb5942351e83aa3cd10fa06b57760704221fe9fda9b9e9097571db31ec1b35993e12ab68050df598db38b845917c42eae3569d074e340f0c4ea13d82542f1d7f29d86f7c2ae08ba958fce0334b9036bb22393a129cfb2d004dbcac4412cd7fd1dc774f49edb834aa0654b9c41a72324e30040000db8a9ed137861ce71b39335d42717c267c56f95fe48e931b602245c0065ea75fb34b1abfb3cadbc2d87b70a515c342c19cd059d35e4eb1621b1ba1cd6ae7fb4969a22a4c72b5c5a75ab22fd75595a7a33e601a9bb735867190ef197097a74b4de39abbd7ff3f829b06cb92f7a45430468d55e30953158b1dcfe3848e7e62f4f2932e03db1463d6c90d8819a5770236f0449eae50b18c276f05baef461b60abe4d41ffeed196f2a57db47e4f67119e7766c41035403b43e8656e1bb6e6d92520ce4693e793aba6f9d142c89d57399f5f5185fed584ac2ed9df9a684706cf15da71721bfb2e947e7b8b86abfc0a17a694637a6276e14d7eb261cf3a984da25e39f954fa88ec6207e8571a7daf09465892e8242c5d1d5aa6c3472591b85d0cf10726addd7af8ee5a7325579b6796b3ca05832fba9fba685fe2f1d4970a29aaeaa9058ab80b8d2dfcdc11acd2e47ddcbb8b9ce1ef1ae7192124722a3a90edf74fbf767fe9fdd30f6cebb5ec734a0089bc520ac0afd731c3bb01a5f41a0b6e1dbce17f89957f6995af2d19a6ebec42cbe75e516a80053011c65c7cf631119e45b52cfa63b1be0ca8afb01b41fc1991819c3b27fa4b3f03a19b7c932bc798d7d4f1d567ff3e3c26163b7bd9cc186f7559cc1111e717b230796aad38925952b6b694b42d701ee2ca7b71849511510f79dac053c803738e157430d8b22a82ff75ff1e85df790dc8276c194025d68d4f5345b919d4ea0f690a74934faf377c9d2f0c318a7e2b7383bcf377874fa252f72f8d5c66118c4af71e49b2699bca07807c9afc24e6773b39fc99b562e1f7d43fa7e686e1814a5396f90bb2eb4f82ad2a4a96e7de72114dc4081272a791a619b1d94202cdfe7c40c2ea4c1660548cfabb7a75e66f88ac4faa51836846a789bfb6edba2b0ad5d8186e241767508f1162ab497575ffc999d873b824be87cd3f7cdb3bcb6a7673b460ba18143544a4ac796db7b0fdd74cb163c613a172ff9ee5be9c469ec6c30df3f94fdb9c3b2676145866dbd6dfa9cbdc03a700723c9c92cb71835b907a79567fbd33e98dc5d29e094080d3d728a4a39c3dfd9a1e0d865b4033a55fc8b98b555a7724778eb45a7e47f42ccd37aefd0bf44fc46908a9ed175aa9e40e71d865d61bee9740f69c6486c71907825881b0fa878d676d6959635b0be3013e2d3775685955b760f5965eee858cf37b4063f7c2226d7e3363a3ed995e94b57c21de8df6e9b1f28a4eb73ed06f87db8c3f1c98241eaf57ad463f256c23cdaf4e9bda8a086de40ab03a943e8ee5d6200798cba91e22fbbb196906f87be9e5592eb0d82770c91ee200f409efa22aec546aff2bce6228e17b63cfa882969bcd6ca7a12f4db32043ab2ff0cb08a0bb80c1e1185fc02a5d6ae18524da98754e476936c65627f720ca375ec2a59394da1db246607588befe929cbba43739646772b487f996386588990b706ec828c01c4b73841c45c50802164d8607bf709b47c79063be29a48480d77f76db71b3ff95f50962cbd944769395f3859d3904d4e4b7235c9563d8c4a02547252559c626358a328614c2d83bf296e137243af7cfaf1b7c6435aa4c3d3be41ac82bafa13c099af8e3f6a8d0aa967f059557f60a72230ca9212526106ed762c5aeede228a14f683eca7bf34727ab2442b367686b4a107917dcb035f39971f74d79f890faf7d9657db43e6e4cfc29dd15d44b99decfa7db95dd1d4150e40c3d3ceca1bdd730e4ba054e5556fa5f6929fe6a1628083a6c515e6754f24ae6eb86bc3236f1ba7298078e6a776c2575886fa3e582d0eb609360a45468d53eb48bb796bef8d333020d79b73fcae70558813dee56389a634988f87133963cbe513b35b7112e68962b5c47229e3520d2e78dbdb2d8f21888657f5b53585f887849855da2070994046b446b0c23ea5e64514464e0854289a7c87dd44b0e1f8ceed5279819ad226609c63609ca62b232f6f7dd75fdaf11385bc5868d8b8457f912197e8b2257139290d62fe7faf8fec6277e58ec446b849198b6827cccdb2ff1158dac7fc9a97368210246d05ee670d33af267c44820c2c5c1c3ce83fb0de180d81bd8e206a928b5d18ab417f354f8ed7fcc8595f0e76976fa786e54f89e0057df746ba93b006191f8627345b88a910c3663a0956638070d57602a39ab97e299220cae8cdcc1ad954b45b6b40f7bf82b6d1e76de13ecd75e5dba23702484d65ef4ac27671a45e6e28dd56c4bc9943f504fcfe084a2862cec9cfe86bbaf76feab00104ce0b659eb43240f3c58ff68d8129ef829365f2d6d88496c7157e5d4620c619b7c6c3e545be0aade670c7402609af7f81b54c7679a7414ffe3411e083d7f2381160e8c32dccf5e2a0f4275f16de86d732d87d5f5a70024283a208da61ca2f1ba998918419806fea4f33d263690227ca0deb0db805cff7a6f7c758343fe9d4771aabd7416e329de0f4dc8881924ed6464ee213dba581c2071a4b6c778261d24ceb56bd539dbb74ae818fbba32dc1b9fd653ad07ecd5b5bbf4a90faf26a9a7cbab60137dbf9f193d6d77c6a553f7e4adf3f6e36fdc60e111a5c08017c1c5c93632c0904fc3544bc8665d2937380a94ad3f8b67bc515dd6c7e9aa510ac2ff192ad1fa5ebd0c9d2128fa35bf17cde56f87652e486d97bde219a402a2deffb831404daed4d427db24ae68f8939fd7d5645d36768ae75f04b69b1d7363eb8b35974bc5f4b6d54b91845e20c80058aa9e592c179ed44bc91a5769785f0d7e2816e7017061ee866fc72920aaec011429343c2c0f95f8ac21b9588e722b0bd4a552e2b959e0d9022a1923b19cf6c5da39726a927649a512ffedb5e3d67056e9ae9bcf8e96d3979acd7d3fd2dd39e750fb83495beef07b15d0e9f0efd607e652a1493f7eb5119729f01889dfaacd4603b9d1782967564eb496ba35ed69a2f221204fc0742f9e262d106acf1bb32d061d6170b1bd90f390a40ee8c279e88844758fbb3e2859eb697a5cd35ed0e81f245acfaf47842f12fcc2cdb4813be8c790d91d1aa3becfbf301aaf0ec6a6171a307ac02ccf8cc3742ae823513cf46471dd8658d51168b92e98a44fdabce3d2298c513636dd53dab94ca18f7d2639e49ba73eef3df0cf4f24e52a6379467aef7d3643c98d798206e0460329d075c447a20e8e8a29cccb61ffaee739055dc952d52d8ffe59c10548aa37effc1d28b831b52c48578d30807128387be77989cb1b6d408f7c893e6993470c334d65e6e50d9b3672e733480f657be6f45760ce38a320c62950b50b496bef6ad530ed9271d13c5f8404ede55fbd786ae9d164720e3b57f01abe17221fbb2bdc80de10c5bedc71807cba0b53e2ea76804827351c239b34af0208ab22386bdf2e93861ce6cd9e36a48351633ed80b74b85e54778511ce0f802ff6f1ec0b9c2a6a8bf0b81704569793ab5b5c554c697f0a9aed9c67deeb48e99a14c87062cb2f31993908024973bcf4e30e371ce8f7181f73ce8bac4295d576a678c27826a0a059bff948e1bab0ad67980c83d66b07f82292e8de4aa31bf8a3498cf193805a829157b33dadf229a330b7cdfcff122df10b6d87a384169f9d0218b8d8e6b60be454acde28d4068ada0674c131b517a24e6d921987fdc7fc05e7770f786656bd4f030f97a0479c15879d628a445511b03eb797d342899f53b7cb9e5f0a20f4ba86b3aef84e68ee064e1e6e8bfab0b81e5f494819607e7ecfd6985f271ec71946e77e3084a931810bbadd1b758a1b48f0c48f66346c9f8a36da04d6066d484f06a03b703e2b24ccb5243cc51f4d16d06e8a552a6d93b5a8f0be197655d2b488aebde1364475df126337a0a44285a3888d14cdfe231bf45ec9b7572611f4dcd5952dfed3f0f0b126650c480b07087c74dbccf9bb4878cc636897436c89a20ffb8a21be17cb59766aac29d3939801da0d132f2d284d26cca041f2ba4b82a8ef4d96912bf8c7a6b119ffbe56f041826a477ac45010ecae896b1dc912259d0b8aaf49991e02a35305c22bd11ce6093f94768ac4b7474524fe472bdab3519b7403d3ec75b2343229aba2f130eea0c8ca39971cd1bc20e7ca3f4204a98652498d662c5fdc1aad4b56edadb7659e129064e0d49d1a6e3d96ab841e0c8f7b4193d15b9c0d79afd1364a95154813b9487aa9f253098becb82b716ed08428cdacb73f70cf6a14aba0ab311946838e8c2b4d9be39681e849ae0dacb2eafeb47cf6d7f1a9af9cbd908b6984f56dbb6f953ea87509d0a4cf1640f6c5737650b166a17a1daadc87007063618187b051c069c0208e6bd625548b52fd59e0bd440dcf4bf94955ee4bb22b50d82ef34c0c0901abe05362e34a213c60816df357f4ea4db5d53666b4e8f6075819b2fa87592453f7a47717a3d7e3dde699f51543989c45776d8f2f0354321427298a6ed10cdf2c0c83117de426aaa592201a25f02384b9ad81d3433291c09e4da26e1ef4ed50685e658a48138a3152a4e06e716bfb015c5fa1917740eae510fe3a8879fa41f9737b309c77c40627e3c01b923e14d202b63c19985dd2840e164c2ffbbf6f070f24f33abcc0212e45c0ff3133607640d766f6e59c806ff11fd9a45e48d93c1aa577fe5b34766a43999c3b3d8e19e285505829a6f742b245f0a9918f15850ec826baecf7172d468ee1a4acb9495efdf53085de056895630e4c61614f7504f7e56d63ebbcf0c209168e06e096146cb10cd5e7336c4fcc034f757c15bc3fa6d936f45b236c2847b21b006b7ef450c28cc83af6c324300ae8713fcad6a7abfdc86b882edac5758686abce3ee6e71fdb9bf47521f5727cf4d60ad632ed20b2eb757c5c2e2b66b1a265116e476bfbf2b641d7ddb5396d5acfd9cbf826d215acc5b8892df37a9af89bef4cf7a5f5caaa15c23269f4c26040f03aea497780deb5964d86117a57fcebd8f5cdefcf35793de1d745362b184076c0518e498ff553abd8018378aa2965d244408b5f0d759593a8d1b235d0759264c38bd6b5b596a1a4355801797e99847534219e349cb723257821b9af97878d62777fa5ceea231260ae1f135e2ae639f31a9483190d03e2732fac0c2a6349906ca065e4f460d17e3d096b93a7e8f55df622b348d48aa80a1323fbc6d672e936b840fed6ab756bb55ac1761c4ca4581a28aa468ce5647f4260c65ac5fa496d18cf5cdf025ca11b74164b0573144ceea5113c8abc990725dcdbb075ef5741389042d4aa5faeed184ed29f2b9ff4a7bda81672f27d7a261c691b159f3d0e6240a19c9017718abc85ea385f1c5cb7e42376e7ca58aa2a4ae1fd7e0d092c72fe4cdc5cd0203d6707d29710177127b3dbd42d31f83848b4000e79d486112de6684e1cafefe8b2483fd51be1cc5a625aaafe5ae5f6e003ec5ff7a1f548ca32ee5d264c39ba7a74735ae5497acfba2a54e17d7c2e3405aad6b58ec6aee4dcbfe737087273a78eb99f07f893c430473bacd224cc58aaa680e7d2a03e281bee532de0dfe51a0955b5c4e90108c244d8a47a423560e38a8e48fb1738035aa89b8a6de54a384087cf728326833dde26dc4e4a961119cebbaa0daec5714940f6c98ccfdafe99378acb1a7d4834af29bddba095b8bef6d271c21f05c82ffd7377b4a97b4b4054788e4c8498b76b31deb768c04dd1a0c5038ae0c11e63588a930c2ebf065a7b1d76fbd38e37db4cb86d6126db62d9dcbd6509a34129664c12611049767d4c15bb4364d130cf04736b355d5aa239fee67f0ff2f155c02552f213433e5db2563b4330368e2d12fa02b8dd8763eb7d2ade95cf4919aceae4e4b776a6ea1f7c8d9b445d78e3c45bba52afdfae759aca30c52deb8e300a0d2b15bdaf3fbfc8e06ef15ebd2d55818144688ba225b59a4aceceaa1922870376813a328881bc79610ce996048808394a1ad7dc32f640c5022a5d351005270d3af05bc8e875fc952fa115e5a5246ffcde7ddb6fd2a2d50f9a3354418423de7d5820bb790ade6d76e7317e86648f8d989656ba023d327dded20d729e1eb7e9bd829635835126fbe83c9f64ed623d7ac379c6ed7ba67b9484b0766a6f2cce6ec22a1209756dcf70bf6c5433d707ca047fe7436f9aea428549a5da885577aa1a87ed5a8c6e5612235a067f991000e0e9c5dbcba89900350dc29d8102363226dde96331101f82babe31c747a716b99c8f28328187bf0f95eada2f8572c38fa92f639fd1cade8078972e744a12fe567fa94850da6eba17c084333a03dc17a985689038649f07c8bf8aaacda159b56f4680b1f0305e3d2ef58cf1f2f0975c317bc97b6f9916416ca15adb817628a600967eccf48628490cd39e6c0ac5147dfabba2d6cb77ddd4bd9be417cdb17025fa2b12f416d167fb1a8c7056e73f36b702fa5f7d65b085efda7ce1766f6067efbea59e03ea57d7421816770d6a765fb78ed112ff27275079b6223d781aa291e9f00ef3e15a7a4c35fd139b426fb49bb6697e04fbb39653ce8a04b990b21006b8d36ca2598fad4c080d4ffc61ccf6162c1e09d84fcc4c74ac8e42b97c6a3786783b009f495545518e1619a1efec54a8c20b1e5da3f993a89a337c21dba0160e7c016062908fd638d07aaa872f735680074621273fcc38c78eb38de05dcc71b3b0bab5d52caa5c3549f3b1e7109f21a6adbd454e46b1f07f0be19a535ce45622950af7adc7e986acadf8b6cd6f722ad74c3d827067511c02e8685107fdd5a81e3212970af3bd549241bbcbc533d44b014940a7b2a1d35c876ebc79ba0d9076e5ee07cff32f9aecf5452b064f725ba5240385e477b0005577125a7ec7ce1df5585de382298ce192598b2d35039a5d459f63e3baa267042dce1e3929e37813ed698b2c77a1d545bae29f946ce22b3e142f84def1eb30f9d51a054cc7f0a182dc113e303d48a727f1371c38d369522e4ad47e0d5c68778afa76ad96fb863f085bac3b80e4d935ba339c93d4a236180075138b1f9645102480864a0e6848260cf50d3ca2cb3e12748bd2589e71074db84c7ec683925d4a0511ca66046f73abf71f259ad6ff603fda91382db5b66637978fd9e65941da0d77bce366524307d811bd1422adb87ea5f245ea37491f75cf472ac5dcf06529231f121879cbc2464436d89b279ad9eb280ef050deb0fe89a912d06ca6dc71097c056cf1d79ff732e7555e5d282cc35d8586dc271eb95f7c14d3b2176fa33161dec77af659d4d9eb39f9c83e1f03e213a3d45c6fb350f1c2d861f87560e817b52dd714eaeca16bb0628b0b6830026245468e598e40a5993364bba220e192c474f045c83b2e4736529ec894d24a10a34e6955915dbc98332cccbfc1213a8ed6266d714d5772372b2547eccfb8f810d51bdfb4a6576a34ffc385d4978679d7044e5fc5dba2ee7028db2ccb91ab2f000fa6643ee2909cd87d3764e7eb79da9f21f05eabfd392546fcb8113f5f4b6b353ee7aabbcf5edc25cbabcb150827314e53602c877b5585064e633fbe281dcd4266ab8d19582d44bf63a0a6e907e7fc4e1bd69bd4b4aa38d8a9a2bd0b2c6680a74e02d22c503534a538657d7b4294d51cc73e64fa02ebcd329f6cf6b9efb52a49b086314e96360897e91e066451c426d495669f73abbbc5d34097bcde1b9a9533e1cb64fbf1af12f3508b511c39dd524221c871e1ee561d98614fec352d35240345da3d714ce6c1f4b2c3235c14c07df8cc05c7e82750d4c7061e37f88f0f132ac68284d102c46d574efbfe7b71389f8b5217c8f92119fc9de26a69f3682703948101ab4c3336b02e1d5c6850469c86d0113e73b1f40d20cbbf5ee176e1860ead241f28891855f72fb009444361c6b14235ea4814c929781ecc07051269962870a50ae11f3db704b90ff01aedd21b911a1d8689f1d4a51075a59420e205212d39a15d9425aa46a58d058446cf69f8bad939d1ce3dba016e5d6a8e14051b2b32268092b606fa7030ae24a6e257759458cc37fa6793bda0661a9c48afd839aa2ebf650a341df2f7081f38c3fdf8f8ec07e883a1bb19144fcecc6aaeb880f209bd453cd758c81369e8e8cdfb43ea2cbac2e016608571561fab798611852194d4ad7d2df364095e7534424c0c7b982849f4ca45dd2c2c6e2cd8e24ca96b787e180400fa4f937685a197ea7ed1d6e58351aaaf6b7eb59a3264d018d8da8bce86a1f08d0a7fb409f5b2a4c09b10b6211fa4ba3dd1899f0d563b2e3b9d597bc4b9ea4e7d751f7bac4ce8bdb23d565247fa953cd151e3c6b5ed7e2fe1eaf8056ece1f7cb9a8f963b0494d0a6125e34538eccee54bcf1daba49511bbed24e2a2a7a1e628b15e5d088ecbc19618a2976666e187ff6a9ddc19853e60b595833913eedf202bf1bce597a72cab48675db012a1d823baa54578a9e0cd5d9538c1c6457f37f4bc961a9d2c102c3e07cc36f5c9dd5ea11199423edf6eac77b7958b6287d0d24c4e86fa27e7fe87f6eda1c7a0d924e3d6ea1b52c8130585900cfd03a8374abbdfbe2898ca836c7dcb415c003ae0a04e0241467b884b5ce7093562546a716dcaf25c23aa7c0ee87c313a9ec26e3a1032fd0255f351aa33f5e65348176c9fb76aaa383910ff236697854d0133a2a9203a4b8f74da7f9845f38c8b5e02bba69a6ecd2b7c92338fff0919f57661f2d43a685773edfc2d98209cc0c8f0d440f7613793a121cec1acbbd87df26fd8967a95a836723bc653666e612f76119e00286e3932de009f9b46c5b3a394833c0166d9ff58cff6360d93e5df1d5844e8a2b46fd4d1348c619b370cb4b9a305ab104afb25f83dfb219529804d1df424f3672b7f920bd9cf7c338f8cdfa91b2cd6e56fe1436f003cb1d95959debcf55789d80ff6a604cd9a8a0862d18e21366c428c436dd8d890be07f95372fc4b4948a61117d173fa06bebb9ac8874368a395e7283b96961ccb282c04f02299898df73646c407fed91721f0f3be2095e7338741a0a65c8f35d2be5b248df8954f3af6b7e5f1b527b3fca41c7acb76c9cf6b3fc027d5091852fee06f33f0ed49e1d1b048b55bbdd2ba60659e76e52b939268b435f9b94a7291500254bb255fe4b352917a12830ed39bd43e94a5a0a377a88e1029b0c43399ef5dc049ad9048e1bed615cb8a9ab956ec3593166f2d8369879a95076bd18e030ef79a1efb4ae9cdb1ec48ba8e1a839c421c89120e7770714bcb57c1a0e22a87f82b592cc3b210194dc863d2f76b89bb6086ff17884b7e801a83f068febfcdeae3b4fd53f0fb90ac2dfccadb778722cbf770973b2e7fa124eb4fbcd5805ad6f9e8f40da0cf51efff8ef33ed33b98e109a49804768a8ce455d5ec5dc6b4155b6898e790bbdacf4d005ae4f172fd6052e46e983e05819982454bd6138e4c3e856dc3c1ce2d658da5698042297124a25c629975df129526ffcc4fc835c43a1011a8a14c754b3255f5881ebf9b98b160809ca114c36d78d0d8867345dc09db6632fe975ff3dd645aff1f030ffc6a64699dd15a1a77776798f38476289218fdc3b5380721724b57c8693cbb93318838827f1a0eab71e2d315d7fa17bfc7b78caaf9ed8c2ab8c55900eab78203599d113cbe3b2440c419ed5b086faadc9a0c80c5f3ae4b2f6d620a3bb239da0088e8a6009958f7da35eb1ee6935e5a3c08968e602431779d1342ac6709d35db497264f1f303246ef903135d26477c0d0faa2220cce77d3a12910fb612399c8579f64174ebc0288fe8cf7aac3e4b5557f4ea25142da4a88de5dafc651faa2c060735a25cfa76da73512b2278042eb88653f9705bfb24142d422d1c897763465b6c9abd84a83f59ef84b60e0d7302783e83f795a8f9f8d5fd694871a3f4efcc24f53b6864701c965a363487b10ac938f57f99ffb467b1f2651b003b44445dd217f495113650ae010d1f1eb9251c6507d9d03de920e62b6eefb587a20e2cbb71ace0f5412278afeb7d3ec2af305f08482c80f78ce97875303481feb3fdc5ed381b6b38bd99c3c1783bb1e0dc7cf42fefcea387d64c7d85fa869f44a5ab1b36fc5945c514a6db65c2e9a81f3072de9a8ff04073a66d2c233c6b5fca4cb3aa9fb68c3f72b23eb29ef867f58257ee58752845ba610f3f1ab4c9e2f3a64e06c32190451a12867d92b34135401b47f9ee0501757fb6fa1c4fdd37a1bc3f6cb71655158acb78a84027a91edff3b018b70d4f2222f286db6c1f522743399635ed13e6aa410b322244e345a4b80670906691b3a5d2575571d9ae1e23b8a4b71d306a54615be9e7ddf4742388529c02ecf2d231be8f60389b7b4b18b68b8b29d68f8fabb4fd668e2bb132d4b67e9cb6a3859d6c0243fb231bfe3cd8e23aa84e03df756db036bc4301e53e16a4e251dd41daea3de64886a055025226dea8b9f79642aa4fd241ff8a7e4522ab4fc652ceb6278f754b649aa8f21684bacdea4cacb1716ca0c2f915db9168c7b60779d06510ec1b2e5c44ce7a3b438efb13b1d8bcc53787f9307bdd0145d8ff7f2c0511837bd461d923150018eef2905a878ff3ba455ae680bbc7e22fd9eed3569ab80d56d4e4dee1eeddd12285199123a250340e4a492b7c04076ffb4f2dbf699235111ff3e640051a505d6a77f68d0a845870b30b4dcaa4955c0b16fdb89cc3715e47079491ec6b77bf7f2e5ace99abda47345f3bbe4342c232c512e41c859a44de3a5884cc1b6d60b9384ab4f12c0b94163a023d801796b80b0499afa0f847f4cd205a83b8d2a60ce1b502dda772b2150c4e01ce777c28212573fb5a05ff8ac01e4e81e2b6b66a37411756f84d421d52a961e85fd42180ee9af3b2606a6124b1fd5c74c839d7bc96391b26ca63bd4ac1c28fd829959ae53f5dd89c83745ff575f020a63e721a192d6614877357f0ed4eee3970516c096ccef94af25afcef8fc5adbbfe82777ef2457782a5ec096b202d857d825cd6d97c264a63116be1cea3cffc2871b5507b7f93da52a5e4009d1dd6543abce0019190e9b4496d69d9b7a77226e327102007be9f671535b184eb1374ebe9a80c5ca96bc15f31ea485237d6c39e6588c7e9ae7222c0dee02ddb95d4a0aeecb66a89f1b9f22f7b4fc8a583ccd897fb40f38a527a92bdfc87a89592e84d202cd7d98da4570864696a76cdf8479aa95b2f772abcae6c5526055c418c6c7adef09f4238c36c0c6498d1bb9d812894555664219ca0d20141a9f06f3d101d25620b4c7827582f9a4f5a9bb0730edd164c9ed2fae2b33a647122e6660f0c62f177ba8a44346a8311605f4c31863ed3536b919e9fd7e75b0aa8a0c60a1ac4e8c2ddf35eb36b90f46083ebb0159d199b88233be31bc81d04870bb1e547e2755f072c23b4118ffaca3e08672dcbd61e279ce3999b43db23c86b13fc643349132ef0760726159b2285cec4c09b96490d243ad689725ef889f87b85c66b8143bf3626c2b00e53f735af9d3f11161140f7e0165aacc88371333275a5beddb31d883fe3dd86eee4b05fb2db26f83b3c7e56c2507865b4943cc49968e523362812d0179b77f2cdc327cfa0fae5bcf60e68918c31ac797443f74b67a6c1f396812010a84a4fbb214ef8b2da2f56ae01be91ef3feb9b7e81cf71cda27bb068ff61b0ca0db8935d743794f6f64b796a8426daf8368490ae291ca9aa8861aed6935fc9dd057f582da3fe8abce1119a904bddd930e81289a104abfdf5756e54fcbb5503c33778d54b34a056a000b7ef28c2317fc8c1f60f3e6731289b3c208d177549eb2c27134422d35771fe3806210d72c01f1d0b3b1a49e3b2bf838b0b553553750a384691e5d37b2a3c2c9774c1a2b243b8db6b32c7d883340af936818dac863dd00ca15418653f647574d3d92991faeec0511a8b83db71205c3d369b01d587a0cf4744640b96454552eb0e771cf93bb6a7c662bbd9dc725498b49ed880436e4c99feb3c659dfd92c8cf794cc8013c123dde3ce63f0371ea3645e8700462e2cc2c8be3f85515d476724c125e2938bf83c204de17ef271012233d6d4226891a4fbb93d3130f1094b7083bfeeb7cd25bbe8b0456bfaddfe026010065875a8ea79627d048f8cc5d27b1c4dcaa7ce05a0c43acf3a8ca6c4f966ca550bdda24013d3beb7e1bb4494e937991c0d296b4b10617be72e8264a188959b0f78eeceb6c558f0f11537a2a36f546f60cd8746ba200f180e2ea91896335f67351d36951a7fe43a4c3be6fe661803337f73021a2a3623c3786166cf52c1cf310395fb168636225499766663ab1cdba93a3a6bf735c2fc2c5ff4971c7c383ce7e12c8efb2aec37e142c814a680b673f7552131a8f96318e476f8b6bd54dc4f7c17c587d67357d666dc79ba5b5b40010a51ee563c1ff4d4c063d5d5640887660519da8847e98918366b022413d6159897f42f28f0fc79b76c62d18e96d917c9b9facd1755e9e159d66efb02bf7b47ce1d7ed9506ba9a5c0eda5b430cf81deae54f853ba8e5860f2ea6f8a14e037604cd897fd666c59f6e6d7acdb1bb8cf0c0175f482eebf4be6d6db83fbb39670c6dd45f23687bcd0064929a4c42b822966063107256c5a7f908e258ea61dddd36236ee505cb16f682e8d8f197490c69ef2afbe0b77f971ffbf4f2856fd249147f6598dea1258a29fd3f87206e7b0c7a0e1306bd1d04de3ca84abc0d7c851939630a796f7cb4b265311f77a273e01e6faf9e5d838fca7a998b153b410aea26e103c07e6e8e17d006f0962ccdd2aa01ab09681f8f961d24622796fdf85230cef4f62d6a46b62d65dc7ca679b321e2d38a3a1f06ff9ffaeb8b0198efcee82b729caf1ada675c521965d6e5f81cf0a6df8599d357bf491006a8c6d7eabdeaeed8a6d30dcba6b305e9005b7c9c327bb901a5229ed0ffc1bfe9c4ed426436339406f3226b315452b7258667c37dd4fa9d6f9f8fa811d89ddccbb5fc556ff0c81d09cb7395d568103faea53d44b2a5a4bb1777113990287864c2c99670d15209ccbbd9e2657733089d969c3cb22ec5a18538af86e8941c0ee41554c5532e1edcdb99b5a231cdc115e9ef53fe79834bdca246379006ebd6bdcbf82eef7b33014480054b7851ba1ff21269da4fbacf365e53a4b31a6ae91b226b194d5f572f409d2c80d61569b470a9bad01fff24d3f7b1b0d84f78eddac710aaece6126c7b473092fbca4aa227398813d545c0fd13af950a0d10948b593630dce204ff0dbe91ff0dfd05d5815400b35362beb956904dd1674a82411faf41d9fc7ce484b381b533f738eb3da2b087cb947af46542842c7bbb9054c23dd052c8ea4b8c24ae43c2ceade80f5e16734d243a61c51da9f0b62435cf1d1a052fd388e899d4520349896ca412b060107bc7379a436919dbf9b51d5c7fff8edf31112797e8822401a22ad776aa3a9e77cc330bf18b4547ce60b82b26dfd92bdbb0108bd04091fc19ea6eb96f4c26b8d6513c53caa53d76137655796fe0946b00154a7adf39b2082665a81d35965d92a808c2295e519fd8e57e7a0154ee614feae70ff7fafb4ae1fdd9142eba9e3308a2c195fa96a6d19db615ba9f94b8046408de98bb317fa43a8c3551324f486f547f12c131a2e0169c14fb034e4b5785fe5628814ffebce34aafc91cfded1b3b68b241a3d687391cf18fccfd21d63f5451d1b68573e67b3321266b7a0dd26d12fbb9da2b29fa3876960969d35ab6087483722eed4792f170eef512079ed5afcbe502d2c2fb5005784e72c2f89b7c350dd8582059fb7dcc3c6afb5f86281db715d3cefcb3af9c1e9745edf0685c0d95bc927e9d42fc830c6e3ecff7ca3edca63b9e37b103348b4bf7cac5abce0eb45c79140d4c99ad7fb119753623c79f0e7072b3d3bd691c92b0d24b7643cda474e171d8ebe2cc4bf68c50e5379f004b173f61e8d4512427e5fffe31125c5daa794d3e3bd73cff49a3341e49fbdfa157787c69230f489dccf9a6da52a48add9f8c7db6a09318874bd35da2c00abd933a15219985628201cb3f516291344533bd65932b70f02abb1786f93e2461678c56ddf29d0f79daa4e12923f40099fb4d620983bff725ffc82244a60af71b75047b249bf4fbed30d75d9de92e4de9f6e7be4b8642857a9d7da44d19f6fc8edeeaeeb2412cefa2ef895df5e2d096bdf6287c840799b0ad69368d2b01079077da26f05102f84dab2acaf45dddc367e8d5bd09ad5637a2d726865a1a5dac79f6a004d0713154ccd9977f390d7b0438199a161dc84bb4a0bbba58e52239f18cdaec739b194fc2981998fdcda9fe9f39e66349ab53f666b41f3808116ed5d40c1cdacf75bbf0ff92401d30be19601dd6c0b001440ec58494daca38e521b1b380502d2c15fdffa984d294a3316d43c19ec276f3a18c033ea7910441029b86795b09671149b90dac432a33799a9a33ecacfa35bfe05da80313fc712f8ebb062c366c9561fa388e0990128b996553e016a3c5f4880d285e08256caa7b237b39b586dd5307740c96fa9929daa246856d78924191b5b31d9d61af8af92b88f5cd3ce3ab7bcf858b9bcecb0c445d47818b9118d5c9d3ab8e83edd2bf00536d33c41a0664f103b104b66fca534deb725be8629e4e010d941073f32640cfc2680a793152fcd80a7f07c7582acc75930d87286b679d0db08d5efe6e375dd805b3810bf63106201d9662abf935d366bd1b66b5ecf206a9b3add57211473e8fb86fdeed64555653fe7a411be7436f0f9f2468c153ee9a6a7e1dd03d40af1adb0bc06fcd4d74d8dac722a704a2065f62c6c3841915d9ec9c449e4f83464cc10dd19071959625fc76119609b1f32bf3013f8846482e799643aa10cc1aa9b122ef2ee5c78735567cb6ae767b605219984811db59590342b36029e392133f3e96457d99e8fd7319882302e9516f6cb3dd1ba3d1d8bf72dde415e55669ab18e81e7ba4192238229e653bda964580e0e8a9e380f5e38bbb1d23769b3c4ad704384e164d439f0f1faf6aae7b5c4483cce26b3d909224f48dfe603b6ef00841ca53b1d239341192ac74b949983018e2f30b0a6d7b45f42a5aaf6fb3c3afc6deec4cefdc640757c288025196dddd59c26b01280a025666712d0bfeac6e20d2fc2961a7a1effd719d954046913c5251069afa0a9c540c717bc7fa8449bd8e09cb9d587877fa526d2e61ed7436ed3d6e946031702960e96aee174aa92a3f8be744498ec3cf40d4e08833634552d8c0a0f7816447cf25684fba3a1d79a8c20a1827336e50505eddd69d5a5a9a971a644e455c1af0ffbf26ed7e18c2b6a85512dbe907e97b01cafc08d6edac11934f95b73b7acfecc86da29e8350789f1b784be8e56f9c19db1569958174d8c8ac0f30b7c4e0715709f6bfd00d2d3f5ad7109a95961953102baeb9f627b97e99b9d5c5653c7485bd1e8136165a17173baea62f83b2525e4478a636db1c08f5c000733b3dda4c0f7f9d9c66fe7c7897c162ae700c565573fce5c065c571f4498144de8f0dffc80eda1e5f53e36d579b2090bcb3790a058f2c0aab82ce9acac62670b2fb06b5df0e740a9499b49dc4581f62c8f167cc807c60a3e51bbba5beb7ac101ea59a2f0e25300b1a876189b102a5e11464a6ce3bacc3cc0970855e47ab4ead3b6a9e96f6662b38444ff013c91bb172289530d767d20d001957b51ff9c8376dba5adc02e6fa27b3d95834a98bb82e6c2e40a795807551e5f1b1f7a3700bcfbc5218f7ffbb37fb51648a71fa25c86ffdd19e9120e6b820c400b23d49c6824449e85d97899192b5d96b3f231a3ff1ddbe2b87f56ed2284269661a39d7c06c37aa88450daca2ba564f5897b977dc424b0f9776ca7ee8d87ff3e64fc11a8f537c1f2b5c185dcae5c02e551c68ed0a954bf8860f51d8ebc9a42a037424082afa3efc04b46b0f9ccf7e0c5a7e92e7781124efc223437eeceb5e06b3c35c770b35ade06b7dea29f93dc27ace11a9f0daa00f01dae68857107eb5f33efe9760a73c0f172a71a6fc51476111cb47fa12228c88cf9b906efa069867a9e50fdbdc56fa53c1a86eaac17785914aa145198b16b9608ea3ed4d901d8de65e337a6858e4fa2aad3c7788e955f143c1070ef2c53695afe7538aa73ad9a6e8910d2ecc3bfd6a557795e82e20143ddccc4fcada037eeb2e1d3ccf40dc3d8520490560ec1e2fa1590096d683caaa09561ec32209a606c4039bed81727fcb49b2de8004f3038bae00084d869c5722cc0a937704c824ff38b1f56e439016da6d1554f4205ec08d6c4053877832e933917714086f3ff5635261dc526ab6ac81c7b33c460f11b6911eca425ece8e015b60d77067d4869526af42dfc14c9ad7119b22655e746fe40372d598284c665885fe6194a79be0ebe11ab8096a035069f0087c1f693553210dbff6be1940f418c214c0dbbe8c4caab09ced8e45aa1c61ec5d9b50f81df0b9ea6a9902e3c173d17830aad8714f40cb299be7e5280f0b1429630f6de989c505af41e3a7f4c78d5592d27d0deba2ba8fcb2b68b031c3b8f6adae60c076c82338d8fa706026744ade9dbe5674b8815d99b5f1a8abf894aee7a7782077832e7b7df7641d96296b8d0887c2613277f118a03bf400bc3039fdae4c3ef753a1e9260c173d12dc22d039b10e0fb8bea6950e15d56aab61afb4f344fcf97b6dda8af3f2d93f2d1c4ae087c7d56845fae7c257405db95ac311f5c2942fb94e41508ce10f862848c0bdf96939a4425ab25d2343553d3f52653def510ea3f695f71f8c8041a8d240e683eda5356b1a98de706c150d68348366ef7d94beda1a90917fc4b665f7dd4138f2d39a69e9f4baa8ddb8ad65e675dc4884c9ca7e86d106958f071ca7586eb40cb094b2da22c2117cdb3ce86d8caa1c3b436384eb930b9d02c325f79f01694750c1a773788d7476950575aee35085883e83ee7faa535e1dd4ec286114db3e120720688205579a012622cab455997b91577b66e66ce555566e6e2e2d365ddbf2ec728c444d038b935531cbded9b79cd54193b3a26765fd75b781b8252b9c4cd5e5f1ab1ee67053492d06363cf86a3c394807d9d74c5e083366b957722d6e77d54560b05039acdeef9e4f8a4b107d44cec48eae97d98820beb7533d78d825884720121196dcfbc7a5d67ac9cf8f560d33d1f324b3555278775216897046a59f2436ef17b369d82d43a1bc4b4132e474bc736448e77c9192f4bae5a71eb74feeafa38ad1be1e5cdcee5649ad90272a2edb1d33a838d7aeba2664732aad2d76e2e88206cedfffb60e2c4c5288f3a36a36d4cf7756249e931b1f54bc9e1e44970c4aef1838ca19f8da74f721297d5df125946d531f15a7c8118bcad987ec2654afcbacc1f5503da52b404c58f5252c06351232a6432403c2943bbc41341570bdbb78660ed08dadcd9738ba6fc32b82b0ab1178a7aa9c5a2296e4e4ab0b4d51d80b60604033ecd62cfa1cbb3ac1e22e75cf0e40f6423dcf6064283b47084707604ab2d0ede95e6b36390d8da3e4a5819244838160e04ffc43fc4b7855141f311cc05dbb27c8132a0ad60f4e7ec648b2ad1a5b0309ddc0414979c0b1cab98c31d6a6431e3fc9f08b12f63d01abc958c1cd26a9efc68eb27cdce9730a2dceffcc65e11cd057d13eb9ea9be1ed260e9b8c5120efac5941989f43b270bc6dbb8ab7888afe122a9ac50abac355e392fe50ee4795fb758af59b23c5739cd0a4e4cb9f370c0155249b04f2c8c2dd8dc623ebbf64bbd7f65fd3ed96ab7ececf493c0d0c6d7acc63ac1643c752a08f32d95fbb44fa6f43709b56ac806f838a8df7116d5403765d2ea6c350c8bf0d89ce0c3299fd19e6568f53e4abded2df859f5d9c8ea30ba490287dd4ae0f34479b0da160bb6860997f52f0eb37ab5920a48a9e819b1c7ae8035e13ed774f802cb0cf480476b47173c95fb2bb11830bf46c0b7a837ef830856a8f2b31b1c5a8c100e622770400b95d123575a60ee01229cb3fb18796d588a1166ff750d355acc4f50ea8c598c7012c0e54c20ddad4cfc4bf6260aacc4431500743f3051ef7228e81683a5050457bb375cdce5f0b09543b5aedfbfd461883dc8d0a71b571b1ae1c45117462e5536e75e2319aa746c924d7b14359d622637513929ba2659047ebbc6d15bc6f51ead1cb8d330ea1f24a13a0a2b2240b358177cbb5bb494952d1f3e3f5251aa9ca0df5edb2d3cd666bfdf1a8adc8961379cea95f68af18b219d7dc777810476f33fd824544f9f2e69b3cfc0065aebb1adce5407e7878e81411cc3a03ecd891c19e98067e964e19d0fbe58fac7f2f4aa7af888ef191a78299e6b26ccec5b25d5bf05030e027cc710201a7ee2f68f0edff093db27911b78431040b5c92992d126d9a92f206b14cae0dbd6b5b2de6846fccdc3843a4014561e0e1b913a2a4b5ce44b8092207a8f73c9c17bd18533c9a1f743bcbd087712febf258c628e23bd17d679a14c3c077c21128b8cba135a2864fe52994050698ecb6983cdc007ab2562abc398bf7356810736756443c1ab5cc2a95398b278279f435350a50405572e0f151a4b6a7a495e9853780379b9cd796309d03ff2a7c447752d74ee1ab5ec0ad7f8996b3540b6f9ff2a07efc6903ebe6d2f587871846cee25db01b3be35f7e2ea5867202d6f81cf82ed9745da6c6e3a34bd1e23941c311c38039f6b07d00ba1b1566f2e3eafc1848cdcedf046dfdb7553efbd0c0658f06252fe66e93ca0771f0ea904be40342ca5f204739101b844dc2bbbbf9e38fe4dabfc1f0ef4d013ab12b47d5323ef6f19643addae75860ca9a27675aa18f0814182582b9964a075350c4afaa40fbe50dd3bd7ae69c8ce0114c4c84f7a7f422441a69466243e71a5107aa33d4abbfda5f640efc085ff601ceab65ac5238de8792c35b9884a152be0df0b147bb897f5b22a664908b2675116b7a015a2089434d34439425a08aee4484a1234ea83c2e4c87c4f2d002235681e56179f754ec8921f1e7786f382b53d0771ee0042c65b133e1e2fbd156c2d84d4c75cb5759593b615b31d712f27fdf4834e83c6ec9508218775941bc6f93c080b4d2007acb9f8562f39575f951705c445224048dc937448139a3b294fc1ec1be62b0f8174aaf123e14fdc85ad90e06be2d8211800845d549a71b95436c7d99fcb8bcd13b36b78334298026683f67d3fab4a7a9e4e9f2fb13b66cab63e5a08f85e66986bb46e7a932d193b00326efc68d4461f278c4af97b3d190ff540feff199173c3942b43b7541fa863dcdb916960bb117a340a8e63086489287e6c17b22c7a8815b935cd3787aa59633c8378035ffaf7ee1c8bb44ab483019e198388401488c3c6d063ad08c0c87943d596e93da7749b6cea985f4368585a1be88cf4cdf0703f935700a8602cced330d0f328ff397603c64c5b49bad7faa62f97605eea6e269af20682466ca65cc053792ca1d0c25a1c401444aaaa9cc6e4707278cad645afe934d15dfe227eccc58ee785be89824cfb3352c28a76943389e9e713190bc138d59c44925d3ebd147645cf16db212176bde38ee036d0dea57abe08da6b5df503a5c1049c36545de604cfc3cb751252686ea5ad5cda48f4a7a5e857dc26c62e28ad879ea5eef99c34c839dbfe7431f01640e6161f74020a26c8088f14ecf3fda3e8d9eb5be73fea1aa0332845a0e1c1ee969804e9f7b0a6f0fc223e4bc05c3fd3baa1ed035dd0e36aa4d0d96aabd8b33bf7f0a4e37b8c5081595c515b7140b2d2d93ff0d05f21a1c8ae155d7d3745805aa1fa2dd6073dae1e6e9c547561aa1baed9cecea53115664132a63b622b4d2bd41a1ce5c89ddcc83b21873902f0b7241aec8cfc8496e6e59379c23bc43475705d4d16928c4bdb24459e9f87dcefd7c44d3093852e449d4ce972a13bf18c06a33d04a4a2812698c6cbf5c7739ab4f00e9776b45386fdc48b33d064f0784937146762dd1af51a71a97a11401d8c820018c8a597c0fad7acd211ce9697627ea3319d99cf598ecaca8985464fdde6cda20235e4fd517b04929a86a7299e19ac5d68425bf35d5e9423b3c533a6fbd62f4eeacff6b7b90c59f7eaa6c011c72cec9ba3136d8f9ea6e4116fe474fc4c128be3126a97a66094900c0b25492a584a27519c7a111020e97a75bd5c40eb3c35ff65a648a6b988c6006e9d2c72b933a412048e0185a4b691e8e52f2fd355daa9dd316a1a53cd83ae7755f49426d5acfcd2efcd4256159372f978beb3116ebc5fb48f6153b62d40f3254082051cd1d2c1c403b8661195a32b288e1dd979557326bf6740314daa1f9c2bb2a0fdfb9373dbfafcac23e56e8b06746ec218ebf1888337a1660eab546c1d10881ef9da5271a56aa3eb61e7761e74869232544f38346a7b19f20bcdb653f13118780b578bc6f43f166820d7a8f50640c257dbc0e1cf8969bca2c04692433493072d3d9340938ef15c025e01216c3beb217ae6899023ee803760888ec7f2d04c8b2a43c8b454a789d992d33a1222dcd507bdb4b0d49eaefba728190e38b04457abe11bcebee51897187e8e54d0e69834af47bf368ad884e33bae829bd1b4d80fa1e07b8d22c95aa187bdafb7e63d97bf1101d526dfe42472e448287ca568e7901042b7cf0d4e30360fd403648a4b023634d1e2481a27ac08db1991c7f36e0fa5015ea0bf48148492f6428761b7eb9b2a060943aa7265fc57953278ac824cd40b3b0f931d53f21aa06b64e1aff387c19c8a3a53fe9d5edc58ab20ce9cc82083daca5aad3b39a6e330a60517676dc4e1c65b3248132a4f740807cb238cb36e9d065b1df21ce1a90fb3b8463317b7a169553571b0812da03cf0bda432f8b15b6ccabccddf800d9a923766815921733ffbd035fd37003b87f0512a8e899eb29fa492248228c971098b5d1099dffc53ab6a219ec5d04f2e74ac4ba758e154bf75707855c97c11556fb76541481c4b0c5d5626a0e229f54d4647b99f122b3f4974351b70d59fe82adf5dcbde401ac3d29bb58fd0b4637c6b86b12c6273e8730c43d96d640e5e38949b4113b110dab26c9e895aa636ccb4b5277e685c762f26058befff0b0c86cdbc4ec24b45355684c65b42eab78e4fdc37a192bd23347a89d493dd134fd6db863e8cf10c704ce58c66cfb15c3ff12fbbf8c549193b4868da7c5159b33608ea34b45eca1d240e8c356d1b6aadbe4f29a6c9375361cb3bb558f638298b3c1d701a4e4776d6eaa43397c2fbb0e7e8f7f3b82706a71192ded6ad90c88b0d68e8d221b7ca316e73c6158e7b96bc6615a5342f4b8fb01ffac9f3d04fa25b8724d34cde6f8dc8994e6308c0b5f8aeac22c1f4a90db1c8cff5df74a5c52a942a08fbe6e0aad417cb7e7ae02cc7c400b5fba02edddd32287f9cb1bab6681a1926174f7bcbc80fe02b11ea017eae006c8bdb15d5c626e2854020f5b919493448bc5ee4f5ab070d2bc707b96e44413f002ac8d0bd1738fa23245dbbc0bb851432c8a1090887de92804ffdaa7c815145ae73a37d0d38496d2cfcaca545851c52cba48f6f07a9bf60a5a80286f66a1cd741ce15cdca9eacdda6e1a533b87dc204453a36c6860e675ad3fe6ac03c08157bc3a6d89e4b2a3999df30a8130f1d24e86787053b7352f6ac48545fa2f3ecc1abce74e59c077d6313443fb09ea6b967b2d3d7c3f76de1d5ba44976d52f47debc5b12211a157cfd286882676e77990d6a032bb00543f80065d55ad30fa00d6898763ee76d6417e463a1b0ca16ca0a821ab394549086e0d3e7d347089b01ec764b904f2c6dcf125d0578ce2d4dfc2c6c4ce1adfca71d4d090c5d0cf56219641a776876b59e7c550446b23f81a61c853bddbd90f9be7a61101a54140e656c2de1113a12a96405838dea15e4352184a46dedd9d1754d2cad197dbf1c3eef09e1c82257ead9563af823487759d1c399e87563c9de141d2b619582203e04fba8b5cb6c0550696b5c6ad7385b4d3e44135cea397335168087fb32b263a12a4af3fddcca3c7aa25a5ea8556810fa4492e33b77a79c7ca04a7c838e2dab406654f3bf366ef9d01dcbe6dd83109575f934c49dd25a018802fc750b834a31df2d6325c45fc8563ff7fd1ecdef5bc1ec6a73d90de815a806d97b766a9d435e7b6f7124d04988dec64a8417300a65123521c4e4e073c35611a1883fe3bb51ab56077e05ff6d2f38c096b335fec122fae0b676ab04466e82d4602ad2192b7d54e84a642c3bcec54c272c59c9d020578c502eb4a02029fcfdf180011f714f724729e6d1108dfe4950fde3366c722a008dedd74f0dff9eb997ccaaa12c9e38d6f1e89d48ede3fdadec2b54af2ce509bd34bb841a531755d0cbd5e768bb6621f506f4208424141acb262712e2529801f02c08a47ef723b57a5389d873121ee09cd0924c32afe5ae6f6145f4bf5f7c63a1861f301c13de1c0e418a843689248e689c8b807eddad64e1a0e868a2f7fa2565fcf30c5fd7bd077757ade21e4016b6aebec55a3bc0c49b5cdb998175fb0bbae1819c99ee85dd1f410ba8b7800951a82fb84da90985356a76ad1b49749e4a032a56b1bd9ca2f8697907f9eef797e0129af817ae1f14663f8c7ec8928bd78e476818d8cf588f7da774fd5d793409419e0c7b754d34c6349d4cd52c372262c7e535342467edba68b24d648eaccad2d4c747a2b94c0728de6eb6d86315148686c47d3755730885087b5967b43033834ba7f905061cee7a68d8e9230a0499016df97c3e843187e7adc507dfa0bece2b6a9df3df4f76c15dab121f8b0191fe61f7c13af5ba489b8300c01356638603a34474dd1d3d561a7609880414037d9e96428baf8adfe6b88bb7572394e38505a72710e9fa18cf81ad1fb665649ee3337fb21d4d6f876004dc63b3824f45d645f6db6812a8d77b3dd81f62fadcf956af685da8b273af066a9f8cb1ade988b5f82cec3392c63e1f9efea5e7bc0ab2a3d016bb3dddf4f101f67c3cc81ec0b1fb6ebc1f58db9640eb7b10c9a2a22b1314d8454dc0254fdf7f75d0e15740a1663b4df174484a0d36efcb9064eea48382a82c95657c423d6b6251da5a646d2dc1de0df43b22560bec0b17a28f100ec4d751f0fce6d939b0a6382ab5f06441a343b88ad715634345c7d56f9a779d0b94b716d8c27e27907f3378637748d10a1843f86b03af69c270311dfd28361cd3148c8024b48e86355029e3e01bd80a3ebe78a158cab90ad2c8a54d9219c60f66b5a99fb64e58c933b6eb1e83b0241fea5b1409fcc9498241aea6cc0155caa4fe9ec0f646634edd0dc67ceb4e845db1ad4cad6a8bbb8fc4f7183154631015c4a781ac6fbd7d7bd976eb657470d2ef61ff698402eb591bc5de1ea6e26cee6212421b18beaee9cc85b95738885db621d53662f9e4a4edbe75f061f59006924bd2df9404fda564df0c0c6ef9204996d5a3963e2f3068f734e179d9983fa16c1ba9ac8ccbd701dd89c81430ea52bbb12ca7c4f4adf46149221a67dec5065cfecf75e97eba978db6b8de9161b8c82211c44bb2a60ae7dae58c5fae2073b5411ff1d0c8b2361f4f5460e9a70928ddc07ab25c7ed95a523d1f667739f50f474f2a046e0c700c73b23dad7b69933cdeee810ebc1c4e7f006df316bf585cef898936d9d6ccfd53e8af638df3eedb20f4daf286f6e288e663680fbe625e271597ac6885bd9270f42c5935dd7173574ea1a5151738e717ebceb3728993a0ed30e046b3b536846a5d609bebd3a51a98827afaafec6936e2aa7070f3ebc3ae4950b3f89e4f1d761fc7c7e6067520bc9b0bf750b2ec12b9cec6908c11e0d036ca2f521e2ad8507a17e8c0bcc9d628df7a6da9941476fa85760b318b546437744823d35927de9e8c4ff8dfda6ec34c7682a2d1747ae377ff9b19134bc1208f8bc874383ae93d709865217441afcfbd9677d4697767304d1737bf220a1244b742539de0100331c2ea15262f201663cd57244c85e2a8154df9794d6008f86cad8a4c114f46ccc9df940c4525ebb01f48e3df5d51c3bc25105d51ff8c29950c9a3d0bbc161d5de1ba41adb2da7b0217e02ae70b4cdcaf45a9b6f7f221c9f7c3bc88033a999baa43803ae75e387470f76c05d2d336e521e4a23125784b1a1e5c6efa77ade84a2657ed0d2f1abea0b930712d4cfd6a1df31dba472da8d49c0666f3007faecfaa31d20e249fdef94de7e0f56a8e0b12bf5da0566097d0c9687bfd02de57dfb0d333961ccf9790d6af414c7b0996a6fd21e0ea46b4b026fead5056bd0526e28769a6e55c6f06479823c4193b5f54a7a473a19aa8f69979a4feae6d3cc8a406ce785f89653af39a82278b074157f26fa8a3641668f4c9399e17720cf6f84457d0341498859e2a6c496f4c76572eebb14166b37ce58d3c3307f12fd7fd62b362fbc41c069f0e76e19267ebd104105e1bee2088820a1d63c58f18d5fb6e48c23a9e7011b207bff44e70c5807708728c8ee935f2c5464a1396ea7ed6b5997a436c6bcea421e686f111f6f31a90ba44931dc99272e31eef5cfeb2945b4d4e652d55045f173e4a0101ae3cf5f605e5b00df38acbaa1098f1973694d77f6abfe0b4bae7c9bd5f9cad1ff946edeb486a5e9fcaeaffd7b070b9fffb05d4c338a83e8c5f5d130fe2e73fe11e0516eac88384f3c680c72e13fefcef9c05fb9dcb28ba25bb7396fdad95d0c9b34eeff4c88fb4ab411613620c96145af5ed784e6624408fe04241e8915c962eedc712440c8474c57e8e4f89998170ee4fa6788aa1949be4c9e4277f44ecabc7b380faf696cb65d4670fc59a749c5660c7da4c298ae5aef8f12a2566617cc608d347b439fedb286c75d370315e8ea8f027bdc1fd57142669c003636598ba1bf816e730f29600544168fc3e9c4d1077e48503799b90d81afcbfc9a8b496f50024245fb0b9b0797ecd0f6c9af0566892756773f05edcd1e2805c8133eddb964a961bbadbcd4985ea482f2a2bb25fef913b7c3ba13de54c9715794fad5cc06b1617fe50af9097079a1a02f8b8a5860767627b6e29bd998183e58d52ece2dfadf9b2226b6933a85c6d80861eefac1b8818b428ed0bf86b24f4fd7ac1bd6bfd63fb055161aebc4997ca91b79e92bbceaa8100e37d03276ea42e4c94ed38524495e78f42dda3dfc5a050b000af23837475d6552c9582456a31b46910c371ab29ee8e67539dfc743962135a52e27f73c585e405c2ca2edd672d34b09b8794a3703d493561f7001ab25f65ce8bb056cdb5f56f3a9a5a26ee544c45827c76268d6e20badfe667eb25aad78fbc4e319b81d1c67f1a76cf33fe195b80d7e1f99a34ace55c00d3a75c9c195ee0c690db4dbd2f2e3565d7e977badf8b381f402f8bf0df7a6d1f3523b383d1150be0794d61ae57d036496b0bf634bcd4af99cfe25cd1f7cfb1dc6c12f3a352fe69a8e2e035c67be7b8854e59c590b0e26d0576d35117a81ff325a5efa2ac89ecc93454f0bfbe7ba20cd88733c147f9fe214437522c3963ea41aab9fbb55fcf115fec5d0bf55d6f33da618872c7030fca3f40b796197f29a52b33822e15469afea1b5a050f2e5190a52ae26b381ca20ed971386519c8b1e5df85971177a4fd8819a5996b104dc619701d6aa87d15475f00d08c57039b6dea7e917ccd669dec08a36e13b0c71d74c7ef254556e50e48ef33e7137199fc265cefd1fd4abb325c0a637c43a524f9bb0c59f462ab97d6bf702a16f9088ac17495c9729bee19f41fb17f1bc906e91c474e5cd791e6d2a39b7885d97d50f707a99927c07e10223375542f77c1ed027f0ccd54b4b7e3ba85a5a7c00ca85a19cbfcb9a2b3b2bee7b79b3c54d40d31c0b3560ec436a5ef5e52ca079a32b44019d333e770fd0220355b4357fe58fc2ef772b61becfccdbbf16a94992acbaf7728de268ad271ac21bd8b68b348b6ca9a943857d86e65ac2e6a81b56e872bd41da4fb4834340a5cab3c3572a500223c19c1f29c1caa8c0f7fc9dacb1f0b55e6a00d4212fe015beb48b0b6e8d804aa2c6741b738dde9b1b1190d3e981c3654b1696af506899f3205cfc192306f7124492014a2c8683933d0848ff29563a74b0c171156511ac76b0560fc2bbf81fc411ca8a35cb1b32d68409dad2bd76206adce9c641ec0477e3e8465e0f5493dee75a9335a125b7b341338e9aa53e9c7cd828835b3b328dce6b9ff1ae21ed62e9051ebcebcd7efb89c7d406fa729bea5717aa794b225164011d1fa5e764733ef4e96c9d1aeab27eff4f97fe017ea0baed34be11b7f11cd82172512bdc658d5179c92b31bf6a65dc6a1dc8bf8d2827fd3dbf036616c5cdad80997dfcd120419aaf1ef1e0dbfe7ece623a4da9cb8c607de820e88e8b617d4bf7091ee09303a3b8f04600abdbb2f604c2e14c10a52501d4910084e5924259e85ce50c84cd565bb5e7772e13d76c6a00043860ec691435274ed49c836585af3b0f95060435b4cd2493b2deae3bb7eee0ec8c35f7c78c63c0bf94aec382e6e4715c2ddc66f35dea731ca5f8ab4e5fd8af8edffb299fb96e044f9d76ef88950cecd590e24d29795878e73505822f2f444c7095eaf3ee2aa3c24a48d9db8ccc55cf9d4047f7d008c0f46ae4f33929f12d877f076ec6f2250daf0ff35b3ba5e7b1cb40f85f90abbf0d9674aba1beeec26bc3736512c137ed47a710b8b0d3361df5898dd5fd0dbd141bda266ee5ee7f41f65ba770c4f1ae16822f85f1ebad996f874fe4b5306c56b109c95d16bede9af360944ba33e44d0f6d815c0c153e3b4a62f49ac9dd6fcfa9d7b3b1d042f2d5b15b0a79dad9608093124ea25bcb1daff9e5c4bcede8142ad20c7fd4260aaf64fe6663ac4a6da5d1b174bcf7e3c9d62de70669dd8b2f06fea5e9c60f54e39a13ca64797d1ec807adbb35339e673add1ac0ee47c926145a63768ecc67e962505c9e6df2a717d19b91a5dc948950073003ef2e85f47170d12a0b354b60814e788c5883f9981436b7f89647c5dc5f399cd3c807fb371f29618dbdd243a7d6f29651e5872e2803b2e72baa895f33f5603d9ab15a1995e1cff4a6132be1e4ba10fde56f7b27e7d859f61c7713b2ed797650ba51dad3d6bbe0c6d85143cc7bff8008489badf748f11d2af272c336402b733434d314592c41c21cd639260e4e3199d33419726d90beaf94131e4c75c6e552668b6ee9b2611b70e77d68d37ffed27f572a75b9ef84b5d7d842e20ca4d52568263d570bf1607a7ccbf8b6596ac4d6fd997e37293a1e9f1242e8eb263e30735609a1f03ba722195bf4cc3bb6e7273275cd15d30ee11439f1b662f2ea7bb34d9c92fb0a166299aaa19b07996472080b6091e689806b3810234b57ba43df1399ea7ded8b7c9db3b8ff4a05b99c177e2655e7fa04e9aaf87934b3480c9d070d6c2eac2baf8dbf34b8214c134645a3a5b6de9790a434bff4979cfb3edf1194d0205a2dc8fa910bd5ba131a23be8eb7ae747458353c836026ddfbef157a1a215e945665440f6a60258cab878598f5872578ddf9f1f3a04924db9db1941a633706f67e5851afab96ae9fc1d52231b94a386f60412c42aa087d8805c948f40c7ac3825152475844e8df1c83b25def12e80a8759ec3662f8f44e3ae01960ad2a77fa2834107c947773515910d5d44061907380b044833d58c329b5b4242a163ceadac42abb303bfee3b1e96bc58a1cc0f1be5644c9f55efbfdef4ce6b10bc154a90ff2f6916694d59b7ebd4c96a7a66c48973045364d026dc6a4212ed9adedfc978f2cc271d01bd689f3ee5146ddb3f65705fe80926f1648bdeb0bc098a44022cb12a70a5a157a8dd5f1053099f323727fd0d94310596e40301d76803efecb7494341dc9d76293258ae4c18436881579d44807b33f48c8015a942f9e463456b6d00c976ead2888e67e90a6d776a61823e82ff270723ca863c9c1011cce401bd2f08312631124426432d1873ca280de2bfadd07bdece7f7ed2d63e74861752ab56ef0f64d6132404b3e188aa83fe4b4797b975b79734472965b02d0cc21f3141c5b67f668b8bcf7bbdfaffd07c33cdc88cdea96072da443eeb00dbd9e5bb3ccc39d97653b9bcff9a329544b4d7e465d4a95e7bbe42afffd25d8c6fb34a742de472821fa610104162aaf4a3641fc230c3b25f87675f5326fd43a234ab3df1e8c7c76af74b9c5084f8dfc733f5c64931d4c2f6d9eac70e074788d8f64d207c39d2d33e0ba2a2dad781c167f9b48773ec665767cd265fb53c6c3e2ea71cc98572c1091c76b82c220b013a2129a677da40779803dbc6aacbab60e0a1e75c292e83424be56afa8cb3b165ae9623baaf869717fe6204980df180c3be986411f9c02473f5be2768d9abe4ed92f2b9e76df3426e65fbf5483d089122d69125041247d89589cbdc5a1ef8cbf64ecb23c4e0cee13e9c587caf5147d13560e7523e19975436911c8049d36b5a41fd7d7b90836554bcb22d4ec36e969dacdd1751d3db46ac60c10ae287525a5ddf52a3b741f3e6fdfc8fb684f45d0bf975b698b2645013cf1e7df08480605dc96ddfe7f6b8d64deac7e9a37149ba9dc59a3547eaea03986b0584c2aa2c74ba47dbb002657fd68ab06759f9a0c27a7d90933c8b0d3723f977c3618f5ff8bc248ce599b0347a492e3d4aa5e4b7061509e5d2b38c249a560d8efe1afc39a9635150ed33bfb24e537ad7a5c475b85cc9032074a9080d1109dcc4aa9a72cc97e6f775b5060131708548a7a7d2b026b9eaff9bb81b5aa6b06782caebadfce82988c028361d7027e67f4eb7ca99dc6e70699e8b253d7eb5bf602e4803be546389a5a7688ccf32aa973e533c8ec6d1ac3ec302f8a6d875be5dfde50c2f74d706236db613c164995f7c4b62d01203504712229ac948d611eaaf6093f593bfc697d29e5dcb9a6175d1db2f87d1a49b3fda338f611dba343bd1977605f3508bbe22d8a80d836b70025e89fac65ebe7b27e95f248f90bc523d3a431ec832a3abecb374f96a570be18695b6805763db498734b1e81effd280f88ab261754fd192f7c0245e8e584a6a63a73aa7143d4eddbb53148315381d5bd333301bb079cd92e05b660bc635f0520fda219eebac7ba9e478a25b609007de5f71bc64dca1666e4b7677bfc34818588848f2685565e566d2d3e98b8bb5ca0b3692ea34246a4bd371db13c50eabcf4d863e88c44bc850a4eb1402dc3b95f69dc4ffb150b2984f51e9b9e0a8eed804bb0bc4933e03614448ee1f0501dccc18a75c0b41052b01f013fc4942e52c641bda7f1a5f4a595026012ea77b7a603b17315b49b0c46faa762023a875823d80210b80157e27d96b31b71dbae7afdc46a03bc73e2aa9a0b535416a3261a4e61113ec31e81b0fd2fc09ff3e5d6c41ec95451a662d2c1044495c64f370a60d526b994ffe31f498cb668958cdbd8660a9fb65416ae21cdf9773155f6f6ab6917e27bfd018f4375b6703a2e7192fa681c058ce2c4efbce2ce00d651f122ac1c1da87d202d3e1eb624e22a63089dbce8a67d1ff8241426d1219d7c0ae1e30ae364999c92637ee12451a5f5c6f7ac6ac7af76fc4662d1d950ffcb0d2224a9d34cb86652f64ae505cb33e48b92f9e066b1223bc769ec9a40ee22ed1fe90986cdf8aadae160ebf33da8ab17a2f9a8a37c348e2b14a09737bfdb8986fe8099dc61b645be47391328d0aedfa7466e08676356f38cc7491288f99b609ccbfa3443f63b58ecdb1046360987695843f78f8c27aa60de960274c1e7014436fb8cb093242138d8efcf505fac9bdec52963de2cab8ea669c02f4bb79a60968a4474973f7aafdc6094586ad0ff552964c6d81a6f04e7050e830a160dbac55b8f28beda8694b80ee4d29e13a7a585b5f388c509ee1cedd14921baf798bbb4bac6675fd15e19b06e2b10d57b37092a8be8e3a62e941d0be36d0fc565430e09646598b641e5d03ebbf329f67c6ca8d103607150d6a57b838d0f48c43510dbeb8d99e6e255f40fee36541521128b32c97d621189e10194116f49dbf213734532772951131365e8e6cb262fab3309e3a91add68a0f8140ee9868a96bb7473f9dcf23c30b05b5d9cacc5c6828961085de12623703c4ff9ae438e68578d5f4ccdbc5d6dc0cfb6bd73e442e4f7c5cb0d5326fac4bdbd563af4f024291455001368b4dd6e6cbbe8780532f300175187ba9320dcb79313a7c8a0aac445b554337244099960d43d431dbcc747fad7f8358fc28c14cab3393c1078271e918be6a68981678622ad2e2b9dc181ced13b4d376c218089b60b66cad05e5ca90688f85f7aaf162402eb29d71ae1f07784f23b1215b8a69a5b173eb8a888dd6d5fcea9113574449461013630b87365b91f71cfa19535f504d92fdbb5315c90a2ff7d1f11b50a7a9ac67fc423e8f4962af66e8ae5ee20aeaaa12092b1b3ec9872cf81268f2b2160bf5898d798cc9b0d6398d19f62bb1d266dea2a075901cff2d15d2da22acb4a77a25b8018be365d34c03086aa6bf3eb4e8c07160a5275fff38abb32fcf607e78847b7f1bb51d095a181e987302d5ac5087bd1de81a136659be18105d5d5cb6408a2abe27991cc64f291bc2484bcce76ffe3904f9e41433c8d287c0e12b8c0852c976762c9c6a64313b1be639de82ea530b8e727e2ae34cbd9b464708f4baf3c8e6113d0881883dfead9a6744f035988c0eb5cffa8f90b8572ccccf3bc48c68d7b8852c861c30537b81d2b50797a9d1cce025142a55a9fe93d80dcfc765033023f2002d606694dd3462b794256de7e6a6d72c38bb8e1de82d7cd2eee7cf60b7e6230d91f95228177d93a48a392b73038fab04dff75a0f6e0687b88a913c1ce57ae28a066efadda4258064b1592fe775b6dc596055b2291e3a2d242c4dbd9976d9041f92c9f7b6c9562ff36fd75e4af6e50b530fba9951918d27418256820b8c7f2d51aae79d00d320dc8949f8929d619f883465da7baabcbde1a01b023cf644b87c7d276f546c357ce08c21b758e200aa69b732a5601e73ebdb65d6a124b70b77a021ed68b474ca6c96fbbf311b6ad77db32404806d3ef99d982aae6bd23b6376edf54eeb92ba417dd4badde7b0bf188ba6775cc09819d7f811cb670731495754a720cb7f154dca48198a68f3c5464cda22f5a5ed24e56b23ede583d2e35722a82d3ebbe6f044d078524f7535b817004f8826912ee8b569348bfd3cfccc29e6fda6ba251598bdc0f37332e25b3a116dfdc397cc2dab5b3343ef9555be49951f1525abe46943ed2aa2b8227182ec53bcefdd9dd86d6bcbe3a64afab3eecbcb99c1e794981ea5a77f2f1903e1bbbfbbba48aa6fc40fe038e6140e6f49ae999b2a808f5b6bba51a0c9e1fbd23ad0dc0c8c603db47dfc96ddf5a3a5bbf35b6b41c4e142a814a87519eb2d81be9ca28d9d0860d8454c48531845d12b72c9e30b3e17a69eb0d727b08926bec7786df75f062c8fbb5b1de157c726030811b1e1f4ecfc8a4e4ff51b67e0088fd0d8017de4821dcbd7a8828052a8d85531c042e927942e8aff323954260a6761ea0d75e420dfa47e521a701dc76df1d6d3686b0d467f3924fe108bd4fa6f65d22121ec30ff9e1b1def02ccbec12afdba6c8fab39ce8f5f63f74f8d1fec0b1323246fcf06c29cfc9da18550c03596359b8edc3a3dced85bc0041a4237335374c93e4cec334ceb0572b74dfb627ec80310ab8343debc99537e9c1a2b042a7a5ffef02c2ff3e113133c6acb8e1167fca5bbcc81659f94c62ceca77078a09f756c1dc2d88e2670891231b9dc59e7ad5921f59ecfc5b6ba24acfca50c5993b81fc6c9ced2a9882cf8a6b75a7aad352a45a5abb7696253080faf6e93086817263db70741bbada9a70d826fbfaefb3aeb00112878b51aad48a02c9753034fee2c80bd8c645be7af2aeeeb873c44b80a6cd239df28f42f1effef2650696321dc2c0af9ca42a38c4f423a691d2b8e5d1b592733a6d28aee1a65cd8780b1378c9a209e141164e36f6658856b162bccb7b8aa7cde73e29323404dbe5488e8a71b0cc7922ee01f569d62f3c102772d1523bf7ca4a0967c4d53abff6f9eb59399abc29cd4e3ca3f15d5bf367c1a4c005ef7f0c7e097cba00f6cc9247a1e24adc122fd8f4f02c80c61ff132c897634e13e39e3e2541543440081547a45153d649600f994eb5c474aa10e506f648154b4f9984690d15afe4646c881914c7d9f82e595aad1777e1e93aa247f33e5452b669f19a1478c2acf369904f39cdefb46ed4890f9423d2b8191cd8051dbe706e7e73db3e732ff2af168a25bdf31a8f51f7eff84a255b7ff4755ee06693f74ac13f8028a5ce044291fa44232575f4bec2ade9babeac2a0806163fbac7e2912008d9baf3eacd925a09a4f940e5e6d9b67e4a281a285a293628147566a7f1d6c0631cc358f8a086d353851da2f45542963b5cda7bf9064fb63c9e8e395a2e8ae3c688bebb3ecd76185c9c463f083221cf688a9c141ad24040349de14885c6c72b0bf7774dda3416b8bc15c8523cb75a157678e68f850b293c33e1644d3786891d72f604e812105cf00fb71cbe385002532cb5aba6aa1527727a25d0b4c90bce23fddd10cb7acc538df187f93f2bbe78f46c1be569d98dd5a558f5e936b2a8a3db6a5c3e956fa2c7f03b47a74736b1daff35fcbb495cf5dce4e0d0c1a7db770930abfee6c9e5a21848f9988f6d40e37fd020e5091e5f54e1c2348c746e3328bf0827a81a24b5f5702727d8b3dc0773d9fef08b532cf5459fdba29a5c5109842e3599cd495ef80378b6ae2caa82d7bc5bb245bbff17d5d5e983fba9ed481e4718cd4dfb810e7c5070bd44ff742f3b7744412297d8ebbe5a2e730b2780894bd43dc09c6f996879d844ca60d63129c3aa90408c275f6d43ccfbf292b0cf38f962470b4c0eafd0e608859e363c0c3f5f6edb01cc85800c0763feb0588380c17cbe628834c570d14a9228f25a5dc4a75b733e1f38d2d8bfb372bd0b5e57c0572f3a3894195ee6df4bd3e8a7182230b84c2dc8d26120a1e99224ed063eb93442aa7f1857a18260d074725ef18d700e2c56dd04ae7496e425c840abb4a35ff998ee8dd6d0d6293a1b616628b8abc98a4fbbfa765e47fd94939bbb0901bf3bd4f3b649e9d1725cc2a0798010f8176e4adfd4b92ee2ff3bc1458d7f2e6bdb13dfe40573c41094ad4c2d5c2f2d4bfe8ca08a1160dfc180828eb0298be733803400f3085e5baf4c6b4ed6d034cceee77679ce624310628921bec8abb714c5bcf646a6f13704972702959976cb5e768dca3941f792a847a887b61a745fdbb148f2aaecea815e6dded1b4e2a354d9f7dee6711b09faf64b20a338618280834dcd4de1bc0a423c24b5abb6350e338e2d0f81946681f51369b00e62d5aa692dd15f7778d7b8553ca2a4563f05cdd273c23dafb19bd6e9df78f1de5b58efc5b87260d2c4a19bdc18aaac70b3a32bd33a0dd1419ce593194d01cd33b60ea62ebec4a2a7735c8d65af908733bb3aab28095f534edfa38d4dd81921def4017fb44595013de4334efde6912a9fe55277d2fcd3c7ded3c49b6c84efa541d4132dd98489f8b3a26f3cc48417feb32d4ad955bd0d5f740e8a91fe9c2e682e0ffbb50495f631b6d85ae881f84b46c4bd1725c0d9ead0c18e8e30f1e4005ecb1119ee98cc9c5128ce17ed4da92a300f5472e738a4a3cbf278a73ad22e6355f97e987e231ee243028d762e42084b542915bd7d6626e00feb54b24edde9b7aba463d1bbe719e2012466e2deeea4479c5653523031152f6fc49ba041b9a6166b620af4104c35211e41f2bd15c6e7d0c43bd6d8a685626ef4c25114d8c103c0d14630eb666ac462b8fd397089955ca7714dcb9caf7da7d7fa9064bcf099240db69883ed2ca70aebc3256bb47c443a768f3144534bbd2a589ca368c8b9c563cc02f481d658a6e61c4027d28456675259ad432c0a6181dc05c46d32033be6d44014dcd3547373578b3770fbf5af0226739babb6f4d8bf863d9130a57fa5193c35dd528ddcae5f677f73a3dec2a32e5631a3f4299f77c99e17756bccfc888b52b812ed6495254ae7b1438c18c410b9c9f6ba4585bad8ee4f83a3f8515387b46942fd9554b604f651494b00e233b99b1d1377e37e72a30197059c8ebb046ef69b79dadea7c62b3bfe8670144f4ad4c951ec277ceb382ab82d2e2794dfec8c5ceff6504395923d037288f99e408610b52ac05b80b92cadc38d60651b47c30c53d4a0a25f7d57fe12c99d36b6b974bf41c2f55f9d61d5dbdd2991384adfb46589165655753ae40b9b7a81681dc1618b6a5083f10ad1d6fcbe745f88ca9fcfb6bfe5d878e623b4aa86b73b12fd56b9a936cd45a2aa8cef1a7644b8ac3d21e9902fa221bc8c08bbe6fe5194125a72f5e5db6a039e08287112b421c26e5f3a064face27e9182f34dbcd0107dce9b3bedd3abdd099314ad9dc47faf1ed8ab38aab87b656372e3b8cc65dc63ad3ad95dee28c25e3a5028eb4faf9b6837fece948eae899128bdf086c6fefcd4460035f6b61389234926cf1127d307d2e9fe469b0170d5e29299fabefa965753f5607a9a6e2771383bc149f61d8b1e64e85eb0a74e57df468e8d0c1110ee64d2f3a42a949e4c1f0396580cd118cddab3ee9a12bacf2530d55aae5af81f4afa9cac5e997f608ec557958267bb70d6566e72ad85d389fabfb9833f50296f5306891f05e51128f330ef5b83bc2e923784aea1a6a7cc5490c19548516192da7ebcbeb925f36f064e3784bf04a2854be88011cb3b1810721e6e6f356415ec62bb5c945a399a7275268f2a6e3a668697691b9a301154b45dee18e7455da4823e997a34843b37c564cce07f07c7576a8f78813bdd8fb52dd42e9ca7ff7830fe056effbbb0515fd3e5ca40dee3932347f20e0f219d756b31b8c48cb392ad9a90fadc72c13862e34e837af71e1c9aee475332047322ae7a48919dda7a2c8b10ca7f558e28d51e0cc1456dfb814b2733a916ebe5d509aa00841725f17847dfff178c62df682b7fa4589f0d6b4fe5abc1efd29ffba575361cb0e71acf9caf07b947ffa8a9deb0b174b1da23b0e8c829509e9bb7fae840bc1b21a01f2400561e8a7763d38eb82eee2a0face465f90a0c16e8a23307f1b3c24e84afc0374d69a22b6db902d579b146f0dd8c34e689f9252db4015d223528d8b180cf00f1219cf084c7163182c5a2439344da276735844c4115d36f4739982b47f21aa268d7bd93a8822a845d847a77f831f1a9cccda4d93b1d08a5ee0bf768da1099afc7a7028b8596f19733d4ab88ab8e2a3ab9a7002963f64893cdba33bf15f6bc04ceab1c258b73f1f7b5c2eef465f918d1bfbc4054a32ee4c6da0ec28e7b3d8258438c474972cd0182e15b11c2eb9d012abab6388453c8014863aae04ab7b494a1e4caf28bc9719de2915dbfbde37cd76a7b3e738e14a96319a27582524072d3b7bdb6406e5280256841c171cffaa85dbf7694f6e62805cac7cf2b186cbe471fbcaeda30c23cee602964e2b7db88ba51e0c52e6843cab943db878de07a06fb357a02ad7ff31f737cba1ebdfdfd2aa99999db35157d0a826b196092c15eb1eb77636a5d77ebc8e3e320912c1c27f3f78921ffa40c3ce3e036ffba806823b60f18a83796a6af8c1b2f088efd2f6d076daf03a51d29d5c796d519ce01c5ac9376da2784fd1cd4ff51267fe2749a9d3c630574a9d031bff3f8a08cd7033ec655f97dc0175a061a736830e512b7aedeb8899b30249ca161deca3e86b29d281f7ef0a3acd058c850032c275b5daee3769bc8c79158519694add70fc1550152a44c35e3aea82b23a31987b7b94068a3028e451ecc32622f1c9496deb9b0bc01d57e516791166511a18932384598926ad35c77644efbd346df98554e2619f72bdbeb92fa0f73df677539b923a1086df5a9a9b48ad06b35c264f8b7df99cb633ef3e1a1bd989b200f3f641068ceb11fe1b853967dae4ab1dc9fe5dc116be7f40975f7676172c075401fdb4dc43ef88970f1610703f4518733b2091f28e05db50620f934e1f1d38d00bed3669f70ea37dbf7f2ed607a9d02db46f493558cf312bab9dcb95f1936312e3613b2da2114bbdfccaa701ce28d14583c8c503564fdb51ff9957f83fb963257802db1e04eed371a44c09f6e90c3bc553ef300fa11f0979a9c9a6ea63c79fed9c76c1f13cc8f2103e37183ce00ebeb26a7963e568358fff75ef5808639485afe8a51996b93fd44c4af75462cd66cfabcba58a949eafc4e7c6a54976f20b96bcf604c2f6c0505e66d5c8dfbc57b45a933274e2cfdfab8e5640efa90fd3bfd6b89ed3f2150b42ff2bc3a06739e3f5b9dc0236a6226fb57890b26f470147ad3fb0d354a8bf315712901ef7eb765418102861b1f569b69758a94135199e2420b1325de06472b2810122ee0f5ccc33615d8da5d8bb42f364d75802cc76e3bd9b4b60ce74e9c44a91a90f4c332e875f29dfdd7e4eb580ac2e943781ffb607e4b9d1e1d52272d14af5f59c04bd3f0c27bdece304e9dba2e102fa4e0def9a3b5131fce5eb4f955894a0b19f10e376ce5b43205c2b2d3eb1197a01b433853f5b9053ec86268a9995ca529d5f5f60ea7105047e971adb7d0876285f3e0121b58e899b6e78954561d6cf8a9c88cc31d6f183dd2be7ad6d3e55ce48a619162aa88bc94bcb4a33f4562345a31959d98dc94a80cf9ff76c0d986b392f1ec999af14cade3b5e8ecb850c409d6fa662fe63c12c8cdd181f38420a59a966116c1e2edb1bfe0ebf731f9e2137466cc75982db500e6245b8b2b12e6970a514aa2386450ed0cb0adcb023f9a219d43cd1d5fd092aec740c37b1a213174c7395710b57df6e35316879a65946eb51e3497e67aecddde9ba340c96d76f98aeee4053982c2d27a64572c773eaabc2f16d9548f82592197e20a3c2da1ee738199e7b79e1f06406a18abfe45dcb7e1b8eff32b08fb076997ab5433aba842106b576aa509aa0cc5ca09dbc7ce03c8da2f9f4428d49b5da943b7e7c4772c3d9d530557d36c6e8e3a5bde4516e610a2a2b6ba718c700a5c1c9c166ee81e7101dda757aea4ddc59ff1fbe9a64121f5eca9d99144aaefd5169606253a04780959e0e8368f4e27028a38c90bb87ddf7e3e7cde62104978b8a825b039d20b57a845632d0153c1462cc34610bd69bf03c5f27ae53c1fea80aabe6a25160e9107b926f163e5d78087db8013ee8a4ab54b3a6c9ea7d778bdb77f051905496b0f747e2c66f781cf1b8f1a5596096e89bee023f1cb7168f4eccf76b275a4714a257ba9004ef7cd1a9e228fc1b7932a3549aaf1d3df2e0a59ad6d3bac838eb9fc1991e52ce8d432f1456b20f9eeab5a2516035f9b96d6d1464fe3116b83cbaa5edaf266fcf928247b1787ffe3ea4f76f1671d4c17c347b81739236f030f3c49aceb1dff2030c70e0789c69007d4a2220789f8b1dc40012c5f3c0fbed9b8360fbb990d3e41c57df78d4c3918a64f52a19a777a300c4ab18e4288e00c5bca561826af4885b66ef83b6adffbe456e1d757518be7a90d755b9c9ee2db98e782994f50992d772f79bd09ac25a817608debd4c83c0ed308ed8d86885cfd8b22aaaa3e515c75beb179a97bc1c374a69e6e2227a407b4240a9c0b1859c6727051cba9c6e752a8af040429a34e89de351418e6b0ca5859acad32c83c309fbee8fd017805d1564485368dd20a8cf4efc9efc676a5cec344a13ad8fedaa77ce4c16d5d683cd2f35ebb24fd3ce2767c6518f0f0a4ed5805349dbae32655517938f6a885b2c10c2367b13fe77a7817d23c699f2d42d0167eac53f2536f71ac468cc03ae9d76f7ca29c4b598923d4c2af09baaeb377017914670bbf08b11b2838de10720dbae1f8f5934f9cf754fcfdea8df7387455259ef0ac85c1897e24c6f75dc037d0612b0ab53d81a1c2a25cf940b9326234b3efdf8b266e29cb25da66a86b021980795156e2c37782bb1cdfb7b8cbb950ce21f4cc5d95f701c5a428372a4535efc8428402650379a7bf29fd80365915174dd60585aab2dc3032bcc53b02ac44fcce0873f58aee8948c12d138657ff2fc7341928204305a2bb8bfcf983d1220e6325aa416e3e1a8d37fbf6539059fb4437e78f734e240aae9c9c0517eb5b56270991cd1322eb19c30b0b08d46c33171455ea7c30aa2c4f79e6525166298ac35373f3a3e55fcf0980c5d37bce9803a5c69ffde59ade66c2166157b755cb3ef1d1c322fb4c8b48accc007e003c4f9e4929170183d984abdbf94d5ad36b7228f30b393b46b4f5de7ea3e34efda2abba05ae351576f3a18059ed93479a79d6c572499d0bcde8f976fcd465a67fb4b0aa11a47912a56d0ef7b6828bf54737c929b9dc126b1942dcc73472b2cf6aa59e0950a6cf12c57b9ea5749fbefb2f65846cbcb5756b1e0ee147bb79a8597819e1cce2ea371885375b65de56f55d703648cb5fb6290dbf181b02ec14edc06ebb64656e0a56ff94e26ae9e9596c258e8830705379ba198c8058a674339573979d71ba7d388755ff94ab68d1f920c137c8340b4527ee1495693722f203a847b68d8f3bc98db17a9bbfb990f4fe1f7fd53bfc75e2027c4ac59bd0aeeb6350404c287555863ae7b652c44d19611d1d0b9cdf85a51a30f9954789514f7e0c6bac1dbcf44f103332d4efbaf5e1bcc1fa3a704bd3a7c60a7fb286cb40f71029aca7ede21dfb8c101a36ae3b029a52ff4c2790ce80df85c247a71e27e84c71f36adcdd64a7626df9e6e168d4f9d0f2647d0dc392897c1cccafbd57655526ff76820ad5041a227055ce3fffcfd113ae2bcc043e538f7586e206c6925a1c34db10724ace2c195a796ffe297e029f56e03cbe8b82447488deaf3d091047daccf940f4fb80c50c58496ca556835a291e887cb3d26eb0948da82274dfca85e97f81469462602801a1bc60826a082ac8fa91a24792c21882fc1b5b635b95a2689bbad0cdcfd6bb06bddcbf3de7aa0b5307c304bcfe0e5093eb14e2f442d8edd58f93c16f8d4df7e88e3feaa9ff88ac94708bee95d1b285e5b49d1d08353ef5ac4eb4ad443bbcaf7ba24c470d35fdd2c5e6a2ff7e617167b9fc3e94de430f170eaa4a88c3c77e48e7d6b2e3afc118e08f30adad7ad615a22d8ea83285b7ce61ef4bdb964074eb1de5d6f0576082550048d40ed1c82886b3da99eeeb2327b2811ac65a943673845ca8dc066d6268c49194c84d6395d0d2f2f6f5be6b2021c267e41b5cda8595b092f8da1dce299d8ed00738f6efc08fa9bc5bc8a68cf36f882aabee33d3cce5155368ed7ad70c81769b6321fe0053cab68ebf94ef35d22d41fe9f68073435bdcb433c027d79c5d8bd406cb2cf4b97263292485999f36cd0e3210aa2fccec50d1d9a75d0c81931be2e0241290bbc588e4a83ac8615b89bed989cd4e9d2b2a99b052b65d79fa22ceb9f6a8b97175505d218f3eb29559e5fb97c7abd30b13d39210518498e52e0e0e0df5a6f589198fe90c789d2b330f37f39de0da036c3370e46bbb27bdf40e12ab70c17eb26fbb0005c008464b7c758fdfb67d2eade3dd2440f3e3f456b571972a1ba98941979ed55f2e4d6613cb7ecfc7609e494f478318f119100a79f92e49a2e41e8d8f7f53bbaae47c9213df06572b2896b2ffba80d178986304f830f4bbc161779df52859e7f317be0dd52683cc0cc01725b75053d03e8922d8f080691958fa9298b0d6dd70687b47bafbba1d9d153835b02f1e51e4bedf14d53b2fca1faf85665283b32f2acf3e97ce65f1e308cca6d1394ac0f7b378c947c9d8f9e74b24722fde63918a2e807f36fa9bcd34c6036e6756fe8d76e7fc4a300fb67e3627aace66e4573fb02a90bd0ec2aca0c36bec730b185eb84a6566feafbbd91d56da9b37324d13382feeb3d90ef96e95dfc7ed20b60f792301d6f0edc0fdd5b554c3975f84f69c0f18420660c5472ccdd08072beacb9d3192822d219689a7a6b7c541adf1fadd65d949bc2e07067d9307a1bffaa3cb4fbafbe880ae4a39503a9db2ca2ab8947b34de7088aea78ec7050427055cddbc013f624aefacf9c92dfcef1ff09a9c7b544cc09ac63b1f32854107bf415076a7192ddac51cc8933f5f7cd6b5abbdab8ff0b6dfa60d484512ed5f229b8e75bd488043ecae386d691cba086ed7908755b5541d129a9123314f5d6ec5e7d0d9781f2b9f053b2551f7069bf22d281499dfca766eafdb2fcba4069212253116504da136e1bbc51be79a7e90248b6dbf3067dcc01471d9559e30c7b83f1b1f72af776f162bdbed638d17dedcce37f6106f9156f6998a9c8b267e2f0868b81367a57a8aac60d3122b9d6cca69277e794cd420a2f8caf9198f92abd9eccda0f8731a885160915aabdea832ec0622c7ec6ca483e87c705ce3ab6389b72ffaeca83bd52e2f9e3edb5a9da2651d2e936a6a919abc9a7ad61813e52b8764d0f4e14279c485ad1fbbcc4592b9b81ef2bcd55f48d679200de7646fc46e2e94616d8926c00de30d87c57852e4df3272f2fb9acfd6b33be04a935149bfef6840d501ac3f7f7f7bdcd43d588a88c6cd0a5c204de9e5d0bac76a54b61dd44374fe284e46548b9d9fc2c8d689c4f8e2b770ecade27dc21952f131c7c8fdd6365267bb3ca722d6343ccaa99f47af279445ea2f2a997e036994c6860eb8af82e2f2fd9e0a1b34ab5f926957e0707ed95a198739dbf6de5d56c5ef9cb148b619b3cbc467fa997936277947a3bdaa4861e52e413a06ed126942291394afc4013d38d0780420563d359ebc110f244d69983b858f106350138cbf2e8fad79279539376357630e7c7850b4c17444a8443d97d152ae77ca30292a3d660fbe08ad25e07900c456605270146919ca33304dbf530e6d516b66ab017b978b3de16e9f545dae53807b6b503f07d56efa90445cf5081f96463fe2f5cd7aa5874061c9b59106d693e278cbdb8faa4a0f2c85ed4ef3696935b403ec644564c658847f778e46c0e2bd3b6f34d0bcfe56f6d1844bb56055705aea6d6fd3c109a8fb4b0cf00894b31013b503599542ac9a7e0c185923cf4eede8bec43d44160b054b0b45ca34cafc9dfd33c25d40860cc7ed38a6790efc9bec422132a8dd3920ac11560f26a95216fdc8d59e1ee36de6436e80f6b436c42514b5e9c6a72a737e6fb7e92fa63f93ff545ac51c044f8a83c9015c8786b5ec60ef701215cd5eb289759871e7cd871fc6f62ea7b9069a2ac6cdcb15c573844f0e8aa79d893d2973c9d7dbdc84be5b949cb7aa30d0f0c7e4d19a49660b5553f9b7fd10ffe9e766a2c3e11d25875e0cdcb4363da260e819c366261d27cdb9d2cc90e3de8a63fb8563f6091023490c9efd60529d99b737b8a385967443908e028dd65e54faa468960479ae4b66d693881ab0ca6f8290dc9e592d2f1cb88a4c7c025f2d79c5d9733473acb0445b7b1b036b1494a124adece58c5f23df7d0810d62f67d4c5a34102026815123f2c6a72a674ed081d2a56797b7c45d9ce349a078e0d1c9a1a189c57f2d99608b830d67ec89efc0ac4519fe5aa07ad32c600aa67d6eb22f98d650ded9257e7a18bab50b461deef06b021c2bcf99ed2c72f44b9707adae69b3b59e7c86e38fc717e3c4e11fc4cb1cd63d06afd4b6f91ad5b71e8eff1c5c4c5dd1a6135edc0a58cc47a8234277371ad4ee4b5eaf820bafc29878f23c2655ce247dc87a86f20938e77dbb463189632951062ebd68f947dd1898c2a37160d187a6c1d22279bf935b5fc79f85d4e59ed6681a812f95d73d95e2bebd95ad959093e58ef522df3a71f556beae6eaa116d6df8c76f506c85cfd6ba1dda93a0e71ccf4707b91c5dd693d7d7e56df796fe69a86c90b886a4f2e211aa50df5a7a6a16761464ce4bbb5cc90b55028df278f613897f6c037f676ee2298448f6514757e78a276ef21a15d38f231098136dc390d586f82cc7b9f18c80140ec653302e8cfd83f863b6e4f192e85c5e5acb7910f65cba314e81cb92a567728f33e59bdee01c3e8c40f9f834c09c3360c7f26ba8c8bcb57cb68eb1577fedf55d14dc7c65896e0a1729471e3eb70ec4027974663334848601348957f9b812b3099b0e6a212540ccef7b3d612321fd393390683dcbb475f26f1d853f7725c5dffd21e23528ecda17965aa6df7291f43b0ba34e7423626a74c6c6f21f8cbcd95316bf2917044bae6277d8b73a28b5133e0ed62e058f83ff171e1700b5b65dcbe2aeb7663c605e25e2d64be4c8ad488a8a41a113520dc4b291d939d60ecda800d10ec6c46de1cf26fed539acbbcf1a55340b44ffb7459e1126e4b95125b5b4a62217709c507c48d92b4428d667b19fc5158728fe80989cd0a41d6cf6d2e101ec208928b8037969b622da92b4be824e4c1373a6039f97d485b2db996b511e2db6e3bd7933dcc2e4f0947d0836ecfeb12900e45f254d74cd55ea29a4ecd4c9d81aeeb5fcc25c0f34c6d0a91e63c71c734592cfc82bf3d8c924e7a3a32115ff04d06d583142cde8ad163da190027ac48fafbccc4dde4693b67f21553efb5f04f24b62336344da25a4e34a18c4ab497911f3635e0a69d5c2845338c0a639fb394a65216f671894f4c4cbf472f68152146ca4a13c221a230fc4410b77db808250a8a37a98c93f3e6a7e5eac5e6af0db18e48dfa455d3f8742de490f855f58d0267afa5da8ee606c5db8cb05c600dcc31d36798c830cf341631623894330c640790498363b56853e0de0950086a836ea956e1f024dd017ab02542a8a07654ab1b44c0f21808486b0b1e9ca68ab18911e225427cad46046ce61837720ba34ed2a683521a020e8d99c26fdfffc64164924e861c0a8554746f1de3d313af3e791e2a482df46b5cd7b5841676dee96e6befc557bd0fb43bdade5e54883874577ad752c051d307eb1bc65d7091d22d4eee87ac8f08f66daacbb6ff3cf76223d3b21af21cb6a6276a957c1d27ef07054fc227a0ad385e48e7f705de4a14f5936c743ed5317d253e6de7051a6f7aa3440ddfeedee561c012c0c5c54bd0df4665afb0b74eca9eb636f368f0946cf8a2fc1f9a9f875b0f695c78925a47944bdc4424bb3eed38592a38310f83cfaee045092beb3eb945c848ac0611c338dafc54dd20590e189e996d305c70e9da675557c7f7273251ad50ccb80720b92deee397064c163ec0f301b919e73a336c07292e389b4bedf6f7991e854b9ac1fcfd8061eab9f6a6ce537f83db2edcaef26c65bc37ea0946aa6fa9f4d0812fb09660e14d5f7fbf971b87ebb955ba5e1649bdf9258d31d9e081ce232cf3576ba23fb293b5ccee1efe125a6e03da21076837084f55d0f0949abf4322b9ccb3aa0e1f932a9f4131cbd2dc8a05b458bcf8906d34cc1165ac15b5fb4b093706e950de1d2c49022f4381e2e3c3df50ca6e3d97065583ce00f5c8b425c127e73874f962ce597ec147e509eaccd382129a12ea925ab4d9e02431bf4c956536536c0efb9bc32c9f0b63e5a1c3c53426f84db79afe181cceeddafb93a0d27914eb722896b4167b97b492794256151ffd79373a4fb5cd083e13393c30f0baa284e6e0f5855845d3143e7482f6c064b6bc65e6935753ddcbe3a6f92ae09ca6cfff771f14009ca264b85f8a33d1996b20fd6dbaacbbae500223ffc05fd527459ba7c2e003dc05de972dc8781c59407dbb0892c41910242f84f5ceae012d5b6eba213b2470a92472c15544b817f3a8e030503da61a9782fbeac37e2ea32d577a95b1c1d2738e685c4fd1cbcf26338fddd77a738faad4e8f3a5da33683757a5b6074fa71eb94403d28bb9d0b5a0cd3ca003ea8ac77606f16741ebd8009cf59f5f2c85594b746edb56dd9be368202c24262feffb453d80881f05dce27a0dbd09ff43ee785a3abfbc89c498853e0bdb32f5ccd99904188cad89f1ac1a9cf92c31c2e7a6c43ab6c09c0d9e7aef76718c0d6fbdb27e9801251b5d860f96f18979334f19c85084b5bac24d5453d6d67e05b956826bc98e0c33753304b2120ad1f41baf7a40418cc531c4741a91a0c1065fb1da697bee8714a808b34b7c6c5a8c1d539f573ea96544158bdbdf2f9744e898dff1113c759be907d8a94b6511ee511bed1e3e2b661cfe6fdeb4b7720bc18b06a1347c5108909533509ce290dd32896915188d7df68ee1f47074723ecc448c9a0eb7d6f03632600c29f65da78102fd89724a2589de48255a2b272c6d656c135a7bf8ff1481e884e7743a310774338d541c24a8a02ded68161a22afb985c2c951952f0a376dc1265c2ec31a89c483811dfffbb6e7fa42d3a24e6aecc4edc0a9ad566cd9383694b207919f81cc636842412f40a409f33e44e34732db490e07141865193af31799d4aea9554400727d03f48533d28623209036f3a21f000e2fd24b9b25b40431ec2458568a3da647b43b8f777ef73cbb19d709c813cff3a86ffdb7b6a6183a3eaa68c2ad35ff372e76cd14d393140baa7b31c6d75c7ebaece29870877489ed288e736cfba36c853a7a1bbbfccc3a3584cd29dbad61f1d50e36333ca40c89dfb52ffdfd094fce9336798ab1a894837b21fe17abe2a088a10c47c6f4b89f9ecf3deb8fd3a9287ded67ccfcb4514bc0d6e850947bd55f339b84019b71e7f1560d2ef4f6398270c356b1295345da9e72576087d192dba7cd603197315b190f47b7b372e4d8ff7bee9a12959b3156d5585ef5fb695ea164778be6d6a8f205430be794ca3c0b39814ebd0fab258f4f56f2c3700699383bb1dc2e84d9846db85fb17f306436e0e0eac18d73ea6666eef47addb995d6c8a295880f4545786729d3e84fa887329d7f92e8aa307b7e75b4fe5d85909a0073fbdf7cb6c4c9488c98aec2e773ac49ca9807084ebe73ff7fc026b33bd0329a7f76ab125cae5377c81c380cdfd0920f23fe421a5bf3440f9984537db58375f610781e7d3f691b5598d73fc3d5239c20135dc1dfadb32b01b33b799df3a4cb02d6194e9ae30c52ccac7bb6343af29f86ccab38bd433182e9b1ffef36dd010b3e185149ca59ed49b8c4b3385f78dacf62dda9704a1ceddd835c2fb88d61a722d62e41810081e1b999324037fb5f9f1477469798f93669c3d2770b2567b8b9e4f78a8a6744657eed36b494b7911fc0355472dd0c04ecce4fb9f8df4c733a7c8257d30616d8940aba268aaad5ad21dcaf7d0fcca3e5e5c5f4f1aec187c706a88fbedc997e8d97cf9f1185f59e9b3a2702e9c0025df66f701b004bdaef3ce751cee8b37998d55fa26a0dfafc63f3667dcc84994e763a6bc2e04031fa0996acd2d69d4fd12ee87c108972609b185c52bf78d9c4c8fa6713b9572db65716340270ecb28ad08139e2df75938f3bb5aad849472adc7ba20353131663a132de7315ba9833dbb483079e176bcbfd706f39c5ae5a439833a94ebe4515eeb05273aac26084c98fcf51b5fe9edcdf76ea1919cd511ba0d83e14d181202d06fb1afee1a9125403d1c08341a346def486a982649a8ac5a9587c1f6c6ec46dbdead8ad2c7db2c3df5e64e9bd9e0211644473ff86f79d20292ca89111b4f9677622d2f443ef9b2a30a306c98dd03774d2a65195278fe4c7443a44e50e5e33dac3ac7f312fea4629ffae7167ba9a6a81dae248751feee2e6212a88fa00b3a8f5d31f153e0f2d8c46ad2ca265c1211f14746e60a493113f3beeb16edf240b6f3cdafd6593a91a327d06428ccf2f3eddbe68efdc097320812b3f451eb9c654adcd5e788e5969869adce10a9ba3e36e38ee0141a9bf8cb74a2aa77b56714eb24d6abb576580ed956d40255aa80c36f0a403f791a1c2ffe0b15455a59c0f10f93d803b9bba42e0d3d42282df4fc2c3bae2887fcde30f6f7d04fb5cb8f27a8924ec85da3489a3acf215a6aa38a79391e1925f857ac1a1156ba5f14fbc33f9207363dd81ab6f51fa9f7b4d49bdddedc1feac72d07cc85d85a1e7a1d1c7d367b186135409b9c6d87831a581224780d8cba9ba06b958cceb5a2ca551879ec043d0342b2652e44b622b68444c91e62a51ecba41bd848311074aad207d196027fff66e49fa2cacd3412abbdb571926f9877c36e5aec53837472996afb74fad9aad2b88dc0faff0b3b1cb65eff5d0eec875e4730699a5b775079640bd990345dae0af2e7641fb2c17c6bf25543e2b2e0010a8745c946d76898a66a969d9b7e2a97fd83fe3daa4b5b6442109b97a552d7ffe3f56a2eaf56791e7bb8ec217ad5ae05e7197912378f6caf70532e2d9d2c06455216b17413ac5bc9dc926e7d0ff5592bcca50a75705f0bac8330b34044bd247ec5b873dfd03270c10bbf53d065d9fb7f1afeb4047e7f943efd31fce14fd718850d87b2c32474febd5db55ffdb0af70a019a8552c89e92f247ab4673310456d461b85d8dc84d4880a15ffb63dd0851a3c15f7b5379e3c810acb3f8d9ba64ef48a9709ccf11b765efcc24eca2f8aed2274029f19c5914165a4d6f3159ed0e97e8e25a0cf4957cc907d24619dcd5afd2b5a973a0a7e72cd8f3d1f4acea077f1473835da7aa2a1ea89c85ef1c0f5c3afca7e8a96909435d9fb8604ab488e12fee83cb9b776148cda4fb7a24f551896c7823018234849ef15fbbe2d618c4547598d6848c02ab1de8978445148e05016488f2564eb8bb63295b8ba4d16c7323a9b5cef4a968c744907e0d860dc14ab4585ba49613add3b671a9f5b2880bde3a7c3c8ebb33491280c48d6d20a4e6a7d39e80cfc79823c959eac0a361e503abbc75505e2421dcdb9f9986554ec359f3edfc705ab0626e3c9b8c9ea2f982ef532f6a41b0b26cfaf98494b9e6d558550b310d54634ba50e62fc25334c3cef714050756f52d6239f32552d19344abcf07776edf657dc57e305c37690d5a8f63c51f99cd4c9de965f282bc193384b7c142b58aae72734b72237be2470c96505fc8f110c2a0dd516439b3e46e4e4b3001386b49b139f2a7cf2f0c3578d2dd33916ae907c6fe80a2a76d36674839443662d63b9fb3393648a8d2f332ba505af647b6421b2fc7002962df289a2b2ec1b97adfd0242d18e7542e531af39c89fd49371e7b8ddca39685ff759cbf300f583750617e2a30cd8c3ac3eecd9d2d7749a137ab4c365c06468c3840e241c6d1cc04ff56fbd4624a7c95553bdd9dfab062300e47ef09a83c709d7e77f6cdaac7df39233c36aea0b66d0ce78a62fe70c230328710aff78d8b6eb1f1bc334dbfd74cd2271973ecdc883c991cfeec9b3fee6b86014cf275e155f7c0d2c2a3895e7b4d102235ba24f8404a1c6112ac51e41fffae947b2522e125d4fb4b77a3849b3a2968c44b56ccb1de17e3daca0296274b61768e31f7b7c266931710775fe09ad44d7e9a02b9ccc4281fb2a892a49e6d7064c1bf570df389860fe3b143ce7848c39005c643714c02f2ff84e3803661b639e367b31217887ead141b155ff3de15a36cd3f1b3de747147dfb9053752e157506b3ee2f27bfc0951eea38fca47da3fbc206d78563129656f9927ab67afdf3f5e47e543bbf88626458a7957d6893d8ea0e9b77d86cc34499329b1eaae3f37365772a055bc4c1cd9ac31315de14389159167b0c7801dfb6def7952101d83ee7a6b5076bfe7874a74f872aa211737f90ccd6bdb17ffb87230aa143c3d5f8da9bca6b1a1eb058d1a86cb9dd5b2878d967388aa4a5a7cfedaf26b5879ed805950912ff0307689cb418909c2e660f3a65dc6b54cf325237afed7585f2ec3cf4efd9f89cd5422724029c26baff2611547a6ae46cc5d6e514b3adad721761140d4a10ffab430a57f73e5e7239ce15054b8ebf90b899c9273c77b45ede8ae43f8f04996f3a0d8b121eee3e89bdde21a59d55987ae705532374b83be84757ff42d67a9ea05b575c50326f9a31b0dde982efe773e0fa435ca419a8eec403c4f62d4b9af9094b519ac1a1e28eec7f4e5782cf912f4a14e56192ae7eb7f1453cc6ea2a64ae8aa53af9295ac52253ed33531054fffbdd44b5fa45a9e7e193c0d909dfe5f6fb3bf87991ee1c875b3ca1f81e368f636d2302087f100862ce8537ee362c606c707e51f2c54792adf06301b7b991bd5d35521514a76175f00b09c857a45d658f5a8d830a848ad1b465e8d8bbec271b425a5e5bf9eccaf47dc4ed6ba535e5b18fef819ef1236a2808ea7bbd55e3c149f4e6982b5f29084b13cd8bd563bc4109d8e12c01411a527ce338c38c00c0a05725e8aee44b4f56db83a55a0c4946fd7b885b52129d596e53321c61d8e91ce52f37a4a40157f43e371cf21ec995213eb279977047ef9a5097fb96492f201fb8659164d1f5ef227dd0bebc72c4ddf9987bf071828fd9dfbb5bb2f5b0f25931525ede759582d560aa1db59951e1bbf75a4a6abbe3c5ff7f3aaa9082b65cd498564681bb6598c20e9787cfd84f40081b76b43245648f3c15afcc6e02ae444cf215affa7c5bfc6804fa8da12c0db0afceefdec35033aaab1892cfc8749bb80e3344da42fa33c4ed315d8216939241be462c3eacd9a1ca0bfa9e815bedf75fa2f5a6e10dde50472f743769c5e1f7dfc22a1eeeb6690da669e80e9a9e3ee5a7c0e95123fffae198c6bbc9e4657fb6391b74dc86601b82c29691772e51c575e2e79cecd425aa227b397e48fa3dd8f2f9cd074fd241ce25a552764bd1b0089aef45c436b31241f94d106791942704739934b8435b4c2dd904e26071831456acce497e26e50a5081dcfdb9cb3afadf163e36ee7a3f6c49b4f723a10217aede673b67c1c817e14e8d6c52e2e302b3ffe4808fca3bef417a9dfe477661200af0e68b589ee6875db72b499ce4ec3e906ea0f08e28177a390f834b0b04c9bb91b595793e1c2fd4c69ffc789726c1b1bf09e0d5a46b87aad1997df92db2d19023ac388949d6e7ab80355a0e9691c64341821f203f49449dd2e7e446899f3ea8cf48d94447af211f059212988d30e7dcec2bd30a9b78a8125840193ccb8e028eb9e6835f4454b78e366c6e643a353a6955f3296a6f9d67fc102161d4d00572cb67ab270bd2cdb50d9a905fc3376fe1fea83528db1c72f5bb361377ba8154ce7ed64fb09c38e8aed5d81a8ff998c7621ad0e3241143663eaa4925b4344248d4af56f30210e3e2c88b7663735ded8982b8abc6544dc27e8cbe113cf4598fa83d02fa5a6859d5b8134acf1b002bf3f6dde9a6ad146c6e89c1b2a0c57ec8459edf2743fc78f215d31538fa0bdf33b253be88b0a2d389b9d87909432fd8e36734f1b4a1e370d919c5d362bc94cd015c4fd97346d1873fdd48df77f193010be02d5d70b5b053eb84764591ecfbbd1119d3b50ccfc4eb47929116e96a85e488069178a0a30370a0ca3547c397c090e66de2f634017e0e098832c7051c3fbb3be02aeb5d018b0b2910312d77ed0686d7d942ead0ced5a2eb8620ccdb5f1e465957b82e6342b7716e5da206ddb061c6dda3653966f592390e62d4947c648229c127a35227f801282eb4742d4869d9c673aab325638bf1083c9f48197d59c5ea027930479ad2416dc8d206d1c195002c8de9acb79b43a81ce7f4fb82d4d387c98ec391d4d633684cd2e5422605c5056f7d2c8cc9e8a9895a941b571e6a5648877d0627bd1e937c57f33e1db559a6e7f05fcdd8c25fc743952d2e60d20591f22032083660ff30af14f52bc29178a3b91efae249386adc663db29c70065bf79d3e535fa737de61ae551fc4ae0ef19e3fc17b35762a1b80f64788cbe2fe0935e4fe94a9a4f45588847f2add64288ec4053df479d464a4ec28bab6217d9bf37603d451c7b812f93f22540d1db6bad61b96360de0916555903042280fcf7e659571821dae0c70a8bf54df8569512b000b8a5e9278f7f3001cf528c0c1d1716aa29077adf0bebdd23c5240eee02e8a12fc642688c76bedb8f745af0c192b6ed7f568fb863a0c3b9a2fd5a4b2731128683d8be15c52775a62464b2d7f3dad174440fe22a1500aeb6d1cd1b1a1a8d32f90872a1a17734b7460fb71516910a7005b247ee3ee$67bd07c62be978781f70c96255a66dab83952ceda291dc56672db4dbbde87749f0b936b7a072bafc190a9052cab558013647db5d84aada532880f0df03c0ced09984af94c355e03dfafbeb4a21746ac98e7ce2253fd3718fb5b3983882688b53ccfcd329455ccd58696a206e23601ae6165b80d3a15a3bb92febfbd6441ce202ad421de324a2df1d47b7816526e93e546b43a0049efd7cf33da6adbb1aaa8c845fdb01f8feb0da92fe775cac6159610ca8f0af185decc137ffc38a6aadf2d36e3d96a060920cd0260b43a4dfea8a1557c0758fa6527ccc6f622092789e87652db861da0c2909da1b8f5ecbf712125ee43bc30850f0e25926ee00e9e64c765c61d151250ba12f7bf7544301c2a8ca548d2ff7f6f5a15b6330b1e6b22eeaffeeb2cc344d8fa585360b16c56ce4cf655e5b86ee207671b67d51397e9d6621d77dcac560d9b770e318f8b06ae09fec5d0bc3a0cfda80e4e7b7b3ab5fe8a69da8fe827fc6dff4f5d72ad811777f692d535af3af66458165950980ec1c639566d1564f5323c59222278e1677ffe6831397842e73506fd243f2b63c2c80f478afd9c781ca56b017a557659011d97c0b7cff991f93a0842a5bbb5f595058a231ecf48ed704bf4981f4603fb8b1d21e93330349860485a835b61c242802c3ea8c8b44f5eb592c29304c1dfece9f7366eaa07aef8a054f960a16e7b1e45f8a57f62db78952"; + +u32 module_attack_exec (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ATTACK_EXEC; } +u32 module_dgst_pos0 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_POS0; } +u32 module_dgst_pos1 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_POS1; } +u32 module_dgst_pos2 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_POS2; } +u32 module_dgst_pos3 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_POS3; } +u32 module_dgst_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_SIZE; } +u32 module_hash_category (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return HASH_CATEGORY; } +const char *module_hash_name (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return HASH_NAME; } +u64 module_kern_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return KERN_TYPE; } +u32 module_opti_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return OPTI_TYPE; } +u64 module_opts_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return OPTS_TYPE; } +u32 module_salt_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return SALT_TYPE; } +const char *module_st_hash (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_HASH; } +const char *module_st_pass (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_PASS; } + +#define LUKS_STRIPES 4000 +#define LUKS_SALT_LEN 32 +#define LUKS_CT_LEN 512 +#define LUKS_AF_MIN_LEN ((HC_LUKS_KEY_SIZE_128 / 8) * LUKS_STRIPES) +#define LUKS_AF_MAX_LEN ((HC_LUKS_KEY_SIZE_512 / 8) * LUKS_STRIPES) + +typedef enum hc_luks_hash_type +{ + HC_LUKS_HASH_TYPE_SHA1 = 1, + HC_LUKS_HASH_TYPE_SHA256 = 2, + HC_LUKS_HASH_TYPE_SHA512 = 3, + HC_LUKS_HASH_TYPE_RIPEMD160 = 4, + HC_LUKS_HASH_TYPE_WHIRLPOOL = 5, + +} hc_luks_hash_type_t; + +typedef enum hc_luks_key_size +{ + HC_LUKS_KEY_SIZE_128 = 128, + HC_LUKS_KEY_SIZE_256 = 256, + HC_LUKS_KEY_SIZE_512 = 512, + +} hc_luks_key_size_t; + +typedef enum hc_luks_cipher_type +{ + HC_LUKS_CIPHER_TYPE_AES = 1, + HC_LUKS_CIPHER_TYPE_SERPENT = 2, + HC_LUKS_CIPHER_TYPE_TWOFISH = 3, + +} hc_luks_cipher_type_t; + +typedef enum hc_luks_cipher_mode +{ + HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256 = 1, + HC_LUKS_CIPHER_MODE_CBC_PLAIN = 2, + HC_LUKS_CIPHER_MODE_CBC_PLAIN64 = 3, + HC_LUKS_CIPHER_MODE_XTS_PLAIN = 4, + HC_LUKS_CIPHER_MODE_XTS_PLAIN64 = 5, + +} hc_luks_cipher_mode_t; + +typedef struct luks +{ + int hash_type; // hc_luks_hash_type_t + int key_size; // hc_luks_key_size_t + int cipher_type; // hc_luks_cipher_type_t + int cipher_mode; // hc_luks_cipher_mode_t + + u32 ct_buf[LUKS_CT_LEN / 4]; + + u32 af_buf[LUKS_AF_MAX_LEN / 4]; + u32 af_len; + +} luks_t; + +typedef struct luks_tmp +{ + u32 ipad32[8]; + u64 ipad64[8]; + + u32 opad32[8]; + u64 opad64[8]; + + u32 dgst32[32]; + u64 dgst64[16]; + + u32 out32[32]; + u64 out64[16]; + +} luks_tmp_t; + +static const char *SIGNATURE_LUKS = "$luks$1$sha1$serpent$"; + +u64 module_esalt_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) +{ + const u64 esalt_size = (const u64) sizeof (luks_t); + + return esalt_size; +} + +u64 module_tmp_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) +{ + const u64 tmp_size = (const u64) sizeof (luks_tmp_t); + + return tmp_size; +} + +u32 module_pw_max (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) +{ + // this overrides the reductions of PW_MAX in case optimized kernel is selected + // IOW, even in optimized kernel mode it support length 256 + + const u32 pw_max = PW_MAX; + + return pw_max; +} + +int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED void *digest_buf, MAYBE_UNUSED salt_t *salt, MAYBE_UNUSED void *esalt_buf, MAYBE_UNUSED void *hook_salt_buf, MAYBE_UNUSED hashinfo_t *hash_info, const char *line_buf, MAYBE_UNUSED const int line_len) +{ + luks_t *luks = (luks_t *) esalt_buf; + + hc_token_t token; + + token.token_cnt = 7; + + token.signatures_cnt = 1; + token.signatures_buf[0] = SIGNATURE_LUKS; + + // signature with hash and cipher type + token.len[0] = 21; + token.attr[0] = TOKEN_ATTR_FIXED_LENGTH + | TOKEN_ATTR_VERIFY_SIGNATURE; + + // cipher mode + token.sep[1] = '$'; + token.len_min[1] = 9; + token.len_max[1] = 16; + token.attr[1] = TOKEN_ATTR_VERIFY_LENGTH; + + // key size + token.sep[2] = '$'; + token.len_min[2] = 3; + token.len_max[2] = 3; + token.attr[2] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_DIGIT; + + // iter + token.sep[3] = '$'; + token.len_min[3] = 1; + token.len_max[3] = 10; + token.attr[3] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_DIGIT; + + // salt + token.sep[4] = '$'; + token.len_min[4] = LUKS_SALT_LEN * 2; + token.len_max[4] = LUKS_SALT_LEN * 2; + token.attr[4] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_HEX; + + // af + token.sep[5] = '$'; + token.len_min[5] = LUKS_AF_MIN_LEN * 2; + token.len_max[5] = LUKS_AF_MAX_LEN * 2; + token.attr[5] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_HEX; + + // ct + token.sep[6] = '$'; + token.len_min[6] = LUKS_CT_LEN * 2; + token.len_max[6] = LUKS_CT_LEN * 2; + token.attr[6] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_HEX; + + const int rc_tokenizer = input_tokenizer ((const u8 *) line_buf, line_len, &token); + + if (rc_tokenizer != PARSER_OK) return (rc_tokenizer); + + // hash type + + luks->hash_type = HC_LUKS_HASH_TYPE_SHA1; + + // cipher type + + luks->cipher_type = HC_LUKS_CIPHER_TYPE_SERPENT; + + // cipher mode + + const u8 *cipher_mode_pos = token.buf[1]; + + if (strncmp ((const char *) cipher_mode_pos, "cbc-essiv:sha256", 16) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256; + } + else if (strncmp ((const char *) cipher_mode_pos, "cbc-plain", 9) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_CBC_PLAIN; + } + else if (strncmp ((const char *) cipher_mode_pos, "cbc-plain64", 11) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_CBC_PLAIN64; + } + else if (strncmp ((const char *) cipher_mode_pos, "xts-plain", 9) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_XTS_PLAIN; + } + else if (strncmp ((const char *) cipher_mode_pos, "xts-plain64", 11) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_XTS_PLAIN64; + } + else + { + return (PARSER_LUKS_CIPHER_MODE); + } + + // key size + + const u8 *key_size_pos = token.buf[2]; + + const u32 key_size = hc_strtoul ((const char *) key_size_pos, NULL, 10); + + if (key_size == 128) + { + luks->key_size = HC_LUKS_KEY_SIZE_128; + } + else if (key_size == 256) + { + luks->key_size = HC_LUKS_KEY_SIZE_256; + } + else if (key_size == 512) + { + luks->key_size = HC_LUKS_KEY_SIZE_512; + } + else + { + return (PARSER_LUKS_KEY_SIZE); + } + + // salt + + const u8 *salt_pos = token.buf[4]; + + for (u32 i = 0, j = 0; i < LUKS_SALT_LEN / 4; i += 1, j += 8) + { + salt->salt_buf[i] = hex_to_u32 (salt_pos + j); + } + + salt->salt_len = LUKS_SALT_LEN; + + // iter + + const u8 *iter_pos = token.buf[3]; + + const u32 iter = hc_strtoul ((const char *) iter_pos, NULL, 10); + + salt->salt_iter = iter - 1; + + // af + + u32 af_len = token.len[5] / 2; + + if (af_len != (key_size / 8) * LUKS_STRIPES) return (PARSER_LUKS_FILE_SIZE); + + const u8 *af_pos = token.buf[5]; + + for (u32 i = 0, j = 0; i < af_len / 4; i += 1, j += 8) + { + luks->af_buf[i] = hex_to_u32 (af_pos + j); + } + + luks->af_len = af_len; + + // ct + + u32 ct_len = token.len[6] / 2; + + if (ct_len != LUKS_CT_LEN) return (PARSER_LUKS_FILE_SIZE); + + const u8 *ct_pos = token.buf[6]; + + for (u32 i = 0, j = 0; i < ct_len / 4; i += 1, j += 8) + { + luks->ct_buf[i] = hex_to_u32 (ct_pos + j); + } + + return (PARSER_OK); +} + +int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const void *digest_buf, MAYBE_UNUSED const salt_t *salt, MAYBE_UNUSED const void *esalt_buf, MAYBE_UNUSED const void *hook_salt_buf, MAYBE_UNUSED const hashinfo_t *hash_info, char *line_buf, MAYBE_UNUSED const int line_size) +{ + luks_t *luks = (luks_t *) esalt_buf; + + // cipher mode + + char *cipher_mode; + + switch (luks->cipher_mode) + { + case HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256: cipher_mode = "cbc-essiv:sha256"; break; + case HC_LUKS_CIPHER_MODE_CBC_PLAIN: cipher_mode = "cbc-plain"; break; + case HC_LUKS_CIPHER_MODE_CBC_PLAIN64: cipher_mode = "cbc-plain64"; break; + case HC_LUKS_CIPHER_MODE_XTS_PLAIN: cipher_mode = "xts-plain"; break; + case HC_LUKS_CIPHER_MODE_XTS_PLAIN64: cipher_mode = "xts-plain64"; break; + } + + // key size + + u32 key_size; + + switch (luks->key_size) + { + case HC_LUKS_KEY_SIZE_128: key_size = 128; break; + case HC_LUKS_KEY_SIZE_256: key_size = 256; break; + case HC_LUKS_KEY_SIZE_512: key_size = 512; break; + } + + // iterations + + u32 iterations = salt->salt_iter + 1; + + // salt + + #define LUKS_SALT_HEX_LEN (LUKS_SALT_LEN * 2 + 1) + + char salt_buf[LUKS_SALT_HEX_LEN] = { 0 }; + + for (u32 i = 0, j = 0; i < LUKS_SALT_LEN / 4; i += 1, j += 8) + { + snprintf (salt_buf + j, LUKS_SALT_HEX_LEN - j, "%08x", byte_swap_32 (salt->salt_buf[i])); + } + + // af + + #define LUKS_AF_HEX_LEN (LUKS_AF_MAX_LEN * 2 + 1) + + char af_buf[LUKS_AF_HEX_LEN] = { 0 }; + + for (u32 i = 0, j = 0; i < luks->af_len / 4; i += 1, j += 8) + { + snprintf (af_buf + j, LUKS_AF_HEX_LEN - j, "%08x", byte_swap_32 (luks->af_buf[i])); + } + + // ct + + #define LUKS_CT_HEX_LEN (LUKS_CT_LEN * 2 + 1) + + char ct_buf[LUKS_CT_HEX_LEN] = { 0 }; + + for (u32 i = 0, j = 0; i < LUKS_CT_LEN / 4; i += 1, j += 8) + { + snprintf (ct_buf + j, LUKS_CT_HEX_LEN - j, "%08x", byte_swap_32 (luks->ct_buf[i])); + } + + // output + + int line_len = snprintf (line_buf, line_size, "%s%s$%u$%u$%s$%s$%s", + SIGNATURE_LUKS, + cipher_mode, + key_size, + iterations, + salt_buf, + af_buf, + ct_buf); + + return line_len; +} + +void module_init (module_ctx_t *module_ctx) +{ + module_ctx->module_context_size = MODULE_CONTEXT_SIZE_CURRENT; + module_ctx->module_interface_version = MODULE_INTERFACE_VERSION_CURRENT; + + module_ctx->module_attack_exec = module_attack_exec; + module_ctx->module_benchmark_esalt = MODULE_DEFAULT; + module_ctx->module_benchmark_hook_salt = MODULE_DEFAULT; + module_ctx->module_benchmark_mask = MODULE_DEFAULT; + module_ctx->module_benchmark_salt = MODULE_DEFAULT; + module_ctx->module_build_plain_postprocess = MODULE_DEFAULT; + module_ctx->module_deep_comp_kernel = MODULE_DEFAULT; + module_ctx->module_deprecated_notice = MODULE_DEFAULT; + module_ctx->module_dgst_pos0 = module_dgst_pos0; + module_ctx->module_dgst_pos1 = module_dgst_pos1; + module_ctx->module_dgst_pos2 = module_dgst_pos2; + module_ctx->module_dgst_pos3 = module_dgst_pos3; + module_ctx->module_dgst_size = module_dgst_size; + module_ctx->module_dictstat_disable = MODULE_DEFAULT; + module_ctx->module_esalt_size = module_esalt_size; + module_ctx->module_extra_buffer_size = MODULE_DEFAULT; + module_ctx->module_extra_tmp_size = MODULE_DEFAULT; + module_ctx->module_extra_tuningdb_block = MODULE_DEFAULT; + module_ctx->module_forced_outfile_format = MODULE_DEFAULT; + module_ctx->module_hash_binary_count = MODULE_DEFAULT; + module_ctx->module_hash_binary_parse = MODULE_DEFAULT; + module_ctx->module_hash_binary_save = MODULE_DEFAULT; + module_ctx->module_hash_decode_postprocess = MODULE_DEFAULT; + module_ctx->module_hash_decode_potfile = MODULE_DEFAULT; + module_ctx->module_hash_decode_zero_hash = MODULE_DEFAULT; + module_ctx->module_hash_decode = module_hash_decode; + module_ctx->module_hash_encode_status = MODULE_DEFAULT; + module_ctx->module_hash_encode_potfile = MODULE_DEFAULT; + module_ctx->module_hash_encode = module_hash_encode; + module_ctx->module_hash_init_selftest = MODULE_DEFAULT; + module_ctx->module_hash_mode = MODULE_DEFAULT; + module_ctx->module_hash_category = module_hash_category; + module_ctx->module_hash_name = module_hash_name; + module_ctx->module_hashes_count_min = MODULE_DEFAULT; + module_ctx->module_hashes_count_max = MODULE_DEFAULT; + module_ctx->module_hlfmt_disable = MODULE_DEFAULT; + module_ctx->module_hook_extra_param_size = MODULE_DEFAULT; + module_ctx->module_hook_extra_param_init = MODULE_DEFAULT; + module_ctx->module_hook_extra_param_term = MODULE_DEFAULT; + module_ctx->module_hook12 = MODULE_DEFAULT; + module_ctx->module_hook23 = MODULE_DEFAULT; + module_ctx->module_hook_salt_size = MODULE_DEFAULT; + module_ctx->module_hook_size = MODULE_DEFAULT; + module_ctx->module_jit_build_options = MODULE_DEFAULT; + module_ctx->module_jit_cache_disable = MODULE_DEFAULT; + module_ctx->module_kernel_accel_max = MODULE_DEFAULT; + module_ctx->module_kernel_accel_min = MODULE_DEFAULT; + module_ctx->module_kernel_loops_max = MODULE_DEFAULT; + module_ctx->module_kernel_loops_min = MODULE_DEFAULT; + module_ctx->module_kernel_threads_max = MODULE_DEFAULT; + module_ctx->module_kernel_threads_min = MODULE_DEFAULT; + module_ctx->module_kern_type = module_kern_type; + module_ctx->module_kern_type_dynamic = MODULE_DEFAULT; + module_ctx->module_opti_type = module_opti_type; + module_ctx->module_opts_type = module_opts_type; + module_ctx->module_outfile_check_disable = MODULE_DEFAULT; + module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT; + module_ctx->module_potfile_custom_check = MODULE_DEFAULT; + module_ctx->module_potfile_disable = MODULE_DEFAULT; + module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT; + module_ctx->module_pwdump_column = MODULE_DEFAULT; + module_ctx->module_pw_max = module_pw_max; + module_ctx->module_pw_min = MODULE_DEFAULT; + module_ctx->module_salt_max = MODULE_DEFAULT; + module_ctx->module_salt_min = MODULE_DEFAULT; + module_ctx->module_salt_type = module_salt_type; + module_ctx->module_separator = MODULE_DEFAULT; + module_ctx->module_st_hash = module_st_hash; + module_ctx->module_st_pass = module_st_pass; + module_ctx->module_tmp_size = module_tmp_size; + module_ctx->module_unstable_warning = MODULE_DEFAULT; + module_ctx->module_warmup_disable = MODULE_DEFAULT; +} diff --git a/src/modules/module_29513.c b/src/modules/module_29513.c new file mode 100644 index 000000000..c6b4086a8 --- /dev/null +++ b/src/modules/module_29513.c @@ -0,0 +1,471 @@ +/** + * Author......: See docs/credits.txt + * License.....: MIT + */ + +#include "common.h" +#include "types.h" +#include "modules.h" +#include "bitops.h" +#include "convert.h" +#include "shared.h" +#include "memory.h" + +static const u32 ATTACK_EXEC = ATTACK_EXEC_OUTSIDE_KERNEL; +static const u32 DGST_POS0 = 0; +static const u32 DGST_POS1 = 1; +static const u32 DGST_POS2 = 2; +static const u32 DGST_POS3 = 3; +static const u32 DGST_SIZE = DGST_SIZE_4_16; +static const u32 HASH_CATEGORY = HASH_CATEGORY_FDE; +static const char *HASH_NAME = "LUKS v1 SHA-1 + Twofish"; +static const u64 KERN_TYPE = 14613; +static const u32 OPTI_TYPE = OPTI_TYPE_ZERO_BYTE + | OPTI_TYPE_SLOW_HASH_SIMD_LOOP; +static const u64 OPTS_TYPE = OPTS_TYPE_STOCK_MODULE + | OPTS_TYPE_PT_GENERATE_LE; +static const u32 SALT_TYPE = SALT_TYPE_EMBEDDED; +static const char *ST_PASS = "hashcat"; +static const char *ST_HASH = "$luks$1$sha1$twofish$xts-plain64$256$151351$13141718422ca869ae072d33b700c8c43a1796294bb74240d7aa60f03f322d1a$88c148ac32ee23d671dd8b93bcad963e479d0f0778b66365a937aa3351c36587449491f946333c86d82777ea509634f32fa3254517414df0b2c143d2a3678f181b8662cee92a6fa20e4ee4a0b9deb4c5bafef32d30cf8fdf4a56a5f39046b0585269ddf25173178c4e9c570c237057922ac4127d72ae8fafbeabce564cdc559221556cb9fb0388a420fce4579921f4181174f99bd165f093bec131ea327d9d8eab21b2c4ca0807ef18e488d32107c45ab43812a2794c6aa65e8fb0d1cbba8242c45dd514066e227ad08f0a01f706be70392c54d0b6410eb3ac62130481bf77847ee4565d317346eda2e9572ed17b43ab07b0ee369397b2710c1c3cb2199dfd62e2a99d568ae4eda29cb53381d65935ee4d7379d7d3d8c4f375f7ad6ef19fbd5315311e980ec692e0bc07b1aabc0b793894d1256392df5a154368b5a00e2dee87ec065cb7a8f686db050b7bedae5da36247dcbeac458565429a9ca746b9944e360028f02427ecf3bcd3cd5500467da85c70114c7c7404e3a85625b418e259b219184fdeb1a660fb1624abac0c263682216b630ee67bc1b4b0edc1923276e2c9b1ac11cb8a92061ed2d2d7fb2a125cf52a78007d44b1c7bd6ca01c1ca321f19097173fb3ba8a19f6a09d18604d953cb263988900445105b72e100bc0eba0436bb7784847c22c61049d47804e2346e58d4d70e73ca6ae9a8e8fe7067e2603028650a2a0715a03498677ca7f4452d96ad16138ec6869ad2767410ac467b038e9718a4d595656d4a1272b2b322b1d905e5bf5363cc965acf1eea68ee654a91e9107593f2e1621a2845e7259f49f1810b8b664c8f83b357a0807a1cb0ec3349430d69b5202b9385253da341fedcc1575e905021bdff2b65fcbcbabb38fd68567a4a2f535988f062ba4bbc732bb099e5b297b858b5e79a9bb6b8c2e8d24b5cb3ed7a4b0afcd1b6dfa7d2ff88f895e159f9163893cb339b29e534a45e0db02736f65b785888e3c7f737443747c4f25f9ff008b64d847a5c12bb4dc25670554b3800b4dcddac4fbdf3734b559388040bed475915d0d31b95b4a1bf3d602a49e1db2ca980c7dc82f8ba2efe850efb7abf6b2f22847d61b2da0a82825106609bb5a3c1865c18dbe4563cd28f44c6dc6bde45d922b21be8a2ffa2835e3fb80eff56e60123daa889d4f821cecd79253eeadb0c34e20bef90ea197092d45f8faab743ee98f89edac95e3221dee504dcee57e66d3f931016d457530f0fb414a556faf8fc7c159dc1711fbbbb63ced5bc532e9e04a3fb28a323f6a4749ec3d2f322df544241f4dbc0d08f42e16bdb26fb81e8cfdc9a79640edc33b5d3df0f1747dc11e4fd4a6436d919242b955e069091ef0b480cd8faa9999ef4de0ccabdd373fb3c09b58101d1a40bb48215a11ace424a836320981aeba12ae9aaf0364f38f9862edcacb0552c339e69db132ac76734cef7cc8aad52504e3d7c80f41febbe7ffbd8002695544cd854e7f7aea8b135ccb64376989756220d0ab93aaa9ca88eabcc8f5f560fb01dfb0a09d0322078a6709894b9f05a8bc56aa7b5b70783bc287f2bcab0a6e423d91d5cbde2e92779dedd5ad65bc4f6a3a456439280acd2236562eb266d1737b2dea4e4198044ae6b5af5e0874894065cbb084f56406723a139a25e754f29958546b5e08cf6840ec8935c377ac1a6360f68030a6527b1c01c867aeac04eac6c298bb246db8e2cf8595adca60d2f5fc999220f0c767cd265c1dbe25c7e7f4b6776b2d8ed7507f56293def1427cbe42fcbf42989deac93fb1f2384824fcc4148a2b8deb9ea361c5b3a8ed24b58de01978c99c5f116ceca19aa7053bf1de450bfed8a0cb0ac6b42a9713b40b94d1a3fe5dfaf1caef14d2677d783c568a91d8b2ef73a889d64db1ff2ba28381bcea99d72255a294dfe856445cd33c799afc8f1aa3ac0150ef5097792d21770cbd0a0d3812bc3715280c80dc73d4b373cda7213841fc7021a367f79d73996dd1e107eb386a3a46515b8f2949e76c94c2c9ad98a130774670c51fbeff5a328124ec75d98f7bc73831f02b4b603c3d2359318391bc3def64b99460ccb399d5844dc09ea82559b107655dd194ebb2f05998c025a8a1b42cbb8f84d85d9a0b1a6047900d3c7f2759029652421d93212632023becc1555b1b21cf2eeb1ad5f87f19e181e8121875bb2c33b70a7e5d87d06f935c432facc4f379392f5c1e437cd88e352bb20cfd4dd2f0333d2f9d71879fe157ffac28ed9c739207dcafbd19d5f3aeb56bc81508cfadcee5a3f4b17f33450a50dd9f6487114731dc3843e5ac12f4cb2d6456049c9364a34700e229c8175c52e7ed2fec0cdd765654237a427f65908ae88195b10e01bc42bada9bfb4827c85d5d1cf14b9fd6ca8928c0593b0a3ad71cc7b8e643aafbbe61c27f02a30bddeba41fdeffcbb65a539a1d7a2eb7946b5916ec288d541b1772100b2e66064606a45f6c47f1af9f9541363c2bed45569e7744068995c5bff70552c9ac60fd31dd33a6fca6c27239bddc585003d50e80875188ef97ab162fe0ac99ead98cb6325110d5ae668d872ddef22ccb85d9ebfa662869724067fd070083d910b6efd0460844a1edc7ed60bf7fcd10d5cbb1be3ed1a42fc9b83884235d4570b0fe8921f081deaa1392561690100820c3e61c51555f3642fce23b6ff4373fcfa9adae6954cf76a85e353b0aa341263f239ab8cbad3ea2848d82c5aa7fa4a61e4d2f3eea6ec0d591b1b27892785bfd4d1fe07f77963bce1e49a9e34568520a6092e3d0c65a9c7d3ee35244b03010e8cc4ce02fbe9aafdf48fa51419b07b281c0c29d2286cabf2c4bb1f5b6fdcd101329e898002fd96fdef34fa13478beb4eadbef5d3156a93652657eb23cc22753cfa956ffdea9329f4f78c13bc2315e4f1b157e1f734c5507c3ad469ce1f593255a4fd257848427235074f5f465916b63482b48f89e30c674e7fd14430ac83d9d2e09d53e637082457af571fefe941ec7e85ef6ed40e83676fd62b60185cb5c4207d367bb7bc13df5b2ed5c32e47914a3013474d145491a84f6e0278c36831151277103276abf77af3d2e5cd993d91017872772029fd091e0127f5b65512ad7fbf33afd5d0e8a9f0becc1b20b9b12a3eee6dbd56ab880d43a8e678fcd977c305a792328f20d6a8e66d04745825e5ec758115b28f2d3f5e9a92707a205be0becacbe036aaa8047405c0e0dd09f6ed2b8f73ab732529995594b15791348ff89ebf7456571d5bcd0b670a935fe3d1da434ea9d300bd1910022bba0ac6207b6f3e2609fdb4d1edf32290cfffe0b4ec3f6c9d08d16e4abd7a18323e4860dec0cbd4a8b189fca3a662dede9693cdbc357bc14d2b3148bd5d6fa851f450661403d02117eb1e11474ff6156689afd349c2a73a16dbe114035f122ec28fd9f6a90e702fa4f5e07b76ef3542944c924d9cb298a0111baac42689688f95cf45cb92c9cf4faa4b1c1094566d7af38d6c3c57b2cc930a33304f966ba6545f0dfdf003f18edd818624e11bdf8b1a5043a076737ee8af5bdd6ab80083987d1aacd387f5a3055032c9689c70bf5e9a945cb9e64abb4597f3748245ce1135305dd34bb7e9dbe2681e7d87606af7e42bbb57d6cacfab60d2d28490725007bcdcdb6d2b5b1c633359a35c56ddb8fbe48324f5d350e9b62bdbca2c8980f7cf70c59f32017ea87f749686bde213ff0af1b8358ccd20f28df81a6a85f1ea0a02c80442da7cdda35d7e07d4f11f8339c0bdd27486c47e6ce7e1700096733416bd7d3a00b2402bf3b1cd43db13cd32b41c6cb583154dea4893398f27a952800e00f807bc73f0ca3e9ea09785633ae3d9207e5b78867e9d2c8013b5f2e5a47b8be634aeb2c77de1a3affd7acb78394cb30855b33a29fb74d50688de8cd2f869d2eb4e1b3a2b2af412aa7a98aa0d5ff0f45566c5f3f0cb2a0e8e4652cd52a9ad9e378c524bcb6a74070634b71481107c5878188e787fb867fc5a793d1de403fa9e7a0ee937c621838d666c9536da1c065bcf1d93e2864087c8d2fadd0ba5d80363c6ea4cb4b6aa01fe6e19a0baee8ea07cc9b47e2691688aff857e7348bb4bee889590c2f358037bcc66b2fac9c5e0ce5f8854b6e49047f358dc7a5015a0b729d62c74ca0516de4fb59bdd7bad8e440c4dfee70c39f1a4e3452b5fc02c675b78c55398b4020d6455276575f2cfbb8f8a1a67b91955a7f4b66d6a3cb8bbcfd228d166d93b3bc1e95da516fbe2aafef5828de038a7441559b1168d44f527057d2dd7064565d38431ec5e9210cccc1529a4ce0e566532d6381c6b95dde70df85b3434959bd60a25d8bd6976f1b4cbdaddfe035a0ea8777bec51ec15327cc9b6c638ce2de6181da04182e0a456d532c924be62f7b307dfa3a5970143448c3a5e0626d93848e6aab3471f3b9625dfd9dadd0a885d76b498d66e12e1e038c8cf02673c6c62094586f65f828d4c8ecc07c3cb66b6a8783d6549843487ccb2a90fdc7a60042bd31d78197f596a1059b79ab6f7b74990ce193e829ceb324dfc527a75f59f3d7c27582c1c3234c725e54a031fb27325193c6d5773332aad2da45449c9bbe551c78400080b4ee9bcf8626d3e2f21c8c4fcd7b754e04a5125f71321ca04b4d53b5864fba62628826ed4e6a32e80184f95b7294f5efc405fd5b6ed4a82f5da856be63f48497413d4d069c63a19e6064687b7772c03ac0962e9aff137cd031828cc1c22a100005a94e38c6b7645450c058a3e025b670e310233f5be8a2b51327b90caace5be8edabd8a1255cec409a0d485480e8a1d4f4763d97ee8788b2222646c984a6b88c51974da4a55910b4cac0e3a5de8451889bf172e5646f1f98da34083fbaff83c2e4a5ffd2b27b71980b5f76143fb961220293d035ba627a7a37bfe0db0d1fd95219041b5ed62982c602fa492febf656b36ca9f1c9f64c4c0e81a9fa97cd6be68fd4170c9bedae479f343913c3de0e8baae8e4ce86af7d7c17422011f6fe1c1a4e552023e4b2fa0e4fbc6fbda03a8c4c2758b916cf668f542eaa2d6daf3e05d1b08cffbd06d02e997db4a7cf36839c7d02d28b02036805e033efdefdc0beac08949ec6186c7fd07e0fc386ea264e7237a245fbc8599664f70656b1ccdb1770b1da56c70c82b138fc5bb9b411b5477a58d4df78d471cbdd9ea9c7bfe36fe9f21bedf234f834a1ce2ac9c3c69af7b91badc143b5755afd06b41be815a42ef887b76359d95caabd78e26dabfb480c5381514115154748b46bdc804048fe4e5b313d3d6afbc3abda9e7245f96231113ebd60f6c68cfecf744e68a98dbb2bafb044cbdb268f9e72175c924ad6cc9d90b6d995e2b436472c528ca6037413d03c5901feb6afbfb20843729e8e81d1d64fb444031f5d032024200dbf11ba4931972ed57375f166c3638a46e3ca1cb952e0a927fe228c3eb7e7998479dc47ebc972fb4d77c1a86caf4cb77cd8cc0c4d27067bac86c61db1d030d506ac59337e44f4ad822f349e10e1a658da5af4a5c705ab33c463a7e7efeb850d267c528c69726d67dab9f85ab0cb4cd46f473fe95c3058015156f6edee533197643a362ca5e1e7f4f28488092b90834c5a0b9314b4027198307b6b07fe68b8b08578cf9c9f617c3b55d337d1c457a81c36a4f8fc06906e025cea46763b27b407cb4ef3bb8d9ed0edfe3440e010bea399991c53405e4a498c0af46417a3a345b210258ef2e48a79f1a5920f5b32b441a3c9fd9c493f54c62e4f2bb0cee1fcd236ab503ae97ec114d0b7cdb39696bf7ce6b1deda498c478cf18b12d2374e7f3863009c6b4026608efa1f68be03cadfe036ea3a4a3ea1c6f572b65de4529fbba63d085b96bb059047cc9161e8da48ae1f3a2ddf70b92ab358ea0418e47b6b8acd6554c2426bbc17d5b1904e56ee3817ce22632c06db1c048c56bae74cf6a51f5a31670fff3e28e8eb8a719964d24f1019e2d85d9641067feaf1bdb89089d2b4285a8b7539be4040a088cec8033b896ba3932fdd23755e72b2d53a2f5a8e537c86edb2ef382b354a552292bec8acab9679b4fca6ed387f904f691f2f84bb95521b8ffde96ad1c9765fd96aea23cb0e624405411f1fa1c2fd7e2ff36534adcad4fdf2ed966046a3f9d368ec736ccd8bb4bfd356bbb0824b65a8f80b9c37a751cd91832ed7221c42bd2e103f1c61c27f70c8e14b7993735d3da62e230cd67e19cba2d453910168bc1be83a821c9a23fb363ca3b90d98dd655f95d82e77966ccbf5e09972a92c95f96a2c81ad02ddf60970526542a923f74ed313215b198e1368c0ecc02fd671428f77a3d266235eab4f38c0017cc310f48557744f04010addd57b1f58b1f57f9f8a914ad65f2dc590fec3c451621a6937743ff74328b3a9a83be68cebbeb131a1f68a84a2bb5519f4d37da8a2b80c8c2443a529f5d469608900091e8a7d752a8cfe0128f3f154f3675f5b07ab696c67c3cb483b669b865c8677da76555cdd713cf130eb49a33e3acd8cffdef97a6bf2c98d812cbdb9493062c3ffea6fd4ce797611fd7f801e437034726a3475bfc95d47969eea3dc7f60037c675040ab45932e1ddad30a0995dedd1baf032bfb33ba7e6aee904fcc80c7b15a74df79ded9e7466c544c3f9e634c9f83d08121fd0a4028cbdae9bfaab3b76c1616a946cae329242772bc9b72002cd079501438fcfb6b8bc80eb3188ecf249ae31cbad6733d86020c5c981ed7d8dc63ce65a9463ffe54bc3aea66a48b47edabe876a7570e80d30c6e5b33869e7f29e874e2b35a48cf7e290c4e6441b073dadad4740f64212fc5829b4d5bfdde0ac0bc502809b7bc01a3f1f043abbc16b973dba15962a1c7f210e011ae74f5c47ad8a2b70f9207f96a16267fff4d8e496cef10c6b8d07e6eaeac5aea96edbb8a69a6eba9fa4c5289e057d5dda9d7ca8888342d296ff8786ee1eb6af5d76534a794d5e0bef356a05264340506c470aa5498dbcda701b1483e6ad594739e8e5f5e167e103a111b6676b85304063de949c51f9964c411a96b96ff96b60552c98c94e2e514b9f961c7f8d2d49bd47248dcfdf4fc685f952c1c9097aafbcc704b5265bea3ead6540f42fde4694f510e56e1ea8af0c29b13d4b2c40c915bb21354da246da348f01a3591856dbf66b7346d1804dd231c3709252b4bee81d94330710859a73c8a1fbd4bbd4592e5dd6e75b0e1c1d4488799120a9458f187ee387f12e2e3f3b13feee38b67743b48c2f4890b179296cf4233048e0aaa24eb255dfa08ab29311a9b3444079b65bd83596977cea935a3a65d6c96d05654ccd22123344847d7b819fcdbda40f3ab48c99735901fbad7c0dd015b1cf44e50d7a6874c5cf833c22def46badb3d8430bcde3bbaae129753988ac65b3809ac350d808dd8f39f0b0571f5bd793b979456f4f7a0d0ba91ec1387016487bab9308c202600fddcd76e0784b3e3e62ad01869dffb3d774ac5941a6a1a28d71cd031853cc007599d9d26c54d3ec7ffe29fdf5345d4fe62a1efbc693c435f198f1cdab7a21deea2747f2db5378ebe119316a545a935ce93d6ec49f86f13ff209f30d85ad1fe511b983d22495f60c42228ce7bb9cf35f4723ba44b0fc90dd9c38425b874bd505e85cead2213f8435c81263fe049c83beaa8fe82bc6e248a0991f2bdec5bcaca1f4d5384e844ee11683e629eab739cbb99f8ea35f258b0f7b3127af45233069612436a7b15fa87702d4a28cf4f0ccbe2c897692069ac920d2f76a00222ca8b523e4857241c6dac052190e2d60208e083a165b56a69aa8d76f8a506a4d245e4e971d3d7d875c85570c1137b64a5e0c2e8a438c610db221a88a4a6f209afbaec82b7663463a669aa81e7a0df3ddc2d92c2fd5a51a89eca9a526ae876a5f09096310932c8e354a0fcfb805f26fa3d2647fcca7c49f56fac24846bbcbf79b6989293cd9ced878e09c695dad53e3cbd90ea5086e608d7d59667c83fee26ae96cf497caa63a1cc10e8dafe7dbf800fd8eb6e7a79a44575af8d0a0165b2ac8bcfd9c708687bc1f6b06fda106fd7acfab1c34a618496909e974a927a88e885096bdbf9ee20b5e50b04b7b3c0ca27d0e99c5086f4f6e5f439a04b10e5787b13e188aa897ee1f5a4f50a07b1e1152d964ccfe8e14f83faacce378b8bac40ce916b574350e6ff47a2be43dd3062c8487694ee50f691a3a0c1c6e2e900d33c566858201e072af643eb48a3e00f55ea3cf95574026b2f2d001be9bd20151c0f061ae4155d91602895f5ad881f61954676c7c2b82806e93a1dbee9d4a1fda88c0dada6573657b833c53f5a1c5effa7be61528eb7c0482c8b93ac262c959b8eeb7a60787bc57c346937cb6e57c7243f7834ef9ce5a2795b8a044c8e49e935a25d9f6be9d566c29032ffeb3806d8ece126de1e188424c65f0e6813c06d45192597c08b153d1393890b4d17e2309a8020cd521ad8a40a87161fd6a874f01dd87b4b6dfe72a5a0e853035f00122404ebf1797990e36068e2959dbfddf897bb0f1663d605761727b51f88f61104c87b2b06b47c83a8fd51911ad84897e76059d960fb8edb57df6e1014ef78601a9fa7ccc192a77a936e6009973af37493b0b0c9443e8b9612d05514cfe885bc471c21bd001635bb435585143834a8f5f5efae7388bc119d3ebd2b4dc68b2040426d1c8e181c5329a7507625166006c790225a1190a46851fd2f19b3de5d15da41d90bd4ed7bae549579482ad4f14ded3a0cf2a719e9df97dc5594dd2ce2aec04203d303ca60dd5cfed7365a84af9ce027134f4d6955407f0b9ecd02bd4f625cf3bc6c59c0a93ffe446a0e627977e69de16323a5aaa68a66cc8d38ad9d91c40ccc994d33ed2b5b9725171cbbde6cf56f1c68a1063df566b5dfa710b264c74d6357ca29d815e4acfe9bcc37cb2194fb5f07bb10a9eed39bb02d4645abe41f698678ef9d7986947f09da19f252ba9e3857ce86d36fb52fc1b65e945a12aeb7f2755207c8a7f0145a157ba1a7252cf456f1e9cab315b2a73cd4b5767ea0c3554a04798640e5fedb2e9ab72fa36469a4c4fe82182a83ec27984d818556ac7b3121f7e87b08870c0008b844b296c779ce8a908ca64bff71b6a516f7a19f36f6d923bc83769d9b3946e40b44d53e14f8031f2310706e1966263a3bf1eba7380211f3a5555b805521b79d485f50742ea76dc8cd5cbf8b11462d7ef5fff6a47934d8967ce83d1a442bdcf5ccb31a634a4153528db528b4c977536b505a4e89e0e982807f16ac69a7f83074845f8295ea77f27a5de7ad4e6367d43e77236a140ab4c0ec57beaa7d0a9e103ecff439ac0455aff051107a7ccf369ce6861ca8cdb6b40444e74b0c91806f1b157839b1f613cf965ec3e8b12474266a194c3ed9785789819a0cebcd82cb665889e5ac70cff725a21135e5abe826a03fdfe72d1765d8dd27118c0344a8a3ce15ccf1abffdfefd1065cb066ef30025681362d29cf32a13f45ee296d40d7d4f0ba9b940b9751b0bd21de668268b171e0d023d78f5aa50dbc8ffcec0c85f67cbefb9012fcacf9920d2b3ec899aae9c2a4f872a4645d48556e57c8aa9c0781a6902db502ecb2a769dc14b6181f72f779e82fec9c44353d9bd19f1a035e848e42bd752c22d58220bf075412ba7ebc6c5fb61d7f1a1164bc13fe07681985c3a62156b214bb4264741ca8aaf6a363a9a72990fc27e6b6fca3fc3ebe5fdefe8cd7ef8dfdf998278dfadc2137d34d0deb3982dc8122372896d8ef5f45a5929e85dc41102d950e1b525f43a23e980184dd3e90dd45d02ad2dc7856a31313c199f61fe7b0e964b7184b45bd2e3bf042df7c9cc422092a56f0cdb2849469d13fe037df47292c672b57a40363336f21a7d0d4c992d37c780b1d21c502937ae0e165652d04fa395e77774a517e101b1f9da635c64d23b3addac9e599e4cbcdd3ac63e48d72e6864ec0cc421a77a93db08f43dad7a284280dd21650720f1f43ec85910e49321b7a8278947e26e4c550cf90e8fab647bdb40f4054abe9958d81d28c41144ff346db8cc1a043b715c30f59ef4c2573cbf15687faeecfe9db532ae01794dec340ff37a901c2212d0cce00ada50fa0b8b8d801ede78fcf4e2c502ffa2865eff40d4c494e43db14420f945d4bd299002fd87df1c3467b9a9145efaf73fd259c3e1dc4f9165cf0ff266c938ee51c3eed59c5cec61b5482441b476061849f35f171a64c96f8c097b99665312cde5e7cb61bddcde318c047ff75e3c988448ab6289ad7ecb5259ee8e9ba223ac8c0f19754cc69084cf908c1938cac2dcc7b96e66f97d21d49a0999662b26b9b17f49dd5b9f76681ffae1419c1b5f4aec5fa83726c5db9dd0539e819ee72831ea4e6b5bf8a1e3595bcf0f4ac03c7dabe6ab6207bbe4af290e993bc65904d1ab0de7e13f5eee4016546f09c8ad5a1b354770b6fa454e0301d5cc156e3e8b4aeaefccf9008491c0d2f47ba208a6ce58cd38f7784be407542463b875c25dd2a4bc9460029fe728b978a501f3fffd10e7cc736c25509f74b82ce9b21bedfebc1dd9ea40ddb8697d4f4e4a6a792da67bcb6ede4fe88fd9a69ed4b00f5c1fc86720506100fa7cf70b8d5d8fc44c888baf05cff7b331cf061e83d547d637e931e4080d64a0cdebec5baff173128abc24b86d450ef2c79533ff6b94b3bb3b0732c22b5a587f5da365d44e0acb872d81a48c8f11e3304fb5b0f2df73bad308301310c265c130dd62b9e5b0f5232f809c4e7733e5a342bfc0a93bfbff429f9c5b6a8bdd6e4a815543dceb218a09c484d6ad5ed5af430397df8cc1e9d06009dbc66205055f40fa3c9be80574e9bc5f2ef4ad9ad531abcef94efdcc425bac1c10f93360d2f6007b7b7068d4ff3f87f6df3769cb51e2d8c51760a60674366ebfc9ac7b803bf16064e6c6716c10aada74d352e6f00b9f5433b27841482981763c55b76bd92d35dfcc061fbed38978a2e1f8f79b8c2476aadea5f7d56bd3600e499f28cb52777f1b198a6086c4aa24aca5bd53508e027d8aa667c63b0a699b28b83ac969f6e7bf530304c8161c91564f4c9a7d6c52e115b663bbcd236542b41a0848ba74bdcd973e245e5fbb9b3982c48eef26ca2e6005d3933e39ecc1416f1584760aa4bc85303864f7ed113f8bdea0b23f2ada880293a700c6e04d044565f08745172e3c8743ca760e3f0ad4354ea03f3d08660138843bc8cb08a847415cdcac217713811897d932cff95fa5f19ceac6136cf1c8bc6c7de3c4549ab50f989fb79e7576107067cb3594843ce37005d04b84688c4795c0bee7d52964cf64ce71ff7eaf5ec1ec718b32c6fba73cd86ece782a2cf681a934948a56a97700fe20a07e23b7419125893b67e9f0789be1da552c58acddee2baca0e202895f902db2c188c863839a6b76ca80f6b267a2b6dfbb80ee3ee93bd6aae442536b941032f5af7b3ab17b7dcdbfafa3b06e8d0571f8d0e2e4dbe1a23bbf8e4f7f4f2f5cb01b5444df69b3523b354ec2899e72209a0c05bbb7e4cea8c4a16993b547789f7db101dc391d57f07b6c78f400a2006b8bdbbdcbcad234221010cd6558108fbc8066b4000029741bd7d78bd77b41b9ed8f1170130003a8f1c63422cf9922b72e8d39725e0ee90323402fb6948b50c2874e4c97af888fae2e37db6938692461f9cd4ee743296b01da948d8681387a3e5f51743b6a101da4106acd824cd049d0856b7e1c81e9ec76a536b9f23e14b0ec9f458bb68266fb23107e1a7af7143456492869c64133f3490ae4c9a65ca7fc37033da638ab75fd46adb81e060d022f851701a9fa9bf789bf2ba68cd5b109e94a7cfdd6453eef607118c514712e1a23013f6317637ec5cc91657cbe866e9ab069ca7a4a161e9b893a41304e8cd197f41676ca8be34116c4cfb6dde93ade18fdfdd710d9779a7ca94bf4fb4b329190a3e7a3c5e0254c7740644e5b11540d7939a0cd94db6fe64bcf2f3d3c24298b5c983318b4037762d72fafa9e99431850a2259dbaa0418da5cade557307f79eb30668e0b3eb5ae4e62f00fd808840a634e446988f8c0d05fba81fab34839874b81b46395c3121f2ceb50f823416a42a59856e1d729d81bd0949ea8d050f2df0e37eb1328edd463784fd247e354df0079438152c9ca5e4993e917851d293e066705355fd4f3b308231fac095750d2dd7548f2a641a640c1eb9b32e76d52f496cd29ef01b2f1d2b8efdbed78ceb80f8f1417e6d5ad9dda8a49cc1c4e2adcebf56d3443c152013ae1be5569fff99c7754ef93c005109ff930860e132417ce442c013d16700284f888e77045644678d23fa8f4245c46a27a1f2c5e3a5d9c1c184f2b0ebafdc2bcbae4c68deb74159e84bb810b7ce325ce634ecdce77a9053da3198c1faa6c1b1f83d546314b05ba4867a5677f4277f3224cebdc62167662b64f45a84da9b68dada50fc59c9b59c6e0c22ddbe3d84e4b8b1570146d3a0bc6428ac6991d110b27776669f3168ae0f251f4efff16946b95d7b2340ce0a4f147cdf31558c81872830855010c4d6fbb435b0e02512a1e83c8b6db4cf7eda43d9355da634a9a2e6f5a18c6675083f0a9527d53b9dd70f13e7d3edf92c2e4a3f74ca48e2746d1e38777b5c0fcde5915c01628d18e413ecb9c81a1c01afc13cbe480f6e734ba2cc44847b339246dee467ff2726c91a5bf8cd80dfa6dcf406554609706d0088a23489e4b67f76a9a893420bbd9af93481c9125151effe9d8281b7ff75ac0f5dfd2944780c5988c3fe661a511efb00535d466604dba6117b1975d0eb3184fcfaa035086cb2522f6158890af4499175064ddab5d31b48cec16db2b3d8fed9cf01709b7fd93f136f1f4f7534708c8c9c05304e9238ff289760b14bbdd8ddb868093130b1774f9ee8692436d71b910141768b11982e4aa70f6d5647fc83b0359108f69c3d3f1d8fd9474e0a55bd2da43391a523df33d0c488c85e396710997f139a3d9f8e3de6c877fe4b410f4cd99406a46cb0b65666ffd2f42757177b7f3f4ee7d600e3d18cd24d3a78c86fb0b1316f75e89bd105f6ed658af7af8645971b6d94e5ccc205ce757a43e9e6fc633465a7fac907ac65c2ab13e64d51db73c9518f76209df9ec4827e47a059c59bf140ccd659e42ab0f0c058f51c41075c7e89e126ffb9392a4411e59f3c877b0d3df807d698296f38d76aff5c895e6cc3496f2d883cb2b55c6736cf73c263db468a24de0c927ba7360c59571c15e0c844104d587710065cf1bbcc6d6cace08ab6b49fb4de398f03b2a389b04149c9ecc0fbf20461523a377def7fe8708722e28d41b91c72947c6820e464855c4e7e9b19889c409c6ed69cfbd6a60908dd6c6d57d52d7afc42198c463df3bad5c4e3a12542b30de1f9249ffc7cc35263c2b2fa21b1f341840a2375a0074345c699ae68abe9c1d8bb29270ef30bfdf380dc794ca36ea542a9077f878468baa00ced451a7d8b05dff73116a67a39a817cbb550ffa7c912ddb5f018cf4306547a4f2981c85ce78fd56b9c58a596e975cfe4a49281d3429c87ee9d5a22a69e4f9d1d69e5c75d9ceb0e22862b4f5148cae827caa4e8e44b39dc2081b058ea2f004d1687a1a0f9379107ea126e9214165c5a4ed44f7bc63ff066d99bd3b9cd94e1008197372ae1a0dd49003cf8b7ea5b124a0519387ffab785f62d57bfdc33b8b126012d0ccb2a5627f7c4aed3b2cdcb52d2cafc1e5f8bce6cecc3c16bb9863b1476c0ba91b28521946c3d7600647859dc16b824cca540aac81a1d126bce00e4442ce43234346afc8509a4952aafa40fa4fbf661b1b56dac1c857c7e1c02222a6b6b5f8e3152691245c79073f881854b41ec46685169894a926fb6cfba02b24080989a0e97d8be2eaea84c95162ce312d70b776b477d086bc02acf7fcfbff4abe0298b5ebd8c427518acdf6a3aea6198be07b73cb29ecf7ee4f047f21c009d5dfce08d942e67588fd1748d4c4d5fcd22c21b24ae1ca6d3d039319a5694c6c79d425fd086b0237c98b9bf963992b4bcf7bfa803ee8069437807ee8b8d8c316e08f49c2b701af34dbdacf769f788b4a922ac2831c16dc366f8d0f20810661ce8526bafc8ca4bd22fcb5edd0804f73d014470b2d2002c76c4c0833cc54fe77f5bb368d97beff7068c8f28d54eda8003152ce600ccd174d9c95f44e94dad75949ddc66a2b73a15f5020407ad0c4b2af8eb7136a71b8f2a96ab06fdbea9e094db68dc91d229ee62a93724c19a0acd0e674e0c6fc8c0bac0b58969f735f8d2e436529ebf4b9394ec67948b7a167cc5f88e9ea5462bd8bf6325993075b99303ce2d86485ae5c95021c85c5337f6ac78e525a3b45e2eaa439c2fb6dfd3d8e35013890d2503455021543716eb74ccf3614878a24d05ced3591cb8be9ac0ec8e21028dcfa8d036f4ce0046f68542634b3a244d6e20fa059c40d55c7fac5ab6b6f8853dc4a9e0e57569b820feaaa93213a39bcaaf1575e9af2dd3e2330839fe2ba429d1b5068ba6f0201da4d9802d3acb9b348f4fe34b99264765f8e87a94dd0378fcde0ad62d2975cdd98de8c10bd9bb12fd9afd8da2d4bef57066cb99cfbb22f31cbd854638258c07122f8b717a9a3842abd78d103746cf04c360db17e6004267ea03fc5c8343e105f893148c405cac96b09cf8c84ebab1c5cab0814b37bd33be8b41076a4782a3b0085e92d2489cb2d67835803e8d30174e453ce80c33d04174ea66e85044158cc012d20a6fd146102a40bdbe400472e54e6321595ba371e42bd3d413937270dc55c4796225976e8dd0416dfe0e3f225ab3819c614f0ef6f0d8f9e2f9d8a0b9a38ea6cf36a4fd1d4c24f0b03367cba093b72791b4c45a2bd51d987125b66954ce3ef02722fc8b2a9a08c83589f8eaf55946e6e829a25a6f95c9bf70ed2113c1987f1b83790a7fa1dee09546e0da24513a5baa3ad7620fe720ba51846d61ed63163d8a36efca43d9d8a933dad81ddd76fe1db109b2bea6a0d6bf3ccd5427737a058118e5370553cb4e58442a30629b571b348ea55af31f7849b93bddd2c558c8d8cc8410d2d295bc4ffc32753ef2172738170aaeb57247881e51b074e450e5045767c8236e185a6f0c6083b6e250a6cb40dedcfb47a0ed223879598036112de2f687124e5377633a71541d4dffc903eb5b24b7bbbbf92f910b674ccb1c42b5dbeb44169addaa19bfc929c230a883412beb68015015542a9a62d1342e7e597033c2f8a4c5d3872c65f690920951c5b48d039f01ef428fc96ef7330eb9834de792f465ac28d6cd12d185a0edcef6cda879a4457c1443a245212fdd7a521f4a6cd27bd0c617053f1428a30a792b9c9c095ccf6cea06507d3f99e0525b824701df51988af8ffde51053b158e34ce239975bbc8c65961bf1593edaff99e13dbd305fd4cfa06d4dfe9fe10e7c18f653b6854815a5912862c16c147172bba62bc9b668daacc55bcb6c90a5435283af3b31a56bc843422d3f4cd9169a7dd9473faa11ca574f0c304d67587e6807dd2ca1b5f942543ef978b46391420210fc2106fc764fe92844cf473a23b6ed5661d5a97eea792a8600813e36cc51c16ddcb157937002b1aa817d49938c67b82a63c8a3c863c9fcd3b3105f4652af3a3f833e12edd4c646f95fd4dcd11b1f13e9ebe464f1cef6183c91faf242bee0b9f5f2693d58f91edf7da771fbc720b202903753cf95dc3f2a966dac60ad1d768b697f0e50458fedeaa158a1d684140fcd19a4858eeef95cb95e45dbcc2e99dc957e75c34f764badafa0df551c9470f7043136f9a3331baec9192f3299e2060cc9b2de82aca6a59858966b0e081f6a3ab4caf4890a962ae34f6aca8d31d622273f47f5f6d608ec603294b7ba511492ab87d0848089832257a08044d3a5957a1361fd976463b044a48d9517e034ee9353b65823a53d12977452bc883426200f90ca751c708529c3432a51bb780dbd99c5b7736a7bf3ec6902cbe0646cf849f84e08136658b0caf94f30b35f57710e8f59fdfe9dddb7c9fad5bb279635c8806901d65641100f34792bb63e90b1687d473e64f8e2ed70f69aca4b62f786676de2e6ca40011ad410fe33f46c018fb85ca8971b89b8e1d8f2364307191940488fce5d7c0b24adabb1575de9153cb25d3faa54cdced6a9fa3c2fdfa2e2d41dc1611076b5c95954d0081e20442df4b27fa69872a2b6130e731b02fd12e5a7b15d06010a50adbef8a001fd5450a468cefa53c98f540bed4c197bd1c5d63623e26c41502ce45c230add5c3d2b3f55f45e12b966354cc7adc8c045ffb0705debed1b03e6e002b5b1deab744fa44674351f5f49c168ee38a6674e8f3d8de64d89c280f35584f7a84e2150c7535b570138954bdf223db72f9ee711de3ecf3300844a5f2c0a3d1e8521030de32cbefe87aefb655e54732550b22a0daf92342b01b5ef6512e518cb9aca991470dfe1f6fdaff902eeb581e028c026b84eb84b15d3dea7566770d290f895dfc611dc601b039b04df720216712ade9be59048a461af00abeda865fae85672557c00634093f3a391b2009c46439c0e4acf16be6fefb006a0783a3912c81aebf5bb2be99220b436567c8b6a5ea0287c418e5b1cdd3d27e0e5814b5c0a2b168f3253524892c070179d2bdd071afb9654d786d7ed3b531fa4560707a24504ea1b19ef765742b3fe64a567d54dcc562f0019db2ce6c424ef4b2de7398cd0bc85ca6df5377f02ad6d7329cee3050114fe3424486fe15d9c895ee8d7132085bfb88eeb8d5b89f9baa5d4e0808f36fe6f08d2c5924065728e1b53493f2c3af167b96a150e899d643326909d29207101a80fea2fef19757e1e000a9a73f7e02cb5b1b9b602d0fae182d626d50fa60b6e5f993e88c95126ed8f019662d998dd738f992b9b2aaa95574aaaffdccc3e2e69ade70d3cf9c91d4bff837fc5e82b05a1dfdb792ed67f30ac8dcd9c1d8939977f7f06ba7e653ce837262231f8cc7dd2d9d3e29cfc39fa3b3fc1a86eb3726723590a3c1b26498db0cea8e577c2976d9c9281f3187a3e50589f56ae1040046b303a31282b7d9da2c34e8b5533096893390bfe87506f05dca0c0e7305cdc8e1676541d049a842befe9ecdf6a334ee9519301216ad54d568f4eae84d3dacf369ec19d67cc9cca3f99778e250d039171b6746e3d0b2a3f116acc926b0b93b10d9068d6ebc40645b931f2b34d3f84b3405b56dd88978dfe2af089f25a5ac22ebaf59aaf35d43ebc789224d105f36e1367d8358fb8dda90e9ff25e084acad852b7df41c37613fa492b453050c77ad34d43a2afaaa509243a1de038c80188fc0c394ccd9056c7e1cbf89a491f2ba04153df23c2d833a5671dffdf2c749d860269fec0628d490115362e627e38bd7d42fd23dd0c82de71ee44fd6d34e14befaf2d083e3f13722d8d6a1a0ce14b602cf697871dae90dcd222187c8d4dfbb340f61ddf6f763432e48099ea349ec97a8c937e5273329f531e8b5ea8e8a4583eec73b3780a485e65e563b912fdc050bc95ed7c7ad7519c14aaf243385e050d01e82d67cd7c8ab6b15079d92602c7ff59cde21dc57a7efd17ef5f5418af9ca1a218f785eca67a90477314f826df6d82dca7956083afd19a96b4da5b4a9f647841e9d2b4c00d8944af5c1d5db20569919592496f3831cfe992d2691fefaf881e8711e3636f249e7ec0f73770b563dfe8f4d7e504996b81cd3d1bbd618d297d393f2153859e3678ec1efa35cc986395dbd641255c36162ed6e71340c8b3b1e82d0ae6e7e8d2d6a69209c7d2e3fcdc8febb582b148e9b6fd57daea9d7c4aa1ab7865c197d94fdf24c1a4bb452397b9cdc4ada153a469238f6f98529bd47a7e083047c78b727eeed77dbb21f079ec9f788f4764981efc6ca3639f1129b4e692de641c682f22fbaee9294143e1d48844cf4f64f17d4259e45a445b8fcab008587ab6f2e30ff19a5f9d93c75a659a918b707906aacdd65ac01a7a2472a983554fc920a37626e7cca9610a23c34a67226ea1f9019c16ff9f38330e399210f460cfb71520d778f3f3d89792d95749383beaa7867e1713c950be6361dd9f2fdf792689b81de63ee5512a2593d7119950abe3fffaff5cf02ad983c09a1433dca6653503cfdd0a5718dcb5d1e4b7d254ae5f1fe3d4e8e961610c7c3bb2ce632bc6ae2b8c7a6b226a82e8e2074f4e575b19f4e15cbf0d545d7c35f3504bae9e6e43d8dbcabcfcd05bb5b52724f4c61b3f887a8313e4e6e3105de9c63e05ed97885347f88c2ed60658f9afdc2b629c06b9905ca66cac4f024251ad3ac3d06b2efc8238445243ff1a1b48fc381fe15f2270511470d7134b4f8d0b4e11a664017b3004b3986fdac730270f855faf004138ac4e135b4fe069e349369723fdf04842659937476c25931268991110adadb39abd779afa1be4fe80b324b4bd4113603b1e2cea3dcc4ece86f845edc96b506ecb46e61ee66a469694e5ca29e54bc6af20d3ab83bccc1a2f1ef35a2d4d1f5be1937f8066023f089bbed41ffc3f5d7dd31a2e250b3e362465a3d17ef6680e2012d32c882ed9cf9c672f5113a144b4753f04bc2e7ed139c7b3db2eb3a9b7ccafc00f49da6de1fd8cfcadfd9d658988cf747bb3d5903539c0b49cac3f7205a9c0a9e788f0aaccbdf90a83f864573e75d62bc37b68ce1d03a9d943e70d75139b53422fc09c82d33cd82d8bf1442f12cd1ec84139db3c783a06ac110aa74305daae0e7b28836326f28ae4e0950686cf94da2d0351178fd0d9285327fcb3ff6f899bbe016f9036182cffced582477bc2a9f97bd8192be8e87b15e876057be11d0b126c4d5259b477bf49aacfb286f013f539c53d74003be507cf24dde42724a0b15899665edf82ad3a6b1ab8488a46f53a31d08e43e05f56288c610284280cc13e813f58da077f23579f4e4a44ebbb2aec1120ed361868bd4aed94ecaab763fa5ba48900b4d0eb48a683dcd402bd26dd4d4b3aac134eddc78c72da8247a0ab4f19c3e33ec61e5a3f4734e58e66c2c1897990b23c077461bb3feccaab6b7c458db68241ad751d49e114434b409cf09025cd20c4a04b19a1862558d063d3bbde42cf9f9c0f8ce2ef9089faec629ec1d52258b368e49fcb81d4dd3c68bc9eaee5ba5e75517ad895fdade2cd5c43a64f2af476be675c0f5511c3f30eae02f95f61479fcd4811ea37baf675866a86d1108bd3289cc49a8cfc05516af8c5dc5c0d693c762dc31801b816a220e1127cdc9a4cbd486c78fe0cd357e6d1672c5c5ec22b272269dcb8b99f466e10f7d4a28c1dfef659e7336958431259a77ace4df1782ac38cc476387a454f090ebf385b035b355fc5dd7ec1c9ce12edc7e37529173a4a201e6c4cbce5d154da3b2bd09fba83e6abcdac42baca5a7ff6d260d4081a195769a7c9202b2de0a4c599fd3f88185702cdee764ccb9734873d215cd168367ffef002d049ba26116b173619924874b9eb49b6250d46a7c49eee1334893d15e935e0fc88cfcad2131ae19c360ec9e8e6d643887089491795f4a2224cce4226e414f0a65b660901ac81878a06a8c75d3c437d90f4adde3e9bd72428056fc4948d88d14bacec2af493b3fba183ad9aa7301f282e499971735d7e5a82bf3f9be2e46ee9e618748736ad0603ffd66734f3d68b873eb3f39568f7fa39cb27234ed92b2aa9fb01ed88d53311debbc98bc83083a4423cfb3bbd596606388738b03c42566983f68ca8bccf4374791f36eea5d1499a9e783d06f95839bf0b536fec22b619bf0d24737edd07bf1aa8e676e5bff10c9562e80751cd7a2b92b68f178b29adf2d1702e1585994b83d879bc8ec5370d8255157c2d78572e3a1573b4fc5c5140189cb45f9f9232e24402e53084d573fabbc6682947cf87b136c47297f94fe59bb7ce4446203b371bcf5020dea0b13deb053d75473fdf880dff1064e08f7c17a0979b0e13031f2015f1618e0ef4085da40c732b4b49fabfea0620b4edb91362dd38842c693af8a631810d84687c6b2fa244b15c15075b4a87db84f3317625eaa9e04e6d6ac34797b93579e85793f110074401337fd1ff497df4c5393c165a823052c14af1cb42b4b978649b4587fdad235326ce3160b30ccabbca490d95fb83b72faa8a15cdfd8f6f4846ea5fa515d7adbc4fd2a88bf06538f5022d4563b2843d9f00334b3b352d2c76927550cf874e6f1e0bb80937889acbfd8f3318a3dba51217f47ae2af5a90c34749bc7253e0080a8529508eea995b8f8ef2dd0b439ee6ba621f9a6873e446a4f8f1ca3eb1d251ac8592fbf7486f3d686118348066c763ce851a4c4835daa996a1148c0bb8c1196e0c7278bc089593b6a9db19dd8db9b1e384d565454664bb05272590f4b714a82d1330bb389a27b0d160304d77c6d358547735871f008ae572c6c60ee70c82bd7b4196e400cd3bd06660fc7b26cdfb063c7908648428759ad8de52d1e40e8a1c414fb902d8af90bb0dc808b5632166ad4bc9f7f664aeb8b37652b348dde2625457c258b9e5ef46d2f7df8c10adf3ff75072b18ce63e78e17a0c2c66dfd4d7c1d2135635b142486f1bb0cb6701f003492c7cd45b9026cb7c4709d1f737c894b3379a9c9e49a84b6ab4ed7a12f9d5ce9f04618adc5296de2db8d832bcfa1731bf25b5f16119d2a8744e84ec5f256ddd3d4ebf3a1f41dbe8fc104de1bb19bde220597cfcb82ab538fcfa64bc5d5b13d2c9f51b307b902f969ddb275f72753eb67bb3b90aa31188d113c84f077882a33310fcc6399ced22a473be84dcc052fd8f47f8c3aeb8c27e384f23c958de6eb3a07904b1d6cd2305917d9962ea2f62a6ebf32509c4f337c9f455b2d2d991eac1689197f3c672a6c35364548ec9e4cdc04bc7c556301b910e7f75e4a623cafcb539041554ac6c038f46c18de83f0db0636468fb9812d72b97199d0d93bc10ed67ae28a07e7a2f570d62f084d56983ec8cabebb7d425cf71dabae7ddcb9a6cbb88265cf03da9e9095290da249a07b5ff24a6887b6d064a2c1387688c4d7e965678be22203d3fa7687129af47b1a2448bff4ea1841caf533592321223ca7e292e741696dc3e7808cd1b43ed9414a9206f50227fc8058a0dd2dbe6d2e9c88090876980a25d53cdeaf6c061b1a227e47c80fcf36eba72b149eae60fa8d57c2d6a491a4a07e42751d70840409b91f64b75de681a331a2ac9612ecf74037eab8b3a0edd89ce866de8e9426e2a68b0af3683ff2dbca14ef479be0c4e63733ab2d8e344076c80547c589b47e5b5739a6c685528dbb4ce7d65afa77271c72daf7afc73a9f444ba5307d95cd73a412a4f987695fb058038b4b4f11fe6bb4cc7d57f9cb9827a3438b22993a7dd1452d74159ae76b4f843c53bf6eba06f11d4704dc7235c3f038bb171cdbf912fab7f2759e67a487c9ddec11262b0329eeedac1592b8a26ea24e507c0e35157b0f0c121520b1b3829718b37d36a71f80a256f1c54d1fe210a93c70937eb429189f6ff125321f9d4cb2217e712faefb77763f864b5c02db5734abcc92958e10ff930dee0aad51837311c5e563288a86fad1dc796e6fe8e0cc2f06f6e48d6f7cb2ed66c97dad613be2a531ad257e2164c2deacc24e6310f3a3196761a9173bd4f95b5599958fe09c4e8798e6cc73090b317316db042507355762764a1bb4da9994de07103216123768df8117fdf49441353b263dbf465da002e225ecd4f06f3fd1bb1379fa363c98cb6125694029bec07ffd69c5a00ac26996bdd4d11876d711665e4670c74d47d01919cf0450021a4e28a4d0d12eba9d106cccfaba320a2a84b1b4624eabf45531e1b89b97eb9ac9f843ac5f15ac49f6a52e608ffd6835986329187f663ec816ca3eac12e2f8a42e07aceaeb583d70497429a43d631e913abc931a5480928961797b31030e9a7db82c5d4d5ecc3e3fe480b46a33100843c8153e7532f8df4504de138a077f9a9051d1b9694b595a387b565e6bfcee76dbcd566ff3c1a50817189f706f37b1ba835758c8463b3cc562065d7277bd1414d21e1fdd02e7e781eb983de6cffff325199089da530630093a7655105adde489a7933e29eefb0f69f3b8eb8ba12323b1ed9f962d61b37292599747cd9328c97b3b02d7145e24d04f0050f026fec94bbb56c05860fe1ecc424bf62f3d5ac5146b4b67feb57c407c015ba36e6f3647406b30dd674ee0a98c9fe4d8bab6ed6428524befc9ce4940e8fa143a7d96f852df49a3f5056a2434d58f1fb439b5dda267d9d84ace3adc962286a88e505d31fa24283dffc0c471291242d47bc4d57e02098c312e843810503ebc2aa932bf6aae7fa2d44c683061caa897cfa777d7dacd4d7707e41028706d7e249c0d461dc474ca61abea278ce93b0788913013f4d928d2bdb01a4c7364451734bb5426670d922f20f34cfa63c0950d0152ab98cd7b2b26fc7a004cc425354cf3786bea84943c4290fbc89a0b5bdde5d118b0ddd5a626bee7ca216319ba7ecfac7eedf528a97e5bbaf3a6070ca925cc66ee0b38dddefe1884a990f06ffd7d267b402b45fc60b03658d853c66ec088290e0722f8e8f7298e3dd6602acab2e1bd81c106a6ab9b5c752b9f3ec3fae2c8d59946cfa6b39d1312880d37e9ef2fdbe8200eff4d12b6458458520f5269aa64d6e011eef741b6adc14f2f54982b935af7e9bb3fa9ceba21f6df632cc87f6ca0325990878878d6d0c6ccb1bbea8d03e0b55b71d3343df2413026e417667d3584808afcb5504ea6555f4651503e5ea15929a6c77ba37351a554471386859045c6aceb257a45a91090024da25501b38144493170734a2284cadb4e0a4eccd8f8e624899133115e858cc368a91868a47cfc89caf2a4329d1bef8595cf6a155e17dd816f4690b76ffdda70d15010a43ab05ebd97a0ad9dd1f5c1cd313dc50f6c36f0d931d3019ef426513ead01bb047f384215ad253cdcf7f1c5f7c24d21a6aa8b1baf7f065d18eee02aa06c695821f6befce4215ac4ba3fd8c5705b6b65ae367b2c7f6759f5c4bb7fbc9ea3ade5675d11e65155939452418b17e6b572a927246f64eef0c2a4109a425abfbc01c60989ff2c7a872b2855e510aeb83c992bbd06bd66c36bd2f555914b9233c8a5b62b2cec80d747d05bbe127e1c2c5d21a1775208dd21cf0e7840898185afab33c7ba14eff13c83e031525c8c238ac72c390cec496b1dce99dffe45a33ab993c1ea57dbcee81f4769b6d4134360679f7d7ea6b2e07a70e0a08ec8aef44d239d2b839cea1eb5a6e36f4fdfe3811f25cb521d7f92e5fc2bf483a6447ab257a668caa5a24e0d74a4cc70d61f17a7cb55660e934344103a10daeaa6897bf9f58a97c62e052af6a65703b91116aedb56ee884615fa72fa28912fd6c18b70aff147bcd41839eb16a21abcfb60a75601c2c33f9bbe6a9dd250fe13bd18b9f11c14544cc68c391ee9d7348cb2e63665f899328e105ff6db77512a60d0de29cfab8b30fb65f718cc4cc9c546e32d9da4f5cfc4c795ef3983457b4be6be9a52d1ebdeca804b8b20b7be8947f3911c89b8cf07a2ab4d9a3e76f5198b76a6c00d8577d080d2b699d07b7bc6fc7ebe1bef649f206ab92ef4f802f61fe21eb4a416f5f57c58b386350408dcd08d6be2ff47d9a2df8c0563ad0d7effa30fce66261d920361ea828d598cd3a561dcb6bcce60d5b23ff2051660f5a5b5dabedf73efdee86f424680e34b175a5298e9db7e0a1caa3393a6a6cc93c31ab55e99caaf031a4f9ac4bc3800b4b162c0d388fb857f6242a0d7923268910b0ee42cacab3791062f1e5390b0db89dc6ac02126e06be2ae95b7f1ec4f1ee3e1f454bf6e29c2657c2e2a8777c620b3697bb6df51020262d9d46b4d968e87077bdf4dbff1700990857d38e7cde723ff90a8bd707264e1029fd69d403408e4b03e73e85868cf15f1b7ff3b30d6322c6635c61f67064c071ec78b0fe96fc8f5f57431b3d8460604858e81751a60c96a66b2f5f542e0f8b7e9e38804fd8fb816ddefd24920c0421e4c9d34cabe11afd5d5fa28bfdee4965be4783526f1e3476c74b0182d70af4c689ca28ce4fc6fac9c6dfbdf0caf9dcecc90b3a8c3615f62cb0d90cc2831cda4799796b78d81c45b7bb3f2fa4da1d29aed23f9ca10f2d0b149c0f4e02808c19f390a61b801ed0276720004dcf2d6c70adbbf7fe51921f1b7585d14aba991b70d73cf85a66472e61c348e9402fc7aefccbe5c65d801dfdb4c40b209dc66bda219ac3de650f349a26ed093c0b3916f7f5b6a10f64246cfaf79ae0438bfa88b6f4c9fcf3c933e7f15e59727d7991818c9a64eb63cc9170108eb2041bfd11702bcba92648314a109b5730c21181c568fd8239f196f834cacc6642fa311daad3ee24b84e3797447d6b2a7f2600528c78e40d6de9d770c2119eaa499476003edb2eafdd45035e4eb14340d26de8a10d4f6f82c48daf1fffbf589261bff73e8e4eea1e265b3f7d750207858a88af994f426b23cde7044d8e60ecf72557848397645bc9ea8cf9cff33596ce7b3e14584234373e8b5f09702c4874c4549fa9bf7e9e2a1a1cec32243e0d43963d67b67b1ec212e0060585097f99d1e6181becbba5ef048067b596680fd1e97473d33074bdcccd8e6ca03b49f8ada6d1a7b267af079745ab4e1b92c6b1221a7b08302698026adc0c383e340d2733e7169a56f482fe03cc1fff575bc1ce620f6173126a794d6c20d8321a450e881c02c4544189fcb72b3a8362e6cf7f62b216f95078e99b6962ade36c8d6a83ab63fd6a4743a8f4abece939208363513a6b3f496dc532e7f3a85033cc742c824fbe94079b521b9f451349345feec7e983740f2a31e253e9002b39e80a7a36a717492e81e347b4422c755a9812acd0be27a295daef4ca1d2b1c583321e2aab63a2dd27a864572863326432ffd602a589e43028860684b16a6adc075e861ac8f1e5b068c5a9b80d010fe0fdacf22741db11ce525b54a027d8ceee6baa6d141223c89bd9904f22d8197f0e4cd8ec9bf375d34294dc34e2a7abb7e06a04bec6bc8476298c5f03781dc506e586874765a0f73785ab773d05a7e1a20fe5adddcb889daa547b48877ac4c1457aede33eba99bafa119371c27d43670d9fc25d70a64079e030089eeb1063354608da4ab240ef6e2961d270e12be2938fd08ac67b407ec10dc1966c607036eb4a680896a501fdb8796962ca6a35568227f7c4b5131e6f2db2a246a299ad255ddf2f0fee8caf2b04c5d67d6cd16595e3cf5b6d1c1b397cdda57dc3eec9e16970cec4c4bcfbcda4c24ac229ea50783b718f42ecaaac1a58aa63d07c83f146f62608403c9fc0b77a665c124af6aa2f5c8f950f7aba154b4ee46c3f8c3bcce7828a53f2d6dc730a835bc142486c9b221a92b31cbb42077c5726cb7db155e0a4122b6327904e81b8916652abec9cf201bd676e0a4586ccc925420d29784d98fa14e70e13db13351e88cabb3d18db1b5f2c0e324449534640ae207287f17a3f93d1cb6a5772ff6e73d401b14425c9a0b99ec9d5195fe6cee672e4f9e60a5df93777dd32ce3d5f7f3ce3233bfa6151f6d44f92dbaa8d9503b8d94416b321e30b824b3768bfecd2d7d81854f7939e3e53aec704df6d61370ab1260068a5a5004b3ce0a0715cff5ead0bf16f5ca76e9b879480903046b637dfc28b2b566b9da810a631ec0f3fc1396a1efba2b3284304bc0730a407f3db4d8660c42facb5dc3838e871a242770c72e17e8df4f4c52309e2690a7e5f1b20643791e4ec0f3440ba18d8dcc76ab93c208e84db5308e140e7ed34510d83e72316eef7b308487903ccf19a8c05db6bbe6829fb053983562d41da26bd9d5af5451def4bcbda760fdca4e7ebf9930b713651059d2eb2ca7c9909bd0267c4f4b53d92fc681efe6290a6661b101e55b4f449b4b44d26b33134703890d39524c287d651235f6627a32c6f12a35467f97ec4080f05de9382d97069604a3fb9e02a6c36d35502d032d7d90f454c8fb28684660909f2e5019fcf8da101cf876899e974d41cdc150d468a6eee82646d770664fece0ace423d852a56078f7ab6b41c92a0c2fd31637f67e62a2f008cc5bed101e1a0333e1ddcc99f5dcbf05bc10e081aba2ab9aad6cfe7afa805b1da68e2645a15f1d9577665e233c8811fae5ca20544d501982178d3f2236bf122fd8d300567ecb5520389f7fca5fd7a5443ab094bafbbe6818dc7b4df874be43a5e8ad68f0740f66dbfc0d2186e1cc5d1baa4b2ece14c9a7114260181d7bfca0af95c603e5b86f768aa3e1c8bb90d8e7a1e441dcf03ef09372120742233624fb7bf7c15c7f6f7cbad25c929a2077173a55993d1577af3f37b2600287439bd189d5603aa41131bbfd241f0a2bf818cabf50f2b15c1728fa57486577f1c1f3a6e18c50753241a55702294744903f42d2b84944dbd6b074d3019e277d7403ab7148ff3324cb9f519b853d76add0f116593c92d801495d01fe82b34b69f252aa5af74bcf04124cb99be0f7286388be15291a41b7e6a84a96a9d927aab9600cfae7f17907a3d1ed06cdd3c303089b06029dacb518bcef1a21b46c1dd95f34f2a8db0e690ccfc6bfe268ce6ebf8aa44f6d0114945179cccd4fb69b5fb7da820844822157a948bce2b8cb03ef8c23740526b5144066b7638911394293f3ffe1df212dfc379c541a5b82844e958eed460be694f82d0c55ede47922fed1328d7fcb3ef4fa80ade42af2f608116a415092ebebcb6cc79be66a1c549a9bec78e95e5fbdfecf859375a973106926fd8f46ee82e5520c18a7569c037d56a7c831fb9808e1ecc964474fe9e1d999a7b5e772dfd05712e271a3ca5a88edd25368a2c6af83cecc53ee0d97a9b225e5d56b6095adea94c399fac3422a7f552430a7b92a75266069f91a35c3943d9c8ac12d5ece90cfea03240e501c68247d4dc14ef896e4628ed7a9ffdf69a82622c44a67152c97adf0a7b63bca9750fc28c6b74bb16277f6eb8d72ca0e0a07b1708afceb765fec0f2aaa4e81836ad588d4cc130774debc16e98a7fc654c3ff92d9dd1293d1095a09d0774ec6eb361fb4dc489b58ab59baec36c53d13cfe711ad763acb9084c5342cb1031b8a22777f25ed843ac352f823fa69c927e3b5f33cd0cab84af5590a5e2e9cc928c851fdfb4a0ae7ef3af46c6281ab2d06e19447d9c65f5eccaae2108729d0b9a4688d58ac0bd77fbe39f8bda1c3cb76f3dfc1c9e9d44293a0aee45c4ccd5c248f8eecf0853d9f94023cf549539c7d150f6f190a80a5301870f8fbf1e913e162a1e27e2bbbbe16a5949f2abd01fc5abcc8a96d5407c2c614b66b0053fbf02e257f63d5242c9ae9d02f9f0baf7c9a891d2b995412b32789a591ac4bcf7650659dea87db49f92e1b0d3bb2b273df3d9d74d9f37f0a4f1c0ee6695ac7c2d3a1df040688deb33dfefa5e6300b00d8622bf96aa8f14b1f637860d05fbcf95969999f605178125bbc57dcc15d08371eb113f7cb9ddb0a09c021a68261f5071963f5d3312a2e01dd7df5b044242d815103529847435e518eb133bf2a64d87b8e652070e8df4ea08f218a319d3c50e7ff29983b856e62c6de61bd899343bebb584319f98917632d6950fdfed835cec95422325b7c55316abcf3e3585858d94a3aec57c7997373cb552003351a2e832c68f767d4afdd19450e64e8c41928f7ad197e4339b565143b7c50f92fd006c658c99933eaecb90dd3522fb41a141c0fa712e6170adf3498d7018fe8b43fb8346a4671e6bd53357ffa6284cc70b7201f5840ed9ee4de010a9e09d6938599004e5b6aa0d7442da9e0d56723fb206edf80278468fb2969e7a7ce8e4342516a4469c8713708fbe9c915e78b95bbc1b55e40aa67f1b18945669f728ec18b95b3b6e59e4f4eb676852fa6086a778a96c5d3dbc06a4d5ac6ccc5922a51c3be200c01fde169fb10f0cab318d9762fa2d8fe9b7de666590d94fe45617a2ae16ce74d3d0f9e81aa8c88c6a024493acbc93c782ccbe54a63d613f2abab1b58109c919b47242cccb862feca15df61995ed5b15cf2dcbfca0fb27bb2f1e6a5a79c14bc27f355f0c2c99723c798e872be53a8f8b6d59f3eda2453374e0ad58ac732c292e38be7cd463b35c513ca7be3fdef366f0cb42666f03dec4f4b85c9f1552f0ee516aae0a0918ab3f283d5079f6f5f900de5758483b1262167c851cb877ccb3fec701bc9c51251358400895759ab9e2318e8fdec1aeda7207990942d9d25a7fe04ce3300a0c81eb0a6e423f8ff1e00347e7251c70b0267838b2076ef88fa967153145f6c7f1c2997f51fdf7c0983c70937866769ddbd695ec5d9c489d35f831a73323f2120d140b3bd2e45f7d4773de2a93756f6255efb8a676e8d752f320f530961660eb910460305b488b81f8e204c9213410ba8ef4cb4c56e39c157aa54f4b157fadd32c566aedb48aca538fa61624470cccb1ea21629e12c2865cc860638bf4abfaa80bb77680df270757b328b0069b64fee3375bd49aab25860dcda71eee96ffdc9e0c035fd926179b5d060652839f43c2a7572e9102881da41a4b3cc05a2ffdbf8bbcb69201614df69525b365deed5cb057e163be21ba1afaeec7f3dd23f3a7dabe9448a5a981a598952ee8acbb94a0a3aa776cea11ccfc9f0e6bc3de14b6bdbef1b49a7177fd99feb9a13ce3fd74a87f90f1f71b505f37729a4860704f877b520e6ef1837a298503c99c24552fe0f5be5c58ba0128427fa8121ae6d37cd37181359194cffc92e02984315242a56a381235b475023851bd330c153b792b76c448db6eaf62471564f4364f61b233b121be9d4d0ba95ed2d854db12f55037ac99bacca0e174a493518d8d3d40ecf38e97bef9269966ae286830c4da123a33895b96f46c6335a8f0fa3fe65513bb40003235b3ff4e38c152f1d58cee9fa91f84836b2bbd96f6072a00dc2c33b6bd832e0fb33d933961c97b031e1af4835054e41c097f292b4b82768fe44bf274e52f5cf98da0f33e1a3ba9e61e4bdd1936ac53e69f50ee4cf9a97b21933f03ba65a4e41c013a83701120cd44d6adde1e211da56fa65b72a057ea500d44707a0d40f3c4c876198a43b0ea891492e7878c65be6224e3b2b6e10723e2465a34391611314d86b513f7c12dbb8588080d611a60b22628a41a0ef5e6065e69b2674f1302d2a030758cb15ab18b08fd7fb900f3c41403089fb02cf8a9727b1d00d00bf272455e262c0cb88c0d479e4ba3beb8230b7c5f28e0740b82d807e45561e686d17c44809d269280a496ed84a936f60ec1cfc78a331aa7a1e82d296e4f215af0dfc9c90cb99cafc2eeadd6c5f1deba479364dd27e794596bd3d9be5274264717bd6e1a3b0ff2a12eef9e48820333dedae3fba5ff62c400771e7b707a6c589f2df83c3c3d1fff37c542c38d2a14e1766dd182b13e2505171f84be24121436721d255dcea31d624489793fd70a7708d1aa6205d2d13caeb522bfa7fa6b0a2a9715262ef99f42a6d4a6bc2b602c6c26363a3bcf45d13211412b13d4b1bb600a616baa1f3384ff6ef5650dda9b6c4332a3d1292e65b9f534877ccfe9fff0f10100a2172d2859c99afb2961aa36e9e246a556ed3849e34f6d76540afd8cecacb13ca8510dd28972ca2c5b325d8286a1654f3665cbd14239ecac878af88747d9dde337246930d194e02851a7c6572266ae236d8296384fd3a6be543542d8a01b1699892a15e98af56f7a1106154b8d615e23b2530330059806854c58ea8d1152657fc5bfb283d1b8c96d68a4d0167f45e4848e1628401d2cda169d6b9caee553ce1f9ff94b7a737b54ef0aa1b9d69bbff1e50621209d9e5ab5b88f285273405698d480d6b42b92cb9117da04ad9e5aae91ac8d2f3e1434f71016763eb213a3ca2da8660b7d023e77e2fc71795a8689958095715666eadfb2334b1067c5fe7bca2ca208c79817e5d9b3e5bbbf96933f0eb49cfccc5e63d41b83e3d83d2a5e2b4db819b382431dfc6cecba6947a77c6ff85a85ce189d32b58188ea57a8d4a21d186af5f18095555a93f7ab26a16aa1e676c157fa353f1c51373478324c5a6ab7e6920664b51366b9e8cb891fd5ec4b141cedfcb8f779c554512d1721e8b22b90aa9dfcf098af7abb69446b0615fc84277c1dc87246077e3e728e9937b67eb839cc8fef12431c47e61df1f7aad9c25a14d4eae0fd783a3a74a8b9b481b74cdfc4195656fc2dcd8c45d239001e5a46e9111c137bace0b2735c3d656e640350cb0a4d118a379416ecdc181b2ac7809f287b9ef4f6d517d600b076b286c513a91e3a08599b03bf896c96aa9cce3b7046802208b96da3509e49691ec529ad76174f67b3b8d67a67184817156e690695a5456c33f8156aeb1341d4a22143dbbea2629e3665fc64198b5421a00c2383d3553b3cb23027e94ecb5001f43f4a75ff2bbcecbd6d763d1e885ac3d18ee0769142748b0ca1961677e859665517156f28dce2766d92078621652b3360798c89189a9cf218b0d21911a3386d2e4bac75c559692421731f1410ba216d4ef7e8f33aa1d559a7f0e8f6db65a04cf64f9f8944e42450d4b5d3dacc725221241ef3bcfaf68899f766610c4a875d4d2e20e3027589c460fb63e29181f6d8ef5e13c1de3f8208d3bc98b3e0aaf6794fe08626b1309e9e3165dc70cf3be4dafc13093f76022ee7a741f6e722f8d885be1a01d399ee225bd834efe5e60d4a5dbc22d0421b3d92d61f3bc941daf3ffaffc1a905eed7c10f02a0eaa9b9d53f9de5b7fabfe91ccbcb3829d2d1781850ff2db90776aa4b00688d42b6068d5f3f60191c064931a59ee3c258530a64e301b75b4232fc611f0437e2f025b961f09d17b29ae0670462eded5017831ba6a94454c635b6be71363105fd76185aa3ff248b1befcb43ccb71a8d71b5a094f33d058240ffe2973ce55d782648bcb7c6768835139e72c68f44afbf13b64b58c353b128b7390de83e006e1be4e157e55a7e86c2ba83e1344826813917ffe6cf0788a6e733d8dac7fca63c9776a1d995eef26a56cc198315d4da88a193a281f16480511901fdc48501c46d6169538d0582dc0ce3c4b5678f5252f8652c50d4850e13b9ced9aedd8b1107fbd5252c70b2ad6a2c6429173871a7c0e50f6a957ddb10d9d0960d7445f604b2883151ec086dae39a6b7ce6783e67864be01acdcbb06ee8c51aa1b97913a95d1bf82bca0273f386ae58c7cadfd6d1c519339cb4fa319f82e877792910d4dfdc045688e2d47fea0f573897f3e2f33e81958536bf94d1d7f37d773883d3eb33dd40f1fe317efc1eaf15a58d6259a6dd6f065b03482d096f68f32f15108526690afca61cd2a0792b3e8b829d4789f608d659f9a03b8a62bb78a0ac575c0d603c659ed70504c8bc6ec6352eadb0ff1d1d21c31aa9127ac05465e0928ec6e2877a8066c9c239d745297867de9a667d79b803485003771fa5851c80f55a70091db61aa3fe5648f202440e675e8f4934a592b2fa95b640e87919673da5ebc9bfa3263aa2eb1ea0b99f73badd570fc209d7ef9b19e9a245c7253387385c32d5a08b3eed9a9d8637d27da99e343c811bdb272085331cc2e25698963fafa643ea62ec392087cf692194ea295d26d64efd8d1f8b16b2b723827a6c40c61dbe3b4153d4834fec926aeb506880575814877f9bbc337b394c340043934d5e4cc6e4e730556c3306bc4945fa4c224fd43791773d52c09e5eac06d9e677832ad5dbd8b68c55d552d8793a43f60f5f7138a8f7b5493d2ad24acd8cb4c21089089ab9eacbcdef06052d7797c35b010c28393cf077640b749b5ccf32a7e866fa5a258f6414f36477d63bef1337b52b15fd6f30214aa1bc2379c574a7ad1503bdf129178c409518f6cffd9dc0727a8d721d49aa132dd3336ce538c6f338ad762e39de4325aeaa52775473dd14c519d4210409c6e196524964ce6353ca8670cedb966b3acefe21dfba0c267442c92036d105b4e0f9dc106c2b4c39a79396868dbf1b29bb683d1f36cdb22c826ed4c7ded0b1170773959bab27a43c2ec8a13eb163f7d8c08a74a89332fe5525ebe5e0637048182e6ff0660e70bd31ff6fde716cfd285f7896d559cd069a37a64c30a5aadd641d3d5b40a308e92bf835ae1294342016c21dee7a49dfb2b6ba90079290fea6fbf8b3b180289fe09e3768c45cc7cb6bb6c117376e067ab297e98be2a9bb59a94f6caf46b70f5afd3e88bbc65cec590a0e97b682fbbdabf1478d39fcc77a52b4c9b12dd024bdda1005cc7119e28fc86c8c0a29bac32c7796d540ad6e7b365761e2c0bc8403bd49572a4847e3047a7d40b365c382e1dba8310deb11b8a86c72ae8d7f4bc61861fa8db257e9c55e1d775c82b40f56ab408f2606605b04f3e69a756a34b6a98e66140cd6505619322b1684b093ae4f7877171ddfc25738c856c3bb47ff6b682fb2f4502adec5d025090a84a8a21bc7861c9b84c4786b511327b22cdde1209d3197b3ae41fd7a4827fc42824c16e7aa0c7cefc5cef9121fde7eda772af782fd886c2e3d8d566e1c820ba67a4619e65d8c166c0719a7173fc04994fc57019f21bd65fd44f3b5b6e609ff268fc89e1ebea4e91533c668e691a97296cd05c59e9ac34bdd34d55910858eb9a6292ea7af43c223b3505459fb2478ce08379f61c4834b72d48bf244bb67590a39f6d0d06ea2589e7ea59df7c10358ef24d1be9ddbae5a49cf051800744a5f5597a4c119903dd1e116f437bb70b752d6441405ef192ca569df5e834cd9f3252eb90910464db8eeb2c6110c5a7c3ff97cec69d88ca2f594d65fdf0045abe8f5a8ac638ad8e3e9baedb15552aeb773a371d6721ce82e22689000a36e71a32901d91ced97e1d98abc1e7bba78a9908b77381d2d779f807f652b4fdb85b245d8df11f28f46b161a89ef5ee9d152c850b9bdff970856120d06af881c1241048f6724da38d13f3f015782faf706f6bf9388743997183e7c2bbf9bdacffa14116b006300d2f6fbfb6dbae86bead9f7b2a650414bc56442376cf3bfd88fd9248a9e942879b0f177789870bcb7762d8428a43cdfe39a7192f28fbc9512bdab2cce4849ab43312915f07f939c7dcdbf4fcd452e689c7cd554dab6bf29d6926be5b85d2b6b8c824b221202fcd75e7249ddbaf52e47adc1eb215a455162930f55392a3700bba61fe8dfd53af133e2b434cf6437af88ca736d7ea226e6b7ba6015b34b593e9d118766d4d07f8c2858c6855a5d19c7af232a0dedce8b78f27f82f24f46b60bdda086ba305ca5ecc773d4f8ae293e8cf00564de0cf1b8aefc15b0023de44b930513a8bccedd669d0cf1b21533af6776196cfebbd33f0407003bd28c997860c8a2618e43ba323423d9f3211fa4eaae8f6efcb3708d01242ce0ef23e4e79e9419ba00cf637714f5ca75d721e2c76231b0341bc22641df7848b35b6f9e2cd220623a027c0b8387cb38ab5950fb13bd34ecd74b7fb8cd4823540c8c2d8357778953388d0e848c939b5230938c4e9025bdd52a2287dee259ee56275e89226bda8fc0467030221d5ad7b14dd71b7f0d071e177dcb808f53bff1e5811a9f1ca30c177504649edd852c1fd6158474a06e96785798adbda747b97ee085cfb1a3b8e72c978c47454499fd8d25589978f6033d3dc303cc7a4c005ec565ea8e2a11d2f24cc3558b14d1e00053e54cc41730fc58d6df119d1bbcf8c151d36788d72f812113b03ee963f28a1bac9db6ed73d878c6336c3c00e0b743f49a6a2a9bb3130094d684e4067c92b85cf8fade7312f0b845e37605ac0b731ca7ed092d7ee3d2f3d43d6c4abb310aee2172381f098eb25ee89ec4c17e98ae46b8c081623a1a6c3e3c90a81c345824d46a0f55e11701c0922e2c96e2d4358b5497ba48b57b1cd1810d79a2005460c6cb06e645edd742d8032738d7e7bdc75308a353ae2b77a6f2bf019861bab343a4f04271b88d79237d1193bac7528f257e575dee1f0bb24dcb736b64be30922bbd0b9cc02d130b821d14ca3fe4197075708e4eea0bf8756a96d3f097bc2a155aa27a5c3029ea9ad3e75327ae07f98e1dd0201240648b04eaa01932ecfa877f718c27d16f3ced73741a6ca8319006ee49691dc0c387497af634d781504cf93eccc4addcfdc85056cea6deee76e9dd3de3222bd1da56834bbb01c9eaaaddb48d93fbe981548832676e7bb3071d1da3c09116acda908dddd711117765d814eb2ac810f1bbcf9cec0984202d81d5224e8cb469bcae2229ec51489c16ff0940f3e7ea8a607d1f04052a8ceab40907e67f1ac9694cc4dc5e9d337f02f48f1425416c64f9d3d662e1193afa9f94680f72ff5d4cef7fb1f58bab29ec34693ab7938b7132c0e96a2d02df15e54d153c6a21b8da548286cdfde9804f9f58c27647d5ef5d3b41bd77ccc9509cee93f322cd84914d7e16de892f18cd89ca5a11a60b72b3468f4504d84818c131faf54fb5c159b3cd524a602e22182a32a8259065b81f046a9f96b8077672026e41c57a1a909e204e2b0fabe05ba4ac220b854e68daeb65eb588b0cdb3d3b62258f458a59573be220febf455404ce08e1978720107ad9761ab5b5f9ce2ba8b9a067006e4a8d0625cee5fb4dd030783393330a0132c12df448a0e70e28e75189588b97608f3630895057799bfc68477ec8ec32765311c8fc11d881c50167d1190a6323881bfca8c14304de8b3a8b495109565a3c9904a3cf4e79905a6f0b20a3059b424e611c3abc620ddf869d0ef351d22a0da5cdc1ce99e551aac43a42d29d3b3cfb186344c4925db133899e6f952ecc8c63216044b3b2e49e983f0f041695475442bf7f7c68208ebf0007c162e381d6ea3a626c85ab3dbd3a41865ad95ebff19be6f5dab315c02c77f58d315882c2d6e494b22ba6fc64a276a34b6e399887716d983ecd109bfab4f9120811873482f132f5b0e6ce00de4c5bc6640cf2d80f661376d56e35c1e6a7ada7bd093a4258717bb712eefbd5ea2b9dec6eeb6196e3b711654ac00da3e90b85ffe7fdda56161935a0810fc16816d6273745e71dae1f84690c065fa04864c54987f043f156823a817c852db8b7d0a56aeb3776026a2beac857f8205557a6351e4d4716c11ac4c3b836ca0a84940b4f6ba9bdcf1a69c1e698464a7731f4aef33839b73e16b978b416a66e6d5b470f0d3a488e9e193124d6c6830d3e896b71a59a4b24fd9f937dec51cc97e5c1bb532e5d89b9e6b5bfac81a4a80fb34e8fa44898e96854872c7d11829de6cfa49a727efb09595f3a43ea4144dcc466f494bdb7ad8af744650e5bd6cb0da81865edb454761636b1105b911d03e303594c11e8419dd0f10edd004e399436243fce8e4c86c9397e8483fc7325c2e0002b602906f7edf9b611126955f74700d438dce805e63922750a755957da35c4d2b76c9e8360b13438318cd0d18d3a57e79615e14ff6b2c4b0440bf581f76b67ed4b8cfac838d0040d4a016770a2656c5252a27786a9e63bf172750b316e10694b3c87ee2d18de7a06f05392cf82edab6f3ae654b736f696f44aed288496e2c7bcc1647e0b9881ad31aaa26a8bc4c03333b72353e02b6a3f159f580660277c0f0c3db1bdb9a070fe360684259b822131e433cbaff68a3dfc8f9ef9b1b0df66ebed8cd44bfe94779c09e92742b9da09b6d39edd42dce060d72f6ddf6d998e824b437b44643479f68c830a3ee49a5f48f42f0a0ed13e67f172a20ea6263b77c87aa671275a8d647609586552d2654e65b9889deb28f2b27b76e2173498401365b9327a340ca0273a1f00e1e162ccdf6e63842e156082805c4f5bf44ac52a4903686bea83e6225e48b6dbc33c535bf661e5aa4640783f723f1d2e347d4642bd42821a54694e5600b2ec9d6408b8b998fe250cfb3f0930402a02ea8d9b4ce5288c8de1203d67df3d89b91d9c7410921d77b5858239950fd2f891777f42c5620581b8646715069eb8ace42597e520bd008c8dfd5ae9add7db65c5e2c7febb7cc506a14757f45f782ccc7095efd48bc2e6f597f6e4679a964a9f597e97c1dc8e4394515ea5f28cae1c93c32006fe7a764ce4f00840b99fda04796e0b8c5c323158c12c31619694265b91dcd66ec743bd285e555b96251c4d54d0e55cf4d0b90819352a32d4af82c1114fbd3d56653ea6d37a8675057cb43e55ca416cdda323d695b5a0ae7f4acf36ba7880aada17e566ea912ef0bceecf9ffc7c9cf0d5aba4b6597776b8937a5e71d4b55a1356d0554cfd02445cba0ce4eee4111f4989071e37b10969b9323d437d904bdf81ba4d3fbba52b20fd5c734b3806164a2f90ae1877aeeea7eb52c7943f1cd5ba2daa2e18075eae74f55d195eb5691335cf9e624232b8685358ab1d469e2673fff712d894e782a28c83395595b5d8e807947d6138fe2d90ada2ea35a203ad2fa8aa7a0b988c5a932758ce5e603b2fef9b8ecde3d4e69d166136f799e45749631048e01b0b2b85c572e6facde1bd84f508b9df1f5a0cd5b231bf844e685104f50da66e603a6400dc4a2234cbb54459a365fbbf19a07c098d13cfe59798d473d2366c547ca52f937151b8f642897b8daf55d4cd61d6fdb7e82714242389f09afe1c4302b7c9c9cc63f87ca54cdfcfa8c5a2df733e1ec954274bb1a6eddb5b276495ef520b77f263732a33d1209946ddaa1806502b2030f33a0ef262eb0039b158dbaa6c71bb7a905ff48ace3c29146729bde015d481f9ee6590d525f10fa7227670b6cf8f16c5c8e1c85eca9555cfe08a487ec88d8a37661abbcef0b0bbab86881d760aca861a6d8465c9c716bf12d4454123c043b47652f3b8e7ff1d2b5d345fc375975f3788f63bfcecb1c949c53ce456ce8199bd3d2609039299c5c96eb8eaae252bdb43718e48844a35aceb4fa1ec11d1c297475a8abc5e557ae6a8877489f9feb56e769dc6463a84c8abf55835d6857da843425eadba92295dae02b100829e50f2089003447f79ab638d366a94753f7381d250d98e52703e1d9746adc33e948d2a074b7c56a9af4c5dd177d9041ffc5600043e24903d923e37b6911c2598b6021394f723c3d124f1e6d1826fbfb71ace88c90c4d98e83097fee82297d9b72f8f847da8cdb076556e348bc5a9de7f4ba21f603ef9e3fe5ca212dd4b682fb10dec1f64ed42d8f3b250a7d0b0527faac9af4f91944e5f34a8a08a4ed5f2dc54581c2d1e68ef5f2d726f125bfd854e769d0c563aa39d8fa16e2e97d5b83111ffbf29d32bca551eb230656d009685f1fd037730c1598f1f8447766cca46773c4d01b356d9e69d285d2ef5d24b3843bbba26ccd4c786a67bd7273ba3a17a58ab35869633013ed1f4b9065fc4a41cfa5a0725baf5c23bbc190f2af8604f251befddc7c633784b8272412cb0561c091e2aa7f56453c2867af645b833a72be4fb8b51eefe7033d5dce5e4cb3afe7fcdc9d20b931bd35762b0b2768a66521c6b4085c3ce67315d16801235f854d8cd076a3a114b79a8964b8651167077ca8c2900b9d2e1d111340fc90ea93e9f3cd2f611e032f6ce74915cbed2c3f9090ec2d00586d77a81cc9812f366629d3eda993fa20203f6b79fb0b98d7c194b65035c0b412587059c71e8f00d1e2724d5d3d7b82af139889bebf86ada3977a574b93c429faa019f6f61b874baab03c881f654c86843bc0d0453f4fa972935b5b5090662759d9684ea1fe8999ad1067bb2e4b918ba02d1fc306024ecb85a35d26c876b163128165ac4d4ffe853bbed25d7f2c21e941e3f206d6ebca1db53b298b0b64413d3e11ed5f9ecf64004e6c2f9db27881f7688c0cfa76591e9e9bd0eee9e8b0aa8e9bc49083095d99c8d5cae32825deecf759c9c7cb273c507c92ae489d8e0c299f3205cedbaf9db563336fd5f7a746ea607f7d68e94bf12e07bc373494c7ac1103609e96c53335d2edce05564ba04791018e88a3e9e939182ebf218ca23d500d85899b34f5b5fc74c3bd4cf3c82a788c63261ad469d56c9c68e48eb1a0b06ac438ffbcbe125ab7d313d5ff9a3aa2ff6d092bc21c9ee47796fe2c71ba932ff46a048fb177b8aa3cc0933e171737000c49780b274279a17f7d69009762a8ac90e07528f3c50783a7d1b980f7e93bba551aaff5e34bebf220f3e3b29117593b757a869ec93bce17667c28cc4f83b91080a84dd6469a75be5a64b18d25e5c8bdc361ed647449e817c59cc967fb9329cc4ffd6adde81e2a539d8b49eabe99371e1fc7fbe206896a2a4336a946389b59754bb5f1d3e64d472b9555db87eeec32726194e1efce55648ade653dcadb63f1a1a1fe0c2f3573942e375a77873230061f19b5f8b577c9c43c5e1d0fa0dc0e36416f3562e9e35af7c05bd82cad9195e505cc1abb06c9b6a8825a4be7400b07b635355de934d8fb448bafa7579e74152df8b472346a65de0d77bf92675064183634529a51b7d6831b15541e50f2614b8e6a8015637e961532f744ecdd1ad021bc427f1d622a913c8687e93db173dde5fbc725b3cd0c7a81765ab8147eb5fafd632ac0bdc3ba92e16b66f622c69c87be85e849c97ea38adb1c320c32722d1449ff48453745f372d30ab2dbc10d4f7031a21bf39dc932bb63ea762e738af63a86b0526d411aa89846b6f5e1ca0477ba5ca6af3eb620747a9bf38cdbdbf62f3f9251a4614d48c7df48c91de2c0e0db3bb70a7749bee6cde12881366353c5ce9f03f83fece9f18d241fbcde03774af0b25256f3834a25fb31c2c8f34b19bf4fc264222ee21c38ab0e08da64e2bd72cff0cf1c4ccef7db94f2e3d3decb34b6f6b00fab1d09aaf26e0e4230dec4d83f57daf24f487ce242082649c6e78d5213a1608e8f2d06f5ea7f189e559ca7192fb1d399678a8f733f64c8e687041deb841cc4faf14b63ad3e627ffce607b2f75d347748f01fbb7f62727b7823a31034f296887c35b809d7a5219fb23c069ea8841b376cbaa7c89b580aa182a88cf86ec9bbd6612987e49909a40c53e6377ccdcc545a15b3a700991ea82796f2a84fa44c1d054cb7860d8779bab9305208f08d398767993876ecd6e64246fc5857f0ffeae2169b5ca4359746bc1660f3876e69f0daa9b2133415f913dab802fe878da3b2e9e5415eb2026fcbc57f05485f674b13ca2cf9386cd34e099868b852de8b000fae4cacf9c62d2b3fd61210d2847f84be43560400903ce1a2f613b5e464ee682168365f760dedc1b7bbd6c4f6fa078a5a749149473a6ae52e1cfdd3b275bec2cc4e8fa44b174f35a3d7684f4a674c81634e9f079a6bea2dba7fdb7899940ef7dfac7005e94c2a3d51749ad39131afc81833d9bef1f8f2dab58cd27a79d03e230238f74182f4f1859b7d947b2934ea35cd2581fea57fa1cc5621de769f51d306b843f62f7f600b908d2128a3c43946c870e02089601879713161a5eb2a7baefa94333b94f313bdb2914d94a8b6311b74aca71316902c9aea29eb3cd00156f7f211c599b7a189cc9cabb62038c0b6b806f05f5db4a6bc025ec2f84730c761f78f4fce8a5a23e1c387988ca49fb89a7c7352847a9333e4e052d91a9fd52efaba6cf717690977cf2400a77c596f5051cb9147d9ad7d49a7dc961aae6332dd0bdd6daa1ec407e6ffd9891f22f514e23abafd8a06bf254e347ab6bfd7efd924fde494fa47dc40cf6565b691ee0cfb1112a522e0fbcc54892e4c355806088765694a006797568ed26dc1ef77ec0766e9ffa51b39fc0aeb5fd718da76ce502eab72ef2e67d557e9c067c5af1ec53f7ca139335f17fc6e98caacca4c9bae7731f9e108c94255f242e12af26c92d47e6cb4ace32bfcec912297a84bcf1cad50f7301c102fb1fee7bcf28c8ddb335cbfb01e33e7d2e3c56484570b1c872b572d357112776d3bc7a80de9eac382a2c749cfb484b7a2672191a7a987a4ecd3d64f103fbd3e204b58b993f3c805105f5243e961fcf886037589c80036075c4cfdfa719dfb433389d184560af082d895298964531e1d0aee91dc098dbba66b6a67c3170c1f311e3f2b205f1af74c80f17411fa175af05b280199516fb19fdaa038dbc328ad5899b8355e2fa22fb29ff6edf8eff0f64d13d3261d5fcbd80d0c541650519388a59e232b900cf3c28bbfab3642862ba3182240e0223cd28173e58d6f0486c9a5486e781add8e6f96e48e6177a768d0d2fd524c1307c113d87c9a910258a66a409adcdbcf98f7dfa50f345219bba90b3da70706f316056ff95b86365dca05129dfb1d9b2f9e732b398d895e02685122ab98ae85a39c8e4bcc707aefb022dc3c8abd5f62d140fe7c39a27a2a9dbe8d40246f36950ba6f9d889e9030496b35cba6816f1741f4c6cb5a16e0992e82d576c490be225cfaeb6376e71371d2deb293cf02be50a28b178b9d4f592972af0e2f8d3c059597263a9bacf815b3e705bd01cd189051715abd0f1adb435e7352b5168bedd93718a6935b3b42fc6460f769ca840c9f7ecefa10c73139f8ae476ca81a73548acec38af1a8be67bc90fcc438c04a5badcf4b4838e67b9f5a1b8d3ca27e582aae9bfe713a25d8c725b56cd18bd0f95f46cfbdfd112b08783b7bbd5ff3fd7e1e4fc1f4252958a1e0a3c2990774ceb3474e24644a109143bd4e73b3f41179c7d68e54b4ccb6fd51d146a1c5bdc3b21449d067c7e16b1fccf19f5bd35b5afda0861bbc23f2cb779d81190dcc7cd72c7e271566aea679bc735820017c4f70410deccd8c40d4692adbf78a663a4a73b5029e1d419c93d8314bfcaba5addfeed1a7408849d83d710bcae62e0e28a3d851574572518499e39084bf28bbb8e66bbe258cfbaae0b62deb03a17aaea06e794d324882486d5a12ee1578a6c022ba6c2e191dde1c304bb458413d11b97e589b35466e477c0656b21c39b103cca4cc7b8c90c5fa355af541956596201f31a9adc2cf55d354a8df8872a3aeb851e9f47b1ce82d56bf8d0bdeae6342bcfa587420d43404bae9c18f3487762d6e28682d6e4e1326423081c348750adac58db8d7338ecbc0cb6cc2d600297b018e833fa1364e4eeb90f24a643d5fb3da193193658a8d2a91d6f257b1466477926f263a68eeacc1a60f1283890421a369fcc04d0db13200ac431a2fd68539a9a18e2b76223e17db189dc94ec4b5ba1997e6db902e30f95a354dff32ced91e9180413c5a4743ad0e6e2d24eee8dd4c3fa704d866aa1b9beb55e7871c9d9a6f963910dd763d0e416ba2274603254ff804049e7ea8f7674590a7c8b1806a39b4e36a4b66ee53ef29186687f018cf1d08d4e0b4ad4b2cb78dfbf5ca381223515ae63eaca81001bbe37e8069dbdcd5d7f61f805622be0d5cefd42dea733f76dba0e826b488e1b8d8b373fcb8d5409c4e73bdd11617b127d832bb0932661645034e851149d350a29e9352a56cfe0af6bd43153b0936188649a815e6aec46565485e046dacbaa4e6b6b909dce96980679556f0f6387dc097116f7f4cf791a5fe47e286e7030cffb6180b897e243234ef8419de96cd3c1e38810e763cc58eaf080258b7f39f1b52d175f8a9074c231d7428b41e8e244e57114186899e81290042ba3b422fde215de1fff3110069726cf49e06c456e43e503e4569006c8ee675599c3591a56578159ca790cca7dc29d0beac028b619660d5944361e91b121f3991fcdd403d2ace07ed8b5ef9038e357601bc67491cf6ed9dc20522ed0fc1e4516341a4391f3009ae395f4e889c41f35f729e5c515161365059ac057b8f5c516947171c234649eb29f37d390a4b419d263bf634ab884f8cdf739f701459af72f30203a053534cba8d492caba5c53a7a0913ce01f7bb8664b0ebef5febcf93dd5ac31647ce8c7112047fb2937e7ddf074c52bf32a6e4336c08e0327f8d8964a0e7fe3f12a4e29e866bd8eeb3794867d41c2984b1945cf0eb51276344ffee1a82f3cd3eadbbe969d24d71ab5ccacf6d884e2dd83a58c83f5e8121ab7718b292ee10f51b56ec56b12906c1d8ab84c5c1fb1ceaeb30ddd97339571b46d0235b69f0eb67a207a3f126d7f00820470c146821973306ccc06ff20cbcc1ce7adb357278023953056a23f77b0d80be58ab9b1466528f4f23168ea2e50086ba35bf01071fbb76e54127e2b5950f35d4b351b66d7aee8502dac439973f074208c052562ef3be400850755849a9a1403169709a1573b9a483cf3078040b76db045c26bd61954e56c1671036992a82b78de42720ca3660578266d7155d89efa89beafe463396c05c186835daa0d1509853ae7d9979cab3658d6987b3800b3d3c96e6989fbd34ada2c11a5e86bad77cfa9ae96d34c06444d5a5daff55ae1c38d95d69f522de04cfc26bd200d44e494000e78d6aed7ce33e871342920b68351617a29817f2c3edfd1578523c9fc66436dfcf86993bc86983c8600a4327f90b00fb79f50372cdd265bc034d2835b7a2a7f45b1754c1386b396979eca88331fe2a91a5042722e35736df804a482c64585eeb371d472e874d1aa215e69581dfe85b1cb55848995cf21b720065d51fa62579f51fdcfbb8c6889291fae6010f16b21d3551b9f3e3997ade32c54204422157ea6e2f5f9bc557c98202c31ff6d45401b156cfa7d28ca44e10c115eab7e4246b9b70c2cf8f460a49cc22bf1bdcbf3bd14aa48d13dee96fb92180f8bbf1efa7b7d14a2a249505f4a31443d25fecbeafdc7ccb4495f75490aecf37499b75b0911673e3f1463c6f4c2c8e1fa3f252db9ca8a3d60e7bb5e50d9a61b81e29fc0967ee3e64c96c64c2e528752130db216db21cee84cba18be54cfd4d050fb46d14695e658ca8320ef2f6181e7a40f833198be2731563373c321eaaabff3ebfe09bbe4dabb339abe0689b30889425761bc8425f55e9c189a84aa8351e2882cf94d3764dd9b3ccbf379622990799d414c4d7d10b55d7edb5481509e73845d4603c61cb3716f8fdf4747d499fbd67a90d91b7c51bfec9203728c753b74b29b1c3f7694154f9f5d36e31c2f0d9cb4aadbe33abc04e5fb848843949e475090ebd37f48399a941c46fb63fae10a95da182a0b385664548d4a566e79b1766f9237491dadcb4b0dcdbbb2f38b0535f40bed317451df560131630f9e856b6015d2819a809424e993a23fc4dbf141a61d7d470eeacac34edd413cc154f5c326c01d6209ae7d9ba375fd1be74130e3dd292db1ca25ddbc52bb0d163b6e023048579868fe8df3cee300b7cc74ea173a6381cd44dbe3fa282733e91c5f7b2ddbc785b7264704d24602f0694bd3ceab716705c38d08db4fc342199dfc3898e36ccc2e0e305aa8f87bc392c7e90d92f85bef8964a389cc4f02b3582266545252e3cdf3b468bd63b3234cfed942fe43735f00cab561bcb77ef7a05cd22aa4801dc34e1c77338e0cbc0d697fc8ceb805e79f2aba27010965c136c85baf6fbe098ae3caec44579d3f6da4cd6f820fda46ce94408b6d2258563d47aa71cb7743c8721ddf205709489738d88c23ff43a3a666579429636939b836b8f40f6637a5819a16d53462013220715c9bd0cccc4ed94d138682af77b15338a2a71c4bd9a06b75eb8b337c63056ed0986af7706c001030084428c12b20a3b3c41320d29f61e2a986ef568045da106aaff9eb49dda81a644e4a97dbbf8915621eb15185c57e11e98e44d9adeed89503f669dee6428ba33e031015c81ff55d79788e47d87f739c592f58e66f2a8e64cae0d8db1205a744e234373150d6cc6aea9a919c589085c52d17f9f5c3a757a7421475628e29591d1ee34c0babf0e6eb290ab30873c88547bcfe5cc8fef5e28ef6f6ed1e2beee137ffb5d36a3af3d10e8c19ad1671f5d1e60399662e4a9dd1812c9b82c403f93b53248e4e9672126cdbe99500bbeac3fdd0dfa3d9d58120623097de373dd5d20c32660ab265edb7ee3290530adbe1716be1220f941bd11f4dc6b9de56499a88e88202f4199429d00b8b2b226e6639e70e18ade32ea257c41dfbc735ec7b707b4802333a6e2e8437eb7157061963b657e61a1a54c52f099684be8c80e0d9feb2f1f88c4f06bcd88505d45ee181b09af2f488913450ab30924cfe45708dbd64fd371b9b22dbbc2a62b2acbc74b4f36f881c29cfedf6943c83ace499dcafe17f844f26053958acd9736d22ce75f87333e0952672fab6a938c8c6e87d5f67364c72dba93a78065ea61307bd6ea5f088815fed6d8c6db32987e564316001ad2d754900dcd40e66d3f26929f473b5b071e821ca5175e46716d6ceadd12a9177e04fd1a92326c43e9889526e60736881b0a28d4e3118e97238e2f5e8f62232928572e4080f51f35025d9275b37d866dd8ae0d0f80184a25cf166133ec940ddc1c3b792708e92d46f510f459131dfce261fb9070db623b024ecc7d9076e16d6b9db1ef101522c5600f08919656da623f5ac5be1cf687728f9a2a306a48df5e0b199bc1f0aa6441ef3893edf84c0e10bac81ef602a17e637ffb2beaa049ca27c844b6943e7048040ee8650dc7d29f52d0368f1c705be315e5592e70eb7aa63e9dbb9765a1287d5cd383995ab5019069be1440f2f99beef6a93c159ba952bd4677968392edea1dd35f06e6461b17495d8047f9c13ef85aa17ef22e371a0cdd75604044813bba19f87bb48916e3c8f8fd8198e4d534298a998e350187da1de6c4675e9c30b2b0764b8fcc55b7ceccfce50fcb2d1f43cbc1ce4c1cc6df0bacceeea8cf2864e7c704443631c479fa4acaf3ff9a7d1aec1131f2952bb327aa785fb137f6a876ee02745b6c38963e244d0a15985c4a8cfc5a2dd31f7c36df7e29038930695bf55103b67f4b6001cc84b0a7a7690fc44a1f2330a8b47189b74b4c123996a99aa4d0a3b7fd9b70f3fc01a7896f26475dcf9054c6d224e2a8ef3d907d0051dbde83183a73855f726ef0a4475d47ae162db52f940313a7f4e7a7d83bc3cc84e4db484b17a1b5a500cb2814eec77580bbff70658d9aa5e1f1cde8789989684bc8be3e3ceab704101432af5843d042d13a33f013845dbb68d50af547a88e71e86bb5d1ac0ef8df66c449e9e5dc32e623e5a8705f6fd5792357100e684ee0aaa5be3b8176aa9a3d15c8b29875ca95f2ac193d3098997f4f426b6e94b2766e95cc1a311d1a63b199b03c9484058e02e41924ba3f8c3dc49f0fce2cd4e2fc27972a2e95af649044f729f1f2cebcc3a52774cef04c3895999583667c9c1e3a7437c89c46242c4e146895bb3f0cc0344c5f4139844fe8bbe51b11e062bc7f0e54650b4fcb29a34ceb2b96b8e623fa4830bb62670acafffe15b1f3f556975990ed8eb97a0f7a50c7091067d322a8dea4635ebb31f5964db21de71093211a1cfe23d7fc7a3893955a6465081080197efd2116490bbe820c0c2b02624d2ef3c9dab366a2806d8fc43aa3e82c605b55ded3aadd6b375351be00656cd454501d57c1baa5ae97122a47f7522dedddd52d7b1a694588bbdbf7dd02737154d5a1bac58be1e09c2c4d93b124a8e606735bb8466808cd141147f987b092663ef9a20cc9dfee9ec759638a36e8aa8238e3709d7b205436c7a16a6ce2e335e1958ab945fba7a9f401cfcd49866b1141202bd7c2edd6f3b41eda0058f1b5c87b1e3e3e576308ce06e3857fb994cb102adcaa3d31ab922df81e635fcdb2a23854c4d9188be20338077b86419d67a964ecd496ba27a4b32c06b4e94bd505e4ddc391a9ea6791607e8babf93f738be773a43779e582d1bedb1a0497db485741fe1c951babecdff68aa8b6fd011bf13869e178e35f6dbd4d9fe42a4671bab1de70e4ef56ad117f22c2fc80f0055e9955fb3e9c3968e3154032412cf73085488f70f96193297c811cf0dad1a74f8a2508fefe3e874a8d5a49ed44deddeffcfc0f2f2ea5ba9284cedbefb91155997ce7b1087fbd5e778a09911814d34f571c9469efa6cb05168c9ee74b95295138298fa40708c8a12babd10e31bfd3798086c0f6d13d84488c7e8abd94d9c5c16d0155a351f3de73ccc76d00a47ca6169f42b99aed9a10ced8a875266f7578b3d782e2481743db7df8a080285db4a1fe37601fb9467ade0262a540073d05916ea2df4bd8513a76b0615160601491cd5140a0bbfd004c16e900372e4233d58627dc80178e2c878e6eafe9277700efc3b38bd6c8f1d1d5066674e652d5751510292579ab766352007f332ccb773e8cc111a778532d40d41bea7b8ed2c4590afe43c3616538fce95998da9672b2931728c3866e22bc3321fe9e41eff7f58733be19a6230242afb41c3ba4b76a32eedf82777e6165e0133c2ca01cd4043bb82c6f6721b4ff06d43c05aa327a093676e2ccc22fb46670d59c878f0f2d27db8fd704180482bf2a9adae8baaf65cd95bd9a6de32133fdfbfee3d088b3a73d0e2f083e2b11e839e51467e652d35eef212c8484718f316b0d087933d3bbbe4aefc272a5bf99d9162493a75e47e93b9f43b302c84fef5460da001ab04d502dbf8c64a9827e071ba617048fd6be8acfa9e51d50d2cfaf3dadfa8acec42f8099c76bda6aae926d09fe4df0064fc8a50240f135bd79d60d5c9227d9ba1d2112338bf586198b3f2c5420e1cbf4e38190268319c1250b7531eb5c795123b0f26609a8eade9c8a97c1518264be162db02657bf0f9ca4e062acb592ed3bba73c7fd193a7e5e208f793163a6208ec468bb15e7f5cd48b43cd5fc45f02425e071b45a693aef527573942e02be21cf03dfb54b8db8469e0266163bb3e06dc7fadac61ad1a3f68a1ad1fb7125a9c4b1c201e462738ead64609e8cbc1d13858d52ee3f85690300663937f6eab44d4d803f8a95b8dc5c81e934140a0e57f508538f8f21593642084bac16a2e38fda789acb2ce6ef0bacf35bbaf6af168a2babf255d0800cf8ccc2262e1d12e68b1d6a2c56e461f93ebe2db041a74673dc9596666d5c87f3cc574d68c5de9e0a9b8c5c2011b8eb39a74081d2b47ad428ddb15dc9d2dbcf772612e30c956099e415a5d23a19b2c1e2f10937fe3e57ca25a6f8af8be1fead239e350a41e076a942b276b064b2ded52333d1095f0c451f54f56d05d713fcc340d86d43cc8f041caa97e78831abf0e5d3fc54f239e98ed6ad361bc969727dddeba799f83a1c054a8183027dd3c0c17e3d051fde32edfe9791d8016c8c1cb01bd25c21f38938a417f0dbfe782e6eb1578a73d9596adc5e5eb8a01a4445e9c17e8d7d4cb968ef8d3311014af27a9cdfd1bb7ce9c18b367d23f02331d4055edf41e7ca2f14453bdb3cac635a1b82b3109dbde0a21779a8468ae477e0acf2e442e7d8b7b573a22062cfc566f6aee23e741b633bb4a9001701c33ade9bbf6b0bac7f292fe482ef88a474d2819cde460100e0a2fd7bcd6eaf43813b4f24fadbccbacb9dabb50c61f2cfb9fe9f2d32577f5212c39f435a4f2b34ddc28f2cdd24ec1af7e5ea51551ca2fbe1c63f219fcb684d2e4fb2d44f617dc4d1336ef3df2a22ee1abf928d145a8965e9c28dafa9860816891957743bef5cbed315ef84bb167203718b1d8d778c4bafb01b349b16176662715df51b701728b4bb3204bd0271d5b4cc714aef0a11bd0647c671fc6a3543004fe960521f9b2403de87ae1929804ebe23f574809046c4dec9f6b3d65e23e445e518b558ff1d96eb55763dc7336326670aba2a45ec6a6887f14994bda7ee91b4bf156f94b5f12218af429938f7433d06b23bfc8bf6053721af84ccd0e1b9a22969cf168a34cfa129e5f053e93e687915f25eb9cbf7e3d65652f16642962ddaa246f81ebb055dec9e478f550d5c89b6b98ebf9bd19a7ec43ac7d25292ee452a8a69b589d7eeb6de77428e43ca83e1c96af2e2a6a33135a0b5bf0cb27636400df84779901d14cb6347925a8e53e19767914d88afa4144fc73656241503bccc128366b0fea1a80f0362c7079326b99b97eea4a82aa1c76ddd44738e681778cfd1f7c242301e09530c379bce9c7e16e164a35f352c0bc4d1850dd93af9d146397477915f946a0ac7d0cb671452dcfc3c92293e0a6702f73fbc418e99971ba138ef175512e6094abbe1efbf57203a2d045da4b0d8f08e62af9c7c50e98a03559499382dc6f64289678abd154451e34245726d4b6853290604f786199fcefc8ecc88cc8883a75fbdc138b538c96f8999bf900d669105993e5176482b3a9c37ee37847d9c425720f5bbb0b68569e06d68975f9270b79d7c8148ca9cf42a18172df65394d951c60ad4106a589ebe6dc465cfe6ce1989f34387ffee9dcb4f5c24eaebb10be6eb51603964f63b05466f10f262408b026324d2fe253e7b982f0c3c2c38456f349b3081f0b1c5e7b731a15191ea811b353baeb69297233d6a8c7dd19a396e238209b5966be8eeb1115b98f0bdda33279493b9644dc48aac87b320fe1650484786cac77abc33c6f1483a529971151705b5b647062e73e24af44c2675136294d52dfcb4e52c22950064a5ec863a048d3c697c0c1d0362b0670f23964a7fbf447211d49074f48bc40a460c803864c262c68fcca13f2b74c2d9a3d03919ee684e4085fd8c71a6c033221e81840d7f6e195ea931ce0633eb0bf3f5600e035338b1e973221dceb1c46b3e25424a530baa1cdd8e9468043245b724a142de7469a81f86539006defe6f139615838c60a17fea39c3804c36cbd40ac3fe105c384990ce21ab9ec94ef41134320985370496df378a172c31a2adfc95ed93adfc4778c10b65ad02e7f8ccfc81fc3b754a927ebc013a4316d4fd15ffa456a72e7530f2012971fc2083a51e7d76823c75d7a1a4074b1c29830552b4ec34130b1150d07cdf7d2e5f29147192aceb8799b181a6bb99312fcd9054e565b202f14563d1b8b02c85027e198ff0cc9aa39ab11e3d6e384f0418b100bb78bfa88b375cdafd0611fa01feeac21215b66c2be70864f62377991aac23f3ed1420f20252c810dba13cf7a47dcce131f990454d18be16a0775b70974d452bd5696686d33f524346ccbb4d76178073969536e0f0018fe455128de1d9c40b2174eddcb92009ad516c360e24e17e518e4d140cc40cd959c25df6238825b8760a4e588ea7a0a9dae18c59c7cd26c88925ec0201a21c233a4fc74e3b3bdfaedb4ec6426f88c183d45927c622edb768ad679ee29a36bdcee98105eae1b23ce9d98ea8a0be034faf9ef4a5bcade5c48af838d319e83ef64018aceb1851e8f8303fd9068f7f01c7ff2f55fa494b9cef6b3c22c8de08663f8858590fba745073b4e64c33336aae47b98fc15ee16efcb10e47f77c1979324b266c6c6ed73ecd919503f62f7b810bef1d18758e16d77f1355560d68dedd3ca5faf75434bf187a3331d02dd9d4e9db6ca7ec5bfb7c52a4c8a1d814196c776adf15e037f1a578d8fb8d49f40e719608b501635bdde08b5fc958b0de30fcbdbfc2a8f8b75ea57d8020cd4c3667c688e933e5b7d0103596c5ccf4bca19d224402a430a961502a0e8f8063702149380c44a2889f1ced0ce2c9efa53e5d4871bbef983666d38d30c9dc869414a1dc3396b961e7254048a7581cb30358b355390f9c6bd8a31a1a1a963398d270defb06c8b8f0ae731b36add020f2a05ee338f0d568e18166384f3e9f6044d93eddd7d8089b02cfb78572912041d26e3c6bdc2608f5089f8e49ecafe500f76fdd2883d90455f1670859bcf4ca1912ee3ef14138b09a27848eabd23b267c5510156dc33f7699e518055d5b9a9fcf41f5114789f43d3a9e931c6955b3eeefdea95be063dff24fee6b6dcca5ef28de87701ffb1fceca2d60cd56ca102a50e396f282caf7eccbc915c0c90cbef82d46c836655096550a4a78484a9a0d7fe8f7f9bdae3ccd28a8efc8aeae308eedf023d3cf9783c19d3429d61a5c299d4517dcd2715f29ecce8d48a25fb1acffd695de3ffa8772b958c5b96f08e90647461e25645f57ab6962a9708fc1f05ba8b7acf7a795ff6b5eff5998eeaf0adc25209d9bdb288108068c425967d528c710ca57324b4e5f82fcf7831a8b1fe73c1f7c0fa710313d75f59acb7040c0c8acdbab28f24d0fdaee1a0802f3c11eb5e16492b5d5116d6ee365d003d314b27a9c4ee4bdb350df82562bbfecbd954e94d1467440a1e9f9918d4a62cd44a2dfbcd8c2bfe83a0bdd7984bad3d68bd7d9bb68f95a93468ec2eceaa4c2625beb78c26d0b24435bd94b5f998d66aa8fbcfbdfed4f86047dec012c6f1c41612c99f7a2504ed5f90cc6821501970498e77c62552d6769cf7fb570818e4c88c0ebc42ae14d818b39d6a503bf74fdbfa6432756e602c0e3277b287828b0044c4ef23e56eb7c2cad249db8e127fed602011b65afaeec5a43a92b0e064325d7a55d37db4454010709f25cfc6a470e1c6676eb63fb69a5aad3f68b0ff7a0327ec3bfd28fc3323632a715e595d23c8d2dd0af6f40c21d3c5a6de5334fe21409163a5449f340eddab92ddc24b36fc365c19a9e4221dd4d6dc8d961b2c2e067daf5481f72df741a295cde88a6bb07ef4a0a08aa6ef585f70ed673dd6720aaffdfb5d475f56224f027ea82006f32f09031507756b8c84a2b3b2891a30a6f973dc3e072bf3d50d9d16c3b20213dcdd674e76835452ba3fa210617a27bc5a18712e4e021ce9c47526b3b30ab905ec4fc38b540337e69681a98cdd8012ad4a55704ab2931df506471547d5cd9ccd99cec10f6475cc01e27d568ebfe848662bf9460fc1c9ec929a0257a5723d69e446de96ddf6cab0925c588e437a0c001e21560a169421b891b72605b882772f0f2bf602b1c7a2d0302aafe393beb79e10e6eca40e268e112f7df25c9577fa79d8ba6b8dccac9c7db4c4805a12dfa00f09fdb4a35c015929e5b08f13bea1ba6412dfb204c2c3366f3dd074387b4f11f2766ae71bf2bc7e45edd1fe46ad7154ec1760d0a4d9615c9ec9f4229a697911fe04a267a21b35e2c31b5efb71e4a51566b486ad0f76d927c0034d3baea76f3759c0548273661477398bba0b0219b6eb9383af75966e3a4c12b4666d67bad02ead8225f1c71d9bd7b36cb52b419c3e87c912db67fd315ff67b15f0a0fd10c5eef26f37736b82b3e2c7b5b77cad942e3e3995a58fab51e71368ee4eecf62bc4869cbef588af0a578d1c44e8d6c697a01707e0ace1e966a1974749d01673d62b90d31fe1bc329d4ee13c68b97bc5ea62fc230f83423ebdeaa404a0cb77c881421456e6c96f6bc7e7ed4ec72f42698b3c0bb742c6b61de52293f4f61b5aa9128bdc80a5c3126b28abf9637f2ea694f9e555a9d5df918c12bd2dc364a8338ae5204687bf9339a84d9b2a6aa8a2ae5daf4802b2be2952b0eaa12d842d7251c11a2e4eb6a3e07a98686c35bcf1d6cfbb60ff31c313d5f3c1282cb04ab4f8dc60dbe333c4e143e085c3a070b21d5abc4e075932f624646f1d7a9c688348aff750001fee257642bf356024729e1e289a2a4da0cae67def1f83822d56bb2fc4e90b83bccff9f179da568d128b92bd4e1ff27ff916dde90dbb0856e762d187e24c2d0171f160952ea9d71c46b1491aada91d33edde36e1b9db7d05941979ccd3542d6b6e51689891dc00b2ae4bd6205cb8a23254202b1945e4c5a3080814863afdf77ae2dd778badfb67a8d7f11c187b1f144d81eb75469e30e8305e2620346727d374a5939856771ca81c0d462f8865c2b2428f15538a9deb40d8fc846eff2c7e26924423d345e6b13cf4389b8ff4096e29748bb8b29d8d50259131dfb4adb3e651b2c2e482b1b8d91a046847c2e52bd5d4923be70a9b19bccf3f9981b95124a2f807fee5d55049682a2acbb4e8a8175a2348958c422370330a9757b27b29905a99e092f7dbe4480361e332ec6e309f4ca4e75645ab57e5b28958efc4d612aa4bcbb76ee6e017bc1da978d9ebfe2e06b722166083844beff930b4518950661d3bd44c5534b2055a0335826501481fc67462fa077c5763d283caa148f628b53819e6b7a4da5a5dbba66fd634c138531cf93bf30eea4a3909c7271d0d641bf9b54d42a591afc02c3d80cec94ae3bf434579a3aa2daff97eb9185e29ac26d429b95970527499e84975904cbf86512766c87ca25da2d1ec3e802b4009919cc6738f1dd4d2bd6f937875fc94b62a64796889d1a20a91fb3676fd75820469392f07f4fe538d0fcee6e17677f41319e79f36e6aaf17a328dcdc508d2cc0afa1aaabb08c97f772865e83e0c8940fe1fbdb8cbb7426600636872edc548f8af61da0d81126852df2c0ced9d514834fde0a122c8731b883c73cf2938e343837ce0865f48eb93110021fab5fb789d9235b4f2da4747db780e1b2866417cfe418f1e2aa12b84a57e1c42e681d9ef091b07dd3e28053ad85a4ff5c4ca532f33ef3d33907226f89429ac6f1974929afefd81e5507077ddbb866d195a0e780babf2ff1b792d69fa74cf75eaaf45dc2c53bca84a5b7a2e3c20659f9279e709130ea5a6eda1c399aeeb4c1a7cf604808837523dbc256b41eccb20b359021d383951d45be45bc3d2af83a15980df6f17ab7b9537fee7ba7161d9e6b17f0fdf6aa2383b7a31f0bf8642d975f38df8345b6136a8f8fdbf3c83a2d2c6d6490979f742942a14ea55b3f7822707ecf542e98389fb3a8b44a17cf1e206c50be5cf727873b5e36c5c7b46bc3655764632f1f8ee7ec2cc5ab0bd406db1bf73c64a887a01ee1770dc5556ec8d836a54ab5b95624f6795ebed94e8d3a8759aad5bc6acd713911a9cca28dc35d19342caec8ede28ac8948292e212b5f790f786c6a6b4f22f465145d05b00e8edf7dd88af6fd46ccfe92011dfc86909af3b6d3b97295c4e471a190cd2d9313826bebb82b4ab5e64133904097aa9867e5bdf0c26800e99a1a96d3ff826abd07c0fb5ecadb26537ca3aab6d952e9f82409e58c20a56921754b86757c01bd73a4d1aad1fed41ee1744cb16a26896796a7b034b5e3b882bd68148e965748af4ff04e598a852c14cb7b7f35a356f9a37b2590f7d4761c2590b27c4f529236fc7590f2449b2c8e737ebe04a40ce81ee50d39949cc809059787bcd373205efbbd3f0d017c064662b7358cf4c8934f666b85d82bc6ab3149bc75d3ee7490f5c3c3670380ba5ee1f7d31dc4528dc4c6cd84c71ea778c6c5e911b132f2425258c6473b3c73d8d37e1444293eb7764e721c6e6fbe4727abe14e4416bc5cf7c47a408af0aed882d519902b47b550034a41b9b37477216ff8267eb468395c055327c2b9fef2e5d4630ba2f09d27a0dd6f84c89edcaefbd670003dabe5d83fc48771b22a751c7a25fa374abc4e822d79f3e97156548cd99374e034c6ccfea80e957042dbb38effd5eb0db07b948d2cc63ae4789668c0b70756fe0ea7f90968d226f068f56197c3a6125d46be6d35b967800d62492e25630c07f37949f8f104bcf1c58e1a9e6adbb03c17a23048d21fd3de20df305cc71572b9aa7c661a7cec5c4bbc6ee91d637d0b66cb4123e9cba1755d73d8c56740977a7d3d8c2e6c2cd4e5968e4992db211c907242e876b474de6f2159659d8a57a485c1b2a28172feb10c44f973e9d194376868bbc0b9a6c2215b0f9da9b7f22534a6d65e4fafe87599f859dae5ba7ea6fb3dbc3bc02a86281482a59e3a5571b80451a68d3a312e9a1fe7b4b71507d7acfeeac4e352ec22d74608337a01143430f745d32ee264b5538a07df563fb37dc9920420820fec13bb8a7dbc7b5a78eb5b1251f52b9c91ddf27e10de4ce0b0ccdc461dc5513ae3fb96bd8cdbf4bcff2c5be1139184f4148dc0f537dab56b9b82c11dfe6f87166e464d19bc1589f04a684cae493ab4903359d5638cd2b21e5495a791ad2b2015a05bf2380b423ae2ce9bb3d4bad6679041b3a638b680fba75ef75f135e27d2757de0d344e82ff5cfb74bff93e9a4d9bb61924815a557714962e4827860e5a5794b5fe7a2daf8acfc85eab8cadc5ec4de49a03631356ef04085edf4d798b31d12bec75f4efb433797eeeefe1b8251ff573ddf5f1639a346a250b4ecfde1691db276dad230658c9335d4598850c2df4086cc746351f1b6c3a79e787763c2e7ef42f5ab833a4c0351dcc3e0f41908284183fb909b5ea9d01a4f02f6af425a53eb5d084e1ce0fe7f4dfc799ac7d6cf38789dfd35d96b08ea8f82dfb67073b97d681bfbf7eeee93f83472885b3e73df1da2133319b4b7a809bb14da43c8df018a081b6299c698e9641c9ed7b50e9827913720ceb498abd004fb0104477c1268ee2f90de7446ae5b25d757e5e4682eee203bc2a5e0c2c18f295454f4f929b0f5f5eb6d0c17b7c0030fbb02e2688ed9f225423ead2870930e3d0a528fe03e2d14cb9a736616d344d9394e2250a79e33478105ab59df478962d2576e19049f23aa047190bed47597627ee576db65c2efbb055b93114011725972bb8f15d9ab17d610202f8f6a0b1f1242774545475b77c9d95fba4993f72804d8e4a25a4340867e5b1ce072f3a74f42414b50d00afa3ac4cbd9cc4e7c7070288f846638b96d6494afa49630208f307b2b534c9408e6469d5ca4b99152ff0289cbb48b3eb344f556c3ed2e7b39bb4f3b10425f41a86d9b55ee0ba1a49da5919c6394f7a905ef1d38e08165459521f90bcc1f1820f25fb892fe9b95d07fcb397bbadee9778d650fe7a65a1d65111b73bc276ad07522d75171d4aa877207add4f11eaafe40dcb012c6aff87f68fdc4cbd97f86a843f7be110a13b6af65d390c5c7d37f75fa67cb9e28e9deeb7941dac82757c40f6197c15a3726f6245d2d11483055ade5aeb68d0f9fdada06210c2f87aadd119f258dddaa985430603120358caf0829da5f83abd1c8a3dec5c761598b78216374befbb8d310f65cd1c1adbf87f92d89bb25e11de059c63f0d6c791a29c55226516ede9bee8d8fe0f4419ff6c4b18adc3b431731cd467fa950a10eabab0fc15a9050b781495d3ba6b31b3d07baa5c07bccc064b475e9eb100fb47d55b961a5160472273ef12486bd0c633a83b7a0f7dd9c429019bbc12f38f231b400901324ec48bea9757c2a1d27d8319e4d6fcb37e31dd0781096407eade8df4af586760d9dd879eb6dd3d86437606662714c8b174c59ffb7ddddfc2fca1a557b4f2eaf5ffbdd6a7f81b541a77d5012573745578ae33f5f2571326e538cc5fad1bbe4c653981664fe90d1047f8b24910bb27e5f415721e8f86ec06a1abfdb3bbab9b7f16c03effa1923275fcebe652e267323cf1bf212bd3a01ca9597e3793866200773b45eea75ac665db519accccc8deb370f1fda4db69b995eb4f2b4ade258932554d083d90e01fe9e019ef0c41e5acc3ad71c497583fd61acc1d979b988fa2808df57b5be7cc4a77724e1e3abc0cd348f5553162c84e79f02adec4f3a30be4361c474669b69c13c21f4b6869f4107bd16752eb3e592d0e3cf31b1d9a144265bfca8e548b7e09a88743b1e1d1e0158ded693e5305edc508fcaf4d497df86f5a53efb2bc4bc4c51843b4de20f6a063cf453ba021bd1c888ddf578dd68e428cea73369ef14e4a1082bdb7b1dac58f118243e14e803bbd5a897f66aa1604f5bfb4412eec7be48edb02cb76c11cc990f3dd4c8aebe2c7112f92feef531d82dfab5d8a29c38f91f24a198879bcf96a94e5293314e32bb739cf208d824ebb3a386bbad124180418e279dd761faa03d96c102d465cfdcc0b6972b397776cbdc42120d15f5e4139e6a9933be9daa108c4b7939f7e3b8946b3682644e9d80eecbb6881fa095be6ce697d6446284265dee332ddf97b05798e33de69017397fbc295e5892a1e520ddf1ec447f24d9f189a0b8d87a1bf6006cf1dabef8778d8f1783879c2035dddf10eec7b06bde96899bd9436600a34efd2e98110ac4742ee081b8cd6918e725b045366b58fe4822e40805931ae6064cf43005de778aea3623948ff8b50d11436e1337053c9bbef42c3baa79efe4ea4cb223ca8edd182b78c1b0bb3119cca060130c92b4e11ee8850800a470f864c804683a8a83aeb1a4ccf5ebb95aae857957dfa406b77f3d5efa9ce33d57d47abf726e30060bad9b5279801fb0ea56d7312cafc3b8b3382ed73f189a8541c3bba853c30cf8fe9c0f1c49a1a1838127c842dc75b4ee59bb70d8511a5470fb0290003bbdd880f7e1c37294432c4b761102dd6f1e04c45af5c2189c96cdc51a7d7251684fc56ed0843e7312b5b0769c60bb4928de1f0560e0c39a71d5bd212b1a0ef8b7d471faba92ebb496e8a0c39237da7bce657dd19e5c9a312396c788c9e96f3b7e7cdb14d07059be60d333a7efdaff334d022d67355846509c462af909e65462ba1fdd0c2094762c8db7603cecbe0b4273653282ef4ce24cb12e4f8abc2a11ceab8eeba136db49324d24cee59e06c550a6f911689ac99e2c4edddb99f4e510fd0b867be08d25cf587e7ab8f4fe64009fa8b89fa1933b21b11a391a51a643787eeee4f011293a609a9e55119a91e08ffcc42aa3c84a6c798750718d54f67a643825c030d9de1010be6106fd0cffd8b3d62a45ae981a3871807cfd87ce4b91844931dfbd4cff5e0161b93b4822fc959bc188e2c45d06a5ea375b697b508546d202fb55302bffb0bf7ef3e553386054e19454fb98539d80e007c8fd56db54df624d0967c3db1f504c9d3c3af35194df4d1ef5656b5f91287a3a217c1032fa089c4688328391939bfb947f934b0c4b5f98df9e66e925c09e2958c73e872b07a6edc7c9b1c3add079241ab44d2b748fdcc259c8161759e2c4cb9b296797420048ba6f8628166d39e52dd829982075de034137302110561121b918dca3e927d60a1d23c874fd3f1b70926d66f4b290514c794d8e6295f6742ef3f482b1e802c0632d21864fca355eef60403929952e7717745f6aae10e110ccc1764d6339c83b688d3dbe1ed74ba69389c92374b6710c4cd011bf8b4253d0f23a22570f18d42faf1c0a1d07857423b2de37c9d5d3298420fa987439309fb2e75190d78d7270b58b3d9507cdf0cc3c9cb3be31b480f3fd43b472699b27da1b52aed9374e0ef8c7c826d9b78383a2bc6066eea1437a6eb51eaf0d7d6f0c4eebd1f0837de26cbaf78ceb5568821a23d1ab71deedfaae59fd8eb5d808e1b7a16b66e01d373a6d47b69f045bbfd0eb661cc3296bb37863dd2768282d7ea9072d20baf4e00758ceb44179e40124feb6fb2e5f140f00712e4b09bbf02c4849da8db964ebf58fa61fe2675e586ac5f9e7957cd3acd53d83f8c72e20d076430471eb827d9faaf9337ceb5296ce099bd4402bae54945d1d6ef5545b9bb4e6c1e01cc1b6a19c82b845908a6710ed18e97cd9c2c44ea25737c696d7613c9b25ea273d7f5788bc99637010f1b88422a94369087162ccaaac5ed74d51b0fdb2a2b43a9eb6326bbe9a6637c5b52601f896ddccdb63b829db91950129e93fb7fe5c74d162a4e1d5eca67f79bc770697e75d15cb12f68543388d2fd99d8d5d5bf682525c693b0273bfe8988958fb7aba26cddd0b1fe64cf54c00810118061e49ab766af574492e7c5e198187f15a37b56c8b939ec6f8e1da2518b2f52038bebf25b708fb343ee8cc6137b21e3f7d503d8627ec42c0413b67612f6e074c769175bcf222b2f8f45975194728d5863fcf1a16a681a00979586d86f558e8c86f62846a8b98fb97f718976ea7853b08911f421b0a9499e7f9baa8db94379518e059272d606b03f94373d48753eeac6d1322c08f174d5b469b41502586e914c7852e7e1773adc4d33605fa63884e2dd7ef03d5b04b255cf7ee62a8426e61ad8dae7620eef8436ae7a088d8912f8b5055025aa5f7e16900affa3f9896264a75fc503aec99d35e296d87cd5fe0feaa778411fe28b3f2e403184e75b6dbe501e96c142330fe8e5d3b192f803df063f4e109f1e5549e25d8d9873cfc4aa4b31fd5c815551dae422b41c73b32981cf3afeaa6c8a3a8746988dfb2ca76ee24a3564743e9c5863f5e166b017cf1d022a2b4799666bb3b2869f69f3ac6caa228fc15a2eb0910cabc07e6ef682a2b1639683579e1d18521614c1c0124490fc73272282c5d5cf84619ad63c27e46dd92bfc72dbbc07b8aeec1434329ae0ab8205a77c6b7259676dd7fdcd4ceeea1c899bae64c19a5f1a41c6d94ad7b7c79c90187d66f6983b0b80404a455c3f14e1152e44bba109635af0c3c3781799292bfc925b31a3e1d5235df1353c446b5e528a92ae1a294639d7c873ae719f95247ce55aa4c353d63a9b4653421de6026ecc9d88b140922ce773c32bd9f80e83b539c3b84ac11b260bf6c3a13fbff047f1e2b80184b28c86f805cbeae04640683d5b5e56e974064a4fd3087d2c460bf5c011e1d9d9b075389ffee25de49ccaedf39581593d315f54f954b439127f805f041c8a7722dbc9a4bb8c5a9e9bb0ba64f709b2aee812f9c6496be99e8e859e6ca9cc0714512a6d8d104899e04a57d2a4420b494c25ad1b0ac0792080e44a7671faf7682d8868f0996a17e69427f55fecab69a937a98230412fe57471582f30ef5d6a3a5bc185ec3c7588264961e7e25ed9c80ed26eaf749aade502e9503b1ecfb7b2084089aea9bc4b2f5a19f74a0c9b448c0f5b9928066bfa38564f86b52119492d49edbd871c8e56c6b9c2a572d929f9f35513db9ef6addec80f76cd384be91870e38de229ab2a7441f24b9f783c4863b19745dc4c4a68caf2b3a3b0f4e8efb3ddcd9ee31d1dee233960308072da3f3a68b53581ae291b2c59d9d6bc5c0ddb891425335b4e00a96fc147985843f3c156faab141f6a8bf021507d46df26a90dd87b5ec043881db0b4af45f769d4bb59a3295fe9064ca8396e9f0d18edbccb9975d4ae95be4680aa1023bf8bcb053038600490993bca423203f4f5fa5697258fa57f3984fd033ad8d2133ec93e382205ab3d8df3f680517f4b3d5430b7568bb6427615ec48156570c905c5fc53087acd96a2b034134b0e0e165946992f92a0d03d36481bda9c0d3209ea950c83be2eab84d91437ece6c981c827a7de4013c82d50f36e3f3b38e0950943bfce22a7ac8edfb5ff7a2faff6febf2d08f86c486c688d043d8aaabcecb5ac205bcc0b00ea75551c5fbed1f84c17b5f38b5dce8afb47c36ff54215c8a89dcf5b6d2affdbe66671300c64bc33ed80a70b59823beee37fab33e18c7af46093493f635f5c3fff7935f94715cfe166992182be349ea99795a83f49802998311f365a2f536be9a5029fad74d5bb2654851ff6dd297c1a0d262249c1f6e3c36a4a097c2fd66525bc013db677a1b7aff3685a97e19d962efe7d721806cbaa2720efb464e7b232fb8752d66a81cad5b6b98e78bb2f661500833c175494f18a2c150ed2505c2c62241831bf328bad59d96a06a80c43029b4338daf66689853494549a8ffca53ae3ec1bd02c10ac12442d07b5feb3db2237f40791a2bd2b2ed6ca2c364124dae7cfe31c676b53d8e12b195d36f200925db262e8fc3eb293815e4ae5f5ae5cca8da91437461a5524ee6b7980f1f1cc1e5a18d69917da9857935674acab1c0a4dc4c1f92772a0a3edf4b3fb311a551a9ff52491668428bac009390e10a81854bd70c364fc3360d3a82cd7921372c5b809fd83ae6904020edf1b2624faaea3289e139e9725551ec3d22d8eaa2338c020f71589cce8fe264c4fb88404d47da6743a86d8d94706910a276c692456250f48f6d26e7eb6edd6ab38fcc0f22f417053b954bd7c237694bba4807f0e1df82246cc17844f1d9337f447d0157a0433d911be851c6142d95abc980e22c94c575503cfe2b6c97ca7c786659fe667efa320cac1e7cd70d1221911b149603ce63dd818fa1a957b1d9ee8e713cb8d360c4265632d185367792d5bce2a1918453348be89224169b088c464598ad7ee6cf0c7d43f2f7ff49dbf4b44d2773ec50577c6ca059f399f685d6c4445e0daceb810bb98cde76c3c2a23b835bdb0e7b7fe6aa2f49e6779270d046cbcd05700dfc736c23b53cdfe88502dd65b0caf3a8aeaab0e0da4bb08dc3eb13628533a6328bc88cc96ee748c32b5ddcb1d9f4a9f60e20bb8b4438b8d84c181d960c336b36eb5889b59ceb2b507267e96bb8b5b442e299ccd5113a1a3b2e3528fda71f1727eea5ba3ce2b80ecc05b9b3a71cb73b677ac0293e86a666b60016daff476274feb8295f70fa3df59c6e01ba671c07a38b5762f02fe0f179655313b84acb45de461020c52cc15b3dc340a8d441916914180780c9429320a62c436e6a339c1b221b147be4031505d1475b2149043021a7227dfbfaaaa5dd2280dbcba23b6b7d1778566f6292e22a7eeb6d24892d480a33c10ddc4e26d42c82a1bb71672614daab479c84981e6573293e5617ba49a937ef4fd19489892d3c24cad4b66854233a77accdb3d73c5c9e84204a007048efa570f39a7003ce21c17a5d7b0eefdfc621cbf4753df670847aa07617fe9315150e20e18bc84f3bf0717dc89e9698bef41c521d509a737fbc05b2eca03439b9fca0a24b78df7afa6c14b8b0c98dc5b7e3b2f0c6914d9c74ab1961e821e165edd6a0c66f9b8b40af8b4b73058807af379905e9228a3465de66e50fbfd2c34bdd65b8fd72e8a266e40b293c78ff902d693025653f098a772057529120dd21f60e5e5b91eca63463f2c698514be444958296d4022d41bc6adf3107022e8310931d00efb572da57b925aea506ce90cd58439d0f66cc015e6dccc853f10ed325a4c321490d7287e0bbb648819af1e6dc8599fe18c00e3d1f546a88bdce0aacc49201185fcc3d9eab3d1b8df6b2835a6696c13965126824e301628932d11be0c7c252ef0b97f9e7d99865a2dbc5f7540561cd65513b63803da1e2a4a220e79368876be151adad18cd68fe59a554c8807787b166b47d8c6e8a10bed08fc87936d77146e68227408ced47cc054c9c2a12eadebf6f104c5ee4bc307fff3103090361398abc3cb35e435913f960bd9189eb6ce037374e2e8052bb7f4e09b5e7f0ec03bbcdbc44c1bb20dde3c22aa971eb77b8f2815821500c779d8840e3b7d3c490f24e53acd996760000abb0811a3470212cd5c866340dbeeab1fd0ed46123c9ab395f2f4ac54865ed60734258ea1d88b52b88f39afdc39e8b9dd45f0b59e2d04d9426bff1c13cbd0fdd46ba38b65a749a094b91764a849ed75fe771c0263f5f2682cc65be0ac880b67fb9f90e837731be09e218cba7597d8bf0e82c6843cf9d779e2a3912780b7aca747c944beb4d6fb589d0c74f5d24ab2ddf8aca6d16df29f61d188306c2e600ee1aafcae9e702f2efec3a23be369decdb0f0f13fe08f96264622e2ebc34efc5c43a5a37bcc7e1be1f9375cff0b309ab1524622ab5340afb89c8d9e67d76156bfa846ffa630501fbac422df10cb6091d2821e74fc5a9048c34f56e58dc8b407f486b9eec47f470c020923b0a4cfbd1967897ba264f3d44ca311cef01164823ec187d161b4f8fc57526360b07d43e2d613fdf72da318e7256cd4c744ecce7c1d7ea825196895e015c239d3abf880bdafcbcb70880b62a5aa69db39abfbaee8acd932aa26e6bb198fd18e0617263f86145788932856ba4dbd2bf6fd7e2897daf5362db84b3f39673a9f786f3b2ca471cb20fe17ddc991ef4654ad2f3e37497c078cf5837d325af86967934ebf72bc1cbdf16bee0ed1532bb537149bcc7dc4f78a2a0be64311a56ca9359c0b18a17e6953c7a2331f70c0233d72c076e9c122ebbc65a4af4619fac94f6d3e6c266be767a3641d6822d09adcf3206b32f43041bd2f04a34f934af451b597f3f1ddc4d449db2356643038cb00d1786c461dfa0fe620dc8646fb0cf731b8dae7532d73a2488542996b5ddbb039b4d575b3ae7df0d8bb3d1fe0348168dce018d450088b5f65bf88975e6049d6d234b0041569de558e8ae58fac4a88cad8231dcd1e26bc8ffb88023f38d27dac2c065666d402abc63df8391e9edad94660da3d23982d5b23f83a20bfc6cfba9ce4d71b7b58b572ce79c5dd4ef397641a36192e350d3106a196b772e4bad4acc4e893ae8f535c1acf0b62b909f637dd3fb9eb3e6e2cd3b16c3196ea760ea2bcf7da0b6d77588e6fb5e239e214b456be290696f8dfe0988e8293229287d8de59d291ce6b6e82065814f36d66b138825ea9ee0d105e575aec10a8f728913b40fcf345b21e65d0282a0ee32bf5b3fd85c6f04fe40750fdf6252e495e954e03d78d575d9361ecfa18ef148bb0be65bb903375e17d326ed372298651a08c08df7b4a14f24c67e4b503b8e35f4c4444792f1c22b56acc870b4f3723704ed3439e230acc0c669850f6021a12cfbc6939c70c1eb8645e65abdc2c34dc5ab22f1774ba6ebebeef9341b5428f382b4e61f5f8000193b1ba156fbd3693dbfb7b6be81dbae40dd3053b1509409a53ed11933e7843ba48a4b03bfea6bb7494560a8866f7d753b4f51b096e3a4f750c4a17c96c0a35bc2ccec6773d602d475430c24b13821d939523e21fce3e7a0ff3b87c0fa14e74bb7f4964f753663df253550533d5a457907eb4f9c1d581d8bb0a5cdda414a91e9c55caed71b5561e0102df4f9c6fedba0397622b88a94109fa56ae618a7822fe356202ac72f49f6ba49acf3b6ffe4c8d2abd2a9f145c748d7f048a472044eb818d78ba06491232c0cf354a6413ab5ec3014c8be72ae2fbbb9f35c374f759fe077266b666a3d73f0db89015c0ceaa48acb15a7cc6c9f6e3e6ca1d6c223a7036fc5c15c12fc109d7fa4a223a44b204b9fd5a4695702caa3eae64d0900e700a71fd7b0f43b8f2f110225cffd8632bc23d6c7d0355d75e8af8bacc65cfbbfcbaedb804f23a40e36cb6ba9a3a6bf16fe8e8e82d5e861cc78f3ccc5ef884d95eaedf4086c7630cbc6ba615d0736507c6273f2b7bc7e10b97dd4945f92e6529e16a3b47f7d6482e9678199a7812044f4fb5cf8577eeb8301bdae9a70b77827569351565255ad259c097959945f6e9932fc33c49958e02f57156d5f0d8c20e485c783fc1fb60a1dcef50057e8c4464250fc736dfb815929c33a1741c3d32b1acd69887e1ab90e3f1d32f3786d3da1fa1de2a578c3cadcce640d7022de959f3283a6e558ec465fd62ff038a9808ca82722597446dd91f1961b5dea308c7c6654bfa10d317786e516a36161ee26de5d2d720ff3479aefc5861e8e9d218d08844b2523e87b6c909d2a6a5739e33cfdd918b3b3d60b6791d6e9d697cc2a034d0d3722e9412bc80dbe775022a71d23666e2a1c2f34fb7a0bb957fe69a013134acafc660e31c6d8f6cf90613745a8c3a9be2a711f17e7f46b3ca0ceceb48b5389c94b2f971c7153d751822f77c3ab8b2a6056dc0896c7327567ba3c16a612fcee0429a5b07c5a33475da84ab0fb83b41c2fe253b64ba511d1bf1cf82e47c6c6e3aa63d97bb3c8b76cfb79bf5e45f6f544b7a8a59a62a2fd113c274bef0ba8a11259261f10eeeb4ca75092f44b4dc4adfea36f142246e8b0a5853ac510bd259a64bc0ee8108e24f1abf7e55c25a3327f61fbb6b7e88b216f92ef1e13939c73f1da8febcc8c4abb31cf76c38dec1e4b50cad7b0d2f9e5b15ca3e6fd0254b27ddc9c1ce42359055286b1d6d1a176c528992f7784010ef3353cc01b42c851f9c825e94200b83e0da2994b90ce494c9ec90ca2c78453032f5d903ef0aacdbd6bc6570272182be841c499445bb7a36d0bc1f665674a81a3db7cf622ab1486da4e3928be34499faf3ea0f79e2c34298ca37a82298ef4a81afbfc725d46dfc0f5c6c95d6c90e08c739f06982e92d50ee6ac7e3dac48f9bb7d1d09d67b2a66ff2029141079a83e7985320e9af31ce4fd318ed1211e3882275f20273746890118cc3c8b5cb5c013234ab397ecfd8bb9aede0eb51e96437c4ff5694dd758e6a49b96dc79fcd265dbee4eb258923d175c6a02cfb540be0dbdbf2ab84c9fa3032c2d4aa5a8103fc5d9c8699c0e7546c159fc57999d3f1d9e83705ad59dde2a0556a9037395b6635e25b13d63cd02005307bfdb8b04fa9c2873c2175f694a5e4adc09ae60261b59ba0131fdb7ed12059b3997bcef6d712ab4554b560ae052c2d72156d605e4f88c4c7cc957456375721d5f358e2ffcad5b8f61f28a0b88b0054df290ecf535cde3d825890bbc70d6d55c4ccc57b4ce84fd6bb19801e7c56ed251a5b73c6e7bbf30b2d5be6635c0e31f3ebfef6ec59022d5637ca935955418aade4277e683013b0f548d025c0c4c00b05ad420e2ecba49a9f9560f7727b3c70b77167f596069681c69533dd7de538fc8317e182b11ae6858f6a35ec2733ce037744a2afbf25935b3368cdf7bc4ac19f67c3bfa2ff359850e07ff292663fcc297920ad3ed07df14cc4305db396137b71b91bb1c49814c92d56665cf047672edbdbcc4b11390fb18c877b2ea73e1e7d0b2a3383ab8d59decac25590992ff52fddea32168f796b5e31c8c267e6fb7c9308be260611cbc9c08668d7987c92c1ae813e34a8b01681b0ad7af07117a06511b2cf559d63bb8c4ec9b40ff00587cf6dc01df72eb183c55227c0c69d480e294f3736e41ea28d13b7e019b9d71876626b0193296fabfc5f333561a94019fe827bec2a5a5706f6b9a1be5a1134994dccc10731cc4b6ddfd74451563e85c1011056be34fb766af1e54e1396a1aefc96e67fec89dfc3d82d16062e8d27814c44a49de467505fb0ca685b89923adc86227ac7b0ede3908601445f0f1c19698752f2fc74a079f58d076f92f4c5a60d6a3307a2ecd5ee9598ec7f5220ceccfddb40d1a3c3c598750490eb57ab9882e17462a8e460f04e2a0eea7f54900e33363fba1b4bff822e4bb390d05bf8738c35ab8128d325e7d1102f745b6dac618a8350f84d5df6689fefb8fdcd59d4435f1f755a3c0dbaa49a7598182e69e3e6e296aed38dac63b4e24d2b5af0f48454af4069731051f27e1243ebc444d99e6fa920817f0bd4d9b7b0c80effd821601638afc3ced1ccb50445fcf76e87b1c45bdf191f5ed61f394c6852c707941366e5bc86a69ce4d8757aba06112495b5807d4e01ac89f2b85c1e5740fe3355a3fa9d21fcc49f993cc5a2fec7c0dd9eb0ffbc6b9f1ae3e9954b50b5b72f9dab98be1f33e12e2649aad0347dfb5e45b861935622fd1108daa46cefab5c7034ca9774a47321d9f6595a6fd811bf5da10bc4eabf5bab2494fabb7c9d0c830602970fed1e32e7161804d0b7ce5245e67bec801ce223e633f775b1c2dce69123cd5d0fc151d565e6be5d5dffe7f1679b8dc5fb240906289066924f2b0035f4e0bbf1ab22601e47ca07fbfb3c3a23f10863928f79d3c59cac0c9eaa1d34a464339559432cb9ff9d9db47f09860f4e269f0d0bbd221671e31ca81bf715dec269bc00cafd4f0787da52c807bd1c3a66f0f6b057822d8ad266ac40926cb38fc5cf745ad3379f6926f78fc6ce7ed43b1f3c66bfbafb6624df3917f9604d1659e576c8e7fa71cc62df9828a62b0b22826e9c9f769294024e126c9b42a5cfe39e6562c0833d4cea5e56a9cfd29f3a04883daa665ca7f327d89a801d3a3069c4f974b4771096fe4f30cfe858762832a3125f5a457f26918427943bce13e9c7a163a39b763289de69d9ea0b6c677341e7ed31a0b1fb445255527385a83ece5e26a39d8ea0caeb2e11f70a3139ef6d76c07e50328ef02f9c447f970219d5e7c1992eddb380ea8372ec7e04badff5182c9f665844255e1643f7d38b2ab9a397d42da9b37f481b09d11a93ea75911f010a7ef7d07bb9e1ca76d9773614255ce2ce9e13c31db47c01ae25663068115543866aefe2680b67e75f538b4a967b1a11c106eb4c1eeccbf434dae0bec079d6422fc4c0d8f748f2940526b60244919bb7f193bc564cec413f4386c4bf939db1d16b71f2ee4e357f8db683bc414c174ff24716a5e2e0f7747cf94579354fa12e0c1f76f10b0f5ac7209eb20c791511ee904e6552cbec2ef67132dab9b3096c813884b6a94e8a9d6e1aa8ce37c955004ee037452d0c5ee58e5d1335664a239a09159cfc0011ff142e3f623ea8188c8d6439d612968634b60a11ee160958d8098b09ec4e429feb6b8a9345f4ef04aaeb8a51c1e45ade250cfd00996d9f6bf588ebd8fd8a3278942a424953a06c8d1d5c4f9c51c54414030b4340dd400686e6a0aa9e4b532da85241d5b7145dc37353b2c28bbc5b925badeab7470fabd3b8e3ad6559aa72c3edeedaf0392ad18281c9744ec548bc1f4cfb326d7a7492ebe85878edf5f8a59c9ba56eb149593be4d068c30c12fef6f58666d2a642e8bde0ee033352b2023c77f462cabce59b14e01f5edc3311e10e7dcc973a6f28a7efe79431320bb64cbfa5f78b617169076c00506650081c9e2f888cc18805556ac63c1144b378a4476e1610624962b55f0fdeb1dca7b2dea776bde3652d17cc90b1e0d719a6ffdd659995660e79a04201173a6610b267b71087e725c1dc6a6b3a4134a76cbdd9008d0e02df70f81c287785b35419270be36bcce3df4930d01bf08356aa93c3ab0908c08c38771e59e8ffc7670e7c4142511ae6bc989edb1c601dad7ab1217d0563f49df261c10758cc29ed6769c3e74a572e0c824b347e416ebe56ac8b2df299a94b19e8c86e2f4c139c4322b2dcd42be6faa2130818a9b0aaa1f86e0548193755a1b5cafa43f54ed8c9d9490ecc0204b7955fcb2739e47b7b566615f92baccd5177ea56273e2dad59a9df6a23f249148b800fe2669750294082ff34b5eda1c35a43dc5b0cbc364d4829c5894f265a494cc03cbb048819a7790f38ba8faa9ceddd13e3d7a8a973c328f671a23d6cab4dbae6e355568fa3d08deac2b5b60373407980c4e213ad2ade1a2eae2ce1dc5e2a34e20619b3e20a2c9b8e03691b452269c68380bccae44d7a7e4c52789619e5ae0b2b874940ea8a6b1e6d954ef5e34334e4fc8e841efda9134cab6bd0b4d5ab8661f3ce06966d25f46f91fbd0d176341ee36c184769e6b3264cfca513fda9cb1eb71336afa1a85a8bb3f5811718386e0d65d499cfcbf16d775528ccf1795e549e5fef41fc2660e5f91b8da022f079ea4a5a1a7dcad41daab370bd2a1182fb2c4ad13b416d9d666d3263f8f5fbc0e35688bb3bc7765ab3ebc39c09ed4a82cede3bf135b18a3f7e436eef4d1af463c5360ed8d06ab70ad48f409772921e4a1aaffc2afa96906c756f1e8cf03f2753c3c690c9662a223aa101a0ce66087d7919a4da00d3301aaedce3720cd64d8b3f1d82b6f1fc1dad57fd25872381846a8357d5a83ecb9996aa7a35e163b6f3323374e24b9a71ac0bc56f3aacf67bbbdbbd0562f80b934b9b7b987c6a9d94a607fc30410df120eda58035800d1869cf459c7a5e0fcf96acffcc4fd22c008cef07b82b702674d756ca586e77907732056cae8bbf2a1c6ba08f275b0079c76c869aa828b314385bc77a9a77c5c8de9aa3e39d37451fb55d637b15cb4023615419cb6596f71cb1b74b0984f94425d05f5984fb2c6cdac7a393fd362a9a8ea453db09979f1c9887973fd599b432cf929de331ba2ff96ec2c93ed8de63425f3dc51865aa72a1fbc9d9bbba1d227d6b9a21907777942a91f857d98bf42fdb3cbd2b3e51aa46509dbe4f76526d2c0f98d27cd793a6e4520d022b9f8a2e2158111d5b3c1b9adf9af7f3b69c54f003d9241487dc223f22cd1e1a93429f6e0451916478674ef5087ecd35b2011330b12e83340c0ac0139e3436c2af378a3215b3d7a2170725a8f6980fdfa3e043ff77f6959f85f04200b30481333f8092052d81e3b87cc7f038818c9b67821be0f0bbb9d2fb5f05d9013231c001419b17ad273ca503902f527647b82a5ae6995044279f07dfc038cd1686fc619631bf2c46ec7850360f7752af73b0295cdf03116c7932327dd5ac9f4700dca569d1bd835a0555129b97cb9a558de30af7c115c6dbfd29b963e1480dac72246393070c5e20c501a15b7e45b4e29f6b6ff9bb92aa20ae639f1e08607e1f31202b6a286300f7056532e646e30d8c46f66528ecf85397daa935be634e5f1dbf8ac353e6f55b7f35d10f5f98a01592f694c58b7ba7e038b7eee755549f26c49597699745324f2912a8e8201f556958c160ea92dd34e05920b1a98752328dcb60bbcf6270d0091f82adfadce82fe2bf318f833fd5e89f041b47f4f6ee1fd115559eb5ab98a99f289ccdf2a2d50039713d40bb4e8ea65a005955f8430c6dced0f53db9ded191c29696e84a432f85ab2b10e387da70f5318f2261fabe2b0c53b314c472150e971a0f8770ed5d98b8a6530d28f6ddc8923a47bda2d7c55ae9888cd711c682b7559f9a789b4b1a29c41242577ab75bc79de4f455d9bd523c2e8870bc0abc87be983e35d72e00b644c2ecdc618c36c12727bf1102c89225510295b8afd80ddb2f76f8193f1714af1a54f8901c4e0e89060071e59fd7f1ba0c3e086039dbab96a5b80b641ad1961bc8e63cc232dd7ef4360ab53b3b44eb36fe1370f49b23152e813a99f7c443d299fa6788b06e454d7bfa080768166f44bf7d691187bff956680da22c658e67ecd399d05ec0262b0335dd05fc175238a9be48ee71b9f24dda132f961f298db579fb28188053f64bec0bb50157accb53302a2f6033451137bb1dee8fafeb1dabfae709bdfe51d401ab31a1f4424c3e5b773f729bb5106d573cc61de0f4f27fca0b21276aea01fa84a6fce37aac68d2eb64ead2f3ac08d64cd7e92b47eb9a72acc192e6e7acfcae721a390c3f958795b6df170a09ce968f843992db8a3964dcd780d11f63dabcf2bd267d3e013fd00d750bed99dd65159c4b17cdad4c64c2e7a94811a632cfdc244c86b017fd183285e0bd09f4519f269db9c6598e1703bd7add6a23a6dde85202195aa4a29a3319d0ccf08734cc6bd8e220a5b2516ebb471f60603515aba5b9f0e3ac072985e4240b52e89cea22383a60129ece0b115146cbe65b776696f0b61000c499369016b6e4ba2f64ddf153ced955dfbb55c7bc8f5c335779a7281a35a9d42102bcb383bac7fa9e48b54418b97148ed49228638197a10e60ef3b96e05ccfdb7c3ec0386e62ad4c52db2e62f4c67c96e38367cb7c33591bdc241e76eb120ecb98a598c11b361fab09cfe068d3aaf59235375c9716a7270d2d0b9ca1b81e5d5f5209b07218c7a378e6c1f48d4bc7ce9132ca3df57060ee4cba458849bf79c23eb2e3b29f8790b749a456c3d4744abc74359ef50e8f7434793fa07939f1572edfcfc5a9acb5e3fd25d36e84746ff9a168b392338529956af78c9e7ec17315684fba57ae0247f9f029216e313bc3677533aad786e0daeedde31740252abeb735b4c6b5afba8a0750520a4782686d53a969718e7837ed87b1cf578465ea4b7c24dc4bf2a787bdace587762938e57a38d2f5698503996ee3c506cc7cb2f0ef198958c3bc5aaf1fc77e3d4a32633522802eb62267b596bb7d7ba4d133f44c98eac54f7092412b9741e932431732e4db77aa2d66c780012a963fe3f78f132659f9831812f17014c8f283915de38fd89f4f908a4e0c1ff5b106b0ff6bb0be723fefce7362d6be13165ab97c676235e48f304a87e3deccc2033e0b51cad6c45aa9eb46921592cbd06b5cd9a2168e41c0ca8d0c5c70900c60a3d06296cbb9c6da946d111db080ace802abb0c4002473fb2f1218de081e78e56693b20ab23accbeab6be60310b3444855f8c2333b03ad099268ff15f86d4f21cae8f99f4184af86aba5fa0765f41b77ebd4d2e30292bf8571320bd8fa812a909f570991e41672a8b290c3f77cb562bd9c26921b7bc3dcf93948319f600d3e67856cf510b75f805ea6964ee151cd2c8aa9a26e30a043a869eaed0e9b9b601346eb10a92c0f67b1e97c6bc8ef907ab839e302a3b3e8cc1d43bd21b7ca8bb9fedf96244649bc9348750fb392080993e9dfb2c83193826175eb71acf0b9537064f5d00835aad3615c3ecde513348fd728005da3e0cdf1762da921b7b747172d37e013757201d11fb2670ea5e40a2a5343bbb6c8114a3025ca9322b870619b80700850c714babe969a63b70b302b387d5c4399068ac4d0a4fa6e0faf69707d3a4ea9ad8c12b103982267b9fea02341b0afdf8e3051df0de2e30bd4a57979b1c0edd10b6a1bcdaf414bdbd5307aae14217ee6277134804fedffd25431812212eb60e34032cda0facec2d956d116c3334d4ba40465216b91ed5cec8adf638916a51f481928a872632e47c402f22dd643712f91a68471e0f95fee17ad92491bb3c1ad316dc429078d935afb7d8b840fc32f7c347478a78742c973e692fec64a95800777e3b3f69655ae89f647d98a1bd37cd39fb76a164e2bb7358d03efd125c13a1d333e63642ba36da207c554264cdb4e02e375dcf83b1b44dcbbc5102f09c324e4c829475b35c26372347c200365323e5cbff7d004c12731e2b4c2fde2251514f29e93ea7e302a4675d8cf6b3b20ff331fefc64abe3161128dd2fdef303e3336d48bfd4b49fedd92c479383e4712a07d4573001b485d3d6c6aa0dc1fba0ccb11c5b42d19e91791f2f8406d5de38d529db76a788ba601f2d502079a765edd6a5c17ab2636b85e5c1aa148c71d0f3bd221caa18fdfd7f0841a6981d56b3603a5d0a24bf2830043d876a274d47b4d393ebc56697a44669811d89c7541ea90c770b0e27b9a93cf88e74bd232262f2667b036c2eb4a9d05d24b9744258162c99141862cc4daa28ccd25a63be473dcbb2ef8e16401d22e69125fd16b57b2f4198c0d64bc9c620d15b1a385d3acc85458d865adecf80ef59c4fe33747bb186ba8fe733806b2e96a76784dfd7b7d0fcf97d59a5b2844c2ca21b9361468d83a390413578e427bc7fd9216e3be078ac03e14d7e1b1840fba95a43aa5b5c4b76af45de477a28f143f1595b65fec6aa7521f259af703ec1c0c27b550ceb94a68b34ed0066c428353d1be99b8cb0070d1d02938e8a8a2c097773026444fae758cf8e6a987099819b21f16b6ac888f0f038802bd709ad7cef74203856d8a16275895e24d5b0fcade140e802c017d6de4a99dfbfa0f8c10c93326c86f281e696f0dfd44154989cf400f10b3eaad8cd51ee354a7913a37857716f908f544461e6aac4176c173dbeffad88c96bd72a489a77ed012a63faad6ce8b0e2a4f383b0799ae41005bbaf4adb685566f0c85aa932a87662e4200488da7ddf3a96e9beab47a603549e8370bb2ab0a6441a2b49703c87206fcd08e33795b5f4db57034fa7b18bfab91e485255e746c59571cf4409ab32e2803419f4d87c2a09540ecbe064322c1272027a20bf90d700e8bc6a69cdcf3db9388adc93c3512a2ba996b920465a555ba2d96b5ec1a976586f174b5929acea06d3dc1fe3c5f40de00ad84715b964c2a307746d9770ee0a1dc2a0e6d674f35cffbabd61383ea0095dc23d075560c91e1c524be2fb133d5b1c626bf7b4d77e0940e9c5bbb90bf70f46bcb5ac32bfbe515ef36cc3b5e06bc57f697d01d1c56b786b64508a8cc68b6f3b8c21e87a6a8866e95b7a85a9b22cf4cca61a2eba5bf7457b27301ca80fc56ae3687f9d30b37c7a2634fe7fca80edd133269dee9d571a30043da209a065568b64ce85c947a40fd8e6f5e56eb6c76b8a8d2ad00a4082de1983786ecc25afa6c83a81243e75757cbd6ad4da0f5550410690d4a5f04041384c8ad7c780bb2cfba64e99338b18e50653dca3013c404e993f03299f9cb66e2fc58a2a97beab5ed24ae463ffff3a8625081d1cecdc9b7e67a2e203404a188712e4915e46a3c045eee3f1d43fede562a4e3f0033fa85cfc7ba4eaedfca22b516fd41680d661a69acf60673739265413a9194d06ddea76b777c546d8314876398b5ab2d746027a07621c09e3afcaee4899c63be3c1fb9279611a78b817605e883cb20f3c8dabca2d30546bef2a13756b1912d4c0d6c24a340ce8695f2dba70acd24ad7014ea157730d3e94aa1ed0620dd52815ef9b21119ef88e0698caab86bdaa1831da84e60e9463ae6be9df65b5f37ad3684d02e5ce9d80fdc193520aab61e50713227ab47d9f652ba11930cfb5b8d31d8bd30cbb1695c54593474ca69c7518e88db4be9358e0234a083ec911d09be0f3bdaf29a42f710139fc4a2ab00a86f6320df180f456ed5035281c5ad1825f232bb8cc87176750bdb573f2ee888fabcfae1fa5a1d9a4a6b79d596ba9eaf31656eb36193a90163f92af36cf9018b8ea7c436798d25669dd260a98aa60e555202b6e8b2c1898fffd94ef6e5c0fdd0f1f89cf4280a6a1c3aee925bcad735323c2a3cb30c802f5cde6083e9a03366188415c0d9a8cff15a7a28b6f8495a00bafebae2cf73612775daa5356e1ed3d88a45197654d9ea9598b3fe5b9926709ce62ae648aa03d0d717655ffdef92c8ffe69915be0b77879dfd6828809fe553120fedb9fdc30f16e4129411d3225f62621ab456da23b125e5112cad229ed51faee8a26c126c505fbdd070fa2c207f5c47be678568276b4ebaee7c4eec43b1c786fdc480d85fd35a86d2ff48381e79a2b911e34e4d87a1058149712df48f4b251a9181cf793bc91f4a55b3db1306384f1a82ff04204bc4f07d0a35e5bfa5d4497c700f9503a0e2c10cf35b5039ce9acc5a357c325d9481006e91c19b8ccb80daefc08bd44575789e04e64fc3ef12d361cb0a18e3a86948d7d73b3aa5ab20fa73e0ed964d32ffaf38827697d386b547e47331e957bfebf7dbda6bf5a8700af6b3e1aca3ebb07fe5ff2c10bc180dbd4b5d0f7423217d9da1829870cb7cf17869518af2d1db245613198bf4101128cd68afebb7d9fda8e790ab5b8c226e7094b360b423cb7ea1da7f6577eb8af3fe3a709db196a338c45eb22aacc0795d6b5b2e4df8aac25f1d2244623019f1ceabb2ea4fa7365cd9d6c943d82185d93f24cc8c6d61aca421b70bd26beca402accd758db2afbd9ea89ef5bc28d1ab4073275a9d3ad1fef8a68ac20aaf6acab39f630dc079017b44cfcd4a476db88a6a9f4cc4603b0737d897c82fbbf568194f3b8eecc0335fbc38452a7a8887fd3d7acfa944cac724619800f66b6ac2b7d63cdefa734e8a1960d5c6a604cee6f92d97067884a650743698dac01e17368ebfd0abef588e0dfe206e9b2b8b89e8734e0254e0216fb72f5da2e4a9d081d012ac6ed38fdee1cac43726e7eecc6e54b4938591c681cdceb0c16978c5a2b933bbe5b6ddd905dbb2acb959d39eff7cbdb22907f26b50e4a8cfc501fa3499a93245ee07da80d4ef8947893f0a8bf6a0ab2c5c9c21bc9deb6e8e32c780a93e7e6c34022d6c006a1d324eef1d1d2c4055b4cddd75252ea7ded0ab4e5858283110721c1c5d4070333555b47a3e63335e059aa42605f027ee95ac066f6e96c50ceabd6b091c2ac4348ef9298905978e4155c22623129fef6735ae5409f77f55306926506863d2256b5b32900cc72c5ff126f385ee2cda4343380c917355a40c48fc36b73d8fba372b6ad3fa1eb94593087b0064ef0dd27ae8ed673f41528d6847791376d9417c1af1518826152000890a27fb34c4df674d777ea5ee986f39934706c606f77e1748235bb7b962be3c389a943be78cd875d59b6ce5ac328a9075990e0e03baed4b611a0ea25e1a9cfb34be8678295222a398902e260c3db7c3399a668a570892351f845afa35da74854557af64082c574fef52c07c75cf14e91bbee4fe76889137da3ebeadd9889d7796c97b4e3a570b3122f1b35f6a140fe0aa28abee332f944defbe85d1dd0d9d20cd478bb69f1f99da43c38c026f15eea916c51019ee9e4b45a7f32bb7881bf5918ab6a0345e5b0de120ddb3ece6bdea6becba0130a66398bc6b1ddb9c994a01be2fe96959a8ae5df6b27d2adb69ecd3cd6917e13e0568e054d1bd12d8dda756aedbc29e1a4c4467166b33af58ef6083eabf352e844b4b1d036a183c3069532b72aae4de660e4e1091d868f5b3a60c3e26ab60feda2081b83f99f9b0d8544acdc892c96ce98f612399627b76462d51acd94c9a920200c1bda86138b7cac1d98989fb0388be57722c1380317b5fbe0981a58dd0fdc61d903d57e9d9c6d999c9fcd040ce2b3ff2b8f75868e8d08aed17e08cec6a5c5fda384b113c992cc078d395cede1e2909c17104c3d7b90d4ceb2d1e9ab93eca8c810b770527bc8ebd0a6c4cad0cda1541c4fcb4df9170f20f2f44c2c96fcbc122f50ed5798825796c2ae1ddfb2f43978a8c592cc96ab0ec0f493bae13ea65b0714865ecc600c2aa340209563a9fa0f568c051d8f0814f1e8ec39edfa6217e38d1e1d9c819ee0589da6b0343afa580637e64e5c2deee62dcf6c0488060822bf5d1f77a15326792385b4dfbb1ea867212f56c44cef11abd4d54caecbd00e84f7adc758ae896939c499e18915cc3bbfff26cbd1312da45ac31524d9a5eb4a4e455acad2af156d8cf55047817bf1243147954e88b0e1c4dc2a3cc9c640b2ab70544e72bd5c45555478ee2e865b4f24977f4e28678583fdb0fd184b999c9c86567163ade9d7456d087fa56f987cfe38b72c8c726e201d724d39741052024f152a7b5581139ef6bd1453c2cc32cc8405b7fe7d83b12ae5eebec35b5f887c440393c0d91eeafc65e870ed04e61514f92a921ca4c55a7b036ccf0249769caf92dc1d24a1eaf2d5f4f106e12209c5ba81181614f9d440c37f33d465e371872a4862416dca206cb63f26a3ea1304d3b4bd9ab0f3a9304541f1e2fb26c0d916c9dae9dce8e420f5f80beebd73d022cdc7aa1697cf4c7c86b5a0606f68d78c04bff7ce17bc981a7fe6b13e63ca9b4f4216d733a5499d261cc59ac7a2a42ea3b5ecc4186033e2f8b4e26a177443216d67ecb72228b2041ee0fdf0835cb0a77eb471cef5973e3d67a128b2c30b52dd22304add0277239a4584a5650b61fee632b4fbc36c9b18cbbe445ac2e17705e30b048619f144d571c5598c77f2a576cca18aeb25bc7a8d3a451d359713ef426610fb2e3f9eee62a69348f85c8c29f21a653ac3b04736ae54e6761bb6cb4c622eb3b5104158b2a3e38ee0de47cca8c3a58fb8509d78950010c592cad206e44e0cf4698a74fcb21c92bc1b769d130d57354cbb9da26cfa2ade786469b0a10469447e8a5eed74a5333dd91a8cedf3ba98fd808218bd1d71faa20b5e02992fc53fd3818eb17698d9b50b37e7d722e8dd6dc047f23ce339cdbbe53fac8fc14a222266ef233d455b706326f2d541031a7c858b816110ff1afe527f772a8cba64e4d32f49b0b05d16f23c3d5a113871bb8170c0aa12dd269ef686ffaeb121897e2d6999db02b0e5820945b59d7271fc9a2ec34d16fbb1ce02cf9eec7d1f4b1880865126729a9e5c0aad66c04bda993e3bcf65176cc2bc0f02a1a6af028db0ab069162eb127077acdf96bcbfd2c9a201a773a45ea4049cf29129cee4d6e6d22805376a67c3cfd427a6de55b41f480af332c05889e53c7a69eb17d54de9cdce826e773c0edab6e72df5c2a20700c0d07e0f45645e13a83d481522159ae308bf0f302f3dd41c8ad50635a4f879e0f98d61b56d5ab7d2f6e00ec0ffb68e4573855e8db814532972d40be2450cb5e7a17849313e956b9743c5f8f0dd495b8dfc5ac2ee684bf4d281e651ee5db658637bd3ca9dbaa1da4b87acb9111f848040b4884d47d25e969774973e501bff712c19cd6d1d8f3f5f1aa91f80614b72d28556dba4d0f3c8ce27bbaf8d1ba4991e7649d7e28515444d54e3a6624b9b54f3e2a1a16d96a50da4a00a0d88deee3b64cfb33b99eb9a50c85649cb59ef19194e32350e07e26932dab5a9c346e1f2d056bba1826c615f7e41845d955bc2d466a40b2c879f105691c416aae58add437ba5b64a5b98e77042eb9449c64468de700217a455d9a7108c3a016dccab5d4636d75ceb834c07a0c5f08fc55426b145a2511a42cbb7c34b9887e0f95a1541ead133ca8c1f1d53b992efc4e17e5612ee9c4ccfc3bc543c861d0735b06d31537eed3561e50f06a9596f778043761d5250b30b7d23a11f9e03434ef956d6c0e9317989253f65897fc7a1d71bcc597e69fc3530e6fa2cc33a09389a3a5a1099a09709bcb181991c7051d70012563cd9f0d0d37bd8e51e1743143c4b63c7ea03dffd22a9fb05bd5597b59b4adc0bd5c1d57582ea569614ff372b0cefb53989191a787202f16278bc06d8dbb26d1e6aecbef2bc38323fa3acb365ad57d09f15abf3f74217a57327840b2d61ad98465900ff4ec636c70b378c9d082033000875ba8435f7c441879015d76e437f35b5316a9fadabae89fe109a20d6be2025a9d0ae7289676c244887036cc187b5a5e7aa5f7866e3db9017e72821317c832c402f4d7122e31484a60cf44b848cfebee0c5953582349cd863786d51233062a5a5b0f7fbe6acd824ff47bb22310bf435d54922bf79e21503525d74bcb8e3c5b5cf1325498e71e7ec3079f46f5806b87649f0a902a358e0a2a3dd26f91ab0602b78ef59dd870f1c1405602f3b90275525e9666c10d00beba350203b32dc4b7b6ec3d40bae604054809ea27a384bdef3864b7c91fab5abd77cf0d12883e4161b334f925833dec1d7a37d5208eada4275b54de02ed559bd54f536dac15863fa5029b6aa03cf3bc3f7f4a6663acc5514248d87b93d3be33343e03a4867db08972d9e24c6cacbce5716ea674d61aeb8926a8d4d55b16412167b701bada4ee8c6938f48792ec7a1bc4377f628050a208b98c3c78ff9cfa915ba50bd757ff95c7955f2f566a042c20108154cf1ccef97de952aca78b79ad7033729a7a45b733fb9d12dc7b3f673d3f8dd059a21316184f178cd262bc27364e809f1015a4ad1182e6c67b7b2a0ce0d61cf8a888ed43604cb4826b5f7f42614fd3a69c0db4fa35b47e363434abcc52e580843ae033c3ba9f3e51e5580c8c6a39c9262a8c23f30d835706dd1ccccbcddb5500d25a0b585d078e8a91b5c169f6a625eb7d0ba7e6629b6e652080e34bb05291392a4a3902785759eff2ca890ec49f1112cff6064329e888f82b42abdeaead767cd9f283abfc114d7c06740460c5ed13c41f90c8e84be501fe053949b2e5f4214fe02b78e8085495438533df247d709f68c9b46a6e17c53b2ddacd2f57b9b997e72d68076910f74de871f60ce38dc740d9578fc2d5f5bd2f81a485a59325cac30e662d969acd7d47658c0cc70489620cc78714bdcfd4741c617759d4f652a18579b248eacead9e275abc23c6b30808e8a7f48f5ec669883f2a061e38e5abb77322373ca2dd7f4e5f2816953f94c7a9cccc983f086047722145848b665fcef377de7237ef73753ad38ee79ade01752cd7a8b10187c6d275c37252424f3bf0c3187c3ac9117dde188cc5460136ae838dc73a6b7eba661f83bb2b52e0f09c7a1939f72a77ab2d7d788673ae1efbebabdc541ef3fde16bd0fbee3225528dafdd632b235ec1004766f14edb487932711e04a8111abbe70d8348a3fc1402f2d48376cc6e8b2b00155f01e94fe742ee9c5afcb45ae28f45d33a4a2b0d74c35d4c28638c2a329b01821a7481972976ba5d9aa68dacec76608be9598ba29da3095bc7718f65ad553437dcf7aa12455780aba9ae012ac75eb75a64bd64710b3b92083b1ba86e827b5f7804cebbfd97305e1a1f1a66f75d79f105a03b67dcaf93b9baf64747cba7e01c6910cb0bd77532512fa240e8bc432fbe03cde071b26cd64024e917a967d4445100e4568480a854115ec8e8720072d7626d0773187dfde2d0bfe20e9003d525a12e27a1e013be2df788cd8cda6c24df4a608f301bf8e35fa076ee741c128b2bf87c4d4c5a35f00f2c1ef19e8f1c9d9f9d4a9ae6a05adebdb5a2d3b2ad88a99b4ae67bad4fef04ed7cb9c2874c52b9f46683eb0f9d47c21f15865523da4b64ecc77655241436bd5db2eeca3e4a9936d20883a5c178da401cb4b9b1b0503fae8de7206cff8e6e0dc791d900a9b32feabde6483aa7258a6ceeffe55f6647bdff9b896d513a5589a1a7ce8944d068f68f3db8a751c053f9784df2d89d4a6688942336cdc104b92afd0e44096dbada1de41baaf88c94e365a7247433cc26f097874a96ff919760705c9ba29bedb047463218448ed4f136024d92c37e86234c878639134fa7eb4fb4b618f4e9d05f45cced6863ad839bc7231edd7ba0795bf6e9375c15b0e54f71a28bb613b1e604721a2966044735b3c7cf732ad353434654d734fe1e4989572194e4ce229b5e4af3d30db2d576aae99e9dd2be96fb91cfc52f7a61b08930278d283738164a94528496699d93a96d555af9c170032e88ac13856f7d58fbbf533567ebd52bf90f8cc06371bed3c28383951762fc4b65484b2a2e455563c9083badb8a79c844b1673fea0f88d77de9da420660d17e4229f2e07be5d0610e0b83de840b783cf335fb81e655a3d5b97e2a8b17980fead6f1db482b0c31bae2c137560c7caeb819c9524d050ced5d8c1d2776e8ebcac85a6b7ecb7c66372b42fa946a278c2b19f6294acfab22868bea649a4d8f8fe72addcfbbbd4ea68d8a22eda9c4420a64552f34bcc237f970fa2ef2ae6073cb014cbd5140fe3139b26074eff5edcd6f05c0b4ec360e75dc4575c7a0565b763ee60dfb920d348ff0e24ebff8787383b55b46946f030979ea93b7cbd2669e653c68c0ded26bb6652c4eb58c5b166a0c211f9cd789ead44f098b6c1e911cd30f2d9fb24a99011a2a7083af4fbde64cd2f5542448602f422bcd3ec4ede75a74e418be3d31a4b62be60ee74412bc56b4448ea7829218b8ee5eb7f082c681e76fcd5057a6445035834ab1d947448f47b71015feb6240240449e995099eac8365e6202d1c82d75eca2c27d69c9173fc0ee7d28ea4815ee6b6416c0215494e94cbc0439cf9ad15b1cd46d8772374df23140865f0e1e2255be384415b48fb66bad49b3bd1e4f8bdacf47a37db66b0a6a919eb45a54b72cf6f503083da98b7140b9753217a5f8335c26cafc058ebd50a18d3b53bb7e0c3850d639510a03ea7f483b073b9586f0459ddc589046cd608a2b701e54b17543e2b6b974741cc6a8b3da71549323633e4ed375c0c79a1614cfeb6d8e8c46aea0da67c246d281e32cbbe2c064042e55b60dfca3f884ef85f132fb9d138e97fa047c7602ac49b84a959c4c4d2a7f3b548a0369a6db1c1bd2e6c7d8ac8647ba8ccc52e8172ac846051ce4d0a015b1cdfbd531c99db284a8183051ba0cd16ac2e7021b4637618ff2e2049a2cb94435d61b2e90148feb6f5a157c2cf684301f4fb4ec2d08107a1759913e8e9b805c3ad97db2438556851371d072d93b8c7c9106255d64f468538cdc5d1edc0c498be8f25bfcd87a9283c1e9e03df95839b108ee97c1cec1cc9f868ce7744923b59fb7726eaff5047571369e86326713e479f53076fde27cc3289ddbf55bef03645b6db7089ba7b0ac6d47c74b78d439d788ad2c572e5349b763ad26f0c653943f50aee2bffdb8d431b8f97cc0396f52db617007bcc08e0e71f5b59490640c46626993a1c6f221752aebb32ddcfb96028fb5baf7df71f8bc0d6942466500df3ec0f18e4408e419f7f6506d2ca089cde4fef65c6f177a1559a5bb51e8788a620734a1cb0343711beb7d6ce1b76dc14d3c582ac3fe5ffcc458481bc6d77dab36a2b2ce9976d4a4f92aa8fe201d012307714f5ee6b606c3e6e7f1c3b291cc0528132c09748d1a5bd72fbdbc3decff29ecde4847ad7e989759f853c6deda8bb41575ca9e915047c64593aba787a8f4c1fb272773357e82e3d189dbfbe0b4fcbad7d4448658db8f510a233dab1c9ffd84b829b3bc549b494d94725b54dc0d34859cfeab586eb26e4b930b560a754a94ec662c1ed922b658a08ff8406119534662f0f4e18eeb9e3a7ca4766b9e70a34cea929002262b0929ff8f9b9f14fe630d4fb281d89e0c4ada72baf85a9a2eaf3ff6a324cc1c6c14740f238acae6e1f5954aeabd964bbae87c695c1623afb3768919e6472e13a524f57cade4b0cba37e770a26dcd4e14de13b66139ac00e1a5c29fb97fe682229a34bd8d9bf37d4813ab061bc06c1417d65aee82de5c837b0fda07c3f9e70456de3adf528ef853637111f204b8fb805f9ff3097fd259f7a60b388899f39789bb109612a27bb2b7a158135ed3c1c20f5da0e5e1c3190d03b6b87e8ed3d1c6da7a4f2f3f7f9805cfca39c7be008f62524a83ef3533f8505687aeaea8a85ff5f66c2b16e4cf34265bac5462a424a566dfc415abbddf6f81dcd3e08306785e644b8f54af112e00f085552abd8448b0eb1e77abe50ea08b384e6fe6cd46972b0e047e6360ab7d8f10e4cb61b3f9bd7f7ed6a59b815c496af59d20e5ec46c348451a212c74c3f09aebe521982021c9814098a31eb96ebd185e74b08bd81caa85815a7b68591cbeb4274eb633c48f5452de7dcbbfcaa98adfe9e2d2b99a4c1ad89dc3bb63915e7ab10ecd557d948e67b504f2adbbc54160a1c73c43c1f53cedfc3031131aa9759a4f239d10297e91ce01ce19506c07db7e9ba96d08bf17919f2c466668c53e4e789d33301494d20b618296f9d2bc42e491f168f6f5facd276817ac12bb10e029bad09ece044a87e2582feb3408eb9c552d39cfa57df3ed9573c3b743aa8fadb5c00e1f6421f5e0575bd5101cffd5dc7ad7cfb5fcaac85e126063a70248641e37b866f97fa274c5128efd9c574e3e27d0713bfa5c20ed98532eaf47e13a90f2434c67b60b83abc883913e8c27e77bcbf8fecb725a0d6a192ca60c3a09314460b11e555c8f20d25739758c85148290621c85e999ca75164147cb7c1b8225bd80cdf7e63e2fb3e601803c76c754e04125df48505ab2a85fc15599936c4cc66d45403d2e26dd3e09e1f2c5d0d526f9a68c99ab57128f6fe9c1185d41f55dcf0021d3e2ffafc0a76d51e4c134f765675e9d11e21c46371fea3cd67fb9a5f43e06be35b20101922697eaa52a2df982b316cdfd71e9b6b69e21b180af0dc3bb37c1ee2ed82c47255130f4a709f784d47ba2ae7664e88d42c7141be87354104099aadba9b1746a3de8bc0d0297372d8ff0143d191df28f03d8a74209bb14e2e96541495cdf5f86e4e95749049e345abf4a34fc9b2b43e5c2147d70c7a9557a1c84cb2ba08f0ab224d20cf390a22f85613cdfedfeb2a51a628b9d2dcdc779412bd33856d24cf390aefe0177d43674cd53ed3cf00205579b898c665254fda5043ef78f6eb08a643f822a5ae81102d63cecc593f0404f29197472441f953fe0808fba800d820bfad18add4325afdf07ad9299937d4d835c025d0a891de3b86eddfd9f4eec906ba2763338e8c77e4254d006c655ecb7cd0ca3d1c2e84effd8da93bdbec84c28f6a9cc9f4035e6cb371cf804f8704a6086613e22d06557ece9bddd8ffb289b03d2273cab322c6b7b0a256efd9b1842b938473799a62046aa46f49eb38e1fa113487eb29dfdc9412e73c5dbc94bc91afd6abd17c6acd65b87b455fc7b65e4d8a43cc261db6941a07265318ac084635bc18cb7b909db10321be5529dd85e301a719d917f3bad7bf328e2a96154efc6c0107a17110f1cb4c3c5efde714d2fd81d84894bc661b6e5eb1ea8afd9d01586067fc4960cf93898bd92c65a29b3c27e7dee757113758b6b73d0d3ffee4448f0688c5919ab98b9e86fa9041b40ecdd2b71599193c8623a8c3b78171b43307665d4410f55bdafe2f2a2cfabbffdd66b3485bcd91d37b4fb4fdb23e08104e249a890d7b9d43e729b8bf907179b8bfe2b7b1ba89aa524b0a1ab49ec09ca306ecad2ff181a176a090d20e95025c98b7de71bf7d4a9242aee13b62e7587ea4d7ce270ad2468704e6320b6a82d12c9edb13594d9affc24f0e2d2f9f883edb0205ee6a7086ad6d295974c9173da01be5855dceb02cdbd0e37ea6d4dbeab87c2097d28a9c8031a5f357b29a2e6fcc720a69cae0918cbd929566593974faa3909db44b9fc1c3bc0c837989caaa298d88015a7cc8aef5278144c2eb164f344503b0b2cc870bf617c3bc925253433800f17e232e32be662e4179c248d81ce248fe753555b8b625bb9d1c10153570f8c66caebc6d8c581161682d6b2b4179db3ecea0f8bf83c9f6b9dd578f963c8eaca2290857b607d9bb0e9f1a34fccf5d2cccf9bee34b56ff0da862ae493064bffe5db6a0480ea5ee3d6f8f540b576e355043806bcdae36c4d17fcbbe10609ccf85fe11d58269371b706793d92c9ad423088482cd5d158f8775486b6e6d8f0b618d3ad7cd9b765287e540b0e10cfbeb396a3acb302d2bf2549643289b909b615651869de589d569a5470265d9c7600a34be3517f1b413205b3e68a13da0662aaf87f5cccca4d089f475d9e8cc5adcdb224d5b20e93a54e2bae51540fce733add2a3b65dfa6adab0c8bbfe660a4d0fb0695bed5fd71b3df2d45e01109f1601ad45fdbeba5f74aae348cc51c205a5a8f3c7e44a57389c2c63dc0a65a3800715011aba8a1a7416def38854eeef7cf963eca706590301c82bf98d8679ecda7973d8301dc76b20302de0f748a1e568bfe58c318dd761590b53c4b8747abf72d430eb55ca1ec496754d76ca8a1bb64247c1eead3c2265bd5fa8335bb83339c7ffe586764916c97ec10f3ebc9065b709d49758378673d278fe9993c6eebed67b060e2d64fc847797e026a15dae4c21242f7d16fae6b5e50610d43447f591e3a60d6202d133273ad82272d5426875b10f3e50f9e6e06ae62ac0fcf50ff94ce51c860fe7ad8b6045f086c7f4dd1573ad4baed8e07320b93e42d65e2fb772091e6aebfbfa9b5f8e88c3a8944f4b843bb14cbdabe9942c6eec9d437c5804d6657374ea8a2a7be99d7af40988e85869d7e42b44d6c1eac3a5179a5906ecbc77811bf4ef98579ffe5b7cdd63d67539b2267eb5dd89b4fd9c3c5a95bc5eb2a9525604d72bb3d7544316019967410c2c3b7d43e96ba0c45bddb93ecc4c88f3d8e9ffad31574c74914736cb04cf8bd80c0657ce1c2f6bd0599911d14bc5c3bd177658bbb519ecf62dc272893dc0ceaac42dbdfdbda55915d7a97164226f59c0ae03c42f18633aa37453b22d2b41cab153101c60b78d89ff23d73be60b8fd1794d32331ca02cf507c4afc8fa6c7ee04370a61dd50c1e20acdf99047e87807d1900db61c5d593755cc0dedb9d6acb85af1eafb118808d6dea14d481120ef1c92288ae7ec933f13d843eaaea546c3931fb8412c5b593f5b620c7113370835d70b5023defda654e561e9d1607c6ef6dc1023eff28b24c9214ba59be67371cda42085fccd03b74741a40b2f182c81bd43b4946b4360307971b9af1374dd627ab8b19d5da90b9a97f8b7c8c35b61711080a17773bd3178eec6bd7220801642a01557312e74affbd7ea852ef143f2b87fad46b586227925aa6528d8c3c935f5124e3dd15773c60778e964db6faecb51858c46601a681a042d79204016432d5e5d97cda5d8a5f72bc475032a8096fa1df114e22d6d149166b44261e8c693954c71ab91178d10195da6ae50b7a99c7111b4d4b420493505398591fa0ef16382d003282c92502b0e94fdef3d3e29a1acd77f4ca9e69be94972f35d1e2ab5954de4ce5fa9ec6ede325ee48f82b78ff57a404ce57eb9c63f9477ab942e4485c903f334513a1ffc94fe485ee9471c8900eb35e91ff7f0563a172bb2a0815f631dbc2fac61e513f58c94352bf8e5a4d90964c5c2a940ec3f1546af85571000cc8a3067cf2aad7011c944c37c398e2f323b8462844726ace4a2ffb2217e94fc925a5ca4e585960369cd9d5fdc7488577b07d1dd1b20be9ec597e28929a7e151f5b3890e473991df9cece0d6577ac4d4ed036a710dae50b008a5118e3b0172b98769d672fc939069546868737931f42003ac317ccd4b0b0793a9ea98575ccaa5d31172a8d2474559f7ec6559c9b449b3d871845eba2f8d3e2a1dfec748d7dfc06079d4f4c07c6bfda4dd93a1f2ef08cb567eac27dca7da634bd0f932a3f2b748edc3eb0b470bad29ff8572328ac29200305789510224b43e14d2ed07303db3b91fb6934ebe2f0ea46180ff1cee4195f85f266f468b4394c118eba1f9d1c320b882a285a1264f2c578c763bec87080952d5b910b777d6e06b97bd95008de53afa23f23ae62aa74ff6f938bdaa3531b846f25efba32af16748b3a51eaede1baadd01539bd7ba496e327c2224c07150659b6aea6113605706d626ddcef336e25b22366215b202037697cbdb00d8cbf668bf30d071830994e7873ae47d2c34f42a97e950a899efc4a8b92f27d61d2891c2680843edc217533c8cdd5cdfced146393d68bcb8976e462730ed10960382a6f6c01a41356b437dbbf20871702f715f079dbf7d896c73b647a03a0878dd5e4b7b3156d5939d8f2e7509c7f93d97d5b2360387bcffef064cc4eaf85635fa2c29d7f36decfa6ab4bf8ebbda136c48861da01668d06b132f3bbf027af2c89010211643abdfd1d188edb7dec477d452f636fa6b035a45b42c9f2178e5e96ca32f4d8f2d33f1b6810611097ce63f2e5714797d58a724a906dd8d8ab3151fd215da9004b1a091a9f1be264cc3fbc8ec075de0a064e9cbbbb57f94fd3a00bc69ec95ce550918de85a983eaa0e35e5e5d5faeb49bd65537cc898d44eae78bb5ec1568ee35afc9cd4230d69602f917fa87af25ee78223d489c74a4e296468ca97d986701e8435132a59620efc0a6c668395dff358cf6261e5150b9151e8876417193bc5ac60e5a69af60ef744c5cd995fdb58b0e004278b4918c84ab1a266d70ef390c54fc007228ae41ecdd0d9d23f3c096089446cdf0d5b7bfb4f1181b2e21364a8c48889fde29eddaea5ca5cf64321478b4810098fa8f3a598b365bb6ff3f946c6204d231fcc62f6f1b666f63978a4d7110af98bc3e591ae1d19ff9433fcf793c85348d14008f2259d3619bb413b92b51274ebe9184537594a9288408732cb4784541ccbf7a9cb75d0925c5631c430d5e3f0e0b5aefe36e68a9f29d36e343ccacc6ba9d9c0c5a86f5d98b97b78b40e2c4b8039f59f85bd14c4eba19731bab34388c0a309e92ff2bd7954190377cb05ad64201c21d23bede9ba63372a61d0fdb82f499ef23cfde90f0628d8ea944aa54157c672ab2fb2fdc451b5f054ae760169645ceac9a0ae5136e9628bf6b3f5400bf20346eb1fc898184303b8e6da4d2c442d81bfaaba5af3d574b421b2892fd675ede7bcdaca58ace8573d702af0655864aa1c54f782550bc293366c62ce2cc70ddbe4a06237f5232298842ba337a364c75c07b8005802676c41f4bbfb39a0b00b8a5c103df3e37a64e944b76b435ca0fde410010d3ad61abde4efe80b7a746225123a2ec396d445dc2b3b34f34061a23eb428b5c73fa121b2c9672fe2a86922572f4fe4bd24126144952631088d3749241d5d806d1a7a1abed4559d867551e0a24473005156c87030df40689edeec1f83177a20d79fa91d81a47208d4657fbff80cab1dfad5226a8e3bc7ecfcbc83c0784087c52349daf38b45058b295105d0677f286024575c35ba6560a147b4d6664979516eacf240814331347af41559ecffb48711142f882fb07642f57ea0f12dcc07c85b596309e0a36b9fce8d8299c1031dc13addc61fe4d34ea7057e218673abc488985cb64b180608a17e33404e971726fe07ff4d5a8e515bf2aa55e87838373bc271d00e2db1871b71024ab3e266f8608870d87b48a9a519fd36e92828e0851d7a2598f54921f47ff66aab93d898dbf64b398c206e8c289dfaf1409509ebb5e0f64a2c330e66a54c3c79614ae483effb1498adfffc0c5a6ea67df32b6fbc5d88f43dae13f2ad24aa8dc65990065d8443a3cb715e457f8268a34b75eeb43c7bca1228137334c5924430cb25f823e815f957d928c4a0c7a207888c343ec73e6d5d0ce838eb88893141105de58ec3a75fa522ec518618616cec4705f740b348184e9cb3c47224c45c570c21fc1cc6f3bb822365dd55cef8811e6055dfa322234a2e2e812287822f4ac913e6540c21cffa04510894f3274b22da4c0b8408cacb3ed873bc39defeb2bf6d155330ef5fe50a15f39774f86833eb3d5fb483a468e1589bdebf9086bbf822d3e0425c11a036d1f5bf906ea3031abe96e1967b33adccbfd950b1e0734930a9cea0f9bc29512aadc168fe31960bf1432aae5e26734222d2e3517731a426bd2d55b3a00fddd43e01867e3aa7a86d61855cb1a91306f94e6a78d4d41cb98b10d314dc2cf0032b15ee9825928664d6f4b5dd3977f15e33349162a758b83687d49fc8052504f7331d780cbc87c0ce45860f904cc4ba30563ac6b3fd57d0410e32f34c0110f931bd5048b7f322ce2c61de36558edc5086649db2eeb364ce57eac0a69acd65566e1f2366fabe0308acd8977e893b395024fd20b0f1fd58a658af0eb5f1006e12ce1839f78785f55709a437368e4eca88375c04f02d58de3734f0d598b90bb12fd576174ffe854dfa571e03f2e0f9e59d18c299b6f9171fe2e6e212d358955dae0553f7cee23c4ed07b137ba0b2ebfbb5df5d2976d4dcb68ba2faf8b9eb63ec21923e879bb399ab0f0c8ee4212a5c9416a77a61b4ccb8157643d439c015ae9bde63e00dae26f66c219fb27085c291b14efccb6dcec76bb80421574abbcad2505188e8330275cd6588a1aab3a90052cd7eb7a8fb5746b589693a12cad7daa924d4ef8b7197bfc479077ab17382a054a651a8888f4f495f661a29ff6e48682c52e314f2625a46670f412adeba98d6e7a2be3589a57e5c04c451d0b8be789712350ce6479e0461c73300cc5f458e646b9d857cd06305222c7322a2504d1a8d7ddd1dff9066b2ffe5b7f722cb1f2a9bfc248051f7e109b03a601d9abda7dbc8244ffcadc17f75b81de412c62600d9284e28664090a69d0721c044ea4af08920062a6005e8dcdb0a2d224b4819f1066f9e6ff66e7338b718304da8f6e5085ae39da8a57ed3d25fb2b1b27174f51c1a96ee11d9dd711bebc305bcf2416a955f57478a864d01a6fc31fd0104c65f67a10c86cf24aa8e11b363a7f60195b8264f8e41172ac855c02a675b0e4fbdb272182d4ea5775193c9fb308b02cf7f08643c60ee837108429a46a88e02ec23a13e2d8822b5ebdcf48b02336da146c953d56f525278e6ea405f33c2caae65f931adb7ff2efef206fac16d764498a9fe785eb11cccc907d138e8514c12dbce1920f460ee982e95816120e41aaca5720c0d648b805d78c7a7362dc3a380d4cf1ed78ab693d41f6660a9df27d9872feb4a76815b4bbd736d0fe495a27c0e38c5754f9defb6d93293351b9c8e147d070e68e0abad0c8c18898abb3209dd4b811d6dc9013054311317511db0cb71d60a495bcff01fefb4654c8ee5f9841992eeca4060fa63a6f9814604148a95789e1e091fcd1a04bedb220465ec7445b8ca5c4b7f7c660c707d5d8ac84e7cd2339d73025371cf082fa2406b17b6a3311cce851b86c6e1be5b1e6e181e307b4df8a3a1cc02f7a0a6701fa99a98fc0e7b099bb93940c7490fdf7addf960ccc1a7317e7a93fefed625d0045d90e998f15e30c74c6e058ffaeba9c92ca17481c4f0835105c90aa85cf794b1073b127b354240b43f7749f84a7e0b03a3cb1d1b73e04c14a332c324cd2009204a9f8e945c444977c75462023638e5eea81e9991b468ceb103dc4176a99ffed6fab0f87f148e5fc4aa8a93551555641d3e024b163bd66d1fc62a50444075201a1be8b24707b613d85ef68a2dcd0a4586b974847fd4d5dc6143c447587423ca9b35d4bf6cafdaf6fd29f663dfc51fd3b3d34cc40755edbd7c1f6d6f7e3e84579af4df611a878782eacc3eb28be096ea55cacc64a2d295b4966fb4404ee5af53306482e2880358ddbacc9fbd4bc6944893f0e03bb515809988176942d3c12bc8834236279700d23b499221bc46056762d84f9624740296f0316289ee460ea3c0e849d78b23a31c6c777d95cf8d54468d191181cdb04466fa3014a10efc9ab75d79dca33faeeb96f66e995849e5f1c84046bc9a1a318c77ea0e7e30fd7270dbc7cb6ddd3ff25f2b14f9153e24ffe2e92f6a0d45c34988195e4e995a3a05f1b99567d571f06281e2a5aded273c828a46baca97d1109da11b67dc1772525e1a3cd6064f973ae420afcfa50f3c628e30798f85e3683ac8c8d2d9fb9c0207305df68240dcd88f53d1713624bf290afd7263e23643cd9c094f11e6684b3ed51a7ec0b30339bd8f205a01343e4de3d15710bc761f891a250355a7160e92fd550b01d62db1261fe70d27d72b896ca17a3673e8b05dd70cf83a313a96e217fb7172f5295a5d90ad2c225e57ba19c4357ebd9781f44589c56533c7d166e8a92635b70ed2ebc3be3135980a60bcd00a7eb3ead938c3b84a47e652d438b034ad1c6a999c1441ebf765df384b1d0f3588198395e95f3200e3632415586ec755821b72025126586008bcbd249725b7dc96a5b82766ddb5b22a6c8004eaf9de30f91ccee3377d6268d2fba96f68e8736a4d53f68716e58a48d3bf05371ee948ca75f52dd7c8752f252760bf657b2b6b3df725ecf4d4510a0643191c0ad1696c6ea4716814bfcc0efa1d9bae8e54508351900a46ed206439d1bd76ab3c7a091110884d2fb0bed3a8e56867ae1f4a128ad34c9908c6576dec25e999e55f5e0116717e752a84510af0c050a45ef528e18b76114728c1ae6308cf52a6c444f33e81c379b80d272bef0cb15cc8dc9ababa6b0fd4bed4e97237a4700e62c68516f5732540de15a671714b03e3bfda939f1831395493b2eec8915b28f691eb636188ed60a73e195da9237d00004a880457d2508970f8c6ec5ecd27b9919d33f2f70cf68ef3608f4504e1ac465293533c02baa671ec98bb98eed2cb9e3e89c543dee9ee88a9fd43e456c9f8398494275221eeda6b63f4553950ad66301e9eafa914705bf4c6a621a5c320ebe9e06e255ce06a14bf2aaf3344a2591836f1ce58b2185f57976f1a6b1f627723c72a74a51a04f0230168337d6ac5f0d5f81dd3766c1efaae3f1b1b45aa484263195f3bd72dfc3a7cefff5815db71118dfd199944a329f30377d7bcd52f7551ed0811a165183b601d53e9f59dd90185dd984d9c6c39e838df176d6d4455bdb9079b63ebb55611c06badc65a419669694c4e454e4f6cbc5e42261d63a6a704e31df4fabea872f519ba2c6229f444eb63d6320a0a4c5c8d8d65776d4ce236e4755d38ea9386500c6749b936d6992335544372fa0ccfe9154a301553b48e6eac8b70bf01dd0fe620affb26f7fc5bca0f6ff794c1b008ecf59083829d6c1a1faf85982ae7fbcaf9ba3f3b3eb71b03ad363a31f6e2b334de3a77175f2923b7bad2284caf6b7b3866f2f65bb0fdf7b74ed529e1e99f8afa6b07935ed1ceb482dbfdf750669c6c3ad8327510c4be5d60652af2e078fc4fa3fac4825f30aebad1c9b139ba3854d71d27c5b06ff6089522f1c242a161e098d00b642f0a5de8ae06a0777a2fe3519c697f881e874a0cb1ec76e16376cbf12b17ee451606c97292b313150d3c4c0c89f571c4bdb055aa5b9d813e98bbca80053de8a97faa743162c8933b2cfd609f9dcafa097b54e838e163d90ae69fbc80ac8961de730c6330bbe62048072392d965ed7f1f9ecf64e9600257836646c7218fc32ed33f1968c47de0cdd521eb6c55f5a8066a2dad414910e9cbef5551a5590146e38cb01bbc471c067ee3864572e3033b29976b2577ec14ecb1cfd80733dd11ab38b9d774de338659ad96b20791f374f1f8069cf222bb21d4cbce8756be5f38799605f3f0a41e76bbe1574b3887998fbae5859ca3dfc2c45cb567f5d4d0759ed786098cdedda7198bada2a3ad42736834fc1907c08e411753021340f453f32bcaf9815bb8c846cffa386466c2703c371d18298cbc5fc1d6b96d9560a77a421aa0fe689d938772546031e13347dccba990b32dd305bd5cd0be617d5486ab2bd757fe2951b3fef05e284c55e27942f5c84e71d278ee5f562904403f7a2ef852466c58cd5ef12173c28cb7348fa8338e62620af9b2ac441ff17777a3f94fdae47756058b874fc05117ae7d614c46b3ea1814b85730ea62375ffd0aec780c861ca427bdeeb75b875e9a67c9bb1c69de57c763a3acf24531afcce3e7409bb407824fad549095fb7178550f0b5efabfc1cce50e5534772cc6494e3477d1e3d942d4d108dbbed7fb2af95c400f9505e894b903711175bc7eb83adfb9d1bf1b62c3b376653190e079605a9944443aa9ca66ef416cdc2f439d6ad6003418a8db9526e9d5f5f8f39b980ae9eb0b6a17c1f3947cd4c975dce1a5dffcb03f356c3d9e464fda679a011690034fc199e855e3d11f0e45cab37e6826ec306ba0cc8ccabf43910111e574ff533722e4f842c2efd21046c5d96bc73206069c52f49fb0ec9c930ff34cefe3ee96fefdc354317b4571148a4a3628c2d1779f948e954a3ace8fec48fa0803ffe00e0ecc3995c41bd588c9996786980345371918a2951c15ab5772d7775eca137e30befd7ed7c4132bf4f199d039182b012e6054e7f2eebac857732ff3c55205594bedfaf20f2dcc44a5e5bec7441db8fa4b6b462f67c4e887c172ee1d9ce15d38f6be700a5d0d4f99343b8ec35dabd7172ab03c2a5a2b5d52024cf8321d1c41f2b4320133e38456e7beb4f6788158059f1c4a4e335508d0525815331cab171ca792a9ecae64380e1ed83e62b12ab35dd371b05bdb27e3544c55c1a60a8e126ce7b4933f311e7f1ca1ea2f58092d6587a742214fd8f6a72ca963595b779648281c17f2b62d207e99c233ee1e0534c2349ddd922406cffb24dfcb34387d4f8bf4c196d33334d08f66568ba6b48486e08798f88a259ab2e0317b567c89a489e5007b93d219d968c88e060602bd40049645b7b56f693eb379fc82cce0f0d2aa32c8eeef9b090b3146b432a65ca4d2278d9f5efa5d3a0110b82e3d23e5e702242ba6a0b33b0ea9bbbe955e97318f1acb992bc1602ddcbd22d4c3d2b739d48f0747ace768740326e0b11662c09026985800f71630b03710f2e349560e52b64bb5919cc494fb4a7779f9383ff5de0288c6479f863381d3af274943c035adacd90e369aedf7d7a0d6fd29442c7ffc9ba07f48c14dda4b1ab87fd1efaed18d9db7a0e6db6f4507288970f16cf4fe3e61963f133eef02e718fd8e92dbc4913807e0d02746066426e92709dd5c388ce2d9e1cce1b0ca9eb6e849d8dc9d0f00014354ca1b712cbc25fde0f3797ea3727bbed6b77f81cfc5ae91061dd07b87c48817fedeea78865bce43e5012a667920168c0d8af2ed40dea3d5d1befe0ca9c557e2231211336d1cae42358f9ab8f499b0a747663d075cca13c44aaec1fd8aa5e6dd97f8a97b7c787b3b88283d2265dd2dbb61a005ed6c17361c9228f95fbb593a7669018884589e8e5ff1dd4f30b3715bc6e4dcd01add07fccd7a244aea40ba0c90c42ed31be69a2f7442d39f8ab3a0d8b9ca63529993760d93abb444f526fd100433b30badb784e4a36e0e083be41c60ab3ea6d24f17ce8dba8d494c76a132cab0602c1ef8fde334f1397bad3623111016473540ee1a6fdd53ad507651fc38e7d7b3b1632f8adf13c532725e52293156e1511c0a82545cf4e06c07ee97e3af0e706cec53686b7643cbbf5bbea01c61a03e85d68cbdb2b28b06f6077550d773db912c7e8752854eb2157a9599d1516592d536c563f0e69040484220a0a4981124af9ea900ea9eb13a5e5e1df6f59a2e2ee2049e19d739430b24f4922ebd82f7623bc8e5930931610be95be9604961cf3deeccbefb2a544d06de0fbc700632899675808fec653715e1182f96a39aba56524ee10d650e7d9e0da7c4a84129e291a4b396d6ffe2780cf114bd9542cd9b9378c708772155fa30e0b97cf82be9befdfe0a60776650f3894821641bfcd6a904772e113d3e91e7f37ca8dcae496c5470d93faba416dadd380208fcd3051e0c69b7cd59e1cd965830d32e8ab155c5f378daf71096dd3d2857f21a336732927b0dd697a64933fb6a9c8f06dc87595583c6c628531a047cf042ac9c55c2c6c6e1593cbb15cb4e0d73aeee666e8af29a1f12e153cb22687b6b5b7becb2551b9a99adf5a100fe034751d36a555863f18e50dbfe604d2172939e687557d1995ecb32e21c40cc4b652050efdf97840d8aaf6696112568b7a575eebb8868bc1c82763d34811df1cab79dde7a6010aae4d94fd81c802b0c5b587eb0421f2a3af18dc32b76c9643d635379b7a5f9193d73d86914c793a22ecc6351e727b853d2dec8c65ecc396f627380e38cd79581f2175e1ac66b71887228a409d1ed88253a76de6c49f017f3870d1685b093e905985eba33641258283f1aa138575255b617ead99e892d5425c4ca4e49c22458681b0bb699948c714ce4efa5eb822710b1578b376ac3c664a4207cd4b73e1810d465ec3c13871994961938716c028eca6953c345a45e7f0a2a4663e854fcec26f53be4c25942cce74643f0f89f0075ded76f4fcde3abf636adcb5bf59139e250b116a29d8ca31be3b785416a003c9f21e4ae3658ea339b181eaced7e8b675989d9e158af640d50a3cb88b9ddb171434fdaf9769d5f16e61edf39b97cb31665bacdcb335b3ca4f47c1e79f9b65258f8f42aaacaa3db32651627b4e12dc0c8113b0dfc7549d527fa9726c72a7bacd26c24f956c93003638d74bc98b43b2f074a3ded5c32a1501d5540b7a5f5c42d68d92b44a98f62a85d38d218b0c4d1ca2cd0d6ef5e8a46656174361723a15252967ecae331d4d301385c3e1c571607c44f2e7d7853a91177ac4bdf7735618573342c648aaec896186974f81c54e714cde51a2c20489625939f71c1f6866a67bdf348d3e13f55a232e8b9503f6e9f0c64f4c1a2b8b49cfff57f754d40cea14cb30072b2644dde2ad1e2c0dfcf933a4490b03bcbf4365d5b778cedc948b6ad593d1dda9cfe791a425f04037ec6297b97bd3a7443f88f8d5f073c49a0dc8e527ab8d33e1d77b992229c606fd3b0cdd392a35aa95ad55d825cedb6ef9177c1408151df20ed1875d10e91054a59ff54800cf17e6476d69d2120d357e9554d61c9d0f9a0b68329d9b7673a084b4d02203864ef04e6645f26a063a50c0d5787cd694086c93f77f8a5d901b64d20dff2a4864db76f872b7f91041fcb09157a5f0636c143af25b8e3691f30c09e0c657dc70ba8475a3870d204369589ff437751e73a3d58fb6545a8ac80a24094130b7dcd0581e5c296c38161b89979a95db25c341496fe7f38e1257ee94efe5588c453f3d6c666a065edfed4dff23e878e90619b88d47800ab53e80b56ff126e17ba4d5ebb3cc734bb05746c1f940c99d03750d6966a7711f6b820bdc05159a2a6a010490fd2ff5800b0c51fc27cb245af64b596d5d97a4a72dca01d17e259d18d51c21434622cb02f7c2dd3755fd7b8aa02bca9dfa40bca20341fe133ad166f70327c173a85ec326716d4d71a2e08d12b919e38b410bda585a0e56a1a13ebb02d3acbca8d83d9683f91f033f0d0a164fc877061274d624447d6bbdb3d5f5497a32a60c16fc7905fe379784ff3248753b840fd2f252bae703a09f1d0c5fe99db1687dd3ab25d295af7bb1a1fdc458312646c95671bf74abfd29d91fcd8355bfdda48f3ccbe8b2d7655581f94e566048a868345368a87f45049690b4ab954caeeeede00127669488e62fc3ca868eb83917feb578d8c32efe2f6172eb520c09525103780d0152e88cc02005a3b2fb7ba0a79fd04b3f999585775164057957388699fb5a8d501ac7d19a086d07374d43ae2ea7dee70cd4aa024f92611f6fd03aa11625555cd5197ee73aa87d36eb40ce88c5a0335ad75fe20e0e56499e01544e7f6698ff8b7eaa8b67f42b2658d9ba0e66a44bb6bca616bad8088755e16a7a818cfc5a22433e79c5800f4b24b09816bc3a6994b2cd7867cdb7a700d7eeb0d3c84df101f84cb6c9dd476aa84a85a39321fc2662deaa49aa77b5fa7578b3b0c43b37f17caaa8dada4dca1274ba5344e6cb27c4060559dd37ba691838a80146ae50ac1de6013e69ca464584b3531d1c373461259c8fb4b4192e2dc76014a1fe6e63cd5992faf72805e2a305bf028b40aaab419789508f2cdb33643fbffd21d6883a7e42747d18aa3b88931d77d35beae46e421c48a30b6eb21a0a107e380ee142f186e225c5cddb34c3045cd7184f6d1b1f3d98b478231f55e06fe98c91d2b10b5c80a40f01a34750875dcb0fb445b9a898dc5fcf11060a6041a7559169239105d85ec33179fcb68ee448440183e53050e56a2f6e931535895744c9b1eb9bb5e9c16774e21eb5d836a48b0393b0d8a5509ebc63933e30a85921f0dfc6855892b6bbab6c4bbbb2b646af461fd25a2f0cdcc4b5dbc294db8a44efebd5ac1e747ab14944e9fd813d47632e4c4e753054bfdc96f9673f4764f9a5c5f82cdb87b96234caba000ca2e6ebc5d66dfe0f851f9c956f67341ec2cf7ee849dcfcb0697c3f6d04b731e4caf3bcb42c7f2827aba271f483e41a26d270673e824a1525aa499631f4bda4aa08587414c7aa6b48214baa6f0195483f70f20a2afdff04036fa651699049a9fb0614286d9e145a8dc906a997d8409138d93e4874efd98474f09f2f2d62e47eadff73c5285ec47fb417bc442d4816304bc3a03bf735296cada6954a788bea587ecaf2c333fc03c5868ca9d083c7cd5c1bb3d351cbe60e1bf1ab2b37cbc154d939ed80394b2c590984148b8b903d73a6be4def410cb62de2190fb16ce3a2ea4145b3fbe7b371867793aed168c50f542e901cd7971403092ae25d1958a91d0ebd1ad6a6a7dd7f4cecf1a3006dc8ab911cad057776bfa4f082a6b9aae73590cbcb9064b12a4490af27cd18dbe910f989dc5335e0268e0cac810f10ea821f3ae8dc2ebae3602a756f74f3ef3b07ab85c0dc9f47009caa705cfd69c9bac5a80dfe80b402f7ca2228a5c9041cdccd6e3ef6da6b87b833a967f11aeea98ad3964371a610fe8b0a053e3e4c374be65e8e23d3d24469fc16b84cdfcbb723fcc5972f252ed2a280f26955d9163561e6c775a9b907210d8f4fd0ccd4a4dae2bec98e5d08ab0c79a55ebb5691b6d3d43af4193089ed1b6dabf46c7955aa648a9a3a4e07d2055143e7477a737fe19e2f3e656441c608459ad899674374f60a59b5442db03d348edec1ad52793c2a67cc79bbb0b2b6d756a64d937264c5ccc662a3156467b096bf157177e0b50a62cf43f64d1c1caaad4cb7c27e9d613586d0c3a964852eefff160cfc0f79553d025c74e06f2c3cad322fb9054cfc4d28891bcbbd54968dfc7ea70575f951cc2c7b6158183d7b38b73743f073e9fbf81ab8a79fb9860b86e40ddd81475dc77d9521433d8cc937d271d56fc84fc987b20dc65d635efcec1dbb56f925bfcd3d0374cfe561b3be83424aeb0af7fd00eb037518055dd8d75a2bb83fa88953386ebcd3f4b3a87b0f3fb6a403cfc0b05b29cc10d3e203507903bb14845fdbe3fd24460c032c48a53d2bcfab81f9627d8450ca24b2d04b5ab2875e8075d4121d463d78436f407428bf02e756e86ecbb3db09c6d5c0f735645aca6d5d46da6992c01f5c3473a90abecfe0c1bd0a74c44dada6aca0c2d5efd285ed360a5750d926350511eb5cedfecfab39fac3cbdce9533d03fc46ad30de620363a8a4557d95ef157e04aff089b0d279161bd04c762371a91465fb867559716265f68b2c19121ea09f155ac910e060dc4e20c5f77982f7a05337367462ab1dd19c886cc72b756e19a47737f4acb87f28ecca7e5cb521ed368c98d0e7eae3886a0bf787b73cd59839ad9d36c1359726812235c8a6e50090b1820fe814e9385ee9ee82e8672562c9f4241a5bcc9e1b17ca4ec83626f6f2f57f4e73a1e1553869803af01e65aaec9312fc4f7a67d50812bb93781f47eeabfaa9042f00b4652675d2e3f3bb3ac628b7137bb9c779599a25701dec0fc8ced282cec376564a688b60415e024ef7739c018a9a3ddbeee522cf14ae468ae9664093f773a5fb1961654229b58e81229b33815495c678ed60a77c485f6c4a243400cd0e6905fcd8029598bc7cd98b1c8e5b8e3da5ca28c9fa78fa87bbcf465dcb630a21fa58424d4122d2d09dd2bd8908aebe89a48ab27386342f2912b607fd806552a3210fd0947556079c76a59143d44362423172e00e87ede5aa4e6454ec4247b6d50a265c5c0dc1ee617e9cc616cabf582efd68f9d1b235d54941e73c985f2cbfdd39c3ae19f62ecefe8d7483e91d5251b176fc11f8f6fb7b88d6510a8036566823459ad821177e5b152fe9c888f2b46d4ab28ba10ff1b8f4576e5b5101e564b2da2cc611c04420e3f5efeea47c95bb370e4259f6a465e06544e747ad036b68d551659e1cf1ed9ce3d3a05041753f767d48e01f9434d7fc823b6aa175ac024aecf4668674e14f0343f2c77db8e82a05dd1a54760983cabe2a1c6df6095ee7ecdfba3616deb06c2d4013bb7da9820e22a34c44a6aa4e3a96a72657094eb5353fd15a36fbde3cd11c9fc9c8f82f7ff8cf1a86bd91d53c6e607fa4b4008f5a132a451ada830dbe485d65da9673f2c80f25ffd44c2e5e8aaae9d0b8d834f0fc038e9416e802813b3f94ab34d46a0b102b9f3dc27258a35423c7b0366868ebb5c9357d13ed0d9460321f556875ca5aecc73d2bafaf42ed6837304395d3834e549032943fa85e3ffdce604b395a29944e81653498bcf54c5354ccb6042f7d2dc52d2d29c29ded60d2cc3d8fea823470f8ca928c602e80d1f9fdc432c5c685aca23a1be8e916c466484176e53d28afba93b76ef641042143574c80fb97e2d9eadb9c1a70fa17eac75c7e8c798ad04ea30ebc1f76abc6cb101ad04e7024a8437b9820dde7f69a4940b4111cd0483188d69eedb61958716919e150768da5f287c6ef5fa3b4a88674a29409b005c6571b9867b3c096c78e93fd61f02285832a7dec89b05ac2304953f3862724f8b5836ce820afff70360f9282a0bca31600939ef19cae2a3f7e88b9dea84a8884ac3227e872fcdf792048e70c6dbbc952abdccca8baab1dd0b9a9312347bbf88c170ad1d2831cbb3d9f4176c304de39e00dec9b79ca766edf21a4efdc2499302ac65dc857106cdea2af6226c3c6e872373bdb2908a0ba267b4aa8396ed63b3db6d922dd2c72fee83ca2fc3867fba07a5bb2ea7c3f753492b957beafe1cec11d7ed130fc6526f4acff0677bf60d58fd959d2e0e1178c1cbb9a0c771e7f7509dd0d1b289ca4a36754dadc884fde30a1ddf5af2315cdd07eb1f94e804ea6709d3ec5a6e50c68fb6e377def62a4c5d5eab8474ceefcc78eaf51a3208d50a5414304f0ba4fd5ec3df1f23324df0438be4c4fb23e0e89d61d90f8f709c17112a266e01d06dcd24cb58a32e8ed3159c2b36c32757796df076a1822a60a994139bfa3cad54bfbe14e409ffa1597d64e87c93661d248e052e83d9bd69f9a4fab63229f1b7570838d031e1d7648624d0b68b4dc9d3cc72b9088212242bd98364ec8bfc2423a120e4e19e49c28f71204799802a27bda4d39a2f810984b9d7152b7de06a5a5bb37996f662764dd5fa7adf777d08b550df425094024fb9b6958e10ac86262e5cde1876e4e3ccf25488764ce063df57eb36b8bd38a161aba663d91bb09bc82beb2b8c7be0674a2b0f0120eaeafabded67fd090a632d0d2aca8d7e350bf69ead73f7649a337c8b3d314c2025a645a23b906b8967a8eb7aeb1d71083e5e162ac826fe7bc5e680b750abc8cfc67bbae862f41081b49030ae1170458a84e27d1caf1508b694eff4ab8ebdfbcaf2b010843ecbdb91cc8ad4266f709c5b76b88c1ca373692f348a5da8c765b29b0307580f75cc75eacb011340648d59740f474ec6719b74571279b225a60258d961ee494827276ecbcc1e3da430ac17140caee79d0d92a2d570089640559686dd8bc23597d8103bfdde5070855ed7371191eb048f4b9851179491a807e6414ec0b8197106813fa675c9934a3b1c47ee83f7ce335167537f7bf8e802375479913b833fac5da34846c9f322d221210285272b9913f18a8e59553aa05671c7e96c6860b371d708061990130882261ac0e0ada7042b1afa5e964ee60b3ec154991c4c5ed041c83b0236d8805a11ff4fb95e2ed89dc8863b77b112538a04b5066f14701d0db6851e675ef66e51be6d2d5cb7c5dc7c6f4a7854b23f78d2b705f79053809aa5e96956ef0828427926d28bee2df0993d4b74abe93562c6e03af0bd96772954c5aace572763709c358eb32cc653befe28880ff960b9486f18944a1408edeeed76963b935f168c9fb99c97114ae3fe60c1827fc64ec2c082311cf48651fbfdd7c8d2cb0857931762725d7a6e1b728b8462e59888d0cca3972f3ac4350fa1958b98551fa0416ec8666b2453d61938d73886294173e0e1bb09dec423c47c438967aa575a69020f8453cfb810b9071be723196f81106df3b0e4f56af3494832522e1666a05f5a216f84de3adfceae6e5ef4be46c4a71884b554c8354b802027d5df133fcef9b51ebc5be9835601eaed644248d54345e9c568cb099eacdf70f2b74c544ebb439ad44820328cb96dab32371e172a9c39ed32353dbf411b6da7cc0825b1e7c1ed7b978f58722835c167f97a3dee99396826df2bf9ba7c633436f3dca8defff54e97bc870e60de77230c55e884e336a2f653b86ed237d856c5af1c16a5e57782b3898d2d77688281389f324543de8ed61cd777870934cda531cc147280d6c6785995ef47138e3021ebd4d05065a4ccd1bba4500f0bbe9634b2847412a5c65b221f61d3bf3427057dc3aa4c783d2700ad6b96dafccf43c251861a5c628e5a018783bc11e4e7b0bab96f5fe9e34d04036c96900bd089d78dcee6749d9ae91935cd9a2263401d447254fec78fa5440fb89c885052591d0e8ad30b9de6a1a3a29ef9e586320b9aec5b74d214839ef3cad4f5af71be7aa618945c93bfedb24ed5bfeded22d0af44473605065174de5be1ff031887526e43363581085920af0b7f70cfb1afeb1635001f9db88740635119189c7623190f3f5b2e569cd953ff55d1db3f4b7ca702cf9f231874c3c22ced87c58d67b22b483951185a39c70974848c37eab8a2aa90988cad8b854eb3167c4b2a6b9d48e62e7df83822432750777063735edd4e81f06918acced69dea0c09a7694ba8eb1bc9a6c2bfb723739acb57f35b29b1694cad041f7e3644dbb847d6480c90246f8b84312a572f900644cd24def8ec35e0bf9c2531bd0bc97c11bbd3335e666e54c2b0541c5af04aa630a0567e0e69f53a853dbc941e52a5b56e438f2bfc19c91b5842a3ef5e8e583e36ea7710f81d9ba3694440a927c23fbfe0a0faacca8fc623e564a4adccfd40aa80983400dfc4d7e2d4dc3fcc3d80716ccd517dc2ef234528f9030f5e30bbc09951508dec92f2e9d079c6f68b28711865150c3253ca2e7ed42cfb6d6859506099cfb454b805fb48a6103ca72f922a693fff4e3d6d778607cc93f3ecb72f315dfd1b4bef251480eac94b26b5ee5955940c2f14d8c7841f174bfbbdcd8eb4f45ef3b8c5226065dafbca0cd3afb919ab47601f180dcb16a4fdf3bf4f54a423812243daa69371914a4603ad9ea899bf9623e89c5b30fcc73bcc511ac0882a4c98a94e5e93ca9111ba1b8b49fa7dcf7775d0f75266a9a6c2733582ac521f74ae29b1873df118cdc9064194d3588fde604abf7f85431c774e30c62f18b7268bf1ab2a0c54205615a0b97cb2df54108f4cb02f1cb6843110504bfe089926e85678594f2269e898cbe7c09410bbcb282bd8a323d72c536f5d05e6b53e5febe2998666aa12cbe48520104d692da1dc983440c17a4ac6dd4635f793ea390298fecb7910a9c8a083a35f7146e36925a38c703014a6f92a51a3da028bddc0e0700e6b4ed2b28284482cc76f2f4df780b580cb3c655f8edfa13c4ec596fc31618b7d391510dd93df03533265253d5f85f022d82fd8c1bb3a3f06d20d04b88d80e79281ec50597a2f7f89282d48df5d1f4ad9aa012637856fbef969b6392f81d2f2034e8d741f31b75c57bceba4ac3d031c270ffa868f32d9ecbfb4e5e62ca341e2640b2365e5b00483c62c92344e1dcfa542dba25821368ff3c70aa121a34ca47f1f91a9d96b80370adbb3f68fbc8591e49e5256c7be6e959bbdde2e70db8b2926985fab69dce808019c22025884bf88d6174322057dddfbafca6afab58ad20d791d9df906b77701acf48cb54f04fe737cf9613bfddbef3c8fb5d79565b4870a4e18f06df7962e43ae4069bc20d1b97299e37a9e3d1aba3277221ed53a478719b57fd5a7b2152abac9b1187d74c02887a23976f7ac54f375f7fc4ca1a054f48971e2265e854592246b78f0fde206223df99edd1252cbeb353ab5c4627ce731208ae8e0e2508c7492556bccf8fb20505f7ca8c4c27705334ec0f01c9f331f5d3ae5271a4a81703c41aa810aefa63d045baeef4912d2295f3c2b56d36ad706fca749602f62381b39549adae4929d1be265764e7f2ace841d735dda15cb0ec581a12084b03352e30123b41d2bc6489f9d2a5a17df01972c99f715de3499ee5fae117415872d120ebf482f884a91b0c33e600de7270809de0d2b203f001e36fcbd7e5e31e76c013801e4d5743273de88584a438eee7525bdc1a0f25d7d5e4ae26dbc4846fe4ca578f08dba283c940c67777f12fc14a994422c737a9214a567d93419f3d26dfd878084ddb52cd40f248e3eb368365a4e361aee5c1cbc68863c091a6562a691889833714bcd1407bca7043f2f8b324568af62f6428b38769e9b21c33f59f7ffd628fce096eb2ec2b6941fb22d785e39fe513829db9fbf86a02b278de0dc5703062dcb6ddc1bbeb7fbc1bda5ef7b1e0cd654ead29f83dbf1258668aff7c6bf3cef5a9d665a579bfd5dd16d9bec8565edbb963c034cdc84a4fcb35937db8751792160acf673fd373e954631a19a3a498c9432590a81848381533227760cf96d864d9a6c3a1323d559b991d9de7778b38edf401c6a6b4aeeb3a1ecf8a8480df2a016b903257cc0f6130fd6fce43bb9f78a6a62a73e171104658f90d7558ddaaa7dba134c93fdc07fdd2ef714bc6f9a46c0364d7cbc12082c481652ab29ed2f1ce0ad77e11132cefc0611ddb218c430ca90e517dc0ebdcd4330ba3b15d48c098e100001298464359e1ca6f6b72e66bdfc884d5c480d35d53c513ab603813a229d3307d20dd772cdc0b169e59f5b54d58f2b3cc160f158949e2e66d738b1a91e33cbb29a7388c6ac0a742e5586c9f7ac306bd1a358ea9b441f4cc11915e6049a8642744d434d25d5f42056f73967f848915526e3513954c958774d0ce8b3cef6f0be4231adef78f2b1275d0c4b1fdd25e2a73f1765d6aa0d1793141cf2ef9b54e4b9d9e2768296356729a7a7641319c5803697e06b4598145a8beb30a340f90eddaff7a4f68c539bdcad0d430adb41942a2d52aeffd8fb9f852b21c999903e90122cffc8449d7aa71fb3e4c9332458557476edcff43598317fdb32ed3f875df26c1c81acff40a4580aab46f3db1e4e1175a63c465fed92d71be5cfa7c7edbe90b3b479693d06fb4517432db774047f3445b154ab4d09702ca5be0fe96ebdcd1924e2c52480761ea76e1fd694d9643881448606f73f88b8222d34ea93eb8aedbc6a38b88a8a3b7b17f4df3b4d6741696da0de690530298d8ccc7d617b7d3599b569c019823de6be6086388ee771d3f4149e726425b82ca5da93ab59aa2ec7132038c58b2180652060e7d310324dae1ba43ced58281eabcf1a10bb468918ffd47dbe182d087679b7c861662da0305543ae49f87f80b51fd65d41a8aadcc24db24a149e57d1a56fe736c880842a779337c03b9fc11fe080e29248e2941175fe44299ab52309d4702e4d246dc53f74b87c1e10278d0ae5fa85107b670359c481c22f6f156e6c20ff252f7e69939a9889489163f726f264ef04a9ddd45b029e49d0437cfb7361d7568416b91187c13fd1e75119537fa389063033b76002f088f4b6b17a5bc840c62414827263a193e8b29589559a6512d373a89d9b25290cdc342cc75b1f00c28042d410334b1f8d90751e7cd6a2e220fc42fc3c753cc4e62b0d80ef6c4fa717b9a9ab54bcfc2b594bca65aeda63265d8b1c8863732030edd4f7507648e97000031aa0c1a3e308ae18204913590983ea336b42a0d5b9c268fb5415f591f0995bf6b7726638f1d90b002dc3d634c162b2ad4e28d0d34518b92c539b1d1fe8e778ff60990b4292be2268f6de5036d573d06a30657a0d3e28b954e83d0ad7779b3609bc382254c25639225522fc952d38a404618a06b1ae49fd632f2e70bb4718e4faa5ed1aba18c9bc30c44373abbd604b7d058a5828890cf4eea0f37e8b5782ef7c2f63879897f6f14077456b2721bfdcc6608deb5fab2d9e12f5050bd6b30b50da36a5a88841460cf1bd5304ba69a07e0926e610392415a5f4911998a93dc465f460c14bd568923f5f5c56b501fc819f18f6aaf87ed9be344aa361c6b81f301206ad45bdddee5e89fc3172ff5b37986ed0f73871c815523ed2471083822b34a7d0b03807a9c7e1687b8135a553522e6f5ea17cc0e99a4c48b00b08db66020116731fbfe2a778e519a0783b030c4dd27a98a430661e26a3c507fb4ff6ee6259fc84e847e33b1f213f4d26847f5a3e539b4e3ed781e3631d82c545e32e336d05f1bbb1b0dcd891ab20981bdc4a8b4674ea1aae0f9cd8bed6664e276fb4ef681b10de7217dfcff40ed11f18457d419a3218048406937806b07dac43d5352146cd0a3c4d36432a2138ef42e314f0dc7c18ef2062be5a218c3bcac59a202d700ec0cff7f6fe013cce7f8fab89b212eec3ff3b07633031bd8af7c93fb20ae250b81e7770df23df2ef22ff4c63d5592f1cd17fe29111883827186ca10d38b56912387ae6d40c2fdf0957612abdf5444ef3752a71c89fb21ed9cfd9cca791d3aca36c6ace34a67dbd45992294fc8133aa51f466b73e903a0c55d7c7ff8497c347832de219ecda688be3ff0194cee4261d8fce936bbddff4c4a73c42be30bf98a0ab192c78061edd8a6047140aa09d71e5afabf8aac0f4e2fad620ca8cc43f692bf14f6ed2656f6f97d59007c1c7b1e514f09954581c4038469ef80e390239ad5c423f211433815324796115d152258048bc412cbb995d5ed12032bef3bc6a45231676a98f435ea791509f8e6a0bca911fe8001bfc5165c3c9d84a6f274cfa12a17cda1b3acda72fd4ccf0dbdb3fd205655fee1841c6a7fe9a0483d0eada0801adfcc474b80563afa3ff8f56971c657587284603749562a67b37a9e3489b50eed266de1ee2e0df57dce0bcd8f23772b52da96e348feb6615b9f883c8307e1a42dda97f6f98bccdf4e36572b7d4b1815781bd76b3a8ff9533ccde38eb7841be0068fe876eebd85d6c392a2e17ef4443a05c1e5b9124ba2b020227a71980f56b9962f5f74fa707c9a767aa569e02c0b5f8ab09fb50585a788540578e65e9113b5ef639315484e43667feba6cb22d4f1ce6e73af0b6f69f8db9165cdf7bf4df2a598861681da30bcb202ffff016c7a6bc46d562a6c2da35e46f0cd836ff86c67cd915fcb0bf02793a32bad512b0d915fbd94f143899488b3d78c2f725c45ddfb5a74e364da8340b9999fa31f99b930c574625a61d2cf025fd75c3cc7b501084e9ae0519ed9995f70cefcc03ff94b76ad285666f5f5a688b17dbdee77dd05d3cd5fe6ef24d991d48a0fb9ddef014821b51d8fabc2a243bcc38c7387a08acda3e7176472308eb3feef989a4cdce60744561410cc0087d284badab3169047faa184234a5043d441ec8ea8c00ae0285596aa65608b3631f687ddd0b4fc71e4f195cf100b62ea05089837043f73dede356c06dc478cf6058f8b4498f5561b1e62fa46fa8b09d89cd093d1c5284210470e475eb53ad0194146e5f1553457e74bed34a9840622717d556fd6f790f3535e743c11f9fc15b769957d29b4279bbc3c2214b90877562a41172d1fce9743841960f06c4ba65c73358f2587430ed01ee9de59eefd35c5e7f99ec0c8075db54216f13f5fe2a5a2a150b36024fa051e9919de018569e683a74be9750e9f359e4c363406ec8551ba846347dbce89a909be91009ce69f79b123f5fcdf0f6d3d5d51b2aa93115b661006e3a0a258dc572d0598c01f5248e35f65bd0bf918f88e8a20c48d803a81b19e3b299ea7b040896adfea631a3a6f055b87cff460953beb77c7fe7823c301e0f399e799f6d732015667b8c76d26958ce0ee67bcf9b4d16a11c8b3cf400ab3200591a0728119226396a3a9bbb865dfeb94edd2eb2b86cefbd2bc3f2c56729d1279ad77a757440ab671ccea411efa09b9049b0c797846e7a63b85cc8f379a4b61a42479da26bca3180285bddc04d67b948e6c16ec16d395462fdc3901f8d059f035e3c2c36aca2017494d5abbf788bd2d1b048cd368a3f7fe0f5027d6494c45820f572b8dae6e3ed956042abdf21755eba6baab31c8cf08f4b67fcd72d7a854984e531e8f76d015d8ca62e346fbce7d4a50031f0cc1e42d75c8e36a100c04480b76eb5a261e86426edc7f670d3d8849457e9df3cb4bf6c469c386cedc6813f63822cd82ffcbed410f62f8f9e0a0f2c2e4b27399a35ea609578b8d986f4a8fe2aa396073208d45eb7b577b800c3874c92e0356f20b65d7cd531a02b6b822545abe866f5b1376c4950cd2721a66ed87f54bde0008ace336d7b45adde16ead0883862f5cd0ab55ff127a44cfa23d443863ebb39929dcc0268354faab7e2d26b78feb2ae79ca1cf4df83863708005d9fc97b82e600f159bbec76aa4d87ffee7fb41844852a88ec9ff420187310d8b51bdf2c0af6a96b4a349e997c2263d87b651d61ae0ebc3eff1e45828ec7518e010fa8d02d338bd1e9b8b378ed0f7ffc2c4212278897b7dce4f52d96865b174eb99116e9dd73fefcd13a2ed523dbd433185f6a9cd361304df825a53b434b770d869eccbf49e300cca41bea236b83c81ae57bfec1dc3cfadb5bd7ec657cb96ae1f43159e1a4e1762adb4b5a98155fa8d4475dcfab546a11a9baf7c25611c0e65cf3c6cce85e27bf921023184b2331906c5ba05f12b0a3ba89f4991863561c78942bff2e835225623ba68e1c1ee47dba075d29ed81fea6b466de15e2392b5911607b23a30e307464e66cd2a15c7cf98269dd585b03c7beea5139d1eab4fde1ca1f475733bd14af381743b07538bbe6da96605250347ec8d8af002c7f9a8477acc38cc33b2057e869f990dd5b080cae8441e53fceb91e9ec25d1ea00fb4bb75814bb62290062b0ed7f03105d8dae58b1e12591717a5ec2cf38c74f185922634a9dc64ea8cf1d7ce00dc1f8b3b58dabed1490d347b3a991ad796032ed0c67fd36d5d76bdb5ecfb766fcc7d4044d27eaf2fb4abf26d9c844600c0bdbde141e36a3fbf071d893852740e0fe31f9f901e460d8690175ddeb50184955a50913181d9e951e011982bea4d5194b2175cb072666f6fb5683f9b02051ef4bcd582ec7e85808c29a3abd47838da2ae8f5a89d9adfb174a16ca710bbd1b98bf5a6db7ef3a67ab297034defd5ae862bc646ab17a8f72d01fc8fecfff32cd986e7c113cde5f91a20695237b16f1443377995f724955817ef8ac8d86b15737571ec213745be9a3604b4591688c4b5e55fa09271b3d9193c1076928e479d28305ca5a4f6244abc39d92fe531f4bedb1a081bb4c879c49b81afb416fb063c67d285e4183faaf03f9bf988121ae574761109d668511dd5029f01eff6e2ead4634c76843ce7c0d48b33e9bb4e8172a75c11cdbafd3ab51c9d698772a679577bac60b53b030cec75ef082650442e9815985ad2aa349de5485b726c075d24ebdf599e6046f13badba97759b056af0bdb70f3cf7961071f6bc306171a789a2a81c2b60c8f20d77634b59a645f93a5087cd6569023ff0359cdec0fec625f8f3dfc3df2032e3c40aeaa3ac40fe63f552c80c28ac82be811f14eeceef051ec5f4df174c6ae3fbe022465909ee593ccbfd9fb660937efc8f530bcc3723087e214d52cd6e012c64beacc7e825f161308a88037abcd40e7c109320704a8ef18f215d47cb5f2a0e682960204388d9d32480ed5674bd964c841a3dace95633e59e305aff35a03f1119ed573368f27c344109750b4a238de06361a66aeac765b057c5fc73ac33a9527cda7281ed83a7c9210e659c325df4d2e0b055e9a8aacdba452609ae96bc712e7fe095b81d2d792a21abde6f453eabe4327b4bf64d308c968f4e099515fbb7154828ecc90b6128e28696fce320ce8ce5100e1a86efd4ecc9bc6ef191b6d17f4ffd899dd5f9660dcb65aaceb7379a916c9eb15fe6bc42cfce75f843b3c1a75794b37d809f17c5f1c0b373e21955151af5fd5cf24ae7f267cb75890dda62861f4354cb9a9a574741a0ed0748d4f3472b1d14f392122c98dc516aa37ceb6c766e2ab47e9fb9c4ddb4110029baeb6b2e52350465c1ad240b4258c47bd5b1754e7b6f5ff15b7526e41d7af00d14826c80ed98eae1c6cdfaa5d636ad5a0fc492cbdb058fa229860459888ca9598f4d22d7418a088439346ec4688f1d74a62418da79c2e7316339854d38dcc036587b133859debe180ec45696fcb5bac995a7be2c22dc7554462447b00df6a30a86f9d69b10384538568e9536b734d97936d1c04f2ffb431f2f6fcd471c871a5cc9645e71a7cb31a22b258dab32b54a80736cae685b412d9e14d67da74790a556fb119ab2fec6c98a3f525385785efcbd118a17486a020cd3639b85f1918ff1af81aa2b657ee69b6c9e57b9cdcce2c15f779ca808178917140cd38c22ea58674dc973f3e722a8785a99b5f75fc11d4036892cb3d0a4e5c89e3f23948490efe372c642fdacc54d1e5bc2db273b6475841f8d7bdb056e8537b1f633b9f7e0765e0dad658e63a7ba3c8657c73358543d5c63eea013881116c19048644c80243599283de15a65cac4f3bf293686c8177da9d03a81cbe0c628d3432a9c66453fa08913fad9ab8c71aa4b79e930dd509a04f5aa006dd3c07475558da74655ba0f0658f3dabc0d679a07e4b34fd84b5c4e96b42a6559900a3ca943d1fd592756e7c08ba00a9e91fe87f6aa5a31c8ad9485c75ccf55695e748ab77a8fda5f344af2c8640b67f79c6e99b77abbf50de9458e19163643a6ae89a7962159c0a86255bacab878282ac5b13882739e77a236239d6f89ddfa028931071a8ddbc3549d7f609b7b2117950ff2b475cf560a509dfde02892a9260e62c460c1db5b20c9f5b293d0bd2999b8799ebb12f982632faf61c918975b766419fb4fbc995ba8058446b97a3e88d3c6137ca23aa927d01597971373425b5e955300bfa27d03008d8b6286d026f0d135848769dc49199f7666761bce5aa56701d7c5dfb602114cdff6d43fbf43dabad4003e4cb193743e59153ad5002b5ab738373fe4b5b67a3efeb0c13f483801520216cf6fa4a999b50a754c48721a24a10896c9689acaa79e84cc46d5c0f43553a302b13a12c3ca45e5e79b6817a3015853d7262d176ca7e4e6bae94b1c7a635e51e45326cafb5c7f3a49625daea86da6a4edf3e08ee1dc3037500c966e76679709c2c4b818bf7753348edfc2239ffc47b7d008226c7cfc227b4afcf6ff9f0912f4377274704d3f94db207d72dfbddbc8ccec4f7a6a7fec5e6c24a69efe8af2ebbea2a0c9ce8d39a088a26228c6981cf727df591c9afb3b63f2d3b2efd406c25ff92a4f70c1c91f95a036bde78c8944ef7b62e80eb9867ba17af734b7d0a36b5dd3524fdbbf101bd71d696cc1f466fc93cae7d1975704f92f5b4a30662b84d1a973823d95044672133f5df2348246dbf3c77924ac38a808ca87a9b695200dcf2f66aee4ca1d6abf6078a0e4b2931ac9f16380cb2fb086a19b6b15900fa7f34045d648ca1bcbc43b29e01669c79355720ee053aa2a808cbc3d63155c7228f5ae8f7bcf6f6951704b7d4c40ee05fbc12bd3b5b8ac83fa0664d959234a8a78d6aa9526c5ce0cf953ca39478723fdecc312680fa10ebd19a36a66e33a76cd59795393c1eef807281834b2d1e76f3aeb5ef513fdc5289abab3741a033ceef11d7ff50312d4ccf565cf53364217e0ac6e733dc63331f7231eabdd95a2b2985990e77f39cd98a38a2078071578ce2ad83aa90b7d488b487f83a7976907ae6cb5ffeaf1f9133c931a218c10484d77ebac41d5ffa37f5618b2de2c1986a8f96e68b602b0ecdff5b38a5748b659b1603f5d47a0241751c97868adb94d036e048b90e1b40e76bcfa156f3183b42c0edccb7e8a696ad162a7e55af9adc1864ccbb02c577cc9049eba55397e3272fbaaa4f5e7dd39e89bd976c98be32ece8926476d90587475db850249c21407a2b161531e4e431ac80716b64523cb17cfc3bba561d3d7c68dc0065fee1b2efad7af2376372f8515866e74da1f42d739cd3778f423f9d19c188598a4e3a23f5a3e70cf91241c22fe15e9b5843cbbd6f491f9b36eb59357fc29df1aaf9ba8847614671e38e4556ef011918141eb1a69c9e25dc8606d2f7975ba630befa8ceb371eca9fadbd67b4bad6027ac725d406d17faed8004c16e1b8922f07aad27a7b629e068aa844c0d2dee271911b3a1d76a89f48260c8412b1df41585a419c00e942f2a256542370da9722be537ea78c6640cd0e9af4f2f981644e0e2dfc4a4ad434dc9084eeb2f95b9a957512d761e82a808bdfa03080c06320afa153b8034a32c4babfa50669b4aa652a6ca2f095c87f6af2db9d76a75df1e69a2810f08ebcdfc68e36a0f2f878ae9f87858b1c81dda3f286ba7010e1c17541962f060c57607a99f76d89ed9d3f5b166fe3f0017fab86a4beb4a46edbb266882877bb57f3313abd8c251ea75033a021823318fc46b12ce51ef1a98197b8190811315153ab96ffb5b2ff82c60039e5d00894fc601cc1c532bfe9690a771857144c199b9bb410cabf6d85f1973df4202099e877369ce1d46f9a555c696a97e28dd8e62129fe1f5925b12125d72b17beb6bc24f2190cf4589c9d0f2c81a977549ab8abe47755679ea37ff2e5105aa7aafdb239b82f35482bf2eb8ac0394143eb52a3738bc648d8fd780b6208e4662e45006f8682c93b16001fedbef6af271a81dbd599e24615569217e578f72c31b2a3426a144cc5f3fc3c1e22f34111833327aa345c80d5d73c431c1c8311bfdc180dfe436866eefdf74b2ee2ceefdf697dbf196bbdc81d6cc9107764e6260ab5878c61161b988670476b6ed04dd2972296c3809155717f86620e9f8099e4e4c98e94c0fbbb97848b5d2413752bb648aaf1e734926b0cd688a8a648e7cc818fedfebbf1d73bd4ad6ae9fa49b31338526a00d2006d73b44390c31cc79f2d6a4c8d6597393725d705138916446558bbac71fc00a1b6712d3660c9a21967b2d69da630963306fdadf8d8daff196f7e3baf9c7e88038aea2c374463f33b22c41b7dfd9fd1dc545142ad6466348b0da78eb9d7f61814ee1f83abc9ea5c57029b3f7aec9a6eb43f67421561289b41e5fb0cf38a484355a05b7cd167eb88dc240f6f148d6b7371b7faf6f5edd957591d91084856c31929d23822891e7e1433ed621d426bc36938d04b40eb94b827c90ea860ed6a413f2be43c65bdf1fd1b3899f50b4ae8c86254ad8d64fea4513128b0144bd9b8e9a7b028c943ebe44a2d5b8b8c0402e37ae550d9097e32c367233c0af004a8a0f9c09c852871840c8e81062dcd45e315740f129d87b10a4acb499f7903bc34695e78126ba40d5f1577df11a6f00a5fff17c654d08c345634800da184d82ec0163dbf6b1383fbe572089c436c4e756b3ba6b7ac90dcdc6063091ebaad50a22a91f8a2b476f0a6639d31789d01747085c73f8feba39fea8369c585c2cb60e22b12f018ef1e0fdd66c2ebc8fc19124c6f1fa9557e0d338251289db60b502c9ab52c35be4ca59581b7478f0662e36935012c693c0274b1ea14dcdf8d5154c1202070b6ef20b1fa7bbdb01a4b264fa7b46e8f1367325f805bc2f195025c09a7931f979e9455e9c05f208c3d0af16a46ddc3235152f475f425482d0b9eb36c5f6e72c7fd13cf1e32d91dc58d38d11d2d4abd7b616c652645e4863df9b5565231576b99695d72d79f1f6e7849b6ae1c28da6a12b708ad613648cbd3dbfbcd9f7fcd15918fdd4c13cdb699dfeeb7f5837249dd77851469d59a31fc80e30f0a681409de3d83a0e45de955d67e1cac0cb8a75fd6b1a95bffc5272e66e0d1c5d340e292b8cffa24d04f7fff5b9110ee332d392bf6758cbf134b5098e759a9c838fa4cea7a13d5561ff11b224a7b0aee93a78acdd0537e9d6829ba7908205ce31943e6e4719881e98ea4f5ace4080f59f1097e8843a7ad949a4c50a1095c7327b09e8d18db2ab1c21c4efd4d75c26b8dcd647b8941177b31c1811f5ad73695cc75fe7b91a283d88ea6ae55e52ac3da197b3beef229522efb6e0f52c98af28ad68c0145f71cfa7f6f15f62920ccbc483e48ef2d9f00eb2048c47e48b73f1b4c4dcb0ab2196b8c69d7f7f3cf31a76f60873b9d1c9373ed879e58972499a0f661c14d6a6566cb9aa92652a27d57168bae24d018c69799981f5a0ca3e11d0a6ed1dd1c3fcbe14c99d2fb32bf79f44c2b767b50a2a67dc496dd134251ed14a145b869ab22852a7b5b4595b9ce1ddcc7a293e3ee28e7bfe6c41c306e4c26596a129566f1784f6fa5942461ec8cd949eacf14f982f7f4e737b5d37e3c1926c8e5ed38145df1af0d5f5d6ca07ae0f40caace20c5808f64453682adfc079220a5f46cc40db4780763c1ca0eb16139cf05b89f951edef1a7d937f4036d82f02c23f1af30d2b40775496c2af98271ed54d4a4528450683a7668d6875737c505b9ffb4b20626e025826ed735aeeffd8a22d634f548bc49ea127eb952228fe5952adf3bbab05ccbbe6e08fbb20a10df6e3c314a924331302b7a789634788d8c89c3f6f378beecce5dcdad7e6c1dae8cb0a1608b7fa16eeba7bfc4ff46dc82f90e5750f7bbb20091a707ba5ef95d4c267ca7cb47290efa5c493e1a128fb9e2a6a2fe135297d64a74267032c9f72c8e3f790ac536707bd4a150195c35562f6da5380de2c2dc0083b0cfe8072bbfe6d794e8f68f3c6e57ebf7f4d6fe8f0e97d0f1b4d8cf716ce38fb90ff3b46a834f724fed0047aa42c8892dcc1452b49f9eb6367b2e93f7f58487c73b1fd661c42a76b42c9ba2b60a96635b97b82893c6fcf92dd80a8fa42b5b7dbf6cd1e8c7acdbe1f1b06e45690582661c823ff748fe1ca134adfe24e228a7c06fec5eb30cb825e73fa5e1ef86fcb5441ff895f8dd67b6c097ddabc85eb2f07f4a2b255093963885fe643aca0e6031311be716eb42fcc37292f1e78c1a721e147e6f45fa8f8ac0ce924c778740b04bf82ce893a32eb265277bdbd75b762dcf99f7ce105beaf72ee007ac89f90e87e52f580d27565b3030d363a8babd9bef6de0dc0c71e2657aafcf646132e32569c83f73f6973978125821085959e94baece0af04953e4dc7dc6b8fac44f8d70cdc384c233c6e0d2ac0f47718b9b97c8b5ac85f1cdf565a1bcdb099ed50602669fbccc785c28caf5df317c912c0d2c8b43427af9f2766ffd09a6fd7446bd4dfa353383b2857ad0a6e99ecffd4ef7916e269f90a21baad356d25d31d3b072e6cedd833b964b0b8ef19179b77cb80e100d6675df8c3f55a16401abb0784653088cb9e9d037450890d75a112f23d35559ab3506291504d2bde906e8fa7ec5098d37b69dcb72842db1ab6644d02d94570d30bd152f397980da76e6b9bd85c286b1b112e4e7f0bfcde537e61f3e83376734af5eb92028787117afda53d7c3a7409567b25399705d394812ae72036109c625b34d640c4ffa0f7eb24522dc403d19f033cdfd61a654b35b686f1dd693d6dc63cae77247ef08875a1c3fbda051aeabe01636b3e182d6389309f9c69b07ee0ebb739fb45a390a93a5963eb16bcf7d9ebc0c69765279c5b52a7677ad1531d02602eb6ee7944768f56bb636a0fc686954958da69a85d65574d14f00f521960f626b40364826af29b39718698e8aeeb5a7f11ea6d72fa9e95ae93d1c659b956db548c24460f4f03952a760d1e2fd9d40977d4f2535eff9f6f9dfc4cac497502b05cdee48271d3dd004886aac48ee5d1516f6e3d601a83f2b5c5e93857ef197788bc9c45ec0c8a1395bfbb626a1a7f046e49ce155a42f9cd88aa32c52fff9a513294d2b49ecadd23e410c0a1caece726aaee3a84514c2dfc2e1aa2241db725e0a27c600cf2ae246ce6f936f9692b7fd8b52cb6aa3ab6c8f11f35050cbe889fe32bbcc412d6d3377446cdf19767ed782cb80a8e5a133b0378699b42e4f3a9fe789ebc99d6a1cba79f16dc8fc0bec2da3ecf0692402444810ca907adcb54db3480762feea72182a35e3b1c1b6b44f9f080ee37c9a8738efcf721723bd1194570ee25d09caf931072c0fdc1da6ce2374982b0827ad0f6aa3493c94d1024b3b5915fa56a646ed66029737dab4780e1a651ed333016b0a3128b422826a7f2f6a6d0e33037dd9538fe5e1431961602db5f8d44930644cc6e98544dfa3a7cd6451f4f0d11662ceb86899bbece7dcf537acb9f4a7eb7376a0b2803f892f72186c708928ed949e0f9caa342afc813ca82d693ef8e515d836953cf83b2c17be26667588d86fc7426be9dcb9fc0446ec93ef64fc738291ddfeebd1192a3deba90ee40075d6160420d605e036764aa24a13cf22f6de7446434e9c6bd1c0bf7b127e290aff0a6bdc3c4f60b4b78a0996e739a145c3221e2e7a6bd02595f65ba992921ed1b6e4d1bc69f434db12eb797f1452e2de946779ed0e0a52873c8ac97808bcf5033df29f3f3189ebde4ff8ac7d54ebbc814bc22e6fda4e2c49925c091b3a0a60eaf88f765f631008a64760f2ca31c374d663809665773c082c50042bff3b789e565e43e90378e0cd31f89d5f6e45a193370b175b1630b5e1d29f6570f6efc9663aafa02b2b54446b644e833e0b87f82950ec4527009fbe50dee7246199f5202a96a9a7c39756b92a2ace36b1add4a6a86ef098a62db0a7292cd77916db76dc6baa0b492dbe46f800aba6b07f7e99a3f54e084c08c7d08bb5fe4671969d08994a4d7bc452767b539399cbed06391b93a484fce4d3da241ffbe42871c5596c2aae583aff13173015be91b2a629921a8f24be9010b14596bea8536eb02a19668c7393103552b86f0d6c854713addbf9b6a90ddef10267f67f97ba833f4e38efcb3db6698dbae31e1b245c96a27e5536ace9ccc004ad20e2ded99d00122b49f994a9a690960ccf4c21f909685f1306b9fabb9c9a3d66454e97db448d08b129eb64a99acb017acddd04256c3c9ecfbc5cf11ceeb290f5d61d5b4d8a77238da0626bb0fdb898d6e7c0c1ce84552ffea5de4b59368490a08c772b6c204e9f293bf850f4d254e9fbeb284831a6bd36e112c4f0badd3d321ad26d9245adec44cbbeb9dab7af35d5f74f41984b75882466171feee4003dcbc11e693489199b1996e614a6cfd8cef888ed4617e2a9104f7216e560a1ed133ecd1cc1bf102ceed22e9a65740a442c558134fd13a5e8958fff6103056f26a73159d79057b29fdd918c3588b32c0e4050c91f6a42bd409a1b3007b70f48b9cdeb9bde45695f3fcf34a455130d02119ee078143d76062b60593579196677c10371f64634ea0d911c525e0ed01bafd8ea3d21383f4a22083c3c9a11553112a8c91cc429c0edefdb55720fed3417d8ac9f8cdf8c75315d5190430af656fdab99fddd1c8f19ebbd9be555dbb3e241cfd151b9c435d860df6abac9793447caca354f542b50096fd0306d3aecc2ac268a4af204227b5daf26183f2d81de983d540ee4456bbb9f37ff4c0edfc26cb55dd24caae26fd2b2c8077115848c28069aeea5379f9ef094a171d793b838fd83f300651269fd5af623583379b59d1e1c042b2c90a871b8aa78283caf496df462b48e0de25e5e41e51d4c9ab88d5e3198d06216c5a10a64c7619b24cbc1824cb3f683ee1393c0d717800faaaf5041bd5fc53d4f2ee944f20948c539c10682755b8c71190b4e31e42b4f377ee06a912ec2d00be2ad2f25376678642436316172d5ef314db2a3393b0b9d8589de4570a064f34dd58be6b22c15a8747cee48ef7f8eae653bf8dcd55465ca44e25f37bd3c672f2c9aab0af827d057ecd9c680c27f5a34f3e68239c7c6e99ad01bc768f30fee72a6baf4cd7061369e3430029ee14f74c4577addcd2d21ab9b5603cde5baef8faeb36c6b501a1a45ee083f7cf51608edc0eb3dd8d69ebc83b1a7be08a2681b28c66777fe8801f2360e9816a84d9360fbd1393580f7c8e1cfe23891f20ba3ba772d090196ecf26721564960a268b90b91bf48a87c40c2694ab406ff5a65bb9a8a5aeb7960207e0e6fcf434f1484e8a257fb82a5f858e38494208ec037173bb2a5628a7f139446fb506a4f14d6339049b1af94e9b4193649b0f430bc276c173c6d7a9f7947a2d2985e39f159b49a164077fbcff02172662ac043e436e316a0b75a3493edd57a3f3065aff1dd150c4d0659180417e6dc20782d12fbb91b38ec52489f9d9c90d0258c9ae8544b097301f48e0021bb9693a326512b2839345f42c07f94fe3f8a5e2613b314a224031d109bef82078ad7ae5081c03e0525efd28471369ac34201972b00cbf2a12b2ec30023da05cc16effc49fcb96df42ef79eecdb9b745d544071a3eb8bcc75afbc3a53a46f18fadaefe33ec4a9ca3e09a0c6aaaccabdc3b9599e7ec33432f69b8d5295b057d3a348baced57c4ce0e066aff36977669d6aa8d57ea3fae80458efbf0bb423fafd76b855042d47662ad07d1e17bce9eb800ca314062b7207a3e1d950cc1e77922214a985ed3fb89c06cea33fc5bd7c86787a508012d888741d1a49fc377ea42ec92f777abdc43961b08758a0d2e84adfe5af0ac5ab1cd847d24e18caece343689cdd4022d6f0bf9c71cb023b1bf90b21a4b57957e67807c1ed37784444177735c70401e9c7c9f99fa75673fd43cbbc40c0339af03bf680f6b524f16df78d7df73f2341357405ccc362ef57161f9bdcaf3348fb77062d8f09f111d95d7fbf46acde1cf3e0fab9d9ca0b2ae561d6c8c96c5e7e343e8334804bf8c1946b70df3597254b438c27d0798e3441481660d9f4cea3d8b0cae31999f4973fcbd74193e8b0ee40efacb769a1c6414334bc0200fa216240e75d326035c46e1649c770a5c9a8f09cd27f418e31939471e674b674ad99baeb1a7bfa35c0bec23f7b9074f3be7c4988c1da05c667e9b487ab888e08b8f9aad9a1a08d991ef75a11a956fef3140404c0ae38f894c7d46b4d1af805e884953b16301ae4d34999ff97a58bbb9e25eaf3f797c4e09c17c4cfb8cd9afd944fe825d0f5d20e165b6b04e37a9d3785c63e18d27a5e66a42d47f992ad2d8de59351542d326b2cc3c2f96fbc96b6e2582994b3d5d31b854c25294f6701a9d95544b628fcbfc7de6b65dc2af872599607f8c929f4baba3188e8da993980573e3371eaf4b73b7d95f20836a3bd8ef564d5a69f0a480f424a899c3b45636d29f1d2784f78fc1ef802bbcb7798f4394a7568eb400eafdb0b0d5b464e0d5fe01fa98f0a6a739d551d4fda21bfda1e15c0f835aafc10dd1422204aa86bc7d1dac2aadf79a5c9c7a0a669950638cef09f5f5e1639835ae455a11c9ea2565ba3012f436b5ef7d04ad2e7e19d718a57fc2ada9b8b6b2aca0af2d242e6f6ba851a727174f7dab25c668a3c9ee4aaa498f5a27e88e57c1d4319d1245accf51bc6cfaeb60f8a8a3cd2b8f606bed3d11d378db042f2ffb5d938c7f7eb35d8bb14844570ad3a5e55c2316a672bae461cf87fe93b946d144851e2fa64f867fb9758ca51ec8a2da6bfd65dec9468234a6f905eb854da7eecda8db185a7084f9d7cd5a526a858f5189c0b379e313bf68490c41e38306bfbd7918b7b094dfa0acc6e9ba260dbb1f7ccee42f9520608697168e1bbf9be4869b4a1372930bddb70ea7395caa7a64ed4c24ac2c3de636b4020400b8725e5b44aea9363335de43df076bf671fc2bbcf0e160e79329e316b9782d437354f6253911822f6c8e7d97baaec5a2ed6d4d63c27c50c2ef18967e13a2d44ec2f8e9ef7993dc5e69d6dddb57f0021d0d790e8c15e390cfd7cfa47c808191630e45a6a47e0ab70d7993e58b3bfba8fab4e89c47440debf7d15cead70d21582863759d280996ccc79e0030d066bdfe4ba16d0f55ba148f376899c6e63ee925bd535424fc66baf5819366fc486402c92b7b9000fd3988457abaf14d0bbff0ae9efa92abd0e7e3f0b291a9ec253a995542715649d587d89dbfb086fb35a44110c620c4209af20d4ec81d06326c3a7da86a4d905b1e4cb2d0593a70017bd5eb7a03855c1b43ac52963d195c24e498f7ef203a2fa21da0e408f934026a9c69414a83233d904df4169dd9c3799104c9a7fab5f23e150d316116c126e359aa1ada42106f52399d298cd631df416cab920509898e0aa9beae642c3ff2ff719f2ceacae8b56dc6b711874ce9f390bdf2ecaa4a613b7b9310cae2d9d9f7e6b36d581a070ab003eebfc3f791ff39bb23e688f9cf9e13cfe24278f9f679e506161bd5e556696ab6c162de9e0fcbf0f44b2f472f48e766f8ca18b6a05427b740e5daffa3c9947718d6b32ef36ae63d8082c9964dbdd5107864ebdfed0841c137b80b2964073e3d43a70d62d5e9a75ad52257526f3c8cecf18c8a2328ec5ccbe3cbe471f5dbe25ab8fea9fc92567d07d8c0c9287c4220707e0ec1edad58818de26c244bdefbd83e0dd0b843e5c09fdc0a67093ed15b00e58ab061281fb559c8399f2afd2dd5b1d32527081d2e2389dca319faea8570987db096325398c361ddda08eca8c051ea5e5c1f960b79ccffa684a09058485563e004255bc6be1f65ab39a95bd4c0d3f9797a95146c51e22dd8c6f39fd322a7cc2ac52a30f9e7419416722beade4213eeaf3f968f4f7a904317bd36ccb83810388ee697f8b17e92118c080983654ba29cc65119e9648a9eb3b66d2fd0bccfd2a41e01bc9037f6b4042aa2ae7a2693bec2c6f5c4f986715ea512509f33c22a97046c4845017f7e67e4aa1b05f3d097197337bfee4014f1396c499c15cd35bda0073d9c5cb4366162697b102d0a263f83f3c6db03eb8a3ce79824741fd8078c3efab09b5c414d340703efe9f3192b8dbe9b40e7658c1bf729ed7c2baa81f28b5c511ea56788a150380375168806ad3100ebfd9cd3a1557b112cb3646d88d53bf09a2ea3fca9ac9f36e5bd17c33e8ab8171536b450d02231e4482d4e4264bc2a09005087fe4ac36751c5eaeffb536dfe754c24c2f32ed2aa605161753f0246a303dda2af260445af31631259fe3863e8a68fe84f8161c5cce18e54ccdd3a45b9df672936227d5237be6bfcea1383f538385d67f83d53703df2b051bb249f3b14861e2f68531336c0f996af762c7ea460a4322b8dc03421d146ad16abcaeb19d375cc5ae359a3d829cd56e00cd49d8e38d46ee98575d1ab1bd0e77242a6aa8c307f4a0a3c88cc63aa6392687b2b56dabff2c217c321587d638d8c79d41ba67e12849cee3065cbe9e13c2e3964a779f211e646c5ceca8e2631e24cc2a1dea5f1166794a0177ecfd66e1f345b519608d850aa83a4e0a42df4caeff357c9b8e0ce7851b3cd229f454f6263b1bd348bb3ff6174db9ca164fad65d8acb4c857f6633dcd9251488be41602582244c98b8ba6a95f0baa7d40b980c3c5037257601eee4947f3475bd77e7a3c71ffbdbe92d22a62fff7e4c47f0cbcbe9f5bb8366c5debbf46ceaa22640a6ea3f3dd185bac43ff18135f495453d5e639cbe24292a38182d63f13584b2ff761908cd8dfd5926d03700aaddaccc70694cbae8a47941a8dc89c9a539e067130dfc926f81a700c615a48a68391b93c7ebd9c41e9afe30080e3dcc3c9bd4a3c49e4af850e47fb3e5cae0d0b023464c7d3b9f956d18599c50165402d0d485dd34ad6852d10efeb86005b17a1b13e27b88deae0d70ee5b6a51e0a40eb4e0a1ac40698f1477c6b79231ef27703934ebe602f1aff3c6a2d512cec21d97d0e83a2dfc3235f47d06953e05d55acebf0a2e9c6db9bb4f85173631f89b84f03d58241b54d0b65ffd09bfc7385ec6dd904eb644973c2405fb2441ce8d5e6d3587124f7ee47a2efb57a080eb8f8f2055862b4b59a7fe6fc265f5632b48dea907f8d2ec16fcca2b0beeb26fe0af16ef796f71cf7e7208889508f5c59f57a8bd8bf6cc5b1ea59a195c777dbec4eada4f292a6a569ee5a8dc73c8c1a70836273a311881618218cf8653f590f5e7f1c2e0081a414a0ad51fd5dcc47f0048bc722c2de32f57449a3a92af991d7ef81f3ced5e355cf89ca5769695138903fe41fcc5c699ba855b97b07d121fc7376ba125f9902f970c68584b4cd6cf9b85d3a07b0b5c4b8f5a462537cf76721a5d0d0b9adab65e065d4a961b8ae57a2f56756d0576135499591e39c52fdd3b9fb5ae698ab48cf09c37f06ea4961df29c361b773718d9b0d2bcc71f90908255e5b5bfd3fcbec50614fca037afe299eeb42f875bfc7cdc4bb02ff3ec2dc412813e88e53055cc4fd045f6d9338394cfb5d5987aae570940e30d3c10897a0e168caf4c4126b77b60debd52ee47a538207d361e005be6d2178d57c590f4aad8e886ef9388bbb7aae49788de86c9e42e48d3e1bd844a1b8515c3559ef20a2b140ca67d8f84c4898ecb11addff81274b6d3d528599fe149a0bcbfd796c7bee287e1914fe2a7cbfadd3207aeb884e41a127c725a87d43dc5d8fb9ec12df0034b3b144c2a595fc0bd8fd73f810512ba1ea7142a469a485e2924977a4a16d8821f0dabb3285b04fdff1088435ae7b6ff66422542b3b83c5f6c67873d09f846991f4604b0e04de9b5de9e52a6214e270ea03badfbe059d5c905f08df7e3dab951a2137e69b6e867bd2482b076a6c2b45d112dd480aec01f69d9334947fb73066ac2ba27a6a04470be6ac111527cf024c67a3a747a203722d080646ed7ddcfa5612064eb2a49ea5c3092b27b581a4d055373c0a338fbd885ffa5c4424325e0799b5c8a963ff41bd76653e7b69055b1f226d738f326a74faa9df83ea586823cb642a2e72beb30cacd8cd1b377016d616f68e4b30247c49c06eec58bafd5c63e974b9492dbc493386449616ca8d504920c8940510e85b01b798fd64d4291253d78825f8eacca6c74e8371d93c7b31aba0a3a8bdbba0c2f6648144c9f580f7ac49464c9daee005218c1f085b1148a112a1474e458edddac997ae5443fcd9740a31255cd8a935213ac1fc9c2f165b8ff8ed4c4612054f4c84b542869b4185eec85b1df02c21b7c13e313a6c923e1b6bb246184cf88093a8d2cba87d6a4faa5b3680228b28e38b66412495db22220187cd53f0307233eaa75de4a7c2875835604b542f956211e436c0f66e4aecee5764cff745b267dc37b135d005cead253239bb31de09d0e366962341f8a3d6bcd8631092bd468e33bcea5091937c2c302a7e66486e9c3bd96d6ff64f969fec271bb2dfaa40a9519f2b1584272b6a1b3131042ed81e39aecfde25ea245f5237a6edb3cc2af147b7a512fbde8880398a1e1dc3a716c5bb16fba840ec3adcb3f8cd9fd8c0072d03975180fff4c0f718e43fd970863916f50f3ac2824d162a0b4d3da80d4a4aa9c2502da54d18da4b04979dbb14237489e2a15060fef3b125e16c8168324f8612969984e447fa7268c70644ec7efacdecfc47f3d3cde3c7c770bb7dca465e918f79794c97004699f303a4710bc796a3cc91e7668ba7e16c443b2b27b876b97f612318fcbc0b08eee567fd67c8af407dce5d726b4c503b382c2431722c313ab9129f2b58eebd634c429f60ffd2978d3a5861e52095b726291bd632f352db7d8539c8297a1f46cf777076e1bffe6cf63d05806e81e5c24e2e99fd6bf961e6506f0ee4063c5da7e09a82b0175b4bf0fabc0c4cdc48896bbf31879430de234648acc5a76e56be681dba777bee7ce31db312a1318570900e51214d5ef19159cf5073c59e705e1324abda9a3aea9f2e7e21d102f5b15c112b4da8e70db48a1ee11736577e0ec8cfe58e118cf3eba0bcdd977dd682e61f41749c6d2fbd96b8ebe040075737ff4ac26de47e819e0c18ed2000ac4f2672ceff520729f8e204a45bfad0ff400f3bedc208ce017fec471a06aa023bd560c3be0e255c1557ae1baffcc6bb8b16854f772b1e4a2abd5a80824638c370841f98503ee4d37b69d3320961ec897872a2cfb139be941edaf6a17857d13763ed876ffe5ca78c89001585d7372cebb02a5a73613c92a22b823e0956a6486526409e7c62bde4ad694b07c9cb5762913bc06c4f6fb703b2a30ea1b9404eb62c406374146e17e5354acfef10dc09a645e1d9d801fb73d41c6ddbc4c8e4a0b33a0f00915175e62a043acce6c46753f3f02683e32869edd9859d4ea09cdd8dd6aa82e1c98e11a600ab857987519790fd45ab8891455feb7cadf0a17f8935b3d1723a1f93f51894f6dffcbb13a05acd703c2733cfed84a3978abeb6683f3cb1c444b4457c745b895c4c8cc09fc7dd5def358bfc900ee697ebe290c7fa74259429db8e5f91c4fb2451311429233ba33768b8eecd5156aa4140d87b1672cdd85765acfcef6c18731155ad11801469469543785fe71e189bfd073c98301b5afff4a319a99b0c588125e569950297c5a822de1e1248f420f0ff49d72786c65a13d4b475d55a7c1b0d07d9bb457e3a70c6df9bba4b5944d8704536152a80f4ddc05a371e9999aea07fcff1d49b2b366fc50636284d76a198b980b2d43ac436b78fe708db63bb50e213ac03edbd6baab12077899ba2293c8fce7d8a2c48f991773a987a42329a1917064ff4ee88d30026897f90e48b1d4b1af47a2a13b105bac1109a913b690cbe5bb6987e58d3c69f70b5c1b5072ad43d0e16da467315099024c996a9dcb29a9c0c7e24962a27928e37d9eecd74bc7f71ff7b2488ed22a45019f7a08e888911a3bbfc1e2f514c13cad1a0ede35fcbf244e887e3a3fb901062e03ed5191acb826434db5ce5b9295329891478b7c3b6f60b60bc0779505a12b4619bc4279e3372aaeb92a6376fdce50af4e7cd539753053282f390768d7b2042307e052a462a9135c6cad9268ef57bfaa90534ad8900fbc9bdd904ac694ecdd7715c6b4449f813d5419e19c3fb398c756501f1f72fbd5681bf6b54c6865e84603fa87b4e7da51def4ec5e0aa955ffd57d0d1fb76f1cbdc2085b5603fbb99ffce79017fee10e79286466e7641f45a0bbefb5aad1d4485f01197d8d7b5d9f524bb5771a65e3e3e1d52de17235de148e06422deefb37989ea518c934e55a160c2996ec1aff892cb9db8ca1bcb8503aee1faa7d8127c52712c89a292b47392951fbd141bed9bff8b1cfe9719250fb81abbca6ac0eae96b10538003f13e09f556bd1a172010233bf0c8f1ef9f76dc2e28226cf81762839ca51bccd6269d58667940fcff8f8b0fb39bd46fa15fe761d28b95e68ec2be1bd335b9b443e91268efd9889777e4b4f45a0906cfcb3758b8016e41f09d35cf77bfa5b285a895d3b0a6cbcc2cc0c3dbb6fe4d47dd635353977fb72cde01127a72f1ac5f5778bda4daace4d90ec84e3a015d914669382c36ad331a58772c2c4b5406896b5cf281b5f66cb182eaa011c9c97b3f2f86919e27e575020f14f8851605c03e17f1aa0dd3f27c0609bead399d55f3c4fa07bb2d780d1df074cb9dd8de30c81204d5c180a8293ebdcafb6b8c299d5dad68ac1d192d3f740e610be0662ad718fa8f971492a63367a064cd84c79ba40fd507ac969f61f63833ef208ccdbc4e4836d20d434daa1e750fbadf8ac3cd87ceffa3f217a635190995a06e3e539f12ecd28a446803c7687e51d7dcffaf6058a7b82277fd2133dd1513bb62ccf77a475dc9766628787ea22a51e4574c217baf91c4856bc75d0ab5b9a1b9fd019c67d06865b86321d4f4e03ab1c86059c2211c850a23165edda40835aacdefa0e5fd96a56a04ba242b2ce99a6a7649b4201089851a9de4bd3abb5c2243bfdc4db1ff41b18c844c9d547b999b7c6f063f065f1b5ae6b2fa1703cdbf1d892ce5bab9c1202821639471b77f987b15127a22d60e96766a3897de1e9d19a736792f9f8f39ce32193589d42bbc1472cb780f6122912859471e9161766f7b158fb5ee6f45b604c5c3a9c19ecefc63bdc7563f07ab774dc02aa4135f9e1f47c6122b17bfe6d02e0fc7273f8586590a19b008b8440d1de1ae4d5b47097a78fc075aefa5626e9781175775cca95e21a509346a176ab65f333e8da29324c6ed28e5426661e2d3b855f42a2c57e8c2497daa8ccc873756852a6f298ec264b3cf76a200d595ce01c2b914b01cef59ca46126f38fe247cf850f3218e79d8a2a6162e97777bdcb2748b30743aa3467bf733e7db970816556b1a5075b69dd8fe08c4cc69a8a1f04b5a94fb22646f27ad6afede706d4fa350bc278ce53cb22bc02cfb353658f711cdc1dec5709ebb0e201a555e19ce6dc4da49712764a072fdf6a41e8acb7005208a79f973fc492b3c8e9b9d1c271f080d63b4166603c405932a2006e9b503a0fd59b8bfcdbd65cbe16e413711560173e00cf0eadf9c2a89a245d5dc43846b8b1721ca8bc8ad58d91d6edb75198d69db2f90eff5af6b675db7955d472c92c2dc45446bfee19376deac53062a1c59481db12c236abd354882c6711de91f5f87da200199312001e28cd7e19cfbfb98dafca82af76b0f39e8a2db6a488186bc1c603ff55879c37215ea650c03f1abf636f2eb5fdf844f1d60ba4a45deed9a47519a0dfc219f3f788c7a97ec4250f53b41241e9d698629d2160e86c03c9ae28d76c74a8a793cc0806403a4afa56e9b8cffbf7f767f8ffc0644f8dcf283327932d4a0351410a31ba0fbc8ab649095bacc5eddf250cdcf9efa3b28caed5aaf22a02ff1c49f10c4d068d2b6cbf207c38b00a66715afc76bab6dd75722dba1222643aa3a77aca9017b235fbb3dd1b3a22fa783ff112768a656023bd7415f31b9dc5383155a4f74d4ec324d78b81bab70edd139cd01ed4fecc7ebe8a5c1cefaa70b6051f1244eaff24d8dc342ebc49a1805a8dc51bbbe4171229497f79309ae4d4bd002090cb1b1b276e84393c88b659076aed39729c0ebf3f24199b057ae51aa6773a2011e7ac159092a12d216c0e8cc140b678273604100bedf95995531a8a5d7609f7777fe1120714963913444c7cf1f9cc144d7d1ab21b36f9fec9b71d59da44da91f1726ac3e6645f9f708bb2c3680088a87e7ec0a97338f938478fefa55c70ff7f151215aa92709fd42ceb622ce709398ec12f18c67b0eae9b34b39b731d5b29ece65d52e3407757cdef7a45907733ab44b1330d337c132191cc893de3bd575d97cc9c7cd510d5726fc7e910eeceac9eaa997a16795c792cba19f5d710c765f316f9888022263898d1e1c47eccc9adf3aba34437e94a8fe6d0af844f2527d41a1a625a057784de7c8524573525b1084280705ed32397ea16acfc2d0d76342c06a105a9f6e9800fb5af0ef170b000fe5ee1d64814603ab3db1107d6d90911c59c7885b56067cb30b8901a748a255f3195047e68f4ac9b7326d08c49289de57237067f9df22a5e6e2a576c3a7d71e32b49220b7d4e4e0da2344c8ec3f688cb2fef0c03f65deb6d0e82c90e9979e55eabe22ee719e7cdc31a88a86253136d0d939a207a3b1ff2e0ed6f86135c5130de9cf8b1171d677df76990ce19262caad008fb6fe69ec52a082d6fafeb98111e96306e9dd2851a7473b23cf444d91b312a59bea211bc0ee1798069ebab567a0827f757eb5fc0c600728948bf5478f2598fe8b9783cb80c124bfdb0a41e6caf340376472ad6b9ebb38851e5f6d52bfb480b22154e3fa9a0e88ce94355c09f37b8799963a389b8f186a11eeb44c550dff11a15633d65c28ddafd15375fce6ab0d6e3ff9f84cbc10f45200ac0cc1f80acc47c19fefb671580bfb503a27e8228d39644ab50b88b9a0872db15725c61d2925a1e8ccbff000864db08d3194b6d7abd14a2fd1fce3aa67cb9322d8df9150ab93df510baffa059c14df7e0af4db23163c394e6822523fbc8583a9fe7460c1cd550745a61082e7ef025e37b8908cea1cf656056e9268f57f67fd17098ecbc7d840259b9b52057413d8a8b5e9fbf71296635cedf1ebe8770c820fbc5746b607ff5d8fb369ed6bf5a614a0f9d8140a2c119590364c0bd6485b2cef5bdebeb475567374abff53adc1d18dabb4d28213b44aaddac7d8f7930f8f3e0bdbb0987f937efc496292932b2e39d313ae2831ea6911a416d3e3166314521a3746a24499c5336b21b84f756bbf01dd7d23ad59007df3c0a1280fae0388d9ee10df69744990389f590cd6b1e5b4e6ae4ac29a0c1668c3fee0f7b76c5ceafed28aa649152c0c319aabdf40092f4db12ea1009ef72c2d3783e0b6a87dc504959f3286b1a4f31344c1364ae88c65ee05c731d3183cfa263da7f16d2fc3da6dcc0d3c73809d6dcc014b258666a432dc00d50f841441234f5ad4c76ca4f6d5fd7379b769fddfd8627fd2d4f394fa54a01419b92641e1476e8f710bbbfbc266d553cbcd1f363435ecfa04820bc8d8fc72b46c28dfd064c852a7919c6dd193990cedb863a7e906684428cb63b2f74c0aa7a7bf6471f80ea43e7b13172ba75cbf5ec26c816f7ffe884e7604034e1d0b8b245240edfc9de4da1d216f2ea0f3b8ad02a47012e7020992ca0edb963282df990385fb9b3e4a9ecbd1047ec64d218fe79496b23d1ec1cbf4f16e01adbfb97c720567379bee2faaa7ed38c32efe62d20488c6d50ec7c3549d5b755775b2650433852acfa255f49c838692facc3a38af44670947facffe79ef0ca1df1333024436720ba25f06a2487fc0b6f34471e0066645443839eb959b2515d8489a1bef55be877c954e7c58c3093056b5a0b74d9072bd84fc698d6b28ac9a5785eba14c0e030200d19d0024eecd286258e7487e0f8524fe90bdc5bb7a9da91db5cfb7428eda3cccc1f32b1dfc90d5603dc155bebdd53c7fad251e179d4badbffc34af11620e824879ab549c08ae6e27fff881aa01b4ef3abd7a69c596dbfa62ada1926a718cf81149246e73501c84aba473556c1dc6b9afe5c2fa2cd5e825dad16810b09480f87a4cf36d9d96ad83439379400e54394eacd4999ad6af1f040aec77dd215eec7b61b881ed432b890ecc0bd119791541140016b99f40d1ad987982e7b715f6d3401b95a4d6881135004313db13f2f154f620158491b7ad4e8bd38e65dc24911a96e94c940dc82bad51bae3efa58dea5aaf7b1ddf6d177af5252acd245c71e9030d53d93d00298fe32193ad61ebb8402efd04a8a171599fdc93b857351aa74b189c53d0d1234c56e5fb7b260d3dfb69e7538fd9a03c12182f4f76a7288b65e6e51339d03913cd3a3866fd11b7fc70df1a9527dc60ab88f57ab719fdea9a09c22c6f335f82004f2143700b3a2de845e59881e4a5fcb6a3ff8bb2feabc320ca486823201bb764b3b671c15eda4eaadb3ecc0dcd9b167f6570b6974713f5171d49717d5d815fd7059288dc7be605086a106caef802f3541e65b25fecc10624996d1c693619e4b014816036e91986768df93bcfbf0f7db83c5fa693b5a497cc6732d8013a21ba9b0ae512c61517faaf35b2d084c8ff679494a6680f5f984680b48d71ce4f856a33b29a22738f5f18e5eddf25da0dcddc5d2e85e395c9ed7feb0878b64ec998b12ab2ba51e4624658462017c8f7b0fb0b65f87b924056f847272b6e4a683916f6295d1b63fbf7387245b0a764c78ccc43d10fb468fa943a431c0b3d1832797d47e793885351579e2fba6ccc9677fe8b1537e367993f8501448c47232227568ccb5145bad5cbbd716e736aa606c58be82416eb94b1fad4e844adfe5b4d520e2fd4fd305d848943bae85cdcdc2d383eb845d4c851f2a458210a1084e3d785865d06142d37d9e760c027ab5ca4038f0a3c9a77dfea32f48e804ab1252242fa023785194e109285798377cda41fd7f2bb3df8df440a8f32880a21c5d65f11f77cc5c2fcd2d4131cb6663d68d33f9921cb836974f3fc1b8da3455482966a6704ea7e87b6068d23ddd2fed82baa828bcaab12da207368422582a7131b50619eb60763fdd9e01b3f57ac99702029a20e69da4ee734d5f86748f99ec786eaa1cb4c7576c4ca825b71f408e14a84f761202c080da4ced69cbddfa63a02f5ab05414a5fae5dfaa4f501390387138e2d1be78a103f494e6a6700d4f86376d04cebe70be81f7fe1667cacbdeb91f659e762872f09ef4b878ac74f1e177f43d9d9c7d2eed05023886511145df52a350edeaf78d24fed3af30fac7f0a04d52167c2ddc9a092d405d4c7eae719fe4011a0668ee4109bc88a2becaf2056121214bc0d11a4d375a4614b39f36e16662e17f7b30506b9c29e0dc41f0493f4918b1d300e29522748da2caeabd66b0d3917cc9459dc1b93eb8e27bf4531847afc3d96b8d259e8759581dd978ef78eabe7e0fa6ccd8a4c7f5f66c4852aac5408b649a7d37018e8306897c12bfbef7aeebb0859e10eec6156435318366870abe09b720462ea0a58ef24a9533a1fa2ce880aa1f4158579f2c648dd601c6d64237b22679dae5cab83eb259add09361338f99cb0c7de343993368b9e8b784a40bbcec8fd55ad2121bef6b69afb5bceb406aee4e2bcfb0274cee1f57c07f7236736530e02fa17d9d765ffcf3cbc8f1bf106bb0ccc349d7fc235232bb1976311a088e87f98568881d9fd980dcb0a94bf4a8a71626c583afe4d4d2e876f9aab530f9cc357f2154fce054ba9226996decff23bbafa86d70d5c8733a4727ae2721737cc5083e19b97360f21cfaee967559e3950e4278505e4b6ff6d01a1a5874c7385b49508f3f96978d13f0644171fd173804193f4b942a81b60d88e429693ba27177bc1869fef0e01624dfd9e5f8d27d0a6d20cc17bce7ddffb89496b3b138ad8f6ad678e36fa647dd1972871ca65623a5638155aa28e0625d202419f6b385ea0fe0d8c9335f7d8eaa66c7406e6aad99b81705a120256b9f7cc1faee5c74a3f17fff289b2e8ec2e940383583233992915018e584b955db35196cd85d018a87dd64afb8099d484da13466a3426d75c05b365d76279bdc0dd57045083dc7612a187ac1b64dcb384d443044fc7be8deb112a5e6946588a2a529efbbcf629f2d3901133a44049153b81cfed3e9330db815454de820e68a952795b0ae2c163113780e49b0e8e9f5b6964a63ccf8d699f50176351702907a4f6f14ddfc91800279b135c280b2c700cec829920c841ac5f989dc4093d14b8c9258b86a54d238e0061ed7039f7c8bc70f4644e0e4755a9f7bb20ca4b095e26574de3a1a5362ee02d54e7f9cf7e03aa317a719f67d2a6a59242dcb4166cdf1e7b4f96aeab1a49fd4aca6745a206ec8f5db3ba8228ad3d985908498463bd0177d62a12df3f44c2177106d913c8a9080bfb2ce9dc24dbeff5398a1159aef26426ce44723061219b35b668b37f997df2b59d1d913136a836ec9cf6c0dfbd6283d4a0719334e213e890f34f8774d19431947fc7bfb8105e4a96b8a5144a84cb55984680dd95d219c968d752595f01fc5ecb60ff313263d8d639b985591103f87bfc9c0ae2fcc572707e87cfaba9fc5875de3b3fd97833966e712f0c9e02d60b0b6942a03aa580556b0c470046b07dafa03381251e3a541593c005ed6a2d7aeffb584892694f676c7eac50dbdb3f3da7c325710162c1bf12821e82098b7dce781f0fdce88731c5a3e299503372c61910c2e53e42b812658c67ad0fae8ee820db3bca2c0121df7da750aab06a2dc8635211b35601e106fa66ef997f8142fb244546140cac513d26cfa2ce5ec2bb8cef495ae2e5eb07bfd936d35e8efefb8ef47242decb3dfb0a90777c2048a9ef3891ee73bf6ee080d74c1248f2c43f271182e839e012b1af6724d45f0f71119e775a65c4aad2e39b71d864c008c2c0c3f0e38e1daf71deef9047a8dc3f7f31c38f2ffa41959e5fa5ef0a36ad64e5060a8411eb2e1f8e83c29b0401a123fa034f108429f0c91371bf6d137174af1f2a84babf2d5b25ba0eaa4986b8f023bbc83f85c01012e398b5cafcabcc2a4880fd2f14170e89c888e48598f939a452bdffcbca60dc1b0364255c5650eb665714f076fea0dc25e1b38b8f690f10664fd40550e3db7f632dafa94d22487b8bd3832f42a505976b3bbf10c129ddd046c7b57c2e681187f48cddd7b6a2f734fcc8d0bd6994f528032eea908b147934dee8dfeb3da1eda003046dc014666589f677e1750ad77a361be1ca1f9738c5e7ee8f35f2a84d51e8783979c19ce603630de468bf87debbb55a7a6b5647ca66d10c46e4540be708a68e4eb3ec5b9f86352a62873bf62b43c95ce54d9b3b62b4f2deef2d74f4b96b79a87ff22e436fa669f1ec42e6f6111dfeb9fcd739d423755f18e97aad6b369220360a8b425fdbbc9e0c6ea1cf795bb8be2b7d402f4d637cb4588dedaebbbefdf31f787947f5686ff737f7c68df67c33069f4a59434aed5325174047c60901f8af96cd6eee6429bce40521a64013673006a67f3210fc1a71b25a28973d9326fefe310c863ccfa2cf7bd807e3cda2eae516bb069476159ac6e8175f579f2b8e113a9d9e2e5d061ef5ae9034b84ddfdc55f8216c72c857f5de64189cdedc8d3a496a63eac83cb202f54a819b5c0fc015a24d05e0bc55246f01a59200f84f61914af91c9b5f26425b75e38cf6b14fe92437281741a666a5dcf2f7cd7c2b5cf8d60cc9f642687d57305f1d7ea1cda6c26375caeb1cce075e543e60758edf6f84678d6624bb1e7393133e7f0b88013b065ac555fb489d106d2b8a2a2dadb3b10e40f2822547cd50be75d194f79ea548c414e3d8d7c0e1f1cc20afaff83b83393a2fd070dec43ba9986f40f63e09858895c2b4e505db83ddb92349542c37c9bf71c5e6d2bfde4e5f890368035f2cc1341e1690e4c44eb448e9d0c35a67ec1a3d2772128a864eab5edc0be4f02df6ead6d97f0d2de0f2bba14d8b2b8e81843716ef48f559648d6c22b4c64808df08d001675cf45da9f49656aae6c1af1bb423c3583f8c3feb57242bbe402da8d66f81974cd35393b435e380f9ba66c8924184e5ba63c925bd35f8e760ce6d8432067641b267348dadf77a6eed60b7e31d93765a2e34bdb3cc07a49c3502d6fe9fd759f44611ce533b245eecdef7e33b62f9bfe01958eb357629a79502b38df98c4e412632ae11beea2cb77bac05174df3c64ee3cd1bdf96c8847b163875ba7f3b5f4a49f31e4d889498f9eedd2eee51a2cb4c82378101d271f8b2239b841a5ce1377d09754a32c18e1738882b8494f08e446b82a5fdd5c1b11646be6760fce744fa4f9de08f941f44a57e9857bf75d2d3a72b9e3999dfe60a8258c6ee2d3c4dbb85a6b1189007d96ec803cbb061046d027e3e651796087d99f56dfe1718196f662b5ec5691bbaa7f4c74f7b2a711fb03979efcc0057219cb140e3512bde6b076b27cd08014402fb87933f5508d7f21537c1fedb70adf12d032c49cd892e99bae434357e3088ccfce422f46c2c9ad85bac341d74fe9f154b9e46188774b93d20cb65ba16228ab9eed21bf732a448872fdd3f2204c9b0bb8cf7cc2278a7d5cc676d9413569aba00a4b9e0e4b92557fe912ab396b119f0df9d857f3a125dcdaaca9af427a6a86388a66e02ead80c3d8de749668b47e517a91b44ded5b105b6d702bc81e475f4bb8ef8d985fe3d1a888dac3439e0c91dacb8d09d46496813115f1b2468542350c065799716038c8e822b4a0645dfec68e0778c95f66ad570bdb4f8ce56e59c18b43895dbb1a6c71d8c039a08ddfb3d1905dcb1c77ddd2b0b3a09f83daae485e5a6d69ae94a9aff4d166542ce906aa0a1987b6f9cc2fc1bceece2cfab98712ab2b70c99337111c9037a37889456024ecd12d1821daef8601460360a3c6ad663cb1bd153981a522202bd3ebc327ff12e08580b135a607d222e4054970bed0e519e65930d8684c00a06b4789917caef7356f954a563d0b534148d2bc0fe5a1668f1d61c8f1da781a5fb58da0172cab089120b3f1da21a660cd54946a678f7791b489eaf14b5f427e695b70e7bb4825c5ecdcb244359ce2019b13ac94df17813510f08ee8b8aaa1d95679f0a09559653cc98ef5f19dcc7230365eed0a442b16262133b5bc3898ea5cb403f63aab6ed6bf909f065c0c6d539d2ace9da2c46a699ef35825c7f50b94077c31cdd2cda4c13ec395757e926079778a157e67cc60f902a4394991c24d45b219c877a444df6c8c79872506118276b5b053a20183722bb58e06018f3e0aa20081fa48ea06070e3a1a23c51f48ffcab152b6c1131609461ab957954db3c59386d491704e3325c8d01cb9e223f9cac7eda5d8988b10b5aebd309c79d45f7bc68a71a4748c7eb5125a98fb54818099ce3852e757d005810c92757f2dcc0fc7f898f0574bcefb796f4a295f5cb3cde806fc1f50ab410c490d7e76eabea63621f7c3d2f2580b1f417be4f8bbd7aa30ab10d119e62d2fbb2b0297b3429ba668e00052ab08763a8d68e870976ef14fce94d8fce2212e046483704ca5cf51e90b18274351847bc48418df023eb67d28fb23255f7c18328352d6d5b95cf5f917d3f0359ef082a1ecd830bddcaf56608c5e8bee3d22ff92fb7fdda161b8e8fdd6fb62cbbad21199af255ec70dfa71b11d3cb1f52addf6e0145f1b5981caf521cd933b34c857ed941d46c4a2fa5f35773edf882d86ef1dac671006d2d0a616e46178b917d4b1c66e189830b2a7776297d40b2092ab9cc101fb7deadeb4981c54fc2f652cabe9929c83ccc35387057c439de1ebb3a2d2e8e5649e9e38e7d8f5be17bd32051876b5e2af32a09f05280f68eba51d9c9292af10f41f2f41169332b512f617e0ee01a7b812747d64e27f2817546ce77f4044c310e9276f7ab164562b9211e3f26216cd2c51cafb2bcdf220f8d88e45d6518ad94cdfe28be6a42237bbafc4c00ecaae65826da2fa0066598be512eae3623b2555f76d0921e0933a8351404ce441f83ef325ca76a85e643f44cb18f140ac2c8040dc709244d7cf8b87ec28c149e95fc1208570dea644d4ed8e68ef35b007d90d253f4f33115509c1cd17ceb2b6272529ece94e926f451b611e175f025a6581208f78ea2fd68926279bd6847a32cd72accc348a944953b6a6deb77a211b37102bbee007b1770cf5da196bea17db20f631a061174091864211bcb9aa26bf49bc01c1cfb74b6a7c980b1f1a59eb54329bf3c091647ffd0f5cc8008ef935d90010c9a7d0c39eb079ad22c4bc510d5af8958449ba5d8ade17ce231b2724e0cc92c00b339b384b551c3eb20a76397cbe4b5f0876efbb898d3b2b1196918f23f60a5e79bc30f26ea3b53798d5de404421c17743ae6c29476e4c130ac451f11f515e27729ee938cd31d6c7a4cffb94f54ebab6b9e0ffb9c968a29df931303be171ac8612d299130492360e9ec58e8d48f236774edc81d580193eeffbbaa952e4343a7caf46ceac25c39cdb071c8324308f365a0d1420bdb132f0e254c64c510b9b41f1f386fd898a9d114e97c0d5a94f14e8ecc8eb2031469d5dcd986c9da97d17cfb5ccd36d85e277fbc0e2ed2cfda45620a6881a5096c25af664d01f18aed46d6cc79ba64ba1f56f33c6709e976a5ee42859c7aaf047521a3b47857b3d296fb8e28ceeba9e3c645654ad6b3a08e448ba0228ae6cdd45955ac695bf3c717096746400342ee77a9873fc33556ea744be36d790a4e5b11e79dd2c21805973e9498241af8e1b6289d6bc4fdc1db56d7f16c76b0d06329b029b47bcbed37841d372a03c55cf4ba53864ec5475540f170d251e299e0ae8a6379a00fd1a2f6aff6bd3eb26173ab073d7b87a1fa7c1f0d11d2a150a53107f4b6380e56ec21c006d9a9499a92135be04ff1f82af2298592c71a5f189c2faf35ae34cc074aa3c090e896e05eb81ac2c17e5a5aea91b0acc1db30a3ba165f4fa3fd99acd6c9efd4ab6fdda8abf324fed71e632969996073b1e25b9d3af2fa3d87bf75484dfb10ebc3ae8077fc0dc4f31394e1f65a2668a37f51b48a8900e774a42d36a341fed4fac49c78da8b7f33e155585c5829a40f0e447263f5cb6671e5808f73516a3e7eed00e284ddd83fd01421ff742212a40a2937b05303ac9a0df607c0e39738cfb0b9c44db353083c720d6330986ae84ae32268eb189ac5fbeec025e1552823e6d62567895c99b046c258eeadbfd505e7841c58bd41867065793ef3f9dad90d9d7809620ed247e5352efd434215a97571348c4b3626ecd1f0b4dca4ff47ccd67cf4640b0fe16de6918e64ac725b852a3ec2ffa41280af5e81417da9dd630c26ff75ff3e432bae1ff15a2df43f3bb9738c97363cace249434e88d66b93b777e4a6391c3dfc47b65a38bbdc224c38aa569209fc0fb58e7050c9907f9d204f5295ab210c6ba1868b8b6a0909981ae6964996b8e1cd83b0ee89b42e7f5122d0f9e4edf37055a132966a9df57620259430ed4bf0da99d310a089370a47bd97a4d05ab24d3d020df4d2897a162715631b564b59483fd3f861fd031fe06414d3ab9afce5409b68e0aabe1d8ba525c70f45260cce7451e5e111ad09fcd00870cc3aa14da9cfd0d550c5388f3b81abf993baabc13b50469f4bee4f9fb9907a416bf9583427a5f77678adb0d0b63d870b80f3763771d2aeb7ebfec05fad72caf8faec2b7c7d32beb5b53dc7c442a854746f4f57068267463f7e0f46af9ca797a23baa497cf62cc37c58103dec38f2ff0b676c1325d9309ae51390bd2823ef0f1fda873e9e025b8b3cf03586bfcce0a859614dcd2f9deba6ac5cbda6bc0d30c670435dbe0edf0e88c7dcd07d5947d7440257dd563162e5a1ebe061a5b1be383934ddf034ac310bf4125958badfc3b9456f6cc9b0ca0bd70ca66d194415ba4fb77fbebad5a8dbe161425dee25e067f32e61a7d3ac8322e30053a9257c323d6d9a2326c1e579bc165b8c9f1bbb6d6980dcd6c8b6911bc62f9eadaad3bfab2ac6be772c85cce904f88dfba5a02a644ec4eadc8b4a23d437853314b0113b39f712ee6754144d953f75bb7fb8674cc3197c7a424aa05bf4c4663bbc3ae5bed980d6bdfe2db032e334a769534943d1e98836d5f4f9bdb361f546f94816d9faf598bb7df5733d2cfc102fc3afa72be2b065450796867374d1fbbad632a37fcc08f19f7b8bba5183690bff7ae0acd663df6e66721dc8c97fe4ad297c2737ddf81c8ef57dd5b0d4dfc80714afe6099c80f6d5dae4a55a57737d59bb91ac4597bd5b2c8b44a8efdef03fe8fca6f7356d5893004e7ba78eabd6a662ad0f6d54d5f8562a29fbb11c7c2545eab6e1edfdf028ae06842ddcaeb7bc9ab1e1830379779ddcc14558af8910a21e93fb8092b651ab41fca508d4fd404f17cd4df958e07755e967e4ed9770868cc941e2ec7fb4200f66945e305db5bc42b6305bc137e01d935528db11b4042757872901ea63124534962283e2a66f8ca4a5c98598ee9ae216fc65654530791931fbe2a9d8b151f771eb1360fe49636d43207eb4a4f45eef148e833c313a9ea5f33215e7a3de0b1d18f7ab53d66fb003ec5816ce1458930151b278a907f8d30977ff57e3894e68c868f7f77798d5c4ee4cf94c700ec286a5e469f1d50b7cf90adf3d5ba6a262751af99c5a978def98a69e78003204a0c46766d41509f13aa45abab4e0fe5e96d163b14f2fa1a5704efdae5142d256c27459ff405a33db7dbb6cbc6debdb4ee2a17e17e0f1c672053f7923d2ddd69ef3f76a3978da051f1859428b8dc7baee10a3dad59005fbde8f87d71d212fdb98d9d08f15808fad6358744eeff2cba18353f6b9ed88bf0ea30678b11ae292c54af4cb5b45cc5a28665cb80b73f2513c2d19e46bfdd37714512a95bbc5cfdae646a9ec3df2d0de266cca7b343431c2ad899188e0bc6620f97733f03b795abecfdf1541bdfc0fec38b4ee88aa866b82f64f75f1dd622e98e4f72794e9cb50d2907c0e0142bdc39697c2eb82eceba246b39a709abe3718a7a76aa884e0dacbf623b31216cdd673a14519f677ef859410b7c09d52a824b89023a4f4553654274e44dd99ca0eb7040bced58d9bf8920497be49863b596672890a1a3ee5adfa802179dcc9d1b6cc3c5667fa36386918649db47710af1dbfb566fd76fac0defa15f07aabfaeb88d7626681cefe0ba7dbd80fb6c21f09e51a2a325756d220c9e3221711afe5875691c1e0d282b004a8cdaceb75114b43fde972312d04ce4ea1f036cd96f0a9eb0f973543fb047618d494e55643b64be58956641fde5337c46f0d3908537e1eb831da2a3ee542d81c5498244b5e818ad60820affa28803c411738d1199b088424848b79e2473e0472a7cc74bff2c683b66dedd485df229590ba46261ca7837c1f32edff867ef17863b860fadc9ad6f405d798318eef3a2b2eeeb83b581097cb5cd0e49634bcada5332e113b1c45e57a3fa529ae83ce3311fb5b32a428b6ddbfec260596cbb1025d0b545922cd12f29ad98648b1897229d98a7d539b763ad98651eccb4bd891e218d388924e6e608edc5dfa3dab028d2a700efa0fe0ac40417395753157e74df4eeab02e0ec7d4003c3969f020d32359ec43eaaa0b3de9d69dd45eb55d4ee04825f09f4b533dbc94f813e11e3b0b428ddca1c9db26682c42c29fec0d67dec39579a82f9fede4e0befd38d5bac6511893e3446bc7ad80ccd3cc2b91e3c016756196a76b6f2b9599e289dfa43f0b39890a01ada85bb3239aba894eef9081bd27f9148e942afa4e5df9551f5bcaab17bb756c3adab8126398930bda12f0fe5661ff53953e3d607996c94be1c68c743242cfeff5770535efdff9fe1dd29af9b09a45832f36e95484f299c4df88d375ebbe08b52a11b6885052b2ea29701fe3508c41545863316fa7e2b1f04bd6b0ecf46b7af4aa7dc79f11d26c759bb585c1495e0ab46d2519b9382209d08587cb35c6667d2ed643379f13de3b1b93c58d3cd28df14459f382b8cf6b9aa4105a76dc4b0f5c84f3e535576009268afc13cb60fa554e3d6793dd5fa78a447e5dd650616af5c3ab4bd09277201366a8139f5fef2b4ec1c7d02b569b4b28fbe1d0443ccd09920aaaf6b65c7cc0285973fa9f4ae49265cc38291f13a66d9de9c037f99833a2f8348a9c50b09010ab444438f9858e359ee3b8530809ebbb7ba907959d650cadef26838db7be9d36ee5d637da27468592d1790acbeb64bf93275bc3336bb7bf2160a56c644d66ef8ed9ecebfaefdfaf68ceb847009db1a9d47b5726875cbebbaef7728bb0360cc5dc3408addbd7e0363264a5e4f1a056ce6b4dd62f996fdb439cb46513b744a2bf42914dcab909ec1322509ea47c9226db086f704ad95e438e5026d948388e02d3d6415cab48ba2ffe5ed26b82d85b7b028e3dc5b0131a27cb999986bb682696968c8c389d03d4d0f99b26ea2ccc4428b511c17effffcc6a2ea5792e3b765ab871a378a562d4b0fa9c3853a9e15a0767ce18ef10c5483bf09e2f22f646676d7db0b51a9b0f424464b11e51483fd2ad01bcabf4761b877e07c7dc9eebcad75458138c10a7b16c9b5dabc258f04c3bd6c42d00414b69da270e421dfb65bc7f5e4e0a2ac850b5f8feccb0fdffb3c27cb27e759589b5c88ea66b0740261d06cf435e5fea4e7b0e678b488652c48519f9245e2befdc66784e4e24f241bb033bf25851e00e0c13f8d68958ec7be25b28e0809de35fe5e1474a0ef6f6b65b7ee5a798e37ed32eb8ea7912e9176f47720f469ca327979cc38c02bf23e4682a2bfcea5215b012390dd4a4dbb1d66bacfb437662c00f80a417d43767138ab2b936a5e2ec0cf728ce780c24c364a71e064b9fb5f8e7cf0395ec0e04c65920d0293014524c86f75f6feecfdf1e64e723e7931892d16b8e780b251f7de0f6f4966cacb3fddf6e89d930608492f030350a9005efd8603ce81527c61cde827fa23401fee5b7ea45be614d86b65a28179f9da3f25cceea99b8b533810a1cf216ecdf48b15f09eb51ac05d9bcbebcb267f33ec583b91dcb5002a2dfed1b7237e49dd07025bfb3f615b7049cedb592e62f9f0d3bb6e413a1c037b195a3e6b39f37918c03768a38d048c15be19f5539bff6ce68a3363ff77671907df08388912b21c731dc326085cda6da506a4e1dc5a1572362752ff36db5c735a881f4ce954dfcc6c93399b94c44af2e008f062f7d4fde9524af703aa92c08c23ac8c779f0b6ad3a05ef58499e3ac146067db16648cc369b21072b72fb2c92917eaa33616b18d31ab8263a0f80d1de67c5d6b46936f11d98d8a8492fe4ca101aab188e8327a9ddce6132ee56d74cb8d72f50b411106ba0e0dff6db9c0f6e61164006852e87faf71864ee4295305e89a2d94dccc2fdb4d786059ba2fb1446846ec77ef59d33d7e8941d24fc76440b925b0dfccbbf4c12215257f14a68b3d93b415262a4eecf1d2c138a35e3a3996ee9dc7af2844559aa06745ffe1857dd3aa979dadcaa5fe7ddd0c45e185fe14f2cb89745d9a092e355e0e0d4c33fedfeb5ce848a678aabf3627d2a9bfab15eddc4a88c4055c98f815e4240de9cd4f7391f50fef25f71fbc18021ea6147bbae65808794c403c5fa3ac50e0c1315a4f9dcb32c5e3bd9ea8bab29d075c20e17cc7b0bfdec555122acdce0b43e60021fa58c90af0832fbc147f920a9ff7359344fecca8b766bdb0e46be8a116bcf16517ac981dbd55745444eba74579e50429f2a4bbdf4cd5457d928751b0da643aa68a409d3b701d7627fc685e35ddde957e0c8da3d311eda107cada9b10643ab9584a4154252be2760a82049d4085712583252be79e27d6071cd0fdf3a46da4d302cf22842fe48523de759c49ee64ef6537f71ed1742230e10a6cb769178bcd4e8b9026cdcc44f2875415da5db9a90f6548dfe6535a6fc0d5092600bb0e3809525b414da6f3caf28f4c2b1462065f927f9946aeac19700d88e0c0ae30e932e514fa8bc74a40a066d28c32beb27b053dfa22a1fd637c34a00778ed095804c50091d036816c298ff9a2bd7f6ec09afff6f3db9f7411da1ee06f8f7fb34ba599d5d86ef43394234dc9e1633483ab7368bcc7ef99cf76d0be8dacde75aaa41c42437d5a063b72bcf3bb593a94a8e69578c4125d77aaafbc6a3dc05ed0fd6978e5dfcb16606d35608d5a64d8654b130abb9c9a14e54e4939b7ecf9d544e52925152d577f62b4b97a5d6664d78d64753712da4e07a537694b81324f6927487bf582070e7a96cc26843acc2d9154a0ad38a37458e8384872342250a92cf397f25f88f021e30c8e98126845b3a4c764d2b607892a655e58b53b26e9121234e2639b111e55a5c4e095965bdf748c37962d7d491224191e2f5c24fb3057b7716702d5511ee15c85f25793c48e95f1d700628bc08c67c33bb7596aa3d04deeb285c5f10e19feb16df6cda55cb56e468e89602313635db78e1dc1fd6af8d5ff8481a25908703cdfe57c39fc51307115b69d2ed28f81c2a9de948d85c0628ba36a53a3e4184102ec8585b54c024fa8fe1cdc2f3da0ec8704477e8fe367f946e8a5f73fb59f878df82287b3686c55f92a301a5c5915c5bc234c955b9342a85861b43924da79ec8712befbc1c3eb2f19eb69a8751acfd995c7e19abef3f450fd7169d4bab04a81c69895475138b7858e61d0b4a8a07aefc94733ee92add5fcb2a6890a9c18e741f31998a537fff2fc8c94535b8ccf6cb16130b6797f9a515f967a682c0fabe56990b099a527336c3efc75ffb99a1c4909158df2f47941528063e2f3d1112d8c1f71f9bc6ecb6382a6bd969948784d4af4e4bc197fd5cad7af1c866699f2f34d31b6d4e624807681c41ea77692fe633801e3d720cfa7569715326aaa046f9d33ef180e5061ef2a3018d4206cfea508d09809fca4998f9536a7cd87554e204d69276233bafb775e03a91703c5bf215526e5ada30e2ba373fbba661dc6822cf8d2be7d870accd6a3409ff7efee8c739e113c2c1c47b7ca9ac1209f0ad1c0adca489841a91a972b27cea95544f110e82804c1431eb9e8b399cf570af8b04c3047ab01ae8307f73b205bff38f41589db45a003129d6ac8b3a062526ccde9a328df1a413311505cc93f07b5138b004629e4faeb594f0236bfc6680f7a0bb15131551ef9ac306f521a7f72753543ecd1ba436dc1f2779ac054237739e0329c91520c1e1d0c414f5be920da0de514fee225524f19b279ecd38648df6c5798fd9563d99e31b9a16726123ceebcaf172dc8e68b43e7e57fe5ebc0e8637e9b6f451efb7d0cef5e3298d25554875902acb3117442754dac4e09da51543487bb858a023bddb85a69200ab76d4cf3ceb631cc47587f8574a4f9cbdfe4426759c3e5222b647fa8e82bdb0503fc3d6834e18cc6c186ed0391c1ff6aa33bcade7c5b91325d6ba86826f400fb3b1dafe09eda94871a3a9a4f95341c1ce16769832ac8ef3bf016e603e291ef437c1a0e33cd56b5f2018f0b83733844aba1afb5476431932f76cd6cd3fb0cee219513988daaff183716baff01d3ee08c19909bc6e79473e20525bf22d7d34de39c4acc33fc34ca778b73867b6a2167d6bcf166432f344ee75a6041513c15ccd8ac8cda620463d0651eb1edfa821b7f60cd3a3cf37297ebf2196e998493302fadba5c0db779ad655e0ec1ff211dae8946d0cf8cd87d27a93f1f6c912208634c3c0e6e8904a558dc435e89ce7cf1bd05d0460b630fd0b42d0a4aa64df0d5ac54b414eeb084f10dbe1496a75937ce90aa07a578908b74ba89ad83cea3299ea75e7abe1b5a387835761daf58efcb67ffe1bc4a4301dd103bb73b60e893c477a4c45b512eed72dc21a2f483530396be5d46bc2f17713ea221ffb01b409c0fe8c2fd4fb6c344a2a2286dd1cf380d4cdcf6ca0a630fc9395f7fb333b3c5aab0fa0070b02015f1797e358cefa061bb30db6a6622260fae5261f705cc4361554cf0a9d47e5d09ca963036a3f3c6cbccf005834ae5641e8644c50decfacaa503d2c6993546c3026ac0497d4d5c63294893781c3d1a85a311439cd784f9ddd6731c66d373db63a53b8478932267e7c2ea19d7f8ccaac72eafd428dd492513b3dd21f7ada205a4a000a41254c91245963cecfe3214c6f148a4602f171274155329c332faddbce99ada4f53de141bbaa266ad3a4ce0431201aa23a62d88df9f351ea72832eac02fa26e4a5c9501bf8b8e3a9d90625252d36cce8de2f97d13d139f01c16df6f318fa1cfe896773e0478361030b36bbc7a2e31d3a80d24f45bd38843fbe04a56f2c560e433b6c77e349736d10bca8426040d014d7ad590f8d28299a00fe4b5eb6aed1cf67177ceaf575b1eb1c6217380b0ce719329df88b6f38dad143fbbb7caf381b784c79fc4066575c154d1f0e2831f30a42bf51ac0d962032122787f951254b982fe4e3f3ff8c78a8d5cc285f34556616c0ba2b4b296ea0202f274748aadfc2a9a83dfcef325fd0502ac8adf5bef0ac5896b8cd2476bd36d0121438e20480f71108872e0e858f5f5cfb6e2765e77ed96b0e7a61540be350e42d7b9929d124f45ff84dc0310b0c8e4c190e9bfc890f174cc1a2f5d58d931c1a6ffc21962f47b41d54e8d3cbf9a7039ba004c22e560faed75071b0f5abe4402daca9b2f71b9328f568fbae8c698bf7ad7b6d2a288d2f8b2164715231a584d2bc7041dcfdafbc983b90ab5057d05116f35352c1bf364571058311251ec5d1da47f66a8b1f097386f269d39ab8cfe75acd427f0ad43d439d4d5ff6439af1458c79ef4e4e96b9be45d7ed8bba93a86f8f46c32e2ad581012d01a65390e756788f0a5d68024f2a4ac9cf4ab93120f974e3a6231c14f07dd82b1f69aca36e20c2a35ea52da4c41b09ff98850cc406c9c8bd656205c5dd555fed57329aa96e9384677ff6415c451f382166f36939a4f10dbe8e44c865432929713119ef275c0bc8d9990435d0cf534701d17789ed79000f50dfc3e0d390212c9e172ba896c43c99e6c54fa6d3f74e0a3af6084c55bd6a279aed15fee39662e4af4e35f6a5d2460a727c10cfbb41719e1311c478c66ea76eb771bfc9b447054b1cf32133000d1c4386db0eae1ca456bf1d0b4b6a5892d74058a5af103ff4742e31928a79883e501daba23866b7e8e6259dc7b4f14bad6c905996449069026eb9813590d2b12e989ae62f221020066928be2b7f50babe03ead094a523f7066274f9acd1af1e166492b5ad2367d087124255e79bd2175fd7190101a64977c7d64a19cf63d72f491b496fd3099b0d2c048f801d8bb4300bac84e0d6b80be5faa96c4ff57b2ebae88b9d64735ebcdf266ab799dd4135a6cd8263af3937e4cb6cc9762c0fb0c0c5e91a30959deb2511146fb4806c190b08549ea7e509f3aad5dfd403d3ec1948edace5d330a520aa0a9d6a62d68d7b00ea6ed8b4b235bb8ad69006a708e986b549d8c02172807d19fe6a483f189c45117a136adadb7315fbd94509b12572c719a0116f2953307eefc0d4201f7875787b3cc48b36c559919203958296e8c2fd2e0ea77aa2910e14a578c003c17b1df83d3d263eb1e368dbd74346e5d276d2d90b807eabdd5ccf02bc73a03f3e0f710fcd691862f29a66537cbe05692486dba914265eef280d9b20ebd543879694e4d59df7d0418b2509a652ea5e1aa0a2ef3f73eb9242ae3fbfd1d0f710e51c7294438d0355503e41b1e9b353716ea1fa858163c5c9556b75f8d68f0f261521923a33c8484b6d992022333af0d66fecb4a8cef89bc23d4668fa2dc86b0f427e7a96a907391b2fc374690f756073b6e2766dd61c6f8fb4828ff49bdc2984c9b15cf12280fbbcab6d39850cb479abd57dda39c4e314f936f3458440e459136295e6dd60908ff3ee23c0d6e0de16b584b44f134274f0f1b967323a5591d8c340e0572c2e4c6e41ecc2ded83dcde1bdbde82a33f1014d8a1a7ad3705955344d092255ad75a169967097dd61d36d902dddf00c1e4d9a47e20856a213866e7695f851b8c54afcc5c2bca9871bfbef047229e01cb201ade459d89e4f80748f03b8e01aa64f300f9dc5292a92fb57fa43ece8738e48b5869bd5567098039352b4a719037df9811bb170bcaa2c7ceb6e2fef10b8618429f54afb9699034bec4b31d348786bf45657fca6cf3ac47bb90acb29be44d4480f31f43eb8bc5701f66d48c27c2b84fab5b825dd47d05781d31c71017b76fed098b2f9ac7e982e39ed27553f5a7388969f828976821e92e6d5deec6711f0e2989d914daf690aca35b6acbc9e1a790f0cb28794f10fadd6b86a96cce401ccd7d6e9f198840b19a7845a5b662db8e302cc5cab1cdf4057bf3018b3456629ca192740b60f5d69d2716f8a97127e2dd744818f9e6d8aac7921d2c15df6f9b7e136c87f3fc8e1c57b9415ead97eb246177bbdfa36806e18f3c7f553a1de2c7949bd4b1dbe41483b0024735e1a7706065a0bc20549ff73468557f4283bdeff47a02401579b00365bbb698ec51041572cdd9f58627d215d57e875c378a6812233ffa857cb9aae516cd40985574450d5e02a2d1e71a42f6cc7d3bc3cd00d8c58ba72020185fe09c0c2527fc7a99730a03ffdaf112ea10b0a69d170cfea9348541e93fe692cf4a8f1ce4b126cf45d0082abda76c8bc361f90307830a098d38251451e32152d09f09e7bfee7338fe4f183f1d63610d45659febfe9fc2bb066deb0da0cea301a19b8a1ddf39eb8b65a44ed42019e6d30dac834d03761dee924dfbd712f89a988393ebe2f4586913844c56686915a6d4b49c1d1c3bcbe55c64d990ffe4a1656f79a627c1c5ab980c98f4ac538bca1ecb5c49db6a3bfec7291c1f77d1221af557aa3428cbf735e573aa425cac031db41b9ee9368632c1f1bbd35418642a0a49c20798573babb8c0c10dec0e861ed5b8bea564f9670c8e8cf3dc9e9aa1492bcfebc4c6d968658c66b0dea9ae2f0d11c6bd82f36e6911ecfbdb012723288d5d7973de381416f3cd4a58c52a0a072209e10d262bb2403f6484707ac51b7be4b4cecd5b5519d5e11ac89743159e4a794ada62e2ee48740db5d2b6084a0eb746b7e76d459fe7ffca79e7d48e3265d146eca287d28bec4988054c8f061a48486b383c85e9454155e285b1198a7163e1209108be411a9389b84e620b019c6677925733a2b4141b13ed7fca67482febdd11df0da341808c608997deca7985352ab48e6b5772ee7b3d31365091807ed2ad9a4b4d0241a33ddb5d7ca7500840177d3fe59dbed3abecac5f94412ef269c70cb91de380d64f3a3cef3ef3d74f860962144b85e4efd3630a2ea2e6b8b24a50b670b039a2611f9032975a7cdfab5684e16ff68c5ebf9233e9cae9e0a295e6dc481705147d31b9be1420bcd213fbbd1bdb45aaf5e35f6b977790ef82004ca9838036b4ad7658575e951ffb7f1c2cb5696e527544e7657ee2cf73d0a1d4fbc20faed3a7f15e407075bc6581f11778f61de8ded030964e8d38acf3e3ebb960bf1b07e493c42b53dc38a4f504f90c102a03323f12728b08d54f7a4afb62c91ca8dc82bc438fd35d3d5a2743db854176166b7486525055407dc47893fcfbf77bfbacb1e4b06cf36057a78e24e8098dfde4485e143e8ad4af20aee88660bb02bb5e183162871da4e29218508e070293b2f022690f37136a81df56ce0b810cc4742b5074a7d450e179de350cf1cf75a3214f501cf4bb0d8a761a6a8a99adad6534b47211db32c17e6e6e0f0c18841b3b7b9871a321764b4d3f3afb0960953b578f2b5c09ae5738fd04488093cf8cafa02d7258fdc017c664e733698db6459bb73f149b7fd09646214c9cf51c35c438e5645fb918384e306383af6dc5bd9948c0fa529eca45dd98ad7449af6158a636701d86c8dc192abebfab0a145d7d8151d47e5bb2efc85889e9e49bb08e7a7dca951e2a857481253dd66b5f674be0f3dfa9d534f9f5fccaa6a198f1aca97191ef263624cdd724acc17f1248553e0400d381479c31fef36d98bb4087acc9c909e8a8c84d6dffa4781b6398aa42183fa1bdf43480f3bff252cccfabd8ebac4614acddd3767df07af3eefe86c731016882f7f2af191aa9659c6f293071ab4c9ef24c05cb594eec06964a7772c0087027e53b0e7d5e05b4939e1bec2c4712abaec7977c6b0890f5e3b626b814a569bbec67e469961a03c91a2d9765eb7dd74aa9e3b584c21f7196fedaf1ac55c65616f86b57c67a8c2ad2815ad0b08a321221879092a78b1cc2963a16eab9851cd0aed11267ad8f473a4130fb5259d1c330ed10006bd53fb69e6bd88780d428f4b34774e9e8ec3f39eb642dbc7fa1c68952607cceb517607b13e3f70deae788255c93e943af3bf69ac0284e8692348e3fe2b64a1de90b795bce964d0d8ece6c5bf57aafb7e4325abd14aa33566ce421571cbb04953163010b53b9a384a71efbed013dd99858813d52f5f772ee2f314521160ac5f8c56b86232d82d22552aeb8de562fb145997a795753432ab5e6f92f4a6fdcd86625c0410c836582780444f9ca1d02a8e850d208a92c6bc81877c049b941cc655083ad4b0a93c71f2905d6f8695072d132cde9f0f3b94dc35abddc91c4d7d644ed08b9e7a20ff24e931903b7819cbe2f3e0895a7cdec6375fa9655ba3f2208cf286cae9890792ae69247b07d0b869477a03ff3e3e77c842f6c8d272a2d7aea8f86fc3f7bc595be767acf98f62478e738be1806a825276d0f57357debf106ad363f147537fdca1d02a5f504f0084dc64af589b500cc00fe6808f8e5e556b6be9ba44836234f6b7bce91cdf8a26ed843f106db7fdb037ecdfce5afc882a11bde76497d405a76e373bf4263900eafdacfd9af29b1ea2d19ed15bcd6f6f84a67af7192c7dd4657516211592e6ab14d213534806c3cb3cd4afbcdfd8cdba281ac38c54404b8529447e83b3a485bbf1731c5773fdc345389a103e4692481950d553372e73132f630df4e07437b27e2cb517325208dc882659899304002c1fd46a4a957364285c5215d35ad9957e8bfd4347a3fff2a2a8084fb0cacf5c4384b0c45af5b55de1b8b0fafed9778bc5712af32d0ca9f7ebf13f6f649caad793b39c21955d630f3648d8735109c748fc80697c24135af78dd7f7e3e814c224e5c72bd207b2e2c1362f6374c75d1ee98453a5040d5fce073471197c5f601c53c477e776163832a6356d6d18bd7774bbe034d08b602b45e8912ff961f511bfab91910fecd703ed7d6f9371118a75957b1be1482f1b1905b5ea475956ab733cdb43f68d64eabb6d04e6f345bf65c06a9b568d928332f19bafe7b584f0bf9668a27145eb20dd339a85e83a7cee4aeb0652d0199a066d87b3d7f1663f821373bcb75a154971aed231652168b5dc89b74cd6d7235a9e1276bc0bb698ec58450126de3249729bea819771d628c8fe317944a6b9cf957a3b26a724772a4baf189c97e2cc6194a8dc586131b3f27b36ca8f0e1b1a5212285e1d4d1380e376ec57c3e6ffe7bf03e475628f2b0f86b86cb014a88fff552a0323b60e6120c6dd92b3ddd9985f47f49bcced3a05ced36a816ca6a767f2eda38b251497ff6abe2742f84153dcbad2548e70ea658ddc9853d28264b286522329471ed855e15c5087739668cf9f87fcc14e298b4a6da889ccf52f259bdca48afb54235e7184cb410f71ee2994f842ff201337a0abc9dd7ad4f2de489ef4f3623acc681c40685e01f5ae685ec5aa12dc63f378e520427bd03c1f62d8d47ab9a81154af14b1d9e82a641d04f939eaf1dbd0ee4acddc6afc46789f72dff73d86a54cbd11fe034ce9035ec9ba16e2486234e58ec06a8a14f3f637f9936ddddc38f99794cffc83c2b7fba4271386d524cdd71f8c886b2e739302280491fee09d42d04806825546a406a56e616e5387ad3862b139ef18a01b9dd5d931d04267942e2f38c33e55be7b4a9b33c826d54f49279307840286734b392da60f1a25c388115d30c36a48c91fe5fd7f1cf18a4c07a563927f6e5ad525251b86fd3fdf6dadfed8719466eed154667e4942b49b90975738e595efd86b3f9315f20ba18695ea959816976c4cdfe6bc1d4035a36feca8a217871765e0811f1b5abc0f6916f7898653df36bd02d8db0f989d8fa2a10c2fe033b2907da2ade14a3637793af1d512498ea62b076ac9ddaf86f23b93e53a59bf57e91b9afea7cfb618ecc11aef1a25cce72c865c9b1766714d6557d6c578370ae21cc107829c882f27cb09fbf76e3be5a3c30d9f59b30286902b886f62cbd4a9330113d475fc5c0e791857f8ceb1ae6c7d0f0f4e7a055b4e040b9e096383827082a848364ef123d73e9db5437f98fe6ba31b99fbabdc094116cc840924079c894aedd2a36c51d573d77f227ff05089ad235ea39e0e3e48ee17203afb859b71cb0442ba784dd75149fc080f5765d96b3311cd107ce6aec067c80a1a18c703c540c909c5ff1cc4d22355b5cdc19ecbcf05c1881e33aeb8908a0ee2f179fbd9474c65380b1232141bdba82442f2184a2bc9875d9efc8218da677cd39e715e8c98d9a7e9820f819034c07d4189ac2ff55836153e708b73df391687a001ac7a70127c0f47bb98167a8de1d22af615f5e23641e3660907a8b7555cd75caccbe5d876367202df43459160719dc98dbeecf3c2fcbd4d3caaab2d0b891b3a3105a4902b7ddde2acc917b9382cf1b87f3a31e056d020394b6a90edb4d0f31fdfa9503833ab5f4a93dab74f190496fb2cea0d57d93180dd242c2eaafa74cd90e63e1f8ba6d16cde8b7ee994d57bf0d6d1904a5517afd456e67d20573397ff49edc442a6d04a5b71120b077cd4bdc0395038ef93582c6d8c9ddfda10eef4aed566884077d376f84828a38d043cc425c088b18fd6f63846234de514ace8d24e72502a8b12b52ece36d356913679d54b1e2036e4b7d1fc461cb9fcfcc1d89b78c30e15a140797354ff09b58e649f48efd4e1592670b232870b4bd25075dbe22fc57bb32fa0b07afee74e7469fcf8260b8c098cdf4fd9fe689155303ddf9d88bd09c60ac7fad04da2ee54729200ac9608604414ae28151ddbf8596c3bb67538c562cbc7d193045d9c9ed5b1fedacb74fce121730e245a77016d9c7c2596d3ee90e06655baa179c61079f9c09b7b7e323ed646c27dc0feaec13db1a901b844fb80fb7a1f4078a99fce9de7835bfa4babd7b54c39c7030cc96a20eeeb4f8dd7394aa45d1c79b7754769d98f2c692dd770fe5391041c1361804fe27469954f20f493e801010138cef301ef95ee56e3574dbe1f49a87eca67c613f7262c93e6280f0f8d077f3ef7494a0f719d8e5a8272d035ec04d21a8954995bd0bc927b717a03f85180cdd22c467ec6a27f4701bbf8443444b1d815d6c45ef05047b1ce4b07bea2f989084ed00fc197d57de7e90f732d2a44c46e8df343a1271b4ca5393249e50478e317b3a133f3b2b9784873d479484bf548dadcaf70411458a58223ecce3ce07666a240b301d6b1c3061de433284567af311e3728cb8ba581b9f9cf71be7b26c68bfdd0fd623d1a925d54969a1181d45b5b6d935d3da92a9a61036e71a80664a46fe963642dfdbd118ad58efed123f0ecbcd147cc6cae62ae1e3434fb8fd60d84f2bb430f3f6c449a731e149cc8509a5b680ab2ae73efe7d20117305fd0d450bed2ff574e84760b173091b85ca15305993af3f06b2bb03ce68bb4c90d9cda6265ea3361fe3230e00dece03dfa12169c8bb607bd33289cd3a5d603f59785147e76178f858a4552fb211a800a6e33235d3d6e5ba734c15dec7939fb2433b5ce8ada4aa4faccdb3ae1d011b2b188b00701a63e4f1b1728f2395b9baec2c3e053e207fecf70654ecdc1b67a10e560c8ed6404294c1f78e13a352902ed376b76e932a85ef5242eba7345cfb766c4a20cd7e5edadad158bf5dfdddf937b923eefcbeb8a851279d3afc6d12780349054c947207039b7c048e7477b9353aea6127d0c79004d484c7f2cb10853718266303d1356f1625a9542df39ce0beec2b2ee03acc954ed824beb42be3653b7cbc2661f983cfd955c12efd38ae3222a560ef05729398c5f769fa28f530fdca417572235618d6b9690315f6285305acd13b725be0f6bc0310b5f5da508a94d0f8ed18cea9c778b273c8b05b0e6378ae020103f3678e6fb8f976edc4ff761005a9842beab52d132aeca7910254473210fb420c8cebf4a561c6a4e74f93a0d77a739f3595284da5b2f9c5a552dd64b339d77699e312e123d6f31ce6183cb47f7e8c28752dfdea5bd101530139913926108bfe8cbd8cf2523e42804fe62ccf2e61b06b38cba078817b80e043419afa19a9ad127ca534727c6bf7214e2604133bc1f956d9c21236bbe072ed5e200dd74ae204ffdde155f6e9f5969d5a09c05b14c0c7b65f5c0a6238276f2ec6ba9b2d454a43d4b7fdfce26879f8c4d3ab2b95c5888c9f79f42c51d0e277505d80778c928354d931d86a860167f6e7fe6116b687833d7781536e170dc8c4a4bd129a542d20b23c76dfba7fad6e776afc106cbe131fb5590839a8619ed5f4358a1f3ba6eb2f8a0ed3be0f471fc912e927f468e120dfbc4dc4060004a6de63c0df2e2c536b781c2cbd30605741bbd6bebaaee89fff457567252ac781bbd68a23c4c2d39f83626056df7e72cd66b9cb69b0f0a4b5fa5736b408c8b0d97631b9e6e02b03acb500bec7eecf4d93a347b652b2b2b55febbdb77e90f48bd04044d225dff2edf3b1818575959e6f09dc8307f7522fdc0f439580883c73ed15e0a63d9e42160b7ed4a84372df9fcb42902481b7b5574a6e68ff7acc920b72afffcfc1c9dedba0180b68b5f745c56454b33ba8d0b6b8ac1ccda2b7985974f5237566903d874f03c0d8b9cf8106e0b303a4bed8f901ef92ea12fdac4ea83c5fcce665502136f56a4eae20cf28d34320ed5a6e1f70277248bfcd24129d9404d11b6b284d8dd71402220df463c41a7c9f87c4dea68717e2fbf186c06f9e44e496f73cb4a3a64084b959cb572ad18f68df9415976bc20125afed9bcc79d5f20451e17c4fd708ae1e64cf846eafddeb4170485a354d8681b21832efd3218761ce7f7f37c1946fae1cfba46c4547f1650aa128485c403d74253f2227b35985652ccc9a8a84f4631378179452fbdd7cddcdcdaa4fca710abffd196bc676988b4891618157a4302db8ba24a53763fc5bef3faffe2904d4c5caec9084d116ad7d0c9afa53a21f290282c3cb2eb3224a1f41758f5b5b10a8eb5e94845db9f77fd493f4e773947ed260cfd2d78b63a2a9a6ec4d6a21a2ddc6eccbf4efeac6f811c684e9b2d8fd17aa27d402bb2133ff105d77ffcdaa13c890e0ba0efb5d81e5eaf173fafadf9ca10b0e3c9cbabe5f746b2cddcd0e57dea57628fe0807ddaa993d8ded4fa20159e81a05fc32a1eae96f8123131ebb716e5ea37b95846778ebfd3f8309709e3a0fee7a76c3c01b537a8815c87f3de0555ca504a38baeacbc9afd564e11ac81294dcb1cdd97025c7b6c623779ac9b6af82e9d76772e624430f1d1cc73fe54afd460a218cb0797b8c071f376a0e7b5952d9b206082ec939037112ffb283511fd3d28e25fe8092bb4a0cc476b9ce5bed010bb2ba7426d32e52f2aa90f2122bfc6643537a78915435f40c4299965cea9572ef57026920a0bff0b849e801186721680bc3382e99fb3ee0145465ea98d8d567069efa4dc172574762a51f5790331324cc0deb32e504c11f3426dac82fe0a1cadec026293f23a72eac87179b770f9b814516cb15e61e4e15b1c8093459eee38c3873ded5ee64bd65735a850839340ba47ac3823b819ef64ebc14e9e849b73d11a743484aa30cbd517a61f4c41cc10ead043694d722ce28ef3f8f6c02820f0bb6ccff03039231dd7233d4a9d1cff957b02e8475d767ba96030d27d42309aec07de78b589b342345949aeb01179e0e955acf7cf7912cb5b65fc37c174c5dd5569da5375a339646450262b2f4a09e6047729300ab8338dcd25ddc4867e0915cee2726b1d1b5619422c77ec16511621d758d96622ff8ae09db839021e4b714ae971ec133a8b854f86c07a19502e9b36804b0d86743dfc60f58a374a665afea7c42358076b69867fed086894d61acc60c7177724de45ce1b14b2edf357ac6b0a0e3f92b550e59d5908b1ae336b0b569f54f49e8231ee4962fec50778298f0c4825977a6d7c352683523ff7084d90668934651688ac55f1dd0b92d0be135d9d63486c2ab5268d7cb54574195440bb4a3e3f95cd8703e457c618d9a11b8ea83ad73dc2daa984333f37aa4c255953ddde7dd5f1ee9cae7b43f11ceb08b814cb3dbac306146eef2c64abdcc0150703eb2b97c0778d75d0c3aeb4b769b0766378c4ef7709c4f595aa43cba8e264d0c819f51020f9314947291ecc2fdbee8bf6e77c5dccff5f82a8c37de0afacb25b5988b978038f675de97c2d894bf1404715a426816e35f4361467ca3c2f290e12882b21c60ed6ccfb329e0dd209a5ce289bfd758ca1ca23938b2b2205375e293d9f72445f12d9ad98a8275e8166c0cc9eebffe76197b4ce3c2c7cb167606f6a7d56892db5de0f18a6e11f5a5da2fb6df10ff85dc5af1c8beccf15c7f5f7da9ca5abb8a27037d6a35fdad4d016f5404b675abe78137b61de7b7ca6108acf680724d5392113567bd50e2e6450973af6e69800d51cbc3ba91ba1624e498fac82079c07a205a46716f96888775ee828e3adc4243288f96279a1ed51a0b821f563ee9282b1f65ef8b56c99a52db9f2ea07a4f59163d1f5ac4f48632d7284cb04eaa2426dd19aacfab92f3c724edcc604cfd663b23b528ed5f0cbf9051c24ae01d8a737fe014e694f759b34b805d4e20c3ac611c6a2680c015e70435ab2a73aa0b5dbdd0744c0052f4711d6d99ef99b0828350c1597471ef31c8414e3cf3289d7bf38ddfbc1482d113a30fdab19252d8363b013e363af15efa56c10b669181ffe51c1e5c2912dee4e89b6502a2e76f03f6997c0bda6cfb32dc01c3a040f7ce358231551465e70e0d6c60331f00b8c502ef0b67aff777e5debb4888e65692ba1b0046d641a3c4e8cf499ecd1d8a8a78a3b10ffd5cb074546edb50616911a9f394b62be85c8aad572b77c8a0d4bd1239e824485fabdaccfdfb0dca8bbfc1629428bd5752ad4f9fae8d74671db1fae07bc35d7b8cf4983b3c831343c05a4620ff0ab49531d482efcec5c165a1d0bda9f8ed3831e420dd5e36b8d654df5ed9bcc10e0b4b3278512608216dd57a5a3949dba1cabdcfed7e56db8806cc4965102a0d4bfa89ea8178232a368117f216b44dffda1e67a6611f3596a57018097a54bf7cd13f096ac026b87a35b9a61bd332ef4bbe3df387ea06676e14a9b905cbc0345c2aa1c5715eaf93acc6a6add6da872c3db88749093eadf086e497a32ff22cabaedfef616b2ff8a6914b18c8b9a553fb73d0b2aa5e269cb5745b554d2d4aad9bfe34d38bc855e09b74d00d22ce3e0efa292437d7d12eaf82754682e609128a2ed02ad7cf3821c59d0c707efbf5b05429ed205c8827d6a9db20783e4706f71c975a5cc3e379c10193ebf93a36b581ff12e5578891d70b6d49cfaa96d45f2febde78cb32afc155ba80b64d6400fc9f7ea20272ce419a9af29298a5d3bc4a8a99df06e05c05ba064267e4c9ee44051bdd433f047d065d5f30dec0646e50f1027edb06d9fef7d8fc80f62b799f1dd046de930f050788e84d1852b266afbf6edf37ea1c9923b2a4d9045c6cbe22d664d8a6dcde4f455b2a3564fec436a2fb4122d55df0360931f5db943ddda53066a92182ce3b0b7290fd63819dfb685ac90dbb6e6903a6fd676c9e641d242604ec129714982f0c52e5305e548fd0a1a96ca1da49768458e38a06b12274914b0769023bc0c361395a28466338cdb96edc280f68bf22835803b2ab6e502ba5e16b3235e03b4d8e024c11f629d1762219dd9ba17b6a102051b4f1cd4a11358d004a1ca6f0ea695f17689f38f2a335a88ad89f0bce35a8f31a21a17cb26cdb0cae30e2200897c3e627bb94db91fad7fa131cd96fa464e2ea36070955d8360dbfc0fe2b7d6a5488637fb44a94d0390272cfdf1b765f6289b30cf01881f2aa0bbdde378c6472bf34728bf695d29bf819eab3d7b9d0db048fe11c2bc16da392d75b121295d889e1f669ffd8256f5a7d0685686bbfb99282ed5e90e5e45b3bd9486f64f705259a4aef468a67cb047fb6742c7bde1b6466a65c6835174bdef89fbed35d48fe6799d5e0a7f7b3923f546f4ed40b10175a9ceac7c34eb0b2f4230f4eea776acc9fa0777225587cd9ddf24d8bc74f07d0023fa72cd20c694c92ee39998006b4c4b20573e91d472b588e5d2fbfd8a853b6e8f046772ef4b1c26d86869669cef52786c5898303813eb38c06447323dcd49969904420988a58a9f3936c6ac0bd51afa33b5d843838c386652076f47b3d0afba2cd6ea49d52e58ca09debdffbde5d5f69368c53dd8124d3dc70afc6d90424f7e468db0763f2a5eb18fe132fcb4191c201ffb7bb91cb0ed4ba9069ae7437bce56ea068a08600f5464d31c4d9d9530a385610372024de73026e7344f70c20959fbb11ac165ae717b6ce00f135f1a49856b74b5a5eb7ebdc57be4a81894a062617c0af93848968efb568786033d60feeee0ad14601a4ce7601a38171eb8a2e0afb02a471fedb954957499a424f3fdeebae91ac9ef4eabada0d01d35bf8342cab5a8a51b0678e85f1ef80bc579fc8e2ad6aa709fba80b20e0feb8870f80d3f05688449f435bee9f7dca478c1aa8eba8fc7b78cedba16219da805f621946af6e196123b3d014cc6e75dd1eca66bf3392532ee6a3b92f53d55e87fa08437e6e646cfc67e567a91ed473b099f5ece2d6d4b629ab7a0b4289260dc2e3586303f4559620668b3f6e33f7b8fac55444c8b12c08c7c41dde6852dc5b91d57144c354f873a22f3cc329f741aa149d010faaf270642e81a0d4b576c49b4a160294623c5d8b4e91030ca98bfafe603c3a0bd4a724c25f089dd8465790305ff2bcc08fa283f508ca003f0ee7b98ea68b21f7002a9fabd3d5dd521b9895c22fad060ef205321aa6b3f10bae4cdf88f1f7f049dd716cf83cddfadddb93cb8dafb48e9ee4a333bbbd93884505e8090fb1411dc90100882e52f211c5250cfce8e22c08b4510c7a4f6572b402ae736b231070889f6650223951d9eb72936f9bf5e0f1d66ccd45f783e321692b08896b83efd3e6215d6009d589da6e71eb5c57bb6ecab59bc8bca227488827f31c2aad659d82b6a0a0c01f99568ae8a91728685f514756c1a3fbb4bd9529244fcd5a0877609e4add1f44ed47af32f8857215e546460e359dcc4094a50a77fea7063b5eb7f699cdb763d71f4160521f98acb66a1b5caed71842904f32a659b641a7f9462179a700797bc8597cb2478bd9ad2a1f3f373ab834bc0343fec65d5243fd81158bd5d979094828763cbd9c5313fad51b728696d07215286ae5462a3d6aa50ea4779fb2abe5d94c1cf9529bfd3f896072091cd6467ed43096641a38bebf2f730c7a5d317834558d9fc880b301fac2cf419b2f6ab18502d94681306678c8423c470a4a8c1378f266f84a02f5dc920a8677d1f862df93b1c4e4098f8faeb11254f39a3eacb0aa948625e1006874ffaf52e7abd2ce889160beccee3f3e72b14ee3d049b91e96412de6cd2658242d6c1f3bfdf759a28136fae2138ac0c1b195c882eaad1db4991725f120aba7058b765e935f61bae22e929347bcc659ca754e32c67ffb8a41aa4ba0062bcd669fa0295be631d636eaa9f1e621ae1737e873e10f2ee5fa79e46795c60436816cbb5dfc9f982fc7dbb68a09ea484b1c7b330860e01b7cadec576469ecc6c3e91b815298e575efe8d93472c5c3b1db0717c6e7b7f8e4ec3090ef285b5415d152abd3664659c352ad6295de18965af784e6e765d48bc407ababe2e9892b7fdbc2290efc8e542dab57789c85efcea59c5ccc3168fb5c2bc9a7d4b9aa3487a654db6060509f9210b1caeea9454794bdd92e7e24706a94147a56fc2a8b29c2f3f7ba9c1c11b11107a3b25f297d7acc372d1d6246c5581c003e0842ba3248d665d7dc4405e44df34e802291f53d8904d169faea6b490a32f8b28114553d0e410da8b59472e667887297810ad6500ea1011ebf395798cbf2cae5909f8959586a31aff2940a07cf9d2ba3f194f814a5a3f37c194691bb438cd3ea7c0f53f4394f6e3dd01ded2fa713d809de7b6c54f8483661cfc8a87131217c59e64946fb693c261e438edfb49e15369dc4320b7d6f62c66e6bafca6948c93c25c660b278a5f6400b10ed985a19117f002cb4105f179e920388bd5bbb6dba04aa95ddac3034de1ae9257e9359712f9eb3b76a15c5b242ad390c9292121be51462d8e0d37d051a9d4cc345e11a294877f5076d66bb54c2304bea52719bb23f16d7e77c4fbc49ca0645c30c9adc60f7da49d027a35b14fa4d4dd543bf2f002b12bb17cbbb2128340b6043084d1244d8eca5883337b8eb1df908309acf0e8fff99eadd36d06c9673887254c252d99e45aad51ccda30675648404c26707b536a8b9d7c8d93c1c7b88cc9178f7d9c8bd7804b6741c2c292fdba6d2e330c85155cae84550ddb8c2f6175881550ad9452140fb3ef0412d2ae132c7b0793205e49156d9711d4a7817dd8fc5c059849de264a36c83a4f2b45bd7593d0497bc03e7f927200b143179e1b00fa2b0adec8bfaf698215d40c27c329a154009e406e3af2390975caea65a2676fa272c7327c837b6c5f6b30b37c4ee9756821b6aa0153dece2df0e85db5b7b61d29b43ff5c0e7a19e8295a0718f540d63de5749f0108e8a5e2da709da7128fbf4f80d48bd1215aa074fcba5d8825124f802bb51335e6a15e6da4508ab6a71b6b25e7623bd020e5fd241011420ceb5d96d64d9f4cf018b605f76d6d3208f938821249008a3210c96a1d84e169573d0f39e0379193bcb982a52bea33a99634e7f3380c129fe0ebbbb978a578eb07d82e431e245376ba9aba0f7974ca0a0a9f3a60a650569b58325554b64d39b18dec895d3f63a9ffea0291f4a2bc02fa71f6c1ae433264e6a8117e6d729c69d8eee93e5f0475b8dd54ec6504e1a5cd29ea526a7a1c429a470060cc11e785274589aef52355538df04a6af2818774d2d5ba128895319d9a06759da8e16555d248a11e0c687422d0d5816d111c6adaaa17327b885d4e153b76906eba48125c491c3cf243507ae6d808a3b790272cf98af7f0dad466c88456146778fac53cbd4949d7849f0d71070ba7e6714d0d40391746f5fbc0373fafc0785e383e64b6a50aef19f01a8c7acabe4e3b374f8a28511087df2e609d8eeb248cf09ee8c0b42b2a1695e21f780a87bcc21315946a3ece951b7537165cfc11e039d4f93724363d06134c012dba4b88b40ac76f141d1054a383d6e3ce609e29883b70270596c65129d0876f5f27ff352e2fcfb25df33032df9cb3640e8cfa0599872ca2b4fe4e03fcacf12932a2feb4023f2135f64688ac099717b69cd8b06f361d9d676e7a96d8b05ae1a4f610a819fb16f29497a916f500e2763c784ecd59a86a50efc0a0739c92ae591c20d54fefefcbc4e4b8d909c457841cc9cb20c1b4cf48ecbf28dc354e87244c89ad57ce12cf8c4d8f14f9d769eec9fac9ebc06eda1ccd5c34884b068c5bc689bebafb3ddb45266010d4c3906f209cd1271da95680042c8f4c4bcf9632633d74f826a38eaa65c019672d9793f560f60b004733f77a6f2dcb60e2269d549724bb40e1fa17ce28a9060a6e8aa110d553d1278c33e8a2d76c5a0e363ca8a91618bae162b07c3137d458a5b657c386aa35839e1343cbc16dc6cd23cd90f51aecb60c34d46e0f58e5684f51a21a07f0b5855da6c6776f511c32c1b8cb18f73d89951eacf1a7c1fb8049307fe2e4f251706403391be0d28258056420067edece3b68a7c542458a7887e3190b42b62c3ca66311e4f20c2648f5c8bc5a1933382415ddcd65312497416e8fdf07f6ea6d1d93637b4b4a8a3d3cc914fc391d26dd98b46ecb8d16c29f697599b3e9d02d60f27c6692fe96627d133151e4aa97d358ceee064c069f55036359e093f71a00770d0981d44101193f1e7579132115fed5f71d4ef4d37796666bc7c0fce83c1c8a4bbc545585a70ea03bc903be90e30bd0d8fdcae2c3598279c9d94ad6ae301bce2f2e1e62593b565e6ea86bb5bc796e5a211c70aae2fe6bd9809262bbfd8e9572c7aa82991d192376d4563e237a9be309ae01187cab06d8b2c00a5ed54980a41f086b6d871c32a4b13f4ccf0a1b94a7e57ababce43962d66792b681414fa582e41519512f2bb65e1a5221783c05c8e3f422c5e6fc552968ac0176a9372e780275c72bdb717f5687166596e7d1c58eee2629bddef2c4d896b220103bb255de741731ee30da753b8a577bfdd18c2675aac312ac30a6e6ac563a1e5ed5823545a85f6a8cd58ae63431c17cd059b39680ff1f5458b043764a5daa91c219d60da157a057c3ec7532e8aba2da82078fb2414e68bc9de836232c7ab1c0d3ef1c6816b2f9418c825bb19753e4251e6e37d5aeea0375d9e382f827c17b57c97a200b583fd71bea189a13a904be7a5612fac58a493aeb6d4a97a8204cfbec32e6c06fa08013b36027ec66f1f37fbaf908c7d316aaab86fbe70797569d0d57000a6964c01097e637417b5291b562a1f282b9fc79ba54240cec9349a705b6d9f1a175453fa991873dc05b861f7205501b66c8b6cd3e218cce8ac39e5b27d9906c876bce6d14e0a8c2a4c507c86c40346655241cff6458b8c460b3a9555448d86db1494ce13b8ad9a168cd4e6dcd3efe59fd762af786ab420e626a82c840b917da710fc9b21414a984f66dcc41dda00c7341ea7441a1a39ff1b2fcbde58270524dc3870197289f69e265d452bbe4b628e8ecc9b00e81e25a0230b298fbaa84287a5aaac18d2a675ababdc3878a2caccc328bcf06c6f650c6798e0b9023c1a45dee176247524cc018c6a2dd9aeda7471dcac84ba1425ef62110199739ebe83a37735e511ef2e70225df66fbf6cf7ca1cfa2c43ef6fe8738abbf4f3377ae0bc13798cc1dab1470fa9cce91a6b900db7b84f6f35a8917cd533a98fa05a27837a563222ed6000d6dbeb358d0611c59d1cb8da36c7b3880e7b673a2f9684588cd012a20375adda63600b6ec2bd93ac36139ffba88c16868ad41d35592e993c9e2ce659d821ac3cff96a28456146dbc40e1efc301930968bfa2471f1668f5236e8c6a5a26078ef44aa1dc5267c8427460c0e77bed46defe333eb6b7f6848c5f7e8e3e76b9e2c8445b6d0d546192a0e5e75734a55f7ada919915bf0439c6c5ec7f46454440a223e7727d60f0c57ae9f53af6640199efbeb80d92282f1b5faf867fd068a256c0ca686c7abb19261ae1cb95490920b261c62152f08bb02dd57fb5802412f4819378be1b0ed26ba610d91ce1f05fa82e1ee4b42d2f1969dae68be68ab17466f7f0912974f52f2d9a2440914e1d1f6c51777dd79b69b3097b526c6887475c21ee06938f81d67099324fd18c8af1313e041ea30cbd289f1594dc68680e789e7732809a86a027826982803f291363503e3180685b1a7ff162f35c5f2e224fdc2c799b0648597d367a368490123c31307efc1c51c2a9686be30e4337a27b379be3127ea865208e9e5ee2aed6a0ed8b28172a2e4241a9ceb0ca94040bb2a0fb2f0472c66c287e512d87de6882ae6aada1c975b31ec3f685d866b8fca516b52c4599035e14fc8334286e203b4dc5e6c1d2d04c347967199e6020551adf92e1326ff47410cc872eff74d3deca83ea8542aebca09a4db832a6c8d27c5e981483923d1efc01ba482db7d6c80301462b14969856e79ff32d610cc1874595abaa9e33d17704f0c17ddc8a96c55c593e3e4ec4d40623b7c2a6cc32576a2042712cd017b5e7b5bf3676358c1005e290e9c4707d11cd1d37bc194c90c61bb98621dd896ecde3361a83cda1ac402656becd311e262312b3522b8252e65266f45f99c04c33366e79e20aff4f2dd66c3e30feb1f1ab33dde2d3b5bb62eca1c57e0cdffa1aba2c9b40b3b301a0600ad4c2d29aa7c265bf48440fb1772be9e22546b54eccd5fd42df2acd7c613d253cf27387ada2b4bdeb42f51dd1514431fee0835e630af3d0fd3f6a5b72d04b1be7a68bf98669c357b2a6f9ce7b9c2367c1d60b249ae4f804554a37ae96b578c360db91a6da2e682a2d224d7c51ec07f01ab15d97420d7cd8436069db2d0dcfbaaaa8f57f87603f6f35456581ab06b0dc26c8d7504831ae93cea2553da04b5e4b394b8c5e37497b2f9a75ad0b60c42f684bc7cc1b3926eca3a8cb7540ba54c709fda6b7e246a6dc8101352ef0c355ea72751296a7248cec156af86f0ade04f67ac7b44b135cc7c0317aa494cf94d8e6d0155646609c1d244bc68125e79b8ec727b678de22cfda6755360c51b9cf2361abe4436b84604b624a792319bd26c64caaae5f3bf47e549cd09888e19c518c7b80e8bedf19e156f55a2b795abe801fcbb11c53a091be76791f8c81a6978cc6dd37d7897b3244a72ee8badc769a6b3917c79a54d0d334103808142e87b1f96cf5825caa9089f590805c7c87f1b6c8e5f2a11ea3eb81561c4ec608cf97e6b6673784af51cf1cb35573614458cb078e8e6adc16ffab1f2d933157a3f9b1d2086ca30469991c8ecb69c5a61cbd02b56c04aa6cfb4452c8b551172b0fe01a2c8b49e8c491e307e4c2cd1411ef469f30157f4b7e29ed518f7388820698d70b636c39c1e0742ec45daa5940ee2b2be1a88dbcb9f789e1084469f313e9fd1eae9a84be00ac7afd26555aa3f492305b4143038c4d631fd0e0dd92da27d77c4548d97110cbafd71e012f2af053901db805c6241b0860b0b587308e634272155951bc6f7744c1abcf77166223061673c8c063e92b4631e7fac4543a9a54af5de293062d2daeedbc83f7faf2f242d0981a21e1a006f5186d75753ece2c82cac024ac6c27ae0b068a4d84c67456a4775ca48673d9e037d67b7029ae8278307979e82af5b96a14a1e909bcf3fa1892dc4edd28b895a1aa07c2cbaf8edff53aafc96454c4a84bd2c01dca33343c2ad960bc0f617d15e700656752641ab3853ab617a73ac799a99928768cf6adaacd0b947a31e119efd6a4266267a04cc7fc2a0d5f72e256e225df9dde0be36cb50da202c7c88499ad6e73f7ef77fee5ce880591575997bb61be1677cb482922a4fab642f46fcaad98d45feefead8113011741b30970f1a1b904f2eeaa557247d8c427f2fb3f18d2bae81464ae95e0e480f6df667a0c03975539682e852b4f501f42325176bd6613f4ae2e8d721eb5a04ac3f9d543594f1a06ce1d1dff2a3d810b339e118651a14b21f6ba6309e6bfe62542575e68a84dee1b90606ce3d9476ec2712eb834f1b93d6fb57031326c923c41356e79fe5237f1dac194a2bbfe9582529884181ed8f1c562debc1e478f9d1c0ec087c48bbef89bd066516e50bbe38997434bf33a220194c43fd782ca6991b966f4f5f7ed3778d125b0082943dedc5e42633db1df3bcb57188c9ce82a8ec6f49eeaba4388b5867de8edb3b0b451315ba8c51437beade2e374959cf0e1597cbca8d38427e84fa7e694cde0b2f7aad83bda7012eeb999603195b86de485ca2595f55dfad98c1c9533b6967048eba38345031ceb2a1a9aad9e5ec53dbba7330b7f50b0acaaf5b315f0912983fc411f94d9682a556373fed72c6b6fb4954c9005033919bddfb4173fcce9b749235e511779266331d2078fa16d33d7225701e7453a85d6542679f28ac54613d611ff4fdf8ba71a75d94223cbd6c080f4c8614bcdc8e9b1dee90c4a9f0c99416fbdee693d1fe2da37770360fc6ca111e7cb684ce6e9668db41de05a458d6cb3fcbb58c110917f3bd0f94657c4ca2064a09d87c5ea0a5b35009b5c1c2bca71d60ae508163ad948e1fc156c78dc8dc0d55d85a5c49ba5e12908dd2bb5f76eb94430920d14afaef6ab1a3e6d95c3600ca561cd1831a9538ebb135b1f0376d7f50e82d33f44401cada8ec5aefbf78d88334ea00eb9f10d5d0ba3091d5ab3e48a0cd1eb7b680bb69c26332479e988e337cc6b4afdc8f94d1f9f4be04e5de7c9d25fcdce0ce217711786a9e30a6195e2099e4bed6096a69bf9274fc557354d39a311b7a6a886d72181196e1440304c9485507e431a58ef284d6ee00d65c369a6aa6fbb36b6a2374387ab6f26410aeba9a8e2eaa18555b352dbffa91768aa6b0734380e2c0d5c34bd4bd87b339b1b1d0f2b511e83920dcecc4bd45650ab5bcef897cde57e02d464c184a2b75d542f3001461cecf3d1937e6d8eceb704e59c426b54990de6c041ac11720b2a7303e355dd69ab0317092fa77f9e12cca3e00a66de81148d30a3cf47a212b72720bab791a7236e1e1cc1a7f5285541b91b9d1a29e0bbe45aadf674cccc1818dda941a7dab62551dce9f7d56c8bf87eb6aecfd13efcd5bce8cb187996293e935b71d4707ab2298d5c9350ce590704489c1d26049f4f908cfaf84e8fb1fe24b80dbdc01d436973b865fc997f94dcf1d4466fde7601d98b8c06ddca5d3a40e63fbf1b9fc6cbc8ac8c486d4024c6817a7236146b0d6b4103c64ce118c7390c54833e2215863d27f0a5baf7d06ae6cff6fbc382f5b84bf747b0d3f974688cf42dfbf61e88cfdf53e121a57b3e5fbc4da4e78cdbb21c3dca32541d3c0156f8d1dd00cd498184e6b9f486e2c84e7569fe86588454d1f078435379be4f88baaa5466de22f7d35bcf395daed2219dddedf6a21feeb3ddcdc58c6034f8cdae444b1344748dee915e68f7320fdbc7f2d0cdb1c66e4d90d444a2db530b7130fa6442a2759ae10f6d54a8a385c86dcb33368b9949ac117ed275883043a251583b762e6b666ec611ef4e0938484a13686cfd6553e1e953b1eac5f2d67394bea11105989e57807598892a02ece3d3a2f164111849b9d1b4631b0c842df40ee7422c42a7e708f9326681f4cb574ce8bc294c1bc9b59f69c89f9c250b8edcf2887ff601d976e6c1d6300416c2a1dc889eb68223c8abcb55a1d21260afdaed2f59eb51583f331fa5991fa0c3d744c73ad88abc868bf5336680b05baabfcbefa3c1f3a33794d2813e3646a82a9d135c542bea29a0999115781a64caaa5b84648da393fe502635872d3544016c934b0c7e004b14660ee0d63ac8b1f72855a4500ac77d50413ce8948a24933309f16ab81513bca53b2116fe12d7e889b9700ba9e0daf797175a104825feaed767826792c533b95f3b128f2bb4dac69f08cd41f726d708e34a8a522294ccee26c7365f14734aaf6756b2a653bbe62c1ecede9b01efb875874af8084e4ab58a1af99630a146032f4a155d6cd419bce6b0994f7a0576d509bdaa16f79fc72d039b8420f51f2cca9e0c8df4c82595a04eb5f896ccddef76d44b68f9be317c1b7e5031b24d05b1d118450db0d7dbb4bc36e6616362f8cca5099d30cc68b70b6ff1fd7a1b064840c4c7e68fcb01e8dd863cf392f7c88efe51374b64e05788922b2f4ce595bfa0b15a2cc39ceacfb7d008791f64dc2683469204e7a4297a657035777b26b1b304c8d1c4bf4db2bbeb4312ad776b03c369b6f14e3a5d302d139aa4754d692d133a45cce66d1f80bc44a9a494498b2e5c2baa8c9e2aa23367ff18a6b85ec43429ae9c7718956587d24eaef7ced9f878ac0c86460fb08f58b41b4056270c986a6aee805b4c3f267bdeabb0183b4103c0040e63ebfe93269065aea7097e3cd444eb53dedca2e8aeb4b4327ea8f17bde16526baf9d2e1e548d2433f543667b971c362046de09fb404f645ab2fa07de12021654111d9d8a22517aee59102a56f9c7a29d4f921bafc701a6803305cca3702acc8a3adae9ef486ad5676112a9de01465bc54c225c553f50580f035756f5b3cbdcc9879e8df176d7e5cfa27d0a69d14796d730eca5fb159e2f2b9722c586e4726dd18e392899dab011f24247d6ae0ff606cc8028aac5e61bfea3c9266fcf41568ede5411c6551ce53eb33e1a8e90d822334e462ed5ff4a44435361fb2ee1a84ac904dc9a2c059c5c8434a7f2224b90b3090829c8faadce0d0103e7b6e561868aa19e0b4806458d9c442e1582e0910dd261249f0145728bef3b66115fa5989ed6c3938fbb8f51440dc9c5771d2c0f65f90295426ac49b18450e7e636184678e495027a358165287fe0f68b3fd2398ebfbb42db6ca0ef30a24304563cb5469306f238d5a2337219686dc424f7e2414e4420ba46c188b7cb96aaa370b834ac17c87248e0ac92441712a435ae1edd744984d1afb2ae94af804ef355bfb5efd20d8c15000a82256e3ff0a7b6be67fbdfe02d6d1a7ce9c056d55751e9bc3edf5eaec502f6aece71a1fc00a599447e7b3063f15dbed0c860b1db3b65835790799fdb24f50a8718947cb51008a1a6afbd923e2268b61c6bd03990eb449eea46235f73be5e2b913a48e0bbd9f9c504a7019caeca1daaf8afe02b7366c8d884a387cb69d143c622ab55cca0fc9cf06ceb98dd639c1094ecf2a42de0035bfd7fbce10da5c4adb278bf827a559628d89f3a583ec7ea6ddcaebeb818552a1a239ffe2a591918b3353b1b31e1aeedffcdadaffac6ab5eba012fea7dbcac2f15aadd43fb374d91ce023f0ef3c5e5255812409b41c79656b1875316524b9830796df0f8fd29ab7c729f8b70b92914cb65e0afe030da21d93b6400b4abb24594f7a21afbf1b30ea5cb8d786b61935c9b9c72c62b8c786302fb71b430d4278d078f7bc18c8e4069d4da682881cd757d8c7717a2d9967abeaa1fe55e73527a53541c7ff692ae8299bb9cf883b9f499b136d8d1f790fa01ec9cd508bb97759448241769d27a87b7152d7db6d782dee69434b384798804678b4aa53c453b7ef2c4cca669150e3f7444191d387aa74af8a9ff771abd86d11633f0f5dfe9cb8e89e086d79c6f8771277539fb97c3f5496fa9cbbc72ed2bb3f187387fa8bb4820bf9ee6654851d650db78ac2595d7359006faeccdfe501677e57db70fceee6e2b1a83dc70a1bf61e71e149a1ae9767c5b7bd42c216459c3dfef710f2f546a5796fec03507ce27a552dd90b5958c775396445348b45368380fd4d025de708a9eb6586ef680aaeab8c98a6f051f6c3504783653b7100f180ba4d2a57a6bc357817993a91dfb3bd9dc9f93af1cdc29419ac118d4f9da029303d0ea409f82124ea9e309e2ff5c95b76da3444f61031eed73d73d4e57dcc9ae40ab919181c5f054f354eb85e49d3cdc319cd17e31ecb08b95d38fa91be8d29881573076c21218c7a408b21d4ae17e7f029d0867e7391e91490eddec15d55b50f18283edcbd7d999d2bb1608dde46a0a843a394114882c12533fa775e8c33dde92b9779ecd8fc15e1b19c14f80aac35ba6e6fcbfa718c10fe083319985ce29fc7d221c8da8d56775a53fb1f4014d4bb5ff626cdf68ece060012764ebb7e7f68253049314d34f3e0ad9e384890318c09dadb42b4c52038e90e10d1afaceaaa6c710a43cc4ff2235cb8808bf1d7f436f86cc951ec667f76d146a95d5c35babc420691e17de08e2ed1a23c121a8341896ac3e398a80238fbedcf5893dfec378ae8dcb8e1a7f9f2cc83c34d6864673d0a94b53e895756ef8c97713073c40fa6a1925474b88d041a7d530824ddc820355f60a9d0e863262c57704ba7d7bbfa7a1ae69df7aa701cc8d0097327ff4be062964f3e5e7e273af187dd0a4bde71cf99848c52a9dea7d4f8b91b48f551e6e5f65468a429b4304b19ada61851fc7b502fe6097bb97c3da3b1d5c90726f292e912d0de0e0d7ac34ac8923cdcd0e0d0627c3b2973ee129840cff1f352432b2146ac5a086516e8cf65453ec601d2407caa64fb8e4d6f5d3dc9e8f2eec1c55088b0a932e5e8e1706d4aff0de808d0af2ee1890ad582821651c5c0c3cd2b2560c29151d04a6cb868b047e045fcc7329e7f0a11d60544b1309cb28087918ca4d9a42340524fc357d4f9a4140d5f8aa6ae4d6f65c052070269b19857442931ab0cc5f1209da4e75fea660db47f4e110ab8de3ccac239ec4efa81e683bafdbeb68f86df5bf6a0d3f360a44006613e5f1c532eb6e6873bc3d3af3f219f332b8e9df9687b7f82186cc7699da6a7ade59d14badd5c46342ce12ef60b3475f6bf86e46fc1a8de4c05eca6e42246906e03c7bf306dc44fd48a256c79724b507bf194e13c0016bdb82eb9bfc904c6f9f15409a6b3ef1038c1acb1035a7dbf1a395159da400298749b55e623e6efa0ee8369310a52de55d4f9118fc3746a8d3a6a591684881ffa086132de01f7dcf387c152eb433a23775bc1b34438486860560de04461860c83de77aa2be2e32c4e3c659b6060b1bc91e46b11bd41474a466ff0f927cf56dc092d31eac6b6c70ff8e0b6ca23375d378e4d9871d763b69041d11c5227b0439c3e1f1f6858516563d485681a635712cbe667befa2ce7a85726031a04d8aa15a541aaa0865a20e37f78cb1f215f3b6d3707b2107bde32a0a163724d6f9025df0d9f1e0ab1d0c9ed34b4d27315f61109de2ffae6eb0f19b87e07567056d56a073e27a0533a7dd06c06f8d504c0980af38b169758f39a5376e69027537584184135bb37b5e027d936cdbb34e287340c95ae413e85cd5fd2cbf043b03cb7cfdfbd7922e4b32ae8ad67731cab2180e84893c4a5bc2c448ba8edae6c054c76020fee632f579998772e10bf8bfad9d75e7d5c681395f99da40c4024acef5fb5337d018ac2171397a606d6e08d562286b2c874eb82f352e60cb0964b7f276433f7b2b3a85afb915b12496e3e7293c77927c1723e779a33b32f462ac3b1d167b7930324989b46366b38f585bf9594e7c478ce3dadacc58adaa4380a165b5759e5ae28cd09c558f68d27dd423c33ad6bbb976344ae623fac3c52f34b5f9ab290d7291fcde6e30b07ee60ecabb6928f38319d61c1b332dfab134ddf847da035ac50665a6dd1e4fc9ecd042eafcb7f0a2f63d6282c2824e841b00ce6a8826a80d3859e6f0d9fa2ebffec73e6f52c9d36aae315fcf9afec1728604916fe6d24a73bb359f3ed757664f5f5e6026ad7b31218639510937fc72f492759efeab8c371beda3eab23c988fee704f0f109c79170d2e1923cc96377cf4acbff124c0850d15eab8867051e3bf86660ba75c15cf1c954212001cebf2a784d72003b99c8e0798706f2ccd2ccc42b0fd8208f97d1380b2bc0d8146015dc2293a648988d95e31961a30c6891982b20984bcc1b23205143f017cc6390156f4992c5333c5a97bf13aa653df91ab01f9ea76052a49413a6b63230d81dbc0a7348e813ca0657b0277e9eea910561c8712b5dffd8f7fe1dbe798733c975785e3eec6264bd2f62bee3e14c1c0bb918a259abafd4193f06c1c3ea855c48cfb624bd81db32684e910c45dd96e167cb0cec7e24e548f8adc6cffb0a127f8d6bfecbea6099b0da8e2caff7f2d141d16a8dd6b4bb9d95935bbc00b032b77b50a2ef3fb36c0994935c1671cabe118e097cd20006389e344a46e01acc1dbddd28db8da6d8da95fdd1654a2ff3a7306310aef64c59316376be237ba7c7694b001f3cb36b60359cb80887d830a81f6e273762b1b7c8021b303466f458399f0713b4292e1f1ca797e320d789706ea3c74135bed07bbd20efaa0107f6a47419ed99b2aadc0cfa7a0bf1bacaf730625f5fafe14d143cbf21f37f5a4cf03ce37c003264a07670250f7296a2c425ea1d153caaf0cf2f93a57c73e74c6270db5b764993f45833682a720767b52ee4a1fe26beabaa6f9d4dd19820ba496807542a16e2fa527ec61c10493e457d6bc8af75440c2c5e364149b68e3d6929c2143ff7969ef5f41780cf13919d23a1efe8bfe97722ae91bd03a0dfa45f17a47e576ac779b3d8e6ff6899c4bc0451db59bb3322a0f0be05567f4f40fd75886d98a350c303ed3d001bf87b120ade214be99ae9263e35f81bf5db3eeeec43e5c662358e515fb1f33898db74d48ff58ec8911132a47fd6e334efd7c8d73ec2f6e4723ca68e8168ce55942e7b8fcc5ed3db3bc32280b4a1e780f5eb693316aec312e9e1f6ead0420bba127043b4cb5550d5942486a2ff0b118355d49d1d43e15c44d4a7a3f6117a6bbcc5ba0233a121b301d84df1e33a1e1afaf45a7783b8570b09b0d338fc4962e0e561a1d8ed41a40c5b6efa031647fb599f23f461a4a24bc4d75b581983f3e54045722a0c40418c19169c29c3eb58e2d3da4dcbdd38e2e6222da9cab35ece8dc850bbad0f7b8d627599fee8390b76831a96db2ae6d89626a7926c41549e3375bea1a89b2932bd917b2530e64c1aff862c1c005e665133f5d3d881e17c3e129ec1c7016bff1e2b913db951b178d3f184a5a399d772a8c4e3a65ee5b3fafc878c1feb680c4b77e9f9a7db99486333bdccb25f5acad83feff246a8686454c96767afa6b05987c795a926cc24ea151ebde55328173205ff3838b239468939d6449a0a2862e556e59e97d6cb16205e0b0e63651d7b39634f2f2429acb42ae1d2c7fdaff08a9e736f804379a1fe51bf7f95d17f9b06fd9b5b92d2603f57e11ae3e2c44fae82fbb689feba7355d97b1649c9bb1c33df8bca1be3198922a49764c7ab029611ebee0e5eb8cc697a3d202b51ba8cb3b8c377ccfe22fa1a3a734b84536af73f68855e3ac50a5e410cbd5a47e4af24a33153c751521ae02f1ef9f9c54fe0bcf8920036b5faa30c724eb230d60d6922773d2f4b5c828691c0c689b282e0e8072bd668672d77ecdc5fd2baf8c333d2a209b2841e4831430c4681c3c1061e1d469bc1343de93a5c772565a1913d02736a7701def242d03f9add4f2cfee3bc5b39782b67ed644ebd52b7ad50dfe09475b4754ac7eebb06ac373ba569f03b4c53528356e6d1f2d9809c359f707b4eb7f2a0f96f12cd21bbd743569b6748432a8e0c5d0a5acc1ed33c7c7805ae2a43e72ae2eb4904f8dc6834d4887f868f7b5b5e509d3524e8b0353b18c939c3c9702a58a9f375b898c3a0165283682c4996861a99269c89124231487a455a234074945a882d7efc36e425d24b8db5723530cae812ad4391ad142104f50be19f15268f39e612faa52a89df6d491215f0ed583bde0d0fe3fbaa9a80934a3fa796f7627d12ad877568e53cb567b37c859599ad72d0a4ab97433eb0e7e8297d223e0a4511de8a6331a5a57ae680b7d61883393dd80b56f0c8b36809f460c7448c5dbe8545f8dcf3eaedf0bc10de5d4ddf0391262704094b38a493b2942950d3011996f13146c218391c0f1a339273916d56a858652ed35218dd56a4bd7ff9360a35f4d3ece5e77a726ec437fb179d37656dfe5b5f48053126a0623944d4216a921ba926f0eb133bfaca5e0dc1cd523dd9d0dabea9227cf629d983854f45ab488661280b7ec0c33d6a0a21cf895e1f6a4e32438eb681e92d1fcb215f08957f006a864312305e683252d365a5f04a7599c2b7a0720203812b17a606b5275eab6d5faffc5dc117655f4b8f6602bb41fb7f28e50edf703ec81a4d5daa0a51e0ed165c582ce207e7f434fa6112664515f6d02473e05082dbe62b458ac27c6d6bb2e805e4d919bafb03fc4f990c4ca46b7bc65a9a22463f5e35e540faedc65c884ffc08fc95ca6d5f22a80f13eeb110649817f10c809944efb8d048b67641dbc93ee4dc0bb5d7d700bf5e7f68c505f12bdd1f2bab89f2f45c3ac8d7b0fb73115b079615b8e839f1881bd9e22456e33aa4ea9b4d3899e9168feb89856723cc00e8c5ab07dd1a01e9ad53bac043d43e9b897ee9945a002e6118d9805b9a107ac611aad1a915807c58c3deb602098751399be59f9b1ae9d19506545c6e7cc47135d02c5b965f507ae854c80c2198d2e85b5b5d53223510e4ee0ae8b6e690482ed6b780cca52a3e8ff06b4e6d7862f4d61c44e210bf5e398a24a43e14d6d61d42f4eff0f26ba35ca288e37292d6b46cb8cf7b69cee171f1fd35b1fe27798d6b0d11d968b5a3559076d3c21490ecf42c6350b4ea83e709e60ce43bb49fb1952b2ea2ddb8bbe4b46b9a10c10e660bba93f9ff5dd2d5768f37874cbe5ea5fe4d8bc892a353a36a2a04ea33eb2b0ea46fd7ef0fed57ef801796ee60a3c1e78fb812080a2f5f07d3b13a59dc2ffa49e65702c99292b4eb0d6125db08eb6a72093deed4ad5d39f132634c9c17989900bb4fc13630041b7ae26dede60631ca302c59d337cc448d11b67c59622abd6169912263ad54c8f6fd22c80b4b2b979da43c725bad161b992669c841278c2126e87cfa3740c5d09ffba69e5f24107139b94245a769e5c8f639e63065a7209de445ebf54153c8d6b005869a62a9885ae646f1ebc6b8ee7acf23e92a70fced6a25812d230cba059aac191fb49ad25f5ee7d5efc83f34efc724dc6ba1ddec17cfa86ed9b353e1a677fe68f209aedf0122858a8d7ddd32be386fdb3f0515b5b3c7ef3e09a404e2a4bbbc2c0cd3d7a2f72609e6a0a9cf9d40329e69e08aa25f0baed1ad607c19a94810cdae3d0ece3fde6e2596d2e58c041383e2588d84ff694b0eda3f03f51641de4d3d3604776fc86f8397cdb025db4aacc59d559d969c021274c31e7ae8b7054c73692b27d30ce5561c5e472751776a62f3f7c49c8267fc1d0e6ac385c32a8a11cf0d805ab56971b98df0d554536d08a30af038c84f441d261f0d19e1d2be1ccbf244d426b1c9a4817e58393734620a38f328d2097f8bb3ed11a9455e55e0d003311c746e42d704efcff53ba1ac8f588e6b8c426cdcc17f3eee66f305a63de2336fba3df6a2924e063df79a3cbb00d724fa2b9f8a0f89088455d7681bb84d9ce83912c6c670c4f21deefbb8b8f23cdd8a249761ca11a6fa4ebb4b5822795b6f6b72e64dd93e674235e7bb16b91e0745f7aadeac9d3ce1650ea3edf14c43d7844bb2f58eda37ae9a16f7de46624d26fcce78ae19d620bc0afdde25bc0cd2f225c4d784635db4768c8abf69a2a75922fffdf574d93ed5da7c4c20a7f7efbec396116c62888f1c80082bedfbb414433375f1225d7ec1a7b252938d1aff122ecc73cc3bb3827b783b602815ce01fa02eb3d8560c1facf7867a99c88b25b6dfb924d512bac8035ae46b03263a8a3545ea3aa90933cdaad98b3117203bd74d5f0c8d7b2f2e2a05e68fd0dd4cf98875583c11cde73c5a0c6fad2308fd060f997afa22d2a9ec2c6abe23b1f79d5ae21b243edfd308e6e81f367438febd1d44bc4d1c58b68462a7bc000cfc6867004e8a7507050112f6b4dfecff93a0b97aedb21f151c66284d681363ae473502f9d2e4ae064e20545202ecc935e9112ac597102d54df0caa7f1b573961ce2389930579edbed4d79b58e0a5203a9e5b0717048bdea8556a09f2fba8689c58d3afd4822223f302c120764c69faf4ab963bd06a569d42c72c081b6a60b2d19f76d3dcb2ca71c2101c3e42400d737c0da1b9f94aae3dcfcb21dcee9db13c4f953f072222b71a785716516296d473a9476df8873dcd2c02dd56d57102a01a29cc4cf4451deda2f1de5859ad3a12bb3e67c9566cd12a806b2d6c691e338da83c834864e5f9588725a9fda6b14d0ec1765359d52f6051df16af6cb9dcc8c937020550d4cad5eac03293c61875660e13c9426a121fe646addccbecbeaffdb17d7071aa263bf5660c1c0923fb653005c9466518802e3a55369a31fd2f425359c51af8c739a5ec4bef82264ead684de723d331728b5eb3938cbdf96ed9a2de2621bcb1dc4f29d8abc9afc5019e9736b2536076362cdb26198effad19bd9bb45ca3362a4005725efd2a89111473af6025bd8f4033a0a4df9184fe8eb910d957a3e796a54547f80792fd35096eede44b63d96a6e2ff4df13ab612e6bcff0b44d4beba5dfa848accfdab717679f5fe884c8ef10484dc6c19ebe94bac1f7871f942a58f04d11cbbd4177ed2190812fbfb1d233ca7b2817c8c2c2237c267d8ba08b87d14e564fd3ecc042d58a81c306a71ca4a203c3db688f3f55e4cedcd295844dde4d5a648d8e6b8ecae7f4527fcced2eaab6aa3492925cbb324a5560b15d5ede37db6028a9f681fffc7a7700d821eb66638008ec858fdb4ce3067913a25d07904647d7ac86ccb1edd436c333f730bbfbb379d10e58e2e0b2bfde51e992cc42d547fdaaf62c8c79f84da5d43ef9769ed350aef3da8e2014b4a9d569fd4b3936c18142fa24aee75fe2ac7d0b3a1bc7957b55d153c14e998d06f5a69a7fb15941f2e20ed5e06f59fd943bf2a60ee567fb5deaa3bcce254b001df052d8ecd8482e000d35ee936d5cc523ff2277636bf500d67233d6272f91ead5e5fc82aafe86e8107bae78d3e3dc2381b36b47709f6a128be667a6dff7182f23162d23f1b191cfef81aefc8935dd662c24ff3d6397cec5ba78b1a0f480ca51e144bbe4c9a4cc97624ce3fdf8ed93cc174536c6cc1dcf2455d9a395271324cdc844e56fb75fc86e43ab76be830696fbf0ffb5c2135606fb2ac0b186e6f6013828c010ad921f031a98ae05daa2ab17a61d3ab6446059ff9994d8cf683ae83a4e60396052d17dce5ca80a6d1e7cf366e46c8568506db7cc6470ecbb3e829edb9c7a6b6f413705b2ada2c10bc99cf64a16a6c8b6242546d255a2153fccc3231ce359d4825fef2a350d6b80c9c575a2a9c5314534a7e2cc12beeb2f5f50d332643c41c023efc43763387ad6e850e569e2fb580530ee5128407442c3467da4a66b00e617b042beac1231c93fef50adf8127fe47de3ab4da543865d110d48d2ae7a6bd856c124847f45eb2f15a1f9ed044f63e021af70ca09bd9e34a883698914da99c7399220a49ee02b4da1dfeadc1b46528393d4c1ffaedb730c28e671aae4d955f1cf55a3e2e54cec19c40fe3a43975efed9e9b03d1778826d7211a9f61f302fe58002b92726f2227b7e3227fb7f1165475fc41612307b88e2dfc03f7ab8cdff8fff05457400d5c8f1f5fbc5d3f939ce2fb6a8ffc265c8a8ccb801c6e6ff7d6b41489d451fab842e48669d520f856c1a01a7bcde330a7bc91fc3e15f09e9d8964745ce8b6dae6f7aabbb9368e84cdb727e01cb941248ec30fa3312f550ad61194b9ba80ad9db9da0385a1b0762560f5dc8b26ffb872024f18263429a75962d656cae30411caf84481256f166ea12cb3dc87594808474a6af25b22a97460f15ec5a21636ace00d407971800043b644a626835e13d166cd86efc57d9b43fabc0c7ed658d682db88f881838d2e4f63fa6a0c0e29652dd0dcdcabd7a93500746c8d62bc5523416fdf01dbd9ece60ea35ffe5084e28d700e4624cd119db4e06753c44f41a88443be9dc600a5547bd20ca71aca612e8f7da79dab7c3923a9433f0451beb00b4d7900213d34a265b6eab5a02ef27766d378712d60d427a0e89729a2c7e057b49a5e7667d553412b2f673707a83fe0f1a99ddb4885d71eb940a19d89cffb962b9244e97c8f05f7fb5a7310248500b9440e324f6bedeeea8adb1392e5e4a71d2c1c8abc703062e525d5d6258589acfbb01a964be67f90f3582bd0ecfde8c7d9ced58e403a77adf1d057f1ced456988eed3ae9fb010f73e1621441ec6c81fef2994f0befe89d1b08afed430de12e22e3942fa672312fdcbffdd86b682b24df9c6fde13d32b9878eb50ed04f895ca9003b21b010bf24373767d8961c89ae5bce1c396a4711e84908317139ddb0bc66f5095e4bb234dd5ae5d20765a1433b33b7274974ef348a7c28a81f7b00cc5523edbf0af21c02b0bc4a67b26ad78d2a92b0f45662c823091b4599764ff6b0569325df5c10f3025a739877351b2d43ca5dad25a2ce073fefe88e7e19194df8ee6f3dce5d4fa0386d11ec91ecb99341fee7f99655204ae372961f078943ef3e1dc18058fd19ac467c02da61b496a174d06ae8e481ffef2f81650d3c1c1c81f65a6d3b404f7f41215829453f007d301af240e6a8bf42412807d6c69b2dbeda48f3b996a8a6e27da6a1ff9628640b3acf949db9a18e1495f9d145df75a86acbafba330561656640638278817b4b7a4a1b08c2cbdd6d7fe2bea0a2fc059b0621ebbc9907e465df640250e04f379d5a4e91ade0ca38cedaeee8dbfdeaadd39b2401f7c017d40e7427e099cd983fe6e3ed147fee4a53c0294e3eb03557969389443963125709febcc56f4a3b63af648e3f974932d7e84f335accbba87d9fb668af35fe77027f1abff690641d687c9c512b0330b1afba8592f9f157211da65436faf753284a855f37df194b5d5d73d3e3746bba69d88ebdaf5069f8ceffc9c4e880fd1981222ebed05ebb68492616734fe3ed582c5dfd899b9ee9580c9e7a0f9cdd6b98a06bd51cdd0bf7ec7d06d54fed3ceb1a933d0d2bd9aba6408a4f4510c43522ab4d48df023fd1b307320e9465ba061ddabe4e7082037bc582261d987eda79d90b1ff3bf088a58f904dcf49b09e40f432fe9b4ff7b29f66ac69dabc1a7b5fb4575685fe132a2fcff633b9441133910105d97687bf22e8ce2dd0ce0ff527c7dc1f193000446457e9c1f9ac031773d50f3c72492c6f09e43a92ae9fc4035d98b4dd203970fc5de2d0fcb3069b5b22dbd2d2af5f4d1eb809031a3bae6d841c81a65a9395f75fdc8515b3bfab586deb15f5e308032dca66823c7b580c26adf96305a2f7235f8d87669197db52ede69b67f4c3aba0a31066710d55c8bd6ce925838a06de9792b34a020818388cec60a6b96f5743573cc363c0e739afd275417f3f0cba88abd66921bf2b46820613d950170aaf02a5379cf0103b7a81fb2eedb5c9030e32ec196cd36405f4ff818b31ad1ea57e43b5150a3c498c030d73f2478a53db21a271b2daff69e629fa279a571625a483b8bee9b403d5be57c3e59cb5a9cac3acee3b3791735aaa491e041e223932e1f968b2a31b8282820f8faaee6017fbd3ef5fa2f505d9c0bf952e9b014b73e8f66813be75ee15e1404fdd9fa9c0031f7df58a2aeefcc242ea0856f9fadd4d28197e5d83f0710184189c726b43027474b84e786453ef1df9d2840a93681b56388b7edb902fe80a7194176c289fc545b3d7be089fdd36b14952a5b9fa711bd69cc4591b0dfe23dcd3fdf1dbf346e2822c42ed8ec6284744736702552e1b1a2a7e5a61c1e3fe1bc6a756d2721c28dfc6b72c2fef3e369c700a5664078a29ef5e4c50f6ed6fd7e850d35c459f9a41a22ff3c5f02217d57486c74ff39259881654b177c95493c6db816f644ac158f60e2fbe053e4f9f9d18421bd5ac0dd54affe793d38aff8b3c9c5a456bb51c8076db5303906378a244066490933aa69ab4a0e101fe758a2145053258959644a51548628ad782708fd8106381ef2638f4cccb3955d2a382df8b35a00fbd65390a2850e1bdba5eea4d3d4307423d19578c7926091f84990fc6df0fee435031d775747acaeb7dd9d9698f3d37e9f554e44e1ad9c3e823ea01d7a2456cf78fb6cf93ecfd1abf5b02829499c357576178041c0d855737878a2a10b2ede1fab1ba2fe6cf5b539e89391775db79cc5b9859d64ba889933d318c131f91f99470e555fc9bc5d39dcfd4c2589d34774fd29803126c1158a1906b1b2630fe8d434722afc1154bf2d64b80f97a00e2660459e5364df53a8ede8a7c34aa9c20fcd88ed8b52f25ba83dce4609694ff765022fdd12c623a4925c3affbda86611e85a70828ab49aec41c99f9399b3b95abccd8efbc540fa1b87c8ce896d213737561982c8e83f91b24df2b869f458a5b330d15c844278f65ee0c9d4d65be550fa19fb8de292f47bc522047e3013cbb326e9a7813b16314a6f47ede09e821b3287e0f5fde447f536d1c78bef970325495e840825a94e2757d6c500d544547da98862ce292f35161a0f2ffea88ece5339d2321b6a3a417ac53f7419da05ff288598934e35e803283e00d23f88671552aa95d1119ed61113dcb5a0cf9b5b894ddba1c0a3711be04723c5e34ecf760daf877989614babfc86131e7d9dd5622fcfac52f6e867ad5dbb4e08f1834ce8d5cd6bf5eeabaea5d9bb9409698899bd2e62fec7252933cecf8b1a309fdcf5611840d285f5bae32770a9c8741edb39d5218c5365316d2bfda643720fdf0e347856962181bdedcad0009f36bc302cea047e898d2fe6e11460c09e27b104a4391309e31419c83e7d919cc6300ad61f0f7da73056df7c87f478f8caaab5d09a715720af63783bf390371500a649d73df3abf6279aa66d7d31f866ecfc2bb65d9786f670a3d732a85bce828e9ba0cd6948320c349f9a481732c1479ae4c6fe94177163348a23f6468a1c56185d3f188b200d96a73521fe649d460e96e340bc3e94e2dbabba7d14af08acea40a9e8f1675b5f1c12a84229995014420d7d168ba591ec9dcb07d1e54fdb57c25e8396f71518622d6e57ef9e9dc70feba2f2a594af2abd1ea2491c83d2ce6d7a00db5ef934348825c68235c42488c3c667d5b8141c8799ea50c8095cd166905eabee8e8a70a74cc318f8d7669bca813f7b4fb3a07cb4706c6db9a1f4347de8bc87ee870ca4058b5363e3e2eef076b80aa6d476f907095d68050d0200e4719504167c34762b3982f98cb5b0ebefe4abd5e931ef4f1c32779912021b72beae8488f141a4ec439e348d4b46316e3c24f127dffe083ce8c2b6d7b01efd53a7146f0ba99d032fd2e7bcc487d28529bafd459fa65b4a13338c5f3277c8eb5a33fdd65210f1910e0c82d8bc4c1be51754254020ae363c75a7b29170362ab9f39afbed77a0c71bd87b555df389010e2dedd6b28fab953a2d617950fc3bdda8bd7474f4ad71447539c2c4faed038f8dfa5b5bef123704bca8b53b0ab0b4750ca1cc3998c7119652ecd101b9e3b59dbc4245a583c5fd3e6a8456909fa58d8a11b4f863f412f14e3c73557205460c4a09e8298ad82cc0eefb6b140266eacc8c63371dc08e3ca28027b3e77861aa4565ecf97b8731e71b967b535dab6140f0879c314cdaf1f019513928a33a5c5b25f95436a657faef8f74e520cf5135043cc94515b8bc34ee68182df7d7d5d11d78670e1d0026d22f83b8c24ab095b70399404257c788f01fbbc6393260e632c06872b280fe8e7ee2bf0624ef024d580e7460f678082919c3bb90e6a43a0d5025d0727d85c9ebcf9aa284deaba84ddc6487792d34af9234609514f92b0d6e2a59e3ce2aba1ecdf745f53dc932a959ab4c4fc4306828169cfe4ebfb367862f3ea4955847893a12fa93a1a280ff162fc2e559a040005d5701c225cd8e0a7c9341792525331a3aa8488ef04504de1a62b206922485a630e72d19435b98cf0490cdc89d8ba85525503c52c7af9330258de08b70444fab81e773ceeb521a232d2fd545acd42ef5da9bb178944ca7c76a70f4848647f42e84a1711cc722b67a93728946b991541db395d87957c23773d1d4b9488ba090434ef56c0566ea89fa64b29064287b82c4fe72dc67bb8d669225ba9a590888b62b6203a72fe0b6f7d98830a981b8822de2deccefca047d4a3322fa13a4e3d094c978e2008f74444cb0520508517abcca0bc092a09df6bb0da2364647a67744bcf6b747bdb0b9ba132315964af12c7cc43e31d44aa80f50bcff390123b7388064432ac0429ca1d16d839c8918f16d4c897f03340064aaac9a1241a4bd00c53321a2043a0eda0f237641a0f3a38b459a5f9bfbc6e4909ad97c59b582514c60fc756ce8fe91a424ccfbdbc3926832f848cefe7c0767e670c1c5cd527615095453309434491796588f47e3af13633019da0074b711a2771aa30d7a8d043089d5da85cf116eedc8cfc020330fdf5d28c9ff5a84dc6ed6ff3f30eb3ff373e5f3b6a7f4c67b7b75cd86109347cb809f2844356ec7cdc6071bf43840e71f7b3d9ad36a7115424d10e55513afe7f2a460f9bf73ec170c8f5a09ef8f90cadcea17c33a4d6fcfa27a7eb9ba496c408c61b544ef02fe7251eec3b13f0f19c256561695a948b210de7ff3e1df598d9ee822032db5e4ff3e42be169b7c367b894789a3cd2b2b73323aa3f6582ca8f2ba8e07118a48898b5b1f9a051a935ffcccc285e7567ca2454399598762f6ac4f137ddd434e01223aadfaf2ae53cfc8669f794bdd625392847e941990edb1691d6d37e3c9f2e2855597424c019d8d8df1a345c709927e22d1f937b3346dd0495668f591f332c9f4242cbe94bed88138c2ac1df826c3159e2f5c07a2f681835625bddc48b5b734639265b379490a1dfd2dd7a6bf9dee55ff4a58b435fe49cfd17e531366d4219e091d3186dd383de143fb183fa7d70321a9a95c62faf8ea8eaa04fd2441850d779af48eb2586f15a1d1a542f40d651c3d6ca1942cc2ddaaa98d2551ba21b62472b6a521f8afa0bab54b50bc941cd7dd0bb4d843c826116fa5b9f2f939b7883dd2db8d0a33ee48a944e23a319ece48c64455619af03b25d0eb287d2b04edac5d6d3313f25cf6651a74685dba8d180799c0454d39706bbcb5779c1f263509229153772da46c7fdc72bae8e2d56cfd27a9119d2c18997a16d4a4524af0708a16294569bb9b76e910cd3a0cab1f30064a68e9d77b962fa8b590e0f9a15a5d283881778100ed1ba77eb9af7964bae6fdf230ecba0e4f271f01cd102f8651d97ba0f24b2b7150d0e70af8a448bdaa14bd9c652231d032c3e415aa0a5008cce48b2d79f52619bab69c2662e46a5156f564683012b5386cfa1ecea4b0c3f255cecce005b515466ff540db39bdddcef2a043b8002c64167fab85eb4adfe6fc2c36845967b1a557e83688d3cbe048dac0c1e70dc8a6d79ce6f977dee25535580e2512bb7362fedb82fc60b8b45a586bb48b183e84661e7f9776f37e9e5c281046ff3d889ed5c0475bfb8125eee871d398a3a6eb5494f50f10944cf1d986ec88da2f215ee5f6ea0cd0098683d65acba56c621146d81469a554cbca504af36396fa59d51143163e73bfbdd269c55817c76c57a6832f688ffb8278a8c48d90631e5593bb8a7e5f1140afb9db7296ace9479f09127ac4b6989ae8a54f79fbdda0072aac1fdc413fa77292803d8bf0a46886053471115be14dd869661a6d1ff38b79bb11b01f134e4912d6cf9b031920d21345b85020a3f757bf54a416dca6e69075ab1a5a266fa3264782d6394fc7780a44b9771d1bc2dfe6f9af816eb014310656946eb1ee112c23caa0e9d8d1ba73378c792e415c641ff60ed916fe8aed8b06cb043b1e2bbcd4ccec61aea493072394384d2cf9935c58fd8ce28b7577db82ce1a6e51ae5e93dbf4a81b43af7c0abf0222adfc9727fe53d4883cb828e40f19ce66a751f740af31628fbc526603a688323920829fc14edf6f3d2a664b9428786f437a3af846cd274a5b5164fb3b8496a8c827323f668dfe6cf04d6ea1695c58d016dc7753fc445dc98f3b761ed88e7bf93cb9c228c172f4c89a17ef7490c979d78c36cc6cde184bc7646dea610ee6c883da335e176737fcfdd63b802fb0cbfd0659c2d1fa39872a06f9e056722db58825df643e731c9f164ffb1dbc888643f68cb51301b0f86168a8f48167a0c817057543051024595fa18564d2f6776f7184aaa30a212bd9f451bdb3bd3a570eb695be881d107699c2f97984b7bd13390a213d338260598fefd88dde4611bc533b906bce9bd88fe2edaebb9396329aa15153aa0e393c3245185d09d824ae769b8e1b996c5611a4f0f40093e78912bfae5a6561914cc0429cf3319a0b34544fac8e8513f3bc75675f4326468cd6d5c3d52574c21e09d94423aab6dd91a2a5f61391da771abbcc2e64c549bbce3f5054f72b4518752ef73e3c381b55e1f2b2222c32fb307289151f47d278d6ad3fe71af434c9db347a70e75c9fbd5c8c55702a2d54465aa1434c12343d15e671e46028860c4e5b601899aa64e6ac6e681174f97928be0056dc7d3b17a9454471c1ce18206dff3db11318d2db125ca93d0b362c1fe009e78ae09d2ab53cee830f143ed5c58d9870c1b08651faf1642c4912061e61e1bdeba49d979be1ce8578df8f944c491bb190ce88e2d7f893101c26ce2132c9dc14e0af2b06eb87e80f4daa17d14fb780983dc520a49697fb944d7c3b94d7e0196344bf9ee6687ebb4c2fda1f01259fd8562e314069828081ae1050bf7634305e7a215c9b06b07ed9c18d2ee8a27a971adbac92726594f2f633b8f3d7621de0b749e82e1bcffc69ed10b83c44629226ad44d83dbc68ce40441cc7faee97b8baa7809c80994310d3d21ade783af1aa84046d72a1461a2486390855d2eeda8d366c4a50da532f96ad1e7f75c79ff768e2ca2c559d74bd765baacf93adc8be7d0966c935b2a606077865456e59e7d9b9ca701cc5745779d498ba72f184556e0a03a6d3881dc65e5d7ac5420f4454d3c4a36476bf950ad4af086ce8235aec059ca8422d3b77ec29e3aa160db84d947767de7f8bc7eddc8b963e3187cee32be4ef809ece9d7086b559da88bbc7f0bb66edde6fb17c04443d4c5180e5d341549dd1a0e29bc8f8588b9400a7144a0f859fba79a265fa32d563f03295e0099d97dbdce65dc452603bb0f4b5b3e5baa163835a9e056ab3dc627ea25282ff949884dc28e39288f4be9cb51df8f8180b4555b0de84de5aa7822fdac58f5f6296c583d1a8722cb5428112795d935b563d8297416d2abb8c333c96b9201da33202b5ac62b85001eff62203343dde13c23a3d7f8addcc29b446d24bd2f61cc9423debde3f2d457cd220d4246bfb2248afeabdeab18eef55f89c6e400a55368878b6a1403f4acb502ca4001f8734ddfa9a8333decd417134755463b1a230701777e09a039e08bf88be61f3010790eb5c2cdc13504d034879b04ab60d00d678ec73bc655283858408d91d12849dddc8cb051436175946711857bacfdde5137e15b1fdfb2ccb2ef1d716e699d575782640fcbea2908c39cc705732b9c18a4c2306cf373e67370f96c6bd1bdae10b2e83037c5c443abe9336ff0d205ab760385fc91d55eb92c6624ca121d64abcc2226d3ef5fb01e838a9a8c24406cd55e4d27f22ba529ebb4d792076cd64635aba7ecd8ddfa08d96783a7a5e50a2e3b2fd02391e71f9c492e36dbcbf2f870aadd542d3a645a93d942761d0b8d57227264498ba3c143ac22fd4164709f62887be30c4178f2d6140f4f076b9e8df3d38e25cc6b18dc83f59cf4ca817cadfef0e34004c5ab3bf767934a147997a12aa206222b604ae0bfd84c72493cd2bcc5170a7c326e2041fba56f38e3d377f53c054e2fec50131af0ef51b8a4c29e8c675190875959713e50f5f540538035157a73b61df37b34ee04b937957cd114bd5a0c2ea2c3cbc5fb815edfdfd20490f847a661a0e1d935151ef09b77bfac7b81d734d4c0f1bfd5efd8b05033ce09693505aa96e65d5ed7d75595f4b7f7ce4db95835db8a5b16b7f672d93a07559b03eee3f33e7a563bd8be1f3de290d5cfddefb399111e646f8223f82abb6c23c801eeca647c4df1a51954382e4497432175a5d504b8b7ae21e6a147effb2d2c954317d25571348e3c690331de6af6d849798a50e06d3631082cbcf32b4830d47d052b10b018d51b56aa2efdcf6ca1a2d189c9c17e81f252fcb66d7f07f07106fec9759b3888f0f1089ba9a477f0c342a94839dddd167dac86de12bcb2d9c2a92b1b93de2e4a7bec7f360d8ec774a965abf1e715c97208deb9f2c9b72e73ecf9cf894aacbb6f179b3d72402670e09a2cf67a317b51ac6b4ef484cfb7ebc900d4c38dd796f23b562710be88437c9b49e7652517c0e7adf2d8c126bbb2674b2d42101fcd159813c1a624a5826fb853c221c84d75625a3695ff069194238494ac36528f167bd81cb5ede0ec9e26dc3301e561b5e6823c8e427105e669030448ab950e44d9077b1da88d224db9d95c79f7bba90728ac43bd4224e8fdcea2c56e51ecfeb344bb5627c84ef34acfaa9c6d772c8a3fd30d6faf83d77de8376d01a3db3c8df690b741b29221d11265a16a1874fde38c28379eee6c23499a1d8d94e4f060dd3344dafd2a36c391ffdabd4154bea20a83741cd50df364fba1663b9a1a7a75bf65334b5c8ee7ca315f87a19cd690693a670038bff660510b653c388dd2e201077b0a621bbe0753735997f278ca480fc0141bc3f7ffcafcdd492391452d97e26add3f4d23c09eb786bd91fe0aed3c9b6fd031e9ead1efb6ff9caef7970b27351662668bafcc43931b3f87151e44c27c935b6f2b95c963c787941765357ddbe6f72b721add4b41519cc4d3bc8c2d699d44240c32c45daa9f26b14acf491e6b1515eeced8b2f744aae0afffa000941677d132107764044078479255f6d21f044e9ebcc2ff42f62d4fe096b378ea8ed551747eb321f961051451fe35bc45a8db5507b0e1a14e39f20498485d179a625cfe35448d8c7010bbaf8239c72e59d969fee1e28cbb85c948a1bf345aba986b4e7886a8bc8eda76977f1538d15a1d7f23d74d66d0828d609a6cd05e51f6a8ceb7127832d1d8873ad7309ed38db906ee7f0fb95732f6e07f9817993544d367e591804eac5ec96e27d055f2dc3bc2f97f9c3b74f124e3fd818bfd944e3cd2227ea664192adb249b5526013cb4736c5f55fa5ebc27edd2d3c41650d31cc93c17d7df94b627f36b0270455da117f59a4908effe866dbf3228d7613ca7c57130ff5bb530381afa834820b64b7582523a3af2c34be5fce5d81b437237f800481d8abac8cb7d10ff3665ac37b2e813577733ccdec7b315ae833655c3a0863bc4dec75e6dc58d225ad9a4e76e2cf221f6a16246fb09a38d5cbdf9833d4f5cf7ca87c79c3bce1210bb94d69903b6893e0e4102a3c5fdc19de4ec0d0d0bdf64d39e16f95cce97561cd4efaa961a904fbb60d18788057be27f71a34187512bf05cf94ab48f07a44a9e703969a5fa349007b4a36cdf4879b3b3069e4b766b911104a6194f250c0a2949abde43e2950d08bf1a2802ef464491266eeb171a91ab3199be7f862b486aaa0f9a4ef168ecff254f6db8371e3d1d340d91422198dd651d0a4dc5ba54f6fea15d2d588f56530b534961c0165a0181b9879fa5e06f900d8fe911c3183ad6068a96de7bd0f9a122fa06c65462e5d74712f63027a58bd409c6f5601d9d71e01a204adde33aa5db6cb8aad40f9a5420651d50cbc8f027281e9345f8830fe90835ff34285a9f37dea3f5a3425d7b577b7ed2ccb4ecae424f201bd4acb46ada7fb7021e2c7461a8342abe658fffc2c8e996df2ea2b1d3cd67410bcdaab5b2c18c0397234d868e5cba71452503987d0049f3c4eafdfe3c950384e28856e7f33b6b64ad64878237e5a610aa620913bf9c92e713766b79349efbc611f6377586d41e62cdf31ad4fbfb201f75e6c0621ad559a01c534b03817d1842b16cbf87cb8267410f2256510cbbfa0092f46413993bdd44534efc9412d0f62bee6fb57ec01249fc2b2e1f127baadfe158e0dceebcb2e5d3065f52ea6342ec95f1861c3610be628345e3d9197416ca9fa3ccd02e238a518a219cc53cb55d9d2e2cdc4c4bad88d8cda840594421504e313bd7bf1cf4620659c9dd4476dbec0f66da9f50176572634f806b8df781bb7c94bd56483385c756f63a6a1cde96d944d65ec053a5d9019d38b727a47e1174dde2a6b0ad38c251bd2c2fef9ab0bec0b69a9c46079cabf643002f327c839349f5b4b7560cff5023224d3f3cac7fdfd023a87165d60742d5a721c9d73727fbb92b24ddeb98f823108c706586cef44a3e00eda7198bd9df17d992d36fa5009b1e9a5398fbd70747d1dd04baf71856b2ed53749fb9a6099356dd6ac522f982fdabbce98775d57aafac6199587c99f5b72abf592305eed1e1e3fe91af8abc0aa9cbce18d7b37302165056fcc76821d47686b9d6f23e29d09b4b75baec9ffe55a67e6653812cfa81be92e8ada22c081bf0b0af1876904767a518af08078c5f$3fe4ef25ca5034797a45f8f69aa8f11848e24d0b6df0c8ce1938f151f432fa60860fdd7c23515fa05cdfbb1ad3da37d979f3d0f619d4725ea3c141915e49f429050b28ef8ecae19a656f198a787c4c25ac0e891d9c2e4941f3352229dbc0cd834786a7af7e8798b8053af17d043fd3bc0e986bad4ed48d3244e4de5b3ffb3b3198808212505fd1698a4a5be229c67ebb92e3e28df046f140772204cbe9bbf4f9c511c9cda80d303884559be0d348ef1e70a28ee5845e524c13bae3fc317ebc6c62b3e0c2738885b51850264a7a5e4d3a4141acd6050977af26ac5a57db5d837d5a798a8d06ef5282c729589b3c60e6c062758e6920f64ef77e3305e49e625c5e224e905447903bb197e212e49ba5069bae90639d4c418c24f27e7fb4ed4b060f2183801bd94eacec96b31858c21d481fcfa1a5970361d2f2ef73aa6ea566d44a83a42cfdb1014da9695c381902ba7dac73343b2b5dd6d852b93b6043b020105c99ba6a7852bb74288b7d90532ee11924662fc14a8996336fb4754f5ec3c0d77632ebcf43a14cda2a6c24899e850647e1372ab083f71e0e5086334fa700b99503a10f5ad47e5717ad6492863400170e017b0726fa0f9f1ac298121be057e98b520daa7b3629164d99ff69ad0f5db736c4e435d0e66a8c1991d7d45457aecb7fb6ece5900720dfdafa9bb16420517d91ea74685997da6baad439cc058f6ac098f2"; + +u32 module_attack_exec (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ATTACK_EXEC; } +u32 module_dgst_pos0 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_POS0; } +u32 module_dgst_pos1 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_POS1; } +u32 module_dgst_pos2 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_POS2; } +u32 module_dgst_pos3 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_POS3; } +u32 module_dgst_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_SIZE; } +u32 module_hash_category (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return HASH_CATEGORY; } +const char *module_hash_name (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return HASH_NAME; } +u64 module_kern_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return KERN_TYPE; } +u32 module_opti_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return OPTI_TYPE; } +u64 module_opts_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return OPTS_TYPE; } +u32 module_salt_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return SALT_TYPE; } +const char *module_st_hash (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_HASH; } +const char *module_st_pass (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_PASS; } + +#define LUKS_STRIPES 4000 +#define LUKS_SALT_LEN 32 +#define LUKS_CT_LEN 512 +#define LUKS_AF_MIN_LEN ((HC_LUKS_KEY_SIZE_128 / 8) * LUKS_STRIPES) +#define LUKS_AF_MAX_LEN ((HC_LUKS_KEY_SIZE_512 / 8) * LUKS_STRIPES) + +typedef enum hc_luks_hash_type +{ + HC_LUKS_HASH_TYPE_SHA1 = 1, + HC_LUKS_HASH_TYPE_SHA256 = 2, + HC_LUKS_HASH_TYPE_SHA512 = 3, + HC_LUKS_HASH_TYPE_RIPEMD160 = 4, + HC_LUKS_HASH_TYPE_WHIRLPOOL = 5, + +} hc_luks_hash_type_t; + +typedef enum hc_luks_key_size +{ + HC_LUKS_KEY_SIZE_128 = 128, + HC_LUKS_KEY_SIZE_256 = 256, + HC_LUKS_KEY_SIZE_512 = 512, + +} hc_luks_key_size_t; + +typedef enum hc_luks_cipher_type +{ + HC_LUKS_CIPHER_TYPE_AES = 1, + HC_LUKS_CIPHER_TYPE_SERPENT = 2, + HC_LUKS_CIPHER_TYPE_TWOFISH = 3, + +} hc_luks_cipher_type_t; + +typedef enum hc_luks_cipher_mode +{ + HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256 = 1, + HC_LUKS_CIPHER_MODE_CBC_PLAIN = 2, + HC_LUKS_CIPHER_MODE_CBC_PLAIN64 = 3, + HC_LUKS_CIPHER_MODE_XTS_PLAIN = 4, + HC_LUKS_CIPHER_MODE_XTS_PLAIN64 = 5, + +} hc_luks_cipher_mode_t; + +typedef struct luks +{ + int hash_type; // hc_luks_hash_type_t + int key_size; // hc_luks_key_size_t + int cipher_type; // hc_luks_cipher_type_t + int cipher_mode; // hc_luks_cipher_mode_t + + u32 ct_buf[LUKS_CT_LEN / 4]; + + u32 af_buf[LUKS_AF_MAX_LEN / 4]; + u32 af_len; + +} luks_t; + +typedef struct luks_tmp +{ + u32 ipad32[8]; + u64 ipad64[8]; + + u32 opad32[8]; + u64 opad64[8]; + + u32 dgst32[32]; + u64 dgst64[16]; + + u32 out32[32]; + u64 out64[16]; + +} luks_tmp_t; + +static const char *SIGNATURE_LUKS = "$luks$1$sha1$twofish$"; + +u64 module_esalt_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) +{ + const u64 esalt_size = (const u64) sizeof (luks_t); + + return esalt_size; +} + +u64 module_tmp_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) +{ + const u64 tmp_size = (const u64) sizeof (luks_tmp_t); + + return tmp_size; +} + +u32 module_pw_max (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) +{ + // this overrides the reductions of PW_MAX in case optimized kernel is selected + // IOW, even in optimized kernel mode it support length 256 + + const u32 pw_max = PW_MAX; + + return pw_max; +} + +int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED void *digest_buf, MAYBE_UNUSED salt_t *salt, MAYBE_UNUSED void *esalt_buf, MAYBE_UNUSED void *hook_salt_buf, MAYBE_UNUSED hashinfo_t *hash_info, const char *line_buf, MAYBE_UNUSED const int line_len) +{ + luks_t *luks = (luks_t *) esalt_buf; + + hc_token_t token; + + token.token_cnt = 7; + + token.signatures_cnt = 1; + token.signatures_buf[0] = SIGNATURE_LUKS; + + // signature with hash and cipher type + token.len[0] = 21; + token.attr[0] = TOKEN_ATTR_FIXED_LENGTH + | TOKEN_ATTR_VERIFY_SIGNATURE; + + // cipher mode + token.sep[1] = '$'; + token.len_min[1] = 9; + token.len_max[1] = 16; + token.attr[1] = TOKEN_ATTR_VERIFY_LENGTH; + + // key size + token.sep[2] = '$'; + token.len_min[2] = 3; + token.len_max[2] = 3; + token.attr[2] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_DIGIT; + + // iter + token.sep[3] = '$'; + token.len_min[3] = 1; + token.len_max[3] = 10; + token.attr[3] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_DIGIT; + + // salt + token.sep[4] = '$'; + token.len_min[4] = LUKS_SALT_LEN * 2; + token.len_max[4] = LUKS_SALT_LEN * 2; + token.attr[4] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_HEX; + + // af + token.sep[5] = '$'; + token.len_min[5] = LUKS_AF_MIN_LEN * 2; + token.len_max[5] = LUKS_AF_MAX_LEN * 2; + token.attr[5] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_HEX; + + // ct + token.sep[6] = '$'; + token.len_min[6] = LUKS_CT_LEN * 2; + token.len_max[6] = LUKS_CT_LEN * 2; + token.attr[6] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_HEX; + + const int rc_tokenizer = input_tokenizer ((const u8 *) line_buf, line_len, &token); + + if (rc_tokenizer != PARSER_OK) return (rc_tokenizer); + + // hash type + + luks->hash_type = HC_LUKS_HASH_TYPE_SHA1; + + // cipher type + + luks->cipher_type = HC_LUKS_CIPHER_TYPE_TWOFISH; + + // cipher mode + + const u8 *cipher_mode_pos = token.buf[1]; + + if (strncmp ((const char *) cipher_mode_pos, "cbc-essiv:sha256", 16) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256; + } + else if (strncmp ((const char *) cipher_mode_pos, "cbc-plain", 9) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_CBC_PLAIN; + } + else if (strncmp ((const char *) cipher_mode_pos, "cbc-plain64", 11) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_CBC_PLAIN64; + } + else if (strncmp ((const char *) cipher_mode_pos, "xts-plain", 9) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_XTS_PLAIN; + } + else if (strncmp ((const char *) cipher_mode_pos, "xts-plain64", 11) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_XTS_PLAIN64; + } + else + { + return (PARSER_LUKS_CIPHER_MODE); + } + + // key size + + const u8 *key_size_pos = token.buf[2]; + + const u32 key_size = hc_strtoul ((const char *) key_size_pos, NULL, 10); + + if (key_size == 128) + { + luks->key_size = HC_LUKS_KEY_SIZE_128; + } + else if (key_size == 256) + { + luks->key_size = HC_LUKS_KEY_SIZE_256; + } + else if (key_size == 512) + { + luks->key_size = HC_LUKS_KEY_SIZE_512; + } + else + { + return (PARSER_LUKS_KEY_SIZE); + } + + // salt + + const u8 *salt_pos = token.buf[4]; + + for (u32 i = 0, j = 0; i < LUKS_SALT_LEN / 4; i += 1, j += 8) + { + salt->salt_buf[i] = hex_to_u32 (salt_pos + j); + } + + salt->salt_len = LUKS_SALT_LEN; + + // iter + + const u8 *iter_pos = token.buf[3]; + + const u32 iter = hc_strtoul ((const char *) iter_pos, NULL, 10); + + salt->salt_iter = iter - 1; + + // af + + u32 af_len = token.len[5] / 2; + + if (af_len != (key_size / 8) * LUKS_STRIPES) return (PARSER_LUKS_FILE_SIZE); + + const u8 *af_pos = token.buf[5]; + + for (u32 i = 0, j = 0; i < af_len / 4; i += 1, j += 8) + { + luks->af_buf[i] = hex_to_u32 (af_pos + j); + } + + luks->af_len = af_len; + + // ct + + u32 ct_len = token.len[6] / 2; + + if (ct_len != LUKS_CT_LEN) return (PARSER_LUKS_FILE_SIZE); + + const u8 *ct_pos = token.buf[6]; + + for (u32 i = 0, j = 0; i < ct_len / 4; i += 1, j += 8) + { + luks->ct_buf[i] = hex_to_u32 (ct_pos + j); + } + + return (PARSER_OK); +} + +int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const void *digest_buf, MAYBE_UNUSED const salt_t *salt, MAYBE_UNUSED const void *esalt_buf, MAYBE_UNUSED const void *hook_salt_buf, MAYBE_UNUSED const hashinfo_t *hash_info, char *line_buf, MAYBE_UNUSED const int line_size) +{ + luks_t *luks = (luks_t *) esalt_buf; + + // cipher mode + + char *cipher_mode; + + switch (luks->cipher_mode) + { + case HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256: cipher_mode = "cbc-essiv:sha256"; break; + case HC_LUKS_CIPHER_MODE_CBC_PLAIN: cipher_mode = "cbc-plain"; break; + case HC_LUKS_CIPHER_MODE_CBC_PLAIN64: cipher_mode = "cbc-plain64"; break; + case HC_LUKS_CIPHER_MODE_XTS_PLAIN: cipher_mode = "xts-plain"; break; + case HC_LUKS_CIPHER_MODE_XTS_PLAIN64: cipher_mode = "xts-plain64"; break; + } + + // key size + + u32 key_size; + + switch (luks->key_size) + { + case HC_LUKS_KEY_SIZE_128: key_size = 128; break; + case HC_LUKS_KEY_SIZE_256: key_size = 256; break; + case HC_LUKS_KEY_SIZE_512: key_size = 512; break; + } + + // iterations + + u32 iterations = salt->salt_iter + 1; + + // salt + + #define LUKS_SALT_HEX_LEN (LUKS_SALT_LEN * 2 + 1) + + char salt_buf[LUKS_SALT_HEX_LEN] = { 0 }; + + for (u32 i = 0, j = 0; i < LUKS_SALT_LEN / 4; i += 1, j += 8) + { + snprintf (salt_buf + j, LUKS_SALT_HEX_LEN - j, "%08x", byte_swap_32 (salt->salt_buf[i])); + } + + // af + + #define LUKS_AF_HEX_LEN (LUKS_AF_MAX_LEN * 2 + 1) + + char af_buf[LUKS_AF_HEX_LEN] = { 0 }; + + for (u32 i = 0, j = 0; i < luks->af_len / 4; i += 1, j += 8) + { + snprintf (af_buf + j, LUKS_AF_HEX_LEN - j, "%08x", byte_swap_32 (luks->af_buf[i])); + } + + // ct + + #define LUKS_CT_HEX_LEN (LUKS_CT_LEN * 2 + 1) + + char ct_buf[LUKS_CT_HEX_LEN] = { 0 }; + + for (u32 i = 0, j = 0; i < LUKS_CT_LEN / 4; i += 1, j += 8) + { + snprintf (ct_buf + j, LUKS_CT_HEX_LEN - j, "%08x", byte_swap_32 (luks->ct_buf[i])); + } + + // output + + int line_len = snprintf (line_buf, line_size, "%s%s$%u$%u$%s$%s$%s", + SIGNATURE_LUKS, + cipher_mode, + key_size, + iterations, + salt_buf, + af_buf, + ct_buf); + + return line_len; +} + +void module_init (module_ctx_t *module_ctx) +{ + module_ctx->module_context_size = MODULE_CONTEXT_SIZE_CURRENT; + module_ctx->module_interface_version = MODULE_INTERFACE_VERSION_CURRENT; + + module_ctx->module_attack_exec = module_attack_exec; + module_ctx->module_benchmark_esalt = MODULE_DEFAULT; + module_ctx->module_benchmark_hook_salt = MODULE_DEFAULT; + module_ctx->module_benchmark_mask = MODULE_DEFAULT; + module_ctx->module_benchmark_salt = MODULE_DEFAULT; + module_ctx->module_build_plain_postprocess = MODULE_DEFAULT; + module_ctx->module_deep_comp_kernel = MODULE_DEFAULT; + module_ctx->module_deprecated_notice = MODULE_DEFAULT; + module_ctx->module_dgst_pos0 = module_dgst_pos0; + module_ctx->module_dgst_pos1 = module_dgst_pos1; + module_ctx->module_dgst_pos2 = module_dgst_pos2; + module_ctx->module_dgst_pos3 = module_dgst_pos3; + module_ctx->module_dgst_size = module_dgst_size; + module_ctx->module_dictstat_disable = MODULE_DEFAULT; + module_ctx->module_esalt_size = module_esalt_size; + module_ctx->module_extra_buffer_size = MODULE_DEFAULT; + module_ctx->module_extra_tmp_size = MODULE_DEFAULT; + module_ctx->module_extra_tuningdb_block = MODULE_DEFAULT; + module_ctx->module_forced_outfile_format = MODULE_DEFAULT; + module_ctx->module_hash_binary_count = MODULE_DEFAULT; + module_ctx->module_hash_binary_parse = MODULE_DEFAULT; + module_ctx->module_hash_binary_save = MODULE_DEFAULT; + module_ctx->module_hash_decode_postprocess = MODULE_DEFAULT; + module_ctx->module_hash_decode_potfile = MODULE_DEFAULT; + module_ctx->module_hash_decode_zero_hash = MODULE_DEFAULT; + module_ctx->module_hash_decode = module_hash_decode; + module_ctx->module_hash_encode_status = MODULE_DEFAULT; + module_ctx->module_hash_encode_potfile = MODULE_DEFAULT; + module_ctx->module_hash_encode = module_hash_encode; + module_ctx->module_hash_init_selftest = MODULE_DEFAULT; + module_ctx->module_hash_mode = MODULE_DEFAULT; + module_ctx->module_hash_category = module_hash_category; + module_ctx->module_hash_name = module_hash_name; + module_ctx->module_hashes_count_min = MODULE_DEFAULT; + module_ctx->module_hashes_count_max = MODULE_DEFAULT; + module_ctx->module_hlfmt_disable = MODULE_DEFAULT; + module_ctx->module_hook_extra_param_size = MODULE_DEFAULT; + module_ctx->module_hook_extra_param_init = MODULE_DEFAULT; + module_ctx->module_hook_extra_param_term = MODULE_DEFAULT; + module_ctx->module_hook12 = MODULE_DEFAULT; + module_ctx->module_hook23 = MODULE_DEFAULT; + module_ctx->module_hook_salt_size = MODULE_DEFAULT; + module_ctx->module_hook_size = MODULE_DEFAULT; + module_ctx->module_jit_build_options = MODULE_DEFAULT; + module_ctx->module_jit_cache_disable = MODULE_DEFAULT; + module_ctx->module_kernel_accel_max = MODULE_DEFAULT; + module_ctx->module_kernel_accel_min = MODULE_DEFAULT; + module_ctx->module_kernel_loops_max = MODULE_DEFAULT; + module_ctx->module_kernel_loops_min = MODULE_DEFAULT; + module_ctx->module_kernel_threads_max = MODULE_DEFAULT; + module_ctx->module_kernel_threads_min = MODULE_DEFAULT; + module_ctx->module_kern_type = module_kern_type; + module_ctx->module_kern_type_dynamic = MODULE_DEFAULT; + module_ctx->module_opti_type = module_opti_type; + module_ctx->module_opts_type = module_opts_type; + module_ctx->module_outfile_check_disable = MODULE_DEFAULT; + module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT; + module_ctx->module_potfile_custom_check = MODULE_DEFAULT; + module_ctx->module_potfile_disable = MODULE_DEFAULT; + module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT; + module_ctx->module_pwdump_column = MODULE_DEFAULT; + module_ctx->module_pw_max = module_pw_max; + module_ctx->module_pw_min = MODULE_DEFAULT; + module_ctx->module_salt_max = MODULE_DEFAULT; + module_ctx->module_salt_min = MODULE_DEFAULT; + module_ctx->module_salt_type = module_salt_type; + module_ctx->module_separator = MODULE_DEFAULT; + module_ctx->module_st_hash = module_st_hash; + module_ctx->module_st_pass = module_st_pass; + module_ctx->module_tmp_size = module_tmp_size; + module_ctx->module_unstable_warning = MODULE_DEFAULT; + module_ctx->module_warmup_disable = MODULE_DEFAULT; +} diff --git a/src/modules/module_29521.c b/src/modules/module_29521.c new file mode 100644 index 000000000..7c6dc377f --- /dev/null +++ b/src/modules/module_29521.c @@ -0,0 +1,471 @@ +/** + * Author......: See docs/credits.txt + * License.....: MIT + */ + +#include "common.h" +#include "types.h" +#include "modules.h" +#include "bitops.h" +#include "convert.h" +#include "shared.h" +#include "memory.h" + +static const u32 ATTACK_EXEC = ATTACK_EXEC_OUTSIDE_KERNEL; +static const u32 DGST_POS0 = 0; +static const u32 DGST_POS1 = 1; +static const u32 DGST_POS2 = 2; +static const u32 DGST_POS3 = 3; +static const u32 DGST_SIZE = DGST_SIZE_4_16; +static const u32 HASH_CATEGORY = HASH_CATEGORY_FDE; +static const char *HASH_NAME = "LUKS v1 SHA-256 + AES"; +static const u64 KERN_TYPE = 14621; +static const u32 OPTI_TYPE = OPTI_TYPE_ZERO_BYTE + | OPTI_TYPE_SLOW_HASH_SIMD_LOOP; +static const u64 OPTS_TYPE = OPTS_TYPE_STOCK_MODULE + | OPTS_TYPE_PT_GENERATE_LE; +static const u32 SALT_TYPE = SALT_TYPE_EMBEDDED; +static const char *ST_PASS = "hashcat"; +static const char *ST_HASH = "$luks$1$sha256$aes$cbc-plain64$128$92180$10f2691b0afce5da52a9fa18b03d288cc4e3e17cca1efcf85d578fd8b4ec65fa$23880a1dc82ee61fe91b2b9f47e68fcb0dd5023bcfef3424a04da9aef3eda38b42460da742b444f1d71319eabd3360ec0215ad980fb947aa6ce5e0ce86dafc213c7858bb2596fb08fda4365cb387303751f97ecba0555089ea47d0463828dec4beabd0a884b8d7279607804dd9d0f27d1bf1e2b2201375e20f56785cfd541c2663a846c462ba7b1ae70c26dbd4ff2ffd4a245fedfdab036f5d0bcc87f35891a28dc7db33ccc9135d0151d6b17829ae4cc784a850b89edeed11ace8943e519d9f98329e5c80274e63fe06068e14149abc5958b838f55501e84ad9e3466f6e832ce4b37e636f9abbf44cf5baebbe6be01d6ff909b0f65726ec7d405faa11f1fd4ac85580bac6edb3c21aa17b48350c571ae430561c0778798469a8f988c1da3ab82ae80f81bb0825f9657d00a09bda267c925b9b6a1e1e66132c8bcd70871306a472ffc3a302a4f8d5c7c75cfcf1bde2f8cef2eb0f2b123be446284093ebbb1e4b394641ddfa29a54a9fe37e44554243d11a43aed7cda41700446fc8556e707241b227a0f700ae0a8a8fe290b9f9a321908b79bb280fe779057d7683a90929f166c5992eb17774e5f9c584852b498b64719c93dbc5cb4800ee7e25b8a0c0393fce45b75ba8e9de65851fac14eccd5a23254977275aaa6327f44e6be44752e2a090adc097c4d53d27e4f5bb220e9afde95aa409d28a5bf3f1b3da8e22713ee7338073cffa3e5d624eb89829d6fcd3edb2461190ba971fa282c032333c340ae577781d8049b1307d773d5d4d63427431533e9e861bde9bc8bc0e918d9791d76c73ed95313711ebc10b1aea2d3f98c98763da205510ff93bafb4460cce621bb55dd48fb19d5b8af098abc37e97243ef3b131e27333f8d487e8908ed4ba5b39f17805588239c68b352e705382452ba97c4a433a400bd46eb72a46392c300364941bc31d8318843250ca06d449f57141cddefbd0989d3ab901fd7d2443bae197ef84ee257b5b3e6f36d787d873998bbdc33eb9fd1f5c3675c66ab52e46fdf2124f7a11280fdefbb5d263d001bb7797352ad229538a5fc32f533bfb52c198af9f7748594d1e90f191c8c6c0e1c43af3d647fc4d5fa00d211fa94d7a37cee978110d1a506e29cafdfdfc1701449bdae026ad23ea9cbce3beaace13f1139d56e9aed356f9595f1b3b9e7733a478e72acc2aedc46b9cb6a67dd62a296b10fe83d574c159d5c09694e35f95f51aee6880523b7d040ff6a7e6b2e11af5a640aa0c0b0415761a9b7c66b26a47cdf6475687f1bef286de9f45125a16e03a344dc4a85c382560d457a3a0d83302aa4759356c1b17de3676486a5eea0018b54245c68dcae64fc9f43940b4c6d19f825e6f9878e71d12633a3674b95be24a5b558c9a6abd09200619865bef4f008343ee1ddbe6e33e54aa6078680f23c19545d8bf8f083f5cf2b726eb53e2226ed3fd8b5f7557e583e5e8d047020645846cee7bc6aae7195fbc4fc2dbfcd9a0ecf7fca46b3dbe6eb46f92bc88736846e18e1f5ab46890664a0df6956c93bac28dd9b77e0460628b83e002ea183b6426069e8ef6d63152abd0d13fd648b6bacdb154e860d19c1af43355847f68a1e2e3d3ceafe4dd501866709bff3914459480f9bd380634f33730c5692f73759d31a68d150b9230b7eb117b6acd53448b5c951886653cb86e82690e00b0c6961121f28ea95ca567d5ab587913a8e2fc07eef6fa2a2160bd3c9189b84b6a5acd7650c11b702eec065f35d22cc495d3a048f3530eeaab30db06a5c2eed8393e8311cd842066ee9f9378d2d50ba9d26eaf14667e025cadd57b416c8b532dc6b8ff6c5ae35e38ad1d4d322b07d61721d4f0eaf281004705cb857b26d24561c1431ce6b081369dbd0ce02bdc614a2dc4fbad78e0212498f84227642633d369ce4510532b9c1f479940ede2556e9ed2b8e6bd976b6003e1362ad17afae2e3853a87a2106787604c54d05de38a6938adb1457ecb59daaadd61433635d392a02b11c91bd8d2e3f4f08ba84a1607df1e955650be179226006367f1c6b5502436bf26c0a2abcecfe3bbe4f9c24f16b4a5dfd1181eeeeb357f72b1ee59589aac0de06a7a158886bfb041b3ae083532a6f1ec7933ff409ffa07539156db9d0e2f015e2a0c3918cbc60394ca2cf6d107dcbea8a0484acbe4b3aa2df5fe0bef39faeb084b207b673d0284db9dd31169ecbda8a852271a22273e024f87a3c17a6d3e42d2b20707073311513ce6c0498eef6a554ee0588f02dd5751ce76ff31bb9d934143c48ebfe5cc90873e12a23831492fdcb1385388ddf2ecd026f06c70f2d0df5e32f572328737319de69a7b392bb578241a23dbbfbc3aeb4de026d9656dfba70d4fb9e97ceae41ead69537aaa2dd4281ba00737c31c804a47c6bd400373b47ec3198732d704beefec8954e38bc234d2e995e84fe5f3c1328444a34accac9739e2d7b7d19e099968adc804d793751dbb0c2f8e41ad859c78ca7f40af5b8bb218dc0148098f51f8af9e33d2497b03347dfbf81bf35f03323bea175eb8bb0a7931237ec6d6411594b1d7ee76b875b563465f260ed8f5bc47a0821e1e0932195b7afd6fa4aa7e2be74249326f836fbe194f56314a2dd734ee0a867cd983c0420ceadd9f3d7f846764c34a588705485d603ccd4590007aa29395c97dc08dc5e65cb66780a864e5fb42dd9a0375581ffc14e7411aac17e96a7d77eb42c210b6e4397e6f23cf75e1f5fdc932444f21b132b92c2e4a0a6edfcf9917fc3c625ad4146ac6171877426c1efc572e4ea9e9b4003a02b9c0e5298544175bb6566b1dd5b59c2da7a7395b7f9aee3464848401a1a61db7e8f98940fdc57c461d6b7487bf64791dbcdcf8143c3e568bd6b013e9e97b8e71516c37811506a18fa1534c2684887f9300e8519c396aee89df854878d15d6ca4c8ab952eb88aa02315d33bb480cac436de6cc709f1bc808fb921d5505003d576f65840a7051818780e46c2e9a6ba5405a33e29e30616b5a5ac922e83d90d0b632d63fc509d72dd2b283fec487ea75fc458921080e418b0e1027853bb882c9cfc4a91967c3236b3cdb59aaad18d315f3f95b6a793f6d713397d329e65fd57ff9280ef293b8c1ca0f4bcfa266346d89d2c2b43a3e4d137e3beba47c738c997cd72bcd8a978049ef9c7a31f40ab68449cdc947006feaa97432b90181a5de110c1df5f370c9bd52d59b2c6ebd7aaba50e366f206a355c9a6574ce532917a9291458602cc38d91af7e6d124f80c8338148c9e8bd4c9e42f2eae8925940bd10309ab881866fe547e4a8239ccc5369f062f026156f0822c41f542fe531ba1f3973eca58fbe75daf657880787d41d40962b9440437a82b30ea14ae2bae6df5673f0858668436ff1bf2fee16e35003b2dc31e0b7ce9a042afacc36e2bfb7bff3c9acef70d45926a806fdc964911ee2c07dc58a95f26a93d8889ebaad57170b0bce2b1f038a69f521daa51fb99deaf2109b16af43f40febbabd020712862ebe9845f2f94766de2efb758dd0d1bd51953128481d0cb3b459442b41178d11cb2fdcf6a9a8b0d755145278363c08555995a7d4116344f08717111851dcd98ad6c247d0dbf000c1d8989d676d8329a83db97cc1a156bd712128dc8463489656938afa2494990969f5426851fca87aab78934ec35ba148f3d4075f97100080f23427800537d7e067491b8036a70f7e145871656824436f732337525cee5706a46af00803d146ec3fd74913dca5117611b6779390bbd91fe18302b445db4cb7a3d2eee7bd56151c9aa309c6c5c77f2a4373777db502ef5becdea153434a2c4dfce4fa3a3c86a2f62d5422b492796ba774a39d4fa2572dbbf3345764e9e41c684f664fb3f11ac1794e9dc5a6f69b2f092063a5715d1090fec515fcbbe545b0ab525228de17c93c40440dfe57426830160f73cc996596f873d7ba171723fbce1ab27e665a5a789a7214ecbeeb2a0ab5e5de7a291ff1389780e7955e886d96911e4998aba65c1db10add29d85eb08ee9735975c9d0fe0772e424d42ac4b7ca0546c55bd2194afb61c70866d59c0ea03315b403c3ee437f76a058dd18e1959d24da035e8aaa556fb61f21049559e93b78ff0b40388fa84cff5aa5b1366f545bcf785a45505b6fd1750eb41f8d1e1a642f54a8b9a666df709892b15d9ebac141c4fd274ff6b8800509e82e11f777f38450befeb7adf201e7d16d71f41049f9baf2496b383a6278862567c0b8499d9f06aa070198ae365419381a832416f1bcfb79aaed4b1ba5aead42c6e9342d8999e7d144e6ee0a7d0bc84cb45d17f7cee9b63d2cda94f5fc5b7b30778a9bb8304fa3a78e9c84ab7f2d844a5a02620916c35ecf608ef18ec658483077f7937ceb54b31806a2d5662c4d2bf79a24991e14973dfb03ce9b6a893241ee4a191050ab982f66c94d7ebd6c357b7d794c01613fd0323f1e5afce885e1f04183977d6ea1d7a9beeabdb0a86cb9a7854b239d2b28322498baa87dbac0b11f9b48529b276a6ca3371f177594111dfdccec2f1907c9edf6f17efbb53a23c77da574a78b96fbfd03d5d8eed380a3dca8707aefea44ad6c9b205221c51d06dc1ce9d0cde751b7bd97776dcd7e2224f646c85b0e8a02f35759aeede7a5aba538db792da8c6ddf17a3f331755fe2d2ede63ff4f14fc40a80ce0644ec838287461301d50a226eac8d1cb4f1bfa408e39f19f2d56697e228b67afe10324098f98b0c48c75a994933808d0152e4df8f3dbe45f11b0ec1213e17d2e3c0b4f09ecb29a1f8e079486bbf575df5572929d3d5fea376e93bcc144fe399d6a1ed613171d884121142d8eca7c11703e79eec2c81ece2979ab413be7e152303e7ab6952e261956c0f0561b48bfa5a1d6d75cab035cf77abb7bb38921dbe5f48f446a1289b3b52e069d9516e5f821b3dbdba65fa8b9aa3c385bef988ca8891479e8579b7c174e549bfd2a50ef0e7bc30c9203c64b075a46f28fb6eaa25d08fe9a5583eeeedd7dd86d1116e8280fb224065359af655997628cc5ad6ec115de9a7e32038c257b4f486230162138b458dd2dd92af678dc2881dd7afe3333e6e4ebdd381f942eafdbbd8d3edcb27c5632e909d2f9b7d7013c6c91bc1b5bc5be8685b4d140e200cea0f2a9482bca3759cdbc48382c678dad335af652ab692c2a2f4a53759874a56099a20aed381f4dd5eab3aa301104fbb751d83ac7ef7b9a7683e8fabc45575a598d5201b5198c9f87f239233d127ebd5dc25d335167ab5179866a3b36e6926db69382939a8a8ea894f078712abfaf2c9528b315af6c308443fc087278ad35242ed098ffe3b83a31aebc37d83f61cf112d8117c8f067af8330019f779b58e59760cd04d81914785eaf6fe90e2c9ed0b4bc11201b6a9c87aa8961b1eb30f455eba8beed60acea43b66ea8e0874c89f59636ed209324e578ccd9a566d8874283a4f7a1886fac4ebff9753ed0a2f4e2932b8d36e8021b1f3e58e374deae2f8ce5afd82eefc47fa98c49adf1ede043f2d79486c58570872db641863fb5406ba48fe731736709ef9befd586cac7a2e9fa06f9e7809246fa0956771732fd7bd41a26eaa606ea6959b7e6473868be03a8a4458d2e4b10b86e36091f10bb5085bc799a17c3e0503a29aea358fa7794bc7cdff04d5e99b4b5933f9d8b2968fddebe8f9d2a4c39e7be05d7e2419fbcdcd1a2eaaa5ccc9a27e700295f1100826eff2014b548d48103116a0b2fea868ae2fdaff7a63314f4753aa0ac009f6ce5f8e64d5ea320068ab6bc1b6301260b6ddc534af9fbdc56fb2969cde67d0a43d07bb55dcb1583c0f0930b2ab7372d6deee2d37eb45b20c8d12605c0d9b92582792448348c6a276c1d18489fa8dd748c324743f440218c1589cee6ff74f38bf55f12927b4271c4b52eb9d5af767c5e6056062c70c2a8cc7fd474dd818ffb88413905716b06499f5eaf8147181aed1b1afbe473cf89c04c5f0ef528900af6343f980099fc6f9f219deefabb158a5c305d31f6af3a82d7ce014292ccab1b37b4620efa0c283846e34a01cbcd9cf685930533378417feb57c8a362d1873a9d629b0f677bfa985645f6e2b426bd3d167a99bec92e111eab46e7e96d5454ff360c8e857b9a62d2c230b66659e6896afec2438742f4af4e2280364fc70e638ba7a98257963add2f737b566ae8d673586440dc36e80b9d304152fdc21ffc80a919d39b0e46b84f88d7025cda77781ad65f24b4b22f81d344e660f7b29b2201bdbd4ab936130a8f3c6b9d20a888d8bfcee8f614fa345fd101720f7417394c7872d59662e3fd668f94f3e603893eaf7d500302abb7d6ed4898400099c23963811d9b409c9dceac84e113e7c563cbdb42db76d3ec77de0e019098530a7e780b2b1d4c900852397b26bdbd2514fc9093bc46407d468ad1ea07c19d3c3e34d4c33e1d80a192b03ed5fd9d5cf0b40d49762e86965a68b66137b555c49ce85e23e4372a417ae983e85f057600ea41d4efe5a2fe7aba56a7b3ebdf01e2126f5931ed058dd317a720ad7f6fadb50bab1076b2cfe66cc4838c6c12bea042cd5d2a5f1b545e8e487cb82bc429b406f5771b99990955b64a97c45f240762ccb0cd002d5e643d7e170da14c5a9710b69b565bfed03820084b18cb22c8febc0bca39c9c32d7ee55bebdf8c2a04447091a030908fe772c5895029728a8125c86da7b0eff2284a22bf27f295f7f76d0712ceb7031cc0f6664b22672385e12685c250f476e7d9fc89b3b60ebd93a83c179603c0bcdc5ce4b758154de4abf119c4868de5128651ec38d4b6f38c5741d07f6a7f68c969a9d5611bd6815e638b004511d4da83c53fe2f017dc6a071561d6d4ed5a58e0233ae385c2aea2b5ef0ecfc45cc68669c689136289d1fb3672a1ec1c0936e4e7ba8595e30697f8bd825d3ed9f04fefaf139154bec8a9f2200769277932c86e3e9c2f8045d55cbbaae240cf06381a867007e8add1393e6130ef3bf8d386a715ea86a5b7044428ab3f4eb2ab6c0555da917bad07d7c3ca154778fbd7c9ed3c0d332e1b93a582522073b1d0fb1633aff30adf1c22a815fae22fd220cf91cfe71bd255d94d299f6de75840b7419256eaa0e81f028bb2b1e80f739f651772ef01cfcc2f4246ca0b93844dff37785ba68ace82495440cd8b193d3cdd48f218660a7a8c87901515819b60ce66f2da4c3bffdae3a240fcd004da2b6afdb97a50eb1811dd7977c5d0fc6959f5874c3119d0f82a2d0964e809244d5ac4642b7914df180dc13edf2b57140a69aab11cde7a259d70ec8e98454c7878bfc5292547da6d1c44fb459ff5e9812ca1539ae4914a7e9c0c5d94a02c644e07e381e3592d6a33e62b0ae198a955db01296f26a1f288de5ac2444c1cbaf17fab518be572e822644d9191d3f4c9ea033deb7c95f7a874ffe2d5172bbb0bdeec4b4f83306fd9cc9e011ec3fa39ff846c52f24e450b3b48511461cb88f92c223fe454edf50eca0646901dda285fbabeb78c68974c4a218db2f15982d0d559385ab7369ba2f4a32ecb212de35c123f1325d4e1704c752a61c8c64a8cadc6abd8ceeb6316f1413e86f7cfd6e92aac8a690d4daff1c17b38f388bdbfa773b92ec7ff7c033e209480d12c39a0c33d4894d1403f07444e80fbf9d5442db084033573674eefc508c9fc89dc5ec29fa4e586ee88d3801548c0a829af41391bc87fd40896e7a7127109cc6ca56d9d7668968de5cc8636246a2e1b68b73eb0a2fee45a236e55db5de3e98f9378211de6efed19018851fe8dad24c8b81e2953ac96b31a0f54d0adcafa3e04881c4bd9380895c2fee69d5c59e176fab6d479b4d80760053397584d12e73894bc56c2fd4fc9ffd4246ff3a5b30a6c13ab17f5613da574d535f85731dd0ca69be86549b8cddbe37ac2e65107d8b27fd24e591672d56034368fce8403f4f9510484e0e4f21aceae0e201365b3542d278a03758041bd8bbef7578fd9389287f5639ba8a98cc113717509e095b7614739413f8e16022773c880315f0c5b8f188e759cf84f17a09cc51d23deb48c4f6f301e257143395da7f732cdcf05c72e58d2bdcdd0ed2bf8fe0f9f6c89f80394f2710c073530f37e2d7ccc6e79474783b1f091078bea3bc795c85b45a33e6159ab4aaa910aa52af3dddcaba2f18bc452a37adcde0490bd88dbc37f3d48c11f4d115f95749265402af23c76f60433895730a50080ad9111deb35b683b927623e5469dc0814d45e1ea3db20824416424bea04fdd47f2fccacdeb9f19ff83cd601cba1edc07d19f64916ed2abd1b638951bb333dbac9dc79918ae7eb01fe1c91bb04f14d090e74ea1ea2287c894623dbabade55a06af05398698ae6c0986dff72e5ba9160603cd3231dd0b59f9fbde760c68f8067cb58911b2a774dfd420066fb87c724d52a05858950cc9250540b627928e9b704e796b468efcc0b0c6e442f62d98ce3e42bb9ee071b1bc870987f8031f19cfeaa434daf799c3f52451d4088b815d5c04a64b7cf1074709de3a1d4b4747a1cfab4e942efab467353bcf6ee6dcceee7b0c8a69a767ea09ae336ce2804900c8a25180e7538afb9285248721f52b227dcee8ce34a65ed743fafb918da9de9815f5d7c00e86dd61450b413006e9061f8205a8174b6cfc8760e0ca333b2b4915db37152a9b2b4045b3744e45aef0d23fd40080dcb3f2faad6dbfee810e9df34e9d451b2b3b464d4901a4288d87b3cd822a1a6c178a83b07a68b7f634130ad9c2d72abd88b6f38b5be088cebad455e3f0755dcb418982ff82c820cf30c4bf81e979c4c0829ca5087f7b8497338a40c31e35b02d4e6809d336a81bb427779ad65b98ae08f9f906257b9674e2acf42d52e620130ea8206979ea963cc22958182027d9495a15392aa78ed61aa7047ea5ba8b48305780e3e919a95c6a2df47012074279e71c0113337004366252b39a5b8f82bf2696668e005684516b38c9b726c38f55461fffe7f401478b2c16fde7c73afb1ae457cea0a5989d0c3e76ed5b302233e9ec1739f78fc5cd0ae4df5ebaf2f21bdb9a56f9ce6f4f4a2cbcb2d84191566a890ef81e2a231540f9cfcc022a0a8213615cefed5f95c8fa73c3c95bc9648f7aa0cd9046da74ab79add9fcb2c5e3c5e349a14fd30f802aa70d8248171b71bef2bf764b2f24b2f00d7f578ceb0b2960963698af8a3e9034061855152521841ec7d2951ded638937b76ee5f296f72b52dfb574f9842ebece996b6f26480a45339e708af6ec76bd7b4ee4b70a6a1f4b47ee4edd99d0675d76c5174a28844c69556d1cd01ede9630c01255ea546ace0435839e8215f5ba0128bfad5b7b67a5815d6406ef35ec59980a6bf828f132282cf476c6aac382de1277bed2275069d3f0f0e999ed5523d90bd0e37deab82283a47f7064cb19ced62aba1997c9c17ddb7dae20115cbdb96d5fcb52e628c04690fc788588c99cb38712ffc25a9c3ec0ff6f34ff14c545f9c479afbfd503c5c9450af9f4eda12aeeec6395945b895b2446ba34103bf2969ac7a50f854276d310b991c7ccfe392bc33261f861b6ba4213e7087dcd636027331a553dab0c146a51ceec9d99108aad263abee0938e2c86a589a46fc54752d04f94e414e8d134c79c6c6b8a16cc02d072f69573977252f30681e77cc4de1a70c6f4b6adc83d70a00e390356663cdd6394256caa95b9e143a9186420735187557aa7ce87c83f081d0a9b6511c07d7a68c93da7259d5ab448fe0f7ff4d8d8cf5d3977ef01acd2e458d1e0197b86518ed3abc9431a699f79a73a9a889a134281d87a60685c74d7cebbf840ad1d122f0559cee1431f21452dfdddc3e659ac7b204fe35b9b8dc45b1a63a061a70e1f45787ac829623a4570995535ccff5e5b83e97480460792f36a48169caaaff25bbb921ad433c964a993f95f9a8e3ad8f9b5cc215fda828f48fe44f2c53c9462489816dd73f66dbf26d068687834072e41fc0d857d0dd6be37e5800dbdb5b9567b65a250f23ef8baf49d5abb7323f39cea3c4ffb41473785710697bdd328c1f14621da1e153af2dae026a138e403d2de147729cea0254643eda4b9597e8a9d5ecfc4fc263d21942e36ba54dde775cf4bd58b00637d193fed381399a0c605b8f7bb2410b0b3d8bc30da1049a782bd5086caf9db6f94028f2323ac30de033680cd963964c01508b3bad354252ba8f5e12ee146d27d01ed02cc22b6f9314c569b46ab5881d8e934283e0934513405ab478b22c77918345f27c887e81b7159586786a227abaac321d7d9b04139e1259355a6e8343b8effbd65c2ae767149d6dac3b11b2a37c356cdc2f25059e168a0b6409f2a2e04a1b4b1eb69239c0edd28488a66923ae962343549a6060fed7a96f68b888695d70c531dbc90461c74612ae05435bdbab28ec330479aa08be50b28f76cabd19845174d2b3914d0cd6f240c38c0aab8a31c1c41c182b5ef38818573371b81e47e22a74b510a83c34137010589e691f16ca27ce681c4367eb0df77ee0cfeaced940272c29608d7d2f9c2116f196fde30184faad5b0f22db26fbc8215330be4ed98566756a1e52827c2f1119ba01264c153ea71c98c0898f4e60051410940aa4ffdda8426f4dc8a5bb45af5c6d0d0761e084c4db40f9beff220f158f87866b83bfc6653cf54366e37d45f3165a2b14b64ef1a5afe304ffed25da023ff9c1adad43e4f08de69fd3ec867de0b07e2db26e6dd15e2c470b0af60f9ac821ca7286c8c056fc7675ea441ca17d90cc0b14083ea9402c95b388f0edce28b55f737f1222dac573fac24b5d7f942c1e9fbc4283b60a077fd8741ceaf88a901c0baba46057b0df77342b3e6bf68800361e4bb98a6f16399460493b2240506192e571123e4b08fba3d2e33fb90901c47abcaaa6f04cd1939ee59eb64a41116d2f748d232d4c6fd5c7f9a175b25244badc411a693d1de0a734019d0ddfda9b62e290fb6f285ac7aa12ece9437ae2b123717e0036b012f250ad28abadfab09dfba9c5affc4545be0c0fb812275de45946563f2fcae4fcedd4913150518e49b6fc2be3a5165fa917832445cb071acc43cc7149eaada3eadfd1907cfa14d643909dd1f873f328fbab8f940dadfe2a396f7f678a2dd07d45b422cfce1e39b2d85028b65df1d397c11739e757ffab84c1ec612f1150fa19706d389c27c9fea2d8417c469a6d0459b5bf5dc0fb137e45244f645de9c58de9c9c706bb050f063c20c8e52aa64f618d15c89778a2f267f347b53ebf0f8816b10db2b9c853c5c07b680a58680253f3625903a6aa2522d25e0be5b7c569ac62aad7e124748457441dc4b8923d5259523b35c5daaa6340539693ffa69324b0ae69a98177ea3e7cfdf926910ab40028519157c1912ebd831bbfb76dace94dca7c69c7b2bec8714cd7b7842e6f10c3c97605457849738ab35c7e0d2f737fc406c8f55d365b60f60a8842dc6a9ba59fc4bc7e787ac44e62de60207628ee11f579c2e13258125893ce70da5eb220c75c6e62d5ce98e7c241e33d3a3f066da387383b396fbae4278e081e330111d36381c8d8703c1614b8a664cd34f46e6ce14b9e60888555ae374f1f3e93ea1468b6e043901f47811e59c8e7adfec8659bc28036c29576388a48df5ecb9fb0f0fe23409e7b104ddae201b5bf251d73c20557c06a6bb52d2e4622c6ca648d024e4e925d3e3945673695b802fc1afebbb6979b90a3ded019354612f2338012941dfc21c6b9f5fb4945f208dbb4cc03d903848516db59fda0527a9a44ccf52fbb7a134e81290ff778aafe20ec240f03422c8dd81d1559ed7636e12baa11fac3cac395cc52f7dfcfe8e4638711b63b93530fa4e8364d5495de772a04b51f1abc7abfbd4ba5765c6a22c0a22056d9d071bc86933feb0252a5d0e092d6e902c2c13130798bf616cb64ae6fa75f7e3583b01d8aedb7895480f93cea87c6f446b6960376a6dc88bb072618e8fd2856c61012ada9c46e97ae6c82a51d96f4ca8525da084cc6ba083d5cd191ce3939af3650164ea31bec0ca6b99cb016eb8378f35c1ed0cdbbd08e9231de93d05f88c40da0c16b5fa6f092cb0c2edcc886d1ceb165b12102c6d872fa59a5e386055eb352fc56a47198f421dd3505da67250930787a418b3517ebc4934da125de4f4f1a7bd8369e0afeacbf9b03f9ba3788731d7f5c6e8700cf161579ae4fa5e916aa166576a6f2bce58fa6cde4b90e1c855504739c8cc398fbf76dada75e840f8cc6b8f4332a74344385c4f6cc39b3535d8e05faa1aa2679804b1693b0fd0806872f9f46fab0936fdc766673ea09e97c8c9f844738536357bd0be8b7db46fbfc5a61c2c056d7e7a1a8771795f57573232e0f303c3cbd502a2498cadd8684ed5f7793c109abd95b2204f36c44f5c410b0266a8aa7047e42397da77e3233cadfd840015abf0dad054b2a02580dcb6e19e94c46d6c9de63eb5fc1c6e1969d4fc3f6344cf680fe4244270df2cdc1fdeaada3efbac3b13e2105943a27cddf16a1baaa3fb09f7a859d2eb0c0056531f784656a1968939fae9c372b11f56e6c08c01190a60b15ef58ba4bbdf3bbd7adc10ec6162357703b18612d054347bc317569f9490d6c80d653a9855552ba450faf552160aa4c596fc14a0a3afc2a1473551e35de764c2f1202ee6e3fab9a1578a8625b48ff44d8c757c3f9a07083e999bb7baa3314b77a0e2a24e0a9a0c65dc509461e9630399a02249620b591a82008a718d4cf9c937f4e5d3b0911d6570dc4f0b657033f24ae29d8af233fa177e34c74b75446eecb04daf99c8010f408f7969b95f9009e947402be979c864e235818981330634325611f273c95099d2dc8825eb0a813c3ac8b6e4a8d330bd1d0dccdc7237eaa9b78922f279dee6f951a685b73b1e9d4857d1dd3b4bd9088baab58de0f48cb5043de312ee5067c1418b20982e23f18988b356a72d960cb46f68dfa2accd02eec334a9680cb8dc9a7eee9e0a3e5125fa3881bb172559bda1cf3523a96d089d7b600c7acc16d5b6dff9d43028a707c24286e0d867c980f6e04b4e18787ead952254f81e6cf4595f1054cfe95d9e102c2ede36ac41d4dae128b2d73c796b474af4a2c232cdc453fd1b9aec8c2db2311cb543a24302e3638d894adf6768a9f9578b3b6036fc62bb0bb28ca882e064167bfc1438f71843876eb6053276b257bfdf3231557ea883adbd79ad6c018d13d18a685d1b60103d77d01a26c70f480fba0a5cbff9662599e719b9e73daab17c3b53a47bf8c8c21be7d65112fad9a40c035d24d996fd2c158180e58b5adb29a2a1ee79ba7b648ca90904e8c09eb2bebe1f4002dd8602ee1142489fd31c3d96f2bd97f17b0822f287f7ca5b7ed0f494d3ba937f91769fae507e75ee03757bd4163f95f9f789466f7065635bc60c5c05377a822b1300e2f17ec9122b4c37fe63eee5c31d94232823b502abedfbc1e5c1543890233420ea073f2357148996340d3c29eb66914b99d3438228716b3ce38f26d12ddf483714ed39c7acb172f96bf85f8a5370bd203ab57855cdf8f3a4045a00075bc2c5abeb2306c0597e7e3c884ea03884f19830118709227e65abe8427e7b002b6560a250b0187ba74603f8bc26d88a83bb4595f556e157418274f93b76fc4502e67c8d44c34f79ce5f17769365f7db34dc7527b64f22cfb1f7dd9e5adbd63518a3e4a573736035f33f73a91432c3ae609338643c77aed70505ca34a222bb90dccebbb1daf56b951d41bdb99549bc55df89a9008d7bc122782c108b02d779e27e3d44355f62f0fd6e491073d54a87060d0fb5da9effe341329e47b7cee183954e78197c808223dbf49701beff2cbf8cb0d8e1cd1f29c382e286902f78fc359ae2fdf2320ab04277f9bdf96849f39a5e9d0cd7bf92a3196e6cc9de367f20402f62557f800bfd4bd013c09d8a824b6fb9a354e498b8b93cd8ff199b8454adb4ba11c51412e44006f61ff22943cecf57306e59e8a6089acb6d1fe9a5bb294b270b8e6455ed1eecec23858050b2a25eb16824089200cf7ea773a3a0b83a5ba5e35dd13e9377042ed00f5b64d8531a20fa1425ce8886aa7533396e1b6b5b2e2d8bfa6fb4415f67dd7beb242d4994743d325e55c99a432dbb78e7ba66a7a0d7edeb9ab2a9ad7f79870e0b14bdd04244e004a4d1d671ff41c12be1f28b5a77d2b7c9b62503a55107064f8f51b54a738ff424096dcc57b003cc304f04df02be67158e575b068859a924e1744c0bf2de2c37eb903cf902b6a10ada8f91111fed3969f01a5f729c9666b9844c6c8dde93d5bcdec95390ef4103861278de9b9a218ec2c81cb7a710e4feaaeb110d479c2195430c7231f89863f9c4d9d147b28f5dcff88d5ed6c0c986aa3573e0a566072897690433a69c085fafecdcf2dbedd342a522a29be73c73657f72c58d6b62ccbade763fef90f0efa12a2d4ccfc32ef5480118b01f11900aefcc6d40fb61b09fb188246527a1345d993e6737adb55abe0c99d1416042da3f3357aec5770f24b8f64a1faed1b1a577aa78e3deadebb3c5000685d860ec1c64947e1c2bad681f8b0e6d6269052e941d7ea8b919b521fcda0da90e95bf9eedea9360b1825159cb43d2623ba0fb703b3b551ca595227894172526bfaf94948bd2bd3a5e480037a63eaa4657d9291dd22e01b2fffe968f2af172669ec5fb76b9352d3baf392710e366dff84582190787026a46d004bca454123dcc5d761ae0be98c2ed4ff681ecc7a671fd5b50d33e1f03d0e4a1c9952c2f8aed2239b682de827a262996b8526d0c5c1041690ac9813a751b1570787947dca7cc77787645a4ce2e0ed1f70f3ddc7ff79015f0ccff52f9d549e08aaf8b59a83777f6005c8a426aa7cc5d7348897d9af151582ad10d9d58afa658b89097bd560ad207e7ebe4416e1a772dd435c0127cfb82b9fdd47707205e9ce78c1b616c0c7b10b062f44d62305c904ffb1af391555e2e9cec3e8638a02b9461dc9addd5195f42772702ecb4e1050dada6d8da21edb5b07b4c65dc2134443fa816513491e3bdc0c56582a12a2ea19420c6d5fc1e92644a361140d51c0e7de248f267108be3a7b74fe716fb9e351324950c1876841663c267c36ac41f501fd707d5e0beb2ba788c4d0f09a28c62c9a9a16d16ad0b223dd187fcb821421b696fedd0d6fe37d453038b9f2fd67ed01d47a3beaf531c9f6719d84fbbb464f50a3ef68972d497138c7e41cae891e23f620d035d389adc25425cf7575b9beae24012b249d47de8e1dcfcee30d9407fb72e128ce9fa9b539aa2d13bea35f30888647367cd780ff57c552d24375e4a7deb272922c3b9399b42a33c818ee988f791993ec130a23752a165593a4076378673e4de00eb744c14faf7c4815c384a7be09727c8fedaa77d2af1f26652022a30f1243940477be05f5d2b1df77ff44c484fdd9858e9b2caa440fd9892d089aaa024e76088dc542610ebb5a22f6c39899171376631c34ab4aa2c47847f5f93013ed4d0f70eb010e25da8cd67a749abe94a3c51a4202aff89489d6450d11cdf563333a415f477bcd3572b58e35611b25ad22ae3da2095cf49dc5dfb384e0a6641e579dc9ad0253a2dda9763636f1e2646a5c186ae07a5b73e07ab772d480c01bd6a71eb8c0ce5ce1c3d58dcc2d4a41eba80946ab9e262e4e1c6b26b924a36b54bd831e9e051ee937aa1669d644aeb51f443c9388ce81c4cb9eb752a979ffe49327393efddc0631f7edecaf116baf2a7d68ee3b28b0a109659283113d1e2edabc4441f3496e4f075f4b59a4d177ba60ca2ffa818d4cd07a7188f10adf33e2b077dad8e11df079dd3a1c283b0eb63b33ef1480e54ac2ff1a143abfae97ac5d40dbf77c587655271bc270471257af5b25e5edce1c8e2c74d9a3fde7bde65a87be30173660fd6924787873dfe4f487aa3535b4c868c942535bfd919a01b4a611e9885c98fbdc61b67ad6e89064d23f5840412880ac7d9de7ebbdd2e50f9cd783cbdd0c4b7642517d42c9230c4bfdea8b9d09bca47efc0ade076bdaf93856d8c39f73bd214980e67730c90ea9a3ce76178e6d08fadad367de36f14158734529d5dc5cd5b8df4e7e5c462fd114f88144e95712aa266d86247f95f11146b6e0c4055dd17498bd949e191f03bb63fdb3bec1012817c8486cd98c02582f623bdf2a8d6a72b573e96c3e7384588dde49f950ac3d941b9ee4dfae11d6db51e8072665a882b12adbfbf2eae953df16b0434b51e10f171ebb20e1d87b9b34a3b94569857ee1034aa459d23cc474b6b7a0d49861e224c0832679dab8b67093aea7cecbe70672c6ee810f0b539a11f78c0ad715c199e0dfbb2784aacb3c62e84c1b61330a109f163018e3ff76fd71124727ed6c0525d2fc9e2eb81dcb4e988c49a6b09efdaf8e46ddbc761f21c357470af990bdb9bece2451f43cc36d59db36428472b127386e2ac5fbbbdc44ac8cf251ec5e5210a6e2032109b2184a5d720a45b1bfe5c4cbd04b3bb8c8b4bd3ad1c2a68e1ee7a888ef8af3b281d757b729a6e0040ec4e61345fd48658f080189d88928495015417870239ca567dbbc57ab83721f6a6318d4aea148b806f6031ab8ddb8e5f3398358ecc93bc7b12a1198974607a0f414c0e36a261c5511056244536589b9643a78e7397173aeeb2d8761425e5414c9ecdc54961f711e5933c5203c2e625e5e16c1cae5e33432e9d850aafffa9a86063c101f887dd9663227fee45e6cb048f28d8dad443828a2b457f1b145303108fe56bc30ea14acd85c39ac8883045e2ced3d706eff09b6a0a8f2a09c4eebaec92ce8b307660aa568d12b29f22d2b1796efe94ecda3211b8b653f4af7bcfca93f693b97629907db2c3da355644c8352b02517a1913dfffe443a4d766dafce4b4942fc54b85cf87ca8c7426ff6ed20ec60693d1484b8879dd80ecff3c593a03eab4f3fd607c8a9666ff93f70ac32a0a59dc6a76198c901f1b3daf864d2c269c1ae151c4f9ec0f126deb0f21f84c84ca621afc122ff0053fa0891a3801c091a8a3b9b171b81b70dbf769aa7e3fc3ef764b35e78aacd59092269fad61491c12a9034c6288594144013f1ce6d462ac3310cc62264dc7377ff84c3b1b54f23d03d1790934ac352174abbdcca3ca904857b6659dc0ee91937fc29f3e7b166aa54d9fee2d18d9baa21063e382d9d98bf8673c5044fa8bfa5d54aa31e7f9184f41a03e042dc4283933cbe99d0c1ecac703f8d66ce635a42d4301353a7cfb72ed6bcaa3188ab5f48254633700a387c2d48f45a9339af745d94a98106e6c712ae9eba9db772f71ecb474519e5e1fde6f39772f70ea1638ae78e9ac50104437c95b6c03583d3371fd55eb41c4f8adddf47a2e522a0c4986b26fdb21eadebb7ec5d4260e979b543f7c2235b76c9a01be38384339e4d6c0af9358ca2b8ab7cce9e3838fbad5c3924677681b202f9311a75d4c8e075deaefd3da4336f8a1bebba0aa9c2776f650fe7c40d2c2205281f5ff2a97ce6db589d2e058354dd7fd2fc3562ce534f71753ad3e42fa67ff016d14151b9348813cabc5e75eec8896c0bf0ecfb226a32ccf20e69d03d916f0ede862fd8b6c3a84e5066ef5dfcff93e5543dc0f26d0dabc4fc78adf0f388308eb2d26fea5375646403c003d5e43ddced63113aa00f18daef611ef51ee3f4509693ad03c3c464f987fc19429e58f3079946dcfb0ce6baee5821ca7128fd86f05bdf964f65dc278046b205f3c6eb53135fccd980805729f432e1837ebb3fb36f661c560380a80b69afab92a200bb46ff4f9306cd0e7adf6fce27edca4d862d9bb342c2d155612add5899bdb82f98859b4ed7503fa8cf5ecaacfe2199a8a425b54778b19dd19ce6a521b2a13737e38f7fcad4ddcbfe70499836f40d9bb7178099b04a37b796562396887778ed0f6d9423307539ed122dc82015d1a25d8f63a0547001b0392c620bd64169f57029e30990edfb45be8ddcea66750eea249f2dc28781ad5fe7db4da820de9a5d619f37eeca385e72c84e1b333fe82b0fdb9561a1c96c97e52549d0b98fe5d55ad24826889697b01a95789dddc53321d108a7aeaeafac00d674a6fb63adc2bacec7da4e1211066dd3fd6b1acbdd81b37e1c62a62395fe026e734fd77c29918a91a46ef88c885593891b59eba840da5ff4fc9982a6a24b5f9616f9784e14fdae0a0c3a788881a8952398eacc0d085b12f24737d232341546fe90d1f1d4983c9519de87c414ee14e0db2d362ff42e7bee18188e5220dcfc9effcbe011266bc64a25c107c881dae98444394949665207d67aeb3d317d556e73ab07f003d67dc3288fc38b73affbc98e70677b7afd518d3e119c4d9028481fc3faac213a432ea5ceb6009d8490f71883470037195f90ad1928040e46d236da044f465a2c75ea64c2476767046e20938cdc62c0a46224f27a4f425b72185d9f82959834b324de9844001e4d3f0b984ebb7a90583c0b7be961e6c788a12345344a5ca7441aa2261d9bb4c1b2c527e2592a67d6b5e8f5b5967da0e318fd57ab33c7857ed191112dbf62d039d53b04177d7130ae038f05f2c61d3530c138ee616dea0546266fbc1a1ea75e95366a36e1dd00125fcd18bb473b23312f9551f002e439df4b3f8e0a7f6535666b075d49e0f298bb0dbf7f093790095b8b5f65e30067c77630c21f0d65f81768d9f7438b3e016d33334a2701b4510bc361f43aaf8ea95ac132506d8d19b9701711774132ff08737f71feabe68b5a8816914c7c57021f927b2a18396a0c59199a3a07efbd1a7af01176e23c46cc2f663ccf61fc31d86ce4d64137d299cfe152249d56c932a60e86f54f63008b3c693b9f076d4d4bf51f5e1a9bcc04b52d65c7d80f8b7adeb23cf9e30891630fc71cd48e08a8219dba2333c67c82ee16d29d6221a4af797f032585228e3e65419d80de2013e4150711b58ee1771503e05beb217d137bb2f179c2433f09b5af7186b100480a83cbd93230c3ab8bde132daba93f4522cef0d82be2f8c4671c1361441e3382fd17ded9f437a082739117214b2958033448bc6f744f70c588313319a3a4ff66207c41d2b1adbbb1cd5116f44101fefe9147851d14ae4478ff71da4eb33a614ee848797007642571a667c19083b050b045f47af99289dcf57282f4abca1defc6edfda3107a774c3664ae94020d0de71900509b2cc4adeba2ef7d273bbc1201bcf6a447d55d9362bb920a7f347208c8f80bc79087a0053dd78c4e9ab7fdc9cd524ff09c2574bfaefe5c28ecc915a464f3b5cbd18634fbf31fd3654f3ae4f42ecc7ecef89b50c99ded46e740b338ca0540d2f2852e64573e4bbb865d59e46d06e2357b7f4564557cfd109fc6c453c18aac971caa768d9fc16f0829f1cd18c9bdd81b34cb7322a5b15c59a8707a607789eec9a3d801a26cf62a218c851d0b1e7857276127ddadd940cc8eee989d7bb31ae7d516da636e51ade85440ded982ea4e40418be3ef8780c0881c3fcd27ed517e41b309fa1beb6bcceb54cd880def0f4bf7673bef47edf0890d967f53570b70a5bd669c6233113e132e0cdd79dc49044675debc31470f88e32803cb95bb28e44bb9d9c5a91e10cd0a1c9366dd62828b3c199ce5a52630fd521a4dfa51cb66d1ab140cc45f721d86e2c0906eca17a52b4eb66dedd140250d384911cbc1897ddee812388e54f4bf7e0863bdd275bc0b376ad957368e92d1b5ecd12dc0540932a84b0022d34b1ae6843019b86f7c903241624dfdfdbdeff423cf57677840f78d64b17f68f199f7253b24573d3b7c2aeda306f27c0239891926b2dd1ca25a28134907cb2db8e8e74a856c2858db5e8e0ad015a48eb7235654b773d006980938cfd127db7e6b97717c938ed2aad05b1c3310c9d0d7f8c7a4d69afc7bec1a8f53d8d5843face2dabac0b16058f5797754e82742ad57852e8dc4d5bf6d3241b1d24f51335322b0fef39f9e4015dd1d00b8b08e997a8dc309eb0ad94c0a9dda9aa056090ed0172e801944822b9425d10800fc12c6146aa11726cf4a85e15ad863dcc0a46a35da667d922b857d1086e1a52db6767417798ed335f0617b5b8ff216c3c127cbd1692a0db49342d448beb9a0584c88dcfff3e6bdb94e32c0a1e1573f0832f6b4c5bec71f5832e13b11730cd969782e834ec69d7ad11b3fe77bee11a3b8f8b5a4fc86d6f29c69263530efb9ead223a3ae27f353196e65d84d890638cff677a65d785f241df32acd86923480d46ba59b3861989a49366169cd048fb1cacfb16ff4a7a42ee94de399e96d039f37892139a14c962c977c95a5788717222ccf01171adce5196fa5f1dc5534a6efc2e958e59a490870832afea72d4034a8d862c10a0d1c5034a955dcbfd82204831efdc42e6e5f4fc4c6d241c0a83c2416cb7d34d675e727956444800724665bba7c0b819d8f513b25d5e395c9ffa8ef3496540fc60152d7db3dc12e182e989d689f27e2a1dfbe20018d15587c7bc4d76378fa514abe0e807ee8e7867e0da32b88c5622c49d4a357df14e1fadb36c54de2b584978f3939d97aa34e3e22c77d3b45ea6954d74c4a6a5fae4ac424028dc7c6d7eabb951ecdd47b65b0fe4651d256133855b70a9d14817a4afd7ddd780c02d92de9248e65c840904e76b6f420d4ffa900c7f1c0a86526b722417cd789bc770dd0c3cf65ff5e233a5f922002745fb47c1f85abb3a9ac1a8b12aaf3e69c3375a3a352cf8c26822c6f21ff2af27e85d67adf82024bd519abf701609467fcbc09bf59cdb6242540742917e7d0bdb1ca3bb379128bb819bf749a46fd197e09eb13ffaf321672f273d0f10a8c9abf466ab40fbb5972d4669badfe03ba676cbf714e23465e471da261b5c6fa5ab41b64524a6ee851550455d754e9c0213bb1dabb407fe98ae6563b4b46c8108f1f2005e6a9147564eea5c7da7c49c31c3cb741de7dfeab12e4b4547d8125f79a7156c76b1337e3fdae09ad0472a74717f32eaa526827accdb1ccfecd3b5588a4affc460f88cb3528b7a65449940a5c60238340c5d0291c978acee354c178cc099e22214bdd42af93c5bd75092582a0c53c14ed5596bbbee5a5a010fa08353a68346a08449a1eb2c3251550f7688fa668b0a276cfd76a01b8637990c0430319ca81a03a7d364dc7dd53adb0017cec70e86edd57300d4f56ae15fa82dce63a3cb83b53cb7a00a3b6f5dd19cf073ee7edaec23260c7a33423d719093de9bdbad439beeb89a48f70c60009e9846e546cd0bf8c41b8fa61ef7f2c9d4938bff8e8cbae9f8e7a5ff46cc9bfd933c9a9fee2d5dc6056cc784521050a5a107569268990b994dd98381ac40fa0f880d520c8db70020354025ff109e3aa595b0df57825f5aeec35efec2bf9a18faf5732790187d69574acc5797033de78bbe5700888bcfbb828b456cefbaba6ec1258643d75457da8c5cf27e533d1c2e5b5321af114bed45850ac00a7e642505ebe77cc30cd127d6ed411436493b530ca6c0e0293c86dea45d332d80ee2b9703408c06cc0605a9db61d103f61b8ea486d044a190bedf4f845d5484bb125a76ac7edac601d3a0dea02694a448418780ee7ae748aad6ac0b37d3afb6d5d07a145098d2899ec168e514050e1978e6378b9750bea0a262cd3df3a9fd353556746558492caae30bdc047cdb093013c898677349c36b3fe6ed2ee9e44bc77de61c4c176bf39d9e86e37d143cc43e35e1aa685f4d61f15f46a0670bbb9c2f9e1ead4ae31d3c257c2a7fac19b03154379d598637558e187e6cc0a56de3714bec55871c795b5208be2e63448387b96bd7a99497f09359134f026d0f74c4f0b3ffcfafcd3f96cbba2490f13b83b5c8a7c5f80058bf968fa43313f315d560cd14263beea8c997cc11f16030fa2b48f470017c140147bee1195e93c93d28d0c7cc5314f411332de40e23cd41c0a5305d988434010e878b57cf77b1d56a3d6f1272cbcac673f1c7765f0d1cc2fea86f5fc2ebfd177588c4d9c275c04af07ec77ed92f567ee7f1fa946793c0c4f8cba8705c7df7a2ce11c26891daeee6f399bdd21b0268bb0eb5b78480ebbecffdf1e18a0518d5f44340189e856cf76e43b62584de66b63a4f96ec06e66ea49ddf68481e295cbd053f3880b25893d0492f430079b4afeb7f2baa892edfedef4241bb2308d9c0f0e4cfbb8f427c026a58bf4e7575073ab75560156408fda417cee7094139455b5ea3c35dd3b16c4968377f9d995972b76f7e907e8e38c2d2d889fa881bc541acf9d9cb93d4d5956942e3bbe0be1f3f80f092284d3aaf9b1e95667d3f0ef9c46c398e0cbbbfdb2b1b678d96f040c7b087b8f9aabc45719995885691cb7fa62b6da2438ac3b86c36dee887f108b75c86ae0641445318023f0f514f3b261e5646f4885b0591a201f6891255f9c2cc2504b98ead55bb2ee6114d65ada1a2ebcdb41efb6559bee3333444571bff911ea08edf44316adb538a2e02fe8fef00b657cbc973b9c2fdf6141a33bb50e8eeba6fec6dcfe3bbdf8a9c3b8ed12f1d2e3d2aaa0accf301bc2e38acb67fc39b62483c13e22b1dd608f97a559f0f4e5e383215d15ebdfd05d1e262bf4ee4b4adffd44d5e58bd51d9488aa3e899e6ecf8ac4fed4381550ccbd11894636bd14b14703e812d88f33eb197ac41d4d9ab9d436299314fa0cb601e1efd34dbb1a96c58272d30f5ae8107ab00ac391e4ed9efd5b3d36bebbacd9640afc4c13cc42632c5b76c5cbdca93fd7ffbb04c579011c9d913312ca8d6f1594c455616c1c4786eccbd7c4c12e3db3d517da74e7f57d75c9cbb44940240180f65a4ff2034805d5b5afda8ed0f64708e540401d33158a7685e0f8125f9e0972798b99749862161c155c2517e974d09a800d8f41a71857d900921c567422958e78ecd224bfb8045283503091e72953901b9073f804827b2e9cf7b7ca95799675ca0425eedf1d245644a584a6d6eeb69693be9f0ff91dc0f76ee3fe550993e1f934e617e9564208c551a60e9259180411637abdb7fde9108fcc1d10f8414ffaf4b78e54ef4b41ef201aee45663a927f4f38bd0463d24d1eb43da0527f04b7938ee101bfcdbbb73c46e48c7f9f0351ab72e557b1d63732ba6384f2792eef01afe86c940870e3502ab36f1635a9c0461fe521bb16a4a5a6ed7136dca236343ebaa2afbabe1183b82fea44028394d905d4e3ff5cf947b67c5a61b011460907c6d6f4051e48850e9e65c81519313280430612e906d5c43a42c288b835aa7344429a124a75c6b62c5695d8a7521bd2b7d467a39dd85689eb0831c9dfc6bf8d65a9440360fb22f3ed14d10e77e5a208e09bd265242096813fbdd5521586da0644fb0544b5ddf7907b9c5ad7e41d9d7a0637fe7ab9dfd9b55621b78ab0f84cb1a77cd1adde3572b3f905dec186ddd1ec69b007899f7165e9cd6e5a4fcddddf43a7e348a3682705bbc72188580475c37547c87d18c60279e2fd2922e4e9f14a5acec09eb4d4151e197ad4fd27c96fdcf9c9012e72611c33681b20cff42feee2d5b45f4ee37cd951e99ec15dc45ed8692d3e0622e19663a9a8225544d63164155378c62b0627e97350deaa74a1b0e23a9d2740e4c6b59a975bca3b2b37d348cfe0a4e01e864debb0fa07257680a92d7e2fa492fa3ac5cdf116fa451c7828115bbfe3f98bd1bc6ac2379c7f0c012f48594b053d623fd02db9800988418da8e451e8b5d2cd7a17faf61ea7d06aa58134457c01b7ee2e2e6e12aacdef5e0a752b10a090e25e2ea3c988ad213f3758a9faba4009e3458423d62337b0f394fc2b4b40ed236d04bd28a286cf73d561d2b5dfa3d6fa795a9d80a7ac0b4be29bc02e5e3595acd1a3037c713fa054d0e27528c0a284b81a471894d966cf66aa255c976c7cfd108ee199ba9c56fd8bac33b9af489a52c6039cbbd864aee57c236d5e382b075d27f4beb807b634b829029f44dbe6821957bc40d70ada6b38cd91dfb00c1d94b26b1537a5297d80c047d0ec582ac7c48ea7145f68dd0c15e9f23a37ae54f1c7318be5452d2a70cdf6a743df4afbc5538161b62d2a6379ed54ee10fb2af2fd6b66bbb39d679d20359cf82f86e689e9bb2e0bd8755d4da947df4ad7ebe6290d63519d5500b69b886013fc72679e5b89f9e7f7b30fe49a9ba4dfe2ef65500fcc1b3e051ec53d0789a66d232e5f21c1516fb15718a1fd3c427b72252161200babfa5a7b13f66baf5b371ad874273445d9949ad888a75ac7d3bea7dc7761e22eda47e185d3684d15e4d95bd967a93e066f222be8500da4005377f3f0e38f853472a18ecc3e6f02523d1fb6304258d365492c2cac4721a428673a44794369e771dcbec6b6bef89e5860489f998daaa6dbff8f6ccd443968f2e2d5d97f3aaa2f30645e82da7dd33d13a051df240d6025770bedfe500c21e024667f9a4011f7acf354a1cb130706a24200d185a0998047081a0a92b33bb1d4b8df274f70156eac6caa440235bb9c6f7e91c28cf9bace08940e4997fe659d5c4685f0b8a2c3aef94d93cc33f56119eac72360dd52a10c647cecd29dd8fd74967fa546fc09db9234da0e8a970e1d34e29ecb61f36e8f2fcc68a1cccc2528c820548ba10e8f9e86bf22e35695a32f2e8564387992e7e08811891a870671563224ab128e7137ffb76426a91107013241bb1e6cc58fac612b0061d820610a0a22f9e77148ee85433566d80fb170bcdb0fa11a1210b96982638bd62b3904e975dac7bdf9021b52dbd07c0063b849637f1c3354fdfac10e9406837a7e770632240e4b775af46054579c577f2b4db37eb6d0f5f39ec2b550589421d1ee5001162bca6fd28fd0e89921293416bebb52e48f0c12f4a20d9787bd6ee3f8e6f2c3802cd0d1f8d1c4a6233541be4113293bd71c2e8922a9b6eda36925af0c0790bdb4109385edab9da2706c31d1bf857c2002c3e4ede3dc18a52429dc567c7afec743a4a7d8deb6818ba8ded06e3d0fe21b06a95b7bd5ef34f5b8db15aeda8b90f4d234104515e7fe7c8bc52b6ddc6ba2ed1e678e193b886be7041594c2dd51909927f62c8957d764e03ba3a3543f7a016af5f20cbbdf3590bab29e47eeff8eec857d33d512b23c455b260eabb985dd47ca9043635a297a7b472ab05b3d1e2ec3f48daa5ab7ac09403eec7b14ca5a58f57951b7592c47f2cd44e4091091103a6b5553c922cff8b2d2b64d17e947e70d4a92de28a49e5f2e4d86bd4db86e2b7f0d0cdb5a683342f26f8268a2818c446900944c0ef8fce94cdad533145ea512bca816c8b33576a09c6a56c1e4813ff11acb18e336d4cbbe656533d0d7e722b03a47f0d659836b36a125074e7e0733b9bb3777e1eecc8bf64b09953a1f57539e9fcd0bec48605076f9f4f16f4699a8fb668dd8d1830f85365e85ca6843d4b2765da78bd8feb0fe2e8f9470d95566d988a60b61840847d18aa8baac48a260869771f460ccff769398b60b8ca38e471aac2015c84dff4f91017c6f268e157c41d0c10c45ec65960b0630ab401607332e43a5a13805bd0374a6fe0d5d070f8a40f50b2611ba76473eca9275b4bc0e553447284e15d0be0f9fdac34df43dc2aa30edb01866f9ff871e5db43769d29f072d7a2ea659422ddd47db61eabea0dd66ed75ddcc776f9f63d26c399d5e114841dd89c93b2cfe826e6e68f2e846d2c99dfd6a193efcf0e4062a3e8bd8350e3624fe571e1f970230653ef2a211dcc4303ee1a56f1fcc0ab49f6f255a524c5f0b29cb666bd11a59eae0ab2ad05bab279eb9544e336884fa3dfa9e76eb949f355b4aefe0f4c38317697b8135a57a352a75baaf2682a1d3014d8b5552a9aa8cb387e0ad2285fd0f49daa3ec87e67df059645e5c0e3017190e4ced08ff7ecb3e30cc18d6de381de0a0ab9f2a31640c5f8ca36aa2860a2e59d61120895c74c206c0748c0caeb7a3ffa0ed757d3498050535a3c4e73c5b1677e45cca09eecd40ede237b9f3cb752df940ce1362b5a88063ea935e84b6cdb6243b9be48404a119770aaa24d1c08a66b8cb4481777b12b59c475c2baf08f7c82a6acda234905b87aa3ed16a9fa9cd8f7a59f23af0b16d90619c6913b7a2aa2be3de3b474a43f02394869a3fd19d6bc5f19f48cc7c078d5032553b5eca15552f951396222007f70ea03452c7019607f33a837203bdbcc3e4948a8f8fc708f0b2fe6b63c5438b6e324305d96f9e5b8f7f981b8c6a7e0e2c7bfa8b541caf43907849a9400d8594cf7ca2adcc4e98b7189967325171c5c07fef8e1ecad79417b62b3f4cf23f3d85d54524de0a28b7cfa65840cc0ea7cd3c03908ffa64585a332dd7f83358ee9a4001be3b632dec885121f34f75673f36f15a0cf12ff7c274bd6c3d105c34c431929badaf0fc408946d5038b74e703f4770e657e61eddac070a4a491df330616a1a95813cb2f74e957be790be577ebedcf52edef0bd0876594b7f88f1ffa254ac8d201eb886712c9da435da063236d20f28919e7108a7af1edf62ad9db51cf47a34415d64a604761b4de77a2b31f7315fe135c76bee220788d1c87024dd09c893b4d2e95da62ac174efe343c9193d1065effbb0c390af7660d93c05dc99624911da556240179f84209f73134a92eed95b8498c8daa4a872fd7bcce45f385b8dd748ef6e79a4bb92c7cf24273580dba8afc342908c416f3a4ff89667b9f513dbdd6a39bf3deb8d2e2ccf2624c4cb2602623838d507363c6fa0dc8ca2a6cef10e31759f99306b022103979212f88463322575019a892ab0e895b7e3485b04b33d02188cdc594a7fddceae831b04069f4006f5132a318d85ac7addc2194e656fbf32c2b0c4423d6c14ede9f99e586d3181537731faf6c669a515bdd3c26514a46ef9516b2b57c985bfa26e0907b0e4615e3009b25feb92e1b9ad720485d7c4c8aa75c913dd6b9302d309eb062b73e4255b78fc18910379efe23061f2890d59270359dbc566d219b3ad7b405e9c52bda3cee4efa2d134a108b9cf418000d1499429a88d42b9741aa9f08d5da6176364f703403077dad09b09263828fddefaf1940496f364c19917a13e9f57324a2e78f620cb35a4538950b67b1dbefaeb0f97574a06bf41834472f2752db4dacb9cb08fa2fd6bd4c7fdc9577a90bacada9df6fd3af7a2e812c98e4791dc442c98857259f55eabc4b89bbe3607baa8632ac953e2adf8795ba801f1b22e8ee1c9c6bf5691585275d2781e26becf16269b18f369e68776eee62720757c6fdcd5c3a534a5a36a66bff7414c6c7be1fb38f70810e77ab8acac70f4de44212e52890690bb31fd95eaeee442e42fda8d9f5146e2c8a8acdeaae11a021276881c40cfc18a68ee21b855ce50237a01f11f6646b81d17afc0773220db66e53235b582e1457af39ad7dde9dcae1737944b819801d5530e2fee673ed34b8976e473dd0b21d4976f556405746315659513a40ef31f4a30a569babbb681a9c6d269d45404be45ba98ba43b8648aa04aff7b4ea7d75156b946ac215e2eb2cbf4b2650609404dc6e98ea6ac26be04611bdba9bee43b88353b951203b114a75d1039368627c9e945b3bdeeb21e794efd3f3f3595206db8aac034c1d57cb7b8a9d32e9a39400a08d0342ffe3d4a723ff57cd6c1127f3c5e93aba6466ec942dc000aa268e3babe4817c77e20057d56ef5216acd92c7a3231df37b6fb4bcea69ff641e72d2b47e415dc11946046d79bdeaafc1b1813dddd3c6fa550978e7fc150d48de4560008c13e99c0d58a50aa95a4f71d2ef8986a3f519a0c3beaa9c371ddc10561960ee29bd71da6e88aed68a13678d7725810c239ee5df9d2f33bd6b078862848b7d85412a38e721f28e9486f103a3989c9fac457ab1993b12c3ed00a75747f690301045c0ff22936bee44428c2d046f44276cbb8b16c6ca4df840944baeda0b573850ac288ab30bee83c1c1b0fa8d20a95c71d77bac8aae34255001e8242765bf828a055e93e0b06356077e1bdaa110aefb842e07ae01e36b4ee8d9f1b172f7652f28e29772ce410ee62d3a205e7e8125e9859aaeae5414a8a133256e1e79250d1e4b0674c24a9cad93d2e2551d51a756b2f2c73f95bbad34e1ff5d02b1d3f60619b300e330590bd8ba0ebe51a642ca892ed8b3c4f7971c3c5e2c7c118f852081ca499add659cf237a93e8885783f275bb850b4368d897b4f6545e75880b7ed50c4ff3bb8eb8a6fe887b0bda678275e2a934a124fe4ab75468265e17acca1ff7a5ac5e87d2741377c9fade482c2fb568aa3ec81fd348641e2a53429310a458b1dd7aa57a0f7a5b32302f3a237f6d5fec12144e285c54cd1b7884f1dab158040e0e1ce65a372b1e1954626208942eddb006b8ab05f58e5f33c3b767225439cc8a710b047f3135a758c00e85963ab0f107301ee6f3ac432c7eeb30f5b194ad9e687b70ad5e35f96a4bc7bf0745a2ee1c310f48caa2de84d61a1f08e6ece16d6d1c7b17747011048ac4e65f6e4dddcc50c47dac83e2e1a65a741e1f430e28ee1e6248692b4d9ffae36b939cc572283ebf5f26cf5a870031fcabff057613a3fc7073d674e63cbfc0c88d96faeb4e918e8df8947845ec46e37e652d11f0db21ed3115d03628c1bca0fa89cf6d39bac088dbe5f826ea17115e12f3f7032571aecbd35a7b0945ed0cda5ef2b0b64d5716cecf78dc4cdd6d9fc8a250657bd54bdff35dcc8f045d2459d631ea437887d77f259c2718a638f524b6f4f5739acb4a1c3f1d04f8d7ac28d81bd7c5ed46ec4d94ee298e3c58516a01c32e43910c53c898bd3ad9709a06933868c25e67e743e77b7593d6d36556c0390182c9298d82bfa1026d36c4d4ec1b5d5588044e5af39c13a7f741d33f4a9ab24acf8434d67555a57e75377c32b4c3b17b57780a8bcce5628298f69e5a718c713f5dd7998e8050567f17c2e3a767dd595ccc4c95a7045951e618cd5c724a05bbe8c0abef43ddf446fd3a4cb3493d14f97c0a5edbf171469cef6fe25645911428d9be592d90bcc9e37de504e3b3d7f5db08eed99408310bd41e31337f41a24ba81b2bbc0592fa29f89424b74f9f1abd06c0f9d7b80ec635e88b425b31d6c75d816ed71e4ad26a8b3f4077387301983b771a9a76356482d5e3d12510760114c7012437ec2a6e9125bd4a688b3824bbb13ee6234be351f9b9cca334688831db71a19b143540bbf125d65d28aabd8961b685206024bfe31d5c4a32499b580f75bb10e2ba52f87bfe193380b56b52518ac85473dda4f4096c4daa1c086d565ad2f6d3ced6d456d159ba234cd73d3e64e8d9516991ad94e49ac272e396385232341529facb27cc0a170179cc0979c5e7fb0018a0ac1be4723cc065919df2c94681f13162b455cdedaf3ef05cfa206b28eb481be5bea8311d33934c05071236f4960f862986aea7687089f218286201ebee4b3164e7cc37d16daa82a65aa88ce2f16aea18036d5b09b48706e347165637a6a2ea93205b0a59c8799acdf89c3580874bd6e8b568b269c94fa3c43474aa1e6e345a685ae3bcae7c7db4563e936b87a737fc26097a348b43974d2b53f274bc9b49f3c9a78cec5a36f5b769748ada502b662cfdb79291a6e60fc717882d8bd115635121ccae61cd89fde52c53afa3032d6e8e5b432bda16426187d055c3564de844597aa8e63af73e0678bcf87267c4dd59c9d6c5318790ccb41e3e99e26b00d3a6400fe3d29d677eac4ad74f5694e8b4071bca2a88da25b566b4d46715e8b3447bd20c34beac451833c73c9f6efc762d4ecf96b46e293d34f1ed01268cdc370ef1e4e25fb22539bf32143384ecd4a4c7f8fa0d2f6c62774fe8f1da3e77e3d1e5366d5d43664677281c819a121b3f8c1b407884b118519a5dc0573b650eb7757382bef5ae5b7c30b8115af03c5bf14e833f101f339c1a10a00cba9292c15f0d03d70fd59c48949cfbd94654de42673cbad08320a5bb0f1a11481c119c7c811ab0d524b4b1127a124d4903a538c0512850df0f5f7a914ddd63d5b3f75d7d27d5bf32381f1c96af223778b58123d766782ec8274665790c83d8c20722829b81605bd91564444dc8c1cc4870fcfb9497016e65c48b5e7f63f701e28ff1206483873664ab1f6844fff59b69d7e9996f603b487b9461b5987d6bebfc1e7b72b0df21351c5f71512b26e0968dde6333951e6ecc0059bd20f07f68e8201137297ac8a6d63a45803319d5e0854cacffb8a10111f8c45e09f8bb2aca7275197f3819ea6b4fc7aabf1eaf1b752238a645fcba355b371eaf9dbf20bdb6e41b3ff5d6aea6e64420aa550f0982cc9680110a5ce144c990a66857f34a9776557be952069ad0326f82e64c0264534359b38d6a724285e1c05ab21ce00c7b7b78525cf8ee8be7ff06f19b7813f1b826462392be6ff09e36baf00b80e5cad420d13e1a8c06786d5d665fda8735e562bb8cc322b4038a6afae56bca6f4fca91d29076d417050ee5f5f6842d654e6d135f097383eb6dc0c222ce20b7453ee2680c6894b9a3eefb5f71b77b897c0a9d1a601c2be0debe3c9291fcc20013aa79141652d798ddb98ee01503153da6f370d8aecf67b5f890b63876231ca2c0edd30854892ffc337e090b1fc038e1faca2c4012293ffe42dc2360320ac0770d677e6c13d7230efac6a491aec15bb6414d936c4224723c7d2106ab22dfecfaffb49a44c73d0b627f26a8bdac4867b8254c56ae2bc803abb2c789e69f774b540dc76e61cf3d343fb33f79fffe8ac16676426a2ad6ab245826b06390d0d621ae8b3233b41a8bf851a62124ed65a8832dca2c5bef427b8fd719ce84763bdd5191eebd7b8da9dc069e09edae2f2a28873a5f9b5e1690a50d5973bd9ae8ecf0a152b9fe673893cc93e54d90aab8978855f0bdfc17b0744deef19f0ed0d4a58aaac87f58ce6bf3b70a41656477608f8dd92b5a28d0e4651148020782eb96e5ae3a48f73f8a17f024407e59f42d4352968e154972631fbf243be8c7db159503df83c465b5cfbfa8222903a1adbeb00b9efd704b71022d1c1e73897b231d472e8a006d1d795a11acbe3245221348a6732cd6e1bcfe03564d6253448962ea093dcacb627432be3b4086332a2c3b1e97e1cadbff37bbec508c6b16f0d4ea1277d426ede6ddce804a2babc4adb8964a8243e2433e352b8d345aabf7ab9f961d6f1bcea9536cf844f0de63035ee980b0ebec22491f2f1669c73fdff453028b20591cc88cd8239c701d5ad7c6cd5909c9c6929e3ba987613ff979daffa228798ffdf9daaf2dd0f1a57cbe78da8728fb37180d4bc3397e74775a7b53ff79548d96e4a382f221c8dfb7ffccd3e482ac91adbf82286660b1a55007ea6fe3544287b7afe59d3f92b0925a7d85535b2b0ee07bd64767208e69059c25c16ed1e1880b3c4ea7b52a718c2ab2da70192445a069b5f2cb64c22f2ef894cbc710b2efbaa9870c5c8f3b4a1f9ce1bb38bd5224b6d7f6a917ac8004ccbe080e945315dd6a24613f0d47a203ba0052ad4ed819fd80823786bd94c654f8125aa51c7928a80e42cbe4aaf36266f3cf306942ecca516fef81f878e52ac50bfadd9661347882eb6ae94e5c0cf8aac6ed75db5d1519cf9e7ada6edf137a221eb42665e0e0b6c70f5de96e15122c07b9b37d01ae869810a17ea7bc1ebe10b4d7c2014a2c9c22cc0e8fc476955b5489161ebb504793f8b6f71c9d8b0d68ee916b1954875320f340fa51b99603533db1c8125f5151fd8f2086ec969ac697dc6842f31e006c8796ec2e59cbfabeb3df9ff830d7ea2557e382b43037ab5bcde5fe51019ae5170bacdf9e9d44aee23b9d577d059ab18a5ca71ff702354bdd0200d9d2ab093f1da3d8c1f14a2b52ba7a43c793acc026517ffc23ed617d83d4d72ff75cb335ab8ddbdbd10ee2c08c2850a270c272698a8086cb48be14114ff26823928133fa82c1c406a6cbca8ed5c09b8404cff868f9a9d5a4989350fd65545a3388b338ff6b100612bd7dd06449644fac69e6b08b7eb436377a7924d787fe381304cc50fc6fde5fbdb4f5822b7d5a7019c55c8da0d937ce5a3770b8e907e2d41676ef92ce1adc1b7958beabe3ab0bda46183de7d9dc675edab17baee6d53a9e4cf9e055a220ee72536dca81a72bbc83cec99f1277bb517a6f58c084bba024b42205720309ec1e3407b309320a627e7559bce9bab825fb090f8f7c29e2dca1e398f504ac9278d38c8f3c3d4f9a87eed2f7a1b422baf84036301691e39435c66d60c2c6fc1028326101d87913c84f6ccb8c6bc5c40bfde83720f7938676e5951ff94ad7e00a104177f55aa63a2d8782ee9f6e0fe0d5ffe904ddf5e137eeff80afd61795b4f642687372acb40cc24e43a39410336c31a43641f7fb3a7ba2bf76544a03ae4420feb1121228c0c71f4c5940869278befaf76bc310c020bce78f8e1c47873fa1c9071cf469420420f70be92763ff2a1b9010615500fb6bb8e5f1a1bf0acc0a3a70e361b3e9ad15ec3291ed561d82704629393b86d0c3f2d5247bc61769b9f98c32fb62af3360eac99e053328c1ea36c1aeb2bd21394e51454938793305a7d0301a735b7d05ccb98ccf8c579065c22a9ccb14824a714f46630bce722b9b86a1b75812c779e98167f7b799de144c9fbc3254ea81da705e88adb3fe0dad0421217fd9482de82bf4ad0de74ece39a604ccc574d549c1ceb0dbc866df3aabdd857a94d10b546b7b418e4341ac2a9173fbdd68f6ec3d771b3187545c5f70435f4652e710876d72e1c73a089484b319d720c677f6d5128a912a9fb644f0ccafc6a0baf081d4a7ec8852801a2564f23fd4677dc6565c7c2af8f043a0df8f61268a2dafcc1a2a56c36acb21b06c4f3d4b15d656e696d7e4afa29929882a019bc5c37ba75793323dd4b84ab23396d00cfdb373b6100f12a87ab11935d57826a09d4be3fe58f9324e0f8d9dffd0d4bb1dfdba84e0c850e6aa2379b4b97edf1353e7ef198a00359b896d1c4a158373ffddcb930793fcce1d99c32357eb3ca59f75b252bd35e1a06580dfefe6383da14c9624adc7ea037119a7b6552a6a5869c26eba4856cf6b10d995af9648f1f1c28913c8bde20f6368e20ecd175a36cd21909b078dd1caaf6e404b3ad6acc1a97dbf3694228cd09f6c172af9a31b2ffb7a5b39e63ec788c0648481e30d2e3c882b9490d2cb4e6fb92ff85accb8d708d6e975d1ae77c59c69d382f457f024b003fc52dd45c72386a3f1b441cb28e2456e3709615bb0a036494edb1ade0bd46d8fa00ded1148b277cc69b712924ef793ecb2e3abcc96c383f38b02aa350e4887361a449ebec9317f72382e5b3883c98c3e551add015c13db323f2d159be26c5755da451f1c335dd2f78087f050094224d0defb178bf48d11f81b5210b473b7a506a3e4bf95fcb4490dbaa58f9f736e1eae76e28f6860eef5b2817e354b1b9c6c508ab009c8d8370be063c26ec9014f4cb321e75df98cddfba9cb6d19b4ae786946c058570077c6ff8b65f1380b5cd4dc2fd0e44109649270715641d12216ae7bbea522fe4c8f00ddf4e0330137b943834386a9730f30342d3779edad2799b49cd7ad6f56f936cae9001f258cf3fd296bca4639cb537084c8bf81de3224ad1ff7d3adc7b9faf5fae5709f5241ce65c88a34ca0d2e2515d1425358a5b1e21175fd5c1591158a14ba2d9d8cac8d27c2fc695e4c5d789483be0d58cf8226bb3d46afbd1a73031a34d162775aadc981086fd6f7bb5656bf83bfb1fc30a82c95d9ed517c68d55a743666bd12fe567f4e127e57cc039aa20451e3fcacc95fff456352ffbac875253864402e7da14bac9278df33088ee2c09191c955423638a1d587bcda8334d3cf5d18601ae9b16367c2093ccc0094b8eee00f0a77d95d1ccbc29233ca243e3fdfe0a79bcdcac9ee4bbdad0ae32dffb4cfa0746221e65a9856751a92bf725a64e148df2427a75a27f920d595d1ffa30f61904dbf51d2aed56d742054e5981fd66e1a4a2e056b26d444f954fee0a17082cae1366a5049455e81b551dcccfd2d2a47262cbd30a00c0121ff4f744def689cbaff486444d76711824c7d69a6cef44535d7e58a1a4c097410ef9a959a413ad481ad251522a5c102c45e38db7231ecec8bf298a96ce250e4a5743e1cf660fefe1c457ee57f9f8bb7b4a40d7fa9ade3b6b699bbfff6de3f3223d7c3e2916079bd3973f1002961af24054fe3cfaa35610ead599f1a5a13aa86ba49ba5448a1a98c45ad2ebabcda93145e6f48361e4659b7ccd0744a2cd687c19be7ab9936297b46ce0fb45c8756c3e9f6d9e2cdff61a17454711968c3ee9b6dfbb6f63efe32c7d67fa6494769c5dff35c8c32a50a622a4f5d999663fe368422b1441bb969f015dbb27ca3ba6f2e348a0df517d8aea97a1b560e362b5505cf1bb3fd4a627ac1ab17cdb9fc0088a2fbf6035a8a188e5ac43ce6ecf36711d14049c81ed00fd4a68fd08871e809b258acd7ee82eccf19a7eba231dbf7831039fbb0ede62cd6379018c5fc8762e42fa2e980f265c4f77b0c8e4e825218d61a30ae334bb7b885ed2ceba894cfc60c9a6626a1cc92157dc634fb5ffe07b858f975e3c238f5aed7da96d8d7650088eb548c1e79edea71f5f07ad7fa2c2f2baa4173d5640473b816d819071383eef3481bf18a12cd80fde8e996717e0a74a73d9b64553bbad752a16f076282ee5335b0f3bea6f42223f0ce9bcf981d6df96c0cdf78aaef0fa3d8b6692d8006bd3981bd5665d20cdd1e884e831919d2c93bc3147c447040c94fa86195dedfaf2f0309afa58074ef0d8a467abcd6c7081ab6868dffd45e1b52e5260df16d0cceda282996fc6223009c5ac534adcea26cb9f794fcec0ba0b61389eff529cf3a540a2ee1e01253167a69563ae6fc8d16c01953b53ebd492bf48d93a65d698f8b1b9babcca84e1b4317188d8e18bfc128dfb1634a4839933c56cb0fb73910ea50dc2178f21332ef4782a7fe40ec08fa6981d5860810123abf36a180929b6c8f7f06cef6942ee5408a8e43f8b1aacf7bdaa0970d990be97a5942791cc3b67c8866b977b7af7c68e2ad5f47e20204149bf38473f2cdb0cbf8d8f59142c61d619a2aab60cebf68b17c839eb50f2a4837807d822585d0568a0a033fb587bd4f15f6c90e8617dd23196e272155e9040ec354f804fb9b81cd4ff51a336e47bb89d8ecc6ef2baeff9443d97bd1aefcf1897a9304270cdd566e6bf5a9c610aa1b1192f58985ec448aaa38a81defc2e523264de8d4aaf1d49020064a3f5117d9a9546973ee0da706865db2443f9807f533f9de5e1a6e50a602b68f6f85f17746b70849a425f3c432ef498b74888d7ed4409a20e28483ca27669b5a179f8d18bd1e799af84774e5c9f2153cb6510a27bdf24529489acef4e0314a3e09b037af9f5ba1fce3ec3f8fe523df063ec9626afd899495a5bd1582a34d0385a713be894f740a38bde9e93170615b12fe7a202707783af08e0a39e2bfbdc955644697575576ceedffe3b1322f15672d61a0a91ddeabbc104897a6526caa77b37a90ca73cfc7404c120560c589d964b54134f2145437eb2b66d5bf4fe7e4469cf1a3b480ddffbbbc1499fec6182c5773f2861dcb08141351ee272af87dc3b68ce745a4441b310a161c86a01e83cab9694fb975119c2a164715d52a754fd95b1183117cfcf6e6c87587a171363d3a1bcd71bdd5685cafeebf058f3ab202ca7e2b09fa8bda4de0091fa1570f22759554e2b98662c396313eb45f16aec8cb60a3333604f00311d53c9180ea2846f97b98d5ffa673849ad7acfc58816a313476c0687ae29cbfccf4b0aa5d95f88f4bfc44551cf022f7c65d7dd2c639a264633dc907a736e4b48fe88ee0d695adbba1753adbf44f7832a756e8be1da25ae651f98033686e19f2f6fe6c968065dc126a2502ae958d07cae743a8809e9988f454d17109c37f1252e00e3b35dbb509204a9fff468a01b44a306e56809a67c79ef3234cdbffbe2c562a70e69e9efe38fec417975c823a0fd9007b8c1ca73cb58cfb0ca9de723d9425003da90158f7844728cbf6a36039e4c4258d49164fdd2f82a15409534ddc283d7dff60c2a46e6eca7aceaf4abcc2c717ea8a655844cabdc6b910c13c07b46dd25a0c9afcb3f7f603c9fab0b223334663df3a949616a00c9c1f01b579597617e7f8c2cabcb51e47080ac64746b4066f4ab6adbccb2b7a19e076daac4ef1fe1578c943c611e178e450d163a29b18e7d3a8caedb133e48be1d8093a0826ea8f8f77d035b6a93118a4b3c4ef779e30debe74217acafa998819f245d9aaafb3c07cf112990f99a72ebc90b8d4608b04ab7cd29111b8de6239d79b62e6cde9a1c0e1183fdbe04970f754a49140cce39d3b14a3cf459f00723bef9b5ba3004dea609230a7d9650447005d6f7780d4994ff7d671ff058f7af1dd529751cbd64e71fec1e69bb0813e1a1d6a75ec7e5e11aa42ab8f9f8730925456b66fbd09cb061553fd582308f9eb06f28399cfc4e563f8434be9a4a0852a34d1f17f34c1b64e7937ae6003b964093a6f2cc2688d4ed5c644d5ed8363652a52d2689854f483c46529970531d422e71bce024930de223989277ccc4cf539927d72c6a2148c3de62e7b7d0a72e14299b00b30ed4f7378459fa5310312324405c82478c72472775fa2345bd619b70773559bd6c012903ac8c0786628ddbacac702994e84fe5bdb62cdcaeff16ba83bb7a98425159a6fa3722fb0e9a7625f7e5b0df871d0b399edace948155301e5d827df5b8136e1d9008afe47a58ad4e048e945b740de31cb9be0561415347c74363a136751d163cd9ea843adf7da787dbc8415941b0d0d2187220bdcc8033a40ceed962cd3b4d4e389dcbb54ef0a4ebc5b3bb3cba4aed2981fd43406f8a91315a9776d0562861e3287d68a7a1b28b2e9fe301a8579a49497c15c1b5c5c16294e3aa5bd96a87b407852ebd67049f9f893f69b1830853d10f713f7e0aec7dd46bd9045078efd791e747ac951446c6e59384dffed3ba2219367dbfa3425b9582d81edc2c129898990d4eaade1ff0a540df694dd22414c0dff0e0b9edf8b03ae1610d2b85a536e475795235eca6ec66370f3d69d1deacb89916a939ebefe2fb5f57683f70260568d8b9ff1ed427f6ab483bfb9ae7782ee7f4de83f08def64b85a63661a1169f5b348ef7bc3713a52c08863871d3b39d40d07e4d4747f96b542e4256a71bc78e6320f07b023e7fdd1c14168e366459105c36a1f7ad966d4cdc366381f9895bf02ed9c35f365a9c74ea185951abfa5bb1765cb3afa03fd1d7c5faad8c84802e6a755ad27659b0b6716222e1a6c0df4a178f0001bb1faf3b63f628ff01e71f65537060165ed9adb938ce02f02f4f0aa1ee8b4d00be009929c2675d98e24c2f587bd08ca778d73423566fa43e0aa91cac220b4246be11e1de8fcb717e6d2b08c7590e57a825281f53bce1c24e1cc91696445da98c8e525aaa2a0301bae32c9d0afa55083d8300d9705ffe9d17f7b8368be895a48890edc8cd20fc3aab3f9e720391c87bcfa281fba3ca0d40c28c595bc5704ca67845b20ca285451382d8b89a90217b18dcab8d42280c07d5c5cd3d3022229ec95a39defa7cfe55315ab04c1e95cbb4f6e9d3e6445edfe2e00fcf202a48f234140e37b8d3663cc70895a0e52aaa089e3015209a17861fafbd0d407701a4f0528f5e963697aef3ce2a28071d92cde497b45fab62d9a1320f9566764ab0ee6ec889330f63c9662862804cec070f1841e380f94e36dd87d28c8aa57a90b7576d35464668b799dcfc9fd0b2bdeffdf3c5a5e86898656f4da16a1862359bc8148684fb83117c029b6cf3996d31dae8a900e8bb30a41acbb4a171e335e40cf9913bef2b7c4efbf995e91d42ed589075201353078053f4a2074731b594afe99c7758f76f4662c7e5761c52d5555f33025072c586b5dbfc62721237385b95710652b37f55fdca59ff2f8efd27c74b56d6cdcd30db82ec86cbea6fbf869a3f32c3c314de8be4f63216121e503636b580dc09621252263d13523b22054563ff89ea96286ec377f1cffbed1caa3350abb758f4eb264fd3828d9ad628a1258503937ec34158ad48b7ced1d2105ef452703543a87a9380ed5d13af007983724191ca890fda818c7b2e6277c6d97fdfeb367b92ce96f1a30f2e37f8d67334d7e64aeaf9cac0f4f15847f42355bf2e95911e0816833825222b4800fb44afaaba0e53f257750d0637ebe6b428715afa5aed67246d20dd1d4f20026af97cec1c6701367919b04dfef9f6a292ba3adea6da4a58410b512dfcd369fd2764c4e1a241130263dccd73041135d5581498200371cfe31d390605e6f23c0893c003e9ccbd5aab0a4962396a8593e2184a0ab0701197064d2b9bd8ef5d039720788fe1f4e2571ebdc3ee86ff437feee4c8c4147dc55dcd25a529c1b54cbd318c68c9444460430fcf75c6fd9360048efe3e882480426fc3c3b9461f3c63c946451e002657de2d55852ca89caa8e26d035ff8e5635b0a5415e19d0c930258d67c1ef85eb075c66a08048d9c6236d34562dbfd07861cc2ee4d203aaafda87f41e7f1fc4504e6e329f1d5ecacf8f4d0c2d560252b1cd7f0c82d0e570694a1277989d32d3791e24a79bab97d2079ba0de372951ddfd9d424074862b605e84b74a942f94457da98c17515f17013a263e52f62b8e69a301e345469be7d0f8d3cfd62b19f2397784d7ec7fd1a5fd5469e8f18e5abfc20a470c7db35e374e94b9bb4d0fa6db76f5ff4b6502e5f9360b7e2d8051e416bc6eab048bb441d8bf0727590dd26897eee3f7db01df74986c0dafa6f65fe27ec1c72b2513ad8bf37a909e46967f3155d5c7b563441b66e5ea9ac80a45fb59d4683e3eeb17b0170a20ca58e37b277a9a8f6cbcab7c88d68730c642c0afe13eb076c888473a58182d2a21ea212fb585b7925ccd2a6917726a99f61f2f31c40a45011d3e0504f42353350e0775e575bf8e68fda06d8df14822e9f95a0e7a2b140e676444a667eb5ded803b1c64e8b0dfa5c9791e5bc74649c943f6a49bec6dcb7731318bca2f4ad1520daa12d665dc61aebefa325be86adf8dc5edf400b18cb7c6dda04f0ce230480860d6cac76c862d4df7a1aa77648559116bf85e3dec3616997d8ed74bf289ff5866916420e6cb3c0d8c5f3b81ddd542e102b95aa5fdc4eee828c8f72cab49d6ec4c984795ec911f1b79b3f46ad23d05ffa1ede7d8cca717a06342b262d9fa98d34cda996252c39d4e8d13cca97f34060aabcee5e8f25f78785a665b738a0f52432637b86a62e478b39117e36e8284fd23f69df77074eb7bb141a86330928716639f1ed019b6c95e71b7593fa3f448a55d96b6cfe1496c7a9d351c9ffd25b83527ca9d5e39593b36f25045aeda19186c29c0a58a664c7b059539c8fd68349a310b5840db08f422e34744140cd05269541804be146e0b1066d377bec1ae2da9fc44d03d26c4cdde6a85776b35be0c76a897767953666587a5fc8b72beb359c2c3bac1b4856f03cc2b06a413ca1075f92771292079da2620214826bef412882259cd3ca29670015f045bb34c6f37eb86896fb497d2a60abaa4e01859348484281b1c9fbd49dbdff6a9df192682aeec75aa3a9aed2f775f0b0088740410b31d91a381b5383410deb948778923efb8d2b1275cc3231120fb4db8c8e4139df5e408bbec96e665b55138446388094fc1616fab4d87508ed47e853f3db726570ec60c61f9a0bb3f053758a5459cc6c3da13db0f21ea9d28fbcf28b201c0f016acc8dab2b571c0dde8e88e961348d3714069239b9412b703ae4436c3ec200334ba2b6274654b5c8984bb6001048d47d4bd44f55b54897a66ae3ee5137df786d30fb3afa728a9a7cbbb923242cc4601f4848018ce4e77a423018dc606c414a78de3cf5dd0adc0ab6d3f050f0dfe7dd7185b43558cce9b481ee1bfb2a78798ec941f331394b5c9c3f73e4980dab11b17bbd1cedd87de9f1f448196616301fd79d4712b6e0de5a946a1baa07a6efed72020ed6a4b5d353760e7309950a79f30c8ec725147112f16dcc9e2c807022470a226025b03ade58dab0357e160d35695ce640ae1ec3b8a5586458aac044c1f654280712ba69b9a2ebb89a02e4558a515bfd83b37a97e3234c858f3756a70af28db32c181c8ff7bbe6eb855880e52e2d4df1ab91edc67c93a45eac6ed47cadd82f47dcb3f0c2325127fef47e84680c17da7af79fb821d5999e0183f90b5fb2fca98cea11da6e0320d56c8369a70aeb3dbc9f2a150c95c1782d3be5e87dd78cf181de30ea94777a61538636f5318bf51bc43f1ac5a4832cac840b1cfd1116bbc0a3396393c2845b00dd36095a166ab2cea893effa5496920bd5bd71525583f30dac9cf51a82fcb99fd9a8bd9fd0861b4b2087282ba9fb7d93b530f9f4a90b48c0144f482f0b54c30df361b3430d62f7e2b125550f3c07e5dc0e3363638238a069056a30edbaa7a40dd4b23364cd0be2f181ae73e719cb8f2bce207fdaf3b9ad985f3a62ac388333c167e6e29c089478289884618f1f92c457b95957bdf3be3b1fc761c4fc7d7dfe601adb7e5584907d178849c38894c130bcbdc84dde4ab07a833292db5fd4e9bfbededa9d64fc7bb3a8170d5cbe9923118f106c3a3084df57a14496795bef482660b594abc83afe7fab232e6628a58245d7ef90408dc72874d955f2f068a1d78f6703e2d21bea15b7de2f99a55eb19e3a059e67507c889eac3ba41546a28dbfb74316de7cfdeee7de988f2ef8748e2558702a74bc7b2aac27e510cfce8e307b7bec4a49d94a9163ddb87f0ab08ee6c5f94b53ec89360d18d977af5cdc50054937286ad15e8efbbe92c05e50d50ca34ddb848451ad7491de9ac05aaa3e04c0620b8a6567c2b6ffcade1574400902deb810d5f19f1604dd4e78dca1c6abcb55c1fa53c1688d47965879dd4a1a88aa1090f68704708986203c1d371cfed8ef8672f358dbf52b3e13c98e49e8a983dbedac89266cbbfa15f0f2cc5e4637a546242c13b00b5143229ae947fdb414072ce413ecc0e07473c9c78ba7e901e25249b894e0815693d448927aced8afa429d1b1f895a5445053f108a5346c5c112e8674217aefcd8b421a056c900ac747fa54e0921e8badd452025132e5df03512e39ba715abc327040c05c84813b8733d3e5af7152f196bc54ccb9d818554a50ef75f60c7e1e58a2f354f87540b921218ba047d80a9246cb32c9c923dd54b998c66ff7f0d2452f34bf1f21312a93f4ac7a7123581b46cffea916b4ce83b257dccaf15dbdf1cfc22e33277e266e6759971055c961fa0c9d4efed9e307df7eb6cea31944888361ca794fc1dab74583a9f629bc54c24a2e7eb974878b8ce664a4cb741ad28c734b904b1633f07b22b0e81437b62f8a7885679eae8a4266cc940d179242c58185079688f7b91d8ea1d82eb1050d752a993ac00f5413cda2d36774414e7a6495cfc24dd97af28ef89076d1a2bde93dd3206e13bea360c5f6429d26d1002fe0ef3e31319edfcb57399cf75ac43e24a691f8cccbb92b6c91fa0f64d1b834c8a08dd7e96510943265dd53a48eda49bc045cdb1fb2109e870ce213c70963986f8ba7403b26a081eed519b54ab9c519ed0e4c24a16fdd1f60de0454152fdda9d6150ba89ba43e737d7a2ca0f773b7f9f1fa4ac2da50907228c2639b049a0837c3956c218ee2236abf27955ad236bffe63d7cc234dab74980345b89b4a6bbf02685e546a3d11cfceb1c23c8eba559fcdeccdfdb4c5a01e4128c70e463cc73841f0b598806a5c9c0e64a6b6b7f7504ac470f66bf66ada5acda12f6ba3eada387289b97e9884c192721e298372b276e5362c04b4fe337a38ec84de359a8e21fbbd4cc547763aa44671470948d668b2839fdaf31b2313e584e6010f99e1720faa955e5ab12195ec36e323347fb353053441d9b94b89546aa434b7585af2a8c43b0fdf5d4a8983950e0284cb227196ac34421bf8d3516841a411dc1caa2dbd5364b36e274cb14ae03c7eab3c917ec66f72fe0cc679cbc55f5fbb5f7ccfd943653c6208bd1fa2e91c82aea579134e9ed68f08171676d6c2bd17f89cf846aa5678a1309c18f751b2d16db0e63e0ab74c8f70f3bc49c4adef64c2db2b6b01e52872eb0aa56008d9af27aeacb1c61585ec94cb63aae68b99276ed9f11124ff939fc79d70460fcbe76a3d2d92168d15fd9ac654deaae5384552532241c7f3690f6cefe52bfcbb0a4b578f9f0a8ec8e9badf8c8b6e45c4968e90edb6c7f4c4f11ac5231ebe63e69747e0116382d412e39a328eca4a476885c863b00c827d3f0aff0e9a88910712813781604ea2e4644634848658186c75a7e303ff730797058e479552c701ffdf5912c5a886c9004579e8b364df1ae7a85e288f5d675cd061cb0da6612d7decbb55387711a56602536f451df7bcb6569299edafc173d69b971ae1be6110549bc7af3ae81ba58e4eedabdfa695657dc193efb020b479074c58e45a1d13c6ea4f0e6df146bec9c8136f8f7490da2be77288b4673f3f39c867f6f2eea1907eb4a14c2e5cc87f0faa27465ebc389ad5a3bf0be1484654cf3e56d4f9be408a11de86ca0a050af6f4babacafdb5d7ba68e201413e9314200bd946fefa4d64bbc77b8b673712739b4620db5f4bf5c5bec753485cbe725296b63e52538a056d28345858bbf0c8624d72820565af072a6037647b6c5e73b607f6b4444115b196bf446625fd7526bbe980345c566ba2fd91c7aba92d4d83dd76d32cc27b511371827976df901a40e29f9cad4f0859a31f0ba44292acf84aca0373c07c61f61610702fe33c2c7d100e508e6dee876733eeb44f43cfdf150fce70b052f42243e04b12a99fa295f25ec3594152cd1cf7908583b893d438e1231c6859b89e93af7c129e05817f014aecdd4cd2c2d63f7270de2a9b35aa80bb33b4770c295366f0a554406f1126e18d9855f1d7ec3d8c7f7de6d474c2815e15fa3e41c7b53b75400357c92e44c51057491e21e2587447b196f458bdcc34698600b1b1345bb692d4746913197c57e5055cd12e6019d6e600b3804ec39783c24c0bc62e487e6531fc128ccc5ef0b712db25dc562dcd7aa97bca4432abf66961b4df163666f52ffe1982aeeb22f2638466d43adfc6700ed8ab4e21ad8d1fe1d76f262babc6b0886de2877079ba4a4e011ae9c2fc8837a8a2624f37b04175f35aff9e399528c98239bfa7a57876cfca69f12a0c6ac46aa788f71b721ccfcd3c251d237bab02af352bfed9156a3a94cc38fa50a85db90e1def0a617cd02dfcf4f82dd7f9e7edfd00978a752278acd5d6c7f1aebe09a08bd3f1419a113c0ab969641834ecdf348908548decf60deddf0fae387b7adbb3ddd7645e3b1fa488168629077f4f5dbd06b0d2cea6b2044614c33eb62d256051b0db49cafe712965f481ba643a327b86014bb28b2f0d0ad5a447a0b385136f98714efa67c7053aa578fa498dceb12b0557d9ac0f498131d61a71d1dd79f920ebd90e8d9ab039545491dd6c97c12b4c8b8b6a06424cc0d3a262d8b4d7e05555facda0af3c9b4a4cea7a4d31f900896ae5985c03434ede4c5743ce5478aefa1f3752b93236338fc8d48269abd4c45da0e4341b11229b28f48cb389d284297fcfa1392fbd4138f8e88e494c3d63e55a7c7330b6b4bb3fc5b2ef46fcaec10f8bf4842c91a162f7663bbab3a8db9fafaba39271210a1587ac998de8c9586dfbf734d360b443150505372330e21f089325dc1bb3695388c9408b6b742b175f870d6b09785c5744557444edb51bb6f0120aa8dc62c26a58118d94ef3b3b765d7d95b4c2d619c68a0f75282325f8234c1e4f3b565116dd8c8afe945a4e09ed1de2a9ce4f794dd1853bcf144dbd215d9ac9f601a09e05d5a0c8bded7fa2672af93c769c2e150a0aa1358084298d1233ae24e9279ad0f3d0332c7785089dd19ce6917741bf2a817a3dbc31e5d47fb275e9ef13cfd0a7538439083640516ab310a3470b6ca987d550c347b8443accbc7063bf778c23ab1e710f13fad07950d14b5ed7166921661cd13fc31f34141c11e835230a290b97e8f3b7c644dd3b41a57d9c38a5d454250f65c1ae304699bd0e37b384116dc684ee21130515afc56ba498e3d1d9e53e966b397ec16aecad01c1fdf0e838e85b6e403bd63166a6fcd5493c7c21b0b031bb100aa602395d6d44bd78c7061405f708956ef5d845376b5969d787499c95dff30da23a9309b41244420ded7cc67f515896eb6ca0cf3457d905882ef4eb97927ee9f787a8a39babef081aabd91fd55563e80c0a01986f748fe849e67394e31e2f98f2f4769912ad04ea40e1bae35c8305a256d2263a9a9eeb39b7b7917d24756038081dcc2ef2ff7698328933f23cc45c26e3179c45e00d44aeee32249070645c58ae01c5e9d135e6b256d76feb0bd9a847399a10851cdea05c2d57940a5023a3858da9da212643c5dea925fa39740b9076b597f3397cd958ac1ac7237db9c0bfc2230e32fcf56f5b6f985933ddcc1e74b79294a65b162274e5adfa89fff84e7b43c209833390f13349509d000a2f1d6f7b22b57d60ef5d8ee96edd0b11d578d9914d8f02941867c7e44042c8ce634b1dc326a978f10104fafbe260656a498815be6fcc220b1d8556e75e94e228983f2b2872aec156b558e530cb66416c7fd240e7e3c1a45bfa5a2ca9490144f33fe75746636db32354efcc3ec9c377ab0479ba6f23a3477fab35b307824a8c87b59cc7ed786202e08a5c9aa340e05a52764845a5cbd595ebf70168e5b6876afa541e8a890d34f84d68a3cc931e3924aec5878a347f0c14042ce6c6ecd0a775f1cdcfafc6bf703d084d9c70ab2abb862bc97c2c042cb28377a8236615265d5bbfc9344265dea5180e37d0ac73f070f7e2fe2ada0178d7cd40e1915c082d8bb7a570f81437a17afe20f824d95a52b9e57f9bb5cd50773f0ea06f673a4acc4e2be015f0830575d76ee5acd18f0e3fc7ac973180d56871223e0c9b40f6526ea3623e9b1b8599d753c49ae8a559297d6c5c888efd8364b962e0e1a05f4290096583c3c32c30e14a46bb6a1a8d2647d7674d34c4c606c74cfc676d33a6133ae7d57a8fdeb865c5d062ef88d90a02fd52c873c529a92fa5a380f9478e1ea6e0579bc13711f3084a30a43c3f713005e3292ac6a3b14c08bd033ff571a89871d623889a80d14b68ce21bd9542e724cc6b17b096f2a5be9475ea061313e343a3e1e8471bd3fa0f98c489985dd611b590ac6f2667a79c0acbb12a69f8faf2a82072cb3a7f212f6e99cf08cfb89736a6ceeae93c629b08f715f9b01df8818b7ebadbcfad8c7482f4fb8534ac3d45690d40f1199ec3c833b04af61572bef91494f663cb54d0117eaa5a48de39d51b0429633bc64d215e0e852e10b8634f64c1d121c774a569b8c809785dfa8b0df039573f0f326c58058a228a915675cfd3295b52f3a1cdab4d3a8aff27fb95a87f39819e9301f11dcc0a3daf3a9bcb4167503aaaeb137d26d0fd8f357150ea777a579c335616e817f43ddd9371c99ae5e9af66b62ec3892ba72dfcb281897478c3034dfecd754ee19fe46ade0c7336c9060f1d7d753d7c9dba0609f19d41938b064bd9eb17edbc55ce495a66b046f317cb114f7dd5ddc745fa2169cad61a6b3358ce9e9e26331fc03204acf5150a9b853723fdafa8b05d694399342d6e2fe916d4822d592d2ce871bf68d251430ca2ae5797019f8df6a8c0f7131756a4beec6c3663f325c5318e3650552e4baf84b4de2f2fd8430751d4d8c3224430eb5613e8f4869308afa932bc035ab45cb28be00dbcfe6bdd04da31d04680a013e9bbe5403b4378e80ab0aa55d840510fa9cbf7fd07341cb7a4d3d150b59a181484f5cb8606cdd7805be81bd474aabd69e5c3bd232d2ccbab5f9608ed44776063846edc91db16a1b1ac3a07e439dc97adbd3c10ebfb79e3cc9a6956a5a300b7fb5d8d480d669fac6e53302d9dc24c6c7c039b3e0596d8a5ee061aa499378cca88b6a846399e6a05387a7beb061c8ba287e84f021ad76a4eb95f1fa88f6b1f120869a04a6aa444f9e9f7a55c9579d8f34af0ccaf5b25d8c2d834da395a5294f04dcd4a84f542009bedd65ec644956ae8bbdca8814f7578f421222c5e0cf4bc08e57cac8feb4e6053e7d5455ca4851e3afa1a450364f5bedc35fd50b720cd48191bd98825df7c5c6e33a643f82df18b28070239f34427b6a8792f7d462ec57d462c5c16a3046f5b248091ece8a71cc0d0fc292154253c6024831b14d2fc2a1483236bac0e0230e2266725dfe1caa75ad1e31707bb34e42872198c8d46f7c9e3942cb887dabd74dbc6cd6b20172d39336442615187ff6a63928ad07018635ad3c45ccd84c9f723bd7fd4c76cea1fed9a73202bd2f9a1188a9555660ec81513ba7396348f1d8bb68642c1a60932272d9a0930b8de4f31ed0f039fc2ca03b42baff612a0907ebb8e82fdff03be7aad7b5c33fbce8751ab6eff154fc16a7875d5cad9595fc5ecf1b14d07a6578e6d2a95a4db000af2392370c4f3837db597a04e8b35930adcfeb4edeab3a255b55d737773cf6281f04e36eb7773451d016be25e966014a541507476fdb6b6b92d6259e8d5f487e9a6fefa0016f6414c165b654399f0925e84fdda28e1a01d817fc177dd8679123b67204df0605fb1a508edc98532ae1524481199b13459a52f48bddeb7bbbda0078afd596391206fc41f1489bd5633eabf35968eb891f775dae51f9346b3cfffd2ac8c0dc0759a1f7b7f42c9d9783c4316e51afb7b1ffece1cb494f6dde43036d50ab83211ad9cb3a734c7cc280cfd1ad5949ff9c3d0771148499e19e9eb1dbc4d12e815c491c41182ebae6f9c9be7b8dbba89864e9440593fc06419cb6d9d001e06157da5789515b289827f0301038c93cadf7086872e6cb942058eb1749d5651fad14d57f4eb3e808d6a4dae61832d86e42f479f7128c3afc3c0f8de246af901015d3869c57e353a313863010dccf9e77618aefa09374ca536ced87653e849e513d356ea098cebd0006597d7efe1e9b4dc7bf078184f460006b58f993bf57735a285803cc7f5fc401f4a559d62835245ae67c56751165c881b9eeef04ad7dcb92c18ba1e96dd43913fe84def6930a721b2e532423119568be6c36c47ead4b9b52d68c16531f5bdcbc4260da0bd3b63570b20e6c51f4fd2fcc30fd97bd2629d195ed05a1bff3d9d806dd86a6e05ba8d6f77951ccbfd1fef2495650870b25c590d1b2f03aec431064d21c26c94c190b97edeec8de01ea0fb1c7056d9be929df83829d643afb738d6b47b33db7a091f29857405fcade2eecdaae6d0b6a28107a22fcbb1cfe283236c760b4289ac0b2af361cc0af4979452abab721d811c2c7de860cadfa659acd1f9db9310987b3117635e4fc42e911ed37ea64c86ea5fef7315afdcaef1025281c20be6e0ccb2dd87c363ba46aa233407b1efdf9f79f3ef55fb4c7745e9978491fb42974a3f123aec59a35631f5e38df719714b38fbd43023f436b6c3350fb5f959b62206baa66ddf6c041f086c38b6b087cd3986c377f28e5cb870a2257d0aa540dd1401cf3ff7e2d93fef972904404fc0efffb93d56b706b6381f58b260e5d61205f1e9bad5d4267453890164548929a2e56b5f641652662dcbe1ea406e71eb656c02c9304eee3508b29d97273fe18139a97a9d30700d1f48fafcfac38fed4679899596c7f24594e7339c525242fa7adc9394ac0f5de5c04253936befdcd1f5e1f294607de2c20e9873a449c0678dff0d1f73f2b12e18f4566fc1d871658d20cc0b96cc10812d6b681db4a20d82b1df79cfa1b0feb7cb89cb7025d3f8393368f5120ece4e4fafbf976df68c316e7c079fbf1f9aba8fc447039fd776ea6758156c99b64402209a4a9e48e597a7f4a77facb6c8d0e538d599b3238edc4bfc6fa2c89c9bcefd2ae572d5c33edbd14219961c8fea8f0e4184401d06a222aa768e83d060315343d1817aa3ad13a91ee016c3bd5fbbcd7fd2e44153d3e223894a12f13704bf51da124435091f519767881c85b037ec22b45bd7fcb126d8d8746bace9cfdf6ab3f84947362510e79f2ae4d061c1fa39a25abbb0ec27f7b5841512f602ebb12904608bcecd8eb842ec637ce908b249135205f3fd9335030568dc51ab307171aedaba5731a55615e80ff1cfbdd275603fff48773af900fbd68ebf77c6dda8f84d9ca942c62e1f5f4d790ae9440b4ed82aa0d49a5cad7238b2bff49684ae7639362dacaf72988a4398978720725943a446062a640c4c087a1c9f5abfa406b969f231f9828b49b509128815d37d7f3342a5d19dfbdee6d70098f19975596683bd34a4b50021b2186f3c0707c041c3e37b0074e4d119a9992b34976c32e8fa21d3177f614013652a5a7b72de2f9e6c57da28da5379a22f0bfaae300965a3bc08c3ce6b9e437a168bdeb79ad3aac261a77e347f156368b90f0c19ba5ebcf6b9fef38e23910308516523386d7996f25538d2ee3eb648cdb716f97250e4bb83684063cced008811cae824779bebc73711ce414a6483814b062826956e819fc69dbaf124f1b51e72e503dc393a1d61ad8bb04459682fec9fac5b96066bfc55a102a6c9e92c49e0d6e38bdc6e8b0c3d9e1923669e24901451f38776a9bc84f063b7fd7adeb38ca36ced040ff48a2f153b1f02daa21786952cbb82ed095c665d77858a5c4af7e16c07e7813f772429e62701ba0c3667598d0405e1b684279720e1838780c06b8da486afbd9440e2643262fd212e30ba38a1e237b603169c5796cd4f09d84016101a483b7cf29103dc2f724a944352dce50839dbaec85f853f67333fbf12d6f31c7c0d845f3822278da1c051a5a4351540edbc18494636734c4ac1ad9966048198f0c63299af223a65d524bf8177d3c2376f544de7b9f4a0bb692682873b76fcbc15291e49be730e07c718d9b53a0bc8432eed6a1068fec8fa5228542be437697ec343d93c014ffe8a042756c2104dba497729e3944f296f108f5058be5b4df99caf2523059c611b2e77fd900bb2e273c89880c9c2f89ed51ec29277f85146740806e80690d8453be2e7094af5a1f58676b3db988bb588a97776289a53dc2bc1d6dcfab5ea88fe681881bf3b9e15ad29f2897fbf55927d9cc0944e0b7beba6bc7cab791f13833a1235f67ef925927b672afe2cd56d33805552b4437f9d015dcc37be0cf8eb116e0e16dad4cf602e5cbad2a70246f40531cf4780da6d812992b271d2ab8e143d7356f5f09a25c2a120b7eef3c116ec3fcec5ac81c73f1770dac2cee474b54fe886c487f82006db1865a56b0b0c81c8956f2fec5b7ab5a762d3f5c5bf3a521218232bc2e87e51639db6acf4d2be0be813ba661c845dcc2cbd29ca6673f77e1eb70a6ff5e3306cbd81c649530365bc02d53e1d1f6338594aae800c6fa85419a405d310173ec9b03c737d11515b3a6d11c2b3d89447bfba9349b5a8162c2115d96b58d0c8b396951931c8a72327c5d353a91feb0e9ca5d94464420601c69083bc131ef7ca3531a5899805ef90c9f7a90132c8a3b3d7f2d6f67c5290529b7c265149f4438f96f977d9095a3da98d8b071183885d183b69a84ff859d4cb507092d13d8d977779fbb4f001ce8af2bf3e974563d33742248263f7207171d98a1593572fbc42f62e7ad988b01d0ad4b6f243e73cfcfc1e9c677d821dfd4415f2ad252309394efcec9b1dad809a58a0016d9a83379dc734fb1281d3cef7dc28dc1bb30d80820db57a47b0c8d0699ef08cd62f36274f5ccd2f581f927311318eecf95f6610dc10cf63fccb10b9ff6983e2c17b825a68ab4112371e889e0d4a5c730a3b3c21ffe0cf95d185dbf61c6c232d8191e869a1f4b5b2c3b58c8568ea40109f4d0510a0e152213006834802f56bc1d91285ae88886ddf1cda41db94ef3b0b5280d3911908a020d3564263d0ccfdf810b3a88e45779838fdc3e6238bb319f5b16c1c8a336c68e6afd3003f6325ccb69b827a13c9cc97e27a952c03b14a9c5d33533884e33c6b4027925b62d2c7a8b6a77a9f4bdd086533f5d742ddf561932801f47dcda98e6f9f5300628c6246b67990c1bf9cb509a387f769cb2c358ae94ca8c9827db63f038c9a2813f0a72e75ee11d2dd78fdc9c20a749217c7a3eba12257ccb75fc0400f03c05d2b18711401fe33ab8d9fb547db157ddfadfd654e0afdc774462342416faa0d39e49d37a7656a3ec3977ceb88bff0ab6c9affd7aa58036b8c696e31a246566063e6d4819288b5e1a77c339dc61f6d0d36e54ea28ce15c081b8990a9eef09b4787e2eed42c92434de93a731d0d9b76ea6091f6bd6b1d23b832903f187e8b0f3dc2a68c0c5778969e2306593943df55b0d4304946df16be30987640ce1cb9a9845a415755a380042c325a43683163cbb66f439cb744cf11529c2323ed397b7992cd6d99ae6cd51a8e1b3a2b4cb9487c232c4e1a20a0647079396f1437a1bf5f737d631ea82b71052e230b1ce7c30da0205e8c7d29dc3cef140b6cfed4acd5fde433e64af175d178a892fe678f903f98b05bc477cb08262e9091aeea5833a25f85f1b2372eda004dce969fbd79cdde54c871afb7bcbf1a195273970ebfc0d0473bf1ee3df681cef662ad0effd5949d7ff4f32655153b68a2b730e6c4019de5e0dd55d240d57e33ca1f2be59cedbb79bb571e3163552825e7b8d05986db6fedc46b73ae229992d2431378a0e358596277fff63b3071241186c261f6ee4e863e83a66130e9ce6be74399e24f526cc5b3270cfa936872e681b2326b1c580149c989a1de1fb55e056dcff3cf96e015ee4f5f4655906a8b8c5bf77bdc8f85ca0dd811b0538ef4e0d375f27c14c2d395985251418a8ffcfc7983aa5e38956aa0078ee0926dc9a4466259184b65594ebb9b7e6203e8e7698da03b0ae20df0a61d857a8d7d5e0ef53c46f6354abe5a6c1241d89089edb4db39c6ea7380263686885fed1430473ee422376beec5846c06e0356cacae003222a042d576b608c27ff633ae0a95217bdfbfd0852bad7bf6bc508228b23e254fe70688dcfd1c58550c99930327c239a33cc088048db854ff0442dfaf11555dfdbbad83b97811466ba27203b966bdf11aae8b72750fb92a0071fdc23d8088acdd4788f930124f2bbb7dbe3e78b705970abb340ff449c4c5ccd66355d9f7561e6427a9719305bb67f6b3d05c99a95841129ddbbe06c8f1b629139368fd60eb3f4fc3497f7ff9ae27ee948a724bb0297475d70ba3b61c126f0c8c55dfea52aacf7519f3368233d860ab6957de7555068ea7620c2827f1aff4bb94a30b91ca76939863df2813fe5106659bd73ff963215e4c6467d378f2d60f55692474a2330e305a04e16153653f1cc19cec6d2d772c5b72de7f7f9c0d58445aa9d004aa5efffd68689afe1cce3ada19fcf1b760ab1a9eb205bc331d34af91c601576fe12ab0bad66e93971b6857d549698c7a1e8d57e0d078c9aa23b6a9a61f9535f402a6f19c7f80f4a231af05746154534514182a2981f7d850c3badb15ce1d4d5a0911a4bf8c69147a0f9bfb2b4e0d67f091f5452de9241313098c1f9bddd5c541e62895b762aad56f7f08bb3ea4ce1fd3fe142c7263aa50ccd9f6f59c790fad2dbfa3244e5ed24592eaf1f72209dbfb635012a8e1bfeb64f67bcaccf6c5277af43d101ec6f47fddde48c59b01ffbe15ef65ec43c489b68365df074445942212616b62e9ca20793808deb109551d3d7e01a8fc84ea2edb12c32560d7e82a5c4a0b21f4107aff1f6412c45c4347a0514495a7d1f8fc2460f5fd9218abf18ce4e4bdc93b3959e7b3e554ddae833116dbb0feb61a0ad6eedff0511f5bc122d6b31c99d8e6745552a7b2c1df36e231682dbedd6940e99bf1d5cccf7ecabc83b5e72018b1e61885678c03061a8b0f5f3fa7e7c7570993a86db8fb01e81d246dd1cc4af2d7042bb301038961a55c5f106a0554994951e2724a81cfe1146a375bff3e1094e925eb63cd158ba7a43291965dd841cdc224f7a04cf1e6b08c7ab42379667499cfc3bc72f7c330531dd0113d18c549b93e66c7ff798a8485d461bb7f9c3ebee6c380ba96d9a91192d657c6dd693bd434cae63d7ab5848c7b98827e1ae3903dc8c02733a2b0b7e4b180f030e9b675bd7d0486322d20446f19f34f2aa2ac50ff1af58240c0913dac08cb577268bd6dbf416f23b4385d943e1bf9a58c66a6ccde1a005cea532942825f006d30a3183e9e8b96169f57628c91fe1fd56b5d495b39a890e3339f1cdb452afd6f4139b83625d420c9d71c8962275eb9963b5ee0e182e171c39e6d7c09c67fb1e30097f48f308608e79c748e22d3f240136eaeba761123b41263358eb352f36956a78d589eacf9fc8f2d9d1db224098eb588449947e6f354250317fb69e4ef08efc2f1f45e5cd2ada8fb4d30e4c1600bd8ed92bdf936c167a0c5ae564329b811e59790b9a1d228c8eee3e6ae5955abbcb1ce8fbbc449aa32d406aec6238a1ebbfec72c87f815750878e83c271faea04436f1a5e65f7cc6ae3bab763229d4a81f4a64f9a4bbbf410c14f6b07e4ff00232dc0f2666bac503bbb3b1afbcad581a978526ad860359d57a921425f98158350b8c5e1be92e8cfc623577c3f4a46396f330fc0e626b012b91e97961d07dc01c52fa257b59f1271bd23d83fbf633f12aa55903cc3112c940829d8d66f9452046b00f01863a5692d8b74cbd0087cf2ccd5c5691f19895028cc80ec0650bc60eae85edeb38bca3dd7b5280289bccb396ce45f503948ea087d665fb22c55cbb41dddfcef367bf78d9cff7b998f465048b871d87129727a1f2b10a6980871840c8eb9d35ddb35b84ed2b4741be7d723df97c35596273bbba4ba3c987c0c144d8324189b253e0786a2155ac8288a318d4126b7b2afdbc0d4c58bcca293578f8bf7011b899793ad390feea12e408c7a15c712c63bfeef6882e94ddf8f8bc7e66ad14142d80a421e76bfc2b8e58e39152d138905c29eec6aa89218e7fc04e449e1b17b880ac633784951346fb02cf88f8f67c08b20a4ca09c2b6d1091830511bd826a2d296bd339c92024b4013f65ebabdcaa8f706eea50b1eba125575a07df58a2365f96e34f747473983c1b4bbe7e9308ec11ac9f45c5cd050f72f8a34331e1a6790bbdab5c28af4ba90d00cb748eadf44ecfb985bd6bf9a163ee382f971c9909b44419f4715fb836b81bbb86bfa2212d8bf39e938448d0a93699e2627c103deb5fdfc84bff552dd6cc5d008d9d265feb8085dbc0ab3c41a0d565ba4f2516c59cb9de1bc476847d9f10b35c8b2656c885fa7acb3f13e24b802f13ddb95c5e386636cb63c6eb3d15fad4a6528cd9d7ad6788ebbf3ecefd3db873e2304ee9c92b6f5f4fe7a75439c553548905753590085ea4d788ef5b2542835a4ce1d8d8d886110b2103f8f5230466ca232e6cd20252434583106719031424e0d40dcd830140eceff69165cc6b20319e2c3fa21abe067de4d0435f1aa5e046fc01708bb19a1817b13ea21f3c4155a36257609fc1ccd2802aa9a759d0bea4515896aedc669afb9b5cf632c3c33b60f1a05f9cedfee7efc238777fe45be80008c4524c7a05d7f8ddbbd886bb3ada63d39310d75df1c7274678f4cc7efcf3ffe0ad05c063e07a8b6185a39a55185471d052b6e29f2d5f88e6bfcde9be3cfab4c789789d48c9599840e22e0a6fc40b0b44c7e50143a7d43f1402d79d6bda06542ef1edfa7bd540ee912c94de33c9b5b96ceff3c74cf2cc18953f9f9c30ddf99871f7fdc000875922ed578f0ea451c08246f2e033e2329f433646d31e9b863e891038e1218dba3c8011fef4a5876358695d6701b1f86c1a850c00542f9965bd3b0f4c4219bd0c99f3190c3b3fdff83cdb7ca7f70d30c792054d96033e99ccb080d23d3ea74d51f499d3881bbe61ed721ba7456ec50912d36bcb801811eab51838e26988ee36578f4bfb0c64a2ab57982ecccd7141b059c13701e531f6dc339ea28c494da64ed9d5d5ce13c24f308582cced6803f835762c2434ce98719208e0bc232286cf4c03157d5ed9b7ef91b30a8f27b38bc62ab3ce8936224f8c1477115594076ef091594135b62008dbf042d5486ccc96a39538099511eb4bb1fc5672e61c36ba3ca2a6a3b8cd170ecd6959c0b524ee955a8c246f9a801c987d67c9db03ee86f32bd36672af5e72b5cdbf60b9b7c73278f7e891802b5e0908c628223c5f1a91f965efc39f2619905cd719f693b52b66dd1571faafb75e39e98a2347b02accba267d79e6bcc9d7633f788f47087f7de7537cbb6d65558613ab880ef6e48c96fa8c21a20f684b5cb7045465c84cd6b57456def7307c069703f0a5d3c4b019dd8521a9d317b355ae396811cc8ca03fbed8c11de7d71293f3b989096d9cac31b572dc7a42c82886d5ed1adcc6c8a367b6aad130805836b8ae23d9a58522d861a1e2fe803910167046e7d2bde9e41dd6b79b87241ea851533bf4adeff1fd0460238faa1d73614dd40c3c7cac426dfa4dbbe287f77667cff5b1ea1f1cdb51bc03d62d0b9a57775843f828fd2ba766b0e8620fcac03be998b466811fdbf1b3e44eef3f47c7ebedff794d5f04806aea18b0ea42f244419863f8f3c9d0d2b761c2c3bafa22eaef42bd78a61293f607378c7432d0897308977c756a6740fc3d57adac235814f8c84a014b920dd21cc4b76f19b74fefdccecf209e3d3da1a577b29caa5c9fcfea884f0a1149fe2530188fe72aa2af5ee62b2d26af10d60d15f6e1915004fa1d1cd76e468b0a3ff5ffda6553bc911d32a8af0e8631af1c647920975f1947ad16174f6a17181c3e02039afc8ebeb22cceb5a54babf75ab6c920ec85b0ffee8fd54612123642307c857d4847b4ae961c89c7a8d7c7fffafe54111bd7aa2a31fe0e84541e84c40b0b295f981837b0091ebeff4503537ec743f0aef8ea8011a6ff56cd191b516184d43019b8271224d8f799b09f6245959f31d6ae07550b92c0b2431d4efaa4fc2a3efda1f266ac1070ffa40647442541f3a7e1efcd08d5335a95efb3529e32e1ee4db0f6e87eba3d845bec736e689c10a43adf6f75b19b954b71f92a1c87f7fac3b3276be9fc586611f89795a49941e91869473e38264f867373317172d2939044c36f222cdd8ecf4135f82146fec6867e49ae2271ae8ee252db249d0b18796e8dccfbe2b2d4c16d6759755a5fc109832ba967acc57d2f982e0bfe09305b6dbafebd55a26e8129f9e28cdd8337ecba0d362856e06fa41180e9ed5a30fba60aa016d74c8667a12f23334eeaeae485bad75b0e2718fa7e3a7495ada8d933c1964254f0ee8df4636c3060cdf3c8b747525a7d8f0a625d134b1054a50ca980d5a473e4c0d396bf56e55efe2606ae4a35703438fddba9a588593f750c4bbc891dbe0c18cc19e7971cf13b12ad4b633d3fc02dfe62475db7089be35e4c9cfc67b60defb9631c58de1fa0f861e77094e2f40f548304671c8fb532423d3927dc700c595e4f4983942784286fbd60a2e258aef8f8fb0f5e87424c0b6daa36a3a3c0672d4a56a0bccbd3bc0262c938fff1dddab3533e53a5e0447730c3bf179c0ae13dca610122cf5737ef52b9310241c3898c9c72edba95cff5f2040f0467dfb40cee06a2d2dabafc069c8ef807db198cde3b9f4eb9bed01f8328746b9197018c80b57156ff5cc04eda562b2c8e55243fe831d1d2cf3faa3de54dfc009b6b9f140d1be047408400ff38918bac6fb8fac7d3f531ae0bd2b593a94edf3545db18e0c35769ceeeecaea5aadca99dccfac757174ce492d1b07c6ed921f9ee9d95bce2310a5bab61d699721f317dfa3da4b7a35814f27f99aa3aa6f0345791c265d9d675764f46b2f15ca65d8290d7f9e0781dec56b41bac7400797b8026f6b67a8d0813c7ddc138b6c1e1261dce79d40086f90006c81afb3ce37056ee453db0f7341f0077c4ed74dd1d1e38d16f7f294b7e4801a414965bf9bdbc1b891609967e3a9260cc301be35785a47874bb1fe888103495ae10157f7bba2af8244f5f7f8714a183a472d9822117bcc2383219be617fac1f92aaf682e965fceb05d868b76b3d773cfb30086b4fb5649cdae42085932cdc330503264368f278baf82b625f686fc439ed6c292374bd2332151a2a5eccb82adea96bf20346d24c2382b026c8d30910a7829c5798e99dd6584c7863449dd971ea89a40619999ae8716f959c22cd9a67246dfc9a6129be6b0f73281f687761dee1d26c9b2e446d246d9843a162e1c53f7061b46528d93482f9e91a19d7a7ea24e18c81b9610d6e05f73f390bbd995a3bc62c28c8e3c564dac160dc13f5d90f5b8365b024eb5a8d0a7e5b53197e118730978dc485c89eaa4307040ed5a3a53d1f4144990afc124524b5cd28f041939d2ab847c23703f0a485410d6f339be7296561463e0daa322e877a1c44aac989e8d3448f47add599ad088e5d6c943c743ff16e71e35198e47b44f641fe600818f857abbd7a0eb09c8d4767ff8f2aaad8a3a609a009067a70e766a421da4c1a294aace9fe0e3c4834ed9e9d45f6d444b6c51d9d58ed23bfe867058f8177705c0bcb3902dcef540254a7c5a0ea92f1a038bfb864b6ad42284a1a44e0a07b46fcae90f2e279a200118807901cc427f2d3fd7bd1704786c785687f08241d6bfc6cc952fa712f65b2d357b9757d85d8734a2c0b0480373fef2a449eec93101aedb0dbcccc3f42e4a466908cea768f8ef7e1126d7f90e1afc5ca325ff9e0cd53f093c05dc441462c262b558a351d6b18cfbe37c5069df8aa47b7b3ab109cc722b73f5a17d8b30d5a7caa39d763fdc00a0f874dafcc294b1938489ed9b66ae49f9be1e0bf0063385ac081d04a0ed6683250328fe2612306a528b07e988e173ab094208e2879e4b1dba9ce92b194ca5ef03c60a7886a2fdbc545c53a746f0d6368572d9a660315471caa02b80ed13f5c103698d76e0537a0f9683e0b5d1ecaceb434ca0f5a7156e6fe7b88b88e23320b3f83a2043ef9903a104e295fe3697aa88d3412d8d8df7e0d3286d5e2375a6d0698637ce7a691191927ea97381c9c41cb177e2757cf9ecf2744f4fcb38d87f2f6bc9c6645df1e452b346ee062f7def84b202af6c60a8c1629f14397f36a5f4e58985a5f375db76f0cf8dd382bcf9d693fb6b043701ac48a70489f7153f5c24ae4646639b58bcc6acf084f94a4e38ae2a8026016bfaefc14899fd1d29113971a2eea8c06e08add0d75c3eeea6ea757014472081d78173fd8afa0c715564a72e1dc8bfd471434211a8968fdfadc4404f252bb3776775cee9bc22adffdfeb10ba1935326ad58c08c168ddc5017d735a9a250927def6e7dbf8386d82c008b623d28167942cdf7fcb097cbde8d894603b92f6df7b16a18bc6f0c1cef6ff5f2dbbb0c2ed641adb87374c3ced1c6289a9291b6dabadbd8bd4c6dc6b49898d00f05b396962bf2999f14455b34af604e15a56a4ca5fc533c25bae53c2640f4d4d25ae0c8052832da6124536822f996de9ba1ea3076cf6b4d0824c5cba4ee1506f9fd6006a9fffe9969c40692b135085955184405ab44adb9ee8433390a6920d0ff419de0091d09013def881bf284320e56d70c4643a427992d4ce68191d1372d7776821f281a4693b7c764869c24d326cda2d197315060b109eb8345b277d3133aa79eb7a8042b64aaadd656309e8e0496e71670a3d1e2497644dcba192b9128baf6bdb6d517b1d6a7d6de548088b024db0c13b9954148b662a0acfc2720066c33def885455fbf74ca43b17d002fdac0871f46e94690ffe7e5a68690353ff1462b2dc5b58629a31f6f6030dda6f24689fa940a1f88b059a1030bdc2c932456ca014989d94da32dbee5dfb7391f2f398cbcff076088bd25ef6a240b47a5bb9fd245863e02e86af7f2f3cceb4f0867187e6cc012fbba075923712f601c4177802b5f036bab036ce790fa9d7331d3e070070c36041a6e9a015eb1ac52ad113a7d1e6df96b69afa27823163ce79edec8d0858e0c430f45a3de0f3ce16f096e6572917c80d584da3bc3ff2db2b875a16f38f29cf3d8c73b966465155fe32d2b294d53773bb5f59a1c36c8b087abb316977dc2a7a1c9bd8e5020409ceb526fac15d7af028c3a55858cde4949278bc3e77a5fb3832208931660b82e42772b3d15583ba24f029e648bdc6f1d4319e7fa827bc30d66f89a74645d76afc591c20da1bb242777b76f7477dea654b2c75dca98dadbb6895a051cf1fa00c591e31990c2295acddae1443377dad725873b11332ded1883a9670ab1c90c8ff211e61cb253623081905558df13031a9e091b732160e4919816e846335debbf434b7c5f235cea4046fdc20c1cafbecec45581398552c1cb1855b7193e0751d7eee91f6956e0e8e645ba5aac205a7da01c86ce1fa07c9f4f4e5bdacc3c43fc49fbd800a18850bc2f55c21b2190828901ca36fc3bf66174893d7577df93334e3211b96b9f4fb338492b7ea541094fc29305e45ad2c82f9bd801d7f95960164e9692a42f8312114eb15bc7900fbfc7eb1ed06ad8b8be6e2b52bd89a2c6bdc00f558e4b509e10dc328c2e2dd4ad1cf85f64a46b06bb986bd0a7df46b720b1595fa1d9a07fd2816c25d6dd5307abb33cc36d68f32253fb8a4322f97e090859c01b689e7228733dad23404b93c150669296ff7766e463eb1a0856dffa28385ea94a9d161ebdeacaae3709b88bce5d3b9c448b68d7ebef7713e5589377f1677a34482b9f1578a515cc99c7e210a3859cd5f5662fa1a2e210a22904a0ffbb4ab6a64a365837dc89470a7206b6e0a6d7ef45f06ad49c54f4366a9cce633d24397b8a6ba1bdead3d0c38b97550b1ca484ff6f4ac33b70cb0bfdc0cfd029d21f0c58f016d4d4222593eb988c538da9778a891d1ce6960e9f615f52159119b1483431e55b73f8bb8ffbdb8563752a44d95860352a1680ca2b257ef5720d4cd5eecf956eb1098931cf0db479f96a1ba62edfc03e968fbc401c2ce5ce0f6d53b0cabf65a75690872fbf31ec9e59aa5ac1d64c5c3c8f9e186e0a376a926745b018627bbc496890a45b18b9b167e7696e6b85c884103311d0dc47a535c42b774bf847c9145924cb2ee9aa302420e0161e5b0d70dc32d89a19977bf4141b16fa2cbec918bd21f88dc34310277d88d73b8a2c2c42ec26db7fd054985b5dcdb5c4de22cc1d42572c6a66fd24abaf76985c770c74e98cdd2a3604a306d1d082126e6783a44bfdcbc9dd1808524f9d6c23b97c42ec2d193aea084a59c49b6e4d314db80e79e24d8b1b334d316cc28c5d4030d0e4f11f6dc8b0fa25db2f47f77dd0037870d9d4f743682d281cfdcd6639e49522c2d81dd3a9f92a07dac01edf1a384a281c9d1dd674c044d7f08d7c8981666c468b01c9cc40beb601ef3d87d9521105287226dc692df84e5432ea9191c98619ca0ac62ee57f16cc82198a07fc70f90b7e062ee9e4cc7b999a36e8ff48271f31a336c5b9fa19d1a6c7566a440a38c62ab0a8735baeeb311c9186c2d39504417bef3a2f4c0773c35b724480cc17a3b26d05e856d8958a89e45f25eed7ca0a31e81f32fd3ed2177223ff30fbf605172151fa965f5484fbfb59a4b0f91745d31aaaf968b3bcce5f830c8324aef32015235a25960ba8c2b58f788f38d93516716caafe8d0f94e6b3132cfab7014f8152fafc2db30d47cb7963e0488ac10f1080c52b8d19521fdbfb06ccc3d1db5fe0bf4d90b6963ecc4363aee48b5ab70ffbb00bb0ddcf37a65e152e2fc193eec180eed7e6c34355dc7cc7e1767101a9121eee085d4abcf1aa74f2126ee0f32553895c4fca0d508c9bca031b95131dcbe815109de0f11964fcf20256e676117f4343097110b80090c3cb6cb5beddf08ff808b79502b26597c0a705f60e48a6b31076c0d39db69ea50624adecbd0f1cac6f123a5fc5e906994a3e364ca45382bd47b36d7549c719685db9f2058a7931fa1ba06c08ca7e3a2535e5de21ca5141cf5f012d4ca719db9a697ca2f7552b3e34032730f02c4a0cd29f2fd7f51e41c920905b440c06e25211327880b1fbeddb1bee3acef2fbcec47e36e44acca8df090d56c70a12cf61fc48e9e895b4c306d51df30611ce4a951eb309cbfd35244e7b405e0ae5e9a01e437d80736b8a970049e3aa9e8c4609bf322cc4ed50096f4f5ab34d521f23807d90f07252ce87cbc27186cd6b995a329eda9c08801aa0a09532054bff784d897aee944234ebacdec777e175a83d0a639cb79d277581cab6f7750ad3dc9b0dd90c698dfd55fabcb213f05c975dc1444dbabab0b0b19a9de0b9cc84209ba84f06b2c8d8004c01bf3d10ecc4a8c1b985bcfefbb753d058fe230ae384d0d183d47d7b9b92f565bf71dcf27520ad88aa56f6ca6f7eec3c53e63ce458733f2ba670842a7c6214d8dbc3962fc7621e3d5ddb40112cee00099881a3d451dffbf2525d45578dd7936ff0a0ca0cb709766078d659efa5937a9a2a47acaa725fba6a49cff94d3482fa720971a65ea526d8d5e14a9d626caf58dddefbfcd8cb4cc6f68c116f5e8eeea0e44634dbeb41b6094d6b5fa76a56ed7d679753c269425c45358ef90ccb217cb07e322ca918eb9ae98854b63d08df47ba7199a45f25d7d41fe0e88bc8180dd505806cdb2abba4d8a5e8b33dc492ddb7935f33b88878b51d27dccb1a338c7aaa600c6268dfb4f43235ab6bcdf74e1be9ad0f5cc7e92ecd8eafb573a04f9e9bb281976794d0cda5b276180a12f47475e77dbe1f031f0bfe9d9025c5bfab3a8ad0cfdf6508d2c7fc739aa76d4d4c3958b7a3ada01452d14b9bda80601f812e40318fadb8acdbee860eae5ff17860b7bae984f920a786f95a5540b81fa30802e13d5b73da29228a84e5f31e678b616d761f6a7dcf2e36ad8cd022673b82febfb3eab21d89905e54c1b35c13a6d8dac6a154573cadfb979fa4900b57e348b2adee21939b6ca040cd6866179a2459e037f8c3ba59d03da9ab83645614026b0254043c87a95b9bac4b15537778a3719c1d38e2d5238b8ae889f8382c070fe4a08a7621720c40d4129ba1ffd2662fa5979e0ffd7ba610ed070223b4555013c7f2dee443f4ab403d4e95d5b34db7a923998830df9b3686d06b2f8652e5668fcda8786971a575c85e315369c0f43de7b175da0157f3c5a40e56938f88112bace81f07607cb4cfcbda58ba37cf803e1f87e38126c6d3051085f0a8d982a602ffd698f5a88af75081349c60710d06dec7f44e2748cac12a4807b570ade1c999061606a83b97fafcc3b2500412811764c53b2ab35aeea63149a8c0090282ded4412ee958487b4d2309b97a12c5fd45e4e41221468c6fcd95fc9f985589f488531dc99cf15b02b9cb5660aaeb7c01f3d4fe65b84ec739f876b30c120bc516e69838c73d7e43d75dbb0c4504814740c58b4d5ba71bdd8a057d39c9218846014765286cf740df5142119cd96d6a1584bba98338241a5f3b77429bd32855ed9e03a8a965ded2eec03ab156fe4358908a730d4ec22715b79ece3b4dbcdcfec38d4f115dd7e627901572a12c2e4973dcd20b72e9d8dc6283c200cb379b5d462f3b3de48cab93216607707f6f9d01660cc2b59718f10f6e6f50d449d8f6f385fd25a1f54b7da55ceded123b30d655b92ae57bc34148495b8685ec11c386f95f5bd3a392b563ef06a10f0d47900c96c59f9482ca8fbb2b2ca357485be47881f97cb3ad9c04d937a2721e78184ebe1a52e3ebe5a146430799331afd05189aa030806e470cb8251a8f811fa419c4b9c9307512d4faf13305e7cb6d3ba6f2b9ce3aae637eb96b63a17f32188ce6cc8bd3319db0dfe690115cc052b83845155394b7e5bcd111180d1169613ffecce7702300c2c196c7d4e2875be046454ada03e68909ddc4e77c6891d5394abb7072df17a4ae098a1aae9ded51e173fc8b9b4bc0d71ed023496673b521022f85533e7832f93ce71b9ce2986782bd5550a9709ffdd54167fab34dd6c7dc126fa2d3c9fcd5b8b4948c911055c7e425997a022272e8ce78eaa92f35ebefd6281f0a99c8b75edec16548d00476a18ccf54a70d69bdbce0a539e2010add5d47291a63f3031029e2144c7dce8b3840f69c269daa7adad3cab211b6ad25dac0377b8d0d5cf8b979847b5993a7a155ec4cc08bcbbf3b4ae931fae29c131f58bacf0d38fda97ac5522ba9d2cdfe15c5e1a5c7b1e996cba03188d7a07758ed3783311712262c0c0a9de8662060149cb5d76d9fc8cf5349b3a641d14dce7b6a1d57f68feaffa589b28e817a838286462a0df9832cbdceb81f17e5816c3b9a54e939d48fbddb112de546c6b0a011829ad4f6626cebd60f0f1a80dc007229722a8a3263b4c3e9106bb22ab0b1f2df259abb78759720b4346f8d4e2596b252bfb4cb0bc48070ab42e2e315ff4b8171e7656156e539c33bc9e9b825ecec93d385ed76d354e8514649beca1af4be6d0be74fac56e2b72dc32337016fd687d711773e9357dbee7325183ac934c46431e9d1bcbb148622edf767f14664ae87a541c3e479d63d4403dce7eb7aebfd68af397db6c2be89f0699b18a390f93299da79871e18206b1738ebb54aedf622294e9846cb716fe027dc740b71affc72557045b4cc5632458eabe5b0b84aa68154e9737e3ed19bc183fa0d5a34e6cc915fb843889ea3d42027ff369cf2f86f08f1cb5fe43fef7e1c25e8e1b0f8cbbd70b46864519fadb9f5f73b8e869b521146d38e65f9d85c828c761af89245e9ba86c3a29ec99797a7ae9103f98fbe5bd8af82a1c60480f1ce0dd24ce0a5c38a5c1ee8b34b3bb00f5aa6c2076f6953861a702b78db4ecb4fecb8a127ac5787f9f030a32017700c2e2bdad91b47c13db381a8746e4e1a35a724d7ea4ff01feb3270cb0302f8839fccda383476aaaf7a3442ec9007d186a6f1a8a7863cb9c549c1c5c2711cdf593f4b04495697a4964864912107405d829d5b16b6467fcb93e912ed7822128faedcc000e30c0527535b357c5476c4d9d7b4e8cb42938ffc63f020a4461550fd440064890394cc2ab1eae3018e749114ff16abb52965710c279ee7eb3300d7438f7ab497de483e41b371cc5e89028f1605e081d993838a1ecdb4f32887c9de979712aeca80ebc68a3ccb12d3c384c02604c6484bd561232bb01175188c5ea426d5170998f8c4a8fbf076abbbbd345123ea0660020ab3f5012c1bd8277f180b3b24175d4ca363f5c6724a33aebe765044c5231279b47abecf3f6b796e7918023672ce4cb5b775bd7f8b323d304c2bb9a451b99a55392085588b028379677dfb25c55fcbea54655dbe4c2c1860412d7cd503e3a8d51c47d56727d72167ff62e5b7af4338b4d0084133922ba6d64301d08d910f69122323a15d32ea336b0cefd6c7767936a50f87e466db44f20be7326f12a19075afb35d41ca80157a1689277f4a840cc15522e0f8c9cb5bae08eb6bc82090767eb1b7d37190b847c9e4e97a540824e624d9340e3507fbacbfceb54199e2c175a90f5e05b2a0d972096641ec66dcf1e51f4b28f1de182fa6389b4e3b7eb63ef0d4cd4cef49269d5bc3f0220b48478430b4e84b2144392a7a2cbe971f47475fff4950d5a9269b1a0ad60e1ba3531a820b39a5ad7b10ef98b195ee52158ee5767bae4b05b3cf1e0a1cfc9282f89e578aec0440ddbf554a7a8fc9f399adecce1fef23e00699411291623b6f2a72f671b08c3682f132f56bee414c5abb2bebcac9d4a404247a31625d82e2e61dba6fa5691d5d54a2feefc89e7a22cc5db2a66c94ad43a31898e2d10f12efd2cc0df8040a141e2a33eba5560004ebf9f576a9f9a8ca6e7491e6fe7c20586879bd30502fcfbec61ef470c5f95903e16a4b40f32165440688773e65b6d05f8ee3194b4e3879e0ea94afff38aa442ec43aeb05382393549d967d6061ba4a46942366b0450554f595d36ebe6114230e68bdae936c81f8b246393daaaddcf27f62c736300cf9532c4b47653ce9ac296a17211b117ad07e53d542078d8ecaec89d7b312d5eceb6c1d51724d67a48f26f1a703e4045e13be9b98aa7701ed7f14f46601af616c675b9b66cf1417cd516e6da3c687b9666967ed310db66eece1a1eef38397ae20477d78c7b341459e0d8b51030432cf91b1932ab1db0b9b567626abdf6e1c81e86910de5647d5e31f26f81d3dcb6ef0741be02fa9493b37d0de31fc7a99f162dbff3ac19d6c8176ae3455a9d0af10cc2f07705084a585d295ef72d8e9d96b54456855f73363c53be55d41b71bbdb1d974200e640f2a08773919caefffffd0395c7b273b11d075b0f8137933ebe71a1427f35988a67b69742e5e0a67445f1d89559e0ef2e1dae5d5e9e08212ead4f73df70a35c950da5e53b8f722043e1bcfec07bfbae130ca3c40eab505d2e5914d3987143dfc40ebc337f32163022903a6481985b7df9f4e0a3ad83322804b9d8d292ddb955c007b3c58df6c50c60183370a325c0433f1304db82a5c135b7efd69392f07cff9f74444465879b2731b2e01d221e7f3792b9bf0c3f44f498b7a74f83b5a2447e1254c17658884ec93c779fc8a4b53999fd67e826d897c593d07539b4b106e6a713501e709b2c076fe5e0014d416d6154e850a5dc19d696bda6b826ee0b8b7415cbe49783d2a484e4912573b7282f08ef2515f9daa658fa25a240269baeea1741e433d44755b5d78f8cae4786ad1f514ee4cde500b479b996527615e82c6c14ba7bd6163b5745d331fb3f3f2ebaf5ed4925610293e8c94ff3919c7b3edfbe77fa22db2f163a3768d43487b29506503713b75179a0eb61231e9226b3019ae987de781c80731bc53bcd3e1b315596a0e09b4a9840d0525cf0f76590b18190eaffedbe54aba2e737d04c37a8ef73d9d40c0974ef820bdb199e7b73a691fb613351da6b4f17dc7711b575643b79cc06194f31219c408d3ef7528b4932524f4765311c7298a92e616628a6fa08220dfd621cac48c840243fcd3352267d87984b2653c1dc5ff576941e8da0b6c4b73881c28c34298229b51e6c72ea1cfaf0e2572f1b664a456d5624f61a80dc2bb7f1d57fce5cb5c6c7828e437ca6a0ca32641b1b4519ece5f40896254cb87fbefd0c946b49c50944f4f58779fd1bfa5779853236cbb66f323da0a7fb391edb548ef09652445c6d7fe78cb387e50ddf915768484299fee4f42fa343978c501c6a00009a7c7d098fae2884ea96285a0e7d49dfa0372f217e4cc3e3eae5eefbc693795b0e56af5d90bb83146197b52252733bcf802fd83d700e614fc0fb5b2dbab938c254e73cb206e52b74120b8a57e705d148edb6abe1cb1875dcda995d80ac38b5f0c66c2418f85dd8c67d084256634ab5cb547646f20439c12c95dc3bdd9a48713075926e0d5105d570840b3c0a9915f5108724b6cdd3fd883e50e1c92bba649be3292d4639b680d08328139282b6e4c157269181a848d2dee6bb6b107af28512a849582607ae7b0f0138238c354cd3ed08877415349a0dc9977e3fb841a2efa621e794a84e1f47641bb55aaf8d21ee2603ffa2f4f718822328af26e86a5c4bd44462343846af8fff97e4255ffdf1d3d6b230f914ea324ad50ec9c0a589deaccb394f70449ed7041d964198d478257a852896c71a99c5518aa74cf77ddda7b8477eb4d5ca2669cbc3212d043b744bf3ce37b12a48cf27d701ea1ceeb8e8e51ab42608d61c8a738e58660761ed08fc970488ab3c132c293ef4026b543d928c6a71676c26f748121565e13e9a1eb2e90f2f63d4fa96e74b626565bee7208491ef33d3672b8f1e29f8b4fabb2ca8859793b7c48fb0d0389ded8e2b0b4c6526c1b3d6c79e1d3c7f2e21e215fdbf6f0f41cb7186c57376902dec0332ffab5fd2b6f161ec0d957d441fed316a311b541e665586047b83d6bfa247c989ac7929874f43352ac7e211f41f5d3512730056418e390c7c3367d7d39b864e70cc4d79b60db7055eec2e7ec28c007e37eb1fd67e3428de8780e720373231a89a7ea948f405ba616379a73d4ee065a3c33b6f8cdf652dd79ba474ca0c01b7c083c19db14394b27b9330edcdf8b9db89885cfb4bf4705ee69049db5751c24a63486fbd93d86302543918319ee47c0a418ac1efede70e3de13ee210a45244f8073a38af63c58bdd703596ba52b5958150ee0e2ba2a20c3429264d79323ce008ed93256ef96708bf7d23c84230769396bab373f430e05d4e9211743c41a4be16bc9279062d26ec862ec4645a925faa249c6ecbb8833801e727c4a10596b653454fc282794abacdcf8f6ee5aa090bcc37608c9f5c928267b21ff621cf439b281f693c146a9b15829eccd05342a891e66cc9b7d187d852486a8ba37aaba9142647998c3ecfc3b78b6dda75a51abc633a0481ffe962f41e12d799bbe2537d6b1c321ccacf6ebfe624fbdd98db0291eeedcedba9cdabb33bd54a3bd38fdac8eedd2be562a60ad7a4663e4ce06edc004ca27623034d9a930395de29875d85348f89910180cd56860262e103458d6d1b7cc12cf69851f243977351190c0ad7d3afbe4ba1b1d89ff5e480e0bf2bb2aa8afb9b8f7f3189f56ccc2231f5177f002dac53da38f433b95dae67f89388fffe62ab7880a3a0df4b1cff9cfe78d0e75ac161f6f14c2282372bd92e48aed0c176721f7d484c803bd90efc7ea6db3eaf55034200069ba748919aa584321f09ca9cdd0fdffe26098e66683b4385356b064019f6a8dfd707c9bcc8e99c0a3e2fb3512fba85aad33c2c22478346f1a66c71cebdf24d2329a5bf4b3325f2a1c608ed94429723292a8ecdd4a0374de0d3efcce8e2b4be6c3d47bb8935a064b5c5d8a1f0e9ed727e2292efbdd93e35a0d5203b9b8eac456e6ada88c10c21235035d2d714354d95b2e5d575eed2dac2744ead140913463e89f6ab732654074cbeb902234ace918d30d55b070624364b1b295d12ba1fe4050724cc7d7689576724e39543cfde26ecb6b7ef4772707b7c01c8d6d6b486e60134bdb1b98e2d25f1967b9943aa0f6f50ad38d08c0e5e61ee74f43f9f5b038f9ae550ed13a6def52ac8d619a6bd01820be68b04a6d1bc1ec17b1656f18570b269f6b09e6a32cdba486ea530b582795c15d0fb6470ada6201672dfe28fa82989f2b11dcf6beea74159eff99e8058c08c95dd74105f37989b8aabc7447f8b405ffc7239c4e438ad8c33575eb0ff4034330f426279a0e0ad01cf50dee8b7f50e5fd14d2bf34582c80072b28250eb27fdb51da155bce19832e884642c07b7fd02f1a1f31e24431c800b23763bae3deb267e1c3d9489fb15e1646d51788658ea61758123c33174b7652bec5a3e60fbf98b151f5aa38dff1ba6e6c9fa3aa103c82cd4457719157e219ff557316d6750a4b7f95e7fa629582716b880eda845233e3f923de8c375e92106c1d3c71e04db12e585ba5ac13cbca0aa58ee41c005b0c50724f775ee3c733d90d45e2cb9a902a83872036260f249e90d6da0cb4c6eed5b58a74571652807cc8403f859930c33f577ff686a84c806b673ece5d901e10e790af907f7b4ad58ab803e971f0a34d178c841d17ead100e88effc21f72105a83ca0a1611e46326e414a987d4a3b31b68bf4998fe0bd9f5625575353cedfee1773854d5f1d3c8a362af06aeebb702be3952b15c8e23298cbcefd45f5db4ed796dac975260591d0edeb155c7d55ef84fab2143c7fa85f2f8be077727e5162528745f9d8fc5de64339d3035b6cf619357de959e9f4b0be37820b363e37dba3652dffe6fa8684d958798e9dba2b1b5ad84902032c0cbeb166fa10f93234c378651aa2937d65ed2a3582ff8978d69902f563e357fb184517394e4e7b8d2bd365237c54f4378266d80c654cde957100be048c490f53012541b6a7364c73c3d815f28b540f36da696a2d12df78b910860cf0daaec65c273a8a7407bb2007bc7dd0104e260cf7dc9495963634ba243708090d8bd4a4d351b9a8bbea4a6cf00e94c93583bbfb4c491d7714b062580a74236b68dad94e79d4ee7526d736c1b8138b40d699a0a5bc7964e0b3e780ad37c9d17f9f9ee1d1a7c903329ed53f9813d66c9c13288c9ca2f5329b404402c4a365bdba461c3fd0502944fedbfe74edfe492f9b9af1dea059b12a58e64589d948233962b4bcf5ebcd6308ca93a51ed3040364883b3bed051002654a3bc5a6b3ff2db2085a6f64a803f224b4f4f08df9c7d846ac418f5e90393b4fbfd68c7d653f3248c6efafd76e21313f62fb5260d07d300b8e4089dbbca25a6ca8ea048660bac8573c90b38f6d2317f7239acfff6aeac905117ff348bf4351a1cf9864b6c71ce9e195da398bfaeaf48ea50fc3ffcc9cba21b02349670b5d4aab1b2386c730bbffc50cf30994eac8a225bf081a9d94e5b723ace95a1f8361658edecc1f744448ae673784f07ad6de096a52f021d2288bf730f97dcb0ef6308a08ea1cd3829096e2c6afeddc6cc1f75d19531d30b2f25c221863846238a7978ae83257f1fe58b38a237d86e5020cc32daf455e1df1e88fd296b49606a6dd58eca40b25e876c49c4ad34ff34d0e404e91a87e41b0585a97a120fc2018516239f6053377e89d7e1aca9d80a50fe64d18edf62e689e7e2f4ea5cec098edaf041ddea7f916d7e9d5a06047cbe877671d0815d9f198d5ef247dfca8da0b52cc48b68590650d6452df05793837272e13be8c67de9da1cbebe643464d03295f0d005b05ca34536de0fa90763064e7f45917fb5de559763a790971a3cb0d14a75100f4118c9cc05f3d298e5e8eb381061627c02ab8c37e5982f906e864e6f7b40d1aeace8a10362eacbbb344ed0acb76f3fc5e5656bea64378ec4e61620c6983a446c6c07847468f4df1000cc3d25489bf4428b2cc370363f21938a449e28da379e3aacffa4dda3bc7ed8b8e75baf4b44011613227c472e27ce914d06a74d73e5a35e8ee7c6bb229dc5e2032632223e41d1e4754476ea41e1122a08e368e7b592ce2baf6255f6a65ac61db368991e32a3eb5609566acc0b2c6a5f897ca1c9d4085d2bf9bee0badcf2af79cae019ca0f1bd891aca5290e961e15655079461fb94ee5b502a381a4cc19ed5afd6e63992f1f1579c445db55f1b36c317e60e26bb41be0e596f5b6992f2db60413f29b446af577f899aaae67d968f4c97531b840e00f10658e6aed0c2250da5602492a513f11539237d8fc0bf4fbd1dc8f3a71c91f1e147ab6ff1031a02cfb92d313836609f42cc2dca28378059a032a56ddf3d538ebecaa65b74d0286594b8febd622b5b3f673d281a50062c8eb6b9cbea206befe86efc6ee8dad6e58f6245e29e960915d0c22d42db3587661fa6986f07ad287a264827c61f7d9a2fcbcb298bc6c7900df5d4086caf61ac4eca8528346cfc182494818fec5e7af1d9605d1689720bacbf00a838d737ef1b3b8132b6100e400f7499a69e17d9c8fbf84a568f36a18e06f9546e197e240934c1c1ff7a2c9e37a2c08645d44f3e0f7aa1bb12206384f1f624221a40ec854e42a784b2550de75ee075b00283a335fbb0731efa8e3c9fbb540a8be5cc25d6b5fef0a0d03210adfce7a34ed3c82599c66f39a8ecfe56193a1767d8c5c38223bf4407eddb00f1ee65b8c0fee844934c0bcb00e11ccae5e38ba8b305e17db703e1be1e997001e0debf8628f549ec4fc1678bd3cea264f3e69a4acadf463df1b92f4c835232d33aa986317cdc160e88cee927c0dc16d0ce7dcef56a1f97435e8d690e86d27fde8bca7e8c3934db7a4d53c219d8318f1150058e8c96367dfec7396d838ed5769a8810ea0dd3d44855b1d7e24c90a911926fd2991c81ddf05837253bbe7c2deab38bcd528bd983bc31c249e848575f762d1d6e50859f07567c39bc528ac1c2a8870f833779d21cf3cf1bdabafa7e0effbe6586ae325d52e15a7b95ce5c0a3de7babe63183d18b8376c79f732af7fb6815f3091f4b77f51c5994de4523511fdf6a61e6df7ca138eb6819dc1e359a4bda9c7cae09a63348db4e56f205f97216965ea8cd8bf3296149c94f0b7b3ded5cbd22e80c083d23f048239c77ee632588e397a357d794ed9b5c3cb9627be793c166e79ac181c56ba435b4d02f58e8e03e5df60019647eb1ce5e92067be36a6f69d32ccd7e2f5e0d4b341ec88c87df5308e8e3e05b607aa940eec9959a32a2d30d0f7ee180cabe039de1cab76ccb482dd21726b0136602d52f905785126fae4427288033d792e09336d416f2dfb01c2ea2e151ab475b62edcfc0c27316def81074b37f10c934cc60b942179a5d65581011eb540a96e75812c8011e9b553743c5f699841a1343ad0c35a2d1e2a10e83747ffe7feb287e5b7304532083f2951c5f18b335df87f1a80ead36f9a0400e61debbb43be95183a359253a1bf26a216437e79dd39e65b620243c93c6e747d22f5b78c0f5b374e6e90389af5843e93a05824b622082de83d322dda50b223ec963916b041b5cf3730913553aa4d5efed0f695ab67897f13c563ba11f499930428709bc661d9671801c52bf75f25989b8f11443f33ffd3e1f0430b4cd053761b5b6697a2452a951c36632563b92bbe709b5183f6f6b680e73a4fe3d4a86fa8d69ebd5127d1c14ab28a973f7497dfd97b0a5b02a1af89bfd49e28de3f01e681f288d1675427fb7a3ed6cb1e4a5861fd1cfa41b3dc11f1f65d1fc6fc02ff6ffd20156be95ec24f014f76ae84a038325f4b4ff349e50d44026e49083ab51277137ac94f32f980a5d1088f2359d94ac8d72f93bd4f779bf7785911a396b8987bbdad90c58b93cd58192861bdc10210b664b6c7fb1dbf1d2a1425a8f6138bce02fe8fcdcdd0ef8e843dc20867d4a7d7d727d62f17016deb4ccda82da4f52f398279ff981470c0edd321fce70a291850305682f5d622c02369fa3cc198d35dc5bb772b938c7569012fb38e577f275f72de6e51d6403f6f57416c144db1f9863276b917c5140239c3d6028a5990b81f2780556736bc2e932e09b9146377e540bb20dfc5aa6409e8da3332c4c89a25641c3d9e49391bd83c8645216864a84451bff5d56085d4c16b36fec07648c14c9d149bfaa1700751a869b0639957c40af95f3dd968c721b6409166ccc189ac939d2e100a327d163e3fcc874da34edc71b97afb1f67943a46441aea20d0b9a9596421948002b521804ba006a6a98d25b7d2f1a86fd9e0b6781af521c99a2cddb230ad45e7efa50cd3b05436df0e6db161a8e3c9f722a178f7cae97b2390a4789a4145bd56b756d62210da822be4ccf2815085513fc29e36a046d9c531269617683d4d7ab050499486df09a292e6f45b256a9d0b03c8b99488018846f86c047a7436c73ae9f7f69a7322fd5ce493ae0c6a001163cf46319bfecef8bced287b6db3110f38daa01e0e421c71af64ece1bfcdf750ca42bab40a3c1eee7dd19c855bb35ab32c029334d431d599dd550f6a9eb63a2234ce503a434243755f9e676906ed63ad5f361127d377a2b059450cd1d58498669a47b6e59784f74cb3289398af0985a4ff7a5aa9c33e0b396780819fdf68d9d95f10a55b32112205f2f33bfa6d262ae5145e1d4f04ac1214242acf4fff54673f5e3032e680a5747c877836a377ebc1837c67dd2c1541065e729b7527c3803bdc1c55a3585e193779363a3d045f5087e6bbd532441f169470c6bfc47398a82afbea56f44c0ac5a6144d32377bf927f2d20f486562cc69a27ec3ad07578851909a65c1dbc9821d547a67b2b8885ef4fa67250de4d589c87a9f16dbdf9155115b0a992a4994f48a1c023c2be5a6d6f021a218c486fde7199ceae2275d8339ccc9d042dc6b6b4ba2d2b5dfa6d7b7c1d8549fb791c002deb7450ada508296e1a47bcb1cca877d123a9340e59f0ba5fe019605f4ca8a1ed736f48812c7d6442338a6c10b6e9a1a5db4e60404160a47fe94fb811c7ffc948c75ea43dd8952cb6e51959d6825a13b3d58118a5318ab086a61651cddedf195a853c4ddee8c6a3f56c265b6f36d560fe759e6f5bc4d7e5f45bdcb3a2a8b9832b1cf829c938afb6ee84cfea2333910080869355b65a7874a97ffa20059ae82361e7bf5a00aa788a1a766d8bc2e61aa9c2ec4b921b5990f42663a35bf0c2a0ed211186e6e7ddbaf88c4f4b422a46b1e46bcc94275ef0a126c7d491a1c784d076154c9fd98ebc2f86ca3c803adb3bee6a845583309c1722af975b7adc39d6c2925fd91e257ed8d45e544ca2fed0237616629765a7c2f7eeb0229697472c1de03ab0041fce8dc30c5e7b019f6080724a27c87c40d30e27facfd5f13e71eb8f28425f82c807c551e805c34e62f2705c56aa7b761cbe2b7ccade51c5996eaeea76bfd1fe9cdf744abb08aa7b0a51a76901c23c70a4ffcd4c8405d0c62e6ab27c5de23a351a96e67c230bbb4e287764ddb6234e87d7c81dcacfbdfa8d394ee1b80c5f9e87e3dedaed2396944f548eb180d01b5529fa206e1a95d6c162125408e3cea34fe34769d4277293908790e8fb144188384a602cd5feca660b4e0b442ba4eac9e6e818a695801ad8024e74a6f931996f8a4161ffa160be606be8ad9dff641c9013eccd30db5d36d3795958622f1538199a24251f164b7246930ea64105eb731576c28a16440165f172f19f301a541f049a71c77261fd43bca2e46260b209a4e412f364d3252e31db6f6b296455acc4af0e3e388869f90e6bda2b7cb3e43c8af2346b66d94322599e046f06da2496ea946a167e780ffbc9a80ee7241e857e6b3c8e9e73fc42a1ba686f4747089dc769dc18e1b2bfbacf95843e5c4373cbf7e392252ecb41b88bb002ab0f9cbab44400fe8da28dd175a4c6019c991b00d1805c17762a0b51787ed77eb1046909e34a20bff2c9a0bea8b841fabb8ccd789dfc7d0e7bae0f47013ca6d5891707d2d6f30c062accabc55ea720e4b5851ecc6f77437b8d91e51290fad7d9279c4c65a264946d57b10dc09cd4f1f7793f50bfe2f060238da687d7d5ebf533ed0754a0e3d1121a65448cf3401d665b2569063306004fc74b42718e641becdf1b67ab4a72d74590ddda60fbff5fd92e8badf55063836d62b46bfc9595d5600441c69926d156f3e70021203cc132b5d7652f0c4fdff98f5fa01f0137d9bed6ede819b7def22618080af8443052690d251017f288a67ea97ae41ef32fa05d7867208d9350cdf1a1149d0bb5696a4d0d1d6166b21c7a70055c4340f9940f32fb09d5f65a23e2a1217c3d863a3984b389ba7617f811141d77422e9aeef26ef7e49e6bc0214ce115dc06d92d69c8afa6e2334fda7349553b5f65a927ebac7c1736d7953da443f2574673873f9418d93d52ea7e27cf0ce120c20c79be1039d5d84254fd5b02b74e88bcbb6b5bf37477a2f4fcc35bf9bf413b47de7a423245a2c418276f3733ae20ae4afc762be99fb772e6540e579563e4c43325bc0a642ef57a0b43e2c973c509d9ffb00b1811a91d01839d6b66537e2a42cd022bb9e56e222bdea61d8ffb2fe2a91cc9ec81f6ab73294cf62c691ee30c1398649f14364c3f2ae14ebec2dbada2fb9d0b187a80729a33974e1473885f84f64f57228ee57f97603f4bdd8668e94008da3058f8a1b279540ce5199276a7036308f50ced8c909717104dbb1a6320ce8ed701980a714a4fa30cfbe722c4dd3e3deb4959803cddf6b8b039f9df7552148976d71ab4f866f107a50168e28d7f29b887db50b6ddd0562f426c7ea92eb168b5a2036ba9e413d101a1dbb5e266c18b81f4239266b5a2158eb58eb63c970ecc67ea3d910d2809ba80e00539bd60b2b8d7d9bd2fead905fe4764717a02d3290eb022f33417f9b67c909b08bf214668c802600e04edc2160b6f9356c623dde7bde849b52d42f8de07f6aedb93c4864ac852adddf5f1d93c109574f6598b0a1cfd224e2fd3935d68412edbfc5b529c0e55a39723bc8fcaaa64fcfe9f2a894ff721c9b5717d7e866b0acee6197b0237ad57efa5ef2884f24fc830095f0c67c5e89cc0573c8507ee8cf383a2fe37acee500ff6c168d762202e9b52663d0bf153b4b12de0427877412e5911bea1385ef13a9ef556101c9a7113bac284b264bdeaf7493eeb6cb567c792748bb6a39008bf25c02570a8644fc504efefb3a3ffe6a208e66489a9877eea2d4729880e064e56ce4c7d36385d4942c14beda949ecad42fab55b8a7c9303a53702d2c34b7f130df769d5c493cb686c86aafdc6e88997a4ad0952063d799e9c161fcc5a0605d26cee060f37c782b4261ab13b976e675a5e7f2bcc587c483a0216a260989fe8efc5b3cf845f112d0eacc725d19689fd982667aead9b078ff221bf2b7e5fe119352369670eae38de7b3adb12c69b280c0f0da223f9a6e60876082660c54f553260e4fb00caf734818f44e5772f04ebc1bb8de46491fbd8ae656011866d52f84810f4d4258b500ba637a85820718246c7ead9153d2e420be2950213e98a78a2477fd5fc54164ad66dd9f1ce83318335918e7175d80d4abce696ea4a53eb2995c34306cf001895be200f1445ea757a4e81e3e546ddf9fce858f323fbf62227f911f5fbf40feb58da5aa4d9c56cfc634ae38655c4b84b0c9d56e8fda5b7a25159d345142d09ff003c7e5c0b24b30f609d06eeea0f1e9cf456a3dbbbc99d8fe922b5732d99ef7bc275003bf58f24729438c56ede80e8e937a7701a5b9821842b08814a0b12986515fce3f95d10823b81f978f1ff76869b22c3216bdc7452c6b0acf105a901d12822100514879134b0a7ba2b9b705c6c787cb0e367e1f9e5da3f7bfc9f8779f125735655134d353b47520f4cc6f3bf01649301a34c5f63c521bac92639570b8c25be610bb76cfd876739a160d272aa8228897a84c0ae0bb880b8234e8f2b6e103f960627e8725fff2e3c052270a49d51275d7272d7f21329296aa25a61d1872900b1539a43308c4dbd30b3e84cafde17085dfbdd7f04e6a86560bfd3d64a4bdf47d679d7c7fe9dd5304b5c19c22c0be9b264f09618f7f92cf035d9380801e3da667a18e55feae3634df0df12b746f8ab08cb7092750b07e74ffc3e364becc80ea4440b127575bfb3f842f107cbc976aa2c011e8de55a6289c75467bd5f8696041e5c9c37390b73db724a5171e546ba6e76a3b574e71b9165cbed268d1a4a6a0483e8a239e731c95edb68765ad0a3636ae19b4c8435c210486b57399f0403d5929470735bc4d871469aea10c42a2ef1e5b7e0af242ecea31662f0804679d5f70d5096f0699ffec27712bee51f44253c74ce0ce09f8cdca9ef979961e285248955e03664449139ffa49e922db5ced0a9810140fb5edb1cc459897746ea08dfeda9fbfc0a536c8fd7d0dab6926082f05492fd5bfcfaa8f4f2113f5a4411cfdb8fc937faa003c11bf6a44f50c8e790bb4277435579695f630129a8017dbe8c96f488f5d8993a671f5fe8ede0f72866cf92c3f47ab83ff3d7f781144e8c0588f8dd9070d566a6df946e1c857afff1fe649de3e6158519efd1bdd6001856da0fdaed3d1628c447eaf4e630e402bdaed6f7b9c272c32581e89414e511c6873fae40ea287e3a383b385e061ad3eab2a15316288287073197ee6d061282273f56052de09c2ac8b792874a93c943b18bd22b35ad03530d4b4aeed97e1cf334ef44a07409ca8bbad232fb43cc6ce5c7c05837ceb36c79adf3e3f8c7863443b98e74b797052bb702c3be61de0792dad7215c4dd45edf57ca6ab603d684b7cf3cd49f136f6962767a85bae354371ffc48569b2be4ba041d6d04fa8ff925adbd021da1f673b897de4d3a7dde4eeaf5c1b733d9bf31c0d9dbc86c3d8b92bb5637823d5c19e26767b6a974db95166830ea604822ae04018cf61071e27a46fa06e9cf961ea3b392d0adca4db503b6fa48f84c7eabeaa151dac904715bdd1a9bd4c97985dc8f91f9bfb950ba2d174be91b6f67db8f261e92cf353512244bca3e8037697b8a16eeb23af5bcab4e200f03bcc94f95615a28aeaf604834a4566249013da6282fad98fa7e699fe42483b804de95c610aebfd6fdb63a07b9bc9b8933b4f6b91f50f6a73deba4e06329b4ddcf376ef5bf4bbe0e29a02cf2d05e46af3724df6eb34a90c7cc259ffe7cbeff835e16158567d3895926797923d9e096cde29458f54440fd30796927d10f34dc28377da43cfcc2e2f5e23535f25fd205922d422a17292f0611e0cd10a5bf7ffb151cdf8b59e00f612377e1d214c25ec073e09b08a7f231eb47c72f39f5d9020ab91f77010e785fbc36f3021ad7c51bffc1a0b4bbfa0d8bc212835bb545a37dc28f70fe9b5cb5889b9055d30f2274e45b2a2c7b2cd91178ef1f4616c4d10072a08ebc5e46b3c5570e5979a31793f444c177bc6c9a9de160a015b7690f3a759066e2cb153d3972eb4161a96e83cfac7a33c87a6ec82d47fb9013025a36c7093a73c3c4bbad135d9cf8c1f88823793407fd024a228e055c893b56775490f0afc17f2e5b30da5c2e60554f2e6d9e981d1651a6f9ffb9df186fb627bedc426b141e895dd76a0e178dbaea75bd0ae17981e1df0cafb1d352d691dfca49ea2b1c604f9455fe4c8bde21cd4e4000871a197f1bdb8520df824d56d340b41df68de00c696dea369a464497ae08618c4402221dec34b63c593256e2e3b764c211fdb80117575fc49fc6f3f962c2430b2211ad0c1cceac9a785bb077f29169f2e43415f3f763891833e2162e54da17cdc3d78b5f98bece8fae09ab692d436568a9456eaee1c78f373e752ccf5142285933c5561f4cdf960fd1459f8d8f8d346b603da61d3ae5fc679e0b6ceb62b2b78049d8723d7c69969af4f2ac07530926750448d6d2d84e8d7de8b896f0979adc623849bd8c5ed0934cc2cbfef7f126dfa2cca0b0f5fff56056a360ccdb55d45d995a0f8b3ccfd3d2567fcd071b4cd1687ac98b4d8529057b72d56d2e3f07e845340791153709f3a8d1ccca0f20318fad01692731bc7f69b509e589f5fb7c2698481e04e2bc7f108465b0323cbbe08cd02039182de829e91340b70d02929cbcd3f665744a2ae445799aa9b26497d56e9ef737d5e7196f975c48d0bcaab622dc62c798640eef88ce52226ff0b79d341f33fb2f9e2df1606d699e2c7bd23b235e1eddda6037d292f6e6e2d44a41637ef1db22d468ec040d08978d6bb4ea55bdd5fab58232e5baaaad65ef6f0543c5b9cd54648b8b6183a14e69a2ab603679757ad3178c90620aec85a448a45e456ebb9d514296a12e8ce2b07df1f8c247d6fb29b9dc3f3d1aff32507b491be73820211fee5080c295322abe6bfa824cc773b51c7074f45b2337e5a74786718e43dd4168705cc04d317e79095e1407c98852c3a627535328ee80a0f2095b4c19ec9eac0f719d4e2aa9417cb3e6b90e9d830e24e17b774df9a4fc345a1456f34c8b74f865f28045d2fb4a4def0dd282b195b5af16cb2767825ec63955c2557a626750c78600b8f03c2bfa780408830af748e8aedcacf3e823eadee9434a260a8fbc282a373a66fae724a87448fe87256318c10461d7e4c4f9d005d836d705ad7761d66b5270a132831422adb656396d0ead5aa4d1250220d680e124e161416f062cb56bd7867010d64ff1a074d47ce038533af40747c0b04889fd155b6442b0b4a628244a62127b251edf74f6cce6c068c2c90af4e290eaebe94ee4b2476e1019bd032013cc1affff2cb8878d1a3a66db98f8bebb562d594c700068c35a4f69d3b2f2d8805aee069e4012dc1ec13d55f8859231125e2cc017f3057212ddde36c75f1f179e7fcc33eca142216940b277d718b261fddcc926a206f76ec6766ca382db854e2e4fb5a47d728abe5dace36280216e8e093cf2e1432c600263c508e56a43c7ff6d7b1b994a6d2a65cf043cec19aa06a59c077bd784f48e5f937daa5dee2417ecc6d9e817c63e74ef35b5b118638e2e97db0d6c4c4d8c788a4e06a1504c9c77c46fac6c3b1172a7dadf35387c319880c98b38aac75ff577b186062be1870731b6bc46d0a0f20f008e02783ffc64d9cd50ef8e68945c63b426e4d8ea8a56bba542af5815129eb6079c610bdeaed2a291599d7de82b7f0caf178bce68c5c6b220b00e5f6edd52a957d78e5fee8253183b7f9118548d7c69eec093084764f4a8a863159db039c4920b4c12ff4addb4a389e8aafce7e6dcf6b2e6f2aa789b0471d77849d2669897d984e0576c499fd7f6b68a9d908c82132655634d4ed684da68050dfe37ff571cdb01652623dde3d6f03a9510c3cbb5c39c5cd69646dbe8113332d3bacf063b46c808a5a0ec0b16e13d3c9c6a34a8af3650eb7e2c2bac217ab12f7a7dbdade92fa430bb438ea0444b0d4fc5bbd4416488aa46f1b843406e00efe1f006c9c53d1cdae96b5c09fd8a5d57787756ab24fff1c0e7d2efbd8b76ac868df31d4ce95255ced26964832c4f65a82df33a8db275af1fb7daf6afbb12efbbaccd066cabb6c069021b332b829da1c45af6fe6ae43643999485b99382d98cd6beb88801cc18ed05918c361c2781db25828b51a4130723847cd849871672be03a3e438aa1f9f0d6e791080062e9a02b5e9492541b084925b23bffa286785b7ed1ffe5c3885a4bf4adcff0133beb4aafe055a4ae0e2322eb94a0e05430c70de751298971e018e74c130c2ec6757ff00e17cc2e0792a09e3e860b5451ab58756a511f82b4feb50be507a481a65c94ed9725a4763980dc30fcfa7479abb1b97efdc58f112affff5c2d82ff4e6ba5cf9db171fc66526dd63c12156597a86925f34f47954c1f9851794576a6d7dfe2ca0c16f35743bf0bc71f96d17918d837741109e7778d826d39547c0d91293b82caf3c5883e4d5d1e4c693d06eb7fbb32bd6e80c5aa91aca53684f5a2ac36c3e5dc2dca34e5a9d9316c65cb960b72f87e6056ff7729b931a9cac7a7907a98eeb2b7c416dbd3ddfd9838bb592a1d676d3e5e336909480280256c2d3ccaa46085c02031336365fde351ed4efd27838da2b836011cb80419dc1a74ab959a5c19d5a5cf3d2f17e3cedc79f365fb8bf3c2521effc231e206f177f800cd15d69751fffa3c399ccbb16beeb1fee99fa3422518453bca4326c13000980e7b3d03b364b404c5e942a23664b38d12fd5a280617fcf8659a7cdac2bcb9db1b8857a7dd1fb1cb35ed7bd5f50201a931b29b96563629cbc8693cf3c3c1acf1ad3730d7e5843f959d9d2f73395803f98a14d0d8c53abb7d8b19d6a1c75875fe4b240bb20db74a5afc17d8471fd35e88a4c564be4a49a90c8568a78d61b1b4b03ede9bed0735ca4fbd6f3997bf3dd8eb1f6322b8ed2202f8eeffc964bfbb853bf6dd6e5bf8cc14ac984d9762483dea1da653f96f00aa3c3179de30cf0d24014554a997805061fd49fca2191e1f691c2e1fe7cd05e5b59843588fefcd2c57e74942b811f19efe99107c2f54ea8b12395897efd75174cf315c3996fb07b2143c5f1513b23ea7a6ba32af68df677e3c742d4301824e04488dd5db55801933dfc2bc32f251eaf18c700a52615808b1e18506373fdd752786472c45fa8cd6bf02c2cfc190a069ba0c61c2e1aa347c8bbefa4293b5ae37418e010c0891560a31f58451b19299285b1920acecae3c42ceb096748d71518c6ba0215cece9125e1a9f5ab59a43ca7779e4369ff7e4996a1c68e2e313ca897ebdbfaba52bf3c841677d15da22b4c8491baaae785674c8e6c07e066723e87f18590c4033e377c1838a7ab2d510e039e53ae085237a3471aefd57c46aa1e165a1f0cb27603ed512c9668a790d9a269b3cf0cb8e6bad93b2b6278b1d26419507a3791df5c6a3d83d1b299f80ee98f54966f7a83a4e89731e63fb16fd585e5823724376ab3ad1aaf28e25f176e5541d703f42d8de4f002be4bc37f9b0e2ed81617755935b3d2cc94e1f1ffcb6af8ac6b1d33f660f41eac8615e7cbffaa591071d78dea462bfea396dfe93344de01794e9ed3be2dfc6cb861311f66f2571b06b7dfd569b77c9622710d2f44ec7bbd8e11d7ec8da3c575b398b70952b0cc958f56e603002edeb93ffcbbf0c01c20f0cc31db67b7975260d6e4dcedb86e7c1205f208408917fc349d1beb631f03c286629220c19b3f21eeca81231c86cad38575b87aefb7239ecee4a69a3c0c755065cd89bcf20f5df4ce4c01d6062dd08a12b9380db0a39d8f0013fa816d1e65d23115e0de8618c755a7d2a8c4f40f88ad6fab20de0e5f1d437a2057e4e63010dfd39972f63704981491fc96b2dca916ea19ef8fc910214ebb66d5c04afff1f02ed7a442e68b33cbf57f4d1fc769277812f16bb00c594697a078d2bbdf44c28742720f9d415a2aa4ec3edf130b31ca728098411c954a7afb95576639eb3624ba489cfb14a3c5b6287adc105bff5ba70c4a4553a0bbc53dd8b78633289dca0054a78bb4da266ec9d80f7ea9d29e108b25bad5050b3b232406049d2504b23eea7005e9df28177f198b6edb8ef3bca09bbff38aad60933f090be905573215acc9c28c2c096f10663d3d69bbd24ebcb9165c2f342e4ee80955eee1c1f2c0150f694a703f84dec383412882f4d1990848532f745fa3567de00f1b47bf4734a7df2d5eeddf0456b97ed435744a98242d4d4c58f7e83aa759917958a4d851d7b795e5f6e4bec74b0cc2c88742d9d3b2ac1375952aa99f2c6db66cd8eb44e8a94d37bc340388e88180e7c84f7c51201021fa7101853a46147463dbf9b42ff6af41c0a3e5e1ab63150160648a8708373a976347a73dd9160f2c041e9bbe54364e9c8890ac76e5666f4c53d92e51de43ffa24c5d51388f0face170f567516be7bc3e909a49eb8b14f236b753400cb333af7992c740b6c5feba521e1ee3fa4e2c28e70f560ea85656b3d470a4bd1087491957ad077677bb17ed3c6bf7a63f45a4f68df26785521f7412c1a59c935bc967da328daaa24c4b90147914d863d000e1dac2d7ba191d432eab7cde73e90c99e5b5567d9e6ba5f44266618bd019c4269826f84b72c68ffa69a5d47cddd2cf04a1e020fa70350f125ab373e320862d5cd4beb8d5ba8b3b0b461b4de8d6fd1e84b1e4b7ed8feb5a255fffde7467773e03b5aa8426075f8f6dd166bd6f093c7924ab2717566be3201e9b537806f80f6c7de45451c4cc528181d465df16128719e3a42230aaa75c9b456790e481a1dab1bcf6deab9a280c18b9474f2c6c3acc2b3f97cdb07ee0b9e8d53fd395edfb68fb2d4a02569be64114ebeeb9b94fbff0b38d7f3b5f58742161fd09ff3d8f3eed3034ca5db934ce9c3396441765396c65512160ed21cb42c10393d498ade06f34b73cd679e1d533de079a1b7854edc2ba4094576d10c87743804a2c51bdd3e79bacd905abc460e86c4aa7a8fa40b5af31e2f183804d46dc218a9964f52f9d650217e592c06df6e2fec1bcac27727a960cd6b0a90c399d7c415cd454dfba924aac6f874b6a1bdd5b92398f116fdba0a5f6c14dd6729b04b687fe4a7152c9618817441a025d1e855d0a1131a7c001734b7df69d6e0e450b15961a7583b8b743c657d828ebd901b6e3d321f7471147db7dfb1b3b50d5fb28988160ee56d60fd36e2349af36dd006542a401a6b0a2434326d7dbc7a9d8dd8c924878ff65e60ccf6e297823996a547460ed6f62dda944a51fb6e800738149c8f111e11b8d6125256cc79b5088b1c30cedd888481c60f68a096d917ce6a816ba1190a33d1e8aea5d9544b491f5b580f23294dfa0d7ce756775c08b4ab077a993fffb62ac973c3b0f0502c338389333ef8c449c6a1fed8d8bc6a9a41431e6045e7a843a4e802042b161cc715f9df27ae35da033cbf742d1d4029c2f937a650babb4a570ae411577c1ac0e85b06d055eb7b5c6c698129e9b37f790113bea4dc594c89d561aa35720fbe8858672f8bdef3cd911ed6f7e2601f011707555b1336d55b3c5929c878441470dc171b113409726ed00bf59a3c3fc4f92fc58ba55b5142e524d8187dfe4d78b6b8266b440a18f1d86f4c0c54101f336512e2980d94251ba01da8100b5f705ccdfaef64daaa52ebe71c70689ab03253b13ef16fbd052d0a16377780972615e4ca1831c402b78a0caa7ac867fd8c68c5de12a772b2e267f0bbece739eb3f5b71edb3235b033093b0b221b37b4c6534dfbee537391f29b15017403d5aa4eac775307838e6737b0a39c62e3ad8b3616a07a9feb059dc8d30457671d02bd84bbc74b83294d542ad66416beffb3bea217ad0808144f133c7c2552d7a91a363dedee6c62f40cf11ef2d1352a16baae83f7538075cc26790c5bb443ecb0a56842c99884f252a137f46875d1f4d7b8bc30602fcf0226eaac7526b1242954fa320676810a6e7eeae9f53742e6ef113f36a78ec2deccbcf25668890e983ed2b899abd0a73ccc9acaac92ad695eb59462fbb2d40020d92a8fcedd70b31dc530fe67ba929925342c434366ff51e7cb62f8b75de82f9ea4fd8c1fc2ecd469eab06d25535b69bb71c5f1ef2d93f009523b7c531c4c414188f45676262594316c588156c6cebac6527791700a3cb7c046bfbfe238ce952362301d048c75972e106fc57913b3fd74112dcb41e4c55048cce77fc87b4afb3747a393ee6a0273422a84d8dad09b0cd430c0a8a54ac01eb9b0d853d8fb8ea860d848e8e48272d1c4b144e2a8ddb49d6f230ec7ed87d663e274afed0e12fb0ca6f1e280b289cd283261443d8cc143db1cb54528b0bf5427ed764a341a5b702038b6b2f29063604909006bd45dcf23637386a9d3b37c4a5d4ec8e65697643f27bb3c70008bf1b99261463d2bf89b5b27670929719b325d55eb73e90faf5ff6fe53b8a0911d4aecec742e3a238e38425c95a7205d9637c623317593c9334f8812aa4314237d202c3b7d1971b977ac050e051f9305fa3a1fe9290384049a6ef78855171fa64dc6cf8e432f0e60ff5713550870edb493fc6d8e06ce75967d42cc31504e916bb92e1bbdc7ce4312f42a4f40fc6e4003d10c5faff71ddbde57ead47e956c0b8239c75b202e38a3064dcfe340d5da22c35b138058a3de6c9e57a9998c784f3d6a414dc031e8c2a16129d5fb98fd716fbd153c33799bbd11da6362b82f0e2b191b05d93cb469da28aa6920035c7c35523019e1fe824440e308e9ee4e7dbfc747be0231654c539daa0c6ce731a8cb448e680655ba4ed9792fa1257339c495bf5e6e7f6ac31198a5092881faaf93e47a38dc1f4453c97fc8adb1896ff919e3c152eec2741d92402ed26471252f23a150a67739102ecf3fe59c3b4d824bfa7d8309f176647d0aadeea9703be49b061dafff443b7311c683f7281d287732272a0548462196d278f62b82bebf217cc81d61f69f70f064c1936006788df8b75c1be8832da77b720f0ee59cbb129e52bb035fb56c061f7fd6cb9dc9d2bafb9b9ac4b4fc7f78a9092469269ceb4f54af095b2a81da53cc255f4014f5a1b83736fed0263cc91dc32397e5a05dc40dc78c7559ef6c261248d091b906d8944eadf750e9109abdd81747e8a0dcc7e505465c7e8301a88a298d783a2fdf8ce5a67fe21072c0880d8896fc6ecd430689e1a451f524ce96bd11572696a6c4b10ad1ef85b9ce0ca18e5e11b2f0fc89d1e700679836ab67c6c94d5ddd72615d7ce958e01adf12bf53be23570b09078d9b60bf403a62b830bae535d13ac7827ffdaeae58ba92c9fc202ad62e105dd7d8abf9b0592f375e68cae880456906e1f599a77510c6a07fef4bfebce7d259c1d4c9d564763789df09b0a26b92a4264514557dcbc52deaa3126faa207b163ba81e23a2e68cef78ac83debe30b30d2e767789230fa431cda2bc575bb51706d104936910074cff5ea0b77dd82bacd839079971f4d71153b337b80d8f11fe6c109d66f0ad6761c58f45696fde2ab3d31aa47f77cff0daff27dc447d79d6ce0cba6d1d7f29464f879cb7a263aa55e3a0af89b049444dab88b1c76c698f61911ac08e1fd880c09c46703442859e37da3004593d1ddd495447c4cd11abde425919987f28a7cd9c82f404be84019767df1523dccb851a431778437071572f1fdbb33d92f42b4b8366481ca1d43a07022b2dc084ea7b22693ec83e8118ea5f4638d266d7a15db8476f1dffedd9b4da7ac85bf32273769eb92e935c488d55df663073aa93423d1b05d684ddff845d93722c1baaf7d31f1cf81482fbbac2e099750f4033b59a6db7de1815cf2fff6b310b9c91ba9e0f1b67512926c9e0e541f2ade8277bb901ef2c061ad68830acafa2c9ab86aaa9fc8c4c3454be491f8b827b42bec9cae872f3761de556e7c58d604da287a8c6dca165c388489b24ee3c93d27907b17d32ed3d2a5443ad870a949e6cc7c396caecfb44f67eedc0a972e5f2735220545cf5aba3ee71f52425b73583044503b940bda8aceceb8dba0a5ef5e4bdcfa177e72ce6a52cd22daafe6cc827daf29a6b5973a3bf89b93c5f0738e087875bedf89dcc17f830c29e5ba04ec87cce24eee79c3247f3cb311c8e63dbcf6a35ce214f8b413c6f9095c3ddf4fc38cee4484f7c513fd52fbea7f6d5bf6c3e146698c4c6d17045076d5de12620bada9fa35fe079e21ac26ca7bfab832fc23d62fda699d509f9bf4dec152d984a27112d21561094743a1f34c72e0692782f6b59ce9ac22107c99faeb86131c4b8e57f39762fd40c818f77873dbf1b2df1c93dea92687b3ea745a4bc26167e338c3c7904b4e405fbc1db3ae866ba3c13eca0a34fd2e3006e89fd15feaa51c7801b30af5054246ac25f01c5fe410216b9de3d269d5d6124b4ff0633ad722dd97c510554126ccca0192e1be7402cce061261f411555ee66c94042217dcca42bb5790076f6e77261b193468c99ae3ebdad3c3b5ec45b1d7b78a6c0ae0122f408c7fa7cbd973a7dec41ae7fd1a70325db600ff90d99dc9c63a3a98840174f8875cc2fd7639bb788c60c969a20dbed08124d7eb3c10f3034cf20752fa54323bda46c222aa69eae33c96fd7b017d1ef0a51ab711b58c9b0b4cf8b7fdd774f93ff171c54ec3d7b53a0d17f3c9da887cffee62f34e2f8bf8fb1a6fc167767a9b5c4f8f46df9cf4081ce1bd398ef889b8e5562680bd9ef74fd8a01a1a80a7d6996991ba0dac8e0294cb296531bebf198d71b9ee2040b3c3cb32bd153482021b0a9206cfe922ac7edfd0fb26009349cee10dca874bb3d8fe831f3a9878e08b5f5eba4f54aca6ffe463d668f2c39ae0c9425af44ee344c1d062b03811dd9afe2eaf23b1d1cc9aadc83baa0442f8c527df2dc00bd94479074d6e72bf273282e713174ebfe6e5b9b603e948177f62ed2d0f1b864b853c1c2904aa59725c8d17bf494d7e17da4e97e1893463bdcf727a5062939fc14ee8516d77ff182c091c9e668acf61d90a83c792579b2afa0c7666506e04cb3381740c342a6441335652180975600c9354b62021b82982019879ffcca2eb01b76c3fef6871a49ea9f67a2f1ad01356461ac1261fc440ca31a20c9a076d07d4666694c35e160d7f16af1a8aae23fc51773e959f2cb04b058e93b905e700bc0c2471d683f4ce2b8caf8571b2fc5d01a266d32976e34e5c34ad071d7ee6bf0cbf4cae7dd11d59d3768dd53716108754c74d277bf94ed15d28936fd8421167a12317226282b09bf1782007f6cc114cb072a7f6510376d19988b8f7b2a264fbf5b80c720f57a115c19ef2fd8bf1c27d6b8a72c6ddfaf7937d62ae107f00d1be23c41d62cb2c7363d05796e2e6c6d2241dc9ce29a671ac0805f42e3f09f8500d1b327f4f7dcb9c76b47322fd7129a33281122aeb4855d5bd0b22f3f3d352bcb599ca7e6ca1941c17678031180b4aa14b5bccb9e246d1756d7e2f172b78eb005f01e27212a3a98c20f3a08e3b224272f5c18e45db99b2c9400e249a64e6c0a8f693dfb75a93cc113ede1a686575253ac19c22324ed23d1b3fbaa88bf7b1ccd7f8067502ab4d093ffeedd89aeb60b8aaa99fcfebc3506428ba2e88e3053b144c344d8195fd1851c5daec08be0a6ff7a4b577026e5bea8efd5fd236129fa2abb60b841fb53f90f91c833f303dae0ab43b038c7abb95daaf818ade20188c8bb194fdfd857b79fd14064eda86031861e173d3462cca07ce399066a359c02aa861e8382aa109778d998c11cd650a88764b03a1ece52d6cfee53753a3783c16d14c55cee9946deefb7119abdce8f02faf6a8ea000e85c381d57c2c3af4f992f1c39ede18c3890c51161dd5bfde54cc74c227c7c492f3e33e831d771611e2580074a08b46f5f0106d3e72d939e94e8c77a69629449f216ff80f05d1d49fb98391f2a5576737da142b71c11941e8a670fd92a9d8fe89852e2a5816b9cee49e7077816f2c56f3b48117499fb74651ce2c9328782ff2607a9e99abf222833e5aaae9fb5a9f52daef4c73665d0b224bb9b2ca4726a83bdb26d3b76d1e7129c1707d693a8d43a27237e0f9139b47cf4db241a1cdfb367663e36e431422d0619dec2eb84486c4f1590e8d3fb5698a514c8e55f8cfbebe4728638768de6cee8792c51e7cd3a4eb51974bd8629518896d1ede271e7c9fe68302c5d9c648e40dc960ac3fa9ba548a6f496677388273a27a413003aa2f9a8a50b98609302fe1d2f7105f8d3ab2ba7592ccd1b1a2f355d1243b8c8174c5f6882fe35139be221272f84a66ec6c229b92e9091556bd8a073fa5d27b352f3a85dde6520d6c8783362831c3193257bf5851df5596c0f4f8c179dad6ec88eb68251ca17c769ff8c1257c79bdfbfbe161409d3e3f7de572ff4e398de8279e4043b6d75cf11a364724ab257e4cccb4ac9ef475d1f94f0d27b3d4d6752fef0a25f5537023fef2bd47db6141a6f80a99c1296b3a9f65eae51156f57d6437587b878d963a321abcf8aa8a546d0ac074216d05282e64890a7d2b2fdfa5adfd245c3490170a4c50135f86598fdfd940f18309c32fcf95e8dc66daedfaa1b5111144b45d55af2e3770478f2bf394822980ec747bc1810df60fe052692d8fc7ae801814bf9bbe8ab1e07c2c230ec7d7afc9b5e1386492e3d298195733c2241edf5905a15603ea8397e34ce5037b82910712d19a9818cda137ab93d5089a25bdc1fbdc032a0b6e4990e45869078e9cbe591b00da71ff29d0139a93799425e7fa02559f58a022af85c393c5ffcab8910a2b0962f9f8332df27933680f07de07e7b61ab0a1ab707ca11170b1fb5a3a14624ebc0c9d051cad15666300c3127286eb599b316e3f5e21879a8058cfca90ede95181e9181b58b16a9015a2729e47055c2866feaeaf2419ba7762e8046cc30f1a2b80b995af147e2e9dca2b327afc8ca404a2860162fa78a52cae63b49bf63dc22a7d5747cbe5d56062eb1428d9f38a5f8c8563fae2caea10cace5cf939e3592ee8e52317a012e1cce7ed95e7df14fc5e310849e383d21ee3a535f9de1e26cf7e3ca4a7c0184a0c2806f2ebca7c1cc46a2fc5f36b5644c11bc1feecd6fbef9ddcb9b069e0c2accb76e7c1cfca5003c4e19638a0c18a599448ec7ffec94d688abd85b44a73735bbce2582e770e3f5425fb8455ff582cdabcc6c83d3f72c7dee28a1c59923074ade9c04d8b965a717b4e8be041eeaef72fb711edf510290d56982e859eedea7bc071d0492456ce99525a0cbb0af2cec39e3f932b50fdc7c6ab4637e150ce086eeb6ef002e8aea34aef04821e5c291b91b426056f9a0d1f45ebd4d325eb3c89b4c4bdead1e7334aaac3ff7b308c1b6cb9a39995deae6f71b63140f22c330991734821c969d1cdb0fcc6a87a5ba63fb3f043f13a07b696094cd0bcf630ff32e93c156d5a19126ffce2d8efedd4cb609b254a74f73e37373a96c462c947a833338c13e754a9726d853f3402e4d4479c9e422f9d2c1bf5bdfeabd2dbe755d4bfff67392a2f017604ef1d34adddee3c0cd3ebcd061c6e50af699d28f8c453c48c6b4d9a465c933e2f868ff67be00ce595a5c347b696442b4bcebd367265e9bbfbff0ed56abd3cc621231d2a240be982c03c0ca917321a08bb223c887e9f9b2a9ecd1d86ae2bf2c8ac69e2b5936f152a70eafd3f80dfb68da9585dba16b2fb1dceb2f8e260ced12484c13b005ab71c535097f701810545d1c491416c7fab35d6de7eeeb6a7bcc9ff5eaf758ced68d5efdbad75414886ce8fb0767ed13f259a56592d4ca46882316653508394d48e37f1f6274290f02feadf1bba431259904336cc7843d04f64646d6091841bae9477953ee72fb2da020188ea570db2aebfa1711bc933a8f64c4a2ba50684e2149c65b69e9a907041384da6bb4d44f5e018de3499695b87c9a22484db4b2916ef534b2b0ef7b7c24a7410c454cfae27a75bbf287766742ba97603e39c1d9da51a495426782088bc62bac61bf8dd5001d58766842c43937e7f1152d3e15e0f9f11672c633a4e9485c2a7b1af46a3a5b2c18c85e12b832cc3ea92b598c85ef971e88ec9c5f0678f1c3a8f84957867342cd27b1cbfbb5749d3716217c3534b2b40051aa6e9afb9c407ec40cb2c6818d85d9408a79a311a3f2fb2d82ebc322761756697a2afce48add634de2262728370b7858e06865ff01ba0641da50b3f4095c7f2fb8cb4c246ae459aa9b222477cc5b15c39839b99fb9caa8350ed7b525641b5d8747605e466f4b363eb38ccd94b0929ef67fc3322498508a5209f8eedb2884926dc7ff7b9a72dcce072fd6cb2169209b893b121b268a5b795205446d24c0bff22cce17aa3f408cd84e53b3454c88b5489db15528be262b13eaf8e6a55384aa45fe377e3bcccb75282a7c30154a138a762a8eb73fe704cee226ff5991e68f61c543eea534068764e6de5049bde6d6622884864f8d42756bf5aa8d0112cb9b7b67f1f3a7c788590fe877e924fff039911c6bb4982f6caddb154500eb0a334e718c2b54a8cfc742a0643741bc069e87af0d87a8ea12ba1357bda31e496a3bac85743a76ada05a7f1a845db86bf11997756bc02e3313660a7156400b8e738301950ff5715fe1dfc588a256178d72fe9f6cc845ecf040995539aff317c1cc36b36a467825af7f691dc7c91a0b80129137b93ebd58025f686e53c82811e14e15de73034ac218bfabb53568aabc0f55033df4727d22c7974c383e0469c076dcf4f53943150b4b8992320b7b85ae2a80613780c71bd87b61d0f4b2439ac3aafc140e91a49187fb9875438c0a04e6893ca9d60928a663f477c91981c70daeae9ee6f2221eeba1caa7ba07683aed28bbdf367eba25baa57ccb887025d4041082363f02c7d1e606083e716538d7d2709ec8991c643dca804944e32c0a8dcc65970dcb864de2ad57c767072826c144043bc17027acdfc49876a5c2f938aa826a81ba11d6b05c3135a0c9ecbf5e2e22535c946626313d362c1bdb149840a347c6b11e01e6ec08963de819bf8384c60e8e435d31f31dcca91e27226283c846190187fb321b55aa5f18162cefd4261b045c71a9dadfddcea3a38ed045312e1325e5d17d648f174f41b81ab9bcd856c154f115c4cc6177a3a67e99f299fb9dc772e44e7c7fecb8896548205ccf1988df79b6b13881a2dbc50099bde764b6680edf8de6fa92bec507a185c1d08e04ce135af8a171f23a34750f31ecf612c103b768b5c719d6f2f75dc9834a5ccc11e6cad607fd0be0b40843b7f6722c12995ef647c2c7aefe193a7b05f8b31a1f53001c40b5d9cb63d03a91601f1322861c37501735b4d4ecfb56c78479c21c1050812cf5a62c80abca26a5e4ef0d1490db41d4351ced150786b41f302edb0c75c2912df6f799fc8c98d36e211f01db3bdb7e3695ca6f31aff6c1a5d905ad2793f665dc76d86cfd78a53b7685b9f363ad94b86228a8bbc64bb8c4c836832ee05710bb2b678c97a689f0fb46bfc4f60dd928add211b503158729721a4b50eb93f2dca9ee6b4f229c2f90976081625111d779e4741641b7dffe71865d349d3d0c6eb325b464616bd0d2a68cbb80dc9b49629b9e1b38db09988af89716b71b83a59bf133f155a5445581993e775cdd9fdae7edbea43668665e78b4dcd711678d19fb862505ec1122c97ecdce77fc69bf4546393d2a482fbd520b8adcd3f6f3167a29590f94fa3c298d25bfe23f0255a384ae2a34dd439a2ca95b5567f50bd70791298e7c0737c39e237b155b465f047652c0dac5c4d8c37f17c34a10a535755114549c895b33d333a98385aefcba0f548e9f49fe3ad7a5229d58314f2c4aec671532e9cb7cc09e941d5a2e83ef0d0e4cd3b22bb1d9bd02ed8ac05d5b4867c62a4c41ca99244d62cacc704d5a719629eb4bd2c6d45fd3d51b3eae8503e42906a2925b8ab977b50ae654658a9e3b0a24e2aa402250399ce474660dc56ee6a7b08af135e56c48f58b0a94df37cfac6d4c20cbed20a86c9bd2e010c0500510115cdea567d2c10cdc03adef91dd37bd463e00c4e583ee9bdafff95f564caba87cf270074bb5ee94c88b2659828780ab4c28e32468e013af95969bd4f2bb4320bcbfa8df316957e5f868bfc3fbf97bc7c60a57b73e0947c25bdbce62138c1433188ffe7924cb08f6bfe438104387917e8e45bc56$d979dbd38edbf4c80312b4ab25460b69930e7fd98f8830af673adc8e318dd832bfc9845b46eb2f0551ed497cfeb92fe1e59660122f14205e96759cee59eaf714e1476c00b85b53bca9e7e9aa9ddf4ce0c1e9662313ce7a1787c43d188735bf94d32306a66bc65a2db6d770f6511992536c70bafd7df8eaa03c5baacdaa72843001fe4a56a75a696badb52fbedc5d09d951a2f71d5be7b8c368388a5907731b23b7edfabe247169941ca6d7d6686192d07c0f5d24c8da38e3716afd79c5251ea7adfc8cdf99a0bf2bee6564e32f4ca72862797d07001785586d38ea7ed5474a5e3cc9320aeea1c089422e98d443ac9f8c8ca63cc6b064c3dca00ba6f3892a8bf3f466cc8e3a98fb0c889c6f8337e7b84148f58ed4337e694f00e383286b6bc0d84d02d652134387b47c9b36ec0fc9f524b870a64162303c20a46c1e1ab9cb510ebb385292d32ae6774e9759d5641121ea9c4420bf74219a822e282a1313e0d7b24fd7761a8d6b53b565b7f9ef45766b8d1dbe24454167c42d4eb3a14c0b22270d8ea63fdd34b950d3ce696a3ea197f40542c792dd446fc52fc72aca851f50e03b5292274e095217df717bd411bde787f5bd4974e94ff6928ea4940caee91ec91da2d14b060cb577fe320c899b90d0f35ae02ff861881a4308ee0c5bcb9ee2e159e8c4f8c807916d9e40151e82915716237025deb2f13b0f69383fa97dd9ac3f5c"; + +u32 module_attack_exec (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ATTACK_EXEC; } +u32 module_dgst_pos0 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_POS0; } +u32 module_dgst_pos1 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_POS1; } +u32 module_dgst_pos2 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_POS2; } +u32 module_dgst_pos3 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_POS3; } +u32 module_dgst_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_SIZE; } +u32 module_hash_category (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return HASH_CATEGORY; } +const char *module_hash_name (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return HASH_NAME; } +u64 module_kern_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return KERN_TYPE; } +u32 module_opti_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return OPTI_TYPE; } +u64 module_opts_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return OPTS_TYPE; } +u32 module_salt_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return SALT_TYPE; } +const char *module_st_hash (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_HASH; } +const char *module_st_pass (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_PASS; } + +#define LUKS_STRIPES 4000 +#define LUKS_SALT_LEN 32 +#define LUKS_CT_LEN 512 +#define LUKS_AF_MIN_LEN ((HC_LUKS_KEY_SIZE_128 / 8) * LUKS_STRIPES) +#define LUKS_AF_MAX_LEN ((HC_LUKS_KEY_SIZE_512 / 8) * LUKS_STRIPES) + +typedef enum hc_luks_hash_type +{ + HC_LUKS_HASH_TYPE_SHA1 = 1, + HC_LUKS_HASH_TYPE_SHA256 = 2, + HC_LUKS_HASH_TYPE_SHA512 = 3, + HC_LUKS_HASH_TYPE_RIPEMD160 = 4, + HC_LUKS_HASH_TYPE_WHIRLPOOL = 5, + +} hc_luks_hash_type_t; + +typedef enum hc_luks_key_size +{ + HC_LUKS_KEY_SIZE_128 = 128, + HC_LUKS_KEY_SIZE_256 = 256, + HC_LUKS_KEY_SIZE_512 = 512, + +} hc_luks_key_size_t; + +typedef enum hc_luks_cipher_type +{ + HC_LUKS_CIPHER_TYPE_AES = 1, + HC_LUKS_CIPHER_TYPE_SERPENT = 2, + HC_LUKS_CIPHER_TYPE_TWOFISH = 3, + +} hc_luks_cipher_type_t; + +typedef enum hc_luks_cipher_mode +{ + HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256 = 1, + HC_LUKS_CIPHER_MODE_CBC_PLAIN = 2, + HC_LUKS_CIPHER_MODE_CBC_PLAIN64 = 3, + HC_LUKS_CIPHER_MODE_XTS_PLAIN = 4, + HC_LUKS_CIPHER_MODE_XTS_PLAIN64 = 5, + +} hc_luks_cipher_mode_t; + +typedef struct luks +{ + int hash_type; // hc_luks_hash_type_t + int key_size; // hc_luks_key_size_t + int cipher_type; // hc_luks_cipher_type_t + int cipher_mode; // hc_luks_cipher_mode_t + + u32 ct_buf[LUKS_CT_LEN / 4]; + + u32 af_buf[LUKS_AF_MAX_LEN / 4]; + u32 af_len; + +} luks_t; + +typedef struct luks_tmp +{ + u32 ipad32[8]; + u64 ipad64[8]; + + u32 opad32[8]; + u64 opad64[8]; + + u32 dgst32[32]; + u64 dgst64[16]; + + u32 out32[32]; + u64 out64[16]; + +} luks_tmp_t; + +static const char *SIGNATURE_LUKS = "$luks$1$sha256$aes$"; + +u64 module_esalt_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) +{ + const u64 esalt_size = (const u64) sizeof (luks_t); + + return esalt_size; +} + +u64 module_tmp_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) +{ + const u64 tmp_size = (const u64) sizeof (luks_tmp_t); + + return tmp_size; +} + +u32 module_pw_max (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) +{ + // this overrides the reductions of PW_MAX in case optimized kernel is selected + // IOW, even in optimized kernel mode it support length 256 + + const u32 pw_max = PW_MAX; + + return pw_max; +} + +int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED void *digest_buf, MAYBE_UNUSED salt_t *salt, MAYBE_UNUSED void *esalt_buf, MAYBE_UNUSED void *hook_salt_buf, MAYBE_UNUSED hashinfo_t *hash_info, const char *line_buf, MAYBE_UNUSED const int line_len) +{ + luks_t *luks = (luks_t *) esalt_buf; + + hc_token_t token; + + token.token_cnt = 7; + + token.signatures_cnt = 1; + token.signatures_buf[0] = SIGNATURE_LUKS; + + // signature with hash and cipher type + token.len[0] = 19; + token.attr[0] = TOKEN_ATTR_FIXED_LENGTH + | TOKEN_ATTR_VERIFY_SIGNATURE; + + // cipher mode + token.sep[1] = '$'; + token.len_min[1] = 9; + token.len_max[1] = 16; + token.attr[1] = TOKEN_ATTR_VERIFY_LENGTH; + + // key size + token.sep[2] = '$'; + token.len_min[2] = 3; + token.len_max[2] = 3; + token.attr[2] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_DIGIT; + + // iter + token.sep[3] = '$'; + token.len_min[3] = 1; + token.len_max[3] = 10; + token.attr[3] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_DIGIT; + + // salt + token.sep[4] = '$'; + token.len_min[4] = LUKS_SALT_LEN * 2; + token.len_max[4] = LUKS_SALT_LEN * 2; + token.attr[4] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_HEX; + + // af + token.sep[5] = '$'; + token.len_min[5] = LUKS_AF_MIN_LEN * 2; + token.len_max[5] = LUKS_AF_MAX_LEN * 2; + token.attr[5] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_HEX; + + // ct + token.sep[6] = '$'; + token.len_min[6] = LUKS_CT_LEN * 2; + token.len_max[6] = LUKS_CT_LEN * 2; + token.attr[6] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_HEX; + + const int rc_tokenizer = input_tokenizer ((const u8 *) line_buf, line_len, &token); + + if (rc_tokenizer != PARSER_OK) return (rc_tokenizer); + + // hash type + + luks->hash_type = HC_LUKS_HASH_TYPE_SHA256; + + // cipher type + + luks->cipher_type = HC_LUKS_CIPHER_TYPE_AES; + + // cipher mode + + const u8 *cipher_mode_pos = token.buf[1]; + + if (strncmp ((const char *) cipher_mode_pos, "cbc-essiv:sha256", 16) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256; + } + else if (strncmp ((const char *) cipher_mode_pos, "cbc-plain", 9) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_CBC_PLAIN; + } + else if (strncmp ((const char *) cipher_mode_pos, "cbc-plain64", 11) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_CBC_PLAIN64; + } + else if (strncmp ((const char *) cipher_mode_pos, "xts-plain", 9) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_XTS_PLAIN; + } + else if (strncmp ((const char *) cipher_mode_pos, "xts-plain64", 11) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_XTS_PLAIN64; + } + else + { + return (PARSER_LUKS_CIPHER_MODE); + } + + // key size + + const u8 *key_size_pos = token.buf[2]; + + const u32 key_size = hc_strtoul ((const char *) key_size_pos, NULL, 10); + + if (key_size == 128) + { + luks->key_size = HC_LUKS_KEY_SIZE_128; + } + else if (key_size == 256) + { + luks->key_size = HC_LUKS_KEY_SIZE_256; + } + else if (key_size == 512) + { + luks->key_size = HC_LUKS_KEY_SIZE_512; + } + else + { + return (PARSER_LUKS_KEY_SIZE); + } + + // salt + + const u8 *salt_pos = token.buf[4]; + + for (u32 i = 0, j = 0; i < LUKS_SALT_LEN / 4; i += 1, j += 8) + { + salt->salt_buf[i] = hex_to_u32 (salt_pos + j); + } + + salt->salt_len = LUKS_SALT_LEN; + + // iter + + const u8 *iter_pos = token.buf[3]; + + const u32 iter = hc_strtoul ((const char *) iter_pos, NULL, 10); + + salt->salt_iter = iter - 1; + + // af + + u32 af_len = token.len[5] / 2; + + if (af_len != (key_size / 8) * LUKS_STRIPES) return (PARSER_LUKS_FILE_SIZE); + + const u8 *af_pos = token.buf[5]; + + for (u32 i = 0, j = 0; i < af_len / 4; i += 1, j += 8) + { + luks->af_buf[i] = hex_to_u32 (af_pos + j); + } + + luks->af_len = af_len; + + // ct + + u32 ct_len = token.len[6] / 2; + + if (ct_len != LUKS_CT_LEN) return (PARSER_LUKS_FILE_SIZE); + + const u8 *ct_pos = token.buf[6]; + + for (u32 i = 0, j = 0; i < ct_len / 4; i += 1, j += 8) + { + luks->ct_buf[i] = hex_to_u32 (ct_pos + j); + } + + return (PARSER_OK); +} + +int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const void *digest_buf, MAYBE_UNUSED const salt_t *salt, MAYBE_UNUSED const void *esalt_buf, MAYBE_UNUSED const void *hook_salt_buf, MAYBE_UNUSED const hashinfo_t *hash_info, char *line_buf, MAYBE_UNUSED const int line_size) +{ + luks_t *luks = (luks_t *) esalt_buf; + + // cipher mode + + char *cipher_mode; + + switch (luks->cipher_mode) + { + case HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256: cipher_mode = "cbc-essiv:sha256"; break; + case HC_LUKS_CIPHER_MODE_CBC_PLAIN: cipher_mode = "cbc-plain"; break; + case HC_LUKS_CIPHER_MODE_CBC_PLAIN64: cipher_mode = "cbc-plain64"; break; + case HC_LUKS_CIPHER_MODE_XTS_PLAIN: cipher_mode = "xts-plain"; break; + case HC_LUKS_CIPHER_MODE_XTS_PLAIN64: cipher_mode = "xts-plain64"; break; + } + + // key size + + u32 key_size; + + switch (luks->key_size) + { + case HC_LUKS_KEY_SIZE_128: key_size = 128; break; + case HC_LUKS_KEY_SIZE_256: key_size = 256; break; + case HC_LUKS_KEY_SIZE_512: key_size = 512; break; + } + + // iterations + + u32 iterations = salt->salt_iter + 1; + + // salt + + #define LUKS_SALT_HEX_LEN (LUKS_SALT_LEN * 2 + 1) + + char salt_buf[LUKS_SALT_HEX_LEN] = { 0 }; + + for (u32 i = 0, j = 0; i < LUKS_SALT_LEN / 4; i += 1, j += 8) + { + snprintf (salt_buf + j, LUKS_SALT_HEX_LEN - j, "%08x", byte_swap_32 (salt->salt_buf[i])); + } + + // af + + #define LUKS_AF_HEX_LEN (LUKS_AF_MAX_LEN * 2 + 1) + + char af_buf[LUKS_AF_HEX_LEN] = { 0 }; + + for (u32 i = 0, j = 0; i < luks->af_len / 4; i += 1, j += 8) + { + snprintf (af_buf + j, LUKS_AF_HEX_LEN - j, "%08x", byte_swap_32 (luks->af_buf[i])); + } + + // ct + + #define LUKS_CT_HEX_LEN (LUKS_CT_LEN * 2 + 1) + + char ct_buf[LUKS_CT_HEX_LEN] = { 0 }; + + for (u32 i = 0, j = 0; i < LUKS_CT_LEN / 4; i += 1, j += 8) + { + snprintf (ct_buf + j, LUKS_CT_HEX_LEN - j, "%08x", byte_swap_32 (luks->ct_buf[i])); + } + + // output + + int line_len = snprintf (line_buf, line_size, "%s%s$%u$%u$%s$%s$%s", + SIGNATURE_LUKS, + cipher_mode, + key_size, + iterations, + salt_buf, + af_buf, + ct_buf); + + return line_len; +} + +void module_init (module_ctx_t *module_ctx) +{ + module_ctx->module_context_size = MODULE_CONTEXT_SIZE_CURRENT; + module_ctx->module_interface_version = MODULE_INTERFACE_VERSION_CURRENT; + + module_ctx->module_attack_exec = module_attack_exec; + module_ctx->module_benchmark_esalt = MODULE_DEFAULT; + module_ctx->module_benchmark_hook_salt = MODULE_DEFAULT; + module_ctx->module_benchmark_mask = MODULE_DEFAULT; + module_ctx->module_benchmark_salt = MODULE_DEFAULT; + module_ctx->module_build_plain_postprocess = MODULE_DEFAULT; + module_ctx->module_deep_comp_kernel = MODULE_DEFAULT; + module_ctx->module_deprecated_notice = MODULE_DEFAULT; + module_ctx->module_dgst_pos0 = module_dgst_pos0; + module_ctx->module_dgst_pos1 = module_dgst_pos1; + module_ctx->module_dgst_pos2 = module_dgst_pos2; + module_ctx->module_dgst_pos3 = module_dgst_pos3; + module_ctx->module_dgst_size = module_dgst_size; + module_ctx->module_dictstat_disable = MODULE_DEFAULT; + module_ctx->module_esalt_size = module_esalt_size; + module_ctx->module_extra_buffer_size = MODULE_DEFAULT; + module_ctx->module_extra_tmp_size = MODULE_DEFAULT; + module_ctx->module_extra_tuningdb_block = MODULE_DEFAULT; + module_ctx->module_forced_outfile_format = MODULE_DEFAULT; + module_ctx->module_hash_binary_count = MODULE_DEFAULT; + module_ctx->module_hash_binary_parse = MODULE_DEFAULT; + module_ctx->module_hash_binary_save = MODULE_DEFAULT; + module_ctx->module_hash_decode_postprocess = MODULE_DEFAULT; + module_ctx->module_hash_decode_potfile = MODULE_DEFAULT; + module_ctx->module_hash_decode_zero_hash = MODULE_DEFAULT; + module_ctx->module_hash_decode = module_hash_decode; + module_ctx->module_hash_encode_status = MODULE_DEFAULT; + module_ctx->module_hash_encode_potfile = MODULE_DEFAULT; + module_ctx->module_hash_encode = module_hash_encode; + module_ctx->module_hash_init_selftest = MODULE_DEFAULT; + module_ctx->module_hash_mode = MODULE_DEFAULT; + module_ctx->module_hash_category = module_hash_category; + module_ctx->module_hash_name = module_hash_name; + module_ctx->module_hashes_count_min = MODULE_DEFAULT; + module_ctx->module_hashes_count_max = MODULE_DEFAULT; + module_ctx->module_hlfmt_disable = MODULE_DEFAULT; + module_ctx->module_hook_extra_param_size = MODULE_DEFAULT; + module_ctx->module_hook_extra_param_init = MODULE_DEFAULT; + module_ctx->module_hook_extra_param_term = MODULE_DEFAULT; + module_ctx->module_hook12 = MODULE_DEFAULT; + module_ctx->module_hook23 = MODULE_DEFAULT; + module_ctx->module_hook_salt_size = MODULE_DEFAULT; + module_ctx->module_hook_size = MODULE_DEFAULT; + module_ctx->module_jit_build_options = MODULE_DEFAULT; + module_ctx->module_jit_cache_disable = MODULE_DEFAULT; + module_ctx->module_kernel_accel_max = MODULE_DEFAULT; + module_ctx->module_kernel_accel_min = MODULE_DEFAULT; + module_ctx->module_kernel_loops_max = MODULE_DEFAULT; + module_ctx->module_kernel_loops_min = MODULE_DEFAULT; + module_ctx->module_kernel_threads_max = MODULE_DEFAULT; + module_ctx->module_kernel_threads_min = MODULE_DEFAULT; + module_ctx->module_kern_type = module_kern_type; + module_ctx->module_kern_type_dynamic = MODULE_DEFAULT; + module_ctx->module_opti_type = module_opti_type; + module_ctx->module_opts_type = module_opts_type; + module_ctx->module_outfile_check_disable = MODULE_DEFAULT; + module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT; + module_ctx->module_potfile_custom_check = MODULE_DEFAULT; + module_ctx->module_potfile_disable = MODULE_DEFAULT; + module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT; + module_ctx->module_pwdump_column = MODULE_DEFAULT; + module_ctx->module_pw_max = module_pw_max; + module_ctx->module_pw_min = MODULE_DEFAULT; + module_ctx->module_salt_max = MODULE_DEFAULT; + module_ctx->module_salt_min = MODULE_DEFAULT; + module_ctx->module_salt_type = module_salt_type; + module_ctx->module_separator = MODULE_DEFAULT; + module_ctx->module_st_hash = module_st_hash; + module_ctx->module_st_pass = module_st_pass; + module_ctx->module_tmp_size = module_tmp_size; + module_ctx->module_unstable_warning = MODULE_DEFAULT; + module_ctx->module_warmup_disable = MODULE_DEFAULT; +} diff --git a/src/modules/module_29522.c b/src/modules/module_29522.c new file mode 100644 index 000000000..c46c45e2d --- /dev/null +++ b/src/modules/module_29522.c @@ -0,0 +1,471 @@ +/** + * Author......: See docs/credits.txt + * License.....: MIT + */ + +#include "common.h" +#include "types.h" +#include "modules.h" +#include "bitops.h" +#include "convert.h" +#include "shared.h" +#include "memory.h" + +static const u32 ATTACK_EXEC = ATTACK_EXEC_OUTSIDE_KERNEL; +static const u32 DGST_POS0 = 0; +static const u32 DGST_POS1 = 1; +static const u32 DGST_POS2 = 2; +static const u32 DGST_POS3 = 3; +static const u32 DGST_SIZE = DGST_SIZE_4_16; +static const u32 HASH_CATEGORY = HASH_CATEGORY_FDE; +static const char *HASH_NAME = "LUKS v1 SHA-256 + Serpent"; +static const u64 KERN_TYPE = 14622; +static const u32 OPTI_TYPE = OPTI_TYPE_ZERO_BYTE + | OPTI_TYPE_SLOW_HASH_SIMD_LOOP; +static const u64 OPTS_TYPE = OPTS_TYPE_STOCK_MODULE + | OPTS_TYPE_PT_GENERATE_LE; +static const u32 SALT_TYPE = SALT_TYPE_EMBEDDED; +static const char *ST_PASS = "hashcat"; +static const char *ST_HASH = "$luks$1$sha256$serpent$xts-plain64$512$92561$03d4cbb85888e8f6cd1deb6581a3bb36e61f88a04775e71b3c36bdbb59a0b849$0cfb3ee8d08289d81730caa08e49e480fb5c8661290cf4fc5ef3608f550b703512de39a32aa687c5e8fe7ad1aa1ab3cfb66b387a7c4f675c44de55e2e25b449a93b9754681cd31405bb26d3a2c7ebcbe2534071196c96af7ab0d4e8d967e140feb5af97444ef2431f3dc09127e1051388a6d420210d5d5e036e95660a8c3b153b8e13daa42f781ba1401d2c60e537bc557fe49f67a8ef9d8d258192365fcb5e9a34df64a4e6211a40bc1fd8d8d95b8e8905399f20feb904663c91ceecf400dfdc6d890abf651fcc034011ea0bc06da9b1c62a86282b82c3f669d7e90b63a5d23f23ad17bd214ca9981d0c044240ba96380bec27f441077bf986ebcdd010aa9dc9a0de85e124ec2ec6e5fd82c025a13d237e7a4adc0e0b717b754ce59f4d107ea0afe7fcb1bb7c5003388a7bff626d5a8cb3f8bf2b7ca5691047e2ff59366dacac7ab6fe3c74a30b3ee6577eea092c3f4f68860f8be36d872a38d2eb2eeaea418462ea1bdfad195620b6a2e326774a1902fd370675ae50af008b794ff9240578d4793623f14b48dc4b336ec6f868a19242b929982f2ca103b3f3942bec92b5ca8474a22e1c3482d292baf37b8b144c09503d6956518ab3371994303abc921e93003d5de33c2ab32ec002800901c3bc535ecf46fde12ec4a6736e4f30caa836652dc98f97b75b8cc5e59cfd3a8c55973b82c13f3723f2f0cf2c0d5cb3c788365d8f51306819e21d22f8ce04612b79c2a98258f49ec61a74a0ad087bc17e4aaef60025cf2b1811815a1534c0b7fa2203369b545868964753ac2a58c276870fa34e9ed5256f8a967a9763090874842b76759f88c563ac406633e0639e3a29026f0cea820f4a90a8ae63f738d41344e7686c143e81ce03d2e20125dae6b8dc59ec99e17d3930d0adae5bae9058eafcfe76ecfc339ce4c94db369c4c3ec47a501ddadb035cc57d0750f0a95c4cc88c1e801998058ea7277591ccbb9dd69268ac9eabb3cc36a903e77305ee054fc7a97f1d31cc33881e72773bdfa12dc9272d7bb40f7bf4f611e71c0a4d7e04f7db8f681be040a351ff720941fcd42576b7be7c576f12f2f87aca68757e9ed55d6a27c7c9958381918ae322bc0127248304d28c3dd5a745e56e6063c83c32d81ba02e0043827c2c7358092de3eb7d28758b44dee4852fbecdafd0ac6dc703ec029c144ee148f4ef9a537bde5339f8b7b9926b3d2cdccbfaab5c668020f4f49eff2fb3cec4f7814c8c1be6e3ddbf7894aca9adb9c5fa596e3f857d62866d393ccf3b1c6bb56ff719c9b847e2472a923e9ad4e2290e79bec62afb41b48433b08dfaefb4cb67f0fb214f00c80f4b7bcca2dbba489540f05f952ddd3042c0407dfe5afe407be9c1289960db5bccafdcfc0ee95b44fbd82b4713664866b3021c6403b60734f02f7a337f233cb9bf7eb40c8f25c498359af7ef3d6a9767667d575b12ea89f06abd58b24a563ea336539eb203334b42c60f4ff868be53e8f97819f08aeb04d5f2906486e0b48214767b65c12317074d41fbbb2d231d717eb6032e5369a678cede5ba2912bf621eeeb5c02460d9254b9f3ab166e5f190582a26303be699a963b63e9ffae57cac27de3094a10525925cfa8332c69097b70b2aed476c7f27473c11b2e15ab423241e1142d63b18281d752f108e59fd53e90d357d802c3287c6ce579d8f557e6247856eee0f6ec5c3332cc95b79db1be1a6cbaf90e037dd3df49194130ff577a790c710e7aa56ffc731908d23439c5acbac139322137f3aeb0e4adebf6d8fe4e3b95a68d92b29f1c12390c0ffde4af2074a82894cc982d5ac2a2520cf6eb8fdee2d2a4e0ab583bbf4d57f5f5abf306e1a81599bc413d6db33c04fcb90f028c8aa42314f3944197fed1f5ca3d543aaf106c41ba33227144de91d14476cc57d68fef0d92550d3fc398bab86ba883cd71b804119375032d671a34b868bfe81e4cd1137ea2c5d2a81fb2a43ff25780b8d272e8ecb1ff86856baaddf89fbc872d26a840713b1fa6cbbc79bc9756df1c0581a8bc0b0bbb9266510145f200cd6929509a482a1acd08005a2d5c5652ff6dfcf06480d658e4b048031c7b0ecc6688e5d84445a08b65f4c928717a11815473c43058fcbc1bc1037debfced2289eece2a52c6f42c367e481a6bb73cd201e015bb6976553fed3ee6243358ac4feba2242b28ac208ce3aa944efe1fc6144a4ae254623d2b914fbf9660c8f9e7b9b2259553a047588b2c994ede1d88030cc7a10768984fb90257bcd7343c19d40f5dd7bb5cedb34be2bc3b902f4ac3d6d020dfe75ee512b3cb7d69f9f1ec9297a7466925f90fd9747c212b89e78c6945366838ac24bf97196350d86d578c9d958e8534c7d57415273fb98567e513d68e1481565073c58548bef236a33b78ba5f648d67c260f1e9222c5e840f87a346967b6fa8dce36a1fb188521b4a814f9fb1f280abd48fb2aacb7a6daf6bd0599a32700cc347967fe4dacefee5d3df84cee0af01f3c7a05eda506ead286a4fe0ee54ee5bd5b24d943bcedd0b442d50d3d6547fbd92a2048fc964e6e4a97a35bf8fe2eeca34aa420a123b35cb2ba00bda2af4c2ab2d93fda99fa299afcccec5ea1eceef791b23d7b166d40485432c3bdf784c9b96205b133a1b926360ca381a9e1bbcc18716ef8363a61f5dc9e36765c8822b94fc87e6094aaf907d805b36049c4e3367ed1af4e56ed55f6d1c87585e4aab03a6e834f1b6c7e8d1de662183c3a977b9f65304da60e929d0f1f7b2d060023d63a920ba6463998a001bf26c1fdfa9d4dd24fc005fe8a3c5b7a5bf24711e4be5749b827337648b1f2707f8f40b74c817d64efb765bf065e06c2b2576b9415373197b242dc4e2bea2f87e00fe9259213e1bdc3e2cd6e84a1e3aa00c726fea200b0eb6094d8f9cd1c282f45af1774c032bcf3772122cdf62d6392708cd1320f4a88612679ee16aa8f41607ed6c139191c92bb964d4dad23c1a416e8111bdea3109bec59225377206b52918010ff64a019b7d5d005638295c446a34eec2b61f97e76e80a14249dfa0fd11177a0c00ab1a5ec7e5874a6f48eda7fde7c0d2d16d82e83e5ebc1213b7fbb57eb9a2c90d9753a810e05c029f3b3008a0f8ff27c992977cb16ce650829892a051ea2f854c4c50c028defcad3af3cea6c511c766eeb2d0c47600d84257e2b22e24b63f43b5b49d0759a598f922f8251ec14b78de108352cdb08bd913611daf3f1c88fbdad5cab90fd5c5fb87b741649645e9da3cfcd3e62e65060797bc112bfbd5ba940a07fa4922c48e51d122575c78d8bd364c8a65dd37b748df7e81b76ee4029289c41501debd0a0683d8d4e62125242630227e05389a2bdf48af4a7e1956b5121cdbdb6fca086d7becad6c3b2ed450eac75f3976da5750705456a1978479c4bf529aca068b00242007179dab55ccb1cd655a01ce576a3d30795916851e5876ba18124c41052639ab227b763005fd69cfa9dca8853d57fcb729dda61dfb6a666917041a63d40f87c01a46747d2f5384c02f0b1ba6a30d02ceda5ac931dfcb1eef4e6eb207ee7cfed81cc6963800a344e9dd5a707d91008a7e259495bb11b0ec9dcb610352b2a2d9ee33cb51b29daf41b5f0265d48489f45721ca0d315ba563a825eca3df3a39b5a3845e8c065583949ec8d30e6b1c317b7851ffba01eda03110b00a052aeffcfddf7000bb2a2b39f0a6172907d786043eaf9231520d94e45644f63c9065f025f99de79422e1b5a25428068e9f877ff0a9e6a7aee01e09123af605091a48e4ab5bfd8f50c81cc948277d239fb5f27d09858d71778db1c4833a2b8f2df0eccb37c920079a682d106f355149e14d2d3456744a7fd1fbbf9fc4b61d213cfa2cb76ba7b3efef68869f7ff32cc2da73d9ea9a3fceb92d364123e2f18574459fcdb6c8532854859b0e64c40cb310ccc623851f1b5397cd7a1155313775b82cdb8af311e6f7fde7a7bc680aee9f0dcecde8770c52e9bd0f56793b65cd44457116064d100ae4d206244712c802a782e488b42783f7ba1d3948701ebc04ea33e861a0947a9398d84d45eb4b61a0744c7278ec8b176bb20fd4a0a5d69ec648553e55147eb40a7e73a28fe12bf3578563df5c9740dd2d1b7bf658dd9799b70f98ef0f0fda3c069ecfc0a37dcd15b5f910c84ad2ba777abfc9ea1dc77cd16f40be0092e02ed00bacb14ef632cc15c7c6cd25ca65ce569397abf4e75efbf01d9216df37cbf716892d565d4c1bf4e58b55fb9ed1a8a5aa4f8e1339977e61a14d6d5bef447e45a34b6fb2a0cd609360c04c2c088a3ff57573ba0e11c882cced92d28d94c4d77c7f95782501f8db2435b4c3ff2f06347bf113b70355aee8a6c3029d3141d1b22e733c2ece5c3f8aefb9672f1a6115a1dcee44aeaa5a5a4b0331d81d8f7ba9b9fac3f623de25315eb1b9e9993462e779107361dd0df852b269e99903ece7cde9734b896ab13d94ef151bb81c2e4bd71459c266391f654da3250bd88fa62b0f81124e3282db3201c9850db7f132597717b2ee91e6b06ef314a71e5bb1acf7901a797d05fdcebb8a65855097a170d00f3648cc4527f0853b02f47178f0680965b4efdf410d80fe4de22ecb2115b6799b8289950efcbab0113fabf6e494f26246a3d25f045701ae250e65a9dc4197edd7c3642d0062606a1ebea1a5f2895e7bc634866d3a6c6d60e03d0a05de005e68b3785b5841a4003c4703680141820c548c5d1b2e46cdb4530888120f28bdb5b6734339cb10c90873f86e8e4fa0e5bba9d46c785ea73b7e2635a4a1542cf99131c0e1d1a501f78acaae784b1013725aea304e0bc782bd24bd6d9c1bf697b2d874279057c970b66378a01c8894efb8b8d57225e03ad97961550b413380cbd19cce8b6a7b4c30dcf5f3c576c373d0e39c5188e68cf3b14e666a1c1086619a21d174db7579d51eb07f0ee8fd1ccbfdc71d00a8113a906dbcd6b5b22173dcf1e06f56eefc61da9dd1ca9d2d35bc938a48fc0676f6596d58a36a87a62b7940da53caaa15a0cad59f2143eb4d292ba52b2fe8fba726efdc8df4f2af0c02f1a838d9b525acd32fdd1464a48b63f64fe447bfad5dee705abcdbcfe58e48376f596ff499302453191c8029ed490dfe266b5ec11eb33ca15d3a7a7da0c9c885af160c0512cdf9113980da1eba58b088230d8e9c713aa8dd059cf88e859b2efa84325709d9e05f46685f11e8123f471d75059c660ec757553fbef709c0351a4e821f799befc585fff07a4198ea154aaf666c302189377a4aafde3f8620b34e66a0d6db382d3f3faf32d0d3cbd76903dad87fda53d462301ca4c508bf905ca2153fb48e52d331368b4ffcad6a2658540c6a4e4e8092fbdf1e38e19a133872e461107baaf222c2052f3c9fbfaa0b0b557775cf07ff67e2c4a7a07ab1b0306079bfad20719a469b9d16797e3b1dd16ab1b6bf94b0a21a402536028dbcb1d76c54fdec532894135ebd5b06eab740aba1e334811989296095644bca1a274634002903a938ffeba4ba2af42a3babbb0878d82e1da7a344c61b8d8f01787daa5f81c4983ed79f03c465abc22f58b139a8660f2fbee71b905952ad3b4bee26e7d0ba008ad4626867a749ccff11811266aff56cd14a145a8d35aa0e42c96c46a617825dde8718a6de6fa63dacf648ec08ab1c3e90a368b488b09c453a4f4ae434170ebb2fba627fc1816eae909c01cdbace941dd5e1b67a40a3e06fca5bcdd67154024d5b004f8a25961b3f52a36635e618c8e895d74726bb76199c6e031b119c4b07e4128ba7d2630a1481a7a66a2bb68f506194e126a23126257e79023a02cda65944373613ac0c2ee58445fa177debf0e5faee3e757ac8f677e681473c7b6f1c00e63635e64ec26687e50404a93e692f229c172a33acd5ad1c06d9f77e41e8d4b01d8a66958e0c90f680623d94e88040d4f12827de8696c21256627f00ab6d7132ac25dee8569e199429695c91b801a3f5d19c9c28a895aa10042f6bbe0e0d25fca2a5d28d5f40a6a3a8202e7204e483c6f33f2774745bc23619ca6eed87c485067065f00e7caae06bb255102005820c9a9d7cef5415ba4e8817f14ec9bbd0b8e9b7cc20b914c98629520156b763c60700426803ae7d287d5e347059d29b34f30aa85a463e4ff7c1db04facde4958724bbf42ac54f96e48129bd7d06f4e7042737c2c1392facbdaf491fd0bfdc68ee3b1ccf0394432be5b0cfd772b0a526bcf5e7c561433c6479eba1100079b9d1567cd738ddc01a547289c9694e3ab52541ff37e2915ce61164228a77e06508189ea5aef4b9979e5ba3c274160a8bc0ea796ec705968c95f95d8e93cb7107d3782d4722cd13a09a5630eddba321b410aa77160ddc8bbcab9f59b7eae69850f16f080b715b904daf19a6c36daa1659e1a61242a6d639f678786f5d8c7044775bc5550728c9cdc73ea774dbba0bc95f8532a825e8b755cd6ffce936109f2c7de203f1f080ac32d5f25133965d5f681e52f7422f87c1313a103b5e2d503981c7e13cc2408ec3b7fb701ac5e944282aad1ce0eebf87c499e66eb71b9d48444fcfe5754a9a29775d486100b60f40ae87861c30f1a67a917bb60b9610c223f22a78c35d8138795024e97dfa54b96367daf8a9cdf63fea56489e16e1d78b36952afda4ba0508117e0454590fdae6466a69ae2738a2d3f045f83441801b1a5e01d1e23cd001d6f6403dc27a70b97d390183796b6aa7dfddbfeb5ae6259273ff2c8571577a9d7cff63f655c47830953eb9c4870a4e3e32bb932ccdfd679079647b877c4081da494aeb1ebbf5ea06ad939e016f41bb93761eba202f0927cc281383a85b021fb79e395868f3649aeb82e5eb34483dfea043217b31ee4cb8133cb81243b08c394a25cdfdaf154eded74ff8edfdf1bb09a03ab17507f65d217b8c339a13907bba9565f9cf16ef849e99a63f8dfba5c17d2226870fe09f04f574ec342d124c19cb4f2458e4ad3af436f08e0393fa51b617fa479f47901d33766ae03145489b25a34857492c514535f85cefdae865e2dd7b9e884397ee1f3ae069ce6da019994f0d62187978715f8bf9d5570b1fcdfe86611ff76c41e2e4d86b7446af5939fe01516145fce83c29c39d8e15f8bf0c7407eb5a5b8cb11ac78774d98b5afc85a0e63ea93a27377f8e0ded780260fa648e56ff891953ed947dc8a74132285fe89ff5151fa152d3e9913df990939dbbf876f4535cb9037761a228176cb1c07ebf4a1dfdd15d06660f6dde8d5dcb8e49865585a32586e349f64d35052bc6f26f8f87ee29c4e103faa1391efc76e65748cd62fe399ef4858d6a5bd9a5af71644b1e435a2fd6dce64054f67f2296fafb392e840e718eb2311f7ec1c79252d3fade03877d60d270a9368eb8d2bf3c89783b47222c73523da1dd302897812bc752923f2d0bd79599812e88e9c8ef54cdedd046b47d51c0303679dd5d43a3911ed08d77235324095fde85e4240f1db9e2d2523f976739b72cf744c5263307cc34f38bea796bde4b683802a77c3540525a4123308253ef6f0fb8617b402b888d6fd537c2e74cb6411338b05702e0a0143bb6588fe5389b828aeb633f540c1416ad9eb65a07105a1ea3f0ce5da861c6825e856e252f217204315873dc44563265870e8068a32d2f38ac83b653e8b87221f4d578c17482dc02a682f5743b8067aeb78cd015c517416871ea91d7f6c7362ef5c203516c6f2757ae314ca2acff0c1f74a3d17918dd21b34ab4b05d75b1ef7556fc8a06c9881f12a3a60cb2472e777fcb370471b93d65379aa04af3180827273ec21c5c81384ef22a31b97849c0da604c5a0cbdc1e29be08339d6a7ab22d22590f4e71f237a38e9611b4722e36f26aa7015b5927b5ce21c0ce07d62a3efdee5917bdfc47ff7dc07692d87dbb1224506079b182fbd172ae5e490574d57b76afa666fea25fd6af78a2a05d88cfe8dddd8d5e6ca17bc28945dab5fbc0eacddda05539b116fed4e25d080c814401d80eb2e2f63fbc8fd5f3928d9c368aa13ba9bc87ec8167795efcb6c757ac47e516d5d6c9c2056052c7ae33228d2374543d916d78973e744a231ee044c65bc467078f49d69f4a88de5c0e20dee2e35c6db9e5982dbe719200ffddab624cc18f3a68f7a7de39b1f1027388cc8ea0ecd95984fc347b84b94578282ac9f807d376481e8a593a2b2e6d423e39f0e36c56d6be658c6c9ad4a81f0b4eda0441ca540b2d3b582c03df14c21dcac1693b7c87a4baa4ba75d2cb9007525695a7d94ea945d9d457eb5b5b3c39e5cd05bd7fc40cc8ee38410257f2cbd02d9dc18d0f7d8903639595a92b132eca2271aa841ee17c999aa750799373138f4d5ab0ed59422710d8e462852f57730282ab9c72156ed17df8e9441bdb5e628b1665d11527374c27febc9eec8a20def62b8937019fbc769c841d51c868fcb6d7b1b2d43bc1dc2c32a4c8b72eb46e82ecb41d45f420e6d85028521f2699ca42caa7ed438ddabc82b3699ecd8edd6c1224af5c5c0e662890bca711741a017b4094753e21e6b44c88d9b4d896cd4d8966a65f4de319115a5c0c73c2f394a97a87cc7fd6783d06ddd136c1529ed64a6ae089f1d2381036f20b13f914654b4eb284bcf7164802ea8f1ac0ac17b3203b0dcba829216e5a936fca524a95b311337d26f7ab9c21172db10c7a6935dca37017836b1200fd9840950329366f21ecf6b29b471857a4434d596eec62fbbfe8f9a7fae752ce53817a5fadccd0d0ae474720b542550b7766b1267314487287ee69cdfb3d498ed23a12d3b7c9fa8c2bd52bce1cd660844e23c1f35a15f974b24020f834b8111baa1fbdf700e70c6bfa99daef834e4a2b822aca379be803296d8f1e29ee463861cd37485c52cca4820276c5e761a8be1f900ca94891bdef2984c57853713dd90e22e9410e47e23b6e7004d7f30332b6ca612034316702e29eaba9a4f56881b8c50a9c0f67b51378a679ffa216a5e567323c14026973f8b363fe44373d53a337fa0d26227a1ca2fe88e20f67aa08b94d66524f24e050ed6cb4597a3aa3017a56c6e5ed8bdbf2e4d7b824a4a7760ee1eceb0f04ed64a2219dcff065be1931fc23878d8e49e403d08c91e8b5b9faae9e838fc5b2723c61b9907610cfdc949d45131620778180551b5f43ceb268fe0b5af906f295f7c5a1fb169bbdc0778fbbf08d8b3332dafae3dd8c4bb39ccfff7d37e6d52863f2aa7c38b662ff44a1b5d88dbfe96380f0bc255b1983c6eeeb6ce7f57dc84324791d931547857a393fa7a3ac056b19ce4a10127998aaace0ce2ce41806d0d074b9ebba0e43aeedf345b40f9fe98ddd3f99d532cb53900df4d6fc6e289640f8ddc4bfe0f4e0778309700148779d082b79f91d2bf7e007d1a9b09fdc763dfbe2cebb2a34a784fcd03600fc91aca68bfbfa184b7b93d913e8c67fbfdefdb6159dc94558b6fad05c004f4efd3d9859abeb606878f1533b7d16d94bc1c88c8a3e716390201cfe24f5aed2e2829b6be43d85439f6f37ed5d21042daa5e760b4824e26a15b91fdd05f2ae91021122a0e5cc761374ece679521f9593ae27549d07812237f4f1b458866a7a3f688566617b213ecd8e123f4f0be51ad5ad3df63ce5dea7f032c473ad8351740aca282753013df86f6310f1a9e0a315914d6571fecfb47cb981b566c11455b7bca4ee1018dc26595eca7c6ea43791af5bafa2ebcbe627204d3b26ab38ef26becfebc194e8154495f0c17ca39f1658372d4d66e97c637a5cbf1bc282a4e4907ac7d4981dcca63a5fcd35877a979f19cb2cc1a5888eb172f8a182cf2d36fa37dc21f98a63234954f9cafb5930d5e22fe8b1a67f360e44526b6935a05c55a9243cc270744da70f5e8f1140c9e420b8a229b944996ffc5426aa9109591de8a6416bd9e3cc920d4cdeedf9d80f3780985fcc5476aacf92918ff32885214794d7d9ecd7fae212feea874ce53f99d210a3e507a24c373f5181c5aa61afefe2aaf06d44dc3c2dc99d73c9b0d8e676fcb504121e025ff94f1ac3828365fa88cc653cede8bcda65d323f07f4acf064f6e4b4fa39135ba86da1c376c7c2a34dce6047dd00c81894e328561572d1cc901af961fbf63508a9ae63adae5a2634cc459ba5bbb4585235c04859a67e7b3eacf11a525c2b759b6a8c76c1560e49843bc8a6106a1335d4bb48787fec82eaf7f374acccc215f8a86756371e0450f7d7af32dcc3f4cd57e9dbccf415af3e3913a13368b959b738e6a2195ca90033fe5116382b69208fb2440212180c97986fd8ac3d6d1f5881bc9e7d8e0141034945d3ba48fdc6aaf307d42dce20e1a50fc30c962a28ff0ae54167854a809b0a0592c0266294d271a4c102623b8dd2a1c6c3e634a28608d87e6d3e03e559e914f0fc9dd2740930c40d18780d8b2f9660d865e9947cb9ee4ab8bfb14a45710e21cbaf25e39b131ac1a7a8ba2a8fb5fa0ee4f77db17e63362dcf49ccfd381b80985b2ac83dd7a68ed22e7ed8ff041357ec105a4076e3f3fbb2a8474f16ba4992c8e76d77e537ac96a5943a7dd46b6a40fbd4bca6dce5a50088fcf57e2d63fb9ae7af09a010fabd76fbbd35a78330e76f0fbf863e0fa639aed6f248e8f1dacd255fd9eb8d0a548e2f185590019ff813037a279b09b7a0aece09199c24164163b63edb563e6095eb21e6195f44e96235f96abe04edfca1f0d7481c585d454b39fc3326634eda78d0f4c55ffb850ab3406e945ba45cdc22bb3dc5f6311af433a15f92813006c8d0c44751fdce8a03afa46ef7e488b941d93963dee3b48169d5ef392bfda9104cc3764ca52e0a41c29e157d5d276324c103d8e426cb41bb0e55ad9335968bd186838ef6036d2f535bb95457a33e00639c8f040f212185aefbcc125db4ff20d41c7ff31237eb3c3b94874021c690971e10bf4bc86d21a574b50fdc644bcdea0f5ea6d347c3552abad77d0adc2970c5cf65bd5b131e6367fb1b59d7f9ebbea513e81aa917bd3cd7c6c135f9af543d0e80292b136bae52f975ed144a45a7fdcda84633187b843a59bf72c4fd86bfa0c1b9296a8456e7765fea803cdcc5ab5369f77fd204711de73dd0795ca9e6edd9cd2ca1d34776559a057a6d776fb6455ade41c5df22a0ed65643643a8ffecf050242101d3a52676bf2faa0bad5008ee8a5137bead168b0daeebdb7801e516cf18dfd0fe207f42807da652500564fb1180ef445ee75b72eb01ec35fcb72a51102020786358a9ef03ea1d7c426f1c9a6d3d28f1641896650a437105619387d9f4beac8befb4eb8610f57648a72e574be6fc6d4216412f1c05d1f259a7bd28c2d6e7b08aeb09703471ae83443d9ab9fef37312a461955e3b1bf947e8511151a0808b1c69413ba3560e3fb6ba273b44bcd6b13f365bbbbf32b17ab9c7391a91be950ec05674a11197d037ad652618edee829255d903cb667fb057075d64902519057deb8ad09d22b7344352b0e2a97d2800587931e6caf041a114282c108a05617c9f7b3e2d8bb0930fc875b6c9529dc37e69400f3089dd01f5e88717082f590c0382adfb8217f41b51c00c145b18c410d60d876d6d6c03daa658020b5ed2f2dda3b4f93b91768665c628b68a6d5475d0987febc87303bf5a1668deebe7ff7dcbb448ca1b332806c4d4eb3344b0812dc89f23edce62eb28971f98879d97f6c376797b77ecba740aa26dccf8cd6bdb2a35fafbebc039e2cf7ba10ef6ed9986e34556abb898fe319d188ee434cdc707215438422b07d4c7ec0fb9607dc9b5c81e226a0d7ce9572c28e189dc647d6a6e4da522ff4ffe4a3eb7bdacbb44a6652ef9dc80dd6018007735707ba1f1964148874cc5340c1aed83a692b0d12ad00c8617fed6cc300f687245c950987a25720d3474a5bc83a1e77993bf49be4be44e6814463a13e059adc8f700aed446f8cda19efcff7e87834f69719041b80d718c1f76ee8ebea66dd900371d41fb72239c4c7eb7e20eb3a976a2bd98a7420b799872be95f8e93a4c8ea8f1c58b038ee8411f63433590fad69242fd23462d508de583f8d98d2944618faa0886a005fc5ceb1d68a53ec0d21ca819ba1c73e314e26d91f62b6ff703d8daca38c049cd1c9b301b402b8b24af4ad7796db0870af585699bca07c5f3e19adb19ffc0de651e1e28bdd37c696482071a4cc199dc37ba1b9a046efb5369f981f5282b80e4dd37e2cf327d0e23207297c7212fa3904470d2da68bf589961102aeeaf0a06e25328019fc46ff878c56e422cc903dfc1100a77121580c6d7e23da0ded4aae47ca670b8f2cd64bc5ea266ae0ad437825b9eb9d2c4eb18a0dc78fbe86f8e62eaf13473f0a76067436e3d79f18278cba57ab28edb74c703e871aa6ca831b210a705aee60bd7aa8cd9a1529bba7750fa8cbc471eecbbb878c77e067cb4bf56484bda59d37b4617b803979c6bf6712a2679057c93d94565993e6dc534aede52f1dd6895962a6295c9942a2ba9202f52b38d06018e1ca39a5526baceddfa11208eef42e03f4a2427d834dfa5b57eeb3165c9f1a3bce4bdc9337e2baa6a5f946abd33f0c02a4e068266760e19391c5130205ff01db3a1eff5f8af9b7057545ea266a5e222e398771158d4f5e2a58c7a383d9baa1ef2e390371399ae7be2244ec5ab5846c4a835a83ca915a47d5b160b43b0e59e77ff390e15547cb0424e34457d78a3e5a32544e5d5bc27f93f4362559b4de6d14b17048ab21c02c6871e91f36deb7bf4853f2081002b188230266d6781d74e1e406e20fe34ebeb95df05716541915f1658ed86937bf0c1a34dce7af7bbe8fedc42393b870bc044a1c4c0f13d887e2594c3c48bc8b5aca6e103cd3a16aa6b66a43b0eb78aa6f24f3c1ad890cb9d7caa2d3b79af2e6fca97230263bef6fc343769d8768845cd5e3a513866f427123fabfd99b8820c5b3e65e594e474886b2b2de01d0eb7606e2d850ce837c5d82c67898842131caf6f64eed4bd0c82cee6489bd4bcb7f2c3bd80e5d47ef7819e3e5d77f7cfe53fd9b61210a4c6660e309c1cc17c3d1c16aab0a4dc5d22a59034269f4a861c8f67886a76bada4f253804dcf00d932e2f52f8f73fa182e54acad8f71943194954d30e6b892835e54d0745b25e58cf04284d398371f55f2ffaa5fe87465bc4e4e01887cbe725832fe3610245b5dbfdeda88316f9f9f0c15b01993240fb7fc14b7df26fb8eff899edce82ea4997f7f9bad7a9e2dd0461d108d0c4e180ecb86c37f66adcb15a4c0af3ac26fc643df14b8a9d1af1ca135fb4983dd18ca2eced6fb73e922206ed3ced656f5dbc15caf97a4b4b8d449175314955019140fd0564573935a4ff21cc8ffea7b64c4d1c7fa7f3ccc5d1080e9e15595561bccaa92be8bb0d058221443c7948235cf50883665a2613e8c63552132edbf7c9e7887f48cd93be7a7088d1e1e21eab7a6ec5430674cc98496932872e1309be49cb4cb688b7990c68687b27d6b4638d6a30374acbb22ba9636f747edf059704007604638716c2b5e999cf48c4840de6c80e30154da1cb72507f85c48c8149e2a7d956997626048f05b600ef4b952a5e925428c3b8be478adead027912d1266943105405e82246c77e4a06fffc0c8a62f9bed47c802fa0ccfe1c3f469e67825cde579092bbbca6e87625b4d96039f8c3eccfaa42920b6110154dfc9cf1d633003d3b75ffc210d26cf2cb24a6d2e0d0c95643328849f343f88ee8479a6d9ee49a463773b4478bbb585b1ad3e31844ebfc567fb4e4221932e12c0ad4e06a6353f3a70611271af924c2a751f9fe493d566510b3a8072fdea663bdba03be9c58e133ddc79582ba7f485dc88c81a99c866295a8372e2938a5ca7ae662e8545c55898ae5467d86e4cf33a73d8870ba1e109166385975510d94dc02b24d3c86789d1810e5d5a83d7f5c9c73b43a67c5d92472ce74ad35f58f6dff671aff74666baa38105de4dd32ff4dc12b83dae6ea66d44ce47357b671e6d7df5d8d5a0fb2bc18f10f0ae21d3dbb62cad359f99bc5d3ec68f6ae5fc83931c62429314f568f1b3482e6cc4b1683993aca1173d6fdd0b47c25b61408dda8948606eb497d0351d7dd048284557cf2706882584fa1638e33b65cb8d1615fb59e061caf74c841c1f54597100f0b7db421e590ba52c6cd4e96b32e53e1e098dbe5b8d819f1739994910cbc05714fc63f8512ec71311046b2c0d8eae2cd82d01bf7bc794e2001bb33bc5155e6c40a4cb5db21aa68207cb4624ce14b4e0efa8df1b51322d9529f42cf19891ca85d268b8b6e2bc3c1cda2f8329be0d8d07846a8995df2bd6ed1407ef106ad844fcaf81a87ab10237f5aed91efdad720e61a7aacd75fc30c533f9122f822c55b67ae6edacf59dad3cb03ec35ae5daf7348bec793e9924a70f955e0782df9f51b71654f3756abb9a9e847774558b9d96fa67e286790ec57501669cc06c525e88db21575bb6b6bcc2ba2514cb4cb166c0f02b749c681d4124e512959c8e9869a1c8a02a50d0dbd549ac87a3be5ce4376b273fed5b1254f2c4b237b9e6759b1716c7772c0fa73d79b44416bedab4a8245b8f8dc70074033bcfcfd9e4d8d293b9ab2da5b72561462c77d4060c68e289d820ee775f7aa16a7f107e8f701e00aa2a620133f61903d3b9590a49fb8c54ff5d566f169d7ede415c279d11587c1403b90374ed639bf324a1d863bfb41afec3a91170fb62226022c45f5b0fb5f1c4e5633f3ba663ea849e316517ff2ffc88fff28fef3942aeb0d293ce3911f6f0788e324c794745adc65f9c01332d1d6acb6ad206760f53e36c22f7c7ab055c7502235c2cddf71c178926ec725a52492ade316e503ded7776fff4d158f38b78d8409f4114071991331d947584a709763d2c46f717373a293653b4ed245f60880cf784604bb1b0cb88cc24d5618a8c96372d842bd5f1978ced3b03865450348c33160758268ac8c2759223badd52dcc9f73b2984e4bad5041bd348f17a7ad2c810fb6104329da1ecbeffa7113851e41b405fb7a63b7e5812678e8d41775d964a831ae9651788d320e191ea64e2c4f8a4ad4cccfc0ecf1dd34d36aea9d0c898201fcd907db8dd82ef55929afaf4082f03ef27d1e81fc9f03127fe0fa2cff18370f1687e5b439d56061b4e6b7419d9992f78980c4aff6eb79a55c867d74b7ea6343e5e1a53d53ccd7a19fbdc88bd630ab0f955faccc4c714305ca2268d81d184ecd5ddaacbba251c12fb54954717c30ee25c7c7695cd00327eabb5283699480b43bc4431aa3ffc42f7b294076ada49dcc58664aa955aaa6d40deeaf32857ffa85c856134f9f8d90ef461043f4126722fd1f1290357264edc39c6edd8e293a536dcefbdfac6170708d5f41ae99b3507af478f20a3e3dba1cfa8f553ffb444874ecc2f97e57620ce9d852c07fdd325cf16fe7a4e640a7f7993b299a970f31e58761d3e7291411f8edd460463af164aab8c5af0e270e70923479cbfa71184c087a7bee3f4da06a6ddc8abc3bc1ad1d1dbba358f36647bd7dfcc29e784c9b4af968e7081b481c8dcdfdda2efc90f33b1eddca04ae24f8898521301b88c3b33c1b0cbd83f9fef00ae3d9473ef402099e0717fe056809317428c4d0839c339908e2404f6996a28543eadef706343945b2ad697c156ba3716ce70a111487e01086dde1c282fd63c48cabbd216f41c7efc04f621e9cb987bcc53e08ba062ae74930b2bcebd2d5aa7bb88e6cf57e0b4942a2a65844f9dcbf6019612d20690801bcc563b22c08d85b6253fbd00799200cf283ae841bc97084e8719058a041fffd4a7f77362932bb178064f6329508834cd6e2f35f61077698e932379cc6577865f7728abd154dc290cfc21fbc480f63f564cbf317dca1704e636d953b4d72c4520dbb4e5a2b67e3dd3d7c93bae22f36bef794c5474e48eb6630140940572a687be65601589aabc248a48b405903bd3667cee152248d3b928316377dc52dc53d74f3983e89c25dfe82ae2d967cdc4cc826a54c2a385dd3587f0b2a6d3af38d1c1f5672fb36c20e45ad59bdd53f8b41f334f226a90f3dc1b94eadd1c2d8a42da8320ea03c1bf30ec674077a3c3f46520546d7c354954c7f99c2495630b5896838caa21c7a2201e06455274d7f24de21f6c4e0cb81ad888d28a8c2f5eca85167d3642f991288965cd82a6d9ed8b655f68a1740fa086250ec44e5ac5dce50fdbccb6d793c1e4dec1360e71d6905e15ee247e8638636d7a49216326604410d9a5fc6af3f0a11bd65594f7ea26defd5dcaf51daa3158e3197a92de0696374501db9c8d022e7165ce3f530566929a1091c521835986f9155c4f6c66603f200b0cd5c5cc5ec34ec95f8fec813c9b40141bf7f38e94f13fe2272cd530e93a7f9f261cf4e89ca75547fc0b8cf313e4c244d2a02860029bef7aebfc0723299ab7b3e67f6b2c75fe6da72914275d06c42188f6528d25edb7edcd4669bd397d82b5a92e5957e6903e7219ccdc65fddac063392642e3aaf20fd4fe1d9e7b188603879f22912c8030a5f5a6666ea8bcf09e68904c21691644255f9e63d44fc4414aa0feef1cceaa0d0e6314e3919f9493520aa5c8fdbd6815d1726302f5cb299ffd2ff27e6308b42c4e925588eaa6d10ea4b4063f99a5e50d882467414d12de689cbbdbc34d4d8d3efc7af10e0f90c594b6bf027472d92b057cc394bd90594013928906e9218b905ae4272ae8edb45e6d9af2f9cbdc2bb34ea637ddeb57ef3960dce45642c9b9cd7f3b2d56a1bc63a8f37c7b27466afbc544b6e870451ed7cc7693cd9adf0ee54acf2cf784d24f1ddfa5a75420d3691d7c2e8035628970f2d56776faf2d630a6d93803f114a31c123409ae4fd925e680212c92768f19717e7a622c4d1853d94e2fd41f2b81a68057597c251e543952dd24dea53e5ed46477fa39a8275ec97474aefbd2c9cf5fa65216f866804ab3af0d7c02bbe0b0096c2da4945cc4edee34b552ba1329accb56a49145220741f426437539428ccb83be687c4ea51ffbbc988d06c7cbbc7b5dc25b7530152b297826a3a7369187acc95ef82d583421d27b20ca921bf689e8a83ce33a6bba65692138995811374101bc0ac72038b6df9728800d1a8dc7d40f3b125ab8cd089633cc363ac4d9e584f30dfcbbf9ebc10faf9d14d5fbdc209bf1c80f905097db59f52061e2d4dd211bca959b4f60c78d2a3374e99078353327bbcf0d749ba302b572db78eb6e50d9d2a51bc8fbbf03c3108da8d92da6fe44bfae21e5636e9e64ff916bb3015ba7d7cfef1474458d989a331c7d78f9e2b813782013693293f8501976f57c6a7101a97f7845bc16e794481d2494149a7c6b3e1eb2bae2d3fb0148aa3d43a61db00f31b1db8d01cc93f93039a60241875322c2138dd94747a2006a522ff159677282c28f4463f1b357c36361480d2b70364e197bd7f49e6cb6a417d5d91930b4c9ff6b53d1a003ec298cc202587c08d47f3ff9d9cc1dabc1bd447c80a8bbbb50d78d8406c29643f5ab24b201ac2accdf5e4e872c6dbbfe1e627f0b0cd76eb2148e2b2cc1a2b9afd57de36b047355c5302bfc3faa02baf11a1efea188dd1d5f7e27579f60b3d89fd0cfb5c4c9dc0b75b71a52f70b549ace41fdc730444fdce44614a1cc9c3a9c595a9404c09e71d755dbdb394f57e905f71a71135004f12eb357d2d323a58b6ecb49434f06c8bbbe1bb2871b1492992d032cc7427c7b956b91a63a3c42369dd583eae7d7f763fc62d594d75b135a382a87d5301c660f5afb17f4d1cb49b70ba9f337faa4f5642e918cddedbec7e7ac7d82b6b3d53a0ded1f902fe8eacaa03392088f00c49c6187762bbb1f61d01f6a9e2c849356fa1783996bb662553616b3941c0944c9d1d483a10b6eb0bdf6e6cd5958db1419c46c2ce810f9b3c13c635eb8a95ec3bd5cc7e05649759d318df989ca9e4c284676f377ce56a38309ae69b43d148a62a3ab7e5c9f7f6fc596593298e480132a2bb6f8e867281477fb0e3482134a9d093fdb8e67dd3f06c8c5fc65afb14ca03919e298f610a9633e0600cac894205f498a2271a4792c20bcb8abd3d3fc78d5d9cb75436cf3cd6cef2c6bdf6ff612baa8334549c726224f86f2e78045b9576b94790ef046df0f30de566cf6fe2d366bfe5a038b66a59924ffcf645029e433258e2e355438b3438ebdc79659325f4f44d2c7540d4830dbd5ed7d22f46fc8d373ab180200bcde5257a34d745395e2f848bedc1364e67f16f80e3613fe1e1aa56ba17819795e81e2f22483fab36b62917d30bf37694e7d768b713208a1abda7ac60f3450c40542be60e37f9f6ad864cfa31a0f8dadebf1ba982f5c2d595434c7a290e7ee5151362cde12f5bd86ec31e532b1ba2fefa8bf67e9044dd838d052e23967f9104cfbde6012b52d4a8513999194e9009ef3d284989ddc9e7b4c92f72b2021619442e4b94386ae3e901f75c7204971c0af407bc8b0357eec8a4a49f5312cf2b4f69a28fb81e9a7ec38c91b9406809bcc3a8ef256933412426d7e16c11f06c2a1458a82a32ee844899d4e1103653cab90f43cf5e7f51a9364914394a85a678c0acfa71ce12e40697a633ec90b2a750932ff43c3c9da8f99e5368e91203b352af1d75809a990ce04e3887cdeaf4fe9d7244810d8ee84efc14a177060ad0d11c73c6580cd08a86da555cc707d6979dc4de758e74585c4b7e6978bdccc1ba6e91b91701b73ade201b74dbae30f0e91e4178c11e29b28e8cddad2aa20337c2aa70f34fd4bb4d6d29cad3f14708442e6f7aecd8244ab1c5da0207e18527564e62c4f0c6dfdd6f27aa0757561146d1c3c42fc000f069b6f86e06b0b9bb28f77968a41512174f7e5264899c571ddd33f198121f04fb5b39ce4b44efe1153992068894d8b989c103ad0fa9eb6ad5df54b057d4cf75eb562ef7557168c2d81de65f183f11603519c423a6839e04f4f18bfc177569dfc7b1dc268fe380b4f1316dd31cc298698a7b50de2dcdb5f2f7841d2422a9dc4dee67c9940e22c226cf47f0a7096db5aaa68094107e3b8258c540908abafee5152a620c6ccdb6d2cbabe4b9358678103a26fdb10c2a4c601509bb8e0a3802cf849e191bbbeea71b62fd6670f8de68fd48653822524eb81e0826b5d476f0f9032582665087e6284dd9182f5671f85407517e796423b5322277c554b165f83c3dbe482e764945389e8971d3f7a87a4e5e29f70d57505105d023437a5572496bc9125d83fbaea80b9984c0af82d174552c4f60ce49c11cc812cda6a2ca8497cdd956b934235ea5428ab5662201632b8310f43b36439adbb356d09b49cc648ead7ae2e020386b013dbb242f2fb1e090e8713615c29a127a4a7d071ae5fc3a3d32265b80a775997c76a0c99b49c21e7669fc407c12f08f6aae24099452af2312d3b9ef4194d349be2353ee9e302ea6846fd3c014d4d953023e4a18582877c06859e2151da616a89bf4c1513b885d8ae9fcca0abbecd49b9ea31d12b808d279ac18e30b2beddd38e0808b757c5cf38664a0ce9a272e846f4f2a5cee1e0a8e0a631aa53102f0343ea5d300de2f04261868fbce83663587e922d136dc5cbe8958c7255fb5a7bbdaf776280638c4cb91af3d685e4a3c16c7d6d5ff02b4fceb6b6b8f9b30175eeba3c67cf9e44e131ff5c59721ca884d93279482047406cbc2577db298d8733f80e857af6ee9413e09b45cb68e087d82505fb7a2e409cf1c59eb008c140e2893d54c538e7bdd0dc34dee56096dd6a6ff4d4efbbe698d6744527fdca757c6c3383e2e3ef47e65fe7bb1e35d64b56529de8967feb1d706fcd5e7ea6a13c3e2759489a8be878fbd97241b96123d73bb64f67bf6d2f264c4ce5f460f2f078ab7fabfb38f14719bb71a11a8684cc3ab224109e3d7641bf8596a8e956c034795d30395215e6604f1550a5ae56e442d24a7621daa122aac1d50dfeda996cbb06f2b7fa0050461f8e19755a1b05b28779b3b63ef78eb5e1bb32393c71c527b99ff7270c6aca99bfbfcd565fab1e41850d043752def0db20e21791c078e359254fdb6e0afead2e69d6288b139615fbb1bb49573449d47f21e8f0ea60abc290b326940e1f3e19ca51eaa3b49997931678ea7b3b49b16659acaa42e33543cff34c7b6b5c4e4b0e48e120306fe2dcccebbf03e627b235fdb0bf4d795dfdf9febf8eba9bebfa8a73959d3055bb9d0f2043c0fc36ce84d380c813b3295a071bc08cd9a307a0dc3c968b610560868f28113ca618be2022731c5261249d381b7513fc8a1414578b7fcbcca0936686509f17e4c1157eb1e8bf02eed8badff4681e66686a4755cdc826b2c7e314324c4f1e977e726914a8d21887b035605ef896170ef32bf06428bc5f3bcab07f20d2bc56f6d41a3e1601572863c640b33bd6e53f7eff489584abb548c862b3cf04ff7a4f013463db123479d012c2aa60beab424d3d3ac8adfb821c5d222f5380d3a1204b5ad0e63d10876e647b49bf5da7bd5bfe450e1bae465686cec45b7ddfbf8fb3e41f59bc3f41a45069f8e1fefeb36a6bd01803945cf8d2a94ee52dd6cf280fa5917e8dac744c111ea13ce48fc76380ddd3d874bea53055648b8bcaf9cd8780fc5871f90723d2996370f50144963810221ad3f4973f2be288448efc0342d35afce1b0e01c06492d653d54fbfc1262fba424bfc9982f62197244a4b87d31357110f36a94a84b64095c41b78282ccbb161840489fd22463986706135046dfb784a25407e9649e4a4530ba7cedbc8d886076431d86a085bcaed0410291f7484e454a19fa543715d32e2d1dc7692df15edcdc78c1c1d1904a6a2a60d8c0bf274e2f37fd0dc21dd09689708bf628e0c851cf95678ea6fdafeb6eb33f8d5283a274ab34aa1246a80546809a04a7a2518769d3cf838a1a3da7596ffcfae96ee4e14a6ddefc08c7abc737702fb279ad131fecb7eaaf5132089f02320cdd462d1ac96a413de008ba2cf6b27b23cb8fec47fb8840615a555d9e3a7ae2ac336e5d580f2e89e62de3d2bca570559faa5bb97f8e7f2ccfa229c35f8beb1712fdac44df0a0770a60297bb96745f4cb05751b0ac8cede02a06dbfea9e63499dfdc6ab64b008115bd08804ba28bd5dfce23db6ba2745b197fb164e7377a395b1412b2b5c760b69fc3f6b0788d84026b7ca34ec9eb6f0c020e0613a1095ee62cf3007d72df7c6036e194ea984a8b7d8f66f37b429fea2c641b782b6f036872dfd9d5a5244d46adb0f0a089e31c7c88a7fbe2aca1228fc3e0b00e0e874cf3fdf0962283ddff0f82350f0859b5f220e027fbc51a019cb274bc360f6ea84c70594e084db6f02fdda0c485b2692a82381631111775a3c1b7a107632dee77edeb80d03b30d2be4f16f2f7455f3eb30185a944b471a8a1193b7891d0379478739dbd30359f6bb969628bb6a647c72823b9253f854ae4a6f8cc2d6a67bc4896fcbc21091cbae31ad621430a1778c7f0d01e810f7f743d7ca7d72007dc242dea1dd8106ba5b3b861e38861fc4fbd0d374545f2df2711e9a163488b87a24bbdab83bb686a5e08a553b988a07c0cbf8e30438f60034caadedc3d4f271a62991ceee0f0a71c2c8338ed82ca49501a0f6ceaefacf47ccc306519a4aa1a81f1367e852b955a105a9bc08e5e7eb9f07a3e737666d01e882a3e815d4d580c3b2359c08a509ee09d839aef382296adfe0b14d0c388ae44054d9f26ec854edc128f721e329a57f089a86e9819102573672d3e34a9afe2f43dd59c30c0f7e9433bc6ca8bae1d9ecb00347781fa84751776ada68352517f01cd32c5b0af5e47d90b0266f658a4621e75715a983f6c1d72e360aafbd8cc1c3b5edc7dd34110bcbdd7c4410fa1f45a3547894f5d8ff2dd8373292338c76bb56a4246c329e192e6d0d9b3c8008e6a4518d857a509e583e2134a565d0a092f3d0d1b60fbe45405b53b774e58c0e7efa6440a3a6b1f1151f39b7670226f19b3919642b25e60568af9a760002e4a244ff7b805b37dd96818e03facc355131129e121f96091092edf27fc35e61c3533ea74323ba2d9a1600f19eee8fa86198a248c5f05ee0e1458c344efec703c3a49cfae13abf69e87845349fc0fa51768e0d0a50354e64b0028485e0d1a843a6eff3898cb3033d52d468dd84bb7361df0ae99eb0166f462ad7a0a3df463528017430839e37cdc4cef28d7141d7d149fa564f587aafea1310bd4e535575efeb6b1dc43f6916f10a337d7a5977c020ccdcffbaf160fa44458c51c0910c1d4474f867ed84343eef4300536d8895e0cb4feff5e88e894a1ec22a7ea1518983db13244ca84512da56d3520f84eedb59d68a476b2c8fe3c2617f288e0e8e43374c31e1e2771af4cc6ca20e5c036afb90ee1a943d4a21aaba1b944ae5b5210491b1b46a3ae82e4567baa379d8e13a12567df7c9747c18ceb3302f277c8f9d4feb87d0bf003c2f58b5293315be4fb7a9e042a4c6d814c9e8831c7d193c6bbdf8f1298343b91ab05284418e9de0661a13443e88b696443840777547912802403135880584442a1a42ab282455ea9cad6311301dd0d9a5c4c588307fb82904ed08fbc690182df874a3fb89935ad3be99d1e05d43e2a49660ef9d39d80fdd803de0c704eb2834ca848630a9c836da62389c6b69eee134e168afb1793b7675f13d83ccf4dbd2c1bff538cc5926085b685366cc169f8a04c0e73c4e78281dbd454b47007178f4c13a74e186d338565a8a0c8c595e5d3de144fb58c3f83ce26ece11feadfb72b41000db8abb3ae0318bcd2217a5f1d31c40da3aca7fc3485a93937b6abdf9c8777877bb39d2dead413e4f114ea2b867bc6e4bae19c340d20e95fafb49292a853ba02e5062245dcbf3eba96500422bf96f6f1a5ace80f82bab01658286223cc98794bbf79c9b0b90c43cbacdfa6fd9d6a4969ef2de5773c8d1552ee12634024a035a4b7da1ad03559e5ba009957414326b4bc23cde5aa1c85258bebf75e1a211e0dc8355cb01964777b7c3c1402ea8dc3d202b5c07e647bbf2e77a0b52534dbe4d6d935d6f29706cfeed2ba4312dc650c33a7f7c92f4f379b9ed32531616d1bab580049c776d4b2777322b6e1ff17d9b64e4eba3a82000088f46a633defc25e9e8e23883969700fcb5435b0825d390626d0a7c4c6a484cf3c352cb7fb9a121950148787af14344215adec5acfb40dcc38169e6f837f6e602ff0a8e4838bf88a55485bd0950216d32c7b8f4588ce2010f76c305ebabf13f4023ed7f33f9e896d7a1f3cdba17711e27420901285e57774b5fd744967d156f6f41fcf9716af1580c02b56ce7a29e90fcac2c00f7fd3c378ed30c9b26704784a0833a437c308f4ec415d0fd4ae4a609947dfe08aa293b3e7c4132ff0dc3a695f4561685e5426203fc8df843f63253af3432d5eec30b70c2c96cbb2d06d322b6b481ead1f04b1b7758827fd4534d033b8765231b0b41a6513f9e2372515eecd62bae1b6f96a2f606e4884c189d1abfd4baa9e814edafef862370abd23d54687c901845c9c8e7fee02df278e558463511accc26f8760dbe33ae1ac71000c06639fcdc58812c91eea27ffe88574272503b0b9715c5b0f9477ef52653bdffcb6c06ca6376eaec462875bc989551421f477ead9805dc56951b31614396360a1fcd6e1643318deb23f4b50fa29b949b889d373de314e7c6eab4d4159c8df3f67fb849a103a21f38672f7789b587069ef1b4c7788a7624c5591a9bff5e9c6f63800d82c62bfe7f1a5b8b581fa0167f5736de89ef9de85e5b3705464c4006e272072f00eed865eea9d2131a12d19707766cda61fb4772244e93be78f3eee968edd1f2630a73bbfc10e2aaf60a69de91f2a5067f26b7422942a5efbda990a491ed3e51324b1becd876707d75fc5320093074b7f44a2bb9df298fbb477f3003cf4b4abb5abd48b59139cae70489bb7988c8893ca3d3a13ef04d61f100cc9af789d968f66f2a4c720ca4459550d5808e7a4fee43b9401896456abf4898d616a24a644849beb8578508053cf26915e1a89b2229d015df689f1b1256e58751207561af8c7b1f319f05444f74d38360e6ae6733ecae793f10d7975ef90a2deae4bd814f1da2cdb47e81dda1336675933d7ccbb53666a633cbd5a5eb3eefbfb806e9869d8ccfe6b5e448011227075bb0ac73707f735d0a90fde22f3686f31609a26c010990109998b6226dd4afadee4da65a8ccfa43a7d4c06820d18db058ce9d8f8ddd10cd14719f4ad9118227d8e831cf6172987d5000c6085178781773cbb93371cf4f19b7c8098633023c0cebac51303ff35e9da6fcef1fe3632b502055975fb29d3347138105f1e7db3230c584d96700f7394130f942575c2f34598cd1d0697ef0384ed440542e96b70bff5207d8b4f54ff45356847b3a5f8edf19b7c7e4e1c84bdf7c2f3b68dfc6a84cd104dd23971862a66065a2131521faab0c3088d30ed1ff22d181af4f2d7dec9b2516a40fcebaecf66cfc161ab2b9cbade45fd9703f4cd1cc93e68d1eb6e9b1abc49d73911a924d389edbd97f21af750170ac9cc39cbb8906148ecf1e0cc64cf9c92e9e998bc80fe3ac1a05a518a9e8f5c605dc4900adc9b17574eb0fd9f6300e89e49a9abdb00ab0c445b5f823edd7c81a25fbc6b8008d9b333747ccac33d8a13e01e98729b7d9bb9cc2ed853e9bdf5f98ae59782f39eeb0388fc9d7c1db69aa64a9a37f4c568e710231c133af82563dad307d9cf550a9c6dfc7b19eff158f291e787d2d40bbd393c8c093dddac7a85e521dc7a78e04dee50899fabce1095b2a31ec87e5739c35142fee88aca5e2668c946134a4dcd457a3c6c846c34e8d1609218ff4754a31fe7d7d35c98a0c5da956a605b8de0fa18844bad297f563b6c3cd1853dd4d244023ca9e503075300c1d60b4bb24f497b1b89e3d7a5b862a1e753c2482b5a7deb55be4042898524ebf5d29d3b930a94c7fe6a4f9b2c5a1a74998df87eb99b825902bd553e9194319303c0c89b3d7282d05e858ae3e9ca5fb29930a5b7437ef1376c416760d3c88e922feaeb3b638b1cc2c717b96a5a3808f2798692a8524c34e74947952d2fdf1940e2a7722960f663c9b03f66986b6c2e2b143f9ce000c40a7de377a0d273a9e92d713c32076b9b717fa3aa5d7b0c8a823066b8e2f253327302c3ff6fd16a00db647f64d3b54f4a662c8dfa90c693dc0d9fb4dccd821214c799d234e47d5548473f842ded4a5907cf2eb112fc5533f4e2ce772fb9421f0f1d3e579897080f8aaf192976ccdaeb9c4da056909bf87fd4db1f8f0b01ad7ccc57037bb547b42582d63daff8db5257bd9b50f3fcc4625ed9d5b388a3ced47effe490631d220c44b070e2bb2153c70b132f9aa8f678e4459431dbd50e00f08219b30b520985ea579724f53d23399c4a10439ab8c31ae128324f375f72a6154ebd39400fc48b05c2d651af3424e6be30645e7e80b9493ff3323110a7500b105a4666050f0667c4d02910736576da1a67835489bb47690613e6027ca3c1bf783ed5364c963cc51fbc76e419ac90cfadf734a9e477cd1d06cc793d858dd415da9d18db4438baf8a8f0714ab669d6bc90e2188de3dccebc5d86a4d5a251c3e50b28b574ecfe6fb55d703031b8f1315be30cee223adbed00bf0544fefd552e3c335ea2cdf3d65a0c085afdb2aa016ae7492bd6d37a054b1b580769f5d6cd5cc073af4d3bf06d9e6f4e3d14c7bdb464b18c25a479e9246b981f084c5703a75d1f740e1e8bc98ed84a1d4830ea6dac5c9c9ee21513995c5d4cce03bd0c69a3ece927a4806248a66a44063390237d3575423125fcac50e05caf0dfb897558410c082282740b4ea1cdfbf29116bdd626c13875c6afbcf00e5e3c919635690da32f4ebc46e64fc2aa71a7888f2e83f86ac3894766bdfb349ad2ffcb3352c020159c1ac3349ef5c3cf36f8c4812d4c5712ca55c798338d48671fb19f8940ce18db097a727846aa3e73dec638dac615d0fda173beabd00f55a5a7ebc5e4d817ced28ae438f813edcac3524b09e904f1ebb03484dc8d0c2dee6aabb3b274a3309f76b056a38e1596f54accc3f4cb8cad607e9937e8281ba350ef5d4a742296455b5a0ce201c5e0eb4a0a37080acb86b64161a1e3969f3eb644395bb6a612a04a60c3e59909097af509ca3e153bb2e1e5f1138a0bc82e852c5b54495532864ae8d8092dd7345eb3bb0ef5a7b374623b921bbb25b458731c4a18be7033ae8b0ab9b313ccd8f127390cf43f8db7361bd46a748318afa7f7ae9b66689b4688bd7bf84ecf1c7a5ccedc498c2b3a812fb2c1c116eb815a5255752d5a6a15d8557277b4a8c90c9b6903c067ee77320d83207ea785f4fda00e001c24aed84e86907c3201cc4be072015833e5925e5e873c4442b0fe54495cb7dda34b08d3b7228d840c1ffec76ff56775fbc9b5570ddc0058262d58882bc989dc5ab6332acdc8bcbca1f101b0482966f90ada79c5966b0387184ec924da17c6afc0ff814650e7fc35b8639e23d2761d1e7d195d91a9c27aebd8d0b9c91a9dcbd375578509de69aeef6c489c04b42034f46f2523ccb76201c25749ba4496fb9e0e782c063e4bda2b3db152d5850e480f037a17f793568b3439034ec2367c2a49c18435341f545d2b43e0823857193f420a31a4ba7ac91d890b0835f3e45fea2265cee038d7f6f22d58f74acc10eea19770df87dc46c740931ada461664074002d7a62558e94183b7866ee25fd8ab7a1a2e84b96a60030b472fef09b8c9cb755ae864c439d0b661ec4d5aa56386bb285af2e21f6ca26fbd769634d0d2addcb56c9168ad2fe4183a5fcba56769db767220d9dc44ee1a24ca61feb3c1d16499701f05df29cfc105698dd2e7463ef48c66deb94dcf80a4a8e5dbb4b3464bbad3ced31521d8a0b6658cb1bdaba569c3238c9cd497213a711e4c5017d99de9beeed28d39128af0b845dd5306014bd96d36d689bce3ed9861c4d45b9291584b918b9fd73dd2de24a2a1ec840f50cadab77b9076f28f200e75664ad1905f4b3b156e3d42bd34c87344aed02edc89db6f6d832f68f89ed6b58c012d9010f791c8a71576d9b3cce39ec281299a664fa62e078969f79a2d70018f4962b567d828f43ca8a996888bb47facdf071c97067ae3e03e0f02eddf74fa076360c76cc0c528f83ffcdff6f342f54d0b7ebf95fa7114dc23f3ebf33d4df53717b46cf39866376f7c57e22e1b5f333afb8d53325b33e647b67172246081e37ecbdf21da701fd40b88476df3427eae319d5765830f9fe1f1824ecf1effa3a637da8438ce2eb4df587a69248eccb5e8ed1a05f2191607803df5d2407239a2b07d1e5fd7de16c00a666df0debf9b7461f96e10d8af56d73b5a1bf6e7efd39ed8b716fdc0805b96dee307ed82cb122662dc67625b20596e86e81546aa0a021cfa5240a6e3763c9d5d4490ae83907c9501fbdad2659a4f9b6e097f75748056224ab238a233182809db5f0a0f96d0f2f2f3cb7e2abaf3f7d480018a055e6811d4d0ae44a9e607b9476353fe0dfd57eb30ddcbe5d3063cfb5901ee61b3a3b68bb1ba17c05a67b7e1b08c461d277f8dc41503a78e59026ed7950deb6416d9636f5cdb4d5361c4fb915ab06c16363d90e5e1128c147a83d9d69f6313eadcd771d23301dbf73c608c01e876e44df95f014455fc722d466f13dbba7627e00e76ba51d977a1696fb41b67dcb50f14574ce5693c9ff029a58860503d881073992e8305287987ee44dfb51d95dc9268d5fd5d2f6115674df783e7b189db017a6fcb663b5907bf22051b379b89638f62177faa431f820c997d07381dabe5054e849cddf11f373f7828309040d57345d06aa032e4bcebebf010fd8540b3468cac04aea29fa811d2e11cf894ca34c0b651cb270782603b306b65dd9e1505c6486138016e57371ab5e4b10aebc68b7310b6e303cc94963d398fc022ca5353b81e60cd78b60eab318aff9e09f4e018b3590fd2a150ee3154ef5ecce057da3fd8708cd537d8fd59d6eb3454f1f6617af5496327d756489d7b278b88ef61f362aad3c2259b6438fb2ea8de17d6b1469ee6cd39755f36727a066482bd15a95aa84aa80147c848dca4057b3bcecbe0b4af5ab03b0fdf0e11490abae95a34a81d201b85fa3eab14e237f333cbf5eddc24887965f05848fd7b68a5442e52a8f319b007bb33053cc81494c9af6a511f4f29ea690cd6c6d9f5d7f2049b1ba750d00b07374fbd67d0aae99cb8b255cdcfc0708155c8885d1181c0913f6dd64b3d65355550e6a7382ef800a7dd4d2134e3fd74a0a852dea011bc5ced16ac262e7505c330dff1cef8e4e71e780eb7e14fe3d3bbc0462ba93f7fa7d2d35427249f901dbbbedbe6d6979843388a1c95c1e2f8893f9a22774120f32021382b5a92c436d80fb5cda5093109c3b3494f6f250311aa4b543930734e13d7519bbafffdc66be4b12d656dc18d1938402de3fcf3f935217f7d6a3527be5a77b4376539084e34482e17a1201630bdecf451dfd9c9e2ea9a848094ef4c31fe4436cdd001be0f2d9424d01ac149d9f5dd9bee9b6a265b6cc5dda0de881e20801009727c884c4e90eb93f1cabfdbac379d06806d3b0da27ed8b0efb3f33bd6ea4fb310e23174831e4c792f7e4fc017c71ff64db33c062d6505c75520be03dd673c6bc6f68493c7e78effe43e0e23740caaa527de237c3dc1bdc2c8b07829cfa4c5314861d46ecf40a480da42ba2bb946d521669d75f4401f3f12d3064f2bcc43592f966defa8bb7c26a9279d2bb0c405ae8408ffb68e7c4dc6f666a6a0738dd2f040c95eb6f0086a16dfb185543eeff534092981ee6507122beabd3e9fb5d6aa601b2773117c58f4dbf443f980742de2bd8360e9a6235bb746c2a74e0b065d5cce8a813f231254ff8d4363c519876612aa3927bb27209ae6323a6c83521c14a6ea675893a30092fd8b0fbaf386b67ac095b7b6cecaf4f0ab499e285771767e9a1460b031d67576a2bd6afbb478a280014146ad1c80d7221b526d8577f7654b202a9da00291413379d52f3f747cfec1e861b37fbb07e60ca6cfdec7a119ee0f7166faaf513fd17f93db07b9b807916fb81e34a5380003810b29400f9d6819c59ef4a6921d8ec2d930020ab4e69bc6f4233a8a54f32782714cafd55f8658aa696add02e0fa42eb313b4a956c791aacaeaa1dc60f58f7f7ba888e695198d00be277b01828a7d67e218c1da15dd22c26e97950c2597a70a5ed542c8c7f8da90ee9f68c371b859cfb9589736a1a04c2f474c2fdc12e6753c78e6192c9aee5f00e126a3724a5073df6abc55aedf8d89877f5e4d39bbb5fb688e63ae4eb2b5cb12d15afae2f8388d1d97c040dc43d7d01757ed4f8cdd336fa23cc6b6b632b78dd35dc65a4712e33804ac5e30ad15af4438cac964830bd11ee8c199b54eb8aedebfeb146eddb5aa9fb209fdcaf4e4a70f1fa91364ba86b5e5d4c25eaebcb9263ca0ad815724703e9e1073facbb1b5f6ddc114bc3418f9eb435ece1e57400bdc2f8dc520530ab1e378b69457372a5dd0504012646927e4fc6143217bba5a1e4b18b15eaf1fe731efee882bd7fb24c71129bdb26e1025794af570411ecfe32df1fc089f66287f5471eecbfcccee07c2651dda064caf3718df2023a49818304cf765adf86dde713f482cbab2271417c186b8c6613092b5d7d4261546c804fc3050bf565fa5a323e5ef5faa3ecf66f582df985cff15f03ac792d843dac62458c3a921b78d767e039c30f4bd32cc788780cee50d766b2d505594722035dc4e74fef7a817ace21c4b4f831392a287c1a2ffb1efe69ff9950622adbade75e8a53ce6bc23bbe7e36660caa6222ca193e127187867bd4ea807fe6107a920522ec1199ad1f88089a8e0a4c3c39da3d8032328fa076743dec8d75f121ca523700e30ab67b1d3a929976d941835fd4798c73fcd3e226f541386272abae8ccd5255fa5d85bc056656cce3566326842bf4f564f3ec0199aaae61dff3f5726fe27841407f179e7a749870d0ccc35ad83ec60da6e3ef04cecf8ea3a2c539372576c17a7bf40bb1aad7b4181abaf6df640da6664a0cff41dc1dd211288ee0b62f364748d9a4157e91356d8b4b5f5223366305148e903fa1f157aa3037ac0dd4dcc233290ed8e0efa8cc6e3a53f80293173e8baee719513bf539ef677c639cfafc5e92e8aa38568e944f84b7ccdeecb13242834bb614e1eec4c2963e90fbe772fac3ec70cd5fb81a2558ab0df54e228dbc64b2ff34521ad3aa324fddf1cfcff882edc9eadebae843742c900af95cf51c8692519be71555307c11af06a5cadc8e077cb04c41732c0e08ec2c24e6f7f162410a7f07fcf21e4320e686aebaa99bbe0136583aa9b5446afaff176a35079d55c19ee9bd6c6c0535335e7d1962c557321a6a7e42f40587e0d32e058455a692ccbcf64bd2c3207e84209e1269bc998af792830f912acad4866bb24b9f3ec511fc7666cc227c5e442bf115d2655d42db1a7e6e70ae237484bd5388ab156d2be9d1d402e230a0fa8649a10aaad4df5369380fc0f4f00ad933e6310a8331a67028a0cf8817a00e3812eacaf05d8c1c962dc800e1ee7dbbd61f618a5eeeb0f301d5d7d678c7bb06b101fa84f2df9f83f9e14173c368fe3c0d30926daa06789b519d69923c4796b661c142a137c626d23dd32f33c0c428cdda10fdaec50da4807cc65240539a3cf444069fbe1a95953eb23589446da77fae3ec8038c27bde58a5e186172dabf658b0ffb637a118c47c7f195ce4a99b135e72b3605160b1389970c6cab4c6f79cc5265a87341262aedaa63faa2cd4dd08f077edbe55f0670fe353f2f8a568f2ee3dabc65268e66773814c31d61d251fbb000d7176f5a10592710b168a97feb7caab3c2da73ef5dbe73e033ff8e417e02c0aafa7f4daaafe87821b99512f235f068f461e18e25984023dd3c6d2f871add79fd114199ff13724269410b7f0a63aee68f2095310a108852679e8527e984d17edba7f8b8f1b6c4ef616a600da4a130bf35e6d7cd2edd90c3f5453efa49044f47c6fb55088deb02c2a530d92ddf431378fc08e8913a71501ff1aa24b567e3b8fbdf0ddc0b3ac00d7979e28faa24c0f421671e81924aa3f5216d3ee64502e1339703298436f1b84a1b45ae701c402b0a489449b0750e71d93db39277673e5ed55ffb80ac3106e7aed4f60647bba96774f97c2ba1a82d20915f2d0e885a19be3ca24b6ad99caf8f43e82d56229e76f0f516b03064151e39887a9fd21bb268304ab7df6a9bf892d116ca816fbabda64d3b227762462621508dc1d2650675abab304f707e2f1ed24b6eb34dd735b5d4eedcfcff55e380762de6a3d36e79bfbbb367ee85724f5485026ba16b6b9a4f3b916ae17a1fe7957d82d19f8b1af987c397266418dc1722df67fba317a0196427cecedfc3a76a105b8e28492469a5537f9b9cc539ed68cf38761a8f2fe1b4401eaef8952d8941387acc7216ef50db7dfa481969ec9271f9d03684b12cfcd5412bdb9cd7642cbc1b22eca96f536969f0cb854f43d6582e6e4318c6ded5b96eef0cb8f0db8207fc5dfe8bfaf112890ab0a7e8f7b0f19cec721c99305dd0c8aaff2e042ad14ab022c229e8fe2ebe3d39bc8f41cd4c3bdbafc8ba5cf04d076c0a440de40026dd514c34a1df1580b2296866a5ab0ca16f3b0ce63e03a8fcb4ee471989c022b5a2b4f5014a43657856229377c0f9d059f51470a92d6bfd2b38bd177a9db3ce564928ebaa659d1a5d877afb63f0821d402fda6b8e9970a7ffd7a2d99bc192dd81bb5c6489175f8a863cf2891abd0cf1bbb691fb80c84403135ba3b1c4ce995c524b88b2f38d04d5d546d62c4b099c4c2ee4f849bbe15704e75890610f75e126637d17e73569888f8664b5fe6c493e8bebcae25ede97c0c7428dae0d64f663ab5e0136f46e3902152a3813bc56fffe9348dc5aff55ddd29cfe0cd4b786854787b20c369248221962c08e4cc65ac14e94936bd9bb22ea02fcf7ab88583b856036fa5f263b6a3df331e0a6b4b52026ef41f790d905c5d5f48b439a2e56b2cca8ac6311301873240d3b60f0017d2adafc4446e575eec7d8f6929f959dcd3fbe9e38ee5c8fedc015cf5fb4ab76423e0019c3c0fe054c51b56375fed95e21b3d18a0f0b3adb622861ede0346c6400c767f057da51b05b579367f1a6e6bfcc9bb7e9e6386e60176bbc38cce7bf94234aa67c1ebe016e03f7981862b0d659ee5e9296aab9f6791926facddbe6acfd67800c9616d935b4e400f813798d591d80729ef9a2aee4f4cc186bc228cacabf3bbaf2cc58d580442aada9fe371b2d00c88aa5ac034f2cc8324ef8038943dcf2fbe610d06168460926d79076643cb801c271e5ec8911bb5e6271d1fce3364b12eb1eee8723fbc77136f9cf6a9d2cb5aa727d1b690bb70efd84c282995cd4ff27820114cd536277b55412d7d4cee45353af757204605c4e3018d9204d871a6dc42d30e4c2bad7961b4b54363293caeddb3a0e6e10e4e5d17357630e689541def820c3a53c7070460b8c360cf1fd0ad2827a1a4950752fda238b05fe77b6026bc1b1a28a514131df2e647959717ec242b30b2ee1ce153f8ab7c2c91c20fa370ca6f9dca2b539ce12bb0c64b7473240bebeea4eebc62487e15718c6d14f55a3cff8594244c8b7baf0b33b8aacd0b0887888b88e5bd35978611bfcace95daa5e26bbb0b2d412a135f17e24dcec1458eb39773d7fdde12d3977caefc4f737924dfa9b6a9b61acced0595ae832473ff910efc2c38fbee705ed4615838723be23fc81c5ee6daded9b50c113023311074c33e1dbc963ab631bbba76313fdabf668d89c9cee1e4786d417d35e17c712dfa0a842e02d2da79e426ac6d22e205723741d67f55f0faef84dcbf17961e8e39ac8e9679c4d9e4eec984e2f97410fc5d20a6c9edb572b12f4b153a26f5d5d73f567824078da9fd8bc95c84c89f4a97f5437cd5254a9f86a83ee876f692b1fa163b6d3f52fdc0a292802fe3c104d8c88e7ba3663f3d9cfc17114f5627c6879c8ebb5088bcaf869ef939b265cebde23b70f8a1edf71c3d5b63cf0a8b52d659627ea6389be02ea78a64ecf9d99c0c6edd03ed8745b70d7897b5ddc01b0a7ceba4425995fcb5074daae0a41f54777c1bf6885e608ccd2b12cbcd2883586f678f3eb6057852e61731eab396f0f75e56416104012ae0ed4c0130f9277cce8c5ecd6d12e29720be1074588f2da7f921600b53f2e884ec1febe9e91c878b0a3957e883fb035d6cd57a3625340a8a33131432b7fde3eecd83c9b27ea9594e7512638bd80f3c1eaec185464b64c9e9612609608b82984b9c0fec1943adbdaf81984db5dca55d976a7616c0168e128fe5a9dbadefa40fe94a3556064ce7cd57eb98738d575c1f418f47cf0736af17f83f4f577e624caa61b46615297b8e14debc7e716b61253e029c8129c3799b8dc8ca8b1d014b1c4d2d2a79bd29e6a361f67d938664c624b6c744aff5390c7cdef35b32ffd4b1897ff1733f5279b4a66794f458de76d42a59c9c578a7cfe51b789964a860182fd155e16cc930f267109b1a7fef2fd8e8749f0f54074ee58f44a01cb387707a7bdb4c7906293caf409d92c0040e2d8f265eab98e7faf824397de46e97e9ef6980796c84ee7e22cca3031d7189b268c2505095479b104b3f0b54d0222f005c3ca8e5f86356a0d6d73dbb038873287d2fb0a55ffb8d2dc3c37a2878694418b03da217e3948e30dba290be0152c73e61e90096e2e2ff2f5514791557f1e9d9526a909083a3e690aa3de099ac2a8ff205ef74095aab90e2c8cd8b2d2c8399c8f7c2a79cd8a36a6a42f4fa31a72614af6b9c998480c6008315fea7fdd58dad4da09fb7f56c5285154433fb96c17e3f1ac797635bc39a92e0bfee9839f352853facff8c77b3294c16c2378ade04c98b2c582fca4747526cf308c60501ec2ccf9969ed762ccc8995292a16618894e67797438174eac684c1e135c720b5648d833d061885218d6c330e2d50e8ead03065f857b247c7d49760b932270203bd11c2a643d773b36ea6286307ff53c2e47a3f75d1312a5a1a5bee99de2cfe50e985e68455ad00312f5f9f026328cd6de447e9615536bfce5f47fea8d6997e26981587580d7a3f55695f4573c65743277f9725c81a0da7eb23f4d191a6df736498f986cd2bb62d717e794a08fb9b74714a5850fac588260927106b8b00f230118c7c1aa8e1dc60d9008e5a2bb3fa4d64a0813806657e3e0cfe4adbe01d63f93b957eced58d7d7fe590e44f095c7c6f745a655ba7a4d3bc675e50bad07476804fde2bc7f2d74469101e936431ccb26e4e67a725fe6f9e0d1b3576e09c623ef0c047f0ba126385ab7e0a8762b074137993085700b3490c9dcee4ef0309dad9b49932e088b5d4c10f5cf85812d768eb7fa21adb824c06df027953feb623e32d41698db8d22cfa18a06395c78cfb7cc862f603b3484765107954ff6fa642483618fc675291c884be389160502269add81190735225057b71594ec4a5bff3aef5c12738799c8138d5d982268436da9474fe23bba53da9887ef616938051153376967ae7e07bf6bc174e7f2fad13b3ab8744bc8786f4b6a53e329bf58b4f8e61b07e2318a0de58fbd1c34a6c593a0cf766d9e4729d7efe00a6077c3e8b71bcb48bd74e0b1bf1eb72e9668cd6d21695008af649995ea2aca9ed12c958b2e8a6c430c0a22caa3c1d7b9f27722f4f91117accacbffbf5242a18c2f012037c5df95f4d8731d1789cf0ae65a6b31a1855220fe37ccc0743bc58009f55829a385c0ff606ca4053ac3c2e2dcbb2f14dd3d97976e0137435aca2ba2c36a74d3f75eea94f4f3dca530a61266e59e0753030ee68f306ca0fcd241f6b0c7010009b675b307786ea111741d6a4ed874a5ca893586a73f25131ed6c2662b3d82ffa60d76bea35644a5b9eb8542471882d856a297f3f94bc252a0977a71deef4bf510c92010073cc7bfea5009251a9bc82c73f47253b665e8664ce9d47cb3fe0b5e86b708f34c0c7822f422bcce4911ee99ad96e272df962c21f693520a48d035307e71c02bcd3cdc2e8d713be3d86369427c8302ed25512240e0b955f6b6c5ea5fc7c7a3196a5b7402158d69a8f6586076e867c6d1927d143a2604ecd042372c37277fb76fb42aea8254c2354215e0e094a2cf59697e7d72ff4dfa7721520df60cee034476468ad6562d2b0da4cf79c661a18e122636612455e97922e5b743549d9afaab0db48209136e548861e761a381672d826348e01616e5ea0e1fed6e3899d00144c1ea35a49701426a0b3e05b583a0512fffeba68730c48a2867e9235ac76b9431851170fe9f40415e87e808a915760dfe531f4a4c6663e8e92e7bdc13b79d97d0573a5cf58db8da00f1375d88dd0f2cf2dacf1ba7a96115f60d0e3af9461d878e449b316fee748e89249722531961036403df198699a6cecc4a12ea8b9bd83ab5f6b1fcda2f978f880b23d71fce753ff9ded48ff34cd06e7b237dc0097f6d449bea935c3bfc9be6d3063d74b9a31a5bb07364a0d70e32179b692e8050595621bd3f631d2cef1ee779a214e2277034c85aabadb5796f1b36434d8f5afc078e210c37d1b1f1b7cee53df88771697b7eb8343b19c39715ed8bc45589a1bb0305cc57847cd7841c402538a2cdd38a57ac79655027a085de63ce75627d1e40fbcc99db6894900ee67a314ebe780128ffb39b5400b3c5872ff740cf0f9bba7e0c59af95ee48e7e699ee206bfede188f5af9c39feb47c87c1f908961e7c8de6000a635d7dde452cd63bc88c1bbdcb3cb00117e6b0f960e19bf3343bfb0cf73c05789f14c042e1b234ec934201173a8cb11589ff572d90b417f1061b91f16afa69f82d209928dd7b9951dc5a8323e9f8274b055aec568f443022cdf2401fbb6f2c4693d7f08a73c45cec9f2bd1f6b093f92b7497a87eab9c3f10e5bf1bed99d155524012c843f71fb57ce6b19ffa4132adce2423e47a1a37d9994769f72990d791dde3e1d590d7d623c00eccecb521e7cae0f802f2465ff746f460d71fa364a656494310c81f0214dfd126516a570484af9afc3474b450199eafe61c9cf93cdfeeacd5814241aaaf3f65fb0f2c9a78c0c31a9122ed483ac4e95c73a521dfa56d29f7fc9ac234d751137afa5c15a820cf4c947b96b013ef5d837072010a7be948afa7ae57a014398b0a9a877bb62578d015fcb3760e6c1d21ea1a883894666c490d116e8c3ba2ebd5567ec22840ca9844bb4494b7f3c39ef2f3ecbf643ef2d98389ce7bef3f0067a51ba91d55252881d04070fa6214525dff242c11427d7972c568a840dd9deffb96352085df2d93f5d3aecabc22fb886f4845cfb82e38dedf27fe6aae48cfa80e5ae587fd0920c9be5056ed19986edfa2af396e517f817f3f8f792a1bbbf6c35f79335b890fc1489ba6343eccf62877e78fe3051911b09492132e196328e482f3364533260cf757e1c0a579bb33f78b256001d0104be19fb14af2a07733f863a89549462a7d12285b6529f85042ad33eea6f108d68597faf8b55f8fdbdc310cb98a8d0cdb5b39f75c5dfc04243df50ffcbb649e1eccf7c86e64bc351be32a091e2c4258df237762440971a8a5e983644fccfdaa7438f58fdb998c188a438823f788f20c346c979a56f83bfb6bc4a437bcfac1ed989f539972be748b8c2106b29a186730a9e82efd90666585ba104c31e91f387035960f245c588b4ea55fc6cd362115ca074574528d2092c4a9d70db8d0ec68740ed74b91326816c6abc15f1d7e8264081618d8e66219cdcfa266eedfd9f771b522900528af1d08d9b9dcb31853d515ecd2d90adb4dd516d37e52988177ead3265b9d07329d4a42f6ceb038ea2ef1d459eb3ab0919851ad602efd15924ded5f78adea8f0a19cf03972328f22276b5bcbb5ae4ae8b5d114072e4a3ded9aceb18e9e803f649b94154ff75105505397ce87dae50d6f58226b644d1ca12476cbd87c361807bd85e35ff54e2a151f960b7b27c1a88d8e0a6413c9eed5010386ba996702a5d46e67ec65e1e2395c65e1cc08593e5dd00a2a7d14b2d3b3adcd4c95f7b0e44dcbb13249b1b73e5c24736d69af836d140c5f19fdd6a2c2c56bcf60c3986e59d060306c0edbd86e8c86317f1b3c910988c1a3d5c6908e233acc88af28398045b0eed1ec02257b760319fd9443f1ed70a43754653c06f0d9f794d7722db5d1f9ce476bd1727ec0b0d6a3492f6948805fbfa7baaa26c872d1a44a41a744cffde4963e489ddadf3316358de9e12371eb6fcc97b37d1205c1d7164d74ecf65697e1e111f78af8ebe588ee930c6332a4e6bb90ee0a05072372c84df09f79c6b0150b1d6c2cd9114bfe407c86367f7921634dab3dc1f11a92cfe58a9c86273e236e056477090bfeadf60f62f4023c0fb29eb5fbd388ba6512555216822250942fec3dd2b950f3890534589d5e27152861f941c91c5719b9626829bdbc302ededef73434c14e2746a85f0a5f26022be12026642c05048169bde29fc1771c7301398693d2906839be20dedde02cbab6d28238f68d925042fccd560c25d35aa7ab59cd39c641f019286782aaa6ed98862f2235f47b003335a9f35ff05690a58b68a0802740e7f4ff0485aa3744a7fcd2de9017993480e57204c19200ae8433532bdb293e222b7a178760c0d871fc443cef7d81643b663219a2fc8d20533f85c5afe3a5848fd7d24663cde2f57001d049ecdf22a68fcd20b68867964312e5559f052348c57e951faf47d397f53a20c46ec7163f919ab0b002e4bd4f8bdd30205ee6c8a2e1d53ed471baf3ab36e20302e7da47592c8fdf4addedd733a28fa3578462bb619d51a9e975650b20383fd8327aa2d6085dee749c9b2b1c108ffaeb262446066e720bbe677f27387d6d289ff37cda07b7493c6b96b4623e43f92f30ff197477a0a5d4eeb4eaeee472717d6b93e2a7ec3e0b0760e01d484cba6cb93c9aae1abe335e32cdc7cbb189bff465669295b9ef3734a98a2f27c7861f16c23d76a3bb9fb978a6b8448cb457b67d58d0c85dce4ecbbf0072f4c0a5a09a2ae44a25b9f4a487d5c5095b5c7cb7887deffcc83919661e4160e35427bce04e51147fa5b068255a5fe7b469a59afe0eb72f52c5a434320633f6788d5c99a516cbadbe3ce0ab2d4a1e58fb15efa6f60f80d38e46ea938439bbd532b5c7804ae7ce95d42378291130742afc172f16184122a9068d1a496a9319f159d4274e647b8a5d941b94980ab823ffcf9dcee06328325133854e52e676166fdb265e4f3e42d5e00c325e2bd49d978c29f5b4c8173f972c1f695f92846a399d809e217284c53337e72af624ca778c558b9d50221b4bb3ad23edff5a3ff7c67811736bc2b5f04f1d263468139e952dae162f0cb9407978b1864688b55b58b6050f7850f9965946d174b5a897a481367ea36f8f3256db3e3e259987c1aa481c85821bd5479b7a177b48746f72c9f12059688b50ce17e0f4b1ba7fb0f06893347f2e0a636bf2d77db92229286a0263e99727ca1d9ea327ed7a833041e7c6e8ba692cdb3680fd1888cd10997e3c2a1d80e635f6671587d779020e45ef8b82293efa7fb28ebe52e55d6c9ae5c7355f6b078940b70889a3ed305115110e8e14c5e0912ea67057ccbcc1995752f04b7aacc4c72ae92a2afd2404127bd6f52a6349f6f41240f50ea7c5b11e31b1fc78bbf2721e155f7bc1a2b239753e37cab99bee4416750102ee3896ff06caa9d0e21b0961f111d0566e7fa8928e4625cfa9412d0ad5d03402c6496a2ed40346a3413d5d8f1716f1975147f4f9302bbd8d2f18bb91e3aa6a1c5040cd61a89cc8039951513893e39eb73b8fcf0d929da24ac3eeb71d0281462364e31346aed072208cc5d81ef618e1dde512939012b29fa277bc7d45f5fc839564d8d25356fba3d310f973f869a7b87ba323289ac77486882d5a9c8c853de9fe1ad12df1ae10332ef322743c000e93b5d697c9700110bec710cdb349f77c71e43edf815f173ec9562fce574d021d5ffeaa88c2b47ee1442a861a59763f9803479c89565fb83d13925b127671d228709b8d047b42111d4186967a6b2b7f22f45f316a3d1e1a48687cc253062b841fe3da331d1bce904dbd53230d21b6387890fc1a7b0616a33b7aadc8f25be99f1ed58c651fd80f04ee3fb5d0671d059e02bd3a96f8e7b0176b3e1cb3d19e2d71a08624c9810a62795af0608a453d0ef36b63776baae6b5ffdde1a1bd6436057e1f388e3ceaf904eec540110f9f3a3d82e79c29a55e6d708fa5edb23acd160b99a0ad41ffb2f5b0fb053fc579080e61e9f3cb445fd91df2b1410b2ebdc5d04ea6a43a39fbd5759b0621b415204aec95009506f8bc085bfe2ec3b58e2baa0233e229eb5ab11515c2175a100526daba1280f6eab4a9f6a671e5903bf66770d06b5074cb359777a9ca38ac418ab81bd4b12604eeb87ea56fdeebeaa72ef7e66798b52e38b4070a2b203b09fba27f6059942dd4ea4f76db421b815978cc16ba5ecff743e7f9c2e9df2ce00a62b35c65864766f9988623eca99f8430fc2d0f016b20ecc6a1a35fb53574b051910afbf6f86256e98e6ba4e7f93cfe583a3cfd91753d0e995b7248083cfea11f147fbe120a4f3fc9bd94071f7da15060114adbe541b25835c51f56b677a3c59d977cbe5c310efb1c3198c2ba69793d455bf5a96af2c5a495367f389126e78629ce8daa3a4313eccc89aa14728475ea2b17b5bbc5ce749a6f457b401e9f7833b729d7e16503ceb1a4dec7584d8698cfe07e483661596518560613903d807e5cd5ec49beb3b31fc51bf4f750a07aacf5a58c4227556e431ee0c54b2e00e7057d46ddc4d3f6d364c23e3b8bf0c7347ddd4f628c430a5b01b29ae2ff3cd1ccf80319229ee1fc956f411c08ca84effaf717df353137f7c4ab225b0da6a14a0f294e1f488c4f7e01917ece41329bb5a2d55cef4507cb248f840367b018cc4e4314de9f393d85c48f03a3cae5b34289196c5541dc117c71b63fdaff5bfafee185e60ef0c4a18bc4afaa1eb7a068253b989bad678505372378d3ec90ad82be9061a6454b0515aff11e7efa38e45726047d0528ee0cb2e7a04634fbf21ee0bd133eb41002b32f5bb546dde1445bca4cbae3a6d28a1fb1d7f0ac62d3f52c4e243dd86bcaf640e7dc4142301a93513ac73be598d18147f78170117b4989b2760638172a26102d8a6ab6c167bb9a8267f044534a0e0382a6e03e4aa3562ec9d9965009fca0412bef32c3bc0ad86b92d8815578e4479eb39e1aa2a694975ae139c4ae85e152f89387577246db7df50833b9001bbfc10815401b4b852206b8b0be213c2588780dc5c7d4680bb8edbb4091e28812238331a2bad6a35ea2db01dad12584fa00d180d1c44e8870bdc460ba6f81acafe263b13f3125c9697e8ea4f59ed766995a25edcc2b9f47202d1f4e640f1af13c6a1af6f36fbfdf3564f295add817e7fac1d66859fbe09aca1d012c101533c406e60e8a56a7ecd99767a935f1ea52c890ba0352691965ef4234480876df3ce87a4ed28c577a404026d18e9db69bf307321ad4d30406f621d512dac18014632c9b0229509a3fee1b491a314f0d344ae00f5fe968a57a3d6dca69ce43d998a87302019b051485f0d6dc2c5ad5974a234380f2b2be2c2189aba14f313cb994d1de4e81f70030c3aa9a4751282c5646a7d9e3cdae3ec9ea6cd37d0639bdfe062f9c5db18e45be67b31c8a10769d92963efbf4154fe6383affd2e0fcd8b68e537fe898a9b551f09caafd493980d943d0469c3d8c17e3d2f47798f640113a25a96e0735fad889084b7f3d9d5b4a818c63e8ffb03e4ec80e1bafd24ce7509dd280a9c241e3946610042aa88da2baba79cabdcdc62463d7652e2d48ad38805204feda64c661071ef5135ea2950b90743730cf5699de1fa21494eb999767e0d2d202c20952ba4ca441b9bfc07df8ccf76bc4dfafd7cc9f8e489cdb52946e01803020000698baaa6b9519e7622e57fe0126c27e0c4ccffeb6e7766e09b31fe81413db6922c9c9427c674c0db860ca2a2473625837d3a9144e3b03b9f63fa642ed7f5ce488b31392a9111f7e78afa2008223b568e902394236a26216b1fa46723ef73d1dfdeb559802512e64d8cbf10acc05de0f4ff099a2832890cced34e786ac1aeca383133e204a82b9afe8e0e0e4e38e966d6f78bb94b3d5626a87a6f7fce736e1dd7ce5cd0fb670db3ca28a48c5f1e0c8eb76762903d64ee723932edc53fde1e2ecf961d74d9b21ffa9cec7868baf19b0264c6df3389147ce9b998d3b1d2d4c70aa5e6d9435e6b125262dc2e497574cb83839e6dd6b164c6c791c1250aad8368b235617edf8f61e7ad19dffb39d4d8555c52b3ded45837087132d4397c4bdf4e45a83bc2c5cd9ffa7d280e1856cd4a8451bbd1b1b7a0671a72507a7c5bab556d6a41ccba8354a93a6276421fd6f20e76f9cc8aedb697009de6a67d9aad0b0f98e052d5be1472dc656903c7e36a27f2f5452c9b3ed16450f59899d2d319b4b086da40a896f58e611055830434ec37a2923451a587a73a164e44db955bf883c903cf8dd49eedc71b304fbbb5053a371685878364132869e1da87731e50628f0bd0e002b8d93d7429bc946278cfd9058bf565683d56817ab1b7a17342f673340ec27b7296c08078d09f6d34dabb536a0a60f3737209635ab5e9cf5fadd4b97acde952b5ec4528af72f2346f55bac0a615aa1da3924ebed74d9fc0aae642a3c7850e7c4a088a3f9ebd623562b32f94409d9ec8c49a468cfeabed7a164b2926bba6b7502ce48f1293cb5377d9ea39df8c333fcc19f9f677c7f8aed74dc8ae3ecd6c6f213de103500695470b6049dd4cf3f2ea0e7e03007cef3aa8750cf7f37c10c9764a59ecadd4cb047909d47ec61f8a3657ce1eb31e816184f3f061bbaf2c0dbbd6083f621f5529bd553d8d3e40a686f7fae36e87e60f34e506791577f62e528a2c75792f53ff82e043807327a55f5d53cd7cf4d013f6ff817b85b58d1855346e78ab79abe75d255df95c7afe0661c7cab589de275b931e7b187595b9829d2b7f1df4435f278d01dcfa3ea913b98c2c1938dd34ea37f388d683fbf53c346c0a54abe6793ed2986f0537bb4200ba4e941e96f00c2734e0f3547eef4c9750d01787fdb62eb7c3bb78769f492cf45e8a9bd78305c2e6ad767a124d894eb693d3d94b01ee492b021afb4bf4b9fb67f750020796c9ce98322df1e2febcb70a73924397164945e24744192a242eab141831a6bc529ae0094b8d9c5229d10ef88fd47edda38826b3de33a8d43bef13b9a910555b5db6c17052f619370e2171f35e6f8a492bdc47272d9dd29a19b78a1c293b1b376dda9edabfdd875f2f57f2b3b569383e06f8adb302b379bb44dc303c14e7b497e7e1eb9a89a515112103ca818082f9f0125d5906e9aa3abbe03d2133d86848d48691e478b4edb39fb705fa44b9863afec949a0485ad6e762f708e57b95ddb3a2ca74cb8250de22bfeabd81113f80ccecca5d829a5aa6184d8dc8fede19e5b755ec899fb58cf0c2b76d26c629ba89aaa5260e9380b9cf6fb33f13439ee5433f92cccede07e057a97716cc50737102bfe020a8e524e3d1848bafccaf58aca72abf51a72de8552a1c9b363cfe841bffc6127e0eddb0ff90b27d9516459835f83df74722c2f28cf5aadd27fc98e9bb8414e176a4b2431366eb0457c6a5ecf999bf3ecb6c3943632af12b3c86d55efc3e39dcdec195fa73b6c4c9a4c8e1b73f7637d34219a41dbadbd28c176dbe78740a8249c344b298378a2d9d4584ee820d059482ac2021727635560119f29f63560b21dbf44a9518b732da29d934a097973e23db91b6c87ca5ed4849b06681be323ef46215cc1a398254c830bb7d8771b48b7f9e846ff29afc050b24de30d17dce7abc2e024d6df0297bc91b3d79a33f2e8abb42ee6fbc8e0f453bb230e4f36dcf45b24bcb576b08893fcf595122681c6e73156fd0797cc1fe954a9916977df130958599a4db4970ddec997c8fa24bf126a85682a11a3d64cff89e4756bcaeaa83dcbfd72f09a852b8fdf0bb809b7ab99e1ab0595597860e65ca229109d47a0b27c55645136fde8306b4a74cb96b656539062fd86322bb7c786742169ed7b810862c5891703ba91bd61583d1a9489a75e6d25daa2513df582e96fb6ac2a7493cc9f018403259e951a15115d8c46e039198eab23a1e78aeb00576b0277b3da5d43b9194696a99deb10de70b3c273ced98e5bf4944d858f2e987f3a1e4a658d8576a2236fe826a864df7aaf5db0fe60eea897f94195cc0c1d22b72b87f9542c567ba491030369a79df4eede7721b26599316050ebc62be1ab6c7813ec517997855dbd69cc5f665ae6945898dce9132948ff84c0c581d303c0ced1e2dda2e57c7f6b676b1249ae461fb5196d4c0e34b8ee2e29159ccddd4baedc6761bc8c4a219e793753291a71781ed6df2cffa0fd31e3d9ea5d546b798b8afa3e5d9cef815e9f9aabc218a8d5f82b8fb27473abe2d85f6d8c4b42bff71fdb311c48cf4453746d07e578be592dd82a1db1e59eee9a8aac79281ca9f348e406b134a420220972af9c3f42e52af324dffab88e9778dd7181ad7d6c2e1faa21fc266c7c1dffa5c92082c436c2c2b47a5600057b9b2ed6b2fa98e13dd58520be8080e79464b3bf9d31eb2af44e8d700f5a563c643f03b3d3f4ee7d45eef6f19afff09ce974b189ce6a7733ac8455204f818a8ef7e3f7cfe3ff81554e8a4f251b41adf72bde2a5b307d199526fd8b084a57b3934d5480bef53df14a1c6a3b50b391b129b71742c112901223bfe179ac46acd0ba905b0ad0f77bf83a22ae1ea3a7f726ee868daa9d76abac09b46fa5ddb6a05e32a566b8feeb38cb2b8c6972500c388cc382867734f2dac2fc5aebf65ed85cc1cfdf114fb1f336886e4d2c5d80de4a9cfe9e7bc68902f4a1b1168eb10b69d5877a8c671f6c1689eb65e79de94cadf2619f0d0a112d814233b8fdc23b180f36d8fb16f37237b6051ea1672492c0c7397e93403d54ab8fd8375f2c437497e37402afa6e556ad1f6fb550bfcb6aa9250ad83bd34a336cdc0b48cf20c71fe1c52ee72a79ecbdb996c2528b7c56cf10a416229bd080dddec962f06b537225bdc874166103d0b6c76d2a42ccdacf14dac8073da7133e24d55629a8433ec81a70defc4bd10746608e1dda995512d497178f6dcf674288d41f444eadbcbf1f8350169e986f73e7dd9a4b8ff8c9328edb015c603f1e3c0245ec86b91fe37f3d03f5d2648db4791702b8ecc8a67701f632b9d2ea157bf0dbf67940ff1c30da1f628ca9bc35127efc8a47f459f1fcdb287be31ca2618bae9372e387344c437d75d82a6406e23df58ec34afc61a425d5bcc8365f78e49a1708b44ff95ae78b5790d85ec606bf5d3360f674c53e05538eff7c75535ab1abe1d0ce73973954bddedf648371d2167a9fc67a98a24405e0f1909964c53d39cfa1ae49ae9c70cf14b3e8df65b2585673b7639527c2171a37f16dc8b2a6a85e0d7461488799e07c530a8d371402defc33c183f99fff07b64a56adf9ba71f3d3e7f0d1d6e5503e996ac1e5f6f6943915729f3dea6f188716a9cee465bfb5fe66832ee34395a119b62443385a661577225e5449cec9248aafabe25369713e13371b1125a578e378560444f8d6e4ef8bb55a75fce77e5401650690cf28ca266378462c9ffa60fa36677e314d0ed728e69fac4ef13df89f6a7ea0b22314e740d7d6baa9c96566f518ea3e9991810d6e95e7fb40d961dcf132e109b24dfd6948c8322886a39c4e53e1c1af58d3facd5261085523a2dae6a1ab18777b1b21c829779dcdebde84e219bdda6d731ff984cf297ab65b57446313e09eecdf6a8036dc20440b7080a9aa401bba973f65235b1db19d4e2e89ae37357a41376aa9969f6a6c99af56651d96c558e00f96273125b50dcceaa7f3f11b8a2d62945ed6dfc08f8fff202d18fa4ad2443f0d689b7e076d3d4f8c1db5e7f4d2645cc16c715433658256770cf525b77a915f7616ddf078179085b9e8b05b3414818b646a4672e6dc3aa938f0d8c4a1d27a3d2a63183464065242f18e6d15ef11999af69b423580ce536333210873aa129cdbb1a085c8408991a09a75d483332ee878fb6b5e752b586ef362828e701f5e4fc57fea2a4473bbfb018dda9013520688916edd83f93fc8be9aae8744696df42f7e83ed606608eb77e972b034637474f99afb546a2df5c75c52c1f6b5026906a9b82799040b235b5418796ebe019c282da23de7126f97c5dea70a09c1cc183f20493994614b286dba43160b3770ae6f3a1fb9a6d89112e76d1825c5acfba430bc2892c7a674869a6a9941714ab8d71d4a0aa1207a4bd7021d6b03a86c5d66a16fff26ee7966ba2eeefaf499c52651b37d7af5505952581c2873c88d9dc989198b39f023b6c9bfcad6d66f87ac854b58f4f511cb56e53ef10edd0d480f4b6bebc6734314af6ec9a9a7528e81977de3444b562eb8d3509f41aeb120798770d0fb8d940a619818fa323f8b7073a994d651bd28938ff48de786966485117341b1ec3fb7e74f9c940735c3dafbb548a45213ebd98226c9c5a5b08c5f446dbfb236634b1040bc0582961163e1abdab2680826f9834cc69ed8146c041182bbf7981b5809787d4c7dbb07e4bd5e1994e07418e5a42cbcbd0f9df8ea2cced7bd63e6aebfe1dfc10ab68a3bbece413d28c508084305b30fcbcb4f1a20e4859f002d4bb8ff4bd59f151c5d8c5bdef2108517a1ab46f62523fe8601eb422d6aedb6ef3088dd68ec28a8fe5a5aaf1d96dd1b6c92769706d4c5c7f54cc60a641f8f158d86446ba1820396ae33e963a6afa1f19fe3e178301b8f2df5c7003b37af32196e18d4145b409e9e1c88033c9bc37f20169d05a51a5fc5a93467263fa13e626866a2554ebc49827f8853b93dfedd2052eee97340d7a90b00eda62f57052371756906b5b9ffb7204fca119936c41c914f7ea0a0b60f0db1020f8e8c5747957d4efe1d3778062331d0962dd7e6edb15aecbdf7d117b45f40afff56989e340ff1e6935ea9083ec51e6716d65eb7464b7edf4cc1e899325b28f678a60694d253a32552811129d23e7e7baff296f06e673db1b2eab8d406686f44d4f8c5337cbd29526ac7c4edf98b989d6de2c8c1afa1fbc1f9500835a780483c92e0f84c3e6514a131127a310b622660939243efa8659c34f1534a67eeacb017cdbeee0e0b6fbe88fd90bd073650f61a382197585ab2fd324b9f2f91329b908e5ec1a0185d74740d01e2ae1ac9e909ac21236bf9ef5f6c7c6ef821868d06167b98dc845af83dc88f782f6f68699a321bfd11b89a92df16e1b3e46af2b125483fc380b7a0acc959d514d41108503c696992fa7c5cc6bcfb35dce08972d743011f2cd249f51b390b778014731a4ebca936071cd3cae72cf24aef1bab91cc3f264962018febee7cb4808d4d23e3f9a0ae57f37ce143279291762ab5010d7509267b2baf54a2d03158916be92a0b2d1ea8a76182246e5961fbf4126626485cf1b3e09d1d0bade521a31c09f7d745e7403616ce45d5f77afa8a8d70741ac3e7937186baf334f0f0e9de1a32d151ffc23baa4d1d9d27e29a66c801b711d78429ab2026c12d45e03cb94dbc123559811bfb4be182cddc2793fe4d736803620b8f05875b09967e6c6ca3f8dff73a871b41502fdcbbd23bd44f7fa4fb2ff826ed3c16cca0e51c83f96fbd4e21a925498360dbde559a642d270618dcdc34863133b7340ca14947d502a02f863fb0f208ee67e55ef5efe0eff0b7962c2bcd4cb51538fe4e3a6a86c228d417615d21e3b08a5863547501d128cf8a0f0e6f9106ce21cc831862172c84ca5ff412fa1ec540c7492e9502cc62e7232b55e4f5e02649e6ee3a4cd6ba8348d1e06075f98aa53cf055f83316fe9c0fce7dba7f467c2da61bf41fda57edec6a4367fe689e8125edac74558f7c2a166e9b2844e58c17f8bb4300696757bc0896b06986573d98746cb4581ee1f932ff3d91c957a5c3c64c3ec813293d87dd3476bef5a7a3fdc4880dd590f9da7841ba565c7b91059f8e64d96bcbe259f62965080975cfd6ddb0d1952e800eaf0bd468c03661e5302be3a738bfb6baa009958d98e450df5f85bbef331184e783807f36f42f4b78a6b080ab4ff4d2e5833d00b9c84aab6060494c31335135d6af488ba94ffd24874a37b3b4ba9e622dbeafacdff22a2926b5f17e3d668d3b1b5d1173b918ef3555b74fb7e5a8a0ce7d67acabe2454a179c18d5c79f5898d197529e971e5b242938271b756b7889fa696c2ab0fe7a1e01ee8753c22cf07ef50c2b69c8432b8d6aead2397a9ce8149736c1695565e66d78812dc7782922e498b13c08fefe7aa516dc2b26923be2f2896d35ce0bdd4c6fbbc60eeaa06799ea477ef52542e7112cfc7ecb02a428955e9f99d5dd5ecf056dbde3144f55ba60f273f0fefce7bfd45fd951212e8d5cb8ae14201d488243ed095e354dfd05b454edfb42349de893f745835d9535df39bbe345d4a488306e5a583f0fcd2275c3d6f417b8975b1473a8d06f3a9e99d95e7daf49e21c3b15063d2c8fd18f73273e6bb16860d4f890fabd88aebac666dd6abd38c4e1ad575cf26e776210552f6c6c00c09ebcccb36373b3102a6dd156e917d0ab4aa0ade65d7322cb546f32009286d14e51827e505f190b7546ec2f472497215ec6e27c9747b09d286032cd4e27def9bd8ce2b3d368293b4eff64ff97561aacfeae5d30bec030a2e167957b995f24c774b25d88db3ebc5360a438443769c54b990a0a33f03a30c70d3d678a1a0c346b94556233fd6327130339735096b4b293c8c71a3204d33d22910409ef9db8720e3f749b06d8cc50100fdde0c78566c352428c4e8475564b76c4cd9844cfe6ae9422b6db7ed0483246a9e4a83341119637156d1f4e569463f63c49f69993428bd53b07591bd2d9a2d2120350ea71571a1db58d9ee8d2c5475a09f316764cacc025d1a0555ea0bec3dcd4cb24e5f2469afa4a2b16c1a18eaf13a380664be5cd507b1070a019c3663e89fe8a4959dd9b79ad30e4497d80d58beb4f58e1468cc18ef3b8f2772a6badcfce02eaa01a57161d455302a5f2d6a1e750dabf1b62288c981958d1e90f78e052e8ece425fb7a6c93741540b0f1cfe876ef0514268c64d2a3f92200d0980504058bc6c88b84a94b90b08c89d11b3aad16d5460b00c07b399ff58efc91cc52f9b96e25aa41085bca916ad87a1e226f2b29010dbed56fff358db06083004bdf5459f6f130d43e4fd129f1484d11fe78d691d0f0d5fd43e4e4c1c04c5dbc475a877f3ec28ad377e8980420518053ef993eb899a16280bc735c5593c9204da178e3dc47add7dfb28e98345bb515dd6a872c4888b0af9189968e5a771e46ade4266868f21690a12892373aea4d690a9d6d6121c14260da4694a7e995a4863f5363cfcffd594cbdd774bbb37679e6313113e586e4b6c5a8b2f585f9e2a13ab44888f12f5c86bf45298a58de49c1a8cd6352975c65993ede02df0f6433c165f8d1fd168896b4ad32ae7b2d2341c39bf18cf65f807c64964ee44a79b8fc246ce1397f5a2d00f8b65c5834df79143e94a3d7c4a9a8816d1edda51ac0218a4e40d537ab977b8a418391cbeda3b9cffbbed7a6d526f352a9bc2fcbe60155bd34fff96db4d39f568fca7c0268bea107151ae4aa4c0d3bc14552adc1e32d51ed5a57cedd83dee862c1a7ebdee207da5c516c1765358e334e955a722383f52072c8475696cd949f139412513724e99e01c0a900fd945ff09e45c08da87fc090c840ecdf141d105ac8a6195bbcc8bb62e345237d94ba74f2858e186c935791a5ab0c4624d746efba0778bd41110a43566f1e136f6aba976f4bbfe8237e468d5295f25a7b970ba7d7c76238f794edca1d7822b259e062a93a5cb83a6a6b5eba0b4ff3c0a8fc56dd0e370b650922b19641e61bcda51213b5b5f0b58bd95a0581d3af054ee293a9031afa293c2b96d4bd442bdf03b95f06d04530042c67f2cd6ec82ea9c79926e115d38626a6fd56c45da64a3eef5d5dc6c6f35a90b3fa9d69917dc34c7e88d14a46f75da7dd966522f05e1cd618406a9eaa67be4741c444fd0741d970c6623e824064a6c43b82e3745d88f9702ee4f17cb65d5bfd28a821c120178495f323b555fb777ca820d19d15c6ee5950eb20da3588411f106184348306814247653eb7ad3e4b81d6c60f6f4fe3adb260ab1276a22012bed90e03aa6c0fea9db5871c835aa8c625d2202d24fd897bd5c9d5bfbeea5eecc104d1ceccf12069a2b30d54c4c6301bb2bec39388fc0f47d323f9e4571bfb2f85b6a2911ad9cd91d22d82f6cbbe5c6b9c2ba519339924d500cb8330d8830b1071dbd0cb3b5668757814bd66d4c21b9753e125d39dd81aa48b850e7340cba3d0a9ec4e97fd993518122643ca9abb0c163da02f8b3ab63ba838aa8eaff99b0df6bc0740409396845e4f8806b0ac4ef6aff78ba669cbc35f619f92c9e1c0e504af3aa203356e96a9d548cdd4dd222a6b0fe52ea196b5173c9d23b624035f25da2edbadb341bb8da55603e5747ba35186de21829f84251cacb3869c03cb7be30b9a1cd1226f43339772367555ea3260d79b791347c4c206b9707af2a1005211b73b74aba21e0becd5d7eebb05e5dff7385232b635d7dc4513fdeb7f4599414833ba993b2c742ebc9f6444dc17d0cb0cffd059293e2796f605b0e1dbc6309f09bc6815b2cba322ff990944b4ceec42c6df18a3bdf6bd4a0704035013a76b52ba7896411e20a8308c80b79f459c671d55428e5ac619f93685b822831c7ecd90471571bc5b7b2162adba15539c4a4b38f910f138748124eb2dabfd1ed1418329777237bbc9b76225171727b51d2b2a5a96bd4a4fd759098288e25228df5ad2d9ce0a7ed3eb73fd8ad52c5455ca305557cebc1c0a354244343527d5ad0d1ad4abf65d00c49d2f4441710ca0f640a3c6d6d1b3fde5a92646e6a954ff9412385dd50ebc75872b0c8e30a9ffbefa0879a57cacd3b34a0d77478cc320ea29c83b4563f1361a884c4f9fb3f6d122be39dfab009f5b5f383715dc79fd68df3e08293b7c077674ba805c3a14c532d5930e32fdc00487e4ebbffaf3a74fffab225799eca4f85af18275eb4a9f6cd588115010335c926e82bb1415c1e53153b7587a2ec0015017468a8fea38ec4d6e7c83e33354d81ecc12709a69a0ef35e855682e68dbc429efba4593307eff61cfb9bd1abc2bdcf1923c639e3870aa9539f4c842eb72f3c60729d981bda9fd4aea05046860367e918461ed893fa65c48ecf9bf4d959a3ac6381d91fe6bc46f21a2ad5f1368bbc62ea742c0f444b7fc8043245ded344e42dfb26e2229dc6591401d5ad0a2fcc2aa278bd7695b6b00ed465163ec7b37079251ff19cc616e9a913cc613ce727d078c05d46f7891607f06159239757c8033803c8bfb721a939f661b98d1a0c7148201df7ed5e166aba14822ffa2f408ca30c9c38253db35033481a03dbc00e9beb47044446c8bb449855a4a18dc247ef553a89fdbe7e150f5ae68b83d4118bb380fbcd54a864df3a18bc0468708c647d1b3bae2775f387d8fd9af7053a9e57dfcde56577d55b992a13ce073b0266930145e81a48b1b81c9a3004a1ede0de1313b96b381fa724a9e3beb1dfde385c319c0dfafb54d1b1d84d0a7cf9d57e50dd60124470491e786f557fc3e6e9179b7e90f5f5e3b1ed6b46c2800d46e35e04b6c39708eff0991ad4674fd1f32c5c004816064c0e2d050f624734ab50075a0da8169808e2f080cf4d4a642f19da5621a12b0cfc85721be27c93844b9d211679a19cb042963ec2f6331200256ca31d70d861152fb50c4443b193ccd6adb9d0ee2c5decf7a4bd7939f5ac479d51f509afdcff3862beffd9061ac12d21acb5b59624e62643ce07635f5965e1008d4952819f5236d622cc5d0f0ab70a5114aa63548e8e09f6586fe921c2384f0fd3d6f25226695ad47ac6227e27b90b02b08cff2b6dba6428476b6b03bda782852ccf21ae3ce3bccbab56957cdc82b41ea02f80f57c54c75f62d26abe0a69e3b2edebb685507b0ae2cae1fe8b2b9cb863ffffdc12c3724fa985cf595f6c74ee3caa728eae6325763021f7a6dacd55e5f51847653be0810de34b58623645c2d33481acb90442d9f9e541d9f87c7119aeec7441c60f2d87dfbfdc13147cfb8000f460a457744709e684e84e7fa7c7596ab7f02878bc00c4d65d7378855c3b0475f9b59a8d6801cb35d62de0f80e7899809de4f10d2c67c0ea2e364009666ce0c67a8d984e37cc05c895c0c66589c195cefbd88fb77e119f4a16a40b8427b1f0675e5009ebcefcef84093406bdf460b3d3e087bd84b8c1c6a0116b81161a899ad19acf966bdf169407b1f92284e294af364c95ddf6cf398562fb5afd9209b59a47acc2f722ab712d8b93557f767e1afe562ff8595f84175aa60d31ef5e77f85af7914a96b346c5253e58e0f9f76dac511091f106d480cbcc3e1b8c1661a7ab84b0c75fd4aabb9890a94017672c5f2916f62c55a63e87c1e116edb09ba280c007bab191a2290be500a1aeb76eede55794cda6a43419473248d89cceda7f17f50dd719ae44730c221a1ab9d3772fbec7631f15e769efc7e8868b5ba964811c234d6f917d44e2c250282a9e60c3391d9e4317c769b831f0c339df8adac86a57a5b656c1c65d16fac3d3792ccd123216327b7e77e30c3d4ab10d3c89e4b130d0da1b326b892ecf9525a8e79286e81f3abfdf2161c06c94e9a0cdc484369242ba04fd6a8e32b417ed5747576c7f907d53dd9f94dd06fafb995c041e18e8642a9e4088b221965968ac4f135c4044524f79582c235b7e0b1e3004af382d66087855c84db686ca02eecaf01d820806400f7780d629aebb3960d86357d2fb36aeeb28402bd1a2d71114bf71c255748cb42ce1c110bd4911cd4ef634a322926fbc3c3d59835a3e4f9cd85decdb2e3d5a9d5a9ce6969b06cf735884da77e9a2ff1e0759b5661ae2ac267494fe86c29a815a895852ddb4883d46aad09328a5ea005b170554cab06e6d861fbe2af4333d90c071309e502626b57f2be196f993969d4d9536aa4d9551150b8f5b0cea2f1e1dc01f4c4980c47ac14c4583e80037ab7e7f098099dc670cfb442c1c22d05b45b36625937193036a44db010de9d1f2015d640f090cd7fa7ef937d6ba2418406144b5017670996ce584c14d0f1afc5f9aada2de107e603e2170e8140b096dd55492dd97f64f73a03ac75417c7f60551d5dbae0d910d045a6d7c741b7257da42fdb528e7e527aa4e925555375579084b49791bbdaa4d8b70f83d05370cb2f25078a52a40d5062d0ee14a1f62611e0c936b474fd5bbc9cb768028cb26f522faa907435562ad60b26a4c05f31a80220f2d2a87ffde46f218cd0731f361ce57efbfe79743523325a7105b008c56e8fee14204c5e771cc153192fa8d866f5eec4a1930f02953cefefbd2ea395d593477cee9b5553b5f7b99e0896cd0a78fdd90d1a21a56a4a9542cc05f79cf6d82771d7dbef1237a88a8a4268cff75bd7425dcc028cf8e5a563ca62cc46d398dd44a878718b51d61bf26fcefcd92bee6328fa7accf1af1dd9ac26c8286d20916a637466658e178ea60fe706ed9a41a9e7257c5b49db6d8d3a3fbb4e9fc3706c3a98ad75f73e1b1f527939d5e2915fe5155152e617c604321251fd8d02d95e1ab26c25046b40b3f647d7baf040ee5744ca41df541a912cc660b6cda5a62f178242cf2f38fc1a7ddde8ec2f618ca91f26735ee5f1cd543a15f29809c0c966ae6b9e2f11592f7ca170933f63ba1d3063a0c8dd3f5b22cb3872d4a2b0b31b664b3fb628e3e6164ded75d9242a3992ca20b96a851389baeaaa611ffb6e2d916b86d644ff9333582b7fcd8ce3de4674109550f030faa5e3ac3b37bf0bff757d2da4ae8664ee211f735d22c5a7d8a10a6f207488f755bb8e13cfb63ca0c9daf81b327da9ecec542b71305563f83bee01e4369b1c81b1e4bdbaa8bc57b440031d6bb921ee27cd236fb3b235ea9944d06c6787497f6a2b34a5bf7140aa5e1c9238afb118e789a704f54047c273e58f00686f327ffc70eb9d77723c89f35221d41c7e5f55f9b6b0c0ce13011dfb19e1a21225eec694c230c4bb3cdbbb49f098ea04147b301fec30cd37c71764ef226ddae08cb462b40ff68d03e25b3416c816153297e1848d0ac9bf6bdc1bd0e0aa539bf9662ed16b5e3471fea74003c2e08363695cccc32ecfda462de18e384a891d961fa73f8155d9b590afe890a1e0fcfcd4e363908678abf0b077171e5f53b2fcf6c3afa2511ddbcdedc482ab8675d32098d0590d4c05086ecabab6ad590ef2add5db76eec8b4ce212454c6ef20fae18c6f369d8eac11320b4791f632d72c6bb52e6acfd6cbeea970be28aaac2178b85bdb61a9fcbff240b12085f98ad4ee32db0aab3ab7e12af616bd5662b1446d276309a19caec545f570a31f65bffca83701b80ada9d77d603e1dfd577610560de9a184279d1a3a38d0f08531bcb9149d734d75b4a5327a5318b48f54e64585d1a857284fa89d07bec3d187b86fadd40eded32042c1edcb8e96318c805366fa95632dc1960a525bd6cf6834e5cc7eee92ea9e6743052ba89a4dd4a068f8830f09724152fea19569c9fbb1dd4c5b6abdbe1c11dee3ca2782ab2ca66979378564aba1d8d5f61c99b6704a68b977f0a066a7af41ebb7333910f57273f649ea45a3421fb798e1ebaec34a30cbdd9f0305a6446ea0dc75f7fc499852bb08fa62abc5465a76e9db0954a88c3ada3234263c8a7cbdb9eec00d25307c7f0d772b0da36094019de2a649180c8dbb923602a7ef723dfd43404053e3a6b88f787c641ab3a97a71a27df3b8e8425827a20ca13eae9365e4b4e01503a0b2fe480c2e26d72df01d80e76d2b9bfe18cd50f6d8d8c1916cbddea5b3d62e1698463c74e73bbf4f8b01dc167b6a559c381f6640c6cf2f83305175c23f75b1f054763c2aa016285e4722bc180fe03a5492d3bf254ab4fb53d21c5c76facb19cb784bfc7a355828027e32f957d26204a586a2f3bea3cce0d325d9cc896665b9e39ee18537ed10abcd09de43af8e55224cd8e918edabb4e1ffa8e1589d320d0450a1ba48c26bb56f597a1a2c418552c73fd68dee2d732b6b7472eff78a7eb16f6e29dc67a4ad76087771c8d6c248760cfc13aeccfb5aa6f77cb21a4d6d5167f270e63a033ef9e93204b90c9b6654afe77420eb50282db4005620631026c725c2e7b1fac9026e8d38254d922a504e824b890b9958ae875acf678eaee6c9fd6b8ac134e83de348ce5d8f814bb1be68ed3f18c89765fe4a9be66e54be22b80904b916931ffe4e1c7b64f73df2e8db5238e4cae7b4b3cb7e440390567d1916cf2d0c8bcd0f454284026df3133382f9c84c65f9b4b982dd62dd9b65d3124ce8e9a8502633a406415b1b0d26e9c7666d7e785e36d53956972c3722872ab94cc77c2d929fb2804617919a87a2ad877186f3bbedcbafa1e4ad48d35330d002a73f21a5f52b091f26233da27dae7ce5cf20de111b1a0d768aca2c10330f2097ca9f39db9bcf2186cd8e5530005cd5e06e8306b1201c2cd34a0c2cb9eaf9753d5915452c6ff0e96c246b724340cf79c1ffa7306714996b3b0d9fb37ecc96029b6956b616fe4c7564351702b90a25339e7f723c22fdc6f9da3b7475e1cb3b7f61ebfc967482aa46d6ba7755861937234f509e3983d677871f1accb33d4923e6eb7ac80c48fcdf312b0ab2730ddf9baac29b2dd2d4430cfe8195dab73ae72ae5299b56c4e5feccf60d746126c7145b504ce68f8931b8c3da25a03d31ac7b23e5b6c4505594bdf0421adc5b9eab2b287da47b6aa046027bfc20370348ae80d01ab3408321e567686f2b2ab05224564af0eab02dd04c00fa7d99c3a8f0c89cb61c1b23607bc170d64f6411d6513c55d2705e48567372d312b6674589dc81c3688e6150041db31344a541b0618f554bd55913b7533ca0388ef5c5964f76ce9c5f6977d9693499a5e51a3b5b04e90936854dc0f14e7f377faba22174f394521d1df7433a37d0e962c784c48ec4e6ce44a149145ed3b11afc301adb930985576998de31820be96ecea9bb13f239641de8a3285473b0da0d29158415535d9e214dbcf63081b2e3414db6f947197955f84284aa6bf3569cfe9a999c3e4141617d5393c1b055def2f82042b90751924ebd1288de330a4b4b679e834e2277f30acb3373459cc9b83a0b9903c3b4ed9c389949d0dce92b8c707e7e16f59fde659a76e439b5a7112d9218f9dc78eb9c61b115195114bb1350488b5e43ac912760fef15840c977b3cb531198d21c5c8fe1f8534d8189f442d91a0171483e872d9c29076c74d050ca53a5955639e806f97b9852aff65d190fec3a8cfb19d01b9ebdd5abfd60bfd235da65ca1e1b99c53be7bb7788606a2e8f2dd7cd28c765283422aaed61a109ae3e19e0f9867921aef32e06c2880c0f0bda11b314e091db57757c6c8891d026ec4d58d4ce972d97b33fd1ab172976e6f2c14f552e376e3f9b90b07420d457a1343f1d66f6e629a403a4430db93e572eabb09254f86aa8bd7ce85d922689abad8357d669993b9f3a97310e872693abcc3e7e21d0e41d961a52a5830bba6694465de514dcf4fd3ff7ac209c55207fd1ef5c149dee169a3445f2211d5c28ba18ac43d9f3c9ed498b2190fcba2f6c020ad2c6290a3db30aec2c9016eb51b584764f2122f5e3249a4417aac5013267716ec10428b89de726aaac5aa3068d7015f615fef4151f3fd6ba38a941105a8a7688d2239b91edc1b0cb239c749226dfe6821a5f863e10b40d642d1eb5608e026536a818bb4007a283861791f3ba690f97fcfb26382e53842909868b17d60b84b01593d4e954921a79d803d75990b20ca5b09dd1b26825e5839caa01ce4c1491116cef50733fed67cef99e5cf25e43deb8a74ecc6aa06a4046550676d70761dc7ec1997866267ce17a7a74637740f6799d00bf69fed5bf0691702f5c1991b89d64df39d8c4e0c3b1267eba4444608a2479129f32e4f24866c4d982d8a8bc37165c980b13acd5575b35831798f1bcd20b4061a572fe82445c55a748955684375cedbf4d5353281c04760eee3e276ebe5c7f3814f3e99d8f50a74e5296f6048f312304b7098e03588c1bc1ecd116d6ff4ef16b0b29d9b70a1d6fc78b328c4ebced1c081b62edbe8b361ac26b0ceec3f99d42aca77d28ccb396e9a72410f8bb67c4e555e3eba542fb6531301f3ed6762e58448cced88afe279abb7d60424c479d93520c205aa1cf55406c160665a9ef89b9c56c2d9d5cbef3cf22960ad05c0e37aea8d876a3fa5f2042b8c30343bcab3d22893e41628ef0e02b513ea4993ba510da6e8ed71ea64af6905e14a0b9795e0ba82445d1da42e7d618d84cbcd26ff5b5b7e9fcf8527c786c6c9263893c418a18e45fa1d5f87fcde6e1255bc66380ecfada25f0883412453726a313b73a86f72f87a38924bb5b3a35787fa6bc6ac3c5d5f3a773a53361b6c7ea3540297f16d75eb699bdfd78f60abeb8cfddb72abdac98b761ca66419fc5a5317dacb1d55ec03e3d6131f53fd795e5d1372910941dd06916d18b4806c89e549fe3a196262e4c7acc413497b322652394058924807271109b6cedbde36e1103d084b2f4b131d0908633aff4d5af75dfda12d30bfe7f9126771927226393af0f4eb292f4758bc1c148238c95a1453da266dd8330fd47abac03a9087db65777b8e4375a80ce4b9361828d492ab2a421f5cc0899db9b8cee0cb0e60df145c34a42452ff2f73a5bb6f18ecef441863b541f68e2f90d72e7e5968119a25dbf0d53f03b199b8565d538bbb18739c1d4676aeda390096d094a59732727b05c350e98e511ebbec4831be9746c0cadf0920fd83540be77bb1ea950804e9940db30bb82cb48e786723bde0071c2a527936f9586b4338e726f748b63d7fa8ed01b3d2636eafbca9aaf141762be62c779aab145df7c4a2082e77beeb386406b1ce0bd93be4949db73680db4d8f2519905141256be378f62dafb37f3c6dac6875cee7e1cd50fae995a5b2b35381636cdb6335aa3916334a9ed6bde1111be0529239e6cccdf3fafaecde372fcabee79d960d67c9fcc32cc320aedeb576d05b72ded519dd96aac887f8ba92d90518e62508bbeffa6b3137f2456961f8a63e4eeaeb207578c6e3cc677e42cba8f522edbf87e929679a164208bbd2d908ecc8f9340cff3cfc182fb98601e62782a78e4a0f93a2e5547e6fe9f4dec3c173879c0469f42bbfdf8a2629e7a6dbfd2f2f218d6310d5ca0403c33b702f8d3472978e63aab1c392aa2fa859bab04d211aac782cb1844ba60b6c14c2b77c80d22c0ae9bbddae09a5cbe1e608347458f132bf0b72440f86b919ca6cf6cd846048e333c9613e3a8d4ab8f9b3bdda8e026a8ace9a9b245b837ad2f7a58e79b7da966644f5a7755c0089ba2ba449a5ff0e89bbfe51c9fde17a876d772c726fb4e46a8c405af78daaecaa1d9ef1c306d4febca4f028b5ba8bacc80dd7c08a62728ceab366405bb8c8478f1f40f638fa73d7921a51b7c76207efdc7e29598518ba687c931ca4f98cc6c8a60ee2b39cf8d5dd421ea35a5997ac6418794d31d374b8f84c22fffef7beb23a4fe220759f1c2f54e4b96b2dca78565264babfec02faa4589480261f5b0bef9e4211f34aae7b5c77e0216340a8ba23fbb915f6c169445a3a5a2fa0ca956aa34eb31d02b4d8d6a9a89268d8d4102bbac35cd17d998b3c8ed85e3f547b9e78492c6eda1f261e170b2fe3d36d0ca452783dffbd0111233f0653c28bbf615e2ff210743a8eee0e7ec81650fb393596d39b471a98f9cb5ecde6526b02735fb1655a692423adc76f0be00d4da6b8f0b1f24f3e40fb7a7e65f68016365a16a846007af4050ec7d2945a8566f970282fb01d646d7f926c087918e219d6b40f31ac2d919b8d75743be74f2720cf8d3001ba744a5e7c8d8999ef3f372b6dfad003b01e9d200421bf51d3ca7bcf8d49907a3ce5e93bf954d547bd9ba00071714b0166e1963cb7fdb87bdaf1c0dd6e434ec5809698d77d4dec8e52c923d7ec572226b455376d53570ea7c5fd6163f94c2e1264febddf011bb6ef6ad88e8fd514eeb3ed9c024a58dac9e0f87638268988c2af80ca4b5b0bc5a2ffc2a362e60d6a0f0243581c45da7367a524b5caaa458fc5dad972a1e8faa652bb25522af39c04eed0fa7e6b9c116708457f9cb0a820fadb824f5aef3c1a0d9506965af88a7691e54429a14c5d6a1b6722c3e4b583941a39d7660fd43bc39a95cc9a8406b1e82c76e71d3368e0282ab413934f4c1b09db1b369f598790dbc6b37793a062065272d23fffcbf89f020648b1de848a9c5121afacf983f867033ccc954d6f8e15f4b926f1a75e8fdbff2f5ef7380665893bd390b0c66b6c8361074701bfe2a7d58722232765ab6985fe3f513e07b4dd3a0d819b4920a29a06a04d4b991d36f68dbf59c68d339f5582a436d291422bb371359584b192f26f2655fd43636c048e341c8b11791fd827fabfda7b37692ed8e9dfb108fd065af4d44144f8333de14494dfac931b40fa7607ff129d67018441e00f3914b2d624f59fb1ce0e8ad792c38880178a6f50db7002a44adcd784ea7f5d05b7fd9b427d537ed36532975cfe3ae041e09cab0f2c54c0bd23ef4e48ccccddb7df8b0bc556ee8598fff8aa0fccd049de5c6ebdacbfada364d3565dd0db0b616df2a428619c2ce5eaba3fe4ae7be688b5da4428d401c4d1b3aad277602afe5345b4e1b2f8ebb3ee4fd98957601fac06f7c0aa015341bac071442565857c7d325ac0116274022cefb7a2db25e052fce8f5f5aeea015391a6ef0f0f10df7beac41cb0759fe380fb55fa17e4405af6dbf106a188866854d7cabd99028be5713dc1c88c122dce4a5906faf7f4b987d6b773f74b80c80d05e10c11553bfc777242805aee50d33ceeed58dff432d77bbcb8a0c51249e715cbc1eaff5d9eda0e0e43939ee7a94df3049706fef5f79d93cdd8df6a2e55c552dff76ffc45819c66aab6a04c45a6211da1415e5212150f1668436d7b04c9570de12f9032097f955580893e8dccb58cbcf821c9321307db3d3fe89dafd00d992d874e38064e2ad3eeaf371592f71a275cbd16553fd787cbceb65e47c5bf98dec95b17ddc2fbab77af84d4eba400aa56dbe4532dd4b8a918b247d12aa324d7ffe23a80bf18bbb8306ae1e6a60e05896abb5b4e1bb118f84596a774dd009a669c4081212762e0a6716ddd1edf1a997ffebc80e33ce0fceb73e0b8f5657271e22e63f4cdb4f9b0623dab5da23d346524d53187304ddb17fcadb0f160c50ebcaf7df4ee916aaa5dfd445179acdc9b3c72245ca119d48776de022c7dc579511511b242fef78b33f20e45e3c649c0ef51624f10dd974bf53296f1270ce9c0a9246d787f7b50262d46b7ab4e8b982d9bfedb97767614c22a72a8524ba81da559dec66173932ac463a0684716e7c4e5603ba10dacf58e578370e0413b7e6e17f4730019378441d0a37ad3d6349d8d70bb63e7e2962d0daf87b1d26880180e38c2427f8f449cae0031a35cedea829f10fb4097afbdd69c47a212c312c4293eed2b4deef355a9851a4371542288a117cfcce490c8cfa103561f133916b2a05c9962c3e321d39c2aba9888b210bbf3dc40a5ca325b00b891f9e515f45354ebf0d84b77c5a2bf7221b17c67120a3719147038670381890351fb076125cfb5145af66dfccadd8b3798cf5e20581c1c553b7ea28bbe32495cf9348279408d2a54f08471079d33b99747d54b39ce8455bffc5e52ce4fc53695e0214322df6451339002fa7e8384f45311073100704bcb642e19adaabc5096d09a131210901787b9ca976174bb918960d6fa265bddc1e5e0d3be22c1b2cff826e4d749c92f57fad0786a940cd1e299fd850d76eced820573f282885a6988083e248caacff9a6c69a57469f2fa0c23e52861ec5e3e99be0390a82c0ecef0cb5f5ef1790cf9c983412250b59409d9b99373a6867089ce9c4d8757c80b652df6e16a9f9ec1260af50cffaf65a221c3b06e8562ade048dabbc7ebaaa2afd573a69a2b47432587e09e528079ead77c78b55281e5295c16a7b100f2bac000f4932aab009e20b7b8b2a482ce9f57bdf7228c9b7d40a51c0ea8c25327ca5e959f69b4d049f53117662731d55977f5c96f4a94bda42de9d8a98a1c7376ee4f5e5ec2d053b8d0270641c90a357800836176c7a5a745cef9715ef8f482ca1a8ef9d066e9c7d915bd457f4bf04f69fce2985cf7e9813b019f948779d008e0948326829014b67f225540bc3e3385541bf51cc278f73d09ffb033b8bf364705cb5d4cd149037983170beb77560b46a06b0a2d19b2474e10d47b30344c5b29fe03306191ae34e42b4dc7e245d092d353626c30f06ee8e3238871c12c581d53c39735d964342058ab5564ea823a612313e7faf48e172255675645e31b92fb6b8730996e1cbfacc82de755860da1b4abe07bafa9b95518670e0bb373d28a7e620fdd320e4a9ab7035d462a2b817eb76b95c92a3481db57fec5ecdec8fd7e9ff3584443687ba6462c346333d8bf26ea1d7bdd1c53f355e2e25fc2dc52ec87ea744359c2c3bd8af1c4224d3bb44c071933da206f234755fd5b186e2ed11d1eed56fe9d3965e47508125131a4cac8f5603b1bbdff89124b662d0bac0c450a43e39e8ce5b88fa91880d11efac0affaa099b6063282268078bc7a06f04142fb613dae1a94978ecfca3e3cf7705c8c66d74efa93eee379d3a8105acc5d5f4a0bbf6d6dea0a6339ea48d9b9ce8a57f07880f3a5e4c4077571e7a4fc709033f40c0fd93a356f9af44f4644eee1434560d282f03f4d0deb972b7fc1923430f04daa870937f90e95935de2393a4f3da6e6dbca7181a52cbb1bc36680e1d8cbbb0f9fdd5d4e2fa87abb418e44d037c04818becb566cd85a74c09e0ffa8cc2caf62098576770849856bef4863a65948de39e95ea497672ef2d6a5e03ef20fa991847b50975c4144f59f8f172ecc109e385503ab65c2de9c686554c3e1c80f70774e08ab785794d8bd1b880734df1a586f9d58057222b7878e4d959b7b189280a682c05fa86b26a84c72b5bbd797b01d7490622a46ff1a900fbbe93885c80b13d7f513c09ed53f0c0c16170bb734178e7740353844506346695d3956a9af50d6cd838a02db82fe56ef5a38de6bb17dd5e5fc78ee05e0cc60b6569e5e373de77cb7906b011c13c1f94e85badc56b7cb5aa48aa69460c9b82629f02eefb8b7f4a77cc1ddc8e15f77d800d0d73aea4d3d3a3b892c22f6a198a9ff4035d88eebeea684c1e7ecf216694141d871db10bc9ed0f0bd556b050ff3f446881da23cc616af8bf31d00a8189a9cf1689f894561522f800dce46d3ff0a84ec571137e07f8c127f6d7eba0ccaca76f696a967454dd09be204f9c027a629d76c53790a436e827697a70217bf8fd169beebaed9694bf5f0cb9de117230645288618a8001e428ec9de1ebe0b4e44fd779ad9ab901980a86f54a747cca6fd0fed02b2fdd0629788f02ae74d6149340d56b10406d34e8e1afd6300d6bce18fe7fd35568e58d11f02e2488447f6b17eb47ab051d9679c74ad6e87129478a8d86027a8c3b7f0050fe566094b51d3958be4b116a0cce42ab80dd2ef96807f3fe6c2b85c7b49f3f81c63ee881511e02f3c1cdc13410d0a2f7bce3a7bb786fb83ac3692a827ba3d50491ac95493cadd5aa13152fc65cb180708067c18d46fe33e3fc261bc1c2a3cbe02a4047171e591714fad7da3029173be862b0a3cc2519b35144d8b93ce96c281ad94f56b5f6e6d9c8334d7ac5a9359c3ab926e736cfcb3061332104a699efa5a725128d2d4b1d03bc74f7c2da2e14d9356df8772d6aba42fcaa27a64925348eab12d7092a31853d475bee52c99ea6ccd7f03c6b2f9aad4b6dd3db6a7da9b2e2c0dc47f0fdad967b8b506e9e037f84bb00b9042386ca877931751d80f243e1dd1c7a1130da8942c98385f8950ceea32a350afd6fba95c40d7d315695f141cc295c91439be11fcfb7df6dab2008ec446924e2cea4a1cb43eb35235f7e542e3c992c1376a7e0003d9231f3fab08f7cb949db7ccbe806547b4cecf96a4a64becba036449728666398daa65a0a251439b4844db3b9868bca31ab9ae218e263974ff0fcfe5d8b464f9b6dffef29b764f33811b72df06bce6074ff845ffec13db193cbd2bfe4a6228f4a3c6c9909316599779167404b4b9cda74854efb0b244673cadcffb298c3f115cafc54ae5925edd10202b95c920fed6ace16c908a4ff18bd6402e687fa187448fb196538ebb930a6916223959f00556cafbbefd801e05004c21e55765f3f1016461af764de9e5ffac445aeb61dcb02d85e0c86eca772baa92fc2ea3d595551fbdd29e3d7d8b506e3da3e6fdbc118d41d36f148419d7c81c5fdf87333acca33f73930ad10d8fbecba6fbf091c0177e5dee2be716bab63138733ca3a1231068c90a195958b5a877cc702c1c7b4370e677d18c346c987ac476d628d8b0d3f5582f17ecaaf770f025238657ac9933217941e0f32960c4eac47862d135482e8a4ee4286c6e79031cda41eaca63946cff54183b11eb02b1c2b06a5b1a9c759ceb6d0d655d3a38f0da22e7c91bd6db10e52c49952c2cedc6a61552da871e9f758f1afa5c15108ce01396aa83e964fdb108e915b3e5a49ff03124709a26caf001b7a26c721d59fc1841eee6c7cc8cddd591614bc609cdad86f3c886e57e1146bd7763312dc5d5d001b0c98f925b9f74c37a341ef6bbaa78412edecfc750e5ed6d69bea916461d57a735e882cf49990427e02b25e60058849e1ebda796aff870b39bb1478daa2591cccd1d3ebf8b8a4fce20db50cc52a0f5c5e6a2c1042ef45c6ccbe06951fc6711a98750878e4434349ce5de30c03cff58aba50b2bc1f388a891261c0ed895a3d7cf9286ad33fe08d0a8674faa641ffe55e08ea1727cc16375795657a448f5b8df83c8c977c287e15f89b1546ab0a506aa341bb3ce192a0486c05c3fa2d74a4ac5f978080c1e2a0c9cec7c58c35e312ae63f028b86bbb0932c7181510238ecbc529dc272b2c6c8b41cb71ce64be7d012485c33faf79ad284e75e44ab909cfa9646ce39fd060b776ca600c6ca91f3b1d93f16606e568603aebfafc7221e3315791b253da04700b44393fbb2bbd6c130c5f4150dd7858a2c3ddec093d76ea98fa6f977e7555ce9dd946934053acb103586b52f15f9c0777bb399d6aa8eab1d9bf46452e157b5edf7076f3f11bf567c7c08e7195ab9c8257dc1379f2a96bf8487de9c685e27f2f5ce34b0bbb70baf96cbddeadd60d13ab943b4ba9055b6ca58abc793c74679f8b303510e388833e6dc027490102c3a3bd2bfdfa999815d2ab5268f0b870e52188ccf2e8a20d30b38a8c190704ad2b9ea5553e4f530115b7945fc53a013259f4a1fb1432f552e1d2fe0cbdeb22d6ec4ed4dcfa373a264f0c1f44e31675b7603048bd20f29c4062f6281944f7db05e15e5c2c1d4ad7fe7cab63ca695f5b9c3bebbbabbc837d8811634ec3e727ddf48476b9a0a9bfddb0daa3b79dbb7c7055d11100a94103a54fcae563624cf28c33837f5f023a6cae464dfb1d1b046dddd8e26ee5b15fe0ad6aadea0375e315b9f38a752da26aba413a8067a917a1c7bf598cf038c08b00078f550c798b63bf19ab92548c282b360ae7ce5e00ea444953e96627b8da3b4d1f94be5e92690834952688737f5a781f0bba6a20e2895cd55373a97e9172dea1e9ae2853b8961b2ba3323aaee20e66d2baa40f66bc7544436982e68df9541eda7cc4093b2ff34e981398360e615104f057ebb7a90e59a58d8f420467c4ec99e925f83c7ea8770b9b14231f831528844816fe23a52cb51d8bd50fe1ceb40b86c02c50c9cbc093cc21854a402e6d905e36cc69b488ae18013b0f9fbb8a5b863c1bb1266e8e05944af11ac9483a1b9e15a0b5ecb4d52801980e9228672c64ea55a245212996256d374b5528f589c23e941d82a7d9bea8c4df779a0c289be61c32a0bfffa14bf5d753f3c7817337430398a1124ef44ed52bcdb57624750bafe3de4bc3521515ffce016d30c7965be6b65e4bf6b957d5c5327156281c23b955c4392b8a085a9492eb04e9268a666f62ff484e9bb64f219690cf36a8921493dc86c68e098d0d5bdb77f236e5de3579248c3266bcff00f6a0c9e6fed8febd33c5517435369bbc0eb8f891e06da40259e1480f595ce9f32b215e587abb85bfd5002d9dc460e5f290f92b6a06ae4966f8b4561d91811cfed2abd1ccdac9ea0b133ca76cd4c9e48d6f7b857dd13d9e1acb855598192137a1a9440ddd86d23a08afba23708d56a107110bc317008e0705b7fe8881a19fa3ab4b15c0e0814465a8348749bedeef70b7ae582eac3b9cd4ef1441918031195e4f9cffc444dcd11eb4077d443bdbfea5808c774c3f5d3d14d6ff90e54f46e700e4874306b81bd2d94357eb5a66ebb1b025a87eefa66f08d6f0e2c632f0210df72e005c28d98a403103b1b67e2194adebb3cd19c6820722dbc0e95b33aa3814d32db454ff212752fa6a357523e1f4ca517835fde2c43b7bf1c2a3eae5c15835446fd6a4d8a20a2c56dcd16af854a505cb661d720512155649a67234f6a7a2d85c987231443f1337790744e9f389f910849bfdf6b4ec6a2f0ef502218c682afac101abbe4230bd5f3b79e4429b8a41cd1ca5dccd5b0faecd8b965f382b710cad0edc5803292ddd8a3ea5bc18e68907918eca64a22cb02b712f2395c7bb2afac7f20fbd11f62f8b9ac4b50191be43facf922f337a2f7682ff08cf3d8d72bcd79a4a0f31a1a6c72f1b28539eed10469955dbb1d38cee81c8c90200b758cea79d78e88a38e8021ba29f8f9747f3177f2cd1a9c35367616022fa00e46dd2bbf79b323caa83422b230c2b5131b2bf5f8bc4d6e6997ac5286493625379649b539d6ba774223a1f09bcbb744b9db14b6ecc15d883683a526249e6c0ce397a9e294f7c60ecaf34b43049a222ddb3e59392607c3c19162947830f79e881e96c1c7066ac1ad63b68ebefc00735c205005a19e37c12ef30ad7bf4f73e3f50d68b409185e6dc43a7547214baf87df2866e7c5002dedc7b4489ff0ffd5b943513f70e8c04cbf6cd3cb7b8154c007d9c0d575fbf4b30bbe6026fbd2515548887d3822d3e7c92662b3bc31294a5847b44bc21f9acd989eed39f544dfbf62464dd81b0d451db1ff29688d5c1e5ab154f1cdfa144eb51eefb8393de53a65b28c33d7ce7c08a59dd87b4ab7fbfc85b6ed63129c81ab056bb8e32d3313fa98b2e9e6ce3eb4693bd5eca9660dd724e3d5b81af3b2613eea90905cf015b731043176b0d904e005c7a7fa7fcf62aa3b8bb69bf6ecfe8d912d0a3d035d192454c1bed0e8ce9aca404ae2b5126c39b86090969a9adc17f4fdf0b1ff997e1b446b2b337c8d704bf11983f3566880fb968479b5dea61d6e595f70eae1d60a07d2fd6d09fd02ab43bd44b4d83cd8f5998ca8f23daca9992cea5f5d37888b7184350fecffa9fa16b31305e3f44ff00172afb591287c817d59283d356cfafa76b12b8975d600222033ee3f5a609db4034361ac75a9905f7efed101c4a8b4dad2b00e11fafbe6d5581ee288731ccb1eb01c08e61fc59432a7d938bc85a9355ed0cc42b5540da31fdc9318d87ec07ed6bfd67f77b7b5b825ea3ae9f3ec93e1b0ed3222e966a4b9193488347cb1cfd7301b16b58b705ab0c5695cea66d663dff1597a701d64af8429cb2709d031518f754ee818c333cd96e6515f9923489906aab895b4ae7489e1bb9c6359ad257abdbf5610970a1213bff829c0eca5c1450845c73e7d08835583b356fdb81068a64b3c52f9773b47da6932ce5edd3c386b5bbcced57206b33adc82250b0f039a333fc75c6f15d05cf1a7d564d13e528b2cdc5c6c09f76bcc29ea0de3b6e0fc44b42fa9a147c879e40560b5fb4e8cd392b421a020a5ffed25dc1b7624ba24e755dced02ec94bdaa365621bc8dee870d51b8df345272e3b2f76ebfdea3e3fafe86bc508fdf0883a0d68d8153b47f46753d18ba64ed3b0ea6f3ac49dbce277e1fddaa3790798b78d6763f57a82624f71449395ad5bc15ddd325ee18506c966efe3bec08a0eb6ded5b7f8459d738046c9b460332980e1dbaefa11a74793bfa3d2be3fd376beb9665ba36ca38457be06d2d71df2694dc218e9769fdea55fde03b211e1c2961dae5354e3e35f3b38d8e21e5a179d2dee51e45c0c47bf0a4af802ab04a83d9f8db70d053a671b43b373a8ed84e7b08d1c5e3d43c566e4288e4eae3043146546493045e2eb300ec509d7efc7db1983daf14d8cd0d3730ad7bbb4b31cb2967b2dc37707228510c96a2761a3cb74378410ac90e9270c8c5b64fa98e1b9faea2ac5fdca96e345af05307d1b186c71a011136462f6d4f09c29113674f433be6cc5f152089eed978547d8898d240fe10101482a0ce942709185d767a2d72f83f50847109eeabec69f8dfce4d50212e7a7afced00b29fdb6261d69426fdd6745e26e582dfc8fa675f03fdf34ded3ccf17c2ff4f2d5c200a22ad8fda8d7445dcf53d17e9b0497523ddbf9588dc94fef44852cdd957f8f8a250fb55df0226ec0164702a01d07be54ead851bf28624be829f821035ccb9c786bf9adbb2cee29002bfe329f5b5a0f231c854d83c0ecece26b245fa0e375cc437c516df49ba3d7d37273eee9ebcdeef488e108a333d8b37fcc94db7619bb6576e7243b966c1c5abfa48559fae8fd8508a66a3b38c8d0003aa765d0d6846831cfa3f78cad3975fda6e2eaa33bdf8e442f5fc33af332df71c384b0963359dd328fa9c8edb9d0ebcb943135f677a5b74cf72b6c2298f28a54d1b1b9c9204e80fe45307f832b81cec098c6f0819cfadc75a446e60787d59103589e4431f663c8f7176e1eb39ee448807f2c2c7b2aae67908351697bfffa7dbd8dd46476c09341d1f373d0b61cc63e34ba833d67c0cc2d864fb45b5250ab0ca32339c8e1a616a6f550dabacc819afe3fb631a8f12d9c24f82891fe673ed9392c5e2d8e1963199747760d34cc764b0212cafd4bcffb0c3cb588ba17e9664991421e292531bfa897ca0c4267fdd0945f30a297db27fcbb3a1e56f73e6d3706ce67a77874c416ceff629b4e769a238da7870fea843720ed4b35b05fd008bd0b95e25d2256d0b7087b2a01e23b2aca628df53d25f79396764066739fa87a90f006a67ab3b5243478e7013a1be901cdd72489830e899d30b08d7e441d8510d532061ef0e7fc03538e9c5f9771bced9dd0fbbcace589c595bbb48e584002ad0123817b4ba12fd148663c2a3ee88fa43500cd568bd144ed77ad111b9d06bc2493cbd103e025d21c0072dc9d008935e7f37e0b40a9823df576aa1b7e1d17164b1f335767673166e47485766393e60b304263a5f3db14c50a9c518ad9b2a05b39e98b34dff6171bce1d5bc4f6a4d82f9ac3a72ac437b13a9bf013fa7a7eaddb8b86695366be26604b37448a23e5820ce16f07ae395c211e0ec75664920280bb371e42eb8fe6e6e28bcc8a3d9099a2d5eb6f11cff7c4227cd7265643f60631915a81ed9280cf9cff81d0c837c365ee03cd1f5fac4d84af873d601845bdcbd926d57c2268bda1ee0b4f5d3edc043f9c4c6f1c6c382b86fcc7278db98cc965f7409d441c13655bded46420918791364b1747a52be4cae27d86501b856787ed4ecf3df945ea295503b02c3a073806cb35b45b729f650ced7a0b62f1b14ee2a3280cf46099202df86fe001c919b76e1b4748e342ebbdff9516f9ad69122f9e36f35d62a23999a984fd81647df2d7c041602adffb8635d2e03b95b93a82d4a31efb8dfa6c22c042140e5407e0fbfc4da225799750ddb05a820a4a71314a80770506efe787751226a9788a182ef4e4f5a30dc21895e4a612d7834fda3910cdc65d633a1b0b5e1667d85a3dfa7c8e68b132f0ab8f2e7fbb242a595f8676cc32343331ec0c62b81adb15654f029533565e9254992669390825d35880110892c6e2f5225cefba297e0d5a04cfd324e463310939bdb851cb8c50a0d3c4befd0b67ce9a3b1c055b6950bfb6195cd65351df688dfdba2036e9665c49976aaafd16bdea3ca5f4dabc8a3fa108dddb5b6a363e4e3a881eb13d204057d360349c2a9f00cca7fd8e75e47650f335238a71497f0502362150f273f7e2f7f8f21f003a567d0a5fa96f1e2a20a53838f5deed3d50bb3dbbf08b67e1c881520528cd1e8c93d04f87787d037f9534b9180e406d9d187eed50c41593caa79a964ffdc2f2c8f2e324b1ca920158e6a9f61ca17f7236fa1535a687a065e1e22474d27b1baebc55386356694eea284bc0de39dae9a0d926e601bf5f4d48e723e4df7277b49da326d0ab009acf54120f107f67ce40e9eb076a6f64b26c56dafb5965890fc7043b1005c8359cd52bc95fd53e4297728c94951b3c2b55564e01ae677789b9ea19f574a5d44a8cda840d02595ecc3d7decad2eb864aee5ac2eb6d71b43620ec346e40ce78fd56ce58d74e5e503d22e8bf33097fae00a5102c48f3bea21c65becc9a4a1c4f99863f844fef61a27ab8e95d8eb83951168aae10535023a61509a0c846e22edc56eb4d2d7bf8335d69b396d4464f75743231f33f65cbf60c95671d18c96891e6da85a52c39418d4280a64b8ff855db4b83aa30c3d3a34b5b615e82ac23fc2b0459bd86987b81f2e550ce21a95884ffcba4fcc6f7561957cf543b7dd8064e8d07a4905d125f30bb8df29045c7d04d58b31c8d7d26da5e864627e10c0074b93f6a1175a324387f128ddcfb9006a0a7b08afbb2570add558040a122598cb5941b465f203d8fc6cdcbf9ba91ff641cc72747cca782fd2ad5ecaf0cd6eed8106e7a1b38a586d51790cedf5cb0c5cb7a1bac815fd486397d8b893fca734fa6f0293e08eab1658262964e0d03fa13277566799519dbfedfa331b108ca7eef0d142e23d05e7fcca221f1717b178135dcb8428d35aefe9ac03d6e86b3695c8c4076fb6f09757f3ba32e959b3ed3aadc2dc685ca8e897839a24ee34910dff86f579aff330029017f64e0d3c1c368d218bc508f6de8fdee1d12bb666b8262a073677a2e126476ef61e325b2dd917e82b3193e90c7eec89de1d33946617e73932db07eb69486c0ec0362c5258866a04e85bccaef0e421864c18c44177ae57723cbd2e7a15cd329b7fa5415a5142410c4cfdefd96cc2af52a3d1467347c5da7cdd583c45deab1349e9598c6b8c77e2053b92040deae6a7b5473bb2ec3e87cdfd58b04feaaa28ccd95073a7f4307201677124f84e11bcdb1e8182e0487b15f37045f94ffc7ac3ac48030418a1f4cc8bd82c713a5e24bb6e52323fbddbfdb04fb9a11f6f2a8d06b1827a5a6aba8cc0d91bd31ef4864179c5d647f1d29e13ec74937218e1ee7c98b77b9f08ccf1ee41f8657f313d4a36d3b2b4ac9ba51475090ee52a0cbc7af7ded00addb1709aa7933ae5b629ddf298d66f42074ebfc1ca24e2d47fe90554bbf1f723a0e26daad0ac2946d4b9946722518b1596b72fad526bcb823d454841a8aeb1aa601c6e4820507c48531a90cd567335cc2d8b7015eb04b9be0987bc98ee2f5c9b4c6808196be6d331121539dc76206db0f3581b6577c80f5b545a4a9b6dfab20db3555a9b0ab23256136db6fa9eca4b4cba9398b0be0293b593e0c883b4ef1042d6556afeb159c7444ae206c16f86b61dc8004978f6166226185f4d95c55490e406a2faae3e41906ab42affb592fff9dcabe0a8c8d8bfb7e6369a94670fae3d73542614adc5e687468a55cb0bba12496edec5779d3080ac168dbd76ec2b4605d634c75973229c66c062d64bd5bd61ac630878c3019839f1f334407c9252f9fd123615ef8d6666f84ebf8a82ff588f8acad9bdd7bf840a5b5f02a8b658ea3c0d02c58dbc5f2963aed4d582af2e489e6eb98a6cc1b2ae34608501449eb722de57772fdf2cb9b5cddecefa76ac17941ad51840f56dbd86747bd378b23802282371c1e4bf64110ac744337305716d5fee64cac47c0dee670191716c0cabe18db7664a052d0239771e2f36c5d671fc59fe14b6c131c939a505be27db243f7a8deb33f59b8ae51aa2415bd277d6a03cae5383be0dcb951302ce63ff41b088f8fb71e14d26a76ea24b8ff099fa182fb6b3f7d2e68ba9a870620bb5152aa34388f8145d40419149424df6d015d9f5a6cfb818ef9a7ff3c947d15ad9cdf805b0d28463974909bf74b6e528a39784150770c5be572e9bfc1e0dc17fc95732a5245e5148dac0fb423b6bcaa48d542a512b2749fd0b927c532113517e02c360a66228fd112fd57a21e22ff6d518ff88d6bff0013efd650f34bb2647dfaceb949ec3717632503af80a0ecba086bca17641d675ce081572efe3a8f73d19aad649991aea9353252f450720eced32ac5fe0cf749d9c4eb4563f1d5f1ec45f70bce4545c7a72e248c47994bcb28b39545d236f164c9ddf405b07567019e5a395134ebde9c27b6e4de9cc7b39801278ed3b81bdcab390cff8d741c49545616dd3700eb09693229232e3bd92878d76842da230db1b95b602093de6e825643d2fbe53558a5cd67f5264cc3d87a9492e6179299b66d1ccfbc116a0936dd9fe150ff424365122d4177c8969deba661a6de4fd96404872140997ab00adbb71250da9e7ca5a619d046f35a18a3a2c9cc9bd71086119aea2e17877b51a64de1ade77d6c751c8914e226642a25efde219f06dcf7e24686b7912b2b50da4d4daad89d89c7963119124c05775da2d849b8d3913d19ad9d8af6c09e647a659e6a7fb6a02abba537c7a2604fca754359b7b4c368285298c03f51a6ce8ee06470fec246b755270bd24591c6261d0b7b6af6b1666eaf64da0e15592eb8657f081013075982bef4f9489cd97c6588ecad147378b09fef3da5cdd669754bcff191f903219a844967bc5d0d52083f9d075d7047497a9c73c1eddb1c79ae19bde8df0b16d8c8a0e1d53ee3bc331d26bb96fc952cfb07480f27694a8fa02964dcaea338f2328c6cea4d12148550fefe8c0a65bbf2dbd9aced75f2bf7da029a664755524b8149a6a1b22e780386798243f26c0001b8753a91561a0220707bfacf0d46c63260688f987eb357c53606bc3d047a1cd1b0313ce22e213af6b7d87517d3f54ba47b3d25917cc6833fd645d2305e4e4d29972117c39177aa76513d7404b184a38e101ca00d0911a33ded89ba37b3b738032f6f0ffa8f59e6efd8ac4307098623a89f89c1c2a0c38a2a54001047b3676e1c04e2d40c12cc2a37791bee8332116c8addd5d69fe2c35481f7c4ddb7ef91fa1420e4a2638dba06c93fb922f7836d2c76b95cfe564266072ac9cedda28c9c8f11bbcd68c01658aa399a1a634cb2218d6c8f9cad739e559cc2b84ed5a4365522dfe1667d95138ce80e03291a1cea62770925f5e00d73817a179ac483799a2c35ae16f865906dee05cae022ad01e70046467be6f02745c026090e9104752c87be5aab777419b32c70b56d6a74a5b1f02182bade0934c145ab5353e72bc50d482fcf5c8ed4e2496979264a4cfa6ff2670b8e32cfac9d1039fe9f09659ff86cfdf9c7e6d7a9005d63f35c3818f481f5d666ec614c77f0b3f57762ba79e97387f0b0fd7c0fc4c582e24908b9312ff52bcc513a2a5ed6b27d5e681c6190fbba4baa41ca8c94458acb3c34d6fc293c5cd555c39df0c5c4288cd783a486bfbe558bb93f521a1546083ddbc26b76b01453d07eedf5cc9b6a902b67b9e0b9565ac9df8dcc14ac81f55380d086560b2bbe55b10a4a5a9147f3a68e177147f038ad51dbf0340e95ca735988adb098d10b0c3c8605606e4e0a371cb2160c95ad96c4f06e05bbabef379bd918906e2812f79a04fa48848dc670eb6b611e4fa66820eaf9843f0a5ceea7384c6ea11f10994a09c5853f240f304ef15a17cfcce2444ddf5c79f4a60177d48ba533dd7b5ddc65147436cd147d1f1717d0c38a41f6bed449988439bf940f647a4c3df46b64a1cb970cde1b4fda1adaae36ce6d9461290cab94c9dbedfc7a742a9bcb5864256af55d7e7bb4efb5ba8f8dcfa4831478497a2e59d0ac93f89571e16ada168a793aaf44ac648e15e414cfdfa26f35872105cedfb0a70e94ade4569fea766e76d299fe7d41cbd05a68d84f7d65ca59bfab5393d358060ac0c4849ab1b8a6ce9a42a8a3a553194da13c0ea8c966c53d635cb5f9702308027d5cbd44996fa763cda5c61ab156d8f879724776f55f91bed3473b903ff1c098a00986bf64488ba58ed92197c4f179ee6019eb3e0576a09520fb3c575991571718fb9998ead7e6e2a740877ed755a5e01db35ed5c04fa9d3040cd6cfbc9029722be5c4e7c5ae6b8d3d967af2fcb57001a6ae00e928be7c425f344cd462c42ccaabebbe907f6f49ee6ddc05984736dcee6a956064114ff0d407e0fa6c63a547ec7299c2e8db31c2aa148df7c05608059aa7a3e62ec0ab515a4b3110aacd2faef94cbbb6784c38f90fea28215d6f9ecec9260913ec8406624ee1f80120ed8410c3bb6dfda6ada71c9cf998c8c5aba6b9547e90c9a2f2729e5e8e4e1b499d3383e44ff5a2d8fa79db9e82bd8ac7afa356e208672229b359e18d8713dc64477ea7bf868e9fcc76fd7a8d6ab9833213be235492f73d34c0d447432cefb9c059775a60817171735dcbf9a682a75da61490b447305b34aff5e0894eb60026c5a964c9b7320e8a72152689fcd061c1510f3d9e57762874a1b8e51e385d0e9706abcde24eb4e4c81d43500dd7831517630912f2622684d9d25bc219a27ef4bfff9160dd6ac7322814d66c6959fbb1140c38edc072ac43f0734d868631860bcedfe90bf6b09391a1ba4852064c1ec2f4c2163761eb1bb5e1d34f66f694393fd4e4ed5752da3b0ce31086390e0c6c2b028b09fb13e98fdea9eb438c7033ed068fa057ef167b51d91aa1c98e57449d7534f3c3cc6249ba36864f66efa4c44d272085bcec0d878f73f7d7e9616a7beca560b38fd99f37a258b9c5875a9b88bbec2a8e0c5c926cf0d9e08829d3d19486a7c1b238a705b77403ec3f2b19a9561a9623329ef834b56cd29773b902fc29fe386524d5a3c5ca732d49c1fa1ae386188edd8818c58e6c8d3a150892419223052d23713d444b952e4bb282b695d456cfac3db1f4655caa5039bff48b14508673af0ca7c65d3de895a0ec2487bc3e46a475240507e78fd231a85eeb1aad16a9c6f0651d799b81a49a7647b2726015b480ba572683542b4458650c470fe6752c9b77bebfc83c9d061eb4fe19a93f157bc353dc3866e3d212f77bc8c4ad2f8e2b8dde9ff4691624c5258446373fbad8802d3b90301f7605590177d38f4859214cf966034680e513be67eb32fc161da7b53f5549d2f2d906c11af05fa96f83b31bb97c82e0c3e50b1f1af7375f76a8ff2ddd8839f6240b4a8af325242b29ded69b0a2f6ee4a1ef3ee70b86c51ffba4d0dbfca3a38c1bfb4a8ef805e6828f12ff1a30ff7720421965cabf3c862d270de88008b9fb86f972fb84fd6f063860ac5f2f3db9c2ba9a5695e2fa2432785cebef05c3ad16ccf3e0ff1a97be42aa69984bcfa5e113dbf9caf09229292e703f0dea615e2bfc9f5b74e30f92121408920fb6069c1c8b967ebc4cbfb9ca1060412abb2344022034eb41e69666e8a7eef3dd18cba13a622e3e260c55b2428d58618d6aa35ed99ada1af0ef93bc386975e7559caaffeaf49d9c991fabb2e88d78647b9f1dfa3c2fdef6fab6b84d9abcccd00743cfcc0b3d2fa18de9504d7fb4aa24ec7ed77e1aed895bb662379f02c66c9e4bdc72c6e0afb21def788ceedcb9673a69f399a11e34397a944ec4c3cea0e314a2823ecafef4da441441974431a53f91d1ab989bd6a4d07ccd3ea9a9aea1e644b10f2a52241d631133d894cb0ac758eca5db6c693b9d53965b4f8674c94e1edbb4a257acd0594a5e133f10ed6a3514eecde5583f97eba4eb9913421f40ec89c729fe07cbf2716e3cd5d40c5411554821b4179af2144c1ee79809b00743ef457e8e56c64b1be6736339bf357f46428b5140cccfe52a930a778b8b304750c8841ec39867daa59c83488f2920ad6e3c99e2b22366c919d041687325239d48abf826c85d20694cf7385bf0f210c3f91b8561a65134c92950fe929ecb5498c0f6421562ff4e691154559550bc44c2c09fe7bd00ede566a77e815bd974a0d1be7ac76473d2124f2c270fe97bfc42249bac12b128a60373d29b8e986e57503f269a35c7f29f91d128deaa9f13271e64f6773f83675a471fe53a9b2bf9a52c9eccf4e1ff0e008b479e565c5d296c957ad98cffb300c05351eee37acdbccf99e82342f53481128efbff59a9763c803f72daffd65fa74a08fc4b55fdfc7065a31dbb5db950b7972552c68f0133fe6db5120376fc88c4708d3bfc51997f690285bbb289870976963961661c51a84fc62eba18234bbbcadee94e3bbb35b56fffdf8777be47be0d73dda8bbae44a93bfef91a619512163eda43fb0466bd06530af617caebc9c46295f489a75d1eb0f7d6618da49638c1c49f79fa12706cc16bc7ab169ca6ec736ffbe53af002a62276ed213acc1da5bac7357e09a2f766c91b9fcd8c7ee0f8583d96f3a9a8f581ae37880f2802ba5c9a5515f51e15bb302b3875814309999ba8211986fd00bb2f9b13a03beebd49518e9ddf61f7f2b3208f6d4d48ce899376f1a4082ee45063c6bcfaf8a771a11f71d5029ac156ebe21cae63c0aaa46e0374f6c44dd458ae3588046c9ce63c0a4f02229f3c58fae0169924451a7d2a8a3c24b4b379bca0e01f25b2ba88eac074f5ce5ac5209d2e7b6cf53dba0470e25891dbc98ea7b7e1f0e7ec40a561e3d19fb46f2bfbbfbd1026bb54cbe5cb84e979b6a3a3bec88c2e3e31c87d5d0a3b9157c1ab06099afbc5b057f4ce6678ddcc54069a8389a98b18543468ebd6d0722adf700c82bc64b7c8da3a6cce1240b0770526ffb8b6bf0db77dde91a9dc2e95d6da347e65e196becd6a6dee611a0f20cf4cbe27cdde2cf7b2fac661f0dfd50b29e29a900010b50d9502c82fe61aa2d19c27df40d98b5d4902a47c14b5d8178761974736049af3060086a3a5317309e4403f5ff46efbbd68a8d6fab53dce5b59c5db685101e0d39c4db3cb9f537cc97e26122cef6d75e4bc61e139d8ef5629da0f98c6912a1358b926aa538577c5c9f09af47bf0298231539197379707c478a1544df415cde03ddfd78bdaff275f21b958e96b2cbcb7243f79845c1089cc14a371d1b470b3c126eaee55ce5bb4a899876f526393ce12b2e32c5524386676e30736edaca63c3a0efcbfdf489f720c2620cfbe7d9af4635227414c19851480d15b190aeae2f7cbd2411c1b59d2f2c130163454f0d6c9789967bfa8985d6e9fe7afddf76284b9c1ab099150bce7728cf09bad5842da76c9c219df6919c5cbe3a74dab53344d086e655d93c94068cf452070d6fe54fd16dd24b3007ad6c6d69c91a0ff5712c3e7e7be039ef8123488ec72374da577fd15fd57433807d7123f34a1c9dc4e1147c0bcc357fbebf248c976301c3df61940da5b1723c575ac6d3827b8561b2829ba2392fd498f26324242776033ec0464a7d19a988ad440f625933b22cc25711aee48a80e3d3042862dc6d75cf89540bdef06403683667fe8ccba9610741e300efc9765805e8c874fb014e9206764014b618816f9f35f0ffc290ec5701842dff072ef0ec45e2fdc155bce54803f64a96e2cc2c8d86bebe6629f50e7b631654f0b2f4c784ed0fc6500590668ce29d4509ed3b27e4a00e8fe31cb79ed31ba1e0c2ea5fa45e4441b087ae537ede59e817a4e46baa6ccaf19ffe5d7c41134d8d3d98e587c21c0b42f8abbd14a0e042317910b4272d32dd7fb2e0664b87e66b9f5619ece31cc48c038e19ee8846f11e4674e921adf4cf650143e54bacc2b6c1d2020244131bfbed8d1962de52540b64b58e45b7c4732a260dacc71e5b3430ebac886bc42e957c7f2ab38ca4b448844b16c9612cab56565e467798fbcee2e45a46d5d4d9e1d5415a1b24ecfc015d5368fde39e807943e47e4d965aada244f5bf00a81d2ceb7829959566ee5836d601e6d8bf5daf653a178833c9e0779f0aa14d250eb8ff35401e2bc6f0b1eef19497b8ba9cebbad1fa32ace283ffe0fe62fabb209bc1e0a8350ad2b72eac533705b3417f9d24a59410d76e0c64a9931a1f48100382a74cca9e9d25005d74acc08ad62274778ec04a7657576384df5f6d6e6cd8e84c088ccfb2c5d05d7d4a2f26ca3e087ece561b1b7fdbe001400f1f149c05a0bb00f9238531a774e5934b4c58ff8332f3288a8825355974ec40fd021aa67772e61225dac0008528dbe5de93454be85d84caaaee8cffd384646db6db55590e091c55876be6efb05650a1684535113ada7e14442cb9a07b14add4f7f170308f47870deac5cc63857fd19e4b9afd1a2dc9e3a338d13472fb64389737baac4b35b59b6389d9da57b66b1ed03d224b271f1f4515fb4b9191314436ea3b769d86347066504f6c0f94aa76fbec2aa86fc2ce06d567866166c393b58b233211ffd38005f94a61166b1fe14aa2b26d39afb203445fb6517ec501a8a24e5b92bd35cfcdd895be70a75c7a9ac8b6a49472a26e95734401074b06a74e4a9d75161e3187f6dbe1cc92c43d4113c289662079b1d819f6e767e69478bc569f3d688f5ed5ff7b5b9920215543b0a84a4d68d47e666aa2aaf8b1c531fb4e11b71293d23351ba1ab580114fffff100a6564f1904f0ad80fc8a8584dc966dd048fd1ea4bcf4705cf1aabd9986830de8332e2e42363b7cee67312f4ffc086dc907fdc9ba20874f28c81fed540d8e1bd28d8183f6f244f2b031fb4f27dcf03aa8df4eecd8a95a526ba1a2f426877353fb60bc0ec2626ec700d2154d29f7fd672ec528e7ba3d385dc9181cf33d81dfd32b982f52373e3834196e1fe5908d5c1cf4ab8452ba8877422772c269649ce9fcb4ea04bced50ee04e12ce2c6e189f517089a0dc3da31d42f84016aec950e011dcfb2081f047388ed832ccbcccef31733e00e7dd932a30d302056d263f784b928ae6dd88e1a8c34f9a492685b225399fbd6c12c978e7f1ade11e00f5075e5dbe891e3eb28efd123a1e634ac663b7d91000b6b3f0c2fcd34199c0e5886ee44b3617b905f00e273124243d5201ca64d35381852b8963c763dd1d9d080409ac7abc5a851468a4027a74426bdbcb0bd814d98b2ca9b317c7e992e7696fe74338c01be81cf0efc27cc8d100f65e3f09d2f344a5f6ac98dccd6cd6341ed85059ae0a046b7b100cfbc03cc89b587eed19c0c5e265e1109a229a7f59c8661f9b5030e5014db6536dca086d68dec06ec086d08fd33ea190102964756880b4197f2bb1a145fbceee21654556c8d7d7960dd3daa7893e737029b2259577f21624c02f597ff02f73e6554bdb70045f9c6a1df9660306b59a5715c1d0bfb16d191b77d409288079bac4a2a94dcb34a04b5dabf2473085ebcf97af1a50fc64b2d0866ba87a0fc4a8e8f992681cc58cb38dfd7ba01c9da1863a5a97a70e77bed69bddae0e8d5203e5689f0bcbc1a3ed956a8b958f6bc11551649948e9352a3133806079a80325aec6881762d7b1d7a14b65f55424973d25d48f09a938af2313745ba05213ab0d5feae74d9822c320564777fb27d73431c3b16a7c1e15251cc9b8e7b7acc7bee9b3dce0fe368ea6a3c4aec215fb914718e9e0dd5e29c35f2c5657fe8dc34d0f411b283c154cffd1797d02a22f15d5d3a40be51652a50c0640c0eaa6204cce091b605787a3c0c575c92c1836a7edf203ba7f09b0e8c50f405a536b94bc34e23bbff1ffc793b861b7b9c98c1c0e3290ce61e979756f44ff75ae822f8fe1ca418d05a2784487ed1ad253bc4c670655b9a10e98e75d0c0905d9e287cfed8f4703d78d3667a7891f43794669dd300a539dde8d40f5f76266630a07eadb2de350f51f03969bd27907b07e939dda45875b24f248eceff4a732e1ebdbf34db11c2c40ff30d9e4de60abe8ee16f6c5358cbbe85424b0f6613af504634970d4382f26668373185ed41a3bb18d007d9f92721d46fd351e1d32e1706d4d224adcdf394913d6b63e6975d792da41bfb5a7d99b24714886185dd3ad71ca68e25c866f4676ce6e0ef9e7f903ebcffbb1ecd545a795f1453f15d4d5d62a430716e294570d02d566a3f952f22b428cd65a86ef605dbc59820a647eb11d85d4d65244766bc7858a8302cd5f57fb9d9d7e7ea42e211fd92be7215d24b968a3f6b24d0b907cb76af7d1e471ad33329b91607ea2ba80474919758799dcc2030aeb607d050d130af7f41ddbf485c0550399b978c919ad6824dda5f69275fdefcedc36715cec38f0b90bfc4beb809e2fdbf211c71f89c23f6e1561c5bd0d6e90ddb82fb24803fd4ba3ba6f00a31b719c077763830ef227f8da65b0565e895f4e7191afa8ee2e2d347086f7071b7705a686154908fac4b7c4f3ad6af9785f2ea44ce2f53b772229e8d2e1dd00884a1af0e1a3bee4a5508b3c4d1654d05b78808f3ccaf2084784e94cb26630233eba877719056a7e5f605baeb05fe2db663ae5a24429723af5e340ecd21ae2e4120c8b1c8848f3feeca348b9bcba61ec6663c3afd72c56cc322416ab8f0dc2bf69ab12472edc5497117e267b5ee62487d5892dafa007ac14cb07a4f2f5b4a8f0a0cc77acc80bb58ef1570dc07197b44acd4953fe9ff76f6044f43a704e5d0d0f77c32d85383c221d8d54e2c6bbfad46651c07a7bcdf1f6150d0a9e97c7f12cf5f1398a7527d47a7e1aafa4b802e74cc2fc46cc7c80e5eed79e0028a60ce501563136ddc6f411e9f75e9fd5540720d276cf4a219d519183497293e3166729b4e6d2f81c0d1f029ee384128d1101d4ed0d0c56eb9287de91ca65936426ba94fd7258bb63589f5490532a0c1d5f65c94413a41f3c06947578108dfacf2438ac72ce03f53128bbb98bd4e7d9a171a65d9940e172166bcfc485563b1814b28f8275fde77f8b939507f1730fb37a4b84f3d782c51595bc12760f01afaf988b1450c8a7fece0ed50afc5742a71629d007faee8719e2b707b3af380b0d14c774980e29129dd81c31ee07cde82a587271dd1926a583226a9c066b8febd2816d8c749d7dedcf2ece031536d1b04e709a0cc9b7eec704485ea25561d460db0b2d48e6de51aa4decb9321f59bbafed74f41c5cfce145902e892bd8d226e60ea77c59bb3ab521909cbbf5e9d8533842a85a19be073146c281c7d72af2659dea93512cb06819d575b3a6710712a4146b71ed549630278140053e6544df96bae605b47ae84c4bf99cf9199043ea6fee0550bd9b0f0d7df6f12a6d60567aab8b2fcec16f5485a67aefa9e2d04827defd39656f672914ee669b6baede50a5e781f8e8957b7ca5b29394e6fa5029f22b02a0020247f123925007e8bd727ed15b32b393ded4c298271933edc1b1336cf1689a4a9623ee4b43494612354f2cadc568bb4f1b7773c85addffa21eebc05017ee900947b39a6d59253a985a4bec4c873c9136cfca492dda2835adf16f936dce5651310543c48241143a730c263d2a9f0fb12f23bb58069d8dde7e0045925e3a3704ebcabcdf249a84835771d1362018ace4900801605ec75e24831b7e3b6160f48553432ccae3d5689ada40b3f52fa0a1461ecf22380ebfd8f28ede6f5affb001417af5ab2b9a9b74d7a4e25baa65aa3e2aa79c7b61de8abd6c0f95b210a2a2c599b321b3b967b67dc9df1994d96e82f2b9745215ad27659dd304aa3af0459f730da3c89680662ee38b410a4e7415afdbd362686d06f2eddd145808e0e3db80c8d90d63f27df91e05c4d95b39e64dd7e8af18d1ec4fae3ddb3356cf1f7e3d36e30ff88741af1a5de28acd43b660327ed5b42eda3c374a447d95d3156b04b98dc0df87c66f111e9b0cf89ee77e9f28d9bb10c25451f5b8785b8d2decf1f0ccf7dd216116c5935888d8bb5d6191fb6fc1d75e400fa81a4ffdd125164df78dbad32b45c87450701605e95e226cd06356d38dae740648ddb3dc6a89144eced087fdde49832fbb493faa2d88ddd77e3c38bcb06d31a2b78de1c42cdd35cc7c6c5bea027d5e81ad3911bdc8433ba8c88049adc0e34166a81443442c566aad564dd83b56e0d5ec129877bf4aa96523927c17f05109a6d65d0329c59a60e3de8424d61ef3f8ac807572c12f31a25b07a27f86ee034164e4cd01c79a6ca57057f7fbee93f60ade86b4ae03ce97c9f11053ec1c78af2cbb645c704e716974791a8e064ec0dcf2861b16169d6381b636a31448d96aeaac449fab1f222a7260e0ecc8144dec55a048685982c2d4cfbc7ccdc807c262d92f64c104c02df2a1300160fe2e8370f16fd78252849637c2674f7ee446a1ceadd4785e3f6364bed0d1324c3374f76afd6081c42b40b775e61fc3c54b3d61f5c7c44752f9af1d00833cbd0d76c3642de7cb7c0bbc2e3bad1553e13b83d9cdfb0ea3ac0d927b70dae32186c1aa8b2bcaf275e3c4c7452b2ba6ded41729e8041bc073f08dbd19ff65f147409e80243e030abbb207424a9419bfcbd440f9378f0b137aeda9aa209ca2746585ca3170a9ebd78aeba122a3702a68bec53235dbe63ff8a25f31a1f7990eb483920f87a05e134bcaf4e849702d745b04953aca3e9c05e1b421cf9ced2e5baf26cbb56b996be5396373037347efc75f1fe896b2ae358f44a6837792d2a58141e56c4bafc42953469b7b18ed93f40ffff35a6aa3778a69759595e1596a944a921a7077fdb9834b626aa09b63028ae706f2633642d5dab4612bbaa4e9f202883d9c7fc9a32864d8d1369412152df5a7edd948edca6221bb0ebc8247cd6018d764708c2f1ef2a54ff0f85200b8799accdf1e5006f53124943fd5a911c605203a868e6541dbc19d402c1c77dd00c3645cbfba7f23a1f6f78f83220fd48b800c96d066b28d0c90364d42336106c6a3928c36e713165ac34e7dcc148b3daee1eb70eb1b24942163ba13988ccd1cf20395a10417155c57998abae9f56e54a0639eac1a67e3a710af5bb70b117fca42526e5bcf2b3fbec9ac047b3b9f39cb3da1f6b066b577a3dbd1fb0add2af6b156e5b647ab15ebd4907f6a713eb11a96cd7f52a9c4871c94372f9175e7fb4785f30536a29ba56cb073a5c8f8eb37ed93c00cff8e721aa697679b32c5aa5b7b2efc2999819a438ec02568c3579f72e2430692c96a11592c6181bb0a1a39352e10173a4402cae83fbf5b3ded709ea97a8b82950e09f67cc7aec1add4590fcbcbb05b54318caf71d4e789f80031b2e74462ba13c00189ad5c388f4c212b4b83fdc645a8cd5dac5103b2c90d0309514ec5a0141d714cc149a71f8fe218b0eb570039c6a8546a674a3c137e14abbdabe1199a51be78eed4e14b84915efdfdad3aa068299553e5650101fc288b85fdb21e46578d3364bf09d71699b834f111a7a6d00525a46974d60fd840538ed5f066f24aa5631b2968a6edc383f8a127c3c48e9f6a5c54c397974874d649b5ee10c9b1eb20ab8d1e61ffb7278dbba9cfb858378c6be3aea406f006dfcd4d4c58c003a8e045cb002763e65ae1ed05b7d6e8145906e1766b2d26afe45997af7908253f017e733ffbec25a5d69fa8a048e8cce6c4ab470c4aec09c66b6107462457b17a2f95a4002f8502903d3890734fe76678fdab4a8724d625ff3dc31772bd41eebb34c147c1a9d08603f661637d0e6bf983c3bc53c30d15ad00ac7d002f665c4b91354a35c89cdcb1630cd97527881e5e09776a6097b278dc94fae985a0277211c9835a7508d906e5d507d530561efdd91df18865c77edced2dba8b3a25bf673e6ddc9f77a8054742b7b8c38c428d3e1efeef4c583e0128ff78de9edb94c23f7cd6f4d140cf12a817f29c365f7345e610ab2c3edfdf0b3fbb3639fa0dd6694be2a01796245ec90a0a71850fd6eb2fcc8111807e8ab7fa495809dfd5fc4b6180e5f09d7b553e69ec08acfa0013f1a814cfe9a7f8a130f3f6793502caa8ce6427925b1a24d77cf6d2dd015fffb9d5e12364dd394743034e52253fb6ffd00084ea989677f685aefb2c8386779590124349f0cbfff1965d1ecc0f9e9533aef0277b2e527bb3d271dd597b8497e6c72a1fa87c833a403132eaa96c4b168a528772ac5a70ce9020bc0c038bea19f998f2f1caf6f3b17eca928fd65cd164e2fc6431ec758a3da5c9138b7bdd018baa41f8974f40f613e93c0659547fbd1596008fcc71796f4a4bf3e68d731b9821757d577a4437bdaffc3e233e40aa00d68e9244e9abc36ba58fd7085e5c4a125488f247f57eefbcfd8782e2f480517ea669b9d0e9532f31f4ec1f41535b03e00c7deff9b7a408c967c2b11d7d4ac50172d2b5ffe8c6264ac8489e94dd4194f1a45b35959c1c9f0f14ba32b50ddcc3b30ae889ef4de61475c3127cbcc1db8416b6bcc6e43de9cf2e6b13f9c1094b6795f06b2b9f245bc45954855d22ff2e189aed5bcbb75bd861d9510e5cb2fe14bc837951b5a71d6e33f95caad065774eb94bce19b5ab88461c4af8eb85d8a140df71611762c92b33b9bddc8188df7dfcd759a524b9d228389976a698169b59bb7463728b5b1f2847f84d960ec9e193c6c2fb695fac8ca8c4da32d5036dbb32c380ea710d178c9a9e4e46fbfb4fa7a7e2e522642b963cbc667c8d8485009a9593c8004f21eef0bb8e7fded66fc2e910601e8c608b904c3a5822a912dc81bb6cd84c141e498c8d34336dde391b5dfa9bf38490ff7b588872a04dd4573d3151ad03b3aa8b48e0966959cd1cd750e18b128416aad5984f86adcc5fa6d0d1f8e5b6ff5067823dc31db45a6d0942c35f46c19cdce123a6c4ee3b93ee7c273145d17db27f44bc47c2497f71f76a7e5e1b9bd12db9fd767a3df8c33ca5aefce76ec3f7f1d1b84ffe9dbeccebddec60c42875fcb2b0fd3428fb3f05a7f989410b6b63a0a844ef491fa1d1841337a6dcc1b462f61ac015ec0a696be9b31b8ed13d674da8ec30ceecae7aa6fe3533fbe7a6e3607ce9d1c1c4a9cb3b6a39c7392363ff4338fedffbdad6940a35076ed72dfbfa4895358c39528f1c893748b83c9eb4b39729ea3090d0dab193a2299ec7d1cd5fc64a44406ce8222a1135e3d58c76d144379d18ad609f97ffbae7d0c4e425a5fd5173f191201c88780e68c063c4c9630e795d37b2cacd4a440c187d3361991163b9113341aa983bfecad4ffbb854228e341183361796d132ad6474493075e05b39d9b90fad8f15040f6e7c5221451e80ff53351291c5060c99f6b3453e5f2c74ef345e5d65887b472f513927437968fa7e781adf5438e28793506bb965e3b143500c9f521ef240d736d3808d9040d1a0dd434c78b67ab7b0837f37ce8a96d9d8c0315c654d4727052312b36283902de1cf8e75b891c1a2067a0e772d9c358411b742f8a6464054e31828e25198f6756c70c1f0b301c6d5b4b053e58b78fb029cda1ddbf2d266303334db8e5db6955e8981d782b6ad54a6de903a534127b601fe996a2a4e98369c2bf0ec271ae67c1db235c01ad51d0c01c71c5eee4abad36405382b157c296cab4ad7ebbe5600a345dfe2779c8e63cc8589378b5e308b9d6b5db4aad7eef53c3f9adc1e0b6cfddb4823e542cc1759f824b8dd8aab48082eb01f898d19e2e7295a08933ccf517adcf1c27746bf941adf3974db6c5936a2ad5f0a9fc5b62a96b5c402fbc9606f47028da0f64f8898faca73ebd53fa20d1985ce2dd3463dbdc36b5215cb18249406d2270cae34c152f0a8ce5ab53f2ca0768461fc6231eb0c9812e6801c3bf6434584685185ed6543b3376fd38fa70f3951efd0d6c23f10ca7e64251739438808266d87901c4abb70cad67263c6bcc8a6ecb8658fac00e74a479788b3fa5e2dc61c8263182c4e212b511f01889d13e2ab77788e8b5875b452bec435f8edcdfc074ec305b7745ec35b773877d5fa1c7c0c807b48d901f5c1c1e1fae571cd426809547cb5b7b358c556f32984d3873a974ff2aef1b92924f30b257ee543f6ae5ec7597dd77061228f55e4951743f48c627f3d747dab6abdd6c89528b8c8b15fdb4387a76b30679927e2905d3fbd98bbb5f20b90b62429b5e0d7fd731b9b042c3e52c610a297ba94ca5bb78c5ab321f2776b7de84ed6faed174376d27cc520eb194cc40612ba3dd63570720050cdf880c8f6fe90adf163788b742f5ec1521a0186f4da32da9fda7bbbd14c4af8dcd2e889fe5a88e5397bf3f24a1fc9e178164af43729f2f8efaaa1a4e71d833785d041f8a4bbe0449cbcac1342836607f685f41a7308316184ad2879757539e31b7e8d79332e6438b25a05a6020eb27f6ad34ab0be8dd3e086296fbf97c684049dd91de17a6ee1b935c0cd6351cee4d2b8cc7850a29511cd91c62cf1d891d231e2d96013e337590011c4f40d40d0e8e38f28552161ff86a4ab1755551dc8e9840d8cae33798f6199005b7c6d84569f2727fd78bf6203286881414ea6b55b2d948503f792cd8c84a3357f6e6d8c7d7fcc601d9ab9a70a844fb0067f5767cd7665f1509c7a03e853c1498086b02ba8ae8eb2ec56a09accd9e29de69092f115ee2165ba2d07405bc91118eff213f92287e2533b579aba7b2b9524c64126ce7dec71d2a643ab63652d3bd347aa142a9f7718c162d72b6e0c593a79c573cae8f419b841f95f837b25ff9040c0de2f290339e0a3f5d3d102a0c666d18c091a6f63a8b386b6cf141588124facef29aa1fc00b6f04f6aedfc2a726d1913c2bafda966c43ced7d320d3c628f6584cc10d5709e32bd3d44dc209e79fe5104271b8023ed2e55f33561ad758da6ab631469f92a88f57d560fba421e54354b56d83e2d19e197269ccdc56d7fa2a3fd2d81ee73359462c096c9e9f269a266142d5705bdf5f2e10786f3cb221ab70b9871ce9d22e3fac772b603b240eb32abb617d1095bdea559677eaeb46ea7a6f18c91c67c0871d1b17e8e6c442da6bd775d8cc617002355d1652b92fa9f3f09babe74dfaace074bafff0e16a3f41cc20d1429c061a156e6a267a6712cd3da61fcae4d0bac802e6d1dee1b86753fbb4432a3d6b6a29c03c58462cd221b8841f09067393f1f92379b53fc5124288806431658ea8f60676575c3a7d61193cb5a3a5161d8195d8dcfc448a94f6d4059841afc48c49dbb53f241220a414db53942b541f632912011f3c5fea52e8e8c51692c90e44163310cce496fe3be6030fc29f72a8eafecf06e202c4f60c79e89d344a6b06d4f7dda0daaa5bc9c6cabe602d7d02d66b6524a3ccb4d7b1591f2cc7f2e39bd55dedc9c3c0e36d7e17169c7f8397b32a0c41da787c43b971d9fbe468fcb7cac3d2e962fb8f71e778fa6274d7f4185eb3677f6039e01a4b0882e672100dc1bde0bedd24a64885dff3cfd0abf7dee7d84347eaa87190d4a6acbadec39e76440b36480b780b3aaf3c8746eaaa06e8c2d77ba6494c8b18097bc8895b073ad914b18575d6d47e7ef83c54da9d70fe1a34c7de5e6e6b4027d44a710e93ac246ee79724220a584f44848fc780cf50b7278aef79b214a92528218c1e8d3b43cc4d0129a9d38cea8e5fdd288ab9d84513e82d241bd28780a3fabafed8e7963b9931efe5701b0faeae84de636029e54574c9329bfb2775d83e97602ba95c828316e13d0c5ad6bd361fa009edbd4498d56caddfa9918f9c321ff87e92dfd4dff8f013ca620af80a2abaccea7e3d1a33d4b844d7eb4ee1f802c312e3cb74149db96c489ba4aba965d761de2f2f64558b1488339fb4fa12c26c13abca4d1eedcab16c4f6d6badd8fe4d9d5dc6d2643d85cf501b460403405a67029e9ac48aeb65bc40dbb00ac0227ff7170e9b5354be8330ddbcd0cd845a714dc76b9aed9e9c913b43d75117c5892e5918e50483fd1e3b70983dcc6a0e50ff300892e90007dbad150a302b41caad59da0cf8395afba251efb26e33c2f93fa12150b212e9928f2c76bdaab4f3755d7ba6dd4584d23dd6d87a5474292d6e1f0926dd8c908271cf7b1aeb63eae54213e0cdb022b3b36ca71f6a9c939b29ef3e55c8a75553c7fbb3316f2b62770e5b0bf628e330f8117a273232426da26a7c5799bc9bea89a7c17fb700c3a7162aec147f8fa3ada3e76c65ca516034d8cb172bd086847ef8a8171d45bc7bafb77de5f16961f063e38095f15e38f327f0eac60fa34c804dcbb004b8f342784a327b9d69409d57a81a14af441973de5e61f8e610d3d2d5a79865a669045e2ae0fafa5d9bcb86c54101dace995ac1c199597f72acdacd0c8c441d018548999c9c8251b33a805c5721663650177583524ef2253196d36d5a8284dad0897e96a5097b810b2066a02a0d7dc8a7709645446e70930a9743ffd382d19c5222a162804acc7993e107616bf053f431c30017bf85182383e8564b3e343a98a159133ffeed35cf7858b5cbfe54e047c55a8c69c41740821ab5c075c38df8fdb07c412f814cdce8ae8c6e728bea1ffcdf41c60a8ca450e0c0c5dc567a947201dba08a9a588915a6ba0234c257b802ab70fd76dec8cc087f7ad4c8b02d03ffd62b9ca3491addd2c71412f2ced5f0a4c9ae34a3c42bb68f450a0739b1a8bfbd426123234c4de2b6e5ca8133e91e88dbfe554a9e3a303b0cb1621a26ce7ac1589c9cf2b5f74a99902711b2388802275151e4e510375d8cf6512481f4f18be90338dc31bfc30e8352f99871d909068fc1a8f8d034462de0464ace480786955c2dab1179e21d9e274d8edef2086c79826238b2f5b1152da454c620f6384721d13eee1047e6365fb2643f1e36f7c1f5fe27b399e264c4cef028d8f5735fe711cd3f923c933a2c662436023169d7cce893af8f62b938a30b9ee140679468b6da87dcb904590bf2c0ec6bf4dacb44333cb5e7f898f59a3b55b507be5800814443264928d26d9a081a49d624a3a6117ff0f9a8ba991bd5c24d3be5b070ddc1690b107c364e409b2f918a55973309bc190a8855c1fc4246a834b272ec65f5187396a50f834c73f98cdb90feb66ccd41cc1fe802146dee9c1759dab591f0f30559fb9f532834a3051f5451b9ee2033dd1c885f669b816925a31bac849fbf8903267c797d724c66377e57e73334170e3726945e9e8a676b7300e3bdeb095aed93812cbbd1eeb604edc440b5c1140a930b455b2b98f2c5abbe57e8fdb825eb257a08d5dce9c85174fae2a451505c02c6484da562daaea46450b7cca2433cdf8aa7590197b726a80062fed85ff4b3cf177fdc2408850f1422261def1dc3a3c6e524597ba759b18431c7b944a78c9487d05ffd10d7ab0087165621e636e4f746f77b7a944f8d8dfa92059e6fc9641eb6796361f3d7dbbf5ed73573bd9bc5de320cb9d002b440d850cabe74b681a6c3d824e08d33a0f737457abd38d3aa32a0fe6ae090bae708c4ffe3f2593aa37e561a522ba558f52bc7dbb17ca4d6d8a44c34dc5b1cbdca332329a82af99aa2ea862e474d31290ce4260e232b331a250d7c744260e0263f580e785270e134eae92b773ff44eb47a95385153c95e516bc0e3060abc17a76eea8f019bafc47ca45f087e8fafeb7c6b7b36262bb4a67f44e841bd657116c03ea800dfcce6ddc1464f5f825b59e790de2e0bed3f47afe25cd943ddcd5fc09efe37c84445bc3526647544c3c64951b41c06cebaae48091079fc4db8b52ff2ae6db4316fd4516941fcb35bd4f9606bf3b58f69c225845f921a969647120da3f119df1d9a367e44649c7d406dd4e0a3140766b9e4ada0c981f4d932fa6582ac534c0d4d83146bfb9e7a38072b00e5668c488f341cac4e2e18021ad114bda16d5bab3631957a6dd4224140e51f5367c1a45220a8e526cef79dd7e377f91354cbf7dacfaf6609208aa465c9f4f44348d9d5925181b9c224ffb082e27873a9c453114695ab8911826ba2dad96025c61c44cc2da6bbbf140483b435f79195f18e050327e2f4be5147086410db4700a6e606458cdeafc806cd14f5efcc7fbd3844131222e4ffced7f16186faf7e74c5272290dc23c8079a4df75f5fb7b7f4e5c6bc1b493c50da9316e6a7df938b033d84c71bed0e701b5f4aa0ba6dc3ef2a777c95aca48ad411564f23334fc24dddf4e152d374a6b2b095126312f48859745c7f915c15fa25cc327018f764302410eec30b305971c6bee1941bd7cd7b4f4e8ac54421742b56e3766b8eac7afac20ca14ba2700d6d9dfb715303293ebb7f19645c8238c3c24b648c6bbf8577468eb62cb4886315e60161986c3b0e5753efbba113cb975636091b003a9fc2adc3ec791da61de040f59729c8fbc443079f5226a9f4d6f0c2a51050cf5721395478d71b37e88f64b87f9caf4958ab5efd8280196a313ed0f05a52ee63422c91af865ff2cca558d2047f8778f64b942dae738c8be6b8df5a2b91bedbf9b60776f2358f7ba4291c21defed5accacacc6487839ccae2c3bbce778be4280d58571840152b3c8f0b1d73d5f34216006c2546e3a4e79b39c0e4c911a54fe3669c75816950791fef2a2419196cb6dbe8e383abe58d7ac4f192fa1321dfe3a1ce97c27c5ab2a7e3a2178e01cec80eebe50858435c0034eade20e00a9f7261a7feb45952fa55708c6d5536e7b171485d4a4ef79d2a0124d27196e966cb4aeb035017f45f2a4f770c0f7240b63c0012891a60af9be50b49d07c3377b44641cf3c66ef698f45ac9123bc7869190ec868cf6350539a343cc9f30ca2c6d123c5929f740eef6e1829c80f0a4c656c6e1c4fb0f148e66b814a698be7fadb33c4c3eca178dfdd2b19d8a767611cd46568317b0059c9c99df0b08470ce4d3341f3ccb8edbcb45a3d18788db50b46d1407acc46636e40b63cc17e22b6acc07d6dcb804825616e3b3b5ee3d8924b899083d40b78dc5ee9af0f90791cbd2bac9ad69571dca67749752ecdd9d749d90f82205248b894ebd7f012fb01147149daf9b2b66f6f34fa53235dc140b6d4b2b50f7b56b1e233b833db7aa16f47078c8a4e3d5802d06136f7c2ed4fc0f8d0dca98add2b28a8f5e2c5741615cddab2ca42db7c4db55b0a4214ae7ff9080e2d8b550a50aa71aa76f97a78fba9134c2cf3e9a2bf0840941e046590a3363f202200bd281aaf8dbd2c68c27e835e18c9cb43921821d7235d5966e2170720662d2f79f6b390891629b1d6bfc589ebd3a75d1ec84891bd0f14c5f923718c6874d4c225a1ba4360a19175e1a97377a367791c25dbe1e87ab1c284d8de8cf02e77c9747989be3bd652c7bd17efe2701d5a5c7deacb6c14b3b7e009c2a55ff9a33cf9f573c42ca5f77e5dcc686eaedaefab7f5d27189b8e703361a241a40ce5dd9cdfa02bdf026356d9582774c970b131ec9149c005fed25404fe1a2f24ecf2bbad998afb954c066f5c074388395d366a398b8be2b1e37bfdab8cf5d09cfb77ef17b911c930346b5c2065557be55e05abc1c3d06a17ab9586feb22562a10bcfe62267b5f4ac2393481ef43d71425bd2007f959a1fc33ad845b4914e6ee469ec77b8cf8ef814aca8c0073b68aa0fb55a533192600eff7e1804a6b0e7b93764bf6e43813efa856e87d05a1996d42fce2759dd1c4fe9edd5f0be5f401b582e5c29a2910d7d43830333f8f1aab20a5442beccbfbc30569ae970cd30eff149c2eec98b10eb315b332153f313e825026b427ea896da68ec77b5da8698aaf4ea47fd3b063a20a1921128a6cc527e1295391d79ed5e9d606c6d9e727207fd7d82f25ace309f9c37c328a3bdd84a619053526842273f0c76f817c7d86780edfa21908862a2ab832d79a675b94367ba2b0ff08804225c2f01282ba48be0be42a43d1b282d966ed43ab8d2320b9e81d33b9f9626da10aa67c88489647ea5e78bbc5c74d6997a81fd7743abf5fae5ae11be7ee0e16811b8ac22b76cbafbc95c6ca8327e66c50a06286f5f7f59a4706fe8a8d943247acd654b90947fdcb58b6aeaf43c39496a346ad0cd2a832c3e052fa5fdb59e64d3177352c364efa37b5cb0f4431721936c35ba378035db69eb7951bf323d1cc7a9a0cd633891aa7d911f3812b88a0a869f98121654332ee4f6c0087ee4b1494b4bf4336a6eb386479e9ba4494bee3a902d12a2cdf7a1a422989750d687e7d9dc1b94aac0c810f27c67a1809ceb4b29cb5a8c16ac2d53ddf20b9dce8e354b4424948cbd137c5e60cc4554698022d5f2935b618c863900ba9667cd438e0811b969e66023c7c63b41c9d297c5057d60a84c60b4cdb2d7f9d61b7336feda165b736ab13409cecd73b700d661dd153425d061c9c729e6123d86e444f8d03750ecdae9c9131169170f41eccce78827359e12a7fd60f74c35711a2a4bdc34dc5faa0ab264d1a04e2b913b47aad93f86856444a3c02a3f2fb744f5b868558004e6413dde6e5172bc542564acc945aed3ce577dd2b0f7d7931009a7738660be304bf994655386447139d04f0855aa59c7710b078a99b08dcb48236018a420b87abeddd1df1439d691f2218abc5c1490138e6cf972e418fdbc682d91fa3a1a4e05459af0e0554018cd51e469a7478ad524db689e4598b130f348f3c498dd6dab84828e38e6fb3b042938a7a710e1735c291e23ff9e87aaddb405b722ec5fa392e730903a0b7129fa05156658efd62fdcd593f14d0bf742fc92b06da7b74b30f690b28a9c46465c0c7b6b1365aff3c8fa88f44ac89ecc5e972e7e5ba86514c20c01217abce3fb9f62fe98bbb0c27ebd670f48a1ab9d1a9eb11a76332f870728b367e26c36ff35d96b3cff7a3b6e4f5e37c9c8a98be05dc89a29fdbfcf2a14d7bed20059ae4986a7beeadd43901691181417caf9dbd918ee89001965ace7f023f14da6b374a0b2517222917c385bfc3c642ca33ab3da2ab345311625525c9eece3abf3be6ba209921107a6e2b476408c5d8dd82f1a19e16abe2ad42811ea35e2647fd05005ec64b9eb7f2376e18678fffc60df4d72dcfacfbe0b9af1d7168c4ca52f919bc0128f3ae654ff393cfc91b89d99818f6110a456cf00f2ec7405fa5ffd1c99742916320c46848e3385764d329052722e18f9dbe82fd7f40de0bb029ab5b6e5089cd3650947da2cdb7fcb7e34ddf76ad4aa9dbba0a8e4ca070680fe23e9db29e31c75fe405e3bbe59d3f61811369fa882481bff528624ec9f54423bc0e5d0992863af94ba15a43e1524dc851c71bdd8e98d679bf45a765a02100b76c78f31a5f9e930d6a475e7643ddd8ccb3fce18282d538fc3bc3459b36939b1cd80dff668d73d07a296d166bbee1d49582c5e3e53a9e2df98fe5321782f1f711ff79a7e05cda8a806966e593562d490305afab6c4486e5a9ca46db87d3f0b92d1cef5abc5a07ffb7c2e1540984b316d9335e1535a832da1ce83284a095cc73a90a9e74f8da80a3c621287dab220d8acd6f818e3cfad5e8decf0aec82d1d189ed37937e72965c6a6846d7ea9f35b49a3969e2adf7793c08cc0ec72fe1b79e4db9c0c21b12089830ac93798129148a72df6f55f2bbc7d950ca4188d4e77b14617a75643e6c6816b4c0159bab46f384fdd6e9d6341a41ecc03acc6aa46605460200543f58585797fffe0e3eeb7d97c62c19a338ef693aeb858a09ecb6ff981f0bbdd4fe6b2c0f2149956ea531d956a328eb6899b4a7ceae8567aee9c631326b4953bfe16811bd225546c03d5e48dc32352f1cde4c104f495fe6398228f834415c8a63cad91ff552291ca8268146b0ce38923079fa643249dc42809b5a4861d85ca6892a659a8a26d4957c9c5606a40aaad1b2e7f7b3d3a01a670fed20c79693e4f2778381cfe83a93874ff6c13e5242f39b0d79caa9b07180f356a713047532014741c0c5342927156127fb24ffd86910bb47e96fd6419765c420f0c93d10768eaaeea74d3ae9504c22aeb9795c6f82708f85468179fb16ae7fd9749e4b1328336eddd4b6fac024a08c1550d5fe53d4ea3a6d4bf8698e80027737ca57d3b7a013a56cc52b1a884866c719e4afc645f8a92cec2401243f0678afac7a2997fba9c359b0c96b7d9e053e2d01c260deec973940aa848de9f917d273949cccefd6d65f99c8fe295170cd981a71c2e67694de3cd23ec63fbcfb7524ee1384ce96d416518659c68dc9b146758eb0ed660f7aa889d6b5f160eb94a3ced03d9a8e58a9e1635351de0a13c4f8887857540963322658a735e1db9825b30a785addfade2aedb0f3fabb31d158f3a583e1f814bb2fee5633c3a01c55e603218cebeafabe2ba8d47fdd5344d4c5a3ee5d3ada140a394a58d7684e10a70ac568740515533574a27e4d44f6a598016a1c26eb0ed09ffffe94280c6f963b4b71d6f9737dcc97a4a2cac0b4b9e1e8fa856c4ba9fd6f11d1c78113fd25fd28e3dd06d685b3f7109ccc64e3168efbb4958e75d3754ea545f2d7e3ba47bc57f35a8ff04a2ccf5dea01772163145c55c760e3bee114623e9cbd3f07f93ce04d932ddbd8286388693c28a65b6ea109d21376c8fe4fb23358649dbbbe292b64410871703a33f63a4e478ca601672434f7c73a6f4a12eafd538b310a1abf68db9230e8a5453a07569d733721da75a77bfd402c562492de6f1bd36b6c7e7ed6d033bb5eb836bbc2fac9a9d20cc3c75b55b1f090f9ece4769cf4095005f5f7daceaed0beb97cf384389143c0089ab4aa5fea8f9e2c221668cd007d263bb410c15c200ea90657c04601c2839fea75153cbe0ad93995b26f695d4520ae392bc4825fc6903ab65654ad9b05ab3df8f2871f73c6eb09abff48857190e76eb710bb5482e79884fe99a111ab71b6baf73323c07310c60d2eb80ff6d6f71d3c3b3b9c63953de8c59e84f6c97a1263ee47708c7ba6d3d90fee672ab971bc683672f8663d856db7f30570787c593c5e25a1751806e0efcd7589877df48bebefe4fa52723e32f639e4181727f75c6b04f66354b824e8bb41731af7b52821f4fc403dbac3fa39b6be89f5b5013b2d9de14a5f9ccf7b81c5f85d389a372a2847c1b8f3fa8e33cf00321ec4533ca9b4593a224346f4f41e3c4350460e736c70b8006e1cdc8d5ebd61abceda56f04cf0d9665fdaad8f57bff17763899c68a58ec1e26918261e86c33c1f5dc6377fa12b77d8e56774b454672fe893444188cd8315161f3bcf3963e744df12a3d65e7f7b54a582b357f2d9053a97f899d53b874d81bb071764d325ab961ed2e13824deb3399c7b3c9d0dc850174eff650aa3dd95e75c1c9bc204a48307ffe4941534211d4235d1c619846e6054a441bbd6b126525132048b53cc3b6d6d747f662aee15fe8170e91ca827c8da08b971e37b99f3c2ff4d7ea4f6107b675b8ef0bb067f9aedac24cd81275590e0ad439a4af58bd656cadf475455d7e1949c497a279d79c8a898be16d507be9e30144ee95b082be56e9a9a9b9cecf2fbb9fc74bcc296b7c245703afbd9493c276dfb77a693fd69ab96aa7b59da092a9bfdb6a288ad507221381f21fd3d76ac2e4e9d92cf4c5b3c04d767db1f78bae77072af9358b6dac82cf72b7bff43de9c2c024f17843bccff3837ba3fd5e9cdf2fc3948038911d654da6d4eaf388e3ccd326d7393e1a19f862f49cc8b4f944b8f956ecf06ad4ab92f88bc32310ee34fd9e49738695f53f1f56520752a9795b470adaccd2705d236045169ba1d73a2ee2a4289a9da445523603d1d662c8513792b194c0063fc1bd9539ec9ecd9e420e914d9bddabf824281f8252339d616d28560f56c86d7c56d59336bc5d1f3dd767d5cec9dd90282f982904e893cd6d9c5c0368504831cce4ff4d195db71a67eca3b6eb5a4ab10b18efadd42d5652cb1bdc022f64266170b97cc461a7c3cce2fc3a429125b8970189554248b771afa689beb26322e25f82084f8d244e43038fae2409f86117ed3b258c27e4e44b3db2d1dfc8af91c714cb0a0f4162a3c36557dfa40ff4a9016b2dcd9df5ab8268e7e38f686737520c2a131474c4d15302ceefeefb4e6969a18c8e4876e9b0737f5a4276b62e575fe5a8ea2686b17fbd3d33908b314ccd6f76ae6309883a10c831be7847794410e84ac02c959d47d8dee03b4e7d3a7ab072ef1d842e8f1caaaaf944001faddb2267c013b420963ea5498761d5dcf9347dd30048b06f18cec2eb9989527f986f538ec58f89880286bb8a608080fb5534f193e4a1021427b126b847c8e45990f0788c3eee02b63ae78421b33f152283f751797e1aa5589a80abe248b6124227e2a53d5a900a99e2367715b98fdbc243d5be3c7bf1584c87f1ac96c4cc4c84eb78a3e7b6d33da1ae8d9829936141ded95cb9d95cb45e354ce3421b64f9cfe8ee26686983711a03824e5ba26ee524ef957a9c23c6a3a5f40e719c011ee05a25b8ce5d1a0883b9e5dbde841f26a4f6c39082a2e0cf7796f27595c6aa9b03c35ed213a7913bdee2752ba2f3b6f65f3ee52f052a7183db004eaad07fdf8de68b6fa7fe85d26648a0f763fbcf840c6e16ffa92c8d16d7fd72ec80d7486ed488a7ca8ce08ac612e8181691b29f948aefca4a22d2f67e8e69aed683679d947bd79222e806d49177651a82aab74b6db307bfee2232f944b6356aefc6fd9e00f2cc3ea20bf2552c744e91daef6beaf798eea20ae7b6b5a72187c76e9a59e1e45006575c2e9b994b7aac914dde8fe0488c184ff28cbd11b4ef2420a6bfd26a3d7c3dfdc75c3fb33fc36bd071c6eab2dcd9031ea5c6a4b042a8b58f9d02139098d10289dacd3281e5755f983a7a59d06d3dc65cf12bbec695434fe7b1071abf485f4b8722b23f4979e48abcabe0018ce60741ae4714a2a48ba3692262b42cea1186ef1b72b4aaab5785bc68726b4f6288a4ac51b5022355fca987b673ede577e7646b476ddf77036f25fcc85b245412e1dcd07210bbb49bc28f704612a767dbeffc2f4ada7352bbd564617a656729c5fff168778d4dc697135076ee858cd67286922bc70a11cf0612cfe26e3e911e5eaabdc560e6a4ab14adfd66f72f91074158d0e2579b4cfb5ec4dfd585c74ee31aa74fc611693b819143f60ef2412fc8e082af5e778e6a866a65b5f64936d5008f3dc78b5b97b02007d47d30691166f07ceaaac4eab1aa0b5db8c33278656a0311274a1c5d59fc3a52d4519b981ba000910e6353f0fba96fbac47d7299dee6f5d21431ffb26611897b2a1315c22eca46a04901311eceb0ddc9fbea84f908ce1c5e15b0b339ae1fe4dfe59453e41a82fa0454539d28d4d1906b0291bbe690d33715f115cf93c04a6ec3971ee1049bad621d7b212a5a425fc07f6b29b43d6d43978a7ce029b6d907118001fb84ed8c3fbc7025e185ac0c714945a85061e5a3228a5511c8d8aa9c944251f2c2758a5b0c6217ffc17ba433c80998a19d88ee747910696a90feb82a058a6eb1fa9cb7ee9a22c52a1b11dff1c07c3b78426b21df1212b6c0cdf0ac3e81d48b24249a16c9011044ce32317cbf39af0fed702bc6366d437a0e699768d464c23454bd199435644dbbd870ef686e249b37826849b2bfda48d17b37215a879acdc6c2c744d7bcfc38874f8267de876915f49c48db43fbf560e3e0740874ba887922379b9f957c65214b2dc83a12ee0fb75ee4183221257dd759826663530dcbb971e24097befe4c571435794c69577c6ea6d4bea26291b4519e45a8af3606eef6a8e22a47df31bcdcac7b471cfeecba6c08655f0740eb9f0e2752848a7e1d854ba4522a22810010ad104a457f9f26c828389ac052b9b6c9908f3ee8c40c9fe027b9667f1f79017a6d9654c7d9e059d679cd7f81e1570bbf353f55ae883b15eb1495d9d9e9a7048eaaf04232288286beb9400588798c6e15ae031edee6ef5fe6a88fbd85a08fded30f69baa686033803c3b8a92f9341753d6fe6f9655d1fec51e7811cae266bb94e9f48ed4a7d337349f17f4c9679b8f9e46614e0c4da5942857ae9f43283c491b15e721113b312b64d8366e1de3a83b2e1ccc2603dfb600b42ea331ee0189624df3b36c6617c8110d74d4e717c437ec64c4ba5be536de64d66a8e798256c7ab63737262aa6c12517bb6374e52c8b96eca0bca6a1e699175ef982ec2a4b1d40cfaf934cb9f034a83b462f451e44ba6c2682a6dd6bc7b5d5e96addaa116086098cacef607eae36441822bc848cbf84bc6cf4899393beb589d9a587ce7190151ccd006080a5f82bc99b3d60de41915e2e841ca0543d5c52e7074e171793e9c82093f0284cffac6505b04832ef6a7e7f29083aed66752311e5004632b2c0949f1d0a96c2e69dff76ca03de6e6f84dbd258989fe7980923ed6f43ab0969c6e7644895903c60409aa32799d872552d8e56eabdfd2a886e3aa14e8a7cbe53c6b46fc0cd29926ff3cf7489eb3fc2ab364f2715558e7509e847f547020cba5b59f696fd5a414d4d1dac2190b103683d6c5b314e3f66a040778d442c152554043279b6eca7a76c6f9ebd8d7ee5530eb16f60006d7ce3a5727910228e4a098e9ba1e651892ff20ad0c7c5cd3042f74434753aa74d518aaf686943fb976eb03fd7f990ba8a4727566cb601e9c5c5d314dbe67ff6ffb2a1de0d0f9316fb11960062157c0218db020f01a26c66a4a215a8073fb1cc780094fb3d6adc56da352660f88f5d9a6a6bc54edf1ece786990a1b73fe77d82556e249870663e6f40bc6f5329c20f530ce3b2386d05a46898b0da9669ac87ce7c5d434b8680f3dd55620d81ba39399382a9a65b10981f4343f0e3d55a9f04eda727b6958c912fdedf92417e648e2a841b09d00a45b4d7a2ebbc70f916050bd6225399ac1d9ddc9fc8f5e84c887b0f057466230463a2e8018c655438110a31ab4f180327c5d799729f3f519c9a179281111f777720fa8452996b7cf12144f02f78c3cfe9260420b66ad55d91560263f95e820eab8b3266e736884950ebb3d45042abf0cceba61a4da638b1980aff020db6d50ec754775387ee80954639178a8e23379ab46943d55379e5397dc46d724c9e6686981b804a4ac7c97d3d88580ad127454c2367deba7b19943c8497b5c3dbb874c46817debb821458018e26a68d034b652f6d913335facc96c76797f9018ea95e531e9113ff075c7c1a487fcc5dd906970483843914742f8fcbae8c23097dc7ed077f92e31807450e3f4f92f6c893084f8e02372119a1ff3d051886b323e8bccd49af0ae5808f663a50e4c1f379001a76e0f8acf93eadbe95d9597b38b9aea7257093ba5feb4c732f01b4ef19820331907647e038a2c042cec1bad518202a5af09b45ea50acd65d89a6ea162f61dfea23a46729d25920c8a77f6c2d6856b6af850640ec4859278605026ab71621f5052b5f15ce58f123ea84a96a9d3242440bdcb9a38b25a9d4aaa66e9a2d9c087c58df2a90b515886d19ccbd3a8621f4d4efc9c6308b8803204ecb4956ab38598c9bf4a472995a865a13a03883fe74ae624cb90b77ba038f18e1f42ffce3007e54117aee013731988b924fc2fea8b961ea078aaef5e1f2a3104b0a24a005060689b412a3dbd0f32fc6acb340277a590792d70ff1b61265dd1bd60cfc292c99e0de8d47c8bc277b6b16b6d48ff921cf754897f6f48f938806ec526c2a20bdaf5053d29fa0eb86608240d902df09388fdc3419046de42268dddc0c5fe914de0e76468fc21431471474025fde4a93427713c15490fdd336d9694044bbbbc6cf64c6e3bfbdf7f8a256692a1794775f5dac2e850ed08cfc5c5d8e029bd6d6ea1ce5db3014037400832363ae8961cf83ad6e20a23773197977f5543fd5b368c5580bd66023289e31aff9b5fdd6d1bfb672bab706cb65fd9b763b44501d29fb13b394e35d72a27a3d6d5164915dfeb80e5371715908f7042e88453567ff8e8264cc9b95a83f008e1cfe40c340c1d0f348b7eedfc61bc983e6914dcc8dd961ea2fe4eaf2e26c891befe031b883d03684bda6c8893fb4274d96276002de9164a0d70cc848a1a85d7d2f7c1b1cac9571360d32778ca2329aac0f5e0205b6797b94a3e0bff68d9286cd982ea8d9dce2fbe25488e649c0b3212a9a241b181f212db3d4e2e3002a9a3ee3dd6e89f90bb7423d29905089156209a31c5696ff65f008cfbe9b94f868aa45b80ad422f5eb109dac51d7ce6d88321dbba17cf7150af6d9c7622212fa493e14f4e82fd059abfb7868cace980992230a0e0c565c1e574825ea4900184dab5dd4990df49e86afe1c6e95ce51df2149c8f67b18c0da9f00f46eed63069954b1fccfd3191488e60605d63ddb63aa5c69f81d5d30a4b29b76145cf7d88f0e8679d565425928f1dcc979bb05c838f0fa7b0284cf665a7735063c81e0a0fd9834f8b744937f7bce41f7e441fef2600aac612ead2a26a33d2ade7dc481d968e6dedfca5cc639b6ad50e333250e1480817edd2d5da4987d4ec7fb2edd26d46499e93c1f250bb3523a5a60272ab6c5656011c628f22be507a1e4f3d78077eef360d1e36cd45a12e437e36ef172a4dec606108a385423639db00ada7d4ce213d4d1852801f54b03c5fac03d7d2420df8b1505693814570ea7a18ae79a15f734088c1c3af78b6318548fc6bda3da2ff16e2cdbc77b3f268bfa8bbc20ad3f7c73cfaf10f0c19aa900a126833fb55c4b2bd61562b1ac3adc5a85e367da2a705d390b619f8669120fa6e6e7e971aaf6e9e124235766b8771c16166328f4603a47dd2030e1eb250f90e050022c016ee638b93c1c80945faf14fef0c3ad9df61b63b6732d489307a77b66f6e71044a24685019fab1d306f8564eb00d94cc3c39d5b7bdcde528ad925586a8f6b09ba416e705fa43e1cc4f4812d1bc9f033c8aea3555b5f13a22505f936c34dea2d63fc14b90146169fff491e7d1e967b70ae55ad53687521ea5ee2eda587c8345b54e33223539b242a78a1d7c2355a7e4d662a1eabb561b58214d27740262d78ddc3cfc6adf5921c80a83a90eca79d8182b6eab00fcc7f958ed9bc4b751b5c8eb4cd1d6c576ace5e37a818c607ec94a2e6547c4df961ced5dd056f1665b7ef707c48781dc599e095b9f92adff479019ca41ed165606bea19676763d496b1bd4789b3d2bf0030582c278962c0f18a50a6c82c704f0a1b0e8a69d8a17c706d11867542b21db4fd2c5228b0c59a1377598434e607a2bca0d8bd544b01d960494d251934445b770b0ef1eb0b4b9a9bc8c5411a2506d32a4fd6dee4fe8fbe74fb8a1e9acea6be98e4dd33e5916f3b2ab23c1305bca0927350f9d942a17d3f287eba17761aa84acf344281be2bbc57a0ef5f8f3b3746218b2f7085ad0c3e705606243ff924147fa51eb4104675d2c400bbeb21cab46fe1dd1e89de1a23ba5ea310f3177c04d4a30cb4dac56701d337dab85698e1ff5f260b970cc4fd42a128182b4236bb29928a2ab6d1415ca432e7005cafc7c1f913d469ae935c1fed00bf65b0b53aa893cd65ba10a93c42e51e241601ea9921bfe71d1610394d37d498ef0d313f2f48fe57b86c303395a3423ca250db21571ce65440c4b5439e5e617511a89fb1f6334b73dbd511e26a221686e4719594cd654d3c7ae20c95f665edcbab3f05220e3ca86e82f97683ff55dad1725c03cef2fbbb2a0d529f9978d37dc9a0e4508bb1d8b48cc1cceaabfb080ecce7b9e3928a7cf1201f3fa8fc4dccb6d7be88fc74b23046c003b8793eba0afd15507735f2c909c00eddaf29715126caa1abe457f5119a7cdb9fee7354b32dc58443ab5c1be2c109d4ac4db6eac0af76bae408349b3f2ba27a7b44b4dae0ce4e93252df816449d31b1416c2a1eee32f40dd87a8ad8aa5816cd0da0f2ef00f1c62c858028c4d599b588b5628f9c1e35a140aadd687f134892289345bf826b19bc5e8fd8c0fbc3c6d0e0632e8611f75e125db67d0552a5be2892915f824424eabbdf868ef030aca4928c5cda5df58f3680db9042115a832952408d4a8fff0af6daf71731bda326c7b9ce5a2c02eaa029a2cf6e146ccaab686839ff8db415e52ffe28b171deae469014b8014f968ea2920ee9c058a66d51fab38e13f30e2596ac4856a30ca86c1655b298eb2ec9f0324ef046b273f5e1aa28e1938347c4326c35104b598f9a3f12bd3dde7d69e28cd322562385e11a9daa21e31bc546ec270e14e44dd5527b8baf7d84b2a2de48c040a54b45c008b00cf546717cfaa391b9616574fc734fe0140d72bd71ee896e24ab73ad732f30ad6accc6347084d20951be3a503be94476d36351fe7436ec73b57bff9d0ddd215c6ab98fffafe6a18b36d6f12dc0ff36f38c78f5f1b90f03fafb18c7429f7d740f3c0fac51fb73a083c53decdc2c3db6d26cf8d237ab67286dc504608b736f1209bdc62b6c48d5d8d0b43c8a6f3ba67936e25e4a9f9d58ded2a2adfe1a9a0768a819321dee8a60d2579b879bb31ad088756635b14127d5e230e2edcda6a4bc8a6db9b863a45a9e310a80e81b65a7497ec48d0631c51d924e9e50f4860f5987953dc8ccc905ad43e2352ffebe71a88315801ff0532cdaed640f92d93d9778eae27946834c59559b16f95ef84d5a0adda07e11ed842a449bda7ff3a434b85cedc55b6d7dd2d74e52aa44226ebfba9e1435b5a48c3e9998e8526fb19b1c859ef0938ceb6cfd2c8f1c1a17282e350f0f9cc14e635a55a6871ac8108b28550fc436fb844d53821d73267bdb4a5fd836e464700db9474bb91ec54157c6e7865bee6f8f858d1bae1f3385fb6bc159c567c37ecc4b391e91c8321f027ba2383767a0f172fbcd6c36b4c413eec9c35f95c19c918fb810f25b1f548e0ff10ad35099d3e8449a5f297575e8cb5b1775493fc9eb15b5f75085bf86e460b66f98a2701d77a153467aaae0bd2387dec49ff6d61a14277b4935a7b80582bb546e7b5e04c6189e2a7fee0b09a6ee747b875c800275d220ce9746430e36b6b497b4f9d0ee333998b1a50a3fdd4ca215adfad36db2dce03c2a86417ed4d9420287a2aeb5d1f3ade07a63b43ed76cd083f64d48ba4b64356713320c705340117147f7c4ab1a9c8fa00c634a77cf4f9114fdc06a88f4947693dad69ae336f930fdcb5eb38fbb111f602e8d6eb532f57669b6ac316d6f2ead0b54174139aa5a75cb8505990655c5d520441bd02e4c8f3d8e7b6599046597c848fd7516709dcff9d95c8b437f526b4631f665322ab2e169cea247849ff78784fd064be20fdc1fdab6a7bd093ac984d5ea6d5f398284418930c64ecc2906690b7107505e7018362a5bb82f763552f50526b517d68546d5f07bd3576e0806b7e3bf6a9124970c63a57ab6d09b4e9b906337320e10598cba9d342dc82bfc04b3a3bb99fd8c2d58daa7c6a6700f0ccbf74ac0015d67125333ecc829f45e5e5534d982f521842488016884580aa4e94290825e21b4915769d64d4d0dcf44819007fddbdf36d06abcc4b253dfd1526708848f6a072b13e81f4298b8853cd14d3d5365ce10a8ec7f58544d62d9ead199f3e5a7f8e1688802931ea8f1d93a37e2b2ca211df316d5eba9ab1828298c3722667165a1d7c51414aef4b81a8a50604405370c2844395c03c93358a2a2c457b3d1a0f06bb27d72fb0853f157723b3232cbdf799c32a5280be4fa09f087c44ab54b673c9cd47969a7e63aae3534f368e6f54288f0cbee55d1e6c0cd9d6cc39bbf43e4439da6b02e625f9daa2c461e9024e90e8406ecb6ca9f62f0609a1b72fd2d5b83c2f7aed970fda740756979f58bdec2d2060605838893dceffd1e9df04393627ba526e07926a1b51872267901d98c45b1133323282dcd710ea9ac7dce445e8bc2d2fc1bd1f5b1dbd3b02a4a4e2f6527e414368e6c3162ac1f010202d06d3576835c061f3eb7435f55b593e04b4d09e9e204bb700ca4cfd576488a493a9250bff1951aacac96efd259bd8557d4da91085421d067e7dacba3ca70311ea5af9d85c363c0852aec14d0ad5c63a4860ff018c3bdff880f380c5fd4940aadd1c388744417c8d9459538010fb6ae862aad55c5774052dce8c3c981974583c72144d003208c8b887ca7156a95e6c65e5ddc0a0c6551b3307a302acee0e901c18f052560125e0ba6e10559b8ea20e4077bc6fb7f66f4fa2e11815718d97d6e54b74c42a6b9178c9a4a6cdf9062b31e6b76d99d356f2cb47edb80d320288f332d7d9ee74602b9b0e58978a43a26209f497c80ccd12412a3a6de8acd4506642da70be3c161e499fa5559bbc8fe1cd9401712d3c2919cbf61b37925ff666d57c292c79dbcccbe56c705cd286bf3a8d9c8acfedf3150b218c3ebf450ed14ff2f992896f9aed7f2ac218d9e7693a890b314bbf927e4ae269f844163898f77568b87d68ea31ab52abf165d9be23b22dc6b038468adc1d82e9bae6ad36dc07ddb2d2d85d06e045d818f3bdfee5b7613bc85c2de716b148f4df1eb7d09310a527a607f62834e79532c0686a72c298b3547a8736fb46384f8a0a4162fa6049dd24c192a871e52e738c28bf24fcee8f5497beac502cf25de2512de394456c31f831bfa9cfbde858689f7946ca86236a7002a18ba3fc2125cd0b0f57b6ae4c22c06d507f8d7ddd0543b3f2ee0edcf22504f315e5457160ccde3d90502707e4314a6f9243dcac19a4527d9ea6b779b2489492738d8af65ba10dd69ca1e06320c56e4309c38ef68c3775ee23ca00be6e9ab4ae35bd8085c0a37f808b4ad5aed4ad5ee7cdd77e3798f495ddf32ceb4dda490d05a4e9b8035a4181d8b59402c40a13a1a965de7ccd25220d1dfaae687f6840fd4d5f00975f4adea3d2b6d8f3e75c632ac22a580294ba8e9ff6d804bab97da224d341d8ed01be0ef96187d6dc2560138b00848c8a5d77452a01e3c15e92806410493bd25582037afb9e5332e536e3ab402a68802d8c3f3f74423af7a6ba00ac2e0b9a09a2f2337ac123b7e60057d064a47759b75ae2fd8dd84acc507c3e26db1aadfde8e8c0753dd9a0cb342c747939c08c94ad3744ba4cf61e7cd0b4e5fd225251b3094ae4f63f25277118ec707568527838e4669d4dc5c150cefa2228c27f697ea4aab3ad443650174226e7866272c8fb7406385873501346e92fe434d947f3474deb9d0b49d8c5eac3263c0baa9d9a6fa84d3584ccc42277a467f33bd7724fb5913409b1853ff1f2abdb9e389c936b804c63f1af7037f0759ed7390af9d21fd2e03df79fa03735d1654e3c872c3930bd45de91c92b62083a7c771d59338b61892fe8d366355bf1975d863167459924a77dbcca3dcfb0df00327fb97cc4aa81ad1eade6350352ea978c5883ff6e466ee6d68d76d7e49970a2146161176695eb202b76e666924eb1de444f000c4cae3d1d1a21b6383bf83ae14c0ab2cbab5deae2e60ddaff1ac47b876b1576ef9f1fa31355078e7433a9b0cf22d9396d29ab5e24106e5167ae90b4ed612db5ece6ecdfa696e5c65b2731348b5a98993c74d1de8307af58bd0973505fe15a9b902c084fdbf3fcb31ff16a0fac9057e68a954ba0c7b7a6d83910cd217ceb3243aeac4f3455beb8a7f903211c2d02a98b3bd3b8a45b1898707df6421de3271c441e471e949d99e3aaa1469bc76f18bc2ce25d28f86b22c4c2cf9f80000d164c6138a5eb26857908454046d5c3d6edc0bbb18f1aabb144e8571806bd3ebc84958f17e861dc8cef88c6feb13fe0ce4a7e593a012ea971442a2faf22256fc2a592386c5189ebd386fbde4ec63133421d57d025c34124e51a74d317c76923e49c97afd93f4894d0978c9321f74da4fb106f461c167271ce3018dee87f92bf270b6bf656b6852fe91fbf509d65f9636dea443937ed10b2255c84849c4718dc3e14f072c8373652096223c55357a94a17c396b55820b0f999a71f1e1495e2737306cf8eb4fb9b8f26d9579f3474242ff30985cf503cbbe001a9d0f9a5a83be48f85faee95a27e380bdd1ea141669bdf73e5d4cd13c842e682459742f2647297a201d930e78140b20d56c77bb8eea54f99c67cfe18f17309e9bd73b7aab341d6a9fd7d333d4d5c9b0257457f95a2c6b04f4389363aa71d211782d34d7fa14923a2bac38408b417159222acc05af3b287ec6763e2afb6982a4782fbb28d657cd1d53fdfdfc3a40e27d60c72b46d2995ce79e77e5f82f306802e6a7c9b623a05d3a4ba9a93b536ab9fae0f3bb3b7c400261913eadc456df45ef36d95777816ea50fc15cafd9e51f6bd4ab504a6802959d54f313759a346b9b86c163cb21ba3cbc83faadffb5b64e4d788b8c9582be55e46d63a02486d1daeb36418806de9c0fcb56f22d0a263ada069f0362536543d964d1125ef44b84fe5f59da31043dfad152112ec78c592e09b0f9cdecc679839ba9f94ec2fdc1fdb87e801d5a8ceab9b17b7752f4a80a53c8e6ac79c30f0e4ae96ec469a49e0634f1c1ec2d72039d993e08a56d02bc4abeb7ff5fa6f64a143aab63cbb75de5745f78b1a259c727b23cfabcc728c79e93677d8e8d36cb9fddeba8feecce2bb487e3400912e95d49735aa9c5bd4bfcd2b7fb2f68e30155cbb03a7fac284e9ed7af6a4cdbe26785ee81d05bdd7a0af8917f1259118d24ff118738b8394abb3e07a21a8fd9209b304755fef26e4cf28a9324d9efdd887c18c4c6d9e57ed4c7a47694c034d7a1580326ea6fb27cc7c1620c5080fb8d0c519d2c7134435bc928ea529f7b676787730e189dc937c852a186598c29a3c9c560551db18a8f35ea892a102d686f32db6beed6ca2a38b1cf54f0e556bc00a14aec1f23524c9b56a2979008a9657761c816813ec9d9236ed8a06bbe01ded32c6efb9578a7db8bb5333a4f2253b2ac288f17cdfb646c0fe73e917219ac72c29acf9f64ee0031c56ce6aef356f64f8cf075644adacdec6beb210ad8ff4f2dd48a8b22d93d079d68533bd37e638a48e2e1530c3d5313e1434874c18fd73c8654422dcd4fb98ece9e1d0570271bef84f7d6f479ed638921715ddf56e151d7fa8f1d31738e3b232861b57b7c2b3d5e63d7658075c877aa34ccce5418bc2cedbc07f28ebd06f9f0bf2338a8df15029bc95140b245059f2f8e7d51c1736f50ef87ab3dffe9c395516acc9675e0931dd7c2c1611703ab9963ae622fcb695f4f23ce0f4cc9c498417e04d84f1da4ead776b3e3c19400db59a942723bc562d69126f73883af5fc28283ea800ae8439a75e58bdee1277a7317025583abfb796ca8c715917ae47462bde0b0016eaaffac05d671a75402d80b6cde65f4a00498218a9c2a845165c32cf4257bd906fa134d40b300b6171a932c9e82b1cdc104253bf222fe9d22a2267ad933d5b06670119d631b69c047fe10a1a602387abafa1ddb4ab9944c92cf0e3ab051f386c8de1d0267a76d0b5fc38918193d19936c04a219ef72fef630c127f75a73f989b39e696e96854949c703bdad158ee96540b533393d0bd3f63a5b3eb8d0fee29afadee4112b4a25f4099cbd50326594f1d09de7608380341b2ca6e6dc790d0d269562ff22553a75698b8f05e58a72e6b327b2d0a8c59df944466599d093415fc3a908f2fca16ed4893614cb4ff2768801d3b868fe83062741e002608b8219fb43a4ee1612b9b8c596c8c40fa9d77d84850fd42d6da59dea341cd756af8c29dd31cfe686d71d8d26c32089f9c55ba016d8956d47dc1c7d9df2d6429ddc5dfb3dc76cf96274e4044f36ec66c8ec33d277226bf4c41495556c5da400dd55982f327ad28c90e3b126bb507efab2943c1d293cff9bdb2b4345f6a2378bf4343d9f5340eb7336678fa4d766e34f09b45f3244b55cfb863a121783a9eeedf8c6c8cb0883bf4da19ced97a97fe97b1878125c5d173f9dc37783bf107f5c63cfc1e4d9f8b8f8a6a1e42b66c462c14a56a62852d96989b52cf51668fc093382801763425e9b0bac7d5b570591ec6d81f44b1d414793889a2704d5f8d0ffc596daa038d7cc8198cdee39576a4630e035cedf1e086fea74e4963ab32ecf7691482fcddcb26555d16235bd194386b0ead75977e4a0bc0b5c7eac20638f7051b462f403ceaf653743e04f7418fe7cb03d86a6e3b31918c9f7e2bb67b8ab6f705aa92a04b58e575eac2fa2591aef18e0d87f1c5e8b91aa7e792e37760678241e28e1a2d2e80f30f60c292f2eb1fa5d5dec1d110a1996f1ca8908bee38a469b8ccd896f823c21b5c4fe3acb9ed92048f4ca4832ecb4b1b5a852fbe581426ecc52db543e8138d513b8d9d41b736e62d460ae49fc700d7f8a7849929602ca22cee3e26825772b12b108ac09c35772c2a0b7d09da40fe402e76142246015699d83483f82a9d10cdc4e68ee6759ac30e23d035d4da2badd46fce864ea2c839c041f7576ee79bce7cb24599d0fda7b55607ba695dcad6dd3699657a6edbea9fff0a5658307b706bd6a5ae951162bfd5a980d2908e750d24da90ce4d1cfec7435eee05e61921901045d62c849582fd7f4b33a972492788a523611627679ffa7bccaee89673bdcc07501a97afcf2ec8df14e2115f51d61921f278525a41decedfff9f003f6c749f81b9f86c983be309e7cbf2e98d420002607c52e6ffbd6cd49ef25c790f21c8566c05d12d8912f148c04ee7579ddba290d42c58c1e4f841c68da3d2b2ff02cbd698e719c390c172137cb6a41068abe6f93639555414f1f8203df360a50279226008401b4ad36ba623fa1e672c3399e8f49b47329b17f744dafe817ced1f6918f9db78e08e82f09eadff2d0a4127db3b2f44df3c02f01724ba7e38684e9c1373b55773ebeca5595b812af3069c6de85b1c9ee97f7c5ef1290f4af516a73d8a5eedd54e61dae26805e11ffbccd5c4b78d0d570e5238fe15a03739ed033c2f64fc0697c19be9d6bb3f482f6237bf58d6884e5a436cfe3e6a2564c810bf07d1e46629b82f10dc61b4097c1e6a3afeb369a7d22bcfeb561cac335806704ee17409e03a0b8864d2168726e0c0b7a97a940c9a00939de680411bb4d9b4eb539ee79f89661730782311a1e66802f9a6878a2c5cfe136104b107f8a1c9bc7056016b0b17fdbbc9d8be053c53b71e6228f94f3a6e1203f621848d8873f8a0b578cf98edc9fed3dee7faa0d13110d59386bec87bfd5c4fabccccb644f3210312ecabd9cca17947e081729ad18ef7f10d21fa9aa31f62edfc0356e7f3c8a321762660f99e0ea99651715ec548d9e8724cac8fdb5aa7389a789c900df03425daa8eb7a06d69e6715a746aff5aca1aad71b5bcb59cbd4a1e988ca96f638e6bfcf8ec4b209a044abc09a91ef30e2375faae097c2bdebc2d6c174bf02665d1dc3333ecce24065b6aa3260484a9854f8cef9bd7d7e214f35ded62132dc0b537a4ca77f933beaa07397ccb1eb2c65f6c7d8a795580c80758b64177c33eeaaaee7e173136d6c9cc052d9bf180d6bbfb355d6eeac1662209b9e62997df525c8d2fa080ab8d13525e4469bac9c3a23b09b97173936afafae813dfacd7d6cbbd1d6bc4cbec28fd103f9cc8dc7dd46b389713921979c5782cfb5f508e15ea65c46c262e445db4d0600a0b615278fb4d7cfd54ac9746e81a56f7595b5ed59b0ac38a5869b8d1a435c2d3b8740d383cfbbeb2788a06461f05bab6ab55ce6d83a557180c2dd5b2f68f2623b56c2ba5636bc8af14254c8f92c80fbf4c374b7d699851a3325c3f857488c2cef02e76d8ac3303942a72ea03ec7697152024c27171e790a731d6c2a20867d10b0ab94124e4316462a6b17112da8d54fac15adfa0dbfaac46ca2e2b26e4782dbff7024f8b96df505298bb2e5390f0d5a08af6c915c14aa30ce496ca342a88ae2b773bee9fdbab3a72c575255688f05484eb3ffd865214bbc635ba002dd126c0d23645efd38b2f6a9d7b3ff228c8a73fd399d76b4d8310a9747e84d48a676dd1fad94b8c541797866f4f5bcc3f3f0a09f17a0c5887ba70eca6761c13596d74f4a4f018e291f81398dfb338a8acdd0bfc316e909e5dbd902389f265127ed049b22dd82e486ca4b8a4c5f10380ede9e567e0f58a287141c79eaad327102ccc76051b02621859d43de313d2f0a381b0d433fa2da1020b77c2b04772629377888aa9eceecab577909d5cc17d803d652cfe500d0ad71cb382b6de4d6b23505861ca490d7ad3ec7027fb64304f2cec7d047ddd6bbdb79785f421d6510bf413947b97895c0294875702e9fc7baa1546478d687c6d75b394fc8e2206886fc35271be24afb58e31822df72d70f11ef6ec378e10c73004a49dfd8c118f152a156c1f14481f6531827140143b3f4abb39f720c0692b2b38a69c6197f0ff6b255949cccd9944484e06b9ecb80fd13ca6a3e5f259a00f79a18e7b45a2174a22023b2c97bb050260309d57659fa7c6a4efda3d064eb01be8e463daaa69a2bcc190d46ff77ca15090366c88ee19a7ec6d4e0d1dd6791ab0562d5b8d5f9f38e49cd4c26c254e34c5fbe459bbebb84ae305593dc0aac16a89d897ec5d050fd5887cf0f977d1017fc5f0b14016c2d302af97172b379723ed1cc0ad9a4d6ce7a50bfa1ab62b0a290b5233e1ee379ca101bd8fd92cafb4c88f8cbbdcd21bf97f8696532ea25324bb11e2bd05b7dd67496731768bf49632e662ed2be5fe22f10035e3b0f57a4ce9e58d00fdf569231255ec1afc6b1bb97de7bd613bbec1919b10487d4044a4b45c075bd0df6edc8b2dc9cc4bd461a2f1ac97e62f3b57cf354f8c27f7e48072df515e51ffe7bc6461a264dc6ac27d55807eea29753444df1506f3d93ac5d6835b4e76447c566f5e628e7cbecfd480ec0a9e87a2163a23290c48deb4a5b1fd0d4c61f3d19d627b5b4f78d68aac03418a61941e443a069148608d7754ad0ed2f106f5286dcf13f3de5c4a9053009740d41aef9b84e993c96e5918512ff76396e3315957f02b0e793036f13eac547247b4d82655c9ce46a9ab91df898673f2d255d9d9284c1af4864941b99e78224cad12ad942d1699f9f4d94a42406b2f93c068e8c4b4aed0bf178d83f29bb2a4728077703725a609694daae00d6a46f345e26c87f72a4f67b2feea09a737da74cda50d1223d7f7b4a4a1630db7823e7bdd9a7fb1e979282320ec21fdd52680ca8425a38ec6a3b634c06c3fd921bdde69dbd4c846ff21988fe1241c4ab54a42c793b06a891932ca35136992d3c871b83990b2d18be78130ff536544637010f04898a6e5977674193d56ed1f6b54390ecf9c9d960da79c9febd89680eecc87d99ed1d54f80c96696ce03677878715c436f557f13fc1d45e852ed955d9b9161b46185b5de743db33d27ce3d916ae1e37c4d8b09fd056602ffdbbda17e5f83b5b8e3486fd4282602eda96e00053f68e80b718f4f48a132bc2fbfd23555a8a6c0afe77fee1df3e19d0a35658bfb51528fe59cad6214cab6a19f821b1bdb306b8b74c9f97d48be8b3b23cc073b2ca82e8270c3a474ddefee39ac8b81ee6963fbdbd8761b24423d39ec694653c94603d00ee1b500e23aefc0b23600fa468dd37ac324f9d8fcf34c1be9891efa6eb852715d821dbda0706340cd098069ff7f913be3d580990b2358ebad30ea7b03057cfb4f8a9cd5ea622337c9e79c43fdcb2f1da83551a6b89025a7362abf279c2d726d46dd07baa08feaf4fc747da64d68729e60929acf7a14491d3fe373e415336022c972cfb31455cd7494de9a77c34657791a7d5d6fc210900af6a9b4a8524edf800df8a827343d6b706272653778601be3d79ced59bae70252213269b8411f3d941af256e764ff73d643628dd33f5393d433bac491f43223558211a9423f82a41f1ddf11ef7ad39c1cced7cdc9543d62d56a049a2fe087822408858fd3795e236a8deabd51575ee892befb747045c48315db62ed1f272cdd7db284f22103807fdca56835b97106f1f771f4f5c412a9857333a8399708e979afcf43d2433918139ec82998d7c90a658a5b1f03a6506de536f829279fd7adccdde596c8e1db3cf25855eef5813b8862575523f472ad2af9bc592f030b8972e91f98cbdcc4a6e4bc18c4ce30bd84a7231817a9e4bb155ef33865a78affdb69fb73ea6d008f036fc49fb20315f98e0a6cff7c014b40bbcde573fcd17323d48d7c4b03bce0a08e1fa73e9a0957e7ec9bf8fbf54240966688f205e5445ee80b903ccfd1820c1298243c603a72631e811f3a6ec4deee94739beb6aa2586f169f2579bd8ce948aa4971b9e8d467ca901704d7305a3f8111da859b3d1fbf2461ad4091fddab4ba741023ecfe478f2e85f00105c5f57c021411e242a18b629f938d4d713e5db5a3fa0549fcabbd91cb723ab249632bd5d339c0e01a9074afb363a9d213496bf32be3ac9b04029abd89c62a36842144719ba6f3ed448d08ce5d47a9318c8c9558cc7612cf50feb0d757c983e2d20a5ca76464864aeb633e895001dc7e7fb824a8ae9c805542d0624ddab3a6ad10c0ca425c634d7cf3a330a72b72fc8b9775752d9e91d4e373238e97698e3c498d2b4a34e15f491d9d45cb6172efadc394466fd4487abe52e21487954b35ad02f366b16b21ea3c30c21dcbd7521940465b62652c051d04d8c128fbdf18442f789db45274b14c527d421a21f10e6d6e0f9a9bbcd4eb619c6453f461cb66c059d30c5f1c09570d001555b8d08f3b597fa5bbd7c8efd6d3d6effafce7c2b9f9bf53b136047828c8455743c2bd227a8e67e3cfeb016c4c9d0a7541d4785b10e2c4d1042bb5d0613117703b80d45527ec440aef0760407fda98f870470780d9b60d12333965f4fd506f01e446f666b76a97475a565de7c411fb219350f20ce2e40fdfff7ada2a3e4f142b922b3a3fc3fa4a2317fb4c5d74d9d990339a3de153e82d258ec5706f6c37826159563d1f95f287388b144ad525764bcc257b3456998655686808c06cc080d8e1d78d7d50a31b05438ecf249ac7ec1e0c1a4e3e9a38b7f707c9a186746748854042d1e3217aff463e41b9c6a570e3b711a1cc7a89b33cbf6cd48e58346270b208501cba9da51e5df8564171d944886e1b5842e88d891e9812c178bd130a693229ba9d475026c3a250dde2b6ed8b667ca4aad66703f3a64bee44a455786ce2338b3eecd4d20108ed61f6a5229d1a241bb29be13f8f15c16686c1693fdbb94e3f1d7bd7e9509907fdcd63fa4ccfaa21b348ceeca1cf11c0a9e29788c006fe4df55301cec5e24e17c2adf61f9d034cbde6809990ecb7c098091f9bbc88288021b8b7bf7f27adb3f8913c5141c6da6948fe53c43c0ae75358ecb9c03c0287f8a6e36cdab3dcce2685e5c0d7191c029c3a6c3f12ec590db90e3e1c3d533df9817f8916a3de4fae94654890e61edd028bd931479b8ad717f5c99058d4d8d3fdaf213bc7198b8bb6f4f43f21c049995d033ffeb7b43e02ac93b1a02039bc34543400fccbb1b3956132497e73a53871f3aacd7eefc7f3db1c6e971663526b3b8732e39f12524640d519190a882ba35e15b750db91af127ceb74b41966ce6ce9aa3a441e7034bd0d08475b66622f9a3b08c3f59b41d4949c634d60314435cbfbc068c0cf306a50c1ab65c669ba3828b1ac951c8ac5d722bf911d9c80ce34929f8d27c6165a0bbad8b59c5a79fa57321929b6a6a4ea03f06075b64190d9a13d51fbba2260666187ecfd37628981e9a91103cf51d5b17f1fba6897d080ae1715a849488caed97d890a4d343b3306f92a6752d5847f5c80d5493ad8307ed27231a9c22625eacf796323a88798a00a201fd7261a1d1d443530e845825fdbe65c18a55a9023af7829118762f544774b0412b5b125f9371e5f23b655f17510b29a4918b08debc533889fcfd88e8308c968fd736c4a6aa17b79231a418e7c2402aae65d990d7a1034a058767ca64905f5feeb9bbe12e3288fd47ac5e1882de7885c0b0920e19f84880782c220151985fd0c4534808109618f5b32f9ab0b81d3772e83bcf41a49c1c9215b58e025fc315f587700c58c964749a520d56b469891c99144d69b224ed60e051d9a83f261aeb3ace8c1fdad5683395709ebf9016218fc3d59d0a29ba6baef008d3968d8ce79c877a13d62e4f66aa19de50e0f2793263040d5c6d7ebdb575ed9431449c3e5210d424d3c5f2a533fa7c2bef8f41f38dd1b957586d2db3e65270d4fd5416213155747bfd1757e6fabf95743092b0dca7a3ea597a8b90f719fcf905f7812f4ccd83f1fef277e271254c12a7ddade6e769a2fe9e6c4757a7500f03f8422af196a707ebecf3188403f7b5f2ce50417db9f7fab140a6921254e1c0d29905e2b604efe4930bc9161ec0928b8dc6f6e5787eb5832f7a19f8c97c04a629976db462e2d6e96c468a0f33b62442d6ba2a7fb103eab217b689c736cf9bd9415cb3bd6e0d56eabd2cfb8598567f3540b22fe2da37a99dfa369f6e5cf18bd04d7249a3105d074024e2c02f7ad3b58d4217e4693a90a0903e9b0d540dfead5ab06ea2689881eacffc80f55863e92ac13a5caeeec15a527271cab0223d8bad77b268a3e1817506ef6f00bea8895cc826e00c7d169c42da8189ba79545c070e87f124900bbb8c2de7b9c54deceef3b49c85f5ec05e631c89ffca977ee21883966936f8fe28b3ca69258cd04081312a2b3592310b4e34616786c877afe0ee3ed3b2ebe0f65f46eb3531ee4df8644eeb42b04dc3428326022591a575308d2eb36ef2ce2246d1c895f4747636533cddfbaf3dde6e6c906b92df339f89fab572d672b649f35a77ba213e7ff62ba2046335d0bff7f90f3ee391fda51a11c14e0f10787950e9003a4a2eb982124621df8c8101e9f3406727ed4560d17539d740001ce6902b83b04ff16914d95573a0aaec819d39cc7ca53d3ad46a1220d6c81d7b5b808635a3a15e4e397a2edbed3577a643c7509365ef8d59aa3483f9d99d71e0b7c377b2713da2270f527b55edb655b593a3e37b4a99a2541ab5465cf7cc184ddb5d485ac1e5378bdb00fd50977f495f45d8df67be5c3d3ddeace30d6ed84296a372851d8f7e00243d3c115a1eb319ab2fc32ec533b405e8def0a83fa1ee31f7f199cb81e47a714b79f424ab9999282af7e43cc431d7b280caf5de8a2a106e8a1fdf23f2236ca01a6804cc1e361c22fe47096db951323d474a1f4fa14ffcf4459c62617a396a7acfee00c636088030fe70887789f686b887ec906275e8c4f92303adbb60a80db848128187272553e7f2e0d5198d687fbbc43cdf7ea90eb1aea7ecb5162d20845849e826b579c69fa76b7eaa122778b1aa1079c4f3b867c45f6ec949f4d50851896c67882184dc8ba229bde5bf9c56bb69de386817ffcbafec0e6c0a97385ea2ebd4b0ec4d69dc32bb5696b2603685f1406bb182a1ac073f2bb2aeb5121684d66fd8102997995e46661501280ff35c5f291729e86952c885db91afdcb78c4f4d64521ac57655fb0f904051584af06d45c59c8a1994e40cd5875e869ba24231db8a408cfe59a020d40314b6dc97b9f5173d16872e526387f90eb726fb2afcbcf4e67af7af1ab52b6a205d13dbf43820155abf0db978cadf841e93acda26950fae891798f9651133a2dbc3943a3db7ff6f19d47271015e9635101f120c5764a37c16cb5a89e61f96c3ce80ec4491a68b12bf2ef40de600f5612276bd687e414d0b9c29e27f366cb1b93dc6e15bb7d518b7a8a95c89ec9d6ef52835294935f47d028bd7d962f067a8b28aa027f0672347cb65d3457c8bdbb2a23f95efc608a178bdeadbd5721f22aacd25b9669df0ebd25a2572147ca6cdf9f40332043078908cc0c0b42ede0975a0daa98b0df24b85967af2ac86e0d245edfe0de9443ee7106cb15ae73863222cf91079a88f03e52e853f99f2c7d348d383ad5b87c45dced9c88375434e3c9882cb7c61434bdc6eb84cf2848876552b904473fec6e24170eeee9120aed53312e1a9ac8ab69111ead26a95503a7548dd9ffc9ba3701c31118fc140c34e47d209ab49c4f7cb1965de457be25b3d3c7b93b1c92b10512a403c27c147603e1c626df6ef57f6adc4603d1eb005c451b051ea8686cde9a6268d06a1636e284b93a183ad99b38a5cca1e398212ed4d764dad8a63343d682f1c77ab4230573452a4509a7b1f528c964330ac943fce292609304aa918ee1c387e6cc80401ac84f50caffe230908650bda6bb6f10d90a73aac76851eeb25f5d60d48ec3c40d16b11bde0c80e44ee49986bd6fa5be9fc68d1ad96aae8934e698df83b5cb334da452e867dcf5786a2bc0e9dbd2b420d1a6be093ac72c65078d1a5dfc9c1240cfab749d7e0c4d304f22c0fd8d8567ac31dcc042ef7666c864a52b98c93e6834b4f1e5d026523729da26d50d57e89ca2146d135d7e8c9810840384eb9d99814aedab2d242999ee8661a1f5bd68ee5eb8ccee1418ddf86ab4322940ce37c29fc0c11797cdf1f73a3ca8151a48f2310ff0f07446267a9e43bc1c0dc71a48e36009bafe22913dd5f3e093fa073cb4714bc1b8928fad4e707b07c55e2108d6953a3a59fbc9495f0156a6847f89c25b7f4a2c8b540e8b91e840ee8ca3cc0cd65adf00d9f6c1e23ef906eb97c6b48f0657ce7c6665ba80e84993a2f470dbc3046e9df609074ea98ef52146e9730a8197c638b9e3ef7fbdaf58fd1f3f0a99007dcd8b47a0d8198442fb965a1ad3147aa8a334fc4b9e999f22d79051713479a6332f71adaf1005f3a570eb40956b183b9c124473508e8b1abe6d63cb88c906e43c81169692f6318cedc1e12e3432896eb45f544e41f6be7c4684d54c9b5a315141809dbc856d85a327755751949a743bae85416b25252923a6ac99831a039792d6a8151a87081ee901f8920179812951af9bedff547166e84c818c2a0a20efc8d34e81ef9607250ef45001a028fdf00e137f3d59ed8547b150cc09d3544b62172a098503602100ce19e13d7d91d0b6981198676427e94c76ca842e4b7a35ca9f5e257edb5b780b4a74c9adb8b2d743561df535fd9e19b1035c56304edbc2160ccbbb6bc188d3a143fe4bc78e3b6a318232f573584a1e32997b68ea20e726ae8eaf9699b80c67155d65aff92132997a123f217828631447d32098e362ce86c6a0510a46d587ffeee457d4dcc46f10565a2789b673df8945099fae0a9307973a9a99be008170302da102de1743dad91d234ee3df909bee106461e3b3074b7656e130da61f3a9fbc484e9da63964eb316b197c876f1d8135eea8bd542a821e2ac4a5614a151381d9c01857dd60e17b8d9c028d176fb2823267bfb9e0040530412872280353744fe44e670262ca638c17ed63b7b6472f92f9de5e3671522bf2d14ef2db72bf91fbb16cb69879337f2e661fbf2a04179851e28f9fe97ec184678948f0bb1444ffb2f1946ba8087b6da444b6c58ef593c27992825ff5185340f55e0a76aff55c5e90e1c801df5b315308a4ba1b027a30a543c68a9a488d8aefe095bf3fa407d3aa9092788fd7c8c13152809c6b3ab99272341a88db9529ac1acf6fe30092a7dc3d92f16f3fda597550bcf7ecc322fa686e919f87200b7e05a3750f8f97d32106f9bc9c209243f24ca5f439c9753229b114cf2174e5c4f26994bee0b0a0611ead3af12fb086232602e7b9c180f18a387998a02974e1354dce85aeae4060e93f7b4bb3792d9d7ecda3638bd0129760884bd1bedf0fb097e99a3efb8f2cd4ac830a71bf8399a58020e0f4e7f86d1f36527e7831619788c3a82d5c6d7634e7d0b8c96e0f83f676591ac60414e5822f0acee9139e786ef1d4cb271fbc6dd53cf5d88ce1d4c6096c4a797688693fb4c4b08d0e54023586bda207e9b36242d8bce7819a6c630ab3502b4eb080957627dbd62e978de9649c01ae899aa94a31bc22899a807b46bead8cd59aa86aa6e64dff4a534918315c9902ca347a12da5b65e89518e357b0f4490e603379ade973a4cbae5e5cd84570c28515ab69e62151a14b48311c9e626e03605038b57c572ee2c80c6a4d9ac00ad89a39f2b2a545c6134327bcf5b22b18c01e2688a79c7c569e96d920f9bc64c5244995599787af4014337f8dcbf2dc268ba8d0e1c5aa89323f9379687d5dbcab28d5ac97b2d6f37a81789ae1ab3d4fad53673cb7a63e412c501713f266e9b320aa4aaa772483c2d6dcb34640c5e160282a499e84465c375bf6b89cbe65929aaa3250934b5009fe74708761ecb07b25313ecbbae564efdf899d5e9d19cdf708e7f50e263a87579ab864deeeb30b52ee762f02db1fe9ebc60c116e8f90aade3b5085b6f117fcf502dd89415e063854936124f3a5ccb945f56e8a8d489eee4be6ce9f3c90b66dff5b53aad8ed409b34af6d181031ce3097312950ddb79ca86af47e156d431a88be64173e6b877f95bc6f89747289cc64650a2b17d25e50911aa352685d8e13e9a7a161780a54d54539974179e80c5893a3ad31ab8dfb80ed79e6c089ca3ce197464846c651fcb77c963327e205ad59f4b2622d8da3b4a263dedfa4c75a9ea1a971e9a16988865e17d8c99cab986aa05ba2708f2d0bf0d1621b5866a3f44b5845f66277661a76437858dc90d40d2d9adbb34c87661102aeba053f3467ce1ed8cf675e976ebbadf264bb667acd929bb26f3ba87745d8cc5bf6c0131b46304ba944e62da00221b109b5e8306bdb7d47006fdb4d1dd80eb03ccc3a0778998cf1ca5d5c59e63b5c12c228fd477a06be58202a5cd5b773b64063c458e272cf963b7b77abb0068e849ce0155ef2f6de13fbeb00f970209de424836e8adc16f0b0a1050f2e73ae51eeabaaca8012effa11dd328b4ed4c8411a2c9281acc8efa3cfe5c2f74636f1d28b0f931fff7340a158ab5224059e85c9fa1acb9a77b1193c1b99730144c3fc0b2e62aa820c6a5f960cd1d0226294fa674d0a535be46297def5a7ee94fd9ee3984e72c8d162c02ab17c196fe8f1bf032c50b36ec8caaa337ba680ab201ca19946b761056e9c5d638c98d37a811b85051e0a5b95dfb79d736fc06d325e8c27a230f1ffc99ba9092805f7bf4ffe4cf01f0fb97f46395c88956e84252ddb943e71f6b408daa37592bc0cd5602898b467eaace626103b5d5f3d9b5cd3a547e6283679ab41650b493ae677b52a7901d9b351723279117d0c32a5730571a3b6038d5e46f9e37a3407e7bbdade4b7ac360e66cb1afe858592df1720e57535d592a4ff50fd204101167940a943a4ff55dfd48b07042273c6bc2572ae321a3e8baa05ed73f9c11823c73988586f7e77ba299773232c7d17604504c9584674b7e2ebeac67ea3fdd897e285c579d5b5f4e36a58d9a832c1490ce969790f12835ca79f19d0a7c845bfa9a9d9ec15dbfc0140ee97c85da4d723920c8ab35c4b10f974b83e7ed4fb3b21ce175811f0ae1d3341f8af4bc158038bcad279076921551a642ea48ed974993673f0447a291e7b6659c0b8b93d64f4069bf366765aec867541bf6f2c2f5d59ed69549556790dc70ec2f79ecc9943c9305778c071ede19b3bd75c5272b7966d81dc3e69866879f5ede71ec9da8f74b5689ae22e1833992017ddf6f45945b19131b3498b1f9c0eec8a4cb60954d114bddae40785187bab85fdcbc5d2309140eb449d758d412717584eb7cbdcc8fb9ad918f4029b319bfbbde016801275293c614d938f0fab2bcddca06cbf4a2b1e641642ad0e751ad88fe8cdac17a3a0e4e613a05c2ab5fdb016bf7c1e282b140f8c4be3bca589cd62fd21d670998fc8da04a397e9633b12b27a8013c6cbfbeb1ce381d7d59611bab1b591ad8cbc307e730125be927d26f7d763fa775b01d584ad3eeb259cd7ba385ecb220cbd6f6f5898a933dbfdba140e0bff21818d2c19ab126e8c4dbfabad9279208917b261efdc9b93784701c24194a6fe4d1ce4b141147027a11a71c5126fcb0bec63c4ddf61bb39fdc90908f675a88ec06333a6f6ecdae8b4c74316c353bac0bbc419b87e956af60612db9372a67d2a25c31ee15e2a8152fd36c04c162188ae8a15efbcb542efa1b7078f70970862968f6f9f42c45c6ca7b0ef4d991d9e1fb081492bea5f07f7a8922b1bdcfbab1e24eec5e5236e2838fc70f75d7db30e2276422f9c80b72499cacdd1232452a4b2755f531df4e0193b79a6bb16027c8ca8d5680f203a61b050787f222f49f07154dcd5f285934cdf0fc9b5444c8de45cc5cb9da32ba16e763a096fbad3cf2131ab969e1fbc0aa5647019eedb663dfca62f23c66c0b9293a11fba9094a433c5c74fda0bb25554cd0a94ae4b984216ed6e7198296876b1b780b970bd966ca67508b9b36ef0c7b10f512cb461ad4f7981f30b2f03ea944cca0befc06afc8784c89ec00d40cacf15fba383c79c7383252e1c9a9dceaf46ee623e85e31d1fc5116bb98011e44e22f4d759a7e1e656955df5eca3a02ee47ffb60419612204fc44535d89411e6f83d131c741df934449305ae36aceb3cb8bea78ee1cce775e73fd66454f62cfb79e50ed7ce2d9440f98f766c9efb489e338e166ccfb01eee713c65689e9229394c9b40ff4dbd523b304060123c0dae35219e90f9accfffd69fe05cb096c7e7b15f2aaa41864d03bbe184c243403683e3e94d42f7843ab5354a2d24009eb000554a79f9f6f706a81acae102f9bac223ab202c4bb35bca8e9dc5e7913b6a901ab480dc62ecbd1da2b8582d028674bf0a690c054600b106d89b1d3d194cd0f677c7c9d8675d832de3ad77a3ac96cde04443a8849f8732697ca87261175734d2b981b6143c1ac2789b5b4d360265084bd8a452a09d0a7cc70a206b2ae654ec49fa62f5aebe6da31eea439765cd3e53b04b76ad64ac3682f7557a91e17cf7a3df904a568b11d6896f59c075c07e837cd09ddc4a5b5084cadf142ad821987a39e3409a3d52d6dfe1320b181648a837158a3661ed34d2c0928650fbc2890a22fd13442e0a40848a442ddb273c87782647f1f89791d8149e887f9ab8ce1bfe0c8e1e5809a76ba272f9d3cf34d4ef77bd269cc927ff08fd1b01877e4a747aaaa6cfcef1321af4a2612f95009fae154bb1dbbd5a874d358e85d925fbaf634f65dca68a3b8dc6abe09de2246de615179cce233c01e16d7ec3e931cddcd9fda796da7f3fc8f4443c7a36ac1afb137ee6c983c4cc9958a096895555031ee46682fd15e63f25b51a4631a074443106dd0be6edc901dea981d35de42de89c9948c0d5b7784555d88e3cf0dd30844cdfe0c5c36de59ed6ea7262f3e38a696baf3116a9a89fcf6e215908195d4fbc84f38f8a05ba9703fedf18094cc57544746579ebcff5566575715e7921f3c6bf9583ce957f89eca5ae188fb1a7e7f6d2c590026e5bc26da594541d98ceba062eef8fc78b51b358f7e398fe370e72da7a0a82db65397a84617747f7e00c279d0a9fcc479b1ba983c04a997814fce32722dd73b9792348064bbb768ad80e9c5cc96681902024d21a38f128824f84a76149abc7527236a4ca09bfebd31e08f352a1f36ef11c96d7e56e63c6cdc977942929cbab4962fa69591584f89316aea3335af969a10f8d47b2bb909e6e42e19322036e3d55a61118ab67815473efd85e6035ef059e89571e26f62718043e56d29bba9dfabcd0d2e3a61a0141de60762b322f50e124e4d436d9619440e975651edce52f6d50530c9eddad51b83d018589a80b345d87839fa6a4789cedb9d4dfd95021bc669dddd14489664a7f529dc57ed491581c2ed0e833445fa8b89acd42eadbe15120174e1cd2313379c0b6bae4d04c7d230b86ee056c13dd368c7fd106358857d6fb4751f346c1b76747bc3dcef4d38704523995d888f051ecf0ebe643f993db97781f9bf2714f49bbf3e084fe3762dd6ea160dd7f96677b40c23115eb12bc9bc06c80f31b4634423f81e37e2c32529a6dbfda1c0b1ad8e6742f6b12df9995f1cfb865620347ac5d7c0cdd41cb766dcdddaf28089adfb777e8613e8cc09f9ff0fee84adbeab25eee4acbe78252dd92f2e5acd81387e053cd93394b5e6653499a051285ec921ebef25cee9d8321b5889b234c3cddf9bf79cf3be9a535cb5d22c05ddeec8bf73c147375b5d542da188de3d103905b6457317874c54473ca8c11a8baec26d108346cf1e44f1ce8e22eb0799c7c6d9acf533b942fd7d0f3dd4105b6fe2eb4ecd1c3d08cfd2685f3af84e68f4085cce31d9e8b01889e3d37512808c47daa36a98ea32240a5a2c35e21b8216893fdba12eccdd34fa8d2a297a70aaf0bae5b674fe4bf9448c5aeede8777368ddb58c651e844ef8c9f8cb8c48b4b07462ffb4d38b9e40ba01bc5478a7e66c1780f6b78643dfb5820cccf8df43574ccb04d4542769530821c6a83baa4c3618163c85ef3fc0e305d8d642dc2db157ad294921e6e7967cae536d8e3f96859a1b1730144d5f436506bf760bbed0d442270fae89f939345c92312de84497d1202bfe7b35f25ee69c0a6c774b110503aa8fba4ed6352e7882e6d6ae5ef4a23bbe2f2cf546ab6ab844753f61e3d8b00326045461e2bccd05d697f2e345c77980eca793038bbbd1438c76a2bde9e5ba494595ee5290ef54a4c704e9b754ee8076f94bf4b5398c12471c0ae77dc4b2c3f11d87bf4c18201cffb2eb095e8a0b56a147e2831c8ad089c3f5ae887454e880c3f714bd168d0f1a3be14d3859e0791b989258323a36523017bfa69840cc0a3ff538d44301c10b0ceb68310a968e3faa6eb6015223841bc5a02676ece92d27a9001d40b0dfe466bc871959809d1975b9da667088e44366ae2a82f179971fa5cafa8e774cfc65ef2bfb39fa328eb567d4c8991ee12ccefa141f3d9d27edba5b44601a7f82921b61b08d0f36f3e24c7f482c04dd034b6f8a3fe17974a437bf5ec8255df081eee0055d36880ec128bfabb91454e9a507a33254d7cd6f3c3813c5a9aab2a7aad1bf33af079e3de8c11e59dfd9f5118db5eb0a65ac794d0bad4c23d5a590c07e920678c2c57fa26e0310bbf16e4a0f31e181b1b2d5a820b3b5e01a11c55eb18d0876d1c93523f0775d486e1d94056b6ee52450310ad2821461dc26a5b9743fd20c06745256ab65bdbfb4eae64855b81b67a377a4afca32e02b9dcc48f0044514c8cb01fa6ebe8b02f055e59da495818cb96a13538d028f2d5bf7f7a71d1587a11f2ed0e0d33e3efd370094fa416562d04472c41f87c8c243d55419a24da0a8c2406b667fa6660036941befa63fed5a131844be6122fb48d5703a88d56588ada15645ec7f66f837b318abf86780e2ef144be42f29aa1038d436b506db4489c8070dc97b4fd3dc2759c6b3084a8cdf8fc493af87101899d84c14c216c332ca64d8f8bbb281c5600c62978d447141b58f420623f2739b5254d5bfcf7b4f73dd8c56a047df29a75609028cce47703aa66f2dc07642ff885de41c6058f7c5e94bf4b05fb7bd6e3a72d5c17896a53e21d3d0bb570f89ddd74d509f81b45646b5dea8c6ac615b7f91101bb8a2a77a8e14287f1aeb5f1aa73340c2dfe89362aff295a04b8801f7955701dc72efe3db9ab4ea5cd2d24107f275bfa84adc3916f7de3e4fe64f4a34b4703ad56e7df48fa4e192af506e45ecff0b15cd3aa9e09ca5bd3823be1686042523256d6dc94fed62fe74a0e7edd3e99e037d10df9fa200c0ceeb6f4a23f09572be168958654f0bfcc95b5945646cbce35404b991f5437861d029821412b7d9b0c0a4983e95a65eab45ddd6c9bef2c6d7a610b5ec6714ec01197a6131daa27f8dbd97b2baa131075bf3dee4fc708e8c92e0cbf31b68e0778488a036be1ef3fe391070e9924c4688cc0c6227223070275e234a5b1a707eb0c5296e4aec230f466a604f1186e9e864ae26f8ae8698b28128415ef3a4aebc725c7a3d75694e2dd5ccf75379b9244bc3a7bd84d69fae08a1532f31c0e63762d7ea9213d9932d02d6405225ad875468ff1e796393a5aeeb513559cf422ff83a9c4a085d1e5a8ea49f4fe5984eaa826aa25c62a2c8c6aaa80c1e90e2ac8abd43f12ebff7cf61b1b7a371bfc7b31fcfb6dca833ffe85468c4431a5fe9d84f2c44ef3393aae0d8b58179cae0ed4bbd9daf0a2cd84d2e64e68f40050eb5af3f20000822d7340e3c2b9fe1c4d048561a4e790a1eeab7ef19f2d4721295cd5217bcf9acfed669e0e2660a99cb55126d1b0d955d4d5d0fd217205aad9faa4633e2245b18469dee93e337214a01e0a75a8b2da156e067825c09ccef0ca7ddd13ce9b421bd3ea1ff13039e3a1d282755ac25a90c296826bcd2234418cdf683ad493d93b89936d80dfaaf5f9019674d4e577af10a320d5630394941742da302dd84f64ec906634d2f083e4d6835f5d0ecd86c9371092f306cd6f75ddad8ab1e67e17ec0474d53f9bf7a1baaf00359b9b4a78622e236eaff81c8ea40459ac5b1ff288a5dbe72d86ef091b5e70ff04016eeda51840b97cacbc82fb16b704a29816d60ca3469039931d3a373c7dc779d887ab9c97c4e414d5893d9e89bd532e51c1155440b44ab7ffa7446e5abb2e05781a6aaea68233a550aaacbda55b34320e26f736706d1532bef9798eaeba89a05e7031d58455ab3535b74368241b07148380cd86bbd3ad215b490c6db08faf27ea32db2425c2c0481b3acd723c4ee29fe6f0a65a5e3bb2a8e0a5f950b0c39b03f8e95d7f506fc9fba9bec386c06fd2c067c67441561fcabb9c38347eff68286f3f3ab54bd3f168ad381f10594c04039f984394201b60189556cdee4961ce25bac7f97b3a7ff3285c709cb30db4e14924e089d6a3c0694a349749eb7981e5361497aa19b053cd5cfef9438bf8a37c19f02b32aeb5a6585166482895dfa0521b8a4c68788ec46c29cba124c02afaab1892ad9467f084c9efabf4bc2ed07f6e96064b678ed447a1ae41e2ce93fd19944a8580c61bf229c8685abd35beca685dccc8d6d0e598c50087eef98634705b5d882fa635964e5a6243cd8e43a93a6f156eea2642c6f0c47ac57129caa98c98b89a537f9f7a55776fd13068a9ed3a2604ddbe6cd711b6ea80f0b659a4f2c3244632a405c00f01add14cc85ca0db68c02037996a243f25f1403bd832ff2664f92e2d9c12bfdd21a7e10572c6116625ddc554121bc911acc9571ac38033b5dd9eb998accf9277448baa77b71f8c1792a6251b2417c24f23226cf9d21d52691c38a665f2a858c2cb8e5298767cd58fe511a72496528d4b63eec790b07347a2fc05b3002a9a58dfdd2fbcadc2e8be45e7023f85c5b0a58dd1632fcd636e2ea3b4be40d4eafe767ea96b5cf8719a7903f4c327b3eb6e55e843c29f63c8adc2942337966e16c0724692861cfde29874ccc65a5b4c6f0f6f34eef81f5280e588c655a810615d541a32ad5f5f24843856f3492e2f246cd498c4aff237434c0c3bf581bc350caea6d5e52a95421d87caa83760a07c3cae5a931542685f5d625120af0f1c4cd32c6985d2dc48f0dd4ae3cf9265d52ec166a416a327daab0f69e150557cc404fd0ea1654e4f8ae91924b3be189124c1ce0ca28f43eb30e7632ff1799a3983da3524a052435c4da489cef7a5a21150f92723e1f5fad6df7d87eec5902b2cc9e4a96adb2ff252524442bd4a58e01c2c20760e2b777a3e6913f6c370d6840df90c45287ef9bb78c061cdffaadeb1f52b04eccc890bc13c9e0c37bd73b858e53d8db56e7ad37cecbd1b30cc769deaa1a4284c52a1c1680266cf910eec2047ae2422ca43eb71ab44d82fb57ff714fd3f25623f48cb1d60f6ca7e6142246c49f3c537cb6ee0a5b698b00c81e5cc18e3bcde1462b8b74ded55b79628483e5692cd1937306bff42e9fa437844af69c4d5dc5f10e7512b6a24a14fbeb629e69acf03c4b0637a27abbaf19206821f614a590e02c3a3e4a98e390ae69c0f59bd63d17029d8bc2ba7a0e91970c1ed2cf9f46b580a2f7ea00d4d3c3f6d86fcf22ce8ee1bb68fa4a878bce231daec5257b2efb5719e406d8363c7473d52a0342c01247e71510a25e5b3640fe97419767ff44efc54f4a6eec8dc3ebc135f201bf733c7ed09e48c0a84649129a27b5c83620d8b95594358ea29d93832c416a739087504bc7ceefd39d30e6d0e80a50005afea343f448d06d6a60338760161577ad4716b3dc294585b50d6a196f5bb6cf92cf703de435f5a28cd057a2e58135f05ccafa9e2e38755f918963c89c19f65d12565687ad8d87dfadaac62f663f9fca7355cd5f04d6605745b12e587931a3241cc58a03b138680dcdfa89530b0a9dd2e1b45e546da4e44ceb2f7070f1b2dc449e0f0124eb140c75e957797597e5a0468e3c46d44dde94305810ec931597bf5380c104e1969fefdd64f2e49c920e76f67eb457a288fb8e1c7d637c2b8f7c6eac56db7f6b7596ddfa20b0b2bad1fc1ccb37a75cae3d1ecb77f517b3b2998ba4916db196543421436f11021e14fa15ce3297db20c21a49e8805257b38d36492dcb21de35f761de47590007f647b322b9e874cdb86b9021be6768cdb3a98533ec57a3f2c09ec403fc86daa2e96f32326433dcdcbe4228d1d5a085ce431f4f187f77134256359fce56b117e2feb26fc594c13b08dfa98e4a0bc684cb4de8c77b2b03f6949cb052d434e365eb91e9c6784bc35b1f210a1111c9e8863e721d25a3ba373f26f0cef9f95a0ef7ee1b7bfc3819c144b4986ec2029e3ca7dff1d6f216ef29f29b687450f3e59b0383311c4cb8de68638258d28e4b93830b9dacfb41a5220eb56b4e1dea8fc08846e783e5730ae2ff42ad43852bc4fae6a5b19facdf09332abcaf13187b17db692a29cdc55b79ab448226bed01d2b5d6960124776e805ef76df60f1858076bbbb8da0952b4cbec2612247783b0331c6bbbabdd26d6e93dc6ae4f626c04839456147b081ee89665ab69e8fdd962e1964c2034d725104e3e23c7da3ea9367f2e2f9e7e0393d9468bb225b49a495b13e975f1e83d5361cb8a7aa19788d409b40a0b43e00c38f4e28d9a8a6f2e1f56a2fe6047304671bda175d9cb51d635b332b78f6460894ada193a8419a3637740131d0c82f0e1dbe3f55a2cc5cf125d730cd562090dc3449173bf00cd6e9fc0dafeee85fbff7c16d8bddde1200c5b761c0d55176ce1988b6f91e8ead85027055780d8ee75f9c889da7eb251b37ed542ecf4cca38b52e60a7e367d927ad8155f3eb49be8f4abe7731010914fec033e83b913ca49d92c89127e4eca706decbe5b0306ffd57ee99747fa0f5f9d50ad117601c8d4b25165bd74a0943cec60714c4c78865328a9f1e7592f0d3cc91fb3c49b3cc883f193d903ed2fdd94960987bdb0432b596e010323a31b60dbb0cd94f084ec32f8a1ecebac0995a4a751c7dacb36e01ffc0d7cf8199bc7b09faf97f947316902c1d6e1e2a3aba760fcbc3039a1ffd7970408d266cfe2874939e72941d125f7344bafa9cb773d1991777c58ffea1ae5e7494f08bcc603608ad16cff469482493e11e0e0b4ef34472fed7cd7961adfd0ed63aebc429e1cb85e8321695cde6ddd48a483b06e58ec3ffff5e8f6bb3b1d1a3941ab64fdeaff3cf512a1b4c70bda173ec0bef347c2c83614ce6b48f1bc656c052b5afd41e9c2a55b3416d079a35fa4be650f45c95b984883382833efb676aa0983612aa27e65d5feddcba39586f4779597c4766c2a9bdc0ddf786d156497f338e2ea35e6b49ef9eb1fba4a74e8750d7e8e71a6dd6476849c886bc4c5070d6ca884c7a33b76707f1497a942c1a25170b7b096e500ee358e311f6b2c74d981210370df235a625ef4bf1546242e76564f33080059bf50c97ebf7d5274919a9f1d64d5a087dddb138e53216bd2d495b26c81912c808c0894775092efc199e0dd829871477b8d3eb03c2565bb14479749014ecbe128a176ef21c7a1d7d1067c78fb6ed7cca09b9c5fd54426e134552924af04fc3a5d5303ee4e55f558e84ea9f759454b14d0f39f3f4f47e04d34321908de5c36137ceb35fafb0221f8b8c4aa0902f700b4c2ee719dc235a8e5ee4453868ce24138605633d951b85262eac3d151e1f2e0a668101e72be554336118ccf2ffd7ef4212a471f3e417e15da9ad7c06c00304717241853541afa74be551419676e35a984a2c1e0c1fb422fef877fd1ca0716d706837e8fa0305d85d8a863eca957450d1a2b25b8e49f9084232fca3fb09e0a9da8c1aa05ebe2ef826e8e1dd7f5d5a2ea6828d9bd2273ae6afe9663321c70128d27a2b10827b7ffea40f7afa5072727bf1dc94ae7942b6c985d6a817a28c0fe42480dc45b6d258b5928c93c6a1a72ea8ea7ca01ea5ed178097f0faf87513334c4c3d50ebb10c982e88dcd67c1658dc49a228019e9ed3092b6dac51e3a2c4caf0ce92d792f28436bb40677dbe513b46240b630668b8db5d03ff7a37af57d6ba13f04b35061f26df963a7e83661366b391548941bc89477bf06fc2f27c0967fbc0c52c8ffee45191e6fe1d474a96984f541a6df8ebb34b07ecc42bdb1af198f815d4351c31349b8d22dd6c4441c505bc787c229d1c27591e9f8dfd1e1e2262dbcde2bbf9227320e758ab82f0cea8712aeba226b6c35ba8457bbb45f6a30ac00d0947ea37a958e5f3e057c1c496606c4e7762b6d73f750f607298e4833aa253a73d593233401d739abb608b2d638781c3e8792284eeb2db4dccdc85c08ea696f9e7e1ca23522146ab1b77eda6b4b661dd9df961019f9c37596bf53b7b10ac67f7cc809d3bac9ff14be0a5e15ab67453069cca459183ecac3c9468022b538463492ffe7f9aaa60d0d51438895fc57bcb1570da48e727e19d04b825193118fa67073fdae2468ec6289a15b3f1fc0a87398058b25975fe5fc52c7785deb3e52548da22d6c097780fd74bd0ab1b45ac8b9be28bc1f59a67b90b2028edcb0379a5dd291910ab028a2678453c0261262c0fe9b7f906f6a4897dd3264f1216dac8ab551247290e8f933740993865e267c23bf635127b3dde07903d73e9cf5d43af12b1f12a1e6999739732ab7557bf94ea38524e33cb5c2c33ed6f8d5a589e6f30a2bd82ea4e4fb048520ed64b996986b54cfac62c106f1f574a5458478d3043c8f7889e98da21555535e3fd1c34c8ec487f4ba76248298125baf07ba6213db07b9e730d332be9525d4cfa196f6a64ffbc2d3a1b2d3069d1c10dde8f0371d71e392765835c2ed629911dd041535dfc8d6443af117e91c53290b17cbd7f1eab6e365c164efde98f5daa8f953a4a50bb8b7249fbbe4f5e60654af125ab7a50005f7f414ae998a8a604164e342feaae1f1b567025272ce4acddc2aff9838d7f137e45d5cb0d2291948261ba01b615f377f15f92ec097553f148c2b02db9dcf081c24517111aca5a70b06961b1c1637727753410bb155173b60f40d34cb92c30e56798392e7109b4940709a684cf03c4b2e80ee8f0c5fd282315054a1eac6db39c0694d294b3d3dcb42afb3b42699bbd1a08d9cf5a4ca4b3559b5fb840da373b572b72cf0a012fe98f2d7914390be4fdb21d51197b6e598f3c9ab06f36062e167adcfc21851159c9efdd85da75b420584dc20bc753385fe279878cf9994f4aa4c46f4eaba501875e72814303ca2859927c190eb4da26d99050bd793cfbd37a979393a0b4ff41219ca0165e6b7eb5b95b8ba7d336efbfd1983f1a6c8b327a193220ba6fcd8c804ccba65964a7b6f035d1910cb32ed1a8e0126f26c9592d29f913310db050ea68dd4f6412a2b271cce3daed0892d75a2af527e44bb3ac5423bfdc0bf722c37fd9459cf223784b4d7cc56f27ac3fe0ccc6d4ce8030dbe7cb76f17d24d30cb3a37fa335d00eeb5ca726a279b81e522f009b323eeeddeddbeb8a63ca0825b37bbd869345c70d1a527b3a595e1e2b075c9aa22626690e02fa039ee263e817cf14c41385dadf9d4b6b01dd63c7cb30acb3fc4cdde3b9c564deb9a93a03c74acf865e3105c2fda7e76d1caedf200891b28228914bc25dbcc68df5723a285ba1bd7a78d1e3a0b43c613a43b792159d063e85d8509f63306b4b03f014ed610dd992ff74b3ec1dff1d4e9df0f2afaddb1493320e309333d9b099d0f586d4bb5ac672fb26031425c1d1fe0e7c52df50ce50f2de18736546909cf6166b36c9a3a998bbc602e5c475660548a73382a39d87f952b1f40b7eddca2b6ff7609841ed111e6406c2feccc2fd13b6c7ff9c87778b37c2e97fd87d5dfee49cf76dd3218c839436013ef60208b977dac291d77f3e72c43999cf7e42f7d65ab8c7cc31f0a936f206987795405a2015757c0e32f713e1b5cb1d630f088880e840e5877d0f58a860fb7578d4a0b87f494010bf38d776a6b861b2f82b82bc12686e77ed2752642b522416d79204ba974cd31bceb6cbd859d9701a2f4589d7ef2abd0d4be26b677cd15d8874da286ccdfbbb0a058446fa77593927b86a002771d8de04721ce458d865671dbf5e369f6cad35b6b96e072e5435acd22f5dc3494d71fade0f9bfcb2d1735c66caf147527acbf8677971236b21cdecdbc1b5834803dd2ec3d1be5e1e68a4be7f642c4f750690baaebd1eb3ddb21cb982c70a3429875093f01731537168bc5784b74426326bb1db1f290251f71fc156d34e25c9f3cee2fb1f287bc0556b7e6e2cc0fbcde1bdeff99f4174e3c19de1ad516668c2b5ebf6b78c39da12460da0bd48b2d9a3da85ef53e2710f2df91ed082808d863382a48655100e60dd43aacdc40ae381e4c07b144e985963966104b76e89ed4462b8c916ddb0a5752a115bcbab7f7fd37873bbab11a46dc39a70c1c259d628cbdc6be973132d1e46a41df4c25b42f458f80ef59b3e48abd68dfc2baa9a2dd19669c0d89b23837adabea792f8d849c1c9ff0f2b3c2e75d500f4f46b32364fd3be10c42f528c37f53935ad63099c1144f733bcbdb595ef6bb0c5db16ec16e2e61c5c26782756b10bab8775f2086a7711929751b839cfdcb0b30b80d5650d95085184013d24ea7a68e0fc2311f6fb3a636157f7e31378e78fb8ab546b7b20ba14aa28af165fe3b130230abafdd10ad0197a5e871a214a61b5a6adf9380f21ee5f26adda1c328dfd63dd8ce8a2d67419a3e1118ad86da7171ac48a8ba0913a53838c758004eeb3167744f690b926f2b96ac46e8895a8d8579541523b5520ab61615145d71b8aa798e755b307bfcb4c603a0f31d559a540a847f94bee7191938f4cea49ee43cf4cbd7e28dafa7fc7403e0eac13adaf328f0d9dd7a2a7df0c1f72aa68880901827d003a3890c1c7d09ea2816c2da8b3bdb5da587a1655034587105483779d36cdf762be4b9ca4e2bd1ac9228c71c38f4448566509c1ceb7068585e71fdae9bee543f5eceaa18e6ff9a91a760b3feecde6cd51a0e04ea49d004ce91f3ef3445d6b2f38f1cd413ebed5823bc83924a7eff919c08edfa3cd0798123619f47a4bff936845415f5a308774211c4feb989ffbc5a24b08e8595bb319067d12597d0f4f65048534d8584e1721684d19b06388d74747b4322969113f0130abb5a9e6e5b93345af799c24ffd407fe16078c3b782f82af7465865b7589487a48409c2873a9a07799d0539236c09db533b39ff51d1c7253dece30fd63c9b61aa7d2a6b63b7a94e29b296be5a591c999c805147cb5bd44ed1577d4ae9c08bb11971a967131bd04b3e29c0a70163b72511957985a92051a6960a51ac4b818ed001a812bab7a5a72b4f832e678fb87f8256cf64a3187e58c5454a95e4ff9bbfabca4dd9a8ee27885f8a69ca949e5d12547cb15224dedd7fee435ee32ae3c567e2c24493e25f822539a2dfbca0678a83e92e9f55efacd196a5b680741f114b2e0314f38ecdb6d19125ef17965a469a30b3c16aa498b975715e005156d3866f392a4f1d0cba1dc09e4d504deedae9b1c29e034bf3c17b5cbb9993d496da74f1f22df78c448107b9da0034e3d5fb037254cc5c5e3470b24a6c0ab380fbe4094e0a03be58f0096f3c85aea7e24f2d8c512220f36939a355e726a7fa31cb98f11942a724790141b59d4ef49c39f415da20a13ab3e65436305313c5cbe102c3d44465465c882a643a15582b71fa7e91ff090e00a687b619fe728acf46c958117aedc37922c4c95251957a1080057bc8658207e97994699caafc544183d4df066aa36071dcc19a0a7de88343b658115022aa82f1b902e08eb2c030e4e6252a2a6a0be8280d3c1c41187e0cae8e7be692f56d1eb4f7d04f491675467ce5fac7b302320a8ee58f70d2869d6c398f957bcb964bfa7099f374d34abb2974aac9e4c4bd9d1084d1a56b42fa63b739a37b551497b716a4610065256f8634c5a2b371a06c605bda84dd1dc9a77a41bc144329b45c3a454a50cb0e30d5bdbdc2ead5582326ee1e76edd2d787044e7469bfb6739db9b721504b322139f14d52169c5d530791d6c566739e9bfbfeaf9b88e9ee324df31ab74381ae5d814f594c22384281f360e4d570ec56f797c7e5fd32e28f6f9990b828555286cfc32b863fb9b90e8e739c968109db9e52eed84296204fe26ff9284c9ee06579547c4fe1392fde66020a61187ba6fd248184a2230dc23d2145cfccc9b5987b41065c036a00bd4b5623884f7d07691b731a89bdde212cbfc0fc878ae627a5a83981aae947f62a978bd740c25d4cdfc90211ee68e0f5497063ad286aa595a2719948588035f48f797c10cd64b367e16de61c3c6918e2d4e76d8b3d5c0a61bb64f1d6569cef15ad24807d322a8615b6510c8994c7cce6426a74fda94fb455257820674af58227874ff7d6ab641efba2c671d1021a363eb2a4f65a47222f4edaa36bc531974a1bfda3af26a9cfa2313b301d39b312d782bd8080ed27e8cabc627403bcd7b9fc1c55d676ff276c95b049957042dbcc29d71a8035eecb6431aa1c11333f21cdd56c0d7221e366fa4276669e2c20fb5a279ba47eff36a38c378a98455e2d633faf0533b9489076bf34ccbe8b01edbc453e7fe7b90e7fde7b601dada25796c9d2227c858fb223c6a7216d17335670cd91cb3deb47aae0a5087eddb021eaa750a9e72c7c397bebf199936ea5f8891eff732a4ec2e08df793290a5b2285e68859640dc2f6d8fc631735028e5eb96a632312b144e7e1a43292d1e69f279dbab155fa42c86856b52a4d4d694dde5008bb0448220d7bc6290e1d5948e0e60a7609b84e24ec126409c906452bb40558d5e37b57d20c5753bb2bb778934990f81025f10fc19b5d6596fe7a84cc30864703c3893976846209d67a7f86b343202680b0362e93391cca5309325d862ab98ece0e6fa8110b64c1c1ef2784a99b855f259d1ba754bcc76bd0416dba55b5e3262bf3e623420b3c33db635cc8b282e6c6a41dd85627d0d1a076af60f4506105c0312121bc50d518917a2c1f34011f78b6fca56a7c02df00e2f5b66c948fc9a46147b352c9d1b9c08895d4bb35d0cbe3e4e730b593ec7c3db4cbb14f4991e3d21535f321497cd7dea60eda54d9ed386feda541f132324270f092941d8bebec77973b0c9ca76fa438db14f8f96e5f5b3b09a1f40002dbb0bd7937ec89cce8aa8f31239980ef1f2cc382cf3359d927e8d3ca7657c985f2b0bc0b38e3d5c2c24621fe9d027e8cbd3a4a4472eabacb463df8f0a5cfe2768806c8cf3c30e0bf8a60e6a4d79b92b04308fca416a857c3109828df55583e16bf92a76244fbd8484aeb6e70bf373124956cf0c83b03e7e94be5472d931de4e71759318e23a76f936dc204b47cbb4cd0829e7b1db10c40c85743573f5aabd89d49f2cf4432edc5bab38d4b35292265e274e4b8faf7fb361011d5bf0b90ee6510af60d9600c8d885f9517ec7e8336fe3843080991160467b3948be89cd552b8beeb8b78ef071afdf76208c96988319c3b5f56ee5daca5d2c8a7ef0d1cd6a2859a97a0847d2763a42c9cd7c52bc45e3e52e6e0901340bc9d83736c510cba98bae733ff54e3d325e6e8f34666b49341bd00c4e1895baec3dedbd5125fd83ae30c15fb3a29355d08bc11e48583e38c91b5fcfae9af9d28a799513e562fbb5a27eb290824d9fa87ddabc2217551222d0a12e46da13340930565421133880da97bf7673d8608927d1e2c0b51c8219cfaa7e9e797aa8dbf7be7b68932fb7c69cbfa3913e275f6f9e94e3f111753b337b24ce15dc48c86c76cc92b68e3dd044bed4a78a765cf0beb674ab369f26a829c3eb1f7e64366104e017369afacbc7cd491039cb502ccdfadbdd7bb62c910ef3355798965c794a53b6f798801e82b9e1bad92ea1186720318eadc8d93a34703c7f5e8f35b55f7bffecd157605442e821d0d4e11bd902bc047979245ffab667b3f69288aa26f334a34417d3ea538448acc71fb032e37b5001c42e2e64972d17b4bcb6722f6dfe16da35a7a44947a26e7003f89b615c962f5f39aaf862219d73dc426aac981c4ae08ccf4e84ff7b2c9312198c933dabca68df7f37d1724d12a2b07a89d2ce995a1fe6c88792924a5b02e360794451566453b03bc0bd4ed735a074fe52f65c9a0b265cd9e0bdbd11e9da5e95d5e5969a950708b739248e7d61cd14f081dd96effa74ae5e46d816fc9e8b8584989976dc6f5a7f335bd46d83ebc4845381e249b3aeedfafd80a9521034b248942a4a3efaa19ea9db7cd337151296b892c289677aa2f3c1838786c3217b987b2a0edf6e0f379dac0b87654b8c3de1516b9e84fab3b1e5f4964555cc517b42dc52f0b9a35ea2a9632549329f1ae6324f7f3f52e5ab9077232b672f1dd580821a14ca949403d452841e063a613e52a7a8a6d48e79a739ee5998b112edb9362f81a9aff189680848ed2a9963a2753a5f66210a9da148aef3dbf91aea0be42f1c2a7bf692d15f7803d0ac211eb965c721695e0c0714d6235e0f5dbb5bd53fce17051d4cb4cc5996ea01e4c1d0f82d28e950697711adf4cb1581cc07ad5c43c39ea79c40640a6b541a4569912983e33028e8f394bd7a6bc7a0a871b7c855f1d361464464302f54183ed591d3fc1f44c4e1e73e5388b0cd44ff248572b40cf95c81083eb1628925335aee430dc8852aa9644d389d9fcd7c0d0b08b57ca88e9b10c72311281d499acfc9cf178a29c4bdcabb3df44fd29d3d427f7caefe21589918ae19a9f66341d7b4c4b632d500a159a5d51b2c3d492a414169ffe09d973e808804c12dddca8d11dcfe57af0a9bc3eebb3ea676037d4de4b27b3013aa5d00209c3f5637409c7d30e9f583f30509e066d5ab21a9001bee22d86c2a56c767c98c2daa9c637711305589ea07555f1fdd7926aa95eab8ea54f5a9c783314c56456d3b42fc1e3de00040823b452473b44365e4dadeaf8d045af67717a1ec0e66c1908e29504861b156ef6640da2fd08659df7f864768f3ef994717e250cc07e8da5ab6b19d599c434e887fa87d2cdfcddc4e4d7da4b53c6e94a05b25e4decbfad1d07bfe202805881b63e047a5887d1630519e1aca8cc8195b7c4542ea953f4042124d60cfd345d150aab0eb1ecf17cba5e97517a68eaecd250e6a512a8475cef0ff48e0d574d2e89844ea45b63209f0ae5117c533612b3dc93a133367a3233a7af9ddfc1ea381a47ebfa2518959ce09dc744b728e6d3d197f80466bd8a40acdcc30c13097ed2aa44d454b3d72ecfe354e4e18bb2aee5a86c60ddef7ba7f77615fe877b6cd59b15806a2b80e1949d0089c3ddafa5c288717ed764b2fabd1054515aaa1a2e1f9aa7fcba045707cbf49d082175d5842731ce32c6f85f54529e2835fe085c33035c88427ffd84af429492cd97d5e424107fc095a414bd51a7a6fd21981d88d19cf24b623ba3a264f730f4157f0f78ed3cfe698c19ef852ab045204d9216492d209069ecd6250301b2f32a2b427b6d347bc67d8d02dac30ac805a4bdbe083cf5841758fc163f9f74960115956eb36f9d37219121f6863255a9f98ea0aaf7448b1788d05d8d49efb22253d1a67dcd4edc398e4c11c7176faaddf7eb08fd73ed87d74697d8e1e67ca3f837357584bed90a25b1f08c683223ea06b1390c304394a71f2d3abda3c1117ae05e9d506aacb32d23b0802b89df1711c28362f762ccf016d20bc9fc5e87257fcd7e5d162c7388642efcbc483d1f70cbcd2dc05e82df849465c62b104990df0b9a5fee55f1e958dfb280d7784c1d5849ca059121cc775642705d951e978d3297c93eeb43187242986534f6b1573f3340b12c899350d5b61b26f9e53c7eca9352976a384bfc51b2d71f05805bdd42b61bd7f3ea0b9ce67c3cb7cf9496c73d9c86549fd2420592936b1c0bd75f2a1d4aee5ab2959cfe6d63f5ccea93fe424996a9988a022159d5c3d496b5560b04f7e54efd1f30fc0a634d809f1d84c28659d0e90eb06bd6a5f3fc41e6c403e2482e5244b7f3612872eb13b33af02024f97bacedcfc9b70a7f9f6d2fa0c448b5b837b204f6fb0e68e05cb24430eb113d7f92483691619da1faf9d597b2b4f5b215d7b1af136bf03b2000950155637381309d72bd4f2fa3f0dc896872554ba04ff2971a5edfbbc69cacb79c34bcc989c09304ad7e55969d950f86eded7efbec6095f034cd375090afb72728e44a9e745827a1871a5fb1aaed04d2ff364dcb3a741dba8094fa6ec18ef3e1961c84bbcae8026e7e0dc3fd977394a5cd6b0f589251373d08ca46b6f6ba88196f761e672dc9b35cc5f9fd71e265aee626a4fbcfa220dd8b2793ed7886dcf61b141a2c6fde4838bd51a9e293abb6387a03c9d2c96d1821b5fdb294e6f5ee79a555df40e38a472e91c0a1739efed22c595960595465ae6c9f2b49224b5c41a7bc60e26b082245f9ae8ea666ecf184a21c9a0701a18c1fb7d5e52be5fa4d5d9a0c4c11e76ee9bd92a9b6ae7d65acd6b07a3bc033828d2f3cd605ef73437539fb25969d6429c03765a250b2d655015a2777f2335b819c06d9d02ba1240976b67fcc26e5de2c5062a29318facb3aa56a74d2589aa50381b79a7ce23483278cf3f477b7585235aca6f30d73456d51138db17964fde343188861179969b09eee93f3127e0dcf4a0d45824f982f1d4da4bac8507f48956602552367f5c3c9c236bae3e2c7ebed9132557ba6de49c91162e2aa1ed95b92faaecf5eaa595d3a99dae8ce34a5f18c6c31cd77f2c42eefc9f06604de5343e5f924f96b94fb71d3e5669583954a4a9ad86829f47b79b9f5e2f89e1662928b35d219fc91e9d5a6f3bd5849baa38ee2f59529143105b4c6c4f924932263f1a5cabe67c02fb17f5bd54d2cdb93f9e7fb7639520d25ad2252a0eadf9741b814101b2960ad899cd57ddddcfaf9e7eb227dcfeb02b1a746722304c086edd2bbbec83c7cb369c8fcc7f7c58431afc1f318f0643eb5dbcb678387646aa4ae335e6ff1e8601faaec0e49aef4c605a7c647a85888396aabd511dfac6666c69f78c6e9344cda78bd9cc257f6d6c1ccfe8f38cd261148c8f87d9acc4d8e425a31f493c5968d66eee0171d2e0ded0d60ea9bb2957cc1c6d3638c260ce4dd7b947641eb9a07cc84a6e5254fe19cc4d9a70eae658ea0f9bc4e703dbc333ddd1d348b47f4790eda44377f1fdca33a78519fb97374236e045401aadca52e24bc1e76f790058473c1c03a4771ba1ec61f7e818f732ac9378599df88699e1950672b13d55ba2562821fc971768fe76feaf0ad8d0f4e4624215135051ba571537efc8166b64b2e2645d98498a3cf01fc093b95f57220ba9cb9d012ffad8518641815f635804f1b054d0c1eba737002a5178bd92777a45dcab5bf4ee863e73a988b5132aed6e8e0caee5ba68ea9e78608b1f420bed1861cd120c869bbd3a1e757f69b46eae7d8b0b06f90b2ba29405efe712d48da0dd4c49c667e5a1c319d9a7a18ad3eb97a8a4753a228dd8666695f0afe1141c87038ed4f12a98813688035b5842fbb1e8ff7b58319326429b1a63aa187ae26ac6d43599e35af38185e8a1781a258afc1523f72f9cd0b8418cf6d3f456cc35169b587e2379da07afb0f81acd154d825fe43c7e834c7781b0d4f32210e6fa35ff685bc9bb1c655e24d592e2caf172c3fd31d5b8f10c29a046916003929427edb76bfc1614c40c18c7334cbcd9625d0ac8470425dfb0c0c212c37cc29982ff2905f1b3d289008940dc12da5ecf953a58124e03ae9989193de12a9b2024afd416ab20dce5387246dda9803e2890d55f84886205609aa60f2f779496667cc66bd2b4fe24d67c8bec71a2216d9dece4abc051d01d1225aeed457bf3a68db92cb9331c00e9ce7ff5b369ccc598103c9b6321f40032d8a9c7dc4876aca6d1ee2a9771c645d44fb7eae0112a26256dc03d7e35147e883015b0be36c51b8bef68e68836c09f93c1d0849666feab8882a2797c1751301fbc43702797d7c24934ef109f4de1bd848f2a3a9bf646ede5350128bb6cc371f9327e83dfe325784b5860a2a15a732dd38d4b1f1217356bee8166c3da9307bab11c6f602f68a4781d3146e15df41bb6431557849aa2ae256cf13704e6b29cc55c50076f99b3d84f7779ca67e2229453a0938db4d943ba621a6bc645a7b8ddd40d4cf337515e11b3ffe5d093b3a846f020755655d2e69d7e4f1e3335fb7fb0a5a1865b635c6c14cf28d22b4cead1f929cc1dd39101d63350f302f00263160036692bc715ee0315921dca303b5b1bf00d55567167e2eeb73b3163dcd173403fb549bc620e74957fddfb0774c67888d48688e171e225f527c86f047a41a4b8a9b4183feba457fe99eda937fcbb27c1a5f6dea1ca0f7e43a144f8068bc239707c708c3e49ac33130db3de9e37980760d2cacd80ea09ad5afb96f52c9adbbf49fda103fc2f2945e7a3c857d676bc711a1b93f2d66940ee526a60bb39502fb2492441607100341cb9b6974203ccf1646b063d75c9c5921b5a1725239b00cbd1706bff653ad08b13ee95fb30763d3c5bbaa7ab74a99f79e9bbfbe626cdd0cf2ea4e6a3b4f51435d7216cbefce760df020022c57497bc03aef8e46f35274d210ae051297f208ba593d9389a741f5ec388e99b1a7a56bb603a06526c73e1df0df31481d15b8ff33ea94aafcc6cb9bab050c5fa179d256613642a879d1b39fe0989144b7e5c87e1d4d3fd8f953e224dda3660e21670fe13dea3c003f77be575f13b3495def131e45861eae9e0bc7b2ee6a27d4e3fcf1d9f886c1be8f00a69ed750d8a599c93afc2d501e1f7fd6f96488ea16ff575cbad6b47b1b83907e5f535a2edec6e086045b2a1ecf6bb548afe19c65e9eee24b8361d5c41adeaa1c1f654ac2e44a14b2e6b690777dd0d4526231e72f4d1c910adee6a77c272917056340a7fc2233efa5f76a4fbe5e99312e5e1c3bb0736f818682275f0791dcbf4af669bb6b720286d87a75387a70923bb5d3ad6378d8a6d334b48e15717a7746f2e7ff72e99073ee0b8577bc537c78ad3237d129725aecc3b370d867af4b81a3c465256f90b91c966eabc8c3c65822727408b3ef28a3053715866259e90eaeab4e519723763873f9699d9ff34bca150c491bf4aa8a37a4715323b445e3a8b12ac75735c95948aad534cd47a7dce285eeaec74bf00c61302d2b94f72964456a5099c67cfb33e9ec2713cb4994f32420a3a193566bc7242d4c6ed9d2e1d3ed9a74fd5b6f35fe6d60795234e83f6ee7af226609d0d41640fff531dd6dd739a6f8fdb5984e7d483baf3f1aece291f38b857f792508a964e1e6564918436378efd5ccc6ce5ecf9751414bbda01511de89ca1e516770bfd673dcb35896e52bf7469c91dd7d711ede1d5cbec07039e319ff46b6953b2e11bb93b7a0ae3bf17f6931aa2cf8ef398d6c5bdf5e44c5f58570ac9adc47d0b7fc9b75933dfe67856f6490866571f3fd8ae17bb7c9905022b260bfcd50cfc4392a973a77fa30cfb1ff1784ec9c4e3299ff4d60644e654d9eb92cc723941d0bd87207483c0569814b5f1e0d50772fc85811d8be667493b431937ca6ae04769e73439f42a84f7df260447e001fc1cc31621f17bcdb02590185aed66a782b1663186c45335777f2ba88df0be00facda7255291064e8d6cae7c07450df59eca4ce98eea7a473b2d7631d4bc51b6258cdb61b9a8babef44a3057898d25af9b88b76da8d80230a270ff59900b7a5d91726ef1561817c985febe398ec78ed136e0d48b4e23192349376d279e30a317c7719f2c82a738a536772b9b3b179a45835d46360285e9c196a8f13ee2a0a8812fe6ce44bdd90de0d10d9dd432799a0031b6f7485b15f6aef97f7c740f849ba5baa1f4b9e80c199356659102adb60daad7eea02c9e83a0992ebef2cfcf11a1492fe3fc276a06f8e33da13b820c572200e66bbf25dd29a4dadc6f569b752e12d0ef17f59a6e15dd8adc5a85003e77b2d9b6ca9b702380a577640e292f2ea3c4414250ea12b157e4ac15e1741e487d251683a77bc5f37210a264b8cfcec5b933fdda9a19efd95cef0562d41d4bf2dba80f6c55f5b883b527abf382f974e0c7ab4a1bd3f68378ff6f3ca31c87aff71ef5dcb285387110c59a9c14df84a8811dedfc0194bdb097399eca445a3c11797caf206879c6b53abe7b39b42161ce69cfc6aa275096db45e9c6b24573011561cf94624006320f1d248912ed70fb56214757db467a5588a1a77a3683e5a0d342236251b4af071b4311cca75e3889fb50584fe1d5798954b1d6baeb6a05bf693e795e8e183e7fbc4235028946e55c6c545226678857ac1d94e64053dfeba4b05e469e64da21d24a574c5aeca81ec7051a208e0240405a40071f182a0ad22813e0a5e7a5e3b96bc3d24145fbbbfebc6cc49527c829d9c54435618e4575b5870c018cdc36bfae033392eb8f3175d7246f9a3c0e2fff21cb4e44a0f56e818663f64283b0919af163d1f09d0059561abfd0b18a66aa3b46174d6752194ad58c918f9d0eefaeebcd048eec9dee6fd66925cfb58f623df732930cc10510614524fd316cac4dc3c43250fec0447066bd22aefb7d657f178e860bfa70b6ed01b8722ae62615b073c134f4b0bde1f3f6f6d3a3fa5709255266c57d4bd71f0d5adba204575646ee32ff0f38705a2525358e1b6f9ce61cf155ced29d0f0e4a26e0816b5f2d997a123160b8465ee3ce9b3b1dd83a0070577a0704650ace0ee842da37552590c78b4d9c2eef19b4bffde0bb54cab4bcf9bb7f686d3c4952340e4627b25f0d133c50826758f209208b9972c93a4f71ace4ab2df4a2569cb4e4a5fc7eabe801e14ce24a289df367e2b06d564271c799d5acb2339c2b5844d8c1bf94937a6ec9a8f01b54cb6795b327af94e68d24df48ed3723fc519df5f2535d59d3afdb9444a2f6fc17aa45c05be055c212cbdf6986b2031465c77ddeeb7a01c0b2e127b954b96f7cd2cd09ce770914772d78a7654decb0b14e877c1e6e343cace357aa534cdc02311716328d6e90b09a9f4633aa78ead7ea839703df3887a8b1d926df4284b7f2af9997edeea14315849654858ea6202b9f6a49be3535c5104f8a487b2150ab1f7d65ce4a47004b8c9f592c02531b518b5e858a0d61bf96fb5f0f14e38d5daca2f80dbbb5f1eb61644076104a4057d0ae38be07eff084c0700246b55747e569d66c62ae2036c3b12dfd9214eb7ce241b146fd15eb8ee8b11bb14c957f1ddbb13ad579e2720ae225433da8bdaeb0007c36d5214d21ad1addc5f050c68dca305f7d0f24c3a25b1f967b163824b68e680a046eff458f24c7c812bd23689babc33dd1019683d332fe8b6cf9cd95baa46de8311529d27ab1e36c5e89729327abf82f4de58c115fcb0ed97f1b36d6727b65bdee8d65baed1bda8e0e5d92317adbbf71a770711a70c7ef03d8c8df4c1beac458b9e44ee0adfbaa6579f1ca753cdbd71b7f247bd4582a0e107c1f2f5d4b373beca91afb821b368b528db800e79d2b04c58cd3d7b9d14cde7a5d95390d53fa614476c37d238318dfd475f10326a5e8b22266654aae5cbaec6d881d4dcf42b6ef1b64e82518abbca4cfeb447e59b1c37b63c9b7c7fd51282ac8e1d99b324e3eb8176c9dea023473cec5ff6e17553e3cfe27b10444b5b58e4abf6792f9bf72e5cee63383df303df87806c5b510530fc9bdebd672e5ebfd7889ea46dba80eda096c9696ceec23f63be4d6d09c41d06fe81be1c6e406d530ff157a861ab092766a10f893f2557d5d18ba1025f8e0e593940eff33d6c00832d9866288d6de234cf3bd16d0b317d8fe2ceb4fc1fda908c154acb5def89c4b41fabe2ced1e47c5bf84e763d093af22d659db63cb9f723954d997de0154f104927f82283d9899bf326043156dfc3cda6b843be76db2048cc1f4e9afaa0de6ea5cef1d21d6cd1cd85ea1e678fad396574d2697b5897fa4786b3efce1bd803510bf8177bd078b7f8d7b321de8a7fe86232612ced767ffe56354ae80d8e1dbd97e16c3f33b10a689c1a86fd5650c76a5d2126930458df2f8c4ba32f1fd1cf404ec585e492b18eb6579366097ad2c754413ae3848dddefe5decf9cffd5d36d53e615c61a22960d27d5f2813fdc475c22bb3600fa88fa9f974a30e49808992a87c5f99b5c18fe8779b75d50b3918be95e97e833734ccab764c07f935efb88e5e2c99ac9176f16921f8dd0d7d8c2ec8b76df5f9d3d20221e2312f4db6b7ed19a59dd2171f89486127fd74783fcd70130fac5accffcd77a34279dfcfbcaa7696640b3c2e2e5c99bfe184c2c3ba68d84ceff3072ba8aec51e9797265c132d6b4c55c2ebed19088d0d3b933c22d7ec1cf2f24f9262abe49085305afa3f2da294c49db1eca55c78c73f821d7f34421a71283d4395e7b6171af7b5c26ecf94d9997b2d1f5e8caea7c73c620137ecadbb0fa815d9da68b9dde607d287892d85d56b6c5f7e819afc4bc774eb7f76800dbe7b2402c8d8508571c31df61e08a22ee7366c6461e9e2547d0f70b31294f5b51787306f3a5118428a6ff3a134181d1c54da2a3f3aaf3ef65cd9dbfc9084275c013ac97c50ecfd7b350f3221b57df3c8d8f8945106672ea59fa272de6aac103591a2158f8e898b07c55d4a64b904a65b21600d52b960cdf4f55453cff22c4d7ed9d2c55a61ff4396ee9db7a950fe5753b9424140856b26eb8539447e9294d64a8b1a2b02666b5a275adc7edfc4ac19e37ce008aeb86b33ec25015eb3ed248d68f6521395845d0c6948ddb41ed55263a204d700eb1818a924d12ba311f6313abf2d47c65fc5f29d759ebd46d690d90dc514bb9c52e810d67af03b377de752c0bf8746a06e47e5aeb14ec04dc4d1fdbd3eaf4edbe4027685ba3525604cc564527502bfcc8b0fb542a072f598ab6fd6ee8c267a0dbb39e0b956a62e45ed77382ba0689c477ba504f4d8263ac8d1f132d6254c759e0303432213fc0b42261026a01b49bded2906e9c50d8d4c934f7fc2f17f5621ff377612b57c9e1038c58cc63a79365e91ce652de9e3ff6a5a8f1ac74390eece083846c8295549c24f6f9305413102691033167d8e44ba2b39115cb3fc69a3acf2f096abbd429f374ceada0641b2a7ababf7b8054c7d39c9d44843bf100a171aa6f35459ae58b0048656d07ad366ebefe75ae40d27f8b08e0f2962ff1191e03673a9b54de83bc855c36f59034462533c2c426943a8a53ba9edc03b6879bc4d922ba4c9dd691de9419e94e586b3d82d08878eb6fa71c63ee9a9e6209dc6bfe1d3ce23792cb9def352363dd14e12b9cae8cf4e0618f2486146fb9ef97f878bdb8892cce21cce28de89dfecd699fa818ded2e3f4d95be46cdba5cf4171053d7582eae18ea8b8bf1b4c998406fb55613fd69ddc6810316a5dc76496919c5e70f426beaa1e064930508829dace9a70dba41c6db6b1c9a583057c048ac60c573aa1fe73ef2323d84cf181f886abd806fec3fe4ab6d683f0fefb1499e27f28b81e43e5f08ff74c276b01a9df2fa98332952b7dc83188c43cbbb5ce93025a7431e1e5ae53e19b58bec4e2491c3aedd5ef652ab0116d36b7bf6eec75401ec34a4cb401e3ad3a2c176e1b89fa5629256b6f6cec8c4270203772c09d4a9331f5131703ce1b54d159ced65bca21db3d75fd5b8716b46be830f5f894dea24aaf7e8afebe48fbd78abdc2590989fd4666d89d2d22cd02fbaded41a156be3866745a88c281c8510cfc13bfa1e9424f5c548d99d79a5e725f5b60f95e25a97e442ccc38c465a94ce86f46d92ee9e3cef0dd72460fb0e9b232f63e5268ce48394f1e6869b7b90204297a24788d8c1427dfb4601781e61210786e9c81c39220f578cde5a8818efa55c18190c5aa1f91a34177637649148afea60443b436fc0c364ae74c9dcb618128f5118cc16f39face43a1105d268837bb65396cf8c0a6f27a8767db7d4eb2f855cb7d900109bf4ac3e8243f1745ec895c4ac7441bc4e9f09c1512fb72102f645c7dfa74b918694e60667c4db641012f4a76079daa79d2bb4a81910ec527a2da9fa9e23511c4a9205cb6e92df6ca99a0299875732133fed9056a9df85b7c5e053635af9afa634afbab7e01f228224bbccb9b4d4b0658e84ab1a9de9be6661f17b281867d5cc440045715dc286c65fc011e8587d2d81c4c22965f2a1479f337cbdf4410976a6fc2e02c5a9d6fa0bbc73b0163b307e6cc68ef210dd810e476fa11860434d552368a52da784f092484494ff3c675330286fb9590ef3449390310d12ef6e3595e79a4da441a3565318953f86cd0e9693cddd39c53dc2ba508c9a7d746214c34fd6f20677e48d91ef3891785174848dc4656d21b3c3a7e0ceb183ac6eec59d2ea1a8db2c127ad70af10f143b94e1ef60fcc76a18ccf34223ce1207e7e64c61346d97eb7be8b47ca2c5126af233941a8109c95dfe46fa8ec1d40d75abcdbe2c3f5eac5df170c350c44de18dd4265f84aa6502f5f9360cbeaa1326c7e4e33e0be0e39ffeae72502778e7c1608ad01e914d179d88fa2faa44fa87af4db9a4615c4066b5265d6f0f4098b2ee135dcc694309d794e71a07b535106127d36de741459af02f4bc71b3f78f187e9af5a5130652042009aef8fa8ace1c50af5485d9973bb96df18721a8deb93208ca0202c2f5449f80d0628bc35890712526c1a3a0638ad0f917591e5323d2c603837f32a0538f57341813f89a4e80a3ad8d687eed18dd9f63faacd65857ca2d3fc7e808bb81ed6a0ed756d1d4d82934eb7c0e258491c71da87d9d9f5ebf8cbbdb22392d9cded797f185522ca5f6563a25e4bba8c2dd03d27fae18fe8c522da5e74bf71862c385800b9f497e50c2bbe3e1a65bb1de3e9f22ac139be13397cd6745897c364f70ffdf7a5450b9351060f2fc508d24820ad67a3d14dd986404c04d4fa65cc909cc7ae5526890ec765e624184e17c8aad75006dcf34b77ee161a21fd583bda45529376e5722575d84b17e732f49cadba4ef829614e5ca1f42f5d8d45d72c007e36bf3b9cdf4fe727f5a6cd3c78e3dac62301f51a609dd6a679aca795deb542a754a4c4b29191e273da8bfb27a70ba5dea4da15f55b17b41a3e0df6d2a2009171f9d293cb3e9e008e96bc8c1486806110d28b21c638d681ed7447220d5e3f2f20fd4a5b0f1541fb0cc01f33fd59c0bf9b6872f7b4a3dc848bab32f8ec2e8e9bfed12c87438349185a6324c4671ab1bb03d52cea8b55ed48a383e1a8c2f5353c049a49e24be444ad5e0217d81c54370509bcfd912c9c4f323e9332b1ec95ca60de57ccaf222b45b95df19f2d6b05d20fe2b85d1f10dcaade539323b21ee04c2e5e5446173db01ac73401a2c9ee8f803602f63e1e841ba77f651777093709b1b6abef8d624cac1b375fc4b149d2b07b364886c7c18b473e4d4ba3b5a2b2e4ff2c843165557b33f9df49d25c4e9e970058cf4c9b38d62e5a8ba2c1637842971674232bc16ea331c917f2aa331a5eb7e67153e3c70df1fd9dfe5cedcbab4374a13a6cc53c4ca7c436ca7af288534e042bb8aa68411c46072bc7f4f1f846873bbd88482d0a9f205f5ea1bf3158d91c9d33fa17847bd73d7592ac6f7f41438a3fa55986d675e6769648275e7f955cd5fbae6599f0ca58b4a67cdf9c5234550f7ffa42619d1f13c2d89630fa9c26b51fa0a3d8d22f5920a57a5a576562133b6705a87dfa64934dbd2b29c5c253df8be9452d1710c9788a6e8d8e9828963a4cd1cac0d463c5b9f241a42ea8502d64c9387180ee2ed8987b55abbdeaf13efe608b2b5df11a37a1f5944f4e6ae9767c40f3de22fab9aaa9fe05c4668b9fc36b272b7fdeccdac08c8a668e04f685ee49128fc1bb0caa9d2b18b97c8e0b85437ad5c6d97d0efcf2f16f1e03806b6984eb46d3d50d11742717c32fb7485741ac0073e5a4d0af7e57c0ae18988ea36bc1b36a0320b6d25143224a64277b694200f89db2097e97adf6f4949014d424638aa34eebe43ed06d62fea0cadd3dbed7ca8430020432f6738d056ad128a59830dcaf504010e036a8be5a40088eb1accf4dba22a6379e1a8d21feb554c2d971ce8b0f6b996fc9919a1001253cf05a7d5cccc79cd49b12265916bf73d711edeb7d6a988f25c601f47a804ab37a54d447d8a79c564041422c2c7acb70fde8edbc469ad7303b8f2c3cbaa5483715351c75d7688fd60d5b80ee324f5c0da742d14864b4c663977970c1141801be28a5bc12db968c527670027b0d55698350c2015eb0d345554c264f21dbbbd4b23e89544dea9c70627c621ca5ec88c81bc6f76280f737603078fa196e9fe709fa9ca28fbaa8ceba1924dee4554490aa682611ed4399c6df572fff97555252edd05c99fbcb2ccd7ecb48a502dd5c88b207dfd82228d3bdf0a6d9fdf4b4ebcf3aaf6fbc5a47f373c31995f2b54e4e87a66de8ca48557b2356310203f4df345d40c64897d2500101035bc48ac96f60c2061679e472cf5d12f08020929156e119d4809cdd08c140dbefbdaa9cebf6c7c6439ee72230bd3700f4dabde99cd3767c248cde34744ca1e288face15020627734464489be132ad4c3ba202c8b81e3bd1d7d342a3ae375ea1bf25010d3249b7b8cf0f7200a0b6885aae9d89a00208649d1ce24fa643446ded1cb273b1509734f44a7594354bf1749e478f3eaddfe3865481532d4882f76e27b21e33eaf00b114c43d57d7fa9cd362966b17fbcdc091a5aafccf833dfbaab239d94bd430fae0a36678fcb19e7f1f9f3dfce8485d1c246dc878bbdcffe28db3016a0f5242e834247b0df9b66147f07c9a942456a97cd1540dbc0ded0e8cb2dbe56430febc91f740319afbfdeb2406d5ad2770f25a431b430cdd981d8aa6cbc43c81fedb5afb7bf74a47c9b08566d07605c6d7dc142497345b30cbed891c5506e1a48bf4b6611a5d101c0157c3c3818a397686fe17840dc3f68bdeb06713904b1d57ae9513c7a52b6d5429f89413f8b6108ee4bcb2d9b5a7cf87091b266487868a3d37bf4d48a4abb5e6b3f354d214903902e878473085353191789400c32cffe1705e18cae46c80ccccd519b69f3cd5f1c1740ac038ddbbd562a7ac294b048be8a976d9641e7a9601b644da623cd5ce5aef4c64fd6c9e2b2e8cf7dfac315f78c78944be124fce21a9262697ae96286a6d240d2c8b800c9b8c40469798a140963aed173754516034fa77cafc6bea21ffd0c56037397567dce0cfd88a835769f3aca061e037c2b96d045fe4773eed940c4623eee4c7eaf237e711d5a9b4533a0a98117cb27bac043cee6affba907e7a2851b8ba6409a58fdcc3c32fc841a528f97d8dec75078f3df499a83da4fc79407d2221e3388cfd1ff78734b71be0b188ebc26270f8e01073ede12f706efe8799aaf4fff66366f3695a44fee1487a6727ac2601b81feed3d82040dbf41ed9cf77d2a438679c6769ed068b111f5b235a9ec9b84051926b15173ffe17cc9f3f024407d75a86f82f08edfaf4b0035cbae5cee37ae0de83266c30fbff65cf57f82ce234ed8354bad86ef0c7d41b376661ad0dfe7fd16a3c43856116ab84257173e1f8b0002802efa61537c8445f3ec65272fb2e2ca016430bf0dbabd3c42913e4e0a107ea38bea5a0e484c730ca1485e4b272ecbb2054e5e9b958a5c2a46bf4f1804b77fff3644fba33822237f8aefa91d416c3635fc28f25fb2f2dcca8c9d7a9018badacabed5ad06e0bb999e32c83d6a206d549e1cb1f3709090d99a64fc3e46246d27d2b8b01384d1e850a15ea2f300e325dba567beab1cdb712aa179293c6cb516c5c52093db958c333a0fcdc6f885b6fb2c23fef94e1660d0dd7a87e50a1947c95840f6b7266bcba3428a080aa491788c41880c48c081db498e6f809e41098c5376228b880fc800a3cbf7f94d48b0952087eece6246b0dea1d87b2b884f9b053bc7fb7d4a6c48ea5ec527bce1b48044b9a8977b42f2327e034240e5862930a1e250ac4cbb8a2ab8407e4ad955a5a13e5645a131f363df83acf5c6a3bc6665497ef86b0340c248f49121e08594319800181c08fee849c10b6a0dc83c6fbef51a8ae4edaa5273db9d21583554aff5ddc11856e463ed82a593d3b9b477f933b94bd35cf7ec1ae8b2186541f7452c6040fb6f8e667d14cb6685cc826d08d9eaa989f0de854fb28d4b3c45b9989ac7ed99102857103968c7b81a0f57294447bfb63c2baa9fb2883b956462ac5e7e45324dba01ebc2d1ebf3bab81ab1cdd20d16e19f9f42e0ce3edc0f7e1e76a55de91d6cf32940dc2febdccadfcb9037fa9efec7fc99010afa9684956c3666c7bca794353eb4e37f4953a9263c12c57c5c625ec616fe490879b4de82b43c5f44104700f706c724797c4063199d9f24f687518a56b66cb2906f9b938e21c05b5cf2839ff3f456f7007fd2912777ccd91fb7161caba52fc1fc70f76556e8d373b8187e66015926a1b3cb9a21b4c4123e8b933997c3a1889c223b04975270bcff4772cd0677f06f558b0d0f4ccd46c8d8dc4f377916e0b5c087e208dcd9c4fb165b80d534bb28f8e48c279a9929b7c782af91fbc82ce24a246c2774c7d87f38680d87c9df5d30be86875d8b45d60e4a659599b1b8d8e3505515588d8ce4b465b9044a6024a76ce9b1bfe1a4cd410644c58be8e6dc232099e0f21f9b2f3e861f5f0aea043e3a33b891c20150e56b2462e5dad5b7270de21d3cba5c24fee437091a0d2655b0fc337f9f4ff388de3c3dd8677a9766cadc4f28d7d8b0ab90a368adcbbecd58c6e8610e0b3ee401eedec0f50f0a05d900e64a806ffd8cde0a89371a35bd12b6c4f12e960d7b64b24fb7601ab19590a809e2387f8dc08251bccace21064c2d7b32cb2ae352bcfd2bd62e3fe9e90af968e2dcee96889478d046444846714d8447d026c31aa9a1f24deca4f28cea8cf85e54e564c027f1805bb1afd0f8f033afee33ea208c2c7e4dc652080f1d729b49a833fe2019be8817d4efa7b2d523469d4ac7bb8aaa5f5ff286313e03a8fed8933901252c566531ec75aef6aba309bd6866e76afd81dc631a39806ca39c23f3b38d477e839e4145b574dc0b5b3fe304a5e0ba5c9e45207bd9531b8717aad857d8682a584bfa098bb7e4ab00fa007aea9974464c12f3ff2218b356c8229353883ec8da2fb19fe27f8999ae41e0053cc091b10ca18e01dcef8b1596c65c38cc4702861280e1db9cba11a1c82dadeef73e246222b6e0954578780a3eab0cbc5aec6877c1d19b76105a03dd5aa5998f66cac98e052ba7ea83d2b0b3ac9b8babe88630e9cd70998403facff0e3c1f39632bccd572c9c1fa27da8e3dcea7a748462a6eef4d1d9d108334385a45822a7125b6d1f783910a09105ef7084ed676ae531ee058a1b86f6916b836f841b479b2fbc7a49acf8e114b7449da0366ae3a19462c4e872b6177913bfa216ffef884a8f08870611fa2ad46144ac4b8276544d2171d41f871e64e391e7f2f2c0566edb5bc162380feb68a3ebe6a135fe6ac02eea1e5042bd94438212877d228e3407646036daf6fbe3dd3384e4263957d932508242aa6b9afc0602fcc495ea9bf1ba4a8378d42fa12099bb2aaa312abec0d2c8d0feec14468a0c926921e27a83e07f7cb098d70df16e265e70d2f096cf1853857a148318b9ae98a6861e45f2a66d235ee61b4ea1cefedd987a6dadcd32f5060b7f6ae240c2cc79b6f5280babe690aa20cb195bee855b64ae23393f73b79769b108c9d84cfee36d7d89cf7b2664c5c7199df8cbefe2d7c8ec20f73d822e166612c4cee78eddee14bb5ea7802043fbf7b5d1cb24392312d2947a0f228c8cd87ec26d4e767e76a91339e12fc8c249efb92262bfc4b5f9f36ca79b6b49a256978e09fe73a884b1b8d8b98ac95fbc1dc84a42ccbeed5a89dd04b7fe5e6e616962a7040100e9132ee0028560a5e3bffd9a9f8d6ed5b44739fcba88b7ae26c61909d5c5eb7e173ee79bab8b9b85947d54e612a1c1a8dd6d65a071cc4874ed4944e00b4db6017d002ea40e7484d390d8d4c6ad4cc6072dd325975658e49a2af53db92e24148b53fe5695b7892bcf6d84c66e2aef59a228a6b85835420809ada6da9967de7c80b6aa455d57e7842d514d67c09ed9554ddf8b6caf61b4e6f11ab6ea54f7aba8b0f5ddad50204fcff5d0e952a7e99919eb8521f3c6cd5ee98fd3dc1123aa4c4687b8d201bb642797875985b8d5b52e927e0ff336d43a06c98dd8157605a0e0d5101589e12da23ab46240f508851413bea4fed65f330bebe322e2fa95bf429304a1f5fa3a56871ea87277c901857b3ccaf9a3a95f62c3010ed89902fccfd81a5c3ad871d3e6292d18c23d5233a1032e5fbc8a9df773de061b0ee49c2d5934a58b558a944582923d2c572265cc09959e04f1d1598aeba957ae33f6021bbc499cd063dc8f9352e869d45be670ca5b64341ba9e27d3dcd907bba7a13d7cff0f5a7f37c533c23dc0d6c2090b84d60dcef99cb013df3e757aee290b89bfae479c16d6dca8f60ef8f19df1e9dc68e5cf1bb08f0befb3798bc26c90ae82f1dcccd5747272986cf022fc1edea393b46a00298c5e2cb8801e41d46c3983e109980030e62bd931827b592edba3b2a14fe420552dd0ae8149b20a2aeef2f2f6b571268ec8689e4aada6ce92bd7c3c9b0179b020ce7d7e88d7763e07b60b7bf052889aea6f1980fb6cec743068001b610074e6d6b42351751634720d9914b859ff4eb12ec7e45e0c0b7348b764981136d03bb3382aa86f33b1bb0fc3dc6de3019ff04b5402fca5b5c247c401d486f4a65a2b4494bc4784208fc319328deb399879174fcd14daadb1974c3d044bb58fb1a75c5ad9a739e15d099b8d145b9f11b1258f6f077f99fcb7777f23ff99509293483bb980ddfef7f0f1560ab9d84c1802e35a602f2a1260487acb0a85944e0bbd21bd17c206921da19504c9278c35c1691cdbc422cd2e9f093799d3bf65264446557f8a0d1eb3e924c32feff627af32ee5654eb49b8e386cae5c779a0d34b248fa5ecba8dbbcfdcbf5fe8e8bfe3abc1301c7f151db383e6b4214ee504139bce08287630475895d26a33b80a6b1218a4dea1a6ca3effcc65328da13d8c831d98b966bc8f27b688772cec0d4f4f191cc567c99bb18b17275cd1310b386f629710b7215dc88b7b65e9dc04cf389fab0f343251944bfbdb9b6a17aa77765311a69ceb6d1ea91609801c2b2e71f526e06eb8bafc69691506040beb0b6be2f5a8545b354ec38651fc74989784bca2b4758660db292a3888347efad191f2c504fe9dfbacd822ec2677d9870f5a4454aaba49362faf596e83a8091181df43bc3176ac60d7ba0570fa5874eb6fbd067572145f0bff82d5d605e34acd2017157ec13d6da5b6f4aabbd8842eee0ac4f35b80e6ced43a4f005ddc3a7f13a3e34b48272a90632547e3329713b4084689a006a5811e50b13178eaa0fbc1f12a2f131376c34322041cae42db4ff8c7806f0c96c05cb9ace2bfe3086bef8eb487e6b148f14e53b96ff0cfe9c7c42ef1b01d63cb8d55c8ea956838c66ccf5e5d5b8bd63c5e681cdba3d4f86af02854b7f45379b50519f126961eed3a84f05deacbacfbb512dbb43f60609deefdbe39589082cb35c78ef10523f6aa2ea07b87b1528fb9afc09069c68b14d295c3545e068783f1bd47e90b78492f02a9db871e424ac7490001df94236149ae2b13cdbb611700e642ab4685c732e3306b21d7a0a91d17c8622512e786eca0d7e41bdc589293ddf8a8c23b7d69f6d08d5f669b5be7ba53e2d97cfe346765c8cac8b9ae411cdeeac2b7ac8ed632ee6da853844cd250815934225eaac7c5c85e87aa646ba71450744755eb00fa296b94611a36f5b8ca24f24ba3977ceace311b13b3d82603576e82dc9273b25d77169c1dfbc4eaa7385eab2b09223cdf593e7247efef9b96fedde37eb815b64d4be1af54ef748ffb1f6fd5988dcb2f1a62db192d54f88c4a33f0c65a34f12601a9b460fb51893495c7c9203a0e4b3097506ca5fafe64447c5f0d489ece33796350f9e2224ba68d30a5bba1bc9f15efa708fe271755bde78dd8acbad40676754454ba09affe6920b6371e1b24c07b77113f95e92ec424fef1537d6d7290768a4adeac0738c7c3eb531f461b521bc41e9808264fef301cf029fc1606f767c8ca42f61673dce1772792f875e225f4e04e5bab232a679bbbde22918a032edda7f4497b983705ca5ef563b3216a4649f92fee386dc50ece7677202fe6e8f9fc121c0208bd1aa2b8f0036aaf0502263934bade0e933a48c219e2a93647d796b12b52e66beb6f832e789bde60a352ea5504e13a5a50c8df6a903f9a4fbfebfe2e39f280aedb28a42181033fca2e67cda6c5d12f7cfe6ee9a2d2533d6906db73296a7f57c6407d34a4b355ef961861ed1c656bfa0f405671cd95f448bbeed4c93443caf24696f259190c52aa878f35e8df81fda67d743feb51132060667adaec45e87f520b1b9f7fb87572495effb6929972105bc063e694266e71f665ed8e5c332751f1cbe49a1f419da4e169ae39a748e3776773581a07fe955a7ea13893fe3f38751ef0a94d8bb391ffe601d24cbd874d571160c1780c936deb75ff965540fd4d27949118a1bbf350cfcb09dbd4ea9c8c57fc301b926da830d26d14797c282a8eb340972dc9b680b6b665f196b6940f57f9a389277ccd18304af0e6094a30e915f4c85d8394f4d3b710769ebe69c2f914379b4fa1f6fcfc20ff31ae30130468e4e30a43cfb00cb7a84290451ebf51917fca6814f59a5bfd0e8002d945f80b6ed50d714dff7baf9fde5fed0dbe239c162fcbaf3b9d6596e12086265bd3372afa627cebcb7cf78234f30b0d303d49663ae1f3fcc9b6b5464985bd1c16f97d9fb909aad16bf34c753329c746c304fce85f04ce83296b7dc4a666712702776177bcff5fc343d5f664125c24a40ca34f4b552fa972286555f4a468fb6bd69aef737d722ed2994d26515b25011df7153b68067f116dd911d89e7779cb498f091ac96a566e7f1f2c3a3a8e5e2f9df63728eb4deb30c7d22cae3f94e47ca2b32193697cb0d48a399b2e6ede11bc2433ada99af9789fdc3746fe1bd4ab967294b03d68b128c623a884571d4db35d354fe1f6de2ad39651ca78cabdde8b698b54e8069fd7fe30d31f09cba4b166b12fc53ffc329221141f63ef9435b2aaa6439caf09a046d7271a6d221b3440497f4c512bbcd5fdb4f8129ccb105984af5239fb19c34e638c8db0bef9cb5e10af7f16a7adf1dc0331a10ac943e530520ee8a9b2ade55663ddba4c9b1b2706996193222bd93512f31f55f94427b42bcc939cacd580e705c5307407f4756aa80f1f6d08ac68bef155961397cc945d72cf3b857ec4d94fb56eddfd699cd47e759dce5e9e472de10a12c93707723fb106f18ac19e5d2b3a399161b335a70311b0b9bb854e5bc24bc0aabf7a01e5c507691c081e2b4e6db21ffc0c8fb3e4399fbc31c2bdc264d1f494599bb4bf12c95e079a1b1beb2796de4a81c0bb94b9c747c5638bb8922e020c9a662ec3bd468705eb2ca68db981e48b74e2aa1568ac431041da0ba1aafffd6816e34a2d11480ff31a19b1d600483965d7e527726227f13c99d32b65e5ef11c4bef46b06f7d73c43c532d4fed38a5f22d7e81e7966e7a62f661b2c02153789868a9ed27ce4ed42cea2f2fbd1ff2a046c357a3ed212c0cd2ba1b73e044c64afcb8d78c6c0454ea0fa5e7a9c9ea458d3547bbd3d77328d0857327ebbc735f2cfae4fba5ff6cfba6c625a209e1113510740edd0da9c84841f028c386152f245801b8b3083918fe94b0c10580f7fe5604653706325dc3ad557463464becf4d1e2f07d6641e3aa8ee67a2a14dec75f83f5c914402d483a0ed3b07ec39dfde5ea43287a1ae918b21f1dfb90e667efc8da3256cc9051432d3b4a0e0566787c1477ed42df724131c915bb15a9ae624064fd2c9ac49d01610067a73247443f6d8b53fef7a4bc22d31958a9c785e716d85b945be3c964e026c5d8ff2a4f74aedc485aad1a66eaebf8b4bf3586258d46353578db568147116ad19a1dec88984c94a7acf5cfd84c96e96a77dc0bd38204c8a80389ba87167559e523f03394f8073d868198c5314c03db05a5c714b519362b7750487b8db88fc568b71dbe8a0d7ee46f1fe60650c8d41c93e4cbd9c030733336dea5ae416cb23cb6914633961b3623afde0569773bb774da4ac7115cc2161c509be0067d9176197e6541314c7541093fcef0990c1f1154e9bfd9e5e9591eef8a8da6c7d807d41119e155ac49c327f7d0ee332895ce793512235c80aca6e4010d9839b316393926cb1c2aef3501e4693123dc9f06b6813f2d54a9d90549866ac1066a98a6bedbfe2aa36fbd131e9bc8308c83c985906d4ead5361c4c0076580ad09a53b64ee395663734034c163e1d3fa6a66cbc0098b25e6d5a29938aa140944cbeb636c3abfe8a4184291d2e44777ccadba38e6a0e2553a600d6ab751aadfa2906e8bdaac4d28f0d6e16438db4cf3eed7030607a4fc5c64cddabe92feb6c982c8c222cb5e512c4d7303ba1d2b13324d097ca057dd3045273673a0cb168aa7a3e37fca17649e2af859c42c4076acd41605790980a01a1dcfd0e7a636395c85b853491d324a4ab1eb951af0ecb02f87539544de050b08ca5edd9787c1381b6ec467317cf083ce75fc0efc097578e342355eecc5c99fc264c6a8b1470e066bce821f45b610264d184e2995d69b8930fbd7312bc05a010533c6f01e995b3278778da67e2829b99de6eb7d63cde6f1c2dc3b33b7c9b17bf0a3e369912d61c4e20abb1428649326830b65d3fbfbb43210377c29fc4bed8a37af75cd10b7a350d1256bf3d5a70fffff4f7a2d40b0e740c8435797a7fe41f1b650d26018904f1a9afe2ba3c3deb24ab905664e3d341ac95fcd145810aedc1870453f07529fa86b81df1883ded927d5b15fe374d13c562d91f5af3d494aa92b8f7f52ec0667a00c96dafe1f121bea7c7b05af4b527055eca82a2f918020b5b0f7932f3598da5010e95dc747c016dd9ecd5fd68ca6711f9da4902384f791dd311927ae809932bd4c638b091e05e533ae10f6ff785dac055f650d28cdbca9f0ee87ad1a05c104036d014ffa083a3360417fb2cc4810549a072106d6c18bffd9c6fde043d392b91ab9e951f7c8d4b2284d21636a028ab085465b2e27d2cc2041cc9f3959c65adce9f1fc8fdb0ee51f1c1dad1845bcd6ddc40673b1f0cf1fdadb03db12b3a566ae7aaee4e3527cfb60d5014f9be55560c7c4587030be1ad6caa863cb4b57d5b838c5293c2624f4e89b400f348f2f3a529dc029883f1c3f8a04d1d95154d4a61311d1940cc92dec25ef8db51bc2f03863bc911bd3866b6d86735af6d2157aa902410ec6fc33ac9a879a70251de9459e5ce4e97a7b438bb16d4c9a18c5b837247208b0ec1fc3711bc8db093b6c39bdc888e3e1d93e3f133152c8adccf139d6b9f5512d6cc66e48ac9598681a0ff12f478dfad21d48277f06fc1ed9b4e367887c24bd61e35798528a3e7ad0736f97c66ac0a7cfb857b7936d461e7eb88fde71eac974dbc193deff698316afd229e7dc5cbfc3bc7c88e16c25de5cc283977bded031f0cde0008afaa19f2690260ed9b561503df3b473294a371869aaa18dc772a37fd82e992eb823aa65f1d287c675e2d29c194483b679def45d234d64485c0cd6a706e1af03e62da9c712ef3c8749168ca9126f3de7e2f04d92d91a3e84fe03868f685ccc88bb6ed55ba70786e02cde263707c1ca5dd3e3fcab2e089501a0e9ef1424e87a563259058f43a7b8d71e1e1d1a74515519ff20a77738de9e9e7cda8fce4b5790917d7689efbc369ea56c1db7b7d65e93e1b399d6a07b837de4ffc0ad9acad93323d07afe7d7a1effb554856f75cf3d5c3b4952513adf5e8213bca6ce5e765e99279dbca5f2d1932aae68c65f31605ab8c81a1f843395b005ff00cd9e9ba19468ce856528a8354ca17a8142459a46a7909de7162ec644a81612ff10ff8814645750d8cc4f1beb66fdafaf537f63f0a5117c370ac42b5af8e3737e8b8d9026ebd55be8e4fe314e6456618b74af6a3c9945c4c449bce438d8374a516070823e660b38ba694e44b40f6ffa96fc105db5b6163e14c7acf356e2d0d772a529e41743a3f818ba16cd8298592875429c03049b587f8c1c2bf4ae89aee398750df56b855460e9ec08f758081ef36990fe9aba2ba6dff97b30441e4994b6b195c3a5a64eeb9cb28b53a13b7555763d14a27a4ff0b4fdced65123953d5db386ad9ab9e705d507bc42037971e5fe3eb404f2f01a260128fda3135d6804c409599b093e8838e807f1fad5efa1a2665179201f50747b6691f87160e0c09b0d7b74a0abb5566161423d738d142cfcbf4e516474f32cdc6f4cb797646a6bbbfec7e648b7d79ede18555d1f78ab29d1c2aae05a3cd5424a896bb8e04b60e35512746c6536dd1d38e7b9be9c0a82beb6347c39918a18b9cb8a3ea109e2d8f2ec5d6a009fcdc187574f858ed82870390ace73b81d47470dd2c076e027edb2ab5de9de4c740f3305a892191d1d7dec923398c1ad1827e842aa1f1db20e5b366c9b4d04ece64fc60c9ba29d8318ff4058b9c62120f65ab0d001c4c9f58286c1eacba64dc9b01bba4ec47aa61f5af97ab9a0fc250a71d250ca628876694ff185dd416b48839f9d3fd311648b09d669bd16c7678845f2bbfe8dfa4e19a5c02d19777559b633859fae52bbb69b06fba6f9740027d5c7de0442f085c5cd11653bfc23fed0ddd42de8e6b3003deb15edb38ad7af917e8e8d336189512d50abb9ca9b9797d52334f230e903d2bc0afcd1fde5a91df9a9f9d3a04d2a94c1cdd2c1be9d35eef0760a1f0e169d7c0dcf8356ccdac0cad8015b8f8352a4efec1de5b7f09f8922ca96cdf2bd665ac783cc8b3a21bc5ac059db7aa4a37b6f15b5551c1d1feda7617b262380adf7de4038dfb423b39093808dd388229a083636b21a6ddb509badbda7af7ce3ccc955d6a3014be4612c087fc5184064b2756fea59d10d25b9e6938dad503684c5ef4842d2f647cb3d8e6d9d25e9a2742bee7da1b8b5e5c192f1c2a18c94f4e818b9e7cd03da3a9aca5eb464655d5b7011828e700f7e3476a95a6c47ba088d8789a997176b94f4120e899e5066bbbb3b7461fc5dfc746b831358c06b38c059895368fc40acb00a984726df4349a32d7113da6529897a8b31812ff0de2069ac46cc2c8c7230a34aa5aa5d8e091dccb17fbbfe983b98efc7c8bf31cf1d5d238d2d369af46604811ba6858a8467ad38ae56b4bc8c69dce96dbbc08a1dbc55fb9eb4e3a62837c7b6c0a90defc4e05710e7d32a5383e34eed03801014bcc04fca39f2d9da2cb2db7148ff47c0bc8a564be41eabeb5754e5afbaffcf341b1586f19314d1bba9deaa3c202ae3702cb253f5f75b3c1fde0239f72e579e33c46afb2d7c7667e4b3d938e2a77aae2a91dc9681ed97de733576448c7a9776bfc89c6e8a1f7cd965269b16027e1c25fa15379d6cfbbf8d76f73098cbf5d586b412c996d98543d785266da018765005f1a88715e952bbcfa76e453130dd59110bec61dbba29082146c82a8c6350e13ca46d0310d21ba299bfa91623632b88ac21c01637915be72734097f2b67b6aa461d3035a4f197cb4e46fe742d6cf787be00bf8082b8afef366a91ab448d7f10eb327bde33811ed54599a9b5d97b47169d41a8fa59a4067fa1a44ea134f1784bd7705c185b814ef84e2cf0b19b8b8b8bf424d276db56f4e5bbf2499626ffaf7cfa8f2e3d291d39a8d02c93d9a57fe3efad4bb5591f7432ab992b243f75db7c158c159415dc4025e64efaa6ebac865eb4ea7471f661a8a3822d2c34b94b7a7dbb06099b8a596375f19ef548a4ec3dc306c2bac9ea602f79c2e2dd3f3802ea2027a50bd25f41b940ed39ce55075fcbdde679fb26bdbd3b32f2b2515e9fc7b8ba2e54c4d318366a09e15d83d5e4c53e3876ef1219adae9f61ae0f8a2beddf7f936ed7daea17344715c1ebc8d70f7c38bf23305193d8aa35eb8e40e7de1c117057cb35894793f8161b30632551021494333e91006464c94d6f5b18c7296fc48c7e7837356f5ee618851438050b829800cdf5f169709beab35fbe5febce621a34989a16b22aaff8de0f2963e5fa936d4d8e3aed4f8ff39cebcdf7855508bcc2300e9dbe2bdc8ab5b2795a240e9f529c63e747bc777e97ad61f94afe0eb36a2cc3e664186f51d8acf6cd404c179fe4028f697c9537bd6982faf76f04ef62bfa59fc612758abb8ac523963b83e70fbcaa1ee884211ae19951ca1c72a73744ae419e9920b9c0a8384bb221ead35e4c0a6cca3a2fb7deb4c32c7024b71db515a5fe5afc202122ccffcbdc8240604a180b74cbba2c8d4cb64711269e5ead7aa5d48404fca2eb1d2320e3d17ddb4cf50076ec4919d34ce7eba2f9cef09c3818bea960af748ecdde9d4716d814aa9c18c16a03c6c2c4da303c4855084e44083b837921501fdd0e3f11c9bce63c13af22ba2ee7687f4c2605a60fcae82102da9d66532400e6a812b9d63a0db50c4fe5623cba93f7fff83aa14182d051336621a00d1e6e17823c755dc8bc66648395ecf97b1714053a5cc23226037a07aa6954da5271a1abe6fb9cdf5008846a9a8bfb8a30e17c8495d4d0727285e79453711d563fcc1978c415b55a023739122913e2090f71b4b1927fb91584a96d6d789ebf4fc957eb3a8abbf1dbfd99c6d9986748fc1fbd156fb9a9575cc26cc9cc7c32ea11ca1aa50c28298c4eb3622dfbe29d499f5de18fae494674572d1bfeaa44e543d76b0d4ed3f84f238665eb225053d5c6b600b06ef391995d3f23c3c6731a3d1f0c5aa3212f58a51e0c62325be066e22bde5df01f43887885cb36779b804e4c3bacb7eae481fbae1ff26109aac64904cf752a32b022d643cb0deac90e585fc89d80b4b5ae055389c1074b9e29f2785d4d6f84c69204c3a36b54b4bed945dd4ae136c2b603197ad0302b8ee568bf26590e3448efa62dbd26e477eff565066aed7a1e3fce0bd797414880db48c69446e2f36eb72d1193de830800d404b41386c39ddea9ea6f688f21ea3d704b11bd123c672f3774b4e4acb59dc7205d5d86e751b27e01ca3f370d45f824f1a6bb6da613de40f97a03458ae0908a25c262e3c1ec72cbafc1a3546faf9dbca264b3efde50e1c48937904d7064d5c91b298dbe006d73c6a10ff18ba0cf2af0ff3ae8b480757f51bb0b15499327f5c440eda52a73ff8e1c175696846ba0b9f6cc4029bc1058cfd61cbb4930ee3ab52c83aea4da588400efdb4bd2ff5da30f5f00e1b527906e21ccad0aeec365920b263ff7fac83ad1c8f0cc881184759821eb0617b0a7bf78d2a15f767916830fb24e6c4b76901112786371d97c72faa26b4dbf4c91a9932ae30b356ea1cb610399b8dfae6043f16e01eaa4c7d666a55dfafd2ffc989de367ec609e488d9589cab005cf217814f2d3b744dd3dbea1df3ef2ced98fe96717580d46ec8d789d65159f33810c33df0a733281cf97a78414f9f69745bf97f8858f7bc3b2d633ca1737ac122b28dd20ece669b02b1821b61cac5e0e1a778ea5065ae088e9fe071faed25ba24fb28723fc68386dbe598db3b6e020fcdd7241ea81eb0d531505c48a5615c181a33b175273b23c18709c95d28dfca3c4195b171b3b490975d39924f629048b26e38b418946d915c3e0ab335b9b4553fc68ff772ebcf7edd98fb9fb7d26cc4ee30ee1e8102a2e0e9c9b8043f7de0cf42cd5bb67d643f16c71319f4e8899dc21f5e688c143d8b098f69b2e98e9934510013079d3d504646a204ea6adedc1dd4a2d2a6b88d6d5d140f193901fdb5183d851fac4be44dde56c7e697416b79cad23be98794b392165ca94f0057b45139b87f0d4162f35044be8c10f2ee35442b400561f2fa6f6ec0b0895de8fcaa45fc0045b45a148c5df5ac528149e963e7c8c3c3b609175dce13572e412ebad33c34806addfa62d340653fcb0f45fc1d54fa8efc5cc7c2544de468bb776405d0821756cc14dd2c2f6c1df7e7b7057abc9d76174d4713161d902d9c2e96bf8a32da00af0dc9846f311f4581437e2c747706300638c198a334febd5c4259497d8779663c3d1eb1370663c00cd0673214c176260be3e891f752df6d90d593ea85074c6638c29c6da1792d8e50ea631a065b912c4a5355b10986a80ff1ddb9ecea85809289e0b6abda71bcfc191c9e6f2c9727b44b3eba2dd3d8f7142f64f2fb756b0673f1f1602b69b455fe4eb86960efc78596223dfb009f73b7ae676f4c9e8d22e4cb5adf7e7881a1f9539d913ae813fda57ab888d37dca4a7909578b4798d470fddf694c27cf0c51fc9e6f631bb212cfad90599b7e854c8c418651d8290792aabeca5f9383f4ebe79a54aaef61d2686fc078b3d0b454bb464c9c6a61370799515a24ed7b7a7d46f6d1eccced45c41b4d834b4728490f5aed20aad026716f310b496b3762a86eed388bd0d46fa06289fab436c53b176d8fbbd23adf2e0e331c42012b7c2b9f5ed6972a9ed945aeb7426be7a20ee09372193055944ddfca895b6962c43c3a3a14ae126248b622b75b89611c045c087e81d95a8ad111c467dc27f3a5c9e844c56964c94249814a6335c644653308d0a91345aeda398125d27183af5edd0b044f543190d4fb16d37f2591a2512c198519eec6dada052e24d49e04baaa966b5b4f47e55abfb22743b13c8c34ef4f27066d8ac12f8c7d86950ed82277591a4443e0b1bc21760afa4ff6fcb7cd9aad36f62c48ea431710a610a1162ebabfaff16eaa8bcd49c7665eb34502576325277f40e62cd5d2832b75964f7aec6b65a7cce0291f5675fefd021df3bb10c7898038c5c1e4ecfc1b5fb9dd66daa5453cdcf1337ccf6b77436bdc8661eb4b371626e100a1966373fcdd93143cea4ffbd4e23fbf944c982ecc96c38393030598ec800a956d34f9c62428733e4caa12a567790e98f97cb7985c4339cb2a6af2b40d1171c3b1ae84fa80750aeea16a3da6ccfe7aec930654e1e6b752b87636d5b664c541236fa0a5a25f56c96762049cb19b91b9fa8c783e82c1c0537588f325c574e34b6d97d724dbea325d6318ff4b1dc7d834a0cacaf7ab69f6fcb9b11c76b75f13a53b9889c0bbcfd5160f8c356f308a1b3f4b9805133663a6a05e842499a8201f9aeac5d5d194bb7658225fbb14d74246e1d1eeaaa546e86a398c3599f61fd76c054e1a2f32b2cdd8708578fe1aa787f5b97168b0bd2d6a2b65ab33b38b12f7f90efd2cbb9730610398e8e5a28a992bbc46d03028a3656f17981ae8f0d6d11d2607ca21b63b0d09dd8e14a3465ee6a1542b433011f1fe37ee87fd4da3ce6f1d991cbb3694fd7bb6fdd498a290ec87582f0add21cb709f190cca4aac677f63a2593077829a0538dd64d7ae381f06d05177a5645592aae429a98ee59f1432b3a0f6e0129e05d7aca92402c52a5314481134c71b6c127dd2b5dfdf132c9ec3a7c63952457696d154f7d3f146c131e0ae1ad1ab034e48e1d6ead68fc41419316d61498c3b4a8651038c995c5eb24d62e846d1b736679167ad2169ed07b820e3179021861e0f725f10aab0d40210e0e025b6deac5bcea9000a7ebae71b000bf2a78c4cf9f469a08dcb0dc38201f1ea0fe182b4cc8061f1992302848da335556df2f410c477bfee824a4ac1b3246515a6df87abb6d0df664474f50fbf31eea1bb8e637b8591cda68349dcf710e0197d2863d14243b502b0ca77be72a1b0cdcc57184c39d1ee94cddb4674c40499cdbe1738a168ac500801a6eea017e202841f84cf316512fbd3168a1621476654cc35338038fabf6e80a6b0f6d1b3a4c1f15a5d884f05977af85f8b10bcb24b3a7a85e152806a4682750c747440746187350b84cbe424db51c1a0ab56dc499f9b172ad469f1554084f765622e44b34839bbedc543c65ec5a82991988a623c0dbb96e072f6e8cdbbe9bee8a5aa92ce463d79c6fb5676cfa5eb682791004dacdc485da4194b0c38a21089f9232904c91b2a11553c7b6ffafc2fab518a7c0873b8afc61dbacae60f40447bc403fa8f26c01d99a1dca53188dbdfcbc0a87e07aa0a65b5f591432731d1773b61d56a863367a1fa1d14dabfd9e0445c49e83c26c86b0abfd51b127ecc5c63e7a038469aa12d845726d8edff5c958f1071173d7c51759f931cab6f8907b976416f4169fa1de3d41dfa2229c66bdeaab7f221f352189a81ef91209fc4cda25708b8f332c493aeb253f737ca99e4943382fb717616f9f696f322b8dc58464331fc59c9e1b6bc045a8d83de04dce15cc69275497470829505995758b40f80c5264ca7b55b826711800e2b37019f0972ab94e8fcd1143c273bf3f8b1d68b402c006878e20e60c89f160a07f26c8e9ab66bbb98f7e9b592fea71152b715a8ad93aedde786f3277c5747f0b1233b34d9abb0946b8b457f646f33e22ebc0ce948cd96f7a2e7956f11956384bc7e1370af9d9b95c543f22e055df570cacf963d3cbe007e54c2fbb3b6a9bb2e0738bf34f4b727a06bd759b3b8999222fb4c2dac684e61707cf792b4ba1d57c7e3d62e7c7d39f8fddb133b617c992cc499d073f1217a87d42f75d29c23c65fd0edd298499b350790a38b3a32c600399834b12c80298b0803a0b6a7c89a892052eff6974a9f416d763a0d5ce1b355a13559fdcfbe6fc32426c84bd5196a097cd29f007d2eb2a0db3f291c8f98e9883231f55e574ddddbfd935378aad54e03cf162b7dc43b336550950223fafe26dc1850763e3a087887f9abc9b6894ee5a31fc3eaa54c7f382bc81399f3ae346df0caf03b3142cd708dd988ccb489c1a387045453133ef805b9a203c1ac3c2a4d6e11f41cd89d4ff979f9480cb8e1acc7b6946019ac615e34b8c273583e5097a739f04df645f94934a5c29eedb5db2b5758ca8dcd54815894b72dc12086528e12d5f290500dbf7a88986acfbbc0a711968236119abf35227511e249bfcf850af00672acf029c45650ab20e53c107d729454bf7137f1a46e14248a3d821b20148569bdc39faf091ad4861cf146d2e98e753296f8c2c728e8618200373207cbfe14498a419da0a6176d6a8c5db6846bbb93cf9e1c84f780c214ffbae0d9833557531ac46db7705cfbf1ccd88bec0073ffe679cd796ec89831c76375879eed4ba04a8f4b1d9c083f0ba2fde7cf980249c911dfeb4796ab0ee8f8e05f91232d8b8e7223f825e13a8a5e62278e3cc56da0a2b8c01162d9f30f1e0f3ef483cf675f2dd2aacf77fdd53b540286c238edd9a57a4e66c70720130c0f05d8805c1f9a99613b5551073279e16ba8627bd01089d24fec5982b7d2ec37d4b0929d7c7663089e9132e4051ed7c94363d800f54a39983c8cba409a0a9462ecc424cfc853ff87537dc815499912ede2ccb4cb04ce15bc68cc0c4fc56c413eadfcf4a557fee5a054def17fa7d24a6d8464a58fc978675b80b544898a10f849cb0efd9be1864827b09d27160a6768f89a58cdadbe306f9aecc6636aeef31a4f2b9183e6c687d2fcea6d474e7585faad3b04c3207da8e0d7bb200e43628061c2a5a14705e859901e4e0b4b13c9d46a80b4c343e59a2dc43a8d7cc2885f1616da0c4e3e75c5e0a9d11bd82a17269a3da95860fa34f3e2755fce512ff06c06327266295527c1d316dea431755d9c8a1da7f4bec200c569cf94ec004e49e63ce28840bdb94b2fed794b8c411bcebfe7df07df31effd8c246ceb2f0a0810552fe2703b48dd00cd3068f24466854c6ed2889dcd963468983ddfbe0ee9699ecbb428f8062055d46346531d0062195475544eaee5f3cfff3f7e69b7c2f25ee6052f80a58e9665b9dbfc988302f17f4335ae798ee05b27521cccf23351d84a6652bd8b18015c95338745a0d0dcb9660121b6711ce1f284513787cfa21354a7786f3ba2b849ff3fee54a9a502cb453112fbb4e0a86099743bf2a724f1829f5a86b6734185021bc48075e17d2b45d2972a1270f76e583b15de77ecf7f4fe0bdd4e5ae183da412be2406c3278893118213e10773f9fa46563b751165eb01f666f86e5ba871f17acccc012ddbb164d9d6c9aa695145da16727df203f05577120c940d6cde45860d6d55206ba62546bbb85151eb72d56a6ffce40c942f42cc7543b5a027e3fb0de5b786dcefd09d85f7ab944388f641d9cd24b45c2d6022d08413cee17b76aa6e4ecd22eef8593e8b1bbcd4e7c3c9e7029c17b788ed1898964317d538a75ba49f477c0c7fcea93e08b1d3009ce3f245fa97eeec2a522efbdaaf8e776e5d2f9f8e226ae5bd0a2947fea82635d4bb483da9640fc91331c286564e17f1fa355c6449ea1b93dc89d1dd7e6dd1a0fbac57459b065abdf6906f3432930ab38c5bdefb12b0850b97659a7656c8cfdaeef1d8251bb5f77b2d3c2da67bd061d1e742f1bf372e12fb005a218f608510993821190ce2f86b8bcf89aa2b324c78cadd0d028793f0fbdea8de6be61e336aa10f1ca2077935e23a4ad63207530f605fc0ba587c6ef8b9f2c7f36ef1fc8cd7af3fc0a7c34e435085516091bba85f5c12458480be6cb6b71f1cf66c53ca501a36a6f217845253a6ab1b4ad6901dbe8ea639b1a22e08acbb46cf597b1e401e48fe1f9fba41b83d5136d103e0157f531cafc9cf19c42a70c31fd8ddad69dec59a550e52f7527d666820e136fb3a8c6a027dcc56ed154d07705f36249754681ab4c1a16f391b17ac570092230788ebc0ab64f402c43bdf840e5197f4eb36cf181d99cb42945adf64e62d5048390ad4deffa7e65a513458c25a8678556fa747462223a552da00dc006f8d006d1e979fae4a373551d57fa35a0c2f626e4b3196276e43a459ae57b53f749e6290bf5f7311bdd8da3359d3d8d706c8f86ece4530e6d496bf045d02d46042c210b4406ffa2aad1365d28e2be4a8d5df7aee584090f4565abbd3ffb62162ce57a99b9fb2ccbdb5a70cbcf3603029c85641b12956f33d284f9279a59cb8ce19cbd18183f1e7bb431dca41a774dfb06067f4d252184dfb4e0ffe431f1ea9748b950b255a6ac620d373dbb30dd013e20a70c6b81bf5e40207261d11a29abf84af0d42da68e858540bb71f4f6366500975f08c9ea2d97d6274c40a573a64f6397575507213e25a392f5ec655a25f4b796763aa9490a51913f3f5000aa3a5912cf97f67db79bab3e0249c29d28a1dd86cb726542f46e7bbe9d845a8d1dabcf131a290bb1150a6b520f2feb391f2e9493f3fed667e414813c5c578a9de05ffc9f13de69aed3bdf5ac45a4326674e9e44b8902c24f359875b440139d36576207dd68031ecf78f93d1c1061103a6609d7918f00448b64af1948d1323c4ca9347bd4f63219bbd367dec982ea43786866ab1f690a084e3d457deee3de517a7ccabd88b28164ca2767cce7ab8eba8f0813d17d30bb63a0d59ba0ab9e8555a162349a4ca84fcd73078a7a7472dec5753501e86e221fe5ee5d2fe4ea38b3d2b79bf21eaaf9e669041b9a498a23813359acad142890399e50be96076ffec71d4f5fdab3193647b2d50341ccda9d925d071fc66b011eb7f830b300845a0ee814381100f1a2c13d52bd6bf02661ba7eac44b6f5485a00d79e01425b3d65d8b4ef4561b131d063951bc3437dde61527a4e8b514dc3161dbd27854ce9dd6398617440f9a360ff7c74d6fa6e67883bbf3ff717be00ace49cea74906ad260bbe2710218e7ded26fa8e92f6733a8e19d5487ac140adc9ba5cb02ea1eee2a8df8a828c1d7eb519ef7a9beb7a93015367b1ce23c434e9d9724b26892fc5cc657bb293a2de837b0b00c47ebf467b5d1ae5fdc8fb3e1aa13f470a08a15a66e3521bfacfb8726e5b3fdafa0d67d59e682fe7b8711be3b6fd6c5cabb33f7d79a70c48edaefb226bab2fed70cc54a5a8dd155d424cfd80c54e4acd92c51949b1614a014ba7bec8dae68dfcc2606e2be3ef5e660d9eecb7dd162cbfe14def8f6716ada0687fc6c848d4c83d0f967bcbba4a15b1d04b021fae9b0b50625c75ea32226d7d10d16ebc70cc277434f23dff0edae8aa1d70d26c6895de0a92b6b8fd1dbd2aa725ba57b3b81f1649e9cb6e0e2ba8952bdc5e6548c5fe4bda6148441de6e6ee99b4220069e98e0da95c40b967f3f8d39ea6c12aa8470882530b8b71dc6a95e18d6b5c6e21c7c0f577af0c98a450caa714e7c8980ce55825e9c4d2b7f7613caaabb7f82cbe34175d0e09fccaadeff47b54cd9b17ec9b5318774518cdb00c69944e9ef70cf41c9518352d5f393147f11a6fc0898d90c418748606c14efaf7d346f3cd713dd7061255003320a0d91d63cbc05c88c9e1f3047d6c86a1d3733e2d4a6ed7e0bde5ae63208c9128617503f03921545abbcbb50102cae4602e3a68bf486b71cb5e1832004a878e4b090a99ac6cb86d782e33bd6976dae86b857ddfd82f75acd8b4b0b7c3a512ee9e10e4d314b70fb859c18e676a3fed00273be50f28f01f9a0a676182ee4bdbcf00cdd1a71c26f3dc337de83e885ffba7fe1f923e6badf0a690b25f763379ed4e2d6e0289eb913230ac873ecde0ac99611a44048dbadd0e5d7ba5072e842357d21b0d4d074f9b92c21266403ca614c9fa63a61f52e5ecf9ce971479954502cbddb950866eb427ebf88c0da0e84dcb6608edb3a625cd540a9c49f775423fcc0c23398e09587d45af62a977348e35ffa747457e74fae4a7ec05e48bf21b4f697080dc5f5af322284b723ad75d58aa7e6cc32f56cdbb57b391c021e18cd1a400272c0f46faae39300adff8112dcfec1df6f99558cd7ac61164762e1e36b7a0a1e14277a7fff19a99d21a82620571972ec7f560939532eaf90d7104b3ac4addc4bd5d35f5ba39f71ae994aa7a553d76487553b672f016f96e5fab41c58484eba698e134595ba4afa6ea0e8c546276fba9d04bb851efab23083b2a79cd42e70408b26e7d1764e07ff3c469710729822c96f4ae01e2fb2466214c889cb6c90438b4a62ba57f6cfb64ef4f7278cb002492c46dc2220cc6c06c7742833f7e1aca6ffaf29b1c7cca343335b6a1203c4c3e3558cc6428fd4dfec42db494ec0c9832f47c270da3c5170e6e1b7774247b53daba7d8a55448b7c3af194d89c6caefadfb9e5adcad2bfc29ecee720a939cf0f53a9e3846ac83804e288c25cf8f57cc758860522d7ba3aeb4fe166d61b2272d226c524903545899565335709d7fd560019dad1a969d460f87516e0fcb1304b045f3b264b68a47a4f6103005f8a814ba62d8c1ad74b3e0ab8a3028ebe616802451a193a9e34a7e056d77120431ad43a9eded032c499ad3a326527cc54483b744c697392370402b7217634f9858558024ab2d778d275976d54b2aa4deb8cd4b376359d2e180afe0f75d9b4d1c456e4821a0859ae1b0a26175d773986dcab882bfebb9d4c74c8615d9a001c1e5d7aa040ee88b29de77f3b3238a4a79e1cb1a59a5f080816a5dcdfa6d6da9298016a4cef9d68a07cde44c9b6452772a3a95778864c84556dca5979dcabc0cbc07b784e29e67d1d2530c19d446e0b11e258f82b82476d276da1faac7732e36d7f3fa308cd8c5e8a9fd4bc6c98e831d278bf0cbb879676493a570f888c68e8b188d0312a3942b58c37594dd4b840fb9f5d94bfb64fdcd5d7af95191c9a8b415d8a90fbaf9670b5d7670cc63f785c23b9c51d7277951a0ecd267a70131b63c31b85df9b0cba51ca666273bc01be3fe18a82f68005f912e69fe553a7bd962af7c025f76db4872816dc22ef0624d273d2eab1d1fa4a46838379e6c292e7f5e5791e5426b6bbbdf3a2c812e2fe3d60fb8a9c8b7ffd64fedf04ee48bb8ca2fa168d9ae706a80d537aceef5a1f48ec6e1de773fb986d05aae87d17d5db3d7c953a494e79cf8f825bf2ffd0b2f34f934eb3b2d25bc7988e248fd41187b68bd597d5e45e0cefea08cb04cb792978db3fae381caa2513982c51e147cbc5f7b24f576d8e84970bc4d635cd9c728b6c1ff4e378e7c3f9250c4e159cccb9ba2beebf711f324119b9eb4981c9db7094340a602b0a95573738c885be6acc3f5152f187ad9fbd68938145eb6cf37cd402998d8f8473ef9b2b25287caee72426c6ff3fda88d15ad2aa10389356a0b1efe72d049ab48ff3f1a73b92539c21dfa4092daae096ed1c2cf286bd585a5f89bc26c904b0b93d9c2f4a09ccadd185a831647663991b3c9da0816d57746f79e748584045b8da3957cde2c28f5972d5d04fd0e7671bbacfabd19e1c3c7c179d08d37af474b9f0fd90888f8247dd07936bb72ed7e67c43ef0ccfe0b6833fa7c08309226dadadf7008e941e45b60d3740c8575b52a4eb53312dd092578d01d825f9babc91f0981a98a5b2487c4562b3a892ff5e28954580f5deba68871b0ee89b8669992b6dd199549e9afe280d2c8d915be1e754edaded432c5a3efb042f17ce8b89d85f963bed72bd0c11abc3b4ce800513a481ac0ba3363bb5c1001323f58e9e691e5c7da773bcd7cde3c26725d2f8caf37f1684e52312b7a72479d234a83ce46f236d71752d1b8a4a1f9a7425fb5909a860ea6cc0e2c4f8653e6e95e61e1baec6eb9d9a600308b93a394de6bdbea7e1eb2cfde714921c57448c0a326c7387f5efee3a13f322df3f9b4df76ed21755f1b440c9dc9d587ee8d094c72159bce5b4adc227ed4e064e5222c135391dadbac2b5e502353648f7720f10a678779670834072e5c6c3048c24b0f1b0fd8d2a1144ffb5bb916ff01417a44d93ade526c4f78b72282f06e2fdf926a5479bc3d9d45ed44f7314e79495baa3f97366b04982a1b05b5786f04d6940f19a49edbf480401687d879db63c8888861175907c4a5251334b2a843f7d0bdd3f8c146838b1b6db299a2a6539397f0985640980aa1e8d5119f48e6bb4c43a4e492c54bba03d323060d9a86c6adbf932d69bd7987aae552eb1554f15384a926da9647eb0d6ab39f669ce36d00e6907cd5d9bf129a8528a845701ee6ba70972cf95575046271386fafeb225c3aabf76b4e46b9e993ebe22ed847befce1cd957625d35ecfe0b1dc8b680fe2fea8f2c1b697e07f805ea6b543104af454bedfa31bf93b19ec1179be72cf4ecb29574677c4bf1163623ff7a211309099a95f2e18a19f8c44ae6de7bdb88bd3baa43cbe65e1193dafd4a59fc422f8456dc62060f83efd2ef045bd64f71f26aa04f3ace49cb5cab17e0f3394cf5f09c69e0bdc3bb3355d93effe5de2127adbe7c5f213111d0824f006f1c2fdf1d22979c5cdfbc57b526fad56cb1db634ed005b52e794a663607c9c4aafcabd6375f915aa240ad6c6ac86e30d7d6fa1cfe135ca317810eba21e04ddf8071291bff94647296e8f836adffda682072acf811bf564154d16f3275dc8d08e5508fdd8beff34be55f27e76165e88d45865691cdf452edc02149fd7fdde89745e055a60f02a1fa55dedea6091e6575f91b732f8b0f6341dd778e0087e10ba41438b897ccd76f086a68f93f3ff9fa7cad4dbbca76429da0c7dc666b60810554c39c9b326d124d47a475a02d8a4d1fbbf37eef6b55b4a04f0c4b01103554a9b24fe0f117a7107e8a143f19ac2a5a0af76b98df9bd19a92309b526c45ecf80a2d8d3b0063f6e4caffff51ffc3045cb01b88ca356631e6e7561e01327cf5eba13c6ce39dce5155818d6c8b7607023392e33e94c3cb6e7ee9aab4a803cde4b69b1017aaa62dcf69d3965843776d4c88b529de1abf961a154177a1d9002f002e978c423dff896c7800bc1feb9ed43fd82db694971ce016fc54d8f0e3495de5e736e061de764ab9bc5946e6209cb870ad156b5e59ed35f3c42b5e6b4b3ae9dd60db5cf3bc90814ebec849f799347e33f76db037e71ae6491d257f9b653c4e240de9f475c370ae44c32bb46759f21cbd3068c22b6433d39ee9ef5ef4fb9939418b927253361897b4dcd25d68b7ebdd5000a038ee678efefcd0a3f0cbf044eaa81822a65af218ed4e9d488f693a6bb9439171f121c1955aa93996ad4c05597896bf14118ee3c10b4a3edbeedfc65ee2e6490873b4b49b75b705a00215f98b64252ecdb3b8d923a19464da59802110948ccc2c62c43baf3212acc803c9540c7fb9a23f652b96c68882058ee6d7cca597ab88dc0eed586b41484479495ab460eb460faab3fb83cf89ec2495f9c05ed3ef6928ba8b5dbee305c5981709617226849f3f3598f5015de97c923aba45bba64e70cc9a0ab604e193faa10d39d35ec84c01fd288bfad3cfee7088ecf4ae636312b0371852152016655d2b798139b27a625467a62e757d8c224f568d5423e6c1be110201c88455a4222fde47b39113a2a7dda3e51187f5aabcb61a078843594e96a4c91174f79c3f3da5b610b48773e9197a2171987dd7f8e02a38958097a93c602d1f4973df7739dfe0ff0fd158e982c5fbf12e02480fb490d1d7a9d418c58251cadc96ec594dc43ed721ae3f019f65a09a8900470e56f018e27d8dc119d15109fbce888a4411c2a776392ba5f86df1ea48b82aff27bca9d7b9e2f8b1dc2f0354238b95b3617fc959e2c0e2c92fe6deb4ac5ab00ae2c908a0cd227e329acd9fb618ec44c398b50ed010a59a8c27b91b674c868eb45c1f72d7fd5d107dbbc2f6c903b9671465abaa12778e54648a7920bc53a4988b6e825db03254afb5abffb09efbc1184a25936a21a83161fc163dce64af35f333e6e135f128867c8c8b3db284b0cf7e4f2b74c547a70e1c41ed149b35e01a0266eab47325b36cee922d1232a8639f45840c87718769178bc52e435e0c73d39006734da6a9ba765a98845441bc0c1ef97636b0ae8a87635dab6fd062ad549fa2a356393b1aedeaf2b8d913e07e14c92e8859b43af5c9296ab08546ec400d5d9603fa7b8cd2d7dfad389f08d7a17876e06e7242b605e8a4352ff88d823a682d19cee72f3181df823f5c108c2d3d108d98b5de60d020574ed802e494869f4695f1ac3838b3bcedf821f60749bd52351213e4cac67916c9e4a15e56fa469e4e0db2affcdb5113d3df6387d2aa01426b3f07b41f5667c741a5e72238d5651602e14a97553d7adf06a091032b537acdf7694d4ec74bf1252c2aa2d5f9355097c5b5377e543d9bc9d7546007bb0427a05dfd8d3ff2ed98929227a4a462c0f9a6f2028688f7e007adbac8d6b6939c64350a6777858de99b15dfb9919855059aa4cece2ea0f76cfa06d09bea9193a75bcc280210e7acad53e530cf6ccc5228709c7f579c7d46f5d31fa27da5998a0c2b7e9da1a9ac6f3d1495ee71694e118deb771eccb3eb55a50b20083095338e2433b382fd74828ddd3d74627cd4d70a7e0bd5b280b6bb7a600fb960618905172d2d9c865349f211cffb57c39c439364996cbab98b00c71a9ca36e6f49d0d6869f2ec306bf38804cca9ba02c60cb82099fd5deaaabc159a94bb6c5bfa114187bb22b7e91e8cbadc217a96be4b7057e50808d4e6482982b36c746b21e653a223743b4207133b7d91e8e7a00b24584b59f110e91bb90f95cec0d1f699ecff94097e37afc972e37e0ed806d3f24db7c96f920cec65fb0f498f49fd6dcf25a30d102c0caf6ddc90bac43d67d3cad2f76a023e687a0e90f5dc2ccbacbef405bbf29a8ca1f4c17645f2c25202545c367a7031e1d3a642d3fcfce1a8e830b4bc726e462313dcfb2e24ba6e30e68c79e5e9ae89fe9eced188b0d2a9b0799d97fe5e7777e51181f1bada1798e941f9de69c982eeccf519da3533e19b5db17647ba43b25c2700f9524b25bf5e31004b9e94cd5b99363663e3b7262624e212a5046aa19c888351ebf60d0fcb22daf9f7579dcf08b7d780c748dbe9564527cfe27eef47b560206fb21a2ff51e13858fb11567ef8e04fcd4f62c4276f2a21d7d22ac99bc9cd3b3a5a39df722e030d0d19fc115c988035b40bebe069a87c35f8f28a71da77856c742581d3d1d90f2969f8807fbfbd5c7daeec7201b020f703104c55f2bdd7c63139b4930d6426ec763cbc6b6f2498d14caf97000e53fe1db5fadf134b9fa46673717c05d6db890494503987fede78a6e031496dccf1c25e540a8c16cfc8a4d00b97a88ae71628a443b15adfb0d6cb7b15b764f074b0e439b4aee05dc5d83344b1a542a3346265b5898cab2f76fa1aa20fcb411fc552c550fb386f885ff83ff1225ab817280dac382fb99d192501945d45a1c1ec9f43446dae6d6dd0c7e254d602a63eeb23a401a7c5f4572fba6fea4cc2227a65d29c981298d030f5ff5f57664d28f8aaf4dea2c63655fb63d28f6a064d0a3cae88421b40ccf7c2e68daa62c8a6867410230582ad47b9a398805bc7ac7c8ee043d742da42b51d055ce0221bc8f4267a581ff70722060d57a41d17633fe9c429e6e4e5225c81947141e1c5b769bb2d398555079625b308765d701668cfad5d27ba95b6458412c7fc4a5b1595301397d9e34bc79676fe8df1c4b14733f243cd54c135fa3ac9a151ebcbf4c37707ad0d2c9196a676def00e5d1cfe13faac2eb9329b2ad8a4f268aa5bb11fdaa010d3f103272004ef2422cd1476d0f471c6771dd2031ae777d8fa900a9604fe8d02c9ff2458c26f87a5cbf05671956f810b878cb5efb39f0fb44b5f8043af9e0a37370650f8887a0b5167613cc6f2ea05c2eef87eb5bfe3cf17aa6894c3fe148039c6ba59ba2b32ccb23d62a11d86540f06856b5bd7b1fe74201b5ed39422638735f6a722dcefcef31c6afe9a96d185c87ea5a4913f578e9d6a748da00052844ad9634fecddc296f7b60ce966a97cfdc4aa149cb9831c9ca66a6d431d04f5a56868c736752e44526873a138d65d8e73f5e7e5c4f349baa2bdeca2caf44c4e72d70fd266989fc7ba3f341f6e6f2389f17fea59d76d39a14ce0c343d0014cc3bcb6f21ce61d536d3b608d2f282177dc35dc71fd5a50e2b78807e2d9ef4c1f0bb4f471c183c9ffbad916524929c0663597f471803292dfe6b56f525937c967386c2da529a3182b399941130d96cf48ad2188c602dadf8cffec725939999d249c55eb52372b049c81df2d2cf900741339363f0976f8d14aa231d21ab339b61e4b7c79feabd9d5906a63965e6f28915919bc6af1a78aebb69c08cce2002875f01fb313f328ae52066e4439d4bde6ce2e9855713bcfe77f922e15c46e896ba95f4b6a5b80fabc482a6bb98175bb806696e15d402bea97426dfbb63657641d7818f0bdc731272a8258c5d48eba295970401e1478e4c234ee4afc49e75e4fb2b45ab1c22d3ced187925fec0ee57720bc3d4d93ff6ca7500e4521fde9b49ecf836159ccb2383fd023e83e8dce635dddc5f0d082561cb9ddd9ebf9cb0770e185a0e15a4f4dc6b1d65fc6a18aa131902e6fbdf433b99309f5d0026baac76fe5bec2fba0d10452c7bcef083514ac00422daf17d1819ba420bf57c29a661b7d2642eb9e4c7b1b05e12666dc79c846785f390bd30d89905c3e388bdc4c0ca4294857807b9c8b4e153505e1f10383da56b024fc145e66d1d479555cd37a12aa286c92fa9c259ef3a04d636fb15c426b5030eaec1b2c36581b9071bb3f4b5ab1528564f7b1dd2b6725851f6d29d4fb7c5ef478f8253086d091b94868ae7dc78adeeefc4eaf57dfc4b09860e9ef6b43b5b91991519720ca5a91d07251ea6e7c69b6e600f3f49cf6572f0fdba01c4befa86de165cfe716d158a8ae249abb7360daf42b0adc5aa2d340f7925d356b5151c4a7f2978f6a34f8e0f09878f34dbcc14d6ccd0c4f8fc640d479849143bbeaaf40ca9441274b9563f10e6c6c77cb0a9b02d2ad6db353900ce1a11c20fa9a9e20f6a011bdbd79fe27f93b42350d45af94667e14ba900e289482afcafc3a11789de3d9682836f55b960ec44a8ca4aa89a1af1e982744dd0a1e9f5afa29fd90b60a539b1d3501421255811c434dd002d85f48f99fe9d7c8a584620b5a425857bae1547dca42ac0017ab6d23e1678f15cbcb0bbd7d032e664667962cf76d1dc58e5d395e400fa8e3ddade9740d1f39a90a780fc4fc19603999453432925caadbb3599ba085389a286c44dddec76676b7ca324fef0c11f8a28eafa7a449fc706e8965a8b0b21f58d3bfaefcaa48a3b99199eb1176360ea8029d8b2f48320349d81dfe0e92f14de441d139801a31e6c4ac234bb245e1e63df09c95e134c1f811e0461be095c0fb288f334e2088412d0f34b8885f7b5817549c207a155274e802281b7543b2b66fc02efc8bb7d251944327020ea4a63e688d347c281e9bc1fd9b3d1f8b8909d90b6597d1bc9efc1eed1aee28014207303363f47f95a839d483c68f9478170bb3101f293b5eee4a164a91cd71918bc7e4ec2ef9e30470ad1d754e04dca5e821b1280ff6445d2f696b8417b035a0aa5206bd1bdba02c70a6d8f35695a0c287dddf0421fc904d9fde93c3e84bdd3bd420dd9367ecbf0e279d48704924c6e2ce3aa0404e188d9d34256747ea15758f8a5286eb4e5c2c945fd837b7320799d21cf10db9d2b80a36e887d89927728283455d96e32f1027317ad331017852647fdf02ede4c07f348b949e39a094bcbefa84ad878b874648a03c0c8818a8a12d61c1fca2e9fb327413f71dfdd442229f376e86d91538a21ea24855740e8522c6e48550e0bc392467002597c50f7ca92ed4cfb3bbaea5323f75ec79ee716921359bfac55e1edd8bc5329e77906d2b5a91d0f9763dd66ee5733a7d9e7f0a80ad936b6e5a2138a2c756c882ead20c95979531b0348c0e1c7bd4dcce2ccb6c1827dedec2c2be9772e732f8921e78edf950b9cc2aa30d022061a7835b5a692a23e0ed00b389d3373f9fd1e445683599bf3633cf4548dbb3c95423be92498abba07e9885f33b0da13b66f8c736e0562ca3ae0d2c4cebc3b76203f195eee973b7c627df2f87bc0ac38dc1dc4cc7910f3dc7f9a7743c22acf9cf8cdec13785e5afada509799d209ac7514e3fac0a7fde64386b3af41543d63a1dbb6a36b0f1d5a0b2eb47c112c2667a1786216b0ad6e6c583097bbb48ec265a5c95bb32cbb6b952bfe88e15a21ec308c08783f3284bf1e27e65935f02a788eb1d2cd924f34fd9e4f2dd8846d8a1de95a09c332a8434ab7bff5dce7cce6fbc358b422ccea9890ec87a44bb063eae8233a94628f68816cf139a18b5c83b2c0b6562c12d6f42c679fa7b077eafc3da0ee4cd59b88ed2dac64c7381bdd2d427e1b61c937e26a7dca7187eb43668d681d52a106715857bfb8aff992b5c254042c68d6d7a429cf2b91ec630eec9e128ce3d680193e3bc51a7b592823ef87318beb7a0c594302682fc99b69c39b82b0e1f05ef28fcb0a6086ec78263a7d3b42252ce9b68bbd9b4d065c2f37668c211b8707986ff89bf16fced9d6ab225929f009221d99161ea7812af714a62228db777bacc606f82e13b8654146bf9f90fe3a5762e43be5639b6811e784a75b70e29844b56fea256418edbebf8eb3b1a7eb881e973ed3df7d1e637cc8e0b059a966adab8590dfa57e820a1f40aac2c15950e4c28ebe04dff666ef1973cb21f663123cc305599793734f13ec0cbd1888844ba9e7c3649ef1b9bf03d919da882ba048a6a3a0d2729e4e565fedf7f2a4d3d2e8543f1bb48f297499f4dbf2ffb64f8c617b88e94b739d3b6642d6eb8ecd9ca0c31a79b154505a3d9c32253d1e21617f4dcd77280cf4fc924511be0a74a252145824834084a065e032c03be73eb5357687ac2db804a15ec6df9a3eefdc6c30a4770f25fec03d9ed478e169df3343402fa073e3cef5d29354a335ac7ccb20c5c3215957aad1068b8508e563fcbb9d4b9172773b770fd83ec30596191cae9237103a4bf17afb7ac77b6886bb642862640da97526bafec11f20a073960ad2400f6e56d4ec4d8268fc44e51504401efb0f2ed5aa740e312844ea3b8687f3e9a0b4e746cdc1e5a9fe4209aeecec72ee0d01e897f7e5ce4168f2a21cb001331bfaed884d86c8066ea0d37d49276eeb144eeabcf493900a258739541e01ea359a016e263f5212670c7fa4bfcefa67a85ae5bc0a638bd997249df4e12544da063827a5b6e1ba7c7fdd4eaf0390f307f8ce80d2b76f7aa53f393b78ad4c4462cbc28e6f2e93421bc008dead371d47a25c7d922d52ccb135d2c2d37cc770a260d2be2feb4f43c07d94fdada8e73ca65257eae5b5b4f3bfaa496db27d759c87a69a7e497e69cd0b5365199862426f5747817ffb8e41c0dbcde3b77201fa3f0bec2371eada95eb2eaa7b97b7d562e437ede4cf37253b14ef085859da6ecc205981eed5f0b2c8f166160d747334361d4ff39d4740d83d3c4cc46c4f6aecd8b23cdccd2b231849716a137dc8364852b2784b8d98cc941be0d1b25f14325b0347faa5a00586cb5c66c801989c9bcfde9b4ebcb9da70e3c475aea0a60b2e4fe820e7a0ad02146910539dccfe640dce372ae1c673f57ccd04bb74f1c4e3fe0f2d98fcb0d35890edf2fac3f54d6c2ac0a7e79a4178c446cb9268087bcf38dbe028eb7183b6ddfc26eef4394f169179dac1273acc6b662572b71aac1705803aebe56ad3b7b5724f47c09a948976bc053336e7121fc1a693eb07b7cf076a58796031f82b8131d1ef3f02eb257082b8100e62ea9e1823b1b3074a7f0175d323463727038ffedbe99fa36dad1c38e56de5a13eb2cf3585afdcdab1adf9ec64cce16005a6c99f20a4442c981bc93e53011b2166f8b85454be4d31a2b5a7a3423111fff18e38234049e7f3b3e06f46109e26d6f333c08027af7e7caf4c01c4332dd7508781a1076e6ec1509e8d54ba8bd9d86ab993bb947b2d1dd3f2a683a643900deb04d9ec4f8b3e1f7074024bc35442399d9e6aa0c450a1767d304d97f4fdf64c963d7ef277b42db2ddbbaa27198a4cb1665ce29d5daf123fc8985e25eccaa92837651931a0128830d5b3c97b7b123f2c79dc83d4180b6174416011f8a85686aa846afcae1d5b8d653915901b3eee3205bf8ab5229118e01965d33320c21086c73e3316cd6c44f0dce2ab5ff255d3e01ada2d6c5ee0d3ed7185ca849dd12db373f82ac46a695f35596a488b03dfe37b493ba4f4512fa0c7850ecfafffd919b1b7b483e2775c900e013eab48857ae4ce505059c603aa1ac25b7745c13edc8074e2c316e19a539b422b52bfc728bbeb60ed2a44751a0da86505bf7d2e4dcb074486fd73430cd82c98a4c8934f9277576af850cb783fce3c7363b86ce9cfd61d0363b0b329cca37110d2ee700722e1c0184e8cad73f088f8075c0f2df701148aef109d7d92f14cb6672df854ba0531ee4170f4dd833ee3ab4816f4ac577ee2861763e4d5f2f56708acd8fec137cdc424d8f58082023b8f63c4ac270fb13649cfd5bf757f811bf111a2fa06f4e8554133331ff551cd296d3b7d157a636437fa794ace96114692a66c9c68a3dd260f6c0a3c26d7cb3a77480f48a7533032b93fbd15e8597720214185f155c703d14acedfe2925b368df94a84e194e99e87bd6d8549e0ab10b08138fb5073c2682587b40a5f421ee627926476657dd86cb981f160d91513b873bff6971795f7704da26c47b35b7175065b18de0750abf6a2919e5ee2fd3373bdc5b023ce0fcfba2c2f800efb52fd33aa7c5d54b2e5353049f565a21632dcf1bc2005424fbd63e5e376b09efd2ae36f1928f0ee9c2b2c28d6b3be24483753a4186c4d70ab24441c8362f411394efd4a62615da12c5eab098a1cab1a9cff4b0c90ea9c5b18482e00102f005377778d170cfa05bbe73e5e06b407acd0b51e204f023a240b769f89f7256ed9668e3a6d139654bb5dd4ac744aa1cae3c2c508cff4d06562105dbffcafdd38799ad2ead5fdb4d8697ce2c6fc781b58e630f309923b0302ea71a30ee11a3df7e536dfeba511535859b6f57217f20876572f1bb97ae11bff96b1b6809ba6fe523e661a1ac2b057a2cebdcd3d93cd57039ed2507451803abbd5a402f7303857e2dc28cf0baa21879a2f74e9152cec32a86ede2193778f8c613080c1651a551015a6c8fc34c151d289a041f67c319e1d8ab8ee4ddd92cf46b336826de48943d72ca7dfb1b3cf99317f5b3b4ecca5d93efbfb21d087e04a54c8de25d206fb1b4e64cae44242e1c496a59f9eb46e9b8ff599a94f009d95836e122e0a559c1db4c977f1b2878854c7b8f69be0a5cc6fc43ad618e0355fa600b4e9b9b1351473010e01b209b3b1bce870a4deef865c2a916081d94aae3a4492f64feb7e08aa9479106ed773fc098c87a32a0e6d71f6c341b36f6b28487e64867c1ea56bb897276ae4e08647356e9a4babf0847ed3ed454e5f885602afd53b7170b2846884a3b2725602cae846824071d45cf8fe49b167dd85122d2040b9e8745835a860cb4ddc63f7bd2d26f962332d04bb04da356125d9bbb6e94a364b9698a1a0afab557f89f931249bd326d953b4cf839ebe8942edd29a7c6cd6e291ad4510b6caf5a02f2aaf9bb887dfa1b317f50a22f40077dd29ec480533ddb79f86f1832281035cdf162fe9a76d3cc16597d4073487ff191619f011a0c9a3591a4cc13beeacd69570173e6e9846822e0240fa6c37d1630667f6968c7eb5ef312d772b45e052c860401d25b09cba7050a275df1ae4aad87d861a00b33eb9540fdc71d134f1a222c799243a2ed9cd858edd50f9bde6ef9464234de4145b9304356da2d1b95f8bf061e75f475c1fd25189ed076bee1fa1a4de1d3688494e5081b6047edcd61c304daa57ad2b2fdfe6a56c1881509b1d38043927f47075b4879616aa19b4d8184b0d66279e6952cd456050a4541bf316df429340ce8c8dfa5862f5876a8ec21c4b9b8fe6c762766eacee1a3456a061a2f2ce5d8074e42d84910e42c0e009458388da2ff65b851ff55955b22e566cb591e6a8231679dabca431bfd81592f8af4aea226406bf146081b9ce97a9cd91e3321902b44284f9c94a4507284b7483c18bf37046d997720246a1b7c67e51a60cfafa470cb0058abece55446c89f5a722629f67f710b199c794fe1874fd5f39b0eaef87ae5619bff0e1b331e878b66e0079ca4ad4f22aa550f3ae29837d4e63f7ea9cca6b5af8313e93f18e53c038b37654d9844856ccff9397bba4b4596578227a9eb625053716111c050384d52bbda179b609ddc48c7fd572571c842b83d052f39efbd0ebd5815ef82de48ca6caf24c2c0aa4115f7d022462faa29f6162942462c9c322deda654a9d4390403a544c67ed92c3573ff706d2f5e31119af84f486453e2c1d9447d0d066d1663a59f677e79dd9aef1c224096f5d3869ecc8791d6186edb1e3214ef4965b09a98325dee043071e7f01a11551681ee4f5832c5366cbbc9070b54eedcbe47b44aa200f5e197b65dc7f5105e14719e07bf31b57b7c83c689577fb1544a0bb85b498c0b93ef737bba66927414cfe842a281a4ff46c0a8332ffbcd01f48a78bc079958e66a10c02be0a2333dccc34e24337ac96a591749f7d8dae4393ee794046f562b1a8f08856a554ce1df8c07043349edfb7f7f92764b878bdb6f952b3875b6d579459679e55eb646d815e8552ee0b0da2d73e1393c794eab2cfb37ce467a49c43e44ab578865dcc8864cf5a14268d5d6fe1d7e0daae390add36a58f34906580b051a69fefcce7d86b73c60f898dc50c82fe09887940e00c9ed7575ea645069da27db493865eb72263f497ae1ca263a7fa22f8c838386ba9980af4084a6195fba21005271a5ad06729562bf15a8ce8aaadf48511088c300bceac50fb533826a03dae4272ad38b542eb5aa25fd4bd9d4111d19f15dc2f858540d616e9517a4f612b57b0420c9755a950cab37caf28430ca10ad325837922bd4f878b8a26b95769d5b7c33d3bf6d200d8e71f146c30042f01a30b71f8bd9dfa0743c76b1ed19ef3e0c1dd89833a9a205ef3812b45ed8c8b284118059ed3315109a17a3046fb5e27b9b6e2425d8788d21959844f3e014813106a4a170ff59cabc5dc93369b0387bbeba2f6a277a7c1b46c5cc4e4c19515e57a77f62e0fc66dda9ce33ad876db655466aed0b18b7633ad5b64348fcfeb1cc19355e47ed5ca0e77783c44c430ba7b105f1f9d5bbc006339043575043e6089f848dc40537d2d1cd6ad9073c655850a199bba2bbb12c39b322901170438cb5526039f9b7a3d5a48269938feed28e4040d487e394b5a359aa17de5a666ffbc86b660feef9e39e2ff37826b9469edb24e7007e69b90304a3167fb2af51e5ad173e979d85acdc18f7b90c840cacbd16c852ad23bd65a6f89254bacf3b259fe90271ab48e8367ba49e77b21520b07fdc640492a899c5433c348a85cd6f5fb2c5cf71187fae29fd8177bd254c8920be6c14c13bf8a8ecec6aea04e2850638911c064e2e8855f675d47fa6a986b258d49730894705e41dc8dc3897c0198ac02fd0e8ebe5d5b4572edcb6af3c6d6b025eaa554b07285eca7c034a0015bd75982ae03ed242997bda81c8ea1612907ee71f852127e9d2f33b719c5d0a502f7863efb059612bcb4e63a1c0ce298ebf55c58266860e6be55d4a2bdc15a18bf75725dd45e95074b26b1cf58d1f0118bc0da3d167189f832e17e83e6e117b78884c8f6b112e6b9c420a26de3fdc34f15693daa0dae1bac4feb395da1d1bc8670782ed765dd1550a0e0fbe2649bb6fe323e156fb3b726ee05243bdcc8b2713bd9e6b03cdc0b4919e9ff6c9973ffde84d6b779c0b5689af29e028af535949eafaa9b9c251cb5d4cdf932a2a400914eeafd07b95d28a3732a93ce074322be3d05d2edb006df5aa62335606f2840839fe0bc8b03e3da55b32a4ca04553ce215a0c860abee3a0de98067f32b7c11a63bd3eeee5576d9b1751efa5edef8548147c2b30b72ef0627c9152ba456f26416ac0833b8e2443fe390c18e5a798f8be1a0491302d24e309996fcc5fbc02a8b353b5fbff91897dc2fce5a9658479dfaca524844e96fad6247048159de79e11ebc4ddd08de2a833cbe5edc6fa989f3743e92b39085bf9e4e21ec7429b9206329fabb6c013aa9e128ee3b64dcf2bed2bc50a9c53e4a333f21cf58098a42af88f5ea843d8bb7ce0fd9d81a5116c6801fb3595c01069340969638196e7911891c1c0c909a55744a891c2e072596d82f2ae9e9ac1de5494e012d3bf825c4f552106b85f8b6039cc485e7f0eb26dbfd60c4f9394482b09da1e8988846b81ea33b43875f23a24d74b8d068f1d81202d86ba0f3948e68584f3ae80b02bfc881a3957e90e15b85144cf5fff3e0c9726e832ed4a00fb783823367125eb386e9496b43b22605d107fd8ae9220648edff89721c496cfc1b79b12d6839159f51bf87f508d9981670ad23f003d106cfd3891ea1a6246504c31ef3c0dee286c67dd5419f5aedc467ed60a787b2376fcd315c246ef37cd40b6d86d1a5ad2d220e15345d5864bf8afcaef854bc999c399047443e4be8df96faac609aa86a7e79637feb7f27d3598d8316d8321545f9cd25c640691dca13341bd06b4a15a4586264b03cc0552d21e91025acd037de57855dd3fbcda242be2c90523d5a752057a6ac6a9bd5633fa856c5aff4f61b250206b90a27eaa8ef191ae878d86fc53d2189c3255c551aa86aebec8ddedceb0bd7ee64db815b7c286f16ca079afea8a4c3fc45877534c7e05bd8c4ba6df4c84ba43ceb91ef1b423c3e707c9e47af43eea57271a3bb89b5a203c01cc0569157ecc019a85673937b8087f35cd57b626f62e61571ae3bb8376422f6633e79ead4f61be1d910be8fafcbb26c7078d30ec363d086a13feda4ecba0d56fb838e677251d5edb979a7c1ad91af8cb4d85b4b1c945d054dd2e4113e754d96fd9fe5c8f78f2ba28b7ac1ff28a370b91fca114dd4d223163c7b7274e8fa4dc65af18ee927d4c03a00817202eaee30f6eb22ee38a55beec21d512a9780fbf858ae48467d8ae0a28a50625a6d6c10f60186b180c10b38b1d760706ec40df37016dfd360a95da4f6f5870e27273204ffcf97b6d6f978efff2b53dc7154f091cc9937228004ebd8870f6cfd51b7038b3ef556c8fdc91c78f48c85b478eeb125c81315c127591e0a706ba3dc8aed69ba8a14ed9af91524a30411bce1cd0a33d81536deb00eb3187966690219f3d4df9da0ffac15fde603bd692f282f5abc3b68e24eea2acf098b72cbcb4e4dbc47bcb34c6f747f0ab32c82df8c3738b49440b432d5283201e3ada00472f2ca1fda6f3126c24c16d69f3fadb2b4d0f67f44f903b857a8598a5eb69d254474b196859b261f22c09377d6552f3a267491a2c1273a6c898d045c9f3796a50c2779dc2dc18d8baeda98918713002af515f7e1b1bbbf0121e9bc6de7088afa981906f45decf805b3564794981fe8c858eee307953c7c5ed69ddbbe3c081eded63c0e361f395a82e5076169bda7a1c03f61cc8055c14f8b75e4b4084db1c60f6263a6410902cf0e62325fc66a0b02d5de8e795e4e35b7916190e30982040bbd8d99c5e015950f627c7448882b21b0b7b793544ca661c764c0f32ae15fff5f08a905ce545400c5d5d3fd613eaee2ac1a7690a5aad76d61345e601d9fa22c8f2fe736cf5d660c4ca49336b91944901a027761934ae450ce9f22427d0d9160fb47dc775a0f49a863bd6bdd2be94cf01bd94c581e6cda919cdae0e20e41c77b3aa49f85081d3a9a3a65bd6a3bd29858b37e535e115165e8cb13f18e9e48da1b59d6c4a9666fc1b58a6ab132ac3d1f66029473926eaf882a07b4a886de7b63604f69069d0d611a0f9feea00107647247229568d9d05b5cd8a03401f6c2f9fb85fea4dd9c9dd981581a86c627f8ff02dff630047e94d1fb92dcb40a3ddf033d5f2f0d2fc75f7b95c2e92595b4f192a73873899d344f7e53eb68f02cf51a3e115b3b5ec9d15fe744eb3366386f452e1db1d4b8cf41eeb24b3f0480ebc334681f5b4b517cc67288fa535010dfcd2dbf19c3bf87431cd3c42498d475128c51fb6d14a776d9657785e90016fedfe1383a92d338cab13287aa74002727b635a11adae7552e37d1837fd8ebc08c231a91ff7fd5cbb54aecdd89fd87c8ab7f5bc1b2cfc109585d92968a478c6deb031f15ea28204901481bd33668b4206852105b5bc9e814acfe42b5dc08d73087e4bec56f422ae0a34c31d8c5bd113bd2bf9b2b521d86ec52fcc4a8845e2367b335c7ba1671aa9db31854a5d144c4de65b27ad32782334b04b291195f0966cf9fc37f28f56438056e99c2d284e50b77f61c359d66d255d70ed8be021d74852ae982854d3a0ac3cd943507d1d93cc4f583e32c09cf6ce3089c74bbed44200ad9f1ad73b879e67d3cdec5992d9f4630a9bb661b176ca0e7735c03f095f20c96f2c9755ddd9854b3ac38af1b86a3ac9f41e187df90ada863af5400c4ab22b01dba0062351bde3a4d0ce5392f6cd00806efac9ece2ab005e95f8f2109644eabe7dc93e873bc37ba3426003680d68ae863242defdf47883d0b3bf4fb8e7b6d873230d3eac40e1daaf1d3bc39179754b62010bbaccc78ffc32c28234020c4bd161dd0d7d33c05c47b56c17d67695db861eb8c44ff1c772aa0fbace81a1e989cf7774983761489b972ef9a75a6e8fb24c7870d52b1b049c0ca0465f7f4a21bfd2233a35accc6bc5482d0813b2eb922c9bc722af568e26ff99d4263b51967b81222d2255efa4f836741337acf33c7ddc9d3cf3293004e2651e302e323766c21062a1f4edd0c919ccee3965fbfef263c6106cb9be8e2ff2ed38b5d96545f5fc9662351cfdce5fc34ba65da23806f9835753b391ddcbf48179c7a693e06ac006f5a408ba9ab828b1378fadf60a6d372a617eb1641e909b6268236b57c91e994dc80526757cfda71519dbaa0aa368c41eadc85c79763f78a982fd57dc15a198dd010508c1666115d5ace31de3ba11b6bf1de51d0742f965dd5420c5b2dae205361fda7fdd6b4d2bfeb66a8901b8e95f57beb713b5127960f651e0c181970f5f784d05792e5ad735dbec4aaffe40c0669b43925d15b94d20cd454ded2bf297f2afd78ba9b8c3f321ee19aa8703a017faee0409882a5682c7e0ba88635725255bd45e4361608731aec530043853e73de21b836ab42d6aa90553f708d5142c4c74ce8bee78fa392f40f3d64f1059c3bbc5c258b53b6848cb914d3867b0ebe21f26f62b31fa8c7aa9c62ca4d2df283d34de96b1378c21806a1727e1f49f16207db5425d92d37b5b3d288b8b5cce7473dcaf7dded84384ff921b729cacf6dfe07e64078b5605efc6c2c6e6bd2e5ec68a99492cea521622697bb689521352658e0cc573384a1fe544d849c3ff4ef10abd14f96ce1447814aa71e36a83c652228aaece7f849091bd4fe291e4ae3ed48c10f75ff3c7f72bfcdbc1da2c1c41f1d9d2d24d36d5e0133cf0c13e7b0d93ec709aa5ea9db6d740d604c73adb855e3e65c377b6f3a0bf4e1a492ac5dcc1e0b8735489996a0ff8cda3dc034f49dd359c12c99b2bf3d0260b1cbeb77de95f7a9399edab8ef7b482949f8c29941702e89716e823174a1f86d1e478c875c9ae8bfd6d8f5bac6352ae0f09d5c3176dccc06c068c0908ff8fce07f41f6164952df206d276cc5e438f779e2522e9d8192787bb529e444529b7ddcaa5e0f7706c77f7864367c97a53360e24179f9d6095e8966fdb82340bf6bcfad8f9109d8cafe2c1c7154a054ff01ad25057f92197228665cb8807a550609d3e32ea969d3b8f68057991dfb614a93b3f4f7b1ae5359d0c039e6d3dd96a2b060ce4922885b8619188a6c25f9bc4bc775ae4e6c1419b50665ed51f03f1030d66f76cf94949236f8cc8c9433f12f733d6da5b91f67861dd5e5466a97125bdfb74f020d1bf9b0b0480af7d6fff9f56a21b0c72a9cd00c168c73bb25076d887f9fe1871e1678b75477673dd9726ba95c0166a1c22d3aa602a020b94397e65c43d1ae718e8df3596a061b9556704fdd854b17bc92bfa9c87b2192aac723cd1ca12c748e65ed6fed15d7b787fa6e221d5601665216eb0749318023413364a01874772cc2a049b9138a95a295e40aa81c67645d6856d7d25556596f5de33921a38a952d75efa02a693f54c4276d876727ffa8badd9e185483d70bbd61d4b3ffa3ccbd7d15868c50210f1167c97ef4880a212f179e7f6d5fd9c5240ec0a3f3672953ae4ce74a95a70f80abe1a0568745f0367c69bf0077f5d92139e017d9a704fd17150e59f34277e08455e2d3d841b316b5e2f40557bfe83ef123ab9415deed7abe764b9b4c871df4e19bd7d09ac222d6a1b6bd72dd43572886a79f3c8b78108bd8d10eb2534fa6fabd10fb943ac6b755f94479e34e83b6f6d88612ff7c2e9b90de76bce58d833215064a05e9269b26e0407b717952a183747bbe6c6994bb959826e3c9f8640c099eb30eef2e4a4ac2577eea27486d4c42d75abcdd49a7d1e90ed6d0a01327489a44f72fe3684d5363f022d9407ce490b1f7df38226fd30dfc9348c383e88a3114f1a02867cca4a95c9bfe3f6309d82c64c3552cb0edaf908191b5d076e129caa67c97c67df70a4e86d7d7ba68024230964dc75bead0648fd9fcb93c2010f84c90a8b6ba5911b600031469e3d6718bfc0b68850b0b9675a6a48177ec1e761f0fd6fc2bfdc650a69eb082d586a4c998ec4d75adf4dc0532d3924aba20422183e9cfa288f5b4daefefd38f794c12e7e506abc06c839dc801da874fd8650284e17844652a68480f5078d2d04ec3550bf2fe1a294318246b87dc026a68be37b7e142f46685a795781023f0fefb188feb9068161cd43d8381acb524bfc2a3ad398cd561d011ad7c4f27ca270fab4bf95565ba7975635c4e99a459c7bdaf78de91968d7e671612c014d9332ecf791c4d24a51e071bdb3cc45a9f2c56725cf693f95542e18af27fb2c6d2132ef8deaf30a2c6801b2accce64e345d1ee3de2462ca670675532ccaf20e5c38a8cec06e1453f95deedacc0ecc377bc376559fed10849bbdb3782f99f94039c004e5ec40b1b5a004d9e5e8da08ae62e3dd80bb73d5675219d3ab939478712629ec03e4420e736e3d767dd8877f5efd53b3a278144df3f21c1c751b600c272450eec5f1bbb067a2e115722b4dc05b8f21bce6e80aa2a54fff1612546ca73b2cf7c90dcba1f7c85a801bb9e4fc75aeb4e84eab1553f6d79748d343379eba6baf394e968fbbe224cc4bacb1620925622482caaf8e3a5959d8a75ca58a43f429695d1985bf79066302e21ffccacc75f83c5451ff497243399497f2a125d10f28d7de84f090c2aa9782ef0c9bfcba6ba85b00bd8a5331aee6c03c6ab44a0c770f5b699d49233e1821a8dcef07e76cd6937ebdf6fd2b9c99715b03e2b75536e8b480c12e08438d0d58e73a4654c47b43cb623224bec9691e297bb6de2ba3e84a67946edc304269298d880e4d3a0faaeb50271e78a240a6300a061f78b50d9d25ee485f59a23c225c5fa1796f595dd2b49b5f3df0c27c36bafbdbcb2f58f858f7caf6ec6a783b1c7443de7aa8dadb552f28f2f0ac4f6cf97d8d9c9b078571c60fbc74d0a0236d51c49cd6b78452f4bfc99399271b6c584fb16c24737bc67bb4e2ad250b6af135acd186b4d45ca1d3fe9893f7276c05c631ef40d1351fecd5cce486615d0f717cd9c543b98a53c3ff9a228c4bb4bd85c5ff93b5b3cc422ac0fa9a80bdba7c4109a25c23e7323ea79d1ab2cd8bb28597739126b1c9c59ce2d05d6ef175774a43d819057e78a9f37007908d66f5dbaf699867a50954ff22b9c3769e4b2a0f07ac8c72c8736ebbb3d5f9971dfa071291f008d12b34d4b7b81bb76975130f29b236c1580b35dde139638bd5343b3ccdc81f1aec6ca9d3412609186ca22d0f8097513847dec8e8e0eac87dfb971966f9f5ef5bf7540291a44c82fc00231ac77271df4e6aaacbd4d129cd4ccb4e6085b0dfa8065606acb8e1bf5eb46a5c90d8030bac0a508521bbc868f16ef993eba50606c0c026eca35f36fbe669563ca6185688ed278b192cc290ec776c974ea7b33511be6bfee673efa2f28de70a0d8a3589f152fb7c5187519cf69f3e10f899c8ab04daff82d55bb4602468df430939dd055dbe85af8da9ab6c93c241d27c07a8c1fe30fe4d2dd812c84e32c4898663f6f4ae3493e3564e53b2e426b188d1fb3cbb843b420970c3777ee6e303202010602323d46d04cfbeab283f6661ad92528a92e7af8913a035c24b3169debea8834ba35cd125f8cba08b3abfbab9b1bac8758a773e53d9415c33ee5aeaa172bcdae71bfe4128fcded9b5d1b5de14a909a3165f510e6d5b21a509b6eefbb11bdb62d22865e0ef61c07e1de5318c4c0cac6659a77eba222dca70ef04c9ac00bf2bdbd4d56dcf9367a00a3a03eb3ce5af2e779357517989c8b79b7718a4a689c31cccb9880e868caf0da796590ca4ff38dc5edfa5fa591f0c3f9d4a980731ae8e1182b4b442b92fc79859225b2f1d936802b3555c38c9714e2ca8703fbde79ab76fdc1c962d2267e99f9aa218d36cb3e45a4bbd2a0e41e135579ca2c3778a167d1984e22544c294644c0bf0d95befc47bbcac6ed4155a6ecd000cac223ffac6e86943f2498fb3268e7cdb827d06b53fe32f6426198b4f036f81f44dda066e33f9278096430c0d50a73e26030f9885a0b301c758dcb947d9e81db192df3f0758d6d7f4055d2b1f25bca01a0065be17240860d31b389ec74b7b3afe9c46c6e9e3f06ac7a31d8fb01a8bea1aed26f311c94bc23f65173d7194cf7f9694e70de3247fcf1cf9859cd3f9d06ac5b09c904430723427dc909b952d2d02ea106cc4aaedf262b37a66f781dfd80e7e9d83a8307d1bf505099ff8c0f42efff013e21c593f126dfd19b47e4e594268a1a822eda555ff12905fe795cd9193e39ed75b24783fb9d1a38099454484c778d664d1433af24bc2d6b773a28d39fae978d8294809cf3dcd4aad174541a7b79a0480a979581ebf3fcfdcb09f605607569670fac75f14dac06459d366b38d605dc44091040dfa63f0f34bddf98d18d293b9109638e98e6eb9f4e6cfbe7c17665d11d72f82d228d4b8d9612d017181a5084160389869379e0c93464ff1eed9022c1738012243e770ff3415da588c2a1e960086bee70706dd20abfb8e3b18565399f083258aa4243b399eb22325e5384ffabf7b23d7464871b7d7f2e81a394faaa151706b477af00f59b78c71a82950a22dae895c6ab94c844eec1526f5b74fa66d41162d402dce3aed3469580c8598ea891b5eb424b8d1f0d719899ef755e8278af9eeb5fe60a78c1bc6dd9dea028e9fcab0ee8680ca92e42bd472175632881df178114fdde4b90ce0a6e26e8bcb23bf57a3e424d84e41b3eade4dbe29de2b2cdf183edb0924a0eec853b177be12a6afa474e54cd5bf5af21d8a7b29e0804abd96135a1138b29515f27563a88c9c55e2bfa982620a825436680af971f31dd02279e53a9962fcd662de419847ff08b5e1635573c98c5a4aa0dc3c03a5c691dc079009a7627957673db500c83318d9472bdb08122eb4b0e0870c2bbf8548aa77c13f1b01a673244857812abb883c4732df9827dd852a09e91503d23055ed497ff305570d3b356b3cd5ff3bbb34cc803a3040e01162ba618983e336b9a5dc0c4d27bf3b3b1f62200782b5ee5f6986bac14fedd7c1aee82d7a5c138682f95d65edd65ec0c99de1e3540a2222b30fc2c701bd50c7426686c6194d77a7430dea2ef1ab08cbda0c4a902fc9bee8b32eb15bdac10f0899589d976b46f009016d4c7f44309df921562307ab6e8159aba5e786c06a5aefc328c4fe951a6302e34249ddbd5aaccb9f551f1f4887a9dc07f64d704b265c95bda60c06a7c522abd012f95a969447d84ddbd57e772c5b327f47e20d401e79449c52715e4179c03f558e135a40ce8c4f5ad23125614684c58a63878f99e09e742a2594a60210af053e1fa7d023f89937a8341378f7ec8f72eb1b67e0249c7098b12e8647d3602a89c33ef46cd3a37657f71b6c0b2087d8464ce8de6034e858fcfbcfa0497991f49310e9790b84ea8732739b45c7d19f72c9291e382d5b1478b9d8ef007ae3fb209732e3e253adfe24ae1bfcd79a98a5dd0083340e5007daabe1afc3037f4e43e649e72b4bce0b9ca840cb31fb0b9e5d87d833981fbe9d41629746ffdaacfa73de54a8aad8bb23191279500c908adb8f48724e4059d32ada7fd011a4f9c238d3162fe445b798a05ae9893abfd589c2065d9c409c4602ce82dfea0be99eb73494467514d87fba4b880f10a34e081b82ee90ae99853e06b83a16e7551e9502e283228581222ed55a26ffab6e4e57b0404e2062e3173bc0330fc3f7166d5d9147728b73691e376d198929e4b06530976cbaeca738d6ac10c98f8439e83bc15d6989a9c00c72d93bfd01610bc338f6877403be8ebe358bd2528db2ee7f1e0dff85bea3889d7d71b41b7b65b4c5fbeea9ededb5e7d688fcc899886afd35f765cbd43a1c5e6f746abb00dc7ef84edff449f31623b9bd4c5c5e119b3bc4dcbb5163ebf256ae98322d52bc8f758360632e9e0dabca90fc6f30ca86545c8464600af98131fe3312949b9769fe723e8ceffba11f48a886f82bc68b91d9993aa00dec77bea2aea1cb2ec66e4a3a395e25a01e4322aab7e221ee01da2659f17e04395494f14904ab75b470af5ba9f9892a4ed45d9b09ddc8ec936af6ff3f596bb93531fe925c8cb3e4f021e8feabbfd676ba15144f9d8df1fa31441304f954369a6fafde7594052f095578ab210238e539378a7e027dadd4a154074620c7a060818975ad27972754ca35e8d4868c701049e22b94daa130eb3aeb6e2461b0694c78d4627054248984ce28d12a0a5b149193d108ba4dd72b9d54a3fed4292ced24e4bf320e0f7be82d62bca6772b18cbb746a902e6d405a5ada1736036299c47edda392a7191bb5672cc48d84bac8f9108387dc87f1ddee22c49750ebc34f869904d61108ce4716589c26b1aecb287946cd491e36d96bb353bd29d162d4f9fe2e900002b5a01312c6a3c91f4b3bf22d9893d23662aaacb93e9aec7bd64d5558d5c4ebfbdb76b272ce24d413e548cdd621407a0ff34aa80fa5da7c9eba16398de9bd3ddcec27d2f7b08801e0e5c8137ea7b619f2c228914400eb415670a4b9866a8d20c5085b49ad9ac8886fd0c6c16d645c732e08bf6a2687446d61bfae0965b003b787d722c1781bcde3d4600d06dacb6eb0ccb61af8d85d0361855ec2b0f71f5b973846494e315f4251e0742929e0799e1ec4181a94f52f5c559d4edd0a1f81dc1db081b9f761d3c1c9095b7fad4115849034ac716f8611f22c84c3bd24920c53809225cc370d1ae81bfabe1b737fa5259cbbd155eb36f0ed1bc426e5595443a26277f0d7c5397ed2f10c0a8a9842a277d340f6331e5f1738d1b62dc8b9d8ebde836dc16d3d4ed78882fe4d3bac0528efec3ed1f74bafc687354475b8efebd42ed2c76617ffafd9f47de10e60706f86d809df3431bc42cd1aec830a7deb284b9ca3b2ff21ca720e7ba4eefa4d625f24126b0e8aed65bea0f3cc9b01b2a75dd0b31205732963e69c98d6d93b2cb67b38cea6de01e4454b9d5f4468672eef01b38ea1e7d2c77dc2a2266b0db1e616994147a3dffcd0794a9c8e097922586e412bcdb812aa2488e8ab879cceaf2168124fc29dc7e18a93e2a672e8872518c7a194a84112faf61f06525b951e9ce82d86590f767642265c041d57467559216c23b6aaae6ab379f44f9057679d82e65e8dd4d925d94cb8517229693f4dbb4af96613df97e95082ba6e27d8451b4928fd95eb54098bcf62aac436a8ed41206b64e7c910acfe3ea07c47d63e506e0dca822230daa97562397e679c31db0d44580c67f126245599a90a97d7fc9bd89436a5396ef09718ea45d023162f593bf5b7542a6d09767439486b6809fd6365b3772db19c55ae2b6b7b96fc55a0d6daa3fa01ddf6e63c82da5cdb46bc5d47f477fc0e2fd8d53d0746dc1495ae415548f5fb812b5ca9999f1485c62894f436a9f3ba6c91aab7e94e2073fa707d2db104ebea662705f9dd4c7f7975fd6c5d77c34d38a2c68a232eb63ac50045fb39a5767f33c224f6a1fe43b9082e1b30b6bb7e9c8b72de6406c52a6f7662e35feda1ebd143eaae6c5aa291301507065d6f30ce03d42ee2437afa09925370c66fe791294d8e30547a444c469436963deea21ff20de2d70b451d58b1c7753ae40dc456167332046da0fdb7df0c32e1dd11c7d0dfa83f80c4aaeb64b5706106b72ee21e43ee937133bf5bdd7beb18f6b19f7e1d6d11c92b6844223e72da39d03c41dc4ce0cca20523b91a671a78d93a60a3afd93448d4053d01aac57dea699bf771035331a579eb7e6e7901fe86c8578950f2125168b08564a4b457b554044aa93adb8b6d761e4df086bb3a534d35986ba5cc48dc0d6bd55c94a7037ce913d7b8e1fa81ac3af62d7b97e9fb9b876f6ffe455aaff45722eb6a1be3e6491ea7f1f13bfc52c39559b11a4debf899a060bb7bb129f89db47a75a3cd68d15ed623e9edf017ba9df0c75e65842f53ddd0f635be6534bfac58eef952902d652b5c4ef3024ba526bc53ae89af2b246ddade1e29b6a9c05953738a925cb6f2ec08b2de6b28217a0b5f91d10bd8a986bdd4083c6409152152942346f1de28e15fbca7beacca272d94d19083efac6f8df8884879faa39355682944a1c0ebb6eda90e213d7c4b254abf3ef54590a1287ecec4534037f5ff142e103a76a11f9f10ff25c4ffdda0fb61969188fbb099cf83d470b7e1b244768f9ed27c6532ceb7e2b233436b9f0a9c77afe442c43a6d0b562637606a04a4b37a7270c9c585c3403aabbe2e2b54d4978f93f6079eb66ae5209ba0a681153be4845775c82e0a218aa4db27449cab90e9b0ca59dace6a2eb239c19d5f6f12359501ce82b56599d9b86594478f40e66583d1ad2bfa9ea79738448968cda7837c75b8e65a7bf51a5e6723e77f06ab2fc5001aa6c3606c907119d2383a7e11c064ec1e6503b08d1fb872d4eb929bf0aa23de75c1a7aef1b70a73a895a6e6118cc7273bba742e24efcc60990a72d67d152e14db4428dcab9de2af512a2e27e88e395abcecd18e62faaf07371c3b11e20cb5300f69e69432d8d4d474e11b32044f94b99e327a118b39487fd77053e8b576109597df04033e161edc8f7320c9c527197f4d3ebb8c5babc456ed21513d9edb484674c2577b57e3b0b570eaa7bf03dcedbf44d3c58296f80f35b7cd79788e565e5188f5d5c17cc8716c46c6a7474fae4d10ee60d49f966e82dbccf0f704f771908641154cad4a4eca35cd352d4d5afdae5ae0acad9aad425a456ddb1bc3ba7a3d28f1b003aa8ad09457485c661f8766b6ddc24ec055fd0325d5cb5e8103ac5dce80a99e1e266af13dcbdeb7523206ae2010c89a4a2e75624536f2b73ce22820e9d19d6365ac5d4e1f8e764f462c20c3f471f9110a11a765935d8840eeb083c6a02455d950101c80079d5285e1ede17739962153c5daacf06fc3b0c31a50f1c1ec830aefd321ef9dceb35c3deaa7b79c2402faf8b302baecdd9b07ccab7bca9ee7bcb853980751f6d4f88c59d4f4f28057e114d79952ee62fae77ac0bab4f48b9416ace182ee4a580b4f98381873f810855cffc434b33fb7fd8f80cb555a0382d0c4280482f769c41e6f6b9591aae4fca590fb0e5da348c3773ad6ef24e2a55e5066171f9b30e53b2c9d5559adae850b3b8d489cd3820a68e89ceba7528742af12b9842ac704d07e813d101472f168f03fd4702ac83e1123e07e00bcd748f24a91b7b88753eb96d1b5d0de385b91dc54ad4399b8270bc6d61ceee573ba6ffb1468a7dd080f9dff97e0fa55f67df7efb7b548d9cc1f7f53c139b7471b8bb3ebcded67c71aae1877a863be56b3d07f0c3f246cc9735e2628ae1d7f7207ca773e9e689d584281af06b5df8f778f1a0f83362c39a2b64720e40d83d51c38f8e6dd48841517c8b2d58ff63084523f8e0ac208556e1a5e4f686d07c7e037047dd5167c760ae8bbbe93570e96b0fcf5d53a04dcf4a06d6ecd01d6a5a6eed80be6ede971cb40c23dfb4b12353ad80d67805306fefcbae0f55b621efbc92431f78bbff7f7f770760c4bc8b4f1649503108ba71409ceecabf02186512e13c2ce7fa3c046a8880334ee9222a752aa87f81ca708c7495bee596080fc593809827b154a07b592f68fc7f09b72e9e1cf3adb833c680ed50e8dfef20a8f0c48a5b2e8ea1b8639f3582812ba6e0c5c4470473ef1c30301ba71c0daeb55881a8260fe70e989470b40b006b543f8e9d9001706141ab41e48383b82093978999341a4f4c9f05da7259eb13a87d99ecdda2f66b7ed9213fa96c3af2e848a5c77396c2719e3da0882683df123d971137dff793aefa941c75130d2291379f880b23c7a9b8e9d2e163090d2238c46c824b0d563c142e428a44e066013b4db24079333630712672ce40fd77b772267f1f20519576340347668e2f622a8c06f6cb99af8ad23bd64f674ca3940b20b98946a410444d6689e30d2842823695e867825a625b69c94eb2e4f12af58123e3b301bcf41e4e6203c4b6e6b77e43ccbca94f761f3b900f84fec17914f7dd9dd0c7cb36faa5e037b151b8343efafa5b3dd505a8f23c99fbf862ab84a8bcc39c53bbdc996cc545e42363d3d12be92daac390ef3eceff62c5a034fdcb9dc007706e1d398181352d40f78aa7d80fbba6acfbdc1b1bd7dc28a678a5834db524488f0fa2a41c76f59c675c3a6ad68cb64c01e508c25f2aca5abcf0005c138fcbe8ce5863b7f7c8737752ddb089478a1edbbbc882a0fa77edbe85fe91bf9caf36d28282ad437cdd4d12fa68aa81bf5e9c3c4af5f7f8431487e647c71a8cc5761cd9239125b2f369a09af642c731d8b0b1c66bba4f043e532a2b53637cb8da153158b0e443e30e4dbcf8faee315f46873cd93eae5342ae0419797d4e5c790e62318ac90b99a5f87e5c16b519849f1edca802750c12be91eb14c9b5718e8f4c96b1e0da5a7eed4bb9af63ac4d073f937f3dbdc86c47964e3504cf3383cf489c89184eba86db9ff726f518d02c068bfd82e2d35650769cc627f68314baf80e5fef5f18cee93431890dc776fe07b484b32c725082b74722e74b9a1734879618a1a8f6c84f71e9c588cba53060ead263f598dab6fa6419435aef5ca1402104135d659562047f133adb317bc14706ad339a396b29b1848d9100e3e04b623437365cc03435468f4174813f7afd510db3f1da4f431b369c18510000bfc57253efc356f4d4dc3cf53694af6f2b94e1fa916db7e7e98cc98113a88e2d6614ad635531eb4858a920527d299296e659c2509f040769cfc09aea99c6734997c14a374aac0d62772e035eae5dd7eac80aa8bb5ca5f08eaa2373d7775a2297d45f3076f6b6b2b8ade093d79970b89c1d6b606b1759351baf175f0efadbcdec61254f0a8367bb2e6ef13c748137f4fffcfb82b2cf3c296524dad56318592ae34f8adb98a8361780c117acb3f67c2d431f9f1cd8e42b30ea14bd3581e5e6a0895f01f7bc9771f7c5bc2947d53266b1df187276230639c1f82b15a1da889a525e6397dfe27dc7cd28b7e0bcc29f4cee7f9f26d8db186200b77ed4b774ca40d9092a25c5d47d37a4b509bae93ed30cbffb11eee7d0eaf61ee47a555c71e0c850d9a31488aa715ce02d68c1d2fe58d2f16f2f8241cc426b0ab30afb2c4f666b718803d0913adc1cb8198ae460254babb53cceed64966433f676440a1d62954164ddd68043399794789da64f13bd0f762300eaca02ef8a57e65903989a8fb449a48a35f7c0eb121813b531180d6007cecb7029c487205c65ec5d92e64025586ed622952461b06a91a27f8b90b76250206592f495be8dfe7a7ac946738591587159ba1f682cc5bd6d26d64df922489a9d426166bd59d0397d4b97be32cbb016a5768801ec1aa7f99ca99bf6cb34c7e721f70563704637041075bdd2cf813f58f5d0e1f781ca650b5ba3c2ef417ccfe06965741d256329d80d3881cd7d7f6f1d6b8dbdca894db522f37afa44f83e013a458d713418abc8ccc8f788be56150fe439f15f0c7dfdff0c13e27ed1eed32dd39d7ee30e864fc853115a58db927e69b528ae2d5f267746ca4099007907345e1f34bcf527d3c18a405545dd48b14f178212e65c4236d6427a37f57b7c15e6d28c051a3b5d26d273ec51c978950d4e82a43eb4f2c88e0c77da6de1e130e5cf3bf4f4a8babe1d402387c5a097596c5f780a17fb6b8f62c8a75cf08f9762f38a3f74ea3ded602083e1269054c52bff6d9857366686a54621f033865e253fdb156c92477a71aaeb11228b75b397d40c161e3dd319358b03829f06849364d4b116de90825146613b97ef4b0be20d0539aca42124771b597eb1fb5dbf366974e6623bf5f5f91b98ba96cffeeca3072fac91df2de108970b9f428558e9f1c4911e872ad62b6dcf2ecedbe908fe6a29b3f948bc0f99d309d3c626329918da91d37238a58476aedc65a5ac5464657c9078b9b8ddbd095ec81a2d0af44561a8d5b2b2e2283d93fe8211af62ebf6abd64a561d9f3ae500238c0d3ae0f38fecf0627ef408a970de18859608da2533bc3f632e23763400ecfd9ddbabcff1fe457dc94608a091f7de4402a55bac39a7d8c1e2c289d2475febf9061c3ec49e13b05b3bbd7bbb41725a9a80b17228fa16b98acb388f46a3fa13801529c5ba54bbdaf688e4ee07c1bde1f9000a8bbbe2eea61abe680c9e6eb3a2925d39805968e67db0d0907a941ead7443db4b3ab7e92daf574f950ef243d676f0c96fc4aba5b2556185df5b3173dda3bbd10ff379880c4c76227e10775c56dc61f7b9f693bd504d7fbb8a6870e45debf757233af3dc417ca46518a1ccacf7d993ebef09c97feebf39b4210788986867cef45d21013154cdd1afd717596e4d8e98e0a31fc71781c5cef40d4901506ed287ca9a095cd73c1d11197e8564173d5a7affc82be652fde7c6f7315981944772abfd7ea8943e0e35a9df5b464253efd4fcc9628148c82a007dac2c2218236b0f45b20b2ebe38edbc86e573e9919ca26480f74bb93bde10aadc3fbb5ef6f6051c157524d4e4daf5243e72abaa03172b5bf145733678e99e3daf0fc99aac39d082a90b4fae1ad731fe976de981dd1183139c50f6dfb7835999384e05b2db6af5c2fe9ca66feb5138cc876d858883b991ddd4f54bcd543c9ae2b7f9a0f2b8ebc294ac5dd050c40b25a7315a25d6940ea1e829b8505a67f4f8ad78a682112e3aec5d67ed7a751ff06929fdf9ed9c11e147abbf818ac4c90cb379721fde991466a8efc2c51acbd31b23cae56ea310c9863045818112a94d9667b5f3503bdfd6f80dad1e131c1c7b1d1f866cd2826e883146b479035bdc995d76e5cef606fe281cc69a4af39eefaf4304bdea6663232d3175ea27579b7379cde1422183cf9eb4992b9713b56273b796935249d46773e8be7ed787f15e048cd2af5a1d26758a97b0416fa3b1e5e25064e4a0832a436999ff7cbc7180b5fe3760ee1826a45b598f20202ae847b43643d6ae92ea6b0851ccf9258675ca4c7dbcbab35335cad24870482fbd92f5ac8f59f627b7cb1c800312779da17e6d53d9267b5bc3f99286049afa441cc64d817f640e7523f77fa65861b6a11f868237a5512980d38f0db3dea5b18854607cf13a09ddf65d084ae18f4260b79b223e0a4d1542862d03212a7be72394fa306619341a93e802821ccf200be7e3a1b6d3e36d940fad2ea9320cdc2860b9cae1fa7fd0a8c48bea5d2e4f9718f6d3c89e0d84ab6be08d0909bf24b715f3c3078c292c6371af3356c36d83799dda7af809cfe1254a4342ba98e6a9bd2cf42a0d852b546767a3d6c48ae2e497ea0cd805a2ca46611c6d115ab8a8983d973a2247792f77c2ab1922d22416be44825ab66e13f0947f4e1ba907554793c0f2160d96a721f5900a6bf5fe86350e5bd05c6ddc43d175ff4d7b70590fdca6dac3b2f1da39f99bc351120544ae38eca46483f68a644c3f05822b0872774ab0dfabe09a9b78c2b874f528d6f800af89cf97c5741968db4474b8f474bbae72f7cace5ebbe62f40724a6293b0aedd10da070879ddc85e071dda8d54a38b71efa3151f145676c6ca3016cfff79d0dabc00bcb3c0170b274c7146eee429d4ce5609b5332e209b064b3ed6765485cbd94cbf5b32bcfe4d76552657b0debd01f0c1fb778396e76184e95e0603198b56041a8d52457f20bf419e436d2fb2d6a7162a5c34cc398c4553ab7fe0cf45c2372e5175d54b545db7c1a36a4a49bf73ba9dd539f555ad89913c79606f1477e4ff1d393269135b6993734fcd6a701a6c798240241fb71b0ac889e12010f359c0cfc30ef503a24b40b6541f3b8b560082802ae71d0f94ed48e62c4fceff0d02b30f3a220b8850183c565c999eb3eba50cae6a33e917155a92a602a7e9b5cd83b72b6369aa29fa7c2e21bd594a8db694889d35f41bd7ccb2e012d97b6f4c5be397931700808362d1ec8c6774789565cf36a5d17e7d61a45f88357e7d38443de82cbafb5c072430c20378526b6b5052484037a8e24162bc3411d8b2ae761f844aedcfbe20fb97f138ccdc8bfd6343a78e6dac79231fc36b3a9c52f480e85d8b678a2b82fdfca329f2a93d18f6f3a6c5d6a97ba8a410801fc49f6b0d5eb5b6f064c70bd23215c87a8a0be21174864d9faffb1ac827bc618b34839e27a16563a5171db4aec023a1eeb1029a5b8f030041b05ac80b0e2c87940727f08f555694ce4b1b88fbb955e256a2b6996f8b7b101b113d32976c4f49b72c109c580f63ac5450d40bb0fda204a05e167b54fd9e874fc2dad78a8f4f6e6c9602e8b97f67b1fef931d3cb185bfccd818153fb1319105a9d66b1a27f73f72dd829d9be6d69da7a4c72959b5c457d0cb72ab43bb0c86553d6370a16bd6d0af6c6e08600b61c4de11e0264892492e05bc9bbb92b2371de32d53fa96eadd5d3adab3a92ade471630a05651faf26b9b2a992aa62acf6d628ac8ab6ae2bf46a0affb107eecaa440c5efbf8385414ca8314c6d89160263b55e8b041167b10f54b67948cfc778541cfdbfd2a55346684a2f3287558546a32c1bab621034c43a13872d57a46e92dbf275d335027e91c4d5dd9d2495db3a84430a03b89d37e63e6b7ff62916ce8f67ab9717ed901a2610d9f5f4874e7f20acac7c697dd6563da339c50695eb8fa71221fa95ecfb59a01cf2bc7380d4e49160dc52b32e46eed5f4b0e2fa4950bf9b61b8130534d47aad1818b2aefb2901a2dfafb682a246f66d967c6088f73eda03bb77f7edbc17e9f8e183bbcaa51e2c9fbeb7e67f9681ef53585df1891fa9607d683b20935e955069622d3dcc670764bab3c903475beb36eee0b5ea21a2c7bb129c4a9b175cc0524c54d426876cd41354ad7ee728e79fd68bf86d8d1a0d3bab36c6a77ac24cff5bf81b2ba2c1bb11eecbf6b942bc3bfbf402e7cd14f21797a96fe2429d56f5574a211c8bc5c533f618c9baea271655e524a3ea253624de0291f18d317fd915d25dd544193dadabc1cc99ea5ea55c2e1d2ec698bc116ffe550eb0de223ab684c999ba09381408ed21b6be41a90d62859356826eff296a0cd8805af8c65ad1eef7c18a45408417d3630a14123a8cb340fd8c9adbc0478081e534b12b7196f68f0c30aa725036609d11c0eda96bf8b323f95b189447dc8ec6da06f97aad37338d095fd71285d244c104d2d043dfcb86e8cd8af3a82a156d63e1c3e7f522ac0529a67bf9657b74dc5939a9683aa78bf618eeeb78ba2a1a1f0986eebb805c6fa24a065d5cc34df42cb1aa015f09d2a0a6e658f6ae0282dc6a94428d584c4f07ae10c743b55c5cb5c69b60b8e5fb9927f24547ed2334fc9516f72e79e1522e4a0e9624bed5419fa473dcdeb172f2ea665d7602d9f7d86bd4762d5fba7dea4674834494ac2ce55aceb01cfe512f997015314bb7b87c88a06d12518a0f8a8cf1caab424ee26bc31f5d85e9cbdb190f557121045783a8fa964195b0dda8c45a5cae5194bf1a7357cc3a45365c44e522a833cc55938f560d2f0988738a9706085d4a56e93c867c6f1e24de2c9624d0494340129354b50d39e7020094fc9004bb0f2192405c45c71480e39a9758a8d45d44894de2736c5db69ddd99165ed119741cf7a43e2160af8685cd06c5069efd1dc0f0ddaf2719daf1ae170a861f4b5506dab33d6e2cfc825f66b9698288c4aca1ced74e4fb27ef12f932b10620ae7b7601e298e0185b3151a802ef164d26d5cdeeb0ac5d0684306532c02f994ed461321034b0cce6e49e7afe4f2e226063eed1f9b0768118d92a1036d34e312055e3c297c6a916147d72951767c1badcc4d193f84dfc7bca6a93a41f8bac346fd7dedd13046e8971924894dba7ddf61f28225b154f7620bb3a132e5a32fae77b127b709f63fe9b2f604efb1222558123bc235af3e996606352c4dc2757fc42604cad2464da77056a4154bc7d261ff1837374edfac76687a080b68df665effcfe4acd034a45eddae8098ded99ffd3fc88c9244e505658aef4e7596de062724c0266bc773586cc64b1306abbed40d8a144036cb3d533022d577bab9fcaad0a957faf4f778828e299a83f66bd23f074ac2424bf3f1ca68fe67d29c6288d38c871954d9c25fd5740d2032965b6349b48c6c220ae19eb55260a1da0f504f4a63e3387da2e1ad485f28155748a643ca27242fc19c04c8171912de16ecce7e1df652d844130093f5748d9d75efe31589b03ec9ca729f2586846c55da0346bc17be09f7a768b03c8646ade83ad9a4656b5dfb25f9d46de40efb775cd73c3a6b1324a3b0c484a84c0e3a8997bb0cc3123526c0555de393e33f37bc9e50b4fbf1d692a9a4e18878f1f072a0b5fd7e53d8acca125e5b16c2515b51855bc6ea636df4981cd56ddc398a59a5912680e7c81ef67230535fae8c496732a73a5bfe34bbd804bd87a34dbc0b899334e8296ef3b5eb33353f71f2346783475025be469c1ed58b66e57d3317ec2ae88f5b41dee8ff16c02b7d56cb03a748e6d488305dc94eb3f1ada885a528b08e50af11a883d6e88823e7e74077c4ebba49307dadb5c43b559cf1506a32856045142dafa76ad1db5e8fea6e16fc12eedccc352d67a7be036b3102fb87d0ee65c311cd8b23e39273679b566070266430501e70891fe18004019fa9f883f57783c823eddf37cb08eb54b69ed9067f1ec355cc2b736f1d5b2356c2d8561470bc94e721de23ffdd20d5c03a2ecf5c814a8696c96196d47fcfdc86f446a303cee2b7e64929e4bf5c4f999cb4bd2a0cec3d53a135be76e3845ff18a7721bcec20932b26f909dbb0a9932f6519781bf2f32478f34b1cad6de171985a992940b2eaf3785ab92220d2d3759ff3fe303c0a6e3e1b6b6d23295ae85d0d2747976a9890f0e346858970b76f3d5afc3c662a57ea1d3237c8b3962bb4ed8681426332e5ed98beacad39d8c9c37edcd6bae54b74a21526496ff08b791a2299120b17105d8aa4b97ed3e276b50b36ae05351f8154bc40f92a52d2a5c35ee29bf129ca42622df18c3f9cb41c2ccb4f511cb20d255ec5bc2aaa89d00e975581671dc461bfd0ce456f54002ea135f852bfc94761c47e0109da7d97c3f68b52979832213173cbbaba1f684becff172181f3aab0686af08d44054b9d5504acbe90786053bb42aa8d9d010e18614031b71e09e3187dc21482bb7a851265051c763b41985d5b583af3ccc6d40e83d67ab1d7f26318d2bf46a0e13be825d028de8da7a4ab09b16ac595e144de50f548027fe9dd397dd343717713204be42a85d91c81a50cc6a91a07580f027ff2b401f43905970d78058e51d2ed85d2dbbb20793e869d5ad898fabe9aecca7af2d743423730da59a78641a3b586420cd4fc74b823e09b9c10f3c8321786fa993369c484318674851fd8a1df5aeeaada8500efacea9c4fb6edc5f812d6eb94c56d1cdeb076a07778de4350aad7b6818b70d113ea005475ef182fe7c05a60f4358a3d5e4c95844f758a90bcfec2c1cb3bfac3b69e5db59bed3206446292fe97fa3cb8d5730b72cdff0e84d60823cd18fba063a3a3826a7e39716d5fdf960440f0762e096d6d440bfc1a7373a49c2d2cf0e7daa27c9b273fc623135b2be13a84b05f52e347593c92fd88fceb299e71cd4e87be1572ca61c134c51340b28171a85a6499e80b73f1c42e91a801578dcdad40c8b1e484a54974bd4c5c39227523c28cba4973984f77e3281c0f0117a993ce8a00cea7a6c259531d6c935aeb4410172b8230bbe72f50ec45f9bab19c5438c56866731abd5196e4973d2fa1a3512374bea78f620c8f189179281211d8c7c035f54a83df4fb6a5130dc661d0138aeb3b0398702a70da59952b396faf04f037ecad14fc0a07bb56fc92f1b0b61ca7947faf789506f76eef5df883da6937a08853eace2c768dd8a20ecb62e4e7a29c55cbca6abb338c3cbd51351b2d0c69e3ddc58c3956ac5cc24fe3794759a5a5bb6b9d665c07088948108cbbdf4019286be7da7f0f4502e747503a4a4fbe16c74e23968b5c9e40009686007dbf0c33227ac65cbe26bfb1d145f57dd0a4fc27ac91fbdab8995fe5d464c5983bf59e1b3d0a8b950d3be26664484ae06089b1bfa1b929052ceaa6524164377ff08431a25fe94be4f3f7a8db324cc30a43ae7933b9543c204af068f662b92744e4e9219373dcf254c05af14416eecc99bb674dbeb5fce170e27b51699a8e9d580b349e344ba4743d727276c738c2b0ac4435ee6c0416c3c006a5cd61815907ecfa7d9d1a60c548cf9e4ee7129cda171c2e05d6bd706033452cf818270d08a5798205f462d65299be6267967a0720573285bea21dcac2c5853a793a1dfd1cd3bcbd8f49bd4b502bfe22bde4b906cdfae988abe7243b1757d029348b380f6426a8ec4501e5f21aef142e5c4ee51b43c55a6cc330eff9f6ca92311d8a4a7df39aea6839c66559de7932c670893b84fbd5de14d8216d584edc0190e1418424f457263058eb8d01d9d6e455a9814c144236b4c588318b9ade8abd979c3d1cf3bbc761fb9cc8895334b5b752522ba1ba13757f152361853ea6415bfbc5942f5c10a6a524e21a7c2b8dc6622533d1ca2cfce475ed4153fd5344a02d16d48d4feacdc8e4742bb975d34d76c1052eae9313e1ad8731074f670a5c13536d15d4d2fecdfe7599eacc33771d34cded4672aa34b40b89c78af50f441be68aa42cd6f74ac133b35ee46d6bc61cbc777c4efe131c114405c1e158427f655099e468452eaa20d7763f0496c16b5c87ad27e358ee32d9e68739fff4b9819bbbbc7c215ea6200e120d3c550f2f3c915c7616d0bcec5c6caa84e3ef555f741dfb6e20f925744dca60e1f5a30b16d9b6533980764811a70e105c751264747b6f91cee264944209bfdc20a5cb97763ea3ba91df23598f387f16dc5f0fbe912ba88e541d269916d947e1c0e105f6086c8336cdd3687266fae69675ba190e62be483cfc230f6acd03d528acf433209de38350b79595ae24a440409f8b7829e25b882e2a0da2da8a2583cbe142e246064ce50af783a6f0193b944be054e56cd769a7ade9dcdc36cad3c14c20f786544bc6ce9b05015cf5fbd604b3f18692a6a8d801d670ca37c3ff5f43a05348ac793e0e5bba3c536a491a031957f3c9e0e6bc420558c16a00cf0f491187e45f6035f2c176f8d3ad7fd23daf769c27fd7e218a643087ca456236374abf147d3496774a9cf54d963195fd2ead598552f53cfab7efd6e8f1fecf0fe4a6437b35103d92875df95836e9e849e00bf65f3742de71a58c3674f16fb75fe472b51e92e472c819d43d69483fcad5f5312bc0002e47747629bae960dd07a2a7f19c68c8c01e049916e162fb1fda5341236de55299b5139201f6a50eacba455277a969fe2a8688f2c5e077853db6fd8e1b97bf1828c42e2a58fee8ffbda8558839d033db1f6c910e62bafd96f94ee2ff13e0962a52675c88fb446c512f1402fd9859b12e48f6c73036d4e1d7c7b0a7a31de5dddf3b4e73725768c29230ca164936bfd0f7bc748f8a737fd4175159a0a5fddea28044153e5e14328d5adb7a607276c99311febf376c8634c1ce6935256182002f3774b5123afcfa601462f030d8fafc58c187c09ab8731d4f4135fae73576877727ae3a760172a0fe9267022ac5f6260fdcacf823045a8eab6bf9da0baa36fc3885d882d703b7e8fb9c6a745e2419ae2b0b033a160753bf8e2262f7d835799ffba72d19ed6d74464e6244df92a12146d26556ffd41330a7a948fe365b025f109478fc566e82e71a359454af17ba729c83a50744e22584d4e4fe34c9d09bda664370e412e00032b819861abbd61fd2664824b9d91dd65f6a5927fdb216088826d0721216feb22e39524d12d119d5f95db1e1dadfd5ee995210f7f49d6ca76636d5e2186ac2ccc5cf36a5ff5cecd954bd0ff4ebffa01e0c0519f0642bbc50b061a2c450bc43d29f0abd70763b298fec945aa80cace54c394ad1dbc6ba093a6f9c098a6c5449daeddf486a6b26e314940d671937b5dfdd8e42138bc04ad62b80eb8177b0b6321f0888608ebef310fba87d82a8c7664db59f9557222e5b10c0cf33c6113569fb3b497d51f22b78e0a2b1ba1d680790428a3d159688a804c6c9bf6d7e99c63f376edd55f94495a28775dee9eaaf85220b055759c9bc3d1366c38080d5ccddd960d9cb1b25f3442d6818c842b31b49fc3f6bf369ece7ab17b6362f15dce165e8df186fb64b368147524c11bac15517c2f838a167354200fbc39fe197a52da8293d249fcdb056aff74ef12356be67b8e11b52162c25e699a107083df63037afdcc246fbb6dd6ee6fdcc70fab8abe9d3ff73483aa3c8befbab0e48447ce8349b3476980fdefb5e961d9e8a7da8a64fa87859f4c043eabae939253320cdfbf1816f961168023118e464cbec6c372620e6d6f40c00adc064d312c0f0f2ab59eb22b2e2bf186748c345a83fc265f5b67da2c084bde49e54000bc3cece3304cc76ebbec680b14cd86fa08a3b9126db2de5549c21bad3dd93ac5f7fabfd30e207761f0393ce0ff56771fe1cffb6da92ae262e0916b1403b6c74fd18c88ec5f4abc47d5ff70191257f8dfc5ed1abe0020d2aa210ad505be954accc96d603b7c3cbcc7acbfa1a54e0db1c4be0ea595d2fdfec145c7814a857f534f112897b027b20ed90567f495cfac6c793fa47cfea15910be3b014745133721948fe9ae235a12326b882f1e3c3dd9e44f84f706f0d67d0804e6f872fa3552453f4b88735f6a887673d1f788fa777bdf1f22766e5d7dbc164f7b9f6cdbc7bc0588d6cd009bc850c22427f1ee2f26acdbe63ca138f75f3e917d984d2bc98c4d4eb73642a7556e9ecd56885785076fed3ed51ee555cdab8fbc23b3837f9ea60243a0770a2f7948bad5d49a3453c7836fab1f70c43874778b3aff53eb7ad311b2939835fc23bc3f2b132006c640300c7986c272296e62deb7188fa158e2025cca0c20fa4486078d0bdd4995ccd224c588b3812459272bda415322504fad19c394f61a4d82da89a3510d1868ae4c8b45853438661497c211a550a7e4a36c33b1063097949742e96632c47a90c7d4589d475d8d11789f19911098fb145621b5134262abe1624d5a25aa00df12a880ecfc0987926a99e1f1f26de61ca7cb5f4f1378189905e30cc2e4b2934da00caf011e9d038bc6b1dd637951919fba32c4c86e81dc689f251697af5624b366db59abadd7edcd2afa1e2ae69e4ad16eb520da1b705fb0a21df50bc70d9633b85105b459ff357f1b8869ddd4bf94ac3749b8b9c802ad8bb51457259b333a49dd1d2ae37b07bc9a85ba70162445fb198cea8b2192d14dfc10df24e50fa3a1a66fc30589576b1798819f2a28631d5e33a660c932678c9b87805ec33c5f21961798f19e4040b7cc123372f391d1659269be551b9aab89f02d12d77255a959fd830013af98cb49536988a14b3febf0881453017ecb4ce2dd64eed887dce9fd87529b9e847482a2e801227c850173ab85dd412d528e011827a444cf0ec0da3b71d936565ada309a5b2f0d7ff57ef662f791b8c146880e0f8e834cd4eb3a92979877e6f2765fc5c1e54e3ab8e2c2e062f216f0afc12fd14877cf2d338c877975f2cb8e3c509b53ecd885a3325f90fdc2eb0066a6e94e323841906cd87e2e720940b5d294f76a539fa3913443f84b907fea042d17637e71fd8ca1aac7e6bacab71dbb25f9418afd4a5d358f19b45b49b05d5980bc0dabb1cccfc775fa320650989ce0714e1e5833cb9f72b8b184e3fbd7603a6c69bbf0288a622be110b0342e6d0e1b37df0be3fad218ea2b56565cda467b389d5ba100886096f3c3115b749bb094263b2d2b47a7aafea44c117968888b7cf90e02718ebffcb12b4ed85d7a1048c2443b4063b971e61f58e1c4f041463c12fb4a04d79f98014a6d0573f9e12a02cd1f5ffd0d08b4615386e734e15c59d01c13db87da4694cad1bc86d859fca579e8264e5f4baf1e9513c6831b9b690be662b28e4599728f934ec533d08d86a292e7a17a1630407c28be868394040def13cd96d717d906a92d721f5fa6f19219ef67d81d2e64dd1b62b71794f09f20ce50ef6f4cedc6c28918b498b6b16370c447b0933bee5f14570add3b38b6c10dab97b3665ba4f93d0fe0b9e3b7f174dcc0c178e956cf97e56e2a0dae4d54e1c0c2d6abd927076ede15794aa3313729e8e65ad2dcc8a25738029cb83a6a4f9472080598cfa5b20fbfbe34e99ca6750df64d9aea9f2d8f3f2d7e03f668fbda20982b225e4ab9b003cdf7556d7acb0babb02a744e813d479dbfa3037d2db7791851cfbb567d6c41bc71644f3815a7748cc5ebbd4ec2879841179d419e4423c056824998717bc67ae9aa45672636c6891f9b4f98cab4980e7e6146a7853a04e18c64ef0b254005524696310663036a64a4f658179d81a7b4889d62543b575aabf183ade722e7f14017ca1c93b097ce51e76ff12ebf4992fdce220684a6e8b6146a452352999ce43c3c393f65c4d7446b4188489eae6058a1f129cb5924eac65db97a7c47520bd0547a0015d29c75b61558c977d4e6f532be4f4037cf77ffbb8e2629ec81225f8b95b1d044932607527e9ba0e7266d7b5268956bf79e7696961bb0f443479e4273d670ad90d9ae3d28c37d8a0ba212ca91d76372275302a0e4397ef70853bba9c05ab6f184a4bd862a4b827382ebe82c5cf27e35ad16c26d2c66be13ee59a13a69f8ed84d8a361ed6ffbc3618f97666e9e92b42a9206db5aca8ef6937b91d260e601312f06938379759d601ca219c5d91224764242fcebbbddc22d56a6c0a006554240025dfa0d13b3b454d2516313e7f5546d7b8d731266cabf3d664d94bb48478eb8b5779ec7f7a5038335918b059bfea0853be3d90b3ce20e3394ce564209f4520f6be1ec70adf98f30794fe49c04afecdb67ab0fd968f2a92692fd180728e982e4d052bb09d8abfe20729f79d8ac914c44e0f0908ccfac4373422aed02a36c7b113059e9cd4dbee745019db17b4c2e3f024bf060d075dd115ce309fa22b4387e4db337080fb1d5e8a15b192f728acd9f0790afcf00a02bb51c90ecd3e463e21555b3f11adde96d2d6ed097c5ac1cddffb53b2207ac5bfc27feaacbf99e7c707f89cbe54678ae8a8580bcfdb55d3db3c8139a8224309d370966b1da2ea69bdfcbd92542f42afc626cec2e60da43bc8ff2e4e65ec769b1166d14b581409cd7fa2cb28a979b11c082f71d7565f9809e0f01d0eabe14fdc260bbfab5af2722db71a7bec3ee652f8001aa0035c95f2ba37eed41c0614cd9ebb1853ba3115f94863f0e46198b5550ebc7842777310edff8144d81fe6b5a1202061ac762d93ec07bdf00aa793d7f86db03239802ebb7d579d38d3835292c8be311cf23d1c5e1f236cb2cbdbbecfa2dcb192b71ce8fa056664946d5ee761b503105b85051539d33433ee218a4605622a76c349f8c21cb38d5cc0bb08bf0b73e2139b181808646f20e36fbcd653474da55307dafaec14a6bb44b73a05016b9fa7e0510ef6ec05d8df0cf263cae983ac15536dbbe1bd860c70819adeda608f0e8f030dc5fcc9253c79f78211da42a006dcba4fccf0a363852a6c17d4f9fb9a65fb697de6a15bd134b5a06ce52e53f9552de09d2f7a3d042d38754771ff868abd8d99527c4cc7726fdbdd420339b71be9e47406b3236db6b693977bee4be3eb9c2e8daec313bd8522750b411797be4770587dfc82360a49d5c23de557e926db1ed95ed569ae42efe1d4098826e141307a276fe7a143cb955f9440eee2377276f2d348bd03fcdd5b4e891a6cafc0766dbeec1b43c1659cb3ae4d836d26345373e3cfb0c6d2d9f1aa5f529db3b7319bf2fb536bb42e236ebf79f21ebea4ba5b339bd40e6cc33528b11fb56b51f7423ff5183c4e046e1586a5e6e88cd257083005fdede19776556768ed43ba796d39b37353fd82e59a74df4a10c3a0861d221171124b776db1b5de1e21a349065e99f261f3d6f3f4326d8dc36ea42e3d56a53124782c8c384e7c0f21353b09e9ea81e6cb0c85f8b159345acb20cd81496719810014817a7a1306f5acdc7ca6977535a6b56647f9a9e45e24ee2d2f23437d3e4fb61f783f34f990dc03031ae7e2117cdcbd35e09915cb210f8452a7fce43a456d0c643b80b9bcbcd2f8e69eaf1550f91fb834a3cd438a8a6bfff3e7ceb61f15142ff17ac64bc93446bf3e77ed9b399f18199649cf68aca49e63439c34bfeed5da9a2bf8ff8a4d3784164c03dcfba3ed6d224fbe8f748473831da9b29040baf2e6124bb2e5152328dc509ad2dc7dd1e53d64143ae76524f732c9fed68a5eeb4f8fb25c0a5c9e2327b551d6e3460a93fecd3d622e1462d2a1c5b4b1eadf655f375ebf4685ff780b595cbbd45b9f643c6516a641bd560d49a15784dce5c48c324c81967bba60c97410182122a55604ad521ded5b82c3f8623eaa527596ee06346ea892992fcb0e682ecdd7dfc6b773ae7f179a8b5fcf2259a0bab48baba417014fe0cff7ede42648c0ff9941429f49bcd634547e345028ecbff8a18fc975301773838a38f9b4ff76d0c3584231d56f89ad2c04ac8c99f7f8aa96355ed6618e6c6ae4e74e3863170d3b3bc8a96ec2c9d9b4874bf726c6cd3894b9578bd3a488dcda7ce7270a83a3d718cae0a5291e8748540d3600a36c72d5d4254f20d8c92b2765063388ce04ddbc992176460e1a5f3f741657cbbaa440d99c57258af7c26f5768d914aa77b91c3a6f3ca66c7af399ca3c6ea7f4fe5011263a4d5e04adde102919bd04beab7f5fbd7e6b3cfd906e72fca838037f12ef25e9f23376dedd0d3e03f466455d6ed5aceccca4954a24205741b5af0890f48c9724781a15ec430b12f6a96462788bb697058b5e3e1447b81500a2cd03f9e737ba59c2b8171b56df2137f30a28b8f3ffde16a84cf002250f9a428d664e3f777c0e6226bbfcecc06c022748f31d1266af86151be36f294d74119606f294467ba754f9f54a2775f885ab4486e665ba2157549c94e3d42daae4c6b07a209bf130146fb563f6c20e03ead006af0f3d232342f75d0b40ab18623c1316d0b5da70f53c8f6978fff340d4190f633c84552fc81fdab7de1e271e74fcee1bed16021fc8cc91370e17ab23045e4eab8d33bfab10afa433496151f5c3ba872d0278e9d4df44f342f19e82d33bce022963408dbc6ad93cbb16cd64bef7474336ace13cf6dc91699f3fd07cd3d507f4404231f8b65fdd0d8ffc28dd08570a67ecde91c3400f6a0d2870dc2d761efd05b3143d604328596f4f1658d9025efa4a19eaf6dd7108d50f45358498e0ddeff9403a60bafb2e7702243aa007ebb57ad750df1c8e7ed03511f0ff38d53cd569c125f2ed47c4dd8c9bdf0f713acccc65dd5615745d39e80eb11516a41e450ac385cd9c4400dcf5e2fa2748c9f1c94cb756b76cb5a3894eceab2ad27239906ede90acae985c157918d6b3509c90aeb9861eeedff4cab84670999982dc68ed1e4ffe5f66d006a5bad0a261f4c0bdde46e8baf2406a81552434e5d1c49b342c71126a72d84e502d2ca3dc5c0ae247cf8ded90f476209105545fcd7a547e76317854d5bdc14f09f29f0cca6822cf109d17af2999d8653b81863a3d5e877b13c6413e57c3b53ff9ac7ba9bb05cfbba004dfad03e7f12889a7445785c7793234238e5bc74feaf27a75fe0bf6cf2eefb0e69e165ccbd53e0aef0d6c7767ccabbcced488cc6b542acf8e8d99fecd509ab3262fed53f3b6c72335e5f7dcfb2c592be24fab07f713bb1bc5c15034dea35b91f68d2c0614934720b6108ad904307a48e29e3316c37525dc392a383396aa723ccb3b0241794c7eb71f1d16f318b66b32bbc920e57d4ba9826e3c3a6feede8bcbfdbc1dea04d281e271779e9d7684348d21334d78bcf001c0d9cd96b7e1504a1bf602c19355db864de2c2a3be0c4053b9854802a17c2da76a7f8652dcf0ff70e8925a5de993db89c379d8414921426006e0a082912d0dcea6d3a528249627ee8f87ee4e9aa3aa4c53ed8563a6db746952d61c18d0106c0abce2ab94a691cbc1f414c6a4dca094019c0abc95b5b11dd62ba031877287532c560fadd5f52d6a5242b0a411659f4084dfd4af1cfb1b66f28bdb871d5f4900f8986e074307fa858c13583079c9fb158bce06a1b3d8025b4820e8ae24561f04d51d1e59c6deed5619e21329bb73ea9bfd3c9f34e147e0154a9b2554daf04b3be7fdbab0ab2e3ac93fa65bda6212e8827cb03541f1759b96872759fb3840a035d84836befdcd7f63a2a8f095b7e579cf3005758a2ecedcce7095e12c0fb5e1e50b032e57206d33b751643e745d7efbea6b1a398e7cd47ad64a589e121ab4e3f2b453193a17157ad6b12e70228b0d4822b183ba528798f511bc999ed120f83c16cc3e56f909860833b30915ee09cbc007577e5ddc315a2e0f342da52d0ad5d108a7951870751de4c79d51964bffb4560cec541e5d8e965e34dd487f044d96e4ba71e732258a4a59149cad6142dff0c54ac8692ad0dced21948160f32b6f5610585ae01b97c7c1772166c4a4d892e07fadde192329d754de2d53ef9fbbb374445072a85d1ed62c353eae007e7f98c9d5288b19fa068aff9656d8c56319da7f9a94958d886a76dbf2ac8e852c97356bcf47c5efb2bdb678cd8701a3db824dc12ecf2b47c05a6d2b661421e87a66e58e3de211dc35b8450ead7aab578d8c3a1f4583b7e115f1a5ccaa7e031bd3de2f9fc98dd91c0340848a9f5741a885559d741592dec1e6ae7713dd05aee5e1cfba11a46a803951c65282bcc387f067a547caea2f4438a791c7b626ae6cf6dcf5901fba6d984faa55ed55594a8e6046d628bbf105c171385ca20eb47363c49dc458304117c8e61935c8e998cf74c00dcbb354993e30496abc4cb28ebdabbb1b8facd39a7a877fbfc9a34795ee3a04900374bb91a8d6d2aa2ac291417c2efbcf7b207b01b1b8ba950b2c0d7b125d3329f69221f83406fa935202768f9ffe2aa46df1e3b630a71a35353539e738132536625efc8f7edffc1e3bf45a500e339d580c6b23a0b355ab0160cc14f3b02e859b07765073d07a49474c43360b9a75c4dea00a040db909257592768a4dc0d03b12e87fe3f6e26dcd32c43d12119e086491283a56638c65dc9e9d18c979b107b88b2e0028bffc59ae054e61fd0d816287da3d7aad117f7586b5a4f9d2edf582b60f8bef24689a64132c0b8bed76d2009f5fd933167075f7a9ea49f97538eb1ddd2a40ef22e988f6f23a456dec4784909b031ac1163fe95cdd0d4424d7c4b842be7c05ada8a0c654fc16d7bd52544d11131aaeb3dcd660b316278db90864e0be2ff5db86b931b04774af48ccb3312acec44fac8f43aa565c29e52db46a52d2fe98b789c6ca07254ba8ac59836dd4fac97e3ea3206c7b4f9061010bf14e360694a283f690abb62588257d6689755ab5a9c538c47c95b7bc235379ae1a24bece2aaa61f7a4de318d211c515dde230b8c714558cfbd8ee43825a8798a32e72c3607fe75eaa34f16fc7bbc8c5f4811477580e6cdcd6ae1c4962f6b33d58cd6e63d225b27d7fa862485b00f9952c670ea133a052df3726e63b537ceff5538851657f0d570d602f3bf69d2530bb7a5bd90772e5a954f0b10d6f9f5fab63ccbab43aa08b269435cb171c40f2639c36d4cb53a70db9cdbf388b6290cd66f77c553bae4c0994cd4dfc115ebc29be39efffa28bcf4e5d946ac49c6c5d511b5cf82da872144d31c15bbb96d2e0d21f537f4241273a19c4de91869000659cbe84a521410418f0aaf108a606117579ae86c5c2d33edf33da43e2fa620facbc3f7a2796cf00afd9359cdc62bf95aeff4d9abe077233110f52f7c3794704a5083f930e2826de481c127775918878496979e2a77fa00a5c7fd1db3ec5289c5e98350f66f88220750df6f2aa8decebc00e3e662ec028164066f173261da4b8bb658dde4fb80cde6a04a7e763578f712dd3c8f0272ec473155e545047441f602648f74be166f19f22df0fc6499188a3ca5fe889de1d3a2f8030f2f994f48c0e2fe58588029386e7388c47da0a9fda05efa292eb7630e8e421d330060d8685dce1e88df65f0f3cb3575d833365f29fcb53945147c246f849e956761856f91b533bc20e178d5610f9f0a31865db4855c866c9e348502640d8bfac34bf57a38be2629a24c945cba38f906eefbac63c2357408e2b6d1de40ab3aa305fb5fce77183b4aca48b399c326ebd1361c0810aaa798189fe20c9a4d2e22139844527bed030f9cc0f8f58b83794e924c0dc4e1b8cd286a8e114db5e90cca93e0e9e29e3414da4c6857d9ccc533d51018aaa70ec7e64e0cdc681c625f4ba9b16bfa7a5e5bd823e932e7079ef1e745fcee0fafdffc637bea044ef5cd3db76d1f8dd7e18b88709be74f0e09154f2fdbfac196183c5c9c1f18cb307219513cfda60118867f1b1e344d47097982b25bcb6d9d7a3983d8733744e073ae211f6b567c7215de750ba1ee3a0460499c399aa094ef70a0a9c497ecdfeffec66628ccde3c8488b668061cb7deddced5de23ca6f4763a8884810cc260f1c45325dec90ee09361b9df63cb3a8c96a4ca9b72e69516f6bcdcd0a462908707bc28a5b41352c6c2160e247e3c6d05629411bb34051c2fd0e7e9c7652f880f23dfacfa5e50f4b0a347fa390fe785b6c88bba19fae3c4555789e498337ccec35d3fe0d285bbe7abb2856ab3165906a5132e813cee947a0e525760786294bdf93fa0aca9b959facb7b804766a4e740c07c8f8903525dbdc2b4b719ea982aed511789f13af3a71ec7106f10026f7c0a5236f635c47d73dab78089b3f20214eee265f4489d10f1ef382e503fa02720a741a2d632f503a809852e6f547aa624ff24570d95afeeca95f7ed357eaacdf8b21c9f09e7c8b4fd34370f046f42db3437649b2c46e1b5e752ca05283d864bec391e899bf879917cc2937348f7880bf9617afdc466d660cd140ef745f219622d9e0830bc2bf9c35b06bdf806f5049fa85de9752120cdc882408daf63dcbc6412c23b79ac9fab2912bce9fe947c4e919d300fa179804ab2289439bfadef64aab101741edc4565c9acd785e7960bdcad5e25bb78bb26d5a1886dd180b28aacf7d53dea266f96859dee0aa0f5c60b30a88ad6f14d624bc09f3f5b7d2c60c7d2ba94c026663f84a1e471ab3234f9750b33b01e82b11a442eeabd8e85dc8d663f6e8fbf7a55f5329ef34fbb4fe864eba09ee62df76b31d3b4da6194f0fd1a1d446629a2af03cfe240842ec1507583104cb49376066ebf8aca1ed6ce7750248c309adabad17a3cf19ea67544daff65b0ae67e1fb7ba3cb6c5062ba9d8ce1d222ea1dc0a54e3aedb550b0c1e1eb2e577d5e8387781a18e804c74d7cc49ad5e0fba44b581519dc54b55133ae0316f259709cf76dd54b504ecf869b9a474d0463f003f00a3f5011bf48ad39044ba753cc5f376fd35afc8cda92759418626379fce627efebe0589ac4ef7eebaa9f5a0dcd226b92a8e217edeaa1dd60c0615538a8e162f9b5c0fe56e465ca8c15b1a8f682f89993ba70a208f6c4b1c635d7fb2b32a68d11cdd93ae21141e2f76e95945f837d0f852a91c9de627cdcc7d459fbc286b6de2b3c841fa597837974510177fe1a402a1f8be04bd348fde9070e66a6efd36b7ce70524b45334f2bec406ee1df6da380aa0521f6c065ba25e59c2deefe95290626ee80f870beea7d9ec18ffdac213a3b166645db89f74dc1710c980817ac0589a10b9c85800a7a7a969fa7715eced3354644cffbe5e1b70a946a1128da457b907a79bc52bb6aa5c7a8579f307bb6629d003d5dd38c04a69f1b932ed5fb02556a88c914970012fc8c07b074d7c1a0cb227f24eda0d8525d6d7047ceab41561fa991980b7c3a9641b4804b38aa0e8aed0e2dc062409b68db86fab7879e7255ddd2314496fbd19d047fc1176f6007baf203c731fe4c63e5e0c1dca84da580df1df7159a7cbcaca6ccac6f6fedb3c286cfde0f0cb56d005e96661d4ad86a65bd80ba19a20f95a4d9c48909c66bb5bf28e3981ccce80563e32a45d1c631f2a126711c03b1c7325f78c8fa8e18e9442c738c728716300efa48095e0b249effd1019ce5844dc744e5468fa769dd64e403b23bbd10930086b1ce740314093d48502ed3723102973af190d63700bb4cde14da714055bc8331ea177b85f262a130291703041343d50ede28f61d183c441ee5272e0a4956c70c3db06978ba531cf745c5e316e3dff81e419f3004342f76905a70060059ee3a81d25ed5dbb014ac46d4994a488b1dfc72bf9290c4d6f461f04b895ca15a1350e9dfefcf4b4bd7f683220bac5a727135bcdb7a1558b1e30bd514aee9592359d2f4c0190b6da2834251e8570f2464fc6885830fa243ecc39cfa93149e851f5876b4ecbb0835631d0d07d6208e80b5ec8f7bd99663fda5c0d9d2c70910731be3d8fc9e12431cdd839cddae383d90badef2c4df553908b686d9bd709ef43ac3e0edf3602bf61121d2606045e377f51fca8750e60aca38cf4d1b16e104f10384050d44e1c1328cc39d5f6eb47b2f6acb4f0fbed9519565d5fe291b35a1ac9d5bfaa26d9b3b50367456551b8252acdf62ef09e7621abae99513c64e53bfaaf67409e941652900caa672530f425f09dbdb4b1eee343c361960211cdf7a227d7d799a183a7fe4b20064cf27e38d19e511db711fc4483b6aa5fe0ea4f168c6c0f69c33e65297cbbe900e9e748442f85fb40a6cd0ef6f5500cc58807fb0410fd22528494dad37d3832b4d4f1172827609d086ae0063eb6891fc716ecbaf6cb62865bb69cda6ba6a4e7e280f294994e9a57255db91e67edb2956d9fe32aecbed9985f6b11325a129839d5d9e24da1c459d4aea2a17029e1f87d65762a0d1959c68f27851755067d956c6f2b238067812e85331167cff6ea5cb69ff39b9b1e47b264875747ef1d8c2b576cd86bc4c47f1c8cb74964e8846eed6e9e8ae68664e0a687b885022319dd495d9154d46147f93ceec11af99ffb21f8619c4b014fc167ce18e72747228aff23ab3a08432992fd3e4fc5a2ba69e5dfd4bd41111e6aa974b99404c567691cb34f8afac0e3cde5914bbf46739c4564044537a32b3e8af1af9cfbcdbd0945d4f2ffa94baeb091822a52047b47633c64b43bd528974fe2fefa09731e3b66e11371b6c582d0500ca13cce9cbf40b5d6ed2a239e28bde4167428d5dd3409e9e07d9440037c7aef2b8adfafc30ec68edb157cf959db362be41dd382f9ec05f91b0c626c4a698b9bcfea05080949d270ae744a194f77131224d555d8125c188db14970449e6420d37b1b6e7eb74c95609569e05a5872f440f169181a58de9248c14de1fa648d0afa4bc2e6badb3c3f2125e548a5b88e755c5bc4d34f3a0a6e8e185ce745d3771f4acce584198f5430329eb8dea19e781ce748fa3f89aa235cc4a5efb9dd791551a205e2b21fc31d890904194b95b5f74948ea6dc059cfbcd4afa1a275c76247f65127c5b95fc809a6eda510bb10b0b1fbe67f862750a7c42840ca316b7e10a7635c2407c59ba271f730821c0f03e9ce118b9897903755a828969773c0501d21b6b9584c2c3bae50738a6ecefb3a9c8ed2a8104213db7224aa3682f7c58731700dab301895475a04c827178e4bf3209e0f748e39eb8cd35935f546f1701c9f2a5567849d58cee0efc93468947f4da76463b859a151fc2d2e11651f23e52e61e46d3515d88ba2f012ebfb7c5edc26b00c4f137712efdd4ada0c5e878c02dc7ec2d3e15d5b663547a6db3ba228ba1d1feb7e13c744478c6ee245c20147f7d93af3f3bb66119bd499ea70bac854fcafc44de4120051276fdd0c6292179adbd6aa831ef124e38324116be3988763f1bb4a59eececeb715e4f90d23fd43d7b0e759a704e338cc6913282c5465b1b2d7f2a2662989456b2227770ba7c62c58e6eafc27d28aed818e49f6cb3394435395c8860a9cf85acb5722f525ede9d8fa7e717be5bb7d71efaa434a3e18bb611a544e5103dbb53f6f52584031d9b5b96ef36b19c7857227a8f90bf52dbab5538e20839996118a4e17aa49ec82b3860db170ba98312041c39f10364e650c3e7ba00aa3b54438be6d2b71140fd42ccd3fa9aa1ea175c7d73c41f9eda6a09e7f54044f44336012ec0dbcdbb101b1e373e64f47f1a0eef8f8fa6cd9bcec1c9c37edb3ec114d580b627cfd57daa53a347f66cb6e3c2006663f7e05d5aa40101a4c1160691ca8f169aafd564facb4c1ac94de12e66c8df8a824d83dd5ee9e6a13d80c37ed5ab6b6631aad77944e95c959d46d9a6dec66d77b161426db7ee7a0b786a505262ddfd50653fbe0e7b797fb117c81ad4f1eb7af0780ca274a86a6309148117bf05df712a97fa47911bd706a2a5dfc1af7db18000b478167f0c45d4249ac541bd3d7476027dfb594afb1a9a2a53679936bd137f30e6480eadf1ecffc7f4321264b29290a507a801795bb321dd7250a2c6b32f00340477fd71a1124e52ca3f884010869681da600d85b0de16d775ec4fa843e72254f9a649ae7ba9d4c9edce8b86e125707b2dd0e7501bcc00bca803d48a0864a44d3963e518f2460751fc3107d372662a8c9a36b768846112698b03b152070e4035c8b215db1159edcc5ee930ee1fa5e91653ea80ed3301a6fa764649eea617b2d3451678115440d3de26c30671d0ebb52b78c2108accdb34bc430ba9d8dc313671ef020e78be4262ebf490337b5c4fad41e4c107d4c8c9a3e6f599c78dc89b64fc44004f76fc680d8f513b6631868a975ec1f920ec2ad09239ba4e5572590eec4c2d27078f17c061d6520ab4a8bd01418911056b5216c5c39c06e9965668e493972c820d21e2e5798adbee821584b069b44b7b65fb9461a1104e4a3246b93a0d2c06bfcd9bd894b850d17ce4a6414c592d3965480fa9d68a9460c86c0b81b1e89fd7cd4af521994dc3b75d61b5fdc0a62698050402cb2ccecf2edfa133177aae08bebc3f5773577cced2e1a8754b7533f0cf154785f43f56d791757abba7bff181ae8485060bb772cc2681a2c571ff98eac3fc9bc00895eb7b4a11711ba60f1d77e97b482523795fe84d57d4fccb129d658c4aeb5080d8713fe44eb3f80f7cde7b3362641ce626dc5ef49a88feb7d1064fab0efbdeadf5018adb44297b042da8d357f99a436b8a7022e7e01de73a02477827dd230cf34d2ee8b37822016fc90a877c8645bbe871222186b4b368d3824a451d0dc861ef23b4e0b4d318c6dbd12be19896deddb6612672bbcb3bef21e8f53c88e656a44bdd357e47a9923c8e3ab958945cfd216c192f7f5eea8bfa3991b47bd29266cc54b33493ade1f59adfe1575d1645e0ec7d54d5b18105f46ef58f2d6e9ef3fa459158d10e5e569031153460fd6eff75d4eed3f50358a7477ffcf87d07324f851ebb1137a2ae45d1e88326c7985e40a9bbcd922e4e990db0776522eb654ea7b9423f9730e82824689951f104c7ba6438084683153a13a38a47f237efe1444e646c04b20d849233888c129b83c6e0b1dfb304b3e78a7485240f42c57f2f5588d88fa1fdfda6a96c69804e677bccaaf9badb6af6617b2acc4b3afc9aac3dc5cd448b22b9e30c8beceaedf7a0e0d9f64fee8788ed548ed6d8a8329955a02ac47cb4c98a92f974f7126282f90f670e9888b8c026afc2d23f39e1676f1dcf58dd09c9d87f3edef71417f224c96957a200108d8abf1027410409590896eee8ea4c65618991a5fa4922543416907cf0a0f43c359a8026ec840a84dba02d5d49af260561f1023d7fbeeecdc07009d58128e860bd3433c8430ee2c64136062b329767faeea9ff6ccd0eea04f666126870844fdd6983d8849c9a1d6296a6f4f9caa1614b2fae5288cb9848caad75c5c6f6bd1a8ca333a64cdf04eb82c746d3211495dbf07e284defdc4df0804c9ad4fd7f77c6257ab3deb7fce99dc26760ecf973b3978365a14f4528eb3fd1833b20d714acbcb4f31f6b1df5f9b16f4cf5816196780ff8e946bb274bbdc8fcfa6b9c3adee5a9eb3913d03b8d68e7dfd2d7715253de2c26ebf745f958fe91966ecd673cb393d866b3bf223317ee6902bd2749a698ab681d349913071e1a76b961c5516eb9c9d572e3da06693769db1c422a88510504f03ed6ab1011d3a4e1c58da008a908a482fdadd46ca9eb593d39dbc207ea2b216eb56dc47ae2b2176907a0be03f32d0004d0fa613c5d5963973e2e7651dac8ad4296e230fd431d6b0871e7edd4f0fa1df720877d26407bc7978632a8efccaaaa8dfa44d6adfa6c15568af0529faeb99b8871c7fa78e68b927ab7b73ef61b861f13cb25f509218c46cd73a0501180b50fa86ffea2142df715d50900ea27d473d30a57a3f5f28ac7281f076ec9aaeeb9b073b338eb3e8c8836a8607b737566a7a48fb8de56805b0f58339a20750635cd5466a0bfb9ea6f99d3621f448256258650cdaa8deafb20dcef5d49196b537074ecd419208cf3ea63f830ecdbc17df73f4563db51cf8c0f8e4d2ea9376fad66ca5d55d69fca20d6da58a4d645691e4e13b19a27845731c3c658d930ddac5c5d1c5582bcd1b2c33c3a4be7ef44cacc88b2b1c484273b3dac29c79246c8627219ac002e4fdf81f67c659ee84d248673d15de7ddaf6b01e70fbfc1560ea4e8015dd76ff11f8c0fdf53c9c6b23a54c3b8bc1a4c5051ca7b27b13e6fa90da27922bd1b0abcc4c68b9baf3e984cbbe3b944c02f9b0746b2c153ff7370ae9303535fe08152f62ffb534ee8cb4aab7ecc23b42f81f981e8e1c7d37f8eef8c87d63859345b9732f3eb4463efc48713239a3607724f2f541f97531bff20c5975858b3fd5bb63515c2debca933bcbad28aa3972495e6fb0d9f11f33b3bcfd75a65792047f8675ad5018111437342d582d274362c4f9b850644af8521ef5d5e9fe69827faefcd6123f29558423b1960d05be55c80cdbde1b5ffcf9472aa458a8d0139d2e249690d6a1a20082626fd4bef060939ff2e9ecfd5120553540a352d8bbe9352654b2096ca24378a44d218da62e1be505b9016390af3240f55d32175d3c048aae7f6a45cb74070fa2c681cc50d2c0e23ec2c1d30ca6ec73b03d550e66e16c129fd60982131171897e4ca99d82b4ada29fcdc192dbeb5b28cd3b4ca6363e4d4214c17c9045dce2d086590a27c54fe166d35804614765cc058b8a27511c6431c91bf8611b474e96b774296bbaa45825567e810b4de05923bfcf6258b53221a8e7792c40b3eb58943a8a3e84b6b0b618b02efc8315283b24968357cfcbaf3a9a8c2466c9f3c06324995da45eb2abf2fb6dfc0472c8d7639eedb1cac7e73f10bb471146f69a33c8e4f2c43492003ff21e92249d6d7dcb25bc0b579ca7c441f41cbc04f6441ca53322b59bccb015c9fea3c657fe2cda87ddc79784fb2c26ef928a4623e021ac662411aa9dd507684211a382b13ecf0f9653d6fcdecbf51eeddf9daa7ff929ad3655c79e73114fefde2d473975ce727108a370fbb366012c6f759383056855a408028fe97e0589239dd6fe7ff4a41350e7767ecf42c6c6d723fe48982c1f9e7421928f5c51c136f11ae1de49d670d1e11f731d9da349f75c108bd12377b7824337fc4f100e012fc48eb41c74f22c36421d34207bf05fa01b93b39bac7f6bc876563c2ed2257c202fc14785cda680be9f32f23eb14a456be19935fcb78f456d09e0bd417a7b81a83b21c085ac00e610c4909cde38ecf16506367284650b267ed5ae62584a1307d75da503520ac146f674cd90c88082b1c3d8b0dd5b80562086a1ca5ed893f9280380b988bbb4eeb7534219b2a02260096d857a904c81ab869f6ff76490d3b09f0fc5366648bb480a95bfc7fa296db976943b666b3cbcd55b313b2af2e30c0a471bec29f47b7ab115da07ce22b493c52cb6d472c4b1eb40d8b406e39564a64d532d8d837290a507c1682bbc539f0b7cde7c3de95a1d81d1a5474ff5a5e72860556ceb18d65992e4c5b13e0a5fb7f4ffedd7633a1037c18019e189004a1c5227d7e9725248839159e0432ed1e3a28299d36f31e446b7f01f41058be23e6508bee340f014ce3388d24c8bd7bb118f0963999009a56ab2a06d37b5ff2582f4b77921df7adb8fdf87ba6818b501e60584e6afafc79e8bb11f67d8e7a817efda5936ebec585b5744df0484e33ac3e4aed49f54951eb12f0c639319d362eea22dab5d1b5f5176b973fd07858b3d01b428603d441472be2b40e473a31814ad95bfef3e73f808cf915d184fed3ec4c167187641b5bcc23c7e9a6fdbffb01c37d4f2f5c39a124e63b2e00ae38b225a260f2bbe7c7d2824804091b0f52b68545042ff56cd6c646d53c453c6f37ee454d83e039a76197b8491fc5cb02cb662e935f842e1eabbb98dc4d6fad8b9889881e7b5408d95d153ff9665b620d2c42e3b3039a9ff4d5d6c340c82a87a5d4d11e89a4656de26a34ad9083ca900914448f31a75d77cc44d304857e57a09289426e88a108803ee6c55f96f08f039be99d508c675f85e85ad6ca658e48945ae0f20c00c73f6ed5105bfcb83f5d95d6613e71041074f49b4de9101e585ded5c766db5e7178e3ba5d780797ec3799fb5e428b3d96d4fda12d1c0ac9d6c6dcd16cd99fd774283b99dd776464f2658cfe10eed42846c54301b82a5f892b2683a03fd31ab57fcab2d4f6ae6b75c257da29e587a35d403515dbc7e49211423032ff9e08a0296af9cf7dce2d02534e541b5103e885d09f0d68a5ada7cc88c2c09c19f761b5b59aa6db2249d440049f0188df511986b64675ce496b3a0c23b68b884bc582b08c2aff67873525a9868ef0f7aa28ad3a1f3c063385a2a0e0456943f706e4947dba2c8d8fad37c96eafbb93ec2cc1c264c428306bd00dcc8fb3ab30e40544841229af3b7af29c0713ee4ca209ccba8890d2ba51263dbf552a44786f9061b6d44ec91c0a834e9c837a603864be002580b68d1d37b7761772999454b09937908151a9cb725c95f74fe7f347325f384097c636f8ec0dc9ff0c6e1fe7320cd8d357b15d58fbbb1c39b00c94ab4267bc2e4134e53bfaca65796eb7a38a6d460e680ae8cf2621e0195b16f50783f25b728f6b714dda9d07b2ee03358e28026c16ee44145624afe4a9b3b29825ae4462401304fe7c87c4d04f063c3ad162934710a779d50160bf95edb1b1b3c769a1d513435f7eb40b93f2c7bb0f96a6afb03a0c9b6c965635055547d5b69df540e1cb3a8c264cfe9b13eac80bd6511376359bc02cd174b739e0f2175999a4a09585b70fe82787e366add05f8d69afb9a6d66e426ea58e7df8247ff5b73395f0bf6e4d87505585ae4abe06ce1cd0fa4100759fe00ae8927b9fe9c44466c359e140078db875236332934cd37317fdfdb90b0d6c47daea6139ecd0d4d29aec411a479c25e18f12b8369cd6fa11102b0e22c65f929b31c1a073179b0d43e9cff61459078c4517685b1038aacb506718ca2669664a9b2e56331588075a41d2c42a01926dde718f9b0daa0fd3848a3b38a919e20ccb3bc3cf00b3402c4469c5dd780b17596c12f2593c367e4af378eed811723a45405245e5e2db24c372c746ea1d1e52c852e9021325bff7356addfb37dfdbc2d5a21f16aab6dea2f42338602ce37687d67703daa0c35c365fcb134cdf375226ea36587dcbcc5eb118b150bd94024480a1f8141b0271b04f877be82c76cca95abdbb6d71d3485e986daf96c6a8926be03a88c47edc3cc65f2969cf5629b3e5739ef98656d3751fd3c3e6a948282d5d13e17b7dce25b25294762483610362c191c40ff08e51216054cb5d040576233fd673136b19d3b56bd5dd091f09d47f39eedd3af4c7edddee065cc02f479c196e2d2d21666d9794ddfea8deeef05ecad8112989c6a286b7264a3ea550045f83e58c559d8e22e6dc54162f34c53986308d04e4e607d99189ed34e229b80f0b592adfb361e9c1d2de639d32266522ca535d4e65e2a27dc62583041ad322f589b8571830cdc54fbcd1748dfec4e76a5313805624a85abfe01c52d114ba9f4aec0040565ee01111c0a18d0d5670f232c2f7af328816924ee39993566fea56eb664d95fbff8278a5868f21e265f8682d1af3cb99d5a0bec79e5e04de55ee1a397c325b9a6868c663166c75340c090d2f3976ef30f9b7c56e111fb553d17a42e6aef1dc429cd5fb50d51734ee2bd7a992f34eebbf50f744456bfa63d85022b414fe06d60748972036dc888e9d4ec216f1acee35b9b168b4a452d5576a5ab1ededd2c3706bfa3b2d2b679f86242bd153a6e0d6a28e3971d7e714483d2960b785c5c590a3209bd9573bb645582fc1473f3b708515da7bd6ec7f0ab0a39938721f5f4257b5633fe01405ebc357ba49f0675d645d714dbf91da9e15ca0f5432eb0dd229bddb75f5fdf0d4ef84b8b921b6a7b6ec5588ecc8e2186bd080bab86ea9c7c26e245a088cfeeb54be34a2676e5ec360a51bc9dc1ae75058abd55d2467e09227b98c3b0d98f83b346d65d79f6e1c04388f36a6b7c95bf0704ba678e5758fb22a18b024f80411104bd2b9395b86656b6fe301a49a8fb6d5fe10bf1c511a0c26b126a9ca3bdde808e9535ab072b8868130f978f3f547884458b559a876f01900a3518558df8c1531f8e65b5c9b35245adb25a182721744ac92cf3e6193b62da07d8fde7a64d2d21df765d283c8183fe3dc05ebbe2051b4c12014929d921b2c25301a8e29ab50796649cae4433ea5193c0d900f7e14ba8b190fffc94441b6c859dbbb3edbd37c14067f7c74d801e682ca5bd106ee4130dae8641f34e44750eecf8b555c3ad54f92311eb37e47b6e195e471db780a74d941ab0560e99447adf8661368bc3665607714a30698f5a50e3a56cbffbd84bb05fba91a974d06641d53be2864459f10ffc78aa7fc54146559802501f9fa83bc6a88f8c1394371c3d9c68e108a00f6aa90711940ed4f123ef84684e9d31962518d80f5948aa4425a70f7d7d405a8ebf107513fe9b145b2d6ea52b5bd253442604ffc842da23b27b2c09fc506718597623e0d9b6f02776f52bfee1d1b9b05889842ed1daac44aba055c7894ea03a49f3b60d6f513df3ad6e8e7013dd9cef41b945a5b885f2cbd4293ae534bc31688ba23a52d6b459e1dae0775331878b3aa2dc3abf05d8b4a21420ad9af966d07262ef997cf72b53e269fe1e6ba69129c833cbd1a8d9b6bf9d000730dd92178bfbdf6b8564fc086145519da8d136006237a0ef9c30a080d84cd30f7ac60512a6be53240780762c267f9255aa8d0e9cd6ac67ab6da11d0cb1c31a9f2d2beb88ed44baed7d2f173b5a5380541c0925d6d7e33d26144dd692331ce1fe4cfa49f50570aa190073a658589456d14a48a826a905d707ecf95ec89a5362806a485ee04a073ef54961f3e73daf3cc4697d0a612df1c04d886c5915c5b365ef59cf1e9714b0838fa3d9d0efee6d27dd38ccff9bbdf3a4781c843d7d6cb9efd2c5ab909b901738009c8d60f7dffcbcc2260f2a71f4e661509fbc773621cf9e8d5f198a2f3f8b064b7915e04b50bb2a7f243c393da2ae96d14503004db1434574bc19ffbbcec3610d595b535d79438e33ef07e4e5c8fbda7245ecbfcf208b68c580ab1df7a71a1d82d3433abb5bb3df04a7f98b6ddcd1a75d71de2510365540ac066d9b8bc53e90308695057e4fc759bc8d170af39b6ff11d41c2a0a26610c0235f3e36c9671a60040d2f5ac1b48541ae8d6bc583c207c85460a820e9ff6d9cc5bebf1ce74aa1cc2fcd5cda69d5cea0648b503f068b74180dc9dca98c7a84d79bf20a19699ecd2f470b0e060381d8b7323cffba4f71b57a07726324a101d4b615d08c6b2258d15240be3eb9450f28fbb8ee19cf95131ac62f8d0087a23db0c4ff8310cae79136a541f9d5f91007fd917875692448d9471061a161d3d260afa0729a4caca25ea6e7e383704fb763d6884b74cf695b8e0ee9dd8c72a31cc337dbabad746254b7109af2aa1d6874339d717a15225228ce62e0337602b18e764d96dff96738db866528c012f10f712625ca40aa9ada949bcfe130b37b93bf86eff6f6fc646a3636022c8be73b7722e2b998f97dc24bc76a69df47547b051bba4a95c674a0cc8520009331b1545aa3decc3caedf9e709b7b995b7ca5a9a1af945475a86abda9da3992bbf29332cebd0199d9a02e2a945a87668ee51dbb199163270b620b19cad42bfbbb2a9e1131e7963228347fbf6ff0fe72035833c894976637271f52a3a433331ad118cd44f094de8d9b8021775405febb956e286de04d1cdc51685488afc4c0bc047864606d1a39080a58c4c2fd4c05d2ccb712d5a924e993c0ae154123666cfafce6ee9f06089b9b86c039c0a3fdf13fd55504c2d360928c475143b81f480182e6ada15e0a6c13c88bc7f47253334ab394a35f65d9283c5a1dafdd3010e2d5c03402c3c44d3809ce5a1886a6fcfdd10c3409419ac720c3e1fff2dd30a47663d42f5d3672eb8a82ce424468add556a55fbc27b004e17c018e2ce39a4c3f6118360c3adb9d1799830056a9ee52cca1dd601013a5ff84d4971be7d4bb010b970808d40a79e8f2534c84eaf381334f0b6b2028876b1928d92b23292f3894390c73dbf53cb0ad2005f22ac0049a81de39be1b67cc7119835e417ad83b1c1775a071825946727e40dca7c00d6c9a20554ec531d4055b8163a41f14ea34fe6622c2ebcfbfc8e6d6dec518bfa0f82dbc1708db8d90761ee335524e2fc54aba2a1083b73b88a23a97c059a7e13b0d06c4fa6b6826f6f70946354fe5c774f59d46efefb993a11e7b0715193d43af3bd0d78763db6f16a7f52de001986e23461b4d0ba46a814aef327d6c781b2abfa56a0e88f1138af5390dcf12b2d0ec0d741f043bedb00648367cb8f59a82bd8032719e33db69100eafabba9cf731c4342206497ee5e25b5b49d9cc3a70caf194d184c4432fa0b539e2eb6228ae1fd2151478c30a1ac7aeb3791f0cf21c54d33b5a93f9caa58e00078867ea5d6424c6b8a2dd8e0b0e746c62992c7eeba906fedaac653df783499d9bd0703e33be27669f29f268c0588bdef24d5e52fa0004d47498a75373210b661b0dc468a62a2dd12bf834367642fbaa8b8eb8b634c42ca3a3dd746348b82a8dc31f32ccb1af9accb44a384cbf09ae9a489f65d128d8c1e969c914de67fcf2956627317e7ca5b3a966660e027a24bd8f52352b8eedd7cdd98ed63c3b64d999949f945152c4c36b5eab612826557f2bb7dddec7bbb21d076d0b86f0d814502577665e99ad4f6896b9274203838cdc4aea9bc6f118006e65f774e112f8a48d2192c34c8b62f9c248f4cb2608a648864cca8164983b090f5d1c0b71f27e2682809b9b06b805a83130d3b4873202a2f9ef9548bb11a707dcf7ebeb1b8930e1b463d0b3b5e05853949b209ddb07a5306fb69962bc770a04ba38d2f3cde06b6235c2d6d22c3fe40cedf72e046eb011efb1e63111f19dea3b1635cf2a198e286ec0aeff73fb807f613bf4f98c954ab4bb5da8ef26c9770e56e335766fb2ecd94c96251cf4f378db7fa71d75e900dfe24dbd143de4c5624126af8704d6ea23d5e13475499d9e4bc69d87f64b677e9c0d28e469472e60920cade9e3826bd5b4cdd235266863531e3f71182137b47243c5c5acca9a0c290e9e2acf34387b34692299dcbf0d5f184acac04202c336074c6dcb5fe69bec2f620c2fc7c4b3b6567d66157905749046b00f40046fdbe2f8c199417ce716987d8d06aa080a270902adcd7bdb373f925c5e440dadfec4628985cda2074cc37d9926894782a259cf15435d15e93f5f88851bd557e7fd898607318be13a758c3bad3315116821120b11f769d0943c843f668789c15582a71748e082041767157556019818d598d53bbc38fcf38ffd9055226ed9405fe4dee722b790c13888179a7b3d0c53619ac5963f1b36bb6b1225ea53012886d1309ea51a954b390527fcee2ef48fe5161ed76721a1dfc44417112370ab45023b3b1e965643b8d5811f4c32f96a0f7fdde45b18161d85527c011685577870f324600b8ebfcc62f75bc1222ccddc6cd20c6ef0f201a79d2b8e7155a9d03ac51435563edd0c4aea28e94eba7340c7b7e603b587c70f164a02244204e39530ce782c2fedcfbda98a2ba94cf84c1003ae29bbad8c1d8b1fc1ffc73a2ddbdd41ed93f5f8936f548afdcb911940fbcdfcd095ba7abe011205a95cfb46cc317ceae122f6190e149ddb602fad22f4fa9bf52ce12b1f7914b789016d01f315e0dc630f7f5aeb72b86c347546f0772d4528a75bccec01c50d5f4c607d93819158d2b84249dc72930379d43a93d946c0199a41d4c021fd13c1d5d3448ea8ebbcf831d3c2ee153c98d8401edc148277a366c41b1786339400fa091f128765193175ea3734b37c5332aa450d46ad23d5846694baad5fff33aa08000406f36bdc461a4dc592b2fb586fc0e1b54f454ff2c2ad2a58131d21c8b83224926939517726e45d78df935e097c703bf88b60ae13009701bc26ca6c4e65bfeb554f4b271a560db402cf0988400f6e3e1227431b47f8b808fec857fea48484538dc2c3c755f99a956fd1e8beff90406bfbc6c449a419c860f0250f652a9ffa2c9bafcdcacfffd517875d5369cfb79c45e7d80466d8f24dd96b9dc1d35e64a08073f2e844f11392521a4c9bdedfebfb364f6be9603a6e3f3e4100af2dffd75964ccc64d080ab6424b20731542c4c2dc74d09814d8a9172e234ee914ae12342a9ca80f8cd90055f6bdc77e7465453e588bf330a83deaa3a115764dd937f4d06aefb964643459defc054231520fdb7ac1f068749e60186f1ba7f6f697371ce3735091e06a11e5b3cf43c5902ef8f09e3ad5b72ef24d169d25250fe8d8bd4398b397a04e042d0f8059aea1901493a61e67418e06353a3b0c930017a3ed6e70fec83f8ca4ff6dde49324b9b90a75cc712816af70895da53f87d12281aba490d2e0cf4906c1b8d0dd0898c6d439846a4ee260d3e066bddb541984ced336d226c07f032f04c341981013cd0ce0ffa237dfc1df0cba656aab809b156191896a9a93604bdb12904af17d31edc9e0c55e40f8a38e845cfd6dc1a86159ae48c5ba44bdd7713c6e55311904df325f658403477fb847817c5abb93cd385931bfaf7ee12b1c1058fb94d6b9e05fd4bdf3cd9439772d4ef15ff7c3746de5b7de667338b92b377b8ec8a74a4f0b98a050cfa808e57babc35d8ff4d4f830fd3efbadc4121aff948d2f59d842d6bda5b6b20b7c2511c88132791f2f590f3172e97d033d57436910e4393398fe1ebaee222640b741a3a5614b43fff54de36cdeded238338044589211f89b9ac3e7e62812b6cf0f63fb5444173a1d4952cfa7902b3ae0cafd2b367bfdb5881e24a05e8e42dbe56e1e03d2e237dc2685e7dce22c1fca510504ffa47d50cdac9c07b436ed0526e6064dcf8c9a5dc3efac1b3c807f75d12bf8654eb06df0e9f6d2f09fadaed023db80fedc2f2e76d2abc4222c83780a546db21edf671b43bfffbefe1c1bf2a0d49bd9fe7cd43661e2db29f44eb6428d36388e9aa2ab47e07c599227c52cf44733caf9b73c1966cf88e1a1a3b198be7438b0c69315539b4f4e4f1f4173a79401ee196ae21a69b54cec0cd16df1c821395944d47de55b3887bf28fa6a9609522726e1506a5ea930529dbdc60b9ebc4ed820a91907d4df46b4527ed0ba878be3cebdc700e5662cfd2b8880ccd892550292d297fcb3f603ee6a34a5f838893dfa62f113af4de7d9d6a79c4c58c2c63cd1e9617d35d908a31584cff9a9d6315cc48f606a652614227ab3e48573c3af0bb3b1842a5a652fb94b94db80562a2ea76a24ade4bbd505aa9a0020ef9f5f945a12a0443fa9b8ef2113d20abe7d4126fe7626665e2e801ff542f92203a69293efdb1d5c42db8ec3f619d4238ad3e8f9968152f3b9c23521e37d03d430c8a21b66d61f84eb4e37cd8f84cdb53108649684f6ce69c6d9c32a7afb77b1489e0e739097b2f2314067f4586d4a316c4529e57dbf3205016bdcab47aa9cbaab8243b1347a57df679578371b5322b11b797dd582226200d2373ff0db74755bed9823cf390a028506b96e2f1e1b113e7f91a9f839687355de063c8e25818ee93359a1216246046945fc496940c0879b02bf381fbe630dd539f39d588976e40d8a01a397573609a9e911fce914626b6800d04b33af479e62f16de059085bb5d2d38e7a3cf2692c8f9674a20efcfbed7e71f6a01ad51d26bbba1840f496e999aabacc8b5bc92f3b4d5a1f19edd82d88c2221e00633a0eba8ff81b81b72030bbd6f9a177acdc08a07173c3d525a7f639e8c45e2d9b4ce080640fef00e24c73eb4588cef63ce4476479380757097262df8521585471404a951ea36ffe46f442d7df01790cac0898db7387912ae744f7a456e428ab297f259a317b611e85a13b6ad9f02a4bba7aeb59363b5d2035099f8333becc3d0210f98c9c56e7fbe62ef0fedeecf8db282d72879a3b357ac84a5599b86bb55474cac184762d7886ed579f1e672ef330a8d0d8f7217c398ed03f979d3b2b72002c39165aaee56a4384f3192042071c6e86753e0fc090117cd41633b9f0737c5f3d9332a3add6c3b3b68368886597649ef742e7c739b3151ba59ca7092bd5e6cf25d0b9720d9ce6e0a3a86aaf17f0be1ff29e1ee03078ad9e97be8aa9bf6b62ae1564dac02d0b29f1c68ffbc2df42c55e566f29a41c2d717e63f11310306ee62ee8920af22f997037f49b7e111f9d719d5d692c77ea854c6340f9d2cbe142e268b4b5628fcc7a2c94a2fe661a188ee2e975854a54e8002e8a377e918f098b722ecc6c32d906b09a4bfe7608735bda3dcaa29c5b39fb69e4562968b0594bf45400331f5f8566eefb715fdd42471818eac4f17924ca7278250927a1b4044f892bd36733f71bec6a710bc04ed27e4e646fc6272b8c4032cdd78f2dc8652683bd077892f648315c97613a54798e70a89adef027b20f45746c1dc55b86b0648c1d604951985f882a2d7ddd397299cb084e8acb1cd9bd7f591cab09c57b26ed049fd882ed09111453d3ee550c89071780ca5dfdc50f4546118eac32e086196011616f346deb2dee7023305a5d2ceab34bc04847ea11f78a2d7a86861b7f7a66ee591eb6f7effd363afcbfe59229ccbd164d03507c94f9d523093457d19eb6ffc8ca5544eabbeb3251990919a4e38daaed4f880a44b5d3cf8f546ecbde6ef7de99bb3f827551aa96b1167329efd609e098ccf133550922ec869bb50daa07b19ee4475ba165788aee10767be4aaa5153f12239ea84f904795e3ec186faf3cfdc082a0064870888dd66272b4b2292bb580daa16e57417bf0f75a63d4504376ad685764426106aa17acbc5f68cfe8543d39852f84063e9f80392a986758ceddaea0b077b16b7dcd5a39c704aea1695b94436f755c9ed1b4e7845497d9c409f7d0357834877081f4ee6eefbae39706709a7a3c23ba4ddd79f1da4c80c2cbe0526e94608c2237e8899e4f76624d181a121a50cdce98087c5803894cb8bd2322a51ef9bfc48bef04c360c7a393c747aa22340bfeff46ea1984a3e417741933f0d3bc522701147a0298ef579876e1e07ed851c57bd89fe2ad8f8b6a22c7854628e568a8cbd2c04ee274731c64bd9e9f6a3f4a3b60c0d50e6773a3a24c5f20a5791648faaad8c017cdbde41b957419a61464fa3819be7f75cc16a79e22310a4010b8cd6a5823db86c5c08fc2b0449686a5d28acb21a5e661274d28edd75381ea925f44ef0e9959a80ff7a3950382c925603483e62f3293dbc6045eaa3c96a2444e944646cf80c06213c0ed23c34f1ee1f797033a55273f2633046df167a74573bdcb63b00981045d0b14757a0ba5954bade60d9e321bbcb5fe0a1ceac03cc78a7e5ff499498da917c955b936a223a79532fd53d4fe4b6e4de6ae5fd78420840ecefac27d3f759a3bf8d3a0fce899c5488b8dede0a3c3abb8b69423b668bc1660049a5f3592e251cfe70193c3f6662aaa780a8b85c2b9e9c103e0ba61a8566a08b0d3800c9a35d2ebfe179228523892121b80d98d882e73256fc216d6dbf98a0341b0f398d7ef5c02c0cf956ca662bfedbc18e93af3c039b3741d7270f308343d405b4f8e97e052b1cfbd72e77232db1e55c9b2cde0ee661dcd0f396897078c0d5ea11f19c6f952e02c7685e3b9b898f87e1f591f94b9911e699b2519d61cdfdb75434d53152c53c4321f9b645001b9209566b48b274307f2d4d88bb2052a1e15b98f1754945db2a0f048a04aa891abdef2083a1fcc752e2127251f206c98c25e6eafa331173a1a54758b271a5e66b15091146f93bcfb392505a396bfa4efcba11a18a6c04a8436b13d269a8a8b3b22956beb9aed19e8b8d8c1a3fda5643873ba5bf1b9abbaf22126bbfc3e1a145c7391cb624f5f4c28b297969e3d96b060efe3581f4350b96e329b2be616f4302cbecada2debd552c16ac7919cef3699f0ed4cd3bc4be6aef5a7651fc4e178ea774c674b72508cca5d01993bf5a8bc6261063c2d17f5bc558c5a34929afa0f755cd435390cdba2aebb675d676c7d40a548a69ebc14dd9e5664fee918f74e5a41364122e2d2d0fa1eaa158d10366b0745e1c01ddfea396e28968c1e36a406a64a5b0a4f36717dd95c3650aa21dddc982f6f73c3054cbd30d1c184e173b8bbacf603b6b737a0df8813556ee37e40d3a332bb569a932d083fb055fc59e9f404ef29d2f27f6bbca80d484699d6d4f4b2ceeb23b724c18d9752e0c1eb62f623ee910231d50d7ea9a4ad60f8dcacacb6929686c1a07b3786a2a76a01fba01cd1d90a7d8eaedfe34d98ec818dfa40a49efc047ead51718fea7bdf7e832925238951384990ee00fdfbc4d8a325fa9cf9cfead6a96aa5eb1c66a27110f5e5ce57208a13b192091794b527e3142dfb56bb3a21c700e4b5c61259ba18217ec1abc0f9c30a28dd1bb42e3ebc3118cf2cff32f6d35f44d705f20f246cdb74ca1a5b6db0d602949f4a7d3ebb185288c7b6f1d836657cde735afd39d993fdf588a0e67919440e28bad02188fe61c8b2855ecd89b08c9c43d6de2cced7a6035ab0cc27c6948268f07014a3c9d9a58eebf126f1cda1561e60a97c91bb1bc21fb43c313056f0e0fcc17756a1b9945364b65fbc2ca65b061cbbc7cee3da58e77d1d564068cfb752f7329d473570fce07405e3ba321463e5d62e31d9a25a646fe00e8914a44e204d77b2a875be49c98c8c3833e75faf8d7f5c2cfdd34328082049440a72c1659fd7b949825ecabbc12eb85d79627a6cdb3f9008b0151828f21bb8eb78b4f7e07b211fe72f6e8c7eef1a143e301eaab7f8b6e60c50c41f5d7086584d330a5e407ff29eef8b985806314fcbe9ce36c042f5d931911ef0cd8b3d0f883b2c7fec648d9d448bd8dc431a674e3b95942bb4b13f0408fc3246c74fb3c6e428e40630cf9c2f38857348f0df4f6751fe9bf6ef27f6d23070e16254dd4ddf6d0973447ed6a0e77113aa194ff96b2dcd11077faee2cfabd9f8dbefbd088aebad5c814c19dd41c5304911d8a6166b9a434141b47e97d85b742b9ef66c7c32103dfd4bf82f386be808ddf2a121783571885b8d9008a6cd7168579bbfc20512508d70345045295dd0b0a8c47f4278b7c829151b760a6b5404c6e6358cb8803015a307ada7815740da3493a37075fe43a46b21ba8c5e24f943380c7fbc2109a958d405cadaa68c057ca621ea8c05a46ee5351d88cbee1ce38b21f3adb59fb58caeb085e69f3f6b7c6eda25a540bb9decf42cb468a93438f73a23b6a05135d4caebdf2f5722b508abcf7ac600d5441d6036093bcf77f7fbed8817b0e577dd8eb1dae7827376261310d7c808744c40b65a7544f658e17826879574b199523815ec41a9c2573aa7ecb61d06e83de544c13b7a33b06211b371ca18dcfdaa880165c18a7e2bf2cc5160698bb439331e7a5c7e3e0983e5cfad8c55ed850f53d241ff093adf535ace675570341e749122e95e2b4cc24f24c1058233b8d6c27e685d2b0773ed44e62659f444826c37b4839971b80c60336f4778fa3cb4a2654c73a577fc1516316144b67b7070055385f4236b50d5b8a6be80ccdbddfbe02c3a190e0b9810ebfea8f6ecc0aadd50fa035ea058de7ca82c4133c00efec2cf47f67320fa75a629c50491eafc892bad0a27aa24cdfc7e15c5647beb07dfb548bd8014704a57a62eddd06f6329cb5cfbd02e4d9b5ca35a4c3d18105dae85e32705ab83766c74f89701da9d60f9dfccb74f275706378fd4b1ca79c8de1bb9248ea67bd85ffe149b001f49612b6e244026c39bc76671ecfa00cdfac772992c105f784e94c4ff339305ce4389483926ecd67fa01b9786f4ba9cace00a6bf775c5f9ecf8d66498b041db2b26106cdab7ddaa45d4d587937024084c7d4521cc22e271b4ab8450357d1e8201dd6aa611a478cda2a6f65583927dc8cbdea98e62b3d0348b69d7f769e774c2b5704590bcdb811b946bbb01d08b10b325ce60ea16c62076ce3562d521a54dedf01868f72b41b0a9b207b34494e2e9312a9e7716cb616a227aee7068a1ade50e77314be7af796bc49b8ab5549d071a90fd1091b4c48a677fb78a835c8cf3ed8e58e278817f5232fb5e2dd8ce2c582ef97c5f3070cd1a095ba7fb15368ee7271b37ce7d31edeb24ef2a009306ae8f9527b6a3ad95a4c6c7a9d37b092289d1c5d16729cab556d41b2e17c2cb127b590cdc023df3ce508202b947a6ea4752111c89f0710dd56ed8ce93cb3b931074ef41fcea217f91e547e0774ff857c5e687c230836f0ae4c867ee016870f67c0240f674d65f20a985054cda3390ffd549bc487008d06d76ea1817b289001b48b3b78da4beb37e7f30cb115c1f1aba22fa9521f04a5e174858eaa4e57ba26c30ff47d758a74bb49fae46e129a0355d2b4d83138342d745ec4641b869ecb8eeb720d3e9a9b5c119dc0791e14dd43b80cb51dce3387bad02d71df5572d67ae07042037a8040f13169395fd3c2cf21c61274598370ba8bb45762cb0e1f18e8a211b5d76119291ebc493b7aea83cd84b8e669722c34723e838c05e93341bd41b4d8df5574ed618b21a8cc269d18e78e2176a3babb23c637845d46928bce15a6ead0067f5ad7576740399034c4de33c0823445be7e040ed412e6c27b1846904a9f909c8b9b74e05b46534416e01275dfd78d7131482488ca93de085434f9d75bcb7f327767bd9c5b35e0f3c77473dbdefd54a077d1a1e24fd35dd97ccc90f4dd5df1f0ac5cbdd3be956d132082c80194630df37f1b6353d4ee13ccb0de8e5792cab180f455de77607112156ad76d865d57c799b343ed320c767d0b511a6f5790e4454d4bfccfebea885febfd67b7764bdcf3731c4b245e33654613cb370991cddb3943dcb70e65cf3c960bc22e356d31e742e6a8fc475e60ad99eadd2669b1d242044483693d0ee6dc82db54975b2d3e3933a00921ea4d9e55521d4597e0287a6a4ecfcd106db4a324464bdcf38611913af773b986e8b4967289fcbf2c4cbdd5cdb69e342bd87b5f125b757a9c9363abba790618659396533c355951311f70079cb23ea20acc0a4c11b9b57017fc32dde646fc3e9eb08b29b7b16e9b7984c8ef1b9472e622068ece7f1d8b23e23d67df413a5b6c63a3277acaffee0b3012668b52f5c07d1e6e80ffba4182f4e0b3b8185ca9351aacbe23ac893836eeb9fde544bf2de354f148d7d6941a65c07b534e893dc74515592e23aa14e84442f8668c3d756346e219dd936ff41ff33ec5bbda6624db0cf9f8991558504ffa6d518794bafcf3ca83ea62992abef5265f144280384d0074c38974db5a7f36584c23e695b7c07f7b55b39c49c6cce430f6fb63e8ea5b81a5610985323c333c7d4500a4fa69557251874bf11aa1373d9fbceba3b21aa2de8c4ac6fbf186563856b5ef847789a68496a4ff1362725dbb2915ac2dc2541fc4b440ea1cc5cb25d7318dd307528ae59bfd5124776e7efd1eb22c1993cf043c8605693543f62b2802431a2d85469a5eeae5bd4769fa5b2154eef179a1c244b36186ff65dc9be63089fb9adeef7fb3f5f0f2d3f5f822ded7d2b4beb0da394b81b3bec5f389cc3f629ef4cf5f972b123d4c06d3f1ad4a8f44fa94103f9643abbd49c76b70e58d88293d7d6b84f63fec828752a8a9c1399a242e6be633fdac2fadbbfe37c0a4b2191afae6f55f7f2b641649c0511aa166ed4e2e0f62c403a9e9652524e77a8594d0c88281b9be58a4b86e1633c1a4ab41cf0c77c4c5d4108200f153914a511635eb584fb6eadf9658e06689bc19626739b36b7f053b8878712341976fadee16eb55bf2f2abedf40911f8f1c36bd02fd64557c70e6c354b7f57b3b355c4d5bc8543a35c895719f5c342cc0f9fffc437813fc5f8b8cabc4a49f331666ee1ab87eea6f54c761d553cbbd12f11dcd1ae22d4f24db2a4bd6828bbb3f76e286909e5a7a9cdf24a5170eabde42519c8c9a51271cc90469e6f3637644226070aefab924740d803eb45e443a87c4d7ef5401251cec03c5a7881a24f0b0b76ea751e8eb74d36df94b9c1d77fae7361668cc481bfb777f6818a94ee79df07d1dd00b5d9b18509165885107b9470f1ad73ff229652a219ebf96431614d768e8e3060123365f5551e3b26e44047d03441f13959bae5432fe6ef74985674eaa98a7bedb6d2bef6c955edb2c4e07d6f4a6082fdcf641d7febe0fef16e526cc4a2ef48a80fecbace4754891ae93bee7a2b06952eef8ca5158ceded52c5aa31a259b907a29e39e1dfc4407bb1b32ac48aa95dde0cf34f2285855d3fe9bdc7c66e3526cdcac43050715919e3b6e5f215dedda6ff00bd0063d024c5d8c4ac28b0557885094e2a601658f287c55a8bdd85ef4c16c8c49e0e9db030d7ca4d785ac384a7cdf7c8f80d02f120b455e8ce2161b566ff52dc5767433d8a8cb12de04696d3f86cf45e3e4896d6fc4b8ab56d8121fa4b886984ed4cdba6329f994f3cad92a74f3097a5c10f68fc67d16d807b48c5d302a0c9fdb8e78849eb58cd9f63ef1f9b502f01433919ef4d3c5cf875de99e6054f1d50a45beaa30d470df2d2aa4fd87e8bef9b2c1f4aeb89d7e7470be6cfbe6297d639d74b3e9d3022453442304a30ea496a2c450938211f4164580f95614936cdcb0dfdd4a59b11fb9e7ee381ae347515015ff16981ef9d103ae867a227a267943e445349e43fddcf3ea027f040230726a4096ecc48368fcc7785e4869d081b17e7897151622ad3e90857286fdec27df9dda4a769cc05ec4d64eb78ca26959c84315d37516ef84d3a24a9231c904d287aac8a9e4965c165eeb25d51a19db6cd50ac64eb3a3118ca126de66dd672874fb7fe00b4a8c06b0d93eeecc6261f012e3c747aea4b51fa1eb26e70d7e89c3d8d5c1bd06af6271bfa8d41f6dccf2041ea4d30e8a1cc54fb7dc3038e561b58454404625e84392334b69ffc190720c92441e811c80a329bacb91a20e17b743b24b74a6a0b66fe33d0dc70642223b9b96f4f824c14bef907915e722e29ce45996731a7403ced71f9269b5a48a959d9ef7ef2f65ff92837da968d629de9a5854cdcdb29865b88a6176edcf24c861b005be18b62bf4657a4f51acae97c04fc9c2ff4ca5f275e263b5ca7620db4079f66c1be06398ca92369c8a9792265ae0047ce61fcf8b3cfc8ed77c9f09ce4085f80311acf813914d6712c8543163d4eb1bcfc15fcbd720de37699e5af9c67b3963221236b6481de5d410bcccebc7f5018fc39d4a3995ece9ffe701cf099fe95d574eea5f448baa07066905fc624031b67f7731630f7e03b1e4a96c4b104e1fdc75918339e64bbb006cb40287ff96dc5ef071740c487f9060007cf7ad31a5f23100ed90f5bac36e5cb054b628ca93707f5e60a47aeddb41f1fd7ee90d235dcecc5ded206936b79667754959b511318170fe1bfa1729e40f1c4509d247f0897d730b4566c848de928fd2bd95b57949bd9a012e21613469382e6ba19ffc18c49ecb2b69ee07ee11eabac27af21e82a81e50b953ce7a2997b8f4884760db821eed8bb90244db4d99d7b1f72575d23c9818c4abf4389bc525439a5b4a5d2feaa1ed729431806293a6ab6779fa67153fb281e083c6011c60112050bc8b6e1e7c495351e92367f987485ca738e03f5fadd3554eecdbb8e3977f9f4183c31f726f7235375f1c95176fbc26f2abe9210c293d2ef58e8488bc95504f913157655ecffc3b061b18eeb7f84916acda92156019f01eda7596e0f6c01b81858ce944961a17729b91c27fd26998680d83b422bf5021bff58e2ce416f34cab67bf5062f737b4bd296c37e1ff80488a94420358a6e9766b62586f88281b1e3ec4247414ff8cecbe25d6446c7478922fc98fb5247b95a25d2b0cfda4c38cb0fbab281f5971c713861430124fdbe2eec1bd350a54430134d03f0a5c7414a7a91a863523bfa4c15ba594a5830f89ff652294f9a3a77f5a1b6719fdac1680bda5d23721d8783735de064376f2bbc268459a5283cb091101dd88fbaa883806b9bad18fb3a04cee93e93eea2ed56348f9808c8b017c54aa68a8d7a8aeb152442d088c0ee31cdee505ed729bf5a05b4ba7f725115b4fd43cfe4fdaf0c8e588a1b1c32bfb8c83e7fd0564b6288f8a4043f214247f033a1680c490a751817778a80518e8b36f962e93039dab373083aedba42f6e23ba22bb0804acbc83cacadbdadec306c609a9de88a90316178d40f405e5fe96b23c930b8ae8f1314277579650c687172056316031db46441ff827c18d3e52be2844a65f7d9b94c4c5c78d7789a17f9adf3ab7f9ddfa7ca0a95d18c853f360b11c73383289b4b2397f4d62c54ddd5854be478ed2c2d9af93808088d17fa5324d651f018dd8aa6da37c5ab87cd9ba549e65d9ad48f07adcd23139923d0852c224b1fa3b78f41e1dd9cae36f8cac8a7ca43c78eca49e72af62f4042171079ee186bf02feba17296772bf78ff9614088ef737a2387ebfab30a46d0bf1e19d30b268ecfef655ae79d3b8f895f42b5255a0b4246305f8d4e7d00451e965bc029822098dc152c8b679ee09a2e43b94f29d2a701e63ff0e17cabb170a4b0fa3c64f3d1fcb6bd89ef9075987777b3056b21b916a5d85e091746bf87c7aa8fce20a8e24a95359afc11e7bbcef3632e0e40cf2a6b96ca562fdc31a68869dc7e862e718bbe7297d54368c5d6b7be8d7f7c9e93251ea070064d753655a2d23d80e56082435daffe97658f58abd275490c6b1c491aa040def095ef7929f57eaedbee4b3845d7b765f7dd4a7894744747dd50da923ab2302b2d23a74c73eee16a5d3fb3ba47972127193cffa4815afb262629cdf33abb1b7d3d3ad3791eb40b464a1965f6eb80a5c0c789a181dc957826a747f0646cad51dd3ac57a7aa6d9acc46d2550f03a1df28810dfadea46d9e96729008d12224daa24b72bca49c8bf8733a5e6055e4f4cec7b1c9beca253d5f4d9e183ec075d31ea2a45855e848c34f7a34ec8aa67b341d043681c540a9dfa64c7fb40caf632db4e77e1ccc4c45072169136f7b330cdb11cebe42db7d535c2f149cbbc5f780369780d6ef90bba43b8c404f24c1184c3f1e3f27513a20e413ad61c7db944a0174baf1fb855da2699032aff23ecde6517b708722a1af785f87d0cab932aade6fcc9f26432d363136ea6a94090dec50d317def91929711cb75f1c406d3a0681fb69a715e573e1ddade7aef5cf356afc86093806064089429302ad291d45c31f9696d0e64edd0949bc71856344a303e526048b98338010cccb51b8ebfb96d5d44953e3d8e2a1a92204e771b46b8d03ef62478cbaa696eea67a332f42f83b0ddf35bbfc48265fc23d8f412b423862e5743d64a0da10bba9e93bcf355224c18f1ae699bbefe8e2d82da9f1969181cb3077f250ab6d8f0dcc528545cf8295532df7e6f6899939c51a760eff0a606035011d28241512ecad7e7325cda154e64f6443012e651e045e8a9e6784ea80d88ba333c61eca3cc8804b65f5d6518bfcf8ad752b8e00fc25999c23f7ddf589d55418e0426232eb90d4a3096f910cabe87500f7e5a98a4cb60ed7121d75c9d9978378ca0b3ce7e0d33ac516196091b473f35df95d1e5313eeadb7c7443308536e455aae7d032f087bf9007afdbe6a8fbe23b1caffd6425567179bb45eca7bf64c28e0d0895cdee0d082a6af935dbe27fe17fcf748f074159d7207777f5da6d0408a5fa67abf7489a2fb66dbc5e07b0851b68446ad68252b1591b414a91883d7bffc44f82139b28b50eacba6428f5c200759fca4cb67053a6d5798de4f4f06402db0882e83158d21990623da7d6a54774f1a0c00bcaa86510fd193b6da54ccb50d380632ef2a03a515427251d8ef4fdc9e32fd055cb28f261a8189219ead217e737294d837674c0dec4f73bd2439fc22919f92bd436b443b0bcace5da280776cbcb5009395bf6418dbfee2fb2dde2aeaeed3b20ba52ad7c4bc66a807b6d7e6f2a448879af1478749c9d4e01e97fdce84e409fb7d76fbd9727d6e75ec73b789e4393f2869abbd5ad13135fe95131c2af9c24d614570aa0d28e7977d2a5a9318fb3c36cda216a0665c178cb6afac76e6b16f264a5b719f61cbcc195169935e8bd13cdd78c4a2e393c8e17d7c79354a58709a2e4c2131ed7c2fda8fee3ac6f68e6171e671c3d2dc443ab1759b38f41689d768d513e97a321550f80b8f820cd6f5dc4e3661f35ecd4cf277f3a6ed63b208b087610874a922991fae93b4ccc022253771fc12c0c5d6d226c1e0f2e4ca1e1b1ef474778e7e3b10f60d88da717eca4e86f8f89f6875130b91c125e804c5f71d07cab2f7d729d8354af46fbccedc27a5f3732b904e32970ca7c4a32d7d5f180cfde0a76e25027b454db87d8d6580824916621758eb16192c58a80e1b6cbaf6b5d31cc656eb6b7429c68a9525cef2470cbf49fa71352a3c6cdedecd8f92ea5c9212bd199a5e2aa3fadbe3ee7903f22bea0582d9bed81a9689840a84a98880c4e335d2ae6cfc5e0c11ecf095ef619fab1b9ee53ef43e1287b70fc9435633d20da3c8713e9afc9d380213166d7214ac9da124db601d11c78be789686a7fffe23d9074813f8cb59bf985f50f71e074b23f2626b087cf88323cb70d0c6a2fd850cf7e1a36a1cde6a418071f7b6f6ebb4264914a78293f0d9797d4327db8bac30b2057aaa3d0537f0134718dd3209d090ba75b2011dff06082b6b0a6ead69971f17e4714b5743b6a8993a2ef200788f1ebd3b7e7e9852f52e6166e09d9f7be2ca59577fe7242cd662c974438862b5cec815a5283fd1fb77340a382ebace76f4a1aed51c2c1debf24e6f6414d41a7ee02a2f78f8bfb54d9ab32b5d5f8ad0f30c0cfa983329576f284ae673632c8740d3a30c958954d084d2ebcb942c867384569eaf7f9310d5bc1217632871d47cbf928cdfa3481c1bcad335a5750de8ec7f1871132be85d6d29b2e0bf4d573083bf4a76bd0fabc96a035c7ed5cffa4f5ff991ddee9572096361fc3a07bca9a1a4cd819c2094094f676a67944cc586ce605d6f2f738e12bb3e62896682c6ae03a39a40ad1dfb37b3c0bb563a30b480c9aba10a01ff587ffd2c8786580969f194f975e24405cbc377d9f7337b9a0d8aec8d1bc6d9572fbc590f7124ae5a01ba141ba99f142d52f70710438a65d5261024d6f7b362a4712fc675305cacb44bda3ba38addec20ba1e5870fb1029f4c844cf5dcc2ba87a6ddd234aeafda01e9019658eca4c92b999374e9c705509782e82c9e66312cb3228c6df74cb35001c1625de3230162a95ac09c81f75551dd2673f80f7be12b8e8ccca2c3c5eaf8958b856be79ab20d53987cd4262d76e59406785a7b04f1027cc2c69a3ba1501554b0e1cc08b918ce43089006a377a09f3ce4cb556fce3d63ba95ebff617f5d2266e1f1592524fa3181c5dd8a521144a1dd59affae29ece33a20c96ec326e5ddb8a309e1fa750ee405226c50d020ce3ce3277094c13b2a7c5cae28d374b29c3b872ec202f7f7a9800390fba476674b241f74153267fb3ce1f93f9ac1fb48b770f32a7a8ea155dada392547dc72f6aed3c0cdc22ae717023161bb1c20e26b480760eeac892d5d5bc2f7b73e63ee13a97f0e6c4877258d9139c0f6455fea774f519851f210d9a3cff520bf7852482e4fcfd957ed0cfac55e9694c571f1055e45b1f1a2b1d6f51ea61948760fdf7cf99ba2e27a531c980582294d8763762cae6ccdecf167c1349f2e63221d3e58f5253dfa1bf2c494723545d3795ed3277cfaffc4b13de52e74651ee0eb045eade9d0f2fa9d4af19f7c374ce340c55ce5b24adfa5070c72ccde1fd9f5053edc500626075913ae856a4aaa9734f86413863bddaf4a135a04ce166c76a7c4c9c3c9e50e7ad22cfe438b868bab9cbb59309d855d67704b8c7c8292e9efd6272a70026a5608d4d7e76aafb18029ab5285c67fbd81ddeff81253c2b91b5ed3bd1bc452640e47a9b2a1d35f7d5c0bd93043d5bfa473d1f4cc437c18242cf8c325c930df3a17177000413116bf1fea27624d29602689b09b19b8081d9cd85879131f0150d575ba9de066ae22ceed887bace7de4a1791d03ebfda702e623474f2b3bf291bb19cd805a644d6389ddb9a3311dd8e28442b3d48916d7f7384d1a35ae1332c3e212cf680552c4174f5fdfa49e0f98b8245b53de5061d87e2e54caef2d1b2f24786140d4124191c72159b2f956bf331a7681a90096a3846ebe70208bd6403b69e62f03f27f80bb89425fbdf8ee97fd2ed4cff2c2c23471cc9a71b0df2f5e2a0d5998aa2787d5a970bfb9026b636bd6585134f80df883824d7fd6fe34ab8c7d1c55e060115644cf86d1fc88e0890c36ba09d8609a2eabf8c69f2b7c66169baa17524e16037c8686dcb3d8d9b334f9aa601d23da32712341783b0f7f1d8a2f0b1c48c58063199dd53ba113577044d204e751dbd3fa225d822f5e5cff7b056d328f66bd0a82df09d585fcf3ed3ed7b71d23ecd4056a3013cd698b21e52067ae7afd85fb6a6928a3ab9b69adecb7d296c5e093c50078b398d0b41ef916473925cfe88655e5334d2d0a836ff6083b1e13a1dd8496a34dc9941b4aa34d80091a1918292038a902091eb1f5a486c7737a5f7a8eb36c423a1385a49c23e50cd8df694110eb64c5e03ce92402e2ba0c38f4d96855014b08295d51087eb80a87cf70d3fc75db0ccea15481863c4b5e00da6153e398a04514e4512af0aa8197567382659d3de51bbdeb4b6ca89eccdfe61b5bb07384e20f5ec781c54345829b4d8e0ace5e0e5936cfae2a41a985c231c21ad9e762259314477f77464bef7ef8751a06ac9d2d4cadf560dc2879d170a5600e3f34bcbdec201166420725e7bf253bae76fff4a56fbe72c21cb603dfc72797a226339be104094c0d4a7f2c2334c80e98513123fc41a75e44390e11f3e207dc703e447401e4cb38090c5d0229a4a17e440252b04aacd0ad79ceb0041df1cf6cb3a2780c779aae6ddf70cd9a95f180fb34b1b342966ab05f0afac70925b8f8f0c50a0c2eaac9d1bf4bbcf932fd917b4af324da4bd06bc281d71fc60a6547069758b9335ae8dfba35eacfe6fede3555d3676d10dd578f0c2bba4053043013e13c6373be22f8f4a3c9cc7626d3582f71abefd358f9312c4ee72c9bced130cc1e43e3cf36ddeb091217cc16bcd3dae74980ae9032658f292fe4677e0e0fb433d00ebf7f50e46f4151f56b2806d36eabfcb8af7aed958219713635a99725605fcc741bfb14785b0a61614139cd1446187fb7f52adad1a7dea5d14dc0a99ae3cf4b5c4bceb86525f687dea055261585f7819fa4d240f64339c626af202fa8e0a527e774cd85f145d75519ee7b510b21cc67795285330c7ddc4bc7eef3082b061af3e29d8c1fd1866673f49f5caf7b27f1389dd94dbf374fa67067d3082a704dc79a65c5c08989489985490da8241bfc5284dc350b094bb46ed530741db864816f7d9c0b97fad156345603894105d0e1be23b04d780a492291d1ace469b198c03746723389e110230927745ac19d1d68bc86e01e18e88a210b1fa57b263da7444d25fa50ee151bcb09ef344d16f0a92a1b5900dbb7e76b49fb51b75b5f7ffe2329ada03398b77113ff8bd16729597bee2f56aab504a6a161813a10ad3d72ce9057c6d7d78356a07ca2d74dcde821d9e32e3616cca25ec5eb4e316de6ff8fdc88ccf6dec090c0844aab185cdbd10febf9bcef70b4ee0388404b3b3ec91cf160b9b2bfcdafd9b0f41ffedc02e9a1628a667975801de7e9cc7ebaf198e88facbd1130675a37fde321aa69686c54efb7281fa90d33172d22f155b2a790db608d3365df0987c9c6c3596681c380d07c67375a1d97a970c79ded866038acfb2dc72d455fa2e0e0c1ca049ed55b178fcfed92b67142e9e90e39d641d74f4533ac7d8c71444efbe6208771c56b0bab23519ec035673ca6e0c23abb9bacf5099c11dd7f02503de63424d3f4789c8635fa80dd72cfea6d9328aaadbabd6743e930ab49e6459c2579b4869067293dbe5e5a7beeeec4f645e86887e0ddae7574eab7e6b180c8874b0a17e05436e18fc6081d8508fc50c99c9040908339724ee233089f605314d0d71dfb6fd59450cbe986cfdda21dcc19b9d3e40a5fd4b0b3ee691df99631c845374ff9c4adae260327ea78052a8a79951d42a66003718ec3c4b3710e69f7be44ac94c0665efa56249ba21a56d27251d762f548bc27f5de7eb326192d939ca21576bc79595bd2c28d1d654e7e9bd3d8732903bfb46ddb950c0a87dc890a6cda6fb92fb77ad9391c846d355b4c12cf14931f00182996775b72f5e291034fbfffe7acbbfa58005a585e8aa2bd18cb14baea86e5ddd7bbdd78d62da03360dc57383d5984a72e0f12e1163b549b645b9bd22d2f8362b8caa7735f6b71b6bf4e817b618d523744529742f139cc68700c050eb7175428f7439c031ceb5eadaffe6bfea197c0b40ed7d8908986ce78851b05827f9401a636d481949610818ac59f4affc20117bcd49b62489dc8842ec6d2134881c0cec745db4c153f5aaa118e7dba9c1332f1830fba967ac1e18671d2e8dd42c19aca810acd74baf9dc14c85de0eccaa2d71dda2a4e87d8c2a2daff5cdd2fff0dc3c37237b04f259e188af5c135a2397d278e4f16131312b1fd817cfd95bae9d8db5c6db0db491dcab280961b1390fa8bbb005102eb1c623741720944fb8b43116160d9958df684932e8ed543bbda9682f01926b19300119742b694d6e92c790c85af61c8295f7b165cd1fff9381fcda07357a8ff4168d177755ef047e79cb4600cc1394a9dac1e24af945fb3ffb20c1a06aab4541bdd3a7346f0470e267039b565db3e4ba8663f3db19912301287791f20a4db800c2f0d619d77a6b82d73760df15ed5dbeb20a47a9e9183e14f8283bfb074f5c406c0e687452357beeed6e611d782e4a101e8ae9bd6c246adf86185813917d5c7471a7ba8e59d8d75730900b5daa29eee5fc0c818e965ac1944159206f0a2d70c5d9f14f8870810be0593637db564b1a81f0c2b999d0d69f0fca8f3a672475c2b29bacb115434f06e884f42612adf1d5d1a1d6987826ac6f9883dde34bdeeb8a1dbb803499583a8ca1ece0fe74870a8cb964cff22237027dff330ee0718d3c554fa3c35406ea291569defd63cc8268c8c5fccad9c242e1e0af1d02b1aa18e9b259db8422db86b488e93848637c5fae069a822508d3eeedc1e224d8ecf41fe04be93065c654f6a4f4b34388d048eb70d38900871c2e8f8cce4d8278b94c7115bfdddf806433f147fdf2b2758f77e215a2560505d25c863a58aa20293d52ef514073912220673278c3698f3ed6dd77fd59b500af93bc903d2306e5bcbb8bc015522671036cdb8411f486631fa799ee17b2ced10663ccee9174b189e330bb39c013aea32f840bb596b8e79063ce32df799a4762a62fc6085f60d41bc1c3a21f3e516fcdc4b9874e83e54d4f23bbf7300d06b635ee2b03eac9e1b9ade70ac5549feae55774fce53bc2da33c891622aa44deb863ea5f6567bac463605b4d287f5b5d9b5f4a3e24e31ebdcd7b678672c87216f370d7d0dd2b59b9009ee6a376e8bde5915929a19e275299b19a8db8590f74bcedb15c6a9515d3fe6a44264f9e86382f79260fd15bc95df8faed4deb480ab9f081ec473128d6207d39f8be68d1a8aa5f2e211bb0d93bd98c2bac21daa837236fddde205482b2da283d7bdaf47649beb6b9804f5680aeac8b8b00441b82338eb99bc413d1374bc2a329063d753e1f012a4016ce6e5cb75aedc423d4c8160f3c84449e2bfd345053aed54887d8cd01fe9b7daab7ac1c658f9ecfa39dbbc7b7b004f7a0944bd0318e1c730635c229a37274a49be900b969cd4096a57ff1f05521a8944d71211bbc5477c0d87cb46ec1f9a0abbd0fe89834e6fad63571b8d3ac5bb8d7203026bf8118056c5d64dc82adb09af9457861b3e4fe40dfdf562767b646380fc2032508749a33b0e2a00f9bac7facfd2b6373373cd0b9f0f61155bd17f3c901b6aaddaabbcee333355035f6a08a7de69ddfa55869a59273b2ec909675c602caf3968a9faa06246ccab04c5e25e4ec97cc0e33497a78c40014d4ad886ce874ae7a5062031c66b3035317c4fb84525bdafcafabf8f56acb0186a0e1e9a564539a99ed8cd99c037aa279fec76d0688109729481b9a07dd9a845a307538e63dc5789793240e8b3b96b6d2131383a14f13f2bceae4f99a130462195f404ee06d9b5fdd6071855fabf15c3e3f724d8865bc0a40dee42b2939566c973220944065c55fc693081e2500896a29290b40b752999572492fd5a7e8558e4092f53d44ada17de3bfabff95a4c3d1c6179e3e1198664b566209bef5fcb443b741db8a4405710357e1f7bc673592742ea9fbceef0a9cbcba2a5e9d36f5ae3b94587ea140a88abdf020300fc7e6309c4a4e5a1e4fc82690689adb0621fe8b92c397ba2c458df221de30a5945084c06cc67fbe179d05bdcc5370f0f4f7c158327d43b66637d11967ca180078528bd517b40313945252587aeea4d06e3b490c767fdd9db34193eba9d1e6cdf333020ca3c8775d5424d513a1bec937eb6002b23cb4ba1840fe13a217cb6325b55780cadc2df976ffc40d6e3bc160878c31d689d4f8a87dedc380095b1379402a7ac3b515339b1531d98a6983246c9c5f2196612ab6407fa402fb00dc9c63a65f3746a4e8a5d2694d2a76fd5ac0956ebfa8c31c8c1c134d7738191ba9c89b867eeca6620fb710b60ae2c6086d811479d42503acd96213b9560e48e94c8853745bb84ba361e1247e5168cf6547679308068387fb6702f0679a6b49fb284cd50eb0148339bb79d2e7951044953573473c650d96a37928851c0f6530f56eb5daf7de2c8ff05c8119479ae69c7c99110b1efd9b80a0958708a8f8b8a758e4417cc6cf424b9866700058169bb76e89b1c2b133eb015d078fcb34596cf3794f10006c325698f01b1dd318da7f62c2cad53bc821eac4ee0adc551a303b54bd42feb9099d0ba7dc751e1980431c1991044064fca32c33674049dad2e0b438d5b52b743d1b7c8fc212c3eb6c288b20ad45ea0d3b6cd2b1c759a3173068b7121919c389fdb233dd0427c00b832f1b380efc7ce5b387aec2b391a57c7f421392294d6d9ddc00695574e7de67eabfdcd41c3226e42f8d094c33b20099385519428be873b9e635bdeebb0896b2ebaaf7aef03e92631114d3a73db7fc3ef26573a65d8762025a6b283051bd29b9710c7b3ad9d3d9ffa0ac6580789c507b595482bf80130bf3d64c45768ff79b6999e4c223f1c8a42170c3cc124f8a3691820df230155bcd6152bf715eff24a256250c72cc35a535e43855e675e8e9c6bb6898fb72d418f13681ba3d5ba658fdb9f9efbfb1a45b2256dfba085ba9fee03b3b59443df5ef241de2037009e22de237c63a92d3a7ad84808e62a96105882f2d615eac8bc0e132b6227343a88136e679d58fcb57f49f63b4195c0f8c68f8c68b265c6e586769631ea00b9959335b23d2439033ef78442606fb10744ed708cb06b7d2f983b6155525fac05697fea6ea1dc02f1ada94ba2b93d2cdf66b6c126a71f20f13ec779153576ea599ebeadbe1485d506f08f73b5674b12f908ce0b31feab15d566916b040096df1bcd252780f443ef23d0c5f856ef6d96f2f6dfb833cab964fd731142c11b594f34a3205f897c2ec6cea889e95eb22dfd5f7eb82ced252e5712ea5ac48ddbaf1289999cd81b43750b18dc239df19f11907ba1618bdcb7fba05047e0923e00d9f4cfa682880a8a8eb3433cf0a15fa9d93572ec027e5d7f2d73b35d08891839a3168baa069b099fa0392279ed65c2f2b8518819be06a970222e9e2c7c13322ea752a2f798befba5bf42003d4520ce4a7a75dad0916c2c6f19d4517ffcf951be4fefaa8cf4a9d6ccccc9562f7215653abda9e6098d526368ae0ac6b39223fa9901b2e3e6c8f23153b8b9f85a6731bf1d899fa337532b407554678df61b608be7ce93c77ab6085cee229a974d812e0247e3234f6331620c6206aaffc21846df7b14ed662e1b8869addfe8424b388fee3e16b80a50fbe0948c11b65f12777d9b6ac8464773ed15fcc4c989a964e94a2074a96eb39b51810c6b8d1f2f34e1bd1145ec22b705321d361588746277941c94ec2c96b62e87ae4cd2be508a74ca96805454432aff4b885f4b4123661d9af9f1232848bfb8e4f4ae0a016e526fd25a75479be81ca633cc3ac72b242d39791958b5b2ae5df76a84690132f82553d38868ee6b27d54fce27487516818b52ba1dcc863177e72785f8172d5edc5565e60fabbc48012d0d2df9dcb7f23e3c8df3fa47ac05d957b60d212f52527d65b7062ed31bf9b97fdc1e76c8dd9159d9d7598647b286c7865c56d9a6d5264f5acc249046989b474ac6164e68956831b244c2b560fc95f5773e9516c0679f2251926b95cdf0d1f63717fed20f5c199a8d9c7514aa311b7980f7f4060d3dcff5edef7d81dd4389b746153f254dc139e5a847eac45b14b6994111e9e31b060c1e560a4dc402ba552f082ea361ec8ed22674e4ebfdaed9aad3667040988f05145a552d1d17d5851da34dcfa19b700346448b09302604c080807cf6bfbd914108d99041e2b290bf739ea965d2b15931458e8cb2ab0cb9ef4fdbbbfee06564704dbbbd3e1b10bdfcb80d77f5db6b11b07a751b3b6f96e4019b37ac7eae3c888278ef70a46041f478fb8368503d4ad48b9e183ba803b732c290fc924f9bac5a3c62629be1316bdc483b4558e9e552e11b3287a6dfef460550dd6cb7f714e0c97aae91513dc31c9a07ba3b50f13eb7bd7b04424a023e632f27d492f57caa3e2e58439427534e86d8f0380deb923f108af49ad809ed5028c49e823cac37f91b7ecc325ecde8becc3fe9e45aa4bdd58720f8ce7458c3d3a657dd2793dc0e6de1f81ea0326ae37969dd1da07e827f013f927fa37fb8e99b884794bfcc96db610d57e8d6924321a6b5147ce68e2b951f285db76cedcd7cfe1de1a175219b9199a5d06d42a489b5a9cd55ce8697e6436457f2b3304d5bc917aca0822b20239ec27bbd1fbe9e98dc333b2446255c1de7b9083734877220c2ce68f9c8209536d3166e0e227f71112df7e832e87b202ff381882115448ff29cff3bd637fe5abe8b2b93fca035134a52fbe6c111866a87ee32248bf653cf69c3b21b36341e891557d7b10d56b0232a6e6106ae6d5da3ace049831b7dbf0ec24af3e7da256fcadd7a25dc904507218c4b882cb402ef4be8f70f5a1098a4f87dee6ede9f62f63b731a915c773f5c14159eefce354d6a54d2fc3bf54ae609a16203cfe8c4bb4c1a123d0851498f29f3bbb3ab20765b8b7f6deab7c539765e47641215fb9684a12ee17679f747788b84b0e43b91297e3afe2e66c4d1d2f6275198a2de4d1b28ca72b8bff7c6ecf7379d3a88c7b897b8a4fb2cc6f0604249d01860ca5d891c7861d5dc01d5cf61a54e53cd1e1b88ba8ad54bf5d42011fcbebe173abcbc5dd9f96f499a3a53afb9a39aa0caddc3a99a57428f253e6f5f1ed18150b0b3a396b6eaed3dba8aa157bef72c3b45d2340ba9082eb01bc83b3f3add0a30fd73ef4356453d20d988156519c7023b4592458687a552fa3cbd24ee22fa6501a8dca50e67b6dc20a89cf6e1a79ea6edbc7c02e7049c78c0ac34fcd7451f12f10817aaa29d3ba953575358a5941e331bf95c8d8ea306b85c71aed35c2b2ec55e9c1637f18ac4807c75572374e0b14f075bc65ef0f35ad43e5bcd35f2e9ffdd69d4c8bc55e88343294fc30cb6e3d4034b77bb430abe533caa01d871333e0d48d35d36dd23b6a4d3777bbd77e507acb32bb86953c2d9de496b25de670cd2f43c9d498508984e48dca55eace11acc5599eedd0cdc8e153eaf2c983a399e53e57dffbed276a674b653f5ad87c7e167014968fa499daff72f4c230e032d5d1992ec85bc19e59b2f573c5d7d9e421de3ef0eb9c9b1a17d2798ed849ca49d442908289090401b0f6e8a75b6290132cd0efb8e510bf17deaf7937a425bb4efd0103804b9f62830b3850fdd497f481ca7b4273bb1ba4a1f37b60e5cde0124d7358ce7bf73dc7885a720945cf437be7b476ac38683c6863d16d2df293a2dc5cc03e7583c3940dfc120a43756b18005c9dd94e4e1664f162b767845f36a84d0b0fa147978e1c5146b2208a4bb9c1f59c17ddec36f70ff070d04be7e96117d546f069a1d51dc5dd0421453bb4a292250a1625bddab7850dd53f65718bb5957dfb1ce098898112a1fd1ad3637d2acdbf93ccb0cc4757fdc11bbcf4edf1138d81ea4ce70fea9dbc530472b3b25699730e99d6eebad5f94a5c870487f891e31da874594f96330820851eb39d91483d29cf7e6cb549d288aa056c523de9c6abb294ead8aaf7160b28bcfe70875a6e476ce41ffc835074b2121739bf820309883523fba7d2391550d0d09d5b4071314bf64bad18eda5d06f26c0f78850124a3774bb0f2f2e6c49a3640986cd159d63358e6dc2a90c93f579b44478d9585c1627db8788df8d1407f7f3069f597395edd01d0e30781d45aa71566278148bf8629cfe53cfa153da5b1f3eef77b806731dcf2048208d0e0c42549a5174044676f665f6576d31715e8a684aa814cc129650a0112b00e3f90ef7cc253fd209751f1762db7c7cef9df10958656eda62218a93723d6182bba704f887cf0868fccc6dd0d0f916083706dc59a12efebd5a0ae9978c3b84a16078573b9e99f44898ae32d031c0dcbc349389c80b5f28245468941c4c745b094e5b45ffc106d7dbcba8d811e7779bc4236a7a69bc5563246da472bd408eaab7a53713b86a7fdc347ee5025ef95f479a45747525d57b2fb4fbad934e5ff98e5c6519060aded23d36181ac2a39d4e339870255a98d18c819516ab48f4a8f3587c03635a763f698c49303051468bfb76b5a188cc6beaad02fc48cf32747df3bcc23d4a253cd009de7faadc33b778f24ffe433cf966c81541aca4cbe62d574427feb4cc5449e60e6bbafe80e48ab28b31532cf01ce7b3236aa9af3235dc20a88e3dc6b4a042f64334028580419d8770cdcab4815cbf26879d15340ceedc3b1ae617b038e1df117f6b8c6a26452b39a929c21ecdb29a244cfcd838f9cab72e551e49c1f1a0de12f362216878c88c56aa715258fb5c7246c98a2a9fe81dc42446a33884213069ea8d232c3be62609273c219dbbf320444de0e8c84e99eb86cb3369a635499603b16600409dd4e70665aa37e7649eedb90de225a9ea8020445601a4f7d79757b56364e874a8988b793395b95f174f3a9b7ab9071cec677ba9b69d20ece139e535ab04e21db6f1ed83572032604f41bcc1dce5aec980474e784b32c70d6c0e66237e3a76265b69e2d28174b16c546baa0e9775a64fef3d830ca79237aa6d88c36609ad0aaef0272eaa7dcdf1d3c741f615c9996911904e8c8adfb099e30c6b48fde889805e476fcc9aa49c622513f0272af0d5f2f17c26f9e6e8c691fc98d305e121afcdbe587f7cb3ef57b0a59aa660fcded853d2bf2913b4d3cb4f3a7be64e492f7b9b9cee0e783d8029dc321e6b2571a6929c41cca0c4a68c222afaccf2992019329f3636f79e36ca3810fdb6e64275fe0a522cb8bbf1c9f69d76ba0a2e42525ef91267cd68a6575a2bdd590474e80dd50392271c0058a6345e4a12ec6daede8b0020bd801c4173cba8daee498e8d78159f2176cb78b8529b7010e3f3966ebbccbb5950e751b5a9b48258f070b7cd08ddda00ca19009d62f99d14d43d34709f9a8ddfeb6076769470687ceccd73d8aeb81ac8078405421d8d3e7d201653c3bbeac3069fc2ce5eda79b5b1bdd59d81ced0ed70d6b8992610c3ea2b9f4e61f616c7a17c1793b190d48512091d989b3adda7f32474f6cfb0bf851e4f2c07f4afc886858df8a01e39509a083c18bfe8193cbff20614c42a736618448939e16d9e16bcd85c0cf3670fcd7b993adff77afe335bd09db54ea56f45e0d219fa7b4f873b9bb9a09347d7c2e5f31a87dc724eebb4c767be9604a96d59cf9274d385b963613227cf3bd34064eaf91c4ac784a82f01e63dc12c062c28aab88dcb82e97987821d329df1044da19b5bb129d0b1dbd11d2b56475412af793588c11dd16030656fb509bf9197ec66247b84825593456d4b8d8ce5172fcaab85d12a67cbcdc875dbff98dfed088e2691a94bb32723491169b654ebf1187592efe97d00d1bf205868b8a6f8beba41394228c26786b6110b99bc048758d52fc22a05cf5c28983a9de375930c54f622c6175f3b9fceb1ebfb19f4465923f321e0c584e4f254c9c23509191b2629f435c2fd0eedcf9f5934267b148621b11cf6117e7b0d58a1270efad956b0cbe0cc956cbf049c64ebbe7813e514e3652a25640352e93f1a6c77bbdae6dfa5067f2fd4cd71b3154c730745dbf009e663ba7c16e3b9f3e1ac32865919266b6d43e035f3d750a9acc0c7c59035c3b53aacbbffc4a38333deecbe77d300f1d2b182b96a29f50a7dcff677bb45523455e0c2d8c187e7209beceaec8ea5b1a42b79988374bad12179a189465e69195c7aa4c8df4b244f8f92867b288a632a8d1d9ff006aaafb127203441a23baf88e97559e1145c2435bd1d0f16debf48c01e099a504d96645abbdcbbb6cf072f83a0a25e0559a47544d46b632aa0de097da1fbbe269e3c84bf110ee581c3649c295471bd34f05a5a46c548d903ce3de45e9d8796aac95744b2ca86ea8f127c4057191aaefb015cc914be4388b98906e945d62b23200524276b20322edd442ee0433d54df92384acac8481e5a10520217f7a23fd4b8ef8df79ed0dc18d0d39359eff6979c2f9b68376ff6bbea33bc436cf401037cdf7443acc1a79b49c8ebad96b5a6e1ce80d7b25d2006d64f786cfb3861ba6c3802e5cb22f37b7450b859013a0e6f0750011c9484a1734f6fd51a6061c8a56c716e07aa5a861316f9cd3026933776c771401eda97e67b62376e3273efa19dcce2dd0f0eac7cb32821fa3b76e44431b557f72315052cb19334b556ac206c6e90160aad2b75195b24bc1575b134abf09af14c8e8d8c14b485079e3580343284d5effa0a1889fc090d637dc5fc507f4d01d159ecaaafb9782446707c42a036d1176c56f61bc1ea55ad0f4979ddb29a182050cc5d79e0266d9f9a713067aca870dc47914753e5a8cb526348699c599a21f073d85f0e756f60704a0b1772ac81ff69896de09e345fddea381d3b13081759cbadabed287961726170482a6786972ffc03e96dcb08c8b6b0eb00de58aad274018abed76e8efd1855a12bcddc0a9d989147da994d78fe6b9d067321862fff44b162e3974b93ad285b07b19a3760b6d56fdcae3615baff55b4f5c9cec05b67991ce13190360c6e9d12d0192838e06a54db3454e99ca1a2bfc8e0d1d67865eacf94e6c3d9e8c5df7dccdf461beb0bc3f83f613913447a37c4de25357fb8f73fe6580213d31fa836e3c8393d1c0be74068884f6baaa97918f9d171721dc5aa5cd5ad681288327c3eef52ddf99385e635aa5c7a2728fd1f494c799d2762c5dcd20add66204674c398e597438f7efc3286ea2195a65ed70e4ef80b10ea1ac0c286af55e2dc3d1d5ea7cfb09498b8f627830931c6a2151bd385ba27bdf9f44697e1ba2402e5c5a28fa4942f39d94e80842bb623825b8121cf8bdf42b3537250ea54a85de1a174612b6fc5e8150b822880225b7c531f8eeea330acb7614f9b2705f79a3d0abbbe5163f5fb3caa2a29d5757ae68c0c283c062ea82e05e6a5f34598e43e82ec34fd5dc609cf0f37711091ff432467c93d3ab9fe4ad18e61574f24cf6841a3d51372d2328deb597d8bc281675e34606e102595a189b8c7984fa68a96c23bf5876fa6a5d612aaa767bf76e0c2d1c1836142f5634b81e8ccf86bc0bf559c595a5ab6ab26be64ad3275ef96816556eac88385ccd2d537fba2d57a6381cc28758db3f901b8a9ea23ff3e95081cb555cb47f293418eba3bfcb4752d7c2d1eb55a1e706c8b9d854c8b7dc4b139b7c341bc11d29f7fa727564810fd147d7177a0f82ff653197d24c9e35b93104089b181a741afffbc7284084548cbc3d7354c5141bebf55bab682f88ebcba4c757f721e9dcc4600febdbfbcdeee8b0d71ee08b0aa360f4f8c8890e7f917063701b4d11190df22594e013c9395a1e853e0e1a50a700a6d017e8f05388bcef768a678000a339dafde1cd1c926319e0efce33d58885a20e87dd821b8aa5970e8451c6b91aaf660392e1f6021a0c50386f8a6bd835af960c877c2b0c5eff19c606f8fd42dbe17ad20afde29c988fbac488e9fe5cf423c28234461f5caa5f0c9eb24f6aab83b5a11d262714bb7cdf2e208f461778a6398e001bca2636dcf78514c1fd77fde62a4b16096788b9d4238c573c3d29a315f8a0a9e1c36244a2fe077d1c3d6e31094d5fe8863770bc8711dbf47c72988f74ab0be443562c75552d3fbde0fa841736b9ff8963cf7200100b4524c9ae55318de8f9434fbff5eea6386a2072a88761680a6d8b4ca101be569f93b917eceafa95ccbd3168d2cd63a921301e1aef09db47c057c0527dfc6c67e4a2b2f4574112b390549ae51d2c090b8cb21002b43d330f685a5a276c96879f571de21175e092803b82fa977b5cc8a2cd31410c8ce5c91b44ff951c640f9f578f221fc1d5c9a66e310e0cd726d8c7706f8a39052ee41a454b6aa40fb549c9e7c108375d3c4bd5bd550e37c1fb56c9138054508851efc32bedd7554e7bff0f96227cb439f4551e55b95a933bad7e7627e5a7d60dadba0b87cd105656b308130ebb3a4003a8d7bd2b1175d11a96715017ce3f1a47352e2d1aee689075c0611736d735d6d5dc4ea1b946ba3457391591feb0bbf4b413ab96793439be72766629d9f37087d0a86df2df9fbe58b7c96fe46398fafb370e4bb4d1c179265c8ebc5f68ad7103e263510165fe6349499a433692018660c8f75e46d8407e7976c12eba009ddea36df4c49862817951f12a5322af90a3abebca6d7c02561871d9343f0e73cc7e9107633c52a5102cee5fb39135b7d254a2effd8159613384d96353ab34e0797c345d34797c63b21747e61e04ed699319372271d5e309283d49500052dab57db6f13e2a72e6afb7bbb8a8e11b36cd9779f19d86efa5d4cc4e0f0b0e3101dc82fdb197ef5951183bbeb0866e7ce6b9cce2f5b5e74408ab0cc997b52e9bf691c91c1599e0bcbc86b4135265e2be92afeeebe51a39069e44b4e087ed9c4030af995d3702c329245d569047d1164d0be761cb6a55c852b1fbaca87b858b8c1417b6c374279453ad10e91d4d6e79c7b4fa2cb36a232960920a87b060920035367eb6362a371fed255a97e0d20e30bcc04cfc468f3fc75c9955042e827cd4956454e5c9ea8056cdd4103cde4b4226dbdaca94bcc99a2ce52adefc55fc98de6cc7dc288264e539ebffe59372b3db3fab327af117a31c4f126e0c712f8437d85e0b0cb7467ae021a4ecef7fdbf78cc6b60fb5d0f1d4b1d51e097f8a2725d1e54161922f670730a859feef42cace8c6bd507bf8b2894d68f80d0c75e6c5dee6fdf79149e49b57559ca8ae27625392f6aea296feffff46860f92d13d3e99f672b60cab34b8c35e2f640152ea31ad19950a9eb22684361e670867881fbc349561f9cebff734b0e4321976eb6403849fb828005cb4e672dbfc4592b5e72b616bec0803ff352f12bfe490f8ca438404116146943c7365ecf9628a7a1e27472052bb6107e3f05033cdfdf1fa0f96cf2e6def8dcaee532b65587fdbbaa9efdd5249dfc19797b37f08aa04676ee3c91fafa7eaf83862e7ad9fac2eaaa42b351e014cce1dfd7cd413eafc51a06fae35e7682149dc46f87e162fb33cb7d7c1b2176cbcf992191163ff350f64196c5421f008d2eca93d095530527940f5620ce13c2ba488b84c0b42ffd198a556d9706c8f2837cef5f6215f6573c5539bf68db3d1e9b623c50c5c83a3d29ff3210bbabaafddc8c1b16f69accc235a3ab3f3ab7cabe6ca7b0f86cd508d1cd61adc01211a496724c0be4e6ddc26e63d93d9cd1e94e6105c00495560e87bdf2594ab0fed180cf69f9db170f83b13332e2f8b0d63ba11f89de84b311fd28551750641284a54a054d0fcf06c00e9a2411c27a787c14547c048ada757ac957692aeb027fec9555e078ed37b68008430ce10fce2d399f7a33250ee3260de2670e3cbe43844f80c4d4a8b0eee8124c2c1c2214e9a475a47100bda3c562adfca992d8059cde0f1ebf3ccefab189d5859e96079763bc97f233e6cdfa853a07ef5f2c49d1ceccb23a9db07c2578d3ebb00884f6d0f6b446240e084650282244b30baeb7960c5455cc41b6d55bf3c2dae0e3b6f8f1000b8662c790acc82f145af4e20255bd8aca77e3bad5099c027d1db2b1dc800a4931552bf95da65a57d662e620ba17b6c4babc1ec98b5b62bb8390819a06f7a570c83d086a79ceae218ebe0dff12885b9d9e3548bab66ddf127c7d8390c5d4355979eee8c4be7f21ccbb14453f92b7eb7841f7ded9ff4997fb143121ecd8a5ca394437c767bdf9132cacf70511899857bf1274575a451b48dbf25b58c3745e5fbd8ae43c1ce6c66142def3dff7005567b50178c57bf63c0fcef0aca2789bbb740aa07b14d74aaf219ac07c5929528e17957791bffe02c2c1a060972400d381f1aa39298afd3b0a32c804ccf29774a3aff4aa78363ebed8d0d7d7e886fe8dac67c62d6c9b94275b921a6048047c8ec4521403fafffdf0d005b9e18317cdabbbb21bdebbba72c9ea7de5436e727b8ef947af91a8ef00746c6b7307eacc720d884e67f79c7bb420684df18d7b13302c646e337702a6de7278fc028a3eed7df4d9bfeea3a715e1948dc398362ca4c26df4499f0757ef4f7fa3c435b2c15ab7498fe4f157cc746ae69375a777b5fd282841848119dfd53e9b722a7d96ab5b57c0139b0d3e21626b99b3440cb74b4c87aeb07b8e927eaf2a415422ebbe4133eb858e575632e9ff709f25f3948c01b3ba864191d93363bca2444bd337736e0124a86aa3e44ed75aa7ecad7cef9272681252bd3df29c92b5408fa839a850b69cdc3380114a8f2ec3b5549a3f87f3227fa376b7c6c1118dba6469e20e2d7aadfc9217f3e9f70a2a43fcac92c584e91c4d05ff3c6daccd600aecf256f4ad91b0d3696d781d462d2320e4a05d565f6ec28aad9f546a56050a8ed10fb842844d2c89d95a872be8c2fdc3f3523e695ed81255ed8c5cac220efb17b4bf51bceead3b2a15f89b26719651ef951385c06d3aaeef2d917ade5273518a931109b88ba97fae935290769da4546736f0608c79336276fe52220c379f231b0419bff164c6553bd5b94cf9ffbc080e45bfad6466d9535cb11081ad7f5998e4089639e8bb9dece45079bc8d4f656d14df016da2daedac9eba9f3f9e3b601952b2381118c3e5cc81ace964c25595a8da7ce6cc40550e9b99dab78aa90847cdc17fb62938074694ea0972c9354682fe938d45d47c87e8d30f1eba59f5eecbffe1e9c02d9dcd4724dcae3e21249ee867d39a177d4911a42353a28c6091e808b10197055bec24f8fedb62b970107d4aeb2966503dccf398fdd8da2d70418979627c52981e48922c4bed1d45244cf58064fc4725ecf90f4bcca3e0b4c9a7b204d419a2b6dc7d8d5f9ebb453b58d357dbff9ff02f00b3c7f2a17fd8ffe7ccae7e775e24703743a6096169f318b27adc0c3c40f1e499c195f8e072f028765169ec1b394032ce890dc93fd85466f21e2b12d08be0eb92f4480618586b1c3440582631739ac47545b4f099bb137d630c63214b03fa69c29b1deddd6b8d2f5f39e6c2b33b5a9eb1237d2fef5030b7e2270dff8041f356cd011d0af4253a88eb9d8339aa7b5a0e2a8be89aa9088ca21d132072a4da839eb37812141f8d21ecd89244e90b9056bcdcfab1770d36e922190ade51b198a81d4a8a79cc7646efc70be15309aa8b22869f0c9a302f8d7b51bad496dfa915fcda97c9672dde0ef279fd165b319db01ab8171fa1f373a4cf20130d2cd9b917949178fb36a82ed09985f87e04ac8f016280ae17220d6f34faf0a0b4e0ef339317b065e68a76b16e4d3a61c8e263d00f3e34673add26c6f0a304f717c1616fdb470d46e414d0b1e5ac16ee73bf702051bb5a3707a796df829bbbf8f124ee1bff9dd7ee16a0609fe6a1c69e981c27ca4da11e477f4079c7447484301c2d300ee0a928a36af9cc708868dc0043f96bebbc4aba7cf358765664265b0112511eff92b181a4762156c1fc92fc225a05fef18d64a65299b0980399f947cbf8210806dba1ae63ccf9b0e26f711a8e60b6c976a5622714d96149e39c6064459107af81f48d7ab0e24e9fdffd856aec3b880105cd3141528ed1cc24f7695eb08612476bd4a38f9382d9e755dbaa5a954a0098c6e6676d8f7f802679f6818463fed158393329493832952e182cf01670ee30d32aeda2bd8e085c5d976690c171c5f10f52ed585e92694838928cabd599532885c6cf38668ad16010ec2e218b451558272297881e71e43eeedfe47c1814ca3879a0a906d765809e660a18f162bd16269a89dcf851e8c022d672eed81cdff15c41634ac85a718b42605425d875b7694fbaaab1ac601d9bd1a8279d1d09d34337e3623cc85b9e7ca61c5d204ee5b62531d06225636d0620c249765fcfdd18f1acf80851fe04fa46f7f845d50b4a36f7344725f4945c250ac8f16b78d0f209fdab53282a00fb89ca02b30758be0752ea35633dd6096481cf72c5f94221424a60768cbf40b1cc0cba323829254af07efefa7ca4129c3bf87fbd67b825a0a449ce69d4712d4b636705c978bc50679a994c9341794dc520615bdb18eb7306d189488ac29c345efbea5f881dc2f3887b0f206f6a5767d3edb9234c5d00483d9dad500480be730ca9f1d96754c324eacac5b581d4eb1160493c051855bb8da899c350ada3f2bb7fbce35520dbc39b997bfd0dab13199c46d2000aec5294b6a58e946ebcb2672667c2f6e67a189cfc03b84bd4dced1f1dc0b05965f916d3906f95f9a4a40461b321c43acfdd84b6cfc0c149239d988cdd86c8b6aca8bab052dc7ea301d69fe2a69f1e6c66d16ca48366335b5a87fba5ffa4b704555e0b7c90dd93785a702fd16ff247ac071598032b8b994dc3209d2feb672278422c5ec5f70c4588b7f1c19f60fbc59118a88701f1b6dd99dc7fd43daf0e0744a5c1ed5b5ff3c864463b818ee35de45bb13c6f9b9f6d4e5f1640fb19e73b2cb4898fe322a0387475a16b0e245a5d288cc6fd66e63cc5b22651e3f147d02d49fcc881bb4974fbe9866395bf23aa7d90a72f45f88d341147f95fee7590226633918c458b94b5d35a091944ff9ee7019de72fbf518eda45baadfe0ed0b32da7662b9e2fc939456c14dca595755fb38a7c8c7a12a4b34f61a1b3f0ca00bd89c675f2c2033d332a07bd69d65d52e5f6d5ffe840f9679a2ed65daebb5cd855878c762fbbf8849dca49c2b5a74778cad0db64f030efb91ed31aaf5e10bd62cbff4b3a710f56922afc1b95970c3d78e84cc096298a10b846a23983bfa61a3a079599fe3d438a8eb8c475bdb3d7f8bd8cfd557a1e4b5b90a6ac45451201ee28e66ba486dd247f5a425e7a8d784781fa1f8cfc143e1c06ac46fe9566eeb1e43047de53d091458935180c9888bd9d30a7f022945f1d60eab8179949b424766f42bc8cc55c2233d7b720bb60ace7d68853ed48daa9eaa2e0e264437be69c3f2be25a5c3cae0b04684bd856e4cb25a5639fcb5a5c24a1e85cb22c1024d74ed713e8f36c4d04f7c3070ea64bace3127a1d16620a7b69b53280da5e907d331272a3a1d0e063eed54a1fd0aca223b88c2276a8a88acc6bfdd125425b83b12f5a80dd44df0545275de3ade66142a996bab6aac6ba53addc651f46670b170747d088aa5ac0b75487cefc6a8097c04306bfea630211bc476fe9a312a78f2fba60f03841d48ebe808b4c3ae38e535de0aad60d200990e43aca155a713a9c85de8af65f53ec2602711ee9d8a08a32c4e69118a1b7836be1924a4d6007ba5c5ae3741984512c2b9427363d3cfa0ba4ff010e7d1154f1e86f7cc4aa2219d6b858459a7c8213d9c81c555c5b9e24ac79f4bf28a2cc98d1e84b2ed77eabf56b2a51b218f0a33a387192b0e273109fcdf004c539135059cbd85104ad7e83253d38a4034658fcbc7354b12ea58012615c12efca58a4b5210d964624864144fae0396eacb14b47a5e93c27dea5c7ca5b0c0cf4f0c56e2631b03bc72dfbd00e18c6df454a0ae822cab017e3160adfe6d6929e4a5cb366037931c83f28e4b0bfeb6972d3745c515f2a7c97684737181fad8368c9e1ef0c20dbbc42a7bb9fe2d55d96ec31521990eae068ff08cba1e68151e46f48368d349be76d22ce46ea3519e6ee94ab9594293f134b5d93ccfc6f30344d176f7b13ad26f897e4b97041e4e7c9748900e73dcf36d4036285e5e8d79c0c3dcfab913268ad03cea4f270ffdfdfe4de46fa52d14347fd23937bf98fd1d2baf689b1c73e6ffaf3efe11d928aad650596bfb59ef096b7b38ddbd9bd0fe23bdfc4234826577bf31f75b2dd90109d9f5cf0c68f7c42cc769895b02e2347e1d0691845024874bbc130dcd0bfc03a2f428ef23ae0f125cb211935f639870a56bd99ccc8383ee9a9a91239f786559d59b55b60be8dbf62ef8a016f6a428f4134876dbafa7b7038c6763bc92de361659a57d345523c1b989aa308a04c582f2117ed9d13c5cf4c994246d995162ac27c872f25f872e7ce4a3a6fed30a1d90762c5efbf1bea69080ae73cdc3075d01edcde0f2022d0a68062dbfc33c8452f7b0534f4c372d9c0b148c0d71649060504af261ed7fb5747df8118314c21b5d8013ce99a50216b8e51cc8cc82af46cc3b5aaa5d0c95917e4dd4a297c42809842a8101f990dce5c7a649762ee0e1d838c44070ed85f6846f0f4eb978019e4eb49bbc8a9c45327266fd331dd70b37d06d4291e37f2fe271a0035ca455fe789e8ffbbc127dce5102dd13efb71db9abcc82dfdebf7a4d9006ea737b319eef47943ed419282ba34fecff1cd21fa0045eadf37c436a3c5704365c2b8adb9d69c112e7afab767715f2404f7d6bc507635466c3a01fba75251ee3cef36b51ab55c46700e8877f1a427a555f1fca9f5a06db48c673bc82cdbd68de0a3fab1f27d5c767ddb4bc52521471007a480423cd0d25c6ed1ca3ec68230fc2d2f546e32e917d6e80a1a004b77e38e03236b70aea8d73f1ddd23bbdc8ba67fdd28be7ba603d3f5777e6f3411e6f783a6e87bd2062dbf8cca3e4f3567369f05447d552b70d97187dfe9e98adb98a2cae92d92dbce7947c16ad0d78fb94291b90e86101de622ac91e9d6e2cc5de8a5f9b65216958971ef6a0914ee332531bb6a2ab81d528ac4cc2950b8f2331b533d5a077bd67584f16762047d030de25237c6bd8187bc3ae2c2c9ee22b49c9acb67a48c0128e6cea1a75d692db1e1930826475aab041b8da96718aa9628ce562f29041f4986a645d448c1b839dad2edd4e241dcda95a2f665639459b33a2dd943db933a811fd258b5ac1aacb78e347d1c1bdc413a69d354abd4f15060f48e276c207bcb5583b4d0dd36565f6df581e502f807947f92e970d02229a0081e16451e90f2374ac8af5dd416ff0f1862749acca66639c00bc95d82ad2cd8f1d35609329ef66320e06bad278eded57a1892b55a4e2e58a0f2b9545ce03765e8906b45b24f99e60ba80b2ef1038443e7c2815ecce34fb8388f841665c58f757a6b229029c84446b06daf30a3b7829311c29a3a6a56620828cb2f9a98c7f12a6e4399de2ecc44b1864822b267f57aeb8164e5e96c425a1ca437086e27f2e4b538932a4bb2c5829086cf9456538ba48c6397cf114707673ccb59b2fa4b00fa79fb0d897e1b8825793da72b8d8ef1f582625afea23f6c7cad73b8973fbf07e7aec3be2ac127da6092d40b5664c91408f5e773e8edd86955c8c81b3e422409cc8e38f74e995f28dcfd76eea49d00f336a7aa9669f85b1e30ce293185c91bab32fc43660389b074199719b4b13e4e4c2bf33db25855c6d50d7e0e2b1b3e4bc25f80fcfeedca4928ac2170d1bc25ae2619b8dc2f4ea7df67eb9cf4662239e36e5f177c001bcc46b9078591ee8307067fb86077aa2854ef03ee07769c024b377f03dc3f96bbe414e329f36fa7b44a0aa37d7604d66a30c18e02692727328521669444031ef37858efddba5e935b34b239988738f85ac31d58bf558dbb577bc4ad8ec049ed6bb034d0a5dd7f92e7130aec4ca82e606f0f2545838ad2d5ae3e38b1bc7029d2fd8c8170af8fb69ac174d6307caec7a9f2eed5395d28f8eefacad2b164119ec0fe1faa672223e14fb8e5eaf0423bb9cf00281bddc5c4a1d040a7aa348f0d36b881f159c64889150d80dec7ec5a3a301c70a44a1155345e7838849b864c9c8d1b16eab052e82f767f2e3abf585509d931ac1e5a9a54bd0c6c37761210277c18fd7193e703f7eed690da99adc6e7c6ac337262fb844c10fdad30b5b65a7f693d70a23e7e8c3b64c43b001bf736185684abb734fb571e8c147062ce766dbd3d630198d642460501344894aad0a5bab26fc2cb56f9aa21d53d066a301f1667f272543dd627a7e3e4dfa8861182c4a969baf6238d679d74b5c4e42f1d0e587898cf1d4b1e09ae7bb00b34b2a5749fdbe0eeb82af528f653384dd40f693e30622074a9922049b49c09de55e353a0e921f06d8f3843aa132d329ca187717feebd6763b8fbeaad138712284dbd4bd3b35182e888f1d76946082ab30eed7bf04a50a7ecafb552bfcf08ddc04561f54c65740c1bc2cd67df2b6576bde036936022bcdc8ac58820027b31a2611c62afa3f13f6d37798944b05a72fe8754df10d9ed21ef0596b888c2a10fbf191042df05a24beb630c9f2c328c60d3ead380fcbffdd50cce5f84081b45c5d4731c1f610413c11a701052d2919492268595be994eb7b9bf997bb0ef30258c14f4265f92bd2232d4bbf9848ae282477a67b729411e1b76b450bbbf6622ed9e4dcb85075c0daaa3e12b02c6a9b78b8c4096b4a4caed99a5e185598c9ae09103a3426d25d740df729b658fdf8a1e32b234349cb03f27c040781b08c38b45c14b9ccd7f9181ecf97d00663ef22c39e7f3357ff8c7eae367175f4f50724f0118276a65e6d952cc9566b9f01984893cb2d4bda78c69068839464f3960074f37fc2e21df2701537694bdc32cfa77f93f105917fbd2c1238a116598dd7649812e419dc316f76b54ec4d90ed2d7f4608ad78166c5a510fe8b9ac5181e420bd42309be1e266c1cc6a135fc6ffdfd8403fb0040fe069d11adeff0fdf69b7176fbd8cd07c328c6773880c8a7558b1bd758ba51df009267db52ad6a6662fb4d6a05004ecad1da89654a4be1dbc78960f97cf7223dea83d33d3caf60c482eabc5634fdca2cb33c900011639fc07562eba332b47c5a1e13862aac20d429c6980653972dc2c9a28f4f27c881d911fa4b8105479c9399b571c8675d96d80026f2c4b9f8b8b536721c97a7dc571551a707599a7c8945590d2e1acc1409745bfb7973ec7d4d4671ccf05c214e0d4b979f86f9f3b3eadfd5ae767884454aa588f7157beef17b8f07d576a19ef2ced0ea303ffb7ac14ba1368dd9acc05d44dccf87434cfea5ea26c739410c4b0dd52b3e7ad0705dae1c896e45a21cd9d7011abf0ca4e960ca01cf6ae58d0273df30915e1ea8acbba9b33c72edbbb5afd45c79ea2c9927bc6b2d81b36fcbb4508a4c20200d1cfd6f83285a079bad4ebd70124f40a72d6e0460ed151e9ffe88438ca056c698ad8ad6f2d2fb4f07c87a4c01b2e7bb977b9c7b4c57b8302b151d81f66edeaf70fd8b4979e9c7a8821824197f4501e8da4f0180e7bdaac81617f5160caae24e73f503b27b8bf9658ae7a70ad5c74629e59fff907d98096e240dd1835145dddaa4f62242469af8d9e9f005f555306bfe8cd4c2052f4ecd4b8757f95d044d9d34ac9287a3fc67b7e592d1dffcc12592e4e3a87b4d155a5eb2718be87616d93cc60a8789f75a26e8f73a224ca9eebeb83b56e2e8ece1249c8a0f1b0fd051de0355d92f37c32322bcf682caea3914879a4ce9c35fa6c8864839c6510d5799126288fb05c1a3b4aea7fb982c84245ed6ca7b62db0ec6be60c907cb98b90c19d0ad27ddbef0cf64d15573340c6caad3d0a5645f530db86e21d581927e7ef9d3867e65788465a483a70d7bfb883c64a296cb97edb39b308078ab30a10d49798819e536bab430f5c8b35976dc4dd38cddcb7bd0e47e1c989b935aab0b292d99ee47209645fb54d43f2514f07e2b628aa71e58c05b42c1359afd01a4846690516ae8da4061b94f48325f60b30809bf9cc02b1fb2b884b41a7bf168b2ed9a673adcc67f59dc5702110d21de3ad65765c7e828129c28254fff12205418b7fe06ba18bd99495905baa05797402f0bf99cc71263b48643e9859f1c2d856df75a37e79868286bcde20f0a55e52c26aacdbd9de8e618dfdcfd05fabfdbf61287914be71b5bbcde436d4a4d493d4b8376e81a248943d6fd595c7bfd659afa27c611f9f785748a568c344b785471e7c455d800869dfd0c566475a4f975a1deb0a28a718d92bf18b461abd2367932c4dbdd3c89124186ac1c7feefdb27f8856e637902f106ea66ba55ccb325bb79f99b7e008e092c8ac7c58d3816ac7970544affeebb25b823b18c621eed225b3d18f201a308629609381da12a80aeac2aa694c7ab3ef9d3331a35880e2475c569b576a12fd293b5e587e61e2b6dec61a09b779ebc447348bb2fe26584512180ff5405ee3af841f7e1f65c265e94367a5517726a59220769004c7de4c35ce23e4669843ee9e906abc72cab36b57e4d7041e8c0008f8708bfdd411e54dbfe65f8c25f9eaf6fb8aac16cdd385a561199c7d45ee25cef2e6b3524de59e17510f4dfbe73717bf267e58061f231241d6eba8c35e318848ce97b6097a80548a6131531565e92e024e82014f9da7fe19d2adbaae2ed6de657418c3d3f60af508927765a66e95ca3d695804a6420d882537f935f0d4db07b782bab7c706a22139e93d9778a7c7795953acacabbd47f4586a260849bd2cc61205adbcd88a6c22d5475880362749e7db8c556edf4c48de43a01e49e761295b7083194995089240f139f14aec4fb98132f4a707273f56aef1faf961687b97a01aa1a9075470a334142287264d10601ff73990702a3f9c07d89bcadb6c222e538865fd1ac28f3dad275540fc8e046588e158315166f60b8c4afc323a09bd0e181e719be4f14fa11985c4a2448cc1191b8fda954d8bb0a130efde9ecf5dd3648130909e02c2bc72f52f3105be5cf4d5020dfdd4c3b7168d0c3d30c754dcdb07357263140a1ba37dbeee7700ba17645a8d0d54e84f5f7dbeab2150793fb33a98fd3d18bbae68c773555a77549c5d06e2ee38cbef0428ffa761d7ef6f149450dd0e915298c08148d7784e312fb36a6ce9ded7fa50ede482d49a5d479384729c99472ec4ac118829100bc76f1a30c9e3147c6a6236226562cb1bfa6572e74567d3bf71128016509d8b6cf13d0f2ce82f7af87b8a93a5bcf350994cdf68ffc9b3675da7e2b09d010dd8bedf7bd3e4cd46f1b2049f371fc57df871e27ba12740411adcdaefac4bfd6d6327d56d515cbb81969e853a78801344f13abe239ddf0acaa9d8ef8d632752ea393eda751addc57f4ab7f80541b93932e471c8ac68a81c31b9da6cce9c80de9aace82baec9ffe0f77fc709a8b7022d10dadae0855fccae0a1a209b577cd4fecc37328f207af694c195676672ef412232d9abf7fab9d5db0f6c2d382c220257c6d51c858aa23ea023aa798990d6ef9bdc715c6b3e631d14d1722d718edd9de8475e209d6e5c34577dfb7bb022b9c7e9f337e489e6fd170a3e633c6524cd6fb3395bc1c2e4cb7bfc3b22fb2aba9bf6eb5605dfdbea01c69b4df5c9521ca4545bae9c2241f00d356033596c879f6df01bffb563dc48620dc8d37a8d31779caa6f5de62a31ab9cfef50054a112696a5eb347ae53e1cb624ae5280b194963dc93e54483db3ff0da6e4c4a329a7595551f8acfaf3724a31dc616e186e39a0c5de8f342cb5090c7660059e73438716fdcd49ea0db3f46d1e4a379026cb5546c8b47335493a8bf63f5c26d3f691ab207c0f33b9248802ed102788623ffe5599c160c329c65268bdb3d9c670f2468fdddd374f049338ac57fd09d272d30a6cd86928fd94cbbe637022a59362d0f6397ff35f4405792ce5083d6e9d5827946f74984752e1a2c59b365a26641c61121491ac65a23dab62fc022d041ee088287d03f22605cd2b05460fea6838eedba8b66ddbd864697f6f83d6af054d427db490b45d31b9da9fadee11801807ec73eee2083438825d792d4efdc6b55fe659c28ea34c04bb0e91235ad48b3795f510123a3205376ebbcd0900e4ceebf34e421b2a6f08062f53eae84ae3e4b6dda0ca3ca84703d19176aa3fd2a3eac04ec2e7bc09f7aacbb8551ea6e00886529c711eac7e50dabd25ae8e973752b9d6881f008c48459f406675fdadfd26ff4e305700905c84203ac0dbe4a8d54785690e2e8e5e631e56aadee915c602760e889182d779979186baf6bf9211e59121e5a8913588de07abbfd22f72b51fb35233c571cd74c55c0f4661604bd43a5bda600da9114c87ce712bcaabfa2c0b053cae6bd08435cc41216ef6f63c32f9f0bb0147b83fa7c90dc0228eaf136786d35776bfdf2cfc254a0a678ca8ae3d69b6237617adbcc8127c062b1e00d2a3bc17d68c208792d9f668dd3fcf41d146c397ddca583b4600812cf4d2105583e68095549db1e0b8ff465714ef5788b8b26f986c8f18aedaa3434c7debbddf4874988f45c1c597ac1f60b0c56a7075d21966219d6b48269de34a871a0c8895e4c41b1c2eb03344daeeb992c6c5a45d0d178420ca91fd46a2f01f365b85fb61dd844a711689d2ca862801f5880c10189212fe770fe139732871dcf786e3fc0cee1337436d94280a6ac56f46c2966f781d22d38121134ca71d9b248d69c2282b6307685ef5e3477106ba3615f9412192f698790c0a8662ae7a1b05bad66f8cfb8ab8f85c801883da73c2e757851e7d8672db83f2e3216c2928de58fa2a45db5af8b237bc4ef0ed03d096e0c9ccbe37ecbec790e77378bbe282a203e2ecffd1a1351b810707b7cbd0f1835df49a759c6c18951a86ccf3a7ac3d1949a8568840053fb4ce0ef9626aade8b4bb2f32507a403bccdf022165177cec616841d39402a106144747ef3df7a5b79a678225638ffc707879308f8272aee09440db1f51d2bbb4becd5e9c961561487104f3150bdf6849e35830b0a64bee80da7b0c367e84b5d68be0b45e9bc8bc02039df32ee8188078cab8e6380a213c9be05fda9ff5d27e2106191a007dcd19a69d675d47ef7a95a56bf8fd6b0fca6e0046f926fad8505d65d10a9d13e348df2162c0039d71cad904c3d3e36a81c4a297dc8bf06f35ebdf04624255d233f5e5884cf934071b2e6903dd9f33b248c697252237014aa22ac3a737862348f1e8347e1152d4d2662aa78320b5487d940a6eccd594b723ee58e9765bd850de9e33cb977ed7d2db15f2cdbfe6d513ab9dcc84f66ed15e764fc4cda86666678f3023cb2a097f8330bbf08b74906a4561d123ae08e85995f1528cab3947486a9aa0597dc0d995436b5ddbe45dc3a5ac67d8c58dba310ba30fd36dc9850f06eb3c96d7b270385d78a308344034f8b58a502077c6a0e0799b0670dd52be0b613df20f80efddf3d95b445db4bb86971d960c8aa2ce07f95894f6c175d43710138288f4fbd15588dbea6c08caf01345ca5920694451a7f398ee017c403214e92e700376cf4a3b018ca3dc2496957b7911e9673eb86e75277cf445380889b0f145821da141d2618579b2a2dd8b2e0c22cda14839eced03592f64a3f459575fa5672901a8a8913b6998b4114c78ca9a426729be92d4437340fc09898d632aa77899046d7cca14a42def0d5c358f452ea77a27e77fa9f0c75bade25ce96ec32a36cbf62f958de0bb0ab8464e60fc43833fbf41a7edc98c35a7f7142eea766db88cddf572242f59f258c4d92f59047d485006e064a2d0cd7907f04bc6bb126ef44441d61b3c7320cdb7c930b68dedcddf1e33ba6d84724e5e238dbc69ea966f1aeb7e2098a876afbefd3d75705983c54e26a1c129381e10b0d5aa46edbdb61dcea1ea5b93e465e4f280df8b9a4ad85ae94b350c46fa53d6280846ed77b12d69e1fa85b8dfe9c244b2ab7ed0c2ad60fa5c5d6eecd04eb682d9d5b8f306d30fe2f408c7a9da7bd5323b3f094d323dc988101469c654b97bb15c12ae1db4c2822ec48486ac951331a2d2b332ab642551c14a7aa753f746de5fd35a9349d28ce2d4e585b9727b0503256736dcc1112b96376f9286e63f5ffcc41494d3677dea58ec6019ae2dbb371eb0b379d74d2f0144b85c4df715635900888eee9687908b3b76563b0efc5af08da1a9656e406fb45faaec932f68b516c5ae2be93e22f63dc9f66fbea9d3910809765def2afd0a6d4aa271701dfbb5e11b557fa431ef88947519e9c9e5df2cfa20f23c78858006f673a3bb733d6b45ef942e8bb7a8e2552883a202f3fc90b0eb2033a3fa32f049d5d4f616a283c2cb4b052fd6882091659d9f91d94cd30e4fd2d8261c056e510215ab665fe0979952334fc67441b96d0d15900648f41f7d730c0ace1b530435bd434becf936e2bf2fbe70e419455dab05d34fdc3cf37e66f66dc6dde15c6d90f2581a327852ff964a7d7fbc8ba394b7fcb6668de065d667a40cddb41ebfacfae65599181c84aab2b859d9bf362d4f25db2e4780fa4a03826900b8c60e968663476722befc37b7852a947c6d822437848342ffb7da9dfb41efb4208625852cb7af1336e2a9f1fa817228d9d868cd17cb1086a7308e833d8784f3ce9c22a53ce4de8e56b3778cbb3dac1e1aa1c0afaf3b5832c36c9622e4dcb0d51d541b294ad6c6fc8117d2c9cc267efee47308d33dade7e7a3bf314f7ca30ddda50037ec31f49ee884ffa00571c31c4c07fc3b9e67c77ea46e24c9687d8fa8497e98b8961c019a65cf8c984ed99f3b05a70cd8700e92c83478f4c1da6069492f95a966c3c9eb9d9ac77b320ea131b119e168a688b5699c7cecdc6993d48b4bd185089feba8e59dc09970c74eb1c8c75743336564fe08c4332b5f3aa62705c70030ea2a30df83e18294ab89d8a65156b796108a165cfada813c9b4e725cc3b8b4be1bc89347af3b29aa2ee518eda7aff5cbb6177eff593b69bba7bb28abb91d5d41ca53478f9699b32b96a92baf288d5dac7d44365a0a0c1b06bda9ee6c0bfc33638036d409a3584a197b36948a90409a0779a0d8300011bd17366a65c544a9c6e2f4c3985b2c68836fa7ac5791772006fdd5979ece0526a2831d409c2d4099d5fc7fff2f24717c45ade8b6d80405072801f6297e92bef17529637c262a126e1e8301dcdb8cbb33b683ba9cc1f9b70307b9ba4622a586e5149e91c4d7c7fd907d1121140793cde2de30d59224135446ab032f629eba2205de04f07acdfc271dbea2ec4136989b295434a13ac12a32efd1e5fc26d9ad22998eace6328bb89f9f9b8bb8c3efc446a36f1a9c0273a2e629d715e83a1018df22dbc7f07a8897bd3b14a7fd166d2f2c0a5d824b0255cb994b6de66abc8e758e1d7a7ebdcd4c36a7ffd1be0b03801639cd915d8d155efaded7e5bd2585a89d9e76222986e8eb20ac853b3f3e4def89f85aae5f2f09950d783dc17fb8bedae25846655185883d2730a6fb3ff89d75bc2dbda6d121bea2964d7edc63fe760888a6da0ebeb5837101e3f52f5c7ea6550be9c27553d72f0b14b57dbd580a8c2fced23fffb28bfb7325b76430f21879ceebc04fbe0e9085e59823119c36f53471a1a8e31bc876ff4e4d32f939bc95400edb70dcb3376821b1acc48075ef6ddc2af3a16ceb59f2ef7c646fa68c7b2f893f0fa55543fa78c3a44d9e07e0c40fcc718a79efd60688774a7ea40ec5fbba29533ab9fe3eff7fd4dca4c36ff0ba427f05628492f22ca2bd71c8b523c630e6ec8de4f94495c5d15d2999f7c7b9188a9b35201c1d98a62d6bc55384770ed6225e10250d825df42f3073132f928d804b032ad81a87e25933d09f76760eaf3cde2fb8ecbcea2f186c78d3c370c5c58802dfe9b801655d7de2ee6515e36d24a5ce1553b002dbfed6e567d8f2b759e0e79a5e80bbbe0cebee8fcc1401f222ff7699871a97cdb418640d5ba73ba69ffde037a17792d52689128d1cf47579c702cbb3b6b2ee8fbdaf14646297571cb23473ec3830d262d2ed52a7229ec20ed8fc2055ce2b751760d41e6a4ae454092b8aec3fc5bb5c95513b631cb8c8f1c4c7872bde452ece7417c9e67f58eef0a23afc4feb708a877decdc5a24e7c8935d265939fc05cc8ce79a5a50adf8e92401fb3695bb50bb055a7f95fcf43e2072df6d31bcea989a2ee9740103d2ab048e6ff7f43802cb7af42d5c63d507de6b745792fa7179d00c996971bc84dbcbf4e5b4833202abd033e1079fe10c75cb41831cbf56dd2e067b18607c53f2eac3fa258bef96d9610bf7602c79f6c907b00ec0fd1b230e68501ef38918f324b59b127d31a37b8f1c9cf0750159ade760f9aa4584af9c9a61e1a61f0509fdb4be428732408ed32899863fbbc3912e607bcb7e9ba65adf83cb2edbf84068b410612c9b5a56d10637ae5511c1deb8fdcb04d9164835fd86eb42cfcfecb3ed8134792285a248d59e1458a21c094679bddb515e18824ce65df704d57f79b580e9630b2b2f7b24f92bfbb8cf0e8734719538ea1bcadfd46f7c4873c631b0c5539c1947ff73c84b1f83f1f325eae8c1aa239db4d3b869a624ced6a976d67a375aac93e71c67ad9b65634270b25371602b3b61439923f7b3554aaf4f7771dbecec29a84e227bc1f5a950b615b466e4fe713727163c30ff31ec9c5c24acd36f204636099151b26287c546c1b7940c149eb0069ebace9618e2b3e3c2b125f6551e0f76b45ae966192a0e64a18f22c8fa779d4500fc65704eb8ab246a86555e2e56d4c7ccbea53caba1ce7a046c0433a9afdcf09d83e6e0fe0f61a3dfcb724e108babe742f3a39260e59d4351d54fa75a03c2becd69ea400c43dfb17c5a9930c382435e8b37a386e081221784c1c2adf2c48820229df153a617fde1be53236767c9fbf5bc986bfeb4325c39b732671217531e3e578a2bb64b4243d7505fab761245f75d62567468fe6970e095339549e66166091594039fe484ae55ede7243efc6b325f257deeaa63960f7999b1a64ce8cd5db552b51b8c14283e301d3b2a8159a576fa73565077ca591e58368c58700273acb5d5e33e3bc80ca58a052caecff20ad35b63b7401dc3ee0523bbfd4a8642fccdeef756e2e942201570b2e13e3351529cd53a7a3a784d97bd4cf0b452a83c026c110dac41b651839e015fa48e80901c419044f28041d7dfb02de3c6e0503e88ebccf5b765f0af419ff9f32ab9059348d7dd596f4ac2148af955a454991eedff9e86573095a62478541b9f6fad4a5f68d7ad8e95f679458b13d9602bb45da3ca9bf9867c9111545c82223e425bd1ec98a6f7eb7a47de8f48a750d36f59fa73dd49a027925920037529ff3e75c537009a83e08478ae0d4703c9416de32f57a7925d04f5b198b114ad69aa446661ff6ce8df2d7549483082805deca2d7540cddaabb564549390831ec785f68235bf351b07114e922002dd47d79d0ad2fd96de326ca5b2f0d0f7559cd10b17fe8bd3d3150da4d484a7fd1a73a527f6a5509a5a3fc9415dfb2a6209e3d3b0cf3d7213196dbaee55ba8379a5bce13b7d49d115d813488f083055c5cca4bc86437a9ced4580340a8a4070f2cfbb0921a1015481b22aab8507441dc769fb3ce96c5b3c289969112ee826395efc0271e1cfb0f8a454e3f7fb99588e2c7cd98e777c474fe02cad2e8f65f3b91c86cf9e180234afe6c368b7045f900e59f5bb77fab1d950ff67eb7492c7807b083d9e39557f52b1821f93631d5fc9284cf4c93bd459f92e8958b75596d6df09bfe0e9972be8602bdd9c8a9db02980a496de04a3df30043269200a7f16b00ef0d0ba61f2cc1d199e93b29e2e183f0d6a3d8a693816d056f8c228bf6807f00b9e445cd645edf99b79330a0a65a124c41ecb142f49022b2463d67da951a922a5452d8cdc0e38ae1ea060af1bcf08e0a38a632b6d8756614193ca8859af95f173730bff5c1b109d3dd23c6f8483ba348e28e91aaf5103d9253d8272e5c2f3159bb021304a751f0b30daae743948e86bd9e18ab89a58aac34e3f5cb1391a32183b78ae2a18757d65c470144eccfab2dea5280ecb789a9e52cb3e398fee48b144d52ebe65f9ccfa8ea8f561c8bb9ce58b4a10891846cfba67c43961aa67c86e24ac37de868a5d41dcf864ae4059a113c33854e47c31f71b1740c93d716703d6ae0ffba26bd6e360a31cc6acafea57fd301723f0da4faa7b7d37cb8d2fde64f67404f13202e7688f040aac6a242726a07a5fcf241f3827202facbb7f3c6544aff521fb3f052a73c6a09a00ee90e9f9dfd23b396bc8078c6dc2bf556b1e60b71bbc1f9a6f40d4537686d621b2fbeacc513b2c35e3ba80a20f547ba400e0cea24a6414f4e87d4f27101798ab105d763884f5ea2169eb0e4ece41fbe1d13d31bf6bdcc8228e556bc1933debad9507f79d0aca94190dcc9a6dbe3dcfabe9c0fb70e33e42932ccbc65b6655ddf792a24469b4885a0b02e7661ad06a627c13ef5d8942d743f9ae60fa85d28f1c30359f156f055c17bc273d2238b46a186736c6444c018f0718da0e6378a99e93551ea05a1eba4e750b53f4319afba6e8f3a350fed15c00c580e060507f2555605bb979df3853b7d1d2fbfd6bc278213a5a7d4abb8bdb8a598a2c8f98e4282d24a55a76d50d57b3f1f0fee5a5502d094a9aa4cefebb90965d3cfc0070cc60bd5210e5bb22d1cbe4c0f8114963cbb68f592560c6ae2fab1deebcc0f228a8cbb8977b29cfb61661d4db05fb65ad10201e784c8da5c7d1ffc4e0fa883b862cbcd2b94333e0ed1c17d161fa3a036cff140180451097f20d65a2bebb117002a3871450c96bd0be128051a3ca3cd52c0147e49823e82f4f1c05394cdfb438b21a36a81b67e7659f3cdeabaa734770eb0a410e98d8c28b3a8e9082df6c1109fc85186ce108e0c7d70c95e9d2e87215982bc3a2448adcfe079f3a16129e5a08bd72580fc98ef6256727780b628c4b05df6a4aa1e43409cae9fe466077b954eb371584886eac78ed85db25a956b50af438070a3e330e919443888d090684228fc42c904433a22e0ca6efe28e017a8352dfa068b8846bf54e37e6d1d9457074b2f0c19e47050287a95bca2fd793fff3059a1d5e75d8870e3ed4b83a2d5992bc648b31735a231b70228fa0b0a653559276b41db2889183c5f68173cdc9e15608e8f4955b265d01093adfddfcbea6a595fdb334513a8342f2a7f6f299cf153aa81a0a4eb1c233dd7fc16d22847bd481d329d4c11ed766bd5ea812fc904f29f0a96f82cad25cd8de25a824e95b26012d7f74470e132c02d9a967e6f5de980c1ea6c62516f5ae1f7a74c49a4254ce4c878117c30d9b13f265d1cf1b0a0774b89a6255cdb1f6ed62a475cbba5382364c0b226fc1cbdc8f23d18c90d0ca0ab3b9b4b5174959d2a2dd6be49b3b39ecce17327d870d4033ba6b768db12227561aa10bd360feb029e026424aeb08509d73177542441d72c5552474a13e9f39f16b24d83230e81f438e3362751d9770dbb2cf910a4d6e616b5322fdf2671a2aa876332c847ce8b0bd0d9503001c8057a73e1d1cc5be49861d8528c0b063c9a3f6bddd9f02728b0911a19103cd997d5ca15efed74c93224d0d4b2e14fc048842d72c358f7fb3fa59f9312c7f49af371294319007ba1afff5fb58cdbdc0512104b399d3e7640f2b6dd0b06c91a07f627c969c6eaaf03723481e1b1ed9aa8399f1b86519a0265a1003b30f254fffb282f51d264c32b61906fa98bcc34b94b36233651b8cd82ef2714a72d388a5e1f964a55c33369a4f33420b125e83496cb672b8bd19cae02f9311c347a09ead36e1b11d7e04074a7ce54343e412a9cbe581ad118abc1b579f5ba50b37b1e3a9335b8f651de4573e02953355a3dd32a052a57a0fd1d8520efd8ca3ae8ed34f5c3874bf2b4314e3067a91cf9dd8492ae8c6f264f3c369a6e1db08a9a99e936514345c93e0c5f0d44e46b33ed6bf17ad71f8c5ddf61ac135856f34edde6cee8eafed320e8e73af32373c4ba504e1e21666af686858b177addb82fe357fdce8ce8af14c6cd9ebbb2141e219f2fa213dc53b3a7b3bc6c4bf0ef9e36b034bf20e6de75891f992b9e8fbc98fa20c8dbf0abc8e688ddcc56de62e1b4f3eb016cc9a9df90fe781f9df6f015c4bc3c72e951d30956c9f0338d9b4303adb0843ec2b9f0ffa58094b6efb16b59545ca75774106b968df234117a9670815feedb352501f84def52311a6aea247f75fc0bb8b6211db0a0f91bb2261d16aa04889e201eb0171e7cd3cf086ed2566464f23afe636aafd84d9d3b3ebb263deb8e30cefdcd925a439d45e1894fd4b652a6bf8e6f940e3f8644ffa62da5ce29d3f2aaa4815e6b0075d2ac72bdbfc9bec2d71dd1968e040e08ee24c0abf82fbab5bf6730c65f3b7f5b42dd015efc853500430507cf5e3b86da4cd4efb5f5178bbe4473f1bf035daeb68d861f71ef460fca5fb87e950a1b000d98ea1c9fb47fc038210b80cbd13c8c4274fd9a0644ab90f429399ab097bbfc90b700ff03f5182b5123d6fc61d179816d52bd770d0dd42b59d783936e8934d1fbe554e9a88122d4356c790539a852adaf6b1e729b20f4b554c9b1ecfbdb13a4ef513fde055df8c349e29d69055038d1ba4303e30d5256f9c7fe115d2825c851c552d3e15885e586a24818f85a09d020e330887e32393add13d8456cf5ff6825bb5c2d027ca6aaea345732daabafcf9490fa5457eed90449fbe1a1dfd1eba117af31b2922450fab82ecf464ffaa6710d659dd3e56b76d108ff3f655a243dd4fc931e53d086993c7ea81b0f62cc2a323d593e0c51303482bdc94554afd73b719426eff48dd7dbc7078797af9572b801820335a54760c8b3aeb626563fbe73ee7c676d7ebf7d12185f3956f638a7a97e933294f35ebe6430d6b5799c8204e8f874bf89a5586c29c1d886902772c7a70ebb64ae3e6dc082aa51d7460bb3e323376261eb17f9e34cbbc9af1ba31c667ddef1b54d32217edba0321fb603b944f3656c04cd09ff75c452c6bfc04ab41deaea8423aa766b0a3a9afab6819787cea096b0b2e6c773862cc6490199a01ee4da884e42d21b960c32573077b25f2bad21aa9fecf0cdd48072bf3b4f65d44d1bff10d2fc26beaa08de1ec97402043c5513ae91639a77963631bd8553c63f9652f2b43004b444f15ca535c52a9caa9e165e0ff92aaceebc20a950113edb3f8d89990eb7b2e8b7a3c6ad02986be3cabfd38494ba7070f9baaabf7f47a5dfa74ea4167885586e87797e00a6efe1fdf622ac67ac7d998c900825dc5e026c6ba9ac71899b530817b6ec40e0b426b47a6d99d0f72c6c1928295caa256559be49ae6a0efe3ca3c1a87b2537d83f59db64414f401207051516787e91894cf365dbe7a9ae88e7dc42ba545948877c47c50369396790d55119cc1df8749c93f2982b98223ad04cadbf9b1af3b14c05451145f1a082947f4315936a07fc6ba0b881fd0b90bc2fe5262f45b68546c5b3215361e67c93fe3a216e68877502d4b4244379e3fa7cd4ff279005eae51dc4fae429a703c80742ba595aee9477fe1241cd791b84eaa0e94a53eb82d74d2365fd8f4f33877aa8ee5713bdca603a28a070c6e25e5c7ef651d42ef356518cd7d17b55f42d426a186ede0a59fd8799ba53db84e280560fa93a0e0db0bdf1c292afe066099bc19a0188591482a41f527eabe5ae5d7ae1f416eb6e0209455d524b982787ce51fc4a96eeef1d3306dd2678e995f4536955a3f65258ec58a4a9afafff969b1949b21713e679e57b46757a7ca8fd64962b87795836c5b2faae98d2ba94837dd08a010c8b49a65f526a04ba011588f1f25345508e5cdf19464334d87d123c75dd3712874ae215575735de0e0795e866067e191873da3d92d510868bc09d186e271e2998aa3f785455c0cf72936f311f8b6bc7b1a94ce91649c05320330a1aba24cef24d1c20258530a612941f50afd78c6c66466f1d6d161ef3c4860a0afd1af584f7d8f76ca7fb2af8f1c67d27f16b59d65c5bc59fb4c3dd32e3f3083f2bd1f54bd40ad52271e3ffa6e1ce945bb5743f94b3468a1d90242e98cfb7e01f92b140778fbf1294f3d78e628600835b1861e2a4cfdac2cc7ba343210b078f4157e693bd1b2b5494d58ec898a42264ec3c41290c11cfda913c649f5f014244f3b779070a273760e03b9b9fdff13b9f707010e76797bbbc459d35536207b9d077163b5b5acd237d234645ecd68b46d397aa8e0feec940a17de6fa533d4fa16725b685a7123c7b1d34888a4f47a725bc9181c3af6e5462377b58415faeaeac44a6aea8939b7d1da9ddb6383212dfb3161819d78cadd61e460d74f8c8b5d936baf6c1442a74be77507c0c7e38f949dbea265b248bb01adcc1744377ee0115cd7f2d378c8dd1c8423490d351b272403c99ce43fb4a37f0532a0da3ef0b5653034d28d0358bb74ba46c64f44cca34832b747b51d1414148aff0eb6c05f92465f3afa4bb26ffe3611c7cad3e3bf3e231514dbf103e65d28281273f5e559e1220fdbff49252e07942d6c5f41ead1659dfaaca06b70946195b754f3f7cb95f9ab26395e1a0dbc5f560ca30f9805ca15577f3423f286e619657fd4306d4058c85c99af0f503f5860e2f23e79792802955c4f313c799e99d5baab597a6e447cbb796609ce54d5e02bcdb9a14abcda9c163fdd88fb40f5fdb628a4b717a36ea2f909c6e055bf0e868369e5095c043dc7d58358ed18d874ed4cd76ea9c0daeccbd621a150e51a3da15ac55e531e3c6b28a604c2eb4e442d473c08797306fa188d7cccb5480551f13652312cede71232b52df25dd778914dba47fbd0dcf6ba087b05756d709101b0b9c46f5479fcfad4b8dc9b50d56c4ebfc8fe5668342d6587e96c4b6054def8d8fc864d36ffe3068c04bb30a05e840a621132ceb3880b4eeca7fdb4c90d917331431e5026cf4f61e774745803f611f3168ba063e7d670d67d2d5e8b5ee078700c1e95dd693a825c9d22ed6733f73e10c7ed836626c9adf4d2260c05fb6dc95fcd58b62c31d519101e892db9b2b0aa9ddf91880d8f689976d25563c06224666fe434d12a7b1e76e9594e92540b8861db61363b5ff84344c1515d5e120d4f33e8231fb4ee0dce4badcab1e1d451d8773bf992aebfa0097e5db1fe5519c3573e3ed81fa5d3559440963b78e24bd3f491da8ac8f6a26545edbbdf20dfa85825910c0af5facb8d163bb7434b2aab69251c46f48afc32460dc4da29df60f7a74f16eedd09f15bef4f6a32fd02133c404b1cb61ca4c5ccdecd53ab6d0a3dc2c480f3a9d0f53fc2626904cd02a3bb865657a665ade7934070bbd0c8f045d733fe2496ebbcd9271fd3b1ff133d130a35b7e27d87ed35c8f2a8158d661bc54e15a801eadcc75589ce7a884086ece67504816b9aa034cfe55a580549f0c1ab7cb77e5d7df91ac92b238f16fb9f4139dd3e1ea51d0517752a2475ced44c4373a408010a1679cc460598c8f2b2e7bdbdf306a78a305871fb2df67b1d5ad32b4475955585d811da43ddbd06267d43e712776dcc40ec55a078d2a9e7046107321a6ac04a50996719d4755de67164e8eabf008d34ca9a1b222053c7123db71027648afd7df51e6b54e5791d6cd47e4112b05475ba4eefd0b6d11d263c66c8a4ebe813c9c569f53e33d11913799faf03752d83448edbdbdf5aba1910d4e130dfa9e0a170a9077f3a3ab5ce4f4cd301d6633d281e3808927aa03fea97e386fb7ca9c2a30a6f7864aee863524817ba499a9a1127dcf3fe0f19269f57a9e107c49025e17b8ff058d4d84e34c0f36bad43b485e465c7039a5ac646a3e8a7023c805ecc9a4dbadc3e079c88d64db061386adfb4d6b3ffbe07cad27a00d5ce16c73806cefbc60b3f7075d8f2767c691bccf024fba13b8b51e9e63d3131407c1b87ee8897124e5f873076996bb013b3e1299dc5e88316df8a52ce1c2d3777713db3823e75afa6e287f6768beade0b50388bfdc9f6970c9466a39df75f1ca102d5cbbe30ca4d92b2b08cf3f192eb504e11e88645a3ec873d1112e8020424eac245410a0ad77dc45de4ac8a4ea24469d41c525e1453acc64dface48d45c4a6920b7ac4f94cf0d12826eb2b611c4ff365871cf257d4863ed7d8c7fa536950e4113327e0d3ed3596d72988b7a8483f5cb22b5e53d5931f014236541f51b3dfb1925c08da468a3d40605bc81e0920d651db7369c9b742432b818c387626ba00c18689b7db1f9ce53f662c66393c5be949d9c1444f1fe16f91d7e0b98fc3c8a6717d51dc1256ef5b280fea78ecd93fb03b34dd2809874f6369c70e055c7eeba90f321fbb23aa6ce02e36ac20eb8f12841208a6aa8f4370837070853012f821f9c855ebfc335d36995b0c2b8594b43b44204abff7619cbcea676b984ee583b790bea6cf3628360c46e1dd22a381caba62ebf58a17a3774f0a1fe6c4877649787d6e588f257b8cee99dc4a2bff30c992f85349fe55baa142bbb61fdd02e67860618a58e2ddd3fd1cbaa685e3a57cc61763847048df48a9d93a3f416a263c25bbe558f60f896e0e582da1e538432caeda6c93a95b4bed389b1c8d0ac27e639252d70c3fd18688111908a248c4200ea4ac6d5cbf0706cbfee76e763e3476f368d07e803149edf189f639ea91ee039a951a73f9d50243fccae07045cd07a10fc724e0da294e3c66e27fe9d64559915bc1d344fa8141fe3cfc414a53d1c060801115b834c6ec204b2c6eff1b836930c491f07d99f5ccb74c4c3c00eb872e04202deadc09e304b94c1d05ae0806b6dfff023fef81aae0d058297f611b036630981f69fbe955fda35299d07248586b555dc13ad9dcf68151a378ccd1991310bee9bad83014e1d602ae134636cd7b702257d986dcda3f1bbd1a6a0a206a533dc729b086bde32c0cb1b5e197979202d9882579e628487bbeded6e711092ae623d1056b8f50d5c093333a7c21188ee036147dcaadd988f3d7a267e06c429e4492799d745955579fb4a399f6889e97b45bfc45a0da61887e582ec39ea23c90d0efc2f854eb12c10652c513a73d63d1ed2f3926057a593488f23c815d7d089c26f2d38652b785ea44ea95c09de6be9f03d3a1f66f9daffed964e2c769ae0d9534a26df0c22f147b5e711d9e46012281d6a95d8565b1153af7ded116b4ff848b677de93765960d790fee400c0b4232ebd5a918f167386b1c7dc63302a8a3dd1a76ee590a0431748a14d0940d6692d34026be63b78b92f0c4d7ae3d55e3e2109488896cdd03576c1985c7a8889e1a0e2efd385862a7b92091d49bbfbe4a14352e1a1cb35b2d22fdfc8297e4a0fe75fcd5de5d01c4b28bad15903d32ee2d08c7b44d2ae2efdde323a85e6982df240c37f419ada7d6f5288a3fff63bf67b3497aaf3baf3449c645408e58a416536bdf478274a2720ba7ef762052cde316ee06f11e9d2bfc820c5f1eeae055245732912418e21452665901c2f6b10964fbcc30df1d02835d8d925f5e52227aa21546a606c79a144e636dad95057507a726ae4ea94eee2829fc7eeb59e40030dfde29b5a66c3a6f1ccb9eacd303988a0360a5daeec65e334893a096ff8fd02c5cae3e3411dec4179bbc1afe15cb35ba93ca2db08d80f036833f9f628abbefe51800e766aaa1266dd921a8ad9776705cf555355fd979c33ab45e0eac072a8f7b3953c3d99fe7d2e3cf5b4cbd0eba423bdb3de089dbe57e3ea5060f1b3a4b84d3048fb24d2a75bc26e5a146b4170e8c34513e506874f9c2a60ea51f098af13559a73a2ed0f3ef3f8a621506a1ec27672bbc16309421c3646db2c5a9f7acc5d489d956b34a5c1fddabab7d624548fbd3d905e3c151d3537d7801532600007bd9f2dbd165f8ad31c6f1ac8105af4d00ab1ea7c6ed8d75f3811f253626d90c208b985fd93f9cbc8fa4547323159e38894ccbfa06de6b95844e48908f2af4296bcad2162e219fc8cdaf300e4ab44117d5a72f85af3653a3aca7bcda4a7f5eff6f39f95ce39275b43b2eb43225b9c259f65fa1b31e7925b8da4898ee3d719feb9ec17d855c0cef839ef69fd31109ae60468718dbc54fbea805798a63172ad71652cfac6fa7e1d3cc9e9e0a6512c38039c10cc2628166c0929d514a059f6ecf171083ddd058993a59d610aec1f01ff6ae303f7bccee923ffe980e5c4da26a79b986f97a2ec270d264a0ae9aca6ff6c728465f6560748b9c903b8d17fde443bd47b0c3644fc9d51919652bfd5121180c60186fc68d59e49a02d75266389aa2ef52656ff0dee7bc0ca2e07f8f6de09bc01d02ce4b087cdf425290ae341ddb7d635c7a5a6f96ecfe4f9896d2524913b841a48a5225945afe45e62d4a609808f58bc68a2b24883404399cdca87fd013a8f8d311c974e15d3e381c1a206e666f523a8cef598ba8f860b6b3de13c0ad06ef8dd01d976fb3e71282f0dd69ffe8bbe1ece09ea6c2a6b323824d5e1c99faccca4c3466509ec1fb671f29a295bb31e9f7664f3c6a275ad2e6bbcb0bc3beaeecfa70919a724226d3a4067befa259442536aedfea992f5720f94b60552fb7ca250e79c37b4d8cc979cedcf7d1d9f5b02bb78dd50b95189e2d6d21c296b591e871a107782a79743677a94d86505ba3360d1c4fa40bdfeb07dbfde98b3426125fcfb93c6d1dcbb98ff929ba396a8c60802c2fc56dd268f5e00ded57476dab4d5ec7f741d24a2e429d651de176c51bed10e38cfd5658a6745d50fcf0bc78c93beb7330ab94f77e5fbc1ac299d678745a066a7d3e2d666c1699f079b43f4010740593bbab036523eb4b0f98ffc2e77c5e19cb3ed5348e6c1adf09e8f9a3bad6373faf0922dd1c69326aecfb4b2c63702c6db9343ba7483f19650e6c103759c66b2d1ef6c99212bcfa8d15a066c36383af76c2572c8817d9e5fcc90e017f1cb37c72b5381cf6b1b98f69713b177743e32f33fdc246b85bb2c1daa03dc6310833aceadab0938e78521fb59416a4028f2c0515dca16f4e7adfcf5414d1043fd390823f71d91aae24ef4d98ed02ba65c13c2e5ca685ba83dea828272af2a715d63d82ece2585e45c4b416aebdb53dd7d1fe37d2c19a43d1a9cf38aaa847ef859795936878b31b9d0da9cc3ac53191094a8b90cfad8d8c0e6bbfe35c5067fa6079a81ae2f829e22c274f513c3caa3af3702e728e2c1e2e0c7db4bc71665620243ca03a185bec867584c300ded4495349aae79aab5f3c05d402d260f41d3a14267db1b57d6c08f851acfda0e14192303bdc07fd275b32e6ecdade0b4099504975a5ce6d7f9ceffebc690cb1ff3e80e82f1352f065e8d3d10ae906ffbb962626f179392298cfaa7664de2ff1deb57ca11a831ed86d8143ce5ac564945120729347bd093a845783a806ded80437ccae6908db3faf194fbe32a85e91b83ac33ca281a1aa20a60a9c0185fef2e2f034b23695b8804ea92f88669fce8e24860683d8de120cbd2636bdf175a6fd11e68a76298ec4b7ca46253012b8ca68736eb2ee1f31044f459588e420974bca973570269d632913f5a6d57411f3e0dd9c9caedd2e8a100c0c2461f0ec4f085d721da2780a3929bf56d5f2af07a7af5fcb3d6d9cbc08e7d8d7794f1dd8e761e6a678c34555e59ca022d0634b5c08171bdd1c0d4d048f4ca6dcee22d12a7259d1e27914108a2c785d76f74bce7a727bbcb93b6c26ffb5dc348bdbb2b0f2edbada6ac06745174526ec7ba85990350f2912be1f0a45bdfc6972ffbafaea9ddd254b44a7dc940441692beb014a6cb67f3252aa2bdb2fd20167c6116b8042016afd121f2004711e2f61ee58b8a20ccd005c9d5669217975b80dd700b1134418877d71302a17a0fee0702d42a98b576887d2116a86d38d54d4e30c14b475ac44a15740ee1b73e732df32226d953205e37af24be22831f8bea557e4695faf2f52bac8e28582cf4b764ed744cff798df148ecee3f6496aef1b868787f7873f4f974e2c7d2ec1f8e9d276e0d7e82f7f914cb134fd4223d54d1a7b667f203b139262df9af766b72489368c22fd625b297618f3a79c3106d4d3fd70a175ca2bedb75e65f691f2804ad7f8516ca94632d3b4063021b427aa8334931d7a07b80c95b7bfad5e2b04e3eb1f03bd4f788e9516df9aed9f83ea50bf1a52a19d8abe632d047129ca15cabcb565ab7d3a31f89493697a6f59f33e55f5e61b837062cc48e3f2751484abddd29b873cd81dae9b621d92028b1754004638c0649aaf9605bae203f66476ed233071062216de6c58fdb32327276af20d2663ece8df2b69730d6c369df97c4ca4942336b13f43ecf2a33d5de5baa59f8e517836efe7369dfa095fc2a730ddb99988bf04dbf2ff83883e9524116746263d5412df069cb56f16efa7599fb9a252f13e2e920781df6c7c8367d020ecfb15052b907172edde3fd7911e3b57cd094dcf50e406fd00aaab7fc26eddaefb982d9cfb8119ffdd25593bf1e4a5d94c4098e2d3f1bd5349487766530cabddec50d330209ad7e864c6f198591df228cebf2b4bdd9f729c0bfcffa167c12de6a7b0c220ac9c7815d67dbb1873b02a2e88d11657eded012bd9c984856b7cbad82a19b15c989fc436e918f26d48fd0a372a785d214d593ad06a5ef6d52134de72d6b869b7be97d39d3482892c8052177ae978a13a9767425c5fdd8ff5f564ae2d2864501a43944a8a74da6b6ae3c3f1bc555e57aacb6e5bae01a299a88ce09683911f042900c7da8b8541bf24d327042c4530af11ac7289428856cb1b5c9f6dab80cb49e2784f7c5ba4244138e4ea7828f6b5fd40c027e2217837cd6622d676e2a4edea8d511e352074dee0f467afad849b3f085faa890be7bed9b4aa01ae557c3b5975a64f673b9d62d2d759e707d3b133ae4248ee58eaf5e8b945e60982890fb498b34f94937d8d2405bbb03b9b64bc0d79a889cd2d07358208357e828aceab2fdb83ad2aff934e2c1250c30e786c515a8c95b78f036b358750185c31a15022e123a401352d4d8d90367e38b972b6692216e29eaeb0bbadf66d6848b541ef7623ded5c846c5b58793ba435d2c7b3e887c644064f238643e75d725e385f39e7560e1c14ea42f7d0a3a3cdbad13953971e21a3e1526c3d14ba8c98d9eae3db6d05164440bb39e7af6e8c7ed477f8c3866f0f63da0e270b20fde1ed04f98a8c8e36fa18bb35adc492ef87d989cbbe6b720031882e254703bf4dedaf942d46d425c7a80db7518de5bf419c39057af6f2415e174b35a0c7cc9c93ef0fa62a878b0118aa54968814b3b4bb1f4c918c72c0de35007f3f70873b686e2f653fd9d232e17b22f7dcc4b95652f94527f814a3c6d395e6c7503a504ac85e3d5a7511a480c11ebae80c399492197752dd4226f49da4d31d0a5d12fcd935fa2603415215918ffabe869c7da86de68e7fa6831447b17a08025ffcd7887802390b4a6ccc2d5394d26eee69475559d8d081d6dd0e4aa78dead51ef2908a6b2807234bd206c8352c8507e6665db2b7e6bf565f501ccdd60275b2370b138ac11e46a3bffb1e0154d939ae939a063a418a8f549625bcf22d0084d18ab0db50dd4fadc958e3bc70e036547147d3aeb35e4b0cbef2dd63f3a0dbdfb568ea62334039ff58fdf21a3d5abf581931717b4eed432a0526fec85d15663c20658c968802baaac8f0c53bf5ab1dca23a6eaf1e2e228416078eb9fe39fc906b059e70f661739b32f0a2cbad1f4c8799e06e38609bc7f472c500a2cd35b1454117ec58d7e61a427c04e1518b5981bb06917dbb0ca2585eb0c9eff05e427a5095e08645b1f9b6c33b95b00478e032ab754b5013bcb29bac9dff3e1cd45f67254eec28157c2862a72a1b0571e11573e01b99bd6d920b0f6c2c4e94f55dae31b04653c7e7739d23038a698032bdd54dce88d99edf7062b83f9d8bc16778ca7bb4615d1756d48095ab480ef18d9e6ae4c068a62f61013f9a0decf99a793bad664867471a2ac773dd9cfebfcbe3375f84f519db11fb683e41f9d07dce0d651d9f9c86ab497a6ef8c871776731c16d3afd9e10d11e6f74c20d462d5b5b473253f1f8cf02fe849082f1aaf04a9a51aa5e28b2f39e358b4dacab789331c55a40ac246cb486861d7131b0feb0f986ad7805c1facf50063112823b192e4b4e4ba470395f90c3df84767a3231e59b0b8a9e8b4dbc766b2f25d0bf2cfa1c537672a991ebb7edfd68dde2bd5ae92a67a8485d07b05ce24a8aad90dc1d6ead9685dfcb4ea2b4b202148708fb0dc7a865ee52858542830202a52da89ca148dd44bb1ed1c8e55b1fd929385da41d81b386d2399a105ea41f1f9a8b20dfeda009a72678a03f9dad3cced12c83eb094e10820e177377f46a04eaf6b9289544aaa06a47ad11cb60cdc22e9f7bd18558410011735bfb6e1bb88fa9e2d20fbfbee8b719eb9bd49de08ea280af34ede1bdfcaa8075a45a6bd46dc16d2619faabba8eb7bb230a5c1735107d1bcd26854cc7ca95c174069a50e538f9289234197852edeb9b0fdfc59d8288bbc81424aae0e0184795481e4d0436f32e7e3306be534a57c34b23775fa5f36ef3d169284a22ffab3d140585adf517fe027caa52f192120f090e19c18c80aa6a40925f0875623aa8a5e3d08895ed538432175ce0c501fdaa2fcc8e238311868583b37d244bd7d17ec13d80b76dc55a195d684826e6e858ae02114674f4a2dc9691a4e469b6beb595ce201630e6326748aa5820030c535c8334671e1f224fe6141da409fc979f776b2572c3d12ece23429193f84a344d12c321e283250ed18551691d8449265c42a99b2cd23d9bc39e7dade7392edd40f65e0dd9319fc8d4eba655d81e2064682e36a6ca5f6bc7d557a51584dd3602e1c6b8266c4af85bd54867492fb7308daf6fe1cdff10d5bf3f322b3edb4ef3213d949175091ec0ea6c6f7a9029eaf16c951b8dbf50dedeb2951177f9f732f176680bb8aba369be7f6b57d5ffcd8c824983e34eb77e1fb29a1504cf6011b53fb616ec7ab1ef5fa7087b37d15fb9894d19543c41df2a8b5abde0f0e616b56e2424da6aea77de4cef3005046e9f8531935e73d835c048b77fd1ea40071a001998aefd76ac7b9f723cd14b3256463bc558a5a46cf24a524dd9d85e4bb2797d064a0a340b63c137a3dfdd5ca9a232151aa8e376f52f329ba27f5f14e2bffcf1157a4c7668ab041484b8d4c6d75f0554cb855098b19ab4d06bf6ad448ede8a649aa005c087936ce142d6f93f9ec2c36e0c665528e234b8ee6a8fff415733c3215fc13a71790c416cd1832958adb575151485f8d4045f269b286fc106b66c68d070f9c9186ecd863722e0b6329c1c08db2af2468883cc6afd29548e8a14bc7625e25baf3b325e229de1ccffafe6e85a72fa3cefc383f0be93c45b06cef29a8608990b947aa572502c1aab3230426d6fa758d698ede1bee6a2c542ccef3d9e9046652627e8468f91508fa6399066d546141d4419b8e75169c6708fb2c17d9f72f73bfb9aaa05c10a1aaa9c018c3bdab8821f3436c7f77f5fafba4f7f4b0afd5aaec7e4b3f5a9f1a9572d621d3fe44721743afdbf3249bac5f5be01c651d3161350013dde444337e0e0f243da597765171d7cba858b79fb8f51a8edbc646605e10bee99c6f015ab228c8f2b899b2d98ce77098dd8bd9f9b09406b981d8ccc8b5fe1264ea0fe4b328d2e109cb0934dc5621efc50dd782d994420f72d18c447760239bf07508ef0960d25e2d6e62d669d61e4f0da95281a8ac023e49f1bc5872b9d641695cd8d877e598df7d15778deacb128c1da729a1fe6e950ea3447fb6a953f2a8128dfb14ec457435efdc32d90bb3927395315376c76dc01a5203602328b0fbbb9739e8ff770327946b0dd6406341fb66a9f5169a90e98821d45fc0e11e6f18924a1e562013bace4060a6da74ad5d5d04f4c7639b440bd520ee722e97dcdf5d7e29f56ce09581300471f06ee732e8e5ca1c1cdd9d712dd7a56b2a3bf9ef4363681f8587eafac98f1630c52d4aedca9ce384fb564de519d05e667fdd7fad783497aa455c2d016a7066a440746c4d2854196cec652cdd8e4e28f7fbf373a38c4ecdfbbe1d44bfd1cb689ddae2d22771f978575972cf8b54340e5e7dc499521a18c3ea246ba3e4a2c91829fb9ec8bcfe23c8ebfe4a0e5de174060c03d425c94a84a027089f4fc85d3a8db43e3d28601209fc46440bf7c6567e9535376d4e93f323eacb157f45b7b286ed83f81de84e7c2716975b4bdf0624e985c6319540b8e798f50d2fa531ec5bc43bf6c8a65a2916eed3908bd10ac0f9f80c8ce785a924d6ce71e24531953b524a0cde33f42d397a0e359bd21192381b6b0671d15c352aa269d3f00ad735fa87ea4b31d80d509e2e364d5427d17eb85c0c1a82616fbfe2cfb5bb1afe9cf89a0226f5a7d89687cb8aae774744d6b79bb41f0a3760dba62c39d5013a7e5f3f16bc9db879c229c71ec7e551536a28e05c4a563126c839e8d1f93e3b740e02301741458064246518f4d4f5c0a57c6c4b7fce2eeb12c80794730949952f5519ab56ecebfb7d83978402626920fe6fa79846d51326b73e3263caa50798ed864f91bf9413582f0e64a79c8e25d8a3fc9e9d69d314f2f2f125f306c0ba77d3d9415f9f40467613d38c38700bc234f15bb8092cd412ece82ea992d282683fbdfd00b717abe656d79f3acf64b412673e1966286ff6d9bb179c583c51562848dcef6b79a60c4bd31cf20aadf52cd020736c6c8463f1fa23b79284e9ab78cbb520eb6aed9b5a417c9bef2689d5ab077ec3ecbc07635fdfdeec291c47fcc37db9001630a3737ffc8a9d9deee2ab9786c9c3c62633234378821adb9413071734cf84e6dc1206359d7a74e1bf3d4edee6ba7f3d8ec7a2a341f89ad7d9a3721c279e5ae47730d533cf398965516b3788612090f23d0603f933358cc974b1478290a6c7f4856d129de255b0c64bf82d16b8dd6dc01bf0c1bfab3935f87516a0eba87681dd29ff2122d76cce04d2eb81aabe9bc2647539dfe82f6c10293fa073447329ee0df0c16b685ec801d2d890279ed225e7b2cde79f4b2411eee4e91e873f2ded717c09890bc96e4e3300b414229f76f78ed81054cf09922f515d15d976e1e21bf55bd78d2fb03d8fed6a6678fad023a08e281a76bcc775b68a53e60e5248dd68ad409897ee7f4fc3c83516c1ff970e032bc9c186847a3e7a94da064f655613e1cb5340158329827d47688b501ce4f4189d0289cbd9ecc538983d2b02e3d24b73fe8457e9dbc6e592050c7dcc91332af4c815019fe6b2238ccc3612af4feaffec373f844403eef4783528bdc40fee0cf5e63a6b31303b92f86c427f51fcd51be935bc5100f842909dbc2ce7c68d0402bed5b73391c3c4e5765714b899353e7e3a8a934fd5192cf3602560dfaeb8b45fbe298fb081d852e83bdbf01d6ff386fdf48ad499b75836fd7af7de695b864841ba6d3ce311559a9cbd648bfe333849bde1e7326644f6c70ea734a621e23cea10fa8ac7e0244cb98d888372135bf3591725b0147010057cd953df67324d5e2d27ff248f123bd5bc368b5dcfdf1e313d619a233ea3bad39e247788ca65c5226f758542a2b53c8736218f973544ee90c45cfae9797872b358b3d213563b3eec2df0f84ad3f4cc127e070f476b7623c5fdb3b2736adaa9cee747aeacf4d22fe1e794d7d46926662ddc266d6dfa5bd2eadb154d08f0ea95ee4fa430a0ddb13a99b4ee920309d85fe93d5beb5167a5ed1cd4f66d00e2c51e17c50d017c007cfb8acd6729a4b21adf7d47ea156b584ce8018093af67610cd5dad75d5e916d231a81fb556e6acd6f3f95c7a0a17b298de791d38c66c6aedcef4898c5f624e1695c4a35fb68bf93df829974a12a4e44a2d654204307b5b9f04145a62dfa082120049cc482b09269710de81d41d73700b20d138fc60d1b8acf50898e7af05aa732eecd9bf03977e7b737b145ee313da38ba0a49b081b5c6d090822bff0a242652938f0d69b2455387397a0a31cb1469ad8af0ea4154ecacfdf294ada8cb20edcf0efa9c626df4b9ec751adaa99fe26c4f1a209670ae7ee526c89a78b875c294e03b1f8407972486c7093896c6004cd9eb90cdc1573a3d5a7bf401c61f53a06b5f4bbc61792f234b1a68a51b74948041bf86c4fd86c3c021388ed9097e2f6c1fb610ea097bc8c32a6b966de69f1cb2afedf185e20423059d0cf420384c2501ace3f971c54ea381228621ec847be9d55d73904213132ee18d9e22acdcc91a598711145c4056a665286cf5e1f7d0d4a5f318a8360317021efd8925f153e1cfee130302202c01f72cfdf07bbf40abff2fe1ca41d07aa7059f2527f0b9c2b7bc9c6b6f750cdbb1ad286cd54fc3efec61f674077cf8890d0d10c3ba48f8c81c8fdec5d2ef55ecd71c65733db5efbcdccb824b56ee257ffc973acb1d7eb45c7591620542a524727b08da2731600db80ad51525494199d795e641ec794cc9dfd7fece0668817b8d96338e4ad857328f2d2e7be28495eb829b3b80a409c51bddc337aad291a286cc66bdf6b778c28e43672c02a00dbe29fa38284bdfe5edd81609f11173a2bfa573654d6625f22f71925ba1fc3805fc8bb863fd8abb9f9866660391e6bc2791581c7140d9c952a39dbd07ab6101ad00a272f4601531380be6a7b8d526a8e81c27fd0c5ee0c1d1fca314802677a4ceaec5d17c3ad1e200ef2a8f9775d0c5208136838f616cccc493eb53f34d498c36f0412af44b87a3acdc53df351f255b749fcbef0f75ab85dfeac60506991d658e3e66c36faa636fda4423e506f25a63f088af40fb9f1fea0a0fb595310c8260c4f230b0c99e2263f222724be8b2d9704be28ec9573dbb32cd6f36cf385c5617bc4d2cf3fbbc8b7681501ce6e02408456bc64e6d3d8aab696a28bbbd4934dd982e272d6aeeeae5099cac1fb87d121c30139d4c243deba7b40feabf80d14e148ac867ac29d116b911b220c8bdabd81ff587d41352e2941611decc4bd077eba96ed428fe56c80624c631c9cc8cd60ab51688b375cb4da6929bff53b24c5a1d7e2422ee1016ba8a7393ffd7d513ef0b557dbc90fb65a22abacc7123a36f3ba6d6df7f353b241c43361928272dcbd455f1b3b3a114aa1810cb4c6750403122bd6a1b599de63ae3414f15f3a1182957fce758c55277907bfad11525f0cba2d3fa769f1c4f23e90f43fa8c593ffea1026eec65da9120ce6f10d561498afac2b3963b67915c17f4c8d5a158d153a585bdcb9f1d32f9cf6164f63db8e41589be813547104eb7e895611abf2f2674a4d58338131ad0f54498e2e466892f4c3d002a497ccc6e2ae9def7a8ca4826753c9568fe7560881e81a7a285f8f9b546c02500012c9f284eb0f75396141c2ae2e501c13de2b467febc8be47a92aafb98067c8d42825da4d397dbba829f1a6defc722a20de07b33184f64f2dfc1d7e36cf419c15e3a3af2a612cd730766a3cbb2b391e51c8459441228ca898b5255dc3f095439629ba1acbeb062c92932ac522a7bb6374fc740a7b3b53f531c22cd43bf1d63f29ab2c5eea668a0f6adc4ecf495969a17df70eb7f4afaa5b8bd7993238312ca890d508dfce3ffb9790da81009b9081d159db812822328fd76ef824786cf6079217d898a78b0c5b99d90bd37342acc1031da1e666a9ba882ee17b894020d9b69b995130ec74268faa981d24955c71cbbd8f1d2291c96627ae3a4002a77332d13785015ee6a55d8724df05642fc7eeacd49f3a755855851cb7c8f2bc0179bb25a97b662df6da96875baa0e82ba3d47f34245d2a0ed297b24577d860f7eb8eb7f8c742eb80bdfd83a36f912b2d4793ac2878b864cdd755ad972e2fed29348de7385b81e219bc6fa8a56e88ab1dbb9f1291f23333215d85e9cd5119a34e9aaf975e5f16fabf4a3be39c6746b8a9b68a4de0757cfb76545588eeeec9c10f1775530a96a9e77cb51fc3eca576b5998191f973692646ce5570e5229b463da6fdc3605d9041d1bda83e33dcc7da17493e66b67ee6130c95aa2c9001d2f568c7ae93288f1a93c47d6e4c4cfcdc69f6d8bb04b7a751e179f2d6b7a49009c609b27a0d90213dbba063c1910ebdad8e4ee6941c0719cc6b9f0cff37d435b311a5e1946f17e582d709a9ac023ca63f18da2639642eb58cb7c0f30342a9a5d5f3bb37169fa7ce7c904cc1feaa9ce3db88a6e1b4c27557fc5c34df0389d7a6126317ff72217280dee4acdc7f364289fb5b39f94ba0a6baa54dec8c152121029a90ebc93ebe55cfd1f1f4ad19f75d40a4700fa2007b47221a1c3bd24d185b2425bec8b29ae286869db16d4b4950d84157bbb03d9b408f18be0a6c55a4f9f96ce87ca8144dbc10258b3530388625153bd585f02d3178534e0d80400c0efaa45c3d1551e2402dbe6f0c87a86b07d01fa2575af29acc668fd57dce1761c89f2ea7b4cf579eb99361a5d2cfeb980cc5a0e343ca8474cf80d9feaa6ea9f35ff394f96e902704472db3fada27233ad682549ea6126ef31cc67a4140575fc6dcaae660a24eac4bd012b61f2badd68e88d4be1b19318f221d03483b560f8ad847d4eeb09271e86ccc9e8fdb156940a9dff275ec9457560ebf005275d006f619d281040ba8cc72e72f3a7fc60cddd7bfdf3ca61b0a43acebf0a440d67009b9a6a1c228d32dc786aa62c91454b78edd78565e38835a4b75cb7fe0c1c644139153587b76676222c9b1a9f6067114efa38e716cdab80298e88d8d47523d190a83a8dc25969c1315b302f2a9620c9830ff647869382a6d76a579fe78eb4a4f362965c53b63aee1e7965681667fe069d5f38ba8885fc879f0f83110062b1d2b0c41a59896e98ce1ff995c31a16f1be017829fbfc9e39388a672a550cb33f4ec2c847f9250c2f43fd5dd26c5f29bbbb8e561cf68852ca1da291d00eaea33d40e82b24db6cbef0c4fa62efbb49fd8f492399e92e38a5be8694aec1695ee49580cc3bfaa30c5208ceabce6dd4a95bd7fe18cdaea5b3087e61d220d894d8683040cc1e1ecfede2188b0b6d4bd5cb4caca643971601fea19d81e6b12d4d0b11c9a0c8b3927284c05ecab40645bc26afebea1c0e364ff8675ef834c0bb4dfe32b9a7840a2a76fea065cab5ca9abc0c70ac9d81619aab26d33dc1ec64151996013b409daa603a10438556bcd7e244a21e9b7c06782c2d9a6ec7d731fa7dfd335e544d9b5bad56c8030d50ee9d2426fc2c5b266bfa8f0ade1c560de4c165ea4e784a99306ec8c15cdb083f17befd8ced65769485714ef2274764f4254714380d188198b932ac24c87ce45583df598ab210525f1053a33f84e772c32b06cba9c1bdf956e8cd3cb9539f6de9a105df17abe070a00b60ad3d04263202f639579eb7e2fa7c7d8806d0d799cd357e6ed36fe665106c9f6c116e6170b9348169dd3ad97f72665d81c35554a357d3ee67beffb9b7dfa5994ea96ee2786220036efdc03c47a63fa84d61d532d71915ec65b42b16bb6e1f9d4eb19c93d606a79df3dcde751100aa0101f3c8568acffdc1c18a089b48a382277f937400873ffe6e07fd45dc1fdcd068939692b22661aba0f31afc00efaec8a718a0e52002fc2c9c68575700c954e763835e8c7beba07e124f5e2865f87442510a1c956df954d80ac3fe6037bd1573da92c0d3f93f9a7c9e5f447e325d8a8d41a8b9e49e74dce1b984c1076fca9755e6c8855f3326ab5cc40d8cb848e7581847bed16645109f64128c8572a2f3a913a18b732456178651df288b6b515ce267c4267b40efbdb56f65d8c0ee94fe6c46bf463bcf16df60231b9065c18be1d292835d74ee626859ffd8e2cb8ef136b7038fcbc51a1a6ba6894329ac13534c5da2e11ffc6ec85ae6b7c8968979bc7d06cb97eb0014cd2d3ac3b98a462a5f7e6d6c5002ad1c132185a6abd82497453b8970f5287a8ba57c94184b98a0e8188c0e4b04125fcf188f529063db9ad673c57d5a345093da2df2d3d350c08238a60e995e9a5036932dc34db6de2d19802f3dd7581c8cad8ad79d49e53dac84ac9fdfa91d301860e3b0b9d474c733bdc0061403c02f38afc5b58aa804081e44f227b6d1675e7da3b653172d4b9e100406b569f832c53300603e85946efb895e0e27e3c38335fee7c397cbeea6b584ab756f7a1fc04ea0664d1926bd123e9f4861c8cd34362e3089a04f8620353af27fbc6c50e5fdbb7809705c12ba4554dc3f526bcc0176823a550d0e3b4b2786bff8db627b8416cc4e487b0b776675b003cfdfbb014bb9e2e1989c4560de429a8e20042224eddc799548dcadd5531ec77dc4ba2389a5cca1c5e1eb617468ddfc6aa792d1205241959a3b4292a7429227c14707b3db4075d7415e736b1fff910aa50c56f2fbc5ba5d134b8cf523c23693083daff36a1076da9dd8fb02c50b7944cc4319c7aadb97590f6981c69e01a7394893e7ef9b9d395975431f578747d9ba17f50aaccbdfa46654de13e7f99b59f3728d7d87fd8ebf90760f5aebe1aafee35d762c0a9f4e52070bca315fb68ee142fa19371f899e456b70fbc955a97a037b1f836b0dfc9cf1ea88ce21fdc38aef807ece93adb358d1611b7016e3028e37d484b114e800b6af1f58d047f04d2c8f78f71be200548b6c9653a921a9cff979d65ec485f0081b4ab2b6592f851734bbabc5f33b535c64598f93abdda0662a13a562f2df45b0e4202de9cefae66387504c5ed256a9b30376e52daf5d9fa962973faae78e66d187486af32e47b6f63fe1bdfbc764a2f5906221eb8aad2cccd2d2ee60b208005e43629b07d569633285392e7dd2c3f17ae37f1e8d050b9798fc7a35c06ede8d6e0f82898bdfec6dca7f9b997f19f8e827a39c396f55e16988c43eb6a8cf1d4d6abe2dc463d3a0df8fb68f66288a2f3e18ea92e3e414308837e036f30e7e02c320522205672728947327b8cc4d4d11489dac9a2d0644419b64de96b5f4505506cc7779b35238b6de585e6bc825d62f64efde5d92e37130a26a2ceeea8e56914382974ff40ca44bfaf7cf912ab003aa71cce93337f6270fb68b29a6fc3946ebf1900ade4ec295ef0747c04eb7b4578c56143470026b8f75fbdaf3055e5be9f65353644cd1abc8c9829e19e940b630266aa51e0bcbdc82e62206f36f65f904e2ea5da01d0b3e89868ea06af24b4931c6082a2e31122989d6024c5184a7e87b2492210ddd90086e9aa937bf61ef573622167267df363da80c6a75e8df0aeffc217b76aa251d0dfc9fcddd4b7d56aa18bf39602b3eb935474dc6357d78e3557e15b4d1915e7edb2aa28c0167038c421098c7c5da7cac16b4857e9b5aa0e98f50daae0c03f43683628fc7740645a3bdc6090f12cc915e1b774ba718567b8429c290ac663bcd9c8ae596410062bcb5a4f02b88bdb213651cd7577e7af293c464d530f5cf79185921137632fdcb681ca7a4c10e54af0c41ef146a9ea4ecb4a68f9854c4346e412495393e50866f9d0e73ba32d98a06d3febd640ac82bd69a0d2ecdaa6723b264d6719b4dc7ef1692bab9144c123bdf909fd03e57078509bacef6859b5e683c0d763d2d393910e4fda58f20f7c9549a8f431d12e382c2768921ddb9bdc7c7386654d4f89440654cb8bbcad07d21ff888f1b704a0018097b0872556181ac80b8772757b62f30ab68b5c18d5e6426fd6b9cfa9782ac08e9733b0b1801d9c17c443a026395b3681b8ef15bdbac9fa85b9aee6d30537bd67e8b9966d04ece3f699d1030eaa1aae705e569bcee9a1f1342940960cc3e308a755f265f7b6869db44246f8271297ce8211c2e8b6af625936da8b8e349360ea8716d3b2816699bf45a3d66df577d05816a086a40115a4052a668c98348c8702dd813a02e1b7c766fb944bfd630305d9e50f714f7f0e361a6cbf73df2b58a611e70abe683c8c9c786c07a6b64523b123143683a2764577c861163b3fc3fdaf87480fe268db04042a5731ef121c6e815675ba94285c9c67afb8f1009fceb55823871cf0b1dfed9b905284b03383cb12340f7bb7eecefc17b6830be057cec5703a8bfea19910ddba0589a3af4c12512c14ea0ee443dfc412b64f8973ca5434ae2fa791d177966e1fab2bd015c7a83bd8cf8cbe293af9034dddfc175e3f76dcebef970d4d21af359504509f87b6c69f233a3cdf594af9fa14eaee1898e4bdaec0e96e8e81a1ee4f624600c9e7c0b68bc05eba44227a4b54174aefdbb2150ae989ac7ee026b49b8ec94bd7bb9a6819ed4a682542802145a545568eed86b1e15806e374d5b73dc971d0fb7b0acc7e7e0c1f7f84926222d8d918d6180da88016c4a4ab6d726727e13f2e461d6290e6a2cb0edd3147a0072dcd5c40c86f32eba97997099d10f20231f30b41e860351aa372abe22c94cc3859901d35a0b5963351ac5d24780201785f9d3dd19392a44583738762c34d1ce43dc0cb76463daf40e864221c0a2d69cd250e6543b57cf1bc371b47718c40b1a083420cb16d0612af0486c0321e64ed090a92659cf58442055abb9fe1ef630b473d5a9032a315ba5530853205b7ff2fd925f42600d2c2c87bccf758d74060c469ea8e937df662194a7977d77c668f88f21c0a3ba01d716aad3e83a0f4575ceff31a075339cb6801a9109a034e65b7e1781904c18ffab489ed9bbcfe137ffaec6bfc313ea6c3ee38a51b568a0aad6156499531dd628cb990c0366b33cac4719b5cc025be1384248138fc074564ebaa6a0dc8248613bfc1f761a9aab481d2845aec94de1e2bc98f6eae51434752261e842e42f1ad15081877479f057cb4f673570e39b746336a77e234a1760dedde041a509904bac122aa1eed89261389603480cca615c35043d85d0cbc63658f91a74d4e0c07e9b9a6eab79c56f59257f11dd3c41d95a612bf8c5ee322cbcd0a40d7624205dbc6f848b57b8587ae6c053f01894a32b3bc3e2dff1f46d3c3473ce4e1cbcb918b7dc789d904f37d5db38e9321b9a8669f03790bed680ed9e12426e87f95f1d6de360df15239e13296c69f09f4c6051e49357fea12f2483a0c11641b078ff2b3f816d3d971dad72389e5174346d9d5c0f7de5e757e3f66c9e080db8671287207cc183103f2d3742a853d2b5fc5cc0481ce49abfc2a4eb3d2e1e7b909b9ffaa6751a60513f8acc1769ac284376dc05556500f12158e13dfa75ac405cfa76710cdc3124ca29ff84248dc6d6e296c3d8cbd31e1d255568a6edd8fcf4559f6a651d043b9e713a9bd620f2d253d34f62f381edae01a97b7c300fed89ac5d40d65d437e0bde991c347a5647075d13e709ed0bd1db6bb7f196da09e5cead56ea18a08391d399591600cdc5713bbabe1641dfcf173637672bce425894252ce0311086f67733360b20c4018537fda90387336490dc2632f0d0f9344b0997b48ea4293c0ff06f3702ae63278bef38e7ae47d328b6459db4760f8c15398c1b662399423aec2f82dfe4b24fee16020a17bfab45f92f81b3792a423091039e7971d19eafbf36c9e5564c06dcaf1693ec9b0a5db998e973abab992aa79f6bb0a9362eb4ed5bd59da67ea156242751ff9ad4c99affda3baf6dca9825e62f52c6eacfd395d6b539ab795ae3578fb36f6a87ee223e3b77e7e87f481be7da62aa582704eea647de40e1e7a95672ae51c9aa48d7100b17a0e42c5f3295632f6eff9c7c93e09167db70ba813dc7fdf0b2087667a17171283e3e19d0f99a90a12cf2751c7ccf8570acead166a48663cc4c31ee3ba15cc2efc76f106d75cd3aa959e77f3d7a08aa22b3be9201863ef030e7422c41b7f95252c57c5cf85846b54b6514ba42959b9382e5709851a9a7e6c3da038f180056d905df65e345a6c160966bbf35a0bf7bb2c0243c707241a34246981275cd4c6f95acc416dbb6c488b39dbeac37ac146119c34f34f58e938ff88dd0920f6e4fd297e461bdf187cb2422dc7baa9017e55f5b3fe0baf0a4f13a4220193c793e7af7beb8367587f16c902aad138cb2fc79348cc9a88f19c0d0b778ffce874ba2dd42be27f447564db32005714ee5dc91cd54238e5f3a9d762115ccadd19498e6f4d020be3fdf2ea4061c6e96bd80a703d47cda054f2fa2fd1ead270b08ee18aa368bc766c59ef073f5a8b0dad674a977f12e1ec0a29d666be3b3783a79baea730e019ca772a7ac02b452bdba4498c95ea21ad707c12cca0a457e5f1cfed09bdce00ab88651e82c95d7877efd823bcf65790ad12362cf2471591b86759b8cf888331f6b7ecd445bd0e7615659a4a040319c48c3213fee2e893b06ed9096614ae2208ba70dbb908be7ad894c013f53f1452f2e56547d2da9bd1707b6789c03123799600c470398116cd82f44e0c0487134a9f55362c812514b47b14c3d589b4dd9cfe7334784805d911d6414cd142b13ab79747e27bd8f61467c07bfedfa15522c5e3f4d9d9babac735f3b715b819587e3b0be68f5aa44dc0cca2edc480b2ac7646c06686a2e6c7255c577652bee60032b63c8a32321617576c766cc952524d758deb1c04efd7200b8336336fdd9d939d9bdd87bec969ee3c5a0f9505d7c1ce523525f7ccdea014592bd6baa8366ce8b9b7bdb4483567175b6b972febb94a0bf8d6fc031a284da0b4f6fecfec6852112717bdbb1d9a41723fe32d6e3e78ed2b7705ac7d3308797352ade40705ef089219bcc280ed7e802a837eacd407ed227a1c183f99a7e2d5e9d105bb85f5bb1a6ea9344490c78c826b542faf2aa28ab51086ad85173eb9946e1995c90323782c52fbf2c4ae47d5d64056db58b40ba50187fd4c51e7e61e031cd132f88dd631211782c7f2a82bc91af7d9c8ed8b341659f72142e2bc3f3464974080f123388fbb82e5f2c3965452a2cd5d4b25a925711cb11d222d04f078a1a3b16afa91d05c22090b7c10bb4099ff7c71c57ef04e7612ff8bfcc752bfe231ba6fc0aa0a5cb13f193ccc94e904cc8834a270d8e00c9631e2fce3baaff4fa3d1f9b4e13b4535934fac87ba30578c9bea1c00e76b5e682117e579130c6cb0ef87f456c2d347c096e37331108635feb71a18fd6e2869e544fe4de1ec3199cf4155b1ffed19dadb57a6026cad2fef7b235ce48507978c2ee0f14aefdb6b4b93bb78fde9f5e3ee831648fd453d5e6490e83a9fc2fca83d2099811949280c5cf7fe889ed51c283d99cedfdf0d81c2c38ac638dea50460b486103f50b16a4d6e85639877ee5a1b33ff7f2a0cecc529bb206c9071fcb7ebf3eb4ea0c06f15db35a27a4a36515480564d1fde142b65b875ed12c6ca871cc9dd14f148fe00bd23da1ca268cd544f99d66a6add7af15d116e409bd78207405013d84c05544ed861056933d3a39f308ae363fc8b6fa2996e4915f7e892736649c596c5704c561ad755724ee9ccde4d612c072a0c9e53c93fca6b53084d39b079d7c1fbd4188a07ce6753f8d1bae6cc507c0351199ba72d1b136412f31fdcf55469ca4c9948a6ae99fbbef07a4f46d7d5e5ed5bb5300775aaf2d2ef9a4731a6f439cca1264401c791dec3112b8e7c655f8323f4a4765e8cc527a8d80e7098e74fa00ca04e2a0c3ee901506a465ecd89d8759902dacd5c2d39e331960cda73391dfcb0b6781d01f7043741a9119216dd5a5471183a59129d5ba67933c2b82df349b8132c43882d5f041805c5d3572db4d51773b6f6b86267abeb951d36532456176f2c1708629407d8b4f67a789c573d516011875017dc03882f4ed6c10aa9b3fc36f3bbf04f515101e9a659893cc64bda6e6c9de83ad74a51ad47f0c361ffe4aaecf51aa41360ecf93ad25b10f184da10614e6557eda5607cb76cc054a236e3dfd4ac02ad52b28846c2de0c3db94f3f9668671c58d3841fa3953df09c6b099dcb6f38b242ec850b5defcaf831121eae88703331dc25ccb4ba4ad3b97a62d821341d6e35eae699ef3a4b4db86fffcef178b0f3aed4c63e3b8415f6d4be0800f4447c316d300be90cd3aeee1941899c40381860c51723fee12d75c4c73a1963943fb446f8f379962446dbb49819626dfed6c140f70c555d8e4c3c3b527274b9dfe20c642b23e0bd1f09df254b95813f03813c45d14588e813494e6321b91bd9e293522209bcfb80834b76f5a4b33907d83b22e759e152d205c3d860503f3d058cd8c419a6ba5b7de91e79ca1c4115a3427df8e5d89bef4de393c3018a0c213ee7b786e136aeedf6a4902ad3fe19c2ec0637513ff34f1be1d6b8cf323452b349274007d2406a8cc8d2e6e63473f2f59f24da94d4aa9c5e37a99aa609fac1d935354f8434607a1c856a1c6f90d061ab7b33486dd8c5f836965f543a68bb9efbe3e27cd95a01b361cd9505165e24b71a1875ea19dae902715c13ee125261a98bde3299fe321e034bccdc3afdeedec824149358d1f86f0fee9cc8d343605a853a8354f537c7e52477c5257cc5e26d36b4ff43aeefe2ae4129bdb38d0a8490d752b9529c38debbffd043500d2d47e6d957e2a11f7e4dad39ff30ab1b53eb38fdec5595c30aa7cea75bae3d9ab7054e1aefca7b10b7367173f7cae68ee015d0cd8e6836cc15229abee6b67a3283cbbacccc796a9c88b4ea4a0fb0e5b8c1704dea8d6faa5bf2afb4a76d3caa594e85f6c5b9adb869546e0c9f1aa9f386d4eafc0e5fe66b616ca78446d86b00fe49f5147a495093d214c05cbe6177fb23f886d0c6f49299c52b41d558591a3cb414edd44391a3c7efbfb50c047e13ef8a63c50a895fd28a72be501a4708dc1faccbd6f6bf2a745c62696d19a8f1df3c6145f71175e5d8496d7be975b4515cdfbf3788e6062b10f68abcc7c328d9f4c22e31130a2ae1efa6f6c617a41d8a2dbc4fa2f2493a4ef9b4b8c667845b56409ab4b993c0ef490103fe0557bc0b7a412a05849f474d015e90740137feaa7ed38137da797526595e2d994098a59246cc6a8b9d355a5fc872f1de79d08c3364a5ba8dd853c70dbe57bbde72b1c181d9cd8e96e8048fc8f8f23e0e46df1c20ad09645c772f69c6ec285d2f266aed8833ac38394075bc7a43c109ec087d05f876827956212c3e5aecd1433cc7a19f646198df9def08e24c18ff4eddce72b6669321934dde207d889c9c12fba8198fc918f941156608570cecd033473a057ab57102d4952c47f857abacc1525f9068762f8e5de587a5e4be832f35599cb4e9747430fe26e0dd3d137d37e75b37393ef9b060c7e731eea3f94a3374362c64b9f3b30c23d75db5fbb5a9ca4475da13a50649e4968d3b305fd7ecfb67eb8d46d6f410068bd56f2ce8deb5147d170014536c9e2b8185e5a1c9e5777abf803731569cf2dcbd28634d615688b7c4791e4253bc72ce6ab9979978a861275c52f437b24077e0e039f48adaf77d6c0152b9fbf198a665560c1dd980893a0981a1fe1d4563fa97d1ffcf19463632c86446812160b5a17e007d47a9c0211112ded573d03642458adfb725224b1a216025053bf9cc7eef4635de0447de8ebd677293eae0efbe25de6614a204df0a4a5ff53c5b7bed30d13e3922ab280a85b08d8b5c8e769afc6d05ddcdf8d3021b29e61403f397c4111bd74d7958cd0f03e1822ed9642d11718ad738a9c37b749bf298eb24dec1abd7bd6e65d8c1fc447cc1691fb4972aa93718ebe64ad538a6eb193bd4e4b6b221a5efca5689c3cda7c1a73ee0f96e498c5d69698e60070c1c46b069c115e775893d1940d11d222e56f72535c0d0882b3e01213c27d4671ac7d4f58b63788a33d70883ed44b249ef9e406c5f47aa358054635879246833138d572dd590c1f02f5e88e17733dd38b3a71bc41cc20b3054a6034aa7fdf8665dce03b3813e6c45e86ee0dcc91a68cd6a6e24eaaccd8f996dcd2ab06da501eaefb00d1b7c109a609c2d2e9bb4ee70ae44ca97c2eeac88f62bd22f9c7d1d4d1db7ba79b8b561274cddddb28bd2339fd5d997b91646176b33e0d30247f11167b204b7c30a38b1f68a68576b8bf3264fa10db98e32a46b5b114c936decf04099e65ac0a5391b5b84d2653eaede11eb170dc4f1e3af70793d515e87df54688338774291b5ce6cbf246260b12a0b70884ccf7648d3157a9b6699c0c645e42183bad7cdfcf7f3514c15cfc28aa3f8f682f8f1ff7f7081b6f67b2fa260d2c270e8e815fd89aa2e24ddd9e7c88739c0b23145ddac4a1b75abb6e024aaf9ca2558adaa1867407989ce4125179a3e926a31c101b4304d36b187044ef824d170674ef5c89ff861337a68e4280f2f4e9e269ecf023baf9cb3cba6de96b7ad71bb2b33dbc96166f9e12a08a347bf3897ee72d07d67e99ec9120247235650102067c97374e602de0e7fe6077db19b488437ec55c6e27a915e19dad956410b57d0ec58a3b592a36a7fc4f0c4a795bdb4235bd8a78f7b27f6dbc7916dac8e53461cc4aa86bc890bbe16257b00e9475d65bcb336b8de4e0bb1369055db44a61cdd6775cee1b75e9642dfe66b97d687232c6913217925de823123480cd5bf6768f505158474970567e73b40b60fcf1304955f4e392d3b3980c0fbe6d8fa9ad2117eff436d88635f2e15091e94a1cf770613a0cc7867d1a05d3a6714b570a76eac3dcf998bd40fcbb44396042a16646a958ea5834cf3ae5acdb386402e402bc0fb8c5c448c39e9cff784752c63da057dff66f5819c6a36919f69266b157eb949a6ddd57b23132a9ec45b300f3cc1a7e6f310b1213c6cc7a6e8f74a6d00bc6873e94c049c160a61963930c2dda1ca8188372a65b2792e5da4b3b0566b85d991d0ec1bcf568e23eb39b563d4ad0529d44c8115680ec514cb70bf53358a2ab32a77c2acaffdbe3dca75d044ba87d6f39819189130579f0599c0fe63e9df572fde79f6d5fb605803f1f1a28a9f0bad5ff150b9666b0581161a40fcb461ae9f2029a250768fb2d75633d8eb1869b4814a749d6bd93f93d32c97b286d67425de5762af754db6a494e4b809b558dae9921f3ade6e391257b5b03786c61bb7afee72fcd98d1a133d8eb712b10d304b2c3032c87afeb9fa120a031afd7f5563131ea32c09863f360d92dc71b68b9f65035af4695cbdcdc1908cf4b2ae51ca5296893616f40075efae8ffd5b1cb2dd2bc50e2bf0af2e106eacd87714d1c48bc86fa014e8249cde7512eccda7911208466cff7cc02fcdcb56a29991ff73d7584cad300992add392ff90c87385e8e278b8e997ed566372387a3af97c3caf33cdb4c7dab7094c8b91a3460c7aad1a7aa3078d292d510a3d0fbb7be3ebc820df7345492b48b0f3d313ccb9b94efbd67be3d577f75fb54056084cec1e1d1e1417729f08d825b5bb2d6969c68271412eed5f828992ea6833d1df1b79e772ee17e9168b7cdc1010bb00ddf08789b3c5f08a1d149e3d0c676cd9703180990d3df7f1ae116a305eebb054c7110f8b19df39c207eadee7338d6849a934d62a377e98fadeba22cd3f5bef8a62210f90e313959a106f7c50ee32306425d7937a2c65c54a6cb0a14e8ea77646102b0ee17a76ef912324d8b165206c394283c4002724392acce59a177c9358778f712bd47043560c423f2b89fbac5e30ace17be5a0549bcfab6f21f01cf6a8665802eba64b354a6a75ef074ca6ffbeda8e9f9b5e7a9abfad138101bf7eb57787c5bbaf6267ae0e3ef74dd29eb131c85696913a19c8d79f4d2277794e3dca7a26348fc352de2430e2db3fa4306931617f35aaec8e2e1004590b266377a3773d119f5c22d58a696b51ff555da64ae7864f29d65c42563620e5e2f9beb715e7fddc44f85363c8af5857fa66934dfb391516d1da4c8c034856d1b6572ac87dc9a97136e1e7d4eb89391c8278fc7dd270a72acfad2bd91abebfa4b8cddfb4f69726e47d77732a0f57bc660ebe1dac8f0731995f41d70fb03ac4b86b4ae02e2375449a5974ffb8e67bf7d765ea390a5b068e0a16a581e3c54c6719aca73937b4dbc6f7671b06fe53bce019e5371b7b74f71aa580c52710cfee7be789423cdb965f0acd40d96231c850157e5488c4071f8a4a7785a06b3363c916cce3c808cbcbaef9ed4b2e0452c73df6d3fc6f17de3ca35a2f535fff292a329dfff5e442a64dc36f839d4091197fda5cc36cbfc7ff706ccf33a8af7b3cbd542240c24d06c09a3f5a13905ef465bbc122017cf3a0ccfde575d1907d77f605a91233724ac5f1c95bad3049972fe714b9721c6a36618dcde8b998eec680c3c0bcb2c30e328644c4b0e2344ade78e73cbbaa1017f305ef2dd5b8f2790b625e6ff02f9e2466035a1424869eb3d38d6e16a157a4b125c41a6d59dd563d5937b2632c214a4175eccee700320784e64d34d46d78c676d22443e5dcbd09947eb79ca8cc85baa8ca86b36d050b199574c3664612ba9e420033cf2920a2c6374f9d85a875cd3bd574dfc807fc166d667fb316b19cffbacf95cfab24ca2163d1bf47f847539a72a5ce83de1398706c77ac5d5e0091155ab5388bc8dbfbd89cb52880ee17fb14696a58e03be4aa2a741a64b56ea8555b8b30aaf846a63082e7ecfceeb2d6df1a6c2af0c72e52ffe525ca220098b3b0624b42587248590141989eea3f888e5a7c0cd2bc18718f6d65c6379cf881d491fd17448b5a037a70cdb774bedbee1f635e5e917dd9e1d606f93220823528625697d9965fcead74123715129e00493f6b3376a78ae94d39c2209645e270773ee4c994a75be97814054a264e9146764bb64ced0f56c5230ad22afaed120a654c45f2dcd74c0fcd833979d2fe4e568f92ac3688bb75fbb1109ae5179d17b8e7b22c6fbcf61abd0ff5194b27f5ca3831b31834bdb777c6a7983edcc4412e2519445bc6e134123d48df7bf8dc56c2f5a8494c2ab47f1c888ded0369a4582486a555bcdcbdcf56d1693a66f0a32c4ec2d2eee0bd424be7adea61772cb011cd3db90fe9ce0dc1cb4c92e4d6383c7a34529e21f14b29e6dd0ce7f951808639b2b9c921a9f6f834ba73ab6bde3afb68636c3c74cf1710026360cf2b23a10a9d0f8885cffb84c0a255203d29ab70cb828f67b3005c947011d82163b1c269aada2e222f8d5c2adc6fcb12dd3cecce4198cd70928d9430c21f540cec0838c2d8ed9fece23470802953ffdf56b0f859e5fc9d99ce208d518402ad9cf8cd8dde4384ed6bb47a2ea619d11356de1722944a54f192949da25497eb7d31b517c99054c2325f414f01067560371e7978f1daa05efedc489746d1107d6d6d6454db866893ff1f0a42afdd4382621c53e8ffd8b24cd234d9ae5178a9a1975986cb8940d9ff11debf8ed628024056c5d86be56eb07a017edc31ae5e8ee55c03a69b4b9a70e6e1132f5a1033fac9a1a4a64a13ad3917affb1f95e48a4627bde57aaae75da77444f2b51400063320d3b37f02b10eaf9831d118bc49cd872267d1a1ec0ca335f296ea4bd70109b2ff146c0e9b3bafd1b76f5853b75f29b2702ca96fabcdad6ec5f74eebc038cacdff3938672e1f437ed055d22c9c4f01dfa0cdb49dbddda5d21ecb67722e0a39a2294ed4dd0219b2f6663589169f785dda29d428c48445309aa8a6bc7e45dc3d78f4d3074770b46a75272316302ba5c90b4eacba43ed803ffd26bc2599d7c17694510740b9037eb5756150184b92f07bf42780e0e4615b2a12be8a505e7a45ade3e4ff28e4576694778e51344a2222698fe8e215a828f784835b4c159ed67489d31265b197e4b4f69606c809864d8f4501eb05231c7835a90efe30e689cf4d9ddf5303e451691f6159eb7b333868864ad4aa93f859ef37dbd91b1b23659173774d7c02e09f286193c0c031a7f0cbccc359b598f59573b13b2645c721a6cc8b67ba9c276af2bbc238c31d6fe61bbadc620cd3119a91617c46d1caa2f1ff49d45db699b3b68cbc75b969a4726ffc403cada9ce048fb18d37228173867a208d8c106399209fbfbc768b739a33096ef92f1e8e2eb13c9e89432b4ce4a2f164d061e776b077ab91789f8d7e7dd2a24e9dd0625a488ca818a69968b5a479af280d88c235064b1bb5a71dbfbae5a096cb03d79bb871b16db92c01ee16f79ee6a37d544f3ceb2b0042c882489961cf0e962c9e857f9f96ca7af0a310775d3fbe9e4ba1168da450ed42c4c2230d4c0bb831c6d265d6cfda473d4ff0bdec5aa8c8ca60ffc26f68e3928b3adef2ab09384691041b2901520d2a96b97bbf6deebb4ff5f1db8d7b0dc1176d859bdc0667f4052071a2782f55ff9dad1080e5fcfb9116d501368988fdbb4a333be6101fcf04cfa1c078c1db44d416f0eb971e850d2e561e77e7bed3d8a6ddaa423905b1897d3e2e75ad56d96762146d19c2edd869548940bfeae53dd9009066d5d3cdeaa73db699c4168b6d45050366bdc0ad5ef4b5f3f77cae07b772ed32576adde7a9b65ad752012f1f956805670cd87e2d77617c16fcaa255ff1ceb2ab5b2ab82a9a8dd709233f943abc70e643604b445deae7e1d9b7c2902a2f804048d7e461530a6c2d2518d0c4b643754dc33d0d8fec93c16ebbb4a220c2f5b87ac7a0c38be0242863f51ff99782a296db44d1d9d8a6190bc93c5cda5360c995ca6b7be140804215628bbb658de2d1b3936901aea737cade771a9961096c27207225deefa8326980ad4be67e558a28a88ff3c28059a7ef5db2b3962b3b84e1b053319bbbfead6673ce207065102ea7a20fd382f04c6c1bbdd273a01125f675faaac9fd5d124f63674df836d890987a1d91b8532ae5d0d7e93195cc9cf619ff20756a460e951fe8c34d8237685df04f783129505ebba9a18f46ba2cc04f78b82908c5e45485b498ee7d001dce65478edc43c3dbd8fba45b3761350ff989b9fd69722b47fa3a5648096c8d4bde8a2dc38897e909270cba81e8d97a8a3b2e6ee2f2f775b2998cd610e517b17659b7e6bc2936f0d330d8e32dd6d2ca82ff53160315f1adbb114cc380c428cc2ae252e0a0f3049dcce2d477adbc834673b6b3e75d7c36d66029ede5f58172d204060c28fde49902def8bfd7aa93a552b2a69f2245a40b86a87265a990238ca0d508f631ea467865fbdac63123b16a4143e2ae87e55de1e20a2818a6ea399b2a2c338690688f92df5ae6f0632fa69f77406f8180f91335c345d7af912a1409a436ac80488fb7350d1c8e4710431e54661b97877e87192d204b1c4dc87643f6b4f43496a6a6c8ad28ef8c012ef53b0793989a34b9aacdd1b13e8f2c28c87a9696147709ab30f7ad96dbd8cd926036c5655fb3a4600f900469e62a0ee6aab85c8de65942e3d2d9c6f48c8cb708ae8ee73b21341c42721cb17ff1a4dfaac44fe952679a10d4da873b75f018c04434fa595ab67242ac43dfdee7a2f308973af6bb14c26314cf66b580c6ddbe3f16b63752690037604af48a0810aa1171ffa201469ec5704ee36eb6a2b7ce7f567bbf5c72fb29c6303d8da6177a5dc00a78faee6b6751b5e0af1b4e6bc8e5b39aca79136ef7dc9c4f799f2e9d1ea5cb9233a9986514692604e72f9f08cef00cf29cd81f57e0dbc8e401730ac8337c4f5053ac0872758defc9918f8934c9191513aa9003cb297e31f39fb71d97049a2c0aea29305f8dcb9267ab98b846c2f09229ce86d0c1e97c909a5d6c41c588e74a21ca51b5be7e030f39cd1f22e2a781eacac78303b1b731d5b64e232bbaad7aae58f82f231e782d2e7599b17ec26b3c3eace861c51a9440e452d25fad6f15fd03316bff28bab2f24d63e6bbe2d408b3a7698aca006cd45d427f0a79ac117ae223e90784bc21900ade2b4551d4235a371a0d20198dcd3e35cfb72bbcbfd164dec836a9729db23093a1220b62ac0aca3dc413a9df4b37aa330aa9ff6b0edaebbafd9cdaf905d3d4fe45d44be9c89bf033a77c6f624af0966f2f90406abcc51433642033dc30f19155fcb2f010dce93e133417410da421181e02830744d055cf4fb7dc07a7495555ee21787fb5efadd913e9fa7b589793d05f56842dacf4f0dc52e9cbd819cd57e65ec913070319741380a148bd064b11541504bb9e2424605207b2c5b89cef9dc77a57ab92b3c3186ef6cec79a32f6efafc73fcc0d741f2692faab311be0fd6cde8f2554b39765e8955d70b7cf62db82e300b09f5c277c09846df52f048fd33fb72f6d649923ae176345361cabde15025ecf32d7a38302c2bd876b0915cdd70ac0b5648d2fb4d1d3750607b5fcb38df2748c460c6c7a342b55a45d7d37bbd6db83f0356e580356fbee1fc49050ae13c9b130a87b0a2389b2dd0c741dda4a636eaf1dafdcc65d5588e1698268753e03c05d1d38fd575089f25fa0cdebb512ce3bc9c6f4231a19f0cfa31c506a71aba68c11dc195360c8cf3702c52f5af577fc5868685bf909f6ad98214e5f7ab3245b4c156ef68947342fbdaee87cb2154a38a5c60c59ce555080e38ad03c592ecc0cfd6205ad091516d701204cd5365f4fe58f17baaa74a8694aad9cf20a456d3575da16947e52c24d262b587e90f53bba7b0c27b24ef7deb5ad8ab8394ff2de19795e1b627023615445cef0377f72b8e7591865e1e89adac810b3afe4f0dca0612b79f39a17cc037a58e2861a8fabca4d896a0c7f76ca77f255a36cc0284b7b3a97e59684505c32656155abbbcf85c88a99067b44cc6bb9c2bfc80a448851a968fe9271d6a6d911612a7cc2be477a3f574a18a5ec381f2c7ec136682d453619bcd31df4e3e05cfa58d4a6aaf8863414615b72803eb685a2c3f401527faedb23102927393a8ddd76a10fda9474a0c3ce9adea1276d847ba8f5c90c5f9b531c9a5a210216ebaab7a8bdea1e13417668bebc15f0533e67adbeec75270da0d8a165e82ab30c2bc4a8693da856ce7e5d72d59778e04b732325f37f929ca1d390e0d991ab1d653ecff1f8d71cde3e85286eac7579a3f2c662053727f2e517ea60bf8e66a54f97a26f33cb8818d067f2bd5e13eca7d318c1623567cbfc5008aacd3cb61221d5c529fdd58f6779e5014153106df97ea9e8daf3a15e8aa2fd597a61a881a945e31d401fd532b54b0661a5b3d46ed9962430c4180fce3fd333f6ef7243d3115265291576c12b3af51d1f5dbe6dadc2485ff8d2cad16f8b8fadbdc0dbeb6ff02ca20780d7e0b742f82464828b45027ccf4a130023b06f2de9ed96728451fcf639cc4d0c7a67c9fa45425fd37e333cd09b0ccd4453b6e06f50295b1c76e5ec97b3fdb2edaaba70e5d2a4529f4065aa380847c8ef78f18a93e6e7a08e722ca3485e5be139a984ed3f62ae2328a8249a8773a8acbdfdfaa93914fa2186bb96da8d5ddec906c17d89304c69c48814c523cd731e8ee89df83a70fa1c3a21fff9288ffb42ee48a41827a99fa7e20e56e1896b2a0759dcab7843504e36bf28871215f467bd86ebed1cdbdec4131fcb0b70ca5de9d2e8cfbc7978c7d4c5f07bf0618b0e3c4494b68cd8ab1575d6382a9d5774fec36954c8016f2f8a1c8af2a93af210245f7a5d3c805172b512b9338cb33486fd97e7753b3866e30947af7d297fb9b9bdc247cb000473f7a1913b9b1f0e5cdbfd8679e4e8ff4ccb0b8aeab2c96f3be1fca0ec69e730db0b01fd23335069482c34b6271c3e231aa42e257d67ce2c88ad50c7feb3842a1dd48c873ce861f9d25f582f4aae8f9679cad80e2a9cca5d8b70659e4370d4425bd5fca4b4c1e2af4f622492e958d6ef8c1033553916af5e87300d655d098e0ce74d566e01c96a9a934e6e61898ac6df12c5b58151b9f64a0c5ebe8cecc1320ccb84704a4dd2c4b7b95e0c87fb3ef5f17a574d1a29f64ea1fa28e09cfeaf145435995d1f5f7f6d7bff00b32f3717f524e77f1620ab2a90a41614c5a89fe46e59a88ff580dc66149d4dbd311e01ef09e2dbaebc3b06ecd593892c95ceb0cda79be28a1cea9bca1fa9c8ebf1e3650802c4d05a66f2d15ad473a8f54335db4360de9b0fdf9f291d58acd639e8032a276cffab515872997f30e8c13886ac4664c1378c0c96193c30225ea8444eee7c16fba4fa741d810f2e032a67b8cf12b7820bb746a570a766f29d9255b983fc02f8bbd85ed3071f52599ab30568022a1e151b8a368c3b1b9d35bf088d22042a86b2578b6deec92435040043301121bd71b5469f61c2fa4e5e49a91a833052209e51fe1c64b6cf765c4c307f27aaaedca8634cb912239e29519002152ae3ddfcf7daac5a31a843ce7ba9703efed55ac9c162b27d70a8a51c53895c0c7fc2134a7e75921d69e5a86755ef8d94a23708cacdc786629d096d378a59737db68cfcc53f45dabe97a17bc9ba997e885273ae8c5ca05939bc9036363f42e8028ff5951cd9e17dee1f34933538c09bb4cd1110725a9f31a8542afe1c9f639c10664c784b66bce97028e6590c6be35e7ac6c038051b1d21c6fa0cf2f8fa6c608bf73518449d20f338cc209870fd26289d99b8e740162455be750c3264a14fc4d806d2f7e132193aeab1ebf16a3fb94ec0e5fffbd81321760ff3d994a9b7393e75290f8ba52b2ef105b42713211889c4b76a15934c847ea2aa52ad6cfdbb6e22a6038cddd31f88370f12335e8af61b38fcf7a2b29c200d4c129b290d88746dcf70d845c14528a66af12f9448aaeabd383daa2e870f30b9ddb07ac057f885c33d0cc9ed7bc20bec552df63be3bbaffa7d780c08de7ea0a33c961fb77781d12befddcb5938d734820bc1f3695288a945c8c9c1810564c13990b39d3a4594ac216bddad8c357686ed56a476a80781bdc9cffc4cffaeed088d003998eb515858f2da31dacbdbd3083429296e4800775be987e128c811825f1dc8336a6b24508c94cf32f16479eb55ab4f65ca4335a126a16255051da30876f8f1a0f7ce5e33cdcd47792e88c59a81c248c2ca0557c572de909d35d08ca0145e1c6896549c147a79c60597cb8b70cf138b5559f7a5b2c497b1e21856fd4758985d33fe009effc7d46760b8c258d7875ba35f93a3c2724662479a3eb7c6e1ae9d3d14aa23f6d687faa1fdeca99a133d3e01bb1e58e444bea537e9cd008a8555c038b848fe195cd3ea800221220253d794b8ba0766bfbe813cc78c910afc7d77ad508e79f7931a630e2238cc4cbf05321a3102d27deb398716376d5a9485be38281e9f5ff4e0e8fe28f1f8f6efc9a262a736726eea22d17ede3fdb1c5caef0e95c9bf6ffba9358ef4ba16e39015aabfbd1790547e66c85d66465e23fcd78d13d5be52e6a65673dc8fdc341d45b6a2ba3b814602e71402bf79597642bb0b49f66ebb53472b361a98ca5890a5bd3c7364da6d7c7beb3fd9869d8c5aa94a1e4617045b75fa8a10e97add5cc9dc76c404234e32835ce8334c6c0c1ea22a6c7e5284faed1819af0c29706f96ceb2bedb6865b37a025bd7395e0352af4150c16bf7b82e238fcb92cea1e2ea3cf4eb26b3fb535b2cad5afa149ce7bbccaa275bfd342649ecf394035640870bc619aa83963c15071bc084e68985d420e55405fb7f6d1cd4d14a7ba584629937bf805bb6755d6e56f124443fc4b2e520bf045a638ed85df8de15593b8f6cdeef9b7ee440622fef4e847fbc379e9e5efe7ec8f9f4722c7c23bba945a856cdb049a6a797df1004321f92fcacd59553ff6a81a4e32516609a39a7e213c6cd7ecbb73c097aa3b02c11668330d4c4c70f17ad3d366e8d82c9f711b51cf4da0599eb31f95a5efb1dc60041e1ea4c40e544bca202677673feea0ab43edc65fe9c64acc34d4f45c19adef6620328412537d1a75629188190f7fc258b3c2b608b5e5aad60d25dfdbfab1e55258fbcb8fa9ff0546970e88845dd5c6c925b0b212fadc01e2ed34b2af41b71765f39527cd47da6c417c250deb38c0564997888b5109b48280914766a9c94a681646f446f74e88f3ec60b3d5bd7f5912bf97db9fd1658fe7abbabfcdd6486168aa87aec061f24f006385ef4065550b858faf2b7e25796bf73bf9c3df49a6ab33db3d05a2c901f6a8f47e92ba2ce8cb074853f1bf0f35f44d36528c1ea96b75c83a9739536d4af674c408512189af62342c2597334c35f9768c19cd9c1dd88ce8c485e3775c84fe43424b4a8dc1bbe26d415bd18ee7414676ca25ebcd845396ea379839fb19a18dc814988ab5baa60d55ee291329faefa14bb6817202fcbbb007c5249f991e14f9b483b505772290bedc0147b480b655feed724b9b764eb7be86adae8ac0cfcdabad4a2481e5da89d0298030369e0f4a17916baf0ecc1570d3de5ee967562e98fb81c3cdc052ecc6f629ce35c84f84e814c693a0918ab26266fff1c966233f6d8017f9ff27dc4d01cd950556496b9fa09bef9abcd0d31b737ab6c5d82813b56feab19b6ecdb4b8c0913afe8bd6bdadda85a9d857304db527c55f4d27b330386d87455a1b0148534e8756df20c140814cef2f55641f1e91cb537c1fb2dcabde77dfb803ae12f7688bf91760f52155b46c41401c4d456f49ce5f24b0c2bd1ca96b4eadf71d22f99d9fb475b85c8907fbc98a0f4aa7195cc49da06f9543d8979fdba6cefeaf3d3300afeb5864e30bc580f663757d0aa7006d1e2b8c9e7cd212e0a22f8d35fc00c5d1d8277ea6ba41416afa5bea1a9da0f14329f0cc342562002857f18dea41eae8120b91e6f0b0b1609efad7a65a7428a0bac351ae49eb79e207c8cbaaf0a85735b08ea28d114209bd711ee199838e5e15b32034bcf2c0b8d1abb2d90c6dd2f215ebabef4c534b1ac37449e31051d13a624a8b6625bc76c18b7aa341940955286f9e54c6b05ef60ad61133046321e3678757c46f1d11d20a2ad018c903d5e3a689b6fd8c147dbacf01073f3f31fff3a0206b3613e6cea307a69dc22cfc569ba5a20d924ed5189d1ae8330fd0108811bf36d850bc68098ca13044a24c5eebd060c7b65b1e0df0f6f41d4307b2efd78bbc915d4ec176a1c9dbc5a51aa40ed60ca1a703d50f01438e195e7e357b8fa05fb3f495f5dadfa5878bd68bea8f347578c4cbc4664467d6d41e30abf5a36ebbc87c197a5bb91895c2486ab3bf8ea24e87f18c3feea0bfd5facc3f52050154180f2ca14c9bd03ec0924c41421812ad661a8793d5291b90004660c2ceaff5549c99202d49a8d73db263343bdbe3ab241f1226140adc1eabc7db943ff3005a3adc174d0ff83bd61e0c4087a2c22edd323f2d7a56ec55e97e7bf925aa3b67d763515ccd9dca58c6882779bca749dd4f74fc9e6bf9ba7b53478ffc26003c9292668066447072c138c468e0ac66ccff4f282692cc20cfd01835af6b9cd4e59d520542719756d0d7c7350e55ed9aee40928209fc6eff32f3d23547475da8663a4924909218b761cc8961007be4d6e5cb18e40d5df8661341ff1024fe4eaeefc16e1bfce43aa665071c4efe9dfde8d697dca3e09ceaee6a1a030143473df95777847c69ab9b2f1ef0d0e6f92f6dceb2d58777d5a7bb1c80affd15270f784a1844c87b7992ca3cc2442ae1a92ae20ab4acb9b625b82f6cb0f47b9c7c5e65619be30f578e6ce8a82da8b1de8ed0a4e376724031fe79556ec7e9dbfb97088e99d74aee9217aa4e3c46d09f6434e97b278bb399fbb247d97090a8e1e0c5c7bcd72d3448841a8e5c594f48b4553c9d7bc6ed4bad12db761e058a9afb4cf9c12a8dd7154c9df61f1c22369fdcd2211e5744f67321a4098b2199a7002f88f95561192e8e36131d18ee1e2d2dc5765daa40e14c7239758fbbcca60c6ff161fdfda5fb681516b4d8eedeae09426cf6ed1dbe7dd791400f366a526a683352388969e13d96c696979fb73cd2f13f60aa548299eb382cebc42dd4e8dfd2ced4f866445a567a2751a3743f510f94f5ad58e0d03bbcf02b87bfa6bc77de20ba1637ad8a427ce8e4824be01d85592a4b14258485f1ba3b27e9b35087073ef8b5bf730bf72d61f86b778c200cad5292a387700f1d00466ec3cacbe3c0c16e577bed5fe7bedae1ad1a76b1450d8cf536a6305ae53ae26934617aa3b9140640a539ae9b078fbb2bea13f14b1bac5e40ce987fc2d6bed89857c9d67325bc0bc721a3966a6780a4e3d689dec2e9aa5255b8e81340c3723cc5378b32672db61fb63fe5890d9fd08d8ff310210c40f00492e435415b8117f5626a67d52b7de04abd48b4bd71e4213e008d71f9b75a825488cc2984365aaab19e84929f98bb3dfb83c2ffa1e373da8bc72590d35d52fd59f943ae0f89aab55b8b35d326f2d8171dcc90f7840a3b9f03d63c1119b8ed1dc9574f54fcdb544d3b2281cfba0ffd37d835a72b4cf70caaded47682b6f836c6ba3337f11ace8178a2e636bbc8bf119e6a58bd10f4411851823c3c575e91f4f1d2f349eee4da3cfcb97e179589e0a9ab3f97c35d324187096470b8e74b58706aba5e9939e220e5eac671bc7eabd94c90deab10ddaefe03b727dbb7d18754d6ef46742ac17f97d18bf09433b6b73f874214423a86d6a9c823f9a4df8a229f89621a075fd61f35424113d45260edc98c88a472a572644abf8d14d2985998d1b67440036936f19947c417024fd4628b997fccc2c930fcb977e7b4bbf1d32b15223b0dfc9fc06127e3c300b0dcc9780a603936e759cf7e49aeb0150e499848fb4a4f151ffd9fa42b32afede7a70c89d4cefa3878b78a74878baae9f7b76760f2c0aa0dc18d07d118a58c7acf2b1cd3f4f31b97c0357432eab23a845804918a86df053aa67714f4c897042cb9ab42ab719ec1d5fb679b56e56609c5158055fb30f427cda6a1e6bd5658ef1e6c5bb779a823a125fd20c19a8045b424830181fde091ac724b3794444d2e4dc1c95bef8f15e380d4e39cca65dceff1999e4dfdde0007c438fed634512ca306c4208d6378eb1ce4ed494495c6b807f9a1f25d934e8ec02b64c4ca2f970a82bbfe608e26c4d988519a8912f07a01a7e54417b0cabed056496c7bc38acd1c1bc71e0ebab3aad4a76ff95bbdb161d8c910d9ae5da82ce586caae1c85ded19b4487ac3e53c3fc591f2de40d3db34321d8681517f52c2789c80690b8e4266725c1c8d208297d291a759ddffa7a8da23c11e48a89386d394f42a1c935910dae04a93070a4d2f19b675708da413d64352899ee3ff3111baf052fa55eba3ccdfeabbf04e7a951d418748df35fb59937e7072e69091fc0613ee2b93c49c6a70e4517e6a3dd8859552feea1bfc38cf62690a1c63f17485679adeefd48317d809bba8e82b03fb3135740260dec6ffc591ef624bc9ec69d8f36d4868a75754092ec3a2b2501a73fa42e536c8296e4aaa1686d349d29c965bac5a56b3b28a0996dcee78087294c0d755a0f941874b35453a928b4914f7f427fd5612b5941e97c0998c0de843100ec1d926b7f5c2d41bd7cb625a9a11d5c121d5555251f1972c4a21be4bf78ed7863477ad9b23a1b722186e8d37a20d70d313f6919900d57fd1cfa3208da894c4e02520faf97e226a230570b9e30834dd799e0fef925595c737376152253c2300d2a599365df638bc3b8e14208ce193547a636abbe98207cce3306025876b184c08db93a8ec4bd5f37847a4c0bc00d2a8f117b7e8928b37646c06a0ace2c128efeefa9e316cf580e67c434d8b46a03822281965796d025067e375c85e4fcd45a59a5c80bb7c67feffd838ca02fc802c3618c15f60def79087dd7037b9d34f1ee000601ca03c656edefc76e4adbcda965f2fee03846840a20dd84136830d7866d9e18360d228b05e61b53f06adcce08e33abea341e9b535559f9d767021f04d3ada9e7468388818265924fa3162d472ad063dbbdbe902d665dd1ec23edc5b337019c1f4986097f612780e298a7c05f611db871d67995b3fd3e9dbdba848b966b3d1f3e7e317945ce40d38c4892ede4a055cd25450a3fd0934799eea637c5e79066917ea521c8978f837cf14761fea0faada2e2c19954bca7d748c08b7a1cdf0fc07fc624934e9f64a49fc3204c72a0e41e23157f98398e55e16dd94023a3b83383a8240de509a80a668d46cc7dc9767581b27605d8ab134736de551dfbd3db2894591d01dcc86e3720520a6e2163ce04a476d300c7a31ff102b314da56c02fee3460e1ac0ae69ae592b389377044bc7495488eb537da3bb44c4f5c6507a3e1d3862f90bfe6c6e5e9e077b32a7d2317ef26604765b5275eb54627baba55636c2b42c15e1664afb56dfbd8f4fe1dfb6d0d7750fa18734b5c6665937e1c96fe2ef9531ea53bd4e9e4529dd4a5e77f4f7bb5ce7c2501259306a9b7f913f249269b7160e729f5ef370e67096c596dbad3670158b3cb9c94170d6779a99ce4f946485285a5384d4c55f479de442bbf013a8bbdba61dbd703a4667f31f07ca30e20fc4c0f5394c1024a2c69937f8f4e73b300ff595b8ec87bbc10a9330e3574506c5c56d23a4b87236e92231220ce453d0072a308471ed0ae731c6eb15933b59a5b06f3fb5648c3bcedffa4f6fad8cb8451f25fa26bca9eb6bac7f90fe92d83a73a5ffbcb9ad115f92fab18f05983a48c53188e6ba53ade63754f1897581f3b3523f1beac64765f252859a8528a145aa33862fa01027451d5cb170f912ddd69c212f141cbbbdb8fc31a17979bb4988d3fc7cc8d66447809e395484213b5b697a50261788564a13aa75f02aeac311b6049df0ab57b7ac9eaba4967a10db1ec1fc9dbfc5a323122e745256a981528f31e4b71edd172578aab30557abcd9efdd62d89dd433caa19361c6803666406603cbdef37c1b5f4282bd5bd57a9aa1e8e5d246fd6451d6e01d46e78274be3f0bbc65382e15cd47a8ef49f5b5b9acaffa8d470427d2d5a505bce494a0dd0e4dc68a9a75da67143ebceea962bf03d4cffd1079ce4d29d74e2a8915e1c02ea2059ae4fb2507029bfd09626182253497884b04f30e0a6dfb57576a7ec88064ff4e52a2bfbcd3041482edef6b048b35ea0966e6b985c034db99a45542c3bbb5a024b4d78f5faef15a1a462c2dad6e0a493c8e3da726c7bdd51a1a97ca787626f373cb2997a034ecb3e0ccc26d5ec031b7c607838d3014c327e1e9bb88ebb2e38b8b4a9fb9548d3e94a492c5e95aae6a48544ad976661d6392f7800d4fa3ff88cc56c290113a6dc32f08c1d248ccdc3a2d001453755e627acd5a9fc172a5f25a3a64ddd894a1ddaae11a212b2f99c9af3b885851e6316d16451e4272e077e8cfd14183afef21926f5fe5dee78055b072578a09a2bc52e996091eb858363e61537f76ba9476cd231a2cd615404afce402ae0bdae67b2afb6ed7959411cdda090bf8a5b7e59ec034abfcf9426a2edc145252b52bd6fb0177aecb86744fd906847d8517cab2e2ee2902cb5bd317d9b0626bf926be3739d6c396d6d914251000cb7a3eee91cdf359c0775dac94cd0758f2f96bbc70c29de0fdbb676c3fb4015e945611af625437f7932b2b0fee539fd49b1cba3115fe2dce42a81e38dd299a94d91f96862e174aa4de292d3bdb8b51caeb5c860e3df7a459e233b0e50f4d60a832f8a24982f045eda166e66432d71dd0dceacac0f750114b18d2e924dee1181129a406d184cb431d03bcce244cf30eb97b6c925656cc9b6f4f6a30c6c9fbb5cb3eb1b4faab9b06a562844f57f1ed68107cd8c18cd0d0dc3f6128b6c6df8a9afa873925ab90038ba6bcf3830a69ff26a847fcdc742d93ca73c60eade2435ac9481e730ba767e4a2d1fe280c6746cadaedced2271b6c8bbfb94e583deec9e87a521f366e3622709c2356fce1c03e351a3ac0ec9f3e8825534a52a978ad5f4535972fbacc91266d7b43922e34ef84deeb36deee5e364ae1853be8a60d60f5904729f1797bf782f508abff8d986dcebeb682354af6d55b6e9411d128b01a6423cc988fed6ccdf99f994cbe37bcce4c93e363fca737a1c49e74d4c5ec80f1c64f4f23ada3cee5716c359f408c785989bb4bc2619f6b6d214fc8ba25fdfb35ee6db80c29cd02bff77ccdb32d31fb435d739ebf9bcb96117c66a5900983dd5be7548073230cdeae3f6f5faaaa30bea9052ea99f5b45c41d604efada14969b674e656296cc0d46a79b8a62b5efd8fdb05cfdc8cf8a154056b65568f653b13ba57482f27991b83324c41779988aa8a5d65b1aca02fedf7357d9b951e05a6c700bae32e610347e5bc44461699e557b0432f3d2d8f9bc5fb480f9964762e711aa9d3c7eab78b2000ad6539a23d73b13888f3c09618c7ae37bd9ae13671c159a96de7990a9b8e1fca4fa15f795d203cd04c8429595a55d91cfa4df7a63889fec2fbe86a29294f54a26c3eeda9056ec4dd8e0b625b3a07de435611c2b3c78057d7981aec281f11a14726ae2af0e20f09b2783641f8371d7d80c6f5a8b88348307427b7f2860cb8c08ca94534dc2164136f4ee77c8bd871a0e56d8760fdaaead930d1c3555b2298b73217158058bb0c3d4b10fe5c1e20cb3a36b7fcc710de51f46bf2559588f9076e9f78f204c318112a229fdb2faca1f71ebb88de5243cc1dee9f307f4887e9ee59bfe78ff2d0e1847d4201684199b5a2c8b565ee43b02aa09b6cbdb3a5dd7b8a011d07b40f9cf2a532264da620b60882959475dfaec396f214997eeee57f3c45a67cebe56da5a46f979c7ca5d987bf9c3f5d3c032175f100e5806449f969cf33ddf796d0a2529d7e3c0835eaa592c3e880fb63fbd1749c1eabd3134d28625e3bcfe6b54c958c690cc0c1964cd909a924d579866055e7f674cbbb8b571d7409ec7dccae0d92cf98ad8dee141e78bb90c39cd467cb7e7691fa96feff08fe6af6563658e2093a9009f0d078a34776eef50d4c431e45a8994f51d96ebb9cfa3e405750310988bd7697c6868f6c2e971d13720a7f39cbb56425143a94a09f9a5e25f401c22d58ec749e24918b0e28907e7dc67158528ededf253a417c12dbfda1fb3e1365b1525e0405a56cc036a78ff69070f69a03133ddc496b2d042bd915f1c468b6be091d17a77a8c4f5fdb54bbc096c63a64fd11596be30e2b993f55a1a3eb500138c81139332e0d2ea2ecaad3108ab092cc0f2306fcea981fc596e3a201ac472def66bc30b18cae4ea75a76695f55bf5e9343f9b13d3d6e0a02037a4ce0d0d41520292fae11c6553bed5d11ce99ef2bce258c1f91e15bac78daff08d9e04b3e6fcd66d213a52f44fea8517ffedcb636cf66e34129d7f3dc936fa87536438c4d520a5b2e121eefaf34fcd73c87c36eceebfa03b94cd05084adab0732d06afb1aedbb7ca4f03e1eab26ef78f0a2889f3284b95744455828d2e486d9ec8333b2a14efd17977f610f36b3d494528e7c6ba34b8898ccba8811dc3b038886a23122828def5f4120a151efc478c6ab350c60e0615c515de2cf2a4c48f8a8ffa6d6b2b6e990c7b1f1b1ccd8d85f46671e401795053593777bf48c31b98fbd124ea6f28702661e807986396ffb4f30e4a4a876586b11ebe58f9dfefeef67effc1a241c83e7b4a1608b06b274dffc00a8e8a467e5aa2dfc86b7c250cf9c085d52d36b78849e39b6187dea6003ce04b602a3c4dc9d6a0b9fb0f0721c1116c9d083e4e546361f9ae1835f2414296ff5ce1fbb7c77f7ddf980f61835d9593bc46ddd4598dd523eccdc584e05450f7e92bbef1a80a2998ffe523673b166e26721beee90f886f93bba62f0a734adde5c1a9bb1c245018125103615018a778d293e0896315dfe601741ef54c4fa1954ebe68c1bc0ac6716a19f28357ade66cbf0a64eaef8b154671ef85caf21904e622bd20dea42c7b57a96a240f679516dab600c95fc27d6b9a3b7835680d227b96bb996fbe04220ff25888805eaa7410a64bd01c36570097dce0b624f49b98eedee8f45c5f76e6f6f429af230636c591fee4e9a0037809efe72bfcd8f2cee22acd79538271f540036c2bc6ecb5834d93fcfc4c6a799555b41c9c44b667dd02459957ee66644a049c2ffaaebc03f96867e093bb391217899f083047c9a066de1a1334d316e535e4a31876e71bc522d4af9ea622ca103870e8228f9add29e81f01cc320d6296c57f8a89fc7eb8d41bb6df82b429ba204735c5939b884a9419e8889654a4c637e1e8a714ce02074017fc466a8810693d7a3b3add6cac3f3065f79eb76592755d0931add6a50a753ca76e3d5441f03b739d6df09b8c33cf0831f3872c4a13206cd2caa082d4b5d047df6c689c3a54be225cf2c96995de1d8b69419ba51dbea824c068b7799f383917b4e5149ad0dffd9ec8e883d16990ca9ce4c4a0833b504b07f3ac5baec3b9cce99bad5c91d6fe455d08dfd8eef6828113f6b24a40b967b4ca50306d6d69e0a4fd8fec662caff055faa5943d69cedb6ce496f3038d5ad45a112edfbcb6aa6411809beccf4d7ee03c84a4822fc60055535b01a90293ae9bbf49dcbb4139485234fa6c52ce9796514f5e98eef169533782f8ca7e40c766661c7a4c193b304ba302cd1f2dd264d806af322232f1cd697271d5473075d7e02af96196096e24a16e157e59647cda8d05a5f17f3e574b1167c9fbcdb704e5a462cc4f50e572830095e067394ccf3f73572dcdd217ba98d4dc5288a335566680b31affcc624a30df8f863eaf79b5d8fcacaaff32d05fee033147862df04a39749ec170ad9cac1253499b5c9d03cba16b08f09de239b57585677f284c1d6234934c72f68b231384320a8cb48614d3eb9395bf4ea72c9668d9613c07b3a3e5fc0d896ec0407ff309a68d6bdc429301a591419aebe742427bceab5620fde05b9316fc20e779eafd3a26398ebb3564f34dfab11c39b6670469dd0940ee087e8eb0386be1370acfc8b97c44418f5b67564c0d37f81d89586e71db3dfb14e7d620af099f6da9623601d999e8175d9640806558dad217c9d3e7be5574013f5ad3e083b06d9e956317440f67f36b0a5605e0cd56e9a701209c935a2184d32c81fb554a0714fc3e6ed3155761c16673f37afe8142bcdef5b048b177c98d9dc4f9cb55fb104a6c879ee9cea3240824ffb7a73f354d93610ac3e12615d4baae98e3048d3a11528afae31b0d8237f889ac79ed30c7d1b69098edd597cda5a91cff2d936f80c03b48655cfd7cf58daee79e10643f5cffa4254ab4687d3ada30415be1f7199b4ee512acc8d37c2a54c780d69e6456d91285a4bf33d573d7866f77ad0c66b013b3405033b7bb897612e21f4fcff3379d2aad49c52cf577e36490d825996c0396c440e1d3f87c90f439488a138f468e4954a21ba593f695a7d17ed63b56604a59b5362863cc0a2b424aac83ae95095dc25be80888af70f8146ce1b2ec77a6ea3a9e61bd9ca6f6687c98a101ee65afebde6aa789e5abf2ba788bc7b677710a39927497f259b0562f3c2aa66af2bf42f5dfa550d9628b6fdcf2a74b70c1d2a063ff28e29fd9e994cb212b341c1446f8d497cc14c666390f485a5ed25c6d52854b6b36440eed648426e4c99ead030ad9b4b6ec6c99d476a8cd1726418cdef7e990495e3a931976476871844d2e96b176eede7149a5265749f62c1cb4d48da7ed056a274765ec25d70b8f6d047f32a72010e01394d9b9bbef5da3a1903a26470a9ef54fe4876d9a9a11847525c28357feb5a51342f5b06a1a7a3fb98fe86264af36d3a313a8f5fb1b765eac9ce547676825b1496f6022080d30867ebdedc364ad5f003a08f0f1cb2f884c4216cf4cad122a75baafeaeee95a7dc702e686a31024e84bdce3c31aa456902302914db1706004cecb4a9b9df8fbf7673bddd9f37add799f015960ba5679d9abae6252b1b069fb58a352e329a80af7094e492cf1540c969a8b81b925de35417f8b7dc02b751efccc000cb98cf8b6512486034ed68427157d9cfdbd76929963fef2c654330ef8848bd0e016beb52ba644b3d24df0bc4fd5a7c182ae2d2df38971a785d194915fc16b754b2b372f29edc3553c9bccf729c2f859f37074fc0c6a8cc9d43f6e6d8bc3f718783156445540bb3de97d1823bda6fc4dba6bc5623f5a74ecaa2dc1614f266a7c89d1c0e9bac48ae4607ab91da61ba0ffb36f660a72f03a71a3d23d897df0ecde01a3d2e763c2a448861cc486113b903be25bd8d4882b8d1dbab10f8a62eecbbf98d0ed3ce2f3331d73dd3e2b39515fed950f326528494c96c98e1d60d133901dfefe225aa0d8b164566a338bc3fa446491bf2c4b1716bf9d959493c864a21fc88c06d380402942ffa05b61818d26b54c551038f9473010e11c829d1c0797e9f67d7f98ca4b3b41589d8d8daaef025aebda3efb0d8860ef73d7c310aa8825177342e62cd1e3a23d71a3e37985151c40c3d81cbf262cedbd753c13c14a3f8b9e3491457fdac42ed0d97026d3fdc9fbe4cb257376b0fde155b21cfb5da82ecf78a578da7d2bd94ea58470a529d9c14899678b53b471f05b534cf3e45cc94af7f4fe96d1fa71b9678f7259be96742987aa5f15d80fdde13c426c341f3f481c3e2f8c8ab8de219767b0d3ad70ea28fce7167ecec61b0efaee696f51ed329741ddb9eb5794845e671343d70802559293d5dd9d4cedda8d429cd287e59bbbf16218dbc6aa4519829f79b762fb3b3ddb398e8cf63dd822b48a4e3a335fcb2f433d0e6a973dec7781c312053cfcd204ad628f1dd6738652e440f8e97d8d3cfab96a1871ba92753cff2d0dab0fd311965b5d134213372ac5db0cb910f8e8ad4ead7d3a723ac4ac89d59d47f5f1cfd40f281c7945e6e48faff719c8955809ad0a92c9c4fdfec39da6e1d702aac6c71fc7d1297f47c9113a1e741191fa573c18bdd50903116abd8da17b84ef9dca87f7ba6344616bf846e46fed072411063916c39f292a73f369987eb82635ea87e10bc751509f6ce9545ab4ad70c273add237d1df53fab05adf4f3f3b0742ac5f5e76f78da9969799b31d33bb6533d55bf6a461bd25cb9d48456c396aa717eea97eebb6e334f5abc4f52de0fc2452d18083ba2bd77fda7c6f2e2698d1aaa447d524828830b1adac5ef6ac52a69697c90d4b34258e0a25c6b451a100d29f41d124d72202ba44bc018b92a9cae891d0592952c46ea1914bd33593d89c23d8c685074d2abb34e6b3a212dd6ca692f54cef7810228022091a3a1fbb98d1225fa00b44f4a1a81b7bb80a31f77bc6bccb14fdd18d9a58b917d9120a2fa9e708477258f67f867bb3a4eeb67d238d439cfb28ae431fc025e36a08eec4578c3adc6e0cb97d12285ae3f0b692fa457300c02577c7629dc043459dbf63fba589b7d7c640c002119b5c6d9b84cb00e3f85627bd6023e40147a47012103d512447e5a6eec2ede49dbe6c9098ae5c453d6dc7b0504de185908f941d622781bd46508d9ec81abfaebb49ceb546c3e6b1755138249bbfa1b19a2b759889a8d3d4c22e824fb6e615fbd914fcd009bebbb01f3e7d3460a8b0f528a5389281dbc22138af7129549ab52f3306e12db744ab7c52bceedfeb4795e35d0303a9b659f9f2239a451186da7417c6be7e43d16bbc665fa905d7688e89183a28dfa31413fc1695e9e88472eae4466122e9232603e944af4ca857810a05e25887c1c865d1c2cd0ad725830162d0dd5dbb32ed10bdd158c21a09ddadf7a59b0d53f17b82021a6c29f4afe6f1e9e7affd56694d7681b091434c8c9e793f78b9c5a4ca37dbfc10bb62bf242e2e29b77cab0992b13e3e86eb8eb8faf34a978be354d0157f5d4aec7e258d138a522f0b55ed876492b85492457b484d9b7afb9e11e679ed02751d50f16403fe13d3ed0313ffa52696c50a3492f1721a83f6923c54bf73349d365e8765dcba382d6140f9b96c5e19eeae44924f8200cc5803066e4eb3d763d3600aa8d4c892aed6a4c61e1dd9a15725d5d0c7090468f61d32e8e074d63b31d5058fd5c8d538b1ad04d74ac8176d843c39f4ae4cd7fafa85621113b4c2e113ace32094de20ec55f7d5ad16228a2f5440e109ccd76a6cc978ca161bad0f4ce14a8e451e31ea79e2299f6f16e95c849c91ad709bb2047b8812f0161c518d374ebbad3d1848861dcc276e4fcccd9d84804a4bb22596883552e220c1e05bc838690e720fdd260ee8ca12422ed9fc0dfabaa2f5bc42625d648c406524ee5d785fd922c832d43040053b24b9b359becacfd4517c812bc257952d9b026cd21378d69f207909eba161b169dc233f4e71b618383c826e6d85a65e636ea8e39aba9b9c33fb424264a223b037c5740b8a967b67111ed319173105540aec9baf438541a7b11328e768bd72acfd00e6798a2afbfb9f0cdb115c8fc9b77bb7d91ea64235178fdcd55b221735079737d759aeeaea6d4be22a2dda554f8bd6a544a65b8649c878d72b0449e6bbaaa81b3d5cc424abe32d31fcdb10c32c2f37f7348de2f6c1266eea1e6f3c642b4173d8bf801f43997078569a2097d12d8c8f8a7bf481ae1738da57b039d2f4191dffb1fb49a8c6ddc892a45f8dfe0d8c17161e58d70e960bbd36e30ea4155e03785bdddcc224959b0af7fb309a5d0a449e461a8ce8b0bec93d169c65bfcf07e12ad6d16f6d2c1680561e3ae251e15d577be1e5353dfdb4d3f3a934fa2b298eadd46a433fb1eb0fb1b3d5f0e32b7cea0f03a61592aa7a37b70b1422469848891944df2df8c82b4b13fb5bbd6e26e05c039d17cd4e82a58f805ae8030643d85dc1a43a6af5b1b2e1d3376f9caa30ed44ab2f3e014a4079485d4412d78b4a217224d6ceb0182d283d362f453859f0c19619ba1bec2ae53b4218958a94d2df0045dbf8957031c98d4a038160d3eecf9f441a12258090c50b8371f822ed89b1bb08cad07b9d0ea28da91f95bf40083c850101eed86db3912231412acc07d0e8f23514f4a3bdcf7acc730117dc065ee7e342958fb6afb1b4b371671b1ace6082027a7aaeec786a4f54718ab9b45e06b7640909eae79e398112b5aa82af8159be39ae5f266eaa03ca2fc55272336035cf18acb504825a34bd89ac1a3be0a39885098bd834800b1eacc2b6410c26e98c4ba3f76f40bcf6b3563795f86007ba19a6cfd899b9063d44af8d37b202932cfeeb96274335a1402ae1ad501259a54311d350d52011663db76d25aecb4526030d3100445c4356580342cbde218bec7048847627a3e6569353bf1019de16bfb63c29c8e7298b90a6ad377eebf84c71bec3d0588ed9b1b2aafd74cd61f4ca3edb3eb55921238988c4e6d7ce6a2dd6e736f5d75144bff590c6d3e9df3fb85c781452bfe046e972cca480605853324ba3aa359218cc19e3a9740b44784f5633d8feea1d4d9a85653a6b00d8875194511185245fdef7743bb328071006ee6682c0b52e3abb051bcc7b8008c272835425e8e175234093843867ad92c5fdf2eb84f810c27a7f38e8cb25ae178ee96b12d093bafa9d18bf2499cafa5858ea8ddd5f23fd8bfafa3f432758acddff7e0a2648587dbe70de8e9b717990e13706154a065efa11a4a0e204371bda73eb3268534d64c925c8f0f561fcd1903e102ee9bd84925f1f3f084abd9784dcac2e8a5814e2e8e02a2b3ffd3324f1bf5ea6427a1ef0b8c337f965e311944a0b24424dcf470aececb97f264069709d2a9e9f643b04b0ffa8f709dddffe48ed20c82a54d032febf7bb162b7d7ea8f1858ae6cd28ff3c0fbe162d60013936e408ace5b255ee975b0d86ab9e405f464544914aea9f2b49edf2ad290b0de1a75e06351824e0f410127b3a59300ad3d5b5b9f453a1e78290df541611af386657c7f85c9f286ec7bac8d67785364e6fac71cb04b8324760489b8cc2c2c3711f1554844b50fa6b24d8c8f99faae7358a30752d8b08b6d58499144fd5ff1e459fe584296d5302915e5768c14df0278623ecec50d704bd7ad5ff9a28ad10c612474537c4b101441e1dd69dae3ba77e9969deac6a874004f4ccf668b93913af8daad40e9bb1def4bd1ff19cb12d268ea6efc6d1231eccfe4ce0508a527689150d0c2563703031b9d011d4d0052e58aa8c222e2c0a805730adf2725047da121036ebb21abb4059f85f48901d079fc91deefbb266d12711d2694e54b6867d7dc92e771529000381bf2d5df0a9cab27bf122c2075d40eca7a3b4622486efb6bdb50f6781ec03ce206853774c91dec537cdcbd76c38e041ade348dbfa68f16ad0a0c95b69fe8c7037e36680d12765eb75f21892de2ea95438f8775905f9b6775a712ae604b986f336a443bdd53adead0b0c1fb6a9e74f6e4c67dfbda1252ea688ceeaa582795a64e17122b281c6716d1917716b46e5f5345606b6a5d3e502815c2a7a66c1ce612676392c92b31bd572d93c92ebdb936279c1f2623f6f3e8a21fc989fde152fab418b160a97696ae681b4d1113617e34828be4d97fb7aceb02042fd85436fd7d1d7ac730684e5128c69fefe381ba3b21525608f0aa8e7f4bd953563dd2289b09fb15074062ca40f13ea552073bdf591aa4b19ea275ab9647fcc7ff7bc395e3361414542e2df2e9d2451e4bc76bae812c72cdeec8535e9abc5f03ba66d671835de10cbd539e5eb83357436a891fedae0ccd38206ff2d7d74d214a178cf9f0529248399eacce7322e87932e0ff8682c31e249482f2ac95d8e82a127ff1e936c2ef66437a8a02ce7de2b5763c48037ee3a77b4753f711f78f68311b5a27aa0af02912fdaf098a925985e5451ae3d8b23a983a80a9f9706617b7233d09caf50628465ca76b7732fca43df01897f45342035349ac6553e893a68307cd2ef79fdd92c1aa3ac9828eb419c964f9cfa96874a24ba3cbb51786cff92db45a2a7eb8cb9de7cfa986c94f4ebecfb940d81627f374be433ca04c3bb6331051e02e5612e7c52e1b8b6487b10aa7fd8be869bf4f33437d3944ebad2ed0f0c4dadc000815d3bd26e35f9205b474dc0a1536073274e1f8027ee4e56c29c48d72c8b3ab737da566a32b26cd2aafe6edc483e9c50775662e7a2f552911ed9e0cbb2bc8540062a8a2bd978ce96ec95e75b0e12fad80549de0f75878c6b279cd1c6079c27235448ee8f11e01ffd4a38e1eec3cf9da7a3a7f36a422e14f7bbc41480ccf781295639ec3025cfa75adf8ea36165b67f53a22e847e2041c0c3f2e7f6f6c96d613861a5fa2b685efdbb642e91be7a57e2819d7704f7a5feb980be0a3cb1705829ba58cd077ae17f6a5c9e6b71e7b6721ca28ded7c4e5c65e007ec551d382b672905a8b87d8cda4071bf38cfb0667afde23d3292f3d5f8b113dcaeb1f9af64de3d3f960bec3ad2b0f2dbaea132ec152aa859c05301c446ea0dc42339f4a55b69ca0ba2d0fc342b272a379fcdbca499139a9a9b0dfe5589716da0fd058baba43935e0011df9b5f8ff2ede676bc166bb49d4f9b4a046e58feb3cec9b2740b544e23cc7fabc4c32e0d5efa758ab7145f3bfc8249d15bd2f35e6bdc7f88115d2e0ac7ff087118e91f3cbac10006286f3e33ca72df44bbeb04f104620ddc25661f3e2fd7441663db12dbdf940b0c45f9c8ce38ea89d6d4af9d5bb9010bf984c769351e17a3916de5ea67015c7e6729f47fb2dadb054ced4a962fa0d95c355c1692c09d8902df954cae1daafd70107ae19e0db83c127af143112b6b5fdc5361a86d0272186242d80c7ef44f0762b38362a1400aef9de7da06e29c9eee07779327fb65f781864375216f638372170fd1a464842516513f8481a2c89b9ab5a4de3105cbd4e041c6d917e282014844e25d09aef88f3fc9f2e6a58c5f38720e9b731c6a4949d0dfc7bfbb897baf5f220677e253f7ea9f9083ae5718e19d2b57ba45ffe539a69b2994634865d5dcb41cae7ab02839163a7cb2c1167348fe9a000969f9c0ced8ec0ea4d0799ab059fbed66554f4f5fed16507b8c787b1df0d5bc315e82dc9523bca3d529d3696c96b461fcab2b7bac281a8e4404c2e36f0533dddf6ae13324a92a48f761f6c7b6f158c8cba27f3cf6996ad89c004a2db2dfb809b6f01401d2f38c72223076a7e06103864823376501473f3ab6223f7050be16ef9c41a9d16c6a14043789872b19ffd6d4a49ac54b1aa3714367d9f88ee22477aa23d9fec5755ea601a0bd9e1afb27505435a15b1dba992b58bf40d7483fd064f0cb8be9757f2a66957e9519d4fd0b10b434fed6058aaa8d86dbe86788cdece131a1df0c03b5c3e67fa267958ea4fa68c4282eb8fbd1ca64c2a02456fb709c6eca3609f8470d9b36fb69165dab3e5b92c9714af546a9dbba458133613ee2df6c53e8ccc87fa55c1da995cc562a7eda751cb219695d30a7deee16d9211b6aa5803670ccf95549fb689ece2082661e6984741cb23b6855b0778b628d83694b16f17890586b7be39ca2c1bc89be44732f3bfd8f67f314a07fe96b6f86bbbb4703a812d3cc0c1dcaf7ad4c863224830b19b9beeb661525b9e342ef238a3ff61d7c9e343cfa09496d1be879444d29a85421bf7c5756834e893989602754513e3d8e808dafb72f61b505cff679b580bce373ca7e84ba8d16429ee4d494cc7f540acf2d08e76d78350dd42eabcf5a8df1282e176cbed14fb0b361fd7da4b0d6fa64fb85461b03ddbbd38f43cb9be36df022ee4e99cc97ec6a9d729c99ba8a6f06037134935375d97ebf509235270d666ec9eba80ba676d2e41b3449f6b3d47b53a596c45f0918943fe08696fa8a95313bc14a1dbdccc4f87c628adf1b354ddcbcad873cd45b634ccff3205532237bd5f7727da464f819173723d56df6c1c8484c565e296a5d24ebd596efa1cb6f8e32fa1116a1e00578e946cdd2bc3a81095d0c5bbb59cd2e4e2cca4bf49d555a31ad426c5fb7c5d533990c8404ed49096ac06a526a55fb4d584aeb6def0c4e702df5304daeec2e73a2da882352094c633207c26476e47f240da07737e37fc89c0941d0360f1579883e5bfcd7f756ae29f2fd59bfe000feb7f06c160b30a9672df13810159bd4e575090ecafc7296837e3b38cdf7a792935bfe3d8ff55ac43397f5dd0ad74e508fc53c4174d79cee1349c610e58a9a4fab1ce80fff2d242d4b6005c788a36000565fe8200c12808ed673623978e464f1c419f0f3b471e2177c176ebbb31de03f73ded8961e5166a878f5f981fd7d7ad1dc3bd48858e728539214fbdc53a8cb9b42fba12c7b11cdae1616306b617d282f263b301abf50ca780a43bbe4d413e08f6909b0764cfcd9e57930d4249a54f94546568c93326671406259e1d20469d0ef63a5f4d8669a127b50c03aba4c97ca76a18b3507571a353261059ffe89a5ec5318484f2c06954fb40ee7ddec217e091dc271421c5e8f98c32d2ede3c5fc41079994a5b103379ec701262c0ff798c7fe8fe45ac537cd6fccc05ac4cd21a67325c0ee9c574885928a3241d0008e39022976e2ad5c769fa732d6ce0635f1d7c71297c92b8cc65f8a85b7ed6197dbfed47994f31c6e7deead50f509b12a41c1e4570eedcb44aaa929cb24616e145f7fc3aa824e5ac8f118cac855618e375b255be8ef1e9191fe1c880c177430447ff1a96d6d169ac39a98ea96dc5cf029fbe74e37bc13bbc346f02957c8be999ec1f72223841b34a40c6792e3f4b8843843ebacd3add84a63cfaccfedeeda5333eefd3de9550a4acd1c635d799fca5aeeb5861a5b4fcb2bd47028d309a60c825dd947012fb0fe8d88612b19b83ba9bc8ccf5182056bcc3cc657a1d746c605b59e586fe1732fd2993023f2932a76ec13fe0636892a7774facff7286596fdaf9df62742b92c6aaff95bb0b2013b30be1c51d264a2418105ae0644e3d8aa633752752023f01a03ea67deade967463edc2061a2714791511a77bfdb3ed9fc9f26ab90c7e706173400ea5f5c9815d1a05d3941be3a11a7f58763a837e53b93631c55b33a2d1db408705411bf74e10266ce286d95ae1d002bdd1e8dcbb61ae36c755a64eec6e63b9b4cb7cb57a66cdcc50d709ccd7fde7d77beacf286e925765fff261a20dc5e46416697de63e91ddf904f675fb21111c65c6bd834df82ccd694df13abda2594d1e2751ef9afddfb368ed8ee277981cce5434b1bda633f0b58498fd15789df09afe3366d8cc0483927deb2d92e263eb5cc47c5d4e9b469eeaf0e3870c92ded93742f9ba502c5e7337d63ab77005a07da621d90ad81597059b3e90f30535edb840160f3de694934521df06e8032f9c12ad5f4f6e2f9b0d5e4bd88e59316f9198561521b71843e97305fcc401ddf5ec5a15678523692e36516b848a8ec81b652408f72ed026d0fc956741f9d016d9f03e8cdc28a35dc4511c6580f54fb30e38fcf665795b1e73f579dc0857fd5d7e9627d332ada4d325bfad0ab4f33311073f25f8f505796a355e28cdb462a84b970e5140cbae0dba88ff51726ae9458c179158ec8018891ad16e4b1263816818cbe04f1e273c5d13236e644dbcbb6e769b5eaef2f24f6bd2aa8598aff6d10b76446571bbe20e296f2736dbd9f9956e1efd12c8df7be7ac2914886015049b1abb90df704610f6faeb123be31b15e5af6f45b1f713ca7742a29158e2bb10227cfa2ed0fa415fc0eff5496bc87d488eaaf51f6e877ec4c2ce93e9dee626006fe67c783784ac921394a5d4cc67b566be6be060fde9b00bdc2beee202fd9acac9648c56d532f01aa4c0d9b81b177cddf013f43e85eac53190cb378b48a7fc8f15b1ec8636ad95b4f31b86e821a8b8954c8f3d695d7d90314bc2659a6bb5f30b14f18424efc9289f49e789271bafa676bb4f34d10ae2b93ab08c093a3d6028719139311855c70c3251ad94a4019b381a0a10218e5422986ceb860a1c20b44c9b2e59c81e4802ab76211ba9a62ade0be73c9693a097abd64c93219bb8247273893aacc6a4670fbb2f7c1285dd4bddb84b6b815335234b4cd15f56add81294a6436c682166c44be1c86bb6ef4ba1d4599cca5a31b5a8d6a0bdf267f45525a57b25ab0e4f93d96741b5b26f0fed4e9be6d16a46fb95fb2565893e688a11e727d97eeea1e4bc1934388c2a03203a013880fcb4663e9653bc430fe1cf429294783b65afdb6ab5b231f07ae5cb9a65200b52dca26d330f0a05064ec6a2353e3ae87be241b052b4e15991d9ebec13205cded370bcc4acd1ae04134261ec9795a1e9209c287b9bbd5300161dc6cbe7a121ceaa45e23a1298fd94237848a180186f15b73d09c0095fc6aeaef734aa48483e292f6889748c25fa5ba4e217643140796e82e1087b3af938b8b10b610bddc1a0aed2fd38396dce3165f6c85c03cc8f59adf4205bf925e30aa37f17b0fab3635fcc511fda6f93a255727ba57b41499765c136054b291594f02c8c51ede7beeaa02bfbd0b286c21b22e25fb7c88cf08251916498262bb720a092afb6b8c0da7c483f8d9140b4e4dec6e3c9fabc75e1c149a6d68e00157c0b6af660356a2f0f1cd4c1089f27327aca4391ba3f5d7fe6c5bf3ce65f21fb34a426afba369793c8f7389f52ee6fa6b4897a38280a544938eeb41b84c0c07f49d41ad23bcfa6d49ff2c165948f301dee55cb4c2bee39852aa957beafe14d79e4ea37bc4a46c75465f53670382276d1972ab916cc3ec52efef6086912c0f4fe2fcf12069e20102d11978b5c108e23cc27d7c0a91e575f9d84f40fcd14c55039ad36c9003675fe77d595704de2ac013af104bf30a716a3a61fb704407ed172b90950e00fccbeb3fba74c4a99ec0ff010d53fd9d6e8aaaccb4c45b801ec917f595f00a52efc62ade838cbd84d26cc72182923eb683954a1c472877042e6fc4fd2a19482126a0b5c900fd60ea910003d3a19e384d0b1bbfd0353b29add730c47a7b579c78db563260556a41529bb5b36e3d5eba5dad1ad122907eab7af583abca9ae10841e940e023b6e9ccd94f6e2e31b3804a38465cb1dce06e13f808436cd856ccad55dfa34090c2319ee7f9994641552a042153a371b6a059b1c84083349b3da5f702a1b8b47f360be0e7f6b2152c00f0be30970db65d34fc61cd31ae21ef7ae39acb360d90f81d25444750ea044e92dc910ff7de140ad1b6129f9e0f0daa3b1b2b209c2fa442c14f83cf638232cfc844237a7c2d846495544af092f39ca180036ab73ec0c2a0534f753790e2a46d38450083f719bc936de0ac637daae9720ea3545a1fd8233145fa9d3e7885adcc2360c3e6f58db1f45d337858d20c6cf0774ac12a3a209d7361478bd5eb2861135467909607f2db6b69a9b43a8a03a9b49b0e73813235652e24faa6a3475dbf5d48ca2c4b1281ed52a763b43f95a3129a5b0929269ce386f81f94772648c374d468f599f3b8abe4ef91b76394a059de0d7ca5030563acc1f93f744a99c0943ac16e9f5b40f969056c2f85eec033533ad2d166b1379ebb1c16bd3ad89d5ba9c38c12cccdab3c010f863bd054efb530f29f3e8a02956b254c8b38319f80e6ae8cd5e7eb0ef787e8b4ecbdca5a9580fd610f8ed6ed1759ba47b9494ce40de0a6ed281be56c8a2f1b9440673821342442c9f59c3e1c88d535037693fd16a051797f124ec3f6ce7deac04165ad91062ee97f031f4419309ff9397c6903c59faa7ce4ac96083e42aa5a29e9a55593a484241f76adf279a93f3e434d2672e99873053c50f19f9af5a934578616c12cf6d15375065a5dd37dedc02bdccfb41924d2d542e15ebf9906578ae91c0be0890be6f5552595ec597f6dcbddbf0d5cac564f679460d8bf419532ddc63cac974a0ca6b96ad8f3886f536cfaa426a46f1ea2320ccc001e2315859c6baa283947ff5be2d52f665f1f00d30a14cc2a6169d99e950dc41e12388ce99056a30e1eb16ef2b9a86c4a9d4baf69cb13c1c7c92a13128c7fd07b256ecf2f28e033633ea83b7d646d0319dd61c69d103e3beeb700172ceb270cbabe669a0873a38fe2816883916494b721e688ce0c83e1ffe4db1414ef9a4db507fa5dcf37a400344f96b5d257bbe3bdd2d64e7eb113ac74e54b72c28511082f5dc9f97813abff35e99f08bc5ad4ffdeb566c8c3a257b162c9e2ca5a96837268e32277305ae7a865f2744fb32c59ea24530c5614af82c619db16e8a0e466e2e4a3dcee3d3603fa75b065648034a709b57e03acbf5cf2b1691d9469c91dcd4ef9c496b3a5d2d2fc9d4e05ea0ba1d4acc692f3d0075466e38dedf0bc82a339b17b12241eebbe76d8f4eb7e0920f6bc4fef5198c627993a86d568a395ddbfc2a947f0c858474e8f45ad594b897668bb9c3471b24398b001c3a93350e10fd2524212ebcdbe3a40d3505d1dc4f48a933926a05f8984c1970b92824fc42ed1681d8e823c4fc1582b00958211efc9f2597c063ca660df64b96ade01b2a64aa0c5960de6977d36850abe8a29aa4eaa9e869834787131946da8d5bc6d79d4995783b0f4cafe6256a17f2b06467336abbd094a6b6bd92b569640f538237bea0973e3a82423a7238f23e970d1c3a9c65c088b40a71d854d8b7ba5b1a392217bed69be36620333c76fb414f6967881fb2d73cbdf7e28bec221f8ce7bbd8af2dc738ed9da3b9c9296e3826bfb0f9882f34deb93e4c9e1b7d419fc9a8a39d10d4054a0dd82c1be5db73339e229331d9e6ffde52ca59dadc0a5170f9cad3f208b8994b69fd99f4c17303b1244d1cfc1f18406d11a3f05a6303e51581c85fc5d17bb97bf32c9cb9e42de6994466d2c7f178231076a3f09c34cdbda115a22d0d67c536effb086ecdd69f83eb96c8adcd4134bcba598e25d8194c3c72c6b7fa078f775d6b9ed1422837388066f058c7cba6cdaeeea86cd80ef740f37cfb393748345d7d244d3a0e7f44e79a1928aaf81d6386a5c762e9c0a214ed000afb4c4e819d7681fa113572aa3f82860ad360c2d61446ddd03a04a6b3bc766298c04a69699d439610e905e1a56405b588e6482d38df94f5484f4119c7bc060ad08e748540bf38294968f5df1eedd218440cc652422c6c23bd54e0b11f7efba00bf8f28640d0e0e8f3f602bce6fff47bb9e7ceb82b469c174b4b24bf9b768d874545ecbc82dc61a98eb20a7b2b3d6162c3544e2632f20b9387c92b214b3b26deb1f3e46e1a45f084b57c968ab4d89b4084efe63c332240a56e8b3ad412a36b77c4e99f938a2d067bab7b5e1f510e2ae48357462864af083a33b6fb1176a5a82cee694411fe846e625bb4f8ad2474b7d94cb14500be71ee5a3e073f315bc96f921d069efbc0d62fb3a36f3da52e5d8f7c125419c9f09bac8237c80741cfc52dc6d91fd6affc7fa970545a557636ec96942c2417a10534120b2afcb4a94048e65badf9019a77bd44b646875be7f32f82d136816849d28f49196ecfef998484c088f8cacbc56dfc9914f063462118320ce07fefd356d257a563157be7ee11473777c825d5b09595bed1c12d14bdbd2ea4acbf24deb1c7bf2ef8e4ddf5a99c9f3090ce01177e82f6751586f486bf56daf3c6b5e7981519bf0e2da39d095cfa9d39cc00a528ddd9fbbe6260a093653ea63a78e5ff928e4d9d103b14ed4f02eaff859d59df4276dc48e221f4d75bf61ace47951c8013341a0a916d37857c0042002be7e0798474674c5189223a0e3a60a964ced6c54d7f600a98a628e3d2f894fc58ef02e70374ee9e0a31604bbb2edbb6c10e8dff874f9fdad9051399fd96232aa8e1493e392889462ad58fedf7f8d0e192606ee3b477c13f0dee3a12dc3b5f0d9be8e0d62dde73f0276e6579f2f7bfd1b06abc23b58708be62b1a5b29c4cc8c74269a41d10e000d1377dcc667e9df33dc1388741076309ae44e8fe17c9ddd7b404683f0334ccb1eb6e24cfbeef2564cc2e679b8955ffb7e9e6e157c9717dffaaef6a822afc817195988ea3b75665669f44f6bba380ba1305c3087f8c6ff4e818c96ffc6839543531469bd88120a37b42e6ae05a098cc1e98c853ca5df95e1e7b2202806e11b7785d6cebf14b541d51e3ac5d2e360d8fc8b49bb213e4df413c686e0e4009737c0de05759c4c4fc7aa3155ea07825facf8219ca1a1b622243dbf4ae06010576bcc3051d74fb9c53464f6b891eb0e08c6dbff513f98366a535b995f190eb0f59c37a5ffc01b498dd6fba0c5eeeb05aa45418ce7e43c1ebe26a129bd9d977034bb7117461d3c10891736e93e472ff988ca3afe79920a0b152f786fde76b70577cd3ca7ab9dcc2c66f2ef5af5353c8a70700287be78f3f0b7207d8ad79e3030abd84be69a737c59a107d0a161489f8b30fd0871c640a5585b39466d96a8081a56ec8c10a001d52754ca00816a11bac7cfb9edc89c08025a8cd99614c8afe18a827fce534ba863cb3a12a480fec9695c536763006150688b232d4ece468d579ab23f6c9fd4b7ea53cf11b404f6ab591eb424dc9a285486e99d98a86d07b3c887da9617c41abff3e8f46c6ac44f1f3814c06d1c55f3e5e83e9344f4b4d92a4ced16a2ae8dd9b4f61933281c81a4ad96ab618d76d71d46bd17e84ae06d8c42d508d2b0a37ef0f066fabf1474ca6d084e691e1e44701dcc8d41a98c3a9972c075bb3f99581581add67b8dd394755b697b8dcdc1fb9e1ad33aaab61c80fb5ed6e235a7f78a7bab1d41b430dd2929638f928a96fde544107e87038ee713f33fd7f4581771f535421131e60393657d9932c082ec506ca98028ce50f786887ddc245d33bb2d2f498416c65452e83b170b047c659f50c6f3cfd3d20c32bcc61b17443e624aaa35c90f52ddf1d7040060b7df88a268c7b6add2e7e268cca4ab475070ba955257312ef5547c42b97582c92294551310aa99f2adc74799c3774dd2952291eb4c07bde13847f6bce0e5296061848f914fa67b67be4992e3797a20d5bbef0a780e48e83bda269615992dc858b29bee7cddcf778e3ee3cc6e87b04a8f4c02e3a16e0a0a618f6a8aeba5f979204c65744787b4bf4f716e1f1168cb71c969933b059131543991c2d7ff3caf2b61b5c2bbae75541f63d8eb247f22d41e073210226244dc0a157847c47ce603532c6d9e9b716de366a6bfd6ad4080f1fb660d983f2bb0c93ab320474ef5fdbd08f411b0671e4423fb92d9777153b27bd522c0c89e6e3b7ec8f16551f0aa5b881cd14a52bc593b81fd51eee29c28d4aa20f09aacbe56708582c752d286c0c78b0b5f044f35379aebe706aabcae60f2d20b92e5b37bce124897b77d5c5b038d66e2c891844dfd1ced23c094e74f167febbb2496bbdd6fba927dcacda678a7278a646600557074f3ac51e7b06b22aa19e4ec054a1ea29b6dd1ee32c27676fa89cae81b57c8a53562e564978771abf501109ca7ee48fd26475d5bd7f4551c3458e539495d56ef8ed32a10b247bbcdbf03ffcff50797c5c7b799601bc8b4b1818c2153a61ec5ff169f812d358418a2fc947196d609546a450518ca498e1053685c277db607d72907b228828b1d50e5b96590834a705cc6bd9895ded1633630df9587ce5590a39d46f201b7e17d9d2ee1b81994e186060d2e65303b93cf5ceaed82d5ed337edc17b01bb55c9f40da28a08ef6720b65f71ddde2367160c6c6598cdb66c43014c0b93178b9a645828e03d6839c921da456858542a829fc83a44564b6cc6bd876e359ffada7e7d6f9cd391594cc9fee75e6977314153f2ce79a90f082ee4de2d10d6d2c1cad1d6e2770bdd108f9a9a02e5ec7a10cf31014e7d1d5a0a9230ae460eca40f278744b342e7914db0af5bee28405bca3eba2faa03824f7acf5c885abbb1d86b7a8e95b978706b57f082eefd612dc48b19d6ef31d1f904708544809103f24b2b17ed50bb060dc6ff3f2adb0c2fbe43bbbfa3632b22b5dd752ca5327df4dddcc35457b29610b9eda1f1bf3e1ddc9586470ca8070b063982da9d11f34649bc856c018c7b27940a60c3760373f1cf0bd945e2bf87347503e195d620a9ce114b9a871b09f9e7c4d7441a6561b5529508273184493dbfaa30a8d04896e272809d65fc1e0110b09df45e8f2897c144e80db895e00103deae3b26714063f56e7614aeb0ce89a575f476062d511ed1ae9dac9326056087324ce8be02748f9901ab80c67163693304622f59364b7e01109d56bebb6a7cfbeeb0d2245e0278826bc476eea66bcf5be52bc91d78ac0baa0173c3f9af03c2f046a95e5e6e3efb2e190ee8582fe1ff92f6aa1fc31113c8c7ce44960669f3cd15b6213a4f5108336e4d598bd0412943493b74d6b76c502efec57bc721fe080a74266cd9991d2fbc71691d6851e056ef1a223d7cf050c3b5d9cb2d57986063dfe51ea5bd6f74dea9978ff5dbcf83d9e573d96fcb0f148fab2d8dc1b722f0a887e6453e082e54d8428b09e5a708e770b6645f62bb246d6d947be8f0ec5c32f4938a08661f9c247831d352a2c1ae9f8d0d00a0b24573e36cc03d6376ea8b385f0b93d643af8912a28726a85cefd3482d30301c4580993bdaee44882b5ab49f12e0b501ebfe16357817c91db9055c4dcd4340103cd75d42d7f6fb3989935728f4ef43ce51d432b20103dc64da2baea13e0fe5f0d6bbba2f87a6cba461bbd2119e97d8fcca2bab3a46a9a26ed349ea47a60ec1828324fb5c4ea3e9090c86b61c010c27614fb562d456d8947923e266520d24da7b2b7833cbd740ffbe4af86f25ede0f1df1742b96b8e750e7b27584484d3b5dd07e780c20e931249c7904eb306ebd7dcf620c834ca8fedce24a17492235bc2bad5b2a31a29b77a7e964a0d2fd733626f1027e3e2f667bc4dd93853f034ab6d7f7dcdc81c8399d8476e583362586b73eec78c58f44d79067ded750217602f0f27e34aec6f1ff76258106767d400f6434e512614db10463915e652df2238b2cd5933a1ae7b4e00baef78cfbc49cad1fcebf17b17e6934742ba558cb57073a20ad072e4e67549e4f41d52100d7de4ca178f91d572465749458f7c377845e5b3993e7200825aa7d335f7cdf44bc9c91080668b6691ba98f4e03a1179d46cd5f42660d11abd37a9cfe8ac58737522c42e3a8e684d6062138eaff40a41185ab14dc23bc73a7dfcc1431f4afe594f3b0319bb80b48461979297cbc240cde783cddce63fc61238b1fd308b71a4c8c3253e2e78e617539a8687ad4cc5bee77bdf7b3247ab1410f5e23edd9b599fb0daf144232bc2379953e47bd92bdc6ddad93b01496d30332327b93ef6e284da73c7da30c947d616f24670a4e3d6b46eafa0bd7d8e73a06d9b5440b2016beeb5a7ea2f06b92c2b4b125edb312a041875e585bf12b716b4fe2e9d3d7dd814e56ae5458dec1edd3f8429d49c0293ff42678691904e6e56e8315982e7d7a0319c4037e9b0a7e339a8946cc6f5a48d6a1f241c604a93898efe0460fb1913359aaeb854ea8ff6a5f29664042badba4c6b1e2d8ae93028c1ff698a264ce89be57d1787756b357a28b8e59fc360bba29d97604604656fc1714d1324dcd5501db7d76126bb99169cd8bce3ce070ec7cf0dda9a9e0dac44e36944bac05bdd9b5b2c35d62825260bc3147038242048e6096c62df7542a82da195a29572dadcf139722cd4362a1045a1e36858ab7aea0371cc33b14dff525a8e4058108dfc33bf0c43ece80e384337fc6e05132eff058f8436034a9da3c1f61c50eb6b1e08f28594a90f17085235e844c3d1968701aa5a87649a44b84ba52367a7c78b5f4c3d40a0479bec0e1f4d2242f51d0faa371e091d2f7b9705aae06da73178f96607e934607d0bce82a341f4e8dcbc97d60f70f964250fd1f63fd4d0866e2f80ef1c574a6523757973ebd255bfd7a29e946f2f3f0d67b0c9c2378ed16372685d6d5756d0fc3fdb97bb1d4248146e2c325a098738669beaf192c87878b3b17e50253a9e5ca294897ff3ff484fef2a89286fa23ee8e6e64f2ec0200aaeea88529d79fabf0631eb48114ea4aa1374036b16dde6d0114d604eaaea4825033cceb7a7335fb68ef1e281e124d0d2f002e50628045f41b2b465f79c19afbc5e0838e79b78851d460aec1047f9911fc1b8a9125c19da80c795df1670064a3a7ad38fd5345f00c6c10814e1789f91c9ffd525ea3e9b0d7518b9b0d6adef6750881beaa87881913d94cc341222a3eddd88e0eb12336ed94c5d994a1f9ee8450a3d0afc8c45b876ba435ab8d1fc85bd6f062604f281e413f57dd21786e1d4baf7b5dc47210361d5b04253f4a70924863b98e07efbb91b2dade119cd9f02738e9399cb0dbd2a883e62b6e6622ef3b920d9b7216a1c11103b914a8940e6616f7ba22bf4e4dd7232058c308be7f6656ef526534fb1b06f1edbb7ee688f3d92eb884fe63c78e0ff1c04c4dc3e2dc92e50de198b3c293001da3f1a5555ad87134b2c3bae8724b764d3fdad6a88dd29eb51055d0d391dc019a6f18b70458598cd8252657a3252747fb867fb32c1b24066d97441ef25097156f08e201de97edd61ac96db6d5dbab5e7a5d43bf95c2d1266f15d66b2dc2424e7fea8b12b0011b90d37d5ab140fdc0674dfed73b2a62ea515e364267497b47110361840ef340110ca9c22d3a58fcfcc4a714663a45be292bf6c5f2eefe1eab8f3c9141ef04b1c477fbf315d33ac61227d85f8d783dd57699429d4554b776f4d0f6bb822c78f9cc7af83464208d7f4a860850eb13ea06005c722ea48acf618a75edc747ca67eeef16f2a619cca1bcffc40b1bdbea240078599121300bbcb799423695bf389925a625733e96f24150b269cabc0e7037cc4222c82a6ad2f3392d3805ea903806830171f12459e2503b8c0f98885edec557415b840a235c04adc5fe865b1f308189e0bb4dd47c59bdb504e365b63db0c4ded703e47dbc9439b1781a94d72a4e16b8490053c15e8cca3c573cf237cc90091d209a99c496f09057f3db1ef899ea88fa4c7dec520f4675221c3294275a0c352ae9c91e46717acb6aec9c82a7761417f373ce6950b2f4e9a377100abfb4cd43a5c1df15621133aba296f2d2b8c9f4071ae7dc133ff9b434649c3a6d295589710f5d8d47ddbe5ef59b101d7ac71e9cb867a79fdaba6fd0f4e4d0f8a8e0c1a5aee90278a6a2870c865d1bf5da8281cb0b6e32a045e91b19a06e05c59ee2e1cbfaee5fff20ce99ae50fae80c07a76e2668de91dc26be33daa6f42954ba816149e0c385a30f814ada7d57715e7d16f4e5314eb57e36d2eb52404644b7e81becaa397c5d802bd45e53b3055737c99150c9cdf210c4926e7a336a5f970ede42344d9a00b26c84f0d68191c267df451f8e6f2fcf7750c46a9500ab5f43e114dc640deea412235cf18368382bca411b9202e7e62230382b12c9651b50e728640e86a266081b9671b3dab94fcd92717864a6568c019361cd9c2b3abe31b7c58906be81ab058404839721660509f443acbf724fde0e794dd75d8afb50c133c51865efafbe27daa74ac3c839e48b8a05256128f9b598a8d523b3be262629181e12f24a6d424ad2738611789cf1fd273148bfc753ade1069e67aad9c81d3f3c3eb936e1c24dfe4bb7f654e43d97e94e702f3e96b27bb3e53075a6624dab94ad299511ed0ddac3238c1f0c54a09045c04aefc683ca403f8faa396f0c416acc9bd86d4ad812b56e22ec8214ffd60678b1ac461a6cc6d7a9cae3229d50ec2e7d1041dc4f07495c1e94b686282075bc7e4fb19318aa10685fb432bebbde923618acf57e6aa940891fa00b9932e1fdc5ce038b3df7e6adab1e7a00a571d292687fb6cb38030f7593d451a58bb1db423714c8a3ed587cc161a6f67026941753de3f460232964bfabd075f4a0f2cf6d4ea49547cc6d4e4625e2fd5e40ea53aceab6bbc8ce88e5965e32d04ea5dedca86dc4b5c029013060e1f9e71e6c96361d0a18357b066b04c3f9989647ebf634385e010a224dde41f8baa47dfcecca94066b807fe7c1f9a4d857a86a026b4f2c738b5e0353e9c6c13d713c129d35bed04bade1de9ea86f5a727c6e4c37f5c9cd98a89bd2b4d66422f07826badd49738b7b4becfb9f24c768824f029759fb2c8e60d7c13200c7dfc34d69aaf1d9b062d3594c4a29b62b97325fb5e60c3b44f772558576c8b8eacf86c51e8f47b8edc8eb6c55e37bb6a8fd40b29fdbabfdfb14bb5a3504096b4c5189119b3598d2491b61ad8d51577194cae4b950c089750a1c934a5fa13a4cbe350a91b8e2f2ccadc56fb8dd62d8f924380a8ab50d10bdb224b73b796795fa2969e39d2ef08b253e04131a984b6b64e12ce118f5ec175e6f752bd483e57fae09312faaee58e23015ef3528d9d3aa7c32015ea5a676b007b2013319ef4b27b442b1fc044ba4e932ea6fe6e48856a741085581778d6790155612ed694be028d0e599f7762a9b388f5e619de3da68c108440ed0ca98ac2b42afaca0a0aabfa6dcc0162fb6034a51d31dcef3a3835889f777b4bdc44aa2cfe7fce15b31d7e9bf76051f9d0c551353c8bf780447f42c2942c21c34780457d5a149d2ed84610f101f375abae92f52cf7652ee16fc38b5f55ca45be1e385094fc9383e9994ba1dda9f5921671a87bb4270838db160b598221aa3fa4fc382d8fd812634e8b0324ba93171806f27f1a9175dbb2e91885cb4bb278a98c5828e85dd9205089674d469b3d6c5f75c871955ac9becb82ec7bb48fc430d33a47371a4cb466c7c2058c3429c19fe3a7ee354ab9eefda19ce60be1a783c5f773f7e4c3ea7665edb3dc882aa9eb262dae414ceef8428bb47ec0b676ce07b6584a7c58640535281e6f1b1a294b2dc6436e34dbf6ab8dfc41af44ce490cbc9d5f15a35cbb75e7166c79b952c1b71a326e01ecc181c9932be8732e59ebd4940b1adad2d0dcffa12b4a4ad76ea5dbf2ef77decbd541aaf6a37bf9f5110e9b000ba3ec0254b493c5bf90d538238151b2fa48bbe3f70d2beb22d0f015d7aff81e110c5a8bd5ca8168cfc3aa645227f1ec386b2b5b2c7230f2f2a1804efa16e8a76299138d4df5fedd3fb36e25a9e10d955c63e2db5ec9b88fab86425e437502e7076f9288b94cdf38e2e478ac5bf04774aee7c1323d7a2fc05c78affae7ab5fda27acad94747a4844ae40a92caf4cd5c597ad0b8d81841b5a7bab76a054e0c93e7148dbdfd60e7b343a14e80c9d62f93ebd799ac2f090ae38f1dba169999a32fdfc2935a65f608abd7dab9104dc93dff70f544e26a3ef1d4801a4ef3dd5dc0a468c60e8ed3b8f8428330776e7b75aee88cff70d2733d67a0b906058cf3f47d001476ea51e9b3363204fbad74848e118f94f2c383cbb50cb8395526eea170a16cc8fd8703e4a99e52cafe990de6f61f3d1e9eeac0cae52a2da58c98343934864421b615be9a5423c586ce33a3195ad3e90a0f747954ff6b2ce071529b5d7c143ffc94bc6df0693892052ebce4a4d18a2bab0673bb6e3cb8286fa00067e5b143a833a91de4b276baf4942015dfd526e002c6ec47aeda266653f7b958c513f698dbb4bef780510f02b6e5baaf3caaaf76995b0a5082bbc7691624b8f9f2e937b0d67857402025a2796adf0b12da8868d261e1ae6144e55d716a7b62a99726a99ba4048c456f65b9cfa1338b75bb48e260f717f108e87ab6b6345ec8e9b13caea448312d17b7abb3b79f50a38925f1e2c5f3bf7bbf45912caf3cff1ae3b85f0b040600d589f91428473444ffd0c9ffab6890e237a7016075ad18300ad97e02cc3edabc247abbefce1508d565e9ff80399e2b9602c92ad386c71fb65ec8e9a90700b9f8fd3ce79061282b0735194edf3aa8f5fc52da24e9567b11b4ca99490d6954395c66bf6c85bf216bd3ffa9450a6ac63916ec8b227dbe4fc0e0d53e6c9749d534b32b633927bab7f96b8d34562234297824d24fd6d1ec098b9fe1befbc369b05cb240753049b2fdb08f7f82e6ed2e11bd93534b814703acbc4c78080c92baadacae296fc41a1383bbb3af1333453ddb2fc756af9a26cc179e5ba8889cbb42e3517cedf2138ab9c15deca5b802f248782edd0d8a6c3d4aa1fa36af7b5857da3f45d754f746abcc7a6e321ec71646b0731d8ec27ce9e4f8274ba6f8d6ee6d688311b4d7bd1d2b9ae80f8ae93d219888225b91bf5f4f8512976ba7b0e76056a86f1c5f0d3c3c30cf7a5f31cab3c95c7bf20245bcb80f8b109a1851e67d097826ea617463463e05dcf680fd480ce625afb5497bb403acb0d39c9dc8d22aed8ca6e2042f5140158782a0b74e1e860e93509859a384943b3e72fc4e1be4b5cb75349ab8f7716c99dcef5a42713e9b50d8d6a0cdf8ec4a0a8bbb7c0854f859aaa3cb77df21e68e97bdd101abb209b78101f92f94be15c7699c0ea006f939ae82e7c0262fc16e1b674e2b1db44d9556c6d47f3ac968eb157ad38a99b45fbc65f8f0639ef1f418e676be49a377c00cd0be961967f21bfdaaa09bc623b2a3bb74852824c27a6ea1ef4e8460706013d1749447c5b620347e3519a3268a6476fa23864abdf121967ece4c3021a87f86ff63041716f38e0db1f730438e998a313322c6b33d029974813d89462b37ec28eb58406abdcef6b62fbd071fc41b91d6fa05a163e2c2f7e5cb71f49e744f3a9f8fc04ddf4f434394d053802955f9cade404b982d5cfc0be375584cd72bc27b887f5fa415ca093649604843203380f62157a9f6bf1fbeea576c9e7d0e354b42a2a70764b59c14f65fa098d3a75fde4005f37bc89733f2cc1f6802696dc543a573aea45a6dfe0c2d663af73c61cd3e131abd8c30ccff605827797f33a2a3f627a444eddd06c9a41462d8c4e211b8eb3dcac3e22483424e7e396ea93fd5394342bec92996c3d200e44c70b3397a255b9d4d1d109e822c7e9184a1997517d9ed30e864406e227748aa7c9a11641824cee6f91ddb79a4c9ae1564576c29bfbbcbe0dd113e038785c67dcd16f8a9d77502c77228ac555ff0cb62eda6f777dfe86f512b10dc0729da87b22fafb8f98e3ad378ca16feddb757937c42a1acafd48abb4410b6c2ee5d6a428a20b31e1212bd08d39ad21168901c916cc97af268a2c3ec678a838e49e0f305db3ebc3a38334fbfb0f4c9307c7863d774fcfa9f61cc1dff4bedc0d3c9895df25d11be84ee2bd10382cf4753a1996614bb91062a5f3d1d3c869e2ee8bb5af3112b806936047c5e18da092517f203da3edcb417f02c9dbc4f1f9868c0de0bd251a1b7094ed97166fec082cacdf3ed86075a43f69264ee846dde74387bd820e915a08eb0ea2b8f72658876a9bfc5ca7cfab7274f66e106235119ed29bf80f333f2e925bf9f19245f352fa7b1a6523aa5ee27d38590849682b7c160ddfe1f8c0e74b2ed303861981b21478e5f33da6116dec11b5d3cde497dd59526d607f5e1e8d411e131cb700542a19097a92a80ad950f5040e44a8c727f32cf1361ea6c4875e54a292d448748acf566165da4236a146571a78e704d5c6ec54824e42ba539e259c892e1b42e548ea2108f5ac1814700ed3dfd3f25558bd8544001eb6b43903c893022ba67126f6d725a677cac238aa9b7a40406ee811efcb959698e03a28aee92032fad2ef8d32e4cdcb4b800b404038e5a9a8d9fd8bac799de4b666d81d90fa391b4bbab4938a52a8391705417a09882b4f646973eac5dfb62e428aef4fc7b0ea6542d55d45964e194f772c04c37bf96197ed1f39e4641c0101281d8a954c67b82ef2467f09bff5ee4e6914a649fa5aaf4d484a191e56486f6161efe24d256ddf7cc24214ec734dbc4f018ca773021e1f049a984e3f67c2b2d45b166f8e905e2edd20c548bb4f8ed63cc6e4c8202e577455bffcc20fc14d976f3f10a4af53a9cd93d13c273fb338b9a258d5f131179654cfc8cf4878f3ef3d12b91c9d9ae27cec262e81b92808a56ad5e03868bac2aef9c487777dc476f6f69833a60caf04e7bfafbcd3c7101050d2fb666ac20291d770542453281db0e2d8a4db7d9cfb4c14576e438201d777e55ae303c7444cbf0327fec8303cc98bb64fabd13561553b7a15eff5f45546edbdf5936fffbeb57d6bff29e5f8b222b35eb1b67277c3a623f3ebe5e1c73df0d51912b47cf5d54d63cd2c697377e5509a2b05a86c4d09024726d0b910adc3f5825ad08674e5e36ccc1d70ba32f07a3217721d4378233ad58e2c6d2500f1823a5ef19cd7a0a2cbdf9ba1673f5ff51212deac6f46c48d464c1b75345be28bdeac27ab94a374caba9bdfd88cf39c2ce44651367577e81e738b4dddd91ed296cb382fb118704e09f2525ca484c3ceb25c49a5ea7cb2598b59ba636ca3a2d9462736c3b1d7e84beaae64dec941edec98f9ee6ee91393350aad7722d25367b802a66e4181d85dc687b8c7a569fffe5a9cad0adbd29c0ec72a67a451b989584e744c7e2a14e132a6ce9aef25ebb75c3b0141d6005750472a53acdc197a2859d38a82babb74e5e6e41805e277283055622319d733277a77b52d77525ab7a3ed5b63a2cfd9794059e0b54810d918d5787ccd8aaa45ace004ba95bae9339786b78e68e8be0458ebc8456e5481f74498ef773d938a068626e6ab50491c13270e6e4bba622829f455fde5908fcde5f33ccfe5085eebe4e3bcc0a01b308ed0e60cf12eab51ace49805167ef0b8d32911e86c3a4cdfb55cfb356eb828b7befe92141ae96dcd965e4ccefcc41cc2e74de17c6767bc187d8e9f417af8a00947723c7627bfb97c037c45330a6ce3302f7d3ccb16d8ebe96caaf8256c9310158ec8d0792a6a524bd353a4597d0f6b7f26e781f31ba681b92447acbdba35a2051a2f9377391d0abd7fce47c223379dc9ab4f920deee953190c5664d99b0caa73b19cc3eaae0167b89cb8340d97f0a3c9831d0fd8292fe2e7d71ca36113c1c764d433dc53886998bb1b0132eac6597327816d80bf2e3bbe3caf209dedbb739790605875ad4bd3da308209ccd592eab0ffcb8d7df3cec0e1fc44eebef0f7295794c6cc5ca206a942c29e8aee7d5a031c20c1f538b3ecb29b9ad7f66aa8263a68d36c43c7aef28db7d9bd67d02e880e700b9bd9b8d3f47ec25bf869608ff250ee979ea5d3f298d9db5d4039f6f8b57a673b1cd8e2941c4a23c4ead1bb1299e05d20f47374408f63a628b2295f1a4821677785b882a251e3e3120ef5fdec1e5a0d9c01766708c5d47bf70a90ab535d00321ff3df76319395b1b6f00e975cc0ed6db7738b6eb60c8fd929cec1a2dbd625ed74e29903bf35da436e45997797923fa46f7db87ac831e7f099041575a167bf91ded711ca08ccf18909293779fe3b51f543ec6f7645844d6fd1cf3af99032049d459bac621edd07e2628d3e4681996ac2dacf3619fc389c7ce6a872f26c0457c7f77507bbb529e1f8d6dcc1a9ac579616dc60ec5340b2d4d2f9004f4286f46200678c02dcfe76f7cdf69d70521c7c6720f1cb7e6780a8d4b416a22ea1d4ba1c52289384efaf3ebc2521f87541e2f18b04103f7862910999c46a9067b8a7f90b8206333b8018e3b10b30fe0e558ba1b552c7a41b2b270295f794ed1631d7af924ca43484ed0daa935130ee1dded519b88645c72312f9f0a957d97e97f67bc9f2b32b5bcd15f5fc5c27dcf033324aa67f8005201851daa2eaa4d1f4b81450c2f46d85517c48ccbaba4291a492a9da5cd6695a43bbede9dba86d30f3f1f2207f6db7327e1d9f9da55f76fd956758dc055f09fc4971052774a8598224024cd1da6dcf51952bfd8d88d4068f91de6dbe67ed52fb18d0ac2c1986032f186a5b5b37a3023bdf598434b5817a4d6d1afc42adf66cfb506433edd95acc88303843604be791bde12d6990ac2a01e53b8f517c809c790a19f077a1ef7a2816a957e3db1c651f5c0859e3dc99ff9578077534194f11df7bc590b8fb5b009ec37e46a74cc88ad11622f0487080a45d5023c4af867d1f33f0f279c65bc601c78e2a6b4baaa63326f57a398ddaee6c699ed475d4f153d39395b1704eb27a785010d7042ecc7c757b1e47318e7f0b32dee3bd453f681133897e1141e86d6ac0a61a2341758097c6c390a349efe8a0e9df4e97bcf28c5b53d0cd90627d06ad427950aecf1a1c42760886957bf63f2f28e3fee3fe84e51d4e1cfd082ae0c92ccd2e3d0364131a332aaaa3dd7ca6db3782627aeb8bed8c7974ade2bf6c890075a68c2e1c6aa24cd2bf50d113ff22d73a30949d22c23f4b007507ceb673550ca65ba04ac15cbdc835f1044762bb3fa5c1042a36f854c6c9a23a6124a10128b57727351ab5b901734b9f7b0a4fd9f11e968028b3dc7903caf5c3d0e34fdf3ea8d677d86255f9c225ac856d834596b15524b88059bf5d1a439608d5b19b4177aa48589dc12751f0a3fc658246dcc15e49dc8daf2e522448303e247cc44e09a3493d8a38e5b19bb71f4ee91e3c0a32f75430dd51808f0a1f588dd0ba70600b709fb046e3103f728e57b7583c46d0253f4e616c0c4b80382fbc056aa588a801e2daf8a8b85a1f249f4cd5a77862b9869034732f8f8b2116cdba8f44cabfacdd855b0d9d7765a74edada7dbdba970b5974a554e10e410e9b276bb09371d359d05655672faf689d9576d5e57104dbfa8ba26474a4a78f83181cd113fdb1aed7161b8f57a8265857f977b68c0b600bb65e0b4e811bf2d407ce2c8767f8cebccf178fff4dc4f10c5127d6d39395cb6a51bc831858d57708d19226bf320f6da703b682c6c101a514cb07ed5b6732795ce0451ad1275620aa83f8bdaf896923b0f82c1b0f97fa85efb82fcb9e1ab1bea59b29f4ce46978a8be1986f37985f1d0149dba8ce047c006c3268d2c75ad3379ad55eaf0bdfb6793b7baa2749141c906c3a0f2498b24a8534cbc3111f20ea5fd176b663d4aa7ff01255f49c7c2c7563e59150458a0da251bf81366448320c8872e0c17b45025cf45f73087b1b243171b5cc66b35087093e4e9701d98c10392acf35af48b7bb1b0c3c5ab8d3f289898ca79e9d9568c8adf1220584cb96632f9bcd3324836d6c618be7d8a6668ba2dfae27cd1415c186a960fed2cd9e6c0b007778e7af8b7d3a4ca9823e8dc87f7ae7de04dde40df300e84b1bd542565c16561c572a11ac13e10f72a7f47a30e027db96d2927909d58925691a6411c4e678e00bf1f47e49c32e053ca82c98b5800662539b1c763f5ae6405d34f277890335e4db58939c3c4a29f93384e0eef9b51f608dde5e30187980c63db3a72bb315d8ad79a059dd610d6510b4316455f3bcca4024b90ad15d145d7c7a44c421aad7dd39cdd9ac06d9f2911beef54df794c72f576feffe17ec26e1427e524bfe0e569aff27d43665a3928ba43ca1a013e461777fa7a43c094a2fc1cbd61c34641520a744af086c180aff4adeb7ec46af0e48bd3e2efd5fb6a167573f9aae91d8539401fb5c3909a68e1edf320a298c21a6f24940d72662330634ed66cf9efc9c84b75ac9192ad28bb9624ebac9850c928132b08e0b76f61b6181e685d710c6d775e6d999265029586f672328b9edc9941c902e69d51234d403a209e639c59de2c73fdac45ee8b41ad4c7139ff9edd2b8051dfaf0fd2ab16ad4653bc49f69af331e34de6b8066f5abec0887adf6eb604c3ff2818f706e69686cafb64a82fec4bb120223f7c8e9ecc3899cb3ae2d4cd2594e651f6e7e79eae13e95b100f26c27f1e036f4f94cb58dda81407fd6cb48b8b32d9eae6bf21d16d3c0527b18929bc5101f558dec2557c3468e50b6c380441df880ae9e91fcea1f93fb2c060b3802a05d3e9637794d8fbcb45ceafcc593696cda85341bdea67d75c6159b8f77170f5393a98235ca34c786bd648f4bd89bf939bf74f0dfec324ff37ecbc804ae765ad9c40b16f1170a0daa3a1ef289946154f287035cd53a7eca313136f691f63510faafdc484a33ffd4b5f130d8345159451c1522b98400fed7a144880e8140b686021946f8f544e73a2d2e24e4ab37637899c45bb80887f825aa735b1265a6c174897d35dfc575338d0885664a6648abba5cf1770002427da61f41cce48199b07c390c94d6b4366c531e3fdeb330adcf2879a5150d51ddf40134a7f949c99a4481cdaabaa3d033ad9b0da8b8a8956e56400bcb896b6ecad081408be5bc4c2ffb5e0a66dc2451c14163ea823dbc933bdfe2277ce21f69364430c4360393fa1d46767de9fcdc66acc31b449f7107764f205095d285c28c4380813044150547a83a95feb730d8e27a8a2826d1db8a8479e546c0b02321fd41a747e667906bfea3bc690be55623a597153c061a7af74a7efaae7fb9559d1a6ad8025bd33140f8c3497f147d4a3066bb8ae35c785130500152d2a54e5c2ffc3d6cc9b894f63c5158a4dc349e02397fd11fa697fdeee44f9fc5f64ca3d89821f69f480b2cefd4c27308cdb77e1bbd19af4ad6565803ee949d7fc6517106a7da50b6ed1eed883322b870eac37d717381bc30e820e18a610792f5883c8b9193cf44dc1a51f8863802d5d7d170a87bae4265a89a210db0b84f3ad59060a99fa9522950c7cdcdc2fbb1535ff720b2a68a1fef70065b15a809e40c54d6e5036e4597e8bfb95c2a862a3ca8f9203ea22485d2d45bd42c872c6ab54dfc12cfd9e748475c29d674b36a1934490c8f3cf856e4b78ba3f4da1cfca585fe778d9394f2ec9e0055e1c0cbf3f9eafb9ae27813e57e5e7ff622a45a37a6d9fd43af84ff6562396a35639af4387c6997c739d8d444c467b03335f752d1d528ddacf324f3d77887ef9a8d36cfd2c5a01ee5f46e40781da8962a9661f31cc1f6f42237b50989fed04eb90c431afea748b4bac729613d665f4039dac21fb596076a6e2c2f6389f77ffd1c73b52eb03ef987c72f75a29f0d0ec67cc8a251b5bb2af00978b690021a690cee83ea083eba50a074d9678e2916d355180c1580a8227247a15d7e32ef24ff1ad53838eabd1b125a51677d34e673b0e7d53676bbf76aa1c7e2266b4cd69f7a8baeed35805f261c789c5b30f3d98795f72748803726c52e4f0e8716b5a75e9dcd19d61afe735c5da67eac0de8e62afadd956713ba71721a9102cbce08cb738c95a30a0552921bcea1e139c59694f3d765e7971a632e2efe546e34b38eeacdc5253a848c6817cba0d45ced1506a81e157a77235790c967ae16f1ce7224b4807ab6d0feb00a70e361706323b0e18c59a14e13c257a1b1d919ae354a673c9be4ea14ff8d6ef40a9310d9ef1b10351de926ac0a3206548583b10089140ed53cdce0b249705b39447295bd1ebda1ac6d98275dd30e5daa227b7614daa0bcc2c4916ef54ea0393e8483ceefccfc143e19dd16a886f079ea5fe64e6d7ba184be2794e5dbf6d8ae30a5bd872a45653395f902cc21a6c2b8ec9381377c1197801593433d9e40b5c5eae2d370a4435a7ffbb84af6aafc798b38fb12b8bdb76c3126d1d29024581640a28bfb78b950685817dad0c195395b5e8acc8c394e9539ef4c58d4c57be610c7b49b2cccaa1f5c3dc8379576bf4cbf0cb6e9dd7ea9209b136c7358d9a12af3a43352350c0ecb2aa2d889695d79b5cfa5137553d508cf600775051c8da5aa2a2e05ab60836a84be760c302d94da1db971d00b9779c1d23c175832abf3c32fb66b6a7b041e8a4f136502c1a97e47968331255dd8492ec7fa5c9ff1d8ca997e73ba87c5f6afba4e141a38196a25e18c4b7db266d3cd99486813da5a448db1ff0d18f1559458dbedab30c1b512fce75a14d9f4449a67d9aa830cc78998aeb37f6d0bc80f1d1a64864d9a1bf9def7130f2abdb7cfc6097da88385fe8cbe462139cbca539edbac2315ef078da0df4955836561c5703d96255167a6dc315f9e4de00c9a95b04fbd85e14dacb80cc9f414920c4104aecd30ced06f697ed2b662c91cbb90a1566587fb2bbdb45387ea4626cb2afec195fdae13e52e256cdc536148075bd93bf394384fc01566ad06894cff012a075b07cdb5dc05e95635429951e6129fc8236adf561df3f244b05b00551643f3b12f3a97c7d7ba46096dfa42b9ce12d2b44f4f4f17e42b0a66a7f2d0a7477494f28f2ae10c6b27d00e6a9f67f8f6f701101ed8c25ea5daec31d8574f5c2b4ff754c23557ae6995a4535f085e497f8679a992d4a7403857bbb1c7e87e707ffed9820b6a1ddcd8dc25aef0f8e4cee329c826cb4ce31b62ed3c0885cfd8e2433f9f00f0962cad9859fc84c10c16806b84050c4c2469f43d6d83420ccf15bb089b2bbe6b63378446f4fbf293aa30a0e4268b099ca3be60169f8a0f912be805e192c52a46f6841ac6394881e138161624d5204fbd53a2f820f0ecc59ea7cdff6493ba06d04d7dd2aedc9638db74ace86124248370d21584cd541579f457f4530d7fcfcc47286729d9ff058a0551c993ce86e9e1423b95cc88f1ed86faeffea74ad2f7da877ea895f2d9cb919fa8ccd7f92dc327f6378b66abc70b1866456fd3a02cb7aa3b9e98e2b4f5b07754ef9f70df78d0d5b32730bfd6ca4822fbcaa3951b1d743393a4871b73c965468b96b2c485bb5350b19f30c2472c582dd400c6e2e56afa08ac020d6cd72a5941433b96c248b87f857e1329cab5849b6d76b25333c5b3a0befe7f39a265c77cf9bb2be7a7ba2f14a8306035e7ece33c710e61ac6c574dbc5f9386b008e1a724ecc5343cbdf679312af897065317bccb4d945d533b0d269852500d351fe15b1c265b92548f65040122ea00abdb1223622c86af18d4a4844af904613e10f0064007ecbf13da8c88964fd795705f91dbc3248bc5c1f8787c434df8b6c832db28fe9eb7fa5b613aca6ae1293394263f84de85c7c5d78b9779061088d13465f65553a8e19569566ff5cfbbb1008bda63ae0f3d3f062d531965f198aa38b275a9b740a17dfd65d1d2441ebe7721ad030b5bea4fc0f875601fb27002a0ea06b10f35ac1f4e10c35a982c238069d89c7b672af75327d8db2b8dcf573e9f8c0d147c183667511525e86c7e942e66b3dccbe1f2f18748ed6315bd0c739fdae568a9ac32fb3d92e1f22bb80efbca3490470fd52b482a26567612d3b25bff384d90231c58b879dd89fe9742dbee57345e256849d0f0bbf6429d1ab885de87bfda9788585126cf5deb6b76319afef65a062d3a9e7346c14f0614390c9a7b19e61655a4c440ec4e1ecbf7330074c6cd90c52b947296bf4c30f6c6a9f184b585c38d67c2ef13313894f0a11cd65949d787ef58bb33482bde7474c4b47b4b5545e13d78156df58ba5153ba249a9a0185a90a0281dbadbb0390011724a02c9304aa12ac22bf51a1d0d48d388be5d201cb2f334b35d0507d8b3eba0ee235df3e651eee242012c164acc6cbcc834f3ae317d9c2f2eb3dcc66692959eba7cf06ec4f3b7f9ab7eef502f09ddc3860e56b777ad7b0c1dda6ca385385154d35c6cee10c5e1061719a245dea48d84f6f6ed0ff200c4cf1d3672103a21b612273002ca35075e27d2a8c8fb76766388ba5a8cec8be3bff1ce9673bf43b88f43d218460598c7f55cd9ceddfa118305ddba784743c52911f720ed23de1d52675e6fd9b5642b97f503a2eb974d91483d3281d6fbb260c60633679bc5de7ce60eb33d907003f6bda054a538e312c1aa032a5312ac2d871d86e0b97d6551b56c7323db99edeca59138c8762ad0c16cd9dc827c071fd7a935255b9d05f666521d5febbfcd5afab856927f406dde70992ffd14fc7094aa07b9a6f2f1f7b15aaba0ae8fd615d588025967370c475dac635fe49ae93203d7417fcfd6dd8c9f89a671836e099871080f3f103359e7d28852079c2082bfe85348e7d1734998d2fa358af1422e08e21ab4c6de3c134df0e1d793c72c3669515f5362d2e2a3e68b9f0325477145edead8fafbfb93f25d537e421466d74f45b7912db37fad35d3ea5c0af38f72fe59d696df71eefc73ba8fed41bf26cfe7e2a9d6c0b66a608c9af90b6fcf74c4a4ac2dcfbc63a6bb8d7dcdc8659f600461d78fdb14aba39423d38559578fdcd225c429a68e507a68455aa933bf66260efb7ef9a53157514aa598dbe9d612aea44374ce086a055fe3b09c23ac4bd55b58483103febbd328cb547203e964c37f9760a3a06079584302e1fa003ecf83dd420cbb815aefddcc8d0f1ad72da7d4c7c544b6bd078a5b555ee27d28fbdee59ae06025265adc8aad1a4c4b15add29f783b7c3fd0c7240adc0bf348ff5e6de9de3577d1c1d81a1de88680d9f9943520bdb0f08c886615766a56e4d54e00ddeef75eefe4968738e8e842be517db4c82cdb579645078771c6bd478cf016c7f3192b9a19d73e1f3a32c3e04946bb144c7a6b4f5897265b016a6f49a78cec206c11885f2fa1edf9983eee6a1a9514d55b97acb043cad0d2cc74e7b52a1348bb7f493c6701b5250bebefe7b3e24dd61fcfb854dabd2ceb6ada9d41d6072824d1c53c0a71d452796bba2842a796186b4b49679025dc4f6ff2f88024aebb8e87cdbe096a6cb62d1af48dcb4b06295bab2b685640ddc0a93c4b1c3f6231d9c9b63d1307d8551be8810cc8585ed445632a76ef7ab56869c6a947516c636c84cda5a5a247745b2053fcd081449a8365e17332ee3f2c0e7dc1c6b5d3449794fc73180242ef50fe06270de5c951f214f7c2d71341821fb8078d1c34a33ee37a290f79b89d278080265c5d84ce647cd5158ba99a4fa04999b6c8230297ed89b217f1614ee77f1d0f4b9fd152a822de8d4fd3b83f8f19358b510de89c65309a326c25391b2a8748e14ad56b9a09dcb1ad70bbcaf46a43be4c5d343ac5d69431f3442a622c182588797ef7ae2bf8b8612f7be5c06a25f0865de253deff8d69858e949d7a71977b4b52bb01e148d61ecdf70aa2f59b02107fbf700fea3ebda94ce9110525066b311d46d2695067c2c2219f85eee39fcfd7e3db0e9df7a5cd2ada438127ba7867ca2162a48c479ff98130745995d1c7fed6fb649d149c15073d1d99e8f57abf1e5fff52bef6eb59fa19238cb8b2bd7cc0cc009c34db972d6615808b7b0ad09d5109a7651ac5a49cc06ddc5de5906dfc8af0c3885bcea844fffad091d0c5eaf5687810031130895ac55911c576a37da2c4673027cec5548bb38acecd6a31a1c263dfc858ababf64707775706277dca7fddf2b8e6a38e6a72dbd36976d633373c6cf99afb01a3da0967492a95dc8cb6a7d5766478633d667d6e7b5046a47e4762e02e48133408c1f452fd04ac96f904ce581a99890f2911cb8f07d4fddfd02d03475e65e2e9904ada95a2ac12c7c09e50c3bcf53e680c995dd91eed686ef2ea6945d0309c0adead7376d042de26954b5235e3b779a82581655ac3282bf5c8dd6e5580f3a7473e7ae4ca8563eeb4669d9e0caae688f5c72543f1abc56d83420a453c8927c8d0361cdbdc85d8548c653bba6f87f7cdcded6350cc94bd051f48f8f7580d909891d7d5e57731d8672c919f59ba3fe012e5859b738e79c01cef82a08eb6c25088259b2b3e885471cc0d2053c4b0afda5bf8ca3f1d682b0fb2665da314b7a7084dec47d3c4f44ac58a2a694bb8068fb3ee275efb6d260df2077e03dcfdb5d50572699704016e93450df141f9af6ddc69c18dda6900b638e136a0b37606945153167f3e9dd0da9ed8a2dfa45144822513db6572188782b3ffa72792b99e89a35e8291229aad3b5535c5a6d6b76030e63501d2d5aebe93a38f6913eda779ae9de1536cf5ea4387e386edc0ee028b009e1a661492eb6aae03e609afa4210f5800cf091909652acd9ea95693dbd317163f6b8885b829faa696b0fffdd256c43d22bd8d9a5c94484d9812a4521f89e1dda97f3166227624142edd28868bba75a84557bf5b54858e725a0a949f6a9774be9611791b9e43adb5f9e55c3ab7af40fdc76973846e2b62a557037fe2c0fdc1e712192ab55cfbebbba43148b74ff086bbe42095c5793eb993876ce7d33e739ad85d1df8451e3c15a444c808706ab319ce7143f40db8d4768c5bebcf1ef444fc56bd9c4d48446698d57d299d4c4dca563236212dea19174d8684e2518bdb4f4cd83d8881155e8f525b01651b2fb7e32d262a8c970e598fb15306149cb478b1ea0d81bed86f26d32b2ca544a175640bfa4f2d8152333d3eac463b3fcb3cb472844ee7a113af04179ba550690f1779d3c62b87072feaca5fa969af2114c2b50a5c43ba3c08bab84e292524bb997b722a0214db502090ef7c5f3b555211520ff7d5c4e51a4cdf19a4c820d0fe4d407d7f2441377393ed09ba3e61a6ff0bb85afe438de55da5c2c99d029f5ea7a19f21735b884e913e879ed6c7659f644b4eca2deaea9be11d79bd885320819ecd9428937d3b5341afd370e8edb339a09b87061e62282a962af88f6770985c0ca8b92244cff40a53ec9247c1f542ed4580722a89ec072950ce95fa40efd88b31184dbe458f78ecd2089f5b4ad2e5cc34e1313840413608e165d318eac111354a7b4985f6ba23a0b45ed9ddd4a08f29ecf02b1c505834a5e5078f75845ffbfe48b387af17a5eeb5c0aa611b0c743c86bb0e2b9227d8549ce2f82bd418dc43f9cf17adbaa1a40aadce943d8107ce228f40ae68066f304ec0d0b123673496bccaf35dec4c346bc5a9e6b14d1b4f6ad18353c159d080313c59a5dbdec91ad38f1c3a70421b40e1b5481800243370347c1c63c7aee66bcc0cf6fcc56bb884e61dcc2a5d53d0d60597a4cd63c7ed8aaafefa6c03c754a1875bd1612c39e304320a386e3e8fe5db56dc5d47a8f7cc5c53e5554fb9fa79fd5fe09e448e9564c3747b1e796c4f0dfbf444db6b440d5b73c921f2b754ba1f08f0d178ceb65b68d8d08c0fc3a8ba07c056f68c4b8ef72d56bbe106b50c971df0a34ed372858aa648000142fa9ed953d845dbff32a0449700ad86ec7481848e70fe6b3e8e7192abcd13e932739d558be451e4e8387f3200a25724fec441f5b394c0710405f5c2d5c8df9462b5060209fb035e2cea2c9cb7e874be2c10a664a6876d84b4420791c923e1d151337d57908edb0e56d4641909ede11cb3223d1bb831a42563fd9f3ace18cbb80109ed24ab95d59022db20efe4dacfc6c4d87d377d38d9729a8597616f6e0d9054e404fb4c82691da47abd7bde708b1f4192b83b35ee6d946e69e59ab3ccba38e5e3f08202ba34856e3086ae82eaf2c850a4b880e967a8decb04b0f5e8f693a3274a7b76fea0cb831d78174470fd901d21b252f6c9cde108bb296874a2e8792d7b2de0b214c1cda499cd98f15126dce0ab3117898249b03fd9766aff9b80dcc7e4fd190fb076ba9d8fbbd76f5bc1d3e37bf5460034470daafc7360a49bac228695cf83a754a23e3d1c75c6f434d1401dd3c8113785fe66eb695890aa03d5beb68dd16719b12c5a7f52c3c58923773762e89f4d3d767b4abb8a0e04fa69143bd2601180990774af1bcde46728de85e117133b1a69afab05dd158dac7bae1605f409ed48a1f7178d96ac4ffff4c0015f838af0737a60342ce5dbbe80e04771e956c8f85a076df4261c143d1cae7fceba7b80bf43c3d66df9bdb50be3cd86955517c80d349ba3556de135d80525d452bb3d3be29eeecb680942e2e645da569e4b7ae5c082b63cd6b60e47a87c828b876a5bd21cd7f5f98046220fda090e3ad470cf259a525db438c8635ec9ba469e079ab3eb76e0d89b1f4cce772e2c823798f2c8640d29860173faf3d2140aeadec823094cbc59e81ad81b114df29aec565c536bee6183b612372184cc9afe691344c67781ea0157e6c9f1f076916b39143f526b9063ca6acc86a0def99e8a5a02b76ccfb1e97e35afd14fb487964823a8a62a0c62bd12eada5608b930f4a8b50550d6d6c3e0ea3962a615fbfce1e0de1f1fde729795de52a0501b5259a4b36a066806b8d929f735507817b48fa19337b02f5c41052e3009c56dd89fbb44f09a6744f0ea0a425027df9da18dea1254ce6b236baa1a29b102c7bc45481e96c4897afad8de8d8404f59abbfbcdf99ed1b4bfa42798b2c7e9bd37abe3416508b257fe898d4e167e037e0db68ac9a22a2214990500a30c4cc4605c06f5d29122f0fbe0a24812754d243bb7165896fc42e11ab2a93cd3510cf16d621166dc2b30dabfe5d8aa7121c863362ce6a890a003ef098fac834ad7b012fcf4930d78328fba6d26c6d82e842163fecf1eeb7dba65eb38fa831bf1785ced29d1e0ec6ed791a8532a36cd90172dabf047782f92dbe70dda2672bf9e7bd962510f9842c7188cb004f38cd929394aee0d90ab2f860ad84b81ad442519917389ff401279dae4f397e39efc399a39a9b9adcb56c88845d4419e5cea1b92663a7765e062ccc1ed419f8d99115887bf6a3434b0b62c714db65d133b10e139baa461f23ddf274b28046150f7557b27f8cb06204baf0b5efdfdad9600b7a7dd8bfc67e40379ec0d81f995ca68c41653c3ddc42324ecbcf60cae781e31193769eb5ef49d00fa7b5ed5d42a55467091a7bc5f7e010e4d1fd0b1e19d3c58bfeda7907abb3ef9a566eaf38f6efe779b627ed3e180979d3b5503c77a5b6df6d51f61f851869656c7c705b609452041276f1619c055222e7f8641beeae0e2a0809bc1634ff30068dec0ec57af7b510b52b604b738cab8d851ae957418a9711866808569b0996cc459215e21b35a1e0c6df4a1ab2a13afcd6335ddae4e22169383d3c89f88d71a69c4b12f47f869a02befb289c7135393605c7a78537c307e2b01d1792e38640c6d718d6f75ecee3430ecb967b2a123f5f82bb79be4449dfb74fd5df6c79715d89344dfc77849451bcbd2da9e96df7ed99ba2b695ebd26daadb5a6103c4133240374f683755a869ba940f5f32747d69ad2eaaef0c0bcb9ff8a0a8ba89de58fb61b77781b5d2feaf254aa0946935c06a7af8b5faa8ce6caf19c50dd309865fa07ef72ce495588626d60350363bb66885878862b48c13edcdd5854d801b5f826ae06546823adfe713e4537cd223fb575fdc12c37b285db46d77f103858ab40821ff571501b54d5715d5eff7034c2e1ceec97ac7c89ce0d20f94bc184e88364c823677b1ad5a2995df06f55ef99eb6af2c904e6535ea79f6580a7ddf76edf05f1e5136beb5dc385aa31cce7db207d1c79645850c110cac5f5104834c622fc974ec37784e80c38f59c6eb95acee3396a15b9e9b504c40b706e5ac0e1d52b53b6791e6d002a9972c2a22a240bd64e95a0007a043e0c11b7671e8a0614100bcf2f2a37faf73daa362c0cb3414776647c6ca8cfdeb0b45cc0ba5e5943ee2cc968823cc4480f73702be81da38a8008da24049713f6f6546ab0aa8a7caf15a7096359060bcfe1a9e06c88e30a4a5a15ba2728b86be6f6175e5216b20c12ab59f197dd8d507026bfda5e52c86d193bfe09a97c52bdc563958aabccad39cb682ae6fe78a423058234e1e5b4e09f03923fa731f84386cfc4600befce4fab05aa6d581eaa906cd971ee1f00b8bf315005f4a75f0a2c082c5121c30abcdd32329a9d420376560ee576e3ce4d981b763e3a68e869fec99c5ea26fc296fb6965606390c2625cb2ec62509bc448a5444fb471e11fde86f31f7810d905e59f55e2e6d29720bd3c72447a29e033c4cee35ccb036b12b14e9cb861755a495bc8dc5c6fc3ef550f00fa1016eef94e97e907c0c6317796204abd55f97b27ba2be010bcb3802777ff8c67350ce8a8a725c1ac9b8726c232a2b6ad21c302808ac5d9a1cc72b00112a09bb7cc0cc9ad097458f12afc8234177b32c8fedfb95e9a53215695a2cfca9161c657ba0ed8270490a58fb48df21dc82f803061c1bc7a65dee7ce244b6062239c3b2a9fc8a0761d3f4d0e35065934dfb06becfb73ed862788097e0caabed4bb2e2a92843e7e037b81e47f7d3390d8e922977a76af91829130573c2e964b3c915abcfdbd7c46a0d4a9acb57c3bee9b6c2b944ec63923da5dce59fcca8e973f9b13c1b45ef4271a72c6b37bed305f1fb964f00d381622019d89ffacbbf730b1a5a8623ae03b316f1a2ff14bb3ffec550406f03e2043471873a92c6e428bb717b82a1f0c7026b01f7af870a4ac1826d33b6a506b0f4012071b864c0509fcd00b7b2f025c3766bb229ffee01b99efa2b8fd1899c6f88ed6cdccb225b68b8dd6e25f779afb63fab5f466fb94577c73a8d89cd7c604f710691b5b02c1598aef8bb82e0ee1f59348bf8da9e1d0b145073afaa1915f005646f962e8248529350d37daa6fbd3702b7f62060c5e9598e5849ebc314b2ce3ecd1b654e4005d756dafe30f24997ae8eb17f3cc380e422157969cfb865380bcbfa581dacc4bbdf1177930e7fa6eaca0b95724fce84f7108470d36c3f87511666e681cdb87edf4b29a130f62774864853bec68f7c4e7c8e7ed8344aba8738e95a98640b147c2f84b70854d9d79195672c9ae3a52b781376966df408db866c4f0f6107a39b618a9145a0983a7cbaf5fb40397b1e98ef8c444f5c5a787765c9ae011f32b34e0ec81a7e144409ae19d0e93a7d9fd883b799fed35cc1aed5bbd3061562237bf4f3b01bf183bcb5dff3d65a1f75934891cb066e67c12563faa564ba42989c31a253a38b02058bea0f4c453e65555ba06b17f4092c4295c83ac9fd4383aaa24f4bcbbd4a9e511a96f460c56384ec3509393a19b7daf30a3ffeac8038a90cd360445908ce7b501b633ca9515277a1a748d2de5496355ce33b1eab2935acbb742041bd65c2acfb4612bfa2cba7097ebfd6f2f42b563d45f10f9ca83d1182b7cc01d1fcbed26e29c043197c218b7ee3f26868fa6d1ea572a9f675049af2b43a5840d0326c27529032ecc52bf3394993d23c6d47bbbe65214b524a595a4e5eec74bae3b6c74df01d2a8c7cf66c24984c27fdc28023ae8b3c554174282347f096350d19d3301f5561d625c34f1234c9942aa804b9ecc693e5c0c3dc3809eb57ec55be39b6a0a04be1761214f1d55faa8dfa2dfaeb2f1f89d151f798cdd0fe238d46f8bf47be3e4a095bf3c7a477fd462b4f662e7942f16b01a7d57b1043e7b2033f1072f5979d7d7e06c8c158c1e9138a454b6e4b293a3300147c4a93ecfdd6b7dbfdf1d1eeac0312cabc67f38453d4aa9dce877855e47d26dcc7dfaa67cd1579ee7bf529b677faf7adb83d201abfe9a2e1cd9d94cbc5216ff71aa89938096f62f731ce82b8e9185e3e96309c6a9301cf2e1bf4f6ba60fc4825921b1fd07e7bef0438582c9a0a2de31391ed5bb41e53a244163a809ca5ba622bab86239191384bea260cb4e16082659724a5becbf6e9fcdbd7d62e92099fde03500531f1a3dcda409babdb68c965d853ef6309fba7e6bdd6555b323c0b79e377d217d51e1c390ff17f92c29ab131257e7aef7b6fa13ac59934d38d470e877f8ea2d308c1de5f04dab7a773a8ccaccaef73f1dc1642c290e093d3abc3275da97e62dafc5968d3ddb44af7bca5e74f99bc7e0798a0e1eac8e964689a6f6fcf2c476f82354af70638d88a7288ff30e90cc320c2545db75f187e2ccf5cdcd6e41c4f5d6f06f14f0494ad05a97e9efa8f8dc7984188f14a59ca8abb92cf6516530dfd6efa1bfdd3655e2dbb7c1cc6fde23fb7dc72d5969bf9208e67d52fbbb12217026dfff1bdcf0e1629bb5c3609be36e79a18599f79ed2321c25db78cd40c2481d4f1e76ea7df998be8fcfabcb26f750c8b8480170c22a43f0740c0192c62d5eaf1b8a3cdc4b8d4163b11c22cc10a92b583f1aa8e7846b85b41b62b9454e238d3bdd0ab40139ce6295f92dacaaec3bc97f335bf2030af320207ab2ef2d68d32b66e242f0262a611332b969a508ea0084b5d23c5bbe660f1a7abfc0c1e2ef7e62e6bdefea94ac9de5a357069aa3da1531d4a9232182375ececdbce9fd8c59dce9b752e1532e78c9303c113d11c8b1c611c14312ee4cbc84880b2d42e97df89f81a03549b5ea4b880303745580a987cf9df504cf9afc302365b03bf833ebc8dd735abc10a47dda3e20644710690ec7cf4bfe51e56c921265792c016b9cfde5bbd238fe75be9bc219ef80eb61d821b2e365aabf03b24972dc110eb04c41b40fe16023190ba4071cae0de1e7c402414adb5c4437e59c4487b3b6e9dc7e7a171969888fdcc2ed46ac78ef965e62401d991bdfecd3f0f064c9fd92a68acb597e621ea0d1641b329ccd70bba6c9d2715bc6ab0a6e69560e4be845fb3e2864ed7fc95ca5e7a3884010c3b446661c9732dbbc4775ebbd6affcb4de9fa9be12377f8ec82e907e0833f6ed5d90bb25406a02a3a0f0f7fe1172d36f34a92ac6669c74cd283b28dfcbdfeb3d1c9479b5dc76d414bf8ffd5efa4537dfe566020fb38bd4f5d67740df00e19d95a598ab6a09e8d32e01dd71717410815f486f591993068f70dcb85f80ebff9e8d9ab6c69c6a3621f87ba1e8eaf1c5139d6306f67343e6eb9b0c6363950ea508c59ffd51b468d2edc3f44152f90b9616c3b82acd1c51a44401cc75623b0c5b034fc40a728cd1388e22e1b915fb7a9401b989d1507359ac3a4e1172ec73cd81993c50cb8be69d9ee978d360e912649b2e1d63838a027d57f34cc6854c49d7d97e3b41810b26b9a6aa3ac69dc1c42b4d54a8cca5acd3766db018bd3face6b49d33873905152f518290e073649ad221736ac363bb63fdc6c81def0cf51394ce159a29285f6f7ad489e1943659e337fd656ff482b2b446c5cd29fd7a9067ee576c3d30409fedb113222e2988afcca03dc89bc2060ecee868b4a0e40a001aa9a21509ba38ea44ad4f732196388d817d88900128a3fd693eae86af226c7c447912b8744fc44c1fa1a2d4eab2c8b8cea33984f214868fb8af6158d35d3c252727b21f8b97bee541467d7de17d0f739d913b2e9a1cbe7dea5181ac6e292bbb460dea5a8b589a44e20d6e1c20e9af5334e0d0fd0adeb51bc8d414a4411ce473f6624d7146b36592cff23c16808ba6facde1e81999602f2284f2ef60f1f95383ee3d443ee7268b45dbfcc17c9045aade3f9252548e5acfd0f07c91a45ed0910f10b6ac3cf4203e99feae6524357c493465526365abaf34e9790afe3181d09853d1292501a3eeacb42c003483574535b3330a43431659fbb1ff1bf2762d7aa8f610ecabdcf3ce75760bb2c14436d2c6d54e894be907c473ec9473b219964386c8aa625fdc7dee980da69bd59a4c08af58f57df5838e0d81d0189710729620c92943b742d8b44cb08c11c31b02e75b55f469f01e7d3fb9ce068287f647ba777f4e365760a48cfc54024d58c36eaa4898fb4d49eb420b17dd6862a6ace432191f9218b0d16365ae4ae8eb6cf899572ed616125229d1e3d5ff6ae8a11c353bcb3087ef9deed489e2e2328f6119fa3226a40ccbe6f57e3d8b5f9c5aae466f3ff8f3f9f62c31f5ad8f8f64fa47c0ed03c28edd2e6da75b51c4cc843769f55a2cbefa20301b35fc24d6c210c4087710e62375027bf10dbc655021921fdfd3536a0b22aac5ede7f1c43ede3cd1b2da958540319daa6ae499a6533387b72c7e1a5ea42648714935878710ef838fabd0b124d4307040b2ea3fb91c5a3aec526a16ef75c1bd71c0d443b7666b3b2f45b7493e8681b97ac715ba288f77e3d7b61d81989b296e60e12588b7722eaa831e7d9e52aad7dc7134252b7652e3a77609c68ea819ae00ab6f568abe48837c0fc3d946ea18b80159b41e375603226c382ed98c629897072fc180f659e36971d16ef818944f80fb99eb70c0824251330a185b16a180f19060902dca31568192abef12e371e20aa4109f06bb414533f34bd44cb01aa1dc2efd19ab9d1d6a92b06307f6e2a9a968844999a8f9f26f3968de2970652d5729dea04082edd1ed46f14cb8cf3a57360997e5b1a8adb01971d50decb7b9164a2d4164c40780f5a177e2d8b56716f412b2a345204087f84c1a607bc388f51c950ef07e1cee03a9c6a73e71a3eb666468b4e2b76891e652639c871ad646b0de0a3966d7aad66f1a682a677871f32c449701bef60b5678f7e7a497f64260ac061c8bd1c21474042a9d5473d138ce4d84cfb64613d4c7702c4f2fb755a3a3aee63e22fd8ef5fc007b64bf82ac9445ec6416f46012b71b1e64299fabb6038fd4973cd397526d421e2b92355fce5c381303aa2fbe20801d736bd50de762152fddf0f7d0c6afa2978cf6258513c2f57fb87148de5c464682cfc1fc1d174ae5b075dd20c63aa384dd0b47bf6bbdfb96fc096c5b36daccbbdae3a6b4b154c8dfa1ad8906cf07d296e83fd14cf246c22731ae4a150bfbd36ae7009fb2710cc5977a37c1a0a250ce05500f0b9204f4aa2e29eb71acedcaad0fc5ca0329a24b73e73e63585bab50424f88eb1da828c0faaabca2a58a78801df891a10ef5f63bd298e46303697f7e467f0b6fad4cd10ca5f5dc5bda28c9b16ad231cbe35caf8c25bd33897bb1b8e35eb9f413ba5220eacdc56ec7a180179d028f75c37dc28d30989b7caca1c3b1db386f3608a9480e264df42ccc448524b841367f0925698dfbf79805ec352bcbb4519f51e83c29c76605c99a0d35c76a1084e1900307414b9c7dbcf61719b0ca553babdebdcca1085dcf3a8756a68a89e9e4035b44e101c45b27fdae0d2e89a266e8eb6a16079e571895154737ff862b9f745b496366719ad44ed0c7b749fdee0b6c25a47cb0d1441a2eaffd42b60cea0bbba15d35158f213212f94d11ab44443ac48b46dc01cd915849a4ab458f5e79522f7a505c15a72cdf3a6e156dfa62388ca2c0c9845cdb00957c975630ae0bb23aca96131321edcf56dd229e3b7b71a5c4f1fbfa6c8fc35cbe7a6cc052c6ac10dbbc0209c0a128548f06143d8ac6839dfa5c07848ff601fb2456aff493e087dbe95442923f24e797de53896b9750f30f13733d557ebd8100dcbe255788f0b0e74a0f250c276649cf17108f0edab5df964c66b574aaf201e864c9ec02272dbe9f30aaf58bd642df8f7cac254803d9662214ab3dbaeb57ff5b3b516bc4e57fb377ca2d12dbbacc379fbf954473c18c0bbf98774373d6d0b5100c2f12c10a8de800228f77ccc050d4f589282f81486ff4063942265ef1765778054436b97f810caa923f2ddf6ca34b449a3f3761f79756b38cbfd20fd6b24c8413ad9071382c18de7504bf3e4c73577bf51df04246ef397cfe2faf3ceaae8d8b6faa53258b39080652ff13bcb030b934904e2bb5f54fb98843aad44666cf674b6502ce93399ab079b7165cba07ab7f30500a45ac8686871cd5d9443d17c78b81308e40a18ff035adf2577b6665b25f3c41cfb426d69abd3b3958d1d5f81a17df47cd25899711a677373f1993922becf60e4595694e5d8a96c74cdf68c4f3d63ffc01fe0f34b787a10f98e4ee95dd4bf962fbf340a8d0d43bbbe4bb80b80bdc9a7383e2f6be817ea384c2dcdc85b25b45cda090dc1f2f2bb973183810b7a2be64afc11eb117957fb4c0cc259226944c8f0ae76c93d430a378960fed0994d2cad0eac6fdce96ec65bacdc05058a0a480d1e5f8bbac8ee74e529b452daf0276b618a2c2779093a6f079c2abfa7d4c12084868079707058b1e13d40d994f5265904d09fabf9ab5ed7e6aeea5b99e822a58e56ee472062108624ddd7d837896ae7a3ce14253357861bdb1b1df11b9eac623b8713574af88c981e916a61606dd888977ad7ad935bccea8d8c26698842440af7c33be40d4e654d4457752c3f808b3e0e15285e314f4091e1164836767c9300aaedc2afa24d28ae5b7721d0fa3149c5a8d4e05f86494debe338d71d2271fcf994745cd5d6617ae98acb70c5d74687351e44b7e2047b68387d1f395df214974c3efbc0ffa87047be641ed5d60708813e80497eb862dc715eeb1a06020365cd4f8ccc9874a86d4b58729321d2f88d86fdd5cb77dcbde3f5a844cb5973221003d737636643d251b7ae7988fffee7efddf61c4b914eb3c9079bdb281014dbfafd4c27f4286422b61c23bb31f1d3ad4a082c1a36bbda1d6a1a8b74dae926c9208bd1408c2ad4684b469a153ebecb20ba86d6fd30620a3fda5a6d74130797a05bd0aaf56b189ab9ba444babf49fa77246d319e368abc5bbd718596606d954c938056e811e176c95963fb8868b58b55c86df4bbe0bade7c39847caa7ff977fc669f1dde7394e3c2cb1fcbbae6a9bfab04276f2c4ef6ad2c66eeb8f7943d1edef10662d697c24605932afbe7014ec5b86d4888c6ba539362c675b868fde4df128c18f724edb33f3a788b7b96b9b830abc913df57a2234210d21b1b9149d1cb3455788c9050cdbe2edbd60a519e6586edba4d02b91d1928f9a9175c88bf605108ca1cf26588b95755099977569bb8d81d5d77c96474c5c73489246468d7696a7605dc27ad9f7421c51c2fc9d2124ed84304895fc88941365c837dff7a23d61ebe487f0d74edab2a47703dcac572cd080e87e08295fcc8934e5284dfceffac8666a80a4eb0219e62cfaeaf873fbeb5bd4b1555d8a539ceb7077737c99f40f81c4fc2c45934db624944f1efc0bfa89807caee2841d8df61ae08b9f5449264d5e8d65d466a2a20408b6a4581da90c782be879b512f63ccdfff6ef680287828d435332d0ff3b6c8b14159f401d10ce5861b6e56d1111a2e67e594a671d598ad636f9d7f7d218b902ffb194000012254024763fd38fecec6d86b443f915bd495fb7fde966879b5d48712446b0b43f808505dde7007c5f5f562a76d9a882ceb4c996df4df689689bc025dddb3b4c9689fb508623943749da0ccbdac8c351dd595707f0a361f7c628382b8f24a6fed58465318e9b8a8b856e1ee963b52103a3ef2da8f46c713a14161467e1ba1deb37e8b00aa1166d9cc328e96553ed60c56fdeb56c7981462e97cd790e9e0819ae7dcf6128fc0d12f65c2701178a2b9d57ec8b481c858c6ecc768654620a742ba8d2967e36e349f79686302f1beaa2ee40be162b45dd49f358fb2686441a19c431ca6d6693d6fa021203bdbba4f3a0aa97d12b6b7af432a3fb929a7c348a223601524ee6a8048d8743f1b767766ceb2581025f1da45ba6b68e670f025a1d9f124d38c1af1db9fe4269204f19fb8a7e2e3485c3590070efdbdcfde0bbcd11ea5c38bb3ab3639329451b07ddafa318365fe039dce9384903a26dd062cedc8d593bd58f8690c310420b509ec55ed0d0678cb77ee672527fce2671a26c844afb5544872928f5a34783dd499d766da1b4b2b16d91b4c8ffbcf92ea0c4d59fcb97973b1f8e20db94ca87ec85b7b6ddbad32c07a20448fe5d7fbdc5a64f310fb40acf61c29aa38b1b98a6de8746349ac566dffacf5bf0aec67490235f10e12ee996ea59f684e6e56fc31b2ec91577d424fb5f1b5df8ce55f7648ce8a14247a34e7f6017ec9fac9ee163cc3080052b3f399c56650c0c018ce3d3035d0e21391249db50aa61f8cbf3d14f4ab6c70a5b959b9f181ea64765ec6504ca8ffa13c99ab070457236546db1482fc32ccca463ca7c3beb224022edcd55b6e9b78b60697d86c7a03408c643d05330c48ec26856052ab5cf738284af5b9867eb2e0319efb4584024964054769b82e6cb4e356012591079d760b439a384eab6b8c4a05289518d97cc8fc8452f00037c1ef971da7e9c6e4812f34326730ce9032780ecd3995bc1fdd8f5d72eaa81864b5e65e6955887140fabe75a4747100f057d1655b61540e92e89e5d2e8312a71313bd00c5745969ed21e1ca14fa16ee5130d58921646e44b9a9ece10d322bca06868f181f7cf8344b2e512301c15cfa3c6ffcd64dcb31f00bae2b0916e7190445792b11080fc9b34af42bb8b6ef52a8feda6691d9894d2d1bcb33da57f2099ad489dd0bb68bbe82c6f9ece2bcfa065f76eefb9204242a40b404450dafcad46fcd45a8148faf50ebd3ac04be7de1be99eee61cafe85faad24688ed0450f44cf710474ee0f31244127ec5ac8f816b9b99cfd376218c05f1ee3db1afa5bc4b61849f24d8b23fe1c9c677d789106f09372b783fefe14882c6496c81283671fef6f1f4df42e61398f918b8b967661b37cd39f7f61348d48ca49afa6a228b638750ecc7eb776abc4127e03c32c036d39ab8c2d667e28ba6f5ce9b1fd14065e9294ca67fb7f2fc228017c0e923a12405ba23e33cbc712cc0c0f1bd24536f2f222c951d212780be515ea97c51b7b1be8215ee9fb167db60feeb1df45793196de8100f187284adb3a699c3a487a6ca7a4c0a0cb561625a7bf398d1bf744c2f2e9adcc8a64948257bf5fa85c04de0edec158f6dac8b3975c7ee59dfb00e595bd656d18966de5219f4a5e966704e9e7b223505d83b914ea018aee7beccc734c617fab6f8b14f9c0e816a54bbbf511381eccd2cee896c64dfb57c2fca3b04b4edf0a7faa61cc8db2b58d2e41db9d6ae8835c703b0580cdd2716f25de3648181db3e61ca84ad232f2abc7f6bcd6e6d21e24ba595eb3855ce2daa172f305321a6568acd18acf9d19999ff929c04fea23960f51867e2022b80be8b61cd8be95ae6b4d3ccae221c02beaed9897c582a36fbe1478c56aec1fcee541fb7920e0e0a5453053b2e98c314eb97d18f1c02b07eb2bc3202a943705382dd6616e258ea06e58f383afc3fd6a887a3835c3c0fda16cf61c4225177daae7177b6bd680227786a9963959dffc3fbebbcffb240263eb075378$9ef4c54e487d18625d9ce254ae4368bc84a613f7447ddfe9f45408e653115c7f81b6cb9bee3bcca0e3cfa36d496cccc5b12cda3e67b5453c9e743e355a256a74a79e343c7dac3c69ed9c8b7026d119a3bdfe0f6aca23298d07210bda84c97831f92d108c868d5143b30f38f1fb82e9f33011681dcd486f0685aafa0e1f28b0f555435ab0aa72418ee6cedda57c6304db0b7bba2b1a946e861e90ba115027e7901b82316fabc9088c6c0e119bcb11dde37d46adcfb08610a3a3c076bba103cc7ff6e39107991dd0732573821dce188dc360b4dc655b1ecdd42285bef7c1e81011fe0c216770f62188d3faa85d8f9bd35aa6fff1f73486bf14101508a7ee560b46deb2cc9c7ca26a4aa5ce5dead5f9f72fd346f00cfad7e6bd7547ec9b8ee8f2d87933602446c036d6c2b663a8bbdd2807b6311d788566abbbfe62df04387a1b4a7ced7fe7401824af791739e66aa0b8006015fbdcd146a5f66ffb5a4e452f04cb1b104b0c1d9727f425cd7983368b880ac688a80321d688efd2247b66a32a1dd2130190627cbc110118a681e9742c1d187843f8266d179822302e079f459b22758a83e296b78b46ad43b4011ee5f36714474db6b233c1a594332282d9c40b384e3e951fe342f3098ff746b096b13ad5e3c9e438390b0d08fdc78befbe98f158cc53942063e1d1cf1fac6f4c040bf290a194fffbeb055c1043525785f755ee65b8"; + +u32 module_attack_exec (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ATTACK_EXEC; } +u32 module_dgst_pos0 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_POS0; } +u32 module_dgst_pos1 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_POS1; } +u32 module_dgst_pos2 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_POS2; } +u32 module_dgst_pos3 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_POS3; } +u32 module_dgst_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_SIZE; } +u32 module_hash_category (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return HASH_CATEGORY; } +const char *module_hash_name (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return HASH_NAME; } +u64 module_kern_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return KERN_TYPE; } +u32 module_opti_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return OPTI_TYPE; } +u64 module_opts_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return OPTS_TYPE; } +u32 module_salt_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return SALT_TYPE; } +const char *module_st_hash (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_HASH; } +const char *module_st_pass (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_PASS; } + +#define LUKS_STRIPES 4000 +#define LUKS_SALT_LEN 32 +#define LUKS_CT_LEN 512 +#define LUKS_AF_MIN_LEN ((HC_LUKS_KEY_SIZE_128 / 8) * LUKS_STRIPES) +#define LUKS_AF_MAX_LEN ((HC_LUKS_KEY_SIZE_512 / 8) * LUKS_STRIPES) + +typedef enum hc_luks_hash_type +{ + HC_LUKS_HASH_TYPE_SHA1 = 1, + HC_LUKS_HASH_TYPE_SHA256 = 2, + HC_LUKS_HASH_TYPE_SHA512 = 3, + HC_LUKS_HASH_TYPE_RIPEMD160 = 4, + HC_LUKS_HASH_TYPE_WHIRLPOOL = 5, + +} hc_luks_hash_type_t; + +typedef enum hc_luks_key_size +{ + HC_LUKS_KEY_SIZE_128 = 128, + HC_LUKS_KEY_SIZE_256 = 256, + HC_LUKS_KEY_SIZE_512 = 512, + +} hc_luks_key_size_t; + +typedef enum hc_luks_cipher_type +{ + HC_LUKS_CIPHER_TYPE_AES = 1, + HC_LUKS_CIPHER_TYPE_SERPENT = 2, + HC_LUKS_CIPHER_TYPE_TWOFISH = 3, + +} hc_luks_cipher_type_t; + +typedef enum hc_luks_cipher_mode +{ + HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256 = 1, + HC_LUKS_CIPHER_MODE_CBC_PLAIN = 2, + HC_LUKS_CIPHER_MODE_CBC_PLAIN64 = 3, + HC_LUKS_CIPHER_MODE_XTS_PLAIN = 4, + HC_LUKS_CIPHER_MODE_XTS_PLAIN64 = 5, + +} hc_luks_cipher_mode_t; + +typedef struct luks +{ + int hash_type; // hc_luks_hash_type_t + int key_size; // hc_luks_key_size_t + int cipher_type; // hc_luks_cipher_type_t + int cipher_mode; // hc_luks_cipher_mode_t + + u32 ct_buf[LUKS_CT_LEN / 4]; + + u32 af_buf[LUKS_AF_MAX_LEN / 4]; + u32 af_len; + +} luks_t; + +typedef struct luks_tmp +{ + u32 ipad32[8]; + u64 ipad64[8]; + + u32 opad32[8]; + u64 opad64[8]; + + u32 dgst32[32]; + u64 dgst64[16]; + + u32 out32[32]; + u64 out64[16]; + +} luks_tmp_t; + +static const char *SIGNATURE_LUKS = "$luks$1$sha256$serpent$"; + +u64 module_esalt_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) +{ + const u64 esalt_size = (const u64) sizeof (luks_t); + + return esalt_size; +} + +u64 module_tmp_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) +{ + const u64 tmp_size = (const u64) sizeof (luks_tmp_t); + + return tmp_size; +} + +u32 module_pw_max (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) +{ + // this overrides the reductions of PW_MAX in case optimized kernel is selected + // IOW, even in optimized kernel mode it support length 256 + + const u32 pw_max = PW_MAX; + + return pw_max; +} + +int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED void *digest_buf, MAYBE_UNUSED salt_t *salt, MAYBE_UNUSED void *esalt_buf, MAYBE_UNUSED void *hook_salt_buf, MAYBE_UNUSED hashinfo_t *hash_info, const char *line_buf, MAYBE_UNUSED const int line_len) +{ + luks_t *luks = (luks_t *) esalt_buf; + + hc_token_t token; + + token.token_cnt = 7; + + token.signatures_cnt = 1; + token.signatures_buf[0] = SIGNATURE_LUKS; + + // signature with hash and cipher type + token.len[0] = 23; + token.attr[0] = TOKEN_ATTR_FIXED_LENGTH + | TOKEN_ATTR_VERIFY_SIGNATURE; + + // cipher mode + token.sep[1] = '$'; + token.len_min[1] = 9; + token.len_max[1] = 16; + token.attr[1] = TOKEN_ATTR_VERIFY_LENGTH; + + // key size + token.sep[2] = '$'; + token.len_min[2] = 3; + token.len_max[2] = 3; + token.attr[2] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_DIGIT; + + // iter + token.sep[3] = '$'; + token.len_min[3] = 1; + token.len_max[3] = 10; + token.attr[3] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_DIGIT; + + // salt + token.sep[4] = '$'; + token.len_min[4] = LUKS_SALT_LEN * 2; + token.len_max[4] = LUKS_SALT_LEN * 2; + token.attr[4] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_HEX; + + // af + token.sep[5] = '$'; + token.len_min[5] = LUKS_AF_MIN_LEN * 2; + token.len_max[5] = LUKS_AF_MAX_LEN * 2; + token.attr[5] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_HEX; + + // ct + token.sep[6] = '$'; + token.len_min[6] = LUKS_CT_LEN * 2; + token.len_max[6] = LUKS_CT_LEN * 2; + token.attr[6] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_HEX; + + const int rc_tokenizer = input_tokenizer ((const u8 *) line_buf, line_len, &token); + + if (rc_tokenizer != PARSER_OK) return (rc_tokenizer); + + // hash type + + luks->hash_type = HC_LUKS_HASH_TYPE_SHA256; + + // cipher type + + luks->cipher_type = HC_LUKS_CIPHER_TYPE_SERPENT; + + // cipher mode + + const u8 *cipher_mode_pos = token.buf[1]; + + if (strncmp ((const char *) cipher_mode_pos, "cbc-essiv:sha256", 16) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256; + } + else if (strncmp ((const char *) cipher_mode_pos, "cbc-plain", 9) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_CBC_PLAIN; + } + else if (strncmp ((const char *) cipher_mode_pos, "cbc-plain64", 11) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_CBC_PLAIN64; + } + else if (strncmp ((const char *) cipher_mode_pos, "xts-plain", 9) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_XTS_PLAIN; + } + else if (strncmp ((const char *) cipher_mode_pos, "xts-plain64", 11) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_XTS_PLAIN64; + } + else + { + return (PARSER_LUKS_CIPHER_MODE); + } + + // key size + + const u8 *key_size_pos = token.buf[2]; + + const u32 key_size = hc_strtoul ((const char *) key_size_pos, NULL, 10); + + if (key_size == 128) + { + luks->key_size = HC_LUKS_KEY_SIZE_128; + } + else if (key_size == 256) + { + luks->key_size = HC_LUKS_KEY_SIZE_256; + } + else if (key_size == 512) + { + luks->key_size = HC_LUKS_KEY_SIZE_512; + } + else + { + return (PARSER_LUKS_KEY_SIZE); + } + + // salt + + const u8 *salt_pos = token.buf[4]; + + for (u32 i = 0, j = 0; i < LUKS_SALT_LEN / 4; i += 1, j += 8) + { + salt->salt_buf[i] = hex_to_u32 (salt_pos + j); + } + + salt->salt_len = LUKS_SALT_LEN; + + // iter + + const u8 *iter_pos = token.buf[3]; + + const u32 iter = hc_strtoul ((const char *) iter_pos, NULL, 10); + + salt->salt_iter = iter - 1; + + // af + + u32 af_len = token.len[5] / 2; + + if (af_len != (key_size / 8) * LUKS_STRIPES) return (PARSER_LUKS_FILE_SIZE); + + const u8 *af_pos = token.buf[5]; + + for (u32 i = 0, j = 0; i < af_len / 4; i += 1, j += 8) + { + luks->af_buf[i] = hex_to_u32 (af_pos + j); + } + + luks->af_len = af_len; + + // ct + + u32 ct_len = token.len[6] / 2; + + if (ct_len != LUKS_CT_LEN) return (PARSER_LUKS_FILE_SIZE); + + const u8 *ct_pos = token.buf[6]; + + for (u32 i = 0, j = 0; i < ct_len / 4; i += 1, j += 8) + { + luks->ct_buf[i] = hex_to_u32 (ct_pos + j); + } + + return (PARSER_OK); +} + +int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const void *digest_buf, MAYBE_UNUSED const salt_t *salt, MAYBE_UNUSED const void *esalt_buf, MAYBE_UNUSED const void *hook_salt_buf, MAYBE_UNUSED const hashinfo_t *hash_info, char *line_buf, MAYBE_UNUSED const int line_size) +{ + luks_t *luks = (luks_t *) esalt_buf; + + // cipher mode + + char *cipher_mode; + + switch (luks->cipher_mode) + { + case HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256: cipher_mode = "cbc-essiv:sha256"; break; + case HC_LUKS_CIPHER_MODE_CBC_PLAIN: cipher_mode = "cbc-plain"; break; + case HC_LUKS_CIPHER_MODE_CBC_PLAIN64: cipher_mode = "cbc-plain64"; break; + case HC_LUKS_CIPHER_MODE_XTS_PLAIN: cipher_mode = "xts-plain"; break; + case HC_LUKS_CIPHER_MODE_XTS_PLAIN64: cipher_mode = "xts-plain64"; break; + } + + // key size + + u32 key_size; + + switch (luks->key_size) + { + case HC_LUKS_KEY_SIZE_128: key_size = 128; break; + case HC_LUKS_KEY_SIZE_256: key_size = 256; break; + case HC_LUKS_KEY_SIZE_512: key_size = 512; break; + } + + // iterations + + u32 iterations = salt->salt_iter + 1; + + // salt + + #define LUKS_SALT_HEX_LEN (LUKS_SALT_LEN * 2 + 1) + + char salt_buf[LUKS_SALT_HEX_LEN] = { 0 }; + + for (u32 i = 0, j = 0; i < LUKS_SALT_LEN / 4; i += 1, j += 8) + { + snprintf (salt_buf + j, LUKS_SALT_HEX_LEN - j, "%08x", byte_swap_32 (salt->salt_buf[i])); + } + + // af + + #define LUKS_AF_HEX_LEN (LUKS_AF_MAX_LEN * 2 + 1) + + char af_buf[LUKS_AF_HEX_LEN] = { 0 }; + + for (u32 i = 0, j = 0; i < luks->af_len / 4; i += 1, j += 8) + { + snprintf (af_buf + j, LUKS_AF_HEX_LEN - j, "%08x", byte_swap_32 (luks->af_buf[i])); + } + + // ct + + #define LUKS_CT_HEX_LEN (LUKS_CT_LEN * 2 + 1) + + char ct_buf[LUKS_CT_HEX_LEN] = { 0 }; + + for (u32 i = 0, j = 0; i < LUKS_CT_LEN / 4; i += 1, j += 8) + { + snprintf (ct_buf + j, LUKS_CT_HEX_LEN - j, "%08x", byte_swap_32 (luks->ct_buf[i])); + } + + // output + + int line_len = snprintf (line_buf, line_size, "%s%s$%u$%u$%s$%s$%s", + SIGNATURE_LUKS, + cipher_mode, + key_size, + iterations, + salt_buf, + af_buf, + ct_buf); + + return line_len; +} + +void module_init (module_ctx_t *module_ctx) +{ + module_ctx->module_context_size = MODULE_CONTEXT_SIZE_CURRENT; + module_ctx->module_interface_version = MODULE_INTERFACE_VERSION_CURRENT; + + module_ctx->module_attack_exec = module_attack_exec; + module_ctx->module_benchmark_esalt = MODULE_DEFAULT; + module_ctx->module_benchmark_hook_salt = MODULE_DEFAULT; + module_ctx->module_benchmark_mask = MODULE_DEFAULT; + module_ctx->module_benchmark_salt = MODULE_DEFAULT; + module_ctx->module_build_plain_postprocess = MODULE_DEFAULT; + module_ctx->module_deep_comp_kernel = MODULE_DEFAULT; + module_ctx->module_deprecated_notice = MODULE_DEFAULT; + module_ctx->module_dgst_pos0 = module_dgst_pos0; + module_ctx->module_dgst_pos1 = module_dgst_pos1; + module_ctx->module_dgst_pos2 = module_dgst_pos2; + module_ctx->module_dgst_pos3 = module_dgst_pos3; + module_ctx->module_dgst_size = module_dgst_size; + module_ctx->module_dictstat_disable = MODULE_DEFAULT; + module_ctx->module_esalt_size = module_esalt_size; + module_ctx->module_extra_buffer_size = MODULE_DEFAULT; + module_ctx->module_extra_tmp_size = MODULE_DEFAULT; + module_ctx->module_extra_tuningdb_block = MODULE_DEFAULT; + module_ctx->module_forced_outfile_format = MODULE_DEFAULT; + module_ctx->module_hash_binary_count = MODULE_DEFAULT; + module_ctx->module_hash_binary_parse = MODULE_DEFAULT; + module_ctx->module_hash_binary_save = MODULE_DEFAULT; + module_ctx->module_hash_decode_postprocess = MODULE_DEFAULT; + module_ctx->module_hash_decode_potfile = MODULE_DEFAULT; + module_ctx->module_hash_decode_zero_hash = MODULE_DEFAULT; + module_ctx->module_hash_decode = module_hash_decode; + module_ctx->module_hash_encode_status = MODULE_DEFAULT; + module_ctx->module_hash_encode_potfile = MODULE_DEFAULT; + module_ctx->module_hash_encode = module_hash_encode; + module_ctx->module_hash_init_selftest = MODULE_DEFAULT; + module_ctx->module_hash_mode = MODULE_DEFAULT; + module_ctx->module_hash_category = module_hash_category; + module_ctx->module_hash_name = module_hash_name; + module_ctx->module_hashes_count_min = MODULE_DEFAULT; + module_ctx->module_hashes_count_max = MODULE_DEFAULT; + module_ctx->module_hlfmt_disable = MODULE_DEFAULT; + module_ctx->module_hook_extra_param_size = MODULE_DEFAULT; + module_ctx->module_hook_extra_param_init = MODULE_DEFAULT; + module_ctx->module_hook_extra_param_term = MODULE_DEFAULT; + module_ctx->module_hook12 = MODULE_DEFAULT; + module_ctx->module_hook23 = MODULE_DEFAULT; + module_ctx->module_hook_salt_size = MODULE_DEFAULT; + module_ctx->module_hook_size = MODULE_DEFAULT; + module_ctx->module_jit_build_options = MODULE_DEFAULT; + module_ctx->module_jit_cache_disable = MODULE_DEFAULT; + module_ctx->module_kernel_accel_max = MODULE_DEFAULT; + module_ctx->module_kernel_accel_min = MODULE_DEFAULT; + module_ctx->module_kernel_loops_max = MODULE_DEFAULT; + module_ctx->module_kernel_loops_min = MODULE_DEFAULT; + module_ctx->module_kernel_threads_max = MODULE_DEFAULT; + module_ctx->module_kernel_threads_min = MODULE_DEFAULT; + module_ctx->module_kern_type = module_kern_type; + module_ctx->module_kern_type_dynamic = MODULE_DEFAULT; + module_ctx->module_opti_type = module_opti_type; + module_ctx->module_opts_type = module_opts_type; + module_ctx->module_outfile_check_disable = MODULE_DEFAULT; + module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT; + module_ctx->module_potfile_custom_check = MODULE_DEFAULT; + module_ctx->module_potfile_disable = MODULE_DEFAULT; + module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT; + module_ctx->module_pwdump_column = MODULE_DEFAULT; + module_ctx->module_pw_max = module_pw_max; + module_ctx->module_pw_min = MODULE_DEFAULT; + module_ctx->module_salt_max = MODULE_DEFAULT; + module_ctx->module_salt_min = MODULE_DEFAULT; + module_ctx->module_salt_type = module_salt_type; + module_ctx->module_separator = MODULE_DEFAULT; + module_ctx->module_st_hash = module_st_hash; + module_ctx->module_st_pass = module_st_pass; + module_ctx->module_tmp_size = module_tmp_size; + module_ctx->module_unstable_warning = MODULE_DEFAULT; + module_ctx->module_warmup_disable = MODULE_DEFAULT; +} diff --git a/src/modules/module_29523.c b/src/modules/module_29523.c new file mode 100644 index 000000000..bc69ae0dd --- /dev/null +++ b/src/modules/module_29523.c @@ -0,0 +1,471 @@ +/** + * Author......: See docs/credits.txt + * License.....: MIT + */ + +#include "common.h" +#include "types.h" +#include "modules.h" +#include "bitops.h" +#include "convert.h" +#include "shared.h" +#include "memory.h" + +static const u32 ATTACK_EXEC = ATTACK_EXEC_OUTSIDE_KERNEL; +static const u32 DGST_POS0 = 0; +static const u32 DGST_POS1 = 1; +static const u32 DGST_POS2 = 2; +static const u32 DGST_POS3 = 3; +static const u32 DGST_SIZE = DGST_SIZE_4_16; +static const u32 HASH_CATEGORY = HASH_CATEGORY_FDE; +static const char *HASH_NAME = "LUKS v1 SHA-256 + Twofish"; +static const u64 KERN_TYPE = 14623; +static const u32 OPTI_TYPE = OPTI_TYPE_ZERO_BYTE + | OPTI_TYPE_SLOW_HASH_SIMD_LOOP; +static const u64 OPTS_TYPE = OPTS_TYPE_STOCK_MODULE + | OPTS_TYPE_PT_GENERATE_LE; +static const u32 SALT_TYPE = SALT_TYPE_EMBEDDED; +static const char *ST_PASS = "hashcat"; +static const char *ST_HASH = "$luks$1$sha256$twofish$cbc-essiv:sha256$256$92561$3a9c59dc9aea663637ef9355a680e97c804dc77a890fe893c4393dd7341c2671$aa3bd63f68647c532575b809301677215cb539bf080f216d34e4dac26bdc0cceec1bacf2f149813b30b05b0fbc697296b1c2f121af20afd5ea5f9e75b003b0ab83ae27b8f58e45a6f68f438d2af9faaf93d341c43dafbf115fca41274616e2c7959781d5c42a478296482415623ec24ae36a7c9252d0a96d3362f925bcadf22fad8cd1b2526093d617b5654107edb981cd6764b68599e047e7ac1a9b12c43aebc1423835800ec4c99755b82b114806bc791488c1347246ed884815a3db2e944cc29045b848d7d1d87d56a2458a767519f466dde45b91e71ba0ea6259574482281a72995de4273920a368e6391635801b1661e892f16441785b8b48a3009c59b11ec1c0d7d14eed71eb7b4d7ebb9a9c6275e0b96236a8066d6923145d5b4a36d80d96ab321f894d0407385eca980ea1010513081cc9e12e70c8edb5a6f2532c97ab219b12968e7bb0310acd7d2f509537fbe2d422c509ea29c0c563d5f1832190ebb5932efda063940bab2cf57198be0c34a44fd957f4561aba2a3cb4fbdbf5d9ab327b6f4dfa6af410763b4be1c77d759bc1e8eaba744985a6fd2eb315ccfce7a84cdcce6128ee0e6cb16c07a83d671f82bc5895500d2d37991934c2c2afd72f7f72331a07f5fda9e9ce242ac9c072141e0f1ec971de3dad258b42824262bcc444117fd26fe5324df5906fb97858a6137df2ab6020ef17da9f13c34427edf22bfa4b8c6718587f0e2b6afe5550b051976e8f2775dd71b954de9cd446fc3a6ba77727e806f97103797308051b46e981d56c9748de697812ebf229d2bba9e2f92e7dafb6fdb0813c6ca8a341d4ad1996249d9e73a63a1eefab88cdff23050286c48829a698f51acede84709adfc06f299a0783464002734c6bd2ce9589ade32d7331d8cba35b7008b1b58acf45cedc3009322cbc621cc16da14b91f4ee0201ecb88571397e04f5f324e61290f6bf2041bc90856c65466337e2a13de6ab98462978835dd89755fda8d9b7fcb9547dee9b3d99bdc428d19b9a39c841f8f25fd9bc944beda9776474ce4bcb94041e168c5290a58ce08fa0ed4ffa69635646b8f80fcb3eca1cd41a6f84ac2209eb62cdb01b77f8e8b8b60ccce366599e4c1d180621f02be1d9bb66fea0d425d3dc4ee2a7eceae0ea897c8109dcd2b66dcf77dbce44715898540354b7d74e4a0d4629670589c7e4d24e2985bdc85fcbb3dddf4587e4b86dfb794a03ccc9ae59865727c4269c3589c08e245895077bc289cc7a8689893b2b8d4ae15139e83c6135dce6630b6dd7e02195b5b50a9455568f7206c01a47440b5c2a9c5ad1659e98e26ddc5195a6a31d51aae420609d249adeb237815eb0100862110746c9759dc50f719175481f6b54c53309dd8e63d36fb8a0b26abfb893422557730b636c12ae3056875adf305c67153f06f2f7313c148be6d2bdeaa6d9c8a6378dc519c97417035a1c48ef91ed4f7f5d1961c45485cc2827d6218e85088368494ffdab7285dd9945400e608d7a8361eb5aebc31b66abeab613282cc2d7b3a03b8b2e56093abff7bd727e6042c40e40a6f192be0d0652730768899a1dcd237265e979b7f338b6553819d14e9f6b34001b5466909df00f5f4eee02be33a7ffabc725e574581f339baf8e49348a62a04c726523c32b9af10109029366694de06d8d919a4ccab878c949bcc661cf0fbacaebef0a7e9028ad7b7fd8edbc01ba532abc51cdea0ae1569677321232a137a693ae68c58a261521aa9086bdfc261f5bde5c473b9cabf4373035019fed2de473d44cf647650e37db1f30c86e427eeead2016bc197245de75a6ef9868b3b899f1cef6c0cc9013c85b4fda67a8d6944d1936afb4520b5cc4b5a9fcde098f06d1f4469e907c11b3fa2d2443ece06da49788b8827da7e8890c9ed9f04940270a4eed6d6a763e538c96c524028b2c55ff2ae90c732cc32ba96f471c2cc029cf882c40b959321c70b1ec9a4beaebe463d47c41952e9bbf4e076c8125292e8e409a9bddabdff8b287731535db3d53ef8b6e433e3eb64a1c3e9fc897c5f5569c04fa68fd85037cf953f88652c5f8a46bd15da90a705347045ed030b61456e659cd77246fb8192f1772ba9b49eeacc408ffbe54c6001e76c4b05b5a0c8156704521ca7bc2cf9d83e8b1a85bbb520bb34a93b701a3bdb0ca93c05183a629d0e45c9338f69a586abfd6b5a95888f453ad7e1b5abf8bd1fd43d316039f09dc7d11e2981c0fc6d0d33d1e398464553d5de2fc00fb58e067b8bfe94f9de8263d627f669cf839f962ebdaca3ee5b009cbc0b313d55d42db599d7753f73718d22851858b2fe037c016d5a08ebbdc1e86496c9d5b668f5a9fec2557212d3cf6045d0c1ecf73b222333510aee8058a7144ebb6cae2e0be4855aafb6f1905aff837e2cc42f3292f32d2c0a6775c709ae3d074bb67b1137c636f0d133cf58f353edd84cc2c445391f514f46657a4c78138d63ebbd6a48e3aaa06cd33fc57c4d18ffe48a3eaec9a67b3a9f5c04c943b66f0a4e36f055d43d9e664561e422b5a100f181d6c194e742e5eebe1a3b1292fe7ca5f616cf75426975e0f390a3711427506d886ff56d7c2bdf69931487627d6900d83e507b12d575c26e8fef4c40e2e73a92b3bbf0e3bb2c69d24aa69306e2fc0619331f09c6313842e6da04390aff9929152263c8d010be57381f94ea3d1bad89b3f7c2b2d38aaba4553124b2008c8cae5f58e53a0093342076f300029bb20a64d454899078f827d31d2cf94dcec23e3b8dd29a1fbc2f81295a4ce788e86f685093dc37b44cb6626ad53237e8ec016fb6fe64d848536f37810ae55ab0e785c2c942897784cdfa498f3ec5030c452d12af9240c308b2c97099221804c12c74f0cb0a4e400295838100397fe15cf980e0e568d5798e200c62bc7101e84a921834d48f0b4d9b6f6c5f34da0e6deb6e4c978342bc9bbe802f6a9aad63deefe156556eeec4d1436d6208f6dfee624788f6ba7b41a336d5ee60cb747de4f566c9949fa21c06a6ce9e0e2d50e542f0c704f4bc119885e2b0a7dc741295cb5e2d7e9f5fe1478fe40ed605b54d2a8556e44e2302635062a999f8d95bec811688281df90907e87ddc36cd8a0e525926a4db1a2e0c12fb50340f2aca718f8f3288c0338f93a928cd2f35fd5983df1c5cefff661db5456d8945d6206eca0f3fa5177269bda46a5fe583664a50935902db36345a4420e5c99e536d57a7df367f1f553f85453bb1ba656dac9b494f9ce8c2df723286e6842c4a498d811b4723efb007f14c97f996a1b7aeed1a0392fb03d5bc029a926a7604a2fb2983b4fdca33fef151e96ce8b39bfd1f1ff97bf3fba03c0fea960e688b01f0d0cba4bfc6db7409ae57e820c3a306b4c71fa96a6b3ebd82563964bffb5fd823565c6d0a9b3ee06f40f0804990481690293a5b7ebb4ce9cb4e9ef8b75b5a4e1319bf73ca38f161aa472d27fdf14b9073a9f981f75a37f5be7aa5b2585c8465afe336d71838eb4274b60204653d46f87a720fdca1da6f57d327084c428a8f3e1242dfb36d24fcbbe8706d44ba134cb1b4304b9722d5c34d6f824b2a0fbc7ee38c962653085a0aef307033f8df938daa43af819d62d614513848e7e6cff133b38e220f8c2ae452625e1adb5e885fe35b8be2d60684e52b3f25f4de9cbbbe7c1bf263286f5d6d815a82056c40afe587d8a9cff4c1637770112d35433116163cd4ea4d2caf4d9039ef453786ae55dd4beeedfdc52d11b628277dbff0fb8daa1530adb4206fc65f41935f4cf69e570da919de3efdd84111f871eee512379599a8e3ad4b996c137ae6ca66f6b92cf1a143e42741ebeb09ba63cf78f4e50fcf41d90ee8eec6a5d08cd041d80a4e71a34182477fb94b87ee824d102fae7bc4211d9b67e681effbc1e00fa5e0b66cafa3e08416c61a09f25841bb12790958bd09aa1591a53ffe71b946f05bd85b7b65f34899dbcf198106f6675c67220740e0345e553ea23b559e8cb8135ebd8d2d6fa44c8655cb7d40af0b63e972d6d027c372fc3f0ffd4f1d9b32161acb4d7f8cd10d0cff01ca3fea12bd22d56800e1832eb59eccba4fe22c4a64f19079b5e8f0ec814f0619867af84e70cd3164692e97eb1c7a643f2f4a693dfd7f4039ac1c72c2304db50591b97d937275ea6a143edfb0aa368b80ed81410f8122e20d6bc0f412fa7df30cfa0083d6cc9b6cffbe0968938a222524cd7824ad63da937bf6f6ee33d073a54028df70f5a53b15e95e05a9315666e99929bba66b98ab3f5c1c1800d1acb12be28d8dc801ea0e7059284c7081a9fa32460b78a7984f52f26dcad128b3dbe248c5ddc86ff12b5226749aadb27216352bf6d081180feda73bd76f109039a2368d27f0d114cad709207e7b40a9722714ac71ba7421eaf830995b1d48bcb48bfbe8b10504da5c3b6fa4c12c834733d29d106abac06959ebb218c6d6de0c88532062e40112c89dff99b6047ad7f40825dcb9710a022f497a54645538f9f90e4468ee6c7461e6fe1eac8ac248606922eb69196193a329b18211e066eb797dc40ea982d9130437de318216e0f98bfc98574018d2350c1971a853a484ac081b1b1eb3ba18becfaf8cef1e2e782d8d89679e94a27456319364ab7b89f5b2be426f4375b3b16a95eed300e92bd777e059fc474a99b93c218cf465c979f22062a30993846e338a1ffb945422059b651d38dde97cfddedc03f1b2316e81e8f054fcac46b24778ef93ca12a81b94ecbcf16330dafb258d209237b54971f3c9e697d939c238e1a833e1ff8f18175cf719cb360a3a0679814735c8fcefbb8458a3dd4781f76921c35fd3d9214c4d1af7fbbfd082981037c3ba7f00964dde7b25db8c7eb0ff4812cf2b8ebd62259d9e6bcc274282345c03b6123a03897dff47b15b9fca06af1b37efd373546445a73e189f6333a2c53cc12aef0cc54e71a8c9045ccc8e73a3ac2262cd00784ab29272d634b359fa1b550b577df896d2550a34e727d7abdd55ddb05afcca43278f085f25ef226ed1c0e19fc75a4aebbcd74685cb4cd265d872b4452861c1c3bedd46836842561c05e80f894c8b9b545c746c9efbafc217c6e28bc3d7594f3513731219687d794ba51482a6e6df31b576998ae025eb5ff321d7a804af083d18ad6eb8f88c1b8485d5a52c64069c5cf11d0bd451e609dc25ea4f24582ce0a6524059096fbb410f800f5d28f9ffcc3194614db03e59eda967590073f55ff04094f201d92e217a1e8b1e1ff5415b0dc4129da02bc463785caf01146e2dc6e0ae510835953c539267e08ac9e4efa85924732e35a2a3efe9f36f364dc6939b278365f5b993372c58d825d741d00f8be0deff78b27b8c393dd39815eb1d17fc0d1e946026fa0b6a45e149b063e66b166552b93975743c1cf938b40f2617552c07ec84ed3537554176f4b255365c7fbaad5d867136690a6caeb3db8fd9a5e8c6133130c175f91c0c32f37d059b76fe27f929545f9ccd9fcee4a2a347b6492e4fc743665595ef6da07ed611b0e9caeab182af1cb5523c69c8793174181d10aaba2a53f8244145b8912c994b6885fdc99cfc5ce8c0c28c65f6320d41addd7adeec9ca320aba54d1a434cdcaab48958335cc45117e6d462de210d89053b83f8b24ce017a5be06a63a44a6fd424b13882ea01d09e54406ec8cfc787fbb8b5614ca52fd08fad5b44aab1b2b067ef74625b6e7f879b5b81e9954a3b1e07758b048c6dbd56350443d64613c22923544d4c33b574c7c542ca1a9edf87e8035e3ca51d20c165803d84f34a329a863052bfbcd202e4b548ac752af518f56530cd09c9896a51b2de952a448a3bcbcdc69d465f94b4f88be3b88acf72cdd1de44cf3a71d2a69ecaa9a3fe6b25e4a1e1f5f5ab2a7de3bb83a1be4dee09670258dcf9072149879a4220fd131246d0323e5b6ed9b3c6ec4a3d6c1699f1111deeb2e78a9b6f41f9ef9d069d656ffd64f8d78703b3088c40a03d54e7efcf383ebc4ee7a3ce703f46c618c86445b521243894dc00e00872addf5dba9f31eef7ef0475be422517379bc34ccdc1e7325ccf53b6d5ad8802bcf7987357f987e6fd6e40802e21421d58b4a43fdbd26e45d962d6dfed59384fa3b458a6a8e4082d017334abba7edbb2f6c8f5bb2e672ea5e7debb61a57f5ff691b72b6e9e1cc7b7451f2872736595631925f0dc66d75ec7f4a091360eeac2124ec7671292a36f5c5beedbba46486a5c2955298a2d54b439ba76addee645813b3d89a9c2075bf993f84bf7391cfa507ca40e26dfba768550aa859608b86433e21c3d74d3aec83fbc672637880dda552eea94f8b9468c189c4535b4bb84b6fbdc320763886c0dc129d487f272e928ba4472b6168edf99733a9716e90f67f9dc336509a70f07d59132a9657a9bf9e41fae002c27c9269a3cdfeadbadd5b7179d7f0e340a82078cef11c43b6b83cf0c1e8e6743664dcfe8d85e3ecb4b4bd7ccfce31d46d49224cf3827d7f04680c67ca3e443ae0fd7c3e4b4808db64b366b2c6bc4417771744882eacfff79f8e6a10b17b27500dc4449167d187b3551cbdd122b1db5cfbad2e5be7f20f1b1d1af4d9138e56d4142e42ea91227c576e58c7502ad77353464a47a581dcc29389ce10d1a79f48ea5417bc951b0c17d0b0df297e9a69730ea9fdec325689ca8814df033f3abadb6e6e4cb1d87febc57c56579ec53bf72ac589eb933fb05642b0cf9720a57e2f2eac2202196f68420096238cbced0fd7b59766d36eac293ff0d08f82d0f720c51ce9e19b3616d467c4ce3a28048bade6e072562bee21e3322b99b67aab4b1087a0f60524993ae515d64329d7b99d4070820c760e8c7cc5ce6c5ddb50e01b04547e4386ac8dcbe7c0e5dac9b4f6c74a3913e47e8e301d7c7b95bc1bd7e19b63f2ce22357976724e9d7f325c2d6ac85b7d6ac1fd9333a90974c72aeb9a6fb043db732054e05564904b9c39f466cb557ae56eba61f90079ea1f717c4f50d72faba6c523fd5fdf8aa62f37d95b2f9cb0c77732f50447421a4d12564c4c4bf2bfbb703832b7560ad08868057ce00439982f8ae72724e507108970b9ff30bbc7e5a57f791438715900ec4b6e55a67ac7dbb5e36bec63cc6486d8d2df6685ccf2a3c7eccebc2b10116a713f4025030f8a7dbdc2fbd2a6481ec0e8e6175c06e946e84f68470c466e2e61bf2fc0728db92e45d31f9656499530a176a4fb87f4a2499acdfcdb50ece3e5c9f7330f9ef8a0671543b1e0700837fdb84f9b2f927f78ee1475c5977f5278c0243a660498b47e315ae5f5773655d180499f2fa542e6ad0c1649b7584badf4ab332c989b70bcb4f751874ec51ebc8312c8b944ef7971e360184b07322a59831c0c2cca80d967115d5eb1b4f37294fe9cc51321539d7fc42b427d80a98e828becfdb44e5c564b0f6f2dee13353400e44d80751c969d5f87016f032e2d188167626bab03ec3e5834166535680d82a9ea6acf69241e8c0ab8ef71f14da87f25f16a66a7c885d28d2bfdd4ad2183a9b057a896f0610f6b7b9b15aea59b46c137951461ba6452ae675da0bdcce8f310e9f6162590011ec3e16b56073ee601737999e1a260097c94720607d399e06a7ae10bbe7470c73ea96ef048dd0c0cfde39cc7810b6000b11fd24bab1186c1f0ffd5419b3f4564b03f6183dfeb77a5f1ead3e8c8e96869f661b7afabb18b92e7d308d1c0a1a1cb3cc93f8cbbaf1e1932c99193570a2681956177615063e010557dc7d6d0f733dd99c85665ab00605da1a1724a6417a1325a42f0f3479700c829e77d6662d0f1f08dc410346bb6748f167462fe5e8a4b973ad248fa3a62a6ee24bc277c0a138c91e64efd4a9495b7f5eea62d14da8c18cf508b725898ce2a2db286f020a74fa3ef2cf6f52b5b593850136f9881d1a61200ebca1c058e52b78cb9661d808e9650902f529c7d88a3a4920185e8af1b2bd2f5093c9e8ab404ad45ee999ba97b8d7b972fa00c47569c7e302010bac3ab00a86109f54d29a78e9c028f1037e5a2de630c994f5e1610b9233e0f608556beaff97daa8c4ea347f7011cfb98c2640ba5f5284c8f4c025956f592bb991e57da198ceab108ec891a7cf2b29cde0fe2f74b6d6dcc8b430e7e63c86da5bc366b7ce6331bcd251012eeb4312347643bce1609077758a6953de41bad0b09de6408e99fc887966379ab16e5aa1318d6b0a978303bea433b65bb4a880ffbb927499c2ab81ca62256361abea77097d854cc801fdfa70cb6baf36f6b619e1b93f218c5e486a5d918f8a5cc090289d2a976aacc81a3643047134b4216175595b8a01f98247fae11ec4795e6c9129be9ed3a6f378dc7d020ab44ceffc3837f254191869cf950b4c762a387e7776dec66d796a8fd718e211e131a1ed6f8938a608745d0cfdd58af998a8e3bf14beeb219a4147af81b7897d9d66d630253008bbf8fd6d54f2f9254b646bfe400be3a6e3f2292a5bddce4f1ed7afd3858b2e82d6e8a4efc8284026ea25c2f555c3edfd3a083cd98ebb95d597a981d833b42c1aa0905447bece9a9bf316ce5ab4f41e880a53acbb47c7e3543613b2d2882640662ed53c50f121ffc934358a60344d332bd0494eae353e5569c71aff2248c108729815c7d02ce28a54a5d6904c0017d1f89c60f47d1e4afff25884c29f0f0883e410a3d0e90cf82d27c768131dff9509b0b2db89af52822f645a3fb295215e934d799eaa0ba07575433eaa79874459b615237805dc769b82a65bb69de8346fbad2ec632618c49d3358d5a3a4c115e2b0f6feec876a59143d750743a955f6ca420a2c291c7875a6438670251e185efab329f674b3a1c7398ec3069bdfce7668081a79e91e3b8de8579993f34b34f4ce1a68ebe11be6e6c972542de30aa4c8315f26d3ac8d9610f6c3320fbbe93581ea0a1510c451d3b6e962a9df947bc3c6785e1391856ede069b5b887fcec01848c60ef8f72c9c910daa6ddd0da5d60e8c6f85b1ef96a26ced5692e91c6d4b0a05ef6dd48db01eecfe860fa4efa9cafdb9c05c85da0bc6dc44894c2dcf8634e79b44801f240e50c86890c0ab3b1164ce6d1c2d01375ca3f78493ae2c485f9c9c278a018a1965a996c63e8c580b984749311e0e10fbd875835a410a644f53ec2b69f0599dd67a6d7d47fe26e63ef684c316bb5aa5ddf1cccf5dacd3935788de2cc49846c1ee543e9712f520cef59b9287e508fbe2d28e6767790b235cff4939f0290d5fbee57046a581b942854007940b5efd131e4e2b3459f260b15e9dfa247c42bb543b421544b555f2598fa69ecea6b9474d173b691f8dc994228003177bd0b1fa660729934598a9ad69ed96fa436cd49819df2903ee20ce02cf6555a2eb05279b6e2fdd1c364d161cd67954aa6d8a143718ab08b870323bd31280364d386c1973c92d9c12fcb7a59c2c382dae38f1f537501ceb136179a165c0c584f957b207e61d1f90b164c4f491746afd80fc1827cd0a6691f21cef6b5c3bd31de4c6c46d9648acd666842ca7fe5d412f37d36f5e02a1c1ce7096eedb80f799127e15a9b133a99de3dc7a26199d8229c722ec5ffbc16bb7d6c9ab3d340eef3a54386056ed7b7f8231c5e90e1c431f6398a4187842cdb6e7021387be9e522d380825675b7404ad104de12efe8b5cd109ab6fa3453d9077c5d1dea96590558fd363c5ec7de15a645fbe734bda776d959dd1148ae6e0c4d64d1b6a3c10ff0efb75d3daf2f1bff246565c478ed0f7224c694ecdac38ec6d2af1c3a47727fbc8cc1e4766daf1f7732b5112b23fc20d299b75c1816053a0891ef5bea68a77d8e92fa8642ebed81ddd99df0a436ba37dd34817ad05ff3c091ad6bc22cba6a9496900ec3a2cbf08b3941d246362ad8de430ef18138bbf1b13064ce3643ec7923fde684c8dfbadff6b258792dc3d124fe20f2eadeacce8dfa5469cad2e18c34f20d2baaecc868b453afa357f638f9b897562ffc21c773ee4549bd4f46196ee0e9b5216c63f9625c3f00a991dd07a5bd392c36540faa2a8bd0d523184a41a14febb1bac501f5735bd63568644f0fe68442dcb3999cf349af3ef455e409a1c059726b8e273e1179e559d5dd741a3eb6a2eb6446931e47df3dace9534e1990e64803be9e8b8c62ec2bc9759eb86148bc33a7f9866cfd8c5e102f6713ebe29924b4fcda37ea8bf7e84e5bec461ec269ef08934622fe163254868e0ce25af29a4a0fe53a45958e847af3453cec0fae91056f72dbed76f25b2c13a9c926508e69cdcaf86b3decaf163e7c35aee369ba1cc06b835506b6d51f567c3270b337841779027250c954832622ef07dfab32b368c2036ae1673aca759444dfee6b8cebade1bb073b5a8fd4e9dac9219a4365e4e608a7dc9640a119e036eabb5c55a902994b0b236c510d45a8b889fc34061959a5f86d65286d747a666fcf62d31cdb4537f4b06a176b89e0e95ee58e7d0b189bd80759461c6ac8ea69a8600d95e16afade1ff1ae6d32d076316c23e8e654bcd52cb6b791aabd48a419d8b9bebb95eefae6c0f2f202494df98c88eacd6a176fdcbb15c619f35464c440f9bab0b1b209d0b14d7cc704402b4d23b3291c9706e253eeb3906598bece0fdba8ece99b7717c2fc2051854dc4a5d5a30c57e59a7123a3ba85b58bec7aa622e76f3b0d0c61b5e0138ee3a0c3e42add9d31f0342ac068440cf4093eb5a1804fee8377a9ee83db95a31afbbccdb702b4c82be92238d26df3a23d415b404d44832bb37b8df94134f4d3b7d7a1cbc544049f3282b6f5182898718ad8d7700230b94ea820c48873780695b2a5608778cc33af0e0bf45b921c147d5e17afd213ae2a5650b1d5f9466209c61981d0f9600bb2852b530f4c51bb156d0d20f5c08287f9c350dd7735501e026c8dcc22e2b5cc774bac29f8a15bd0836d9c05923ee54e4f9b1090a0219640859dd88e987bc8aa6c7bb4a6e55c352ee61567570e23f8f9e26b3375a86aa058f915367047076826ab3df2e1a6ee146cd2711a604381d09dea2f41767be95070fc3e8345c778763b2b81671267981d8c5d5b6fdd44a41e4a93bdcf0c4d6192a9284c3e6bbf4add389d1a0eb8ca21d5f0512fee43b8dd5880d060ffda151ff76b20f14103e1d9689c47b3dc0a7d7add1d94ea612aeae1674e11451b3e9509ef12bca29823bb4f43d55e846115b6b767a5335aa6cc2563d1a5ae177046ff224e349cf19d0af2d18c54243dab6fd97d231d4ee15eabb41b7d7542067b0972eb97e58631459e6bcd86758f3ad7d797baf44d745270e2bc3d3aa63e0f2df31350161d47823cf2d07c8c1a018edcb0157f944da28bb720118d545ed9fdfd233b54937cafe3a630ad22773f1787d4b646c876f6b64f842cd833fddfc72e721a91287c04ca90cf10a3178013f0f7dd6b93a774df28556b0b87ace8199b22dd465902b40c975270b82f74ccd6541cea622bb8e13abb0f5ce7a1c7274cdb1aadd94c794b03f5923941515070bcd9f930bc85fd0df589ffdd6704b04a96135b0cb8b0fcbea3a2e73aae933a2ba955da9f0f588431f62796075549794d64d16dd6a0ab16f944c72c8dc05469a2b6f272c916b47be036ce8f016915eb12a925ff4bd9bdc2ebcc568206b46fcc442e7a2cfa99d6afe501e2c2a9dead2a17145b6f84f811e2814413434a372e9cfbdcbc8063a2d0b39610bbc3f8c79e325060e73623afea2cba99c3dea9b3b2570c646da1053d684f197f2d4c24ed6097ca581e98c755456300fed0783b1975cd1f5dc3cf7c09ac36acbaa96ed52a676f244083b7231dcbf93b427c8602cfc12a58c8f0c9b61407c953b7302a6f537a95d23313e6a3f0f6749eaf0a9ca55100d0e57c75f62ee84eb13cfa1d4db88a0200b17688523df564a8115cd50ca20ec69d1ef70491d62083b0d67636b9a8c2b1ca1ed58af8e655b2ba24baa485709af66939c60f60fc9ebfec9d8412c8dd293a7661386605b1e7edb0cd3933abe0d56906976d993c6d3cdee71da7025e004f3063ed08d6c76f71e3e68d39d43264edeb3780f9a2aac02cc1358f3cbd65a061a9214212846e3f59de2f4ada6b586f57709ba0482d782d1784c8d82532ab0b280e1b86285e8bf78b20f6316d8a869f62b55d6e03a8f2a3d037c59f7a1887d432782a53691bd736b2b9b695dd7f9c3ba67332d87795625f7c5fc9e378340e783676f31a2296efffb9ad7daef43c4e642c7601b981f33df1a9e2837bdd84457f82dc7a5514d7286ae50efe98c776ad8ad2c9047fc5ce4cd6ac49ec749d84eea87ab9ce0a4de5681403d611f6e16345c12a14ddd8086be74fa79dea74cf960eb61d33e516a8082b3481e06d91075386d6aa75ba86503b0f5b37759ae31ade82c18a2d2fef0455f94855c483c26f7ea4c6177e7926b0921d949fd40ce47ccc91785aebd3a840cdecd4ba3af4458f0a1c2e2a8704ff4230299ad09e72f710ddaacaad2d057f8f3bbe6ab07d82e1f5673f9c0e43db94496d342d4b015edb521e1459eddfae974b72a2135fa7dcb4ab1bacc591da82a0b1fd39a11e5e924fb35b093c90c0d5197181fe854c44871304b52aec8426c5a2b437b731497271b9d5424e439b3975c7fbcb5650ec2c6e8f58a870866e9aa4430bdd4849ff1e9281b1b1c7c649ad0865dc9c8fdf2544da47278e0fd02e73e2922040dacfaeace2569bdb1b52027efba1463b30a54e8c9e4b29bbf5daed9dbfb225dbfe35f4b4d640ea4bfdd6f93a127dd55a7729853f29f4bca54f507796a215a965a34d13c19f55e03915c5a41e70d307781e48d9df11fe6bd5b108bb39052c5fbb2e4fce328fd160d9ddafef3c69d3275cec4e04c29370a330eae6bed29c4be4835c2523e0dafcc782998bbbedca7a6fee01b7ea50215f4a710bd00f1c21e53d9acb968d18296ca0283fdb77d6f477aa2936c69553e8fa3b9d677525309194fe8723d381d7cddd5ea84858616a2ad6893c5917589d848f6448fda8aba431c7a27ecd00374fc8ec036926c09ef0ac4ffa6dbe0d544481d131b0f75fa801849d1e101f9a929f6498bfab521d559ef904d48c8c6b93df65caadf84f0b2f36f047f5492b5a245ed7c724ca3a948077fb562bf8e30a0fa11222337b424613108404237681123316bfa711c1b2f62e9fb38018eb9e5ef597d2b2da0cfb395dcdb8dfc8316d651c4dcb4ee8c0864dad5374dbbb3cec5f3ff6842e9441a09c781ba81b27568da388701dd618d357ca36fabb6e15954b8a390dbed10b0d6d270c87a8d6104c247667e4c6c1ae4f637f8c7999c76121d8465d1a41a086778a6d751d3d3bbc85b08f54ccc418dcdb50cb8117f098a833ab4b24b6f4a52afb11a9829d19dd024b3699a054f35a1b4fc7e9b01ada6a1807aa07bceb0cd36fe02cedf8712e66e38d869acf17505ea1997fd63dfbc035b06d6a329f47583e95fcc803540a4279437b17b2d3f33a050f1317ca6e01e2bdbea2ca0885bf95dbcae138d4be45d1c7c26faa2c5411a0fb311babae5e05afee3d5a9d991792dfde03a56015d2bef442190a5780a9e275e8b88693a4d1250038516fbb8fe364ed6181711600846049c171a9496b3b83d0e5fb96e1442469bcfa94b8692bf22078f9747fb8e7f2badf2fef25b83e33a0da9ba08559d5754770d70d04e0dd02fc67ca40bf363baccae5f83ec54a0d440fbfffe54d9858edcc1b57a1e952b9b3ec08856d659430b4b112d4984322309af5218407707297e223151fbe462b0a8ec8c8a32be4b7ae7ae086f669dc10ef20045ffa7a4a1a5eba623c17e1cb40c6866f9ba01d572e3861d595718f8f5960433f0debce2d5765ad4b2ce0544e9ad30c90711dd893f97bf1e535dce5e68ac8719499dce6fc98b9337364ca2b28fcb8855dfeae773fa9cd887075e49289333bea18c168c54c9a12367bfc56231b7ff5b8324a8f4196281cd308cba79c56e188668fbc49550a73452c8b9193a1214dc3a0fbff83977ac728eed29cfa259cf2118718be8bb78a4f9b47413314943c23e514287c1bab8ff561975031dca0148060db3bd012030d5a428ab3bfc97787e2141a87d75bc604a47d28529685e09b024deb208184e0e29899119be170ece9a4935593993cb71f45fbb5df080d7d488f3afac83869c6864f2ff558f2ad572186020e6bd1b30abea789af6c667e53e941d5e185c8cf7defa4fce2078bd94c1bd1d2c5ae392b7a3e3b0c0a7843ccfa7c5ec3ab0017573f44d9502ea7f106306209450051107d6a2548348172b4348857de8defe7880918decf4855ba6a4f777a10ea2dd79d9fea1259be4c02d36224e1b927559e8389bdcdc5dc64faf20c649278425f692ff6a013fc39e999d947d5035c9d0dfe89da3b11e0264a99527067c44b355d36b3bc8fb4c4436e416d4b5e93a84cbc570f62d73b628bf0d414cf10801f4581071ee536bc429fc7ebf02b85cf63a31823840412920df08c9f8f0c99025eb3c0c46d4a0fcb8cb2eede80f061beeeaff469b258b11c244d4e7840b3fce3df187c5a565663975d7cfcc10c0fb52f0ec4ccb02746388416583814e1a42ca97f419146cb6d0f27fa3299cb612340ec48034ad6db100923e7cb0e1435a423cc50b1ef91e4d8e8ddabf55328ac2bfd58d04f5d333a85a35b2f1ea3f997cda01fe7915a535d45f0c225a3f79bfe073cdfabeddeeb39b64e7cd10a9d4a6bdb2574e4cfceef7a1b6ac233b9b6546ea807ff5202f771023171c1b5acab88c9076085fa8ee9a531d5ed34b1e2c3e789692da2a52e7b4930950711a6e64324400cc02952d9e9d18e9b75d5f3ce63d80cd5d2d633c42e93659833c5f062d344ff19fe46ca739ea3d228e40bbbfb1a8aedb941d244407575dc02b035d375dffc732267c60c313c314fee0da22304c4b266fbd90ccfd603b89dccb372377af613183caa88312810fdd90f0700bcc25caacf26c8afb1f43b793558a09163ad6c1cf53d73346820ce26d119f8d308e422c42391a5ffe8b668f2f541972b52dd822d21473b12e65eb897cc6ebb00d8c174ca59fbe9c34e980356d798f0f48d3858fb651c0f64ffe9e28b64289b5e21b59dc8393ae097e75fea5484b546e3966bb5c04c063f0c902ef7db1102417dbab2f863263c743c3103930eb449a1ddc6a39307bea49bff85c75f5e87aadef4807daf6d9a0085744eb5e3aa956c71c6ca9c1e5d26f73c415dce5423938ee3761ea91fecb730034e64799a30579dd8794f0a787bbae8e98d48ac72ff11543dab116e3bf27981d74d4413bca9791c88f3a7184accad0a0556b48d60697a673d8e05617b58ce265e8e5c739224104cec87d4c27b0ac5cd0b35f3c3f59fc636dbba24abba0203f754f4faa46da772237ecca2206578575721546a194729a935498380a7e298f30a907b7c78dd87934150aeabe27261519c0ed16dff49b9e113479e3c7498ddf42a52596ec85c49013ffc4626832ac359bab9b22e5c9eb0fe3c5e6c6d14bc348fbf384134dd515554a173cdb62a0da3ae97b8de1f829b6155814bd2716c97d06f194bcfb553d87647b9b1f25e06b78afe9791c4c24b7ca9e4970a1e740b8dd8e36109eee41e839b32f132561df9af09973e2a204e9aef2b5a4b1ef55a6f10a0c494f4d36f89e89e0ecdb813f99d946eb4f916cdc8708383d759a83494b651a0b2264c94b7b94ec4c8a207e5a35db67109164c0dad354523ab1c3a8427f049ca36351e3cefad0b959cbe708b07c760511def98ed13f501436afda8ac0d57d3a8e63fe17327f487960406d7319c03f8e075c87b2aa4c783332b69fd6d97929c34c4335a10343e63c37982d90fa6cf722399043cb1b8ee3cdd60d2b5975808f0a448538b2ba7237b9ee10d8af53107bfbe8b899235668952d3b5c87013215ec239fdbe445c2599b32bbb0e94d7b125551915ba7a03a6dba5c5a3646f958047a8baa296afa952c3527206fd475e2b1675d756b2c5d07201c771b966072ee1c84389f80879de6d68566bd14d5cabe850517a88976c8e265067892ab6899d90044c1db5bc81525893e43270fb96bd623accdd9b3831a7815fb81d81907d91b162b8f70c8370621b67e842aade5cee101e5afe26df02204ab18a8b3bd06d022eb37cc954f457d557329d7b473ef3d4591cf2590945f6d8dc0ebf6fe75025688d4522d8d040cfb4b5e8281a08e0a7c2fe52944659e32e12d3b6cd5acac299b7cde07a4a9262d48997594e5458861ee90e6b7868aec884a7e927910ad2c491d2c4ad0bf5900177c92da434f909427293e1dd9ec9d299aca2c1529eddd5e245d2489573e0fa123542dfcbfc47b67a6bed10c9daa21a055c04d63b96b36f5bc54cc6a722fec3fb12e0c7513d2f533304e90ac7fb23c763423ffe702fe5e24b4589a4dd4f142a3e8461a5d4e4ae78ae74c697aaef6d210a312349087700583efa683d2604293ec742c88c009e7b2c99079e55b8f89f829d9ae6d375de501d388cef8aaf43dbe869c656b4c06b0711585628820857e2d6ae72d0673704e22644bebaf8407a2d716e0a5bc4100a6cdaeafb9f2fbaf9c99cfd9cf2ab09a55fd11640188c2ab3fcc9b0b60c7bbff62036490c5950580b04eb092c3c66277778eadd43d98be87fde129d7fa509f0b4fca81f78ad93ed1b06a9bbddf978634aab51bdfb21ff903d39859bd19e2bf82b3f1f22a595e2bee1da92fdaae24651121a5dc6be1c1141780e0690ddc5e603ba6d9ea7976414a152066d57184a76696f9b5f2b81b8c412165efdd2d825b236d42b3b65a3a6d95ca1a6130b5b0157025958be747ee9eb2e89ca990f483b037a05cd0c512015eed2468814ca31b995dd472206788499a06d421f7e6493cf562180ff8115b7b50e3363a380f1a1cfd192d6d87e3e7f8e1b51a44fd12691085509e84ee755b8689ecc3e4d00200f47ec5706e14ff5869c47eabb45ff971b239b5a735cdd6a7b465af18133c9e6c6ac3e9ca4f50cdb0917ea013c66e870a315cd4ed209a3bdee99c65b20872464770c86cb1db1dec753eb9533b672027da43ac244f3469aad246e241d10b5ba116e6eacae11d8a02c3550772db2e6dc082565d5ce8ad837634fe87021ced00151e323eb513d4b968c0db61807d7afad46243fa2aee4cdc14ef168064bc2a0549f9dc993802a1c9478ceb36055fd340c18b1a1ddc4a17e3a0a6ca116da5889b676b60e592e90faff818a0208bf194c89dbad1797f6ec1efde56c76f6f1e263e2a9f2911608063bb22b41b63b31aa1064186469f4b3c9a2891f609a77f69a9183af7b388a1db6ab9c09189ee35a1d9945100cd3a24f3eba24d642ce164b340455913cd162a3d6b0d7a30d05336ad8a7ffd748e108ad8bc8244e88f969af12048ab8e08177cb3ac9fddb0e12addc6155f8efbe3924dff3fe094dd8e2b7ba460671c5bfcdf7d7da278270483c2f0b6df252ec29d0911d1cad6ff3897c21308e305a4ae0e61734797d8523c7791138dfaf7ba70326d9f971c420aef5a57298a7e7bfe618cbd3a61fc804161573fc8202a09daf510d33c32bf8ea314d9ad7062c8aec7ce8b0c3c0ec969bae04032d4084e7785b6cd73f876483f4187a9ac3bec3866fc6f5fac2dc7c65ebb080fa1bfbc9d641a27531202010e6225c3617129baeec2d44714fb5cbe7cf049e2b4313a03b78b6687b2c917f7c671f25cb72916aea3bbff7f5f10d6242075176de68d8ea30c36d78f9c8847a95de644cb2af1c9d809ecca733cb70348c03dc133fee66970b9cf16da1a146ac6c97bfd5b3648b9446162551c31d0324955098a3930b1d0dd2859b6da94a08b4f329f98de09f936e5027203ebf4a9b8dde5a8407a3ef54b45b58b0751eb925b004287b7aceb10cef2b239f00263ecd86e5c940fcb102488af57113e3e697c2328e0f6f17f8ed932463ba02fd607dc9ae5b899800d7397a277d96e909364271098df0d5c6dd7c11a63b316219a85568846126e528f2febf6d20b7241b8bc4e108435c0507b215a53e55a38c62b9acf814e3c64986a6381a5f9a52750308715c9ba04b06cc8a6e0bc88ed88b03fcfd2469e3cc444898067c5327fc18708eb849ff3081d831fd98231dc88d42cb76d32ec24488fe688ef0bd0f147e9165976e08d60369231ed39bc4a2b9763f25b81027c86800cd5c424e0dbcab21d3ffe138e80add17f199081c3bbea58933814238dfe7d8f92ef785e3a9b877af3c417f2129b3da8a6ef76924cfab053a42449c924592af5c5c5b3c0621588ab821458962e5de297923a7ed7f5e42d07541d527b5f984a97b0e3813f1189908a6c0e604d09407eea411e39ec0ac535c606acb362d6f8ce35fe41b21e81ff2db108773b3124a041182498a30e3c13ec7c16aa28aa14485df8dd68fd11cb26153482a8f794a8d2916836b97d7329ade586a220325d29ef1ff6572873bf485f446a79e207fde56a9a3d244b457be2ebddf2744f364c80182701fd94a4aa70029ca5900a274a403b6f493eb431bd99f1a621f5eea85b1df8d7d6b10eb33b88efe016e9d1fb75a9b0d0d00f9bdefa92a68b9b8d9dc60ab15da58864ededb88f8adc9ee8a6564f2d58f94bbc80e4014737ebdbcb6174c1c54d8ea7db5ee8cfabe1b159c9b7c7b5616dd4f53483e435faf80e89fae124d7bf8d993391e80f7c4e4066b651fea0a59ef023ef0c53414568f842da1c960e9320d063cdb3e66fe726e05fed8a4a4006cd48e32429b880a8ba19a58ea3c38c517b518c0ac7f6731cdd6ef1a3f5a5487430180033372a4d82a632a058944d0f44d9cd4497154dad389a44eed534383a0cf42166f0e16bfd590dbf58d6da692d93a879aa7dcdbc35cfba0b02db3d6955d18ec7d36edf7906e74cf97000bc37fced97d211231a163ad9d45db68a1acd80e76779211ed566fa1b51b4b93e570d95d952496582e7d08f3d59601689ed5c82b0f64fd7abba447f6a4aef50e12e71cc982b8d1a73dc50f1ef8c38c38cdb081a602e7d8056fcc0113af7b41699a5df9e06f4a78f372a7998816d85bc78d4ef1c6c5725c7386f3119ecee37e2ea44fd86561f74e3143362e9f4964f7c4919f85e0d593a37adfb4f889f9ad2b11d9e36bf09c98319c8b8038c785a3974527a5267d5bde96188319641ec2bc8f2f3af70392ff4613b873fb15bdbc634df06e9abfa1f978e57273cbf9f4c1e887c45c9f55e85ee07c3668f4d4a66746a3c5b8bac301156fa02cdcf5900232b0fa099f4d3d4ea93f37b68e3a0c3da78505814d0f0d28b2295c8b78ae98951b0f03a3dd258f9a13275eacd3a76210bcffcc6d1d24904e90b992701f38aeb0fa8ff36837dff94fe67754d771fcbc08d993004d85540cfd67868e8b3f80114a98258ac660acaffd23c6ee4853041437960dcb88287b47bde1f55e3658e1e8f67617f988eae050a733173e4c63a872bd860d7157ad19d50981c28da3f3a199d85133279fd0dd6b70aebc64a98b90fe4dafbb98dd9d279f6147a6c22a256f2e1512dd3734986e0d60fa53a87d213925822278d73c84f12f952d4c17267bb703c417c0546f93640354529cc25b63d2727042efd753113be0eef236cf24bed37805d4ab966e034d1c19503c36f9eecf81059fc062432efac535ac21c725d5cc870dff9206f81d15293bab53f04246d06fe571dd8571ac95120bd7a305416dd9821d1fb4ce4e7b3c7782fd1f6ffd69f12e80a03a8bd05a08e4794292f91aca41fede0632af8ed24a677c7fe2bc91e557643b57e67b575658b7882eeb685989cb8ca92b0b9ed335557530d2d2c49eca7b6b7025191f9e5e1a57bd470202cefa542b47de927731e110af8064feadef9e7e502a16311ec748e7b81424bd69fd4df3737cc2b624a36ad4edf78e38849bad32c40ed75008edcdec599a0a4bdc94b7b8ad9554cb646094b4ce3cd1f298ec0c98e2917a295adef60bf0615b51852ebd662e98ea80a2c44cd56081abd2d14d02d51fcf8ee3e61745f7ca91628d7566faa8fa0b665fa92088946f17dca1f71b6f84aa73707863025a09eefaf7402e73480df603ac9913d8df967c2934af980fd6bdd254437af689d07d262d2807c4f62b5e74fe4e9ce4f1e7c94a2df932eeb05ded85b39463e0fcaab3e910089ae67d2471cc93015f2956b59077aa711b0693a5710855a51a8dc752811fef2a8fdd3214f19fa84e84e50bfabc4a2224e8e2776c9530a6eb576ffec73cb679c74387221275806c1af6099f1c89c45e3dca8ab6a35afb65a06deca15b1c3e638857ba9356d894a83bcafee350dbfbee89e1f2a7788990a62bb4e32b6a5a2c726c60e6a3ad2ee5b5989376e16a7b277205294e51bbe503236ad8d7e8d3f1bc135b740cc4d0f625e2b71abaadeb1c93bf8da322cf43190ceb12b3e8ffb190a128b2e2fd9ccf3876fe5e856eddc071f8508e070c6a3fa5c9cf4e56a5e2c0974016a9106ef629af169be138839ba8c08acd9db62403a57f1cfcabeb7a8eeacc28a4fafca86062daa4b34d4ca1267a3d4816219840518495627b16b1354d37c99e3ae6072b0115d48dc2bccb1bcb486725091607b9d452dfd3792838a09f9f6336ce78c37760505097c1ed61aee7004c43f3e5afbb29cafc104d5cbc6c618ed71524a9a6f640d2606c80cdf397d26e6cd647acb191a7f11f29d967ed4237aca1f985b95ccfdc7e705f63c5b104417e973e09fce57f18f840e65fbd20ae16619a971bf89896c0f3e1356f4c953314f43bbc4ff951f2e5fa1fc7e3983b6558f3a4210de342992b949c1376577fbeaeb52ec746f22bae1083e1d623a55846e1d8eac9b0201b101228940abdb4138051d83ae00dce672a36288787b0455d7e0af06d55945aa92981b09c47b7888705ac0dfecc1c85a1d13fdefea3f43e34cce9ecbd75854f3956152f442aab6b7fb35d34c293ef6370716573571b93a62f755d3c71b6185684929f2bf656ec53ae0b16603eb3c588aee0740ef2913467e27ab96da0334fbf22d8486517a05edfa11881e153f2cb76edd9c5d2f5f095ca07ad61f7401c7b0ec9974158c819cef17494995af015d804b735d6c5851c4c9dba72c2a3d6da5e860849bee9659299f29b9b18cfe946f6fedaefeba79f13436fef80e5ae5b65bfba2f1c93f8bbb1b4fc20b19ffb759427d950928d6d0e39cd3894c977166be07efc2fb1084c84e4897c0416fb710cc456ee89b06ecdfdd08f2262f459e6c8a3580f38c88c7a9a6c3c2d1113bf8b33cb8d71cd0536df3e0617ca46e22ab3926fb0399745a89d90b6e96a27b1b31c2ca503f5b6479d1d3b758e6151545e01743752db7bb24a0a44d4974a959cfb7d7747f07acd18fa99afc3849443a71fc4a634c92fe7082139a6333b36d45d3ac7e581d27a7a0647c9c7720fb73b23f91642b0a74d0ef3170dad1cf3c27355e28e1e0c0891fda7ae5292d80ad3e777d390b795f4455e813daa28cc87b6359c1aaac5832d4fbdc322074ec0376748de4bed35c30aa432b97b6789a65e09be2e36b6b1fcbe70ee0a9caff5bf43b673821aaff265ca8d737b179744078ec9711c6e0ddaedee9af285468348b75d32167215eaf5fd9ec02ca63d08ed6ffd47907516b2c93f01f1acb84e858b513f33be3e0f2be58c3ebedfbcd8d7795ceba2e386d600176d537ad247df12f1e0d77e41712a716d8eeca5cec1f3262804c94073bb5c513959e12db84e500879de948c2de89c54323e4141052f3ac510aef47c2b48389fc90c4373b9ef25b4b8a2ed7184cec0e8eb5e75a8f52740b4c71b43e426433136edf2321e3e2d1069d8893677aefd338215fda9d9b80010b484927018d5a14550230c6d5879276cf8cca32f8a715c9662ff05851fba1eaca53a313375f5a1075839d77fa03d7e31ef64a9c1a24eaaef1cd1606d2f3c8fa418b87aa68067f20775dedc0ba50c3eb6694dd6ebf3fb33ba13bc400307349d3c60cd47d6d209c05425e931da93c466b7041cc4a85007c779e86304df5e247212e8e51e59045cbbdc8429e4efdf2745b5882d8465f92f3be737ea503abdf4a45679ec1a26cd07b6f364c89940492e41a43bc94ac9b4d91c6e36977af0f037d9308dbf06a7bb90bd2c209ebc913457895485e9b0b325a9c894d3f9d7d9bd5864e30344a17f3c81e64c11b1010ea1fc9f22bf9ca2383afafdf03ce6240a9ca6d973fb31bd8ec9fa4d2b613586c17a760dac6bfb488c588818a4b7a53d08d43a900903893e8bd2445778929a3398666974436ee881f0bb035a7b8fb77b0ffc2e4e041a004242d1e0bfe0c5494c09a3998f214d0525a23aea78122a2932d4ee39458ad8eb07361ef6783d6d7d13a89ebd2ca4257d283edce43fe32433b3b51d0259f8fd8ad85ea45b342b8298910643511b8342164c6d45b05be3dd46933c9dd57098ee6df0eadfc398c196de14b82dab632695c5d4d1278778b024abaf9743d76581826f551726f783a4c2c366e05e795a162758fc897ef2b4e554546baa635bc4e11aa72a2c22f344595f1076026dfe4453062b74ddc3702b9d4bbe87f29d250ac484c971c6635eab00a630b66ca312d56ef49c7b5435161f26c1f70a0388fd01849e7192f2cac148d1a2a772384ee15c34c4113982d1b00b790e098ace49259c63fb14841be92ab27a66b87fdac22f47d4d2c30329e6176e872187594d8e3caa7eac317baee7947edd5a4b720df4cb1f4c4ea8f1db88eebe58bad7881d131d1ca0eda03e86433d37f5df6e43ec0605810073895d4c481b140e8e9ca68dd9c1e934b9514df1f021c8f9fd4bf4e44478074c3e7e0ef262ce75e088c1fa36377a0fa65ccdb39a7861b5cc0efac494c71811845ed326351fe9d2d8d597effb8e03dc9efb6ee04e9ad16bb4a6fcd91d544edc94d81a5f3f4bb498765d416d9a2c7e187d10ae3959b65cc5a8a82518195c7f0732492f47198bd2007be23071f5c1da7d65702d58129c66c61b0b61e2e524424eee73552549345bd7e5d8d462361fea00569e14a560a32db549c4a5bd09a7860d162d50cbdecec42e0197cde9f28e036362ad65b6e7657cae182b409d7661b75ae8b2df64a882e0d6531ed93ded50a3e99dd4ab6d0a85dc85cf06d23baadbae80de49eb61ab163370e5ea08c2b9a8fa5bfab75b1e7610a8d9d50572d246fcead5613b8832ae6bad0635c05722a6c0c8bec90afabbadfee21fdff7263a8fd65eb137929bcecd060e6ee12c43887593e480728a9f46595c72934708e55061a18ce0f814cff8871fb788627db5281fe2eb98ef01d1d94a206b96d6db51bb57ac5943e2b32de6a19f1daa3da1799e2dede4ca7a959a9a22a2bb08a4dffebd46a4aeead28e70591dd815ad3776098e240b3b7a1fab36645bb7a4d63301ed7b1edd74d0926541da6cbc8c707aafdcb5da0dc7bbe24b6720d0a20bfd91f8fd77352dc32af4d4e61835bd3770ac8b31ffb1cb053ead47ad0115cd8cd02482299732b9251e3998f2085b364f9c02bde8de8da25989ee2cc652a53c1a5edfade81779891e0b127072ac15004c3d63b4a2e19fd207a127c585d49d7ce2f57f89a5e5cdd26b5a3702ef7841f87fde913fb26feae7965080bce00cc47edcc918e29d8959aa674c99d34c40245dc3e6371d91401c5cfb73fa419a7b617284ce8b734bda50319e02737917314f398ef2aedfcc138bcee2a6c3ed25b437cf37a1f191ccd6a775f6a795907e5564ba5070890646708dc695f76afd0bdc100c70eb8a47743e036a496a8bce4d7176940ccc48d63b9135943cb4d419e710a194f275e9206159116c8ad0d1136251fd57d52a35d532ea208c8247110e031c8b43e8b260540c68835afc71a4ec79442965c723d3e8f09e1a9580524dd7c12d7efe8315b02d09979478b39fef3c5f53c177b625f476f0eb1797b716aa4cc03856e931808ff350db04b58114ffe5962ab6920147bbac948055f1dfbb0066728d14a73450e1039c002641b8fb8544140231c0b0e71da90d9b8ac99f905320fb1d874e050428cc81f03c3068e253c32545eb83b588ce101067cb871165169de9da943b8564015ff8fece78a431c9790dca067886cfcb172a11098d7841f69eacd60ba0a7b500d5f7f72f5f6191b6b58e6ef484053c105c871899b1262c6f01c1aa1da0fdab18ea4c5717d36813cb6341adf410ac2589f51c57fac51b4766b3d395c409c36740ead3aaa632dea295c4d6967d09dbb8885902e223f1d19e6ddc597769f5523aa66dd854928d3e83188e5f762da454d9d84d567ff4d46fc0735ff325671c4c10b85c39c9538f16c0957eb96a130fbb873aef28d7b9e028585af0ef6c7f6e36c5741663dd60a0bcb6d25c3dd5e86cdc21642b9073356984d99007054653c568fd7ad6533e190d82e22b5f21d19253e0c350ba5d98b2472e1308e593886b2aa633c12856740ad60b483429ce38a3787f32c4424a3b615128cbf0d57f66c007656941cb09d2434f4b19e7b75be4f287811301aa1fd874c870c74f7ff686d7a63f91b79edb85c56755934eb6ab0bbc8f3568c04f96968a498135d9d847338224f1d28c4c4ae432d48287430e04e8aca40b5ee146941b97dcda401c59446379ec87233720da4de3b76f4a765551c6af748e4d6b769e48a6156eff3d293bf3531f4250a46e92d0e010b0918f3b9f05ca9f2e7a7e7607a64ecfd543de1e56fc76038a7fb3f938acc6b5f847af8d2f49765dcdade978e8e580725185f2aaa5ebf301ba2e4203c020a072569471fc13180c4607e7111334387b20388e2e8b38ecbd18f401d18904a35fa26b48766608bb1c9975ec4977cfef95173ceaeaf0ca226748230599bff476c4226aa55f7f54f66e3689b5cf074a2ea657c723e4328ce548e54687b50dce757c293aed6d57743a40890756e20999eace580edbaa5570f7ef177537a1cdfbaea7044480db0a9cb20617f7e61f2879da6294ee76a9a8a43f4be756a002dedbd26d1b4e47f0a14f90cdfe3cdac4426b222ef1045c47867607944b50fb4f13ea55afb0b822e0b639f60a5cc21d7bf730373d59113a5306b561fb7178a4fcad7d289f46a9cd8704f58fc0d05b1b6df7e7f83074f8c295364f0d37604f9887e5a8e93d9ed3732c3b8495cc6d7a23ea21599df5a787612b6d453019b7e7fe3d625deb731898e62c548251d119bbb6a3b82f191f7767043feffb027fdacee75366eb33663e1edb78c3bd75773200a18a8012cb9c592f7ac7ec761824330c7a611f718c2891f38340006295998bbd86c9335a6bf94ec2ca14596b5fd08bb654a92e08d5c5a619a4168d760ed85b39efde2f3703b45cf99b4dca3dcc23a2e023074b39a8eb656721d2da6b97f00a3949ae400ca52a05a57197f75a588f87a431dea60f9eff14e1f7751bd61e381f88d8408c0fd1f1899528502122202f23eafb6639fe59403abed1cb0562dc954e2dab1c9b66f6ccc4916f160938c82a23d4cf5030f1e9cdf973548d4d487cfaeb24b5d99b70936e7c058584df1fba7d3a2e3db47ee74043ef292ffff1af62ab2469b28abe5f0770ae0889a24eb4dc0617e8a2fa6a538e8c17001d6216e37c5b017281ad20ddd7c852452ba8a25783f94a0f256de1022e8c1f3060d331a4fbba3c8c4754a4a01b60ba12c20f2ae4841212e29aa3fac66d82fd5698e6783be656226270b991fd6b374c80601c954ca50223025514ebac3fc037823862b89916901c536a23c37cb7c1b24cdce59a8c72af25b3a71f62e37f1ad6e0af2303cf08e765e068b626cdbcc07fea1fb518c34d0dd5453c0399ab121c79c4da5346ee59b3b074967acd8a93ab0ed9277f943934e6739612fc715b2ae01ab4c288d06afbabe389b3cd46095ae0dd9b65bdcbad40da2a2c9c3d5309afaaf3a55f4227158b2ea1d42575d47d7b58c6bb8535a6393f02caa7910ccb455cb8eef09189267c5edf1fcd050e397770598968895620abe81c15ecdf35638509196f82840a369af13555683af9f5f79392af74a04565a47f73634ec8b7f5ebf376c99413703c877f85c9b498549701672283cd4baccb09fcfd75dab922738432c3ed561ef449d769378758dc347bfe222c3f2ed8e77fc1afc396559e45960416342dc73a5f956663b43e44da7e1059f2528ab606ae01b26b889ff883056960a255e2d4cba456e419bced7678fb8cb1fb21042fd8af8d749f3a958b15d67d1777e6319196e9eb9d3868cc7ced15d7051c1e8c3322058acadc5a3bda2a4102e21f2cf14e15c34c598ebcb0a3ca3e35b9d080192de86149dff67cee9eb8437b63b9f3df53c1c9057c28af0e5fd337accc6e4b95edd74268ea10c279c1d32f96a42b6a45748866c4ac64c6b305e49c45d37c25e0914ed55b446cf4a885319172faf19f2503e5aa5442c9e480c7fee95d6e3863c1a5db6ec28b6af5afdd35bff960c1266d353eccbd61df06b0fec4c347cfdb96d3bee4e3c9771e5add9cbf385d0c255967ec8fbe8a761ad4c0787548715b01efe6299fc08299fe05bb1993407ed77b3ca55b28c3d686c4853fdbd455df3b0400bc84373cb67bbb9b8cfb279bc933572a6545a80f050c227b3b58ef2f629e2e57d8191308e7546e72ca321631de7a80bd136030deed09a29399897bd97204dd1cb5109f75eeddf57d597d093640f5f93ef347ee7140f1956e98d4756a8bea569c2fbadb650157e8cda0ca5b00777cd595673892dd6dbe78369b265ef08435193a74946839b804611c332667f3ecc31269061f888fcf9e679a4d7faa5250d4ba74400b6cfb4cb375974e4c6b03033971da3f3e4e07c214653f5843ca1fa471d34b97442fe4d8e348428bf32e2b4f7a7ce73492794167d456fcaf65dba4f5a9e96135f425404e58900cb3dede18040bd1cdaaf51f7103e696a7e4a8214f822b29890d51475416145a0b86ef4a5bf650533f74794aeaac71c8b104d9168e5e8308549c5249c07e441482bcd62f1806629afa4b1bb0e69b8db92c0c41b9a4112b1fbddf13d476c57e8256dbc0d33de51eada237d793ea3a0ebb01c5d0e92c4f723d53257e10ae37bf123a3d4b08af4bb1b4f10e3d42c16e1116f92bad26a0621c52b589b4b981bebc8f8ff042f5f5e313cf0fccc46d3c88294223406108fd6f857d2ef84fbfce4ff01ed6c5c9477d158d68e6f40c223d857197472af6c03f616b61b9190f7c85dda6e8d2f2c49738647147a44b34717eafbccdb7116e9d3c23990c055452d847af0931f0c4a03802b4b7dd7aa71fb8bddc20f804da11421bed6f6b5a7cfc9ebfb571066fd8bdc9008369b90e81ce709abe3fe2868fc6ce50dc6c2f90f14fbd152bc718673671702a7baa558295809590f29d3a9450f05812bf9492ff9dc50de25efb34d669fdc5f831253e8f29e391b2917323d5453b094dcc5eb8a1dcef500a4787d6888af81e2be1a4a79a12b62db432103c69aef9bce396bb9f0ff0dccba697776178ed82672853d56514fff9ddbb51f9fb99cf71f72617064cfcf152dc74cf316e8756fac05a0679242fa422783f30b4ef21bf3e8a169679c41af7f8000aeb1c4c36b48c63c222f0c9e67dcf0a62059c45833c4bdb68c52e0baee3270ab214bb20f5798e406b0c584022886d83b46edcb48f1992b975523c774f1a49917e3b3d00ac6606d5bc5af73f99f99599ca9f30ec01109ece5280243de147a58c3886be152333cdc59722013ebf16d7d54a1daa991a00e4f28beed24183747c851ca587fb070087e6a7307a2a6fa26488ab1e90e26d84f02eb9c32208de7e6d6b0849eb75dc92fca6c3d099fe7c1d56d5f0d284f03993c419d94d2537f068d03cbc756259a66b3f9f03731b5df96c7d24f039e2de2ccb46d19bb6394f58e66e7cb62b3c983056a9db3dcdcb00ffce6fc04db7a9644e5a297fd21f9edc5ac357046a0e2baa2aa87070edb00f419339caa04f30fb4d2548d9f9bc8f7a7d8647f34321618c83a444c0732ca005e809430da88a935514064c163bcd9c63ca3797dcf63726546897720fb7900fc7ae3b9cd4011c62f66f24319f4cce0966e6b727f9ed1dcffcea3e471477702eea31871c333ee4b84165789efcf07fb719d2981e02e444ac7db0461852acc45af90cdad20269cfd9a34bd5b67741ba1928fac468e150f1112d94537e5dfe34c128fac2439e72e0be1adcbfa52adc80311cdd463fcb8a476da3406343b63803035726f381de6617f896a4cf9232f21f798e39e34b3a6c849b41a072c37b01d94cd5cf0b5762eb8a18722232d323256932ce5ae14cf70e7e4b93cf3832f6ef4fb2f8edd8b18249880dc8efa643f1e080572f7425517d21dc8c19fd0cfc4be523764be3e72ae4b6ac96adc92e3c2df22cdd9235797701ace6d4c58222fc36564728dce8bd16336c0400befd21b5363852010cecb3cc04ac33c106d8ee4fb1a8f7da76dea56de919f4c3dda74df3e4737344a065a15f34f678fdcb1cc05b191aff8ca4ee99de9ff53d8e7a8a3f160c3268edebb27a84727237e06164662c8d0803af3be558618ffa84bec75e4df919df7d80afdc42ff53e38973bde8358ba9406de90e9a3ec532ee4fb3ce861e56dfb4317c4a64aee6de6f0d5e6450bffac2dedd7f9de04be1f5d5e412f8c73bfc1c2de0bec432886b9a11ce902dee4da31368ad07d48c6ab9b40f555591f86d609697ba57cbf5d881bec3153b552d8ba19524085e131539d221b49080166f201ed5408dc3ce11c7ec4fcbb4566053f3ba5071a1dc10f047191ec8ca9683757f310c32cb33fee15f07e98915ff7774e24cb32c800e9d250cf2cfee6b004ef64f93877866a71f338d4e4b272b5c2953f85b05a3a06488706241134ab8e205369fa54561a8a963a566da0e55b9f4cdbccfdd0a13fee45c0fedf6ca8b5ecdf92213079be110cadf836d2a347cb73eaec836af7adf449362811e402e5f3c0dc02ebc4ebb9628444e5d1e6fdc181d6880f90d83e8fbcfe8e4c220b0242a31d6ba25bf990be84693cc7232fc4f0d52e58155f6aa535e76267776b8294d1847cad3e38d3dc82587730dcef9d504e142c300319f820ebd0c8b440c6e672a04710a08cd51b52080a4bd0c6b72fef96420723f7c1452ecb272b18f5138805ff7025e893e5019f40638b1db11744118dc2f416d906358b1986035645ef0dfd5c8fb0767073dabf37dd624ea4590b1e94b5588293da7fbcf65ec32d339ae880934c78c12224b8bbd16f8b60959b74e9b5fd3a4b540d97f2dce8318a64d4332335f633b5776da0c3618698547f9cd9b551a31d403fcc2d31fb6f96ddc98690704c1fa04cfbb4ef8158826d414b90da715b08deebd4e74bb605dd7083b65c096749421d4bba0df95812eaaae28a9ceb7cf5dbc2a427cc3324b0b9964aa9ce4441ea114e097ca8e4862331717a81ae97e27584d390d9010520a528811c9c6243805693b5643307a5a23d21806ab32ef3c4955178edc7d378c87145aec848fc617f1a3e4d74a243eeaf1ff80d30f168cd84ea7da9febd8b6c437478240ba3d9724c5ac8a43c5939446879c555798e04e53d813748aafdb1e43cc3763fb94bb01be85a825dc28a11116f4831f176df81773c1abc479336c6506059bdb7879c6702dddffc622031c9e12eaa4ff70219941415b12270e4676213938c49ac19edde4a151170ac6a5ba9ea388dbbd350519914797b6ad1002e8ce56ec9a200fc62bcb9a91d95e0afbe032d23a4855001aa78decf017d30e1146b366e290a9a65a1f7114a3b5bee3c3b57565ce66261c3ab232c56a87c065a43d70f2cadd0c65c578217e5ef0339ee919ee14fa50d06cdabda8ce366c7b466e5c5ec75b5b6ff4a35c4f1590217174a40056671e8546bdfd52fc02dbe9b9b8892cbb1af7f14a9539e194f3a911e5b8413e49fb3f28ff089b6683b86e92333a16f4c580371ac8c89466d9767fac99b9e512ce6ac6cfc8e49157e22e2a1f9ca5256c6451613fcbe399e4495d3c51ea9a8c50f3c005f7460a5493b3d27070e796197e893b0acde7881e2e481685eb7c212ecb697912efc73d763cdd2d06c3d3ceefc10043723b42b7430356d15300d9a13c273b7340d941730e1529ca8cac12b533703ef20c865c8ccea885cf2a636b604c3d565b8499c9ddf6966e33c9eba1222d5f0b8bcdaa2d07890f59f4da23b9ec6c820dec0ba0656374de9d5c4c07982ddc6712b6e6f2492a76f37557ec900e14fb25411a269a5c30fa198b9c6d96ac93d818ddab089b91c765b96dfec6c670528b6cc58feaa9f7e01b5e7f05ab79f2a92a79ca4e333e7f30bade2b73933e3c3b0d37fca0b53aad6b43b6ec58403839809c54535e79f8e29304bc562adf9343a019a90283051d8b4dfa2b692611cfb940676c49474bb92fdfa4872976e6339d694b66a712244e1da0ccd52f17b215e939c60c48576140e3054c3d7745d381e88cf228adcdb54b5c96309aec2d1a03c449aa6371bbf09652cda97e153b440cc41405ce05c07e0022fb7c83ab64852acf639ea370814c9f2602ed0049be5d5cf43bbd0e38c5b9b4ef752871c08296bdf7409a7be56a1208601c44906a1ab0b6770a3c06c6a74b479487ac4627e63df2b4952aedb9ca707f4bafbd0875561a290679ce9de1c1c8754d4a604aaa1f242b45965cb32e8acd42d8cbab454fbabdb8930af0169c51bc3a99bfdafbcb430f9dd4b675e0edfb8989d2363effd906647be7ecad9f8fbc89c252494fecde1a92a0a87d869ae642fa3ec19a90442c87849c18f3977c15b0099481a20f9429086fb40b27faddf5dc792cb2817cd0da6b5a11c6acb9662715a88caae0b664ea560231d8eb2bb1cf29bdc6b64297f540a666da4cdcd81bd9e8d7ecf168526162458b378274183819e14b2df3cf71ddf9e388720a1e3a3b0b567acf0a32695da9c2e943cc21647552d6ab7af2461f74d6a9dc86c0084fa8f73b4de005509bdbf013d9bfcb823a5707d02908b8f62c6e9b4299c71b4b58dac122542cf31a68eafa2c48637e05d2de5b2c7944e3cf5ced5e31f5e21a21cabada98f3be0dae37c1fc03c776e2e11e6a6f395d1c7294551ee345ad3eaf5bb2c47f55c87ac8f8042877cd4514b0e74a13074cf59db7fd14978f651e0a746327c4aaae8494c65aaffc3f21f740bd7b6ed5901bf7aa5447accfa5f21962b3914806b594d7744928dbc61e3ca52d70ba9b05377ce3f336316369fdad964db71babe29308088b22be63d66084e7115250fac341e346d48aba6f9cc13b72f67a0338043fce395eca1d22117e8453a8cb929e62f06c447b5f56a43a9496ba897064270f6a61b25e77f2de40b70e3fbc243f26fb72b54f8c27d5374d0eb1436f71761a456a7548c1fd26eae4e44787a660d7d127c132d4a50c24e0075b214a9fd567d6647551816748026260f7bf5dd0e8f916dab9e3fcfcea285eeff17711f8e85a79fa97b8fcf911b77969fdeb89b36f405c3d148ac7ffd3fcdd6b31bd0478dfa69e1550b96840e5c5cd50ed72fd7a0e360d5ffa5e21bab01a10ed641b9ccb5d6766c00377f1fe639838b6984d569333c6bb34986f32b5c466241f4ae64eb80627dc1a1cd89be1c11b6fe24b0e98193262959f97381a3a09fe70d722501655397a20865eeaf37735ad09e5d26ecc7e82a85c349ab430fdbb74915872febd61765bb62e0069a902f9139582cc172829c8c159fd5f522683563075558f77b6fe44592f78fed9502947d4e98540f01809c75d52acd1253d8f97ff0330c1602914d4041e68aef80fc87c6f91c74690687cbc3baf4c5f143d5b6b86080c4cac234285c45710141e705d2b3c064d1f6d7501a302c0bad352d285130443801c70d8749b9fb7bd341b3edf057ae7383102d0bf9541a9e122f2f9da14109958bc2e6a1ea05551f09561bd100b214a17c8d54720b7d05187ad0e9283faba3b259470a0a4b2c1e08d7e40678fd054e03605c8bfccf257dd3367cd0b8bcff12fa8fb6140548c54fb384d71c0150773f88af74ef26d42d384b32733a3f58bf8e59e512471d55fcfd228c38d4fe8c4813e4c27aabb56ecbff62d89f2f4d3c61c6a82d087db7984c7c4cdae3a60c3034f69efb514a41c682311c399b49d6229f79135cd6a17a93efd3dc4d4ccdc90c019778b49d93250b8775f5868a4d77555b228e576be39bb0dfddfb0798b0bd3cf46e0116a36c4a99fbd0f0331a430bdf9ee0ac6eef4f5b6573a4edb69634b54b8b5d875cd887206d6379f962ca5d91ddea1b453951b9b968a4539b1a054d25402147bac9bb22e8d71efcf49bd3d80855d6dd05f7ee7352a8e69bb132bb19db7b338c081d5e4e3c03d0b7a1096f6d9620237b910a881c3c3696d9deb7e956f13d7b68e9036a4960590daa1d0d665490f21e64e9d0d01ae9f6348e9805c481c59d2df5b6545b411f8a79a3842d2ccaaa66035670e8f8b9bae1c8043f0041c1c6c74b77eda0e8af535fab2dbb2bd9bb2eabf1014a897b7861eeab93499d67c1bc940733049fe81b9aea3d7e285525e321e70067331755a0cef321924ee8b1d3c06a261ca76eb02bf773c3efff2fb59d4e5009952ba311a9c9b4fc3dddea11ed16cd3bc010bfa9a1f6179b73843cd208cef7f1815ff951e7376e208dcde30f22907e14173358feee29fc2a9f614f0a4354f474fce210037778b98b36a091031291b7207ba58806450cd65041a4b3f2d944d40d14b3d6a854e34ea1b83c30c94fea539e2613d29004a839f11026c10c9336fa709387913c152ceb0addcc43db3d86f2c6a914ed4f259a58fe888eff668a238bcedbdd6ba8c97497998b277e378d929666e88e72fcbed64b95fd9e4dbb28e008dac43fa2d2c5c0699efb5cd187cf0e62ccc807d81bbb6fbb66c893c23b6700bb92acd21941d06464c9305b81e4b4c00a89759afc319133cdb9c9acdebbf349b63b409f96ce42a384dc0d6c351afae40de1de3fc549469499244d33a26d5298c5c73da8e333953cb10fb7260e8595e5fec9427ce80855c39c11736b2da54124b7ba97065ae40321a5739c99e8c78d3df246ca50a5dc14f37fc7ae04bab80f6e6e4f3904de4fb5375bf28549366959c8964bacdba091cfdf7d3f99c8b93c966e34af930070f4803da43bf6a4f595ec6f93c91559dda2095abb13c699131122ba34452e911cb551003d8307597b4930ee38f8d9a3435ff537f899a7028f90d2d4b0888d9c92746f5f629ed89acf45de3b4e2adb5dcb1e1526cc9f4cb314544ca67da2577195f1e5da9834bbd1db1bb18a0097bd39d33ab8e294e2def7e69974a051d715d681a352461539307ef0ec20685e9c9bab81084706f7a87e64c4d8c1d62f47c1b2971f077e9901768e9a464a4e7dc284da100363cb7bdb8f8723d8e9f9edf4cde18432fa0405c9195da6ac6878e86e1912c6fe690852732f6493a001588a6fe6ee3e07a3e30ea70a2346b653c825f62f36a1471f99ce4a20990c35e1a1f6191f441f9b01251b120ec28cc099f6df77fbaeac8c55ba05688f653f4adde9329bd08070da46a108f233da7169bf29295c0e2f61d24d83b7d6fead1df379528c01238eb759860e2e551860c774d79032cd0ea429887ffbeb5cf93036f4a8d844033fba0ec6dedd8e77e5b4a756cbb2ce05f0d8c95e193bd0ec5fdb202145a99618075b319224678dcfdf4f513ff23d3f1fedcc0efcbeb2d27b0b9f2cccce9be9c554e5b71b7c10d87df7c80c9e8b22e425c807b5c42494619aef3aec0d23b02a8a2a3d348e6463e0462dbddea92d80b58e0249e30e665a3a4cbd80866bc9e8c27e43e22361526c3c3d37979b35976bf94ad3d76162f191046b4d839d4c61c911981a398bd46b6860cae2396a66c14e1f65069b85ac1cfd1e18d4c78ac488782da6d30e470469c02d8dab06339326b7ab629b4364192fa4c13c30b88a9504ecfb3ba3322baf03a64e920344bdf14cda17f298b3739615c04d72e93134d956695e2008cbe9bedfc753f89a55095552c8c78f85d7f5ee70ca0bc5a76a343b185f4a7256ade27944166df25271228f4411cce149b200c9162512f0adb70c428927ea382479c90e56155300853e72799ed4871df5b4e9fe375c70993bc53b50895a868f79241b228a42769b32528b18299b69084d5337a0a4d255f2ab8ebc70dd0b68e6894385e253764e5368d99acb9ec1fb95204e6516356daace8b400b2395f1598482fc3d81ab3b286c21c2538f83d3d6398ea1c1017abf983ca94de6679098108f616c5b9089c232f9e5f16a40070f55fa087e0506989bd376e56a92f7c90767256f24da1220fa49f53e506732e3797b6c9fff22803d1268793ea7e4fea2e26510f77806455441be14014892f9a652c29b3de56688157d4742915f6a76a5683e9115172b698e6de5e4bde2013cdbcd2b3d0ee9a021189d7b4573833c1ab9240bb2d03b6a977faab664dee9bad62c458f5ddea154342c4a00b828d4304518481081f88b018ba4b828bf41db51b02e739714edb191300689ad78eae5a885ab7711678dfe571f43b7e422966e25a33250cc548f4adce3cf71f99b16344ba9b5a8c3d0503d0de732b6f928f31232ee6d9b9bf9d9067b7de5fa5f66671f2f2f734965c273c6856c86c6f0721de13f004231a587be869c9548ae09685471ef8ae39a239921a77747c689ff30c87400a1f87b154539518c42674944491b14ee7ae41d5b008c3a2c84e2472795e0ab4d2780bf8e057367848d896b881001c70a4c4279fc7377430d460e4a935cdd0a2aa3e4733d2c270590e275dfdd40f63dfcfd6456eb4b7575c5081edbf1d4d49ce9bf6fc5f22de998c90389b10c45153a19b97f7f88043ad8e94494bf9f5359e8201b0276a3562b1a4780bd3460a7b13d8fa5d86aae23b631a7b61e38a51be49ac3057c29c7d1aae38bbb1ca0ccc49f66b423af4d59cd065039d54d9c7bb4bbbd12ec5593ad6813e1429cf1db8d5d7445d23068d9e07c5c59d10bf71b20bcfb4a960cc97932a2cc47f9361537fd8b2c025be454035ea81ef27fb6bc450e142de073f1fe07d7252fa1af65932b75e24f25cc9b7ee43230a1688f8b81be313a514194d0f40b9bca5f003249718f5bbf0100f3ab561fd3c4069ed13edc8aa33bca02d1da1083921d255d7f3be3d059df38952777718e6b08dd8ad3e1fa6b79cdc05c578c8a1e95b8f2a4423139fba1e141ae808b34030bd062223da1b117a53a1c36cb188bdafc40c01f87f9042db96dfb56e3c73efcd930f7d0e6f03e00d61b553df9058bd6d82b87fa6e57385c11692f7bc5ad2ee77be8891d011ed4d60b10f8968b7ea871a5f62f60e5818c2410349708896860569b9411e4fcf7770411459725fee38d08b212898347e426525cff845357e818574abe8c4e5e7e0d3cf3b2662c4278a3c230726c27a1473923951dd5c8d8a0e17b584ff0b9c38b5a32d6a639eda93d5035d5fa37bb4f414469b5b1e363357a5922168e0a061d1023914d4c9b87e4050c0395f9db6c4183d2d8679af9f09526394e129341ea50bade5f84d45087f2a13a58e317d1aeb1844dc2af97db53e056d4ea4ffb2369393db31df23e575ad0505c8305da8f0d07514aed658a80251f92dc50255581e067e92bf2936860209d7c53cbfeee64aae71f5f813923db5a45303f2cddead93141bc47da96a5a2e96d6e09bb0b7d5c1f2051653cc5438eec62abad04cc0ad5810aff9268ffebf2f3a951622d56a4c54c19ad4ad480aa4dc535a914cddeb031873482f07778280784b990c51b55a29232cbc472b42c1eb895a68f5dfb2543549d3f30f728015c7faacfa2e17b479e51affb9f153ca36f1f64c467d86da84f204d5d35ce1587d2e9e7dae77e20b63bd9a551b15fccee316479a922f327724b21564ef31d3e78bdce880eb68a6165e42922103a7e18b2f2acab3a81559f84c175928127a3c6af542e99b97c0f70f9351d618c711a4d1a178630afbaaa30649a1b6d915287896d0bbb54078a01f1c8cc70750818c44ac8bba8c55ed9a310eef70fd49f05be841f22bee7e086a0e57eeeda58e6739ace784f908fef8d1eff7a3ebbc5d4785409234d62bfe884d6672e7d939423597a46a35f18a01d3d7cd59c58625f628c9664f1e4fcc226faf978433fae1a8edb30c804f7649ba57ba16886d33931c1e161c3012a02be29fb3efd60785498a176b053c7f814125d94112339ef8863819d6a0a6fb22f8b4dfd6bc286fb38b7e58dc0ae7ab75b0d86acc7ef20a0de8ddbcc20d6cd67d804e375df69a25891daf2da290ad5e7a4babb6a3044fff9c35f0a3056a2cafcf02461e3dd88866476243ee43e008bfd91faa34fc66358abb9b87838be4283d77b454dac2a9985d59e000d289fb160546cf02bcbfe5f990b043acd3ca4016fe22e17358d405a0ce0a0df839db3b880303f7d41b7427c85d1bd73f14dbc9011a8f5b1d12c38f916deab1d737916c19aad3e10185ceaf6b29841e247c887930d0b02eaa9819130520fe7d188c9073a817f813246efdb364828888c4c6c515d4219e083e0d32062add562d41a55fc4f5d054ef3ea88f0776eab24fe02009a02cf515fb65f84a618335876634a421e3e4752a7df8fed5b729c13c550db770da42020c17b1a3354c56d502a1a6953ff6bc6aee9c6da405fd09ddd5e9266f059f54e9f9c75d666d412d9e49ee796166c4738807f3f168aa456b07011c6d71a88b8013b5d0dd54d8bd25ce2d92356fab647eec314a4827a7ca11af950c00d3a654d1cd17c1a07e2d60753ac795d9e52b413bc888fd8061fdfc2f9fc497c24b4f40d876b9129fa8da9aa8565e83b95747a2e740d5342c450e8425ce18bb5e970be3ac3fc99aa2d2a235ef910f374c61586117e36af42866eef96c8a65255a611a9392a688a7de354c98dc5ade5a427da7ab0cb197304e9171d193b91a7b2a54ef382875f429a776b173ddc44f0e19fa9e4d185c8c0f37ea77f65b9eda3696756f37b25bd606ef438d8e007bb63c9ef609302f22713b52f3faf8d11a868d8003cfe8539ce3e5724d0606743d9c0cd56d68c26b115b4b67b241529c9416db3e8e304584a4cd4c4e6f8e5995c0bddbeae57c5ebd8df9eb6f51887f402be89733cb3cdc823440f6fcaae4650f57c1d43e84bcd8a53ff6e2a85c1bd445cfce9f99c936ff7b1ba0f2a6eda9863b7aa8d01f87fc347601a5d9f5f86779e1ed06bcdda1fd72114fb7e1fc4fa3afb64ec88e81b5375d589bd2771691c66821122e4eb81e0eeb7b3c09b0b42942a657da9cb2d426b331b41f8eeb433f757eb8141bace88407680916d11b382c2d3bb679990bdeddb631060edcc5d1123b8adac5d838569d70a8285142ba690969d2295cef34272e6b55f102b1873eb2bc42cfb0c5c9bb0909831a0352ab03511f4498c42ded3b237107bfb7d8133a2facba00d35fbf4d6a962e3db7c99f34ce647d69a1ab10e042b77a88d517bfc0ee638d0f0c5feaa819f18765f3ebfd283e51f1b69fb1dd380c8fca57582595bd61bd9ae399e402dfd63982d742ce55c17edb989ad714dfec0e11cffe75bfe60f73bd689a76247c7bcf2039a52edc7b52423fcd3708b9501647a2b134f04a4af6bbc798e523ceead5ad3ae8f2589ca74f63ae1d8f835bc7274f47f86810e535473329f2dc4fd6246a1cb5a3433689585eee5187a876df24e57bd31925558a335ffe1e901551eb453b44fce1807e1e7d75707f38944c054c3cc10b1f1521fac965a063b3aa06a230858259c79db16ed20a985c936157026716752f207be3b3f2a7ed1b1b0dabac980057f6461f435828f46060049d0a2942d41cd4600af786f59c54b737495b5ec0e02b8f29725fec8be0dc75d598a7fc9d9435caa3091dc1eef3aa7cc0401291b3657a08f9900bb9a3d430e8ad9bdd1520848858d621ca36013d8bb8400ea866aa92a46a8c21e580913b9902f92cb7228211a67c46f07c52aadfbc21237d6e0f2bc544b1cae77a4f26ba686a47420ebbf23a9412234612eb48a294c5fca45ab0f1b0fd26b33c2c1fa98b542749db06dbb4fe12370611631c158198e0b9a0d32c85d5879e396beb32a65651911c096017d1110235cc1be2e8b9ed04727fde699a426ba10ebf12842d542b41169ee7ba2e54b8b2d3919c66f773f46a0d59d261b7ef45c65aefd9c160db82c92adf59abde92425f5a3f3bcd4a7ac09785072354da8f1ef10a158c4dbd9b1bc3eb47adcef02b1589da1640521f6dfe6099e35a45fc16f74d543a14483bcfcec7ddaabfc7b83f9e204c264652032c932d406e065cf85ab096e34396d9a05d7d2cde0b87d8c47e65b23df3fb93eb76682932210b8e71d71a624cc829c8822d61caef017d2db80be100bb622acb8a5c354cd8cd1658c6255da4b16864b839b4f01a17655743abb718ef42aa410374599348838479d5cc90d7f7aa7ec68b0482f41c3d21c4ea3e51f7d4ca50304507c8cdb9d7ef7b5c08ea485674b9dd8746cfdab605fdc8be69c4125cefa35297ba872a9cd5863eb609344fc09160980a765f50272f506cf48639d229a372dca5ac293d6d2e6169247c1edf0703ae1dee356919fc4f57369fb99ba04a33e4aaefbc57c13f2626d966d18909769dd2f6421a0b3ce3e10b5cc3a6bf8a156e3fef85e781f397d3762a30ab9693e95a3275c933955ff81364933db9cc3a8b72175fabdf1bf1a62e8f4606001f85720a4f8f190255a0524ae12ccbedaefc3e72d8efecdab42ca99e93579ac77ce79eb159c1c4bc251da0658f99418f59ef9299b207cbb1cef5a60dc281e222c370ca1e1cd32a2952420635ff4f38ef75824cb02f1892df8ac66c9d653321c7527371e28747192c06425ce450b2729f8e560bbbf44d3f7b14c888e49ce4fa4e8e7e967982e7e2fc50df845cde66767d33b18560c830e042f5db7d19128f16b8609da1cb15aa58c29be8ce0f38609b68f6354ca22bc3cf58fd1599a422bf2be6b5a459e04cba8df44924bfa892a718cab9b4bd5b30476bdcaf5ae6a0a40ff57c1307d396d0ac47f1418fb44ae180aa40b3d4662751d3e44e8e4543e194f90a684b1a8bd9aa30f074869ed5e01eb449cea473b97c06bc439e1a293bb9bf21efd556799084a25e4d611ae33a4f3c9f575262c4ba9775312758616ef5412f85e0c90f12a951ac59ad0a5f1d2fe9dc7cc1c7cc22d16703c13c61e6ed59edf48f896a9ceb5adb9c3ed0a48d1729c08595d1c29f88899aea60ea71869f5d47171902790848c4d9485c8abbf38b85583dbe0bd314ef55b68443b403399e1c2486ba8dd323f34fe33ff843e5ff545b9d17071a266cfcea304624c1e2a9423f5c9ca024c0ddb008aa3f78999bbe5a970bfff43dce054ce2e06ce7b1e66614a6a26bfb0d7982f7a4a1cd1360ab9f56fcbe524d59f20763220e409ed5a3157ad0cf5cf4206edf7564cb2f6ee6b093eb6fd033c07e86af18f82774c10c534fa502961da2e6f69d21b44d90d255928af0b508bbc379e3b11574c40dc4571414ab6005d9a1398ad11d3467bf8acc7825019f03a297511b096b7a271d9bc0fe356ca5cd550a94cb419809bed57b31f3948acb814b1db7a1495a1979d5689bfe9d3a1e2ec6c2ddd09953e92829fd88475d5899f96a4428b3bf6551b950473f77cd946b718e15729e5b5677db3b5ecfeaf7846947c3715dffa035ec4eca5b77f27ff6235a1ded29f46ceddceccbe3ab7c0900eed8d27374fe2f18e16e2d2a90dd5aecd6776f17705c1876351711d7f3bbb89a4a953e650c772f5facc690f08f173b0fa10fcdbe6f4753e5bdb0cfed4ff8b9baece90ff4392e7b02a90f9856199fb9d41f2f650b6681d98809b551251738aa10274366b9d8333a9d6428b6f6320853e5d871a978129ab8c1c980937c7b1608e9675ff7bf5425aa16f788a2730185aebf34709ccd0d7097e8df086dcfeb0db49c4149495716e02a7ec462cb84628ed605cfc79ee1e0dcacfad99807a4ac59b1e8c694f82dc7a2a108db1f4d01fd2be5cbb89d6e42dec2a40e10f1fd02879a888bd034d7a196d520150c2d90291d526849391ddd89027b45d5b02c5b6a9b988cd1d1cb316498d90fd3c47c1809a537cea940b263920a94be1bf516c3cfcbf957e3d2275114b1cf58d352fff817d419de55254a8528e89c26c4520fac8bae5e6e329744bf598220e8d4d111d65a57d3ee94cf897445821775d7e212c53eced92181204124f29d97f8a27532ef75ba08784cd33a41553a8d2547c4bfc7eec852b48853776a162ead7fa6fd03dfed38aab9a4f9ea93b712de5686c183b3c237754fc79808802235fa5cbb74997756caa935109ca45ee4bbab736d9e81a213aee6ecfda24bf13c4607c2f1889fc21b615d454a63cbbef0fbbf1680ce20dce629e095c1229d3958bd482147b43060da3a515bd46620e178d8b9eec72ad7cac84e69160a93afde578045fda5d3cb97824633e99c7e2ea2ce5254392c8485bb4846cbb07a035d7c239152cde867cfd58daaad7da801c21f324df9cccb83ffe129cf828fdb3a2883c60d6bf9b3ab28ccb458b08f7b04d0c938ecdc7b37516c11da70721f6b39ea26115835295769f2001175fbe1678630aa86f7c0ce2c6c22b4fb43f603c7f287b27bdce54d741975a13b8897a711cc2c72f6b289ce440c66d4ea1d69c96b4dedc3f8db8ae0f406882f686b78402541c44106b9865fde3d9f239158b2a6d8c5e942872f6e618fd03d64cbead17718f673de896a987edd87491352e8ef6bfecba5b8f5ca0a921e3332f5cc443fcdbb9af3a5a9b90ad8b8dfac176fbafd3d386aa325d79025039456ee42ccfa65cdf0824a47024d6f98b8d30b490e62c0851162e63a516fb8113c498591d892df2bfcfebcfc02c1a913f42d79be0e179cfe0b41b42fec9865201e46b858e11c7b89839094ebc566dbe59c295bcfe2440e4feceb48d8265f410f4e0a21b1200fc67f159735d0ceb575eac202200d5d9fe23af1d00cbe834bbb49750a4f76e5cb380be89dc046a89431f217ebf418ad910fe846e3289fde99c01498eea35640e1a6e474c91a27dbf0fceed90aa3a456975e4481e2eaf7f4aadb109b51eb303661f3f084948e36dd5f7027459b5f20c8f73992ce4a335ad3d8b98f26bfaf3a23892c8c25f38547c02992bf70395f212185556511a80f65700bb85d8b91484dcced7cd6a82f72c2cd62425d3059af44715f1afb0ace4d267082088eb9a3296591b7e44852a80703593f5bca464c343c13340e11465fdbf1677eae37558d2607dbc4631a38c69fc5accfed9d0304635ba760fa798ab65ece7651f35034f0666f3bb4d8b36c4b6c7e53c6b32d5107b21c74d655a69438864bb9c1e6b298033a980f7b2d77262e10c6a483245d8543df42131c6bf0d8e8572ddd2999219439db7b41c9bb5eee5019e08f0585f15c025feff5cff0847bd9496ff0b742bc5ccf326880747703876c35e96760393f8d49318ca6b9617d3f535c29eae7e0851f0f28e3f5c02fa64e7fe6636fc1c58feb322998163f087f5fbe23a9f204bd4c1a50dc9e95b50e331a6444e465d55220b4ed3dae89a2527c9cc840d2fce3d4311ef8a777ccff1e0742fe699117d8425cb7e88fa913c1f2a1713c0a4e4f2b1b78302b09916f7dd9c67893a76929f4e2d13adf9b39978c2c21e75e9fc8c8bd8f78606f0dcc442f2e5e6aad61fb40fa70cdb7a88d1d8cc3edc9c82855be661c65b7c5f28ed7c18fa807695e8c573da31218b390e06c1c8c988134f2cc63aa8c3f2d8b29043027e79167caa7e51a3d2212642cc63f003047d86f0a1dfa59db399801f0187441e3d1b4d98cd315e10d6e5c36d23a6207c3fb331ed2024edef8cb1550d4407442584eb39bd4378ca5c0c3b32bf27ec422fabbe9ad9b5d9b9d7db7ba9f6075d6927f18b1887c75ee107d862d22f7f25f7da275707a6d73a7370763ed7617a96213fc4e5321379a1ed779d042b03003f573c4a35488209c1cc4539835272b3a98ac8f9b10165747857c0993e5ba452bd10805009bf6998bb581d9c1dcb1d17249d2f0a201e561cb0e6c1f4d0460cf35288de25b2d1533f44100958409c5f480b57b0c71ac0e6ce2ba35b85c185e4d7aba52bfa3385f411c0059f227a72c6f22e761063d92d5cf3dd093c8f36e2559bebe3ac8414d044c2408dedc4240985f6f7f8b4a5310df8f04189b2d2f5048eca69c8eb6fd480a8511fc80ee1262cd42194b26f0e9a64730437332dff1c0fcd876f81b9c5a9f2915f7295f9f25c4255d2f6a87398a6e8cccbbb08ca0076fdd085fbfbdddf023f338d243f3c2c84ef0bad519dea33caec47854b1fda8fe6754d9ec16454d50a2726a104ff840d3ec2235d06a17dc11213db8e1ea9cec1d04d70fbcfe29b24394048d6966f193c6bb1885326c705860daa0cfda79849ff09483daccf197376112f11af70453a02d686e36f8cb236f0e8f0ebc9abe3e57b4a1b6f254a46b65182e6f5108ec2f17b5f320557863e1742f50f5a3fecf1181d4ea8b7e1a99cea99aa1a9a93c337d807e1bac80467df1365f320a348dd845e9e980f8f5e77e8d37064ec3e0107a991f570ffe14c5fea00635063fc479af6147f06ab340503fdafeffa84114d61ceff19443c5f0fd2a33bef36763988262bf1853d9fa41306c1b7e3a2dee7d70edb210ad65aa60dab5690690cc94becd8ea457d2410c3e3094c176fb2f80301d78c3225ce45e60c18ca6ea181be67c9e0d89b66fbe7252e4336c62e5b01019a6b2243bedfae1f632c506963ed0c3fb9834735e3e99c3bb314181fdd41001c046458affa375136e156045ec674f8cfdde1a201dcaf34742488bfb21c33f5dff7b53ce94c87a269bb6f38b3f2517ce81b03efd21256e9b1b6d3d63d899057d44ed0d60e01ab4f976f1f6f7fda0037ff6b5b5628e641bbb479a007d2b10f83eb41abf0ed98e7de16d6e70b8577d4920575f0a0d678fb6b328ef31c0b0c989cdb66f0dba398a4b060e56e86aaea936352169bd6f130bd1c15d7e71c1f31436e18c942354bc875ddf3a07d5ff714a1c762d520e90e5c717afddd79316b0ec30254509dac9ef101fe6f0f029fd69d342793b749e3b028c20142a68994ec31f2e91b5604e828b134b75f0208aac5442927f769960da336bc959b74990832840f0dec048a9b5f45d2d874468cdbe30bb9baca3932d3439ea6723b93f45e656e0805128078982d4b334d3ff6bc529daad1bb7d874920767dba67d3161257f3035293a37070932d116e58d3d5c69e58a8b095b1447915c84e102adb056a8f1d563c3be8f008883ebc292e505c6fb2c1d609be337b373234eddac055b1c64ffd9ebf17c4980e6355f7ae631ab188a635bf51a33359a1a3da41d6238ecd8b40b1771778cce463f5160437251fcfc13da7038ca5c37808121843d385f274c3c24a981ab6cae570d4bade000c04387fb8baba9ad9098fefb393f3fc71b122c0b74bd7e038b7d0dad90dfb48bec6c33b9fdd7887a980402b2ee26e65a3bfe77676095ecb53ddd03b4278b5a6678fdf098a6dfc37f5082cf6d151538f826bcc8b0485d19fabfbfb091d7470c8f2346e1cf1132625323a561dd07dc87fc7b0baafa94ae9a6f0a57981d851c6bbdd3080a02a9dceaece92e9def925cceb7692cee0525cc777387badddd17d14a72fa21ad02d1cc7b8352e342c2754b03175d3bc8c21fb90819e2aaeaff9a101e7f0115048a04ee98ed72311a08b42dd74bd99552c4e90ac5c08a7119f78a8eedd7e8d4f6e2ebd4606edabc3c596443f1ebb6f449c85049ae6df6c76795d884b07eb3c0d5ee78ba778f35cc3ac468fc0085d4b2da5c2e34ac98e19574c79d370db7873ce5b36b69d33d0f6c8668b7aa3d4b28a094ff983a9e7caeba8b636eb2cfd1a68421e0606d3700e9a8d88d1e35148cc65da20161ec541ec5580ca7fce7b9542eb36101b4fd0bec71738ab8024720b695c193745810dc00428ce3c0023b387bffce724253583967882557394174e481228444a03027be0ee2396946cd7301afd7653d76cbb894c1d76c2a238e2de78b7dfc07d0905f3559a5573e8fc6717b32705642c1aee7a4f59e4b132acccb22c9c169e3fe976432deb1932f4d87cca1bc1c0e24625963f68606cad4bf3bf594edf53cfaf3e0ae9beecc3718e9b9523613ba156d3716ebab2154344bbe0b3cd1ec07239577b1528e2f72fb97308711466e80a1e930f2d4af41300fc394abcbe502a7ef3ad922a2c00b3cae632afcc373ebaf2737f0fa316ffe0bbcf0a26d467974adc3f89b33febdd403aec28a24c6a149c5e36f95a7639bfa1019baaf50639df3498189a5e509b17e3bf5acb1614a1e6b28bd47f77525f4eeb757cf7c8cf4b576caf39ed9c293115345f7318a3f336647052590072232af2a7ad80fbbcc620e0d25e881c0e4f8f859b133c52438ce7c4bd9f530da7d1bccfdb5b12eb33a3e104e3a17e4e3da184c6916fcb22b14b93cbb3475f0c4bb50147af05f67e42310009e485e6b0e732dbd664fec35cda40af482c9656b176615808c7bfed2266f631aa5fd35b118456e713df6f7717108f890158395f3f5d9f979e2b1e49ae8f3dc38352e62d22993d06f29d1de40dcee5014965e4b29c974eb581ce36b4968049878d90d4c8706400f29789ec78cbdd721c14a9bf3e2be2586a02561a80a4d4ef5aece1948dca89e50b06d52bef6f92ceca1815b71bcaa11f1975cfa347da159b384baffefc26e52d4a7e98a9e3bcce082e743356016ae3eee3aa0109f21647c0615cee26071992e9931d3ac327656c4d8210e0f1bc5778db726140a73508f85863a629eaadf4c777fb560e26f7af2f1dbbe1449b5cfb112aaceaf4eafc2c59ca7084e9299ec416192df3434806c1792ce91dc5ce9bedac796b07bfd24c6e7e1ecdb78002985729605cf2e2c5433e54d41b7c726735180eb8710f1cdc855d2aef25f50a93eb722bb37c4911c99fa804dabee7ea50d2d59f20e793b33153cc44e362ffae8339cbdf057a0cad941c8e55044d02e06286842bbd06938f1eebdb4812fb4885f91609f9fe79dcf40fd2ea72dd63bba266835ec3b7319de6ce416d405ce2f22dd5e7ebf59ee7fa04b95e834b6171ee275c566c1be5a6587bb107590f7dc56d7b8b50703546ab8a3660dfed27c8edc7d587c3eb6bc7fde16b4b6afbfd096307d798be931f543ba1dcf2187be4ab82a07faacef5bd330ef0baf06ee9f0181c58602ad81148459d9f219a01c47827442af2bd14dfcbc5566414dc15c1a1c7e50673d597d3a9ba840f5d22db16b1442bf27bbc73b52bcfe45db0cca2b411f4d94e57c3db7ab9449fee3907d7bccf91ff9e3f390771f27ec20152dc349d1ff84920cd0031b4f0325a970f703081a12e34c2dd1b50bc8e9a0d02c157043890bab2347c5d037e176a7c0d76316dfaff81c11e527e6e0e8ae81a2df58c16c0b39810aecb0f3a8171564ac28edd3efffbb8f348ccb6381fc8af0e5877e148ee23d77cb04caf2f03a71bd3abfa427c8b6da6b218762cf7763ecc11c14868b91f581467730dbf25af75c27343c4865955f8664995a035fb6ea6e718571ef9679ab8ad6d6af9b2e05f5a0ebc20ccccd2c81fe70abc597aae9de6e06f733f92fd5d94eb18fa1176449618e73c29d8b5879e9ca4e95dc8b2bfbc306e2e1f8f47d02c68e15ea27d40541f17a12781cae073f6904ef83321598187e8c5cbd8f0513ed7cb6b3dd2809b2e2cbd85652ba802c7df58e526dab026f25a60299f119a737ca53dbada1d82df09c3870f632c173d7860b5fa328c608166130bf62abe17e9feeb4dca5ae4d0a93b1cad5bc2456c02d91dfe067d688d98b60511100a3df28cd3704e57d0769cffc76decc828b29c553334e0efadd563bf2d001c72858d0ad812c03010fde8448277b29cad45482ddff1f918eaeb12aab1c686ebbbf2f08bd8f7ed1715f9e77062afb7d69b1249ae0aedabbd52cb9cf026f6892218bb6f7f5912aa1c09d82554c3c01996ae541b8eb0e9b8f0144b73831b85701bc8fe7baa2abc3891ff5755221324956146d6d779644407900441913a8cda350fe1658f49b9d2ca0dce5e5cc08f5aedbc4e3f300dd50a1b847c3f5d29142193457e000b00a05b6e46ff75c2d8ea25f209109e220fca4669e5963fbaef320f076a811e8ba4c17504174a35d98eea3e4a0ae42ec64054f8084e9b68152acee5848a734db2053850b6dbb459446a93016ef84be2eb80c3eb544241baf0ba48a2340f5728a72911b1a169da9b28a9b542d30a36037c17f792a6d771b4413140e41548953bb75135a9545daa9820c3e1bb0f9bcfc784d1398911003b740b6ce413a2c417aa11ee62c6130282c82547149b27dc943e76d7cfbecca956f5a0e6b594d76e9302987d4e2190f7319b36c592af736a23cb1583f5643d7c8bd96cd718f25b242d8fd2e49a1d987cfe4755c4796d79dd2ec4ce9247878438bd1331600728f88a829cf5fb8c0138a5d13c036154a5fb9700b863ca0ae668b967fb4f0e63624ee8f9b43e097b4106d82283064b203987007272a52507227a06731732fcc12fa1833adbb76715dd61cc9b303133497c16b893f83907de572963a5aa2204447af873911a6398427980a3ddd11949848339df1f9984a7608899130008eabb78a0c4f281cb923226170feb0353ada249d8328fcc347fcdb384ae4bcea895862f74830abd8776bc4990fe323f6547142ab6c046d26f6eaba5e3bf23c1b4bf2ca4bc1732720fb138eb2bddaab0514fcef1b0d7c3bd0cbbf7b410391f1958d83ee63ea4a2bc0b8b623ca6ee05441b5eaf2fac1e585d81cd8f6c984ba7d0a8ab9efc05c83e31cb3901047b50e89e2fe80dbf068344d8bb328467ec80cb4e7c4517277e64024d00b9d02b3b2e0c72e2f1a4b181b126223d96ba333d5715fcd1d1dc8cd5532e18b57be31d9e7c2e7a45dcd02d9917c27b0ce9832bead96ae1d42f522b1a6c7fb4c7c948186d8f693fe789f1aa12803fa8a4ba920e975456c13fd60ebb234da57530cc37d626cf891689bc0a5e48694f70c8db7fe15936cfaf6d5c280dc61f08196dc33c2f7f61594dac6b1b47d08847fef2842ce46e8b52bed0178e315250f528b88e2a6c100bb88373732f459146074b7ac16e2ae6f0fd8a6bc5222ff0bc2f5716a1d54c5590576037e6065bca9ef2b4ee3fdd944f59b5a1fad087ceefea86727fae377a35f941137606c774171db9d99d78ca3a32d83410780618632a1991dbc34f60c4cc6cd4e271174428c3d1ed60ebae73e2d8a02c2a934c04a2fe681cd71706083f112b268882cf67846c96a8c09c2a45f2aa49bed9ce36c17f357fc8a66c836df8a65c3c8121fc75624c2cd199a6ee6d456236bc62afffef1ea0530f6fd1d4c08e2405c97e2eced7f6bd1baf2fa249320697a12345bb091489103898b2b79d67710a5f951b02ed1df12aa7eeb34b6684f05a161dd6b013a09bef7b2ed2816d5053644f1653b114316f1f94d3e0b7ad9f27dbaf3d6b1df452a6f36a2ec9721e6b6e2f2cda7bce40db18b6737997344fdf94f05959b5cfa06d61e1a2fc396531188a5f8a2e9339aa0fb0809eecf41c241ab9971d5fa5902e130d8cfa5644caf371c21e5b0816fa34828953e03ebf6dbcdb64e0f25e152d13aaeb5453de7c92646b5bd39e51967dec7f6a3c4a6eabc07ffbeb76bb0be7a25cf3a8d0b4a987c1ddab78dd7d99580517bff7245082f78a51feaea24dc0aca525027cef1039460bb7030361129b81e7d0a0326e2c42a5f68b19cb555dc63d08c36adee112e11ccb8ebbb06ed4db8ea3f15c2f2c97ca8bbb3d6b01d4f8b75ff88b78e77d69e4269a4ef9475c8b5c0399caac7173a6358487c32cbd9c0b3183f9c882c0598dd8ce77570c0c8957f4e680369bd7ca3920e80ad56525a6858e1dc743527cb446042adc8217351099cdf0eb07ef3b0fdefb6576b952367264af5be4c393ffd546ebe0708e6fe2f41ed23c74b8e60709af0110d007d63544d5f675191d599b7e8987d41d2fe10860bb11acb70503a90e6934100d74e451269403ac784949f299ab3321255f8cfc38fd4047e1c7e257dda6925d67da7093b570da93c55cdda6c9c07e062bde8468559944143ad9eb6b00a36a8cf0108d9035de79cd418c2fe1b9a229ed7e810c1423bb541eff737c00114d8b1219a6b3712e87a702fed3945c09d77dcce86ee07a2dfad7150e9da7d358c11c7d676dcca232f5c15560a07676636326cb63f99b0d52f95fc1a7a8db0c5a1551cedfbfc568b2dfa24e017665aa5ad7c068fdcc4e0f3579d72e1ae5e9607015f121dd6cd33bd87dc9f80c248c9a8f14ed37c6f25f123ae9e0ee6b656f6ae8509c3933cd0cca88301b3ab6d27bc6d7cef2631e67384305d792c0fb5888152e9ad857115662de2303a0435129e94dc65ca6f6cf311b7e68075b569756ae577e1d103ae08cf26740c2e9298e440501d0eddc506ce505fdcdceba324104323de402a36e1c3ae44ed48d7321dfc916729edc7f30ba397b8972111c5575f96d7cfa1ec0171ad7ab1303dd2f2e968b8082f48118ade09142a4153cd23d6b926145475f6ef33d536003b29b02547b37c2bc1da5dccf61b9af35e71b326aa0535fa423cfc5f3253660cafac2abcc947f538ddf540276d78a98809638af626abd706b916e66ace6699f90e487846a3e356f812dbef5165bbdb6ea6728766ead20b16a5a856de92f421212ff91a5327c47518cab7e0901462f97b47373eab1ae4fc9a538b44cff162bd685beebbeffaa62454fb09d39134e8833afff38af8f2e6eada7762b6f29d1d96102107393639e21ad316d761a5c1021fbdf9ed6ec6f7ec950077a25efa89cd425db3f668d5dbc7501369e2d9fac6c3b70c3d367d994f15a93809213277fc6cab111cf55cbf37e9c776fabfeeeb6f8de0505acf4535fb38c156e4bf32980dde1039528643b0e7e23f506639d6b08ac55c8decdd051c8d4abace0db593cea077ca7dc5666d77e547db5a5d1d6bd5868d392118ef2a16784c4791d0087fb62183bd45e2228dbd887cf8f77dcca324c4062658b8aeb2b8eb3ea36419703474bd62b83a088801aa026fcd0232558a39d86e806d88170cbed22d13b289448f8da8315942ea13695cbb1f8ee94cecf1007c02c9bae9e6b21a666994ba0e1d2b9078d023f9103372e0415812c7520782bf990878af17db0bc93157560865e2ab6b7e99b93190b202dcbb3bc57194d86d032e133c920a3ce374ddf653cee2f7b25b7271188558e13bcf78feee47dc40f012bf859589931bc346a75056c536c345bc0ebb0a1d94bf5e0b9f95a9dcc9570eaf11f3b296e8d7c141be9dcd94d6e753c23b5a2ad9c1f0e6e32f633c14825db32b2452d71a14a83f328e1ace436dc2bed2acce65d7c49788dbfc3e058a06fff6ef88bfe62d9553c87e1646a4af2bd95b16ca102432169f5c8f1f604cdc8f521cf5597e7ff659bb82f82a1ed4fe4d6b5678d451922c874babaec4624eb846d101e27146685e51d19907381bc6898983a326db2bd3781316720cb35840d960f40463d7eda47bb3412686dcec0cb168d47c6a35c597a5959c8b09994ae6de0f5fae3b6425cacf35fd5b74241ede78b3118614353452eb2cc6ec19f09f2b3614982d8424cc8b8ef38709a68b6f23a8bc1e58bc663abe44719b51542b20e0ea8578a38110edf8931353563707674669a36531fece214d492d99c937d76d92113f2afe7cc551c6ef77fed780aabdbb3f88951670946cd692ffdfdcbabff5880815cffe186a0adb869582570ec9b55463acd1a8ca9dc3a8b6f13a4c772a1da45a12357e61e5c5879e0314c5bfc4092f0b6d64f454dfa81ab91c269860a0608f56ad946405c66cf4606cae3f7103abca669e5ccab57e29c8955c76fc6a0d79123885807c69249aa7305071f436fe063054ef826235c947e37ce2ce7411dcdda16956f9987d744aa98153815912ac364c7c2524f8307b82557afe6bc36fba763f4a8acc47cd95de20d6657c10ba125abaf644a1d90ba933a5ee6529823558947cc4818fc0dfdcd17064816d2764b90a1b64395963ddea862a8997538e7262752d114f43be33eafb0973c709d4bcfac313d37013b0db4ea6095ce693300e807c40d0b7ee35bbd64b4f020f080f0bd81ac379b6cf466e23b888f4a74142ee21e9b6e2823d5a3f60eccaad9550801ba3d56edd842b75c8f94ba20e754f67e24ea45c0ae77125516f4f5047291f250a69f0ed5500aafba4c9f74bf3482cc32df34247bbfca50357de170a5263a134522823ebb65f3ab1dea805a8c523ad2c6b0f3e8208812419d878baa24fb31086842704573ede965ede13309850b3f8da80986a7b6b8fdbbc9173c651b3a3ec45b4e8d582d93f0ba8ec09c14976a21401ca633f622c433168de3f03988984b7f79f5c2aedd563126cb9ab0ab0adc083937f378192b8904d16e2899bf44b721032781ba83452ac3c342747c2a27581cc1e22eecf558eef71809ea263b9cb46d31beaf64c6808a498d295058717063da10e2bcc6820c3579f36c6363643b556ecfbdc2896cd4600f83eea4c6d99af59a9ad8b45ceb8e4d27afac626ad5ea983e1d58de701a912467b0b959c8247370e1196d03adb9ad4fd07303170c6ceca761f9ac0088754e7693dd63d48e7f65ceaccf8fa67c3413002907e2ad9f8d17b0dfac0cea8a73c1c9eac3978a3c182fda755a98f47b5d56260c5d901abb430c05e9eb2fe65ebc30792882fd481bd055b3ee3794739a2d3ddcc32f1b95fc3704de80dc26fffc5b443cf3424636317e366bb516de1ec8987a5ed10d38c17acb4be1aa2bbdfb8028d539a36c85bc86f5fd7593c0f1d0e59d96e1658a34d56ddbd3dcdfb63408936f34236121ce474af597661084c8ced67fb5477b276b61bbca575393176feb411fe27603ca0aebd8c3e56724f5ebdc6839c706e5ed32666910076eb8fd979ef7f15d647dbbd77551f3a92d35b6c988b20bdfb70dde1d77e8e2d75980725c8d5991729da196380454dd37f36413b03ec27ae428cb312eb7ba14b6d18a8ced2116329066ddefd2d2f40d6ff2564e0df675a3e8eadee1eac6e6b8ac7c9a1f120b546484ccf88858058b0907f91c6b01ecb0531fc5f1632a7664940b9a182ece7d339e8e80c78226a2c32c7b9acd51fd098c9c49a9cf03731972b910990aae9a760e9e8e109ca43706cc9875de941b73cd9ff59b6c42375fc49e2b4a9da66c3933c174028ff689417bba68934517c73d24ebd161cfef8fa19841b7734cde882fce1765dcd2eb1533786d52604acb72739a16bfbd3836ca1f19dc1861a4c74435de6f010be6d8924f8502aa81d16148cdbcc82cad44d354866ab2d8e24bad8e77a86b9e1f0289ddc5cd8ef99d311f25187a39ddf1c98dc20dff0b0b727aac3a1cd9db7631039287fd19715332d15bb83e3e7194c455640b05bab6df5fb90b0ecb62bf8271feb3f76f883cdbbe195d8af8bbd4d6bb36d3b5ef812c0b3b2b25c387db778dcfb77653b2b424a2d5785acfd21f4d849d9457be85b13d8e1ed39f36a64fc9c6adc0737dda008f5466d829a34d6f613926b57ab8744ea7bf22f6ec2919ec52dff7cd865a7822a73eb615fbb86461833de2ae23640228c663a332bdfc5bf9234b9c8a6ab274bf86d64695453fe80fa9e38a9b38cbbd35987295d8f4943073ea5fae83606a385da8f73c070943be945f5ea8c3cc0a245de3791e10c1d251b02e111ae2d818e63c31e1822805672d03dd60e44155897f49236da30142544338e21546320ef810d644cd676f33e50f11eb87d4ce892441886abfcc5924dc55db3b2b2636c9a75f99e2aaf3f37267f2d4328fd2b49875594b65c694d42b89be7bf8511a2289bae283622e0cc7192ea9fb1a4fa89e1e84d23e8561f457316ccf365f3c4d40680e3ff198c4db90d7e82bbc1013c41aa1951624913edc5c7b81232b7df6be6dc57f6e011c668cd0ca97324f5880a53d4d18eb306261b6a0c3bde59cb217d3039e7cd00018bf82881f337b234acbd0db3b2b40c982f4e01be8638cfa4281b253910c94e8071a3de567bb306566636a3257c116a04f4fff23c94fcc3587e3b860e58d4943d1b31ecd16842b3db172b4493356745f8bf8ce315d0f6fe2e7ac4aa813009bbf5b889a83f91fb865abad270a86b8a26943e29d88fb124f3e29c05813b2f6b3bae6a0ea1646a4e7ff26e3ef306483edb0bb932f883d4b61b20b94b1d6edd7c74d4005f9d7fafea18803ef0d4cc04931fd0f289e92afa735ea4d85d6ab1c9801c096ed01c706dc6259b4e953aec82613bfe4ce9876b1999573ff1a5ea1bd95b0db8c0107c16a878495357bfa5e6c04466517b8b72172756e7b821acab8d90d6d131794b544825516df354ef6ec474b2c11352ff294d56e893a1d730905404a1cbccbb93a4ca6286fbafc04f3776747ef264f4c81c2ccd4b3cd58aea00d7fc26a3efcf61cde234ce6e115cd2b8ce2b420dde7660ff7d2dd404b424bd99df7a29e57790470b3622279cdc542b7e84bb751fc54e2b388ddbff930f3feba302ac91ad5a818434d774e87fc14ada6c3788d26d5a0f125859c1897797140ca3387a236f603f329ca68224d7667dd0945caf290fa007644ad2e402c945c3451df3d18a195f5c0a56dba9fb785d8e3d19319199bb9b8da3bd8bc59600510b3e94dd50749b3feebffdb59cc735caf22fab36cdade8f0a8b9a83352e9b2b34ef4d76d660b4a6eabeb5799234732b597c8306837702313f20f905804d84928b97586c532842188d2bc8904bb331b6ca86a6831e9be57cab6ef1fcf817cedbecc8fc3c884cdecb98fbc78f48e121b3ee82ffa3ca0b0a96c91d5dce420a6482fc37f38e585bff9b8c4a10bb2e102f41ada68b4a2042a3ba6e82e6aea0db8bfb6057c7d62b4bf0614d112acea8049dddb1ad01170aeab74eed7f240ab5e4095ef201381cb565d453012228e6777e5863aade0441765d3e8b8c63851f683fa098d93bd30b817b42577ec9a0734fe4ba53c5dfdc8c6e56c5485e7bb0a4f675c9ed0f6c9ccfb5ac999d3208573d77c761939991bc67762ba1478a56204a838774739ecaeab1acd7000a2158883445f35963f915f7db6e0d6ab0b5506e8a4c4b7070d2d63a498a1d4bdea2e0d7af385b5d1fd0efc799a88005dcda93c077c19f64da17c731074252374cf68cecb4dde4672b50e056d18ff3529aa705f69129f1ef503ebdf037056eac51a55f840d4e11cfb0b295b759d242c2cd72335689078e33234460c8e29281ee4e2eb1f20808d4373b937cb4fb421830dc360914d4eb82d985ce6623b24af9a7d1455445db6da10a0b0f0edc0b7840801e2d26a0cf5cfd45473690f73cee574be5aa236b2909f7b80b4b7532dc38c67fb7b39581b768e41e92b3326c7ff0610a9df5ed69eb55cdd39648637749caf1803ab4bea5394ad897dbe465ecc535c81bbedb0e266dfac7f32610cd73e8b35c5d2416decc9bd93fd16fbe36311661ed8f198048f8a42f42a7a4857bdcd5aea7012aa3d58cab90bb261c060f78f1af080656d7287e653c2ce194049f4a34ac96746c690b11821824692550e9abf7d8c5847364f7c7da8fa4b6bc94f40013eeebd6a6e0778bd28db0130a1f4a805f28d96c91f202c6ee1b6d335d6352af3f33f89fef040db7ccf0707d4296a8c5fa7a059dcbd5ead23f97a65f7fcb43837e0060b5865732e857149fc05cbd7a7eafd39f563147da0f6ae4e3fd6590339ab4b5c8032126fe8c9128fcac398dcebe560230ac9d0692bf35341fd4badbdfd603cf65a09e779cb113d4776eb848496768a640492fffb0c83c2c32646623b9b1f3136f03ea7788c8808cbc3dcd6b870037031c0d2665c99b030a993fa7b6efd538c91315ae03867e9033389f53c95128afa3ee69f24827ac33ae9538fa98abaa0295252af21148219d6f0f7c23c4807bfaa46917ec7cce216e7622cc7c7824e1f0313ac92cf93f5b531f3fddda40a66f48f2d40a04c8f007ec2b60580a9701ec0280e1720b9b65add3dd025a010e346609f6a5df40f9bec11c500dde84c0fe19706df9f5084520e7a5386cd0ad2ed0e34019bb7eca39787c398298c8ff062c2fd268d2688851adf79c59c1a1ff6ddc608a90e78d9ddc31078e0bf1bcfde9bf2a51930758b5577ae3b6cd78002d082a3ae192638e032a2705a161c32414075b22e95978ea47838d9f094c1993e9e550575b5628b51ae4919aa2cfc84a0ecf3e794eca4825a15f89774ee15c336f83ebed3909f7708c0df32d25f9e60e5f453063554ac0a4e97e68933abadf3ad3946790fe0b65b6e501a5ae4e96baaef0ec9fd3f68a2c74811ca60f9d64726a50d4d70dd864c0f12b8c992a201f2cd25a6750747fe8c1b89cd69be3faed211189c786c125da39e2b424e9a73045d15ee97b5a41b6f155c57b42d1dd414dbdedd80a0cf57f97dc51c7b57fe2e167c68e0a39c6bace451b87c8ab8db6443220116ff94d4dd8a1bb3d19e82a0783f39ab1d2252fea0fcf4702015991666383986d8bafb1eab9d5ee75245ddc09f25a2691f45ea76317c4787257a2b45e0b07ca3da00c0c8e1d3020d1587eae975811432bc285687cdbe39ce3e10938685a86330885e96fdb6ac17ed546fb8a5b18d5eddf30e1b2465c9924babb03fbef14385ecf98920d3b21028c206b0affb653e3c9e1063543cc5225aa71322ab0e780b7532144e801b8b76ce533b8c3640179951adc8281c07ff4d63055ae37709ce3a0af787348df53561eaac3a8a09cce1397dc0ab491928d19511b19ba79339b8429d5059ad9a3c1af97b92ecbc0f46766a10b6bef3598e256f4fd9d3dd43a7efb8467b754645d3cc4554f3f6641616b80f7d6f6a833fe33568ad6c86eabaed768dde9699a3cc2de1d6151f3be063d043cac8174d93270622887daaef48732f1e5c176cdad138bdd252e85737b539ec0a7e45e83c5e561cbc84775687019c64db471ba7a7584430125c31ff90e8db1ee37f256f1b67ceb1e8669acc53bf12b9126884de90eefb87ff3108859e1d05b845967f5bf2d2086bfae88bb17d70df48bfe587bd8b9dd1923b05aca6bb6002d983fb5143b50ecf5e48b4aafbd7971bb823b902dc71b70eedd895b2cdd1c32e472bf4750cfb777f109bb383bfef3b828d68c00a4eb31f2271348f9778b37ce25fe1e30f8f7a088e8002c17cb312351738194520ae539db553487ae1ad4e025bf3a0be45cc6639ac1ebcd5e30828acad4e522b3503d21f7965bdf2463387b5122bf425593f639a2c8cee99b743447f0ff36a4dd8737fa918a781427c337313ed85c0367060aefdec4b3b4f11a0b74c9acac1b26f9ce8faddb5bb3e3f6a7878d50fb16f5514c4e8472929053593db0ba5146a6de41f7549c2918930015f3b1d6dcb51a582f40f513c2ad62f9378e0d7d30e6b002b6491999fff165f5a328031351a9fd4f19016736cfe0234b0bb6a8dcb23e0478406fb0d8af3d16c4700b20df49fd2aae8ba70681f75fcd139010693949a19a714bb6f6c266d7735ff46ec94eba640f03d156a866d456593423cae5039615da2846176720f2864dfe80d0901ff28c3a3c68cca49bba53d823a90977934b204b950a96c5cd6cd82f1e0acdc41616e95e1ffdae20c9541ee55a6f212e9171624ac94c6bba0025ed9fcc50f3943df9cf8ddcbbad1c67c965cab90657512788828e16c69c28f89d93e175b0debff67149ecd0b2fb3e7a443e00914d81e5c3407660768b3500703a9f21aae74db47db8dddccc1d921e5d265fb40fa5d0b51fe63e8bb73a1606ccea27f03486773ad2abd56a6ba1fed4385f925ece1445ded399881c8b2f9f1d7011d4c27dd475d9668ebbd260e16fd0f2257e6a63547bbe7d1f3c77f353cd0fd79edb649c2827baf77f533a6b4b772d087bd08ddefbfaca94502c40f16f704edc17d41ae20115fcddd8c511ffa167f9e467a1b16e316eaf1df11ee1188bf7bab4cb8438f72783fd19b95daf1e16098b7a58052e43133052a6784e1854f5bc918cd3f4b791bbd1d7b9eff2bb0d79f897833a3db0c540483b117833d76872cb6ddebb5e6c67610c004db4d1b946dda5279bffce3d6533ed24762bf36d0ba9c6b12dd4f95771687e880588d2c7f29eea0c60ac7cba01c59582799c8cc6616d8afe8600b92b496588d5236b8ecf731fa74ba6a851194259bcefcd9e47265715acbd3c5e48868939881e97010692b4f19c33c9f4f727aaea8b85c7aad3a900968be3e07166f7c3563846f8bfbc8bf415ed2ea8cc6442603fff7798909d3d9c3eaa35003362abefeef51eea80b6c3f44b0f037948ff6293f2f43e59075c00e6d32f861a7f3e66a644c7c796323b99f25fbcdb8b8addcc193b4f5e2af3540ad7685354db1e030daceaf668f8cdf84954d6e962d952f6b1055b53879c1ef2f42d4f1e7f8208334bc21e6810cb15153ae7ce9bb5e3d6ca5dfeb0d8569fbcc53c215fcf5b0d0e69f921b936d090aae6d12c9ce8801e1044777dd40c29d94aee973f389fb2cce68dac7b15c8b305349f651b17af56b89f33c040be506424e81dd3732d199b3a1606597544a878910576460b6e4605bfeeec677cc35d5cab3c1b05ea5357af9b67d607d2c57d63424a3530817537efdc1e64de12769c1c281ea595fb089da522b8b2eca79ffda8e3c8ee8bf83f5f44806ef74500eb25eb024ccb5f3bd48fd15270fcd58a15e44b5444586da217517abd95458865a12eeb7507a5bdfaae79c5f9cddadd48f532f14c677ab6ef0ef099a0138282d566d7ac6049026cc09f6a215948bfcf16c35e1e1298945fd702e6c44fa3469faec9e059a848d582acef0d6f9948edb8622ef04d5f1ca0f8ab1f14f864ea8c1a28220fb3e0b882499e7499692945ec20818363da17d9b5fd3eac4cd082a9046db98f6a4a10014da730a5b0d56ef795a61cd7a7da524df112a2e88eeb275a11b45438bb39030153c535f3dcd3ca2def5bccfd919964117e3d99a12b9281f6a3c10c66529f4fdbfbf01bfe958fec4d1cb804227b0041e4d8e2506522b0860d0fa9532d27e4347af137c1e4aaf3d58e1c6d35d2bb967b75ec61a7c72f32dcf92a320d4888a7612bc03cd3f0abac74e99e3523011b5a6180f60e50fce029dd980088d046aeed99016aaa2378a7bf2fcd0a8267f38180fe5fd6149cb1db10b852d036216a578b8c33861ac3aad9fcbbba23dd8758c1b5bd6b97e0243d46c463037d1c84633986cfeb7bee765c11d02b5ab2bb1a463f315f2fbaee3ee52f58452dc886fe20ac299b91bc3a3a8fa9c17e151dc6cddf9d2be71a6e7d049be5202d0024b26a1a07ba1814e63cfe589f3fd6e2062967cb2b1d3f964a8d5e531c26692a3080ce01629e6c35c8c288ae1aeecb03037079bf9d5fd06f4fe22f90f6c895d854cf20fccf6c57e54f792574dd155fb3aa8844e31ba3922e39e1a78f20a3481a854fb1d27f228edb0a6a0b13df5962da20bdeb5058832ae1f43c22567aba7d6f35f3b1fa8d33faa08437aea31953f9a6f86cefee6d5401a5e8254449633e0ae03e713d335fb39fa1de22f5ec757b6af124309bf8cd1fc4af9ce97a415b79ca9e47af0be2afa4a27bd65c1f4d259f1277536a96422505d787a7ed9c45eab8bf97f9399905dd3367764f13cd5813db51dc9c57329c9ece6323845762b0957cb8fad4c99792fb31f8251197a3e835ce883c9c3672904db6618c188db090a88045d3093cd88849c54b5c1f5beee35fc244ce342ccd07dd44e905019c18af5ac8fa3fb71b405bd453e36ba94f8854793d1fe5ca494bc89e538ae5407fef203366b6f5f2dc3ec7066871e7f43689a28a938e94b0167d78e7ed60435ae333af3f9a14332e844a8da3756dff2d576f195224b0dd1b1ee2f4bc39e62e88c99267ae98ee402949cf89a272a9b96ae1baa5f2ba161a5ee86f729c8f66b12fe0cd1566428127280c1e7fcf4f9a71539eecce4dc9da00fde8ca23b71356f942d137171b2ea02b97583856b6dd62d9875ed1c717db2792e6d4dea3468ad3728606f100165eadbe686b52e39a3265939f19bd9194159a0929d980ed5cbc650db6055e3c3bc1eaf3803299a739473b4fec31dd60382d4251af8f76a8c1733292084867abada21b011c4e69aa216e3acd2e0a238b9b44c710f3621b416e5c05ea4cbc16e5a2fbeba7d58dc32c60fd8a0e8fe97a8b907edc20d7be129273914f3dab15344dd73b1362ba567cab75825355a568f5b5ab7a35aa8ac0483fee35a984b265586ea32334627dab21b00e00c8859c6546843af25bff561f785446deead3e0f4e0eb176f689777189fbbd436be986ecd16214820675c7aa69ed2397f153d3abed44e85e89020c52ba5413b8ae230fde7c9073559e16b2bcbf44299b45b099a668072379b8e7722f8c47a715f85706462e7b7d9069fb90f6cb7dfafbeacab5d89f1a34553df8e33db3f35bccc996136d7165d2e41b518eb15e16c6a69a6a4d4330fa68a3ca6c98f09ad22f3970480b46760a061f0abd85fe2b5f421f1ead71a508ab22c80fffd41297f3938885abfdb893e43fe960d70b4f94a30735b39126c655fd0685e868dc0633586bc5245a7b3df8641868a0d39e5eafea913c858c48dd105b5cac0a0cdcaec1b96054004101a8dc06f7583814ea5e4220430608ab4817bddf4d88d498e3610954b48c3f475fc217529f693ed1f33f377c5c3400b0674022434b1ccfd7cd1c86f57015a70761861ef10805a8fda0bd5156e70423f3ad9ea86167d5f106e873ec6b7ed0e2b559845074b98f4e7549ce86e34c4cb07d29707fbf54e4fa90376df561df52a493c1e5285672eb779d9068dcf50f4e112a189f472d1c59aab825affeaeab30fb0fc9c5f20b1482eeaa6d078217e6986b844a3eabc237fc4fe426a00fc68d298579c07a63faa1971e35214bcccc78346063b834aae8f8a58f9022dbb480d0629a89967e68ee96bc7f676cc1ae1449d316f0db68f70bf5f48eefad46167299f9869f0b462034cfba3ee82adbc63f03bd904e753271d3d9357c43a87b94d272c21ad721c6d1cd6b27360ebc2986a2f81392028b8dfa443b54313d1b7b05ec4f164fc5649726b72d93dc13d01841bd03bf2ca0b41f64b0cd94ec65709d4d812ff5f47c1a17fe23afa57408eb23790b855b9886fd585271d44ed1591280f712367a29d5449dd6bd1d9d21663cb6e8305b8ea3f53042a3e6ef2674ef8c741d066a9ed8760c0f7670fe43040fb59bdd9bacada9b3de4182cbf5efc486a7752eea0e5f81645e9eadfbbd47a9613e0e4483150d8cd8f74eda710c484f10d2ccb71c087aa669ddba7f0843d0f73711dc23e9c82154a9ec76a9a749799855e6d662c6c9aec961b50c0c74c7f903c12b13fafe72e8ce422a86d7b84d5c7721ef1b36be52d86319ab8414db968ea0c109d6fb2a4cf38374252efb8ed32ed20c86b9217e5587e38cb326756e7ccd8f561d2eb19fe228d2a02366374155aef6fa29837a8748039568c69ee045e662a1a9900b0cbd67fb6e2ff2f93442c023eec40cde28685a03ca5bab240d149771362a2ed3b64ec165dc55d8d2739cb4a8f4f637e58b2f07e08c06b6be2901b442f5a62c3876d63b0af5b6754de734cb9d2b40d01213814fe689a5aa6a5a0bd5fc8371b75926990fd3fdf3c3f966e1773a47800e2e515aeec1b830923d7bf79859d64d1de0dbfb16e43e0db9c0a87781b9e5488da7879953f4dc9dc7f8c1c758c29100983e380d994a978d8c65d758248654c2940160e431b35e7a2a7ead1d193394ac399f01b1168b68ead15faaa475f2c4fbfac45101ec9e2cbc84bab1c47ef017ee30ea909ec7195a89e9159bc847199b245be585d6914d753e04ce197041291cd579627dab61c8479c3d5fca2d395ef07b3fe16c49eee4c488ecb709e3c2b9429e2bed5b1df395954bd4eccc6dac19a3b274cf77d3e7d918dd9e288ccbc93642379a6396402cc3806d73e208a2df3117839d64e3c55d4180f3f059b95946cbe7780c95bedcd3a522c0f16390fdd52cc59eda96eb54a12ad1f719ef0018daf1b3e14849ff9083b556e09d3c49923e2d8316fffecb9fd415fea2e8a3c26ab828940d7d1453123347af0760900f974a7591fea763d7187722ee2ddd48dcbc952d7b99d85807ca3f2068a5077db24f46e15630ec88e73deaa49d5eecf08e5f787e1703e8014c1fec3ac686d999bf771f3c71af272b0428758cbb76bc3cc3752e684af2933625827649571398e9d24ee9f592c4ab5d2b365bbd86f5e9f714443ac55f7e06cbf7c52a512c4dc96fc1d99780b9facbebd845a001412cef6741c5401833c16c960391c88d929b00f9322c95473cca9b7eb299a6b986d0b4556e01371217f7c72465aa74c341f1ef3466226fdbb35d784c62d5b3acf3456f226901a21e6af26d130a874b9df686965b0c991223e4072030b4424f0e11480a88fd38c137bb7b7ae5ac02e0a88d20bc099a399e6a9dee15253e4f0a694d7aeb89400dd5ccca583b57ae44ae79116806d80d53aa0ff8cd779200ea51265ad9118a4b247ca1b53bb5925f8869d8e7c996b6773f08676feadb0a6e335b0b735f303579c95c128197b0b61f860b03f43facc24afb0e80e83911f15e5b7b9241abaa7201f789a34c9405bb107db4df7021b3ce1ebda06c3d6bd7d448a69e266c195f0f5881aa408240ac5077a6e86b18459dfb8021eb6209e43a6b1960693b47da5a80e7f5b42a8f63c231eaa0939aaac6e2c084b8b63e3b2022c5a93b051602e2b702ecabd4734900c4b9e76e7870e248381cb2c5cc07aa744ee79e5e2565997bd90c7e8b8d3e76bb6a98f2a26ca2294f5a550c46bc4f0dc35717a506d4d0823f11ecf647cfe037a8b80b7cf0d818b30ef6438213da0e72fabb318f784832bf92c53923fa2d21927e792d824965bb6c1cd06b8a0ce842cc21f2b7ad56d89fa1a39bc9828f056b0e26a2eb1f3fe1aea5413b303156e9cb37bfd9174806387164d8a44d8bc96ded82664a9f6b46bc38f303c0232fc734abe7fae2d80ed930fe9db66f4e8485af42b44025941953704413ee9cbe9e844db6d443c2d1710643ba7f4d345923ebd104e76a8085cbabb3a2e6980239d1166bbff15cfb185116e73d2600ae1b29d6962f18ec0052f84326994bc5abd5ab526cd94d81ca652c59609149995137604db082453e47bdc3083a36bf778a3459b108deb0d5c179ed7bc92f005fc42ccdfa700302df29ecc72e43343b283bd0d0959e0affd826f1e0a69dbc9d818d64bf480a1dd75df2f914bc157221cb4682e33ab74bd7d8080052acad75341c11287309e72cbf920890deabceb8b4404bda304a1d35138eda026c5dbbe6d7f17cc8038bee9926b299ca3b3f6001c233c09480179bdbb2c50fdb684985d9b93de2dcd37a541f9638f88f00164cdc3d22ce862d007589ed59d3346c7a8e7112c1e92b4ab242fc7e0447e78b74694ddf5b3f47106239a923c15cf8591495d520942b8167e7670dee5f1abaea790041dceeda5eecc5d56cc869b38097071111c8f2e68bfcdfbb7d4f80d2360cdb683e6f5bd088c1da8adcca5cd1edd1b875c7d32194d668cf039d8bb8b8c87292795a1bf26507f5c0f612dd7b0964ab1eeb958e97414311b0df7c126a172b9f479d5096151a446b0c50603139490c8eeda5acb56738686df1dfd54ac822617660c07caf73975a5e9ea5017c9f8af9ca6081505d0a51cc16ec55bbbc3081d07358869d8240849651f0257b6f2f61c1d02632056e04653aa33b0c5d2ccd50bb56534406523cb59a6219dc6dbeb38fd6daa8b334c40fb1010bbea06048f850ceb97569a794f215e00f1512d1390a639c1ca2a384024ae106200bd7afc32069882c0ff8842ec3a26d920108c157f85876df6722e3fdcec0c7ed103706968714460534a4fd109b55924b60e9a084ff25fc0207f1e29797424f22b0873338144f41f09d310c014e27b17b0c21ab63d2d1114aa4af542deac3352fe86af9a2f1987235d67d22a7a90db5f165398802535c28df8db3b980c2849432813f9b571b17de16c13f2d6ede490bee968ae2952d3fa204708b258fd3e13e96f7a5666eccb0e56391620e18d0e4ece00ea75b46bc9a41c0581b7fb9c58d30f145810b995c3dfb0f2caaf36dd95da3d03127cb7e0faab04ae490e131010213e87a353f26ecd3bfa6ddd5674ba878cb1c9fe846485cfc9be9798aeb848f86c9b124bd0271d85107c5f5bc39d12076a7294a226fe1a3a12246a9c547bfc99a892e83b98d7668e6436867b2dae98cf8c3cfeceedc0527915a5963c1f96f9330d590952a6bb182b349cf06f4cf1ab8debbfc3e62c8945ae6bb4ab2ee5aaaae6f971e5752577b275eec66fb311b96d50ea4344baec1a8fe66215db91f9e9c28f17470239d8c2e729942b26eed4e48eec559df54fed2d56dd0340f45a98d17136ba4a0d035bc3d7421b4a9da79b9752e77e21a9e57aa50595ca79080a33b4a5dc37cb94f1585b2021ab355d1c2ae1298b242f20debbbe3fb75a2ccf26ef462c8fb4bbe6427609afb2bdf7e68887b19f43e6a2fc6fd2bf8b90da58d50de15b22a053698ba8252249c9111b09f006d1109cc54d3982dfdf0f41d3b2b92e62749085b601928f161387d16e8f0b77a8c0eb3313cab221d2bcf5e85314875ffef89db399874747aefba7efb5aab2b4df03d1c76b83396b26dead99f1993196c296b80fdb94ad1088f700946fe87b0ab154555d94ccbf49fac75b2bb28f0035cac812e7f7dd21190904857c32f78f3f78b7b74fae394a1a049c55e0fbc06614e62c87e2a8c83dd20fde73bfa72b4b73f0a4bda87ec7714eee1106c63e963ffd288b9b64b54c1632cd14a0a396976f7699776f0980d5109cc414473fdb7eeec468a56242a294db0a61bf3849633f1f4f30f59fa3e4140459c2d3b7ace68ce53700fd133253618fc6b13ffdcf5b8005244274741d4c1f753b03bfae38be6bfbc351d1c93650d1e1bc2ebe6454c7401d712d37d461075db9a59cca9799b3811c01631d1b29e6069710643222f5adc23a75ccee86664838cb9a69c96649aecdcdc1ff03dd8ea420f9b8be96b44ede12f825b0ac0e6632f56c9a57dfa9ef98b4ab136738196af817bf2268609c7072d731dade74543a2a6e8906d4b609db7663c30630932472d3bdacb55b025a10966e5e930420f8eedb1bb47ebb95bc3c1874ddd3ec508a502150a9355dc177ca9622265e7237377eb8dc59149a8715c78d3306b0014a2eabe55e192ac9c9f37d05610c26fd5b3580149e95661b9df3664c6dbe43651ff85859c65791d59060917c0ac1c3d93dd82a5b0a8379ce21c46144b72b4535f615381fd953407c3a2f371c09acecca614d1710e7f4cfdac13c69d260502bc2a23893731c06038f2f7510984e6cdccc7c25223b3b50156eae78df8f654584e1620bc000ebc2d60912983ed67840f7ad3632dad0c7820054081627db92dad4f6b76fa839e3c36f452a86d5c6f6a28da767b9cd75f1f4d9b37e67efc99bb1455ec3bd5867965a494c262dd2df533b42c9be538f263ef25fb74716680fdd72ad8a9630493553fd63578207f28cf6c98cffef6d551501fd364a910b89e218d32f0eb33536480055f3f32fe98a6267385f2c439618b3de341f55e0d459fc1690894ff5dcdd79349e15c45e4c7f22483992cd1173d618cea22c75aba1f4293e33994b7cd3f62bf5204834f6964668ddffe02f14f9008c7c671737fc133c952eeced791a91c2c77b42f5357f505bf31901cd5ed375a0ee5e417f43e42e810544431e1389392652753f209be440216a05f59a3e1a0ebac2b82658088c1ce2aa828e791edc9431cb368e041b96bccb6492cb63df63f3308d30e6a603e5d1f45941599ac10d3e2fdd7d0ac34bb49e24c845879622a57efa97ec7411294c738f7e74c126be9d069ce259703833a2437f116fc2756b3336d6f78da081603ae39025d0fb666f5ec0c8d34c5e61bbb8e12fe2278071dbe02372776a76bd8d185e0fee5af039db287a95b0d9300634a09179eb171fe3c63500ca566ea109f6d4db0d29a249371bdadee8c08fddd57875b171e369395fb890af7add89e8eec29faef659eeb300993bd61c992e485d4999154478693c44beb21a12f64f90721ffac0598dc5f84f9d3af399bc84bf52ceabcfcee181c191ba2ea6aaa55a406857abce5537369473db3cc5345a4e720a13734ce15792bf9417f9fecb1e1f822ed5be679a2f4800ed14fd146c12d9a57177ce2f23ef58f400e36e60f97c43233f652b3d32577e541b03baa713f98eb3fb36c799c516ec7720d3a520e6c7fa74002d732bd46872d7b63a4bff3b6d327d98aa6e5e4f4df0d00959fcf81d3870c36ce5dcfab9c0eaf14d680f8089a055d459d597c40d33330bc39a0d41f42c287bb5ee3173544a9d7c7f9d1b422f66a0d2bf1599bc66fdcb695f729657391c68d36e54406feb357ddc4fb2801ad33df9816a8aca39999837edd0f77381654b844f2967ee78ffd5cbffcaedb6fe6ada6e9e390c4f2f76d3809d5f7e0d719d7ef485e239b1b98c37c59bdd956c8f25918d55eb8e1627cf0d66539b3044c1108e38d5e8e233207b289bca074f29bfdd06676b2f8ab88b4bcb22368771819c9ac7c3a51dce9b44a5c198ece8954aed6e50f3a9f320deb8fcb1b205654b0174db68e5899676dcdaa3836cb6b312a6ca26491d978ec6e49083fd46ff9859e20d79d7f52f23d3baba26e5a1ef0636bd8d72923c278cf6d765191757804da7703b7bde1f3315b137e5cdb9ef4533ae4e4797debb61787faa286a2331cc63e3eb1d178b971aa8edac1729c364a3d44729b9f305739aab050439d093b82c91c08d63ee8f485028c5faa4edac0c19c276b1754f52bfa391ecb55f426e342529fd0a5b3d048f7039a2b93e1cd976a82172dd15b69f23344ca682b162b71e670a29338652124242bec59790b44bbb9d7df0682dd01a4fb8d6b10c25c050f19ae66a3d5347d2fa5041f1a650def28de6767903ecca65f636131eb0a3b77824df2814191814168a34af5714367d7cafaa267fa7bbf6287f757ddf7e64eb2ef91ab98e22d6095033a7bda1b3bcfe28a4a2e4991d683f34a5f4fbc7c2a358067754de69b6d58e291170acbe878128b678f021cc643182e24562804b2c5b6f397fd76380ab21b859776742a56f314e3ae27ff3e72930ecbc8612f45d9f202f99059729705e8cbcef2d1b042572a5d0d458f7199ae0100bcb97b690560ed2cb69fb58d0153d4803831455147978ad928b49b17dd0e69c3b74c7ae3224b1c18db89e977bf02ee3118ef8757d686bdfab6c6d64dd5fc7faa875536be69a78a5c81636ef49d08c289109b8efe1f9d44616e73fe9ca0cc4a9de4d4250e2ff3c0fc7fa1a30782e1c4805c033dd03364ab6a85117a3d9f41c030d5409636213ee2be5646c3797ff527435133c49a48766c337039f05695e3defede4f1db31336a5eeca4fda5a5a70891c325d4f5e5afdb301e28b0852f4b69d615b2237f3bf09ae4270e9053089e3dfe814235edcbab4bb5fc7cdfa1249aa4b1454ad1fafe4096c3618636e9befc2cd8fc33cc8dffac91c642558ffb9c6f60a5c0deb30d73b6a09cf98b676cbf101e51efd809a9a0282571de5c5d26223057c2898a84f52eed72115fc5de3fe10c2490c8dab3a9a85df1df477087fadacb3e10a3af822c4fe22d8a430e09dc245e58f6b50a8dd2b3e535c5f21126c7eb817b3cda77c360d3e9658a9093359e3cb7ad1660ed7b985df4e8172c8a1b6a480f75f16f3fe14bd3b8fcc806a7f84b921d624abcc99d499fe3a4deb12d9ffd2ad41bc5fa96030bb2c08cc8c9eca760b19b8287384a3b7a2215f8f3759d1f90a6ca5805b101aaf2d3a7d027635aca12e46ff3bcea3311dbe2de7edbdc6857ec333c3bb065683589947116b9174410497232ad980039741ed5154ffcc28e6660121315febce1d1e2c3d0274a4085afe66f8c901f7a7663d817730a799a8e9614afc28804f9a9053eb9ccdf475cf264c57a4d3f1d59ec173fe9774aa5c307285ef752bb2d9009dd9e6e46cad9b7c84d336f6445b03e626597c21a68321e527f43efbd8417cb010b89af0477882870ad09dc0aca42cce4493429ae48f784cb2499f762e3d70f9b11023b6d6a18744674549d8809f2da6044031ea535a35eb6c16c092754e0bfd6f05cf05326872d69266baaecb981f2ac4c144d27197932c1066d7ee55b7a81abd7b280576c24d65de7a2e762b7e42751ee28716b6cdae5940f21649cd8a7a69d8ab4bc330d03e935b98343e00fa16664acdd6cfdaed8ef3d81e18b637643fa4151c0b966638dce7a5c9794f18e5f24510a3f03c59a3582d96a341dca4ede7554fa5a0fcc1e06b65da86836b3c3a181fa6eae8a78a7213ce367fe9cc818ad68e58c53f7b065c8d3bcdad9c68154a625c3d4c8e0c60871b25a2d87ec668b7683daea703d7bebc2c8b95e4a88ff0fe73a802cd53dec95dd7203804d9762de0ba18d3cc87d865390073a845fe44c471477cca26c2a34a1973989d1e77f2cdc0b56f84fb080026a4d72ebb0db11865e12e17aec43aaf35aa504dcefb7711aed554f76fe693dbe5536a20e10c7d1c26f67ea938c3fe14f9f80463ab4d43542ec36a667b5d47143b7bb5a0a31a2e9bcfc8b1ebebc09431446bef03cc3454a6ae93c7f5fb973a714df3f9fc3f4f42d87bee7bad2c1963f2605614725ed4b3254ed0debee1bd1be4f372d73c9f7d9ec6854a3c511b60b9549d6bc2e6e222d5967d447b84bd34de33970be750a577a5c7b216c0ec9313fc0baf5b9da419dfb6bb3fb534a7bbb86f601b3d7ad682db8d8ecd2e98d7d43360f1ba0a2aa6bff99466151f3d5450e5bc1325a418283db6690b928ea8736dcb716a22d3f29d3de79249c725f83f9ba4f3e5b26cfc2d043bb3d8d2c34606b0924a2558dcb25c7fd50ebd3e85186b6c48433312cc76513e20a660480d22c63cb4f47b25da166267ab766aa1f9dd8092e3fe9ff076fc515b6d5f95cbe34b2d312c2c65c93267490214ed46be27b83de95e391c641380ee1b38207a55f2531163f767f24f2b6bd39c6741a3de18ee917e526139fc41417ee9a9ee0fe69aa4ac0b0993614b9c2237f77a8db8be6787254b39503f9c8afd1af439f2eefd9dd8ce78835e205cfd8c5a1171a263b917df9693da6fda74b10fc8db099f4ca402d1e714d9b6f2932728850d0b7109f1a0c956232759887285a0b1878b9e821d360c5ca2dd68524bc195652894b90a1817fd7adce624e3c52d24d1a802468c4f332b01aaabc8376d4d4ea3cd8988d7d75c482c3f08a93ba44231d0b83de0e6a2f1bb83b2d094ea37fb3f678557d3012b5cfefb886dfc6cf1e8d8fb3f223d2ed8cac44256c964d243d7b29af95e3e543ebe40abf2097b64d0360e8d9d10faf17bb1a20441fe26b4f522ed0d43f84383d914ed057d68c84c3244fe2d6d22007f86e760aa0f089ab3c070b9aa921754c01eac8cb436b6b8c40966c0afe8d9c5098ebbe18dd7dc853f8b4518e4f7deb013329c53303a4f3b6c5c7daf291a0945a7818e2468ea5da914e92a12be6a3413fdd9d6c1991a5b0384d7253d02b922304e5384d58b4c1e6d59fb26e57f89a1c9b8f8991ea2dc6ae79cae59b636d3d53e9fc10aa9befd4c2f6fbd20699b06625d18c2afc78a6f3d1545487762a78410d5d5a95d53fb1766d6f170ab84d7adcc8f961a0a79c6f1eb281cf56a5e5e1d335c153aa0abb936497a1ca8f3bef1d0d9aad628a9712591b3d315d7e2a2a4d1271917b22a2030f369dc87feb5cf62338fa92b9ecef47f1bea5bbe2687ff12a5b948010a09001ce92c4013f22505e8b3f71b4b656b81704f46bbbf5f41b4d73c7a76c1d8c7d92e0ca9d2a13cda6d2beeaadb53e05a93cc3bbec1dffe83c37bdde604e02f2690a457880a3e2010984df73f2c71cb246ce346f4370a2b3833a54dc98c33f41dbaeca947e2c1763117317fdb1192155b67ad2738bed531b2b4fb004176a29fc5dc2a973c6317711f3547fff803f991c3b429ca63d393a20a752bc8e06ae35bd2e1b4b64035172f4a687006488c44bebb7b8287bd11858ce9112dd85b0a9540ea0fe8a999f1d8be4e9ccca1534d1a4a552ade3cf877841205ae0e165747d9a625a8e4ab320066574f8bd981799505c0765de073d19fcd7b2288fc89740030997212eaec87d78cb9be9b89545370447c1d39c46d13eaf6ee31025db5cef95b5242dad958c8a9928fe24e81bdcf1c75039eeed532f4bb73ca89939063629d7f084f84641dea27c72d49511326f674f965dec9e02ecb4faa0a027a4a5712947c8b0d59966f4edff9de38f8a7a6b9361cbb5d1caf7bacbcf96e459d918f4cd998d12f15c18d95df80d6f1bc52858292246ee054f0a26b6d082c93e7a1439c6a5708d78c85f87d2c036173b78faeefc2d3eabb13e15cd24b8071a6ae485f42a7e0374d8734d0abe964c95bba362dc8e5653b32cde2ec044a981821fd48aea9c87af929b0ba7128de84fd10cc102477415d238b73973aa7382d5a19bb6dc56ae8dd2743196910be0f3a35ba46e1ac1d7097db9e525c3b2f8e1afe2e0c1393e612fb6c2e7268d0c890c15dcade0aa4eb452a76c00027229a10d591858d1837672ffb982bb86e4a6ede4f6bdfec6e605c8e9d9ef77bc2a47a56b863afed487b37fb595fcc90aa20f09ffc42bdee22cb6933e85761d4ac92d6d3ce421883090340ddb824201c9784ff536b246cff9bd968379b4dd56f2e65866f4173ffb2406b5680d089b4002df461dad29a09a660d49d0298f411dd1f3fff015378fe523e5c4fbfa41dc57749c5320fb1fbf8b4e130cd46e51ceb70ceb5a4c22b91c6a7339dceefa1599846c2b29b85550324c418eae054fe7ad250f1978dfe4c2c02cb9da4add851e83e323c3b6810ce05941b776e5d89195e3fe1fa564051e2822bbd17640186503b6ee4264e02db6b24d6cd7c1d0fb4025553b45513f37562cade0c4d8e434438ff77f8c9fba9f53d70673e838829faaf163b5a605f8be7a3c7439aefbb2044a3dfe079461db675e026246d7ae5df4e20590e3bf8893ef066e44019ddd2c0ee4d31233e98fed224b803dec26f52d089894abc3e75fbff5a8c71bff11da85ec0d84e007b42eafefb233858dfc36b75887d26ff17d25be5b0edaf6f6c796637fbb1c67087c2a63618e82c4d2f3de9db70bad3c7e353a670b2e9a2e13721f985c760ecb32bda9aac6f65bc22af24a5b2bff45d21f3207ab103e0541f5dced414dd62d7109c8b9b54418b6cc71b202e32812d17f87da00bbcd95f995f23d92ab65ad272b8a3a8eac40d82a154b03c0151f6481f9227a08c70399ab20e427ac4dfa83ce534f19a3f90a5d3f0c60ea5d3adcaa5047742f4da90f2b8d882d8f743ada61cb3b9491b6151be9416eac10122d692091ced24ba79bd57ae204836343236fa31d8083c5fc14f024b872db1ac80ab4e1b9c52e130d08ff51be6d798cdc9720eb7a420b8170f86d00ec45d2de35a3c2ed03a63f810018c0e6303728b9f4079589e65d09c4283554d397031380d5ad9d8060beafcef7df35f10ac1b3b17e5c7cca7aaab9cb8197a66fbbd8736162498ab2e2e20eb1e746c46ca8e3abfd319ba33c2ac1f00fff56b2c88519e23cda01c7f5b12c045e48bf350397a2bf293f9c6d51ac616e8b77071be0556f46c77cf09b79f51e47117a3dd0de21ba9b11c372cf58d58c5a397414dd65150dd5d86bb978017f124db42b614ba97129838e28724e6e9fd98a2c9e92ed9e67a43aa057ef1a45dab25aa5311029911cb118dc8a9193d084df84b3b276c7aeee33433947df86c3319db6bb7c3e2daf3b0190c88dc3c40e0ba78bdf9a40b3c5ac3f5e9834cec4f2f13d1d474bdb48be6ba1e91e8600a8b02fa7f6255c1a7b7dc344e777f2bad899bd19e926d5f66298a052ffad8dc15b050f8f639ae82fafd2f63c8a88415b53e4a47730d8938d56cb617280be3d73af81f55a21a568570b4a8f1f10f5a8cd5a77940631ed50dd4f5ed8420e74aadeb23defb07fca4ff3db96767de575aeb37d097cda81bec212945b5230d45df2af84825361e3f0cd7ed80359805eaaa743041cb87005bab1dff080cb241c95b1f58149ec0c9cd090b710edb6a1879c5cc76d734cb1c92579b4b8c966fb49d11745ae75fa4857a4a379cf4aed03b99775a4400efb86bf2ecf46a50325a9abc9366951e300349b04395b6bb7be002538a9ff75ec99734feb482e72ee71af7ecebb12bf91f8b7385ab860ed5f4807fc3a40e1ef391f46055f70d5f136ac4c81645562d0abbece07d9739143af08883a19faf7e2d88e2651da8b0c8b75010553f900ea6928ebfb425d791839e0fa16178b73c3b4014e224fb8c1c216fefedcb3a1e7de080f450e42ba5a4d4d8349ac6427033301261d25343b199606766bbc32c101bfaea26a5be2520e6944899fd7b4353bbe890e7394708abf65566f0b2bee288520a4a75626c8a3b9ed2a4bd91b65e0b7f1a4c545610d05793b79c2c6aaff5a894cac7aee6f45ef983d88d47a45f496cf3823d68f8e61ef649a3aa189e1302401eed9ae803b6e60d1aad8cbd3a79f6c2823ec6af6bed9ae74b3b89cb70f46383c4c49f5020850fcacc3588ccb63928df585e59f3730ff898b7370707570475cb9d0b954cb021ece4732ca11aa2f8061db36ca49b3449cdb8fca0076431225d2b8f1943de7ffaa7a5813b12f215f3b6e58ec4d337692f28caf8d467f97006bf7c1efbffc3ae6b88dbb098a1964f7bc0b72dd5cd82f0235e7d4646109bd45f6ae08b8b45e065b8e42b924c2342281bff01f68d62321b52374cb4cfc42d2bf078ca699a5c2ef88d05b02722250df46ec60b5894f980a8fb593455deb9ccfef67658aef29b7bdb26d475d2351665586d4665c5d0bc9330b499b309911cafb8e77c25b66b0f6486f7cee02ae4f2b91f8ef3bff143e41ccb549068de34be262c1ba422f38a9fbfa73711d4587f126f014012cf7a5b7e685575b317023e51139ccc6a10a8e5e7d833d8eab2e8c6df2afd71ed34e73fd841c7f8bd1a72b34de99cb4c8bfa2b2506a53cfc71bf9a79af699562b57664318d8ece23303a7b7ebcd099c5013e40c256b073ca9621a892de6e4f608cfc2dfcc041a95b07a63e9ad4024d31b02016a09e7e15bace69e2bcd4b2f1e3d7facc6b8804c6cfade9d63b59f7eca5e5d1a6a3577c22346938e809db63f117ffb1994383c2f53b2d9a55d043932b7485b43a99c2392a92521cb1980452ad70af37446147689cab1186c8ac3dd36203bbf1295c86a5baf1d7ece4e65bd8b9ff2027d32fbb7094d0071cd61dd0a9b287fec59950e3959051da8049c1020ae7284da17e253587852687b746fa6fc83021d4274814420fbaf060a4ff463273e97e266eb128724e2429f853fc431316de7b062f20f6c8006b68e857b9e16b492496a721be3e6cbe256921cd6f73dba90de7d61e8b03591e844d266a62a52267778c49e5a4d3fa2f1c4e9d612b1da27cec791c03aa74862bbe50c37ce9fbd7d87df204eb4ea78da3a550a4425e824c469055a675fa4af8462f99ecc903869fa6b474a434f083c2724997626f8200fc739f3c91b53f96926174c9acd843dfa68bad02de8250c1dd06adff07126f766892b17f42bd73f4119032722cdc77c5c047ff02a62b3a7b681f0b2b0f43ab7cd0653cb6bbc985b89cb220e98003c89809691cb769304ca92fafd32ba9de6b169225ca3fe66f555a4e585e41ec72443b46367fc784933f36371ae58b73e7a5c432c2eb5804ae4242e3fbe94263f64168aa720413f560299c9565e27a4ce8d5388fbe09089c1a57927fd125b010c90bdd9a67361558c16153f59f310fd41745cef38b3e547095c66f03289aff977f0147887a9ca3600fc66d24ed292847c0f6dd800432b26ecf3d1cf9c846b5290dd6a4262a6014f15fb759aa8ad7575064936f22ecae771fddc8e0925571ff6e21955d64bb16dfccc07ab03ead957b34a92c9bcaa9bf33ae7c791835bf5e03a955a5dc6dcd63df08911a8656d52914357c9e22ba537388c3ec469398a45a822fb8c953c992483d21bf0d9047a08662f270e825564dd4b41f00d5ab2d1adaed9aa4d7e308ac6f0d79aa7cc616a5dae1f4d1d83dff88e78ec55c0d1efe1c73ff7c464e99e4b466f564b111a98aa693b94bd6884882e5021382609b4d82961fb01e13fe289e94d4115c8d2cd70702c06aca860b940fc1f08fed6b3fada93729a00c7ed7b380b7240aa7dbdd5f8f5b47bb8c6c0339a6edb8c4100fd02cf23df3cc80230fd134b7db3bd58c0c8789e0682b04ef92f3e8e9808d29224bf6556f408ecc11524a27e50c03ff56707bfb1eb30035b11316fdb1d2f027894f1db701f5a12891ffa3592c4c2fd43e940f2306b8b2963a443b712cf20adee14290de2ed23eb6c4e23d33bc20e052b61f1450fa0ad85233f3d352ac21ff178290ddc3f28292f03e39843dd98f5c244cb29f414b5ba4eec9c1caa9cca14f9679e402fb192c98d0dd78fb6c26abb78a2a0637448645fcb87099d6d1841d21b39a6bc4199b8f981a010d71fadf9c634609914a17e5d4ad2460ffe20f07fe82bb2294efef9561f61b95145f572c675fe3434a380fb8cba2460a612e86d3e204154ade32f1954bc63c0722d8006cd27d382f198ddf013848c91cbc7564af464199673b795f1ee31b9b17ef172a1765517230b9ef3529313b110b2f495b2d0b5833a5668cc3b23d163581b957239898479b0a2be7d7af98280e5bf24dd08b135671801b5d2b241053ef8ce3cf4fa43589a6b91378cd9f6ca3f755e2a57c6136cccf2de7503142b7f338a1a6c0b31bc6dcd227b1c8c0fc03e674d4651e25373dc1271f7b4741a15a94fb5a4b4f444221c2137fecc279dbdf6574bc89607097d10b6b66cb3a9bd642e4fe87741d95e600c008c6ad77d587434c4f77f5a5a6c27a47562494284a5c5e716d1cbdaea674cd1b4524b33c0d3898cfefaa753391885fbf51f18885190a2b8b3fa5ec320432cb8df515043ca94adefe58f8ef25af04c29f66c4108f4ea5fd3036c8025c4d95324a64727bb9dc4bbe511f7e0cfe21a57704a6cd975233fd20ce964675a90eb456b974f8c888be0fa23b2a29492708914c0a9b3e0c4ff610d29f802b654896ce07b2ca8093f95c943b6ab22626e12644f6a822b4fee36f5e6e6d5c12b3e9e059db32cef7806b2ab7548a0c2751c8b9351b5d2a8ba8365251d1f5d4ec2eae20a188cb75796ba51569f37adb65c2359b743f784ba1aabaecd03a557bf47259ea21de63835200ca187d84f8e7c035db6c88f501cfceac0fde13daff586fb7eaf3adf44b8ec76fad7beba8554b8b99c5cd19f7f619667839dc47aea285399ec829965087b78dd587bfdd885821959ded6ff9d2f29d8cae46ce385dd85a8f0f3350254fc280caca5aa360f7b4622157551905e06b5488ccd78cafc0256df6752291e2ba35931dabd3781be20fd6d140a1aac0277042879f009414324bd8da877c378bfa25cc8cb1abbffb2fa2adf504c395f01dc0e3de205cc5aaac7ec1c7f36c0c2e0932141f039b1812a792d752c3bdaa670f81575c5b6c9220d6899d9ba4c0ac2aa2cdaaf75d8358fd93abfc7402b7077f31d59e8ea9b2142441131116e601c8dc244b92f863d23c046409068972d32665432c3a74420cea5c14733b5c44c81099209a430e6e161d4d4a70cb988455b4ffc52a41abf54e9d57aedec091993bf8792f4ce4cbe3a5e5d6c5784d684f56c70a026c22bbbf568f5bfa36e955b8bcb24def4b7438e47237b453cb836c5da971c6a9372edcb263fa335b01c06cd0cca8bcf943ccb9b55bf64d121c7474f15f04dbbcdf64569380c88a1056785cccc708a19cddfc330060cda32778ebfe9b51ee58f88718a53d92ba847371c24a664004a680a175db5909ca7f2cb4d656d3240534567f0d0ec20bb88d129b755b1b2d3d418e438a029ef19eca06fabec1eaf7766f0fd827ad16341e697ce8ea933e9627cb1c18cc856be1e620c9558a0b3f1b5baa76bf5b773719e1eaed98f4167086266ebbc846927b987cccd70157b0fc2be799b3dbe24eecd26a7b588bf8e86539bec40fa6aeb1ba4a68184e63662761b5f60bd7cd5d15f5933ad9b66d58376e6e657e75e0b42a23e42fa2aacfef9c140612204b356ef11a112ec525f137c1479945956f10fef49d9fc14f21d0457945a11fc742dcf0cf361108e9990c5417ccfd7ef91a3f10ac3365df339ca1eb7a621caa5eb8a62596ad1263c58a485c88b14f6dfafad1c81c9b3d3f490cb1409d229c806555402edafee37a308743f84f89d356c2fdbf1e0054290c9197f6383e4ea6e7c0f932c8d4d124daa844453d65c58d1967d938cdf567d1ebe80cafe18478188836084f22ee20e4cddec0160d490a62e6f3c8f2e3fd40762fb82a9087c3e360b856e815ed7d50c36cb4916b787bd1cca36e7ef97bf85a96222ec0f978babc646551ffa37c536cbb83aeabf9758df5dc5fe696f62a9b0f854cfa7486ed71a570e0be691f04cb4de70ffada303f654e4137284cbe7021f7d0ef443cf697246d588b8cdacf779076c5c14ce26f59043292320dd014a65e3936e3b24e121b0e4111db3b3eca23ee24bbfdca69920ff5e86179b4256d91342166a1cd885827954f0d01744ac8c1eacf230248e5d46dffdc5ddd60848d1f8923fd7dbed503435050a4bbcbd98b16814030a4be19875c7c017e7700b40910e25ba2703f3d4027029c0b38a943dfb785f9beab1be4dfe9f00dd6a43ab75f3e101aa2c1c2741ccecfd8c9f50df7e521541cd81b5c16106cf66607170b1fd664bc35b99c1a2587da50437047e4a74d28e1482d17ceb92fcd82f0182eb5924a0cb6f163e2ab7ff314b65783c7e93faa3f3a339945a96c7504ebf74c6100a81e85d264e0b767b3c349ad6b5749f93ea05e33f2409b06ef9aa55ed0161f0028395772ed24d840d7b3bfac91b507de6bada463095d30b9c6cde80030adb8b2b80fa1163b829fef4ec374202671288fb002b89b41d8169033bd7a87f97945fe47cc1d1494d45cab65a7495179a70f4802eb74787b23cf7c8583a5dee3bdbd67584bfb828365ccac168be13652d07c89c49f3b7cdd34d57545bf5ae5b01853c0c810abba8287707d336ee6cf40f86c7adcd707dbd27ebc150cb768a3573f3834e6d778a18d71a4f58ed0c8845f8ffd2e85991d9c9139b1ef9e5628faac9b2434cc44af50867582e3c7dcb7377555b9ca17f4c738b96b9c5e057c6dae5e96afaf999fb48ff1c33d79da3b6dec1ace09c4194ab96dfea24ddd8fba3fb11b26bdd0fa6b3fd3397cd8d3d67f4bcaa2bd4cab4e38e0adbca1d6d2bf9179fe17d8855399d47ff334959c2372f3737ba680ae80f8d4a88b82013f257217ee3af2299fd1176dfed8993e052f556c5e15ede1dc35115173ea6cad41c12a64d48e581b9ce65011920fe83b171991d5725bf06ffd656322024e5cddaefe455c885f6f57ff53cbe75b548aae134f72a831eaf79279936a096d9d1ef365ff2362a9b66f455fc77f0a74200a79bb8dd6a58840f2ea98457bd0a88ca0e3d8c64fff9b45eb5a27ce2a14cae6a4f4864b4bbad0b5d49adaf9cef0e9d1dcc77ad273e9085b21cbcf5529a00d55038f74dfa3476f3bd3d534040271e92026740dcc994b6a80fb0efd5accdc071edf391ea81401a7e494ca39950f1cbfc65c1294b90aee481615a0aaec8a8035e7a7b24be22204dbed7a2ff1271ba2b0fbad9cd2735be1a8488cf24efe775976d7e8072302d5553f7711f2fb12b1126eddc605956449fd00a962e71634364fd3f0fc93c803c20248d3f4d13a332225906f908a33f0320ebf40160b98cedd3757b3d159446248f653a8798fbf821e532b226fbc5bf74f65c0d045d910d1134e0b705fdbdc02b2d35c25cfeaf72674de023dfba9acc34e572d35a589919b0670b78be77e87cdd0998a6471296b2573d7d04bd365de6b1a05b44d4b70abe13aee86f6c88c6d51218ca8c9a236adfcd0ae95a9b1ccd099cba04a673bc366fddf879381fd49dd4bac19c0c3aca24cd1f874473bb3e967f580101e45bfcb0b6e524ae767fb5ca8b58ed798a09449e2a88e2cd3cd983c7c93d95c3cf0d190b714cee8dd439168e9bb585d22772544c83741652a8893dceaaf7b074169d7703142452aaaaccfe1beb0c74d9e5a802b51e8dd39b893707b169aa9bf1583c3fcb23c545e06c16e295efa953a14ca329ee181cc6182f8a82207bccc4a37de2bd899ef3e950e45e40f8a20f7ab607aa93232705f57396e6b2b947ec0fa8ee6fac6b4d3d79a20404595ce75f32ceb55a7efb6fa2e8a2c351dcdada6495c39488b54611db6a4cf3314da608ef971a2788ee54a2725d54952a9815dab73524228a0e2958f64f25ab1f4b483dfd59aa338a81898e5050c8207537f6436d1a8cb980e1765eb946dfd43670264eb8cb6c4acad2a3d27d66f7ca1051a8a7b1f6f12fcf08fb3d9e319967f3e1488769e072cea0abc1de37c7a50c64e297c2b023d826f96915a5793d2947ec7936b7fdbed278e6aefc07c05f5427011b924ef94e44f80cbec6c6c842326d54176f4fc588a2aa618d8152679ff465551382c251aeec28a856f1c81bfb3ab5fe699c554359df9894ddae1df101143d6a5d394e347d8422eb9296548d6ad078b999d44a754cf2e0e31fc1b27f2dcc35de6e4ee4d37691d6379c61cb1dbdf82cc7547423a634572abfbf456055a8bd8bd3fe29f0801079d6ce83f80cf80b341ee563e7226406e775c8ca73e74602c7c6bf69c5539fb7fe933b6c3b9905a107df261275d44d7ab4b26b386124b3ee221395f47e26eb435769cfd23416745de6e1e5504b0bdde235572108463bf1374a03d81a88bf0ea089e436084a8b548a74c9a2e75356c5675d3e146d3131433e671856d01fe48cd35543365a6e27f08ecc11ea8b10d914e20bcf92d948e540601a34474213587e9ac2b45c60b224cea498064202ace8a68f512f8757e330f3dce14c86bdf204f2225c964a674e3b99340c220360fe440940374b5c855e43f46c28a4af1bcc8ed2a68752b94e772b65012a38daa61a71396c474d942e0297fdc2e1c71ecaa2f3252d9e0b70e3ee312064c2f0c88c9c8af62388ee0ae3ae0fcc56a26ae30cdce8d5e45e9952566ec23241f164e87d7f39937f0e9cc92f58fbc63fa28f733b0739eca6fc49a95db0048fce102c551e8b6db25bb58b9111e0c3afb9becc0993d685131742dc806511e54de1329ba182d975c3febcb5110886eb259fdc67bb2c460d840f4b80ccc38338c82407cc429a09c3e282d5b8f96868747237cf0bbcb78d04f2a0fb06aefa5af796eef8fc7e899a5210053ad5ae2d793a7f6970d449b29ad0c0b0545f861cff572da1cb42fe1912e29a7c52631a94addc5e05907aad0155d6148dc7a5637328f8b6482491d31d88fb9b3ecb42e7a3f96dd56566a63cdc6cca29ffe725feb4d826d2fa4b9dc2eb0f40a52a7ae15d5c9554c890385d1a1c91646b884f2b57d318a1a9287ef09549da1e16cda5b60bc81a484cde85bcdd50d5d2571e47aec496c8676b45bd1f0d5642a3231a47a8a97143246dbc4b446d0f55d2f3d2860ffcfb09d8b695c0ea9dd0199789152140bb5a33374be79b352e22158b02e200275315d1ae93188b69c322e79a4853f81c3ed720c2741949a0ec236e54711ec20a9b610a33e7630e222db0b1dcbdc9d0fa1641f0b202a9c6973e9e505e534306066807a2d1a6a5fea444ca29a4ef69449e6aa64dbfa6229c4f5ff8d674640b9b516a7d29f23483e3579111983ae763a6b2252632d2fb605182e91bc43a0c82ebc389d9c8a756e855f54859c7407ae24439d14107c2b7032219ca68286561b54a7848d4156526d33ef04234a8ceca04062ee0dc6bffd306bae36f575cd424078a206d7df0e8e6c1b195d629aed800603ab59309fa5256264f3dcdfe79dbab75be7eeab31f6dbcb45d624a5fdcb33343657665c60787d5ee809d3d5bcc29862ae0218877d18084c41dc409a96d4b5ba47c86ba28306342a19931c1bfaa1674a946b1c21f679282ad89ab4e8d5c5e8bfe59b38aa48dd69f8db7c63e3924449cec953f877914ee23dd5e6c4798c55ba18b36caae99cc86501bbb38dca2cecf918ef42dffdedd3d6a2c21e6f88b08238d2e259a64a4613dbdc4154d998c2c2a6b1eea5f8ba7aa1c1e9ac8b5d330c7439b75df3cfbabbb39a5dc96644635cb6540c34e6f4475bcb3b2454b5f6b83e3e55413d62867f4efdb7f4b37b83e098c2595dacbdce44ca26cb209fec4f4e8bd9eb3981715ad34e506e2a5f038489a2b35c5cc3b9697f55f113862a917620716b92a2da47d5a909ba7c6d74283390d0885f28f2a5a169e5527c5bf5ef57cec7b4745a9ebb052ea638cedc4187a17c28dc36d49f935b8765ea8c8854df1836158dfd70e5c2f59d752d43afcc50cbe2656f2880b9690491e7d06ef7dcca28d5930317cd42d63f7576cd4e40593ef3e94936eee7b59290ddbec4660f85ffc0dfbd72605455bc0858e4c9ec2ad48aa359c13f3564cf72abb6a90a8872934fc570c9956056b88c507883c4bcd4761dd1657dfba7b89b173b05040a9acc64d627cecbc5118c4ec5681268bb78aab4192222a22ab1fce7ed12fec6b9d7fbca6945d9427fc9529bde7c6509cbd6eaca00cb51a3d77e1ff67f2821129b1eb5cdd308907bf3d48b7ae67b3570b04fb126221d619da83ac26e47687b4b1b4f40a3748e7ff6609408dfa0f3accf0fdb15e94847f9d9a4d71588715c751562ee91e545b43dff89c228dd88d9c8565d2fbd11f5d8bdc75d95c2ac068d677c7d06cc68736afcb7bb8e5fdfebf46756b5135a4cd03e4b6e80faf075631d72c7a80df957ea87ac8dc144a00412c518219aeede090d5267d03e05d865dae57f5410b6c13a025990e3652113dceff65ee1bd4d5835c1aea3109832640a7b3b5ce2e2ba500a25010ccb73e1bb44a95afdd02827c052c63a5b53463f2b5e576ca89f36a50a3e1f06130a2c5cab430d427f13a8bb3234639a29d10e29a2bff4743a17da3d3340861154bece53672e2104b731d03c3eaab0aacd1d66a33d6dbf856bb320204d5513c9cfb37f9d414eeac2444aa3edd42e308650fbfea3df28c2376c2f1fca8d95ae3b79b2816b2551d6d023dc5b55e564dd79fea202092ba3fcedad509b776fd71b6d741f47cea5f421b3d58dcc8e1433c533c54f034c89048619dfa896f79d47b6a4eab3ef1b819b697d2abe6d23c284c86786f2d290ea950c18fb9bc3f52cdf360b02b6531e94092103e536f926310f7e6fcb57eace1897ce89f776fba69ae07084a26a7ea349454721e6ec9be3f65ddba87d25f50d19a5ecec9d7a60c96aec10f1d433ed5147b6bcaa1e6353d53c3bc5ecc50507f7334303195c4a2e4962134cc425b682be4d61cd8ca252b765413bb42a04c038f96d834dfe5756da666f970d7ff36b6dbc280c32a85abf23f67e03018309046299d8f9b14ce5ea71e3d172eaf7db0c7b6643194e759937a89bbcc3ccaf0ee370374e3bb3773f012d5dd115109b377337db2f31e3582c526c8a413e78ea8be2c5eea90c0c506cb7090a09c10a361be78631e5d614085fe02b1c134088309e9e7a7da0beda856e1b01d9ddf66e8b78253643b1b34b2399b943c0d5ea1199d651b76d69f6aef7b36eeda5694d697e84a26d507a38d4219ee8aee3f953ded9116e43b7b3fda3515709d9cd15687282e593a8c8c3c361ae5b6a20477834bfb27bf3f1edf6c6d5cba285ae66caf0cedb50cf91f62bd33440444c3fd7be5e1a9b6c1834f6f0eaa932b91599457cfd9ab7e13c8e4166161e0335a31c41765f187af8666944ce1ed85efe94d2bac7dd21278ceec2c5615447da2ca18f8bbec1d70f34840cb1aa0b95d3869c527279ff0f9d782e4a278e7d84e2f8c2e61c1390c1fe63b7313a0e9740c2514e09960a652e82cf015d34e02702d2df1e830fae2c1115c73a369ea3be9d32940c6348da2f3c569acb3bd47056d714ca25a912bdc84b4fc0972585997491cbbdf9194a7fb04a5d7c868146ae3441d113b104e816ca49ac746ec14f21b22c70eb6b200e0cc4f536d1fa457e70df1c3e399dd3414bf6528c1ea16e2ca2438d516a15f41f905e202177e6f8ebb86809dcd082625f159bf13748faa1722d0c2a917d8623c5f9a72257af4fe37a3e8fa27e66462fa62ddf9896f12add3e15606d039d899aeebd58b9599a1feb92b1c74830e8fb901cfbede2a1f3b466d651a1b0b896b525905f7eb1252842ac6330cfd7c084f1fb31c8304ae1a5cb3f43e81e7decd8946a9c0ee0eb1e96cb57615722a760158c57848eb609d5268c4058392b4687a52005a22fe9c3aba00b2960d252836c795c485af6acacc5cadecd6da585c222014b9ebdbcc3448290f1831d0107a963fef4c588fc424519b12294419e3e168ad8a41f450269f6e389ec793736f72d22d91adfdca6a90920bac502eba77e824adbdf6abadb4fd771173bdd5f3e594ce633bc1ef8d320aa3fd31006a82cfb32cd04347e6c8693f0681e5198e6745a026637e1888a0d2efc2ae0340364b757f32dd78292876bacc81b28a08954d42d8d95b0be264aa17ea7ffa12df34c591b3b130f5906105cd99ddbbbeac0474b54aa2f1a18ee54a03069264956c0e4df3bae0de93b5f57319edd4e1d8169d62a363386f5f973a9f367ba53bbd00fcbab993156c006ff3c7c2b7cb3f4dfbef7e89217bb205694607e6fd9db3bc9d460e6b634cb3a67faea623cb5f3810a6cc319c7ea95cff0324842c297c75ad954d312d4324dda9ba82453d28bb4abe96eac417bd81e64dab49fb6a066002a3b7429a6c813140dfed81e31eab4805a3444f99f5667dc91060c596e5495372d1ef386acbb9180a5e489fc9f0eeeacc3ab63fb4438930d2ce3e152c4c2be74030a550eb18626f93482f87f1d4f1e8b530fb8eceb23ab3b587d70dbad12667afee4a82cc01732f4e09b6c36252fabe8a5be1ba866a63d1dc15526108d5a86ebaf0bef45241f3bdd7616848c78c318426a66d85099d4d0208e638a8fc0f0d8afe7860e2d66dcc82c444884afb43e35a5138ef515b2cbe85ba745a1fda1bb21fc7dfa7acc7022f596bc398c8845900f7c105f1f8f0e04599b2e4c16c07a6231377d7b65ed8029c143314cc9632b37995be3b458f68aa4180f989721c436d73ff0d0b049d7862b04e87088f3eeb20720e1fee361acb274d27b8d5b6fc44dddb5cae6f98f40123a56a08c4313170487c4086a3a5bb1d53364959c0fb1ee91f7262324b53ee95067484ac5266d503c9631a5a527c2076ca5f00c4d3e87b9ad8537081ed64c1808f8e53d34135a179308a109217740b855cdb3812e100cc8aebe0481a772cd4e8f7850e8da1f316e18859b1ec69cce5fa8c15601e5ac970f91b966497c4284f278754b3c98348d61fd85cd3ac4f74944530948af75defa0e5bb094c93c5bf3f7509fea5c4f82669dbb968f0ff2840d09ed9afe1a47c2032847922787aa933e2bff97476521f15a208ccc395921949df349a501e7ab823a9aa28174c112940088d81b33e73094b8c5cc7eb983c58d9e72e00e29ca66faeca378e65ef85ff8cd8b5ba4e66a2dd9c0741119116a31e01cb1d92ab719ae1652beef15703a6202f0cea481063bb91253527275d8dee776dbbb4223e065a0d4125a23d1f893401e48960b334c3e8898d8637cac1b508be71dedf2e56eb86577ee78466e4db3613e8771a06111283ce830676bdb55af3e6c33329e864f25c2cda545e30511d75b96e2ec13522818daf408ac0d39582c767599bd3cbcf264fbce43203718a1c0c2f1eb7fbd51ca147d35fecd38769c09ac8e9c9a294db668b81406768dfa0fbe78b04954f47a443d475633aab6326c455956eda367df80228e6cf221f5b7ebb8196d21ddfac559352019343865a29733f7d9f90337388095c2841b959c85de1c8f7ef3a04d690a259b7bd608460b34649cb571145589cdf1da2b4409d8420495ed8e61a33976fade3de357f557c15cc92670beb7a6128fe3d8dfd5177c139e4a3ea38e217c17f5d339bb5820d76fa7fa5a48508d7825892393e9e2ea8070719f58e4f3528918c276406f59f4165e1b12a1e609097a533bfc67097819816f4174e77061c97915731576372d221b441a07ba63f7af2f19bef158a6b31d45562453808f30fa1be06c9d6c97df4d9b55bcc5cfebc111c121ed9e592a28ed1af97f01aa5797ed154daf9b703ed103d2005fe9918ac319db27f04fec969dbd2d8b99d5c59f422ce0dd8eafa6e6f415b8509344cf3686f715a1469c4b327103e146fd4bdde60c0c9d1739002196a86108085c21a92c7d4db02c36c91954fb3135ff687218b1d0d374c5a7a9f261e0c1ea69b744e8ab399b7af88022896cd67393e35ec0070a37d61f741310cc82ad7e0657241c05b60792019e366fad92ec7ef3a810bdfc6f0334ee142dcf0f00baa98d2d8668beb7b517c3ca934d61d5eded57d2e1cd317eae6c5b1c22fa90a8280370e3e5b61adb63930cc59c16e63725bac6365c20360c10a4021063ad698a7bbf810d3d436e7c502ad9cfea8953d401e9fd3a82a94563408bc9671caa806e25c1772cf78ea6a5939ae8543d112bbd4780735bf38ff12c3f2ac787a9bd6e033ca306d27ca3d9f458845afa83a7eb4fdbc087e75433865882408c384c1d39917d1b72da9c2f0d6641786efcce22fcf6fb154bdf35d0eebda94834c416c67467d6c79d344ec41968558ddb5c79cb247b79293078ebd70cda722890adc25a2ec8ce58396a14c29de9e16620341d9de08fc26452e49aa29991fcfbea20ebd106c253da826e8c9eda514d22df2ebae0ca7f2a3716646e77e4789dae5c1e3369a97e127395da31877663011b78d7b01a4c1993b49bafc43c9fe92c9652b9535d55f249fff8adf3d1c357e2dee7f7ebb8a7d89c26dc297c3be81b3548d9eb983627ad8f8609eeb895a4b16afb7e425fec836c21c559fff9a9dee720e9e2727a811055b85122715063e778df47778e78693b31262a4bcd927745ea7f2335fed75b111b0091c0be7cc849f11a92937355a2b74ca27088cd07531078ea432cd01c023830be290ddeb227e73be3b7dc58a2ff76ff9cd285be84426420d9547d2b47b4ab7440aa144681ab1c72b1e18092319d0d0f32fc129a0b2f6530f1987cc6c5003810d818bb245d40d09d02a207c395863500afd66f24493250a7bbc4ea3647fe2b086d44af131ee8ae42f3cbb8129496c4d86d2617d69ac99908cd9fbf9368bb7a311b61ec0feb1b456cb173447729dc18cf1094a50817d897beee78f52a330baa8da39549160de78f6cb5928d13133e152b4ef1d569051a725a538d8b9465472a7357961accfb16d8381e576e31dd13e9abd57d272a2c70ecbeed23d20e5f389662c61ad4523515b22ad83667e8de6f2068e430f847009f08c798e6ee0bbbd7a7f9649f29f72ec386bd6f5e46544364021fd5fc704cdceedc77ceaa0d68682abb80ac2409a641f574b896dc57c1a44fa03b37ddcfa5028545ced2e62a12a99928f37d16718707d576990d04242c30fc462c51d61a72b0550b6a613c3892feaf649d2b11ce64db7951bfffc566ad0ae148054924e6130dfa7a0052e13fe18c056c3f6fca6eb0de7becc36df7dc2c3079e89d75e584893e51ca60fa5d6d0540eb285d8cb052c10dc5899e96d9c94b30352452354298f4de02483fc3207e04481ad0eae8ece6300811b8928e28fdfb3b2aff954616b5c115c1c749b56d4d1f4688153b82ef0f1dbc2e5bb02ee84955803898a05a6a2c18167a0f501f7ff8da4ae78f329aede5c51b993a7bcc3a93e1942367fe2314bda49397b264ccddf3396dbbe056738b540fad87f371c9f3720c5a8fc512b155d7f6ffb3ef8e10310eda6be6402c9bea2b19eeb91d44c508d16ae3c8c1845a85959164b64f37d02d827d74733b5cb40257a6b1e06e57036199a11c062a95cf01903bbe66fb09a0acafb8d1f95b58d95c1fd5954f76d3ead038a8fe07136d9d3bbb610131cc58afca95c230e7699cbdac0bc6169744098f0961b53899aa17a3a798e20d6701b7de12f07cf2f7b2fadd86a166d6610f3876be65296e8a7765d3cda99c5c203512a146ed8686c4f0507e46cdfe0b008d65a23c909d4bf71ce0556223e3073e0c299834922f3a85e195b54ba0e7eba3b2e1fa8bdf5a6039790a286f86cfc23e18cc911cec9b44a241cc0da17d90f50fbdad9290701c801dd6410f76d801ac9e656d642935d5c2e36b92c0b84c18a38a843074f8a402dcf36b81be737c662b3b86ce09d8a1844e225ec7aae2936c16a2d375a6ec0b0e26df4fb0f26ffeca1a9ec43a541ba277fc47d1a899483d6da838c06e98cf02716f68886dda3ce67493d650c80e6162e5f36ad7669ee836eaadbf5bffa0b25133053dfa6e786784803b9cfab58721979c8d1b6042a4cf7a2152fc3096143f3f9df9eeb41d48241085524423e81229765428f8672bd0d2b25795222805b3d844fb5238b62e0766fe4cc6397c4840c6fe39beab799b0a003536a9ff124469f777d322e349c1246db4ad3ad5262076961334291a5e9c29d529bfe45f124b423d65e0dc32a3aa4d6fcbcb539be09eb89ec008028e49dd129a705ae462a51ca239ea0ed2528743497c82ff80da5b939c536664ab11221b2cfb222f95655d5cc1135d499c411cfbeae783e8a83602f01012c319fb1628ad2765e0f38c81d6e926195f939c0b30c65ad3a439183bcebb51ae1fb5121d928ee02308a296ad1e4f9431b96e881839e5dc8b6de58219359f0678d58f3518b612f53222107653f828fe8c0bd2b765fa4781f751be163449300f217bd3e2bd39425c9b76ef2080c0eeb4c000253e7b0ef5c730f9701fc07d35aa8526c612aca6c846dbbec0b651a1c30e759ed2b59bdc7fe13b2e28d67b4a77d4c4e76e8f7b0f9042a859aac137efee5bb5dede85b2a36082d2bb7b1b4d8a485b594d5480b945f1455fa7604cbba26c3ae74d7f5bfac279513a2ac417e43ed6177fc765d56833e626c5361bc8a677f027c5ff6a39fa13d32a674d00efd5370499a53bad4d744909d522ff11b9d0605784993d304b9178dbefa63ef77a5bd5b4f214b850ae241505eed035e64f52a63a328606badd74d5d0866cce08e4daf89d5db4562250c02806c5173d1d70a36d3bed034374f288fd563d8ea13b15b9e67b0427252017f6b6a14439517103d889b4fb96d54b2a01e8ede139b82d97e48c65c51e5778a0624d35063d2215ec738ce5d45d75fda3d1869cb9f3d1ecdea9478d9294df00c0548fe0915807c619b18ef3fa02481df113c53049d4dbd1dd191601626f455df4986bcdf8483292e91e4aaf02dc792d84a398c4427dfa66f51d7ccfbd324b55579167341ca301ab7693cdd8398c3c13561a8c7586d7db81b2d41bc7f5b34d6809b2f3398e32b7243c30d2aa7c956f6722040c50ca62acdd1a6e4a4aeda94054b6402312291d3ff1817bd7855bfd23241507f2e8a81dc6a3ab9eb6486010d4c7490d6311cc04400867a87d1ba7aef1c19f7cbf078b4f6d30ef8cb4c6701ddc54f7e34b1253b90d5ca990eb56329fcb9bd2892660f179d943fc21e35b0ed2af0681c2d0b94ed64200e13586642d9d1bee820c867286e8c666f6f861e4854ad1df8feeb391f83326af5e80c45d295eeb59d53b579255cb075f9fb50badd2850e4573c5689186d853425b54d036cdd573cb1804563fb02560d89c5b747c60e3d62f5acd797a2b191fd4b496f7d7058d334c37b9b03c61b42224b47b2f76fb7c657e3ee51bcb7aa21d7342e9ec176645361a3079302151c3916aa75bf833a3caaca46c4b26d7a15f86efdc51132c231b4238161e2c23abd4202778f85d4b6e3a539b3e7df99a3a15b13fa702d6e3b2f1c68e34a1a5b587acb62181997105470d92eb056c9c986c21bfd48d2576bb773aeb566ab8ae576204112daf1a088be437f94fd69f407ec569e0449b16a86ddb317352ae401461123f7d8f01c7d6f4821e5dface53a47adc993a492cf4699f34b282b35530bc7cda76e29b37e9eace06a4c3f2b119826d89cc4843614598aefbc4660a6145d639ad27786d300cb7acba8694f09998c20d4903fc128c83455ed31f0cf980971e54202ad47a981286d123c83f62e937c98020f21fdfc67431c179f9b955ecb4b28201172b589dcfd6f7aa3b5ddd08f1933600c9535ffcd07e8fed49c103f812013a4f5038a396312b23595033fa4a37fc05b23c17659f7a4ddf358327d80aee50a7b617c4677be3d84181de8e7d7ada5b32d71d3174f23466f8c464333c3f9475853e9831430a5e97a10e8d5beebfd0935d20dfd79ff0bfc554343c8636deddc5b52904be3db05910b19313e5e4f8a039f0f660dda5c51877aaa5b595a4891d9871514917c5b8d508539bf1eec23e162666831525b919f29aba05d355ee36aa7d0dc4994fb6ac641d42516bef11e54a8820f9dcf846d6e87b034598fefaf9a186909be09f54e62c743aaebbb5f9b8cbc23e7af2f5cd60f3f6e8c469c4cd6f61fe38bfc5b53609680c2a7f02c777dace388082b4a3c43418c070f4f5cd073e99b6aff90b5c37d67d3fb624d60ad18356eb865f7df9407bd334a40adb4aed84e7cfff94a0ef2fd9313ab28b31e963fbef91c9348d67d8d879613e575b8880b01a627fb6b4e33179719891843419919ffaf8aacc4641bf25586884b430811f82ad1d7333ff2d9fc061bd025f29199623d201e12a137a8fd72b319744b0f469174cf334cdaa96ec64a62960b439797a08ed57e5e8e607b0ecee7ce593287a138ea931589d52db47f843529e5602bb99861539c5b10a361886f039b5c13651d8369158aa3a64abb2416c0ad06ba5e37efd42b61eb8ddfb271880c1744daaf75c3bdee85ceb6faa53551cf7b82aaf9e550499fc9683078d6fcfa8935b291945f858e1705380fca816723047a10778cde3ce3f2f4870d8f79f9607855e7719c04f287a43ed41e290883d66b6abe5aa99a8acf0ee604e199b34a023eff413f91d61ccb72252e5f3d6888ec30c99fcc72937976e8701eccd5bbfdca3a280d9ca2351f20e9a1756e9b8ba3f6b144479a4124b545d8c1e78119408a051cac6413124d4d83e0b98e65e179aa1d90ae3a6653b11b483173a5d16f8d0b34bfb32012db49b04d7e786fdeaa963a7cc5791bd15d2c267081de7ed538aa183f1f717c13ee8a7aad49e946424e97f9cd8cb1528d009cc4365b4a5ac0e5d8a5c994024abe68de4507c4852d9942be4fb4b58c9cb8bd6c7d5f25de08f31bee4488d57090d87b2cee47bc55160b8c9638dd6f233a0eda7dfe57ed4a7288432ba07f2940e3d3244cf63bfe1c2d786d1c72755add7f34fb019b033665b59566fac3d783f0a57bb3e557eab70d56728d6ac4844b8b47e9c1207bac305f8b79eef894effd1ffd2850b2a521dcea6d1f85253cb857f70dfe35b65d67ab62cd5169130a43dcfa08f2af788b1c36fbbb17732fdd30e0ea4228ba007323f1dd2ca22a190f6493e9c31a3030db42c661f1c8b8024f434344520825f3e0f0fc7f0c79b6281985203ca7060f3f74c1683cc312ff6b1c85f5469833456e17fc77ba731a981b5b0efa4e2fa4ab0e77b127b481b0e7db055c8679a4badcc9aa9a1d5defef7a21d12de18451924f0f9391fbe9f4618598eda1a9948f30657860ba07f8bd8058505bbfd0063ee47978ba5c08f90be5eea6fcc6e2042e5f1eabb45a7410066312d46816f4e77d53b86a766799727db84c579c737438a7d7b5b8c86845de686749fce156d365c9ca80e1619063aa7bfecd68725c8cca420cd7a37e93679e750a3663eb676d2f6a8b81ff367dc8b4dd5ddff78ae4a0a6326e79475cc37c19cf96892184c45d71d1251d33b4d96eef026a358f884f2e7b8fc253107c02c11276eefa0531c693e65c7e865114182b64a9e40dcebdb31b6c7664bd8c6b6810893d6eb1c2e63d13bb9665839cde015c61a05fef288144fbbd22f90c2926daeaaf89757c1998665ca622b3a020deea3275374a3dd237d66a175991b37430e5f2192067c5338e92ee72dd09721995d0786e4c79d0b1872901274b0be2d00953d914555e219e293f425d494d022a78138a0ef29becd7af20498bcd9ae2c16aec64e4b37e8a08d55f1ac081b40892ba2b92168f54442088c69e40cfaa0567688ae2aade84c7bce896c8ef3d077b0a76454d1f01d50b9a2e1ef031fe06418d36f25b1d7fbf615a5c13f53e7f236733430cc6bc7f42b8be83601936097d5e5df1649d2ef17eea950a88cb323a4941151679e576e11dab4948c339a26f26f092e46cc6466fab4286bffd7ee70f4270b29e20f6e689050b359d5287d07432f114678563a0f9928599067d5120f3be9fa8ba1f5ff8b5a6cf7ba50fa30842ce2842abe4187085b215403ea9e67335dd995949e794fd8b18e5cc4cdd957baf6c9697e75e741ce491057b42e28475b81088b54983e1b76022747ff9363a29bb865d8ee9a78368c59b1fc9733e33a5b19da8f23f97d79c04c92aeedd66c620ec7b833ab036d910b0e74d56a446ea228415b2f9363e451e7aaa9b0f226c1767bd15cf4bdb0ecbaf38b4df97e79cfd24da8b83b1357df81999912b5b37efc47f5af84db13a86fc3c4f06f846a770ba758315b7ceebecfd7d00b0076b1d91311328f4a4acbd228b513e590d7bc931a85225e9c927f222adecdba28ce50ffa912c89efc7ab7715660c56f351c464ff21f27f4f7b15bf29245ce0863211a7e5dffd795e4ee4d5187133b82892db78c5eac8a8af89b2b3a2afbe78d99f2d9fca0c21d70bd9fc1b92e16b9c1f701645692c87bd75b74818c9701458dceb976f5cd5b9c567b356ea2a7d2a2a010169e86244063959f2068cc4c01f05ff4910f15753006f28d73b8359dd214db782bc6ff1cf7a4ec967dd5fb772a4cb1df69db6eac342d3229aad45441503f1cef428194d55ae624a6dabcdf495cf5f4b5af7282e558c94483f1254fe648186ac3799c073390150144be555cfa5d24e7f6fb8737b72ca6511e4d99e173430d972c19d3353141dfb7608353489cfd0f52df653562773fb3b9240f5037767d4dcbaa4357064455d05767915d4ed52b82c8b64fb5f5ec4c833611f87db5fd62bb51060669af6991bd2edb05eedac32f4e98133ee1972c0aa34198a690ae39250269ae0869a5bb325e1905ae0b37bfb7b46b2533ef22194dbaead9bb6d1f05445b32f3b5a172943056be2fc4c5fbec11863eb7c4964f163c1e90bd281143357955965531312462e6524fedc86030113621f64dbe2099823433d1305c88208f900a839a8ed66823178122abc1cbb8f8026131e8cd22070b9a95bcab6347d604be7c21037c0ce46ddec42fdec617f7086e77e73260555b5984dd5a9c4f0c689b4efaaf8de8e239be429a808ae2212e2393778a9010e17bd996c022f3c8ca4ac6661a0692a3cfc3a36d410e9b82039e82acc408ee2e2836b46bcfe1a706378e55e49aab026b8c4c08904ba668c248e8be4cab70da264d261f511ca2822dfe7545540da4c88355005801c168200619ed8c5ec17a5b75c03646d6494904d267a3d967669b471e97b3995fe3bccb5c6eaf9b766b38a475a0e195ed17b3f0db8a53dc87e65877b7eef925f0df6b72fb7de11694a18ea0a2ec3cc7e77243b3b8943b72ce16e8f5012f41130b584841c44e69128996443664a79db7a9d26fe0f8d9d3c8624808e14aa53e1855cc1f768103bd1be0da75012159dc97661b99ded62246a8af1ce6a497187bdf909fde7abe9f5b65c6fa5e2debedfc6506bbb0f38093d4aa4521b1bff1c13ca7d1f602e4f46d0d398dc103abfc3b91e45873ef9ef1c155ea8a50c6d4efd8eebf47e3abce2ecc49c10481728808ce9aef216a56999c4cd9051a0f0fbbbaca8e5ba8b340c546623c6ba9c83f9c5b57e1bd06f376e6be3378be3bf5785c6ab7fdb7cca755727244c1b609d8be5150659f737f8c8fb83d553ef962bba912e7571dc60816a877b9c2089d361e5fd05016307cac1e8da8df5d6ab6af8e401d0611c59ab5e8acdd8569b6a3c077e71f548c2aa372f1bbdbba3415158e6c9719d6063270dd8c09e67b3df31d5d664713c346524360010336565ba659f9eefb3f0e0ce1e130ee93ef73c85a6a05e5b461dbe9465db596a355fffbaa41a9cad17b1562acd9dcf1d4b8ba283dbaa5b1529761c660009d274ce85f702aade8a81ac20ae6195c0241d0f94fb4dae1c3f775471689c7d262d96fe61a3736274fe42aa6e811ac3be21398c5e594f0cce4277a44b8ff2c5cbeefdd8dbb8744238ee19afe08e44be67d045542bffc1e25a6e8a0dad85abde1ec0f9974a40f503a2feb93a0b97179748b31fa3ba3a4abfc04d76995d278ad66816a8bb744d207590e0681d0ab2a900fecf70909061fbb4e4a4d6255830a749d0024b872e18a1dc9565e87323d9f89fa3db80359e51e8eb442535c8c53c65dba1a5617ebb61f231e1e6a2d533b0e5f555c1b938d8c7ce7e92a8c63d870298a4ffcf916640f8d986b91e56b9809e631a57e1f2aa641c74cae70de6c1b66ad2267684a66d09cbb1a5bc1b1ebaa1c5ceb9557974d45625e4043a8223df0774a7d74dd29c94fbca64129c74bcf82aaf47cbe1efec253989d2b3af5f49343b172f4cfaac147461955a8ea0b16b12bb2b1c2c73912dc8d3525ecc8f95d3587cef1a0fc33a4e32c0af7b72f32987570153bfccea09208885a10465a1637a5e948862b998fc9ecce90ce7512860812066a9855d8b42453515bdb0ea494f292676132f4a1d0d0b4de772b330d390a7967d3978ff5c2eedf1403314abbe6f15ef753025c19ec71d58b05ac7074570a21ee73c59024e3ffc3eb2f90897dc9528928895530e1efcbe7ff3a4630696e5ca25736aad97e88deb97453a6c6096da8dc51befc1d03bb60e50fe17dab38d1e4bb0d1c0f9e26e34576c461838857d8a3f3637aa8d89c6ca931c7b2642ba6beb1a104a767f7aa4c88f6ad03a9306e1a15804bf54c5538c02e5ab8352dfe1b898387b009ee74a04a96009772fbce1d988005c425c8db5fe5a84d80aadab38a043b5864cc846dba1a2204941ce8477e38fcbf8c2aed7ea854ef6f87118b30a16d4f1098b195b23d90f51ca5fb91bddf4cd384be0a2647fb6fd6eb11ef1ec6b0c69d2dcf7f03026fe115171e03c5249cf32069fa0e84d05320e02255b5f104ce6c82ea57ad720aca455a773d1fc43898958d859175e1332b254c45e81ae63f6d8e77c4d53bde8af3efc2b6d554606f96fd7ad5b876a668420159f80fe76d9f2ffeb7535e7dfb4f779f6db8ae748914a80c76f88538683773129550e3e56993823409dfcafea41b03e6375e1ef07a8760dafa136ab3ed8eeacdc411973075745b7958fc8bf392b354b351d621231e6b18e14b91f82a1eda395750c3823ca665182267e6e369f68e9fa69afcae8ea835046d98287969bd3d4db76a1a78dd589711e4979c2e9abf41f5fc89d43043e756d629001a75f24511ba0ce553edd866c55a1c0af9f157872851c3ed4efc2755cf5154f036246b5f671bcefa2f318370bcfe669d76f33da21e6e8938641a2cb36167807f914da983b1e07dbbe4cded4915b138a5295342ef949954845d651759cacd7ee4f77004fee0731bf09083eb2f9674d536b0ed18f43b88819a98e43e0f74bf78e349c551c0566928c12fa11a40c27a7d99fe034dad7be94400b148682f4043ef12a8757b4df5b875caac2177d6ca5b6d87cf1753d182029c4872ed95ff40ddca3d9a8a345a8123b86527ae1b04d16d5a67ef52e30afb1c4c6b462d2eb95414b0e8fb1128d46aba62c9e2c9a89a70df8c67d0d66791f47f306bf3dcbf3d556e3bf60e313f00258df36f72421e1ba0028525414bd1fd2b74f3a93b0ae959039b6f179f034eb47ef3acf989edd33601a8c463801545877daed6ac3b8ce79e4273ef901948a319f787c1a4ae0419dabbef86664a13b8991a539fbe213930056b351912de43fa39bebf1a0942c070cf10f584ebe24e642425ce47fb0d1f7ac132691f85bc54b606b2753f111be2be5d45ae6fb44b55f43fa6c03ab223dc34c48d7feb1979944c958ba6113139321d152dc84c9c814f74b43d6f00126bbff8416b89f2239eb1e5ca2be8f23ab12f468ff3afcbd8e74ea7b278ea8dfae64c8a42653783a9937ba3f1979327cd3ee18e9680ce591386f9078b01c9ee99cc75845624a57d88827c6798bd7793bc84e17e119f5569569f66969a101d70fd8f25347f85cdb0376be52adc8676b82a043809463f331aae4eb7f01eae5fc710c5b549c9fafee103768b4ad00e4476d742397857013a7c55e8403a7880cb160330b9250a96ba0b02502af2483687180108ffb736e203658d6d7b210e6aa43e48ece9db44ba31d1b8fa764f0db82a9b9ac51939d4968b3f3e0a521f9e88c5fad8360c33242057a7ddb08c77783c25097a9bbc094403edf3642c2cdee5f5618a6801229f5c781948ad9726758d081a74b14beec69097d68c534fa15a1e37a6f55df104573aa57aa5dcdf8583947a5a9ba51b0426a0250579ece9c457536175338a3c4b627ede804b139f99448970594c0a20515d0d3cc646a40b42f1ebd0876340baa8b458809f0d4b5a2463bc262d5f54245659c919028de4a73e7680080afcfb31a8a5a7587798483ca15b9783dbec13f71c56fd00fc5354d6c523a78732e3b55dafa9c697da731af8e5079636912185a1412488b5abdf355a51df7cdda6f5ca2e5064de28680795b71f148dfe58939d68fd361249876aab05c7534439a5a262371e175d863a27fdf59973d32523f94155cfea4250380adce00818f2a4a16af4a913bdf81c5114b201aca6d31da10d7a811d46b67d014235f776adff645e9b6154e447a5bb827f849649404ee4c0d55b6a83110255cda8c0e65da468c72e5f441f52d4ca87df89ccbd1bea1331446df0f51c84d723a8679910e32261dd6251e6f9fddd6afbaf76b8e23345f3dd29853d4d4e27b3d1232114d248733a1fb8cd968f8a852300c9f2ffed93c93ddb880e6ec27dbe0f86f4d42150d77564218e2a325a6d3ba36ef0fceae7c786ebdc2dae09a6a89b6dfbedfddc0b1a105081bac0d24edf228d7cc2c2f3d3d04b444f5ad89ee31287ba9f910eb31b4eba594801224d08e7c5fe8146ace696fbcd3e52c5958f4fef6db4f93aa8354fe6e09db3ae3253e11f56505338f16c6de871cb79a21e72cf1dfaae5499b4b20155081787ece6fe04934452ef65dcde196f2f3ba783a07de7c9e1b3e2d3c23d914eadefcf943d49db3cce5a97c0a502f24cb1455c8186d5f1510b4cc584d2045bfe0e90b4140ce33c6bbefbded8524dc06f4d59ec36a7e56e8d367e37f1f5193d9f2bcfbdafd4da01c3bee3c9414fa86672b9e6bf75c8d30957a7a141a5709bf666568dbb031bfb4221da27d0e9711c35cd6dec42e4a4bf2d221c7deaec55854d07cdc66dbf5880522191a748cb994cf4bd8474c3e519b0fd97698f9e3e331ff41b8274c5ae52ccceec93f2d71cb57f2ed88de60c7b3e47ff5b569a654fbfff153743b028f57682132e388efad8d2ee6df83809e4339e5cb3b8e12bd6ef2ca342704bcb81eb36a15b9e170def4b8b28b8d2345a63e0522e21673fe2d076098f63408c0fae211c37d1434bc12d01510a8d3b43791bfe6499e917acc24a7b95a71ffc1f18e7a944c7895b7ebf5d0ebe244f50e93bded0251e8528aa3e2264d522b1a6fc3dacd0b70c3e9c84f78f6d02f82efee990946c095524ae0dce18ca87ac2e1e4287bf7f3fc3f1ecd81461795229c770250ee3925a8e6d42992168c389775feae7752a8f0fd2644ba976b32a96afa7e8dde2576277ca0acea3f177ed4f3b5b5311c4740b2173ace095de0979c64b7d3f651a9f88bfcddb2041c6e5b51abf61256e44b6b8b9c63f55e9602aa953dd203a1718816c2732b31d447e2e295ac3a1993ffb1c249a88b030be48e978e0a266f126a6be5fc304ecf3b792619ea3d97d2615392ed086ac7ea89b19ea0ed749b2a5164b93228a9aead5531b37824effff9bd5faad78f204a60eba9587753f5502826c45a17adbcf50454fdfdd72f59164c68f58f81abd741997c5ca2848269d99ef916ad0be3e3e50fb1fd705cf564e07a96b16ec071643040ed31474e5d43068992e416e58a7c39dcc6eb7d36629312bd1491c4b7ad454cd03293afb28a1a803a9b834726ec221641696c9dae3bad0416f4724a3b273667ab106f9468aedf7abe79d4e3ac0369f16c2d885484654980057e86ae7fdce64d10d207f59e84b8a489e72630c5ad92569e4215a2d198a01602106eca73bf7f2559ee9a3ed1e7464937e67e4432fb46b0cfa0b111c593399ec01ff74ccc4fea891cfa6bff1989c8d44dacb245326c5f84f0715c0b209d66e7eadfa126afabe11fca209bd387a65f077df30a5967064a983761642c1498dc86aaf6a10e4ebdf84491c5111a9518e782a7ab4bcb3d2cfc75aee6b3f198caa15cfdc7d25d0b56f8763ffd658b559399458c14926387cc17fc7af6a86a925b3f10c88d71b4ae3e91223004756d9f20024cdf257db8637b1562fbf680e1c4254caa31909b67d3eded52aba33ba189e715152e4809374d267226656e54e500bd520693aa53c1d65cf56d72e73acc3db33e6ad5dfac1d25552d71c5f79b2341de770c292f14f5dce3c9aad78aaab0f24000358df6a30bfe58b69f16521896dd27310b668471662093453ab46ed89ab8a73b3f8ccaa64967c6bbbf74d100eb7cccb5f2ee8670dc362d8e77d3c51e6c4e86a4f01813918b1ecd6311894ddfa1e966d01b70e4ad0d829e261b6d37825baf43655d09986babaa7ceff0926b66c9e5079e980bd2b060133f9d0385627b8a35fb1778ba9e52f54658b11e2bcbd23c3ecc8ce9a4aa6bcdffc3b274f43e8e15a681d8b4a90547b874b5989409be4c19f891f56347122d7732731e2a84439399794310e62a078e2cac6ef108c8d23245c304a7fa365da8f5bd854e709223f970742c68acbd9f9520a9ab183c54211c85db677399f9a947f26fc924b18df072cbfae06269b08096a0c723a1fb0d3cce37d973cee0dc76349938480d3d5de941352b590bd3230c5475a1dbb46cc5afdd39652c09da8c9686b3e3f0265de24a1c317cfda3dadf9218330892c654b963629df184e52e97ba66c7a055a7f4b2978415cca92f0b14272b106b2db26dd1818f14549009da1e3c4bdc68e1e03ea57b4d682ccb2c3803330d673f3ef8fa3714ee78a94dc0b49a4227906d5477c276ac40bc664aa518822c4a2297f7bd79ae1be6826c5c36ee419942f339fc3956f1bca27fc93ddfb2d6c0a0cb0ffe1b36f2aaf95871ea28b45cbf67ffe0cf017abd59b3adccd639890834dc2200fa5e7c01e177dac8019d8aca63c5077afa8542a9d6e254d93e02f540f857c5fa4a348f53145742d0ec953f63a16764087dcd45e53f7ea949b98d52a1f5f54da7f86dc7fe7e9eba62fbec08b505cc75612cba7312e827d66020f2cef527c5e32afeb194ae5035432fc5316c804c3c6e170fc8aba1efde38815faff32523b5fc62c48b0a96297c6b14a9c71881e0500d03838cb004d496bdb99c666faf631db3d54391387c5482dc46ebcc9a924774c4f002ba41e2b39890c38f399b3dd8914e9d6e86552984ed0801d155138f8b7283e219f371742bc818687156c1cd63029f046873daae51dba12b836e24137115df1f1d255f6c6b61bdec290eb7ca327d60ea7b31bc4789c2d440bb57459087763c31b9c9706ce343e24c09296b0b157faa7d7879335f68404f40257f027ea467e7be7e77c7d15b536776811bc2f75dc756e9654ab3633bbdeb27d90cd541ba7d310a40cfdb780e7d20ad8141cf6911fcfb7fe84d10b7fb85072a686250a16d94ba2ef4053c63ad4feeed7af0d55100be8bf2ee08bcf0dd7d07694c9f268e0274fcdd7d8ca0dfee606c5150327d9d3aecb9650c2f2b7485099745d1e4bb3b2d03b88f351dc538453b3d1f87429ec9e64fe0fafe930bd31297da16847d94fbcd77ecf4c304d2e31fad9a725ba7f64e8dc72fc0d8535c8f35958d5ecc8becf105cc1bcc919925215749924b8ed4dac59fa74008d3531f72846eac12f22804aa176dcf27bf1ff5d3294f3cdf55782e04b71e57f9044ca66b613d8f041cf72f1c8e4587c24b2e75e06db757ebde0de7cdc6e08e79554a33de47b17e18bbc86fdd6294ea73f18891740bf84c7fd4167a4a53fdf6599b10a63eba057668a4b696c08a8a9d0988b22e1869d388c90afcd6d33e266e4bf8050023d9fa493ed6a292358620dc5002d8c96c115d1b09d8d783d82b6b9b89057fcac7324fcf1c25fade6c4f9a70f909922428ccfeb217c26d96bd986e30260a52f0a2110da5b578f12982cfc571f50a0605769a2a376d926f951fe3363fc8700ef35a6f9d27989c3bbccc9a14a31a0e2ecfc199bd4c03c685740dec3d292c32ef559437b42d2fd438816f831aa2ed1bac5a89f2706765a41ba1f8547338e8e879e8740dc273cab888da6972a4b61f9c46d7921849ee8def9163697ac4767d605eb3a9ee3763f8bcc496e047e2dffd765cc6292ba7bc4307b349169a2659183b34346b91473a57ae6f619fbc895b43cfb48841a539f716ba05f17477e42e1d7947dbd8116a42ddbec8cf820313b7bee0f147bcba516fd6165dcdfaf6ddaefdd76000022d9fe3283af21694253831568b6e54c5f7662994d5a55ba4a5bc15adbdedeb1d85a4995c1199f10c2d4f601d197ce5c9e4241746255afb8de2b9b9d163b87eacd7fbb16879ecd8d8294da5c3a868f78a563ccde20f45afaeafec12bb3fc1326171ac7ad3a5d8187b67faee94aad4991ca74baf878cdd4977224cf728ad5f7d9da6b901f20851e0a4978d67bfa80438938b771b1be63dc2203d53cff6510716502cc13449be7131f955aa6085673f053fd92e22e062b0354580fc4d9955beb96c2b87d831341004cffea1f22f54a64a95563d4b5374c0a0f8544f459ee15cfe2f9651b414211a5054592f38a7b49e1bece63cffa95ee465df3387f30190ccf330bc291f3d0db21f4e20ad7f9ed861d0b5bdff4a27087a2090da24a2e7c01e2b5020571bcfd7f3d5cb609c80636270a3df79868638ad86cf6a9686964c9c4908ea47fc9b99cee120925666f5693e13cf70a9e35d49b360f56e43396d8f3f0002ba46b70fd044dc09842173ec0894c4d0588ef0def18249f37902983da6b7d649301b1ecf50acf3eb866f7dd1b2f1aeb036155d7b4dbf936cc54b4477db7b2fcf0f3cb39cc67caca24d368c44e0e8a284959538e8d4218279c0bc9dc2415413487ed7804d0c9aea7705d36b8a000e37d1b79b51e46b5d054b836075fea4eaac9bb50798a4856707efc0270c5b85d8e2c5eea56e40dd3fcdf3c8b46afa66565904bb50496d3147ddb023be1cc40b280cd2a0269ac16eafb49d66d1c006f17aaeb7ee2204f31e1d6c723f50942fecc1fad341b2f2c93b90cca977eea0cc6e14832e6c85d6098ae1a145625deb77fb94836ae41c386c6225779b27cab959955db12945065fbde65a78ebb3a07c364df20d6cfcfd83a89b9764f6e957e03d5497182a01ccfb724b79533df1cdbf9a2fab26b4bcfa273bd383cc0731aaaf9e624aadd1df1833e417be19d0dcb64849d69d140836b4eb9152308f7a9583ebc28043f0becc086b4c83e77f733b641c2ec6ec8903987a7b13d93ace94d6c2ffee3aeca5dc425a00aee4fd4d239d5ecbc55434398a4135efd00dc575c4568ab7dab31691f4f381afae397560b46d7b1cd4e98457abedc4603e8461c42b3f3cc910fc40adf2f9b71bfcc67b24e6f369cb7e174b2be71e0b9a2b58048e6cfb9a8a3133976afcc1cec2e1d27966aef5a8c658a90b74d004e68ed7812e7512026c34b62bb0b4abdeddd8e18d77714f323d1e837c23701eafd215feee7f7a4edb1f14799c4a6df5c5164db09bb96373bd635f279432265c2038244b44751d2f795256652bb257c9ede7fea8a883b7fe655e14b223196674d51a8470590be44c38af7cb26cba610a82dba99926294a491a8c9e18ff994f88f73075db52e8e1a7e05aed9411ecba9c1af588d271c1720a01639f51d5a45c4f8f6b1dc920c300063fb9f60e5a5bc61cb2c650fe21650e6c11112c281b7a33d8bb372d1e535acbff0dbee99f53f4d9aaa7363c4dc59ec94af9fafd718368c3ed804e496a078a33ffff6851f8ce8f339fe4fc8b9ff43b0ac101b73831a31686f6a4980d66f2c425b00a63f729d4de8ec1cd9f3c4a280b7db156be44a0094e42c6c369ac1c9fa0ba20829f6853f5bfe7b24e12904071f6e6b111740768a9f454f26ee1d8a5552254d079d1808431b03157a37fbaef6b896ea551459191efd13d04e3049ec84bb547a3d9fca92c5aafc559e4cd02f70b14ae2fe5c67517bb94ceb737418e5285bf445d65d0942e69e845e38382945515028dc4edbaa4fc1ecd73a18163b449cbaaa82c3b726e50ab10850a9288564f6423772fe0b422511e94fde8270f216a33baf90197bd65c6cfa996d8aa21d786a01a30f745b987dfefa18db982c43f6ef1fa8d0161f5f1c371821bd6ae1d99d342699f84bd0d39bc05b678022d923e8ba7bc3b3f8b33df8ce38de6c97b5f7c7acd17a6f79934408fc157f012829487b8dc8965b928186a14a05c30ac4a1f518287169dceaf7c33d7b7fb215e1aeab4cd7f8a0471680f7ff396bfdab42b183237e605efc0f165985d4c01b559ea0a4ad9570f75cce0f3e8a4a44565731e96303447da2061ef00401c09bcfac3d78c8a0a0623b5967999d6e592b67dfeef37266ed23b11fefdbf320f822b6b5881b10e7f4a52285b9b72d96c86419ec9de1800cdd44357732b6e058fabe2feffc235fd2fa3d184e39606501b19393c56496c4bdff23ae39260ccde24df7bf8d3d7ae60245d90cd37f114174d4c5b28b8df252799f5df7b9607a6c3c874c4370a9c498161fbf4f7a8fcefede68b98dea8be3b0fb5c798e276a9131ca17361575e42ab601d905555ce9e0b2ec35f0d6b81bfb39fa9c36c15d543c0e6de407326fc6895d3b8aeb322f23de440bcd7810ca1e1cadaea14ab4fc381ef8ad333ac022f37e0191a6fa339e9a5f35459cf4cf6191c3cbcb38a449274ea4b8ace9e3d6b58023300496b60a7481688bc84367c9d3f20347cd6be464b972233f27699d0b9e2def171bcbbbc675374be57b0bc7ef4cda8a6f7f891457da91d47a4ad4149766dd6f87b49748fa272f9bdde0b778a91992fab91e226e54ff43b94b131de596db855ad0f4ef0f8698315297fa69f43050e8006f80847d2b2138b5089e6c05ff2e7b8d80077d8f08b584bae326f44aee55d052c1b0e5b9a7836395b7683f50ef51db9660f6dee37ad0572a943bbb18c55f98e3f543809d199c62e5bd1b4dc3ea5610fe1fbf43a40ac797eee0279d4ef35ff3cfd382a8af7459cad0288ee98dac2647ae3e2e4c710b1343fe221934a3221b928821b1f4a310172aa1acd2023069c1ba79ee5f88b319596f4012ae4ed20f3f1c61920e021db396088ccc0ee170a404098b5dba300d43dfda0078ab6e3fdce4fe170da51f537691eafdeb07030cdfc60fe364e8854b7d1b939d3f65fce2d65a2b745bcb7e1055a0b683d1cbcc8b8c7b06155245178ee86b1a07cdbf7b0a71fbed83381a35afa57d0329d1b9b4a18a23c3c939a4ab1a7d141060e79242d7e03e58eca9c7d83a94bb7864d965aaed1dc5a9b4831896fa72afbc633d3f353d78b847dc9c7f6937264976e0524c9316ca24ca2b21dfe4ec399f2e3e0dc6b293a643d9404c6b7fcb42f81d83a0f961349c465ec29622dfcc776a95e0a8a85ecc2038416ce96cc5dd1c41d510cd2fd8359ba0382de75a62cf0e896347cf06a8e99b84b231bf37ba897d93efc61fa654f0b0379c5d6d462766c4bab98441f281efe7394a7e7ab32c85adc28837bf46c974d235d00ad533afb14934f45bc11c14b2fd1e4b88167841c0468b45cc9809b04e2bb967f632e20c3e8adf08a41a5c8d06982c9a2756c9d0e451dbcfc9bea11ec4750dfcc217f267b80d3dbdcd181febb4b16efcac27e05621c61c63db12d8b1f0fd7eac83c3404cf77a71aefc7d798b79014de87b99bc946b412c3edba2cb3b42b5c8506ae8565b107d66d6bf315f0565d96d0a38a81b5cb24c6fa890f2466b17af6d1209b90fbd671a13380d8f74153cfa74e13c98faa556e3717eca3ebf06da220efa6a932367e6a744b2da300616c2f1bef17cfaf8d9a9c610498da37eacc2ad7cd08a561524cb8181106f7ae3047111d8471d83f31bd24679046c8da94ba4879b7ca039537327e32410717ecb66a45e9777ee3491addda7b2855bff6316319de8a3a5581266304cef84c21c5e3b5daa5bb24c9061feb7d72a0df795e3afe4b3eaeb679ebb1666819b9afb21f86daedf674f0c377b262ee1c304956391eee48eb6461c18aee910eaa83560d20a9f745c0fc2ccfcafb25774bf92a3af0ff2fcbbf931d40cc8f6db47ff09d2a3b997d8c46308620c6de383dc5a60bbc0aaf49a3f30ed63979dc87ee781a4765d49add9e74c1d695d652e8f35dcc395a86d3c9c4170e9954928076618131604af2a0f0ccde8fba21e45abe304a781226368ff9d6fbafe9627621eb75afe6dd3041a5d4517e597cfa720c06966c461d584c9e06d26a76feba3fec480f108ed09cd36e80b427356347cb9e9787816f14315b02a646528f5dda586e46065b492b997877e3dbb948be0348766a49398549caf0456c1d40937293201edc4cb88a32f75310353a28cd934f3e46f4a470f8aa509d476d2e79332f2b0643b04e0c6b5e02093f89c2527a6d28af699e26d04e5320a7ddb6c78259f544bc9c1c074ed068a410d08d75b9939e4a4e8a27a6d0030ab86ab4e4135486ae091cd79882f479d75cba67ee2280a3735bb6ce3f9e0bec0f680d0e3763a7549fd00c9fdcd4c1ed9ae9ab257820cd48c1674d90ee04eec3e92ce770c61bc910be4d1d01373f8701a59fa2a267c47814fd38c0f7d21b5a0e2b30926b584fda8092b6aaddae4b6fd5f007d1115f1a5db42499ca394e0e2a1cc03bba382dc4c30c8afedf94357ea289ef4ccef0aecdd7e16b15f12bbc5fce9add03595cbc776faf0dd1f2f71e8c08a5afac0dda0cadfbe2b96284a12b854c5d75462eecc5abed35950caee47d4235c9b8ff2e2111364a85000bb6910e069306bde427a47377bc0264c4dda73ddf3d5a00cf5adf0733d025736319bbd9624b03ad86b2ee191d46411a651268c1f8414f0b97da7ec9d0d997d36fcd25d4f019e40a332a808e05c3ab4a7880f5f7d50b80050af1a3371ccf16f0d162681ae22235f0208dc96daf4aa49cfca0625bd919dc3dc3426b3d8ee826e34f1d6029a730fc4e5d5161145c32e8e6d9a2ebe3f3be98ca2ad937d21b45a19705c407d902441d6ad786f375ff9b484761c9652553d760ac3cd33989e96593bad0e2eb53b2ad3f8b91002781ed0f054b611f45d6d6ad26c17f457aaccdb26b84b13d19675c078062461d2ce898f80935b4156e737e0078adb747b4fb09adc77d917074edaa7554015a34576f57d324d58de1f9951e1dac365e135aaf52553467ef2819e60f12273f928bb89705befef95e63f1de18c1232f2ea2cb40b80dd969288d3c4c6b23c151c6520f41b6a60212cb5540e117277167314c3e3627f2e57ddddff190bb4d699ca05c482cb6f156f93605ece1ca0b6b23825a4bfb92f280ee395a0414f5c93704783c69bd7ad1b22e4b7a6e4b6f5cf0008759e1137ca56d5400f916496a140705d5b272e72d5e2c6ca3ab31cc9de0dfd3b0131f1f88068015d08dfc673492379b1ae64c0d250d2bab43723333e3b47c84a8200981a6361b0cc8a84cb60363912e810c76bca5218033680e208bfba8549296f0f5264e6f0e96fa8be5c67189c3c6e34c4cc7a8ce4ca21c12d821bf328c84349f61b603eba585f2ce489bf74d904f4abb8cb2e0eb02c75013a315adfee0f0ed790560db37877f0bd1c5327720dfa7ed547742943ce6a97a449aec063ca455518a19eab362baf74d07a79bc2501ec4c5fb606742dafd3538b2d26f5f6153e7b2ca418cf1f04dcd925c0553a277bada823f4346e1be8eb45ddb7f4e8a5b08430a76cae2203b70feff43c8f36f1e19d1da6b4a45db17cb24b3a12d13d1b69a86b7eb4b44f1b9c21deb7d474986e833073cd5bf2be222221384279814a4d6feefe8796ce69e7e2300cce97f735677fb03e198de0efb588a8bd35a09c05c44eb77c1f73268ebd31368d8ee94f71a4d1674fa181bd0182672f66bb53ebecd44391e56f0727ae3c17908f9811102d2c3a14c696158ba9cb54ee12473dc4159c9e329c61af73c470e4ab64ff43bea643008e60d6394defe691e940f677c3fc72493c9adca4b750d5db5895756099e71c148f8da93dda74d994bb336dfa1a4434132869cff6d265f6d76fb163c7daf7e27ecbb6825abb51f4864deffef20d22bb9795f837f2b6e44ffc6eb851ad46c33990678e5f898b24b3214d0abc5d7a0ce634e67d0ef6e3ed3319925f2d0cd176eab4c70c323c2eaf9ce8a28042b4bfcfb204d7f76b4570045c3a0a4fb3dd58ea9c158730cc577c52aa716da752319fc015aeeaf4f51fa0ed5594df53aab831aef19e0871707e4b85a6143593128d718e5ec460cde60f450495316219bab2e2ee536f460bc145eeceddbfbeee7c781daf7dc92ec99d96ca8567df20610203989a284fbccdc32dfed37a7cf91be0785c04cd562a94b0858c5643afddd3c07a087887bcfbc20d662eb7b170353fd6dc5af655196d65403f0142710f45c0889e5db005728ea6ee8af16e917b6fb795916a2f72f1765dafbe1cca988f7414dfac6b6fc0e817cad6a8c22d9b0b251dfaf5e578561edec65974f4cd16e5ea0fd15070405c347643abcad8617729fe92c2396b3463732eedac5ab18c6ac6fc889e657cc872c936e45e95365abb0fdeb6594098d41e04432487512b9480102f1ec957888376462c11699195e5473c1e714d934e7535f0b9acd4c5f3162e529544b04ed76ed0d4213df19f76415f8d39a99801e75f8f02af4d8d5bae58f3f51ca070895d2abd6f2b74389fe23ee926accf595ef736e1474d67d3882f509af774f13c630d2ba27c1d7b2b3dc2b67d7199cdd9f7f5a05067e0f0234ae0f7a85f73117bdcf174cdb38d89be4ae533ae8334fff28ed13180cab5f56f9a6ec8b9ef4cf0f6a8a3e757f31f18c02a103da5f2dc14ba41e5033e144fd2745cd0ad1fc33de6b1b6c67988a1715725512d3a16f5ee71a90c38ba403b5d30f38ffe1031403c5e54911fd6f90877a1750aa239e6304078ce7f2f4bb80a95b99ed7ccfa0961d1b836a0dffdcc1cd6b5510b60b21a20a335a68988fd5de93cfe639a5a942f9537134d86d7ecd9f3fd8269a02ca49464452f9e428f49a095fbdca02966aa3b93de13402f5ec29067fe573b68c257c4f77ed397c99f20eb6e96675a40d68cd74d45ee4d91b3a59b846b93c6c8f820bf4420698533fbdcb4bb506cf5b0efa0f17e11c9980a246b3c9607678c1ccf5328e174601fdb68d6573dfb51b670cf25afa820f30e126f7cb0724d14dd116a905ba1a5e390876f364434fc8c94a989e8f99b8818a7fddca370e1de5fda9851c411a933cf3430e0869a20c0db7da2912a095a4d025f0c37dce3f34e82f808472d1c425bee9e8a0d9c0ba6c267122a13bda246fb012aea5b6ec35b3fcc5602367f1958b22c45b6195f063cbd1aaa529b901a7b894f44f87c56b48f646e0e864b47278ed42a6e283f27d67a2b88ccc94335befcd6c9af75a4df30f131accac535e642fd1eb7d5e7cfe6f61d5b7f04e59863bbed7c1bdbc3e0c61dce4857e5d9c7258aa5b1ee22a624a5bc9ce3bcc2003857504604dba6a6589359b19ef7ecfd342b619ff6bbaf31ad32e54ccfc6cb5f34614f5e5398e6d9a2d86dbf535658c5b9e2da0c6f6bb144f5fdfd459ce3a92e5797dab2c8e5f54aae63103483457af7ec65b74496dde25e52a396762f009c9a2e6bd219505b71ec738f5cb417a05c4c3ab25b7e8cbc1d9e09702c3c65da833c73e54827d2413d5078b859d2b8f40e01e97146fd16f4b725b935b9b3e19ffa13413a9b5eb2edd19dbb24f74bc064796ef0ee590200941f077d736b90d38a8e45de746571ae5ed88a86ced1f992008867b979e48cd676d3a19006363e413de7891d1cb034cea5db43b543c7465f8c40bf59cd390e1c40e9ffd4dc3053377f759bbac401c8ffdeb3196ca0ad9f4d83a690b9be83635715928f4e5afdb9118d126270b44c3f1243c145b4784d85b828176eecf7e20f5a53b576ca666ae1764546ee31d07fbf4bdf5b1bdfb562eec4b800f22c28b073c7f36624663a53ddee880c95d08e11b4046eb3502a382137e393504af03248393431b2c8e902561ab16d9b3afaaf3b4bd3b3fe8d543ae74159ee0b8522f99862b9ed47193005eda32ba3a804808b0f63cdb3fb9429f0933ec01ba960d487416f16a8ebac8a33369ab652284fec4c973d6e11570423005f904d2231ed8ba257434af3cb390de9bbd55707e1d6847f51808348054ae672182b5fe236df91da1d61763fc7243e40cf489aa163dc793041dc7f83b6f246fdbf2c9874d0429d21da328bd8e8fcf4c2f554602d38fcbf9744416fa4c1f681d6c4170b74ac9e15371903758aadf2a4ca5f1b418e7f9f4891d72b5f8fbd3e19205bcd9dbadb28312491bed44ca9263227152858e1789085fa430a189c24887785287e40a99ddbd40c908d95c396aef7da0438a5a54e9c6f2eac7cbd2d43e0b3105e08807a84604418077ca7f235cfdc9d99fc0bf5626c9b00a696d4fa10070d566e1c8afa2515bd1583ea23e0ce63792eac8f12b1b2d9bb7ad6268ba0592ec24a365a68bc9505bdc79d9813787696925af1d6731b8f597f752badeb1fc0bdd80199897e5b4ed50e73ccac634596bf5bc84838785b302db8f0202f267d0ccc11970f16e9c689ec9c34c327aaff6f2f138e02eba860a15bf6385ab77d5f5ee88ae00fcf840a57bd6daedbc3f9e6d875cc466601caa24f2e4309a18e5954909282d62a49de0853ded2ae4c99070865f0753b08d536dd90eb383dd604a5d419527e6010c9f02b90ed4cf8d68be777a95b3ac019c5205d88f845ddf59dfebf4e13151fed1e7b94fb81e720fda079e2ef30ed43ec2cb1450a21f143408d6f76aeab2ec2db51223c11eaf992fb22e26a09111d70e4d533c28f4aa3ce8eddf0aa5685ca580c535a8f7083c7be4e5db575f9aef2f0abf350b7840ab1b9dc0142915dca7ac873ac075493f7052e734cea7a7dfed5e3827c5157eadc20feecfcf9a4aa1f8e276e80bf4dc2ea82013dd034f0053732a8224aa6818cfa10cef79d64eae07d9340125a4f6475cc11a7b595739c758c860f35ee89f0b85ca8e2365b7808082cd9d3c78833e0dc30baef5a448e0f4897da802f9c61debe0fab27ad2edb10657f8a5d90614116c792617380d151913b52c58c1d09af66375e0b6d280f5d289f4e80c0baf19cbb8c3c718f6768328a047297549c2608aa769a76b0b29d8053ac375d276a020cc051fde64dfa8f85dccf19346e418cbc4a182e25c6b38cd578dd99c86645522d7c4c95b5b814ea0977b31a0f7c42f55a048bd7fb4aa32776e8a9a7eeb690c0283d021ee0a12cea62ee384260437db59bbe30cb1e65ade66af2d38d24225191d8c63fd7ebe1fde0d114bfed11a466fdf7eb81197f7d58ab6a9a7498cdb634db6e0ee44e7a59371a65b161ff11a6a8b7d30ea66033622a8dfebe4ef1dc92db6338293a4e87758da1543fa46a502f4ebff672a60b441307e01e5e3f1d850fe5ec18b35cd126b48046306312f53f3d085f53b6b570002fb65e82999f5e01c034459a27c9c8ebbaa0550daed15d33705c50aff64ac57ccd7ab8f0dbe797f2595e8ef6f5fe9fbb9d90ba67eab2110c8c76ad1dd291e87935fac88b07dd739d6664c1de87a26472e0a1dad0491a4a2d92a7625dbaceaa1aeb7a4e3d1b176f0e75d3f5813a0f36e051188053d6668ea8167312d2ed11a02899641f868c121062fb8cc358863a3a8402f1b07b4b7af140761479ee1b799826b2d7a2231d78590ea6aec244dea9efd171173d749f1f673bd0c78bc1cbff76914d1c4aa5d1188c0b38bb57362321563327c2efd5453c8bc97357dbea60722eb81dee76a12486feeae553b4fa3dfb9a7aa50bba784ddb7fabbb511616a8100a1aafd3ac3bff1e9c9a0427f51b046564e6a3c2ef53c7c75f94093b5ea9d1eeba259ef1a93cff30dcef1941344d39ec4c49df54f8cb0653a8d033f8423618999b8978592141d9d8a0e01e42072c5447e22229de7ed5b13ac8406d83a71e661f13b1b3bf71062f04b268d44205ff56956636275cb56b25fe79db11f79e91f4e32ffd627ed203d9e68e234d384c3551b94eb9475907736b0646eaa498746df32b22c01764ee189dd588315bbe894f4a617217962b786addaeb0cc7c04f327088eed317e4b46c1571f99e7b2bf178f8f18faadc3b367a0de2e56d75718dd8701f882f90000b350d05dfd9fa95d6b974e7b212420529bd5c711d18634646301cd2ed4b916f12beb62f4472c33f2b5eeb517321fa305e58d57a30fe87260147fdf6506cc1600a2deead908cfefc1d8bf77c88d6578a0305be87ba6182dc592211aea445bf3b0a88672b0192899eaed36af549a39bc2b701b2586a714e8f67134f30df05825df649e8832712dfd1e6b2c42dc90595b987489376e0e67f641f73bd66ecf75857a300800252dc12ac0570468e5ef1f7d1f7015863229527f9db51931d4b890ae76ff1b210bb75fdb96009698d0ae6cb399aa8d14303d5982445fbfc399cb5b2e3764a00d5e070bcf43833b3032fe43dbe30c840239d5860e2c144b0876c363a19a7e160344d51dc5a3a547e84d225e23cacac0a471b90be97e38939e47cb773b5de1ecb63f26db5ecf75a01c6eddc3b639407ecb015244f9064122ab0d1ae5c6848719d2736f01b39e91244cae4745eb7d5c0ef280d0f0217043c24e8164e7da7bd0b2f8a1067e87d2908702918e6e78d3c942c46cee13641bca274d5a3e927a6fb4547958ce714b69c1a614c1eb0c0a74a46e1434650caeda398e7d28a58eac4c97316c3cbf7b877f9eb14cd2dbd8cbe05135eac300100058b661aa355c297c9fd91f80f32f71d881925200925ad7001b0c782226235fb1dbc5b3e084d9617e27fca73b6b61ab0da07f8ccbd0a305e2636c8636acb4745cdce1e20deca5806d443357626ffbfa14cd000c9650fe01bbb0c0779faca9066ce687fea007d96848f757b6ff7dd0a06fcee4b32bc224324f13cd92ad2f3e765d641df02259ea0eb28f9ddaa6a5a105bdba5b794c23c6d583b4624e3cb24df3c6b508cc14e5fd81307265c2eac5360a0fcb68e9305c90efdfbb53aeeb8622ab1098c2165cc8ab70353c1cc93cc6890f094cf293d3d9c88d3771388e1f55b0b90c8a08083316e5e6d12cfce9629d51f1583f8ca7c8c7da41b34a123ef9c795c15b3c804c060a26aa68b5ef3cd3b03859f2bfa014634faf74dc7a2b92b26ca1cf3811c0fafca618afff335df8e2b61b2322d592bdc16c6917c74a6a345cdb5e6063d8e4338591115a26774179876d8ed4640aa3741f311869a22e5e298eb04fea0a3b20558fed53d9b78ed74aaed515488838fef09b41ea939268cff281678127fa55d7845c8661c4676a36cc6b3b9d67cf34529d80d92a4c1bfa0127400e607593bcffa6892a14067c80c8a9ba88ef5045ee9a27070af3c5164adbfdcecc0872c65324bf0dc998a0014b05ff8a79bf819778fe55e19472bc160eb1719da02ea221df9f21075d06cbdcb8f81ca758925b6122f8cff8968e6e57db06ce25d27eadb1a78b00aadd1552c9853b74f0e6b468773e3e22c122a3cf054f22cb7803cb0fd3cdf80b9942877cdb2a3c7c9a20af059cef968e37a9cd65470150d14a91f00300caa25cb1731b7b187e6f3de798bf7b119ab41777491149f380ca894711e9a8368434fa90829ed0edaaaa0ac5b3f7effab7a4c512fc6692399bd3bd8c1bf89adc37ab88f72f3b9d3214124391f1a24579d8e7117339de7de62a224dc09cd5ea2be75739e8b8b2c2a9b6e59df99b0c19ea02a9505a8c996aa42ae37c741b926fae1257760b3b5f0ee51c528ce4ba961f889c2612468906131111f9cae2372928ccbdc280aa6adbcd2998eeb0fee709951fd17ab27c6d64ffd0bcd8e9d9a3b53608a4d0ccfc454a6e6743687d53071f24aba185dc64ee21a83f94bacbba39e38fed5175cdff1ca01fba06baf21dae998b3d26268f0fe7cd1276e4a762486052e40d20cf675438e8d24ff93281c230e1e5f36c9336cd55ce14902cda83fc08b96796bfb21c90aacef9576114860ba93b4083cf86a85744d286fba559b4003e524251f6a58bc63ad774db9bfbdced0c001de6a59eb2b789e234b1d6369d8fa73bcdbdb1d42b3e2486d9ab19497f9ffc190ffd96b5cd03ef8d95cc373c98dab730aeb3aa8e9bafa637880d19f4b9fba090fd5de9977c843045937d419ebde5b142a029c290c659f36f2a52612feba8947d05270dde5ec2bee1d10a0afe570337a880faf759ae317c7ab5c8ea5095f72f7012e5ae28523d9a075253c7bde4e85637710887e16cad90ff8cd76d5badc5cd847f88493821719a3678f3c97d89aa0cb8a8ae07b7094ee3b18e2fdbee6e717a2a3320cd15d9452395deff333761848a6c25d94f7cb2f79e0baf5a1443bf930f6a7c871d620b7cf6d1668c08828872a94fb2dac590bc81a4b93c07df6e170d5a309e2b0e42f6d0d64b0905966dc7c231064c86e486a58ab790d0916e2bf3d538d12924ea7920608f31692130472bcd852f5e32c3cd3d04b38b3efe812675997a7f4ef54f321276e42718bb524ad9d4c949a5426c501cc0f043b54b373c832b6bc466739473334646b95e28ef7a7abd7b3a26136d456cdd0138ec4091da273ed00536ec092dd9231939517dbfed77889dc9f635e08212b635ae56ff359c3c7a9e8442e48db0ac26adbd1821e4b2413274b12f92448000c11599d91817be39da21c1056f580644b69039c77f3ecf18a0972a1dbd0a7cf6d5c82432a6de737e18ba98e7ea4b95bfebb45a763c0feb94d0ae82cb52a6e58acc8abfcd1580274ca7a6ff00c7d5b5a1643342d9280e986ac27889946dd840c624893ec4a85c4e31675574d7002e26a28548a739b8832309448ae784de01640bee26bd99568bc4c036dc960caec4248b78484576b2f7e60b89821f6109b32f8c2e92edf4e08025e1214a75caa4aba97b88dbd63e8b6d5117aaf779774b1a9b8b7c694c604afb9c8f0b68e7cc08e7d5efb38239c1654207bd02684ff2810aeda32d80f9a2da6a9b6726299b3f4c48e36468919d0b8f1b694d157f5e68ab5edb385f065119599a313ac3a467ae7c17fa89480902c4fbbc71c0a1b44d670bb781485613f272dfaae803f87e41646f48cb07dd5e9c52f299bd3d7770761bf34074ab1fdebc406f2c7c25d6c68e183376e9520d1b5804b691487a84707e542f548b0ef846e1fadf97ca72031d532eaee7754dfc4ccb21219799ecca9f4dd681f15e16d93fed29639e65faa0921427ee2b54cc9a8326a5e2f796f687dbbc28a2b7a32fa5b22854d8db16ea24e94576b310e448f33642204a03185321d3a8b44d2e82a8e02a2a19824055c8384066c71337ae65373aa9b7624024ec5cf48ede8dc6ba6bc068307e94ac6406aaad36fafba1bd63ada8aa7dcb3167b001c56130a187e5b211974c545f7a3f2a6d2001853651237a83e506f466c4df8f0d62207e7da85fe4c5a2b1717f4e8b271a738c17f91eda638258162210c415eb48de84c010cf014c00d04c678b7a18759f6c6051154d2d3ac325b19be4ca614581371c4f7f76514fb16e276e4442014a0a378e4f469ec87e96309ad365518b2df40b6b0108d3095101d4711744e214b3a55c076e62edbdb5dc636c09aa11010f8c99aa4dacb9658015ee5cd92f62a45c130053ce77ccaa1481cb042c647ad64b1b1e90c0da0e4cee8df6acaa9a600a2ba7d5a076d14ac0b0a213dc35023365cdc09719f29be995fbd3a616ac48bf98584bf51a0170c6dc11b50895f341fb209b6089bf0920336ea9177ee1a89e18ce3d77d5d8b308f2a7513678095e7ea59e16882939160d267593d3c09e5c27a404cf06a3b760412ae6c51450aea6507c4942283c3cd8841cc053acb16586a1e68252e5a9f38b1cd8d1bdf345fb86b5949a656b4209d675054e5faae3daa0a0567e3b955275b31c6e117749f47eeda3c417f8e340e4c3de25f68026e3d7214d9e3989c2e37e2ba2be1d75a7886a79199cbfe59039b734e5160d7c7bfcbb3873ab7faaf4cbbe391fd64edcc598ae2090c9e14a105fc75c88b2e41fb6f70ab62be7637036c9e8e17c8b847399bb96e42709bccdcf2282b381ca0df4d5f4d3dc4a491a1d8be5ae26ad97d9f36ab1542fc218ba3a30c6e42a95263c038c2b193293c39863aa434acc47c13965f6df7191c4491bf0537f03148b0f93f4917113037c43847482f2718881b76bfb2b96d1cb52b68d4ee9bfca7961f498715a9ffbcf112958c501aa39381cf67b92afc4447eebe9cf20205ddacad111045378d13572a4538366a098c533f8450bae1118c39cf3c5ba2a1dc7f5d2c08e75ba4cf44b05a037fa84e6ddafb4b9e0bc18df123ef9509e0a0c1822f1a3bb20483307c2489559e81d172235141e6be41b8108a91ef7eabe71136ab64fac5db3fb67b779d74cacd2165ecfc9178d99efa436671ee7ec85422e2a11b8653e5f490d47a303402289f6b8d21b537bb1deaeb45f26da953ac00dd9f8635988afb808514c62dcbc5485d3603cb2d2161a36bbce9197cabc3f2d0f09fe5b58e29134909f44ad251f03a9b7d2e1a9ba069573185335c4fbba68b2799baff4ee54c58688213a6a9dcd1ab06b5f7001e89cc9ad560cb45b507d8bd854e0e368bb9919967da93caf68d080e0a0903417ed748a7ad98525baf0832659ae31fa8a7ade8b792996c78b443bc29cd82c3168194acf417fcea131be02a5f4ea7fcffb09e2802df8152a47ee85da44d7ed7737958ba17e674c6b89fa3f473cf8c8f79d2161882e35477c57b14c90abce8b2cfd5a07542efdc89dffc0948aa5c78f317efbaa9195ad727e604c8e50b92b57a1044be7a85617295fe5c3e0f14c078c5c877ab79bcd31a3e43cd054df1fde83aa788df4b413cd9060bf31e3c512a3d89434a8a233b65e6514659fe3aa673437ee34a2a9482337d340854f34ae669c0291ad57fe7e5ad7a57205b00fd2ceb8cea15b690ae3982fbe1cf4f89d3e901a934a15120416996a29eaff323a39c54e66369b8fd97e839e5cd3c1f62d496b328b5cb291477304cd464edbba3d82ca540d820588d3f049e7b91252fa527841b719e177165ea938dde7711ce8971e15f7dd46f84ebc755f1a33d21994217342392f8c4d46ebb6986577c4916d2a2090b119f071b96091d807cf1ec191c4aa3f70f677e309dc6a6b0b7851c19eb5a953583f5dbc19a67e2d61112c55118669738db6f404fffa62da5c9c60be77cc7f8b1f53594b2fecf0538e7dd2b58d5e9f8d7d7e82db3705205bd51d97fc0ce98005c895d9263f8697b25472cd99cda60e8306354816f554d59e1404eb9cb4ec708258bd31d1edff193b31e653ff40cff7759ffc6330fc120c96b761a57511c217d92154bb8ee7d8e5cf1ecf88cb8ddaf063ed6646e219a2315f71db28a77e78053521be1410254e42ddc924afc2964e6d850939fa8a3befc494aaf5ab4c1817fcf8c01854a919d523dfe4184c0fc508b487b3897f8729f4acc3a7bb6bf2cebce0147d1305f65bc2d358676b4dd9e0151c3e49289c03302457c108d5184473bf685594892c92ea74ac91125525f4735e8897f24936cd08c5e919290206d7c400aac05958596292e40d641b765e94d687ab541e10a9252e113c73877163c296a5fa8cc26af3c018fd6071e7ad573e9d71d0efb14fdb9cdc4a4b8a878373129ad4a7ae878e61944576b405dfe7c4b3de55aca408fe518253a6de26986eeee5a225a4b71195ae06e2820210420a666bf47e6d39dedb4f87688f2fca4a5edb4d6620340423cf143c2d54099ca278afa0e0a3a30584bc9ab613bb90c4c5d1283ca3ff246aa7a8671f32ead6f7e21ccfd03dc7e12a056d605e06235be2de513d556cf44ed2db249f1f3844aeff672fee7f77b1de9b31643f275a1a79f545131f6745b0c6d1827049e0d98e78811a3eb63a5bbd3e7db98d6dae32c35e0d2e175babdeeee1551e896fe6d3164869376c0aba90cb75c4f7adbd71fa90baa759e94bf957f77c6919e614d142db3c307a6aa7cc336ec20a0aeeafa85bc999ef9ac9d911bfab1db58f2df7a0176ba38b28f6a9a2119707cfa936880724870e166477dac8061538856d327a7f833ae0c68f2bba72c30ecc98ba1dd4b1d1af319ab37d0f8dbdabaa59273270ebee5c5de2bda4fd162600cc134a30e7f3847a6a2aa53666ea1fc9d5a8dc10d44096f441c6a31a0416279bf37593db93d30ed99515390364ed3cbdf5dc3ca9f3e516fd75854ad7b629a70bd63e1b6653acfea531cf004adc47246d813c737ef25d0ee1fbb6b69850881e4445c72b4213b5efa716db6736af6dd0fc2b361945c09fb6c3c81cad9b4ebe44979026443029e2cf3bf273700d8121ce5c4cd9df7adfd152218e9c4b77edf3058e2eb88f01b0c825eda7af32a6ff8fcbd631784ced44901dfdeac3307ecb7952bdce10a033f520c4ac4e5f1587c0fbb1b985a798b7d784d17f8eca7eb93c616daab1de46a84cbc360f79e026eed99f9173ae3022e61f54415893281ed1e84ca36c0212000d3cf7cbb5e71b52aaa6a6a3a15fef942585cca1aa2a12e75ab526da1269d9d311b9344a4c220066e7ab988f7d96d0050be29f9a1c027a24d7c70ebdf595ba3b4df8406d459d88c70669d56d88c3e5a7693d7db1be0b8a529d678a6b6b17dbda6f364753223ce9e2c039fc67b69562d2d5c250a96762ada2c71a56596b127e60133ddbe4188eec33a4042538ab32ed9a34e58a23e12c51110f12c3e15abac3c2a8b020dfc06382df54fb5b3e8144cf2207586081073712053f7c5f01ef80c7d653b5a9dc0e607e663f241764ccdff65efda1fd07313b6779e2f13018ccc2c41930016d0281864f1c32d41f0b533237d170a04c9b897785bd3dfd1a3d72b4f98fad05946112304981f9feef63406b15a3a2abe518c7aa7a6a8882ade4a22f0a93b14afde0e9fc69827dd6c7dfd383ae81369b0c266897d76cd9e2a120fc7c4fe11e2fae2e7b0cb22279e07670afd96d7b8361ec1c899070a3ce967432bf4c4a15ce37df1a38611e87abbd28cd3ee21d3d248e48905496efca4ace5b891419a929f0c1562103f4d59ced214402d4d34fa07aa9bc0984b96bde30e80bdca2313aa60ff3a42153482aceb2e2bcccb0dcd1f81017f52b7c8ff9febc3c08eb6a9cd5bbb942b4908ccabffa8b2239c4789abb5e9c873368a9602d62f9f21668a9146716e99e090957170179652285edb0d801590869f0ac28ba025df1d809f7b45498bff0b16fb163027ec41243519ea909146d3badcf1b6c68d97ed92298f73f280d7b1e197ac0d1cd8e766b24fc68542602a45af9365980c2eb853ad6c2c5301dfd9a25224807b40c01abc9981d793fd7f2cbdbc2303a1733d86fbb0482b0fff2d9272808b849d5bc5fb0c33c048836bbd8fca0d1789471151ec81d759a171a2ebc68c30698e346d23ce041e7f472dd79811bcc24c21ff424ddb75f3f5f1f6e0e9b6c14a2b5af88f06592b10887024fb3c109fda99fbd8e589d043fa0f3d003420752788bc163193ae6bf4ed6a501bf939766598a1f2931a0f1db3236f47d16e470e9272173952833946e980353ddc4d5bb9dbcb5052ed5c7fe9b33bc4edf5d0a4f2e94649d67ab9051a118f40a7810e23d00a0c34323671683e997bf5d6899f2ffe2bb1a39d43a43ecedf60c301097ac2c12deefd3ca3e2f403edc41c4b15ffa8f5fd407489ca19d03e20839135fe67102912770df62695ba42cacf5b687187730314b5bc80c7c0bb30431e5005e4320c5cf99f517ad7ae1353d35ea5800e91fba25df47f46288d3d46e12965f32172b06f2ac1387dd7050db0bf1e03cf634341e4c4167fb759a0e90137a8a9ecef91ad098703ecd81eb835a227caeaf2ddd16de43cd1d265331b708a3679aa927e52cd920e5f36d3f0f6906c5ca16586e63156769352a18d0cea5b19c43d38c901338bf384e27f2996cc141c0aad52875b345ebeb9ca50bdf6761bd932783b975ce70bc3b2712c3126fb619b2f25f4de468b42ba3ed0513c2ac64cffb9ebec7ff55b9de5e1febb76c2f1eadf75f7c3c65b9fa41da03b1afe4bf8650a4418705e6593000be4231e50f92d55788826f5b8ac0a43da77e7a04471a5fe48c4b3afb9a4018ed8337767b3115b99f0755b5403c52b7286b8b34960d833e27f70014a13bf01d7a42c085ce1ae0becd3d2760cc67dd5a09383d32b3a8476d51ffd067000ddc0375064323faea6a02a9c9f9e5279ee30658a2e3df4c662e9bed10abe03801ff14be7beea4d6b7d4f896690dd775743435852a00a0fb10fd2ca722f4a0753c00a1fc189584bc08a4df3009c174f873bc2bea87c806eabb4d11d77f512ad25733c0fe9c14d8c8288ff17a9886db4ea3c35f8f8be5be7ff89a040f8a84210f94090315480d4f29be6d88f2b3a40083cf2dd3b58af147add9e92351272f474f97441a43a3ecf7a765c639da4eb733e2042725796809100f96503d9fe6185f8823cfe3bbaef8234b237062f32c7834bafbf6bdeed4267a73f7c9b993b5f86b2d91b02e43cd75859f3d708c8e31e4d5763e40625f51a027681a052fd111956223316ff159cea623de8260db88574d916a655fc725ebd9d0ffe6b8d959a4e930517d620f195ee4b3bd49b647ca5d58a8600210cc5216a4afb5ce4090b6a9b07a04a4f3df943b68677d15b86ed4971229d5cf9c864f65ca07d57e78d5f95cd099dbf634162b9db202aa1c5975ce7f17da0770bf48ead01ec9efde00b14de6207b2a0d9a32a634de716888cae047908ebdf3672b210b8df99563ebd98fc33b3e5b2f54e194825f8c2fea349642c3e393d8a44d8c418a18e4fccecd74c645ca61b4d58dcfcd0fb92a058089e80456c9405633da34ae14a7ae6baba715261a6644c599a36746f764fb5a9041a0980aa1d2a5bdcd9f3390f2c3717618338f1d7f8bdd6976b6921b0127014892ef94ff36c29534908b834343ea79b4662fbd1d5c25da782935b9c1da74f730cee97a59f1639539ce4a6d7c9b382a702da8c568ccc2226f0b84cdb3882fed6bea8db8fd56f75eb3def85355f74228b2e273b81da02233c63cc132a4039b0ad5aa9835268534d5f2765d7871817e0222a37d8518617542392817175ff25c100cba8c9a28e1489b8d3163b52b714e979a897cc82c87e6b8671e95e3138babffa4b8e494e9164f91b380a6af7419cecd9f1c0163c037fb2699ba21b04c6e77fb981399ad6e5f5e1bd28845c0d2fef3acd78b9336fce82d21907c871377a75ae4ced1201375395abf220e1db20d02d285c21e0479062a6049eb3167cc2a831ca1b158332cf2f26492e293d9360b857982d6d0577c9644d9e4e9e9634aa6c60d1012bc7c7205938cd1fa63efe7894e4a65e33606efb0d5cbf3fd20f5ad66fbf0b8dee4dbad9f0c619964e5789444a431c4f554dd4143f91ee74d4c0579fd07523974f3ffbd70144b9731c6da26438fefd1aaaa119eb8f807e2f447c6d9e1e430a14e3d8da806e45a7889bbc5e5cca447e6ed944cd7a4949f58f2c36ae77adf5db880c10190a6d3398a738786dbdddcb8ab48d6cfcd4f2a1a2b43ad82007bcadf251985e8cee0bf4bde65a746578c0dbbd4bd2a0ed53dbb0f5845cfa3c740f55918af29945bc5a0311f04531bbd0152b1ae3a7fc345b1aef96f9d9c7b87be7a62e9f2de6f6fe3d59be14982181028a7f9a9ba6f6195154680e0433a0d1fee5efcf6c8ba9bf55a353e109da60f2e8d664acacd1af88c2e82ac495f98b1983c72ccb132f53b8dfb5b4f10befe3b9ccbecfd66f1420dfd4ff16a85c7f057baa0f25d380cfc5d5b4b968ce900cff0aa637944229a8df13eee0fa3cb042593892c6829198e87749b1e026e7f927bcbb252a56d8f6ce7f54a4d5d3cafbca9804b91df0163738a1fbfb7e68851bb41226b2d3b6e34793add8fe50dcc356f24221ce4a353806dc77ef42eb517adcc51bf13e6f6727b766db0d15433468478a5a846974545192e7642c3c29d1da9e53fb50a1957e405bce56859d26845ea72c3c8a83539592fec774d239f193bd4eae709a2e1a5be8b9d861c05853b8f96ccc8f95367052e946929c0676b1da43e7e2f442b9f1b31ebc07202d7ba0120e85725280dafbffd4e52d6b586275e4c04cc381ebc9f22ef743508e7ce23ec3ff6da6d7a73bddfcf8a543d34ad2500333e86fd047fff82a176653d6b7dc1b1bf976ecac3ea694369efe3dde738918654a7fea5eecb66bdfc75e56745b1e052896359b49fcf279516c8766c248353d787725d639b60a1d624f12a226b62bd3f48be93581f9dbd3df70644a1219dc62b6b3decf6c79af33266806f46dd51fadd7133122a4323507a1733f152c2f78cab868321e190d540b5ad05b6ef50fb4bba631b09c8e9c4c9b8f2ee12cbf073c173bdb8c0f1e4ac41c1c726dd8f946f8d9592484e0537e75ccb5a091decb09b9a7cce270faef6f687a191c606c7c8fcad568d98bb3cdba72d2c10e05792a6f61ebd280d591a6816f1ddc8a360f392c6dbfcb25711ac5799d45b0b61835fbcc8d304c7edf509ee9e5272b35f6917049c1ce39ce9e26142ac380d8c409b4a4d22c40e5d347303e8779fb9287e3a8ac4c6901eaa44a4214bc3b43bb7cc3a55ffeac20d3611ea0eb77c7da827d00006d93b0d1caf3103f0f4e125af414e5ba87e38a87e3907ce8ce92c6303c027a34e8052e8323f002779fedfe32de7fca1874f12beaf1d2bebde0ef5c8060e341ee16ce772e4fbc3683220284bc102315f68f87376be2dd9f3673f370d618036bc4caa9c4322b9e8f70d9ad1f507743155880219a99a8ca9f9635138a8745c233dcb5f8f144e77b3d35b429a20f2fe17b9fab59899f330f20e828fbb824dbb989aee10aeb0ccdb74c27bec43c8607632c1c7ec432c82cd6c5a31241702d5269926661e0534cf3088fb515e59e5af1afbdc1d9b9b3edda8c2c9a823eb732f8eae86b339dc1a3e76d4f1a481d59bd8e790b9ecfedd7b6966e41eed5f2d4925508b90ac6d10b1faaee58727f4ffd23f3e4eafa01ef0ab2c61c342c0108f84ab7f4ecaabe930d327438a5309fcffcb3142c772587ae18472414ae5ff06d8740cbb2016891deb082c5688caf251f25895e1bc34b94f420d164ff1a40d164e426d1d285913497f0c4f08779ce065cdc5932558f3781b96952d86f8dec7420f7e2d2780f50110061c1ad8f853bb98dfe1da13775e066ef087f98448ca265a3e8f3a1af718c946b6466910fb739cc27ae276da6fe85b6b63840137cfd890930e8f19cf37c1d0d939ffcfc49638f1f4ef97276adc7fa60a3d10a840e41be33809a922f727c454867dd4dbd6c29e4d80fe4ec30a7e6ac3b53b5a5c3870fd4119cf165094a48131fb354de1a7a5a88f7e4f47b28cdc712a24ab12139a155eb4aa72932a6224c0f086500e860d1b189c8bf4207a5a7450e323a57a33a61aabb784208a4b293e74807cd4c69f8e6b972e1b61cd595dbe341abc31f24bdf321a69df62f56c19e2c9c903ef4d42415aef33599a329cfb4f56972fc09df01cceded096bd5c5f11d9fa2740397b62a6020167b09925c89a14bb11074794e674bb014737c3a6984ca3a449d628d7a9a52d3109ea933749fb47ce53107936408d5d993b27c856a0f6ebb3eef18024a504cc55129c8d025632b30758e04c118f8d263ed66310a024486cd8a34844efbdbfb29fa5ca5c105ddb8d36316bb83d0c8470b0c728d22d5090b92a9d00b439ed7bb725723a119e3763276c09b6b5ef2ece0754df3aa33e3a5bb296f4614a0b4f8f7ca1933b0675f9177f5bfff12227b15c851f45e266f2c14430581e7ec02dc7f7e0e2ecd143b7d2715c3664799a37d979a6ec63ba44056f4cefc7f5e460993bab1c229c2d7fc04d3f80ada36e47b0e7457fa53ed62e5024c66acf98bcc77739cffb3a4db0221b40b6f3085a199b48363dde29032a7609feeb7c6806b11fba3377b54124d3516e45279e005805a0289f450093e4f6ed81c0d9bff4814fd62bb3bc02f7f6fdb7677d6afc5c57f85e220cad2f3d12f984dd69d505491ed3025c4a9fe99a7956faf73a764cc020e99b80b5c4a400b202ea48f5064fb6bc206f5ed306ca8aa72960ca237fd49d160f1e2ccb7f913e2f4a8b549a1a7dc9ee59c6670f51afe0829dd09e2cb1d4b0f556bff4f39989398ab2264bd596a9973b1db3f092ef0704a2b01ef4d09d8647892fa65e251bd5aaa066fbb3079bca23ac2fff7d35b206cc0223fff1775ffe557553bce1f44138451ba28787f457c55aac0ab36eac764390227ff8c26631afc6d2cab35b5513864fbaa8c6d10b6a39fd7a2e9b0f026dcd12a84c819121c07627c3f290bce67f36fea6fe976b2fef06038730eea042ac5da3ebf5739f4030c37f3274bc359e0e1dfa63a7ab6fa0dfb3c51f5ecc4d7c931615eefb8f7b461fc66f12520b4cc24cc5f9abfcb73f3d4f31e5af5cdcd01c74d125262bf3d62e7fe3fb12219a3fbcd33e9ae200ea58ea01b5f7c67fe4e142de02e225db8327b9f9bc0a76a6d3fbb7cd4a02da65e111a2b3883fdeae6d1ea10f295b10e4357c9685659f783ac248d2fbfa0f1a9fc9f72931b2c5919af221468b6a186fed4e8604e88dc8ba5d6b174ecf9c532d528bc23134b3935a61e7c7dda3a8ef81567dc796fcf8963c50aa189a7528ec8afc878281a5097af233a43a54e0c0d7bcb44c0194f7f1d3da1a0ba750c4b599e79bb19e20b08c7fd587bc84d2f9ae758b314c3dfd489bc882f4565803d3cb2453302611e3fbbfcc8ddc1fed5497c80e78f78b0ea71754d6286110d163b23d0a6afdf8566285e4f2060df61c1942e43d884ccdc7149bda3caf1ed7e097b71f17f26c88695e6033fdfed416eb402b265f72657b695f60613c9f4af496b968c6199f352aa18fe3fd578911a035da4c71f6e45f7d6f14c3dcd97b686986c5b3e1c1683d09f98f900235c36879df1e0f8a3ebaf0a65fa21ad6126d0e1f2c3913b6dae6febd8a78a591a1a30051eb303e4812c283143bf56817bb056d295f0da825266276d7de5621390fc03e071e2f13491c901bc325fe658612cbe40058c26a4512fa6bee14ef7177fb2a81e6863db5a271368398fd7c8d3544c6515a443a235b9a0e0f2832c0208d60534bfbce889bc29f65b0c7b96f7acb9dca038524e0669c73f584d9ac858a515c4b556100c639e15a8f13a9ad255dc26d64b50dac0d3a746d8ea76fde8796c47be67e44ff074b7689f1945630367db23a4322e39f8fc5b92ba30e00a51bbb373336e1e4b62d42a1b01b029327e41bad900aa24268dd2f76b2117b4a55fb198e3464a156969b7e9265a189010fee8eca51b56e8fc5573893b0466d012d75a53e87b3424f3959335f6c22cbe4025d1cd1cf0f58cf7634d03e5d94ec286dc8eddf8decabb8be74ed565ced1bab4d5893124fe5f701563b48e11a4ffdaf9a639c99866efc5d31652fa37dc980224af56eb3bd3eb3d016da4ce6dfe090abd175503e9cb8e990b21efb7b5e82d12ff8380ab33a2b1cfa0aa2077959d16b705c9042e79e777c02be71fa46922d650c31583ee96e91a1ac9734b4b7df22973fec354cc3145646bd78580b0c4c4baf96061ded0a32ea36315a99d8c3852ca2c6de37e89b80a16cf47929fb4ef594fac547b38f4a680bd9f1f96f1250e10fd0b7866ddc53c43ab90435d3838227dc3f843281e062323321f0a6584e4d41abae9826d68f635c81435ce37a17194a9b9623b09d383d90afac8f324b56ebb3e27a204170f9da46f8444e3382a1ea40f9671779f1d3d9a7b6d74e93fba1238bcd355833fb9fb08ccfab1ed39d6eaf5d2b3ab7ca7764904c69f5fa8386ec99da2ab21c09c9f64d38a963deee697f6273ed0d1688d6649835bb4718f6b0b2aa42c52c979569bdec842836b7ba4633478587935c2ed2376ae16afeced887b3032f5574b51919c8c76d96e27671d485b242c32fae8edfdcbad62c685110f4db77950c09b21ba6f769357d841acab499366a08f7a5d7f4fc8f88d95fd8e0aa80310150b8b0e361adf8f08d03dfd5bf0b49f4b79c2f2a4d35a753db380b9dcf0deaed43f3c574ffe2197eba3cc0e8dd53a6e9edc82f23ea343c6640cfdc3e61fbf09331833b1177683e825a72ee166611565f69c68c01cf24e0f6dde2195f73be9350412e32893bbc5e1b22d9bbc9eedda3de6cf617f66fdf2a96d536d63004de81b77a78357e9780129a59fc0b5bbebc56c23aa37f682b9a1b11eb1fbe452a01024e74a2dfd7c4bfcefe434cb6eb06b0b8aa0713ab9a683b09c4a8862ef66bfe1437cba39b238c5b79eac2382397e56f9194c1b3b42418f2db52b521e36447cdcb74c9e02129b71f8af6fd3addbe9894a2650360057ecfe8beaea11d1b75c34e1cbf6ee632a86bb4d32278a7b538ceb10aece9026f88bfb15d24581c3d8aec2df403bccb7cf281efb7d7fb2763981ee6d563fa42c4d2e5d61ccbcebac16ed5185d35c3b3a3afee7f90b6facdfb365b372b4530254c3b0ed4a448ec70894a3f8bea975292e5a9c4f34882fc6382a349ecc3898f6bab5e6d03b127ba934d8dcc0e1c246a5b56a944143cb2c129c180b45fd995be92a1392b8dcd0895bbce0b17f70a76203f6ba339017c2f0f18511d02e9c99c882ffd2847414d77ea35dd4a76c540c6e5bcbefa204820154a839a51ff00394678231111ff115fd4237eb2c33af657e2681f2dde9b474e16f4f36fac623f11245351c2b134b77195a0cc80fb4dee0496cd4bde1ea119dcbfd553dceb9e018265aa06cc3a47b3affe5a6d8dce20f921c27712e541868680e807f185d206457d74f658d28ad24beb2b85668efac2020dca3813f8d3a0f783fa3eaa96ab5bc81662cb86bc5422dfac4570e956899a3d07390ec6881777c204854bfb223f5b56c8fedbbf94d2c841615a803609e6e8d8461a2a3847cbb2217cd843a650caccfffadc9adec29e76b02720e2c9913f088e4e3ec871c3b095f8c37192fe3a8b04af1b5de794d6d5278b5f7261f22e07c30b62c5e5c3381e0104f1f77936c69f9d5e8429041a6038e6633044a41bda6c1ef9a5db4517d989477a598216b4310e52ae44d7d538529b3ab1bdb861f1a8ac4be9d2322bde1fb290d2a658a69e2651924ced52d38e6284df9646544b7a99683928a35d078091ee1c422bcf5f2cea040b76493cd322e980d25beeb5d6ea9b60d63a01062400dad6808cab80a2d00578c5a59ef32303e48ebe6de873475efab9943c83ed2513a87f5c3c27aec37845af4c90f84d692a0f7df68a2ec895c1532f8ad127311617ebc03f5efe4d72abcb3b634e7d914989f01fe3276061c669421b46855fdd075895d890dd0e7f27c26aa18570947ab2a6ee4989f41412e4dbc2eceb2aa5d7fd88c3c7429138b8a7678d360f0792194a730d51f95258e1229c5bda5b162139139de0761df04d5dcc76fa6111b09373363706857db34a4aacb321c2dbfd58b4ef08bb63bba2d19bee003be15f59ad0bc672f97e5daf0061b0548ca22528c73d281531a17c0fdb88ec0c0232bf165f1e0a4296a76ee1abd7435f2989327f394b0b4ddd98a966885f3438000a2fcfd93603c0942dea17ad024a790160f009e7e3eb19a153c468be141cd23e93b2b618a063de98c3d4c301a41b5df93cfa995003519af8204ea5fbe6beb43b2cf8091b46b0bbd35b35a32cfd2251407722bb2d3cf1aa90e4fe0c04867cb82513de60e3d992e24f8b53b695c83310901e650f4a7386f219e17ee94190c5920c7c860e148c140a8fc7892b14655fa49934c91ade677fe929021c716eab3c0ac02b7b20ce09d9cb86443aeffaca2f8e25d074fcf00361aae915650ebf389f7bd871b2b9e174c3ac89428f54e8638e240481983a447e0fff3b8f7dddb62483f1ba06216cb95429eecc75d5c777d455c7971e8de4c85f5612f52cc26b64179386b255fb99bf896c1dad2a96d84b071e0173115dc216991a68af9bb9aef331672f0a168a70296e060db79e2f1ae1d5a9782df1e7b1fb38b78a89280edea120158ea6192be5a6878058fc07017bc105299a00eea66d228e9dac7b0c5d5845e70caf84caa2807684a9cd6d11429be81bf7e9d1eceb212d5b01da945aa7d6644dbf0d2152d0419a9dff1cdd1e80eaf86a54b2cd9b02f8bfbfe59826b364c69088f120c2a66474c30fe4117abfc41d8e969d1403f239d90c937114c5d30770956beca8c845b4f7754ab7414445307544413bc8c8ba862d78bd3b6953d543d890d9b570563642f147f1a54006e1709426d822e44c755abf43ba1096c91b514338019af2a8433dcbe64dff99f8711101b7017d45d84bc1691a0d6817f598a261f60e16457ad7e93e380aa3f011fb6c7bd8fd7ca5f07e00298a0a7ce7ae9c6c145d888dad32aec4c2bd6fa3e50faf7bb47e49798497479d3ef233322d5d5efa441ed82a7834961a964b2018fa1c65f754af38a365d429a71e53d2ed82ede8fd8f08b37cf3697b76f527d4dc255a29e91ef003a8c4ac3c39dfe4df02545734b962b8c59ad3bb86ece8760d92b3749f466037972a30655366e64a095aebf5f986cc7f3173a2cf78178a6c48edb14664b38775e624447d8634bb266c7262b9ef58e582812bc4599de5a228d4fb6917072cb9ccbee7a23f91a7473df14b4d1ee2fc6709612534acb2f8c2cbee8fc4420d60ccac8a426df4934cebe18cc2d9363a154f370d6cf71b97f07605627fcd25c6ea932d0fa709c5078eb3f9c4d2408c04c055d3e62d01b1313240565b2fcf1fea58738eb76bc38e394c6de644ebf8d1035372902a6567aad146e88ca6dbc6f33b5b66788a201aca166f12fd6c2882a56d40af8c9a668a98f4bfbcd05177c6454f7ea4dca19002e785269a559208858b776d0bfe5be47b6628c60daf063d7761ab155f4c775284e7c48bc585a514c93dddf78e98239ac06cf76f8e940504e954dfd04c139528f1c32437633199cf0cbbb950ba099e49a4ceae822f49ed5f2d5db0ba21cdaf7f6fe3bc9cca491f276a5d79b7d9784043c6903826ef80b4da1a792ba4618931fc9c5321875b14082fae11a8e9886da545f724560f2537d0265974aaa537a3fc612b7786865b7de26342f5ae1a2fdcf9fa1d2959dbb80bc6a3de5a1cf6ef966d9f9a07464bf8991087096d2d7026b9682fc8868e76091d292b8b7b9d264afb8a2229394c1f1eb91fd0eac48c908c02946688b6998e9b54af663bdb171a26d7d6309f897aa299eb6f2bbcde79fae5dc5cbcb62258d4a14b9dba9093beadcfc97299ab296457936d5fc017fa03a571e7cac5187d6d54f3ecd43bf8a1ed8df491559e2d350cf6ecdf8ed4b68876fb9b4e908f3db331aa94b3ae3b80a14343890c69589790287636ca660c7f513b3d40a2422f02e878daecd07ec2a32c4805dd2168dabc4e61ad3ca32b6ef8dd9b90508c979dd03896e5e411e7f6b24413aa7e09d6bccb2589e9247d6c11962fc95d9e14554c87358c1e3b37334a16e40f69ae3918c53e7f4e61b37d4c1fa60aace91608e466c37f824b32ab0d76f49e34ae0552e1b34ce797f1efda719fbb383c54edb4bd001849879c571325c21a01ead65e807407025f99b3630946f3ee594cb1aa939351c77e1b114d9a8d3494a23b463421a19d17975cc13e55477b09a8c393501e4879f8f18fd527be2c6950428b5e8936dfb5d2656e363e0ff7631ef4a9829effe67a79d34a48a3603c4f1bd0a69785b9f5bb89854656313f41ccec799eb158b2192eb84fbc14742f0ffe5a1af5e170e927e4db2a9050a31ba7fb87047c283bfde09e0598ae99ef33abe58d17468c7a1caead5b9447a130367066d84db473a1870bfc84b89d1b5380a28ee6ecb3b79f6a0766a89ff9a4dbf9d6de28a82623122dacdbf9fc94685e895626cf357d2c7729d11d8d48465841680f83cb76edec6ae87702358f40c01022e611175caf90c91d1892f34f5cd11a65ff568000e8b5ad778b77a11831f17e2e127ab4403f261cdeebed6c14d61d1d98f8f4ab82dd936208f68cec8ee661560f902783a817e149c015c9db3e05cf79e47751dd183adf552d0e0dba0e88a78d751609ab6794e2fbeb4e3ca195a608cb19ffdced1b63f9c1648f1dec4d73a31adc0f6cee57c2cc408fdbce46148322ca1a58d1013427cc451dca87760d335689ceaac8b24df764bed145841803d536e6cc1715f9d27041fe382c99bfe2b83d5574cea9454927901f3bce799143ee0ee83071865f90c510e5f262583eb326abc91158851c957c13829ed9e675ac4ef7b6f87f2d1298170da094be753934bd93ac4af99505f2ddb0303ff8ca2e24d76a03a8140ac648906cefb8b4f9f6f027fdbbb635dc378909deaa46996b2e5695d8988342245a5f3a4d78fe5b882faec48067dcea9e009960caf0b15887d957c86e0f24b2eb47087e89f5f32e6e82f41c99ae9597bed44c5c7e69ea091e9c71334874d16f9a7d31503e2c6a24c047eeeeb39226185c68ad3de00bbb3a6395923b42239a97c6d01d65f02b592de48b38b490dbc589509fef4a80a058a506dec7b6de51dd8123efe5fd762486d11625851c64777eb68f903511b2d46b57b75a8ecf4f2674e6c4151e28a848f2dc995ffdf28a4260a5b3754195722896b73eadafcd9de3c5bf98e1dfa63720f53cef21ce76cb1ce711b7cd3c9d4226a2b2fab1f46d65b03b80246faa494cbe31ecb837a99cb9efe0785f2eff47caad6bc149210f5dab92bf9441a19c8f903ffaf940a09ee39483d6d67323ddff9ea303737f87114b05c19ef85190a4296dda03472696b46845fa7c870601c5d67c2e7f1cfa8f9b6784b6c64abda19959196e388e70be09e5112b8c068dae4aa1c97b2b75b7c3a2edd42c80c93515a5190796964b533bee95a8d7c26bbb25ada012b29bb38fd0852d7885aca082eaf82d484684810653c3fabece226ef2d14a141a4a680dd4b0eb6aecf61931c3ecc8a1d39242b79e5775a8ea197361007dee74aaa9c3d0124abbe44114115e5572f2a04d559774b2d1c3da1541c13325c87685f821473345eb3d3220b34245894213cac912446e9b38acd0f9c0144304d7f1fd3260f9c5b6ca3cbf32dbd9e61cb9a18aef940cdb0005702b101af280a3b8d4f672a4cf1f5e681c59d020756c2da294513d39c458bd1d7c42a775962e8d76be5f70419b87784ad97008b3bc5ba5ef36d1a6a65a884bfa937f398fa87df4c80293b3945eea83cbd28f8bcc2029bdf526d195db3c7a92fd228d7df83e3206b430bd7bbaf158eb90a6334f8fbb379d1a496ce9405eec6fd6f680b55d3237a4307088fa305ce3530bce8b86ece317395164ec9775ab07e0a416dcc1684c2335e177e221b1e961d79730f990daa5b85102a1ef57026755319b7802d61748ccfb3eb08afaaec4b249dbbf912d6554a44e2d315319ffcc3afe66d38c92f5442efea425721760f47ba0008b368744feb628f4adc22d775521df6ab1973e46830fda891616ba881047dcb83d9cae7d366093d0170ec4fea238907faa803aa218c2f1fa22bcb50eb94449bc66c299b0ee189c0b2eceb4382dffc058449ce47430919d88a28b22dc2c91ee50e7bd87a0303311ffde330c6fd8a28b4da0c2f136bf51d3e9a0aab63b3c5527eb57241bb748c25319509e4df79bb19f1d31d7eacdc4bdfea7082d220ef06822786872d578a3d9f9a51b6b36398219879493c42b05580f2d4c1b16f9e5e3e8dadc663f51d6eef7b5970f16138c82a1ea42d39a933bdbf1a68d8d65adcbcebcf5f95771c849afce7d2887bc7cac5ba6d11f3ffc4054779aee4c9dd2660ef1b2925dc7a5618cfa0a753332e9a0aa23ad1174019b3e7978388f5be97654d0fa504cfeb9e84d06f29e398d3d91bfb3df91506ff648c079ea870a52e47bff8cb0d6e6ae1c38feaa67b5d32594363eb72190629a6de103883dae78fe67f643f13a83b3457743b73b1964f61e0bfdb77c7ba248852a88124d7192a034c417381804745370d0a7b4cc11fdc8077a36cdacce2a60f63d88600901b2c332ef1025fc91be8f84d7a44fbd4c75f2153760894b82fd73fb1e0fc954fdaec42faf29411213d94845eedd204b522565c68aee5ec890e5496488a73b9971387b1073373d0897e17762b3e5de81801c814e495a35285d55c9d9ccdc114b76dbe782ba6e93a565b497316e49818e9124f7e4b713c663a46b2717203d84c97fb64219fba8188a29575d0985cadeb5c898fbfd2dd8fe6dbe0fa392dd2c2f2ff3b9751fa3f4318a331532e0885708c08c1a67e3e3a0ddee0337876675ac66df699b32ed2e5760fb19e1942f32014330c5a99cd80c4298d629eecd17ad434e3cd25b174edf0084452857b02fb7419cc54f93b5c32c357a807cee1f5d9ed99fe5aebf60bbe184d24a1c9fc8f11336a51962eb3199d4e4cb6d7abdffbcbf6201e1663f8b2f8ce412d172c92df683ba63b9f40947e15c15ccb428b6271d475fa9301e4c72344f6752d33dcd86b9920a6a8f21753ddf7e3d7bf14d9c585640ca4f51feb36cce89cd6aead84caece6b7516eb13a198b570c6d7e5cc31481fc0e789bb246820b5550d3514f13da3c4bdbacc32bf4cb9cd108f4d7099e8330f200708acc8d6dfc8649e3d16057506a405889c9303fb72b89e7f8f03b8e59a9c795e52003a594c3d6507ac873485869f3e4c1af6df84e77150162cc5b6adc40c9bca7f955d2f75942438674eed63c8a406677dfb0a3bad27e12136b14f83e19060211e21be9ae436d9d0940c62143391ec61bd4bb3f83bc27f3d7c98b7ed982112d1df793a4a7c920bb4ab6eb03af6863114f2aec1a3f92eaf7a1b93ade55e63c19ff4a1cc21d56514e119f1e07bc6b970ef06cf5ce0f3b73dc7684f8bbbec7680d7d1174f1f65cbc22b80a30a88d6b95fa3f1ef8a95cd80fd0a9e0fc97dbda7558c12de42023193628b9a5f3b8522bc9c6ff6a05f212e4f353258d9f87847bdceb5992a3730f17d5323e72f201828e8f2d7a6d18cd365a17693c1daa6723e8775ec47cf434c18cd0f52adfa9e12476e79220e03563319011a00feb97af841099b6a3e8899024a30dcce184022c84f84a5070e47f55e56a410e67ab665bf6e015ea0a596c918d646387a3bc513fb1819072bc83320b4e5b8999de1a7cbef6a3808c329ae52633cd388cb399053e20ca0fbcacc98946d937a879f8c7879cdf64ade42256e4a99ab7e6231b7a20b1c2f663f16431581a32060ae602305e508e5178a003bcce0be2c478937f5a8e9a0a17322a7268ecc3c430d17bce95352a4c524f6577f8170feb736d60d8f34c9571bf5ae4141b243f143a65cdcded60b951226d85359380dd01642b6c8bbb065cdb5efaaa11b487f8b6a9dc6ddf830ea47bb02512d001a90c43455d6ddc07747b1dd736a5bd36c4063878d34a2f104424a23828717549eef3e0ed3bd200afc8b2ee9b039dd18225ef4e858cb6430c336967609285de90079843366a5c12853d31758cf2c9d602123719aaf302536aa040a0f5ad4db7c155a2c1cc334897ebeeb92ad802732a7d2ed1248afdf6304b8189adcc176d3a83651d8042043e99344e178a72fb46b392e0ff7c8310d7d188d5bef0e0e9e142e1fcad0bf4e72c3c5704a04f69c9371a272bac2770309d628688b5e89f8dee4434b53cc36cd3e74e2ef7122510ae6191b0bb16fa1e29f40c133fe9d4abbc28a1f5955b9c139ad1793c7aca66845e77d9f634e4dd8acad7e1b02f6dd6b5e8b14d5bd78d324ae34b865becbf2d8c89e0671e125a03ea247d7d83d34dd88250a8f27e9dc0877a52574da6a4dc05aca4e922b7a19db6badb13dc97427289da5a2b2674014beb2b040622dc8132bd3cfa7a1c593170b5a1949ad8e1a32ff14896e1e102a2b324af296a8a02d4195eae278499be9cbc26eceb56c836cc3d92003ad3c12a592b4904c9884800982eb5b4846aa4ce89f97d0159ac154d260691f8b4ff696e40cf32bcfcd9b285fbc182f8a2f4d0c6aa992fcc1693db63210edf42b7945f49663e4cafef3087c24ac3ebdccf95efc3eba9e79a08831b4c190c244da97220aeab31fff8b72e4ddc4e4e34859b1d1b9021ecf6ff0ffe6d09aff2189ebc64818ddd133c807d7f4cab5b2c85db7b31e2250c049f5d6fc77942f25b30dfb30667c641223280cb85545c3a0230c20e0af0ea4cb7bf6c1bc5285d719d23636afaaff69e1d596a9fe7656fc14d2284b3f0abd6f67ddfc8994fe3060eba66683896a0e1e60bb8dbe271ccd584ba4910d68e8f235dff6246b7bd6bf3cbdafa1c6c5f464c6dd37efc2abfd65708b5eb540dd30dd6ef6d150fe4a4f183caff42c84fafd6c0dbccb3dfda490689da92e828b440166aded54a21bf33bf216354535346f4e464b1dcc73f2d8b60c785f39136c18fe43ba68a52615f056c2e4876c0777958cc81e276e0384d288e45fbfa3a5bab5cc4ee9608b03e9d01c0105993244427da53426bffaf65010f03c6b52104c839f70a65d5343b51f49b44efa43d70ee1a36e5482644845dd25fa22d36b820cd4d669c9ed8fcd066f4d83a6ffc9d149d87cfa30b79ac89ef66846827d86c062df6e8441cfe44bd70cf57c194a7ead508fa6da576cad16d9a6446c8ab4893b4190ccf71455630966f71728012d61774de35b0bc494ace57285362f8a9c266cf60529295a063f257ef1c2ffdd1089facc8f948dd066ec8650f739c5c4a8d3eed2a252b1d9b14e0c72596609b5fa4abe35ecf219b3fb10b02cd9b341cfdbae5cc58f6ad0b85945f1798064cc476f0f37dbe5068288613f7800b0c25dc08ab9905d59832dac675f5990e8289f6ff4c1d9c7b84fddaa2d1a9e0b17b922e4410af4b5e6e7abb7615ef5ce6524dd93e0b7e666917c35611187b0ae5f3ad4fbdd91903a13005f686a2e9caece46d6a21e733b6269df54ba6ebc98a580ff256fca8dce1789e01a36dff3cd6da11544dc6282b7b1e1e3530e5a1baaa12617a82e2d5cf49285a22fd53630fc4c2d82e187418527078522bfd3e20f348850c01e0f1f48340e8beaf57c68d9dbcfe77d28097645ead6a103686cbc7556cc72811d19a56c14423067f7493a38ab3d667fb8fce7d84e0b310f890680c4723cbd8b177524e307f51ff6590e7b1a7093b366cd8042899bdb270dc8ae9e928f64f3b12ced9658f77a3009a7b501b55a193c2068f02e04cd1a1b6e036ecc63a7fc837d590e7d9d58be942f29b10ebe463f26dca5ee30bc1abfebe0c14f9a7bc005f5a52da956188846c15edc4f975fca376a6196011c564d0d5fd5d4e429e8ad9b13200276bf173ec50e412b9bd7bce1dd4fbd957bcaff684ceecc44b5caff29004ce8b3b7b988576d78197e3706a4f83b181ead1b2a9960167581d44ccd512707e49bd3fa00d4fb3155ceb1c29b895b7220b3cc2447a7fc62f86ed6ca8c2f9ff045f3d784ba2e0c53fc40351045669ef4e45894e29fcc0b75c9abee248d4a7cdae27bfdff85d4d272558dc34bc0273123c26e48b0f664e5135af661e324da5d7575f2dd77a71488accd47dbf2e5317874dac835c8c707e7ac4ad90d06a3623068c4537f4fcdf5addd26a003eb8a47fc94b0643bfe1152472eec457d6322a19e7a69a0e15ebfe573e4c8c29e659fdb9729e3b63276c7d07700c7ec01bf7d45039f7be8f4dcf4d4b1b1c4c401ca84516051dec1807bc9510728fd9ae8c27802a70c922125daf824af71ff98ab4bb07f3b1cdf6c5edcbd9df2923ab3760be2c66d3df6765301f3e592e10c4f040cc222fe7fca3b4945fc58cf7ae50e29a6839d2189c62302a71c9b86491028d798b43cd4d00f8e7a9e8b50ff1038f5dda58c799f03b201d7c6e6e092b44cef5932aeb62370b855a70d113607218d9fee02b717edabc22848920e8d7dfb460508b3813810eade9e40c9581a70c102d5030a27112926b79c6963fff01538d02e529d7a595ba337e859078ebc029a84046e83d78718d6d95de6ea2fcc9b98cb73c9d08f310aee3d43661a4f781dcc3478c58a9aa6f79433648a3c0438a2ab1eebd82fc06b6e6206752677af67cbdeb3c30f0a55c93f0f25599b493bc6cbd306099f663fa37a1084cec730f120b5882ab589b39731b98a1dfba479360747b54ab62307cdeb15270f651a5feb6a04a3f614257d2e7274cc0b7828bdba64778038f5aa1972959e6e03b4493cbc33a8985950e5b13087161cac6ed364969313df7c33e57d1690aa58460c7378b5738ceeb5b9085a4e0fe7ef50f397a76d871066f3f9084aaa098f7b25d1c9066cca05fe14377a1f9e3aa3cd5c3f1062e2d7e7be3e9326ce968977a360ee6a34eb3e93c84fa00f31c42ee2098c78b9e3dffced4dd0f64cb22b91b2db15fe107d422591deed56c4b14f9c5b560e9d4495454de2714fe9d72513ba4083eb5caa46faa2b7d9ea63be2378a63ee2c78080c73d5da9b609df1678ff715cd6b1fab9f3770b095b6ac5fe0bc9ae15f4158b361d8e4011968f5705ce0cf78e5fe8cb9f9cac2b7649f80fd4f5b452ec79896a6cbeceb1e9f5bdbc6b1afad9dca4f1b644cb26abbaf8181ff403f60fe26e7fa3c22ca110693958e55674d1db5b2c49b4a080d20f57be7c19d4fa34408b9a6942c1971b79150281abcf2f971c992ba00815b4d4a3b2e5667ddc5a9f3ca94d3065d664253ac114a2b67b95be721031240fb0efc7e5078c1ddb1141bec6082731a828b2702e99e7154e740ab79abb04f3733ccc41e3310a3f33acdfa44dbd4bfe3b647960a8a039ec230b187f28096d5c546bd63fdbad4c20169a3617201e64240d3696b42cb14d6d38d4719f4248f20506f85f2e77e175e144188e40348aad635ada9f4139dd958e68cb3861aa6e2b508c334093d53791134221d3ac8054d0c4fab92365d34c47bec99e2b1503b88d984073977adeb43d8726d63d6be929c238757a15e6998ed46f32c502a80f518d99823d082bee38e2739b3c9a18f32a9f90b16bef5b6c53c2bbdfae27da73d85dd7d3e2189bc215209c3bdfb9ff1e60e727df839f21816dd710a5410f60b60d486c8dcbd3531ceb1e1d421e202c26a4e8c2e14189e84b6c869b29d3a19f23c0ef32d2f03a5cf51015c92e1a847f22d2c0fd6018640da4852bc189152140fb23cb29365d6150e1b5fb871f649a8d37cee9490aedc4d088a5f70574109943f777a91d3613ef4a12459db5f425cb84bb6a26a4fd7bcb4ef464ad3bc65c1baa86979c3c451697fbf02a4df6c6be8fefd56a98c2ea5bce3385f97eafb6d5026170edcfd46708b1770158c938848666724c4dd06e3bac333bb4dfa147b976e4128f3a8706ce81b54e6cfc0c4a21779c5f77796e402d273d52b36d4426f78c8e67d46fcbadf998416ffee274ea57d914dd728f45c47db58373eb0a37152b5d2a8a2688473ca5e1a5ac30c7157ff8b4d6ddb8380ae215e145a18f25370d7ae701f83ea0ca5335e88fb37b26dafac7651f71712a79b6bf3091422153cbb596bf43722b062eaf69271fe011b73c376e339c067e04de27b1afc369e542dfd0fce02d55dc477d5c1ea94343e3636644c448abd72e481cdc72048d79b5775c7f4d20bc30961a46b85682df3d79d886303f0e2324381f29ef0355cabb2487344b479fe4e56e4765046f6c9c5090c257aed6d9a9ead271b83a26975c6723ed6a84d3fa8b80a2b7e984daf63db01c84d2d05099c1f03a68c735102a3853794a11dc2e4f7e38689808e17d16eb3bb1fc717cbf35068261ae0375524de1327bc6bbcd260913737bacd8c2fcd1741e182572d6781909ab67f4cabeb735016c9c78c423bb2d814af0b38216baebcacc809fe5abbbeaa99865f7a193ae46c827397c295d3bbba6392381aa3f34131153124593e0c221f727c5bd7dd841de30e9afae929e2e45a50c899e122d45b91452ac57efb1428f062ff1c7a7801d739a087e20e36c4a920fc907d7e327093ce075c8e12fe737bb61f268d27eaf18308a7a925d870e69ec5ac5678b361211174e056bfa4f8d379eaa5e6df58d8afb7cc238a70a464557df5b13aa75b988928f2ea31d370116c748c9ced7f05b3067b822e0916bb6ba7d2a67fdcc8e4dba99035ff3cf7c6bf3f716529200814e355515ec02d887e4c44f03c4829c5a62e1abc8aa11e7d1e635ad5fd25cb13e5b1524868e7d0f4b8bb573f4be9f7d8c72b0f12ced6b4ace76775d6cea9965c15fdd57b199f4a64d61e2e1ee15c55e89fefa44ee0bad81d79769db4e6fc65d95758d9f3440c92066e25f1b55bb8f0f665808c1066f884cdf55ec385081258951e206fc394dd5e606d1dd3c386b7992cffd9e7f5ec07b9929f151684351ef0e54f4df938be156c3388a8a7eb100af333602bf59e5a30acc5d23014d2ab035e47a16823726dbf9dde7f786d4c8508a1b50706b33d4a18df4a449fe7ef58db325f568a0fc25fb6cb1913bcf5f95329bdbbb0b4da376a68b21774cb711e29b0439b5be814d7405c68e1b89fd9871ad5a3c7dad5ce188bcc76d0a3b520b2d458b8ded93de30da2fd2595472408fefa8127245d48b4f27b2372c9bf102a1b115b88965c5ff6ee0d35af1a929c10fbbf2593f9fa815121fd66f48f5e9985612550a4b7171f4211063b09994050212ad048bb2a7981db9244efa38cc68f87c0a29490efc7bdf9d5f54cb3d3519a64cf4ddacd91658fa276d02d66399ff04785d578f4d97578032bcc8df7a109fea5a03a8d5ea84e17cef7a895367d2ca409100616d905c404c3e97d85a6850187383dec724a501758c968d40708ce047fef8cb9a66f259ebb82f21ecd920cb9f9b878acd429ae4ccedac2cb6845c6e388a7095d5ece8f4b9e2000bd78d014d4d3c4850e6229393a17c74c497690a1006ffe7ed45e78b866160256f0f4cd27fc2f0c1684530fa46b43bf62ef0bfea8878b904103aec9d697effb07c9ea5706ed5907800dba7a6893cff0ff8a79f5f74598e9855fda5e15a5f237ad092abb82896b457e1a69e8167c038d4c5630f692461f75f2d809c2566eae67946f9d69c595f9c4f1efc4f2e3950edddab2bc7328c7958cde8ec3b03501c90541fa60ecd4814c2ca3e0616f1c176f2ad8c500ae9a88736bee64a6a3bec9e57dd3bb92fb60ab9ff51afcffa638dc5d207866fa15bcbecc0999260792a5d17cbea3cb3b61a300fc9279108be3d237a81a8de09b9dbbef41bdf26c53c7f5c094f165d1b930ee4523aba9f9e652ce63132200aaabe8e1a99abc9d4b7da82f13388b10f2b208fa385bc011eda4875abfe74c1bf0b199bc90a3f863683d5523b114ea5f54ca23778967e5d712b19458b09da7fdd68bf7a44d4215249aca7833e6baed4db6c8b4962aefd286f61332e5ded1315d5a5ac15da52d8b1fa3060f94ef7a13fc8864f6217b9c7470d7081bb3f447f6bfaf48367814373f0905f0c53e1a87e4a09e037e7caad0b52e4097754d8bd6104c8212a5555089d6e5b8ab81ecf3c90dd7d38f945e622e9ed85322fd2f634ef7318e8c5982c5bd585305b0584245198e0f42f4e911506b9714f137cbe8daee3f1b0141c780efd672ade9d8c2d68902a54561feefbe6eb1c1978cd8f6fa4bb6e9439f65c8f71de54db0e26a2aaa3940e4df2473e2681e8f51ca70d3b91d140c2aea4e1e5ba4bd673bddb3df30057ad7e30f4fb3b69d861d64ef09e077d36de9de586ab32992c307c5f0286aa4b44a19c5dacaec658006a4f74c580b9ae1e522bd117d5008d558a9e7ffa1084e88e924a02ebd678b690db311ad0a9dc5334a3193775c4e0b7ccc76ae13400398942fc4369d3db0da776722007ae5c6ed791c41b91de2fa98565e49431d5b2c47bac06dc5046769e2abfec351016b2a47741e2b4ac4ee462aa52bfc30fa9bd0efecedc0c389baf9239472a003035590496ddad8beee09355ef48acb71ad2d456f8f0c8eebba3cf114e084517ef4834b32665a0a95930d60239ac7c38f24b78104d8203899a1115fdee733008b0fa5ffa24fc014c861f59de82353c0893a57500ae8e08bfcc19259e217f4ca88adebe91cd5dfa71ab2ea9aa844624c01ab8d751956a15f1bbb2b5113c8618e846a0c2a675b05fd9a58b6f1c0ad5aefd4f29378d0a17883d1618fb95218f0e081c3b425051e2922b00f8d6d8602a179bee8fc4c5cdd2218056d306cf75a241f6de94b057425389dff85717c68260b5d43d1af831ea09f0f80b169e2ddae4741e0f67f7c826277ff2e546f2a6dd4b60f91102a1fc3c42a82c5e19d634b7700ca612b8f9125ce7f03c0daeb7f95c9ff9b9920ee2cec5c5a708bc9a123b0b26c35f318db91372448401d4369463a917807d013fa5b04019a3f12e1d210f51d6de9bdb667023f8d0645fea9f492c3c1f84b784431fd8a72d3c7d4d1df2375da2869c6fa8a07dd96c26547f8dc34d122c89255d0d302ce0fe84269ace7dda1ffb1c59d9ea139bdc4de0d4b4e9ac5ca371cf36965780378be8d7a16b0d69199ebf51bd5a40ee863795ddd45258010be5df9354e151d4b11a234b5a3cbd9f33cda6ffee0c055876cca22e53763946db57525294b7805816b611ba80939e99917d27efdea04b844daa5d909e6f3da8b6fbf0151e0b0f88e508b9aea7a3c7521afec882d5dd0bce08048b026f1f9f9f29136ac1859ae99b450abf9145abb8ce015cc99df3d0af09e3bc964b034c23d27a6c5a7f87be5a813b8b47938333f5d078b2b1f848a84d01ca881383f969fec2015b0ca47364e59645dd0d7a51cf79c8e2015305d69e723227815e67d9facefe8a9fc26c362ef05ed4d3a3a576c5e46608856cb4d9507e26c4ffcdeba4a44028e8c8acab2125643bdf64c72261bc5e9517d33ac855204851213ac68dbf26940285f8e816f26f32eb9bf400d9bb645288c55e18b85d5cb61b8aadce92ce9aa11b631df37a440ee832c6e16ed8b788b4056172854089d07a93943bafafc0b1526bf2e8051191ad3f82b3fc447bec318139c05781bb42578b7413993ed455a61a828ef9165a3d7a7866caa603c03e72b170c5e3cdb1399e63600cf52856de3a4b9c9076463d94550599b5ca4e915556a28b60e25de1bc6b6ff418c0fc562e660baf8cad34cae99a2e468e780f5239a1d12efc363da27e9563f2e815dc6e2d3592644976349815157e51be3155ce322cd28b82e4b68779c2e6569365a0e1c3bd959700370f0aaf058dbc1927e4fabfba57f452d0a814639053597b8c74d304e51f7364b6c82e761dcb2b86bc750c48bcd91c3b3676ae566bc03d5b5c042b92b907f51918be968780b1a4791e13a12f7522772674c867bead4bb585aad22b6cc80e5a3d3ddcdeb3856a5581525b47ac1648cba9cee7a310ef8b99a9841c79ffe3b92d9db142a899a6193f6125e55e20f9f8197c55650ed1716aff72dbdeaf71f72640cb536c43217703fea6f2fb9ee93987d79117f0972b2e9370ce8e933f805fad68934ae90feb9049139d6e7912283f4b68eb2325825727072b992b1f03204aaa136117b7f1612c6b08d4ef5b37eca89e2569d4e15b9281daf6ba9f93895fc5ae511ca99085b98b04cef06c57d7a586380770e857dc98e256930d91731e7a0576c7c5d4e97cbbd29b8c0a6dd5e84a35eaef21ab25ae7b9b6bf60a27d9b8dbed64584d3d2e3ce55065fb2b992651cf9f0d403d092f48b08456e5771da2e75f8e40025b2c69b14dc23660edd20cb6aada0531cdd9605985a961271798c0044c8466ae38e0060d6b2a540b132bc5ee7295922ca3a9bed50cf3d2fb9202514d8a55fbb9db1dd641822b371df952df643a977f8be2499049c3837dce094b1d35d630133fae6e46e4a0e9cd6d79bcb586fc83f1a8eee349aa853f6bd1391270ce0e3d6ec58d615e9b3dfdbf0935282a2a639dc84006486dd618f5550138d8afbe23561b99ac67bec14a840e804932cf40fdb2d31fc8b4e03cc71c1eee8c23fa38dcba3007bcdfa1ffe2da3034301e39678d4841c2cb1c5e3c75494918b9c566bf3b9ae9e7403ebf78267d1e2a8fa8a252330d35c029cb58227d49c5584ea125ad83697dc1dea31f350fcc271224312997fd25cf14eea45bf643d0edd8ec9d89ee86412519e794056140f92486cf1dda90a7b99fc87e98d6d77f4490f8e196e9525ca2a0e1948f6830ba2e4f4cacb7bf85e574d556181c89923100e5c71618ab63f87571e398559e31579b0b447e5ec9ae45793f10c880e65a56568e7ac7b25aca813c2437e1436e9c1003253864819843221d7065243d52c965842453795d014f8ecf9976a5d3137088e4688282cb1492e66b8b04f5714c2dcb25e19ece6ae8709f5379668278e2effa9364d02532047f64daa810d9cff0a8ddfa5a109583d16b4fc5c602546e5a003a9edf88b4b6e4783534037c12faf43fa307419788e5da3fcc43c1ae925d752b00d36c69af3e6e2f24c33b131758ef4968a226f24551f5cd0310629df78f0dba86416089cebff0cb68435a53976afdbb5d29c7bba3064935d89a72b53250fa83b118749e5fe2ee7fdbcaeeae6bf08228543718ae32caf8a4e6760140564c46cd95fc21a596b4273ceec8a0714b619709561c10b20ccbe53fa59d50f870b5b871945b134dab7ed9b84ef7ade1854efc80ccfc6449a6680692c7a75726afcf4030b49a8c9398f2dddeb583ebe9277354163b85c266349d9feaf1e6d08e030292b047d066994f33ecf5020f71d32d9488a9dd5a696148399e3bb119d1ed5c1a4461cd68e77f08fd413ed147fe4a0762b462219bd7b4ff3a6276b7adee1d288759361895450114b3da39c53ddcfe08d6e9d6c671d292722f3f1d61438a78322eaf0a7bb4b301bcd1e12723530634f8432ef4b829cf12aa9741961ed5028a418f20404a19b6168f304561b59edfa395ff8483440ce732b785e112bfcb2a948fd6aa9219de00ce04dd9fee5fcaa99a5f55a87b2ec8d822e7a0b6e670af2672547f90d466902ce841b8ed5fbcb2e67d9e4bd363392f41df09149723006d728d53361bf3756c2c395d2b36ae15e2741f352ac302f7a04ac774c989bcd9d19a7bc8717e759b71115f6657f840ddfc762d0f8d094aa7a61e5501146ec2d66cd0fa48b17ffad2948e491277222243e1da08e8830482121e29f77e837ecdb126352ac1c0f34691e82c3dd3575a95216f5aa19af5ff541935b9c54c06a4dd4fd82a8452811aee7d098ab55180d518a6df667a14f99627cf9de8c25411f5644ac186b5d61a337b712325437dfbc8fb8c9f4856afc98d0086781d93a6ed204e77baf6c8aa0f1aa66b7191b512b8eabde4a382e7a62c3cd4e40ffd5ea1de3f7ce8d0d983d81f4cffafa6bb3809d8194166ac7d7756cd9b32d003b28fce96e71d3b25f665e0953a30dd3cfd64dd3e42e540d1ad4e5287a7f96caa677fa2fd86009d905abd470df184996d4238bd065cd62d8378dc546518acd1eba482513f4c178d66c0bee7185f92cfad6018aef42efb37aa507da60c2502e989b893635ccd91771aca2ae3d48ede61d163b57bcdd4c21eea1773e0bbd7e4e07e8369642e14447c20a634a32bf0d7e013dc016965492bb9c2d01d616d44929f3792b78d0e286ffa54394a745edde00335696ceb878ebf42f47b75b91f2d488091dc6445772081ce0c30565b38054ae0e64d2bb19a2b66b31c869f2b1b492bf69a773045da95ead3e2c30da5a21cc1536c8f1aa69d247a8c1d38437a0a5bede0b9a37e7a97334e392e8eb201723746d2cbc7d5689c3c486a3ff8fdb03d57ba2230e6b359025f9cb3fb9cf9b3a6f30ed75738a33ab47cbb1bbf08ecb26e9763877c72ad03ca20f8d51e68d95fe5c7e21014e10d662ac648afbefbf46b3c769e0a8955bb62cd75a6c98bf7419228e59c451be0b4f1e88403275c67bec2109a177faa0489765d80b0ce706507e738d67c28a7033053ebf86796bc843f3684990f3e722e083f42506c84f1a903958d92a4b74f49f3331e22804c3363f6243310e50badb36383a9e8e8c91a337913779d3bbee685a7cd1d54bb6ab3d502db843da569130a4e78c6da5844d46ec9e31b3c8822c9196bcbc5e4c38bc793bd2a89b4d5b37c5b589cf9f5e2d6f0b5a4ff0705d5ce23c52cd8c0326417aaea0bc785755e05e62811ae8b971dca076ec6e4c97e523c6e06debf0e7c7fdd8e4ee9af4353ba4c1e6fbb7bb3d39908c8ae8653fb7e63397dd70c3549266d0acdf419cabfec31df41c5ce997622d365077e0cdfad7be662941e5eeb53e4d5eec8f06f862c4675899d97024041a2d3f8ace1acf9598c8c7f455f1574aad3e91cb4ff35b16b2620e04a99d8179507107160dcecf501a03f32ee2efd267b1bc7a7c4c8a56c8de57309abbcc1076c40513e9db90a67a432cdb03b5b989d0f042c6af3112f20eefcc1805464f6f71cb481b8b98650f8ce049a687de73f86661f1c8cd06615fb95841d6e2d224ee739249d6cc725b8b8099b99765977de74a3136729eef8550697a2ec7b017c7b24b78de219d464dedb3b38b3be4f804e393abe865b664ae0b7cc3e69822103dde58d5bbbd5547e9928d7e1a0e8875a1dd334fdac2d0b09bfa1ed96a3e451b1b0a544647a4694abb358039ac0d23c203cc45bc97e101d0d7d6832673f38b539d6ec0fdfd8904c31e8f4e499fd2ea1f728352654ae9c61499e92bb6cd138cb7d30a3616124ee33cc4f7bcc69d758be324217f49e8b32107f642b2af8129ae45fb3c245f541a33f425895364f80b5a635c7c2c0f897d291244cc2ec20d20554d5c395d8a5377d424c486e7a5e385050dc8243c0ac528275598dd16b9331303201875f5728cd3752d745432598a48f6cbff618a752c42beecf2b01d2560fb16db243692bc2a8704af11cd57ba5e4924b06513940284cb4e40d1f55b625978a44599ea452fa40ebbca7f3c97847233070ca66a09697faf8048feef7eb9d860ae63c765a9fb25ded5c4d6a1584715f30a353c67095f827e5291fa9734f762d3cb6cda16cdc05afd65333616be067aac300e4d853aecc06f40e6699a4f49221be604f5c7abc8883777c1c013776d5d8d8641d3b82ba86274f4dab5dac999d03eef3786a2f3d7922b3c8f783c7135b0dc2487bfb85e51046beaa0346b59582e59db5fe6bc84b58ce5b90bd19dd2216e3ca6d87bd7370c2971474f3dc238d93a2b934489140b1c5e53a14b3552345ca1b21a15c360615a7749822ff20b475485fa7db7c24dd9c7f540f2abe7f5e6690dc0615a1c2aafadc122d88c610e61f3910dec175647813a2e723ed7be972b849cc9249c6a804f4a02cde4db4ad654e8183e80b2be041c934ba1119e36033bf78d5bc9dad938eac97d0098625dcaa9a9eee6c1d25a93e87cb4aba9cffacb6cace40586d7336e97376b9eec0e2ef7e4d5cd7afec171db47cda5851706ba00e37261ec8a895c6c04ebb5f75a4232e1b4e4a44c4b064a618e7857f39b5284e5f2853079a16b13549b0626be055d71de1427c8bc1f4d135610d25704342b8847bf0dcc409886f7611163b32a0e09207d2e8288892639b7aa813bd0b163174abbbab15ecac0a6a28e6ceb0b0eb0e54358daf6cfffc5cff373fd9bc0f83a27fb6b6ea28eb038cb005c29a5cad504d0fdb2f17b3a2b68d95e1079aeb45338d305956b567e5b89f7821ee66f39dbe3d1388914479c4312b1fdd88b903f6b25ff6d0b2f0566be0fdb170108e76abd1881468f8d759de468fb5553c821bc6ebeb855e82ba843930320284c9eed589ebdb104ad53eb4c08bca8bac7f69c788d20253b3b6436cea13d01fe9f045d1213ae5d6ee1b4f521339cb1000fe6096b4b7c0988266e4e3eba3a1a41e52c3c13cc21ac7fecd44c5a3b43980bc86ebe73c754a3466518ffaed63805750fc51d2b90e2b0257cde794e12961739ffbaee4dd0540064fd61382301efe747d8ce16980271743a0a2ef62ec191c21de03d48b8c4fa0b5c48056bfe64c982c36b7a027a8fb85698b8325988ebb9c92d49e133ccfc65986994a6885fc611dc55e111ad8ac15caa6be422ac1575372daa7b66b2093368004b742d1d941baf0bc1200b3561f1619826d2c21f7dbe1056e22baafe717033330e1faca0d52defde3271db94ee0826ab554d76f6152ea3a4e5e2961dab9c574130bb4d3ac0e41b07834b7783ed362a118dc602e3594318a501c6a78df00221331cbe90113cfe1961ebd849fc04d2a2a6eb3226a31b609f91823231f21fe72fa1b5f8557cd999ad3cac8a12dac7e1b7ae496c092efbd807c88d83a6c576dc71db90c007278f74f26c4bec5b0250a47cde367afd27e9eb06b811060b5a24067b44388dddf92ca6747cb6aa5f967ce31965e1ef682ad2e05843ce3b0660f13fbef2f8caef34b2390d69264de5895a72b97910afe093d416c2c1c5e7a9844b06e58adf0be26382f03fe4d9e84479954514119ba2c16cdeb6f021c0120f3e3b9af56db5bcc0a08d6d1e2ba35ce678422d30bad404a4f460a8b2aadac4f664d558955ea1bc3e18d7c7f8b5f005034d1ae9157c2c98f7752c632606f773b36900d70cea51b9eb78d4f08925d9ce76bc60c30dc10d9b6da2fdc9d97fd8fe49ad0a68043a76bf95fdec846512c1765743cff61e3c871b0d6fd54d53a224f3ee9bbb137efed8fde65be104d125d11dab02d6adbb231423714d5b42f549ca824180b1a5f52b74d6c5e9a79a6808e3a26bff503b45c8e2d3b4c80408a177a7c7b25cec43e009cb1fd90053d1b4397bdd227dcf7b16602bf56a595009005ae6092cccf632e567cdb92970112367296444bd6a3331a4a507193acabe3b5e3d806ea25b4aad256932a0ffdad20d04a5eb450193c828d81c040c944a8c57219715817c6daa34473d53a5ca9e7b6c1f73b2fa258b0568dea82de872f2ef619cf29dc9849b9fa7bf4b1ff24287e43177cc4bff17a3ea1339867b2a02b0ec634df227b91ff89a0872edb6c407dc7c111d00e52a33952b2c11fc0e5c66f40f69d88cdc2b4263f79b05a8b085338b9506dc05ee81eaff792912cb5853ba3a62a680eabc0459c13f42bf1d840131d66ba2efa97f6f96f5e0f3481fab401e52fea00cbb6d8fbbe2c1b52fb7a1134fef2f9f29d8ca9965575e366cdb94dd9545a59e6a65111fe9410c1d27f133de3b90b713a3484fad53daed206d218927862ce70dd9560a246a923bdee9115c577f9c6611c83d85423139e13035445379ac5dc798c567cf28d136a3cf02d9a28ac07635d1d43012fecbf9a364a597a7794e86c4942ec10877751de42c4f259c6a06b7d615a6658f0da7bb789f77b66ebdc6b578ed1c8111f63c8c0773c371d284318c77ce44c1ba0b539dd9712ae0293e780d171a4757f00c681b45d522f4a2d62f8df163cac8a9da59fe16cbcde26f3a01d36761d243a49d27cb44322b8d54a864bf684a92d6946925c88cb814068e2d447538e7ca1b5b20189ae7ffb636d4667e290b08bb9ddb57b59ca15faae2fa4281faa6d16c706435274dc7adc6d2c16c1b17333b4977b5ce4a0ff53fdd060ef5305971e1a415bac41cd91f9a1bcf4ad7f9126009b5b05db1ddfce269c9481b916125cc8f0c64dfa39ae6cf6c0f213ab2d94e644dbd32addd447e300d215126dd67d67dd0198751a12499b967ae0a3055fa851f9d7a75599f07f30f33069ee8327e5aaefa9d8f6a42a63859e996916c89482a69373cc6c59a30fb110d9e35c9a573b9cdfb616d972a81c12fd2dc442965a72703ccc4a0216b41f41a86ff4aacb9ea1d75abfb1340819a1f2d52513f2b651c1db0e0bff392efbfbdf8290dc102ab4e7a10ff7324d67a2269b3f3f204c61bb2f8f4452234e12f0b75dd7c7eb0a8d94b3862d2270d03645fc85e62f02b5b4dc32e0e246e115890c430f0787b617fe7cec49e81f70f645c280a461d66234efa94434ad8fe8cb8f46f6f6f01c94e1fa6589aed42057baeb7b6b6dd3f4e14e21aa9d47ad3bd3e1d3b513df4d483d092099abbb7744394fece58378ec508507188f3dfd0ef5e589ca6e846ade0ce4144e5ca9de93c1df235c11ccc66af5a78d23eafa2090824a54118376aaad78f1d2666393c54e38fda176593a4a50beb4527eee7f244018176c4778500fe0797b90421dc7f0764f7ff14427032c041f106673319105fafb89f4bf140534047eeba1dd492d38b97dc51d550e40f4bca376864abe9f2cacf4e4f24efd209ec4d84669e2e37362cd5d312e55ae8c5ad6e353eea73b65ef74866d6b2e064316e4ded103707d61529b16445efb5c3b4a0da82928cddce7f307fb26c74c7de57d2a8eae59a6f5dd24b0ae3af3e2dfa09859d59b0ce6beece7c046d7d290be69cb062a61ad16a19d95c10ec835824287c7de0d7ec90b080a839ac93d4989c75fbd90a7a7cbaeafa95e87ff2d9b22eaca8eaee4efd7dafd932de3f18bc52b8367ea018347482cf3c0b836dd361e9f447a8154010ce6849a9af139a32d427b52ae161da12b1ab99e96d58b464a2eb3e434e969b4e0087b7b06783ce9d895941d3787edbea517b7e2e6f391af2b3d9c1c5c65a28d3d2276ed2ef3981068b37967235ceacc9e06e54ec9d5f919258f174c18e5e3fbe07f019e76ae56ffbea3bb74dbe92582f20ea2c268e27717ab6331d78c63b2864d691968d82ffd4301d5089730d36c138cee91aa5495affa4e0953b14cb8e2c4a05d43caeb1b0cbad09d4cdb21294618c790b0c69c88301bc449c0f8f25f35502776a811db8a06546ca57c60f76ca0279e72f911ee6c6fff0b8a824dbf5cf3892ea44b0ed0e6d94be73f7b1cfdfa1f66ff5303409b2a1d7dc0b6e85db306620cc736664250b92a7cb37c6714e623c4254095f800758a902887a1baed2ca592aae52896f5c02627264d628f96b3cde3fe4a223e3d533619dbd2887bf266c412c10fdfffb0797977a8c562810e77cd09e6d586df8f702456d780cd7d47864319590a7121b6a7f449ee1b7e02e55ab70468beafea3a528946a2af10487b704682393a5f62158f365bc7a7684bceb00e60b2c21ed9158397c1f7d98878247fbd712b802f7dcfc8d26f1671843d66415082c0b097275c908f14a60a4d528d3ee5b5ce36a1471980013033745cc2616d8baee3943933ab36b1d0f0d2ebf46e97451a98a87a56b4b94e6515d870019495af2ed2319516cba5b4b63b2d89824c29ecf448a867ba91de96f6ec84262edca291fc558d9a8a523d92c9698b7d5eae2c717ec9f5af0541c1ebaa0c46c48ccd48777ebb85dcbeca138edda73a70ffde5c81cf90c59d1cf8ff5e50a3110ec8c943efbba56b0107203e4920c7162068983ce874d34a5ec3ec582a6445ef2058e90027482a8f400c025ceae374490c0dab0b8c81157eb32fd1a8759681fb569f9fadb3225436e815a89ed9152126a4bfdf1cce67eca094fb6393a4e6ca437382e467d2229a99218cbe903691460838d032704e0bdc6ab21cd362b871147f3593b75833fd08d5907936c029e788d8f9471dd366023d27ace9fbe1718cf0eaca8fb8f1d6dca82f5ef20482356b038e814d9858506ffe2d749400947c8d619669c1120380e1e727da5a048fe3159a59890adc5114dc9664a7d162682df892b730b06cb543e16b2ade24a6b7284e521336d52bf9f6222d11fa0e160a77b6d51b719fa987c1b2bd230466c25cb6ca59b4787554554cd8c877036c2163b0362301dc65b4981e3d9ba4f2e5c0e11f6f7006e9442c1f4a598f70a92401868fc0bc802e2894c34f52b17921bf0b7f823429a5699f99a21b871881272c5e53e6d72f77efe31da50ae6986ddfb8650296fb0c5baf8b2c561b6c916a3421f632f0659f8c98480cb93317224c1c9226d3ef4c089729a3607863cd5d895ffea5da1ef8496ed258d3704d47da35e4790ef2d84b6cccd14b3b6e8347ba68749eab247eeb9cbb5bf7059c62f1a0cf4aa834f880a83e424c802acc26887d9bd19168e8c3a14b0f096ff2113f2f7de4ab7b4dc2e5fc13f7e0c6de06ccdb79abdcb4ebf73fad9124e5064b6d4d6c67155fc60649f2d7c4fb947a6a6ae1e4f655ed92e2cf2ff42026e1309c20289e4f70f7059429a7330077fe078a887a35505daee971fe7f2c3e2489ca838f02cbb829c5c6767c45db24d6e68b0f610528c6a920a1d8d5d7bf460cdbd2fb4f6d59a494d3800f9584a4cdf2f577cdc264df8f5b7c106651bcc74b339bd9b2333a8e36fef4feeb9e5a76af0a639c559953126fc142c5c3526293be7a9404de42f708d182dad7053a0297ff6fa67fc02b7c4d359718a8d0c32ef57f1ffbb6d50cd21a4e6258fd4758aafeb3ca9d3927e068a105122fb956491059135491795ee278f75a83c7cb0cf95eb8ed88bccaadeb051efa01a131b5f89df1dce684bb357f3edf2c301008c581ab53dacd12ef2cfc2407811b62ee948caa36ba0ca18ee0069aa5e80d60086154d49a8bf9974730b060206b6628482b535be7529280bd8ee271b77657482f92ea71e01087026b36ac971686ad65e1c3ada111c609c141e095942ae086f154b41885f82fa669382094e67b17b0135b76b5f2a525225f739a10132ead2251f96be6059aad6d73613d542a4afa92baf1dbf73a247c48e5f7a2080c456dd9ca320566dce0f43da143c22c9a67731447316d86eed494669af19b6cdd4bb5536ebbdc745be9da24db25ce1d349e5d002d3d43f5f586aa542e3394a8f02c573163e5cf1af146f72c5a050d217df84533d0cb3769b9e6ef72177f8b201c4f815a5920697425cc8d5cdce3c0751372946adca3c3d393f3e03567feefddb5e41318517066e9528ec7d9136ecc489d01798f17c119b28e744720406013f3ebecbdddb9245373f637a1aac08cdea99ac44bfe7cc0cb7e6bc03a7a109a1f5f43d3d9c44386f7a26474e925328a09ed8ec83597c521b9814af6114210a6ab11423665bcf611c67032d54d07ceb98949334e6a71a042063e797d8fa15256985b0776d2f681ad1f379913ef25feed43d5fc445516d421565382e299aad720db276b4eb54a06a71c59546d5ce1d942c7add86c42eeba893ed468565054538ad449a2831e645e500150514302eeb74e4da1379a9f5252626482d61671d7dca5c33e280829a0654b32f41702a8ba23162d398de859698d412446835c4b9e9b3c7d90b817abb567bf6e5d4d054989f8bb3b17818922c8c3fd66874cd1009b6d90fabfa88e77b47a9605e942e6106ac75bfa1f65fce85f11f75d11c14beb016656aee918114c97cd4eb2808bd2ed9f7dfef017e153f245510266a19e19305a842905922806c860453b407779a84266d1279cb1a088b74cdf2aeeccba32afa0d61eba0129fee09a794b0f8dfe6ac86001bb81bfb96125e92ff00c62df635d7f54bff7d40359f77433ac9949385fb5e279de8c64f9e8c256092e2cc3ae9a8b791ced497d43673b56e3b919f79a027bade9d40c987e88bcd357cffa430f9ea63752c06d1b6e0a6384f67ace0bc6d4348bad31cd33c629ac66e1490470ad782d956379c7f1efceac09c53e3f6664d0377186d0d40e53f3ceb844466919bfb6f8748369f5ef990ae2d5eebfb92887bd47c98af885b7ef128234bde3f8c230746632e45b2d55a0139fc5639750e4ec28d9fbda613edb2001d433f98ab38d126afbbc48c65c9e6be3466c4ddf1f30168374cc76a66ede65c6610393adb532bd23f916439ad10def54c8e965d32de7fc8fd2ef80eafb5dcc864b62f91f9c6c110899dd1ba5f3fca621ed679b1b93c23890be2c76639ed31cea5a1c28e44a07ed4decad20196659ce67abb85b18669c612c519050f4e5d18b140f8ac28307dad069166b9affbe9bc9dec62f1748602d96e4a14e3b780d5ea3d2515837970e989ce07034ffc272be14c4dcf090bb2073f52546d4487136dcc67ff924d28b47bab281d281e101c432d63847e699c4f69dafbb80fe4c863a61f490e02b6abee2a2b640c10e08c2f63ebdbc97678d19227c7aa338819ae6057a05cef8cb7abc66962615a7e45cf324e2efad50ef8b9e2cd4d16004ed96203221dcb07f6cd7e419058e745de13aa765f414b540f8ea9c34b8e5604c1a4ab90c6009a67c3b24b3bdd4d73f473e6d32f3d09751ee08099336557a3e02f519f947bde6316d48df644965be20733584cbaaa046c38fc11ec4766e3b38f215a709d309b9972b246331b3ad6900171822ffa66c65f7e1bfdef0b7494d02e0218e3a15cc9a45e050226790edbfa9ff819203aa68af30ab76ae5ed1a3ffa2824d4c53d87ffa5f456b55da3038f70554231627f4c0daf1e81c17b7073cd714672e64d374430cf7328b89d86ac728d2ac8210d3b34ba98931b43d7ce9ee7c1fb2bcacc3ad39298bec345f969e9ba2d9eb529cc90e4ae1e2164379796bc8b6eee2899953288d241a77dbb4d9ab7dbad8d6b5b02410f499d994caf299cd2839947b8035518174366ac40f6cbcad610a41ab65e9c1f69922e2e6b5bcf4d732cde7ff30e3665a0755a6a86e343f9443e60ea59732216582f82cea1e909bb82e8dda2dc50c0aec4549cac4060ef66b0feb78a15e3c1108a04d72b7d6816bda66d82e5cb7230eac818e21311b968ab7892125d84a185b15f14bba690c9da499bae87ce4c81b97033c7144dacd67a50fc400062c800bbc01914d74741d22cbf9eac34d00a5e7c8506d5fb2c88a247d5c4194998c417ca4c89a6f2e497f8d5c1fc99aaae2985f5bc4947afca712a08b2b6cfcffcef819c92d97f7a310ab7ac03d2f20213fe10d158315b03357ceb5767188d46323cfc0ae02684d20bb3c445d2d8660f51ae77e1d006759108265ba990dd95068c44e148e8093fc16d6984cace5393f31734d1962ac5b22c6238f8b50b6245292668889ac10c06c9727f14d0ffef113e9a85ca69406af8703bb293aa5e0666db1c2a86c2f5c323725b5251526081265fea095f03fc95741e1f63743f0acbc5fe93dc74948e2e32778a1ea3425abd3983c9c11d81050f6d17b885c949ef6377f9a32b354dde26413fe8d4687312e7fc9637ea40bc900ea6d87808f366f879472a672ac10fa60ca4008d05f2b02fb1cdf35efbdf567a4b810cba63037f1a8921c4f493550935760a5b06817ae506f0ed1e3adc9ffcd03f8a10edf51f0151a4cc2fc8f517dce0d6405cf20acec2cdf282d8d6f00e3bf96b9ef0ca5bd6d1862b18a559a7afeeea530a79ff7b02cada93e67927b49c4b71dd8272aade619c7b9165f941af32bf7c9d6100f47a3861e398d02502ca425011c108ff5fd586bbcebfd570a1ae4c448e22ccdf066c58b4d20ca02b4bc31d1c89b8bc068f4b5d02b46cee2dfcab84fce769d9013b57199bbf8f4c0042c37eed666a92b40426b56c4360ca8dfb5b1f8c4e4878ad1f97da50f621fd4eaed38b6f5df85defaa682bf4c75981fb024bfe35bb1f2159e09c8a61f7ebbb7d3db65251efbcab1c15fef76c412215bbfa06657b88b913fb3dff35cd8aba8be7f487bb3944c00ad036f9453e80d4b577388ee739f251227db787b01ddf2f127a414d018453f9d4d49fb3a77ea90ea548b0d6db05ba8b90842eb154a5825b03158dada02f5f3e57f087a115bd8c25194da9737250857dc3876f4b100579e71c7175086792cb2599ba0c4cbffbf68483a2a0a3a567dd2b73dee5c92ee8c53faf8ac78c01a5be4c5d8e0f8b2cea76f0bb7fb1ddc017de76543c1fc9e2f7121cfcfb687abfae219ccf5d77873ebec5167d8477af985935f3f385fa266e91f369bee54392cf38a5f4a6a4d6fbdfa545e56ab90f8552a36dee96b391a020c266a5f6125ab2050fc4185303489f97cca1ea9d58c74949eb1847dd2802eb015b0544258bafb66e81c687a3d211231506dad4cd4863e6cc66700eb88920489ce818b3fdc1c4df7f7915b7a6fb246ce45fd0ca3564aec1aeae47df330bc6c472337721ba1f4771266cdf6c4e926804c7350545aa814524359fdc74dc224cf0102e4eaa00f364fad8799283a3483538812b5e24381fa8639c3253ff85cb1d794e264e12e2d5ae0dc68d9409cbf3be8c7d19bbaf4fe074c59b569e4c3c1f25f745dc326d5720faf4e3cc4bbeefe601259760b63c9b86675d797789a8db3ec642f0411d1654904b8b7786109becab3d0f9199978260ca5acd53d67a9aa3d0c20289ba8460a54094fde3bef0b41ad73acf2c7f53e1ec34e0b522e3262de3ad4c7055db1c798ebea1bf283ae513cdd3bc7c4de11f6053e6a2e67218caed56e0ca3d06d3144f92ab03fbaa5728ad03ba7edad5c871e7247d148c2a7f1596982ff5a82f36c5f9854b9d5367326b41a2b7260efd8b7a5e406219e98f4fd2ad5cfa06fffdbd8e13c934321557f17d9632ecec0163889d0763af4dd9baa246b1ac9fd76e44d9f04b233d00358b68a61adb97433cdf4b0427bdd9170ecc85d792796d6540551ef3b280c747e3fbd1b372d975ad30f3b1f9a8fa3163ce2b576d03ceaa8b634e93de1ea2e633e3779e81d14e1d3d38299615f3dd4862d19d72ec6001813d0313830338cef600e06c407456fa9c1b0181f111300f5af114482e637b0c4136f25b21bef39dc246f346f5497eb693c91f2e073713e53194eb8a1feb6d501295184900cac51a9bfb148d075c2a5060341090eecf0eae3c1b281820399284019b1fd137e91105b610f7a18c58208a879c25890f35f9fc01717f8e420d3ee8a0509e8dd1d04657fb732d265259b78f08457d7ced5bcf4a6161c3c189868c295183a410904a8754e8cf9a3fbf2077bee43991e8c07320568605e6750df05911757235100cd15162e14135574cfd8bc561f8bf61adc0d45120ba95e16574679561d8c1740fa32233a838f73e1e367f8f05de95bf608f892070a9aa1ab2111bad55f0efdfb349fb9f27fc23914c58023d5663e61182de2e70864d996eccb6d23bb6c9c7cd876c1799bd84f3265042962bdeeeea0a773098a13ce0cf2ed1ec8a0e2f13361a33ba731814ff8f569de7103d78086e471972c4d32152e561900750ed1e3693e36bc8cd0b518c7a7ae32a107dec3e03faaa180a3b7dd63b943dd61c59407026cf8b24f07a83f373e7872bd5da33bc1c478df9eddef1be146e8a87b303ab71593e6a998f24b4e43c08344059da6fbeb897949cf1cbff5d99cf653341460742e2be7d84dfc9399c60a7e42543dddcd4fc11c34b4a1f763e120404326a1a53fa64c2916d485ad74d3f6aa78cec510df561b14986dac5aa3a91bfef8e39547d2a02f20cbe71a2ab7d3a39f718f9b23a12d2441856b7435fe557cc332d3c1f7fd05b782ea478025b77af42b7eae731c97cb8ad1ca5ffa1022d44875253679cfffa4f4dc19df6b35888fc59172803fd768afbbdc867500eafcd3d4c783ad0c5cd248b31261df64572c95a429dacc5521e452b9ed2d9b87d60f30f2a8bcb499045f65f8492c3ef106d0a982983f01328b389de603acafb5a6b7edfa502bab7ea2c240f88be03e8f8dc60892934a5950f92f81ff489c036502ebe18e541c28fb1d7eacc45b96d3e9ee59d11469b1c969bdb1dcd955099c4b73078cc52d5c652006245cf99fc49de10ef7d46e4718750a94637589e81c20189eb7efc7a898990bd1d1af7fb10730ba0ab5e9d53f3e98c55bf254ee3f02cf8e14fd39695100cc8cd483da034bfb806f103a36dbea2c92fd0b02d84bfa1adbf99b5ff12dc8c00fe4492e31908159cdb533bc266cb862b35d56d88570dbfdb2e2b49b22c155813886d65dfa71536fae8a137ae6cc897e3f2e914f7e26c03475f94874808bf6d4d1ebc673c7b755dd42c66cef249731a7280cc9935802539f7a71d76caadb7f7e56f48beb0c58955b0d42fd2bf7340eb0024f6e9817f14fffc15e864946c85daeef15e043bcaabc28ad6fbb547c2c2223f365990e1f9b5a2663f40e19b2d19c354fd170ce918c16853ad33b9fbdf821a87cf73fa87c9a3484d23c1a24670f9030970930b3af3e6cd644467cd05fa279530d358de3479d6bb205daffca173c1203dcffe05546da12c5538baaefaad77aa12371515a65a88cb69ab341555c33d5c0274986bd12a371316298a9d90e62f9e78a4a0837afaa0f4bbda39937b15f7be3426fb9b2911e02f341625936245b8e2c3403058017b82076ca3d03e54f29343a029a594a8d28c8ebd95fcaee9a62c38b4c808c4ff67b781dcbd7a6032aa2b26f1c827872e91b6139975fcf8ff15a9beed7cbd2b1c998b55fb067631e0329bfb46695a50f924194975e2ab241213069149eb7cd5892670ef6b37575fdba2bdd1c7b374d0c487877aeb0d06b8c33b1bbe7c1f54d84d52b78c9d9d46e3a1033dea3156928657423465de224a0ac0e451ad599c94e95ade34ba8503a0362634a5b009c89bbb79e2b325bee716705e965507552571d40127acd4473ef0cfaf7d75a31526a1b6e064525182357b8cdb3a7fbd2806e915a00ef769058bed29b2504907c0ecf13f5eba4abf4b2d24b787803663ad88269897865c6e6d387f2833391993356acc1ba6152249d8fef58f956c2b344f096a9c25ab7ea53b07daf9d9081f5285e69bc3f7b097fb83a6b47c3f7d3a09bb8636c210a83bfd96496b728f42fe74e574222d313c3d468182527d98161bd3c088f2c67cc02426d041d99604d7d83cc6109428a6ca5d5322973236342409e54c38ec48a44600192e2748ec26d531dd5d063a31cd0b0d251106a13971ad82420b5a3a07f034c015ccfc1818f04d6f8d9f0991ca08cb698e41e8c6dd9f2314c4bdff44d8a03a887455e1349d183057a7e2bac617c82c18f5e509de7363391308f5d79eae9512d7f08d4a3e0eba8c055db7eb710e6b556644a905a7c129bdb68136111512c5fb49916a7d12433717bc872b98223d06c1b26f92df21c529f788c4e4a2d49230d5c3687a7c0668c72d0f35a576bda3b273500ba25b1e2ec40adc23475e389bcf0201cdb3443c175f2a0633e1aaa43dc2229edd4c7c2a398c52556864489be372af6fbf832b4af809349236098c08a062874da7170abfafd5d1789f986a0bf84537489a16afdc4dc608a949938b4361c7da2aeaeb10ca3a6104c9bb1cd7105326616135cfdfcf61500675b6f02fb29ca5dd18d467090b2fa43c8f5c47400dd10b614a574f7db20e1de8c86297fa857d08d5ccc34ffb45539fd4736a8e3a431ff9dbd31b35e8b3589b79f9badc1b9b80f9adc5792889c65a28722cc287a2a99c5cbdd3e31a088fd0ff2f791fe34835c72498c2decf002c81e534c632496f7442244e72467629f4e9d25191837c97cd336ea158c14a3d0eed185748610c6dd78ed87a3b365ed40d7969fa56f78a490180dd82a405b657e4c521f7d4854f6c53dd36e96e1ad77c1bc2cfd7a8fc2b31f87e1074d1ae16bed6888dd10f6af5f7731b702773620ee49d4421e3d07d5c36fd12cd6825186ccd8b41b397969266dfcb8b94dd34f87555101779d03df5664f210f601cfdfaf967445eebca53bb9def44b908113b5f694c9b923023bb79f8cda7da7e8399e65a96aa07fa880b06fd1b2f7ded18145045cb30bb6fed4778b87acc160d10d74135ead2e75d8608d26807da2820c5d215b00d21485f5344b6ae8ae55a3d9c382106f5cb729d2d1122a3b50a2d0c7196c7dabc871efe082a5d28303e7c8748f34ed3ec8642f0da70052b71cc23482ca0ce247a6b868c7fdb096b3b648e2d2a090f7282b373a7b2a343160f4a49e927e1b2cf54c3cbebaacc2dbe58b91873ef1680118c6e8515f20d48871c32d69e1dbee85caf3127adf956e29f8d29510f7806b6f8fb367154a72558ac5000fadc92821e915d7e92338d4cdfb655a244c898123a951b4737605b5d5a5c6acc5828a7cfd3adc52a7e69d46ded4edb13231dbb5a4bb6d79a0df0bc66e3ee969c2a3730ef7a06e399acdc6379701ac1bce2d7d7228dc596d3f800b18180fa163e55d948729cf9e943285700bb39fe6264576faea21c6a2603d18a3e7d470e3316040e4ddf31017b242c4b0ea15b2294a89bdb71ea1ac55df42845f84688b95dc50e8dc413797cbded929b712584cb4f8e964ab16d316754b8288cbe5105296144674d44c8b759758dd6a3ea90181fd8967809f564bf8063606800dfd65a909e23bd45cfa88e87c334b022ac809b8d76ed27af6ebb839b506d87a7bfb858b310bade4d078f13d6f2cd4b7c0bad2aabef9282c00716cfc2e4f0d9bc491f0d69e861b953696d095229e62149e512ec58438cd4b4eb341f2800a31023cbd16d072143b8a0636349475ccdbed82aecfb1068a341bdf0766060b73a898c09b0fe9422200554b61dad542eaea64b1ef0e7d70f7989ae559eb678c080c2e246eb121e65ce23122f6279672df535b524585234e80521448906b0ab545539c7c4c5ccb39e60e9b801d9f4aa18750817d6f11499a470bba3841c013f6437570b24b22719e22af8c5cb3ff2d17376bd416590fb58397450321d7aabb5cc817d575a1a0d9358e2a888741ece044ec4e800a9a4bbce96875b771a650c5fc1e61e4835d6484bff2df391c2c9ad6520a802d70b2ee100e08d0efd03929c7be6908bc425a0cefec8a92f6cc405e882e1bb7cb91eecace95a386e3bb85887efa81a40dc967029a5f903f2443a65c37d74f44714dd802743b4f5bd5c43d9e479415328b1924ab5bcf6e82c2575e4f042b27d56f16e8f7596d4c0dcc33bf306c0ed8c93223c06e5415429640ee67c36a768501c60fbfd885dd3be8011f15ccbd6c941045b6e36e6d383daffa5113edae94f8c62f58377d6dbb0d3a69898ba5d365921097df000fb1975a1b12ab102db71390d2ba5296ee791f7cc02a126c3776a8dd34709d4d1e1489f9fde7739155db8d8441d406302fc419c6dfa79431ad3040a18215a070b653ebff2ba4812abd9a3520f6ffa90bf307851a5a90deae5e06a9b5462dbf0ab81142ba54376ddfa038829bd8ad93d1eb8c67b0a7b10e25cbf5701df48a845e9188874929cb9ffe27d28e649eebdfc5437965c18633c79bedc13afaaed5a70dcec10046eaf41871f8c9788cae71abda5acba7fb709807ec3b0fc081cfce55de5136dcf255218d8e39d561d4bc4c511435bab4390143cfb0d01c096f89418f899a304abe407ca2a82e51baa37c9e495f81ba02c7d040e05a2c21b7caa8e38edf7c4611897a7552c758cc8153e94279e42c285a0927b0c05648ffbab2899ca7488edcd3e61f8017f4e84c2090c1029e69a6b278583244aedc49d6c27c196ab6d70a70a14ae9eb1d58a679f7e54ffd9de4702b348b26f298aa913157bab59ca3dff69a22661eb70e1dd92e2104064a968a15953a09f29b9139c373e01cd14b28a469fcf7130cf610c428c790a36afeb04c87ad74532751a18777b66b200859ca4ee08e747478981a379490412535e332917bcc18c23dedec615f941e30ab1d34900279a0b3a8963b022b7373c4c610f1a52d63a80eadc5e158c96ff410c1d1015099a3181a60a12c92b081a64386bd3191fd0cfc72fe93ee9abbc29a5111595656210c8d5a3e03be838046195260e29e50c5db5e9b5eb874a3fb4b96605a7d9ad90a3dc106f824e6514c377c61690650e659aae72456900054d5eae3b1338e77e1637828da6a47b6db1b0a6e3f0643f7147c569bdaae4763291a47accc9a18d051c7de36d9eb0ac28aca6bd53a670eb232dc214533b6cbe941185e685db7dfc9a0fca72fb7a028e1531f5045671c22d80b7da99a0dbdb706e2f8ed63c8e3625b1e1340db33a7bf501295730537b1aeecd6f1bcbbea7915778b4c252486caabbe325bd575e6bd9ad34def3ddc6dd568781f181656e61847f0d154ae1ac3a7ac2b50b6cd9bc84982bbf539889e376a4d8c2c8258bc2553d82af4597d3066de52accef25958c364ee0a53fc1f2e450e37cca53a4b6b6472a4ac31112fe3d5b11f13163549c330460b3eeb3b620e95ccb666c5b73a1ef62b9e8f12ce4e0c7d05df2f31ac31655a78af39fa0de495e2a6bcef32395534635a5f14abcc258171e9470bd7fabf2dde150d18ff96b07c50b068ade6dd3d5f2628a8a3f27b21aa017c2741986ba27e7f0665dfadfd1e5def9c10a77bb5d2b275361837314846a1cdb1e5fe557b998631b2ac4872f618a0f113d0fa4e4b2ad307aa4a81120225b18b30b5766076af96a0be1192d64c867daa853d1e0f57aac61fd12c2d66dc280a5dc9754f6b68d8991d677ed6bb1bf1d4ed662f9f153c2ed709eb5df5f36cc66064b2fd18ff7ff766e43cb4cb266f296b6c2e0cf2ee6a4536fd152488c625eadcd6ad7b57593e2ce989a1213a63089ba40e19b7c4d74c4402f9257cde559097cfa5bfaf5e42bc4ea14fbb5980ed64e31977c0e682de95326a6c16554e5c5bdeaf37d3728d43c670caf85d2d1ac0a7d152eb42794f2d40cdd9644fa82ca4eb47ee78d8d6a31ca78239d69d04493ff4f4216577cc6ccd59bb3249ff3361542ee09196f6ae07a2b6f771dc45257cbb08fea5ac731353881e3457d9f7a6e1ebfbdc81615544adc3b5a1142538834e8534ac9fc78c05256c1f3a6d7012d4c097d77126112e8a3756af215cfcf3f4d9466a07856a3a12be280070db8042cee8db17149b1408a5b3d5b962f6e70a7fd9c5e7d4a3a95298ebcaa7c5179da59c2d658cfc64daf922452c57be37f67594c105ce2d1bb2181747c3707fdae22336755fa08445b1cab5b689ed78c3eeece2b68ea18cc8a107bc458f6c1d1e975f9e568034e2ce7e4316b14adc8865b98c12e0e68f89491893ef64eb635c3ffe85696b371072ae5b2a361e1a2e44605f83ce7f922b3c7bb227895e73eb581f9b1edbbd53e9025d10f09eec3e2158d4a943c214448cba3e19039edf4e726505716013b76601f5d2e55a3c5da3586b2faf06a88ad0e9ed34ec9a2f695308260bab3fc89a9f43beff02aef5a9d96a4b9b2e1a2efec4edd21fbe6ba5187bbce1b2ebc4e3378d9ce6a362182b8054c8255a6174266512ccf9812d2064f0f8f3bd523c6af985930b45d8691e27fa368388fe2afca17b78af5c588c337c5c781c35243a15d073d06072e7ed3f6fdef7c147279b9173dbdaeb8dcf4596b752c2aadfce2f1d2cf9990c0cc247478bd4e9424a09eefc609eb19d8da82a951f5eebf196e13068e50747edbb573688d24101d4861a8d03ab4bf459910fba082e4976a7f64378e2b879a3c4ab2192812fbd971f21d340495e4c9deb05fa857e754ed5d00e0e27233c6af63803d9ffcce6d2dd9c928fd6ec88fdd7314c85ebcc0c9d39a6662f60bf5e6a3d2131806d406ee6913752a91bbb27cc4acf0c57c618e06e416949b21865d92b5c7094b1a325676929a04aac2e2a716e4ddad20368385af25f48938c3de2f2e87f001d315c6c7b30129537ca00e8998f52e4742d80a22f5346e8bc87e95605d0a5c1aa54b8cdf6aad6bd5874cb47ac13a45c3b651bf7b2c1428eb120d31ec09c8f3b7dd5ca69ac89109ba2e3e24ab4fba797ac8a5286bdfd39e5c487c202c4cee7e47bc149801fa6b72c7ac13b714764a93940aeb23dc6d556d040b6a85615f84c3cb5e25178c8bdd6f95d6262d0eb4020ecb0c51f0ef14c1e01c7537123dcda55e9fc61125394290b20a503cb6342b56655308c11c2418a7033647134844aa78c94c61c7f8039f0a9859d28eb9a022bd99f49ad52694e83d20174078aa5df9874be5ee5fde474b2f3798ecbabea183e117825892268df75c9ac6dd36a78602ce93425a74110701b93f2cde7bb2adf4d7b912edee34bfa7ddcb919e21288bb7e75ed1126e1bfa37cb9ffab3c31c567d68e4bcab4864a336e3a47267b4cbf9509c6cb42f3669aa498fe753d747e4810fe61389d19034776b903052a9b0779a642a96ba7550512b8fa7e95b34d68748e689c7daa4a49a21237ef8b25af0aed48ca5b73a286815ee3272876edf6a09b14cc7fba075e150d593a8f00407d8a10eacdea1ee07d1f0de7cdb5f77ecd99f231efa329008c1695d8808287234894f58c9c11c8c7dfefa16c235e011e892f86fb091f9d535b1b4e1af7e1ef47f8af556f8d2ccb294d7aa7594ad1733f2ae408451f5241330aad79c10e1ee3c57907e6b101049d056501e0e09f57712a83d562327d5366ab4fa39b02222f8105d1db92d5e4bc760a80f93ebee65db4421547e0d19b8684f793df0c3099ad7084fa6010705c78aa26894d9bf15894b34b0cb4ea1720d6400a873f3dd69400f396fc6135b61bdebb742706171e6101015b0ac97107ffb797195d91623a6747b4c376567d934ba0e1276ad7bf168e637d9d1148fba8a46607cc80b1c23be1ca1a4a3719d0c480baf5a8020544ef54b5daa057351d01d45e71627528e49e39b45a07704b78f4950652bee1d3c7737673d2f71e6f1664e5f8898f31ca31343c1653cd96523fd8bb4acbaecc84b6b2436e28ffa2d48d990893fe06df5bf40625ab602ed9491e7fb0127d67513dcc08b0a3d5c7a87c4a6488858a23dd737aedc2a45511edad61d6eaecf08b8db980a18b8590d5f9a72685026d7b9d4c230652c2f422159c3ed379545004c63ca9aff27f4f12e05a23c53d363109d703c03a48921f06379d9dd60a82f07c6a877a39cdebbaa5f91042588be2bc8cf57a86ea2047e20f75fb2fd75b9d8cc8e55c21cee148c0d2357cfa339371a97ec01941e10b2864590a8aba7079797bc42b5ffcac188f67964eda95cf57d39f8a2d59f80bda5118e007590ee5e60e0ba8dc9bc71e826f2e4ab7bacfdf5b23bd23b0bef87774b77b9818cdbc4d4655f0a6586469da5e0356c361ca01557df35bc9e2da93e8cee2b6f3fd0ee05868b24a9dcad51f88b737e8cc1bbb855dbb9a64e5d52492d0226bfd37b2eae354779996a01cfc1386535740cf8f1b1837de9c1eaaf69fee515ff9b8478e2119259b1a8bcc892e7fc9db1ac2093f2900fc69d04dfa3fdadfb3b5d835998bd75bd197f2e5b3ba9af7418689ca6b886634f05a3d11e7f40b2443f71ed118f96d5ee8c3501c291fe3771a15dfb0e7a7940b8d50faa974b32af757dbb5a716ac9aeac73fe6b227de14b251f9f78b457acdbb30e37b408fd0cc8a10c741ef8cf2520e7bf36197e376c9329cb5478583c2ffc3013de815bad1ac81fbb411af7644b574b0945de6144fd34cc3977cc33be59f41fabaffdc9059596182a76d050a50db07043ea9dedcea7bf35f474375ba2711cba9cc2116e62edc29ee26855a4eefb402f3d4b41e68d890716c4a436f2b8475674e99acf2f7615f38b821a341e5ed9b894200c1f0d7b7a24f9ffa7ee959a4c4181cc438354fa641e8a43413158af05727fbe9cd593488fa25d7f1f6a966be3f89dcaf94877da20e6ac85999f3e24bd33f3c25f90d23e565f03f38f17ef2248339ae4f59fd4ac4abc9e4c1adca8f07471f33848315ac002e65d570ca37cb92c20eb54a9589073680017e094641e90f45dbb2e1d1575d372f528b30d3bd963232ca93bb56c44c70351e3ccf6a635b12e93e710f3135bb52d72da102fa0f79d037d62b33a3a8f7f574ba2d12216a786a2c6a0865c187fad4bc6e9f98835b6edff9a76769ecbf8c84fd472688bfcfc179511b96e36788b3065a96b2e5255f9b1461f8d16191c4288a525319daae20b29b9eb28647cb4839e7beac05cac65a112bcf3144345822a0167ed1234fe8fd14f1c82878a5714e9cc525cb680cec267462d2d625bb77ff1f2d751ff172e54b50d9df2add238991985496b1cbbc144bdd7326ec255035eaf8880b6d8919887222d0f2d58463db8b862bf3fd00d3796d6eb5e6e98eecea99fd694e7ff3bfe1aa313d742f2b48529d7fbd3500af9c6d4ded0d249d0f958b0695d593695bb6fd001d182a7ad2ba2398a06b683caccd44003c56062560139e6f703fd92ab38cebee14b1264421c0b8b8456f2150643b606757a388f2f775d98eb9ba7f180e295a71f5ccf3d3fb0746c3653fa4071f258ebb4551b0b4663285ebbd4526e308d0c125e011ddaf3c45b987eced7c961b90d4fc39b9c6ff58bee173fb3ac87ad8561343c149d17b2e087b84bdd6518bc9bff45d43f10f1dfb351e81285b74275f551b30c8a3144a6f2a8cdae0f6362afb7a4f87213ecf0ca7d63d287b16b012c0bab84327db724480668df2eb03d3b29ca29ab0635dee00ec30e7451a5e8beb81af6e22b798810979ba0e06c7f8c64a28cf723fbd5eb6260c10ca202ef42633426bcb9ec8c5837e8c3a984f588d377025e601564bf52143f10f392f95a0866ed9de443dba11f94315bf995872425eb2843b95832abddcf7f969d207b7fb7abb4da2d1d1d82cb494b955f1cc600b8a47d07fe203b7cf130b7420bc8578c56d2c0346a625b4863ce2b695010667bd91cf8f740be38116b2f2ea7dfd0c31b84e53599a15cd5b60e9de3ea8a7787a3007eafb07bcc95ee49e828f289affc8310faa22050f46e54ab010933e9fe25a7c8aae7afb53c5adb7e90e304342e26cc0ae95be1f656b6b8fb75b69c288fbde8da3df54faf6d4f425589bfc6cd94ae6976255c519754d934bd2e1192bf16edb412091dae70cff7d9e30fdbd4fb8123e623da9b54977e71cb263cca3c53e882fc9a17ad4b12e86e23c34f02bc3b2552eee1c58390164af0f0793834452233ad9418d8ce01dd9c85623006939775221f03572b27712e78c8b8c4e35c978bad918abb272369b585dd052a9acb0bd5b17a4126d330855ba82397557ea8069a250727db46705e8ef35f04579e8298215cc97c2c17c244fc4900708266485cdd97078583aa3c360dc711df351423dbf0cef92ccab951d3f980f7c3380f4f5f8fb4208abf9e625f64f4273472a61f1cab1b6ffcc105a76b9ad31cbca892e60743cebba7cac0f671bc5fe376ef79e417c7374bfdb79f16e6f7d72511cb34a1edc599e812bb1cc093745f8d756c72aebe12fea207ce6005d14416172898bf40086083c8527f0e157bf5cd67f64a25d35955e704793e1f502adf2c9494b59057758915fadf7d284ed2e66751e36224fdc3e486a630f9d9be55913f38d77949cc3bb8effbf3993875ad6280f9127411644b08b51de8798d6d900861153b6397e2f068175fe112f710ccfe74d71d8b0b9f570a936122668e6ff278e76b5ef76ea2ac16022fd4054e309661b9de400e5e6e28ba36939a4cee4b8428f38d468e56593d31d6bcf8c58bc99594fa00be14607f2fc8f010e6948ce8c555bd4f48197bc4420c24bd0d26df05a7be4dcc46f2b089b7ede6cf3b57d307789e0c4f35f1ad8ee17151930e45542dfd1cf818277bc6c7c2ffb2330b369aba6e8f8830028ed7dfda4327841381e7f1160f5f0a7ae526af69a2f741c1bd8d9f653fc553de379d3eb64c30e38c82ea68c91d37095dcaf9c35f0b78b6fccdfafd0e1fd79ceabd75df8c122d24dc679c99f4bbc17ed2c756c90195d6146ea945dd0d779c1bf374f290771da89955ed7f112c91a6cd53893f3ae697140a11d707dbcc8b37d65d63189e9a9f1a88580491afec9fc1a81eaa5a270762f88918d62a3b221c425c1814467204c5fffd80b12c4010951eca0339769343b903e562908ae4d7ae36164de0a66cadb2edb17ccc152c6d67ce7d84cbd8625170a47251ca60b89e66557f7725a124a06e60b0ef554fb5fe8fb14d618fded478f80e1d7017a69ab9b1767b37d923350fb34eb2ea718ef2091c8571dee45c6887e28855067e9a2cefb12ae7e70ee42f5d6e4d4dc635d9f81cf67d958755de87232849280e9328d828e114159f19b50657974b5fe765594beca9ad13686fc2efa073a9982ff91f574d9768d08798829bec0c71c18c19e41d88bfe992fa72a23b73652f6095f711ed25750ba30a92bbad9d493e27f7be325660e42bdf75d8fc16934fada99dc16f07e1c15bee75907e1f5d2972656411b54da8f55352c6ff2d3e39d38c5baf0233a59cd7504133dbc25bdcafb70d81c5c9d56758f075c4f86215cbe9a6a5eaf88e8a43d90d37b391d9a1c24586c9b35e494ddeaed89cbe2e20f350b934debec80bcae735304a565d81073c78e9f7d44ee1829be20c6cd7838a4ff521df5e1e3d07445ede0d926c7bc30c35e1d098cd5bf7699ff003e720d916605f348f9557679c70ea46df97bb75677ba120f24295b2a1a6ae510b491504ee5be6d1ec41b9c66f2692dceeff5c3e89f591aa7d3f0f499dc25d5396673f3cd5c47cd47d6f3965fc8bd774ae7c1dab8d75503c40809f6cab1c286495621b8f5fae2117dc1315d982a3c4c475ab3daaea4cbd584be1881332edf6efbce244db252ab805460c5740b1896a1941852d2da11485746ed8e8a0b589dff4369c23cd09ac9bc76010dd21d8e4914e15569d92b82d39a67f042e8038824101fd51a86c19de052ac9e98c3505eea54050f0483d31ede613a73020e14dbf3495deecb7bc20b7d014a51319560d04b9f923c9c69dc0ad6ffeeb79f2148954a37f6031fa62f2a5fbbde65c5767dde5e6ffb950cc053c7fb1a0bcee2aaa0a1c1d030b8cc119853e4bb3309a59f1c2e45769bd34a83ff30989a96f9a4a23c9931030349536891a8c6ae40086c6bcacce3993821c18e2d6559bda65cfe5afd35c191c4a23a3b48f3f831dad2dedccfde6f18bcd5dbf1c9b7786b2f3d980df911c4f6acf029e84cdbc52bd649669b5423a9d135088689b675a5e6f7fb28676dfc03026de8d7b449a837b09d4d75b978d944af9f4df4bee0de0f00b38f5e30d49a2a7b73a92e9ec1a2d07f62205f8fc53908c2e20c1168f6a02590f32fb5e0ccac4f505658a20b90ded0ca3d33fd72779dc461dbf092baef2cbc8132683c80de5802a0555c591676ebc792bd948d883063b79a74064127adc0fa2636ce09db2e9c9bc9cef1442eba5e4f0b29fd92d38d9572220f94bf781318df9a10003cd863dd778646274fc1a46b4c8ed2ec1c132d49ed492987dd83d3dff687b40ea211b5e0f6b74dd3b72aaa766f693e5c7b310c018e82d1cc6a2e65d265cc94f278555cee943d149d947c59830c4c5506f02e7b28a5900dab5ec42f3e3f86389f36e8805568afda09b37de6a9137330adf6a277ecc219115f1882899e9ce9567cc1f0a74c650135356f07c86034492c4dbd4269496a1f37ad1cdd9b11bfef7859ababca1ff1e1616d0c9d0ebd1def2b2ac4187835bedaab3f140b8a5b00f3b4aebfda9dea25727deb25d6dda69e98247c8757a79f9915dd8182ad07eef330a77b7d8b8476b2042b925381ade62ad49629670495d27a39a09ecef2a4390fbabc984bbecf2761304736bb29b4b25879948d6a12ec58aea46585ee58a9c1c72a778e8c4847be847a9a610095c033c44a801c3951a59dcdf0933291b314bfcecb07a14bc0a413924baed8ef726e298f004c07f8902909dbdbd858b72494c0aae838e7c0dbd1ba061e11c80751e7ac3aca3f7b9fda453ac7d7f2be8fc413daf920086bf711d9b470bb8fde30d8020aa6585d09f4bc81641f0c9e2056c615125e6e81bba0310f356c2272e44750968b7b36a7bd9bc1aafbe78351b9c79621d4cacff3c7cf15755af1de21917dc4269d67b90eab058dfae3a545b2a43c3e6332f849dc36a9b06c42668b29b6f636f5b77f5fed87bf5753d83d5d0e0f746733ccbdac6c8342ba651ee6b310da3a7347844fd3e3b7e102d152cfaf5e0a0c124e62a5e3d461a2f60689efd9c5aa08b574ac1a16d8e549e4e37802f9ffa451915b4af91eb0f19ca563fd69d24055ea983fe99db7af20eb2a731fd121c320254a843edde346ad305e25f8712931ebc116a691d7f9ac798d021db0742fceac0114e49c2ec152be7bc440c7905b18ff58fb14280fc320bf2d216717b273f3e3317b1a7ddeb46d4530b0870b36ebaf9178337d6128b69f450760951956207e34eda8881a5215c18694d5e5dedc4cc59572a19136eb3da9aaf543ac0f51c178105e2c06a888eec4af2e964fd29b62a46181b520ed31769b0fe51fec95dcd44d955236f04640514930ef57d838cfad08b861980ed9b29e7839d93d73f35b467a2c08a187d51362cd70f0a5fac3116c707f994eeac32530c2b5e8d12d338f93c353450e2a0944db71a27aa48b7915dac3655e931eab1f3c1db6beee6c78aa020080ecb48eac1191b1ceb61984733924ba10a0a3cfcb524959bfa603ec7cc9a2483044a833a38082fb5188247466a10106272c46340a368ea48c2aa0c1e50722a499c6dd392028954f142a5dc3c6cb3efabef85249ab2ca3877f1720947c59c2f597336d2816da18b63906076ed69a1efa9d074e650d5151bc883f7d2864d9793eb2fd48c02f0d3894afc21f30de5bb70b1226250cfe236c70ceba8b929f9617e42bfed287db50c5c91a10b9dfb19037fbe56c798e48a52e8453f026bee82655dad713408d0403cfc0c98e95383fcd04a1843768f8b10c0dce7d90ac9428ee6eae53dda77598711b9e0d5ac3d3789605587d4b06918348837a231ef903a9ab9520fe9bfc204d0f1c13b3f25d6c4cad21a2ebf0cacbf46200990c0d1779a327ca269d687d39d8a71f4df8a41d4be9311e1fea79d4c1f0bee5fff169f57fdfbd98812cea2a3b7d806761927dc33535369b4066bdced48b9af8670b02414875f9737c6290fb47c7e346bf3a55c9aaad4c7f01fc95bcd2df8c37d64b470ddc595169de341eafb4bf31ec4ae54bd1ff0e4a7f94f10f1294de85303224a4df1dc85347fb95e41e23fc01f7654a61f3b4b4823be8b354751418085411f10fd38d1df1cf987cfbb94e719714b4cfcb4c7178d75ac82a24b6c5443cfc7e48b5e8d5332aa3b7cf316948f0d88d6be693d8f046a41406744e6930719bc2e7a6aab8460f5ed98981f5ae6f6cb8e849c1a77b682cd2be1126eb5aefec89db48b0fc0c98df2df3b0ee7d4b943480ff0bcd540997393c0a4ff4d28fdb9370ca1c6d93f82783ad5c5c1551353d64b263d21e3f178851cceb30ab8de33b174b039d8ca9ef68746d8ef863797dec5ebb7acfe45188f9bca1cd82e24f31b9084159f83ab48fbd4d7982f1e796ef18c02d92d6e9227fd575b3982b9868c132c8185e824a06fe4e1ebea34c8e5c6637677a1daaa009aa4e737b4e1c793ba3474184535b329820fa15ef83042d83f6ab272c04ae996a5907bf089713e6e0cdc8a9cbc0013568442e56d2f0503157f3130bd6839c81a1b55608111d8ebbff82427b705c6805fd43e22dc9f17fcfa570bbf75bf0b1627659d358260d986d3d69c8b5f0dc96d203cee41789801d86dc916d7914a281ba432b1dae0ae606a72450a2b937096139b4ac04680b8e5166af6fb57017207909c515ade9d3cf9a45b7de79db66171d79008bcc2bd8d44bb4f3946741638537e452663c3c3854135431a84454d49fc3ba67b0c637ce4eb2966a7f37fdeb9319ae322f20155fc650c950e11ad1541e11153fbe5cd6a82cc543acd2a09a6c43b1fde3c257a5ea052bd44c5c97ef0c0ace93c89771b0736244ab55af8e627b573342a103111386a393338c3f8639cc4f2f5c2b2ecd1aa2816896a6aa759c9df354ceb9da6ad42c3e74cd1496615d3cdb1ee439fa939e2c79ddb0bf912c7bcae266934eb9248fcdc3ee5ccbe30aad50e30970917c949ebe44f709fd6c41ee8e14956574b82f2ab730f50ccde210660b14998851e85a039bb2063caeaaaa07039940419fea7931e234aa47585117da53e4332cbd8eeb1c555a1dc8318ef456774fb691d4883fe9f9b3a23f05ffc3c7d58e61ee2f35f04dac07c5c5cf786331c956c2383f490e5b985d6b125453b5684d1398e2da18fddb345a0c868ef23d50b662452b7d5ba3d15763d7b8c0a610e94b4db1a14df15e490fe7f76017eca86f7ac4616323e29bbad3ad50608086f48237e8c4c0697c2fa5172ed66fe516c5678c44baef3fe5f26f7e54f16c32b8caa1abf342906bf923e385683cda42ea59ad682459a030dee5114d9e4299094dab75d7b24a68da5021231fb08d1b42688ee96ad1e7865f5f7b8f8c5a7e1425f8ce2312074b2cfd846571894ca079ecdbff1a4d1223560de275a61740adf00ffb542292c69aa5bf3106aab18e976cb5deca457a80873de80e96127da767f8f4909bb99d2e490f3ecc0b3b491d030f468c87d255238195ff28bc59bbf351cfd1411babbad71543c626a4cacac53ec69c21f9959c3ccba22e0918c40f5dbce634d139f128ac0653dabdb4fbb4c157d24a8dc3e1d08d7a9fdbcb3399b2118bc49641b5f9be2bfb98a5948d28c5d550ebacef7f93e0c0a0a748af14f8af84130de1b42887f6415c2c8502277ee6c3bac5b4e80676544268a0e6c4bac1290a6e8a1773dc1cd6753cf5b1f837014ca85c43cf397e7c20877864558fc9c6ce26accad05b9ba7c781d2f952d8fffc395c0c41db42375737fdb0ef789e1546fd76d74d497c6f672b34e993ee99f930aeee1a57c11eee1bd7f259cc112859759b03ff84982b390302be9169d89a4aeaff179e0a57dbb812a84d24648f8f2d70a5c39c7b70798d9e1758b6e7d2484eda44c86d81a0087a13c40f5ba60fda22ee86d62077c2823d744225b41299a889590d51005fd6a2e80aa1150ea0a4e1f604fa955e0bf97bb0f5b26d581dd48e9c289117ff063e1a4b53599a9c7e3151fec9866900f4f5b4b3ddf924c4e5ef55748b1f6073bf5872ce5288a35447aa136f3a9f3ad6bae21e1937a917621795a4bc33442648a912b320a63ae4011af785c1228c0caa9fc818d821503f73591078ef1180f60109349d8a1988d2239b3f983ce846e5113fdbfc3953470135fb6e96b1b97e515653f4b5119d16b551ef399b4482660c162c00247e6dfcfc094709a368dac71a03464bf0d1e391ca6ffd3440e206430f2bed0b7e3280ec782b97ae8606dfd64f8e3f0951c2f0b45002d99936f625ff9c7e827d16e22308f737c7a2a138db4f438e0443af99f4596e66993ba693bcb0b71b67e9123295bf76594fbe4da736be5c5157a7c45d45cde90049b993fc7f6fff77856ff39dd4efb608450fdc188f3d04735f15140783553c5f16a1ff8dc7963f00f5923f3acc1fc981e32a18858f932ad13cb5c51a5c582c09ee8e0113b120c1380a6ba83c1a9ca6aa113cbbf6fd0735f94876e29b68f2a1180de411cefe35dc58424585cb76e4d0da6f1b11a8022b337d1c90f9e2e72e4749d211b9552cccabc7c0105407e750b85e8d2a2d55ff414132aeb7e66d3418fde0a967f10632810061eb142813563b7c550b389dc3861bf42684fdc4edc372d693bc54134e8ad6ea4ed87c63de2206d6762ad372940931814272716320a74186d614323895c4afed431010dd62329496860379d36c7cdf00c7f275d430f3ebe0e9695fdcb8d0a05cb3605bd0c2c54b5442bef54da6528b4dff89ce50458e549e786e58b47456c8a1087818767fbc9f552f4a82e5b43e8efa33e7f451a6369d161eacb334137e3a7ee738e1ebc46de147a956c77d1b0e037747c151f9a2ef1ca9ff594ecb38847b43658958fb56c60f12b8bccb8430f35b5caa6232cb6e0df380da2450067cb406059334c7cf097d32adb38f56764b2e87f11d9da954508ee43fdc0c4f21dc1d4c7c71334b60b0174df088f1de73b0904708d3b66bcbd3f43a01e6a69ea0e0b94771aad7d331ecd6618255b3c8be4b2aa1691e241926efa4d514835d7cf778f810daa4b113b6ca11d4b951f66cc265268dbb379f514e51781d4e0420bf829331cc3a2b3ea2f72aa0c6f9168b0557e5a2f50d9633273d258c896778235edb92bee0b74a9c9e78acc5cb0e0cbfe953f10eb1706c78cd6762a65f6c6433999993ee27264d739b189eb4c219128aa040cfdde02e5e1c55ab058aa2f46cdd58f2523625ea52f03497ebbfbf830cb5d4e7aeb6a9699c87e5348d8778cac8619bc15458822e0ca6caa254d1588e8d1ae0ec1dbfe06e7c52030eac13b7dc6d4e8d00c682023d15abf4bb43db81acf2dd4de137a266c874533e623f60df5e553d5c4a0c521bb7d477a723b3de8c170392ab03fe7c876132e2aba068b8ebd7732896712d55f8f1f9cc8ef432f12071096831cc5030140dad7cca1c6ae3aeec53651bd68d66cd865f77561dea98386eadd63c2b139abc2f4363d718aab275ffc48a62e8ff3ec95f30ccbe899930c055e1c592065d190b899655fdfe5aa5d8edeb75934b79e337dad28d6cbee8f5d768a79def88823f4c4f5cdbe0ec769b256cfe5c9ab4ecfe15b4f51e8a6c068a5e31770a760d085dd21a1de0a65e8344e9943113fd70e1d873789996f6e630c9b68255588ff98640f4f83bdd366ad463f9b85bb10beb5eb3a39a30ad814169e0072cf6e7e20e37a6b98b28ac477973f4c814b2e5858ef1d3a2900e5746135032a91f01036463666d382db92f955c8ac8cc3d2dfd94acd33197e1a24e9351b7667acd0ccf554eab9b9c0418567e899c1056f7f6092a98e8c9abe70e1445c0279d384aa04dda3b940e95a3f7370c1b80764b4040e440d572af330f187bdef8903b24f9440f42bfc4c52766ab631bd2594c8dddc9725bf507a46ef52ba8d7cbc107e6643c93cd3f71ed4237a0b6420e75a6d8562f783fc557976725c16d5cc03289ceb0da6ac2a29bbcd9ebbe09c7ad28654c57ade640b342a725589f8b22c563bea9d86891247e4720dc9ff5208a640ff10929437938c2b2ebe79befee72b32486f55f6670dabe8f4c93616506af3915c6e215983f79cabe835dee2fa66d49fd1b664e320e44636054c664cfd5ae0c10465ce5ba028eef5321048364ca70c5a071601239eb8a9ee9cc1f5f4a36262dbc55a8403e40534956fed64a317116bb8a292a3dacf1aa984dc7d1e0ece3ab31ae97222149da45578531a9bf6a50208388213071923a73ab66fabd6d3fc23a3b19686c20979a360305f88e29bbe43bffcc7d02746659391f3c70ad93f1462b933f5ccadc6cf2c6636829c34c2b464986b12e8c7d51fb3118bda235c3c54cb22d948f1a51babf567861dd4afe282eac41ce2f580cf952226d48c97c70d528f347ced908c2a0593510d9e6ea7e025ad7615335a93eeb97a33296012b6748ec3df5556194cc3bab45dc02472ff878067096554a8f8feb03edab54553426f4ea0ec7f6f618c0d7b128ff1495ee5ba6e82164935a2df8fa81840cd87cb7a1e85d25192349d89ec15b6dba33a10fbb37d2b1c83ceb9a5e5b134d0c5f7a63fb43a345bd0fee36ad11e6ac9c9ffffb8f9b219487aaf122d973a020f4d463750e5c13715a5aef51c553978829515183ed7f3397761f062aedd43d705b618525337dfd367168cbf352257187e3975cb784674ae4ec66a3deee34972024baa5185ac9894e0a28b2948785df025180ab2c3ea436ae78823885386ffea703530988166cd510fe7e01008b9b52b6165baaf18e29ea8bbf95a2151066b776cc5d3c49ca9fa43596a2a8aadc9285aa14920eee3aae2908a6859e8d142cbfe3e23575b8319215ec078d34b3b71d5487883c04f8282e734a3626d9d2d2cc34c6dd798f435fe2d55bc92c842e6043835b2d0445f58354289308884a6ad026f66a407d3a653700bf9ffe65b170ee0ed3fe7a7cd1965f9a9c7edb7039b3834f193e2040c5c11030afa2a7bd9905661074c594baccd2f165495cd8f6d479c0985ef0634e601c073c6e4399c92826bf563b4e85745511b2f57f82ce2226f1aa2afeeb976e3d504bd52ad3d0df487225ae598db6ceee4e8a15894850b292875a94ee948a6f7bb8a9beca04f737c3330175787818083fc77b092ca70d3602de86acb54f73cbd29f2ed0e2b353b47ca0e989bc027aa102fb117ce31cfb23928ee8adc0eeb6256443e4fc0b19cd65d4569dece8df9beba78540f99ddc616383aeb7d7131a9855f0b787d985222ad01a249e144aa7de02b62cf020b8bafe70546a38f7221c47b424a7ef0504146cf2e902b1cb58facf0b6ae910bc9acf4f8cafe201216e5dcd20685a017df0c8429834970c65a91ac7cb00bdc29082f25a35542257328c734b368dcecdb138e206d1728935729d4d906206bcc1161574e74f561e909d6b56b2d2ab2a9ebaf71870ae41e39c6c5fa6ea0a142ae5addaeb6b2b7450c1c403266299280669e61d79a9be2bb55a4181f466106b3536681f2d10c1c45b94ca4e981655f136c3fa5ae309c61725f8cce622432682996c5b0ded82840dd0adf285da766ede9389c8894c97b6adf20af82cb04de2116c11cdc22387afd5e74dc1525f1e003af0f8b202f07c1caf65e2ae53bfd34922e1c0abdf17f413528906a2327448ad04afb54b2e8ea7367f01becc947ae139ddd9f1e469c9b93ddf2eed7e27d826a2fc2528438d901e3e4c1f8292e7302d105485c9905e7cea16c40565e7d067654781a9d4f78afe2ba68e7b17cd12bffc569c920542c7de5aee0d8edc39ab460688ab1e95fd94ae9819acea1e3f9cf52e359682d02084bd9d458a215ce0175c6011cd065985004a9fbb1f4b849c5e36cfdd3b1cb44244d05dfae19baba3749b443de36e43753833f4d7166940552c677f9c0b20dda7e07fad7ede3687e295a7f9444ebfd47cc445557cf88419c7080092f31dea2e832a321f435ccce5d65ed02d197aa15a8051312d99de71604526de0f39af50ea004c5d0fe51e05aa01a9252b29364457423b49d2789130f30650fdfb6d1fb531d1fb0ca5d18d07d3d249273395838e02e22c2319286e86b9c8805f3934881056e840636927918d0a81a9923f7c29c3dfc71d7966dae8e12ea85c961348a3d22034f0e7b2eeb58d89ca63473ca765b04b6b375a080e29011bc65db9c6c9f990a976e1e5cb32fa5e576b26fbf1a46d500826df9186b8ce64c840a399b1a68758bba31e24d567a226121ca6d1d424dc2fa4c17f11759e00f8f109e0a9c784613196e6f44ad4bf07bdc7e71550cfc284bdf8e42e51fb44c1dea4e7cb9172852a5036ae45991c3c00a1b045d6d1263d0179126f591bad8e7d3b8e1c25dd9ef33c6c29a9aa41372b7b1aac9e5f1f05a2de11a0217f4110cdee539bced645c7a0030f8a4cf320542a1f2e097b84cc54c242a110bb6074a416e18d77437f37e5035cea0aba2e7e9d7ad273b190bd43ecb77a2843be797b0bee6bd8236a996e6312534623bdb21bceeab0836bfa7832ded23806ff714360a645d393df393843a3db1c9f004bd7bf6b77a8305c3bc301fb66905b1e0f46f19f00c5e84e21294a49a155fbcd0dfc67c8a82ea549f0d6141d63d8b7201f5b5cab22aed36866d1751c7df802c681d98de4ed5915a688c4b7ae48b22620b2d93ba9c43a3065ab65512b3d52fe763ff6788d3254f6f096aacbde38022c5fbe7c8b13caba914b9913ab8a807dc1d25e8a524e6c55947e790e5af0bb52b1ce103f3ccdd471d3def3c2882f9de4f9815fb4469f6b5bde1595370e6729258d3b670dcc25bb786162fd76cacff9250aade14160ef4a454639add1ed7751d912d0ac640abb2604b6bb3dc635df878d181d36b4ae4b23c0fbc05f890de23f51591621d537541513c134fd81169762033770a0e49deed3b5a73efd7c7149e1464314b66a62f6de799ce4c240dac4fe5734ae3120b788309f20f452c909a8550245ce3da96452c2c762f4539e034a470a8efd3ab5dcb48d8b53388b02a32f922b9966148fc44f3c214f2b7d5db2e6155e618fa03cf97f1b512b7a4f69582a871d41bbc78129b715eab5a5d27ef642224b906744f07880b24d55a6e75faea7f3b0fd1e242902ef36c083b7ee18a8e5bc0a1505130080373837807354cddab3bd94e76f2bda3b0fa2d53b30c8400c523d5bbfcda97464fa3e3377c7c843709b798044dac730d46e0bb2325f3f9d6b638bfb4d181de8fb46aeb1383c4f0808829c0184aa808fdb3d645b079ba840193f9a8df65bbbedb655e6d43db84a46e5237b4458b02107f21fcd23fe453ddfaa7e5deaa695c882e8a3b233d88e579a3e978bef80fb03e2d20a006b1b5b70e796da5959f1e2f301e9441a1655be0b0b2c8e52406d22184d02adfacf706a44cf9dfed1ed5373e19c19f47fe0b83c218150328ebdb2a2146aec45acce5995d9e2297a59a567b3198e03d4c1fd141763612ff0df3a191b6f806678184aed9e51aed14171434dc5a8c4f5d32f3cdf4a3831da2dcc491eb4eb0c145861e3a3044199580e643a8d37fe7db93af963d436b98760044506e23f18fb5b72ae70baed2aacaa51f0793df82190dd1207675cd729c599c339f5898b0ce62728d82e3a21e628339cf42028694ee5d8a45b84c505a0dfd4c47435d1f2a00f3bed002944da7bbd1fef11048e45c6689dad1c9f6759636feda122e8bf8386443ac29068262bde35b1c1743e7632f6c2326c92ab2fede14c47ce303e113fb1e30e47c43b817cd40b9d9ec2c1673d1ab9cb1f534630ee5330e4131ebba59ba8dd53aa2698b9af1a09e46b96e723cde2a58016f3dc5f2540cfc5058fa9502f42b1f9cebe265053908d52292f00809df95cd6a25080e42bff9c233ec95d8d73bbf83fd4d3d3e88896601f22e75ff4ccde2318f725ea049bc5824817f07943ad8a4c4d2d975eb0c5d52187e1ba56789a351ac47e1dbce5f9cd35fcbcb0bca4c11327db08477b09da61e4d2e2734a8aa9e0ef658e069317619bed980b5264bfff4015d03c46b85f24f92b6465c2e708517edb0061f14dd9fecc9cae5b80648315aa4645ccf18d7bb5435a8661b8d2cf4bfb1e50f12233370bc8285719746cbbe029f79c2f5e7943c48f89b27e4a21685eb7cdd84701f8f4042a89a92b135e66f869a345a6054540a35b02f2fe136dd371d8dd6308a0503f39f88e9334e818d50dbf23fc0863477fc7c11fa8b76ee159fb4be1d01351cacddd9bf081ab27e9cedd2ecf79a0a009ac3b6f67ac25d5f774c15f6eb9a9fd12d0ef5f93614fccb473b75edb037500eaa33c98722f9d3a2a4cc9f9dbe980d96e3e95aa63ac7570a7e8f6435c09f0d62dd703fd53e7117e522ac03fe817bc16958f152aa958056c7201ba838b6c03c520ba13ee5cbaf8cd700a0481a9a55bb1e1040376186f2c31ef16bb045a5ba16c9975367e8d66c7feea35794d458d58be7db4ef99fa430164a84190313b7357a63d70cedb83730521080c3a45fa2a5598cc132adc237a0f5109d84594ce5d3e1e9f644cbf7b049c5a4036b100fd29b8c34df124668c62f1bfc3c548e71c0f2c49c968ec16acf842416f1925b9d7d338071e303e7e95414f35ed9c4e429ca5d14e986bebec9782d889f04d256cad0dd40ac3c428915e803cbe47dd83c04fc7e7d7a7e80ae05fa9b641ea4209d7ca0a2ff64848e39045f1109d8385be9a0e4d21623b41e63c66384ed73b58c404e45ca94f235358178998e6a3be808cfa3f9bf8e5bf64c617ec87e0ba6d61e9035ab53bce33f42025708f5fcc177b9a8ac622a80c826fa4da57a6e87d655375b6f76d2a02858c320a67d66fb2eb6c3fa27922893a512e8203e097a7acd37b4ba6ee645c08781a1d6b46758e7aa73679720129553be2780942de2ae89e93fa2ca0a0b934e1c715451679ab0ab14be2a10fd2674a6759f390ff544c180ee6f9c19dbae813787c01ce5d1117f403f5954eddd813882541bdbc25859db163e2c1fbe2c7fd2a3cbbd802aa794ad686dc56fbe625abba7155d98b73ce304123f087c3db065ff2fa64304b8eb92e85ed79364d0fe98519f49a04378fcfeae646592f79a7783d5476f0b8e9bce1a4eeda989a59229c257ab7a67516ee9dee2b040162938601cb107b2405f7dda68ce2db450a889b96fed61b6a7ab108a05e5e95f5d8d8b1805d31fd8adf7a410b8dcd15fc0db10e32239ee111ce1ed991f8a9f091ecdac25efec73a52f980399775c98341651d2467601bdfa3ac0f4193f01b10333c530a9a420b46147fee56ffb2d7b7eb6571c949741b7315f3fb2198c17481428d341661dee006db95ee40292de55ec6d6de96551872f191dfc6508fc3a3401c7661cdd11b889efefcf0c94567743e1a83db171f1324b047dc50d6380302504d39311033c8ddebaeab8ce0a6a7f084a53135614e4c559d14766effb3163ff55f65dd68e356e6f857b55aba7335e00e14840f5de3204928aa2bff6d6700c7bd421ce35b4939b230dcceeb654835a9b66d543017bf3884a68b89817649426ef479be51a1d6a6ed90c37d3e33759e1cd4212345692f262c668b0d23fc0f1b732bc3b3541d5c0beb604d55954ef354abe217b2164e8e87920e01b794106fe621325e1b90d4b09c7e7a4cc30b2ed5de59d1a949d111f501bf671639cf19c45e6f9f2c29f7aad8f884bf2a89623d5c10ac78457c2f5181a3ccba06b303f8fdb80a67145a64c792950f870d22bdfde519bdbc70d358fa20ccdd3bef9ae09be7d97a9779688d0781f33a71e47cbb601e2c57b21b0fec9127e864fe5be70d1669edd00466acbfe71b7b2e490aea1214e63a0d9a0526db10df820318669701b39f01a486d7ff0995294849caa378085a365aa131d40932d3d633578db70c43d5817cb68b3b4b4b8ca595ddc66e54b44fc336a7f1c1d2ef79a99534a4d40aef15fa8fd11cd8fb055128035c82cfee3fb368239303531d26a84da1b5630c69a748d634d8cc189527f4f6c20b941951abb676354ac750ddf5df9b030fa5bec0b24b4fe3b44cbefd49095f20b7b6ef8a49807a9158a125a76f0c80c4f3e8ed64ba76021a05c143bfdd4f411a603b7d4e7b155509b89cad4f64a08f6b3b738fbc47216521e3bbc7ef44edf392ce8be1e4a0dd8881f0050dacde061fc1342b2b0e9abecf1d17b403459d52e12b713cb1294d382b7831f2171503859749b5b75475d4019cfbe9c586f4898bab08d73795fd38ffcd56c8e7dd2fc8287f24f8a5c0a0f78659e87e1bd80b6871e661348d915bf21ce4d7e08175de3a6de61a540b31fdbe0b9f7588158a6faf611e4093ec5d3d2733cbafa42d800cb441c6e73e2383c83f1e7efdcd441a3156cd8dddefe6f5eeafb2aa30dcbcd372d0ce1b8c2570f522f0e631e5283a89fb25c2af2283f0eacd717b21089f53124b2be6fcadf8a5b0ea6a5469fc059f8bdc4fc7cf101963336f1c91a13aa0bbe7ea989413ad3e843a5039370e2635a04a6a86c39a860f2fc05e42220b88ca696d378e544efa0df629b703bb0cd041e69b2f426bb7415f51d6f55fa59297c12f088986a92966baad20dd09cd63cc58cec5111206a917d16dac988248420dc9e4edef911e7a2c3d43ec6a5b03a1a2bb1876f4f2cfb78ba8e1112787c35e3093e4022f703d93b4bc9894822d36c906132456061b6f6d39f9197cc59afaf8aa4185a69f05f77a52294c769bc4e0ff9f2f1f21f640c3177b01c9e4dc33b265aeec9b7e17eaf692dc4b42dd6a824b0deb3e1432189f13bbc2d3fb1c7160ed0073a458604596df74709af846da36b0ddab5e60d494381346b39f20203160695b51712bb8369366c2d73bddbdcfd66f741a07be157617b0d960be7edc61b260c262464bbb7f8b500cdf699af200e57b21c3d6cb7d50e8d490117c9e85395eb9c4927b741070c676d141c22c2d8255fe62bd70c95d749b13c5a50fa7c683a422d8a16f3a81af86594462c749fd9d945ef0f9d6d42a4db92713360ab3c6f0d2c93d4181fff5b2a4d70348f4518b2ab2b3ee7470f781631000e6cb688aa9673759dcbb981a70b59f88916074e46861e1243fdc23dc6836fe37debb2fb0233ffa9a8725664ecb5e55144818b4ea0377485d11f2fb3d939237bfe99d4c24af0eb9be574b95e7c451bc9480f7ed234e10e06a9e8c04c2a692f501e6ffbdf32f78f93436db23d7d22cc115a157dd918437a7a36810b8fe2c8901f3c47a4388728c10b2180ba7360de92beb4fdf2fb4d38e63a881adf9e5a5a5df232bb93c4fa83d9985e4c60e6f85adf57d3ea9b93404133542ad8afb6a5d44f97bef308c8396390522a1f9c49e5888f12548f3849082843d314e8ebefe19aa3d3d5c1b0d8d5b62bd5e4c7b3fee545c3ae1dc6fe3c847d06bfadf7723dab1023d9c4b06937871965bed70f8b2035f76112f7ff5ed4013ee03e3a80c136b0f02e2a9a75133137e3269f22623fb8ab8832734f27b0730dd0fb8fc924755e38ec606c883ab4419fd0ad73734d05b68515b4394c82ce330e8061be8695331968d322f3294fb188af44f7127d3cd095cbfab2347a7e3402183143fd2f7123086c0f8058b6c7d943a03e9c60cddcca4ca6897a8cfc7475d6c8e566955bb7a1f941f51e82348259ac36bc8b73305443b01a7b254ac24f2431d3926f806d14c10da43ce876357562ea300ff716dd0694d627cb4fe2b26a19b7ba016fbd15ba95aee8f006998bd1ec6448f5e59673da94d884c86ebb2c231549dbe510338b2c3a6779b2e6e1634cadbae2d69d6b7dd8e86073427a11b79e5b2ccaeb1d169e22c7c932d5bb3b83e4f1acfda373871f239f0cb1242bafa1ddbad48a0c0257e05d69796f7f3a6f9129d0b6576de96f9f260994374db4810c93b7f6c6d7833f696f415430b794ce89f3bd64ca33789280d8be88aa00c5953043e3c8e6bdeb146336de1ad33f372e5a2dc82fb37ef337c09dff53ea62cfb689216a2b137166ca191632a72b67db55333532cea6e9ec59166c7c314fc44db555c831a4ed7bb8a92935898aadcb32f5bec5110e748721180142cdf2a7560e7da68bf4a4b6d590d72e4b9a32d276e5116aeb2f46cfe2be3c8cb472b3a1ab7b44a8bd2e688e09d8427b9d60b8d9d18170448295b1b482ff138f7f3740605711971070e5bf4d84b37685d9e90007c78e061152ad22ceba0a7a27639cf8035344c1299d7d236cdd7dd78256edf1ce2399164482656d10e7c111c1b996d53cb586ddea05dd920fcf306a533350f42e6a116d8b6ca84fd9e7352c893f326d7924b1b052a1edc7018f52742396873678b60f1bb129a95e239e3345d90efdefe9f1a57ca3ac3623ca7974a44ebca88812387c56b9772a18762d9084d9472eb82e29d6aa4d50bb837e2a6f25dffe355bdf2dfcc3153b547a819866b210d01a799f17f5b64fbf96955c37dd39c027afc4508d2b5706ed24b425c8d2300aefa444c8c8245e56ec7c6045d1974a64c34e9e8f3bda74806c694f26d4c68decc2c6e1c4fdda16fba38f82ba9ae75027a0bd79e1e33b88b5ea30096284dcb2b9b08b2d827ef9c134e0674c7df6548486a688f69ed617c2768ef3785cfbd297c76ea875772897909d1480e24a69d0a04c1fe86bcd29b1a262a16ad52f1c65dd045955a97a862103a5ec24353c664e29a9f6ce0b7c507a1b03d4031d72352b6fe4c4d27aa5bf20ca3540968d57db9109237fa1b688445542779b1514a1e38305821dce810371fc9ee711b32a24aae9b0019f136c35776ebbe80462736e89705630769f520ac101d16b5d1b6bef60a457c66573af9c1cface485c7b9950ab7eb1a44da6feddf039a1a1efe5a31a0818ae4b17c50742bfb9582057697b4efd01b17f02d7830f06b0c33193e44a0b0929b74d777564951bedb8f5c4daff66f5d04d7c4502a9f21a549061f2648fda88af9fe7b77510f39708879490a9688ea30b9dba478fa3aeeaa6e38b8cbc37e2020991541230558cac60eec929f838317ab15803ae4f3c11513cf6c37357903c48220210aa4d6d487cddedeab9fa6eed7771cd9687c296bb03a14878de5d72021215ff1aaad79fa7f939383197d907c155f96e43ea78311bec28551399cb5b2f34c2944ea7128780d904b5a714c34ac96642a62e0ebd4b55340db372ae51797ea89d77bfbf7b1596aaf85d5c33d9d8f5b62d0d04afce8b04c95594e9a6461f4e49102ea9b99967727d677a5680062ef5c460bbc96425fca523f0e2bd6996f481ad78371162a6dc0259ae0551644e3369e1fb5fd43569453b104681fefcf60460fb2080744cfd6e262cbbf6a2cb262b7e4bada4159ff39b0f3478a64c9ff16cb8558fe35d10175b5691ddff56e42e022013a853a1c1d52eb067ec8d8c873aec85088098f3c461fcb52f99fd44001c7749a6aae945a4684768b67965b7736ada09fb5823b01e67fd4d89c12c1aad16e1c65cf54bfc0ab10a5489dd24382e7ca9fc8aabeb4389916737414c016d88da78dd2432b7ebbf19d919cbb1e2b28424ba498a0c9b556d2e6b477388836e48340bc6e0df4e5d41a52eb0ee84b13343c063d1208aae4d81e959ad992c94bf72db7c71e25a36bbe2389a82352c9be1110a6597411c3f249ec8baaa3ec02546349786367cea17aa83769da08767dc20260521ba27d9794bf5fa63bbc6a6d78e7b6d4ae6a937b9402d73a988d615c9838c48b9b7f62c166e5898264200a11aa78ba16bce674632995dedb30d8ad374dcbb0063314c1f78c0f98f1985f68fbd4be8e2aa6fda438bf4f5c0150187e93eece704abc35fc67ff5269e2a54b9feedbba0c14520bade10ee39cd5cc8f1ede4f675165553671ff57d977eed31727390ccfb6c70f9a6af9928d76394c4c38db9649b4a87d7a9d972df8680ba283aaba045797e97f8acc8c353faa6ac2b537e9ec1687e12beee454a6654ac18c4a0cd4cea4860cc8e61ffa258c639251b45af222ca8437b015db45a56198d5d9254a4685e13f01fd652067a24005677d7dd27a767832f34b242a8050a853110bb8aa72be5460b16bf2cd748a4d6c710585650e6105c76e93285c1b1fc25d1ccd3779d3b494577c14a4b4ec1a9553ae130c089b535d04761b724443af77de1cd94f9f73fc8e8a9b23214ba4cb5cccc9cccd55f3ca2bee10013d3b34add12cdf731f5ec5654ace8c330d1d548351e2e7562fdb5c681b9b1bd0816190da55a342ef5a88a3aa68371a049e8b9a553b465c6c53d1c1b6ef2292d328db7bcc8c48eaf45f75e2c9fe3e9024c4be34670fb1026ab8edb65559da28df635c43b1ee0097d3b05f1e72f56fa30ed02f73cbe43316c5b859855152e0d719b82facf8ee06c6ae5e7429534740a1dd2df2f809780943315339d35faaf06fc746a5f7e744b71de8e79271c9e3bff95231398d060f223a32298d0c79874fda5a599a8799d34d77947dfecbfcc8e7060b4818f744759c918f189aa6c5fa32e2a9930a4ea211baa4e217619061be7f30446a8c1db87320de04bf6fe466662b4483ea123864f35efc42990c42c3f284b7b497cb3bcdec0fed8738f3b4d0bb55abf416452158c2c416815bc967ddbc6d290b23f22d13e0bb48873a4ab711f7a07c97bd033cd1e4d376c402fc75d9664196ce164c4144facab38ec6aacee6b4b5bd1b3193e03fdbf3c263de065f5e0ecd555505ea142abe5e0e920a427fcb28c56cb2c6e33a2e16185169879bc3865749e15765d90e863e7ff1933bcc2ae52fb4428090eb575c2611452ed6b048f75c0446fdbb9f1baa4b6a9d90a832c8433dbe352af824a077fd941cb20a44b3a48032d94e07f2bb4e36b68ab6394b464ef2648b16b9598621da4c5534b6da63da8116a4ae77c5bc3149923a1e0c202d406b9319792a2078dbb0a4e13e7bc1fe23ce026402ec3379b4383546bba0608ca0e2e17b6959ed040abd2ab46e15fdcd4a3b36c7c618cb703883d05144b71b55ecaf7a20f96e29ebe1a46adda462eec7557deda0dff64ac50cb4f6969a34df6d084bdf64eb89d7cb410ccef5c90af3d67bca87678f86779c484dbf023c32f91d5f173e0037046cedef744d5e25be20db7b1b6ef9056fe446a8ced73a30d0844e971f49577525cd627399bf1ee2812bee21b310b82bd32590a01dae651438146ea5bce421b9693bb208f8f48d48de22b53e4e0a1e2f43c2cbb2f169edab11470f86180737fbf41c03eb94ca58a510f0188afa3e63a9a92080a3fbffd0b1276edfd994fc43e2d57e0ff774acedff72078b1d2d27ba91afb9034d15278f16f9b81b6e4c31248358664a37c8d43db47d6a3c50e191b6a5ff8e1700097881aa21ba1e2834b7a0a28a7927a55700ec855cbef89efb265319839108dfafb9483fe46656b5ec15e0607358dcf430ce60e9bf470741b170aa0b353d05d9e61c4224e282ed584636bc3b6d3dc144a4e21aa327f1f253e17cb17d0a19fb0f4c5f20da28d64ca8ead52f340db6c94bc568fd4e2386cea1e9589a1d44f3ec603ae39efbf12474d1d2480b1903ee2846fd3e3a73b3252f5aa09bdd7f609edea79bfc71a7e770985386afbfc549fcc3c6a642115283872bf1d2b4a4d7387c63472031426700716dbd92e3f845c574ac7ce12dfef81a6896708497d3cf5162298f14f04dbe1a72b70dcb81c5f3b8a3e9a717e78cb8cf8476a75eac8e44e86ab442ddb6f26f1841261eb7d61909bada028587300a297e314f9b657b833b65d5792a314512d527de27860e07df43c97baa7403bce8f593d3acc6950dfdc01b33bcdf33e3dc4f1c6a9f68f004ca24e7d7fdd2cf77eaf7c03a2ecf2ab2966be9d74ea97ef0c041aaa9ac7ece85023e065a3a71b1305966dbdf29d70fa7470e8c0ebc30cf9cc78a39cd20d3775f0d7ce2518244d7f19eedc5bbf1e217d294253eca553302fa08c22ee8b1feeb4a8e9f5086b2f9567627e0654665c2ab548d42a6b8750c06b13bd861b6e1d66950230a6be5c4c4666be8def869e8f1147e3c14dc94fd836d81afb87bed73aa987623177b0f48f84c56f9880ad4d872f4f7d0b1a05d1498d0f0d874e5e11f1b54128827d62ced89b91807a298b0f793a1b8d097c830c62a2c73ee6d6208d0adf29851209ebd1b6bb0c984b2e846326a414b2bbaf08fec515eae65802dbafac4bd6358e1efc8beb633b44d211d35b80c452f1c7f06f581866e0f60ff7d88e01764bcd285d911f9897b7bcf4e3f7e59a7781045f3c17bec2f13466635a04a83acf9e7c2a20f4244d31b89b60b960d4b82c4aba4624330a9100f953022cc8ce20cf58828d0c1be9cf5a913605e956e5f83a18dd1e59f1d7c88b6d7f13c6410980bda3c8486a83b4e6ed66f2e74e0abafdc1db85558bf0072671760dd9ee116e2df25fc199e01686a220cd3bbad5fa19626e4e839533b1ed883f3a76f906ffbe922953a5cafb0b1b15c45246cf91487de393120ed0ffc1ec0dfbbb17c8848e07cbadc8d476d226369c6498dc4d9ae63a1ad082c82e70e1c2c9237118353df1e06a73490dc4039817d7230e7e3953ae7517fb28afac7f09210d162d15773fb5940cab4d8f320bbc7edbc5d9927f545f3c4f09b89b19bdf750f995aa95a4ac77fa0aede25040d086cd9d2375f616329c20503508f5d03087a6fee010fb9b5f8a00faa99bf892ee790b2940f506e91a356e181f96a0188568c650bb2753161b1ef1fd45462a9e46c3f9357a455fd297bbd0ab103dc1a1a1e490a97b22384a6cdd85d68df645fb00c07c8f71e8e271fe1a712cb33803473a2673e5eebd1aafdcb1a38db236f83b1dcd70a279e73451ee1e59c6a2fe1fa6ba44fd6a56e588e9704de49427c35722a00084ef5db97551501224650209f87a89191ec33ecc4a48af07eb2310c07a3e8c5c79de5f7c5e24ab8a4af71047a566a2f1769f44128236d8570f342a6b19e7faa56d88031a78492a0b40f53851c047ee940d57bdbc3273bc2c1080c48dda7cdd8483b6bbbe15e6494dd9707983f4582b2deb6b7ab12b1bb785007aee8a7342b418a5a9d9943cf81effd570bf70066d293a3a3689572fd38b5fa453c6485ec54bcf87ca4eb3ede15f90618c6e4bc4028c771a2e9ad65bcef7e2198eb9431ab02438a979848b368ceaab7fd79436f0a95cce020e6d668accf66a8b064abd128d6abb713a715157872fc6170576b9a1bf5df4bba941c63fb135533544fcce2a885e89e2a6b93ecfe2e15d5f40ecd5613eba1876de80920b4f2c081ffdac855310bd6f58c3edb0afd29d383065fc2f53a9dd27ab8e5a1c349787c5a7f80ffbd57da3280e40aed2b4d9a2cedfdae90c207c24a0b834dd2db02b93f69f9d84de962073b596988aa461df15cbf45e83ba8e466b472e433804eba72acdf44b4166fae0ab441d85c891f6ab6d569e9e72446e61b77112f423731194203262c386d79ba1e27b52c248f83e98fa20d2bcdf5ff8e6e9cd1cc11fa394e1e82c0763f86d638e48d7e0575d55e30bfd1dd739c745cd92b8681c86459a4b5cfdbf7fae170d29f20b1cdfdd4d3e358683b751649bce7bf398552f9f8529521e1c1a6885656864c3e098f2afd523f819372818d75dd70b6ca9d1523c2183f08846b56c4fac2add98b109cfbad79cdbddd1d0b521c2b1d9b73b1be659a9fb740c8a8fdf97fbd66c4bbe125b2e9efd3efb02d0555b49491a47d8e31980126cfd2a34c4aa16e465d4b7920bb551bdc5f2f7ca446458b9f07837df1e5d745735716bcf01a809d0786260c564ed09fe1c9788fbf1bfb506cb3cc8b7ed3a95f477fc31f8e93e81347931b840d915320b6eb3d05fcd84ace79b8a3381207f08312bfb5ab5f65cc90822279387e6b05131d41a5d5ad2591ee2b4713b75e7b45be70bf9937379977011a99c4e4d7af3aa5ad522ef9ad24f5de330b19f7b01866cae7bc145bdf7b2b6564f49b8f50b9bfafa66911dbf7546eba8576bde4847fd8674b1851f3764a1c9fa94749f48e2ca4e6a59fb33756f92ce454f256155790f10c36e19d7ec08489948b2ef6289c5324951d8dfb7ea76bd55e18d780f73e3a7a233747170e73e8e5409238776768597d8b70a3155c715f74257620a75db1ac1a9b13141253e7a04a4764$130f89976f8ab366002d7c0a6a2de1cc89f476fcec2acdb83e4df17508ff750e6dab348eda053e18cd23902e9a530edbe1b34f68ec0126b10320641abfcdd950c7e0c720d8da73949f5f91a0b3fb983e2f6fb9307dcd4b6aff12b766b561a1307f9c44005b9272bbff75209073c27cd3fd550873df31c8518ef9aa02e872de81c0fd31f32a2241b64ed74c6b907ec9350f828572650434d887b40caf50f3f752dfaee6698659c8cc32d141a1356c5784ca23237cb3e28200d3b004f7085262d2c86e381c7f18418b3274eb7513ecaf5e11ecdab21108e85c2d7a5a9dedc76686c099d5a8fd260765d3fed2cf7cf98bc4553564b83d4f32ff6c8bdadc32d4abd76614c86bcf22608413db5936861adcf2720ee3d60c51787d90e9d41cc0c7fc6132713cc5cea0ea79ed196748965eec9a4678ee8a93842c7d5712dc3ed4577ba685a9143e8e76c7d14feb3179364ad05d09e5846bf7dd7d63ce9b6bc5b942145ce9a44e16ce65f5290600c4e6b63c66660fefe23d8d27f574a7b63897ecb81bcd62ec7d8abd9f8014802b5c53c6cb28ddcc6a01cd0108ef05bd2409fe637c4ce9a0f3f4a76589b4a9ae6f160fae740e12fa30dd05f3c7aa57daf0226fda6074511005d4d3cd4d222c3f762dabb29cc1d150507c5b42f4c3eb6bef8b01afecdb70a9fd68f2dcac9576b6504ac0ba4adcdfd708524affe1e6e84efb69ed717a676d"; + +u32 module_attack_exec (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ATTACK_EXEC; } +u32 module_dgst_pos0 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_POS0; } +u32 module_dgst_pos1 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_POS1; } +u32 module_dgst_pos2 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_POS2; } +u32 module_dgst_pos3 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_POS3; } +u32 module_dgst_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_SIZE; } +u32 module_hash_category (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return HASH_CATEGORY; } +const char *module_hash_name (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return HASH_NAME; } +u64 module_kern_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return KERN_TYPE; } +u32 module_opti_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return OPTI_TYPE; } +u64 module_opts_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return OPTS_TYPE; } +u32 module_salt_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return SALT_TYPE; } +const char *module_st_hash (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_HASH; } +const char *module_st_pass (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_PASS; } + +#define LUKS_STRIPES 4000 +#define LUKS_SALT_LEN 32 +#define LUKS_CT_LEN 512 +#define LUKS_AF_MIN_LEN ((HC_LUKS_KEY_SIZE_128 / 8) * LUKS_STRIPES) +#define LUKS_AF_MAX_LEN ((HC_LUKS_KEY_SIZE_512 / 8) * LUKS_STRIPES) + +typedef enum hc_luks_hash_type +{ + HC_LUKS_HASH_TYPE_SHA1 = 1, + HC_LUKS_HASH_TYPE_SHA256 = 2, + HC_LUKS_HASH_TYPE_SHA512 = 3, + HC_LUKS_HASH_TYPE_RIPEMD160 = 4, + HC_LUKS_HASH_TYPE_WHIRLPOOL = 5, + +} hc_luks_hash_type_t; + +typedef enum hc_luks_key_size +{ + HC_LUKS_KEY_SIZE_128 = 128, + HC_LUKS_KEY_SIZE_256 = 256, + HC_LUKS_KEY_SIZE_512 = 512, + +} hc_luks_key_size_t; + +typedef enum hc_luks_cipher_type +{ + HC_LUKS_CIPHER_TYPE_AES = 1, + HC_LUKS_CIPHER_TYPE_SERPENT = 2, + HC_LUKS_CIPHER_TYPE_TWOFISH = 3, + +} hc_luks_cipher_type_t; + +typedef enum hc_luks_cipher_mode +{ + HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256 = 1, + HC_LUKS_CIPHER_MODE_CBC_PLAIN = 2, + HC_LUKS_CIPHER_MODE_CBC_PLAIN64 = 3, + HC_LUKS_CIPHER_MODE_XTS_PLAIN = 4, + HC_LUKS_CIPHER_MODE_XTS_PLAIN64 = 5, + +} hc_luks_cipher_mode_t; + +typedef struct luks +{ + int hash_type; // hc_luks_hash_type_t + int key_size; // hc_luks_key_size_t + int cipher_type; // hc_luks_cipher_type_t + int cipher_mode; // hc_luks_cipher_mode_t + + u32 ct_buf[LUKS_CT_LEN / 4]; + + u32 af_buf[LUKS_AF_MAX_LEN / 4]; + u32 af_len; + +} luks_t; + +typedef struct luks_tmp +{ + u32 ipad32[8]; + u64 ipad64[8]; + + u32 opad32[8]; + u64 opad64[8]; + + u32 dgst32[32]; + u64 dgst64[16]; + + u32 out32[32]; + u64 out64[16]; + +} luks_tmp_t; + +static const char *SIGNATURE_LUKS = "$luks$1$sha256$twofish$"; + +u64 module_esalt_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) +{ + const u64 esalt_size = (const u64) sizeof (luks_t); + + return esalt_size; +} + +u64 module_tmp_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) +{ + const u64 tmp_size = (const u64) sizeof (luks_tmp_t); + + return tmp_size; +} + +u32 module_pw_max (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) +{ + // this overrides the reductions of PW_MAX in case optimized kernel is selected + // IOW, even in optimized kernel mode it support length 256 + + const u32 pw_max = PW_MAX; + + return pw_max; +} + +int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED void *digest_buf, MAYBE_UNUSED salt_t *salt, MAYBE_UNUSED void *esalt_buf, MAYBE_UNUSED void *hook_salt_buf, MAYBE_UNUSED hashinfo_t *hash_info, const char *line_buf, MAYBE_UNUSED const int line_len) +{ + luks_t *luks = (luks_t *) esalt_buf; + + hc_token_t token; + + token.token_cnt = 7; + + token.signatures_cnt = 1; + token.signatures_buf[0] = SIGNATURE_LUKS; + + // signature with hash and cipher type + token.len[0] = 23; + token.attr[0] = TOKEN_ATTR_FIXED_LENGTH + | TOKEN_ATTR_VERIFY_SIGNATURE; + + // cipher mode + token.sep[1] = '$'; + token.len_min[1] = 9; + token.len_max[1] = 16; + token.attr[1] = TOKEN_ATTR_VERIFY_LENGTH; + + // key size + token.sep[2] = '$'; + token.len_min[2] = 3; + token.len_max[2] = 3; + token.attr[2] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_DIGIT; + + // iter + token.sep[3] = '$'; + token.len_min[3] = 1; + token.len_max[3] = 10; + token.attr[3] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_DIGIT; + + // salt + token.sep[4] = '$'; + token.len_min[4] = LUKS_SALT_LEN * 2; + token.len_max[4] = LUKS_SALT_LEN * 2; + token.attr[4] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_HEX; + + // af + token.sep[5] = '$'; + token.len_min[5] = LUKS_AF_MIN_LEN * 2; + token.len_max[5] = LUKS_AF_MAX_LEN * 2; + token.attr[5] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_HEX; + + // ct + token.sep[6] = '$'; + token.len_min[6] = LUKS_CT_LEN * 2; + token.len_max[6] = LUKS_CT_LEN * 2; + token.attr[6] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_HEX; + + const int rc_tokenizer = input_tokenizer ((const u8 *) line_buf, line_len, &token); + + if (rc_tokenizer != PARSER_OK) return (rc_tokenizer); + + // hash type + + luks->hash_type = HC_LUKS_HASH_TYPE_SHA256; + + // cipher type + + luks->cipher_type = HC_LUKS_CIPHER_TYPE_TWOFISH; + + // cipher mode + + const u8 *cipher_mode_pos = token.buf[1]; + + if (strncmp ((const char *) cipher_mode_pos, "cbc-essiv:sha256", 16) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256; + } + else if (strncmp ((const char *) cipher_mode_pos, "cbc-plain", 9) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_CBC_PLAIN; + } + else if (strncmp ((const char *) cipher_mode_pos, "cbc-plain64", 11) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_CBC_PLAIN64; + } + else if (strncmp ((const char *) cipher_mode_pos, "xts-plain", 9) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_XTS_PLAIN; + } + else if (strncmp ((const char *) cipher_mode_pos, "xts-plain64", 11) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_XTS_PLAIN64; + } + else + { + return (PARSER_LUKS_CIPHER_MODE); + } + + // key size + + const u8 *key_size_pos = token.buf[2]; + + const u32 key_size = hc_strtoul ((const char *) key_size_pos, NULL, 10); + + if (key_size == 128) + { + luks->key_size = HC_LUKS_KEY_SIZE_128; + } + else if (key_size == 256) + { + luks->key_size = HC_LUKS_KEY_SIZE_256; + } + else if (key_size == 512) + { + luks->key_size = HC_LUKS_KEY_SIZE_512; + } + else + { + return (PARSER_LUKS_KEY_SIZE); + } + + // salt + + const u8 *salt_pos = token.buf[4]; + + for (u32 i = 0, j = 0; i < LUKS_SALT_LEN / 4; i += 1, j += 8) + { + salt->salt_buf[i] = hex_to_u32 (salt_pos + j); + } + + salt->salt_len = LUKS_SALT_LEN; + + // iter + + const u8 *iter_pos = token.buf[3]; + + const u32 iter = hc_strtoul ((const char *) iter_pos, NULL, 10); + + salt->salt_iter = iter - 1; + + // af + + u32 af_len = token.len[5] / 2; + + if (af_len != (key_size / 8) * LUKS_STRIPES) return (PARSER_LUKS_FILE_SIZE); + + const u8 *af_pos = token.buf[5]; + + for (u32 i = 0, j = 0; i < af_len / 4; i += 1, j += 8) + { + luks->af_buf[i] = hex_to_u32 (af_pos + j); + } + + luks->af_len = af_len; + + // ct + + u32 ct_len = token.len[6] / 2; + + if (ct_len != LUKS_CT_LEN) return (PARSER_LUKS_FILE_SIZE); + + const u8 *ct_pos = token.buf[6]; + + for (u32 i = 0, j = 0; i < ct_len / 4; i += 1, j += 8) + { + luks->ct_buf[i] = hex_to_u32 (ct_pos + j); + } + + return (PARSER_OK); +} + +int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const void *digest_buf, MAYBE_UNUSED const salt_t *salt, MAYBE_UNUSED const void *esalt_buf, MAYBE_UNUSED const void *hook_salt_buf, MAYBE_UNUSED const hashinfo_t *hash_info, char *line_buf, MAYBE_UNUSED const int line_size) +{ + luks_t *luks = (luks_t *) esalt_buf; + + // cipher mode + + char *cipher_mode; + + switch (luks->cipher_mode) + { + case HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256: cipher_mode = "cbc-essiv:sha256"; break; + case HC_LUKS_CIPHER_MODE_CBC_PLAIN: cipher_mode = "cbc-plain"; break; + case HC_LUKS_CIPHER_MODE_CBC_PLAIN64: cipher_mode = "cbc-plain64"; break; + case HC_LUKS_CIPHER_MODE_XTS_PLAIN: cipher_mode = "xts-plain"; break; + case HC_LUKS_CIPHER_MODE_XTS_PLAIN64: cipher_mode = "xts-plain64"; break; + } + + // key size + + u32 key_size; + + switch (luks->key_size) + { + case HC_LUKS_KEY_SIZE_128: key_size = 128; break; + case HC_LUKS_KEY_SIZE_256: key_size = 256; break; + case HC_LUKS_KEY_SIZE_512: key_size = 512; break; + } + + // iterations + + u32 iterations = salt->salt_iter + 1; + + // salt + + #define LUKS_SALT_HEX_LEN (LUKS_SALT_LEN * 2 + 1) + + char salt_buf[LUKS_SALT_HEX_LEN] = { 0 }; + + for (u32 i = 0, j = 0; i < LUKS_SALT_LEN / 4; i += 1, j += 8) + { + snprintf (salt_buf + j, LUKS_SALT_HEX_LEN - j, "%08x", byte_swap_32 (salt->salt_buf[i])); + } + + // af + + #define LUKS_AF_HEX_LEN (LUKS_AF_MAX_LEN * 2 + 1) + + char af_buf[LUKS_AF_HEX_LEN] = { 0 }; + + for (u32 i = 0, j = 0; i < luks->af_len / 4; i += 1, j += 8) + { + snprintf (af_buf + j, LUKS_AF_HEX_LEN - j, "%08x", byte_swap_32 (luks->af_buf[i])); + } + + // ct + + #define LUKS_CT_HEX_LEN (LUKS_CT_LEN * 2 + 1) + + char ct_buf[LUKS_CT_HEX_LEN] = { 0 }; + + for (u32 i = 0, j = 0; i < LUKS_CT_LEN / 4; i += 1, j += 8) + { + snprintf (ct_buf + j, LUKS_CT_HEX_LEN - j, "%08x", byte_swap_32 (luks->ct_buf[i])); + } + + // output + + int line_len = snprintf (line_buf, line_size, "%s%s$%u$%u$%s$%s$%s", + SIGNATURE_LUKS, + cipher_mode, + key_size, + iterations, + salt_buf, + af_buf, + ct_buf); + + return line_len; +} + +void module_init (module_ctx_t *module_ctx) +{ + module_ctx->module_context_size = MODULE_CONTEXT_SIZE_CURRENT; + module_ctx->module_interface_version = MODULE_INTERFACE_VERSION_CURRENT; + + module_ctx->module_attack_exec = module_attack_exec; + module_ctx->module_benchmark_esalt = MODULE_DEFAULT; + module_ctx->module_benchmark_hook_salt = MODULE_DEFAULT; + module_ctx->module_benchmark_mask = MODULE_DEFAULT; + module_ctx->module_benchmark_salt = MODULE_DEFAULT; + module_ctx->module_build_plain_postprocess = MODULE_DEFAULT; + module_ctx->module_deep_comp_kernel = MODULE_DEFAULT; + module_ctx->module_deprecated_notice = MODULE_DEFAULT; + module_ctx->module_dgst_pos0 = module_dgst_pos0; + module_ctx->module_dgst_pos1 = module_dgst_pos1; + module_ctx->module_dgst_pos2 = module_dgst_pos2; + module_ctx->module_dgst_pos3 = module_dgst_pos3; + module_ctx->module_dgst_size = module_dgst_size; + module_ctx->module_dictstat_disable = MODULE_DEFAULT; + module_ctx->module_esalt_size = module_esalt_size; + module_ctx->module_extra_buffer_size = MODULE_DEFAULT; + module_ctx->module_extra_tmp_size = MODULE_DEFAULT; + module_ctx->module_extra_tuningdb_block = MODULE_DEFAULT; + module_ctx->module_forced_outfile_format = MODULE_DEFAULT; + module_ctx->module_hash_binary_count = MODULE_DEFAULT; + module_ctx->module_hash_binary_parse = MODULE_DEFAULT; + module_ctx->module_hash_binary_save = MODULE_DEFAULT; + module_ctx->module_hash_decode_postprocess = MODULE_DEFAULT; + module_ctx->module_hash_decode_potfile = MODULE_DEFAULT; + module_ctx->module_hash_decode_zero_hash = MODULE_DEFAULT; + module_ctx->module_hash_decode = module_hash_decode; + module_ctx->module_hash_encode_status = MODULE_DEFAULT; + module_ctx->module_hash_encode_potfile = MODULE_DEFAULT; + module_ctx->module_hash_encode = module_hash_encode; + module_ctx->module_hash_init_selftest = MODULE_DEFAULT; + module_ctx->module_hash_mode = MODULE_DEFAULT; + module_ctx->module_hash_category = module_hash_category; + module_ctx->module_hash_name = module_hash_name; + module_ctx->module_hashes_count_min = MODULE_DEFAULT; + module_ctx->module_hashes_count_max = MODULE_DEFAULT; + module_ctx->module_hlfmt_disable = MODULE_DEFAULT; + module_ctx->module_hook_extra_param_size = MODULE_DEFAULT; + module_ctx->module_hook_extra_param_init = MODULE_DEFAULT; + module_ctx->module_hook_extra_param_term = MODULE_DEFAULT; + module_ctx->module_hook12 = MODULE_DEFAULT; + module_ctx->module_hook23 = MODULE_DEFAULT; + module_ctx->module_hook_salt_size = MODULE_DEFAULT; + module_ctx->module_hook_size = MODULE_DEFAULT; + module_ctx->module_jit_build_options = MODULE_DEFAULT; + module_ctx->module_jit_cache_disable = MODULE_DEFAULT; + module_ctx->module_kernel_accel_max = MODULE_DEFAULT; + module_ctx->module_kernel_accel_min = MODULE_DEFAULT; + module_ctx->module_kernel_loops_max = MODULE_DEFAULT; + module_ctx->module_kernel_loops_min = MODULE_DEFAULT; + module_ctx->module_kernel_threads_max = MODULE_DEFAULT; + module_ctx->module_kernel_threads_min = MODULE_DEFAULT; + module_ctx->module_kern_type = module_kern_type; + module_ctx->module_kern_type_dynamic = MODULE_DEFAULT; + module_ctx->module_opti_type = module_opti_type; + module_ctx->module_opts_type = module_opts_type; + module_ctx->module_outfile_check_disable = MODULE_DEFAULT; + module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT; + module_ctx->module_potfile_custom_check = MODULE_DEFAULT; + module_ctx->module_potfile_disable = MODULE_DEFAULT; + module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT; + module_ctx->module_pwdump_column = MODULE_DEFAULT; + module_ctx->module_pw_max = module_pw_max; + module_ctx->module_pw_min = MODULE_DEFAULT; + module_ctx->module_salt_max = MODULE_DEFAULT; + module_ctx->module_salt_min = MODULE_DEFAULT; + module_ctx->module_salt_type = module_salt_type; + module_ctx->module_separator = MODULE_DEFAULT; + module_ctx->module_st_hash = module_st_hash; + module_ctx->module_st_pass = module_st_pass; + module_ctx->module_tmp_size = module_tmp_size; + module_ctx->module_unstable_warning = MODULE_DEFAULT; + module_ctx->module_warmup_disable = MODULE_DEFAULT; +} diff --git a/src/modules/module_29531.c b/src/modules/module_29531.c new file mode 100644 index 000000000..26f7b8bc5 --- /dev/null +++ b/src/modules/module_29531.c @@ -0,0 +1,471 @@ +/** + * Author......: See docs/credits.txt + * License.....: MIT + */ + +#include "common.h" +#include "types.h" +#include "modules.h" +#include "bitops.h" +#include "convert.h" +#include "shared.h" +#include "memory.h" + +static const u32 ATTACK_EXEC = ATTACK_EXEC_OUTSIDE_KERNEL; +static const u32 DGST_POS0 = 0; +static const u32 DGST_POS1 = 1; +static const u32 DGST_POS2 = 2; +static const u32 DGST_POS3 = 3; +static const u32 DGST_SIZE = DGST_SIZE_4_16; +static const u32 HASH_CATEGORY = HASH_CATEGORY_FDE; +static const char *HASH_NAME = "LUKS v1 SHA-512 + AES"; +static const u64 KERN_TYPE = 14631; +static const u32 OPTI_TYPE = OPTI_TYPE_ZERO_BYTE + | OPTI_TYPE_SLOW_HASH_SIMD_LOOP; +static const u64 OPTS_TYPE = OPTS_TYPE_STOCK_MODULE + | OPTS_TYPE_PT_GENERATE_LE; +static const u32 SALT_TYPE = SALT_TYPE_EMBEDDED; +static const char *ST_PASS = "hashcat"; +static const char *ST_HASH = "$luks$1$sha512$aes$cbc-plain64$256$71794$33221dc8fd2e55f191e19d77fe95f86f91af4c1858d65ccd0cfee1f515c84b97$177cb301cb1aac12235f6b619b48b0e4d8351ae45880e2aeefb6ab12ab489818472c46aa3b9dc9d948226ded327631d26e2bac9c7d23e8a7b6e9f1f307346c02d28b8aff8e0b1466e33b8b0b55de0a585f79d8045fb9f7c870999676b44defbd03b6d5d3e1deecab07961aa8b96067fce031167b8cfc5c1cc4d328f55dd9631c004c08bdb01b6579b468e3a67b50e782762fef9952868c1c768a80cc112700713219e97c1dedaeb3e46ed5c7addd4f3ce39000d5a765601e1e94bb87bcc7ed5dce6ba3cb49bb1a671fc3130d383981ebfa168574300658987532b3d86610a4dcddfd752bb91b018fdde1c61a40f778814f31bbf9e5252f23a6b042e15dfa5fb912f8600d5317681c2adf10f9510f3a27ae8749c93fd93766f3cf3a40426b1603c1b4f0aeea165e14050042ab2ec93e0a5a49512bb00ad7928393b278845826d81e558fb3c04946873bf471d8fce7bd035379d1e28db35b03d67f9a41bc399d605311a85777d6fe1742519fe84ea6c0f5eed8548be16425eaa5479216b46b638339b33194dc50950acc2123cf87824cbf58de925a85054ca4623f3ff5f7cb754fbb61c5f7be15a5f29680065beaf7428bf1c300779bf1b1d070f862a311cda8345aa5326d55cc361a86d3962a4a0708de9b10246acb68051699942f3d55109dce28f6cf522c70741e0a121f21ec160c0346eecfd50eb583cf9137abb84dafd621eae6ebb5b5b9def75edb25866aa3c43280841895d7d5d007fd12f89428e30e03aef8ce1f5f345b996dfb33dc1193085827055d0dbd255f51abe2d79e9babe1d31d492cb0c74b2021147e95da8e485399eed26a0a3092281a0780bb378fa5c27e4b17b465db350df5248e463daf4a47227856b9e51eedfc6a754d754e84efb808eb77a87e8eab7c96f72262a067a7b8c7a43e611de29cf4418195adef3c13b5933bd72e493ea0d87a878214282534a793eac250157f3599f6dedc8bd7407c198e41be34217e085eab32a16839d3516fda8bbbfc736dcc9342a1f164127b4aadc2a090304b002d2f303f0f0ef82f212ae06eb60a86b59dca5589e14736bbc9e032c5b5513f71e31dc7c049553c163c371cfc514ec92aa6cb635ef8cfb6e2d2c7883f139c3f0d95372631d59d2db3d4cb6a56a279c19cf429f9f029c8a2540e92992194bd3ce233b9fd896127692d2a5796fcdb2c4e2f3509a6381fe7a375fbc52095efe8669ddf2299562953068110a4ce005d926b7dd6e3b49bf26ff2669fbdbbe3f4693ece2eef2d0864165dc24a9abd3cf18d1ada7cde6b7899cc1f8326dbf4bee504a7e16e579d99363371dfba82937d8ced95ee4afd5891730219eb4ca51f534edcfa63fce40ccc6b3d0fa2e01b3d59df350f00a72eb83a71beec2f8e74ae03b9be5c11ef1d52ec9f673f5348eed73ec377e2858a1e7feec07733c89810edbb7932f0eb251dca4124e369b5627fd6ab04f1b53a2266cd2b0513d1ba975b63a9fa55cf48ac05b8383fab3711e3a0765b5a6e537fd45a4cd3d3dbdff102d066ef34d63a820242eeb4811fb55abd961823a4c83a9512f280e010d630bb3af213114168293536bd8896e7c3829a79018fa43c4423119bdf16a0c36c56ff29f5369848ddbc350a1a0bc01df6ca0bdef26752d97ffaa492b6b53f3f4ebb57dd557a37f909995ebe9260547d40c3b00fba1113a186016bc85b3c066c2977b4bcbdf3f3dbb70c30745a37d42fc4c755678f667792177ace0e155b050b0f7e9f78c2bf3dc14dfd3439310a2237dcc25d9c81468b949db592b1558a5b2ebedbc2c0e6bf69ae38016e48c25616e1bfb713ad66f3deecdeef7420f06e820ee242fcc53283cbaf8ef4f977efa06e91d8bc4d63a65b602f1d1ca1305eb26363c9412bcdbe31b8174a865ddfad76a02b0cf9aacec65db76f8b4957aa7b17e8430952ee3ce627294b74b6994b7a10bc3eeb3fbc97f1b5b0a2c1d3819f118d8c6107b430a119da379595e2ddc18f3725e8d2f875d91d90d9b6cdb4bf31c3834c935e19f4441cfade3ba5946dde8b2502726596fba48b9509a70130892fb04fb511274f18897af2101deb2a4106bc932ed03f5d43541c4c5d9b286725dc461fee6e6f4b7d9531b3de097868a56f6b5475b62929a6b7af5a208d3fbcd787c7155c4bbde1d946a4cd186374e2211770a9bb026d406ac7b5e44466e625fb25f4285940f022b4be45c9bdae746581757ae98df33206292ffdccfe3a039ca390c01ffb5e2c04bf8181c93d647e788d17b9c819c6601ed83c695a65c6abed151a359b1fa41f31ae97fc6424eac51957810dff12941fe12f3639fc2964ba206875cba90b4919098ba57a5963b70e36baccf4e90ef2455afcc68b0c57406e247175f2cebe0a37c5f4a67f23a2bbd284f95d783953299da868f805e4ea037fb99c2acf8e7fd3d8427f1875a2188cd6d66a69cbb1e118fe1e662f8d64bb85b305029ae9e7aea7ba6b46c4eb99cc9202bdc63861f1a34f2b1a73ad2fc58bbda90daf51b8114544fae1bdebf3d7fb449aa959fb65762758eedf5c0d197ef64aa073920c92c91f5f8a60ed588a7d8b553a34cf270e47bdc6fe8dae065963d45994af7bcb486c4e1a7eb640d3ec53592001b7cd32d6515735d154c6db3d880f975ea17f95bf687fcffe3ccad2a2fc9ca2af7985891526a869f5cefb5086d6f8d54080cc6e393c7b9c61ae9565a8f79dc88880fe41dde7063b0839f82b228d174563ecbedcda7b55fc17e8c2c431189391b5c149cf751795387a8e05c95fc56018040a149a146fe4d8207a103a6a2aac2061bcaed70ac501262102de3953c0365c080836f9eeea2b8cd9385f5a411635fb3afad6e1c0abc7c83ae6c4ca7265da119833146ce1084286c81da409c0ff5e125aac21f7199bfebaf2bc3c21ce85d1ee509aae4fcc57951f051831fbc208aba29adc5791c88a8d6f807e328dd5ef444f1af341ab947e321f48950e26a51af21d593c56e034fe120a90dc4d2f421add37df525cd2e3226d895a06a50bd2f1dbbb2628c7c493e150e322fb2508763a7ccaacf8a2eb533d79a4efa08abf54639a1fa89a7fa69cf9643cdc4aad0848b1805aab9440f029ea44dc40d52f028af19ebf11d3717311f3c16753f1e7d2daf277c67f97f621cfd7bb5d3d6a10b11d53fc0096a2dc5407410bec015ae7aa9c4d9d018d522f50222554783e1e8bf87214eaeaa2668aa26a22584c9f5b2cc1ac7c18f4e9cbbf1563ae130b294e81154058c84e60f23f6c43b60ace7f464e3d7b03b460fd1df26152b91c1e45427b72606d8cf2ea8f53038c346516f095165ad9fa1dc3cdc75648c424b03a5b51090befb32340c29febbed079b33a5d2a16da2dae50ce2abc97d613433eac4dbeafd2cfb5b1ce15aab7f356cb6be0ad74e91b413ddb91e9cfd2ec4e29e41fcf0acf259a52df632c95c99f73cfb0c87532ff7a27624c7429e7ebbac6d996fbc47a2d9543c9fc82afac9e88f3c2b5f85840485e0b23193176dac0adbd274431472b939d296bc1de7231c731468929c1e04b5ba554d44c43a2eee36e460c766ae220e775a073d9ca1bc261b54dea7d2b38a6ce4951c1a53d9ebeaaba12094cd90598ddc3b0be50a2decd1329f22b1dd60db61344c4e11a8e12155f7dcacfe2e282a8387ccf082743153712a1ce560f43935cf2495eb1e9335b692820afa494df198990c4fd2ba7bd286990affef227ea2e6e9c758e539fcc20cf1fedff4e288e3cc35346f16b1441fe3db3427c94922cfd12e62a7a0692372b7372901a3b6616c90efebae32b38272209e109b0541829c9a32ad2e357d0cc25986e12d9fe46f8b4326acd9316a37584cc77ce67e57739237c7bffa125b372ac2f7eaff8a9785c118e6742779c12767d9f82de7c96950eb1ca022ea107b366e18d9b6fa20df312825a4a66e4c4b1de08f447c2bc28d59de1c2189c776ec5e99793a1dd368af4a21aac0bc31229bb2c073797988ea48c80fd68f0445c6ff39d338dc21357f56b1f49d3a520666b7629519664aaeb29545037e8a01dc2d89f7320b2ba326171dc025e21e9a7bb8e14b22a68f2b58d5ff29f0aed4b2122a32d2e381ade094525c836cfc369036460a56fff66c6904eb75e043d40d156d6c59724a585cef647b3530a181cf7e22412b521a3ec86380d3549897f8d55b15c2de59b1bb7cb6a82f18693da5b3db1dac00aab388a7c9cce6f4a9c3f6d4834d710177da46b6071eee0fdd53092ea89178b5268ed90365084002d8c9750dcd9b825529985bb393681be36b77e0aa57b400bc5ff7549290f25932941afe1e36aaef536667c14c4078013e7b8600a1932bd4acb083f83232c07db7aa0015ee239958f4614850499a8d5898b1ff19561ff56d23cb233b6588ad10840fa8d0faac33d065be4c99cdd165bd6a9a5dc234a14a5c6f008e633254f5c2f63293a205b2bf519aff12e7b0226109bc1f2703b64f249c45d7c8935c2fce194501bc46e151a307610821a96eccb9c93f9b400c00b84a66913cbaf042e2f535c8656bd452aec7e6493e6440935f6cc549ba585ce7e691f59d37e393dcf54460f744e8bc8ac2dd206b3e54d31e00ab22298679e9ea224ca696c365c740d4a85c68b3bbb271c05869a086fde269b11154cd9fcacf6e1df2177f23837113669a55d765878e3f94d9e7aaa0c0ab166326c89b2fa79f6242382c4724f77af2c7684864a746e21eae824ead67e0483a87eccc7d29f7346aec9b621837bb5e50cb5a6f44bf204a3f48eec38dade1f0646367e9e741922357d49bdd1171725db401161193cba7816920d3d94120fa2cb75fe4f30bbc013cd5c00411469d15d10b740017c578bf90160f3014ec59b0499ef457d6b564a235af6376193ea5db7d3167fbb9716b9f344c67685f326069d745fadd6771588171d6b9eaf525a75a33db4062ac8a7c50d009e4f57c8222db208c72f27db285f0077a10f43d775b2f4ba14c8f58e5768cbf7620735aa508cd76fce4fc33c7dbae90f566d6ccfb4b86852139b341c5f620dc8ac68ae9060c380c320b36983a31b02975c56f93fd84bc3ae697bf8f8f177ee73b3a68551170c427fa65dabf8c6af0500d41549169998edaa13f14ef89476e007f3308814642c2173571ed5e878b82d9ccb00a71dd1ff5551742e5a535e508931800d905b2a193352b0ca6877c6a89da7b43aad6a159222f34161f4a08f9ffe094fd22a4fbe6892d3248729140e9140fa1798792059bcf700aeaf16fad34d6eb2c0e438c16f09663b21d39729db5d47c51e6255d670796fbff45bd6506ee4a8b4f10342047052ceeec722dcf4b389ac8cdf78c05971ee532bade3f59f859010467d0e54c225dd2550410a72b66d3e8828c52184219d7f300d3a3e02a33d6d4e42b87499049d7b88662dd194cba37b622b6d2fef9469137a72f4218309ee30b8284b1adaa6a9ad258f3a3cfc9639df85beabbf37e8726e40540ff542f243d757a98a28b3493574009a14a5115b304cd92c0b81a43cbc195d3693e8622f998b6849b9b948f421089d552850c5c6b4eb18b9070f06db43223f90f062a44123e5638babe48897bd27884848c7a1be98a58970692eb4df045bc71a30a9d1d8585bc00d54c7af1e5f0db863f81a901682353d4ecdffceba6aee3886fcd9984b0b507d1c22752d406297618024611f824b03184b3fd9e78ef9df099e78148e4e92440d05bac2f85cf34b4561c2e14b60eefe919808eff4d5fb026f78ac457e1ae8bf4c8ede6842de9371794cb758d82ac389993dde9c6c4d4044480b306c69564c7b148bf60dbf20898a44dacd49d71a622d35b5f881bd7fd12de08d5bf71cd7e0b09ec6724ba8a3ec0564112bf7002edc1ba648cb70f7229a90d2c5b78c25ce9770a1a323f7d40edd660ce230bb395b38b8b516cfad31884d7c9884315d00ed1edd06d260471fce4fd988fc527053d217ecfb2225985edf80625b56e7dc0ec79a13e0241cce182fd6cef295100e5627bd2b2097c277af57ce39235276a695eea9459fe776f5e590d020dbae58cc96d1225bcd63eaf90a72ba793ce5eaf84a488b83d27d7aa5500a8704f51cf51c7b625d0174717f6d7414cb29b7ba4dd3d62b1493596a8981fb16e7f016d5c9c679c492b8a036da2a51feeaa9c5e0b274310dfd68a5cd66e377d825b0c92a0cd1e36d88ccaecded7e5556fb9478ab94420d06ea025270839535b5ff6ce6ef517d03326f1198fb8c5f79930425fde8d17bfb83ec3b5f410638bc25459d4abfd9ba11cb5130ec5e0a0cfd56a121ac42c92ae3274960334ede628e52b3539aa2aedc493001574bf41acf336b684eca85a4315f6f69681b42df0ee41811767c0b6b182b25834c3ab86ad0b4ba3e68daa2f5cbee674675d3c5ac426d3f198a0c92d126d6af03d3060d339505eb5943b6989974e3361da26627266d50c1dc5621cfc058af0a9c57fa0573a4ca69a6aec6ef8041248b8e45317947d3eaddf3069c4ddccb55176dd53a54106f0f179a431a9225b23a75d9b53ef8e91d94de0a837d0f1a753682cbf5d6056e0c5f5e48116fc65691824d00dfed7556fd93b157cba032561cee012b0b1e9c9b0abfb64494f9b8c93438a5e1165d9a103e4cd8fef658d293a39cb9aaf1a01e3b494561ad195861ef2d95cf4cfca7fe612223d8ef14c1dc9ecc8e498cc4870eea88ad1507177f6ce4ef7f7f73f06bde6cf519d3e4e47463fccd0ab0e89357a85ea76ade10e9a3a6ff9c9613f14b10dc0194152f7f014455871d2994082b38ed4aa7ec0498583baea59edf2a27d02aa8b9fcdc539b4680d103ec4e2c1ff5ee3e9f39c45169c3788ea2132643d3d954d593456703ab372d03af5fbd4676b41f31fc304f9427439baadf2adfa6c1277dbc9b52af3901dd781693013c81c6b25c2986c0a846e9fe0884a4f07e7f6fc717ca485b138d68ddf9183bf0d1fd0efe1e4da79e0fd025f1c9ae8519ffa611f43ad8e68dc8453af3ceeb22d1045b31e3991a71662c393d0572116d94e0a316f0b044888d50ad502e0f42fd52e50e0f45980dee0190ea0565dbeae01d454858458c9c8bcaa921a278a9fc1b29ab9fef1c75cb1b3c1ad0f48078cf89b9e62c48711fcca1514883fee67f7aafb9066be09d969b44b6bb9d2a0fe653385fd31c53137b92e010063963e370666907dc7cce824bc7ab4e02875769810d3e79a956a024e99c36e355dba1a80b13b0d636dd6327a049076899e7d095e39807ee6431f703d75070f6322e26162eb1b3ba7ce335e2d893f2fe06b156598b16f9e2a03509193598e6b64d3536c9a491097e8d5604cb3509cfdc7bb75aa7d6de0b6a6e575c1e6f9eb3ac708f16a622dd68bb65c3236d15c5f3a22467734aabdd9805e81c71b26b8796b7860928444435bc164cb55803c0ed63a080c14653000d8ee2feae358e4542cb212862988f29fef99a168d9a96e986bae5b4aa99eff9529aaf16909e1e2508f24405e43067c06cb910370c1f03a483e2964f67b159897ad72a1eca141227d085b80653c4ea4942fe4667a24ae06b6ea46b8da7e3b897f97de01689e5010219f6e17b982d3632ddc531628524b0a10e33b77ec23bac5b28c887692c1bed1cb8a0f3c4fc5881ffaae9128ff3551ccbe296c14b16e2f1e990eb92fdc66db07c84d1a26bb3e0f4348735dba8aec40673188b2a24ce7768a44a46e867d9002f4449bd0aeed9ecc408e4c96c3ef08f8594eb874c9896cae9c6af6cca4abf7d26dcd55f4c98f29b370c14a3a0eae53d9407cbe4a742a7cf8612949769a3e0cd21a1b5b4690fa420955f55dcad8f4b2008d386c76cc186d1d602da9f786c4c920c22efefdee34197ab17b514cf274a028a9a5809f0a8904e37b57c25319a3e3ddc7b3ede22fd160bc5fad1e368fa65fed4fcf002cb61fe7c727467b3041ce490969958aa161587c5792b7ab11f13eb8acf25d3e9c93579676c3b798b0f77260f1fd408344a38042273f89661665c02be514415e6d072abf230e47fea29d202c239beb32459c04d394cfabc8791ae0265b4b366f8286b4377820f286a1e4206ca7e17fa6989f9b7eb2b54bff146a4271829e9c1b9929d8ab4810802c231523b664f5835d15af12fc9a554ca7ace3ce760a70f3282f88eedb375add8c22cd14204fc5ee5e4922bcfad1b9cae14eb10243b6a03c8f5851c825372994e200a5af5f83ee42d655c110032eb6002d8cb1c81f04454022df6c672f9a0d92220786d2fe6b959a15c49a1f87a94d3ab11402300cb07779844a7d7d51e7b3187ddcfd805ee88e5022ead05803310149e69d235dc779b9969d01f44bb5cf5396dffcfec477fa99917ae60a585c0103694ad773b2fd1d0d653dc6c5280464d2ccba107151eb241363a39c33a85a094e4097f165a526e2ea34535877a2e0b29a4a934fec7796aca2e36751eadf4337a07f43fcffea66e0af68a5a880248dab89458651ed74caec075076694597a8c6684772b7e2d3b2d437cc76915cb7361bda6d0d209a71a6a7beb299a21fac1d12bd09c409326cde359a5fbfbad9fa01c1f478bb4d3d7621187e624618317f1f3d6382849bdd2ad09b6d4a0cae849d641157ef518f7c9fade4b350aae31aaa5604db632855d2f3d1b08828bf3fc952e5ea793456709da256ac837d5c90812e84874631b260746adc3811173b4562e456dfd0ec88efcaddefc9703b065c147964750f162a740fa30e396d875b277811dbad185cbb4fdfada10c7f805e7bee48b74b62653fbe1428457bb0f659d21742e1ef92b6132d3def3b5edff636ccd376803de9069f147edbf0d785e7cc5e695fe1d57279ff522923362eb2fb610bd0bdc62be26f1a07c8bddba96c48a91fe7a29f12ecaa3d2d05dfca098f0ff73562b85e161947a3637fb4cc197c759f687deaa360a38fd9a42fc9b99346274eb30b9f5196e254c8f876a956313415fc899974421941c06b677f95844738423c39414cb710f235b7e1f5c9e95b17200a5c5e594dc3eec67961243e320916acd324a2a915c5449a99887f7397df9df7d99452dcc64c1b3477db565ea09d377f348e3be839fd517d125c0fb99816405b93af4c044ea1642feb72bf261b48990288858c5c5e84f700d893c027486a5d355bc803a67c01b157e6983d76cabe7cd3a9cdc8fc2b441e59cffe2e83b1502819ea1c0b288da4ec3ce55c08ae6fd0a030c66779db84524ae2f297549c8e81a29f0810b99d0847db4f989a82c01e5e9a1393ff4682cff6a99d72b8308c54fdd6513081499f6d4526903ea1b4edd9b649532a8f170e54157c98c04af25244a5be1f6121ba9182a20e2c66136d4f7775c89b53bde5069a1c345eed092dc34d2611590e66e1cde881e69c5bf17ccdd4739a996c7e1f7cd2ad7fd394943bbb21f18b5e71e776d47443384811f6439ae02a304c4235482e346a76009e8337e548382f91ecfd7be78f945aa1e3bd92008cbac3b3b0d6ce391f2f49025c199e54050d7f7008eefebd89baba85ef3467eefde7d7f25867180bab8e04a7611e5995676231da717ac11a0307e11e4f585c803a37465ce7fd7cabb8d051f8dfacdbe8cfdae33afa91e1e5f83e6183b12e0cce1e2ef68c86e03d39ce21a1a1f7e0030f78962f4db35c6bfcf362de001a7706f94d26be28cf7ef0bf3e2fdbc57e77fc824a7fd47fed066672ba24648d25d15a521ff9eb154704e162a27c8b1a46dc2e1e40eb1d88b060a742883dd4eee6d0001fff69ff2febc7f165fa02eb8f9a2d7f53be4a1bc7c3bb1823d230baa841a594a8915eb113216583e5674785e021b5fe82f9da78ebc749e01899fd98c3f06a9054d49dfe5c0062547b895773139c1a3894d1dc3ce00ee196997ad8b168d6db86b7018b0df87ff2f2eb1b915a90f7f46177cf2edeffbaaa51783569cc8f456d749071748cdec359cbe2d4cde4cba5af1d2f68e26b45b63ba11f0947efafbe29b2ff850773b6f591d2401b754394dd3b11d92414421f946e7a6cb82b90a857707ba0c11303e2ec5f1ec460bc47b70a698018e3ea9468731c2dc6269174010f8f7fa39a04f88def847a4dca042c55a746e6e74fe5d976e03b7bdc63aba8f6e1e39ca1199bff18e5b74cdbc582995755b84c5b2663b6d5960a838472c5916a5564a551163eabef4611d2f25d231e8f14f6649400d4a92f96651f621127f62717de0cef0d6089af8bdbe8a26e805bd101c3d0fd4219989c32668d04a75c2db1272db3aab110c38f91e26644d346534fba402f4476be0fb50615233162c3de6266fe93792a67ed80cc8af988f787a2daf106a8ef7fd362e06a669aa51d808b5e06f67fc81280b98fae059a89cb9eb20a84c6b9d2ed31027ace92b39713708887d03e16ced387273b00613cc80b3532bd55ac6334a6d2ef5be4aab4e5f39741a083839b51142c5c1725c881f03703f8c2947a04d6fe1ae458b3337ec8c8411b89dfb4894e07c268afe96a9e6cea5eab81a177de3539f8b112665d8b9f996dc92ee8c1e3419c19d2ce616a7c8abfd1daddba3ff96d224ca157c22196456ba9809a79f5979a3b312b40686c826954eb2acb101d8c6b72e6da39412c9a9902290b1fe8f56e6e5c5a100391c8cebc27a17f44ba2955f5ba00c2ee111e897008e678ccfc724dc8af9eff29f95630b91e6fe080408885b6512e083b72819f6ab82fac2722b93afdd78941a9984ac3509b6794328c1cc08df902ce8228e027a1ce2a05c3fa734c6a5c75d0faab86137e118f8eb9ef0c973defe08695081c385695880b7d41033d505aa41b45a8a1cab0c8af13b200c2749305eba210e247eb27fb0ca5110e4debdab128b079f2e344765d51a015bdd20a5c67a2ca79732067f25bfe230500318cf20659b33ef6d2484c0f35594a473b9e11ed35f5082c594f203487611542478cc80ae9e9f24421e497a437078a8924e3217d59966785b8d1ec8c4c0580e0178fa73d126358aca8945e602302a49e30c93e819fd6c2b8fbd43a587091c817e211ec668af0507907df9e924aa7af69fe67fbb9ef75ce46a794066ed85b975f5f20fbdd09fa7744b96c06c8305859504317a035de4d7a99a8a5dd44cf5dd44898707166a2af2074b403ba7d11ca1c1ec729775e3e7ab4b66d996604ea2240b9f3a401cf01434bd9d367813de6a300491cc7808d53c88def6ae549d6ab2ce0ca51eba2821a133b43f607b2b7c555711a85d6ebb9660a0a7512364dcc143241f263ac20a6ffe6a282c93c89801dc1bac707e64fa47f848311e147f0bf826286db940d521d1b872b6dca6347ad4cb3d2fe39b667e6f567f01dec80b207a1dda1d9cf3f15178de27b258ddc70b833fee10a105479fb7b69d99d91555687f54a0b55fadaa8ec43f9ee7666b731d3a2398893c39f84a972e7f229f0598d69ea267531fe7284b80dd0d58d0577817abed63f5d51aaef104b04408cbb0451c44b0d21d1edd4fe226ccdcffc115d9ba54ee272d0ad46e8d3c6947099450d7caeec9ef8162baabacb3256502a512210ab06d4835c47715d95813bc4c28062f7b7acfac7b19966060b9589401ef3ae19c3de7ba4d1180c3f446cc80c9674a7c63831380a5c646d4b35c68ad0318535521d82edfc1f2c545c6828941ce3c2da86303acfed43c0798c9a4b9369123d581147cee84a703f83beb94104e53a8a1ad645bf859f0e8cd690ad3ca90d4f7be4629916c3032545f3b1c2efbabb73edd5e9467297c0764c4c722df93a0387c3a50e0ba023b16694b0aaf8c48bdc65f3eb6739d4ac4bd696b658780cf5bcdcb6adc56bd808458358df7846c032427d2f073fc2468d97b965bc886043d01842ddfce5722dfb8d7eac58df25738eed0e2221da7eb6c6556b7eef7e942f6a35a8bb199f2416c8482c7d5cd330518903e5d605cdae5ed524c5d903f80fcb37d1fc67ccaa29d31d16b60940397897ac89852aee287e86cb29b0f31b97a1228305804cec9f419fde9ec6d8550f81272ee32a352e58b7a47da2c3d38a9747c38c13a30ff074578c4dfacbb43e5a9765b0545605cc51c2564633fcff262a7fd7accb2d031a9a32006f5d3500b2fdaeea129a5fbb97dbbcfca9a8843d6e43364ba6bd187d3600b9fc1121839acb8d32cfb9ca827198bf45b1bc98dab434a644cfaca700f6109d77cb006058ee75faed1daf4586a0c80266c1c36b14ab0229d59ff9b425cd2c79f7fb99eb98a714a476fc50fd7f796d5b0fb3bf1e272a2cb91bafd7d81ddc81a96120a4ad90c164c442af83fae2c299f7cbe7264d5a5533eca049f2c946cdcf40e21d1e53bc32174b47e956f474ba293947011d762fc3f156de0d4f5d9f0dd262e88a016abe2f0d4384e7e838ee9716a816c554a7ded34b19900e741263956e434156fcf6f5b8e81087dd1be9517a061faaf3b74b5c1c39d17e2602ebf761420b6d7304fdc2934ebe29a88a10761f0d62e648c1d92a89648cd670a8e0fabfec0e214daafbb3abb97f8c312ce8fc13d4fbe7270a9f81b5b28fd1e6579525f7a10324f347341e94e129261f7795c42759291e2705d15f502a58cc8bca3fd7eb68195734b53bbec23f2d203b1933eedd6e8e4feb6af59e6d8153aa20b7f2860f84b8e1977caa2938a779241bf3e88cac83a715c1a6cd400c37fd1a6f306cbfc958217620c67d7a047df6098124951534556b4f79a37f342da81f7d4985d846286e40652e8f50c2548fa73fafbe68fca988a76ca3e2b2d193066f1bf2705fdc2cb92616d8c94291440ae0b17f5040486e82617cde5c8145156a3450c9daa13ee429e03b35e587f2fc9a0435d27d3a3dfa5733cd045bd9d54d75e216635038a41af72983899bc7c2269d14addadeb8155ccd2c75c15d76ec2f011fb485833b49cc5435406b19aeca199705c031ec555cb364b3e20db8885e5130ba4d0417d47d3c4794f705c57100c3bf405552a704c6d6562cb0fa8bfdae1598902fa4d752bfd2b862b17c3ea73a5229cd58d17281ba05c7eb218b17e370a3a4b9ccf93bbb29b67099d0bc6264f8007c7b8e6adc0a513a80d3cee8e3994b3f81c628afe215453fae48c69efbaade0a5095d4a1f3042ea08ea2a27154d271ac52ec936c877b6a9fe280034651e2432f689ad98c9c854612c17f7a891e9a6c3d17a432961863a0c128cd2464df8eeabd4621f8433581388cb6df749dbc06e445fd5b71bb29b9e6fe353cdc09eb0a98569a4965621d08771b1b386daae70cb35bf9c442d5b9eca7a15160ca166e03b89e971846956bcab0c5a507ec7a41bbe7b2f5137b37de263f449a722b734e2a653a6f1af660d5f8e2c59ebddae63606d774a180aacd9aefb0c0abfe1e4bcbc513ef5662672fa83579378decb6e463849e1675a054eda24ac0a9c442040bf7d16949974af6a5cf608712808e16ba0fdea7e73b209faaad8b65b79e755774d581aa7a00ec5d64f946c3b780373b63652e4bcf28b0f9ec419ca015e08fad5680c05dbc8fe77ccfc55cf306e68ff45daecd4c5427c926cb5dc013c0f50044d16202145dab4a4f73e0df4ab85e369a32f53ca960d71e9cc18d03a64e22f204facc1aff1f4c683864661ee4160132f3139ba65069d26ed40312e832d4f4310378c86fe73be91d30a979ff1e83534ef4be54599028bfb080995b5ccb5fa7e55ddb3c2bfb200fca5aff858924b18aa5716d68f7142e1bcd99e65d016338bd2fe86db07a16112c53420341570089f93c779bf230c8602ddd630670a7192d51e6c9b5b35fcf22a73ed28583640b66ea65560f5871da167af40375e0c0adaecd1e59391ab210fa020e661519cae680089b55f055cdebda9586830dd5dce9977648391d5317028eb12a92e6aed9261496e1a9c26ed7ac5fe002a08fc05f66c6e6b6c5fbfc55b1cfb9f10d0077d1873f67625eda38c29ac2602db165302dc8e501f1e73977913382a002af49fc7ad45d9d314efceedb26f100085e57b21b8f6cbb9bc677ccd737e5d93fe82b193188753019e9b85e329eed7f35c86c0dbddf0ff7408fcd090f21ea6aed815a0221f7c8189f7cf2bdecec4e6ceabf43f732be86cef0e48e2d554f82e99fde2e6143ada527e7268d5e6c9582450d52d18ac5228c63103c4009965b6477cf3f9df9814156a3ff945959f7f0e5db8afe49894a6ec48d305f1a656368044744d5ab20a288f9f66af829b0b9b8bdcd484af7b6105e2dd77b7cd83cb0ac0e0bf05346488a89178a5b5c1023f2c8d9011815a626ebd1a62f7c7292d9a4007e03b45fdb62f67345ab40532d3b2c4da5464dcabe9ff51267ded822d01a8c6599ac6d28e990ed26edb81422835ad05e6f50a11d70e066e0c543c500e4bb2272989ab3e272319f3997757620caff8d8376386bec8e79159230004d1f54c42b0a5a1ef66cb66074db3ee63efa3ca808658276a01ec24de56dfb7fb69c81cb0303d8368603eedc7be38a66d20c5d745eca1ceca99b2e4cda9e55ac98510a2524f6e89f5fa9ad399d2f63e0218e8d7bf17ec8b2d43f7f0b302e93c7588c94ad85baed193a3b7fe6c638160547fcc3f02ee579f313833dae92bd974f3e1a3083e47eefee4365fced255c0e05c23f187189d0ac43daefe2164e9d1a09bba1335591723e7b99a1bb686d7ffd4e4726d80357849ea5c70ea377860f04b1772376101639925f1859308c5600216a6e1e212d4cbfdc884acad15517cb65828482cc29b8b3649b757d5358272187598f8b7b991a84f7b74a20d5b707269930035b21856530cb868d7b9e5cc624efe40e5a3e3160742f9ba1324991f7e28b2387942abc7b1582d43a26296450aa31692276493cddc2b58dcc1a6ef72c070760ac59c86c78f38283ee481964d984e87773f22c019ed62b07bb0742357d7873610148eb6e0a3a3ae27d95ee7723f34896bb38739e411479dcc36cc9dd85e53506f894bea38de2effd62049c47dc5ba8389e9914aba3dcb4419660b04edb7f3bccc9c97ef35d650534663a4e9a71fbe1aa5e686cc44b9a2ee5686d11d950026ee597561a02efc3fd9fe9ed4e10d2d60b356a288399e09f4f5bdeb739d1b724ac08c8fcb9738203e8636405fa037315088934c575ea004fa5957a458bdd10b8adffb640a9daecb95e041ec6412d2a0b443ea772e9c4b3471d77620562894dfde37c7441886e08bafc6218cb1ed8c9c222af82ae8c6e1b9c1a0f6467d55a6c8abfa0b6bcdd71f4917dc196463dd743054c943ccffe1c47df4514d67a0ba3dfb28d856e4a46843945c30235e4882aeec2a6d7c9ff918d7057d0c68f942f2db05f8389595134da240253bb33be9fcb9273731f4308bd74a83757f827242e6253769882718ebe3cad19dae65924fceb69ba8e535abef2fb080f8a31f11574d618fa3862819da35912cf3e631ba5af00ea78ac71927ff9fbef781c09b34cf4957d8d590e67c6256316e59a6aa9dbbc42e5e96574412e732963e8717d1cb33ccd2a887c4cd243c711cee087e7040ff75c64f68dba2cbdffcc3e35ace0738680d37588fad7fe18253854ce08585f49e73af8103017fdc5eff5d5f6512fd1fd70afc4a6ed7bea33f19a8577754d4ec78250eb8e879fca940aead464b7d0c06c6afede3ee3552ddc5b2ae6038f2f2a66b15400fdec16bd0341acee828b76f8b2d09448a767e871092610757560a31312a23257cc89f817516b02219205be92798d46251a48555ad9a97eb766c0375640bbe4017fa003ec55d78c372923419118257da42517afc556ffee3d454cc9d3a764a5c1a6476c9e9a009609e0b91e57d4132f7179c974c3641c9ab0a6f12651e221c4cca0a9c373178c46ce5e3eab0393060197881df6e4fc7477438c59d4a872830e392664cbb244fb470ccd6bd83be7c237d514df36f257d8010c60417ba542974359a6f1de604bcfb559315808432985ffde99c5d9358985d4dfb4493ad58a6bb0d80eb370e4460d9d087abc3f44cc243d682c706e3d5afb7b1bd940fd71011adbb71bdb0f9b2249db4fdc477839d98fb0772e217a44a9432413ff8348dc2750f32e579f276dca48e33b834f28c164df351f34fd813e5ebd69c9f59a0141984e97c24bef76ef0638b69046efdec6b41f1ae02902526e40064f4c329866da0339c76f2c9e482893017817998e2bdd711b81c7331b1d093763a5b4b4a2f69d36a9b64bd4e9bc2d9c1f1b2f5177f962d7bc45bc6743f3a4c0969f12b1da8f38e9c93a182ef1dc1523cf72ef77e36f9548fa01fcb23736c4a43a1a5c2ce05b494c2029d7eb76aa88a39144f90be1a0a92dc3ec1682b06489fe0b701759cb54bb50f994fbd477d6caaa1ba1b0a11aba2c1dad784605699e93294b5df8350d645d71b2df34bcd4a879a2472853a278dca5f0fbec7e517bde9264d3b80fdcc3dc8bce787aa6ca97bf8cd39d0830385db535bbcd8c0236037ec8c0a011ce20ef79cfc317cddd0297d628c55237de4159d9cbeabcf69b07d7ff6108e79bcb1804ece244856cd406551c0cfdbc73d931aa2db299b9bd96e0b344a4807e5408504271a215108f795fdfa9b30a4763c5467495852f15fbcda09e77bc5f29ebf963c3191658d6266cee95ff8ff2d79a873088c6035dfc92ca9edcbceee61f8f540c0d04c5553d33eb8770661d990798c21b73f7a5275ae5b3eac05512357138927bf887866c803009e8e3104c8ac97874a207df60f9aa056a04493aa8a81c1fd7f798f8e06e7939070c2781c92a26b9983a63c7bf3ec99c78ebc99b5b1febf792fef5323a8a0302923a72b5600e187f742b85b3d8a488d5c7769b32e7d13dea8ceb9abe24caa8abbe3e3b9101820033ada6dbe87e20d97f22c0b255b4a4b4939f1ecd9cc2b1b5de8e3ede01eb3aaaf8a11278ad49cb8dcbae0e6f08077e2ddf02c4c0d93e07859de43ad6fe15acf541a3b74bea3f75bbd759bafd23ec22723e2b3ffaedef4af8bafa5c827df480ad4df83afdd7d6ab257e49cae87f91190def69549f687a83c4c354884805c75f01c36e823fdb370499044571ab9d78bf19b64ccdd7cec8364f600bbe1474f843d86399fd61020d493212c064bf31b7205fa238cf35037f323635b43675beb07f3999c4cfeae3fd8f4d723bc733bcdc760af3b998f5c3d6104056165b146660162e66f2e4a0d695d1cf8c64b89f7ea1ff0805990da0c164ad21e21d7cf578cc558dda9a0de358a3aeccb0d35996ec2d84512c214117383cdb6185af508407d590669d55584ce8335bb2bb30678017c97afc8851b8611c65747f8d88910da97faa76f39dacd7128080315a8b64e68f84dbb3ba0a4ae7327389510b0e2393306e9fea2e663db0548ceb998367e626e75eba13f7cc57c32cb4e8ce8f57e75f7468494ad5e0a33af1ab37a2754952f4252f37cf66892a3485a6fd6acd7531e453a3fc9e858f9e98563b0104254bf0183b8c0dbc9ddb66bb8fad2b35f1843d0d04670924ec6a1d54f40b1a2918a214c2e24539f4a4ed58e748d15c54e8586bbc5975058abb1d05842e094fc9d258c61489f8804a88f784e919c3a01b47c021f795802e432f77b9d795fec3b3b96d6f1a7e88ecb1ac2c187bebdab141aa6739c64754d99e9d7095d088ecb65e3a9ee1c4c24573708c99d86f951c1ca114d8475aec90a6a87387c1cbf3de4c5a3675c0575633339cc09e1998492c466e4c7144ce493e72d136241ea6f59e3ed3ba8f575edcb3c9e5284addaf20aa346a4c9321880d18a893438a3511b8109127b717360149bc2d2f1420993321498062dfaaa9976bceb18937300fb6579e254b9c91e8c820e54b93a7eadfc19d601366092f56bbfaee8d66b8547889347087e63fe993ab91242bd0823e4f7f83405993d28c7c0b154e7905965c80a1d1650e03c6d02cd7da67cd48bbe1fea0ac983db86c12fa60022d17f6ee81fd7ce5d73192bcd62a3cec3cf0a812396c58069a80e6b1597d329372bbeb6bc550ce39aa67ce3b7af49bd25b3bffc369b2d720cc3ded1df4fdd3ba5189c4748ac3c68d5ca6e6e600a77d4c47230fbbc8ea0bd2bed28fb8001e18efd1ee16f8e1673c45674273d1101a324b1f9d908c0b60b7550288172bf71c7b10434a60f12d05e802fa297119133fbbac72508aa5a0de82f3b846ec8a1b3af132d1ffa4e9279271364ea68e465983534066e6e4dbf3f150beb9dfae08a02c780cd6a5f97d34de5932aee5a4b0962a463f75b549c28e2bd29ba43341e672d0d4c7c32b077d4ec9bd9f10590433236660c66d90c0a264e0fe0f215be5427e8a97a03638e1fb22986af515dd70937b4de6616d21e8a6fc585d000b5b5dc1198f3ed94dc0d78a9bcae7914b681faff84fd054c0073d1c03d0fcdfafcc2cdcfa40b07ffb8303166ddb8adf38723b72bcdaf0e1d9449dadae8c291c835a0933fccee01b3d92d532ebee4d2af5360c77e2eddfae4762c059ffeb940f4c63c656f051b0d1c859884b4e105492078154744fff3b60af507cc3074b86b29282a592521a5b2900037e21178a4490acb975a5516059ce3813cc62d4cbbc8c9a4c4cb7655a4096b8e1ccd64ce7fe7a091801d19b4905db3425ff46e69195e7878151c9c88b8d1aae7ea93e21648359951d0bd85eb9d143b6ddd06b5dfed0f8b67264d1a1a61110f60f00e4a3ab29f919039d15b2906191d9be6f9aed74a3f755ed07c9989a9c5e9098b2091d43f1eef62f70170ea29ce00d103a54ab2b65dca23a303c8f71aa7266f8562638ecafa3c6a15098e0a4dcaec7b3b7dbc03b78a57171bfbf2d93ceae6b759805ff4cb094e17e9a0d06ca39608395210d90be44acac81ffdeda157e4b21328a44b39ba9ae5dfb4c9b15500159993ff81cd574dd3d3eacd62eb5951b888b8ba3045896ca5b61a36f647342969072ce63b990ab00edbfe1516231c925cff17ef2295089d9ebbaeedaa5807f79fc304e167b2e5638bbeaf4c82d79abd707e59c9249ee763af9b45d2acef96687d528fdf92b610e537adc4228695d510ab51d5bcb22931ecb5a923bb7fad6bb513445b101e172d368df4b43969fb373fcc3172ae504313e1c65aa49c7bdbc285c285d986841d9c445c76292cbdb46c1d8d12d705be44780c884cd85e407bd0195a10d1cb17dc03991296a64025d895c2e0a68c6acbf8326ac71834fd0106a6273c57759b5e557753c4d6b25b37dffca709c64675f3b51fdd26e6d8fe290c20068f1e9837d867f14fbe9e9f2ec5517e4a929fff0831826ca6ac88ce5ee96e53a7fedc5c78d09ed9a4e099183a44d789bef92b78f20d2689896f364a93e79e05cb508ff25a3e7f24384472cfc268a36a2475ea6ebeb44a5592f965de1418a1806b572cc38172573751cd411decfc1bd1f6e1bcc43baedc766d61fa6a98e7ba62311edd451ce6c0ec6d74209d7f3278764a770edd8ef6624771cc61883796bcffaa15e56c4d33f068722dcfe9bbc38287a0ff13b9e8a58caa900fddac6c630977ddd0b9cc197c6d4296451554ff5619275b47f77662e27342c3990be2d1c7c318e440b29bf97d17d659b114195afc02b214a5d02c4dfd64aec5ccb8d18a25acc0b3689248bed16e0d0e339d8c78c8c2ab040cf1d19cf1096707f07c13c49b12bd5dcd46de7244daf539fa942c74d71c9d553dda6b0d092bfd73d1fc26a1aa2c578520664e33e964960fe3272e405fd1f3b435d0ca4c494c5d582531302db65a9074a0ed238eacd8aa3bae27169e582b6b2aa829a6bce821e979155ff57d5eee05ef1fa7e9a7d8160ab2e7b45d9235e6e7a4e48f04a10a0a8ceef841ea596bdb8d685f2566eeef23b52d9a81b952385c8385b22a729f51fa751e13222105f13942753368bc5badad82d06dd19854aff0a9a8c08b889344d06a1f7f537ce0ab2e141c8924fa7998ba357e4e4e0855f79d56ffcc8a344d571bf585dfbd2cd239a385763a4b6c6104d1e0a77b597ffc56745bd5503d3495eb707b1247ad9aa040445f69d0acbfef4c6ef4fc1c6753d3db1c5449028074c0571cf958326856e984970e08a81829915f8ebb0164fe86478b8bee604536066ca5b1028511a0452d62ea2ca035b0ed32287d2f3f89b7e6c1614d4fe623ce05a97a39426ee98efcd20d04078ee47be889159423b7cda7529a9ebe5b8dd4e9e221fc08c306a115e2b2fd7583c2f68ae4f888b2d902275eca72e188ba4e1c99c3a13f0ba9e03291ebed5e1b87765b31a44955632c03727e4f5d40a1c4705f86c0d563af244fe70daf717b5afdf80260e45e97d2734d63a8f2caf37c78030f1db9cb8e8eb1fb5ab77a9aeb6f9ae640c25e4eeda084d35e9cbe43bd35eecb31ab1dfc5c914770133e8a9f9f964eac90d81d4a24abbd62f4cec310ba828cafb5e29122f89cdd80aa6672135d4a276f76cb9418e5454f04d7ba9cdda7355ab7bbe49f3f683a8b013877982dd0a9ca924637ba205156b4560c37d69986a6cbb9158b18caa7afc80faa2efb5d619a357d4224042e084d81c9698c686828513090d3c8a062527d61dcad47a3f23bcf0f44effc73cea26069f186138b96703104cd8ed7d9492d069d4c5784cbdc1a89e0ff0b0dff7de54d12caf698c321e218a0dfa969bfd084bf8727f24a2c987d06ece3ac37af1a89434138b8914ad683b32e7b3016fda5c044a93618e750eb848ecaeeb18e9a13c83f4e4f7b140a9fbe725a23b64ee656770408ab54deedfc45ac002895280020e3bc6e7715b719361fb27b73d92400cf2e0dcad44c0f4017961f8bfd055dd0826222cc27d3867887184ab45f66e804bbe43bac4f67707e5fee38961f1bb3bf9c882a594534006138cc8d57237035d0f73710f87c10f384a818963a56ed95bb83a76e8fe18cbc2aea58500889249b93d9709852f95df45b1a4468c4cdcb7f1bde762714d16d2de1883e8d4bdd28da1569bbc6e9a6370779941e32e0cae26148a783baf178421f3e068908350ac7f936a2a4c17c065ee8ff0700fe8cd309ef9930007c87de840ec437e94f6d02527eb433746638b7991a0f6ba5386b31275c1055515fd1f126fa889e8b07d3f1ec65ccb91fd0d72d78009ff5378164db7fa639eb389b4e197d39c134199e069ed9bbebce2d534e8dc38b9939e5b658cd7b8872c8155cab65e8d7bfefb28c6e2c390c90d168fd06d9ef6ffa066206b9081a51abb8f5101401461724d9bb09b63f471dc7ac1e80cad481de7e1527b929a633ac0ce669917cc86de527c7b712cd35e45de17af1dc4a5e2b40767077390406ea9bd0887d7dcdea77fc42d2e9bbed6a187902329bc4a22b3ad7c596a5350037f25c9418a8fe0350acb6f2e06f7961182f2f315f637e1b33edd16848248897cea3a198575f56044e14ff5bcf1f21a503c9de7b57514e42c57521dc6522d82bc8a17653c64d098d19f79881808d431ae0e0ec50cf79da691fbe3306a0aa6303bd957350d0417bd4ef871c29af7adf00f2877dd352754e6e8f7a4f99346cfcc3ffe4c5aec444ad8e194e78318f69dd4a1d5875958e7a59d4d6f7ed321e8da71d5fb27c6d7b3bb873227e2e739c53c22080e748233a59cf10c71726a4f5b25b940660478542cd1d32bdee799ebd91d7788b0c07746ab001b014d8c962668f3fbcf17b37ef266605b3c603f4e0d64c3ba7f0dd40fccc6d0faa562c34d13e97bbeeea0825af14999f5ef8d4e531f0956597a786aea55fd462543dbb839ad5c9231d91bc7ff41bdcdbfc3ab5ef434f05d3b75cf9ad2b31dbe44912b2673675f37186b29aa24b781a4a60c6e766763b1a4d5b6bb6c9a3089f94681235fbd1ad4cbf609cba7c0771ac01bbe96826bb5ec3381861dd100c8c87c1fd0c54568e5b3ac06445261324f6774e35ad157d5982ebec6d03cfc494ffdda8e6ae360bec9a0875df3e728cc8759dbbb9018ed42d9e2b0f2e18d74925ff90ff521128c5dffbf70bc555964e7f12c6cac62a392a8fe89ab458b2e18c2f3b9313f45614b0631b7e2862ca8b4c70f18090cce54975ea45025ad91e09318c05ffdd7272dc8239a35b8c4bc8a46df4096e3eac1d73bb4012d26e7b447ea4994dd34d7f1da129f8d5eacea1335f67f4edb78d4f034ae71728b905be3569341c758e1fb0415a276b8299eec91276d72f3f81dbf13e3391261cf329b938b42e61172e524a38d376f9cf61064547749539a08d92f5fd2b75c167e1f236e169966aa3a871e55bdf241a81b0b509bf01734a2bb5b0acfee62f74b79c92b94f14c8e9aaf92af3226ac6e8edee712aa62ded75968810d6502f83f7eac57707dae3d3b59a388be881b9249cc01c089a89db8c8c0825cef6488978be9aa63a3d226e3d54010fd160a15aa06c653f271930bd5ffc73dfbac244a399b2c41c98708d5b2fa3cd72286a68b93522fd6ba4476af17ec1c90e2e2e4fefc55a60e33e5dbfb7afe3dceb0e52cd728ccf6aab78c38a5403ade4f04bc4221fba88893aa9129fb7b5bb315b057ad4c77a0f5cda0bf553bc7ca14cfc92574a1c24efa5f91c6acb509127037656e5ed8642bdb27cfc63b91d540c5a9935ac4006fc78fe567990269bfc4b64b5fb1992d6d327e6d502b1cd3b4f89e62aac2dfb90f456f67fd7e319a1dc05f7b5858cf94bd8253a366dd62f9577452ddfd45c5d210df1d60171e16b72c66b2356c9f6c367cb512dc411e5530c7ac9e26620606e14b836a1d48e71ca5cbdcadaba0174fc2e71d413211b731ce781a1787cdc9d477ceb93476f2fb3b44f5314070e997c525190822286b2b7781eb15bd40fb5ad1fb273677a8b903d20905a9960bc22ce1936f269e99137a214c0e1c1e38390166b3168555b8c7865882356445fc6cb5829ac9bb6dab7c78c28a78703eadc551d7b7ba306ad717d7fff1a92301bb9545f09dca3f8c51f5ea52671aec14cc81865e373fb9b63a4156bea3d0129288c8c0877ca50275ee732d5eec598866d9dd385287db683f41c42b87b6925d0469208d210f6dfdd00ffba0e1dd33761c1ffa66136fef4e99f79e93363f57273b0366b530880680150c535ce5c60a433138df8b294fe6da25aa9570079506548441d7e8a26f6e9930ecee35e297f4e81a927849f94bbbb65028e70eb252fa056465a6681430ac860e40be0508b695e7d3f2afbafbef0453b98d2557765cdc4b1f20cebc51a19051fb841d666e64f272d25a0dfcb159a687eeb07ba67b9ef0b421ef59cfedfd4f781cf059fd57cd5bed0be75561777bd5fa8e1109e8fd603ad221634bf4d419d53d0acdaa044cb218e49fb2dae0537b5ca2c4b91099e7428e12dd05e702cd2fb6347e37be823fe8aae57bbfe7e945ee0fd5021b943887e69258ed71bef19562aa00c6728207fb2e1b13abc413348e7419c8b0652d6828eac2cd5ad0f2b15035b41913feafe56d6911fa530864b2b0299f43ca39dc97fe9a691335d8d244c1e4cc04e6707f683c7c7f47fe4718ff9207be51225ae5ec620aaa80ca842cef5032a80242056656071f265c3d2f78b3490498baf188eae763ead1fccf5b62ad99e95b367639e8cf2bbb9413c5df4f3e927ca1ed18d7ae28599ab92ebc4d73a88d672f69a7b4413c5e8a250a9249022f7e60ca5ca0de6d7cfb3b11deb13eaee143c87bf06d0d6b68e6e80b856fb166b43889aa97f47fe9b7d6f7ee7ca483e3e54890caed594aa20b208b3865f94caed0ec51f9f1df7b92e431cf3ab92e92233c9179e4a6f53e38b5ff58f82bda5c96a50dba48098d8533ad0c3f86db735e95f3d7cde2a7d1e13c5ffea0e64784e8e468f764756cc0ba1469c13cc50095232a4b6d69aaa393739d6e1a99ac77ce311721bda7baab65c7af4a18a0c5974e8051daadc4f13f9b9207ada405828e1e05aaf56eeda507f00c6907d12bd70008772eb3eb40eb2d42aee90e442080aad9d55770b51b2c0384d9a3338dfaffc129aeef2da83c742d3f98f8600414165162967f861bc63e333628ae16ae76cb20054b701d9db2055f121e21221f016adf9dc8afc920de299070a31b62fc202ba7835d3553053f73afb4771452579489c413f01089fda05aaac9c9ed34a1db0b56694002162c48ea2dfe3cbc33bda1ef9ae9d698a06640f8e3a7de61e207da10f9f27dd29d12b7401df8c52b5286abe2555eb296982a9c4bc84239898e24d1ed7540b13a7f5a901f9fc3cd1fff58c4aae9b81e0d2588f8c4d89be9d5636a0c503a9ea5037526d7558a561046f619e512d8f9031145679486167bf6dbc4efffe93fc096899474cf244eaadaa20ed44cd92967905c5a223f75112e069cb36f7d0a5c020d41ef76651662ddaac357c73f404deb7c3f3338756229e5d4caa7e8f8ea13c1f078de45392c13daf11fb27d74b086433f3808239a476e67878eaa89c9d5021a7dcd58f9b0b23fed923d14a4ac1ff80eeac97c698252116bc4cf59377754ccead1c50089362689ca27b47c5cc977f68c1f8abcf04f11eff31771bd2a8cc9822e4ec552a7390f67035aa1fb6598609e7158179da1c1b818ddf8e59cec39c2cf62f912c2469f10de650b9627da37ae441fb450b6d3fcd339236aff556a74c534b650f6a72057cf61a3be0b14c386c981343bdfb081e9878e4060b42e6a844ed61c5a9ade20cd8b3acc7bdad7734593f7f6721018567f40ed4264b9392da728bbe6c555106aeb57c98dd2d8b39f6f52310c823d7de7c0dd0447cf8138a2a6308f77118486786f19313e9c7acee8a4286909076609aa423fea24427c5f84df39c8e212da24d9bf52fbbcfc3ab83373cd8b51eaf0dc65a65d537e9f0085d63f7d3fde435dc174f21c0c15eec77ccc5285cc377e1a150f2bdc6f10b163016fced9d24803e8c02a8fa0e806e053b5d3d11828d7c149e657b8fb2f3c7a8aa589543085a36f21f896678714f28b395e2a54035524a939ec84c707d496c1b41f70c2913921aaf62144ee3ec2a2318d8d3a7b66f185193183c4dd9073b66d732ff900724d695c8fb1e8c6932cc797959c3417285a0fbd34777b3832cf663154389720746a683df09522b6bc74bd789b3d42ba98db79c0920a68aa7dca05a71cd3c20438a75af6ee919511ffdda9d1ca2fdb6c9dfab7e7195a0fa123d500372abf60fc214f779dad50c132bc9590ce674f5007ab6c3fe65535d2db8f755f780d6363af84b1876bfc46a8706f0f764ae9403c7f9d64fc61fa562818de0575ec3e45adab207d7f9f8b2f8306238f4bb450adbc49ddae1df324b9143def37117be61fd5e9e114fcef6f3bbd6ca6a03ce679acfac699aab3b6c7deadec5e5ec904df816f28a6dfe4414d2b7f1428245fdbf51dd5ec90badd6d921e16a573382dcddcdeadf1e3aeff5a007dcf068b05bcb0e53aec71f9e4d2aefa7ddcc102c7db6a7b7bf2a894f42be88a43ab1a6b44d94dd51cfa3d80b82549aec0ed6369a438f2de974fc665e9a8e9a3d9e304f803c65491b6184e840fdeba4a4d3749db5729e6dfcbcf1c7895ceb9f5529f6c9b64e0be44413d3616e03a4b0c05781cfa08c781fff29a5bb44d90f2e9329722ebdb7973bc4100338a9590686abd3e1f654fde1718d6470214a7005868775f157f3da43bbe6b2b8ff46c93fec149e2153566251ff1cbf6324e10c54b1a51554bdeb7d18784c1941e03733c0077c80dde6cc8053202788e32ae2170050ece0b76e5441066b9bed0f2a4abe66d12ac857c3878d88f9297c89f29d897d8d4dd56385349507555c6957ff5227b4e033b9c8c0fd794f09a0517aad36d34cadd30cdd252e6ba77fd031700679e6a55dd407a82cc7ea3ca41e5a6ef3ce49a86172b20ee763692e38001de9eae27f932efed51e55fe7e22f77849a3a3bfe1856986235cc8bcee40298764ec2f711fe4185a237ff024ff834450b84a2744f58d2c70b2b573409ef6cc01341d55da7d93c3fc089991490956127cf1b40302e830a6a4a4cf41d50f1baad339a9a2a9d3a0224cefc668f0dc7a9703b1770c3b4d9cd6aa47a4ece3b74de180e55f26d482e078b4df7997f362d8368d20ad4fcc1e666759a70da12c814c0848c7aa7de62ff7d3de861919e5a6f92cab1a4ec17243264c53dd9a1479ad7cb08ebf8907a3edce2e958f93a9f56d055935d9c2817735362e5510202c6e255d73c0a56ae19a57eac8d5d3dedf47562ec43114f3f0959e73e47291c90c6ab72dbf4229901c2a6e451737660c328890d6e82207618d84a42a5cf7c73b6e126acd28e673faf24b310f5dab1d4ade54ded5eb8d33050f5418f9c888538d2808b5e212370259fb6a34203f94aeb3d9d2be8e6b08dbe2894360bcfafecb63799cd5efcf9f26b862d7151c597b6231dfe68c3766adf3c26da04167d5460c12517fec10b87ac6f32cd57bebfc784f9f59b7c3a8582ebb0be83a4055a898b48f79fa3000dfb05425d94406d875a50aaef279020f2083ec8294a1391e5426927e2694765637bfb7f41a537300fceba1a71f8107c77f881f16d78e5250b5506f2b1279e93e63bd1b880305ec2a32fd475db542bd7a4a0037090af3eebc90ca7545277690b04e26a91fe46703cb020842ff8ba4bc8f8a2a6144455ad163af04ca81342a1a03da663bda364ebb5e12669f6b69a7c7533ac4f635e98b911b209b7b2b3c9cd1ff40b5355336d698dc283d331219417e7ea1549bdc603e6327b9b44af630437fdb295448847975abe13e00c774ba28ae8a02ea06289bc251d6f15ddb68660078f7a62ca4f1e38948da15b4956b0e075c0976f84f8f6d985b15be1d09a8503c3aa71498162978d3c37c5b4ebc1a70e5709ba733c770994e61fd9a145c11545d49d25d2cf46ff8607b8bc81bd3f414944a5d6ff5148d00c34bb8b0cb2bcd43430e8eaced669ac2532aa6416f2f88b90e5786d6083d4fc8af20dda9cffd9e5dc4d898439f791aabe8e77c75cc8d31c817076071282dc1b4303c3d82c1c2542d7b9f0df846f6d8c54ac5146b1410c92c45c21543e4e405007fbaeb01a0d2bf9c311153e1e38c06bee2592b4fdb6751e0a5cc10ac9950ce70eb73cc00d9abba1c30532d2795a43f23d10f7d3bc12fc501730cd651499666485447048fffabc935d2823317510effd41c6b0101d2dbdb6c7c7db5397e459c74a2310873c3960cda03dff33f1b04ea7683595c105c8d1f028a4551a7f7e7e211e459ea5420ca5e37b4b17fdd0565a78e152d274fbef6b4c08aa3e55c52c8b0032ee9be52f47c57a23de0107352056950385fc9547164800771ac9f207be5d55f8daeb440520af26598bf8e2a5cf56384606f0aaecc32fe4823e9cc6e75823a4de7586d6d311765629004c8a9f9f812f49201b6ebb41b7015314493f31dc6c7a1475b04a5b67d0dade5d5f31fbc11c075a549c34b60f9b46da37ac83826da42a3e28e5702ab39afd6af1597bc03efc909b21c3b5863e87bc2a00722c81a2569339d9e0e7b495fdc69ad9f4340d6a0901a795ef58f80ad953fe04e26ecea215af360338d63b8d1c56612dfb8c8f433e0fcdcd3af6759174159a0940c4d0b3251d2a5442229f9d15bef145195c3fb75d55efadc4a2a50f887fdc5ae94c7e91a2dc3040b9f729035ae6b6f503e1c1b8ad4ffa858369e8326408295db61e35604343ab97741d2cefc67191e1cae2701c9b1b59c6fe10a253726a6f509d9e910c96fe8210684d2a31d3c407871a55201d1dc70f03ffa546de05ae0438d7bfc9e81e8db6c2bf155bb9e4433b33a991f89cdf1a579a5b19d41a03928425d4ee8e952f36cfb710780fc33d8f63162ba2342642297dddb2d30a87a8a28ffcccee032ae407b99dce86de1778e9f0381956fec59950ab1ce76ee6ea7abb20cecae83751919e24e93fe76e29bf154d54cd97e165596e0c71d46475998a1e5bb324ac26b0d426c0ad216ea69ec1234578569a4b7d714f0acaae9ce393be12bfdefbcd42c26fc8d5ca0c7fa6abc330a988bd80933371503d5625c095ec60d40e2f736476b6b1751a1a615c73cc1ca5542a2f7281a8ab2577ff31b3a92f8cf7425ee0bbf859138003c0c530e45129d19c8c63ca30b14b966f97ec445d3b8523d83a75c302fbb01d8053888fe0977dd954f3eb7075af3b7f99409c75403c7b27c2d9bd66742a5dee121f92d6ac089feb8005374a454226f5e3f52734666fc3b827bc66ded8db0dda6d7d0638916675b10caa382c4d182ff4bba8a1798a1330f70fb58226a9e580e06ee508b43f3403e3ff83ba849d959e8878d6537a49bc6ab544c7e385bc9f5dfa708d5882e3ebe1d757ef1ee3a57c1d05a37897ecab97c7226f288e69c2a88eb7ddc8fb4443765091153328931c325d693befb6ef9675fbf051e26122fac826fd52498218dfcf04d684620b2d7315c9ad6e8eff0af02aacd15c1ca78b9886788f0993c04fb4bdcb66dea34396d3a0a41839999d0b6f22ee2f1a409354430c62f083d4b3223b7a847d8e5cc7767f4d245d8faaeb2b3940815a6cc7cd47c01226b3c6ac67d76d762acfe576879f3e6e2a11145cee32625c1ade81bc795af8e4f9c7d068a6110db53cbb9fae22b255e6e004e3065f4d0a40b3851af87d9db2b3e3b6ea58a62f66682d61dd7e1451943befb244b06bb50b44be65ff551d0e6a6e478aff64e0cc89b269ba764a219f31e4e597b06c7aee1841caadc48dd6467c9048fc21d0842414938d4bc78a7772b1ea132f9155c7b9eb3d0b297a674388535ce3919e2fdaa42516a15bd3e9774a137db61efcd98ae1f11608a39b596148e3aa999c288df483b611d76017cca0e061acf0d76de03a51a8c617f003a2c5363cb4166e71991102504bf90e67a4fb87e132142988ca602feacdd36de8a6cf5fca1da4cd5ae7de6821464defb802fdc1b5095c1437ae89db7c1c529a5096f708b4b6700900f1811545b0638eab0b5698df89e41c3babe0f423d8f222d0d7f5e08151cf6e70d96ee023d3b211ec7502e43aab51727300ab2875a2bc34067465be6c051fe1c54e020cc356215495906bcf23a2a0f565a9ab996374d36eb15177697e4a1e7ba98f8039f024a16d62c0b1f14dcd56a577a8fc5119840a5320c527a15e5c4db8200b9cbfb1532808aac2b7a5e17ab1992ca1c4c85b1faf2e8a88d1d2621285d312a2b37cc996b52b93e55432fdffe4c565c315ad00f18c02481ad4c4fd9f31d5413533c64da9d345b4d2435bd41a0dbab0d66e919fb7eee4ac05f7c616bab9813f61828c9fc3d8a82a8cffed595486311e287403145769330437031dfd059fb8410af7ec1cc6184c70b86cb0fb4d84b4a4cc887b1a46ef3afe783a12e3c82ebc3d24b761ef309cc9c69b12d230cfe2dc7ee9eda173332357d889eb56270c3ce754ca9e93670d491c4841dcc7889114a43ba42c579418c8c7d6647c98d5293a6a20485bddfe2bf0574cdb4923f2e484f4e51eecae5755aaab55bb8c923f5df3d0b139eef19f140e212f96009468ffeba224ec2d3db2b7f9aff02fb36503ae344ca600caea6006681aa8bc680033009902ae69c28c55dd195007b0e9ef3ef2d1873415c0a7fa267bb46350199b5f42b0679666f2a49f142bcbf3168200a0bd159ef6202071f2dff6a111c946bd17a889a9cfeb66b8a2a998785d9e3577bf699519c0f72002947d9349f344bacffc00b45055bc2d921e030e0863e9c16a2dffb0fdd986374d497edeaf5f05da08bc3bd3145d76cff5cc66b54ae6bff926a9424e9491f96bf6c7df36c3ff1f7801fda595072c1d5af06bf2b4efa36b2b62462b3a62fd3ada5a7c90bf8fe7bdd9b2bbae0fc6325b13fcfd9ab604f6b3055396916ab77dc2998568aef98cfd07b332ea898a0d702178cfa1e26b12a17dda363bc924165e5d7d7011808cd7d1972cc71b2f3f1de270ce32173885827b41cce1df928409cb82ed71fc160cf418725d9a6eccda1655be6eb69822e68d1854d78a85d7b1897bfce4f20211c10d0498783841f736dcb9b5f755a113fa21670fe11da031ca6aed7d6dcd5fddd7a51bd8d53f5e1952c1fef16406257f0f9ec790509ab749a3fe5ab8f330fcd3a5cd855e3eafb60bd3b2fe98077f540ca2b27a29caa8a6c0cb9115063c089163c4706c620b81bda84c09ea1c501a1083b6a13fbdc14f1337d23a87967fe9f2821a390c8a39f95e7f13af64d40c7643d5bfcb2034e19d384733418460f0cade425dc4bbd520917f6fe21b4855e64e2da3a504cb140f52c50a818e453d677bcd9244174bda10cbb05f039eab412375498bdc9de5af7390aa741ecc21512323ff2ce9ded2b525e9c26ff6d5cc420d93eb39e87f51cc37e730561cb1e4ce81e9931b8ad2e6df68e17e1a306721063f0418649432fedd55e04dd94bdc3c1fa99f5a7efa401982062e45e6b5a79133ccedc63e1f1a43102b08a3938e38336b7c816e85b560c116b771eff31fa69183c99a486f2e86c50c74f4f27bfc0ba4c478de585c5f06deb9fa3bdef0f45a50076c518a526cddc3178fa2989342be58d02fb989bcec1b0988ab471c404628eb6e90e571c04f65bae5aaf90ffec85028ffe2db2feeb847cb68b144c12b828dc9921e9ffaa4b916e31378ee1417f824c89fa03088cc39e1bfc77510a54c9d54bb9328d81a237e6d1936ad49c2325d1928f10b2443f507322dbac4a6b8990977311367e31c2ac29b9c773dd6a16e89e891fb9c4e6fd8a7377ed27e154ba432a85ac073151e35ab891256eb369f93bf6f4ed616b33448e115af63e27d34c7a80b62f16c468eab29d2f4bb76b328b2ac696ef261e9527894d19111c46cf4bc1ad1bcde0a52b4446194f2eb7415f72880ba563b6c581f027601192c0fdbc2fc7764b708398dfebc51ea9f0e1ac2074a80f6a1805403d39b052feec1ad1da53d4c2594168ef83720056e8da732d42d39c85b6b380257b74c1872b3c14b978c96bdde6a3c46fdd7f5f2ebe5f9a4f28463a2de1dd3f3a5e5b1d05e0d69db77f40c5482f0ef5f87196e759792ca23546dea4f17a6126d44623cc22059029c913763d79eb517dbd585fabd357ebe5d908b186a98059a001b235dc17cddee1108dcbfc3ac352e23e53cee26fb3e73b81c2d0b79d6ba4d1621d53dc432bb3de7c9fbb4aaaa79ce0c93373bd77393207f2e7e2a2149a510da501ad1f8404f1ccc098ffcf613c3e41d02535a613801cd45389bc577c71af7b4721499b952c2d9d3cd6590fbbbe41984a4f7abe3353318c5d6a4d815f4a36faeab800ef9be3ca77ead8e6bfd8476cb4731ed1d78b25f5d4c415b9a0b88b66186ba9e7c41a9f4d9c8508626ce124b38e25c0005d443c43a7cef827cfd845d88a80523cee409d193136029b58a3dec6e19269ec6fc1f05d8c4399687f8849551753bd3cd515d70b29391b56600311d4ea07db8fc5d8f3153bfe872c92011350b2f6120cf1250bc32ac61c1324f25a87f552cac7b03b1ad859ffe4dde5344fa62b03f98bb51d8722cd0290afdc5609df3dbb7d46963dc0e76239b90bb825c1e790a9f59418522ffbb7286da7df8f1e6632900c1ee1d560963f22aca1ad162cac3f7f7efdfcf957276e7c1e80dd32f1eca727278d55b017a90a60af5571c683ba8c89e1bab1ad03ea4ea5cad83a5dabf3a6d427484edca1a4c79db98afd5641b9f39a26bb96a6ede79dfed301f78e8265983ee1b5d233a5a4b3cf3dd1c3e1fdbddec115246a7d8cc6bcc71bace74627f205f5f29bde9ac58c1862a7577446a3bfb4f773a79f724a7b43d455e0dca4aa91afffc4962c0e41a8992f4823d0cbf84d449b25c7a098a5619f57f51ef4490674627959dfd1d5191aa5caf7752843b46274efaa3dadd31a568003ce2bcaf979715488c45c7db0b50714ca39edaa7ffb5cd41adaad7ceae9843462110d3cc1823652e6ff4ea7b7043b4c914f9c34c182b41998016d0fc7adf0aebf99c1a6c569d406b3ffa14d91eefb0bb5aac93a2e279049cbfd1ebd8dba7208cc3af0105e5bf96e7e175f347aa847b6e643ee796a232b7d491fa9f8ae7a51b5b8dc1968410b2978c3956fbf48f9c066c7759999867d94dd937d5e16186cd92945255dd35c332680f40e49672c66b139faa4add9ec53e2af7dcd7032898b5dc54093943fdae42f7ed6c4dc5caccd24df2cc0d8f10b16b11b02643db2cc80c3c222792f49fe760d2b96aa37571e098f75bc5cf2f4149456b6eae6bc396102b18f3465905ab15efead41fa18ef79b8b0ff10ea29d097b9aa540c5c77af7c69d8dda0df3f20f7730d25714c8a0cd22543b554f4b79a73d7ac4d2e6398562847ecdb5ed6ac7312a241598f51f92b2b731ec0703465d2183910751a5d509239275deddc3a531b2a0249f34d8af52dbc69ac2c74362f279c39eec3dab8e6c3078610031888fac2fd0cfafac5368f3686c11e4ec6eedca76653981a66127e220ebed8592ee5c85c91fb3412859525297ccbb3c671a1f46a51df8943cd62c6f7b229257c3c3a2b91581d1e48e8b15275342fda87dc3dfbfac3615d0d12bc9d71ae7a1825a1a9a5c02d769f7bb82dc28b9304ac3ff789eb040d9e84c3e977b4c635f4a3a885058bbeba0985e787c125dd3d8bb40461c3a02475a6e8d625b02b8ed7f48ec8e9baa0986876b86eaa3a50ffad5c4674a548ccfb6a2cdb9673b310d2e52fcab63ab9b574620e983d2542ccd5a383f72b2f68f7d2c303565e2f8b74f38154db8dbe3ced2e602558fbfd6f165d609220de6c67c2cabe95876693ae5dbf308b6c62bfcfda19fb2e6b3ba0439e2295a32ed00407c6b4c2a612ee41686463e5d809be76bfd4bfd44bcd83b89ec46ffd57ce7a61d5e8158b63d75a6754586df0707b9a4d3f96f3eb41b793e21f3d7740fc8d1ec6cf98e0857c40d6387268cf938d125f501bf89e1d13d8f531a29909e54f0a2041b5469843296a1adc056a0fd51e62e67b7bc6d6d3974c1431c7b77a549c139b5ab53ec3b8523ac4035eb8e58b820d9c40f6873b0c88ff6047dc9736a413eed6552927eb2e020f9b8a0c2b3c8a42884ea000fa55d5689ca4ae56d4a7433f1ec8495e8cde0127a95842f4b32b480c4ff929dbf8d408da9dbb46caae02bfdd329fc590976981d61743f4cf70d3b8495c0bec73643365b0b6a7ad0ba9dde719ae2f859ddede45b394702c5728c162174c4b5159552e8c7edd704365d1927ef1aab5a0afae119df938510fafd5889e6e72ab43e2d73e58e0e1e58d8368d7ea9bf42c38d790fdb05b286c8668ea2b480cdf83c551ae4696367bef348115857d94177eb459e290a2542d11d7509d00eeda28fd8ec4478653f6b85a364c43c194f99b72885d0ce33515ce8ccb73143d7f1f07bf1535619f75179d054b1609dcc4ff5da4d60ecf26e00fbb30e3860b48d55be6b5319dbeeac9b09249e4b20bb786dcfd310d6267df82417bd3ac6f78c721109123cb72fb52601a75d6298e9bf87c65ac92a3c7ae2b74512d1e22b16182eea8a416d48c1b751b0fbeccea0389c198defa29713d2c06f33d6ce701a321263d5efaf7f4d37724fb4126f1dccfb860d23d3e41776fbfba03417f3f7345a249e66605cd1c5e185d6b9074aabde10fd1900aec3ff70ece6f34e507219185a2fb1b9ed2955a95f301f0447cfc32186c276738fe01836546aeb2d6f99db2236abf8a193c5cfd3f377cb904ed22dda5ce2668f6fcd21ab6982b89f05421c27eaff0fe832f89065deaa8b21c0602187cffd17eb2041abb9c69cae6b01403c28d4262d2191444ed25af01f740d08ec542c45924d344524d9a3c89d33822ca849b58e73f1366a9a9bc53e5404df6d9ce63763e98323d7414cc3e400bb8f2979458eb7745a0c74089f2a6ecfc2feb7cf4a109cc416f6cd9f3a24c38fac086b86f4d7c540aab5097eb9b4591932c379dde6269aa0fb05d97559f501f2d14fcea38a49c23a9f27dc9e98a7a9cd6960c87cf3d36df2a126fef0bb3e0ba58db6f09311d59bbf7ea7a5eefc60752688072b5a28796d3504585524fcc7f72872764e0c534caf119035a172674f42848d16e4530f34c484349596b26935b71038a2860488f42cbca66cf7918bb9cb566e8b0a06bfcf92870d685f58d7c9d217277617e65206f1aa0c1a304e912a594b6506d8549c66082faf4b27592406a41cea96d2959bcf1df029102502d46fcff40fce21427514e13fd4db5cfd5ac8539ce6c7dfa3fd8f384aa8cd9fa64a2340b2c2de15b1e84e3a992010ccf3b9b2e95e4280424d476a4a23d4274b404f96cca5406b3d13ae714a1d7e2c4de7c219ce2db3ddfd9e901582db206715796180f8de651b8345248d88002013a6db3ca040bb7cf4ee03514b87fb56b0248c7b10d046c2e310f8ce98ce4ab39de143327d051a598c3bd75e3315766d164099c016c3eafeb4413d4c5720ce3c6d17d681df7cfb3db911cc79a0c22192b53002523f234cccea27dd0c0cc42d65f0195301f9cdf9524cd21399e0b4345ca7bb6ef421b74bf3be92932991bd85363095c407ff539cf55c2a3121a039ee13a8b0834d72114b8bf1de08ceded5c7637c4eed3b316926dfb6c65eac294c245d03fa5d92e323756b1397f0e00330bf720377493b623593c6d4bba226f1a154d33794de9128581a54552e15e2df8f9f60d36961d1fe48266aab7c9dd838ae6146a6bcd083dad8bc3b5ad4721db450abf278374eb702def2030731a5d7681e64515f5ba24e29d1c439bee487c22eb7b2ece44ef2291beeddf23fb274d52ab57c020bac6c2ed7a5ff8928d8b608d8ec843ba8d4a2eebe4443c5fb18977b660e963c22b3467c3026ac167a254654cfa06f44534d534916bee6cde95f5b963a45448794f79ef782752e96b8456884751bd3fad833572c445d5c5b30c538c18255c7628ada6a851f9c2bd131be5944b90e7acfd755250348b8b473497792ad0ae0c62ae61f860b62476b95347d95b7f6319c7ba1d6dfa4b73e4e88d8539a5e55dffe9a36c298efb39fed6665c411a69e18cd19538a2fb9f3929c2171932d14b5699843bd7a1a1be8bbac2a2de02537b9d1a8bd86753efc8049ef9e4ae658a44ffd70dd58adf1e367f3b89d0545b731af455103d4d0dcc4797f146f33e380c02d37d8338ed7e09ee11e0bd0bc1db0fe84ca35500cea86b101ec55330b56f7abcbc77495b0b81cadd62bb14b9137de8c8d24f2ecc5502a68e66b4c582a1c750388029b8a95ae062cb932d591206ab2899835cf6c906e8f4a80d86649f7c8f7c1272c630f6ac52637205634cb814cc83d6a92621d26cf3f2178904b63bdfcfafa3c7cc111b0b0dcff98c70793bed2fb4637e113dbe6853d63f1d4a7c89688aba32f9cbc7aed5de48a684afcf1460d0b1303023c961e55980e5b9f653a9b0f9e5adce6fd83fa857fcb76b910b1b82abba6c84345270fcd1acd1cb3017666f46403a9ab52b1d4d9af4a5d436854b24df6203a6a0bb598e306648b7857f66eccd06cf3c0db900231b3f0753afb2e9c99cd4b87c3bd4b9167617853c58e145010376e76993e2c55ad3196a08c40adac120e640d3bb144158302d812ad4d5bd7e7a880a746d9f522e9fe88a1c8fb19b29aa5a2db3adf8fb8766a634e83ef3a6d240d430ad98468a0a0d371668ba472b7fd9f6a940a45f23589c1796287b4ab16ee62b6a4d77d22955cf1cee8c9a3262aebafa7ec7af49dbed5bd75763a7721b495c4c0b6be75bd3545a788ec8c20c00d2897635115968994baf402d6e5876d758d28978daf61ddaa00b775bcac53745eea03474e271ce8bc5a50a555cdbd5e23adb0bb0e9569aea82e49d0eec493e7b7964c61827567e9d26fd77d1c0ad4cdb1af7c47112082094d64750e2aa95c8d80d8af91eb2b32dfe8fe97bb2af8be7ec007c8a61160268ea1debc9b90e03e9e8d399ae48ef659f646f642ac5db21dd28fbfa69396b1107594c4aae53dc27555d815b5a0ac7359cb9af87f4639a096e0dea3eab5a95e741fe789a774be28109e791d9a0cd546e7a7cd8a4278396e2efaf88514d0142ecae78e257d1dd54986d7b50461acd82bf450be61a5b66a094cfc94215ac53357ccee303ef5040978fc16d8a3ae69068c78607a960d37ecadea605292d466abe5dff5335bec17732f34c4425cf584aa16d6e940f8f6cc15e08e0986dec9dffe409f6ab54c225741eb1aab4464a42fbd8c096723764db9889703119d7dab0b8855d5acf5415061da2d7416a0bd179d4057a2c3b282771d7f90c2ce030580b59d4e03040302c602bba3c17b5f2129cf3ed372144294ce983acf8fed756e071defc9e4fdfe97c5e3c4dc67e5de578e8eea06e4df92c32afcdac751004e3ca6b91daefa0d9b9e49d06e9593c6bc12127ee4159cc86cdfc6ca8b16422ddf4094d7c4084a1cd5e9edc0390a555a7fe0e6c26e9d131654a4dca9b038cd94cb93f80ec7e70a4e3cecf9255b222e201f3d696a00e21489e299a50fe2bccaf23149a91f0e722ce0a54de7b1680dda02cf40a98b529e00ee5e77f595f3ca81b6f9a4e24b0c0f78b4bc1f356dcabeb697956cc70458addd3d6a068031e949ba39671cc9e6359ad5af3cbcd5c2057188933044e02915a23585b8669306e11562de555eead139d5dff29779b77a85bbec4a5ce06b9ddb5a18a25f76799cbbfb133e909d9dfdc0e6a0f19089fd1d8ade58daa6575813f9926b508200a41e2163cbee5ddd6aae423a2438b1dceb7e582dd6d88a82acc7cf79cf7b4c3ebbacccf718a2a3e21eb5f4567b76710e204193f45b0e5645f39cce5d0fa74b475a3ac0bad7a4ec6d0dd77dbe5524519359839751583bad841d062206c508c5471712a0d71579529d258540c0859c968dc7f6c22c6ef8071d3503232fdd2c841c4334cff3473c1ce8078acfe39be6d9129faeb65b53443db6e3c14e87e6df9b110b44503fdfebe64e1b44cc773ae55a2867949480a7bd202745c7a70d39eaa8145815f63f8f1f913e1422c3e848d2491e59fcca76389d09f848e9686ccbb040401c8dffa31f20d57a9922b786075a4104f79a7ec63e1f9747d6b1cc1f5b11c305fe111d06c76e7948b797150e766c3b22b790806c77dccf4d8bfaf1273d233dade3a3b6f262a1688b1f90dff21cc06584fb9040687035c741be1581e2d5435fe8d26f78732a111b2db77633753c89a7020f404599665c1ffaa7944cb44a6661d78eb697b52119894e0041e6a133864c30f0cf97afc668f1e0047d1bfd3cf6e347ec941bb80796ffc131b9b6c6cc64479469f1297e187b16407b528683065a0be875d9cd7ac28ed8eb6df50a6871a9f1047500a1c4002bf6813e019758a91831c18c6c5a088299f15e8de398b6c84c59cafc03090bcac125b378deb6492dc73594976699b4622eba0b4c39e08ade0f79de071d18e5ae1d45611368779792a5ece88028e10615047c434f898c7a42bcfc341edf0b7f5209b23334cc4358bafdb5740116f1ff9c7eb7881d238e9446d43f02925ea231febb6686970b4f3619739574c5a18ece6773c22ba4e4faa64743c5ff251202727f9bd0fca11bdc31e3e7fba40565faa4a89ec85e2d7bbf639323748445ad405559e78a0a4ba4266233251925971e81cc6c6273e176aac8968306954d5ff2168930ad061a830187ceffc3cbbb8e24a520b7e652cc53c1bfdf59f69e21db7ad3df2ec1a090c17f96a60888b30db79e28bd895319a4b672c519abfe3ee7788a186f8707e237bbd81d5b78e32739c89a1faeb149aba6f3c120932ab1e73fa25a77636d0034f8c6539b6b6aa292e0ea3d3b597232c32edcdedf4e69d645a296ef8df9f9f66d15d7dbcfb968c41c482499ffa5d5fce42395402653448c95bde16d465aa2c32cbba5745110a24f7e8a564a975ece1d4f0b767fba0f7a98b7ba33a664e731a3355a2730910dcafe03545ee324b435f79a42438191bbdc106b64319d6f1b77402a6815e399699186ee12521d925d120f8b8b5cd60de4c55e45592684a50f2dc80507ae6fe3aacc960a8b9443477fdbfbeea06bbc999f5302ce01390cf10ee6c211fbe05f57bb3fc74e9c6311cb6365c05302c53e973e6f2dc32f02d60c0d7b5a27213a051a2af1162ef97ece0efce63f5b107d08e66c09d66b9cb09847a6839cb0f9a8f84197aea3403d480689511acb85538e43b71d452abbd26f53acb05cae833077df946489f8312846481a26301949f8c2126f14dbcabdc8ae43e86cb879dd17bf40f68d43e7dafe87ce82ed74416028b638828fe4f1637151d2d3d8cfa76a617310fe5d36f3b646715e8d0be0008ad16884d378e6cf3d751e2ef41ecdb97c772da4d1bfb28e3ba6f9b1f7a83bf2f5aba0786f58ac9048286aea336376e898233e152ba952b34dcc1ffa0d9c7edc4d99a0c58d1492ed03492e674ee0128de2845f544cf5b6ef7fcb213312c6811ba675fb2ec79ee02ef696c9ae203e7acc9b9ca045d3f7b85a97bf197fefece487b56e559757dcb03ba2b07d442232f427cc06c9925ae97251fc15679ea7c2b1ff6c471d4f2ec50c68ed2bea6adbc54ddde56e8550c9d644036b462f82519d8543b7d84408037804f7bb8c76151e3fac8ee79784d5d7a447ad0bee84cbbb4d93e606cb1d1748c796a707cf722f6c46418db8176ea6bf5deb9d57f6448b47192e05bbe3b2286a6d179c544479dff73804972b7949fd045746f4a2a100dbcbc9a15af2c71606f1d2e99cdcc23567de2dd5266631cffb66d135098d7f9c33faf2a132873e02e95d84b7b4faad95bbb7341afc370c2446850dc5f4de2f4b59a0382b75bf9ff7016d89f19f12149c1ebd63be3a2c97a9bdc06f4c06649580426e4d1298d6b0628f237e5be0690ef3372738147c0e2338d2aa38e30b248ad2d447209606ccd7fc0d44588d122bd1ef69e99cba033133e778c626765e378e88f87010114a1a8b896ed67eccbf4399bdb1a0ca50543bd51c3f192a45be3bae8c6ed247ad71907528411062a8a0632a2c5755b9909223ca99feb7f7f4d0e2ae0d68f9de29f5a2f5ba31c21aa271f3f97aafe97b4de93ecc6e70adc72aafebdce5b3b230ec195b8346b5ccf6f3d88b4d480ddfd5d14d1c28547b684a98c962058d3e37daa143b8de7e494dd5fba1f4f1965d9e7d4d100c5ea3d61f5b17e08a40e92d35ccc4f43dc158ac263b114ee519c87741bec3718a31b62d4abf94edfd78cce71744e4b26c43e4cb2ef9f8c6362f034b1189c2f7da64a2fa730b187a1d217cf882f4ab0dcd0d27d9787af45ff3cdbbc71644bc0f6e520da04e68d9aee6c8433e7b0ccf5ed393c0d9d6c81ef29d3e71f911770d8e5180e1cd20a0939c4efc94073226d7757d0578e9964da813e121e89bb194118e0b32ad09f52a3d2d5bd5d50c8349c7bee3b57956deca6759e48efc8fb9dc16b55920375b6713c9cc778e8323f750805a3f9667ade5e2cc99808b9f987fc560dbf8840ad8f195b2ccd951dc2ce355a1e9f55cd46ba8f36aeee4f6a3398638b65f2862a5cc3cd53fcaaad4900d22c718ba1e36f5826d44b6a9ef60445a2f7d53c025ee78aa4f3cd9b7de79a54005bc697cc53f80aa8567ec953ae6e834d4cf439a5175efee3902aa6a0d296a2fa93edd53b1973b7c510890a052c1dee88421cb87953885a00f928079892c5cdd1b3cdeeedb60deaf32aa2b424036a0db0c9e5c7b017483b700510d43265ccdddf5c45d393fc693d56ae9749b7cd2cf47166fddf9c2ba31f638f73d3bcf61f31b2d69c236b0ec491eb4fc7abff890e6acb36ea9e2c156737c35004ee64f3a14b3ecfbd4d5e3615c856e5df6697cdce5c1c0bdda414d98bece967704fb5e983da6a963ccc2d89bb56b2f3a87772fe32ff0efd389958f0a85a753087914aecdf3d9919e4e7c9f9afae147cde60f0a1a268ed2be7af256c3d35eebff3253a98be50a729a2c6dd1a4a512d6e363413a20ae383753bf76398564e6be96dde875b752a53aa35bf23dd9535d2a566f5b80942056f84aa6797f3c8bd3962c75697d9fa2674d610791257c63bbe572376dcaeb6fb23b0ce67d4a9d34d720062896855406e7a4fe4179da08faf422419b1258baa4dc022d8f7a70e14e29ebd80cc5657c27f679a9021e33477288d660562a6f81936eae184be7ec7f5ba35be39be181e588d9f455892d2d52fd34ab6d8f60bd09586c79d6fd5149eb094575cd5bcfd6dbfc2a69c181dfedf828b209713cbee5fa81f2cac94b726c6c90194a57e25b493bc63c854f0c8dcdbd2772d5b2798a72768f94b391cd917c7ae47014a20bfc4d5e289738e611d8202262e2e14d37c9a3c7987d4817b1550c09e4a7712eb6d2acb34595b040eeff595c532bce27fc31bcf3ad75327ea489cc47f6ebf959246c9d52dd98a41a9d827e11171862d7897516ecd86b58f28b5d68db241a7a80ab9769dce1915655b5afd1dc19b51e0a3748145efdb6b84b310f6bea241ac0f35d4c5e921196bfc113bb0dfbb8b8e536a07f17de21804dfc80492dff9aff9be58ec607a29002b89e242773f0d0ffbe5b88e171a81a0acfe1da55a48f9b5da98505e5cfba48b5cca532e73609f6aeb841fb0eb4880f2d629316426669321a1a54cefa8c822f57d59fda1d9a6eb4303194f35b4f8970e87e57dd11a002c763dd530c69583124efa90766f7f42e81120cd79090ed36f3ab2c77daaea322eb717b580f4af7a27e89204614812c00111b94a3d8da7fb493a4ead5b57f4cdc282ec82e64fd17876b609809d9171bb1073874f2b396205fdc5b9b6e025d703689e99c61d24a690671e606f4da941d0f32e18145108b6b603f85cdc4199acec89aa0938cf007903a6abfc97c189785b7c4e265e61eca2e568930dc321c700f9ebc50af5e4570259d58302b16e0cbfc017d0e563395b2889922b2b5170fd57e732ebd2376eed870ede7749625e6ce5b71b0bcaf92910efc2492e23a0a6803a1bedf5655ca50faa72a65511dcdc84463a40f57e9c251731ea4d0c12af74091cb290a7f7d5f1bde04bd1bc030b2e3859cfc53c182cd72500e7c69aaba8ead0690f7de331df10e991bbc880ba102d98653452986cfe6e4f21ef979b2b0bb84e50ad6e77f1215b9e678b2f76c9278f01e51b936647cd4c954ba48dcfdc0852d157d9b0f5809bd5af09a03b46827132c880e8341b481fbb67292c5be732c33de478dcbbdeb8272011255b8fefcaec92c269eeb60343cfe539729021dda72e19047545b532e0116666e39c44501b7023a1d00a5630e8c0ba9bfe8edaf04d2aa2296c4417025410d102754e5f73814720e12ee8352e14eb4c407753cddb303fa04cd44f2b4608fc304e221a6c4534ff1ca19600dfd42452ae0dc241e081a39e68cfa71d21883f65edae38e89d40000c146d04cb3b4fcf2a5dc5a55ba47b9e7692786e8c3f854385fa0349659a5b79b83f9db9bbe1354ef24ce34fadd3e0aa0a9dcc0dc9877fd86d823ffaf878a2e6ae18b5bffae3fc1fb832252d5c32a5495c12138a17d35549e494457d1d7fc63470a30ef8bd4d8b3cf5589d31b47ef8b7a3dcdf36e69ec6aefdde6b685d9c9589bd80d56bc9eb156da980b32ffaff687dd96d391ee4d9f9a7afdc88763c136a000f67ad78a75a9b70316489af0a023a79b1057787e81f4407a10bfd805bd5a95820ea1e147051d0b9bf35e4bdaa5503184c7267f790052fc42d8125850b4c9f614d6229affb5a19ee29214055735abc226bd39cf5223325602eab2b00671224f6cdf45c344d63e40a754a9fd709ee85099b81420f55f6c3a9e1faa4bae08a917aedd1a8e4fe019d197438ffb3670f8e3c3f5e657cf4f5014975bbb48e0236f3625152b498355ce8383f6fdc02c744f3d6f3fd99540f2793129c9b544e9a1d9f9274d7e9c5421f0e921acdf4cfd289b0ce10ed5f904c83c52919eae4133e50eae450c4d922c0f22b4f1660a643513563c99437456cd7483c98bc35aa299a1cec731ae3a764b3bab8cac52ccc0e42752e90064c6d1169d6132b3a3e1fdc087a0657dcfd9bee07f9802168c06612a0ea5ed9b5ba0f124b9125a2a067382cb61c8c12578b146396ac1c4e4dab40c8984c97076e40974973e49a8d77fe7a8c8ecb9423d178bf4a985783f89b8d0dd902654c54cce9be247cd7b08a0841b3201ee3d23d9280c9981ba1dbab370e7a36334545f2a2733c9ffb146e31297da819392be3866ea5b4759b384720c35078d02400439222b054e1e90fbd88f2db007bad861b65c2d87bb3bb9564b82fb22329ad9a135ac853130ba6c2034124df87a37935d6d37c7aa100c62d83bfb1323555e0e8954c79b637596ad71fe82ba1b20f707210e1fb4ef76b551dc9b9c523be906c9762d2103cfeebdf668487ff043dec21b7205f4ecdaa3a44d986e6c2f252fae0797291aa6c5a39eed2f9656e8e7df560015ef8d418a22ab1c6ad75d6de736de34744fd0c7e8bd5f640f1e760865eef2c2610bee566771bf4a69eb99ce671aad36d6148f9a593bf5c474bfb0d874ed59d2766fcdeb50c89d1d328712ee3f65be710898caedc07ae571a6b90627336bedeba0b1c26c663460ec70646306ee97ea43890be4c8140a139ef8659c1e468eb860bd5fa67c25be6aae97c28d003882bed04cb7de54c2af72b8a422dd40a541d5ac58a00760d0200884c436c3850690ecc41983f5119ad0e52cd847ebde4a2e858d36163fe312c2627b74df026e1dbac218ce81e220dde67441a483c4fdb294556cd1beb0837fbd20dd0d52cd65e130bd856ee772443e0faeb148ee1db1a00fe9e35f9c0b9d376b944a4610ad13407311c489e5243a38d79b57225e50e8d41a64acff80b86331100d75200b9cce4d3e3f0b28ee0ab12f9f1fd05d7a5e1b350a09365e19c4143e749c69bef179c04f69fc695aeceea4c7e7b4f4cc5119e96ac756f806fc2b7718fb44b279f0f6e6d7275f49ab68a85bf60dc1e1907b096787111fc2d3b95bdb345592d40afca9e7f135174f2f2e8e7b1becdf2a774dedf7e93f367c3ffb06dd0c0efb609a66c408d2dc9f4430ba649a5189d0e832914a6d96cd4c0360c61d107a24efcf4be654e81553a31c96ee5f44b6195e85e5ce7ff9697547b43166d4acc41cd6b6ab4a77cbd45e3fe4eb9b48d64001d6fb9138f6d1af7c1559407a380681cc71c66c3d192e17a96195687112072d6faa5738617972a191205df8a85401fcc298d76142fce47fc7d9db862a8e5bc08982a3996dd2612e9e4a9c7dee84091600101a5a94b8a80d255753d0d70ee061085b3e1b94aaeff0e089198478bb58778040ea7f461eb9776d1dc0f4cfa58956f5bdb5ac1750349b736dc22b303a2a277153ae8a2592f537b69edd04e746425e2ae19435ac6690ecc47c207401a32c0600e6b520eb3bd6cc16f7d79b9dbbe98fdaf06f352a1fce7a0e5c45d1f75d56562b46dce4d6c037500ba7747fa1b397462be6a092e26c9093ada5ef9485fde38a4292092147353fc896cd79c660ef3a441491b78e3d2de97a9f589641c742344cbfb045a57f3cc3b43019944e5794856a73c7ba161b3365637ebc32a5d19345a1c93509319d9f70c334beb857bafe71fbf2d08bfff28031f25d6da0ec6fd619165545cb084972db2ba24cada1e3b7c80f33961d018506fe06222fd117de618a666c6638671654b2019e523595eeb5095cc373f7a431579bb6f86b3b66a15a05493d82989341261211f5a7bb609ce513afcae1944696d100c1157f68234398424a3f17016b05cdce64ab1f476bbb6947ef6d4a87b5df74f9dc5317e0dc60ccb1025cfe20220db4a296058d981c82b47d04f01b91ca5da04eddbc273254454d2194b5944837ca89fd37bcc624bf77f7a84cc0ef6b60588af2dc937903d0723a5ce0f11bb976b48930754dcfbd909e37db6e847e9ec5504b234fc16947d34a28979a58acc6a14b1623c2315308a77be5b1313530008a4048be7ebdb8cdfd760929b516d082426632ae8bccb5b03dc4f0b4991042aac8896a00678c58eb23f8fe3d339f2d4b63134cb9f549566f85fe96c26c2edd38c9149fdf1ee500bd64cd567b5b4d724cd102e5e0d18bc429ccce4ac0264542b092e106efe32db7199f4118b77b255ed2aada12105791e22ca9d57fbf8585a9bb785da900fa8ceb50e628411f4b4879e79cbcde1e4ada546915fce8e21d2da023250a5c0d46dbb52a9ae7368c637151f283c1f569bae6b9cb135148b00f9f2878a0f6fe84962843c310430dfc3c7dbb2b0dec710a32dd2e1f9b2d8e9965f945186c6c5a7cdd198941879764831e8d7a31ed8797c850a01310bdb859b853f0a60de05ea4bd988569ad6209488fd9406e642fe7d1f4c5e8acd7e216703349ed31c96c1416e8c8b6f64db0fbe842d763a1096754f63f80e104738aba5ccad9bb8bb5aadfe1237a03e1347ba261e90e8162e9b943018ca93b4f6113f9f2c272164709dab278d0c25e5a9255a0c0072b5539e1a21ab0adf61cfa96dba6a09ef36c519d05575eeb87921231047a67f21eb2da3a781eb2221eee582e9c18b0882f17a041e93cede46ba2e1cf1cfec0e2651a4ddd6905da46edbe1bbb8d418cd9187253ebccad9ce2dac04b7b007bcd1654b1ff479635081d77d43280f12e80d82da88193fda0aed59e50c3381cbcfb1b302579856f5af82ac0d51014d654824380603e26b5d787812966e90490b5bd9b2f8b92ad9ce53d6baee3b7f0c1ad42b73ce7bc63bd6fa92965ec5d88918a627020ef38a11ad7cfdc1d83491efc584ce59605b8667ab1500dbc097ff20dc4028d7153cf365771dab2b06aab85a7ce72f9048aacdaae3814a94268b423027f4b9b9cde4efc32b0e492a8ae8202680d2e609ef017dec5f8be9729e338440594de1402317d97bc705244dcf4fa9813df488eac4d029e1837a0f207b133a037328ba9247261494a47434db59886a6bdfc13475999688199a54ee7f78e1ba0499027f96a94dfee1bd0255a5f7004cfdb552f9cd02ed105b4209d4ba64f3e106f12b4a6cb67409bbaa458070c4b7026385e7d828dd0eb74ccd2351f166c3533d9ad35db2e3639feb325ef3056e6409c116b50d887d9f8ff7206bf2cf471efe3cb743d424b6102d319a61174008f00135ae937a0be10323e3820be0512e5f3b952dcad8a359dcb1d26885f4a80d94be2f6ec62b71aa2010c77515f5297de55ba44295d1f7b52fba9e39da07e3e6a70fd92df9ace59e2088f69935bb326d891b7cb6c888f186e36ad996f01f8e2393c9560ed7810bbf1a2fb14b8cf7772d6f1cfbc9418ed4035bd60f33653a0cae0e472e7845861e045a532d709c030fe450700c99ebb9591579c5ebbaaf7334cadf9b6538a343bf749022a35af1bd58ad1422253cf39ba3db5ab4837847b5cd278000095bd67d459d9006d540f83c7aeefcc16bf965f5baee7a7b39afccfbfc0e5202f23871bdfac61467c244ca19334abe4aa666c3f86185eeba139252efb5e5ec45e232ca9f4592ed6ff2dd4023ec02b8144ad8f9b83e609caa0ec86f370aef96aaf4beaa7c2a010da3e722cc32ab92858b1fc6af33d2020fc30cd922e904f6fe44a19b7a9328141bc12a2f0cfa7c286e3689f1789acca92cc7c4b4adf0f825564b2bc9848533306fe8c3c52f59fad81298a876b5d88c614d10f7b72d122fa79b7399c5e2baa99f9a980fc0ab35b27f827d638d801b8c0d206ccb65ebf98ec7d4218cfff7ce0d43997f678761aa6ee2b36239b40388967330f54d1ce02da0e8eb12409cec8c5e53ff5a6777f6682cf081f759b7c20c670e6d0ef473824ac24f7a12524db328aa6b0029dff017889633f7176c0f76deb3cbc263456d3af154948c44576d4d0bdafb6b867494a9308b2784080a6275f54ac3ef48efbc00a09e0f10c2c4e85774b5d49bdfc6d9620a9187007138e628b188e5eaa389729d651b39086dbbf2a8ebf4ca79400e153efcc6172f4529c0ff669b315966ff061f1cc6a758f311353a44f35bcc2cf48e00d2fbcdde810a46ac78efc24bd7584cf97444a122ea18f3e7841adc55dfe604271b61216b52550a84f8af7e8d8e2ff79e6dbd1243d0ab84a835640cc6eef2c9494b8183f1ea19c5d7186d3d2dc133799c9d5b72dbbd0da0d395f18fe9a727ee5c4082ad7406109f271b75a1a9a8c7709e45c23db9aa2121465227261096c2cef69840bb6a24e0a0bcff1f6648e1f6efe771094b45a6678befd19681654d36126ceb8949f8be80f5103529842bf9e4a75943ed1990f8e138fee7a6aeb90252495f563dea0d5e648637b09a42bd4e0bb4271df2031898d2c00539b14b95bb263c98e81eeb641174033f4ec95a19da3a8588ef04f4ef7bb214d5628a55b2a751f13e344164b02d473bd43d1aacbcfc57504ed0ac68f859010ef081a85712204e2b9f30a232e739d3ae2ca24e04bc98a49df2628c736a35a7f536f56249eaab150fc61290704f67898f4d98f63b188d25388f076d04ee3d5e39ec5204c5287697fd098f2802f3d70f181e4d70b7c7418769275ececa1d913052df8e4e1101453e1ba3fb732f6e6e60db9ada27cba27388c131a1c63290e15a0ce3180027b96184ae1219ac1f8432283822f321beb64140bee01ff52dce0c060184585c8bbcb0c1aa26c414d73449417a1f721dceed2fc153d3d30af226197f10f2e490ce5b8ace0b25ce248cb473c5dfb626a381543452fad283107ff3e27bd4475a55b5606fc1e46c2cc2a43449d44424e93836064cc04c39afcb934eb8460271b359b38519ff2e2fda39b9036e810d931ccd348fa1d66f58275a73dac1fe844f30a86a761d12e6a5c8490bcc89d416008d473d19c2031c63b413dedf8077440419e0fea791817f2d02b3dc72ae340aab896019ede4d0faa51afb51db3119a4dba32ed073d0e2f8a22d1426f3b5b08aa4d931a7f338fad4fd3586c6ad720117b877e824a0cfd403f88428a31918094087fe43f7d205a490a3c2e59cf1be8bb95da66240dfe4d4afedcea7f0cae44286a4b0b19e8f1713e65c1cff19ca1cc6a0fbc483b1a428645d293d92460e8e09122edb41c968a43ad4717faefd4c8f9aab102abc427c5b9dcf899411a2d4abb494fcbf181fdd17c7538c7de38f42da1d50737d56169d0ebc9d8cbb2d3084e3a6ed29d80d18f2b8ce9c54410a3c66012920b870609455156889348696692e5972af31d5353877d9dcc82d665cfd34dd2f3bcd794e6cfc914060b5b20a64932339aaaa6d683b9c6a35bacf4ab0156b632924af016744ec0c3aacaa0bdf37203ce14b12bf7bbeb80067d4acbe624680b07d2e5a3357eb6a7fd43d8e5a2f3a40b38b2e1ecbe597a2d46da430f38cb548224070bda316f7e0a955f2212ed978e3d4772f02515222fb660236ceed89519bea4a6756dcf3c0faf8032d174a1077fd6ba96ccf235adbd2066deb39650ec1ce09c6ca4a761f6c017f71ce198d266fc827378cc5a55c687594a9c519c581b4bf7e30e045d94e95fd3e769642e0d728d3eff3e5c0efbc7b2b0340301f0718fe01c8105018ec08f43d3928fd9de8c27dcfbd5dcc68ed136f45f19e4627a5201ebe74f3e17af835ff78dc9119112ab74f08f819f4fe770baf57cfc8ab53e6e386005b6f224e752123dd525acae1087f2cb8bf35f872e2119edcde5a5f15feccae65e7db49738b9ba954d417e17367b549e41e44d3a66b966103d26103775f44a23b6abf8bc7973bcb2bc91d338a4d9220465d120f4b5d2b13af5bf24d4db2cc79aad39bb994eecc6ef918796e68eb6c6c84d4c62607b6879afb8e56ed03a8689f93a2b98324dac1c3ca7dceddbd9273d77cf79f2c745ca389fd81b8574e996d5ef9603a992306f8093b3c0920eb3aba4f266eb2eb075bca6ff16782cc90ac6956837c2d6bae7f8e6041bb41b56f540490304bb2f40202019ceb2638416d62d48056ebc4a1ea917335f32853f152b92130dee8d2cc755614efe9e2dbf4d3e8911f65dba7c8f34bd00b7a5db4b98abb18c27ea128284a2cd2bf3515b92141167517759b60172825d7f504ea6677ea5fbe49da368d736d5a880c457c40afe163edf285c288c6c15aaa4daffda218d5ca7d3783bb15bf17b94dd1c06879946755bd3637d8cf0f8f015fbd84dd53a252af08e10f2595c9a02b2fe110fb22164513a9ad568a766c26d0683b9d67c19cd080ece885312fc9a060c0b5d355610d4d204cca7687ed7f7d973585b7f0279a5f35a726aa8feacd61d8bfe2b99cc19ec2e2e9fe1dcf223555e5c7c696518992f7cd1f31eca0a33fe4c48ce2dd6da413b8553169ecf2eaef1697de0ec20af134e99ded9cc95e3df5627272cfb78f714e327cbc53bfc727a8c1776ad2704bda1d245c099697471f95dea9b67d0ae1539d822a91fa4ccf0650903582e4a05e8e71def2d1cc4572e159bc82d61389cc6d82ef8cedc3322bb7e39219b5f76d55ae18460d311513459399b747d51aadd2ec88132494901e4fc1e3a6b6c7869df8d5aed13583a0441ef1abe49a281499dcf3301687974c8e84d1d862d8922aba19d48e89e83949a52d3b692df8f02f8cf371974ecf1d5200ab44b308ccb88140174de5e4c64255b7deabbd78fd0fc0197a21120b72793023db7d1df53c8408461efdec5fab9d84b02cafeb34fa9f8565080e6251bb926abfc1dc273b3484cae85634e2668b71131f9b3636d4693300ebe311796c79f41c8ea87dd228828504e1659b2f8beab69bbec03800e73b26b39dfd926506b7d416b6b1b79e3fa022313e33f577f0f48aa399a9fe060f5b9f1d7a7d7ea539e6883fa8a895e45cf168d648c7dd64a8b0724efb0e0686a04cad8535f8dd4fc9db872a87d927b368ad91ff0e7019454e2e3d426e11aff90f1fe766c1df8ffcf9e01ce11474996a3b4d59d07bf017b326705a41192ee9c20c3de25e09da5312551e9393a5d79b2b8cc78658778bfa523512c9b192f477a73de475e4729ce174eabfd0b10a5b2f14e12d431245289b1d1a56bb63643316940c64c5e0ab9488bae68630608a38494bc30edff11f2cac6f9e50f8da3b591169eb12ce1ff232e8664f0565982428324a7961123868dea9bbb98565a63eb9d7f47b9f354ab559f329a84a2a0781959b6987bb99d2b0b338f4706c4bef5537f007b3b310e1e3c47091a86b27cdf880c947a76280335bf6b20c18512e1e07bbeb095df5fde0b286cfac5667ab981c78eada7fbbd4c1586a675cafb47c72c15b1a78865b8b9db8b43b6f4e6d1d9201cddd95260ab28e11af092583071c3ca2ed92f555790aee2ee770bcf3b426937fb9b26f8f2a579b8f2ad3afff8555e7e48743a6b8d38bce33bb9da1aad55d1292f6cace016915de42aa2b3d1df732a80ae27b23fb9225ac90625077b4391dbcbc6991a5321647d187ac8f09b073f4711248b20213d8123acacf3c1b262312416e60b005206326d990045e1286aec382e18ec6f29284f88a1fb8aad1e6a27d2ad1393404463f79049513c11e1c578ff509e033800658b4d243560747fa9fdb03ba0683a6429a81c5c7a4e127a3da117d7034542b8cc96bfa665b63a94b188f3cffe6ed358ce575e76fe880016e48ce6120400ffb4dcb248cd9a3a5eee457a76d821884c95670509bb6746a1c95f6e32f1d14677af08f3c9957860021d51e26cd79d0da0febba46cea9c993cce2cefaacab7286d61cba46327a00c821512c517c8f805d95ee7c74bcf667a1dc463fbb8d75b7451493a76f682a7c0f51f90206ff4783380b4e5a78e692d09545f848432f3531627c59d2f047dc2badbb871469dea09dde299ad61f5a3d29f7a9462b8429c44fbc26b64e3f9660b5a9d0b2c08d9a776b9d382fefc80425686707da6e579e2fed54fdbdbdc21d5e9e497ce9275875a838c4909d9ef208bfa50e91418265109014a078ffccf6048f30127052301336896b14776be332d53eb44d4ea8209e3279fcb6b5f649d7d66cfef5e290d9ecd7eefd3585c0059ecd9ce875b1175772e540a39935e6693d80595e015a52446df6439607f82c7986ea95425a08d1d126aa883e088be0ca5bc4f851ae0ed6700c34eaaa7a6d47f0ab90cfb7f77d875ac46e2fc7ab8668da97b646a09cb1eacfc61987de2b3be942b948b5a40ccfb1a2b972b78840eb3511a896529597112a76f8ea0885eb3732847b8cbd97c595061599d43ff8bc984c70fa333de6b4868177efb9d7af181e8b3ea126d2c6820e61c4aa5485cb1c6604ae496df5c0b513814e5179d74d4e1b639e0a74c7661f8d5bd12d61b3e5c5962b8c9dd6b99eab147c36d1b6379d8d18e282c60149d5186b30322ca55bb140f4a95f9a456429f8e2e5fcdb4d0cc4e6d496edb848c538b1276128e62c963302c7a18f1aa960a52d772b7e66f706a83716e8350254b11c1769e1843ad23a9668749ab115a55b04ada3fbdef0cf94c4c7b7c2bd70464fb49c95bea07ce7c9f9a504bde2a3d984e19065f38d21b400b446b997aff0d9cca71fa454a5629ea5b0edb545e7854bd4b862b65635de1350f2b61847f37af5586b8a0a47559e56da00712fa6edcec39f9cc915a9afb258a9f44f5c24f0b97a508765a6d3f376426ba4bf27651eb234144fcb4e1b721dd968e0650d2f8224897987d1228eda46befa0085bdb95a52b0e6f81beb556b17089ee65836d242242f61eb9b2c64f557767adbb59dccce931765b7d7754e56882795c024df34d559374c5084b6edfcf9abcb1bd2840ebcb32abfff7a3af90410ba36cecd6cb67545219ead5be1d28fcc5943f353a4ea79e86eafa53692919c032bd6bca8560b3b67acc51a75380cdf497cd77cf6bd3339b3c94b1d024fa8d509baadc25e19de7fc0d44c1166b148cb823a98cb3b664328c2adfcaa696ffbbdeca066ef7b3d8d3c5705409e12f77463455eeb77cf5d1b83ba4c9d7940374792de2d4ffb67a3e8cf24d874f70823ee1481c228f6ec5638af37bdd8e08c9e5814a6926837a3dd905d852afbcfeef72299519ef0156e4b913c5d952fa6cff8b2b101b093a86e04a477607a9184848752895cd819cfe95824b3cb7f4fdddd357fb2e7246396df5c3f27edc36c055e4a56faba002812ccbcd9c15ef53118c2e0f52ee8e6ea90c0affbca0e14bf53103fc279b21c98560af94377049253e269ca74c7ab4222674f19f365da668472ab54fcd0d81c0adaeb02635ead3d565adb5c456018de619536c11f888ac05b66146aad0b3fbea53fc4a5e01bb29cfe1a4dbd40fd5f3eebb473fbfdc0de1a074987da8c159f1a05648567f0d541f731a119764901c6f24dd237e94ae911c16ae7dbd3e01e3daf32a85ea09d526b84d9e9521f978787e7626080657e4f71fe263e805cac3bc202542d9dcc94148d7c59e5b556e831108224bf7a9f95c03e3c3d5ba4c7948914f36d3e200359a49bf25bfec62840bff96c6415e81ec6d8c00e7d0979b749119a83a0541820514ce27b689fa1dc8162b09f2f4361b332fdd4cd8779214816553c76ca94f649c4cb70dd16978e548eeb93a7389c5c7c78a6efba1532e69684c662a15da6863a126267e58df014f0aeaa97c035ed20d05415ecb0b19a60d63d7530016af5f9e40720eff8986bc3479f8b5154acef65f881b79708d88e954328013106558cafcd94049e335ad0b2ec1d7afd68c33bfbeb61d3cb3a227662299c3208f5a6c9a7ef6abb3c3e6d9a3a0c3260f4925c45e05dd2813070083bd471a0e092e5b4bcfed7f82a48eb77fbb6e3731cd84acd11e16bd4bd92f2f52984c9e0129254854569c2fe9f0dc05a584629461d7a54b28f32116efa6e7c3b329b234118fa0e73739f94ceca68f4c5feacb7b3c379857dcdac5af649a5d24390679a679593386c046db37b5fc1dfa4297e74b79b98cb08144e2d16ed18acd5e397ab0208ecdc1f68f1302d383ee11a71a69e275700a074232f4eb6588755bd6fa6bd16611db3baa0289a6521517cf41844b2a2fff897c58f1ef96bdb8f5d05df155260dc9a8d59de5a0d162107eb53cac1a29e550d1f4d73d8a750388da6c2a45cc605cf94b01906bcd046bad44ccc29ae18ef8e0fd7251604f61588ce269cf796d2c5589b00b3ea48cf9c4912b26c0e24f3beb115f22040cedc97d5a29ce93d77c24f2e59faaa072c30bb6460f75c0b784ee2a99f09f8a3926a4802cb72bc1874319f3e526af29031692c043abad135c83c9cad1f05c0f5c65e0f772cfdececcb99243c4099ce1e80885747fcb7ad4742663631967cbd21090d65ce8ef7b334b264fbf065f05b7731fb27df93c6d200b3a5522dc57ce46c5ab46a2d4077430b8ab7169724a6ed22f323e0a063ba847eca73cbec1f4d32e91e3b30b3dced562461f64a8cb8e09daff1f98c31a8bcf19d920bc5ed72c7dec2538e32da5c4ecd34b3ea943414ae71c682b5a0e8ceb700e09e39ae6ac24b80371692507429c6a729eff76ec7df9b569ff983bb3bad4cf119c6462117683967188661a5777132eb314c36801bad409a97ce20f777da1429d75e0aac036bc4de387e2ff792d61835d6549bdc40c4fa5e8f4174fe98ab2b039bec6381913c39fa1c0864ae9cf53442716af65374e81eb333322d5da35a325c2edd2c79c2eea836140475248dfb88bf68f9c4e866b54a7e2161f90fac1fefd529165cb45e58ca6e41b6d3fb3730282ee26344e5c3f2df7ed31ff617faa2d4e05bc1c2afd8a1ff4e1ad237656b0e21dcba139dffe0ae4fc85873d243020b7f46dfe4c8bff1d35ecf1def1cd52374deba71b468991370388d41f8ab9566d3ddc19ac0055150ed6e9f8ee62fe766f060dfe9d08df0c690203aad9dc44a331d8c6938d46489ef826e9c8f0602477ba5b96127d47c1011de6d00ee5b17cc522af973622d8be3efbff13537357617a890382492cf53c862103f5b28c99e842f8a80221f3b928e907ee0e51e7ab0e04735d06a1e14e4f2fea68bdcf4bb01c0fa3dab6be724087c01750ca1b0f93e31818e5af01e238fb02983615b95d600ddc515f797459636ae8392c9f4ef33fae3f55e47169c2eb37e40007b6a566c0c984d4fe45ce8a63ffd760ed3ebc4a764d0ea054dc935dccf38c019d1541a293bff07fe8ebba62086c0701b977a931d794699e8ad53817c62274e51a7237bc4fb151cb0c94b1e68454782bcdde5a75ce596e3e4ea18a2700835505137e45a9f144278bed3eca197c79f473e6c91a289fcd0a916d7335ce14b60b34ea82156a3b06463d4bf7481c2191e69ada7545f8a023cd1aee9288f1ed25a2e2ed3e6dde9f9ce5886dd1e07b2d26f49014f79e2c01c4e10fef8430ca50d0e87d1162fe5868e7f5071b5c9c4bb727cbb3a14ab70a2630ea230733eac3a9223c6b635a42cbd068b58a9561ea3783b8678babf718e87cd7ff87f415169b3d9d1f9de3fe40b35942540069a71006250554093044048a5c0063858c313434b588f9863121741c3a898ddee2a39e3ff043b311f3a38eb0cffd7ed113c8f2c229ec63d176fccd9b305499fe601fec5a6e5ff4f95994f19c8074622be13048d07ea457579d31a94044004c23bc29f5431b77b0a6542f7dfb217b4758640394801330f46613b0c5af285107aaad72b310aebcefcafea7b3d97a0c8c106e123c54c31c541427ba51b04558f0a6fd4ca7f879a3a0cab5f01ab2c7321d65b75c3bc6fe0ef289b92d306b07cae35db507a02cf69231db514187da23cbffd01ce4ef04549b38838afd8725c6f2fa82f72fb15f7bb857f0b1798f32e0a82b4eca098d29f88526a3359011b8ef1ec39c32025a617bcf9559a4a673a7b765e193e98656da2285c09d7dfc0243ac1c869d95a11035d777795b908c8258c0053c2d37676317a19343f9f0e71f6e387228e97972c9c3c28e344bbb7c4a99a6744a4cd6872581e0da2f639db32e4a6cd5c69921e588028704b29f8dad79d108869eaf6c6bf6f7057191c6cdb03cdfec2ce25c7a4c588c4e8cfe31ab9c1108e2dbceb3bea970b7f175bf40f95648068279f37fc914f3d865deb12ba66cb22cfab204e6d4e32cf70d4861382d46068a47405bea157ce01354de9aa948c3a094fdf7fd314667e867931b9e6aae8441836d52d6b2ad37345db198d4ebefadf3724e5706da41f13276f1e9e96d8008469482cf04ed9ac1fd9636733c5e8349c9d2760f944d7cc0b8ea1e20e0363d5817c111081afa59c6795e2565cc66aa81785c47fb513818ea9e9eb157505a1e85bce947e5bf3d1e91d479ca9dffae5cc2b791e6f8b1f96c172f9f76a6ec6fa5f490b21a3e8a2b79959adda32d40beb3e7f5eef71d4a9fa6eeb56579f1e0f2af8181da83d67c83ee4f3b0ad56e20596cfdad398ca0ebf17372e7e8bebd243caa2b8260837e1f8c6229b5652c895a012f97b9528d74dea807b03f0e021fc9fea9e8b46d7b24a28fd09a39cfe2b847b92e2c0755c30b7d0db599fd10b12f5eeca61db3696692ece3ca07fd8f15eefdf72468a1f7ed71c549fc9f1220bd5ff877afe24d81ee074337d7516c7d1cec972d681a518e4e465860b22d8dbdb4d1d72bf6a2a0613c09e9ef4d5ef5c36bfc7aa5c721983b3ae8613368c5bcbc180bc364961ecd28535cbb828cf772c56d1f7b65632cf1eb475a11387157bc8f8c6de00604e6d2e152ac9a7d46e9c95f39e18b3311c1b7f3ad183b12319e88df159aae464919a3ddc02b749cd02543b6b0f34c69d0f3ad5188878b889f8aebfe041609920acd6922192481ab10172d646cfa750f5cc6983a6920cca760c5b685cab66a6fa3e88e1738109f0697494bef5017cc46acb1d067c7740c5e2388769cea8e86caf8cd014301dbbc86574cc21b28a005c2619baed68b9964f359e0eec57c3ed54493dd7d47a9061ba63725c185c628bff0147750e15cd85c7a0df8aa81fcb6d04c0adf635e1713cb92a00711cd9f84beba904fd8b7b0b3f839ff89f76afbbd7c6e0f6fb490f39398c455fb1350366f8d46d7a7091a47ff8e0880d52a0a60deffea6c596bab085592150f7b522102c141cb2c2d3c056aeba9dcd0445a79af3a5430b0d31c890ba2008c6745e99e780a5213cd147b6de775d6d100e4a161e035096bd3a58fe6be6a5eec08c018a70c38106697377651571b99aed595d80dfee0830da0a78cc91c0c6e56156b8c8b73f6b8cf01d11496ade4870c292be619ab529b082ea976d8ce89bfdcb9d002d4ffa488289318ccc173042d3a64878bcdd94b54fdf11f5675d8e085c972610f6a2ab089dd8d6b3658cbea7cdce0ac4755b26d830c6d3c502b654723595d275eb9e35b26486fff405d153f4082da9688b49698c73fc80ec22fb1366ca23366c34884c69b29507407f656bca18ab9982263cacb9007018646931b0e3dbabfdf80020bf440081e4af5a5f49d89875b91dc6bf57cfb1f240330a66deb6ee9e34cb461ab1993db75c3d32af4aaafce3a8ed43a9474c3fdcbad96bc99b447a4ccb250eeba89e0cea6861180f411653c2e1d6f718ae9d1bb867c176baab9596aceb36fbc55b88a9949d6f443c56f2d7cdf887a0f61693299f18fda3769267efb0fe50fdca7ef1fc95ff0dae67c00365bcee289393f6e5f427caddaa3901fd836f589201120d322b5ccaff535be4406119851b5c638dc82ef12c5254fefc44da36821972241739568d3e56dfbac9fa9a2882a34a279b818bed7159879f0b0308bb372dbbb633c129d57c5b70adeaeb90e07c2b21c9db749f982ebcac1ef6b2458c5e29175a7ff912b2646c245a24f14f1716d267f030b82b838112d6518f4937a1aa5536effef7aff6e76337affeb510fc89b4c24a3e5ab14f28480a47a6571947ac157b783859e6fb5549d59270cd2fcde2090e77ec589402ecc86d260574355071efb90fe076b6191cf30f4246b8b8b12f94ee5c4632d924acd8f44e6a8b602b601b0c6801652cccbf938b0024dab899b495a31a63f3103180f0def82bf298b5daee30ed9c9608a31af0f4e1e15e39b2a1c0e7cf12dde944feced7af2cba6f78f01579907d6b23a27e9817398f4fc971444daa067ba3ac32d60d1c73854cd394ec40a2ddb5c9ac2bb3a2599cefb11bcae1f3cfba331c311fb9a89f2a65d9065be9d017b11ce105fac49dc4d06f88c71714ed85004a5445c135026fe6c0b714221e0af6069b11e2614a94e48dbbf6426d43c43292fc03ddd7fe7244f7a2e80a9991a31e4a7d9b91a3592c7b1eb688968e1b0e6a68833b490e8328d89cf11cd8abea1e97cf9c518a86307e7a0d60cb1dfc2dc102ce26234810de61a2e756f758404b8faf8a7825e516b300b090ea2e009dc5efc03da3a963e15715bd2a7e8bed017002e883103fbf489ff547de5e34a3a88298dc443e88f7763f2c8d6f85384ee5c4a2e4e9284289f1e3c53bc78bd38fdb626540d3612396935ccfd3d3bce0cc705f5d9beed9a1932548f7ced75641e8581ab2278379afd7cef2cb2bc16cdbf0b1e129943043057cde85e624de2989a41cf1e637e12ea3de3b6481468ccec2f782b6ebf57ce5ec3d0876d602a867be48ccac732078bb47b6276b3452405a9cef48672cb9929e6cfe55774201dd46f862e5efb9bede4ce88c52fab5a685365efa61ad9672b7deb152d97dc19cede1f2b3d56a00e1714454c61b8564fbb42fb0252fbaadf16e46ab3c2e14182ae0ed3abaac649e83a2f3e5e71d969eb65feb728d8d357b52a948f09c84f07e1089a35ace490af1e530198b590f55f88fb91319ebc8512ef938ef8111d45d3612913ad4526314189f5f795d0d6bf700140d9ec70ee6b920fae3c8e29aca26f4a14ed1947aaae50368fac5246299efbf9509ff6c45df41c0d138b0ae9a301de4384633db93cfbfc82f448ce4e2d17ed8aeb94540e4bbbbcac340f7be73e5ab5a6b7751de5dd9d12973f3874efd61c376e26a2e94748b3e3bb44540f43ff9731a1e896fd774704448e469bf2698aa73778c5b1b3da9b27acac64dca4b41c4a360dd352cfff6a0fbe49f6ea2a2c79289d6ce0a17b5204136270d338301077c4c2d8a45598a9870daabf18d45b7fb0e4232487070a7b8c13d82acee4837fcfbd5d2467d31187963f8cdd2a8182b319f4079593ca0e2803b3b23bc647be4180bc05b05b8358f885a145f7906851f11ff62e62a9dd4a54fc2dfc6120ec5d4b93a2178e4050298ba50b30b73a6cdbe9ad56d2d3c4d2cab9f9ea504937440971362bac0b8c1b68839d0e5c07e2f3fc8dec8b87e7846d617237989e5e62dae7b16c650f0262985a0e72948d786c95491b38cf4667cf06b9477d620c076ea4ce4313ba5cd29b491af751953a73fb85de9ade8fb61362ef63986df47aa8ca4002998f90f64e6c80cd70f49417c89f90d49ef7d3f74ad10ee18c21e30410eba877b869567955a783f873aed97f845b34f4a8de31a6f316798f1dec500efd2e26f3c9f74458cbec0b48993731ee5d552fef6c24b01a28df5a2b201e27f286b427904888c354679cdb41443f7b169f9fd13c90f740c7d5e437c8000026cd53cd8f3d3fb3222c037f2947d98b4e582caf9f6c4b7e8eaeaeb447037cc15935337b96a2e514fce02874dbf86341175b47597974a5e77b8904f8266e4af0e7d6ed25ce980e9abf0ef6c5cc190824c5537cfa1413b1981a73d722153256d34e4729fe9caa196b72c3f76f4859594f02206fae26477460c223bf7ec9c762b8f79a8f6a911e45c9ee3096f578398dd73219f3478a54e695c7f22f9b37042ad5586c27ce0e49536f804da86e750d6ea7c34d104de8b026cd6003b9ddbc9fe6eb19c7da078aed29172b84e3689dd704b359982cd4c238e570f8a2a024cac1f4deb99308f43e71ede4edbb4ef1bd249bc39c88ff85f9556f6d047278ab84115d3d51fb603457588afc6f8f5c79563c80bb76762f60727b178ba806ed05078428e134f4c49516398e2d53a687b850c46cefed96600d655eb153cc463af5eff041e7fb5b78877764685cbcd8456639652cb9d2e07fc43e01d10510b6cfc747dfe35540ad44691ff23d009c838e2a815984beb884864bfb8a2e72cb1989d29c52f459396335c0896d9983b247603f81fe690519b170d877b6069bb81f27501706531a45ed42106d0121d982c38becb023f99b9ac2f31beadbe8cade0c94cf65a0d3db783b856ad771c8cd1063fc53c212f72310d58078ebd73ba6fcd0f9c0517fd17bfec3ed612115961c3a3a4fec0aa04d3593e3b528614161a8229702f27e41f75339bf71904c0a79e6ce5303cb28e0a8e105058f7e42f5e093fd0a1bd507cfeb33a8ca3b84ae15e971edf1aeb0a20898fc5b51ec82302355f95124e7af64c81b5385b34e1b883f56cda47f62f8555151cbddfb6fc1ec790b201d68a4bd876c3e5573292738b472229bb7bff78d7ba69d42e429f35724988f5aca885e75cf1fdb27e639e1a5ebe1bd013f47152a2c8f0c67a5bfaa7488ec20e919c3c7e2de68fd303a9aed2f75f1b91686627bb127fef62f4b1bc3cf526e5ca8c4baa51f02c310a3f4bff7b78fbd3fb94293107037dc22b0fe5d53891a43557223fa4607ee661698998d3b4d1e4c9f1cfff83136cab849bd67ac1baef3e9f1f47a995676376c406cb5a17cf93cc65b21d80465a5df812a217394733b0a8826884580ad493a83b63aa337bae139faa2c2f54121e714ae3761e385915fc510ce328cb1ece0b4164c0342593474897a5b980df7add53556c1d9525e22378cba752180c21c87f40b3bb53f2282732533c39c1f54319fa820ae16ae17c4a1760cebb9cbcc2acb6729f32c6fe580b847878591588d698402dc0eec6ac6e18524f1819ffb7b313cef88dd862cde9c3a1af0f94085b6177ee2f8837935bdf499e0a1125c29857d14eeb8f2e9528c7c5e58d5d2e96649927c3704161fd02710f09c0b7a1688b3abe1b926e5b4d5f13ed926788df9bc2012e41d42a38cc7acd68ca0454e239b8185e62ef2fef56c054aea0cd97506691109aa5d236b9700a7b485557a68d484d245fb99d40600f78807a46cf6b477292f3d1fbd8f448179f437a61767e4749adff7e0fbea06029dd8c1218c2cb20078dd19728575b79fc886648304e687260591a209c2e4a0d76b3f850a3dab15e07f448ca229b1e1dae3c38e25f5458543069dd6aa80210258814132542a22f5a9a43aaa58afef99da9a1aa927f41b2ecae2428785e66f99305ca0d007c4c0f6299134d467afcc89562a91e32b7b2a52500cf1a1a087f8b20e2b9bedfdb33449ea535be68ad5d18f37a7eec0b97c416fd28d6f853248d1c3f358f63153ca8ee2a9e8408f582d17bf266e2879fb209718c213b3836fbbbb5ad10fd3d506eea00906e21c00abef8d283301897910510895dcbc46b74bc5774c53cfff7a536ab6a3f337a5d510775e6652e42735e86d53455306088dd54acf91501e1dec20fcbc232365cd6b5fb80e2a4e0aeecba55e21d4d6ed25a28139b641f0bdec96aa4c746736c9df5c54d536378fc319f60b78314f02e6ccd234fd56804f88c079be45e64b8f66364a505ee36840353d5296864ef720cf4fc56dfd2afb4bd29bc8bb51c065ada3f07c19e07103b848ea50f7748c512b1b0477c75a5bc6dfea27f858c7b6058f99945540342f1c4b7c50a4bf682cbd8360cfcb3acaf475a1af45892a7bb3bb91a3855ac99be1590425a8a71f563039b6e20be8c62145c200a7fd6f92cd01e0f9eb0a70b9979fa16c2133fef522461f950eaf51d3b06800664ac826956a4b4ed2ae2df0075272caf57ffafffa3213e7f8295ce7b12335cad072f4271d76d020b667a371aaf215c69e417b0093f952d924382bc451b7f4cef42c1d0e4b8c4ffa32ced964e1c60ef63c714bdd5ecd772e24e18c497a82a1e33010110a43cc3c99fb9c3e3b740b7061bccbc4b2f4f390320b57289e31a26b3526fbd9e569bd667c117ba58155ee23ccad655ef42587ba97365fc08e024339eb4b41e85734c1a6ef592c8e60c3f70e260c3f7764354a42391b0bc5c20759743fee000d83ad0644057901a4b4f54bd7ddcb9c8df12fa99f1c9889bdf67091af9c19ba59841ff276d6d0b6db199099f64a95e7af80f969feaaf7542c99d87a3f2270a5dfb1baa5c62149ede8d8d19ecb76697217ce696475b0306ed7b656bec06c620cc783490909a0ca89f866e14ea7c6d49e28a4286264ccee6f031ad794f63564d53f517a23399272131b7f0febedbbafad6c3d034eb1fb105e1ef36d9debca13f73ce933807a04e5093c3f4d555073e3f79d4da328446f8dc76fc710453aba9ed6b13a67481aec035aec3acd8316bc90bde450717c3bb71a1b85c923e2dadcaa3133e9861aa5b63763a1f714bd1a2ab8416fab1449eed86e769189d87d500c87d261062e5a7487c78dcbf4708d6a6532f1d05db9ed804e08dd439e56fce9a4e580214a455d436b86385f928ce3fd563b8d687e7e2f9af49f9b87f331eee3536ab4a73a1e06023ada2b53b0c755c275012bb1e0d2c95b7863350799deb7760d722577ad1a6c9307c5797494c6790a86662cfad69d8a3c09fbb2de9494c82365c6f8df59a51a7c86c12339b79a5f691745ad248f6e110321e988bdc2614596ca2242b68f5fa479025757c66fa81313579171f62b671c9041af6f6638f2c429fa2bbf91eabfbbbec93859639797569f0fdbda0c3919e5ae1b79a902b5aded88d7d690edde82f01793de5de7a90be65f7a1db4061645a75f488ce4ea07fa389a773aa1ca86b95cd3aae3a9a4d89659af9680809ab919fac7a1b3ab0854e2c65e76f4ace8a008617502e45855ba62a2a638ead76fee0f32cdef953d2827ca552e7d908b1f6423283628d6560175f526293c0d2a047736069f0a12a8e3c9f59f3e67bf6765a85f86a8a600295d4a1a15b36c95897c3d343fead2b0d140bd7b3ed53fbbb2fe2258b9a18f60e3b430e9c6fea16cf9c966eeb0d73c03e8483492e7c983af7a212dfd742413cde8cf70a7ee3aed29db07655fb76ae59b38bc871a90fbbf9190d93026e6323bdbcd08a69afca923bfa5844c89f3ad677b501112953e93f52a027609db1d4af7d25c46eebb383410d3f8bc39a84d421dda747e07d9f2d31e8d8252ec0043674415b0fc6100670b0053e2235b3c01d18855ef8d8444bad99050d31870845809a546c6799d8e378c19b6710e5a68bb39f25a7b39ec832960c2e03eba172d46d3da6d63cc5d84feb712aa817dc632aa4905d8baf807b4fa4ab6cd34c989a9d9bacf1741bb78b03bde80f8b9c5a0e21f0937e85e565e7c664ac32269eb9d644c90650a12e0be2a31d7040f318b8e552b48d81986255e5b0556e0b235efb409ba42a2eae9c2c9d9246101a9707374c8aeb9d74cab07ff96b5cef66fb726f71f9f6685f6995c65933bf2735f51d61e7170701eab470c2d380f689ecdaf75e9269b42e232cb16bb53f13847f73a3414fb99a67f761be4425a8e7a496ca2ea5ade2209246c7f8afb72c8ce226cdc7117d434d0e4edeac7c6dd0e01c60e8113c095afe627954bf5608de23b186225fed1504f82007859dc428aad2594b0a96264697d02cfd5eedf39d30369941f8cb2d19418ac9840571ac2c4f8d773df9676b532ee6031bcbed5830799d4952bc3c279188088d6d7d8ca1c534597b3aaeae6cd694474e2cc09dde42cb64bd2cd43be82e433ce25132e3143040c5564ba3a111472ad2211f4ac6f7354785af6062678136e593864e46d81eba37ff1442399743269a6fb11fb5c255b7909621f2302e9a49e40d380f7e509d7dc4b9200d09d5be700d29016bba8f660f794c4af066e6f3a90d7bfe3aaf7a92b791f1ff9e4081bc8831f8641a92e2267563f68399e58374253f141a4546cdbb1d3589763d5b0a4670bc68ec3c7904873056d0689d94fb4526d43ef974260ad0d458da6a670e8784e316e057cfff05e3dfcf03df8df792c485cba1f749f01b924d509a25f64fd9db3e4a19ad8b9434445899df0112b62daf290f6dbc7ce2aad7e88be65dbc8cf3ac5e6593e045688f81027b7d721e4e92e8d7bde1d1308b917ae1a74aecef1fba53229c617cded04feddc8a85c96b8a9c927134263695ab000cefa6a79d95310a2250de1faabfe4cdd3b61939b3b323dcaacc4a4142aa07237ddf49c9baa9247c114ef1808273f96762a5f7250a4d21e142e9a0699a0255c668e09c68f40924f2d104cb80fa0a87e5a4766296623a2e29235a2718aec8c45fc9f604e1756d140659b203b5d4e5835e06f52a47f0c3bdf91d00cd3e62b8e371a86512d0109cca570f0044e57e0447cceecca7d64ed9089a9af6fef37237efa6bb6fab97a3d91fdb11f355fabdf001b8f57fb4db4156ca3689004dfc6c19c2776aacc1c3f6df39ec9b6a263dbf096cee54f8a56f4b0ba90aee56ee1b7523134ba88e8c0173d5c679c287d65115e1384f875abebae03e22f412b7dfa29e767acd0e66e950a6c6d001ffc7c00eba7540eb8e14d9a1309393a08fe3eafaf90266fdc79c7aa7b68bcbd551d39fd08abd635bfeb5b7bca12061e765e40948adefe268fb68dd7be66df185654885b2e0ee745cf913d2fc16c15f1112532c5e252f2da5214d7bb13ecd601227040153a7251d8fb87500f7257229733338c8cd2303a359a2fe1116e6ee6a9c3d2a9dde0663a006b793a44151313ce0acf9d8752e9217b9a5d351f3b30b6424267d49d01a135802b3b6ad8439a44fb0ba3efae960cca573d4b49be6f5c1d018f89b6a63de3cf99581fffc4cfa42c26dbb0a35fd890bf43861b86d63513ce3d4f974fa7c7ce261f619166530adddddb2b1f238fcb82a7a235610f6a9784f12f4ec2ad902500057962fddb85ba54d43e5bfae1fdb7a4167a1e4b22d8606e0ccd10ecebb08793f76f38c191607d2f72bb91c8d76d57cc6582e1f82e867e3afd8f40996de45b272c8f6602f90a94f328a5424b6241ea9670bd2e8cfe7ad52dd430e854a0d2db23a085ec20e4b2b67edbb1b78a3b7a4886bbc84b759f800ba7874b59a90c9efae8c5c64a90faefc652f34115b9df353e620f0d9a86276f57124db39a5dfff81213a2db3bec16e1ec98c63acea5c0263b539ccd2061dbd313ba48b1dfaaa25fa7b72f4dfd987975c2f010e5d221f79b06a034331fb743eb87ffa5910fd243a574e48a40f5f462a6e0aaa0726105f8f566d14d3f933dd2680f0d555fe0a37a078856f3941ebf810883703cdc804fba484d6536284d8cdb00bb6d808d5f27bf8ba7c654042194748c99d5f05a5c523f8cbff77d0bfe424ec6d95a5302b62b51ed772423af5681ee86ce7d46f4c36dbca5539791cc9f49ca66929664c97beb9390a2bd7d76f2fcc5c40b5eb2eedb6bb766217fb13f8d5d10f74a048969e80a193238e9a6832fb2838b7a8c15a6e0d9e0ed2c5eb9002d9d8143d2b2c4ef1991dac90a6ab054d705fa474c684dea747840adf52c30b829f16d1ca106682d6d2c2fc4231fda654a97cd61b1339350c6bd206288af5bb86b9fa327192c033ad36bf8a3f980b7518be3964a3da9f95671bba0bfd773981beed4b81aa753b30554c151ad98488b185a360b008657e18604664f0580688e6eed8a149c6e7c398e1293446333741c09deb4259369e9c84f6748406e3c936102cfd6a2a6a4eb0e61d8bab74b8124d908714461a08998e4c434af4680b67d234b88f69a8516f15b971c4c0fd0b9116fb5454bf333d042a90d7c3f1a1ea07579389fe871f4193961f5ac98ad6332c6d72d725dee9dd9510b9965f337b06a97ec74345716f5b63dfec580f3be5524b676af865fb80bb1e5f8127811ff91883e54b34d35e5cc0dfdf9e6c3aaba49327c9bc36e9aea2e49f03371ce85d97f01bccea5a45a09db34c117a2644264a196823a22ab0f2e7345e2446ed49dfbd11203f860e0aa5ed77c785b2a3d58c15f7dc2d37676ff90930822d55d9fcbd2abff1b11768bf4b6eaf3e727334e20de8a1fe2032c5e48d67516ad254194d0c9438e2d1360f78e236f60d7a9cba90461be48457c807913f331af891f8e5b19f94b686a01eaa6c085bfef45fa040f058f8e9414326518868e5667d2da3822b248bcb309cfd6932945947e39b3369e2a0dabb67488fc028dd7f1959ad69b4ca54d866f047bb571a164c325a2ba8e1657cd605157632c3e718c3be5e58270d810b32cd4b73ed76c459e938ffb4146e0609df4292119b35adc2b587843974b179733196c5a08e4eb33294580983b1276eaeca1f89f7e4268ffbac3f339fb9ba09e3571ffc10eccbd85d77d7c08cd701c66074851b41a58c93c2327802e6cea3bcf0d071cbf02da3bc4b08048b1856c3e90ef736fb673bc8025c67735006f838122c4e9d8a6f658496908f7f33b02ca98235a1131ddd236b33ed028ef6f46c95e8780733db45f0391a4e30c57c24584b142920853845194dcc9860b83c620b03ac130688e95a4db8690b157f849d1aaf3d9e9bc4a74483c2aa63fc430121ae997c4eb727ed9848cba074fbb42c77a979dc2a8fca55ccd8aa7e7e2ee6420e5077c37cef9146458a5ab9dcab8bae4bee8e153ea2a7a83aa228fee9d60f086abd5a2fb5e97b7412bc96e4a9adb191f65380473f608e04acfb259ba1085467eee5f237b1ea938945edb980723f98f06c9060e0f80866cca34c59a4e04760855afdac3365a5f7d3fa58ca419388aa05333f9f0a307cd1699ad4f7e09d77d1185d8dbbd339fbcf13176282ab1cb36f9998b1ce0aacd9628948e7f818895c238cc57490f93a5b4d57f5f3948f38dcdad79d1cfd991712732b62934ea7516baaede8cfb8afffcd437f4fb0373e3068ba1475866bdb614a42cb98e3a388401503aec76ce32401ab619680ed6060f9d35817ed11b690079f05846029d04dc011ce41cfc06f0eb2471c0517de60f0c24e039e026e85895e5d465a26cfd3152547c6f49f8d3816f46e8cd3dce28d5fffff23c1211b51bbf16e859e0cc21b59988102e8c8d903cdabf703f771bda75ff112b9d41f069933082aae3ea6d274f53f014c01da87baa49e9d5778fe56de047cf2184ade1e36a88faf7b033de17ac7e9d3ae146ede270c6fc62a063cd2885a5fbe5c27ca7c34677cfb350a7c305852f01bc3915843443a70a3fd64a6e1ae941f5c5e569b9a189261903465be42820ec183ca7795b98c9da6e5ca3fed5aa2676dee28bdba28978d65cf4a93c56367b9029face31d1cc2e999835cfdab8dbd282208159f81cf4ae8f4e22efe98d6cc852f3c531de5679e7ea109820ca17104d9921196d0f74567a819b222db3cd85bad41f2419d1a492e08b780c9c42bdc2da2a80ac77878863296ae11db6e9113f99adca703dbe6ddc7abd108ad9baa4be0541c5eadc6423b26ae75a33b9bfc0e7efac36a9043165c58bc7dcb55d1cbc271c8e3177d6d7b74745ac1d77519127f3f670c796135c41bef38f1177852072c9344068a8dc55b773f11f6e0c452c374ea8c42cfbd3cf4f21b12d9a6b80fca64104e3e214c38c0fe44024e795c8daafd07accc97e26e2ebf4f5ad075a248e246cff102d7094eac467f48ffa64e8061af45e42c3fd3c0db5bf45ca36d5930a7d1bcf134ea13800c11cbdd6508bc99e214551bc68af26192fdffaf95e84e580dfde295641a4f6f762899c8157f21b95578daf321a0a7c4e0a22c2ece3137dd91dd8f9fe411d6efa3d15eb89ccbf89160f5b7d6fb6145d9cad7b0b60ffe72a67aee1e204e37ab284d46eabbbea0ebbe215d72de9626229e71cd6ed2323b07fab7f0e9f44fb00182ab717a1264a2ed095afccd479d10b0b6e8bc27ea424bd7a52fe0b1c34a5bf10577f84c7f517e1eb6348c73b1c62409abf51446a0fc651c68a0f8995427112262e44f3e16ca5cadeab5467556c3ba30dcc509a643b1135e5d4582296436da7477790da5f7b5777e8a66f0bb59fceedb195d493156a5785e7e7f27774caa7a60214343e23e5b76796752252e8dd4d2861089114b983e342bea61034a4560701daceecae6fe187e226c7a0e325a4e4d489a5d82daa3643b713b318c81f0ca1c79524778a492149e6a3cdb26867a0cab0b8e91a1f84da5d316aace861f9ffb0003a81d23158271d7c63edab8720851f4422fa85d0d0511a7f42e5ba1f6c251496752f82c8deb3b92b99339f01236e58c53d3a2413f01ebc5b8929c033919e36607f6eab462e089eaf8c8e84ad9441727c984abd1a4f2504632208089f0ed561a97df1ce205b593184fa8c481050d8989a72a2816346f0d8f64be56fcbdd7ca41388335f9a1c5487381e465cda1f386bc649a459de1f3e2cd9da59dab01ec04d0e432f49c6a2e9bf646de97feefe5e37a2dc5242c26c89a95bc6f4fc2d2a56bb40396c9c2db383ea1030bc2a081c79edac84ff06d1ceadf51ea219a89cdd9a4b488b045a3df9f8bc0fb52252743aa23b687b55ee66a41df0aa8b98ad94f9e573e05146946cf760683d46bca5848b30aa91d9a9c6a7b54c455e961ad1417ce0d4b9a84b2e2fa9252928c3cd98fb6abf8b16a40524697284cd81ac696b6f1ea2b221dba181064ebe1dac76a2ec3c3e45c51e93d7f58aec7167decde76c61e97c0d5ee3bc3379b2592adbb2334f8733a96fe006a8bc4d229fb3bf231533a7c6f8402c11168626408fdc695186c12eaeef7838d7559ee3591ed3067bca68fce6b1cb94f2bae1ac56bfc1a6d97f9ca7bd7f419bc6fec5f6e8c47af71fd9a8841cf0579e88faad68ac5ea3f199faa8df7e6091cb08c83801e534167d47c1409d528e2caf545163c5de729d404d12a547c7154747f33596e752fb375b88ff1963813aa175e07d155ace8adb9199df0790911f1868867943bac4e1456638aa3ff9a4579521eee5224540ec5d56836db15fffa34a8a814b50f0444f7d369f4b0976851ec7bbdfb2e64227bf5bd38705e09974a4fc0834fe11f43089283c8c58510563bbeeac171ffeefc289730dde7ef4940b7aa69d57beae7775e13bf706d5a8c7d34e6a10a4b98f66f9d1e279eb41cc4dcad06378b199da153b43bd0a8dc193124e0a1065727f9f97174cf1a63669a3b5980d8e09159e190c3bee5b7511fdefcdad0e4cb35e79a646f6166eefdc39ca47655d6c3ba0ea3e5b366b8675316680e2938569cf21c7948cbbde512f871ef3146e5927f34b2812deac8339ee7ed892eead2be8f2fd9ef70e70435eabe4d0d69cfa1346cb0c44ec7fd580b948e8fd2bd8766c81993eb09718cd69bd59aa06351200f80d4cc56a277ec834534aed37ea1764867d64bee4346abc1eece290873ffc7db4a5bacdae4421dad62d6c72b9d3a10e754e29b276a5e420f3f31b177be98058aa388a03788a71f3b2f7bd9901d364989dbb8f2809a312e78cdd9ab51be765546cd782a3c75efde5ce20a8fd6556f2e571a2dfa82e15ab2c5f4c97c5b9e90a760f4611bbb706497ba837842dffeffbc0f4ade4cc5adcb5f8e8bc47f7f3412b5afe56c2d29d2518fa338d27c4de79f04c1c84d77ffc939db955af20c5f65a11b980cf548355b8311afde44da18b49914e556cc0faaf3a557c6122ad1e33cf8f22d2265f8c4c28925bf48818948a23bc275fbdbb7764699931631edabc39211f4b16bf57f9f3d9551734f62df954719aee868143a45609bd89c02ff7949faa663073b46a3b65d37d87a5866e3e8ef5f919ffb4bd055f7d5aaa19bf79908802bb4378828cabb469d60d6fc076502b3a641fa4f3b67674874165776d234fef18f5eb86d7902a2d46e06a22ba37d97b1876e9aa828c753da68f264e600f6ba81fd76c3abd6b0d95b371212656b1a5eea1b014640d82bd053c5e487243d519c6a3ef45bf5022cb32635700ed6e3d48d02a658335f84fa11e8be2711f58363e2d0d5e73808466f68403e2d755c0e9cb2656c6004691e8da77c623d469b0b01bcd39954115f358f1ef3df15561fabe64a32bca2388eec956a95d5be603d19efc9a61a992772f71a9c9cdd03eb876dc7f0b1dc908b763af6602f12e709499b78049461d8df3df9a7e17ee7280b6b31c0d471fda43780a2de8383bf5d630310d1ca9e3072ac5b0779f849fbdddba587318b5fd1929678ac30bff36c7877fb61a8476756fee6b7f4d0e998c8c0fe187f53023126f3ab1a8d89770421f455fdc0c9ccaa13e5d16a8b2a33cdd08ad462a0fe87b89725448d6d9649cec1b1f92b6a2e8896720ea1f99bcbd1c299b1d790d4845493771dab51dab70d8dcb8f1379328f407c8775e28046d7102e2525b9dfd63350bd1c559ee21e2cd8dd874bd046134381563a1cae8eef0fa2bf08665b26bc940a69d56dbbc0929b40a5633ccbd7b24857807b4951ec37f0b6f4326ffe9a744d0f5424ad96907e511b805e1924bb6de960e257f29014672c3e2b0136f6ec056b7d7aecd84b505a92e91fab10c39c28a2c466422faec22e98aadf8499fa2d621a2931154ad1acdb07822d586e57a3b1125d8f006c2f7fe17d3a285788cbe2c3ecd53ba643c19ba7b719ab67daea33ffd88ea654cb6d5248d2255adb03f13971465d377c139fc742d31b390687af8d7e9a5f2ec7a6af25aba01a966035217ed9f74bf3619aa9029d0693069f3954cc6073bd6871304ba8ed481699017bd1065c0d30ed09c5de522cc4f567e701ab8d48d1c4e4801cda585d79a0b7edde6dc185c948190caf7883062967637d1e829210f44a950f7043a26a7de9e81631b21f190f0c142c7b452356d86f172c53c5d75841ab1c784841136a45b70b545eadffcd3524a81c2523547b2789ede6b7eba8da52ad4ebb10d1643e7f8b7f1417d24db345f9c350260c0db0459c12444c86b07d0b29a36e6caab62f49bc58876fdac4c1b3bd297814358a8bfffd6fc859f75ddaa2e4d3e906ee0641cf24880707c76fa234071793f508960fcafd2e521991b5c417c3ed339561dda334accede9808a93dcc9cc0029746b94a7949e10de0c14b7a4fb0f5b3437e26e7223d55cc489d4c03bff9b40c87dc045e8f1538f4c47f80322043f7d0087268ce092f94bd65f83512339bcd458d3f256ac628390effdbe5e40e91b607f5dd73f33aa164061d226cb77df8e78679c6746d105ea776cb2bbf829fbffab5e218ef88aa56c201086a48864326f464e8806be49c1424e464229ab18b3ebf7b95f1115df4b4b82f5a43eced8c5cca13340c58aecdb2644a77a68148c620a147cea2d14bab805980989a16a0943b6e2b1385ee6ca7877fee607af371f25ea0eef11134ea7fa3fede9ba2bbd8fe1d44bace101bb70db330ecd2b5fb6fa5ea5e5b50767cbf3c9380417bfb7ad335de651f27d23dbb6f5eb77b375893a68d384e3d435bb819688bf7d0c96dadf78b0e3f328d4bb579861f864ab115425ed0a1a7f5b30f8b76663aa8147a330b14ca82a7e2a91656f5da580be75f2992efd4f7ed5192d5deee31c3a01e9335401f6c593f4577b5278c9a56a092ddfda67e979ae9caa636d180887363e9795893f816cbfb424471882a1c5ff95d541384f312acf7436cce43e22414e3d52a639f082622f0b63446cf1f07f514ada04e265a904f499490957649cc3d00e4422b83f9c7b3e58fdd696ee58a233555b364edfa5690efda9c77b63150d8faef3596a42daf06c9d1af818af495d95df90fbfd539cac079181209ab007a52b3e45a4d3563547796dedf01d939cb3a8342fe28e31307e2f5b69614f7f660306a493e44e0582b9af904c42702faf835c95adb858fa6837e06801ebb8ef6a553da1d5e986f6280310ea53f63ff694e4b91c568e2adb56e5b6171fc6970bf304e84821e88aeb4965aabdae3ac9ccf9e0aa6d79cba6a870834561de3be4a63619a8ead1e29580835fe84e2fbe71bb2ffd595e39707dc6c5811274e380645812bbd8720b908c28c4ac6612bf4b03de3c4360f69f4447de04ecf8c8f25a9473c7d2b7a91f54a04de4101fc3688e81b2c09c1a07504e904b7f3e4ee31cd4af1bfc5f29c92b5d8891ff25dfe89700ed3ce94239d12c9aa74457438d3c0481727ab08edbff1d34e30188017c627187b1d209090de05c78ed8e8107b2a5c6d7c34c8ea712a5dbf8d13e51629a71f4e8ee3881caa8f07ba7bba3a2f67abd06b65e85564e7a19fee4130e9223201da9ddf60348960e87cfa1e591f826630facd0bbf12b40bf41ec0b45bc3ad648410c970b0d7453181e8d1398b6c87f139cd5ef7d880b667a7b4c63ff08e11c5f79240e76ae4665608f2662d39e397892f90daebb53b3c968b027a724666efc7bf643165d9bbeaaa35ccb5fa5e8756820772ee6905527721099ebc7a80c361f0f274f0b15267220832ccaa614948aa0102440a3ba4e582de063d593de869f122f6a74d53d83900486c085cdabd51a31d5ffa715ee6f1c8f0db88820b002eecb512e7a2cd0d426ee7fa98ccd1a9f5dbd5d660e9df07340a0c14e1cc19467626f1dfd07da128e9a2c194f4c21b8ea7edd61bae2cddef8c14ae9ead14b62401ac629a1a487a66c0590f5d9c1da2c294caec27de3b2d6b3c76f027753c100567dbaa73ffd2f9ec27a182c2c813fc726b99a480480736cdd8873b5e8234fb320683251ba5a7528a3f733410fe7587ddd5e9609c2b4199e625df3591f5222f31d8eda9b54c25c89c4206e774c85a8fb2f797539645354a081ca1a61e90a848a6696779921d8b178de93cd1bc3690b7595a46a6dd87753a0de804d30a27f7f542eab9394260a018e51ade0ec5914ed5933fff98a7ef1456f926490e6f8d7a3e98a35412e8a2908916b5d2cb612bd3080e92c44e80f6116f79f07993c61cd570b095be047c4f1786b4f2461083dd71abe42c955e9ca103420b247cd13e8cbd9cd570f30bdd12fb5b8d49c9802023b640f2f174c8af0fd751da11dec7db58481d99b25a9d944e2ec80ca462a3ede613ea133f2a0b63fa71bbe1118704f1bb2300b6e98dcd71acc04a5478b16a9fcb5a7ba96b44acb48912547f9a674ff2cf617a27e0aebcc7745e9382e1023a7123239ffa84662d34f1c5e3c1a80fe49847bcbac89feb62f57e67326cea72478568c11795790d5e12d2f21423deafccd3481a4e00686b97b4d14fb0163a52cb09db4e1d225637838ab3788f5f5900078f5b86943eb8d4c6bbb77582fcb7f37faca07d8849c12708a04f27d2a1545f3ed7bb7eeb96a91374391f4c52597f55900db56b7d348ffbff0edebe366b1467b87d99eb3c60e89b0ac22cf0529eef8aadf3c4a6846ea35dc4b9b2c0d2b97707aa86603f4d2bf1247079762140c68396bd43080e9fc973cfa9933fefafad06c49830034a46a2754d2ed4701aa959c5669683354b462fb7811155661387397a152cda116f9ddc9868b7d51c376bcf14e9640729f4beb88b91716bb18676055a584eb2bf1e698ca2aceccaeb8abc511dfc67d853d8cd871fa08a5f1e3004abf544dcad4ab4492dffdfa211544011fc4388578d959a344366fd6e47722c6520aeb126705675d658f97688436eef5e3fdeb846c59758843fd5da4dd452727e1c94b21854a8bfd99dce784546c55c02854320cfa6a35a037f33130cfe986e44ab7725d919e44c268d4394b86cb0e33f2187f6492ac895bcfcc4c46c2d3bba0766a44e584a65e531e9f95ecfa86c862227c442ae1fba44014214e8deaa9f5271970acc48c6dd46f235128eeff1a449c69912f308b0635bcd0e02a262c5bf6c55e8345059f686e774f598b6686800c91996273bb510d75049996a0b9e9391d973a9e1dba74d4de0de480b0ee9bf59b715fe7023dac31adafe8c5424e5e4e29bb879c52b4c4fb9258972bf77b9c970f02f5709e21bed4e80aad4f69fd83ec1a504de7e74239abd869ae11fa6bf0db3e711f567c61c5d5ea9d35a17fb0d590a8788faee97d0a21f490d5d25d96b98ba4dbf8302e508bd4fd239ad59a712c9971739a6062f44a8f4fe3657de4600c2ff9cc858472c2217f35af2bf95432ae2e712c271620db6a3d665d00e9435b27036f8342c8971edc421e7d21927407335bb58364f52c98cd6522ac579cd5b7f28086fffc520338f6357e9668a1a4bef128a9f5009066eb1a92646ee3199c9c5cfb84ac1cbdfcfffb7ba41fcbe0843ece406498f5109ac3a70232ebcdd417ffaf94071338ff0ba3dc2d146dc44fb9677549f3fe196fc615c1cfc31ef439bb65479a84fbc56a411d7c146a1fe20911b2969543e68846dd6e1f98768b3be511f53bc5aca3f9805efd068e99b3fc3aa74d5e7c079689d3fc8bae3314e4c50b517b50a9143796ed52c769aa4aca33babfc2b5c49fde03c27060936f14a22c055d09e7190a556fb3ec26543cdb4af4b34827d4020008382a516693d7e8eddcff2fc9143c0120eb1b70946584b81c8de6378eb5ceac490f7d3c02c8b3e357fa307a55f91acacd8a160e42e7571fbf28ba4e1eb3f9ea23052a3943fa72f4273ff7d0353e5cdddbf8c20e845e079887ba8899736e5a5b2ade321963a497fe60df41d118b843f67a35afd8d3ecd68d8a1675577d1d3ab44d81ebc260bd3d199b826df8b416150b97ed84aea21e75bca142d569ca62721301d61d2a6559171dbf3c1f8c45d7f3c5f4983b4f43448cd79756cebd12547036c91f6dd45ee5a9d153e5d6e0a3a33f95d61d8d265291b57d981de35003148b350a4fb91462cfa88b05e084d693f4aa9c95e3cf478cc9b93e19cf9cb1cfa8a3d121a2fd462e3d167247d9ddd2cbb9626117b9a3357ed9c9039e9f69663f32f171453670b0dc052c1fa363b80afb854816d3a7ddf9ae565e34dbef2b7b0ff384868034ed3958fea00cbc4a75b2e78a5bacab36833adb23c4f2abd2cf09c0c38d650e815b1348a57d2bd69cfa17544c57fa733a8140546e8fc2de2d599d1a66018e08c2e602943747134eeb6562685b45c131461b22e3897182ba51b6b83861bdfee5c34032909ae1f8512f8f562e3d1f22258a8f0fe2344b2a026ff88e20212ab1396cf2a693c24b6e1af99db4b53814c392593247ac44528f7c173b3224ac251cf753ac3428f5d41152de8a8135410e13e97b32aea2f56a731ebaaadd89533152d2f32367040cbabf41e644d85d744b5b568c11f99f8a690525321f66f78811adbbca4dfa374163fafab3bdec2c97c1b0d793e08c82a612fd2b78efaafc83528218502483763909d02df8020d4e7a0035884d7b9c697a4c25494abc45ae10eebcbbdbb8db5e94925f33a8ac336888b373302ca92d194e5b864a55ee48c0c117e8be348e3168209583b862b5182684c6da102ace44c16d71c2a37a36e769b498144cba4f7a413b900795471054c3f8e80353141616dfe64000341620ac823df712f25883149f922fb330136ce92fb0a75e633b07c39f0e73014283de8612b1d26ba4c0ae51c54b479f64e59ab4277ce74c1116c2cf99f4a086a95958f72951bdcbf58e6a7d369ba03f825c4b233df907df98a0cb4ea55e77f57f107201f15deeff1a4a44c74841463a5ce98806e01094eabb08caa417c6278f73823f8581de2d3fe32c532e05c55d1a1f247a32716f93b42e1b4df243d90c947de4afc6b29056f4f369ae613618a60052d2d230361a1c0f536ce399e0363db167d3817bfff52ab02ee63bdeaa58f6ead30259ec69fea79a4e5df706cc47e34d91a7e84e22f3446220478ab1a92e71be79b61598e6b1ef7e005d53c90a890fa5e15f6d0ac54b6e060bbe4d42bad1981a8ed5e29d0dedff582264fcbc7ecca392e9a7447dcec02ea75478f3d4ced3079eb63a663afe358bca455572772e8c4071aca0c6aa655842efe17d34ac59d06ec2d33ae284efc3445c79517b3bdb7e81f4b0034f1ac550e13b59582438aaa5912b2441f2d5c17abb192a5fd08ef51ae45776bb418d4e71f1283c5bcd05cd469bc819327f25e473a260cb7e73b1722f71c80c89707046fc06c010cd55cbf2fabfd454bbc0abddd4b302f2aa143cbf967fbd60cba0be0cb5222828e4ef16e09f666124c56266a12bd556fc10fb379b263ec76a787aa905ec8d836c78c923deeee46d78553c07b5356b6e9ae2447fda7ef7fe0359bb6ffff88f544bd601c8db6f2f042eadf6d8b82c708061159e6a114591bc64cf5d35b3a2be5e73ff2424ae02d9ac599728ba4b5fb8ad7ab6ea24c0ad071200ba2745411753ba3f54fdbe8b866964a81449a82ac019a06a0d96f6c29462e0c3ad9e116970c0496563bb49c11532fb5e2329a5bac8bc3a0ea1f8839f937a916ef57ea1ad8ccc28cb7ae9e535325b06fb96b68d7d337ab16eddf2530ee85856164db803bde5f973f5f0189fe3b034a2c084e41207cc4857be2701d037661ed1ba5832c912e33e5a7e81ecbe5713aa63210ccca4bbc71bb41ce1ebfaee38a8bc9e244f2735b2c8845b02673348ce39e684fad02f18d40b413898b042588cb7a18503bc86d584c6f377160431ae95172f920eae966e6fcf348df7b6ac03d0aebac2b7ab26fa4bf89059a6eaed67309f44de295b082e60a14ddc4fa19e70620319fd14620066bebdd1de16d7ae9cb2f28b65bac293d4c5781b0285f763eeefc5cb66088ccf0b0230c8a09f806ed70fd486fec855e26edd8085a051d0df27d3f21d0deced19ab5982aecb154c8e508a75594e6d4229396f8e7e638f2ecd5d9e102db8d8058dd0b7c27963593bfeb5106d1781489e9fa57e2c28ac1a3d4ecdf97d579a90d6dbfbd4a19cf7207dff59d7dc6c6f558686f6254a31f2915ed983173e8a5c12b0be4f53ea563695cf8f00bc904c694c8d11cb0a34b204419cb601ef055d41b5476bdf8f6aef850e42c2d766209dd21462f920ca263bc9c045b0db222add7623b3075bc6d3fb0f9c91198aa97e435126b512a17692360408121b918f72601287d5a6693889f2c6956a207ff85720547948b8866f33563fdc5ed5c6314f410c9cd56e0c852319d0f093e094af6e46e2e298bbd553853b9cec76298ef6435a540520b63f1737a33219ea8519fd4dbe9837efe78396e667091834d2fec1bce732c9f1aa25b582ebc3f22968a3fbd9ec7af28aa5c49ef62ff263619f1a1550696da171146b3d64da613af5d6304e9904e31a70eca5dd07ca136169e3ec21b46c853b466918eb63e140df6e668f3b18cb875f3e056feebee542e30aa554b4ea3911c4381867855743574efaeb57a8e49f3d0a5eeda0c86e8718fb184cb26d0959ca8e70866fc169902701abba42fc67432f324b11a25db64a04fd0c45c42248d54806ca07b5c944270131ab1943ceed3b3b5c9ed8697af96bc226b5ccb993d1703b710041089c093ce73a46005724e4c830a70ac2b397968b9fe5a64f0a75a36184041f47a2facc399d36d89501b1e56c7005b9513011330cc14170f5ea6d074ef90c287abbe91070b2efc19f45db8bf8c96d8dd80d1f7b4b5ca72c69323307d9c3f3015752046eda969c684aa6e5e9727a21fc2afaa761f7d383d53bdbd51c2ed36ea085401dc220384f74204fd441c9d8789385a814374d42a89afa20533a897b1738f2a8382b0d08239d256aa22ff1200060e5bbeefe1123f4c3db92c534c0bac39a5782ca2acac92f4ae0a3a4bc456fdbefc96838c27721e22b1b0b8d81fd83a13738696f1816a4bd4eeb93ccc2557b20cf3a29b8422a1b4c898da8e85ca7b0f85c7faec5de871bf5e651e187f5acf17a87e9dabb513cde9bda481096ca6744f9c2abe9cb99fd0dfb42b8c1b4835cca429cc868cdb8bdb4e05df0210f5bc7dce6bda1effd675ad1a115be3837bf800f28387c0bc140f42fbbd6c9e45f919fa4f222fc2ae0fde1d03829455a0e25f25df706bbef242f4152949556f3a6eb49a6fe3de940f2fbe1e4c65007ddc9f2f21b0b6145e0e16f1bfe245358855cbb89eaa32066041ba9c408a8e08ae760fdb8b1959b2c1f3df87316181e5df34e040ad847b798ab479c594520b27ea9d3f6e2d101777a8b120c2a316ba41e08d92853a6c60e220be3b0856975844c337b3009147c0e5b8f0afc7645b18daf90dab7146f06230b5cd348fae6c0ecf9484ae15e4bb4655e73e6b2ea6ee082c1c62c5e27cabac460a3787b1bd06ad56069d1abfc99cb88a430891bc1395d5330260623cf0d1390e5ed1c3e46e3abea5688b6c9f36fb642e1b673e171ad8384d76cefb0052f027dcb5c62df5b8ebd21bffacdf96e2766dad91adc6b0419f5738c7da48bf6f4a4dc6d0df46894bfad7fb56072c59c169a4285cd21b2312f5e8c54bffbb04388e670138c61f558f5cb98df8920ac7102ad4ce5392ed7b48be5837b4c6a3d3e73eb3a15b7cdcbba5253fb9c4d51cdb4a71875fb4a4099c1c287f20d300e7c3923cac5597729bda7d89c79edd42d832107551cb24bc968f0ee78dfac5682676ad4265ee041084425ee552eeaa028cb5297a1448674f2200d4df6dbe07019a0694b5d0d59a2db2469316d8fcaf4f86cdc5f09f92190178577994a1d7a0c76e7c32870a35506b8e022458d4024b84a935be571f10ce97124cd71bad381464f8510cb1982df64b173e2dbbc3801eba7be9bd20aac9bc1c235a22a3337acb73b1e56f914c4a5f147dee833275612e00b47e8bb05ab159dad8e76b3b0d68d5d738c3dd89e7ccc3edc0cc3054f4acc8f031483dfe3091b23f9b3d4de98d764978d19a3078976cb4023e6131b89e5a1e3be30fdc0227f557bc5d259d39a02aaf1ead2bff479222a4c9fe41b57e83c72cc656c4ef74b726f9e48dd27d3dd261e05ac3709b87e969d0fb4181422dd76c09c4f21d0af05b5469eb99721e98225fb1d245938071a1d69d52ab7db2d2ff6d35439b0391697b7ca8b2e13ef98c3b9ec1785ba2b3639978d56f32f0f74e6df51ca555c63093f564c6280ae068de45904e1012b09102bdf9abcb954345927455c0c502a713ff652b10584e99a89a5555656530fd201ceb063805d196ebb8ede054459550f5ec8a23ee9a4cc7f1e8727dcb4da97cc761c7b18b35b9aa7b99f540a5abc0d4ece2218d2b9daf32530816a7ad783a8fa12f95201490b658113a3da435e6fd823f653c531468d5998ad4456d27242170ce9ac43c4fce2adedbffa5675e3b53757c91892229e14370385eec3bc620b9d0f5972c818288f691563b225660df3572eabb069851a4fe0ce92f96a60956bcfd1ba023ebd3a55d28c47337356c88146c1040094cf2f50576ea22c565a460e83b3182220d53c74503daebaa5650405c5bfb3e705166eea49f600f42a562ce49e08b024a3522039b0dc6110ce05129a47564ee2d709ce67ea2bb1827cb78fb6c5d5a6869d6d9392723d8e0f6504043ab67b6fc5b05e8c236a5517fc14ed419e82a1915a112828a0a810b7c433582dcfc5fa84ec33705328f237db526cb0c60daa2a59f90e0a8ce331f34a9d9b00bce224d576c794c77be5117eec539246194041b92f7ccb21ee3a8007b33b4a4d943913bd852b5e719ef9462202934cdd4506e8493580950274a261569d20c0436770ea6fa55e3ad3197e2ef14e0dbc345c68066814a8ab97b14711832171cb91dca8352773b7efa18fbc4efe07f3df9fd3cba186616710201f9d792b21dc9c47d28e89743694c2cc1daabab8b900ba05b34a73aa5b629a23a0cf65e0269ee3b8997461f6217eb87bcfb86586805fd5aa29d9f4165b614bfb617aa25e36d6cefe53a9479b7fae385eff8f1d45f6607f44761d0e7dae80d9fac82448a8e74df21a1c56585235361f2d100d54056e38f0c49ac5cfcdca2ccc99852d858f4de5dfb59b63e536d320ad76080d0128d98db8479922c8fd2df6c85e3bfbab795f11574431c4ba5a3ce098b77447ec2fa30186d0c5b719f91c49ea6d124993e4ad59fbe09f2131bf05e1e9c13b48f1ec7f027da9cf953f939945b78301606fb5c64faa28b644ba25e1cec9bfbcf6391ea8858a38a0ac6d12de4079d65102c769959c99ad68cfcdadb785821af127ada52a45d6680ba076f03f65fbd87c90bea7b742fddfbe09cd5f8a5cf41d2f6f68d5f92ff96461366d1a567a92a4a8acf5ebee37e4e1f6fd2c353518831a70052f45fa3992cda38d548380c772e741ab0d412bed22c0bc6dcda00eaeafa770e8c6da4b5dc76d0d1b6931686dfaac5136637d6b8a78ba6dee7909fc0d62ce33d4846e58751dc2b7727bc4fe6312e644e652a9ab3f5cc7fe234fafbca8cdfeab0b44d36bd1b54a44eedcaaeadf4ee6550474a2477e2cb1b1c38758889107309e2d5e38b13c542d5d72793f500fc0c31cb03596b58e89cc850a36fa86b1e5ab72ded36b3911967f2620686b484e7d5f873bb1e039f867a721b899ec3fd4b05536bacc96fc1c4f0f4209884102020c8d352c63da541b09f00bb091ceb450ae9e7ed4cc9b7f2fcd920bc6f9599d6b200a3592ad017c7ff909ecd139f64b4069a742370beac611d10105562482591e0d1299f0d8d81cde7b8cae98b46514509e9c4cafd72dd18e8224325a32e8cef62d16c285b93c0e2f301cb831b725894bccac9791fe77a357d077534279a8491c9ea17cb3ecbc0ecda6d960e485d79e52d8286bdf6f15db99b937d5e972b6ba60c03ea55196d66a3cbe8b156c66a1bc502ac700d6a4c8a17e6cb24771646b3b2d9d3d5bd3a796c5a102aa0af8d390573192970b62236efe1c6d8665e4b8a6353e7fce7821334be1c6e9bbaab5c127c1f9383845c0e4ea02fb9453d347e62f53d8f90180e709a687183d4ec3e53952e49bf8107b0347cd5cef42deaec0edaecefe7e14125e4ff6224db15770dfe67a839d96c4e144445ba6c6cc1025744ccbe167f043fb411a580bf1d702aad302fc123595d6bd2e93229cb6017cf534d22ee40f3dcf7bb2803cc3feeb7fa85668caa2143e0222e1133c7cb23271b663caffadadb91cf42080a7181daba47aa3c88c25c2bca619fca2fc10ad6c184887ab57f819fa07890a9a9357ed33ce8552f91d2ead210978531fb495967613f2f819356a050e2aeb5adbb2bcc83f4f958b34e08f3e6d8e736cece0dd5516776491c040ed3fc57f62f576f132420babb319d88a9a2d17532f2f9fe7d2cd360e627ecbf1274843d5214fbaa299b302bcdcbd9be7bc1bb6f32c132cec86409a28eba7044bccc5cff505934deec3a5e0204661938774a37a329f729b6137675906fc56b2299736065acf5f56146c8b2347365077dd59e7b9e858539c6e49f56eb779b78c8e89a182e09b9c7b5d6d9f9a596155a90adf8bfd04b94bbf39a8b3bd5d903db676dd746047b60f2713a42e156ca205b0023d8b15bebc502b66b3fdf8f0d56584e0ef036f90e79bd13d9041828a1434d577f520ca4b73bf4e073e976e5e645a556e2983440643326e119d753ea3d80767da048e58013e71af0b6a73485bdd58f8710fd9c535d0d0cf19e39711a459a8f5e5096015bc0f2c05714d1f4df177ca34b601514b25d486941672af8de5f0ab00470eb567924a59b41fda08af3a9ac8b606f00b5dcaa567ce1db0979f4d602264036baac4665d1bf0156c0bc4db1447e0e0d8cdeede89e387ec90771cba7156271f3621fbabc8dfd6e450400396d2b35d4cb6bbc29ca51cd103c381780baca3bb0a8e3c11f4a48db0a7ab44fb0b8c6580d5db9fe4fe2900145f5aa7a9cf94ef3ace50cc927cdaaafc5f935cff367eda90b5df5b75d0af0cd9144e889f2506b72ad0f1a01aff9e4488cc895c98fa637325891910ffcfb377aad3022152f46e04cebb602dbf3f923f3aacfdda8d5cc299ea4e56332f062ffad86b27c6ed6ac46ec0ef692bc1c63bacc7c34cd04328aecd6ea15b1aceed3956f155c13b868ead4de52a0676ac9303466b54bd04a462ee38e33bf50053450b3e7aaa44b899936aeca4be922bff1a2470ef7977b44929afb44fbe099a22754775af61a850ed592af45b48c745a30ee221f12632180c8c270d71a8f071b377406d476933b43c96f98628002e16533a344a8e430f06453ee41e10a9318ab65eadcda60d16c36b5ef37008e896346fc881cc97f1b7d7e102a0c1eff9ef0c4624aa707ada888dacae4aebb512299b5281d14fb263b8109782393fb156902a39390a923243e5a2215ab4bdc3e4909cc9a0bad4e8f9f654dd1a2c1e29032f5af212471506a56b997b8f3229e0834be1fa52b1ffbf85a141210e06008b8ca873bb72f9d22fe5cdb7afa2c4504ee35731f59e722d216e469fdddcf5971bb73229ad4a0af4572b20629f751baefabcf48861749c2462a127e36c81428c40b4a11beecbe69f0ff20d4c6bfc68ba69af30088197da7be8f67e5d23c4f4cdd9a636a76a75e299c105695871b3d53c342499801a423a2d20b3c1dc385c5a9c3cdf01f83e586ae91f27e66ef58b3cbc6adb2bd1d3641f7a5c1544f788096a72b9fece7ac7532b1b2c749b49d5fcf70f017f5c9843b185615172149feb251c96f29b9c5f9ba66bf27ab520fab9a1f8ec096da9f07fdf2814bf8d4447b5abc4ae8bfd7a8c4bfeedbb679ace8656c7f7998ec053700aaa90e273d12dd07bba98b53472013bfeff056bc586b1a77319c1061e689cc3aa0094f31e9eb1efe4214d2c6d0750f99e115394297426d8fb07b3c093924920d74b8d7ef2bfcd4ee8c0d7b31fb8b2e0d6d440832c711be2dc7aa829d70f17e67ce6edd86039e9f170ffc1f798629bba6d9540d24502a737b22d7249a76ff255a344884b61981f3643814bbea3421275db8156f2f4ddb1eaa73245fe7408a26fa88438cd0fe52d7277dede04d18fea7e08bc710911d735ff13c37bd9f97a0cd9182939003e05897ade5613c6b009c93f8e23d397a8880800a5d17c5435f29b817669213408d28d2f46ebef8b6a9652972539de37b321325b3a2d19a81c100f934054e5c05322976aad9a9f68589b3708b97020b67d9cbbbd4078578d735ad3c7e869b50edec9f00fde3f1f6c2fbe00e77c95b0c1ac377cb9714edd45bc163194194f492c42c04ca876d409a58b51f2e5be646edf3bda57eeaed1e10918f382075364c646086259155671ea27bde81d59647f8e50db91d1fbdc84bc1e3f9438e46fa28e281069a3f0b38f28fc689505974ae229a52c68cab8dd9366b1d90b0ad527d2fd57fdcb0bec6777561b4ac4fcd610abe8a1b4ce786a7568f56c59c973ac5d9c894fafc009d35e42c65e29826f7c59f80baf50edd6e0e477024cae14ebd852c68e19891a5ffb512cbabf22f29faf3cb205054ba9d4a63c723da0666d21a5b69d987bb03d7a6e72a9ff08707a7822020ff56d30b021b39fa9e60f91c791a313be0b4e268e0eee7b51b48f31735b4ca1c5b0bb8bbf9f92f8233db7863ace6f6eb443863d1e6a56c35292d85c8b64cc922fb95a40c201d9f35ee4b64c7fe593e4247db3ddfb85b17fc8e9edb1c8f99970da673fa041858bc8792c3f1292e7b3f6b19fd66498a855f255a756c6d11ffb101ded37fbdb9c4053b3e772113355b9478f11708bc20c6b64ecfa8b1e5143bf0669c4014eaa13c1f94a28f6d926e6cf3488009c8e7421756155b11831283b4304f455ea8ed0015a1ff54d1d0c7729a76a18c5a0991331e01db45eb36d6f0e65db0b8bf73b90565568cf664b08793953b52d90e315eb028e6bf645e9b802f6274cea8b290788961305a79c7ffab67ad35486a98528b6558240fc0847f51f7f285f64c312434ca80ebb0651103f82f30b4e7d66e456da3f1af5daf969eee329522434739768e1b62ff169e6234c239b5f1d2295423354efa7598d5366c6ed711f4842bbad0c3d904e694223568f3fe1e19dd2d8ea8ee86372db378ddca2fd5804194e4c68431702125026f8df25ecbac50a52eede2079a04dac6c916c5c0eceb248b8e5fdc9b4a556fb05197017476dbebe42a343769de6f4746da4fee47617ca623da63b36fa1de73961423b34f2638f6e9d45deec529f6f8bdea6c47cfce9117a746bcc6ef169aa7e05c40538a5dca2b916db22a0bad174463641f934518aa5c3ff0436d55695de9a220a20360aa7445e5a8bf73c808e2e383b50a25eb7695d053cd97c76c6b811415ed343a877998c41c9cd3a14e3d604c74fa22ee59d028f31a9f131bd1bb21317821c3ed236a4ff8f465fa3335f8bc09b21825d4dd97b23fc0246cb2791f91d591495697534d481994d28d1be88c97b75abb92c000bc93237d75fcb9395e6ca39f0105f35f75ca971e5578d503b3516c679246929624f4cbc2bdbe381dc5c432fc67040a91c56727cc0f2ba863e706a7507f74c018c538d08e6174aa927190b7c1870b8c2d5b56af862a06028ac3368520a9d8ed9e85d93da954be37701bac0525a81996ab8ee76ba6d3b1708fe4d8fa62bb91e27103070fbfa7ce46493bac1e645501f1c23101b5d7fd6dbbb032efcc47f635c1c326e7cd3ba87319da5c4ce041c42a0fc482ff3e9c518d79a0b55e9716cfebe2c42822f9b54901e014020d0e1ecdf790dac9b98c1e0ae0d7c14252479b1f38149fdf9904a895960e6e8afcdbb719c3f9a767e93fbeab6c9959500ad32f7800ad78a54a60244d67cc7b6cb6f91a378ddc11126b261bfc57504f70a06e1df1df198d2ca0de2b8b92f779efaa2c20a00230e643111602ab816413f759bed85cb01edc8b3b522561cf3740a967c1af7e4773fe6a9ff3a7245743a9d1af17a8f8c3787d4d69e32413015281e0c546719ba3f0af5d0bdb94bcf738cb71930b32f5680d8169af7c2dc9891532da050f35badc4a8a05afe8635cdca49dda738621f8001bb5a4036ff8fe40525221e08fb3a5847835e396dab682289ee7d8d9f11c6b55d386cde25c35c7576103ee5b352ba80ec7a8ea2e8131956df17ef036278b92d98cf79a8087a7760074c7fab9e8f8c0ffb8f4507a034400dcd3c1f1aa1df8e8b22e411b35cc604320e5cbe9699cfda9612b5abd9a9aaea2229cd3fe8bcddb3c309d8c87e42aa68e4d1c273e7f7a2e7c94e2ba416cb5a673480f0115d37de378d16ccf7d9ded5972933dae37775b4f309312558cab56a6b501ee97b9c81368d8935a5a6b76cddff40926ef9b979049c5289d679284a0a3ed09d54f3a6ed056a85b5522e31ba07968430453004605e0c0f25c0ee2a5b392125764283c713fd96bb1ec0741fad9bab345d0e5942f8857746b618805ab131f2fe1920999a821093a2e545bf1c0e2cd026a69427bc790c6740979c1121b2e31138372a09cdba02d563d383a9a1d1478bb17c89651c4a468598b0ed69bdc1fb72ac558487af08bced44fa7a8cbd10efdfbf17522098c89b2696342a856831f80e815887df139823e735fb3f9947f9c206f3b6438c1c051b034756c9f2b8d00c73e8dde1d7fa59309df0cc3fe3a1c593dba0ccd6d3df8c42170985335a8c326815b7578bc41c5e38a2aba0ee3fcc74b74dedffbee10834bebe7dbe49873e6f76358178e67581e34310b8a60de15a7af0a2315e5b6573862f44081ee4b8586d4538de836763db0452bd69dae558d3d464e84be2e492dcf5a6bde1edce2a61af7c06e59483e0d7eb52dcb314b3e316aeb64ba6d37859cba2e4712b9a76344a4b66ffaada56e1296aaa8596dc5097b9d0aa455cdbeabed65423cc60cc4ba75e778677947ede453f17e5217766cd2998d4fa07b2a47946b3897299a508263ec61f87da78fa2d84e10a42d375912c29459df5d9220145f52f9c178fa8cfcc1e010f7b50e0dff3699beecce219acda8fc3d41c92bc51821b3c3dcb4da76d702ea605150e9d02bd967ce7b044068661c8be6d3500b52fb51956d8a6db154d41b77d94bccc4268ed4d41659a21c93a284316bafcc700d1ed9401a62eddd185e7f58b1ab7c3c85dd211ffc4300e99482eb08ea80c3efe0515708c41d960c577654b27bd2640a838470ba435378b558a7dda09a07a5cc4ce5ee672754104e958282af06fe3f6f2cee487ff85333f3fd2af3a30743648bf5bc753027c5a4e66573c3d0509524dcf527332575041388dadfce11b38dfa90dac45e11cd8508f3b6d669ea5d9c56e623e3d9904772675eb944cd67054a4b246602a85731915c1530cf4c24983e1c3fe43cf929929c0340471df42ce6e8a31589e041f301e46c240b6f2689086b83eb3a77d1164c57d34cea4bc14b05f65173ebafe64a5ced2b9834f02b22a9facf70841c1aafd414ec90c487d2c8ae136984a57b649aaabbc3ac71ba0dadf12feef41aea16fd8616598fc3eff44b4ea275ba348657e6182a1615f7120238877555fc27d262cc3696f6de1ed4cfe50c411a70b275a9d504a02353b746af22700a54336c0f382eb92d859ff4f03e7b20debbc20ab3df544b5f3156e46844b5db05c00017bea6362c171d688ccbf8cf593e3020343744c160c7cf77b8e150c5f6b124a554707dca9f82e78fcd0bd07d05e48cbe96f1da2b7eb3350e16d20860b6829f727db751f93d79689fecf799112e237d249d35e23056e642c4c590f4c88d20bef7063649fd83fb8aa152e82afca79bfe9043b5d95304157d66d51bff6d70bd7152007bd681c65931955e20f684206d225159bdcc6b3b9514687648482dd73d1057ce88eb9173b4581d7ab7de775f41c98758b55814b8343e7bfd5dce7de6ded7167bedb96159c5093b6c2d4d951bcab6be92ec98040bbd541dff6158f206e893c22f8032784a3261896119dc360792988eec0167f7158dcb1017f1dfda2f3d740dcf420c26055a4acd9524595cd124b883027c751a2d66d36eb44c2eeee320df8c1da95bfce20704f1f53656d6f7788012aa06475c024075bd0bfb9f3f946283b92a34fd64d3d4b181816e7617b6f8f5cd644a7986b359df5c0927ad5d34286cbaa11d2fdf3336da1a0a73fcbaf3b86868396a596fa734ec53c6a66678d0012b596f82ffa5c956bce8b4fcdba14439640caa2918bc8596276ab9da0b15fe46ef7f1ba9028f9cf010ac817ae2dbba2add36ba4dd768249a2724fbb702dba5f835304944e4f7508b039c9133c39ae00299848c7c9e3d9a68acc8c4d5e0238d8fcf459d0d9896e3792d8f245ca32524abbced2def11698f26967c97decc5fdae44198ac2ed65b0dec58e70eb3b785bcadbb1315cab6102924c5c3651febec3440770eca6f668813c8128afefcb4c8b910d87b9ac7c9ee2df3fa3efdaf1060cb21a80c289c3036954bf4d7aeb4f7cdcc19df8eb23ab85ccc83376e812153884b9a2921039a39e2fde8bca42198e2a759f2c502a7851b99a17a53325628fccd576f0125b95d123bf616a86f5e36f61db82b59aca0593da55f12781aac00a6db4d0aff28aaed871581506edc7a90dd6ed704a96fddbdee231e6e043112b6771f7032eb68a08125983252e47e24dcab52c4db896925ce3c5dacd5d38d2b50b0bac96a56e1b94d3d0f19272fbd1a22ab14efb23efad7acc510eced80dea8bdb07becd3aa684347ed2ab3745db617682b2591c96bb49736da77517b00c38ab19dad45f3b6caed408fc98e01504caa195940b559069e22b23db497f16dc3b35c13c51fcc6e0b948046581eea8677b889cf5626d64aabb7490a12eb5a4c0f6506c9008e9c37e12e99cc9ac3eee03a02b992a44d88d56fe73244e2187b3eea6466aec89dcb73344bcca24caac7c18bb696ea1a1739fa8058f9f8c07e652988a56ec9fb8bb02d6796e5ccda2365433d966affbbff8cfc768898a54fb840d1b75c866879325a49e6fa8b13c697cab59b57d3fbf7a2c6bdc4501b245519a3bb23717ca5bc1c6b46ad364e05264c18e68c9f324657330de5149bc894bb92c0bbb95ed6608a28587df6e3503416c64a4707f9953003f1e8719c107bac3d85170b23fd4c003c27dea5e3e0bb0106bc411affe22ea4b6b6b477c1f0e67cad097983735acafa489e1fed2187c0702b77c23ac728f101431e5c4e99e434f63d63f2ae0cc4c029c72e45159bd6d09bef7674a57a30b1c2dd8076ce422a0e48af08c18e020024f283c43a3f1c7afe1594e886196b479a39414df221ea43e6d8068913b81cd0d1ea2ea5e9262977c574266cfa413476fdc684fcf37e46b75ed369c54338db66f0957489d1a33b600659953cb949586c105fd4fe64c54a26901f2bf2a6ceb95bee254d31f54dff225459b0645df801c71d4831361b03cfbfcd4891fa69b294d60595d2889c8c0cda0325472924d5398bd9246ae89e0aee740478517524d1b1db158f4b21615d8792b7de199ba8535851d03d21ed99d499a3559f4522a7def7b8eefdc45e50486d0563b4e159a9bce2b74125006ad36e5ad2be3138005600c1d98046cef64d5acc53f63e3ff0190591850961143c749d9502000a9810fc75171fa964e1f92a76e5fcc2dfe97f1d42e51918e17abf0e6cc22e5053325a96a9765be5b053acb9edf636dc98dacba36bf065bd3179a3674cceaa00655ca0130d9ec6f356b9f60e9e42c90ba6644ee99cb24de6c3564bac4089a75bb7bb17f5eb4a2ec48ef7b9d9388935ff3fbe56a2b4c28b9e6a5f9a5f44233ba65c525c758450a474fce83fc084bf764bb48f75b17d303b21803962f5eaecc69d99b1cc40487578aa66424798e4dbfd5b5ab00a50c20f9f33251c676032937be95d1e40cd4d111cf268bd7e86a7b645d06f710b17d1811a7ae953e912b5a319e0de00443150455d9770d0ee9bfdf46da9811ec69ddfbee389b65b1a4f6e0461a7635e253350a7c2c3194825d139cd760c4fdae12b163e94b83e05d164b3e5d9af6d7ade6d17688b3d07568dc5815d5e249d811110589dbe63c384a9a8cccda0cbb650183e39ee0aec0c3951bd2c4c950520675fb575a2ec1fc08510b9f4375ae2028c67f33370567ba9b7f3721696bc824d7ce2734acbd4cb8ecdd4a9d42d03b23472da46d1cebe0fee6ddc0ba05fc03349361317bff6aef40406744f2d042b590875b6888edd99f38f373d0cf7a2a5f429f08932506018136d45ff9c5bbaf9575fdc5977bce6bb890a5b8bb111bf4bc7dc17e4590b2aca1c4a9ddd0788ece21fca6af1fa7476457e8f36b1ec0a99f2d3152826adc5ffba8a35ad8d3ba2f7f169dfa0d409013bae22cf4589b43528f3504bb8ca89f410df34c6a668feb54bd56b69815820a6f6d002caff1541f88e85afa849997e2068c0225b29b25810da11bf524539167c67fdb03b140590d1b56e723f720588a840fbfc760085035321fe882d74680703ad11ddcec4047525c19b26a6e6f1d4ae33274f9716f0008714ca18a15dd4e030a36ca05f26646430d230e137b5cd579890a6f595c09aaa5b3698809c2337da544f112948f6f6534ca906af358a13ac28aa0e2cbe6491bfa566723c737dd340f2ca000a6af70386c22be8baea34c6cdba53afd45c9164a14d51a6aa6fb8b31a093928e15609c96375a2350015355d28d40b3cf9fa687c58b76a971022086292203da22b2bd0597a3b1f83e9b5a33f9f55214784df4342fc9b7eca9f19e3f408789c915596b64dc4b394da0edb194e10282bca433d6c03b90a9f1c83cc36664e83d7d515fe3953523a3110c7252ca0eb98199643803910b3c66fa6fa24463e3b991913089a43536d14074fdb91944fb9a4f57fc6549ee174098c3cd4803446fd251d65cf57d139fd7c3d0b6ae11f8869921a010dd8681f9a8a60783a4652102d7cee41c982cdf3256f2d2797b19b82c94082c782d7c9dba2c7ce68a249e8e10696c462aa0d43c89d60681b6d0a596d90e1b3f120a6fd4db2ce90692a2c4db5d44f6dc0a4c0ef5bcb17999b32ac923ca00efdb0078125a9d23c2d75edec33b4c2796e9615515ac47a3e07e9bbb73442d6b7f06472198c638156e3c8c28a0aca6e7b0e8639a2a525da6d751ecbbed565f7eaca3a3e55f9753e3c2baea5c8a9ab81b2ada036355fbf89a3c7b331595b0e444c83fa2ce8af334c4af4bdc3d3faabef1d676259cddff24541999a6eb9591958547cfc592641c8e35fa65c1e213b2b533f7abb0c4d80cb5d5673d23c68254d39497d24575da0e3e82711044818305f5bd6fb65104cc218ad78a57a8cdd2f4aa4a3a283e4044c8ea285d0f301ab1223be4ace4d8e9250620b09e5ea20bdbad8853de2b4743c7fcdef430bf6b8b5dc699f0bd388cd9ace4df4f163927e6e47c9f91fdb148b6c0f6cc4c39d3cffdea52da0b3546db8f386ef3449708367bae1cf52765b2a73589c164ac1060cf71fa11b1c8e5ac1f59f608051024ff7ce6581f29fec17658ab16c64eb579597a68257d27d5625e82731e9026fbc9e8fe12057af5b472f4fbfcfe461bba4ea463f459b69843727e0ace2fcb5dde736cad9e725f7fd47bdf03ceec1f86c4f8854e6e45579677374628e57bfffabcb25b21e81b86048c4601d199cac14674f2b6ae8c3733b186f155a7eab29e00ec579488bcb9a0c8f33011d5a0f069846ad9ec525bf79275020fbd91aa1dbc43acbbd36c26a8d3b475d4649d2136aeaf724cd932c202f990579075f7c7767a23896140a9935bfccff509d92a08439734dfee116ef8770ae18220515c4b836b07c8bd73e41eae1413ece15ea770a9718e048e20ecdc03a4d7d48efb9a22c65ba015036d68c529ed24a04f30a43f982456fafa16b6896bd712f6f1ccb3b0da65e0e30a58f006e711b4c2e3e4c23150622bde97025f025ef7ff82383a138e660fe2ee681c8a85a122ccb0c94430903411ecb7241950a786d257da5e20bcac084d8d519eae927a2a69e5b09536a1d11a63108a3fe1430c3993aa57fd2440f3d6d226366e03ffcb2c11e319f85a4058dd276fbd9231b258fb82f32ba9aa6d72b2a6ffb56f79e3ff3f0f4e117b4cf197065c8489ce267caed78392a295ed732d6a215e22fdb4ea85fc4a2ec298ded39968f2aa1dfa8568bd0f267a22b39f0c1642a7674e4947c0a0ac58811bc06fa9364832cb9b69412df1ccc2124071104640db1d4d4fecb236f75ab4013d7bf440fa8b9422efc5a3ac7c6a3922be4e62f9c0070fa8e3c505dc486e77b46b9dca734cec29303722c0876d4226856e83c83e77b60a52b17d036547b8178d9025305f3fd0e9e82914479fdbbe87505b84f99ca75d16ce80bf555dfc901673e87ccc62198199c696b1cd1aa5147e5e4b80684283f2583c7312db4e4bddf7eed5d412813e518b728c2d196842f8d031eea0fb8645646c6e0a65594357e95bdc34a5289b52ba3a76a118e3a0aad209f77d55ca98b5b702dbeacfdf8e27d9ab4709ac04e3c0ce24a05a60d30af66ab622f64a2bb1fddabe0ba266f6605b2660d3c662bc7838445a05044faaae2c65b8b25a5d65eb19c1e1b59bfca90a70fd03074030336900a194dd4dbe0a452c75eddce9691babf65364dc334e1f58b6eb2d9c90156c3154cf0a8acb8c3fd61db918448dfaf8caaa369faecd1b37a164f231d3699ac865c6e11f9b8187f5bf3ca6da3b2f602837a4b9bf1ada3653b3fd4e845ac2f4e0e33e29378e612eeea2f0b994e9a84acf29b92ea9f7d69c72e8efcabc3ef64cc4f3988fed05825b10574c75ba066bc38d95829a74ed1e6d5b5d6f47391fe70f7cd295919ed51e6d82123374b4603a544eef1c51384b2bb8166c850f500498fdadcd86c913369181da3f0ac1dfe7c100302dd39993666138420c437d35fa7787feaae0d3759fb49bfe37eaf36d09910aec5318577534e79df09dfbed23c6e4a687b434cbd331bb8f1a27f30e2c703222184036812f7d4b833cafcc879fc10faba8f664d502c3d5c6b5f30be4c4afe212e4be26204cc5e21f613a6abba4f35f7c9fc99b4d9227da18b253a0e189d23b3a2de2321f53f1f51a74b853d0be4ca7b447f3a99c3796ad3fcc8b2af3b7a29dc34297a4629ae9fb56d1f44ad25e868bc0d7b351c2ed620d24e9e7478336f28e1ac3dbd1b5b22e49a5c9ea7c3c97233180baa3725c8c0e55c4e3e6f008b8753a7071abe1b18482b950499bbb736481898eca4f19adbbe8df65f6059ba0de6e702fb2eabddb5f38869ea91b1d1416903d322e5a7d0bfd0d868e094103bed44c19367bca5cb0962be1bcc04771eff4f51113ebb09c97c00a1202dc3bac03f16c136aa826ae66e1ff5e40be121b9fc2a22ec926abcd6618395c12acfaa39082fe8bb86d7947a9fa9a23f4998061264dc6cd98b54ea4b573d5ce15a6f73e6d02261985b140b69567e23c6efc54f617123355b078afa202f09e342a8bfc598d744b143a58c3aa00a925fa1f138880825cba024442b1238fc2cb3fd39b9215ac7284ae7430b142d987de44b09e3d38fb19cfca132956cbe8522c2486e75f9cd1a4d898fec052792997a837df56daf8ac0e050e356fd70bd6cec5a27a2e6f23847cc8a80b6ac6be4ff5c392eed4070ed3a6f6710fc563a328610900a19e98b021e110c56e9d92ba8165596d555aa910d5ee95accdb4f745ae651c35a31881fb13e591580d6bda7768aca97d955a2dc0bfda50abb0d1e2abea05d535ec9bc300031f9b2b85552e1c1c065a19bf7ce7a8e3a3fb17777340aae38ea724161b5c145b207d2bad684565058a40e4c53850070bed56c29d252e2dd5b5012fa461927904fd1b585814c0f45fc3188d97c22b6fbc5a4aa224069ef74c6b5169ec58f11998212ee154c34703c046dda4fb1a2de29562ed926f864656a252215891dbb05c82d312dda1b148010b4576cb8f8ebf22a9c310ab43e6552bd92306fb3e5e3e6d05e6db73bb6597a08438f5c0e098c11ea7d4fb767b3d729be69f762876016cffc023f063c25c1302abff7eb4148077abc0f0365f157b50000b42f74e2f208957e07486937e8554f5ebfdd590d55c407d93d0aa8585d2ed267a04e4aa2b14dc9ca54d6bc83ebac4e49271145209d4b5f8d2817d49cfafa87b84f325157d1753cfafcaf7d3b0e156c32e4381e95d25f38d97ae01fae563506c93c3d86528a42c91b1cbac0566e35331379d3bd21668467fa81c915c631543ee0c9f7051b7e59ccbe51aee326326e8fca01da760f88a1fb85b7cb0a8b1dc5f36371f1739421191ef01a936fd8148799338ca7131f13c24ea00fb5f0fc0356d2cc2f97a948cf83dbe85c4c2f93f0304e13bd2e48d3225515099baa6154b7a23d3aa8fdf71d9384df111342377112d43c5af982eb268b449c3967e95871d65032f6e915d1697dda7a7e31f742c24ec60d3a56916a71c34753d738dba695603a0d574e725b8a779bb67b6954e4931e1152397e2d3c94b1abf33c4ece1dc2d768768b239e30dff1ca84197fa3fc16fbf25d58b1c95276db9ddb8cbac388d5f4c36e282f746fa07530f79802c2974392f904c4561f2d75cfa5a3e79b4dce406bb778d0b2cda078c049beacb8743f7c6c5ce9dd202711b71022383d02f5cb22b2254b1aa0c06d7dcad5a3555ca996bc7eac5ef4ae06ec6fcc64ceab99dca2940eb71cc14725946b59e466bbf292344eeafa1f014e3302e420b80df50e64ce763e9a0b0fcd085ca1524f50bf53e22548e6434096cd352ba7a929c4ab4fda236dd38034e6754e2c3328f4f6226cd9ace9f3fa77a522452ad9fc4e4c30035a41b46cfee966c69644c12286db1c698584519f0663bd23ab0c43a063010bd5cf8150d4d5b88118b494ac0ea1218d816d3cb1a73998ecacf51fce1cfc46e7ef69a508a61597d2b0290b77bb5ca0c11bccfa01f10e35a895f949e5c240acf23d0f6d797b9bc7859dd2f038e0010cacd9c4e8421d58a7a2452c45b01fc47b3a6d9f989d804922f5450940120172a067b268a73055bcb8da57c6c4d5e1ed57744cfe5234c275d0b0aefb35e2c944bf7b4bc36afd068c0f2e9e8d1a429b3c90f85d818e05c7ab4a7b9006a37adaf5cba3c5ae8eb856433c477fe3c0f5b29dee08c15b49fc44567b8bd61d2ba619b39cbfa64018975a07d2a2e5aca57f43a1a30c0199d601b9f5cc4d4b8111a1d5568da7ade5ebf0378cf0c60042e60d5bb1e0f6dfd81282eca5e0033a2fc1b307b115f2f6ebfaa21b4cbd6122922359f893a8ed5943df91dea3f26f3f6ade5d288ddcffa280d3ffa1ecd2d684dc41314b0ddd6a7b71be42bcc0e6565b2699d1c0d17f6a5bb8a33fc6f400bb973aef879d4ec1f608cb5fb77753a30391489a24e3d4510830e660f9564383f1e80914aaf59920a1982cfd3406d4fcc3f0440c83d6a7fbbb5e41316f5b5b547cf572857f0ce893dc2b154872ad3a1dabba4abc5b1527beda2ccc52f0ebdbdae2ac625f85a621fe2457db234726142337c20adb39fb7bd4db0f168a297e4b489e74ffb470165a141553dd698298cebcd5398279fe1e2fcca4e45171e9dce6b85e22ee37b9560c80f7590505d81937d6089ba88f468853a45d26a8b24571db194aaa82f3d219b1f4534256be21abff2a37aaae370c95d66846758cbe98f5dc4dacab2a8a7aa30f987af86371d16bc972e8cbc206d9282b71406fe94af48532f937178953b7807056c617ef7d18bf000f1087f804746952798833f27e6fadc484292c978aa6fecc0bcac59e2937eac328e52da7a29dd72606c177170eb9f1ef0e0c9c509b7efd5002a77da6d491c0849faeb67212cdedf815e0c4cb8c9982da315d6d96af97e5e6a1ee9cb4185350dbdc6052b6690643fbf838b6fb00cc1beeb8a1cb4951a8acabfa829bee3d95b9614d0bc7b293329e590f72cd227fcedff7ae7ab5ca8af4a0b95031567d186717fc37b852c71696d850f01368413298b18cb4419af9c29a45d3bb8c5c264bdb5996861256556cbcd60d7766cbbc7c7c339d8492cd23f6ade69c59db355f1a07b863022575a1b249d9360d9a2e7264fc5cf96259a7e8adcb99ce38ab10afd9dfbcce94e4dacbe3780f393a65a69b5399945efd6d0f25b12ac0b0e2456fb80e6ce0df10ecef9333a654302bd1133d98a38d1979aa49bcc104eb0248968ebf46ad7d4daf9a6c0e84726350b4523c1f6b71d6bf36a986e87bc6d8dd3d3ac375e302a3c1bc18649c2d957212a07e8dccc3e1bc55778e5be3c9755594d68295d55c5d95ba76ac29435e8c1cc671dd5e11dd24e5518cf78aee5284c3a887c5f995facae4dd057900ccd40049b82829a1a1f71683da9dd0b84e2c9efe995eef60f610bfd3b2090974a7ca6c444a1499af5f0b0e1d147f2c6414604f41501295e7077749a6abdb9d6cb24455dc03fcf2309452e57a5a4b156de77f94bd89d6d44627d05f4d7aba63e9c144a0356e815ee2d587906b6f1601fdf931f7e84f4d9d1cff0282500f11924b21d61c9abaae4b39dacb208ce41127ee35826e3653aeadf308d8b053aaed7afbec8916d558a08098fa466d1dc2dfacf199baca4be5d85ea53e15f2b1b02a14e7630c89e7451aaf068d949f0cb20345d989b2e1f55274261f39bf92630a374e7e50867f09efcbad1ba6422cb9cb0f80f2799f5d5c4823efe08177b26d2ecf236eb6624f272cd28cb70716e362a4a955af94ab81dcdf1984d453c9cf3dcacd0d1dc7850db477950f39e99d209c1fbe21e8d0b350f4621fe6eaa8cdf39cd258734354c3117dd4a6b57b2d7cf66b13b12094da111d5e8b0d0aabd713c5205063e92f114aefe6bd38720e49515f7d7583d9d7b0b343ed9dd40b7e1213829d987595a9998cdcea4a1ced0b3b36f650cc7fe7007240c45446f6e71c11808ad754e9417942ddbdafa86fb0facac09810c87029ec1a21d33f51016aad3ad36a08a9a93ad41e8a2f9fb5104da6eebb1d53e8c765b328ef3beb79954183a530c5dc26b263a24bd88c5431f627efee767513757738628d2fc8a8dc53f9e2e512e2199a93d1c9979c1b5f1840922c2dc628a90f0906aee2584b71174eb2d981368edb7b4fbeb10b5da388d257d0b0946222bd6928f6cd9a5673ddcf0ad61959d444ea3a23d7a5f79e47419928c6ce4ca86cb82f0606bacc93f6200c382717116277e7545b65304269981b330ecada205a6dd748af51a88c2e19f4a50ce5330ded451f2707ec501a87c63e4b07099b8ca5cc907c129ab8e7ab94370402b2fd2608c5e0007437c1419bca4c3a72d2e2c11e6e2dce89f7f7b5988be8f4af404bc822b7acf745dd611edaa155e6873789b7a6eba3823a52b4a09ec3c68213faed0aa1377cadf138ea5db7866bd833679ac73a4fb9b2496800f4cb3f20d6fcdcfa91b8b7f156300024ca1c367b5500702cce2ea7677ebe5ca8c8abf19940336be1d71996d482984ffa81fc4e0fc5f847dd3c6779732a590f4b25fc29a2b82185985214cdb326b1cd644263d4a6b1546c536397d385bceca75647553bda34251ea59e54f4bf35ea36898a2fb1bad3a8c0ba80357601269e4a840a2f014001a579e3b22560124ce08a53d973fdc6e36d0fdff94d07b80ac8f8f87ae0a24610ee7a05d3f9ac46e5fdcc4351ca09f76025ceb2b363ff21e201d9b9be38e6ba882624161ad19619811358911519e292159d1cac654ace0aff425dae0db818c927ede4b98fc5db2e0f3401c57d00de89f0db89c562af7a423a1905ac5eee2cfc138c3e774ec31842961f993591638b047d4b28c3092180853b2eddb52481aa0edd9086c44d1740be823cd7124ee56bc3cc5c3063f58926ad9295921320c6c3bd807a0a9940e62ce794d942b9851dea2930b9920ebed3b57ddc1f05512a308df3f76285567f08386883a5fc853f130a0719788128d9383e4475303f20ec61d620d11acb9cbfec2dd95a8c033227e334127818f48e2bfc31f0f46b8be6490bdbbfad259d7549a7f92bf446f5a64e5a9d41dc926d9e19d0214deeeb14b28f448b7782126e19d937337f0ca61b4cc2d9dc1566bf1badb2496548541725526faab4ed4c447080d66a0863f2a561566ead291675303a4de82e867182fd2fc5e42048f045706ed70b691fb579e623ac919611729a3dc87ce97887c958118271a86bff768887dfe27608bc0de4192d3085cbfa6593304e73ac3923fc20c0d5c408a23046caf06f0f3cec1fdeeb0431d23bf3004a6296af3a2c871f0d16d0f0547fe6c378880ac97c07490ba39a89b1e003d7d9ef454810299f93695292796925ceeae21146ab2c65fc6b28027f38b59f404d7c4b40ff0ebc0466574c371b8160d6a37a675e54972c4f52c3c25eb2a2adc040b134d91235fdeff7c5b589e5c121a587e3af9e388575ce87d0507961d3c1d0412647d8f630530cf6d5efe4f6c6c06bf686915dde542d5ae90d6af9d2e48873151dc262160ebe9d98ddbc6fd5d24b27d20e7e322e5fbbdb9b35cd3ada7ba632d553461c279e130a8aad4104a5e1b6945dc52a580b48771d5cc4d327a75323ae05cad6b767049cd637d3043984ef63f9c6cefaa7e4311b0de92b135d34eacb16be46420ac1beacefc004e9808f978a686fd29eb6b168f762599a414b3c77c5a85bca1aab28a12898543a1996cf9a323d450e69aea4a7cf9714c496ce17328797f9eb5aba4c4ba062f8435492f520f950a7b44bdea30e112f5e0eb0d34cccd8165a28d23570d136452ce6f2598da021de3a28c36fbea23ce01457adc58a4108118f30f2186421395b06fd1cf2823fac6d8fd0c62aa7e223d917a434ee305a2f694e0a784a71ec1c3180c9d642a1ce79575db4184bc7c88de7f2d0cea126a4ad174718cf54c89d62d1d6c2223ec204245c04f6fca7b84f3c2a76cd4bd0a868b42ac745a4c3e6c95fc3767d187b4212e695293b313669ae950279e262d808d1b2e9609f5be6a8c67760628de6ac7a94d81e6f9c31fdbccf4327054d11449071e0bb733e9e64794711e8a53e89dc4ab63a83eb128f42d8bea5b9c4d113fee1c72229cfba16acb942dd7662a1d13fad40b62bf5ebfeba506534998d30a758b0ae3e7c797b03aa4d288a0fd204d70879bec2f799e1308d658dc04aab5a138e07e95ba460f3915feea2de6c7e2d86c138a39347684a92e372884d1e828b7a0f671d6fabe380ac889364260cae0b66f0121cb92efc835c3176a4d5b3fa56a169a75ef43d79c8549420e5e85cc4c7c4f5fcf478e5a44f2d28815860ed75c0cee790041e0602d0b04eafe3c3fea046ced4099ff6f3e094003217fbf7b4ce99d7eecff5936a5ccf99fdcc283ec52cd760a6b392de5a3ca36df2b21c25dcce6acdde44bcc4fd1457ee33fb660dc35f7b9c6fdb76f4a894c875d58c7f4e4ee528d42ff67fec37f960189b36ff33070069267981cff583eed99aa6ceec7c2a34e2e07e0bcf0e63b8d025aa57b6926dca5f5497575a0f52d15841a47ee64ffcb5d33c530ae69184854bd339bfee32842da6a5012804f40a5016b8acba88cbc7e58d7f244f13a731fa8f2dee81ddae3fbe466c15d0479fc5e9713e76b759d3556bd4c53de6f2000cccde4cd1dec2ab833daa4ba2a38f4b8369b814b13be5190d3c52738553927de1f98595ff594ea13971360897d144fc5f4d53f7b1a056884dd871c9939b79aa8cc3fe4f06b945aff9d826d67f4f0423f2493d7e90f6c7442d05c87b8772d9e291d66446f094b634f03a0b0136e73e9d88113620d7779435d647d75643326b713fe89352ebee7092042950a0e0071e10f1855bd98a93c6fc554348984b5d2c4fb9dad80d3367894b3c5dbb4ff560fecb753529cac056f8bc51c07029bc898e421a2ff2d3020eee96211beaf2f6ac6f08faf9f0b1d3037a124887a805eba81561e7c8ca622ffb2e49aa120cd4e22e0f88fcf2c49fe044f9a18c7027153e3a6146d23301ee8e94384cfdc50467da2c0b3f64247b810b509ee6e3a59ca3f26f776a9ea69a435c02784a92c44a7105c7c6a0f2477ab8558c4f264cee3b5b2c949f1741e55c6e13db0ab518bccea45d07a252067b9fbc263328262b5d01dcdd62aaccdd913f3878f2bcd81a4218b827b279b5965bd2c4b3f97730f04139c0e09b6fe6a0c4dcc825ff8fe96a405da2ac050608c80aab9cff47b22ea995c65fe8cf9adc71a1cc388e5bc3a13ae193aef2bffb158accc753dd5a75c12e2bf7ffec3ed8d21247af175a7a46c7b18591dc26983c05fb124a24973b3b597f6ade2de6f230f913c1d1baa9e25aaf87149f66667cc3dfedb52b51832bea7e5c2594487e289530a2c8d007386664a460f559d7a8ceb4518e3c3db467b3bb84e5d47b4ac28dfa617fa1dbc8feae8fa7b852e7f26b781009dd6012d6772e65ecb8c60252249db3590ac7dbb65b302e0a11c90c02d67832d45de3f3dc11d7a92beb9099c718cc9a744f8ad665ae0a9afa271b430f3902295cc8e6d2412e8be01f41f3dc485218af312d107651d52ec6b090a48566e0ffa1c5cddd7a76924e456fcb23de28381f618131c37ac144a020a1f0842eee584aede2a259cb2a090641191f78675ae40006f98f973adced15ef569c9cf5cc1c866841903925c705375fd1f4d92b4ea49957ffa1b9b367765261e770a659564d521b61f6afe00391a3490f38aaab9032941ee2cb4c069778587a0ec0f560a4fc24dbea57d1941a16313762b8f4d61febbe3308db54963cb3b742e0ab1126b2bc0588a6044c5eb1effbe7e77c8c21e27463f71cf33f3f81feb12bf50fde610e27ffd164d5796011b69f548e63626a61b87089ada9bb4e7803e45d570e60930b553ba03893f5d781220d5eebc4f7031594c7ef9a652c709ada9349d421e44f342e6539ca64dc7e9b4ec825daf34de0d29fb3cedd8f2020a153fff81f4aa03a50f781608e8d27aed98f6a46554aae63618a6d3ffe14310204d5675677d3c03fcc87cbd48d374191cbe4250bab1dc77c1d8b79bd1f831b0c2c83ec754db208526889a1011ee23114835d30f090d92478b99240e5bb757a0948a70f77bd4b0dcd1080678ea639931be0888ccb901a7772fc6924b5dd28b70deaafaee43d11c78af00315b10987c2334cefb5ed7c6f723a7ba0f001ffc339d1ee5f1f589e4ba49eb562847dc64eece5be0319ac7ba7b4a3846b28a59e34e2e817b4e17e2f6023537ccf624d2889246fae2cf1e84fa41f690d7ff72f7fcdfe0e2902b52ec24e91e8d6a1ac24c971ada522cd5d861200b65f1109e65dd76af4b6d1dfd6d09556462477149c7ca8834b5fd7e1f89781d8e597d9116bb14c8c59f0ab660ed6736be99e320999d279fcb9d0b7e16cef2e565f7dabf4fe7a6cb3e77c05903e1e0cf96a00d94094e70bb6bc0a72843ce10ff30f048fb7d775f678414a6d4dffa805ac80fec0f8222d49bc2e054bf75e882dd3e7e63d65f9d6a97f8b92effb748eb4b205b6016c375b693f733c97cda2ff146cc8f4b804e21d2cf0d757480d5581c9171a8a02b1a815b58bbab5d6defa879e2ff3d50098d7c0b3431051a8323aa6438ee1239cb3a90b4bfbfa8636ae13611a1ef0a2d53a6161b00743ec51ca9e64f8e2fb6c0b804ffc4f137268ad11d92ea0f05107f62235630f8609b9912347dd0e2c3a9f87b76be3e5906ece17786e7f6144cde284a7e8553fc4c04e891b5d53e004ac860a8140abc4d1fa2d62f97e3154a4afc591527f49f24ac8c20b760c165b6b2672dca275e38c7f9a25e688e44dc171b20b01c276bfd330ad3d67a95f97c32304334ded08a5f8dce6c7ac31b792131e9681aaaac526b69aaf2e88fd88446e8e7f5dd731fdf7d26e15a60a879dc5551f067ea445ef923874cec30c199754134b2b44145e0e9095f5688a05b7a14f7c9df62469fbf932cd82b39781244fb8abea5bca547c822570bd277ad46254c701a7976815d25d90e3cd2762ccae3505196c59907d8d4c240bcbe77aa105be8185c62e967cc13eaf580a3b475bb6b62d712c63795027c0653536fd0ce71814ed5f5edc1e57097d105e40700a99efbeb529a4f21284a153b2f55fe86d16ed80f1f5cf2bf2e42b2ea0fe8fb6e613add3be7257b12c6905e4cf929860ab965611a3d6babf990e0b01e400e908641c3bfba6b23f0cc59e51fb13d03d9e0fd711e329e1757bbbe8313cbcec0a6074eeca65499f4de38e07074dab624d1ce943d030b277e2802d9810a322f2fbc2890b71e3b63cc412512c775fa6c4a67a1d08c9bc0e1922dac5d46ba1cead2a424edbdddebb49f5054c08ca6d9b9febb8843ee36579134b9db5f755a70f762198e1a650540d44568d3601879a21e0246a98941a63355ef8938c1bdde7e44247a745261de1c55d93bf99ddba289ad2aae4b13ac79c70b8cf1ed5a066019d0b7671297c46f17db1e1e4afbee86aac74e6c4cfe4ace65bece7f15b912d24337ee8cca1939d70d269773373472b6891529debade878b621c653e6a8334d67876c86e4c08c899152c119e776e71776b6950ec959e84324167a45c6b2a9d9e9e532ef46c80bbf24d3ed7f3a087f95031371bf6f04e79d937641a8af816fe6c6a0381f2673f798305e12fefe6704a3ca9e1eaf1b85fcaca3191ad348a5124818ac3ea95a2703eb6817ed2f642ec49418283f333dd17a6397f9a65a36ad942536b101721f6ce68726fbc2131dc464ad739e0186ecc4c67c440d16fb5eacb61fb1688fe07e0cf2c31a6b777d18a731d62a4d1e315f729e224a3367b467edb8761572fc2cdfc1589b5c12b0c82353f0b9e2988fb6affd68b818411e77ffce47b0c628d1e738bf7d79841e44af54557bcafcac1a03a973ea815422106758385579904e612c294b1c1a569903ceb82f55dc0aa07456d923e54801b0aa3746049eaa6055ec0dd624688513011b42448bbb65624ee1cda039d9716fb34f213e46b9c8676423aabda92f769fa23ccd39818e021e34d00d97d87d42546cea427c2512f651528e5a85d01b392245de1685da6de3bd23ca2605a20639ab9d73198a1774d8570f90ad68b73306eb9b5411f0f9cb99e607aeeb7730b55e51dd09cd020af6084122bb9e7514426fa96e69451c33a55dd0efe84b7957981c14f8e2ae1524bf510a6a6c476d7cb42c5209704eb631845da73286df04916693b4d0e4bf5342bf0ea70a279708d975f6acf46a159cb0d9af57f9948695b485f5a160196d8996536d62573cc502c4cbbba34644c75a5ca666875d185ccb0e7cbef952e9c8e6a72588b37b2b150213bb005d3bb896c42f1dd7a1a322d4f574faaea3ac3ddee2fedb10916077a918c9b91f5dc30f2b8adb01ee015ecc678ca79b1821f7c81da194fe4b03085239871b65bc3da6157a5357be369dea7ef2f2c8d5a5f02281bdd10a382c305b2a3a18b53923a853f67f837d189dfc3ff7e5a08d4d80c16063b4c9691ab6a3ee98d4d9d5a7a7d26c5a371bb989c29cce5d5679e8cb6833798d9e6097325ec2ba75a65d20c8decc524c00b2e58268f11c794bb0c9d424e1453d467880f82e6f35b9fde0d7359173ec42052a79444537386ac93ab95224dfeb944b6f42341d55ac391f744b633de1b7265698d23436c2b879ea5a04ea2b676bf58524f34b1d271db61dd25a4a9a8d1185a5418bf2cf6a7117ebaefef90142cf478483441be239adc0cb4e104363e4eecf532f5b38689fe302182ba4bdfa32db969102ab6dc582117d0f25484962eea0153a0492c894cbc6abe27bfc86113babcf2a934ba730722e89817a456d7cf4f04206deee1f493f001cf7486e190394b339b0c314d3f4828fc479948f47953a56b78aae39dbd753fe48065a9e5fe72c7f35f41e7cd88acd5b9ec3e5bc868b50d799f115c40c558454b339725d30bd4b9e5414dd0dadccc7e8b23bd69274bd1aa44245032baf0deebea97f24ee20df9e871b41e101f8cd7e023c22f431f073a90785b4318b7149e5ec5280a4f1caf56f15cd6a1b394b9567d28f1eae80802783eaa23fc4981e49dfc65b0c722fb110061305b395030c37bc79b7c0836c5448e23d95d4682cab32a31f78b23995908e5b1401cd9a709517b67308807480ae812d59a0ea77e0ad997f26de9133a94744fdf9e1646dc41ebdde5c49102c6a543736edcd8d0735e2e2d6badea955a6531c80035e9bd2b9da0e1a1d1d7247cb77f7d363d8d834c6df23c738d13d7df36afdeda2c8b9a1da1f6195625c69b04a6908eac93d0166e39cae494b0819cb9787ea3cb67b5fdf3f7287c4fdfa95f493bc64e8cc677ab314ce79ad4cdcdbcbe626b5ab20c1dc00d4eb66771cb9a350cdead76c4ca50bcbbff84e57fdce3bc14c7c7a7fffe0e83102e5b3dcbe5b68caa489bd317620b338185e47113dcf6e95ffe9a2e83adbc62a11992d9b7dcc9f97fc742b41ecce76a9795b7d50ce04402e5511321d8ccece516453ed9fc0486d71940c3bef5e555c824795a622baddb407373f4e2a420dcf302dec8fcb58c3012ffc626ea1692bad1b6a9747394296361e3ddac5e84feeb4ec7c292b8432735dcd4951d13ef9d6c4e29182bf9af4d8c10cd38ee74abd6167cdb3b959aa7cd9e06539f9a6dae0116179fd4a3aef8d464f9ddfcf43c6cf4f9c80b2e11e5ef2749ce1417c67c66f4ff574513d16338f89ee39ed01389ca4057c91a233a1e89518ad40d1a36c06e3ccad277a9bc54d028ba17ec17a86c4305668de28b744b909f614dd21ac245c05aa7de46c0b5b0aa0cf4985140abc0fd22a3074d79023ee1642dbc4e6bf896769bb0c851ac7f0d85da68e87363c7cb8788fd74b1a9690ba0d2b982da52c0b32722831df64ef63106eee8d349c1b91fd19ac83d575ce7e38ee618e00ba5956415634ee82f5f0d33c3c38d11770ae24bd892b7412b76cc1e67046ee6b05eced50207bc4d906f2d8a1f07aa83d1c637cda0e2518e6bd76f972c6695147c1f616980c034e172d8e8d6facc5ea85c8c7657c5b923c05f77657b266735f10a52edb3a498273b326edadef43099679d5d103aa333f80dc4a14b048bc9e11ca80b476b9e61315025582b4565d252adaac7e07912031caf689f3f8029d1def1432df0a2669f5b8812fa76c751997f20cb07923cfa49568e6d2a7db8de0e9948b9f5bd26e3f331eb4befbff22c6f6fec36ea3c26fffebbe11eb2478ef75fa0b2a78dd9d34890c514553d45671923d3d2f1bf6dba559db8c6a9f2569dc16162288598a623ea22385a34904919df47f7a8a60dd65f8b184273d645a13990c6bf669472f94c83e68f6d3a4d9af27a9a7423425b2cade5d6561069d67019887a420e71ea70f65f8ca666044c82d2eeab673d80f82aaff593bb25622a460e9246a6006c40652044e142faadd3b2cdb2238849ebff0bea50bf689aa5142ad704b2a57fc4486f5138fadda04524f0a352cb2e9323167b654bed9e224fdc52e6d0ff71adbc4112482c5e30f3e6ca7fb74d859112852c9036acc5fceab0388dfb33bd9237b505995d046e3ef8af5c73c7be9fcbf6b5b28ced31345a0b906d82c8c16747437a8b4233237e2a0a46559f090e730b9e515ecebb6661fccfb0beac590443177373fc1461602e4b2dd43bda5a85d808c87a92cec3314edcb91c0fec1dcb2c6ee78d64df01d5bf73100c8c80d1bff79c0b6a26e706fe53fc1eb67e3636a4416577e804e5e3565c189fcc3626a608af99ab0e30638e56676798f59130e51ba3ccd70c10a62223076dc8bb532300f08bb72d49cb197fa475348ff1d3b7550f6c9b48769ebb284225a0e0d289f6611fe76237c576c1fd14fa4bff94c854520407baf83cd54635a93e11a017e591748304b83e919bbe5bb3fd7ff82d562db083bde26b92b63e28d0bf13da9e389892ff0538e5cc46ac10dd6de482906ad28ed57f87e077258e4295d1fb04b1fb4c172fc9b1c02ecf71acdcc5c59eb4e9666ce226a5add85b458fbef6bbf96d26caf6c09f9ad66303f12830d6337b4dbf5029a51ad6f6ef738ee20d40afa261c5562f34a76567b2fba2908da22d3a1d8cdbde8573ace45f6517aeb9b966af01283297ef014956492d1904693ddf58ec44c082b7131c0c4797405bbc782474905692c06ca89b1d2c32931bea094237245bd940d262228c341ea6be851ca4b5d5525b92a03c39092995e96ee20ab2997c8788db9c57c6b0fefd4fbc5b5d073cadea6a06fecbcec5e78b3779b9d0088062069942f652f45d5faba64cec648372be310efc60f9e53321f792c0b6963364722d953eae055cbf950b88d2b4f0706b33dad658c764e26bb824bfa175443a4dd73d1284d9e46f25893090d3175ba3a55669ea7b8a54490c5a36042a33814383d772a5884c76f7ae2b6998135ec60168fee51e80b50f7f247c374488bd5261d516308946587f9b31e974ce179a4c43a7527353b356df7a405bbc8513fbd2f26826847e32b513e5f970c41f5dabb68ddef0bf0652c485e500f1dac33fc4024ca0aa7acae88d40c291f958b5c7fffece93dcdaebe92c43e67c224738f6eec069043806cd376c73ae03ab8d1ab074c49175efedeac99ac09ce953a3e553193822df9e4253f851243676f5ac3ffd9f163ee35a59975ea59b96674f860260543411eea677d361d27fc1b142aed983d94085d9b687cb98fd3c2b004de879f6e0fa882516ffcc4760370412db76bffef83b7c3e6de682c7322d3b766a3aa8697b1e60f5d2b78086bacefa13bbdb7bbdd87143e1387cac8b1b916c1d29fa2c4828b5c185ef93e1898b6b73c71dce1a31c520d5493b0319cfcdc824ebcb601c94f159759d8284e101eda2ee24f61d28a0c9b9019abad12d3c2e27ca6f88f0e9154f74233a58a2ed89034d617b4c87f945d22c753c92da2470fd45507becf4e5052740a3bf948dbc1ecd2462cb861b5c2530df4bbdf66fc99bd72e35702f1b05937797384d8a94f0684dacb609130bd16f95aa0fbaa5090662bcb604321fa9f2e8859efc215852800a1f1de1f45d4cba302bcb86cd9bb5c47fcb3f967332ef832f9668e2728678084f7093cbd346b51a6e77b132d6f5e4404e4f7cf101f2795dba4c918387ff09b2ff9dad6f4b26d5410b29e447b1af905491721efd007991ac393a728095e30415330fe7d60603aef900a7acacb1d9a0702755e61cbbb7b50a29e4112d6fa4bfd29658a78ccf1e82667f3649eba52bc63dbc3aa9d93ab2342a11ab11a776c762be5187507434b7abc100ec8b5515bbbaeac9ccebe13079c519440ab20155fd408aed69a7d6a962cb797bd8b270a18813f06e319ddeef316ce5da2b5b2ce027316e2021334e1202dbaa5c2c01967484bc0af575be2687b95d79d866db647d5ac8d062772bd5f80e14f43005e1ea553332fef2316487f2297e3c3cbf4acf28d03b54ee711980597997423cf62ed5919cafea7762229b87b461e7ecc52f7365054330ae78cfcbd2aa67d6b71656e299cd091c86017e7cae01a385116ddc73f8d61293b8d751a018d3a6bff27eb8db36b49132ceb7755ad378cc59a7928fdb9fef80c6597ce39acd8999497c018c1d8b172f722d95d006892e4dd3330bf0a400a3378ab9b809c25c855eeb030c47ba0b90abe8d49cb1882089cc1be913a987e457690d7a5d43ed19676183a0e5f7b7c44cb8da1f472377fa787d265e28570dca9c61ad519ccd9b9da1d4ef58d325bdf96f59e857a05914cd3998bd23fcb2291b0f266166521636e3f80bbf9df2f702bc737f159e2b609bf3637030cd8bbd1aaaed38695cd1fbe1598fedb7beb879afd1f1e775370aefd744a54d951d0e30ec4163f01624c6b26004d2a4d1a64980e39f50b7028c714477cc131ed091af1cdcef456ccdb829f4fece41ddca026a7f9b46f1e693f5ae4598d3ef40766e10075e70ee695ba03432554e742740d8041692c5e3f04f4df6792d45c57aac6d31afe779d79cb0c15af7c0314ed880c0f79868171e0191595f85d4473c20440a8165a0bf0e4ebe9c6ecbb22790234285b78239f143c6fa35dcd8c3d043008df2beac598188c289c665474eff45fc354aa584c7953d4daaee60fbe7f1c1e76011a0412c0541572e12b45a309d8a96075832e32a12913e61f7ee7c855f197b86394d9671222afc30f49b4f724abab1c87f41efcc51f763effc189432dd9f353a13f6edc481dc4fee932a85ef51abe656e56fd5c6ef15473b8f66894423ddd9a9a3983a0c600b5fd0bf79e3f2274c795f43b1f92102f6955c8f7431449c9cf67a508e87b904c576002df25edabb5fe015d1e8b58b70afe6779638342e3c3b80f88db6e1b21140157d2ce96551262ce6f45e419c5a2e502fe3dc9372271c200f371a52e5bd5f981ba218464b00e8bb757f9e2c19150ea5f94c1c29dc231acddbbec4b703c008bffaa8aa363631d51040f5e3a8e49b6a9e79c1ed8b9d45388300c18a781cdb8f4d4df967fd9234e5b1d723c2f8bbf81192084bddd7fa28a3fe691db6a250c46073a16784b58fe46d65220c041cfe79ff36919a1be637a0d1540c2c29b3d41b1acc31587a2fc7fa513cc0c7151480988700b17da136c11cdfcf55340f7458cb7c85e5e8c43f8128e53a09f9e3b93d4190951272b54c39dd34f8452890afd11968d37336ffbb55dd34350a2dfb184af9fd88d1668c7207fc2691814c77c0e9f342365faa407a7dc37558fd0bb486bdd5dd06e623e32773789f2ca650033aae949706fdf1afd2294e0d60b07d172a2de18820bf3db4c9bf2bc0aaf74b92a4e3bd63e659f87e8efa49587294bd80b4f1bfb8adbea7b07f8abb55d3359b2647b1441518dd400646391fcd6376b4064c0f9ad76bb64ebee1cdc6100e4a9e7f346d0426973b378270cbf0183a7f83ea49c80b885f77cca52b1fdbab44d508515f50b4a15403a575a55f36f0b1fcc0270b85f58dea5762fae7ad492c83670981ece1204a7e2ebfd5f1ab21f4b28c944e047fd3c356417fdcd03c2a23f37f5abee3b9d158b7849e8b299f61b6b157582e36c0a15f8c60e5a2b0f9c91961eab714b35ba746eca756d120078e6aa81a512350c230501203388f79aaaf80149a3e03cb040740daf00eaedac6cf1027f1a2b32ae2cd668300e8e8f42f148f93fea5022fd459dce6e937a8d53e54d0749e5f403c19724d9d4b1fd76763cb4e78556360b73ae7cd0a8546240996b7823ca00870f1e9f388f690830acc8c3a6f2c2fb26cdb0e3e29846b5a70798878613213cbe4fd2ff5ae56407383a420e58d66f4c36bbe0dba71252e1a849dc4c6d5828dd547c2385ec4d4e48d7c1301ef34291d0481a5c962fb04d5110ad8b8bc3dc92fe95698918469ed85dd9181c5c4eca886996d48d7029f625a5c0f3f546127758cb7745df56b4224a4678d820ccf919b238f23b5177740cfd3cda4f905872f5705a63fc313750df1aaba6200e67a0a6a044f63f66b95380d1361804f08e3e8d7c673e4e585cc4cb203eac0c0b67f562a1695ff0c24a3d7e5392806ca0b0a02867d040ef6e3d582b9a4065f4978a3ba6cc2eae0fad91c9f1c7b05770af1cc52f31ef146425968ff32d74790e0cb8a1693b0609a58f9132e180361f0fd9259d473e2af77fe3196a3559dd136bbb475ca8d4fc7446df1ec051c2b19ffb97b3ea20020056f9721a746cada5ad2d523d91afeec8c3adfc7d243250d5b5ec7b47743cc5e27fa70d29955ac9b4bd95309402b94a813193afae6221c85f301ada895049a55734d4d6fdd66da10dbfca1d54b89cbf160751aee3507bef55031d33dd7530d7c9478c8cab05c6b616520f229be3f4acd8cc7cd6b778d1392208e97b9360b470335859ce7aa414037a250733c24bbf3be97a79c3e9f23916df78fcb91b23baece61b8a4ed13b5e07ffda5073ae65ed8ba8ec8d6d43b3514a32b3638a592c0d13a4fff967e0f84d6ad172347cf59391cd798f1b39c9764a4e0158c95a6a0f88fd238532505e3d8b3b6ffeb4b8412d63611cccb8547f579bec515f7fc7284a92065e7810cbcfe5596ab11fd949f74b0e78542fba522002dd18bb4dce868a44fa18f16a907a0a6ae58b6bc57af0c6a3f1fece140f44ac0e65a46d92cbc013685aa457f37a1bcbaffdaf30715c25bc771ce0a1e0c9b15bfba74c8f376b8ecb07f7961063a15ab9cbc58aaf74c8b202b8eade192540669c1dbd2c6a8887266dcd71a0bd8ed9305747efc018e510f0bcb1a58048c0a02dee7db253ac7482d40952d4ca22aaec117f647d68bf7fbb4a871178ac01b9ac181eeee82e0a4784289c6d4b13ef00c4012bda3e8b4b4f9961a5806f248c6640d36bb5ee0efb1488a693d639477f02e3fd4c669b4053209768e5da46300a7dc7bb1b214cfa5c23973d87db44732cdfe700f847fddaa7cc1e96f24c21b35e23687cb3f992fbf2df4b960a83c66d1dd40c333376bc28076e3cc0076766ab567dac84e0ba3a64e0502afb9dfabbc84d3b7091cfa417d6b90fefbc28980d0e74a5df4eb93afce8758495b25db827e685ae3ca0fb92d2028386f99668ca921a6322d81485464e32dcf5b2e24bb562bf97a0e8d95405036a0e564a1e7d363ea0b62f5b672685ec3bbd538ba1a125bf56e61067b738ecbb5af713d8df70f4d3384e9d47864be7d000908d68e2942829c8d4509ffcfa17b8210c3b9d99b2e61045206fe157aedbeb2de618581076d37682be611d6889b2421533605b68b7e27a521c239b7c222c75394d409503877d4ebaa632e0c670272f3a002350a55a2d40313bf82273909ea464f27efcf8c5b3ef0bc82d98dc0f5a4f07ec7914a6247e56964143a21d5e6907b6c3e793ba63c79036cde32f2a064c0c8ff095fee8735b915c86b1aa24e35598692e3e0c1c14214087f8ceee79b183269e626a079617b5aabc7e1f67296ae1ca4cb548dd8efe2ac9a149c549462a7894953fc6ca172567c2805e77400a5e1dfaf8673aae53a1ba4f8503148fdb2120c5791c558d409e93822f393ea49e083f593cdfc464d2a225fbf19d830bb97be84cd9dbf2b661dd981f7284b10b2a20b28050712745ed56f6e3dbe9a99d2892bc55a1c2041c3c519d9b7320769890d239ab943f2de4901efe381fa7fd1c8bb61e72f6ab77e9cc29ad3554a969e54f04f970e79c953e7dcc093b14f4966500b2a193acbc0c0b4167c89a2dc9dd05ccee1929c7b4a85dc3141f3ca09648205fa408612bc70a5f51f6c68d403c755d2655b44bafd150ba1102d395d66118e4df20b6f12d14fd32a051005c0fa38e559ccd675706f6240351b0e5f65f2de06d8c3661922747d7724c010afae3d41190fe9acee664a402ba9ad9e5c0d97b7e60a95947b5a809db40a9c966eebffc193f9c2c794eba4395110988e1682bcdefe1174cf9f59d7dd7e86f39b5c248c209b9db6b674d5beb3baee9d6964ed0c4c4d6ad8e23c38e4f2f7928d4ec5413943d9a70766b30b38134473a065a46cedb059d230ffd76c8ed67da7d2b5e466009117dfd8334dbca70febe919e508cc817fd95099ab0fa099c25cd7694074f90ac83dab5daae9afc469127790c76fd8992bcada412a19ecd3ffe2161110fca38616ed0d1a8d23d297f5c59da998506562419b5ae23d689202f067087be65380b8abf235c62afbe469aff916cd68814529de095c3073810e72630847a78db9cd4a548c4d622f9d80949023321ee8a27dee0abdb3163736079cd63a3657ee1e622d96641b46152ca4b632cba8157db36caec16ac89fd1d0ccfabc575362f3f5068be7653ead862ef60efaf76d202c0934c4a38f14ce7c1efb0ab54210ae6fa07cf488cb9ad03b323b5cec7a73e8e88c4e4e4fc37f06c049e8088513361d7db5d280e4cac97f64af07e40d48c05bab461ffcecc452171641bc78c1a7f9bfcf995b5705da1805006456978a123d549e8b16e9b603edd7bd126cd0a818e554881acabc9bb54b68aaca7bd6443aac39fd35450a4032775962ed5d8b424146882cf0d89906271c201b84b7217fe5d135f630f388effad55aff2fa46dd7ec26dfeaca32b95f0f420178fe1e595007658005bc137d26f95d5becc85065f6b79147f2105d6abdf59b588c69ea9d2745dd2daefdbbec991e815d29bc81ee6eddcf4f431eeaa329d7b405164b2629836e6007ba9fc04b3e7dfddc611baf51fb6e43abb3ab2d5bd6e377cdcc5c64f8fa85ab0b5fe22becbdd45d548676906e9259bf158d40a71c4cc2ef2c154dc01ea72f5ab1c84ae73e7cc79589a0a9ec976a905691afee54519f30e9c2a0c49c2b619e1158b1f6fd94633dd94105c216b5569ef3ab2a5a6fdbcccbca9c66a88193308b9ce97e3baa931349cb254d6083fcdd27d67cd4265a940c55b193f8473b243dbd59c88fae8232e9231533955a88ef567e688c53080702e65f09b40fbbbb045ed76b28f43a27b6f4fb2839393b21d41c37a3ab58f2473d770d38ed12bdf3bdf7eb3f8a3f5d38e17d0f934ea4228481ce7f28dfe2ecc3527720966c8221c3ddc2f22c6d1bd40de1214cff113335ea7c4d88083f93e9d4f8a6c51ad7676d72c88a72b337ee18ee15155fed3f0fa57e0078262383c5517adfe4c7409a0b55ae21e763749af393bf597063fc5e2a991a5d99511a490ba3a810c4a7ac8cc3c6d03f04a2ef6312a05f8d39a82b365af262a9b6ac08eab8678991ad1273b5034e8e0479758973886899d55ae0971421f53dfce6cee9fcff396af168531d147d08d588ae723102f660a2754965a086b8f768e0329b72f64cc73742a2208231003e07ade6ec0bf0b70c95fac807e260a6093520cc828697bd2fd6f61a59dffe12ae923b609e92f79575d2c1f8c2b55c650dd221e5d8fad461b7dafec2dbeee12a03f293af8ed082345b2b09cecbfef543efad753e4f3d58d2fb17ca75c35ea46e46649e45029a9131f4c62874b68f88b14aac756c6c94cdc4835d7c83225fba824c760a4f2d58d4acbfbd18dea97b1d4435dba279ae782d5bb118513db8b5d683a29df5688e3438162e6600baa792464a29040dd038a5708a80aba1b42bb9b270aa4eebfcd24ed62bed6c23048bfe30bac9e157ff236129c598c5a8c69658d5002a486dfa06fb05dc8f0ef63e31513c65410db5d89f39a88810ebe4bbc66cdc5ba1d3653045d9364153e87e3fd97fab94c3612ff566e40077d924cad7b8362db356b26290cc4654d22d4646f3a43629623b5830384f4b40989dd42b85544ce68d49022d1a09211895226e93a8fdc5cbd40a9fb2082753baf76e6be282801a8e30f083816fcafe85476e6730b1f78f603bc25088d6b50e1433b1825b9956db71b388ae9be14aacdbce69206016b38d21ac54daaeeb7317adf4d132dacedb7eb68587332e6f8f86a4b210861c8468878efb0fa826ab1c7324ea30f25586e797fdedc385233f9017ffab87c56fb1d181cb2a91640639d76e0b948122911496d4857c67e6b6f256f88098e6626d3b2dc8c62300a88e707e0b6aa1293517929ca7eec10c5634b6498a8af0c8b37eaae5118389c95f9ad56328d9892e1f1f812435c9e8903a2ca8bb1912e65f9312f4b4c6d483b469a2d28d82448152ad9cc497e315f0659fcabc00ecd9e9e956727bb8655a75f6817b41734e33b8518910a3d2cb69960c8e104e38dfc63e9d19ad596293ce849cbc5154f611d451736759ace6c8ec6d9cab09db566a03f6e8a478933b2ee42073cd373bc66a3d35a9b822acf39fca58532edee83dc8944c56d70dc46f6a142cf68e2432211ec90560075e0ad2b3a8fa5393659ca7e1479219797d7b08b1271c67c5aa5288d72adc1f44dd0df2559789848caf1127829fb4dea10fca62ab023f6a96b46afa8cb4807c86ac6e0a45ea8bb7b5e1a19918ad7ffb302f6ce8e1cae912f190b617456da95076b567456f12564c311dab9b56bd3d25d4dc1254192d35beb080c1a66588ebe553d9865af00153cabc9faa0e86b13ce4a8eec590f47b6a1fd50dd47efedddc8f9128d5bccb8d9fb6413991f5abc2b956bbeb60c7597e4be021094df93a13a13807a332de390222ca2ba4b970cba4e3f2a7cfb4139bfb75c6fc9fc88283961bf7652d962c359dc561ae470411eda55d335cb14308c5a2cf70e612d01eb2532646d4813a356b0e92a3cbfb6241d016efe5e5e8aacbf3e7dbcfb1c46ce7ae9980c7186a24451240d45a2ce528553c20f624a25b65301bbfb212d12d6bd17daf833e553658f3eb90c0d75eae44f85dc2ad32b8bd666939bf01143a03b6755374be3b998f9ffc148bff1776642bfa0ed98ce8a432ce01cbd0a108c2fb95344629f5d813a0903a936216697aaa7d2fc55e83977113e4844df55801df6a1681fd74a098ff1fb321140a75849af860e926e690fc0107a2fa8fd801b6cad4c91ad402e3a8e9dd12afaf4ab223a3a55866aa9261b98fef88f853077891e9fb5e75586b86385abc68315bc058d25363108bcfc05894471ad60fdff5144ac3c387bc397d04adebf206ab30f11fef92dd00a1a68fcc63e5ce103ccc1c8eb15cdf0e0dc6de9502a67edf47bdd7dadb2481a3bb0c910b02b1e7d610c228cec6a26da63d7ffbcf599405f6b1e3af61d42be461d6153282c00b47c30a13a690b752bc122ad4273939a405b0eb11af118200daec512b09d14d9d51af6ffad554f654fb9fc4f6082ec4a4e666506f41941b57d0ca92bd810dcd1183514551b57a321e65cf7b3c43143c5a18d7bc5b309cfb1671bcfd2c4cf1ee333ee1eff11c5b2351b74bf198d250ad2341e3f4185e5733da57bb0bb532812b60dcf3a3a4906e1627592a2d9340df0c967c7e054f32d1793c55e45814257ff799ad037cad175632c8c340943c35b16050db1f3fe73194ebd1f5d067c1ad523dc1e2603e32470705d030cfc4ded36c386385460b10839deeb5c916d085d66bfb10ef91f48f9be7835bc07d4fa07925944e3a6e93386b8af0b2ac04594311d2bf3f16fca99b834a9e16dcdc36e4a6351fe314d120428e6852acf293653f84a2a01e6a1af012e302979ae4b7030ebdda98a67bd05d82e6697cdc500ea1cae2d199568e276fdb7e693698f4c4a335179b747f04f78d49803bd42285458e2b0c99080a14581190c7df2e6970f0973f8d04277e265ded9dd5a051c61e7c6af20cb865ce5037c5abe818f969e6517775e1e5f48c6f09be26f0b5627789ca66e9cf5aab0222826607a7df7dac9a1b3677df76008488f1dfe8e949886d839bd835368ebee86e9c73a8e5f10aa1f1a31db42cbaeebc72003d3abbfa06abac8349e5179cf408ce56948b26133b15d067ec2866e3e975f008c48b649650f6194245014cfe8bb842ee7e14d6b0c16610652119e3ca0d6f64025db5433a8264ee0b48741c897237f8f186bcda601670a01e2f0b9a8fac2f3e96979185da8663fa35824bc9ca4f2e34b427309de56177267a8c4caf4db5eb7cb31273b91dc4e9ac2841df3b5564f474231ca6fcd76bd6d61d3e8ce900d616f738046c9c3bd4a05b6abdafd8610fb0dbc34422344c4657071d4f798b852792d4b1956da51f8c1318e60fc178268a1c50b29bb4f30ec03776d36e009f5db9dd54da5cf648d9508d3daba36884af9589cef75012791dccc483fb37dda5a19191a1247225611bf8ecc0fb1c040e43c244f3a54612375f6402986c2a903ca191935de78c304011caf4677cc61ae8dfeb7185af5ecae81ecf2d8dbafb28162cbef85abe3ef8048beab12660f2deb7587500b4234a2178ebf8409d878e5377d15ba67c02e0fd7374c43f9e544a58a4283e09a22dfd97cead7cb0172b5b16b280100d4018278f35877c05ca60ff72024be4cb82e8d7d49dfe3bb13d848610e1a2b9ad127e283e14c58ff86d00199f80ba592e392e2fbcf77341248cec8f7731806713342a8c3629084a30a00f89104d8745ba543a9b474fd3549731fb511666c0dbb78e6dc37477e7195c80ee34413ab969677907e76167cc6fe87a8a9b35040f92703fdc63693276eea958edb6f743b013b5d74035ae22db4c02a60ec78b61c7bc00c0dfc6ad05ad2e532736d8487dc63fd399d63f7054088b76ca983c8e19a0f57d8225cb7a5d31e99ed8d210d687742bb6f94bc27c4063e0405975d44835bdf08c5ab1a589d7daa7ff7f805b28b3a7bf0de41f0c6120d9c162b281530889fd934d1fb7224367724fb137dc745fc9eca78013b0edc86fdb1bc9d4b6144176825d0d3087d611c7319f991500c9031c666e149d237150e9aa65b90e025ef343366fe98042f0630fa08057ef2566f0cda08f7fb8538dcedee83a50091b6c5296c70c66eb564123756608d163ad27f2b828b514cbb75348f24edad9b0d88abc21da4956b12291759febc9d60a41b43f4b389c08f17556c575e4b5787a764921e8bf72078624f1ec996fcdf14559b7c040b733f4576bde3c51a98f96a6c5fca276df1c433fe9e3ec9bc4da395b553dbdd5c246cdfdb2f6f524812d709ce27c1555afca0a196eb97fb4a643e7d7519a099748bcf262b720f8ce3ff26bcd0820c689617f8b9e39af21fcbddc9a6e3c829eeb8c05cdc525fdf3567ec09d24e6ab41670df630f151e5d2c477bd3eaca282164172fecc3e11f49123330403b25c0083f48047a054180160b6f289317847fba964660a61140ea8f7cb26a5ccaa4734852a4f93291116c25c5e908ae3b088d2b84fea69bc21230279f2f0a23fda6754875a6f8ecbb1ed83c62839789aa5a8492dbb656499f4425ba517f28015b8050bc9933b6a1c5f236385f8781a352b2b84cf74ca23eb28e7f8190a478540920f66f759be06694f5c4f41a4716396997a2ef4d93e3ef4acd520014385a43cf036de5c4fb7976433b405e049eaa04dd401f60a89b911abbba5b0d82217383c63e8694808a54661ad5b1c9e43acde961e6cdf8564306ea8654cf5739fe8d51ffc47bc77dc652ee4ae06f11d98a165dcc4991154dab0160f0523474ed28afb28836e451793818d0b28364221e3805be3ab9ff2ffbfb1ab0b6b65dcb5e4666dd50dcc4acf791a500d636be0cab43524285b102bebf3aa6cf80625d89f7cb739d52c5e4a9a4b3fc085977c7da50ee5f9a0c350d0615b13244501844163a839fa9f7645ff8c217e32617c4210615f7ea12161f1fbbeadf77350c7ed386c920ea8809927cbf311ba6ef8b639a258aaee82cd06d696c0d64f8fe8cd03d7c4b4076544556b925cbd59d182c694efab46b2a434250a0b6f9c3a092e109ac7f44b8ec6a3dd929a63511598ea39b552ec2b38029a0bad3848e463e6ef43bc8f0cb9457d37298794325279d0caed06914a50f4f7931cc082b4cd563591e31354227d1ce69a7e2b97d27f929b2cfb1f0ec267d74907c3b5e9e24653dc6fbd2af72be91e8e9258dde44eed6fa81a11dabfaa70d343fbe640db6a367a2bea9c264ff30a61343b503a864852d50bc41666925b3ed41a833ac667028630d410182fac56300f15104116ddad739a582213e897185fdb97a78e3b6e428a3f67474e038c03e8dda56867a83c80c2aed6cce585c15495d4b961c0cdd0c370b3ae4f52b8481a2e4647c0507e3fc23921546b06f02bc5738b27783533a9775510594f53dab432feee196ddf678ff9d9bc2a1ebd814e3a516b7cc4fbd80a1bba338a0bbcb11d9adb8b9ab40cee37dbd3f42b7e2f2c71e99a6e709330a18b1a16ed8902f327192c17752307f040398601346926aabded664b7943d962434ac8ea80c69a42edd89be0416c2b9cd94dee140155fd7387a5e0e9e530ad2b010b58b889df84eaaa9245845e273877f1a6b9ed2bf8a6f87e12826ca3d877c7a1884eb1952538dd169b2ced63617c1bc3b766ac18ab888a5fa847a7913627f8a83ce114e2013eb5e6b09c816e91203c9d34a948537785584dcbd0de6d603c06b00b76d5ae1a0877470ba99203a3f29e6fad147695eda73017b75eed27eb3fdbe2b4d4775eb35d8562f4efba33109f31fb312ef5c4b22d6e09ac3c7319e058a6b1e607aeaec5ba911f4e60e896c83ee6c5da4c6821322b2d559e9d89d631a658fa835d765badf6898e719e11df87a73b5354f4421df7fc403404659f82649290d69f13708f3adf5680a6aa1701702dfa26969ca991e6c9d109d823a63ad1c1940b834ee34e6923e2ff08263f3fd0c52487c29258abf022ca99d2b06eaae80183c066f9327931059293cb465f8de0cc8a63de7bb67bb4b28f1d40faf14c4a054e230a705279d7ef08b6cac0a7da4285e175dd59ba0ca49674bf89bb7ee4e249f037d944ddc54816494a994a94bda72e2c3c5c7f288319179c49af333d28fe08da3359fe2d2f3a4c71b39755142453f1b80097cbfec0b4aab513b34a946120e35a1fdde0f00b69c6bdb1d9fa830be560f425a59bb1e4d584ab1e6be006d9dce3b671b573eff446f00da43c0299fd5776c60708696e3a1667d0d4e3076b77e2c9fc302dfd0b424caf3f8b055c83e1f493b1272a2090285cb7fe1a58c7dfd0d45f92d4194342be4cf17ebdb0f29b99e4655f8c31c732c1ca4c07d71502f6db90b1872dac6b6680ea955dc3e697f3605e16a67b5cc75d63ddcfb4fcbf7577cf94a75cd3448c9158107abf0c0653007ecca986f849e60fe9d5d006ea7c43a289cb8c90910878a3f84316127bd2f9217b060e32916845bdc7fe8c9b8b4e1f463f2413743d403098a0ccca4ca9c4da91228db1d97692a98a848a2c1d70b7b35014074a31ec502de4bf8b7db0a65802d16ac96bacac0fb6eb44247073dc673a156083c2e193d2220c4a17ca44b41dda9d9172b7a852cc4816227fa78e5e4d2be86ae17adce1d7c12f7eec96e9f380996091e8c5cb75a293fcc779781f0906d4a13284e338add8cc448ec3e32e6209e96b16272c5fa84a2df0a1c21b5f5e6407fbfa0842c26a880580bf1207bd949c58fb2723b46f39d054165d390742a252cc7fcb4faacabe39e2826757beab5b03740197b5b046690e578f25862e87cd4773a61977a607f629eeb6288049b2d53a10ab9763d3c934b6f9d4445dd71fbf4a1f292dea872404416d669ebe13e7c1e51433c47f88e8af947f3e6993af4d77b50472cf8620266c4e71bdd6b823abee10eb3442d27d96b8abd998910f73aeb8d6375d8bb0d08fa0b4e68cc7069e47762720b351afc959de2a3f2ded493fba1225e8ea1d92d059d6004618f74f535143d8a0f8aefb8b3878a0bb0a7879f499499a2023e40121b60d46b2c0c0b58bd7cbd204a2c43f449c383b3bbceb475aaadf710df02e4c3ed1c2654b9b040e0d13202c576937d916bd3e1c0ede1785fd72180ff6b5fe8b50a3c39649259203502b359a0058472587376aba4e312a05d964755a9af0994fe3c482fdc79c3b03967edb12f7f9cda640008fd062176ea1fb25ddbe88e34bf4e9d4d82620db3e21bf4a9d3a27c18950c55fb84e3df06458b15d920d416496371dc150ce3586b89e1bc739ef42dcef178c100c58df99c4745994d0880059b07c49f3841fbfa7c78da79f89d8dddc7f4537c8010338da00a83f355547ba3198373ea1538e42a63a5b764d7cf4a5efe64a6379076e83231dae06483650378824c1e32635d6c3d9aff395e82fe176881857a7f3f4baef6468b9efd25b5a5c4f3a02ee6756ad80c3c0dd2365e2e29f0f4903cfb22bd6d209ee58dd8da14f057a142765c33d9300a0d65cd19cb6d58bab6bd18fb8e8d13a5b00f99359b8e73d33119f841937cd4ae53baddd3dd4fccb821935ed5f268040adc36484615aeaa7caa231df65d4915f1a48a91fc71bd3f658eee89479b1f9e55fd0a4225af7ab460e1b0526c63f61242f64b008c65a108e167b32a433c3436b93cf7e513a600e62859ec3f22690453151471dfa4372fd340ad94535f15273123424d7ef4efbda447cc1d9973d7c3a7edb433ef34d23be73895c02911bff344926b65999290b69e0517ff3e34d3e1a536be60b8923add4cdaec6df5fafe8cd2a66b41d6f423c11161be418ff3fdb1402cd91191e8ee10fcc6345b193c3638df3d1175b0b4a4b3f6dd401eabfdaf6bc957412c79fee151fa3a846949a26d19fdcf82e14809201ad13b8014d35c1524faeb17db16cb144a76ccf1d8ee19a47372796bb87d33e9359492ee4c4fa3bb9049e4d4bae644ddfe6cf61c0f881b3d3663b0efd3761b5384d0911deb6a29cd1278c9940f5ae23087aa6fdf7d7314454149f812196dccad3617c1ae5551194643461b0319c9bec9a1bc66ad7f77482e0caa02693c7f55a579b61f5a329252133b27c7f0e7631812738ff9ddc6257087f692bb06553d1e8e6d054e08f9756ccfaf1cb6a05b7787984e1dc6d2e608e36c59162a61e281e35e1c717bad2c0bc0038a328445c4227fee35e2ad3432b837a923fb725bffb9a629301f026224cd28387f663c24f89de9be25839f009bbd04538604f0c036fcb75d6d6dbd379a47991510a1ec60c2bde2a2f10347a7eff5509809847dd3ab9d9a8e9789d7d5ff790903a2bc4fdcde0582afddf386f8fe26b6eca55a909ae760a25d798fd23177b7ee197f9262b2bbc9516e9f453f33f498243088f09e38e52bc34cf07ebc23374f296273498f200ef4d810afb181a0b5d992784ab7b7aad78ca8b8ca8160f29e11fd5503b7e25f8d027de546ebe003d1d83bfdc21538ece5216702511fe1d256fb6cd54ff8f5accc31d8ba6df3d247cbaa9124b8660000e45087d6605919a2e44cc83bbe5893564dc9fe1f776d755c709e569903ee8d0a751033eaaf54217fdd77ab083b2c044225599cff62a8df79216ca6953cc6aac11f19afda7e8d58abee6a53686b592e8adff3db8804fc0c432c7cb4203db1cab42d9db9b94215136ceae3a84c40395b0268ec0f18eafeaa9340d9e3c1cbbcbc7182f0d83f38ce64c117eca18e0091b7ff65d59cefbae4d7a1146f9c45a4138c09b1dee332957df2b7988bbc819e9ab005e565466cf57e06706c0241ed7f898c4bc7e4bc2e433c11b23e268878042142a7bc64ccba4a679cae3bf6cdb9ebd31ad394d6bbe2fdffc31e01a748a451580cc99f2f804f777e1e74e3242721c9dacf4ee4595debf69a4ee708bee8413ce4097180fb5fa3f78bb9329267bd8099dd3beef90046247bd3547d6ae55630d9bdcdd850f483b0d7c354092430d5ea3a4626fcbf14f54480cb94ebc2bdd86b15be2e34a25268e6f201356c5f75bfef3c0b6280743d261dbd783ce966ae4be4551633f14bce699fda611eca860d74ae6625846aed869b9e9c21d0cea6c148f2ec64374aa0ecfc5bd660398a4eb0627784f66cd660d4b1784f016d242a45603f7083285f594babf0d5ae4641072879b33aa92e8e56a39721d81fb6985e4e15f81b5bb7b07e82d0ceb549feb86bab6d3ca8142ff7a3eba30d65b61d0b46dfdb1a12d29f5ef7fc7e989cb5ec3975704c117b62fe36bdd4a8070753ba0f5bb3ea7375483a9cc4e659b9afbb1fe80b6e7055cc66119df06e7033f1fe79fd71b5c98997daa47f9a809b7102f518e29b54e740ae1c08e08f0bb543dd6902ae0b2883761ccb66b8636acc2d816ace3e71c2fd54a64cefcdf7f9ec9edb24566c29ef32d2ee9245988587c79ef816def101ecd5a5609ce02c11b2abdaef7f4b404f8c6090c99c9469dbe418a4c3790fdd3247d0ac0fc782aa63d01ce9d723c04f384085528f02cc79afd8ece59799e7ad9904a9951acdf5702a4a972b42022b74211f66788d70e7a7cf4ccda5dfe5c3a39cfbc79517df395449bc589e770947c570dae8a772ab6ed7e8a69c7c972566a627b96472625d60f9f0cf6154b2320aa8b1301d4ecb20766de7e6a68d36e0c779e539ec409d7a725cf0037047868d1a651b1bdc3fa99c8b5b30d669c6f148a7b4cf0edf787cda060b59490743be7183ff3a36f4dd7b6ca3ecf7e269ebf49d1b7349304bc55950bebb105e42c078296585c732bcdf5567be8fcbd87d4f69c6b02fbbc21db75c5c02442e208aed5213bd2bf9b1f3f5b1a44db37ac1912e65ce3f7d69aa4f17721c45599c2607f37066731a1741c0ed7bf19785a3089d10e9f056c531cbc1d59d70e21460d53944eb446358e261f8678af697380041dd4875d83d32e8e2684046f9517356f538127e3b3b86ca41d7a0562ecdafeb2505376137d6c3707b35fc07bd17171d72d85ee861c988687d270767e17dfd4988b24e6a23108563f364d0be62e9e83644e524ea0ba16def3631faddb207cbfe3a70164b7169e6d9bd8d0160cab9a0574199c56c21d83a027eb09fffda11e0847c1657f929474eb7991d6a5af592cdd3eca8d5cd0cbd08533d3c8bd9e6d7020fd5984f67740c7037a3d84a27675b63b2baa63240727d269ddc3b251f668d90e2423246c885666ab97619fe439c6a6dd81d8818292869e50af73af4d8582f35c840a1c68082c68d62d6051459944bb9285a093306aad668716cebd8f94d5db8d501b33c28b524c6275b40232faf25f48ceca7cb4198b992a2707db45f17c1b24e54f95aceba88278deda9e97585ba310451bcefa2174c1c5382348d9ee52bdeb1d23b2f5903941e50ec4d9396e1174458637efca44d28a336751e7d62273213ef18a8f0f1d014198ce0cbda2158f7398acbd043708e10a215faff7a8847ab6d33b2d9d17e2be82bece01c66e9882f370ab6a9a3464c96627f62ea46da5af4f9106fa6d9dfc8f712b8cd8ad4fbb52384c2a70395c03cc614e92a803950338b1f1902640024deff91acde1c6a483c7665fed8bf5d15ed1817b63d8740549b070a48a8d6070287e0aa3c1adeaf6e16b11b48d361cd4ff94f4e410f6228b1656d88f722c4e35cb84c3f20c24ae5ce242918b211a9059a099255b7f67110103fd1f31cd945b1b384d53d052988a4bfe359d74fd7743ab9a50b9c670a0c2b4e21fc9f67e9b9cc2d26d35f670abc8efa4921eb3915d9675b0a33ce64743343d38e8c69f41ae9a14c5da03d2c52fdeedcaa7d2dd7826d90803faac42d6f16f2b2f41b066345ce179ecfc50119e816c9f7400936e34f5de1b77b26a41dd8c4a12afe655c1cd678079886b2eb911e581e913c576cf9f7e09cacb3ed372417b03acc73b50298d0fe773279ef28258508bd483009ef081a235901f43edfbae04631fae0900c2086690907beb4323f93085db8aef2bdb9f1ee7183b10159f3df1e5b0b49164abb1fe9d5068ae34d6397613e4f3bc8b093b1d15927fb3aedbfa068cddad6abc6961a0c72e8b5281dbcd0e042e057fa14a0cdd398ab018cf00475a9ddda0f5b7560f5f891bd9cd5fe39d578566d86b60b6e72f456b4ac5148dbd1fcd9ae7c62fd36bb4077508ec9ff8f0aa7df5b3e884fef978e2295ca5816b4c1940d5e5de1a786ae7f75d2ba4b8858856628f5e182e38adc3a2965a7c2b4308f1ec148c87e356ec89df03f0f7b4a4aa63ab11f7fcf2aa08d9cfd591f091bdc617c2dffa353589e88e18b478b7d284cbf928612d87d4a224b6ee63f5bd1d0ca35d2fafa1e629f39076db354663348e94eee36dc3f7116a1b85af3f3e13abedf24aa5399bc300b333eb1a55a0570720f682150a46ea54b10c068b2745382dcdad60e52430682a3c5a02591226bc79bca7d047c9c23fb1308e2ead3ac0e294958448c3bde2fbfda1772da941cf33a7d0542da109c49e06c85ced0f66a5f13ac81a228fce4e203f7f62219803b5cc2089f7bea26e07f8abd03f024b80f8d1e7f7b8844217d3c013a0a366976a0e67620c2407b5d31f332ce29dfe4e95f126b3916efd5f8e0c124891234a64e42240b5f2a5c9b13e419e87735bb5ed5a091f0b42fb80a7da8adfba3a33504e70428dc35e351c959e77d44d16d24f96263732cef37715db1c430c812f8f120474131e9e26db10d159106e4806f1dafb90b8923a3adc6ac2c5a400fc79cbfd62d3f39711560aecbe22f0c227ec1a4a235632e35abc899d7c7dabdba2746c1ecd3f2faeafe59447bc7ba33712776b99be4ab1fb0b41de3b4c8a8b075523758a1357d535880de5be08e1561502dc9cc97bfbe920bd804d0f7a19ed9e909e878f4ffe01b1f03f43ba3feeefa5012c90d1cd27b2ca4a49ca1e1c43529d1aecc3e5448a1ab4128a4938d05cd00acc6f406c656ba0d6c451eab8f35637f5011466b828dc7a66fc22fea1657c06b0e2a33f0db85667e1c13b17a7230512f4e7aba82425ab5b6a8b2774279c9948aa02b81beca4e051f5ff9ad2abf998c21170452147767741dcce4760297465b0e3d31604a4e08650a4f5cb8911ba91d014401e4525f8dc3075a40df6ea7c5c4e33832b645f6ca1affd05e9def0386118095783bf4d0b59c9efb84c2bf7ede7758f067441bd288bfd0916b4beeee8d9605717e14d713a48f597b1e2e92392da081e438fa88dec5c098e12c193be28c8128275cec97a1963cf8a0c5b0a49cd9902b1fd94027136b4db4bf943e47532a8830b4820500235f8551cfce699fe8ae50c7ec08910305c19a791842fbe5d18a7bd3ae954fdea252625412f6a73ab31b8d7c981e70ed5e65be42363d01732a7bc1940fdd4c954ab303e76835f8a9ab9b144938e6fe490f68797927283512e434a26eeaa86815a3298399998e237b9dd8be9c0de485d05e49dca0927e1ccb1fd4b1d35caf9f1a87b2d36269e7d1a60078e0f6412681a1b422101bd32e66754170bc1b2926f81a515b068fb6ec365f5a3d541d322a7ceb8503ecbd2741f244634cfac430b18c49968b4d348220b631fa73e66d755b4e00b5467404187bca875c39958859ccc7b1348f20138764221458bb43c216d35cb404425557a6f08e3b1e9930b59a90165878a525127bb27cef810afb4ab25060250cfa4f19c12aa69adf0ebe8edb4596ae32a99dc1465d73777a62266ca1e6bea5b5c6a80282d459f2fb70e3ee574069d8c1704788d2c0b1ea1dcf6d33af590649710c9bf721c867585568fe13bab1593bf56939e82ad06ef88b6e8e88d8cc5dddaf41afe82de25b2f33b14feedc02bfd7693d93b2eb307c80bd64f825feb7fe2d961598e6c968037c78113e8da12e14a95bee3e773d56d92fd93448ba1bfb1d4342793cffccd3f7b6c4a57f5bda761e234da77df7f7bd2bca2bcebb58a73ca82d9fedbd1dbb69efda85441330aec748638799e66fd0cd22b3c89216123e7408f034d17c436b5aa6700d0253e9741e22448c820fea1ea9de8e5696f07f75c733c42ccc3d947bf83155e30da8b28ca094a734005f94e2cb86d4b7cb2a81a2737c4e71d41d8d86a1a51d05b35b8875ab0554078e7bc301f027d88ae9fdae8888da2c5b7efee4cfce5b6cae16553ab803fe85d0d819d4db86dbd79ebc1e8490cbc6da4524ea52a32df8cf3e9613cfc7c96afb2d7b0be50f738f6f87bd8e631c1b79abf43510d3ee124a6d583a3ffdee74676280be6de0f0a52e98553044a2cf7a95c4e30110b101050c020debadaad03ec88cba1c9dee001560c2f85c591aa2f523fc3b3b091671b6a95cea8825c76abd39b14b675f1c0c146909449a6e44f708699f992ae892e028f5ba01ab950e09bb9471cb66fbc3812ecc6f9512f977170f7258a422c075f2787b928a906920152a5c2dd25f342bddbb20e802e3ca8a262fb55d2000b978304f22645cada3562ac6b1e637d81930639237442eb7b0125a22a4acb80aff9d5edfd22a6f1f063ff37da46be7d7c26d5eb88598c9a95d221cc9c74614e034a407b3fde383520d0c9bbb4acb97ad4e95f3177781524a8fe2c3cef2d82e7c6cd98e81b07d17efc4de363d555c7f8be57c81924116467f3a169faea7876ae222411b7e134f2c59f6ac73c1c1976291ca17716deb50c453a8cdf2b183abf34503f7933ba9e319c9c8337a8a4f84b88c30199d3fd1cc7e9d9aae8c27e5476f1ec7b44a3083e08648972d4f62fbcac32a6c5c7bc4935cfe47cb35abad0b1b7422c1364b1a9695b5341e9f6b5995e32be6f1bc4f6f85c6b0866d63861d74f0c97d8f1b88d0d4a6d1bf0546904205c80bc7821e82fc1feda5204214265a271e37316188cd622e6415e5729d7d8e1eb50443bc79224a4a6970cb31b6046ef711553de58eec0c9d146973810bceb46c8485898e9620e58253f3f1484d280f2b772ca5b6979831e787e766d9489f822319a7ebcf69350048437dcc1ea7284e0a48fc8909527872f612c8df51abd72dac6f8e333ce0c3cb1d5964dab1bb7a55da96ad0b8c4fd5d0d8740e15ac2dd4d92ca498311710a30dcd466200dec2503899238aac87d37cc804203dde4b2b1f7451227db93ea5dbab7fe348f6e3d550f467caf63a45a83ccd54f2a65afad550e4807d428baf255ed851c1c62048f91f02eec5c579ed116d42dc55f8c0217e2e5c1a8fb6dabbdf9ed0fb9feed7f8e78c7d574b33ae6d266963f901f8fd9fd63a64119a24e25662cee6ba97800912cb5d6041ba239d0381ca25f7017ca3d56d4cbf488a90acb27a63a877f399e82c0fe3e69c657ad740fe4e993f88a6a2ffa465c89eeed4f4193ca4e973c7b3fe8745b6c5c56e26d9ed99922f11f3b829e1d1ad071c8c1799f592254dd1928809261c41a3157e275cf11cfcc2e93161baed967a9a30c357972015aa5e83d27e7a987b32b0ffcbe244410c1c497939a0fc6ed90efad884dfe22de19d28f1db3132a74b3a959a43ef4f272a940c48fc2fa35c55d79bf2935f1c64aeccd60d9a13e9ff4e4a34298323fad9705a0bb7c33838b4173e33792ac60fb3f05cfa34be104ef5231ccc66906eb346bfde276f7ea4e152a82fa67a84df65c5778c5e2deed09aa2c1ef497aedbfa0c233a649510064109d796dc90816a9832f131dcc2792d38fda1bcce738d02caa3be2e0be998860b0af241150c8e2ee073426d94fee8482bef9429e012665fe96fc543f392e6937d902ec68cb1b0cd35ec4b2a28890accdd6a6bda2689824982403fb34b254b3ea148ca5d017bb98e67533c2b01bd46c5929f26d8c24173d2b674f6d533741b7deb17a661a9a507e6372bcd1871c836f49911424fe22466522c7cd1bafe4d4016852820eaf96276530b9da253de342e7080767d71e0f6a211ba09f136dc86f2f0c77a56267a97aa5e37971a253cabe0541c7bfa4387c6e933f8c950b419c4fcc9506e80956a6d766e38f024559f5a251e4c106455d192250dba1bfc26e252739d07cd8326695cdd7d81c118a428c3a2fde9f3bcfb1a6fcd4519e6a898a8611fbc3e85bcf374e39b54eb38cc33d3f2b50f8984beaa6c8e96d16a48c7bb3b98f1c84ec6b47f1fa70e79c4e8f0b32ad27649846959aab54fe33ef3dbd4bc8149399bbe69b8ab1aa228454ffa5952003623de3d895426bb69eaa014e0e657235953f56b06999b34cc84002a08317cd19ba7bf73faafc4640ac6df417901d6dcb2ec8b10a1c25ee0ba1cfeb735998cf205e6a2e59386bc8817d8dc572620c3435c676fe441adaf01e35a8a65f6fb0c99c6bf36bbcf683643b78ac1215c2e76074ff916b0765dcecb9c16bf9e9d5ba41711f18b223b690d593e36de8cc6f29a07d37b612bf3f5de05791924ecc8c8095c9c10f93c3d78f4a54780bffc4d657711b3fae0027023dd310935eb70d90035f5ebf4f61b7223c1b74c45e78b9afe00ff1b67088437380ede3684900f37b3028fc7f397bc874575a851d5f9f9b13876af510d8cdfffeea5a0fae3e646ffd6feb0ff64c291b95347e20780f682d1799195bf27730cecc543ca62a45a0d8b1255bca18a90af802e8d8752679770dd3fa21c6eb4343f15264b294d5ca181ccf5d965aade01cd174156687bf72e8a5ae85b8761597b2e7a0ea9a5426a28fadb5a65cbe2790f6091d970bf089b3b00a2f43fdb93016e0111f0fc26a94da8010c1e332d45f52d83dea75e9dc494c65ba560d4b5687b2f3dcef7cd66c941a3066f0a4db0600817ee05e7b903a1523e360a88bf51e175e69f8dc73523f92b04be53e92ae76733d58406bf5ae80774419cba3b6063e93d686e8487ec39e3cc1bb22d3dfef3b8d646ff379add78e557b3111ceead02ec95776fab474f883efdc8e5cfc7c876dd785e294ec40608b4c4f313d63a0dd6323bfa207987363292dc6a0d7d63bd9d646d4be6155384d71da02fd0fc3dff8e8c57d808b2508dc5c5cd99f6c3df7d225fc2576165c79643cdf96889aa87826f14bda8cbc22706f64e2cca05485aa3439ac652fb5eae6e00a7f666bedd3ff5b4799134084fd3357f9fe6b66fd3f5578ea8f9875c06cf82516838606fe86a63d8a98e26c099f390a43249fc4224e9c561c20f32ecbd8dd214320ce78a9565fc61c4eadcf64883f6112e922aa6344cc811e41eff6b159f6466fc61c5047700c2de6e78bcfa93c18a1bd6f00913424ed9cd59d5c46660e7a03e87eba5bc1b306c384e89d879aac735496eb6ce3ad6546f84d6be41f9e47fbf04987683750e2aae9edfd24086c59c92a01afff52358dc584eeeeb6d37433f254bc1751960d3c3d6cfbd466e3346202252d322709f471d8fdb0223bbf0a1ad92e6b41c2eb50d58227b4dab7f4725385e2d52d295f9c8aff1a0c031f39ee4ba71dc93cafe598cb9104b444ccea07f1383391e149f3ed6c8120b880240146ba2597a8892318139926befec8f1b102e98009b566522c4dea2968a3e6eb0a37a2181087fce98e0403fd6937265c8c6937e21ae1fa9dcc9772235250a9d1090013d00037068a6237fb874f3004faba9263fdc6990f84fb6594b12112f30165123b44ab3fdc8e299d0067b0d6dc95462812774d9c9d9334eed5b8575aab8e0238bddfe5586d48a9f7ed786dc14e26d2ffa0d1693743ace64a88448805107c913224bf19f27fb217875ee987e7cac693321574d1190227641ff3b73649f0beb21dc56b8c70cdcd2c2ec2ba432e95c5d144528fa8b93fd171cc9cdaab83e681bfc90dbd893c83f39e3c58cfd5caa4d2ed627b70b2538a408eaf6a24d4afba4a8737c7a6af2ac550639f3d584acf6cfd7da86960541b28a4cc4f82002d9eb77c8ed14aa2289d3d660a116fb7a92c86c314973e68ea452840a41af0d63746f0783c22273268910bef3176d5b6ac7bbf3e773fde180f6f861afb844b2242c316385ecf723eaee18b4d030bc570ca234d97b1de621802d822f238cb23d626318b69ce3765ae968ef16f1c923f72c3b9de57bfc75090a5810d1dcc912dd13df04c6b2861bc498ef4f97ab4dfd5bc0df1e595e87a28e298ff294665d4124bd4ade7b2246b598bef64d491844836416b5b6edb3ac2949780e054c6bb73c893554d2d4c745d7856c77cfa6c0ef5a3ae7ebe207296e413d9c576fad85f4be4011bb7c9cd8934dca0b30104a8434a80d10d1665d981943fab35f25b64477567925a0ed67054e2c5fe88f8a4f01df6b475c26e927f0fbc51a2fd36c1eb4ebacd80edac105d3addacde30a2d9f4a3ad8f92e7d58a84d5f0ef5c1fb3d6e6e96c3d8524c8728d7f85dafd159438a5cb859b1b1cdb88bcf3100b536c730f3f82e11f2ff6f2ef6b68b70c849a241a9b21f61c1c84faeeb2ae542db83c8c8e9f150ee95825bed773f8bb390a8cee5a5f507718d43da0df5845c40a865609a978ec7e2776ff810e5c1dd4e1de0ddae973b6f4405b064640abcb850d9687db531e7e7d5398f8c11f3fa1ce545589dd8ffd29fe59f1c2c69f290fc03e0d47f91b62632074a51578d8934f7c5c3a0cc395384aa052412c290c086db78301aac9ac963be6086df8d76c4eba558c58497cd5ac960c41d29a83302b40a9cac74065a5508260807c6e3716e3bf2a612bbd3975c73869d434355b9724b5a48f4cd7c9b33afbebdc1884b387c7ebdbde1000de2832ca2ea7de204db5cac45aa3b79710c0108819fc1532ec03984bd3c7d0a5c45eca27dcf584d9831659362d93f1af46cb18b15d71ec06c584202fda31577b066185f54ca59eb86cb8da82b6427948ebc72885ce1fa95e56c1c03b7c45d00421078f4e078edc3b7163b61077584b6ef13c68b759044489cbd3540cfd3c028215a1b239a012ceff25f562d1ddbe599da19b113bbc819383fbd23a68d8092fc5bbc37ffc51d9179c423ff9c915ad4cd804247e0d520ee1390907a8529204992fec82cd6df9d094917a231c054aea466390cc3ff02629e09dc224e7df77d2b88140fe4afa80434a6a029e89b24e0fc02fcea97c232dc2a76ab5d1c4f3135f7a5308f3def770351bb313e074c12b53866bfdacc17de4a01627c556a4d7f4686715971152feb41fe4ae587fdd1e6ded37695db0a79a6362a845ee1dcffc672781e50f968d438e2471e702d64d19b79c88e99ce3a05a36ddbcbb160fd37f1d14730d75fcba5f18329456d47457f47107cb89135965948d050e3f66fe6f9892512e35e1562763b34032c1ae04a8d48d35fa9b06ef7ed7df93c0ddbadfc3ddd0988ab8be3329038e6bb18092617607757d1744a040a088eecf131bf6660b53ffd3545682ab67dc546429b1d1e700db399001e55e1c5e33f9c44c1080a2061235e6c8239c056eac480a9be1d0b94dc0ac5cb47a24f8d725017ded2d85f4da8dca2a853ee3733c4f60b8e1c1c02d6bb3b44d9ff24045fb4d1be85783f0dec2822c743a75a7e116143dbe39754d8cb8d29902d96af1f30f161d729f5aae5f1477e339f33b5c548afb156b460917556292db0b13965f3c6a7c0f719cf3cace232e4229c096d6bfacc36066dc66a583d2a3ead394083cacca7895720ff4f4893306153f90c9c3e51f70e74799c0b627eff7101fbdd9a89447f4f961a967cba95b8716e636ff2d5e330cf0b5508c0759173f7be195011e97c2fc83e5671f486c01cd66186f7e69cb9ff2ff6c0d461d2a2016f5a0bac43aaf2560b319bf9f85de1009b5c337c569937f6e509c324c70f9a246efc2923ea343c1dcca110f4ed6d0f7f4a604c5807a77f8bf5ae631b1fa696a6062b7a7a53941d91a96112c6ada027be241586eedebd2b6498c8362f891fd1902a2330c27fcbda11a32f9a7263b34dd98c2bf0e7a625d335892794a6505415be7a7ae522ce9de6cf8ca0a598257f0411cbd352e7aa6f79558fc3ad6fa1d12aa7e437794fa7b8060267449ebdccf4c6d270fbb04af6770bca3da155cbfc9c4a6f71ba8945c6c0e5e8b81f5f30c6e3a08a20c39a179c34fc0311aa3769fb06941dcede168c752b48b93f9ca45c06a86064cf808740d3061478fc8810f1afc6f84f931ee5f7f27386dde3c6f93fca03e2cda12ec99c69674a519a8fa27da7fa33eaa43cddbd9564fe31682ad07cbcbca0882d27dcb5f48024895b4d22ad538413e274558342983298697e7ff9179d4a1872a20fdf15889a4787c37c44268c005092ec42b033c0efffbcfc05304d68abe5b9ebcb34e2864118e217945c21548802155c046ae0c85dba737776856cab6eabe2f63cf7fc5041d76adee60d7b8ae0b971447030c58919b3e0c260bddb575cccc4e790a6bf58512b5742c30b40bd67b52abff05f7b7fb8eb2770b55635cc32b46081effd8ba71c2cf8e635835da0430d7a7a3aeabb7be62ef209a789814e0cc282e4101fd3a42dfc72883dc86393234659382db133e9688b807c119d8a30d4abedc41fa75581805557235f6880fdf5115af9424b33fd177d67c76593bd9f33876d0546d024a531e1a55eeec7f9e8af53934dafd90d9ac30c808304da2509a47d0119867d29ef95703454ac617ab10a01c89cff1af9b39c9a7e81b7f27c3e7e6005d24c335f513952c98712e83cd00be26a8c266afa7117399826425f6277a4381f23270bcb70707fd2307ee03544e6bfda6725569d56b143f96905fb7e2749af7c781be7e6c467c2600b52a3a4de7ed03470a6d7178253866b28d96e15bee95e40e309bfaadb1e703cc5690832a50d91c89ce2c08f2fdec887c5b7968854ed7341f4c848cc350db3f96b0dd0093de6c40be6d679dbf3319b3918513282d31efe97172a897c99449ab6fccbf3ccad200b7914b87482fadd70937bbd9aaa3599b902a7e94397fca441940e0e51f728c3bcb7604f3766d363e31b523dd50cd50ff622964bd2508784f29715809d7b3336e2ce90be8edf90d259f01c73182f2f7be7247bce0b0450dd68de9b14ef27ad5d2b94921d03dc9d0369daedf1be7f5d940050ef7944283a85da6f8a2015316dbe1b096437ab909b91b6877495336d45be69754bde1e98ed6c5ef9c6e500dd285b3275b8e6397b144872d88dc46083d2bc48df96c277baa9cec80654d2fbd56a69ffcae50ce06abdb51ab7a4e524c6d0c6648b9f0de90d336b1bdfb49ac8b4c812b0f3ef166c52898b61293f7f585ca8771e72163cbee794c739f2ec499bd921c385b1dbe32e94d8e1989f094c982cc0c164e3a1d55ce4ddec4b17a8496cdfd18a1a6e847451f31079c0823d2af5e7c7e0a11de2322bef3af8e6a9b8c53aad9b8396d34b9bb773f77cd5a2b92282b9755ac370e4e418d60cdde149aee85eb7cadf05cdbdc7bdfad2cdb3f2e5df34bb1fede975c139f8115a4c4a2ba9f82fac204af06d4afe01edf0cf439271212a58c94533f326cb91d5e154cf06b7723d6e3312a3ef31beab7feea1c02f21f6266add0cecdb18e447c36af881f0ede0434135b95d95af2adddd40b9e4fac9af9a172d90627e5a6a15777174db5efe095dd36224de3c38556c63903bf322aa9b7ca788a6bcca18c6eaac7f10d596c7f1f5dc443577415aa141c58591f499c59f7400bde42ae848234cc7f328f11f4b51fd41b8038737dc70b33bb3c6504388789a1db9e024c058ee9cb8574f9c71d1ea81b6131bc9e9b02f1d91fb09f424704a7f271b8c71c948322fde2b8ba95394610580c198fa3e83f09e3af92f24e1dcdba0539ee915b4c0d892bd698da169d78283f5e245080579c9a0b21960655f9b3ffd079f6af7dfe794465f1577d7bcb76acb5d9a2f972b0a37bf8dbf2b40ef15e7fe3c539f58086020c1d8c965c7c2b7c55280cc0a8e47a02450eafd8d4f14600bd4bba07723f0a9164bc72ef02d360546c40f5c517e38412176be2844dbca601f9c63bcaa66d67d905d80fa457f0d88902cabf1f130cb3dc39a63f05a1d3780d0856d92769077311d7e5eb2f8b9e1d703f05581a02944a50fb3e6c2f94d90dad6a6e81d3c5e76f79ed2ce9730a1d2fad1d778105b8548328917a4f76427e0f7a5b4adba26e688d5037e6fdad38c2bd40e86e6e6600ed5cdabea496aa4ece717021607b116b3909ef32b6974215ca1e2cf109e78ce49a8bd6b7e25ce1251cb4f914b8394890f6b9d05df9d16dad2a4a04177bf3fd44cbc56bc1e9489c61820c715966d5b658ee8db7d4653803efb34c23b6ced29875c8472a5ce097624ea3f6528c28e297acbe85b4ebf4d424a0591d2c386b117ff6a84b586ce22f03b7c5ae9effa05df89aaf54a729fe5e261f7094a62934f2ccfaf6abf03c78fedaeb1b9533c970225d21d037cc62ffee0e7127488b4c30d1d7f5ae6beffa07768f26d4b221f0634584859a840a0a0b7b190f16c11a09164c821923a8cae6460fc4f74650e0747dab8d6e18d22459f613c81272b93dca3a30bb0a020916973f80f3f6c149ecf6d64ad6b24e2ee4f67dcaaca6b046d5af099a40958425ad4231d7c1c9b78ba7a17714f48b7aa00d351e3e4893e626856ce1eabd3e31e72ed54873064fef6424c61c51b4cc0225fb9259e1bf8bc13c09e30422d4824083f97d1507c14a78cbde21024c80a66e8e45831275f0fa148cc4565a84dc15e6e71c034bcb8b940eb7d881956676321f926848c03212682d694b4d751a2ade0388c87d6ec6f98cbb5bcdd407156d8d77d60eacefcb7ee003fbc33836be06ed18ec7164043d61bdb522c47ca4729bcab2742277251b2e1c8a5a46911f2f6f27a5fbf6c98664def03883a2924a523e694f5c8a1fa5a4456b3ac9143dc664a5c8726d416a189c5e15f07783382dc6eca7644f6c023cc9b8931f01f0cf73b67c9096c532e3cac8ff6d8cc570224d236a91c2727773a7dc21164534d5696acbda05da88347b36952e44028da96afb822384230ace7b733951503b2d880e47636b5e13b6f5c794593e710a2ba6a6b60476f35ac40d87185511202183249f6f09e01ee1977e23324615d63f4aedcf7c949b85f4676ced54f55ea76e4f1fb14023500bb0b2c870a4aa3b5df6664d7f8c9403bb3e4c78a50177cb8c98feee862900fc6aaca0996f957f228b12ec89fecb047be06383e6e5cc2fc216bd03ec00f4da6a40b09ae40dbef1e64ab8b21d721106cc392ad2ed8e9b460f593462dfb8dec26f4d09f120fc0a24f8ee0c0288c7a5575902572696bf4a32d03ffc94894b3632c0777a21320c3ab7964e9b685daeb87eb87f4e9cb9e2c7fa5c311257ab1152fd61f8e839acb39c9fef1f54828b3491f1e837357c5ecba65472f8d37264b5a9bc42d35825349c060049b297b4e4440110af3b03c399851eec4f60c1f7b8227958ace28583fc3fccb12c6f3c5c86ce036530fd97a5ef3d67e9c4181b3728442714fde8cd28289e31cc02b3e7cf8eb47997dbad8c0fa6b22c4fe388a74a04305b758439f696e21b2b915612eccf85df1680136f57eecb5beb67712854d312594f052ec7625aabbb70bb73bd3e97b65506836399ee80521ba2c58eb833f6d4950a6bd279988b638de0cb51d9f4b10b7191aba4c9b82c821663b74fb5150f5154c0b32d503bf78640822a8f125e28e2d474318cf34050bc068648e3c25de0341d5c54b3d44741fe34039ffbdeb3aae0453a7483f2f83ad3cd40d780f12e087e1cb4139d19a6c649b3d997c7f1c0a0ec6dc058ed490b1b60925fe708ded008f73116f82ccc83665f026c255c97fdcd2e51feeca450926e8a6992cb6e4463ad73878457695698f52ef7972c292158b05c267f8ffb568cefd793039c0906d64077311650f460ee355cfb91694a4ac7e1f97a61c60682bd44fa65b702df6e3d3925b198fb5874a642707da221061059b8d8b79523d38e61732f744134538d4f37834901e4aaf71dc0adf2c78130dfa279a29d3dae92bf68806a31f4d8f0361f274b9b6aefdfe7fe4544ae152a25e75e9428d2faf6091775b1890b14def8404b36dac52bc23d032c6f6136b289a71fac667d15f545cfb1b6a8dfce096a5e33caa8cd244706e886fb770408421fdea65f49838898ea3524cd82c9fc2bf8847dab72beb77ccb89652d8f80315f1338f413d14a37e957acb0f060c8f92ee32b38f4c432ea2af6f8cf429fbe13ebd84ce0d8a8513851cbd6057e1062ffedcaf05ef7f3798fef3a22a806b85be79d0fd3769d25ca86a26be085645628790da9c450b1619b0bef54a090953f54b33d2bcb73777d70c1a966f36b303d6e4c17395c0e7ffcf5bf7277b2b1bd0e2c884090c1fa45ccaa24e67a248aec96541ab78dbbbb7a97c8ffa80cee25a46e2022a9c245607132776349e870a81a442fc09b8bceae73d42ef78b46d7c545dfca6485260dd3de55710c4bf511a86bc8b6777fa0bd68ebaeefc3ae043922ff9a38f872eef43659fbc916a41c8fd6083cc2af7ed23bfce6d5dc7468ff164c8cb2bb89d1de14e8c37d699fe1d6573ddca89ec72f3dd1b70c4050f87cbb56bb2ece84ffd662b9632197ab1a3c6dc4e909d838a7baaf30577d297217f729d8640dc53b5ea113071049a95624b00e40bf7aadb963c1e31d8778be0a6d390bf35c540800b13007e228ad265b8892ec8687a0291e7c2b86a051782a260f0535005cbfff0cbf8482f826bf253b1d9ab8cbd5eef7731fdc54718dfd3e06ebf47d677dffc2de15b5a8918c5a9fdf1916ce45ed9ce7349a2f0f55b083e3d2f72e523f61cdd310c50e27e23683a1d3f9dc571510fa612ecd33c462b955a9b92f03e36b72408a31598cb965e5b92f2968829509fefc16a1129f22444b7e35d6c6aceb8eddaf8b24bb584cf3098c2ab73a67d5e6e69d880dcb0ddebe304df51fc91775a846f7320cd98cef12eaf30aff2d457cb6e144e08bb01db24475077f93488a57df5c5f104748bf8886b37662fc3ae83dcfaaa83f855ab5b6fb47bf6dc46cd259880b37b2a87ce80bb1960d74dff18295c1929bf0ec5e409bf80fe60ab9a27844b57a8bf60f81b567da46059a9be04da1d240b3e9bf124fc268f6f2788080de9f94b6c3d520a04c2b639bff4306a03349898566777fe25b879c35cc40f068ff2cbf1b2a64b1d5870945f88c17b88169cad2617b8f752f85c03c1ad4ab224c7f6b7ee0b61f566edf3ccc6d7b4c97dba4713b3590526e9f8d6cf8420d9eb58abf47c32fd12c4a974b78791c835e7d759224e22c0b6de43ad98f70bc159bb5ca680c1f8ff7679abd50e34b113597857558cf86a7bcba6ff310d6d42fbca4eb2945c7a57bcd2ad74866db70dee63d476b01ba743ec9cdd4090e51e9710ce891ace12576211d81ed2c0c2a1ca3c8cade995028501edf28afaa229f2c7237c2fef881e43340531004f886983899e3be608d08f862358858c873d4170c889d4cb3ca996dba2a6c20ec190f9f27aba343c15d1de7f01f4b74c214d9cc86a7b2a8e95a200dbb6bb1aa3b357816baa20dc81afc384dd0d3b2a57012aa749caa6de614b969ba65eaf6365e0fbccd0ac2340611042a2113d9c146d02fad1b9470a9c0c0dad63a3eca13eecfa71d19887f075770c3400978aa343b5d1604e0598e7688a3649487f59841bdf88d53cb20f7ca4a577c87860f0867a6b652d0efd1ea59e9f57d952c134389ad168e7152e44ecb851b555cce9b6954be9a3299d4d388937e7400d835c52e7edfe87961a42d96f7f0bf0a6b26b3bb897540a7bafb207d121f52c12037cf5e023d7f3a03252b1c624f0a220b821e6d350ac7744d346e4ed0c923fa0ed2d27a17f7039c6fb6c7d1b07136d8e85c9d465db5bfe830b5316a98d56a2fcf634fccb7224e80ac1541144b3d6fb401348d113398944323bb73a1b464687369ee6475cac6f2df17586784824aed20831f24f3e942d9fa9ba517c45a23392726a12328531703770046b6abf2b9ab22cdcf95c7044afe3b1c0d9ba5d650d1c377d03fb7d3d0c6863abbc9d2f618e3850ae63da2d333337c032e382849527f1db9f2587b4e2c1154bc95334801f62708d149af71dff3d1bf77866d9521011e98b59a2592f5e6ada201423f3c4676dcf38a963b20368955c8c2b8c477b702b7eedecea32c6faf7bb90881e256653c2682fc39e6f429c3cad7134d8ba45f9af45734a4cbe4b0f7066888472bd356a0e11ba7a08b788942e134274cded23cab77942395555eefc402d1beb25d4907287603ff50d3977441209e6306e266c48c1e877deff7783268f065a20265ef46c65c2f06d925e8909674ae2c85c5090840dd4236fb0684d307d50c70853f52353c60d1c6ec25069f789e0a6a0b3930251adb891faba0e77c6182aedf88868bd8d8611f141c1ab3f0384aa104e0809309e7c54a1d67ee48fa8a6e195f4320f766eb379d140a0da949739953a2b06e2b9af97e301a92c458a3b51ca6e30c645e9801372035203437c519b81737a3dabb44dd852d39b12446ebb714b0021e7a20b6a11daa118ad9d25cc63fb62321098a1623fc25b3fd57d6efdf558b1421f64a75264b71a6142220efd620b3f3d70b53eb7370eea4e0d9d24817c40024ef6d98a18b6f290819377d67e94e7622d652b306c5ab5ceab3310cfe632fcda406581031838b6d67fbc6eedbebece4c3d826f7fe597e2706a844889c0a99fe2a07f63452aa99ee2d02db80e95e082cce490a8ef32854f5229eba94801f864dac2c519ff1dd53c82c4e1f8ba9bb3dfeaa524055a9d6243d26caf5d5d5be60208f0f1db5878c462ffa96871a7a3fbbfbeaf436a9658d51be51dda86e22df71f170ac0b9b85a3f88d880a1ce56148378ca85d3c70b4d148f902ace571f3fdc3c088d27133e255de6a11389b9d5b174c8c2d331e150f43fbd301fe36beca83bc9294466ae2302558b6d989541da9131404ae4b198650e06dddba3df6a071b4c4a2fe950a6cfb097cd3a27fef891a47064cca548dd59b6c1384df984e5b88347a8b4d9ed8e3c0f1667d3807208c1288c70b72945ab274b469c006a369f68521d61da3471c2da06f9cc5060c94a6daf5b11e6fdf5de734bac0c9aa44f9f414a24e65f53db556f544afbe1326e59121040c071379e8e5a0fb327e343f347053dfe9b0bd1f29aa9c28c396e3e684fa8f7a3de1f46c20d911aaa39ff490baa37b350a6fad96a7a6dda014f8e68513b8827c0a38350938a7400ffdb2a003b749f17d12c693262d4f5735a8c55d55a70affa8fb2cc4b5c98d051274ae4608b07dd0ceabe56f2441f05e3c63de93e90060b15da4fe006067cf3c7d23dd6e63c0385869a3fbac2feb9d4b5d3b108b5aeb905791dd085a11f21225ec3de6bed805367f2871301d3b9d1a022d9ad42f94ebd9458bbc3954e2891e35607d83907c16d462aab298969cd580ed21cf31151f6f41722c554e1477f9e994ed69d1c6a792beed8074a624845c9fd759bf09f751e3b7976ce8a5be74be80d99e698ae7a8f0fd1b1aa4a3743af905fbc0523733397c65482139b049966581b52fe440e236fa89c58c9729660958614b28d346f2f6fee0b66ef5d9b012865361c8b75a3739fd19521ef600e2b2d30edad98523803cddd0968941b4e89a8f411f56a11d83cadd5f1c78e32e5b18b8f46f6cea06ba39ff06cb38f9a4d43f0f31c11fffb7cebc163b4f51ba624ff2abfc1deec0b2f053b9548f10868c7207544570263c055d9a9c6d47feb97f30db9e57d41f9cc2187d61a89f853843fb65eb9bb73001fb8f30612526b403016b7a9fb369ccc325a030b58311e63ac4d6ab2c6f9191cb6051f388e9c82c8b19c89d41c16296dab9de255a0f1c86fe2aa6c1d979b032a08c43f472d52961447d84d007e5b80ba34a842f8ae793485210ae777f98ed5a42edc74fa2992af98dff77eedfa8a1c0cc0c15ddf70086cad1136ba547289b15960df21457bf0ebaaa214a69ee215743e172d957f49955c980327acf000105bedeb96b3504aa12e1dfc29eaa4038dace06bb5af808535aa46eaaebb9d74ff4790fa1236160479e95c636858650cf646e2086ea137c805f699f2f80868c8c7be3ae1b42c992d5d09b0c2a1e6e38be9742b49326b3182b41da786677244448cda1ee9d2f7343f9b7dd57ab004f4b077b07581cb57ca5c6e62f694b6d0e59e24d61f3eafce6240e96dbce6da40278e82a4db8b5ecf13f2ece369890baadec59efd93b76d29f8474fe66e1d7ef04d35788990506d8f6e498823f4b5b3a7bad09ffab256aec0f924e9c636ae78a5ff34932defdccf650de67aec442807f98f180055f1e936720ee9ff2c02fe055bdb8b010e4906b3a83929050fec10c9c446bc16b3c7d7da22d272568045098981015acf5661a1826a254c7c4963f0e9c7787e67db7ed0c53c7e0356f559d7806f3e734e02f10c59a506a1f3eceff06e60421906e4e14a575978c1c0e1e57ce43db88ef3df8b03ab430354c23f0eb4f848898bf4cf30134a39a3e0b4bc1cb9b138a6e1ddcf5e96186a2f36882bd202e189e55465fc58ff56cf139fcff5855f4e246234a3fff5e4ea4aa7d7dfa17f0e79e67c9e413897f1e1b97462b0f1b572f61f96818b8ac2a4799a35ffc06a3600fe8fed82e60de3a49aeaa29691968acf358e730ff23c2354915325bb0479e8eb0f23fbcff93f0925408725eece0705e0930830cdd58c54e8dddf3dfec28f3e304d5a3a3c45578fcc6abd8ee08e3eee281621157e9ce44568f36d9af51d8ec9a9f8619ae84982dc40ccbb0fdebac4e8e0b04015c2cc13cad5a465bdce9b6a12bf472f8cdbc8c8cca51a8be39d1762095ee9dbb40fd622d4d657217c9e879f951cb4a53997b9e73d5647f07ca4e2c17c3a6c89c84f125c126c4daa5dc8056e79ab8c2bd88268a9e64da233947db187bc89e6ccddfdb0df331628a6b9f9fee0eba779c444a4cd3ae416d106b59c63bf1593e24247f996047b776e853bd3be95608123ba859e616333ac8c8ba401c1e0538a6d76941f0830033daa12a5464b4be28744293209109c4bdd23dd37c3c160218a4de41466f1488ab32458547c9084e0c2cafad7851db7f829f2f879727fbfaac4e2d5ba0d794948d3affb3c8eeb06d20f9b90b456ec436ce822d7eef5f37d2fee90ddbd856bb40081df74828bae005a5de1735d36d5b778ecae6060b9642ef3e0320d74994137699a6925fcfdf3713e836cb46b779a99d99cf88a55328a8ea64592992fefd44082dcba313d0cff971455ce2e38171cc4aabc17b722eeec7986592b9f3b12fc7e8e6562fe23d4cdb7919e1143172fc4250d33b35a5ccd98b577a47c3705bb0cd724166cecbe21363c4e102431bd4f3df7625b71a541dab938789920b237c27328eb44479afa1d16027ac704d5c8b5ffa03fb383339df8689a4df59bacff6659943370f703f709c3ef2d4cc5d7b1f620b0904bcc244ff870582c64f85b7a385afd5ffec36347324f229d6fd5ad8370331b2bbe3490b472ee66a4af35dfbdc96285deb0a6a5ccb8c89d376086c2268c9b362ad3001ab65c28ffa494cccfc8e975145143dffa9f4b45472d5f930401f46d1c422456c0dacaa52525e00fe233b709f7c297dc7d5792151e17a0654fbb7e8bd81cb20454d3c7ca2e8589ceb6b1949bd4c1218443bf184520bff06b0fdce398184447dcc13516aa6191e3874a3be1c4c56dd71ff0e1702ad6314b5ea5b5cddff5540e7aecaf865e7754eb3f743e6331ea64182fae444d51d2eb3184b744bfe6144962cdbc70d26141a23a7ed84bb28f06942c92f3152f8181d21480583ac6ae710cfdf1ff7dc19df52cf44a5ce9e1eecdb7186c056840fd5b0003c57ff82a6a528e91f6964b16a4bea53e90701ecf2bfd5aed14c380ebc0f2f9fba3f453d7b8fd879a44abf34ecd80e79ed538b2cce02a3828cb813c37646ce1497d445f66c2e5b785275ba823205bc636cc2570d825f9f5e921bade9bb291aff5df3be48c45d245ab5b2a510926097dabf865b0cf6ac8fec5906c4e2157a08d769faefb50af42ac7e287a452bd1038113a2052f8611df03acf0ba1b58fc59b720eae0926d81ae1419e09aefeb1a6aefd58831fc2b451c06ca85814cac91b0ad28f12d2d454401c68a6f089ddbed478bdbb2c3f65f7c5d4f7a133da8262016d139ce8a8d8455e54ee5bcd024da958708bcef5048d10f9edf728a2b3448acc9c186541ea20641c663392d26b854c894504e49a3c641fea787b2d9be624be5f4031e8a38e8e0beefbd46b07e1dc1ebcbc48d0cc2c9aa272a1a7f1d43862a9f6482e9f943d34218aa8e58adb9aecf89cff8b86dabec6244eb1f4bf48c5c752ef8ce6cdf610c08d76c78a31f1ca7e8a0ade34188dadeecb1f2c6c5d2489b1c98d0c5a4f790a450f358224032947148e137d13dfa51f1677dd5b53cf42205353ee7c2a816e759a07223dbdce84a878046ded5ce81046aae6c95b207b3ba153352ceaa30ee7b5bfd45179e6796a45b5408cda4ad6c94e29ade24cbbc8643c1132273764dae6eae9292e9614aa80f6069dbf2ac916c2bd550a579e10b990ead5b50d9b825f99f583a6103fe7587696e8591add643ef1e42e62e614c2bfc3f49022ff34c204c0f608d0bbc6d7d0867485d11fa86c9aaf3a0a4bbcb9f1e732d4f335b39318dfc2cf2a51528be8bdb8ce05e5916058111567fd680dfb1a3fa67f640a3704784f7be4ec26d205b21d5a5279a9c3bb5891ca43adbcb8ef5040e8178834f643c5fda3dfcf37cb3d15eb637da2f202e60d931e186d960a47bce057eba2f25dc494541fcf4990f9e52a91f207da830637cc2f5a9a0751224ec63888abda34a53014bc3bf4e04c6e3b194fade659908b7b523cf83f9e52cfb4555f978f28bf0052852c14505576c2db21e4c58b97239e5eca481ada553fa6fc4b0f54a9486a5540c38622cff25e4ee221d1cf8f141a77916b41c5293be7dbdacf98b9849d52ae55a0b9c4d5a89d2891bb30f17902aa813aee9861f1b87b7c6038b3eaace54f8637868d0862ba40ef17897dd2bdeab07a4dcf771d6de5fcf038b05937f047f66f5ad7eb25b2ce1bd4375187bfe9b06762d7fd336c21f0a734ea3e60abb70ff91943a25badf2f3690454b2a1f4c3b8782ae578c226724ce6eb8a8ad48e4cfb5c715c3a1e83cf6556056828d0f483c4903a73c451290599a52460c064378694c3184fbf1c08152b0e7c6483b53fb816aed2f8fcffeccc7cc21bf0ec7cd8a8ffea593ff8ad811033aaec0041e90c5a3f87620b3be99ded258aa0405d770e125773390a593e9403dc29e0f04f09be6f13cddcbb48465a581efca81273b391dbd0c2c0e763ca8c6a9d5e6e903d07970c3e6c72fcb0cc78361bfa5d4f45cb6252aed712ae11fb974040409286ac87f3d053b3821c5b0726bf83be3836dd5e6e2c1bb67075f0acf62188c031068930ad67db26d5ce1f96d8f3f4b1788d80ba9b7bbab92c9846213957c06f85646fa523ab8d2c80e71e48a496187e2cfe98cbb16fcb844f5cb342f0ff608d935452f84e8f7194fbd066c0780acce51569e0ade9d5d4ea034a67b6acc63f39ae0f27b8e9da422c8f8d0a62008b70effb512a85a82a7118f237b59b9225c245002bc51b592d1fa7566cbae0c6fb5285c6d351c46b3d0ed3df2cd7d7259a01698fc7235dd7d22f0fe2a5172994d2dfc71801df45c295130d74b629cd371c6b0ba1da8b59113a101eb8bde8c4bda6ba24641fa511df16cbc4e45c75b9232e53c85e743147b71075b730b7e33d095e33507aaccb0b354d9680f4ff915b20b71349b67f716cef43f7f8389e18c467aef3c8b2f3da046c2d64224af53efa0e84f6e039012c95cb7dc957795c6e5e54fd8e5b9eb1288872aa125f3b1ca03cb7ec94b28b5d98c854ac98b123e0f3a7d4f905fb332ad3f0a5bc65a961e130a26536eb24f432a63958599f0806a4e3d1864554b59c8cf8e5f97b1ca8690031b1557ce894c2db5d1b4eda46c8b4f092d388682d7feb1973de56ba2756260eeabfa5a9b567163fc4856e16cd352b0ded9d6baca385908760afb72313bfed7b7259b22cef429730cf372ed70572943d2b71ce45c679543f101bb9a874771eb92b0cb1b39e2cc4f1b7d8c64fef9dd21097353da164fe132a6eaea709a2ab66cad24c743fe868111ad5e9417a971a5fe799abe985d7ec7f90687f214ad1f8176b165a91d117a634d390b273cb0fd5b8c528a0e2b1d3866d59551fa6c74e7ff88e2a24d171b3a81551a7f50788d80242024772e0e214e89866a2768707b8c723426905b648c11a669fc829f52cc49cee4d0fa60d1a8a83ddda23c2e43531c57835b5cdac7b12f165e30b51cfba3e7e7d91f10b84be65cdd57a5e403e04d78ec81865b022e783eab0f7225d8371a69778f4de37261e1e5343aee95765cfaf2f49bd05e38b7c1b8e0f55442df0e13bd93421aaa095ae7fbe674f8ad262f8013e2012cb55512c7f90fb839d0b44520e594ace262983a6399a429fd5082a642bc9cbd2a2f5e7bdfc752b966e8bafe74315e71755c60224ddb02c2fc98ca0a8edcb2a6895a7aad0387f9f2efbeafeafe7da58d1e06f41ce023d4ef9363cb864c88b77c0bf40fa837e0ffed1abf2702ffc034cf244f2935452d9d21ec483ba3c20fe0480d35d662cda4efc1713fc8f99c0b08da2207c91445703f6183351b2d49b4979ef148b2874d28ca86e0540ca5e1304c7b90ef354a249f5dcd54c7eb91e6658ea9974c655f482d4e4354dd9e678d0931daa158bde1a809d92181e9984e6130b6832c3a64e44e4610687a40030c94b800999502b2a62c6254b1feca544585dd6cde3b17f02edd52408eb0015e750f1f86c46091a04eef56f852adda8267691e32dd01849121d2c96ba77a7c044574859d2af864016b774a940715d3a9593d8e75b5035603705938ff855644bfefc01a978880f6d3b6978304fd9971bf37388b984f5e41d543c836c2be13445a752eaec1a44f8a635a4b9025fc20b44d4ef856275c2062f41558f643924162b84b68261f1291826cdcba4dd647994e4431db1287de2f02460b48f4d6d54c5458c1814663edefdb4b2bc28d6cc73f8d3e44a7349a72c7ec1541163433e6c3e6709468ab2fa5652a3a9fd26b88f80efed98d6e091193e9336152c530758f71ef80d147871dcdf82793e1fa2db273ebd62b34fc3c7b43ee8472ce282e34aa88b52a5c78945dd99732910f93bcdb042425f35bb2c96a9872b1e60b78ef78fd951da0ef5235f058c274b8b2967806d62204d4380725395ee1c48bb52ff1540555c0b882747fc00eacc48ed28c67e6ca159eea43cbf6d458721db7a07a7a58a77b29a03a5fcce9909a73b5e457b02500073cea4b446cdde6a62d86c670316be9cb98a6d3d97f2d0b28695408219dc473d1de4c266a6f8210a0f1ac42ee9ce64e6ce4d7ef6a541d41722eec92a485337ae136e9a7c8e1b74411648d9f5058d21956096f9e964f5919532339a57bb49eb258dd718aa1df06f5087f8ab6c65a28a9bb1a628a30209aa0802007ea6ccbea377777986ac5b3d8eca41edac2b446c880dca05d7138b886a8b99552d3ec52e1a3a1ef52032e592047c9c0d78a9b737b1faf554cc67f6abd0d7bc588ccb78d8768877b1cc6829f54fb4330d2603eceb38332c2062aac732ee8e13cecdb7af4f96a9f6e749a93e61bbae62f44df3e00677180679cb6bc566bf4f5d8e714e995bf1663a3c7b0786d9b4fa69b5e399b6e0a7e702c708188ae13b85835d609a0009d91814305b2d374c92d2aeda365fbd167c7ae55d09a6928227527a9c6f0604b610fc3737ed00a218eb774cffcf624bca135c7257c60f3ff4e5c23f995aaf32680384f57b4c3ac60784749e36276e57baf1d10c3d83943e6d80916ea1b81f3a5f3b393cff2a9d29035d240b5c0cbacb6e1106b89b827beba6cb765f1043e66a8f25685dc0b680906607e60b2441e1dfbb0214d4c4ee6cfab98cafa6ef6a3673b8c1ec9276a6104de14ba09a168fb550824037aec9527a7be1562d83dfb6d590fec0b9584f3e75f6d1688a6410c4601503b73c257f074d94bc93151b0b2027addd747c0d0db48ae387dcd4196e7dc9febba142d45737bb49465ace776df136db2ed36c6becc8808a4acb5310862cc7a4b5396472af0765f0d302598f99436bcbdfb41fe59d90c1b60b287bbb0d063ca42299a130bb8b46b23670c9f5ddc53f2d2fa81aab8ae43980f7bbf81536e2ef81f7b1bafa9620308883885e26f003af7c618a459e0762715634243373f07ca6189796579b562bfbf9fbeb871cc4c85ff9a76036ac3dcf7f8805ed121aa45efb650892ff695dfdc40b1ed88f64fbeec6d10d64f7ee819a9f6f570f9b20397e428f60195c771041eb4548a3026df39c43567fca68cd2aca38730a37f5e08720ec5280b348aa1d2a5088c2bf36e15988030b6a030c8a27bd23985e0e7859a301867ae6c69275e229de01fa43647b6cce4c65da9f35540bb080fcb41d9cee09ef762eb91ef48c603cf1a2d995af96045d5dedf2ae86f0abbf0eba5067b5f15933742cea6f8f06ed04ed4188121aa358a234e928a7f3b0b16bd9985b55410764d6e97f6fc46db313ad9ea50995f322bcfa0ad39811cb134fc5972198c936f7ec9c57dedb9279f8c62291150b62dcd756f5a31521c0dc10ecd4d0726cb3ee8d6c4eade40b9d2faaa2280f92d23fdcc0b0b15d544b5bb3b361b81aa70a884815a2d60044370db7da85f527d82430eb036ed19972ad97fcfd7c32f0fc3ec5d8c277c1566054ff17809ba8eaf0df84f6bd96a70b340815d5d8aa8d860a54346b3c6e79d12532ff3adc831d00c12ad8fcd7f25a400c3174dbf0b630e4ed80b90d7c25973ae76cfbe800b8b578e5de5938c93cd438bde44af4350ec944d5167efae4ebff467740ac2c3133d462f41d3ffe509ae33c22a8cb690575d1674d3288816ea9156dcac744afee007bdbb5294b729d961099fcf797c0c6d5e1670abd00e4f3972e30094790dc1872966904516913bcc3b14cf0c511e9656dc97e0b33b1b60a59cb319c2d14288359c580ecb5318655ac924519e985c0472223ab5844151022c7d1ffaad0fb4b90e76afad0abe7efd03f9eb4878191b36fb60a49bcb89735a9fbca331780bb98102a364f4790a0e007d8c526ad6f451368b450e6a2c8ad359c8cf3e2a718b25b1f30c517ffd6ebbc3313bb6606a383009962c40431f29acb2c69e80beecf504290115436ba0128ea5ba1cff7ef08221881e8db49d6cd5f03237c5bdc647569a72c9b183fcd3abe642d8bababd23067aa85e771ecc2504315c1c3ec7d9c488bcffb8a3c2c021d195295552d4146a9243e53a68de672ab655a697fd5aecf46691b0562e3a4e9074f5197553de5b4f01eee2d7113dab221b96c2d6760eb37c3f90ec93f47e159b964e486414a63202f6158da17cae21d5fa69d9a6f94eb6445e5760f203b96e5a586b91c0873019ab66c902e56d4b4a51dd06da7fbb93ba70b51b2f7ff063585ff249d774a9e3e33659951fc8979aea3b2f32a7166cd21752c63f53448c7a645d7d686dd4cb8f954d50e85eaa73d9871a41ce6ac56565885273d324e965fc258f0f9390137e0d25513ff4a0435e3fee6420369c838c0c98a20406e6128439d963c12016568be732526bf663578ac58e60ec3dd0db0dffb8932d2824f317d1f0bab34ef679047fbf44033ee1004a12e9bf4bdd5bc58221158ef18608c1612e0205e72ef9d36973dbbaccf3fa05f35a72969b95b886225f0054726abd9f8e14ea7455b963e9bde65cd56a2b76c2eb56934d0708e2627d5f4fc5e046bad09a9e94900f4c432a6d991ead911ee1fa49e7da4aafbd04c15d8481bb9609919d98e15ad6b8aecbbdfb3d77d0fe7b48d247633d4069cfa670b12171c3fa99fd1fa4dfef82776dce1ba7fedddf7b80378edabd479736e94923a4d5022b86c6eeb38ccdac93e990950295dea5a568f3b311c5687a351f8c5381cfd7b9378d0a354b16bef63c3a91e811bf332d76b96a53bf0f71da6e4e9fe71a53d2f409ad91d3cacfd8dc4514de02a68a982e4042e39a8a54193cc444eb2cf859367241b40658214ff4c47a17ab4691ecaee74c4690a525e09e9585aa2a502b55245e086f9c690e4229a5e6ef5456c2c3a6f7478d3266d02f5b496deafbf46ae1607979110bb0a2efaebe6243200e25934c38378913d1087de39cab3d4decf80e00fec2c24e6c10992b09b03ed9bd0dab81308f317e67da4549edf1559e98a490cf210081af53cc20d2ea2bd81627c9232993b7068ae65065a48b856fd0e9c21c339494d3b11773f746fed996e10f774590195a8c9dbcfb68d36a87962d6938b5de2f4f20f372a5ee3129c01710a737271d7d3bc1f7a95640c99bf39171c74f6475d44633d65e2f1a49ca43bddc6de52bebdbe3d710468776309455addee7bdb8c07617d41935ae3e7e9e93b869e3e2cbd53d4e656fea551f13113431abf587e9a0b6d6b7f83020e08be93a5573c31514c6ec540369801ab6d8eccc624e4853df060626a5702510e986e874cf7d9d91d933e051a1eccfa16abaed9731e556f8b1bb68527b22e172e02a259160089c42bc2ea539a03b79b1980a97ab14b4a05b0732812f2b697d2de801ead6fa8f4f016d8b6ea79878345035e3f24d7270784f5fd6548b0f3de32e0c5469d2090c93a509b968364fa82ca50db27d019b4b7380a6a53276d8bcb18b97da4fe1bd1b78a7147bcf520e1ead26cbe9053d50662a12acfe8b0cc656c550ab0a46fae61d1f21dbd11879e573db56e4f89209df46fba145b15fca79bd2e0120f093c9ab55adcb5cc8fe8cd4bf4c0cd750d331a99954f8c9554c210d8085a53936af6140b05bb7fa0b25ece22247c420abc03ba50a0211f97d05fdbbe677fddd6c840b9fa93364648dbf494a8cd487ca52f806960b255d6195945aa0755b414b8d4499160b7518cd076bfe0ee79ed8aa0bb110642b54ef6eb87f4a02ecd8657ccd971ccbee03c67365ba57896c2f822332d4cfcef45161b5cd9b6eac2b43ebf1b31e9628d76f759796f9a861dfe55de82bacb962715460002492c8f7678591f9d21edad9227634da04322f34a48acffee3896002fcc9b8281f99e3e1bca6339d4e326837df4b15fa41c12052927b4e7a396565cae4e5951980595b0bfa8100d398fd08674766ef2ec901b494af1f497b8b9bc443615a3d16fa2778c2c0004af9363d22c034d725bb4c967c6c00dee9a427b2cf59f0eeb97272f189eb21988701ff0c91a15030472f0347ee979d7bbe12865374597923349c1a5189c0be2ed991116fe723f4023c2a5b1d93e1f66cdcb196dc437db31c1bf7ba87cfec4cbe3e1c46f91c95c857fb47ed93ef8ebef859e536b66866e41cfb419392e51033f0e30c921c455b077ce4317c98f31fad0c218e58c6628b2dda7e6e74511a1ca89579d44bd8d12d8278ab2527522f9f70e24d678878f5c479d85208620a07d9b79a45a02c85e5528d847b924d31b5e07ccdec083550b5aed06e0a798a830afb77722bc600d8e2d1425a330dfa69a1b1943fe508bb68ad81e3dea67eff6a111caf774dbfd8c834271d60a4154173591cc9dc69e99186d3216c6eeeb056abe8871c9c8e1a3824aac94561c95ae885fe46ee2e92d85b02f33f1d588b681f4d4387bf64e2121df229352a8781fe2a768f62b9d16ef6fdfb3a24aa05e6a4e820e75847da1e04191e0aa56c666327b09d495a7aea755dee1475e3c62a8aa385f3626b35af9f338979b9f687b6fa35af8dabd27ae374a02462052a21aa19bc0df537e399a9b871a8a3de574997d1cc6faaa487cb26ec445e74be6ac51ea578cc9dd2db8c3997b80da5d61f786690c0ad42d27e7502ce31b3959b17d8aad6e50c99d870c3cad95768f1826525320a141aeeffe47e7d4f342f7c8d8df45ae6569c81b141019c80ab5c8b7f4a84ce20cc686a446fb9d8917e57b96158fbfb8d5f0971040e3431e9e9b4be892d9e1092fc120deb8130991911f2a23fa54881f0f74edfecb9c40c1ce03292b827d7b457a1d08be3037a0d6ec9afe0aeb8bf59523d59e99a2238e30060700bef52bd93bdcce6676802637b39b3fda88c8578f852beac5e5d33d52e5be3d485d862122d0060663caf3a4f5ecfcfa69818756c28b4c1ea23a8103159a358594e3f16635bdbea8bc25b8e6aef96329d899eb73555d07e5498e3576bf914cd2b56407ca302e9231e12d86c119a8d0b5d5eeb6a4deb6c9dfd3967792e4981bc00fd386904053fe4d627dd864cbb9efaa8510b4aecd59b45361ec0aad03c75efdfe05702bf34ecbdccfd7eda2cd184ce16601157a84229170d9a017bd62fb159717e5795025929cf1d15d8de816b96b8c49075978fbb0196a453171b1ad21ff222d56905211d1a36085b35de16d55d404e2afdc74e575b69b98403b28e6b0540f0b6857d8a59271a1d06d711fea5fa334e32524761042839a2da41875ef86544a7f9d7e7de15c7bf46a4c8bd23e2b3359204abc6c5003223d6c530c8cafee189b21882d748053dafffb2f85d1d697ff056a0a03b02bfa1de3cbd015f28454a69dfbedf8adede00b11a00f65cf07dc9729b4d0c1fb57ecd55106ab378953648028228faff611431e28876b076220c8deb4196a2e382a8133505246cdd04f93fcbf21ad8eb8a639fe2890b1211b8fc280f64cee5cbff499e22f4bd10928d4e5a23168a0168778c03773897c3fc985879bc07f1fa59b06fc0b9d04306567db9ad9b8ab55baa8bd692e9e0b5c3c22720dc8e913f921a8d14e50ca515d2f14045f2c5228d81d06575efcd41eb338af04cf01bc4e5ff5e054bfd0099643d6a5b473089d7cd2f4e6b4194d514f0fe37212b0bb8e2ceea21b5a2d0aaf3aad980399890977e0a16d1bc324c3f516f847f52ea78529eda338a2a8fd7939c3d515d45d0253e1660956d33d4097faeb942b53a252f87e2407bb5f8bc4459dac5ac2038f70cb079730650ba5937c272d9cb5eaf8aa6bfc4ff391cb88043971d956da99dd95fd079a9050b7ffadc99e8185f87d09f730cc2df14e9a42c5595f2829fd4683d8c0071753a94ae2e020fea0c372b83601b1ad8c5c9747a677bb191079b9feb5cc1244bcfdbc3fa66083d7be11b7493127a4f28d775cdb33e7164c14a78643b0171d5973887d857eed9f1128d5cb6b19a4729a0ec49168d220e916cb705b3b72bb6ced6e2ab3d8ae9475da16c46f79a669d46603f6af2b9d3e2397b600856899a1fe7a535cb54831cb0a0a0c4431b82114105f455f1bf6f9bfa2e94a804f9bfcffc048b076da12c3b4e259a5515a5ef56f5f05be8a5e8fe984ba10196527b2194b5add9eb012babaf768784f0c8792d21699baa40ee45532aab788bb4d75eb075b1504b5b3ce8cfb68f7d12d786877678f992ea0fa5e21cd3b8b43149e5e5cb3cd25b6fef60fa603ab93d043ff7e18a7c6e8e0924aacc0c6f69e85c712da33b71e1ca948fe6a3d442438f703df797282edb1ede6f86b062408c7def9c9e62fa75f2f0903f72441ceb4e756a3ab13339120c5c11d451f35863ded7aae36aaea31f43cd97ba734ea8e59b1cc31eca800f8b1a1357f160ec2375281d164008f58121da6c8cadddc51111cd29c797784c4cb4046d5f85cd1dac375dbf6270095529d661f211f4525ff6489c17c955592532c566b1450310188884771d205080b89918afc561d896c98d3273181e90914eba5762b381fa4019047d28ae91dfa41b1e8774a561c526236de8f9092e9355866f868f384657c16807fc4872130e88f3d851919ad7c7929bf0ee0eb4c0bf835bcd6ba08d73e32c86e702ed33a8175f6848d0edb549953e468690c41b6783d8eb68caf33eacc32dea80d9c903a7f6dc58fc9e3f412355917e0468a5c4e52cc535c1c284c767732dbb2f48f4373fe02baeba1673808a91a7d07b0803255b950802cf9aba7245277c0a6f140264a8d07f59bc27cd2d425f5d8b0738b3d0c2c206e9c19ff23ad30f02635f99d803bc9651d00e747f372733373736a55f46449fef18d7704d76d14b8e8971464d90fc7410229713dcf19f2790bed4657153f439e0d7ec53a539f7cb4af4ab5300e8eead423e9db02dbe627e3fcc480e232473991b0e8adb6e335377efcbb25f52086ee6e9a676bccac9f373a9a5af1f1ce20a16627c9c24c4da1b4989d6a4b2001b5877a92292a2c8631218c3d38b75ee86548fbcb53658dbfb3cd82d26316da907d47689c0e65514a56e77a8545c70168d58e32df0e920103294d3a8f298922fb7d85994f33f67a329c70fbae4e7cbaa482d560928b2efee33e43682b2e6d46641b58721881a79c0671850519452602914673b6c80c35cf3cf61d098fda30bf145e02344565ea93e53623c72bacd0ad20dcb48ed016bd6cc64d73687bb22056791f15b713e95a220608e284862c87e4daa5f5e0aa5a10abb8120e6555f33f9bb6a9c2cb029cbf4c20a1e32c5dc53c7f05b16ab152496cea72881d075482ad00e11396a8966f02ebb21385363963c0b56b99b5cbcdfee9a3c4a4b662168933acb2101394ceb5609f7e60d02659a4845ba055726d0461af95a0ad12503d43a3170a7628eaceb2a9268c1ddd48fb7cfb2eff60a1ef1aaeafcbaae8ce82878493f3914452ce6ba7e4cca1ba6ebfce0f2ae1235fc35b7fd4415f0dc96986d8baa932ca4c3a3e7cd5bf2d19d7fe4cb374527d7d5201efd3db7bb125d9813dd166b9fc9b9da79dc2983e9bea507e55952b8d6fac5e78ee92f4193cb3e2b4f4294747c3ce57f1dcaf06938cba22c1b6d98494ae95715a9305e49d9e7ebcc35befdf50ff245629c51e99242faa823f8d6930d5114a74dec85b75b3681afc4dc9158e96228772ee0714bd92ff20a92ff2d579dc42899580618b2f21a2c39ce54eb8cc1d6013e479e04d2bcf3ce384a54d9668e59d5c80dec9f7f6f4fc0e9e44f44900625627324241fb35a490a5cb041035fd34c3bc946746f1dbd539d2260dd3d7dea13ce16757392eb50a8e665c424f812171e691ada95cb78759248b621c1dba809864569ddb69b6156f958d715dd60a5d0800aa1fbad7679cfa0c8f3dc802df827d94e15d890c0fd432d4433038ff2868b36022c758f4229d51abe107b3505453b99dbdccc4c5dd5b4b57269111baa88b679ea3596983b6519a39cefa8d0182778b7e04d0ae8b189dd3cf00ac742ef4e1368dc91971be9fde9a52c8880d9efdefa1b4227469ee4781d4d8a82f36a21982ee3c7adb640b332df45d073296efc6c2ca42035d604957c39a045670286a03732065af9d45c45b5d66b249e2045503d93bec23e40aff9e5e3e11a1795d03cb5a21512b8251f3e47b4264dc548b04ee7c4938d83587860a1defe311c30329a58f86e768b77ce98e30bf4e3202b9e9596351b505d0f8d48beafaa6af1a2be8eab40b6dd14c8f9b8efb5b893bac33ed4f1738128a36537881d11598d1a769846c1ade0997b346a599dd854ea4901f2387217dcc6e230bc8a901026f95f1942950d0c5b0736018aad08588a0749956fcf7092c1a610765c12dc67c63d186a62f605e862acf8c6795d1d9e6c41764b976769fed9ad7fbedccd002775683d470d802126c4340d8063504991fea8fb7e2aa10d6bbf12680e76b9f9684ddecaf010f77cd91f212ce2b7f054812461aada4c57be9cae099e14cd161e4d462671349d12f419965c7db7dbf6102450707fcd9ac586dd8ee226dbe6ee8a49be7632ff4a69a4146786ebe5d03c0bbfd5389f272df0f6957dc5ce387d43cf7df6b3693a00366780604468bb9b81014317c482c2e17ee3bc1d2cae4330f291d76b3a93b1ee6159078ecdb743e1e8b26d4d7a8b8a35b9acb23a5fbf223c739f5eb8380c03e6527dbbe787e725cc1cedd3e84c6da5b3b514f0cdffe7c4b964566fcdbfd96af98e781103ec14b260f0897f93d988944a9812aa1d91717b06dfbbcf129e66eb7a0bf41894c7faa0eeda5cbeb0137582e1bd40b83f394c7e9543976c71ee9ccfb1fd19cd48c02605785ac3f2582b0b71392490a5fc70dbc9ee2cb2bae7de48fbf3544ddccd47e157417d2bc094d1ed15c9d01a00d0d8f7902e0fd46bb1d87b039312e8fd0cd7de21c5d5c74e1e8ff2bf963ba0c5eab943c36971bfe76030d99c140a30ab0c986cba7ecf5ea64f175c0d6e055c38c5593574e355501955731c68b1f4ea31cfb93f1940a11a5dbe0d1a994d6cd7b486878c799b0a998c3ab7ec09b097df658d910bac9d7d4a048eb9d3a257f4305bd4bf4580e45dd6d6845b8e9ac2b3a9c04b5a12667c90a8e46bc71b364c9a7a8a0e166b8f6ed5c9929f3982800345dd4ce931c32d5ce47f0de8b89ce8fb6e1d9423d5d44c4c47cbe6e5c3b406c7f536a6d94b9a8c2fbd650c37871d67dfc2c5f2018cf05b3375ad0ccc83ed9cf2cc38a8d31666b9bc0fd660052740b07d50defaed390f357b9a6b872883f622bd71838d2ef375d1d5ac6dff42cb0e6cab788bda17f871b100ad7c53021c368e11d152e8eeb316c84605f7be4eddaf4be93e2f6e5ca7ce6234690cd8706ac0c5251f649e9ef046331f6fe493fbfa465aea1b9c42a26e0194f75e5fc12766812cafd5c57aae7c34a6fdf06de735bb6f8dd51b7d8b81878ed3fe1e06f2240811b5bb288e97a2588d55a1e128dac186f7464ffeedbf1e1f0b932dbc0a3d50a4ea293a7042faaea3ace5ae9578c70086a698bde3f1230e494aefe0606c2af755aa747645b1824ccd9cf48b48cf06d375f5e251c981c5a20ccdc42dd6d65f4d19e620aab1e821828d4f41acd5b06bc95365e4c514d4ab22ca40b7c390500d50acecf1c1dee4ba694cc16d163ffe06ce4ae0ea96b507cd55efc1787690b9069c86a0490fe62324fd08c1e23d2284f15fc32ee1eb39eeffa476376b5d0e87b904b1237d28569844d3bc580090c2fdff0b15eb3a1399b858fb7fed817a1a39c903002fc7681740bde6995549495f2eab0781edd8288198a378fde826fe63a654c963bb38e928e09630f73479f55b6311af35de5d26bbcd70f519cecbd1a2eacc0e56c76942faa71985fa8275a50d5cbf9b8f800d6d3cf7ed7cbcb970e1c92b3318060499a13ed822d06b2aade352dc781edbdb439e0e8430b79bfca2631945ad906f8d1ed6071e14fa6532c1ba02d8ff4a6e36bb633cbddf99da9373e0e4a403f582609b39a389a0e60a46b063324ad5e4df5fe8bd4377a712b3d5c3e2b9277f25620d09cdb18d83f6ceb80c6ce357747b63b24b237d49c648ae7a22f98dbfd8591b79f86437617941f6dba683c869b9abbcbb6a1bf6983e82090820327b324dc8836501d3bc76f8535eeac5bd2a0922ecc20e0b74286ce84e79242ec049e116a871e0fda25ce4045b81c90adbdf866e830cf1ca28d1ea5a7f48c1aa827d624bf53baa9ceb3b67b791c9afd55ca5c2e58c73ff9e7ee3596503c7595b5ef632244c65b3c8792bdfdb6453a317deeb17288be8a72bc788eea3fa394d8a2953c22a969942af2066dd80fc85a1568b95c7887afdc2fbe69b6f63b1708c80150531671c5d40442f43acb07a5a5d2c0dc543c3e0175105ef0ccfde0df42f63da1b57d78bf7cf3907c1b7ae8b66998755727427c1120b28ec77f1321ca1a0b9a79319c7b59777d4873b17a85132af71d0d974fd597405b81c41081e5189b430191f55f138777ca18cd90d6dc6dd67c8c37322f0f7dca7f3398a2af564235d1ee2c96380f05c13084575020ec2307041d8b735120998d7d78f8c956b09609e7fc97d1cbbb7d464e7d13cf219219ebd39c6a0865c4dfe38e4ea9069dee1a40c6d3a4e19f29154ffc73e89c7b58f1e723fc1e47a4a6fe09c52504d97d440c48517d5473fe1b3e4f970d3c5a7156fe7a7c9aa11c50e668ad1fee6255bba2dad36e50fe562e9333c8b365ee1ac35ab3e439b419514cbfe21512bc0d683011996b3ab24a40b2f8b5489f49c6bdf84ac8f4cd9741552c6bcc633d53ea94f9d3dcd74eb4c3f3e4b6fdfc0165bc44329bbd439fd4089e2fa3c1b2b89b5fa13c228c3369898f42f89e51754ef111de0388deddf480e13e42c730c8e32ffc1e365e5e4d1be080a11f532a5dd2234637234c57ffaa47c010bc08da6aebe641adc5f9b1d19be4ff42d4a1a7ebe98e77abaa21b0119e6ed64460e7243c6d126af64cc964fb5994a623f3179c89f8423d6456a22262bac3896c4631c69ceae12a187f8e12e9945d1dc40c479c0394da3b562b51b265e589459a12a7f24fd681749b3164ce7ec19c1d435bbc5367173f70f7d093553350afbbeac9e2a98a91c3e653ce922fe760ea8d8eb525d727d10a705f61fb6ef6aacb3998bac7e1e5d534445a4cc0df40d71e77d9e9cae5ec6662501ba48ce86544de7c71308548f383e5f74bcf81acf2e75a1e29c51f7ec55ab33d8e0d6c2df138ee8af6df712992a8c87f3774fc5f35eeecfedfc11038e47e3bbf3928f01d3dc48cf1cc5c02f1ee48fc6f9c6550402a0a523854bff2d6595a061b7032ad7646a561571a572d0d9bc92f723a7edb9fc58b9deb309b6ec45daa4bda2437ff319cc9da5644c40659c81db8955a3df9ea918e3af2553095258a046cfff5b3f2635a55f9588dc38d13a322015b18de0295c7e94eddb4391421aae95de94d4359b8dfdfdeb992db6595b81cc7f5347ee897fca19d7ea5fbb35209017f5a38b6a88de7153a016b6917adf3f3c8d88ca07d5007a787a123f239e541e1c47b23355e764b16562429f8afc06c116aa225cc217079819e0c7800f31fcaf457a6d82e7fa00f5d1c5890348ab94b99aa3cd92811e18d2f93feeb8aec31b0be5b5f3c020cad712dbd09dc6ea5031699c5db3cc30a265ff8327131a26e79304d10ee53e628687850336e250abfc3db9929870db9f092739aa484ceddfcc72eb15733801fa83fe4a8357b48d3ba851f6739c53d05bf2ddf2a35d10cb2e7a949a4df5a2dffb2337086f7a730d2a1ce38f05257db4ede6f863240859a6b3722fcd543d70be72b0ced1809e0b338b09ae7670567f4a256282a42ddd5f18ec295e20a6389e926aedd5224ff87d055459871a8087a5340e585e76f9ddcc978ab48736a518b702d3793db4e00406e6e209132adb75f9038a252de1efc07637e6e20ca02c04e36b623d787dc9c9b11dc5376cc40e6c6741c5eee2e11cdd930790ef13e98011fe14929058432b7439231ccde9f61560f87782e73dfae5537f9878b4eb069be33c3f616342f69e815df2ba228b4b6df696b2cde35cbc775e8f92597b4db6d172ef718261841be493565ac2e2607162fdf9ef14d994eb2aef3da987c23a44608acd2f1037dd017fb4f3078be4fa3626af9e166f23c00a476c7d83e013229d11768b2fb7185513eb5d2adb83a7280cbba0cd00e60a2a37c6cc94f8c2774a13833b52f1fb15942ea36b6a0e0ba616e6f62a3670d5f45d492799f0a16c7bc77aa8e3a9964a37f36a08e2bccf3d637d801c21f05c3f6ef54af4ecce60035a9dcb2216e9922b498caac81fe5d1fb74f435aa4b2259fb99f8a3c01b5d3758abf5c2e0b83e5363d69d0ac0245fe15b4e685f164a86e363e8c02fbad919e772337f02eacdb57a6750a9e5809dbfc0c08a8b5d3a1ab77bde4893b46fddeaa4ab513deba94b24e1391d47f9c61b11b3d4e530540891ecec96acb8768ea40369d41fcb4a66123b18a943ec95181b792926f637c942a9344b597b14cb541c5f6d0f31c23a6fd7c5ac22a902112296493d4fc933fa199b006f547910715ffd92e6e19cfdd84ba119a7ebdab8ff45cfca690b6f3ef075bece90fd75f331a36c3fb51b264177f3742b536fbe1e266dccf308c40cf0fc8dc004c6f9f483c72797ab6c20b66b76d688c9692931042ec3c33661cc274417852ebc5afe9089d8ca8dacc9d4919266b388e419f3952d7b2a1990947794a1f7da4ab2dce2bf971ca148d821b4d44085626e96af8a549678a15d933a323c68cf751e454e68db5e24b691fe086bc04a79cb448902451b7e109081ca6c2fcc0c362799262b6709f8726343e7c2778ef99018d7b2f0c0e4594f0e80c9f4ccb4b8bb3fc0e5b3e045da02819240b9dbc46801597613ae07e41a5f77b60b5de8139e7bd61d2e3d464027c6479d9350006962b7790d1e67917479631978cb0bc4f34ef0ed5cb3c89ff4fca5c991defe5133abdf239dd2fc73aeef4f82c73a0c4ace7d5bfc4d935c30e45388d04f6488ebc431ea5f1a1ae90c8997745a2147d20bbaf07230ba970434beb671cd25142b50d284f5e98f36e700e49990e07c6023e6bf30d7466d3a99ff9b6e1ba720e36a85e50f9a6cb4c50cec079715700e0595da0eca02427766ecf5d2c9f20d8a721acff5d037a7b1efefecc82598607cbf81969667d371d708a2ece4ed45a6987b24b255a8b002dfb7d035aef8df510c3061b468ffd310f76fae80f68bc1b4f87c8cc7409a64f0e9156981a4e4a56f5701a999432ddaf78f6d8c13b275032f6d4e9df3dfcf6e088652a6b33efa8d548302c1812f7ce2029fb871192a1cb07faf385317af2bbc66ccd6ec3a3da97f93a8b40917cc70500424585a2eaab70486d5d0008c92c546fe65a5636a2e19ef56c85445d616e894f50644af913f6456698dcbd23608933f8d86801cf5297219b500c3c0bfc85789deb159ed144eaa64a5a3876efa2aeb9d087bec1a87d0b34e0202723024886669283fc9a0129df016840a27cbc20d55587795fc81f95b125550779d5e981481f7228e6094ea027899413701a146bde91983d88db7d0a52e0410c7d54842c7006cdcfb22c1fabf214708cce2e75ba1c07e60807a09f7166430f2021fd8128527edf6c6bec6b2a4714198a9a408a87bfa1478c42edc5a93b2566b2f256658e370e301caed5220c33de3d9652a975302cb05358243bf8db63c722fad1c5f74fbdb767c8aa26ea65290614cb5cc506ded991e7ca77762c0341d86a19f1bf971e4476c72606187d74bdbd2b0ad8a453fe7b4467d9fbd3001d1ded00e7b9a890b69565c1432443dc726011fe9fb8abe81e4f282858765379691f049c1d23cb442cdbdcc22dfbfaa1a2c1b57d32bae886a366a0e9edef3660946da22e64ca1dcffbbd43d58caf851521ecad161bd52bdeaa3e3d46a4ab30c439104805c856a9b2953ff9ce65c2ed5a405e25cd0a34dede642c457abc0ef34c6613307348686edf8064ef402eafa2096bba199b17cccc936d19d27099a096ea128d66b289c9ef421da9d5b89c08f3a5cda42f302086d7ef6ed8f235ac2fcb32f9d416c505ecf3d0713afdb052ace72d4c457fffc3de0bd594afb800f33d3e573ea9d21df65ed600f01fba00069d8d4c95649b1e80cab9fce04cb35092c8c49fe35c146de7a267baa694b56cd90e313edcf7f306bc1a70cd40b474fec0d7ecd12df682a9cdc9b74988efb4e28069469aa200f73b7a1db7c9da3e48133bd3c4bb8ad1b43d758df687b585bfe91fe320496ecdb2009c3e53bcdfb3f6356634f72948266749906ed01309b212b6b1e36144ed3e4717bac0e04417a140af8516515b1b475b0302b1228556137b5ece8827ceeee343bf997f4560742063b92f901574f6f2f178943065d768625729d501bf9be6d7edebcf32fc6da951e4f5b4d0c054887d780c0eeb8e587419a47f37b3b76274b32c58cf9d2205339199e3a754faaf129c6286a24c011e4056518183eb834dc3208bbfaf9e7684be569dec11027f1906892032370d7dc661d6b4831c25ce7e8826746de169cf9892d5fc7313e0f16464b82a4725e620757be867e9d4735ed2dc90ed24791b0155f11b5940551af0b4f49e6a7a7de6722dea8ca5ebc3889e0fecb5aa8782a9beefc5da700fe70576f2e2658429e8db64ce13daeec8fb67e7faa2a6d32c2248dcb1356e25984d2273a35dd8b708f2e8954a976bb7cce0bcf341a2286e1712257e374328dc65a87bd6fbdda8bdbe3080782d6d0ab12e3f2eef7dd4eac264d72136d49c99cd4ddbc250a91fd570790d48dd13495cef28f2fbdf34020fd9d0826551cc62ec9a1cf28aa9df4fc75d4da0b34d3b4c328fedb616cec694e6d32f956ce4e4d70588e071852b6808b34778afd71aa86f7ee6cb499ed2860ec8256e3dd7b92de8d3b31dfc27628b7d19321f1d3aeaf4fd21f1db8d03d2134e772323d5f2840735dd148ff3188a49406280a942ed1383a3412fd06acfc376445e5d6f0a572944b040210303b5c068a7817b27f59aab024dbcc5e6c7c36c71ec28fee19b728123f84f7c881053296a62a0bb96c984d8d89cdd55f920c7167ab10270d1135e496099e0872601bb5ab4527415b01429632c985cfa480c053d75ce2bb6a2a796e62ce9041ac3de024567d7cee2f51d4d3238acebec15a8be7d33b4b67ad1c62b33080a7d1f32562bd51b173efc4303ad62d3b516b66fc08637103507d517a9809979da79454582b335544da97135b48efd8558472d06d3f9bd2a92af013ced4c7175812e7f5626ca708bdc720480a9a17f7719070ef44dc208e72a62d1159d1d953920be803d21a860bf1c6c20c2e438886b1b52c555f0e1d50026f276e5b7faca542aaf5d2943e17c7330a7fa4c2b45916cec43d6e7de7b7519460d32c5e1d909b7dfb6157a35c841361c8790e28358305b4fccb70db9b8aed01d3705d421497e8f06fab563425edc3c6d09960c0c6d3a4ce32b3a0660d5b5dbf9dc3e6b7abe994f94ff16e2e9958f9880df528d4d636f3a8e485dd2e4510fa5c85bbf0ecbe873a81d8e4c4da737eaee1805f26b35a578887ac7cfbe292bbcbf3da11e1c0060a95fb5cd402ee1d964d3c979474bdc9250549217dcb7b9aa61fdb5f22ef059a0e83a2a82db8333eb2dee8b325ff135ee2a665be702f9e4ba5bf95afb8e461c8296ee281682834251bf53555b1958ed3437b3859d61c2f4b0ad825c1e75716cd36a25f9f2323f5ccd55d7eab32cd5ceaa2e10d464c2cb243bb0aa3da79a97789a8b850bd8096f35e44455379580c474ed5a55fff82413f0691f6fb6c6e7bdb7bc0593d3237263de60713e12f78abaef87ac0860cf4d51ed10d8b802477ba59b6af6263ec2c2e475a003caf286754ab0341b5e6e785d54ece5039978968dd46d2ba94c1f6d44d6a165b1250386bc1a0e5ecda1f4e3c5e33b20ed6a274d63c2c748dafa9a2a6e962ab5c36da04deb22570b989f4d06c55ca9cf6425f10b5875eb71b0603edc3f930d2f87bcf0d1c179109edd9af825544554002ee5d00451fbd9329324899b2116228ff7a688b3b9724647d4a14af83bfb91662b664424a7ef872c1ee60eb2ad9012757098a16edce24ec59d9948ccd91e7f7236e43498a2c532be7129228a0ccfb3bd4b28c22d8498c0fa762227d75e13a801f770e9852656ee43ed4abb8d6491e05ffff92717ff112619fa938b1c870c6ef30a9ad7a17549a3a660d0580274ff64bf580121f06737f7f1d26cb6dbe74f5de3f20a93986c7c3cd4d2940541dce6fb1cafe3efcb92e1d85e61bcb643cfdc2d23b125f34cadf64a09cb27386274a33e0a29b3d5b07a1a129e56c91bf12478f0954599f241f618700d4381d14b535d82e9d11eebd4292252ba961755f1495cf13e682a852f6bbbe56fd26695b004fc06bf50d2328c47feea415701d42bee9dccff6213b75af44ad22a7d29d4fa283431855f21702d329583782b9c7a10828d01bc811a4050a0d6043605ffce8798a3cfe01bbd3c7cf40186bc2f671dfefb0e44503536943eea87dab18efe07f5c6b56af8e17758a452f5428d9148ff4b6800f1025b887bdc2b16a9f10aa8a1d0492e23d3181c861e6bcc47d1a580d813d4073bac24cee752d6f360fb89c4fa87474216f771548cf09dd5e88b0456ed11b4ebb628a0576ec06f75fad7ff4a9522cc692ca6f913f2238d08e3f4c62631557ec2294b6a21ccac164318ed9cf27cb0824768a4858b776d2e0d6e282e437290e37ccc6e99674e1b93b21c0b5616c11267da8bbdc6ff2439ff85c5e7cc00023a88cec51d3ac51484bff0654bbe4eab43de3c3b070fac7ce9390c3ffed2d4cf30a5b071740f8003a197ae421d010c3e64941efee8e4807cbf7712b5e9b7d1ce4fdcff55cda4a1d61c0c4d154bd7d2263363278fcd9ca56c332f9a1eec78e7ed1c2420f4644ad3407e0bda119aee2d5342cb332404f2dc04cb1391fe991105e6d5bc8eeec7dd80b608209516b6313459d149304855e93d48513a57757d19ed1779544288259f0e8f8a130a813a38a3d221a0a99a549c15ef3fd4d94e68c3a361ac04f6a1f4db43d72b24750fcbad121beb2a0bb0a77f518086764167dc68aac0c31d5e36a417ce369c7b8d9f18741084f3c7ae085befa7114b1997ca10109c2c5e3ab3d244edfd41ecc06546aeb55554b891d4e33f73b17b7468e8aa814eee8bd8cde4e017198a53867f9fc1da4f532607f61ebdedbddebc0ab113171a537c44ad2e08403201737791aa2ac65d334a4731675727d58f08a5161c17adca111a14e890d7c4402a558720b4a69c486ddd1bf154e93f82f6412a0b463153768b0dc3b3cc4ff4dcf428e934969e68d6c8a45d807987dc828532cdcc3c6d8ce17ec5f390abdf4982b02b795e4e123e119487882296290868259814dfeedc6f8b8f4ece49c069c85ac5169725e4ea245b038bbb7e0a30643ec3077359d432af7c7f188010b57276b9acc324c2f810e342de1900d4a4c6944e9d5202031a1f772396961bdf64f0c3d74440e555e339b049086201500e0bc65cc795cfcf0ac8c56113b09d3a3da9b8500f7219c5f59cf78ecb11f82f2abb2494d928fa6b6fe753e6953c5843a21801df6be70b4a3ee98281e420c1fefa61eeb120ca86eec1f756d49e89357d0b39ea1ecb656bd3f94ac0141a15fb1a3e9758aa4c06a50e8b9e8b95ece92ca9f2d4b39f9c6d49e0316dcf3e8710c6b1077c82be908ba4fc79502576935afd745f7119dc8a2de95e2c491db060786ecd5666a27450a0e0afa882a77bc9c0c26f6d23a3e8134fb94bb5a549e7f874d72d7e3e223cc052f47f9307e4d16e840dced8d0198570386e0a83c5a586dfd3e191431554bc53b8730258ea71eaccaf322f74b223b177ef108ff9fed6152a0be6d8fcf86b858ab95e2dfa8f38285e895f1d2c27dbb13e2a3f5238df185c84ccc6347b3841b187bb9ce62f3bed7f116bb0ddffdc82b59349b7720e1b12ac8f07709ff157decab6f0ae73e157d299a404793fc3777df50c5dcac4a0f780be23973c2006038f3a59a3546813b50f0ada5ac7f95fa3d0cdbee7c6a703d82539fe28c3159b2ce64f730a6ce06fbc91b13baa8b971203f803f5636ad76b034fda61bed38c4b43572a23ae598d792daabc271af99dd88c49d923471e6256a6ebd27ef4d95f73664349441ffd5635deb7d8c7c98355e770246eb9116d8d3bafd1b09e14035bf821df237d897ccfd916884a9feb3d83bf13df9423f0e31dd77092746dc27d4f093e01a0f5ecc20c6f1afad9a722232c882c677c1f07e2cc1a6a14b6cf84b7583a49236a18f09aed811ede49f817aed72da5fe434ddadac2a37d5c9c93b0eb56ab66abb458edd090521298f36fa726aafa521537801a8234dbebf2f636cd1f72fce504db7b8c48f63df1f4b62c88352f34f8b4fb4170f34f5e58bf5ac4943a92e04cb6107d8a02e0712ca288510933f280fb577412b31c177079ec5b304eaf5a721846335f0817b2887ed67136da337e3ce6ab3ed71d7225c17ebb8da800fe592ae4666b2412d5a52c8937dd8e104a93a5a4ff53adb37c1af207f9419ec4a96843c59d6e192eb126d7e5ce84e4b4e8f47e4139502e25ebd74d3f4ee0e93d96ce60cc589d9676a9905facc3e8954f9ba8855d55d8dcf6f89c2715c7faf59e2bf117b3944f7fd6a71c0ffd432186d1fb0206a366680ef1c58bd03dee87932a69a82cb8afbba1369193309c4d397de29f5ccc4c6b6f3803cec71771144226baf7ac02cc2a63c0d1428290abfea8ad36a4d88594f748a4f875e94a7de9f96fc83199cc4e3331d43c36555ca2fe5362a64d2132d7f172ec553d56f85df3a1ef6767664c47f0dd089fc17dd9774a4ecf02db54a1784db9aa6026cb8638791a68ae7e0ad5f00e2d2144c041a813dcdc61cbab13e5beea8099024193ef286524bdc596c4c2093ad4be691e97219f6b5072374eb0583c6bfcae11756d86b227c43e55e7a4bdcd48e4367744f1f5d5286207664c0c0f4c5ec382e82d2831f4ef1e76a3ea9289cd1928b88fb38d9104281ce3ae87852e0589f4865208a119db9c42d5e46e71fb220f9e55475454ccc94cc5683b701acd6e594d0677baedcad0dd501bb729785415060a91289fd54b85f3971b929cb6fe329a5664dd83464c84fbceb2db3926d8fc5332bc92821c3961eaa3637fb140fa3bd45887633ce2c625f56ce0251d870a8b43b1bff9e04d60f3a3829f41ba851869ecabe328ad67f0634758f4474fceb869543d8434642a1e2243b1ad358e0955acbd895b765e0a20c58c6c065d87a7cb2a32e42b135a136f387ceaf3cfb96eb1124d504ce44cf06b0e78cf488d819d45af71da9f45c6ec8ee868eac1e9f42d3b0dc6122de28db6c094d1584a141952ee692733abe3a978983895a156687acb143c19115a8ca3065cc1d2b5e553987aa1b95b67373ff1d3f78d5da928f37a3b92f782f850b1fa2423da675d653fb85ce0c5fc9ea339c5e114810f4531bcb913c2925df45ad14af446d632918c9aab38051b278bef6516688beb0ab31f018b73295e6cb10d72a644c7c9aad3faad10fffe1764c49206d83d2aa0cae84b39b97d6e1cefd1f2400d4628d9acd362b99e6859f890890947abf0959d589bcc441cb561f5cbc81c5ce64a557c6ee652839ddc02094b470fe2249dfae074567e8b17ca09fcde1834d0544d2c9d5801eb9f2e5344bf24f8b998706340b3c39abd38a1800ec12d363a29fbc10f0eb8df1bb5d46c0bf10d721f67e668132996a7a18695b67cbf142c4ebfdb783e48a6f80ac722f897707c42041328ee3d930e166cf6a691d8c243610b1452010ba0cddcc7175de9e6aee667a9fe06ec7cbd0842a5938cca5982177d55bc9cc6d1b767bd7acf477e2016502c10eec20b5be53fb84aca2ac57cdc518666d3c35dc8933740fc3901424a7fc1056ca89c6f73104e4cfba6da3b27b044847b5903e2e037f6a4938bfbad127138999ac02bc289f2d24a7b4034bb5761634b19d8cd8060a1cd9844a064ca29bf104bcbcbfbe45f0e7cca054eec3cf20a9d5bc2f79e92cdd18fb21fcd6942254fb99178f5fbdf2f98f2cc20c999df1b3c372d87c8427bf0e3f7eec520ecb726cb1c1f58a925524e49411f0310ac1b38218ef9af99b0a7b23273d8d36cc8e287aafe84f3a612ce78fa0cab5191fd7a2cdcb59556190d64eb1f57fc43fcef9b8f113ddda84074cd1d54e5fe44d1df2cf4b05700078eb7c35e5c8d8cd8bfccb44d8b6655e47c92e96c02a27192b785adc39a199a092684b71e75d9283f38e4fb52403deb9f71576eece4e4804cb6feac99d2d9ba41f03d6cc2f3636a1e966a73b2e067f27a9fb10b0bcdfb0f54df501069833a7f426cdafe12e55c1e4dfe4f51313dda838d64108fcdb0edc8910d8b9a8f3d97709888158a7c2638435100ef5b98d3696e980bdc8fe53f37140409bed4aeba9e024fa44a9d8a571819f357320c437535608c76b19351c258318df5269e0180e850581df6d4e842316bfa300805704105d29235a111cca295c830bbdc78068ce669e73665bff37ad4fa9ce229fc0ad6441e8889d65dd546eb6662355e52d6c97ff04e7c697c0c7ce381c51d80d6d1d76adb41f126e556d4ef2b1210b305cb7f32dbabf14ece080e757a3ed654159836583ae16d6c138809eeed192e7c4db3d4b8f2c91d60c1802f0a3905685d08ef6ced296a40a392409439bfbffc7134fe7a74f4ba1100ddf114702aa29484cd6fea2502c4ff610bf83583bef76c809fa203b1dce305130913b93205c6826804f2d303493318c3825ad8f17be55f0a46f43bbad4d0f6882f65605220a9b6798e323027e4904f36ae04dc9ab9e40c3ab4fd6d850cb360ab0e5ea308522be200913bdda45c1afd714e354d4e4695c4b2b0348c1e0c7e2c90c93f563d2dbbe5a6c3eb565c67c55a2c59f45e608e91c16cf7894aad409a8b01de99e4a5f46d413893c6b8cd46777a7454b6b975bad4d4c76c1fde699bb78384b3f8ab20d5b6dcaf9f26d3f32db4bd76b1038a0b34ac215cf240c61112defd281c8d1298a97288e40b7c8ae5730c37a9907c1df902670c54151accfb6593cff8a21a05d825923b509edc96768770c6b79f95bcc9575a2c0b8a644a57c5c2ca86deee98856d52a0fc8f97a335d70e14ae08df1a68240e8d786193db96c9785139b1b8b1367303380baedf692eb74c684ec94ce5739bf312330c338df45e50adbf3c358e29b5a63dc84a1274c30376a2dd611c8786b54c15f4fd68d0587bc9a51c0a797a23329d72d554958501b8c074100ca8e6fd897f1ceffd1c07734ca6fa720662bd87ed41dc402cb5b83764ab7f43446aa6ef3d5f43ece26f351fbe11559fe9857d50032db94d8f91b9d4734c13ea89fa212cfbc34a685fbf74a9d59ba7dc7102a4f29d69ea3e4d42d7bd47cbacc5030de92a2f0a7dd413397172a5970e2b6d6f91abe7c5681076287feca576f5ba5aaaf40c694c13904d4513fd11e23191d9631f8429269e7be914f92097c663b9804014570c986f0a35da6a50afbf18316eb03a3265d97c1542518dc502e4de1276aed9b2337d63cfc336b55ae9400a2603084c957e883a721a27fff100b60f82a049dd00621f6a1188d3981bbe0c66aa93a0366ecc90be249e90b1cb7c8fb64bf337d5c16fedb532dfd0c4b377cb09eddeb3b3db7342b7e53efdba6fc286b68dca09ba6bd021d47a70c9f6fdda59da8375e396a6a590f9ef136499aa25818a6a3bc8f2e4c894ee33615c2c29ef9e6f4c1dd873da305ae575a1c2cc9c29de76027def12761a80865d1254f018a2e24b8c79a3dcd2ed55c8643197cd19f53d11149d5e2565e16ce55395507f10eaf00a2d1cd5b93237b2b410559685d4d62513efac8c7bbe69dd92bfb48ea7b7ed2b8822abec64a1ca7adce754d9bb30bffc530bd3bcec67b34b2e479544aea3a092c3acbd28b1672932198742b73fcd66094bd72d43fa4bd986dfc40aa9a826befba181f9b38dc77814ba7888b51db57fecd9b88be320f4096376f29f6ea2d5a5654d9847600e9b25cf776d884f4fd596813b89e18ba7b37edad1b18dda58bc1b38b307985917046cebc157a01213a19404ffd078a7c2200afb1e73330c521fa77e03d1bb30b0af3c5eb9eadeee4290b065acd58c98f830cb9d3c65a0de6cf5c42612007f186bbc95e2281abdd83c0e6d590e63e04eec1331e55fc7c9cdf03fec74d604faea1dc98c0ea9efa6adae8a2a8bdfe94ca1ac56ab3992e05ea82eab7310a7dcb4d85803a61ad7d37484541eda4184b04576d20bee96ed5872ab45634caa55dfd6fe452a582b963c0197ba559f95d60627f314b8589a01d8844c34155e6a6c692411144b81a2f09dc0e488140900700b99cdabf93e4a8249f8b00c67f11dbdd1296af276fe6ad31a8c7f2abcd261d614014927cf8ec8a67706f333dc5503095288a526001426844d37ff64b78512d84fd93300957de29d73e0a953af1f13af2272ac36cc2530be81296d8481b603cd516151f933e8f1aae54a2af6fc966779c5f1eaaa9d79836d9707066432c245353eb18dc75eefedfe03141eecd7009a11f6abcaa4615d51bf73fe461cd34281fac9311b6e2845759cafabcc504e358551816febd2fbb29e20087a8d242d02852589fca16acbb77b7523bcdd41b85d1449c83c4a7d15fb6aa15d313c1572fd575f0b460d3cf4eda48b71331fc24635d69c5f7c64746eb9869721abe0c22f3c026fae1ad91b68a03d2549e03972fe8e1405558547bec04cc9c2e3ca75caade508a442e7a5dcac761ff53af5df0c9d4548d41c5dc773f81d602610c695b29e87dc24e3d90e769476c188cfcad62b65dc6653c3e00100e2048407e537f180fa947fbc2d0dd3deebe70aefc7f72045a6090ddc99281c85f85be9cf0160d5a03b5775d9d3a61a3176fbbefd08062472e55e171d755cdc157dadefadf1525d825fb31f31e8e94347debcafc64af6944c79937edd3ef2beb6468e204d09fc08227ef273ac5420534716fb4420a9a312f518ddd573b393c0e48f4d84b004b898f3f6b8edbc80aabf102b7534a0213e94962716bcd1a41d0c98f7330b10b43877bdcb38dc969c1572a9ca9858f6f033f4e8125e426365dda73d12c075984238dae6c76a57d801d1f06ec1fe86483ae3496cbbee40b177c26b236914bfe3d77534d6d9cd405a6f06ecd47cfc3517bb6d62237cda97805fb4ae31ba08a990edca539c1ff6e25e8cfa7f3a82d8bde30565314bea1932697ed3882fcc3353ba587d5164562c18900e98bb02685806a5e12381326967111d725c22873c07872036eec8ef2c24c8dde85468e1b31c521901f7323b3536023be34422b7aee83f692786bb56613b1123db08334a2fd07fd48efbb1c42458dd0a274ce41470a6683400cbdfddc58f4d2fcfddd1a45d1f55a4480ba80e1cc6124ff9677d19638710d836e3cc379de7016310bfce6183e230ad616544cbba7719ea96bfa48285d332d988a374fb26e8ea3915fdd33d6b4ae036a72456c308cb38ed480e6d10b8efd613b8a99cbbf046420400125961a73293c00c45602e646900aa6e34f7ce694fd4c9bc59cf3c41e2f404c934bc7edcf3791923b692d755cda311d64f7e79156dd7f04a2114cfd3ec342558b7ac863408b97ef69169dd47753be3273abad0f216c21c05f2c1cb07e674d014474d630f773bc5803df8f8acd70b52383179e0d2fa009f70ebfb767affd3fbc7856eb845d2a3d5436e2ca12c8105f312d7e6d1c05595e24b9b61146d54cf2c32823b6d6451de78871f1b1dbd4c9778b1682980772b09046f1f6f2c02c0919e7db9e8f1200be43dfc738d1aae56f21ee3989135c8b90243f6b1770ff8a62b19a775842888f62b995ad198d53647776e127410ac08d928d993d239f2bfdc766b0cef6f8718278ae9070def0ab678a478b2538281376988f41ecf8cddc8e5b5ccb63f6f59c1203b6b77a93e5d8690f4256350747798ba6ddc88b2bd60b02e49ec1603e360b4908a0fe9b296e3e1dca7504b47aa214bbdf90caa8f7188402fe85b2caadedb16dbe27cf7207f3b515ff6a66af5917080bee5cbe05e1849c9b66a788fdf3433448e1d154b334605a3b1910caa35fc4759e54310fd1438aff892ebcb36c43020ea2a1b66dc7237089b24cf9d1ee115ac1103f82d9f7d365bd860bacebbb5676bc1004585e206d3aa2ee0199fe36eb6defa8c564fe09122d8a29c52b1079b5ed9201867da86d406ed6a3f98090cf38b46c9d1453b1b86550ba9d813ca4d6046c7bbe2cdebc48864cd12981adc2b3b697d33bfe80b570b5c2faada0a3d3331fb0e7f75fa7623d5dc1a2cbbfb57c33070d0c1db96c40a7fed3f26a9763d7bdcdfec062d7d0f1d547a27097a67375ac65390856882830d062dc293c77252c97167fc5f65c301ae2b947d7721d24674872b5179dbfc58ce7fcf3ea1f6d1df27c2773a966f6aaf9a927c0d88e7122ecc7671ba5134ceb4afeceec6c5f8fc4ad481de11067c0f17c03ca94e632256162c807456a2e94e4ac43c276e3ada902bd49c389d36629383eedf91e264e9e4f7c0b2084409599457755abea22a7176f7f0e1ca1224fd114cf8e97ad0f69176afccb9b9c428b197f5a0470bdb39763d2af57506ee53b331d3a850417f67e359c01acdf8d74ac669b08d43002d51993c285578e2c38d259135494eccdcb74eb7bbc4ec9bca80e69725cd3b5f8d866ca4e7aa33118e66db4d735bf4f6b1567e27bfdaa939496cd09b75c4ee8b88374e9b3f464c27d092d33af1a183b404146ef6fff1c0f2bbdf9716931de25cf4a0275db1e67c3c2f993fa41e0629f0b3db3eadb06c776079f84714f909b21c00c45455e111b2bf122d5c877d63dc93515be71ed230a0a1189bab06f1cea87d081359db8c8c5cf8afa017c3fbbb5fa8e4cf938e1fc9ab0326e44b43eecb1d5fe6f3f309855e9ed4badc72c00d578a58e3c87a434be6dfbc4f0cb1311d29e75c0a7ffb15abd4277ab657915c132079117e530f01425d48aa016d10947dda46ab081427ca1aa4fcba48a12814d4b14ca74d24c7c34d70c206f3b6a09a2339e41f45e33914e6bc9ec7eee15080f481f5b6f0204c382c9355e119080cd582fc52a9ab333fb10085a2b8d736e80183c71765cd2706b1e81ffdd43d286508573af24f23ff9b5dedff95a2d6fb1cc7a98be6dc58886d6842cc4032219417cc2116cf4d3315d604ab2ca0251c827ff29d0f13485fb7a52588222a8525ad9dc22aeac5260c63ee9de784f54c867e14bc9950159d2c578571009c9e1f4ddc6526fec28d63699859970c211a8563a62414a1d0259a69f2aa153ca9ebcf771b99492773ceccf3ae87d6238f6c9dcf5939b1b732447d21322dd87a6b94be49c86007b7d32d02ab2c6d2e928abe5f0ee04f5c8b4f7d36613a9abafeb8d14e553d54535df3591c9249b142949eb87be371b4b74ade0c5a7ed0d5eb188dd8c6fbf1d5f6b0506e61ce1864b0750a4834b0c049297ebd9fad7f0497cc240eeaff14b7bdfe3f7853e17c962e1271d423ae56e67fd98235593f9372588e3d4522ba301c066998d6463245d2a4d2519b80a7e180fe1a7819c026113b174ac935b50dea0a81cbdc2258ae8dc4b4690d7e96eb12cf6bcbd20464fcfd8fbf40bfc17d2b7d38aa12fb5095e8b234de0519cdcc162b9c38a2d2dc0b8e6aeac08e0463855669672f82f709de2ffbfcd3ec82d9ffbab32edc6b367334ad8361b90c6a4e5082d1c06275704e1d62345a05d36ca582b358714620cd90fb01d3b8ac8e8ea0dd4127cfa2c65eaeab4d3809917388b637910de7bf8f9718e0aad9d6deb4078f92fba33a71a26f08a773ac596bd72b1e3317fd269adea98a34a49abae7693344aae925a8c66d70708be8d75ac82f74a5208c2272719a37c03dd7629cf16ace15c6b4e89f16b8193655561955e291d7f660678803f983999bc4bdd493543672ee32185584d1dc5253b2ddeb02f40e1207c95dcc9c1bdfbdfc42c1c1d4ce92246eaab36894062bf8440f336878809b468ec1ebf80d3a18f5781238156ab8dabe720ca97bf0417a9005d123db1de48ac2d0d7b3ddd122060d4a1463eab6bf40741c60104fb9ec24e0dc54971e946bc0e7cb71935a7df14e620522cebcce25a9337552b6f5e6aebb437c38c25c11c035deb00d74abe534e00585f292158c7748223734bd51f8a1f0a690b40e8f15ea431358156b6b898772afc6738b5c7ad77c8a109e6d5dcd2b7f5312b3e0fb2bc53699cd2f617c90a35710f82c7dc81f5752111ea04fe6dc64f212b757b39db418a92b01f7e329ca67d5ffd5ffb994ab8a76f1e1f744209d1b3de471a4ecd54946ba26b77ffd0f36ed1d5104e6b7c7021e3fa6d1d3c23fd7f4444aa110c9fb92d9d7babbb4cdbe1292312d542c9e2366802f89120e8a6f96ce88bb288f118fa3c6c87fe4664a34d4d200f0c453530b77aa2ba3a0b6e3e24de413cacbd733448468924c72f6908d3c6327b10748e1beedee6cacb2112380f783b18d6d433581e6d7be9ad55d6eac2b89176e316e00c3e27edbed270f1df140d981bbb8906f429cc89e1db96665c35098528be3242d6e7dbf8517404201a907d8ab782949b11e361e261f347fd9e31b60c80d6f453612362375ae00d763ed129af33d810cc8a6f050a9685270c5e2da962e92accbb771365d25aa0800ecb561fb0f02a536d7f879f51c923a2eb0eee4b0b584a014f8617d38a03e10f7dea56a92763644be47d9ddd03ae7104c3b5e399d0284fd3689ae1a524c8e180a26711ea9e084607a479325687a1f829ec410b45d38e3956f029f925292ed463f8a720f71f0d31e06d147cddf31878c45a301a47e6ea1b18a129f6084a2c393435744ffac227ea23ba70060b6a797fed3af8840860fa19c535e05bf80396ee7fb143eff7ce17db1728b0f99b95ef29a2f87d3283d4291516e9f6eb6213b1a60872db5040f72d4aecc3f2cd7a05304ffaa82eed47d745eaa42437e75cb244a1a97acd968f377082e71b9e7d9ddad2c500cacab8295db42a7b5ba27fea9934ec865a25d9e3eaf943de8b75306cca8f612b7f79d6b8ed981c21c4b53ad85bae0836217c714aabecd284e5311779ec0f8413eab9969f83fa7cadfcb1cf2476f694c0e7fd139666b226ef31a7b57adb669937b5887a9bcf07eac4ce223dd3ad3ba0a6cf413c12379ac9a4738b9cc354ae525da28e8c87cc7cb3eedec90626444da6dd57f91ab5394d9b55cb16a6c15efadd8e23efb31b8a46b0798fc9b0b648074733976e727d68078ec52132c266c14cbcd9921cc2a92649fd81a88d6564d9b47313eb30743991c6aefea7a1b4e38cacc5d78c395087c7c9922a7b7b272fc6d145185a650fedbf11f01b2306f1799c1f68e23977f60ae2051881585a9a52696b0ed771851d203f9495b22bf9c707ef8d2c321308c66771b9e9544b2c05eeb532c7afde327cfba0025d691f713c8f4ce4a9d4afb6b8906f8fa705eec0bc315bfca9171345f4357fc41ef5cdfd897f41a527b55ba2024e58418260fe72f5e3246f6f6688cb852a47af0928c8b70e2b333b66152c7411a37e315877fa063f02be0e125e4b8339520748657866c95e626f5b2731603f2b6e7f8b5b3b5cad68e7d480bfae8ee35ea2c56bee338357a4fe4f7172dc144aad2f54901faa6c0741dadb004ee66b5b4b2eafe4894cce7abf1932f71c2820773cf13542f7094fb14be97e2681e15b602d05fee2799644f9497f978e2bc5d9620473d33a08d43a2498f4e306402c2240616fc1aa9bb7ceb6396c49414b9cbb185238fc6f6b04b3cb444b8df23110c33671d5ad20a282cab8bdbbcf34247620ac166b6b2982f5f61968a72d4cb3d518a71888409a7f40fece5f44a5c5a8dd7523af3d5473edea8c79cec7ad6dce3194d413c8b7938b61c6dedcaec5f21ace415d9633bb8183456e57998502410a7a64e1b5a5631ece0dc6e360a574bad0d1dce279a85a87386612d9c385e06edb6542d9f1a833c48f3f18872bc83b5c65f486bd5e2488c55ec594fde644b67fdc17ceb36ed7b31a1f4b274949be57a07345a0b660a4d4cbae7eae6d01f99c6bad9a9dde1d0a241888b05a10a6ac2af115a4fa49fe8d1f87b6b3a6cdca0829d6d9174c7d6eded89fe1d06e71625e170bf84f3a29e88b83532e08aca8e66e536b59bc0ef7753c79cd1882df6233ae8d9035d2232e8d70c344edf56f3d7f90cbbca497aa35893dcbf713b2e33f3d7158d5ea9e69456d6db19ac2542538e9179f792a7bc7e5bfcc600330d01610973b9ba6296c95d36e6dc212a748209298b51ce74b508f44486f0ce34007fb1d574ec61ee187fa87eabb615a903258bcf5824ff1f003e473816079079bba3b0ec8cb23b45c7d3a56e3818320a6d3c868b3f1dd53815daf52fa31e91139fb94f5b6b7f5073f2f5c6f8cf64ab10e9460155a0af337eb15d44d4b02379d5a7bfa7313d70559d53fc2a397177093e8bad700f1e232b99e2245848a546f98bc4758728a8390d4395780174f56ebc501fb1a749e82ecada702805917bc7f7f2a2b50c14ecd394116a29ef514263d1fadb842dc898ed278e2b08ff79b48ceb792fd9183d4ecef57bad613061a017601ba8cb85dc4324e39072c173ed70fc3b619377a6283a8aa70b520f17c8d85d0de5558c1676eb42200a4e84c43baf7fe1e8abc32682acc4cf5a2396980ac8b6a34cc6850700dac813a3a28c3c8f1e31463dd0a20015de0d0074daaf78022008a52e26761c37bcc5cb6a52e5260c8428a2e17c81993d0bf0120fe238811ad7d76a2fca9fc2a69a4de99bdfbae530c8781a85b68730fbd6022d1944f74a654ccd4ec3d643ce7a4b5f1f747ef013bf01b7177062022d45110fc0e67497052b6c3a7cc18f2145c8a7916c449af451a616a629966ee70b0d8db9a20dd63e246f750da54b3a8bdf4b10fab5836b6a739a2e5121f52e5a29500190964f5ae38bf3ebd06f26db0ebdce0751de65f21cc72a2e172fb68f1a0371c2cfcbdece3f2b54505fff824c6e7fd4f76979ffee8a8fa7d7b886d3c4ba7a872ff5f09fd712e55619b65fcb2ad7ff06cbe993d38042e9911f62d2a285f89e4919cbb2ca070cee11ac74abe6973c29054b6526295adb21d61f88eb84127328f41d200e7c2470e9820428d88d1233e8a91e532a325962ad85b814fa78956d040482471e2305ef6b10c1d68233817ef423ebd90e8fd6a84f95ace7f7b57364d7770582f13fdb53b42367033781b2336bf39a635f0ea55eac47e1379fd04415e6133599420ada243866ec9b9964e0842c46f52fb765d2eae1ef6efbb2b8fa17410ed883d51daea992191cfd19f93d088d9c3eee97b3715742ac98e230776c9cd087bee4bc9a5608c1be6adf58dfacd261e5e2dfdb117d14c49a19ff1a34ffad6c2df8cd0f0bb7cd06411b2086a07e536527c1639eebba3257b58370b70601b696b7b3f91dae5a69b82217a27fa8c89bfd2a194569397fe1bbfb6d53e1cebb9bf006aa4c95e74e9ffcded308450116b3f4c92eb4e0f156b47239a34a1bb7acc2fd93370aead4484764566bc2fc4381c9c4b4c6ce6f546ea63547d45170f728e446eab2850d0ee61964685b36bc1e5aa3e0ffe3be81708c762ea298894ef09a2d2a4163390dbb2d80d32917ca2d1883d3a0795267e4a3a7cb3fc03316c3af26018fe0a113e9306834ff9e4142ab2555d5d0c32ff210bd29cb923b0d29915d15b92b77cc7f34be0a0104953e478009dc1973a2250081f6f56e63aec5e3062ed3a672043c49a4a2784242768b94039b0c71c971277332581ef045030a86fd51e514ca3796931c54712b0c98d8c7cce55118669061c7fd2baf008d2e2a093757aaca88ff473f7003bfaeffcc807d682d534782ad379c83c70652beb0f5f8303169403bb22bb05cb5dec06e664bdb8382d856dde1ca4865206b41155fc795cca8b60c19ac42bb712533f18064df6b4e298966de9b711b21eadea8cf26f6c1ae49233cbbfcc1d398319f7ed2bf2d39586306a1cab2eb0d5459e4cc66ede672b0be0c9c231c16ce247efa3cb2bea47f323076d48dda1767b61cf7d2755ead359a37b59bcb79ded15d758f2ad59a98ae8a37dd2ef41dd3e13a1e96f72753ca2455089911cd1da6f85aaed73b823b125358f37287d49952d1add90e6988b429658dc64e2f1e791fc7d349bf15eab5612db9b657863fe07df96e8152fa53430f01c8419fbf46fd9444b6acf92d327d9cb52f8c14e41b2e433107859e2288ffcef0e86e70d5510ead52f54d8c3c4d3d4663650a1ae40401182c119de63a2f3a473361fc1313d10fa64b68d40d705d6de91dced7fd11c537927c7776d97a3a64de9a753e5fc274513ef3a8bda7ea46593a95ee0936a2df2fcdb949eaf53714144437c9c3dfe68c23dc8efa000bbb3b15d2ca15c07f0025071069aa1e6e0ab6a153a18248cedeedcc132a66fe12b33aef130818fb770c64cdd78d4f413e21c045b930ce1969d4d8131f6b0094a1c6bd3c72a273b4db51797f7342476e73b45482f9f22ec8cf6b2bc8cac431e345f609d24fc2cb4b727ce6d8d5ea20b1a97a84abb7667123e62942be8613ac1bc780f1b72ba83d865ed09cd80fd3398f19aa9de63ff74ca2b433f2cc3e60c397d0f93cfaf0905f7dc87fd2c0d887cb3e29aa6cdfcfcb63f916f3e041c2dc6e448162b887b03ae5635b97e6ec2aafba5a192c5f15d775ca1ef555ef863ac0b5304e3cc02930ff2bfa2b90cd7e4f7bb6a41c51df8385b5410ff4a23f094094f87c52df3e0af86638380fa8b3e5cea7d7817065968798375094586413fb50a5c10c9d2713e679eaba21813af7eca10bdcf0564ef0e4bcab6e8902db6d5a1b8f62c84d9d5fb8067d504c9c5162e07f8760bc20320e3aa4a062d16bd64819e29beaf30612dc8dfca6ce3390598c79feb0e80add4519c3f095f098f6f97eebc76717871793bf7f3805945ccc2ab737671a458abd2602dee4fa42a0f8ae45599f1f73fa127d99cfbe806dffc16fd332429cf7e1333b80ce44a3bde9117f04b40869402c54f2e3d9fd7962b20a2f9784f706950b78c92c599f5b39a488adafe15860aae417e98eb754a31edbeef32ce16bc030601afb394217047d3ea4b877b42747952d7a41d58baace39d3773a4b15f44ad779b7977b8f3e75c3262233ab4e044eb136306af99d66f53a08e10069b96388a2f513ef1ddb9c2c4f47a5aa69b3d339e4d165c4ccb096dae5135e07c85716470aba218d1463d7e16c5431009b8d09dc66893868ceeeffa4482d69c9ace8c428b88e057d39ac0d66dc6116d6e790b4aa535c86f225f7042851841495f3e783780438d6099e5899b1f62ea129e96a6a7efad3c4e844a52760ab527992c8f62648cc554bfc9597230728d980fa379b16efea395639d9d8b11211902f5b9443557a438b10bd41b6a9e01d71d1fb27bb5d08be2bff255d1dea8c5de7dd57a3c192b1ce3b068de0629d940bbbeaf38aa378de15b3e0f20e0e22304f56b4d524b56edce450ddcb0655ab9606607678cb52719fe7bcd68888fe2f34217a49ad2b9759597f331e549ee5e5d9b750109cfe14ea73d6b44c6d30b1f1aaf7c0683ce1c59753d87eac3d509fc514a06d18d66fe1f2c2168530e45404dc88376466dce8c2506c110c2f67b328db9905b8966de84d70b2d497de1a917cc9fd832b58683144759a94182e99591d100e0ed21b75df17c3dbcd905fb039464de19f738adc3e8a9df3d644529a423872d3461b747bb3e9d30d5ad21fb03ba85e2ddb912dd9f67f593f32675e30a567eb3da0aa32cf02bad1503c0b3b7c13131a6f8b403665e766ea08a284860470978436e1e0e163b8bb627665c732840e60ad7fe8b24424732acd89642a91fe3350d6048ba36e58374faaf3e2e2575d4dc0a0a3954eb97ca1fd715989de534296799a352a377c66173e328bb0dd2ddaade4e3f4fb87a37ce06a013cb0b7cd0e36f815912e7f55162d85e4bf70dc0fb18ca58ebce7c1ba8f33266d5f09d2ee0a14c0875a327137d4040b76bd127b04ac0c7e32978654224d6b88656723db6c0a80aedd3edb0aa4dec18feabdba0a4aae1dad3a20451d34367ee4a4157c72ab1192efe6c90f2de277ae484c09999ab953e4001ce1dd447dd2f2a605cda86ff431d340203fcd34a6a4d6f2b67985dbbf17d68e977bfbe4d7ffb04658f807835b0d06feffec323b5acde543e60c50c8d1037780bbaad5c12cc0283e9a0422120d03c78c4be85172b2e8753d72378f5f1187e3488f0250dbc8b85a0baed451085dae1a3da944cafeaa301b773f11c16fcd98615881260f9e11420813f155de2a930b885b5d836c2ba784857d12c9084bb0c03a4d7db09f7806ad689e37b3c9dc7e08d4b9761df6ead06061eeb8029023e6ab454ab82ff0a850b875c8f08e3a0c905e98c081ec55d3b2d647cd0cf7c23d91110af10aa8137b86dead170a04bcd5a2499a5bdf7310ff958d7534a54e219d2622058bdf50da13e32e8eab2a7c873c305762061df8d0644a1a841f79c58213cb7a954d92e14896586b8d39ec994ced8f21dfcd91b297ec8ea35d148a5e0d10c511dd33694ac2ef51ea6ea14c6e023bba10601b3b904af1cd6c1007fe44a759b4175c654fdd1202c10563418d06e7ae6b59e6e5bb8ac18fd3dbb746092c99492f0848590f0559b4d03bad0a02f600c11b03f8e7506721aff82ac5fc9bebbc70a4e2714dd8b918896462fb6e329943a5313e98e5ac9aea46b361110e8e552ce91f1272c2555555fb82194cf09ec48388e3bfbee475e267234ef459a449998b55ce8a7cb3a6bb32674aa0230788ed67331aebcf87dd240b5f67eba2421d9a5878593dd97eb2fa80219a2de673171d1040c4b3adb0edb39c020393458d69627c4d83548278ec5525c4838ea9fb0e07ecb0bb0d9b5b07e81ec49b957df4677c785925e96b42c953d05a2c09e581a632ad2a9bfdfd0b17ff0aaee940931a737ea670c574336f86d39f7791f61bf2b068db907115e8cb0d0b92465e54c0276c7ee3a3c49b96f5c48a4c2484837d6fcb0d02e77233bf215f930b22742c96bf81765970ab4d92585798bccd7c3fad35e61ff14e3063a0dcfc82ca6902abf745283e38b005c7c711cbf3cb64b220092391afac56ecdac621625f8a0090eef7c12b0f95aa4e8b9a5c4420660b5d934b9ab3a0b2674e11ae0e6e8619972a4203bc78186c9438a6065658b6dcc62b9fd48bf5b2d62e5ff683cfbedfd06105a1232f130ef0ba4fa21a17df5a8da0588d6fdaebbe7ba7c5157ece2ef02745b8cea5466d9bf4f7f42d2dc24207bb210b8a61b0e7efec818a3c80362399f82b3e2e72be323e9a914073a6463f162ba1345c7af6cf51a019436d739f830bd49a926891448c065a962dda9d18778fb708873e98c739a45fff90783bcc53e7d16751c8975f3f22ff5f06810956547f84c943796a3bc5868a04638ee60214c709c29a341a00516b2cc4ff44be2da7852ea2efc80e6a34fb773fbeb91caadaf585ea4e3ff04154039f7dfc882224b21020e5c611f567c56f134791a90f24f7ea17f23d676cde5154b53c18960255e834615768f06e145ebe4396903585e03feaa195c4d7d15426e2144e05b3f83d8002f520e625ce89b96ebe22d66cd2f6a8449a46c0180b4947ef73d3a38e8345e1b8766940b36309a6f92a425dc67ccf896ab624b936e6bd51a9359377dde1d14a7cfedfe8630fe0df314203c4778374b751571da2211407b4c4c65bfc8b36447f7c3a5a62fbca1cb3a2bd05162da71ca1616a916a35722fca84087bc6c6fc435a14f2b6feb4d04294a36ebc9383b5fb62f407a27c2d7a84a62608b5732874da7ddf22132c7661d12300fb327a63828b22be4e081eabb33cb2613df1472679e35a7f40bba8c33dc9c7d6bcf27e1299a41a7bcde3c541b9c29fa09fb46f33e9b0b291c88f167a792641d8ea4ceba7f561366c613311f4f8ea9f4ff558c8dbad7d86812918a431cb0c590622f0fc3b5d194ed50f9c49914eec2965d2af495c880f57db8a98f104da245139fad06ab498a7e6565c66708729a9290dd7812aaee5c18174358ee60b68ef25fbd645652bbb023776ff80a7339a84b0603b4ef967156b268bf8f883b2fbb4e1d7d0ca4f63bc9305033c09c45b467f633558a7b8db10e6717132271658e204cc680cdc9ecf6b43c3f95f33f97e1b780813a18127946455ca94a3af032001f4b20ac7a9feb503bed4e6b3b157355d814525db2877da2d05186eaef20476cdd44ab91b61b85c152aa9babef7ba1b39f1702be8b03834006f507a3dd6ac1ce875a828710a53fd6ad48b2bc449e84c52b8a290abef39a40c90ecd71c59c3a0b3f9bb4a7c57871c30da8e9b79da6b5a6378055f4462af24c3bcaf9a9fca6e926369ea00245a6704790b59bad99102be675949e8187d0df12fc847f599f2021a87833faa850121df381631c76eae5ecb632c70496c88f377349c1e037f6492a466b4959ccadfcbb181c38209873f366ed376cf8cfbb09eba37631533821ef4b4943fd2985b6c4f97bb92274e3000a956ffa605529420809ac748f1bb3c938c860549d7d52dc2077b3c41b0645888630c06dbf572670785c86c0a337726287df99e4bdfa1cc5af09e30b78534dda88cb6ee056f1e984d0fa98acc2882a0d1080608a38fa268570109d82fc1b1853ec4c5c94cf798072893151737fb4d34ba5a205809fa05ec2fa9eaed6ce0cebf9ee9f85544a5937f8823a7d981c490bcc0399f1eecc487a00b17ed25d2db83e5f43546d7445c30a00bb49c6104e489e3ba9f777022994c7862938b8dd1b53dc539a10397edbe6efe46be767d6bee4e9e5923aaac7abc036a08dee4ed6ef0c8a23d483ecbf52506bab8120c8441b076d19ed76fcf305d35f18bf922433b8e7246fec48c3e1956c324bab8cf1f5f9def6e682327ebfb50b4e01c8a18090e873420da6bebb74f2acadb5d026b5cfb8da899ddee87f0f8fe651f68f344c7ab6688b3f21feecf13b6ec24c58dfe4c5e4f993a8f867cc81cd94aeee60a58ffd71c21a82964cd658603bb5e416efd2e38b223f35eb31f65b73f2ebb1a8db402f99f890010111d4ac4c1ee15f1f7e69c8773df936a6aa65561851557e4c314190e5416e92c9eafaddceec3f5e2d6afeb038c8dfa27a95f6ed7b3041ce3c2e173f424847832fc56f1293772ea151f895997bbe6b449ce3691321c0394387e9ee229111922d03cb4deca700a53a0027e8e8827e06a23c26cb728848467409d17fddf48c144b66b549ff15d3daaf1ae7461723e71f301d36fb0777e9d44131d80dc71638a903fdb21a6fcc3c6fe9c731c7a54f54dd674a88ee6b6e1f6a328a781b263ec070a69a70a220db85be830da5cb367bca8f0a427fbaeb0c9ebf9334c78f8ef2d239eb40f34251df82e06b7dbe917cdaa374c377c1a3f049169c8b757a95b5e09cf4c69d5f459af5751e50be5758232fc2d545fbbbe9304d3cce1e47e2b889788f44a929f75114b0aebcc5ecc313b27a647fb400da06050129037710981652e22faa253926c5baa0416b6b66ccf7cf9bb8627a8b38016af2476fee0ae424b5124ea55b98b5aa8758cc18122466bdc30cc60a5e8db8c9d822c6e609012615b19892734d00a9dd09bd7dbf59e412d874ac0ea937a9823685776a9c4dafe37fa897a124a01d5909f08f339494608ad79ed0eaa5f4cb99742761e0df0655fc77a6a61f79f10a46bb88e9043081307f2121676ff5dbe36ab5d2a108ec2aecdb2596d1a6735d5b399e305e1b11b23b41fdc3157f98b09a690234ebbdf1b5d660d911aca3c31d649e350454d8390b35304bf676ed4deec5cdaaaee83b03c7fb76b836224fd3208604e2e1f56431fc618f015dd7f7010f93981d30e80e313f98acff5ab698e5e3886dfdba6b5d1462e74c0553b8011b41a0b38c1b1ea51e3570f06da3c3521bda478b1e0560b25803579276f6b44bb8d7f808c048eb5e2dc80bbb5f0c6bb3af04b198bcf808caa6c40be8a0a1efd5b9de99b55aa21f5f442b857fff04ea4ed144125fb96253c85b8b73ce2af604755a01c16797972ff48be72422bceb8ddafe8643eadb38631b8b8b8228c05617852eb62d266962ffbd7d268237958db77221584cdeb57ebb6896fde05b874e78ecba9f09a5b325440193266c222f315b9459ee56bac63bef492ed9cb18d54dac403ef128ddb5d56f1a547d72dde6642b1cab1aa0cdcf27724df561ded9c322c2412e883a87762e7363c239b1373b2ac8a5ac91bb57288a33134db8632b3981e1e86091fdc94524f581a7981012a28365ac3b84985ac19096e1f36bf18bae3670689a38e7a89a7fc756cbed5361659c7645236703f09e0acb9b36ebbd63cb9fca4dd5969a7eb38b3830a337fa0345e06aa8388a6e878c8473786ad15f128a746841869abc705e7c09b4ee0dd5c09d16c83558a11b318ae70f142583e07de096fddd4051ffe522f1d052698459cb2935c35b5c5ea8ba43b905109c1ae4cde55df6dd036e169504512b041484c9e4937fb9e940a77ffb53ffc6ec766bcdc63543967f21c6854925971edec7a3bafb43da104058605d19b564d2e2b3b119eca33a325840d1cba4fa8afcf5cc56d6e580bd5e22b7b9cacfc6e45a2b6c0a6ab97b3f7abc587907d71cf1bf1e5a1f2f410d16f34c1af6c4708236bfc30a31340d1ad28604a00d14ba05eeb27e0530735b1434b139dbabb17cb8f04fb5a38ca7e55870328d3f3e9d5889f5fe4417abf4dbb92d84e97fb6a527228fc430421bc21d8fa6fcc370a325cf71e0e560d5f19e610ccd1ca38a7d05006c2a5ae0c80a5b41ed25a7cdeb63689af7e57097e77f180c193230b0470b2a784d66544ce186e93bc1cad87a7a1c94ea924c9bc50c1d8e5ef32a9012ec81a411c4c1d91a6afaed241c2d3760da83aacafdcd71d3789b2f308fa0237e15263345903ba33e9f40176d7e7c315e2b3cd42de4a0e9471d299a1795b5fc6bb24f6e80ac15c98fd5f8d5091c9f1eabb454d3c2b90a0321c9b572f5df7a759b05b980fb7921f89607f68b36e55887d206b5e6e48a06f36e9d8d613d4944a09da8dd24c486509f224ded02eb1e95e1e04817cbd940617701a8addb04958c046f40ef698625587cb92f918859836f06391942598a77af4766a098d7570259e8bbab6275eb194101b7c99c74467a6677c99080d3e7cc8dd3ed861e76ae330e0af63f365bb8eb98eff6194773e4bb2ba5e54a781fc390c91297511d1641390d0bc782808f2aab96bd00c927b0af232de4695b569d49ef37b8dec14b120eca096f35953a5876d981705e97614ceef3c90476d808ba0c1650061275ce781752153610dca2c10aa79236326146f1cc0e51d4f2419da7847d0b030668988ef93effd02738b414dcb723295dffdf7b814a6bd372c97805b45f8cc96c2ef32c5c12a93d097dcee230543ebc3f6ee16bea2fe53de57e3da7985ab3f11583bf46e47dd528e43a2f36a6d685e081518df9b33b5181d66029c4ea482a7bdeee1b662d6391bad6c96e1d5024f4a5cedc0f7c7e72b19a5663781fd30ac24fae0acacc0b5a01fabeb58599f51a6b8e71c36262064bf68ee7d1203caaab296a014524dd1cf9ce1c47d41e95caf65edaa928d6ae012ae13ee6826cd889f39e7c391ab855e4b9172276c48325442e84cc1eaea96d1e3c8b500963da0f0c1d3fa1250f9e821bf3495dae5affd0a6c5d1f58cf14802bc70a52b4c8259526bae7fb663861c540b6f937b96606a87e571bb8edf0117e8c585bd190fdb770b8ea95884079c71bf58a33153d3478243cf482587f327086791b227a4e20c81e6abefd0732ca7b367f80036ff862224e70adc9db16b071ee30c90a41ade6d436ee9a857db1704ebeadadc13e9958f6015ca35ecaa8d3985283fd2ebff2aa1a9cf08aeae20cbc5ba4999378b6320e024af2ea04b338aa46dfc040d693f2e00c12f88853b0240be01db06ce87c180461825f59d715958255753d88a77cb654be3fa0ce86f4dbe39876f7091728ef7c38f981c77d55eb76a9ccaa80c126d2143224592357a04b2a92e7f3c487e2eadbceacc318af0d36aa21b278fe09a3e62acf8a45c71a154308d38a98d3ac492c772da6bd34409f680bfc8dc2b84c01139d89966efad992c8581af345b47edff68fb14974805bd0247ae1f2ae883fd15857472eea12dc7e63f0e183f3b54fad6552dd67a72380ce45a48607f09a50b1b0a05f084ea1f6184910c9439565d6b7c79615c1a69218fc7160959dad83700d975a3481a19f963febfe397268591fa3ff773d995507034ff3bed1dd480f8cf62684ed78e121216b23a55cf2afb284b46a18c344c176331ce4ccdeffe9abc2884eb70cf692cb8341fcfd53eb57551aee07a227289864325e0ceaca706749d670033206851693728717d9b62440f825f1bb22073ac5039f203ee0cb95a0af43338b84be0b9d34472252ff942b0db830013b41843fb832083b298dc760af94a5190e085348a7bd8fc02e2471f57b470109b79a6574bfde13dd283d0787366e7fae24531f12c4b18a248c5e6ad6ea9010f579bfd49955cdcd7f35678f0dd2c58f49acf5d2d6141759555610408c3efddf88bffe050e1e2dc7bb24a2b42b170575b105e56d3aeaa873696e67b914dd2eeed697e7a99b6064aa8ae1115d4ab35f44f7da07e2624e5e5f676d772d3c74b2699b3abc0f3c732710726aebb292f6d645ae973e74a3d275146d7be272142a6a9dfb499dda8d3dcc1b487eca4e808ca85c0585d92cacba31bb89722346f3793b4a5e49fd4feb467a85a750ba8c694dfb4e6c097802c8e7698c94e573162b9197974f55dc61022e8a11aa31cec8a7e95175f1a1b5a6f98ced7f694cf29debdb1274c85163109b266fd613a3fbb95f68bbafc03ff9f7e98bbbb893d4c694f2edc7fbb309a8e52e5a7875c55af9291e6936898e01b3dc3c7c60874a06f3e99880843bed53177eac6530e03ef100fdeaf3c453637f168aba40b9ee02889f15f4867cd668c5d1e5abd6b6d4edfd0a9e0bce733649f3a02048832a89d0d5941b3c6edc2fa10b3112b79b970aec082897bd28eef72191e372a2367acd18b2300df4e8341d2c54cb244ae58a635107de6caa35f0a512ee673fa9b8a47043739b6a99b434f30c6f177820eb4567a84320819eba7129e23864cb6b6296c1b95a7da9f10402869ec25454dd842dee71388ffabc8e4f149675fe8b96d30d0c0a253777303d13a3794d253273b7b6db8eb9a80248cba83a24a95814e9eaa9ee920d68918990ab1a294586b89dababe63d01b27542818bc403f51c8310d10454b9d89723c3075197c6c638c5fa8af08df00691a0d1cfb52723fff3086599a91f41ed49e30beb730190c3484fcabb0a8bba9e8447d3e794d1f5ff899f2af5cd4febb632428c0f9acc61fd5a013467a3db357072f1d1dbfd267c701a2143a83d9572bbdc389f507b96f892b1dda9376f98c27b10bdf1f6237251949554cf6ec0202562228d4982f83e2d56a7711f0964505867a5a785ea3b6f34736cbd365a1f4bc733eb4aea89bf0ab614b2de242edf9c9db9abe1b02766d9ac5e36d4497300927e3b2171f47803904fe10020731224846753085af519ea282b3b456e6268d2757923bad7a7615463afac89127ff7f80c20f1ca4c676918dfc20407c44dc21358c61da0d4a73561a07dbf85a6c57f1cae25e414642992b56799e018f603299acdf076ff3f83b44fc8489c982ed483de27f23730c0f37a97a7ecbc0a32f864919da1d51196b0f225d09da69d768f59f7a12fe5911d55200a5c8aa62d51280eb83cb1cbb1edc281e8004775a6716de838d440bf716d79294c0e74e49b20a277eb12973cd8da3ed3e950ee1d59c0c0c1e954bcbfae100a274288e0593334a7f7be1b1826245d4a0b8124d3798fc473871451cf989b1450091bcc34aab3ba6e3e192c53f6af50dbfc7148618128b7d6f4a43f5491a05e4b9175702ce93d30816f67a53202c91e7d7056515d78e7126fd2bba492f52134cc5746690572a59bd4d1c196a0182dc3469ba08758894f1aa5fdf3af989ff66fc74ebe4c6249f2bfe19bb21ac03efcbaff05891d6db321a8c56299038f32abe5b1adae324d4fe4614868b957db8432111a6e12266da7d5e694aab271c19eb35e705987d6f0d9d4bf1155a73fb0d5ee7b3e0c15c9c65805b6747a9006d89e101580914e9167016a5b460355073f6ad7409fd906612b04f8e83a303dda56d92dcafaa06f90217ca9026e0bec3284f7118467cf5611e423f8aa4acefb3c18bc19b8a7afb5303413423d4fdd9517eb83636c12edee7882d2efc3f509a6860d6e39e1d1176628f2717506ab60effdda1b09435d69d092a1f891ccb7c5c6aea9bef58c6491680e481a4721ca4790578e10bbb6edde2829e4b6ae588a35ea1d7c3c48f19d071c3fb2fcb066f7e7b2d76dacaca470b7da8707fb3a6c1bd2b81201f6bd097956c8c95eb91a4015f4e738908b70ea1b6e11f27fbb0edde0b831bdff041f69894f454fd9487075176d09054508f823250ef4a6e2fc61c1cbde466339ea603b28ac7d582ebbc9573412$b411774e7902aa939b2d416a004b504b2a258c05de31e6a33617cf05d547425156981063468460052e206080094680e6edf7b9de8a803286acfbfe536ae44ac173c43f845bc8512c5e7398974a6e226862fdf2e5b4c0c3bf20d7390e1da263f2205fe2eaff5274c3437671827e977343e1a08d70bd60bb18ed3005524a8313220ac12bc450f06eb62a6dbec85845aed08b0ff225bdd1a608ab7aa43a454be51b6dd8df011428c5643a733ed7d8b4f873e91b0419fc6d63aa8dafc8ce1562a4bb9c4fe93fe42dad960e106e21a4dee46bef845dc8519a54ebdb14e6d8e6ad9063045f42bf4a820d602edfc2ccb16a303008828095d63f16b227f343bfd455b89ba6498df1b251490937f6912f121aefb5b5d965d99faa403ca917cbdbf3750b8de9eb9bf8abc53727e7cc80264f4aeff95265fc2658fc813b282fde88bd7260f5502e25023a16ad8c07186183df43516e751c291938e90f9a0b71b8205298b350eab896ae334039b170a54fd188d86768c988c830a89e31b699bc23174e7b0c7ac856e1949b64142dee4558e187b890280996c748fde5a1e10a3a242812ea5839d942a0f39ec41648084de19891e423a6ccfe83bd14aac9eac0cde5f2f37ff1ac1737e26d64502b8a28957d800894dc1796450c1ac8f717db7edc8ca8c4887a6b705f46554197a44606d095dfbb74f5a75cbec2487c4b3ab70352dea1a2986248"; + +u32 module_attack_exec (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ATTACK_EXEC; } +u32 module_dgst_pos0 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_POS0; } +u32 module_dgst_pos1 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_POS1; } +u32 module_dgst_pos2 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_POS2; } +u32 module_dgst_pos3 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_POS3; } +u32 module_dgst_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_SIZE; } +u32 module_hash_category (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return HASH_CATEGORY; } +const char *module_hash_name (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return HASH_NAME; } +u64 module_kern_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return KERN_TYPE; } +u32 module_opti_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return OPTI_TYPE; } +u64 module_opts_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return OPTS_TYPE; } +u32 module_salt_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return SALT_TYPE; } +const char *module_st_hash (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_HASH; } +const char *module_st_pass (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_PASS; } + +#define LUKS_STRIPES 4000 +#define LUKS_SALT_LEN 32 +#define LUKS_CT_LEN 512 +#define LUKS_AF_MIN_LEN ((HC_LUKS_KEY_SIZE_128 / 8) * LUKS_STRIPES) +#define LUKS_AF_MAX_LEN ((HC_LUKS_KEY_SIZE_512 / 8) * LUKS_STRIPES) + +typedef enum hc_luks_hash_type +{ + HC_LUKS_HASH_TYPE_SHA1 = 1, + HC_LUKS_HASH_TYPE_SHA256 = 2, + HC_LUKS_HASH_TYPE_SHA512 = 3, + HC_LUKS_HASH_TYPE_RIPEMD160 = 4, + HC_LUKS_HASH_TYPE_WHIRLPOOL = 5, + +} hc_luks_hash_type_t; + +typedef enum hc_luks_key_size +{ + HC_LUKS_KEY_SIZE_128 = 128, + HC_LUKS_KEY_SIZE_256 = 256, + HC_LUKS_KEY_SIZE_512 = 512, + +} hc_luks_key_size_t; + +typedef enum hc_luks_cipher_type +{ + HC_LUKS_CIPHER_TYPE_AES = 1, + HC_LUKS_CIPHER_TYPE_SERPENT = 2, + HC_LUKS_CIPHER_TYPE_TWOFISH = 3, + +} hc_luks_cipher_type_t; + +typedef enum hc_luks_cipher_mode +{ + HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256 = 1, + HC_LUKS_CIPHER_MODE_CBC_PLAIN = 2, + HC_LUKS_CIPHER_MODE_CBC_PLAIN64 = 3, + HC_LUKS_CIPHER_MODE_XTS_PLAIN = 4, + HC_LUKS_CIPHER_MODE_XTS_PLAIN64 = 5, + +} hc_luks_cipher_mode_t; + +typedef struct luks +{ + int hash_type; // hc_luks_hash_type_t + int key_size; // hc_luks_key_size_t + int cipher_type; // hc_luks_cipher_type_t + int cipher_mode; // hc_luks_cipher_mode_t + + u32 ct_buf[LUKS_CT_LEN / 4]; + + u32 af_buf[LUKS_AF_MAX_LEN / 4]; + u32 af_len; + +} luks_t; + +typedef struct luks_tmp +{ + u32 ipad32[8]; + u64 ipad64[8]; + + u32 opad32[8]; + u64 opad64[8]; + + u32 dgst32[32]; + u64 dgst64[16]; + + u32 out32[32]; + u64 out64[16]; + +} luks_tmp_t; + +static const char *SIGNATURE_LUKS = "$luks$1$sha512$aes$"; + +u64 module_esalt_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) +{ + const u64 esalt_size = (const u64) sizeof (luks_t); + + return esalt_size; +} + +u64 module_tmp_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) +{ + const u64 tmp_size = (const u64) sizeof (luks_tmp_t); + + return tmp_size; +} + +u32 module_pw_max (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) +{ + // this overrides the reductions of PW_MAX in case optimized kernel is selected + // IOW, even in optimized kernel mode it support length 256 + + const u32 pw_max = PW_MAX; + + return pw_max; +} + +int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED void *digest_buf, MAYBE_UNUSED salt_t *salt, MAYBE_UNUSED void *esalt_buf, MAYBE_UNUSED void *hook_salt_buf, MAYBE_UNUSED hashinfo_t *hash_info, const char *line_buf, MAYBE_UNUSED const int line_len) +{ + luks_t *luks = (luks_t *) esalt_buf; + + hc_token_t token; + + token.token_cnt = 7; + + token.signatures_cnt = 1; + token.signatures_buf[0] = SIGNATURE_LUKS; + + // signature with hash and cipher type + token.len[0] = 19; + token.attr[0] = TOKEN_ATTR_FIXED_LENGTH + | TOKEN_ATTR_VERIFY_SIGNATURE; + + // cipher mode + token.sep[1] = '$'; + token.len_min[1] = 9; + token.len_max[1] = 16; + token.attr[1] = TOKEN_ATTR_VERIFY_LENGTH; + + // key size + token.sep[2] = '$'; + token.len_min[2] = 3; + token.len_max[2] = 3; + token.attr[2] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_DIGIT; + + // iter + token.sep[3] = '$'; + token.len_min[3] = 1; + token.len_max[3] = 10; + token.attr[3] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_DIGIT; + + // salt + token.sep[4] = '$'; + token.len_min[4] = LUKS_SALT_LEN * 2; + token.len_max[4] = LUKS_SALT_LEN * 2; + token.attr[4] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_HEX; + + // af + token.sep[5] = '$'; + token.len_min[5] = LUKS_AF_MIN_LEN * 2; + token.len_max[5] = LUKS_AF_MAX_LEN * 2; + token.attr[5] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_HEX; + + // ct + token.sep[6] = '$'; + token.len_min[6] = LUKS_CT_LEN * 2; + token.len_max[6] = LUKS_CT_LEN * 2; + token.attr[6] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_HEX; + + const int rc_tokenizer = input_tokenizer ((const u8 *) line_buf, line_len, &token); + + if (rc_tokenizer != PARSER_OK) return (rc_tokenizer); + + // hash type + + luks->hash_type = HC_LUKS_HASH_TYPE_SHA512; + + // cipher type + + luks->cipher_type = HC_LUKS_CIPHER_TYPE_AES; + + // cipher mode + + const u8 *cipher_mode_pos = token.buf[1]; + + if (strncmp ((const char *) cipher_mode_pos, "cbc-essiv:sha256", 16) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256; + } + else if (strncmp ((const char *) cipher_mode_pos, "cbc-plain", 9) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_CBC_PLAIN; + } + else if (strncmp ((const char *) cipher_mode_pos, "cbc-plain64", 11) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_CBC_PLAIN64; + } + else if (strncmp ((const char *) cipher_mode_pos, "xts-plain", 9) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_XTS_PLAIN; + } + else if (strncmp ((const char *) cipher_mode_pos, "xts-plain64", 11) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_XTS_PLAIN64; + } + else + { + return (PARSER_LUKS_CIPHER_MODE); + } + + // key size + + const u8 *key_size_pos = token.buf[2]; + + const u32 key_size = hc_strtoul ((const char *) key_size_pos, NULL, 10); + + if (key_size == 128) + { + luks->key_size = HC_LUKS_KEY_SIZE_128; + } + else if (key_size == 256) + { + luks->key_size = HC_LUKS_KEY_SIZE_256; + } + else if (key_size == 512) + { + luks->key_size = HC_LUKS_KEY_SIZE_512; + } + else + { + return (PARSER_LUKS_KEY_SIZE); + } + + // salt + + const u8 *salt_pos = token.buf[4]; + + for (u32 i = 0, j = 0; i < LUKS_SALT_LEN / 4; i += 1, j += 8) + { + salt->salt_buf[i] = hex_to_u32 (salt_pos + j); + } + + salt->salt_len = LUKS_SALT_LEN; + + // iter + + const u8 *iter_pos = token.buf[3]; + + const u32 iter = hc_strtoul ((const char *) iter_pos, NULL, 10); + + salt->salt_iter = iter - 1; + + // af + + u32 af_len = token.len[5] / 2; + + if (af_len != (key_size / 8) * LUKS_STRIPES) return (PARSER_LUKS_FILE_SIZE); + + const u8 *af_pos = token.buf[5]; + + for (u32 i = 0, j = 0; i < af_len / 4; i += 1, j += 8) + { + luks->af_buf[i] = hex_to_u32 (af_pos + j); + } + + luks->af_len = af_len; + + // ct + + u32 ct_len = token.len[6] / 2; + + if (ct_len != LUKS_CT_LEN) return (PARSER_LUKS_FILE_SIZE); + + const u8 *ct_pos = token.buf[6]; + + for (u32 i = 0, j = 0; i < ct_len / 4; i += 1, j += 8) + { + luks->ct_buf[i] = hex_to_u32 (ct_pos + j); + } + + return (PARSER_OK); +} + +int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const void *digest_buf, MAYBE_UNUSED const salt_t *salt, MAYBE_UNUSED const void *esalt_buf, MAYBE_UNUSED const void *hook_salt_buf, MAYBE_UNUSED const hashinfo_t *hash_info, char *line_buf, MAYBE_UNUSED const int line_size) +{ + luks_t *luks = (luks_t *) esalt_buf; + + // cipher mode + + char *cipher_mode; + + switch (luks->cipher_mode) + { + case HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256: cipher_mode = "cbc-essiv:sha256"; break; + case HC_LUKS_CIPHER_MODE_CBC_PLAIN: cipher_mode = "cbc-plain"; break; + case HC_LUKS_CIPHER_MODE_CBC_PLAIN64: cipher_mode = "cbc-plain64"; break; + case HC_LUKS_CIPHER_MODE_XTS_PLAIN: cipher_mode = "xts-plain"; break; + case HC_LUKS_CIPHER_MODE_XTS_PLAIN64: cipher_mode = "xts-plain64"; break; + } + + // key size + + u32 key_size; + + switch (luks->key_size) + { + case HC_LUKS_KEY_SIZE_128: key_size = 128; break; + case HC_LUKS_KEY_SIZE_256: key_size = 256; break; + case HC_LUKS_KEY_SIZE_512: key_size = 512; break; + } + + // iterations + + u32 iterations = salt->salt_iter + 1; + + // salt + + #define LUKS_SALT_HEX_LEN (LUKS_SALT_LEN * 2 + 1) + + char salt_buf[LUKS_SALT_HEX_LEN] = { 0 }; + + for (u32 i = 0, j = 0; i < LUKS_SALT_LEN / 4; i += 1, j += 8) + { + snprintf (salt_buf + j, LUKS_SALT_HEX_LEN - j, "%08x", byte_swap_32 (salt->salt_buf[i])); + } + + // af + + #define LUKS_AF_HEX_LEN (LUKS_AF_MAX_LEN * 2 + 1) + + char af_buf[LUKS_AF_HEX_LEN] = { 0 }; + + for (u32 i = 0, j = 0; i < luks->af_len / 4; i += 1, j += 8) + { + snprintf (af_buf + j, LUKS_AF_HEX_LEN - j, "%08x", byte_swap_32 (luks->af_buf[i])); + } + + // ct + + #define LUKS_CT_HEX_LEN (LUKS_CT_LEN * 2 + 1) + + char ct_buf[LUKS_CT_HEX_LEN] = { 0 }; + + for (u32 i = 0, j = 0; i < LUKS_CT_LEN / 4; i += 1, j += 8) + { + snprintf (ct_buf + j, LUKS_CT_HEX_LEN - j, "%08x", byte_swap_32 (luks->ct_buf[i])); + } + + // output + + int line_len = snprintf (line_buf, line_size, "%s%s$%u$%u$%s$%s$%s", + SIGNATURE_LUKS, + cipher_mode, + key_size, + iterations, + salt_buf, + af_buf, + ct_buf); + + return line_len; +} + +void module_init (module_ctx_t *module_ctx) +{ + module_ctx->module_context_size = MODULE_CONTEXT_SIZE_CURRENT; + module_ctx->module_interface_version = MODULE_INTERFACE_VERSION_CURRENT; + + module_ctx->module_attack_exec = module_attack_exec; + module_ctx->module_benchmark_esalt = MODULE_DEFAULT; + module_ctx->module_benchmark_hook_salt = MODULE_DEFAULT; + module_ctx->module_benchmark_mask = MODULE_DEFAULT; + module_ctx->module_benchmark_salt = MODULE_DEFAULT; + module_ctx->module_build_plain_postprocess = MODULE_DEFAULT; + module_ctx->module_deep_comp_kernel = MODULE_DEFAULT; + module_ctx->module_deprecated_notice = MODULE_DEFAULT; + module_ctx->module_dgst_pos0 = module_dgst_pos0; + module_ctx->module_dgst_pos1 = module_dgst_pos1; + module_ctx->module_dgst_pos2 = module_dgst_pos2; + module_ctx->module_dgst_pos3 = module_dgst_pos3; + module_ctx->module_dgst_size = module_dgst_size; + module_ctx->module_dictstat_disable = MODULE_DEFAULT; + module_ctx->module_esalt_size = module_esalt_size; + module_ctx->module_extra_buffer_size = MODULE_DEFAULT; + module_ctx->module_extra_tmp_size = MODULE_DEFAULT; + module_ctx->module_extra_tuningdb_block = MODULE_DEFAULT; + module_ctx->module_forced_outfile_format = MODULE_DEFAULT; + module_ctx->module_hash_binary_count = MODULE_DEFAULT; + module_ctx->module_hash_binary_parse = MODULE_DEFAULT; + module_ctx->module_hash_binary_save = MODULE_DEFAULT; + module_ctx->module_hash_decode_postprocess = MODULE_DEFAULT; + module_ctx->module_hash_decode_potfile = MODULE_DEFAULT; + module_ctx->module_hash_decode_zero_hash = MODULE_DEFAULT; + module_ctx->module_hash_decode = module_hash_decode; + module_ctx->module_hash_encode_status = MODULE_DEFAULT; + module_ctx->module_hash_encode_potfile = MODULE_DEFAULT; + module_ctx->module_hash_encode = module_hash_encode; + module_ctx->module_hash_init_selftest = MODULE_DEFAULT; + module_ctx->module_hash_mode = MODULE_DEFAULT; + module_ctx->module_hash_category = module_hash_category; + module_ctx->module_hash_name = module_hash_name; + module_ctx->module_hashes_count_min = MODULE_DEFAULT; + module_ctx->module_hashes_count_max = MODULE_DEFAULT; + module_ctx->module_hlfmt_disable = MODULE_DEFAULT; + module_ctx->module_hook_extra_param_size = MODULE_DEFAULT; + module_ctx->module_hook_extra_param_init = MODULE_DEFAULT; + module_ctx->module_hook_extra_param_term = MODULE_DEFAULT; + module_ctx->module_hook12 = MODULE_DEFAULT; + module_ctx->module_hook23 = MODULE_DEFAULT; + module_ctx->module_hook_salt_size = MODULE_DEFAULT; + module_ctx->module_hook_size = MODULE_DEFAULT; + module_ctx->module_jit_build_options = MODULE_DEFAULT; + module_ctx->module_jit_cache_disable = MODULE_DEFAULT; + module_ctx->module_kernel_accel_max = MODULE_DEFAULT; + module_ctx->module_kernel_accel_min = MODULE_DEFAULT; + module_ctx->module_kernel_loops_max = MODULE_DEFAULT; + module_ctx->module_kernel_loops_min = MODULE_DEFAULT; + module_ctx->module_kernel_threads_max = MODULE_DEFAULT; + module_ctx->module_kernel_threads_min = MODULE_DEFAULT; + module_ctx->module_kern_type = module_kern_type; + module_ctx->module_kern_type_dynamic = MODULE_DEFAULT; + module_ctx->module_opti_type = module_opti_type; + module_ctx->module_opts_type = module_opts_type; + module_ctx->module_outfile_check_disable = MODULE_DEFAULT; + module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT; + module_ctx->module_potfile_custom_check = MODULE_DEFAULT; + module_ctx->module_potfile_disable = MODULE_DEFAULT; + module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT; + module_ctx->module_pwdump_column = MODULE_DEFAULT; + module_ctx->module_pw_max = module_pw_max; + module_ctx->module_pw_min = MODULE_DEFAULT; + module_ctx->module_salt_max = MODULE_DEFAULT; + module_ctx->module_salt_min = MODULE_DEFAULT; + module_ctx->module_salt_type = module_salt_type; + module_ctx->module_separator = MODULE_DEFAULT; + module_ctx->module_st_hash = module_st_hash; + module_ctx->module_st_pass = module_st_pass; + module_ctx->module_tmp_size = module_tmp_size; + module_ctx->module_unstable_warning = MODULE_DEFAULT; + module_ctx->module_warmup_disable = MODULE_DEFAULT; +} diff --git a/src/modules/module_29532.c b/src/modules/module_29532.c new file mode 100644 index 000000000..6998cb2db --- /dev/null +++ b/src/modules/module_29532.c @@ -0,0 +1,471 @@ +/** + * Author......: See docs/credits.txt + * License.....: MIT + */ + +#include "common.h" +#include "types.h" +#include "modules.h" +#include "bitops.h" +#include "convert.h" +#include "shared.h" +#include "memory.h" + +static const u32 ATTACK_EXEC = ATTACK_EXEC_OUTSIDE_KERNEL; +static const u32 DGST_POS0 = 0; +static const u32 DGST_POS1 = 1; +static const u32 DGST_POS2 = 2; +static const u32 DGST_POS3 = 3; +static const u32 DGST_SIZE = DGST_SIZE_4_16; +static const u32 HASH_CATEGORY = HASH_CATEGORY_FDE; +static const char *HASH_NAME = "LUKS v1 SHA-512 + Serpent"; +static const u64 KERN_TYPE = 14632; +static const u32 OPTI_TYPE = OPTI_TYPE_ZERO_BYTE + | OPTI_TYPE_SLOW_HASH_SIMD_LOOP; +static const u64 OPTS_TYPE = OPTS_TYPE_STOCK_MODULE + | OPTS_TYPE_PT_GENERATE_LE; +static const u32 SALT_TYPE = SALT_TYPE_EMBEDDED; +static const char *ST_PASS = "hashcat"; +static const char *ST_HASH = "$luks$1$sha512$serpent$cbc-essiv:sha256$128$71794$f622ac496360d1a66bbf7b0842a7ea1e77696b774ce284135d312a4fddd24471$e5c0e9b3fac442622128c1bd66cfcd66b671130802e02b57a596ea578b4a9da7b9f094095b751e188cf9becb1a409ede074eee3525f4b8f4a90d8023afb4dbc7100927e24766cdb0349a298525b03010ad3f88e6e3be5299cb07411bbf650ffc0cf9d2e7fa095b381cefdc2b8d4a7d879fe5f73b1f4d90a8e67da15226bf3fb85fcad3f4eb640e503877187914acdd6b434d28a09cc9ce385033eafdaf9be59bc27777bd36c8baee8e70561470ce1ab4972701297775accaa29d39dfe982117efe3e0ebb3b92dde1bc8290ff40be36e3e68c016462e890b3c3c04da674281f7015f419253fffab408a93133bdd7e5f52bd22d79c7b195d7bb945d1e464b7256905d77b26022e21a083b4594ceda92e1a3a68951cd705e3ec4167a99a6a905c2c78a5e9ad5635dfb1176462fb37f23010d4ea8c14bbcf80e10cc47ae86d0c8d89954af0a9f20c0880b0c6f7216df4f5304c50d02781fc641046ab8a4a04cddc0cd0a6eda94ede175ea4e33ed17160bc451b6f21380d34d3ba53814c46a1d4de97a3db542c77977c5ae36f685713fc4233b996dcefd04bad6c07efb9c7862503d084774e953c2f27c1d5816cb4544df08119bfa8c908c7605ce0072dfcaf2472b2489e9f78f1c1a551786e82f53b1fbf12be0b0474bee3f732f7ce746de4e9555fa26ba48fdc8d8e20e0a305b6549b4e7c47e9830e92b6c3d5f490f9fb57e94284d73bf1b21c53530d90f48165a37d2c4c742326b2183b16de84a50977abfedca28b55b1734d282ba76eb8b00c5b345211b5bb071e6f9142c83786ab2a1c153a28b64ee62ce7d4df49076149f17162a13d5e5ab55447d66c8f14a78e79141416ad200a5b1ae3a2b91a154fe61c11893233e5beca472f2c5bf7f69ceb189f54368c2b9e4380e17f1d85d8458a3caf6ca3c2cdbef917395d369f3a48eb7a7b42dfe0b8a49b415c92a6637cc885d29f5c278d53267a5eb399bb1572957a4a7cd7e7e1d663faa7d2eaba6aafae73db70a8665edb1a02ffd36dd73e6ec3b823c54af989e18e2374ca02a7785cc9bf2c75bbdf59a6295224eff8bb682902533ee1591c8f1bed386ebff69f5a53a71206d215afd082959821a4fb80944402415f6ced7a9619b7ded727e2b1b9914f9ef608e02c0abee858298d1561571fb65b715ef95fb4a24f0d1070086a90dba250c8bcb96e87c5a5de90cfa2b71ab14f4efc49f7ee4e61b6e80ef25db04333ea8b2bcd09763a3cee0d0760860cc4dfd1418a68e8cb315229261000b152fb000fb3e5106ce7a67fb53fc8d1696df728514f2782192fa40b6eecc91457b95463d8170e15fbf9f859cc18fa21a72524be3c3d2f00285a817d5d66111c36bec3cdb2971d7d63bc5b81064d58da26752ba1d6c4886d565f1b8b9c638eacb2ce612249e4e11853dbf04626e91a81c52f2ddc8a3075818ffb00e3da8332ef75a27dea1f2da7a9ea427bb7df3e919a8daf5e228fa77975f06f9de8e53bbfb12a3c1d5f4f9c60993110bdc745adb3c98dc356e865647386c5c2e379b89b76c9c2e314d64f0ef9f400504253a27bacfecf4cfed754cbb4f858782d4875fe75dd1a9fc74b2917b72abf4b20bbefb97db5db32fea3993a2169f7f03899f62dbe266ad3243ec1c795fd96872392807954a4388361b00e756d970ca843a5ee4b6765969e726f9dee2ea77ace271855a87195ad29ecb51e7e19033fa690bda3ce5aab5d0f74792eb15d4cca91ae9a77c0c4c834642178e55230c5a0b7f833e04c0e56b394d042345200a7ff1fed1781269e14c6f78084342c65328485e1c5df822aa72abe17c8283275a1d56b54a703011df925ac7ba4d588bdcec043bab2f8c1bdfacf099db1448df5391c82381f2c69a1235de10971bf1558cc3e724d26a240ce1bcb3b9e11ab7c3482c0ba8f4dade4e3f045b74eb173f233c6e0199af5507998103e134685e89d83e7c772be38ab408c305e803174d538474064431b753db820a600f4ff3f202e890a938275012ce0ce3c702aa52fd57db3597f3aa7ee2b05cbaecf02f0ca0182249b23367c2c5eaeb7ae2f9802a642287d6c995d3ef8883b67bd4a1dea0ddfe16ba601225bb42ad7149bfc81511bcac72ba6d77bb48173d9d14c6acbc5a1c43956a2f45846204c6bfbb5052f3ec5b6305b3379f2988c7e10318b7897de03c1454b560e9bc91a6dc129f668261ba5731ec9857af876e49b02b27052db55c340a5f93c5434ab1930e1413e42072bcd5adf2a98e0e6c0a117f59469e7863be92b3bf969b163790188944214211a9f24b685c994b91337fe99b7a381047652bce44309541a1a741fe582082a2d9b014d10913c3dff3ddd51ff689d2ce6fe40d7d6dcb31dee22c95cdca5ff2bca9aca78fcc0c3c0c8aaca19f2e71e57736ca859f5a51320aee7240dced4ae83c1cefd00ecee2eb697b1671331532d635692fc4b186d472ec17fe58f007ab5ce203b05d94953001abc41a12657a4d698daf0d7810ade79e081b6d0c3626b942efb91caa5b235c03fa5943b98978a456095cdf1e58c97f4965f755b533e8e0eca726d9ef46dc611e422578c0b1bf33f1662779d2b1d7c709bf7a9b6cdc2fc623b9969238a3ba6a46c94f5d065855c3e234c023ade1798e4c32b3820cc63bf958e406b74d256be900ce6d724c75ed35b6417a220933795ce6f2dca553f34bc1321dfbb218c67de2119fbe2720d5d23938f9bb995509977f1a897d66f201f1b9784b69a02642e075e72c3cd626fb9a4858a25ec6da2dcdc6ff345a7c31c6d979331c7d17f97bbdbe4932b7198449177b8614e6aeecc9369529446f16149a87a4d90f591cbd758a42a8de586cb24579ea8d83e354edd82da1d58e74b2f766776e8a7dc2af17c8171863519954ba98d7804565e62086a31bcd87813df34c112e6a554e466cc20abae7fbee61ab422a76cf69b6ae70fa9d821cbd4195ca7a95dd25eb975d712f467aebf16a472a74aa43cfeb816e93176e5e66629afe7cde8fe52f6a0936163d6d34c4f4225ed660d0569f52e4e98e5d56d24009febe519a4f9eb3403970570a80188f9a7a27b56d817c72978fc5534efef0f56828ddbf216dca45658eefd6771dfe991641e29d2dbb74a99ba6f2b2530770f6bda2d5d1ac9b05530a166ce0a5dea9096fcf4c53aa519abc42128f644613bd269d3e940b2f91c4a2e69bd4206456d5368cac98193238367ad67e4ab31bac1775491f508b32aedfb8929f5e166daedede3de245499283c4493a112b1a14958aa3cf695215e54b4af31a6e63cb3385bb4296ac9709423d7b6948a0386c20e72893b1540b6103a818db5146269dde6f78f53cd86f72bd0186f34dc740209941668ccc6ff18a2d2fd229100697b446463899bd451821b490385716b1829ab71bb01680b0a44e75648abd8f5394d38c7bb71525f8148ee823f17adbfda08b92d1431546c0e6b3a1cef76cf075c1f8e05d7ca311a4dc4fcc66c3a971099d81e961a4cfa2c6d7f82eb4e9fa298c28edc85b0c66eb87c0dcf47548e2a7ee6fabfdd54d0b762c96c349ba86cfd7d58bc769b902a79730bebd713f2f3aa943fd1c990a4d6882903fd93eb3cca2d3ec5dcc24443960f4ee520ed6522f37b91643bd101072fef92221ca72028f86c6b5fe86e1b3f93e8515a1b0a8de183f24ff78331d259e4f7753c223de970211452be97c923bdac168fc14c8764032b5a11ae7434bca718bc62e02cbe865a130d0d6644829491ed7e56ed7e93a088ca012298450c0ff153bf70754ca3c269ef570161a2d1f62ff21a84f211767a0a5899730787be53083568aeaa9d7d348f9c68e781a12ee380ad10c8dc1babe3d6bcbbb3fb2a5346f52234e2aa35ea40c1334ae4e0b464ad9e07c6a40f34b7a59217cdaecc0aaf945b16679800665d1b5651ea174a152cb5d3c15f411084e624b1901b7657d2dd7d34c6655eb805338c7d616b6f55aef8751bf27955332bfca1931248f5e6ffbda07ae0ae6f85b2f9f8e142d2865a6bd0a8ff71d936d3cf48c4ae49b1f6863e447311da94f8287809ec26ae8baf1e8d244d2b3e85949447f2cd44556252ffc7e6c58728cf07485084bff7ed90ae58ce475f3f435fdeb5bd51736abff7f4f1cc19396dc1a6691c068307e7ad6d26c4a749e094b04539a392daba2df16767fcb8f1270069e9cd4b9ebefc64e8b5929cae09b3d8574b935e97400f16ebaa1b79b39567d689d804bb3d7bed72d35bd3d6e908a7ba3bb1ce5b79fb6f1b2d92cf6b8c1c1699da748309112bf11830d69d5ea73620328a220786079691fc77a48067f8f5b1825ad598f49031f5b16fa914daaf53959b8c8a9bada63682a9fd3853a1837f5aa3eaa6f8c86b07653cd85225b80f5f8f05f8dcf78197ffb4f62443d73992b7ab2de8e1d30aafc053699615f565baac9686abb1ebcfd45f45856d6f256940d4e2867b4ad4969d6c88d20ba074669a1cf50cd9a3c04fc99a30a4293e55678a273714c4fa507cc8644d4d76f2d695d62400b4497fe06e9a4eedf41b34d63cc1dc267618eeacd2f2eeab26bd88f3d67b123d7fe0986dfd95a17d761673c97838e110a539be10988da5f1faec9f6190efc5b2a650fe1ee21bf943364800b412f5cf0677c28a2b0a6c6312e4e4575e5f2bf2b5c646ceb3548275dc888b7b4be96e71d448188a775ec15413d6470d83229c5a7b27dd11479a38c227c871ff1b55ac148441ed8fb060f1cb9911817a3ca84908d8dc69f3d6b8099885119189f52711ae511ac153907fc82cf2881b19ad7d56f61cb2db9b5ba1f5e97a9705f0fc0f7b6ba37dfab2ad7cb1e7de5dfa8afbb496ee415fc93a4045a0ce4ff15587aa9aaad77437b312fd6102fe5ba5997069f2332bb39efac8a9a3912154e6063b4b7bd9825526b1db1bf52abf7d8a6817aa3fabc35e84819f666bb0c557ef4991d376da5de3fa493c9c1a385ce11307904d55cf2c45ed8c166ad5cf90d1314900c7a8514bf16e8912efa6db39e6e8e88fb62954651d45618adc3c9c30f45559ff6327899da3d57e0acf7f3b5afb103d2acceaf59a52b3dbcf8502ea905f43402d566f57ebb575d82e3e8056aa1a8828833e854d1d45269d17dd18a55b8e81c8f7317db49796431a00dbbfee38c86f922fc7095cf0019e1380597ce2d847ba127d6510f6cef6229f74bc25753fec0d4739fb2aff673d9313fb310a9120db24fa6af60431d33ed1da12c5cde9f328757d8f36e8625b9fa51e8e326d3a2e86411ecb5ccf9b7fe0987c8904fa50af724d25632bbc2d8f14a7d71b8301de9ce030e133287b0048f22333844b877f3f0f8ec5c5ca9ec55f2c53555b98f0282df829d670fa21de3d7149c4b4b7bc3b8e0af6f11c27e2cbc43fd24ec4de6b70845991633d6e03f435c32d42e676e9cddc14f105dbc199705b781f3a63bf064b03edee1418b67343af7ee4447588abbc4b6133ae570f541c266c8cd0e1a4f021c60f8a7875febbdb16624d50a8624b7afe3482fa9ab5be4b760958317fd5cf19132618520cec1331a76aa2fc3fad9bc1d1c0df36b1c4dd63043e59b556887555eda2f6785042701dc13714d2bea24035f3c02e2b40f06eb0f77ee1c3df8aee72da71011a9203e3e1ced4fa885b3acf504f0b3eb0b0ea2529ec88a5cbf9a6d83b3371ac830cd0eb4e0ac1722f80d314c2d2c582764e86ef67d6485a582d90bfe187ad88308e6d578c01acb85795bfa18d58bcfe1905d5f46d916b210a5e1baa231b106de873c797c54c463897f7174b4180555b0e3b348e6b2482103cfe84e796e29f1d157832a93bbbd28858eef05f6ae8ddd35fd587700f5a1c8498e62b1cb2de2c808671ac3190b62cde2f0b0e3d849ef9742e7dea2e963f1ed61e4c5f3be0d1db8624de9862b33146fa23283a74dda53ce87569b6d74c25254ae1351fc6d46c907f267620b545551b4852d278f8d7aff148c9bf5fb0962723454978a8d0443a7e8098c239c0219411be48544389ce95296fc8f72cee9247f4f83631b2fe6521a22b07d27ff0921d31402b24e09e0eaea9e0720f72ae73c71b3704aed39442344142219a6891222756eee3de003513074494cf3bc7ccefe9437639d5ea5b59ea2de9b9bbbd13685fcf7c7dcfcde5b9a15df45000c83796566793b927a94fb3de5ac839d0b327f789702d69547fd5a6156d2ddad08e7ada4e43f8699a7a6d4b35bad4c9803a6a165b4f93457221cde42070a45293d88ba08b9d3cf35f84b81420344b81c3ca565d0e359e7adaecb3ad146d5a89bdfdf76559ada7d173a589809fb13f54087bad105c70f32d273ab266722a0aebb14a1bc650c7cbe1bcb2398df4ef8215a8cf73cdb31b790d818a9eb54b00f132163ff924d8096a620b63d7516352f2c22c977f6cf26ed21c091abd8ff4961bba3098601081f1c1e045ef45d3cbcb9dccfa497c7d32e43981ffc04e955d780e3e7d64fb209be3e0727cd7d016a20d89ff3fa77fe371f06e816ca15fb23ff84e46ac5e4a67a041afd0cbb1c71b3a37ec2b77a184ff264c3849c417f0a347642238cd552a1975a917e885207d3b12325a5e0a1f3a30ef536992314b13a623d3c589f3410fd588e8b034984cc23abc75505be9c6ddb04c57851924e69c1b9cb35c6fe73e0b3b9c6233118bc9924ed1deacceda022b7c06e45b3450413b9e49d9c3d5e9caf3ad8af0053513e0de3f63caf2fb2296a5babc5ad8a0e018d51cfb38b794af19fb71944ff60821929deeabbebc851ef9044206d564b51e7c8fa49d3909ce874d876d9858b8e4ebfa5c922e7fac14e4e66d407567a4e17cc43b359750b1c4928ad8d081a75787fd2b70604030af2a288becd4f857b1fcfd242368253b4a09bc67d075ab6c18350dfc9c34f2e66a85a8f4f3a6ad5926dc7a1b4ff530aee208d19613194cd7f75e3ab6dd981ca2a0a5a07090e391c9c39894a4f47b8e63ce537d8a3355663c5165d86a95995b12811a48253b5db8f31c65d3f6185cebfbd5f11edb6b3550a7d88618115056b91db1ba95118ea333030373705991bc24f4ca655cdbc4bd3344c4d35d56e2f83a62e8096335d0b101fdce233689e2153c7b8b1868028706158f5704ff9e3b424ae2071a72695a7277f103449ca9fdd7aa12fc010c26edbed2f9689bccad003c280b4d55881874ebcd1fb95a23becfbc335970931318fa24b7febf5254e8e7fe6bbff338b8fdf4cbb1f98b4f69249648484c0bb8f4484d7838753c924daee581ef05e1b0ac69e4d107b8f042ca5ab9c58ff3e465b0af0985998e58def202d27984248af42f489ecc78770a2ce9167475919526cbbc636bf212b712c3c2782d5df772ce8164cead9c176d1f9b956753e533a0f35e33105da69cc8d96307b5d3aefa2c00b5db109bab9110bffcaa40fda0292664636851293dcbc0dac0fba49115f0794c62aaac567b788c15871b6b6060bd10e40aa698d448dd1fb63d80d0fb50cbe587345dc9abce196c0e74e7b40d4e6e16777bea8c59c137d2009899b6d996094860ba1f5b2854c84a379ecfb18d7956e0fdfae93aa99529b991fa5a69c44d5cd3007dc14bd701d8fcae4ab94ea0584b460cd52983f06096d332acb124d3deae83b813563a8246af9667e1a684a4681b1b0f2a800f03cf38e9e1bdad8ba976bf2540d76e2f1f0d521c59706aa0cbfcbb378aa86435e3a9d1e5521d1c3e29aef085655907ed3ca2ec86a35a1ac0d4f47e27e803ce91df24dd4f773169190e229effdd973a57b9dbf62ae74b02d4e29a1e84f11006f1c7fc352725f9ed0a75bff6e8808696050762986544cee5dddf96daf5d3f68d56f373e348175bc511382e33ae648625792d9ba13318b6ac3c1e82689b78d8a3e4568b6adf25d91be9b95a16558d94d6a7adb41c142add9e72ee950184aff945a49efae9a016081f1799b516c0c0ba0aa047df31c225e6cf6e525914367c7e7eec263c7e9e8a0273e7e95a9c26d5a3a4d24aa40e181484403530964d341f732dcc2926a6b94a51d24b331815786c1e9905d6e688372e56d92056c4aa6b5fc806826fa92be7d4cbd20d2c5b5432aca6fdf004ec7cf6820f7f57d021d97271be86a6c4bfc7831ebe055513fd230d99360e5e3011dd3a7d2213d7309cc5a62fd6bfa8bd416d9fd485fa9939675b60872ac9db1a3147ab610662122dcf5d211e2c79a9c044a65cdadf688b5bc600328624c75f75893a70d77cac2f53522e7a8512156842cce430f4e3e22bdc6882e96fb729e433ea462a0be7feb336f8fcb75cdcbb2fcfcd2d9af92a79d0fd336b612f373f130dfbc596bd7c7ad453a50633c5f121a12a6431189c7bbe54e3c45284935b7135631b76484a697faef7e268334b39de5ab940b8d761d1b54b89261002cfd567ad54ce6bd5cff6d706922a21469ac4499689359113319666ce09b98cc5bcf402107ee23e4df8d8bfa53696cb7f3f370e0c207a242340d8a47477d27894d18778ff87e9e1fc2b7ba5fc575e08a441309fb514b64f28f4471e2af79a4150382090ee07e425de6e51c305d78053fec39516ed38dcedc668062f6eb5c4356e7b38ceb882a0bff04f60588aca21c75df345d5ba73ae823c079b2d5d25b82e6db2127fa5656dd34e6a74cf524d8fd709f94afad859b749f80b874f26126b6befcbfbc6ad32beaabd7c9e935e30c528142b1dc51429a4a8e864b44d7b7928d29f65243c83400540f66d46f9f07785191a3ea5ff2035df2c18eb57411e3edfd632c0e0afb20ccd229f86e514099ee064194da2a24d81167e0ec48ae947867ce89edbb040cbb7be880ab8dafa5a48a3152ea5164ce2e4ada451a10fed5df00f90f552590a40d967b677aa17bfedf64a65bd05765ab46b902fdf603559f7444a1bddd6858a8fc203ae060f73654ecb8fa4812dac10f7b07a30eb781f14d0f9006375619dc45c645c93a2be7eb7bcfa2a9bec79acc3f3555adce73b293dff4a66787e2cb0bf643443ef3edaf1a740ac6f53fdaaa2ce79919c3c37362ddb58a3630fbd58c40ccd3658e52a1ec41831cf1739d91ad90b503a89c7101833a40d24d3942ea873856a20ffdc7ce051feaa541ab61aad45fdeb684fcb32bfd579980fb5ebc92c11b8d00ff9a876430a3dd53c67d496f35f347992a122c3ae476554725c6d02f5f50d570338340c51be57a3aa2066a3bc71383144bbcdf4d51badbc9b0604d49e392c4968f2c90ed076991d2c175bcdd7cd951cec6cec92d9f064d3de46a06ea4fed8f178ef688364e4e7c7105c963730a10ab8687c538600251eeed1c22a2e03f4d0ef20fede64597faf4e70d637b7cdccefed41bd21a0217dd2a5cd0a1f1955b7ae288b7fa07daf962b0dc102c6dba102ab1829fa60a439a8caff5a71affdcbda5dd6b02bc60fea9eb05527fdaa7decb2ed41c3cfd09c4e1440895899ef2cafd0bd4602bbfc2d3303c384cb0528e9a63c5bc581904743648d6fa59d4b844596dac333f53825eaeeacaa150fb051df81c6f5bd1d2c5430b2f41fe598131328bc8cb95deb03286b728f5f8c0134572f72c1a267d7891605bffeb52b00fb1c1442061b05e5861f58b561f8debb368af930301d24850458fce2287c4835b3d1b06a34d83b67e027a5c0f106c7e295cdad550cc220b3e259ca069bdd5c0068262780c8ca6a46702784eaa00314d40fd57e10b36d7105775c9c58226146dc5d34aee7d2ec5edde21f19f8fadebe4e3eb63c7375757cfc91c79213b4f3a44aa3c57ea66fc93845b01aa561755beb541725a8bcd53c1cf1f6bc5c72d52b210cc94f93f685d2aee6e0dbd3a4f1e1cf705033a335a7591ebc0bc683dae2e867e9f716342944b9a5946fc7d61c8c8aa466ccd9b5e344eb9efef5af0352a1eab756dcdf78e0fae0c61f7a566dfde9d22747d032f5064e5789cdf6862ffecd8a71efde126e46e4b59e034d7d9a2f4e5d50cd3b71cc3211ccbd2e6fd1aca3fb4d1e248fec186734d9f3a39aae71ad52b7778410b60cea32f7bcbc64166fe4bf1797fb8a8bb37f354a577a05ce419eddb58abd840281214c2311d7e55de2ba69adcf56fbbdd3ca799ac65eb4de32e98008c43aea734d14314bc7de8e2ae5615cf3ed2d03e2a6bda0201afe49a9f17e4e7a1e8e3d6691175e6061c1c14cf5e387a581f9a96d7d9ef2bd04b7b1839a7675f44ccc7530e2a07582fb6b107cbe437d0f785fa9efd28e397522d53a9983bb73a878ab98ba7fc5c11466971cac812bfae17b9f34cd17780c757ee6ef8ab5f5c3c2808ebc4474f35ec9320aa96e327e32466564a0981e2726e0da197beff648b47ef1f9528dbc5e01ef9d2fa98f0e9e05ebb1e54c3515763883d418d70cb32831a1f4ae8c2f7b38510751b58d93294e6239f09b2a475892db0a237a9c72ea671c4bd1bbae8316e796bedef26ba55e3473340062e92975da86be3ba36cc9a0f2319bbbd82beb82194dbda376a6076a0b3364c4957181e9359cf0740c59d0214b6bce374c6abdf322300bdeaf935a6fe063f55598844217362a0dc70cb160b6977ddb1673d1429833d40b7f32985612a110dccdcb0e83c439beac0572d9a0541537076d927c9f52d475654bb81e68d2501f9e54137b9d597a66d5ff96e3b90adcec6a181f39ab76f067b0f89687079ca1c21a0350a980eca77b566cf5ad98692ae614ae41f3f6aadd5839b9edd0e8dfa4c63c4dbab83ccd1d0a5a0a3545ac63431eefecc1ed94800b4ab0eaff71bb57b76f678966dc6a26d6aea05dde9f11473302b32896671fe0b73d28c703ffdede2a92c4c4245ac9468fd5123f63eea8557918e320a19d486e89d824fa013a7805cd4cb36dfec416808fa3a4313679294ca398d74f529e7dee161aa41ca580db1b39c12fb5f250d7713193442cb4bd87ca586cc671ec1e7449812676faef3f546daaec0c9860338ac8e7b7a07ce8f39bccd364a14959a8861161d2f151739a1ebfd947d38e6ef7f4183fcdd2aaa9ba824bae7671f7f1f35a1a1962c6bc6b213bdd04fc7202b70b9ecadf27d3d4139bf3c085b046d585e43b2597f710fde773f73c06a0b3c47b50016aa63fb54acddaf8b20501f2c1e5aab099e512efa6f673637d39a935c2f204ec26286279a451630211834ae708a257f624746931b64a797a31b6ef229a13f3a85b9b01df4e059ba44134d39d932d5cab71e446d2b62edaa3e4de274aec8a5771f682704b552409a1b804e4e2c13a2251d34039a21d426a49631d3c5fae0b69663a16657c70238c4a47cb2086a285398b488dff54c8555eed128bc2dcff0c01cf99acb084a7e8a476973fbf551583216c1a2848b9d594ec25c8b29431231b0b54ca494e0901ac3227d2a04e9f27daf2a8cf93529d3308d02fa27ca98ab0e9863e7e80cfb0d8d3fd586f053d89fdbb50644ee1f050becf9268c889650a99e245cc450d14789ba667579eb5ac42d2079303a5ed80b216c21e502af63cce21cf77cdc514328e1bc4d3e4ec125651c15aff4061660a267737b0b7961fe55eac6d6668cd3297f3ff928c7a855b198ff5bc3ab1a2774e56d52949d3dc4f57aabe9e7d9dbd3e46a997a726967b889bd267062c0eea08b2f953f6d4066e17530529cba75217a81988da2aa79d7a54e03663e4e42c34b334bf2b2b7fd88fa59bbe739440e7678996c4fffd7d078095b8288354db7a1605a75f3bd5ef5e34bddc928ef88cf4fba33aeefbfbe374f0546742d9c75b6bfff33f48eb589ec5a3cb7c84e9306c737ad0b2d5331b2a7d1d440b8cdddb49ade860fa59c14cd9cd40b151c7868b6722dd8a8373360fbc240e6bd76950adf621bbc690e4fb4ae6951c2a3c8bb03b492eb4c2e7be306674c8bee354b5996aa182616c9eeb8ce18a2f2b24efec9fd577c93dfb88f8f45d8d2bfee12dcec4a09892cddbb9db20d43527cf9c457e59eb9dda322789e3ed5d9a85ee42fce78df42ba878525332c2699839cb773e357e1ddc9ac10dd84aca297cbb0704ab1274ea782a9a164a9e98e401feefa895546fd76d4e602dee6f43d44754c588f4e18e0d8fbcc80a0f3f20bf3a39cfb62245865b9ea4fce92b6ccc0e9d9011b253e9b03d812183a9017e9e81190d9cc4892c62a68ead5b870f41361c85b65c6b0dc04a5af4f751d52d2a7937c376cde16c5423539d209344bc4d741886b345ba56bec27ababb1afc0d5252b986cfc45ce7b345ca292afbd1fc74ffcd177d892325e9abf7b80ccf5e53a78ecd37e6d0dcc79357c84dedb1e64f8cb96375a23520c1e510df9a90d3162f70eb6b4111adbc8f0af9756eb533ddcaa4865eab54a8b9f1e22302c9bb89c7e1edb46b3cca5ac9a7117a06726b0632cf886c302ea1900b38ef14e87c448eadf33581d478659c00928f7271a639a6049de419b4a1dc58f4b5e65b0c5b26fd287e93f66ec95ca1843ae0684d1ebbc3b2f8fa3604d9e35329fa07ea25a4ddf77514329a06201bbcd3905668add8545e0cb7f88f08a77695dadafbb58cad474bfadee26b05f908e6df2b063ed1d4ff357a01826cf2f0ffc881641dd97cf60803fb1061d17a8de5a7704b865fca97d9cc53286fff219f4cdf7c9b5d55a84fd40e3ae45062b9f908ef8e6dbd5c77cde59904ef92a416d23e541352b2c9409772e56728f896553f155baa2679249b84adbecfcd7b357f5cc0c0a3d136fd9b20ec0fa007bc8d645ccecab14ed63ce916807cae44f9ac425b46e7e986c9fa6225cd8622da7f64f5ed08fc1606185ba6fff20ae41cca3bc73ce825654e990ef368bc19733dd83622cd4762553d4f286dd3cbbc6a1a32adbc8ba2fa84acdb16bd54752d6ed592258e4fe2faa3148fbe302a4395a7a90c55aeb609eff13718bc27decaf0ec80ddfc1c16c084ebb1c293aabad61fca02f2919f30599238e9f3c1c2ac0cc6bee72e6276e4cbc6b051ccaa825ec139982e6663682e3cde39551ca1e3c12031282bec3fa94deb93b8465af0a2e45e86bc8da116b03cff80e9727e4e12825dc7ba7d790dcd98b3cbb33467b1d8c7070c578736d1b605236562cc2c8c33ce3a0467a0ce343e538654b4e68a0dc7a42867c75fe271003c9f6d6a21a0cb861ca2d2f6456389795f09c772370e2f0c9c79e0136caf4f8a34be1ff5282c681a429104416663f23357d53ad080dc2471a8027dcab9600fa77753d94b9250b7104465a1bfef41483c523df3f8a01733ec0e2300385053f060337029c1962c0967c44d981d3c4dda64b850517507e9c6e845a51b13bf2484ed3ffea2ecebdfaf1fc52dcaebdfbbf4e289fc9c9d39c49aa7feb0089eadafcc9769ad98024a3cd637caa48c40de049c18fb2f4cce2617d192f662a89d5f7a6faef4a6041842b09d156fb088422bbce276ba172aabfe3d14edbb3ce12b5814b130e0d07d75aa134c42670615d31bbe6c7e2b481c8d4da916dd04e4f6fcf77e735caa98764cc26af139c506209266485fe32ede02031c4bcd94bfbc66562f26dbfa79746ae9fbe67977af0476f71e4033871c1049b1395826450e9fb5518c667dde83da1296f023f1263302860b57f0f5c253844c3674ec2ce7a2e52e038aacec8fb55c76a167ad0634a7006da250017c3b7c1082bae263f8cbf56d6043ec0582c4881ebe61049cdc0ac7e3370f2fce9128feaa13c3c9fa45e7d1f75d4268c271150c247066a553cb1573f0b0a95f8c1eaca893aff16de96b4ee03ffc7098840d9f8fd1d75695d986437033532b8273f690a19dbdf9b54917c8a3f8375dca9cf6368ac7e00e7fc2eaa25f2875e82b34ebb32dc644c63dcbca62486204dbe7b95e3f4224744763a881838b922a5984a7efc0735381e414499b8b9b575e1e6b4b0c39971ee5a9f7f06e4a8d6a51d6549babfd8c63d63f2aa99b507060bb10d3fde4681111471b69859f2ef8dc1cf9a25e073e4c691e6fbfbdd83cd7a3802cb0a4f606fa4624fb940ec8348d9f5469eb2c5e837bdb3d9c7b43a160a4a85e36e311d4c5063d60855858888d08ea3fbf579c7d4e1864da9dd0c1591accf052c6d7c302bf9f6f164068c67c7eefba6b15386e345f61d34dd8a3be6578293895f603650aaf38c29cc16515a67040104b21ef567b9d751b23dd181de03647a00974e7649274948afe9e370bf112cc6f0ad86c976a50afb8702eed3aa4adf3ff317e9c2fc771a35438b5c0872997308901736b7d414d3a84fa9996faec45cdb5c7f203af4085a5fd196ee9965d2a39c6fa1aad25c718138d8ee07859645846758c9f67b95eb1f01367a8caffd938124a169f0bd11a0f655933efba5216b265fb5fb7eb6ad731506bdaaf2e7468631f6a408cbf881d6ff5c7d595b4e26d63daa0ccfff3e88ba93d661485e70382858ec3314b080ead8196574c30fb04217a94d488ab1d42050ffefd7161db9aedeb21bc9774d05b025d92a87ac0e47360cfa30fb04a2b0e7fcfb2a3a94fb4c56cce00c1f1f89afcd409b1007cbe1b4306e20fcccab4e3b6fdd8def68c7b4f2515d4303d359875e22a19f2cd40e57c65be56c0d24eb0b417425a5b75a913899d7940e4279d86637bff6377f0996c4deec56746d99984f1ad0bbb5f77c81737269fd40e6c2a6853824f55b9d0641a9a0cb1719253f7b074ce976c3bdbe7ee8d4dc843d2806ea69a62fbfdb97b15b61482deffd63b50dcd16c75f212dc10491323010b15db87e4b50f1ce2f2531fdef3d16d10fc9a56b1cb34811a602c86e46688c92a033cdcf661e6f5c0ade66470a92751104eb584c862492186b2861ac809efb5a4d0d38f81c829015093b08258553ac62aecbe578629a9ee1bd6091d26966938971ed3581d71759f8e53a9a52b1962b64a8fe05e7eb583d85d7b5777bf2540863825ed4e19e6811b5e024bb6c643f11f0f3daf236162bb796d2898bd50f7e6f1776a1edd08db249f185cade898de73e1d520025a7d734ddf3743bb35c72fb6be56533e1c179d0c5a85aac3d00814c876b5353a5f255854f95966e7df26b3408d8c6869a8ee28d8a9b364df452c4672e19292ff19553f08686bace05f36498974020403dc4c9ca1ba5f9bdecca9bd98adee4e9b823040a7919607dd0275ac2a3e3cb633c9bb0566e34e4043b46409959fe44906daf8a3a0189874b26ace50e211d873cfaca501220d50ab3be392d9e52462423241c9f6dfa7fc4a62c63b9b7a6ee1da0c62cc848f9fd850ba5ef728f90066a8df076348db75b64b3c85d5d7d2b4a2dbca7e307add53eddb51f6a72ba1e9a877391eaaf216589059f1bf7c2a0a00149a613e27d7660f46a4c94cc0465b64be6f15ba748c09c53ac52bd991859c3f7cb99011b86eea4754f8d45ad9eff13dd6329d7b7b010c1d3d99712e5b8751dacb2c69e11e636458a839c85dafe27226daa9c75973d542f28d29d766c8ea69d69387d0e248a6973a67fd2e781273819b0eee04eb908eee5dc485468cad8ba20ebd18bffc81cbd0c25e114b77c58375a90cb7ebca9458f94127e2621188265c277933525f7527c4b6e6d89c631371afcfb2eb767a3ae8a117f5c01017955c306bb058698078ed76363fdcfa01f6ed6e524de15b6231692b5a48ee1f9848ad1205de19aaa7187a872e403999a62beee95279b9fcfb149f1702038c1d35a81fb8d43b2e42ae784eb7a476589d5f0ace7d5f8783e71c9e86be9298044913521c3d0a143df85165f9204c4f14fb3fdf51279e0f7b1fe8b75b91a90627d7d5d298143e0b154de709592ddfa8374b1ea1d8fad2d6d410764902fb1d331c18cbbd0efe78e4ec585a5f0ec624ac03ce232e4f663f35966ac402ac930266ca6134578105d808401e563eb8049adcbbfd556bea5b5f37d0bc2e9ab1247a1f288aeb58d90112f6e411bd0c8bbd4292f244393bc80f500cacdb911b92ecb28748b25e9312da6caa40ed60645549e45e1babc0956e393e75e5ebe3ff265dfefb73064374a175476f2568b7b8b92e34b1aa8967816cda130e7d3fa8d6d439ab8adb64077480ddeb829f5a8c5194a9ab34de183be10b439323cfb3cca0f9f010aa8ea31fc97ba196e9a5d05d88d593e17b0044dec55843b1be5204ae5d5f488eed94f2d9d237df456a7d90ba736c96d740c2c07d70aa223c6716c6664f795b74b892f665b8da4e46d609b164b8c049141581f75b5ba5a2eee3e21a644b8c63dc612b9ceb61c7778877e0d824a4ab7e466bd973926f9c52774672905d483ae4393e03635442402a3621be161760ddc8acc7c77c5f7d6ad3a93bff3a4459e7962daf88746b37f9060754380069b41c1f161ffc1eacc1ebbf38737050db20985e7d8cc964a4ea40297af90bf2c11304796d39a73491cbcf592a80c5e9876f9a3728a07e06e0ee3b2cfba138a4160fd3eecefefeef72cd4454428b48857b01c5b244157e338ab6a7bfa2372a8b6df01bdc6f8372be7efc3aca55ce012babdcaadc3d467b0ffc3f0fabf611b656b5e320e6610b8519ee88626ce2e8d8d6819ec46053cb803bc0fa044c648f03dae1f721c407259d8a30e1d8124eb99e7736bf9a32e664392f5b5f5c7ac936b00e0186b4d109de738b76bebffc590700b6d8a958f68c718929639179c1e31222826f9390e99a60ee964dccc817e5462b4a84e8b5d8aa100c2cce4e650992b9644823c7da6d2c0338673a973426373ba421826f16f552a768d29415ea7660c6a2a82a9f1879c7864dc6d198b89de7e0e72d975108146ee2cface23730d457c8d536613c9b79f68c28a00dd04275b9f7f6d66d64c5b3ec5345c4fbe2605f292ae46befc740a75751be137d17a8485487ce1e820a8b5199824d48ab6c06bf702701c3534c3c3217c6ffc5b0bf1ec134fe5e59a67bc491852d3f67f930fef328e734c8702c14071d48ebb560dc182b98b2c375d59696b45a91487f6b02a171127df82f3e5d283106a75e8458dca79fd6cdac77d1ba468ce117e4070e08476355f4e9ccc779073fbf3a5829a9289a9c097fd90322c2a3e9ddd0c833d83179faf1756dc32e3e721642c035ac669468af81c4e7dcd06853b33f3e4e6496518b9cebcd1c44ada07d9d201673dfafe1668997368c812ed1a1ebd3e1f3f9ecd0befd3309b649f070d32723881ae964336f62610ca7551acbd03731ad9eb4d5a6fc8d4154ead7241eedf2540563cbc2a55f1057dcc2e05141e117e2930039586642465a58c3be62bab0db790e403016c70d340e8de9aaaade69dfed3aaf002a198c04ffdb12bccad516be4b9bc56271f58933b56b71e147454b3562bf3a75694dab7e17e9a8590b61c36e16bcd10d2bb28ed0675b67097b032c19bcb1b1970ae74c3e444f0a6224aa9dd4069a098aba19a5250ed7897455db52447317fd7a90737389eb3e7ba74e100be996e3923ee57f015990ff2a4b2fd1c083c3061f8c47dda67935c05b22eac22e35a1960871180f62675163c0476123618fe929838797b19ac1ba0ebd69003169625947f4347e49f4867a32ad3044a8db76d24e0e89f683f5b20f5c8941039d819de3b24b8e6c77e4526308894579a6e73c2c2a681ccebf2853b88a4f12d3359e157203c3d4fe555446835b7f0d0f8a403ba5e335f057d6154c258520a6c83950985a56307a1bb8a610a6e8cc3467a3ccb392d6f99b19f806c608b928a71afaedcbf914a48e9546f9071b93470818c182a3c43038419ce24fd7b3c0fa740033478ee2e03e6dfe07eb15efb8874dd5b2d0ac639424e47a0721a203b585d9bbebe600381ac41becc2c4c9c73263a50cd4536f2dd81debd8ab55c165de72019be4e1248dd55bea2c6cb3283e86f2203602a8e4ee0c4e37718a9055c17b754d59f4efb68968676faa2e2a9b405c4e9522cde0a81ed331e36787b63e6c9aaf17e57708f5eaa7c89277b0555702e6420cd90c0d904cd91df244af2042d920f52b548f6e9108d1b3b7e2709898d51284a98be5358698e3077993d6fa042465ecc2217969d19317d1920d840352900355d5abfc8374d7c8e55e8c34d5a5c96410935faf5b4ef55f6e3eed60ff08a55be079776d7a429126544e2d75fc4b7f2e61ad7f38fead953d134934cff0b3d91eb736a34c39c488bc5df19d4ab7640310d44b2dedefb91ecf74d0df81d0a55f17e975a61272403dfbe76a30f7d6853a6db80318cc27e69586d44d7f4ac9833779d185282e7bda4dea01ab210ab9108988e31dc7473d069c23bdb08681ad5320c5e4120625b4056a692a18d59adb0db60a52e8ec38257b86bc8c7a201ab834cef9ccacbe2dc76a106dc44e50cd9510ce8858da83548050bb091af4cc27ed9c9d8095c7c66f1eb52c5ce531097c78af9145a0d9e7a6f02a2c0a89bce91bf32d672ca7e5b70f0e403802021c1edd11b66e298b71da029e33b67dc7c3f3b6e8ee1fd70612c059a0640b5ac85024baa18b7825878060e906539ad3f1f1d87cf9e0668b82953fadbd34daca2b59150b34b1992acda7cb367f0324ff63916dc422132a8b347c937a633996b080d4a27e947497396f6b6472ced5c969c53c44b3e5d7bc696ac0e71063cf9cc85a45d614ce856ecca9d9096654c9af83c12327a92eed0c9dd630e62bb2e04cd751cb0be7c3b37cd0f1e9822362adc34d4337f47cd40f4a258cf8f351f4f6117e3491cab6c712a5fc42dae892a93ee91f01486c0a7f2ee7e13ca4d1a8c7b4cd24f1575e58b8f028e15e4d0b0b6439dfd439c024eaf68daf1371a6da92a7c1d7a6f17e517e7a88b02198615077b748331f9ab923de4a549d708a8f42787a49117d7c9e29d0fa3304b6d2712cd864c7b75b888d6b7baf41d606604fe6609e21360560d8e7bfc2503951c18e25b09b5d0c1e28561dde96cf3e102ec54772af914f4e761e031c362197e9a3e585581aa00bbd7b652d60d6ef3e4348da0910dc8ffc94a0cc1d9620ef97ead9d920c528739b512c2d27454c0af3c08133b70f9afb4dabfeb053765fa5bf35e9ae87c7d210191307726326b456deb9cfb258dc0bf81f360d61399c253d32565da89aba5fe7a2dc0da9de4bc270a8e9df01c55f3f954aa2c61030c5dc8031fe67a2029881239545911c68c830aeffc780a4454047e938449a24410f250f675dfac7fae1ad97acab3881cd7ea45e8d121f202a6eeab84e7941364ce5e531e97c95bbc7e86e99ace4c431df380498e4b33f060762aae42495f8e633fa54000dce916be881ac1211f3b75ba32380eeffd9542706c82f9de722eec78f05237d91fc11e2ed7d9b6de0814d6f52ba4af5cd9af40aad419d8f5e55007287dbb2de044c9ae66b19c93236461305e9ceff613afadbdcd0b673b7b607ddf7df7309ae4d45d59508e11e043efc80d226f620bc094a2c8081e034254722870c4706c1f21810c66ad69ca8d85b63ee8ea8a32beefc4bd240d874bfa575ed745081deb87df4710c2f08aef6be20018e2d23e654e3a1f8fd11fb4316c8df7f25da08afa12439d4c2fccd80a000dad84804003d15fa8d87b2d5998dcd2648ec33734e2d9a83b4412fe12ebe39a49559769bd11d27d65bfc2f32ff6dd8c4e826e5b4df66a760d2e6901c43168c4d2647ee785b611cf496c60857abe5f44b00c558fb37ac3a8ee3dc870be76d489d60b59313f2b251812b746212cafd8ea207157af6d93d2f869eefbc33bdd82484d08c7ceb0ea7b029ed93da163cf6bd734bb07fe7d0e9cb2f0c5669f9a578c0cbed377934c29bbaa5cef013a07508327fe875e42bb8a9f1370dab005e30632014df89312e4fce5546d85b71161fec8e701045b6d8c14e14d5f6faadbcddb4767f8874dedd6e2ba49a45647c26930403137fa342d432a32ee626705f8ad8e2f2ad1604be46f2601249e3a924f53fa97c5fe1d80963fc1fbd5bdf6c069e2329643a005b2a1e9cdc1812bc74a99f68439b70b02ebab0cf493ddb45cf64d3783dbb3cbe517d6fd0a2dd486d5b7505549034bc826b20b2188d1fff22a5cb72b691589842263516bac9b793966d6ad8dd19b4f2d1120920daf4bc259934ce29d1d8395d87c6fcb253e9b51b33d2425c6ffc0e85d9e69cfee7ac511ae191e7fce26acd3924686ddc447d415f52327ca3292c9ddc9410e046ed505d43d5a6395e8bcefe02ecd39ca19ba76fcefb804f2f009090a8361e474857dd807f4704a292c15c29810f7381eedb5fc359c09488bb4941da2da70bbd45d621ba3397ccc96e68bfff6a0fa3e4782f1c4d665e399a9d4411ae3a697943fe4a3964967bf7522e4b6f9ff654d5e594211e48f394b86f764952902e5359298039fc912ca4f38e53178c07e268e57a55f2c9fb9a0296f5bed89edb679f8f8a2bdc28173e5acec50933adb8f60b27173e6207c57fc0ea19900ff7c197859c5c7ccf200c41e123841c6e17dcece7a0a2bfc77a2f36d8143c6c8a8c227bb2326a2cc08072c5077193a59c9025d2390d63c9de0b5ae8bb7ab7d36902f8cb4e68ebb33c85f1e07e05a78633dbc5eaaa7777831d856bb19d2f1cb1b432882e7d345cbc1c01ffe3fb8ea7dac15ab0bbfde95c60b0db6bce391ef7cdd1ea1faeea8dd0ea6c1f7a36a84f3a0e2953ae2ac190c65c438a31808a58bbab021801071425594ffca9fa29fe94ebc98b80d7ea3473d0c4981fc076e09de4e38a932b096648d0b6fb864bd8f713d9ffb8f0a76582049784b998f751689370046cc0e33db6cf9c02d3947646b04259e53686c1b65f12f8f436b19de33caaddf3d0d2d84588d010c030e9f4b7d70fc76aaf92d9982432e3bd446f7c5549a6fdce253a7e94fc660e8a74c9c23b43de52bc519943dede34fcf7a99f488bd0ab2294fd70e3a1b947268074dea60e32cfe1b2b2e7292735499de013fc0028630e1ad59d76c79274ec2774a6090de16f9ab4cde298ef75d8a040d110a05faa6350be7402a6f2f4ab280cbf6cca9f870a3599982abd9feb5f31b26987af60555b65ebc4a78d1c6ec590952de379006b4231e27f22b14716fd9d46d835f9feba65ca29bb5365afa80a33140bef517c780b57a51d8527a121c0180c14fbb146b0bc872566c35bdcd9bb05c91b19151cf6fed1ecbf2258904f64c276d81865c7960545d5687db3f6339b9c86ea9732352b52ae57baaa748078253a4f78be9f91b13525c70a52c2ec0aa49b6cf43547a990f35c7c6b838f4df701b9df4e4e9343c1ea4783d299e104cb5def22f6d11483ecb8b5e2c0bab8870533e531f21df0c365632639d2e2bcf389aa53f9b0730d45e957c16a91ccb0d0b225c5f674add6649b9223fdd6a8764d96dc0b9fd08825bd533acedf010d360b2f45b671f619e8f33655748a82635fd35c5a1a87de57b64eb276204a40e479faf966b5c0ae15a4a29fd34a281d7c1d2a8c26d259cda9a94387e7d1d324686e50963849ba23496c3e5c991888fbef5447d04a45bafa6fb18091214dfa1655c0b5f59a890e76463eaeb66c3f96600c520a89222a790cb11655d51615718fcb4b42333e583661041e13bf364cf1d0654539c7510127f2263bba77dce59abd47fc373c68efbdec2b028b82551a0f9d6902a6ad28d547a8c7da543db6165ad26ffd1d4d1b1d2d84fdbbe5ccbf6e9b34d14b1bdfa02f14ef28ac2c0349793634392decddf533c76a611388ecd092648ebc098893676a3cd5b76b7f0625448f58c9dac2cafa5263531a33a7407600e27d95b6f53b5207d2003a8481315b2e83853024552ad3ec60b97fd2b7333ad48001ebc2c1275c26ad7ac6c37e8ecc831f9bc86fc94f29086ecfa352c20062e1ca333d9d79d7e6a0a6f43007d9bd917bf66f2d282178b15ed96d2f33b8aaf67104cc8e26ec17b65ca9a03d5c8512c89f151bfc786f3b8aaf7d75d88ae5b691ede5f27e2a33593da024f2a541466554e16bfcf3e8c00c9f6d5b88ff25eef5bf4e640bf02875028a574ba0dea6d9268c3d235897b16002f70b691c2bfb3b0adec8514c3c1d459a7a5c7bccda3c3b1ba0dfdd8fb9ca5a6cf29fec1e29ebad46baa3f29d2123b66c17b49ce6862b2decd220d213c978e6ab8d866273bd53f492a380ccd35571dcd4399d32f51886adab98bda104581f3f0587404ec7ac341e28c09e3e8dbb51f191d1d492915f076b10018b7d9d2894a29b176f2ae471d4bd16318d35da9c00cc60c897ddf91c90dfe4e8a562627267f111f655f2303851ca3ea5729f42bc7d11ec52d7a542c46bb36c4994920952abbe6de5aadbe32df3374db9068c7c557f8291e811a04df11b272684d266ad2bbb9d230f395bd4426ff15a093fff1aa1e01aaf13cbf1cbb85cae4b0ef4b186c0b71e203d6f9dfa409324ea2b583e4ad335abdc7f7925e3b2160ed94ccff9c1bdbe09a1b3a48ca86aed48962278972c2228b64033c2e56875bf496fba65fc70133f564551ad1389322f20d0fabf870fc430e027a7242e84d64245fe9479b4f61b77502426a1c0e2ca48a8277d63bc86e84c465b670dc67392a131eb5ee5d64d76b689b0a4dedb85a2482c7f3bb840075903d93995dff91b097c61b7c8308c3a4f7a41a7b1f88e474475d2c227508d96f9f982ae31feaea7683f1b9dc10e985a2814f8dbc70498553844eb912d58130265ad12dd9a9e63cee45d173bf24b60d081a0664c4f508b69d709e47713880bf84e1f028f6faa40ac9d409a356bd37db9e8608a04b980a9779b2848321a1062763c3cde808a448274f53016a1eab0d71dfa095ec1e90911ef1350f610bb80887f81df906880fc083081678f922cee621ba08e7c1a46b82dbb6bded409dff2adda88fa49ebb6b6632477a5fdb80b054ff5e57da7552b0f86f374824f0cec1f628261dbbde9a4f2ddcb51acf722c84e71f97cfe4bdeb758cf8d0c33a1d194176b7bf0e8fddbd7219d5a0bf6ad4610345cf578a6577fa7d110c12bea6a2632beb1d6d1bab2fa61b532484377ad4d838cc805e3bbd30873cebb856b8da8f3d6d29de4a7a698b87db9f6659858895d3a0ef117fb50f818af02ee7db32f2da4e52aec600572f71d7b777e364143c1927ead7d5e839fc1fa205fe27714b8443096483b8c99799d8d1c50fbc65e518961f9216f10c0cf9d06d6101b59bcb527942febe1c0c5b7b3ca6ee9936a87581c023eac7f679f6067d46bc4041fc4ec929b432e86e4a9dd13a4a73d42a03b1af944b9530930344d486b6cb28254f80353669fb0342bd013e8133580595a01d23e56e88be1dd417f586d9b864ea528c4f65cc923a205ffe05f999014a4d520d257b9f937bed4c4d2e8124951e3f186cf2be9f420fdc45028bd780170cc4bfbb9f435586686d926081d8b8d57033de30432837f8df2a52b9b9fabf38094951c374a6ec1c3df4064555347bbdbe4c7cbf0660f8247e51c579c520da70a728b45a999f2319ad8478fa40630d65fbe5b2322ee17227d71aeee05ac9b213bb97fae541398ea05e40adc055835a0124be3353506d795430cf4898a9b44a05471f09740a5453210d90fd702c35b7f2cc45b140ddf1345e9292f782a87d703532ae5a8d9e697441a61a65133c1bba5f7fc77e9035be42868cbfa66fc93d69a52a7f73ef8d3e22072b1b9b8d4f52277e522e1c47c8ef0047aa5e62a502cc94db6266f01902a732cb2bcd45b832133c759d2638e80a3dc4dc75d15f1ad5d7330fe3a040081bf71fc0780d97e32a941d37abee76b608efcc4100b4b7e4b7a1f290e385cd24a66de24b383710ab0af1db17d1e60bf0ce98ab57cc864f245967f1a052566022f6912768a06f687bde1e514670b6d0fa727e7dce4f454256ea39f3309544d80b918f08d43ef8519893c6aa53162f2d64ead06228afe9ef62495aa53558c3d3c7f3fd1d1362f208b45e6843eddd5f3b0eea2798553c16fce6f6b2d52e264377203ee990e7c10371a23341cd173bd63a1b289231fd0c33c5a8cd8e1e0c088d166096274783f3b7e4f49d98bb9d54f2217ad0c5373a30b096905caffe9f2aa16ef2591c531ffc0693c9eddc94cfab4b7eab9f1838a1f21e754cd605a095c24e5dc6cbc1d652c814f4633a4ec86529891b7f9ea86dd4ed445d6a0bf778e7894426408d408b4127f6f0de828ffcef577d7e094c223212a1741ab7ce1ace8047da128f0b73206e3f8ba0c12cc7d9fe4668af037c6da3eeb7e7deb7f1ae32919060c057e368f0e56e75640e0b958c5502f1f1257b2eeeebc592e7411fc44d7ba23473f0b7cd8dc71e51dae16e02df788c5e0d7224f26d621c6d3a51763a7b762ed092179457a967a2a6107c3492fe0ca859b95948ccc7106a7a6abafced2f3f063bf82af306d18bec74b1575f914f390a019325f59d6dfea6d35c9d156f7ee8d08d38f913c4f6953cb9e0788e55191d9295b8268079ab0a98b2d6945eface2a646e97baccda69b8eab9bdd35b90b5b39318808077ffae8038856d93b6bb5a46a2d9caba999b03b81085440d05b973829f097ad484008770dbb1dce97a65ba78cc1cc0e6c12905c084bc70e957993794fa46ce70dd6dde97f2a6d0c0a8264ed2ae1ba1cea7f4c25c56b1e8a1d84f0e4fa336534613ec7de97c9d80a8ca09b44318db5f818bb6e6a8bd45f9622b2583c2c2c905314cd3d245e24441204ee57fdcdf302c0e3578f9f25672d8dd3105919e7888ef191997be65f9650d6f4b8aa5a51a26cd2624fa90702fbc59c036fe501bb8cc338325786c29382e3633b3035c685be8a4aa8acc83a7b959c027d402f92f3cc14e655a51b464c1ca6496bb29b07ecda025213294933f38588b54a0137af75d977252b74944829ffc009a3e2d1151b8a0593994c9a5ef4eeb5ebebe5f98476561082a616ca7dcfbb20e30f69967f1a20cb67bbabfe28baaca735166bafd26b6c62b71a8af01e01c8a990d053e2c9ad78047d3391e5dafe3d000b3775f9f69401a98e0247a0f19696626530e65430446bf1128587904f5ab1111bb8aff8ddeb017e2a4744a6ba90533510fab8704be7cfdb83776ae63ea33941fe3ee5f2ab4e75a162e6284154b9ce5139cf4b5efced7dfe175a2f5467ed201189e62bfe510ab96ed071929b2c3325f38bc4b17bb3ddfd8a9788634816a6fe35ae3b9aeb23e96c92bbd775cdc000485c29eca0e0fd8970c036dfc21585933bdc028683f6a83a573c5e879cfe3f985057e5e407668f940474de33636baed4f8ef726ae26c842cc708ad2b69fff05d56cf0a4a6718a39ac5b70bc49a13f107f59740b96a28ca4382f918fd36e29b8201bbe15b4ee807a317f6e156c9c8a343123e2842cacec513db32fea70c5279d41c7296b719e927c4e31243c550d94722a2f950ad87cc356b12259956ae3d32be72d2723d9a1d0af1b57ddfd7f65cfc3830d02c2e5d01766b11878429d7bba938ada73caa4f43156b824fd4e6b707c66f988a6ae15221295e14ea5d3a37b703565ee2854b94f05a528b4fe4d68769f12fdaee81ffcb113ce6bc69d944610dd00b0a7d075af6310f9555884ae64db535bd5744ffe4bde2cd9b2b4a1253bab6f8594226c6ded6c7271f7284757505cc376e6852d54b5063df1737d5e03580d9bdd7a78ca5bcc77eb551d168976549de6e6adc68123ff0b900d5bfbd251a67de8c550d2c4b294434d84f8fd99476034bfbcb56c03325a6a62c4d8f3abdb4097d3aeb3363190c55b24ee12b7df444a0c8b9e167ffafce5bac61982aab59dab009ee4fa3e0d1811bf32215ec1654b439f236d79988f512ac9de2805e6d1f5ade62367e6e52c61469930eb856b982a56e000d12d4d0b295381cc8c8dd371983800fee4d01b18b1b4da1b86d4c697bd2b4dfe90a9dacd51efa7087ccd87c80587c7e2e638afd549915417c55b15bba116339621cb79768d3842212391ed8e21c4d77afed0f3dad9a224f598648fd0135fb7b06869c99232354a836cceb654597650655d2d4967c2c8c43d424ba539cc726632f37e58732551eeabde5404c6935c062e7f2694865f6b97c8e957daacf7cb18759c3029affabe0eac2b9e0b2e915810a38530b90e09e7354447380d14cd54aa0c48578e0e00513536de69cb64f3e373a2b4d815022b0efa690b9e9892a74f378a1a911a97e2d5918aec45e81eb5920d173524cb93d64fa3a6a465c8560bbdec5525fee6e0afb20369f696fdea9cbf6ea580e77c74bb108f72ad02622c4ceae182da31db8bee616c6fab9f82a7f192034fb446841203bc6af0a15d7b9f3a93dc49e2b609dfb00c111cea9fb9614c55c37d3c8eab96faaedf225707c6494cc6637b46839f0e914cb67232d2ea2f9227db3f9b5e3d839c44dd5437431aad4901749858414d1be5287a82c7a9a2dea4b6162905ef4f1fc13860790de56c0e14a4148bebbf22115f6c1275896efde5da8e419150e4f8b16c7d2b391571ce2f721fea34aa5cc64cdbb075c29a9ff291cbfac560c7b8af8a990043059a22ec5e1c69c8093176957845db4ce6837181dd074efde5b5103983824be95270e1e1b1c1d39a73249a2322fbc7c19f2c18a1e979c35ddb4ce5ec7c1a050cea47a4cc4b8b95f82c2c4781378609152144d9fcf54cd879c7b758b221d01027d9b95550aa8b93e8578c04ce7b193bd781723a033a287e4a2012ca921fdf871dc25fd2bc9dec442172d0a28df03caaad91b9caaee1472d686218d4130fa48d485a0513e21ed04fa5dfb4339f4d0a9f5ba864b6305561cfd2ed824b4769e5fa616ff1db1a133b5f5905bcc28768a4b267d627af69aaa6d186b75fc8b165cc51a0d1967600b1cbae06d3b9b2529ed95b34fc35080b2093a4e1bfbf9b32eb07730f7c4f10fafbbb4c0b843f0028b7d59841fb752519c6663d6e2d946a0c90a6424231aae042a81e4660c1e3adb168e06367ecfe9d075a5f4cecd44e1392f6c878b03e45730c2e192feb1f394050d309e3b7c3bfde57d4c375f56930e8c1cf15326d5773e13f9b52932c07ba9bd2d9405bb8c3673d9e35142258eb114318421d6777fb3b9ea682e72b93f91603784f52a3193c81d8feb43ec6d6dc69b3d71d31cbb64d52ef7fd07ecfde5b7f2fa78ba7ee9b08abd0ca712b025bcbf539f56d3aeafebc8098693362bd36fa45fbe9a3d9786fe86e812ce4394d826eab0e71b3072f9fca7cc6bfe8af60eb8fc4d3e857befa65430944aab82cc7fe2a32da79d7672e506841c65e830833eabcaae51e483592db39672a14cb2067af7c2f55603595752a342ff34c61f4286e992481fd80d3c46ca0f5c521b578338329c15c439ab329bdf02b1e16c5b1c15f37a9030fb1413f59a60f9198f679eeb0e420246012b4f82774f0a026c9245302559e1d2d9bd317985ae51d9add50ae44feeaaf547f881dd5db9176ea18201480fcc56b65886dbdace4428256ec82dbc7d913369087069bfbc6f84ebb614258460a087325e1a876ec656321afd69dccac5c4d79dbd4dbdb2b4deb0872bfff719722fc7bbf173764f23dfee83d76f7e190ccdc7b9b24bd9b192cae11f1aca2b287ce09401eb607599579ea1cf42e6f06e880b730a8cdfcab3ba6d1ebf00b3daefc997effe8e97d3b68e97d70c4125491fd195c92d3e9a351b1f9eb9a8957d0bd887dfcb4314066d1eecbdec1744bb8e93cbd44aa6e79fd8a2622c5976c5c49e02813a0b40dcb0709e9ee8e93c848c69ccd0cef9e57f4e9e058ec6015c9a2ad832fca535bc68599d67f8f3745de77477e64827a4ef343ff74dfab075599c67b3c231c9fa73bb0f0289cb3d283b7c3453cea2f1703461238549341974e505b236edd4a994807074c0eb009df5f1cfd9e689a47a5ca4747bce734d956f28fb37602e827cd467ee8595d8e759281c4b4be9ce0f5fd07298344fcca20122552d23886429dc0ceb647aec1f38431605c37f12e3dc918dd15e3c409e3e6ceb6b6b7ecd489c952f115bea4b4b2eee26b89aa16167bf6cfb638d14dc87b8eefa889f5d978c27fdee31e2d85d3203286e41f8ba2944cbe5958130b65e0b4caae128796e81a33f7000e0689fd373908869971a0beb1968c6cc079cbe36df5fd5fea97fd9182535f1c97290c7b4757ec6f77aa3a15ec6fd8682524ca2a04cb10d44417f784a8292882e346eef68961cc4a7d74d0072dd576737528d09f2c30495b7b6b9bd6b28d60e0e23111ee8270a8332858d23a5ca0589daf5c6c8cd13a302d1a41ee8450cdf7cef0b4b020a3afdfcce61fd0b8039a91c567ebfb75aaf3e5e670f8c344d028ba6fa6e2adb7c3520ceb692c0bbcf0369024c17e4ca82dc01d49bc5dcbaa271d304969ef42b093e4d417a05cf68f6f9997c0d52dde30dd329ab1860a988858aa6cedd675c4bc3101002def323574d52578e214ad6a565fb56f0eea16882e09a09ea241da98b407d567ff51aa95bbb1269701242e8fcd5f98d360ecbe9d71ece1f25390b99ceb19103062f9aac2cf412753a3621e69eff38b931367a177bc60f5fc6cdbb5bbab56766b75e2f952fb82c1dac24253649da7617fa2df318b49c74229f7123d10070c70e0daf87d1ddf55769727e279ec637f8873659f95f950436d7193ad790c7bea7ea3a10275b0624c991e31b868f303402540f7b21215966c6ded2f5e241d38042deb593110be445b39a3b7124d1b4b39d8cf6fd9b84639cce8eeaf1c690d45f979e85c37dd812fbcdd0130641b5e6615e48b7cc0f31bf53982ee6cc3f27ca48ace3d5e2e64740fa11b03582d50354c75d15a5fa6f6f480460f1bbfe796cad1f52746c0477ff676ded85fedd762f6a33da4be96127fd4c422afa6870a9ae2d2df5d5401858e067c72601a665b82fa73e01f7c7cd897dc76501695e6e7ba5b1cbba38c990f7117785e65895a54739d20825a4d8c97b03cf65d0a245f4b104229ffffcb757dd15f8c75e00e2f722b1180885f6ed074fedc0d867fa84ce7ea899faa90d88fe3e13711a8b59ce372fbecb4579f68d5157abd0832959851bc9fcd9fdd7cb1fcb7db9fb40d22e58e231657f395727e37982aa3e27a89fe677502a5d106e399dc19e31f5f4eb50966f5098159b7fe4ab334a38bdd01c12b2bcbf2070e1d4cd7caf593d08be84e3f47eab32bdc591fc54cc7891a60f57810c1ae800ee36c9fb2e6b65b87acd779897bcd64deb0c182c0993d6625343720dc9043d8147e5587892f13712f950a8e6ef4711838c484e0fbacfaea2231f56858fe8aa3fc9a10a67cd2edf81c2b953367383c8e1f3aab1e7f6ec7a8bb944a3d119d9ff450627e6087e1361b773e99f800ad59ae53a3e11b520d0ea8fe0552cbe746cdbc490bd5c606009b02c3df10fe5c0a630239a7a7c8fb48396074532be5e4a95444b587a85750d346b9abff408d8befae8cea14e3eaa79c639016116c59abf78bf7fc8ca62aa7691e85f1448bd1c89148882dc70f888a7347aee3550b6a7862b86f827c44d3d4217f31d86ec9c5fc36ed7c9de4435832d08290619ed6cd23df02c3c6784181ffcfefa5edc1461512661317fe9e89b252e8df1d8e43a188b8a2da593e56f8536fc2ddcee1b3085430d7a5de05b7d54c34c1ea20ba03263a415683a1dab5b7872f6878fc8418c25573573d45f4089e0c33f7feaac00e4af701ffdeff333050c7c0d42c26759e11999d806e54d9f5a3ce0f965f880e73d1279cd86c3c239fec15da637611f029f42c6a24be844144f283ec028228dff55c5bda308ba84653178d319ff5939b3a183eec0d40cf072013b279e389306f61231a431b5076e2de577b8d79f6be38d242af16552dc668594ff8ac5d991eeeef791f4f6042e55de65fe21c962d638ae69831e037e5e849c738edf8365b173b14a356e6a128f6c458a9ad78ee633b422655b1623e8b8b4977dbac65fb23f64d42c0ffde878f1f27fca361ea7204bcc2c92530385a42e956745e9701eff125b90297b2d0cd064639f58812f76e3827a91f8218ea4fb6c26545a22004aa2fad1fe932d7a755a843ee3e83c3add94a2c9767bbe7840bd65c4b983ec29706f804cd1e5e61e6c3c1c154a67f3e40ded610922119d4ab032a306e6f51e887672b0220a77e200d5f7fb4f1fd6aafbc03cdceb14bbfc2571f41eba21655a92ac12157daa977b28298580c7843f67201ff7278cfc5eaa737de0b800024ca6b36225f52c47c1624ee4a220a9a0225681f7e100f85bd0781a5ba2b755e1c36c4c5fbd5af47a92c07cf7dabc6d70a6753999ff43e48cb3d0259bce120016a4ca1b373af3be4bc4b442d49af6da09849f8883489b462cc800665146d6a29abf24b3d4b30d918420e7fc6f2e007ffdffb10203639c84d8b37b76e7afb09b014751411ec7d21c4b6fa23866750e1dc09fc51b869f06ddb3d82350d7b8771ff2c04c2e8c1749632186223ae99f166d09049170c0a587abf877e89baa1089d72c7562b4d9b2150a340ac97fa9a375292ab4ce37ce7abd7d56d64c8e429a2540847c52ac6416a3ed1fbb9853c5d1797246695e77c0a65418115238b2375df3c543cf19b925bd38f04a6619598ffc26777e5a11c9b0cda229ef04019701bfe467899482085dccd2e65cd3bd1764840442e0eed3364937151d4b47c8d3ed4b08656f47ec83fe4947b9db2d9102e68dbce177cf3c7c7d9b81fc5991a8aa5cfc27074316592565a1bba904a4195cd59fdadab06a0ff264bd8c5a72342477a7e8ce5c9b4d97c1c624b41b8c23a65d64f1f3030fe2c56807c056c93089d0b047dfee24eda72be42836b75f924a4225cc6313067a75dcb03d22095407cab9910bc3ab6e75c75d49beb9189c5f3a35299b655e130f370d9aca56a2c9aa1eca98d8f06129535e48813286af658be8b776757c7618aabff4a6d1c063d69c239c6d86de3507a24d5bc43b1013a5a1c6be92ca2eae67e30d69b17e4831f19cd861cf3138d752a7c5e7755b9180732fdf4260814dfa37be2c6f59d133217c747c402161dd62b0a4190a2456d2d6f4a7b83aab70f7d6489eea85c166b1881d590facaf238667542c09792cd863aeac55a80ad95cb9f625b7238d316edc57cf960bd83811b8ddfe2fece364611962c12516fe0718e9dfb4b66337dcc5b162961f4276151d7e0046593d358bf2e48176d2909fa3ad47fe970a807561729e24b9c793e37601e9487ee28147a1b1320303c8d8c187fb2e21c67601b5bf8fdb2b344be4785dec5872e6ce16dc2765fb1258ae4894ef954d8ae8a7314cf9ba01284ca650ea24c09bab3d75d49be87cfa9601e24c24817f20a65f204cf47acc7f8782e187bb12a9e8f46b78f092f6e0893f904e794b7078b5a3bb504bf6256968c1098931a59502801ee893d0bb1a0c3fbd1f57ba316e9aca130d071d845b5ca62bcede50df69dc5dde28868893e7ddb8863308533cbb075103e1590dd8761e78316ab2b06f37253fb9c924c44461f13036c617755cbc0699dfd4400a39d7dba010db3c765090b79ec2d5bc88e430ff1bd6aa0abc05fee29a4080cb2883234f592ff23d020bb1be983bccd5398f4103b397b8d7034d09279a4c3b4ac026c492bfd292b7c82eb6f5da1cc35a958fe835309c9cd802e8b99262efa66af97a3fa776220893e9b7804a4df249fad44549828ec9d667ddcd15a1869968130d483a46004d826f2b5a1abdf81e69dbb79257ddad12973eeb0368153e8ccc52c4c408b6a8361cee80723072af5c8221e4ae6032c9635156e27724d8e248e160e9ffddef3264a5da1c5e77617cf1637675d5873a059c2e4b81242f477e0611df171e9f77856178451df344c758faf189107ca163e4143ca848d229d5a65e7c75d43f3c199a3263288ecbe23f4bdf4010e16ab6ebe2a8f4995f7ad6e7a38f6de2f61d60e4ae04668c3d8e318d287885f02b920ce024ddefef803fad7b917310ce976dd90b4b6b3c1a2d665d64646fd7d3c22d763f638f6b070dad44792ab98bb1ff11b5c068967adaf9e51ec7dd27713b5da3e95b2c7564607c9c33b1511380192c7c0731cddead97dcc4ed1f184345bd4aebe64e24c570bac32f0340c549f51fe8a6ca533026167eb4ec6cb150bd5ea43f0c143ecddc5a3d7276e091aefd14c5c76bda75199c2f71c49ff6baa4d2f5b7cc6ebd203aa3cea865e90435813f65fc70ca95582549a18c284c668d05797320f77da57b4277d0028a7b40317ddda85bb91208f108d7d894fb952a3c6e7534eb75dc0cba736927e916d3c9e65a87d468912a5dbf1077b40c34f0f3f19786e0a7ee67a3fc54c45f13f34f7244fb8f8bdd2f6905ab7012e75a10eed12d0ccc9315aecc7da2cd0e6af7bde470d33fc171435af65b49202c97f429f6b44f16f6648d4fe4959ffa6e69f1692e9b547d1f6c7950cb3d7a512b3e981f086d30908d02422b41520da65fe0c2e919a380fa04278675fda2deed2617fe6a4354ec988785439703d6369604dab96c3ee57211b7311d4b39141f04fa8a8f943ed78f3a060eaad8cc0f3e2e36347c90bbceea0693144941d344ce322c4bc69f27745a9bb924d05ea884fd4601cdbae1a16f531a18a00508456d4c352230d5d2cc421061549635598abbada786749cba4111476f3ed5131f7644ac3d78842246f7d3182d97012cb6bd8a23ad971658e0b7f98d7e6a01080125966ac2e576084403bb17e3f4860cf51862b35107094a3c5b1b385ca48c549372fd82ad7b4642971dba010411908f8e5c7bb65886fa6c04a24dcf3c8721ef22d4579f256dda790474192f212ab7f8117dd36bd0a5d4bd55816df8f3f744227dfc71a3ad78c57bec21b239192071056d64595095ca3f6c65cacecde82d53b99883036134a16cc32c74d5f48d1a5269410b22532c50d37153279cf564483e5c067c7a2d5de5a3bc1a0eb000dafcaa06137c2c609cb7211aefad0477d4974ddaf184d1ac1308acfc3e7dae29b054c3fb38de97afdb2d05cf91b4ff37748979af7da11ffc8b31db6faf6c19d93049deedf2f55776f75be68bc90b4e2167619a268448cbba257efc45f28a608eca462a7bb0de27bac2c25ddae94e88dce62b07773bb7285a014166d716964c80ce201a83861529366964c4aa7cd33aa920ded5aa7db7a3393f0c20386a9ce9a3d026731aa113f9a89864d06bc0486b63ca99f7cac36d7bfeb7b394c9823f99e966821db8c1f0b1771f78e927c27a1ba14436d8ef056dabba7f0fc9159da41cfd62e6b520eabcaba2bbd3dbf7e86222e8b7c7c1fd2414166bfe9485ecf0097930d8050ffecfcc688d96c6d32cfaa8d94b5f64d7d712af51e768f760e60fabc6397408e1687eb9137f83b6415dac19bc34b38f49fc2a4dcf68edb8feb9ce3d10fdf82e31f3dbf83317c8b468662f6ffdc084c09900683150f54cf9325c281247f54c6be292b4d385bd6a302afa6d4d15efc8fff76b0658ef23e6d18d7a936b41b644e7440799c1eb9ebded81695dd0be3602854fa341001465bd647d2facc8009d625ce7fa2d3feb8919f0ee8e4e5df665df142e760e22f99356fb120d6c0bef5eff2dbda42c77dfb840392970d98ee01640752cf848eb146470f63a79c33b89b4fb98d166aaa438503385a9d068118ef29c1dd589608fd97bc63d053b4094ed3659a726a02506c13f42745fc6f85f90967b746b3873eb8f94b078287d8e77d729b9f72a1b00684e615ff3f6f0899d7f248664b55b3ec7fe26d9d21c12b2fbaec4d6e2fcc2b03f0ef39e10f45b4a2c2a6b91b9263e2a3c091112cb2c1113e93e678fe232a7c0ea57ef41059a7edc8e97b0223f7310b4667d4c2c2775b6cc39a2a9a36b897ecc463033802b5e5f3f6c364027d32a0476c0066b673cd694d57ef509210b20bb0b331c63bc915f3d8936f0d81336e7b65daa9e53ca15709a39bc9f4fadaed11f2ba56758a8e40a033751e231ea3a10dd901857c3cab5ee97923a6fdeb83ef00a1b81dc8b4717bc5f40e0712d24624727a9e24a90b71c8de6ab833c626a1216a1727065655ff57717c3c676593b5b2b34f7edf9c980e45968a8fd9d7d81333b0c65363990592f0252f3f812b3ee0021764dd6f71e125cd91b2530818f15ebe9dcaaa75e51da27c5031c9fbfd7765b29abb04f8008c2ae78dec211aa33c2e0321ab0c0d97bb1f7058729a9a91789254660501ac0773be25a0a4fd085f891026e43512d7f660b2031b931dc2eec98d5f6f0155a5cc892388b5972de7e2ca86bcdf4ae51c901c22db3488d9e5dc1dfe49055af84a71fe2eae2463a67bc05b9e1b242b9dc14074e9a2b349f4b065fe5e0941ea48019a317b6aea3544aa61981802bcc48d2c4f04982909d1af7a33584f59b35c1010b16f69e6823295bb4fc02190d4998ffdd324dae09dc06e42ede4b30c17c746d8f297022c0a358420a52c89be5f7493ce0b6d6f2cd21f89c7f9d4f48663fd9b897f9af58283ecd9e52d5250aaa82c84f441bdec76c47662ec34faf87cd329dc5728ae06d245760f53b7efc07f05d8ec50088fa77b52ec79bb907566e875172cf060c355e0579fedd0b3ed274ac0e12e126d0be7a5ea965934d8b660ddd3df6635d33c7fec3c57aa37518b973884b10bd0d64886fadcf6bcc73fcbdc86e4f78a066557bb5b7ba4e68737946b2260ab65931c324c9d3e227631b06595c2cf9f85fd0672dcf4748358ce0300a14d90dea242796a5dc0cfce5ac1ccb2164325ce510294951ea052518ad37659b9411d9bbe8a5500d235ade93a4c3231f996aaaca429390c4902b678955bd480782bfcc83e91108f9cf37faea37f4f79201275663658a272a9547959b1a4577eb517487d8d7bebaa73a9c64672239d1dd836cd2549ad1ad28997231b7962fd35e9db58cbdda24c1c0cfe891bcc114145d029a561c527ffe8a7be72fa7d724c91d6d7cb97e89bf36bbb5f14d4db00ff5d2e506a6ada923cb90f5764307546d49774d6e15d39c1dedf98b418171968de4a6a6045f7334a859939b0d1560851e10072452ed02247c3a4863a21e54595168d7824ba1a880e9809795a48a9fd9bac26b4abd5240a12ae50d5e6198c00fbf5adc4168096ef600230fb98ce94b8dc13541f93a3de7be3ba94f0877423c1914630dec194d724b87eecc09e95c7004ba1f8e76b0b62d72af52b6c79328aa699326f47ae6572679e369ee1303d40d5ebd3ca2247da7201bebddc73da24c735a7bab614f3410e7cfa964fed5ea385895b95576257b9c9d4f8a0ba3931020c673ae7877a807976c2f3830203f29163adcfbd491b3d80a32397adaab3b1c8897ca8b72ca960e003d854ebd853fd39102160350b7b74d9a3766056940ad580511f02a41ef0d98cdc413bf34bf88cad70b0cb907054dedcb1f5d89a9ee2fdf16f5a10101212abfde828a80992b7ab5b0787be6b8387745ca2b55351ea698993f114b369e090ae2c56313eb00ae2c555d28cff64bbdca32a87559a4d46159d86c0bba57af667e2422f3e76158dd671cb2391427dbde6c585be8e5d2afc36b31d48a38034846c70a77951a3faccbf18d990929a44ba13f1ad728e949dd88af499755c183089e025d520211918918b9c2073bba9d6df204d1e9ded89e9fe95974eadc2e8dc82057cb8eaa7ef9b4448b5962cb8f44e20191ee423ee5905c4cba916aa002fb8b1c8bd4b5c0da58a0a55853d6826bd461939be1c2814e8a79fa6ccf6e5b16939cfa37ccb0b8b3300429a4bcc616c726fbc1c121005cfd97b08d0de983c1af5e3f3982da30da368e68d42262d4a732ae0aabde91c33b443c180803aa500dcfee46ab3346f115e504728a13b049cb1b612d6be7fbc777e6f9c54e0d443a36cad9a868b0d040120ef0b27c0d60f96d034a42100e4e7ab74ed8bd60163ec364b4d62c1617922d2d8d8d03178f9f7cc7132a908c0e246348d5dc79c28b12c4b5e9d7cac427cc8629f37b4862f3b2899087db47bb7d54bcd5ef2abb259180efa8954262650acc4b745f1753c38c2d643e2efdfb61b64941420f22f0da747b00c8d80e53d011d0cc8574ec6129ca1c85c238a1b17f39a003f86f31205d3958e8760478bdcfd410a08a8335e18006b4e4a2ca68f02baa07f7dfd3ecfe340838d2eb3ed2bfc929bd82a2c9b3d86c73ddbee8f470033f6374665c6503bc9238017cbdd242c0450fe5544346c9319b87f0af9b13167c53ba0361e83fa86a5bc1a9a886351d3bb6134882b9d36a414b1321da4cd7298bd16d2d883279cce06aa4ea1c8a73654415a5e606462f3b2e8756611b32952ba2073f8a19460ba7352091a94943e5c6a067baf5f809a2fdfbffe1abdd3503dc69171d10ca9aebccece8c2ffec409c1214e44c403a937a74b9add42a61a9f26fcdac6704400f02c26dca160b55b23614a90690d0f51c22c51d1489a019f18b6c689a84460e42bce4c19e24661dfd3542fbe832304e6522524f8d0c750c17f38c4567b03017b3fb0130d9bc711348882fadfce76e2fb2fb5b4cdf7df1dda15a6566bd685ad32aaa2eed6490bb6452ebf068608a5f0da6eb04f0a47ba3bc178576a0e19a1458707f1bd540bef75b126ee58c001ae1ce0ce99319eeb55cc6045dbf69321b0cac7f030a8abea6a1b3d7d389836675604e5c363409d3b4d548c3784f09759c123eed305ff749c59a2b31e453a6c5a298098814c1a57c5cbbab7b386b5c7086c738820d02c32e8037c3ceb87a563bc8c2fd50b9de9f02e8f63d742faacb85f85f550c90183dde4e82ecc04142fc7b350cbee9e4aa8162e5be9175e487af475df21a5ff962126ea336e786b4285dbcb394deccb93e2fcdbd4cbc63b8799fa21af60c7c9a887a571e1ba026fa0f4ed9be5444071fc56934000b7be51545ae4dabddd5ca5d484d998ad65c9cbc44f7f336cb06722fea05c891638d87246327e967e6d149c6a89666eae829ab7740f7f3c17ab52b1f6fe13377f9e5c5bbd02c3d2dc92d2ce3675271398e1cb583498b87629531473f6aecc7b7332832eeef2e3f8d8c4dd976263561528eb51b5e1cb4146c73dff76a0417a40cfbf84990cb2fe6f8ab954fee25b782098c9a27262ffa712b72159f161ad9ec499fde313030c8c6f43c0061b3b546233fcb29af5f17598db05bbb209f78672665712e82ab0eb3341afdebf5b766a400f7ff1bfc1ac4f55278aa51bc60481a00c0503a8086738a5621292fc9b27ef44de8f6df300617ef567e0f37f2de7bc48916d98046dbcb98bb8081ea277b94c9c8e3493cb40594bba06f7c210048133c43ed2bc70f0d1fb0e2934511677d28d998311967807b4498ae7c2d161b0b9e1c3ba8337bc7f9bc23e7cbf1a463abd1cdb77e6daad7f11507fb8beb5f486fa83965cc4036f15badf36493d6297f2701cc767c66f472005f1f1a8f6dcad41744a9bdd255fec816c8d976cc0f6edc536aa1629c9b953fdf0881b07c7144cbef51044397c771f8927826fc0979fd22f122c4eb0d961addaec6106915567d1d13329cbc9c493cba8d0421a330fc37121cfd124d45d6a17cf344efcf6bbd465147296953d5d586979a825c9c5c98c11dd89cc91e03f440ec412224b874723b633a4d76b42ae9da2e355ea9646e575fef9af4b600d754333725793860282ec511f1ed843203f7b2192970d2b0b7801dd52899080dd1e05f7130515a24075b88c29116673333fd2e8086ce66101e825e73af3a37ed9b46f85dec834e198e69d2849568cfb3c01c563f4f2b2a90ae05b405346dca1ebda672e1da7b448baf4a627b690e452c5d4a2d7ef267a29a484c37ee5245bd96c597ffa2974a216cd6e777ee8c62018b632ab0bc4e0c9acc9c3314bc2a48f31d0c1cd8dba21947c5c9525290d95b4deb81114635538357f88227f43e64fe71da1af299b6fff197ff92c651b66a3633c96f33592d96617c5d933f60f16eb42f593084657c93896d4f63c12b465193bc3efeeb8a576fe24b65b2df49d027a07e5a52d48555998ccd4490df8720ab8948cc2b99b529c12ffdf6596a7f49b2cb87b6efa10d86579de7572dc189c84d20dff799eba56cd9dc3550f80e518070166219ea5fdbaefaee03b55ccb4014deb9b4db8795441e8f55e19839419e8a27d0b7884c97e275ebd9bd603c9853bbf5761ba9988340fecd1dffee3dea72d253dc1ebd3ac1b083307a5d68a5697ad0a1ad51f9726d327042405094d849860f27bce065a3aba09fcd470785ee67725c3afd7c8e2ee0d93db9660d04c59a1c9b8b788bc6fe2040e08aee50a5edfe323225f53298cb1177f6c57621ceb702bf362b82deab51a55704fc300488c4c93ed9417d9065211ece4c3fb87ebdb0f9a1515b2b0474e7a92af11b6ca6c87f86c21b2479984ba40d8ea2feab6e1a0455558089b3e81c412a0e4e60705464cd951aa535755942a8982a28d7e21ef47c774438de771730d00aed62eb5f87488af2bdbc5b68d85aa855c6f161d3251e20ce25465dae9095f5087599c6fcfa9bc68645b8b53f2c0bb380c6741c49419a88df3c407988e61c2b97d91ea614e9c2519e8b2b583cc31f0b2987436ead0025ae3d9345b4a1efdd7eefc564a01af4a15a83e83420f9c1ba9f41b99de3397065ba503eae280f6c113fe753caa67761bd63b71563700fe90d620ab95fd47bccb80915c6656ad8020205d06c20a23acbaf9fdd6c5ac9b89a21d97e629a75c4eba0c4ffd448a72d9ef1fb55738dd9018d02774dc324ed2ecf387671baeb400d18f46634c01c829568ea294121f7fa6cc40a5fd3c2bafcb9d76d0a7510f3f49d1afc393cd2e01a2a89afd49687a930b19bc671a339e076809b47211e5f0b786dd42a9bd5e0474d0343274b0ef1da8f24a758c0e69f8478726dd6ed6d033a27d0fad645fd0b95ab3ac56a5e631cc8e8ace4734fa9e646542ef8432f6e5675f760d463c320d8405fb1af5e88274c0a9950c86e2e8787941fede1938e3fa1e6a53d80cd1160835cb43875f96c0e26e387caefd65f2fb5d9d2670036073d0824650dabb94adfc663cf8a2788d65b1c8256f1ef3ba4cc1bb82f3a1d696c688ef8d926d0141636dd747c9baa4ae5ea66b3065c31f3d7d7bf436a42c162087337cd15dc6bd43db3f8af8ad397df9c172af6628255097de826d5edb0d2ba73d086d5562ba352fa6869c46774f8ce2cbdc200dbd897917d990135afe0e55a004939604d7c76e0fb7a486716e9baf02f044ba22f417ab64b6ba400bce77056689f207824422f16b5f485dc89db1066bead0e4ea1b6bfb8fbb55e1b69016f496d750bc97f05e2e1cd9e40616c4eec78ef837099e39ad683e0e9b8903ec380094a29b57da6e9ca58399fa1949779a23120c364461ec7c4b365fd35a47ef101608551db093b8aec6e19e61d4df15e833e53342b1fa5337a060ce1412c03d4093cd314d7934d61990a22119fa85fc378239ee377447b0b2bd45a0d43506083e69e6fd4e5ddb39fe4384547403d314beb87aa8dc00912380cc171dca670df1145d833a932076aba2c4d6ca302a6cb1ded4993054db32405a6625ef0ee8f10bf5d3a6a29a21598e5a35a68af94dc44adfafcfdb66d3ca5f3d2b782d0847a1ae5c1f220c6479e1ed321d5dc69b7b8cb40724eb652eea24aa282ff3ca1b0d2e056a554dc3c541253a32b2ed71daf6a56589047a5ff6cbeeb292ee9d8bd5c47d60bc96ca28633cd2c3b6b595a7870dccce3b6a28bc729e322b475b4a1df326b6c3f8b631783ffe560b0a31913c410c855a02241829aba324e3f94b81e13d27255673a29d6451bf6e308f0f2e9596459aabd601f9335ec298e7303a7c533612f1f7e5eea615d328256e90a2df20cc05932db2445d5be3db47983aec94b62a729072d21b54ca7fd76b3c395a4112f355724875374a0a0a95db1e447e21026926cfb1c764584ce23e6bf8c8256ed8222361c2a95600d0483d46f5a610aac0ddcd49deb04ae6aa5892599db75312931cb2780f5fe299e91df021bbee58397ef0644358b3cc6013fb4427931005f9f0bfaddd88f694d62bf962ba278dccdb26c6e55962bb0376724593a72d240ca5a0dd49ac29f806faec0559309a55776c739ce7d80656fe7015eccbbeeea4ea30162aa0120aaed17937ebd4f39be10e6ea86745085959792693a63fe52ac9954ca5b00ee0ed6829fb8100a2b11058bc32e9f6f3d463564be467e4f4f174eaf85f382fd3a9859c614271485170f9d8d442dbe3c245786c07c9fe2380d1f55ef8338469332bc89a3b979cc42e513ffcdd50bd8da36e1d9ffceab081edfbc41a0b4d72f79f8e7ab5b88a5fd68a560921b1ec645c7e6a2c4a3026531f42fe61c0fe1b0b7c91ffb06993a3e6d852a1fc0b38bd1733e2d5dd75a497d77009353135d8f964fd6f8ee02553b5bd15eed459d6ebb355bd873d14c46eacb314af5ce55370380d57deddf6c7aa3998a8413cf80d9a60da1761c227d976c63645f860d52c806111df4c21ee769ceba31f8a3c61133b52fb5098b9a31b35b325a10946c8969e7eb3b6c062f6eb75793ce480197c0c1ec125c4315935149f896af66d8b922d8621eb6d40c2a2516cd5b06f3b8f50e33cdc3bd1bd8f44f52554c17fed3664dd4aa0b69557b801b61ff8b79eb49d81c1dc088bbd1ba9c279900721174c8eed9450a4470ad2c7ae6ffacc7ad2ee3d8f36c2b35a7e9f47c08fb130bda53ba157b040d51e414f3d64743bebc194e04cae605a0fbc73b8272bdccc3b97e77cf47376423fd3ffa7c9b04da6fe330436969fda338f52f3749a188c5639024814cc502312c640845764e7713dc0d62e5a31f8d050ec298d022522bf6b5b74ee0e07134bf224a6d2fca47d4b4b7989c99f9c4d8a98acbc8f35c68cc9e7edea31b8e4084b5c98db49823c873db273bc0527ef6effae9d6e5e71cc02cac6618b469635be8c71a35a7953eca7720b0875e3e2d6500d8701cdb4e236b974d7d4c5f3af6a2640a0e660e65e0542377f97af5edf6797b6bbb726f9b54c362efe53f1a93245a4ae9bf7204c9306003abe53524efeabdfd0f8469beaed3b37f39ddde92f009b562e092b3a0d1d9d0634217a3c21e092f6d73c2d2830403509968fbfacfdcc5a7121905ca799d55812fd1f213da27f08deba226b44d0b27bae6718f356a93274035d9bda2ca2cb100903c24fd9665bc4ea548af085d5510a24ecda0c317eb3604df7b77473ed9b4edd1c0a1097fe48641b87309032848933f84ca3b2f8d5fa006333ab291aa5b7176e9680c75e722c7e0832a25f67b2052fc2839694e02b73ee418ba297a69aa47d25eb527bb947dc0191b2822355cd0f5a284da6b651619ccdcf960ca302e60b9cb07ff1c676dba96e3653962d4f3e4f0a41f35feea784bbcfc2aa5f7d0c1fb918df96a085cba984183ea7103d582b56cfc25a4b1b5d5b62970ad265b75151b5c3a87a73022ca766f75383fa2ea578eac3409a1e5012d000119105dcb08dd4cf426894cb3c9537a0eacdafe09f4efcd557b8252da66598fe83d5ef6b61c0a02622bbb6e81f24587d36a492a9949e0ca1b408da221a10e9271cdc48f4c05906f0d2c0e9bd074e1c4378720dd3742d27950c6afc525710700775ad8c428136b7547874bf2884430b6d230be65fb3c3818df3de8b77a0adc85373df1f49d7f4b3b1fb003bd20703613aed3d2906846b30c57cc4fd7fb3b35c026329c61c11646ed933d27e2986f530e661fb1f6f5775b0d4623e0e34e914c88571036903fd9e0f286d5fd6cdcfc7d18d07dc980d3fd37a89dc5518ee1459a4e37697507fadb786011207de4400b3285237fdf4b1d6002a6c789548030f6f58cb203b39071feccc01e4bf34e8833bbe04d25ec1c44c4d2bd46218d29c72b9f29161a3ab79bc203d573b0a24b5823d9afff50acb93bf425d6b7b2292c28fa335440eba82854f88269c915f4ed0c5ae7b878c51c92a283318366c56abf2bb71c81e5aad116168f55573d6da6de7620c81a0d460c5ceb2a2e85b1d252acc01acab85a20271461765d07006025fe98a4af232b4e1e656f855a23c8c1bdee4c51b4548e9129c94dd30e466d81caa19bcef7f6855c6be40f7f26fe0ca59168cbb48298f48571e95b6127800caf6d19a12bbcbca89ffc05916251692561120f4a115e42b81b54182d61569819805aa4982d4260e91480dd69ee04e34f1edecbc225f4089313d1c286369580b928df35034cba2c5ab339ac0dc80dba51adbf6c4b7fa89dcd036949b4d79be9d6f151e49b47da327ec608b27428cc11f7432d007cf467c2ce315170d17b37fc2cbd5fbabf1dd07cb119c336288c1afe003675668c2b154340d6abd5e6e8bf9f526baf5a138e437a3c23d01ccfa5afca617f80ac5e3973a198d987112b1fde61e4db57b5af58e4f0e874e9ee173afc1bfa1cad5d8b3c9c22c705c7f32b1056736a4f578ccfdc3400f8e1b5907835abc9cedc66095e294e10ba1e795a9f43ac37b5a49be56297949bae9121431a92b49af5a106103b5691487e72dbe0a2235f705abac64c80e052492898851a3e9decaf53eca99514c481916671bc04a823ebad54f20171dab14134fc3a878e079544fb5d406fcb997bcd3c0aec06f6bbb037d9a8bf7245b3793ab80037553807c7f2e01a1f1b1c505c0ff0fd022e26db450f1606c8cb3f21f9ea72df2ff25a599cddec47b7eec0b9d0eecd4d63d8d6c6eb2e453f65453d0a712f7d9a2e2b88037e31de6d1c837bd3aba1144f9766a3223ecaec7ced974287bb3bcf1d6480571bd3c8be9ffca8beee6577597b8b20f825a6de25ffde83f2530f1d51e1aa0c0d46bb09b6a62038d9553e6a6045710e1946164600c424155aa8c4af2419168a004f71cb044821f825d2673f3cabe80cbede7a589acf348358ded34ecc8dbcc0405a2d575ea6598e5e393897f0d39c693b7a168351dd0d10653ecdbbff5744007e9f5ba3148f8a2fafd5ef7f275ae21fbfd8ae8b730c8a25e76fb21254a10ef732a0a8dd55d5a9391f56240f523239f9710a87d5a818730c992322c1e87f7a3bf3d8590c1016f8f3a8a1a04a852589ca6d3f8679fefc15ed4276a135b7a2d9397f55462d1f3338ed554aed54e699927e9caf3856c3391de3e4f7e12ff1c28106a15ac0d81e155f12477de16df04eba7d17b7efe9549d8a6d6174ec0c67f6050a134e154f59114dd1609948d3f5106f6a4e24d4ce043d8680a25320b5a44b39a572550ece57fccd692abeceff37037bd73883204c641667d5768919b68f9a036348c779aa6ea0cf555b10b5b47a9ce037986ba4bb4c2705cf019ced511504c0dbbb111cca4738f964335389fb5b6dec71c81c1620596a91969effad82fef98ae8ef8b03b00306079512f8ed3e5227d7ca7fea6bc3b86b580eeb249b5c939fcfdd161340c4df86a6a866dc4a7ada9252d718ad645a233e7e7ff8e521a08617104ce718468c82fa09f5613de062a4ebb647a1152ed9b2009dbf1810c94635caf70c00c9b77360210f602fceac94930d9ecebecb7b6e8a949874333d53d49f479b41b45336b3effc80290977702769fcccaa359de7a9379350c690651ce968380e7afe34e4c790c3f928abc7d99a464c30c8bd6bc3e4444f0c0a32dd18623156352dd2ee1aba709365f23307810ce0a534143ac4e40531b2b8e68652a923a293b34b7a7ce4e1f4ae8017c96d73dd0a01a9f58cfbc390823ac4febe7b23f20b865a79d24f40a51246d4987a8e67b177a40a11a8ea7a84072373e5429327234943bf47a956cca520f99fe947622cb1a5a2b05a8bb28c934e6468618f7b299d6dabd5d4e2cbbb48b826bb3352ec6fc352878f53b00f16c93c64b126b479d0a082388c0b3dfea2e2581bce9ead865cfa0f792f5da6eeb02c04f8e505f202d232a83801d1ea452c5f9e040299454a7b6c6b3c3f53e2657d8d49b9ebd0137940b8d4a319ba4f67956cab5b256e71126372349cbb459b15956f7c8c56b0db38b94f9d2b0b55ff19db41926f569f59ed66693e12139df186d49ba9087759f639735788dd8a4bfd519efb69d5d609005962ce75a7f63572043102521a30e8ff58db342c3af9b6ce3f3e56c4be38bd2be536edf6dff7d3df00f819a38adbceb5285ab69d9ca6aaf3ea7c088907262e45087c7172b6d8575b327c97d3677b19ff5f0f7756c2804349c5c58a120f0c9706a3151e4aa734b466aaafe611174732f602b67e8ab4d591877663a0bf38575ddccb50eb52803c5866850136cecf7332b9adccddd9071070dab8dfbfca4f8d57219163b6337e6bb9d426dab8a73a9c2e7290cbe65bd9f0e331621822e9d132a7a456a11920f5db97e5fdd2a90927dbc5a13583bde90578f09030278a06d6f470ead9dedc226459eb7898987c8d499b5904835c1947396588b4b162ac5601a9e75cda46d72b0637162f4a8ddc4b18591f24f41bd1a3709faa773e1b1d42cc14b2203ff2030fd079d8439a8620a3cafca31e2be746de1d74e49816654b59242e74c57209da2c76ab98eea7fb61eff8c42986aa9bb240b0e2836af3e23c9357abb883669b4efaf0b34fc22238676112143a82eaf241332bb1a18a182a48da3a106e71126d7e7d1297b0b14d5469786e03a7544a0fb6c085d5ebdc5b11de8896c30377b0322720ac817225a981f6d024083c7cb5afa966b913eb36475ec277ba619d80a3cf08b48a655c35a1d411ba0cb1951a0bd4311966e69ed2f59096e42c6d9fb8efdd6f3808db07303382c952f540a6bf2c39aabc315f2297cc9880880b737c1e405b51c871fd4e3dab9205297f0f9b1088bc6b770fce7802b3a7b97d612f09c7e4211e297353997a74a93742d1fbfa7573781c95526da5b8203fcf3f86b4c1e5d350c4ad5649e887ca71939d7e3bfd9e17d08b285822e184edd4e316b549733e302fe0f5c407051761e530b9e91a142e699ddde6667f5b2f97d3eb17394188be828a1620281b6c73bb068b7c22d023424d4c9ef154cf298116c0f6f18df97fa3dd144d63451d8bb1b9abd6726c8bd972a8be2ae316bbba485818c193127b4d9eed20f22d364ea5c54cc8ab2c161a587d9adeeb8dfeae7bdaa0bd5ace481f2fcd40114b8a7161448ed23309b765901bd45f73b878ae47e775d17d8697aecb09c0c10fb58674071b2104a29da632cfe78d65b8ab66b6e02e2d8ff9d8bc3faa24e41b915284c92becd9c58a5a399ada18cea9baa321b51e31092dffb6cd48949380c72a5a810c6f85d4b58f5af10b3def1eba0cea10ee8a19dd23078acda56101368472d1521333de50f6041941d8753720326ed084979e49220df5932fe77e90e4b7772c78e5428ea72dca8da4002bcc79a4328647251651eea4607ba76f5dd40e38d529500d3da283c50baa3e8e1e43200f640c6586b05f223145784dee60e813634521bec1bc2144aae0aac90d38b3c05bfec2a10119e27a304a56e04d96d465d2cfc3d900a64945e8dd07c4b403fabfddad48a14c3b09a8d44f183068cdea4e38a94c92345c806cfa9acaa00bb2d4e8aec4fe9453cf0f5402cffb622435c10767ed43f1feaf5368ca3411766b7e5523de8c060648adc910ce75c6e1fa95bfa189ac5ecae9a36161cdb37718abf43b7a83336bac73903cfc916f7dc79641d9ce71e879c9bd8e012a1010becf2af3f7219eade84da88f862993dba8109392a04a9e877257ae3adbe4f4dde8941e4c186c4d8747a8208fe65578a388eb750b2d9335d1be0e260804fa1b7fb1223df88e06dc0a080475732a4145c4aea242614a13fcd08cbabe3d91662f4f3a447569e52e29ab29b59cc7e6a3a66dcfb145307b773850cb7b518fa366049ff69fbc2652545356733637c793633bef3c186c19a23059e1edcc8d5cec5dff26f86c1f837de3ae32ae7c1890e3ef853e0e9c57ae516d97d53e4a92577f301263c166874dbf1c78aa2839d39137cd1393cff3a8493b284e148c61333c00844e59334100c030c7d840a53240427ffd426ed991a0723dcdc953d9c8e0c89c7f8abb0f0470ce85e9b8dea79b987c54715a5f2fb9cf331f8afd2b1f8f2ccb19ea3fcecf31f164a7b68f701cefb9cdf7cc4102d4cad70091d423aa842a363e83d320ac4cb44902282a87e10410c3132869417afc854226876ee3e1bf0e9b5fac02cbf35afc849b7442234e0fa1a7015bfb318943033e76b0bdb40f33fce1e72425aba5b4b896a1132cc04dd1bc30d9c9dd27d72d421cd0646cfe84c8409cf34bcc3985145950a42bec82676209451952f43a3efef89d9bc562f5a0085c8f2dbe3decfc1ddd1697a97e457a323195d20e0f958072b97feae75489fe6c7ef363f98ff513460f11a583cf6479e6701ce4b5e8ff950eb550de45a2d9b13838455761ee6af8d34e6c299f80f64889669236fb7194cad28d5b9a5ea27d5978e1ff55cbb6488eb5ca744207b69066e504020a0fc75558a8afd8ab903d029d7955595dbc11fc1d1f9819cc7c883b51adaa22bbe71f3214d4d5d471febed73de40747b4fcf38a510be0fe0ccd8a63fc12abc7881e439ea9136485988554b5c7f43ce025ebe47aa8b98127318b21b7eac02f3c5fbda447d63e54a27781800fe3b9b4e0821ab49a66f34eb5b09f1c35e784d62faa4e0a439803b3719b45451762af00b1d31cf247326d4b8b71ec2f71ee124f6f1f002f0a87164a92fac70641170018c991929b54b039e8612582b266cb57ea82a9a58467bfea1586195c54bc3762a7875b6b778f415291b595f9fff7cedc1b0e259f222650284729373ab6e0228c3969b001e72a19a043c13bd42d0291b1566400ac336a5269a5bdd44dca908362afd477a927724bb85daa5ea0f200740d83da4c95710ccfa9948dc08e11996c907d9e8aa61b8523be208ee29c36ceecdafd64cab10abddfafefef07e4b8f94eca64a416d1aec02fbb52ef75b7f59d06d39e08d9245a144a616545ee0282bbe521c0cacce976f6e9011edfa6915f808ee87d0af2865a7c319935b910156e698d5f36e54ccd9ee0199e9e76a5cc8d4ccfde1a2fdfb65496edada19f4fd8c2578b989a041bff03439d090e7cc5b200c01bc7cecdcf2b7879b9477174cc5cd736158003e613530faedea99680624c6be8a0f6627c0ba56122bf9ed8e1c6eea26f2571f536396e79805045790e37c625e5e0826a3fffeb0204925a3a75e363b6031bb7ebab98e0329f33383e970aab114038002ecc157603a0baf6072b94e27090ec5c5a2352c3a40fcc27211c9d089c1dc9ff11102a752dfb19b472db114eded42a28ac47dcbaaef5bf6e2bee8a9ca554e8cdd132119005d0c97797350bb8e4c5f84ba58fa7ff9329b7eaa9be597a6cb3fd6787480f0a8125159dba0d7a3b503cc97ce1c90ff8fd1493e3bf8bd5e26ae5e06b4056f89191cb768988c90b26c288cc9dd9d4fd219ee5913afb2f7fbda3465ae4a0985d522930025ad8deeb04b3023946206a6873195df2b1fd08c6bb3f5b6c360f7f1a80b5c1f3f45bc297c7d8d67a4366967fdea32f621cfb83cc3f0eaa7a707ca0bfe472210db734468d6e8f18da9c987e96ba264ee22af1083571a6d73fb0bc0cf826dfa6cdd0273e76f1cc3bd0f0d2e45dcedc5e35f072d12360f1c66f6d7a435d81182930bd4ef6c7d0d1cb8781afabef7ccc8aee82d76bb5100d40a8cbab4461447d96967486d692b388746db12f1c0aefdc372efadcd58703fe114ecf5af44a46dac866eaebd188cfca3e9d5e4bcfd78bcc82790e1f6dd6e364db9518a44a486a63c6f18049674210f2e19822d1460a7dc05ce4dcafbab3d90b88448deb446e03dc602618913e34b81f7be9f509bc60b7d0b35f0d3da57abc26fcad668055601c715c9d99d0cc54f72e7880f1746d8383c74c3bc76a2933736b28bc6d0568a21f2eb3fcb9eb4e63febac9b86f5e1bdc806354df3e46c63f1469e8289ae61b661cd071156db6aa9ed2c2b493c3f1780be5875778ad4bbffef6d755ad0baf7a05f67c23931eb1354114da3a38b9fcea02eae8187a423f4f87c7f2f7d398c5bc1b1a46af552f77052625c2139777631eaab8e539fdaef1dfe53b24a90e75e829d7b3f3121074567507e0c5e315fbbfc8eef75320bdb151ae8bc98387ed3cd2fb6e060a668e1c53b99f36c0fd16d1d9a37f92eac274f792f44f13f2fc3e9e82664c3f5d75c19a650c8fadbd1aee83d018aa9b39680dbfcd09a2fc540f35111393fba95ae64f3304225c5315c26f9f69984c7b1fe252f674ed0c4003223d2a73b3978c54af28af7108f6e56a5c33fc4a35e7d60a81c7616820895432a6a5cd9638bf6b2b76e51b8dcb42173267431c5e73efb64d4142e6aa2b6c5d2a7ce79871f170c9e4e4355b3e54891e730f5c25edc0dd255a07ee78990f1e5fa47cb1adeb80b33f143761ec9a93a0a88cff8f340fbd077bc9b0e7db88ed4dba22a0e40067de27b9eee368a35887c9e79cc70c709d789b1124d799c96858edce4e1d5782358f2ac3f975bcc19d4fb277f10cc3b7760d17c5d1e7f231ecec2dcdd3b9cafeef22c98ff8dc21b08ac24df61577ed5485c8a79aa81a7461f9a033da488acf43f277d194462534c3dd4fe57bd40f3bb5a236c67422eb024dae14cd31bbd2d65da2ef084c47066f1c76267a5880401ead207cb8e8b5bb1957abb319d8226f4054f33dbd85fe6b50aa7d9f25cf59a780b9514cfd58ee53b7248285f80a7ec147255a682ef7d91914d6ac75b921688c74c98d71831d6240f82635cc7888763dd037f0f98ca86b848713c9d0a23415376156e1af377ef5452760e62f467467f6f00cf18b41b1ebbe4606d8dcb998d77b2499e32430560febfb45d7889feb02fab67de4906a3f643a66535f769fdf909774a2ac85fdeebc48acc6681d26111aa15244b74bf256f57ad2b244d6835107bb7adb44f8460ff2e18e0338cdf6593fea95c1b17d912da3d062393eb111169de33a263c46e0439aad3def8776bd94e5e9d78180708020bd28b16da48198c79467bef38c943f322d529652e493132566ee5f6997709113714234d78ef3e71972168644de59e064c0cd6a8c2a2fd0f99c68b479fa2005420c88ed80a2998c93947715ca56f0fb4f022f435653ea5691c251294736d35242b3c767e4db208d747ba47331fa7f8c4266ee6ea85435b30382bffbd0dc62ea79ae86b47fa5c3c9a207b1d5aad4ee4bc2fb63590ef7d08fb1798914e8882637d027def933426c6747f7d9a3cec4e5dbeb31dec08792e47721e117f5f44cfc1f1452199eb0228d4f6bbcf3bec4dbd4c88fcc2c46bc37a2a78be6819aebb54b1b5dd0c851cd93ad97ba0f88a8c0f3a3cc4011cb83d2670d386d0ff08f8bc64c0a7d961e89165b3360dee7ae42ffbb1769b0b5489dcac357d86a891c59b8cb410adffcc062321e53e06334c23ef17cd81b183d7abedc982c358d68637e4c7ceada4acbe2e83af6eccb159c0588d6f73652bc911b5295153a66e37c0ee53e84f4a2d18f032892040b7a5568976545f5773464efd2bef81e4f71c0e964e068fc5cfdc42bd03fc6a0c99ab2280d502e266de813b9e7b5f48c2062cd4d84a84971a949967dc59939b90d7c0a80323eade28f567f07d6bb18482e8670846e4c39ba5e5ef51dc78c43399510bcc5b5e71226553c5fd27f8946ca9d817289159d54ae596b7f398a739c385ae50d899fad2e12d75267928c68a471290e503d5722d5929ec696aec7f08d7f4ec04b65ca71b4701f1413123c5bf715b5c42a23bd86ef53424645bf192b85d893a14c839dffd8581dd69d2781c0393e82ac2cad9c3fce65627456dbc1169180e1f55f5ed7c95956a56682f03ff9b99696c080e170e394e39b3f5393d8725e35d84f274ef9461ff0d1a65079b324c934598e8f1cf8ad2bec1ebe00379e4c48aeeee67cfdb4275535295ce76697ed010ae5d81b913fea7d9229a91feb491bdb2b676e20804dbf4bc4542eaf1c1b873490d17afe676ef66d10c6eba01ebd27f175b4ee0e6f368fa05f44fbf0f2552e7c61dd0c471a64ab1c96861d69850bdb0c6ed367a1773f25ac8e0880d1e8b96037d502fe7427b724cdad07ee93679144c6324d4c7f4638a8d487550fea56b91dcde2d1ec89b2d4ddcb1e4348dc740ca368bd3695f188ecff28dab563514366a9ddec9720a65ea044957f13e73af6a46684d01ac8b19a87cfa2e920bafae56cf4cfdb05784163ca7d3306335b4396c940954ac6653d6dd2a923f0a00b927f26685d35b4cc036cf8bbf8f495c2fce2f7a234b6ba7aafaddb7e14ad5e562466fcbc63f6b767d79a56722d483c8c27753973bebb50995ab60f134a466fbe131d3be1962f8a7f6033c32cf921cc26416de646a95e7ecf59fad8317206615663301b8ba793a8edac85954bf16d2c72fe55bfe6d9e3be1a9bdb90553fcd052263dd3dc03bd5e21fa3ee678c0b0f5d93cb9fadfc6fb1a5c90383e5973ecc0e8bd7c80df521c2a2684740f90eb04cc7b8f77fbfe9b8784d1ab794b5b50327efc69b0a4342cfa9b6d344122782e0ebd7e639dd2f97155ddac8b9daf549964209b0db04629457ce3e658431fe96000f145cb0a5f1c93657854767d94fcef8c5a529e733a8a4de12d2a883bf20d323468e85e43fe52f3a505a586ed23a029b4774ddcefed196e401f6b79f8d48a44fb8de4d1af73825a5f8d4b58b0a2cfdb1715c4a3ffe98bfc1eda98ef6d065b9cd714316dbb9807e5ff52f0064b1249916d81935e934a649b66fb53f1068d30e38814f944a279a2a6c36a11b6cd5f9ce83e608ba47a368348dd64c937ba45a41810d8e8a18f9721d1df42f05b146badd64abe56b5ae117c57bc19ec078dad93b2489df063cb76f93fa300b00e5632a37fc62e83753c9e2d9f07940a15975c6b9e554603b637bea7b1e221f56759b863ad7453528f1123d24dc1de91e21ee5067cdd958a62388245d7cb6c98bc1b6caca6d12df69024b1ccd6225c24816644a9d8aca216213ebfa835df238509055fd71241f173a626ce4950b6e32f80fd3ada847dd5229181f2d4e3a65fb0b09a3c52e32c9f41ee4526ef048c9f0ea93e5c06ef5bcf11f94236c90b1493be2d939619880d2a50431936e8270a82e8a2f6cc8e9edb185419c0792b01088a816ce6accbee4d0e9ac60916371462c4f1de9606dfbe61822cc3feda3f379f741db81934d8b4f72154af1b4b1ff37ebac227a40c9b3bdafe5d535e939d52bd0382ad664a6d1fc816af69cae0d6dd4a78477d667272462d6770f03f023d21afa1c0cd3d8ceccb4f64e415ba371dadc3e473a91c66706645798cbca063b978d7cb4cdfc2f27dbdec0529be9069337856845440e71037ff3185d2546d800e9efedf4bfe44aeac2263ff88def77078f919b1317ac6a6b8128397c3c0f8220d8fe69c9a734447742bb2e021e5a74521653226e98ad56dcd94a34afeceb27e0300edcb3b58102be0240284e04401747e18922b593a1b71ce207335d42dcf445c3889164bb275eaf5a0f6f6ab69e6985048a2b91ace4ffb6432c690db33240f9ba08de7e54c78115f37fdd88bd87d3d449782ae2356ec85d41f5ac841184d3268dabef5a2e311728607bb1de91cbc45c30f9d93870378eff30f948abdec9bdfef0fb07f832c129025191e01452c5613961434067c58bab33d5a8e66af2b371dda6e0d3b7ec3b5017d46cb2f5a476a4a01923ec289cd1a48fe1a4bebc900ec3c8d4ac437b2da688e9a8849a45613daf0a4d2c903880118ff928ebaeaaf73865f0167a826c3acf46c376db8ca95129f38607c88af1cd2979f0c0d84571296e12fda4f133eb76d22ea8c58bb5e22b035244038d66640ef11aeabc9faf5fded7be9d91f6383191f38744d1323d5da4d39c954f506be0e4f18e1136017dbfdfdde3a70448f491ee528ef5cf6fee3303bad4c881b67989098e1f242769b0ce3c0702239e661bfea7b29c704d8e4333cc02fecd1b6521a485cdcb6b1290b18c13664866ea414aed0cf0a47fb16b84d5983d6062751b76550dea08620e02e508ddf332868233755df54e904f7975b2ad1d9fb6f9986948b0c0369987bf2be74c4bcd01474409b9b6a8404dcaa897889d4690d8c5d9b957084c3f7c11088356bf55b067bb08f2dd7918be0c141473d299821e1007d35cdeafb44d3b1349294dce028e7ed8c5b9084ac4db686452f16cb7e8eead7fb1a3683d9e2abebf28f506b8ab1bab5cb53173a63a7dce4d10e6fc141a984ffba53d517efbd0de1a16e74b0318b8eeb30393ea3fd3cbd7ec90ffea1edd831e3a3c615cd4017a54adf4fd1c3d407ef164d6e0338d7c069fd3a212e0975ea1a444eba1d4be07241258ec05394883fa1d61cc0d963e113d6026d4acf3dcff291bdf94fa1e5452851f8502ab581edca796a546177536b96b4c7b26d9aacde9020bfe8a2a221cc5c5db836aae16625d6870e60804f78facada2721f33c6f9acac225316e48d07b4094a2f46a8d4d382d8c53dfbc9b68467fdef927da5c44b32f2c91b4bd273429d943539e5f02eb8066b691906549599e0de0706b7d2ab7a9b153be68e6a96193b2f4438421fe9636ac5f874f194536b526b4396b038439e54213a0dfdfb8ba46f848e8eae35520c195e39bb304eafb37423d2fc7bde697c9b0f708307b78b13b79735e3f46fec93b43ab21d8231d13df913ef7a7defdf62646221560c3695dcd3dfaa6cbd9dc0f332e0c5f2d50090af757083eb347b3bc6b969dbb98f7a77174e00fcfe06d07816b7dc0d40d1ff5d435a9501b64c107ead8a5f62ddb485a052d47e96190bcf415eae669536be29868f5aec889c3916ca77b5ce12d6606b3fd3eea89026d17c2a087c05655fcb2048143476000e9b572c7f56a75c8b29cde2b0f8456ca8702f009fcf468aad9c6f28bc2eb950535e956e9adadd54e4996b66e3874c67648f2cccc24d1094b9b4cb2f628c6b035467a25f3d46ff6cbfb39cdc20228b1ed7ba79a8fb8024c00252aae075cf3c35276400972f054d4076df200e67148ccdf20174b0213372a10431dc0b9fdb1c2b69052d9e4aa8d0843633bcd43b6e99cb62b35dbebae2e18cc726b932139be20ba1a65607009c2732e403bbf728cc699c4c29de210ed2ad50798b07d7f2bcedfdc77096f3c7ee54939614ef8bc10ccea0c842b73211828ae918199b2a78830ece9981e1b7e6c9700f8984f7cc0bf077ab6f5363e4acd6917c00c49e42a2f2828e60a8223e7f0ac3a5415d2ab00c082e60914359282c78fcd6350a630691c1dac49bcdd433f076a63f1d9f7e923ba0c90992241c88efebb35cb8b1a37ed5031d5474a2e87ad1d85ecf4a882150a458570e2b468e15e9a9ddd55f2d12d46e6e9197c318e05aec255c81ac4ca10b425277670e612ed0a23b16984f844167a8d5dfd36c652c9d86e571b3a403fbbdadbad4efb51a8b85f2ecad77a137f821f324d193acf8aa8a88d567a11261ffc3bccf86505be430f63f15579bbe24c30fbe6b55d6123bbe91957b317de470ccde1730ce7309f783e4128a434ae598ad24e965218df1410484312b64b42bbe30f826ac80f4010b0ba2e7e119ff4f1f307f29f109ec472a6de9b486a047c504d36c4ebd570adcaa3717be04d27d833ce2b2695c5f19459c8ca42f059921309f7147c3e04f5e956a0e504b37e617f2546cae252c59d32ce2754a3592559e9ca08ea3ea2bd3a4889a46fca7f3662179cf089bcc156e5fe375864a34f64a7e709eec438df04bf394c7a2c7e3b3f0bc2828aabdcf130def3ba343e833b8b36ac78061a66568c23eef97a48af729d45d6a54f426b35c2383e1e04d7af6643a0c18a6e9466868e917da08289e65414129eefd5049e598c3f355df2b8a1c29e2a89c09322e82a5b48f1ab0dc1c00ce91dfa94e5a9808b9eecea1c5dc93c2060dcf4ad80330df841b2130a15750bffb9ce2c5a3a9fd1b06d5ef01b65a8487e3d20dd18bc25185194fb8c7ce5d4b96a2829db1429a9ba9253fd73fc9fd07cfd7b6e83863c6da2751a4e8ecfd65741023c54141d38507312854afce6fd54f6c5c181bd255f4fbdb461d0cf9cb5367619135abe30c670d7cbd27ad6575d0060661b46514148d3310329aa8a88cf05adb7ad34b5c14d3606218b8668fb3df362152781496bf9ed1c60e864cd9324c585f8e74f5c142bed48e58777728b6a94b7cf84b67d59097ae91eb994766d65fe60256f05319da02f4caa3c3606909b4b21bf94e69f40d1e632d340cc6f3c2ab0d99e0c43791bdb9ef36fdcb0319a1b677964b9871ca8ac6dce71fe077b01735526f20e60f77a7b77d0e49a637221564a892a07ba7c2d0a9e64ba521644f684630d8c7f86639b61611ee71fcac249b3613690366981caeca38f754203cbb51167aa9010fa8ac2bf68df868c245f424ea88e18431bca54c4a4b96755559cb8cfb008e12754630878b42e7cbc10dd19b8b10f76beef3180d93cf86c7dbdc16061baa534c1041c60b3f031fe21703fbf494a2d5908761aba983c92ab0d3f165c29bf8ea0c08029a74f0d0517445774543d69f60ac2fff3bcafc64e5a53027e07319b0b61c3320437d24431a40588d744431bbf1ebbc07376b31cc54187c39357b590754aa6411b94b159e8db9da79682cff700be6694fae442c61cd9fb618a0e878c60931d31575754fb5d525032b07deaccc26e2e70c07148b74156026d8b32f2be84cc04e294e8e77646136ff882921be99c0bfb27e38c1560d4d2c2d3b68b3d04fb6f22a8b0ac03a5d6eeb4545a919e1fb59cab27a1b6bb6c1eefb2fb5c55ccd53d8f7d41f273cf45b86f554f9f86470da34fe54ac434f13634fd9567c54b2d586b9531963ae499cb1c9450aa6fca98738313044bd5eca63371d0ef6d24bb6cc4822b44fcb289f073b3f55c0c5278e238cea4b56dd26095c86937cbb758c19d0d9788c9be41370d214a48720a8872150182a7611d1b55baeeaaa79d643aa87ac63096e8840cf520a12936d5d52326c277704ed07f3997264763c2b4916ee798fd7852c07399fcb77f4d7ecb13a4448e2f98e45391bc348337f733b28c5a884a4f0d59e0cd5f8deb2eec6103d1d5b48a2278f5ac1ee0b7cf8263c5d0463293c9403ac39df61458eeab68fa4c8156f64cd9845311ec48809ca39c629b193b4df6f115c1c5e1fce42f56fddca895dbd9e54fa082fe0f950a9652b433daddc247387a7026b033dab039645f06555ed040bb0daf9aaf2bc2703d54551f1d9b3da02fa7a279d33fcc88a3918ab52bbaef7f9a155387e82cf2ecd2325166b41bf7c512927a7b049f50661a16f2f8baa17bdef1150c19ddb5d0e14774fe9e831a2d4e28d2ea5f491691ec9e9f222827a97935c2062d3ad67b8d4b09e31753ab57044248f896707dc8c80699f4353df3c7dcf048598df11360d7421358dfc17c2137b56789756b4581c358ea40c480363fb7f619ab16453f9f408de74dcedd38f5f1dd22414ce8e84c2ebcd84b0b691b33f7e321a65e9a91058244dd93b6e05e8e0cacc92bbb16a412cb22e9c81026ec4e345616310ae6efa8768d07ac79ac094fe2baaf582c9bc43acf46bae62b26030737ededbdfe96bb4cc63fa3136b88ccf5e01bd695c659f188ad6a6671dcb3e723f407c5cda09073eea68e89ef7f1a88750f7c57ce15385dff04e8a0ebb4c429e37d5a85b8a1073921d8ad62c1079228c7c8a9d040182464b4d871528266debb22f0ad039031632e74ce77ee860d9873ebc969c09d94dd0988d2c9c1c7958dd99729196217ad367eca0f88fff6fd67d68b826641eb247b2c1b1b09e8c462850bdf1720bca2024c4a2069e8aa68a55c99af41132ac2b7f3e845f0560f9dba3eba35cad16c3f97c0b9488a1aae0e4f6a9ee9bad98fe9d62bc3f92487246e551551ed9a4d8b9cc1a268df3a0afc3624e5cf6d859ac704edc31a4e2f066cbbe5aa5b5e81859af24438c37bfe917fdd955d7bb724e716c3275589d2850de2f3966d7cc12746e77c63c58c370e16f3cf8fc0ce2d22cfe75d57abb7ceefb3b861a5069b764a3cf0b40602ab8bdb66424f5e996ece67a3b9c34c9cc400bbaf90c5fd6ba53ecfaacbd4c8451ac59260ededac4b015ffff0be8acc38c3c8da8e5e39fe93b237ad29d309f1e97948e5773bf2d74e0c37f77e9156842c04031560c18187ce17cea06ff6e523099a028536655c2cbbc52d829bfbb1d60c4a345b7f88098bd08944e1d0df727c05711a11f2b2e0d87e1760860872e1e9eb9e01276e3fa4c7fc8240782575586cb0696cdcf225ac63ff6e2f2aa857a1270990f5848aefb2dcb503c05dcfd7014793129f40013d521f7c44f88304eff9f0513a4a69f8743ca54df6117593391744c7bdd6ed93862dee75ea008b43ea8106ac47f9e2bb1ea65f7da5fc0a8893ecf4e3427cec30d9276d2bc2b1c4d43f401bd63dc117d9106b34c42ceaa291e732af726efeab600b595cb0024824bab3305e50a5647b8f5b366f34273d3ba9f2237a60e173f6c6bbdb5719fe0ad76d7ad892ca2780604a68ac79d45845b675a2dcee7b6aa10b54373942099238ade7be8a08e0fed4443fd3d51bce59a4d598eea23a9da3ac2744fcb55a1132e95cf2a272b7e391cdcb2c566b7240ecf0905364a2c5248e7e38796bcfbdcfe4c720decee3307fa4e25b3edec3b2a718783a91b888df1cf07395393c1ad06b30b6b4f3ae31553f6008abeacb355d754c38c677556137f3cae217999e7fbe31b517018b00f5cb0a7b8139e35816f0bd540647bc1ae180857a49e26d6f11bc94f713454827e823cab3b52cf33d042844822fb180c19f6e56ca5379581fa182aabc1e28879b708cc4872f98c07b956a193805df2c15acb74b2d23e154dc56027c041a3bca1bc1b323016084068123b9b00e48cf169df9f34e0062d7a0ba5e7fbfaf679b4d821ae8c258b0e9f6431de7b55132461635639b98b46360adeed596ffdcb452d4b9924898f030a1faaf283f88934a4864e224851fc449229008500344ccaae7b70c920b87cfc6c7bcc88ce86a2cecf27bfcc07737a52aca8547baef9efb857040003b4c8c13bf5bbbaa81cbce2b79d4cd601492d7009c7dff87a6dfaed7e794e9f8cc2bc643dfbd20ab6983d95657ef9ff2a290951628013e95e77ce622b24549d016b9c217d54c5162a6e4cb3897a5e3bd8789733ada4dd5ee8b242365cbbb0088c9e27c90d5fb8c0f3b8ee5f24a40e02fa589d08ddfff98d4b5fe3959b40a16027754d93c575dd564635a69889b076bd66efdee3c303cb51c2240ce37f02411db92eaa67fad9fd47ac84cf374d686a3dc809a0103572d24fd01a7e8399d7294ce293a56469823f9cb81951c2f997c8d5542d46410b3fa4cde17767e480b762d8187a5df8a14d99750535598bdb13fe952381d74a9ef556a3ea1ab76ef22072421054919db3b21c3eae7522f9d2bb845e94a4663b01c6c1f32266d58caa7db3853b2f48f0a3b76c6cc9f300eada94a112397df437d339eff4af43653daf4fc777cd495ef4ee34608d73b72ffab758996e00cf14264b40855a6b8e29231f27b29b861b846e5044bb4807b231e0230e95d4d71ef6f99714d7beddf8abd034a3049aaf1be874222771d7178676f12d9eab379e346a635132b09d1780bfbc9d6abdadadb409d7d4a20c171aa4fb97dc66866fc732a62dd8ca223346dbbd019b317c765a029e348df04905a55a8b4e76949a27f66025af3db4437b33d2a8c40022f0ec56f1c959662ac4b872e291cadcd99e22b7baf5dbd37cb5f208f4d8a534ca1408306c04a6591efc52e780d5e53cd327446570ac52538b9976d7e54577acf21011cedaa7bc62d1d88ee72cfc6acefa187629ff8185bb464fa5c1fb7b1d3522064cd4a4c5aa7c8a3faad23cb4c081d5201880b3cace2ba58f2789ec44d6453812c765acbf710b204103263dd32860d063a58b306d4eaab611b36e9bd6641afa84bdcdcce84523b8860cf1f6aa2ba1e7a76b1583a59fb3381cc54da144c57c2463b9d1e18b11cc449f208d026b170afb5d540ab746d654b7cbc82c536a1247993e20e3b5afe32614b5bba71537e9c5c40a3943bc556a68d4ac44c0924ca249c20f08e05217eae27f9f166752543e6fa7ab3215e33026c63c7361cb4af22f155e8774dca6b1d16aa5ad45416b96f2f9dc62032edf1f30e5b1628fc276a11282b0367dee3d65a4eb9ddadb27c6f0c561fd137a7bd02364ef9c8b05bb83d26fdb91252107d920e7e6537f2f53414faa3ef7832ba933fe571c961b1d8bbee3061d94060b8ad3df55d378df5e0331004204db2d8995fe4c7bb6f951ce22fd1f8f22027455f6906058734f08df8d0b52858d91744d42c8941f852b19796f2a4b2d63a84d26cbda866effada0d7658cd099ea49cc51845076b9c66f8284785741dba5639c8da124bdec43a92337f68996b48b3cdafd31cbf86a10e2ea6d6d6a11f69a1a2bb7e8b3dc7942595cdafd6823e0245543c14147b03a4c4e285619de3adc85279e0c12665b62a46e0441569780ecbde3de41d7afe31dfdb6466b1642da6058d119866c9cf4a4791c0739bd64f5b73e15ede194163cf2694d0a142c28b45ea0d3a7f0591ec34f862a0b892ca9cd56c06aa4d87bdb83115c246768c0f4ba7beb76d0dfcafc86c85fc10f46d4bbf98715ba0ebb8271d410d47c2abee02f3e89d3fee922e537dc5f4b3dbf61679eef0ddfc6cff8d40594476107e49ab7a90dc21c7a7bc6a86b2c6f9e47c644e357b87ec2c27e3437a6ec3b961e4d25df3947e8032c7b6f5376c21e6d150ff7b6acbe202cedf0425af5a25c6f38606f6bd49706faf965ecb72f28b74018ebb2ee2b5ffedfc56f8b3f2b576f544c597be42538226954dec7c340bd6251b5c6efe99136932228c3cb05020b762023f016f518e7f294caa165d332ed2666b05772e7b1146ed9fac0c12fcd44ddfb9bede37b9a8116aa7fb08a66cc3bcb1c67f137c6e8174e1837252cee55b59a9fcfde00a897d0d81cc2791872e336d5b8a5c8dc298ae1f6403429ed001194304178e4049297c77ea25df62336bfe4a527a178a2f5cfba1e6e050bc691482eb48952f8e0c8b82d7ddc66c5df5b1015191c9675aaa7109afc808dffd6a41a61a3ff3416400fc86f6fda5aab6d63e44e5a4ac0701df72b599c9964e5d6b3076d456b51917778a811378b8bc41195ceb5f25edc2082e2d5ccd03122abcdded5fa356f5c0b43800c31c4ffe1e892145b2f9f18983e13cb6217b333edc6908ee7366072b0c91078fd6db613f9ce085705f5de6163db950b35a40368e9c29f8f9228bd76349429202485b1bc2b4e94df16baafd06ea18fcbdcf04677ca35a070eda07863df15acf0b0ae509912f376fe120edc4568ad7b576e59158e178d82390381d2ad15152119fd647b8cf55f4bc7f4a2f54e17b892d9781757f55b820eca76cd5d562f06209274692ad6f535a5dd24d8e03dd95c1ba93314d4b9d6e641d5ccd567f4db85b1c72591b185c3bc67d8fadb5f7772baa135482d3d426076f66c6ce1b445c2eca886478d814cc8a6f8f2e4487f7b17904adb6053cf487f013065a51f78c8997125cb7cb494fbfa6dd5b991a43aac6f8dd8b555661aa6a21e2c31a96e953e5d9e69124d7ac265b91fc35fb986995233bb331de22e68995ac1ff2479a06c0e7a6a809d2b6a1126d539cdcba6a68ec5103ffe9563572394edcd7501621c228e06afcde2ed930d46ab85c58e1432e1b5080cac864f5e4f0c8b36b9b61225db1356df8b5d2aba41eaa338a054442bc79d06dc05c3a150bb41a6b4c7de3c6b97727852d78d1b1a8758660124e4e5db96d3129eb775b1050d031672fb19fccde6e0d2d973c67098751c826046ed5ed0dd351f7383772bcda4d3c91528a69569c7e200a2b5be91e0230033b7cf5a1580abbf265908b47558e869ba366716ab5650fe142973114a67b989cc6c17ac29e82676da4e36ad035c31d59784e8c9a42154ce6a4d14822d69584bd92efd6635d60700de5386524c9b0660937776e74c505b79072e786a08a1e465f7790b6b642ccd58c55949932789059ca233daf25656cdb1c615ea8e249f2c591b9200726af5c71cd81684c1a4bec0eddfabdb9a6d55242fcc5d4d0f4b76635bbbaf4a78bf53eb2552b3fee3ed24996d59da6ae693960621d37d420087e375e2f55b2bf2f372b6b83fb8e9e98269b3fc8ba84b29f938619a1c0a1c0c80afe951ad2c04153897e8d8d1442bd743e33617b01f4c0b65d85a93892e3e1935e695946f95ce85d5e2c0a43c67f59c63a8ba3870353a87d2b268c972710a06e603e3e2b364663e74405b72f3bb6ad53e566e56be0b8260b6b2d94cf11c403baf13cb0e982a278d91a9ad7b7288dc51cc94577bee8716262bd611fca70b0a369b18f0370aa0df247c59500919cd05629d9700e341ad258a1963a4cf02d68eedd78f5bf8e07c2b628b8c85ae1f534814c33d78a80ae9ccba533e177e6e04ebd6f536eb755bf5b1d81ba0b33b318f7545a48b1cef20800e315e0bc53101febc339240300fdda825d223f172958e51e891218a76bcf0b0dd2aabfd0aa2aafcff12a9c8a5beeac3f2e2083a85ac3aed268de4119e4f66e13c3a65b4d2dec7d1f54cf376bb226ba096b5c6e5b04e270c17e733744e73c6a9c1395752e2b4d211a2b3fcf5463105ec673854da0fb86b34dc28c698d668617be5c31fdf99e765809a83fc3746fa70e5aa866644bf1b70f6de84502ccc1c4c510aaef68f72cef0ef5e5acb0b4a82c0af1125c6d6e8747fdd51fe37d079c91c38016817a351deac118819a07fac1d22e593240664af42f036073bc34f9b526a18a6afb8ea88dd2af0f07bade2c5e0630021d83ffb6b494404dc2949c9fe6ddcc4aa892eafebe441429a91d05b0e588f55922cd9a4d6593e8143f708e3a462ee67fa74bdaf0891a3a5099bcc615dcfc173a9e21b0900a4deae5cec6fff31ea0c41096e24d1524779957615f35969823dba0390f101730fc2274a40d0018d75bade36a50d51badb751ec0064b6918af1a35c34d59d0f933e15e26eb79053efe925ed9d869abdf52bf006781775f9a8db75ca50e3478fa647d07caf037956823bad250047e9ca40ff38fc4439356d64267e66aa2827076a763ba3eb7b1cb8d5d9dc9a85444e2f8c8ae071fa498205d2e1b5596ad60f9e8940cd9b21ec6f09503643e8f7b2e05b54fc80baaa7ac5ecba050c45a9d4ad57c8c90c27b0d4abe5af62db549e6377d2c920b617f97e9bd35868178638aa158f0e625c31187a8683a8165daaff5251225d340cf3997ab06f05e678c2474b1aa342a728427de4f9c0e8278469b963c0f747569035559f353c346a1c98e4cf9d641bafac52750a9558e2f999fedd1886f8951599e6b07915804817dccd3d5296c4e3936282bae4fc78653bb5b6e673f4734844d91da0e7ccdaf3c5ee481a17175f1f885bb4e084fda3c66947b166e4d8f5c54e8d94f01832faff25c97608c7fcc69f6ea51e812f0a9eb6e8095ca2c954369537d37243d386fc41437e5ae735a5f1c50d47046fe88ad8a6711645200713ab3367398c24ad9a950b112b87a88a5899b325235e0e6431d338421d9eec80671a6ca238e049775e7b6db36f179b1cb865b5134914a3ab996a7d16f81b504b50b61e682dead66f1352f252de5d4b0242855df3f1f587d719ac31e5c77fc37c47cfd3cba8ca8f92d9b1a0c176082821b7cf306d4f91fd71fbe404fb240986fb31323f7ad60f2a781cbee8370c1ceccdf84aaa9235a7f12685938a2df2eedc403c04a3ca5de01560c39943e4d3f139254c2c851ed5d22ffab047555e783e085673333fce6a7e040820727bf90549c72c4e135470ddaf3fa8ad0318ab500bcb2a0cc422a57a80bafea34867dcd8e2b25b08bdee7deeff9639b2c8cff8237db88c52b1851897becc5153f35672cfdd8b63a483a08e652c1031b69605cea01f6c813be43142d715c4289fe40b5984cbd0b4f41b9511128f7efa2bfa57bec0a55a3e00955eed9dbca7da889e667c5493b59d6fc6ce29a679f5e0db739a4add5adc017c253d6e848459a942f4ef6a079a7d32743c4cf5caaa1824048ed38a65b39db91431a473b09732871175eefe540e93c84dc6df6eaef7405d2202e7ff7aeb1d721f2aa50595ba4144ef5154ab76d208cc23482778b7522244ef82861de2281ea5fc45e1ecd6d4050a32ca63a576db850579c80728286fb381c54c0b4f2e52a93573f4ed7f212e04493f33ca9f0d2460d229c552c690cef5aef5a8b48df4f8ea956373293f9234e00a3f66ef2ff880c7a6faea47cac5477bd7edc935850c251ec49599451475bbf80ad8fcce215022540df7ece299e4947a9580998c5f43b5815b954c967a29ac7f4b1efd10692e94572bc80a011c0bdf23bcc8ef4e4be824f050d20fed91b8e6c68e001e7e89fbd27ee7cab568675cd1e1744bb5ff2f29358e76cc5ac306d7cb7ee6613109e09758ddfc8c2d5421f6109da575b4af038bf41829e9e32ce3aa284555d6f0edadc99b2681fe56bb422f9b61732825b81a33a13de64cd6af253534cff1f1bcf30167b4bf3851560b05aa6402702abce52ba0bc59c4266ccd5c3c6217274c0aa94eea8efb0e49f44bedb3066055164204629ef6d17b590b863c1ee7c9dfe5a5fb25db64f1c0801488eee7044a83d88c3a3dde1da8a2fb6819108845ae62080c93786c7393dff33976dd2e9ebec7edbc3cf83b594d2074fd8cc5c2e4e8491e0a76a2a40683b2885edd808aaafc6abe6dfb3e227e12b5ae88bb827e0c9e7e7b1f33d1d8dc010eef5b96175eb7c69d4024c934f3041215cfa68924c0a43c454030487f627f21f8c96e5c5616a3de361458c3a2c5155705a61e98b6a88e590b27b29b2692d4f0d7db5fe39b72c59be737c1e91070cf8f190255905b17f5d2cb346bf99db90c1ddfee2727fb0d8f0bba16bade3f7774baf5c19e4d3ed8188df6e76b8443b5f825c8ce5fca0dd791e7cc08dcd9ee6734b0a7826827fce6817c6b415e75f40be2f117caf724ecb63c05baa39b0881f508ad2b297c28524a7d7a7310e447040dacaabd2acce22e670024a6bdf6a113238dd562e952855accdae1808b1dcb876d280c77d180c77b44f8eab74f88f1108c7ea4b264cbf0e35884ce3aeba8347edd516efbce47aaa108905c4d3d59ed1c458e7a4141f794b80f3b21ec8165581be03561bdaaf50c83661cb36e71393ba80efc6b5ca97ae615da2b291cfc581ea9256dd2534c03f2975bb24e1cb82370d4098d59c09657c7b95881775d585242a75427d43a8807cf45070d8d898ee19a92c4cc73aa51b2e4de8b1cf62dab3f75764bf5b0bb706aad359cba14e3416545ed9f95003b9d177d0729244c125a32847467c8609855feb456a556184233e5e80d81430c09989852ad681533e7e46ad540096c0dbf2d51210f74f9b377eb8680f51bd4cf501400321766b55a73c87c5c37842ffb740a0811b3daaf6cf56c61bce72158efa62869f06bd26b436cfbefc2c11715652dc0ccdde8da575132908bd6b2bc735210d5d5a0f9dc1cb4ef1e9fef63174b50e2b197af738124e6d16b40adf11cb541219997cfc838e28ea48b894f265354be08016ddb50365961ceef579579161391866a79902f7e19e8d0e490cd7fd06e18d5149528334c9610cccedd0d4602c091c3cbeaad7a31842f4038130be0b1820c5f02f0f27f4f45d31d92702772f3976e56674b6d139e48f30665649d0873c95723b445c4594f763c9512477da4f5bcb9fad418929d86fdc58f0a0e3656bb9e85c182f9a969f6be836e5901fa0eb41eae58ea47909ab05fab5229343bafc1b3a765c6de0bfc8a3cabbc13750f44b09ab71b7ab67198d92020e35cb8610a74e617db5d82e71bfe7a00c84b316ade86867b5a3c61b2efd69af5d60c965bce1030e7e1b306f1c87ff252fa712735293769968a085a01e2922c8a8a987d49da2c679788be6ffd2e88bbe9150477680840d618cd14526f6595bc7760468635b327b948d794308877228ba2b0507558d5ed71eb4f00bc12fb04fece949fbc3313b3b4019b6e286d6745e802a77bd48f4abbe106aac52cf86357ee27c47e36c316c2e71e3c2d620d48f2901fc5c2fbdb1faf74af80ebdbb22d9390e6706a83e1f14f38a1d4891e17df514354e80f235212148e40eab5b6c0e3047596041fdac2dc5ff5ba02423c772c3c25ad045a98eec939196d3de128560d7e3ad85871a0d38b956a0499c841ab9dc8f05b993db231f17852b982a9393a13d715c028dd3cf671c261472ea02ab026e1962889fe60415b6bc766049b71fe71b8c05b2ee13588e2d383ba3318b1e7ff8c8ccacefa6c1e9d2e824cfbd393a72868aa056393ac0cea87aff44ae836081a986fa46647800f151309d69f2709831c9b99cd3f9c61c7ffd439f8965ea97a1cf879ec659f9003f4997bb7188b4e857bba1776a5282b664017e6f5ad6f5051b84e8afcfa2744c0060f796ae8095d9ea4a2338c14b85f43d9e369eb0002ea28379a9c44f3042ef20c5b0b4bf0b46fc50aa028fabc26c159e972068ea6fefb64623d0d093d6321b9b05e7eb968fbad3ffc509dc7fcae8c59405020a7cdf3cfe4b61d4ce176bf3ef9dc2a9de56e9f0b439d814bf95a2964fadcf0502957f1756ec4174ac3e7d93e0daa844e03b8454c5c3a2e953a7944832a9cbc3901e7aa22ddac182319c38cc0eb19eee1a133006302d394ed2b03ef7d579c6e98a2ec764607c9e48605be8203d2c48f8ee8715404d391619857490921c6cb92fb1f09e048e09f926c7dfeef80edecee8e53eaf4ae2e3c9542820a6221ecfdf2f75358c57e41a2f298fbf77584269a54e4094ede9518a0d2c180d0817d7ba8866111d87cf6571b83b520827c69c6827501cf74cfcda240ec4d7a3de052c1fda68145dd3fb8cb2b82b94da5d88b46117d8cbf4e81dc3348c4982bd067fb4a0e972a6e6705c8a7c93f46a16e65a5d86d256613c30938cdf0646b8e0df0f04c088ca347bdb3843c5a8f0a95a1c5cbd3849aff627d8a07375dac445996ef6de4555973ab60ac0d4be41581c23573f3af5de2e6dd2a9bdd2f7e2f1c1491227806eaba6add9f33b526596217bcd37b543f0d6e003c34f674f142907df86228b7243b29d61185a62e3be1ce5369115342661ae65c6256d8ef448609085ff56b942a9f8bcd2815eef5142376217de963aff1debfd7876f5f66fceeb1024a9299f427f2d0c4bed0cccbfa6133a3946dd72ca958708bc12cd501223e25f03de4ad1b9d4dac058c358211b417b61da833842402bea8b4da369e7f5330f1bfff448481db97a93c38191b7165ba7fafbc548f430b41f3fa5eb88c3afb8a171490afa5b6bce8dc9488659ae30abec4b4f64ca9f96ac012e73547632e43fa4f4a28fba3a05e2244ca16945f5c44608e1cb8168697ecf9352b625d8c2b3bab91aefaa534d8b304a7afeca98d5b3735257164ffc4738a538616df59c5c00e7d280d6d76bc384db7e09cd502da95cf134a068c1674551407195ec11e9b632b4052ad26d47169be6a77a3c380f71311025b1907c0fb1a9984d1bc84ea0a3893f40fd6e6af73c3f222f8c1b985d4e9df3d8ef75599be8b9e3bfa0a5f89c843b177ff275c75e360db612b6df62f45ed2fec8a229b859e78c9e833c5a7e714e742a279bd0f2691682b2898094a3e731c365d70f99ecb9ca4485341b486fb3925d01aa5a561bb82dcb8fc6534dac6c4b98557989e30dd321d3560ada78e30ce2c202e0178f4d21f35e4e954906d0bc01bf0e6a38f1b0b9c4ba2bfca8ad860c58d1702bea4e7011fbae3270453724f58bd7aa54866612b66c60d202c6078154a9538b4da962d219c2eb4721344f1134f4f7af869f7452034add25d5df5554f52694d741fca58fc423fdc610c8f43be1374e89083d0e3225abe8ff551e4583aca1f4364956d44a1734b792db9657ac8cf45e349faea7b4d209ebc8943cf8453d77a3ffd685d23bafcf7287d0bc5428d83f3636a2b20cfc36ce9070802375bc596a6d8b23306234028c3e6a263fc89bef1fb05bc9ac258c8d6c25372b63d29f891ec6d1ea2e72c8a36002eb928c08162503cbf120abe4de2b53eee71537b9fb1b0ac98b893a5d707c77acc9e64db7a4aa0a706cc50f64298977938d28787427f63ccc275bcd467d61a5e320b646c0d7cd6e29aa5e5ee35238124645430ee5e961f7b41cf168e68f65944458c3a2dc244a09386cf7e4906a3fbcf31c46a730102911bff0a81a2e99e696f3845d444e3a0328935a0170e78f565aff42733f3abb3d3268a95fec11b6b1d33cc48c657600b45054a79c8c8d265a6106b8ede8cff86d54bdd137dd5222f19c105ca77d6873a24fba6c85f6b06dafa9e1f3dff61d354912be0dc923ca5521a846980d01ee9a87c7c41e156785494288195f050bcca54529071d0c56324f0762d66489217c6f019acda5d748d209e248bf80def4a5b85ce71fe7b5f70bea06e278ca39ecb7720434799c4285442720859f7e623d785142cc3cb8425178883db31a39b3c2128db715711b3f757befe29784fc227f835774b5a169b438816c006b98379903736843c1be3091e328b7505d4bdde492417d358230ca0bf8a7239226d19699a5e5630fb0120fa4723cabb6cca29e303376434c6de5369affe0469faf31fb423b9c904485d4e175eca7c646b9af823ae1bb7b00e2062f3ad66c94c8c58a2e8f79117619d267be25f298d3695f13c7c6cb0710058c67b8229ba2486d15e05c026bf9a4dcf9f4dd20446b8ba56313178b79cab27a2e0571466cf6139ced2fae215d91da4946645498353c1c9e81686ab08399b68b943836764a4f294d9b37619d8fc6dad79f834c43209672a23b6184b5ec6a4d7dce76b25ee84ba420523a6edefb3a05f53d7e8c379310929180c93b2b0dd71be032ceff5a1107f6a3d73e1907b6e966471ab954dead6945243a867aa628e26fa99309e9914c4ae80cc9962ec4c4c94b3c8300849dfb61e826e2dad3813f2d97b152120eb079e5c019e2207e89d7cb02afa13fef758432b0c0053653e7e7a877356d8a3c1aa3bd2e0749841aaa22b533620fb184541bd9efb6cad75a6af45f74706091e0ce51aa2337bc28b9bd9689869e3369a678888e1c37410874e141b773c37447504a2d5278386bb929647a7140a6026adea0921df54bcbdf2703c5d8e3478e9c839c5537ed3b58b38c520af9d130193b33be21fabe09944543d418f1a59303afd5f1fbab4ddb7171b7c67eec9d644535e597453a004a856b1726c75fb026b497c9daa9d3eac10695e021a3f008674f96cc46aecf073673b59d8df421403e9090e97684b566353f9c74821b5dd72265edac4034e57f17d2ddf3278a72bda02209f5a473f137a7305ea9c091bb3f2bb51958f73db510ea524d9806d39d67445668270e027f1a9f8d8271193c71de5229e2dfa1f1e983275796a08596b9438111fc62aa811081f16ba85f04696b25744832753de3574269f1f9c203da3a0b91dbf7b7bed48dc8ae86406b7b1af9b0d2bcf59b1990c3aa8f0140145dca8658eb14c399990bffeb70b45ce18c390f2dee72f9ebcd7d4d100f0943778018292992d7ebf764313f5b4c8b6196f275f89a543ea6d3572388fa200e5811e419bee3e843c95d94846c82607e3a4ce2e4d221a0902dd83be1d10607ff8649f4274d230f87e523c8afab6719a26d0089733794cada9bcbea5f0726d56561df0085c68b9a881ca0a3bf52d94714bd1b2959dd1c71e4d70b24cf214d9060a86f7d618bf133df92ea5963539ea2ae1e9fa0fbed821dd0c6d9aa9179a32470dc960f6452d9dbd7fd2f49e1468fc23571be3349f952921f81d0ced5897981ec2ed8e9aae04f6688f4359ac8e89abf595c82d0e2a34f783118609b22aa14e7bb2861d3d2e237ace6e88b05f4b1b2167f66514a94b9d48c10b2d867b99ffd4397c150c2d755e633e2f4f242529a9e116066b55244c1c3a146ecb61bc5174c3cef4b656b1aa8ec4e4d7326d274de99e64383f20ce2e435379575a0a34094883351efaabeec62046e1612da934711690cb573ef0c2b6fd2c36d6fb5e2da011e64afd0922742aeb6f0a9c77186c81a78fd8705ee53fa749f4f7788ce60fbdeba0d5f1f71c047ff3104e01fd5f9599abdc59a492924e17955da572a9949289907ac08b07d0537694a42e75dd269f8e4b8b889afeeef57009a416b0f0d5662cc3ee912aaff4b28683f30d7481c65e11320ea8d258b91cb84eb76c0639975ccbee86ec5650fa0985f2e6a3a7150f28ddb3982f02aab019ae00e8dfbf75e7a29a6a579b935bb17fe7d6d7b119e9fcdf02f63297a22f09961461c814ee27e755c643eebac921779538eac318e1c63d45e54bd5e5aef28b24bb6cd03d2dff416374ac4ece20c197a31fd71101fb9ead0068438526d5c47f7439efb2c7ceb7f5004c5c567c156803b84660067bfec91473d517dcd60eeb62afcfc850eeb037c418781b12744a952534d18c13b38637e8bade3feca826168dc333c2dcc1a03c829370c946b21299c8d203a5c0cfad65967ed126975bdc3f4febb983b9157cf1376096d33616da79cf7c34b946d74cb1d34c237d00543c71acd58a9b52ff011e7ecf58277b846e7319110bd3293a578c01f27a0f0ed5c90a63a91a19c4bb95204de95754f7a8b04fc8a69beb0c936714ebcba906684644c7d3651bf1f04eb056ed7fd0a121d8e944915609f5e0813240556acf311469b7f0157dd7225109613ba78be83683f70d2dc962cd97d73872139143ea28a9da3c558fe88b1621962cc299bfebf35345a6dec31cafe490419002bcf4c2e8f719547872863a4d31f3c9557c7bb113608c3d2c1de4da0522ea63b5bb3241895ee299695b72386ef413304ba94f867e598663f46f7243a298eb238d9b584b4041bd9547483d390ec466d6478b7dc4959b6317728fe776072b2f92f9f57efa04f90e0920f73e5b72a18a836c502fd5df5b4242e98a850a0262269a638837c326797e5de49ef322bbe7170b9c3937e8b7e42e597c87d6773d7ad8af5538b11f0e5644670d1d6a1590ba4ace0db85ba17e0e5ded4127a593ce44a11cb0b5a00e64d564d9b5af52850911b74523e59bcca355916f65c5456a96b5e7624aa9ab51e4320c22f2744914f06519463d62703b244c82de0836107dfa74fbe8c0f517ae232cddf7dd141a9581a2ea2c3ff7bcff0d51e141592ea2a407ca188e939c88865bd5c95a7890c5aad2001357d4c3a7089527c6e6e9bc6f6fe67bc570f806a6b59fbf8546b59e4de62294e7a3df97cf4b97374f61192c80c057f2691714315160f0adaf29d5fbb43f6b9efffe56032808397e004dba78a1580a79950ce6851f2c0439fd1b9ef3c0fb404a347c8fc7cdb3fe7ca4fd4b8eb8e883161304f8d34728e86147fe6ebdec41c8dc7f673ee64ab3d8e3ac69723227f50c46bd728f1533be92774184b19a0b3f0321787bff36ca5d6d2618f847489d46be6bd99f8f771175300f59e6470b821a4fbb60add303785d2322bf81d6517dcc62e503f62602d98642e280404542a202f855ea7f2886f31b600f62b703d3cb97551514c36b131ebc45a050c94e794fd54caf0fff320572c5d1796d298892deeb9d976bd81847dc904e46cd247e50cfe5c7f33b0736f4cfdd29187a9106132664cb14d8d5ac3ce1a00c64c701b8285096e4cbccc80bde25e2c3f216fc1de682005204eb2aedd49489022ee402ceaa52af98cf8a2e3c5128d5527e08d222a47db0f62a7f07ed0a85c92d78b473878a1bb1c5b0f4ffeb20f141356b9909b171ce829a825451b50283a42093278b2be6371ed3c85284fde8383525813b6bc7c54c4aafe35ee0556be522ef928eba0c2063d908b09340234fd7e7ecc2c8e3d3da0f027ab167c61451bbb4a88287efe4d439369a1855beb063526db500182ebe2a590918474e919ef3761b01dda04a5209e94f590dc1d516bee50e633835139a23004653b051fc1ab12ba7b55cf62dca4cb979225c34a56b79d409ab870e4a9b24f6e260bc78b09c2aed5798488817b8b517686c795901ecec5e3babc8a194015f1456f129dfa20ab953fd86c696f97b45df00722816bc4cff9e11e7b40d508e56f26e62088df09b4b6508995f8499bf075ef247645c1e7454a53abce544e3f20f6bfc16a6c12dd22b5e5b5cbe454b61aaad42e452ac0bf7307b854e32809c8a4ec319222f4aa838407f256deeacd52a8803e48cadfa1492eddcb9d05b5d5ce0438bbb90237f9ad58f7e350e10d5ab83c2801ccc84c4c143ea44d58d64561801d8c0738ea063482b1a48a3c734a0b6fc4f2cf0e1622061510595f6e903df7c7e5a90f0351002382ea528907bc93e25bc52bb19c9b0e98e00c66d173db15beaf4dfadd653bbbd968551802e220b82fa81656215b1e5a568886b8fc95fdd2f79f13839dd3f2ce566b7449cdfe65a41fea0d792983b44da029cfa407ef26254764465928836b0506a75b052e8fc35dd664a6b5321a0638162a0ab006d4e4a7c1ccf138f5477a70a9a94d2b9b054cf63ff04124967b3c15f224d992c0dd4b7afc65ccea9c973c110a2f088c59494ce91b088200e97cf395babb256f53b582edacd3c1d0aa95cf3e24109d62f1999e6d0fe4c5190c445bc0c3ad700f9eba03ebe5707f174b53293940a2d1cce176f22dcf629159937960a2f300c568655432225b1fef10befcad22c11d17b3bc155d8be0602e1be08b9b0bba404a1ae1ee329ff28dde3d1db6c899ecddbb416862115de68baa99a606a39bbadfff173baf47fcd9009cf271402b08f00927fe368631849a64ecb8e701ab98375295e15cc8e8dc1698b7e8943043a7d8c7a5e14b1d85e82a66a0557655e3d268bea35c9bc1e41981db7eb724b6ef9c1bad7d08a524a181527d3275e645c97f2988916fc9987557c6bbf4c009fd00247eea8b1c2ccc642e50cf3f44a20d6851177f7ddf7f26768e5a07a6dbf36d0efcc33ce3a3b084128d946f3fe8d52b11f7ed8613ebad93a68ea64ce9ab6fdea18cdb9dd4a3aee078928dec32a49b1f307cf4f74b27005bbafbb23a55a3107761a5318fa61468d3c0aa5cc57244da4f2c7fb21965df060e4971982864a98a08dad0c41188fa8faf643d10f02051989521bc2c00c017e2a03006e5fcf883d7abd28c4eac2f1aa703e11341f84185d34f0c3b5abeae45dcb14dd3f5a84d9a54ae04042fe67b11cf7dc6ee234461e80b38ec840a868383b789003625630c939dcec46539c20e60d51e5142275b9a4d596f89e10335fdf5e606a76780c472dc2e9a65631794b73afcb68bfe00d2674fcfc064d94d35924a32c4a9ca77ebc451e8413c43dcd9cfbd0a09949a4706c19064e77890c6d7ff1be5aa4136ae209de6130c0fb89991bc3419136134705a80e5719a93d60918ac56c7a5f6fdce59aa12fe0dd44317b9da3117dc6ad787983a97cdccacb97bc7b50c2136a808ba6f6930fd8945a9709c0ff8e2cba4b57b90c2ca5b767689d1b4932740d56c41eb93c7feaeaea40b0d3135331b1359274b8945885e4c309de452782e269f285ce63575ec8627521409a0fe48a315e741dcb7e39f629da37fa396d273130c41c1e7ddfc8be995cf9914f2b4f9fb05672d88aec7b809442230fe79041335a1a0b85635ef1ceed894985894a03954494db0c18c3c53c39f172c3afaab7c1c489e171aa0761fa7167803e45b2d5c1e5424b7704c57572a5985d2dd7247d8d34b6ee08269ab2dd6f8cc66f698a9045c80e9fada181330478e267eaae2af1ccb746a32b8381f6c8d31a418483f5d03a2216b8373e9511d0505ff7e1d6045864dec9810763017ca33774cb9f3ad43b40ce0342b12e903e4886e11815213a7aae782927ecb5fbbb3ea069b2a2fa5deeb3d76c39691b5ab86eb8c31aedf67d60b4855c569e2063568b1db5248f0300ca0fc0c740d239cc7cc9a23ff6c1cfbd8bc9bce88151dfd882f6be0ca341a59e2a6620a497e82cabe1058dae6407e67cab7dbb6c0ddbf08fe937fb69aa8345d39d64b0928b0d5920d4a3355410a00c71c7114a3666f71bf021f0550828d0ce4725744076272539b070ac8f25b059ee77018dd873f1c14523c7bf018b360d10a54d3831a77f67b1cd0cda1b321715cf7d3a913be25a98de615afd3801e9680d6bcb04224979aced0bec5bff641e0c3194730375b933a99aaf1fdbb302ee2fd090ed902027422a7dc2c4c47785e46ea2169f28f80f496cd2f456385bd7caf4b7aa6fcf932db6abf2884f1a23ed48cc4d1168e127f584026286cfef99fa56981d9997839a10e243382fde0397c89376dcca46cd72a5fd1d8d8f21a7dca8d65961deb1ad0cd853cfd2f364385f47deb76b56a9e2a50786ef9909259f10e2db96372a78c31c20e4d1350fbdf373b912c71b0bc1ea846adc2f708b560d33b06ead6fff5aa5e9b39b86171fadfa2d18eda570d28ab660dda8f0e209aaafca6d464b5b286af5b47f534d4ece9b23498bc8dfcb7c01b469fe4faa5c861eddc76b1967fd04d47d2de67b06d61f23e0085b53af3746070813c1294f49ef16b767c86267bbe579540c2d6812eb6263cbcb56754c19191c531e46943a40c5996675dba1d4368f98f5b69b1794d0a1f4bc77d70f0cdc4a9bd32995f240c690e740cb79ed6f9ee92765c082ba9539520924fae699862c931264764a1ad6defec4a49cdbe3686be85dfb101ed4954fc3c09bfcad2fc2688c4c502461679234c6e7b25e8e003a42e970b1bf6a5f935f650dc0fdb72c05e618bbbe629fb068fbce555ad4e839e1d53d9745a332f6a663766de4c120bfcd6ebc30f4d2c515436d1668dd92f72bac31d828a9b386a74892c3bffab149b1c9b80e1d1759bb22d018303ff4ead4fd114b025a172e86bcf0b2fd1b77e8eae8558561255b2ed3bb5231968c71011536189758e00c3dc06f38abb1912516b8927f1f9bcaaacb8e40c43e96750f57a69abcc1afa070133d6bcae1d6ff46b5429d8735856721b0066a0310eb041d0c59f2a82e5e60a26246d2650539f0b100e92c222999ccdfdd8f765dc9361ea376104f49d70801aa28ee139a2b65b8209b600cb1e4c85e358220ccc58ef43c8ee6eae3ac8389cc4a3cdd6943c1c5d4f21856218d008b69ee00987751dd29223699ea3d5e0156b71009f38a92fd1d174f0bb3c8e1074008cd77a525d3b30cd282bba795b66660efd69b1472d38746572588c12b02449452c6bc59262e4b16f563dc7223f3a6173cdcba45fd2ecb92a31b9c8db4d95508f9eececa22ee46739b30e1a51b0e1cf40b32b2d7c2788227f68bd058d849e0d76cba1f6bfe9e28182d5de8c51e6e299aef1452b1cf4bebb955d06cde89eeeac34906ba782a8e1e703eedecea0baa88d9e6a11b2b6470c142b7eac3b2c941db506905d5377d7dcfdbc303b58fde0d03933fa0b1e13ebabcf6c14f2f7fc1623577d03c78a38da3d79bfa7550ed6302f4a2651f8233cbd3c15c1fd3069bf46aad5bd33146c86274a0ee1a285acfa08c77707e3b312e258eaae3b7e0f010c992adb904845f3720c09654feadee0a6a76575a3173d089bb9909682c8e822f0a5a49c862c879baee8155f739b14472fac2367fe36c1c3b9b142663a15d5bea1003a51240e51805c4ed4b05f10cef5c94325d4bf0ae05b6f67cb513c3fe7fc1468c15f9d64a8158a1a615674faa868f624777f65ceb9bfc2aea9e3c2e350056bf2683286f72f7110404678beaaf518f481113273bb8dfe98e27b09672d46c7cfc179c86256d46bb1be8f130bc64552b91a7c5f618869e1fcfe482282b32eb6e49b94b620444140642598eabf91dbbdab397cf07dc1be67d8ce385f4229eee4574d1b47f024e63c4631b7ef0bea2edd9736146457c43a754917aba49a6222e9f2658e7d6c287d4ebc51f72c2c0ec78ae63c2b1d762ba76e98ff9ac56a5a36a4385036d5f58e3c6e74310d7055a375b5a66ed9a3e023377f7ad1851a2c068421c102b9bd6466cb37c623333236467118d68dc03e92249b9f2c32171ae6759c7b0a9b4c6fa7dd45dc8a3bcefb33f7792615297b177ef5b7091e532521258946f714288c9c45c74c149111813fcaf6b01cd1312769328e0925754e3a08196ca27fd8cea94c335b8763a46644783e24dd1b25a8bf74bb79ff61ce761be1a2259a13746e6d17ffce10a79ad55457ff4f5f1db82e71a5143787218f714ad3d2526e06154f55b6cd89ab812309855db4382149b3c615b1ff042fe2fa669e5c7070abde63decefea4d5b4d8ccfa1ea49e027e98033e3506c1c15f31cba878bd16ac686ea01fd757cfdd893e3e163096edb1a7d45efe7bdf0b79ce06e483e9217ccb1149073d0353716b1bba3c875a005fd1768dbc608cdf293f1840aebcbdc54e9c518f2d623e1d31341c294e8be9a5a7198cd4d67247fc9dff79d2201c0dfc802f9e22d8ce173ec2c9a251197229cb3b87e3aa5d5c9a682f9c60cc91a3b370bd0835bfe84f0ee97ee6af86f5add8567b3b69f84cd659dd4a682725d718a74a2b62810fc8612864e2f1a6c277ee923f08faed1434cb48c4c03fbae72923ae403a92acb9471bfcc25753ae4d61ab3b659e9f0ec42d574e6dcb5a627893f726ea81e67db176c57611c56fcfd672e5fe3414e07b38f06b7f713c16dc2a4bc784e09cfd3e0b62f5e84a75af1fdf1a33e63f8e715a83a8bacbe8bccd46db555985ac9107524a294b85e037bd7fe9b8abdaf505228f89547e1fa33563b8dac517ce8b070327ee5eabb61a479dbd4aa272f9df427116b5265cdbb0fca947c6f32cb9568759950efd458ed8d984059b5150e9ba3e5703d56ecba82536ad91e09747fc24ccde6037799034bf4f8e92279ed989613c6dff732e662bd0707050a785993c68e9c5c30b4fdaae1f4e4c5d9a8784b232acf8361326885ac1ced3c61ffc40ff2fc426b8799bba856d7285eccf1fdb06775be409e36bbbb585804fb1e8f67219ea52cc181c3cc94bb505980217ad07eef9fc967b68c24ea4d0f5bda112370c2d69d5ab8302f21fe79b0c1f7ed948abfe5e51f339ce7a2376eba5a664986d6c27534763619f6997ef2586e31851ce2abb52cefbb0280e0c89cbbc539c2d356fd6a9e70cd9943e52a541fd6f6f32417454cfb8ef79c735c3b36b44eb749c685a0006db815063ab7349fd4a10edeadbf027920b8e3404cbfd63fb652f10c5717c2730435451b212d23c653f196e786822413b363a331512fe306fe2f133537d33d614feab563fbf39c2a5d2fcfb0cd280fca47cb93ee95760db7cb6c2c0869bc5ea70087d21a7501edd97f66d20a7f1367ffb30527a8933b1c961fa3b2a6cd11a994f90f8db56d5b13438898da49e545ca6f169a111101e7305b0e30402dcb816f317faaf72c5e19de4e7bd73ddfb87391fabd599818aee8d834ae5b06cd1840ec45cd9af289427eccd553307cdcbe8efad716d2e371636262eccd01d4c71dabc5dde4815556f02000ae013079f8683d0922bbb899313b3e4655d839a15ac4798eefb0cf08235fd044884c9d0334e5e6f96871a1cc12e9204a60650f04c894523a9b739f541d58cb9f6766a249fb4c3937c039ff8e8bb3c49be57cd801d5f0fc6abc10cb092e8ce817b4b553c8899cfcdfa15f33cb7680e2e8b4521705747b2bb74b7310ee831d42ebaad2875def702531226ef20d6d7943b94397dccf2dcfdf0d0e558da94c02536e6c23cd95cb21171559b5608fa0124e4a742e9d89c060b69b69c742892ab8c774f0a5ea2090705c11075df912faaf9c729133d681aa22b6b8ac8dacc16d1137e1b06bef6e636da0f2eaf79c5bfc546191435c8c8f872a98154a314e7cd10baedef7deacc1daa31c340caa49ba4089b58ba77ae99b951be1888fa3ad31a7f87c791e4166643751ccb1dcee1cda6b46ab750d989feaa95622dc3ce3e9ccb37da20411e3ae3a896d093f41cf2805af34b08b10b9aa4c465904f6a0d5f553912cb977150f95ad99a09b868c4d363c7d506db62ce07c4269b72c0f35073b6b5d69a38f78d89b2537348900d02acb9f7708fbed87456144931e26b3afa1aed98138248f24ab6096ab40ef4b8a98d638154d8924fe5f2377bd53dfcc25fce2f9791eda0d643623cef8b1fc89e1d0a60e52d5cf4c3231ea0ec29f40fc0949e1858c3f7125b6467a2a365936ba2febc354636ef41738d55ea2775e0b87c46f513968d3a86869dead1b55a4107b6091847df2a44aedfa00793e6ebf9729342028e865504be1479534e09a76fcbb92ed82b3ade11f4890b998c615e423071f4381d719b64be3689963519da9458fe32192715962f75b993425b410dbc661359eab02ead161b19a04825ff468b7d2b2d463f97394ea97fab4f1e333a3ea059c5e70200b02f0c63b71a4b9ce807a821691b584f477d8dd108f4b30af92cafcc2baf2e50d202aad92950661e42f055813343b8eaac74334b1c5b170886e68a6c20aed9c355899c3e344b9b376d708da0fddd1383c309c730dcaa02f7c27f5b1c4066f4a6275468ba3b376b351077449b221481a0cb0a8b2f7d30f4a07a57bcd84f2ebb9284a15d02fa32bc8103d2ea9aeb07caa1bb2d528cba534e05dc2399796529a9c2f9caec8211a4698c553980f99a9cab21e5d41b043a3b2c0891640a7a808e5d036a2654615feb431b2884148e0c1557b1b0c66eee0bf2898b456517d975ab9ad949cfbaec22e4e8a54bcd71c5a802c0ce65b097a14eda2d1813ffe6b0387acd781661f73f91747e15b08d73c9c18cfa03d524ffbaeefa0ffdb507193cce96163456ad1e896cc2c7a1d469ea8bc39c59416bf2685d6deeb269506fbd56613474b1dd3e06253e28a70f96d4c6631f86261363dd0d3bd0d5061afa9482601c625736e06f60f3be9c077bf61434a146d8eff2bd266ef4a98e1cc5d4f5160f366ecaadae539907fe8796e8687d4bef757409e4d05a50396b78ed19e5a6924a8215f8020d8b71b3f4cdede287e1b2e11d93067af1218589ed1f4cca122097add3fe4c68c57e957de68916151e9bf1e0edbf6eb3f2bdea74a84face7c98f57ef5b81a48229909287472645bddd83cedfde8ad57e8cd41e11bf9bd44e2ccd7dafc0d8cd1055fbfbd2eedfc71dc32e21a811d5a53f11e3a4d7034f3a0a8f6d0ea2ba12a9139bd1a55aff31ecd05cc940833b88583e94ad1dca1adde658e5bb9ddaaed5a42fd45fe29125f5248a89cef4262137d0eb3ea675843d157e10d692b6c34c3a0737a8761374e801a9551376cbf360b0b3da3aeee2572bb0de5d8be7af7936c8874fe2d8f5d09a2059ee48c116c6e43fb21d70815622e3c8380b775f239707db8544ad31334bfde1d81a8e3c3ba999c1e305ffd7e3bcd23bcb36c0b782426e7854b1b5897d4bf523fed651d06904c84ed833a6482156d08b25237aaf9fedf55d018bee32f06d7a16fe2eaf5d8a286712cf18946fbac95bac9e818da332ddf51daac158498e16ca303ccc4601cb80d6d77fa413be4deef172f6c6b8709011394d5495ccb97dcc680ab9af4c9a0238292037a9b861f02a4ba691dcde711e032a18746e8fa5d529122cab272136ac9089b2e70ef48c93bf27c27a1c221921f91c6e23b357078881e8c365cbd84d3ec48181835b7432894b11b9d83ecd8fd74e3d4e38feb82c083d33bc3b936be9c7f43a7e7a3873f7a06abb3157c30528752b67aeaa69387b249234ffe730161f2ffd982aba4ef5bc3783908b4d6da55daa0c965e34376d42c76237bee0c8eee13533aebcbdbe0791d327eb6feb55668fd82aee6edbd6cc377e81e7d6fe468d5d82fe7c7304b7e494854717631cf268bce495bd91263cc7d91bcecdc077e98af69ebfaeb30a42d9d4b974f74458e06a84360752d21439fb2d6512cabd63801ffa0ef34617f11acce7d795f6ee6a5acacdd91d2a767f053c2a74af2117a77110810593dc2f0ad9388ecdc59ebaa097aa180a05b2eb1d7251197cb069ba043ecf876b776ba2857d436c7083b7f9266e9d103899d6a9ba187f628bf613ab1f525d12e4e83aa100df43eb76ac43b71cab50e3af3be7af9007ea3c1fe7ccf25f3742b419b1371ea6ad94e98c48af66907ef0fec2435c22e49109671d8b0908cc51931550561594982985be7df0dd13c2d40e7fb3636fec97fe5c65b00a0a8bc6159b752bdcad183a44203e9632641d05d232aa090cdd2838e7c37ad02ed6ebdb5d6eb15d7a8270924abcd5cbb2107ffc51bdb3c50b960059581f65885e8ed1ce7423ef3d68bbad51497cdf8de144ac471d6c07a83917b0d20a9ea63fd8ab7aa782d00873a20acc9938929583b6e9b6a19031d075447c52de81c3490ce5da12170c4bacc4f1d2093ecdd33cb68a5be8253fcba3a84ea44716c70a62eac8d17baca61fc141dc9533aa4322e490e82f7692d49378b32e5264a434a06150ae2e3ff90aa8bb91e13e04557f06d5e9417ebeff294872b890b7a2a971c4888b1c91e54ef1b4248a99cefc45d584c57cd3f112447a0d9006ccb1d3b6ec23c1648eaf9d20c3857117b5ce516c54e8c6b866a3eedd5e3227a2b260095b20ae2620bf7d2282f463197dd01feb86a5718e0a10c321c1e49257fc1e2c1acc158f2f46e1e0ef04f9b80c5ba4a4b614941dc1ec847763071236fea3874e91c438dbb5a41c7b5fa1f11e66b855016b1e16ca4863dfa7ba28dd7353cdce9ac50dbb2b7b0c3f213e02a4bd97b93d8c33fdc022a05fe9d4c4d44126986ff57083631db9740a5b75cc44983adbc5ac69a516802f6b8ebf00323ced4ff542df7f1bb7dbd9268b4be3768b84d4b780e0c2f51ee697bd3282f79dd551f75ca38f0e49f59a1f566f109c260924c9d7c79dc97e93aec4b7bf9ba335aa2be6c0ba1e3a863d8ef09eba8532175d7df3f18f8bbb99e8e555f84fcb64a2017a61f0c25d500aa2ae63bcfb5d92866999ae3f50ef8c07bb154050e1df226d14e228b15df909307825dc54266f17b7b26930aa6156231f157c65ca367a9ed5b56e6d952b2e6d7131dc9be9739258f764929229bb22aa9180e0d091615163ee61c2cea80440cdf391c5e9f0b75c98bf5e8800bc761282728ef2f4519b2bbe944dc7c56884c84b710813c1140ceeeab350e043fc866bac11ade725419a3eb9e89bae158e50ec7aee177cb91ba18cd4a510b2b146fe5163bbfa9826908c9bbbd99dbf5b75262b2a9a373934309e0b020cba17e59918dcf40e9a81ddc8f022bfc0540efc5dd1318344f7330cbdd8b1697106cb67f953f20af8fc38e45bd6a26173f3164cb4e5aadb26605b6d67ef1038f66e4f6ddb321ef2f5e54c2ac2e9ac65f248da53d8c778638a2a0d90a403e2a9746ce0c2fa76378c582c7739bb1e348b6ce6a4bfe91db973e57910e6b25a05d9a6a1403b524ef694b3e349b07b264a65aab3f3def179794a950f6bfd12a4db790ba7ea60ae02a4881652d1492b671ba6eec163edd28bd9794b8667da6e19c81d78bf05cd0fa8a4ffdba231bccd4a36cec76ef53557604bee8c6ff084eeb0d331a10c16b923c9e40ee03a517a8bf26a435146b2a0f37a87dc4903c9e1656a7206f6c1b46e927be711b5bdd9e616cbd7001919266b0bee8ea6c8a7ce6f07a288f9385fee6affc9d9a235c789ffab74a2ce95976b33ec6441b9285adccd4326de7a54d9428a9bd14b8294f6e2b15c5f618cb1b7c0ccc5ed824b60716b6c0ec91dd7837c686fe2bd4f2fcf23132bac390b4063d62e23df14b5e7f3399b20e92a0b7c7ec642d80c377f40fabc44e881af9a7750df45e3a0be3bff900e1587afb2066dc213d19ac7168b1dd10553a675faeac97256653cf827e2d1df579382cbb7be77b49287807f16052e9ef9a51dbb897cfa3655f5b46550276f28b20826ea8f0cafd1334f7633099510947a78ddeb8dab0c56d49b1fdae237c61499d2720a053547a5879cfb62afbfa5153eef13aa5dcad68e78872a4d9c59085b37041ccd88686a84db240eef4bda7b9d31c60cb2834d1495f8946b3243eae95cae94435fc8c46b5cc38af57861b74330978499b7be39034c4b638e283f5ec4c13d7c95133a940fa03e14af038bbee147160110cf75ef2af971d338bf5facfda422fc8048222fdd94dd67e613d4d02747a3317aeff2277beaf5074b1f2517381da30e3782798c14ad5e044ac9756e8636aacf094948d35fad4b2255515800bc623e349864b73558994b3fb0e159fd4c6da020d5b77dd5ba17359479a1de603ee30cae5add60fe62c77249ebc9529fe7a20b43c7830eb20347a4d09f0c8e5553c89c69ca27db48858ba2671b1e35fa54edac0499a0d16b7d2a33fed9070e82da972bda7ffde26b421b6528630a682a63071b3333a6bd987789156ea36ef64b317d9a74740f30d05a058c75c28f444f1a242dd2acfbb2dc1a7a4c88d2bfd0994c233d5d598a2916719a3aac7e0e89d64b9df5f476a7398bfc027dcd28d02c1f042fc350f8c31fe61b65c8b85dafca4df712e27b669771d1a534c566dd45589934ab74a57be413d637efb4414afac624e326a4a375ffc596ff4057c57410164777650649781190d4732bf46c06fb626bd16ea01a74bbf3ed563208b93b973030c28443c5ec103be123e7f10ec926cd80f12168208004386c13be70df7b40ccdb5ac4114c942dbadd98d14fb434e2ce2d6a217b04e2a902706937547b0a4054c205b436d7efaec662a852f4e482e97c85673091a3219419d54f5ffefc375302f1b2142559ce80564175c6c71bba625179ed401717285a409bbc0a797fdaec63b2e778a9541fed690334abe07170b14910c28ce0c866eb6f74eabb74897538f68ccc8d78a552c2dd75e1a2599c99e6c862c04d004ecb3e692cb9bcdbe30d4e319534da82900f3273a0d49e97fdd2532ddb273efe57c7f67b21e744e12b7e6ba42a459dafa58ef724dca5908b2a03686ff06df7c7d5d08039f911615deaa3e608ddeb07fb1acb9ab3c56e27a62ad667ee748c52050ffa21d6ca12e8aba818317dfde182dc11b8a23917386d141959e1f71953ae42fedaa7d46251d7859f871f4b3fcf9962de0a1ea2fb1ecba037b24ecf474c392aff9a0a1085fb3a185f3809137b135de4fed2dc994d27ff2b0f3b0743c7b3642bcf8101edcf9442e688a7ee03129b2ef2d740d8f9c7e1fbb7c5a682f9278188fa2686dab2c915abb5744a57143517f1938727a84d2e7ab35c3ff71bfde7ec4bdaa18211188347646384a6676d27a61d5d439c0d3328b673439cbb807ccb6fefe92e2e60302aa7f99ad8c724101500108ad3defbe1013930715b2e20e034cc82abec6e7047e46d938f25f30614b5ce78de54ae8986187d1a7ba3a10e0f3b686b39042af60e613011f98f50b17f3d2c7b84c34cb6922ea13d197aedec846abb1e8b1d6d9185df19d8a4a0778b0a47cca7844789053394440b5c3a02c27104a69685554cdefc5d7bb868a269ad8efb0afe2b2e9633c4d0cb50d84fb21e5a529fc507ef34e04779593e003fc7b5d76803989895c0ed42ecd0e4339da5d80f14d2058f3f024ef6501f5572b12feb1807702f18bb99a0de1287fe33d78de221bb9f5fe6d8bd70ab5e1352d9ec2a1431c37542f2b86266179116c24692b6cb0fcf033ad5774c36bef15cf9424f93a1901cb3a1038bda70c6281d2d5f57abc6e97a3e7417885e58e22e0f8d20d421fca4fba1a28ecc8d31d9277129aa5a758beca55d1a7dd1e482a18e0cb83dd9429e9772fc89ec27757b2f8b71adb999041b3722acd9e53e09ec4f64b3824f1faad3d314da364318530f477fdbb48f2d07c89088aecc494e889ad65c2434268803780ad9ae117f7ee827e5554ad091062e28a86469d171134d01880e9b30cd9db17115dd790b68d93fc22dc4c5ed7ef8f2cececb22accb46337931023f1d93d370d69318b441ed71e8eb7ba1bd4a831d777b612e93b873c60072f165844863a42a85b9eece4a1bd3671816b2c9262bd1820d6d4ba0b92e80108e454debd1a5ed69b3af22ae0b23d8d23c8ed534f53e270f89fb3faaec002aa15163c6b1bb54e3170cf6a74cfbe4c0cf1ee526e24199da5d10f5f34876dea69c1352d454416f31235fcf6a4262dcc7e9ff0dee3923dc6cf4990c6aedca38ef283ad438c50481d34fe4b664bc5ef942bcad352206381305a88ce99efc8f3ee3f073e759b7b17e4e3ac60d062ca9d98c3f264c147ef19aeb476eaff3b4f66c948fbc99ae3aa99c212907521ac7b730af1d09d03c0bc5057d593842435b7d0deab308fb3e1db0c566e5073666c32f12eb2597e0ff1488ce38a730861f70c183ed00e41cfa4edf8d536d07c87a6006994174688d577b3b532017282880cb0d69cac50ad09197457e245c38b9c958fbef81dd2bb33c9d44b97a52ef92745c0e77443fa01935a7b1e5e007166c55b5961f4ea7c2c8f3a9fbcda321456b75654d389268c80811178c001e6f2e538b6180b37cf0d94bb7254c460d499b723997df4736a03b43a80a1f5f772e2395178f2cfc6d8b8c7b0659457c9f769183d756a6ec580433b9baae4a3bf0ca994a94a147971a3ca411103942794f0546fc09a94cce98fd34cebf3e1e889c06b1e801d5fd9dfe66d704164a0759cb3677fd99d0843427862c32fcc260e4c4f5b701e447f4948d9d43b898e897b9b3f91d72df814d64eff9fdcfa0b7db3547e48dd5ed7295cf30c444103931b4fd3a4b32bad2af1ccc8a4eb8ded27ee5b048ab3515998f1d46dd9586511fdf70bcf73937821efa8c6df8aaeffb4420e40084e891a2dc9dacf2efbbe7f6b16650c9e32805a58c41fa4fcbc7fa1cdd8df76b22f77d263953534edb134a9dedbda52d00cca645d955f135480ec945be5fda11e87428a8f94a1f21722bd976a50480669108f1f488e10fe1d4d3f3e14099213395003b1190693a1f80b1172c996cc86f0ad3e3ce1736ef23cd8533043bbd4cc927066c17ec0fd6bff3a3bd557ad81ad2b3981196a2849b4be347b6c2cc439c3c6ddeedda688adc2b256a2569f9bba834c167fc5a7ebe49d765819ec5b950b5cc616276b513e202828ae44f2fe9f1eebd860672cfe3ef916c3eb4a3a4819355ac9ec8e1500b307f42ce7b20930e8174fc6e8cdd1480911062316cc8dc2b6216bdaf29bd12f824ebba4a699edd7c043db3fc4308e8083bb7500aa6381e76b1ad1d46af106f170191cda7c5be507cd92fcb5e3ffcc048040381cc570610d22b1e6fbfc6dde32f2072715828befa0a5cd2af1127c0f1902772d4adec7ac49e5990eae1a2ea39ce97ea72b8399dea040c1b4b0b5248147b737fbba7c8ded35edc943daafc9f520bb4147f32aef4eb78e31f44fefe04d5822600e322da99fb8ad177fe0f0ce1f36d3a48b9dac417b24ac799477474df57d8d8c6e82361c5418121a166d6e2de836fe0726cd7b8bac2a5f9f3fb709d962f2f68edacb8fbe50f0b9f9097573459ec289219c167ee928e0b78efd92020ad85df74226eccb1b93704aea425ecd13568ed1e1a994669819d007bf4de9cb53b48585c3e18ca34dd4d5227b7269f964aaf3947d75de1a15bea83d6faeee7bab7e3937e9020eb2fe73315de133fd13446f5405780292b8a16540bd0e8e20a1ac3b2184c59a45cbce3399d1fd630093af51fb9b2ed63e66336ae1ddc9c2aa0f787fbd6d598ad2aa6bffb0c9dd104571ab3f8ab62a670bce03b79caeab98f51d6413d4f3f86c88421bb9f78adbf1c363c51b2377c49e95735b289a272a216abba589b868b93daa9f33d05c2ebb8b394c378ee0a00bd85c13d8c1269f6a1cd8287ff742241291193dd71a33a6bada78c1d5dc1c98f67434fe51dadd29d6b4c4756ca932b1757173f5881422d33981ee322d649203b5513b3ac2d81f83e5d7a233ddde1842c3b2b55973e81cbd57fd60d7828212a62a981b6f4fb8d62f45d664b398069aaa63d96752a7df9932e09ab1e5757bfd76a7d5b72e61324e81cf0775963176705c035cfbe1327a428bfd8518151ce899f1d58b31806f17ce42dd785323ffc9acb8d2124a0fb093d9c3c11addb0db722b08cec938ca889424cd339880c1a3ef5f94f16e62f706832ee8f58fb2801cd88f66add7a74c20499466e87b4574b155f3265af99395088b5b00229139e3ce3b389c7ab2065f89100246f50c847ccb324aaafb73986d9f660d61351af45f6659b1ffd658981f8d8eb11101defadcce8b12c5b13a3ba1884f8626cffb407b1b83335ec13e765c4f3ba6d00e3ac94e4272bbdbf6c4cd7b158ec94eb4149e18d6ddcde29b7f849679439378afaef613c0c8b59afc1f4c8854ea266f2ba4403ac4fc43ea01ca518046d20ebaddf0547b5875cffadcb36edd1233df31127e15dc2959fc3667998a1a4a9255acaafee894afb4254db4d22e63c78f86921c750dc62c2f9957e0940d25628823c23cfb99f61f704f258d266d6be356c1a358b5184fbcdf037f89b3888bb501cc16647fc076bf6c1878fabd8bcc68deb82eca2b63a79597e21e3b9a27ed7a7c6311a7fe4899c31cde7868cd073972657aa03899308845d536232c5d183cc615f1082823ab891106a1bebbc6c514ad4c60f8f5409958c81f537656564203a16a61cf8bde033d1f34e8d1c72c08af328a6d1f8ddcae9de635d4d15f4bc59ff6eed20ac15ba918b97488115375e235a3bd2225d312e1bf801c978667c5ae80c29efa7e00c6dbedb97997877eff6ae927a6be93cf8da15b91e5c24a31be4fefc3f6d149c161a64269a43ad593f436f6caefee67b436c8d50481aba03cd0f67b787217211260e4b9da14e834a2819e9166238ffcdf8c8436fc7bbcee794904712ddf857b67b458871187ebdf43f0c70e2613cfdf9896d406be7bdf0c3b4a3e3494f2d8f9c5288c6b9d3cc55d736853e4df5a1e939b031d7b23ef976152c050608b4b85c0aa829e209f30b915de68f9a044c7b91b37258c6c7fa4ae1226148c79c542e0e24b328ddb8a9d268e91430acdb2d84c66528b5a76a46a99aa18a7a1357768a1919d1df3bffa0f2529926736ff5075c6c19dc5834502814db940213acef512e4e218c11c522531c88905c41dda94c79c0e06e116fb6df87cf447bd6dbefcd8a694246316fc0d9936d71a4a8d8775cdd534dc099519d1ff737144ab4adb6dd5088ca6002cc5e8576ee0dc1eef7fbe82f581b0670d711bd26b9b0c47bbbc6e11282dfec7dabf3481ad0add13c20f072f34e8c8c740c8335bf3eddf0090ae8fb170adfc0fb3315e43b2e721c5e4b4018114359a24d6767a83bde0e6cd8648c4da384c0fafc0779a6f0da3478b636811520362cddaed3ce0dfbc4519f704e69256f67175356bb262efb4a43d7bd52db15af649f554ed5bd238e7b5dfa8bdf24dc56a451693f2febb5e5a8f82dc85b96525c04fc1f51dd4fe9def6d6440223346d6f5d3c948da0a92e17757c309eb6640d128590b2eaa33881d59b3a42aabcfce5885bb52fe432f698fe9d9686c5d255c001fa655a48e6ae8801c0e38e43d9a3984b8ca006c2b0dc7dc10dd53385b8aa45517099738cfc49115ddeec56c44a0ee1f2ac848511de2105edc74e8836b394ea9abf0e5cfb33dede9786d10d64249f0a635311f4e7330737feae295ade238c97476dd245ef8ab64a40b96f129ea93f21ea779b71e1312cadd040507490a685f0e7e00c0de5cbe1c4efba83bf141f960c100d48c9ea303cff2211ebe44a25b0d01c42f7d55201ec1eaeefecc4893c7c24061061ebec79232d3c88ab42ed0f3a37a2529ef4d6d8bc31edd14b74967007dfe38c399dc8a0229c44f7285c42340210bf37744186c26e2294f128ef35754ef4090d5b6944da639d857e54c2d432d1a18b5046402cd93df53d657860e10e1870e3a4d01a0ab40e48884696351716efa41c216751c84ac497dbb3d7ac6b54e0bb41999416a301ef5a61b0eb360e593af257af27a238374e09379da49d269122ac2bb9ad1dc862d547b0c19bbc050667c31c4176a72826389f17438316383a61aea6c30d2da6bbe52012ab3ee8f69750570b579b3f938710b4947ba46214522ebde81f51077a06f3733bbcae91cdd75a52e23292308c1fecbbe94e9054fc50aaaa7cbdbe20427e056def5f9b2152299f51b5791f4b9795a2800522d9302f0b0557cbaa02d8e24ebcb9e3755989ca181d4c0070bddb069d94ae09bb26e4e563e9b45028962b82c7751daae9a3aa431e3fa9e713664421ec1a25cf31b1e6da0f4b0a8d98b719d131dd7be46ddab47da782be2ec18afdc1987df7baf7eabff04ca3f2eb15d151e04f7198b5a2b45599193fcad391a9a295f1f190a8699f1829876e5d06afc9493ebb965d802dbe356b3b97c1cb4b4c47db8aae850ce646c379394a6799e64f021810b70aa105241061e5ca8b9b567d4fb81635230deca7fa986622b79a0d575055236215943c477bb39ca88382dc8412212ad2b6d03f9355c4ea243604cc7ae3aa4678f7343e3c14c9bc5e48962f3f0f8a87f88ed844c902e5bf07a6b4d2e296c02f1806f4bec9f2e2c630d61745ba81e8ca28c7ae209ea87de7af0df8836a876ce338dd26923494e5cd0201d6d51bea13a41f648b28a49072a4c9d3d2447cf09c346850535c2916b30508375100730259eb9926fc22ef1e63c8948d40795b343731ddf0a3edccffc973b7435f5a73a6b9a31d35b632bf8e92e3f6ad017b76dc43e9cb872b3b652afe1b0bfc4b5fe2d3f8715478bc3ee91d01b39f32dc77a405f11cf7ac23b675b10690b7a2a20ceea9d8557b0452b97ac0e8e4f1f595f92af035c6d505f7eae1662e3834ca394de7ed0875521a97e81fcc80f4319f8e742ffdb78b437100db7df03e6b4e41f20842e1e7c72b008477e2afe002e801321637f261a7ccc93116ae7b197a0f6cfd7f18944c0000c0741775094795d60be8d5241faf2fe241f4285a2308af88c5d752c6099034eba5877ab5a8187fd34d0cae6febdaedc5cf9e2e7377dbeafbcda0d799801dd3928f1f0a4fb83ee71b9c32d15a9038be0d317a93d887933bdeeefd4dc195b3c46d0db87572ce80fb1e8a857b78225b045207b91affbc75d3347957724f208aaec35b6a2106dee24db17ca330cbba107242296f8ab2931b02f2892530b104f13cf43260a04de12dd83b0554c729b249478a9e4e345434654dd9f18fd9b540102bb2146b301856fc2e074476ffad419edc7dfa5491fe0f51a7d27c4de8c51841e10c10f1837bc70a1b1637266efef9a4505ad263bbbaf432d1f12a0428d58270124e650ed496ff2dfa79f46b08b7a45f89ea6560143b31b4ca34460520e7b91abd2d14945580e37cb70b919fb16ac0f6dcde34c6fde42f11e65001c7e987683c8ddf8fce8d90186fbab1cd41a4e7459698a1fad139d29eb90660f774521a54e31db47c3d9068908074caac9aa33f783ccf5d0e3fdcbb0940134ab9a16656bd9e358e5dbd1f6c711132902f6ff2e8ebca74a5b2ac362e7e6ff1120972cde0906dfa238bd248e5f04f0e0b71b87f08e5d218df635b5065ec123242f635349626ed05bb5afe4cf29e02fcdaa396ddddc7235c3935eb4a8420137484f6f74dfefb504aed3a72e5134541263669f53ecec76540e484c94cc0e4bf29b3c720c162fff2ee815fea2b05c110c17103688d8653826525f9b65fdd5d353b4f46ea064bd854d275e2bfa576e74a8f17286055a340bb9fb9f4cfce05b7810fa3561680d28cb24451dff75646f484c3a7a6f787eca2b76c08709b806ffb9df37797727a95395fbff6ddef2db1c8a0d1805bcf6a6a17685328e751a9595692520b0c468c92146eb2972cb130dfec1d41695c6f087a23290a0831985f85eeeaa7bf7d74634891f8a715b1f42ee1a0c2ffc805f14a0612471012f2d861e933acd2467af360cd84f82336ddb150a4877ff7d019d55cdc485ec84702ef38cc580b70f6d3623a98a9563091c57eea3e1881dca4fbbab629bd9020655b275748094cbecf41b0367e89e5cd5bd87481ef186776bb267e2b85197a30d29ce59482eb7ceb25a8ed7633962d5e9f043730934a99e86e3c88b0274fd4f7f44e6661c12187585a4419bd7298afedba8dfcb1cb5927f540603dcaeb0afe10f5adbc026b520fe5b74f29a0690a0266268ea1688de14dbc3fca5b3d7eddc1e8f3bdf6c7cc7b93d2dd10b7a3ee6fa76d22b23d060148a18c3dfb6bf6eb7ce41b8be3997d83fca449682101aff9b3b8fcd77e9dfcc775e1adc37112e0328486c69d351072f7c1aa4f6eb8915e207344ba068c2dcb600cd44362cd49424241900a9a0bd801565be05eff8f66b073ece704274dcf8b4877c9b2b069c3193e917f0773b6ad4f8b8fb690a89066637d79c6c8a8dcd51a15462784c52ca7a3a82f3f7e5d1ae1e5c11d2040359971131fb1632d181fd969a1abfbe223aa4c0a2d45bbf80c09ae7fc6d66bdec7abf99c12c88f07e4354e9b33782e61c10bb7d40df745d206f2b7f2c36d440736a374771e0c4d53cd99767c0c9e3ac48ca907d1c0cb35205070241f4369fea7213ae9f84858fe0ca7cd897d906f33a6b6d6f9f25fe9b81f5a9f5ecce804069cc9a0e2b1573a79711f9b5a9e8b545bb5c0372c2caaf44543581d1c9fc4dac32980f04d31a1a7e26283c80b739517dfde97f39c17def582972b0abe42593d229507d0d3aec593c1c26683c4b68c0c92ddbc9e7f445a9ba51e6685ecb5dcbe659a7d41a1ae48447f1e45a5457696ed3c13f0b7357ae54995662762afd7cb6342b204dc0e6afd2a478a9fc0d48b94512ca7738ed8f1a439846e5fd10d7ce2cb0fefc86056e76c4b0c0e07c5f5052564cdfeea8d2251143a15f98c9c9c848ae419a28f9fd7163e73c2c7603316d6e8e62e5b1bfd9fcaa74da6333329781450137a66c34bbe0b3880669dc87e02b8365d3d656e54eda90dd5fd309debf5f67c11dbefe79e6d1a6f683b42dd4e02def8bdb9831ea2ea24d1e5c383d5b0b176a56d5fe7726bf020becb9f9fc841d07d6b92ed093ecb49ed0db9488ccae2f36d40a07ea4894cad359725d7c71dba08671a72da40ca5f347bb44c31887d873c15df084203dcd4e6a4923df28e77f6c59564af9b3b903e6228e3598325b9b3a8c6699b7348d5ef0d2e05a9c80f9358a22c58143d8e39cf22ab85f02fa1fd949f132bcc7be4d07f0ff5c9db28e31303cea6de6fdd9f6484357aa3fa44d4e07c47869bfb08def86a616572079abb836ea0bedb4ffe4f0496d698118ad4da57773bf20a958290e5463d9a2b52b2dcd3b08f9729d2b92119fc381550df56dde32268fa63ac692c5e9a1b77467601655d810383bee93b22f3d32411ee48aa96a6a0270d460e406f3764511fc7c19e21e273d1dc25a100934f9e8cab62d2bcb7cbdc265804b5e036ff90b7ce9e53e208359708699f270646c13f06a28933d901f5c00635786014c7c014b36eb95abc0661c377b3c3d5de722772b0cadb98dbc4101bf843044578f022a2e943b24bd82762bf7909b82dd46ab15578addb0587cf2d60331f55df847f148bd214072b3dc5b470a8990c865ed9ebfc8844cc16efa0981cffc8b41bb97616d9fee5a9b59dd15bce7bc4e40b238652a308dba59daf62ec42d84def694294105a1cdf8c185e03968b40971c03cf1c1062d517fb4952ebc5bf1760efc15264a0105dcbc4dae9b5835831be5dabadacd0f56db0975f3315888e4765c28b92de4b8b78b57f0b7564a0b6336ab22d3b906135927f4dc21e2b6d2435cf434a74200680523ba25656d39a1c2bc6beacbd94d42ece5592b1113cf1d87cd28f149ddc9f91f39fb00a36f4203051335dfc309b9dd4cf28aee528e5a9e5a751ff2e75be7d1fba28e60ae339247dab9a29f033b02dbbbb697d837042781f94218fa5477aca1dcc226fefc5624ffc2e57d180469508a71cc2693e127d277a9ac829ce738b63c2fa4d2fa85fb1e713fa025061c4ff477995905599a1e072a52849328e3e7e55708a9929eb277102bc12ff7f8391ea74520b220737fb2710b826c5c4e4434fd79187f197d535842f74f1987d68406ca122673ebdc68171492581576a142efae84a7bc51b3cfd8d94916a1f7fdc95255a7a542c4a272f1c25f444ae739b0cc92f5d92bcf1ab8d252a4b0da6e537b8199eb39c6509a1ccc9152ac560d4ede3c8628cdbdfbac17fcd59db441a9f34f5ac34f11898aa1023a8bc0b2d6bcb13900dc97cd4b2ddfaaecd8a8008ce22cce12719f811ee54396f0f3d3de07ddd36d3d376325fced7097a228afc47dd3588b35f7fc1c70a11230630168d06c336a3827d156f5763918bbfcb4380746d9868cf9c7715172ab8185bc0692b1c24a661a04a043f887661a945d716b65a93b3bcc6a45cf1e4cc7fe0630856f5dbcc1674c1172827658defacd61c0b1fa43d74e7636cee0841a1796974d313edbd94bb33cd054e893fae69528cc9e216f2668562994bd1b9166374edb0d097b5d7d659324b9145692d6cbb6d1cb5661603194b7c95fb8837dc637973787f1b6e22b3f224276836fa480fd4ce3184d65f36b38154d39737554237532ac0087f0e7c7272208df7f44959ebffc9ed0b39d4da4b38a33ba1467828150fb17b0a98dd74f7b841196b8a793c9de26f0c00324430e06a34ad71fef4ae46649d30eb8ee95d4d3a922adccfff0dfeaf468916e84f7ebf46cc96014178df635c4c808e1732e585d236b03d5cc15ded8051b6b16531ea59387ec1d23daa7b55d47bcf2a49f355685101bc59d2f80f663ea57280cf45481013f7af7dcd97c32558fa174311f411fea4504d73b8cae060f03938418f7ced7e79fa20813a122219193a8ef5277e8beee552ef5f4b618d80c61f80486cb9$5135b50e847ae1cdf130491e000381faf2e658e1c11713321243edfaa4c95cd06b915b8517016038de8febd8db246de766fbd68ae3b58a435c1a0948c9b591372c57d6c9dad7ff1850da1a6ac840e6105855fd780c18b73c080d6b048cc04563769f943503b04d0376da4f8f754fde39db83c9315e4807020eb6251c1c438827784aa3acdfe315b44c8407bd9d9cf8440adeb0afc9c0c0d9fed30f92b4228f880fe31ca5b2b63e8fdb103c50a45c204cb0d90f470ef6077986b8856bfded906344c3b8f628582691b3b8ba4dadc5d091d5112528e2099e05f3bd0d86836bdc0023875b616e655f1bc04655eb695c0e98ef430d918cdf5609405ad730091019d6c4e88f55a8d701d909056f98dbda3cfd0bbe8812de0079a2c5d3ea8780f1a83deddc3018b58680d1cd631076ac4521de4a7b05c1312c3341f203f0ac765901e93d205281c3bbe951e64a1596a8a847c88e12f55d369d544d56ea0af2e7fe1d09a0380f72ef6fdd8d6be4addbf72989f623d89bbb64b9445a472cf3463de5a77ab7ebdf73024950c9539924735635b815d9dd4bd69affa0ad56255993cfeb8bb24f53a392b8a831ef12ed81a804f5cdefac2a9bcdb4f7c0ac0bd738cac0ec439baeb34a5dcdfe387696555f313a5d750ef51fa7351fc53c2b67d5eeed31826e13bf6777b051cd7cf86aab3261607e86cf129a481584d8268a059e09e1e4c19472"; + +u32 module_attack_exec (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ATTACK_EXEC; } +u32 module_dgst_pos0 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_POS0; } +u32 module_dgst_pos1 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_POS1; } +u32 module_dgst_pos2 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_POS2; } +u32 module_dgst_pos3 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_POS3; } +u32 module_dgst_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_SIZE; } +u32 module_hash_category (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return HASH_CATEGORY; } +const char *module_hash_name (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return HASH_NAME; } +u64 module_kern_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return KERN_TYPE; } +u32 module_opti_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return OPTI_TYPE; } +u64 module_opts_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return OPTS_TYPE; } +u32 module_salt_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return SALT_TYPE; } +const char *module_st_hash (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_HASH; } +const char *module_st_pass (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_PASS; } + +#define LUKS_STRIPES 4000 +#define LUKS_SALT_LEN 32 +#define LUKS_CT_LEN 512 +#define LUKS_AF_MIN_LEN ((HC_LUKS_KEY_SIZE_128 / 8) * LUKS_STRIPES) +#define LUKS_AF_MAX_LEN ((HC_LUKS_KEY_SIZE_512 / 8) * LUKS_STRIPES) + +typedef enum hc_luks_hash_type +{ + HC_LUKS_HASH_TYPE_SHA1 = 1, + HC_LUKS_HASH_TYPE_SHA256 = 2, + HC_LUKS_HASH_TYPE_SHA512 = 3, + HC_LUKS_HASH_TYPE_RIPEMD160 = 4, + HC_LUKS_HASH_TYPE_WHIRLPOOL = 5, + +} hc_luks_hash_type_t; + +typedef enum hc_luks_key_size +{ + HC_LUKS_KEY_SIZE_128 = 128, + HC_LUKS_KEY_SIZE_256 = 256, + HC_LUKS_KEY_SIZE_512 = 512, + +} hc_luks_key_size_t; + +typedef enum hc_luks_cipher_type +{ + HC_LUKS_CIPHER_TYPE_AES = 1, + HC_LUKS_CIPHER_TYPE_SERPENT = 2, + HC_LUKS_CIPHER_TYPE_TWOFISH = 3, + +} hc_luks_cipher_type_t; + +typedef enum hc_luks_cipher_mode +{ + HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256 = 1, + HC_LUKS_CIPHER_MODE_CBC_PLAIN = 2, + HC_LUKS_CIPHER_MODE_CBC_PLAIN64 = 3, + HC_LUKS_CIPHER_MODE_XTS_PLAIN = 4, + HC_LUKS_CIPHER_MODE_XTS_PLAIN64 = 5, + +} hc_luks_cipher_mode_t; + +typedef struct luks +{ + int hash_type; // hc_luks_hash_type_t + int key_size; // hc_luks_key_size_t + int cipher_type; // hc_luks_cipher_type_t + int cipher_mode; // hc_luks_cipher_mode_t + + u32 ct_buf[LUKS_CT_LEN / 4]; + + u32 af_buf[LUKS_AF_MAX_LEN / 4]; + u32 af_len; + +} luks_t; + +typedef struct luks_tmp +{ + u32 ipad32[8]; + u64 ipad64[8]; + + u32 opad32[8]; + u64 opad64[8]; + + u32 dgst32[32]; + u64 dgst64[16]; + + u32 out32[32]; + u64 out64[16]; + +} luks_tmp_t; + +static const char *SIGNATURE_LUKS = "$luks$1$sha512$serpent$"; + +u64 module_esalt_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) +{ + const u64 esalt_size = (const u64) sizeof (luks_t); + + return esalt_size; +} + +u64 module_tmp_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) +{ + const u64 tmp_size = (const u64) sizeof (luks_tmp_t); + + return tmp_size; +} + +u32 module_pw_max (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) +{ + // this overrides the reductions of PW_MAX in case optimized kernel is selected + // IOW, even in optimized kernel mode it support length 256 + + const u32 pw_max = PW_MAX; + + return pw_max; +} + +int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED void *digest_buf, MAYBE_UNUSED salt_t *salt, MAYBE_UNUSED void *esalt_buf, MAYBE_UNUSED void *hook_salt_buf, MAYBE_UNUSED hashinfo_t *hash_info, const char *line_buf, MAYBE_UNUSED const int line_len) +{ + luks_t *luks = (luks_t *) esalt_buf; + + hc_token_t token; + + token.token_cnt = 7; + + token.signatures_cnt = 1; + token.signatures_buf[0] = SIGNATURE_LUKS; + + // signature with hash and cipher type + token.len[0] = 23; + token.attr[0] = TOKEN_ATTR_FIXED_LENGTH + | TOKEN_ATTR_VERIFY_SIGNATURE; + + // cipher mode + token.sep[1] = '$'; + token.len_min[1] = 9; + token.len_max[1] = 16; + token.attr[1] = TOKEN_ATTR_VERIFY_LENGTH; + + // key size + token.sep[2] = '$'; + token.len_min[2] = 3; + token.len_max[2] = 3; + token.attr[2] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_DIGIT; + + // iter + token.sep[3] = '$'; + token.len_min[3] = 1; + token.len_max[3] = 10; + token.attr[3] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_DIGIT; + + // salt + token.sep[4] = '$'; + token.len_min[4] = LUKS_SALT_LEN * 2; + token.len_max[4] = LUKS_SALT_LEN * 2; + token.attr[4] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_HEX; + + // af + token.sep[5] = '$'; + token.len_min[5] = LUKS_AF_MIN_LEN * 2; + token.len_max[5] = LUKS_AF_MAX_LEN * 2; + token.attr[5] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_HEX; + + // ct + token.sep[6] = '$'; + token.len_min[6] = LUKS_CT_LEN * 2; + token.len_max[6] = LUKS_CT_LEN * 2; + token.attr[6] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_HEX; + + const int rc_tokenizer = input_tokenizer ((const u8 *) line_buf, line_len, &token); + + if (rc_tokenizer != PARSER_OK) return (rc_tokenizer); + + // hash type + + luks->hash_type = HC_LUKS_HASH_TYPE_SHA512; + + // cipher type + + luks->cipher_type = HC_LUKS_CIPHER_TYPE_SERPENT; + + // cipher mode + + const u8 *cipher_mode_pos = token.buf[1]; + + if (strncmp ((const char *) cipher_mode_pos, "cbc-essiv:sha256", 16) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256; + } + else if (strncmp ((const char *) cipher_mode_pos, "cbc-plain", 9) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_CBC_PLAIN; + } + else if (strncmp ((const char *) cipher_mode_pos, "cbc-plain64", 11) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_CBC_PLAIN64; + } + else if (strncmp ((const char *) cipher_mode_pos, "xts-plain", 9) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_XTS_PLAIN; + } + else if (strncmp ((const char *) cipher_mode_pos, "xts-plain64", 11) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_XTS_PLAIN64; + } + else + { + return (PARSER_LUKS_CIPHER_MODE); + } + + // key size + + const u8 *key_size_pos = token.buf[2]; + + const u32 key_size = hc_strtoul ((const char *) key_size_pos, NULL, 10); + + if (key_size == 128) + { + luks->key_size = HC_LUKS_KEY_SIZE_128; + } + else if (key_size == 256) + { + luks->key_size = HC_LUKS_KEY_SIZE_256; + } + else if (key_size == 512) + { + luks->key_size = HC_LUKS_KEY_SIZE_512; + } + else + { + return (PARSER_LUKS_KEY_SIZE); + } + + // salt + + const u8 *salt_pos = token.buf[4]; + + for (u32 i = 0, j = 0; i < LUKS_SALT_LEN / 4; i += 1, j += 8) + { + salt->salt_buf[i] = hex_to_u32 (salt_pos + j); + } + + salt->salt_len = LUKS_SALT_LEN; + + // iter + + const u8 *iter_pos = token.buf[3]; + + const u32 iter = hc_strtoul ((const char *) iter_pos, NULL, 10); + + salt->salt_iter = iter - 1; + + // af + + u32 af_len = token.len[5] / 2; + + if (af_len != (key_size / 8) * LUKS_STRIPES) return (PARSER_LUKS_FILE_SIZE); + + const u8 *af_pos = token.buf[5]; + + for (u32 i = 0, j = 0; i < af_len / 4; i += 1, j += 8) + { + luks->af_buf[i] = hex_to_u32 (af_pos + j); + } + + luks->af_len = af_len; + + // ct + + u32 ct_len = token.len[6] / 2; + + if (ct_len != LUKS_CT_LEN) return (PARSER_LUKS_FILE_SIZE); + + const u8 *ct_pos = token.buf[6]; + + for (u32 i = 0, j = 0; i < ct_len / 4; i += 1, j += 8) + { + luks->ct_buf[i] = hex_to_u32 (ct_pos + j); + } + + return (PARSER_OK); +} + +int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const void *digest_buf, MAYBE_UNUSED const salt_t *salt, MAYBE_UNUSED const void *esalt_buf, MAYBE_UNUSED const void *hook_salt_buf, MAYBE_UNUSED const hashinfo_t *hash_info, char *line_buf, MAYBE_UNUSED const int line_size) +{ + luks_t *luks = (luks_t *) esalt_buf; + + // cipher mode + + char *cipher_mode; + + switch (luks->cipher_mode) + { + case HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256: cipher_mode = "cbc-essiv:sha256"; break; + case HC_LUKS_CIPHER_MODE_CBC_PLAIN: cipher_mode = "cbc-plain"; break; + case HC_LUKS_CIPHER_MODE_CBC_PLAIN64: cipher_mode = "cbc-plain64"; break; + case HC_LUKS_CIPHER_MODE_XTS_PLAIN: cipher_mode = "xts-plain"; break; + case HC_LUKS_CIPHER_MODE_XTS_PLAIN64: cipher_mode = "xts-plain64"; break; + } + + // key size + + u32 key_size; + + switch (luks->key_size) + { + case HC_LUKS_KEY_SIZE_128: key_size = 128; break; + case HC_LUKS_KEY_SIZE_256: key_size = 256; break; + case HC_LUKS_KEY_SIZE_512: key_size = 512; break; + } + + // iterations + + u32 iterations = salt->salt_iter + 1; + + // salt + + #define LUKS_SALT_HEX_LEN (LUKS_SALT_LEN * 2 + 1) + + char salt_buf[LUKS_SALT_HEX_LEN] = { 0 }; + + for (u32 i = 0, j = 0; i < LUKS_SALT_LEN / 4; i += 1, j += 8) + { + snprintf (salt_buf + j, LUKS_SALT_HEX_LEN - j, "%08x", byte_swap_32 (salt->salt_buf[i])); + } + + // af + + #define LUKS_AF_HEX_LEN (LUKS_AF_MAX_LEN * 2 + 1) + + char af_buf[LUKS_AF_HEX_LEN] = { 0 }; + + for (u32 i = 0, j = 0; i < luks->af_len / 4; i += 1, j += 8) + { + snprintf (af_buf + j, LUKS_AF_HEX_LEN - j, "%08x", byte_swap_32 (luks->af_buf[i])); + } + + // ct + + #define LUKS_CT_HEX_LEN (LUKS_CT_LEN * 2 + 1) + + char ct_buf[LUKS_CT_HEX_LEN] = { 0 }; + + for (u32 i = 0, j = 0; i < LUKS_CT_LEN / 4; i += 1, j += 8) + { + snprintf (ct_buf + j, LUKS_CT_HEX_LEN - j, "%08x", byte_swap_32 (luks->ct_buf[i])); + } + + // output + + int line_len = snprintf (line_buf, line_size, "%s%s$%u$%u$%s$%s$%s", + SIGNATURE_LUKS, + cipher_mode, + key_size, + iterations, + salt_buf, + af_buf, + ct_buf); + + return line_len; +} + +void module_init (module_ctx_t *module_ctx) +{ + module_ctx->module_context_size = MODULE_CONTEXT_SIZE_CURRENT; + module_ctx->module_interface_version = MODULE_INTERFACE_VERSION_CURRENT; + + module_ctx->module_attack_exec = module_attack_exec; + module_ctx->module_benchmark_esalt = MODULE_DEFAULT; + module_ctx->module_benchmark_hook_salt = MODULE_DEFAULT; + module_ctx->module_benchmark_mask = MODULE_DEFAULT; + module_ctx->module_benchmark_salt = MODULE_DEFAULT; + module_ctx->module_build_plain_postprocess = MODULE_DEFAULT; + module_ctx->module_deep_comp_kernel = MODULE_DEFAULT; + module_ctx->module_deprecated_notice = MODULE_DEFAULT; + module_ctx->module_dgst_pos0 = module_dgst_pos0; + module_ctx->module_dgst_pos1 = module_dgst_pos1; + module_ctx->module_dgst_pos2 = module_dgst_pos2; + module_ctx->module_dgst_pos3 = module_dgst_pos3; + module_ctx->module_dgst_size = module_dgst_size; + module_ctx->module_dictstat_disable = MODULE_DEFAULT; + module_ctx->module_esalt_size = module_esalt_size; + module_ctx->module_extra_buffer_size = MODULE_DEFAULT; + module_ctx->module_extra_tmp_size = MODULE_DEFAULT; + module_ctx->module_extra_tuningdb_block = MODULE_DEFAULT; + module_ctx->module_forced_outfile_format = MODULE_DEFAULT; + module_ctx->module_hash_binary_count = MODULE_DEFAULT; + module_ctx->module_hash_binary_parse = MODULE_DEFAULT; + module_ctx->module_hash_binary_save = MODULE_DEFAULT; + module_ctx->module_hash_decode_postprocess = MODULE_DEFAULT; + module_ctx->module_hash_decode_potfile = MODULE_DEFAULT; + module_ctx->module_hash_decode_zero_hash = MODULE_DEFAULT; + module_ctx->module_hash_decode = module_hash_decode; + module_ctx->module_hash_encode_status = MODULE_DEFAULT; + module_ctx->module_hash_encode_potfile = MODULE_DEFAULT; + module_ctx->module_hash_encode = module_hash_encode; + module_ctx->module_hash_init_selftest = MODULE_DEFAULT; + module_ctx->module_hash_mode = MODULE_DEFAULT; + module_ctx->module_hash_category = module_hash_category; + module_ctx->module_hash_name = module_hash_name; + module_ctx->module_hashes_count_min = MODULE_DEFAULT; + module_ctx->module_hashes_count_max = MODULE_DEFAULT; + module_ctx->module_hlfmt_disable = MODULE_DEFAULT; + module_ctx->module_hook_extra_param_size = MODULE_DEFAULT; + module_ctx->module_hook_extra_param_init = MODULE_DEFAULT; + module_ctx->module_hook_extra_param_term = MODULE_DEFAULT; + module_ctx->module_hook12 = MODULE_DEFAULT; + module_ctx->module_hook23 = MODULE_DEFAULT; + module_ctx->module_hook_salt_size = MODULE_DEFAULT; + module_ctx->module_hook_size = MODULE_DEFAULT; + module_ctx->module_jit_build_options = MODULE_DEFAULT; + module_ctx->module_jit_cache_disable = MODULE_DEFAULT; + module_ctx->module_kernel_accel_max = MODULE_DEFAULT; + module_ctx->module_kernel_accel_min = MODULE_DEFAULT; + module_ctx->module_kernel_loops_max = MODULE_DEFAULT; + module_ctx->module_kernel_loops_min = MODULE_DEFAULT; + module_ctx->module_kernel_threads_max = MODULE_DEFAULT; + module_ctx->module_kernel_threads_min = MODULE_DEFAULT; + module_ctx->module_kern_type = module_kern_type; + module_ctx->module_kern_type_dynamic = MODULE_DEFAULT; + module_ctx->module_opti_type = module_opti_type; + module_ctx->module_opts_type = module_opts_type; + module_ctx->module_outfile_check_disable = MODULE_DEFAULT; + module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT; + module_ctx->module_potfile_custom_check = MODULE_DEFAULT; + module_ctx->module_potfile_disable = MODULE_DEFAULT; + module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT; + module_ctx->module_pwdump_column = MODULE_DEFAULT; + module_ctx->module_pw_max = module_pw_max; + module_ctx->module_pw_min = MODULE_DEFAULT; + module_ctx->module_salt_max = MODULE_DEFAULT; + module_ctx->module_salt_min = MODULE_DEFAULT; + module_ctx->module_salt_type = module_salt_type; + module_ctx->module_separator = MODULE_DEFAULT; + module_ctx->module_st_hash = module_st_hash; + module_ctx->module_st_pass = module_st_pass; + module_ctx->module_tmp_size = module_tmp_size; + module_ctx->module_unstable_warning = MODULE_DEFAULT; + module_ctx->module_warmup_disable = MODULE_DEFAULT; +} diff --git a/src/modules/module_29533.c b/src/modules/module_29533.c new file mode 100644 index 000000000..eb02f6524 --- /dev/null +++ b/src/modules/module_29533.c @@ -0,0 +1,471 @@ +/** + * Author......: See docs/credits.txt + * License.....: MIT + */ + +#include "common.h" +#include "types.h" +#include "modules.h" +#include "bitops.h" +#include "convert.h" +#include "shared.h" +#include "memory.h" + +static const u32 ATTACK_EXEC = ATTACK_EXEC_OUTSIDE_KERNEL; +static const u32 DGST_POS0 = 0; +static const u32 DGST_POS1 = 1; +static const u32 DGST_POS2 = 2; +static const u32 DGST_POS3 = 3; +static const u32 DGST_SIZE = DGST_SIZE_4_16; +static const u32 HASH_CATEGORY = HASH_CATEGORY_FDE; +static const char *HASH_NAME = "LUKS v1 SHA-512 + Twofish"; +static const u64 KERN_TYPE = 14633; +static const u32 OPTI_TYPE = OPTI_TYPE_ZERO_BYTE + | OPTI_TYPE_SLOW_HASH_SIMD_LOOP; +static const u64 OPTS_TYPE = OPTS_TYPE_STOCK_MODULE + | OPTS_TYPE_PT_GENERATE_LE; +static const u32 SALT_TYPE = SALT_TYPE_EMBEDDED; +static const char *ST_PASS = "hashcat"; +static const char *ST_HASH = "$luks$1$sha512$twofish$cbc-plain64$256$72257$8ca21acee1c388ad1953f25c035e9eebc5077e40ccb5754b07ce82a6508508ab$9298bafd81e98ee9eaf2a85ea74e419afbcd521a8117dffe7cb3fcde8dca3d5d76861e6cd5ad3991c4498209e786bc0bb35a3aee7d037e58029985e055a06290745da697d96c5a053ac33065f3c7c0ceaca204236e4cd4f4b7d54069e4b10a71c77f095a43e659142760f0a9fb6905f35abbfef252e372b2cf9ada0e4ac58511cabc8e2f3b42301f3d6d33a7228203cc8dd77236391931adc3441028acfbab381b784c1d0f8cef2e3f073f2f09d6e75a8a92bc02f169a6e607f43d249ee08ca753c32e82cf48f4681a98eaecb7732689fb01600fffd6b170d0b77149903d78ea6e5ed1b3f84736611ac053d38b51e382e65e35e0451c0cb00dfdb5c5881acf557bb033d508ca5ad391af36faf3cf96eb29ecf42d18e98d9c7c458393ccdc6e5d538e5732ef5cc83dc0e84a0dd5957b37468751c4457f361bd81267cd5a4c438af10d56a00f3972830392f155140a71131aa038e0079e07dd45289e8f4ef8a8cfd7920799bfefaa356959f71f353bcd4781cc5106f0773f7a6015efc01e572da62c3e3cd5ee432f567f53fa294d3ff459b3b8ddf3b543817129a19c4fa3c2d6316d74285ae2e03a4985b48d6220a7aab22aae8e3d32f8947c3c95be6c1bd7b9f9bb8128ef27121e284d689bd03a670b57648806775474a8d3b21d1088ab2a33777344e8882f71af8ea82054c3031fc9795ade801db84e70271778cc51c18580e33c1afce88f8ba9f1db28b45e428e58cfea113101e9c66e6ce05dd32ca450936c2c03bf0144930e10a19e37001a2c7a4d0c64efef701e2150a11069cb439e2758a556744aa5b746a7f3df0964ef97165fef614b7e2ec51d5883a6e4a55a7618edae8780933154728c307dd2671d907c4d4a32feeb623861148bd9a080ee4a96d8f8ef2996e4cc205b6aa174f8898827a58448a503e25f6ec7d6a7d361a3123df9b7c8234eb027949dee9c0882aea9e3d3a8f4129d4c4ce2bf391a25c225112df08c275b668bf37f446409c90aa6ce667e2e6fd256c1277929c4e1aa2bcaa4585ed5ddf1b45ad910e404ef4c3911ae2afbf8683dc47b10f8e7bf1fe652ce7489c8b2d679900aaf7ff0abf9fddcf16561576c361165e174a0ce134f01149e64c3931a3d0a53da0c6949c617680155b70d46552c6af5852d76195c6f6420ac448a3e49f9e33b6546a9efc030e1dcac485caa2303145319668eee9b57eed05552e7796bd3f3c14c7c7f3cc13b6a3843da40a5c98a07a1694efad234c57000d364c96e3b5c1cece27dd4e888145298b8d2279a32e36e180c6393654fa7aaf8f6cb1a4504f9f5255a27681fe9ca0045c2ab734828b67255e68dba484014d3b41006ff19bc26c97705fc08452371a2da5d1a51935008b0acd65202702631dc828075d2739ccdd67e32896c7d643e333beef7dba38f9db38fc19787a4351ed95664add231488b01b4ed18ef4a444ed983a12ec7235d78f3b7081b8af5b70bec18a0b7c320512c30f5618096b31c6afff6168c0a42421f3f32bf862d79542db82592cd673df837adf7f863cc20c77f949255c1527577ca018d9053fd55bde899a1c9cc5781a7adcc3de4eb52475ece935bb8abee283a302a4cf65f75707c377a6e3299ce2614e63b2a6180fc50b65eb7b451f6cdefa44f0c2164bf23fc2ca80282b2c20f966d0396a1463efbd603026687f34ddbbb184462fa0b635faa64490938ad0b2eae41a5fcd913e9d50d8e2926243cd2417528283f827914f600dded0d1949ac14f253bfd056ffd54906f04ff8885e977c25e3a398613106c9deb01e8d4f746bf8deb7c2f7033846f4f73197c192e489d9e2c380179d81da7003972d86852f353143b13bc945ef81b850556a36af10d3929ae67052a035b78e9cbebe25f0724fa3231eee3d7c3995b1f08c3523eaa507437ad853970cba4f7c073523c16a4b4263d46f4abd51bf3e9368d3e4da1c1afb29ca84da860a59bbfaf983a009fe75cd7a51b5dd31c21ba4daaac7cc8642756b75437ec375eb9c71008cce6433c930e7d44de091a48d71b05c61ae5531267e2d93ad8fe397ee854619d973623df4f5b31035295345368676f95847c51f4009a951929ac17cc09862a9a0b959ac434bea7826963cc232a379edf42e10637fb8831aa24fa72dd438cb83f91280cf91917876f47aaf37b6f4240a42e4866a94fb3d8bc3aa166324e7c645c90daebdc0bf3929a56714c5f8776329012cabd72b1530654115b0e712b21811cf972be7b06b0d3533a9900470408c2b32f6141b498990756319133c3e4bfbda208dbcd07802cddd85865ba8551cad727034a489980f27d3a38f68d3cd53f56a786ba6e39cf98363d702485197a8ca5fb846418ecfe06af71275b8a11ccd9d1e1356b732b36d0b4f147e5c5276e94faf9667c927e2316c24699673694d54bbb92f6b386d9d95ee07e6b31fbb9efe528a33e02f22d67cd1246d8d6860ad49813d6c5764d5a0699532a85c4f888fb3e3c43162d44e1ab379a8f3664bb1169946867367308e0388fa9ac36a12a1fb1c1de2ce6da613bf313e7e2b284b0485852db1c1e47e03c043c3d7a4620325bbe74788ee8b0435c506c2d84866904ec51d7d83080dd3fc1bd09eac73285dde090445b63daa729b44d4191443e7049303fdc3b16d71e38c008879319ad0454d00c236729a96bc9c7047a90e118b46a5a26c7f79d565fe42bea488c9721b9d38d8dcaf20381ef888dea4c77e4655fa72e0842626032f444c5a3065520b7e0a9b70b31b8f66e82d139f09ed35053a9e099d9300b64181a7511a05bb1fd4385647d7b5433a1b12339a2f3517566826ef381bfa0514171e86b416fdef2855bbd82ae1f1860fec666e34569ced4747340fd239893bbcdd5f2e80dc716f376017721847e4bc54571208e7503ec3b6b9c33edd3329be7a48d117924116501b26c3902ce795be68c441bcf15a8141a17044ad6143317878fb602fd6bca49a5ed2d28a4f3406bd8019e37f8bd83c94d1adad0405ca96fbcce74d06cb9f308edf98d2ce5bd7e7040ab18f6baed18b4deeae03e833897a58d182588bac2528cc5d0d87bdd4ff7e56bc8aee63256b22f0c79cafafacf0cc1d8a51dd385520880c40cb14b471d9e13789a1f024916b7eb77e10a6c0661d0b97f8bf69854da1f0909158ce64c9106ced8c2790ccce79566cd48e9659dd7c452c46b867453c1a31bce964d93c2c953b968330ef7129e17020be40a95a5260333e5334f900329cd80638edcce81878543753d31edb745c6a7a1bd2d99d5ada247376102b8f785a4918a59933f6c38babd2e6fea52a4eadb7d3c41c1f6ebe05aac72602971135a0c338c00b5c7596b6e3a68514a2d863d36b35fec05ff3d705993f403c27397f5fe5a95484c60736c53c288d6b92b940cc6db56fa74abc7802d02473a2ac2ce0c8adf6178fd25d643c9c860ec1a02c0842abb0c9d24294973e30ef80e3e312641e6368a93078b1ec29e8c0f047966ba11ec9cbd1775c7e233328c3679430d8f2bd164d2db2a4fe7449056026cfae49d9144c0d52cdb18229d3ac229c51bd463b1cf2c35c929c898a58c6c35bef7951961503b54a62cb7605d017a3c337b05b0b074da8dd0a8bd59996b9b75defc773f8a1f40ce8780b351bbd77bc58afffeeb8b617e45b8e9d06c6f1c39ee96e7180934fb77be113297c6a0b72779397296b646f6f0dff505b7fdb4a0970f3c327e490887d4ce53a27214de3d6bc968cd57b7783a00cc77e69193073723323f01ade328b0c7576902d709a7e78ef7603dba8f61c7372ace7b855844ffeb97f40294c50a087bea88408e56a3f9e4d3ed6c63347e153dff9684415f779730606893335ef192451a0c8ec92d2052fdff693f1e744356a5887d06ab624ef8b3c323ee309631671580f0720d3a102610b17e1eb70e22e697c789cbc48f068f77e0e39654be93b189fd9280df4d5eddefd51cfe9535cdbf35393611ca1b61126d983294d08a65eee7d4b8e377cb3614d084d3cc4cadfcc2815a924c6192b160b9dd4c2a7ef4eedd8e446ab0db1ee2f86594f3b5ed1870e84b7d16414a16899216b106af69c32b8ef928bc4da210d6d5e0959b135081240abf0192aaf52d8903b10e75ca062cd8198d0ceb39f5c5337a83ad3aefc47f05b39ca2f8995928daa81cfbca923740d964bb1e293be8216b85176ef5cb9369c08a0c735856ec881d40b52a6fe38818e17b49cedb1702287b139da6fbaf1a26a33cfbdc815c306d1a441394883986d186eed69cdb59b2419510cdc69e80327056ec46bd6d8dd50d6357abe87c9f494d3d65c2d3485e5b72c0fb70a1eff783ad315c7860268f4dc8e4ef5da486e4ab31b03095423ab73cc858b31b20c34f8c35b56b2fd6b309805a66eb9970498cdf8b7fbf1700a34fab3c6f0ef55bb0593fd8b017d130e32b53a37644643e232e55159066d21e0153a6ab009385fc76100482ff77543e11e89c1218831f59cea8d8c61a5a4271c136bea812cdeeffbdc42131f0737a029cdd12db9da28968b2beb26c5d19ae54d4eb47d4110ecc5020fac917e588b65f5b50f09bb0ab87fd831b52661fc003ae2abc617eae015af6eb462b3a9d759c89905360c735b09a1577c0bd9326547f68a417c097866753536924cf3e04dfe8f5e497d41b6ea22518c442531a4f00a77e45d8f0893bcc6645f6b333a9f02be4acd1bb57839a6d6b31a32f02fc88f62b1489a607af3713ccc28950a591e355ee1b210875353a0511a394cb1fe724c84c9996daf6d0bd273cf07d8a04a8fdb70c421da7d7a2a55a6653128a309bdb4fb5209fbf07ba5538f5abc08e913015b6270fe6c1cd54c1b3e9e156dde1aadffc6155509a612c46229f300bc979612fd1a0a384a59562a10a60b1f99de3061783cfb9cb809c5eab49048ac80b4b6101f66b697846af90e8251c566198327fac7452c732308eb349d646477d5b1f2bdc6c4b764567fb5ad48d667c6d20c2ca793842d125f0d2cb039fcdd5e97685d185a3c8a099fb51661a2e26d84bb63f985a4891c385134d2b862cde950f0c46204c8f4758e83f5d9483ce6501a09df8ecf62c764c9177764bb0418f3a6edf10c6f5968f1c9311868d4e750060a41dc84d3576bf7b2edbf339f813fa8a2263991ba3c7ff1a139969f2da90e90600f0cbfca17ea08d9f0a54112876b9f58fa2eb4dcb527cd77ebbaf31ba9f8fd1b4ecd0d6f096c42cdaf554126f02071960c6863e165a3291f12978cb14dd1828d56eb2e318f3317f474ae0d7c9c7dcf44aafc4bc250c8479bda8a352f39e3c37d794203bf569a2f5f2d4dc8c600c13f112a730ad36c57c0ea985101d635a79dbcbd0e2bb4bb9a1e12aa244a364922af9e1dab4c06fcd5aed17ec93ee315ceed609842dd2e395b600b8bb1097cf6cff18dba43b731a056dc87de2dde00fff1c8aa96e1dfe5a228b1b16dddcdb7c1caff81da74c8e50a207e140ef84f7cfa5070e3ec1681fe8bb801f4f2f3aa7bd8ae08fdda2a70a77b41b2e231979e7462f7cc62c159db6ffcfb58aa17576ce35f20ade8c35435b770e490ef286f1ebf6d73c53e2761903886c0233e82a81da5d1805a51024bac4f969a3b0105ccd80d4a47eadcd39b4a2485732a7ac96b1cc4d9f9ad8ace489fc3eb73aa7f1e44384639792833d5928983cba15ea62e93f5a67abb99c4e3b6486e5ca02564d050a7ea72fb67ec56f51b1e3be81d1b1138c98967683c94761896c0d08361e5c2e2131b2f89b9f19c8897aa2b5e5f27af4e3d1bddc2f73fb41cd75cf0c9781f9b0d10a398609867b1bfbf32eb1fcc1df5d4cc4c137c48747caab18c213e9ef3fb6127c712e8b4906b6937ccf6ff3ff7713093d097e342eae0db2cc572f9f45beb09361eeb417441161fbaf6a15420579dcc7f3913b69ed0b837d39aed6e12288405593bb98657a27832a617f5eacdf004728f3a9f1e7f4ac84a651815e46ca686f4351591e1a076a219895f72f76f02318d82fbaf0ea83921385d107dc02ad5da0b46bcb36086c0b267b1ac8c98ed6bccccf2ad301cbf970ad0da8f05d018cc6f2507033038c4fccbdc1792d1df269890536cb611574b1521c961262258af6f152809f767c79ca14cf31d4e79876ee45678599dc426229a62361eda0d44aa0deb3e32b6eb349e34d1f7a430713d96ec122b9fe10f416625df77654613e9a06ec6f4e22379fcc6f550fc01e990b3258f71298555d6cdb21e21fcbc0adf04b0f5d448d6c0a66685727eb7a856ce31b626c52e06d5a2c601dd4c3711cf78244b7c9bf9296a75eb1608ecd9a5659067a8a3972a2ce291b1a61714bbe594b8f9ff954dd19154d657c41e59827597c4321fb21d7bcd00d9f452798bb8a52429a643ada21044ad8d76c4bb201e33cbf67e2ee394684ebf63956f5e2f76fb4da01b50ef493c5c6885dbec71a5aa722d253348fd0fa1fb83da9cc0086f39bb3d28faf65661285829d611ce4f84251203c273e0f2284e1ef99dd668a13b763ad47bf281b6745b19290748820eca3414c04ad199e6de7296f25df20240b4955954f4d66e3831662d7bacebef64275072ab5ea31bf9088760adf8346c15105ad1043bb1a68d10db169447b19a4d2cfe4ff4a670dd7fc3dde1d49aab2b87703456119f86ffd69ae9a63b97418051cee55d96cff81c00d8c5205511426c5b43b0ea5e6dbb6a0a24b4b29441ff762afdcbd9950004fbe36d873f5ac76c8fb7b0b32aac57f9f18d76cdfc1f9d7e3dc5eef59d3e72ec84044ff9abe24bf74998c7232b24d510afc1a9b2505967e9568b3086c493495d9c5bbfdf20548c3789074412fbb53ca45740a1a53f125f5f943aedec14a1f1e9f95bf268eea240fc07590ee524e957f0496b696a02aac805902f2daa72b3fd3584e112445c401f376aad623013fcf6fa60e3f64f04232aefca03de04aa16ee1f9a45436c6bc11435ce9b5a07c7fc4c4a99e5a8f477b25200e5b670997baf78e3c192f13a24dc68b9bcd4bf7d278ba726bf80bef137552178414ed2cb503570139649724fff03eb4207845d486ed7622acd3425c0d19ed4962abd2ba48b4503664379c752d0a11ad3a235cce577b4857eb7674cdfb768fc45d28030ef56f31208883cc0d2f11460ecb60591f1d1fde9490cff564bc4ec162889435e413c94a493302354b5c378c001d3b5c1ecf1e8ef97dbe4b2d362aa02ce5a3dc858a862c38b8b22e7fff7532c71981179befa316418d76ae6c4cb298b56bd3152cd388eede913e671ac8cf5dde750b0df29ff574b520a118e330d359bf598989e9474c5350095c44ce26873a4a8622f55fc672bc47a811c95b36d968c1326152524ff5e633f220d59274468c974e36555280139e7a484d9aaa873e68b712d93b268f63f9ba85cef94b71ba188ce9b5675d74fbdb942a3dcb1400d1233c55f9fbf4914ca6e7bbe241d320143449528b11f6cffa53d033fbf5ea4d231048258753c52d716d574071afbaa89dd26cf5ce3f0ddbc789fd3641bdef5648e85a73e23f2b9674db946de112d859d8c0c64620980acda05a3244367358d065e4e6bc1847db805c6b973a502fe8cd7d8621dba661058e6e23221dfacd50703b365f31451582341f1117e5068896894daa4da2ec4a4ec0adbe0b7723010ef9fceb4fc2af9807998655ddbf2d9d83894b399cdbea5dfb65309c7f85c33572eb556488ff7ef507601c7b15216dc6e5eb79732aa53c561d833b048e19be040e4285830b36dafe326e86f6bb5203a996f6821cda39fbefe3eac4e9d03549ad68319e0df8d3dc3cb3393548a9955d4a0543acad45e7d60c6d34891ee786b58bf52c9cbcadd74972209c40f322fd4cb4f75c95dc255a28aa6dad3f75b4ef5f13ec1594a728bdad4a6842b43419c30378acc5c228a6aebd621024de9f8dd2a5156ba9ad8f6d1ca9a528e3329dcb96e9542c029f93317ada8da7120143f70eb66ccab5bb517f9d18ca4a57d1d57896d096b028359ac55163bab22e02ad4d25f3c7c8438f291f6ef2fc1691eeee465d46a5b5f0955078ac7786905be2e18513ca19d9ad10f2d75b71c09e4cd39d400c6801df9ad18c022393a6764b11b1a2ddc20f944e04c78d48a3df76bdbeccba929bab46cad234669c1d06e16ea23d2fae4c89016756bffc2a5b3356d34fc61016ea6523ab756b7dc55db5b340b2502c1a8996411d8790de915c15135e84e8ce5a6bc56035175164ffda00f976476e34cf18faa98d1e575a016b4109f3859f36614ba7cd3727a05764d6633b96d5878240c775a235c128c8930fc402cd9c4e3176b41d578369316dff9203ae4dd6993262a00b34f9b1c7b981e9533eb78eb91f33aebb7bcc7be8e023fe9e7f045965ffa2d1806ff870bb3d98ba2aeeae8724b37e144972adcb5700269e3a7dade619f6c1b491661620909a1c8d61b37007ef9a74b9408628daade5f8106e03f71fe893ed67860349cd2f86122a5df1c384b26f850de1c3ab00648b2478378259f2d9fe02efc7051e4a52c89cfe51727ca4c8d62a6661d5ba0b26446c4f975be6b7e504b6b31e844ccd3fd8d8dfbb1a108e681f90b346f1cf0cacf147e4ec2d16c53a85714295896c02fbcf0d03ff37c8f7d370e9d2dfc676201839ee9227c834e61d4a64b8527fc9934da96e475ed6453039b9c977619405d1f8486e291599267da339873a4ac9a9a374244acf230fe7d5427f0db366569d367dfdd4d02a6d983ef20ffeb58c1129c39075ba32745ff6ea42ca641c96d411ccdb9dde63d4747ac4069f610cea66d27c5533c8753ef5882f5821b00a1c8951fbff5711670c465c628d1b85c100c4cddcb8b25140022f67afce097383426ee8f415ac31c798b9b389565972c1e82a5d0a0daa963a3efc9d63928a1640ac761b96d6aea1add7300b3333ff26d4ee651d11d0457be8f43104b80246ce5a2b1af07274d22e86412dee463c29deb044a6156010e853662473f7cf74308796f0b04e1ff8d762a749a288d3456bee134082e193bcbcd58be695a79ca63a1f4b8edfba11cb4c04e24cecdf0ae497cde2fb37a821f350120643f5aadc1eabdd855ee5d6732900d19d6ced414e3af934ae76259b994ed6ac8e246a2bcccec66db4983db62c26074860c6a8940b66df2e1435c17cc33973d5688adc70d69ca3bac2f3162a5e49aa91dd9c29a09d6b92e224bd85496f3af2e28c2968e3f19feb6f36976ab4cab357aa01e8099c999fd316b4248d2ea7e8d95f4f991602726499c066b79668bc31de559756bca031b618b5ab4d031d32df795430464c24ca49b470a0d41dc9714c88f07703c37bc7cd9f6914d91a752726f6a52d64652c6e26971098cd187ba23ef53854f70f606590ae750644e0fa1a2a284a77cd8130ab4a7b1fd10e3ae362ca1b97e2339f381297602ed25895b0028180e10c1a9ea670bab3a9dd5dcd612f77510ed7bc578efce9e36360dc80eae2a56858cfcddf3410318d3894b60024fcd32cee9c5915771e2d953f5bbb8a7607c1b396d02ab54f44a1dcbe2e572c06a7805dd91c9418edee3b1d976e1f3abb573d8fc14b46da15702885260e256b5139dae0d7161eae428d2475cf9e1ca7298ff48b77da342715643115234444695a28092abfed7d16643065bbae59a114ac2211823016e1e2a6664819cbc09b2721091235cf31d57d9a61c09ab9799a93e56f3069e702ca988b778270395d7259e20d61119521511e3e1959af5ba2936c588f0bf363a7c5968b94343301d571839289bc8634820e611194a74b374c3242ab326627ce14c86f8eb8e93c9b2c7068bc486e50652970ae448caf692b10b33c875aa9fab21f7709d0bda8ad9c46a49f0834d19cbabcedb1b2ff8c8075119583e711b99bd841bd554d1a273380c21151c2e53c19c36690b599da8ab30cac62ee4a9cd1d58c9fad329d697713dd70aa620fdd051bd3028a607932e70b6eef93438ecfa4af57ec582b28b8825214b061bb1756aa0bc28274f9c43b20a7eae4110583cca8f73429b2460b8a2291bb58a4e819d94d5473ed19a0e6abd0e4cab92f2b8944e1791bd11c6699017efc8c5ae446b8795f88e360ee1390b5b0ca53ae5947aba4cfe223e8dd9562972b4f0e8004c56dcd664d77979458f920e5d0a4a457737584f7b505c61e58f5d79d117dfff8baa123b60a4ab629e5bf3cf84c201f175af1fa18e8e4684addb3710e8cf3d63f8d38df712579f389da75a93a77a049d514275dc577080c0131e40ea1f091e1dafed2ef37ee0236861ad59c52eaad188d82187e198b8234d4263dc21918dea3bcb3635050bda024054590fae303bdee96fc360ff908d728279b186b5745c2db37eb79886cd3c3b6087cc746e135c98704adb6b6f7e275b8f630e039da4631ca9ce186b0be4ac83fd1c87dffa7245095012289bd1a82af4e06112aa81ad1f2e5fa6398d571d4e3c39f3f8fb71b728f6bf7544878cbc2a2b1547c82ced8159aa3024d58d035690995c24ceb7b44097ab9ad6df55a2f6275800bbca93cdb69c6096a27cbfe2da249f9365d15339796c962a9c9a443a13a8e495fd066fa30c3f6af79e880035867c7fbb16d75fe509e67b0765031589537486de96e6785cf71b25dcf4be18b8f98227fe62b115d0a6595175f4e0e3cdd6ed173073c64ca07155be74deda0512fecf278d6e8325050b3da867cf7c636b12eea9950b073990b07caf531078d7d626ab1c0744322bcf4db9922119149326c64a22ae89c94a8622ecde116fbd07d3fedd0a8e28c3624b36e03e5bfa4b33ee341d939e0782eb4dd23615a6b8d6de65f9b15f09bfff0bfdb29f9c9e9358b42dee1bbc17428c44df0fe66074d4d69f8cb0b011abb5a6433d12990cc26516a7351bee5354e32583141d4df93855c283b7c9eb2118944529e94a803d1f6ae6062d2ca1ad4c266e7b3e17175c7c7f728e2d7178031c5494f7e05c43db8b75bc07434a6d5a37c62b8a044b76b4c307d44a7e24fb83b656a52a6a0e59e59d7261f27dfcf462abcc99222a93b33848a84a15b349e0918e6d3c4bd2cd7d201a74995f04006c94ae9f363910d03134f18c4f400f3673850fb3587e759446a1eaada360eb24a7a42d6f738b35268a53a950039e4e65a679f6bfe40252aaff280b4ee4f95c689f309208734c42bad6f1ddb5ee0ba6379f70ca21644fd7212f6b3ab91067f986b3333f6982f2598836be14f0f410536fa760226ea5fb6ff36f9ecde62aeea737ee04cdc6dd9d6a75275c957be5d29a8ececefdda9ddd26c000b5b82eff620ba08f891981bbbc814a2f9aabb8b45716c974b6894f3cff2441570acc2b511e6ae42635ed1012cff988ea97bcdf61c39c214ed352527ef2e87930e52abe201022850c506217968799a79185528532fec6eeb1c436da8995d449d88bb1de146fb7d2926c63024363067d30d0c71207767cfe50105b5f92f0cf046aa7d7cc198d180f9708a37bafbc1570add9406972b600b17fb13213cc3a5ace0d8bee23a34c20e7b079a53f12e8ad79fc961f4214f83b63992d875f87775fc821e3da65377cc77db40ef821ca0f2df3a7805be280c3f6ead94667ee56d981e88e43a18851ca2eb15e04ca7794f6371d75e9740b899b1e9095e330e8dffadc2b8b6aaf15ece9fc833e104bb8c22f19b2ef568f22b54983bec26b5e67221f17dd50e21070802fbf40d4a1e992317de65c4984f15c1f8adb98fa3294e422ea1e7328db40cb67ad8c34e0003d2c2d6882cff4b8dc848bb3693d02987586d5a5ec0aeb265ac986f26586635abe4e938d6106c6d3e1e1a8fb52470f90bf28f764bc82b93108aa92d06d59859e1e9e5d637f226ea4009d4885455d099062fb2abf19d36cd2e886eb843cc32b1def168de13c5c192db42fb0232115ee50efe8ea24152882644d6032be65a574caf6a98b057ce55bc8079623798f76cd39d32cff4845e67108b0953e40bf1d8772e562b39bca48ae85df754f9ca4afe458a62a2a74e25b4b40c54991634147b6f3ab7ffa6b51c4baa447f99d51899717545e0886010ac22f3d2c56da4cabb82aa221851a5c46cb47ed14291d757b5b3a5b15228ec5ab1fd558956e194eb60eed4c3ac246852f34dc78501aa7f40b958d554d33d849baa0ce84e351085e9bc144862cacde2cc74dd365c1ef445479ac7636eb2832f68b9f54c1febc58288ea5643875527cbd2b9004ed6b21f14e8e38d52b84378a0eb79949deaa2e47e0f40462f8574af6bc1ef32214bdd94552006cfc42fc809e85d74d748e8809a41cf9eb30b24ba0db39719067fd14638d0b1191059f81713a16b763edc3ce4ba3f19fb7146fdc407fe0f738d67b5475cdcbe9c305c79cfaca3f1da2f10603c57b9270ad5547b02cf133b045048289f1251bcd4478c5511f38acb656081b639cf99c7fb38c59e4462f707c035bcde4b3f647c66bd8177cf250c5afc6d0706b014c968dde184358b15f7542dee285a2e670eb460850dca9c2e55967a8f9347977c7b642da77eb8240645ea87b0718b1abf80a95ecdeef5753b3cf4c0897bca8bbb658f59e0c223d51e733cc3c4af16cd2a3f85483530c50f7eeab55028de00c923cd93b4bcfe71f52d5bec708d1fa3916e3340c4aba1cbfb5e56066f958b86e0c8c02efa0ba6a4add129dbcbeff96e3a9484eb8f9170c0a358d1058d27046151b55d5f2d56cbe2c3361689c2ef9f50d3477a395526e8abcfae38c7b59bda5e2d8f22afc9c9e0731618563f81fab068100d055a474faabc52b31486c6755206afd7b8c039b72570fa035879079fb38f8fff8835de592cbe07db2f0cef139e31ea7f63df2d638dfe727a6d9619e683de477fe0bb32c8ed746bd989bfe0c3c333215ad57114b7aa07605477fcceace81d84205ba820884f452d58667306f0de1e543afede3dbd6d8669cff2ee913892046f75b05d20b7cdd930f777f04bf0d8be07045c8f794b74f06b885a46947dfc419037d3ddc0bf2a0517763c943d758407f9afdd7e67b40a44344299ebe46f0aef661fd6226c99c547e92899fc73c2998759e8f439d25672c597b69807516dad3c6d3dc2c9de59a6bc29a413bbc450843dee2c6c614911140a33fbf0c1acff99c9381e0af4623f629c75d78a9524a22152639d566c9d4edca270afd39231395a19eb0be627f61580d7cccbd28f420568dfc812164136b8dc4fe4a01d55d74a176a23d542ac33b83e8f8f032d8c3ed0190fdd849bca45ba459fcc50e5add7a6b2aa71256953f1b5647829d60b97cac188cd460f3d60db195161113f56d1711559271e9b94609e8f7310e6954cfce9be7fb4062bd8b9f4ab6095d274ffc0d90d3d5a4232308a85da4ff9ed17452b9a720b7fd5f2b33b585631cf734a753a43581fcb438dcde9dd52a5e157e51113332af846279a1c2ebb17d40ba4662c369408fd191851c0102994b729f8e33d391e60a37b8381daab7d539a3c6a36d6943d35da2f23d5ec70d1461fb77f968cdcbd2abfd257c41e510f5a8c9afe4e13dacf1d39481dc366b4c19e8b8ea33da1bf5b5be412d8bf7f064b840109706881823f7c9702fa6dab067e36c0cd874419c4c686f79972655bc90e38036f71a0b5c03912c2c56e4eb144e2dda06ea31ac0ebc5052a435d4e0bc4270cd88e42a5c071d5601e91de8fc2668092b2bcbda3bdb5d04bedb77d0a678603984a446111cb172d0404247e9ca393aa74183b5d9d17979b3355172b14070baa991d77cd19fddd479dc262f542ab6e687718ecf0933d21820211f67b776040a0ef2988d25b49d712a1029d74d7cd6feb274392b35286c876b8d7af9625f3ef99a717d1cff05bb5c78262d2298dbbbd6f02721432d4d7001ae3862647be8e3ccf52dea87ce658696cccb446200d42ac8b245db64da07020bc1c2c3c810ab61efb715fbd45f6671d8c74d8de06cccdd3a9ed9b1311a3d445dd7fd2835745446939540fdb4094688f95f114e0e42592b2b68adfb6c978465c79889fc917b8392cca9c3001caf979766a650e05294b753f86a312da36c20f0f8de7314cad953811bd01afff4b46effb14a20a920e286f72b3175f044b018faa5c51b27bc117da8993f367a659141189495ce5374b8de80018d72d0966514cab855e71ef1912f3c00996adfaa6c42ff8a2966d99e2ca99e1667f3422ac5320f5b1c1276de5f262990afe761bf4078e765baf10f81b0e816ece59856ae20a0c662da570cf0280888d10beda60601bb45860ba06d88854a8379d5ac82d16993910db1160b62181df6d5417fb97045d10ca5dfac3ddb93a48dd77e2afb2836b97248bd50a72cdde91bd1adde94288a6ea9adcae55d8e907d02d90ef97963ac123000abc952a869fea9299ad675f6cef555b3051efd03eb29333a860063b1a7da2bde29701bcfc4a9a906c3588269f6edb4ddcc00b0031829664b41aaaa0d64501acb31fc71ed61dd6c1611b75b3d2f238df9e91bb5b87b20a47a6cb9728e661f5f02e321109b3fefd2ec04fff55c15010a61d0bbd7753312da28a10843e610b04a39efc1c5897a28a4f0d42a588cda4dc6b8d3b3962660b9ea291853d2f6407bd236871b09fdb72adde10eaae35f2ae015971e38051fcf8241242a30c9ee287f57fcb31d34157594dfeb6c86e28e9c9f66abf4c711cfa89afb505899c8ac152a9ce658b08d4a00ec487b0bc9609ea868a305c776451858514ab50ac904d9e64a36146033fc39011aedce290f7aee06eb065a0b0bf9b42635185eb67308f6acb72e05fb930a2601eda33b88473e64cbf6f7ba080578b62ee882bde56d89c8509449e2ffe58445beedffff218ea1875f0fb4fdcc836a5d7cb8bb8fff48b21e02a5311ce27d7afadf11aa4d199ec5a4dc81d980e2d4695862a2da40ecdd1d197c936ada8b1fbb1c3664b40ce054f0fcb942e368b6d2002fcbe1c58fb966ed5e93431a0e02736d3b04d7e93e6e227058a37f31317835f7b7a32eacf5632ae641bfd05061adeeff353d7b2c5f26c79299584bf00c4431b083f831d9c0a51a89f0aef0b39592cc9601ff6e70de88eb4716ac0392feb273b0102501990b8e1b330cef6183b8d04e3d2abd1120e7b79a7ca08928ef59f80c4b7fefda8187c05b2361a96e5e43c45cef8612a7bf33c06d736ebc12a3c17bcdec5ab85d3a09a292f12d4ea86efdf5f554c8be5886280c185f2bbf3a924f7367e940632ac5592f161ca5fe9f55eea12425da5bf02d6329c228e6e282481076b4d4d623cdf72e2af082799a7568d3470e43089a3d48eecf656bee4d21df8dfb18c2622f24acb07d11d2b93c55993c0931917e206faf246d53b8eda4a1d08f89a5a7a6b4128e7d5f34b4b2f35e7c26053a63cf822c1ca61ba235341ee7fe45268ea7ab0574a3fcea53912f74935e09d4dec0e382a1cdedcf1fd1b4a2bb2f30ce289e79e1555b02318348729a27e8bb34ecedcff6443928071b20d0c8b7f332bbafc3a176bde4f5876b1a02bd336fff55e8431d31863c348112286c5ce29de1866cc2c5d9a544bdb6cc7e9441de898331f5d55f5fab084cf080a0d7957bd7a327d555b0290b8f2a23e6514e1ed0fbed46af0feceaba6a0fd9c641c1288f858d9151b98a90cd24c1d5085b4850ed5f852e3c3c273920dad0cf544f7815ee774b9f3c6c33f4d13b44bb5c1c3abab1afe8e89afafeae4ea425c488cef16e2caac69ba758135124a378251dc1a6a5b7ed49d491ec530afe562e225a56cb10f5fbc899a0b681c971dda862be6596fb10ea7dfdb435467be410b44a0d54dc187b24d7ed2a2c360122b274ab713d849769ae6c22dc995ec9d423f59874f7920b83c05bc9f6e9e9a4d86758c7c60f8c180244ce09d3a4c680411ecbc229dd153b6f4e7c47664130d977d59a42b79332bf2c2f76a48468fc13e88ce60caad6185c82446a07c39d7ca095b14d8175a271c190e0ce51da0a172917d24ee1618adf6c99d6cf47eb78c3114d95fa7d73a33a330c20257bd10cb0178a4d8577dd4e1301a3c23dce295b88d80a489e2ec70ea574a45fa5ff6ae47bf8fe73db14fd293345407330bb27ab51b365981dde316bf06838ed77dd8be472ebe20437f06f6dab0ff5b6235d95448b2ae3e2a1f87553b6ff6051bb1d4bf6b2abc52e9a9d776bf2f1687022db8c7aab9a6f71fde3e4bbd0290baed015651081fec111928f6875e39c9664a8d78630bacd07867a06432531e6b1917a4d35416300eb7ad444f9e41ba5d07cb93699837e9c536a83abef76537f8b48f17512289361f12527f37c79c37bbed45e4fdb254d7cf3298a7bef47945978b5f71a2e8b9cb167e0272116a7509350a2d1a519d61fef640574a3f6ffb7b97712ba6d4bf9a78ec08243dbfd5c90c14dad7161a0f098eacc98810e42a4eb89085acfb271d690289bfc4b5743357e9a6403fb1a1ebdc782d0cad25cfc648602e607d0c1e6b023a988be8fac71e0ce0182962ec8a5632d8155e683c1774482531f82a1810d29650d535f3329ad27df9213f10e83da3044176a0170f2491791239cfa950540c1a95c62ba9ce5300a444a22c7e4cfe2e239a72134b5fc160f96cad5a7dddf9bb219ba246abb3c7b1cd59d6fc97a03f4a388aa9b9fe86feb8bc3671371e0ba8824d75553243e0f5ebc5e63d10ff472c2d9f77296cf619fd254e8c2c4b96f58aba5a83b0d293331db6a1faefa9245fae63240fc755098c612b5528b145e3288ad98576afb1178927e6bf1a4d886e61472b6560015045f5393b9b873fddf433ab9fb9c728062265bef35f28b2aed7d4668f0b5fcf3dd7071913b29896499dab293f274f4ed87cf6de1bddd895053232cb056f5881c904d7cbc24c92606cdda65a4b903464a576f34a3754150a1526e636c10d82e50266233272716d4b8f7c8b8eefd4641675502053504327a2fde518c33f1a9b23200188557cad6f535ac7ea707b5e02a45aecd07af28eac5b7276e1e4d34eb879b584bae433f5579fe64ba39bbdfa95fe73a2c9fc5148b867e2a434be4c943388a274687475a77f1b7841d200b40b4955edec15e3149afb1fa6a68879e4746cf980324f81db3a761ee9175a368480d08b7aa1842812c25f77e5c072bbe757c6e0388296056ae458108856c4085fac4d690387bb062371febbfdeaba208f55223789118f32db4b81744b72e13b4ecfd71eb88440ded944121ad6d47d4906cece01b9c8eb3cf02d81c9feace0e4c28ac6152c858e53d1254c95c1b89c7377b62c54d95c1d1b18679d3e671ff5ca9a72c8783edfd57fcca46c312f4a2cb31e0b3f0e99d6585e34fcebed6fa4c449ab8f0a57cb2ddddca62ccc4123194348034c609693542522e318818b9dc8929b3ee0af3571c6aa28828392cf1a2d77caa365a8595eaab4ffc9bea63baedd93b21c709240f79d87e8ed093c0ccc3a7a1d314eb7e34ad343c665cd230c940a08d7f8add6a5db5958f2d01356389da06db63a0e61242a8ae8671919a4d9a34b91a27c5f98aad7a77e1925b2fd2b8b09c05e1f56ca00595923fb3a1ba92456e253f63571d3f0629d78f8fc1a151e72a78eee420d4b3d445b5aa9475431d4ab9b73be9a74042bb67589b9b7ad330bcb612ee91436ca7d8be5585a0342aed756aa06d26f2b38e25c61424597129e0c6639b456a2c77ac0c0075cf1280735c7db0a3ef0158c038071fc6a7710f78bbf19b5748aace324ccd066e678a6a05e53ffd16037fa5a7e09542196549da624a68bc10d9e03967b9b42c9f996c4ebdc98adaabf8d7e825e68f0f9468fb7e9e3c825a5ba0075f57fc060c1aef51b1874f1baad025780cfa28eb3af664e5080188251f29c6c6debf6928a7a70784e9f9f1a04b33198b81946acc89e3dec56eb49dfcbfe013adc333705b6061bd9365b5793272816a60c4fd7404aa22ff666af393b73b8382a76a5636b70c897149bf951256915e7ebda18954e1b1cf07a713fdc82bac4b7ef9af569419b1ad1e05ed62aac9343611d3f71f41470969423a88bd5880d30e504ea5d23592a92bb54a77d41b40252a038db528538b4cf7ec42aba92681b28112f854d571396e8739a46a3a04df980006c3bfa298efba0d2adc93e80a71815446454c31d57497d3398479e6169f44475f78e5e3297636334a8b1416f4627da96c38ed7735e0dee23d4dd542fc8afd0d245083a2cb172024ba363b4a0dc714f5aa436f6050199bcceb3ba9b5c7855d2e6b6bd7b092b11381d64ec218172c46a4621c6f6bfa039d96f969688fc043d9c616856cc7ef55d827975255c67b2aeae3ddd5f1b743b495befe5e7c613d1bddfe2125984a8bae2c8a6c362d113cdfe1cc7d9c8eeac383ca73f493534ab0ab8c8a0845ff84287da45e611915d417bc5188e930d99436242d4f92a8aa16ba76f2be14c44a96482d7f1677b0eef148ab68a96bb9c6ab223ebc0a5bd1b5e2ecce398af61b868c6de74fc38cb2be1f3e16b13594d9f36547a39fdf1aa6ceaad888c3146d5c2c1dc57fdc607215a73f25790a8617c5f40b0e165f9be79b1eba91287aafc61ae5d7ca566d7ca154246fcf814b29947133800c8d4d1b264466f2c7a0cdcf612b99bbfd6167f52e7e932ee1c92deaa45af11934d572bd7d112e61711de924728e9dc0437dbac6705e37b4170a9d3d874ba1a82b5e040ce0efe92c9595dbadc040e4389040432683f9aaa6f9baba877d42382aa14cc52e54949373490f725bfcbc5ac8fbe06351ec25c63523a583465887775bd7932d33c49db423e0cfb93579637894e34a5be69bb644e2d582a1425e72ab9e05d718041d58c9209188fd6143b729a472cfa10330d7634f7dc4f4df9996d54918eabbb44d125db1192793486d70d842bbbefcc27f5462b5d7174f617170a494564a5f569a1f1d5b3eb9c1f5b3f0018823544795eedcec29dea150303e9f3af35345203d1ec6fb84be31203b8094fca63317f102263b9708f07a5bf8648e137d9448c965da35b35b509ee9742ae765090774c8503778bf939d902f82877131139c3695ff63dadc11bd754c4f8ac53e3245e1d1045a075fd679a0613908c6a32f7b487afbfe69c9a4335926ae58de38ca44507be3c35b035163dfce76345e3801d0b8b35207e11ab001047fd9e8389cd17fb0ec739e621b549b3a2520a76e6b9412f7127fa57f84e00aaa0a3a2e8f62e3ca8681332720afbabeb8ad3c627889d076b1e03f3c76a629d4cf8712cb0f803dab6838fa7a91c7da7b6e0f5515b01c83c3c03094082b23e14e1f1b4f5b0294f1474bb3e6726d5141cf1947f26239b947c6e6b1decb6d3de58f54a4658e91acc470732ae4d245d33c351a1a02f747cbefecc661063cc756612ca81d4fb891a82870ed4f4114a91b9abd406abc91f3b876ee7cd5b94064ead3176a4e01b094d675e6c6c18516df70d33530a553757b2f1f9eafcaac1d0f1bd7762e0e617ed8e07cdb86d15088d95e38388c73867e7daa0b66ef55e868a665e0e36d605a9768233db70a4c77417dafd6431f5ccd0865e5d90aae1c9c1d66a0ac9836f99b28462a06c2ee472e57eea66b46296d0964a7259fc9dff1362c9c80cdde477f6e91e4cecd20b6a5151abb8bfe5ae7e655d0f3dbe7860a8f9ad922f6e506cf34e84f804c8e0d979f11e36ad7c84e0c8a1b4b77d4f003b6c2bceb02522b71033106f2b5b83fc45f1dac0a81029cbbd7531da7fd8423a4ef81320a73311aa712473b00abeb002bd4baa7e51a0a42623317450e8013eac6c8db7b1df6b162dee046b23678a37ce25bce368c2a6c0b1199c7ae84fae60ef21fa7ba96a525755c11b10eccba9880f3e3d55c100c351443031f09258d2011cceeaa58c9977041876052d23f2c91773800d820cd471d4ecf1b7df9272e9905ab6cbde54a1bbc6acb18860e24cead3a0c51ce3fd47e3b127446b8d4fe285d0d37ef6a43c9364544f35abf22872e8f6b5c2a9a0662664daf2ec14fd4005e380594814423c4838b5f83cd3e5bb888ed28fcdc784095098a04bf0498223543bb276bc047388916c962c3d4ea811f37cc5146b15e3672d233eaa90034cf7bafee81ce527214b62b43a53a17c8abe888ac58045f29436c063af36a93bde39494f0f44dbf975ed8c180e8888572f70e90d6ac2e9c95b7ef4072a405bcb86d24fb7b445cc35ec6d2bb7ddb620ec81839417d0831bc72982b98f458a1476908428ea22d20782cacf7c3f9c02f8c4b01dbe64ef9aac49c26621a7e1fad0ae7c7bb37600c2f44d9934cf11fbbbd6b27dd393f15db334826a0d69f68cf65dbb09edcaf6d1520c6e3d7b427a555d6fc149645c8d1797ca27da5e471db85acbd0da0ef0278b0f8f9d0e88ec15cc4fd9732b1993874f407f0296807cb1eef90da5b882b0fff1f463a09ff41286d695ae54782aa35151a2055a23cfad2c3208675a64358c21ac8b7bb0e268650a82b5a793092e0104b58e8d4c084b9f979e7a15e4775d3be481df9dd9bfd6d1b250e790202c3e9defcd495c93f9f67fb0569b2f388050c577f4428633277239e157603a263ac73800039a10a06e1a2e18d42384165f05b477484555b34c4e70645767aaa3461e18b019221084629b5c215fd22303478b5eebf420a90e06b1f332770f1007e3fad42a43d9dfb3b0948b870f3aa0b8690b03d68ddb70e2751059377d445d7163d13ff9b54590d37d3e42e6e43d724c63fd158c0dcab69adbc7e72428d04b98c1a3c5bff8385d242145508a9d952f0ccc6057cdc8f2c1701c4e9585275bda337d8b005c960438778da96e83d89efa7411e3d62ff6f68ca9dbf3ef10fa1070a0e1ee8178a6d1ac88abc44eb6996610ccff295c0acc6ac1d0b40fa728511039ccea88d20bd75c8796633243fc8377d189ce4c94daff1c4f79904138f4d015d04c434d3d9fafa6d6511e0210ff453d281bb6a79a50d6e86789a6e8bba11732960f5de8af20e8354c427bbf75ebdd73bed67a960a0993f2d6316ef8324cc725fd3a76622217edfbaa0e31065dc197d6ab5bcec5519be973943a50d8b9a5f97ac930f2d2a4aba4c22e51302ed68d181a67c52f8b4d5a60fab1c50678f3448a1b41cae55f8210345aab599555420d22b550c131acc2285d98a98c51d7f6dff896fd68899f25a715fed6063d09a2445d2572302dd938ea7a91b708dc62f34f807731604fb13030a89e8833d78ff22e697685b5b249fc995c341ad2353556e5c267e26d5d537550fbe7ffafde2a9dc5ae3856f014a479de167aa6921a9042b814b4cb01921b40fd6fd5aea31b1b1f7b9b55230a830e53f84cc4254e771f0f6209e60c1e16d6d1e1935b8493a764f0da255a2cbd56aa7de2f73353ce28f01b92629afe4b3d81bc7820d4b5b8fc1283899c2c4131113853e0a932a902470450961f7df4e8bb92df427bfe497b319613ab033936662665562c8c54234193744a5358306de3292ea9ccb125c7ac63ed537dd8c723cbe580cabb7f08757a28c9cac7084fa0bfb7bd1fc109acd5b3121eefcf54c921dca11938f0c5da216d3553b24a8d145876808e47086450e364ca679755ca4a272a4ab2ce27e0aa00519e5231c5069154bda6cf53f1928253ee30e39eda9a32c3a5bd5e6ecd72a1d7fe8d4284d36c9868afd3692ffdb52f7adf748a0d462f6f0288195b1baf1c9cf6c9f98c828836e887de70946fb83675c1236c3294638a5fd094a931957a56b89e7fc408282d0fdaa24784ce8c25239ab32d3c171810df2c06cf945442ec48003542812f6b319e13195fce4ae17a13e3e479e22cfa1e6da5af84a3f58b902448c3280f9018046854a6c940eb31aa744fa1e1670f3c31d72e558e01f24f9d3bb9902c39056e9b2c4bae0848a4a0c5637fe71e1d2cdfdd83f0fb9698e86158eb6bf1c4e2b191885527bf26476117436caebf748bc0bef1441c1166654c45b9fbf3789e31c702f3bc0077ce9e005f73082309fd36b3aa6a29fb0f4a29aee66f3b6b7befdae4ee1c0b9fcd067ae416d8b161bf17ef72c55939b01f1b935aee51bd579acf092f8af94e1151f41df2717eef5f2c80893dddd26cf7127eb4a50e91f5adb16c7e4c065c8476c9422222a1c497cb7e13acd755327042e55097bbafa9af8a5a4f3bc856bc29a56e88a6adfe982a2e699e84dfff829c3f51b08feb28992e5042d1c638b82f6eca3b670ea305a46cc9f7bb6d3a69f8b65e003b13978c07e68595c4ffb6510fe29c3a1e3729ce5135626b103673085a05b97791f25a2772e119aa4da053dabd2d0bdeb288d5e3d7ee33181faaacd5ffd5f0d1c08968140eae289b8e709dfa699eccea45597fc36c104e655e5c011b323405e1cf2038b2116559adcd753fae9900e0ead25332fd82d421cc5f1df798f470c29575d05e7ff6e3c97deff91876f34f7e93a7203e96f106b9b51c5c0491f88e1db58b190b65fc7c2f71a5ba8a4f61213ecc392114a522c29e286ecd7bd5a383a436e026376a6cafaee2f200d8c8992c8c821d1cfe0e574834043966a683417b358b766c7ae47a23e6edd8b557416993a3dc046197005c3e1a042a4878bd7f3388daa0b3ccefb5bad685e458b47a37ad4be675b3d88fd5f5b5cfafde88ade28aab9650188cc039e6064e786f380313ac720d15c1b348e0bb030387b4a4ec9806936603f069a4934ca7b95d11a3eb542c5050d296b84426f2af9b2d5d671eecc2e75637525c77be7efa9e05edbd4be4d12d13764b87a3fd833ce2bf683763c674e453e737d1043ad2258dcb4af712ef5034472ad349475ea6de82d8e2b4d0d145496ce9ed12471337099f73ee90e82ce4261dde16ffa90ab82c71caec0df785eab053e1e7f6aa0de8efebc8d0cc9dad4c12976741fa698d1c231a9a8cdcbdf8c25af4b9b25fb8ab77e5fcd3aafa8e541c47c2de9bfcdaa46afcd9d522f85e072350c47c6566e1ca9a5cd555b9c1f7afce3407e68e1bcceb7293fb12887868ee4fb38465ea237f7a4fe43ccc4a7196bc62878a17dd385ac0508f4b9a31670dd0e848dc2249f2e1f64d57cef3f1efcf255254db4ba11f8aa4ccea1f6720f3e50b64c6e6395bc605ff2f87f11c8477c7253089b7ecb9088f8f8ee7939ed2f0c36402a9b771189bdcff1205f173c5dc3a13f6be3e11a6557bbe29ae40605c353e0820c0622c6064537b97de1b1c788a73329fb609b404a3bd6f66988b3392ec21e4a4e761940eea9ea3e3647d4e4ea0a17b7880b110f33d0496915364008bd4674c0a39f992829356c2049cda182a2dee1bf2d8959dd74e317847ce18e1bfe6017564413ab8bff0591060ea694c6a036ccf2edbd2fe97fea1a28de7943d3d6c0120a923f48ffd267f1ee6cd27d95c5bff36e31bf5c5315fd4fa7d8e8d718004e0cb3be7c8b5af95b7214ef226e3740cd56cf5a8dd61ebeecfc4ee4f795115209876a1bd8b73324642d61feea998db223cbfda0e2e232025612c12e3f886542f8c7858d3d41cd070b93f7df8aaeb41c2eae519eccee50dcc52b7a9d0f7c5292e852dc044008a07f51e53046569e4b5add957e06373dd7e94e935faac32e296c206410e14c2a15b7489ae0a8c7d7537c87669eb59b09b8c11c6a18eb015e5afde685284a415a3a0889c48c649e3d981f3532296cf4ae04590f5dcab7bc21ebbe6486b6735ed54ae023758216e9d6e6cdd73103b3809fe9417b9ba12f50e41ba1f820db6ea5604db7629d8ee05e5a91368e5c04a43f218442f52c4d7b9b796faa4b9b91d3dc76a56a1596a09d6937e941eb52128c0d5ad218031b30e675b5dc578c8c40d4a5e1c5aa78c87bd567728ce37df4e8fcebd453295d121e8fc38103f98a247b957bd6c0a420ffb4fcf9221687fcf4810a9ae4c1c7b1f304fe48029cc1c634403ce2f72c7f9a11140629c8e7007175fe6f3932f0e82c6cdc01789e62e9b7b50b00d43a2f01f895a738f8a2a3ee2f68351572383258824b87aa1f3e53fea57f4b53721d1ff50824bb2e635f45bd6b1b3c181ec78aaeb900bfb262533ee7c829baf77ad770e2105c89fb5debc21303e921ec82324c97532152ca72ebea3bc147c26199473d4aea9ddc0b393d842e45b104f9c9f356023e1332d68fe36813e48be63eb8c228dbd583a2bf87f03477aa5a146b0027ad3a393a1b1410c4e0a7ae4637b40cf20953ce831454895f12700b47b0c19f02b52838127163ae3bbbd22a6824f29184d9fec8ebc1734bb7a6d2c408c44715bc51423d906932100c311d7a937e98f1a2f715c7ffb6b04c902a08ef5c15c38f715c8ed3547e8cdf314df281deb923690bfa3e1b1e529cb6ffebb8f9dcf177c20bb444c4fb2ef17880702d4b88f045af703ad0e16bf026b11a5c2c47bce8e08daf0c2b155f7a4a47436b82333ba02bf376542730bc76b55b9a9ec8ebd0c3c81c915284c086d6dd4152744124bba7e9160f8e96231a35083e3ea3e878b6dc1674f923daf2c97f1759b06a04efb32f289c56f0806f1672c8b0467b13618445a86b0f5cd043598a722be98291b61a11cea2cac2a92acd329aa6e5612dd409c5aef7b7bb23f27b45ebb0bac16ed1b5b9fd60d668f6b9fd163ab6be82a9a2059fb4dcb8584d904f528b298db14bb9e09c34583859094b8de8d7c0081d4495a18eed70b41c56b0df85e983db1e971f602e76a3bc94a8c8ff12e37767dda392d8ccc5823523035be9f566cc8446f908141b3da25878a89d320d7b1996a715806b8462242004b34d5c2fa001363de7b82e1036f899211104895ddc8a73cc09fb10b4baa1875399bcaa40a4541a7756688f944a85b3171f2d01cb2f4fb1471fe98da3aae13876c1e7571b3e978d6403a90cfb8e045c3b14cc11f203709f47731dc0e31729c46f65624a8ff1247cf2f1f50922e7caaef283ad347a52135f8ca9a3a91a97823f36cebe14efa0bd79c620231c21a68ac9f0247c628cc840ea20c8067532f2dd51b576d9ac5ac96181e2053b694857769046411da55bcf8b0cfa814f28ea16d0486ba642e9e91294ad6d585618102b3a60300d45657842d1a2066c781cd6c71b92fde1611c9c1a9d7b2f53ce9cee688b2bdec695df5732de40313053761cde412372aa5050fa7c64175ab5a362842a5b6d1bd5daf019b3bbd7284ae97c2fd6098eca92f4692e5c7a0b3e35206ffe055fb521adf335cf3e7420ddaf84d7643a92b1605c51915eb922e36f7f0861b7026153b8ba52004d3fdfa1ccaf8039a063c39cf5c65f204ad1dc5ab50707ef2de4eedb8a7c8aec9ccc03ca21c44b9e4539d167155dc8f2739dc8214b5d759c9544943f5573f547ba2203ec8075e8f9fc7046554f665476259b39f9adf3a26eab42abb451ea75e4b182c85008852316e783c74c060d7234eb8106fb4f0eb5d402e662d440ff3ee74ead5c555e928bf043aceb054aeb9eb123b282c8b1d4ec819025d5ba7748a6a5732fbc400e9e133b6718268029b5086980084e144f469f8374de7a67982f1f8838cdb26cf3c2e609dacd9b4ea422fff91168fdf07338535ee26dbe1e82104a1a662e267d96c1f3eaed6cc32496e0a61a048deb18c60660590c1b4907f28bbe76919b76deadcac915ab290c5888e8c24af2fe71b70afb99f23647794d05566ccadf726a7feb3a7702cd9e910bd4b60b8547bf169e1491b2496c7cf17957fd93cfd5dc16aa40fd9119b688dc8f312b9fa425c83a0c5bd9aa04ab79eca352211a68543bf80420262e1335eed0aa5e503bf8f4d0a2e6cc760ca76e68e5283368ce0d4dba8d0b8484ea4bc07773f98fdf00020a2c801767866c87c0de4dce535a83979b9d11791b2f83366175ab1c71f02e697a3223ae4ae5625bb794c7e61dfed9d78584e8d6d82d64181ce445b5d49ccfd59d13f58ddcc53e2227b2309f85cad9a457cc5f86a17ad8b0861ba407643c573d634681eca8b4274eb3ffe4980388eab0e9e12de1b48873282de58a4da2c9d827adfbb79016368f416ef9af7b54a88329ecec32743f6812b702bc5ed23c64541bf11b72c64a4344e0c3e9438ca6e3b63fe20f6490d656e79e54443f839ddbee48615966b78ec55e343d7a5d9658e985efb2a4778aedc6be25218ea4161ab1e1c569d064d0bec94bdfffa631d3afad7a931e4b6aefec012047415d189925643b92d9975aebddef59efb156e4ee7760581ef91380b3b6c5fdd365749ced3674d2684e64a5ec20d8f2d4aba573032b50456966791a5f89673819461cdbecbfa8559ea154fc198479492f46dcf854d4b48a0104cf497e3ff76a99db94061b2700dc88a8b61a47fa9868800697258d8bd0f409f83717f61b652b7aefb71305f2cebf3621171755332f0d769587088c40d15e934409eca4b20dc6c60aa5a9a9f65427e8123ab2c5b5e414a93691bb8236e7760513dc2f42e17418762337e52600bc2f168bd4860c443b8975309c5a0d676306432edb8e6de1b86c2ecac17551c039317823462edd22c7b7624ce7b7bc424b34bc7dace89f5a59e0a5146d8779edf3a41d37530a7d26e802fb3e99ebbcd6bbddde8c05129fb7cd57614c569ee370cef05d41e48eb9cf0f591b014b4121ed08afa3f54e1933a6eaab1906d197ec0deb909be579497c96b3a4f182318e2d0b3a95e08271ccb9b6f1abf86de436d3e2a87f58b0ed0dac9fc85901c8a32894ac640483e85420e5dfbefd6aed0a9f5ea7bf9b3fad010c3c47a8922ea64b01d9025ee3bc3b9d5dd6f011b01c68593b9868c49f51da0d59b9d6de41cfcee8006e59d5010183adbd7c3ae6d6789f8f25c59bcf122afa9f88c8ab14465aa8acf54bcd83487c21c813094eedb0b093b3f8bc91631943fa41c73a1dcec1a9e6648b1f0006a49cc4c07f27c71323e0ac5e09127bc1304e094ec7fea40475a229356a45d783499d39750d08103e9e5d63321e9ce4f8c25889c6a61f1f830306749dafd46883de769d6f658da351646af925e2d442daa81c55650a306920fe7ef379306515da1fb28d79a1160c933ff1683630ea2314d10d63004fa8987912fa6d7e2769c175c0a5c33eb78fc0afe60eef5bd5e1d94688c6a2b981d01696ef15dea7393324b12c531329087fac29ed0af53b2f1fad01e743be9dcffab2f5013acd75d415507773c84ae08559c3d6f613762defe9d4e56fbcf107ce2d7c80778b4d941de0ce5d7b8722f1b8598e522f7958c7dbf15a46f20e02131dffb0b2aefd79750ca0fd0aba1faa2623e1371f321cc1f6e3898e8a74fc98f1e35d3b1c8796aa7e7e8b90681d878f66e090ebbb88b91ee7aaab9f0085790b14f51baea29b5bed3701ed6e39886f758b9785e9263c0560efe3133f9276fbe2386001e2a813e00d97890508ebe7faf164a8564dd49eeb3d3346728b490a0261d7e926900580b32aa04b8d6fe66a422dfaf35ea69869df14b8322dcc37f69c4423d93a42f488d6f0529bb28608c08e38be2da183a65ef518b520bf098d127965d1804c0b145fd1fa25dbdda8493ec692662a5483fe9ba46e0e3654e41c7b2ec380a79c5d80078d4a1db8612077f6f26efa1e435baf8dfcafc311bdf5427e182834f980e09ffc86bb92c9a9fc86f78f0bdab4350e6f0a8d5ec7c972ae3784ef296474f05d0139cbb3df567f27e837c4b10a2d510b5c156afcb551759eb1ccbb7a33b123745a3a858879848b1acced4471ee05953dfeb0a494569c5eb2ed45481f9ae1b75b23c806aa06f8c67b8bf471551dcffa5f109650a45f51f7c8def1376a94a4af0ba1845af0b0147ab15dbdf038ab0819d943c4cbab05b6e120e2ad89bd25cf5eca0ff295ab28612f87075be26140267fe84cbd34bd3198727199e482477da080af9216f86212d4cfcbef2344d7b5692826606a3bab0fd81dc33cf57bda6f35e393d6ac4898c1c3fb4b4e3316ca940f2f55ec39e3135dfd524762304d9fa2f4f90c710d983a8ef33a913c20cd6010caab6cebb5de80f58e1c8d8bba30ef51f89e1e9eb570c397dc9adc23e2988d657f8bac63c05bca8e6f409dd8ddfb53276f8359dd44724249df6817fc88957b0d4799fb5c456bee96fe7efecbb045a18d468dc697e607e98a3689a7d95ef06b45f9416c63ecc95553a8ac20ff3e36ff237b7ed1644eab8765aad5ebadedeafa3d095d127c012735163f067981945b00303b21da5ecc4c81cfc77e0f0f3e03efbd5bc914329a00e62dab1cdb37f3d655f6400776834b130eea7375b6fe87d4566d0904d1332f3a008579fb49a3d5e7da808e53171d92beec08c546ee2363fd827dce9b3f1f425229f9905205387dae2c0070508ec49588c6aedd5d36353fbec8437c0cd49cfec488683d0b820c56079c5a94f1ca5c15e9ab4b924596540420db4d436d17a05299ea057b1a6d139b2ae91336719fa6ab26418444012cc6d41a48e1264b91dcc522e2ef870f8264209df9149ddb957475f4a06973d724f0c87fb8ea1a0823a9c8723b6c62c156febaf8646fb4c97d1dde9737dd9574a1353d4e5f1deca3198cf9c4b11d88b8dd3d5d652fe42611439442ffc3bd2b9a16b2f406f804712efd82369123b1d64bffc307d3276321d1517ada6f808730bc50107fe9c7b48f9d5faa76af5c06d6995a86200ab00c5e50c6b1167b02375fd361923cf374501eb698b78b55c255f18a03c20ff427fadd4aa9ffbc07c56db93ad36ccde77285d2bb29e9796b5a9dbf70ae85f27f9b06ca5a6169bf7e21c7fa9bc6f5ee0889efaaa0163b5d694cfab59cfddefd3307f8cc820f69ba0ae771a42949a804498ea9e8d7293de60b160a660e286f6448c2a99ff63094639ebffcf72f2c38daf2d8e945f9bee3dcd379bdaa89aad6d7556cebb66df92dc60b0f01d60469bc6f7c675a7fc26afd8d6127617a0b2fb15185079b71bfced2306f773ac59850587a2be3579f8362b29c1ae9b63f41a05e5b20d641a8ad402228cf8e33b45f0f6789551c96daf1bdb90794ba2add0da5b5039ae7a2ee9992085e3f237745c10a815cfbe2c39db30fc0e6fee760dcb5a9342595fb7d65bf07d08be297c6a3c2df0797f0561ac6a2d7bc1f3d492e159be74359a68ed4cf65f7ab44e6e13be3254e19237e52ff55dc55539549ee37ee4125218075dd71bcd2cd57503d71913a6c3f1522a16a68abe40bcc31125f3ce9504af2b59c43974af74032b9a0caca96ac9a0a806b0a2148183307cfe29f9d3c50827164c851795e29a80f1aa4b9833d616683541fae9672155140991bb3d2f654a0dbf329b93a6970a2ca4f414c2fdd698c54f31da6d4a538859668379614feda412c5f89785b752eaa6b14aa0accfa0f9400e589327681f46ac83307b811ebcb4677c301dce2885671ebe74857279035fe08be7952f5fb40d9aa60d323f2f0c65bfb16cd84db0b1ae7c1d37af8d718a279c8508aaccc1ccb37d793ace145ec9a66713d986ceeea8907f8d2199beb8f844ad4b08b2669a5cb141a5505f4c5e2467300f8927561265d64c3c77a96ced2bc0aa55e6bc53a26f70649c0ba82ff2e81dfbcc8c8f19990bf49c17ccc90be85c869f7b2826ed63eda95ef049a4d21abd94752d4615a07881df4ff158e7ea81490663f8a0a790281c314055c603880880ee1707a25db834005934a06cdb7c9ef4dd0de994b39449ecd60cf818ef42228a941718e2180f4662335cb44cdf0ad28fc0a19a308c958c8a51bfbd64d5c5a2d0f5270603670aee4fe06bee38da468e101e818292b8403916223e4b12cd481cc1edc150c59751aae70a487ccb6471c22e3e980de02702933eb51145b85ea35d55a76d23dc1125a85e5dc30de3d485dce504aa6448c2649347acb5f0ca2eedd6e3313cbbabc91f817835c1a1fb53fb331a15214dcf3b5641d9b87f4781374feee75e2861e83b41bf0ccb23318bd393048ed2315fe0b579ac20e6b4bc00e61b923459d6d00440f57d6fd9353fbdd1b07fd82c666e46aeaf511bf9edc94f631db0e0726a37dbb21c9c994d15f5d80e85c24a0f3ca24855af1cbc371eaff80ee3ee6c7765a2d6c54bf96c065d2c463d46b147347bc56dd965c0463ebd64ebdbbf7d90ed08f305cd36adf852a24674e546b56b4a72ba021acaba941b1360460af355f9da4fad05f56412065b0db724929158f9c6252d569e3fec348215ae0ff58ac5f533801a4406838caa9cf8822aec175c67b324c39e92b7972a5d4fd33a8d9e72baada472c47dc6e54cbef59e7b0fc8cd122b11a637e5d62eb292c135154b486a626189ce3f205b3a225b3dbd79e6660dba54850bb75c5932da375d84e030281b0311f293696b4d5b5a447338a71f7195cbee2e525208cad8468393ed33a713d0467cf779a33c487d1b2259bd2c2fc1d50d75e93e0a1d82bb3a58b7fd8c909e3a052109589cd1dc215f24fcedb9468d5454936e7f0864cb11f423834989bb3dfd572d2d72f298401b3eba0630a79516c214820d6d54096a2ce4e948d565fc8cfaccd4a54d16774bfd1e1856578bcc2e550adaaa82f1909d99c68dc90231dedbe5578f7f895d8f12a218e2382469e2af37cc91cab6e5e6799ec49d76efb74b687d164ccbba8f39f569fee1395268dec0334f19454620fcb271f547a32a6048ebfc5915d350a651d302cc30f4058e6165ea25ff557b1b9380fc5382e63f35e6033d8277dc859521cd1fc55eeb849a2c46cf42515a7af56ab69259af41ed3f21cb9c9945bcca134e1bb588893d00dc6924a68e85d087a60ff19131b7575dd8fa13f29e7dafc87e9abb1f265fa1d1adfc3a5f9e15aedbb4d3d0e13527afbdb15f4902c4d2d79688057c78bf48c4c6125f4721784cc5356a928887ba8ffbb83cdf579b21f95e067b99dc467a19b775f381983a6c69a5af9edde35a17242e24b20681a35a9e5dc81b20ea333abce328039c71067efee223a51513de3a219d2edae910619c188e9b70d1422d68d789ed4738a0df5af710311dbc9812ec4bb0bc1d9bd007ceb3437a79d79cce7105fb0ea915a634f14c00feedb620f8fb10c981036c50a38fa5c68e1f25467f2a0b6547ad500393792f2e28103f07c1c5640e469d0eef3c442824dea8eb48dadcb0affc9ff6c0943d8e76d99afa27eafca3f0c2db8f868e8aae7697ab51b23eb5e71d64008e4c4ed0caa1a208c8bbeace6200fd0176e5a3f9dd00e4e708fddefeb9ab8d0b0d40a17ad67bb96cd001e2d076f96e1a1fe5f47916d19c2fad8b7bc6eed24aa8c4bc935f431a696b59ece9be71def67b652b820ac7f00138c1cf50fd0f8528a1945174eb91fddbedeeb124af84af0bd8c65050b3dc3d0143751e6a5b3849e0f3d9dd23c41202b712b928a6d35ae047f4751b72645817e2d5934b42102f301134d3d1e2150c1a3ded082d854e58efff82859b7086b93bd8e33b5a7069919746c517b53843d2e8bacbe88bcba51dab7a9b7775e3356b935fe3770755dc5cc384fc81b4ccaf15e91f2e4e4fb998460f2fdba40e80747ca97a9d082fed3f3686bbafa219284f1592e18578ad2a1af7676c5753efeab0e19ed1e27946b3d75dbec41068ba0a02e53aed880fbed89d5ba0a925c2e0bc9a8f27e573efe545d9cc2f0b82aa323c91d152552fe35da8876dacdfce033d48c207f54e695daefeb6ae771f276b97e81603eaede72f07b4c87e55121f09a8461eaf5a0ef2e89bcda68dba918125abb0b43939a474ca574fa216aaad69bd3b8998cb2766d1e878ccdb37ae1b911f3813d45d72e882a989217b73d7d1265e88d360eb840a07dca46a2d9d964960200ef5b5c1af57bb01432adc741abc86cb6456809bce9d9f2389b5bdb612b58438ccd06f7b42d3d0a726c3b304c10573daa57c602da9cb9cd20c991f79bcc5bffc353314c28ccc7426c4af537bc9986669184a56c36927400971edc8eae43835c6195b0f40eca3757e5930438bafe835a89716b1400bfeedaeda81bbb1b7322211dc259b30cfdb302b4bdf952dfbaf266dea98719bd0ba710549ad7da9dc056573570576bebeb8e4f576f5e2d11f0230433f17b4a9beb8f78dbb4d5627534d838874eb3f78d9e3a2d9775c37fa48023fc1789ef30bf8b4d9f7153ba2b2db49a47d47d563ae8e07989614c66c94c4320928b9f56c74c513c5ce513ad7a2c425a905305f1e2c475756121f92f2748af4037ca2920285a2a114d6edfb705f711d1a40c354330c425710e4fd5b5f31af228d08244346107d0a7bcc2679567979918a2858a03164f28344d9e43e767189be9066ed154867546481680395b697381ce6d20483843136b2121bdba68e617f47a8b1fe0a3aecb54552531730ebac4f059b1f751406af23588b24c3aabd05199874b4ae3290f122bfae388ad8ac920d856d6e9589b4cee36b5967308ad1c42f4a45a8d42e1d1cf3d73474cd9675f43e48c70f7ff8e3ca17f9583a60cc9603e89f8841a8753ec1e5f647336aa2bc3158ae76375282b06ca75056124f7edccef283179299c626c6230c6828df17655d5449439746bb280de5d05770a07272b942bda92a8c6355bd1e050e69ad38d37148828c522053f14bd7d457a4c28414850016ffb3b09e84fc0be76cbe68cb3b902be11e53675490c1cd940bc11432cd01393e36d0a527893083bcc7526a3b55a7f5670f67be96ecd0e4ba8564a6f596ab5f56c7f59a78fdec5bcade32c07d80d9c214fc675299695bad91615c9693c50ef121899d41f26ede18536a203cec69b6e165b82a8fd40f43f8b37605d96b62812733121b412e46f1ac5e336a6cfcdf8800d489e2b41d7d0a2d3dc6320d379aec6e370ca6d40e9f614cb86acb101d7c93325b354ba78e45ba01d9547abba8a4da16ee5a333f49f016ec536949068ff49e25f0e36af2d88239fe02f525a38086c419fffa9144fa91f97008fa3ee16256356ebdce686a01c4ae1255804e902f7111c8b3d5deba8126a2aef83e341ca8925fbde69d1291826b70048e15b6e05daee1f039eb6c50c8f995530254c624380d2dffd205751ef34d3d990633d53bca23ad896b88ac4b59e83d9a5c30f03f720d3785916c18615f385bb9efc83f3fb52aa50ebce5706b3df6bb52e0bcbff9d23a88ce8b0a2b1d8dda2aa33293b07c02adfdceeeb0b900f06c9d720e13379991bb1b330b1f22f5f2ca33b515466a67b6ba6fd277865088270d2a5b1eaac722cf91d4660a584ca9ed709f2d75c36cb655009baf126d6be8dc3996fe79af933b4cbcda45545acdebfcbb2581f4fb76952f7ab6f15fa3f01b54ed3417a85c75ea567fe99611e6aa8d65d4682e59c486f47bb355689e7687075c73887951a48fa7cbcbc2d48cb865c52fb094dfeba92ca9691c6d5f9af82da8009480cf4156653c6f7be3b5268fc24f9fb2a963269937311fa7f84e8c8262ba5946fec2c4abea2fb52a3f8519904341c275327dd57a553a1f9cf0d4586cb55fd19e8debd40194a2079278168b5e7cc49e48036a3808fc0f25cfd76c74cdb17fa42a28d06fce66e1e1c221c7ea680e28cfc3a1c7d38c5248270a9b48cc98024764b195f83168588dbe2d0ca03a384de5ddb3ec441bac3d48e0b3ff616782b10c2289d868e969672dfd21c1a1d0f0a178e3e510c25a959b0dbedb8ad3097c061b976a369559f7e4450113b2d70619bf50445efd2f3e0f3447356b739433161b391183c1806a89bc2c607abee113780dc0aabcf42c70f7b407a95a46806156ddb502afd7441287ca905bfcb9aff435262ff06b9c822ea5b384e22a1850b503a7c096783dc2defc7558db50152ec5e39b9534bb15f7c9a9dc43315b69d4ac1bceed62d52d6bf9f03519d5df1bff5bc4c2f9674d801732387a17dbc57224c679784069a16a7f9686b15a480204a87925d36699dd23801843ad24628018f58f8f3de264364528234cc00a14a4d6c8d189006eab2b1dd408fb2bcd60f9db36a313ec08b0d61697aceeec8274f5d976fe8226faff6d21414e48666758bcc4b51ea618bcb1c5e9fb00e56807542dddb3e50daac42ecff5b133c0a9eadbd05406f61233b5286a989869e501c832488d9f489cd0a581c89f3dc3e03f16fb9c4e028f8b7056c86168b6b16f495e02aa0ebff2c8ca72758110d5754289054654bc6ff8bc022ae5eb4491236dc924c40fcd56cc5760631fbd1bc4174045e0a70d0c6b4aecebe17064cf93fbc8caad73f8beec203d4c7d10b3c5e5e02f6d813f8d389404ed50aafe7653b539c0a52678928bb71083aa96803b49bc9e72e01c225e1e16a86b75086c663a16a4094560b1b66ddd8cbcaf997380475fcf99ff72ce9d7507123aa3f14a6b4c8dd5f9d56cf1f2e5c2783c60e570546b7182a6c84ddfd62461d691756f98e8afe497e39f3d4734f7ffb48fd406c3170dec64ce347434dd7d02f0d1fc54449e2b1ff4dfd73868c01d6e4eccb9a226ddb1ab35843458ca3f5c88b5a1b61036535ed2f958cd22b13ad5b08410a4a7bec2c513de4453f2cdb249dca279d95a38035f93cadef2d27bbe813d46a1bf7452ea2258d47d2254188ade9860465dec886bf63d6f174527133edfecc64fc36224cb82b067ce4d6322645bcfde5916e4a676a3c505a23416cee5bf5b7aa5a743f82bfd0dc2a16965204bd3f51c9dc78d9303eb0233f9d898ab0188f74d1a9a2ac859368be88937dfe6d8a24478e168fcae081731f0184841428c2986cfd47a12a2c0ee1632b1ea38e0d57012cf4037a95a71424001dbfdccaa93b89cad420f4b025b0e7510d0ee06d99e24200122987ae90fed3abbc1906ba110d7924aeee6c8e2844bbc7b7c02f6980f1ca7c6e9600cc2a64badf7d5c04c73815ef5396f308bc6fc88e7a4e8179ff898f26e17c0b2be2beeea105bc67fcefd6c60c57773e315825c678eab24d69ba681508aba6179177c09348f4dcdd979f34db50adb30f4ef3aaebf2eb1b1be91895c38d5bb4d11baf224db5ff9cae42517683cbf3075834f85aeaab4f6c6470c16ccf8d70e0fe5c8ff93f6f408b43a9f2f5e551f5d51a9e04767895e5387097abbe64d3253f5bf3b1e6b89cd7f0cee31badf297b95dd1d72bedf396b0028e9fbb688bef0bc80524c141381872f4ed3f52c3dd97505495ccb7e30cc4195cadfc95c86e9b3ac82551874ccc91aa235754d9516d4e3491735f2b49d7b9c2f2b1b7e4a94b43966ec0bb0b61794b067f478b038f90be3f939d9963effad7c9462ea2a0cb2049a1ead7762536505f264a9876ae223de0a310160c5d0399aea1f67dc61968bda72cc6054f9dd97424bc8669d3e7364b6b05a05c4e9b5705e6e2ace3de5737e8081b381ecd3e71417e1951bbf33f78c3c2104904134f45059aa7d656318c583f62394c999e019e14d449acb60df0aaabdbe7e793d754cf93e7a2cf03086336a17f40cc17cbfa4e503acc1fd3071024dd93f7b8943bc29bf0f41466b8fe666bda020df20a1ae794668143ebf8e7f08653c5e474696e7c7ef0243d11830d69064041a719f385d45324e731b1d874863ba31f4d614493227ad149be4bdde092b3ff2b704a1bba10897c22b0c890f55a6d5b730e4588fd8905ebb62df6ca30aef74b30e4af393a25409041027337b977dad4230ec069fe30213a8667fbf78ccb8de68f815dc5faa8ffd43f3c37d57cd70796c56d12b3df5c580b80b24f5dbd1fbd77158f7ab00603f999be8b5f9f9e4268c794481f4044c5a9bad10327dd706e0635ea98fde75ec5f04c77246481cdbb16ead27f51d0ccaf598e22aeb40deac832f52d280f184abc96d2a0ece21d099c607cf2f193464cf2faa2bdbe6fbcb5fbd9c6d293c2b517045df0cbc4bd02a185677fe6553367e96d7daf3eadb50f10729e2a97edb00b29841bd1dbe8cc8bbb5dba2acb6ad0f275082acd3727e0448b1edb23dc367d0b151c57b20cf099dd60812118fa84e9be8f97421de0cd820bca7e8bc2eef61a2b2765d6b85686f063da3f3601f90c2f46b4b7c2369bfd7feb73651137b1efb9c71cfdabb4cc7970ec9bb697d0095006e7e496a131bfe93ffc57a0e4c5d20a82735075385d8afddaaf149503924ebecd780d744aef42db7e490756f54e847ff494988f1bbcad07c3fcfc96a7b5a1a11bbf0c24ac812b0e0232f56c8955c16935a2cd6f91bc645c2265cc4c88eb6f666aca2a85717826c58680f7c2238687229f7cecce6664af27edde4168d5afa90d4ab4e2f6fb121e15c9c1bc95904142972fd00ae4ec6b33737d52b4ee71acae04180ea693993d5a9a9bf3255de59da625b9b3f883bf87be94fc0ae8d406a38b4e9d82dd1751969784401dcf9cecd7bf959c6a56f51e66b11413070fed5aab5e14a5f8c9b21ac7594a1d254282f6ba9e57c69ff93e2e417cb298ccd7a3f4ad9fff370f848501453da82873e25ea2b2649f44f0683c4ec014e9e31d8627f006d0fa8dab556a4df6b75c17f1020a41b501342c800e56d4b3de0450d5a9d5b146ccec08ccdaf7a7d200d77b3f6d53a378f00bcd295136ee11de43ab042a99b16160795896e59cf03e492c542482acc71266bce17a357f12ab403d5ae3dc4602edd21cc82003b2f3060781b4610def8c8c14978c74880a4a8d2516de8d1be663297028eac4379e363260cf151cd4ba5f0bddcab2b16e5e884ce1b84d33afea11b26731fd13dd2a729897296092da1ef2432bb80f21ed9f5a5a7ab588b6a54d3446ce610916429031a564ebecf3dc7ac8e1161ef02b63713b19f1606c87c6785eb16ba838c733ec9c982f9552e7fd9680c8427b0ccf2ed469564234a8acba86ee3514c93839676c05f40ab834725fa15bba4fa5b89ddd900f33107d0b20584127b69e6e135802ef9a70afa489ba8f26f7e87f526a45feef096cec907c4d56ce738da8480ab7cadbb59e06c481ee93777555d86fc7ae6beceaff754de9040d08c46fb3405fd8158465e15ae3a0e2a95d2d4dc799b402f941827e3b0e65429e7a45e5028ba7f1bec3e8092d28bdd7574db0259a0aef7d13eb628d06a80513e656b81c5571a33ad6f1631a68476d6fe5c181cf3fb4519d60ed35059bd5b972aa6daa4901622c8842334a3d574d34365d05b668a1aa7de20350edbf1799bc951f3ca46bd552b5cbd5c3deb0e899cb5d43316e0d60a62b4516a80662602c892c94a01d91ac5376793a7f18f8f1136b98c6add0b1c15a3e3c57f2fdecf96c332db5b3195d3ba28cfaf46d4eff9cd28c4a2aff13faecc29a166380a76775b51d38ff1ede634aac7610960dee2c109e11d2c6de6c6f9a1283093a92332412eb744624c781766b59ad28b7f07e8f2260479ba0a13b8bc6efc7eba521e2ff7cbf9f0d09cbab2ea0c7ce590b1423faeaaa86d4a645c7c37f504759eb31180d71cba70a50e20c546120e5d589224d4753dfe6ce01ee40d4f69a8f4c60b4edab193043f71fa453baa354bb61e41d9a443f88d50b8ede08cf64168c08cb637ff0d1a3ece499cd0c1186b1470e73879b4bbf01d470db637b36ac74b33e64db278f9ebdf45952012991cbda565b4a3dadc98aeda25209d9591decbdd68d3bdd5ab10ed8ab717715e237ee8a995360ec0038f49f70a1e2744af44652b1caa04422f2de56f159de2c3636aa5503f40029c11704295dd8ae2334fed37cebd11e4ba444c5cb5f971cde30a460a89fde596fccf07e9bed71a1c6a063f406443ab679869b2c009c96615c7ad2771ca6de296b970d23ab37afc30cdfe259eac1f67f008da74818012ca1b690d20b140eb56b5344bb20a1c515d265b638ed4a1b3994164382d7ac5831d6204f4b2789198b99732a10b3a156c2efc8a24949c1c8ae92acffc54027c60ac0babf8355bdf7f403738ce50781b62259b4c87a0bdcb49d977acb432da242cc40523ed313ca55d7b5472f62db8c26164cf4de7453ce344b67a61e747eaba83e98c3cd69e4d0b107ab248fdee88361d22fedbed81aece96da5cd62050b46fd3475b340a46ff337f712f63ec74256a3b32bd847096b08a6b230ec057fe7b5bcaef7e9bb94c19938d5ce319ab6e6815d21e7616436b408ea101881ba0527260c67f4dd3941f8911892ef945e4309fcb808a5f218b2dbaee8c1bd946aa24080e08b3afcdfd2f386e897ba827651e8cb4a156a5979e306f067cceb00b6a85affc98d46a85d769bb19e1f670823c5085d21da376390576a5202a286829da555410e2901267409b6388dca3598d81d55b70e82b505e31f7bd314ba99dacd7bb0ea8bcf1251a17996c32b951ffbbdfed1b863cdaf9834b951bf5579689761d121ccdfa0d8d56d27d4f4d044c3bd86f83889bd7d8f6e6c9b29dcff8fa1e653368ddf40de229cea1479e683b34c2fb05e6738bc8f34e003ebe2cdf9b3f47d49bacff2887839913946188918aa209971bd50f64be40ed98ccae67042a1befcef3b9d2973eb0ddbb4e265b16c539cdd24fbce73a2eadc806340465f38ebf11cbd2df4ef92cbd468e319ce1469f22e829b94b84d07681a0a29577aeab8f1a9e9c45f9f5008e3d18b33f51bfd358668344ff61becad7daa6796348cb7596b8aa31fcb223810d6b7cc0becd22503b5c32379e8a794a5ef0db92f8d8f9eac201e1b8b8d9894b91b31815a06ed7004b6d9ff54522788cb664e333520f3a48e1df92495540b06e2ecbc4a1d342f77ba905426ce439cb992ca8634b6b307e148b6e22d9b786aa166f6ce3b20b0bdf35e740bebc7d0505c48fb6a6a0342160bd69d88fdf2738e3ac833e152ad39309fcc841b766c2b244e0051f75b378e6ca886a3bc9a0cab47544877b32d9c10871ba3a7b1d1639da352d8d3eda2ac51b5162fd4b26006925e06ec57d211f3971f37351864ace46832e04104f0f933187c70695ec517d17b8c3011d5cbf26f63cc65fd1f44465845e776885fa5b61e19a2527f94a0b3cff02f50c932c694d128182334eb0de5e82d9bc89240effc9f5a6885c9baf9826f23e06380b37396fba392136555ce9aac2c887bdf53593d1d8b6c43ffb13efd1899f348913d89e1f020586e559237a43541c7eb60bac6f091838d5ba3977677b9cd0e3385560e975e390036e6da9743994c0f692b3eddeff8b08bd425fb6144ffb3db1d9d7ab8a45e6301b525b4dffa649dfda06b36d3b30b48b9d349f6c798c1ea989095a0f0823f9fcb68b60af1c1d140609847d5422e5709c51fe210ff115112b49c1338bc463fd533389bcf9751ec5f1f22be447049c02e165f9ce9e7487b614ed9ca70bc04923c92d991fd836aee11e630d5aaa75796785e9e7e491ae1bb2764105c29418b6db0c7e67e9bf7053e4c73115c86caf4792b022a511d0fa9090e11bfe01f0997bf58fc4c408487fa0a76e365d4614333db6db2a7969efebd0f56b54201bfd1a431bae5cbf6197196c09bf77b74a9cdb24b859b5415d746884fd16efc2fb51e055a4f2496f62a0198098590d83e84b1b26d1cad99b3c22ad40ef730e917b34d94b37a4718bbe6c39702d853cdb54c6178c748190ebd2d9e86808a39548daf4038d3a15c85ce83f9f1fa24f363f7e9c78d8fdb48198be303ceb726da63f949ef7ed1b8f508176d8e22d324b5d30de9743d486ec810393c6a2d81e74d5be422094a967723045b3800e1ee6f9b6c9874101bd89630065178edc81b92c8d3e6305d7c1eca617513702e4d2bdd4362a076c660bcef6354ffca8517e0a0bbb4499c86ff899a0feabbf73c4394f430d6de18b7a4317b0299dc3ed33284953504e7e5a0e0bcd62b6a2a41a55e96723b8d7b3ed3223627e45860374739708911c17a903369d6c15d6647f58de4a1bd92f784cd85eefb6bb4e84b17771d4caa4b6d3ee664d8088e53ca275825d079f9122dae9a2534f4b7dc24b47f8eab1f0fb40f355546fafc58738431a39834f6473925a67e33caba6abf1f6deb5eaafbc4b3eaeff4a3c25bed976c6ed881838072b5ed41f1de1ec75da1399717e74f2f929cd92281b38955c6c092ed96eb19eaf0d688d6ab394fc8fe03a8397d85a0e53bd01954384fcc51ddcfc2732d75bea2ad6f560d4bc6327f8ca2a200b1fcf2e201d34c14310c08c6930af1a4f7db05fee26f2abb6bfec359b37ac927c1db36a0c32ef12df5ef61b38ad7c95c6e8b968680d6104fcdaa642b11348fce2da5966d107b7753f128f92f003ffdfb1ba0ff8d445914cd02ce81072bfc3f273a4eb19272403b0119c1ddb0d7a72fd60d59eca51d44f26fb4bc321341e7580bf1249ea9215854fee4b3805a4418ff2715ab6447fb0c804f96bfce70711d832bb76ad01ef74205c31d5ff0d47d427fc3b974a93288391055a72a996cc35e8be6a6d0fb6aa5bc6780b030b57e8ae13642fa811876383ceec141f5fc0e421270ec42878c79715272dcef97757a2fa7b856cf1645fb317c92b36e8e2cb061a4a97afeb2874ad5b8e2f83029112a6524e6d68d427b90309161008a266afd4ec682a042b2fbc81887d24a242867d61c560d63950dc2fddbad24cfcfec92d1758e938bced89e68c1ca30e13fe93de4a3a3fd87357452cbcc24ddde2e82f1ccaf63bc90296901c5cb3b3bbfe35ab12eeb662dd024ad44c10579a8a31d3e220954ba28feae2de82a3b88ea3844e0f3ea6baf4cb4d1877b02d79c9fa91911f31c6e358d583ed5a625bc58e35d17c75e1ff3e99f9b70fb7964d90e91a7b54a00b5cbb73016e4bc1ca0ebe8babab37888cb46d7b7256e90c20c3268d707adab6de1136d823b383acce9db75f5db3d64ccca764795b9287caf20934937bee4176a30957578f1a459e0cf3f6a253f46ffa0f286e66df5dc76a5eeb1bd2c11ade836cb2b70ba3f424f6102b884a4ac5d7b36be42509553133eb5765724fcf71a7439154b926a63cbf59748d080a83b2c57b1a0b7f21e2f1bba0f9b0c5a123e5efbe7e4f6ff76eb6a4b52a6f12bc492846907f124167eff4838f517ac9c6281339a193803be98ea1eec1482dac8d10a912cb7f7a1020d24436d90fac6cf3a9e8b240b476105a3aff3ea0a9813575c755bdb12bf37407dc3e23154c630e44ad9342a24dc3b34800a0f2266e9403ef9f9a809c3d769e50c31ac7a65d858602a459f58a77c1d660666c7f114bec8f27bef57449726fe6e4591397759c2c0dbaaaf74e9346154594c5c713168ffbdc6717eec650f1a4dfb7c67a2c493c8a3c02aa37aa9c0144d7d80ab49b3a1d2a393f34b1c2e6c5b17381de5bbe6f28bec31dcd3c7325d1cbaf178236ac18197ac3e65678821215941871e1dc8e57e195ab67d47ce6bb46bf945468eea0fccd59676c052083b6872f0e311e3a52481ffd962c1bba3c5f2ab4b524426515b6a8b9187a5ec6599431d967130f320f612f63392585431d1a1665c3603b1daae7e3879053d14de16ab83953eb763095e66ccd0299a4a5dd2acb42bd5089e362db25ecc30560603b6aee36a111743a3295ad56a82c5c95e17dfbca7ca06a1a12caa497eef89a1d4283b00f4457f0d6b7b75e17bff9aee54de2d1a4e2afdf40eb4c836b252498ac6364866db6323b0010ccd55b5282993599bd1df9b69c8fae7ffd333bcfdb8e66a924b9c1cf74c204a1a2f6efae3fe8f89a77492a5c7efdc5d111f2491021e268f3b36bb36c27e7b6b323990b78ee4e88cbdecbdab6d5281f5b66c5080eae4f15155e53e880d2282194ef2ee8e12f670ebdf3d51d71e8e1b8ffa3c19d672732a6931f130c49e81c10306f20dec99267d034d3c39e4743e3792f7eb02a67b11e43c46179f646163a3af7c4914add19bcfe5592ffc90ac361226b0f17787a7fe4fb530379e1b1f1b8ca7823f56942b5703803286a5aa2b2a5b8109861ccb480e3d21638e486463a51a37f54a7d8dc77309ec119255f77790874de45d80ab5b9d21d8289f25052396592fc2525986a343a73b5cbdac3a8e0a2d8fa9fb9b1289b56f7c50112fd370c0c2b322afc883fa2ac24cb56de89a678b064d8b78085518bf675d959120a282db74e9aa38ddf8ac88f42bec19c21f2e7fa87927c9fd655aa2846d578969eecf55a001241546f718ac0c8622637b9f68db50d5e3c8ba6275b4f115a06d3f5da90cf7076b856b6a99ad623e3632de7025d93d208dde54bc97176cc36acc733f84c4b813eece5fd77faa2432122224827885e8c1989b98f43a456f5d481dbd358694ee85e449dddda55fb35ff8c053c0889ddbb8cc76b212b3168d6ae397694b814d81b230b4d2bd1a8a2960a91c2031360acb4a9e7e4b2025a405e454c60234a723c55fc128684225de4a94c632c08bb296bc590ccfe6eb15bc144d5ffc50eb6fa342fba03fb6889b1bf2c318556f08ce3135093a5881fcf87e3fbe45926e3443881734d0c4f76b77d7ada28b7300833b304c001b81028e32ebde79e981e0da8d35da9ce7e7f66612395f5dcf3d5e7d58d444cfdff206c73e6c9f7cbee39374ca7624224b43bd544a82a4020440e3db130a02c7747703c8b8ae5c5c0f1897e7c78b524fcaf8c618192b9a066f896e191c7b6d452b60a95acc787a907199ea919d43ce6990bd7b4dc2d54ef3d793db572ec9268e2238e76a00201121b8e482922718d2783500c92026bed5b1acbeb3eb137466845c5f1706469e2652e8bb63f4ab9460ed263ec8889f929a562bd2d2f900e3e8c6edc7d9fabba09185d418a5ea88b862f8b33ed1544c412c8a33f2efd5525078df505f10db4283b68d4de7667d326df4fff811ab92135d4e6758a1f8de91de199ca4a9ee529fed7b3d96ec7dacb88fc5ee932d3f74b7b3bda5b77516b91c2266aadb263e63520c3308a221993eaf7bce6d0d6cf15957fe56b73077b86924dd0eb97b76ab34f6b025dfaacfd4dfa65341d7c9595fa4b771f2569548cf402d2fe481320228ffa67e471326a2bf3bf1394b47bde1f5c19b92dfd9cbb8124086a3f0159a38f9c1a8bbc99c411763ae0f011a6230e2d673a3af673a3bc0e11197df2850c1c2596ab641d763f28d67741d3f8a8e99b7824ac22f404ef105619776cf75d7700e6daa97107716b13700332ca84fedc0e73d2fd755c35a560065269dffdcc88dbcc1568082effcdb849f7fa2176cec2b4a763d0ee40e32c7f93d3690839cda0f50c6e3de0a5555aa4752c9a4c23a26976401eb2e2ec60a90e64b83985b7155a42de81c6aabf5972284694865f6afb2e1a7190ba6a076371dd2b55bf8666543fa831185b03a6c7ee94f7b05b2930b847d480e5c6049cf738b1646887dd8ce7ec302cc66d35153af08b80b3f6562eb42044b109fafcb47a5f4f0240136ad8d025d50895f9ef07348c7222b6d13c5537c2283049c891af87f3fe6254c54e90bbcff56cbce544c53170dccb2995ceedc38154f39b40fa4e797d7c1057d045bd93372af0b7ed442aeb7c2ba88a585bab57011d4f5072874800660cfd024f1114322537d770ac3fe65a0dc86e11e5d3a032dc8cc2578158df4a88ef2414bba6deeb768e90a4061cca25cfb42d7d529dc10ca3aaf6f68f13015151b625b8458ca2260afb079e11708a962002646ad096408967584e792f41de33ad16e53b71a1638f579254e8e3d6def4fdfca43795005caf6dc6ceb742fb2914b865001ea2fdfe82d2b05dfbdff3e0655f99f33ecf97398b43b796ba9be2a2975ca45ed60e98e20c134311593112df25a6001f180cdc7111668949b6bb30254cb229bf9b55b3ec63fa86eba0d072b4d3e4435e88482d45e08444d5cb32903066ddfbf0e4b40a193eecba0b6b6286dd847231396cf4d82224fa22ec48b090572a3b1891e044ca12b0d97cc580a4aafbc67c966ad7a3210b413b39fda018204e9216397f6b94f0adf30c4e6134c98463644b8b5b83cc75a690d6629105663df40c165fe5da054395e50e9329d8ce21911533f27ec3f857f8d5280aaa20bf0591d1cfb4a9cdc54557be6119d3437ce514ade36a458da03ed02bff50aef070693a82bb29933c046da3744106afbea655d14d1fd187d2afa620222c8196359e0c7766bfbb9db607f3dfffa8ffac20a93ac2a11785be587cf03af35c1b85c144fc2f9786a1667615ef46b525acee97e6edf317f8558a434d7b7a296cd9a9e38e5cc5cdb5078782652ce416968ea6e45f8ab53007fc8080c68bf1c3a4778d593aff6a9e55e2ef3f0d9888e785aa6df8c7b979dea1e5512fa9998200ed6f6680b66ff95e5d11e544867478d2c772750c93fa46a786a1ba6639bb39d2b079bda1dc2cbc4543753591aff0bb8adfc782b18fd49336f1b523dbb3f2e6bb2170c843002a224db1a5e2de67cc86464d0bde5977b94a3cd59f9fe48a72e78b1fa254d3d64cf3caea0dd8adc03aafe0847c4112996bb3a99a428a7aaf87dbef3d50d491c55cd5752431016c23a619f639ba41363c105fabf0ab83f2d698aa8f1ecf1cbb62fd44fd80308bd1c0841d1fafa74ab41ef97ab1cc739ca0c2be3493339ef9e0f9a5c2d672a97c57e323f78fd5c0e5d2ea106a249507803bce043961e309063564a761474286942dbdf93383ae8a3486e10d592b3a03d656d23b183fa8a0804da5e55f3fe0b7a4f9934f55a17a235dae92108c8e12a875a2a8e69ebf7009f392417ece2f033e41a6fb8ab1f7d0d8b638e04a9a8e14d368f5acccb32c0893cea86beaed1d1b41b12825bbe12849decdfc455b580458987433df1fd2553579078a679c8560292348272c7c8c4fb351e7abcc4e84e25e5cb7cae24f499b3224ce0ca26b7ca5551693e470043eeccd6a50c04cfe15fb704def2d026e3ed850dba30c42e0093d033982aa68276bd870c2c523efd07947024234f64823e45673c8e0951de9ebca7ea12528aecc77a94412a87c8fa917afa14dc974bfdd5c9320f4fb72b5e253577347a5d5f8b9ab84caa66885ee65295e2ddc7429dcf2ccda51ec8b93e832b3d449753c51134bb52a508051e636b2d5cc459bfc62d6c7056339948348f5bc2b375a7aa2b945fc7f5df3dd0c8cb642e8bded8aa7a24d707d6bd6cb698b1d43152a4ac9194f2b74a41f3cae56d848646a715020190288310367fce1fcaf41f049df7f9b0862b75fbe17ec208e36af60b9002f4eb37271bfdf5b9df3d010940496dd1de0665a8b1c874c7c50b81fb695b9ae8fb1f99d04f861de48f32b8aa5eb622580c31a2b39c3cc94fa4f0e2056fc5512ac40e9ba21d5c5728c93143471cd999e09fd036a8f3184002f0604c5f4deabadbabdd8e480c9f1b49f8016ece656aad914f35dea93320275a0cb6db49270c78c3901284c0f662fe1be911b0a961e299ec31d33e2c3c89ce3f3db4ec6779b870a19a3b1e662601e572ba3f6047e2c423a64ac2106c2221714d83568dac87cdf2b9b32c5d8a5f594f28eae1a4c3733acdf8258a186f82800c62dcad30393010971add089422e191d160c9a8ce0e709d44380fb993e5f79032d4385829c53020f705cb243b4a438f6233ec08d1ebca695d73ade57799e2f3a274827f02ab238336e70e9036ad7efe1d39298952b3e82426770e044bc568c65d2a7e0d77e8f09ab277b4a52c3d75db64b7c2d879a8029027403375363e943fc0fc28802623d16e1ebc8fbfb2be49b442d581cfaf52cd432c24ad919b08855b5b2b928f9d370a6515a8db1a361546eec547128b08fea45b15e7a278e6f3536cd8eb5f45396439a637cf4d1126048b696cf3cf6c787ca3070f2d51e8e2fe5782fcd62c597a3c23a4faf2abe09f1463051925715fce1c7373e8e9e84b2ba8f1bfa52f01fa3bc7a7847d5c664e97eb775bd9803d4979e1e4d6c7def12cefe953c9648bc9164fe306ecae7e3eea0401c4152a9c8c5aab54792e037848c751ee5c7023e3062898afd2c002c8649dc4052a3bd36355ca7b73ccf956a42b0724debc7c5a776137007ccd2f6c85976358d51ae30dd752b510ee2ada5273f29b78f9723cded0afe6e9384a829d943c6036a0db118081d1340ae0507b0bd27a5dba4655c2ac811a2ddbf6d78bf2a6827debd2c57846e45c15f74010d980a003baf182a7aeb263aa7763fa3b752fa15492db59b489223f7c5fc419b422ac2c4d229b03d2e59dcb4a27dcf4a2de93c6da2df0ec9eb5b95c90453250175ac580c1e271e6d95cf9071c2b504b93f464c37a0e6589c94f7fed7a572ad87475d6fbe122b04dff1b5c66bab4925efa4121e335f70dbcea2e565c6535fceb4befa99235a3da71f7581922818892d4cf5b4a288563b502825671c23d9f764f23c21b3003b10aa5e25f9e63729d18c9269f3185a43021d52b6b2818dc8d2c49592876a1b1ea7e32ca954e2b3040aaab16ed1e53d708f44c21ee1e0a97520663d9577961b2309f634ca26d6604e6f257643012bc799f83a5a15b653b67ba7c899d7dc66d4fc5648cdec6d734dd6cb8884042be93b415683c37e0f7feeae828c565c9640a3d8c594c0eb83bc7621f297112e3f292a3aef9e0062327842009b41b07e0127bba195dbd4c978a08cefe3771086de8e17b45bdd56b5d5b859b29d8a4a4f2267699e4a7737528e4f324f767e89e5d5871b64837309c8509c995bdb747af17a0d9d1d34cbe754abdb7302b5231daa250c24b4010ec9cb1fb8fcb5aba9de2a7593dea5b1897026a7540d9a34ae4b019a82b6a0edcc33cc32a6cbc19e27e1cce8e51c6d8073b3fe11e95a6311ea54b12ec495ed7b8a75219dbf1327d3afd8d6b55ebb9f3fdd9aef16516378da1a3a0753938d44a96c4a60ac409da068c465da824394a21f684b115de04ac56bc21c712e4142c574d7d1227bfac8cee23d8a80193e465a533440195a8474eb69d1964d72f8a264ce62b0aa357c24aa15ce33a9dfa0b9e31bc94a976fb9465e84fb4b6548a3a633590c3f25994f4e5251b429348373e92c4e08ace0761785416bd1d5b61dc99df41a847cd6df9646dec2ffb933bedcafa5a63b4a3861a26be0f954bf04fdeac84c0734a6872b4a691e981b9eed7a96f0969153dfa12a447e69c93943621455e7d30b4dbc5870d4f1ca9af9848febccc4dc22681e5c6c9ebecaf7f8c14f66e7e7b8e98c91bbd8d5c18ad4db8cf2d703a356955ed2a84dd3549c11f72b70e010596ddbf10d86743725f01e659460ff304962b2f8c83c3f5e763d8ba77971dc6bc12eef591679a25deef007ed881646ad0c362b436178b991c15e370c0e96993e508682e8d1a5d8022579d5c51b552d6e7a601f9ead11261d38b1d7e63cd673da8c34a56987e1d0f1b7de802438c417790d51c1d5ad928a4b2e18eee5be931d1156e1dc62f03c6872d1a2e62488ebd2f38ff9ec272f6c5ea35576b4ac0e2752b74d34fa8084ec5672764491619e3126104b1007de6c57cdef962b4f4058dfa7948e942bc81bbc3f881c1cafc4dea01644f02b2567cf0f6a8b44272edc617e2405dbead8f935c228bcf0286da91a12d5783a27bdc55b55d26c7b17e4574f7bb0e8690311b1bbe5d3b73a64b7a6c9dd0c167c03839e5caf39e437deea9e38d4b43237eb120810a21fd55d7a2956cceae0903cfe1a055aa01ad9abefe25e46956e773f0ff40e388983e516f19ffa77d770cb6632e1de258b4229488480edd6017582924898fc5f620353ba1906511dd25267dece3c419f0cb95ca4148c97609d74d32e1b5eac22fed7c2dfef514faa689a6c8bc320451087c75d41bfb8e2ec269204ca6f087c694ae6a3b92726444a7dd870425b2dd0757fa0fa6034512dbe67499a182c3bf2ce77f89f3ce0292b826ae58fd05ca28072a1fdafeb60fab0617b9e32e07ad4956cbfe23a93629d4993ecb50e2ff6308a489f0c9c138e49898f6db1f54ed66a92677196ce2662144d80e7193eafd9fe612792a09f59aff038ce202ed14c92f0fd87e717bd6a68a449783db1cf9508177375fef85d383dc85e93b69c85c983283694006f627ccf80cdd996351de7fa3e4024f12dcbf0efd620745fbb68b012ca0472357b857cfb1441478cff8715a388a834a0119cc88072cd8ceff7172abe4862ee1fb4ac910f0ebd5c67a514aad4a36f467f46a7911b6eb20f6fb027eb4536af50035486069edb2df6753e26f129346cb060b77d8d3e84349c63a0ba16d8476d7db58778d428060a62e17e471bf75a57af09fcfb405bb7665479ae304f0d3dc3c1266de2847efa9cf747356d2b542157433118df363514377b6aeb6a06e97f0cc24f603b2df9610ad1beacadb49816b6972be10e1d6ec152e03c7f38cd56579f8130c353b07f98d061d1fde08a46406ed06de4b1605eeb4001732593667be54c96ad00766794ecc36e7fd711d56f2c225091be52026bf8b27c6055f99746d3eb824ead3bbe33ecab3cc0358d367a341c14d50b32d1883e6c531a69509529e54cac534272d93edc3c3ca5b4f99507e0f3bbfe7d803377484de183535f7bca4cfa3524b4768c751917d1da13536bb4a2a1253df3b80a06ca2c1182d23cc20cf85cc974a40e1cbe3eb650b71e449e63dbfc8f7451c51b370213333232fd59d48b6f4add1950f58f379d719fe05803c505b72dbea28c5a39b489aa2ba65c79408c6cf6fed2ff1b740ae7cd4e3be6bde303bfa57599a3d96bfec7eb0b1a5c64531d8ee2b87501fdcceafa678b33b4892ef332efbf068efc9034be4becd700b3fd4ffcae01c3d03aaf53098fd0e158133c796993007684a904abece46c1741732b48ec2319c3e0e372e585a5a95961d8c4fcdf2df615c2646180a37596809cfaa0d34fdaa5551aa92dfa9fca48f2b8340050ea5ca049334891ccd137f53fd424dfbf0f1d75c6394ee40673630d9ebe75b74538f86e92f4a785fde8cf8fa4663f00bc9241b28c67791c4936381a00971467d9d365c3b857a52ee6646a0ae5990fb93e6bb6adbe4572145e7f00ad452417b1e24fc8ac797de7a954b5a05b14883c92f51ec3785ea380da1763ec8b57c7aa2dcbe8f93322a587510aa92f37dd95a7c15813d320a64f463f511345f516d182baab2238df242d2e7da1ca9c792f38b6334fc39044a6b80b6f644a0c6a1f9de609a347ce531469109e47df0c3a2b7c3b2552c474c01b91d24135529f920be7fbaea69fd8e513093c69c944016eac5fdec6da44e32ba432b06eee75b8d5b495d456eb30a556aa632f308f41deebd92d5c1bbd3d4838f7e2f7abf0e0df2206789fe332f39e13d4e18f6413bd0734fc03599c526d25aabc95cc81f424074443413ff85cea18c0e1a24ac99d0ef5d07b2e3783862f0b6ff04d8d1bcd67eb7ead0b9c5eed354af9e741080d0de85a1bcfbf6317d85ab1ba3dfeb6e79b962f3ff059c9d71c4ded63139a8ec3e2f5eea51e39c1c86f3b176bfe20e0c5fc0c18f3b9f1644d2e60c6de41cf20f26c7c1702b96ee38fe52ce67cf2e3f4e26b484f8371698f91b43f6a11a584190b39663229391951b1eb7cedc3c64ba3b61aaee92b8a676a2b4d0644d6e6c6fb002deccb16bb79eb2acf01884095ab5823162120d1582450bddb8127085125765e9ee182eab36ee6593b49d67b1c056fda473633032faf293a0d24030c3e2d71f38f74fd84bf067a23a08d977e9e3b2e0040ce3ac80d82a7cc06970389f98b1266ade3c353382511e2a3fd5989f3af7486ddc14e62f624a54c64e714fd8413a478eb41b54738ef5c8b449a3a4f347693d0819d98f4b19fef7c74b433e9cae8ea31c907cb1184ee50d6c24742e2e9d384c6a44947a11308fc6a528dda682aaeb002bbc38aba16536b2eeaaf1ae5ea58232c005d3cc58c797667accfc977f1291067fc80e3fb990ac5b2d2fc84c72503465457ec2870e5cec6ef5351f1ce3c7904d62b36efc97d2fc6465460f70e5107bc6d30c9b81cc2a4eef31e02e622d8ba3f706751469b1434e938ec918fb8d120f6c9f60b3554d6d20c5939049c7ef951faea49e2efc73a99d466c9c64c1a77e300a4c11008774462e04496a569432e1356eceee257018d4bbf2418e4b9fd290d56690b17f569814bb70464fd9cb78dcb6bbd068bbe74f38de2b53912eaf668fd713c507d70fb0d2f1ab99a358054a257bd85f72a8d0f7eed20ce114b2d2176b3e226ca8a1f718f6c3e8f5382bcf268ba2e8224875edd6fb573a23fdc5201e2a52c3b8ccf120301e8763607197c0af7b3d6991670cf50dd86fd0697b774f120328fe8406e48cf01526a0c396d6f748db3f83e28ded8b4f403d433b51e2c2381ebf01187a1fb1e917e38ff5adbde8f04f1592f2d1562d398e2acb1fd04eef70224f77ba65ad9175a0fc242ae07116415555f2dd1f2eb7de7e88434708f42dee28c6a5def304f4ba88210f4e8a9c2c99c4bc420e107a15ee0a784badde5ae1e886f02aac33e7dc0845ab8ab37366e6ab20cd74ac2813579a7e74426ce3f52093f8d929fb55aee3edee7f5cee21bacd18c342154672a60bbab1177d4d9204bf859080b481b3e0d56a872bcec611549516b674617a750cb8683eb385b450aaf7731098800f6efc786231c3b6cb5208b6563871205493e340241a5605697e565ff3aaca55aa420751a2bcc22973d78957e52c02434a30f6953a9d69607c0db49266dd8be6919ce92b47c2e62d33e3cb9d9895b4288dd0fd631d5817a38f42fcf2ae88b0e55b5acbf078d41e1a50686f739a143fed1462601d31d28a64919c23c4a92983419676c8fce4308e128a74b423640e4e8260f6b6fc117957894c64972b09e61a5ebdb236cbed6f5ff3366287cd68aa78b191ea5039f7eb42cc2cd1e0b784dd60093770a2349ebf199293e840d0e1af33251c3b0d2ad96f38e8341e7480145584670d14bcae01a17de232ecf6ec7462b581d17120c38ae072362996ecc0b07ae0e8b0af5d2090a56088040fc805e92e749c4a6da50866e27a2f47116e90613b8dc9f4a3599fb4c836347908a3da0657b3a61c941925f0624310fedd6053877ee88b91ff707d205e6a3b9b157cd4cedde8b6116448471937b66e50e3130aef9ec5912cc38ca2d75e91a02e734599cb097a50296d6519d10f29ff19e8c3e257e940dfc9d2adfa565b1e6b816e3728de664a74fd15577cbc7557b6f2a1bdcbf94ac25cc2997e3551103d823bff018bd51090cc1bc99ae056ee02ba1adef2a493a76c552b32bf9c0828ed7c640db7422c0ff7105ab3e5516518f61d3c4c82f375916e4e0507202ebb701b168807988ce64f8ec97925ba7bcd5f2ae1ff945e2dd57e3dbfc32bb70fe01422e73e6543476917d8e96996efa2a2c109a37fe3f5217d7110f2c95fc0dbee62518a82d2bfd25b6b9411f44cd8796384fcf83bbedbeddce772091326cda70469e266de3e08c77405167c08fbcf3b7f278f9df15619386957718cad104d47ab4e0952644910a2cb21c8c3828c094687f5b19c9d75263244fbbf1810e02cf91d80589f55734d068ad28f7dfe2a7bf3047a442282db17345c4d18d35c7e33c06738f85bfd0f1be4b070242e602861fb452b92d813f62ef51084f2f6b5bd57ab739e287795b602212e46c21d65fe3c4c3871c77e7b22708058195ca646e8d887bed7adc723840b3dd625e992edcb5d801b24535bbffcb663418300b9180109a4d06190a68640a8d4419b1bf8d99a192372ad4f79f55767410f3a86c401765df2e180b8f7f1a3ac4e0ec7fccddd69835edbcff6889ac878b45110f0626b47bb96b085cc6efe087ad10bb2624be17d46246e3152fd81804b1f90143ef0924624b4462f6fc1939ca018a1964e87bfa7219a252b731010ad5e55a51660647f7598e3a4597b24dfbd07c87993a7e08645ae5d0401ff659b95b6d250552721e19e02ff035e0dd60f308c3abf58e9318afa8dbe9634430e9fac0c8e4ce89056782cd6884b24ef9d628ce1e44c6ce0d98406a440fb0ab400de14dd6faabab92d11d7596193049166b027ff1b7d1c9f0488582bd986dd1814f411e30b88b9b9229c43c9919fb80b79036afcabb4653bd1525eeed6497d50188476790c6d1b32f2a08baf188bc6b807ab7659546dbe5d8b865a7f6a68eb2a544417d2cecc437f6f5959f0a75aa1cc173dd8c28ba12c99492a72aa4913d0a57c39f64706fde57fd1db596f22066742200765cc8493d4ef71685a5b86a29a90f8cfe95d51b2c8c6b9fbca99e2b0de1ee902e067fa4cb0220160b119be5e87f03b63e2c347d2c4eb2e12434a31ebdba4888563342c58cf575d1bc75be237c5d21da1abe6c7243dd55e84db895ee240397b652d51869dbe2bc2c0a9570762f3358b5f9d18fae50934280faed42d85bba7dd2182d6b018c9b866c67f8f4f83875f738b7fa0b1e7cb19bb1427fe87d85abce1d5c8a78b57aab591a01a25236c5cfa9d59331b1e3d602926163b17c9438bdcc8bbad82504bbb9607abdb9e41d2d00c727dbf1f0556365872fb39e8ce224879b3424b718eb4d3fff03c7ffd298ad5453fda1609f927aefa44ebf43e98b2dbdc21a7f4464d03d15146b7980638ad2c0a5a0281db6d1797d0217d7c8e33c13695459ee8cd1599263ed37cfda13a0c8a25318be8fbe27e2eb35e5438f6500809fff4f9ffb95724ffadca58410439a7feda7866e917ee07307660c397f3ce3d29481b410b433ff882f89b93bc48a07d16cc9894a272643ec37ec5c8cb9b7572da0e1958c3d7dc26a3465ef1f5700ba65553d8944d481c4f555434cfb09993dc04d4e4b4b2e568bfc1b0b328ce2e6571909df39bf59b110e831a1d78631b8a07efccf6ed570575a14c26ed722b5b51cefcc84812dae47aea0acc80d2be54843399224bd8d3c34f701cfcf9cbdba63c5d1725a493d0936ea629c8ecdd4a20a1fd801b4d36377767c9e42e38ac8aed2a5ad130e89c7420c721b2b5b38807904cdb24d86a78804a200a126c3d99044b08f599b129deb766afeaabbd2b02136c18cb1e93793772a5d8a74729264eb755ebd881464a5e161b75562c098ad4068d6b57b9f56d39eddc1c1fb87776d00bfda358079395a033d3e4c04062f59d358f639a7ac49c1e9751339196c015acdcd0f6b8eec46d0b1818ad75583f45d4cee13e270e8238c2bab0b89066d70301901a92ec6d02862130d33608902aafc447a427b5c91be9f58f627e282ecdbb5526bdcdfb160f602c32f8be5e34ed3c2fdef9d95fb532e6209c378ff55757d0888aad07e299eb15d6384283cefab4428d3899d4f25042e5ed08ac1ccd354c02b6cf9aca4a8a94c4d606c52f068e943df8fbc508aca1d7a61ef2edc904f3168999fa901b0e6b0b45b3233d5c5b25cc87813736961bae6efd79c460805838f8862d1ba61783be852a4acd8b3f5ce5bd46461722a29355a2be7bdcff2fff49f7c704d0d0f4f242f4c3823878234c94e73bee66d5dd78040f564870e9dbe77c27314eec53f5ae748ef84e4c387f3f7237450e3dc42a978a7681b553127680767631afffb965570dd18cfb7e63b7d6aaedaa268a7b18fa8391e40ac25c98ba56a2868540f616e123dc2a0230725f4df4e644ff5905a8b565fc7ced75afe2f48ece4d1e824beafdf5304db76228944ae358df36988551b6a1f5a074820fddd57e3d096c7186333fa65eef7894f949803c331a11f90ff09345629d37bc5bac60d9237372d8fade48a8c8bedbd00d2d79f82c1bc8ff090cd3a74332c39dcb97b73058a80b5f9102d205eddea2a938539a6d5b22e8e15783bf158890293962a70b61e9868f26a9d6b31f2424c637008294461b059c8e52935f60ce56477e232cd71fef9ab0574f75f4b10560c50c0e042ed2121faf0252a840a984630e6570b51ddc027f75806369e764f454e0578d1fc3a6b9ee0f5855950720d97b53e52af3dffb523f9d43e68bfd8a9b0e96698f5b367d0cb6e3675345c585d72498dbdddaf8a7ff580a367c9728c7f5f689831ebf91abd9bb0e03bbd1a77b11315d358bdd554515c6fe746e2ca56395e7e9a9fad2710b8161335cbd27e8ca25905d2e1394d79255d5845cc91a895184036a67e24188c97736679e44fc0ccd14c205ff788132d85458959d61df3f8f4c8673c8b3e64a903d6a960345b7757c1ad02ce8122c992dd5bcc983bebffec0c83dd8940afc6456e49a6a7c0cd1b782146a0b9e3c891c086375ded35be8e2b36f0d3865db9058d0ce679d39d0caf64295847381fc1ff31e94b5ea70c4bf869d36de65d2abe6a4a0ba49c6b31418346aa08d777e15fcc10faee5aecd866d6f77fc743e29535f705ef7d058d81145265a60381ecc6ad078cb325eddf4b21a2a934ef66b55c44cdc59a2d1044a91c4245a6718c87b06fe5db3cc13bb8b7fc75c242532f069be2eb36eb8a5b51a04a1cb227ff6cb3b0a3dacade804161a7ad38657f527a3ec1e63123653f889e7914142b6d80b4886f5eb8831d0a2e26abca94dc80b2629d3b4c3a6e856e43d864f6682f1d3acf91ce1a467767687c26b18798d8b7b7429fa7acbfab0e7daf9982678026d9c64f27ad7cf5b09b4d065a2a6a38e49d5b46283afc7bafa5ccbf3e80fc76df39c3fab786ca3b99d95ef20a72e23f6ad06079573a7c9d214c8022db1711fa47d961cad234e5fd60a59fa2a87a60c511364441ac2fe1964f80c0df73f128caad39e7a51c6365643bb7798e337c796d90cd059412a55bd66eac2dd8fc827d16b67cc203d8ba42a318ae5bded71d5e73c0743779090e527f6ed39ddbaf5833ffae9f54acd07ac4331996db13509f482687fe923c7742ad820fad6fddbbccdc1abd94ae3d356c2533a36a598d55d0e25162d531b6d78e477240f87195be503722035495eb807d94c8a9ca473f83c42693da1ad6a2eb0aa25c01efc231e17c07222afc07bce5229a515ba65cf76973f2fd0007bdfc085b20a6b3871faaf2f7421ac1d4e18aa7b1b17bc1cd8e43ecf623adff5130e5d3761e032f28251ea127780821f3743f12979abb1469b2a0343486673c06be783de24c698da61be0a421176d8bf82d9234fd943eb0f6e81459a1b9a8ca81f6862269928b4333077dee909e414215bedf80da5dbd7c8fac45684a3434a3f35c9426a3dabc9c3db4ffbf1e7c51698952cee6bd7f3af1dba8fff8931ee8a96f0f7aee87a94e27b2bcbf03b40b0c57b37cb217de6dda65b39eb8f2e4a810e383efa3b4015173446ddf0bdb5a2694e79d37ace5dce9f232482c7f02ad1d722fa318b7eac5364f7cb9a9dbd1a03d5f2ef5e3019f32678a02db79d1a2ac7b8612d3a1d5b8de9a9d653f0062a8d7dbf9049a50763c136149650efb73348af65c0ec32c11b13925f9528013103098a2ec146e16686bdf03074744336960a14845fde477167e5c0515cb95dd3f6a04fb3ba111fd81dfa6065469fbf5a60768b0eebbbbb3984cd242027cc9744b2926ae5910f2f33d5bb6fcd3a3a9ee3b75b8b2cd012fbc5d1eb3df036e6e8ba5f0cf98f8e8b2ef06d39da12ab10f30c5d878eb48a137e0efe729bb5050acd7e28bbf85d655a114bd6b39df1aa266f31a2d7f770cafd5d5850c206b0978f529cdda7caaef02ef831a8ff0b8215f74f09c3669e966b40bc3247d6acaa7a8b6299669f0b2791b6c22a1adffe9d623be7703edcad9f1f6b9898085b319ccfbb03b0eb10d4e410a0d90bd18890defa50f4f7ca56deedc362466dae7936f610c71f93e6341b4cabdce692f10eb9fa5068e1a6693362e8e8c943752914bd6717c336771f4ea514869aed54456cc4475ccace5269ff6055c690d646f76d19e60a30bebc3edf74251cf7345c31e296b3198c2ac4cd534f2fa17b6e29ff3cab372e1246a23f5266add2d920a4fdfbc32933ebafbd1991a47b8a6ff040e0d9fab10177215d8d47ba2b53ee2342209943003c6edbed9ab49b84d9bfa96be18db11d895ce486830b7747b0b1e7bca5727535d1c8d8a03e6c39ec5a202894cbaa088efa31db146836912bc0a85be137b2f7e0a54104dbec92e01571c1df0147db2fcca7d9560816f7852a716f3c55861d57839e337af3428361b9105600385f4a21b8208035600cc3bf4f3dc9fea4db2797864feb93c38edc26949af399c0a2d3f6fe26e0baad93df66730fb71080f7850b7dc79ca0f60cf09f883d657fd0454f2a2b9e7ced5eb6e079d769958c9146d48d3aa9a84d4bebbca6b7bf073737942bb75d3ad14e60962c83df0138a5cb189635525e88d7f17415918961ba461c91f012a423535c4a068a27c9cb3117b64ff75591e2942870b8102f1cf677ee7295b04a1000faca8ddfbfafa6d299b6288f673db35e2761efa0bddddff45adeee7548ea2a1c632ee885e649e74863520f66a49bda6c4e2584c6d788d0fa8b56218216d20cfa7150a6f40bc653a1a9bef4dc8d2d76c83ce09f682c45a09068b61161e1693470d093d09cf2c4f531b5207233768522be2c3df40571bf65d90d95a648a8437a5be66069811c8a95be21e8558a11f585a63e196ed1b03b4f8cb0eaa0fae45fd689981c42244a1c4d1cc8c9714f4c441c295a13d5f86a85d37b5b7eb0f4edf3edde845c6586790f44c8ea82395163a2dc116522de567b7d10d34c022cbbf440fb4c96ee076d2e7e236c50f71c6b38bf571a2f70bcb5ef3ddff7556a7b88f14dc307c5f3ff9ae3bcc65d18f6e50425f85e7cf4841a8e11169961ba1b0eacd624d603f1aca805ca89bac65d737ecbea8b2619d271ec22d62ead887afcc4fdb8103eb798bbf423268d9f702b0e37bf4ad42dc98cc7c4d7a1d1058812839a9dea2865fa1c2a255dd3d66eda96c4bcb8873289f2066d5a89d36c805b0405b3c9c22c37258c1e06cede783b587ada52a82ce0ecdc33edafd30c65723da5abb96329dac67dd0d455c7c47f7b4ec49e215efb391f40096842b8f528df52934cb3afaeaea41e52621c018487e12af2bc34eba41848b26a6b6d5970541683e97ad7833f652589d57b01784ef24f6de8edce5ab98d28a3cfe86cb40a3b853b4c16284b4bbdcaadddbf7ec378dac1f9a5451c1f122793bb49307d08ad2d21ba228992553faf69acabe32ca6f93452f3aacd0acf628a0c34f05cc6436c2c82eee294e871200dcf6496411e2c38c9beda23ea6f4a49c57c4435c1c70fd02cead2ab09fa5e6f2f6d485231ac6baf2d991005fe9a4e89ed463b8ef40e44a5ee64aae83f265383a73db11ffb3e24b5e90a59eba3dcae714f7eda4f6983b1ca9ee9302fbee72d5e794d333ef2afc5bccccf55b91dbbb5cd18217eb05d62f6eb5649e31b460a8ed83049147c29d898b076f82fd195f9a12c827af3b1230139cdfa177c5f7e44315032d4ec20182aadb80c4d9269bd57ee1f40ead5c3d8cb7c0c4b1c7a85fa1e79c049801143defab98f6e7042dc95d265bf8b5700161660517edd415cc8633f3f8d58b23924957f873774cd70e985f0181bde25ca604d4f4089b1ec2a3d01851cdc28b2d7dbc0401c0312aa833b25a8ab9a5c8b7ecbfb34efe93a09ad3da52b161391c56ec8763fe9b7b92188e6ea73c19cbaea9b0d20e4ecd8f3fe05eb8c77997971b7fefe66179a60768b624c0a0e177cd86191d4ee9bdf7b308d4f8e7d9d29a94ebdfb8291e1472327bdff924f073f63454a7539dffec07e40003a16b6b1d1536f22034dcfc0d39c272ba9ffc622dd5975271187fcf9f51fb5160560ed3175a50f26a86c7399ab57cf4bbe6568eaf90caf30912f1bf8830d5d5de30e9c0f3911dae5605cd0ab1603d3529753a5e8b548768f903c00907c97cc177f35f275531d06dd1f184f5549d1138239b27875da33d8291003f3a7647b668433f82f8493c8bcbfdf857497dd701cfbe216989d8bb34a54fce84b157444d7176ea9a4a98334181c196fc49ea60b188f41be2ca4710eb1bcd2efd8638ed10c9be029c2caa191e0ea7753bf2515a734dc3cb8d8403279032555d1a58fe83e9fbfb0f7fda5abe60101fc1221a78585559bc693f2756298e2ffe614d02cb569004a427f2b5314145ca5ef519ae1c213097e210898703bfa400ee79da9b3bf17aa8f233bb78e774bd4b7374fc7532b6d05f90054b344780667264639963ced2d583361d2ef8a4602c7967a32f4cd76e367e156da0c5336d0cf4f710d7b5df54ce89f166aa8d2ecf233e98f9c3cdd10565dd4a367f4a0cb7bfc6d74729ef3304bcf2f6f6a8b949dc97329bdca100e3d36e7385b41c0eb291b868fbea08cb2bca6c4da8ffcd7cb15ff03df19dbc8a2ecd47572ec3394c20fb0679066a7b8af431a88f609c05fc7562b27057871a32d4379ca21975528ea734cf620ec8cd7347fa1d21631433d18be02cab38ec47f7edf800a4313d391460d9e0cb1edc3661758e044b0f472b94374ced1433ad4348d047de2b28ad8833ae8e6d1f0949bef6333a66cbaee2d949ff72885a05b4421d47b9d2bc6c2e4357a7a9d4b35b9c4b3fb0008b5f04d5b426c8a0a2a79cb7b9a092a841a79cea86ce0cefc726193aa97da0e23fbc218c4bda28c25b56653efc16d480e9df3ba72bde2d5119f0ac774a6e92e161d575e411be9d547e0d7b2fc1ab46af4f0c3e7b14be4505c81ddcf35f178a01bc5847365f19694198d691f724e79ada743b8abe5ff73ad2253caca187ada8850d32700a71712b9e59e8df80c952b0934e131e6bc87644ce2692efae2695ad75e4149b472ba608afbe154bce5f264ca3eae9961820b06adaacf2e2cdd18d86c87650d4e3f46d426e05fe3b915eb01edfdfbfa53f3b76c9447add4d997bbf9b6dfba3a66628b747f1b1402bb867d801e3e769ab1e18404747bfc5cf6e97fa3889fad42cf98e5b23a5a8710f63494502ffddb53f53970f4339b611511e3a534254c1470fcb973273e6e2082bbc5feead7a3638e5b60d17b2eb03313e956c7930c5cb6bf6ff7c39213e00964b206be20e9e1358113c808d6665a8acc0b6e84552ad9682963ac8cc221c4e3b55411abaf8eede31c94a35b9e4579734a214b33843f0b9047d9c97ce6cd2cf5bec611c60f32f67a612e069f0d07da8de5e17ca84a42c5b59f4a300c496158ada4b7f684342226866a9c00a7a88f0f3264cea73ee1fbfbab7c0beea12d0be539f88959d77e22af794a58dcf3356aea701bde03cac9fcde0c3657804212190c9e2fc622a9513b10775ea3510678b193d08624538d30b63ca2b0b8bb02cd1747fb0b9e45aa0aa5e6247121108663ca0853ef639b96ba4d46e4073aa5b62e0df8ae531c247e05c73ab8555c9ebaa733ae3c0220913532f6a6b235c87568d3b3a181cd4dddd0f6075c1835c77a0f0459631bd58d534a3b9b05c89d5915de9fa2b479ba6215abbf68ce6e462e313034ea2bdeb4f4c240b5038fb73612b4b581f3b7acddb0bf499128b2f2ed75ebe713ef60623dfef11b98f0356cfc43d18a5c0d3384ec4ce444b02e007263f4dabdc7c4ca3588cf6ac02c3580c5888023f08660482395aa3833c5ae2cab47893a02908b527af800f79e6f08d92dcde14dad58c4e18a55dd07c6db82a0857a1dc77458974aa7fff0442551f6affcb2eb5b16885a7f7e4a2fe945ce1c15f4bb660b6b700ffeeacf17e8340ac3baa6d7b42b32f4196eccab8cd1f3863c4fdc31df89a48b353eb38983d27c0b141e89c4c8a84b8637b8f0e1c2b30667c5d6a2adf1230045758cdba00cb7f234a0a427cb909f1c8ef363150f9a8ec41de8f0fbafce0474c8b3ee68cd20fcea02f34b40f054d4d343a736bb9e8d539d92ff52dc02d6e1dd273ee96e07a787334da43077b5331998107141356f7203fb332317fe175321600c9e51d26d8e4116f93737ced683234f2c11719def041764b14afb72312791f482344d1461a3b69f12ee8b56b039d7edb443a633beae64c128c506b53c883194aa082229532a8bc100523071cf3377fef0ae40127b647a1c53f25201053845f85e07097427e6468f85b082749ef933c3fab7390d353eaebfe4cfbf96eb72a4588bf30af2af5eaba54c6b99a64a4e819af7e5781b759a8f30553bf277ae86cd861914cedc88334d61cd67c8cbc6ab2a43440669bd347216850bc800d20e03f5acabf341923677072751ab9ff548f55eb80079f11c4713ac253db1f3421891a02767ecaea6cdfd81967af2dd6d04eaaa994b0682af8ca1ef0dfc54484f0f55a223129d379539b535a5b3650fa41af466e8545f9dbc649164123b781b9d4548f38655448b93892c1cbfbf8b2739b13697148e3ebfa84b3c04c9d04e0d3c18de5255a558dd0d664770cf17b3076af3c7f7a4ff4ec97dae6e60585579a5c617f0c75c66c3113f698fbb07437f29add1a13c82c2c0252db110ba34daba3b5c0306853ff8c6f33e740afcfb1d9d3c39efe1721fd31ba7781ac4e54cf4bbd6503c0332e13c2289237543102ea49ec44988f21b7bd46d8a89a73d62b763dbd6b173d4d875be0bb1d91cb8f6506c4f7b33cf67a07a43b5e2b3d856aac32297526f715a49c446fa196f2e21b9deaf4048adf834c717bbd66684c7048b0686f466fbbebb5940f36b67b47069ea4e7de7e1a51994de7145b66dce8b4bcad339cc305438e2447334c852d56cba9872924e7af9fbeed02ebdd1265a23a55fd569817f4b4d40f32028d022ad93c5425c6946c2e8d47859939b578c087a3c40cf49f2ad25b622a79c81df098ca3f5d5d7840bb663c05e6c2078b9506294daa11edcc70c819fa3f660f94763858c783545eded55c9d4d8bab2b7ae5fd0969ec0a6abe5907281a8b1e2a7dda7a6f3de74e9736f02362b99fa1e1bf6925308a7f5c9386f88cd3ab1dce03019f3dfa4ce92dc3a19532d2783dd7f613c361a7517435dd3fc9db991a47152e728ae0d96094a03a9f6fb19b823bb2c26962ff3e8c9493dbbb4bfd889582ef1364764a17e46ad180de59a1d1a69136b2a212daac2eea66f3d75eb4f5bcaac813861e77e11a8a5b01051dbb404e25938155d3d717a45024166054dc5780acc9500c9bd6f3c6fc585f12d25dd81204139cd616515dd2f15aeb356e7b9e0f5df95f316c1686924fe7a010d8b13b9d1f31771232ac7f61770a27c51d0becbed499d6d5e90f74ebb769556e646c7e5a455a484385dbf5c53e98631fcaf1f8adc8a8532ccc23f71cf5a9aae64aec5cc1e0793af6c8d0371c2961eaa05644768c3b107015978370ac405fe8e8f28b47e7d4c0d50d330a698152a560f8b897753a3f6503eb3f0f16b67a08ab3213eb54e492bec9e1dc1a7dd78bda71936434fabcf0b0faab845c195152673461f5cdf8b7f70b3d071a2272441e491c64282ef408a0e89565502816a207a7c510d1b6f0f4e19b34fabf9d43c34d4223b380a36a2248b428f212370b116febeab1c5f7412dd59d40d76c215af85c3aa4ff03c9013a281bb0c36c2f40fb9e1df37b6ab45966a356b950da489225a2e68384dd84a287eeab7496b01071ce5d59850542f54fed43981ba7b9290b6ca301e9bb118837d528601bfd32b826aa00685b403aef9d24cdce2e097f92a2f35c04d7bd75b57fb55bfa1dd76660f8e6b6736f8b29ca794a6a684b927765123c935838530faa0fad9d9bfe1ae483f97cbd7a44c1b70ff3428765e6f59ee3d8cf38e042034e85b75cbba03b451da74cdb7e5d1a80857a7c80863f591e66a6065e10260a4f4050cf883126ab0de83d12ca49799da6bdf937d6cbe94d5fe5001dad8de6f8180c11b77839b4bcbf107830257d686b2404a4d31071a2536f99ba0c5627cb139b52d16edeaeadc9241e1047b9c0c36dbca9b435c7d6d22fa40f391d955b0833cf7923cce314fb80dcccd3e3b544c7bd46c7f0869ed2e46b3888d8e7d39179f4652070d8487f24c53ca0cae34a6716de9fa68ef45052da2ccb7614c920a173dd69359e71facdd4a4d16c8165adc5fa33ca071e39d3ccb26f7b99b1b598a8f863480b1b8387ae58419bd4417bd92fc346c7f0eff136be794e459e462599f0b7ac86d9da9408eaecb9d9b67cb139162ae5e4e5fa46688cfb61c4e9767cd12f8290b6408646aa43910ede12495fb27abfa0ff26bc0d3750dd21e2aaecb61a8b7cf5247656c77fb76b95b8b8b0e61658c028a66fb4dec1e9f75008e96c6df06a89653f24399c4bb6b0a5188e216779e82f38ae9d2b2a7255e47bd7ee4b385bf387712de4d889df192d4a2383c75ca88296137421091723aaae5d32919b9c621fe197d681e4fedb747be64bf1e34b09a6ff34e16b70ab6896ab5dc05d915ad1c58d970e158a3e919c346b82a5d52805f2674f1af96ee4159057c7839bc11715e4a6264dad52a6d9e83916f2438aaff2b3608b1bf25220cb7c0f063832befae1564c4a1a074308912b2678f1d0c8963b23165d96e78ce203f0b877e86f54ee190f7c0591c7f295c58b33eb322256cbf158b19ae3accee24ef4023bd39ff94a1705fdf37d74466617d154b2b8b1f31c00872f8bf64a77975d15d01de6e885aee9a899f6d8f98edd6258ec0b1cb1379ba9a35068254f6f2a3d38999f62574e547d8bdfb35626d70e9ff5dd60fe24365ffa25272bdf00235c5a0f9e7b1453eb3dba3ff34c698a604a5d51ef9f0ccd03ef0bc9294da28562e62354b830903cb187e43c6268ea7ab5f603da34b8d9d3c338a6669105711060fdc7ef0b7fbdcd2bb0a0c846b21364bd1ed03edb49125884734eaebbf754f0f22d6fd90e745960f2d3e28b33a7cce211804354f33c98817dbc0bc98173935df77414bd80620fa588699ea195bb19fdc7d8104e02927207f21e71c54c264801075cebc35f2d3c967d76b776339bcc8645a11c8ea8fec6abcf886e1d3316ec0a74660f547da430f996c3be93d7ff5169d018fcd2db829dbbd81e157509a864a777c44f1eaed8cd46e0d3b54443a15d889ed96f0c4f4b2400b000131261181e9805bf516f91db960b7de0ca0027f0ab1e89b1cab85a1620aac6f68c1dfc0e4b879916c45d3f7d6bbec008dcc1d47663e92d194b2121aa7babc63068baf0fabac55e4f48bdea027fa979a473ba5d70fe483afb1c3876e69721e73cad23e6145f64913957b76218daed4a0699d424afa17ee951351ca89741aa6421e2d2ecb2d701f14a69647a391bc63a2b87bd12aa5fe9232b6688d1ba665ecc1057da53763928f3122f44b11761f6de17e5b6e544e8ea7c4e11bc1e893563ada3cdb8742d5c5badaf4a9b6acb91c5c0e5fba206ab5c3e3cb9c4f3413be2b12871c58f1287e697f38bcf10d6cfc4f41060db969f44dd7d144a9cc0bf1938859d2a7280bed385a08da4dac3775b58896f43617f365e9ac5b9c3eb5bbc3c2741a85f89edaf182c4704beb910472b13a4ac7eab14a406976e96d6663acb502ba51cfc69e29841c77fd9a1c5af7e280a49c60cf400896702648968bbcebcdf537710eb595e6b2167fe40d069309b44684b03a6d5e999e1c7dfdd60ae28065500351f5fbe39cb02d019e02be3e69cd71568fd0a679d4d3b126bea97999596eeb32456cdfcbe85f00c0bc2ba677422fea349124f888cd0069ba229d7fdc0ade7a2b9edb1cfa7418785ce2350ba1aab4f256aace5b7a900f4671bf0ca419565f19c3f4372e22ef1a9b779b64ad38fbd6f7fdfe199492b846d578d69a11f02d0697f6e505eb567d055ddd621d8acf422c2e517357109babf65b4fa110710010db2ece373eaa0a8aa36c41d3d4a5c729f298923a484c51bbe32959af6ef55e6afabf19d8495d04d65a62653cde5e2523b20c50d48c381970c321f9d6041df6c436027f3ca6bc6115619521365e54f384693f66c9e4f56b4461db8c0fc0f53c4b31ff49762bd87b3d62c32d06139a389c84faba2a8a0db589b25d5d501c24d2433b3699a27dec5f888dcd397362fecd25ac6e3f4a488b42e900599f3cc7fe7bc55560787469da93566ebc0374545a31cc3517e859f2478da8cf54f810363b66a305cd0d4646ea85384b475d4392e52e4d12df58255fb4cca4a2763af4dad1f77c2a5338cf303d2746594f922e2dbd7324be3eda4edf935c4d7ca3903d7e89cfdae58290fefa3cf1c9a0f9712d1d6cdeda4c76f5f400cc92486680ea956633178f8f2dac2d1a3c52f6603fec9be756ccdaa2f2a850582a5527933bb0e50c1e883810308c5b07225c340b0de80116408943eb96eda30ac7b6db9865e9eaf715ebf4731f9d37687772cdfa1203d9d818e1b8657a45c01070ddcaebe7116c7ba768815fea80ba07240e949c23ea0d37bbd246d5a5d0cf2777041ce9772d2b224ff7879c1e3eb63621c01bead4dcca380231f353cb89370906ce846c5c9b8b6942bb9cb983a7a47e1b4236e7132d5751d17d5a2c6b1ee29a42cd1d92bb804c52ab3d7e1d19a9ab4f60434cd290cf124034abf6c068b1747264d16408a52ad8ee427cf0664df896f273c9b0bedbecf99b46c4c28523b0b4a5b3fcabb6d471cfaa462eaddb44af9aaa14a6d2fdf47e4cc21be60582aa39bacf2f933eb9d162d8a11a51533adfed429d18500b0aa7a73308a8fab80e94be9f472114215b9deb8d3ca23b2f5b71a30da88049de036e0b205de688a0011b6088183ae862e22a585f2bed55bf86e97a0c1084e7b99a56d48d3f63476828234bad8ad482ab577ade2d044c3f4beed758fa8fa0d84eb2c4b996662ee8c2c03bdc5c7400caa5c2ce65a1b6d9b4b54484201160454e3f687e0ce57c8b5b5f80bced035dbaa20ed3544112891be1cea6d1a3928417533f352988e4661fec5ea1342a8e5b18fe870d26461d01a9534821574b2fd8f0a5db382368eb46d21fb380209fed6d4167f460e941831eb2130b1aef59dd05bcca9b7605c0f9f1eb797e07c80633ceabd1fef656f0187a5812c9bc3c483ad0721c323347ea9bca9ed401c3f240acc50800460af59ec1d41ec3691dfd03766ae07eda6eef62dc1e81b2b0f502e407d2d7c754b191a5f7f4b97988b45c24d5b5a428bbfb83a1fa9f7657ce5d99fb2baddfcb4f05cf09e7a0eaef9646aabc53ed42a91a488a557fa7d9f7c97328e626f5b18c5749b306a2e310b1d42ca4d185c28a38191ef1c2aed1c6a9d536495db52b922174628116f178953e33d984d417b4b225dcfc5cca3ade4a214e50b8e29bf5958bded0bf32d6cb8b972d5469580d74db8478f67671362c6e33de1f1486548d091e9085cc6f00cb291511221e7242a8938d55a8e8e67b5be479747b72f86ca04e878835df4496a1388cbd1cb4de0da42b0e6ff239bf1390adae0832f7c429b4452d637e7af47aa03fdb98f0ecad66f95cb66eaf3fb533a4c1fadb6578eb82f692a5ef6118cb97d79ff369490a422c71a2fb57e62d739ae3c5b42256b1f6db036644cc452da03fa64308d3853e1802018a2ad190a8bf343c8e48b435468cbbbbf96e064f65b95f41c59a52e2020c5c8d4b71d1f0e6f325639e5c2bdf6c5fbae0d2468f185a9859eba2add3eeea157550e5e6158928bfa346196fb13853485def2ee17fdd7254295e36a728ebf1c4af4ee2f836c9d28e01bc75496ab1c3d55f36ba09e3166fe4e421e417c1db413d9f5d810fecfbca0ef7c6a355f47cd71256c07f07a5ef9325644f17f5b981ca6e44006024af7d4823c14661d8023f3e9a34e26daa581624da6acce34eb3675157993dde8b05ebe630bdb0eadddc3be7915aa94bff46feefc8139be9666184d6b15437aad88784a5a15bf93a40969571c19488b337c461d1375dfdaf7e2436c398367391bca2aa6373d5aacd57747b26ecfae81d1e89ce23051d6a39c2145bb7d5fb6d8441456c48a5d20c3255ddb3fca3e4c772c8d3192a03f5d8623c36818be6106eb71fc13e7ae79acacef05aabfcaeb219592904256bd2b3c1daf8f91d8093a6710f9f35a0d1af11f66252cffcd6bee4a0122031733052d499265083e7a394111d3037f1ab1a8251637062482e6818f02c495b85808bc2d116ad992abcde2a38a7fda409fd4ba429c0b453e6d9e69857273d90435b2ded8478605f12f4648f835dbb6baa5ec1238c83a0115340c45fa97545ecdb5fae481a146581542a37c184e0492f44d5d8e9a572a3eebd84f702bfbb6118d895a5898cf08de97a6771f3c0b57dd4451a9ca67671afe5e1217b4e2fe59663302430c9430d6912c267357913f30773b19bc43058d09cd774e3a0d9e222c40c80de58db848439820f018778386a3093040727c88d765414e78d5d5d38ff14304a0c679311160d073766df9eb5d0a0e654335e6c9315fd55be96da25bb72741df8abc01065eb8236805f8e300bb7e97db78711b10f24fca3c8af1e41967c871ea6ca4d12b619329e315553a9dd13ac66e8885f59cda34c8100224f486de8dce6d4631aee4bbb626a9870e711f2ed7b71d4cc721cab8f2e1a29f4a4144353c18b821014fd4134d8af8deb19de8bc499cd0d6c87c728c46f8c628c71a199a8128ef5a29bfc76bdd72dd69c6867143c49e1c3c47b209c587bb29ff13d176e1d9fb2f423e672a98ed4354ff989867cc14ab3fb95fdb03dc450f053e96687d502e8295211864fe9c579eacee3dc52722a9e41d24e6558ad0aa9b79e4575d0af6bf36ad778474691d92632a3947181abd4b34089a7db3831a0e1c06c922bc774b5a5040551bb7cf65bbe1f4ed552ebd84e5137e35c1d1792d1693a35fddff509373b14447209cada93540a7966f78abf5edc8f829f14b09c384a8ab45167f919c102f04fd30895a177b9e62a9cb101f7019e07e628efe1b3a9c4cb2c3c9f51b72fba27d0a877647246d530d6e5a00b40d5ac8cec94803738acafbb01649e125d8cd48774187ed1afeb49710c89a9d69892368e01efc826bd8aca5424136815fa2498bcd97211d4f1e10fde4f1155672232bbb0315740339e034be2a2e440b42802c1a6a9f998f513e4b8089be0d9e4cff748c7b2136dced7e38c4cacb6c1360fec78b25b9d3a862eaf8d8314d0214154df495f6691d239e36df56966b0c4616b234664275e2893ac3b075f26d20d8077092a8246e141beb709ef21e21ccdb9059750f30b22617737ff13570f9d3a33efc23ac522d27ca9ebb836d57caef7346bfbd74080036d23a4c7199d928a6f1f237004b4de86c1ecc1ff5eaa7f2ff1181eff0c61a643410fb74d72dab29a2e06ba5ccf08ed7eab69e0f4ec2bfccc3efef47ba9458bf81e0a0d1de2a5f23d6c098e46877ca1169e4565adb85d66612c14cc167c9d8f0920f999321e13bf8c0ec90b5113790e7e2bc63db43afd15d1a3a356164b2e909a52673cd3b61f768834271e5802c62f43a2b19e9413560315e09f1b5f3b79624278344c0dd12210da90c3dc186cc0a4b208c8db5fb5b17959190c46cc3ed9c00aa4798f6430c7217fad0e166358533f4c4b63f5ddc483897cea83335b497097d4dea5c3f3fac1f217c169fd9a7ef6f24d824bc25e720c75df7168da369a8e1ef1b4edcc6047e2c2b9f97522eedd87bd14829c7a389ceeccbc0060f810d975f13e91d7a19951ed7c69a4b63b4002c6a6c32b2ee0f9b789f273d01bd8158f1f1d8f97aa74ba8214fbc6ce310fe6382bdbb234d31480ef54bbafa41e5b30d02d5171983f41f5ba5b850ef962b741003c5d6e45f04658ea86288b967117d8ea491b2a73542fd4cd65c65e15aa24ba78412b0911dc435988e0bbdf594f554967443ebcadcf5b75601dfcad756264010557caa9af7fd4ecb5dca9b80d26848602b15d5b6eea95a6cdf9dcc6055513c9918e870e70c7a14aa3a828bc8928946984e596b27aa6be574d314fcbafea7f29b5561390a593680756a28fd749cd47a56556b58f8fb31251930afd613cadad7933e46317c2904ebeeb53d6d801b862fa514d958c89138209e5828c1ca02819b6f924bf8e6678bae002101ca0407a4f085a6e598e368c61c1a9e0138c590553fde362a59542cbb5d501a97a6048d543e2509e1b9efecbe1c2881be20f04b1128b27d469ff24093c920951815188c6324618da0d3d657a958efc5a9adea5805e496b924e8cdbafbca85fef6a50535c2a8b209a7f1fbc06b1400131cb7d80e4b7ffbf3f16f646478b28a1e20b0c9a2aa1e55544bcc50d4fa0d659caa6f843b882ef80bd78ca5e47e193f342f961601d10b504d77a78d23b624233097981483dd71429e3d61a375656593c900f41f26289c9037206adec05c3aa6cc9c40882453d987a9a01253624b022899aac611bb01ba6a8ce387e565778ce50517825b4b06e53adbf839bf6774ebfac301b3c3d7a02628425eb007291baab92294c1cff7904257cd8a38d3c0f9e0206b694078e23df10f35529adabf97d6fa16d211cf60679dbfd86266befb7cc34ad60d521c1b0836d0e16791e928903c86d4788498fe1c9cb083d5f9a54db1f2230c07925a61ef83a03cfa0540cda6feaec1248bf0168004b2b9e613abb7dc8cea608e30d25b53dca774d9b4e03332a5d219a67fcddcfda00cdff2d3c374f1eb7c19d810535646c4523aa2c8ebff477d80f7424b49873a64d149c231984fa4954db48eba122d2ebb0053922dab7346660bb6329f44aa876d109c1c4e5cd22294318c6b17b25ea1b26362f7314eef5529e9727b8a2bae65838ff608bbd69645b61cf55bab1f229fd920be8684612f07eb137fd0b8e5d9b03b640cdf051aa0ba1e4d3f2a0b8d38f04ef7055f6eb776af76ce57928c8bc9688c769f44b922cebae83845b792409a5d48de37fe6b21a3b2bf31df546e00130e8e461992c252aa78dea4712dc93a76026b03d2adaa44a08f4db6509bdfe993d21832d48910b1f019374f5354a5228861e3612d39ef1c4cd43dd8fbc83d5abd6c0980be917d9f56143b0fe6b5d72e8581b4ee41252d6f10a62c34c22ecdb5c51d973456b5ea2ae1d56658825064ad890f1582e3d942f8ccfa85451280da5856d53b5cba40994d76b0acd47fb91a3ed9ce410e71b45dd7df232128967a8fc117d6044fa67584222620dd4498f434a0b0ecc1eb8ae599ee1dc0ebb601ff0d34747c5cc1b80b14ee53f4ac78a26048a02ae7268f21fd8e1056da38856e40b1f586700291ac04444c4a2f83e137f69ca038be811b375857f7ea1289b8b407b3dc2c3b3af02f093734ecf86b2d3fc3db5cbf4c1ae1939d412e7d87b572016ea4baeeb58befb8bb5acd7768254c67f9674cf2bc6452ae19ed71aeb73d090714c6ff14bacf5cf7c3d807342cdb26ac2186cb969bfc59d0cd6560c09de49d76b7761f32f2cade6a3c1715fc1d76a28d1d4a066e2940249e7d20eb9775b9cf979ec5a6c3f2a134401f421920c4bf24973579a9e6843dec1b8e28548cdfbe875c20285247884baeff24e14e87325a1688286637e6f60585881a26141952defb58c8a2ba5160f38ed21492c13212f0d4b9b67399f497966b8eb3a0d0e7583108cbd10db977ce124b59b86b907c86ab4068e0c08a94421ca452bdbbbae9e6ba9c799807d884887267cd22be872f4d1b3f8eb412e9c6e0f08ce5552c5ee9901e6af984084976b130d3b2585a47404094f066cf64c91effe147096f2b5ba333ce60715a1277b7c577510b900265e656e2fecffb4db02cf05fdce60b8cef44f74ddfcea07cf4d64e7bc5806ee139979d4606524479490cae5399a1b4567b88a6632244751aadfd4c368b48fb1cf63206b340587d97a1d6adbce5be9392f266ce99e2ffd889cbb206c29d14b52eb23e893ce4db03b346d113fa940971108bd5b10fa2cbde8042a117d94f4566b369ae23f0fdc5b90d56ee8df2278243d031f952d9a643e160903d9f8fd5083b90191bfc7329388dcb2038106956573dca23977ccec7f629470ae0ff40075c05a8a7455433b71797fe232c2c6cef0088bc47d9c2e0ee0f46970f52bbfa4f503194af2cb209a03251c491e27ee0687e972ef5bdac1d32a787b40f0f7da156ebb8afe522a820d73f6ea75087f683332054cf98e2ca97d7c9c252bc2e9882c80c9bb0c64f10c37e65d03c40b15c3003f97fbf2983cc04178b45e5869785c1eec32c01ae49cadcef53d2881c776a7de496238ec12f298e3995f777f887b809cd7d8a0e5a3eb191e77df5960f193fa2b53ca40e9a9bbc20111bda9002b92feef522b4bd55c8775df454053368c10e15d8f0ee4487323a18090f048fa51bbde42b9db3f83f33eff57092bb35725a27c43d364c0cf82828b692fbc4e02ba1569ce62dcdeca3ea54b54b825497fada259dec2db1de0a06ab4d0a73180acf1b57e3a440c9e8dbad5d2e0f9942748dbf6da6ac6e091ddabfdc0f10c464f3ad82ff905c8c79ad70792d4085f992997d6f393be559e9d8fb54ece78a4735b86913d9b4af100646a4d3cb866fbfc154a5044daab7578c7e45cdfc52a5b6706d2cc650fbdb6ad93a6c1d87144418462e12fc9a510557a7fa11a2ba19d51969d19c95c9ab0778275e18ce2cbcc75664e8c21c8cdfc39ad8aae6d98a13b6708903f4e97778b4775571365ddabc766f5dc2339a0e3d85d00a1f84de596f193a5ff94f6ffdabd268608602dddacfec5177cfd2f375036b438b779c433bf7da139a4e822f47527c8bbdb2002f738fba3a3859dd22f8fa6351402a37880e137a267bde27efcb589060ac036f5557c63fc987d9275155b38e2c748765842416d0221a4223b14b8565fc9b36f95999c68dc503961f6a23cf60b9a1aeb25f52e378d551345e4bae059b5e7b00cf9d4a8c75edf00532c501d83d36071bdd8f1ead59e35911f08f057d43f482d7ac2c95d955713791df5209abe542002e97b8ccc0c46348ec34663cf5de54c2b6016b897f5c63b4c18ca14243813ade3d11c3acbfb78e5771bb4a690de75535dd6284c13162a922a6a81194d5b63c31af050ce00884d10ba89ce1f58c359017b53819f0e7643a2b05c606f3b86240af2c982d66a89fa449c7f371c8c91ac443c3c96a1515a3600785b464d4f937c93b435e8b785ea7a8c1e7c9d69e684984bd50941bfd967b4a63e7d2b9a6c17eaa639ac3882bb3d96f3300dc7d24e390e04dd4b23ceb583cfaf5bfcffd68e54a9c4cd0b72b4476c375c0f4b5844ba894c915c03ad104e13973d791d2366ba607a670e023df8baae3aa58863d91aa014b66eb3d46d4a1668dc359cf3019d8f1364304a6c85b3ec459df5cc2acd23881121f4f84226c06171eccafc2812dc6e8f46d21f5253bde9b37c8275a966ebd0660289a4a34b4ce023cb208c53abf47291c1bb3207708aafcc1e18f1358a23ac7c772ac169638d610f6f88e8bc8d30507bbd6fcb6a418f6626acfc39a178f83c0d4bfb6a39139a4ba1b3a3d0d417837e5cff9fe9b9ded81ba4ef18ab34b4e029b4324d2144d9afa1e6d36eecaa8b78b7a123e594b4255a541b3e24c930e51a02c5ff98ee190afd985933527bb13e3218ec1f26e232a08622b93a850dafc39330a0c8caaf311b17e8f9a21d7e1672c0102f04e82c5b51baea8324cf4b9f103b12b567438e7afc983d703d00d76bf912edab23f30129c34de203a5d98ce83c621b5c523deea9fbb62d7fdab1559492ba42f2fda586853e3aff9e06ecd3b1e3a58295dee1741472e42a43e2170e4b5982b941a8b416e35a2623d3c896b65b1165bcc516d33e938e0ecd28d6ece2678f2c26248b64215d59a9f539b6841c31407177a94b5f1d7ae75d3fee2ea9eb3c459f73007e31688bafd41da4e736f156536ae034517a03ffc9127b5cc5d2dd995a5d431d777392e2e00d75805ad5d73d3d5209e9b8297d033d37cdfce5d7282dc2a9a50cbf18a405d9e6fc74521b725d2711d691400b3d7745aebd84a50f40c5b890bac2a96d36161b738e81183a06d7ba1c225562ee47759335ad6a5b8dd7187de2b478020f33ba850b85c9876bab1f71f5550d684466b24cc2857111b5dcae11ee6a815dd69adbdb70dac30aa81f38f0aa90615254ae9af32905cfcf1c69d558c05ea6d3174a4073bb4930e89a0ece227ee24d39f0e900a5c9ec24fc5b9d0445cacb91d092c58141c777384766bbad32f167b274548406359104f139718a5c9c8edb3878a28c3a814a2d495e76a877d495253b67ca1b1cec9e51e451e697e788b425d1b112846d0e0b92763984a902401ca9162d879165c0e5b73faee8ed89b8a435f7ead5524334648c17ac75d0806f6d3618166a821635b95c4c3bd7204a8d58424f4ae46d1b3feac78941209b70f6927e9d0a93c4bcc8227af75757ef8a81655630603edc427613bfacf9f04a81ffb8c7d24137a6e6ff3919a876bf4fd18803712fb3c20c0f0d97324a9cf45c65f3bbf54af627f7642196911b10611390fa218d67f3f3d030934ca29cdd94f2b99744ae4bba63965b64333efe5766910bbb255212c338b7544ea45e6dd23829a1b035523d01ab6f8201db54ff652e1bcf56e194fc7b03c381aef8fd71de77ff5cb20301f4ff3a2ca89bcbbc51f3737453988e12192412c714044f37fe5b10e0049b4679da2fa7854ce02fffdb59d6fbc8c488c6b88718424db9960652d01fc4b9faac00c5a2ea7c0f77b012e6aabf3b55aa94f7d9e506c36b8e0cbfe0d00e4d0192b9e5fbc1ffe31b03da2473b21eb5575af9f2dfd4f72c2afe57361d3c0c3ab88b280758d77211e89a135c5db70b5bcd1948a49090498e843428dbccbf02d39f77a5c430863ab14f8d4e7225c616fd008bba591cc2ae0adb18c301af1fa87a3ca80a884ccdc2900e6f187a57713b77954ac1b42859c35676827614095efe9a15ce47e77ae4e8565c8f14f6ae237146f3a772c0fd4446d33825ed34acac2ee9af17442a236e4aac122aabd12f8392db805d762401443793fcc3d9af31cfff137e0dca54cf4a2a3430a8223d77bf490e09c0c394e91f8d6767167d1d06b947bf2f30781e8ba0f68d459d1ba974172c0e235412314eafe857dea46c90afbdcee8cf07062753c42175e75f9021df7b7d0d8aec84f7ceccb7f4dc4051b63a7ed3cf1e383e2bbfc738da89631a21dfe781cbebb15d937f8164876827981b3befdbbe07ef1839c3bb1130127f48fa737f4937d9aab88bffe27d888b078ad512e8a9d09fc23ce9aa1547348f79b6df9465c2f5e013a640c086ee346fa8abfeae7c17d7fd2b33c1301aba55760e52e2225c1dacd8eaa7533f53f70741c95362ae9d8596dccca9fa69eb80c6ec1ff1dc6252ed73d7cde78c705dc60c8b028663ee142169f45af84cbfbb08363f5ba27658afe8962f95c39e1b83ad5c65726bfae4dfca842f19cf2a44cd6ff15842041d26fa16533eba5cd781cdf4efe4270484154449c0205c184821cadb9b624b585d8cf8a82f9a3dd8eda3511d64432e16ce6209f359f6648a815d7efc8d9ae813cda9a449ff04598818ecdb0c498c5d05a01297441e1dc086cc439112e16ab0b4aca8643951442b835d030a00e30b3372e152aff5139eeab76fcf149f17899e620ad71464a05ee6cc559020b9beba9e6bc7d69af2d98d34ec8fea8a00d96505f109e9694ab6246c0433eb6be0424509d984aa8d1f29b44c541cbd957f36ac40de557b8c35c8cf09c8ab91b1f5da1f59418a4ef5a3946e934ee74f37f0355f7268054754d0002dddca17e522a82b8c08e47ad7f50e157c357e324397c2f207b635a07f6cbef418d0107d35e52e3d400bb7121867410c6f656d5a712eee44f888c8f6d9cc4b863eb8333da1be4ddee18707cf0af3c07ba286db1fd8f1fe28c21949d7c69fb061615ce2f7818e9044ef8a1827d22fd269333fbdb79f12b55b27143767636671de2c1044bd94bc4a6b779f3339a93393add84b98ec76925db4523de22292b4e242bd9165abf240ba7fd8702cdd1bc177c2b186fa2a54391c7d000ed0210cdbe5269240a24b2322f5466cd3218855f4a7d4a7d4ee41baacb54bebcc4f1bec3793ae5e097f8e6595232ce923b67befff4a8f71a561cf69590fb2c7c21d3b21a3bded35f324f30e011bc10918a05866fd5152c99c47cfb26ea027dd69878ebc318290eff1427c3c36008577c19f586b341051949617af1547e72a9ce94f7d32df695e9788e78521257c9b38442521eb599d8b8fe517fef9626a93ef424d16489ed99b3a2d9dd4f0e0d2d599071637d85123b88c9c97d17f5ae2db17df90d9712b0cb4ab7c5b4c6369ffebe58b1db2d9ba3fcebf2a83074cd9596e9a4bf9466e767cf64f05ba0f90c34502b08161f7bc8f85994d09df06bec9c93ec715841cd2fa52476d83787bd40e49e72e517da8e5e4776a1f529399e7cd97c3501382ff35420e8831a0628cd0d0752c1f3ee262a88dad150ea0eea0c7546bb8416b2a642a58f068ebb1074c2cace3480fa96d9ce8db220e801cc96905a91a26bae39409f21456065e4c1146003386eae8befd350993a1d1dc6c0e37209a3dd85fdd4fb4ed7b3d24dda84971432087204ca2f4cd864a37c543ef8b5871dc03c7300d66065e56e4e50fd63fd393600154cf26e02a808826d0ad01371f709da9df6b38599f9253f062a73784d69a291fcad097a6b38cbf779d12d9b06a42b9c628fc8ca13f0bc25af6387221ec695e16146b6f6b985fd20a533fbd4aa8ecede1ec777d6aa83431f4083d0e534521b3596a4093fbb544a157a639b66fa776b945a87285d0703393e2dcdf21fa6e412a8751ace7dc690524f924820278d3e2075d14c41e91e2aab588e16db025be57744e6c387ab075e35db8fcb7f6cc56e9e3bab45dcf21eb59955a761ed7dc5bc85690b98ed237e21e286c856162718b924d4accbc2eba0727a0e8d5c2e37b48176dfc1fdf7561e8cef8e1fc4b0276d556b8a1a91c1d91d8c53b04a6ce3c3711a808b67ce82df1445ea17d00874d807362c16d19765698f42d1d87235ea7b21db608652dc8fa209dbf8c5dbe14c91a60b2a9cc9ac6b37b4f497a34352100ae567d659431268a6ec72e759cd2234e4734a413b7e11ca79d2705e051147e489884b6aa4e77c10b973f14473d8d5865c78f4cbff0ffafe5ed5e4aacda7ea93d45d760caf204e180869dfe482eba4cd5eb496915dd2ee47c8cb6761b2d64be74e89ca2b47e0b04c1d4f0a37389341ca6b34854335f98e5ec8d1b2bcc1a432d5a395f62bd9945048e314b7b92eebbfe7da764af8381503ec0239c68a3984481a21b4111659fd4ba652708fd7874ccd1802f7479931e456d4a7c35fa1fa0ab0a5cec56d38b12095abd05084c3f952e6b8a8fa570688ef43f3fb502c74ea3a45af49cc77c3e879bb8704785b378abacc1f05c7b980b5d5e4f0f70823815a6c6f7f9c0bcb49e33c2c951faa45954c7a94f112d1c1d0c877cf487468b15bb1c4b93101108f8e646d2f879058c4eb8b29cfdf550a771fd5bd32522aa739d4279511dd43f5a8c19ccf1606a575f4165972fa95d3096bb336aa4b84e8dfb0e8b090eb7a8d170c529f4067c9c71b85814deb992db34a05bce7084f4561c3f0a1aafa9fdbb4223554740fc32991f56c6eabfad5919f5d8368f980dfaf3b1eb36f2c29baaf2095f21f71e5705626514cce1236d7ab629538ec6a19784eea8c52cf6eadf00460523aee6aa5ad4b7bdeca88c2ffe13052342b2ca37de25734f29f36e3eb958e916f7610e67c79be1f50d7862821fa7efd2d2cdf21c9710d32a25148174e22a498f437985fef682ec3dab2338d57c2839479a0db74967a2b27aa254dc9e2d58be8021ebb204123954ee746540b3e666a73faf4a35c7d9e99301cab04cd9a68b1e48a04cc209e4b801feced2bbc8db0b5c65cbb067517923e09991d91a6c7afdbda450ebe7de4b671a15f2ed3287b0c428a57738085a3d1670aadcc554ca2a2a1151151dbb061eb354162eed128ed289602cfc7b021fe6df1ec68ca3878f1f65c4f2e757303a571763bb733af55194c747d50b71ee9f9019b99e84c573e4fd8b0dfa6583dcf5305353ab5497f0ee79c218988a24ddc767e8165f54b04961424e04ecda443db6ba62b519773bcbcf8a0bf511909d3fc3f5d355c991c6df2c35299633b007d4b355dbee54900b1c727170ca89e5b890191cafed5069ec0acb23b022c9902b98eceb45138fedc3fc1ff515f4f8772bb13ae53556cffa7c917ed56d2a8f6aeb6b8a11bfac289909f6f56451958bb0571a716e1a20f26aefe6835dae5037fa33b6686c577cd09819dc554cad6d9f89638ccda896fab9211a343771d127c5b4ed64da8bac53e669b66f2c8a8d658bae9b3c1d45e90cf224c44cde3eb9947ecbca66f7a520e13721b95dcbcf69051c78fa39e123d022012023e62574f4b747acaf77013ebe8456a1ef76a09a6ff81477c8cafcb718172e1cb1225c2844a05e1de7e6ab16e74ca72f4021dfdfbf952d2b8c9fb4174b0abb1b17ade13dad044ae33345db5731c244e35ea87f332b0f90957fd5c67c60b524885f5575e05ca4177474a051869b3ba33abbd8d8c278a50ca61489f0943afaf1977f99efaf487fb0392b9287450dd9094e51b9e9083caf16fc097d99df43cf5bf151c5dd1b02e4140a928abe72f72cb483330686a0c4ff20c01fea1f3b65615a302fc3e5ac50547484c3831b96bf89b1c67e03b0a93e1ab49d609c31d26d7cb11e9e2d64e06a712862b87316e61f890b010b73be8c30b6de91febcfef91bd40c2806a90336fa53be71a88ec906514f6e760463b3a1b64c4f0e0ea666491a8aef51b321b73840e6b1a273fbbf2e8fe85403f4d88653b5fb6bffc511370f38e6b6e2ff74bcc4ea330f2864f2b0f9b85e2e3aefe42469801dc707d386885cfe3347dabeec96f3d3784c9bb8e411645b41daf8759bc6cbcfe5a66957aae94cc532bf1eaa5795fb7666ce0fddb951f9d555258498dc2d3df794e70f3f18201235697f378220baffd9e9a69a801ad9146408e271c00e7c25fa029be1ab083948372c24a20f1ff38c6ec1df7c3a7f3934fe306696d7ac235f8ec91fd735f9115999c01ee77b5f4e84884acd49d4e8aa5a1ea22d83dfaa05799cd50be3c36abdea7c1ff6bd6629f7391950a3c26f81a23b2cfb73e6de3b01357201715dba05097fdbbedf445303116c349e9115ba2611fa26634ec3223da0ae9b4fa4022294a85a86e9cfd838d72d4e455ea06c62f93956cb3387316d9de96006016fe464815e142c6f72248a47c29fa6fdf83964bac076e6d70dc80962c25cd7b3c8a675a24f04b933a0c1258536564df9fdfc98173a9e590df7ddb0f8b352aeaf3424eb5f3f7e0bfbd6c0afb6baaea85715c82a4d878ce0c187a50fa7f961f557100e89bd80206639bfa0dc77845bfc76266cfe94d4f4ab636622a4ba2a6c692193c63105abfd6c820521159261e674273c5d6935aead592534a7af16302c126af7faded7b15068de5550d86fecab1f68440a05d8df9a228c0fffae0e7309b233b364a0e2a7df784b71151457a998b90387f7e5102471aa575eb22aebe4d1090854cd36c74d37c362bf2454660ca2d09a62aa214e38e2a92dc3abcbb395101593e2cc4ad5ffd08686d7c8befb90d72d2f421eeed7783318ae7f5ea7231baa24111d77d59adf0996a9533a28c401adc272378baad523b7d322bc22b6f82687b88b51720b3763250ccbf8d1adf2f732a3b1050e3c98cd116e2361a93356aab41a3e5f0bd44bc835b4184e7591fe47ec2caaea123bd3b613cec29e62303e7697b0a865cc71292e876da4d35cb69ec5519520bf9d8b8f312d073ae7fd41a60875f5746b62d39fdc5b418ee620c33fb30d25ebbd1e67c9487f86459286b974742892643b02a492087583a3185382c3ff4ffe2283386551b59314cb980f6f13ffb23cd93092e4044f69ebaadad855a7aa3adbbefcaacde6e6f93922e8dc97173fb2532a8df26fc8a2bd92e17c6d493074cd63caa87b82d30e5468dc226b279727faa997fd9e0b5d208aee59782b99bb6b8d0a5442d408ae2a72481829a082dd6719b630c909076456de9e9630807f5f470024311455b52f0787314fcb3ffdc70d88d0f245680d0a08496d278f2c6bf5058b47e75d648ed4bd61bef4c2d3d144407963120de2f245431935e7c0cf83f87e06adeb674fa6a15ef6474d359797de3d7de24dc34017a63cc20a049c4a76dcd21c339632449f54173e5e52a47b92ce023820f793719b9e616b48ec7f4ed92fdc3bf613670b3565afd673bffec596424da2e10d4512df50608782b93dc08685f4b882e23daf8a488ca2c24def0f6b94b97041aab6c8dd1ee5d2d877be1b4c6b1826a085cb21153b701f168710de217f9c0ee37dbbc7eaa731ade7ab820f18c9875a9989ac36954e1d8863b0586353285e4dd3c52321c1b2f7ca409ea63698d8edb1839c81a15e9b88d8bcefbdb953cf1ba3c14367d2b6abcc431bcf6e1256ae0c214b9f87801f543028703099206666d739072ddddfc6c6e667ef92f26c49a034e0b59e6d056a786c3c8197ebb4300f9de4f0619ecded05ed88632da7fb485923f00323c5edab07324a938d6b33c06c066642be1369d534eb25f3eb4c9ee2767f3a3a5f002dba1104f38ec713ef7141850735af04d4cee1d1d8f25541fc8dd813d014c3444a496a3e3581769cdd81bc77d3939e4a8b4dc48c11166b1e2b7c562f42364777324582bf1d9a286ef30f4ef1880ca8df4beb657242f9e6ae75aa49e45b30b1f0e798de5da2fd275c77a60434f19a0d2b9f7db312264a5216a4e2076967ca1ecbd28091db8005a8b44bc0687f94716580aa494f40c26161664feee1e9abd44e33a8c8678e922022ab36c2afee379864b282adb7e634c9e7e3e36d44c66def580def3061aeeca23ab178b62affbfee49a59bc65504ef2102e594b93b4b5cf93ef2cdc7d1eacc7a48cf328d09fbcaa680ce99228efd226b55b84692c36e5b2d4bbcf14d17e79d282a2b7e8d9ab79d78507536c0fb68ac6e0444f0ce4eeba686149f4109960f122c5de355dcf64b0ec6c9df4d8060dc3245ac02d38262cbc01004fa92848ad39fbe9dd9b1f94420bbc7688f264b88d8cda096d8ce6d99463cab2d1d177eb829c77e4bb60984127e240386e30ce5c0c06a37ae0a2bcbb2b193518b46ff3a2198022a0616616b481dde0b19976b0ed32c34dc02209c519c62ad54442bddc59c0001ab312a4fadcbb4ae82f1a423731193dc904676ad5928a57985f5c14b0195b09df13172dc2bcc6f6007945baf4f3396718c7f8c33382fec150cd1db176a7b0ef22fc108644df759f03b2617bc0123df6ba5b8f9e4ef89e2ec4cca2f6bacc998c4edfd3703c35129047cfed985782e43fce70e0df4daa94a1a787e07606084987dd4f4d117b32d575503f988a53f4e3b5935a842bb2eaee5a24bb94c213cf3824c4d8e997151851bc1d63f323df1f34cea622606e43803fe54dd2ea64ff09d1ebf29f967f4d46dd40b99e9e194e1880d50d594ac15d6bb2673ecfd689a38ca90ecacf89fc32bf2e79a14c71c52613a986ab5e9bffd360b39b1fd7783c153707168b53cd0c59c00137fcaec6c2af706b25b4c07b46dc3a489393d53804887568a6171c3f13dd47d2d274950ead769775ecacf774a44b7d997a0d21772c7873e33462fab251172422c218109e2438493518cc95294518122366b817f4c2c6c163a31f53192bf8ce59403a006fed4fa9deaf8837f00dd838eb9982fe342b88e50e0e50718f691827c8652b31d4564410f63859ea21f959fa70b836716fc2591b22db22597fdce7be02d893b089fa314dbe56cff4422dd4218461d760bb589324dbbd07b105ddc7facb9ea4f7de9613eb32042a95db68ec433590b6d60864f7fc223084963737f056c0bedb9d81181370c08ab3675eabf408b24c87a5a45b5bc461e26788a106745e91d317b2f9234ce769fff5f2c2dc1b6ff059b538c48fd037715dfeab9793df9f216f45345e450466df27a74ff06bd6000ae65c57b290dd3f6910ea9bf75bd5c8e5296c28d421a4da79b4eeb86f2e46171e84519a562b9222578dd7d83dd4921c180a960ad81a0fc66e72355fd70c209d4c4da9e152adfe44978896a7dab126018a8f2d5ca26a0e43ad5e941536599cc05129a45eeb669c269ba3398546387f7e374466405d3947423a8b4e6e616ce32ed9671729356486e96b1483408b0621b688e720b00ae6bd4d837850bec96b723fa91775178f254e1edff1a721ef0b386ccbfe9431cfdb3c3136e90a0bfed0aac1ec84986a5f82b49b87e9e2a0f456b0397b6fc57f5bb1516492f9addb3a73462b46890ed760d9dd38c9d4dee209ad2329779c75ef6a5feb94989bfecd2d76ac0bf6cf6b60ca21f29d5b500b6e5c7f260118ca6263fe4a6b2cd720f4599da1ee10f139ef9b83f829a6ba6102b544932550b75fcf913a6de8bf0cbb07cb1cd1f7f96dc0911a725367e183ecc61424bd42a4ade74ff3a2b628715b53ac4257d00872af64d7499a177fb24b1804169e11aa9df62aebf0ee9be682ed2e1eef6a4f408098bc8d00fa91aa41f4fcdbe8d0b92f231d2944d8c98b2a24b93d132e618a08200ffafa74dfab549fbb8cebfcb3688051b79cef60c5703fc06c1b06ef361d5919e9bcd774d88faa51e2b03b0b29f67e0683dc6d18a6cdf6d8640ee937847b6132944ff24d50a0e4de7863f8a82e791df595e28e28def8cf742c0df150d0047c8ec92b2f181357053ee1e87c7528fbf2bc7be652c14f9d4b77a72d638c84fa5f4877563058e55699e4060ec115450d5b2c4e29c49c3f5798fb0fe1151d4e5d143b73d11f8c0ad8a2e05424fc03f781d69f940092043ca2ddc34a7d43158e68f2ebe4ef589b1d832064e4fc0a14f65d036c3ce8fd7b9613a809a4921a7b9ae489a31dfcd1ab1fde6cdda8214376a02358f354616e45fbc330349c8bc8713d95cd6fe841988c018dbc63d94632ac4b18d81d323d83d12f71132bfd3951b4016177abde9cae65393a0b56f4bbbcb780a64dfa153602a72ec6142eb222cb011e896fa8c779ff63306d7ffc33685444ed1cc09807578817ffa2be5e707a6b11a63dcdf536b6b88c9610bf529b8be2ab3e7c303c56fa8727362461e0a793245266f3159b6c39528435d758f060b475e76aa6721e3905fcc0f4e25865522cfe7b101ef4ab418fc8a14b5ee12b36ec599038e5ceb5c7240fc1cb2a95c0b1a1d1839ef315fe4fa76524ed65cb7e125f309548e459361fc3df5a4be8c643954c646f77108fea8b5e2badcabf36f82d8b5d60b13e55690228e31d7a2123f2cc2c4b381fbcb5a3c03a6691a465d7f75c26ac52ac26089a418b5df2791c4e667951be8482b1f14e7f79afb8c9c20b00121b5616d7aa0b98a109d051b2175ad4a1508ff550ac5d637fe3a7da82ad1ca6f9019b13f4142939aef6aa43432ac7ccff4220f565440e51127c1025bb0efa644419ea839a29ecd201b4df711c0cf489c670025a4d8d7ad510305950c9f3593c0b36fe325c27381cc1693585513f267c4e21bb61157820f20bc9c5b3c5d54937fcabb5628e11b40f15798e626d8ba5f60b8bcdf9577b38c331029891719127ca7c905d34ff8dedacdf9d2ccce841ff2757d1669286327b9f2cddc788e351ce23d46974eb4b255079eef295dcad93c1f54f6476c9e26ac2d25806f48e546c14fb327e32c2e62feed5cc62a861b99d6ebbfb0cd852d0065c44e6fd81361f181c1ef42167a1ee65612108131c3350d2326eeadb337f8e050370385f2a87688c2e65a0bcb9123c1607fece3d3aca78750a33980de4e64a3517af9530502777f6eadc2fd22108a8eb8d71e405413cbdf135f9481e0091958c412d1877c750703e2f6d2258fe0aeeae9826d208a428bb05bfb36f3cc85c29693ff14858da7afef2ef338d175867305af9b736cc4fb5fc773297abf16291d9991da9fdaeaf44b1d6ac4756287295a917878701913958a8ef5b46a7d5e0b3c2e8f128a6c9a7cf2d233de3355c442407049c85b98daf3dff4c934993c3690bf4390b225f97a3f85a815424f97461528814e70c12291f3449b32a0c261c409c8f49c1595b8b72eaa2557ec74b902fb53b9d0475af476c62d92ba29e307d54bbbbefc6e4090117bf0f9e670750d7f9e1249c5aa84f2ebcb3c78932594293feff8a6075ced835d43b05a3ebc4c36201d0129e9381d71e187dba53fb1dd8912a34f5672cf8dd4f3cd40de08bb33ec6ee4229b574f5c25bcfd62638192c2518bd3d92e7103a0b0f1d3560f37ae45fc90dc5c042d206634318194bbd469163df60b73d60288e847cc08c2a3e1b20d8bc4506e17e379dd9c667e9f3f709680015bcf1279897c3d4c4e158992f7107df091e8ef9f7f7ef8d0a5fb1a4d11928f3877fc912b8325c70fd460f8d1193cbe0ce69d9f050be5311abf3592401d0501ccf6ffcb64a710425d5312579bce4b35b99898744b37a5abba4844502932f81ce78f0735b9b7c74b7583c3300a3be1611b54e7db2a489a03bd2fba2bb4ba3064f891c4abbe403e90b1991ae2a2ce7b28ec4da321f043c310852914ab00434ec52cfec65d8c0fa694cbafb8c1a417c6f7c46c7a5f1fbfb5b92456fc8c7c4fb0c031fdb0c03decbd608b63a303329a1f19ce44e8acd6d52e1759faf2ad9d5ef9aaa7c33b230d9ada44877bf6cf4e8b040592cf428c141c9ced1c8002c7339856a1f51cac9b27a4586336adb3b68224b8c9804ba0859317aa86a4674b270515deb02614599cc0ac0c7a05d80719805ae2bdc130c19e6d1d7e82b08d7b864004c40c966e5ba846fa5abb1ea3ff6ff5f824a4f19a0e1edeeb59f05db13090c0a97adf091df0accfe069a4a211fa0b0e04df97d836d6290652f826b0627c5abeb4b0d24cf2613d35b8ed0d54554f2cf32b0cf33fa8b32c1c05304d986479a522215388d3999488562b3b0912834d99ff71c7a129d9657f3fd2fcc89f38ddeb1fa3052c918c2d6479d26b44dc6eefdff3557286a97badac3a7bf44e3a1e72f859d28ee5067c5ecf0cc0aa5b963377b51f92111766e2cc2b3491c24621404bda23e7b0764dad0a397e049abcdad87899045eb4389595ae469432b87d05c44c4cd7bcdda5adf03e89417ca8bcc54d46621ab9aa5c431b71345d2d597f7c4c86790c206cfad2c3d05b02734e8759cd1ee32d14ec4058fecf939bdecbe98795ec67997b2364d1c32d7a436df018bbcb6b491252b99b14b5abd76115587d6595fcfa8c541f436725363e0b9dc33a8b67c82732e96a6cd21ebd7aa45c613e0569633ac84f1d310eba7a5ba1dfea753f5fb3623c343d683fe68d52e5d8de22170d9b173ffc39e34cadb64aa91ab690280d64dc399cfc232603449fbfacfff3a24792e3be0fc354ccee079810f5052ad81637c805e8ea402841a3379ad7738268beeaac1e82289f2f98f4ac5e553bac8e64bf37534ce4cefb23ce7e7997143f0c3388951ee12f9639889555cf1f36500724c7dfa57eb3db41357e2c6177776d662b0b66e399f8e7c0fa6168b7cc30bb5b9a28ce03b5328c8c09f763619b2538669d32aadc8f03178fad4a64759c7caa1282f907cc20ae60c1d3714077b1ad0d9a4f3f009e78c54ca6610ebc894112a01c9b5f4abaee9273a2df52f04ed1bdd3e07e39045b83070523b5bd83675c9e7a2f77a6f59adad16ab6277e7fae9d2f056b62c50824456fdfa2fd4659f9de6e24fc20f326499acde12f54fb3d37473642de522c6caa49a64d75535cbdc3f31ba020dde86b380b5e42967bdb72d972f19706fc77a332c973a6b15de38a6603b56135116904e1146b6cf3a53e012d9e470764fd81d3c76e8ccdf1358376ca26366590c7f27e1917f1bedfb507399a6e64c558e58e1b57f13468221ac72df2dadc27ac24a9a5b1f0e067b1de1f18ce953d069ff92ec682b75a880111c339faaffdfb42149f8228e2af968fdc088af7d5666e8fb54f8561c8c153312c5039d2d60693dcb7755e0cad11d6f367dcfec24771182f6f469902f86930e11ff391965da4c0ec09540525a5f443fe52cf339210628c8e640ed3ad663354f85fa5b7118c7536b9ff58c36a2252dd2a2678c9c820442cb39d33d2d47cc10ec8e6ea90f8ddb4257e24b0f70d8b65bdb39610f8a1adb75ce92821f2ec4c0a75321b84810a3c441a26273478c2c0299f44c764a39baf47582d7eec9e465fdebcb7133b744edc13402d53fdea4363ee591442505dad2db43d090237db7eff824bc4e9a016f64ca63c5aa7edd6d04483de12b821ae4ebf4a1ac93dddd3861c2f6fe97a871dc4b11c7069c45635e5d4ba3290e75bd6718e86cd18ac289dda6fff50ae1c2494a3a7acd111b2c890cacd0a33835c2351215d164b0d91f2cb5044c2444e471b2a7d149ea892347fd6b52bb73f6e794b885fdfdb40286d8be1b86ece33aa06fa92a23e7681c09d8e2cfc5c6624f4f5faa2e610848c80f1713df141a5b89c22be151f8e409e4b165911efa2d177870c10f6b5c6c742ab11221c95560e6a5ecf60994dbab9ca52afdbe4c7e74ab18d8fcbbc97fe001e307bfbd5aea1325a08cc05a1abd391c1fe9eb5818b113372e8ae3bc1de58920a9e636608e80c62bcaf937c8f0e4121119bea1e5e4408232ca4230255a9d4225ae86f3b23f899ba30f2a051ecc15c6cad1f3963307d109b9637728a2b8da7cc24de3885e3a5556a8b0e26b60f9ee6a0550b46dc9b018400b3928403cd5b9f8cca5109679a47cc63e273d281581b2d63d7fa7321e33d830d4920b29b480a31315cc5cc1307201dca530df99e918254c2c0c1eba490c87325916844a04fd0328eaeba1f29f49db686fcc6187e2c475879db17e8f989fd79518b2ebb9f358aabf4da8deeab12489f1b79e0f965f944fd868fd914059418df422a1df9e0ffba1191dbc4b846122c3c7d2e3b2ec95f3504676e4a2c00c212605b105ef2120c7d1c11ed72fb240e10645b425790ec73f22943483f42efb3f7c3054def1158778fb91f637d691b1922d2ea227f0b6cb21158a731dde5851049e9a67dcf654022d8bab9d157093141a1106df03a8f9fea7cdc4f163ad7ada65fa31b2b9bae534780076885eb01d2181b31b38a09ceda9c53766765932b949da8a7e12369d3565c7fbdd14d85b506067af9c23432ddde8f248022b7cb04f85aa9d8c3daa37244d1cc2fcd2ac7d545561f97bf07be55ebc6a59f67d5c414dd7f2c96275235bba5129dcd7e6a34886b71964592b8d6f7d47ae6d6772764e1f257771c4c23541f0df9fe699b3d2af85253aec03b7b4820da9812eceef27d8668146bc796a31ab79ef54d031fcc5ae7adbabd01e845ed825ef70fafa726e9ab7730d4711c9f6fea4f1ea12e1070bef7a6735f952a204a08978622f1098de3c5f54fd92e0921575689a1da9d2811a494403e16e81803ece1d8ce400c4d5edf341c9e37d520a564e461504b7fbdec7be72e7887438757d76828ae1f334f9bb653567cb619181ab50a1e186e2b7118198541498d208ca3682d33a482d237928096b6c4b737f75bc649fbc47b29c7551c2f64da195cb9719b3074c828cfd6217dd7d77bd71e8a67f9f01d92acd76c63fdd4a5fd8cbf781dc9654fee77d86c9c8ff1a18835c6115c73772fa61ea86de127be19678d427510acf1bdbc53b3555365edda18e716078a15c146ba560acf7aed2430244a412c1ab3cfa562c8b87c61ff1d022e509497f062a122cec3c489c94225d4fdbd2826f1dd1c7e2a99df448bff69f6d6e0fa6f6b4ff2c73d2e4f423fbc64116c4bc4e134ebe2c9405864e0e54b871fcf9fa004c79b9b3eca09ce15a4fe521f378a5c2d1d9312f361bd8b91b3888face18b7b3aad01339d0c75564629677692200cc6e38a420d21acf00afbeda756574aa94949513149878c27e1db35e91a1a4de933e025cd5b54498d287c3b615f47da4cd11bfc014b0bcd1092df4b681586ddc7ec5ba884462ec2689d96b48da7302754e84636e887c45a888ced809a443a75056aba9038d8eaa09c310e57b19725394057ae9e23fdac8d1f9442164e96e77fd789a2ab4c16334d11048c7fa8b2b1e458a9584ead0c5621d188a244a9e595e478d20c8aa1847e8b87c39dd67b4011a891c330bb1f7798d4f8ebae09db1823c76c434921e797ab2768369d28ef0b1dda269b985601a895148e54745666ca4c391baaa535a821c789d07d5d97cba321b92427d3270e78b792945af718ed6a1a893b9592e546daba40cf7775b58485d93eae5ecc6d9969473968a835e0467d08b514c4ff20423479ef1d235a83cdc3ccd3ed314bede221c55f071ce344f4e52e0cccf75aa7299dc7de49be3c5e81cc2869f82ad12414f6ad372fb474609f67712f230747646106e25eab153cba7ac728a3bd02833c28e63751c16338975f722d06a8c21d59816f4e707d50a6f0be26565bf4a9985e232205e2396d6d7e6d1b7dbb9451c9f8c3e37d624c7568bf211e958e0705904622288265daa70614110f9e2e8c38cf8a97e5e3095285d94f474425ca5b8d5a96641a30aee29fea95e3a2911998d2610b2f36798db709c1b452f2fea48c1d2cfe6f20ef3a83ba3bf9125c53ec71ad23f82ce8354b63303e89d3a23e3ca286006c1b01b5a815a09e1eb621d1d5b7cadfc02ea3533e9e2d57b79147b6a44ad8dfdaf44c85f5c0e1dbc61284af8b84b87c878373a189d0f5c0217bfc4c4793e6112612e763e3c4b00a729340c48da8d5ca6a244b8646b3bfac4f0acb766d8fae0864661ed54cbbf19c472760abfc1357b9a8f586a1008af8c1eb147e108652ab6b48f8ab4782f2bfe0a2ae3627633bfa6ea48732284c49c493c5102cf959d5c4506d02701000fc9a90d19b90ada91b52d784f89d73d3d4e819e090fe88ba64d1dc6211edb51cf14220b776bb005cc230f0f0e905136a8c7aadfefc3225e32de3311e81ba9ac7b296d5339dbda450f4cc42f0786e830c6844b07f1a563dfe266c13ec93b48a8d2f0c77a11502d9c22c09afb76ae38025d59bb3a827ec3caf05beef72355e449ed9d5238e283e6b0c49b2054f2301bb4c0fe8e61117140be83f493c7d15c4c2d6a6ff132b4582b3667d14b6a7bc4f648381eb95b9a3b9f2db3df19d0a519d88a4c5856ddc5841f2e9e3565566c4f486b2944d9d66c3771d6bbc6cf0475b6fa990a3b928d4fedb518353d99d39f08ab60c582a12f6c46a534159eec40e6cccf041207c2b313eb53cd842aedca5a3644445bf18cabf7ae7d2f5135343aa3fc7ad9437329e663143f24383c48a1b67d41f53a3de026b245d063cbb812d9c1dd3ec981bda8095a03fcaa5d92b385b8f1854e6be4f5e96a6cc1a3f14a15f14eaa49df3d8f728876975fe609ad75ea29830f16a34bcccdb493fb38952e98126885d6371fcf2e0337af4457c63eed0cc13ab301281343877420a5d635f7b87106c17df6d397f4102170b4c9c8c97a45b47f7f5f26ad57d728b369f1d4143049cb97b76d80116fd404d1edc2d8f44a8d1011a0aff40b51ff85ec7f8632c7deef4ae9c164d06636bb00b918a749a0b468c68fff9b0faa734864bc676e8d3e87f4f93fd0ae3229c6dc7fe2d37b09940af98990b3c82a46d66434d58f892b1851bd951b1e75e4620474504d6131e8d0f2490a534874d51f7e376b5b0dc314579f549c97013f9fbfd05ec5e62f7a986681dab9f775921b4a91fffbc7ff069db556ab6cf07040e4f72c819067c1f4db0bdf51e8b87e78a8a2010991abb211f1c4507640fc469540ef112b87560c42368acf5621fd0f45fd080a7994e1a48570cb0b1af8fe0a1fda0258691dd100a9d4069bd16ed8fdeeab0e14a93a48837c31cf0f7da8853c981e6a9f94078a55e971860ef112ea15c77f97503a83b5e157c703e8c92eb09cfc7d50c36e178234af8606dc073ed561a7b5829aadd580181e31660bee593760db56266685de76ad7c2042b73ec7862a58b039396a5ed38573b513ed32ed5421d685f8bd6a12c63d455aef2d04f3fed03439a34069764f421dcc69968a706b180c2f60baa2bd9b2a2745ec9bff4d6ad163b9c33e77f945b8802e960402ee6f39e26a19fad8be42600e9e495d926d95263ec49e82829e61c6140cbb34f3e63acb230ca530f7e0edbb0fa0aee16d05e7f35836cb745aa71191eed07b50bffa454404d9ea82d96c95c02d0c77f9b955326de10db2b9e1bd3c6cdeadbd3598ba8124513a6864e769f90094d8cf4320c897591b06a29f9cde6cf88856789772d5163114462d0afcd5a2008afe2297378afb96b3c60566efa3ae437388cc072394533ae702b48170b1690d6e40c3b027b8a1cb5919024949e944ffb44a4eac35c6415a73e0fa3e827546080aa7fbfe1fdfc117ca5e612adfe19410fe1883c1389db899c286602bc39115e0352c3e92b485be1702771d4a799520caba8b63f680b2af1a0d941227559a0f2c798f4911b6a7c94b1228ace9e83ea84e5ca4071005627e6726d7d39be5e24bf1e89620d8bfeb18a1dcd1b56139a5744a8409379e9a558b75d15a3decd44b6a913fcbf7f719f91f1522c0c230948afdb9aa34492f34d16ebbb46c08f2c3f7acae967fd301e1ff5b4925ddafb44a4929c25f7a8600e75cbb347e6e292e6930629266f55cbd3e81a3188816973befd07cc92dbcad2cfc5bfa030f074117b454dccd936669cb59aac210ebed9940985ecc0d6496aebd0c8c83199f9160aa838e341d37784781afb25959f8608af3910aa079a356b5b2d74d7e4ff80dc4276256383c7a2a7db03e0b5daea630929d2ba3fa1865c839ca0d491475e9393bf4c50d038e15541c1f6cab63e7e0005688fd199f4b9005cf43037221b55dae67d4a441d425fbda4a048eb4429334010e41570170aa07d2f9aaeb9aaf893cce52240149fb2e2aa36a15d30cd67b37b5f694adf5f7f9675a208d7faa0a3de9e5a3096022f57c31c83d11a80b1846c35293303bfe1793c49e1dd714b71a1e9dad17d27e777dc90dbe20e2d6156f68f45caaf47225e9152d56547199b492e04f891603ad5cc03ec8b0f941d8dd24e84b66d249e838ec62dc707dd1be61904b0277099f8acd1d1556bd20cde843f42514c0609bf6552d291ab65efb8e9fcea20b57e294c40391b5432cbeaba94b1fecb0a714ae8de93128ea98b458bd2fee1412a21b27576a0e15d8b131f64faaac71d9adbaf4cbf1ebde0f2613996ec85d11a7f07c53c6ef0df7bacade88436656214a456d015d257a1cb2bb2956a28e85946c7e35afb2cd7a458a3b774ee39f64ca35c5cb3742eefdeae5443f0dd9eb9f0eab41370be03081bf8f311479b1636212f1d9099bffd9cc4948bf4aaf7ca9f7cfd00ef18a4d22de3782df3401ca3c3d0c5e061cac05d70b4c97b362b97f8ea15d9af1591173ab848d0f6ab2c729a535468a72fe8923b222afbbcadfcffc212ba52ec5f2ebb1376238c3bda0053d8e67aaad651495821fe937db74bcbce65ea4a90482f77cf24483f2406f9ae175da6cd58d94374f775491ab9e8ad4be4bc30922decbb051e7741074896680b68e31c73f09e4bd791569d70d7deacb9cb27638d933fb31531f268af10a807dba3329aa1e0cc3d794aa72d87f8f8b004a3f9c80b63845ca03997c4b162a59300f574dd9306395e6409f5437fb927434e84506426d1ca902d5828d6d1ae7ce8ab0ffd49879b252943ace9aeb7aff140433aa3f88563fc3567e4e8bab1cb78156a2a4bebd13dad155db9bd8b49cd3d84639437f7a243cfdba621aba25d1de30c03f6a1d5bde3096f14937860bb51815a434ebb8bb51defdd1721af58f004d0747bdc02a0a6c040154270189dc4f5062133c8f651f7b2461ef30ec29bd1b0e9a2c69134867155321daa896e517a5bef9134b447b17e2b96bd6e2327910dfaa4debd4ccf24243f8c90f2ca17c7d0c517ee1d0534b2c452be467fc9b1cfb1664c4bf905a519e41cc6be4e4e7e58f10f4cae638a518944bd1da68de01c4717fcc2d7547e17deac2e5b5201e0f093453b7cbb482fe5125cde2e02bb2516e35d077b50f7dcf46133649f6660046377c29e21f0c26b549785f70769c82b8b7ece6b2a808baf07c8cbacd88e5b0c4541bac4df5faaae3a3e9be13f5e9b017ff38805d759622249bc5f0569a7f4a9289cd1401083606b1b8ba51ada3c9ff11bb4d6cc3fe4679360f9eac95fae120a0763bbd1971a6ce8ab5ba199ef268be32dcdeb9bcfb34e40910d60cacf0bfeebf763f4973a1106a8b1de640cf50eb728b027690233e1767acc516cb71d435db8693dcfa6aa81f2b299cb9dff08d533e86b9317e11b57352434dc2bf0900154a669c0193731df556446040a2bffe23b1749e1d5cacf2e222359e1df4cc0d97656e97441e867767953e2fe98850a50f7e8c6a24e280c804d45ffef7de7a7e07335eb469d6f26633a6caf16f017a1310a71210713a96ab28112418da94b7aaf87112f6c130e7c652a202991a2c71385186c61731e87678aac7d403e63950cd3692c91b3167b88aeaad17cfc9756107bf74b7a4a2120e60ca44f52d1eeaa45c57c9a7bfc6259e2f0dacf2e91d04a0b58cbb19c358dbf5967e785c56bfe0aabcf2d954f18ae9185c8ecbf32834ff46379d149fb00f3bd035b2c0b46ba551787286eda048d962f9c04df602ae5f269b03dec3a318f32a14950d37cb8676741eb99ae30c2b6a297f1a9411155f7d8033fb0cbcb5a0f27832015ab8620a500894d1b66656041dcbd9a0d6aa0a9a8c9e7c497733cb02ece4ed46692d1d7197f180f9aeb3b6d94fb504781c404f00cfd1e55915554924db7e733804f20485c3da3698db8f17f374ec73edd4d9738812274e58e584d7e2b4490f606333199572e58dea2922a004b988898d922bf895a2b494e2eb767477dc3b9297acf05abd94a274f01cfc5bd05d149db94dc70f4c3c749a5b421cf9000dffc449b6e017619ae1c25bf4d0ab86e819ef39a2fbdb8c986a4dcaa298d1349a0e0bebcafd4bca12e85ce01692fa72fea3ab2ddcab60704f6a9e5206d7a725432b432940b6588cd90716168c0341779bfcfcb6849d6b06608c29b153b55f8ea94be3984da13e660c517dfedce273543f0c34f2a5a442a3c07652f7d1c6f1ce8e70cf7bb35e57ab5f991479926b721d34b5d7bef57f98586386944a0f84597661dc33149ac595f8f3c1d1a03e9e5e6e523a798ad7233b006b670150b2e8731dbe31b5c41bd3a0a82a675acd3333e391343f8628ee200fa5589ff447e2c9673a535ac68a55cc39aeba178512a4ae4347515a68fbbe108c895fbb5dca9e2766fbfe56f578cac132c0d35cee535f0650833e22eb2945bbd1b072caf8d9e77364cbd069297613e19a6c59da1e5b76b6f7661ec92bd20a97f3bb46d040f9497d5c32c051d6c38b9de69f5454c0a9e799c174f2bcc9020ed1a5905e6f7c3689b186977e9ccb8450d707641b9634a1f84afb22bd1e3f83d4500be989db67ae4a555048a7b41d201a01bf945a84f3cb9ce0fe8898135cbee7e42d025200c50f576140894bab7e168bf4ad7d521278eece013c7eda5ce9a36c6953822f98c6b17b95e6881d8d9d7e6ce5ccc208876cd939f5c7af182a59218f43899f59f1adc099ae067be06c1cf2950044e92c8cae5ee359e498b2b6b5c1eacfbfe53608091aaaddcdd1160bae76474f63f8470b5bc65d0757023ee4ef0a7abc17058c5aa985f4b3ac9508abe45df282f79da8acc6da2f29dc1bd285466198cdb3665733fe544001036c4a997c9757735c67ff3101ccabf8243277a62d5aa893dbfde00e44010c05caf885de394d67cf012046af24ca1bcc06725ff6098da741adbe0093184020197e9319dd111166db1c0c7eec75233890bd855365458e7d1417d12a1548b201c3e5cc57d438f912aaafb046aa33e747c99b769eae38267d057f210d6c375c92a1d69e4de83346eb7fbb9ad6e5a4d93be5eb87a9e4e8cd784b40e405eb0a9c52d1729848bae69474d1eff23efacc50fcb1b1feedaa57123510830580852ed502726c1eaba882b9c4ee2cd4f85c3b0ffba5a058a35ec0b74f45a04cdffadfb1aa82c813dcd7eec21820bae105af32ad5e705db936d89e0d59c8850811f57c6dc244a1419a68c8101e83c719a6ea0d9b0ec264e90dea3ff8ec4db1a1e6cd0fa6a70b3668639f6cd77c2f0e572682f368923c3e43fbf71d13d8fe7a6c01a9d38e1fe8890aa58276254cf671df3e515311faa1eeecce6cbfd7e820335e055cde7b18a2854f2c767f50353a72d9e15edb394b3d355ec48413bd4cd0e8136b253265ea6296da1d096c0e73161e4b82f81d835bc9b51ff3be740a49206fe3584e16ee31f87504feb8bd7e41e5cba3d410be5be84069b0b5e5b1b452ff152b4a0fdddf3293232a8749956a8c932f263a1e987b0e3f30f4751ac29ae52a1240d4a89596d12f988a3daba92d5f70550e48cf818bb66a90482e9e1c3000f73b19f3e0d1e6bb38d2709f5808cebf6807cb257181513bcb55621f0a5b690081c9414c8d8d420bcaf16c7aeaf4afe4147e7304cd62bd63481e96d59e7a49201a1f39cc3eaa298c807c111a5c930b2018dd216b0243e778e13f51c774ded5ac2a9cbe81f35b5438b3fd905819c3cd03bcc11f81aebf3c31b2bda3b399ddb58d6d0a2ab7a4153773870e6366d4dcb0bca1db1daa835a9d42f38095ef72de8889534f567aa7fd6fe3795156b77c0ab648e97c1f6b60e1c988c1d0533bfdd8936f28fcb0edd3a5cba132c60ff5e69669b751ee869516640c9d0291b178d7345ef50e6b5b75272310a178412c01909ef570bbe35ac860fae9ab1c052fb7a611b1e12be9b788f8966c5180d89aac329d296e0bbdf50a4762ae8c03650a803520a62a84d76379c0529381967b644d7f7d02fe5cb993ec26f26350d94a2888b1bbe10a2ab5419ec6805fef0f7362aa20d69171f0f34329796e55988701c7395ea6a48cf49a22c29ef692c3be86aa2cbcd2584a0792e3faa7f2d14a22b9beb6d7c9613c3014622a82317e7247ce71df449faf7bb8481be23f192c9065fbbe9c87af1618e720e0cf79f224fd16a6588fa7f18157e4765920c86fa30710ff438b40554ee95672a707361efe2fd9e155598340d3f283cab46610fba763142d18910ec5f6bb16455bc4b06aca1f3a4e8ebfbdb69d1c477e331b9481dc6591ce0a3caf0aebc5dbe1c3b89c7831d37c1df5a39b3a670c4c5e1e1a93c3d740b6e89039a20516fde0a2f0ce305bf0276899c3c10d80b55e3fa49629dbcc538ca4cd40356722645dfaa504f3da5a3812e9771bf7569862253490161739b0c1b84d0f32eb4b25c96c2fe044cc329266124fcb622ae69fd292b5cb38e0e0054c906e83a1d1db2e0f3646f0d6ba81c25988d3ddc2bfa0dffafba7a1aa7aa0d19dbbe1861022f8a7c36caabce02e5669a44ab2aa4998c58e938f9f403e37d7f073521085861ee2ea8720e4ef76fbe64f913eb9adc613ce1ce0dac947054a2bdb486fe5b87157d77bd8ba0ab78a5d700bcc13dfddde39e76c9d3712349666484ff15b3c013b6ac604565c2ae1f09ad0ac45bf009e4470b0f5df7e9a313095e661c93f510d4b2fb5048547edec3ccf7548caa072753a5361514da7b40650e2b67c599c5d1de7bc3bb5d99561a2ab6adc64c47440673fd2719a7653a7d9ce1999795000315a8161b5c510f3fbbb8d57e929ea3cdd98aeae39b09e9e494e27611bf3dceef73b6fcc3cc2da8e4d3bf6182e434cac2838685190f7f05d2236c6e0d9de03c7399c8a57a52f40f92109d210eac4897e59584413d1829b4578f8dca921d8e6d77c25b4391aaa43e3ae53d6201c11a4c93b15be7250851b67d2d5ea182edc13394e1ed522d1cc8d533de2f42a75a2939a80a10d2f2837f8ef18161d017e733d0a3c394bb0d86776b0bfcf7f248e9f5d68ab83854585b1bd197540528bc7e33630b75ec0dd58b6b01597bc4ecf65892cff5240a406b1c37518846376acc1e79eceb9937797c354419e03f1469786e9bba3f155090f3cc6e3497d130849acb8e69dfde444c509ac19fd3731ad2d25e690e4835c91e9b6d3240b017fff8e3c3b353673b64be6794b9487268eef3d4e57388156ef05bec11d1c84fde2674de7876e042b3bf54dd1ac977356c2cb2c79b1af3d5997e24a80db5267efe885eeb6e2ac311f6a66e3a20bc954ca8b7f5941e918aba3673e0f6c49a3a14261e745777edced6b6e1d12c5dc052629bdf032fc91b171f825b3ea797de6032ce1cbcbb69649a718ceae77a9927543c9f8c461d7559b2fffe365b6c90448906614c74aaa9a899ae966036726cfff0daad6fb52e1e4e51e171847d0d6e6a6ec3bdc94620b43a3e6ad650fde310f729fe5088bbf2760489d6f63d86aff214b15ba8c06ee7066f0f75bcf9e3b8939721550176b26c6ba686653a49c0faf6b6fc919b913649502a69c350ac279fd286fba6e7fd4f863e4e4a0d2f445a6701f686bc37e8ef2446334a5d84495bf51dce4e9b7f926f9d6ffa23dcd6643ee166ce4cbca75b9b58bc90a928181b3cb6d83cf22d47882f260ca251750bedff1b52875e43b64de8c0187a4caa7b9ba9384c69091a6b95bf3ec481cd1eab46419c9cc94c684846a07e3e34d7fc23cac0323969a91f86145778f37587526637ad888ae54e8aabe9f3862b3560c3d8ee19567f7aa21e297eeea260aa5249b0ed4bb1bdc77b9ddc0881d351e33fe73f871a26146a7746c12309c2f785db5e788091a7bb6c86e28aba55ef2788295ab821759af7fb197163cb66cd76fe19db7d527de66f210ea6006cd890de1f7ec32ceba2885f624b1bbc783f2d2b9269f72e74e69c7f77e823fafefceb1063747908d236e76cd82ac731e819aedfa77c46c917984c0725f498c222d9bf614a5968fcf1129db976a36cb4e3f496836d6707707a5eaa19b1b6bdb98fa65a55d78ee8d3def111885ed2ad5e4428e48b79043dd1f6856892c23431833e460f63f0d05ef44796bbc46b86f157412f77b4e85df139585c87ca31c3a058d00f78fc1009e623775b56a5a21330f97e80d0d92cf583a8d9d4fa05327f8de607ca0167fa5ea558fa09416e37d838c69c7e4404e0349542f5eb745602704106e6f6836ba67472ca1e52cc1f1740e1effa441cd7f5443c1f8ce5121cd386d811a31e6a18bd3d2dc713334b0699dd95726444ccb9797faf969e53472f505a1075c1c9a697c018d5ac927c189277a8ddb7d8a8835408319c5d80f47807f52391bdea6807348934e297c6dfffa3898f9673c50273c42b085054602413257ee2a4e83290c578175876f1dacb7ad34baf6388b13110ec31096d02fcc448604dfd1c8b97002ec2c1128277510dc004dd9dd69fe70285f2dcb22c278cfa3987eccb87abc36518046202a12615b457871b487945c0ab2fa11ac20604a64ed0513b86aef6a31c2434c2909f22e22ac8a37ffe4351bd9355a74a3a52be28f08a7e7ef1ed2c9702c8ef7791b46a537f9d418782858f157a14c8db46c1bea15d1d89d850388c8119871e4ab36c49d52f0ffe080df1a1020d4f7b216e48b2889be4c067d936348a22db8ca990c06d5f47614ea5d7b43dd02f881b1d10362eac67c3a4bdfaaf1631bec8d725c87f9c267b1ea0fb7df0df74271fd3b23c46285d4ff012151f1ad70d776431791a89eb4cc62f5a07a7c29d571236b8d219d018710995dcc5d1c6746ef8eaa682a3488fa9bda1f7dfb22ead4b0963205f7a304e14360cbe4306b4f24413c90cc1a145c303e079d93b3554ba22f52fe5cbff43664732d7ebb15717e0835f3a7cb18564b471a19f34ebe32eed58dd569e60f395c450fee39addfae3912db12ddb0f26544e0a0520ded7f4be011ffaabc3fd335464167311d91313375c3153c9e30afe37674978aae9cc9eed50c8ef20c3ef8bbb5c2ec1072b83d1164119000703a7d2bcd93e0fa2733ad792fd41ca23f7e8c6d408705e1b993bc4ef7fdc5b06bed04a6520b09387e0fbed40e2a9c6c507776c984aca590067c9fbc5d49ab198136e7bf2f06d600b1f1ebae2a4bd4d4693033d5ce14a1808b7c84962780e84ef383dad7775ec83f465280c0be57ac26eba8dbebe4271b3e6518f96979bb6e0ff853a20187e29ce975c4bf7bbafeded57424c5ee2bec65f7a115f6958cf04ac213d2737dc8140d18dec1a5eba819c4241afee7f1b1710d2d4d22c4fd313e360c7ea5b481fccba2b4d30cf9f6c47f86433c383a359398c57a2bbef2039be669a764a2252f6415d7bc2afffcbe70cf26a500ce9f06904c8fdc2ea856fc9a4bdc53bae782a5d5706f015982f3cd756ecbae2fe874ae3dbea6b38159c2b782034d2292f8ec706204df17f891f05123a5e4ea1d065efa9d05f1950833c305307d7630f71a3ac7ee97be5c2ae5bf7e9516125741c264f1e66fe98bd8f3e8997e22fd76e7b290fcbf93d0695f4ba50e3a057d579b4f6a43a8d457f470eb19c1dd88e590e6b8f4fa0e432dc27b79b9cabcf4f884f04fc919e6dabaf89d20bc5b362a84338f0aa13f790eae9499d3dd4155b8a4b8ce054dd31b84960e29910d4d38a376da3485d89feafa3ae6f9a70986d7bde82f18bbd72d615c1ac5ee48babae5cfdf250f5aeefe5e60c9830374c5cde756d109a5c3509e583aadc3c14faecdb4fc34313e521f10ac7db40e1810d08b202bc7d813bce07dee6af445360adc72bb9938ff0fa52b27ff7726cb9748599eebfda042d83a45d04e88046d40390a1ab4413d7c0f1f1123e7dc5b793b8d142453234e7975277a23474374ccbc4d257c3df248e01c53bda2ec8e26c0f38c9c2f540db410fcc8507c5a8adf629c2443889cf12ce73da5baf061b2760d48a31bdf038cbde6e864203dfdc6e22ad5e76cfa92cf25a5e357900ca8a404fb998d45d9ebe2bff54c0ef9cae61f182659ec0274d0d33f5e2e139f60ad65015c955842e8498084a2abb09975498bd98215f6066b0fb7597552a1fa7c77f0d641bbba722a1ffce6024784d6c234aabf922cca9c178d664ac9b1427c00d51f6a8426a379549f73b6dbbdb17950e5e32c0ebacd3067e1b2ccf04516e5624eb6fb225d98937b0449eb2a8f10fe790f2aa4cf2d55a9735bef0b0dcbf200424c3010e80ca05cceb041e06ecf4fcc75a6d3d76b72fcca79a6af64dc35fe9204438f8a12124ad5330d4dc1fab9c02d1b3630d6a8c0fe56c28c56c132ffb8b25c6671c80f995a7222a00462383386424683a5570402a1f1278c2c748defc1ab9355fb75b1045d0c2190e2c2aeab310715471ac61ed50d80d26dae8fc290e44a6eaa85e569ebed6ce4f804e2084a80f225c7a1f70fa5de8770c3fa25d50cd15750f01eb0009568df3b3adb19b2f9bb5f95e84e232baae52ee441156d33aa1c787fdebcee1a8978e30295980221ffd7621187fcb54ef17664f19108e6f84314e8a1a25cf62c3e59edb8a32bbf1ee63a71d8c128457e843ae08461b0a0db91d1ee28844d360f89a82139e664990c230b424dbccabaf9d15748da64da1b46af9b4945066ff6b8d82f9e04f13e7233ac698b0764d2a3e84e5ae513e0ee8430e0017e5e5b6a1d79ce3e5a827b7f4103e2783c7be4eccf0640fc2800d9cb0a54776f604c1a71bb6f42c6b2336136cbf390f2775949a59d5737b15e23b6f5e031a6973a19beced1e55b2e4370b03894aa502bcd4bcc42e2db2ce5dfccb655ef739bca508c75bebb75b38d47e643e93c322acd557cc508b0c5425d5b35488a3775a272deee602bdbab0ee329e7954686ba63daa8544488e4f87f0def27a2226541e26a1330f8eb6435211b22927f266ec8aada00b0929b63cfe4abb5ddc22027b6f7c7ffe3774024c4168fde22b64574350e812408d99f4455c33fec3553b94024c0044b3820ec63be2f22ac53de49b8848a86376aeeca0f43d7991308dfe4102bc04b61f92c6bcfaa951100b1ca1ab2fc0fd8938e52ef05fbaf8a6603204d52ddaa6988f58af1f1633b0a0198c61045cda0c1f4ad2b85d18dcf4bd78c0456ba5ae007455c0e248ff9eebde209f314c12fb957d33aa6a0cac1c29e5756f486c4027c08f4a72483b6764068c7fa95763c801f6d17d36eb3aecd8ec0ec252f799d68755352243d82947f50b8be37ebef0a5fb2ed433629adc4688b00a0610a7a27ffe7d178753ca9e1d42f7c0733afe5f934a46955d9955b1418b5c6b20076ea4853cfe8ffa4a5d295f0d9ab1c46a66f4f944565d298363d8d8a81f76bc5dde2443ee6ca8ecd21e032ca38a6f9a599d515ddb671191013d2883dca5071514e5f67fee919a82e9e0cf1e12a70f170e49a376f62d6867d556399f299a847e9b96fc46b6458e8740f780e88d7f449d270d794564464ff4bb1e08d6c4d7246df817ba0ac3c8289afd7b79a7e40227c817fa0ccf4c5eec406c1a969fe78e9e984e792d09bfa50cf6bb6933b02f713df3924614efdca0478a58fbb47ec81c0167fb7b33fcc5f241959678426c0e66a28b5c1b8e952e20fbe6cd476ebcf6157f4ce7c4dec988f944a5cf66511750d38fa32dc310898c0d906e55d6a09c321de2390b8e483f03e0b4ba54065538093bc0c824ae048cc446d9da4e8ec640982e1e2cbba5ec94af6ce50c21c830113c55fef16182ceb6cca561ddab96f98dfc86b1b289701f22e422c1f6e5ea1c6aa7308122dcb2271fabb2b40b19bf2643715ec7e91e4d34620d93691797eb2cb3a7801fbf6d52c677b429b3c0f0b02f3854a2ee26dd17fc22af0b7d85c5a653659594c095b5841752f6779f01dd5234a67ce252baa617a687bc2601850147d991ff5ef45b357a8a9508c178a26a4fd8bd4a0c9d6bd8ef10237f33f202fd66f357ea6837cd20b13da7db69ca928e79853ca71dd4783cd7c159472e3217bf2dfc5a6563535f8b085bf6bbceb7427324da8f880fb60963f2b6fea085ef1aa6fcf523c942b212814f1eb4d9abfeb2ca3a3740920f8db3ba2b5c10a4987a9e1977455407383329804bc7dd1b4d213f2d03abd42996f29b14582ed65f03aaa31ec6e194e1553adb50e35bd66724fe18a8eca540ddfd381c61644e5c21c31222942af44a2ef4f0f45dc4ef23e2d85fcfb56ee93657586972bc5e411e16003fa26d071d3cd719892249a2fc0b50411069785de4e0b0825afc2744c5f220806a02dd91310b3fed68a786863ead072d0ccdaf2bbbc9344331265ea5f1e2e219efb17fe99c89f11f40f843c3133a4d2b55796353e6187e6af94485f79d50cf8b1fbb3be03e04f995deeb19751b7669701172fffc1ae2357f8d60ef61311cd783a6f097acdac933f4b5d2a8385e05110a26a7284c48e6606c54790cfb8e66a82f1464cc3830c30a6adb0b47d0b4fa25989fbfaab613fa0d2242e185240d6b6f114485679294fea5ea380281b253a04ee714c43a349a412c691c1b8c758145ca56eebb4128259ae04d890a327d7ff73436389c3fedbd95f5306ad513227b886350a587ed6f3001edf93fb8265324864e9e704a6311c93fccfedd0918cdd653d9fb47f099cbef2639ae8bc235b40660a0de883091598aaf097468812b2de78849bda2d907042ca5a1740bee3e72edcb5b851cc3e0f8f70d6c8df08f98537d7cdae76ab0fbc22ad0c5ba333a206f1e52ee94798e02337f1159aecc7cd163a476c3786e45936eaf5a64b4f1ca13c095b748545490cc7a6096156050d3ed869dfcef33d8b0e44a5b386edee1969ffd5ddebd96e101eb3661c4129384a51ca24ca0b88ccd8733f8423ed351c0ebce709d25e2f8a1fb345aa4ca17149be1d0758a90f73f2713dd002683c5e23d8e61e25fa16e35da56b96e839732e07093e3871c4511b376c81d12d4bc883a0260db7662d7e1288db4bfe7db123a3b222100c26b6121cc72a471ac316d07d014492c376c9a83dde83af40b2e1594315c11ca36589632f45246fad6e6c151a346ce32f4e42e00d0e4d8cd9d760386ecd629f3d5aa8fd67ec1d37bc0674f32a23bf47af570e981d7cf215976ad968e99e2be19fe5af8db9e6650cabf64cb50c52af7ee431cf1817b5266999b8c5e632bc3120432af3270b7b2739936a27332a1361f8fbcb5192a715b1cc6cb2562b35775a441da25a08fe0dc565237ab9dff1717a88b715721cc4d1adcde61ddc0c571b4ed953a8cdddf6105114e796139f267a690e251338a00d6244050f6db4cc85579aafe65c04bf14d15be795cf884f61584fca48b3f39ef0985fc174d64102f1f1e8ee8a5e5a051594bce6b0ff0006373b84dbf8d30313ddb9468fc2a91e7cdedd078ee399891b1a77ca3af720d7c402b579aad2c9ab5f81a443c13165c61bd03c0f98e63e4d46a03ff1df5cc6665bfb9ffbea5477882af4bed81231f97103fff3e34911963655261e1b44ac95d19d4f8d8061cd535e4c7ee5da66db2489a24c0669df00da46440c0760b95065363db00a22afb2f540c89222e45826dc9def375f2c07dbaae4f8d592e7ccb6141e7123eaac3533cff51cf68f1f927f3d659d4f1a6e35cc4a3d752a067921a659eb30a4cd994ba61b658a802d00f820f494d8d7eccca73773b739404884737834e52738144214b566dbfb139ede1f552826a6de915b4fe3dd2233dee75d5ab60554dae30f43d02d842e6adc02ec59e56bca7b007df3af6be6f17badab158efb4a07e17cd1823a390226b2611d238414633f2ce4bf7abebac873b49754c05ff5cd323a1348952bcffb0f330f321cab27ae997677c106398239d2853ce6e1cb12d48d244cc10067fcb107c99b7222866f8143d1485436a7c159984c519e1c0d6990f72b2b51581c0658dcc55743269cc4bad39593e46cfec29db2a893c10454114e3a23d72be213d7e4aeab2882e91ab7cc20a8c6fa8bab2526d1b37d8ad3ce9c53fbe9ab2cbfe0fca5212b461c5e868d8f7874f9bf0acd2dd066221991938e58918591c304d102f681a229268d11ba4c0a8f495de2c246880da10c865bd68339b7977b779969633f39008ed20a27f0e059bb996a2afe997c5fac203c49238313b4215b1af7f7473856dccfe87e8fc0598f23be2b859d4cfbeec71ab4fae921ef119f5587a91a5d87c9063bda2bbfaac4341781e4c496fdeef18c40fb174d6f810ed6627c672bf99ee34303596642cd79311ede81ed7238864adc1dab17e4d5afaa2f02b8f41bcbc93d5a25417eb1b4cab092b768d12e8e28a251da03497ba0810f9ea1e688717362be9e5714cb0f6170cd6d939f648bc702e4e0481eb4535292e3cb7a6e9d4436eac8583a00cec8a51d921f62cf23c7c8e802a974c7a3f8cf8b19847c9870cb6c9dc7d8d8dc6380f1a56f97d71d016f722f6eb8c257649a66c933a4a9fccd13e44d69112e4b813ff4e941be355c6d126fcd97eb2b50bacb6423db3beab04f49463e4bc0f229f88a73c1405bc31a8f6c042c0e542946346032fdcf543e469949f372470f997146b2d9e9ee143461e9b84545a7c6057034fd1da17d194a86b3e03696281e57b8a075ab081ec9bc50271e27224dc114cb219a7aba97deb5d60212a72e016f07bbca3f4534cb703ae30a072da80f73f011d285b24ec964c99768322f5643906659d9bd9f999e141045f426f12915e0eb48c0a49f6866bb22ed306058fdf548cf801f9e7d403adc69c6af237d648bd420d1f86fd9725af9e923cacfe793aa39751da42bd35d3b5bfa53e5783e5192b3e44f3caa0cfe11497c7d85baca5abc3f0588496f7c6a16ad62b61f2e5d3caab24bd41bd2536a03164218c672acf2878024dec649af58732b68b769f484ed4bd12a900fba1205ec20ac5451ee4219483066ca8b1424632d29f0e00deaf98678ee63d6d5c673387e693f82d98678e5e02c30658579e65b6160f138ee8c8a5aac7708deb629305f2a5a50adb3ae381a6ab9aa6cc5b20bb7dd4cd19cba06ee34d22eaf6697abf35ae67922510ea5d44b0c2db9eb25c888ebc7fbcaecdce8bb12580f70fbeffecedb4227ea5ad0db91308edc6e25fa28652b3e8d9502a328607b535b09017da2b99611d998f086eec322ec75bd65e75b23d1869e2698dcc876caefdf01d08293ea732d37b333bb7165c83784273f1e15955962256d8e568771741ca92cd920a9ef5946b52e4d89c5000396ce9c7d37cce2f86d5e4c3f8d1c74573553d225e46da52fa85393ddfbf4913cef031de52470d628f186284037378386bfa704ddeee2238d90f4763c3ec20b89c31a352075076ec6006c8ecd2720705f57032b4ec8f573865cc5631d86a0cc1734d4b2af1f03ccf507c17df407a7aa5416b254675be0de576e586ba836a7f52ccd1e11f33ec30c201804558e3df43dc058ef84f131ff554544a59375cf10ce43d5de985d0032631de76bea5a08871180f79099d9b26125cd37e2a9339ddb77d5691859b73eec7d01b0b85446b23e7265ba1c83a48d9fd8b73b3f7ccab71f3cf8f0af2234af987990fba9899a7319b4498acdfe65c29f19a4e1a86001a99fa679eaa32ecec63b84dfe34316827f63686ee41c6be8aeeba36370999c1b2ef1b5b469cd9e01ac5800f9d060c3e2c4a8155467bfaf32150b6d5d38f445e6d8265db0ca6bb318af237cc138200be06f2f410ec49befdd72d6ee965f02e15b189da68c5ee0f7e848bf7cab4a606ecb2b40913d402fb5a24a1a6de815a58e413cf040fd381ffc2faf3127d36bfbf8ceb305ad21481946c09b65f3ca789ecd43a1fdd05446b3c5ce883c5702a18bb4828b49deaae63e83bcb170208d11e25c5fe788cfbc382136b8b796b10c555e39346c1f4bcb53ea8001a6d93d0d51ff02845cdb3a1d311db5bb9d6cd5f752bed061f07649454c64b7f7438882d07b51a6803eb8ce2d60a6dcb70a3391fd60f8f8c1090ec6d2d1f7ba4c2a7552805547ca222e20153f11ab7ce1ae594a1f757b5611db4d2c31410b9bed76f7df606ba3446bbb265b70cf61dc9aacf0c35182d5b4a54960df80cb6385dcb3ff0eb73a4bcfc3d12df4126bc6b558fdff1d70ec181c046c343f9cab8848a2226e81d9e44605d2b133d79276227b939239ee4c7e1c654b2686994872ce826be4fb581fc05f05231802c59431cc94c67d00696a3e396a81778f897657a41d56538d74ce056d049cf20c80b2dba986fcc25b07e0af7e830f1e266392c9744bde233317e51bbcddb4a65ec689c2b58af30c07735a3e8db89fa3c796db3f321b2a2d4ebb237759e97898ac18e2d560ef3c0d41dd2ea595fcbf8a5288298199ae32e2b88269d9c66ec0759d411f4d91c9ff49cc457e74c49ac00c08eea4b1f331abb24e124c5bd42517e03eb4bfebdd31a760d2171d113509c93f915ce539a4679ec51ff41ce03c9d61a6b7f13bdd18cec2bc3c577579d857700b28c85f21f0c3a06dad4bc04aeafb248ba14517bbcfcc7ab62c67b10484d741bfa299ef7844952ff3567077335e80fba8082420d40fcad923cabdcbd2fe6c0e096b674faf9fea8dc059cc1f5cc4aff9511c01ee7a6590ed775108f999539e2e59d2e7bfae63c9be25725a633bc869613ba967391d14430f3ad998f1f943cff08ae71816569004639a3455361c62a14e2b40bef73221269cda1fb6a0ba66e878349ba6166dc8f11a0b207d9e09908966e9538aadfa00b138bf12c0b6d2709867237fa6a30351339d586708b72897758f6a36fea8d7bd9df7aaa6810022328bddd61be785697de27907ae30123e19ca0d24617960a4c154ea0a66289f613c389c0493809a01580aed43bee590a7933363cfe57fd96b7adec8cfc033ac10fb916fa4367eb862ab35712778e906ee84cb700cae4383283f89eb89fe3f48212147e966e80397830908a5640b3530c280656aeb2b335f11ad52a483538da7f2169d7b6c59376bc28ce2b60d552249295442a3d976a92605b6989cb6bfc46b642e4f56aad929e129e98bdcd8eb606b79bc3e7c944e9843acfe9fcdc6ef05c15f43e7c37413247c6a709cfbb56f788de7df6bff6f4d31b18a84c3f98e457ae64c5881fabacbcdc6b430c98f0df942bae8aabbacdacff3d16a6ccea44ebb2f102c8432201d247659637d31b41caafc6064cc0da9ddc0897a208b1e88a5b62a37a2f9652562dbde356106a41627ed41cd2e57690d84894e4dc0f711a7ac9bd34c3617596943ea9d6c861f697b038f7cf6071f534670ba218b5293b73af0ab77f7a2c9635f38cdd322adac626461e6233ba52c71f42906549545370575eb8b81ff79ebbeb75780be166d8497cbb3c565d998580f74432516d27c7397ebf851db09f7342a00dafb490fd040bca765620e95d1a46f4f808e706aabacf239597fd69b4f239c31d3db8da59559ea36d0c78eac68bf80858018e2c3e9a05b3c9b2ab565f191997eb615a0939b817b714e18dd995888921bf623a6532147a61ec25a400e11318e59a6a6c8b250f63847632ba8bb51df2bed535838c9de939433609425b9a6430691b71af5784249169a3846326acccfe2fbd3f79bd51861e43915ff3e0b472489b924a296b63383828087157a119b3101912c2b187b612e854aa96c698c75546aae7ee5b14741af2c2e4248fb53716d44a82c8cc4daf3908f64d050388bd045bd97d15bf140a9d798dc741eeec8fe7616315d065193f163e166bc654db80ebf453723a3300b4ca85f602f68c29d73d09f0b0426dc8fa4b96f40464e525488ccf82f82362ca901560330f748ab1095b4f1d0828823843a14eb702eacb41c6f1f94949db9625d0785957424e41df01bef78f1e3348242f5a3e0cb41d76a367b2d0948f8eb56de4d2e0c6c05158b79a2e841b83c100560d6537c1d46d93e0246bbb7c43039934b74713e1e57ae59719e130c73f73c712e264fba90297e5810e216505b83cf6be7be3d254cb929621edd26b020621bcd8d92db77f154ab34e317409cfb9aed5c640ad3d4bbb94b9df15788d3c9a425f0302ebe9d6dc95c0badb7790f327b44d02cb8dc0d120dd5a69a9c30b80e287d39ad0dc845b72ef6aebde46b4a00bbab79b074a15344add67533631ff63b820f30e03541917d90718cca4b34bfcde657bf0f407c369659d293ee3a4e864f4a8201b6a8d8d68bd4d0b4b705b1796e16012276b4c287c375ca131957e39f33f634b7cbbd0e2d7bc38d46871c54da21e1219b35fedf43be64712cb124942fbe44c7f498db3911126b8f431c5fbc21de3f4ff669f49eebd22be117b11be20db294ba62983bb4864839d94a4f4fc597af9b957c94fcf0250488bdd839dcb39dfd47887595508743545d9e1f96dce6de74bbeb6b3ab39ac1a59666590935664a38515ac715bbdaade27ddc24b917022020c7375e0a4fe6ff75021d4256d21d821b579cd45af849b3b800e71a8916931052cc0d0f601e775fbac9504e589afc2405de3acba32e38f6aacfc17fa75844444d00ed5d3831cb988d8ff01185e3ce1ec786dc19d0c0a794ff160dec0f0235b900d6e20f7765111c173cddf8aa2977aeaa6828a630f6c2ef0243e23409f1d004d117f9975208302d5462cf532be327625e06bbef2e920001147c465feb9ac256c6739e03c478245ff6344a2af3d78a935e5bc7a3d6fa0742877cbbf54d243e38d087e5f88d70699d8a7338a5224a0f03911f677ebc2b290e32bd611b4675c0590b5606426d0e7857db3399e4529ecb82c3e9d04dfac424f906e66ba697172e4812faf882d7fa393c61b1dc31f938fea1c3955191f50c1e01e0c8d79b413db1509e65a1e1236f8c50d57e73496a9bdf8d6ec738b694d4b50dede4e45ec737c87724f7579ce7f7705e899654c35fb79fb11efa1b512c59d7e3cf177f662e288ad33674b1732a7ec7b03f4d320f94fc22f14d1ca3f25511131306f76bfcbe65aaf2f79a2017c82c01399638cc29a1f84d4ba75e28fade9f11b2ffbf5dd649d2d2b5b94afa371d6d64a7f550b7865043a00a81aadbfa74685c2a4b1ca2bfabc8b33a8b1880af7af6dfcdcc929b4cfee542dd67ed7e3adc77ecf2a12eabcb9e06acfa1d7efb4f20cd607a0d1c297991b508969efa2f78ba41655934b128ca594e8d19a24e3e7b00b08418606ec6e77fbec9a79fb95f93c453a7624a2f90463a8d53101b3bb96262a39ef4644be94093aadb791867a9eb1100984e7a5704959ddb8c8e510902dea42ccfbf64a22cfc5f7df288edcb55f4c95dd5677d18577eac049c43f260f47934cda1e69317593e162ab3ee5976d24830e80899cd36e89f34da6d8d6ebccde48695b4d4b17c094bc1c79a05280a3445500621ee889366f66436702b2033c421f2feaf0b75a61dc627ff89ff5d22da509359c7b8b99ff3b70aefc9118361cdeb4f2fa810c841c3a9ee946973fbd40a7369c63bcdeb5ed12c80b83daa57d378d4d777b3f17ed91e73b9b55ed01a8fd5e2add3ad5da2d5a42553ee21d9ed3c31a7e54d568232a25b9dd378ed14753f63b1e371b772d2c27c39ed5b904e0963577bf34e70a03eab90142eb95edb5aadd3e198725ebb3ac0d065657e39f8aef9073fdf592ba468ba2c7fe2731e44dd065b3b479cda88796d9468766e2ac0112007b462f4a0c681afe42b38bb9f52d4a72fc28455845b9a7ae984e45855b7d90c9ebe003099bc283fa9438b921b92a1256afe507e6cf5fb7ec0a83ecb751f97794c82c9fe4fb5acb13e972d1cd1e117b95cbae9c58a32f90d6494a9fac3d86e3037c4d52e3e6f80293ab81486f0b4e06f207e402ca3a606032fc4f129fa7daf86c407edb1d36148c22af9c14229a61aa02a975f312b464c9d6a54f682427c64d455336571359a5ebb774dfa4772aaaf50322be08f0c1622bf3e61b95b0df978b306f58f7ba186ead7799a98927dfd815f234ef632ca98412f43744acd332285d4b268069c6fc0be279ba0269ecbd7d204326fa3689852b7c67b38f1dc015ca5a88517a795ac507df3542c07f3ee8f27d05a7efa4112071104f9a04df964d21e03eec913c45d1fb38fa3c385c9a0446e7b93d4536067dff15b32e8e4265dd545d8185542b55502605b97f802c1c39c3b789633b74bcda84b39d0aaae2d2f5f4e7573cebd1f0abaaaa8a11afd6649a2b7ea1f2e536cf37e177e7335d631e61c1a5d740a7a1aa8eefa4fb7a9cafad3c3e2229e8b15a0816fab3e74bff8b23af09313dd93f24aba31ea3c3ce847660eaf23dd085a2f12daa908b8d4f30426bebbc66b6dd23c045567ddcd94595fd00c0017904c1d0c683f5c7b071d685cc8712dd05e64664b169ecb135a8fb10fc5b4f09a12e3b204b24f68ed6674fe7fb32ae4990b8c7ba53af28536bc067b7f20a32d31e3b50ca979d73c79b8649ececde1d9effdee814dff26e0bdf01f5ec55a718a7f01780a23e8392ac89a76cc321feeeba13eee9a70c2a53028df250181cd7a633137348a7b473e53aac94e5c55451dc734835847b428699bdde5fdd24588c986e7ff043abe5997a3614f33123f1a621b97b41ddf2ab38538d4b745c551f1dee57a30032b328b83e984b2e634174cae7d8f08402a4a8c8516c088efbbecb0b68e86f086cd3720851d7a3615d43aefb2d325f85479fec44e696ed1e44f3338a45e949f4aef8227127bf19c9fbc9745fb31efbc62b305d358af3fe34b5ae5c1bcaabb007d7c8f84ee5c506d6dbff36c4cd18ed045bda29cc5d46313d0951f7a739b775ddcb6ff4242f88a1ed7423e3205562d555e9b1b57b826aca334a3be134d5564f96c1175ca174f389135a90f41200a885afcc7d381b5cd8ae76fb96c7e3a8d18b9d292bb48a9aba96030a38a06ec54e00e28e92de89f8fe3c6528f6d2e07183f4088883b83853c641c9709d8fc4a0924e202885816d00f55d5bcdbe705485fe22d21ac90acb11a2b3939574489f2a60defcc488bc49fb46f4e4f09f64c10cc30d5ed4da4425f58428ffe6402e0a681cc88f5fbcd97b1fb01577076ddec2c6d480b6993a8543a48fe6ec621e36c46ea05e58f306fb5733ac15deea99f5da48e57f8e853e1fa92215e60fd9a52039ff0b811b0d17df4560fed224399046f38329fccb59bc0842049ea60311e7e9ac6244d292664ce9304127294d18e169c513765dd81fc3d765b569e006d441f0b5ed67c13644b29e09de9f6c11a894ac2478c5bf071626b2c6d688af1e6382c5ff1a9cab25dd530fbbb7b733fdfded2eb31bc042f5b0302f01ff4540e80638910f3589f45fc06ff6f719adccd8527cdcb924d20bbbbc820fee744e23468614825618180fde3661bd4ababe78d3c8c595e3c670f8b990ee685c0c6d1ef47b3e6e754ef401abfc07bb1ad7216c72f375ccc83a17e51612fae7c7a9ea73a3c83ca208b90956c1ca90956183fca9dc58bc2d8843ff1b3ce24566f3b68994839bff8564117d505cb23cc066e2e197988dfe4fb242a72eaac6f4bd40757c0cf6fc2800600154803e65083fa3c2f17dc9398253e59d36b708aa33f126ebb179500ad8a89f6b4440caca7e21c7606970684ffa28b4c1e89c999e86fdbf4e396c6aa5e11765a83d8aaa2207cc88eb48968b7081669f711edc56c9a549e4faa365c558308c2c82832a42b650d4a89cee492a863bc4182fe8e612a449cf5adbf068eb3f9e9b92781f93f71ce97165fd215d47418f449b4856113a6d7c73d2c05569f453d4b638e1e378a6cf87759a91bece424a94aa36e81953e077cbf9853e111a6f0e266808e63ded565fa9c0a3a77b1165439feb7d2054581b3884a583210bd2a3522f3990001804d2edfb0fa58e0da7182b3297daeaa18004b0e4eef7b5a9f66a384ab881584c0104654080abfad823ed947b7ab02c7fc0044b17d1682243dbb049a1feb81252fb97cd3ebe58dc473e083003606932fcbb4fdf4879fcfd29642210fa586f3c50a5007d41314160e847c48f6a7e56751ca94bd58c1dc29134d873effb29da623dff01d337bbe21dd1a2910f7d54dc2096a4332e060d62a595b2f1472e9d1d3ba1fbfffe15b6adff65b0b299afa5190e21528a657a135765207f1ed9aa9264530d530e4b21f3a11a73cb366668c6a3ac03928ed9610714620fe9bf1ae2f7a678f73a849d4fe413d0029539b0d97d52d8d1208bca9a520682f01abbb00127e44afc4699ccd72e1ef4b882262e38c6b5e64b7008d7701993e458f7bf065a373d21ab9a8606ca4b42b8d6c88e8dbb1c9f397ddfd696309db58d150e7082390bd835848081da6904e47f36c020c8e1849a9c57dccb327039dae493ac1e9e798e3652472629c3e4add64023da2919b35192642855fd47c3e9abe380719fb4d187302875148be7ea91e17b7e2f74cf79061b269ba7a50bd362a9a6c980d9698cb9e80c0631c5bf57e93cc99c9af34d426e9de74a0ca855b053fd8043625b50a65f40ecd3e8a84d15d773aae04ef757c23be7ab8009b223552ab7ee5cc4e291ad9ec42a4807b161f9a248e0ee7bf29516c7f0d005abad974110fa19bc8df2425cb8756da037e388c3bee7d34f71e20498411605d137e8ef785beb0df8721d48dccf4d63467e7e9acbee3169968c27c37ca5da4b6979990dbfaf42031c971ce6c2aefb7b5abfcd153281691c030285c8c96db39df5390a2fbf2c759e35467d3019bd6fd0396cbd800280be872ebbb7c5f8f97e5ad54bdbf9596e39792044bd96be0aac11894a7c4651d33bfdfd8a00932b9b147cf551fc4407a16a2d45b06357671dd3e150449a8dc2ce7d169d58cb332c47896c37fa2b8a111ddccb64ed7d66ce7c938d04c9a560141bb608c964be9d177d2863c8e5beae006e5e49f1d531b53d5e9c64921d1a9e9d25e1c326fe286b121983ab7525eba82043fad774fa769de77d6410b95137768fb752da8a2d24186c5602ae0c55c0f65d1b6a75517ecdf81a672fea38a073e640bd1a8b255032a4bfa9b18bdad242825d533a0c08b2e8e004649ad52ced45c729d3f5d0816ac1e6a9d5f89689aa5094a5897f19f6765114528f081d58dfeb22bfff657c1b2a77063d55c7c635eb6fb4760043cf372786971420335217be08a29dfb2ef065862d264f0a8c07b4cf2825369816423755731c3f9bd831d425eece486ac19ef8d958d4b080a558abdba3508bcea113c972d70911f6802a9cf74d090ab8343564fb14d144eb2b890ed85a17a6c01c1fcb0ebbeb11364f65b8ea42ca7e6b4526091518b7c9bbb2af1399ac47a610a9433b13f5b87516a93595d02993c6199a500a6aa14988a46ddf2a9ce5ef9537ae28c411db13ffd9e16c36dd7b8c7628b8931e89b025311ae5a7cdab193242de15b5ccee2386a6aff41850fa165089c7a123c2be6fb4c5d41528866598952dedfba9c39a92331a750c36587921c2bcf2d16e5093396793b11bb02890c38cf79c996a98bbe28fc20a542403c8d4f1ee93e113abd93dea88bd5df4942cec28713f5fa4f336f6bc19855eb69a8f93e01c83e35c6b2892b329b1095bc69709c91f101cc23ce736284233cfeca6827b7b208b680fa1b1b6cad75f320e130c3bf0b8274d17ac4968b87250a36a8c705c0160e3670cbc6021224f5a1c27743f8b4cdc76dd287eca4e80199b48e87be71812760235022d849ec15fe4c01f708c4cea98b2488e59f357731a1f175e142765fa098059d480c080cec621157ce6e40d2a9cb10c017ddca2a9628ee8862bd5e741eac6e528ce6d52ee51072fc2d3387509bc11cfb715acb5e905449658e2bbd26cdeddf4cf7dcbddd00195dfdb9450b7fc1b56ae3209ba573d4db0f6f76b5755edd05b7bcf37e55a818c9a800763a951feb842d1f83f1458825a0c1e84282df1c0d8490a2337f6c89039dd12e89804445639c71d647e1868a9980a739a7bf5ee6a78309a8d80e82b059c4d530e073732e795872ae3cf7aabc593b795fe007b93a14a34d1d872eddf6da06cc317ede6b4859918c7dd76300e61e8449f7b3734cf08fb2cd9d9fb1de2d90616e3411e509c0b8fc83d9b67d0c3b82c3326a9517cea1dbb558ac77b4be65202ad9c46c3744100b3fb307b0ce0b36d82a43238e8cc8f7a2058a3ea40f2ec23b71aa6437a4e4e70ef1a3aaa8c953fe0ea76228481e2e385306e0c646475c93dd5b88bf7d5d977edd25262707e99028c696f7f5fc83b6e538d895b7ee2a5c39e27c46312cf466859b0573946968075dc037f36e45152caa587be868c88f93493d011451bbf312dbb3375937f0cce6f2a570ce21c4531f990069cebe74487a29279536fde68949e45bb3a7578e1279ab6110b7ac6f6c0fcecf5f86d1b3982e4c22cb5b99c5eee93cc3b558bee97f51f5daafc4a73e8ad8f77b1bca7de39c316ec7038dd89b930a5156ea3c926b3324b4b7e144bc5c0501b0b8a36b16e6d443f61fe25587ec50e6b952634641736eaa5fccd0b320949b81976ac864db2b97dddd8419d0ed30aa7fc165d13ce1f42225f986155603cf5da87cff487eb8343181c6a73e04005e544ae86af30a831f580e5c45342a727d5e8b7af5457d3474aee0cc949c76da1d98bf89d6ae356a846ee914ac7c8cdc413ab0d66934d8df69175b32ca6a4a2677b28d7674baea7dbce52807449c7b5c7827786abcfbd0c7f29e57db54ca2d5f8565191efcc8e874699afc8ce92d31ee2c91e2b73984da7ef7ff93d7b7d5f64bbc20b2a348c0227970dff07eb5c4e5eeeb3945f9d9cebf2a995fd5b8c8dc20ace3da9890675621aca0577c16f8a70162bc9fa1f34ae5e48421d720c18f597499447eee2d778ceb44ac0650b066ea471cd385db6fde8bdb1509f28569fb02264d46e626c1f44002457f3ed58b0c339a969b2cea11239a994a4290d72122ba793bcc905595931f3817b04eb07a628986318d66212a1eee76a86bfd80eba746530400c10f7ce06f809fe19a4ff85c9b16698d9a9b2b787576d6f28dc68d6029566c7d8879ebe45163807cfe467731e4977053800326be945fad8f2ad3db494c506cde62d553b628594df2e3842087a844df2d2a3b9302c40964c89723f7271af024ce2613ed9f98b82e9a9d52ab6657bc93986af2c43fd066b95648967e1459537f4e13da18620173262790292ad93f062b764929d0cad853203b4ce554a675f19d87a1d78c5fb0100deca35fb10fcd9e1ea14addc61f1df0a1ed6e5ff55cfcfa9b87f431412f4ad0ea3b869c1ca366e590d01a2d7c365770fd0dd640c1cf3b857e5603ab56a76c171a8830922e6c7f51e64a932b17a7ecac5a85608271ce49e1e37f6fbc2d31b74ff01939cceaf4ec0bf1711a14d4fc72d4d978627588aa6644633f64ac1ccdbb401937b2795184252f9fe19f54b2dac4aa3d31285edec33a24ba44b8bdf004b0ff135af0a39d704e74324bfa9da2ced6e4c07397d1b7e28edd56572813fc40087c8c45ff1f53f768a9b84ddebee1bbb333a254313b353f6d9b95c04643b302e393820bedf7bb1f843100f1855b397b9a25cb647839188878fe22aa61fe172cc3663694d23467fd2b63bac75526befdf575d132ce11b2c25f63ff5d7b78fddf2a8c80e236669f4830fd04c5f2efc7519e360977b5e98bf8e4e8240299f5b869de5504600eb7f9069dbe1ba8e3d3a6c9319ecb85f3797bec9f64d3310cb879a7c1613a411a24c10aa1050a79a46f3fc601993477abc9e207bbc77da67a4e07d1e0b84ab6d9f39b0465169f583e1feba5f485149e4fb713fc3ac52632bfc8f6c5eaa9400014e3f49f0de1f5aae7f14f56de8e663f9b058b48907735b8b8207b5ae51f075da920f1bb779226be71802a5ee8752970a2ac82d523bf03aa6561fb27e47ce5c9d3eccc635c340ff028862cf94c4e482a06ec710a3a7d078a4323fcae106c1dc3eb981ead57e73e4935b097f082cd373b6a035756b146faf37221fd5b5b4b82b939481813e44d91c491e889a51470a59159431959ca7377836352a48abc5440cddb74a7f48d8df44fa71dea37560cf841fd678137b252670d5d67f57ee5b15c198eb76d69f37487b7fb6387e096863460652200eae00d0bc866b1aa2751b9467064a9dee6ce3b044cf48acad38425173dc69627cb44bd7acf75d0fa6088b02cf0313e8e4056c9c70dfd901e6d6d53027420573ede387f4f39046c4a60443af7f55895d03626194b7b59a3fd17210a6dd171339f88eea99020e3996272ae2c1bca7e2d1677dcbc26daf15998b00ea858cf520e7d3628ce7fdcaccb9480f18ca59a1b39d7d78e46f08b99e7f0ed55cbd8cf2565a2358f45ae0a8ae2e44926dc24dc175ae7b08c8421d53c5d8d3bea947145e0d05aeadd47c34b11c5b4112e7ae8dd828f318e9845bdf3d7798e619f75e670f46f696d8154a6cf8cf95bdddddcdbdcf214982e727a8e91f6157365d0b6f7a786d76414411418e2e5c3b097aa9316e1d530ec82d8570a7d4c990940d2f8c83134e597a865f2cd4bd093707f741ddd69bee549a8e8614a391b671a5cc0f8e20405aa01a31fac02f9668097b2aab608d373fd6b0122f37b8cdc74faf980546aabd8faabc270f0b477556ee68c6f7abd3badc79f906d00b26a8f7e85eb46d64955debbc9d427553827aa27a811c53c8f3fcd9bf74aa028c4e49e42112afa12e430f7c1fd8ece21c028cb02b90d8acd923e92bff9a634690ebf27537d08e468764412313ba79e5c532491a6887439764fe62a6eecb59142d5690de4e0db6a6b4b8084f79230a521c2890414f3607e51613e5ff67d9874803c9826ad000cb543857b4c2c9a6b22ecf4cc44e1774f1e3c116acca25a92680a1ab3aa704741dc6aacf70bd323530d81efd2a429c9bc8c5b4dc763e4fa947969edb6843acf265918b047b6240368df9de10d49fa5170e8a44774f580e20e29c25ce890b849528045ae8cb51e466289ef828c3bb0c3cdfe64fb7736601a82252dff834929a589884f9e938a7980a6ca979f696afe08523a94e8809434ac2f15bf28bf056285836a061f22d5c14177078102438233d69696dd5eba1353c700f1048500d977ac4afa41a5ef619e8a366cec516a8eb2ee8016f5250ac3cdfd93f5618be049a60986b5d606c70cb9500bc23c5098a065e52fb6cc9ebff9670c4ad1df7a947acfb173570a0e1d94ccd49b3fa27694ed3658bdda5409972110e5f809ba3d502269214af8b889ac3c5e7447200ef62b2a5378b3f0d8c5956df668d473a0ec14a454e537cc553c46f5317ebf077d1ccb9031157aed99079d4aa250b9838bc22a4ba5f7f7b4c0abce9a3d2bca16c9d082bd717ee8c04d7c31b139b48bdbd36fbbdc53794d0d9c0158c5a47eefb4d2a5411c20f44c6549fcaf5a4dee0ea43d7cef305d842c23e504aa391d3e6b944907da4caf199fe6a1bc56b58ea3534300bde72a69cf064fc709bbacf05caf253a4807d993d9419cdc818978a4d83c8aed9e2551c65bea1046d315c015b54a4c1839ca0c589d2e60a73fa88f5277bc50ca2d093dab18ed0cbf2c2bfcf6e1bd97847e4265720ad38590abd2ee91084ab4e08664035bb999bbf51b9067d327389d3d04f6f4a4af677aed5edae8a30856fc5c245537a3a39f736cd2febb659d83d298427fb2d60679411f81cbd6fe6872562f87352a6950dbacf144741b61dfa1a055308a394a98557b786ce34c9dc92ecfa8e0ec7a1583c7525d07e725546d57e4c0af04ab40f3fd77a46b20cc8ccd7785f3290a63e493b09bd4a3ac2a6dbfb496d860ec94a5f0c5262cb4ca37ea33d040476eb62fef0e33e6504217aff447355116f530e4f10d6afbfeacc885a939aaceb2770e8c47b4ba37cd8dec43a68bb1caf8409c35bd14a422c40b8e40ee2f37c333496ddce392daa459b32822de3a9671883359729164382ff87693928f8705bcdb2f0885e04ac15fdc6a02307228a7d3d5380c8167274344d2b080044aaeb83072e043bd950744611b921ac7fea5f07d4f95b5078c04291f09ec4085d61fed2f48e571190ef8a0ae2e29ce606321a12e6279bb8854db62794196d7e0c980b8db4585452e4135a7a8f70c60063f9c23de0145c685f0d3efa21ff125daa29d15f700f0579b7504d8ea786b3b1e91f3943848683dd92f4c49c7057260a422c0ab9ce7b63e2c28fee139888cb74a0d6e32a5f50161bf742d04df608358abc849f91135db49be2e248f60540bf2e16370fecd131419919a3a3116e3b8591597ff43208c7bcc782ea6fbe00d430cc88e9a6de00a27d8dfad52e4befec89803c8063a6e8fa7872ece5db49a9ef08a81916eb225bb36ab732ae7561e342398653cb42dd5a9eea8af99cd55efbcf65bfccce76a4ba25ab56a166e269b81dc300ce0ac4d072a43279fb149185f095943c27e5b795eb92d267cd055cac1dd522e1de851c60ad565934838119f357380727c4471dc855ed716a7dfffb3259be611f792abcb6d4248238da64915b5973708286911fa886688a6c8d48ff1d6a5fa42cd8e472aaf753aea62266c2bccedc9f040f672fc6eb8051ef8ca5a86698126ad35d03143e02c921c4bd47b75f8a9fa44e9fcaaa180abfaefb2c3a2126ee506bde01517d6782734c47aae67a2479a4f4eb1b08d9a527f06e86e3177502896383fba59f39ea5736892591a4e611714a235a29dc62e46f5b46e13e2cbc0a45d82eb09c2984c457da4348e8f3f10ae67df1a004203ad317154f7ffa0ad63e11b24f4aa036d472abfe0b96d0a80c6f8934d8ab4229ac632ab8c998cadafbf248b4e9f908bc65520ae78d22d79d4f84bd9822ca221828894eb8bbeb3f7a5d6b4defafc172f750baa87384586d216617958f9f572dd944656b99ff621cbb0aa3e2f489a60eb1b4b4911f7c53c858b0e0cc43e935c15502f1fda7bfd2626feb5f7319318d2fd27c2747ddbb7d9872cb079f4e9e355a5c5a12af83b867602eafa6d68d8d16ff3e6e7f6f88173c9d942bbc9cf811ff50da802a52e92e8879c09021d5d0ef3a6932c43bfd51dc268530866e12b02e6bcf47c3afcb32c20c866a8ab722f031df2383c7da707e0c9c60022ff9be6349dfc96754023b4bfb9cab8d29eac262778f19a8d00486822ba91aafa1cd51d769b6a7da6f621de1fd5f5653c805962e18e474ef5db026fcd403331fba8e6bdad0ad70a01a0eff7dc66b52542839338fc2b052da6e4752ffca47e460e396ae97de299d7bbd1e2e7197c0450e4fd0783d528fdacf8efc23d4d33a1da4d7bca91379b1cd9528ea3be8d288ebe6b7296d3604fec87792c4231a85623ca5d308d943f862a501740b0c8c2bf5e087c7311b3e07d94bc3ecb40da6613aaf3c351f37359a21a4a6a9db7fa7856979f3b523bf3d2a2660778cc01c5f901a6bfee0242b424ec850f064880aff2e2e0f0f8881c1b57030a0f5160ad0af1ce5a3de819cb5fce45e4affcfd0f00c59503332855298d2614d7a0d59cfcb274cfc25e8b3566dc6c5422345a90579a8e7a2d0ffd1c78dfe75c95d86c40d5eb9b6297317a99faa9fe57c09baf844174289bcea4928bf35cba2eeb305b6e6a9ef8d09fe330906fe9fe858701f02e1e398497c76b7667a68f2694fdfef975207efa045454ee11325ca78ddf6dc3398530e74812b5df96c97b1ab387d28586fea053e1a49cbb068126b5943f43101a827f859478bd79259188220677ff46e39f1110049883be2b9dc682f4ceae4353bf578732d46c19e97cbd5740322a93d413158aeb28a3b4b4d41fcb4eb08969cc5f7fea6d478ce2af7e8734a38eea68a7bd381552009efcebb60a3f2dc7ca0343339851ccf3d49550a0a48e07c8479deff33847faa736c0d3e3b9d2cffa5a0e7713f07e8135c62cf97fe8c49f2c34d49a4153769a70d430946e1c4fcd6aeed7f5f3ff100a1b3c83a0411611f60ea2d25bfd3a062c59c023d154d96aaa7770a2375bf920cca416dfd67f3507c880ada4c422ae6d7869080957d7b5a8ea51e299eb0eb183dba9b21dcaca116167939471701b01c95f1c50be78362448d5af059bbc07cf03c9b3865c9ed0f29dce00b92127045c0b69c032adfb5339d574643126c007b6838a01905fe2ed9ab7f8df6c0f3359681693b79d2eaeb2904ebbbdd00d3008abbba0438888d28f9e3868d44109aa3c60ef842fa5c681b575938f41a822255868eb17ba7c7521efa07d7aaabb5fedd24d1caaf05ed39896cc6e4b4acb70bcc330eb13339168997cd2291ba52a03a5835c5547a81a6c180923f099eb25e04b1dcf9882d71d3ff2cb245ddc894e71e965a08a7bc6d8892c18c3fc2bd4d6655191d9833b42e17615fe58d2b1df5664c932cb851ecd182a9cef17a449b63ee8184c0f0030150ca22b4ab09c1dfdafc8b14f4a5ba16b4bdd7516940d0c4d05d66c2ad5fa42fefc9202a22f7cff04b68233334b1ea5f161065d35cbec6891dbe9e3b7d9494c99f4504817cc1ea2370faaa8d1c906549cd644bb7cd0ad7f9fe467b1fcf19e791cb69484d9ad7674bfe8cb8a2224c98bcfc44079a159482913ec95ad9de9ed817b5b5d54f24fd69dc14301770386922aba4096102f785b833549e5969ba83f1bf2741299231037a7ad8e916597862761ba574163ecf8c4ddd9edd77c8c4693f8b43878f4e6c37bdfbc434df14b85cdaf9d3d34ff8c4272d77613b15cbaaa102c398265ac6b926b53031d438e05e2f7b628fa3c0f08bb28e66d8a0dbc7064e8be6d357148d31b62359dd3509589f1c0b272ac323d4c5ebb30ee6bc81b682049d94bd5bb49fd1498d057973c19aa7ed9127f123ec4f1cf9d56f281214f650edef80690c9a634474090deebf1bea0d66e120f6e178921077283dde42caa8ad392469cec1bf731ef5507cf18ff37c83a20e65c0d0d9f6ab602d49b9d937b03ad9114fff8b361f3be000e34ffbc068d04db680ff892ed29f5295afc65c12008efc12d405b694c966da94430ff8daad32f8ad96563ab203569ce415e53612876c609db8eeaba59549688571cf4be2eb7baea893d6d6f1131188692296af3e6326a63b36efefed6a77bdc8bf81e19f7fc080ac660eeddaa5fe7e76b2810d5c5f6e6a2be0fe8466ae47b5120119574637895c1b2bec2ab7178d4b3090758985aa333424aa039d00c91fadfe3644baaeca24b6745ecfbd47d7c313c9fc95a84946ea1e51437b5b75beabe9883411a041a83cfbb43c2e9945ce1be6ee9fac7776d2d529073988a2f0d079832bb155c1c53169a839f4a447cd8ec19ee0861c7116a19f461ddf0146a06911f8cb42739067437b9f115993a3a2367cde7193f3efef89729e820c220aa035ce4afef8119d6ca635f9b96ac8de9b23341ce4049d442c5635e3e3aa17e0eac51ab5f9e7e6fa5272b64fc01cd7ceeae4a6597dce8e5635a56be00831b5b408fb74fadc1e9dfb7209292c2124ed4c6d86a6325453946d7f258d235eb4313ef38aa31da98196a0560df23de0311dd83b7cbb565ba1f65a61788b5461a5ec153abe68f67fc22014b8d396b0843bef62f29643d2cc0823f98b7184e4d6d09d5e76dc1387926efc3209bf559f4c198ef8d88313a2bbded49d31ee95f0739af620712e35b78d2c8447cbe77a3ca517e61dbc2ef448d305b81533601ff315025a4ea07af9d07e864d447343ec14d6c3bff5c753fb78b640bb80182f4c303484bb3aebda9f8057096514eb2a2b3f9f6e5cadb3cc1b02472cd69a5a7a2dc28c37bc1bcdcc03adde1e92d743e3f88ee15942133dd247fea3a93ad059ee310b384a8afd0967f13759dc4802c741793fcb3082ffafe6243b42825945690e88c1f524b352990bc94a672409997877060f58b7a86f3aa7180fa3fa7482b2207cd8c0d6ea04f30b72b2496917c8970dbc5e18eed1794ab06391b028382bdb5e4208645ef35aeb3e8326df61c4464d83c733fa19a133a2710c186aef48dddb4449b4dea7c95be6fe8bfecd76a3068818890aff38c13ef4507facbcccd7b3d420a86b4385d6056c30b4d0cc1bf2ef96dce5e9e109f8dd8206d52fbed4d6a0b5ac556872d457f6beec600a41816ae792d84a8e7498b3ad46c74a93e9ede918ae8112cfb920b5d1d395cecf81d68baada99995c16959974ba7c5ae7a4e0b299eccc441a98ac4dd422cc348dd69d184fd5f7879eb2922c81566b7879ca2afab480a1c970a6147d8082d00e4eef63a3b8ee58f4f3ac19d472b5149c7f928dddce17daf1b6f82e9c7593110aab68424c44daa9e9f6ce85e5cdbb7e787aae1586624872cca622886d7431422a03df8c0f78f48bd47e2515cbac854ff07d70f14485b7141ee03a6c656fe67985450b33d87915011e4ae254e0aac4031bb6bfe80ad6677d5ec73da857d30edc534a53d0281a83336c6b9e5e69e333dd2bf3048032e626f85dacc7e6d3bd4feac41af82bc3068cd240ef1148c911e90482ef160f394108d0333024a78755d26f3b633eac7537a1236d64aba4c8e79f4119d5fa2302c30f0bd0d893c50429894a0b95a75d3094cec4ddae71cfe6391af2ad9c218a7f947f77baef64df1def11199d949aa5366fdddd38d7c528d0210c57ee5dc1becba0a04355942d094334e45a4a918f7523823a38987651510b8bd7421c1a39b02910f1fc022ef029b624e3d76ad18901ffa7695c8a7d99378b4c72a314693f47aa76ccb6d7b65326e8acbb84e31945ecda656adce78b03ad142e6efb0fc59f75735b969431033d2ca9220d1be6f951af2fddf5c01236c833a75632e8801d63ef587a3a5f76084f3c35802814ab188a954316b4b18fe9627140fba453b1a69af5027e652acffd062d8a0b15e141ded703878f6a33b5d98908c7ec538844f3cc5e11eea94287fb01954b6289c276b8e403a390bd0ffb97b1b7f88c5fbd070e0b4e9d489c7e2d89ef1e4e0e01a521b0ece7b7c7a60c7641d9ea6cc6c9594fd0ebb270b83c56f93023dee21c898763f51db8fbf265a92e57a529dd4ed93d8a9215f8aa1dc0e1f538a1770251b522b82523e179cc7298dfa60dafcd213e381ca7384e2e3fafe3a9372d28e7e0154e8f1de8700c870f0fa5608560f02e2cf175b37c57f36c6ab365e9afdebaa0600ddfe5dbfa4d17fa347bb1b198794b80e1452ed1b54322b2fbd1236c1dbcdcf65518e35e45a8497a9f1ab4c4da6a20a1656de294f2015435a822cdf40c8a761e9f1a7229b31d7aca05d4c825a2a054a35f51e53b66729fd2283efc06a24ad12e64091d05cfc92cf1d15204cde2da9265c5c74153f9abb02af521ccc8c471e85fc2ab4651db953bfdf65cb3ae8cbf2bd71ed316b4de74d75d9313f0ce2ba60b69cab9717c34198b0742dc1195435a204c9059349ca229be8b1d7506beb812d7ff2b39b49eb42ce4df1001d27fb7d674f734aaa2e2235f122eb3e23cb670ab8556e2d390761c0c79de4ae348a9d7ab76eb7ed37e4dfbf405e77bb9c4060b96ff847624e0b70e1c3d8d8fb70e51e2c9e647a422dcc31f756e9eb0ee6861b55980d9086fc1ddd9f1ef53ebba8d77fa6dbfdb9efc713671c31242600240edd1dae194913a160f6681269b59b3b1e34cb1ddacffa48e6ea8587d4768ec8bbdfe7b87922512e69636ac2e7047952b0cc5bc035410769c5c02af9169b49e8e542bce065845ac526fbbe1df4e8648940e111e7ef9d7e0193494b2f6278572fd2ee7c606e2ac54118c6175a44ee2b5447ae8f26c5adc3ed7e2352167185bc741b8f8ba92d319f6ae93664ff4b2507b13bf0cbf7f08f5ea0e4b083a30580a8e9ec1f94298e56e9a03f3bf19ed39070df8166fa7848168ed95c2fc2f2ea16f47931ee55c2b42f43d2080a99b2bd1ce61f95a0b31c40025eafdad4abbc54f5100f93a3f946eccb9b7198ad4ac409a4157f3e89cc31c9fc1cd12a17e9944a59a3e1c9ed1e1bba20927073774538c99f95dc0d4f4c39e1c9270c125f904d54b6b71d8b85252f551ba85e3a4919c8e3031198e24f5dbd3c8aeb06c92248871095490bfa3724386fae6b452c6f03a16a5e57f640b76df557eb250e6226320900dba0414bf6785f2214f0f2e5ca8a31c8434715779a56ea34869b1ae6ac542d914fd67d51a28ef97ba57b6cb10eb96e2c660c5d1f1f2654f9c94e838cada08d6f6418a053771fe7c5cbc16c0da79a5cf938560c676857ed0388700ed8164b68b2e4d01c002397490e06f5a80894c8336e1ef0eee1a937c5e3751da094b7917c4aa149832fdf49fc0122e32e0115ffd585ac087c7afef084bc2c875382750f7c0174d57b2ba6419e6da9ed79eb7ba81624f70769452f8e1a3595198f9f2e2fe6c7cf78705c2dbd2c87008ada57bb42f20bf41e846fa0cbec505c35ed3530f64a376d4676215197670a32dadd709b053cb6a9db171ef59e595bcef6898a46d36e055233b7b622537e1ddd2541c70de91bc87b00ec14053103ab8a7c01c0630387a47a17f2d3de3178626f6f21df720309a0f32a8ef6a73f3b7799a652a0589d7959fe11007547217d8a3046a4a89b7ef17935424fb9c3b22a80521a6dee2ccf7fff46a31fb54203a0755cff6d8318f7cf89f657698255a2bba87a862f59546077da6808bd2f35a51d0aa8d4193d53566034dad2a4574a4b423ae4303cb1b6daa00c28023cd4e1d89d45941c4ab32c8384b26156adcf67189d4da6e4fbe6ab7a78aedccdda79f6b001de5ce8874ffb420592e2f171deb6a2e61e20988af1f716c90ca76fd6b359b87695c47717f1837086388cba9d39491f0c85be666163df1e914699996c28e03f2de537d51f04cd7601560173b623cde825b1fe6bc03ccc3d475e3c504e37f51e048d86e578f3666937d26844dd59f03cdb83fea1f2e6e1e29e1f263261b8fddd9ec607991fe69533269920dd63fb6b7d2910fd60e2f837925e97ea1d4431c84d1c9357a2e5c3daf6642d6297420cb3c0b0d981e81c7c3458a5c985568b85c3061b2c5119a8fbbc913e77379bd6537ce80d05928dc210e53d1d64fd1544d9bfe28b809c87883e11c3b5a9c302442862211cf180077636f90f927253d82ac167505ce53491b91f116960d60b2d5708ba9a03f29d2cd2b1a160f19cd66227c3235df6ae9fc8c57edfc830ec551ff2dc2cf6b45ec67bcadb7f58124b0a3ca1e3acac5b61092b446a2fb1312ac40fb6c7d626dc0573cba9ec665a4550639167389cc58ad22b5c85a25ec6f1271ae7b87ea0587a8e915383b1fb7fe547e1c5ebe74243ba337aad681b18cc8ae786f88bda796bd246f368d14bf24db57fa8f33425b10c8998485af9bce45c60c938ecf72cc59d49bc79c6e2e7bd488354f2c7e816ac27a3c97cf37e69abab35091dad77c9297992fa5fb56530576ce9cf9e6484c8b97000dc97db57b010d447ec15981196c044f016f09b105c8dc893ba2dad4d38f27dc29e821246b90eea5ca5aae38b04d739b384252513ba54eca41e15605d83520c0b1f36b4f90fcd660842b272d158b53bd4321434c8cc932c0cb85ec84c60e49c521ab1c09789942ea29c6adb77c888a90252bb0b09e994e68e09915737a716896cd07c5f46a8ae894ace98d467abc1b3af10f3974b71329158ba000f309174926a7feb0c9b66ca5fc2df1c846726a606157143512621ee4b8a6323a527ded1fe34136067d82b50357e718b63d8af5120a7d1d4b5f410d595de97355370112daa6fdff35b33489f6da2a82ebba47158cfe3d2b30f5ec628c353345bc245b9b0e693979adf2ded57fba0d9f2dceaf124786851f853930b965cb70898248c9d1ccabff8a888454e0391f2ca5ebdd6d56bdbc889ec9176bc39a261604fd6ffc15d38430935d701c819cc9c3a67bed52a91fea2b90c43bdcd71d7f75553bdf754aeb8e2f1ec837a57b7091dbf28ab70551de82e339cba1c36dbe80bba02dafc5d7b9e5f3fbfa56dea6660a55cb8d4f42d0bdc6266f14275586107d2290d8a3ef77ab11fdc41bdb888be042025d737d263c5e3c1bf3608b4f8236da65c714be0a629d9f56a25534aa878a5a9ee58518b9e8ea6fa9c8e787a5d076320a2cc4e84e5f3c39bd1eb303577779faff1ce1b3ad48722cca3a41ca9f26abbfdd64611a4ec6de026e148ce64e16440ba7d96d79d20bc440cafe10d866cb1cca0035574d98c31aedc9be6937c9da5c7a9c7ba39ea16ef880052f09b45fcde847be01cdaf47cd7ea61c2561753c9d2c4587f2aca11684bfd395ba8079b90be4781844590971bbf5ec1f7bf9ce7a7d0f8a7e6ff174e6b90513cd5a2a86e02d7ec5d97763cbcc161abceb7117a7ff6ad849dd01b24fe62d6a5788c8cd1f3dc583535db0d07bfcfa15e31480d8bd4a82c46c1ab4d2b214e3fa8d3f10ee76f485581da90073f26532c0ad2bb0d7c29e4b9c0e22702582998c12647a4bfa9981c64305098d55847e4f2dd4c0d430d87fe3e6c42aaeebe36d95f8cc4362af161427b9b0467ebe4f975417fa38d166419721b91e8c729db89282c2d364fff72791b3aad7d14d793be222affb045585d0d4ac072d8492fc11b8d0cf28bb666e5da7a09253fc9840079d62f6d58984c448c6255697c23779f0da65eaa4fb589bf2b6772c211fd9182f940973c77f39d79ad7d230df590008f8a481ba3692c50fe15a6d84641d5f2cca8d8c702a25a357b97a8e2e3e058b1bd404ff9b84205be1856f6f38cb1377479d497347422d989dae33c6a72a6200405f9ba06bb407c29121ae9885f05466fc82b525e42160d0bf73212ed2e549d72cf279d5a98db05819f9f2b318e339ebbc3ed66e7579e7d1b99e2635d077da579ab2a1078f23b73c56379103df029575452401e41d811818f6688b9742715339bf3e0de39799b8e4b49a60f4b776ca3abb204ce6436bc3fb86d8265dee4836f3626a5a3c5ab8dccc5dbac3d6bbc03567cb8f36613637858fd0846a10f5ee4bce1978e10f067a1f5d791e24037d53e418cd284c64230c0fa809c2a3b9b3b948c881cb6a5af5b446c58da4a48c9f298de8e5d0d4a80053262af80b47620ebeb7cc8bffe1fb9f5d386a8288191a47232270fe134c1efbc326610f354b9f4d5e07ff9bd8f1848fb1b2cc8d7c084820d358ebf3808c079bbb92e71a97da3e4c424f396c36ef13b906ba1287f19e3cf4ed3e6bae5c3a8b76aedb58de2d60a554552abf4a9524591e09482674d2b038e4bc733194ca593cb101670ddc3708904975f4179cb42e162f74ba224bec7e936c3f8e5c6210094aee7aa38026221e3b643f2d99504438d5c6797433310ac26fdb65a9962532eef921b56abab08723dc98ec315c17c95958e0c1e52bd2dbb2a0ecd8f946dacd18936b8969da3ad8a507898c90b3e0e55790757180bf708b06d07e669d02323128750adec9dc31d1decfff0cc9621309b1c8af42449edac5a00af1334879df2dedc4ded2a48aac691349f723526decaf5d4e9476ae38847d65aee05392a9e48ec669bed20fb51c123a02d4fed4b20ac14128c5fa9148613c2a87472cbfe8acf40472f861c1f19591aa5a3abbe9ddff011764fb9c6fc14394b2aeb19498b66d80fb340e6df7a18ce376df4bed6b561a42e73a427a6c647aea4c633b31bdade5f4696b8a871a236b4a48aaa82e2985b594e5454465780b053c3ad1728ded37d447ebde31d957f4fc7732a543e52f248322738966702cb05178a592f08b5f804e554185f7c5290c97ad9f4e1ba3c0d627db4192bb8cefbd4d06d2f0e27a94a0987f249297dc67c545fa9e41926ea0bd4fcf42e1eb0a07231815920ecf8a9acf99a87ddebfc85173995005ba361ea93726b969819b64cfef371997daad3c74282005703ad2ddeb8fb633bbefe369bb5590bf5980685a23f842f5d4010ed77d34d4e2957a9d64482772608eda26f4b82b0aa10b6362b2cf04974a73ba74b5c5f36c269ec0b18cf6c91d41a10469cfbbb020340e5e5a74dfd73524a6b7892d4902a9c008cf3fee5d34b299d8e96ea8ed43ec2d5806c0b33147175685e8b3a556bc83648f7501ae686c1d5fc7aa971ef11f1c59985ebf29732a79497644eb39e34ce93366bc02adbc8136096296667cc79d7a921a1f2904aec277c3ea6f843318a7381b5adad14044b1e47548f1538bed24c4fe433f76aa759810540691c566ac8bdfae6873e01ef63aa67ce06ef15bbb57c808799dec065a5ed7db7c6ca463c5000b965d902dc0aae65549a6beb4c947061d5eb2aa0b80390657119d63671349aa6ac09aca09035ca66e07f8cb7159abd5918a83c7d51c2c48158411aa804ff631b616f3270000dc6a75781a23bc376cf8e6597cc4a95cc6aae746d0e87ed7b26748142c17bf5c0af1cdaa7ecbf007e46878ec9121cfd915f27aaf3d604f18f54d5c851e6628e086e7a76e2e6d65514f510681df822fd9af8b73c77af5515b9f1b9886b0b2cad8aaa8efdd3eed4302c3988c1c41d028e63286653260f5093fd67786fed7689b68ee2b12978206677be46080db2ea14d70cf27afdff0b3fcdbbf84a4ab0ee6c1750d58fd1d4d5add5950a3e957cbcd2bbe4196a37c2091ed002fad08aa8145c50f08c5ce405fac7cfc4e52967ee022e499de0e458145f8dd025948e58d1e080878943d97d3969f8946ad5d42a485fe581a902deb88eae39b88dcdff55bfff9a1f3adbc3d0bead5af41dcce5b6aaeb69313d81d63497ec8c8f5040fad1305af1d7602e1130b950e4f5dbd3e4ff4d05f61845d55c0a9de055c88f5b8177c9d5001adcb4ed10ebf76a522db49d9784dceb5b79297d6872bd224a60db0bbaeb73e5f124d94d24e3c897dc4d9d68ff26e1ca9bc73a33bc8e06f2e17c4d8478de22b1e60a1bc3050c8b3222b236568116273c3a65012056d24f31c7a669f201ce9c013eed77456493b0c858a55839c21952c186547ba660cae112588178d9fc43ba4ecd51784a90d46fb0139014c2b812bc04455af2008ca14b42c97f0447bd75b6c2dd361fb5f44ab49ba923cc4020464ae5bfedc843e7d18de78cf86e7072677560f7159e4c57e100e572838b11e159f1d25ff98b3bc7b4d960dd8169067137a90ba2a0e1ba9f6b9dc82b0f8488cb2f934ea42b6ab582f78eb0b2a129d1082d5894401a361a8b415e72eb01fcdfc61054964d33a0da849e42c487e8a059aa9987e073d15f606f817ee927e69cd8e9c9d22887768e3d787626171a0e0f4e5d03dc651958257fa8c0f9a572cb68e894be0efe3b78c1e6d92a03fee62d1869755cd95d4723cc770c5e7de6144e753c89a45084c943369517abfd4c3fb0138c5458b33a3bfc14d5b85f5025271e590e1f81b3c3e5d54e38699e132526972c5b868e426b5cc49a40a4bf7eac18ef353bde8a64aafde0642031e1b173fe41e3032a0ddf2e5fb0a115082fed4f4ffa747918a09819e21da35cbe4e91542b8f9d1a292623eba3b2cc9dd5eef4e3c09ed809e1899a3815ccd20a4616f93dd1a41212226e04f042400c1ea6197360a26b19b62684903f5fff3d4a01e38767ba66cac243b6421cd009e912e3bf996a93afbca1411eaca220c875c0270e481b6239e8a0af19e739f9c1fe37d8931ef30dc719c139106969bd98c83b070f71df911df3808ebb2e00cf6d12ffbf8bab8256c7feb8935295c0416c84335f1e1869089ff274dd3bebefc5d15eb412f7ac1ca84b70566ceb146e0be648390e42f376076543b4550c0e3c3f1d3a7fea9a7fa7a4be44be82d8bd0f2e4e45ddbc65a2f49c3c7c7468deb9e33c8a0639df9965ca69a6f2a042be40878f692bbdb01fe4c6273f5807daf57637c32a553f9ddb478837a46a1221677a38ddaea895960b67300e715dcb04d88680fe5d138b47e781cc901f4816f05418a39a76e13c69faa9318e82a6ee6fe4f3a6363ec1fd89d22e5e83ee98e683887c164f3beaf251283dcbde5e59c502acf5cc0c73367e783f78f7ce64ab739d0a3013d7a85f5823b3c4df2a796fed4f0facea66e09af329774db24248623342d389badfa63684d8c5b65dfb275bdcc2f713a259bf656fd93fee338e2db49377c3826c43de210defd89207cb77f38268c86c345438e0a26609ef7c414297c82f076c0a2a935797e6709a3022ab545e31561e5a78b025f938af918512082844fe044dd738d916012fac547fa595100353aa50145daad5598d83eb10d8c3d95a21aae6ca020ace3128237cedb8c4bb0a71e5ce03fb89a1be55641bb2e45a8ca11499aa360cc9e4f7cb59c3ed292e8a2c6d97a825282c04f33fa3dbec1d1a1a90812e8939938aad4a68a01adf45f59884362b932bcecab43c292e56f89a06c2cbcba98c523e47b2134de57eddbb21f78268e2759b92601498cec806f69109fe8fece295f0e2b7175f78d175b66a87c241381eefb54deab5c48fff18ce98e7f83d169ababba8b6347cd60c2c515ecca3a621961e2e925cfe9d49e2ecf24a0fb1af381a160c743d23dc8783c75be235a37c2b7a9dfe6fbf49b4c85f77e273583148de6ed0c1e5c7421bf24bb5c7233cae317369239bc3da4042f92eb66bc86f4322436ef3c9982b21ba52d34ed05e4c348e0db87cd005656bb80fd9a02f07905fe42be396e9bf0929f5e2930ff4e4b1ff3ced033401a149d309712afe1e453da8c47b3352cf08d53d767a86dfade9024fb01e35bb7dc07baf91110df8ea59bc0dc8bde2d72cbc593502a7362a54437cc4c5634fc7e661d5afa0d108da586fdd30309941ac8fa30dfc36673bd12d8782ce81c5276cfd57e6a2cadc3f53b491504119fe333dd79fd66f6b85ff55e960355ba1b22f8d6d0253acc68dd3401fb0a8727302ccee69dc489702cebb4faa1d5458d26874d69c85e829f858df233a4e15ecc608c74741299af30cb218af28c015ea5e25726fa58e213fb5ee8387ad8bb5214551c10fcbbfaf79bdda5bfbf6235c178af8aab8d5b5ff3ba4c59726e99bf12136f1bea4f3ed7baea207354806f03e8deb81f0ebbca22d38aad3737bd478041b32fd9784266721ab121abc2d8137d340bc3e4f46f66435fc9ddd2b97112f69dc3686f5cf30ae41b834e5e87364b4f78d8779a04b54c0868f89bd3ef2a289379417f54b010f9144380ee549f880cd0624fa3026959e498780505abb806acb1e8b83c8d6574f6b66bd94a4f06b2f77c017f8fc07462cdc1facbf92e3259ac58ac6d61874bea93750d6288ff659688a77f36556b8599f0550c6e8a8cff9443c644e936930ed9a67a1f33ac57c70c27b10fdca53e5a8e34d86209b0b0244ee86e16a49158387b37a4f386701bd0d5c54d3468b73ad798174cde6cda8223034cbdf3e7ffa863b65b977a2f72e798ee2ec7179887ffefbf327465fa7daec253699b3da1619ac929ed41902b662356591b55cf3b3fbbd56316108ad08d9946b04c52bc609640f6507f52b453cab0cdc059cbf4d7315cf39b97188ba6ae77c21af1af0a4b6ad745e3de059a437b77773d7d82a9a2ea8fa2442df48df50104be57fda48cef0b05c2418248abb7da54966bd190badfeeb7bae4eadfd996d1bb56a4b5063a2d776a929d59c49a97d846ba083bfe3fb94c8b72050a71a08c406106a147b90d386fb1df33938b610406e2f3b5285500880718e93a0d4f4c434fe8ffbba4e5d4ca1a3ab05fade5c0006ebc3b3823f028bb1bee16b5dd852ef9eb2e22265d5a2f59a2e73f38076d7e14ec940d0db021544f1cc4c27653d6f418d7e5fc2f50d9400923048094f712fb287f85aa29343e46c6e6ecb04c1f8741a2d9d6d862e5d9c944ede5f6f03f0f5a85aab5d5464e5c966f9eaa58181778df1fc002ebc3f64f6373b6237c6f1f324abed211a36ef8048ea33cf80242290962c529d71fc706d5a1a118d260ea1abc71f21e78f8aff163fe4173674ed745901287afbe01c63f773f78ca25f0293837169973b1a2a767485ae22cb7915f8c7f6df99ca1bda713a3d59f2a32b4b30463ecb0b7b3d10f78c2ef2bb2bccef12fedc62c9db8f362370c9a9eebb67cd430e5333ba0887b8fad3bcfbcaddb8b766b857afb5d53899ae7a1cfb42df85985d11f46a97c6f4a34f4b4db0ff7777deb84ed597542e78a2cde1d4d85e36f8341ecc428b17634ea13c28f28c95d78cf9202f0737ff5d315fd3709ca118e9bb5df3584c3e9696bc984f038a4126948df82f4e29a8d61372df646869dfbc1d4f73152f28876a1ede167b6bcd8beb10741e6bcd85bc36c5f0d215a4c7dd518e86a411b7a8cc91d0ec3bd1e6aa68b92bed602cb745ade8bf7640d92898890511bc4035395a862f97807014d2e2cfb88ffe2335f3677adf3f5d22156d9d0a95022ef47f37ce700ef88211d2b69abc09a15c431f4bd64d759afeb6a657ae3abb4fc7cf695e510aecd4ad04e89002f2f30dbb67d32125031739e6a3a28a99405404499f824279fc2e5b173768beb04b16ed0bfd56183da4bbddc3c848d97fe869120126cbc837d8fa0338c22370aabc14b84981d87b3c756ad39e7a3ce6997317f801a18403b263c9643f55b2caae9ecae92ab92ef57380feda83dddf92505b9c0c1bc7d3b067ede9c26f9d0ba7ac15ff8b850e4ee94017a071c2746ca7ede11c74dd2e16cfc0c5b789cc09d738a5c978027051a6b8e98cf84902a953790bbe6359c6504b72e27635a8704d4bf9ff9899a53eeacbb67b5d7a24ef0f4777da5ed4a110b52c3f70b4968291f224b1e68130e67c270acc1658c3531292a408841de29134ffb78475f155214674e8f6efdc027727d8266850a9ae4008a684ddea6694eaefd4cab3fdf88a3b9b2ea37fb79c546e7d49bef9c5f56eed2f118ac24bf349cb8c0001853b407e1f80baa400decb8b569b621b5081c77f3b87fe9bdb02aabeec6ffcc28ee79116443ee7e9bedef07ebb0dfb7e1d2b8f21e2fb91a16c2af06949381c98e513ff12bdea5f3b66b11a7cda78e305b15a3c47b5986875bd89b5116a3b196582d43516afa4edff9dc9f24fa3184451d80063efb76d642894bd4c3e11d7ed304fee6aa22f63de4991ddafb898ca642fda90642d1d8aa33d47643a4c3e0afc8824b28a6a9757ccd931a04c9a215e7d724fe1af662a7cfc3feb72949585080433a3a26650851047a2e2607cfe8a1c92ea7aefb7b8c227ef484ad13393d286f4d4d9380e857b5417fe5ee7e19d134f361c4599d3b308d6cac2f2fba8a30fb7ce4ee4e22eaa4aedd22931150326758e9ab0c2c8071337ecba7e899d7b30cda4c468a76cfd2398a40ba9063d5221dd124b2eb05990981a55327451c7c914006a3ef865e9f42617a53752acdec7718d301393b742c812ee3bbb843ee5be6422d7af6cf276d1cc38723ccdbb0d8b58b2ca7f40279e50d26c2f1d27a67b46b981e97b505615597a8f85b69903b8929323b10c6130e7d78f1c318bbdf69c40271ec45653053ed56340c5a8815093735a2d8c97c1579b694ada37912d9d0fbde3795ddd62970f2df1282d7f0b3fc6b5693984398914ceb07daf257bacfcfffaf8f447d01be20e2d1449836e7d1b0fa344053b6bee06a2257ecbf09432cea57470fe751aa578672b17ec6dc038aca083aaafd0bf69777c5e2a439637f68620346b5d753a01d615b22f2e35f7bc093912c6c7c95538ae3a8acedd4178299009a44f0d4c861a947ec7e5f64f372ebdbc74fb6254d73a2a92c984017024ed89aeba4496e35abd9694b11be8dbedb7c5fb60dfd63f3e607e7d977c1778d823f4f1f91f6d023698c3868eda8cf6107160024886a6bb97983ef4f67c20989740a78c4ed70a9f919eec66d72ea821609f01b23c41322267543713aa2f6c84631b6cc225827cfb8eb8dfc16effd128ef7f57a45d5c3012ba6b197f7c9d3b2eda403d59b7396e097d788b53c4169d22676e916b533927959dbb2471c8c82285f39af98cbfb835c68a42de497fc5ed799279be4954f690eafc8bd32ebbfc1915379de9d0f429da9b23a6ee3e79408e35673c2e9b9559d048f4ccfffa2d5ca7ab3bb219d8a43470e58ab1b30742203281001149e62851227399a4265db3c10c016706a733b5f84e46b9ab7d4af7c4e3c6149c706b5b29b7b18620d223e6db2f7cdecf15b3e27c3b1de8f2cfc467df4dde8458fc24d02b2cdc1e1ee487d8f18318ecd0de914ce8017bf8ba8f5f031d9dca7150743eb8aacf87ac724a6d0ca29b1c4830df3c529ec999125fbe4bcaecc7e6e0db111dad3b5dae747467f07dca514fe9b365a06d5ad14d29e7f649ce61506afa29f38dd1da43bb5e3d235caa9ec6fbd3408e6a60ba753208f9cc25cc2df52a02136891a0cdf07c063c402fffc99a97bcaedcfb69f0ba5de7e11f3300be056e17917e476ea2390129290c2187c674a43f0233baf0415f87cb954804def1e275763c7b4a079761fc32e9069373ac9a239d9db25b5d71c06fb1a2d30bda705829054b3c58adabd695ebcdf0c26bd8846d11545c07497664a236bc21253b358023b0c644d4179e4afda412242d4819130308e6e8d3c73a4fdabda6f642de548f2fa177c89ed4e401c4d87d201f233a1284129c49bb972e0a611d6be78351da370e7cddbb0765ee743357aa3e1acb403a957c9e16773b5f3b34aaccf3d35cdfd027ab7a1c79495208108f77bdc8cd6b78a9cc66921fe708a8a5c38bfe69dfb40fe09aad9e53190f88a309b7fefd1f0091ad600cdfa2749040ccbfb533cb6385d2c6d0620961803f699da7508db348a61497e5704bfa3abc485a7bc32fba1837558c80e8e79962ecac26725481aeea6b4d868644857d93e1dc9c3e22ace0e51ce64636456d1ccd14e7787eec7def94aef8f4e4c59af4fee50cae91820428b21475d772fd617c020b9836ae68acf9a9c50d66f4e09fa60bbbbbfc5c3de1d6d37d204d5b8a93e33ce7260d1e0e705617ca9f5724dab3bdaadb4d97b2592365d87b495d94b023ffd208c838acf6a6e9c05cffcdafd8c925ac2d96178535017de233270b07efbb4f5f18ba1876fadf1ddb5fb71d0c4aa482e52a2be33467c748147680ee67df9adc06032ab7d2cc4d4afccb45cdad369a104a9f70015e996c3da2f9a156c604b099248145408e26f4583dd70daac8c8850282f05dc64e6b8c1c52eb62558517296e47ed3ef402ade463446314170a590c8c390ff0b412a7a3b3195398751a00079c862504843d3415483ab0768a899d34e17a0d27073a79c7b1b081cf7efdd1bb58c16f7df2649111f8b8d076e8b4ea4a86ebf803302d1e9b86ed9d7aa6aab9860ab05d114e6f7bf5601efa2ee1e4990305346eb930aab7edf98bd8bae9a3065a3af10824c7ac573a5f7acfcf2d70b7588eb92a74f6fdc0c40bef06e3d5997f354e4457254be99494992cb4e3236e7a8f4357545eb031fd58a9aeb8a6b667e2df2d002d4d884c5b1efae428f0280b69a8e272fae6176693e2fd6d4787fa1ab60c2bb36a458d2ae14e4a941a3baeec61ae9742baedbc909a9c551fa3f7170f7a368321888b0a3c8a2fcf47f661f1b11e7c74a3913f47dd7f052d6d55710bafef3afabaf9db8ec58d9873e253f6b0f8b7a47e7cc425fe237dacd776dece721039fe5d6670d2771bb7f0b443301b4a9f4aa6f86e1e3de3e9a2fc57641f47c3c6c3ed42ba362f803cb8e98d1ca94550459d7954ab030453e228dc141d6094908589f76f5ec9a0c86401e5da4ec3c53309fe8afb2a0e8d7cc66e18cec4464381fedd7cf8194dcb29eb1e87e95442ec7acba4f92f57048b2430e190045cf6d0b2de2c17581c049ea0f41d481e02f49bacb9ed647c72a73aac32fa6c38b1cbc76c2ef65e7b64e166ef1516e81a9f0d213faaf10d22f8bd41714f50532006bb1c2cb61ec7b8ae3bd2e48ba68c72544645ce3e4d090370de559c4621ba5ed01d7a638b3bf9c25298b7660bb020e6fe1f17a62f40fb3d82a04a73bef80420cfe332e3b46498c0cb93a18d4ffc384f69a7182120183f54b9792ec9fe70c2a7135b8342a689b683552d94033fdcd97aba77e7393b89d842def8a604c8466cce008514a7213962c8536c775d54b4eaa4d9f78539596967ef11fe9a2ec827057b3c72a0904feb9498648c56cb81204629e23a169ee518fceb7c043a5a7b9d0dacd1c0afb0ef360597df3b278cddd95e0c810ae49cbb63a7725c7ac7eaa4aa07ecb816b46e644182a5fc959e86069a3a2802de6fa4a5bd49faa5c938e993c18fe233152f2b47fb918e0996796a957da089fde31f925c8860fa2250930c12c1722ba4ccc9163204a80794c22b0f478a5baae9821d953606953cc8a1277c346704bc94910aa5f13641ff19cc6225ea2f8cd07a8a4fb1b88998faad58be2c466ed1811ff6843e0d844ab57097f2f9455343f2fbfe17aa727d2b9cb43d96de3902db646149730df50c56ab9c2c19b9f12157fd3e1d708ae3268cf5a230763d98eb11a2d588896386c06d054e6a70a834062bf0a781ec40143760339c4ca4a606db8635527ea97310aae511a194b9463178c1c242a5e609a809788712de312468396b40e2f2783014d0eaf04dc3139a99f3a24d4343f18302d7a9a844a42c4d954850aff786fb08e996fde455183d28d0719d07123e0deae38c96adbf7d7bed978620d717ef80a4ae474b8ba941ffe38601391a0a649904a7d6f990d232f1a49d7c974310dc806059e9783685b7b9bc6d3b581513feb644d26d66db30d3baf3b434a8e0ab9e5c3bbafa688f6e190ae92c6cd9587a1450378c283fb7785011dba758ceb220ea5566888ba565d198675f6be500da17ba7cc6793b7d1fd9a6fab266b8d1dae2fe9b9695548c8b5844d314733c47bdc4a9ee9594c47fec651fc6585f03ab7574c2df63de6e6864be26bb903f9b296994c74a2ad5790b9e8ff818daf2b84e76a86606ba95acc36915b95fa99dab19d97cd6d988f1eb4e1cc807f141629b28bf9a26325d229d70d44236b6de746ba8f3f31e52e2e09704d4479cc9ffe71afe0da491728fc8a1d29341863a2706eb74d6d12d1f72b82c1b067a1cf66d948947a6b49d6347e29d10399454d3bdd65f5ed61fe364c94b4d20eb679a29eb28678521ec2b6b9c48329e89b69ce0c1eb145f31700e6089d58bedbaa56a0f788fde930dd1ef99ab9c3d7c5220d5aa62d3599f03c35e62781d19409a8d6700350c1104e25fc19f266357837f7e8a38b7b544c165de54030819975baf93bfcb657e088077f646f4682643dfc2115b2b1f9619270f7e9a94180d169577316c01c86f7198d635d5a6a5694c4da545e4170e9fe252f866297b4f1085672441cc36a31aea15ad2bfd71d001722632c4b9e0c01953bc4adee9278fa601afb795ad7c77ade38190293245d0a3f60f8da17a0637c75b248ed987292c37e82f9fbe54efb943233643cf990ae333c0826c9bd3ac5bc6804f07612e6c3aff3b7a9298ba6d4215b434e6b6a2300c9213658a208b24e7ab1303cda46f4767e437d46bc06f66d6a784360ff210afa4acd840945f7b7739afc3979d0784355db21c766b172ef18a919c7a5b47ec4a4f7e316e9cde19956b8283c9c183fdadc82736a713ed30ac9206e7624cca3e1a78da1e46b597f3453e34b6d611710343729901835b86d019776132547a89d4f7fc8fb5e27e395c75b9e4ab64b48d61eed0727cbbb4569392b33de21c3e99058ccd6c0c25a4a2c1d8168e14e84bad45e63ef40e465447123905421ff62b76336785ba7920cb61a7217ee88c38a9d5dc54064a8668a5ea594b961e95499c7cbb6a5409e622c8f8e2ff45171969d6e9d63e3cb8961b829e7319f18f2ca8ea18306e74e987e56dcb4b95d429a990f0c7e66d63690df8e0def9442bdc992af06315f2372e4b5231583ab78128b085d47a4f7cba451af2a3024d309ac16b535bf4a25113bf9d58189b9e7f218faab8df9e36ec33defc3ef4b9dc2409829b267b0bc13953fe293308b59514842bff435b966c6f35686bf832ac01a77a3b6ab3fd34832b33613c5aa9d29b5bed276d19a2a611b6c0cfba948e789c244068b43b1929402e387a88ff8462fa8056089d13500e55dd0296c13170351b329d17824840d364f2e29e6b3101581a921c175c7efb338cf49cf0a86f3ac897ac6c7d64acd67971d3e554c29779ffd9e5d65191475150ae50d38ff757c4fde5f7f5e752cabf6eb68a5bc1a074b4660c4e63296916b85433a25ae2646aaef209c7afdb6ec4035dd07eb589c510ae5cd043d1862662840447b76d86e7ae6073a2e4ee84f494e209d3e885cfb33a8a209f29fe3c1534c46bea9e19c0e6a3327c1d217e22e8343e1e158945b2c36bc084c071548d20151319afcb5d0de71adf0a9e79b48a93f44118d99e9e27a232e8f3fcd3bcc7b9300fecf8992bb3dd576d6a39ebbf4ddf44f795455ebc277fefca26632ff5c19da71ef42dc15680232fae2cd4fcae7df71ae7f0605936931da24919264fd6c5249ccdec3a907c1102ab93bd942d48174794d91cf71dd81b5dd237a100a3ae30d307bf557b5edccee24f52b7e27bebd678665af06ceb0eb2995a67af1083b83a945687650a5cceb685376aab301834729a364c20228d31832c07fa233e277de21702d4bb842410efcd36f8114581c53d5728fbf9d3f457ca8ac60e1f7060446d3da27dcd7d44b178defaa99a9e0959c8ac251b2834a6a6dceb378b7e447e68e01503e1e1ae768c41c6d849956aed1607a1c50fd7d6efa438a0b5976660af0fdf7caf2b811a13b229b5d1c2afea97e89cf287f8863b2f469e898f9d513d96d141482352ba5c4b9621525f2f531450662c43499e4f68b94e5beb5b046f3a43fc399fe8ba930dc79e0b41da5beabc07fee31ad3b5d45546e1e540737e8c0513d1754232101d2d917c34083d01a1684540aa3c2d87f15466524ca304959b63c34eeb39c52593177213ea9d1041be45ca21eead9f03bd35e40da522a7ded7542b899d7cb3a74e919c02c46af1cb529d6aaf1479c0c96da4166599826f5e9aa5a5f9fad137ba862ecff9462716d41c65fbe296e0db3da2351d18ce77bd511e6ac17c51cf0e0f2e6dd2acc16d7bd3284ddfb2575656a422b49287e57643deb4834eee0a607aa513fcbec1e4246f1788588801a5e2168cfb4c324055dffd13dc5a0b8557460dbaefd21ba637e9924b7064def96c69d29873b67e3dcab30043d0fb8992576f67c298e7273d0e141411f5391093a6c99748edd176134248033bf83de5e68af2a3fa986a2950d242c64eb2fdf86da91fe0d24068a0e80cc6d357a2897b5129676639117ff30729d5f1edf44cb776c4a0bedef590b27b5e86e5055a99a5d0249bb1f176c310e5877b19fc15181b17066a78a780c7f26ca372dc930422103fc4c96303a43b6160ba4918b1eed441a41b2f238d116a24336378c8f3fcd719d4e0136d171ed25dd4edc0733d1aef0f642ef9ccb130ec8ecfef6dd49697d9def7aee5a33c90ee250c10a58b544e332399570b198ef8858299bf005961df4a326675327bfc1066a88370f3ad55b331d63f953647f0a58a9f66d4483af9dd47f6f1c060bc4123b323b079d259aa4333546354597072b011663e9b6230aaa8079384364302db40953dc67e51f981b88df4d1c8f045ac8bd33fdadd689c753a97eb39b074428773d404c93107e7aefa556e84c8b228ec142d9e704fe57077be8ea270d880a84e53d1f13a5ee5c2e4e2df434e1cf67fdc296d3ba189f48ab26528f75db0ceeeafa1e1a5fff4ae56a3f185a6f48ffe9b3d3185cc59fad78df3ae383314c2c7b419641c60a55e6ac0937c9e79a10942e09535075a3787a5f928745b0003361d259ccfaa627382fc858652a2c1522eb0f1a064d1fb592ad8c0bd2f58af02f8fa93c0aeb13af616a038e47350b873d62231936534ac20b17bcc1122c3327a3b2b20cd303a6f28c0f216e29b45185ddf92b96d210cdb9c5363c31fce99b6ec5aa84bdfa600b7a22cdc5ac38201423643e350b1ac4fcf8ec234974948fe3b8b1d5242f06b9b8e22f0f873ed3bdf514ce9cb24769834726bbf26f47934a1b767d5c68fcc17318255b3f877dbdad2a1976de6178509a92350f6967f6d04564dfd779b1bfa256fc6a4308972d05b27080ac7687cb02131e04d819b2643e1f9c374db068438f91b88367be0393004f7467ffa1130e75b492186ccf7d59d6d664c82d4ef614b04601e0e7ed1b91955a5562256a3b5fdfb9b554613a19a9aec3d663580d5af8c8736ed43129468dbabb418b1b6d62adbbae1c878c0369bbef174122e548ce707628abd88d923bd190c1ee3fb818e6185c02a4ad4efa0482c8b100dc9498faaf0c6ebf949e06c8ec4bea87691b8331a7758a4a9bfee417a4e3f117ce82a2f8ef71e0061537801e4b363dd81082390ce3c52a1333e192ad217fed925dd5c6f79b635bff9b55bedfc23be49333e25b57266d79991828f0d3d842b6b3edb0affcb5cd6b208679ffff1f76b7e719bc08a57ef0d6916754d19dce053e60bfb76eec155dfefda2a0a060025a3d4f1b0cf91c69bf6f11b6bd93b8de00ea2b2380b1ac4f726e4f96dafcca6166023c57e3546fe729d10bd3fa2b221a03abcdfa81d9476642979a68388545877f45d760c066fe980094aaa3e7099b6c0856ad98c8c1b51d78b00d2d9527ac1c4d739c05e7f59afe9041a1be9fc623854fa195868ea01a255fef14a16a76e162336b3b288723b9767c8803881faa3497686125c1aff5392e3da389e6f3d43822de0c5713d99900d523bb463ff9c454439f610d59fcb6145c049c00cbc3bfca96fa198ec24198f0fe620106abb772db7b284c2f79f372d34669f02afceb7f925be9e5ee6b5886b8b32fc5368befa7a3f76686cac31ef3c51e08004affe958109d6a82d6def1b017e529cfc1f60cf586bd19742d9219ad879d7a8c9ed1a05b9ff3774a77764fc1adb3b0e560060f703c46e6535e38bc2e49843cc2dc3a4918439ce051aec3be15ee1a3dcf8941c38015d0541d1fc0d8a5f1cc9aef20c890a937cfe6725e611cc3220fe8ed016a3a32ccb778e55b3e10e8c6fa5f6283ddf3934ef7acf3b05d430e8bbf805e57b7a54b01d2ad6a82c641c6fd1f5577ebed982b7b29ede31685db0b5cd888c024a109c730eea47e4b35e39466009d78100d73a0b11d624ec1813b2795944abbc08dffcfc0d19a52ec5730da95b88b3d97509063f22189d8e39e4e355c262a1220471c420b470207734299a425421c3818944099dd6f442f1b9fc10beebfa48db0b31695acfea1bf369ed8fed10751665317c2f04da69fc3e3e48064ccf5e73518c68f82867f3bf8ec72758601af8e80d21de2b748b90cd138c539f08c2f5de983a489dbc10d32cbe6eca5af39c744c3828ea813dfe81f9d6edc7860225532e26c1e245af343f33d27ee795ba1d100df174b05a0a5427ab1e7af3b753ce8cdf8d4aa46cbc1949a1b8a270898aa6e1d1e69df11c844f78343223b978accfc85edc37929654ba99de7c81538fe2be4f72c5a58018fc93331158e529466721b376bc0f933e27cf50e9420c9fc463a0ed6081f822c38c22b06a2d35d5fd1ad3b17ff12ea20a2ecc8d2687c9da948c066cba6ffa7153430cbf9bc487d2797e14296c0bab44a1f54cb9fb28b7202f78e3bad7f4e4bab78db3cffece401c61c394f119a624f5763dad934f9714c63655c6fc07d39712356ee9066de9e50e7d4289b884ad26a0f31a3476f403c6dc86185890a123d24f5350ea3e4a36c08551d12129b723e920c045c570d6d4718164d5b66c4f0c7a1a4a3df70d4d239e8d4e64c955285a1ddbd21fb90a0611b213a8f8b0ee269fd457c2b23c46c080d60ae9697ea04e6d175b40ad64bf91c032a729a266322df08e678e21c90a59ebabbfd08d18ae91866031eeeca130d66c8c8977e9d964079c599051d4d731fbc17baedf31f7c06b67f0d0cf7aea93f667518d61835a75d014beadc99aba96e6d63048e6f50ad9e233006b619e98f687d1390e87d4540dc92bf28fb8cbef9018d1d7e622d8685b23e3a15815e8cc6bfc2d4eb9a1a71ecdb65ca8152379a537c0d00496db26db8a5dbe63fc964ac0f8eaf18de7eebb2b6349f5b8288ffef213de7f6915721b5eabda6d1e5d5661addd8bc68af2a9da51b321f1ea6488e902318662df96749a17cedb5299e9a9898b3a28d2a88bda584b2d3a697ad6778e2d32ef14d3762830218169e2d750068ea2dc72a87e27245207b5a87185941c07f36fd2cd2bbfd1bbea62e3a56ede84a81ee4b8afa4a71b1470d4f2d1bc8ebb641162733ea3bb078145103a1bb1031d7a8b074c3aa6ae03ccd2f73edbd621d9f0978e12b9c5c6132f0f0602b8c25f0f9e5525afb86e6248a33255cf3634e64e35e1fff4155b89f91cdffb440627095820bfad6bd7d6557c8d6be9f8b5fe76beb82b5852366b577851fb150cc1998ee72537082d6a21a88d945682f29467af5a957c95ae5e20ffbd8b14bdf804085b44d26466d2678545f8527407f58c9d56a531f75856c9c2dada3a245eea9b18a62515b842066a163e5d855c455f6542699641f81c9a578308d98e52879c363604e45ff4224d10d266c4b0d460fa7430754a9604e0cf3abb8d530573d8913c4efd5d096f4647b848bdd535d7243bf5810d02c68bb1dcd4c854f6976b9810e67d685faffcb8ec143df63727d2cd12c617cea22a62687512b558a38a98911b141fc2f803a62c7f92521a17b2c4193cea4ea3369001ef348cdc339740f88d570460332f3d9d9ad2513d57ad1b068f280824150d14147407a357e1ed79b88a5561c1dcc5bc4b280c74ac3cc247ccc70931cb8293cb95032afd30f962acba8eea89cdb023ac7eb3b29a847bb400fe3392c13600f21af91c4a344278334e95b3f68fb77d6582c8f7c30adf91779ccb20e9ea9b9986ea34fc6a6059313450318c51558af752abf1834aff72cc3f874fe6e4c3d757ccccd6301b37b6b9ed743560ae3a6ad5f45699f4e47c50362e1f376d17b0aed8169005beca30e59864159b1ce74419c1900408b1d495f8e7d3db9b1c6cb8be66246adaacdb7870a1e67924aeeb9392be7953ffcd5fba6e3cb56a20ce268b45f8c7157ace5a883b7ece05852807e0c34a605c32fb4d426f542128a6b6a1ecf47f51e9d60e98776052a22b73457093cd3a390599ef20cfd6a556ce964fa396d6b97ffa622e53d218f21eba157dbfd81881a8f5a79685a040fd179a4af027650fa44e0bdb940e1d3a7d66d4db97e5a82a0ecd3cc559f8a11ca25f49b9d64fae67bdfe95681fa188f96a699ed2819714ce30f93d6848947b891c22d05fec5c2d65407ca22c8b0265b843d7ec9ff7c443913a6fada6b7c907855c31d99385a0f3ddf10c22401f4ac21c29bb4d3369803da8fe0d20ff4b49ed9a8fce26f3c29c68dcb9eb8b053dbb0b04b9b31e96810d1a70de5fd49c85bdf9cd07632b8f333ca7b30477f89d8d09e7a7f0be4eaf9a4b0008a45897a84840d10531dc20c62350c77409a927e9adf025afb2709a2b38022ca4c9ee21d7e084406c68f8f1375f93bffdbc819b9a550f628a291ccb95f81b39ead4e9de1c7eb4f4b483b29a9e05fdf6500112fedd7909af47aa4e6e00dd303fefeb5d445caad2c3b022b21035b51d9c0b5c92cd0f185f55683ab2547425ffae7b2bad2e4e1eb8915651e87e49dd23bd1c5066109554e1408d32df3fb55f323015b64d978ef8ea785beea03812e14fd524c949f4353d7cb1acd080f68a14b701bb6b1d9ab94728f245df057377b5ba9b4cbe12f1bd4d0f0a09bc4b315baa881d7630460e5c2140b82a891ceba847860eebed0cef6cc0f42d7cf80bbd260964c8827c49fd90feafcd1c758b10c2da50fa5e9f787a157989123956789f11d0f006879d84b268a47052495dfee5fd69a1d79ec148535bd275e4bf58bda4653099bf434cb7f2e6890eb30ce852817e3bd7535badf39e4c780da3f81a21677abe291f4d8ef6fe717d139040755d5d0ca7cad53235b2aa0a694e5097a7ecd4c84233a804114b3a3e9e72ed0da9008b885966e5092111a7e93fd7f3fe3cdf539cd55f1d6c3424bc68f88390ae7a439b3763b2c5ada09160af2d1f225baa6e4a7095833151b44b424710564dfe386f9188ff2ea29035eed5d25b60071c58650f25d0abddd967aca434a2d3431865d9cec76a9db7064ddfacadcd07005370048bc8736eee90adbfa1d987df52d927d3e5b32141ad40faf788feb0db0fc3d1681d07ef3fd44a6fbdf6b984603d73fea71fc651d01cc4aa82c108ef27ec25448801e6de0b743009d6dcb9b9aa8b41b6ad4487bc59612626fd29eff89cf66dc6900c37adc22dad75d33a1b0d3d11dbff08da61a88dd2255ee9fe5d94226063f678bb0d6a7cd631e2a44faa0aabbf05340abbfa17d76060417c43d9ef487311d212571ba3e030a7a48ad101b38e8e9d0fdd23009a101353634e1842e0fa10b046e0166a06607de0f2161bf7309d16972a88748fd109cd60d21afe302e7173ba1b3997b6873c1f14ad34867d6943b106e16fe2a3d0f2822d52ba6866dffef9e12b33fb2a0a194097b0c7dc7d650242c5e960dc25a3f952f0fc298df6dd9e337ac57535fe1aec0cd40945993801ae306b472c0f8c7aeadd6eb4afbf440693c77dc8c0cf468700aa0c28bc84d929adc4a59537dfe271c147644a30afad5aec228ce23a49fa1c7f973ee54bc1d0eacfb85673d7a1aaf8f0bff93a02d053d5eb3961df045583865042b9f64e8ce899c7f5abf135e4eb74035e434c54f9604a12fab0541da55c2c02c63c7770b60927eefa66b2d4ce86e62fbc62db2795d8cc3d6d511db8bded02788e9de6bf23377106d45f5c0e653de8211efb6f58247a2823eb27d572cf0f2a803f66c1b331120bb7e6986b2062ddffb3987b843bae39472f9f43320be06c74b930b0bd44a9c521bab35e47840efca90c3e54d6f837bf3f01e070962ede4560d2d2d36304cded7896c5080fe21b818a0ba1ce8ae4d3a143128521439125248f797c7fbee7583fe58c3b781996988d94a7cec92b423a015fe493f91f5e350f343124fe069515df7a26b99de92a56e823a4c953ba2d5baac8b172f1ab7cffa1118bf2f878e045530aab116519f4961f137bfef5206e1d45891aec9c1a3f34e1e467c50dc0282679bea62b9697480c73f166e681a466a53a0edf6fe6120145e155350f916c9b7d2351d1a339ddc07dc428e529df395cb2d9b1c5d1d238e67cde63ffa6ea0abe33d5496c2ca5a80166bdf8b7c60e9d1c8f0bc3c168152bc546c41b71f4f50fc911791c93f4e6d70c360718c3959915b66fe3dd790734526c252eb7ffb0c641a27d66e96b891b1aa20597c7d9b8bce7b5e5ddebfde1d2e93433e04056860f49be53abe06e17d5b2e8f481fbf23c3364dd249a47c41fa85798a14216c2748ac5fd1fd7aec767590597918c96931c1e777b711f3be71995c5c99a88a0e681be7b9019facc7fc184104051821c569b8637f99f8539ed0211dbe72b8fb6fafcd6fc4e7d2f77d1768ed1c94c0824d58b7d091befdad4fb90d64b32385c1b98672db3824a8be36fbcfae7b387263e66f044df0bfcee79f717e4f4cc7cb8e8e7c171e1fd2330a369ee1b3667b2d52d8bf160e58f155cf0abbd0d2e53f7390cdece99585ca889e66261cae6db56a023b01d18989a2e78e0c6fdfc254f35b36df140983dd01b101d6c6a6cb78cd75536857120d747d1e999081bad32c7a7bf0611b6f8e415a06ac03fa638dbad85abe8c1c3f659d9957acb797ccbab9705a7d4bf05a2443ecdd541b68b40d360114cd27010d50b4dcbfd003baa47a58038e650a41ec2cc24a8b71928c19c48e8565a25ab797a28b5d809d7a36d3d4c97d9f97362091fa29647c97444a039f03eb7e20a84c7213a707e58041a80b7946fd0f88c7f5f3a6c3411408187e1b0d119a9edb466287bd84ab6abe219b7a20d316e22b7aaad8896d3b018c63fbc313bcce76984132379bfdee6f3a52dd205bedbb78fea1837e70b098f143799c3a6a5ea602050da36933eb23b493dd96c6995be1d1434feb5254c1660bd6983da2765a3e1828baa70b5914f2ee8cdf9c6a8f302d9f19f94b4b9953536cd90623b1c0a31ae0136f5a9479682e6ba5ccb3ce593f454e86118341dd2e68119fdd5a0298947b6881e5ceda5b299911623feed26cd02c86eaec32e5e506a7bb0d75a9b53222b761d58796a9d14cd07f306588207d2699fef78bc53e8d270901dc69f010580bb519d94348f08655d5b1027688d02f6d76e8f842c65c495452ccd2a6dedfa06fac9658f21191ce05a9b7174845b4b4251ed3886e9bf067c9da132457c7bc32ea4ab21db772735d42c3893b37eb9ed84fccca4833a8ffc910707df3a404b105681ec340c2e58661cafe372f2bbafda98b370fa5d107f43d0cb46bebefe77b75cf9bb0f6d8e935701295b592891629a6cd88a5f4cc1d0f6f3ee1962a5c0bb98aa0ac4a173498e9a3d003007e6c0d88a560aa8dc2d01e73ebbbccdec397e36c377733752ffe5110ba298c89c85c449bc441b1f364968188f327e37a758a786520ac420491a6edb49d9ece596e1bfd5db1ca80a5e9d33367918f401126f078c9a27c14cad7e0e17d4c0ad4d9b7077adb5bac7ee9058f6dd8f04e388393ee745e0dbf86e80dfe0214069da98fa063355eaa9b3e610cb7a055735a14705a75f04a6ceefcdc5d69e5a33c0b87b87d86bdd4592ef31108172da7dd37b2ef9342cf17c5005f6353800d403e2c94c1306dcbadd1191fa5bb2fb607cb51be482602c30f79e4f5595979ceb2fb90d37521fa9083d895a426578e47f7c47ce87a0713c847d588bfbe439d50ae331b8a9bcfedb8c0c45323270da74fbf599254ed281ad37edd65af1d307b3803370809bd3cce76fbf8143268285f4b8c2d6573c77d140a0955d92d463bf00601a1f08864640b9b3c2b5d98e2d616679be9f48dd20131a3f5693fefd30da2eee3ef2eb79ec53b84fc03243aaf7330c6a84d559e3f75a16042a36b860d644c026982edbadd31d6135b1f2b546ea9faf491ec53921fbe2af96439ec0a7e6c9c35ac440b1445a00fc83f69cfa8d080b3ec14f681c76489e9166ea9b76cb9c57042894ca263733159496782eeb031ff2861b86aea12fedf9789726fa6b02c4ce4c9e2391df3b2a8c230434ebd14443dc8548f52d1bf89c1173faa5f1b5ef8ff8c1e0ae8580041b6131dfbea5954cdd3a10c57274bfa1d9dcfbe23ed8cf62ea6fafc110ed62b96b7910d1b869e5cc72f675d5f43743fe15160583d5381fe04727071dee3f3111c4690090638420a52f78643ca0323ea126a776ef0acae35a0a76b6f8988a44d153a09958412a9640e59042c4db2d368407d39388362d87c83f63cdb805d1c17f6822066d0e182a7f638bbffac91c60d02ec13cff5270ae38b0fcac59a62bd571e26e8cc6ca06ebd158b7c69778424315a32f315f6c4c87483819c7f028852177d65d4cebd676e1d0ea345096c58fc1313e7f0f890c50c07e514bcd200e769f94c23b530613959e1136933523a21fb0874180d1484bed6e08ff896f594455c7b87dc698e42372e6aaa98c86533732f74c4d9a54748638a2c1b1546335a99a9a8a7eef859a6d7b560ab864757e27479f1122d855f2b4a9c3582f011f72271dce708bb72f6602b0e0b53037c7f591982ad46e9d1a9258efad9e296e9e06354b116315b89a868e85b3ac37688e5b9ad5deb926257a6281da9159b910c6c6994ef0dfc7e60d911e8f64c7518b24c51dacfc0afbe26afa73e594828572c35da9e69ccf6039d5f25ab2bd72c99d676a7b95ab90c81d156168adad9b7dbda2fede15ce8e663ef6a8b6ebc7107341eb6d8286c4b758b3375dcd9122ab5e2c533666735fb9c3f2dce80959b85a98f8437206db914b5485a595eb6601decf86a896b005c385ee6e192ead9bc16173714fdf7ddf4128332b3cc3f2604463e6901e7aa895a18ccd209c1973e7eea5db0c8c4b2ed72a40407ec5f939be90c86893c1a9deb286eeefc3a2544d1538ef68e30aa8398a5081deaa39577d319dd65b2b8880adaffbd307754cfbb7e915b006c4723ddf32e094b5505844592eefb6c443189860cf76a8a1dc1cc62c66c33b1f58843d75e93eabc25e3c6559b56f7d1bbc6f9c011d7ba2795e1244e5d3516f1375c9142d5dcb17d7ab59c954f4a6bf19eb2088d00b277b1c176448eff7d0bd4641b00831dc0dc92fcf729c06b1fe1f9553c8d07aca72bc5e2d9b462deb4f0d37537360b1033332da4d88827718bca864c3008168e96f87343a042d12969b860680ea09f4a4a9d7aaaf76e31332ac7e2699c7eae4027013f7f3c74f02fbce1826f3be05353ca780f919b341483de8c095b71c0ff1b1b53dff43f13073dc65b2ef3ded1a9a906fca31873f2597cd0861a93c3dcb16e995c369201a073e59508d5e6be5646dc5038412b65ab3ff7dab5339070561f560f0c3828be064c8aafee3ff4fdd7df7802f65e4441669000fba5c767f07c318af6bfaa58359b92f4c6db1c9489839c0b9532a45e09c00d9bdb47145b474c92c4e18cd014de7897c944f8d22a67bf1697512b6525605abff7441691a709773a059469536006009fbcffcd01fdfd1a9d722a5602285a3bfda7efe99d3354ec73dc87e1995c54903aa08b5e04ba4eebcd953e812dc77680a35fd016084ac5c6c20c5819db633445e60bf2e4b1b4b2a2c91709ca43e75b91afe6c62fe6685783d6bc4394469e4a5c46290c8552ed38db4ce5e02f05d0ea306ef7e0e2dfbc0a8e6fab3c5579c63f835f93ce60883fd7e46b94fd6aa82eb87ab1e08b81cfde059bcecfd9bb7021b262daa2605d064be42b10fecc68cb61cb12296e3c42c0a000544e50b76356da94c93a56aaeaed70687d6cfb899e9ab3ae7299eac71694cb08526ab7c2813579a28b835f3ea27d7292c9c1e22806134e748633330f40ec0a820f2ad71547b223de940643d9d19b6376e9a3f0877b5eca5453a7d032388ea6c00955272687593cf5fc1eeddf2804c9e563fab8d6af55db467e7f99ab59a60b681546d7cc189534cb1a97948e955ed4dc5eb8244814da7c7aad5189d0afc87ab456fd5d80ad79ca0b348a3e74840d87df917e1276c7370afecb0d45dde27a2b12d020dc172aef8cf0cf8a0f4eaebd351ce9aa85b4e614be9f9f5f8b2e07783dce166f57e6b8302b8b473f531e3f7d3da9e90fea365e089ebfcb286591e7b846d3ed8811254292e98c198d24ce261d4b0332cff02a7897e62371303e2840ee37d6d933e45b7d16dfb62cfd92b9b09928c305d6b3e4e420f3b29ee7608124f1a92b49a89a9cf60318b1a734a42c6dd8bab8f8d267de2e1949fa1b50b0700f298db2a82a79a07c328f7f1e1b3456b060d426616862b43519c7a3191f96375742075812b217e800f4c303aaefae8d9ac73268044038a22725c7057f6640752bb833440557e0c4502a27a7dcc093ee61d73c07d30c4e6b21d8ec182196f105eb832409951caef6b1eb1ce8f7991781c74f020bc7c8a415639c435d83cd97b2d6cdb05f89d183675a7eb4adc666d663fbce21a88be2f182f25f4b43202c4d4fd309edd9a4669bfd9491c4434dba11e7d2636fa30da94dc9f953bbd3414c051052d4927fa63d337aec696a4ce43cd00f1d79e1f69b22d777bb382c0e758a70b444bf55b1437c88bae4f44b59994243dec66fdae8b8572d618d7fef02380fdf60d4e409d77c6cc36f380eb19d75122cf233868d96bee0a556c935ed974db9ae3555a2d39cdc8f9d12920360bfa72ac14533b3eda7ad7c7818f97734efcffaaa3a6213e3379712fb0a54bbd78a4f82c3cbb52c3709dd869e6b0bbdea31cbe7a4ab3780e8bfeb24fcacc6f5f8ea1bc3bdc11403f2c17bdf0faac71fc67231be1601d07a084acf58db525f824210550a03619f106a79351d2d3c4d2b73dc052c4ea14d1a1c9ed7179ca4ff652ab3f38d78dcdda0b29cfab5786807f7b2b116c60e4e93e9dd30026ee290f1edf4a98e9d748567e2b9d163d4b46ff0f83f78d29a99a43644af781e0c51ec455d36080e1f4cdced1b67eda51c0867c0924171357f67d51f3033ee118632b72f0b3fc8317c20affd9930fa75c3e128d4530045bfbc5ba3630f861a5ec4dd6a309d98f92a26ade5bd8ccd41dd14865fe5394e0cfcb428c93f7bb069695755b1e469a3c37602627f8048de9ab7942fc850baeddbfe55087e91c09fda0028026d52345de6aa813da5e0d5ac76ce08dcd90a3d5dd1b269e68463abd0fb759d72585570189dd842561c981ae4fe0c1e8464a2f0108508234e46afdf102dad1c23b4e33d126c94baa019b3eca3530dba956112bdd0038ec1327ab3b093048bd1166efd6d78976d235e2cea09ebed20e40356e8f23292320146c581d705dd8748be0de77924e03ad99019277d946b3aee6903731de4e72444244896bca9ca13f36a3c88d15067d3c10ad4086a6fdca1451dca2999cd42a2d66503f55276b9f401c1d122681d0cf91c8439720de736721ee63bcc7f8c429abe2aae044c30c341b1126d6327c6f85748c58c45002a5053a8b0ec155497cc4071b4809842643542ad70d86aad1bc0ce8bdaededa90210393e9e05419ea6c386b83161c133d8577600afd8d7ce15523cc5d5bff1b9a83be5c6316d12542113be9c9b296da71238d90dd63bdd530b1b44fc0cfc8e2ba94540ef77990ad38683d10a883250c354bda0ea5219f8929ae0a60ff6410a1e982bccfc9ebb4ed90f98e869ce57b4d359efaf9b83b31685a104b5d1712b377fcca3543cf0f06910f17e1a25de60b2bfda660e07551ef58ed6224bd64bede95f5994fae1b70e0c1aa64150929ec3b89507f2a25831efc2f28650fbef88b28471dfffd15a0deed61cc5c8365794a0bd30ff1b71e67d9d12bac6167335746156eebbaaeb49eaa68fe455718ae7e59448870cb801db93b0fb759f4be9bffed977e833fadb5c90207ee2b909fd39601e068d99c59ed8a4f3e1558d215124f4b4f4659c75115b1f9e893a5d2f7526d4582a02cf64de9371d7284e658a48bac7b998e786a5f90df1d9c973cfa6a7a59a327a7d2571f8e3f4e484ab3fe67ee06867f3cc50f54c50abc517b3770c8f6731f277def01c69e6e0388ce244e1f86816d0f33a1d89f2d6f683577efa990c66cb859a2777da87829df8f56a35ef65a8a58ab1e704e66170bdd1d93cad04bb3e183bf596e7f3c2fb13fc1ee90fe4a460844080e5bbc5b6795f66ba2ecefbaf2a0af676f8bbfaed71cf72a332d94d48a236f23223cc811de21b72800c5dd642d6ca85084cb82fdbe3f243f7eb9f2005acdde4bdc56a363a1806f7c3e8357d9a8c3fb167a89e4696435503cbd1524f43c1aa7f83df3b8be396f9e2806f4df231a62e3347e819e91d47b531966ba7f3af73a71f2206ed8394b76c62f40173a7cfb552ec5b48d9d3b4800b6c85e7961b1777ca415b5216b57f166c64a2b22ab5669b0c7178253154bd248e6ff20d31e862b545579fcbf10552191939c60e33335d80a49f56e6aa5cc75565161b0dcb283dedaea1ce4a7d8a2a173ef7ac99e1295d612d07e914cd1eaf5d9a9142f6265972248fc33a12669bd644e77b678aa6da92166d3f36fcc73770794a49f29766fca4532ec4a3db184c56ba447246b2c802bca7735dffb91edf2f05b26c312a65a6ff84aba93a2c72b24ec71f2b6e31070436665f0ef4f97ce36c7b0e50c4c37d7225b74ddc902e13c9f4c9069d32091ce649cdb2238566ff3d4a4c2a9d64dea0dcc82bbfcff28dacf32bd02795425c88f0072679faf7b15af6b6df70af95b62c7fa59bee944791416e16cc36e11b56c975d5ceb5a9b3e249f555475b3cbed28bf3207b7cc4bcad6ae5a98604afb43b7099bfc7de2581b72f700a7ed8d106efcabd8325fc20b591fbd8d385caf51cc8b5a21a312a4f0dc5c431b06175cdeccba9e22e35afb8b6905b9b90147a0c00e142631c9650d7e1d2529a3e9bccff5dc995f57a4853b4d8b7e84b5391c01e7e77352ac4743b8638614222163bc02065e8270b9310b67df4987857725e1e44074d7f8902eb0b77cee0561c247387dd1587a00adcc8ca78c338c084b65c3fa9cce487891be8912e077f06f2ca6218fe3ae351a0670eb6bbc978282950c8c2aa96ecd619d0aa828909b7c424715b7d45f4f435839c38436a1a31da7271953779952f276c2b45d4c6adc38f0a0bb7a9fb068e05dbcc0979a8748f8b12605e2fa945bbfbb47e91446f037d7565cc52d45b3a3031fcc8455c1f052cf7508627ae94bace60f6a7e759f7c390ba3e97045d3c50b55f8c6f2b3f2024ee55b06f9ca7171824077ea8c75cbe2432e1e005a4962ea4ba0c0397d89e5fa3f84e89b43db2bcc08579686bd90bca7e68dcee3d50787d9a3dad60a71e85a3600c424c2d3483fde61824a266f98f2ee2c157fea7abd080610e86ce0681103bcf0caa330dd575f610fd30910cf1f0bede0d27f4cc7d3d8eaf50064021f367b824095b7f7f2f33a3ab8612e041c4f8de21cf23c0813ee19b7aef54bd97841c4a8a57c271d936739083f42849222c663ad391fe0c65e015b94bd2ef7f7c09d5abe71c2eaeb495eae61827a9efbc912b36991e05cbf34d80b35bd1d5dfdbb2afc4cb611da4fbf47dcdc2a8a3798d0e3428aa0f616da9ee6379a0d39108dffc1dc0a25fb1eed0270fb5ff566b759582f0bd52e094a03e008c242167a4baac5f4cdddda13c88c18bfdfefb60c92cc23cc3b74a8ac1bdd090531fbe10b905e22b33a002f90fe5ff5e09a04d9027034ba533c411c13afbd6192580ba73d2f24d9cc2106e293bf8f5678abce2888834856d9dd9c221bb92ead904f93fac535d3d0922ef2235e5f2d35aa98d35755ec84ddb66dcaaa87ddfd4dcb7e8d210ef2f2616519dc26258e3df1d8f067867411b0f74fe68c31f56c2efb176ab4e8da9751a05d8883de53bfb5b0836c8f0894d21f9d5ad899639f724e0fa3a17d6672062cbd5997cfc740f1906c02827891fb14edb33ac1935ea16bdf99ded206b31fc74a46b82f741a4d4286c0d53eafd498d88ee57c15672440c69bdf1310f9f687623bc2b3d2f7788690e80983da05465f9ab234b57671707c3fbbd561e6d42dc6f9eb163a00e58b5830d25564dfe228b7e4ff44d4c555c4d3c7479e25110054a8d3c6dfecad69015cee8fe638bef2e093d087cb3580bc79a3d9fbaf06b911c140cc5d252cb5c5c0ae9b0f9aa0003e2e5b8df1d74917a1a3f73240eafb9019a2dfa755c86a5e158dec4edbfb4505b59df3ed2701fa1ef3499ec3f4ebd672a17f7b24fa12554ff8f837c7a213d283efaacb8f9ecd8a460e5168301960cddbf636738968a758931b2550a6b121caf1dcfdbd36b0ac1a0540c88c1854775fc09cb8f5572e00a6af242cef51fcbc22b4c11d4e2449beec0f7224b8dfe2b9072bb507ffe7a70d00f2ad91606b6121d3eab759ef239a3c4e4b0e0c6ea7a64c2b9454d6b731f1da0f1256f39176a1e18479c37202d94785e908d2af5eabc5e5f5f7eeeb0283a0cec8ebcc5e75206fe515ae62a83920342b0be4929b8ef26323fefa0501ff1da5cac0d06a887f56ed06c630e83f21e1495436ed4ccb406c65435f207cdb74d0deb2649560148d9ee4b2c084eee23adbd3f1817724c2ef9a97dc4823fb6e76e64e672ef8ccce378b5c387286eae4dbaafb4cc581358d4a30f9398ca1387382ce337425dfc445af82ecb26852f17819fac9d15bfa9a57cd84882933d6b8c036415a4ece1a011fbf4d1527ca482e545aca2edc6062e56b3389b9ba394217f5a9b945cafcf9debfa5b0e45606579b6de37744612c1f78d7855fd8c99efd529c3b8447398a639b729cd8ae974e317bc133c65ede376771ff244aad800f65d9c5ababa72ebf08f7b8630f946bf87962e1045711f678e0bab8d19042315506344d5d96cb052ba4f4c3c70df230b660c04a253c2c8549391c256f2fa8289b8d05e841a4e892c2526adb4556129eb6fc00f2ce3392e8b1cf7643594be007534b6d70dee4ea93c8f8ff13b9f94270a4988e0147381368419879869f479bafc3936581a9141a9fdaa5286cc45d8171006a0c60b5bedddf048179ce513677224daed6b8097b5044dafa6b92aa44436aed7e9fdac9b98bfab25a9713ee3dc06fb4fba853cd6d84b6d38fa7df9a1184da4ee026e13bbba931255d7175e7e820eeda3a7e7b462517faea35feb148f83df0d3498333d90e963fdbb7efc828ca1c523d5114b92d446a14d93d7559ef47451b889d1db97d5fa07e1f54ed78351c4400c226437ff8f977a340cf5e6635c7d2743a7a30e526e5c309464abbdd7a8567d5beb624bc571dac43cde857b3c0f7bbfc0a1c6230cb8a19dfd68d870c5b8b0945b8de0365b0af6e2adce3202de5babdf9b1307a36f1d94509bf20608d242941d545690648bb1b58119b6e51343c7f51e454b571d5cdae431713eeca6d12f42580e713cedb114a0dc0ca86ef6169482018707689df25c4e19e3e5c2cabfb3e1efcc1ce54cb947e52b589f5ab9f21e6f9f6e548d5443f99af2e7835ba7fe95060140ff7d2383066dffdfc1a37386028a6dcc67bac2b784adeae6bfdabe0124cbc6d33ae495f76b935c5948d4284426ffcb0af1a64578c8a51dd161333b7488f90f443ff5562c73279cdd8573526577316841c0b360fce178a7ae88c0290354983faa916d61f0d1252837e479163446b3f52092c0ed46d43b4d10de3069193d6810b84fc81cb95cea6df147b7b72a3c42fd6cbb4ba03c1aedb3c29b24019a51b3b089ecfcd7a8d71d1cf34991299c8d7e9ff6e1f511a906252ad2cbfd92dbd7ba8ae0945e27a81c57d5202ad296359e4ff1e1c08e41d1a373bb5468b6bf664d5ff80a14eab127c6abc6ca2a42c61a093711473a51f38e204a5e5177c58eca24b42d048f2d1d54c36bb626c93748aed3d282df13edda6d73c219576cbf7f90a3f65322473d250e98705c17fec7b02d4e3ac011e152102127aca671a916904d1f975c50a49f1312155fd6c7680e986676464360bdbc7bc4656450bd645946f94bf78d06fc6d25294b2abcb4dbfa258e9e232e1cb832174a2a06148a1a7ec960f14ca0e48641c538becf8a39d02a1d018e9385d9a9074f0d52cde20d70ec87478311597a6b3ad45ce7d2ad81479d5964c9694dc9bd31828112dcd27fedf0db82c475bb9ed10e8c7e85e6bf0ac2d3b89a66dedb7744c0808dd07f46fc8b81e51ca657cae47bc3849096bd8df67f02e86347b4f169e6274ac1660d81700e97f45a98e8eb97ea71fa7ae60931790dd2bff9302f3f78f1927efbe19112dac507d79b4de0e09879251f7866251597cc863f6f5638ecf2e497c24ad602d75c9fb260243523cd5dd4a0b2edc39f60b5ac82b196a9de6f2f80a409bfa648fe721aab244daf4044c1f63bf4c743b6190a76b8befdb456740efa5719e721009d6aec296bf8e0098a3fcca4306a3d2c073137f9dae7ab73b54936c83fe0b92fdc7a84f4956af691a28e45b50911dbfe9e38f901e0d04ff4877abc50958ce1adb1131a27eb2275168565e6715952f9a5d2fcbbdae12a878aac53f7b22dec60dcb4629c002462f7fb5c89132935504d5b9a72f527f3df47572d0504be3c10f11b0cf0dbf4f849b9fe52aa1f9c063c16480644378b3510bb47eb4fa9feb2afa50a25a4b1e479f7178c15eff8e43096597d744f26dfc651313e1538f82e2f8fa12d24aeb2bb26f9b91292cc12b011f5bb0d3bb4b48612c688b8404441b2073f7b4bdfc27702883a0349801c6251ae3b88bfc59d51e4fe6bc3ee79c89b4292eed9bbdf70d18d9fbe164cd597ccec3d60df1c8d64eee8636b3a08e95801125aa8ed36b6cc09c2c4d597b5cfa043c477e35e600a19f3ca8df5b8e0b95d98241aeb6ea03fc1b6f4683b76855a450cb478114e4fe15c29759a2b94c5348e97311e63f711b98984cdb7177822ca8403f41031221c9d52eb2b9b646f45d242faad3d0e994e07bd06786c486b9e52fcf095f9a95dabf74fad184bcc8eeb3572e8455c1a2b3fcf0359103dee8915a083426b523b13f61eee0fb91f5405fb40b13eef7cffe9265d55c52eecc9fed6df34103f9d97ae774eb489e3e808ed677e22a7b9b9d3bce07341233704d451e55315305a47946ecb83052e60d6e9cbc7db969ef2dc8abea1936b9baa1f041b322df2f503f15d897c48595092c5e6ea907241ffc673aad2d6da22bc23d35a7c2fd52b06357b21e69eb8f12acbaad5d8c81f6a4680f0d664d9c348039b6bcb4812f0934487414f30115022104e3e752024d517372dd196db241ce49cdfe8c8718a4d4250e6f017b177a5f79b826583c0ac7c16e4ac723a4c411a7180c58b03856230038a66743bf49a18184d64e5612893a9ec509388481b4efe446706aa581c22193f791851e85470a8b25e1c36f76db7cea44e959520a56b6c58fc23678d201b6e7bc912bb24a38c3e3e74eb7656778d6922089c83323a08e4bfb487ca84c3b948f530676da698cdeed6f0af126e477226f535aecef93449cc00a4458efcb289eadf21b98429359f9c4527b038c2ad12871cfdaeffeeafe4f1bc5acddf7f07012dfdab07c3d29a79436c1eb0a8931c4d071d247614a702a11e7a9b2b1f4e3e47b328ce3c5b50cb2edad5c2cc60f66f5e90a587ca060604754d829b8a31f4cfa1fbfcd0b458fdd06eb860402bbaa1e6580e70fbc8f63c81e0fd380837ffa163ed19fa4608ce897d78ef01a478ea9f95b21ce1a9daaa31d01d6c21a3e88f42486196645c56e786189e9e2872c12f518483adb9eb9a8896913b565f25dd64d4761b55af84a96e762131a8408a3dba843ba3da736e0642139e780c6c5ddbe959881b5aafa96d6832ed2d0cd3f28b7ae57fea62e045e8248619a2eb481a8c01968c6b0214955cb9bc46d72902dfce2845aeda4a066626b226c16569345486eb700b231068edcb9918985e8e0ebd9c61642a3003624cff7af29213b5cb69204bb6fe4f388c7ac689b55ffac21ada11ee81f7b27116616ce6ab5332cdf6289ac8e380d0d3e9cda255dd6fda9a59b1808204fe3a34f44d227668d2d58b4065575922432e8277fa924e756fc41f2671da6dc34dbc792614b46b9b54b737b937371930c525e5c76d0f9e3fb793d9f0541c35c7d5f0e293484e4953d496b75ae88ed76ce1e8d4bb81437e95f040e0c87915f5a64ba86cbda9f68e57eaf569b322d05e5cf48fb1c3330fc1c65670113ef75c1a4859af2e12be5fbe13073e0f9a6cc314750e3225bf1308a74f0bd6cac9a9ea8e8f50169dbc455a090f8ca8f7e99090fc7500329884101dbc2cb4a490594ddeadc432d9289a3a6be2bf9ca19b2da2cb85bc59f0ba8c26fe363e368afbc2830727b40a13483dd8636447a3d78f3b8d928ecf3cf9af377582805a754e236cbcc71d6d3c4c0b702c2d15c2d4128e66a350526ad6e1eeaa4139034bd9adbeb12bf81c4fa49b43c24389870e6aeefcb3c8f8c200b037276c3e6c1f2a6aa190a09c94890affb4644917e851b23a64230140bdf9f34e73739ca4d36ab95bda70d58c579e3fbf6d4b0dc74e58a0a8faef49e984e7af26cf4d8f66528effa63d5c153c1eca2313109d0bc0cc4b523b51896caaa4a7c7d23e6078e4b7181c6610b843d681854469019191b7fba2f72781b6692ce29df0a6045308abe87669aeab9ba07b6d2912b3336446d63e4b618751dd3bf9a78ab8ef4884c9d48d2fbb6f244a48ca929e038dd293ead04e27454f480377ba46d9479e70745a2a37b3d6e81c215af5f17057c1b839a82900971c304ab086c93ec70169382da06697887f6384333a26548c3c51701ab0be4dc14303b19f99f483a97ec371d97e4af225abae6c22f51367f57bffe689f4a23fbbfb0739a5f9f484ed0a44f4ba3b45e1abc459ac8247809881573a8f945289f0dff415b6faefba369ef54b0bad4483a0c0de40c72b0204c19ef3322013d033a00c985cbf997be8215b00b671149d9b074ec52cf30f21245629f537846f663172be5b10a61aca287e5cf918db4aae0822b1af5667aa9473e8313a93a30e3dd15a13c1b99bf0627851ee18105dfda4c2b566f8355414c63f4f8b9d5c95a7f3adb94441b2dabd6a6babb3691e1e36214b10b0aa324bcd49ef055b55bc539f9f02be6f18287eaf9825f331587b0de9fdbf141eedd9c34a42309776f9b36d0a1cff5c4369a969b2fad1fea25afbb20038617446e1a7b53ef379734b768fa9cccaa434a5a4bc893dc733c98990a05ccdbabfa62e4d9fa998309dfaec177f1d460d91a5da28dee8c85bf1628f6221f2aab6b661e65dedcd36ea894a86ed02dc08b5115f22e32c69b65fdd5c6533c1561c78ecc4dc8e20c0227917ff20670dae1d28358a61c0326f92d66fcc93a5c1f64e84107722f1d4844b1d0a568636384cc8ad98a3f429e80b8ecf4fda5f780fd2fe83524a0ec3b39a43923dbe4aea9d699544d1e86c82f45f5800f9963b71184d7b67b041e5d490f77888a708791576011720ca5fe8488cea53884945ddd4c005dab040fd51c0b731ff2610bd464d4d7c07fcd056dfe9be18039e24c7a77732bea6382f4f5b7ceccdcbe232ef5a4c914ced307dd53d1328875bb642f2e4d4b252d1cb1f60d9f48b098cb44bafcd8ecc5e4855f0f7bfb9327afacc2025f2cf06e0696d5805ab19978d0cb627867370590cce5e7eba2d8cdc719aaefdca439acda313afd9adbaa30d5e5e4f36fa64123d041a5e68be3766320151fc3db7ad71f8342ce27009041dc927032246c97548f8214d9c75aaf4337469da5a682994fbfac1599ad012dabb1691764514380d70a3defa439a2ca9cac4e81b0f401e8aa4fb7ee3824f3450976e6d92b8d561c6abdaedfcea50ca730bb5f3e49bfddd5bec6dedf7bfd922083433ab0b30d521a06139735ff3cbcd7d7558064cb62d6157684146c999a67538185c7c7c44eae0fa3e516740ba049c9e84c5118811876dc840f65f595c62e2f9cc5788fbaa6f49929545d67b64e7ba97e8f848a12e80f42e021a3c78b946511b400fc9e9df0b8faa431ad527b1d94dd001f96626195d209d53abd75b48a0366f35ce6a26249acd27724eb7d1c906e5ab921bd2f820571cb93386946046e346eaead19082bb24870a709f7a8d6aa1970e1bdf99409cc0a03c1db619fd4ca94552c0e2911a9316e93e7ab05b20f46345ae6bd4c37774dcb30f4952ea5572204a1d74ed1d8593c14e99847fdb655d6f1a4b458882a019f216656793168b989f118ba55536ebe61c2d720c4bc2d07e1ef7f286341f3acbcfb0ac3e7b442f53a4230103657b43ce27ebaabea059187709af08baa3fe52537c130c20faa21ccdabdd76712ae7f37e6210d1b1fec857b9214ec3e6192e5a594c5f69dc5908f129fb5c4799d8fc5bd52d3274b771e71db4055c22f971c64d7f95d1898ed8079a45c9fdaff7450c52e49d3efa5629598192321fb17657630d8c79d088c68416fb90b251a043d3ac3b08fe98ef13945c1817d3f76b824f34372d3e7273790052afb55bbc0d7ba4a4e92bdfc249b5b0a216a70a7754be6b1912f684f5d99856c21e61219a59b8e31fa8e8e7d2e28a5e89dc74466f29b9c6d5eea6ce9605f0df679c8a664d9f08c4b6b63814ad8d66e9318397fe1439c667019abbe9b59eb43c111b55efc496f66a1f289011d33a622ac19ae0c69ba72eb8dc4fe7dfceff270c9e7e41917fbe17dc4695ac96e25336f4f8d84ac05fdefab25cd99367c9c2e66020c7bcbc6b792c90dd801ee31b7326cc5f2dc860fbc808c2a618fae184ccf9470892f5b24dae20a83668c8b695d992a9514e68a07f9ef9509c12223fd7a9e7a183560eb0c666465dca5ccea65227752eff67c764bd468d71a862b24b7d1382247667cdeeb805ce406c6a7d3e2c2d03263f40c2d135ceed7637c312523d38227c72cf5a1e541cd1bde98deb69a5a5b2e399c9c74c2cb62d579aacd6c878b2b9fad3639ed5b971701983394f15fbc565bf98fc6c85f2dbdd37a82129e86af11001dd173817b931e78da98d9d9bf9484c7c39811097cbec098d4707075e32c0869d6c6f24b021a346c2e60c8cab4db12c4e6ee130b437a995587eba2df593a6f961a140c830484b0a82fd6af9a6e6f39f8215653612cdc5768903b5f2edd2813f94238308262719a2553bcba9c4f2a3528f500783ff43e00f9c87f70463ca5100b239dc02277d1b443c8c769cae0ac186a60afe70c08cf6bc6449a3293ade045fab4078ecdabb6115098ce001302c07e564066f59e293081f31726b5ca12a128b3facca164d02340065d1977c87ea3adae91bb7414ea8fe14c87387e8a711bc98c37035f56b13f45e48e89e9214c0863f25eb060bdd2a2846f9bdf81fc9fbd97b68af103c813928cab43b608aee9bff1d63fa6b265a2fb798298a5c211a832d1222a1c0bb3726107d21df7cff49c31bcb5dd0dc75569cbd5c1ec096a77d28a6de400ac5f97af78fd24a67d9c13e26a6e92f6db8e65629814c9ee07945b8a8afdaa352f5fb292e9ad8c110ce2b79e257e7243a9ac775190193e3b0d141b2c3b3a54ec186e90a723760a1886ea05d2f4ee533068bfc1d1b1cdd7f6dcfb8fce2aeffcf8542386721f3ecafd0216b1c9f7b5e3cfc5c9f31c66ab29f13a8f81e97436e5f6513551a6401699859631e0d323334bdb3869ca95c94f31cd41af630967d50486fe670420da799f2f814d7e58c89cecb7beb64f4faa4d0a55fcb801c613795e54e3525a1764584c3802cae12ee5bcbb78d58fd8bf0332fe708d97ee02d3fffc1dea18dc596d65f63703ff306293d8bf9ee4e35a07a66891f245138de064031147289205b5944f86a5e706b2c1a50fba270a84c086bb15b18ace826457f5b57f0957205646bc7a705b924bfb4dcd3e534643162f4b759257f10d18a340db952f80096d3012faba9d54a7d6a2a05757c5af7d818a6cc7e81734e858056eb524e7fa5b5cb17d4cc1100ae2e92b1d08caf04205f58831504cefc7b4ebc7a850a92cb95d7577520eb50e78250df8ca9ac866da7abcd264b686480ceb7dc07725bf6dd52db99df5d8f4951d42ed0234bf4f4c639348c31302212e82938ed7496305878b1d3f3bdf91ec031d894da07b7a4f1ed42baf41b62660e74ce1a687d96207143d6f8eace339413743d2c050f625f4caaf344229be0311931177d139f2eeee4a449475ffb2ab5f52bfbe84326f8e34886596b3afb5f980d0095ecfd5d6791f50766a077efaf7bd8d0958f561f7971dc56934260ed10199d66003ab5a803e16e8904926ddbeca53f2a80a136ed48fd2e2625ae5bbfed34f1da72f90462429e3f42ec6735559420b1e04e28929dda2f8bd940c5e594650788360422667b59f2baeaa7aeac65545ba5feede60d3e38a40da4e68caa218000c557e015b01a9c91a23d4a7d869b7878b1fdbe9e1007b7d51a35cb06ba337d30d2f3e3336562a98e3a529ebf17ac67259922458072e0b6470a17128fe1a4f42dd83047b21b57dd06b90819486510366e1447f57e6cdc14b3a66f360c5e600b34bf8bb128bbb230f465355ecc03740b6c8dd2d7aaef129569fa33d8a1ae2b773d53f2745818462b92e29404f00049035dc7b692dfae2fe390b19989d083870a1a5669ca90160980684792814072b0147f6981370047536d0f3b587bd5ef56e0bfbfbfe295d9a7bbb659ef0192e7e70e4ea04ea0329fba3f39ae6757255973edaedfd26f404fe52dfe025ae18aeaf5cf5173d2ae738d09497d4cb2d7d91e57e1c0defd62ac4bf1df0f33e394e3101983d507bb103f7dd874aadaa6edfa624d683cf885ced39960664aa4911902b0afb2ceacf4baeaacce9ea5176d7a7da75a8bccc36278deb44b87d661a7509c17158ee4c1a3746b46fef64b42c0d2066402a78dc9476096e27d77033c6f64a42d6085b95e7acb5d5d37a77f293e4a0dedd6455a39628e04bae3e21b45ae5aadb1763d6bd44883002ca320d4f1e8761371e0ea5ecd8611a9bcbded7154230c70839e9d12e091663304dcd56a195b2abed646ec2818364e63b6f178262c3a15dc8e63296ed18ccbe6b244eaa9ae404808469a224ee7e4484e20a967381c50dce19fa550f762f11d32c05017b17ce3bc730c928d5bf9ed7b14787a0e7ac2887fb1c6249435ccc4d35a3aafdef19b6f37cc419e573a5d63542bc76d3a855887ed635d8cc5a9bf06955257addf651939f5730d18a7afc6777dff9ba7a1417a10f097f2b8d2df3a56e972347d6415b8ef3e90e673e448b55887a7ed3cc6e238478eeaae3c29d5edf224e60717c410a3f0e7ad61954486e896f36da24303ccd7d1671030981d115e4f0d7fad7e6247787477fe59283f3aa3b27b27f585fc32830d992c3329ce742c06655f11ed4d82f21f8f90801141c2b4f6a8aceade3cd1d3dcc4388e7ebd16d146b5974c0e074d5b2a66f860ed1254c0a04138258a0c2d013cdb64d21d2d39d299f66039678b2cd0db4fba6f13f94fc2369d50422125ef0e812a572bf688f72e6fe557450e12adadf70e4b9fbbb93d9366aa607da010454860d98fb0bccd005588a30a8ae989ad10bf36af673904511d056cfb632686097f96c0458622df350beaa0a8340a872229916b5fc974d2a51d0de35b6ce64b2d96011fe0eed67a09e7cc9b38f97e9ab878f0a839373aae7e96e28c3286ab76c814517f684004f2a2de6f88fd780f9477642ca570e1c2cb2e62d0b7af767b9524d5725957d0c4eea3eee841e5c0171f525aed8a3e25f7abd6c5e22a3e555fdd74e6ba5fc070e2fde6b2a4a11ff691e21919a7651f2b4ef44aac61bacf5381dddb8bb640f3345a53c51b0ac73cb3727b8b1d05e5432b6e013f3e63db3bcc06093f26a206d10011673bb2abe63b6fefedf703ac7cbec912e7fb2c0645b05ee3a4ff2791229a9047352621a35d8b9a6661a64627c4b5aa0687c666e5d59923334c95205f25a34342396f33ba4a992556e1dbf8982793ffe8ebb4efd65c8155ac712b5305c786043eb151a314716cbe006051693ea24d2c773f492a2445ddeed79524281b570ad3c86cc44c4f8773c06d21378e92c1d575cfcd77cad06e8c718f1ea866b6ccf9c9828cff307a557f8e9a953c4a990d5b34cf4f9b8302435aca57b2ec57c4bd3d7dfb403f396c214384a6142f25492ece3369f54e626a388cbb322ab428b25fe51547b5050bb376bd9a7c6c2f742986bfbbce2fd19ccdc5755f88b4091ccdb7dbbc33930f38c971593528554fd831ac38a8a0941b6286dbe3cc0f8b983dd54e83f12302ee0c4c2267034bc5a783c7ff28ee56693961bdb128a480ad1b3185d42303d337fb4c2079d971337b8f07370c1d283ae077259abf08de74b752bf5725d18f2897fb7d858fdcfbf14dcf8050458ee9b039a9eaff7e6a184c470389ed9889b26ead4db35b596ac4fa9276ff99abf4a212e20f68ebc69309b824dd9b691e53fa67cca5c41023640e607926271f7817cd2351e46a485542eb4ba4fee5d2d58f5c9ad5cc50b830d5217333218ceed677dd580d7c065cca5335a5150374f3806bf93d69db581ea85103a0e203e6c8c84d99e77591baff4c8e22840eb2468f81ffddc36c50b8a160c3cb72df7f78d14ee2d579f50b1152997ea405b1960d2d3616abfe5c81ccd23811a07a7d62b8b91531f439a70a9111f4600fc2be95ba9a70b38cdff89bcec1137caaaca882d47ac80fc3bb124f745f8be84b8d60fcbc73e14d4043a4bb9a9edf334031333b5296955459f925fc17db3eddeb3a7770361709a951a192522f1db3f6c838bc6d1c50afc44a8a7a7502afbd88da3c354f537ca5ae34a7d8bfe1f591fbd78f22913f32f608b3b0daa3e0b7792f4bc1fb0025887f3392ee62792d4f023ce09d7ba67b2bc4db0b6f23b2f585252a64f10698a23738d5a9f99448aa443b7ede3abd8f92ae94b9207bf3e4095ae7c0e789ec0afce548bd91ce81151992012841c311566550cea2113fab6691caecdad1381399bdcc61ea854f9be1337cfa4fd29adaa2bc5ebf0a8fdb4f12a3a8249106d28e24fb85df9e6ed8a92767dc79b549941372b97055ca4fafd46ec1d0f226a892afdd2a625aac94d01f11f88777a9ce1d358fe768a7c48896aec16a6255cc6d1313e62b0896cafb130f6abc4d8d8f321c4b29a78d5121cab019f24a97f6437e30d4565b933b262d4d1c638f8ee97ad9a0849a3fd8d86e96b157be7b542d9df127d6dce8d4a73a6f9bd8b7338a50e37c45433f954761c41af33c7bbc28708568722329616ec0dd2ef4fba297bab1b8deab780edaed73bf8a5d7e1a8fabe7ec8a04b58d0a8c1b6046e9d417c13c2347dd85bbbe4a53024435b72f85b2dec33fda2a3596ff0ca9ac902195028a64eec70b348579829cff9e55e468c6b4c8415748c5ac13fe83757fc09cb1d1acf7256200150c718542c4413237834903913aa61ca2b82f3d4bcd7d28b256f8a818ea5d6924e694d5ae9777bc0063f2e8788bacdea70200a53a996aac8a9b80b6e2e47686fc36963a2022b038632516f51fbf4bac66fd8c6cbd20b7caaad5743dd28a695d708eed750ef7c6d5753668ba89ea78d8fabd019eec9ff0afdf6ec647531b5e88911fc429edfa17c313b201a0f5666aa3e1d53fe5b4dd7bfa51118e89affbd49a94e32dcbcc91b821dbb0e59fdd8d34f27b5cd20e13989a33b7ed2676b0b28f65a81323d2e5e315b4689f4a321665aa375687a5a9ce3e82873f0baef220b2cb312daf970964e10eca2a1b51f8e74e0f7d67f0febb6abac804f6e65469ccdc5106ae60c9c76eb1676b589dc245d2450e1ed9f3e0d77c6a910f0bde5c58bab2e52444b2b304aeda7a043f19bb29280fd8d7a04535a9421b1bed639f889335d4e7fe52f640db7b69471c50c68659cf90c33dba99c9950e42a1b5558467064c99c5914c1e9196ad0672496e3736de0790e398589771fdfe8dd4af30bbc69482ac2e532cfaf7c7c42dc5f119ef02897d3139eefd8cfb3bfc3b86ca92926b0cda1f547e222fa616fe7ad9e7db3e34f296b318eee4cc5809cecfc3fa6dad9e831a88d7d64427265311c8879641adfe3f2dc9ae74ad8ee7e1e8a82a67f76a2297ff5b525696060454b5f32fdf183e84484beda063f525b04ec231eba2c76930c99c67177cb055b5053e545764e4a32d96ffe5fb698ac79ec9372f9f4d78e6c867553f2cc3b13264fdb66880697fdefd56dacfac9b81ccf2a2e982a8e0f6bad1837754b66c1549d46359ad92424ad482ecfe298d91e404ef83e26f59df1d4abf6e04dd31506732e4a66fe66f86e1ebd0d79a62c4d0f5c42ada4e4187721a44eaef461a8c7487f42ee943a6a8203981cc515193e8aa829a6a4f767b4c93b9c0ea4b2b06ebed6aca8e3797a43bb48ee8f5589d8af020e7ec465d36ae3b1d3ddbd7311752293ec730f5fee3b9d7b0d542de23f63a69cdf8d4ffaed921dc035ca9d6ffe21988846891befe301281746492cdab6151c0592b09fd750603edf535d22d6ee752a01400b88b51d4de114e26e09ba49ff3af6cbca7b67fb4c497ef3a95e079962a586a18423d5fe391657dc91cb56a4aec909663fedec1d49aff63f63a69b3fdb047649b56893e8fd469c4a1523f554af347444ffb26e4e9a9817dab58ebd22ef58a3368183a1919393fa214c325fd39df18438521d52bac6e7dec8e8255c618cff335f119330bbfb5f3f16a0babd2ac1d54357a2129e6f3ff8d822463eef1f8c2526e8b6447848682c851a7d404e6d9c4e6eb823186f097346ca5b1e740a2cd30a4a4759ebdd71ca9a4177c9f2132d01840b9e56c39b836a9517733825a69089ca2d139032559db138ed71c6f8a24ca713ad313567f261dc837b189d1cad3763114a9c5403dd42ffaabadfaa4bfa719e0a32d2e94d452ab18e9b0d2caa127e958c6c1da439b0aa9eeb0384cee841cee427ea0efefdfb839737a1c92d83242e7beea9603725fadd15dcdaf4a41d776bdfbbd5209d10fa607b96e3ba1e717d962e47010fb63aed5ca4b25e285f0c08abd39941b793c26ff7a7f0833b0469a667c5fef3468850beded16bbe89877a8c894d166017a3c00a48b25c6864ea0d9942c7c1604bb730b80ff4535b8ed01ad23f806592ee4cad6ad1c20369eaed231fb67d6b300089d5c4017e36136c7841a83d492ad180f3bb393c3894819b56e5e93d5e776dc05ea4c85ab5eab3ef3851fde8f0bc63a0b738cae65d0e47f64466bf2074ee2e424e65b523c9cba887ab83649df5b6bbf3d58e8217e5d25942e6706d6300f8c53a22694a5154b1ecfef580c1ff8f3a140b5d5a35fbb420badbb2038147382bff2c67422fe7c60a72cdb2eeac954c7a414e9cbc7be7478c3841ec980b5f4ecba822117c81d2f743665789bc765554028617a9267416bb97a9b1ebc1ed89b6761f75140c4eac0cd5b38878ef539e428eb6dc43483c63367eef8e0ed68c5028c8ced71f44a7a9a4d52fd484e9e617bac45f7443ef56780a599f0fa096f36354b4145cdc25d4032b174ad041e4b842df6dcb76a87adb458f0434eb4ca10a3a08c743da1e6e69464c02c5e5d0c02a986db8deccbceb32790f88b7cb18e8cfd5564e036605c906918e17c81a6d713bc88d9b7c5aa65907db67bd65f022717e493b017206f62202642d4ac13c8fb1c5f9fda90a645e4d570bfbd35b24a1f68a4cafd6e294d9e136ba35d4ffcfa8d54e76fc300f13f544bae60e0dbe49841ac22684168645d86769c696c75172641128a46d26f6240b5b79c390497224da9beb25f594a504c8499c6796f8e478f453f651c1f11520fc0c9dfd3195e85e55c78612309723718bdb64276af261eac78f8a16b55e4be0df76244498c36992265c23f9746f3d67a30932b0402fd74d306b873e66e4ef018eaeb4d6fc138f53cbf58a471a1fd2d0d273fc2e8f7b0df3c840bd49201483fdd406a22f5c0b317233c991a9a482236d180ba166d850196ac7a5d0c3fdd19b1cc7e66a3f92ab45bf6795b01def211f45f619e13eccf3e433e51ae192c86aacbd053dd4265c8e30d0353fc0065162b7cd80c4c91eda3045d344c3468fa01a96993e190cd47d672df1d74d71c2d65a162a986f70818a8a982e083c94f67081b353e1b2095d183b5d409220fb4a05997f3a588703dbe53b14e743286766a403ced5e6039e76dc2745e26a658c24a1c7aa13e81949a5c6b05be898221ef1d8ae0321d0a9ce4f1e44724b9844f9ff587b203c08a52588652d0a985c843e30e9c2b7d6e42700c470532a1a1aac6af4979aa202906857e437fedc7fc711d48e745ee58a0882ab178ea678121f0b7e254b2ff1bbd25454df55445e4de2a23cfe05e98c852e91ab3e9fef457c8915358662569d95a47c79f7f0c6f306dbc1212f9c433b50dd9f6e332ced8ced2010ac40f2d91684c0bb968cbe7d221c54c29cba7e4953dfb262e3ff171cb38b9cf616601ab99f36b4367a5bb559414ae299a375679849506f840f482685bca554c864b85da47b910f24b29ce30e02896b5f33e6b8424bbd7f402670a57a8daac61504866731eb693a08b3eafd935bf3c14d75eb20dff4c1bf03be4b6b02731594c3030a0eedf1182d288d7b146b8178c501a3dea955be66de59db60c9b956ace94f0bfafd5cc3fad2db4313cfcffa2258222182526da541271c712c76c666e42aaf5d04b9921310f4065b0bd7c9159d394a1a7524a7981a463031976e760dab4c0c3970a0859e3b04699a864805a5a5ce9f28f22f2c43d5f3e3495303db2eb86810393a6a1ad59464d3d4351058a4134bb96a900fc777baca978dadd3f8d8a29713340980fcc3b6d8603f1c0611f38fcc69c6841271a67ac6cb57955e1c131c0266d9df30cc2ef7af9190d990036f3505e982c55302dfd7db523fb2cad2a42e221d0a90a77e33eab54b90bcf5c00d51f3c90aca063585b7c711aae6ba3190b91a58687b28f7971e69093fe2983763168cdf4cda72cf2ac408112188bc61bbf361d1114cf739a06149516dc940273e48476c2d4b33a2816269bf8b39056a186a6dc96a595117319c94a72c50ffca5cc9962be91ada33d2a6e9eeef0199e9f642ffc6ad84b6a3fa4b713cc5d5442a2d70469576f9f10b20ca32b796897d243799755928fbd57bc503674b723b03ec5f090eaa79863e84b30afe416ee11f63e2aa95f1de2dc946ec746b78800f7d908fb42d9c2c9e78697bcd8bc9f5ab1603074b0bc7523656b3130413c373804197179ad34f9a97dc4ffe8fcba67153cbf4cd0034922663bb1efd13fd61eec598fbac356aa8bde9d3087e87ffbe044dfff592ae17fcda8049b492b3fe3dfbbc0bf00c72dbb7ba9bcdfe34e7f2c099f0a06db19c9e01a13483cdaf19b3ae5ba747061676de3fd93f706851a077284fb0aa3a1010c2df479eda35411f865ffe51f3d2e0494d2cebac841d02160238c68c2efced3d63a0e69afdeab6969bafd1b33cfa16ab025be1e231c19a61b87503ebdc2966a2b7aa033f7723d6c827bd3e93f9b51203d40f0080c6136a34a556e699f1b2fbc22e8ad4f837720c103555d3ecf908430e393fa9931a136df4d0355bc8cf142174830f1d529d4af852596c25ce0796eb3054ed5700d0496c3ccef7bc4bec16de04e6a8199a015bc41277addfa3dd4405f030c84188b642240ca1738dab74d1137f6f9a93c099b6280869cc1b7b777edf40e0553b30f1fa8c18df7c497181aa5eaf9fb06e53a5e49a4f9a57151613bb368943e829f9e4b44772d9b79b3b91816d7a87de76733227193fe0415b5c4369ed68860c62dfb5f90f7053e2f6fa2262fae1d6eea394f389cf21c6370ec499f9059f44620472413c4669e71ce930f3dade3cfc90ff51a5b9c4490a3bbeaa74eb7d3ae91b76cd17200ecee4bf0f8acc4b7a11814369c35e31d86770e83386a3366a8363386678a5d9d51f8f3a481b01a477c4eb0a522a68b8e4a46747e98057ea135b3919a269e73d66d69be52df4291eca16563b64dc8764bdb5d4302bf3c7f13a0d038c4170ab3c234f8df9f3ed5736e6d10db4fd0ef5a7b80b850314fdce3287a92c47de3f334b1f8c8b280da6c6d66bad01969c701635b98d59b1d1084ca8b0302964c32075202fd5e2f27b35f2810068d31b324aed7ebc4cd870eb3f962b99e5845724f4783ded0f35b429debc90789f4045a4ffa18314262826f0477ad5f9cade687379a4bd4d11571d3c4aee0b03ae7579458b8b13ae72d167d3b51255daae1621548a4604fa1005f28338e6042b1c497f8255e7327e7f85e62d421efc22f734301d46e7b0dbee27e24e7ecec389ec126397be3b3e035eeda36e160d565e7d196b62fa653df67acaa71f74e2c9b73581c18e846d2c3d4fbb3fcb099f0f5891585efd11c5f6881b051986ed8f4d244f206727cd230b082dd0713888de64fb22a80f01ba1e6a49fb571ec931f6bf3cc0ed7ca0b547030f81f7f10a64351a08d5008f21bd04608e074e0903e18e906cab8e7f87573da46004b0065cf421d4b1349c248c4c4c13dc78b909afe79cc6f2ddb9412b0c8ad8fb73e6872e125ee4a09235b967a804122396800cbf56caeaf2a66aab1e7112f5347a4593bd26c816ae28e6cd57947c30a02a7b8787a7583eca9267e2bcf30ba7bb986e90b4610036f1a0a17e9d1012a7521608700b2708e0b318a92ab1ea247d7537110c5b9efc521673c9d2c3740d6806a984f9a903c8c2dcb0e6db289b9f677ce450caa461dfcb457a259d744b6c07638b3dc5c009ac622f569552d56e390c900e1cc946cc9e119f6d08aaa96b889b89ff9a5f5a2bc074e40de513a7c784de3ac466938e0b9049de5a0a02034a3eb75083faeb7d8ac4d8eddb9d2b1f88cc1b3bdf16b08473dcf7399a0c7382e67526fc9616803b385b8f6624643c96bd1d278ea3f9624e0695847d89a629efa3f7aeea26720930c15f59656de1c1c5a07ec3b4f4a2894f001f4554a4548fbf415c040f7b76020ed8092a5f6ff004118cbb654209412c300240639b7c7806d5d4540012dd98d6c70fd425564a2e42e3d52f8ca9307a7a849037c7d9c5f7030bfdd6e60ffb04332ffb4e97253ac3ebbcbbeff881f0721c523dc3be55cb724ffdc7865b7006aed0f4c6487598a1969e4808f967cf90a1cc5465c122a17ad030287b61e49d95ce9676d980eb85c3b57062a1f9f4d2eebf0c1319fc5d2299425db172ab4ae85198af081e1b8686555e9f4a277eae0de1a902c5ea23d76cc063cd0f688ad0fb12ba637f3ed4536e6eabe145b5686607afb545e8e97fd362a2c903c02e0c2d764937f8c5b623b313f201ae8e66c02eba2f35e770802db51627a62f8eb484534229152193bc7c7d1492b0d1bc53be890fbc79301409f266397bd5a6d20329eb9b5cff328b976a1beefdef73271826f66512c8ca96086fda146491bb9461e795dfd0aa49538478b8fe5d10d8b15fb4f16a1f026cb5f47810807528fd530548c4a145defb29a9ce3f16d035efd1ace6994c00caaa38ac4abd187a885b4414e5fa69c398d4f4f5cd9affc25a34d9ab331de561fb56b1980f55feb1c06b020717190df466a283ae66a7115b5a3dee6c596c6cff2bbfb753b34bbde83483c4589ad83e5d14b85e3c4d6ac76606787288e0c37932102243d5802d5e6e341e3e0cc49a5bfdb1005307dc941f3a7bbbc81c0ee0c84b4a4acc58891d8faec94a7a9cc6b3f1db1bafdf3c00eee69a69f0df33b2beda170a1cd5845881e323b8eb8e8104f4405aa38c48e4dce86a9113043ef48ce719fc1073ff9e5298f09a698babcf428032231341997e5ad26b8e5a523e98028836b823f11ffaf1cb1544937b050456fc9ddca520d7d507a6f4248ad4afc6188b3b930ade49cd73eee160088c283755afb6d27658b80a2decc7c8651516e19bd94681ebfc5ce22f29641fa6264d0649fd393a7e74297114ca562be4e7498987a7d174406b600e0d5b11518f4bb395e3de0cdcbd58ddc63beaeb1f576263ec644be11e252abcb4613edba273a93dd5db1b1fdd681e30887f45825737b0579723b7de6e0bdbef2525d195286e1e8473467d208316ceff3c087db4d44ec6340010fe7648ab4451953e78c02a4528d4e2b7013ba304bcfb8e67b41b58dd645a47ea2f655d7ce5d5748bd0d3b5a4ac9a331f3d7c57c6872531f7f632b68f2cc0cab8dc2e2f4482d4b5749ad547579bc222090e1426f0fe72e66f12edd462c0fad58d3e69e965ae3e2356d78f80dc9e611526186ecdfc8a91493567fe223279a484b9959a3f6951dac0985ac9e2bcb19b08e3886dc6151be713b48af6317de23f6ba91f1e107ace8e2dc29e3801e50bb18a977a35c1b15dc9aa71b643b414ae69172df4b1225eba404a5e6e2e50047e7dd0e0c9a8a33bf5395e6d3e61e704b5a20e4625c4540c80183ad4ea2cfd902ac708e10f3dbf33ce6f260a50a9e843cb4670e82e1c9f0c1757ded96477330c90243a8c09c7daa8e12635ea998e17ec6affac481ca0ae763579ea23ceb2bd3c842c8b6ab0b2043a2d00ac2ac02e4e4c1745b8f4f7c262bf21044e74bf45c9a523fe7bca9deca94bc597a39b86c9533018e3480c7110c2ffcc3d707b98a87ee19b9c794eae0420539c5da993717beeb6e3ebc32ddb3628f61b05ae45c295be2c40ba736d14d2a3deae038d4e76b87e88c1c704dc076486e96a92247903257dfa15d555fc662a004a374ee93c42b6972cfd40f7ec094e6be142b509084acbe34331a86d1ebd30e40f229d1630a21734c83dddccb88c8464a67bd264fe45471309a978eecfc66abeddfcfcc6dfce27f1fbaea2fd50194e11c004f6a041c0ffaa28d5da5518ab34202ae7db2b36203f1e15a723e00aaf8a616b5402912b8d6bb70df48d1dc512a0d0256373966b8353b98ee58ccf6829461043b32d7f5360733bfcd53f1631fdc2f7f4a5e3b45831eb25beaa7bc6a0ed245f3c8c2dce1949d29c6c0ba51dd9a02ef21b048117dcdfa318b76971ae4860bf925e17b35ef15ff2fe15c96e9f668803846707b380d0210be0ff16f0bc5b8d205cbbdf865fa2782a378f03938bf9ce94a40f39c01f8f1dd2170e8d8618384a16753452af505927f01234c687ebd5014d2ee5e7239b8445bb48b36dee8c99a393fa4f1c917ed0883dd94b0fdafe0a91abf05d27fcc4e6676ea4b91eeb48237044732eb1491f42be59a2335238078e43b2a350165ac2503429d18e00ba52d30b699c809538306dae58658f1544dd2b50fca520873d6edd42064fb96df15ca949ef3a23c8f99e40d8ea44cc2a3ae33e947eddf991fc46c2fd95307973b2898c5a61004b1045543d9cfca861e7eb12c542066c5b032ef3d8ce120898b1a89fd9f1004dd1a8c063fa0de24cb24efec801c8816836ce6f2d126be2df33c3c0b8b425babcc4c89e052e865c231aad21ca139247aed885e9589accbca22cbb1ad9b90447f26535e27af6b3020a311ab95d9c456eafa2335acd9f8b4615c2b3a85b7fa77d2a64caa6025855253da9967ef1cf18489e4c0a2a3eae9f48428c994699d34e3709bc0798f491acc7d7a8a1bc669ce2f4aa0a2839f256574aeaee564bba78d082a424ad36bd6870a946630825e39749fc043a53981f20c944c76689c95c0d3d7bcdb7b00799a4e613ee6bd7022a0ae82adee8e1770e9fb5ecc6429db331ee25623d1b204233484c18b508bba5155ddf382846ac43e679bb8c621c23d632e8852a4b8b56b7b6be8ccb22b1dfe8333527c88896a7752dd46bf31ea22e51c5dbd703bbbfc5b960f493eddaa9cf2281816f7cdab85cfcecb36bcaa94af4a75df712b5edb8a645cef3c0c203b85b5ce4376e81f341fb83faecc4069b2f5bc3f790627901df1fc6656a64871f49733a296bc3e358017115c6a13cfa89861881b98f08ef05f5efa9101a6b54fc658077fdddd681e8710125d03c7cbd16392fcc4aaace6f6b61b1c79868e74e23160538ce9f5d571c29e2b6c7c626479999d91ed2b18f6eb3bfef613b8a304a6e9ec4fe0675ede3b1217cfa19b8bb1aa3ff25b15fbdd1fae7df0cb7bda6820030e2fb1b6e70616abd7044f00dde245f41eb67cb9c4bdd01823196219fe70cd1655ba869371a22fae9f8161bac6da90a86eb84f519c02c0759520a1073c3051db83816102aaf691a586d1522b51359653354c0ed12c42347c2d70c93049997d37a30ef8f01b9f12aea07d74e2c73f086f78918702831752a668d42a86be554bc8fd50b3ed05fb98bbcdbb406e78ef57d70c8a8fb5bacda96b2537607c2316aa3e1549bd10e3df849cc7385e632ffb310ecacb15000a9db4d87c9c1284c1a2a3b6b856ef683df2f96226865db2c08ebe1e2fbd3b3cb9f9f1d836ffaf8c19b29504c8f0ec4027bdca96c41a16af3c88adbe3e2ae6b28bf4daf188f36d82c93540b356c19862e47faaf66095d490d9009529af7b7a6ac465e6884b8f1bae9d7dd03e15f98d0406a40f12191d23e4f1c3df3cbca01c03aa628018d43c661ef70a5d1d3f9d80d5d74a7b3cc8f4f5e2ff4554825e6a45deeb6d09282ab022360244a67cc77c9fa66485d5547420d2e84a7025c3d4bbb8e15b1934bf3f635db51fc0bfa265b4f294f918849b02841de4dfd2069fd6e3cfb100347c8bf267b1f3b8f4c3036e05f198d39702694b70be956e65d136ce455a4011e6f623d6c035f31cd11fec7ee8356ff9515b262a718d6b135822c707135d6130c10e25ef238bbc32ceaf7b565e37499a2bf98c74276cf9c8fc2983ad26488a0be54bb0573781aed294ce85a4ed8bfd8dc8a374f71f2a570176e5d0b5290b8c44a845f59aa0547986dc1302e8e1cfd8ce1714523e4d5d777be5713d6f80f54451b81cf8791795a4a6a62b2eb1618aa7f9f41be0a2fe07fa0321e4da15f3dad5110860ab51464a7b123c6aa2505d3470b10ba152646d4821108a0396b945b63d43ae9b00816caac75637f3d3f443fe78c7ebd0a19e15abe77750fb326fe1dd3910a7dba0b3fe696778f474d845e775502ead8f9b396f85b9c9586a5918c27270f73ee2f0e93eee54a9b5cde69453cd2648c9363a5ea744af38585c5feaa5ca4abf47ed227dca7ac4c480059667d4d78a8ece670f21df1a764194ccc4ad642a7ecb70e48bf43a8ba0044546ac3ac544b7e860d3b385899a4a382d10545aede7728535d9b7a59f21f962f4740c36879c2439af23e73e589e0372b87d9fe6c7ee5d8d8323035bf6214643faebec1a2db99f98b8f8ce15a004f599a8b09d320fb7cb99fbee6e116cdab53f7cdd644ea7ebcb291d363323af5aa9da648b3abcb06d8798d0d44bbfb7cdda1e7c167f517eb6c7c46b2f21e2920e8b49a7bfffb14bb5b2124a53852235471afa1bae35453a427ecd9b89ab1acf6b71f2fe2409e2db6b319c5cbf41d3ee656abc5b062d3a32152473f6164e576612331a20ead6781c3ab436a5a55b8980eec7bfd520b100ad135a939dbec8db9da555d5050dec6fa4afc4686658453f583ee6ac888d54f07ca568faf1dfe8d96412b8738035646e4021007f8c462c526ef6ced53ee625ca5225f33d91627cfcabdf0fb83452789fda6996e568ef01d1a81fb8a39c6440e1f2bb4b98e3614cce824c0a72702abb1614f17f420ef2689b563f682bc7eba1d0f6dd3fa9d8012846d3b7c188e7c464f60a3a967f76e98118ecd6ffe29f1ab58102fd0c8b03d0590410a60371f110bb7073e1431d516eca9b758bdc15327ecd6ed70094bdd966caea797dbc6990633996bb346c4545fab86a3830b23481207904a8351ad9004b9be905afb6e39dafc6baf8af94ec349e22d8affbc08300ee1bd2db3a9dcfb5f753bffa3ae0121d03501b22006c093b565a5cfc03f1089bd4f168e1f755020a41438fb4eb148a348c0878c3eb3dcc032435ec5a5883e28bbde4204e272669fe13b1cf063d5f5c48d99a12ece934973b20fea57e469f736fcba5095ca36fd406c7f7ec5c31566561d0195653e6a39b380f842a701749c8a9fa83fc27ba63f53d1fbf9b478e0b531bbf0f7f60b0eff2b8fe6fa72895a4f3323311f80ffd89d82aff74272c67b2461f005767b3754df96caaac051e55a15a5ea56e7c4a98ee05d7578cc441ce5a4ba7f592b7488c908e94ef0390b5fc793b8eafb319a2ea7d3aa0c582a5f5587d98f8c5fb840e9d8408d2f789ada2300a47fc1c89a5e288a39eb4240aa3fb6c4c9df339d029da1982698167c4ae87f13ba9efcfed27377f7d24a12bb293a72b786fc829b5a920fd8888f6326d7ef0ddb8e4ac4a3cde50f2d0d30e9eabb51c660a3a691cc5a72fc351440e44598c7dfbfd0648016f62c248bb2ceb08f8d9540133df0038dab06d796c77b504a5d9d106a5b0c6b41dfc2623f86fab02684401414634d185a25c3f6dd8727d90c2d740f60c50c34b50447ae67726330747e3a6fb10f4c547c04446eb49c4b2481be4299114ce35569b2bc7ef9abf388951dd907bad91228a81762d162449c6a09064bef47e7c247f2c82acf27487af02427950995a301433b4d06c1eb34cedfbce24eef5f17320f2e96f5317f0348ae343e030637fbd3e1d5394ae8b0021c44cbd4f2e0749981ffae60a6bfba099725d4b0be2d65667c6cd7844d81507dd14a98139502273a9c527b3c37d502781cfd52c848613af85dadaa6da1837bff668772613f21e96a5881dfd2f93209adfeb52eb0b400fe7124d958fdd28ef264abf3496de5eb28ac0180f7a710fff32ff76a61a1b1280fddfdc3895090a3f9470a9e3f2cedffab34db2008ddd87ca4a3a4f2115d4057f13b1f62c538ee2efcbd72eb1dbf568da24a38cffe37e482c68d5bdf7a9e49ba28675dda8a9de3f43c85a9b715ce775a06b14ef38998026477f7538b21a560a650cf329694b73c4c227a45594459dd1fad63d9d1564591666daa65b2251ea8f037a639ec1358019639ddf60125281416c968dc3b87d8f9d372a3181e6dac6b3ce64b517c23a465fa57d5959c157239c3b5704dd01aab33da4c0c1646c0dc1e5a3c3cd79af02db2bbfa809c5ad016c92688b2d96a0c9060638a2fd0028bfc95427dee8b06243192f25292d8a8b09c5608e0264e9df78052b58e824bbaab806ebe06f01e7ebd9ed415523a7e73f156acac6f73fd63d7d7e5885c2d54491988c9a77ca6418737b673573d5f82c8e32012fe4ea4e8834e561b9897abe1e7c598d0b6adae53c398e5d02a293d6f809c12248a8ec4254feddf1d584bfc2d7b955946f4d1d97529725921b20a99447615d57fad62b1c8d0a106db1bd57550eb105d27dc85ce45f96bca33286b8b1bf4807539503b17ba3bc86faa88e6816b089d20d70e168c73fb99da07b509b1153904551f7ba7a4efde1c67afe420efe06eaf1ba60a0e980de8ae82d606752e1304982c1df0daac44790bc66f4caddaf61b66ef0be21392b83e937aac7871ab47960268bee673f887dbfc35649643e9bec32d9074bde9143eb91add3e92925a78612b13133977c070fafede29a59c155af4a57d643978e836834b3fcbc807b3867c135e97d2d057bff36d0ceb2743ee5f4554423667391106f57bb2c294b49fb3e22dcf091ebadd07ebd8f5b416f05105c4fc84266872130fe7b252e5a795e1780aaf3514e5fcd4a2328b532a94e767d19b3410462c803dd6d80117d7fb7b5efdfe29baea9c73ab18dc614a3fd5221082aeb2c972cf6c738e47524debfdea3385776bcef95e3cb6713e1bd01b8fe3eb9785c57e5661f25d9b4be803ee88e4651a0ae24bef57822d27226d7cd2e53b18b6f5125ea60bafc1bfe3698d26d2019bcf5b762415e7a3d977216017a6a428f3ff7776cf11ab0067a48deea6fc41182ad2ef267a914dadcc6c0a708a1f6a6eaea202face74ffa610786e02dbce4cb3f16f67f61031defefe19d8f29f8d6a13e8bc759c4661a68ea441e85c8ab4f9937e92c1d611bbd872664abafedc234aa8e3514a119669c73f8b86ec7e0d49aaef0bf1c1fa4a62a379ac0b48eb0d4fd404636fbc3dea6ba2cd6c8bd2e465d9a785ca836373a781a350822d893bd5f1bd3fa8394d7ba92924a409f031dba8ba266421c69d51e43a82e571c91a1629234dc34507629cc80f8f77ce965f05cfd5d5c5b1a5daa1b7aeeaea4c352387873ab0df157e999148131f41dc0dc653bde923b92b8950cd95bb0412392d70c73063b1523ea70ac5e6f6dc7cd3b0f781efa49445cfbeefec4be8f88e422ffb867c8fb8d82c4efa93ec96e1f5158b173450799c60c9157d2b95cf283d2edb026092aee42844b417689fe609d3f999ff41eeca79d4ebfb4676f32b88dbc0485558de18cb50f26e463268987107101ec1494615ed1b2a97078ca60acf7e0568dce57d0121715ab4909693ebf7728465b26ec1ff5c1004d77b1d5ba75b821323a2170bcebf2427bdfefbe9a0337c4c0035d6f57b03f076d05210a727a37506f2305088d3d8177f0e2fa81c7e55ee902b8de21de0bb4ece1b6614ce92d5ea3accf88912e40ae7cc155a62764cfe03469d811dc29f4cc891746175c172d1f9e35a22d407fcb0dd5800b9cd585b5108776502d57f0cf3ee931a343bd4428fbe8158042faf2993ebe9bb4e3726702719d47e6b8b203d552d432b31b48119f73232968cfc127d54ce6a936b7d52eb9e1d35f99dcf04c795beee8c44be3f786db0a7f1168f13b5a04d951ece9a1dda8c94e1ece5619caafa9586264fb29611d1ed900c383269129aacfba705e9a2c5e5f87002c657e8e5af4d91f975179d94fd1167a5c70c28388430e3d65b926194199e6e1616074763f5c827cdb10eed8cf2625bfeefe37a2daddad49288f6f78862c3970fad0e0c6cd911826974ecd0bf9af6e2e645aed4ec1fca926987fcacb9c1c2054bcf09f1f569685af05cc9ff6821ff8192153c3b1643806c33435199820c196e1f21f20ddf7e9f82faa239367a45a7b01c618788975841a08bc84602684dd1567225b7d5ba84bb4231e745931ed1c985aaf68f21519c1e08cc337b75d95a2fa6f9b0b91f7fa031d9d6ba19bec66633d886566ecb75a44222303ec46cb7bc391de5c775d51731c9903e00a30d8120ef5a7b21aaa6e3f457b290a216dfac34f4af6e73d4198db8251b2a30dc7cc78b335dd25d4762d8563e9ca23ab91811512b1f1e0fbc6ef09fd9e6db08b3b0486c83506a09166f80f5d1b8a85660bc2889f371078424256b423ab0e48a1472a97fa099c5acdcb114497fdf6a7ee009614f014d2ef87abbf9e15310595a88a9db19c3adc9537a64460f0728628c5b2e55fc3648b94118f4b9dfaaff1f353e758d787afec64749b8e568766cf9c1f615dafefa828fc7865e5ef05dc3e129628ddb0b493659f2da14df846405ae60c6b42c9ca50836add3cd992baaa53100422fead06504fbda5c94303704dd379e4b84f68acb181d920ab1b8775f7dfb85ff40e95526368457c84791ff38b7386e0ab0dcfcf5b2ac6ffed53156bf5b5194d4a6e43ad86708edcdd56b72dd5293fbde1c322fd14be6fd4b5b0215ac214822dd93a28b053b51933ae0085098cd6c6f49800f2c64fb60f95031cc8e1a0f227d4186e8fa266ce8e988fc64f70e843b35b1dc09a66617e5d04dd04fda210593b9a37582781262c62c1eaf0ccc31ea97a0caaf68139725e70724e4521d93488e6ad4667c8eadfd46ee5b8c1b88f5bce9ef1fbc7bb213183006f6362a5e3491f64768a61d40af64c786d33f913e9d83f50d927d10cace6e4f5ccea97f92aa11a914ace369acfb4414efc6464c239e9d0b1cd17295172f30b3e4bcbd3bfc3decba392580624377ed24c44a5357c8f42832066e053de61ceff12f00d82a9c235cb62d15dbb63488409a5b7d021c01de08f5969635d3e4d3091ecc26daebdf9b4a763d3f7287107aa78515466fdece08c7245a45f32a69a7cb7de11cecb9e15e78852f93adfd7998b3f49c72fb1a4a7116585a0e6fa69b2f27918424e0484024c33468f7a2edbaa35341980701ff1cebf3193b0755fc1f1367ec827baf927876a79f5aeedc214c7d4db5ceb42d6ed16882d0ca27f4ceb99f1d5972aebb8d577e3fef038939572f443ac0f8a0a9cdd36bdc2d47f1fa229e3807dcce1b5d00a2a3fec64828ef88cf8c5d65105a11135f97d27f1796b11a9eef3daa9db638e21adc97c48a9c56a2dba864f2118ce904114e4eea0853e6344079f54864c9e2366a936e1ff2b7f92834742dc742f4bee907bdd54aba1707904ce68fcb6d56243475ac81987aaab17938c8c56d13a6dc63d26675285d34e089b97b2accd7ad020d2cc875fea944a0d916fc308990e0753fb39f567400ba344c42049f585b7bd0245359aee67b79875e4548533246dc1b60ef6080c5ba173ef95814af1fc21db0f018dd70ebc0e2b60eef092ee5147003d2cb129d3b5721bb54ae95a8eae216e5ff36ce571b2ac7ff8e37a5eeaf982516dda86a114ed5a9ad8ec2eceb32aead197b6183b4092e00919f2ca9f45481c723352b4686af8b6e945786309bf3ad1831b969e2a80b064942c86c8d40a32e7f406f2f9c1c7711ad2911a7ab93ad6a7fb762ca2fe9b5705a0ec0e1132b6eb3c222b05e81260384186accbe249fac149ead5304dc7a9c3624d4224bcb37abcf76833f2d519e5ad1bff42308e8878201345be70ed87098eaa5c0c47fda64d7eaab723fc656ce1873694c0b0cbb3a2db1a6ecf1ab72f3f5c54a8d96206a7afc338942e4e4c40e0a90ed494e383a5b908d8fb19e2e235e3f14742da4438f12285153d7d778775543e6fb6b5188a7642e3c584de806661df390cd1a1a03fad1e7f65628fcbe773c980b0e418817f2de06032c587849db7f1e7c4407e33ef4946c21347d7e2e6a5c9933f665391049612e076674c1eb24a22349155afe804db6c0097cc7e4449ba73da0c1f9869db38da41341c5fc0a63d50971d329339817b459473e27f2b2a891692417f15e4a0d41ba48c972db243e2f3579dbb6aa6fcaf1d3c2280c2fe033a4e2f44217b7453b437f2fb7e8b9b7c39c80241c19bb8fc5de9704e9ed220debb31ed8492d73c13730313b4ef23e1b4bd8a933d77e8394e1e49b2d3370812c5b1a955718150a2b7d035f7c5f9b32d67b44cb163f340ccf0b27430327e7efca11cddaea8ad15506b0d9bfe9eac9a3203322f3867d7b5f8ad370216289554740072715eec86fafb3de89dfac8838f885af5254c6d9b3d1851b1a6319c1183428ad80155de359e7898d9c778ebaa499cd4a4a10b9ebf2a5dabde47e146d253ce774896375451890de166fa7bf9634a94a1e75dc29f2f7208b1a8e9521e0c34683f4b32424f4dd2fd6f54654c3dad6bd16498836d475e32e61eab685513328ae4c19779d9516ac810702117959937d2894b7a3c8d43d77a6295c52ab14fc9b65f514199927a35966e9ce99d7a75ee8bf2ca31e0e53832d779331f5cd9eae2d80301ee8a99b3396220a9042ee2e6b7abcf5ad78954810a69188fe8ae9d98788a3cfd4a1effa8504a3e3ae189f6906c19cfca0c4d861be5e86ac0cebd9a84c45dad997862fc25a54e3be54c70186d7a35ff6c5ef9e2c1b544f6bb1664ce713b823d151e72d057ab9624d0de05727f58a9100207dc4f4e2a90677107c489d4cee0b598ec25c7b40253bf38c0a007a4e6c15e6f8668ab85c2825dc6e95dfc0c53c2cb12a770384c7c649feae01bcdc15cd404104cc84a67e798ec92e6cc5d2f7a09a8622640b0092ac5fc055de00886e9146f76c00b026aa56e998f9ab2a35526665c3a27892f29c73846b529fa0d058f1cd04311b1c99b41341d90572065c9c412e1964965a626a43600b05655fc17e1bb1c5f369dd7807e1a03b85bc3fa0735505c3dd59ea10598015b9957c7ae349fa1d66d2fb378cee833f552c54cbd61943d80c204319822363ca93fab4fb888f4e70e240a9f5f401058e35382d96ce4b4ca3f2070790e32a13687d49d26f8f8f027d12f9e6ece187a1b3e6b4c8a9f3f55e4a9afc49db72d1ac3fa2a86dd9a0aaa6e53129d90cfa35a3071206a249035867a151fd5f3c6b161e6e8d173bce654ad00394c4b2a22c3b09e35d0d15fdff0dd7a6357a485b0e25173313e48a82720317cc289832821ab6364238d27e81a6763289ce918052a8b51a83d4414c3edc611c1d87b97d5d155a9c3b8642d83251b620ed8e00c412083cf5f7e637c5ebc53df78d16c35ff6a039b67d7c0bd362bf702570b8ae080b9fa8d8c1f81c2946b6268404fdb61206a2da30bce7cae275a305b8ef5141717f534ed33dcefad24a45d56a18f1ac5b61b5c658d36b05941c86a2067badba9f733f32067285ad7dbcb9cf7cce59fad00ada5ab6bc89044cfef73e25b6bbfc9978d352548acc5bcdca0772a77e0ca923a9b5cd95d5e7a04aca4f9e7424e03ab4d25438f8306a7df615c9b401d834b6dd993d1a019e6e3edf6aa41435310092377c0d148f76c250b3839e100cf3177f3eb6932fa7736ef9afe1998f56646d9b74dfadf9bdb9367e80c41072e9cb4999116d82f56161842273e5422f2de03275fb36a1bb3e1d357e61e187e4374b547e0b396522c60070f4b04cff34272f8a46d391f0bf0f4bb3dce59cc66f5ca5623b2b7b3c196af04fceb45b8171aad4bb409c914ebc77580126ce3d4fe5d5a995eda9a343e3b372f06d66539d20b954f209302f67fd87b6fcfc77c4b59e38ba72001d97850a2c2bb74b4abb458f6e7a36a6d30bee2cc1f71bfe52109e487c6c6076e17485f5f7d530673db40a5760932fa803645e69b220a4afb874e43a21f4335597bfebf53ae1dedcab3200af00b5540ba6edbb12c3db9ef07f6d5f4f8c83e5a2e3c4c9d853933504635cf8ac26fb0d123a569b9632f8fb24831f91fa4ae44fcf2abd32f4471681c05d829a2763f16bd393fe4c9b765baa5eec4df7d7a78b5f242eb29c5842bf83f43a442670cbdf586f4c5672f987022a4f65ddc4b3b74ca908079be542efd62ce06b481931f5c9687755eb3134793d273f4862a77e1ec9bc4d69b9349df82b08ee76164af89a1d2669a9076de791e807741bb1a9ee459910ca402f79f164e913746581b87cb4e7251d3a1674a2f5412561b0447ce6ec620474d85f74b60ee51aec6d16bff3ba1161824d8bc909233325454dda8d44627ce3b54a4bf06520a001f9fdb72193c2a6d4bdca42f7675af55338d9e53bb73ac234cbb1052570b5c1347ed3539a177e74c80333a6cd8b7e2950c5a2ee8771edef4c7573785dd81c89f01e29082c8b41103131a634c8546ab8db03c4388875e438e4a01f9f4c12082f0671942102168e4b16b747d9dcf85d9505518da95e210b1be2b56155b0b2a8f61590e96fae35015f065a77c9af3d80c3967b169de9a04ec334c5b33c2d54bbf3c05dd11d129cfe059e4bf563ffab63b47cc521aae3d8bfc3f93bdb52f38c59eb16e58f4b82e93644071ab301f8b531d7026be28b56947d9c6b87a9c642268d67bb1d0a4dc1df4a456f604310483a17c266f5b476127bc3e83cd7538f85e5cf97aa232d50c8b07710e985008fac5fde05f15b4c80c5f9c9fee55a3cc3992350722a750b8f2ce8d995938bb0ef7ffec950a900a6e362663ecdc30696a2cfbe8d610826e4a1e1e59cae77d4b9858d93731c5fd3db4cc2f951f8b6bbed3fd91e1259f70e67b88b9d843321d5b669c1ab42d09a5ac888392016cac3b1aafd97806588ea23a08dbebd8d8013aa2d7aea3506f53e4780174e41d247ea1e392a1b2e43f8f226cf80a3cca7ee08c2bc4ecb15fe6d786eeaddea0a078561ed96ad719a97d56c64dbca4ca0c04a7a1ea1892b65ed7abffce0a8ab7fa588293ad954c84d0f36c4636506fd88c03df78135bd6a16c9afaf148716855e4c81d8d7293ddd6aeaf820fda6c32ac1fd464519679cd4cf2eb3fc860b93c5b625ef82267f4109fa767a06f6276ba2ad3ecb540a6698cc55ff1c8330c1319feda3bf73930f9a5c7c0fdd3638d5a1ace80cbfb8eace82a06fb330226b7cd96f10eea5b4fcbcfb387eee60de2afb88b440143e94a1840a2074560459c5db18b883ce32805f07e5ee936459997dce4e8783bb53c9654187f1540d54c75f63cfbfaf8459086dfcb220dbe7b983ff013e96c0690972f34529a2a9eb544bc025503c2ee07982480028981e3ad77df3b1a5ba6cca84b65179cfecfc0e79a6424c321c742b721f8e54f172786ced95ff429f1680cad69e929acd44c547342d1b56de21d1d4bd272efa7cc654b50f768ae001f6655e99a643fce7b22cff91adb11c19ab7f5aa864f275a9e6dfca8e8207458b77a8a9c87f882c4c184d2c6dfe2e36ac6f1481a65666893fcff9930a80181318ced2bc88110ab0850aa024e275afedc45a77d12d55da74c47f571b0db5dd9927d6b69ff95f3de1027645f8cd080c3cdf9d804bbad4c4f085a9640a876d1c427de8d556cc48969dea7fbff507143343bacbb180c1032126b2e724bab0f9bb5a869c13783c9a7c77275ba286adf02bd1242b6254a629c9698b6553c9dadebd284d313792fc563926c1388cce1adba46cb809f000c4b2428fc9964da2f218b0d416da47873d65381421608209a2c31aeef1b173836c8973df070a1093727ce06cde68c96327a9ed81eaf9ace0174602a595e5d10a01810edf8de736bceea7472d73ae0290cb8c51ed68091be068c3b99dd390e705d106ac5bf3af8ffc86877f3b0b7baae279bd408b7759ade3c860665c0bf4fc6715bbe039878007fa7451e607c1218838be9d5e4eb512489231235dca13d7acb0ff3e38333d06ae5a3ef6f37c37b16cfb4c651c374e2a7e25ca02f5adb20f4d9cc9c9161266184acef8296be1e6151fd7b4e5eacfbaa463f44be4d95bb4e7547a4f5ae3a59b8fffa17dbdceb4e21f0d948e4b4c9cb19acf71694e8723c218830b4da0641ce44547e283ad090e3f7c134cd848bbf7e56004bd4e3a48498a51b4df3544cfb2035f0620d5876cf219f2fa41c3e34db01be1d42f7685b17a98f705af301fc68f7d371252cecef25b59cf5a83c75e171ae25f196f3fa0e24d317208dac8b0b67e8de684b6243fc01b946980dade971e9b40b6301cdb91b0dcb74b6ac39a82c6b040e0d389a81d8251c9a78ad9a647dd6de7567e2afba27544aa6b4d4976ab4374b5538c8ae6b5535235e695b5be411652455c8e2eef2f22f31a1df83fb35d34668d76938b44481ed3e633798691bb3ad34c75b40fd96f5276f88f9ef4110bc46d2b876c5f2ec7c8624dc2456abe6c5276ee5fa1569eb9242eb3bfdb0cd0db33a5adb8e5e3d52fe588a75ded2af29ddf6badd13882d734da0f4b3deeb7ac9705451733e24bff5f97e770ab10fadcb9e9c71f95256811eccb5f12b8e151be11cc4f9e0218609a21d18e5b61e22b1c82dd694598e501cc8066d7e20a7730871340742af71d2834a0c6fbad591cd79b6cf8ad086f2f45edb79e2a4313cf31b5092ee365362686e51296644a2ba90f164537a1d4e56eed987a4044a448a5ff6591f58c2e937b030f07020d8f25ff8fe752cba5fb98c07ce416c105ef4e4238f7ffd03e6a37faec42aeab34b8fdb9d773d92e49501e00c472c1f48ed5deff1d5a74d556b357907b0593b49e807a764a6bb96dcc79234f546e7b3deb0643fa8ef3bae3affd870e475aa64cde40698162240f74540f44abc4e49746d0e9e4d1c982ea39521f50de9f0c65127aa32aa61dca383900c9ff85391773978429ebb311688d55372ec84f7ce8700c084b28a2382290616a09855c1b5a9930b8f7bbb2c952aa409c0383d4b4a8eeb3899b22dc9c30f2da217085b7266553b09af64c7f9eb5ca80ec8fad22231d03cb014c2d375ace9635ac0c0f7791f554000c8661285efbdbd9b5c8fbd0470fbaa28e96d515bdfc3b1b1a5fb6dde9ec5f35ec1e3aa6ec9b290867876adcc70851c52d9a58701666e0f714abfe0777f10c01aa66c3561df969e54deeaedbb3e29a08341c847a6faa5019462c073af981c711a10ff6ccb$8e35818299b0b563fa07577b015dd7fcbab0a6633b0a8287cfd7cc469d5d8d056bee7a2e9669613627b0178c3ee842d2375b80a891aaf4dd56520c5a3e2d30a0b1f983a1df02ad5538476d969fcd9c271de76d9cd28fb4deb83f8016b7974c6a4591763cc3bd4604b5a8fde7fc578903bced6a4c7dabd986fc59fa27ae9d25f0ab25980473d2a2d83eb95eebf5d08cef411b5a5d5ee7d3b4c53d2441acf8f8b5bd0b535698d23f5d9b4674da9e83f6f5c71114b88f207c306444449f789dad43e16333a7408608b653cc0b808a760223d39ca525a6b680ea8e95266db4bbba4dd40dd8ed9fa24fb8fbc63d5ea90e3a2d4f28b1d56372b88a786c754c7929b98a79db58b1437e1c6cdd140292cec3a32aef73f845b3cb0c32676d92f00c267159f20e7a748d02c8d489b35059217629bd1deb3db8eaf8cb6af50c99e37dfb89c719b0c6aebaa3a0439ade05e192c16f6b20eae5d1d92bf59b609acee2f3163e2c7b3c8306c9e9ded6f67a498c842364903f4094cf312e3e26b913e0efba712731129ef9f80f116fffbf7240cb6dc66f67c2562acea697352f809dd947ea759702b9334cfed7c5f1639a9392b1c4fc0a89811ccdc9fca943623b86bd3036390402c0a7f388fcee403d5de14621dd48bef71b6957b0831efb73ba4d13dd030b2bffae64c0f579cd03391c172b8e721b3a8571d39a74561dbfcc751d98689875fee8"; + +u32 module_attack_exec (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ATTACK_EXEC; } +u32 module_dgst_pos0 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_POS0; } +u32 module_dgst_pos1 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_POS1; } +u32 module_dgst_pos2 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_POS2; } +u32 module_dgst_pos3 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_POS3; } +u32 module_dgst_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_SIZE; } +u32 module_hash_category (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return HASH_CATEGORY; } +const char *module_hash_name (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return HASH_NAME; } +u64 module_kern_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return KERN_TYPE; } +u32 module_opti_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return OPTI_TYPE; } +u64 module_opts_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return OPTS_TYPE; } +u32 module_salt_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return SALT_TYPE; } +const char *module_st_hash (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_HASH; } +const char *module_st_pass (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_PASS; } + +#define LUKS_STRIPES 4000 +#define LUKS_SALT_LEN 32 +#define LUKS_CT_LEN 512 +#define LUKS_AF_MIN_LEN ((HC_LUKS_KEY_SIZE_128 / 8) * LUKS_STRIPES) +#define LUKS_AF_MAX_LEN ((HC_LUKS_KEY_SIZE_512 / 8) * LUKS_STRIPES) + +typedef enum hc_luks_hash_type +{ + HC_LUKS_HASH_TYPE_SHA1 = 1, + HC_LUKS_HASH_TYPE_SHA256 = 2, + HC_LUKS_HASH_TYPE_SHA512 = 3, + HC_LUKS_HASH_TYPE_RIPEMD160 = 4, + HC_LUKS_HASH_TYPE_WHIRLPOOL = 5, + +} hc_luks_hash_type_t; + +typedef enum hc_luks_key_size +{ + HC_LUKS_KEY_SIZE_128 = 128, + HC_LUKS_KEY_SIZE_256 = 256, + HC_LUKS_KEY_SIZE_512 = 512, + +} hc_luks_key_size_t; + +typedef enum hc_luks_cipher_type +{ + HC_LUKS_CIPHER_TYPE_AES = 1, + HC_LUKS_CIPHER_TYPE_SERPENT = 2, + HC_LUKS_CIPHER_TYPE_TWOFISH = 3, + +} hc_luks_cipher_type_t; + +typedef enum hc_luks_cipher_mode +{ + HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256 = 1, + HC_LUKS_CIPHER_MODE_CBC_PLAIN = 2, + HC_LUKS_CIPHER_MODE_CBC_PLAIN64 = 3, + HC_LUKS_CIPHER_MODE_XTS_PLAIN = 4, + HC_LUKS_CIPHER_MODE_XTS_PLAIN64 = 5, + +} hc_luks_cipher_mode_t; + +typedef struct luks +{ + int hash_type; // hc_luks_hash_type_t + int key_size; // hc_luks_key_size_t + int cipher_type; // hc_luks_cipher_type_t + int cipher_mode; // hc_luks_cipher_mode_t + + u32 ct_buf[LUKS_CT_LEN / 4]; + + u32 af_buf[LUKS_AF_MAX_LEN / 4]; + u32 af_len; + +} luks_t; + +typedef struct luks_tmp +{ + u32 ipad32[8]; + u64 ipad64[8]; + + u32 opad32[8]; + u64 opad64[8]; + + u32 dgst32[32]; + u64 dgst64[16]; + + u32 out32[32]; + u64 out64[16]; + +} luks_tmp_t; + +static const char *SIGNATURE_LUKS = "$luks$1$sha512$twofish$"; + +u64 module_esalt_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) +{ + const u64 esalt_size = (const u64) sizeof (luks_t); + + return esalt_size; +} + +u64 module_tmp_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) +{ + const u64 tmp_size = (const u64) sizeof (luks_tmp_t); + + return tmp_size; +} + +u32 module_pw_max (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) +{ + // this overrides the reductions of PW_MAX in case optimized kernel is selected + // IOW, even in optimized kernel mode it support length 256 + + const u32 pw_max = PW_MAX; + + return pw_max; +} + +int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED void *digest_buf, MAYBE_UNUSED salt_t *salt, MAYBE_UNUSED void *esalt_buf, MAYBE_UNUSED void *hook_salt_buf, MAYBE_UNUSED hashinfo_t *hash_info, const char *line_buf, MAYBE_UNUSED const int line_len) +{ + luks_t *luks = (luks_t *) esalt_buf; + + hc_token_t token; + + token.token_cnt = 7; + + token.signatures_cnt = 1; + token.signatures_buf[0] = SIGNATURE_LUKS; + + // signature with hash and cipher type + token.len[0] = 23; + token.attr[0] = TOKEN_ATTR_FIXED_LENGTH + | TOKEN_ATTR_VERIFY_SIGNATURE; + + // cipher mode + token.sep[1] = '$'; + token.len_min[1] = 9; + token.len_max[1] = 16; + token.attr[1] = TOKEN_ATTR_VERIFY_LENGTH; + + // key size + token.sep[2] = '$'; + token.len_min[2] = 3; + token.len_max[2] = 3; + token.attr[2] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_DIGIT; + + // iter + token.sep[3] = '$'; + token.len_min[3] = 1; + token.len_max[3] = 10; + token.attr[3] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_DIGIT; + + // salt + token.sep[4] = '$'; + token.len_min[4] = LUKS_SALT_LEN * 2; + token.len_max[4] = LUKS_SALT_LEN * 2; + token.attr[4] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_HEX; + + // af + token.sep[5] = '$'; + token.len_min[5] = LUKS_AF_MIN_LEN * 2; + token.len_max[5] = LUKS_AF_MAX_LEN * 2; + token.attr[5] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_HEX; + + // ct + token.sep[6] = '$'; + token.len_min[6] = LUKS_CT_LEN * 2; + token.len_max[6] = LUKS_CT_LEN * 2; + token.attr[6] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_HEX; + + const int rc_tokenizer = input_tokenizer ((const u8 *) line_buf, line_len, &token); + + if (rc_tokenizer != PARSER_OK) return (rc_tokenizer); + + // hash type + + luks->hash_type = HC_LUKS_HASH_TYPE_SHA512; + + // cipher type + + luks->cipher_type = HC_LUKS_CIPHER_TYPE_TWOFISH; + + // cipher mode + + const u8 *cipher_mode_pos = token.buf[1]; + + if (strncmp ((const char *) cipher_mode_pos, "cbc-essiv:sha256", 16) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256; + } + else if (strncmp ((const char *) cipher_mode_pos, "cbc-plain", 9) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_CBC_PLAIN; + } + else if (strncmp ((const char *) cipher_mode_pos, "cbc-plain64", 11) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_CBC_PLAIN64; + } + else if (strncmp ((const char *) cipher_mode_pos, "xts-plain", 9) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_XTS_PLAIN; + } + else if (strncmp ((const char *) cipher_mode_pos, "xts-plain64", 11) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_XTS_PLAIN64; + } + else + { + return (PARSER_LUKS_CIPHER_MODE); + } + + // key size + + const u8 *key_size_pos = token.buf[2]; + + const u32 key_size = hc_strtoul ((const char *) key_size_pos, NULL, 10); + + if (key_size == 128) + { + luks->key_size = HC_LUKS_KEY_SIZE_128; + } + else if (key_size == 256) + { + luks->key_size = HC_LUKS_KEY_SIZE_256; + } + else if (key_size == 512) + { + luks->key_size = HC_LUKS_KEY_SIZE_512; + } + else + { + return (PARSER_LUKS_KEY_SIZE); + } + + // salt + + const u8 *salt_pos = token.buf[4]; + + for (u32 i = 0, j = 0; i < LUKS_SALT_LEN / 4; i += 1, j += 8) + { + salt->salt_buf[i] = hex_to_u32 (salt_pos + j); + } + + salt->salt_len = LUKS_SALT_LEN; + + // iter + + const u8 *iter_pos = token.buf[3]; + + const u32 iter = hc_strtoul ((const char *) iter_pos, NULL, 10); + + salt->salt_iter = iter - 1; + + // af + + u32 af_len = token.len[5] / 2; + + if (af_len != (key_size / 8) * LUKS_STRIPES) return (PARSER_LUKS_FILE_SIZE); + + const u8 *af_pos = token.buf[5]; + + for (u32 i = 0, j = 0; i < af_len / 4; i += 1, j += 8) + { + luks->af_buf[i] = hex_to_u32 (af_pos + j); + } + + luks->af_len = af_len; + + // ct + + u32 ct_len = token.len[6] / 2; + + if (ct_len != LUKS_CT_LEN) return (PARSER_LUKS_FILE_SIZE); + + const u8 *ct_pos = token.buf[6]; + + for (u32 i = 0, j = 0; i < ct_len / 4; i += 1, j += 8) + { + luks->ct_buf[i] = hex_to_u32 (ct_pos + j); + } + + return (PARSER_OK); +} + +int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const void *digest_buf, MAYBE_UNUSED const salt_t *salt, MAYBE_UNUSED const void *esalt_buf, MAYBE_UNUSED const void *hook_salt_buf, MAYBE_UNUSED const hashinfo_t *hash_info, char *line_buf, MAYBE_UNUSED const int line_size) +{ + luks_t *luks = (luks_t *) esalt_buf; + + // cipher mode + + char *cipher_mode; + + switch (luks->cipher_mode) + { + case HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256: cipher_mode = "cbc-essiv:sha256"; break; + case HC_LUKS_CIPHER_MODE_CBC_PLAIN: cipher_mode = "cbc-plain"; break; + case HC_LUKS_CIPHER_MODE_CBC_PLAIN64: cipher_mode = "cbc-plain64"; break; + case HC_LUKS_CIPHER_MODE_XTS_PLAIN: cipher_mode = "xts-plain"; break; + case HC_LUKS_CIPHER_MODE_XTS_PLAIN64: cipher_mode = "xts-plain64"; break; + } + + // key size + + u32 key_size; + + switch (luks->key_size) + { + case HC_LUKS_KEY_SIZE_128: key_size = 128; break; + case HC_LUKS_KEY_SIZE_256: key_size = 256; break; + case HC_LUKS_KEY_SIZE_512: key_size = 512; break; + } + + // iterations + + u32 iterations = salt->salt_iter + 1; + + // salt + + #define LUKS_SALT_HEX_LEN (LUKS_SALT_LEN * 2 + 1) + + char salt_buf[LUKS_SALT_HEX_LEN] = { 0 }; + + for (u32 i = 0, j = 0; i < LUKS_SALT_LEN / 4; i += 1, j += 8) + { + snprintf (salt_buf + j, LUKS_SALT_HEX_LEN - j, "%08x", byte_swap_32 (salt->salt_buf[i])); + } + + // af + + #define LUKS_AF_HEX_LEN (LUKS_AF_MAX_LEN * 2 + 1) + + char af_buf[LUKS_AF_HEX_LEN] = { 0 }; + + for (u32 i = 0, j = 0; i < luks->af_len / 4; i += 1, j += 8) + { + snprintf (af_buf + j, LUKS_AF_HEX_LEN - j, "%08x", byte_swap_32 (luks->af_buf[i])); + } + + // ct + + #define LUKS_CT_HEX_LEN (LUKS_CT_LEN * 2 + 1) + + char ct_buf[LUKS_CT_HEX_LEN] = { 0 }; + + for (u32 i = 0, j = 0; i < LUKS_CT_LEN / 4; i += 1, j += 8) + { + snprintf (ct_buf + j, LUKS_CT_HEX_LEN - j, "%08x", byte_swap_32 (luks->ct_buf[i])); + } + + // output + + int line_len = snprintf (line_buf, line_size, "%s%s$%u$%u$%s$%s$%s", + SIGNATURE_LUKS, + cipher_mode, + key_size, + iterations, + salt_buf, + af_buf, + ct_buf); + + return line_len; +} + +void module_init (module_ctx_t *module_ctx) +{ + module_ctx->module_context_size = MODULE_CONTEXT_SIZE_CURRENT; + module_ctx->module_interface_version = MODULE_INTERFACE_VERSION_CURRENT; + + module_ctx->module_attack_exec = module_attack_exec; + module_ctx->module_benchmark_esalt = MODULE_DEFAULT; + module_ctx->module_benchmark_hook_salt = MODULE_DEFAULT; + module_ctx->module_benchmark_mask = MODULE_DEFAULT; + module_ctx->module_benchmark_salt = MODULE_DEFAULT; + module_ctx->module_build_plain_postprocess = MODULE_DEFAULT; + module_ctx->module_deep_comp_kernel = MODULE_DEFAULT; + module_ctx->module_deprecated_notice = MODULE_DEFAULT; + module_ctx->module_dgst_pos0 = module_dgst_pos0; + module_ctx->module_dgst_pos1 = module_dgst_pos1; + module_ctx->module_dgst_pos2 = module_dgst_pos2; + module_ctx->module_dgst_pos3 = module_dgst_pos3; + module_ctx->module_dgst_size = module_dgst_size; + module_ctx->module_dictstat_disable = MODULE_DEFAULT; + module_ctx->module_esalt_size = module_esalt_size; + module_ctx->module_extra_buffer_size = MODULE_DEFAULT; + module_ctx->module_extra_tmp_size = MODULE_DEFAULT; + module_ctx->module_extra_tuningdb_block = MODULE_DEFAULT; + module_ctx->module_forced_outfile_format = MODULE_DEFAULT; + module_ctx->module_hash_binary_count = MODULE_DEFAULT; + module_ctx->module_hash_binary_parse = MODULE_DEFAULT; + module_ctx->module_hash_binary_save = MODULE_DEFAULT; + module_ctx->module_hash_decode_postprocess = MODULE_DEFAULT; + module_ctx->module_hash_decode_potfile = MODULE_DEFAULT; + module_ctx->module_hash_decode_zero_hash = MODULE_DEFAULT; + module_ctx->module_hash_decode = module_hash_decode; + module_ctx->module_hash_encode_status = MODULE_DEFAULT; + module_ctx->module_hash_encode_potfile = MODULE_DEFAULT; + module_ctx->module_hash_encode = module_hash_encode; + module_ctx->module_hash_init_selftest = MODULE_DEFAULT; + module_ctx->module_hash_mode = MODULE_DEFAULT; + module_ctx->module_hash_category = module_hash_category; + module_ctx->module_hash_name = module_hash_name; + module_ctx->module_hashes_count_min = MODULE_DEFAULT; + module_ctx->module_hashes_count_max = MODULE_DEFAULT; + module_ctx->module_hlfmt_disable = MODULE_DEFAULT; + module_ctx->module_hook_extra_param_size = MODULE_DEFAULT; + module_ctx->module_hook_extra_param_init = MODULE_DEFAULT; + module_ctx->module_hook_extra_param_term = MODULE_DEFAULT; + module_ctx->module_hook12 = MODULE_DEFAULT; + module_ctx->module_hook23 = MODULE_DEFAULT; + module_ctx->module_hook_salt_size = MODULE_DEFAULT; + module_ctx->module_hook_size = MODULE_DEFAULT; + module_ctx->module_jit_build_options = MODULE_DEFAULT; + module_ctx->module_jit_cache_disable = MODULE_DEFAULT; + module_ctx->module_kernel_accel_max = MODULE_DEFAULT; + module_ctx->module_kernel_accel_min = MODULE_DEFAULT; + module_ctx->module_kernel_loops_max = MODULE_DEFAULT; + module_ctx->module_kernel_loops_min = MODULE_DEFAULT; + module_ctx->module_kernel_threads_max = MODULE_DEFAULT; + module_ctx->module_kernel_threads_min = MODULE_DEFAULT; + module_ctx->module_kern_type = module_kern_type; + module_ctx->module_kern_type_dynamic = MODULE_DEFAULT; + module_ctx->module_opti_type = module_opti_type; + module_ctx->module_opts_type = module_opts_type; + module_ctx->module_outfile_check_disable = MODULE_DEFAULT; + module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT; + module_ctx->module_potfile_custom_check = MODULE_DEFAULT; + module_ctx->module_potfile_disable = MODULE_DEFAULT; + module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT; + module_ctx->module_pwdump_column = MODULE_DEFAULT; + module_ctx->module_pw_max = module_pw_max; + module_ctx->module_pw_min = MODULE_DEFAULT; + module_ctx->module_salt_max = MODULE_DEFAULT; + module_ctx->module_salt_min = MODULE_DEFAULT; + module_ctx->module_salt_type = module_salt_type; + module_ctx->module_separator = MODULE_DEFAULT; + module_ctx->module_st_hash = module_st_hash; + module_ctx->module_st_pass = module_st_pass; + module_ctx->module_tmp_size = module_tmp_size; + module_ctx->module_unstable_warning = MODULE_DEFAULT; + module_ctx->module_warmup_disable = MODULE_DEFAULT; +} diff --git a/src/modules/module_29541.c b/src/modules/module_29541.c new file mode 100644 index 000000000..1f89d007d --- /dev/null +++ b/src/modules/module_29541.c @@ -0,0 +1,471 @@ +/** + * Author......: See docs/credits.txt + * License.....: MIT + */ + +#include "common.h" +#include "types.h" +#include "modules.h" +#include "bitops.h" +#include "convert.h" +#include "shared.h" +#include "memory.h" + +static const u32 ATTACK_EXEC = ATTACK_EXEC_OUTSIDE_KERNEL; +static const u32 DGST_POS0 = 0; +static const u32 DGST_POS1 = 1; +static const u32 DGST_POS2 = 2; +static const u32 DGST_POS3 = 3; +static const u32 DGST_SIZE = DGST_SIZE_4_16; +static const u32 HASH_CATEGORY = HASH_CATEGORY_FDE; +static const char *HASH_NAME = "LUKS v1 RIPEMD-160 + AES"; +static const u64 KERN_TYPE = 14641; +static const u32 OPTI_TYPE = OPTI_TYPE_ZERO_BYTE + | OPTI_TYPE_SLOW_HASH_SIMD_LOOP; +static const u64 OPTS_TYPE = OPTS_TYPE_STOCK_MODULE + | OPTS_TYPE_PT_GENERATE_LE; +static const u32 SALT_TYPE = SALT_TYPE_EMBEDDED; +static const char *ST_PASS = "hashcat"; +static const char *ST_HASH = "$luks$1$ripemd160$aes$cbc-essiv:sha256$256$106666$0e4b2d61153a322af5defd708c98b8251b34b09d0f39d3dcee80f8114d7922b3$a55d6e55148f934965ab93411c9aa2a54934cd2fbec99f09417f8152aa554aa644d12f2ccf260ede86c7d408e240ea548462424bccfad18db81d2e00a9e9bedf42c20de564685521b6c36ae4cd9235177c538e84465c319e874667406a00dab1fd33aa3cb6ffe994944d2261502ca5d25492415512d95540b0a73984cda28c60148dc4b59dccf67aebb6b160e33cd6221945e93e07d4c5f1825482143b4e910850907b58c2ded5da526b296588dcc185dafbde1f169e79b2863948fcb1f69d29f77b8b143ef23081edaa047d802c39984f7935f838ed89f404f85824b4881e9039e8e9d1c17aadcb71d6d15666bbfc3c866cb1efb71a9f63030eb726233bdb57bfa2cecf472e276e3010ddfaa60d3ab7635060a5d6786a13cecbbbba5e02ddeaf645c9c0bf07629803b56aa154e5dd525cce158e3472e48b51849649cd7241cf8d6b096d16354968ef3793d4c73338efcc657a5243a87137faed04958b44718e0c1f33e9815c2ed6dbee3745f21c87d59bdcac0ecb9b7f08d0de7b259dece8a1b67db04c1b9edfbf89eab4315bc0e6a23d55efa8ade1156bae1556e5b4a95c554ca8074866b959d97c22bff869d85b9246fd4e26d9e440d23167f0a5406a73093972a8c10039c22471964727bc44e71b35a6cec5672801ff304b72b4a67651345327a46adf15dd4cefd5c2a26dddb71c7f94dc7af202eb1912e3ab8558645c59e8f0101b7e516ad9d346298138696df82d07214adf1b73ef4b7b3d8e8d1de933de444d1c00c1a3ac59c9de118ab4f13b781c99d04ba68a35842d7a7bb85163b5b94b07038e1a28ecc3f1ac6f35a60bc445835fa0c7db412591bb54067a15b999a7460a57a1d67c22d9b61afabcfcb4766cb400736e931507132af96467f455d8231ecb6daeafb4c3fa6849d7a3fee43f2baaf325e5b5f55dcbdb390be96d0ee2c80a786e6aac3655d8c2872c2612ed9f6fec30b55d9e57a986c628daa4db7fce63ab0ebebbc090178631c79b1f9e77a1db025869c6a0d3aac8a7f0c77c29da752b4b68407dfb19483e94cc2b990526c86144f8a75dfb8f137397d01ba6cb3c3a9530015d574c58368f0c3f7f47f10ea80b2413a2dcb15a69b1179b6acf0d3f351e0f37c3afa7c7cef98e28c87e6c3ec7676c1d0c611afccbfbce2b200ca664f9170e7b0bc280ae1da439b217c29780621c31ab1a9ff8ba6baf92e032af4899bbc0d9cb9352fe33e66eaf89ebe915747f6732c31843564af6b3f0214c1d2bd44d703dc58f5f52d81b70c402fbf2151744e798d5b60e1cf96e4e8460d70b597d034819709ca4686ea9670411ff6f491f631c947ef9899cf5fdeea125339de4deb645f60976c4750f79bc720563a751982dd8cdc4ab06bcbd24cb3e25105edafdbd56b5ee51a825e74a47026ef18651930df372d6ed719dd9602434369152e642dae96adf623d79865fac735a870fd09e7ae171ea70e79f0b513dbb384ec0f86036180155aebbea5b5974eea3de3018712ba1a9c3cbafe1a89fc30575caa4985ad3af8fdf264a3b668d60838796af4e2de7d9233e0f2f82079a1ebdf07e174d9290d72e65f3e53752604241dbecf6254af2504da8e6d0a762d7f25fc6ce8c2f7bde65617694de805e21f9ad0e2d7dd02dbc708514fc1e522c801a78eff25ab5ee33652c2d12ee191f24c6769bafac03fc91ebcd570ff558831a263a989b9d492191bc91db05cd18763a4c75a9a0079e7e9fb2de20c13efe9d20cf3b0e2f1fb3d60365f5bcd09b803c2dca907ee28d89ab8150063a4aa99138284aba2796328bc6b0a28a49c815c01bb66cfe7fa47f7ce93fbaef7f1da570b2c53fbea55ccc30d83374ed1b5bf9b116e5c9c0de67b32bc9cc239b011b483be5c534020044e844a5f514056993b4adc38c27bbfd8b776f7592a45c7ff81af47dd0d90d47ab17d55041a54f7bcb21faa5272927f5e45e79e0152e0ca15a77c9b8ffbbd937be68138face8b517e35e37578201998b89737fdf0c258d973637f1ed8f425f87e3b6b1e4df5195189017f28a6ad372549ff7e88e9b56aa80d88663e2ed83f3b2226b60bc541e8fc215e375f3fa67d5058b3f3e5f134f463d5d0a1f979cb9539f607aa844de9c25b027681913686a16476cfec2de10024b8ac9a8f34e084ef02dd0b7253c528ef4a3ddbc83633dbad615d8fe6335d4f1ff39e996a423f3c5204792f8b8b88ffea90aa5de076ef5c2657211f42300cf6c6a0ada78de74858508add489956412e723e5f9984099053f5cd0f784d97d989a881b567e1a8efca4e56394a93138d357aadc8bd61e0bc19e4676770b81eb3344f3c9385ff83cef0b2226a181dac2efd5b452e1c664b7390f612e38afad5212d467a0b3ef2a7e70d045ad94f5ca547731539f967068c3ece37ab35568d932a15ba573b977a058409ab90e417801cb8e8ed92a2e9110773a3a68dd75225718ceb1698ddb5aeb92cdccbe6010902b453d13a0fe812a1e1922d9fd51593815d7ab134721d1c5deb96fb52b4a5431e7cd6edf30adbe1b3d1bbe1744f72d928d62bff19bdfc6612ed6d4d8861e52bc77a70880f9d9a2f5abee4fe39129cbb14e349ad70765786109e5064288ff45dabe0a05fa00303256b021625c5b668a653145dda4f26f1f20233c624b23fd3717a3e73af9a65e87540f2a207150b44b69a960a71b9d21e46bd66469263c965cd771461c04ddb9af4d7d4bdd614e0aa1e97fcdb851fdd871d2bb9c7792bad79f19553f7c1e1e1f9fad3b1f18edcba702ee593004e2f804ff90c404cbe2c53a069e16d8e1af1549f06d80f2cb4bdac3e351c702a20ce0e88bad7bd93a9d3350bf2ced9acacc77323b76f0955801580690009de760ea2e55b00c84ebc413907251d5ed97055d4d87f6308e9da18808dbd9affef20b1c6bd9999a6427e580fcc66eb80bcb37c53d80a06d9c5e16323d66277d75618097917c18e7c534a99eb240aa9377640cb2a5406dd570f176ea17862904954f32d9d9f3fa6adc7d0d4beda863f723102431c63aeb6de2f3073c5b1f07436a9d9f0811b4917135f141a8b239b234fda1c03d3faf4469bf4484c91fbb3673e70ea0cfaaaeb077cbbcd59806a75f912b71850a8970b6b15467aa4a5a96bbbd53e688f83f9f044d042c0caa5722af0838b452f214bce48410d99c5c6e1e8559846c26b549af760c47c2cfa489d25a1a2a7fd4acbfc2617658914d93b7ba3f56b073f88072b55b476525f88bd77c0ca8716c8988c392f911f606de37e6dfec82ee3d8160d7903056669f637be5966d30be6f8a2fe30d4102e4b8522e64dc41d5b09c98c1b8ec10d64826a89faa567e3908834ab1a045302137d69f34ecfdac92ac96d5605fefbcd2d3f51845d6a5d52e42b541a525f1c27671de2b85b32a7a72d10a6a60ba0e7d311040290eac7cf755623a5bb721041e2fbd6536d1d0bbd8f3899165a1b692a88e2c0ef4974e26ea357699c1388c15b3ce2ba4c7064a5c1017bf076a0eca82b14f7b697b6df966763026300bb778cff703b278f9e256173b3eb624c57383e8645986e97ab02ece4c546854dc04072f5ded0de65ebb1a3921ece33c5754ea81b8b056a4f264429ebb6cfdb2ee2ad544e91cdcc6867c996f34b96f9b9b95bb59e19ddda6695b88f4263c16651f1935a53ab278817ba4c75f2b07605fb5bff410d2228a1e51f554dec1c5b75af5b54968c05994f4958e2578761f6057602bb2159a8ec2ec022138d515223249c486780f814fe410227ffc073f9fd52e1ce5622e2ff932f49c54f81c9bb3589f8ceb8a8d16a98b8c3d3bafe4d43e1f16738e5e53037f46afb3bb04452811466cb798a30e01f77793e2c4aeb55c6e1724101b3c1d716db5588a236ce2265ad9758cadb8a1f98b141e76f23732827b6245ec14edd0c77c6a58fd97da440183c76ffa6c79ab20e3a355708508f0ac1c5f9b087b9ad9cd9298e3d2ad4d36834eadd508ec0c9ca52c143f66523aff7dc0fbfb37b25f6d88fafb573942c308a3d8422ac59f21ebb06a3a8af6f6767fa42f3a89706201ae652041b1e002534a72007bb18e4a3485bf72b6d86adb4a0cdcd83b69fcf316c893ce6f2c87ea74a1d8ea28e5a176761f222395dfe6b7d24e36d5f6319f832c4f6ed268084b96936278f9f285da8377eff416f8ccb33f4365b15a9fc174b51f8cffea6ce6f61d46d64d4a822aa2a31692ffdf6c932160671db2106d762308fac2c5ec72bf2fc5d3cda09591679627188693dbe7d69e9085b647afc6ddc5ed96b1158b3165984eabaa7fbfdb9a83d2fc11c506cd30c64791e0f2ce17a880174aa7e429a24260e0386124aac7b58e46a02e4c30cdf9066a7de70cea0273aa1a7f812f6b2db0969f16961b4d5d4ea6e4e83018b422d5459a5013240b06f5d23f0ff2c1daf99cb20378fc696d42b6469a1a2c259a214d3c783a5ca4e1b5b0a09bfd4ec34686589b6870bc0573a5580c3b1721d022b272d0f6e93f55f60ee851b0ec1f5f5038b4f0b9c3375a909cb4822ab0cc9e3734875da24efee946ee89777f8ab51463d459d986cfd6e9a58c81cb4351aa3141625997a08a79cbf4cb76c91ea90ec9eecd1837960d8be2df178263587afccab8400b42ae0237dd785389e25ad00ffd69bc76e6b09b47269fd0981e62a1008b60727294a9d4f7a1114c55052fe613ed65cf5f3d005c3adab6ee548e8d3da77957f8666ed8f4a590f6353d19897cde3da82ffc1576a46f2517fcbe502bd38c67184ea5a9425e4cd9cfa55fd699bb510ac794b6c25470679d4fe8f7d2fda022eff9bbb813db0f84512852392f99b0dd0a9db4c34cf196909bca8574db079da578eb1a0145fd1d6d184ba5c6e5c678acbf4d26b76089871702c797a7b62590b199ccb9f4a3fe59c2eabe9b90a8588a78a83dda7567b985b353b8b382c48d4bb01eb7c94360dfe8c63513f5d427c6d79d1f9df0b73333736909e5a291eee34ebfbd87389615aad2e725eb685e3e4ae877039891055036fdc88396b8f8f86e1537a56a0f3fdf16bbdbd970ecde2af9c03ae79119e87c97df44e37ab80c52e04f980bffae0aa53abf736886fd736c3a3c2bf561655d3ca493fe3c0467e610162dfbbc91fa506168aab894a960c4618ab1b7b833271cf55012c686079e0a34e7a1162443c35bb44a0457c513373a611b64dea5cae681ee9c1e74b90a743f95a6ed3aee8b8bebdeae0c805f0de76ae612156fb65e0c639434beacbf69888745a528db1330dc801616f47a9a0d20acdfb1d4818381317ba809a9e0ac82924aa06d197e1b1bc787eef07cd861c4cd473157c0aeaf0213233015f79a41d10bb4b943a5eaea6e4524a30fc1f39ef05a4910a549057548af6b3f81c0722cab38e86024a86ff0fb3cf3e36ac81c70bff6813540a0956e0343344d93765273c394e143bbf10c130fd0d005a0961cc0d92719bfec9b57c5f9cf723e7b8b8e571ac6a1a479616486ec1c01bfebb2985341810f69dcd0f1b4d94054838fd92725a563c39368dbd7be5f8fc03be05e932ba2cfe9b6374297859e1f736b4d6993a14c360c8844b9f69b27210135f6a41f3cac0213772e27630d76fdadee8ca5a15f7893d6f9da6cf23d2a67c6a755748d474094579ce38c6c7822785362fd742b719565d83f7026a789e45796abbd575698b25dc175ad69a30ae5ec7fc6f164176e438035e7db8851c88dfc2e3827170af85344be138e11f534f11c3c1dfdc5409bdbda35910e834062c8c3caa1cd9d6915a5a03f091efcb2d92c33460449f426116071b435a226807ba5ee07aeb37bcd2182b17334abe447d96863269bb16be37b94f98897dee504b76f1bfa4563ec165a5e38f8718a97a2ebd5e01aeef5248cc8b82d28bc0c1f12d151b2b8ecd005316df8b716b7f549ec17686edf054bc92b12f9dc3faf94071d0b60fd74d23498d7394b6213bebfa473e0ac2b6b95b9e06acc9dab8de6d0274946cae432dad5d17ccbde4ee0987def0e7caef0e6d83d382a625b377cefabfcd3d5d524bb15db7fe50b027574e18007cbca81ff211422750664beff600bd7bb76007939c17ab562d8f3c9ba625387ae7693950b0ba1800716b940832c764888228adb44511c9135ba01b0c7f4065d9345ffc324b5acadf7ca26f9cbded665160605280a37ada95b21f911cd25124750a45604efcbe65ed4ece78fda1a3fa6ace828b2e1e9734cefed3ac0a2c752547d5158d3e331b8fa0704612d0f1ee4fee342631275269c2eea50bd798668c9132f5bb552348176814117d193a87cf677cdd433ad7791073cbc562ee299cc7b68d1e51f898c2ae45006a0986a74824fb8e5985e4a3509cd19b995e9e4b104991073a3eeb0ade8e931340c15e4b6454ab7871657abe079d6a5400457b45e66dc139d8b7f598bacb9f2f073be863fa3850b5ddd94b1f459c37b36d52cbb9a3bae6fb2e9c9d02427a2d3eb90bb5c8c7000e1cdc77df53ace86a3532c219e7c37a684db505124c06c93fe5cd98b0b474bd99885f72152d749c45fff28520324e79eb35097d6ac4c3ede0464daecbe101c26569d5ff1aaafb043f68de91e4ec9bbb2ba65e533675753d851c20273f9eebcadaa4bd8f4816ff21cf96261416edd56ec313b2073d4d5ab4a866c44445ba2dfe7dfdca76c9aa03ec6cf07978719166fbf41497843606eef2fd86c3addb9f39cbec0cc122924389916d745e990a75017488b71bf1a2ce121d0532c2785cece3a8c5bcb05546d72b5f4c27af1fa9de7599889e2640ab2e40d349195e1eb691f85d04dfda0fd23669b5021d808016d4975a75985a87cc0f3599c6272d67e0d40322f38e2cdecb02a470a6da3b6eadb0ba31cddc57b66d9c30d0c41474a1cb2b7ed4f69e5f93e5f527a978efd492495e6480dc80bded43c7eef547425bed563b344c52b2f91e3ebb246bd5312452535eefa7cfe145ea85181cbeed05bbfa7d9df4a5a82d15d662a63a10755871bbbba5d141af250659d1c457d9aaa29c3b71b9839d98cac1f571d1165057eb7080bc94aafb0fc17908127eee1b6a4dd423b9755e38bb640acce0cd235840e59efc0bad0c8a514687ec7a0ba7d69b4dd16f11143deb56a2e64cc023dbb3cd5b41c7ca04b0b984ea9c5365edcade617c60519e933fd8e7f673770888131585b43b201596daf382e10d4a3ed893df300a8169fa9e5aba72d96a2f522ab66bf4cff53165ca4b8d22773e59612f774d88eadd537cec61e8ee80125f2048a18f3353a2600e219a077f2243da33544d7bfc02ad68b1733b111d2a1415f0f976a569d36ad442ec8c98ddac855af09b75983e63197839e5339b6d03bcc3fc1ac505792e6b9d1d4d827ef7603bc38f1568e9492b740424021c7208cc43be6d2a9c0cf272a7d890efae32b2ac67759e5a3f72bce84b727275a298e5041c80323fa59fd31e10be1ae553936e10a555cfc74785a751fe7959691d5476cd367a4e7821b7aae2dc99fa9a8444c2def45af2dc3c8c0ed12adf908078857bdb5bfdd373ca8d727f8abfd7b4f1cbefc96332beafe0d5a58588cd65c34a24931d5f69093808a5580c6761ab5c2a12b5b546e3821a6da11655a5c33791f61a71794642e37670a678284b85bf4030bf700a064d418066e48ebd1b32612b19d65ce0eba07d72e9bdbc556e18627ea2b7053706f9e26efc6cd1bbc994028352581952abc2ee4881badc3b64a96e1ec269c4532312e9ee06d63d73f403c6cd763d9e8c20f8f5911a7794fc1295768c2b04689ac940af3f87d9062ac9502fc9c447b11fc7fe347d93d08dfc2a27382aad4777a574614aa40551e10b2608bdcca494b09258f7a3ca00aba0ac4023df315a8797fa95eec5c1036b363964ce12bb05012fc5a0c7f0825de658ec930e2305c0fdb5fc8743aca9e5b1ff464c5b4962b82ff93a8f6cc4ec1f4291d2e10c2be1318fb39a83531a0fe4ca2e2953b210fe3d518a4b273d13dab1e06b0d57809a205dbe8c186e8b436e2c26774cdbe7135089a30ea7c9d0b45482223da797121222f83eb76b9adba0ea63dde6f86f34691856a7d7dfcd47f61f1af9d81b3d57906c4e9891272ca1d8a7aa7925f91dd605218a7062c30937ac52981b98b1110b475470c79093348b9e13e2be75ed6fbe6b82d2d2a26032c668cda6d1528738874eab71ef01d05c26a315da3dfce40cade7d300789f0f50acf2d95c12c4a670c5ce030145dd2e615614a351a8f478fc23e78bfa83fc243ecbea84597ae729a0a60d16428c8a2552767952bfaacffdf842af8031eb989e7e5e90657482b952fe0a664ed7d186a303b4b554ad8206ea2bc7ed59aa667b02444baa3f69428422895a92ac76d89f8928c3f5484e4ad48d7bdeb210b70d153dd08757d6ca43a56251e68b601374ebe33e904cfb400ee6e3c115df0d75b18a98e5a170d21a2a4d952bfa12cb5e382ce0c7b78ab2b6908979b29d7557c54c28a3360ca80a3f55a017da4042383d1cbbbf12932543b9f5dde96ad9646a3bc999772c9ea959b8391731f71f8c9c859c4065e91c6a200e17b15d42c679f9253ab68ddea5dd90a69f3bc2dbf3160e6bf876f6a3f9d5829397a8d6bb309b7d07a598b65c0337d35621c2e0702988a7ec80f7c77f92660d2c608f699c878a342b7209c5d2e1176a1230eb4af1f82aac315f1f42e0dc8c03aacd2a282765510fab7956a1d2f1abdf0f9ebbbee6680fa883eda455818fafe6d1d90b51fccd45a7ae9f379918c3ade34a4652ce7a1a885109cff758fdaaeb825165d08932088ac00e25eb6288f63052e33f609f2f3805f9d3060b766d5bb7cc6739006af0fb4fb523e9641bde27144373f242c1124afac6c91cdce5e4e0b77f0df3f568faa8ea2f53d0998d7592d38c365f72d38db38b2af389963b3a18b877823e5351295cc02d841798bca74ea3dd13aafecf0acbb811c044469816386e3149c52240e8803d39280dbcbc701293f5a45a5ed41b9aa96801de5b20281a320a90cf58cb482cbb4a268106698a5df77eef6af1cf93ad1691cca6ae94e363b4b3b5c1f1ac5683dc41dff189527e3408480229418fd526b5910e45be85893fe9bc173ece36830367f4ffea348fc4cd919f4843d95d4948aa385b03d0a5c34ab32cf635dcbe19b3afe10d3e3ee9c78aefb4dcbe81796bc313cb64654dbad3419f4e20fa62430dcff049d6e474d250e66a4af71ee4d9c160df3e1964ff42b6d5745d703c2acad5e990879a77fe21ba6a60e481192179e1e8cbdb48cdce60a0489990897505a4891a972ca2c8a786bd8f60c3340455b75a938d0d131a37ba69cb87885834697f952d10520a6ef61e63184a78a68634862cf828a1220a3e1c8979a462ac733343050ab4efefd35f753f074885307b4c5a3bfd77d1c7b83cf1a347ca974bf9fd17530f7b58cb103a5e4cff7b5e8c629f37ce538a911334299b14bb8a3af4755ab53264fa295b7ab72ba0c21f3ba02e533aeed525534cefe0c7e1634065f717315a49353acba6be59c53ccb301270a12e19475e5b12bdb46bec480076d6b06c8582b7b19ceba4026526ab68e48319b3590bbc9158485d03ee24078260c221acd00639ee304a42244199545fcdd7c9617ae6f197f8014ceb07115f61a5092b953057c79675ed18d24bd4b22146183d6fa8141f758f0743399eec99bc839cdb854727a48129b037ab77b7b538f1afc0756c36c6a66223e7ca3fff45d0ee1caa05669da9d0988158e6382f289656b775ae46012a99ddd0e103a009d953580349d58a7bc91b23cc882f24f12cb1b54805cfc71bb470125f679bb6c1895f1ec16e8f32ed720eb9a595d4daed8e5f7fd3078487f3df6415f7ffe2e250f0f5110a898dd123e4381906402be880349b9adc8ead026f2dac1a5ef52f9be7d5adfc2f7e2d29fd02f4ce00f256a6414283d630cfa313258ce1343c94ff468c1aaa956b86542ead90869f05fbd42a8381e5d514fc5107e1e2992490b80e4602ebaeb14c3e9664cdceab99bfcbca9ba225caec5d37084fe37382250ba31ba6f6e119bc1c20671196b7865f9f422d4b0b5fef62bb73ef8bbe8e12b9274c1d7f7471c6bd703d12ec58b5b686e0bb4d69b6ab86f283b41061b7e786a4b7fffeba9e0c0bebf60e6d2d1821d199c4635266b12ee3a10b2d63aab681635993d6c6e13817138071a475b7dc7a5f1a88511534484a4d9ba3343fd258eaae5f98adf8d545ecba2430677f06729764b4808f339f6d0f90b1774938817545c1f7d4bb0f75f33f919099d1c35d9cdcfe69d6aeb75c200e05cadd204e2dd80171bcf0775d7d47ef6c0b4f4fd132e9a321dff2c6fd78ef77a94cd91eee5649d1cb344d1ad1f2df7518f5e44c198c138feb77dfa7bf82c313ec8145404be80d2b43721366cda26ff1b0b35e510da4decc12b46e5466f2d2024081d08f6e5bcf8b3f607744972f02ac5a3425f9b44936cd07317f276752cce8d0e2c510c9f032ba2c39a338a858e0af743136b18c36b62e79e7da83ab0c63c80c0bc2168625f803fb6d48c63c001ebaa40f39ec9cb22440ba1ee45d273ee79865264dfdf899fbf80a764153cc2b5b7fd172dce46407afb7e68c28521d8310a2ae57ae5b65f1777f7a9f2b23ad940c8743120f9c9bf212e90bb8196d0a099eff55511e24b59a8f62b8eabe9da9a20d4fe93252fb1b35342d6f204b49accd5d0bb770454cf8f869f4cee046325b6d807d93201b1e5e16f0ddb8c76467cd77f66e945fd7f53ffa0baaaf218b2492a2be3a8a2b7f5f507eda05e5551f51f929329b5d7a3c9f31cb4e70a819040b22e384569c318310e562d5356918f72985cd9a321649de862035b93e63ec15e42ef04e3d250aba18d6348a6baa2e365152f850051fcfa139632adac1150da06fd33fb5386a5b61619bcee59e7c9d9b5c25fa8c2257f914141b2d31cee62a964c0c8fb016d04020b5acfb671e927c73b6c61047806219277b12a279f26c9ce97ec5f6ae9c79603fbad4bc4caaefd0af2e6ca9e48ae99e4fd92cd4c71d3fd25b503ce0cf4c4b86324ecafb21c143b65579d0a936603ac9a980c97a22a99ef2933ed5916c347cc996dbb4f8775778587311be3bd184bd714d7d6e1920c69c5cef72ea7eff99e337b72e0cd598ea515456167311ba93cf05446b778f0bb73a2e1dd39748666add2403503bf1bd96fe2bad9591ceeba0fe764d99ef47770c9b01b40f52de9cece0c5a4da864d2453bd5a63bc055c90ea020762db7b27e3dbc5c9f5eef3d80ae9c1e108923c547c9019afa2443b1fa117d30586cdd489c69b704042edf0f225e8f2102aa0927d47c9f9853afccb68f9f94a21d6a9bf7a0c955c46a757443aefc99b1f6b1aa7cba6617e3045ff4e72aace166124fb9a91dcc7fa0bda0a7011086be8e5bb9bbe03d8b392f419a8103a760196fc0aea8e8bb929b66bbdc84f1ca1596d56cb630632b3e85995909291fdcf831de0ee83a3713277caece416317f83f07fce5b6c863d3bcc17939648bddd8424767bb01848d6ba684ff27b75e817cc8c31b932d322215f4bd186e9e1b5818f3b4ab8fe4b54b853f0c441b98c29d2ba732ea4de5b709d62bac0257fa46bad2a6381a1f0c03f289c601a6fbb15c0f06b45f40456435ea4f0ef36506e0f533dce2dd0969b8defed9e16d1c51393c70293e90fa650f0e553a3892aff29905b15f22fe615fcc6f7839cca91dfd330e9186f448f33d69dd251af8942cde2cd830501e1baf97c80f8d08b03e289c2576eb7902c6564fda1c52e38ecde7547f843a4fab91f9e6a3f532dd6a29f90497351ae89e9d2305a7add1e045dbaa880d5299effa38a27543de88b75528edc66c2a894dba957899651a26ef2d5dde3ee05cc2afdc8fdcd4cbdf36a5b8c597b2befec92b7ec8a7e064a73c8d640ce7364aa058fb3c18ff6bc5edb3a6a26d55a37e9282afda42741c5f739137f8d394fbef50f6f23124041d2d728fd20aa92dac8bc2056dbf0f54c4b6b3755ec96f1d6561fd350963e7f0674cab1661a2986d3e210884040ac73b68c1be91fe70a5eb77fca2b8f7873de6ccae83bf8b459e4dc1777e2b6aaa39ac475c1da9b93f47b65f471a12081836a504a2f3acdf5c11fcaa8b7cb58ab59c8dc965b0b7e3e065c8572358bc2c40549a544717d772f9340478d35fedd4a789c8a03d0622efd0a6e13c21e27e1fd73325faaf2e7891257abffea0a78cf70ffbb33f708cdd76a7b2d6ecb004079fecd53dfd49bea034f09191197228a41ca11d66fe96585a41d806788ffbeb4e7257484a0a25075fbf114e3eb988635657664bdf37f6180b05783de9be45bbc86f53cdb9194e4e1ba9d127ffe8d29d43206a06c335c96c8a6fb2949fec394cdb2dcaad1172ffb405708afa7819a0ff25f4647e1b2108436a5e00d451e0697d83069a3f8f658f02fe8478a3029d684b59ec5ab1a9cad1a04b2de5e610e3e5ab6cdd2155b59968b0fb380696154dd563bded2670bfffac25d28f2fc90a55450663a473b0461bb383a9da0c634ed666a9de6c9c571db869476654925c3a178f6029a87d6b34780a47dd2d89541dbdce1fe6008170b4a1347fc8f0ba49204c5002589dde3b5e9fe59eabbc624143b4c03eb96e294c5abdb11df82a1fdf7e29a34ecd359d9a56f1366825640f9196ae4621f6dd2ec8d5cd36822e4fe1dcb8a7c6765bc02e8f387e5d33e17ef13d2308640371e14bbff8cc8bc108f6144e4e0d9b002f2bce799c796147ac510a11d5a9ef8b7e84ae8906b51014dba54d69afa1154a28cb68e56e8a6bc9ab723148d95ee68a58a022798395bbf351c28e44232afae70b2cababf7c005a30760f185e87ceb6ca9b07ad21d69401c7e90b5b52cbd9bcb8f71577d6091353cea7fe3f81dcd6d9aa4cfa60549b6bd706cfe581ff0ed9946e8dbd4491adafd6ffb0a32ad4ef1bd3097d24fade62984f8e9c136b2d0cecf5a7c5c9769467b32937ce16fd2fb700450c5f100ae3869dfc5d3d658d66b310bdf2697cce68f4ef24fbdb0b4c5218a35ce4e549c8d8c5dd959dc9ca93d386436f6c8461e6e218fb7d12bfbc32ec8b0b4ad700ab6c7cb81e3eaab8f1613e17d7471948349d34a8ede5c06eb3feb9d0d0b36c9fed369d91d33b5325badd6d659fc0c15648b1a06e991c43ae569ec633d71ca5a6a22579ec17f0f0f53fe8d37ba1d20587bcf15ece74c72bc5005d5d45067c76c476f70367d8e14729d472f8ffc240d2676e9be8bf8ad7d7cce27d6c47e4dcae22477511ccdc961a823070993de3641ce4069eb2e4b4213b431a590b84663f36589d9dae03940e08475d369add89a1745681d59d6b5bf44772c5ce6f6c0e02cfeb529de39401a6b7fc1c2d6437ac9b29a478388b4cba06c291ba2c250f5d0b7a924d7ce0201c93bc28e47883327d3d65b39fcfdc69be564c096a9b35511538350e3dfa029bfb4660a5e93b3bf9661209802f6e6232d67b0adda2db40369cb2205896c0e4aef7efb8c3ecfb3c32c1c6f65b56ff693a0b924e0318274d14b2189b3753be1cddfd081a7f63ce45a38f068dd6237168b0b5cdb59a86d7780c424c3ebeb7eda72ae0189759857b654e06683cbff114ad47d78776cd88bdaf517e8868eca8711aac8da71a82a94253ad4e0b194bcd806a120d97f03ae6091e2320badfed06723fcbe9eef88ed65399d3553782948238c6718e5abf4da1cf9f4af42569e0a093cbcd492a7b1410fd39eb38b5d4318524780cf2b778895db6c3952c35aef0ee6fad0e3fca97615ccd940432b8957ee861aa3a8e895a51a2e500b9ba2b465a96ef184564aa0d0e28ad1802f859dd90453efac8c82254f248c88cf077c5b0ef2b1c56338a979422918c3edc886ea22583cded85e75aee9276c64eb3deb597275d96d9672ad23ef34eb0203795f5868e477395d88c69a2ae00d37ba58da462f4779c1e60690e18e2673f67e09a5a9bb14add9261d36a3398ec3d306456809c54b8630be5e460dbf2a7e1ace0fe035aaab8c5fc161779d68ab24b32de6e6a2b4aa7fbea901d4048974fd610920204ac15bee310b0e7fec4f78cb62b9e541e2e680974ea5342f2dc6a9cdb120a16cc2f220552a4a80b7da93ceb614f7b230cd3f4eeb1943dd953e5901cd68bc83a6fe71df93355b2c828840f38b882515b1b328c557ea1a3e8c6fdf6900122e5f71e0b53a6ec2a0ea079ac0265c69d745c68bbb011edd12b0aeb647f3eee60d0deaafe04fb8d134971bbf08800449ad566adc6f769b61dba40c31666d58b3bec1ddc30154767ffa06a490bb313f6de4b4ebdc288f398724ae0d7462dec4ec17d4b0099038ab2a1ecbca82dd44153f62ad71c8d7934adedb88bcbc7467093c3cdb003bfa8094819d2a0ce27b1b70a7e2fede10107f44bbb995f00d02e050d6594adc0d7f258d71b2298473446f2c75d9d3333a4adb1a4f67da4a8a0ee755e173cd4c3cfd095a165b9178fa5a27bf1db300afb632db2c71835048cd8bd79376dc00989b13459855eb87a81e839b3bc2036f8a518f6c44fa49ee78f4820fa040b265bb85c8bf1a820f549e8698b6f20f17c535ac7d5907465e34a49c8c909a644ce574ced45f8565d047dc1030182cad28fb67a72815dd3bd6104352f5576d2543581dbf05a78018fe21b55399cf37909c3bfcc7e948233ec1c5947814677964bd29a81a71cb2ef0f209faf0970345944e674120570a79d7697965125ab521ded1fd7260bf42d18b809da17a6e388be2a54133ad963649e34aa4498fde9228a418c0b5daa619143415d334711ab2eda9ede4782af993f5600c5554e318fb9b9b613dc72005ef807509b79e1564b618febdb42d60c4485e4d3162c764d5e74cfbf49fe90ffc8196c4547cb7df02d9df72b6194645f04b2260a70c99c32e9f3259b77a6f01106abcb6c9ce9aadc1b990869833968a7af6cd4ac20a8e453fb02f02b048a157acfa40c7b7115385cf12e40c746d90ee1de407e3cc00dbe5f88c55f31e3cc0202629c86a05da3ac2d475534f78a8323c0d968498d9e24915b0856335839911ae548f9adba498932cb8e53eceda090a61bcdbe5ea10920dbd93925e3ad8a03c8490fce34c999e33decc7d6fad473e1bd4ba33a9b9c54d05535f92ed19c493ff9cc33406d892f666332ed07f7f5c3384d956aafecaebd79d83ab35d8c5ad2cda6b45d40c59696ea9de79851514072927b03cab498847a704275d88ccc2973ea492c6f67099708d87aaff14121e7ae2d4578efec40c0028ed9c095e8d11ce6d98f82c41821d7478fbbee2c489a3e2baada050f755f7909cb61fb313bf43e60b6974ea8485b27c84510f07cd533d4ec1b55eb40b2d48defa1f3ee58b4eb99d5158dc5a40d646c51a09dfcc2d9a395711b4cec98756067842de0e2ca2aed079fd8e0d4b9f093ce71798e656b55b5aba8e1cb284a43c40af473d2c98dec47e293e3db770db8738eda15a702d97728a72a8a77a080cc46bcdef6c8e50fd12c20cee3e2157c5b39973d8d846566c54c77dec09a79043631328783dc56851cba8eba02b4a7e5343d29abc95c77c40350668a680247e19ab9af9182b867bb0b0c91ce781fda3113ccfeff9e6fd6ba3fb5af36e13b285dfb1aaff294bce2269c352913f14cfed8c2c3f3967f154440745566bfc7c8cc8489524407aee5d3870b89f51f7d1def19add4eab4eaf94ad16b6a84cbfee898d70aba4e3884cc6bfd7684f54347c899a75684e7dba272a7f7f72050769b30ceafc4f4d3a5d93033b7e6756135e1aa1b216dfdcd46c48d1c96f190a939cc38e22ef8c927f06bdf969798c8058038b3fe363add52ccf8842167b11000a144edf607547e7c9e06e9a2e479d022179fe926527869f69b1de9502228a550def7b696d79d932f1976959561e1abba1136e70223a78ad3101471a55763eba7356c1f77794e40d81ac8deb304943ccdd059b2cda11a066ce6fdc7dd177db12f1219f3b25f95371d7bdf5163ce78bc8f645ca3083736b70bee3af3f13923b12b760c23365dfe9ea40a1f30827aff6e8666613d32512b18d4d79fbd84f1ded6b129607114378b5f4e9c54a72cd8bda90c6c82477578d1428e8e9305d2828544540c73fb98f87f2b5b0f57a7133d06edac7dcb39c547d4ab1d7abdb2119c0eea7c3bc99fa41c759a1f03699ea11aea46f2cdf5169f2cd606662cf704bea7d83ac6076609ea2fb16005f48990c3330369fa800af2122ac33197f003ebf7fd755323fd2b123961040f8aa1c5d8424f1b834bfa9c6cda2f6c7618ab7972b59471b6254e96be96f6eab481ae2f93f82a53af6cb3b5da31379c5de125f61464b33b3c5725e585e3cacfac849843f0a87855123b3d4a23cbc640fd3b7d2269afd2464481b2e4951bb5d05380d16305f9790c9457fceab54b0909763bb1d3c15009b12ac301d6f929c588cc3a42a1637da9ed7aac74a6932d058550b87aab519f0f2d10debadc6b6edfde1a5b7d7e1d5cc189a6dbb6f8a6e4d104db3315022f1a4670d8e9483808aa06f0fa321080052e7e748534165efadf4fb7ec3ff3a146bc12bdc4f7619adc89f8673ae5d329c4d658ea2576c1d2522df2a0a1516bb64610f40dd12c4c3b620ee0b65ec6fc854ec1fb8610a5383e224e3ea13140a8aeccb571cb53b0d2e062f8685d0c11da57b45ffb57a2ec2d9bfb98e8d42fda42647a001042bdab9e92ebbc2fd194d5ae613c282b581ef3064efcb6edafc770e087e174fa049fcaa7bf318d1bb909fd58a5d1941d297a1edb032d4182fd441cc3873f9da995d376d856463559bcc400d5c808618fe1bc168c05b09b9abef4615cc09d5357f064a68afda2396f653ebd728e7ba0d82a54dfdf33ea12d84ac140e0e312a397dd81ef1b8cf1f931d643fc43f4d3ced30826f6b426dde75b445f6ef5e146835222059fbdec55d012b638cf7c3e52b9c148180a19aa4b604adc8572146ed4c972d346aa677c9d3f3a9a16eba14aadb433b982cff70541361adac9e5680628642e0166b08871614e4075894c866af6eab75841432529045875fdafb98a07e7891456f0dd4e5533609e19bed81174a3e52e21049d4afbe025f5d9205f917fa5d7553c89faf63f86fefe7845246bf52ef7318d9d6c8e972eeeb641ae6a33697fce7a21297c0d7d8935eb4149d5f1e63bb1f46ad184dd5911e44074e536bf27854c9104809e85ae932f426b82fc4f30aa264257387ddfdc129d77d980e42357d6912cef049aa79875dee594bbf400aaff73b373c556a9ba04b9dab059472f7dad6788975177ae911e505889e34600728a8a22e2edd2b1acee34c9a204878ae72ede601e4e420c159f72be74f1147123abf0578d3526461a1512c747a69fd0fb277c4c0181ffafa42b6cfc2f18d8083671282cdffbb4f96fadfee031ea0b3484583976e1f59f5b82efe239fc8441c6299f2188f60dbdae636f42a47f69126414181af81443a2d3e28c85d86e928e0d57c4468447b85b3d8506ea3a8332486bccdc030e890871d170e87cc6fa626035971dc7861919b53dbf2d65075590a367d73de6d5db3938dfeff79eee0d4b0e734e396f2645b1f82d9e0f16ee91e993a0ce8178b60bdfc6e0a03aaebdb5661ee2481f4e4a6e6cee5c778c4e7e8556c9ab21e3bf2c7451900ee68552ece2f62b04c8bd5dbb2acc5fd1749e23303186b8aea7f03966044012fd6fd253e6d8bf197f4feddf9b7c3cf1b7f2340ceaed95526e87742f7f7068ab6c59295b31506d36e4116d4712dc04abb9754fdc4351e98eae451d73d52d8376cb41b6dbc0613179ae50a04d65cf143b7ec4bee6bc42f47a96790eb4d73a7758415b5378e710b17b41394bad80a0c86c39dcdb69e390966d9655103da33f8dcff98ce3789933b7c0a87d3b8b5818d2a83bcf8e2f9b5deea1020be17bcdbb3376b8b601a4f4d0499b3bda4b5d0d95c4f2289bb782a9984c6f6d6138b8a8e4b770b049d666dace676903dd52451104743c27c23cc7ebf75478f1039a405325f078b82678b8222815999fd522d5a5c29f3faab567d6b00b5839de0250a0498994eaab9df0309f9aea3cfdcfd25d527e0cd3750a496837d0caf6bb7b59e79da14fcc7ee11a76f9a41482fa159c34e669e2125c92476566baedc5d3def6bb390126ef01c97d37cb576b97f07d9997bcdfe5a78ff42119f743decc043c140e03b9f98878ce2b9881c72a7f0f06627d1807a49b9e81025e2906622c4d1b2c0e2e76f558f7eee9c6abb5697be2180f81965cff475e9f30e12a0a1eec5a7b2d524a1feda9ea7575e140a7ebef4e73bc626043d374f893b4f310c1cb521ff4f69d806e001c58f8c4b4d5113f3845e883b6cd4fd58449ff4c85b673c8c3e642b54f43c918eb6ece148bc071540f8cb7f9de63e611db8351539710962a4ac9bdc5a58557a5fdd4041f7841dc3364a88eb3764230fded01016e6beb2a51e6dd8d93cf79309e8614b7b532f4fa3cf0101ed173afa67a4664453bac3e2c66b6c843628645a1b7894b02f195510ae85d1c61994301dfa9e722b152d5aea695850987f66e9b195c34c3a279796151e0fc5fa04f03b0090ef18917ad387d4bcbc5b86577879dee8b00f6e2fb0882b1ba6cd1e08371d90aa0d1aa92d7414ce13d35460d1f6ceed24447531c28fde07c9e7ccd8252dcc990f944e67bf10d2b4b6b48ebb582b69bb238673e8966f8f42fe42256b7830ee20962ee8edcdf0ecf5065261cbc4aadbb4b0ee5d52939fb3009e3c4a16931712eeb377a415ba991a32fa6ed0bbf83e4307beb1f211a240ba187c2a8966a4c82b965aef9b05540fbebef638e7c90cd203f78d78e5cf2f659528ed299dfd700ae9b11dceb7e508ce5c1ea727101720807e3e2bc90638b0065fccf9b8cc27ab48152b3b06a0c57d9c0b6fc9edd009b707786757c25010cd213ff397ffd2565bfd03cde02942c50614a3f3eade7755318ed6415e224dc36201c96b22a9758d991cd139829b9c67eb281482fed749458f69a2b3af2bffdc48deac1053f4d70e49e8522940ed630f5e2a6587bb21bec763d27777a20c38cf77064626f4566fd606b83373ada1c6feb57eaa67543d9bcb07636072d00f729dccedfd09ff6a17cab8c37be09a360394642727e489f596f1c859d1beed6795c2814c2ec5a9407ed5e73cb836a3017ee35c233d5d410371fac33456cc1549d2f3d34b7b2f2a88ff576fd3e49b3e971993dda8cc01a269d1284ba1ed1a71a76a77d3872de1f88b6bc69aa39ec52d042687eb673905dbfdf4a8fdcf111729785833775a3bcfab96f86998d94419812e3e50a9ba0d49eb7cf93fde8a4d3c77bb5172bed3e3ae309e66811d17f7d1f57b4f5c67eede8290f79e32189365754b4ff82efb38981834bc30d5b4816e3bcb4868bfd3af2b2f06e22388d9c6efe96da06da79742e462d0ec9dcd9cfcdf0e06cb43e72a8e5bc42f6f1f78d8ee04ef410227c3b8aaecbd854a46a601a0e42007e470a80bcbbebf3442478ca8ea4ccd0d5b01d992e1732c1f4cd03cf5a41f6a06837cc9dd2be9eabe4313695a0cac7defb64aed011edc71fa83bb08e5e38064d9004c3ab5ce2cae41823b8f4e9a5ac3b441b9ceb9907d0b65f74693a2f0f94de59d698b8f6b84aa93cf084efab949a9c8aa6357abfae7ab65f79c5a66a7a8ffb8cf0cf25738cb095e5635ab0dd30a83e18bfc1d4f47905a38fc4545d6ef248bce7cb8380e06b67b4d0974dc1e69ab790938b0006afede88518b15f2f2360abd88d881b3712a91ebf848b0770294a167287d98215fced7cab071450abba6d5eaf57e7a213df0c3483f585f70fa99d9c72af046d35ebe056823596efa79c31487e9ce1ca76054ccd612174192252ee516ebf8dd168f487e46e2433aa7c4988f8f0d05505301e91525190d1210f5614a608c7e54b5d2ee2e52e1a906058a4f53edad50ac5cf6c4f690b5f816efdb23274b2d72fe04056cded244bf305a1ec043531c72fd0b705a0ca068f75fe1e0d250c5a1342d26da4e7fb3380301a26607797e8c35c685710861d4b92471e3a842163afd15be39e34f5ae7352962700e957b429cb6dad6e9d7ecb8b63d885cc97a335114f17fbf02b74a450d8120ebd99eb566b7b6c5eb67dcf5e8d86ac6d5550e8ae431d69b59ae9019f0cf258804f065afedf739df7fb81b4f61aeaf0160fe5d3cbf33706c79513ae2881a5f635d0e229ec44132fd07ad0e8787917d1011ccb99f1caf157dee53e50a052117587d016430eb084de4e5fb3fb925599c0814ba0dff02267c75c0661e24c6dfb26720278133962962d15cf2d9f18d4ec1fb415f4d3a3c9c8e24cefb279aca30c45b24e48d56f21db39512861a762de2ba0f19cbf9bf5544d9217b45d70a3259cee568b779939478516f8b098ac9db580f441a324df5c546d9e7fb1ea634b24d5eb3865dfbca7484cfc21d3afd383134090877ee6828f32f26f0e5011f0652699e5b889066d6db1a3a9a41dd8e2018f5653e534c74c5365cd5c0782ffdf8a09d976b92c66d214b47ca3b4bcf88c1385b2a7fcdbd24a161531d0e6bd964e974ea6a6536d563db4d3cd53648767bfe80e89557253607fd73530f6ce37c5ec09bcf13ab97f3a88dee761ced4938495cb4c00cc7a704081490777a52792e3f2e6120f95305604ffca64fdabb27d8205ee55d8ff2361c8a940511c76d91a8ac714a52c987c32926e45fe47504d81d0186513c1744db677ab096cd1337c9feb3245958c8931335250b41968b162a132d8450ea4bf991aeb4285b91af0554339f7c6248a2bc60cefa1bbfaf9bb0a42e48d994e0ec95b24a26a1f17552a3f32a6de4e026fd591096c53e28a4b39a74332babac39a2dfd234a541fa8eb55547d44cc4c09a810b78d1cb20d7f7fdd7c9dcd07185a63e228e29e833abd56d027e498a7d4d8d32ffca627bfa3a9136188df6c09b58da9d1ea64092f498439f1fdcc298b38416c328522b362951476e5eebf4343627bf39170f3059592ed3221957940ad67d3fadc5eb8fe7a573abecf62ebb3dee61b9e84bda4a12a716dfa82f2e0ba4186166096a3f8d624273807ef86e6bf8ed70b21eab2c8d0c498a048230cbd9e2e9388df78c9768d70341d81fc3a7a98fd7c1b30d530208d0f78a07a492b94897ba17bb075446d35b035053f1592843af75a686d6e57a2fe50101ed7ab75aae597d64f43eff44b125a8dfbdafc0b193473295e53c8eb5b3f79f39988b9c1c1ba956fd2a1d2713eb56ec8ee6ffe9dfab60ef7180ddcfb7ab3bf506caccd67f3fcd03aef0c809484ea1225d129e38e04d643d2cea10a561de916c37eee8306890633e6f3929b258dd9eb97524a9479555a79bde8a36f48cf5e75fd6a1ee853c5538286576e1db4c98ef083024a7f33734a11770cfe59919f3d2944b6b5b9120013dcef550b3d204520c9da6bb29d19edbaf732182d50a42e4dda862b923148230204289700c2ad8540e06f9c292512c13e182519ab4cfdfffa6bf64e457ee67b40c3bbcd03a5f7518128606286f6d9435de1eaa82843ba04bb1014f7b734806b5d1a7941f88e1eae205696a47dfaf3ce652a458ffde3856d8d54ae9416ac23998d429fc811e2122321e34d5279ad89d2d88b0698c3b6558435d64a77a72342384f922846fa5bf36ad1da5a28a268b1d35ab731db66950b2873bbed946d61619536f5b80027a295181ebf6d690c4650ad99b3c6b8845e1644b0deb8bba20df4c5a40b1780c8aad8a7ac5930de9a022fdcb2c29a8045b26a7b5f883dc3241dde85ad2fd4846af1e3b24f56cc6a0a35afa0a94202eb5b4a209b04d095c16bc1eed910b4bf4922e8274942ffa67e346141cdcfb6d3ac62bba047a0c551e5e5aabba8523f8eb6ab7095b2c41f78457a74ceed6208b4ab3ee10537327c6b638704d13ba3d535782e8c62efdc849f774e5568db6363360522ae7b05b3472cef7510409ce08fbf7d3e6b8f34a3852ea3eea25e272d2ea5751432c7dd9dc65db83c9d620949a8fc00a6664f4f85012da7a30d087923ec9435b1af3f25b1bd9485fdd3b4ecebaae2f32c368f0e5e844b553635102d8e085e8f82d19478e006a3b22bdcc871965867dfc456bc9e91011357027ea8a2cf297b79f2ee7042f818621145ffde3c69701135ae10829b96079cc0927c71800c48255a01b8a1e1a159bc6abd2c4593d890ed470f4263e8cf44ddb7d14c7f3d531c7e93c31d2e25e560f4979d58880d6de60e6f227864d9e613cf9566823b0a0f66318826dcd3bd918da13ef9a4ce47ad3e9280c2303052eee5c0efcec894e450981a3716f30578b15314521eb6650a9c2210d3202cfb79b58e06a3114efc4acddbd0824d8c30c8707b891b662cd0e3451843604b830428afdfa1a98b14a1d624e29e63c532751cd134c079ed883f0cc99a884652ef85239b6148dc9fce0fed258a9beaf96e2a4fafefdb6ad61bafd1b936fec1515315dadca0ea4df87ea221c2d8e5f7ecdd9611014ad124737c05cf9b918f92eabdc45024019b8461ef08335ac454a101d4bfde350a0088c9b70f808ed6ec1f07196fb1e86b4de8f8dbabad745d1a7daf7f75973088a0dcaaaaedbd123fc822e717ce4c7e41777fdafecf0296b694907965d84bd8a9154db7fede29d4c78497393b9eee2c7839d6720ee94c10e60268952632cc3a21d2af31296f610639649b7b44a033eded4e49b84582d71b155cb81ca878ac808718ef7870465f50dd64a7b33aabc086292b9df9844e69f6475425282e8fb304b72ae5af2876f902e75ca669c31e899b2c9c44d411ff28c3b886e29a5fc0c1bef6c1dacb3cd92b374442da06c95c177e007300ca23483fbaa6103246b79664ab8e9af8bb261b72009dad75c13bc59456a290cc03609ac7f4ffc344f5ce6157f579984454c6a36e8ef72b86f567b0dca3da817d4a016f5f8800a1aad797479e6e3dc7b6288b1e11d494efe28b3622f80f1a38184a589ccbcbcf45bcce4dc1cb10521f774f77fa3755f0cc3719c5f4c1b95f869164780d0fe1f73a6c7b4fe8692e93c4bdf2c420d6ebb8a920418e8c2f857fbef8f04443fc3cc76778236ba1919e8ccc2b962e6dcd44942b7a2e0854e15d347d648c7d48ea39d15850293c3fdff5045149e729e0ce31d483397bc7bc9c4fcd047e414118a36f78fe3f8851ade5928c8beef439ef7d614b02bc31e66e3e9ec2d26bcaec3d4c8d5447dc5d40f3292d04464e24e7fc5650726a71172334948307222818f7a42e328fb0572a9f63b85bfc81f954ba584ece5fd3f6667a9c931f8d28f628f5be5cceed56bde37ae2e790b30f60797b4d27f79fbd9baaa840ab1dcf603eeff4b98a0e8a8c4ff7611119e2887a7df525110d1781dd6c24d2089faee6f0d4f716b35107fe4319d04cac2ca6470b649951d4158f1742fe4cc151d6ce072e62aa5908a53d3cf4218b0fe49d02417ba41130b510c11795345b883ee5fbda0344648cd0e2230f7bb0737d10e07bbfe716efefec8d8cc8a3efb85d362325b19bf76f25515bfb21515455e7d40b0f8817f76472ca488e67c966ffc31a4ba3eb3cd798d504e65439c5f8a5647538dd5ca58497a5ae4b3cc5669f6b7402069a9af70fbe3adb5fa7132afdd0b935155bce4c8e63ba0d3e4698c91672294165d1efa689cf64eeada32c2498092a2a0f697d24e6fa305e245221fc8c9a5c1c2ebff062a5f98b7d09d72bb293534a9f002642a2d7fa2f18b97128a304f5596720827bad4fb6e226aaf8ef1b8cba67d1561d17f1499cb2bbe2eee1e7e3fd4e07ce299dcaa023679318c3a9d4f80d75037812287512d0061da157144b6d4acd3f46a90b484e4bdd74283c558cf8d34206395970b1257ea03ee1ada364acaa788c74e519d6e62695b549e984bf97fa30a13c791e6bc63a60ca2d5a122c3f4b93bd6bc920833206b3c91f099d9b035325e9a694f6f6e11974d5db2a67309e342d4f1a981c128d3610754fc94098cb80e0a417d712e50b0d2a5d918e35935b7645dcc38be4ec818b0b879d3f6c8773570c3a572d43da6ed9d35db1a570d2c72df7b7589a26339d38e1ecd0ade99c41015e82fc4454a851512f4dcfc3138c929ce33cb9e34da1c404f35f4f3dfd183717124f6b9eb015d8d83e0fee2c705f488cd5d56f7d294f8dde2d34ae3b8e242e3a9d23242cdf2684611650b74d9536e058d4eb635f50fd3661e51c12cad7debfc162bc80752906bd7209eb100fc1166bb6d41e146a7a3bc9559c8e3abc9de3b574ba9efd8c2aa5a5b23be513cbe5ce38a00280aa950c2825c1a2a297785c19b5d5503a2172442d263b0e333748ac80c57baf850cdcaf69344576cfbf518d96df6e0d4c13fb75a7f4a03ff52998b7c2dbcaf923d0eec4d8ea69c92646946958b2ad5dd3dd4904bd3c4e8e997ff2c26cbc84fe78228dadcf8c8c6113a31afbe4a21e34ce1b70e2296a7e356baa0fd28ec6c708dfe419293836e16a9094d66d72f56a8da09a86e5cbbb3fc6a6d174aa9f0fe9af84ed9c689d677929bf6bd2e5612d0252301b9f5c520927be0d44ce68016c4d3a52c75a21e1dde06483bf3a16a6d003d61931ef17e6d0d0ca8c97a2463a493dd98ecf865e6b064294dbe1966a8cb03a466748e1477402247ee7a1badc61d31589ccc74e0a35f3a741fefe812459cf788ba9ff452eb9c2a3374e0311c3a6901bf20f1685ee7843aa33495f4c251624365e0b27133510e71a8a13963a69242c18c89c07eac45e29ddfcd6986f5e6c1965070042e1ff9af0dcda1920e5e1e8f5869be86c945786ec7b8fd0141277f340475f4a67b190753cb1f7fef9749262c208bc71609d5ee8d7a3570b8bde503dfbe734cbf1ad4aba4e335574d76826d10732acba843dcf8da1c26c80847023fa41f56b6034ac4f4949dc669370dd7ad2ee673ad3249c90fe53505baad4776235f60f3384679d77676dc9b0d557e396edd580a3d0a23794a2c7d64c9956307da04ab0a2f5473d81d8b3b5aa078091db70b379f558d9c89fb5184f56e204e4b13012cec8f7cc97a09695888a22b21b5e6fa548fe7e4bf948d1e317148af97bdf282de8c08c2aa12abdc3afa9a45e456c1d2078935a2892abc40f61c2a4f258b1dab865a9f0680d15e35825ceca9fa83cf34659641adf5a4aee158cd4384e021f2e36840c298a60d861977585e85b5121d837fdf9c3be803b2d3dfb67b4570b8ba6eca7bd0319ebaa4ed32b577878c73abfc7c3c157db94082b475c96ca30627a902019f9b273a807f831327eff18872f463a991956646d6e33152f5bb0561269fc25d6675c00cb6f55839520bdae9422a029c7e919570faa605d4f47e2e441da36b7d39ce0a754ac5b443ac25386fb881160d3255b515b665430c57f21edca1e7b58b4ff3e3c3885ca3817006dfee73c0a861cf52c001b3b4945a8927799e929b09c7f94065b94a6cc03b5888c9c0094122ca363e45b588e18379e69dc685ca0643b3175d55e98a873139aa97f8b515cac99cca689fa516f272f99bee13caa12a4ddc2a2d029c05b76e9718b4e3358ec612018d9b712633b15a45a08a9361075c0b6270808aae6a84181bfe66e881c6f663f7361881017afa7a8869f51170df69866600e915afdbaae81cfaf36a5982af1d3508afccf30337df5712427b3d114e9a50e0f613f4da619bca248688323d5181cc6804e262bdf3ca621f305ef55e154cb3667c8ffb94e22eb66025f3c0130ed5af44ad53635c7855bec7f38adecdc4bd936ab3ee5f340223a92d8fed28b7f322d20c0bac710bab6d5998da4793385bc8141da44ad4ecfee0f2d7b497d18edb39528c068607c974cc9f1f20477f53423f191ad078df71d966362d9526c05cf3e18227aacbfb864b1eb9da5f1e17e122f948ccec3ef5b7c432ea4445bf00116da9535b44a6563ed707a70dbc4d1f0d874f0d0de8727ce36f128d25b2f978fac3f98753dcea8005af044e297b1588ffe156d783f23b5b2a548beabecc2dc25eeeab7fd66275fd01a0f9089474d2ae7c92fa487e641f6d712e9a246df9f701207d3274992e3fd15c649e9d391826fb2378452e2ed5343ec887d210cd27794d8154ab090e3c92a82eb7d59495972224cea711fc5a47da56afde85e73e5e9cc49f02cd96f1ea8a5a4a1b0387ad856c8da054dd43a5a73f4c9575e96f41aa5605062579dfccc0bffba4bc1fabfd0b67a7d97abfa2f8bfcc47b965e1f95b25c480c6fff816efb75ba6b8d75263bb151318973725b4df71fd2b3704ba413b048747fbfe4093f41c00a18a38bf81148de35d865bef2e06d3d4b4fd2e6adc78d6fef108672b1de3756e91de809aac2dc33e0a564cab7ea58d202c979fec8162f952c10390c55876c4a9f2fc7bbb408f48a87d8269ea6bbfd87bbefd8895beebb361902811cc51c2f8b6d190c617ad2c911313a972a45f3c2ecea7b97d7d0be6971d7a2b2e5d13b0e634993e9748f709ec76a736a160d9bb6c99da06ac90c7d1c0e4981144670a48b98c30642b54b1498f3266ed725202c9a6f5f7624cb08d8c6d38f85b184d43cb0274d940c82118ec957b82caffab0150bb363d345aa6a1c32b729928bdeef39d87a709504b9877f0fca455b088862d82e2d2434d871627f8163cbd448f46d034cb52fae7462474ea313b76e6e0e59f482fd478c7eec45ec3006d4361ee15343c62466c2b5c145029e4b8973896bc625f0286f17414c5db27dc36d3370a0c9edff88447472d592377a20605af172d82836a4b60194c45d9f4722b1583c997435ec2a89ec396da2a669f6e10c06dba3627bbc8153d9227e9f4cc2e4e287a03026ff1d01c5e9d160a6ca752facfa1f3b8e44aeddf14a276cee868a9951d849f8d54a25e706c46fe04929f8e78223c7663a525928bb21d367b39afd30288460ca1dba1dd6f9c0a75077f9481ef0376e69a87019dcfc1bc5f1de1c3eb816a35443b9d2ba47334aea6540dbb20ea873685f0d6fad2d38cf4d3e03bddf883cc80ccf7517268920c8024614176004da7d0eebab005b9cb06abc7fa73851a73fc52a0c364305a94515e96e8f81a10e7918e5f0de771bdce95a98f199f339e6393b7448a72ae6132f922c8aa46681f19b6420587c2d1727e4e450bbe12c7da9c9f0186ef9350a7296b02514b5e60aab761eb5ce4a38b0ab1d7699fb71cf56efbffcef45d94a4055e3addecdab2681e900bbbb286b26348916f21939aac8d600a7c1935f3ece568757cfdf9717a62a643fad747eb499644d798f253e7305ffeb91451fdab5f9f81bad2a2a772f2f05d279f21be425e824ced5961a28732aa31de4c156c1157170f639dc9120a64a986ac1bc6ec759a7044846680a1ae4ce81a129d7168ffc87573b0a25e358a772511e1fd032ddc2481f3c5793cd764b32366f09421e261e4fd139dc9018d4d831f479c44e60d2e926fcaa48c4918c3ef57de51dde0b94913874848ba7b84ac048d89690151da9f75bb967e1625dddc808e0ab357c74322f50747b02c00d6b5d27c5158a0228d3afb2d7850dcf7f095719e46d4abbe6e27fa02517e8bbfca94b963f024c5a416d32fdffe9f3c90a766708c807bf9b13600f42dbff882782e6f8c73f63e84539d5c5cd955dcb68349073e5881578380f6f50943ecfbe753adf774ae4d7df5ffb245079ad860ab90e74f8e4cb6b066c774b121c0c7a38dd91eb3597810530fc6dc229c3b5e94d8048dd6fa8a064d3d550f4dec1d87a86ca82685b68e838b897e8d7f153eb0a86b93bedf3d98fc3e6a95b2c4ad9ff4d8678b92bbdc37ebbb7c55b707a4bded17f56e2bb2ea4b45f6f3360952f7941b87fb286a886e22fbfa839b41b97dc75854ec19b97e5c378f04ce507f4b2532709f7b0229d7418a92a9318493c72533dfe3f33beb38dee199b4292d509e3fc0e21ac074042987d216edcb7858caaa8b819db3aea96bc00307382c3911a7ea8e9b57fc20d5dc3dbc81e658f2df787a9895a37cefe3ba7acd487b8006baeddb2f8f16792d47e1dc603727a5fe4f31a22826674e76c32a251044f5dacc69fe27872fd4e529f6a163f8bb581681029d2d4e6bd2e42232cf8874fd142665941f6812109bfccabdb1990d6ab073c071bf511844192b12e94a18324d9b09781e5256962195a7230a43e97ef22ac74306d0566f3b1ecfd4f9e472a8ffa3644fd82a4f1bd4af821db8ca07d6c18172cdfa1f8c1db1caeefaa1d181d95edda642a585a75bd54717d436ff17a63d2f16e8de067431fbecfcbfe88a3dd446edc9473b1b53986e8f7cb21e84998ead238f2a6822a4e38afb1d82e6f9ff8a3f2ea6fbec425ce278f61f9984e011d2afa1d19848dcc45fa34c880fb60bf2203d99a7c4501869d135d3284bd1341bece59ceaf93267a95e685a1fc6054ba5357e93266809a0a60606d6c4d888f6932ced1088962a4c62e8d9149e7a54d5ab2e6ad654eec4fcb74550b1975ed4e03e81feeca766d9dce3fa42ebbd0cdac6d755187f19134ab68f807608a9a3b873504e96d07d69a50de94e0a7fd51f6852a81e376d8ee99e099feb5c01cad9e2f6a9bb65bc834ae92288bdef64f442d2df56efef1ce4b471337e84506d1eb20159a49b2c8daf3b8dcfcee418ceb57cab6c421a08aa28daadde90284883537087cac09f52a8e7a275b986dcfa7311b11c03a03bc6938528c13c5a587edb3c5ffca67a1b031614bc9992c4e33009378222e5a729d9380f5fa5fe861e583ba3ae9d9aac55b31115ee824d18177a0b79244f180701cd54d296264a58fe9f7e53488ef0a4fd0591605495f6fc5b417bb03d1469cd23dff015f95765eca85e5536ff23e43c4db80bbca503abfbc091fd99876329b608289e356cb5650a3fb645317f5e9ebaf898bc921daf64dba829c7aa5bd8537b9e9ac0028cf5110f061bd2b7df33e4e8f744c43fc598caad61dcdc83a98a8fb2f26fed67a6328f91c805305f131fa2a95f94165989fa0548d42d5e7e2b9fa82ffb5e2829bb2274250bbd06da60ed03ece0a3ec8471558bf3c19359ad2a9200b84d9c0faf38762bab2f9d720302e344a4dbfc19069b8cd412966829b74f10b1eb52725db1428a64cba04326bb02f1bbe81c9eda7ce6da72ef0b96d3a6479f0db8f7e2ae6fe45022c80b46cc55c0e5d448bc0017be136d9ac63abfd3921c79082149745201e07689273d836a4a822a8145ba67b6508b32343b4300a3af0d862a322fc6aeb1583563b10d5489bc2254c1f15cce3da89c8838c0046f264597cc92ebc0de1506132ecdd95630948657f952031c064f4f3c3828cf008ae77db3e898317e8236ee4f69406f8c84954135ea89efa646a23e2024e3ce537f4bec87cad8408ede814cb0bd76c0376359772848e1107c934dbcf51722cb181fe2540c3772d4d1573ea0b85b2ac2eeea97ab26bf43346a283db350cf1ebcbd911e6e4fe7ded666f9a0110cd70d5e8ac97b333f95f89ade5c16a6e0e734cf5dd7f6ece2484114f5adf29ee23512a5078b2ef466a8fa32813b02fe138546a17e20b583e0b1ee0ecdd45cf879c1f34f2f38fd8b87de909b0929816dee42a1201ccd984b943c34ea1d30df719712f95a759d1920c3cc1f245b77359f9347d20de72b8b64bbcd80e090531b23fb3f7bb06c498a756054edc7121ad4fb68354e08def7dba68644ccd432dc22e5744417985ebb2e73f28ec980e96a8f561fb195bc5c0b0f364caf01ac3472249df6115c7380d87a1bd96c7c627ac545206ab57d288890675af2b1a22bc65eeb9229866212bab64c50fd4c0f2af76932f0bd619def67675a415cf748cad1cda02f6f3cd6cc4c1aa1365c43e20781d081c568cf12e0f0766401a9101054887881e57e3176fee76f911af00003990740e235f16678c60b1175ad3632d559d4fb9331e65b49b469285a8b196816088bc365e754a6421a69b8a69e141d280717173cdbd22438d14dad9b2c924a54baba6371fc5bbdd7cc5d880d4feb10bc1f7ad23d8e3aceddbd4a9c85f8201b908c46f0c929c78723c06e7dad65a6f5223ebac13eb72f5899a3a317f9c714ae5c45446ad10e240aa1e35334a0c5f7bde9276d2592ad5103b50065fb23f18a354193964b2b2f19fcd88bb1ed62f495647ac8f0af5c60f5a4cdf7d0e440258c27c514eb8845ab32f30e012b577ed10d637d5bb6d30efe41a61a4d52c000ff852020ab699e089ba0d2173f6dec07046c4336145ac8205ee325e90e53617a5051701a7ae947f1c9221d2a5cd34463bd29854d088001e70f6df3d0c32f5b52f2708920bfa5b50a6b5af397f9011855c3db009e89908b8f877e83350a630598749e834727c76d4043bdbbc7e04f28b68895a2387f0e21a75f89a8c0323ada6c5d5df2bed63139e033665af0591f4500c1dd183daea7ca69c8f0af32a4a2ca6bcad732661876aba58236c3ecfa9146ddf42fa3277c9e884915c1d4162f2d4c773b98068af753c139e428c69bdbff210bea5779c71e103928e3ab5a304fdaecdc5e7126aec195c78774ea933f239e4138392b6d3f602b76d905fd2f95ee262f80b805e2bcb926c489b51a97c3c02f045ecd8ad3a7478573b6644f386a8793f66fbe705c815988bcc379a7ecf0fb13507b5f0096150e242e1852e3aa491878c7118e154594ef14c37c5b87a28336540acf99cc465c060937624765483fba83036f7c295212124e824c8e8b93b6b457a4dd7c43866ec1286a7ca43a9e9eee3d46bc7cd95e6fc398b8ad49208956c374549e37d41bf4da9b104e65cdc7a5cf54196bdaeb363fed15cc73d8f840e2b5bbbc001533972d3ee700b063f6ae52f1245d8579a70fbf9464053ff91379b2a893ead69e66beb8ae1b0a7dbf03d6577f69d1ee8b2983d836ea1bc463f96de12f38a7ae7ae847acc56c6fcf45ed240dbf8c239fa9cf51d558c9a8524f4a28751901c1be636b3330c750c568fb73f96b497903e4359d7a9c7782564cd276bb6449665eb899b2e8ec795a429c75b0646c8cd52519586fe24fc3966b0b9b751eaa5bbb6ebcdbc159c5b3985b85a4ed915c8f5793868c0b616d6382acd8280318641b04a1ab24b7dec64538e6b7d94a8ae1cb98e87b6068c8781a6401687bb6aa253274b15101ed92f4c229ec863e4855ebbf7ef262ce5c952edaab095eb9f25c531547b093f6928c9dacbc5090551f1d0888699ca1cc5d37378c10e02369bbbc1bbd226c4f5d783606cc9f59da85089e91492730a0e6c446ffa2bd7f0d3d5c791f298592ce190598ba992e8e4757fcc7d9b3c4951f164e4e5c1fd4724fd2757a29fa37c7225d0e2804ec6ff6065b3132d0d55ab10419d76761475ff9063e74d331e4c31a3e26c135f33ec4133327f1fc74a6c3770cd659dabd5aa2ba16dd19a0c166b9c785cfe8331f709b83d0e66a5fbfe85309305d70ec9d0ed46200fd3a0e9e0551edf14ee41c3f4b06b66ab45c2399f828c3938c99c0db940d83d2604e2c91c6206f364059d19ba1b351bff6be5fa88d02e1d440908371fda3000a0f44238f2e300970cb6f7e0fdf76a52ee03616b5a5a8c419cdb06e7142ab8165cab9a5115542020d656a5a4003aa37c9c54aefde2058578dd482286c1ad9368d4eb393b21c3c83bd77b712362e220d439da5c6f0ae1c475fc8f5d457f1b24547b47bd6b946580f5df4ca5b6818289b125b432b6528412a518a0ee93f1a6281d382d9bbd3fdb89a537302ccc24d7ea10c5fbc15b6fe7cf83a91738ee95dddaa70c08e86111bf1321ac61653ecaf09a534b1319c05acd4b47a60246df0361853392db528a8330d7229299ad97936b4163544fd9cde7873fc89062dff712d298d29d43d4a5eb0ee6a8547324c860fd5be6a40dd5d2e16d10fe390d5fa81edfd3092695482489bd8c79d3379c35162b2cf9f61106a06b160075a964caf1ac109ba84d03a9e333d02123167b5d74cf21ec7047b5e62fb7adad80606c051eb53db37d4f2baed0d9ee5a9c2f87c4b8cf10e50521ea3e818d7e0ce5f52de4d342d611164013346b20665949b42860dba489f4fe2621f14b664e9bd4246f830c2de992ad86c559e6984898ebaa8125c064f8837454d305f8042d659311ef0981984d93cfcc3fef3482bfdb1efaef35d95d7192ae33f31628846bfa63b6613748926d249674a96c00400ab3d447a2433452fde7400207c5eefb8c5ecb98353908ac5f3776999db922241dc471acfc1ecb50939f839fddf58534046af3cc62f0b6affcfad2c3cc1c34b1d1d75c9f639159111cf0bc1d35312a0f339cce5bb3775b74e3b600e21be20d3d104272cc1af2f872216e5894577df46ab19a10a4db89e3c0a6d5cb3dbdb3fb782f25a210740cf71c726c8afa765a431b037e8c8567154a2c3e4e582179888c57f98353a0cc65f1e88bab064097fcac57cd7191bf76100446782a9b3e9a2e488a774cf76d035386c986206a62d31230b091e401b42771cd1b44403927f20ad03576720a8f13dfd5a01ae8b1c3025dd32582388d9a40a5cdbef9e844fab6b8ab2e5215b9d230988c1832ce462282079ee7b626c0f43ff34048db10e8e6dff4e7cec8c6418e3ca4a6e6a7d01e2d78dda13ca9865f4e3fa14b3fd8b81fb82f6ad0e1b990dcabd40f229c63d91fbb27872f4592844be997ad4d4c9f36ad4ba7a5c5e0fcb684f9fb92e939acfb5eb9adad742f7b375076b5eddb98be00445ec969f3d252b590a286f060dba0aac5c1cacce5feea86c73f944267a1603e84f8981907ffde3ae7c760aab986dc194b8817c2ad09c1602c8e85eb31cc64f7c4a0d6c873cf00cf4a35f5ebb881ab12a1fccd5020016721014b250a2b7f22e15926ec446bb12e21b5fdd9b89167c07c2e0d4f7dd9b8d0fc11598713a138cda50ea5ff0fd3914a4919bfd5889b4db6309dbd6c24e738a691ce40068dc75f3dcb4b7f2f36b7e50df0d17a9fb7eb54bcc6ed342663f53adfeb010b29aeca28b8fb10d461669170f7e6821d9f7244048b4d55d2791985188407c47ff3a25ff42023d47e27944fb6ae78a56d054f26228d7243209a2da04379d0987a8908b5564178bbac918f77a39f94a46e07d91d644c93ee0523368a90bfc0b6851897301b94dd139f3e01c232f28c197555f2c457462ccddce619d83bc33a22146126752de79c28e4514c81f2603ce5817e4878d0634e4f3894391ecdd8d8013a1f87b57837098f751c1194309de3317f2c1ff14bbe005be854118b7b0994ab2fb7c9d136b5771a05dc210ba83e0ebd1c35c1940c425f18ba1f88f78b54fced16fc2dd659a942be27674010da5912836813fceeca0e860b52f2575d7f086066b4b7eba3ef73959d1ab604cbd84419b0f7de1296fcfa34ed167ea632f9a5ec10f161dee6f10d5949334be3ea60cf9e3ef991541ae827ae51e63d0d744582bcd3000e8a4724943185655a74334be71d80b04b0ab27bf10f041616857bba6e7b39ca89b804cca83a8b007f211fdea879f658a4225a19237205c6d607387f7faccbd70bd5ba0dfd3307174e9d670444b3ba928a900be7f148e392343da0ef7aaee2e5d7ef9e4728493d6bc4998497c5749f607baf24a4d81550afa843ee3faa9a655ba2449273b8c7eaf670511730ed6a396f35f39278fefaa841e5abc0fe6765f412a4e07d27db52fb6317345fbf8ad361e6a9e17f2378089e9627c487e4fe8f635af3c905c5143958a7221588758e77a538ba6a074a68f8119cedb74c2a6327d36da8125f7a5f52bb8e9ffacacb9946b94c30f02a074c9d308fc8ae3056974950f244479d0e96bff5594c0568b51674ff7161dc3292b7a1b939ea61b351620af73a0047f3b5eccd0fad9f622d2dac8303e5d6f06d1ee954da543745976b8566af177906ef925d0d0db6c91cc436902e38a34cdfd9dda5c9f4f5d55199657cf26c85a5436df250f1e1739f28970d6e12636d94431ddf9c3ebd9cfcd722a21d20c436e94dcba78416f9398243709a77a8e3362cc88eebfe567c6bba2a74f31bfbc67d8044a01b7f8d5c46d282358d8cc69a73358b6b02dee8c562fafed56b8f2bd26b723c9772697c6a4e14adfe7c9168b1a8f4b2aaee2ddfd1864f6eb8ec6ac31af5812bfc39e9ab0c6b23ce3a92c4715dd9e1b726a7c8b00b66d9a719381246dadb91783794e47e8580652ea5c53185227f25fc73111939ed0d9a33f3af3399b1e2a545e9ce1e89e50faa3084e6fd6cc2825bbeec7563e97f2cf9ebad744bc53ccff014fdd1afd1ded3ce8399e76c7dbb1861f2f8119a773a43faa43dc1836fe898a4d8f35d4433bef8e69594ec50152a411ce63e4fa7413a9893f01ad3926b0cbc3588a7b7c15e541737bfeddf390b5deae154c2f2df2f65a4fe093b7ebb731aa4881f95e112d898b53d3fef50c78e26bdf2869cd4d1dda628c6dd8c9df7e82128f9ffcae8e5881a5238081c7e528ebdb3924d99fe5bb4bc493c193c7abe977e61e555267fd7688a5fda9abe26a4b8ae7b46ab028e182e1fbdf1ff18398060a35f155682a4848db5d8f7363791dd52140de8bae0c2712f89a5742606b3d34a722d9d754cdb52cc384ac7e5f23cedeeb5cea65abd2d0be014284cc397759de95e5456f079e2ea37e722aef0fefb2cdab95f1ebc1bdbbd38b99a2656b433acf0ae99b61e57c3cc47bb303c86746a4dbde48aeb3599f94d34106f517baecf18aeabceb55234d5405ba7cfe70569923477a0a17a4d85e4b2a219bde7052015021f7732417d3aacd512e0164553f82a93a31dee3e9109be41bb7278f1cbf08f343502265355b92a0a869ebddb5e8eb7834757b2bbf7f204352514abd9f244299455c15b0c33c965f9bc7b51da890e102ebc638d123e0dec6b21886fd6ca824f94f4f90bbb42429dbe7083400d4e35e3338e9071784db580cdca24ad7c588277789fdb6687305cd1999b767b16e4efb1bb234f5b4d0fa17980de441247e3db4bae705530467445f39534fa2512ed12b5e55dd76bf86fa78214dfae7fa7fec815c4aade2fe9863a15142f665179484c7453f07c2b68b3b1e40454e43dfefc38f6c19cc877f6a91f017d67c6e993b6deaacca391e7a3916878a9e1f58dbf91e5ff2aac4d52b560acb412fb78a0c32399c97f9c06e1fdf79ab0cc59eff971e4c1aef1301b8df9bdef363ac644c24462a489b6e2d6e6a9c334bfb92d8581f645f1187077add01bc4e18cc5769e9e971e04abb728ad546078f1ff94eb18cec75aa354d4d6b3bd50ee0f7aad8b036d5a53fa20b4ede255bff41862fa77cfa88023bb8965bf10157382e7aaca3f760c8273a325800827b2f476314cf302cc872b83b04de4a02788a2649b30d8c28fc7107bc9a5288a8cb63f7512d0f39bf470e14db9329938fd72c6b0dcf4a76696a712b1ce1e2cb432718c2c7e9c25496e2dfd32523b1b2dccbe50a3d3ded1582aaf58afa5de03de440e2da5eb8c2847392be20ae09a1fb1b6e1ddf9e8dc95afb3c54038227d4d0c09cc784e26c29683d8437c2831ddbabec4d4beabcbe79a00864d6069c55ce7c6bc818418403f529959f9c355dd931547bd6974dd2e2e0c46ed8c4a86fb629cd78f963385e4e766b9c2ad69bde96963b5b8b3391464710264c0e3b6eb1bbc0e347c6d02aeae5812544800743b3185f654de387766a895c9b9586928e62fc122e44a8270bcdfdd874ba2603a011116febc90cec2c2743955d68153412eda7e1d118a39e9a6fa7b10216a1eb760dbb12bd7ad493087750de584dd020e564f053f7e50d0e33da36a1a41b97ee4ff3b62c8a578e20e7f82b8ef7ee431669078ffd427fbdcb6f94bbbb9ac31cf42c3771a4246644a654aeca016c7164ab9154b16240ce1b35760c5daa66a65cfdef66d359525d6ab3909d8050dcea86eab190e8b8ab8df7621f16577c3cbeb6a10d002fc9343ff231efceb012bacc735f259f4903dedc118aa9d2abe8944063480b2112db1cc5c96b652ee4d1f0521e70cfb2560a5278f7c834d419041e2e0a0efbe1e65115207137532563af0a647c8c102103ec70cdd3ee9a95ab99f34c41bd6f6caefc59d01cca27bbab5a8d8aab6a13154db0e166fcce6f893d129ae3641554faf6a5d613789cdac0f150906a5ec9d9b3883309bc940e83999c71eabf2cd66d377271d7cdeb05d311afa946280d909ba241b9a7a37b9ce9f5b383b136614b1b2af1a572dc0a1a1e0842bd5822e97377ecf26505a422c93aa13716c1dd878a8792cea4fdf4befcae89f92b940e3451fff6062465b1a33fa798607669c8854877773078d4595b5060462bf43ae5d01acff33b4b9db67710feb4fb1fa87cdedb48967320b0e42b3969b5850a3368db08f7fcacb13df15b41dffde53cbf0810e083c279c3386c24ba0f9e4d65568c04a259c0f37ac665c8a454a1f6c7e35d4e9c621fbd8a48b0a41da1563e356150565da919b6828e2deec355b56ceff9856c5a6af14669243f74ef0c75d0720b099ec9c9c90efe69df0991d7f8fd9c96db922b7ae381d1efafc4dcc656d169ffbf76019b154c0856323401377a674bae3613730c3a45507c9be903abc3fc34432575d8049db86bc68475fb3719b376740708f27f77642d983f6a7f43fd5834f96b737f698064903abd574e896d765771d7ec32684191bfa83b934f59ba215df85c2a11be55ed0ce564aa7536acbf53c8254806393bc2d79fd08cdd5b5065a7fbb857d60be770ea7c38f31e4692a79c2ae7641cb41d19afe9f967642bb51311008b9b39d28a9dc177f76c959d7ff118423ed16fd0ee08cbbbda6d17cd6c0803ff6c4225a6df07aa64f114cbc77f99890018011c2a2ebd2451e6612ac4c8972003112809202e7393a561a5684e686f11f29b9fd80f35f491d606ded242ddbe5648f78fd4217ab63bfa218024859df6cb85a078523117643e717fc1f22354947201f44640203bd68df894864c604cc94f49c2e667125063063768a06192462511e3e692bad2d2e97571c391579a83bb617cbedb328f987bf1d10d38776a42875b877a2adaf63456e42e905515cc91169c2b4ee7f307eadfd693e564d232de5632f16cfbb96648ac4891c96d3d1301984a72ee1166d516e2a961af6200f0ed3f1bcab215478ce76ecb0ff3803a4b311d561949de70c945390311bd112b3168a0b2c5d17ff6278cb3ca86bed686b2df85732fb62722e4959162103f4f091a2f410e53f27d98a69cd435a3d71f4202af26633e2101034ca5b53c7b6384812b2504e58bb950d8b37fb7d594549ad6dd4feee1e216449ef7babd04195cc05fe90d05f957fa4310ecac760e407b889b61825cac30f54f00325edbef2e7e2b2956560435bbd62ed512059d2b9ea4dadb574cf8512d629bf2c95f36a4076834234cf8e3fa3e9529ebd88b6389e5c8276325d54764963f27f912984138989c289fa39f869ee318b5dd854865716979fd30c5a5505fa3474f065e8313e00f4d39e724bf204e300f19fffea3fee16cd1ca85b0d5a0318600f41d46b697c84162dbebd91af0259f11155893cefeea01f06eda10157a74789b5e09b72977a30a37b67f9be2d580ef8eceab253c690643ffd66cc43baec797cec4a9b78533a5be7823325de02e1d46722f96f43385af68496f5bb40c2e59a2e43b2a9f2ebd821e62157a5dad0021bc4be861af535dac7849ebadd2edd60733ee03765fc7f6978ca7add82b010508abfd478b41561f6afb83f09082b747fa40d05fe23aad93d333d838471780e131ab04189a37461562fab2a765fb58c72e8e4aab39138d2e41241c7bd4daf7bccbbc8969b3873a3dfa462f29ea0d8124eca712446926f28eca0270ef7b8259af59ea54a49b2457c3208c82dfab7763346dcf80b8eb0d743d9749922db5da13335c2686297e451496d3771f397530ff1a0c1235e22af5f83608eb9c6368cb16e67d6364e0ad2377c7e4fe1baf9470d466757e539c53d3ee5391ce366595a686000593935282245c411961d87825ca97171414de91a7d28ecc43c6772c88999544278f4796d0041bc872664bf2a7a85a905ca886afbd5d8d24c7ebcc8b8b80cace9ba8169e85ed1df5dbd4563736854bf503f9ee5ec385895041a1c4eaa8aad2c36114c43b307daadde00418fc671182b506c30cd805bc9e7d1c701045367fdbc00238c346effb5a4acabe2246d0d44d782fc85cb0cc7b65a6085b0647eebbdc67e2dd511427c89d07edcb232e020f6b77f326c0d466a35a160d4430f83e380eea9c555d2e7a21fad388dd462bdfee2891d3bf545afac703f9d7a7931b4cbdeeb0a47f21fe8a4b940ed99aab7912e8c230d74f5565cd2dce7b48fd06fa4c4de627bc988cb86229cc01d963288800b76de885a32d9ef32930aa5dc4b48cc3d4847446bb58ba37c9a82d81ebd4fe616c52351cb730b2d4446556c54bd4b1bc0d376d1de5ee5f7bce439c48ca4032504dad95ee54b50811715a85c1d92abae2d961eccbaf4ed2e9e23f7dfa8e5cb500e0b5d370e0b89790efe50000fddbc7b51d05eb0ae9e3e47f70d2418f2a702eedbb8009b2348cdd9f0a27284bb2c8dc037bffa489d27968d2d578f8f7e2039523f6f0f4de982260bdc9e5272bb9e36623712c0488c084392b8b1816c9d9bb38c010b7278c12b4458475deee5561b3533c640131287f6020ca391fc6245a6979b9686abe07a48b7d16001e1c6c19984788e241ec6354e754784b0be89b1713060c3def5f0b7fb17a51df7439caecf3266ffaf139d4dfb30a6e223b2e2e01698ed3a1138d36edabaca32305d7b646527c5d74922f95c0561b43869cb18b3a6cbb4e7ac04998e5d63b8aed9a2561e9ffb7cfc1a403f1574dd0c1632e7be01e50396073261a52becde7533626f726e693a023d717a86a6efb587be0ff1a3c7fa14cfbdd69777ec97fecb13fd3f0417fbed90166cf942b794628d721dfd9910842f58389cceea15ae1c267468ff6fc47943cbcf0ca3cf64cb904b54cbc6ec94568d36878939f860e5ffcf4dfa36e0487519b48e1aeacc71d8ae88db57a78b15272f34592d144dcf53bb1e6e63d01e614b8b736c911f1fddd1c3fd19b6ff88c8168f493cc76b0947fd13305e5439c201b691413caef71a6855bf7929bbdc4504009093c85360734d61093e986f179a20061f22ba27042d930c44e1ba94f637db057cdb717b82bac6adf09e15703c19881e56764a47e67d1a3244c6829c798e44b600dd2cbbfa4e1518fbac2b7b6a94f3a0b156438b956ed181cccdf8e93af929364a6d1f07562d17d4b4d44be11383b12ce7be9e0f99c5a9561717d220eb414f945c5b183d80731f990cd6e3c3165cbaec6c35a3c5c4d0b1834aa3122d949bd060a558c914a2fbcc20d4aed0277f5ea1bb8341968c6674fabb3a417e90302719251d44c2856b09d5b747beeb4dfa6d88f2e468163ca844196d8125f729454974c47b95da55c675cb32c92f807cb2604f9d4c0c82ebb14df6834209e88a0dc38360d20d9c673e628ecc6ae7e8d16d407b29d4e8c996c2d09d23e982ec6f3682dcff4818640e88bd0a250b3a8c2c8cd385d22eb713ac6c1eae7d3cbdd948ff8a051d203a5825150e0e86749bc5e3cec3ccd48c9a78efd40ea131173c4ef4482f90e0125347d47489562140a75a059f6d4584549d183d6dab58ba8895ab0da18f355d7d724a2dcc88d4db2db05da6771760b63ed108688962e0c456c34eead254f5c25ff0f671eb788317d5b7c0a8903028b450f8114d81bd75338b580d0f21eea7f86b8a483a10d86e42c55e6cee479f49ebc1df444add70e3b0cec40ffb5bdeb6ac388fc6ceda7b6436c95cbf074e34b2ef8a1016e93b09255f245b9827323aa5a69623264b76cc456f120c9a0b1eba739dd547855afa63d7d98f0d4db9d0c0e376b7dc2defae72c1c331946c14a6a5f5b771103cafd9bc3a8ba8eb10705bf09f6f51c4fe6197ba3dc949321921447082a6aa71385ed0a5e66e9673a6434fb8a24c16bfb694ea1088775d6477d41c4382d0f89b36f8ed75056caca61b51a7526b6dd90c042afd5b4953c49711632cb84b9259cf04d2cc1429269c726a9cccc5bf407e17b1cbfae8d20b3ae4374d22d33a1144588cbca51713a302f92e9395fbae8ad9aa9c65bd78613cff0792e147a791b8f7c0e836cb6ebd4940190981b0a80f3d03f11295b3ac8618217417fe71c0f2194e236d0a14c03984d72c272bef95f78030ef0832f1a38077f8ee2e55f5c8d1f0aacd0242a76e534ee3da6749922eab6a72d0dec84a9b5ca44bf846c0e4d46139679ab17e0ae4902d55114a6c91ee09b9ae743587c44a22f484024a82b28fb4a8d2d9ffbf25b76a6a8c1a03211554024454e880a4eb57173f31ffe189d89fd82c74953ee1e48776645a78866b1a5591cecf0eeba99e07fee532b84a35d06c369b792b71da63702786225f093e8146e99feb831663a0884941f17337c98149acc36d7313ef1c04ad9633e95c303f306d906476d4974b2bbda9f78076b83a070ae5db358afa90bb6892063726ce6fd4a0025d3980897e75ca2ccdf8cfc5da8ee4144d95144b4cebae2d5097fb48d567e48682bfea7830340f5197f864e192c63d7c6e85214e95609d2e7029b49d07a86e9bd7a5c705db8b114c2327a597d693536abd62b85f8db0b48026a2d544fb2f3e4f648a4a4b52d5093b9e5aab575f9e7f55082670e8eb9805bbb9dc25b69545f374b138a860337ec6a1740e53cedc14527f7df68602653d73479fc2b4c604a6ecc955763aed7b77e2dfd1dfbed85f47872d8799ac654c467f606b901e0fd539a313e416daaf4da494e8a4de81e651c8e204f206eff7ad2328809067c7d7f726643cd780ced9d843a589cd6807e694dea9bf05b41101961e4b16c9d57496f4210abfb6634a56ec4c15f00b44df273f38891009bcc0b2b45e133d3e79654c96d5318ee1eb136457baaaf6f6c74fbb1a8fc0aa1f47d845162a8855991c2bc871999668208be8a15a8a024e5470dcc1dcbd60d499d4c8c45d07fe0d7523548253cacf79673b14e4ae9a789d893c1a76af88a5fdbb67fe0842d01352fdcb1929d78267f055fe0fb652de51431780b8ba7ecf3b5d2d88095e1f537470e4044e8348408f0c2b28dc689a484d2bd19f0e0a3a7712433ecb43929b8510723fed700fbf85884e517544cebc9f2ea0df63197c1c87ea258d64f9d72ae19c65a64a4ecfabe4e3b2772223c115a45b98c5418915b8201e0bfee6e1092b2f5db1a0c244a8f77beada332afa2a9fee655ee0d76df682523081cc01e16eec1ad73909cab8a002a7a9313bf92cc115d371168c5469eeef0752c92baa3a6d335aeb9bb96cf9b528b30f02f1664332b67ba849db44c45e4336e76ac26da9f4596f44ad06d0948b771cedd43fdadf72f4e2ea4a5110055a4826b891d04756e61adf84f76e5cdc2b008c57e82af063153e30ab45c37f21c97430421e611e25f69c1a1382a7459c122458ea79dd74baecda266d051ecff6d3fadc2756b5287e681cd6d834e4db6577eb2550d59b2876120c0d86d08903dc96d5d9b0e9efe00d294d742ddbecbef10a3bbec71c13daa1efda0a7237f14fc3c180a66c2e42ef5869abcd6c570f47ed866f233665707e5fe5b73bb7d1b1d7e71300d32925318fed8829afda4e50ed4de297466bf38d684bdf935e669f44f146c277037f9cd91af861eae43b766fcc89b263cc0a96ffe598fefe87b97c6ebfa6b1c3db8af7d901bc73c7fe8a2a9107565794643fbf5ae80c5822cc86fbebd2e2478fb8a4ae643564fa0a4ed20c9d92ee5d8c73206134f03020fcfffbf51abd111182f65efa68740514b867ed41062ca8d39f174235a3c074438f046b1c80ead2acbf59306f37ed657f32594f00ef1f2825e8140a4646150011b9b1eb04000ac5dd6361fb7c6d9751a2794c271a7c3d42c4fdf2d8115930836ef794de425c598495faa28ac7f8619a2659a3e93e0e21bb50349d52d762f84f2d0966ad259f1b50498fbf8cae30c6fe483b148fca578c7ffa5c3dd23ee83c66ecd04aaaf83a6b755f8370da43700d535ff2826c4ce8c8b77315b0934939cab850b15f0e5a88d004dc0dacc88e671fcc932051bca654c5651be7ad94900bc2081c0377bc6e11af6eae09e54caf11641e75f5491fb4805cefa8b01a9496fd314fd212c6e5b85b1e5d8044fd236ef41ad80145fa3cd4ea6f7df34f90de0d7c0f3ba048738990394988ffc5acce26a81dbc78fe352ed0260f7dcd12a48135f656c28545e75ca4a660fb2c2d540d14bf4f7f21a82701e329fd84c7214769b89d25e1e8fabd4943e5d12352f1f3fb52615fa1d6016148576d8f04c138b1b9b2eae05ccba8fdce9038abd35d6d886105f688d08ddeefe9c27daac8de0cb1b81bc41441e9f57bb35d0949e21689ed32baadb5831fd2a251af8fc1bd6d89613ed4f27fb3cf3a179aa6cecdd4f5c4ca7aba00cf97e706f8295a461f787a9a1526d57dcd2d3b167f72562ad320ea8c6dc117e278eaad07f55e205fe6d04c388991f84e5a1d4d6c4938d365e2085e533e00a2590200ca0d9aec71cd07f80d1e5e35134556c27e94d2cedc56b6f00ac2c70a9a76ecd40538d711f29cd9bab54a453fc0b6546149a7601590b81ea9c4e3d355d9d730ace28819abc05d6592e5c434e74f76c9166a7ca07af321afd285793e56285889b5fcbfb0cd858aa13462aea981bd280cb7a2d10c9c5bdbf8a02f2cd7bfef0e99f9cffc8d01c913aebd7fefaf7f101e4ed2d19b6fa84fc728c85c32eea2b7f4497ee69733dac5defcb580fa264c6e10c453fff7e10526fd31eac83a1daa5f392eb69181adbdae12a604401fcc7ab1249611193ca98d425b68986bbac4170b4d401e1923811bd4a9aecaec8f0e87b1c33ec1a090eed3a2bd59285bc20b66db738b5403766d551e3809043a2dd211cd076b5bce534c23a400436c06490bed3f67f90f39efc9c5f7e96c4810aad283a2033d5d91d6bcd35805d8abd9f7ba3a1248919f72b13002ae196136da1d20c1c0121665da1598a790104b8b261c925dfa26c04a14a2cc72b140c146f05de5ff4e092295517564fa4aeb8f838ac6ae429858f3c195baee1b9ac62278bb7289d4421049c62b857f0b896087df0d22c6f0870db329101e2599366b71d7b27b91d4a8528ec877e8d73eff766ff33f34b29c7d1f2c01a30e68a99709ee1f92dcc0e56dff6a3ce0f8840a92fe5838de94e62ccbcd4a726aed55ff70dd61438d0dbf4ad11e90d9e778f3be25a5fbe406ad6e84246171317740a737d5278afa5e236cfd90dd56523c8e32a3fcd18340b47357fbc54fa888934000494ffc380761e31d9a02ac55fd49666bf585cb1218b8acef84593bebeb85e12b16be00dc4ea1b68769a6a042eebb24ec73883c707d63a0100f7dcb132d218d0daee0e5c319c531928284cff5d3027c6aedd49cf46aa03a6737849314e1fcb95051cde0e31917411b5d3cab610529bdce3611a1ade60cc54f0e4e222e87520eefd4b718d026a8ded755cc96a7375771ce73032fd89a22748783e342f87b104ccb568779e7facf2e9b2d7080e20a6641acb8a54ba5556bc4aa329eb98d57e2d811573aa6131489a6c166658b4a0a5b2b1aa13d30737e008bf0e8a08e82fa0bb84cc00a8bd5de3fdd26bf2543f793a2035785dc73c0b3131276e452e69ee02ee8a0be5d99a4d88bae8b4c60227a0e1bb8e6a60c9e3c55ca4b0983aafb244accf9b2736677c11ab83097424168ec887e9d7cc43436ecd1e4899a37d3ffac7ff6ded780afdf7885bee5d48f009e39e6063504aec73e815a7d618d9eb10eaceeb698c845bbc96c87f5302ec82cd55b0cb8dbe679549bbc169886322b3cce72346b3d85d75142200c665f4a64a68fb4964c9959453753e745a3cfd2d3d0287c4f2b66061a7aaba005403b3af8bf2cf04fae3ebc5f276dd529269d6993eff696f9c7dbe32501b6e003f00adce7c62d318dca7a97b6b2c170f932d410880f606980559914d64700474d6979359b9b359e417808460dfb63a086d8ab9b4206421adaa48a1c7df72ed1de1a3fcd6d1070a81ef06aab9acab1de5a431512bfbb764854714c5b55f9630ef9bcd236f0411627a89e174269da8197c38b27782302792dece9dd03eb26257fa1dd268d9a90f0bf326b1c0f3b8968deb6894889d350e423041311b5ca49a5143e917657be2582652c4bd5e51635edd3b944c9b995d074f26541778a6398aa7743d256c9386c8d0eda8688fe15753b3deb4ab5fa28f2930ecd3b8aa34ff6d80e08d41011e0c1f7aaefd5b4a5181c3a0726d48ea53a300ab621efd21af6965b7b3eeb2ec0456afa77e8cc6564c38046d58d35c0f5d994e2e361a0e3450f95e8d7f3b1f3873e84d58970c715ac457a1e3becb3deec03b1905e3066f03c7b4cf00e0d13c348aedff344ea431a354e0ad3869b7c277cc243405f984dff0618ab34ab2124b0eadaefe40fa695e8b75ea1ccfb1e229526ca58dbf4e35e88e0513cff386fbb645d22476fe3f0178685c1e3ea64a699f71e980ca2da0dfb11bacb8f7bb661cd5ac286c2aec4bc2d0442815a0a56e533daeddb06ab38ccc0931cf7d73fdc3686100736dc6d3eef2031038c363d3e9fcea18358aac3d06a6582ea3b17aab2ab9fe2f53a5a0ad47020947d44d5e7849a5b9fe68ac5c1d7c1bb4872d4fd8f48b2feac151f9160053eae5f528dff90ee202035f64581bb20030c73550eecb3ac6b5a12d047355ef329576abd3ab5ad9c3ce9d5f686cbb573d2aee2eb07184f6ddf01146642528dab985d1f97b98b9845ccc018d76a9433b68393c8c3c1d549cce481de6c41fd61a9a1190d8105ac51de2191a40ac60eae7cee834c1dcbd89b9ecde4e9010c72f5b3b3499d7aef161685283c239247833c97198512e6b075e2a00c9abb1f5a3f2d2f77f8ecb958d63ee80b1799593e43c7d419e50d65195e68846bd233ba22d1c05a087a4d90f7349b7b7fcfb457bf90e96a8d0020d5210cd94276f7474c55525141071593aa26158f0f3b5c2ae3f8985cfbe8143e772e57f6db6195f4746a7157a1ff597381699972953cedf2fd8ac1ea6e480b4e38aef3641ab21cfde65eb2451cc679cf69dadc3a48b5bec2152a409d2c42b52c5bd2ea1126cf0227effb66346bd5ec416b975f2fbfc91f4f544152f34703d2a9fedc893e8d423cee561cc4760f77f918c6fed95c85b6eede92a82756c6f0f6021e13a250f7bd04eb1e55e80f1c2813f7aeaec88d593fe17440ea8944dfcbbd2321ee80e5743ddd4f3d2ce2cb18219230f1977ab58dfec1ee33120564e090f48ee91cd47b48126829fc4003f27220aaf14ff7e56b013d44d1e9b9b3b54a9ff8e60f4099016370e5bcd91615b936b93661bc6b7cd218066837bb7ee53764ec1fdfa09fcadfd530e59104d0216e2c5ddc219bed0bdb52449221ba40220b4b27d0e6a8fbd2644a5510e8c2f152c36a0520170fa31cf47c66325367c6ec607d0be1a5bab0fbd8cecf773a65aff02b4e3f38c0f2d3f58cb2c34c0048f7bede9db0f31ffb07f6174f05ca58b148d940ca876598d03f59dd56f0c622eae687721d44461347fb8e293069be68f1c21bd0c1a39e173e9877195fbf3ec0a8e2a30721eb45f1a74455dc22fbf92d815e7953eeffcb689be241f91fb189040c9f9413b762becdc81d0108a82123ed85442f5be68e3c40d3d2b266c19024eafd5ecff468af10af19de554bb5a16f53eb31ebecd06c34dc887f6ede9a0795895cc2c2fad20733c3a18c39088607bd2f8808073c87ae5b5263516169ddafb99607539390d321a05cf6ef2bbb00b94cdbd3693ee83236b6c51660eb113b9955cfb4f36e8731518a0e3aaa38af301705a9eaeb1b5629df26028c41e45f7ded7e3e7b691b79fdf5cc8b1c7cebb76a6ddd3071e57db4d9b3e67e066fda2e4db4390403ecae54c29e7a54160da526a8fbd9792d6f3ab1456e224c9006b4381e1b39cad5421463968f7c46813dee2d21e41def24c1893e4d9fd95c6274197420d959e3179d8f90c1a60e93302a87470205223524cc9fd9be04b42cfc9be5c405afa01a69224b7faaca07efadb1912d41e6e4f7223963847f8e47dbe6cb78a34030a3cc920c8ebe72669071363f3e1bd9150e5560679decf4127d4d36c77fc1c4008073c2cc92bf8b8c3ab6d32058473f3a1946d7c0be7acc44d1291df48bcb65ec1934aa04774ec37cfefa7dc96ea894865cbe00a2c838a4e46cf6a4c64568945221cdc59c70bd19eea586d7017bfa5e314ff4a5f9c22269ff7da6bad33793b3bfd1b2df5ebfa00c5ea4a719ae5b3b82a9f04d15df89425a0012ae2c3b4263713bc34ed903f0c8418085ccc3b2b9fd3394d5f9ad5bf2740b29bbd116254136b57455abec81d24ad377428db7b4f35b2ee6d66368dff8c3bc418ba5b873c05f245ce7bf5b1bf396058fa0fb97fd20b00e8c797e31c0a6735852ff1cf3abc9fa21dfd8360075602d3f713726c8ddc84b69c374406662753815f24774e6c43e1e0b8d76d65413fd856fac6062c0c9f7f564a7905e337547ff9665fea6fbefa572814d7db9ed9da9122b3ae55b924e516f8d0de75d1a0e489591cff831fdff9c54d690e715d6a3bc512f3acf565bbfb2cf99d535463fbb8ce88626e3b916f412ad2f67a26c67733fa59c82e064dbfe1f4752c82a9baf7a043b234036283954a4ffea82a58b073662a5f2f07c1b54be90e2cf71b3f7942f877189bc1b1bcee35c700ad7c64d65a68264b7c1ba8c72198d9d406f627ddaa4aebb3445bb1e8143feaaf1a5b1fd8ccadd7222183ab1a75fd3f7802e2986504d6d2c33a1a3988fe219cfe5c380eb46391e6f0c8edb55eefbe97e41925b65393e77225d44a800b58f05a4dec90a5d28440a482366b6830afbc3c25e8c0f6ee0b6da5379f34fb9422efe06ef2743405dad6a6ebbf5d3f5fe2b8e6896d452b6734abaddddcedf048afc8e4d1c4152620418a1f9ab7944c86234c87a305836c77ec6345af18f6501a7973ea031c9e6c3439f078281e74ebd1a763e4076255f8bf5be1f3f810785e4ee16a19689575af75819e2225235a4fb5216376b525bff4d5f5d22da73c84d96f3ba0b2d625138fbf066e09e20cfaad4f8b255c0cf11a80de8bffac6ffe6c281f7104304e1eff9c5fcc6c61877f0eddef56aee4260def97fed9219c926b1f988f4405446bf9d986e8b660fb4dd6cb31a13c676f22d649ab65cbee455a70a119feb01284e693334390a3342820d370de0bcc67bfade2f558289b914d8b752f0e33cfcbd823aa6450c028e35c6a77d4d6cd554ddd440692c000a78e288df9366f00761d1b59fcfeb5929a0c1b7caa952797a39f2ffc910983f55825d86246e565ea32576eadc02a93579d023eb52aea555bbf9832871046a7646cc5d8b2a3e07105bc89c56192157f498d620d27a0a35008c540748070005dadfefbc9110b2dd4b6362d9d0b3dfb40d60bf825261ca7dca8f6b2f2b70af279b3d2d1c03ccb6ce29be93707922b2e74aeb5deadcb3570f0fea31b52a14cea743265b934362bf5f067edc4a5c3403ceed7f0a36bb590b003a590b33b09572843572d43a23d46d7cb24ec9f8d9a549326fcfa0cdfadc27868e128b74e0462cebb992ef143ba256b080b2741055fa8d0c30307075303fc50fd20d749c81972618d80bf24c406a07614937471c0c18fd8f27ae1100b9604dfbb53a5c0d25028efbde683c9fd91e342831b458c47c1dddc08d937795f236e1418c3b6013a2ff13792c6aa5338586a36e40b23b75d456fe12c38fe99c3a4cefbfff68f25c126ebac31f46bdb2bca7196f608beb74a2abd28fcc4d27922dec93541b4c7ca57132965b9dfbd8c1d8f8164fc6470a72b8adf294001496ddb730230efd6979ab74bc87bf221951290d587dfabb4cbf99fd722fd2993c4c8aaa301c72fb227ca9a2d7453d907de42b5c0c7721255777a25be6d134959eb48c9db07aca9d9bcd9633216a98f8a6da697ae8d3bd62dfd8ccff57352b3fdea2cd015b76480dfd7b91c3779e5335ddec8308d7099d3f520f3c09c8029d26d5304b9a948c01f2d88fb04d3f53b93598e974d8dd17e672ff53db9f29f251f99a42b6caee9606e7aaad5aad6c7795ddfb35bd16532201279750722dd10a71fc8692f323b0e0ee6fede5d85bae5472e723670ba93ea84ed87d4c7057e18866621f4e320803739b7ada4f44504941d876d423c09be01a8f3698ac1b9deb73329fc4dcdddd29b03b8228d5c6747668dd5ca9fd3ae716ff7b948bdc2908fed64cf2751e0ba5d0f24d5212be29cea30fab388f6082ddedd080928e060d3fa6a35970f314a582c815a036b3b6bea2c8bee6fe37e96145b1ffee845dd1fce3b35984fbf878af8090fcb79f39b2c1adfaf4ec9062bcb926baba79c52d49f11072c14f89ff72e853fbbfd2cee42009ffca19b932ddc0a31f395be6831bc01d6ac22d21fb6aebdbb22bfbb38d95ed64fad246a77f46e85a4bd754e4af8fb53481cae222a33a21dc7dfc1db7fab6895371661b62d7b4a062de55f91ff5554174bc1d2c69af83a0a7fb00ac6431f4e26d6fdd4d68b399c1e6d1cb6390b60e067e1bb391fcdbc5c77e9b07f8a52b3984bcd5ceb794592c89e58a9c2c707ed96c8bb73355d5e381f406dd550e65c0cf13ef8518dda822478ceb996e193b5364f3dbc4c3dbdb18c5131f97b00fb2fb33925bb92e5931747a5d43f3b36f4b5dbc17a4aade02befe101fc2094410f9fde1c231494f33b1119330dd25f64d199153ae3b4708ffd3bcf96e574ec83877eea10b0e4a3b70882e1f55c3646cb42953101a36379d47176b00f6890913871a02d71b494aa3e02b23d56b870ef525610f470b6a5f472bf9450b7845285db52d2b50ad46829f8becf363b60482f0362caba49a128d98e17321187eef138943e26300f5a9828a813218d6b020ec654a698a7f70f9d56df33feaca2bb376b67673b33ed66e0d3b2de273fcdb60b05c4e2cdeb705895eb1fcb5d635504c891a52a6d25a311d0e57da3f4aafc21bd9981b789482b3b423299bd2b519af44fddd0a0fde6e77b5a5e9078af10c947e20d9e197a424db5f58bd81734133758f1ee0b238571fea9119d3a261d50617ba4edcfb226e8cd0803086a28d2698b0be8605463ac588680a1527ec018f18383f22ec9d9b5506e2c79818f36e9d577eaf24dce3358bb36ce5a041fd99dc74125aca35d826a1c8c17dcf36cd1eb78973c499675567def66a6b62ba8ff7cc754812c3ddc10313bbd31d27b5cbfc3a76dd6809fb3ec637a1b348b2a3733343a4fbdee17b72ee7d50430d1b796c2056cab7434fda43582eff7b6b0a73fa60258cc2f276e47f1f1821a4dec55e9d633e529a1d65c533398466cdc8304b3b9b54b85cc9327f31f217000c27435f031d465f1e7e3001ab59174d4e88930acc5c07d56c8254a12f980c4b93d8314f39efe06753acfd2133933bc375f13fadfb94d8ffdf8d7550bd4ab239d728db358db3559fb005af82297074e1c144bd39e8d4c0e831c4ef91a51bd1964ae0668d99e6bfac083f248c8183d232d5b5c7a22d9ed6fee2a9c1629099ab2ba8314f4968bc889be34a60e3d671b0cd0bce173b8f0de78f6c569fbb4a0d96893e5cd45105b716b294091ac6382f328c92a2f197e968d9a2b15295613d3a31eda918f53d9836d4ec1cd9c13bee8745eb3d1a6840233690fea022bf55ad719ce4978cf8e37ed3fd8f6091a12d75fac6992261d9fffa61dbfa73bd3a6440981d6a7bae9373a56a5725c5d6f637077471385fc66b904750a16e12e76cb9d073fbd8c85e5f9acc2e611c9df18c2b62cd9e8b8eeb0646c0c131d19632e00e6fe23b7587001df06d557884b933a5f32743a9a855490f2f45843e2c0c1d35be2add7f1c96d0e81b5309e23753153836335ec215837849a0bfa7c2f4a6190801fc3f40761b0e4ab3c134451fd43303d197ad4e876288193520ea7a430de169936d64b87984949704b808f58f7bfd630309b853efe16810af1cf919e6fde48d0477b89f148ef54e51f9b7ea2ecf4b90b190088fc0beb7a9e8b5781de3a949a537e7f33cd4c5dfaa32b87f32bc4caf384293964e527bddb9172227129a1713168918ae443ee825595a525979a694df4fbbb8e99780f9b33836296c5523b6a0d424d82463831d284b10cd89a40c207995363db770508b03f23c77a3217cda961e603188a382bb321e82f0475bb354715c239541e22a3043d2b92a4678b13ba6c12b893b9c6055388516a24490fe3b0c781b426c1b91b193545a539a00305231e9ed766aa6069354e8d8443a840180dbe4d87e6d39c3c53722d862449c981d6a2b0d614b89b08048ba4ea1427b531df80d6108a255298c11adc693597e389c0e8887a0badb136e6ae7ca3c48d404001f05fee958b8d56054197487de0eb839a0277f5fa5759013c9922e2e225cd42c5c96e00bf2be2e6417f592ae2b6c59ff348d4c884e445e47658f71164a2b4c228b7cb32c679281b9598c8e69d2423b7944ddc611963229b3069c1e0122cb8c68e1090460238ae9d51bcaab836e1a1bc730cf7e8d9351b77d036b4c58731ebaa7e955c5e4f33f4467f34acf0d44a5f4c6b38fad2c30b51967957e14a490170c13f11f4159b86f0554a87950f0b3480643fed1ef2f0b3e81508cbd19cd4a08c3ac39ce87d42f2458e26eca56b2a51c21f9810b29a2957e2402e5b9c9d7b97c58c740504eda1e5682f87f8d66654f0aff02211e11e0d84d5daca552009b111785482fe5813ab97392b12985cf11dbe813d8ba3f39bade0b5000e4ca2201dc03e9c3d3eff62acef63f09b77f6bf6edb8a6c5e0628e306fd9f28cdbf286f362f11eea2eea448cdff94ca9beeca5b2ad1e36a41b0cdf87d03c9d8642a1afcadbdea88c8e6f93dd358d598b7b2b972d52c44789d5b04e9e210a732b4e91c3c0bb295690a64d4e91a5b968bd603be1eef79d211c4302e7bf406d8a92cca61b551ecf72ee88f8f80710daefe779149800539351d18e40f64a77933b5787c15fdc7fc878a327132bb448a0e7fdfc1a9777ca37ebbb42402b25850aa9f146c48bc4489cedb031f81be1a0a3a803639e0544b46e6d575326b450d686055ae8c4f19ac213a346847df3fe811088d91d2d1f1a6c11bce2b39d54da3f407bd6fd6678adfa77b4b2595710f1ba20b66e677571a4c3d226e54df7250ad6ca21fc3bbf94d69be97c5dc62ba6628b78cd8516be6ce7c39a5ff3ead8305f12cd33eef993914a87edf9a3f01aa4374f85c7fc759c8de8253bc090c9847e86059e98ed1adc733a404a6275baa1c1437d3f0e7a36ce75a66bf160fd62349087730fa9070c86ea45be916b73dc734d27347f9c038b6e697a5be62da00be50d87d3fe5addb4e0b89442829d45e70e4ccce27d5967742b7a296e283fe730f639345e0d46cf0613cdd45a9243bbeeb3ee66995b3001ef753444a58304758fa181b1db7cd2793b7aab0281d0a955253196ec164249162b7dd8e4cccbdc4a23db8d833ae42054045d82c38f34ea588d69e1879e6b5bd932c42c4837cba7fbed9f782c37fe73d75811283504188df545f07c5ee1c4a7adbe118ab9983615c5039de1e1df06bdda6692c45a006b03842344915e3770eb6c52b609271bb75b7f34cfe3dc3d8f3e31c55885e2d22b029e6ebc9a7d506138b3cbcbd2a9eecc4536d1615eed8e13318c39e6e1716670295914098bde5295b626d20dbdc38c9486b323102c4630d28341c403aab6043d2d896819b8d6b67c3c34d80fb5593f6e83a92571de768603d60b4ad67aa47e7e44926b36a0a792eb9d86684d5a9c4a2f897cad3f0d41bcb9fec133c437a6b87e6319599a9b2efb72e0ada91e5faac68046370330b0323b8288773dfee813cbc74e60b7a12b07afac6ee7a759ab8d6a490eb5965f8bfc561e0c6944f2c646f05a55e248bfbafc157195d9b053353241c4fcc492025ea4239385ed3da293b4ceeb9d880eb57d76f9ff5e8ccfdb639dc7610794296320b2262da2f2dd0e545d307b293ebc1929517cb3cebcd75a1069740a652ba85a15eeb79bbbbee26d12ff47f5b642d17b4084640ceb3b625cfd612ee6103d314c758bd5abd3bf5dd956e2241610e51d5584c043f2f83390a9a2a7fc5cb892733ec76ee2872fdf0ca0d186b382780f99c00a79fbeddaf06039e81d4cad94319edd539529ed69ebe8b020ac58b3afbd3797692240f2d0a9166baf1581a0b893e24d024d5928b648164d2add95a9b7e3546fa53d043b7ee556cde66835082071533224ed9bb66e0d64ea562957b01ad51425542372946e34bb49f17aaa8442523bc1dd468c794da1d3dc5fae3b3101d6b37de03889884d61490d49303a9b336c2cf97f2615be76de327435d38507cf613a5654ec0dc828460414d9b50653ffa069d3aa8d122cbe8a9bb408b8eb9b63b12b83c2e631704388547996f0fa34aaa420f56bcefd9d65c65ceead6f74f518a8ceda1c9229e76b9b3a8a71d04fa580c1ec80818f0aa2f05dec3f8f4fb79e25c1c7147180c85184b17d64d90d8da31f9f512a6a8599926ff3377c78c0983ad48660aaf21f7e1c092d20e94e383ea916fcb5b3423abda55782f5229e2c873fbb3e07b64e12eed65a02771231c08b68973e5461f4a0e0b99037405468011d93186e3b2ae01fb1bd9e5aa49fc2cd1960b0ee8934e81b0b94a60c423cc1060dee814c268ee044e86f331e0a361787d3f9d265c5a26068606eeb13310a36128cd3fc786b34b21d5d644e506a559e82b8818349f17e093943204aea4b17ef58327db5d4dbcad7968af2fc26d538627fd9a2fb5bf9e863f4ef9dbcc034d21bd09a0cddfe816fe72d7e7ecab50f541a5a48f370d6fff9e15509d73a823c863dc7f00b081f3c2ea7e411a71c1d19fab6236e23511a3cb34ea847492ced76389ae3913b6e562331315d02ee96f4c10b38c5c49b46315615815179fac8c20a373323a102711bd3c0e0d34325bd5cf014081ed3dfe996b44da215aaf290a6af9685cdafc5433ea94324f99216137bc4df98d3eab268a4447a90f7e5d060faabf2674269af0e68136e12fb4853ecb1f73852d84f5264d1713aa0eee4c445e583f441e6b7ea9823d2c6dc87fdbf78e5c6eb231be8f776cff80b9bde28da52de6550d714a4fef9fbafc3f80b0082dbc3381e6bfda8dcae0d2a9ddaddd58d5dcbc3ed5f83fb42615d6665cd2366ccea0ab435af158e220c89196ea543d7620b17da28e74c7e386a690a69a94758243c9e6a27ed079927c6b94d433aaca5f22fca561f6d296d5d4eb8bca02012ac6f38e5d7d8ea2489d7fd33d2165533a9bbe36fc5c855bf584e9647a3a1a0862d9fd6bfd4dd66c5f9d8448c55e33dc771694ead12ec23153bf414a5800addefa878834fe0fa971cb1b927f615a79b9754edd8241b8f856b6f0a78ec8261799fa506ae7fe3db58ca1948dac5ed9c43357137a32414add95f412c2118c90718150fa823f0d1ccb8919e094731856b587b89d87b2d9b88a9f9cdad49f4e78181e39754a49e8fa8f64d3a359df0b27f84d68d2dca348a2d6ae2b6b849c947acba51e66a3d2754a73a323eeae3c849f4d8ffe236a06c74a30e31c3e13fd504d9d6e3da7eb36d45761e7d213797e5793455a7aeb15942f20688c29f6eb934e43b98c5186bc7524644c5e4620034eeea76d348f054ce42e88f3ab083e122d4017ae8b3c20a8f5d5f84fb1eae1322378446a348d089af7fb18c2acd203e1b467562a4d3100fcf27c16a3f9f6b123b4434c9915d82ccf5798fc59397b2d35c295fd6c217b46b644c724ff2eb570f56b320b7d92f5f2c0f4d5ba447f877fca4d40d8057623bc1ef0e4def555a31d3be4bb1db1ddec38be262c4596f024f4db89b893b09775b27a0d416c82301d7a6dbbf81f7cb3b552200c01c30228e83faa706d29906f79adc694fe8b14bcf622cb3faed1e47669dc8ca39c914f82be9c7b1f08e320043b26f9ca10cd0774d5c8cf110c5ea794b99e29c72db5dca98c2235cbbbbce6db00e2452d1be60b91283a712d021d18855d4f225482a30be48cd95d3c74fa9420f662cee281ef78554170fda9cd5ccb0c36c757d0a9f7c4ce5dc0b978d7ae9e3f410548463db65391acc00eb50cf498f2e424974c3d327d61194e377fc999a5e3cb2f7abd52df477ceaba7f8f9211266bb92754794a5dcf53e62303cf35d36f2a25aeaea8ab1b3535469e6fd9db0ad5f1c182c0d8c2a58c27b50e8776f2a175c7a5aa58339c417f3a126fc620af50282f24bc5cb52530ea1e0e2e766fda304cf18d15daee09d8d87734f3cc1ff1bba8cc9a2b3c3eec40767258e6a8a47761b0b4a2bbc19f1aa3e553f07514d9dfed461ad738f37207bbf709622d55ca852f93141a557d680daa22ac7879d5311ad8ce58bd4a63b02511f6b25d27bd5f18ce537a7b2332c0e2c6c173ae5c6ae52274694da7d5ca5c33a16524d20f392bbabcd3de6530df26e0e0bc10626d5b926d97254e5eae394cebf2223c9199578c256e1df3489f2caa5bf763259c00b27137895e7cd92dbdcb1bc09fbc1b0b2f30983242a646b0520a3431b1b67caac5e52be9d790aba8fe6c6c8cfb5c9def919ef4384a4669410ad0d77f31144af5b9969ed8a1682219cbd277a67489a239c04124bdf4560cf116a131644fd16e36a52ea553f89159d70d6725cd50038524fc08ad002eb688286c240a03edd813bd1ec3f8fa7bb5a451e5de2dbb34e53dc0400dd3690b2301463b5a359471f14da7ed97a80ebaae6f1e8676d152b0c4a6a09b0d9d03c7756c5b5108bfbc59f958cda636ebc08fec40305b62d45e940b913e1e18e353e88272b2ec4cdff8dbef0f830a0645b21c751919861046da8128b9f0324579f622db88165c5b32712b0c86265d1cdd40431029e6ad17194da3e88f45916814b24bfb31b67cf7eebd5a70291a0e52c4fdf29579dac486a8258793036ad3b566138b6aae1a2f5ece5246ade276ad93d604d811ddb16be3efd37d447821bd87de00d0fb2a6aabe7ff3e5f20a2a69db4fbaf437b8f0044afa9971e5d82aa585df94922b57b9ec166db7987f77383de442d70eaecc7407728c64b96e50ceecfd4d1fc8ef56164a2f50670c39baddf92b35b6a72a5b4a19b383fd6989c812eb75019b7cd3504125e37e57a8fa468ed33d7b492a221e9763ed519b94395358b357079a07516dc73eb97d5f06b7abc4522accf8ff94e7ac7b1cb1f4f8b2917bebb798bcd6862ee01c11ad582e10da16301efd12686cdf61b9ae3d94ccfd4f08b9ad6a98120cc95b5f0340c1d27f53b30a37f33be0dac5774515babb20f0026f6d1b8ad9cb9e4b4bb53195b990218f0ab94c2e33a76fd50bd4515a5da4a229b33c0e3e3406f3dae0ae37f60995bcb7260b4d4d7ea110fd7b481ff355aaca2f4d6e1e4a05a2cd5eac6b246c7efa90c924397951715fa125172c81e0a79e12ebf4299a1335f25229a24b83caf1b927c583c3a36cd7076358f3633c5635fa3b66ea64a1b91f4db5971e2544dc5ea648d4243300b507c87cf792673477bfc3050325ec196ec96c5c3dcf03f0835f6a9f3c048ab7602f30331ad122ee684f28ae6265a2165e505838ae284c568c089216ec9b6dd7507d38c47905a9410e1e06e0b5fbd0afe75287456c31df127d975cf52380eed4a5c3ee46145dc7098aa91deeff5ca07f8842bbc9dea1948262e64b0fe4a1fd28d3526752b7a676f3eb4ca51e617d5f39dbf340a1114cf069530b1dfb133179e38ba7ad4b547c46694d9538c6148c6cd5ffd2eecfeeb9588f97d747d2274d9e86d83256f56ff4f30987051babcec05924800051c3d88b64973c6f8ba21945c479315ca0d93b84687b8015e1d98f3b692ae087f3f7c8e0a4427e8cb2ba05d31fd6ab08efe4d1416680ad443c7b6429f3a1e25b0552886ecb41648f138941c07ed43c1f74dd980e65540c84b7aa25a84c58a607ed1007b444cd3367f19fb2d9112d8d7f71e3bf60ebe164aa47f99a7ca47493b6b15fb48bdea8e98cb64da8ee345cf3ce229b087900339c13a0fc3c333a9469363afd71eab81c5dc78e3b8976ac4776cc000787436c7091e1e043a092c4da4340523249f733fc5dad6140de266fdc45873a99a722436836443b77b9adec7fbf4dcdf616295eb3f125caa3a2d1b6ac55966586a500c0ef81b325aa296678f015d6535e3bcf8e6a15959c761e0071888b9009148b9de291b0d1178252d33b9713be3ed8f17c60ccac6d8982caa1cf9b6ef89722df38d6da9b5d996e277b7e115b214559015d5ccb4bd96861c5cee7decfebfb8695131ebd9163ec973650d4a8d72c26bbe3b4fec4a5c9d42081357d5e9851523f33169c21f4626c5aac44ba27d560905dcc3a05a430e6a3f89ef7c3fd4b1215a0b2e41f9a5d8fc44ae809eb47fec2b79eada56737d5d1f6b069b87ce4266f308aa77aec9885d6d9acdfeb2a1c80eddf07dfa8897b8a5711ecb0d8592e89af9c134bbcb9e68dccceed6ce8e1b166c8587dc779626a49fe5a8d51dd0ea1ce7dd85271b706884f09044a4061ebfec75ef6a41aff49afa52108e9d18a0e75e910b118ba04af8d19e667e136b6d40a198e72d5481345040f27a1545d3dc419fbba6f7f241b5855059212b1ce51aeab556fd1bb05c5ed9f6a4eaae85e2fe6a56b058f83bd04c37b36accf696f29014901d43ccc095d7204a3e683fd287f9960ffa4324acdd23955c1a03befbfb6e5551dbafedaa718d5449c5957f47f5c81f560b87f5ce3561e6ddb693997295170ac63928b17c8d334771faba629d44cff2ae00e7064228ef5e8f058ced711d5eea3b6ca9b7b4779b90a2f648f4de8ccd576c86a6bd5b8836561b1b42fe7aa0e54529644850e68e0d7eb8335a99f9db1dc3b09fe6bf901ec2b49fcefd1da4dbe42e4decdc4d3f174d78872525f23aa748fe1164f9be28da96a45a3cfcbe84ceb91e8ae25de5e82a3cca5e692ea1d30e67f059df54e8e6964074c51bf42822a310dc52d1f3a6de9093f4941cb5a98ef4ee3a2d7bdacf4b9e7ddc42358150920c526fc3dd7ff897c11ffd2fa7e0213e26c57011091d184902309156d54ba59b7f4207819d5fb9e8eec2db48569998ec80dd246d7c0073eb173948c922797b5f1610c6f8ea2bf27bdb342afd1e81ce0c44bedf44fa659d07c11a50edd1b46a1f518b4f77f4fea95d34893e54e18ca201a00094ce63c7ccd7d6b2b1f675c47badeeb11699124186f46b34e1c44f51e1cdb93d691ae2e413a4fdb073a1baf16c4f3b1c2e669361ef4133c04176fd846f82ac82cf98f5fc28179275a747cdf56b22bfcdd3ce3a0188d1b95c9f3a4edac677ab4bfbd470792cc3202f29901cb25d73c9c7a01982ffd23ba077df030d5190015ce2732a61f0f180abe6b151a715693017f5c700cff1c09e0c5fed87e79a2ff106b03b3e4dd42021cee633412aadf276b0e6d790dff304427236393fb924d739c386138ec9c72451d9127a0f2035d847c724a7ad82a9ebc425f17bbcc9bcfee95d19e1c8c54f8c6a6bb29e92bac0476027fdcf1da3129c62fa044e4f92b991fa7fda2764e3b4b14c58feb2f0fc64546e95dfe31f2600df9bbf4e76192bbea340024f562b946199b326dc1d592b24aae106f6e7906ca74b80587cc933cd6e84eaab276d4b771e8b7b4aaff2d1709539e21f520f27968168f91f1bb12d8f57d14a0d62c6fe1d2e2035b65bf10df378bfae592d5ff9f43495db5c26d8b2e29fe8753f25752411d67388f9facc90fd82623b6bdffec916f75d563257c01a2e458156f2a70de2e31c08a52c5e2588a987b1571d6a82e0f52954ee2eec43d802af61a04afcd72bb3b0195ec2b3f290005266b1d2f94358e10ba32048de196d3d1dc235c15ed3f3a67313729d8fb6fc2e1d7f8af3bb6a686f10c034304ed552736d693ff0a445ed052e32b4fb92f327d197e8240cf721714e3685760834d5dc5b38bc562d0a26a9b42a6ca8fa5997187d62d5e8a2af7b2b814310cb80d5e2e62df6f488b3759ff99f820fa866f8845f6a753b0593e007e181cc53cee560322c4b7305f3c254eaae7d96202fa3b34e48dc0087ebf96758fa8c3f50cf6dddcfede783c178030c2d3e3e329f5b719aabe83107f076b1d25ec05685fd416c553e8b86f2d27e913e2c3d02243d495398f927794fa1c223871cde8e94bde6e698994c01c358f471905e11529e925e6833e41d28719e0eff4fb116754dad0f612e2b8766adc884351170b2120adaa1c304e2958dab9e110dc648f16fc7ef1c737a4a7779d1fcee89f8b6d01db7dee009c4cb6e8fa914074cd3cf8c1c4595d388cc994e3f80b18d36e04255d9c55482d1d7485ce3b761aad34801226ff8ceb1d50f36301bd91a70a4c26acfcec327b948c877e4a9c582c196bfb6a458c35f764e98b2b8765a9231dd024b487f506d0523e59af8ad752c303a7631723a7397a73727993e3410b5c53ccaabfbee4ddc6eba746cfcacb768acd87d558b73bbe875420d6b251b330057f2ca6afcb7c86f5142ed2d2ab4143a8d6620a665ac63c8b77edd5d95fe9811be713e3ebc29928328efcc4e40a7d953de92ab7fe479db5af55b5253198c5a86dd7bb2bc029f60e358b5844265d0f7e4876c9c4a03b99b891b2cf2fc6bd00a296f4a062e24fd5cb4306e9794043eedb22c7f1c4f5a03aaea7f89342d0b61b3d7d7a95c4b4b6e01248c10493c91c3b113f62c4dc5c26af2869ec7ab7350ca17a2698077341c89ac4bb29443520c48b42f7ef2a1b66b08a15d2e164d650d78b4a8272a90ecee364d62f48fe70301ae54902da8525a15a47c4da25514299b79a060fee9f75c76d22bb152ccf988995e87a77e374fc1020b3febfe702bb7938530c8cd6afbf1f39ed66899d7408cd239b8d752179b85ca434252ac5057d3d2f0502a2cee04a762fdb3f5d4fff6af60c577056deeddd4709591bf43f988f6f9be83e7e640ebee46b6e60bdd5f3a4e4253a89b6edd35fbcccf6c5d3251a492391e94b42d4b24dba6e72f053f9bbfdbe6e368d3412ccf3efcc94d94e73a324b9223026a8108484fc7992f95c148f628da0ddcbd1bf90024bd7c82b94b90abc41a13ea9aeda656c7de6f8d308b517d8740365149158f40e973b64dce4889698378534beb1bd0d76ac51fc824230890d07b9a7156ffb26ae5336a5ee990441398f40a5b4c40d542f607e0d4cdff39356de2ccb485ddffe901c92e2d48f11d5691491cf3cd06db7b968e777affc1610d0fee54f499b62a056b81d8954e29659c372b014c8523f219fb0216c76dad1b3d8072505922f7bd04ee5cea1342e366b63fa00eab9cb5374b95dba0d35dc3ba634b63535e11dce21a6ce1bc117d4673ea459a04c2e809a69f739427ed58aea7e944b7d93249f2ef850c0d0ea87b826c34104c7333daafdd0c6b5c7e79cfbb1fda7c188d6ed6a8e39082df0d1283ddac1b0df8e5e57cc8c3c13799ba2d4b3d98d249502ecc18a9787b3d499d154f9d146683eb08e2ffb273285519ce0cd59a9b54a78d81b242da6fff544f1a30562a509d2866be5ce56da9b3b2a5fc3ecb9eadb797b8222f36db6526b3c0156d9431df8a78feb800b140ff35b8583f88fd2588bfd0d6357e9f2d186104a44efff62a41e926fb061df756bf1685bf51aef681da3a9664d66d46fab0ba1d1a202292fb81bdc335dfa32f5c5d294d5f10ae9af7acd503aee90994d71ab87e4a80525787febb070acd73b715c280796a6677476ecbcb0eb32d8c1b81cab13b378f644f6faa68056553bfd878ca9f43dc332dc9a0a996584e19ee86e2f19db9c665a074b1ab3fb20e753a752f64d83b710fb79187cf337bc5c45e1f453990802bad4a0d00886c4de1eae59a90e4b005f4121f8627f16f23ceb2b3877623777a9227d6da1dd42ed7db72753adb24f1d4e2c7fe2f9b47e7dd16d514037e42c99c5abdcc0dbaaa1e54761bf8c2cd4cff0c2eef2604df95367286d77e5460bbbfe67d4254bfdd7825145f0cd33f081eb6d8482a36ffb7f09ef7461da47bd363eecec30b4ea2c453e2960f10fc95374069d2fce3a213cdb6e4b19609f09903527b5927fc6a32586dad6efb75743e60dc053c85ed70f346ce3665adf7ecfda8069edf1fa683b0c6da9243e047ddeeec7309f039e9faca2d2e5e0d939f6777c3f11415cdf3d9a17d3ad4a4ebdd7555f5fcbd0ff43e2108e9c082946aea2a8cffc8e1c64c9e3b578283fc09c56bc70485bc2d31bf532e76b4ff443f5590e18c4211fa5325e186ae0ac4e0b3d7721f9fb9b32eb968f330a01054c80e05d6d727f0dcd0eebf48009e1eb9a547ba1cdcd2bec26012dd0e5d778b5a9c510d7b521d78af13de7196343cd51759afdfb4b7620358aac90a59add161d487cd97f415b47fbe26ce5a950b37af9cedd655b0d06e6c6afd57f4b50d710f1ad46d8ff8e42f08ec4ee661c0e0535f02bba2355a8964710a24826052425b5dd128cb77ebba045fbff45f55d39fdea1063ea78517e8c189d6db82d285b6ac1afcc59ed12a0c1712b96a252d1eb445b94352661b88421bdf4fbc3d2e4b7860bf376814705f43fd823cda6b7617842d07018ea26ba51a8a688609bec9058185571a349b3e9149ef669cbb70ae808b0deb452ccde138fa2e47a10ef6ecac253d6efa63ed4d234531a3877dafbda1e223b8b2950ad08dd48dc07ce616563bd35b82993253b6f7a02bb969480d2f8026b336a8de74390a3c89ffe1624c4c14ff1ebfd55ce78e41d79d7fd1bcd3a49ceea84c4e5e9790c62b9fd739ce641f85881a072c062d330acf7bfcbd8b50c47469e520117b640ac0ad3128b20696dbca0d50ce5b3b3b9bd431ac71c3de3fd0202517c3802dbc69623290d8df7f24c3e0d1b245ed93f31527113c14ce7a5d87bb5f087c2648eb7d034fe6fda284b4317adda3d0674cedd03537ff812f79ccb84d99470b3a2f3f50d0bb34b72e0a18f8fb814cd952e6d078ee4954b76a14c8bde07f95c746b3c9f43bb744e607a218376f43b115f4e8f3d752e9c85f140ea15122f02f40962d50702cf24f02a9e2b114da9d5e2c4af74a93cac41f8a6d750dca9c2fb91388662092e71b0e24c3061844742e7cc5dd120ebaa39c8e31380a177417440a2742683c7239a46dd762572c70e44a9899186ab2ad8910f31af5ca90d9f7d3bb8a8916265bb6bd14c32534f5292512c214757be6eb0164c1a641d5e816f069642ae061189af7e79ac52d0cbcbc5c0f2eda9d321bc9a3f4047217af073ae32c4fadf7ecb2cbd444976f32d136a7bbdf1e25eb7fa24096857406b1c825a4044e4115f42d81ca08c60b7fac9b179a6202cbf83acc7176e5d4278e169aa3107509246cc4effd5573e404fd535273987915e7da632be42fa24e26480372dbaf6411e22ff61e5c055f5bcdd85f05d53c66c7ddd567d486e60220a91a1dc38c5f4bc7b3f587a5c377aca4943dca149d50318410d85c6e086d5e21cb9d93786077b41878bc8814ac60220944de731b45cd398a94e2f1a5da238a0d8df33c45d90ddd2d13dee408236b2c70a71634d8352ca947a7c0d037a27dbbeb295c4ac165dc4ed221e2aed18d95e59bf6d6f955b92bb13daa5a2fbd98e46fe9d9d7083bd75e2b8a0a64c3fbbc12a2ec67746e2d1a4a42d64f328070cf3e43012587d4f93d04f64dc221f9dfb179ce583be37eebcf60bca752c427f0b59797a851f62c2ab7294c48e1aa906563f724762324b38c1a45a778cfba59c057d2e830b64414cb3d023cd92426f2cd802cf1deac10346db350f84612ee4d5e87514605f948de341b670d1edf1b61bf6152821c9d6bd8d47b192a5fd788517b4c42b31d1746f21fb643d0e00597e3bee246087efc54d0fdb60b09c94c4b5ae7790803f681b7e87852e5833550312de03f11b99e45b0549b091e14602303432c1ada8995c603ef8831b3c154213c00c2e0dbf137033e944bc79059d75f2c75423c65d9b7ce6d185c5766a49dbaacec7ed6a8550dc9ac6053abcec674c68182e50f79a3b3bb67821c12fb5af97d73c0988ecde8e603761633abb1a256a10ec347a012886166ffba9f567bde333d8ac5c2e6b1292ff49c8be73ab4d0999810102a9de631bf372977d34ce26af67211fa451ae80e1e47ab1492dfbdf6a372ae231fa7ed239f62c4d97cd3b863d84b4d38b57a41d671428276ec88bb728c16230f482ab8fc398f7fce1095085fec0c6fafaed51781a2166f16433f5032f25f5e84d432fc294467eb689aefbb81322f84930d42795e97648d3781b8b9623b13907dacd9d45cb5ad24f0f1f1eea5eaf251fc8cc0553828b5e8d6a2a0ac211dcd6e277d73a925cfd5216c649b6cdd56b393819292a892884faa2f0e46e4cd869003e336a31a241600e9bea2759ef402f46aecf195568a9e8c1d989f0de0c1ad858f3045725ed1203e8d5cdf4edfbfc8667a4b60c64a6d1977edea06284117293f7590768554da96426d527f19253a15b532cdbeb25db4fda3c5e72d0d7ecfd09d789b863c5daa8f8c9791d0acdbb7ac53dee3f3fbb4e4340dadac52c9ad32ba2e4dd43fe2184dca7443c391fbe15f14c2367405ba1de994f144c450315314769eb76c2f99e1cf8d945ee7d281c713bfa52ea8ed695ed2197d910efe45a92443a75908877463ab8fd5b3b8aab36b8539f9d0081713c7beb90f899d14713a20ae68c608cc28c455f750796d546c1424177e510c5e3769a7448985a8e40700c9082f439406b95e3c64554bea99b6d33eb6ff1af15d78d4a8467fc297025f2f6bea32b8090d65793921b105e8234d91ca370ba1fde1bbe7c0954bb1b64a0077c4fcb253f9cad495e6949241fdddf4268883253013734f68fc62fb95f9cd3b9428f5ca9f8011efa646b91fa50582f30ff7a196514d9d4afdfd6922ddf2472a9e2e58a947a1f758226a30792118c9827d9c0b3a2156c4f137cfbf2158f9dffa2fd745c3338e16bc83b520fb96bf97b21d516fda58d86eae51b32f57b9404984669dd4d6cc5cb94f186da0049043a81884bb56e00393bcc5abd78032fc8427a8f266f6ab5653959d1d00f315de6395ac11fc04bc630c439fdcc879335bb0e3ad368619c89b62e68245eb4ee0831510f1c35557139033a131f1d372e29a0c9b8298d7687ffc86d33b5e8d4757fe47a5f6e31adc8831817d6991152ffe48b0dc9148fcc09e3ee211f1abd1d47a648172aa7656874083b5b76c1406e09bd4ce3f8c8dc711a92716eef30c4f3c84550137371402aeacc489a7a4a7c1847d063e45cb8b35364bc4559fabc8246e0094a8590aaebfa33b45308e37d9c3a45dac8357388f5c909ae2b41b75dde61e77bcf5a7794dbde8c7fe9ed2a879b3a1263455162f9beb58021e7bebaef70698ea3c7dadcfc061655c2437befabb4f092bbc6a49b497a00f0217f179e273a71b6e11f2a348a4cc7670c5ac22bffcda8ec07d14b5f1a27d5cee1e2d3a3998f911c301d79a879e0d5d6f820d6ebc7568bdcb3fb68375c09778ab4501999b42561eebf91b1d1beafdfea1802e44b876e591360870448404ad945dddc740b57d59db02a2feac7e3337036874af270a330658bbd94044dde244e48b9cbd1a577cdc49b1c955ddb9915d0313404cf62ba1c343236d65422e61ad4c14133d9237ed3422b91a449fa1e01abf4ec01d1ac81bb7d15934144948e02ed0fa8454ee1ac80679ca84a47350c46932cf8c67e1a04a4fb783d1381d47086018248f2611429a1a417412822a153c67727727dfe0a0ee3d5aabb4f9502c8da93dd04a87f02aa178d7460f5b2c9fa1ad93bc408a8eb96ad05913e17e53bb4b5487ae97e6dd2ccfd11bacfc846857a29fb29fba17df2690e373db627d4d9294080c604e6850644fe8a26328f10db1ce236a2845530faa9905fb38936641c7c6300137d29f13404b5152f3df6a03130da49bc67c3eeaa96c1398db6d9a0b05730a7d77c868b4060bc485dd5d497e958446c6eaa6b96715e86b576dd5c4877e7cae778c39fe749d4f011af94c638b6e7b49b74ea921c74ec11b165d5770631c94a064189aad448d0230646b54269dbd5242cbbd95f999ad81687679c52ee968cac18817fc3a2f57eaaef31119bd61496e3f8c74bd47525e73c07e3f58cce25fcacafd5555bf7b70b4c4c2acc46b45d77e1c5ff63fabea916f2ee8ff39fa0aaff31d2da7cb450a504e9efb000528c09c918c35cef60dcf5b07eec94a8e2640903350136794be166c73879cc9b07bcb4e8120b32592fc3474373b07fb7a4129dbf15c9ddd14d08803e06437c969d32a6b19c1d7d42d63fd6725717b55f1563b10b6f31ceb48f5647ab2aa24dc7d1269b165c9194f3c1d8dae1d11d08b6ca8f9265d97eecebd0d197c467f709eaba92e4e6753995f86640713b518778d330b2d916d845e2bb3e5a57e50b4e9463730af46620e70066f0cbef07cf61e881841db5b4d4faa34e503d2565eb8e814f2ca708b3a1ab74fdf861a34f22dc1192c0464caf3bb3a135683f23483040e097b0d4fbff541261a9edd700d0f4572529df9804fe049541e6f37cad487e213b19d802ccdb2f6613c5d1915ceb58fab368ce5551c66f1666ccc8f4a7192166a6a610ee2ba0ca60d3e65f430e38a82c8c529b6a5bc22a7600ccd33f47e051fa71a157688d55f03115dedd478af2171122546f403ceaf640df66f84377447306df5b91459b520fc51bbc3cc1fa18c324a6694ff0d6d4c745e0156e774c28f4b106075491f37ba6e8e39e369ca2c43352afd482ed0cac6b7f57e4c7e340f52571e70f3ff1327ebe14c78414cc2f157bbe4eb0a57d332fa8df5ad196e20bd40aa81bb85639a8b7e426f8ab31a20834b5a8506d9dd644a1271aed2a42171437fd461822eefb06c8cd5744946a5bfd8a51514688a48502958ed577987750caf0ca0ba33646ed634aaea20a09ed5d79efc3bcb9825b9bb6a2edf32ed1067a50403717608686b7642c7754e8067f26542e7fd14dfc9a6ed803e1ffd56f75a84b630f8a7c6cded7089dae6a30ff86d6ee550c8b093422d38b9e44d4e23407fdda44aabe638aa0d8a9d39b85c598a8f432055c653912577dd0c1a585969f8a9469c4a017a68a1bbb6d0547c4925416e0846d65fc1935f571fc56bcddee3d0a6122b730e3d9280860f6d3e028963be9784088c0ee4efca48f5bf9dd446fd04aa1d73e002fdb9eabd81454428e722402387a95b4215779c7b68b1e6b51a283035372de1cf527ec5ba4534eca80f6d098f8eb08b777bf2a27764e632b00946905daf0d6621d01db7ce19a74bdb3b0f2b6f26e87e81c80cd32e4e251fe482a9eee37bb7a6ec4a558d4168cd12d22a01aafaacfff93868bb4f92e09910e6713c4b88b97585881810ac520c71e437e5b02e2e4a2cb7f556a9c407c05b9f36f6521482e3b03996f1c60957f341cafc95a66f7622895481daecadf11fce275003d15cc6db5e706f0539678d353255e3905f443a22a3600ceadc362b57f36cc2b06ed5ca7ee63047111298b82f73a0a0d081bd0eb57e946df77bb53ad60e0d1e8a629c2be196f01a8e8407a179b5fac598a25746d8c970fcb48c9ba27e7f0389858090ceb334489fa2bf518a7c9379d69e06b2deeb15fef3217cdd8d53ea872591aef6f3de4b22f55d479d0210aee5a2c7c8ad573bcd8f38c4ad78a91ec1da8c74001472e965eb3cdb08bde74c834aa060c4d7893934cefd7b76e5e90b80da6ea507fb0e4fb905f7c47fe1ee972180ed2003df60976a740053852030d13577a04c40c5da26abc7cbe0c41747bded6a60a04ee3b04d11fedb6fb559bff79e6f7b456d1a525b44613f78a63f4eb8af33a1032508eb0a2b0903f9ec879645ba76620cb6c917267a45865321f368a0262f51daa3b719ea57dfb9c6b6b5188809d4d86ea5d4e1695194d5047fcdf3aee39dadd681bbaa59f43e55d9c2fc0b2bc32f9e60307487a3b50552de62b6945d1f62654d09c6a97c892c379bc707e249e4e32968fb50abc38e0066de0786a9daca50aa1ea0c63ad3c030773ecd8b4682b7e184f09b36b9d1c0ebc7c71b31c1dbc743b3bb15d73869c6541b529f701d356ccbd3fa4068b952968c69f3cb4abdac3567fc7a3e85eae909e7fddfe8cb25da09529142fe6f5a923db34b1a18ed46ea64ca9b672a8af14c2efaaa36d732750b416f0d2e0a1c2e4efe6ad3598545d2a43382010f415449194ee443f07f2c7a104c1f5a6bb815985f408d40f7f7644d2f0e8d667f931fce02e385001144f30fd3136a731a943f83605a5c4fe7a2211e375885ba36a3b0fe580c79603bfc90c13b46f66e9a98da6989d984faf6188656d03263c823dae4827ced8ab810757764dc107ea3cc1833da212f8f7c3101b1980e7fe16da7a5f5e5dc07e75fb8b1a974e88eec8b9a761018e6e103fed8a3a91232c1e336ef7ca7e8004fc0653659aac48d57ddd818c20e93ee21957d0d9d7d53770ddc66696ccf27358550ce072bf2f22d48bdfc8041ede6e6498bb454f44249effc2b87ef6ede1f088f94b7c41152dfd4730f6d0da36bbc2aeeec770c2477d6069d3847783d8aa5f7277c4719f3c08a998e7aae32d7a3f1b25bd15b2df2eeba9767a69e68d8953d08785c288da9ff1ebd14eeec789e39c91f36f00165b58c5e30e40175c7d5638e4be6ed92e2d9098d71243022569f374482603087aaa908cc4efc360672c6037c93a605075774714e9dca5490d875b6b1ec79d6dea655f3cc7417ea8d77b31e530c304029b3ed88c67c6c1892107b177bd968bc2039037518457dca0b8f37e420f274cb33ca0a7d4d17bc1a79c9d2c7d29f63eff0f236b0e3676f16bec43a5fef3cb51eb8615ac35e17f7a9e2f758ec18a39d0640644ce17d4a81092335eb90bbedee8bf5c7785624a68e510b87e21250cf62166b279ad123af3264ae3eb730bea528fcdfe1b51b2b672174c6deb547dbeeba17275c72c604ab0121aa0774948aa969369b7e52c6c4aff92126340f0f76ed41dd9f5cc013dbd918f217a282e2fe6c7cefc7e625a903cd1cff7cbaaba192f36333f50b930f0c908df91e0ec1e0d57eee0185567df38c758134da13fb69ee9fadc7621b79ac3ff19bbd23380caf372525f30ff01d1f641be08aaa769dc9d7d50e74301e5619c7333ec9d36518167126b16de0d15764a99e16be0c20e521f605f397b815ec9d7bcf0f8f307b36c501d4b2cffff688a1858166672b4554cbbc7afedc5e4cf0f3fb63c0f14f84fa23e093ba20dff02fe620d6290e91467def674d5a684c4de1c07ef7bdc2a1f6e8d692c63b1a3d395d2a8a6dd0b2abef99ecb940b9385bde5cd3f72bfed664de9d9cce7b0397ff5faacf2cdead12339f42c7853b0dac2b330c97497b9621237af4d83c3916fd97b8912a363ab887fd7274dd3076eede4de305e60ae8d08a03f5435af2a65d9f5f1dc926c5d4764cc603b810e11aa682c86ee6acd84faaf264ce8ff220cca33765b9798ec2b52127cb594ed11f3491e7a54263b0d2f19e516840c5e32b7a9e96908255ad083a80cbab54614dc5a7ea6b751d169d0c135c529d97011c4975e4db1bf6688d252c633b69dcf6c60d22168c3eb5e22404c003c578e74a0ce62872da779b9c79ff559fce03e7c9ad8c40e52b7be6a331024ad2a3f5067813a96bf66857df0e9f706c18e02a81dbfa782127c55bf3fa38a84152edc109df00887fa46f7f4657156c807c15b3155ef77b1bd8f934d5e4b09c9c57897242ade85e19e1e77f1c6c8957d3ad9de4cd8eb4a67e9c31ee3c9c85dbe0e636c03e870500fd85d079377109c66675ea31c36df0754c4207ff565701bd2cfabcaac5c8623cea9ab8d68cecd9415acba144d04fcd426bba9137612dd717f1b28d95a6a2d87fac3db4d1d12a065b4d22d45f50e8b24d86009a7ef377a59ccac44835120766f203adedfb8d019bc193f4e4890fc292ce0e22cb34746bc5a0bcb30a27cf7e810f8a0bb96142d6602aa7659b5ee89087aa39c1add78d0dc53877eb5178fa67d2c2edcf5cb9184a106af049127fe49150b81d20d86d92efc012d2ab1e1dae4f59397072f73f88e676bf33ac5531654c540d74049b33a3ee59aeac8eb642d515e2b5822e3f4a4312cd0dabb8bb46dc0ee08fc9e5a9eecb5851ba4b86fdb9642165b66ecf83d5e2786f74fadbb49d10d3bbafb3131a1e2999219f9ad0815b3106160df31ae8fa04f42dfcb920bbe22c1b8aab53e1b451e99b9e3d0cdb9833505b6c55a03c95ca018407e2b4cf240fffc391d6fc69330d8a8e744330c668d3a904a2b534304c34e117a02c8d4cb77c1d4594c4f399a7869580fa2425e0683a36adacd079c88e8837fc67dd3e4bb174a5cbfb05f840e9a04426561b3cfc6e8b8700475bc0fb015ce44fc47d77dff3c3c2daa5f04370d08549423b81f57d0c0138faed237da0280a27a2fed6eba88b2ad7ca498be77cf4ecca9c4ca41745852adc2fcf22396a17f58224670851fe362d19b2df13c4ca7a4c929448cc7983eb0e2841cee0748e223be7e6db402ca51e0ed95486a594648f044d39bf7a372836f04f3582b63ae28119cd0e6798ef57712b16ef4a6c7a77373642960559b1a702c2d3499e4c07249aad10404fd0f55e80c466b5f35f81db823b448a73417e5b9ae1bdfbb29be0c3669d52df03f0383cc49b793921c2b8b8f20a20e92f8b38bfe81fd34149a64358b0020df1d1d00462bae71ab51e3f69e8b5c38176c0531ad1d9b49f76dd618482eeb868935b904278085bca20bcbff9bf79bcf9b3ac9cf080197cd18cda0e503c8fba837d3cd27a7302c5a951bdf01c6caf036ce0765b99b062aef67006413305b358e6cbfd35e7f498ae8e0fbeb784c267df9b4ba9e587d4e8a7d5d2f91b8dfce709a75adc218078fa4a50a69386eb78bb84748cd444cf33a1e9f6b618b009a7b2dd3543108daa9c626d0635eef99e2abb867029358318da5700a5960433552e120e64f557bf26c4ac021f02fd60721ccce3ff7717ce833af3fb55e23d34b61ea56f57966d253e6d9eccf28814f294e22dfce6c4db33ebc590a067d8ccfbdaeafd723b430b24cd727dbf21b14f3dfe616422c04f2250cdeff21f04336e188d083ce5b651ef516c227e7225a3da8ac4e66591e63717dc356ee33ab0874280ebcc2b775c7fdce047facb5b027a68ee557f5bdfb985f0c4a8fb907c14af39b6a32265c8438622c0c834690b1b757bdac4dda8b41b695a244d1bf716b2df7042df36397c8f5133eb222a08b4807855c7dd76a70e4ffd0b34459637cb1e7e932fbfa29651d9750d89274f172a1c916f3389200891e13ad3d52289830e4bab033f3887477ad6ede42402c5223685855f6cae6166e94f7d978335e1cff44e4199eeecb05a0b206bd10f9952d0d18a23831d040d06ff1c1d12ff9418bb801ae44f21a0f3fd26b50cb1793b51558d24d48ac0b063961485f3daecc19760398b3f3850cb947ae2a30d5b912a575d80b4511f0f2830511966c7b7d201ac510379cac980479d8e08e5403941b58787a1b9c5935730ae6932a7bfb6656457c3f6970a000305b7be789226d1a3c08508973b0b4a081b574956f5d2adc94b60bbc45fa55e9794c07b5e9b31b1dc94cd2fd74e035f8846ef9a322f772a7e0ad56b1a68f2825b17df13040855771e9ef6a58e19458d9afe12ed0ff8a9d7d313389b49a52e5084b26fdde90d84ce67d94f51733c475c274f0dbacc2b6bff74d26b5b2dac0931bc746e4b1636073543a19f848534d779495cb0f378a8dccf5a56ed4daf09254c50990884b95edaea94687c6603704f36da1788e89f40353bb332b6114706ded4fabff861bbae74e75233e8580ba460bb241670fcd2666bf1a7884170546ab40aa948d965d19b46082fc6239ec9a7cc28adc0fb1bf6e3d51b12ad9e40c3b3c0cf60c21c8796d169601f0227486f77c2ba36e6d73be9d3f8a8521c49ffa84f00f8c3ec162e0ee4df37f06c8dda599e557bd84ccff3bf0103a9441bfd6c86fc8b6d7a52d27a5c26355c04b48900e7322144bff1e9981e025e3fb72f3092ee2d9dd7bc80e66d7aa3b9d9a1d4f287cfb76371f255a63c7a3b327f7daf7ef7a3f1f3b2a529909ba4816fb329e7b66830fdca49ca5013f32ca28d0fe3ad172413c5864883a635ad1bf0bced2be4fe8dcba5d61a866e4e034b173d45f8bce59fcdfbb852b2537549eb43b5f8c8f8a656a61c25bbd13f9a81f054d1ebe0cc3cf4973ed830df42e5370c3df4e4e31c3eb84084359c7cc67fd7e81233355a14f22005488f7c70c713f75c07e35d08d177336299d310d8dca5925a2e9de220f977a5be577f03556c868d7602c03ef1cdc3793f01971595bbee245be8d6ea0fb71fc5443823034fb0b50e3074e6a6fd427dff7e614b91b9fc31c45d98db75c7d63a07fbe13e8085c7f823bcd350d6025b336dc5355afd4762be80ea8502945504fb5ce740da0677564dfb4d2220e1bdbe9073525aa5fc708c1462543e1647a6c4d9777a08004899f5f14aff966e45595fcf9aaa5764c00ce4d4955c5fbb8f3e2191c02a6d0e45c519dc9a2f15ff955e4383744aceb958aaf069f6099fd6d7f8cdc953c0efc81ecdb3f764a9949f1e8a1912714a03a2408ce28ba2b4331f7e12fa798d8209a9ebf0a10caea376a5319645d2514e6fe351c1b1b66e7b6dfcd8c3c5fe6a3c437c425ec3d8c0ba6fd76663290ecdb8506480b73d47c0d11a0106498de55a8acd4e8b3e997e927e7b61abf460d0be40170fb08f140307e973263dbaaf3c6852449bd2d073475c156f5646b0416f30821814f672564ed8cdfdf6f4dc68696345812194b4ef5aee1610aa66734f170f8c964492b5639f6bf8d506f6100c73aa26514bce2157b86cb7c7da6741f531cb18451a6e38d26cca5741fd4ca8ad3d7880f17eafaae7ba3b676c27c884ec376e1d5734884cdd3078aeff696a896a968488a4a405b99b62bd2b53a261ff5cb594852b9eb1a61d208debeb1cfde3938660925254e3fe2b2e88de6f7755306ee1e21088198d19b6c748c201216ebea9bcfd1f1cc10ba19b73a1ae50d77a5d732cfb4133344ccb43f1cf2bc57f8251a5306d5ac8623b36aafb914e318c6715afd58a7563e0981fed46af45d9bf96b0b33d1e39ab0973fb3abcee98e30587e29a4462df41ec5bbe6721340394f629b897842cb3b65b33b209c35beda93dad8f59ba9373d852e33a4ef85f7a1788f24a667b7ef13bf3d7965b0e8e02a78a948c567abdf6d1086142012d0c8dc788af3add0d0d5c885a842d8255e9eb6dc1b08c2d5c1ff710ec431f37241c4c21a023f4764dbdf4e4bb6c68d4e481893301b4e7b7ae782b7d7456f38ae0d9d18e6cdccde68fd7690ace4c3e475df92603bf4a447e51fa82ef70406467f5c6d6d6b8615bf786d09dcce48a630e255a54edb62d0a1bbbf4bedeaec2abd6de941a54f1d05f593e59fd86cf01e45b1da74280e82abc068b01ebf561b107107868d850368fb915bdbcec4435a6b8b9811394fa216dd3e98bdb38925d3fca4b5323b4ba557d7382fdf95f297605cbe7a886f28846c9b5e1074d12f297c8fa835791ace8172c2bfb016b663cff82ab373a8ab79a05b03eb41bd446951a8ef6372d0b4e3820e8a34de397467b820253fbfdd00680404779037a45c88368e8d5d5f937c5097a442c6af53cd00c2e12294ebcc2fea6a2d329e6c473b44a7a799a1302b1184ff5771e7c7cd4c905fadfdc3b27f0032ddfb7c99bf1a421de9c9f2ae36ecc0236978680568142b640bb485a227c98ace2221d1f55f92c168b5aea2cc87e30de8a7222b35875d91ae32f626864c0a2bea6961d31a5a3e5356f78c5f6b1c497fd56ced6b6a15e3f226ac07009f2f2803cb7dac628e4f0ae6b4301bb7d78650529e929db3f6c4e9e17aec975db032a84eb7791994e725de442c5b95904677987d37c6533b8fbe07ee2aba3ac855e5ca5567aef82d50a8895d19fa92174945502828105d8faa51f2028e05766b23766a250462e0d729d4b3875219a87cb246debe63c89ef0b0ecd748656eb8e06df12968b4cc14caa6afc1f706725002a512db561bbbb9628a59e7480fb79d9ed44d3d1c79724275aef84013d659401580b09e3235afec973f5fa98676b8048757a0640e20387508efaa5572f328952e5c80a2cc1e8cae85a15bf1324830959e01362ec1721eba02f55814349d886f2d4272183a00c8d5f4ceeda8d01a951be55c457234b7bd501957474b146a1d7f4cf35e88e24521a616d622f59adcd41c8b02ed5114f60ab854effeb82f47f1bc2facf49fcee846eef9948a309c0c45b3eaec810bf067feee9911d46e0f879acc852a8de0a5358a1fdb5c945c3d377c6cf06275f2563534ea6b500034e83c8e5ba13351badebf77b93c6b8c764973f4f2f9802f49ce283d888f8d2b2e302f7b6a076aaf74df174a247eedebee639658795681aff4538aa49f9c8639e700208d883d7505228396de2f68c5788eba7eb529eaed107ee8d50a1539610ae0bce729a6dd4b39ee32f518e5306f6545c17df788e253e60c438c1b3cd3e9cf8e6d6a2695707d97810031567f0131e073bba693a4a1271165e9535971ff4c0dfe92f7b3d15d3ebd9defa96ecaaea43233b41bd7da0a36fac7f7036aa1631de8b6186dac9ebd05f6c9a444b140143622fe0185f6b217ac15d29e4720a248a58f7352448b79f254e4efb0741580364ba645bc54022f5c487aa5d231e8d9ad6ba1323d96bca0f382a084624c2ebfbcffd97cebab154978d2ce2646b9b112fa6bd089678c0450372ed71ac2a22f3694aead19a37c26720f156349f7758ca7f1a1a8f75213463010f52cb685c3961160d39fe36641867be2ca6377627654800ade6bf19cd38b66297e506b8727224e088d1d5bc740a9751331500cda999278ee89ac18df30e1f1efb4a472123d3e05d41236137594a78ac115fcd75119906c91a352a2cf53b6fb19291294e44dfc9dddfcfc3d5bd72f08bbaeedf334a25eaaa9bed3b54cdf57e1c8b4a534423ee124fa59fa2afc37395f4ebff59b3f2411de1e62f71e6e27818b62868d2fccf271775c8953df52f8c2882c33f026555e5f8f4279ee3a8515d7a8a0a58f841438a904296c9dd303c8f1e19c122bcdb33a7b55f9fb94b319e111f19253ada8e419c4cb320d240474d01f6971d830ac3d329c2d15dc25d6cb9b500c52b53d1804e19c45288fd342722f60f8df5f94f4d7b75a85d12df3ae34faf96d547dfb7eddb29cb2183e17b234579dc2eab90acacff83d1ffafc7558101b209247079c0b8d12bb6ab2d87e48f5a7f390b756921ff43baf185f588d23bbc2314d293165b7a21f4a2bf4cba770db976817c812f111e2a9bb13775e4697a2bde3d0022b6bd8b6b33ed93d7b33f4aa3281a35fbcfad774b32cd0d8b43e2c067991de74638884588475ba759cc68a51cb5aa7a9d78ae858d6d36738ed7d9545af5e792c72e0699cd08aab43f78f21c0cac648e465ac46b0dc77873e0d25d42d40c63902468ace4b9e6882ebb09f1f414613c17000d883e8573afdbed6b41aa63a8d5fd0bc37d55dbc284191c70788b27eef66b36373d8a76e8886e11d6484bf31ad10fb993959a5262da5aea3184f1b625b81322c2715ebb5c568b239450381fe1ba241f689b01b0cdcaf60330894d562cb59caaadd1eeb137516e4969aa1cf06186027ad8f16e5bf9a7c62f65c3fbb84ca5714dec22eff82b8184c4bda0d7ef9c6a10e04abfeb9eefdf49ba7c960f03216908b8c834ebb0949c7aee0911f51e5807c953bbffa6d01675e142f8efe19e63b8e2d6ef1afd77d6bd4e1dee61b02ac5330160930719a751d582c6c04ea2474cd254e24f157e6c6c94c8fa74f9b0976cb139ba51707282111ba37a90cd6928cf2d7085b8abef062d0d2f15fa64c461716aed84fa386a230df69d1a404e2c62371dc5ac701de9b34cb5946ed3591c206db4864dee02fc48d26de6058abd72c1a27cfbc01f6c56199f9777db48690497c618ffdcb07cfc778b96ffb3d1af2ebc4ba9455ee988dbcda48a0284e0c4d99a39868bdc2eca74e71dd5044a33433b4106ebb64717124b508604e18855a91fb7c1d61e44b6f4cba7cd2d922519ce3a991bc89153e995d4fec99a5dc5f47179d2fb05fb3b3201d05dce4685b82f92b86e04b7ac11d312e729dedb54ab6fff8fe25eef6f892655a59ed272cb261a7bae419613bf5bbef202a0585cbdecf51564d6e3ba18856cd40a047ea25f57a5efd8be84d4425a82e87715230b05181116eee37bfe06de2d464f30d3786758155bc50361563f53c10cd21c95ec0732e5c5cccd6d50ff37895e7fcf3c495a40fef2462f48f59cc679562e0728600a4e355b4d8a94d8646002236edf13668eee4cbc17e253edaa609a812d5e69bd1050b240e5a80d5a85bca71ee70cb30cb6334f03655b43041b86254fb21722fc925cadf8c11e3577d0ff1f98b21631a830454e92383afe4d69da254f1863508a26ab66f28950b54eb0eabf581662a5d75dfd936be9b0c79fed8812cd30a5daa41dd1b9ac887aa90d4cf0a5ff9b6515f76737245de35a0e503b971223264e45f006f4ee6855dbe4700e597c23dddbc4c793b3cbe4764f14d54c8fc38564a247d22a3bf46812de21d15c755b35dc60d95107dec492514d00862ca696bea29f8988abcc3fc182eb05ab87e55c6d5b29d0fd5951e7d1a7e34d42b2c4de46bf52de245d364573afd682ff98cf9913c5c48e66584d5c5b4ed7b088ec9299ef74b1d04da4e12d76f4b4d810a38890c6a8a0afe1fd8e3bafa47512ae6902f32d87beeddcc2278154700bc1f228d4f68ad8d628bce00970fb9c4ba39a596ee7df39bd830be7e4bb0e49de12b96709e0fd1de808a658b98fc0071106f0eb5e9c6fa0d94951ed38285ff13d065c87545d22bdc03bc63eca3b65594ae0eff17ac8eff4c7190a3c3117649416940928574d3247b3446ff09005d3db30b3c2e5f23fd5d9018282ddd86fbd3229eaa46c7ae2fb1640f210262fc67359ef2b3de16a27c4a9e95f4167e44404404e5c10472deec6b1543a604670e0bef7e0494a90d0638e32295c541f071f937eb47f4ccaa116dee43041662357e21ae26c4eff35ed95feef683e859ba74da4c845edbbeb54e3f9679dc981ff755499ddb15a2510f28eebc61dd005416e8e91b73c3c4773ab78ad31fa390004c76d13d4081876a92af80f8477599a26321e6d91b8d9da1fbd2e33041b05dd3bdc2e1d0d05c0ba39b81b9b3643d7454dcffc6ba49eee8c4c6945f2c2106fb707efc3eb699a6ea36b256b874a255d3d871b913dab3b19fab9572af140dd9226fe9302b196235d50d5cd3efb3c5d6efd3411750fcfc79cf0e3f13d95c4bdb9744efb997a90020cf372111592df1e8763756e7a66a2e2b10d2a422f537a611f9a70201fb5d80a7552965b8d46c7d031aa2aa65d9240d3ca0d64c9493300272d7b714c7d36470f5cd0bbf00b84afd9a8a7dcc34ebb0d303aa89c9296adaa5d528525c89377b831c33457ec4d8a85dee031157a0da7c8c9add055a8f7e5e5897f772de8fd62b9e59707b98ba4bb4896db2e5c77987357eb5e96ea84d11901907593d376a2af6cfc619590687e0a5fcc3aeaa5b93cb01e007ca6f19e91a872e187e412d89fe81b5aac1ef74ec9b2d0734b366a32bade46a272677f29a37038ffd8eb0f89dadf62241e1348652bad07de727d172b9a700f6d49b1fcbcdfe72e303e62fb240775cfba8b66b32e4ff891066a39085760a4fe8a7c18e2d1fa39eefd1dae329c75bd86af364a08fae9b1b9fec2cc6c006952a7806f2da2027c018122c741bda6393e67ccc6bde170e4275d6ee2ef2c96d56d5e0fd34ea67397ad60bde3358428c2baa3ff45aad866df4909c2cd446f8e36c56cc092f3c8042f43c5b4837d244348a7fd1838adb5c2340a2a18d56c4e65d341d052e328d6ac7e2b6082bfb8d12bdd0637393ede44d8b6bf13f5a40fe02948b6bab9982c373ee2cde9ec77c7b8325711ef9423f50ad38880c5aae4895a865ba89cd401268c76d5ae6940ac3d997326b67c93adbcb1feaed813637ed6ffc17680f7b316672652676b0b9f9ab31e521c62997e51d2ee5e0f4b9fb3af5c8be38279b6e866591094883934ff907fcd3a66062d00e39c1872f3859f09be615bb6b1567c79db6bd7c4077cc4c409a8eb563fde8bdba8084c0f520658be4963f080ed723f88001445754e372e6ca3125eb8644d907b7bd344016699006e41ee7df99061c86a335434863db1d2815bb6816275969cd898f2bc3792a10d1cb56d3c840ea7bb3f61b25941e228a7f23d6c33475f9d41ffe409390d017c8bedfcf6e46fc40ed6cd7792153625001c29a4cf2cd393b82781ba269fcc6306d33238826427dab8f2a1a84f5ea38b960875c88f306119a5d953d2ddaafcf3333b2dda7c96849a372f88f172ac16ba87407dcfd60e582e38b03729a329e63a82c91ac9c7a5a68e25f9acf9d2bb3da22742a5bec4ee03fa2a3a1da6765cb6166e61976e240e3d5fc1a897197c9e366882e69e7594dcd11f2b46c2a6ec64dad1362f8750817f6e9d6c91473bd714e9af0d8d74b46bff1283ff225531392c4b13078b889cba83e26b1080b465768c339c14033fd8190f9e3eaa5378fa21006e97da231208be5a423de7bb8a69f814cd9d7e1a8be249f05c0be0e814efdca2bac8330fe91ff742ee09694ec8a299b6f3c01d10a0ad8246de9ba82a41f12f7b98287ac7aa2547415f5fcb597fff6f86bb1f46d50cbd876fdd7948a5e044c5f95c7ee64a62cf01a6f29b8fa9fe639ac9b90b82584619d225fe15f2c4263a2d9418580583f7d8b3838e073da9c1122759c8222d4ba376e62a3f3161c7970933b942d056bde074eafaca854401b7138c7efe9b8e1b56e0ae9b8788fb535beb3557f142caf2d087de9ab48c5802bf59a334b815b667c3173b3da07b7079084a62f563b105b31772f33811802eed47fc93b8c44500efcd278e74fc4fb78a7ac16c30af94f3e27ceade1b36310432a40d6da38169e82b8fdce80b11312a0882df1616f705c9ce51c1f89b7e6130e597507cd496358f9a6c586f9e53eadda072c44b72c765ed38e6ae9d43924d2f2f16ced62bea933ed42386e9abd262d1d1d1ec6e51d1df24fe6f45d85bf3e5a05493b073b4eff5a44cd84b4e878e5e2438460dcb6d81fc63d3d40ff096e4aeedb49b3e40f03ffa4face744f60434e016716de56e0412dc8ee34d23c2d58aab87721919d23727cb56ed3f0af0b32e596dcc94c1466809a7ae48736843974d42f34ffd68ea637755c2c643e90171a7a9b6dd056e47cf6a1b8c1f242fb71221a014dd55bc8116082c8f1722e7ce6e1d4c2f2458e06c1944324f4b614f0fcfddbeeceee6368db4d142368db8e9056b85d0f8688ffc5e8bce578a7168027e9b2a8357a87bbee83a883f3be9ff8b0d2aad87ed00ff45f5acd3f59f70808470acfa6d1eae78696bae7e84e11d07a2df41bdfaa7a13102da31d3e14a877be2e89cab95dc997fea69f5b1a9c8f935b46d833f1a2809e9335e593736ed1de9ff32fb473c2cd72280522e1b1b0872e1d6183112c605dc158d3830e036f5626702dfabc4959730a8a71ee519c464dd04cb2f84f10d19845fd6050816f35111b3719881f4f45493f9cdf9116c9e2c7481fafe24d70a474a4a565b66c8401884ebac37a5a183a17b4608fa6e5b8670961226f3342ab02c1b9e04fb3c03980476d2a8a54d42159ae6a08ea901995a3d522dc9f93d81c5b8e0b95edcdb4bee004d89b913bd55f5cca8cd1a6ffb4b5c6b51be0f20d2c42cd5b23d1560cfd3399611788b31855b11c31f5cd284f4e42f4e29cf68a6cfb358707b0c0d6d7a0fbc6939519a1405527ba88e34c406c1cefa1f50e9cdd9735d08a43315b2db46435f151d8cc4f8f8e205d5738a05d918a9aec41b537cd92623484fea9ebf32636d3b1134d5895ce707d712b903136f19f6f06f33cc2433552ee6498c0345a49ce8eedf01c297093c30953bccd783faf123d8180a2c55a0f4edf2c716d77cc47222f91b7bc6ea0d4d73c2d20b5a97844e8dff2453dea32a42a3499b4ffddda546b4bbd42d00e6bcb0c452cf40fd44fd00c66bf9be4e9f7db4748d88ff41eab358ac3f7afca94b5f82958e7fd5672e9b9cc92a26aac39e33e393ef733fab130693de6f39cf2187c9f615f68a6ee711d87f04cf2565b683c9f097a55efdb67319a251edb53f00091ba2a7a1d08d5fde2fc5e481dcafbc4a5d1970dfa4bd894a5fcc0fcc6370239c2c84db7b5c178cac697cf0e1745ebe1161291fbf597fe1ef5c2e633286e17fb2f5c28b7d009e86cdc0f40579739ae4b7f17984ad83f219bf2d6b4011c8f11cdb3e92ea663bd41bf4afee68079b54fbd368bbaff5e5a907f3fe3ec0b9a5176853f666390cbef5bfead5305ef78ac1079b611637136d7954c20db5c010873278e97f3ad60543e8feb0ce8988e1d5b45d988202c80f5ee1c8b645b8e12185c77c0e62eeee20e29bce600912da2f46fb13eb6e22a73864c788ca262f5c42890ce3c8794b2e02f030aecf4e377748dd11edc49aa9db1822e846fd754d48f772fd74ea399d3db130a1078c31075c17a582dd7e987271c1a34db91663c485621a6cf37120414dc73dde47a7e516036be6f3aa135ff1af882b44c4cf1e1ff3a8c9b78f8a727315da1b87047c0fdf2aaba048f5acff73ddc0989bdfa78ad3afb4606b4fd3f30951419d8094268e5caacca957f4daff92f771881db9739d97ae0cbb9b0013876fcbeec4f4562ff8104100db435d5f4dccc14e49fce055cf89b1c0417da52eba6ca29882480040f41f7c8a9f066ab36bc2f7cfa64e858f5a6c668b699be0f84a07097e3bf5bc65fedb63294d9574feb79d57f562caa7bba3a97f68ce255e64c8a773234ba545b248902f112583fd724791b18c3dac47a5721ed2ba0a408f4da3270d357a0433bd2418fb4b82ca4c3a54831fa858bf0d1f669852ec74abf95c5f3baf9579151dc425155382997e8ba819a17b206d8d615dbca43c843581e733c14450f078656becbd93cc52d6ed2c901c9e711861be5da4a7d77cd86c79ed81685514fb109ac1f32886cfd99c7107476d2cce9db2067b10ed894a93b4277f4ebbf738f68622ce1a962357dee124658584cfb2c54abbe550cfd789100a3082738ddd93973ea4ed0807e92a6b8b17b1a88c55911db99a058652accb3ca4b6864d51e52ddba98d0402e048020b08dd6134d4ada6ccab6486574b5c01c59e2c205a58d7567b2c2732549c9184e54ebd7a967a49955914913e72182bf02596178340cd9381b3edb1fa111275ed4a4fb2720084f2436096675fd1a9190fad3ce72e37e806f67b4d5fbad5f233512ef06c171662028ce0b22df311e376d5e6dbbf867342d47f812610c1cf7ee13d3c5be436b089aafcfa9059e634227833d4084032917b46ef232e0de9e0df67ea275468830d0117ee807e1c6621ff6dd67eaffe2ee878e30f58b54b7752b83d100f9266af6969882e49480c13d6580b4944fd44dde65b29301a7913a4e43a1604131323073ec05556b365fa1945c7c2a53691cebce96a7df6555a782c2aacdef4264ac253401d5963d12aa7be1d9e3d34cfbce3b300f842b12ccee4d54c17e39da9373b265f8c09a94ee9f1dc126e56d7d8861d54cffe4bac96f9c327b2d7decce924c6f78c74695efdc35eae9fe0a3d1c54d7524d603a0d296b27b032f79d5a588558ccd05fb759a75525b9c28c66a432ea67730dd68ab12ffdaa07e8f83ddd673d58af9ffda3ce2e96173fa263d25281d4997b847dc6cc17c4437664abaac9c4be6ee031fe0d9f3936e5aed0941ee78065e9f0746e81aacf659576b6076426d835dda4d97dc37b289db4f5375cb2df9cb8ee771ea60818d987e77e131ee7101a703b6d1a52042807b50ca4115d0cb68f7101abb62350621b4ed73a8d9f5917e1b0bf128fabdd984ab03c0afb459674a63f7cb48c2ae949062a1cf5ee232cfe6f7e07c44ecfd00a3e75efb50efad89f7acda627fa8c21138e7dcc55104c1f4095fa2605dffae9805501c473be851da26b6bb697bfeacaa93e43f31dc8420f9d99b867096b574aa1e1a7bacf591f3267d38f19378b57f7233df72b539f053169e0e7fd51adc11a600da4d38be87dc338751e07d9ff9dd91b058c13b38b4c4b751c2f046c1ddd463fa531c5559b365cd2025abc92847c49b76aeca6f06c9912ca146055471757d9efbb4cd16a19126a724641276d1b3690df905a72c8cabf4f3b9117f22a3c923bdebfb1e24a2ad31378610d628003d7c91c0e22c2ccb82f70f2f9942731b0de8290093f71e378da02ff6f15ef8fedea73cf485ec989520060789f9e04cf542b5ea6979afafb6c08599c86a5f30d654da5dfdd003a924bd3f2eecf6a62dda227d24323770cc4f0c9c463052c6b153b62e050ee32ef50033536df585aa825342b70f0ff66630abc18be8b50fd31dd057b91a2201013b4228d6ad8c085a59562f6a8c24097d0f408477257cf7f683db260e3b12671d9121d8cc5cbacfda6464259319ef0041d364fd8bbb70aca4a4027297317d545354b99bbae99731216be1563c44bf264c038891f57e32bd576b90b8acdc5dc19f1f6612d450609d8b2f778cda185da8a9055d69df02a5d09b5a61118f2fb44a4b66a4b151fcce632699222b47f04ec27deebedc4eefa91cddaa4807468dc9987e91bfa96c600fdd129cbab77b8af7f3497f791179531b50e6a73ec4d0ff36d1376fb014d22e6599f6e74769c476c81ccdcdcec7918e54c83d75164e86508adabc8c4c41676cc3f79f8f46cf7df2a4d3f71efbc54d5dc18f9b55dbe0ba186941fa75dd025d5494447106ea8726e0a622c83dc9b985795d1b7cd8dc8e69992e865f32fe61df6aae7fb3801c95be0b5c3ee3d6ee2027d736369282585726bf057ae4b4efdd047f462617d1bec6965eb60447a9864ca0e065eb831598853e9173f3cdb6e3499c36206cfe031a51d8e292276b3211c92b98a7d27c7834ae62be7713f6541609a27bbd8c2d1c0a7ec766b166b81ac55309ba3b2998aa944ecd74a05cd0697d026f8674b3501ccd5a7d9414007d7b24e9398e0fef6b99fc3ea423dfdd89890fe8407a193e33e3cf9fb1f13eb67ecad09579769f3249c9f36668779a9ad0dcc407202b79132fa0e2bc9fe280d292f8bbed2cb6aac96ca26fe08d2f3c07024a2e223b1c35389f45a6415c1cd6e1a7470e3d21f72f3082c4dbe6adf49a2f3326d64c75c21141154140d96321eef5028186165803406310e2903e8c9697316975dc24d17f23e81c270ee568de24e5d99ec7a83c98d26077e56d042d51be76f0bfff43877abdc681804f63ffe25578a81a7574b4494bcc4ebef2fcbc7e72b33fe2bd7c374cd43921139cc0c36b05681d45225abd6f89d2bb3641e3478b3e6259cef5a885e3155e198d3d6633cc9f2a5185f1eaa4f8880cba6cb416533387c6f325a22e41f6a6550bb466a15dc9e253b879e910c7a52944b39473677937d47077868e963c29f89968c99ff1003f4f1a6ee71fa9670c5e900ef1c2fcb69be178aa679a452b18591f68b8710b51d61f1ff39478ae3f12d7f67b347f59b8491906f3de1f1c20cf952380b973d2aeef717b68796b6f0fa69e4fba7f32869293a40b3da9d844bc80b240c02f5a7a7431812a7cc14b2dcf19e62f4cff934a06c5be01aa914e56c5d3c4558d3e14fd0f0573ee32591600e8135f5a2e1e2e82b9891e92cb1e07ac8e0f3ccf41cf06b9cd7934554efc54da0d3b6ffd0275022eb5a559a080d19c3d2280c3d93df456d912ffa1e80846c23fe078eb308bcc355c583a8e19a0106422bd9f4ea3029dbc9b13e3fec265af169723fdd06de5b42d75adf1b767555372d7ee71736332b96a88f82f98073e6737a17558e31a6979bfbda67a56be6bf81c72ce9801b1bdafd048084c1044576e1c0b09a97cae56f11d8f259a521cce04ac891358c09bc39fbd67037aa4640ff58abda31577d3b2bfe19801eb9c7c493ebdedeb99ec8dcc6f470b30a0c221510feddbde84b9c37c2ceb8445ba4078aae3d9b69b3b4d3ea248d30cedf87225d5f33eb8fbc1e5469089cc5ad31798d415390c2504bea4083b0119c25038aab1bb869a9b11f0f502b62b4894881fdc8f87013fd958580ddc5aeb3435b69c7983ec42a1605978d105c139ca9556833c918886f81165bae4da9558b713a705b6af3d6490ffe271ea0ad2d064688e4eea928da1b773c9f8bc992dc3fcd759fcfb1a398d944e35c49efd241083e6e82937b577eccf32d74daf056b247dec8278fe3f1c4210bccd0413d24275bbf75f7b81f70a17eb8ce243c7061b3ee1bb6d8cd676a4e0f8d128cb31c3fd27814e518990ce7ebba70a16e666019a95c23bbd9ea4a1a6425fd26d8f208f36ed7012a8e52b2b81c5b7ce2ce6875dc512c0c6226fa1897576d8a7d3aa137a15cad6e8c33756338d5a1c800f6afca7d6a51839d974ba9e9837cefe3d821523d7fb02745e0c244b3cd7ed91b336113ca5cb025d51c6201b5e0f4c942239c8eace29cecd87cb62a7bc348b0055794adb8ee017efe090113fe11eafdd5bcb74810d7e390d91c4801829c86188e3c506ae00f6c05b17c32893e0ff6a2fcfb8f0115eaad36764516405a74efd5693f661be0869f75b72b985ace0510a61a2043e0ff144ebce7261159d28c5737dba31080160019bb054669e684d03761dc7c8debd468b8077e67409c82d37a32205a42a9fa318e26416062edcb03933c1ce1226be0fd4e282eb0ea5842247fe043f41b951af50ee1683dc6bb796f1d7d54de7bf19bbff4e16bf90e266d90c3d80486a3cbce4c021096f3dba27b13947b3768325e2a6c38405a074061f687f2a3c108d6785290bfd1ad5a174d9b57646d549d9033fa489a3f76b12a102a0da5b2d47546ec812ba7fbf023ed61aa7de0e6810548e3e7c388cd74b3658d19b425514ce9792a25e3ebbcd050fd4f9797acf698e9b016fb5f9b8dcac6bc05fe2ea69980cc36201834b32b249cd295dac6a3d8a922ccec9a5fe243167e15a45191381b153f024c99cc38852586905f6d8e7b3aea2cefe8b85073b07d4619a46af3923b76179725b588a786cd731b6dd89e9ecad874fd85b9f2a4a18df568dce79ff8071c58e8c81127e3953b0002df4c46a1ccaa9387881356fa51e479bd5f58d198ff0d0a66601fdc195502fe9777131cef627e96f096f832f37798580db65f9eff77418166dcd88fdc9d611e278582148c4d13e0a2e670d82180ad987e95b8bad1f544a8c89cbbb6b7b5956fdf6f4fd96164b993f4112a7a104aa565c6793f5368ba4af08c403974c933e909784f3806644daa33d0e66f57d0fe34aa97eb38e61253c662f0a9ac0969b07c5682bc76ee91f133493874447f6b046fb890a8cc6e41673db3dbd75497c391913b3b1f315b1787bddafe0c852a424e83b63790ff02fc914286ee7688a36a73bdc04c5e24334e5d6da85145b330b8ca9d8c8554594889b4abe7343e4305da4119a4011fb9df38aa94b98c8a383c24dc1ba8e868817f6205f4ade8394a8ce46922f86f609ab37b41199121e04c2bdc3875e976b3b8b406b241f541f71e65b26c7c9f7ceb9f67c55e1052f03745e993d923f8477600ae2b5e3edd311f9a676b1faa5c215afa5b636c30efea58f03a86dcc441b9c59930bb7c7b2f2c661516c96e3a4317a68a503ee2454ed7a722b5402884e1a1a17acfe664cb16742f44cae336c512228197a69b7426ca6ea0926180dfae1856749d422daa85249151818676bf9e969008bd0b7b09d53ed9c896dae07f6ac2d513adf90212611dd887650975dfe7ca9ebaf21491bf0d82deb593d6f6a016bd3aebccde44b04ace083f6f94e753bf58a3ba526ed3fcc2b53743b2a39ea896e9cc3a3e913a5ac4f94a8ea6fdcb88249b4d6fd240b757d1261951391b41861a24d253f55848a91c95d38cf798c4a8e9bb8639c96ac44e26ccb0c3405c2089d734c9f6d36986c46a86ad738e37ba855713711e57f37aaee0d93e333a903c28f95cbbbdc27a3545895c7f3e64e2a7e0c76c5a567e1b9a881f859e46aac3ac566c0c5af494b5a3d547b36cafeb69ca4237db76c6ba41f5ee5ea114272a85ab081b00ef5a86efb2f96a2bdc8604f2cca7188737371b37c6c1d4962f703e978cc4383ef43c19230e440030c9388268394777ade270311995619a5281e495bdc442c267ea6a5bccd3e6e0229d004947786e724d1bf402b77cd4b1fd8bec3dc53837f3bf1bc0c5e7a13b6ff5b54540e6bdcdb1bb34f5f9171f424388a24d14fb0750efc577f70d4f5b856293f83ac3c2080b3e938bc4da8954e79452e783a7853d7120551ffcb9f8d936e3557a586b1f3dfc081136724d57dbeae80d22735dc3be79a4d19ef82afe703d0f55f9fbd6d4a8d86ef992b26d6c6f30d799a159dd349788c35f6bacfbb610f3af53e297162c88730952b4afacffc531be0742442f1fff85bcd78fc6d9ec657e576930e287577a875d864373a154928fb653835e6b6d6336cd809fbf0f045b4bb5365a59ba10113f00a4e31349975b57ba411da23419c620c10731d257ab0bde33075b7417f7cf87804edf3c382cf9bc6f5c8ffa23e5163064087b96d2bc1a870f1dd94a83877e9d4fa7e0315d04043f4c76c1f092e57edbf966d8fcee0399c006169758d22cf9371d67b6ded9ec72f7819c196794b5c10498719e4bb40f0c72fddb1b9a99c2c6605c35db1e31e534cb70837207ade44466ab57f2314d0e093143698046b95602987d61a06876d7ad5dc3d66e0c92b8ee06cd1eded2412bcd1211f6ad86e5c75547e03a0b6bedb641d119de906254ab9f8ba00c2a6e879d8189be938a8d0e08934c4980b1bbdaa79323e9fa641319c1db78724dcf6d387b48105c3bd773ee667a52740512282c2b390881026801359f71150096140cd74620467550f4e50fcd065ad0796a632605cce99078e9c0d3c3ae48a54c2f57d7d544752a6368f6b518f12ee89b14f2717a1432b4dea2067943928c8036b113bfbdcd045fb3bb0988e5628e094245b61590623d7c90d48e677e5e71526316eb59fabf5c7699a7a429654efe730c2d9b2f1af6c9cbbc0df8a84485de87c1c7a700cd1be58f32a13039caf52f0361bf98424293fac72c8369e21fb0e340eeda9f35ecdf64a50a8133e120d0dab1817511166812074e45008df5a23e2f290386da7e6f13e113416858b39f083cc4bbaf6920dcd0c67942f6acf8036ea078077103d90c2373d20e3b8392bb2302d80a4b6b0293996d242aef7791568f4c2f5591bf063ecf445ee97711a650cefbf783d6214676c3be6a9921a7f97c2ab2b8298bca5493afe66369c9c2c122cb281db23c7af72859271b6323417186f4e3cf6527a20e198c763c01b54bc2d27c6cd46dad2af279c614ab6348a72c827961d568a967c4e18f5e9f6022bcedf3d47969f4584f2402e6345298dec11344b0b39771e65abb00c8f81d774cd5f00fd5937c478f4b53d807611ed2a154ddb727bb4bd792ee11ac79a3480ada1900cc6128c6e1849309606776664c5697748e2d0d2cff7e6e33c03249e29009acf57da97d302ae737ffe66aa79df489d3ba0276e1d6552c96c197c5c228bd346b8883fa546aacd6b68298464d929a1d0cace3c9da096a958321dae53270378cd15022f80702344533bb6e2fd3590d8454b210580ddca32ac485887a41c01db448aabea987d8807d9fb1595cf8bc479077d36cd9ee4f7a251196f311884c0ae16d933161ef7ed9071e73957d9614e798718458cfd0abe8c0ef2f007b8273dd6663bf0a9d2d8a9138ae85f4661f2beaf1996bfabfc2b3241e7c1f65362b735fa578e61f63ef2c9dc4df05c464cba5968054185cb070a5b4990909dc6c951e4e1819f6fd99a3f5f6176e027a921a03d6da4351d8f34b437f4bf9816e687820cbea285b4d3e444a27403f38d66a25235339c3ee49e565537995ca40584db5afef47aadf1fd24306cd47a646ad6b353dc6597ca79f6359fc4ec58c78721bb956cb9ff2c953438d576ac16f0994affc0c0b39479408c3beec7fc930430eb3125294a7872074219b6a25cfb90b3515f2a888a2081f09fa65488d7f3030e568988f6444eba358890ccad1855a510ecfb70fbcf02bbe4021e25a4266b1464dd06afa54d6fe750b7646356e3ecd36a3b2886e3351d5c55cb40d5a7126c6d14d7559229fa56c88e1b12e7c7ef7ed21ce06f78a4898faafbf4c222d77204ab3269935f8f3b69d06ff2fa3230b28bd32d705c1b2b8f679863b9ec82b080b3b9d7c3325981a967755d56da1039d3317cc173dd888f344eab8c1f77f9f002e471884f7b187f64aa9f2436147241a170dac76ab12f0c78627cdc6fc459661d806c8fd39740858db0e8fadbb7ec9385d6b0c0a04465e8fe0523ca3917be08a0d982dfc5fbca4560ee5f317a29ebb2ae75ec6967df071a0ccad6151bc33aefa5a2f5e35a90986b9df48002646878af7cb0406ae7d228f65ae8585afa3c415d5db884f3cbfe90efeaccbc019806d2f09d5383062592e0add71c305c2f9bfa087e826cce7809567442b3e39bee21f94c40ec52f822159bd69075e432ed73757cc58658d8a6debd26aa508e11536084a4807eb403a34670eccdcb10081dd2188aab6967c40253655b4ad9da1127584f669590c439d75ed015409ffd262cb05ddaf3d758c3d559b6678089fa12c517bfb73ffcda53733d58e15efa33a41d72a76afb46e68c7444e4f44c416afd05888f9571a8752f1c9bfae98c85f61a9f2cc4e3be42d6e4bfdb5fa25481319f6d59ae6cbc601e901bb9bf948e931fe72687b83146db225bcec2dfce12d009e85a2404280ee5642034ef00be780c282c2dba4b43a6321f177291419e30a9660f8f0e111cbb0ad31d90c0531e4c822a247c21854cdc8793d040d918952e785addcf9937e140f420128fea2fb95fc174749dd120872f0146f2f317ffe817c3c92e0c54d6d31696f5765e0f310c4e37f066235dad5d68ba78ad3038fcb72c3b3ccf96658fbef371bae10c8e6662628454ff4cb3ade37f597e4f4dd516f8ac816ea55d1157b62e82ad1279a3ea4a37f81eae7ec578cf7385e58526fd2b53e28900cfe44b5ea54d9ea9f910c8fd696d00b3b9b0d9f36e62464db61c0e679c6f3744b2a06c1b8d854ea243d1d84216e014758d73b7dd32f95e2f46868bfd8b98328203f70cb8e4cb052ecc9e625dec800d927ee20b7f00191678d7fa5c1d48e95841680f5c185bcc4695568ba3ed25d64422d28e7d7955ec294205e09582f7738452f221bed9c3b7fa3e4fd28f7c50a479e694cfc09bf5ba5d41685d56f84717348c7ae86345f26433fde820332adfa8dee65220e2ad29b8e6d3e18536795afad903b10ffaa31b797e1d8435c0f2b9cf716650ec9d68b2776e2526ba345d813ad7ef5ebc2b6f0136409727020a42165ca7b6bb81f6c360049c29e0ca5dd03c472908306775e42bd01411ff86c2b544e0f7f16bf1bfeafe4e5f54e494152898398dba688adf731989459f608ed57edc8428eed9c84b5444a38014080d02b543df4bba018a806bfe8a164f0cc7fe16d92e7008206c88e5391cf0a704061a0a87b0920b92a5da366a342bb7661700d6b222864351d70242c179037f9d9455a72f62191f15ecb5a2027c0b62708a156d719f67db88270cad519715cf346aa7a4e09bfb75c3f969544e42f4ec52e05d11bd91867b930fdb6200ce9d588f1d76e9c10a6a9fec84f35433ab7f8422044b899cf1d3f1301d6f3d523c1e2e493814bb71d49c4ac0dd912fb47d000990cce63f9266dcdbb5b0bc3d682eb0e711665066fdf92548be25c9d41a3acfc96ac90a81df285ed7adc817e5df849d73b12d2c20b2050ca5c3dcaac99e03bd05b235bde2b256fcfbe306a8a22bbf641842e47cb1c3b82e0277557bffe11fc99de1b27fbc5a87a3cfe1753ca3a62508ada6dac76a03a4baec21d18bed408fc341bae02487322b027bbbffabcc36283c7e7fd7b19e45515b9d3bbdd05b5ee58249c54d58716f7cc94a92ae15422486d24a9ab082ae7a4a3b03d6d9242417dd661f865ad1eb571736a3d278bbf0d961777032be6464f4880d242823f664934ff5ac2e9f025efc2ec8acddd744f220eacd8d651c4adb1d0497b3507fa4bee88289d3b8d75a2913c0d07c0ce5cc71c1c12505bed54189abf5956014b165bbeadd3c6bc2dc998192b95c4bc6f651a9ca7a3e5ac04c050f9a4b8b69682aec168639bf098bc31d36bc4f3a5a66f6a30357d60d868042a002542837cc3d1241bbb8c469aa66bbf58558325074f46440d95ccbdeca5d1813653918a3a43cc4d2c45f368de86642f6bda80a354754d396ba3ae6e39c22dcb1fba37f7f300c5b7a848dcd82ec185d72c501eb9fd8934dc0baa1e1d9f4bbb4159d72d1dce12178fd551c8eebb1e479aa695e812a0589d6f1356a2ef41ec1b47bc2d6200f519e15907bf41e604c5b8ac147802a16deb85074d21e0675ad50de322613e2098496cb690fe8587023e59f8fbee29d1fd93b8c34ee4105ae943eedec43cd2b751c6df0bcf2221c376823806fedf09a26162716d0e79dbeaa3f55ab944a25dd6206eb6f029f6b7078ce4babcaece64bb9e3f7bc8098ff2df2cbe3d4b087f8b277b714acdb39490296e0c415211945ca9c435591d04677e57dcec92fa4c8a427e8a248319b76a54a34e0e9a253e2ed53ef893962599d7c4c7d2cc54b948627aed6f274df51c9360d3256c7afee271c76e1a279a5fd4292a2fea6fdeeb9cb6e2fbed2c0383d6e33afe24010015867a17201fce7199cfe70921b07633fa990053c5a60ce75ec0200d8ea7f2a99e4814f6a20fee5f9ada48c28b76ce119315176e2f3e60bc78b00f84fdf5215683490e21f09ed12f12584bba0cc93330fab62534da8ae6c8c6f6137e9503d23cdc3f73c2f487d703feb2c87924fc10d7e6c165726c726d6b4c0f3c70f8aa1a1ef8ec2109f2ded7cede87dcdde13e1831a64ea4b98ab26364a4f0e9cae63f27f14a07a8dd50655d5dd1345b0eecda3999353bde0d30848a514f55cfca1219e9039df60c39d0aab6374c2b578dd651a27aaef018d5c670900c0172c2b6b5cf4005a20049c7066e21b649ba0f83cfe8abc73f0bce9c0fec05889c7e98d22fc24790bd6fbde0b5ed80749ee135bf379797e5b72bec19f5c0b04190d292375964656fb898e661ceb3d10f85b38ab9455492870df6d01877f7df496f2b0081236cac7e5a592b11f3bba3ecf7e0af7b973be5b26ac0fd8122628ea054491dfaa4448cb56fe98fb611804cecc538cccb407799f7d7efff27480b59dd83823de41eab69796ae6d44af5f9295a5a1380dd2c6bb47b9609e3940afd8f0b47a35f20714842e1ab9366f51594395f869c0ed029c98cd3c42f246274a7ac5796c1b9533e841cb7a48b6db7f38f3951bcc8628862e250d4d9460cddae918e5bd4ce8f47aadd65b398b721e7ac5dd662c1e97c3ab53160fcfc4b62d30ab5126fb42dc9dc3767765de9df41d8301906431b7911e03226ab6f866288ae9b90edbb060252d6d91a72985aaa6435cc40aeff3f9e656f60aa649bb7cd640cf948fd7b54cb8f04c45bc02e3c4288477ae4a73655d00738f07ce9aee4adb5527903de56a851947d3925601233809f5d4560a56e01941580ab4e0063df1f6d53d6c5645feff9963a8ba153262351ec8245b94af368c75a3846ec3646bbb7c57fd8d0c68b107cbb044d99af1e2e20099c0177e6c1b9db5610db1156d26313add9469d234b9667c5689145932866d87e2d5c11d0107adbebbfe1d702f9a9ad1cc8215edb331da83d45b7e1d0a5f4848b9591d899d79efe457aba1a12136d21c6f06b3f1098afab92bee4eb8dcb6f96b03f6bdbbfc594e9f23b8da844800d7c2c6f9bff84cf41e1090b0e66195638d48c0d6a12433c3af49f53f44ae169fd044c9754dc47701142beb7085b3215498cb2c1841e588b5a1bec7b623d24fbc0988868ecb4803925809250121637310ad48650bc55a0c51d8c0c5739496c78016442693e66c479249ffcc1edaecf41ba97d199c9b7ce557dec7a06028b18aea842f49b09e1fa59c626677bcce372a9acd9932a882c8cd2366537511ead6e4c3f055881c341093440edd69a730f52862c5f319077394de80adb47b7d410b238989745c5ee167515b77594dab90da9bdd4c592ffd577606731eb7f6ef6e72cbca1bbc542c442f074e0d40524abfc767805c42ce16a318cb611cb91177470d79dba645e953afa6c36f31b29b94fb92e84173e5a9936bac89d607e206b981ee96a08cb79825162be0d9aa502cd455f007536919ae3f4f8ef8b0e3bc9d62569d923906ae3f02e975effd49b3b3a88989d7b94bc68e42727c6659857c6aafc08459cac9eab9ac918ce25bd7c85b5a1edf82d8740870a0e29652694f7b2f02942eab98d00945c41a9f1f7fef7f9853ac08c9315b3a998a8c4c2d50d0390cfa7918d19ce2914205b15dbf0f87bae80c329d42801eaa4dcfbaa74f46c3863b560d56ed0407c4b9f750d5c00f5569bfccd376d2bcd3524a0e4392c55ad032702780ca27703315eb348f882281db4e17f71b17f0e96f422fe9af4fda81b2883fe3859353ac4d2ac0e809b2d836d3d188bebbb429e63e44a8aa2dcbf7b21295a373a9f7a41b7fafdc8697e0e80d1ce6d8f27f2cbbb1ae9f04f76d7e00fc772947e5b971069ee53d5967798e366e31edf6f37fbeca300c2128f9fee4db80902933cb9d59f602c3c52c3f5737afb8868672d509493e0afccf01b8569d7423e987b69c970ee72433fd5e01077b1425a3dd5afd8617e62edb042879922e42096efba16c1135ac10ba862cb5d13975c0b9c8ba41936618ef6a2cd8a6ba8b5620d7e2c7657668b0a08e8c5346bee658610d5c754804e3445b5ff4911020a16723d388f885da5f16054c6abe2a0a160dc308c2d81d709ee4f1dea39c850a57dd1ec4356fd8ddf6ab9f2d071ee8ae7fa519981843552b0d735f1b791055c540707182ba669247cb22827b12e150cc54eec4f170a30ccb27256409aa88d95229968e3668838384d3aef8d10e7343c9c83792d098d0b08524478193ee5d53b2c50841a5d332d182c61d474c6616a861f1a8f71751aa8f799fcfc0dfcaf77a0b7c8f0dc0543e64e741bd72c4550182b459b5dbc36a6c20cc800e12a1db0b0230506e26755d20551932e44b40c9bbf4743d9c817dd53928bda6cc023d144905f9db51afadbf53191e2d92bba21f77579bc851b83d9da229e64568a8a4f04c621b3e629409045acdc4fc968b998e1fa43d803ee3a8170844769e144be6f6d908659efc4a0c42f5f8708eb39c5e60b9d31d3517098fadf61cae2ed1ed35de5a8884e0c731d63c3fca3117fd1eae7e149551baa2156de0f8204030a141a482c547dc5dc682aacc4e0ecb6f043b16a5fb0025fd382e4f10e03df4d951d4e0d018b80a0b9bf07195de119323ec2dec11705d04adfbe1e802c2e1372a30f67d35388d99d02b8a1eaf788efed37c755476fb4105f6adc057a914b6b95ced1d2a3987aa9c258e281ffe0dc6e0221520cb76cd5bd84e71f6be19703eaa215c07b9c543293c38e2eb856d1d156f473ba139d66273de47e667307568334ab68559347a2978630179685a55739fce90543230927ee95309be338d3244a424750ba6b5e9e9add348f86e8f5e034524993c93a7f09f12e19a33d7d5fec4174e89f5f3d18c71188f24a04b238f42d57326d82c2f9091442b8bd5587937d83be155f0f85d63da7af3277244060dc0280570b5153695fa576a0c5b103879f8b496f7845b872fc06e5b8ce199e677d88a65f8ec1f66e2d7a0736dbce86b891df55c82d7c1b62edc19d2cd86d2505be7920c535d401e48f79fd5c84b29e07370fe92c729282fe5c9a401e189007e3deb9f7eb1b6130cfe3d36c154dfda62a0e8ee0cfd1834f04e1fcdc73ff6f2402814ba482c63efa71c7883d8de52b398d34da9bcbf9c312e024572b57ab2774f0da23ad65e700cd500936672d49747432f12cd32c211a28eb5ee75a81e696bc55ba0a81393cef0d68d5a518b1c9487b27b33b077e61aee4492f8f55e5e481a2ac3b2bc0461e74a89f94f5f7f32ec11218aaf48bfaf7198afadcac584aa0dd98a505d47c0be6de7f57a082ae8df7c85a1c6ba17209511df5cdaa46915168a732ca344085328f551b2ebe6ce7782545e25e8e29ca5584f1c072ad6f1e8fab1aea7b2b82940632fa051eb42361a0d089c493c5ee6ae2f313bd668265b8f9ae724470dcc715f30a966dd28c8218a01d3b4664bc35e7f9924d76deabba1d89a8f059daa2bc6d5bcef98ae246b79e90652dc506189df0138803c052716f1d711a20c8d6804c20a82ef5c0d48f21b14c589c01b0acbbf22073fcb704a03c0462266ca34a711a0e588e6a34d2c35729fbe8181cc3ae19d7c00dbf08b17676660c9171306573b9c7d7cc13ba6236b520fdeb92f051bc62540bd358dda82c2840332b32350bf898290d810d9b30330b3704d7f4283693808cb85b1984e2bc0529c0ac696d6b7d750f8b3db0b3806183f894487f821981e253c0223a5d8894fb81eeb7d99ac259b24c38a78e0f0b30f2c7699d2af128d357a4ae5886d11eb701eb48b04b1eb738972fd49d4ace60e8054601cde30c5387d190313a178021b2b81b4ef87c4436793078393dab50844055dc6196484d76c1a6bd9c23bbb812bff06da64ee8d1609a8e531ddc6e65624b3657a6a4ef6b15a8893de3f41afd9eacfef28f283648179cbdfe89e304a7b58ee628ba6df2d55ee4a272ca06cc92dd7ff1315ed79a6378467d7ce41c7912939be5a23e79b246dcf59b7b7a55ba17f67ff36883ba9ab03b49923f29f36e6c84334d45d437e126ea21853865d9404e113b7bd7a8ae5a230b3ca3c003cba975f0f362ececc8b8f1ca57be6e6552bda881077dc1bc48494f52ba37cdabf9980c5d3ff59f9451f2a6df07cb2eca1083864dd22b00790aa078333b03c1299b848016617f2c53a36103414d87d7c21c7ea08b41c8f33a738fc44c2687eb39b74f3bafcebd201b0c7a13cb16fe73220bd2123be342df944a96f6e49c578b216c716ffe8c6d32e330f0d563f50fdd314ecb074d7896d74aa18ba0fe0973655fbf628db877da3ea645a49131f35aa041983259718841142739a62e889ed3a959cac27df3cb6c4dbfcd319480c97cbaa45ecce3ff23d1c683e2d1fff48c49a7e4903379ab9f7829d6962e57ea35875a65e92d3d2df034e7ef722bcfbcf31e3f0a7654cc4e6aefcab61975e0a623f6c782192532e9bf3c34d161ab4a3ad640e7f3d9171023e153b39cbca5de6fcd446549d647f1d75c7cf480ce1d66ab0a90c4e71758fc52b42ae8f30b982da4f02b2dcd6668bf1433324756a825d3b61d093a3c5ff7269ded800075700054cec84c1f89c52be6c87d5b8ee1cffca45bf60f908d5fab2a2bb286bf36bbc90ead4d3976a7ca93797c5ebdd34a193a36a3a6213455996fa5eea190314731a28d2d1ab47559c5024e14608aeccabcafebad591b0a14a77a17660d6fb638496aeaa0f6dfac655f398321a630fe24f79790f59df0fadaa0383539535d52301a62acdd1e01cd0b520b3aabb3ebcd4d8d967068bbe227ed3f9bbb94501fc4169b7d830fba5a5103b40bf87ad825734e6a828492179780003d122e1f3b6a492e366a5f49cc92dab562070e595e0fa165ec6e100b6b2c2773b4262b64c5620f49b607cb4e51ff13086e7039a0b32c27c6360f4423e699ed5bb9918e34adfb95dacd6839e8076306953518a9bf023e361d456276ec1599ee4e720391cb70166031242cfd9eb754a3b496be41a1bb8752e7922cb5c46f37f084b1a26d51dc88bacee4cad17e2992cdea460b695156edb5e9fbb135d07172f9e6047ff6d5c2d9b5ca8671058183743fc40ddbcd5b06b3c525060f31002760192f720e78a4324766a303609cab3491273d760873ae8983e5e45df1801a216b810372e7edab7a42dc79442045653d2800330928434c46527afeb15ea7f01489dcad32ac76b1bb07555a50fd56a050836b0e917654e7b5e32530741185136099e862332beeeaf9d84eb23ac12b2ba9e8c249b7ec54a191ea11fd3063c915bf21069cb9ae5d01719d06fef578fe2158c6ff766531e25e4a36644576e00ff33ac3082f2cd6e485d60b80c62fe2ebe80147eabf38e291d5e9cd59bf55a28936d2bb08f04fee0654a1358864f77c3ccf8f65ec86b1a67ae54de7eb879eb111c0f72508e62fb853ed9b25f45c62b6b81dab1a7ce79125400ed4c1a314cb88fedf72a8f72affa0262635ecd0b591ad59ffb4f543c10a4cb3adeae216b7a4be3e4d8372052bcc16a03484d2cc44c00ad918dcfa393b6b8c7f519742692e7fe120f00f846a0ed722621f81c81cbd588511264b4f7403fa341ef2f262d7cd7d06f21f27b5e259301df48a45d6b02a431ecff1032d4f009d553c135fef8146164f61dac21da85d7442cd976d313c9a6eff9f1fcdec0416b9f0837543fd27d2900d494c80ca3f354ff1c5bc6c5c937aa9e8d71f29ad13aa40a375ec0096dd17ac61ae8db29c40115b297a10a432fa6e36ff62fb5efd3f7123a6e711e7043e04df018f12ea5169a5fc04cfa99689662eb132045d5acc71787171886e6364ec724f0dd163c6fb610c1d033b8961da813367ee2f1470b6c744742961eb1a84d70439ec901bf09dbf45b34a2328be591f3558aa53aa04e25415eb14c3d2754e7f3294cf25b73bb406b8a74647e28b9c5904fcf34ac03597ba175787782205824d4ddb297568d78f8fac902e0c4c785e791c305175126523765a503d33827d6f888a99e829f07e113e47a5c6f60d991ee4abe5d970091c1f7442bf980a5def9b97049d904cfe496134d9d291a277ef503792e95e2d59832b5472e142d128dd6dc9e9ae4e459955450ffb15c24cb350381917803699ae8c473dc339412f763a3f25be3ef4677f657594b740eca4e1e97044884d4fa48bd64bf905fcb7bb3e6820c0bc68aacfcd84dc1b84d10aada84e005d83f7662fd2522224d4057030478695b6d417ec1b2d4814bf9f9d317ac5b3244aa1d376d625c733076d13f50dd2771bb9be6a94c40890f12da44cd44c0b1efe57a64ab54616a11d0628ba57098824197b90e02ad60e752084e3581dde242cef4c5e6cfb35a89db13b39c65d8fc6de4f157c8a95b817efc727e96100b6b10c4ddcd01bdc75aae8641d84211b1bd9a8b76cea18d34ce0c1a04292b089b9b730a5ce11fb1d1cffd83ddc7647af97299b1cc27d51075ee83a94519051a02ee5765d956899ee62fc886e27b6db420689f7e05dcbc8488994cab661bb21b42266a99c7ee779ae69bf824e9fa95162c0e8cc852c4f92a37e95f8b23879dff983c99442fde24efecb8bed37d515da2d97e536a3beaaa48b3f4f1e82b9fca06c8b315f097d8dc679b9f4517cce912c1d8223c673a32ebb6960a0936c2a344c51ecfb8e6b73c6e6434b6703a2588be8935336278e56457d5823828098feac91b0efbe00eeb926c26ba10b7affe13654d0edddaa8a30db8dc1b34dfc0917ea3f895b65612af1260856623516415807b0089b3dac13c4424d77341f89fda8df70113c87df7c59e2da1da2a0ffdd9e27140b3e4b336e2b8439bdaf5afd93472cf08976f7d08544c671b078e96289ff3e7683cc284b97bfd52dd8bb2e93366d990da43234dd4dcfea1dbc5b49877c33f7f50ec44ec41955612c8d95a88970652b728cf17e77639f9a9716c2c9a7f3adb6ddd66e179bbdd27f0a321bbc791bde918973aa551b0a0d53b8e5c58bbea6ed86fbceed822eb21cb8bcba07521083b72f1fd7a4895c56f2488391ab50ac763e4115aa3fb86233682e808b382eca86ef24713edd3489514d88594ee7400975bc0a25b75d36102c7772eec105237a4f54ad028bff02d5d42524f070b4bb7bb22b2f4dc2a5121602da598de789b4766673fca7b46b69e15f879346350acd36d3b839b2fda4ca5500db9a7383d47e41897cfbe8d11f38ecffb795e5a2ef27ef0a8e18daebef287e79bcdbaebc9be0821e171256a413798a0d1a957c0d7a4593c4f6da647fc1b33e0a49d5e9a234780141c1c3f6a8fa75c38bfb1917945ce2acf24b965287aaa2e7ee1a10b8feef26be73dafb9a451918fd7d45fb95a3f889f6131fea2e38ae64c3ecc028106dbc41e60d7353f7742e5643d90bb8d2c3cf99ea028a23f4d299c51b32e86e0a416adf98351085f2ede96eeb57a8b879b2d7237e648cc1f356c4070247f155ce698ee64667407a5d194f87c009a0bd6298333d40922effd8cce37924bc0b8e9219e503aadaf26557fb1907c7ca48cdffbaae9aa1661ec4892a689621ba3617f0c1ab50c636c96adf4bc5f8c12caa5874476af74a296b9e85430b5da2f375d5e61778c0d5eebecffbebca9da0ad9985297f3bed21d01052681b538f982437367adfc7d5fce4e4682573f5c9939fc80bd68234806816233d140fc961c00485addf6fa13732ce88034d8448d1e01d0c1a7ee40f88e4082baa1a18c4811175f477e9a597874d3acee8d5bb15235e4e6dd3abe782fb0b0a755f2551cca0451da6608725ef06c4d58d0c973325b8b68be09f6de6f9aeed18c7b87acc6a959f3cea199ea110deeecbf50be38d3b0b53eb504bf9f0707f7657cf03499231d64fd43c229869b942dd082234d27853b7f9d1a294135aa828418aec44fc90d976131fcbb3ca8b7cecbbf0824b0083cf521c8aca3af315636c3c75eb8693af2561cc97591ffdb1212072e75bcd5b2348f704dfc2af115c41ab04415c5fbf2a390da8950c543b18036284d0fd474c8e2abc7336e3daa623e0f6fa0614234890b39ba4bc62ff1ec8d1ef9bc1b2d238731e2424facf71c9f6a1e3bbc624fb27c9a1c7dde9ab4352737c249f42622305d2e8bb18c124395bd127fe1384b07128ab62de5608adf0cd751766186e804d320adad63b91d35ffbffd759a2e3e2c78b283a0737878edcda7e25cc8b550b7c79672c806d7d03b8ae77a7a435ae7917aaf015eedbb57fd446219692ab9b8019cbf4865149aead85baf9ae41e0061c3a98789a5d617ba32acedbe564e0e6a9fa550b43c8e6426504c3da56e1068225ed5cd5efef6b610b3b5bc9fbc32b9f6523e76d88494bdd7c61c8cb4d5cc7bf40373e98fb05dd8eb730fa30ab9b43c3e0619012df7a22c5503cec3a2e0a3169f69c7e36d71634583ed41cdf31063cb4f6adad7d03e78575b386b2fcfe265f6330ae2ebe92e48de02a5627c9d0e8383a4b2ddb82a99edeaa71d0fdcba5418eddfc6192bea2b0917df1d1614ba17252b3a93d55956916520c25bb7f57c7589593efe454f97d59b01363c92cad1e2a1fde4684c010e2ff23ca43442d644b4bc465876f4b3c5d98bc2288776881568dab1af8c805774b619a53e229e6f864df066fdf5bde0fa425edb438f0323486186c1f110729497f8b6779be9bfe5f928d5f883a80291758a3d9e1c812cd40c9be0afee3bccc4ab7f1379200ec7e4fd73453c2c476b3d459ad72e55607a26aa38c5c3cfe4ebd50c29e982915901ba579f192266f5db6d83d7d72af29fb70379bb3bafdb8a5bf4cedff15e46a6083c0634567127b01b76d6eae1a3e0a2025d53439bb725a30e7d66f677ef89dca240569e0b59278ae20e08fea86325a12e696f9203c98b51f8cab01fff659cb8d61d91a3849b0d72ae1bbf02be4337e6180fe7930f494a4daae301218c5f5b6d0c1fa2b4de1829d6de79e673c8e9a97189c9c9a09b7ec82a8227520a05d5432609c054440286a458e1f92655fed11717b8b7dc6ec45e1f6fd54ec978054c53f1e7f1c0581f58885d4b348d51b40008bd98f847b5fd83d47e9d8a9bbc8113c06804f14d6f46dbd18f032f95835e7a00d0f6a632404b86b728b906ce7916b8d86ee12038caf78dd210fd418480b9a7a4f93285e72487ed3654428a4a3d2987160b38f4a39312a0d6457092bfc15578de54b4b612ba875e938feb50f56a6d45e3d339d852d17ed539897f872ce667c865b13f9db216de09c258a25e9ecedc3bb2b7948240221e8a53720f8683fafaffa93fe4fc9d0c7d5618cfe15b778d728af865ae7ecb3f2da55c3d6f326bfe30b5e9c15057c65cd568c3f6a6049df1f36d9a5dd89ff471017b25295506690dc8b2ca517a4f842603aa9b448e36327dbedd9ccc049034158376d0dcd824bffe571027eae9c02ff05b194ea75b55aa2d1f0ff9aa76081835151d2936a03be03b3edcf009ed3700212232f436e9884dfc5e3803df5565eb953290637a561f7364157edda5bff2ccb83eab46f539d90ffc3872df8381d47a1103af63bc6222fe722d8549c60ce1c1ae1943e0178d9920e2ddf0d340fb48abe5985daa240cef6e1ce6e404887193efac81be3340a90738f558f9841b3c6fdac785e4623139a9218d030e8239354c44ab55c9bcc945c5353f26d37e7be2cb348b9accb7af06008ddd24787777bb775396bba7837aef590c7a387d2fa5f60f035b236963fa94ad2fbfa3866f736611330c8fb96578e4ecb2a041c86c8fc8dab29efc93bb986d43f167c6d8214612377287435b709ede1715925aed0bbdea45f29e689992cce280bd11c2fe22478918601a062416a253623250cbdcbce31f192079bf3caba149b76fe1fe7447a086be75969c122096036bcf01093039162c6eae4253b0ec950c06bec010e69374a96a20b9ccc3ddafdeb14774ceb884a94041fe6e18bca67896efd836af829668ffe7064fcabe3557faf5787a83ea4938d1726bf218d4adceb4b6d0d3cb80a8d62a66d6eaef34820acbfc8ef800bda8ef195ce1173755ac31feb3e995dacc8afa2dc5ce0da9d3673f42f706c2bca163529195ea48ad7ac8d3ae5e0fb601ec9320b452226017fe8a975e8f8dfaec80e6fbd55fb82d7e42da3b8e7100a883b4e6f4266b51c528a67665eab49b32b2bd24e035453242ceabac2f29fb72fbb80baad5e818a9d8f43a544087a6bc75aa0834a106f458c786004376b04b762889bb240e7b37ca9578860e7ca059e68dcffb15d24d7460afb417dd5d6dda4c36f2417b89ad36a1f44c43ebdf51e65e7e458452666eb76c28c991b82eba329179400006a54f026442153f5197a0f89da25c03ac285317af05e46bfad0c52f36dd749fd14cc8e54f75e433f4a990f3aabce02ee557a7008c210366e5204cf8aef2a4732bc10224a2b875b4408386756870719fd76e4599a20306361986213b24ecf3806fa70afb99b1b1344a74fc47838485e07735f7b6fcc4ec1c608d187e5d59e84c5e4d742817d2a2eb8c094d4d7825118cd8422903ac8f3b67546ad802abd6eb16d60734460cbd0c22ed93c72775f3137b3fa82ebbe8aa257534f616767fa9d0f3cb2c77a8a9263380a33053f8b67969373ba7acbbcc31baa740d9c8e1c2ee0dec562b7d912cf62f6a0257d239dc1510e7bd933086122a635b7a5ebf96ead1f5e0408585646bf8a24c536732b420c60474a187bd17e9b97ff903c65e69bc1b02dff2ff11185e3986f25cbf3e5f6dbb3bbd4a9503740179178fea962a88c266f7458900328eec5068d95a9565b4a0485e662d0f0acde026a046a0ea8f16aefeda28b19aa32d2b4e35a430886aa454b7c42e0010df9e285d7809bc42084cda3dd196ecdb944414def3c0c635c2c916764f49dbb38b7205412b54cac77f1456c705dd7ea53fbbad539606dcae78715edb60147cfccfe1a420f8b2580799aba7a67bc58312fdd52c592823a361085314d11ae87531bcb73e89dfb94d326a28034102b8ca33715b5db5a2afdd769ea22a4c91676662916798e854e3c0a6fa2c8ccba670ac425e8a891443ca42ea41f00855bde7ebe855aea234b84b832d470eb95836fbb5ecd323f523f3676517b908e704ec1160254b02ebd6a1663af6cc4ba2ae6b9f5c6ca12571156e9b7b88d3809ec164f6ba26ac3431549ab52665489f99831771b236fbba2ae55881df63f690c819d387b2f94617b6b8b533427e25664ae510ed869007a2c68f1f6c7adae05a5850334f806d3fcbc4f434d72e1b39a91a4de74bdfe85ca2638a9e784c3705c10e9584b1b025e435c4422e15e9734fab9b34ce61b91018c974e9f8f49729aaa606948c741c941d9dc23a28bd5134da140dd8b3a4566295bf4ae32d88e1220c3cd066ceee0876f9f0791eff9b6dd70e178419d40713016c9c8a1aa535be230daf1f67a692c082bd3fb4ffc8634acead6925bf04b01552bc700527b298e20bc6b31b783fe2fde06effc8df5b9de9677bba862f70eb4977b922d8a6cf229e31560373002cb056d20473538ec4b02312d19eebd040659b470c07694585aeedcb4916051a61ff2207d51a1193d3ab0becc86e87187f8f793e89646828a00cfad8e9cb4e0140baa5cc68704501a99f705d0f728b327997636a6dcf8a3d6764ba09d8f1d36d21b76ca375cba37fd2a5eb8012fb43bd3767a59c1bb7a5162e32df7cd48fe45e4a68629651021ff3ecbf024888c4f6a95949844ff6c03f50eb50089d191642475a9b6ca0fee770479872f5f605a9d47d09dd464cf3076d526f1a41f141316bb9bb79deadf6feee8750614a6840e7b697192350d3dab7432426b9666e381224b7b9340ef4c742fdcf9dd2afd7793626dc81a5196dec99f63dd45db18afa062450b879c64000fa4f502150cee6cd3f05ebef773f80643c929646b3ba5f06a7b254bebb5baa3c9a59e3974b8c5efe78568b9f2d76a05eeed5c9097ee84b32a112f82fcfa54770e9e9847c6daf43b25ed36ed5d45d6f8e9c6be8c1bb48caf46efc716d4bfceef5aef1f17f926d2ffb9f0ed574d19c8e289a471fd4999293b6620fa0a4410ed0893f2f8f0b546df6b7bc676b2ced62d56da64a6dcfe416fc3d32ee4161f36c2e0922cdf49f7de2b7039a616ab6ae1056eb602ba03a8b1d409c0b6aa8173df6b174275da1863b1055473c72e5102842a7b53290b2359f2fc945bdfcc684aee80508b2ee448264804f6fe50112bcc925413abf405ab7c661a567a4b09f9a7e56213eaf29d5a3e32573435360476e985e0a580a1eb11b769c5aec83a0d011a591a25971a119c3a8e5b30341d8726ec1f10da5be6d238269154faadf7b9d5806d6c6507c0dc027d3180ad7fc56202b3979106ae83832dd7d017db38ba9093904a6cbf33947b41340e818abc133746b6709fb66eb1c117b36845374217f3edada3e2783b5daa8175b7d65035123b0ee2f9c030173b40922bc183faab69d0dff8e5c2efd0e7b7fbaba4207d6d05a07171f881e6ffd7894f63a25c981f0ddd06c1fa14764409e4e2b0a29ca59645f61efd69f4ed938a72d3a8f729bde2bd2b2ec529c6e36262ca33f256336ba331bd40672b96ba23a3ddc7557e6c87193be6d9136d554d4fb091dc94309a851058bf7f01ea5f8e6464d0c0a053a3b3872df532578943c8167d41cc3f9ea0af316fd27040c9d227caaf2548138254068916e1038559d6926b49adb6a8bcf39f9736a4953672f4ec72c22c224d9a4b80b9d77112c1dbf4a98f15a55477e0bc5926bf1c627384c0ab4519caed6bfcfadb4aadeebf0fe8dd01141cb3adb347533a9c7ce802506998b7f74f7787df1372fb041ac786284caa678b50e54fc0dff5b16ea9a5c42572e27f89cb3b405cf54677e88ab69ceef1effc49db3b1d3cc2e469bb52eef71d7393fb0c9d1932a4340ea61b7691bd63ed3bf397447999cde9a02876fe1b2e49f138c192ea6058a72e55fe1096c3a459b10a9e10c4f26010bd0f9bfadaa188fd0f4d11d73506eb386f885152fefd744a99af77b70497ea0ef94a26339c8bcb22954b2a65632bac2ffed49b879e2c17abfede21dd21f496ae6893a6c94614e551a81cca4959126721702ed1609aa175493b82568de4d8e9bf07ede7bbe1f69b430cb216873871f8f4d7dc4fa19c1acc2e575a0dd4672e7b24cdb4d45a6ab8e667f4b490817f2e95cffb83ade23f33e2b610bf34282bd9dd8a38aa48b2c96c5548d01151d4ee9f83d837cdc6c3cbb36a669f3500166a5974da6e42a3a636130950bbf7fafb07832cfe33ccdf678a90a016b6fe34afca6c4b947bca98d0cbfa9389336db577661783905abdfa2067e7d35205559ff4123b1cc22193e8219705f5e3644246c8787f3091dade2bbd909ad2cebf6028c4f95b72971c6ac1eac063467232cb71dfbb4dfee5a0da8fedebda242836ba260bfea4a291d936879ce1d475be401f8d8a44723bf8f654679722329bdb4c2b5e14d1719f000c03059eb1aa83e5161bfa081728d724606d6f210a10d6c7fbcb4c47fa07f98553498f3895c88815aa4c91470df9342705cbcb209eb300f0de38a3746198a485d3263d7d73410a2ca26ed86ee6a5ef5bba7053d62819250867d4cc8dbd3fb0fa6a2102dbf8c3889db4256e1e6df26e56355fb85f1e984fc8b6451bb0afee91ded514081061c2b2613bad785b97749ffd48c2124ce2dc1a555c00ecf92d10a973cf9073ebd71060fc2a2b95c0a4109ca71330a4258c9b5bb63387765c0f092ed0624afc8da5d4a9473f2072760484f04c6c69c19ed61e5a2eab0e044e0ee8ee8004d0ecd58900e0c165c842e248730d3764dcf0c3850d0e8dc54a33315efccaf1c31e58d109edac36497c760bbd36b4d07a99d621c90e05172a779bd8bb86161d1c1c83a3b8f415b3e78e3c489ecd4d72f032ac946d34b95b616662c7f1bbee520c30adb94d7cf3e52f12f45afa091a8812eabab3195947e6064872a559764b4f854fbcc0b7d834db6cfef5d84ba449c3d5e15b4f523fbc357a29101fc81c5c077c23848192e3dc12b92b1560402dd376137af8a3520e4814966d1d6c0b381b2699a9a518b1e463af8588d08e2cca02c22e7f4dc2743552883238473b86efbe64e143b03eabf24459e9554a6cbefc2d0c686442ac8ec5de74d812a0ef3c36adc5c1f910b35233dfcc277d4c8dc6517b98dccb8d8ae624a7cee90b010d1b333a17b80300e92e0748119eb23b65c9497f92693215fa14c2f6c3782600b6483263a528fc02d6b927c58a850b6c15fc8de2b45b0e3d3e238116c0ad15a8eac6cc9feabb74555c4f2303f786a61e831f5ff0c09eaee3fe5a5178cc3a7a0a816cc175ebe514e048bd5a88e761c2ed26ed456fd54730bc1f2989fcd54edfc59a09805bdb7eb0b546188f1a433488a1df5ffd6cf42b8d05d5fd20b9da8f99d68a149ba1c5d464a9e41c80ccb413d091c70a66d161a4f32ce258720a8d6c264e2acedaaac4ac87c777c2572fd230bfe443cca79fa4f8a0601e9ccc41798d8a7ad48d52d75ffb28ecd9b9571877f4c218552dc19433105513c3eb8464260a64ab396adae7c76f478b8f7b10e6e8f9b3dd72326d41ff0fc2787a98025fbe4eaea9b14cecde38372224314c5abb0e48a63eece0919db72df5ea8dd7af1cf9aee4853564a2f64f8c529eedfa32f307aaf651de932d0fc130bda59fa503c68e14e7988058cb7bb06f1f84821a7bb51429b10c710ee56fa991a7f1c079bcc776c8375f0a9492f06f745e0c88c125152ce8e91920ece25187fc968e968f8469424bc2bc245eafa6cdc599e070262d2b77bcb24c81b85717f7628b6c4fc8998a97111b1640d88ea248a04b1970de52392c167f020675492f571fb94a59df48c5ab23091d51cfddb3b92b6c5be1718bd38b666f6dfca1840e0238681d2d3faa7a6a75cfbfe53608892518deb7d0c1fba9fba800dcc33f64d798934bf6dfd4da3f4c4df456a785405998a6810b5928eed3bcfa70ffa25c15d5ff6905fad0fc8c823f740a580ae013501a8806e0fbb719905423eaf6f7cd625cffb0757f7e88ea6ab25de6684f56a4e2bbaf182dc5e786c8d9a2140fbd49b0d2626f9cf380be5f298481e505e9e74171d63f8d08ea60648fe4ca437f845bbc907dbed6cbdfa09e4b941148925241a67fda59aebe54e44cc9d8edf462ec56200daa5635a0b3ceb7661b902a113e0a1482ffd90a45efea0755a50c35a425fe0a9d8f5ee488ecd3d2d4a2ce75e6d11849494c74d3ca0732ed638dbfbc861618a64624578755c4aa773d8b3d0763564a5febae4fac73c1e680afdf04881ae48a8ec49bafb884a76b6499fe394c772dc0e28b8b9bd1de0ac6eee0c803e00f8c914ed3fc6cf3b263f24f9b0a8f19061ea4c09674af3ffbf6f8ecd57369940ac65dc278b3ed38edf34079ceeb1786d55198d8bec7f742c6dbbd55ce96f209b93ed3943a1ba7ea64d3c87457c6ab6daa02023c81b882fbaa7e57a57b3198ec6a3695a04c8130eb9ea022eb854af99a31622d0571663fca3f39ca2bb879c31c8c947af713a0a15be370974a072e8d2819af0e4f3df0903df2dec8b8af2fa774b5b6eb08088e937dd78cd57adc62391f2ca45130882ab1facc15d2056e178dd0378a172c43ff9ba9cca5a570ddead4b21521111a77a20baecae1751325d3a7360ec98876a5a9ba91c77a8b4c5017256ee83109db580ab7509ae8c45506f15c59e296a542fce927ee11b59916d3d06445f523334742fb45392266816533d16b404455f3c6a69bac87799c82fc6677030ccfdf650559094b3fa114db9e2332213e8676b62376a64375c8b5161f89e48fea4b58b3b0d581063d686c5c1fbca26fe753c77714cbba0eb6f90eeb8378c663cc8f070ef9b43911b33c99228744319cad8d990484d3f3f9fef9012657742c33921789e02373f594a69909e25a33cdd17c00ed92b5b46d42c6e5b48e389f11b7073c824ac641d53b14c79f55604ac51703dbb49ccaee731c9a84360b7ff55f7c261c9e0e316b282e9796d04644323f44ca00cd3dc9889beb03559137061e894957590cad571865e43ad2ae3fe18f2e8a0c253fafce975b091d99d82873b46af948f07b6c7bc4900f2306fbc74d8087dc626cdbff2aab5bd9211d3ed25990025823b9e9ed111523088fc52d46e269a804fc7b12339862c8a58378566165692776fdca61315d1df1a286780d613967200f547cc8471035400edad05f585e0c758141bcba52266a697a56672885ee9baa552cf07b2e011f12f4a7908db074bd144c039929bc954632154d07931d8980f9fdaeca5bc6106f322fd8f2ffab0b46ba07689dff9d5a0aa12832bc889ebff8421efcc101dd3c65df4aabee1681309634fffc671d53669b9e298f742e1fdfb8cd1086eb486dbf9e8695d4962ab0206d77cdf5d8bef321ec968f60fbd1a1484c838fb1c3a32e1706e6ccdec5c9c2c3a3836003b8a245f4d081e4aac738bf799d5d843c56e416a37293116a10212244dac9cbee32dcff34f388f21417a1228a37eb4ed8b708c9c8429ea491e8b19807c63da7399399160dba5935ae74ad1531ed47b3f1b7741f1dde04572eec730b9efb855797ba8a0868675b2a463eda23822787b72df7acf9f0c0e70a4952ad6a8efc12002d1673b5fdcb62b94232b7fbf82747134c3c3e7da8d6e5cc851ef54787905f346883de720d785c489ab055e945c26ea0bda59d0c8806558d8ef2d3e0dc17b432074c076aa7d7a5d9c3e00451f9026caf110b9256252bc556898c71648f7089ba57c2a96efe517c8c1574419fa36ae195e69d0fb7797ced219583a600f9355de8c28ae3607dc49c4b2fec2fec1c25e8dd678eef7052e65b92289b1521f8c1b4de5bfcab0b3fff3150c2bb4a40142638a99c40fffc88003b71185ce6a37d11d067e64b5a3b6b995b0a4b1ec01432e91c38da07cfe2b130c18f4a59a83c11e4f2935dba8da2a1d8dc0ec255da7bf05f2da3165c3988fdbec01625e362f8ee9bbd8a06cce1ef0b43580627d26534e39c627a33b48246df8e79cbcd29f4d8fc6fc5fb04614f3ebe5820bcb5048718d86273c62c9094be45e6e568417079e8562d22a2adea21ffc48e9cea172f7680dfa4ad0dc191bdd600804c3b2b8b3b8324b47e57ae859b28abae7f6e26648aac971cc5d89e5457621bfa55f44fed99ec76ace6aa1f7430a434bbcf68133f24b00463f7fdc66089b669fa1aa1e8077638b1d134041ede5f2dd9d056e0075287836bb6ac5f7e59f17054169ed1c2747c6a4fbb68a04742edeaef40f6bf5d52ecee59f962f13d151186efab7e20c063f4369799f34b3e17cd01dfe0d24eb5963e249daac30a06952ab4c818ab7890e4eb24f9277999b9c1517c246c571e85d454232fb099b9db72f7df50df05899c9c1489dca3e0c1fbec75344d40af5c7533271641b6b5543f78eaf0ad4ab4d35256041169579f001ed959681b3292593dcaf267a54384539bbfde840ee5aedcda11c56a7a2fb286957dafcd91eea9b9ce3cc7ce009aced934515b6bf474f0bd36a9c340444707ef3ab02e9776a25e40ae94ec3e4d0d7743d568760bcb2c9f4b54739155f7a26595993c4c2eb5872e66c6bd03c8db7a4411ba3636adf63e242243749e141974a5997f1ce1bf1b7a07405058884ae89946062a1ef86d4ed02ec6abedd02839b30c348cd9ed5c3d00e373728f3bf1d436a3f319acf04a0eeb3010994e86dafc61cb1f229df6df9fff8a5d2278fc40821ac2db3fac0c4cb6751fd9f804cf4e7905c327a6a52100d58340c994a80eac64dfd1d9a74af4216f71c171240712d7f682087e3ce91d86359f040002d2272749498538e00e47962663175be1a3782b965852d27b5cda79f16ffdc63bc4c44780a796550ca4a29c909c67d2aba29e9a924168f69feafaa45f2ffa5c61b24b585fd3cde82749721401346e7da4eb146f547e330d09b4028dac16efea86cd4d67150d43990973472548c762bd566ce2542033c9a10ce85143a7effdd3542566726a355ba5fe8ecab48dfbc5b5ea76767e37dbe097ed8112e7fc62cda2fe7e8cbbd05eeb4be1ca81c29c1036b73d675356066d2134941a50ff8e317e7b6eb419aee4119087fe9a11b2bef5e2fe8d3949994e30fbc9073531762595846e354e61ca0fd402a6db69493affadbc21e99b340aa0f4ca16b82cf295d6ebc60976a5747f9182a6f9d7a19f6a69650a44175533e95348a737dcbb800ec31eff3fbb38955f7a6705929fa322357fdb66044e4b03724530e5fb1fd2a62dcb8635b2d4fe91f1c40e5136e4dbc9739645792158248690780181dad2c57ddbb05ba1448aaf79b5af3c0e493c72c3b986d84d54355056aeceec8cf6fb00456dec2b227d5110fd5c744206c19eb734431fdc0d11d95528894849755e78d19e0526b23efb5bfca1d58634dcc5e78b657c978b8d77550ca437df55a5bff573c57588f038dc5fcf0cae84dfbe10dc3a3f5eb261629374df398f3793591267636fb261e66a0d1332d1feb432763c3a1eef4dbdef6a78324056eed4dc0bb12e58e8b6dc7305fa1ea0cdecc65bdea7681edefba5c158d3aeeef6c407366f35ee75a92d766eb3d9ceecebb3f4e47d59abcbde472885d64483de737a2b3230dc192d288debde41e2adcca5c05e4f61871c35e04127f49d52dbf719557495221ed197cec6bc13e68ee43cf581d28b06d3141709f38362600c0acdf7b35ef98ffd7c2af11934a0c1ca194eb2de9070f3185fbb623add9a241ed0567c1a37f85a6c092106014c9e0565b2e437778c794b6d3a7c47b123ee12548e3543937026de2e1c9035716ff7917eb3a773e421dbc2e014a0467372a26b34987a72998c70f421b58877cdab5ca86264d9560cf159e00db0fe10df895b17a0fbcbce0b798b2e068954da606a508b6056ab93b42d012ed0a70bb686bf8f97a31c74c30f2341fa7f757679e01359fac1c3fcf524495d6c35a422a653d2d492dc5d4a42156c98d10ff70d3719b1f68b2d77c7af8a0432b7e74a65a2887329e5bf7b4fcd067fd7c1c45d4644db214d1a6607fbb712c961790f80daf0011697262d5aba38e518bbcb2819394485945a01a6aae9cd1523c34e01dce28bc10d6970877e748e81925aa7ed3e935292dab15a36f55649e2ced176cbd5ba72f371bcb8884128657a17962fae963bc6ed7dacfe31eb6555450a3a48f0f2aef9545f7910147db795d01a3c41e76012095f110385b00bae59107aaa2b2a5decfc98e654078b5309fe087c5f0f3db100ceb06fa40fca71ef83ff99117c2a57f80f67726b74d0ed93c7b2d2030aad8f01482204bfabfa8a78492468cdbce83283bcf2f55a3bbb1021aed2e9628868858658ad7edba54c8904bb2348abff2d6554f2a95506740108f323a2fec6fa2628b070af36a63e88957bd1b2611ed59c9a826502968c49a73e4efb01db318e4593d8c974f438ac60f1db4e45b03013eb66d72256e678fb5c28a5fbb57a70a250524abbf7f90ec9460e239ea28f5aa07a7855b62646f51754d41fee2f8c2794f8edbd50bbed467de63b571e5eea574bce744e739b87602bd2c4639f785aa9378684f233084c11e3aa6c42cc376acefb73b02e2bbdece7576f5c6e8bd114d53f477332b70d1483b298d62bf3a8e2ce5ab7a3bb03b208c10b0e6118e4657849943e372fad982d208d71b05dd4382169bccf5206f72f406dfe36514fc2304fae810e95cb96629ad47f8aa963dfbbf5a87885ce5a7199243648a9a0010321de12e2ecc135c551a81d9e6bf4a0f1dc1bb3dd1c697492cc70d67fef82f3e2dd0f8602bc47701496e96a2755db450941d2806af475aa66a3d4ff4ae6f37ffcd49e7a625df66d122130139ad08df5879c7287bf1c5fd19c02579a70a826c2b24c93bb523e3c07db4b9761681b79e55e85069d1c12599c8f627e076ac7dbda3e10ce9425e7e8b9298c9e795a7b11e26661111346970378dc71f91a6f0db58fba8ac83b7493bec5cb1ebba4e80de31841375fa312db97627a20ac6541dd4e97ef066ab138eb768d50ad9672e32417875bb7db978b9d9b54610ec32e826bbeab2282bfb517bcb603c7edddae9780f6614b7d56eeeb683d3e33f841ebb04790ca64fdd929fcd5991dd3e1b320ecd3a008b1385d88776be69a5d5d260555a9f2a4b61481b2b0e129f47614a16d83a14778bce4b2be7518d2ba45237bb7b3d69126011364f8e44f595edcc1b01935c7338d27e7e1237f8ae34d7a0bbf8b722c28bb365510f01fc6c2be6634e9753c9ae975a86764c632e8afd9640592b92e7a1d39c086b8cef5d04e2d29011010b50c7fb017671d90c5ac48e94a66c5e4b4d2f224fc3109fcacc1faebdd823d25bad97ac8ddbfc14f295a84435d9d4ff7e5cccea190e407b4d4801ee8802c42232a9f1f891e0395d313f1e6baa91b9907191833107c5efe6ca1c6ffd7215428e6e311b0415951012aaf28716194159378f0335c2f9f242fc8dd918132d735a436ac069b22adc57e8e6c780698b0554ba35349e166061edce96aea45c9ddbd06d90fb241a064a1f3d471728244c2ae136bb8e6c8b0d1fe2c25c21275a2a3980a18d6b702cb1f65cb97e3230780df32052d1747bcae9ff25ff2b9c395e73635447b0dcf29019609e7fed69ca48a7bae775ce282fd6231b511c551483eb2cd305e417c97583f1b0f9979b7874946fb0afc61a1ad164b669f77b26819b2b3998aeb1f2488b5d5200fec790436bfac7798f96bf1cd6a84764b24f1cf7203325a33eb772c7f61f13f59eb9103b8f6f2c8127bfb9bf91e8e35faadc752b6e542aa577984834855ae8591cd7196a88ff401623977d1ae372d741a93497d60b4a54c0bb2aabb8a07ee058eeb1fcb3b528ff24bfe3244d4c3d499eb17b52217678cc245ceff4ed6510461abb69d1a3ddbf33901b148c87e94c63035bc1ce96b858bd5d7fe3e592d3a98fbc1ed73c812ff95b59e0caffc446c29a587ec35a52a6d559b66056326eb1f9ac67c1acd7210c43aacca68c09e5f35c6243cd45c6c573ba1e89840fd95ab2d05da185455949cc23d16016c32ac0383893be31d0650770c25d4fe506f6580966152d7be6f6ff1c14b15993a3660cfc37498e8f7b92987d2fe7f22a2274272833b260714cf80b1dd169057ae1904c6656191d610c8c0c0ee7cfd47364cd2922bf084e3884035f60a3d47e1eaca92fb7b4d5ac57f8e9c88c28edac838fa0c2b818c9d5d85aefaf8a306bf556b61e522bae870265d40673d665fecfcce971fbedb5519e723c08a2aec32ff4bdc2ff5efad7ec562d7090fcdd3c28f3f5d22c60dddab425fa0366ec92431e9e9c0095ac320b0acf771e4d4d9ed0791f430bc01e142996be766ecbdede942b869a4c227c329d0992477fe091cf938adf5c8877cfad9b5baed0e6de11faa70ea74bde6afcf28e1843a1c8a51dc4a18cf8a94ea9fa72f77b20f327a22625397fbca9f4a2c6060115ef28ed754365190f321397574652f567a128aa83256b4b9b84fb5f1d751da9dc0d78b976262dceb05568f3d08c694dc1606b6c219fdbb22f830bdb123846fd673ad9bf5aa3897c986446e7579b9e1942acfb2be1f09345bfc23112be7460b78a8de1cbb192a5ee18e493bde152b57b444451764f3878c1281f302643b8f73d416bb74e688e8ade6f99a825dc5f966ade733b16dde5065bfbeda5bcb4520adea62f816d0693267c7576f59cbf0a1af3111c593af7b8e5226bba3d17ba5fff8122a6f8a56b759190fccd2a365ade3e1d09f2abdc2d0b4d89db7e23a22032a73d3cff24af2d315af48ab68533df8b70d4391b25d1969f13f6e72a3baa7f4acb2b98f492f66b46736e7a347a8c7388e59574d0d2b362aa6eac0deec27a10137e228d7449b2ce22c13c10c866bc66701b1c1a1b85df05019d91ea81bbed9fdf9d55897f9a08fca8c46e4f2d18d0f56200da6ab30bc85d89c10be0dce9c43dc4173a9a2fb1c3b174beb81d17482b5fb9182b36514cc4f30c4ff80549bd3efbed3246c7981f513a3d6a66f22f4d143066911cf7e24a8019bcb2e27289ec63ba11d1e48acbaee8825b3894b8d60ecc8129fa6de307fd1d63fa8b3c017caaf94350ebf4a76795324cbc34704b40c1bbb53302d04ff0336b33d5e967fe85c55c92e6f6f565fe0b4b714d623d7ee6e4421d285952472cce3b3030c9e64bc9164b11af5f3de67bea84f1578b147ea83bcffa2a247e6853aff133d0c934ce80a33e5c97a41c9c2c90555b05450d6c0d1b2064787ae2dc43c65a1ba86ce15073328e6762f416e41744e889b8af9f05b40666673b5e8fbabe6bd56a8cc4a4532c5b5ac530ed5ca93636409f3e34fb2f2e3bef004bca783f3bacc4065788a3bbaa499d1887b2235bcb39c92aac77bea934eaed0e68c0f18e7e23251a3b4a31696ae588555ffd0a1a84ab3e2fb6cb63b35b19526aebff761afeae89fec28ae7a2220332d59dd7871fb725b6249d6283225a8f8e806f0eb9b64f1650fc0dfbea22edbb26b45a6220fc1833cbdab849e1bccf544090a318c71cc87b45f0b9623d85279004d2fe7158caf00ea911b94d52172a12c7fbef41f9a9e3f5a0ed98fb5cac36a5743c31022b263a53e6bc83b867fd6a122ec9f541fa6ef1772f4df60ac9a765655d4252395c1f1fa736c9cec84b85ba60345fdc23d043c7b4f6f9fe05c16a69fcfeda82071fe710029c5d66214aa6efab7e536c544eebcd1a295f8ec02e6f06b9e081f05ad0f07a23931deef1ce9be7a5d04f495ad77d8c4183d6f5a9ac1a0f67aa08fdf023506bf7aafeee71c8e3fc0c1578f6b10577a7a4be81e9a25eb867c97fdcd849661d22fb906fee5acb76d594ad108dcad33026871f2ca12d0322cd872ffbc3c46bf8a16137082f9f659e013e6786ddce1e19982fc53d626b6fa6a61eaae7274d49cf7db2474d95d34a0de256b1a2703faf81f0d5e4216ca7a785272899fbdf15fa3cf107dbd5925f897167fd5ed7cf3ba12358009271432fd56282cee99d724d5b6653e5bb2344aa4781dd40a48096338a6d255249800ec9361abc44c9c534b6ff33b631f5e2de0e6b8d6c59f58ce56c948b80783a864b335c7678083a24e45bd375fd729f37930881bc9e1a4cced89c12f520dd0a8394c15d0787848237a42aa4898162f9a699cb28c57e6fbe5a8059c3c5f3d655d238d64e8f46885ac64646caf39fa6d1f8f9b6176c982941622c40b24aa22a4bd4845512e0b65b725e6e1b2a593ee54380f9cb0a21cee7ea4bf9254d6b39083b5a7373547cb79d53c76888f614a548058e30fd810b702dc6229551e58390f5702e4bb5b7b06eaefb66ee9d662ac5ba90066a25d3756a1735c62f05bdf7bdc5cb852650a2658bd7e9dc1bf8a654dcef86114d22032fe4bfc0d405ac92d5129f503e660d2c8c2006e9f082a24da4b26071a18c52866fd335051540cd409c6617abe65fe6ff24ca56adc83ac0bef10f2c0ddbfbff2263b0df4f06eed6c5237a95c7609bd58933e8a9264eac8fd19da5d65dc99225950a0cacc3e0c3b22ae772eb371d88267194b3dbcc36645d1b79b2d781e4aea3db4957b92cfa78b2cce94c8f0f3401037441d411b5633419a5f52dafdc46504e41327190dabe89b27bcece6ecd3e162e7ed4eda6a44a11de11bd1d9888b7fa265482bec5d38663290f139b55aef0c8b68b9574ccc6f5a7463de2b64a37df2777c533080838bdb1bda1aa1404aa472e4341f90fdd89b236e72857c4b376728e276d1b10be00f876779d86101ebb8e2e4d39ad0451e2a05fe68e0a4686dbe7ccb157019eb720a662591a8c4374df56a1a1d3e01aa431185c34a07d2325489ca37b8c07351909d411eeafd5e6121eace8443f263eb440ddb794efb53818af0fb4357455324c3f7c7fa3706a35016effc61c35a4fb1c75aa2002d1d2be955eae7d9628678d4bb91b1aaa8ba965bcb8953ac36f929f26ed6c2b40ae7da3ebb44095b4513abe6d4e07819b6136840654671a0878bea083b537b963ad0d361bdfdd12a365b3ff2f24567b8bf5388fe4cf23ced5f20b528721e38cb6b3919e3fb40400d7ad9c01f15e35af8867896c95a2d641562da2e62b9fdeab439aaa6a59c09451e519637e274f39c09b28b2731bb3e74ec24d4c217994c2c9c0cb4ba365b76333c100eb7aba15bcb34e8aac10d0be17bcfffc6f43a200ba4ef814ad2a89c17946516bc30eec3ccdd61501c5538311c7e1d777fb096aea696224cc4b8d7c4222f80e7015f211cc8a7633ff36847c87bb5d5bd0a54238251a97e38f8223e005b44f1088af662dae843df70d99ac06db98601162a62ccd1ed1f08deaf430ca4800af161e329c4e8d32952d3d8d0ee4dfed2c65a796a9e4738819f62705da4a26548f2b12f830d34d228b4317933833d8411eac665dc8d27da5a91353660d37a410e9203f01695565aa6b12800b8e3ef42f5d93e566c426c96e51a12a3df12ff2515a53a6940059f5c74fbaba56c1c693ae959c76ce6eb6151a6744177338a157a02f7f6bee4feb88e50d760ca08b19d78ec46c74e29bef0557e1c234bde819224579536782be279a7b4b1a844059771ffef6ce8f54f3fbbc47398943b6d53b32f4bfcbb4daf9196963cc1b04cbe2c44b385dde10d275040c04fc2ff3dee4154bdf1cfe4043bb5fc97614f4b01afb35da9dd2b40ee2b885edf0a1000d4c2fb2803a933872bb8968a54867a4334773edf4d4c842ddd89aad39021ec035eac7f657fb910205ec396f9f6f96387d37382d4d8fa9a6d877820ae93f9e97cf2528f1cceebfe563473b28e333fad534a45276b151163d074dd2b2862c2feae21d5189cc7f5b568a096ec01c0d8ab9e5c6d636604842204e0ac7ab5733256518cef856c7452d3de76619705de40bcaa095ea15ddd242c2d48c71601eb357f73171e1efd6821e4eae737063f56e479769c23196c30eb7d1b0417dff1bf2cc2c1b6afcc5119f440b7887b9dc2628e4dc5a51fbfbd1bd6f041d36bd251dda0fd1e8d50e1232b1bd628c2da8266302cfc083abaef539f95b639d6b1a62ee8af39bf442602752bae62efb660bbeb44668ea17752454d27ac3cae0275b9e0987a3580e801ba30ec1f66d58539c5288bda37cb4f2b36c660493aa284e7924b3d0aa651674e94aecececb689cbfdf7389987e3c25026d4e5ed6b3dd4355b76548f47fbf5889becfcee1ab0ed5c8d1c088c9bbf03b9f75b40e95cc5ba2fc38d2a7dcea4b71d8414116fb8bdc76143f8f0edda5471ea7eb4bb855f01f1915c479d41bc97f27f30ba5ed1263468fc42c7311f11510b06a91b1565ef6bf671bc93c21edd0f1808dc7041bc871f98d803a2455388fdceb51995ec4cb1cd4682d8783029732f324727b0dd8119a2267ac5918b1919eb14e349da5de313c329f1f61ce8ed52bd8b908d77219e50313374230fd22a31673812276e32cb92620272d772b41a353ad2afa8bdac4c2af069fcad5f4a6a4dcb324623e15b479cd56e96bc8e432d8f4a9f4427dc89b87eee20ab9454377e0d7a3667377954b79fa7dc67948dc4a78fd1fb23d5e1818120b059706352f9cbe21b002c0a6ef54a2745bf12c4a79a253832e458849f5990fa0163ac764d7aa4379ce102694dfd70787e3cc5061586c0fd2875644c270253dea2bab3d52ff3c974a93987b033c797e75c9da8e4af8bba7336aeb6d515bf0ed9aa99bf1c864129e48e59199dec77673965846b5d597f13e5a4ef5ec862ea92f4d485233ababcd03959ee7aa86ede88f9ed1df1905664240f4b09b560b44b318aa4b8132756e1cc5bd74cde3628243144968aba7eb59580103f52e0270330d88eaf9578c6df2c2600755a35872e3858c39be84caaeeb8e698f2565ccddacc637a6b0642a999de59ead71c50d1e9c9bdc2555fc1a1a4f73174c2660493e82a42de8c5524e42ef86b4f333cb37b32503ec10fcae32a9c4713c9578d334f7bc9fde377b4221f57c45a0ff3433922d8b01fb31b467fc6fd7b8c6c7818e29d286191226377db39d1efbcb20a232d897340ae69b24c519d56e1a693bc5f307ef1770b0d650d09908230366c84e1d9cdc2158e4cc003fe2b2bb25b81efcc50ae89f3dfdf9232701c6fa5b47e5d071db69a78c75533cf75ab94f2078676380a17a999dffca624c31220d8b096fec40c1e7f9b99d7ae0c88fd4670b632caecb5a2790f521e5471f17e8706e56c25f67fdfbe0c50998ffa8f73aa268dd5dfa94d15c5558834e62c382e03f9536f8a4887e7b5122aa43ee74c100b91fef1ff45fd22dd2666f5b47da449706b9d1f86869f3e2eab8d50e06dccffd1fbec73a569f78cea894e069530d08a3bd98f4dac0e0c32e93f3965bffaa7c96588c101eb65247d861ce0ba9a02bf2344d724710c8064ae4559fec7bb463ec68e1ebccf6e46635a0a015d08f86f5984b66a62070c5d25bdefb4596415e7d1bd158213591103993c65cd03ea77ace04be01a1be920f6da25196351a4da02eebc74ef4417bef2e1d40cf6058636a2610213de053ed06749528b1409048bee90bd7c5470d2e15c29b2a447f9b9af500e9add423b3c7fcf51ea21ab99e96acff867321f4e1a56d84aa557e4a66c5decc9ac0555832ce256e964b0f90deec5164a90e84ec869b4a42bf5158dedac5479dc1a79afe72324ce904d0f031728ad415322c1ed133cc3dcecbe4c6c842df5008ab17259a85e4e31f0c0b51877a881990212d0a92d6478b001db74a921298b4325b74d6befdf960590d6fb3f0f6f1375180b2618d08c82c80d4f525daf466674c5c5d88c34b0fd053198deb9f07af987853638bc72055b770bf65589cef8d376dd4b7f05dd80ccc9c5e95fe38fc286472917217908087cdc2f8bbc8cd444d603083617ed0f93cdc2740feaea8b7bc42c19493ed428074311e81839d4411a2a410a083b992a3797eb617cf2f832080d8e98063be7956bd649ccfcdfb241245987a1188d28b282c4b4ce6357af9829b4c55a057af192265cd7b1077d17dd5e1b7a64b462c9841d2a6f48a23a76018ffa9db130d2a615c0e278f0ca4a8accaea80eeac7a2a9de419fe1c02b8671cb1d3bd50e7c9b462c480bdfbb96bd36a5715eb633472ab2014764ea981d48de176b40d7fff9e1fdac7b1c8a56c2dfa1ee160c021930c7823cd6d0945ae4166aedd9c8a34a3a59dea1119bad4412aaca9ec9953d5fbec961169f6b7e2ec1e91f5e5b2a7a7b9c1461e3fb3af8bf631fcee9130003292840476b158d09451436b8dcffec18e88a57da3dcdc7cf37e8d97aa7d46b6169007e2f29514caa3883fa04e024ef77f61537bf0f307409d943fd9040bdb0aaf8c270028c63325b458d134755f73ac17850f286c09b31331f495cc7d42ec51d18e5228cf8ab1ece067f8b48ee5e30fd97604b0bdfe5037e8fe3722ebce5c111734b1bc2b0d1be3c0f7f453544067383fce0eb12fe78aa88973f6a69ad930b4c93407dd14945774742e32b6f63fbb6e1c1ee6e9813e2f9c908383a682a8b6b49f2d808e9d2eb7cdeebe0bd1d0df32fc2887b17d9080b4f22d1d620353ad94d0d7ef097ba8c206af54ded7e691327bd8592006b39e6ec97528b1dd3d60a17a10e8148e4ca1393b768ba73a70b5693619c58485f9b80ff507ff8b28c514881d72d27830b0013ca09d2c446263b47682ae7cf0961ac204e895635ffe0854801a43cf59f8eb5684d9d2519ea5566ac9c67d5391cf4b7c52d745061c9ed284a84391003995a507c16e58bb9c7c078e1892f3904b158906d358618d0592ec13fcc45adb1cc914b90d1bd48260ea0d4906f54de7d488d229711da3bcc1e0fd9b5fabfb6457d1976584b7b078fb4234547cb7aaad68d075c13220bfb98834d401b104e0d4877989059922971ce61e2105e1c1a99fbff0a6985fc46bd9b085c46598c7523d7fe6411325507fba21e5662c05d1bee7278eefe430001e3b0e6be7916a050183b7320e7ef9727a04c8f82904fec1fcccfc6a5ce40c9d57b1179d91c72b87f17ff3f17b8cf54b92d6bf6b3e85ee3ca566cc0511cc543cf73eaa00033780c13957c2a39dfb7c653b527140598a555d51631a9bf6b621f1118074fa3de4112534bf1a24d54ba4631b5da8ef670127b2182be2ce647e05bf43bc3760fdac799c50b28f117ee1e3305b207c191373bc77b7a373b242420bc94e380945c4439ebc3c3739ca28ce17fadc7d688638dff7bc253f7f791b44209f4122d08d61190d22e9d719bb3024123be1bc323a3e1dd6d9e5f8c4c40f473303bc7fcca62a20472d1ff4ba39d0f5a97a2d33c5b3893383ca47ab928e3404b75bcc00c949b98f78b4c2327de7139ffd672b915156c192597db20d98305bde783548f4d44d05c488a64780b34734c2592dd91e210439e354b8433d846b3173bd0801b674ba1df520aafde5db397be407711a23120c110261f053aba66ba9753fc1ba877fa64434da20c8a724be41afbda8097f36b725bc61df71f67b7a50d0479c4c9b1dada666af7180411fa05f2154811b125a94797464a0d66a6123842637582d3a2c4a6651ea8e9e18d9bd3eea3db40a67c2db5d442d198f41ebccf6248ce2b838dbdb6f20f41e1fb202b81bbd74a6709e014060d32920bcb6454d739635fa57b8ba4bf535cc9eceaa6d2039b97b0fb0d281e1f95e9c34e17f09d88dd87997d899a839c461df42113aca6a09e192d31ca5c849cb92b9f2fb87d44315cbb40622b85e58fd58b0b9968391526be99ac39f616bba480ff5ac12322222a08e11d1a5a37b3f65fee09930c9ebc5091b1f9daa1bf051dec9786790c6a58b2d68de04333e1b92cf2992dc7f5888a4eec92ccfd8d669bb3aaafefb1536467e07e45be6e306d19aa8459dc062387c32be2be26f277b86dd3fb19cadaf6c9106ab8d025e29c7cf174dac97a9ab5fc8feb9109cf7029792d7282f63d15c99cf07c67e8e86259495cd0fa3ad71d61af940947e47d478f888baf690d6d08cb98c0e0a6f0ceb04ab9cf37db333817d20d6a5aee361a9c45b964d7611e91ba0c97b4c230f5836e4525b77c914d137c27c54458121f23bd48ce7a7a40c77ce3690958ede1428d6fdf6b0ed555d2bc9c9429b07eac4afb8227124e6f161725465d61f71d4b92f9006148d0827b3c2f9c83fa2218e8c19f781ca53854c999a01cc0fa175b2ff68d06a7b451d2bf30464d4df775e28bbdb789b5eb706bdc918946aa8fe0f9d55c65f061157cac99de3408fbbf9540849cee8142d92ea354a39f52ab5e909cbabb2f9feafb02a6f7381aede1be31dd6dc8f47032cfe0c02dd63db1b25ccdbe2e2097aacd6b54bed8e30968900c31cee23ec44387b938af7a01d54f4dbad810dad5b3314c0039f8365388d553903a4b210c1c02bce7b22aeffa286fb8eeb747ef07a66c054f54c2c84de953ade78ba765e8b2e1f342d63dd9f1f59ce36cbcd7064a92bf2103d4d1c2173de9b24906d627418e26fcd5cb07cb595a27a2c1bce284c00df3cd39e9e93861a662458b34c295a453af7e82e4aded08e3a5ca98285f86b2a0d324174ba68e29cf8e61cc5730bd17cb9770e97f538805f6de273f67e20026561483e0ea0a331268ac9e206332475035fa9ccf1312144dacaf821df4c7c1806fb56a532b5a6670117427daed92f26c28184321c31e028e0eb7dce58d1463820f03c8beac7361bb8f16dfeb6080109b770aa2ffa82ea2ce0c4cbfc5b61c45baff1dda0ad545d616281e9cfdf323f4df1391c1159b62c95551566d21b67564404510b24e1527e261e3f3b788b38dde517977d5215163d10c16f53bfe0a9ea373063177bf9e955d4f77a303cf582e167d50d1eb2f1ed32301522ad08378971b4394f1c2b1e0dbd5a2b7b280647df122d411294cdcb285e3efb5cd12981fadd672645c6062929551ce0067f0e81f802cea08b7639bc0a8f413fa5dd5787087eb39cb3fe27ea85d2a89ea847f7b370ce97739198f3b03895b1641335a2f00c06976bbdc6ff89e7a1e2711b11d2296c7e5a5330a6c6d7c9b894c14fb6c765fed8c39f0222ddec42b202508b6999713d1f17cdc6bbeb3c4d1f553a12e3b4510e3f0f1bca8e87704359e10ebc13b224159bd476f5f974b45544b81ef4ae0dbc4ebdcb06bedb28b1f0d796e4a3de298010d76286a89fc38f3758114dbce180c3c2157f9ba7defc314fa99ac55d01ee4486df59c54d02acba7616f4fa297805788954c4118c489d12a2e6c92ee7ee75a347135cd57b684db9a0a4b4c1dbfcaac0a52ab8f11471794b557289628c2497791119477e8dbcee835f4ef6a7933e47eb43aa0be10503fb4ee6d93ac3213ea46a67f6ae88ea4bebacfd03ad84d146bbac3fb700666fe949d04bda9cd8dd8ac57cb7a20d797880b9e28619406c5e128ec48b76e59a5cd441e30b5e915428e4548c437607cbdd2528dde54e8a0fb8b315fb75a7940fa64a352aabc7a55b076b6860b91940371175949fd7a637e26f7b732d323972c0aacf6d7683b080093474268b377434346f9ce5312390af8e12751b9ffe6430fa54cf91deba23acaba26758a58ab28a94b74c47c8ad2b09e04f58c467721637cdca1a25af28d10cfdd0a135761ac113e86e7b10aeebdbaece721e11ca7be497194468726fca6ee3a5109f5b8bbedf2989ae8cca83adb6f0bccba3b18c0dc500cb754310a656757a9738d0f07c461f65d4ce30fc7d0381ede0735fc21a441c94c1fd2c7687c6e67d69d5ca2a6945eb1a782f315817e2aa065956d97c7aa133c67ae71df1e08ecccad35287929f2905d9876f8da28a6d112487d6c2d541b15d6f541fc6b4ef2d39e9b5471980b26a9eba9c888ea7f014cee430eb3b28abafb426867121eb835fc56e485458b713071bfcbd79723ec37ce0318ccdb107038fff4ef24101be5f2df7d00dbe7342da7737f8c15783bf92e9837cfc11da206c2c1cddd465deb166a1417907bdebc5fb4a2c6cd468e4e9eca2c5e50a56b61f7f769a620228266bd5c54692668b53056ee79a38ea6f6d039b6ea08d97ff8070bae3f564e63ff6fc9761ef2ee790566c0d273d76c69fb8da0c939ec1512419277b5785def11bcf7ad6f88951e411266cd935f93c19eab2d87b160a0784be6db36e0b4215b2f871d1e6129756b743535cede20b0c96f5672898ed8ab246187b62e5e3f32c258884ca6eefe0c10b5107fdf4f1444a1a2a5bfe2e9c5d19bf20435d90f8aef970850d361fd7d3072fe51a1bc3a986b3925ac6dc4dc14e2b07782484eab52ea26f1e942a64cdedbab7e2460fbd55a114530531dfa11948e08f08b417cbfd80f7ef816e32ca1317f86397decc84d36dafe36244ba83d9c37ddce2c125f986dcc8f990c9277cc84f10181f22698760276116941ea93658c1525979ff8413ab61bab33659da8f2976e7e04768cf30c473e5dc621d041f18cea5527b34a6fe5b551be77a275ffbf1347b758015a56feae4ed1463997af9c6626456f12ba654fba3eccb2e2b8c3d405ad43e4cbf52dddb1004601794d5a46724f7463b01b173d6abaa620dbcce254aaf02bdd2f902da2d9dba26aae93f08a0abe3c9d99ddb815f236f9ba0bd5f5cc11a3b64c84e5e0e84a842656217078f4e1be7771ddec32a5bc23eedac648ca1be27899a2cd8e473f1d6ea4336a32bc9a48e1818ef3a9f2b1482ef45c35c74792a8e96b785cf6e535908c513115c58592af8a1df5c45b53985fa3428142c32b29e05c20679d4ff5d806ba869f682b2556e0ef2bf4bbd065f39be7ffc6d383c16ec4bdc9c013ab703a8d3e0933d1dc5503585676dd78d73288582b2cc4a2ca8338b2f065ab186a1158e9bcb71acc7940c1f063e15b15c9657ca452a5e6897fc81804afb28996fc40a4fad286c8952690c5d058f2983a8de122d65873e1006e9b7789b87e315fbefe58b358c9e7acdc540d6b8f269c9906fef0ca7842ca5d61eee6d0cbcb05cb47e09e637309b4b058df7d0ad6fd952aa826f91b2dae2b12497deae8023a7be97bb7cce47a641a66db511ad23a9984b1fbd229010dcf49a4c7363557e67c1ee5db8ae7368e162b8e296238e222588bcfe29560260b3b8064466e740586eddcf80a9974edc7cba0204e25cd8a3f656c26a2a9d82b6336c74f2d73459db86be95c408e41780ff690b563ee28fc194242040878d5e0f9e276d98874bdfa1ef6084943a0de3800e2b3fd59d5fe3194155f1a420d4d71484658c797492f42d9b1f5cd337d7c56667ec410f0011fb9f7ec208901b6a5ad3a45a7fc4c59dd8cf84b153f7ac6b331b0bcfe117bd8638ba0adb4496bba9a611d51209de696f32d461aedb1ece38e0becee7b52a649216263baf9f405a14b65e340767f99bc3bfebecf6f5a9dc2aabe32ff2f29412b85fb0870368d24e58a7d0bfeeca601f31975e2accd57881b7b2b8e9ad0b919c41fbe5b01c042e09e2dc857c35f572a7b3fc55a3b456c202c1da7848a08a0cc08306e093fd2d655ba7accaeb8d23a19d91fab9c5ab5f4701c84f6f54656ae148734169a7116d897099e6ca079992bb9f6fe520ad86b08506b59c4277e6ea9474f0b092a0dbea42f77190ea50947d2caa66ba248b55f1f01d56a30f8b9d91967d3e679ab662cc1423e06bdd3f2870a74f9ba3d1201c2b2bc0cf0f844dc45c235f938deaa29bcae857d0240ff03729e162e203bc4d0c72e28d61833dfa7553fe21d006d04537e92239d34193f760e51be8be7016e377e40f04ec8a3830d603bbaf5a16c16adaa93d5f79c1d8f57bc4a7802f9197a654c4812e8bc26efc8a7faaa13aafda8bc4531a74ee8ea834a8d1807a8184e9924bd82c9fd3fce24089bdbcef3844ef5db90f3a180932675358c0fbe2eccd8c8c2a3bab7b5fc1e265ae3b700c350c38fe5e077ae1d99dcc1415da2dd084737ea00573b753c58e9e79229da86969d727f1f27f2b13748181ee446707f5d4434926a1074cb2e372053e56f55ccb2202bc1e109c21dd59f01f16a6ece5b9383f65eb69852b05cc93aa0f39e20fb83c7edad5ea2259f02a331e2ac5bfa1f1ce3c7fc569ace17d0a6840551b33658f93567c3cb68e8ade0953117a1c300163382236a604b6ff095715cf4915606969b1764ace22ca5572cd0906104ad85efe847b3c1dff0ec47535af7427bbd8741f45f1714f581483aea93a5e5191d65c9c390b5dccd090fe0b1b84e4fcc4c08f56efad9b7b55370932197979506bd0d84dfa3ff5759bccedad04661b2bbb368460cad2fed1956ea2ab21faf2e61460e33fd54e4363538d065fb6b145afceca8dfceadc501e6505c75565357e04c9dbea81a49272729f5cba2b3aca71616c6e8c64f6eb60e0fae7e21902df78c3b3a03f7a04dac3006d584a4e87914600a47d7fc02bca320401ac9310b8a86d84c47399908bfb654f62972cc3af4fc9050ed0686618fab8d83186ac58c7fd74d5c27125b8d2f5da70b5afd144943bea923e54669a3cb5feaeae4db5da93f164ba08308890cdcea835923266b46d6797d77f6b14559ad6707b8b1d90002c3c22790c66499bd0ccd36f294fa05e49468ea523d2ffce5a16fbd9485c3178ad877877d89e95bafbc1969d6ca6a8db89b77554613c806a2c7de43e6e44138569e04d43f42b65431719abf35cb1e77ea0fdf32921064ad0908140cd421ddf51daedc949103b19e88960ab24f86c18b1320a1d5781d4309f98fd15fe640e17c9a28306f9df52b086efd20b1e1c792bec884142af10bf09d70a113c5ce5a24def4337cbe82d12db102b6df508c9db3daae18f452a2d0b2216ecc4bfa9ad7737be4d6766c258d569b59f4f0d66de0b7276786167930646155595153650e4eac8ba215b50fdf558acb55c763a3ccb9da9491154cd7e9d1bd3773cd20c96e516f4bbf592587893c4a0ef6fcdccb24f3ae17642688b5b49e55939a5b8e54143738c09365163b3fb6c38c511e7d46973df8b08631e7cb4ab86b51595418cbf44668fc620616f28d2b17daa6219b56a2a8acf059c928a52913303750ea2fddb89f7576b5a736d14f4f4cd9126c86af4a53d3eb3e185b833520fd6e58f0cb8e9ccf980dd545a9401ae8342d1ce906ef013bf998637b8839db712d664bf80f6129bd3804daa45afd778f9baf062d3d1ee72ceee8356e2a87dac48631a880ea91c8e2c7272250785989a6a32aba99f7f48707dae6946870f521a136035f36382f28c464aaab3c08d39b93acf6dfc9c1343c9796f426d7624e0c544f517ad1fe5e44d5d20fc9e476bceb63b5b2df92193441bcc2b99ac190954fc6bb1d15a54e21efa7fd578ce7faac8f543e59d244d0cb9041ed38c3bc640a40ab4b6a59e6fc42c5e1c8637a5b2c2f8de3ecacc0bcae876b8c627ea0afd296fcb2d199c1f057b03fc0a840f417742799e2902afeb455cf9503e044f59017d0290d2e6c101f23ceedda0d8e3a896134cde06d957804821bbdb1108ff2b33062a104d18a3d2fb9c936ad7e13cf540af491215fe4ac71729852d52073463526c9e9cdc78d04e6bc04df59e9fd946c3a3aac174618757890160e988def46712fe0fc543c1ac4a9890372da2d7e3426386f6613a806fb068a88e51d776b33a149cad6803d07ca739d80fe7cda4fba4690bbefe24ef4463b8a2f0de624f9750b6cadfef17dcd02830dd21d9239ba6b0a8660940089545aef85753d9019d1d6055891ef88a15bb9756bafd2737f26dcd4b2588c1f203ff5fc718814e1e9a10820a28a032e3e417af7d3329efea41c624a40326afe2b349d5311f729351626a82d3f4d9f9244be07212b318aa064d7eaa6b7be7dcea1362f98a685e57545a1535ed8f1c58478d1911ed82294f0674f939b596a1e530ee8bcba2f62179c98985d13d4bbc79ae78424c9fe1c8dfd7cb5f851a79499cf10815fa8ecbb3a2d8bf1fb30ee9a37d0b5ef0311d57a774df2dcd5be0577465d60f583d9a28e60de47431c0beb18a5d3c5a336f25c508fec5b8d0bec85df52502e8b80bc901ad1266e11e27947b9ccfc776fb7355953c3ec4c29a9e6502a32fc1f2a39e515aa235efdf11de36e4c03211fb2b808d78ea962fb036aff929616d66873a2a70a82288c961e49201f1090de82bab6617e323568fdd561544b8fc61b7f63cf70d891fbd8baa2cc20b284c116a0c97a9265e2e1de0265e44a098fd4c51a6b723918cf8e11bf24fee1f5bffd4f5754107a5576c5483a30c4131c42ded681981d00d731b57f302f7efa0bfb26e2c75eb8599e0e77490b22e565c4bfe5d5d58ba0d7b11e597965b83b2a41fc9421e10f756f51b4253204d162f449044548db21a5db6bb6164f669d45f6f74e67c0b1efe687143f32988b7f8dd1214ec5217f2d1b0aa3bbf56894a56ab9c831ceb61aee1c7ef0f8f49e95fb97285cd4e5f52274e686cecf10890018eba979e2889816a4a5daede827884b714070c9f5617f73a01e698128854adc3a1d8b7d98d5ff74f342cc031084e769267cde3eac768b9cbe2dea7f651557993ec7346f170c07e925a9eb7bb946255cadea490280f8b92ab86fb16bfc0d7429f2f7c76658de9bc716f9285af9372b26d282d3e8ca1a700d6e1af69e1dbf71c0a8edc281c2ae543ae7630785bba2490965b17440d9c6b9232a0a19b81daf3b29e35eed6bdc3617ce05a1bdccf205bd922f7b84f2bd322d5cf9d65c6302de3f7093c13b694b83ccfee7e7da70d010ec33cb300cd43be9bd17920632399ac9e758fcf7bb9b52bd76e869f63ed46a87bb4bf51f91e149e42408a7349c442e3321396dda5277d6074791944241881809bf2c62959fe38a7795a235b8a6e95aa1317546a414b8d50fd0be42f9c040b6a78a45c001c9377e2a3698fc0fd6d59bc3f1b1ccf2422bbba771cd9cf2980d5263c2ff84c9efb107a4caeb81e37e765e24fff149ae43640911d46ff88f9ed465f32a8367a9a433d6de1c290503a986b202c094dd2d04b297a0d8919edc60710d8467e1a4e9379f991f3b80d47baa99f6a8278caf15437ba1771f638342805191c629ed34e9ad06bfc0b41bca46373b7721308a3f26d7ae44c462998628119ae932a1b4d8ef0a8fca4adf2d4226eaad3dcb7b682086bd31ce85eac0913bb14069dfdbb768b9b0b9926cff09cf39c825cf799c855a3c0a1b56b39fc54aae0161609aa1b24fa40897aa088dbb4128d5e40a30ec3eb3b2ca5199ffb06f96d3a96d028b1a93be5586be3563be4a22e7b25d991c7861dbdc7735f014b34a667d29eec4cee0581f617bbddeece9e1ba48f12a61459e6d3729c056779b27356612c92edb012a602b54e1d2ceb7ce8c0eddbf3c9088ba4c1b23b3194e12696fccc1b0f6ade891a4bf2c8457925fb26a0855d8e7d20c5a89832939ef2e1d573ae5a788065bfeaf52b9e5d5a9a63a741567a5d494e4f557ae37e863b6ec33c31b7bc2a41d31dd7a97c74c40b67c8c39eaa1df05bc24019965f0bed75cf6a02eba2f619a24a9b25b6423905e90c7a1dbe4d491fc944aa04f0a8f352b87a7ab68ec8e57beff4f1ef0284afd82ea119b1aa0ff1b5bff50c023696ad943200d2423c7c46644bd927c00dfc20fb21bab80073317f498c17b36d847f7f839aa45807ead528b80c8eb21ac845b22fb4db4bb74d90dcbeb82a24280462749637fad8c68dcd25df98c6211184450a159c149d19bfd9ec011ec40b60c8efd1346cf5ba73af95c5d1a08d2ae917f6bd023e46a731c71009a931aa99de6624acaa7fd6842fe1072a610e07d61c6a575e8f3550dd9eb17fe5a1ac888d1a06a2121de5eadae7cacf565e6e9fa3dac8e0796000f016eaf086ebd79fb81cb163c2cced78653b9685bd994e96db7df05413bb629c0d1a5eafa7784af2d86b0c58d9e6c0a69791f3bec1cf824a52bd2118cd37fe7ca9d67d2ef8d797ef16e9424232f10ec0950761a53abcca56d5c73e51f87210497c35501dce9497fafa7771b596cee9ebd22395e20c562f742aeb886394a1ebbc93e3d36bbcd3920f75b75e0910ce7076668aeeaaf67385f66df32da325596b52a008fd9c610ba03d28a06ffae18de529156348a5c0ff85e2f3820669fc8b6c1d47718a6daf65df772e0da93e7c9aa1148aee6b12340b471a2970a0489a62ee86f9b5ec67f34541020106b97b84630f11d3969bcac0bd172f934da7214c5aa6688ccab0f76c4d537e25558da354d3a46b9734cec744922f4ed07c729e6e00e6a23dfc8f5bedc6b4166ee1a5ae0283df50b87350111e6e6b8628d194ad7b6f73aa1649668441e7a1d8e0014fad334d8d6f1585e3850a4adca5a0800e30ce1abdecff3b800fa5d2702dc4bef6848e1303ba3fd50ef07fc1fcf2e6fb2543d0ed1cd5a807e47e6c684b7d0157e31158b18948ae39ac3d9df38a5abc889d3865494f74fe2efc9f1cffa8fc45ee5b992f6caf6583a12aacdc507a5cf5902d810c8b16ac45fa0c0a8014d5e45bd14c01d6930b04c23f3c10c54c133502d598218b06b519b9e5090b14171570003c3f825620678032ac560d4f44b900fad50ae61ab658f8b404e6f28f79e28d62c90cd2cd3d3cd51f6f26f91bdcb5b0e6e0b699d5eb9f2f17170397ad5abee13222d35fcb624cb4df1f726863b1287f841ff259632dcdb993674419f45ddd820dfe152b4367c0b0dbf159126b0c138df0e38a766b99837df56b906dd90b0b9cd995a94a80e0f442446980b74d7377852467709ac1a655fdc15a03d639d92387850538a8870910df5ec1aafde39241937f1ec78e500f26db6e3b0fb8b53dec1a979375f69eb106750f6ac4345a72c4aae731b46fb142924bcca299ac5a3e84ce2cfdf4ba2e3b43577f701da4c104a4dd879face1a48fe2915440e128972b4bf35ed0136f3830f3eb3f0acfb19578964ac632155b88710b6c9debefd7aa634db1526524ab3ca07dac3447ace7a69c6a0adf35c472ef4763c0b2c901f57dd2cdd8d62840863551cec7c865fd34803db03f8e345e3d2322f27a2297ea3cc8192b5cf6e8dc2d5f43582aa223a606be06446289a04b9a7dcc0fc324b16e1c460ff712f6ab52d8ab407aa1355d6c5b37e5b2c1652c7d49b9773e6098e70bba67f6cc29b944c86bf93eaf8095d1704d1a7fa7e60260597b27a8510b0acd2aec86ded1c58faf02ca48ac216555ef7e5e92cafa9b08a1af3abfc2c5e66364aa85d97cb2282e1a2693fd87ded67ccd7eecf622a46409d5f94c16da8dd6441f65c66c3d003eb4e0a6fef9678cc462bccf27519e392a2e4a45c624e2f70d97af28f6f1b9d109806a63e5003b4ca7fe656ee7385dec503db0c451fe8d5f2c66bd73a331e12a68f14ae8f2603f5b3638c29b626d8e772b8e4bf724f4ab87c822749f6591c909626e7c39c99e476a4fb19deb14d19bdb5e8590da0895c19763354581d45537d7e7c922be8f1ae828fc06c7d1e7d09619e6b61220ae4493d0c560955dbd8064bbba538890e1283d8e6d0d6853674f2bf384b95c4f36d142ac1e088fbbcbadb45d5c4417f0061a3ddf8a39114bf81a9dec2c968f250d66a24bcbfac1ae5a5157936f6a48cc7b508b93c94a9d3cdd689dc51259eeea83df41a528e1561656c2511535563701dbf7929dc2cc0d753627559ce0ef486f0194930d7254bde3f465416891ee2ca0b7bacd3ecad67c259bbd69695bc5f53f7e3f0e2860d3dcd6189d671a5639dff2181003aca2c511809e245b2d136906ffb4218533fff7871f89fa2a3d070a95b546825d4e2b4fc3c661ef1a5ef30e2ee1e22d0810a283274bb70443c3dd6bdcc579fceb60a8dc50c642cce75fbfe72343e23a80086e0e7181e42413e2d7e8110db00c322bf6387aa492687e01f41acac6686bff7dbd7e2136ccce1a96a651ec1a896fb679748b979c52e8d7328d73fa7c72ed878aed91560a4faa3c2900706fa2ff3d41343ec2e4946b1acddec48bed2ba5b7a6829d8c2b0b9d7d90e817c1b43cb1bfa44a626ae1dc20df003c64ec798edc4feef5ca0c4bd834719a74d8eccf75c5313607d9738ab4bfb2dd51e6a38e868c3e39077b55c7796f44c3fb9098b90fe1cb252ae4e28087062d0160d8fc0d362da4d4aec6307b689c526fcb6974ebac236037919491c5bea0baeab9cafedc114e34d8b0b25fbc049f9ac5810fa65b102f67f34870060dfe664572ea634f546502730c3c3051f2126dd1845c4719c29b4af41c4f41e22572dad1b3dd2f6fcfcba7b3780406b748a831e962bd6199184a8065a0d339bfbee1eccfdaeedb8ddd229e920f6577758cfd82d61dc8767d285d2d50b42bf9bbc1299acb877cd09b7705870c81c489b579b51c45fcc12aeeec5455e8ef2f6687e912a4a52112d2aa0f5e94098301575b32cfa59291679d2c0006f0168a850fcab7fdde929e190eee8d6964af4a87807c13bd56f6716a302504697ddc8ee05e9c77e5970b7d29eef480ed0405351bdddb2f70924face02ba9576278adc6b2a830fbc867883fbf35070782079953fdf6d4741441b46283c6c426d2fbf5f3380ae147638b5096e40c694185057d58b376138579000f4386b95338568c1a2c36c037f822086ab0159021c1fd2948b095683369ad380433a1b587ce21e4ad5f99fb1aa86fc5846b9a611f629111659154ca303f7c0eca57ef1607b51381babffe5c334175c178f8595653cbeaa23ed2c3d0592168f474987f2af3ca78d0e88e9686db75fcf309fe16b634b6af0d547a700664f81f4ace2fae29bb990ea9c5d073b3af5cfb3ea9c96432d13b4124d17690b563545436a2921ab993064610f6be5dc2c74e9c488bfd48398fcbca249a5cc5e4b3117ca2572ef90d8ae744a6cfc19cf133d5da8b01abc6b71a0532df3490f0c0852b2770fd41fe459645ecabdee5b92c7c7df15d26798a37fc3a34a9f6a3610cacdd9d02dd4e1edd0200dfc8ff279f0a95ee81e81ee155178a6f63b2e30aad4553aee46c4348bf81d114d33cba9f8f49094002da90fde94f9748cc0ad0e8714ab2b67cea9617af12114f3cde23c71dd284e15acfed96e21c8b45136606eac1ecbcabdff131a25d70ea3c0a29fcf4109f653667ae713e5903151df936abc72771eb2d55216c3fad2bc916ba7b4c83f609a824a3b3d474dbd7123a7ac1f6377dc9c45b88a0ac5274764e2a931682955743cc96675748dce4d5ac79dfa7397626bc2cf79d60414dbcc2d839058e9cf0c8d965c518dfe4f12abeb0e0bbfa88e864ed0b970b6641c707bb580fdd9e6a77f0daf290ec0eddf64aed95c24a31e8bda22dcee34e910a4b54900c1016efe230c66a8e81f5a4c44540edc5a3c1c141bb79111fef0b49aa7aa8d159522aa4ca7bf2f6f5e9890fc896a0df5d9e57981700abf1b051ee4a8f7cfda478a1b3b062c84bde945436a0a9d2ff52dd8b0a0e16a4755523ffa1948a0ef3a0493510be51af0b5d3a0f20ee8e105dfd37da0ae3fab49b8c81e6d25f180eac150299c98bd1af89311b4c7dd0620e5770da6d1fc8b16fac87ed95f6a39db91e99052e38ac196657d929bc2f41db2babc57bdfef26d29f49559fe944532ed232e0385e060a0db019188935f31b83c6d7b9d16089a480f0f8ba96828d70c5cb038c55e6804d748682991925b8a71d4628bd5af784413febe64e0debb602ee4fb355ee0894ec3abf8973d729d47d4fe87f3c8f3d5697444244a8c5c2e7b140fd875b104e8cc24e65b08c8574d90148fb21565bec237e1cdd4569aecec64175ae2308e465e8a7b7426c622c1f8ab14b3ff93bffea3905c1629a05f86520a2efad5cb24965102ebea09c16971039cfa05787f3b82d224bd597d6cbea2095b165fa00ace0c880cef512d4308ca110cedea042026a8a42fe8d8e43200f9d534e95220ab29a144394943d9aeabb13c4dee0004888de4e9dff16d423cf4349d4e47e4c4178f8f39abd334f0844ffd8ec9e09ca8665149f2709fcebd9632bb197eafca70ba7c4ab26c6ce805e310e9bc60ce1559a2b42464d7d2909f326c07caa14650bb79a5f8dbc5b9cb00fe83a4ace7540eb5f026aed2dfa668f30daf3775a3e17f0083e82e9eaef337e591c09137c565d0342a15e1e3e1a6d4e4c8b868c968ad3fb6b0403ca75981c9bc9fdcd0d1d688ddcd5b9f9269859e94c1c871aef729bbedc8299217579e1a1af83e4eaeb4d785657427799d2be9aaee0f4d878ccafe1e7456ce4455ae02b455ffc36a67725c528e37b986d1eb78dd814efdd54e75979fc62da2d3643835edf2c2f24bcd154cf7f93e3471d63402a4ffe878d6d9929410839c01c499a00ace877ebebb4f59e4ca840452b5c8d25248806b636c036023adc0291435d1d88e161f3e25d2a00bc645f42a95f6c7018c980439eac244ab653da431851ff290ba228a70678392472f538bd4de4ad1b99d121cfad91e896488929058be85c5fb8b4cc30d1c3376f5cb016d68b4cc80d942652e5c904f8b910070ed5c9de47c225cc66807584a1cf4400aa47989cbdfb5247801d4f2fe39832e5ab4197a7ab33edc05244d73be6019978ae71cfade067528948b41e6acdc4cc28d743b0b9eb2d098aad6bb9c3a32b214b16cdbcdd228c3e95ff3876ef38ff6413c8dce60985b78b67b9b74f6f04cfeeff32b71d8cee9ceb3f4273cd9b3e08952501bcfeb086e515c1d1be90896000ddbdc1091cd6d393dea0dae8af62bca67cfe2c52fe5f067c12c1f6490183cb0e67d7113bbcf0f30fcffb196fd389c951c1c20d0d8fdb81d9d1465e32747fa2281f19d81e643b948dca6655de8115319a01fc4226010852902669af4a6e52dfe036b1120744acd84e3361c6d3014d7dbd2eafdd1f84a8b039953878a1cac1c8bb933d14608feb2488b0287e2e647e1442f319a09452bf34ab5bfd0c80bdb2d0df7ab89c74236710c51732a37705dea374ecd73de8b920fd2c97d7dfe4d4c8866109e89a034132914927c01785311f053bbf5f7222779c5760d5f8a1b11e963f7755424e5441fe0ab87cdd3d9a80613e304084232fa2da598b8676e6eefb4c675c2fedff3ff7316c13ed10049f59967d0cd034826a660880d00765c3a4e381d20d6145be65bd9f6348010c865038b53f0097ef5b125a2f0a35a005b5202bc3da1265c6c1414053ff322e7cc3c1c6007581593d30805d863b870b94bbd376ceab42669a28a95c95dd8fae2c6646b078467be003dfb57bec4bb9f4d4e7e918933f1b530e933d119a5627e7460ba96e2dec6f1d877500757e2a07bfc56dcb5cedc48a95c3d2b60d743266cb72e8077955718718702891e76f0c69c15ec638802947665042124d789641c8daee4513a7a7190242f9959ec4fd5aa7d0d97da20491e5faf4c3424cd10a7cb6abeac5f9231c304ef750e5ebfdbaf02d32309e535114370f2748d3129533f8637e08cafcb344313d13b8edeb08a71e4184ee1c8e12716df13aeb0a3fe29aa070788bf48cc4aa676473f12fea77c1129dce2151e45fbf73f4293f5d22f4490939a2f0c38195b09c36da1de7417e2af205cfa984c1fe836f394a4f76b3c64fef18663b4ffc3500c6a716699a6663d3624781dcbed74bab193ddf3631491b5014fa8a09b11d97970ffb1099aba97b90e4d090a8817fa3d1d907c3f2096ea6ae6fcfde0d36fbe59269c05c88f7bc5bd4dc6e89f1c4952b4e10fb07839116aca94125d1c11f483520969b6cf996c911f8e3c5150303ecebe33fe943d40e63d0bd27730fcc423017cae5c8de16d5f861aed96676724b460ef829a287e79eeaa8a244c685105ed19a253f8c508459e8039454e649784800e0416a01ee51121aa63b54fe9a214547af886c3eb49131ca17a9a1a73670953aca24111e25588bf81e27db4b42e677ca27414b10237c4abc6ba19c453dfc90e238f965e827f69490af2b1f755ec222566c3e071cdffb4ced7778f7672a96e64cd3866f4cf0bd6f957e8f8288e97b61c326a9b4db960a85def55c71daeebc805ac7eaca2dc19178e55466c2fd8e3b2eb2e9f7a58d91f94c99dd00ed625ca988a39b1bf536ebd835a66e9dde8e5321ac900aa673d1bcc59ad222375f2cc937a7fe5153960219de308a47fa1b66e132fc89bb1c5e48e2f96904f3534fdbb439fe2ce3e48449ba85576fcf83260369591e9675d18a316882c7241f4786dbf3577192bffedfec0b1890e91cf7a49eb086ca8e26213c5b7c13551a69ae50ebbf8711294f99899d8375d9f9b6707f68e0e591a427fa178d0c52149d64669e7eadde06d2ab96504fb7a84fbc555017197a5706d8f2ae0757d5dca14bc08911f2006fe1f9113490e7105dae9855eed888bf53d0a76e89eaf3d7ef38e581494f05e451c4e233f904830e312715d51bad23fb033e0fabf03fc505c533a72a1eabe89ef29175e6aba19aa1702c4e3dca0a7bbdf67247b80441e1849aea4a8b6dc100a351a6b9473a7a37e565eadcd8ecdad69d898557879f0c45dd09fb64f3901c505d26e61c50ebcec1482587aa3e9ae23ce7cf2dbf146d97bd5a8faae980b757c8ed0bb6098726bc0857db6a0c81e84baaabadd3514949fd1366f04f2ec754729def1eb852773b3383b0226438f9ffe350cdec31ac184ab24283ae018e3cb6652a2d26c08440b16d5227988461bf9c4ed1b40d668510ee9a6fd66eb8cc887cc01a5dc0bae2b27d92a91ca93ac7623167fbef80003ab2130ea131a765e93abfa0b4a7f79bf438a3324f9de4bfcd3ac042c499d9a114b2daac1248e52e4e82010814975412d73e4428c236166d323d0254e811e01accbfb316420de2cb593de0313bb3503029304839fd34e76dd4355bdc37f3ef9be521e5a58d5caae8f6debf315b4b21216143cf6bb01b55dde586981f2f659845ee95c98783f439b528c9ab92699e1191932cdacdc39bf2e7df0e78317c347168b3f095c360e02cc3da2df4b44d13e296295962b45ef53e2324655516aa9679b02bba7605b84101a2102496ab71bfb8acc557a85eda1fd70110b58c287c511889367e2eba07e4234937ab0d60db7e280e47807e455365a81d454f84e2a9c7ea933dc57e0fdfdf02b3d69e50ff7662154084711a6ca24e371a1af7b881d9d50704d564dbcdc6be1a09ca60a5255fb0663b23028cbbe04262394844da5dd741ce6f221d902fdbceeedea2d333a2eb3f5e670816799ffe5a29e9bfb57ea22c01e122f8d88fe026161d1879bf060c45d2207be90da03fda7d2ecd24cccd2d31291c94c4719d16ec3d33a2d9328e28965fe45101b9154f7b67a56cdd174ef84cf22c9b215fd23482bdc67e97b1d0b5448adfaf1637f9c9f0d447df6c0377988431f47a4ebbd19039bf59353db47748d217aaececb74a09ae814552498d4bc0d988ba015cc39d6af86ef3778f7c988c01b7fd79b7c637540312ce4dd3d5a9d254a7c9a5b36ba959630be186d69d2b30760e3fa5c3b95762e20fef0a6a445754eddd036bb25e10296a535bb62d9b583d46ad90e0574b5fa780abe75e4ebd84495b4a1865f64171931d597c5f27d42371900c0d96de7c7b528581cc5e04d6560c5d11cd7117bf694a38c6d8a74299b5c2cebdce9fbcdac9d15fc5ff102b5f6755ee37bbbf1cc6c4a24fe40c2a102b2e698e9674e256c202e44a7ca2adfc2b4aa8f9ffaf255e7b61368921b566e43ebd45d13c2e6e66b57792bac755153436afb4f26e8927b35f396c0b7c20226222d31016ca634f5a4e532e9995107e804e6f302a4bd3590e9d90d55e1aa99326eac55e22c8caa8b08c8764234cf66d53fdd22c9fb36af09bb8cb0bac9494e126caf93f3234878308952b5dfae21dc71f70b102023cb438ea9cb411ae5b6375f09834115d36d2c11e28855010102313e8988cfe0f07a2ecedd2747cdc43518292ac6af9d9833ff815f2d0a13eef541ff6bde7905de6c93fcda0bd57a06df27a9b6d37f1f9da036ff1aea5a7709851598513bd99c1e594cb96c1e1f71883e27796b286b9aba7f10084f0478f4fc8b681e12f9383776022d88d54eb8b7579d31cc502373e49bf06db76391e0a64c4abd1031e6f9e8078ad9d9940d06412055b44d366b5d08c3fed7bc79e3c7283c09a8b37cd7ac21bd8b644a17ed23058c1892e321729156ff59ed74eb85f0f1946d6bac0d6f96eaef6fd8f22ec45a9c17292837fbef3908ed2e739b3ee4cba26d5ca1326d0cf9be347929eeebbd7f7ce123d454723c120308479aa65fe7a4041a5b1ebc61984fa1eb208d762634df049d53ad947b3f6ec7a549871488e6fd90f48ebed3e0bb7df0517cf7ea59e5a3a87a2022e059771d0eb7f85a24518261bf64a4d5a21e4bf6fc6c9ac9f5bc7147f2486b5d601f5a796912d695f4953b91963ce661f1fd332a4016cd0130c24781168338b700b0d399ee2a8c1cc13003b0a68ece6d0704807cc222a691634b38e4d982fea7b7ccbf459b79a35e49fc593d9e7160d4bd09e33be8fe111f01f15d190a5887c1a0abe043994e94711bbd7c299f591118a26f06ef09df30a84c6bd8205d900a0d5c326cb09332f5fddea388a336bd32f05b746483d21aeed2364916e74bebb9a3a622e62d5d678b45706f0a7576e49813ea0ea069c02a384ab9e7b0126e9432c8e4f78347f37a8d4dc1b69d97e5c68b9965d2cf8b124f1baf01b897c5f8f5dfd54bd1b1d43541bd28cf76b3f93efc8cc0b1b6fae630dbb5629d8cf38af045a3cff1de47fbb579c1c23a2f2da04d79ce9a1e5a42003e5efa44ed52a415d536e4c52cac5f6ae44962dcf574777909faae5a4e834271bcdb915048157cf74a909d5052b90da25046dec79480bdcbdc6cfd810458313800292c4239972451f464a82d7fe0e4df18c05a0dd112a5f1ed727c63eede3535c91d017789eebd4ff5e4ba32fc99b48c54f37dde15a7eb696ac5a234d28c89fc28a5cff6169afb9e73e4964437abb36c3ed305196efd7488dbd236521d86a94e33e4acece3ee392a53ddccfb79e573e9daef3a3715a97af446228e413aac2f8bce91e48e0bd11c5b5decd4e4b9803dd90c9c429a455451d5c424b8736c2df4de59783146a189adf9711669c653cce7edec01cc2a8d375f1d4484919e0c4bbaced7c5d4d1661ccaa0413289dc5dc9f4e4e921ec0608c0bee6a94b27b59e10f13e34b2f8377cde34b7133693e9b1b2727991677e22e97918fdc27f34eb1e50ba1471443e7bb76834a69179326e641ddb143c5d216f82441bf18c8fd542c01acf858023159d776aa1a5c129bdba83370e65881a90fbace8b86821c5b2c23cbd1ea9df2c10894423839efc9b8fa445d1263c7ee98d45ffbf7db2902c1170d33100bd8d96df5d6e78d7b3f6662322f3d620cf00a724437385bf5289fe0bd36d79776fd24b5b75142b3ee36322ebf5d9b55af2ceff80c6da4dd5bdc908513525b9a95b0c926fdc01080bcdc5672d95ae7c7a7e11b612da395cb8e4864f6753fefbeca53a384a3d1ec25c522527f2d50f333dd0cfb2aca2635ab0f77ca9846e649fcdc7b1308d100078565b7895fbbe67d6bdd828e63929a049b6fd68ac6ad4834e64facfb790b93716e59e2c188e0de074e38ac6529565c9c7d4b2c2815c5d3426fe4240226033f7424c88e7516e1ad6573e8f335712cc5e6741cf38c842b94c50539e49c7cd66a7ef64c18cbc90954a3b2cb11e7e4dbc4e74066916d1bfdb2a15f1c8130b6f96f7103a69f3600bed34a56378a33a882b9268302c336aca764eaf836b812a84726e97bfa35a4b323bd552f519d8885ad6982582c0468612b0890755f3f787af48b6864028ff4ec37d19b1ad0d021ee0c0e375bcf6f32f5a555a58973c96a2949e8672698f00dea5d196393266a69f9dde5c9ed9897e8faf4c3940d796c4b3026f1a2115643d0214fd65ce3a3bb4af4b9244722cc6a4631b75425d8b764d6c0f94bc368a4e718169e7796243c27ec9e4dfa677f8da0e0336af2e3767cc6dcaeda5ceaa345879d339cc768df4e669e6ebaefe2abb1cca7fb210eed58baa43fddf512ea8f93485eaf0283a9f1bd01bfeecdd60d82b2d613e264709d660b47fcfdbce5b37a8924f76be43fafbce6b01b1e28378a729bce0460178f425ef2d8aa6ebbd3aac8e05fce28c480a9dc44d2e2286aae43571b4a9fdcfc753635c9995cb96d7edb95dd21501ff9455207ca2161318bf0e36078f1ddd58e3ea0038f9c2ae2dbf948bd02cab58a7c9ba4bd76a7a9474e622dac1ba91dd1eba0a4f008deafe5674fe178714b0041e137dcd87b62fb2c92c25c06378a3852712a283ad2c330f8f4903b8928a771f6c3b834b8b325727659cefb70a3a08af49bf71f521570737ce6c71e8a38586cacf628293ead0dc6d2389c41858588580a2d3d59b5b7f629275b8c215235e3071475487b53e9b48da4355397ea695c0f307d5dab786a243c68372015522092996833a8099735f5ec856073ed72286b662dd06354fed18f38c7e03afced99581c8fe9f5131eed521ec2007b02188fcfff01307de8136cd4fddb0ef5be2ddaadbcf34f0a4b8192f8559fc14235be0029b7d0aac6d5707483c43cc4f3d0333a44614d87eaa390ce6bfb7711522b2f2a4504cbcf231055ae82f495e1d9c38b7dbd028ddc956af870f10c16716d14fa72e8c4899127a2b1de92cb26d3a4d94767ca22ca0d8fb75934027cab3d765dbc414ad446f5acb4bf43c8e9b38f842254ebed991ce60361e1817dd6d4ec84b382b1573149e389f5c8ced703d847a5bba495ca221a928f36e5e74177404d866642db10ed4e235ccac45e9dc84ae5785ead5803ba9a2a57f2cb755388ab30aa4c4e3c96a268a502f1734bd88eadf9bb75c9758aa966bc00869719c4c75e2782586210b324dc605cec2e11d3b930dffa1fd9fdd0c8266f4e0c3438e9a071524424b2c771d600a897cad64067cee5ca1970fbc4466a3f55d23f1ddf2cb5d5a6f68f25f27f6597028f56c4227adc9bcdd25355f11066969b12f504a18133169e05bd188aa3a91652bfc3d68904f219c78dfeadf0e0bbc9b4e36909d9251a10db9e5e17349eb2c697ab88b827c35e17019df6737b6f0a0206e479bcd7cbc26d5dfcc8e569922bd7825b0659eafb053262c1bbe5ff9a4cace2214249905d530057cfcfadc1c679170f5c3282905fc8ee44ff56a9eee8fe7252f2bcd26100637fbce9adf0d8cfdad07d05a6fd013f0a75d13e217a79d837da2d4626f56d6d235970db1a687e427d1aa7e39b7277777c9f7deea15cfd2ac8b7c247c4e59b8024614de905ec49ed705a30eb16b2cf29fd23b98670dc7848b1bbb0dcedb3b7c30ffa832f9c5ec4f20f1746deaa9cc8cf8c23d26fb2f42da8486947484304d9f57cddfdd02273419042afca05b530bc801396b58bb7889ea72569fa6f371f6f0afd2356f9b49d70f8377dfcae08314d41ae28775d49439e0588e1183df523f2332cc6a3a8b1a263f693cf7d27b0f5b4ddb49f19c50287ff14c1f207c6007d6993ee287e00f85d0fccca576b31af9e3c827d805c4ec0ccb3468df6aab3291d8ef37ba9a250c6a91ed7ef7eb9cde619a9c41ffae838c6a910f99f0528f94c3cfb271f0feb8a9e1b9c82e454cfacb9a27ab739dba8936f75182d76e6386bf74b660601b753e68bc4e85a01e21f68d486948b3fb4c50d3e74a363f95c5b36cd51ef3dd821a7ba4abcd1f55da24b54fdba422e26cfe8d497065769c79734c3cc66678018e1a3c3663b579d39e68b8be41c1bdef8e721ba745772c7f5699b34f62353984b02289c5c5d4e7dc7c5c2a977b04873ae803b622aaaa233a25ab4cd6a70879e7b2c111366f05637bea84c2b1f700fc7c98622624f8b3cf6054130efe0a719f06978a02b103846d33abbe5b07453a8fc08b73d530091b65287055a108a2adc4406e1c5bd0e48c5e385d3584706bd5e553be84d64415205d5dd32f516c85163089ca1a9180612d133c86c9a88eef13b6c823608a20fac7a5a2ed9c29c07491cd4b229e88d8fbe6407510bb3cb199f270c63702ae4bf3bbff448cecec142eaeede42138631e3078d3fe6309db343ead3b6df39c8d5ef5dbf36a879efbe9944b83d5bf4e671236c57286a73c34727ecce5ba6799df8968e3eb926dbc36aa15b6caf20fe1f5f1c48bdb965795fa9d9af5c5459cada924a79ff6c1440d9dfeda408a6c6b21d9e3acdc7ab2ea29c5fca83873bd4b1fba466a62ff1ed498a117a22f64e649f3c9e64c6357e6af443f013ab47ed259448f5156b9fafab629a89ed29800926345ce49dcb7dc3331b8644788018d3d4c3407cc62edd3d5605003532d29bce10c02776d653ce0d75f2f428f1f1dabb866aa39ca394949c5b952bd519260035eef6a0d33e8b33f54d28d7e6fd0059ee15b4e9c6e7a9044229dc31d345dcfa4f3a3f0e237673fe08b8fddd880a81ec04eac8e2a3e566f5f1fea52b46be10d44bdcbea5fc19c4abe9fdb2066312462f483178197be35e6d75d66473ab442b4651653149b8cb24e5c2456f6eb3b41bbb229efdd10da475dacc7b2fbc10e0d2526fa9998e60a833515bb4e51750622f01aa813f035ee6cda0eeaaaae893a3491251fe3e2d8873a3575e635336012d8ca27f54a04c8b06db2f410419c99dc06634cba9e1db7313b4385554e682dd6a503ffdccd03d17ecbb4184e4e4981c927af09811d28ac5a2cc572a4999025aea08c98f33b067958024b00ca14e7a1dff0ec4aca872d24b91c9e18ded1485f225d62220be4bc7938ef9a5462437ad8ee83e55dceda3b0b282796db65a9eb2fe66a621aec6005650eac3434763642811ce844b913b556a499f08b976b1800e90833ac0e600dbab46f103fac6cba354e266a57661d2254f48c1de48a0e9ed1a5a0b7858004b0eb1a81563a2d6423955c785907206c907994c8ea32126cdaa10456fd0c1facedc91602c4a5aece2c93e91610e6f5e1f115c40c044241a7d6675969b87c840d67e39b651b2fb81e3c26f19e4d06c2e0cbb69698b5027f66cf54d2ae44543520a20a8b6eb8c7fea2c2782756bac6e3694ab6ca80b867056653a83bbab21d3102b2831461c2400fa7b067ce63685793ff3474748b110c75a6e15e1eafa1a8d65dd053c7a2955257d0c64072814c0bce8bf156ebee29a68cdb5e27af6e8e16158ffba4a7d6b2dd0d36d0176789652e2b26588ef0bf4fa9b6f29f7fa4a0333eee2a72ab824fec114f5ca6c2b5b34fc73e8e047e8e46d19bbb51954ff3ddd6bcc6281e7fc5ba8fe454d28731969f9db21768824ca60548309abe37de5bb5489b9f6ba979b2d261cdff3e9d4b5a8232170b051f5c3c547e4a57705be0bd2931f98a0805b553a6f8e4cf453ff41f42f17c91467308c9a70f1486db33c3880eed6507a2d136b29d2f3ef3da5aa6be2005387f169f8ec2723cd01a4067aad1e11ad2a20d221949c4851ae960434781c9ada124e94ffee6680d278276035b0e473d7ea7c3daa357f18a6f613c253763fc3e3eac180d9898782bdb4053eb05e991a55c20eafc22ad7f9d8aee969ae3a5e0e709daadda542b7fc6bacd1a161e3805dd74c4a34b49aad4adc74ee8ddf5aa07f742d6038f1920ec39d71c186d1a9b16a52bb4f83f28e7ee698a6b319787cf7667ec5c83852bd4242a64198095e4e3c33a844cf25f4ac1decf9da9bae1bb011fa80b19e520d2e93f0a9066bc5be30589e08f0b167f2ceed781bfa717c2646278a6c66c9056b2b15917f1b86618ede78ed47d6a234aeb97f3be58d8ce6f5fbb6f8399c4a38b5e0439f64f7ccde79582ac0763d164aaea13153db43526f5f7d314c0743cbd5fe53881523fe157aef7d1e6ae8e316127b8f23ff0357590c094ccc276a66596718776cd493220ec4a6ad75aae90c7d5bbda17794e775d2c38fa84003b2f6d22e53ec5837aa679a00a1bfa852299ced0f502da9c00b591ed39485b6de4f1abb5c0bcd3d4802e02473d6b4076ff294c52eb000228ebe3a40f925b0613d5507c03c14fabe20116bef092dd21772366221fbee81cd231bba5fd3b0e5aa994bf3d79ddef4f1c1ce63d7f2057f00fbbf28de66c4c2f3f9c6193049e7661675554e7dcbb5c7788ef5d59d890e01a4761b76465b2ac63558427ac0bca5f19b210cb104eda55136ea80e0685e4a05d7e9cf4cb9e88c1731e977d29c6c9445aa81a2b00fcb12afd5aac5e5a495689b71bb912a4a6f04e7baef0c384cb4424b64ce419e33fc919f59f613d21388bb8a9d04efdf319d46d71c1656cbc193668544e756ba1734ba85577915dd11ad5057f63e07681e941d2f3c56d65476e467a8f1efccc6c2516bdaec1dd72c502d940d23cd2e17dc0c946602477d6effbc4565f367e0fda3d5b000bdd8c6b4138c5963a5db9345b478d6bd53d7fabcb4657651e1344150b0244c1032fac6d6399601813c11026924c3d004f90c58cc01705e191604ea42450245ffbfbbfaf4749e632db3b0163b1807f690e6697c84d6623cd5f1be528885fe4d54e01dec2312c03bb450bd34e794c2c8015e7171e64272e59eb9994d7a0030c1e1f781202806fd7c419491c8308e6b3539755746afc8a893734fb6dbf7833ffd0c9079b588a93c32968844ffaf4a656764663f32c65df9f050355ddd8c476a9dc7b625d1a0208d8457dc5f5836a16fc82f4bec2075bd692698312fcb06b0bbe2a2f57a042b93ff8cd2fe63090363806463414743b0f72ff31c23795f1b2df37dfeeed302ef6c9b2afa8280cd911d30ea4684b597bfb211c4ae2a310a51c0f49b2a3052c7b83fec5bc7a55619877b437ffb657b2c9a92b8e7705a390fa382553f5e0c95aa6aa4bf460355cdb4dcbba8aad63ce7cbcfba448c58f74174c10748ac14259cb9093e587ff024ae2292c982805be73d69addc9d5aa784b19fc0f11fcf8ef7ee50b8f972398d02fda47396fb9ebf740380b84530059c652e9efaa6893786ae4e3f09cc8fdcc3642a350b146583f6a791cf194d7fe758f9efcb0fa4feb5ddf0e6431c114aa39e3373f5d10410b3240c97e61265165a52c9b28f661a952c7088582ccd05306763829f7efae025df546858e79c1dbb2448a18361277d1c1c8c5752f648dd182cb3d3c1a935cb197cba78dc05be089a073fb53ecb2cbe4a124c2c7b4e651bfd58520cf0ef3874cc979ea95ae200e41bca7b0395105223c75d13247ae8f41355985aa1e9be9545717bc8884a64f4696e6b49666dfcc85222582b7e1af7a430bbe11a2cbeee9b56f056b6ccc09f0179c9292fd97bbb739489d8d41cacf310bcfcac83e863314dd57411d363564dd30fb02921cda559bd9718cf7bcf3d1978ad7a583b62ccc1549b8aa7fa9c1fd493542001e3516768457262c5aacc9e0a1bbff6cc251a775bc67eb50e6384faf6d9669381a2a1261b277fdb4d6d0f3a66771cb99da1da951b4c6f9e96daf78e990949de32774c19669aa02bf6022d1844f515fca2571c0912043d2f76b151007b4804909ebf2717326dc78a6138118d6fe004e0f377f81db08124ac1b108b8b0327fe9c5945e428ba915b77c27fb60c5f53f1aa5523658b83d82b66b04c17321261fb932c14b0a13c5e48db25e50e6ea810149b9d7cac0f1fbead84e11ea795271766ef9141571d106120fe54d92f610a3b71c4de3185d63025a1a9a26362a2dccb6c83c73dbc46fff10e81a6fdfdb76c04c0e878f8f82b296f71708fdb31deeb91f37a657438890e7a69d1a570399aa86a9fafdcf1f447ef048868adf746953ead72fc533989f9dd8c560132016fd4eddd83e51c5e341f3a8408440874bc882cb503a6ffe5c5812fe8f39df10e276ef03153a93373fb6f3a1a157e6541ae4d44c5cee3d61607611c74b79b96263c2fa120b4b3a853e1e7de1b9c82c579034c2ed000ebca5718d8e55457fb767a03f4c6478a0e225e8d16711120bf07d4c49995142480f89591f7aec8c4c7a4262fb28e8f4812b63f33fd223a1ea449f0a91095baf8d4919bfe46a43629698e6c6546a330941fc81d5c9aea1d415cc70f29f4347058100bc7e22575a39e21896d3141114dfee4664ca9400ed789d1f4ee5e7bfbb1e6ca89b87910fcfae63411cf42ec3afd91fa7fa174ba89abaaacd3cdb6683398ff8a5e0b23ccafc4f8b172dcad06ed1418d24f69d7c84a456bd4302913161bf89c3f58b0b321464866f30f36566ca2bab347fe37fc983687c60b476d9dac7d9be2c7393eb814e4c435b37bc00c9b4255d83e5c2ce37d0fb7e3b8aa6463e6ba4ebb7da36e09a132ee488347b310b481378ab25e2b5fc6483fe0319365f660308dac41a9bc076945e3d523d7b55625673099716a06b038737beaeb5d4bf81287bb58a778c40e072729906b387e61b0bc864e6977ca9a9ccdeceec4dc34811cb1aebdcfdc55368272d5205f4c0e57944dcf3aa153210324e77e4b5e7dc4008f823e6b313ea1aaa7e8d76b11ad235001c492641e7d0557970a3a1253805ccc9a7f7e4a5c4b115f29a0c52630fc863ced59575ed3a1c6d3f91e5a8208068f43a0cfbce6c79358eb55357c8d6cce97bedfef02669caa05956081e417b0f7a250644fd5ee8e4ba692318740f5e525c2af5de3c4a6d64eea210e3ed025eb70e529bbf422bf3b97848fe93b0adf9feb14b0417d2afc456293d7e14babbeae92d732217674d7f5e988488a19b0b7cd0c0c4b5832077cd7f105c9e6dcc3af17e1dcc3f5febe7f4ba52c4a7ef06ccf124365a78f95744ec988c69b53ffb68af2fe939a9f1e91b3ed458dd1a4946afc60c5a8d7968a481527219a890b5c817f7b2855126028d8ce56e34df86162b482cf9b2ce1cc2084d2b17b7fd797b2328db6967169f2ce466074096ecc2c9948cbbc7cd080c755b498f178d3229dae5bce51ab650445e7264119cb99456cf68333a23ca3584100cb37726b079ce5de2697c24aafe839a3934d294202df0bac2bb93255ad4bbbab6de1e20d96cd6ca80b4888c1c3a33afee49e7a773e893787be75dcb22dd8dead6cef6cb05270cbd41cb55c06eca24292a102c868303bc7cece9915eeec5e2e06ce74fce82defa451c2494c0f13d06d9eea5fe30710e275ccb5764f88414a41b7725517dcf34eb4ffa9518b155b0cee9af7690eb3caf637d8ed81ef2cc193dc0108d8cbf44245fc8757df22b47d78b719b40703ba31c31c3e3625d3151b9dfcfeda3ab669654b65c38d87f59242cb999c73cf9521a570b9f6fdcb741aa1f505b1df6c74134ee5b1c7d16768d15e004258d376c4cc0451526f838757df10e95b163c5d305a0a5ad3817924c14343deaa9bcaeea8f055047520d6710cbd06deae60d6b87ad1f263c68e1a01c681934c73d7d3d4c1f62a864748890e478b370bc11de5268cde4fb761f8f76062312a0b51c8f6edc42344309e594c0d551eec6ee419a3a1f19ec20bcb3a3014ca76276730339378e0e0eb9f690929765dfaee87a1140d520056a935b3961a85f58a825bbfce6c0132670e8002f52bfc9e84fd2dd09f1d5cafaecb32d1aa4c76e0e624f7c3af8b44f6146c52988ab542685dd2fdb54a9c691c84a46c1b4021b1b9fdc603fa9a30a9108f5b85572573555d5bf93a18e8054695fb60d78039d3bc8bf9bb4eff11375e8ba2cab2c7b89a64782368845404a2e4cdbf59653af001c27d40bf40e8c0114da71fdfe0600d3687a7448e65b5714229f662ec13c78b2d3cb13b44e5daed3260fd0b3d265ec5e46ec78c8f6a1de9499ec7aa675747d2778b4d4883368131f93b880a16d5d00d5f4de49957cd9e4d794c974a84bc6316ef5f9045fa58c2854cc4352a121f983569b1a738c3720d7046cfac0c83455f0261401d52b9174c50b32aa457e2b3ca0b7bd72d6b691652c3836ec42f25948f3c4697b350da8dac802768cab783f6c3be5c0f11258918e3ac0ea5f2cf5ff656343b547d52449960afabf80de0972a8bbb21c7cc5e06314d143f22a36d15ea9825646c00ae08dbe3c7a95a8830019fbebee241e7c2ecc5a6c99e2049515eaf3dcf6da8e1ba586a56b4dab1aec18896322f041134856eb0814417ae8b683dbaadde1d74ae695b3ae5e0d6170b083c40c3465cea423a36684201235aed62e8b28d22722a24f7981e2cf56220f7b52ecb8e9652d28026dd687c3f148c3b3ea2150cca23d4ff2f8c77ba057c06dab0c8b4e08456a7a3ea003f300dbde2267bf4eee38b55b7ff40d9e02da64e67bc80da1b5ab57714bfe0651ab9e8ff0d17e980cbb97065804ec08a41c97648ca85213cb0c26945e0dddeb248a1c5342fc4490ac654d3debdfaa76f54d431a82784537ba8e6414ca77710cf9603cb17cee6184b0bebb25beb8281c6d0af2f5029ddff7511f11c2646b628c07019c730c572dd498acedfaf9e02a5d6b702278ac8e15c09232c658ef114c74f9fd1b5c29e0fb25b7362908302f9cdbe9d36b80a5d11b271359c9ec9e944702116155497f1ce02e6af9ea9aeea9f2dddcfac27a2dead581eea071e7ec5d41875ccddb3de9a58f560dc0562721509ab19609ecdc417e658db34b3458107bf7bfc446b6920831f6b715cf65478bbf33eeeaf6e1c7ca3227ca29c08384a0e82cd6837b3f9921589ee37eb414fe83c5888e662807df674b96fbee1d86bf5fc35fe8b556e18423cf13e0b6baf7fda881d8ecfc9ae9f76e58155c9fe6784efe17cce9728219e256b9ce1d242f0c22c0dbdd8e3932370f53d20d695b69b566682b1d5b30d03a4f0f6be34cd6e4902a8f97cfa5a393857e7ebde5feed9e1d30c4ea060a6796e1c014ae37f907d14d558b5bc0cb17f1035b316428f50817204c305101c9b98a723a8a75ba992d32629dc81db3d00820d4f82f7280db82f89f655ffb35faea4bc5d2281e16445875316bfc3b39439cfeb5e51f6816291ffcbe3ceef353b69bc52f6988da8f07955749d944cb4558521bb8cc7ecee5152915972327dfa439bf049e5951bd85832ab3866db2d0378ecf06a6be5459abb21748bdf2eec0a206606183bff602ca25eb2f13d35c031b5d9fb3405e0776326a3f9853988bb62ba4bf698c248e1b19a70279d67af64e3e6e7f834171664f1d80850d96839d45781d2a7a6ccd969f5834af1c782beaf0274cd0d2ff8860c6eb09a77e484e0f6056a6b115d31d2f19205ffe0ffe94e7ebc9782222dfa49e0da87ea658b6c6a5340618ed06ef5ccbf05e1253c37700e4c1bfe26face4998a6b85664e751a47eb33794133d376c65343b77d0618e77d147c106f33c3e92745ef79851b4c250e4012b2eb9b31343b2cb537584b3f6e87a6765a8272061d74cbbcdcdba1c8dbff3207b8efae00031e53cce81ad4862de600575e98ed74ea2bbfbad52b2b3c5b987674b59fb6dc45ff279542f86889255e9b014662d75ac9e318b8c27922bc269148961d08b75d94a374688a9be49451e00eb31669480f975661b6454d7357f10f273ab515da29ddc1d4ee9125713c55f5fa736a6084df3f22c5245ac84c832722392866254662d3f9c9f60ad94fb356532b2e117a913621192a1c5220fef276b816ef0eb97b7e055a667333437b80d4aface6df979d31b4e0b0d2b5cf138cd24c342ee777a416fa0f84c09a031243232e4eee5ba616cf36a09b51499847dc32a56d70dfc1e5ebf0cb75f8212379f9fc7866273706d312d69b7b1dede2a71c0ae86c36581a933fa4103aadd7bfb45dcc7c7d3a6735eb8c7b480fc98dfd2282d9d0a831de278c1d25a986eb1fbbaf35b16a2a57481120b2fbc04188dc3022784e4e84057a1c79dcda885ff518f512d2c892507869bd2d5085021d5f07e205575a05bcf8c7e2e4795cc02dba7b8ebc09f1a27ab6419b959dd071e6e5aa2fa5af207c2fe4a299b21fbafe5fa29334890d60d45cf3b8f0e997c050b1441f3d55725e1d7aca1de3064ca5a0c2caa6e0e978186c15bd69df7d63d6d247f4b85da776b5883f4d671b926ad34f7083a2ff3d45c82a79728e787dcd36635e9109c360ee352983674f33c9ae2baaf646d3de5fe6d3fac7cac2d6726655e68e60014d2d8ff306509d9724b5332b9002977321372b8f5aa35ae3bb157904edd83b7ced07482e3620eb9fd26af711438ee9b107c8a34884102926535534db94f1a7c236972a224c7a7fe84507de8577321f31b051707866c5ad6c2163c2f7a956ce0c2c27c773d1fadb7aa0d6701ee09b559a078a8631d2480acba6208c5b043e4f3690153a4f573587f1aef24f69ae777e7f0b657a61693b2ffa04b4b013c5a171eea011a3a340b8daf5673c530d543062a4d77ac109e7b3afe6cfd152e44ff896ad7f699811230e892fe88676fdffd53a165055d28924336574f7a6f703787fe12c5330129916d47ab1de9ce2dbe6014158b33e0d2fb57505f602da6da9bca4ac0a691ea80528d40d73d4c8cd0b74b78e668316471f210f538ca3fbe2fef25b99bd9fcba8d705bb2512cb1f33f896e35d97fba244a76cd8bca7e4df8bb3dcb086d7f8f56e0f357422ed4bd68ad2a20a478006e0b1bd3c0f6f29ae28b6e512551228dee994b86ddd9cc98cd31832deeefcdca7106a403a4e8cb0376c3c33d0047a746eb8c0f12b0e5329552b82d0a9b62b1e8c075cd2fbf80dc5a35b10c543db9b9532197acb8590b1e0413f320671d2c4fe09c63ae681d32e1545d6f41c8758295a92235b69313e1ed97946a7367577de1407763ccada336d4c2780f1d033a3ee5e9af1c9aa24403d98921efc9a266ef8ef055751674da29f0e2afae34de1565617f7db55cb06fa9125ec7b45da738d8f57408172fab726ff8935e0f78a42c11cd431ad2f271f2edfd6e764ee5ce11ba60cb98dacc38368ab37065c4f51622b87115ff6ac3f96a6c941078713a3410173798ef12f5b46eb54cd07d73bb19ce913bebc8636ab9e28ec0d33358cdea975fe720bdd405e973b8b55e1f7b6d6257675f640e03046e7a535f874b2c9987896ad608fc701fd598bf87c31a990c6dbafe26d105981327d8882a3121ef8a3229b526b0cb406eac8c17abe63583f0d767a73518f504d8b9a69781521cfac5faa77f0dfaadcc41c05eb92f9e5f1516fe70a7d3c7e9788fbb1cf786d59025237ac06b6d86596d710875a6b1123fbf0ef901d871c2c68c13c60f9c483f4eabf1b79ff0d5a86dfb0bec67238d0108d53f2182382af6cb36159efdfa6c2f2a62d1be1c2a6c82ad09e99365d56b3a6105ba533c6815d3cc8c87c4e121815c7fd9e156ee0dca44210e9e039fe1209431ebecb2431cb9760980c08dd82dc5a86a8bc591a857cd8fac3b7bf6182a64fd19a78cc82527e220a53797c8a5080a86b5af80183578ee5ebbf5487b13d35aef77b18c2895c99b8be3f38472e06e5adbcf0d38254b0900df26bbec09e1d9b74467489f5120d0a1135ce9eb0f5be976565fbada17a5a2b53e3d5975e0f80ce4e79445d94edb8657eed2f27f240f2b4ab765943a6ad1b9e48330d5fd8247c3dd1296f9ba0810a1ee8e9a74037e170cd468b23de72640172d6705069ca2f28273db0e8916c957d46498067830772b7764d45e3e6189dfcaec37950f79ef5c450bfc27388286255f54207909bc77d2f88d6d80dc13e50782b726e950bccf5cd73086db5aab395998c0696d8511c1ed70f5f9a557f4549382114c2ff7b62b941ce7b74b8aa10f658341e931bac17eaa3bef4adbef2c3a70c3ddf65e84747f0afe58c979d8e4930b7e6acbb217ce8448b09d8580f5f4a8e6e65f141ce5d4a502f3ebb8cd9f4a24a8a823f72ec6e6b01d518844fa44e73fb1c7f85e24a480923945fb276234bf2112624b0758e46d2e2cfcbfb79e34d9f9cd415280adbd40b67ac1dad3e868614a241b14411bf6df84a95b7d177931f5cf8ca315d6be91c4686d18d14d0fcad57fe0402d5e6f9c219028d34a9058b536ce1e1a50d00d8931f018b8a2837705fc3fcfa1ba4113e28d3066c4c2607fe510455530f41b23092ced72dce83a8187565e04e4da64135d6d25995b937ca055cc6b2b6d52cbb26b50897d31a66156715a5169adf6ea41790cee9f2c908b6609d7020f936c12b4f49c16d74387d899142344bb488857b794953eacbe2a9ef6f86708ff7056afbed3819e7f170e1710d3889f1fa03ba7b656270532fbe7330c7104ba37d1cc0faa65c6147f044d587a7bb906cf28189afc3312a77b0716ec898ee57ba51840f73e273c6315f2f828498688617284a8ef05599f9edf2a4dee068b1129936d9fed58b72c3c06a5e8659194db11c53663f76f9cf34b2245730c40d46e6188691cc2bb43ea668c4ce151b2e4b1f606f534a3913d2edbe48c7189fa270316b66cc61e31ad11bd61e37edd130b4a63f7c318e40a2d40b4a8ef38171dd9b13a4c41f7546b2cd3914f44e9b32ecfd0dae69036b5a1ade599ce755f238f4f0253500f8370e2b651cf3884db5054afe176e099203e49d6bedf739681102171651de2b451d9a8184e5e472b51912e18999b128ce5cd0e5f9c9df84653d6e2addcd94e9589b2b4ba1fa35c01b343d6ec8dc16e2031d28d21eb0ef4b627186c8a07185385e9fd04a2a0c2bc914c78e54237b5eae8ed603d1fa9afa518a47e28c395958e353181dab3a7764bc2b36ff092abdc9857534d1707111ec30c00c8c6c7173a838681ca7286e827214b3cc5cb4e673467778d7bdd62ae3138b457a8c207350e3171994b8b7aa0c5887046477fbd45c785ce402bc96d83015e6de07692f31b78efbe1995bf1a0c2ded00937d30169f7abb648cd79241bf7317800b25a1d17c56eb3965cadfe5db176e09883ce8209b0e3e5d882a1b35ef734eb4eb7835f77c280e656bcb19868e1a227ed56662202259b9fffb259180b2d10f79ea9379c736ddf890468c9a4d332a2f692fac39ec2c52ad0113442a669f4bb9a121eacc4f25e94d7ca7147fe5b649c827f529adf49f684447f388a63d924d931e082f0a87bfa1c477e239dc0e676a2d9cdf3d27722288c8c14bd50873bd3f011afe2a54021ba5eb4a1e8c245ca16506ffd1c417c883365e9f9687e9434d4a773699b9a79c49801cf9524e58a122189490748d6f5ea498d6f3008aa4ac98fbca6518e8c3c4582a1148ae885cade18db03fb13290ab605419f9345086410dbeff3e67ea9d1bf39f59175a0db60e52142369c9b7d802c08cccc99894582fde69da9bd0713db3538e949658ed60c5bbcd604c8f4843daf31bcb474d9624a54e1d79eaf887b5fb1235505bae950297cfd8f1edd709184154683a863188c5d8cbab995a4c839e16e5501e82a6fd456c74af656353ca9aca6fc1b9bbdc085be865baa1c03d7b136ef4df9686784a0f384d29bf048298379f2816ed429093c363d39a787a294d31c26c93471ed0fc69457f182a78301b98637fb6d8f765101a17a7e8b92e3e5fd589d2f791ff0fc8e2c391b2b1648914bbebb4cf8be73eee1be9deb32198891a267ca520137ce9857eaf5526922f00de932d105d97b2730219bccba1e6b1952231b6476ade37f91f394f3a1ce631360e56f57239d902c7df9a7ba831d4a967e161e464c017b495c65a96660e3fcb22aa3c22008d95e712e66a7eea007d58c275b52b4c63482e767352298b7a48526bb3be5002b1d24a2f3cba0e2b2baa940ebceb94ab604605c91964e7730371d50d5d66f7afcd6b33f320a9a1eea3df0e250fae95be5fc310954dcb16eac64f6678b0208fbc488f37b0b057533c0eaf5fc6d494b265f27f4868aa1e4c809018f58a27fc47fcfccae6b71d8577c237c1d21f43f209512b3ea3559ab2835f68ad95ac604dbb6d3ebdd72e7555db2719a3dea4e9ff637cbd77f67fb40297a7adcd9a7916b651b2236929eb725fa013de007d7f9a9de15a5ad0c3688fee44948921701404ca25a3c917f2822c5fd8e1aa879f95efb49538a38bf40a8f916c04ec79588443f23cdc4d75fd06c0c769dc9c7d44f9d4431657296a4e03d1b9feb9756033bec7afc7894cc70a2006e2ebb803ff71b237f7fe47cbc114a3669a76ea6639e70c5227eb42717d96f3aa8f024fb7c29d2e6ae64374703f308370a6f591ef07f8154450be35cd5b597b38609881a8e8b1fb4210e106ed6f896e9b80cdb58ed4b8c6aeb0e5ac5dfba83373021e950e8b95e7c9e12dabb0ddf44591ef166a46e2d5845ca8cf90d75bff56b2403cf197457cfad87d1c55478032e48df30fb47083f5c5cae478a30e964a03af6a4e88424ace2bc5becb1b0c4193463f9395393087a9594fdd523902b8af9770a75c1431c84ad558a2b920bd96022a3d3213f3d1aa5e9e286bd15669fb3a857ed2b5e24b6d62e2025e479830b5f217c625044f3460cb111a9e96daf5248338a639e7c5f145e13a7533c25cbaa9de7cf83da3f91c1cf0b0928ebbe957cd3c08ef253525c64e1970943607f1af09b85da7e41f12e6cc1d6d13d5dd6e243505daaff8520b326d5e996af22bb8684259e954d35446ca3743bd604fb5550389f9f3f7aa1f5caea856b18f83b6bae53159be0ec76893a1010c88b629aa6affd7fe02ae81616828be0e843ef4181c9ea83b01a28098e6a3b84ebb680174161dc94238d7a5106e7f61593b5546e5d5ff4c5fb2185c0b413626941d66e4dda1e05987ad0c37412a9ede76af3a3ffecb7443a7cfd991f9d6e50d3a148cefee9eb44b1bc8df25573f842908b1ba3c1d024ad2caabe818d1f659e6b08459fc5855f0b0f01a73f461daff78ad548bd7d0011dc69a346c8d6f44454f4a307d81cac17923edb75941f116281d0d06407f2a01c9c4f597c63ed826a150770c7fb8af3b6721acd4783098408c20adda33e32fe93e2c1f40b1cdf78c92802084c4c0bfa9074559f1ef8f125e9b65dc8eb80f7999dccf9369b3fb9094c0dd8215df2aa59e006139586e74921dcbb418e7dcd6ec1b6a8bf5f2f053928b05c90228649f643f9ac83e7e87a712d7ab7274d60fb631d9249f01a1851595fcd74cdf17cbac38c603336c93af728a42d25a62d6690812b72b888e68f125db55f461162566bdeca81b7d3ba1b223bcfae42bc2422dfeffced09f3df7ad4e36e93457dfe6a5729848928ef06ab2ac6af3325521bd6e0f0400147dd8b76b630a73d7ff34b9d731e645cb21f549421f594288f0807a8c807945c9a02b9461ef0be68c1185b491664c09804e7e551819f333e0f1eb3b962a3749ba77f1641b911f739f67150ec42e59cc5d1ca77862b5c21649a54111744433d40d10f8fdef4979520e60676fc7048ac5b0466da1b3dc29a820c70e7d8c4b5f5084e228922558d1361f367739d5336f7151f7e6f0351312bf35d0341146016ee4d24c9c40409b27816c8c49ffcb2cd15d87d9e0fd77a37b6b053c6d7b9aa414881062d51f548f0fc4396e8d9e3124a85a0c646a840869d6af68321e12813f4a847d6e43bf0b0c6133a2775806724441c17b5019106db3e7ae04f959502f475b5e9fb5a96c501e4a2c6dd14e7b685bb0249830781ff0868c56836676b29ad1c6551baab40fa8df1d74882e2d750b9940987a52b0b1024db6554d0bc0c2564366c506994b5ac5df5f93065e29ffd56b357808dc1114b31f465e752aa5cb07d356dbfc9c4d8d609d92324609b351799253f8361fc4e5ee46660d074a2b3a04d02a76248d82e1bbc8e1f9d021a01005dde0aba8c615535f11a6094c701e842946a92a76659b8015d0da705a3b5a785a2bff5e60cb9da5a82203447d4c80cb24fac66c73f34478d4759c3777ca9974febeb209bf85ef5c2490122d922d4e1ad2fdff0482a3ef12f7233390b307907aa272e4112e0653520061c50b15d05aa94c8b78ba9c506680960e2fd9354eefa2e79d45200b8b928ff8a5a197c0a34b1adbffadde8c2e1d621b93509596e09b1aa1a061e1a91fa5bf8e25c1ef5178fb4dac410a54e8cc5b6d778515eeeab5dc42c7f565cc0b3ece0641d80a9aa5c8ec3c44bcb03be6bb988cddf067629eadf8b308e1e3f4e40f7d06a3f8fba0129cd96403dd573cae107c1804d69183223d7dde25ef1fd9946c8c61e7eca812b5c71b44bae2444c150bf96260bd73ed7224fbc4bb13a504a1c441451b394ab8d07f179a9e2ff38d991d5d97fecd1cce73757e21a0e30d342627309db5cf1bb386e4dfba0845460911f813606ffc1d66f5ba507c8b839f56598db5160f66079dfd4b6df02bfbc9914940ae43a976a075d4642462dde7c1f6411e9d15f6d130a6b59ca29530a035d147ef51e28d0b45d82e43f7212510b2a09b5bf71458eae04d99e30d3add6be1842be4a2c856deae6b411343d5f401594bf92ff2b379bffdb84680b8382232804bc66362056f1629413ab756fb08d0caf53f7a502ab7103c0623982a68a49655aa0913113fa1dcdfdc675b9ea27cd87a0cff0b7cfa6447ac6029b0e7f6b78d867302f1fa0f52d780c85b6a83ff83c91e2f1246fed1e05f460a957d8beac3e3c362d6c83be407a5c5cec0fa4a57c8a07153fa5c440fc41325330f52702747a01d2025e27bac0518b89b59eadb6a8fe47ad864d17a88c4914240536ef75539bbe3cbfa4e178c73abc8b48d49be2811c7bca2dc5ef2f7956163e1b7ec4adb8d1cab06d3518bcbb66b1e4385838e9ad76b1ec8700e52e3e71a52f2b8ea42759a3236f9a5bcf5becf4a296e286fc09982216363a57158bd97a02bc679dbf827c17dff12b0dc45e05ed33048a7b68ffa69ce22c9b5ee7f8cce8802a12b8dac8fe799c556c4de0c14f9993fcd7fcb9cc6d4c116a9af0c8d9ad74d9c962e236de4280289a95ff4295921bc8ef22ef3956c35bc4f11a8bd21175a1201b5405a6507181573eda40325e6da45993ef86e3d83dfedd875b436096f6b2b65a37e12ec435fa2e5027f0e72fa404ee4d662e7d18caef20d66833f022d02e100b09119bc6e6a5336eb9a815016fb04cdd29afff075506b121fd0445e6a79b9d46ad8a5033de5ec667f9dc6a9f91caac19b7fd07af3b1bd0be3f36b713deefe1bbef3806230f121c190fabb4caba60e91670184b7592c64cb96d1f8813cbf288cc8a9a022395c54277e5b6ecef3ba081b52860a1fed4b810a95a413a20391e93a37923622f2b204d0d4ec517458cce18bc6430daa42b72b7d2a4a7ba3598425c4af2413c8325cf5c02bde3f3b2572ce05c406914d5ad83a0fff664f29d9ae86822c2cbe418516d35a1a74fb647ce420349ac1dbb7d5bd3676ccf3cf5497d6edda5453b6f6b8c0d86914b5697b67aa0e7c2b29cb39dba277ff9f2dbe5a0878526af791abe5095edc0c38c1dd229ad173fc184be2880f4ea26a8cdfcaedcc2b3c2c7e2db3e2ed77e39d04bd67f9feeb215598b069debf8f000ef4409605a23cc63819cff0b73d93a1fb37d510b442b68d9b848da267d939e5fd6bff1910bfe00c7b15ab857cd13ee36fa91c6a3272b883bc97a7cd3997d8ce5fb2978609758f22ace6e313daa6622c5c186966d352c8162a56c3d6fd99c5edadf8c4dbf7d9355e4956c91e1fbfb44f4f34c33f46726177ff3ca35271b6d262a2fcebae363b3c8fe825c89ed5fc54bc84512529e6aa9346a211d3e35b436f45008731985d5a75ac5b06dd6033a3334820b41b348499f4e23cee41eeedbf56294bcbac60ebb611ad6de405ed0e0635560cd392dbf19d5e0213bdf19a74fc14a4dd03fc681ec78fb99962e6151daff2fde98d4ce3e29603307e200cf2078fe8a4b680a1f4d93e9d4fd31af0f3ba38c7eac9fa3e17c6ca62d39d260c64aef5e57961bea04414ca8db0ea3368465d080e92d5f45697473adb0ca411033e789dc6bef99fc3d7a9bd6e376e21d87e3ca414f367e2b32cc9d11e5f595d8821041b27cec6fa69936d7dce36242a18b3e7b63b9a51f614c4c0ff03bc256fe8216d95c432295a30ead22c3c9d577ad249e3a304fedbe2d659d6f241bdda6a78ff33aad6ea52554c671ad8fc062cc1138cfcc13a68bb119e1598700367d858892c10b906101020ad568abc8e881d5b7b2f5bff540008f2302097b3c749abf9a8db6d0cd90cbc2825cfbe1fd72ff90ac1c240455081ae4bfc37d17bb97f8ec23ae91a6627c9e1f7881a3eef403c5e4089aee63324c8e1158c3576b1b750028229c03ce9d58dc21b2c5c3e58b8036e54316d86a5e9416056e097c3a9432ec25f34928b60eafa1ad510c3eaa6ab44bd4a25cd9e97bb4f4cb99cac4d964ecdca8586eb06734dafa9d41f1dbe8f1dfbe79eeab51238cdff9fb35c26d55c689b181ba35b364c027258ae07638ac776cb247652cc7ff4b629bfadfe941b197e60b03613cfb1fc9628ed0eb1fe6de834bb61b6249a585a8749b69d8923032eb0331cbeb8f11a16c9fd9030c8227b22928751d553f8b0ea88a9fe9e074195cf64d87e709bc30ca0632fb990ab9ad827d3b2ef4ddb708fba92c1d5b87cf887ca6ac122522f92afc5201ff8674befe71a5a7293ac7042555c92a184e5729d3520b13de2452c4f044169470c2705f72d71a1fb7ae3cfb20215f7df39f9cf218a96cc18c2c14b30a38f2ede49a92c780bef005467a186c6dacc39d2b3f065a5447cb7683c2b681b647e283a4d9f5bce3c78133c10107920570f53379abc8a259f26493f7291d7cef2c333b09357a34e6aebf9ffef565907700efe87e498380a1ff709e337036e5d12dd5b673c6b06ca15eade7d954d9967a74b74e4e632be3be612b7599da6b2080d099e997f134f43ce455a64109434f3b84e2f0140b82c10773c2d903497a9c263e6b7fced5c4962fc317dd9854dd4f287d3082054d0e2b7f6a2c1d01f71292c5ea7c7afe075292e92a52682a5b30c9e2f6fc2f16e79fa7b3208a65ef1439ff1e2213ed9a5873e62aca3dc3a27e7771497cb338ed8c35d336718edce97d7b616ef27e205729af3ba1b8985c7b070eec257e78c8993ed1d072aa19b68fb20fbe7cf242f7b3b7a88023113c8bd364ea2fab378e14697e6b961b3864d5b57d064e84aed8a87db26ae4fa3ee001046be38934c708459423fe99133c1f73ecbe7d502d2665f9c77e85b2019f0de69966965d3b5d2954b44327c72422b6e0b4cf5ff2f5b92625e745d4679a3baa8b039549de9fa6fb3a4054ce0c81453ce6f97975f8e2bdfa4e9133b77022e28e2bc19f591298fbd8604f4a10edbda7fba940e7f30017472c87b23da9988ef5c9ae3cd4205f1607a2c43af5f05618bcea715679d76f72b339c29a61673103a2aae9d4f3a1c17bdd2261abde3ff8cc7dbeaa07b40b1e22d5c53238efc6175db33c34502b8be2e8f3dfe50f4c15ceba73bdaf22354d0cb0d67ac44964a72cca6d0dfb96f451a389c405b508586a076502eda7171a7152adde66937385ef3394a237a73fb9d5ef41fac32d0aeffaaa47ed7caa418028bd0475be5dd92d33c0c2610de03bc1706d9399589fb0198748f30d51230f4bbae8d0cb31796e6539f4a2af450f1039b461206f303a9edc00b84809cd4cd3aa26ea0ca4db8fd79de7143f42358a92099d116a64d9211530a08a514a4e0e34fc0753e9ba727e9b869a8af76934bf4f7ca5989a4aa938acaa0e46fe80127c6efb627409b932815a1538eb6955be7e91905a5f31740749cd99b61000fe982d0e88601784ad23b140d2981946d937f834eaef89061435b6c03949bb9c991d8d9e737ee3c69c1c6fbdf041bc3a416de510a7554e9020dc90560112f8b81eb7f77a89b47d64dd4043ef7df12d39d71441672413a85907af3d9a065f4f86223b566c92a4b31c8037fa5a7542147df23c044714b6a0987f039181456434614d578ad9a70c64ed23fe674c0bb17f7a2fdcabcc976e65dfa195fdbfba11ef1046166513e023fe854ff5135b5cc4628740b56fbab1660dd49e2fe50811e65ef976c883c23c9147bed72f949994905257e58b6a4deeec9b86485cfd6d67820e0e86ad10a6140e2ea86c0b50cdc33a637cd0dc3246828fa7e5e8a3270bc83fc9e16108c6f24ccfbcafb0fec9e11be235d0af14041bad121c2f7b4c3e8333441aa71c5770498faa31c6c9cd87836dedc1dd6a5aaf4783447bdd3c8208d3b62cfd87946abc58ed3fa040cecbcb516bc71e1e3ebc40186ba44a97c7eb90522f429e9645de98d01bace43b8b9ff7e9b4fc19320638a50376b0a5067dcb32f709261c751bb675997c06d5e07640c86448936af2544f3e082ad55f7df66b5d63690d62a6ab1f2f1d6a605e2d7ade149edec90b950d9f16fae3b0a153ea94ac7f8debc9d705491a0ea09e8a037160d0c13f3a7be1061f2ed7cd1494e09625f78e67b25a524d605b2c4adcaa831c7ee53441fa41bc60e6cb08e2000b56a66b573a6aa3f5229ff649f12370432e4c10ec472e5421ee12ef934944f4f1765dfcc78b91f92465b67c9ae37709962ebf451c2c82e9b13ddb2b93a935633aa0c57bb337f177e5dca769d9c1b882034dc06107506997ad83d55f9ac2b2e36e2c0cd7e6394717707d8f103ff1324078d18135aedd2f6111848f911c60c2d52a0157718c21c5b9064f48215077a24d21373df7fa3369018f3642831604356e47a51cfc5ff99bb113492047672e85731086417ed2c6a4c9eeec093c7a3be68d7ac67ce991c79749540fe28c863ed519d05404d6be7052863fdfd1430f1634b66cca89c637d5627c2bd75002075579d419d082c8b40ea2b59e91f2967d3c23d5c35639af01c0a51adbb40111b7edba30b96bde0a25ed7930a1a6dbe0d021b1046116f7a89d27260a01f5e40bd29b7db16c378cec9a22765fe88f530e1fe3370a66f55ec6acfff615344719f50ab147221bbae57d360ccd84cd6503ba158a7b5ca01ffb1a4a36b79487a6fce15f12096c88580e003c05f68c31169e84284d25db354744cc23f497f63c3b58cce3bb267fbe9bcf02f2f0b8dfd385e9ced3faa5514997d1119308f591ef6509afa67020bad6dd77389a00c106121cb86dfb712809e9404c756d2eda6d8e5870a442e688a57884bb98dd947ec6014c08ff81ba82f0bb1a2c53432002efe1ff6da316480e71d954d95f4009984e0eb9a4833d006b61bf42d7725e3e5a151e3a41622eec6ee6720fd0cc2e276a5b4ca9a9650f74efbfbff0744e599189fca8e381fd90672985e53a1f556c3f0477c90da09ec90e38d1eb9e12b0b442c6f13b050d4a0231b8434396a577d019ea318285dc35925732ec0f2667e69d8a8eccb8573d208ef280c1bbe29a4f2c2f58dc2e3dac02dd4587ea973eac9a9dad57ee8f7bcd93dd1ad8531df1a3906ee374f23c89270889604af59b88a22d52e69695f7283854a928644cb41d46cf1c7728d43ab45c4f53cc8d131a943fd206cdd4d9d66cd59914ae082dd0a3b2a11a8e69621b5a42841e50f064916c948dc38d90918fa0046b3a28bb3729c65079014041c91c3daa49500874263f8638943d4e5728c0a87184f90da5a23e4da0c63efd5c3944d7b397a8d559d1743186ead149fc8ae33f11df51dfe02381e3707df799e78241d363f153f575dbc7d27a284dba3ef12f6ce2fdd48f6556600ec71330340c5d2cd5ebd8a83f0faee3488dc16ad61f4e059ccd53184735513e84b59e6307d43f8fb30cea15034a4a0a3694a74de1029a6d6d0467be2735ddfd86bd38e8616a202689fed52c319a32641804f9494c872869935c0a34242a83e71c2abbd79ab8a9fee0fe24b2f918c802240b501c0dde876212f744cdab1340c9c515149a5909c4a559d980cbc1c7c4c3d45c3b35be36b4a78b8ae6a5c2a6d7d407cee424e941aceedd3fa0cf25bee6b49e7678c830f398977265e977218a1dd1e1be57dab4eb6e2e00a8544483c1d15f67dcc48e8db4efdf443f347c0c88bd56b80563f72c7dc298b2edac10f7f3f9e3445e539a351fca3209926d17e278f03575c0700bb2a1b08716446a8be30cc8e8ab06f5904b91594756dfcea72a3b40752f79e7feb3053094276f396d6a85a4fda408727a44cac0cb7823ce83a842bd175116821a3e9b6af8c941d94969eedc2c7b5d39ddd97c6b809e0250fe59a4822a7a9973058dda10c2779f4f820abf6f35f78ba3e8ab615c6de5d52514b3ea47c75a1ab0837e1abbdf183953c50fde13b14068941f1570735ff6b53a68c722de8c31ba6ec0d2d31b9abe3a79c864f7959d72864b7a15c93440d853ae5b2392acfd311c1ba09494125ef433d21412c23a28a6c10aa1a24bf97d6b07106080cc726c678afd150c1c33174938e716c00e39615ef76c599d4d61058d4cce0de4cd39c02aac002c6f4b8744a055482579b4d5327b18da95e42fd25265fd291953bb41dff7a4d047ec9ff253d1eff27d8bdfab435c8b92ce8d02f24f02a9968da27d362e8078a3257b40be4e3aaddf0f33d0fd136e62aecac3d5cfe3094c0692d53439b5d4dfac059efbe1f09862468322b77820916dc85e73e2be7004942fbe94c16c06b1e4b061cff05b5beab97ecc6b105d56edde6134d92cfc36673ee2252746951ea03ff22b86624a1263b947bc8d80f0b4f327543f0ba45a416aab4386824be456f7d8d1396168aa43de5fb415281b88d8468eb3178f3f966adeeda7fc84039032f0b6552f1a1ac1ae99d1802bc0a87a56250745c675f2b3f46d0ceafc0a5cc3c5c5a04639fccd66e5f3cc2f99635cd2ed58515e40cb704b65bba5161c8c287a9d66ae53572ba94c3fbc3cd1f6b1ee20e527633179d9ca20f9a7abd0899cb203be747410a3ad77f7bf933ac813a23614ffe00096e7bd345f073c0c187d9a0c124f11ce460ff0691dadff1e799b1fdd7c67937fae13f721f5fd63099cfe5e441ddf6add40ffb2784e7877db9ebeaa9ef63e513d142b5cb2d29fe042258ed11250c9acdfee8d0e52603c4b346b54504ad7b26df321bd6bd49a1a48065f208106b39d9f9e6319714746df5c48c2dfbe9cf91fb514d31121ed8f86bf9900920124db8500cbce122517dd0d696237bfca01c87ee10bbcad80a0c6e6295e90a8d1409d2b2a0709e7969ec686c46efd7ac4ac864cb4131954fca511fb477f15e2f6d339cab40b192a28b3078dfd30b9be8c4708a2adace0889a11413fc16e28904d88d371734f85bc7f968efa4e69b349bfe37c1c2d3d58284e527fdaa64da8db6e5b66c072c6adf67f0f76e31f0066e460a566890827d442ba9a2da5c3d4cb4acb315ae1c24ccb9cdc33b776253f8501794fd1042203e43918c33ff65fb3f49f8476eb12ea1b57d4219f1598d84ee70c6eb9afaa31c57124d7b35383b74ec2205adcf3ea9d191a6aaff1eb0f158feea9be863e798e44deb9d859ba0e94ca01b3d44437c5c4a706a05f543de9206a3de1a3dcea8448a16b9dcd361927aa7df74f60a38cab465448f176a3b5f399c8fbf27242a0e28c199b723858f4a311a9b85adc9dd792dbd0d4e39cc5ed15b53b3494209a3168ed4ef0c38d4c13a496ba8a1346d3f5c5dc73be5185b7246a979e6f8b297ea484306ed9db160ea20a92d16e92e4e1af3ff89f991af05cf5af2b0c4a522ec8c4297172bb8c65421382f5db40da10179e9c9c53876484254a9efb8ce327f2381cbbe49258fb924165a88adef01504e285011332c9c1a43f2a40b92d03cbed0c9ec9ff3b9f329208fd5ad2c7c27e1dd448b97c65bca89c66e93d31af4d4abcbe4deaa5184cbd0ce70368df4d8be17575aa8ec33f44091d79b85434e47b904dae733d37ed51358d056840f9fdf605f35de7516af86fbe34fc8633ee4454742ba1314f7fa3c2c6c47fdf444486bb653b0bc45d84612974338707c8eeeb07c041a3eae8c3bfc554280c99f9cb15bdc1608dbb8ca59a1340528d716462a5561a397ecc182184e6cddf4d99f79fd356258bb3e0fd5ba8b1c3f680ad27b94d537ab505383fa4df819efaa203575df1cf4b127ccab5a7b6559860eca1374c370d3a86748430dd8ddfbe046f6cdd472232c4f0c15bfe55e6522b1c0ff2c36c8f9aab06ad919033d571df08b9acc9c15a3ce20c53bd4ad8b69ac88f5e464a2b7296b4d368fe2861b5088ab367c75dd4f685eb7863c4be8bcade059cf98b9c94b5b307abbf77e58f2e1b81f326b14db47614ec1a2eb7027e75ef137c0df8e497dd9818a21e41cfb567b76995d61f98621c290ed286957f10a8f69b352f569ac35ad51a2e2c6c6e13162546b4259004fc99354f73a0f704e6057fab8fa02243cff4158e0c3f11337032aeeaec93ef6b712b30acef6c26047faaf80b06da671046903a5bbbba12d3fa7fc50924cc7375ca440442187f48bff1ee0016a53859ef247d0a6402c3c0f7a2b0f44cb3e22f40644ec3e80281deb8d32fcd0acbc22067ee8ed7e7bd1acc6ae211064609ef531d93738f7b98fb186e81249d722b9404d8aa032f0e755079b797effbe6109cd4e9d67610e24f604374a7c180e18516324e84d59da314aeb54be69d4bb3292413e4f7b6694eea60a5a7a08c05f006acc078344eddbee66475f23a98308fe95e7a76482c1525a2cc90dee610e92cffc3b77bbe6dcaeb01ef40581f8630de23e8ac3a612796dc6a3b6688aec0eed50ea9c65aebc3eb8be6e2d5825679ec314f14c7c8d803ab83327de85900dd9da87c06ca083747526cb28a9cb5c5841fe7624a3202cbba9932d323c4cb4cb71908073dc351195d8f87541022b400278f68c5b6e7c3bf7205c462f5b1479028883f6cd297fb78a0ded5da2f74bf2dadd649800cbdcdf3fd91da953dfae2c2b71fcbf7ebfe1e8f9af986de6139a3030ec08a0bf1a7a415a0d222eeb3cfca4b5336aa744655c0d61512bd9cbb161628c8b8759595ab4f09ac1da383887b0b4dbb119ccc2e936b818d1577b4753011029ee88f361aacb01f743d5df8599660cb193b7ba1ca28c1384c0a5b2cc0d2460a5be0f9ce50fe2c20195dc7a24330dc056ee6d80c0c8596fc01127eac4a9a91b1c8a9c1b2298ccad07e861b4dd3d9dfdd6609dcee3e28e9e11abf721da1625afa6269104be249244896669af0e13184962fad086f212aeacb2dd595cfbdb010dc01707674f280d66b228fadabdff6add7fb88f68ff5b0b85ab5f6712e18a51c3f1b63d62e23c7a664fb58f4a13f078d3d7790263cedea966835b817406eea6a3bc71fd83c4518d1d9a3d130615976a6366a5c2c8d9f7d456596921f2c4335d20fda7f3c5334e981c2a3d98b3d9a0250b1ddda1ffd10b1406d18c1b93d663247638ebb50a9afe18f8afe0847d45226f55bf90b2a3b471ff12a6b7df6b3c9c8a54347bfa83b0615ebedd416e6e21c7a651b91824e29a187f74655c02480488ad559b14200404ee50849b48fb08c986b8020d6533831ac2824450455bee8a1b4ae9d4cf316b620d969f0f45e4de196513c5d933b9b5d8b3934ae95c8195bcab54d2e4b6ade94bfdba0f7089dfbb86d1302a650eebfb48ef3aee620f8c454d5be0feefc2ba9e8ab800d2da48709512d7fe6d35d2071d9ff3598121e5a6d81dcf0ff5e8dfadc44c577b8dc508945bb86e1b5b5906b05cae7160bbe839b371a7cd45de033e0f1b7d97158a9e52e74a0a0603bedcef463bb3a8c20ea1b98fd42519265a46e11151b7e60297f00527b59ecac0603360518026b008b3e2296a9c06ce3db5baffc191698736b61139aa27ccac3260e0f3eeb0e6ade9d11ecfefa05dc39777bbd6e44eeff2c00d82ec163dfef7e789b940a861614309b35d0f47e7db67a3667d59f779293f557f94c7f2adf4f029169b74e8d73cd24647942dcf331a25311639a19a2dffc14fa1a7294d693ba123b2f473705f716051a3666c2ec74e13d8a061e535932f04ced18f3824c85aff3686524350ea9bd387a65ace7b4df3eaad9b7f7c07d50cc37850b7e1e7f6bf23392b39da39ed1d8539fcbb0e375c7302adb41ac31a84ed9bf816ef5789989c251d2d847618a9b1aeca62ba1ef344cbae43cd0d27b59760e7715a56bb74a9b1875b6b16342cf6dbefde65d6f58077efeb9019feda34374b96b09565960370eb019370642c1f8141d6b592049f6a34f96537ff63c986bffd5c58f015acd83c2da4dcc58e093b85e33ce3d786f691437b93ad7c503e02549503a91590d2ed5795b156f41cb786b8dc7e1b507a1ba5fd28e40d86feb06da45ba9c9693f554cb2201455c6e8feffda85c74d6ef1cb99703ec375b88ab5bbdda78da90ea2a5ec8b7d3ab6683ca8541c3661fa8fd3404bdf05f3e2737a60e965208d1045c88279b71ef800591e00ce1317573f05cdca933d4d0a477f26c2c2d1ffb6c39b4b656aebbe1d8ab313b9894578c7c87f4ec73762281d42b538c5963a6a386554f027a5f5317cce98414d811b8812247cd4c8ac56ce4a65547bca43b91ede441346e384bd42e6e10029ddc196d6ca65fcbe72f6154de3a80aa54fa4aa27ee237a018c2eca7260b85eada812979ff3b9429e244b8106f1858882476843579bd3f1e97f3c19411acefa628ebde1ed4af9a2bf38bc209b672b001f7c4ebf37d1f483cd064a3fe98622b3b78ac81004e8716b03aa3a4666a2af4c1854929e143d7a0c40e94f4536308f47385184fb6f9f179e1b19167d4cef7c33d5e5b219489f2563c9b35495af2c9419ede1c028d405fd1d6167463576b7b8cf3600a02b5fc3748dee3d99d265a68bca0c63ccc886f0aa501cd7d6f47f1fe4327c336f134a36ac67177c4bcbef643cc575e36d872f4094ce5607bafcb5c1b75b78bde2f51fdc30fb434bb87c9717716a7cfbcb7bae583f6b8f428cb549b09ff99f67bb069b01a80415b4af0bed3612c578c7b7f6992933c093e50cf467a2de1ee1fed5d3d789410a29786dcba9bc93f3f253fb85a9310d62a0dc77a689356e2a7f25ddfa4dbcd662c72ef0e63df855de54faf42d657a94327eb129e4b7189656882d071b2c7e975222e617bc2ba8c094f4631b0600b85c4d61f2d63287df0ce94e2d739402341efc3d3742964d8ac58cd54a5a830cdd180c437b4f53828283ac6b8461ca1d447160d9e9b6b83afe3afdd249576315a2a22e3a5df9fcdfcbca28d0542cf9ffbc4dcc8e2c873642c7365b843dc8662d38462e3b0ab4a0a94e4c4d2339e7f88b13815d511c09a5e3055bd7d9af21c15812f68a31c55abe8631ec0daf001627ae0dac8e63bb7b941520eba13bf8a3a0058cae832cb3715e7bf7cc3d6690ed7dc34f160c47a920493d703c0661267defd7e4c749cde9b59d44e95d07ecd15f2658fef18be385fa197f8e40e4fde72bba60055e7999a5efdff387112f432a40a545bb40c67a1a3dee2ce373fd318d73bef820d2467976ebc1c8eae9efd30682237ca4976c46aa6762595d32335f7a1eff4f3222020a61e8d26b81bcd876b0bc82427d2fe2e90eba183e6fbfb4e7bced4d4f78b71c1275399a6ea523802f1ff00466a3f5e3f27e3ac894fae6721a2ca9a389e5574bdfce9be04e4c7988c46f0cb6b8365f2bfdf8d6fbed8d75bdb2f3ffe589c89b056f398ac98543ab4e24e1ce4746dfd0cf725e47fa33b44f4265a77c56f20a9254941574e61c2aac7734949f0637aad721d799c0edb0b41083d87f4723021eb5634e1aea3656fc9faf9fef45df9c67d8c7234dea36b08d446df2c0ab7de1573cfa1bdd1e2f3a629e0879f68738cc874ff44fef9bf623a39c3220c71b0ae892f4d0915e38b02dd7156333bfb72a8712b843522cd91036a95cad515513ad4870d35ebaddaabc0ae7858424e6fd288d31c44f8bfef0d63b940390ecc16c8194bf06a75604179e5b6497a2a9c2c116295c9a12a31ae9142453d61e8458eabe819b569cf2f16f2e4357aff4dca9cfc85685ed9fc1c802c362b1a2d73955b98d7537246c11e67db43dfe1bf8ceb7e394aea5a9ef223de06de6d5307198105593cc3b9860785f67c29165c3b924c0c3e37f3504a4691edd56de7b1542efbac91e6d708ce13e140f2ef6bd63294c5a5984c45edcdf8088f5d59c80c98a0774d652e8a12f663feab8969e2558701eb9d321647cb0e938c699626b8b471c8195e7cb5d0d996d521f34b5136cd18a9427d9c130e80037e527fe34ce5ce9c8fdabaf9255e8f2db56a077386904a1b26eeed53f5ab08d4e6cf2aac7c00074ca924ab86674e4d56ab08426df3c65a1cea68ddd7699db5a7b985c73e01454753ff00029686ea54e5a559e549f0da45c38b957c8395d188ed7c7621b583908dad082559438877c18f7f6b02d33e7c48534a6163900a682d93736331a9941b5f6b3e2f43b37e561db6d1c6088a2e6d73ebb9f6e454b6bb9148dee39abd0e738891f11b079e21170d752ecee65e7293954773bfa3b3a15d3a91287b02c6066c4b9d0630b47a205e31fc176a57748b8248d91783adac2b2cfd7255e2085fa78b3f0052543c2ca0a09d4315500e425a8287da2cb929bc02eb0f14b61e50a7ec4e7c281a08f768a5a9290d4768024d86b11bc1e283b83e1bf2397696ebf77c6c6815ff0d780c4c101f9220522e0e5dcc5a15a2b0b13c8ed71dfa95c57afd2ef0defb2ce503dfb391915bfb72646fc5fb5c5649536d1041acaf5a0cef14179d104e3e6c033fc95829f9a0d18c158b828a18b3abc88360019b02028a71d921494a9658311bb5a4aec85b9d484063ad19c71e5fc43e263321a00016bf479c68001d865c08fea9bac593c6141067a1335b971272528d6b0bad24f61732391fd260e44ec578789a9bdae6ceaf0193cb7beb8916b3c0ad5899821b56fc52e21d50f20a9dfca95557eb593f423c44c417c37770235716901606f010b6e84b11c4a61ba8a79968b92bceb69bcb305c8fa39286789afb6bb1dbc5d41583c9e07c1bce61f56d804a24557a226098fd0bbec2941ccd28cbda34bb50f053183779b1518a1e4bcbd84e3a7a461ea271918980875a362e2c45d436f0543148f98d783a22d7a3038132ae20524428e9574b63c1ec59147b65d13d8fb9eac4c1bdfe72d25dedf52c32b4212baa2a43aa33f01eea8c83c916db8ae893b05eca078e5eb15e852a17a2230a64ce9059eac5872005ca1b57edb3ec38287e1a8a7cdb6d5d239f9f91aafe7cd787aa7f5918e9794fefae35c05a8415a89c87a49f4745307a1723cbe66b021911d87a73c0832e0b5ceff5315ef1c20614f5a92b949d7c7165690fbd33ab044a645d201d54229b3845198c0c0932b7af24358c2b3c4d1447059cb1404cbb6880e752ce1b496bf7022f8b59764e3ad6d81aa66b9f89fbcd528a1f519ee53e84f6fe2c8e399af84fa508bed0b2f3beb4e7d3effce811fb80597ef328889bc34322b20be301d430a1dafd8ebcfc5ac3b40442712cd83c04db067b81c17d181037375c6f6955c42e2103d7803387e054abe8f08000862f55c3351b2d6f2d9018212ae97fd448ab63919c45fa96e2c2fc3a72809b6f4cd3dd532bdafe22842a02b87f8da33b70db1d4aebf236a96153f35e555f50bfd7f068431c61371d7ae4c662db57c09ca70770859fbeb9b39aa23ef50432726ed4ee88122ab044becba6dece5313dcd2c334ef03da7a9a697e303733661914e134317c7aade979eae4583b103bcb87f0a5c88aa5148da00d09001424fb0cd8957354253380e01141834f4350c499c15b5fdee2267a9e9b87f92c6fe487dbed1d185c2b747efa028e5682af82113fdcc0d5eef8ba2ee452d92bfc1bec346b5c8a853017068385723c121b687e35ab181ab2a158d7f416e84b98032a219bf8a8667f00df579943898de7f187b495ea75312fdc13b99bbeef667b83a8d1019af14ea81e26ff7649f6aeb394ff005fbcc1513815e234004d696854624f93a770b4f2199d3d7de80e1acb6d4fb865e10fa3118ff2923f23ca4d298bc60bb9a3fb6f4f1034aeacd8bae0172c8af0435008c480233c76f21af53345003e381c52a54c8af6481b0158533f80f36813b4c57d01b5e23394f60b35f32a4c2f6247967f690f09a223931ad0f390667bbe6dce160cf31db1ada909f4e0d64bdf4e592bda1e4e1128cb8bbb08eea19af3e08f1c7f66a5acf3cc3e672715af6be7de898211ce573208daa945911a510e9a02d77cf96e0f84ea70d27f5b121905d0069c95e5656227d3d51ef1e129ddfadf6fb95c444424cba3f758e7a676e99cbf204a56c8ed764ca67aef3563e154f7a5335460f45957a37d43554e0923e82bf85b25afda65a255b874ce0605be4f64f5302cd3b358e1ab8239b92573b1b5a2c468bceeb0af168e2e72efe1b73c7e475812d7620520e3b7f7d3195809d89d1b7ef6dfa640901b644d315d304c770c7b6d5e479ab9f37121d47703bf6456bb4a7c4b7c5907b09bd23d9e357d580ee50392f20edd7d7c455800430c8b1a4c4f7a3ebe4fc4f46f0c5ec4b9d56b6f94b954b3db9926a4d114484ebc68c5391fe122a20048f52fe795c01e9a942012c4045d637feef0c45c7c5b00fb0c457e5afb975c530289a701249d453f1613843d524ab78f23a1d647d694e720285af0e26462331ee25b138948f438c119cb6400c1081b38ef1120c3bd108a86b0da8e1424d2cd70449a317c13db7865941a1642bc53f47c5e2c8e35ac718d9280c3777064c1f990e52dcfa3acb52c565f14ec056de05ddf5a5ba12aa7a138ca33ed94aa6d37dc4c5dac935f8248cdb298d738a1f403c2ede49f2c23bd6e4f2702deac3bce1d17400b0fd33082fa9e7b17903ae7bbf14ecef3dae21fddf01b02df56989be8c16ce74f1e50cab4651a8d4bcd09bf45e777de5056b86040006b34509f694996454c74d2670d67aa53d0cefe4654b5a0b03bfb42e4eafcf054cba8915e605770ed157cdd321528db9fda1d4909a3ff82d7c72705acde5012c216bb5d3a17346f04880f52c0376deff5f971fc01dc1199b5e4cc219d6d8fb03c087ffeb1c0af71e3c54860bf471658bf461f371f76d044d00f26da8e710e8864fb257b1175ce4cad1428a88fba8d9aa4ae4febcf07ae99d03546916f4f27a53134ba973a385b5b30d792c469aaffb348c95cae735e563e23965a022ea2807842bd20b2c6b7b57df586d119f6d81818ec289130652c4a8c0bdaa60485659bed77292187d27ae3f7480de68c9e1531860fc2ba3b65bf53951dacdeefb7cf41eca236fcc20ec55298abc79f16216c90bd291ee52823b73892fc2276571b231a92d7073f7d840b177bb0ab81ae3bf922e8a836dedb2f7a91c259ee51256e4a905037508683d2838c92ff2b9707e76a761817d4b1ff446c3d871f7ef6659154d2d3862d5045b1b0aff3cb79abcdc08add5a76ed4ea3cd4de2df4ca5e886f5d4103a0d6e3b9bf134fd18009fb700129306cbeb627243032f498964ff57a7fa92c084776b0a33766afdc885c484d52139ef7c19ae8ce76e7e3e7b64f46dbf4a6de4543337d9ae44315a161c25018a9535d8591250df45b1be09efe8436db652e0a3e6195166eb94320af8acd7495ad83da71f7497f19c07e2c8b125039afb501e6508d367f6e9ed72bbfc7d1ad01ebbaf79f84cc27d8e1da476b54827b846720d6aedad146c2d3ccc23e2826052eecdec10d27f2fb174aaa474fb2f36d50de9c6f4785ae3d216192673c542c49809e39f34fa0355e68f688d79fddfa826a5e11adcf9685f4c394346dce80a1a70dd6f64decd81e2be557070efabdf8109c06c9b0a5606879a3d348572526622fe93abc2ee4892a02baf46f6e7e63ddf0290b8cb3d165b4e6906a9dc03f04b40e46a93703c007242efd3c1cb00f3a6f79654b96c213956e6069177584e8fd68f271dc4014b5daaf9b0d7835c0bb602ee0c8b70f8db7bd8b2adffe49e43e842ee9b803e490a4f8dce025f66820fbc7b466c8871e1cff470cedf5dca0fec55a8cc63f76c747b57e055fdb3a3c1fa9738bb8302c7889a8aa62d70d3d87abb7f80d434cac463110b30ddc631a8b90683929c8cefd1ae369f37466a0e23906337e2eb352b2690ddaeedd252920aa4007482caf387bbfd0a0cbcc763da92e636b7ab51769300d3f0636597e1df8a2abfaa5f420565fde178d19c1ac746c2f2f1c1002a6794b1fb57d3192c1a777069465faf09f2b970e0bcc9632213d1aa84dc1a79bebbcb2f37bdc1d85bc346019d10c8869e23c12cb9a1aabf60faa7eafbf8727f61049894a8ba67ee2499e721c19a060abf0b642c0ea75fa5da0014028319d4eca68a2433586d09c1780cd90489fea39773a3161666953710061ada6ab92d5da266e20f75340d1b377840eaedae565f5f355933cb04d7321f8a44926c8c2fe4880e46e356620dc285f6c38655b1145ba933145b6da0451b4524e00d1178c34e064734bee4ad040ba2ea23b3ef4ec708d271e70b0ae0fccf0f4bd3153d9b37f96df96988439e774f41300b1c63f6f80b7a32069344feb1717dd94545f6f15efebf61216455dc820e5bbc4c0739d0410855dc7fd0d8c1f1686a742681201b2e1dc8cfa42cb98510dc0e814573a1098d925be9aa3ab6ef1f7de8e9ab111cf01f858c321c61c83e77d553d16015de23bf64bd69203fa2979de4497c93bba28b08e398e21966843d4844ff31b21597a141b5746aa1dd5de3089631de021c153ade206fec60539414c5423faf903891ca240cc5936ebe7610bfee0580dbabdb76d13828e2cee54e3b08b667cb564bf373ea77026becdbaa8736e3e49342fba83190343405ec79e1cf6e85809e5a7316eb1e82155d622597b2430561748922530c98b2e4b703ff46611d488da207c0f89bad1cac048a61792bc79297a5fd5aaf5cf91d9b772d7bccfa6a0e3a46114d6dee104adf386916e28cff737b3858b8a46dabd81e5fbb5214dd88c4fedbd06ef80f42c5d0adf5eaeefc3b3a0f339bac94c437f72b326336ef54553e2ff521d4913ae23f4a5f53be24fa20770b3bd0793ad45c05369e29937c0780f91873b3d27e01bf3ae7c8d614200e8a7de43743677a377159bb3aba28f3ae90cbf336fc543d3b6699a171eb4792a0c33f6970e81439b4c0ca866efa61e691e11f75417edad2c3c7794743b91d14d7beebee79199d7c969939ec0b127e58903c65ee592e700200462d1d9d6db74000321d736f2f0b6777a05d8e52276f79822fee8e142a9cf5b5198ac7039d654074468e88ee8d0c6de55631254fde498bd42db7fbef07f1716c0b104cf04345b37c5e38a3d222fbe75e9f5e9d05dd4cefa499e8cb5d20e35c9ec873d57e26fd216c4278884daac166e6b9d0b53cbc62b950869837f38ebf71aab10d919787604bceccfca1edf12593c2d57dff40fa91756755c79affdb062b049da7ab4685b35e0986d39fa46f8db0eef2a9dce13653324013aa4bb8824be0634cd6d8c0b74b84dd298645b0fcbf3c57247d43f8f4ef25c81b3e9abdd4121d45cd1bd7145597c02c4a417fd09a9bfaf39e3e94baaa7e4209846483137d19ece44dbcddfdce76c122c8c1dca7c23e15356578e0eba0fffd76022ea0551eac0cc9329f109f529ed4898aeba2d697361b01ba1572df25b3d032bdd6694ab1466dd65e7585e70bb8728483d398091245b8f91c9c0db23dc6d6aa9f21f7189e74965474311a691ddbe39908bf961113b669e98fef49393a950d323ca0ae0acd45c1c9e87bf66184eadbc42ad6355449f39466256e335021a63467baf8a2243ddc56bce4312bd1ecd8cd495800a824e58a8967db1e2e6f1915b4d58019e97dd31d9f509d371d06ab7956767e7ef3cec091fd7fdf3cfd045030f0d35e3164c40758acd2ebdd05a0fda05ba6c0c00c7416f160c3ed12d83f2cca59400f31344934c38aa066474e3c9c21100c218f763368c81f53662f98f652d4a60019c772d8afa8f71ef3fcdf37d267593a39597bfa3c2fdd7b3a48e672d9604d8fe4a815a4a7d68099ddeecfd19d578335f71ae59c86255ba3923bbff879a3bae7656de2378b7365b3994bc0650354f35549e035f2f4be3b243e2a22a5a99e2c1c30fbbdbe81fff3504bc46fd1af51c40ec720f4a04ca46f6b902ac9604762930ae2b2bfb92fb981694dd8b18d873e7f7a51c57c41614be1bc608f5d9007c1ee57e267ccf463629fb3fc18dad89bb48f351b2c52780cb06a675bdbae40c219e121996e809cc816d015de6206b0af43706a5dc427b354a2a2a55fbe7b2f42d6d65c600ed3ae30c1e78393221bde3aa929cca1dd79bbcb6b9a83d30cc540de0d3e1e19b1981238cb0ee8a4de92b7977664c17bb2f049bf7a31bdec2f72daf919cf6dc1ce6ff52a7575d62d88f4d1fc2cddfe6a560ef0df2ac220b296d9192ee647b09e038fdcdd2c85e76714c9f6aa0670a391d59466ea9716e50380f85162ddaa05ff75ebd1b89619e661e1cb5de389add9f588d99bcf20f9cb7df3819e50d8dbcf907e0b1bbc6dbf0e8a7dadbaff5cc79e4d2bd01d7d58f07f51ab2a75934319616f78df06108ccb0eb340641f664c47cfcbcd5460726379688afab93285d2957c08eeae63618865ebe53eb3850b2067604d3043a6792d27623323d41d10c237539bfdedcbf1b11bfd608f54262d7ccbd83c4cd40b9813b289f58c84de2712a2e26c138f0483adba39cb1d5c58732c4485edcf6c72224c4985e4c2a2c6b18710b632c44a640619641c4e78768fe1d89c44d17cf15b0e3942409a11d32778589120794acc4f98f0d9cbfe5d077f94f57a63526a8e7c09e3e783831276587de9945f5fa77a6caf69b0b77df99ab8450fb16abd46d193bdcd048a2cfe66de48a320b31ce04797a2d09f5431e6150dd56fbbe3cb06cff13ce5f9e1aa7f3da824788b33d66807d3fb1e44efd0a5702b4ac5bd36d41bb5db0e6c6af2850f057a29a0d684e74163b6b21fdbc1b8c7f80968b3a54105f2ec9a5ceba0e3cc0eee25402a1aecc0d21737f3cc035c15815a26d447e3f779843f432e4bf0c4001b4d0b9e05beeef243580764c7e8a3b34af2e5653dc0e6de4f9354421c35a67e0f41986ce0b640dfcd58aafbda1bfd980480d9344dd3babd78bc3758f2b48d6bd0ef0851accb161c008608ec83378546cc2946e02d871731f0a95b5bc3b941826f1808cc0432926b2f91c0015f7d464e676c86ed3abf475a3ad6bdffb0ff239dcbc9396563d848afd44bef21e4c38a01ee2e67597697b24a2132b6fe7afb0c830da82119faa9f14e9b4e1952a40d4174a628be65f4665507bb7110eef7b846f0070173128c36cdcc0146322cb06a28edd31b749d260af43ddad8a8419e1239f62e6e57a64724fc25e7348a9e1d2db1dbe2cfc254f171cb81c2f9a372f3785dafe5c208e227890d068a48baac6fe471501121227b032263468aaa6d0711986895ac29374c64dcf82a82dd2770d585cec5059c42ed2438fe7e532b9af80030345048b873aa1480125612a829f125a0c26f8bb6a90de7fb46fbd08cb6ab4a7444fb78a6e6b39f6a0503d5db1754c57959d66cc2f9c0e2652dcada487bcc269880fe5bc77012005f60b4394a4325b52ba05e257d85ea76c0242ce825e205a949fd07121ef718ec4974bd8e300b7b7a6b44889d0288002d7cf84e01ac47f743079a96982bd13ed03b951016bc0645c6577c39bf4b735a3120f0196f4c8c90bb78f3dc9032e62a05febf577c25bc06a9399165cc3948970f860bd4b2e46ae7cb57ed87194c6716b1c79feacb885b3fafd984e381a419b0f09cb9a4acd81a2e0b65f41998bbb41d12b6f183060b93b444573abfaa7c08049236fe943b4ff2cc797091eba251a1e8879b1e8fd63b31cea13465028c118e0ef739e7d4a93fcecc9e5d9c0514777ef7b878bbbce9f3ac86d3f646d97350ec6fdc4202a504aa841836ed835a195bd53b8d9080ad07e78a301b2018b1ff23ad95725cbc8e50e192cac7f9eea958d9c8ddf234bd19d45d191668aab037d098420dffe6a1833b339e6dcce7accade647a768f70f6115b88809139eebd08ed3746da51ee0adf17fb88b936adcabf3c6e2a96a00cc2a0ed40a507e7e039d7a7816ef51d95aa0fcceeb42875d5cbf7adfe9208351d5c272b22345ecf51e9a3d019d9cb775d353a4b4bad8fd90818c35786030f6b1c1b7831b5c3a5a47949e5e1397c1c7a2ea9292397701aa1f7c83f37737d0f4ec3fbb3d8be68d76df69f5fedddecddc0200e6be40a2d5b0ff159eaa3def3ac618a18c202be208b81af3abb47ba8403c928a8a1d0ac0e8bf31bad0db108ff02d46087bf5382910d78b95301336a54deeb17935dfbc3dceeb4b263ce475430efb48da139ddc4bc8af75211ae52a7ecc3ea42961704f1fa3ceb12b55a3e278dffff336a0ca33c958164baf3a690857e870351a3978e603b4de5cb44dbaf31eca8ea4fe23f799bc23e30e0f0d787147e1c587e5c71a55c8e7b6d96fe6d61253970ff7b9106a8aa3ae0dc9a937ee5ba231c355ae5aad706847ba2ce878edcb899f093a9be2fcc5b23696d00a0d7038fc9a0655c5eb2cfa9ab88a27cf73f1a196b19e48523b393d4a0922f6c8846b5afa6144004835683283b1b0c7247af7b4d42d7ee7fbfed598405ec3d8eb827b6af9719ca1fa8c406637702b01ea9d0a57ac36c6b03f17b67cd6a2d203c13e11809f12c89dadd3f2521bf095bd6051f83f52ee6ab2df854f9a696f7dbcad8c38975f09e873371d3806c104938aaec294b5ef0c8f980ddc99c1be2050c42b32de9269cedad201081f43553383b8213f5b7722c43896d6e62891df654d72335c31c8726fdd60b7608ec695117665ccbd70266551cae697dfd5715cb596f7855207f695d24ec1236f00e8df86e75a06d9e2bb4db90707772ac59b820b701c18668c1ce3e709ac8c25c3dd1a96c26bc46d825775d9ca8acab5eed94ff806e915a3a952dd29ec85fa1d88c93373fca19e5b130e17f7f9d1d53a8a5fafe9ad8fddeeca414ea45d0f1ed6102f1e93492cb77bfa569b549b2f7a654b274d4243df794b56d99d03f32ed0a377cc523042ba67e5ece9f0a7b814a84b2e239678b3f8e514a343ae91c97cb93a70e8f27dc8701adb876dd1e49329f9c77c48e476c3e96913c0dce17174258ee946f034405fdbe309bd556f7fc11b03a7ec4e7d77edb82fd579f8809a119f92e10413e5c81c42dc40d0f1e08746d22ff04ae0083b457479b9ab0f6ca90782d7e1ae54a9a39951f2874e2d004aa9de65a0eaa29fde6caa88a00a40b3817f2e7f331cbf3cf53414c040a026b936f62fa5320093042631311ae69aaa02468465ceffee9a3d392d47f833fcdb3474a2a8afaa16f28de2a17a1aa34b52a8bfa7b8c05e4bf461a13a0e35a709ea209973d054e67a7e2b32165b8145e798d790879b663557d67567903d417b06edd1ea4cecaea689d4851f4b3005846a5845da2c90756112270915aee5cf5500ef87f70ba644cff1c878026798ada96952be195efae994ee72c3c35228197446a1fe96617faea270ba8c0a25c5e4537baeefcb4bb58ab1314768914350168dd0ec84ebbd32d6c0e359df7de1fa777815f9040be441d09232156245b1e25a799aed773c07e7ed56fab5857fd83a14be452c08e748150d8984ae7b3162ba5b5b678dcd60947bd500bce1ce8a18de7fc213f3971e46fd0f8349ac2f3160488e3d7d9e9d2f4459a9107beb1f6aea8d62e2acabb5e5ef2b5d5599d3ed232bfe73563f97341ba0816fc08a53ee0d000275d0f19bc79351c868d4abcea2dbf157a7f242db0b2258ed3376e8e9bc2ca0bd22e83b81de0e083ac3c5a7ad6aa4bfe94f60b85b7c156d5b7dd5bec8af84a4c0b1881834a3919ee732899185775d8d035237cd4232dc28f8314f6d250bd03afaa2ae6e4c91c22a8a281db35711c01b841efe118665466179382c37f8225eb132688bdf4308ae15f6201a09b61ccd5bbee04f6a463f2d0c7e9f657051f060643ed03e2a79435dec3013424ff329c81c976b48d33dc1d915e2ce6a42981e029532d5923fa77fdcfc5d5214a26bd961ab2eb42e642d414b2f319984200391a476e17aa9565c7db1f5b7e3c570bc02b63573166d8a6043f809f6bb6dd1c5294f869723431490236292faa921147e20b3a508582b06239ba57989ad0a05b4aa9affa5fc8c5308dd3bc85ec0dab2279407619311b77ed2de1d637dc5a0241b530cac721c344f2de0960d063e134db129997b83b38187702875ebb8a87cf717f359b009a4a8ffb62af6cc5ecd12931375927d3f5a96364d95e0c50c71e0d23c84fb9416e4883d4c7e0744f694f8f90e32ac27815830c9b4ff765cfe3e19ef414c86e4a3346d7051f7b9926c76dc748de55b634e8fc2bd26b2854c1c4be589da6637c5340e70f9705e9f412ebf6563ddf656072f3b3017f8cb9e33797c0eb0be6db2c6b73031dad4a3b9910325eb3cdf128c14ce978cb221d8597fe96b7b81c2f30356b415025959b9f340ed14c5ad953982e5fabaeec9cf175ce0f8e222181dac756317bde354e083a6d0ef9015d4d8e8f30c91ada53a3c6fefac237ac14faedc670a1badd4848403cb973409bee5c0df2a790e182b8e2fe70d9891b322813ad053aa566a658f5c18fd489fe0a62162d9b98d94a730280e851dd4e0b2092ecd0d5c4e467badfac736d43e4cefb356da8b72f85a0d5eeae78c7ef9b4d2082a55821119545384cf6a6d53c58e0efa1958af4752594bd9c7253b9c26f1175b9df9b242c04daedc094b3fb4be024ef01abe0f7500bfcfc6438bf794770142ed0b6c25a57eeb08a97c985fa161b2d7b06ddfb754449e9c441a4601c7a1983f0732223c907a647eb0509a8a6c466443ad045734fb7c81a26cf29e5b102258ce0a92db4ed03de309aefe5bd5664c75119b432b4a5d795027de2108ae6b11feea93f45c0fbe27d8479f6806d428a664ea6dd98d5555d0054991b1e01866ae9490a8041d2feffd839940b8e4697ebec7ced5032e1e0e34a1d4af9aaf1c8f67dcd39f2dd162d2aaefae3c7b244d55565989830a00aae71fb61807f050fe87966839f42563c59b573ba7d0574a522d011363d273d5dc820ff434f74a8d68eb482594367e4ce5be503a8de552a8f16fe42b74169d53ad2ce19eff8c0cd1afdfea3cc562406f5f73b48a7d669a0df2d33a7b15dce45e28f9e4148c99978d7c2a32436bff8c6200579d59f2cacf994dbd6e81566f4ba80e0d8d1a0aeeae92c1869eeb6c24291fff959bd847e2a568923bc511a4392670d289671d3c7437915fb3b97ea3f59d3a4e6582d59652fe98d8a02e79804b0b58406f1e2d0b627ddb7bc05428b126c74768cb04854b4010a48993bd23465c428b0cea66681d3281d8176131ee39617b394b60592182cbfcc991d4f5ff0d8bf9978d7f4367a70ed1e27216b795d0c037c6eb531485c897a613c2a889cad5d7a547e046d3f261a322e4bdce1c7ae7e506586c19b76fce14730253e6a0c81b53942c6ef439a59a734b7c4d46dd3317d2e8c27bd66e5316826da418927ba2b6d876e9222374cf28a27aaa428acd7231b9294279cb0e366b18ca892faabeaa6cbc680e3b98795592ecc251eaee82f3d2d724b4d316516a506d1352941d1b6082e116ec941d0fff3533b151ad491f9eeeff2088dc0e87504726de48b06bb70c27e4661abcf7a26f9c4b2cbf488eeea21c45098ee7f50835f82c00384609c9a7e0ed73665c124bd2da097f0f56e3a0b716c04378b679be12af0093151316403575d13ec5177630080c5a0413ae92cdf52a26c957c4a01deacfc0d29f896948bcf6af04b1b6be63fadca19e07260a5041247d23cd1f4a929f871927d100548fae7a74f71d7b07a420b8249765b87d6631bdc402196a2e4d0bcef2c3e196bdbe8b1a57da9147185f9825f4cff918b02daf536c866072347c5d43f98da61728913d7f943ef65642cee094b6d7c0355d59c1e046212b9af10263b7961003dbe61a71185dacd911b0395837acec060a4e9235be6085ebefdefadef88270caf6b20230c661d99762d292af1de7ce58201e2eb1c18403a357e8c66e741a32c490de91efa8cedcb940049463606652fffa67f808cf08b6bd7ef09adcc865786f5da05720b725738c03cca0d376d5cd01219c3d40d41cd6ae647361005134942f41c2f19fd49d95083418d296575e44f14e142d52ab314fba74ee0d46308ded913ea0d880bbaa6e9038e39626fa2f09bac3b07d887ec304741e08cbe63482271ac12c530018ca394301ca51b5fdfef5575d9739a26c32e0e34fc0577c0ff541078a72937443bd29bf8bc0497788da83601a0f9f624ef1fafabb530c3b8a8d6eda2903750b8901466b98201f6fbdaf01c8c4fdcd1aff3aef9cc891ac444df4eaf865226bce5bf9adaec91ecf8316229fd4d128af2f8fa47397347b5258c86e8161a97654bcd1f127900803899ab8de5993908dc79c9330619d691efaee7f9bb5d188f8165049f6123fc9072153b612e3fdfaea19b498608e5b4c42193e3db5167fa4c996f5ad4099870b425e9e8476fafa1949f39388670326a4687342330d7a3205da6ba27a9c32acb572b9c04b4bb9d18ca2761cc91e818f5eca11ac5ce8ad0be973e446fb093c328b38dbabec735a59ab8dbcd1d92ab82c82a0ec932a5902a4b25e70b87f768f50976baf381e391a66dc810c7b5869541416d1e452fffef7b0e56ec6d49c93c8a6781b9f55e607ee0790cfd469f7ca41787bcfe49b9dd5a3edc257ffc23079c8185cd77e9d06d8209487f1839fa124fad0c985ee8ce74f5e252afd3a90ba98ab9bb3db5b35519922d1a11cf1618dba1c9e075e6e19b29a4e25027b5197208bcd425f169c6366939a20694dc58128df67cd1fb131c9be51e9fef5080a5a599c070b643093286853d1ae0cb5c78176a6cef2f6ac3780dc7ab8219ac0c804d2f5fea7e28f9ea4dc24669280f6e67e22bd0a29e3194781c697cba1b0191a19af9ab6751ce559798bae8d0127cd8ce45222c63915a9f7560ad8acc38988f0799d96dee90b1146d5e1fcd69da6f226e21b0db69b39dbffeaf3d6bffb7d1dfface2d8ac6305209575574e16eaf6a64626d5ef6e51acb9e18d9435de42d86f358a61f4afd3d530af2d5585ac6d4d253dc01358525123e247ec9e02e6e89ad52ed03f47593060b8e9367bdf13483513ca50bbece10ca4741d8768fc981364ba96918bab02a316dd9edf4d3b6e257d4a61099c6a93917c342c9417db428d814beafc6662a985bf87c58961218bc2db603acf3fdae159d177c863f027111ceffede54545dbfef66cfacb3fd86e9df5f688c6a8f703cf25a1ea80d7fd634438050b5e655963c9dee6f418e414e5b87e5a42d86d317fb935f485b25d50cafb5b72f467ef19f2c67a3217b8466cba1aa086129a235ed4248d92a08f25ae657aff32e33db7a3c148696ae78169490464ffb4234fb28152d8b5ae1b03b1e3f31cf7032d1af4c40867d596e49eaf8ef9ff208b196ab0bf96c1440e135f24c45ee37479e2f6af67db07369fa2f7d7d9810e9c98b6c16dcb0f0d19017901a78350f2c80cdf7da04ad90af0ba5780663b8250c6936bda64f2c17817d27e5659d8612b5cbf5bad6f694e3aa1a16dfe4e06062fb12ce530ece658ee6d353882b46e82e5844d9cd7223b36450189b779e06f9617ce99fedece9d7c3bc3e3d1b94b56025f5c931bb31df5592a5f21a347e34b99b6c485ddfb96112b32a8bf38f34d980466947c11f64c3c3108d33d05f92f01772bf79f760106665666d9fb6e8b04311de43e3a066b84a85190de9a5669af0b578bc5c753b75cd9774f390c271ea1fbe0d62af9eb498d0198590fe2d3946755ad1854985f21f76b3fefbbf55051dcebefaf67cda43aec6596f03c212eb6bb40ac5bb628df8ddcd4f7115b292ad4ccce435e04a25aa4cef273db88a2b48e04a32ecb31559da54a0cb5660084ab7b78d7de21bc7d1e2933c14b6e24fcc61c2fefc5a35ad84e28b2defc405779ca6b2417407f363ef32522359551063ad43d2edd8fa7aa45b83727fe95c881dd1298a6775ceed54d0007a518c1b0afccb87bd9495ce8c591513c658c4daaacbe69634688c01eea59156b61c79fec99e49f70fb9e2e170d18abf25aa2cb8cdc56241e57a22e6ad38bb17cd17fd5b61c202e6351e2e848857c14d10bea2a33edf561d841c3ad636560564a76028801c886101e68250bcec6c778aa3b3cafcfb03cf42eebea348ca2d05b4122b3c99f30765c23c78f0f344372caddc1b5b8f65dc98be9575f155aa1fb027e62eaab8dff609ced29b4ccb088ad1c781131e73937141d479d37616dba4e0cc704ecaf6171179a135f523e3e089dcf0415b5f53d332f93bf2e6e66150a342058e40bcbe181c6be45e28916d6b30413a9b95c8219a0e2d411aba20b9c2325e65b8cccc11c1ba19a93212276d37ff6c8724320ae6912489551f3bb974c4f68d09f9cf204e0a786047c752b432ab0769453da2ed25de53d62d3ee11ca45f8cb43e7a61fdec9e246be06b9eb31a8234dd808b30113136181465b3643e3c2548856aae4eec4343e462ee2b36fffcf9b7fa46535a4afaa963c4e85b76ce9d4d2f9b29f18e0ab0bdd580ad59365584ed2289a784126c224cb36eb787bdebbc77f22831ab4ff301dd8f9e91af707f89497f573186822a950c20c7a5a7fa3411648e7b79fc1e349a8420ecb581ff4daa6cb455971f20c31aea67a896eb191795d5df64ae254db769542655b5bcd9c868ea36e16960a6b66d9bbf27af2fb8057eccecad2840e7eb280e66f7e3b2c9ac33a2a34dedf1048e8a111cc4cd8088a562f21037379f4cc90b34ffb0faa18b4a39911b3f404912b966ea25da0054b285e64619be14192eaf04f287a0a684625d1c6a806778bbcafc6c55de9aa00179150f35899b9c8eea8deb1eef16d950b44ab7f613892b0c85d250f6d5f752f99b1b6853125bf95f13e851e11c5be63e8d0c1f230e181c70a7fdc11f3cbcbaa00905cfb5d7dc660ba7259e489139ab8e24f002717c42b81b38cad479312c6d0115836b2499cd91409d8a5038ff0d73ef6558bd0dd3e70fd24a5644280919a3b3be984d2b83336db8907d77f3ead372ca825e669cbc2fc058411a07e5f01b2a783622db2c22e458cd9618e48fb57817fce38118d5a7e9d0f374bb8fa1a1e9bebf47f2fb64ab8e673ea45ee7234a25ec8fc174594edc281e86ff639989e735662e1f879dccf507a86298bd49fbeadb92ee73ba7ac702fa67550f539b9b67ed8b61cd29c3d0ac746ed0e8db4d2d562535c153990050672a8e8c72d004107971e096009a5302cabae90bf1abaf31786419940648ef6c21b0feddc4e1db4d4392065e2adf3aa7bb1497002ca6c0deebf1ac09ba3db62b962af4f5ee0878b0cf09a1c4a21729b27759e8d343a97112feed12b8776fb5a467668e2d3f81729aaf573fdbfa50729d1aac7f2f700e0d09a3b79f613da49ba4c7ef7b66fd1bdbaaf632bbfe83cb479ae105c753da763d5a4c9546f05e08b27a937f949bbaf303a7af37d3af08cc6d6023d5334d566d1060289aef2dcedec2107904460e6046c513f7c11894f6bc5d76dfa63f382b6ac6b4790cd330f81df69e6d9f7c54268bc923e004992c5c2b76dcb9ccf4834443bc2df3ec29017480bfc39de6f9f21573ccd3ccf4c8360a860e118764e2081e9e921aab39a7882c6bf9dfcb96e5f93ffa713db1d557b3323d28b76dc888ce108b05e0a42ced18543558a34f00c3e7623f96b9f5d7110be0f039370b34154bc093e805ee184c1110d9023d42920ff2da4e952d22a718800aa87d10f2a39caf38dbe5ec72f2f4a50c84309dcac0ea16cad052b0e2200faa6c042c54de6d648256ec3c9abf69ec5d79a6dc7d854c72de4f277042cfc13b0fa99121d8a66d74021d8d68c5690e6af88a1b850bf90c4397baf9fef3903ea7b38334163d62673fadeaf26294e60b65eca46bbd4cffece8c2f1f8162811b72713a063275b2e00c6e9279519dafa66cb02a724b4325b2eb535e13954f67d9e50d8d0531f8e68a01a0f69a7b1847fbd58a7a2bc9231b86f915e0439d93e435d2832b969fecf03a5c877bfd120a41e2ce224dee805f84a3b3dabff80ddf791871d6f904d32938fde31c6a1636f33ac8b0a94d8b985b99eab5fe742f8363e7f522af4995b1187017000fa40be3cd27079adbea96320ac7e54a8a800384c7d2ace7288e1c4a940332a8439000c67801159814e268ff44e1c4165ff71dedafb0efa48336f801c7726bad3714c9696afd7e42fdbcb126ceac11ddd8887d23362eee1b9e2fd3d9f33ddf7e8b0ff7919564a8b9a0edd63d6c59fae2784495859695102a5b819f9b8d3bd5695cb2de44ed24be2cbfd685930753cd1c1a7720e0f1f3c05b91dd6d0434262c78de91c28a9066499b60c5b78e5efe6a1a6c76b9d78230c62cc107ba424d5ce69edf798f11c8bbf0d8f3cd87699a58fa9dbebc7dba7fd6ff4993353a1af127251a146469c0a272ed72c0c86165fdfbced358f93901cb6f088730bf5f6298eb517fc834b5243c6188be310c1b78606fb34a5be47b30536d59a5ba7148d9e4f0e857b29a2058ecd8b3df7d4de415cc69a1b521ad4d82afe64955724181e099445e7eaa7b1893ab726a21fa35a56ff67e511c0312bceaefe2604bed2ec9bfc350827ea443707aaf7eb7b7aaef6ea7b06de53698f6704f9a54ce9bb696116f8a67658ae1ff08a79c159efd5438e904f470579eac1550b906407c3ea1d1ea6506af6b906bfe71add3d903d797cf63c704713a0b5fbfc909c439ceb59b927e29c43d436c7023dc7f5e281add749dda3dbff21a97ec2d604f6e3c73e6ab2a29a26c1be9420060b6e519c39e41776431929543459d99605d701829db08c3a074cd2b9b27f18ba99000f1167cf9fa8700fd33ab45d8497019486f8816c40d51fda7ebe52f388f8385b86bb85a9622e1b6629ab8138f1fce3fd171d063e9706e49a4dbd7ff2f7e3cb9279e3224d6afc150d880f8fc7af69265aa98d9876df007627f38ef12f3bcaa4d41d66d26f17518647988f100fd7b0355af257a927bc8cffc3acab7ebc14fa19b5e1fa057c8cb7c0378cd67e154594daa30e20bda385787edaf6c1ab7e1f22373a3b8155e1795d9c3ad7dbe9c6f685529ef1cfb09e9a328ae8f89e4c571e22a438665c8eb1774c9375b97775591421a75e7b299181ec6e293cc1e1fde9a6095cf486dd387e0d7e41057de953e38831a08fdc9391bc41546de6ed93c75f050d14488bfb8a2b27330f55fdc274dc1950e4c1843b0aceaacd54999858446026795662358409605cf17c85239259fe3974eab4f5ff817d9ed8c159dbed3283d150a11d79e68ab6227eb87d1ea52425fff83c16151137e006f76be3c380f17d1136a6e4498bb799a84f52dfa18f41e44aeed259220f397cecaca72d4677d2b28774750af1057415e09ce16ac0847f365fe393487761234f431d2491da72c6b044811b40c3811c608917fd11bb611a7734d5cf636010e2e4cb0de42d68019edead8ad8f02bede21890baaf924f1d20255335ced105bea65ef1b1fdc025058a61249175e00771dcf509d918e360e3c21cbe0880bcc5c59d4682f666f82323c40c372f190161ef2be2f3301056fbe4c266d4a5c$561ab9d16929150d3877c88a32899e358c1bc58a28a4f446f907a04d4f13198f3c98d1c19db2ce8eac0a2158c503dfcc02040b0554fc8c3628f36b5e6d2bf047eb66bc0cd96f66ae39767012e835ff1c22297653bfcbde81245d40b7e8f17e84309f70b1fec7a5041bf2d348335fca38435d00489f1337809e244889d30566070dd3cd68e5f6b9f7a439dcf5e96fb668cbd4b7d5b2f5fe9e6d4bb9f08cc419badbab50e3451e6aae1d242fa2e5a8340d63f73f480f15ed391920c760b8670b195ea6dca0436a5dd837fc4a4e55e64036f6f414c09d143fa2736d1d29fa1fa337d44dbf4f2f5985fcd22ecb877dbf65fdc48f554eaf0d2ebbb0333a730dc3a795067b11e636d318626c175ead464eaf2936b9997811719e74e3146c600d3c46614bff5d18b0060e469c12bfd84adfd00924d6b949fed312d216c7e75dcaa9b35fcf84bce26d4defec16be5ffcd5a20dbb123d32afbc35601078ce2fde24b3142e8ab8975888693d1c7510b9edc40cae3197d7f1add88c11de1bf4135b58fdb613d7f16c44d775079bf5e2a42bd17f953c36269cd5f3a6cb9b311685ab63e6f2eb7f4ca4365faab8dc506d72b40961b705c346e7c344e679a054318d1f9b0b2b939f852c9f54a6e3ca6cf557004f780e063bf060cb9c91f48be22632d03e4d21dd82a90fcebedface46dd256ed78dd4da0018a7e1838c66ac44b598bf9c3e0b582"; + +u32 module_attack_exec (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ATTACK_EXEC; } +u32 module_dgst_pos0 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_POS0; } +u32 module_dgst_pos1 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_POS1; } +u32 module_dgst_pos2 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_POS2; } +u32 module_dgst_pos3 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_POS3; } +u32 module_dgst_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_SIZE; } +u32 module_hash_category (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return HASH_CATEGORY; } +const char *module_hash_name (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return HASH_NAME; } +u64 module_kern_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return KERN_TYPE; } +u32 module_opti_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return OPTI_TYPE; } +u64 module_opts_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return OPTS_TYPE; } +u32 module_salt_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return SALT_TYPE; } +const char *module_st_hash (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_HASH; } +const char *module_st_pass (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_PASS; } + +#define LUKS_STRIPES 4000 +#define LUKS_SALT_LEN 32 +#define LUKS_CT_LEN 512 +#define LUKS_AF_MIN_LEN ((HC_LUKS_KEY_SIZE_128 / 8) * LUKS_STRIPES) +#define LUKS_AF_MAX_LEN ((HC_LUKS_KEY_SIZE_512 / 8) * LUKS_STRIPES) + +typedef enum hc_luks_hash_type +{ + HC_LUKS_HASH_TYPE_SHA1 = 1, + HC_LUKS_HASH_TYPE_SHA256 = 2, + HC_LUKS_HASH_TYPE_SHA512 = 3, + HC_LUKS_HASH_TYPE_RIPEMD160 = 4, + HC_LUKS_HASH_TYPE_WHIRLPOOL = 5, + +} hc_luks_hash_type_t; + +typedef enum hc_luks_key_size +{ + HC_LUKS_KEY_SIZE_128 = 128, + HC_LUKS_KEY_SIZE_256 = 256, + HC_LUKS_KEY_SIZE_512 = 512, + +} hc_luks_key_size_t; + +typedef enum hc_luks_cipher_type +{ + HC_LUKS_CIPHER_TYPE_AES = 1, + HC_LUKS_CIPHER_TYPE_SERPENT = 2, + HC_LUKS_CIPHER_TYPE_TWOFISH = 3, + +} hc_luks_cipher_type_t; + +typedef enum hc_luks_cipher_mode +{ + HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256 = 1, + HC_LUKS_CIPHER_MODE_CBC_PLAIN = 2, + HC_LUKS_CIPHER_MODE_CBC_PLAIN64 = 3, + HC_LUKS_CIPHER_MODE_XTS_PLAIN = 4, + HC_LUKS_CIPHER_MODE_XTS_PLAIN64 = 5, + +} hc_luks_cipher_mode_t; + +typedef struct luks +{ + int hash_type; // hc_luks_hash_type_t + int key_size; // hc_luks_key_size_t + int cipher_type; // hc_luks_cipher_type_t + int cipher_mode; // hc_luks_cipher_mode_t + + u32 ct_buf[LUKS_CT_LEN / 4]; + + u32 af_buf[LUKS_AF_MAX_LEN / 4]; + u32 af_len; + +} luks_t; + +typedef struct luks_tmp +{ + u32 ipad32[8]; + u64 ipad64[8]; + + u32 opad32[8]; + u64 opad64[8]; + + u32 dgst32[32]; + u64 dgst64[16]; + + u32 out32[32]; + u64 out64[16]; + +} luks_tmp_t; + +static const char *SIGNATURE_LUKS = "$luks$1$ripemd160$aes$"; + +u64 module_esalt_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) +{ + const u64 esalt_size = (const u64) sizeof (luks_t); + + return esalt_size; +} + +u64 module_tmp_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) +{ + const u64 tmp_size = (const u64) sizeof (luks_tmp_t); + + return tmp_size; +} + +u32 module_pw_max (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) +{ + // this overrides the reductions of PW_MAX in case optimized kernel is selected + // IOW, even in optimized kernel mode it support length 256 + + const u32 pw_max = PW_MAX; + + return pw_max; +} + +int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED void *digest_buf, MAYBE_UNUSED salt_t *salt, MAYBE_UNUSED void *esalt_buf, MAYBE_UNUSED void *hook_salt_buf, MAYBE_UNUSED hashinfo_t *hash_info, const char *line_buf, MAYBE_UNUSED const int line_len) +{ + luks_t *luks = (luks_t *) esalt_buf; + + hc_token_t token; + + token.token_cnt = 7; + + token.signatures_cnt = 1; + token.signatures_buf[0] = SIGNATURE_LUKS; + + // signature with hash and cipher type + token.len[0] = 22; + token.attr[0] = TOKEN_ATTR_FIXED_LENGTH + | TOKEN_ATTR_VERIFY_SIGNATURE; + + // cipher mode + token.sep[1] = '$'; + token.len_min[1] = 9; + token.len_max[1] = 16; + token.attr[1] = TOKEN_ATTR_VERIFY_LENGTH; + + // key size + token.sep[2] = '$'; + token.len_min[2] = 3; + token.len_max[2] = 3; + token.attr[2] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_DIGIT; + + // iter + token.sep[3] = '$'; + token.len_min[3] = 1; + token.len_max[3] = 10; + token.attr[3] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_DIGIT; + + // salt + token.sep[4] = '$'; + token.len_min[4] = LUKS_SALT_LEN * 2; + token.len_max[4] = LUKS_SALT_LEN * 2; + token.attr[4] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_HEX; + + // af + token.sep[5] = '$'; + token.len_min[5] = LUKS_AF_MIN_LEN * 2; + token.len_max[5] = LUKS_AF_MAX_LEN * 2; + token.attr[5] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_HEX; + + // ct + token.sep[6] = '$'; + token.len_min[6] = LUKS_CT_LEN * 2; + token.len_max[6] = LUKS_CT_LEN * 2; + token.attr[6] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_HEX; + + const int rc_tokenizer = input_tokenizer ((const u8 *) line_buf, line_len, &token); + + if (rc_tokenizer != PARSER_OK) return (rc_tokenizer); + + // hash type + + luks->hash_type = HC_LUKS_HASH_TYPE_RIPEMD160; + + // cipher type + + luks->cipher_type = HC_LUKS_CIPHER_TYPE_AES; + + // cipher mode + + const u8 *cipher_mode_pos = token.buf[1]; + + if (strncmp ((const char *) cipher_mode_pos, "cbc-essiv:sha256", 16) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256; + } + else if (strncmp ((const char *) cipher_mode_pos, "cbc-plain", 9) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_CBC_PLAIN; + } + else if (strncmp ((const char *) cipher_mode_pos, "cbc-plain64", 11) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_CBC_PLAIN64; + } + else if (strncmp ((const char *) cipher_mode_pos, "xts-plain", 9) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_XTS_PLAIN; + } + else if (strncmp ((const char *) cipher_mode_pos, "xts-plain64", 11) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_XTS_PLAIN64; + } + else + { + return (PARSER_LUKS_CIPHER_MODE); + } + + // key size + + const u8 *key_size_pos = token.buf[2]; + + const u32 key_size = hc_strtoul ((const char *) key_size_pos, NULL, 10); + + if (key_size == 128) + { + luks->key_size = HC_LUKS_KEY_SIZE_128; + } + else if (key_size == 256) + { + luks->key_size = HC_LUKS_KEY_SIZE_256; + } + else if (key_size == 512) + { + luks->key_size = HC_LUKS_KEY_SIZE_512; + } + else + { + return (PARSER_LUKS_KEY_SIZE); + } + + // salt + + const u8 *salt_pos = token.buf[4]; + + for (u32 i = 0, j = 0; i < LUKS_SALT_LEN / 4; i += 1, j += 8) + { + salt->salt_buf[i] = hex_to_u32 (salt_pos + j); + } + + salt->salt_len = LUKS_SALT_LEN; + + // iter + + const u8 *iter_pos = token.buf[3]; + + const u32 iter = hc_strtoul ((const char *) iter_pos, NULL, 10); + + salt->salt_iter = iter - 1; + + // af + + u32 af_len = token.len[5] / 2; + + if (af_len != (key_size / 8) * LUKS_STRIPES) return (PARSER_LUKS_FILE_SIZE); + + const u8 *af_pos = token.buf[5]; + + for (u32 i = 0, j = 0; i < af_len / 4; i += 1, j += 8) + { + luks->af_buf[i] = hex_to_u32 (af_pos + j); + } + + luks->af_len = af_len; + + // ct + + u32 ct_len = token.len[6] / 2; + + if (ct_len != LUKS_CT_LEN) return (PARSER_LUKS_FILE_SIZE); + + const u8 *ct_pos = token.buf[6]; + + for (u32 i = 0, j = 0; i < ct_len / 4; i += 1, j += 8) + { + luks->ct_buf[i] = hex_to_u32 (ct_pos + j); + } + + return (PARSER_OK); +} + +int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const void *digest_buf, MAYBE_UNUSED const salt_t *salt, MAYBE_UNUSED const void *esalt_buf, MAYBE_UNUSED const void *hook_salt_buf, MAYBE_UNUSED const hashinfo_t *hash_info, char *line_buf, MAYBE_UNUSED const int line_size) +{ + luks_t *luks = (luks_t *) esalt_buf; + + // cipher mode + + char *cipher_mode; + + switch (luks->cipher_mode) + { + case HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256: cipher_mode = "cbc-essiv:sha256"; break; + case HC_LUKS_CIPHER_MODE_CBC_PLAIN: cipher_mode = "cbc-plain"; break; + case HC_LUKS_CIPHER_MODE_CBC_PLAIN64: cipher_mode = "cbc-plain64"; break; + case HC_LUKS_CIPHER_MODE_XTS_PLAIN: cipher_mode = "xts-plain"; break; + case HC_LUKS_CIPHER_MODE_XTS_PLAIN64: cipher_mode = "xts-plain64"; break; + } + + // key size + + u32 key_size; + + switch (luks->key_size) + { + case HC_LUKS_KEY_SIZE_128: key_size = 128; break; + case HC_LUKS_KEY_SIZE_256: key_size = 256; break; + case HC_LUKS_KEY_SIZE_512: key_size = 512; break; + } + + // iterations + + u32 iterations = salt->salt_iter + 1; + + // salt + + #define LUKS_SALT_HEX_LEN (LUKS_SALT_LEN * 2 + 1) + + char salt_buf[LUKS_SALT_HEX_LEN] = { 0 }; + + for (u32 i = 0, j = 0; i < LUKS_SALT_LEN / 4; i += 1, j += 8) + { + snprintf (salt_buf + j, LUKS_SALT_HEX_LEN - j, "%08x", byte_swap_32 (salt->salt_buf[i])); + } + + // af + + #define LUKS_AF_HEX_LEN (LUKS_AF_MAX_LEN * 2 + 1) + + char af_buf[LUKS_AF_HEX_LEN] = { 0 }; + + for (u32 i = 0, j = 0; i < luks->af_len / 4; i += 1, j += 8) + { + snprintf (af_buf + j, LUKS_AF_HEX_LEN - j, "%08x", byte_swap_32 (luks->af_buf[i])); + } + + // ct + + #define LUKS_CT_HEX_LEN (LUKS_CT_LEN * 2 + 1) + + char ct_buf[LUKS_CT_HEX_LEN] = { 0 }; + + for (u32 i = 0, j = 0; i < LUKS_CT_LEN / 4; i += 1, j += 8) + { + snprintf (ct_buf + j, LUKS_CT_HEX_LEN - j, "%08x", byte_swap_32 (luks->ct_buf[i])); + } + + // output + + int line_len = snprintf (line_buf, line_size, "%s%s$%u$%u$%s$%s$%s", + SIGNATURE_LUKS, + cipher_mode, + key_size, + iterations, + salt_buf, + af_buf, + ct_buf); + + return line_len; +} + +void module_init (module_ctx_t *module_ctx) +{ + module_ctx->module_context_size = MODULE_CONTEXT_SIZE_CURRENT; + module_ctx->module_interface_version = MODULE_INTERFACE_VERSION_CURRENT; + + module_ctx->module_attack_exec = module_attack_exec; + module_ctx->module_benchmark_esalt = MODULE_DEFAULT; + module_ctx->module_benchmark_hook_salt = MODULE_DEFAULT; + module_ctx->module_benchmark_mask = MODULE_DEFAULT; + module_ctx->module_benchmark_salt = MODULE_DEFAULT; + module_ctx->module_build_plain_postprocess = MODULE_DEFAULT; + module_ctx->module_deep_comp_kernel = MODULE_DEFAULT; + module_ctx->module_deprecated_notice = MODULE_DEFAULT; + module_ctx->module_dgst_pos0 = module_dgst_pos0; + module_ctx->module_dgst_pos1 = module_dgst_pos1; + module_ctx->module_dgst_pos2 = module_dgst_pos2; + module_ctx->module_dgst_pos3 = module_dgst_pos3; + module_ctx->module_dgst_size = module_dgst_size; + module_ctx->module_dictstat_disable = MODULE_DEFAULT; + module_ctx->module_esalt_size = module_esalt_size; + module_ctx->module_extra_buffer_size = MODULE_DEFAULT; + module_ctx->module_extra_tmp_size = MODULE_DEFAULT; + module_ctx->module_extra_tuningdb_block = MODULE_DEFAULT; + module_ctx->module_forced_outfile_format = MODULE_DEFAULT; + module_ctx->module_hash_binary_count = MODULE_DEFAULT; + module_ctx->module_hash_binary_parse = MODULE_DEFAULT; + module_ctx->module_hash_binary_save = MODULE_DEFAULT; + module_ctx->module_hash_decode_postprocess = MODULE_DEFAULT; + module_ctx->module_hash_decode_potfile = MODULE_DEFAULT; + module_ctx->module_hash_decode_zero_hash = MODULE_DEFAULT; + module_ctx->module_hash_decode = module_hash_decode; + module_ctx->module_hash_encode_status = MODULE_DEFAULT; + module_ctx->module_hash_encode_potfile = MODULE_DEFAULT; + module_ctx->module_hash_encode = module_hash_encode; + module_ctx->module_hash_init_selftest = MODULE_DEFAULT; + module_ctx->module_hash_mode = MODULE_DEFAULT; + module_ctx->module_hash_category = module_hash_category; + module_ctx->module_hash_name = module_hash_name; + module_ctx->module_hashes_count_min = MODULE_DEFAULT; + module_ctx->module_hashes_count_max = MODULE_DEFAULT; + module_ctx->module_hlfmt_disable = MODULE_DEFAULT; + module_ctx->module_hook_extra_param_size = MODULE_DEFAULT; + module_ctx->module_hook_extra_param_init = MODULE_DEFAULT; + module_ctx->module_hook_extra_param_term = MODULE_DEFAULT; + module_ctx->module_hook12 = MODULE_DEFAULT; + module_ctx->module_hook23 = MODULE_DEFAULT; + module_ctx->module_hook_salt_size = MODULE_DEFAULT; + module_ctx->module_hook_size = MODULE_DEFAULT; + module_ctx->module_jit_build_options = MODULE_DEFAULT; + module_ctx->module_jit_cache_disable = MODULE_DEFAULT; + module_ctx->module_kernel_accel_max = MODULE_DEFAULT; + module_ctx->module_kernel_accel_min = MODULE_DEFAULT; + module_ctx->module_kernel_loops_max = MODULE_DEFAULT; + module_ctx->module_kernel_loops_min = MODULE_DEFAULT; + module_ctx->module_kernel_threads_max = MODULE_DEFAULT; + module_ctx->module_kernel_threads_min = MODULE_DEFAULT; + module_ctx->module_kern_type = module_kern_type; + module_ctx->module_kern_type_dynamic = MODULE_DEFAULT; + module_ctx->module_opti_type = module_opti_type; + module_ctx->module_opts_type = module_opts_type; + module_ctx->module_outfile_check_disable = MODULE_DEFAULT; + module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT; + module_ctx->module_potfile_custom_check = MODULE_DEFAULT; + module_ctx->module_potfile_disable = MODULE_DEFAULT; + module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT; + module_ctx->module_pwdump_column = MODULE_DEFAULT; + module_ctx->module_pw_max = module_pw_max; + module_ctx->module_pw_min = MODULE_DEFAULT; + module_ctx->module_salt_max = MODULE_DEFAULT; + module_ctx->module_salt_min = MODULE_DEFAULT; + module_ctx->module_salt_type = module_salt_type; + module_ctx->module_separator = MODULE_DEFAULT; + module_ctx->module_st_hash = module_st_hash; + module_ctx->module_st_pass = module_st_pass; + module_ctx->module_tmp_size = module_tmp_size; + module_ctx->module_unstable_warning = MODULE_DEFAULT; + module_ctx->module_warmup_disable = MODULE_DEFAULT; +} diff --git a/src/modules/module_29542.c b/src/modules/module_29542.c new file mode 100644 index 000000000..9493dde3a --- /dev/null +++ b/src/modules/module_29542.c @@ -0,0 +1,471 @@ +/** + * Author......: See docs/credits.txt + * License.....: MIT + */ + +#include "common.h" +#include "types.h" +#include "modules.h" +#include "bitops.h" +#include "convert.h" +#include "shared.h" +#include "memory.h" + +static const u32 ATTACK_EXEC = ATTACK_EXEC_OUTSIDE_KERNEL; +static const u32 DGST_POS0 = 0; +static const u32 DGST_POS1 = 1; +static const u32 DGST_POS2 = 2; +static const u32 DGST_POS3 = 3; +static const u32 DGST_SIZE = DGST_SIZE_4_16; +static const u32 HASH_CATEGORY = HASH_CATEGORY_FDE; +static const char *HASH_NAME = "LUKS v1 RIPEMD-160 + Serpent"; +static const u64 KERN_TYPE = 14642; +static const u32 OPTI_TYPE = OPTI_TYPE_ZERO_BYTE + | OPTI_TYPE_SLOW_HASH_SIMD_LOOP; +static const u64 OPTS_TYPE = OPTS_TYPE_STOCK_MODULE + | OPTS_TYPE_PT_GENERATE_LE; +static const u32 SALT_TYPE = SALT_TYPE_EMBEDDED; +static const char *ST_PASS = "hashcat"; +static const char *ST_HASH = "$luks$1$ripemd160$serpent$xts-plain64$256$107691$de4943f59812487b6fdde7cc4a2126286070f2b658cb3cc3b78f3b6c174f94eb$285fce333f51d9383aa24f70940ebaf06a2ff9e8ed1ef523f39e21b5254ac38795536d0eaa3e89ce5dde836ae67dbd20f866c8ef809e0e0100f986f5fd82e91db794f1f5821195c98b742783a17da1e9523930f7550c817d5ea8fc17e53d3e62aab900787c1a276944919c3d10c6da3c669b77918bdde58a608f6d4475073c1d394492f04fccdbead2f85f3d5321e357419c40d26975ef566970b18e56cb47fe887bd5eeff2009c71f777255a8f4b1ddd26b90397e5340acb76cfb403d8132a63aa2b6be0b78180c3d8a80ac55ed275e96a86a57bb6ffcd26dd27abb50ef524fd4e569922c987257038327c95eba030d685e21164c58aecb7eb19887bdbacf1d398d48d62dae89241f09fb7d5e0d4736243419f09dddbdae271895b40f49b0c26196669d582f8769c53fe70d227c5302da1008f899bfcd5c490379d42f8bf508a3a33a3e3107468f57688fc49c25e48c7b25e1a544c1945cdbee7bb47bfee5413571a0a0ff2c1e34eb5dc1dd126cd801e5da87e2354240025a592ae2a0b08069d50cc1986b7fec35db668ac81198a905a10caa005bb6a77291d73008e7a3c01c29438e068a7479dc86aa10b3fff3717435af5074e1edbe5144b817a67b10c0ab07aa68f92fba10e64ea9d06da88e8235e342a27cd46b03883aa932d94e7817d35c36f208e608516e227c9d80bcc077ca40f42964cadeaccee99a1253461b18bf1d5d96c2d42af563afe233c12ed1f7addddc35957b0de57ee6c93817fc6bb134cc82bac044d561951b93c98325d1dcb9fbc991e85c6bc507034161949d7dbf2c65e765d5fab5d814512f75009fd74ccb11f680fafefb4fb51d5237d6f7aa4b93875ee908bafd8539d15b65a0e02bf96794c8045f08014bf3fe8be2cc4048d3ed6df40c7be6668e63c5973763a55b59622390e22f0fef4d54631d17c71eb973b7846474dbc1c00bcb395bc885320cf683d2f01252b5c2c03458720db374050fe19352295ed3ff99af4404ce37aebaeea38de9365cbf65e53f0263925f9100d7e9be2eedc05e551c5c68d40c0bd3ba5fdb9683c4339de5882f02d8e5d3dcecfa49c205be188d90efc6a1d951821f1cf21633d9de3a465a1146980a408adaef83b32b28b2f03c72deeb022b27769cd0903401cf6418a4d66c18831bf6c5bedecda4a9010295d00d98b59b1e5758f35faa01e9a18247fe841421c6454f76b72513c56dbaabf6bc1c5fe788ab7bb529cfdc26055a04331c43eb7468d013b57ba891b5ef7b75d118024edcbd403a950f2b64d66e6573ee8ecd8f1a58b8e4048aceb6ce11cb8957b895f2eb80c0d8ebcc2cd33d7a4f97bcd1581b18b4cff195b06e7e2f909f6aea276ea0195605c540377cfa4d283160be41ed692f15f2c63bbb5a3c84aff8e628f45e5be383bc2d058eaacba312fdc4fb244e9f901b0986df5ab2ecd8c16e660e43f872489e2e333ba257de84c83502b5aec976580f2458eadfdc450383add589ea3162be7295f6a8c6be9bdc38d212fe2549b243408a4d30fadcace98db15f3766c254e67f8be74e2fa8222ce7c6760c878e3f22f0919e0c4902234f50d9728448243110a6426bfc613c6a133c48554865b087600b4e37d8197e0d3dfb9d8e683026102dda1c5a29fba6a41f7c8c19b1c42bf11599ad21f35bbb1ff3678f8e34f76e617e31ee7a76f4f0c20f9f01109647c1d6ff286221c99d587bf273f66320ad12f0da0ff10e7de60bb0207413a746d6f56a09b1961be90823ce62c179008c626c5b673e3935c752ac716038cb01cc31b8ee1174a5c0d8c5c623ee200da926110f27d3a9354a8ba60f785a8844c3bb35b614e60b73232b21636ebea4acc800e11546c9ab288d02cbe8be7a72577c664a26bbff29e42d110ca6a014488b16da45a871d4f7caf185aaf9ae403f7e226ecb8cf459ec523cd77aa5dc2b10d67006aaba896596a299457f3e8862adf28c0082b54a73cad4e4f827d32f4ef4eb903cd07f27571756fb41283dec996114f695b0b1bc5692a7176166ee0dbe32d5e0e35844440a378b0977a9326f68add39fe02fb562ab1b73a32d12ef20dd724456be8ec81fd5de8a039d446c5a516b0aa154de5c5d6552f5ecb9846a0736d85abe3a93c4154b3ad2563b38cdbc65dca22adf7c8a975f114d7c384964238d4a681930e3ee0c1a81009d75665d14d1c2624c94f0b76ff14a7422ad83937ccfdb52479bfc655f7934d955e64e4df05e4d2f7e74f6ea4e28aa2162384dd74520aaccf97736b7d287741cfcc850bfc954cf7d8c6bcc9ef4cbbc09147db347a429c55c76d18dd22c1de52b87fb282dbd40b6c6de5ee775f1f665e8031ecbaeeff8a6d7fb3a746f630f9950d8d02c69dc4597dc8f40222faf6b76c441513520eaca0e4ac6e7ab7ba580e15e34d328c1fbcb4a74ae34ef2767035f072cf53ccef043b5ed7dad5f0307da367ecedb49e21119c6bd59eea7a1d252c615fbbc586ac78d19f2264391b354abbdf2a6113408e370313cbee53fced24a574dc08431e94dd74bea0e9725fa7fdfac52de03dae71d2677bef9e029d594d1669819484deba98b38b21d7a163a209a7c837d332c86112ca505ced7e0d9810aa7036215ac26d32a28fca3254886cd1a8fd302ec7d3e75ddcda99cfd6bd9b41b92306b299f54e022542d46d182ef5c4b2b2bf80c410a3c4325fa7ce1a059232ae08c301fa95a4c60a485cf73c767371a9e2913c69d701724791862c15afe89517d27bea042d134f4b7263524701a51173d91049dffba4fa322261b0d6e1eec319812b00586dc0a0e26072ef1eaa4aeea0581f11bd980c79eb33f0ff463baa5c541048fa67f5a876d2f1599f895fd2f9e387b3d2c07e2441754468225e7e339fe225514df6b23403cf97ed9823ff6110bda620aab468ad3d7cf87030e8ae17e04bc2f1f3004d1a597952556c7078f12a64db7817815297a20e3ad0dc4df6c5faed28b5b12c8e8f846d93f016e33468b3833bde013a5c3bb522858561763be4ae3dea8e2747e650864cd8d511f8b157631be0b1a2dad4f784bdda6b9743a32b0d5f465207a7b7fe3f031e24cf438b36b3f9db9179ce35a141458a2334c7a0669c197ea6e79e8826ea987bac6efd62d53a6ffce13b14d6cf8210e3076fb3373e9288c4b24b7e3799033b5c4ef3fdc0844d171f815440d792d26a8cdbabd64bd6c0aafe72d91c8b3f51c5c11eecab80903463fb06c17f16b152d372b0b271bb70f6504dd1d3cb46d6ab63d304af11082bd01cb8d9c3202b7eab468f8a44094e0ebe9b007671970ab37d7de917e05a656bc64f943ebf796d1f564f7a94e83a9d56483678acc007a943ca0aaf3510cc48c59722f392b592d0dbc20138c6e3f3e54269efbff66676ba85eb4d0593c90c1f87ba4970d671b35a64f53dfb2bd96ccc1f88a45c0e37622bb04c0829ec5a8d87fae770744f59a951c90c2ba6dd8cfc55511cdd9cb9f0ed1650f94ecead8535c1895d6eb2e6200f2a1c133f5fdd0801a0d1494b8a73d8d4bd25b7d317abd49e56d624bf747d2a1b4f7a1e5fd24fd4790f86f38ab522a3367025224a56d926da82c557adf04a8d947a38553c216cf451beef312dbaab9c217aa825b4b8b9c9e842cdd85a4ee8b1801f3e9f978b3e8417b43bbaac700bba2fe25e5c0eb2d87c058daec8a64e3dc21cf433cd951a29c08dae3e9e9e0e428e09d77de736cc1de3f099ff944b80cebf9c86eb437b95b80093371e609068fe15cc1345983ae74953afebd0e8f41a07a21090e0cd9595b7922c0bcaa6666f41767c76e6caba1b705dbb962a4043dabfd48d0a63d68dc2f83b91b692516106884a3a9aa9215f958016a5ff7ee461f45a6db3c0264869fa3c688cf36063f47b5569b12fe52375bdd6a7088e6923c028094912eca7466c17ed51dd4c71a34ce843ffe5d160cd56cc5d05d4bc9eb7a5041b30539b2b9443ad7ec91966e771fb5387fa382fda661e9ff369d30a42365f52e62746dd7326f14ba01c42f3fc93bb92539b5c912d88dddbad62c7b84a25d4c1a1e4243c70ef29da829c52ddf64143669c5b831288b2a5a4c3914c08a2cf66be6e9a981303a8b2aa5906b13683de050a1a5876c13fa085266e0693daca3e62d74a379ecfe0bfb641d3391eb87580223e2452d5e95e2686e68a44c9dbc71473d7f584b5f3b55859d026abdf1427c0c4e2533d83842fd7142b157093c2e89ba6162bceb58c76479aa6165a3278b961fcd997735740c9f3579a74c363cdd8729468d6f7e549c596ae1a3e91c64a6fde8475130092998de114588a6531d1d3aa96e8e7933d35b8677eef6b844d2f3f9e7bcee003f235f7ebf89cc1d6317a98182956cec2315708ca2023711a9d88e282acaa213351aa8feffbb7e944c0f73174f7b0ed633a57efac8020234d2fa17a53760b97bf91807f3ae7761fbc7ae32e54d6a68cffe00db3805c0914488725bd3158d96a9612f4288e6d8f9746c8c6eda83c1e5f7b90b32d27303de84894d2d91c73574917b23b9665e45aff48da34b508c68fdf948705af585e6ca51a10dd5e6a737f77bf8972597d4ab0385c1b6e0807dba99eec9d0c863bdcde6ca3a48f1868d8debbfa9d034b369eb1934b4c09b626b805cd306c9d70472ababd59d899a39f262e7d820571cbb4d63c1eddd2ddf3b1ccd46a912fe158688402de99f3f973ebb95a8e5a1ff56b7a2ae03a0910b73631f655a0435e9351eafd92d9adae105d3ee71cca0c77b54df5fb2573150aaa8f4388e5ebd3b1989936382814494e4ea9c0a454554fa02e7a88493bf917b4d1c82ff9902bc37f8752e95d72cbe523fbe8e232574050ada97640c0fdc1c361fd0dcb4f2d52c720d0677f928183b918711da33f98c278028e4ba43ce6765237cb5ba5c33dd751ea7a7731c16eb41a223c50340e6dd719d249df5bac08cdbb1436943f024106f054aedc166e44a759bfc4e56db5842cb3fa3f296ed31ae50b6b0cc5f3445b2d0c989bd979e0d74d50ed536c3e44afb1d49660bb7c1691ba863f41779d83882e24dcca2a45a3665cb4ca4ad233826d8be3bb3aa4331371ad4278d869af0413fcd861e96acae2cb3620cd1fb4efc776b54e60499e83b8c0330d63115154f76e214703f5bbd660fe62144d3ef94936ee891fdc82b8fc126f5d9eb560b2ce3715ec3264a22ea5bbcbe58ac6b4ae8b9e687cbf27cd4418e9a1562f6d7b09f60715167d0ba408aec18d02a543d4a56b6f3bbbf35b92656335fff6cfe4e5ab36ea943a40b4356d7749d5e58473840068c088c7c82fd30afcd2461f2dc1b12715e6ba2a0c39e42ed4f7b9ec96d8c671b0981392adc2d628432a6435196cd30cfd248d0f37bb07594b57acbd43aa929f99b935f7f752bf838e33e3d66f01a449df8707b35ddb111a6a5114b11c7c08aedecc61aa613e25e63d194e6fb83c4ea61d7d8d569be25e747cdcdeb91f257843030f67ace217c0c1e4e2b3e263f83ecffbfb1b8b7b852fc7e740b61736f2af09f260274b3fe6f20617a50ec35ed7da93679e5649e1a9b3f55ae486e56b4f62018788da6722c6b25e3c03d09d787e5378a0402b48ae1a9a6479396b3324a12b0cdb9910dda5cbbda73b065d46c912c9b6c6e437e1c6779c981a2d10785daa3d510a78f183764c2430d12252007b334c31902200c2114c25ef657105d24314ba0d0ef64a51c5a85a2f965e1ad01164636d2d6cccca67faab4b7ab52a7a4456ea0a8093f345a683cd365c38ba18446b8235bd687e88fdb80f3c04dcee70d06a67343b0c9bc965b34d1c48809647c7078b0dc1f9bf2a9410fc25c47e1460454e3fcc8af264c21b40d24e3765b4728866b06f2f33f4000804c42aece6345c4f568b2e27efe5a6de357bd72220b26d7f8cccecd2b6bc825f1893cc326002e7746db06e0b2581c79ba98afc19cf69b6dda9215532fe87125c9732de67cd90b1ba71594ac22722982a983e3e0dbf9432084a9e553577a0af9a20814243b0b1023fb0689a18646506e58d30c9ae28c0860ec8ad20a4116101dc4a971b7609216acfed58be1809ddb8f4253569cd7c38718e1797d9ec03465fdf3422b530cc7fe7bc7a89a45484de5c950dc6bc2efa11556aca4e7166992ff793d635c3b4e790f73778617de19876efe7b538c7039e91eaf3eb2ad6165ab3009bf8fc76f76ec5b451a15286e85fce78d44b28f35c2f0ff822a2c690f4f2348372c460d58f5b2ac76aaf83b8862f01ca94939f669d3ed73c15a59345653476778dfab3c6c42bf2642f690a17069eff7e457af78c652ead6717de84bbd37001e3fde500b7307c9348a6564862a9002a767d71023c504c48f8056bf9225648ef90a97d37092514eab039d559f0327a8170c856cbb96d41589226815841c5c84ceffb5be3bb2900826d251023ccae878bf8ea11e17c3655b7d8998c78cc87d00899acc6f001fdc8bbd0944507954a1154412ed5aa830a814a98c0e2bf7240c91aaa301950a212ce6d83ada4f4b6ae1b285052e2ccedaa26574f136fa72b369160f981eb6a98c9956cc727582f2ddbb0d5a35d2a3df7c993f99067855bbdf997234e7238d8bfcab935de27a97c2c35ac81266334cb45afe2a394b4bb86c80f3d764239628df2b5f07443abcac9db6d71b8ec94aaea15da9c97d001badb6b15245d9e70f2f4966c7f1a6d2f575fda647f19f90761fc978918609076449d0bf59823c6a19a36dfa299f81b6eb8b5e21fdec897e24f6f4a7c88d99a1aa4f9b139dd39d84a80dd4568ad9ab42c4eae00fc298a6b417ff5b9370a6e7e7a2ac01c9029f2dbc31b1328c9b35dfa81618b34f3bf3d7c801d880d87e530bc218a10832ed6f9927b6359eb771deafe0038bd8554ffb36c4b6a6b047031eef3cddf0a9c8f66d83235b2e8b4241441d0b3ea41a8b2e3846c2045b37b7edc74cf1399db9757b3ae2b89a29fbe57e517ecdce3879c5be13c6273c64eac27d7a5d5b924712822cd5f38cd19a71f8e1c4ef8320dcbf5c60be02ef5921ab43a7b672c75f8d59acc2ce8d7d0f2869d2738f8450b23e3ad9326083c1817ee6c942c0a322dda17f0f2fcc9f38861afb92bce66a83df645e0493382e6c506683bca76ff881c2723dae22d5afa81a0356f0e25c76a502a8aae389fb1a5080dc5e8ea8f94829415e80d37660ffbfce9ae586f8b41daf4991a084f188b245eb78609aca59bd76eb807a8d7a812fab0c137d67564b1e192ca201f54384e6866982e467f026414ec0111f86915ea4f8dd458e33d2edc7d7bc838f16d33beb9f6ce0f252d7ce944a6096e8341da20afc187085906f9b2b6188930181a0845b605a55f1a0e5a30ac06a7b638750ff0f3de1d763a71f1640f0612e008fb16e8c29d13e02fa2effb4dc040efce0fe2ad3403397b24b2c30da1ce1bb83f1a6c08b6ef3a3263e66de80aeb7108d85614e50becf26a9efb1c6c34a6e7198aae63a2ca7aaf834382d8aa100ad5f0d0a61f9bbf0424ebf64d6c4f0402f73555a8ae59f2e9d9caddd204a85b5f1d910ef00f225ed719ea182ef78c360d028672defb47249b3805c66b5fb05ac61e313f976559f2377fa5e1a095cdb115d2ba29115b477f988ca2bd1f82b04a663a890ee509873ffc85c5bd2fe746c66c70dfdef8cb84d7cd7aa66969ef7a26a86a95540623bb13b08e27146d7fc3a78f1f90715db28f4f8eda752d877f6c667a14b1ecee744c35f999dcfb5d88607ac089b2437de9dc1c8a7fc01f26958fec20da2d4d6549835a1ca97372d04163ac78895f9f395adf13d20e1985bc1b456d2e4635d1280d2238c06be9c01e487fca6839b66cb68e87584f946dffb9901c3c1c15e5511de4f5387b507807fd2e3bb1b740927e048d6563a88003fee13ef3a832b7f189e0b96d5e0d4c2afb36cbf1cd9b03bf25e61f5349894b89fd6eef50aee665f853239700e837a4ee03791656e01467810df8b0eef9127b3a6404e03414803a3679085bd454f7afde10b6077e103f09430fbb45f9eea86dd9766884662af335061b68cae3972cf1741d9e7320c59c82632bd86e0f793fb18440432ceabdf941225587925013f1b83520b5f0d6c12081809d98ad0859c8e18a6bec6619afd847535ababc8431daa6e024c2ff462a39bc2165373d23bdaf4df7d604f02a7fbd2b06e36c698ac9680daaacbaf6d6252734ddc623dcce6e48cd1bb89378626cff06f5c2c0e576a40342ba350fd93d428aa1851fa668c19d540a0a8a69c3595781eccf7b60f3887eaa5033d1e635cc23a1d9331af0f933ae38f32c4a3614747aaebd80df7f7df38dd06e27d162e92130491a5103c91b89daab99e3366b9b9d922646824e576ac74949dff2dfc4f9a02b6dc9e8e880d79e1505e70db09047ec2e8a41c706aa18edf041ba269d7406db07fbfdca1272060828d9ac2895c3603ece3fb3f5f8056e80fe17713305b1e31696180e33efbc947b85714f208127425cd60a1a113bf6ce24ce080881a316664b477f8b550904b543a547795ec42640e8d886b2d22e280acee414c7bc333db576320d66890b8528c72f32fef8cd9dde3d168f4dd791249c04cb598a4688acbedbb5767227a95c4d5b8eafb58014818f9e622ec8aedfc7c0516d7bf2b55d2c4f3679ca4917106f412515058a964202d29771a8ee957c750d0e5fbcbc3e2e5e3f7d22c169548297754927875b64559436ee2daf14e94ba5db43df61481122f4fe0f59e79f16506ea2bb3970eb1717e9e1e6cf9492eb283ad680e5e8246184796fdb314a1485821080d76fff44fe8000686074a52befd128f072a0718d7a87d8a5ee89a8ef3217be91bdb13b111dab3be1e369706f87a4537ca5801a1a69d3585f4f6002caa52d37a2a49f0c26d092be26686d6cfc74fe87cd51a44aac73beb58d3fd742e03bb80da3ec29b1368b912c6495bbafb4c2f8df4af68b0ad32bd4ed1948a8c19ae08c97548aaa0683e6fe7259c0429ede071342982a0b34bb067bdb3b4af379aeabf9ca7e7f0ec1065cd64b7e9f9ef7e2f2c59af66049a15a466c45a78e6451a66e2201d5e87807a6aff474e54b2eee7ad19b02a2bfb4a57e7d97993f04b4d67526b92639b678647589abab52cb044cd5ff2eca67dd5867f4b012739f0de2efe374dd55d2c9d1362cb20ba2d6690f1318b85bf3652d603e468fec514758c2dbbd07acb96790034b220becc14f89f729a9fd8812d277ff7cc11f45dea9507492cf5710021053a8522a7c154ce9cb8cb797e59a7cd023bb64f3053adc09fab16606cf73244ceb3baa8798e85b1d380762b50a72bbafd6ef01dc9caf5751e6cb832f44c830920c78b864b445526ceec81965159c57f1ce9ceb60b092b287dbf6a20d94c872618b713b4877079193980dcf4487d29efbf156877162e99c2e6e7ffa86fefe170feeac39b9d07f54709db255691c320ed6d83029f5ae25e6ef66d9e2f8f2940b90bc6230c9ac6b9970f247417f0684870a982946dd91ab7fee02853ef4228f929edb31152a9b2020645821e38124528644152078c7029792a343a60b0c35b764e6be15bf0ca2cf614d2cfd4a459fb6343f74bbdca9450423c62b790b06a7db0fad475c82ed82889c73834942892af964fd42629ccac01b3335ef5ccaeb12e49d4e212036e74be4bedbcad86fb63a06075c07afb80a58d36e8157664c3f8cdfd786fc03fe248ec0d7b2fb2c99e5413439a0b0b0125b33b65e87b736427f69671a7b60b8b72d3605b030f186626a7f0d0b34d61075435245bfed622bcaaa7c03583538db1d78adaf0d28098f82aa1fa912992c9711efcbe13d45fd270b7d37a4f44f7ab86c26b2318fe28ff0e966b1c6d409b2357cbfa7cd40b293f54c98c443003467b9ad3f3f202bd813b096407305979f8405a4ffd83a9a6ab45363b494da8c6330a9c545ec47a9f1ef4d13b2396668e715abe35d7f79c83055207d7a7545e80c507146164300b11817a9356cc6e80182589a47f05b315c672561a7148a658dc1eceb3022df73bd74212364953f0df202cdb8aa8bcc9f16c3ea6cf7f3316963367611828c3d4d4be94631c14a62ed2030d7e4a542320ceb2a2ef9f0d354efbc10a09214bca4ec83c0be41e87a2543c5d02a8be542705ea097808ecef1bd0206e6687872f2a4d958eb8d34b12ba5a7ef25d2e4b2898904a80f1d46f9ce2a8a27d459a1d7f7f79c165790ebc5c15c1e8ea2bc914c64c9055426d44036b2d47dbe4bca0ac9503ccb45db2c0adeb4244ac9494f2969d5ad8eccca9610481b38a51187cf7936aaed4f20f9280600d9bd67d3b8f545eb456529c8b768a08b1ad5c4feffd218dc037ebfb1ecd2590d20d8c4e20981a64193b44ed71c55a3e856a15061646f529bf01167ae6dc26a1cb33b752d1594ed7e30ce99a1a47d416cd15ab94721da2fa6a27457589f586849cc25b5c2342853f4c9290b7ffdda49c6f7092dbcd99ad4efc13f50b53ac12b942a8a55c0e4f03c4bbe1175379cdcddb74113c1a5203ed8d5a0bdb76f59060cbfb53feaa5191554be003a87c8d7129cd79b1f96a879ebbf099eb92800ca5449f0a72da1af039d5ed9fd8b78b0774f88ef248d0c48869e97bb929ccee7e7adfd9b1108d4c14ad3c007e18072614c2c63c025d797c6cde7ffbdbcc91b4b27d2ea9e85d1b6afe816b108e921ec62f0143452cc639de1b8f83abe201ef032422f45f66f3b70230fe41d96485ea6bc03483caaa898616f1d36a20a27c6c1f162025e58df50e99de5a22d7de5196662d54b19a1a009176b6d2b02310eb9df7863b7df7a8bac6cc1f326c926b7a9eccdcacc706053bd3dcfc56789452d30fe0ffc514772233eb82183ba589ada89b9f23f1b6a69c9e70c443f1c8e5ea337d90ada1a43a6cf600f372e74ba91d5cbc0b40d1ad4909ee07a0f6c304e4f01855ba2819b382454cbfa8f9cabfa58698560fd8680eee3909e094fba5bab6b1024fd2b58f14c57bce20619fff744eb86fd9ea7c96632936b68b679efe4d91ed7a3f115e1c583b3b689f665e53d97c664c89df0851a2ff63c0befba84f898dd0ebe54ba53ebfb36ad6a8f0a97df453e369e74a3e3285e524b54ed36ba4b218b29fb861680b6fa8a1ed1cb9f5e234f49d06d74f4f379ae710a36e8ac96d964b3ea3aa31d91724f8342767dcca10a098b489bab577869b16eb5bd4abd3f9e89417a5e8e3349ceabd2fcf42d68d3135a6d653229c682e97a884a1e8888bb87fb06d90ec973fcc7241c3a337d0a5b4d641376b8e38ec9a7931e758480ed888c7a5cc82f782c76e632f65b1cff51e321f065eb4b3f3675f99a7ce4ce1910a0d023d915b37bdf67e3030ba0eff2c5708546dba22e73be376d792580c03cadee7e8887e3de52623cf8940e35075e9941c8f522c9afc10a87a9228e9c2e2aebc3f0b00765b3e4abd3ab288e4e3abc4d990971bbf6f0c15ed479c7e3004d66f7bfb91c755286652664f36b811e9509c1b9cdce1a17e24cf3354f1521fcc01b950779473ce2a8539080ddc3e006ab90c99becb2336f9f0ef8bea09ea91b474a2a7e0b09cefe7c6134a6fb34dd6cbdf52088d54632f44e1b876d40a05f38bed9b973a5669cf5b1872f81ad4a9ef0f9cfa04452172eeb12d1be0f2d22183558e5028ba0a00abb1fb8466e612781ef6916869ed5462e8d89b93eeb371ecafaf6f37b091ab217875f8b66508248366aff7115ed0c9d999d005728658518d556d73bc1b184f954acec84e5ba7e4a4e8bf5f1274627643645ab7554f61dcdc7580a5ee3fff3594f0f88ae59e5c6a309d98f77958af7d4f6e6d5ef828354e73e49395439d6ab75b15da00ac34eedc8b341fbf04201d2f868ba812261f410bcbd235e01f2756a36263e0461fb693025c0b6638f9eb7caa5170912c310f0f72f4f736e0f905e192c1b9c3f6524c632da82261f154900ce2f44ecfc0fd982be4cc151b4a438606c74347382c7d00c302c98a1b4412c8054066d1fe17d75b6a78e1ff8a2b75f4efe3bf6e84f3d5fe824ce21fb7e9c1d6fc8624880e39e57c2236e76b93054475e29dd415811b9a46e668b5ef1292c0cf35104641d55b0a93ff489aec3b7b749771f5d81129f3024828fbfe113f2f9603a2770495045455d24f3e7fa25ba363e613fbfade58157bae6b2513626dba828bb6971c403b788f386acafa7bba1ee8ca5f055c4cc5b6e590ad916405a2e8854393230ecb1ee0cd1b99ff0444e357e54f52992e90de67faa41aec3824e272c8851119c9de6cb08e8501d71c24b6cd48747b232a398481c3dd6dd114a2615a8981464805c3b01959438de965c18b5f560b12a9de257daa0ca85c399b8257cbcb8e7f79dcc3ee48da29d536ea045cedbef1c45ef472c9339d665a55cc5f98465fac6b1db2da660be0ef5d1dc40070bf1708b828ae0883faa8e055c395939f8633febf0158471f83b7f74238dfc55619e00a1c4f5e17ebd0e3efc497fa26c7ad2ae42d0421b8c822f0ed64e3513cc78b5d02f7c67a7bc7304be1883d6b62865b39f153c44029a4fb735e306f445db6ca1adab3ad0839c9e2269304f0a920e885cb9341c40a2c8cf5d9d2a1489e8e94c157cb8a6dd13e3ef3b8c8510b565dbf741ddf090cbe1b2c88b4ba872d453a5d17b62309c070c23bac19e6775975877a0cafe3c8bb3869e3f595f5663d49e82183cac148c1309e53531e3cd9f116980b205c2630d643a4cab1b05657401bf78f0c9041ac48c6478d95a639bb5cc9bcfd12c585f11e53fe592b4e707d86365e58187e5bc46b63f2d55ec8d22f010f524e2056aeb9c52db82362358bc6a97f2d754be74567efaefa733c9b78cb4e01eed985b619a9c1d637df1650e5426bb5cbefe2791990f087ff8b9d92d92b01148b9b4e225d407979e96e0198fcad750710f23b7ef465e0a948cc320d8434300be9973c0602a8aa3ed10c47ce5454598683c8f3aa8d2edb8436ce7536cdca9c161371ba1d93091ce121ba22f96d4037c73e0e47dede225f966a0e2e8638bf1d37f40e2852d6843cce112fb8f8225ba134d4143374c2054cfc9ef247a5326a89c8b45c808732e871634acab885ca351e8ba53b3b32d7a5754bf0a0fa15e975d4d6ff20d01f8b4023d55e2a907e212acb373a6d125d6f0bff1c080c11fd3cd4fa48be178810bf437ebcfe9c953da71c20a76b16212df3f1687b699c77cdefa4bb5cc93c52023720e7ab805ea51222aaba7511e91288ec8180f57f627985fd5e82a1db56dc627cfd1bdc1888613709f6e02a6aa582b7f366910d83691680f85963bf6a34a6422d651c1826d1a2ac740ecf84e448c0d719122ebf75daec095c071e41805de3a0966faecf5be79ab710d60f3644fc67593cbe1dd67ac1782e8ca0379da9cf06d8b746f425b3408b62f165abd681656cb880db9f8275baa152b13c52cf75c581085c13f5e7d75526454c6a7cbf5dd4476171bc156fcd8e20fd426205a73cf129a533b0ae73446679e75bd8c0b3ee8a68c8466d26207f361ce3eb64c39a7ca1aa61fad4cebe2718e74ffff8c3fa65e8cb412b1f85c028f58434d46ff50ef4a0687b2bef5517cc6cb97dc5d5b0c37741e967f4cf9b27f846cb97b484ab29a2814735cfbe2a30ad5bc85823997859fc02eae538272603905cd35b3d8c669f1a26d54d64fb39facaae9f9952bf84b2823e1479e372c3e28b1f23817d54041aa2d9967d93132a1d20de189993a65ff46f9b1f1198e2a9373819b811e4648e303e8c988b7c6a26e3dda8da3dbba561798af07f791bf328b5e1072e0c015c5efe380db3ad42789267999645feb12f1db06ce2b86e627ec067be02d54c43befcae99f781d23379f98d65add689b0c7b9d05cb5ca1ce19bd62aec56417b45edaf7376fd579ce0eb5de8c030433caa9b3a5d487fa5324339fbf384b854bba162115218df4f9d1cb4ca94ceda4d23a4b109e3aee9ed93cbff056fe411dd00e3a2beea134046a07d47a39c3b385afc90ebbfd907b08aadb5af249c24878af1fcfec1f45e4f814764bd710c3265ac11824f6e9c232512167274c15f4f591776ef231bf32d953884d4cdb5f1a8f3ce86cdb65fea5fe930df8f4a74b90032a0fccfcac6cf498ca135b7847395e0eee09635c082d5c6318fd15d2d165a0e071f1dd70c2f645d965395a35c6395bc15b8fbd383a304f5287a7fcda2216178fc00e13f4389020708c00f385ebd1b01c37173a71370d7fceee00b5ac32a8a1338f943584c258ec686946f652c1ffa29baab0cba54aba4854176adbe3df8ba3462ec9aada4f114bddacb9b9aabb6ebf8b66c9218c22e41aab9f0f378d560572fea7a3a37bcf6126d9d509b31f25d396685aced83a04b185d8fd95ea534f1345d3036049e6169c0b39a4e16efb6f9ac5f2622a6d64626aca5d24f242f97666dabe567a77f4bbe2f55fdf1e890af330081116fdf8502490060471861fb8179fadbe1c475527ac155b61ddc7a5b10d1ebb9cac7d4bbfd03a954b395a74353f130b0fccdbd38a796c5a49459b7db330da06182094b491ad0eed04c3397717c776b00b07ee54916e00af727451e0195e8939a3f6028d37741231c85e535ba6c1715f2e51d39a1a92417b2b8c1ce4c6559a4916941a69783404b1811e7ccdcfdb0f47799300ca9f785083752821dee7e81ef683a4195f41ece2d443da751a9f949b094a1fb5ae204b375041d7360a21affd8c1ea2b38767e00197d91d761bcdac3a62b80d90ee5a64eaade42161ac99f1b22910c0fcfe78629e269588f4007e5d56ad4b27a1f724f7c1271c4bae588f50b7d3be6c9668d9f9c80f18e6b314e40ff9e454ee0fb2e4d5cc520fb4c1b73c56e002dbe1b8519f6f99e239490a1c94aea407cedef5a0b2e674ada9a0b2f0a8aa100c60a19cfae19db8843df7154b7ec6f646109f488911b83c4553bd40ca18cca99568cb1d8119c5fecf9292f574a97fd22888711dea75ee6eb408edda56ced8019356ed7c87d8f4682216bba3b8c5103921a9423afd98ced61108992c3e3334900169335aa1e8d4e0e384b7b5aaa5490392a37601d63247bd55c42927efecc35bda5176a7b52906b1a40d4523d274d759a8eb6cb3b15b9a9ca2360a7c7128f5d020c4462abecf5c3dd9eac8b84856425299ad4322a2bb650853452c72830ad8a32f07ff03b336ca82eef3ff91e38e3e81599e515ad4ee2289dcc5fef43a6104b7d6388b8f556431cab1338219d9fcb2ea9405d0e32550eaafcb0629a04c5a701165eb30b86b4ad226072398eefc3d787db3bfdd4753ae9131cdf01a9c9deca987c9bbec14e14abd507cc8b9c0fe4d76686660e763dee7d6cd91d87d7c8b50f880d10f7eb0aa863e17bcd11b7d6f2f7c9c366af6d64854d7be08f5c9ce82f9d2859427e107572cd8af596af671f5db5d0428dd27325718ce69f0ff706a9df7ba7a3e53221db18012b3cc67a47a7787ecd2685575f92343b0f3a05013a4be97173cc3d68d8302f7611dcc1c293499652680d069c8bcdd550f1b77311cd9e17c50e901d3a5e3db7e0105293457db3fac34ccb210eefbfeb4fe58eba2035d810a0521fa172c1c0a175888dd3a0a6771d1016f14cab9ab49b81346c7d3c0a2479e12aae331bccc0709f9f11e0b41e11c0dabdd3022b749aa1be3ca2d8f5f5c096417b52eda9e49eaf7bc991a03a88f5155b181152b43bfc801a71b70af3d525ac442aceeeb4b4c4077ca6b85ae6d16d63989e0ceb5fc6df093ce3aa52bb973a947337294f42fc0d5cf1e6e932c0d2dc5138bf422356ad309709d514823139e7f6a862450c365cf92942fd94283ca5b73839017e584010d2e72ac74f655dba1a0ab8e4107ae53e4b2f8ade7a18da006108d68c1e493aa4e0985907155d30eba2da07b6003ce0751b501dac72c1c628d2544665f3502b1348838b8897099b3f05a2c0bd90bd37981ceb9ba18435305bb5a3e7efa049a72db462bb121bc49015b9820d0e0a0629eb2fd77f4252c46cf9824c912fd3f39c55b0644b8314dc182ff59c7a5028a924398d0dd93616947f5df0bdb4430a93c0fdbf6d486335d3f27b614ab5c464db279480ea767bbd6ad7528f35a7179efa5c9b5f5555fab49d3e29ca073ccf5cb3bf757805eabaa66071388e8be75693b9880b0c61de32eaec02598d9ee1363b86a6293230d8b73ce75153261b2ea8e5e3216576ae924496be596c04320d313d1a5198769fdc6881168d81c54538894ec33107452ec93954cfc27ac754963b62fee544c5e5132e77dd873a03bd66d0769a15ba42bfda5847fb2d0664d466fd0b48654554e3a2885e8878ce012855c5e64855885a04e1099ba658b9756769d93ea388423938a178fdfae3fb072637a63fcd0b2766697219541a13fd69ce59e4df818fe213492469a2985815ad3653b8a72a74eb6af643670a3690bfe447fa5be7d6d8dabab5c3c088f856cecaf86f7cb59d5221b08328b5625af3d93d9db682a5481186e1e7596ef86f5ca8d9fe000e3b308a6c3610631ff4686a3f3ea22e8072718f895ab7b716eeebcdf74cf395dd31bc1caafd69f17ea9640c36c2836e9241eb36b51a02c154bea1a0e26581dfb202b251840b8716a8f1ff87cab07352aac523a65053ad31fa239bc62a652b3e1d99657d6be96a65f6a84da3e04053ab40a1ae26fe0b1d79622d7263bb2d10ae5edd76c99e7c0686b3f8e36647c5cd89a4abf52e71d75580484a3dd9cee62dbcce3db85498989243a792e691179b5636b0ca1fefed1f8719e74407edae0310757e3e32a8241a8ef1f29fa82f2393ae2704c47c9f6ff61c66dae2ccd6bc5eb67504457390b2da5bf6e309543d937212131321d4c223b8afb18872c93cbb4348b5a3f1ae776ad72fe131bed9a05899d7b62ed3838eb3a8bc4cc3e9c9a58bbbc5caae747f5ff1e39e4ac99a668314858237563b77e6b29371791f048dbfd813ef7fa30c448ac80a7ffc7e43343ece9c3dc83cd1e69f4546e099d4e3466730d0c681f4cb19cdb693493c11ad67226d3fee2e4ac23073f22270406121503c082c11b3be17ad5119086080552822a36b253d499d3ad45d6a3f1c66248d7b1a293a9777c1bdefa791e4d12bd945a07ce6507bc81e83acfaa74af2536e04a9ff4ef456c72059b78b1e3495004103b8163c5e9516ef8c0670a339c9fd00a20cb5c6665ca317a0f7ae44071a951ca3dda4f1540bd8bdf19b184d1228cb5d2987dfe8da038d1514203c057139b4e3809b013c29f80227fe866fe5c55eb94b8c312237ad434da7d7cba0ac2eff34a26c8f67dc58973f171c55a1f74585357dedf32a72c38c0dc0e208c024fb278abf611131f77ba265d3c45c9d7fa259c31b31062951cdf4d84a053f809a1f381c27a76bdd53ca74ed1979b81838faf68c74e50a3cd8256e372f95a94ca10b10d4ad2834a28ed2e4414b203efa07b62cfc2730f40a65b46a1839a8f63a8f759bd5e492b942045b5e2711b05c094087c1ec7bd38f966a1562096aa91e45108be53f23093b8f157f8a65b0db9a272ecb2fb775a310921f55771a48802e17d461f8d7e2abf0fa3ab2fb221ef14845163f616bbfdec4f02a6b3a1c3f742e53cc4165b38733d74747f302bb3a407f584646d36267b73271f014da02cad859d47a0023b6c9f4675bd72dcf447572d0bc6ff581060d96991fc1fe8bb4cb8d0f1e1f5d1b872f8097d68588434150195eeb206f8cbc6cba87bf8efd43b8590f348f2166cc2cd41c08ca70922d1d69566c76e286aa9e685f2b21662bacfd56b0fc1c5f28ab9958346360cd1f90939b6a08c3a56e15e9c6a9e5f9dd0167bed5f654734e89b273dbc2882b8dda543f8ccfba9bc743333994bc96be7da6dd6190412c09a05b5c15d80896a64dfade5adadf8d86724f7867a0931e1161865b244eb35ed6cdc86eab89ebb7f252d9529f3c6fb553c725c3962c94c72136299a1325283c908fac55dec7b0e77caa20ff63ccc51ec802a989a458322c5f2a008e9a7987f8dd4dbbedacde7ccf727b242c38b9ecc181312c8ff73c44077a5f14f3d5a2e9ca00a7812c7b3b9c6a2c475f350bc96c1a334227fb8426fea47dbfcb4386fdf48b308f5159c448b026cceb5977ee3339dac597a3c5fbb16bc20455c56e742b6cc44ac456d1f9fc9819a51cffa41e39c736fded754cad673a156b898115e932b7b370bd9656ae946b05c33ae3c7bc7231b6927b029a573bab0cb88f9fdaeb9e965ea0792ab702e2898ed8384426002ce742aa0b97939e2e0c4bf1b8e27ebf8fe44ed661f71996e809378ecdf619f8a257a2568a63358c9a92886f77c690d0d47dcd505e3c59b0109754a9404fe1f8f3b7188fe738db47226b680f88da9bc53eea0339e7a35ca27011bba204bf597b953d4f99a64462555364d5a576861da073cd44a704d1ef3ce79affc511ccee77cd5e63e0e042724e32350c6c57c05e3cc42ef0dd8b3eed46cb4f27bcadca53435e283db843907f136a3be3225ea2989a31d2102245046fc2f1e67735ab522396a1fafa1b6b94740fc8e0a8bda2bc94e6acab49c98a3a3672ee0e0983cdf053c5d59598be441c0da01a087de6243b9e46f25cc4fea8ef624308c4ce5abd9a55790b96d0cdb3f9ebc9ccaf326b4f0f2da7ef47cfb4aebb8cec09f68c38a1a1cdcedb5e5bb007fee8ecfcc3a7a53a8c132403e09cc7e1ac2bba4a0e8d18d950fece45f17b1ee3d8cdb54b81d4d35db1920e2354168fc8dc647ff2d2c035cf283b267a536ef797072fe76ecd7d3df28c75a5ca5b38a30302a3e762d2bd82bff2a7e7d52c8e40e36582d82fa46149448acd22923b880d082b5515fd2c21fc4b6dcfd0c1fb1f9862ca093b6272d58e0631d75a04e0df0a20a61a8c57bee9fcb1ab98d155f282aa768c5d35025a596cda2a324e5e63253192522f0603dd6004b212e2ae9249fb259ac928af9388dec2056c50abdec2bba3e889a7c5597dffeb394436725b8985ec04dd4d78524ebd4bfea87c1963bdeafcb3edc6172b0355e63694940c33baf84c17a43a655687342dbe8a236b9a9fe4343a8bbd47ea850e89c092bd9fa7f95de9622daf0f57ee893edb913ca6824faa81f94f4f34dba48dd1c646336d8a8c819a4cac2f7e2712ce33ca674351a79176ef7090522feb6eb8b10b2c7e6dbbd3dcfe3ca6ed733f6054fe1213925046f76a2569a40513267c1d0def24c3ba75b28de8406603af31aa96e66e06fbbcc5387a09e51a51f3a3ee7040098219cb1144605a4bb94fad7bac782710860c113888b4f907d902e3c5b1b6b292d34ebe5517f9e0da00f73feccc00fb3baa77a7514d4412bacf2d389c5730328dc8cd3c6f1e8a5806fe29a628a781cf190a6ec080e17e1e801b6a9f700ccd55387c06cc541a7b2cd3d3d464d3c53f07344ce06cdbe4a693c237a3dc1446b5b6024e6d654de69e30c67ee95215d8c782e378e17e282da7bc6b9c9a7c3f081ae307a1dbf4c92cf33c113369ea477078f16f0a68d53d3a2349c3c96e2e9a12f2b2dc54d32fac4eea253e7712e82065deaedd787fd08e24528f61d4c4ecdca6e59beb9b326721aeca770d677f963fed3853ba3c68f8d276d1661f4e0ab7eb6aeedc29e00ce53157f2ddb1f10aa79f0f1cab9094ea4d370344db6362920b871086ae74b3c0a68027ed28b0ac939002e906bd5b97c647bca6ee7980c5234ea6c315f93f8c31a5e8dc042e595cb8feed0dbbaf4aa06847b4c320106ab931c2f940739692ba378cb7cf0d8fe062cd0aa22b667137f7ef106bfd3838751afe0bfd8e889b6c916368e74377b9c065db7dc4fa4ba76407ce52fee1c78eb1dc94d2a94741a3079a8c75354255444c6ff9bbb08a1e1553f1c20a9114a9da50dca8d444e9300ef790feb231793a3eb237b93d1eff4ce414a46488fb6f6216eefcaf978e85f7f51b732e0c85a78fb0e1c33626c5a0fb3d6f899d8c3bbef6889455b7da169ae0c0a2ba1050af234e41a40c22c19edb308d3d48683955498f0e89f836e5af8605fd5b14f19a0903c493233e7f4b415dd6002bc0c92870c100fbf967cae7d4ea31e0b3c4edc4b146eadb6bec8a7f4e03f848c5917ad763d72e9793ae4622d1fe840e346a49aa1e02ed8d01d556c5643a0f025d7b9698bf5d485326bac68d6656aeab18c349464fedb8e33f61e653efa51430003027f44e8ca48fd1a7e0faaf9e55d1faebb62769898e6a1346a3524ee5d5132eece1bdc7174a2f5f9fa6baa4012c8639ff021a72b40097777bbf8ee383f1466462fa1831d195cad0249d28b60f35371b998b6626841b3c0caf3340c8edaa27732f34b061179cbbb8f46e835978f35139f247853689977b9fc29646ee5022f84238d0c74c6240cdd76c6ac96e6c5b12113faf6dad3189819aed5c0ce8aba05ee320d64d915626333a4f3151c4f34fc1314b430e5a47d46405c2254d02ef77f1dcdccbf620ac663e4b0bac2d0a67258bc570f8b4d4244aba5aa84b61ce9672ec62b93158b3a415f68c00c36ae379984a9afd6fb089615c72b33f97fba3c61674901e64c271b59dcd092a17aca691e1bb321da19b4c61a2ec6375cc5fc76e9138eada34c0b089b2962873c3d12d336d7f5e87e59119b6ee1f0e22b96dcdb7f10e2a5a7cedb667ce5cdc21e971e32422accae9179eaa383c1e6e4c75dd079aa98fff8db489e84137fef17b092932dac0be4c80a27addeb5de4b572d29787cd9d4bef5ac01ed6b2acbcf96386464aa714b7f853cc61a6273a18863bb79d1609da1526e368f2136dbe5d89ec5f03637988fb3a78d35ba0a25778bc3dd91d0fdc8a8407ea7b691944b9e36fee0a1b38b6cb6a6ad6a2dbf9356ec99e118a5c416e21904aadeb174b4b73c78bbd551025c5e2cfd83a972461b32de1921b80ecdee599eddf3988f186e1b130fb822e667650c2c94470a5d2aac1389192a8caf554b9b314be9c87302f5c27533372ab76bc1f42ed536794b0bf50f24f3fb481c57dff1491faf8aa0ab6dfead9daafe0f1abf8597ca8ed3eb6431735f989b2689f945aaf1ad93fa1df30a54cc353bd36ccbeedbcbd8e63b1d6c24f199756fc9d94a263a421b97d73924ff721aa8a7a2b457390ecb6534af76fb3136bfe38accc646bc824a74723d6f67cbac62afa8017cb188ed481100500d6a11b41f54c19a921f1b728aa95923419dc4faad87d50c09b43c1ecfd460a1337990ecefb0188e15bac2e9a7c43cbced715bedb225a94e9726fd2bc3b54494e93b3de65eb3b14330b1fe2ced536ff435d254c1138c412093fa83214622a0df38404155ac6f1b2cf6d1a02b2d92b10fe61303f2dd40ffa70c42dd9fedacc5142ef1b7ee1458704fc9ebce7cb189f1374f5c8058909ef21fb555a5f7a87fbc8fcd80bdba3a09d1b6909cb47ff2a29092ed59f6242365521eca7c01dc519eb39230ac407d7362dfa1d2c0edf453c39a6ec57a9dc41de55a5f8db66878af36b2aa05427c7cc6c964f7feda75174cebc5fd41aa532d1e8ee35a962af9e3d03c4a4ba57b703ca2fb9c5ba71ee9843b4c6736ecbe12303dd9d4e62fed48381141de725025704a3d691662c2ac70ab8ff4a380a352e45ba213b64ede12e31a659da6587bfb759f223c411eca342788f1c0daffaa7d036c4e010f5ed0421faca309ddf09ceca15a12c1b52e5f084a633538c59a8584d44b4d66074f6718eed3a69b4b1981766f93ab5ed13ab5489cde0ee64cc7a734b52076e3c9a3ce6594cbedd1a2d9a0efa769bdf8d20a5aeb850fad64c7c2dd2994dd1464154676bdc5329b5f9a08b51723daca21f823efb967101482690a63e0e98af829c60497e0a3736f57cd1e68f14616a287a36eac3817c1086e3974bcbb118e4e51f92b7979d496535bc9ac4fffda5623f98533ede5a3202551b1b87ef387fc5fd18166dff1b95ab8c7f1bfde893ff05c583e5b657d040317e1e68d9da0ea30dd9d191f716f9c811ce8a4077b42173936f349e6b401488db924073768e808f0301cc0dcc9155179c4ad8184c0e152e0d14844947ec61b6c83d2ae8553681fac7f794b12d36cbde02849aaa2d67f8f3c723d55d90a190800f7f55a376ffa876fd6a54ee098876db230ba6a77baaedccd7282b086cbea59880c3963cff41a8795fc517b639a1c1511b8820c7e742ac24407f40df703f69c45855e943345ea2aa7e0129045f2b5c9cf6e2f91d72006a2022f0efb8c3cf5be9fc9303713bc476560a6367bec0d0a0034fc1f48d15f194c1254d9a5a08d5a105d7331c3af9cdf0cc5a1e5c5c2425323b16dd18fedd3372909f37acd305f97340bc49192f553f47b74f13325a42d50cecb11ad3b6e454689e07b211d3c58eca65646402964a60f837f803560abf5fddddcefaa977d314e8e0e040a3aa2d3d8d39d3171e341d5dfc8df2fe1dbff942881b5d55dd36854882246260d6ee9283f36ab9266df5efc5275f2025bfbd1e9b6cf786e34da1ac9c94e24787641cc18029534edcb9d2f3310d49bb07c881202b392d79ba24ec8185a63fa47214b8a5a47c6cd323a3639977171c94b87f040a55a3ecf0b7645c3495bc952fe1f5e664ff75412242c30a19a548339672a4d18323d0eb0b5b9c745199ad4cbb076126d398876de5fd9abc4005a386bb4fac50fad1048c181118887f39781cfea7447ab00163a9dfb451eda3d58c4a100a23dce8a06278c64f9bb0e6982564d40d7fd5182cfa7ea703e8cf9deecee205f930992232f0cf266b4f22323af389ee09b5e20177dd39965b769e99caff59cf49d7721167919a5d28fe63fe46e7b10205f693da19dd51bc4b271f7c52b6747aeda913919ccf606bff225a6326864fe78b5978928f9f37d58cfd9e04a80d8560bd77ac77fe37a454cf71bfba48aca819262ae201432f752139abfe5e9bf10f5a7be16cb6d5c7bd0341a9424acbc30998b4964a3dae514eeb4d460d4f0087a9abceb63fffb323ba7b23942a6bc7f40f128e81174cd9c388c10293a98e9d5c05a1fbb9143a460f4f33018120f2f7a1e8630bb36c5a51a5969ea298c84911af02882d7a395151c51918edb0c9f00715a02e83c46a7de1e0971a8d0e2f0b9573cf63233c95ae87c13e1619b0cc042e5a3f73797937cc12e2eea5bf30adeb468f37f66ba13b828950cb0675db0d2a3a4ce896e47dbcacbc1711d100cb00792f6da45fcde8a38b31b71cd7d347c83419e28b46366bf6e3131fe11daf05f5c1f4af79d9a642bd0af0a2d1a5c9f453f9afe38dee121473ec28aeef9bd9ece8726494026d8d2221464106a5b8a9bbe91f4efd5a39736ed9e9f33ea751041093b7d70df30cd97f6a22534acacff29d16f772f7329a7ef9e2fafc9bed854fdce26285cc54fe512215a70b1f8155ca95ff8861da7c1d3e44b235662d93270d7d6ec990f6f80570e0a5a815b196db13c2f9bc0f8eca1a5d13b14c822de3d18a1a744836e4a3708b2bee88f71c80af27f2558772744d3dc27fc23f2144439da5ced73e0e70cd522e9123bd8a4a161d3c2019ebcb22988f0f8a6ba15ada6ed2f46ff2f76fdbdc34913bb7698f667f70daa10211b80e35bbea47c39e3c4f34a43d44474cf9ab9777f9f70d6cfc852ef5e3dd6ef2a0ddc01ae39113bb1bf96f0dc298c4363aa9650148cf1540669ce01d5f9a657acc8c3cdfa3f5c0d418414d10fa6fdc4f15ceddc3ed6646fffacafc3c666a64d6c02cda48456f2b3aa617d2f3d988c2ef9df95262d138819dde630f57e8d99d97afa33fb85dce1a97f14e1dda30f1e9ebd3fb5c4c4603f3f4b3bb6948c6809ee7f3294b147a5cded6d9567306c5ba1357b671b6a360d1fec73374f329da21e87139f4ffe470adedeae9cb8c1b152eb8b9d89fa3def352c5ea7db65d62838e7a6e7b455317fb4ea7fd677c8199ba708b60919334d122e7d3d79761732d57c7f5e33f5b2a01964f8396993719e08f1de2b6999fbd2f983b250449b5aa6bb382f80a9463467a93fca5bac898a69c293e105d0b296b931f5139cc36d877371068cf61d3f72b168023be79614b0b87f287fa12c3e5a0db09814e1f07a8abfcbd6db2a5838c7f53734f7da3750d0b19911f7e7e187c06fadbf8c3e3247a3377649cd0704986546f30bcdf05f5bb601414b7215759097106ac6b3aa9094681ca8108cfb7757cd638d617f943698f75ccf767ec8857e9f744595eb65a94f4a2f6ad799ddbdcc2210b10cb7cf94c52f362ef12c1ad9514436c38fc7f0fb7113103f5545bf28ba32679b0579b0713301e73671e0fb00e9a8d6a20a67b21224dccc44fc3fe25c1fb59b30adba9dc121da646aca6c0020e3e36cb09b5c5c8a3dd4e172048fbfa45db02bcab8c2a6275a54b2e99c7b90a15b546e291a0a97b10e5ae02e8697b3417329159b8d3af92a99b92fe1100ef38ef638ea3d508c43f39c5811ea1d905a838f494a2abcbcefcf60380b7970542f8d91517b4c8adf171677fc187c89e35c2e0f15ff1ed35bc7d371619b3629dfc8fc2de9e1dd402b85f604d57f422cb5d651b1c40d2e960335f4b139b5c871e0767d9c3b86030cb3de6a70261d62e04ca3acd7a8dede8023f6dac5db6ccd609b6f51b43e172a1b4243636e33093ae91aa579fe93d344481a8716eee9041d50e68cc6aad0c4f70dbcc83a96f19870463f6c6862c2a1d9afa0aa5a27b492c617492ef992d60c0ba360a164393eb3b247c598f8f57bd29716dacd508c8ff1156db7a3eadc9aba1ee133371fe12c3109a3f114ee370404d64f7d0059fe60f32d25c7d309b40b66948a2d380e7653f1f4d2320d67e26561479407a8e0ffda0dcaf2efd9673de8f4e362609b22d1bf91ab70bf7e27e21cbdb3be3fa6bbffba690c537b5d6fa2b792fd9cdd37bb881a6d8d870119d66e51cd6b68e7b30c8c563f4be7e47963aec561bdeded9618d483f51df1a68e8284f392cf0a7f6c66b613b3743ff27356af2652149a66a478bc834627d132652ac6cb7c6e66c23507294db525fd6d35dcf56a010bef9485abfe79055fbcf31c519f20aa7f038cea56122e8ed249b3351d215a6899cf19794d1b609c70337d48517d56f09d5206f24c29f61b11fa23059754f511517a9914f494786bd33d580ec0dccd8f55bd9fec546ed75a10c47d393354e25eafbbb6fb4855635a7e2dff5f74046c213c8c84334fef736ef88bc71adab6450bfe09c2cb9043d9d0fc32669fa4f09dcb55aa26f048f8bde57f01f959ded3e7e940588c36546fe54cc2f7a1796d2a90f46ebbe62d27046d47a110c6492270f1a3eadc244008e83e6adc86f9da5205c12ad37773790033b20e653ef2188cf8123b8ef9f37209ab145114d619b6facb5a20cf4a9d155fe559b5852c09cc23e328a52852ad6ec546a6dc4ea4c411cc179fb4e14fade76b20a3d8ac56029bbdd163fb9fd50ce684384af9e2c429c3cca3d17d44013f391bd0d24556b2ec72be4e31a9b84492c6dcbc61108b54e06dbc68846306a8532d67bcbfd041e57b3b03a189c4f63ff1cafc6aaa600f641e0216ee083349338a821920a8795f2589ce7ddd03ecf4597c0f7e44d4ab5a46abfe16295ecfe3f7d785abccf92cef1bc649d6383d75747f34b81bd1f246739e26f5a009784e0f95ea9ed21a0f4440b79aba4736adc9526cb9d5728a58581f50ada5abcf063f0b05182695c738aff243020d744603a7c4b8451247703e56d8b77e1432191aed6cf57efc62317c68cb30ed1466024f150606b398f449c846455cab2f1874cff1220da979add4e83a10d5ae59e1dc35768b024bdb9eaecc4e90b0ca69f8bfcd9448f6cdc294be89fb223d809b88a8c51f883898a251d3ea7c4f3fb75a8ea2dd87aa6aca69b0b50ab284088cd57c1e3dd482bd41dc2c7554b3eebc8cf71c9843abac2e46475565c068894f5e36267ac1300ecf4723a09a0c6a0ec1340ef31017f98961d9b413d459810de70f7ef75df1c2d15b59497b4c875a0afd8e81c744ebc069137b48d13cb4b0eafaf9a1b94510d91fa69552ea9837f549d63eb74dc2096e34290368d9bcc1b61a3631cce1ccd19fb729585e5f4920aa2a58f78fb3416d65163bd02288be91d416d96d7c5e3aad9201da8af5c5898ab421e15eea710895a37a14c3d5494d58bb26765ef8043880b7521759bfd2d8ea5901e72c01ec3ef8690fb30e9e2d90bd42b291490b11b50ff2954d5d8b6158eaac9a5ac3aac9ed6b222d95f269c10301b99d98ee57082fd3c4b7d68eee4c8646cbc793c45c6acf5b9e18b6bc1ad10a3432310a368eb46144862bd58ebb48f677bef3af7e354b4294cc94f91e3666c6b7d66cc64841d032f1fe660a17dfc10fad7fe59ed28d7c81e88d7575272c4d628b045421e2cf5707aed834085589e1481a154d28685b98c44105666260f6d55c5a3132cf4f8f5e2f7f67e7edfe43c0072aa4c4dd1d894bfb4c48577bfee4b6e11562a7d9ccecfb0cccbcec5c77b93817870ca86ca23b20880a05edd0cbff4803f43cda111ced74229a2eaa04b30ffe134acb3b14223ee1d8bdc5a252e6f327f754123a55987134cdd052624d0018f6b0de339f0f09e4a8c26c1f7607e6ee2a9838a39b9ec2b199faaf18b712c1cf752918c1b1839d5f6b47ec5e375a0e98d0708c14cb94cfa407923754dded793abe93d1b01429bb22aa0eb6123fa9e7a33b9ada38dc245d551078479f223ea9f7d1a56d78c127924710236da0c6da9877d2d302fbb8e1591fb584d51beaa7698d4c7b44d62c56ba13247c0bd441d2d2d032a3fae1834aec3bb263c6791947166be1a3c890baac814b63482520735b2deaccc9fb67110ffe172db749c3b1239616635147f38b453b7816f49697fcaba3febe28e83a88a0f0a1048f87577b13c5c17b0dada8d4a92a3de104d3e4181865591cea8d8d6b5165620f904cd7f4cadf6e94e04abe96ef67148ad6c13a7a1980769913200242a3087510f84a3efdd30c5a5b21237ba2d24075e529d04d117f69d789ee6827bd667555919a9c93535d0f9650dfc93804a089b2379f7f8b06fa3246de6f7672c53dc62e81cfa62f86577712d4c07b230bae4d04de073555e4b73028d9439fd6a1d3fc8e9c1c7dbb75e4be0237021416d60b4d58238c6a6ec22f8d3fd90a947e774e256fb99e787484b12e166caeec954d19f707ca877fbe94679da581fa64d527b23099fc5780811abd6f8da3608897964391248a4c001abe5bd4fab09571d9443ce8037e6a1573788602480efd43c9a4a32ebff634be82ddedda93976a088ef916c81302a2441771f68515356334fe1ee889ee7442f51b74f6b313ef7a45df4be6129a05412eb56453b18ea9c82b1161f85cf541384ea7cbdbccfee9aed42b3902ce2205a8ebfb358e317bb34d2ba09e2a10fb6e456a7a047cddf4e2e7ce88995ab07ff5fbda712b08c269f45aad8b5012b89888ab2ca600fbebe3093a95f47923f1f7fdd32d11fca97d7dd575a6ab25815a30b25de75cc816e62344b3d800248e132f85fe5542b78779d87714e323db339cb4e2eea2eeb57e6990bbe820b4e9ce204053257301522d98d7a9c1ffa4516d7aa7f488e67aeee749c078f836e6ec85ff2bd726167e47dd3666623f689c66cd653c7f265257745e8a0cf95f044230e8f97d1e0d478acd8a64dd15732dcac718b028d93ed4fdd64b6a112dfdf3c9fa4697a0f6c60d19f8477a6b41197738ad699b8ce77759d440b4d49a30fe4b43470ea4c7f88e96ed8338f78cb8ebcd4171261fc747a96e798bebeb1bb27d23a698b697efef3f60a6a1dc674d948f74a40f6f0dedb77ae4c33c6c633957d0683352409b5271ad4ffd6e030f7edf1df65d772573d59321438edea8de9c1e8283a269745d17e37606cef822a569e2ef943b4ba1760643d69445f57a67e0d24d33522f338e1b325f43b067bbc1ba7f6d19296eb831051dc6babfc72cf6293070481662f3be4b08697eee29be317a8be6910f052b40a2f3fce73c23725c061f59d058d944b681340ed4a8e28fe66d91857c1e568d2a1743ddca3136600b71abf73dfd67fe6ec1c7b02e6215d90b6dc091690491938d8bd9182bc51565fddd2c8966e9bbff84d49f2c8d056b5baee85d4bdd45726f4864bb968a67eced3b506e92b198c75bd389f9219fc3a07faf87aae42cb34ed9d746e22c2a8588fe6cd7096fee7661da3b2bf791cdf20ee72e758255f22e7526da30e43756b10c9b0d8f5d659c6c4b0db587e29ca38dce1b8227a356c0f0f2ae4b1104c82f34b5fba8f33639a46777ba19ed7a77ccc85e375d208beca0d67a992ddfe6f5c4cccbbf4a68f2585be888a9d540bf0712163a4e8cf51bef53a722162772c57728cdad31b358661347d6fc2c0ff5eb53e206ec3c73d7d1d296229e9e975904809db8952f89014188e22d37ee5bdf821dd01cdb8a3bceae5851cabeac95564676c259515432c51d7d3912fc0ecc11db291fab2b173da3053c81047c195f5b9626274925aafde68221a2c540146ec4f0a652f563fd4c2f3353964c87d222d6b44c9ccf897f2587c1193766c979a41fb4318f1058c7416f9298ab9b72bf128b623edbe08ef3755273a87d94df00724d757eb3342d5f4cc18e040f31afaced179e24e271cacf3c8d050da622809c5cb2e0369e12aa1d0ff14bf4f1c91d868a1018410d6f12aba0e7cd54f7137132846a6dd4999add1b32cbd991d507ed7fd62cf41af448aa0d793cb57d6b563ca626b5eb30a342594e61e260d75306307e8029b826e88dece056134469fce4a16db4f6c2cdd71d541b4cf8953ad4abc08e7f231d62e073790f4cd10d792998efb3539f8bb0b4b72f7d8b5a55071c0bdbdb9fbf614dd027567f7a13fab0909c0e4f327e37f811eb4bc84d671293c5420560312b77927cafcb31483c9f9062de26c46e002a9422fc899a8a630101c5eae6ea4b68a1e4549a10a7081acf671d023acd01611c29bd3e203d8eba3b57ffe89488a7751de93939093ec3df36cfa7055e9d552f4e97926864637442c27db6e97ab5d42b03d914701a59a1fb0de5bced2cda5860d72048418ba2c1cbb5c30163299be3731ae756386da8ebb86bbe9ab8a8bc483f28767e821ae9edab21cdcdadea5ff9522b5b2e737839b2a1fa3e01b11c1e0453c37965f477bbbfbb0063a13fe908bf331d92f97466d38615430ccd58fc80fbeb94a18c8131a0e7109e18096d4381cddcc03db57421b06c81d9e2c5968bd546032b8045e235652134a963a4a19edcfe19f12170ce8449c547a9f1623831bc869788bc7b9c64ace855c845a4085acf5d71c752aecbb4f7fc6bd1ecbb094a200fc43c3de19e6054223f7862fdf4b588af75f32aee3a0a7ed0ecc62fd907d5c2d9e6d39605c8aa56891a4315f615629c4e0b4ba5ebe1c2bc861cf07fbba0175a0a48af65f4db536049d5aec075379dfd846946f06ff3f6ea6e33858ff68fddb38ffaf6c81ad3166dab902146bf5b6e6e196ac13d03d618366a69ac83adb9a4a50bcce19f8150bef5051dff6f183e82f2385f5f53e43e8bc8118eb49db9f427f7f6d98aee55c68b72309e2560bafeeeea9879a3552bac31234cc24c59f0fdda17a5565a1f47640e865147f047bcc246e690972998949a25f2868226c8deba8be076e9a418debb61b4cc6e295bf12c1997398ed8e6efbb9fdc809714bcbf78da99f17d734f497728a35b33456f0205b7f572ba5071702ada1f0f2ca59ca1fc8bd8463d5facda52e2314a18817907b0e3e159ffafce09e2525a7e8d32f7b8ee769365515ec011c8db38f4eebb4c58e0ef88bcaeec456492cb65e772ba484ed42cfa902dc93edfc90382233b2f2b1111896e762eccc068c9130627fd715ff6b16ea62b8650d6e8361cb7082af9e888f063b8bfdb88afca2fd7552583d2d06764f67f9f17ba2af98d4a4af891eff0e0ec9f1a7fbc1e0072171a4e93e6afcabb87834f423dd451f6a6f86bf595d53de843fe57c619b61f7c5d8f2e6c1e36ed1e6e1e53bb89007bfaa413ac617c6c4da7dcba956ac35079404ae9c16e1302e982b183c2616a5cca58158736b96bb540963eddcce13aa41ffec52c079adeb0cf0f7a671292d9fefa76720a7ee6c8ee4c78a8e08b58a52cdc67c44677a230e8b3e4c379e825aba0c7bd59849e9462bb47572b2e94f70953a547fb5a2140a137b46d44ad79c1b3c13f73395364e3d352fcc5f7b16e3f851079712c553d1701827d102beec86ee2237ce884e06afbdf17a75f096f4afde75ce961e159697c2f6067f307d7e01f4e45c243dcc4de284753edcc02d69a793685aa7d01e16d8eb1ff6b60d784fbc108ad9b05e0d7986903ce8ebe49a48e79840383b6fbe258a6662f3a05db1039fb6f0558ee877987a2f611c23ab8fa8d15a0becd690a74d9ad8f2eb9149351493a50de804e05f974abb1ce0c53f51ed8f2fd5e3cf118cf58674d988cc96486af5ae8763f45ce517680206761c9ecfc2457058bc83117895cdf7d71e1935bb6fa48610bed60ff6133950687807b85d269b94aa4eb6b884a49be41a72010b8596a2865bd538f683ae7c3773f8b3d6606658c42b3e908cf1e4f1e34ba35585d15649ecaf5ea4d8a7853599ae13673ee457087d22df3e9600ec27189a558b5454a53964ac6dfddee344614acc1d18e5e12bca3813be2e17bf22d3289cf03d8f1ca3e556bf42484ae92290f7e13ea63b9fde439b48430fb26c6110ea38aa1b8295fbd48f025cb109addfcca0f4ae380d2001e804873ff406b87afb334c381fc0ec4297acecd9af047c442747e2efbf0bdaf1ff8ba3d8df05bce712fc6abe4837a03fb5105dec23120772d4f2ed9f68fe48bfa3bcb640f3ab35461f7fd793deaee9ace68cd75e8b8841f313b319398ba4c5d94bd268e35984270c8170cf576adb70abe5bc4b78be00e8fdf09cbd9b402267ef93c0409ab29ec3589f8004d6035d609e89e4826f6289a82dcc9370f270f463b717abd7c90cc04308e605f78ddf39d09b40811aff076c6c3a39a51c5b374b62e4e63d60726b92cccf4be4cdd0ed70b732baf5d03879f6b2c95b9d1f29595fd14a2913f20b2343e003c91059f34e207b1b4cd95adb5ff075d8191628bd75fa4f2ab53e433ccd7557391bae9ff2f9a1e5a33b8daa9883051edbb08351c47c526314afc9eda06de80bb8397ed67b602e5fd76b491ac3a5522c6060b4fe4ffb55a0f9ae716e77fc8a4fa1c00cc4e44b6388e574d8e0c9572536ca4786c3e4418f8ae989dae4b9cfc922a79d8a43229fa757d411bbcae4364db36970c54d7703a86597e01ea62de90cf43bdd2d6cb29b753d10e99e9c686e08bd7af9571779f650f6e1dff1ee256894a4632a8cf945f7db29d6a0d5395484bb3937b12ac6345cf1b5416101625121be76591e65ac3a9ed144a838687aa719f49a96f638b269606c142b87bb6f15f3f4706515d665cd3051b98029d0bf5796447cef6e3dda36e0595229a00f668bae1e6374a4446240a87ced4bf53c279982e6c067eae95417781d679636fef42e065342c4b97da15089930f228e38b5949fa74893e7f251dc935e3ddac74c548f49c59bf4688043f2c9309339e4c5efa40fe836ce031e7b9f1250f368b2d2446b37ad50f76a26515c42072fc646240fe1f8808a4ed181e4092d80f299af4feaf2365a8ea427367bda235bdb48829734db5a325efa4b1d46cd481fd2a0ceb0b819b8bbbcf913b7ef9fd85d33f12808308cc7f88a02603ed5fef8ea35bf75945dfaf64a0fab3491e49f00187383506366197c63593e25a7ce84a8106a17f3b4ed870bd146df759d2b566fdfa9b24b1236e971a357c475453bae00697bc674092b0ff35961988a1914f36d75d4f03ed3dff428e82891b0d319481c5b74a893a38d877e95cacfd25df5b87c6e84a9a79363d4400ca3e58eb1dcc0c2922b5edec586ebf98bce2f51345fb93f43cb3f14eb050f2b948ef1ec15046a88ca7aa82ccc7237b947ac467a621c63ff3d6ff6a8fc9c6402a0c7d9fe5124d0de731c400c3caef06804f96fabc60001a7cf4bb4a021f5a5067ef9fdd9277af14b1843d4d9614a47d1973341bb5f8347a887de400e6ab456cc346aee26402b315afb8154b5a687695f1c72ab32ee5670ba2b03b98ac17f582127dfc8e359db6b715054716e4b66fb180cfd4c58c09538d9374f9291ef24ada6f9a1569cbcbf21190f570d2c3a3b36aa87d16102b20d74621f3aff768868b291b30ec83767150fd9d4a2e161d18bdef1fa89951b975841513c1c984b0d791433737827123546e63f762ff9f5e86d04d51203c5306f316133f0632330deac44797d0ab2ad94d92a7e8197d1aeabfbee655786d32508683f23f773520d8de34231a59db02ac8741f469a9f0fcc9b901fea5a2bf67e1dae95e4e701a50dc04a0de3916a59c70ceb4767428cb5a1a6e0e86d7a228449aad8fdcc4ba4f6df1706b4c5b4d84253462c264a9ebb66e02fbaee71b2a76300eb8a9541230b45bfd5f255c0bae4fc948981f197eb976e688e20cd33d49d57f2717544a6d3ca4d6166a6b397e60b11d25b543e7e530de84e74f25a3da0da863b010914108db5df115e10fe01bdddcdfa7a7bad054bcd51b2227dc9e3bf0561a1321fbbea9019d1668ec138ae32cb355791c27a60e6aee33ef473d1e55fa0cc136ecd59a39b215c49bf7d67b6ca0d2bab17ae5d09ad454b67e5d6db557aa879c0537c1aa9b758643b1a140e26635a28955884a6a64dd6353e25ef99f34c088259dce6dc1e00ac8fc4d30b3f17d18aab1f6aa9d4551de58b078c90404a5a815eb1a4a4a2b33dca33752fd03c7fc961da388e74b09b3193bca19a931893239d2f91c39866ab0c673bd7dac0f5c9b032fe92731d4ad8bd2a0a6c9adf3850d621a2d85052205ec2b932bacb396eadeba1e5e5426a53cf4729f55cc06855c1ca956d486c305cbb806d6b3061f71510f9cce9a6f82c779e8071b1fceb11e9354e75f3b9aad9a755da4e2b1836cfae727dc27822603246ad09b547fa27b4289c0ff666fff03d7312c35a6dbb5df98e57b4c8bb2022f6b6d84af9a1d3d198ffc8894e6772d8f980625f27dc9919a103574931c2c814fd57b8be4dd6e0a0e1ddea8a9d92bad56f04a034d52ef50e5cf9661fbeb27c254dd3b6ac55bc0d2e08683887d02c3647f46007272474a7c0001942cacdd5e2764bf9b77c26ca49229b705ce94334b3f18b6601a5f85685990e4819af25b88cc7dcc7bfcecf6bb6d04985175026e9348415e4048822f758fcd1077454498494c91febe5912f973abda08a9a5fcd37c8662895351ee573ad052c7842e8dc74500e7f5d693c40f5337545565aea893b01ceeaa964ec0fe87bb32f3d8fc945afccfb59a421bf23c13814da60963125aae2a4b5854b999aa906ba8e887210dfc4f303f9939ff5d86125a8a515bbffb46856e61c71bee23454b923eb349219f3297b16942441f543cb3ad61f64d74ae83ed57bcfc82051677012fafb32072bfc72b0298b87d4914f8565bee57f104b4435fa97441793732bf70a254a4f70cc263303e3b3f0ba0b2edecc91430ec17ffe8f7858d3b6216282019ff935ef3e05c4e6ef9fb41220efe9e04a4e53c5a7a29f67d4cb7021a466ad13ad9b9ecebafd901db3bdf8eac7d0b99d7e12ff89cf7772b1a101f8286039b0b3c854948c82722233cbb4f805d8c06d077a198a0b365b68c3c32cc71c3f9aa04073f566bb50aaf89d8813089a1763c8048086fe66b223bf77a90fa6458973ba36a5f8fd4a120d01ee62127abbfd3c8f38eebb98ed0492b81e5e162956659c98baf9b83ddb1bbb5c424445f7ede9e71e0f5d551695ef388a6386801c49875aac3e5fad51efd978c1c0632da7543f2df9e8879bca8d84414687aee5d5462fcf9526634505d2b1dd5c8f876d7c27158bc15b80bd39e35700ef579ebd73ba9f886072f2053d062bdb54b5a453a3a9b81b29b90995946639e2045e67fdd7b5271ba4fcb8a17020471f124c1ea52fe7340d278cf5cf9c709bf4b2da80d8768bd056a00c8aead351fe145e1f9ba5b8559e9056f3221233070411625dab9640a32c6c266d697d57d747726786704bf4aef55bfcfb29f7392bdf08082ef3d1805f51570d749f2afd7a0133a69385ffdd98dc99a32c6ccf3dcc5fe98111de0e9cef042e3ff8f41a66b99c8a93ea842d5cd0252c5bd7ec47bd14cfbb4ce939a5e1e54d5612ec12a5b058affa398a69f379474fbba05913fd9e2ff2b5f16d82b296ccf0142f313b1abbe7edbf2df0bdf54c4cc13dac25b9544ddbcd453f31fdb3aba3a2b36cfe163249572d7c1b508697ac44432a383f59bfeb2b26f2495a04d0eebc7916e67ee9643befaa41d9d0ef0e5698c5c254ea30359fcebfa17d217bd74dd8412bf329bd8c20e6f8e1d7f4b4aaa1ea8ec51ca2eefe2186e32e92785838f96d5610e16f84140711c0bdaacd060ed265ee9469bfcac07e18ddd20375e7f8d04ae5af0db0d94e3bd003ae0cb395e7561b0d2c3ab180ae9240f8a3d333e1145c61a1b6380c459bee143edc8e367dfd2a54c42c1f861d8a1e2a5fcfa58b713aec6bc73b28f1e04907155b0d81ebf72728812dfd9a8e220645c52383ee9481d7ca7fd59aa098e23a0eaedbfb8bfcc31962143a4c2a8605b25f13a5a59ea8d7c9af00a506686b43c9b602c9a221f6c76b305cf3bbac175e09e4b89d5dbfa2986e2dc0721ec7275686ae6b2f2c33b97e7fbcb07b23f9f826946322b89fc05bcd170d002443676ca933234139ebdd3d4f9e1f11e44c41e0025fc22a7e59f78949dd5eb02c2abbd664ed889d0775d166f10588406745982aec48322d5b67e47190038756828af0aa3ec9897d4fa796e6610f37f7b40bbcced56b241f8d539be12f76d4ff0d567e873268fb40c3a28877d2aa531e2a3afc397471b6ecce1699c063d6fed55d62dec47393e456f3a7a1ca1da311b765c933a459d92fc623383152b6486fe42b387d5b71aeadb7d5729be225113fde6046fe60b228ea88604a66a5ba6ac470c9eed883c08ff01b56a6ea33a46f5a575f762ffabf55882cde6d07f5abce71dd9a7ae6bfa88761ea2b749086f03beead23501a0478948b2f8f0ddf699ba15cb325adefadac829044513ca1790e660aa6f77d5888bcc550df6d593f331e9ca9680977ee8a9f66ea274d08f61b297a2953a485139681960de2a83730efafd67a927122be76d59592b652c4940e6956b587de52455648537ccad390b5c2f2e00f19c662f8dd61da2cce299ad26d33962dbcead0b1ab9dc6b36b00a9df7c0ffde3fee093197baef06f4fd1987ec59ea7be28c3a225582c96be6af468e517084111432b364f64a06ffcbb6bbc70dd03c9ef5c7c86508b91bbf456871d86adb428c7ca3d906e8c06938ad3c2c71285ed3c7a79b11a5d8781cf6691b65d7f4bda442fed2b71db14725989ce24855c81238df37429b5f97e172fe7feca0622ee86175f63113062983cb204b7a258f977bdde618ecdab9bb91a7885118a3fbdd766a83b354ebba9a621bc2b6ea5101ee6e04eea4d2edcc767254cc8a4da692f1c0700b8319de2a3cd7241de2d76e7fb24384fde07dd0bd7f46d2164b8b795ff96f51ac705dc783d2cf3846ec4453dc82d88f754d5dcadef7bf179ed094162dd949eec12c111595d6514390ea5c3fb5b283b30718ff3d9b55e7ea17eb23e59effcf6171a1524b496d4a7a7bf2d8ed598f87e5991e59223ff1c644f5d6337eb0a9c7dbfc7a1dd968ab76f23694e424f8fc47c6700aa716d8b9b952bc1ee37f93b7daaab1cdffdcc409419a3105017258bc909b93f26085303e542f83ce9205a133c0c5902c7b8ca741d15feae0815c2dcf1622d76e66cd541bb32642adfe78856edff29b15a4b90c1aaa78c4d9c1cb88affee0d24079a69b4e429d6428aa53291ee005b6fa29d35581c1ac9198e9fd33734cbeca93af9b23ade9f8dd667d3d07eecfa34a825fdc9545216eb097d23c270912b12d97961679bbeb5b759b23c63d7c0baed77745ac0174a36dff9414d5a6417db692ff34d1cd609232c9744ad491aec1bd2af88843f9a00dbac7b1eb217d211155c3a5144247769da791dd126ebfb7697cd42aaeaa0af1bb5c53d68ef007c30069058083526eb9ca0b5cb518ed4ce7829e6106f64ce0994ef3c2d38796a28d63d5a9bbfb3ca3ca07bda3883553b9248f2dc5f5c841f4686a43bec189a4debd0a7cb8294c2a70914c30e731ec1767688924265ef373d4532953368bed4246a25405dd59c1de765117c919d98fbc0d08df2720dcffb317aee77ca8cf21fd427cbf86107698d32aadb3e0125b960760176d4815818e7f98b8a01d9cb43c7b791421cb4e92881d7a4206ffcefe72a4110cdd7044b166835ae99ae074483c5d01055446fe10ed455988f0b5beadcc100c40904ade51829ab7446e03ee42b1b7f968d9b4a35d0ef13c59e91be0097c0ac5eeef8106c8c9e5db9fc04c17bff6a2e0202f60de3218fcb8d639522458bbc5bc128a9575fa81062f6b98ed3d19bfc5bcccdde662cbed354c3483c0f105a85fa19b8c129efbac2e6c434e7cf8ca0a7b41152e8855fbdfa468a7827cf6c48048e75dc2d283e30d53ab71d456a7c163ad58063d917c21bea02f2866735fa939d90f82e9d0a1ca82381773d39cad50103ffba5f30e6d84cdc284102440b88aeb06aa17a610866708668851282fc44fff4d119acfe1db0338db97a7b09f681117d6606c1d0c1c347926d6370cecffdad3803ee504665fb5fa6c99fc4d8a8be407d5479ce939455f6046df29f752e3e03ceb77728234a9fe3dc612572502f52547ec8f77f1108980ff1117efab785115bc8aedf97bd7b3d72bf95ba95edd2885131c1937ceb3d33728397711377d5398b3b55be201b84da07cfaa971e917325ab3ab63e8778e49d2b4daed5d950e1d158fb3022ab44387b8a8fdb80ea01b078b6d8cb05078f6d66ee9d4ada9cc4d5506392d3cd99ad9af84a7091a133bf2116d08efce13a86165fe7344e1f5068c761a74f1bf8b7591f35e8005e99bc592d99fbe6b6ff73c6b3b6cb731a70bdcb54fbd128e24e4dc61a3cd63a4091b316ef2f1ed6f9b1b5c3b35b162c8db7ba4d838becae9c00dd302e6576a77f6bd3cf78be8260cbe59dfc3759a2043b3b9353f1df4d5d1e0910b19df7f9d1fafe7b8296a316e1c519c89a22d1b1f5f636b2e435e056016509fa372bc0f311fdc866cf6ebd67177b17a57e6e0bf0090b0638efac2a4fe0bee34c95e289a18f97a78ccf8abc0f5b07d2fffb56d8633b86154eff76f79ee41ab7f97abf639fa2ff6ce5047b2c6996c58541934977a66a779256ac9deb9b50794e686f508f8b11304c7955ab3d24720781f3cc2838deacc50c70aeb8abe8ece66b448290f14c299566c6863f10aa4d0b2f879db1da329e22633aab9b0ee5cbb31c23fbf0fbe21252a7d6a554b56c32a58665d5ed1eafae60e666202aed367fbcdd3a130561f0af92dd0e0bc2c242aba2c756ba77a8da352d8726c4494a8679d952e6556455ef3de47687a2892a3bb8420751f751d946ad240f70f979be6c6f31439a7f02faea01772c33fdbec9566f58ccc538d4de7ef6567e6d795f0df4c2f1b67ef0e14e2511d0bdc656eef9448dcbecdf8c05a785100145a3cae702bcea4b820a521c732272ac11300fb46d3bccaec6a16f10eba90ebe7f5417f7e68bf4cd9963d26ec5ab5b19c86a1bdd9a8df80f8acf1b2744635907beaefd24a1a034f6dec62e2ab643e08a5b39f9417d807d603cb2a98140afddb6f963ab1edebfd5cf038b1c8a996f46192184564018a9d08b357497e9f7f986427dd744970caad880266a21985adaba7a85c2116fc5a6bb5ab6d72232d79faf0e01af7f23d0ac5db8498f1d60944bed1059a4d5734f199dc24f92716373c70719ccb61bc22f34d321545aff24a4a8e3f725374d9fab332afda8521a02fec1859066c81aa0ca944641594062e5b950d89d42b9e0731aba6f7214b808f0d8bc7ba9823f3b8923d43990a1384395d1d82e379e9ffce9eaca691fc32c49315ffd0089089c976dad40eda286230fa9d7b32bc3002d0a50d0322fb4803067c37ce76303f2d74fd9c0c7267dcef041d36204fdc20fda30d18f73914ce1a15cae04094a496ee4d04a8efbc20f49831cf259c83abcb3857e3c4ec5f6eb6bfa934927356a033727466e09d24397842aa5ac262ab7cea425440848d6ff4e4beb1c0b0deb6cdf2f6e8287bf1d5b9fedc788a656b8eaf00482c1e7b3604a3e0d9553a3efa3f51f5b1ffaa816b61a46c4211760de3a28000da6d2b13ea060378542368280f4178e4a833b825bed2bd604b064dd73adce1477bfe98f66c03a36fe4314cd592f7f36be4a145716ebafc52a58752caa287a340f679ed6eacef0c631ee18638d2391fb006ef1325922401bfd69ad32f8862b83b760620515e8a522cf17bae19fca33b4bd3262fcf41dc7bbf84df3eaf17158081e8a0d9038d554e2515c5102e34eafc7935c592599fa513f88835c7753352cbf5fa5499511033c8f6aacd41d0f0eecb16df404d0cc91a519ff8fb60ecdd12ae217cde8f2fd74e586c0809c7d9d3f4e9c7389da4e279158755129f6d43b98f106dca5c0a0a5466b2b0537b83a28e268df028ecbad4062faff49b8480425c809a496612a1970e3e79e5279f1c7f901a982bdeea65e917ab1714350494b9cd1601639e75fd5421b826ab2909f7e0eb4358d884102e870c5d40e7486b96b163b163166a6767150a1a56bf45b68e14b39eccd26f3f7a7cfc596e94ba52d5ad0de736b9ad2cf4d5c49850fab57c73529246093de05ec869984b4f2a61d054282b22e554de2eaae00374a9601d686fbdab45ab398ffb39eb2618676593e4bbae089db9767ce1b5c9b954a3fb4f9448c97ebf40dd85cac96dfd25665d1f07eb090700d574646d72c4132a4c1e01f6cfb284c59f2f7ff2e2308aa8718dd54f08793416f0252e60c9dfb82e5a7c48e73beeba87fa955a4e69d15ab955c32c54cbbd393c360dc4e71242befc82b1ef3df428c0ff2abe520e1d8bf6ba0d996e6d1d5df90a99847ea5ab457cfe4b787047d377ca1ec81a611a8d7a50251bcd3c19d5f89dc10f9c2df22378d518a0b7f96a97e3be4dd8e306889bcbde20c23aa6af0ace812226d5587235cc72598ad43e26afd6170543ca936551c83f6e4265c2095333af1d164fe87acb96466518f2a324d1123f465ba9a2bdf78fb3ba0b1479454e47ab743af919e5e0c5459568b922d387b2613c1afef7f354b54b173872a36d27be2e451507452671731965c17dc16d4e5d486244af43791e614d7fb4b09d9ac88cf643cd6fc702545a731f0bedf5058d672df281f125f4d398d2c72b41642940d057f748916d0e4a5c15b14a1832e1fb2bd452f8c82bba991db3935b57f3344f977e5fc5990a2035a622e5113c4c677a9396bafe68136170b69849f519f5740d8a2f9c1596cbe91c490c8a0e9e83f875a275816122175d4a963d5595b230a2dcd10a7a73fdbc87987bb4bd85ffe7b1c0fbec0608390d0bbc11a92bcabfe7da03a2105fd0b10217b2d4189350d9794b97265dfa830e39acab0b090c81c6ed747b54c17272cdb26c900471fe9fb7fe3726cf5ca41c7bd4c0d44cfc05de77dd4ec5c6032d3b7dc015cef8f4bf7546edb813026cad6abcccc421829d0aeafa2464a767e8d9bb76c9d4a952247084d839aa543df00ee8574c5da645ae08f17ecb95dcf3addd5d42d4377377f2c5a75ca1189bca3c3bcdf79e4699fbb7e2a2cbb1e0d61acfe62399cc380b5d7114e06a1cb43f1ee3b4bc3df5bd217bdc57dc84c48ac1160e4d9fba2cb5be856cfc02133de3db07a27d6d584df8c9acf58c85daaba0cc0982ba84fd1914fccf8137f767c5e890b50ea0d617716950283630adaf56225476d704b26bdb721105c8e7fc2d811c9a2f21e5097c744a1351c8fbd76c1e1e687529b79423fd5d24c3e90d1eb36801c5f9d19bde282940e99712da31b359c377704a41d2de592c5c127f9e590a5e3e0f1b139af7c837e6691dcb2fcffa4f2375177085ced5519885c3812a2a4cdd86fabd659546d3d0fa785fa05e710ded290c9e165077473d8076989a6b95caa18f82aaafe2fb01c74dae14025978d2540e53e4689f3960510db8f6e2454bd96a2f55e868282eb43b4b204c403595ed99975e9aea8f635a4bdae587246db04d6ba7ad67f3a6e9698f1c68d65e3ba3f9d3f112b6cf61182b363a1604995597bc40832f6fd4b7749dfdc894e295ce1b709c3d902764876e207be4c41aa377f3b1ba023c5edf73e3df6856dc488416290280207856d953e10c07a3937b5f8678bae3f59f190a5e938d39b978949b0cc65e901015351e7ad53163ce1085867340f64ff93070750a6147b55a16ba1eff4c6cc75dcf05517f8385735f682300d9c51e5e72fcdf10ae6c10a7b68c92dcf78465d84340e10f482554ac58e1629b27e6ef4eb2333c9bb274fa00248f7f4fb789476ca5af22a78ae27df0c15330c0c29dc08550d87bb86b272b1fc0f12bad200c1e04aca0c4dd0f76a87b7a93b4bdfb2562090b39858de37d367e0b46e23d899c2dcce5f1127828c86665a4698cc6951b721dd8a2834dabb8d906c52f54f3400a9e4e6659c08296b8dd47d91043d669358ff1def082f1050f3f99d2c9e2715583ed907c4ff9e4743e757125b277e5958358a89f7bbab489532f2fb1ae974d9184689d7be78537cc5354520f0560312cd344a07f3c1fd6dbc5788494bab60fd4ace896bb543bf3950cc3ba447334fa8dbdc85187161797439d565e6297f9bde77dfa14a5eeeac4ece6e955f3416d72003b1b0cd6d07d6c4d4f0ed53f89e774c4ff0a7ebf5781dbee0a382e5ac625aae2db54956d6ee648a81e3d7b1e722eab1a5a4f26392915cc4a178e999121a2f88755e9a69344b0e5f6a8e3b517df5dfcf557adc6fc640166bcc20aec66ae92a505fbe94b323610687ecd2a0af20b57987b17671b13f3a43fd4e77cbc57e3cfe8ebf4468b61b11eb2797296526d45bcf33509794971420fd8111fe4e88f8da0e6be2584e0c935f4c885c00a3b5e3547416f7b12c8eb9a75c6501acb2ac758006c675e08d132c9cbc31383a6459df13b616006a623dfe4d4dce49fa1e5b13a0ba787e9230a22ebdee16752644a8de96c1ba42463f71debd9c6f49834ddffae569cd68499db0e6e367881150835736cb0df806712681e1626331210792c6fba6290cb05660f77f933094e6abee0d1f3fd0d83ef39d80db0708774d940d3dac1baa0a06a4793a4994ad7a3494e07a547f8c80286862fe8ee44f41ee9a349e2ef45cad114859052bd35a88ea3cc58b1756ba39695f363aa124054023397ea061f1fe8647163b77fbc9f6917c47ed3ad3507de9eb97b295b14c5b157bd6fd1e5a17264877b09e462aca39c74f28ea556dd6d82cd9188fd5a5df32319ded8a8a5c5318b4f97e8b98aa6bc16c2ef0444989a8d310b6964a4df20cf26b85d420e7508d70d69395e6b235740ca11503e5257a26aeac56fe1f13fa0453c6cc4e5ddd4fb699aa437a84d0bb8ba7b76c34c920223ae6d1f0efc91903f4fab6f6f78474695cf38f3a4939570085b21a334b9282b81622621e6d779daf1a5c924aa75da0d4bd0b2b34ef55c3f7cfeb40512dce94faf38c4ea3c893e7f697226b1d98b52c24ec02189de1c1b828940eb30e34da16c9f9977e9ff15835bcb3c8b3f6434dece2d1f08a2bd873b61ff31ffa6f55f21cad966544c0127d581b90ce59517525beecf5b389283e373cf973cf91fc26db076aa86a7f3eaa7bddfb139030854afb580dc034b8735afc009cbe44e46166e97ac80d44f06749c09bf50db1297ea83957283ed5a2d2242086b93cf033e2bf2d2251ec9dd81ade4786d7ed72b2aa0928f032b8999c2f8777797877ed03b7f04393d0760ea3b3a00bc4032ecf650db8afea231fec9d265ac6961823b7243ec8bf312fd41a0d35588de2b2e30ef72c27bbe826e275413fedd5e303a5f94173d9fdcaf0ec22f07995169a56e626211ab6d8174c744aa48dcdbd1fd34f7cc724c96933f4fc5e28344e74838be6622da657db28c263b19b5ef1a336be3b2967ef3375f7e9a89e9e275b65751eab6262fb0b5f492bb2e746a28b847168004efe866e73ad2972dfc5232da1357af7add6f034543685b1c77185c475fe78b1a9c4bbe82090cb28226e9578a8b06fc8427663944b1f13b23eb42ffd956df571fa13fc9377803771a13698f5b572da8a2480513abced277b0fa9ef820faee7e7af59625f3f66af8c8d279a788868a442a514150dbcc2bf94d49539a36a57a93d763ce45f50a8664b757e4b6408f5a7ebca87b92ef262ddaafab8dd2e3373bc1e6b08f5ad10dde6bb272cf2694a43c7a69303945ff92e630435ab52802b88ac6117f06771d28f8bbf36aea06649c59303d7502da73ee9ec5f5adfaeadb436a66f05c08f0b1528795787c3053463cf933591d95b554525c93781dba609fbdde1ec266a82e900ebf870036658bbd9656a0f70f02e596fa23560a7fcd6e8646de41f8e2fd8eecb2371cbc767830de6cd75a9649f1f9a62b35738f18264114e998cbf4dffc9816a9623790f8164f1e941f8916aaefebf599591a7503e22f0e1e5619427b92bcaa86550a734c1dd6d700192c0336f1e00fa7ecb24d2666ba6267dfa1bd1f93c0cf6d3b7e0e21ff912a8953ff5f14d52ed92d2798af8a6d849efc925f2195035821e7bb2988e8c85f9b3977b3b9ba5234907f0c4cf87214faf64599ddea778a6047bc22ae2a4748f324c7d72c726ae71f55c9cafff4bec65d4a1fe191bde6b1931104f3b706884b34cba6e40171d8b0ced3e368c8c06959fd971d3a19ef26e070c20edb4bc53fc98afd73dc4a63b85ab1ba2fa0f8786a77bbcfdcb3cf6a1c9f41333f397e52698ac0a718adcb7752a3a6571068a66216b8f1a3ed7df9db4c66fe2babb964bc8065f63bd89fb9e103b17515c3a200aebd96ed3f72617b8eba013f9828917fad01252c504cb5e58e5f30b4e22f6a95ad28b0de02568cf12db6a88123bed387cdb7e3bb4ea551a0c35157be5a78c85c90a63002e47b9d1a20270df343feeb536f6f10953757303df0ee4d92f738a1b50845ed9d9b79e85bf0fba7f139683ea73663a58c9e213dece9eb6a3c082fc00e9a09e48be003f2a8a414e74e3a48921430ac28af297107dbd0e231615657dd864cba2d22dd5832edd9602b0a51f31f67814fd54528f50e5642fc4ce0c88bdeddda311f97057d9f022f81f7910321c013bd5fcacf93c554cf64e4e46338ed96e9a0f298cad9ae982d8b892aa1146ecda0ddcf5cdcaa1cd633ba172b195b1f21423400dbf1e1633f05f2de5ed3ca911e0806fd350f06a1fd742c564060ce62d4f2bfa95877a2e0ab9b718f296afd63dc9175cd75737aa34480a69e9349d80853d91c37a2b26545e6af16fbb4750d98ae1dec844b26bd1ba50997be338098218b17074aaf577e72f8424a81a1a02407e98063c846d00a49e6c4cc65fd65b07039a28749ee864a8782025a2a110da57711e66c2c8da10f9a702d483b2f61ecdfd886b5f3f285cb5b8bc083783e705c69842d0f9d6b9675f841c0449e02c5c4b122c54132ee8411de4f727d48234be5a37657bb220a966ae9b2e766f52429fe086875de41be6976f954e5ac3260fef3f836863f213eb2787063ec903cd3de54a31f73c1e502046d185384e5b9439f5ae778d15afa0c7b54be54a1598ad985c22cf718b7b4df883e6cf321ef2d19ed361733276962f7718dba1b6dd2eb6417ffc349314feaa6339ce6adac4eb2ae03f91b8a2b8dc972eb90187c18380eace76d3f395083a6688e84356b0f60f8313421ab09b661118f595e79645d1157a67c4a640fe62cd85e3effa2e0a8fde91b1697c8aa2f5b7f148be45d7b703e74d4e0d520d6cb07f227eb1c13d2a492d75952b9ed0fd52a1570ca5bc5d084443c053cb7accd44b535ce342703c0d2a0c6ae5251720966e685e417678143c9d51de9a292f24f02695e7616714658f7c1966b53ed334bcbe3e8387398f1b6f567256217899905d331fc1f72ba3b6a1999a6a91ae85fab92e3ce5adce8380f2297a9754c42c682d3cd099befa2f00fc6f1690461a8af2fcb90ff56ad6c51ad6c550962d6eedf759517eb6b48d987ecba6a1c15656995b99d2b0727197058f334127ee1d804a511a08efa52e5f5f95e8cc45ad4ab9b0a8a77e7986aef965b0d4209d2cca99d86488a192128d3ca44a51aaa41a0b0d19b140dc043dfe98af6e81369abaad989ddda06eb0f33829ba7a9c3133683467eb930a1b7473b4e1de175f6abeb486fc5ba38106d2b3357a436f3269a0256d408dd4989f760bfdfdda0de13abeb543bc474b834132b5af496940593c4dd3cf35b8759cd3affecc8eb3b04aacf3b8c0b507c18f67fe129f27ecf31810455a5eff487f8918a9c2a676a9ac885ca4ecdd7aee0fe976639dece4683c49ac4b3143d5f92eb8645f81e7344c0be995105b51f9f9895d1b08e6d1479fa599a2bcf9ee3624ca5c1ab57594c4e1672e51a718933944f6e047a769b9bb12a45911f0e5f7dc765ef3b53bfd0677ae19467545cd898c108fcf8343b5b3a4dc1b6d76cb65eb938804ac57265d192995b4b16030a6c95886de403542fb9780de6f09c1a6255f7c05b7a9285962aac80bb07fcdceb5062cc52f9af2265512641c9e61e576f514ffbac7e45e89690fbdd93b5420c6578f0c5eca6e377c027d094aaf21079c447082af2df3894ab64d42b2e8c5a977d55316abc794e57befaa97fa1ae7494b58327fa1dacaa6972af6ef1e5576237cca28e2951f441399a5bb0f670f2ac5e5e8c066083dd8f4283755dc6c042de6266c692f38f0cb15955b51e6b6196d55f227e75aaeff27228a7f5f169e931bb1eb31447360b5786236b8c1a4e29e18fc942181d8a346497e4a9101135bcb8e482b07d78fadbfb1abb834e6242af236482388040666143f23be7bebb42b77449be5c5165af29d30d31055480588ab51de03f4c843d548dd89d43ef023332e929bbd6b612da6d03e101b42ba5b120cbfbf150f1c83524eb2ac9d19441073d637fc40dfda959620daaee46e40f7992aeb19c92442f3eb5f8ce20e26997e5bed3c2328ab004acaa44c2fa4f2997702141e153c2ed542f44e9560841cd2a0040f1aff3e207369b3601770333d647038d5310b2ca33cf777b2c2f6dc8c209816ff86a5d122d44e0ea02f0c8429fbc1a197c405c94793feb0cc2f3f35935d01f1fe15831ba0e541e9ea02b4323dd253dbac615d293ff889351f3ceb1382a8c585715f05da530d07e26da150894324527a051ee39723592db6904472236653396e5bdbeabff881355e5540a95da59fb258c8a99152febeb478ef900bb6d5a8d098395c276fc733c1fd4d31bd71dec231a644a0921ed91dd200df3d213c6a84a484e91d0c32d8477d3feb93ba7270e81cddae5a07c35325ae8121c1eabf1e10cdadc19df6c9043234f037b3e2573c4eef52882bc7f1d1d283f37fbb1d28f2cee6bb461db46eee7b69c2806d22f47d3dee1d77cc883dfa70e65d38a7f23cf2b73aa7f120058221164da4a33ab51ed2d4029002b7f85ee47ea94a98168a1bfc0b18f8b547c2895eef71ef8fb75e22651640dac04e29159f297424264ff3cb56b640c325a145fce6815bde3ac9ad73960d88588aaf93e1133f3e1475e3af8e5eddce0117258f9ecdb9a60447c5f823c1d95c552baaf266c28e5fb788714410e68b4665e340322a7d59938a6075d7cddfcd05cb3944ff0143eec8a3183c4a32a9280415dfbd7269a257cd414c0f7cb41b355989b4975bef3e28dda92a0472013e333a687a9993e08342af770c07a584cd160186097edbd2c904f4bf19c6d4ce2c273839579e33885369103ed3820db5023e197179d94ea2f4b6932e32b932a3a6332ce119d623f5e6e03414af5c40d9ee328d2ce84dd38cb3822565527c30d83f12932dcb33042b084b3417adccf32bc97caa612b42010cc93a907aedcfe63063ace770c3526d17927b757e9177012a9a36882b1bd02c191b7342423816f532058367fdec872bfc8ea9409cc51b6deec15d30d1168d85f7c0a65d8305e541fb5d763a1431860c196f7f24579787e4ec3c28c76636969add1fafa8a52d6fa7cd6c2bb11e4dae03a8c54a31d27270d7c13ea8b440532790e8254a2685d1df7f675033f26164a687436fdf4edad375f0031843d62288c7470da6b0f9aabbb7b865d5893fc49054bc364131230bd67e7a25b93108c43c324bc4057ee9d8c88215f68353c528efd47b875758174fc53c9c39711b8f2e7b82e2cff77fd0d9f8d3e0613624b4f848454aa6e5ba519925feaaba390774c88bc70001409cf75107c1d8b6a8930369a32416478d17f5decadef850ef58eb483b02f1e58b575dadbc69c53f8cac87d2425a448983a7787602a7ad18acd5d40ea0842ce54613b118eae050cbd91b983a1b5e6ea2fa6ec1d993675e70c5f569fabea9b5083bd36dc4f526f096f06d6899bf441f056811d758484db5a403f22c4538dc875d34f30be3037707244df215ea504ef77053030422f8e6a40d53b7c85ad43e1d43a9bc03b9cdafd55277abd609386cad373b17aead84cd71e6fee36c89c9ba54c44d9f7e6db46b0bbd9a9cff57a529ccae2598a5ab790526234de7a4ecb0ebc801aef94a542a5cd6281c76a081413a1e521d65ede76e4ca1d87562122b0ba926b70baa252051b16f868e5c9422f2246c67d27b642681a59175d9e82bf72e37ac656dbdd609cdbd945de23bdc16924dbc51cdc81ef3e2f1e51bfa8d5e44fb3da4ab0140593362b4fff89f861512f9b17ab8140e9a59df368a80462c9091061ac369279275948c616496fd72ade726931a276e8ef6839517cd3937a19f72c1f1dd4f67406dd4f81608ba3f5fc486e9a7e4b4aea8c2b3dbaf610f46f5eadbb87004caee2f5e7fb2fc0121d6cfbdaea5d053e15768ae37b59b2def547bc83f80f3e5e1d32abd6a5ccee2ea42fbb5566393731f26c627236f7245ac37c5d5ab75315d92f96f47dddea9e21c8461b7da5b548efe395095dfdb2810a3398bc0318100710d4aff918dcab15f45fb406af84ea3c511665d392a25fb2f7de4a2ae910643de306010038f0e047b20dfdbd9b97bab41b5a9e2ddc3d8b919c8df6b654c4be8bf067bd2d4dbfaf31647977742841393be1fd77e706dfde1e677bf463d350344f6394a47422f88fb7db3a100e2b34a374302fedf5e0b90b47de50bab93116cd7cc5d8d411a8a22c215851e2348ca098810e22a9fafdeece9e7a5bb8ae50125b70ad258163565325706c35f0a956925478b41c41760b13ea940459b89b36e79108f6160c0c33cfe1ee4badb22b36dace8432aa26fbeb99ec88dc5ecdc3be48f25af565a62c8b18069bf9235d6cddf0e0b59706505f1fc962c8669f322b8ce350b0614d3cfdcb83f7cadff96005a97c9dcefd132c7e5dcf0c57ca3e8d2bb4c3727d0d600cbb394a5e012d837258bb72a87f310e395a77c608fbca1d5e62f336c2e8c6537153ddfe8960eeaacb69c37509b8585bc4e70abaf16dadc629668d279f74813d03d3d3768f72b8d39d54fd9fbf6735a8ee5570f160e5d0e1b7d568c662d034f89fb37e473708345b7ac54eec20c99074d44900c261182c9ef4f58b164bea26b17ec7d16952d6afc55998be2b3dcbfbbf0fb0e0a82067ac54d26e85f4c0780396f8cd4ca03c343a296f3cbf55e04e75ae1d49f9424ec0a3dfda732c65a23a7b158d4d29d46204b673f9513153f363dbf50638709e2f798c8e7ab69e80bdf6b5aca664941a814e31ef413e982dfe99ab45df77859c34547cd61dbc762f11a7656c3361a317e3df9f57674ca0677ef380a5ee54d1b548f973899398f4b9d04f09ebe4bae01633ae758772a14650404724de2513ef654341285f6bb6caa01fb2743408ffb7c893ea0e1266824bfef2d8348f12dcb58570e338246d48b9fd946f5f3dbe7b10acdebf15d7c3f07831552663e7a6c13a826b567a45e8ad7e0380b94a19bd24194da92539d4db40a427ef71494c484ad2c7433010753a7576827bf170bc1f3729cf467878cd99f7a35f3c0a903769400458741d4e5920c67f72ec3adff103c3acfcb7dbc0629b9242cf1a8ee9be3ffbe13762533d7af7d13ef022561ee0b4530d4d091eaa4ebe2bbdbec24396798fdd7a30dfeb41167f3043cac55060406cc03926aab06192a454cb90cb7edd4088d008efb3add90379252fbb6599ed727c590c008dee710fc57423777b54d675acd26a38c9a91702d8d8ce2cdf01929637b0d0cc5a03d2848c8f95cb14c18992a54745fac84f86394aa455e697dcd1a838947caf26bfb77843fe7443aa09cde2f301e7bb521ed25ac1d920207f9ae7873ba9f8913d5ab471c4f5b454b8f3ffb2c55f93e00b811b5760008acd8174779fad41afff73818d36185ba9ef08c9bc274cfc25f909857a2206a141760894e863e77cc7784751addb5cb44821b65512e1de5467bb67f3b09a387aab9fe4d2d04f85ce670583a2c20d0fb9f78d472fc5a2288f17d79cc0698f4d245ac32eff2a0b3d12fe6c4084a0bffe257b2b080b70a5c1a0d29c59c255bcb26244f7748f5c68c361399c8b65c9f63f75f84cb128c8fccb12091bc586dccffc7b380f8e0eef5cb6662316bff59d75658d9d57596e8d0919868226c24bf224986739593696d22b3c78d484187f75c828b81d5d8d5f9ee2c5457fbd2840469629d977841560a78879e9f2798e1603056c2e1a8b519fcc90c32990a9957871963d6fa3df55f7d26fcfefc686044fc9085267e5fffd9ee020e1191510996a8b15712bab16e8a8358a1d23a68808b09c0a4986e5aae2f0a5ccf35aefd8c3161fa7791e9fc45a588f7c9d524d74d01db27272d4fe1d4807ca579b1fa75aaf3e28c2519a5ce6ac69d8c1a8ed6fc524593f64b3102ff49ecaf6ddcebee45b7e62957ac7b9dab4c882377407a1182c85e1a4b222a5f12ee0e78992c46ccac4d83d83b17575e2316067d8b6ecb1f104a2542ba782e2d58f95812996f703255f5b23dbf6c3b1c1d32fbc2e3dd62614a9f426f76c9a56cf06deab40f0e8256d48edb2af80cc56384b2b2957ebd7c45a68fe0e6ea7c3541bcc1e779eb1e36ca58bebbb296570bb0d2a95044d1e787ffd264d8cabf0cca58e6436024698f69aeb494c962e375a2145c9f8fa0e288c3da7ba149e2b3c7897747d75bda441dc1643f1268932c5dd73072711d4f4d6a3250ce072c4b79278709490b0ebdc217fd164f1291c4e0dec8e0216660f0b829a2d4682779b025ceb522a62f5891503efc07e2bc0f6831568e52548dd75cd79d12a5a99cca1b76dbabbb08fd19e04b5d0a3917b2cb095eb20e9f0b385f6c136a228166ae4c6821e5c869850f92d1ecdf504ac12b297fbe423be17dc615d0e789d1657e8f255a3eec898ff7e9f3c7ef9fe5fc6d24a775ce6166f9e3fdd67d4f199a433c35ec92c28663f1b3d05550118dddf17c58b96f8839f199b7dab4ab9d295ebc056a0d17fb2e1fb5b09cee11e8e9b7b405709d878223873a457711de5e7e4f8bce295028e1899750802af0a15c69c2bdec9e014044ba9fa24466fcc4bbebe5f902c9f4be7d6b6f53987bd05d9c4a9b5cddddc18c4e8cfa3439afc2c2309a19718e20ab286d7a8a7088b745f4bd58901b351140dc95e133343c9167518a70e1a8a4672379307147188eb7cd0b6282c2935182df31a3010f73e6a999bfeaaa681d7cb0b8d9fae6de1c133459dec70bc55c45c00ea2016174bed598ba8445a7d5399d19a6337bfa4da7d7e615699f5b277fa5175fd11c5f5fdbe6c7aff3f52bd8049ebe8ee4e17e8850fbf293113757cfb9658e222e61bac462e798661c067e85fc2b2a29b9a528618edf63215921451c3a66e361ab44998e392d57a528faf06b281879c7cfc07c40add3900b7eb78f9ed1fa9cac091f967f43d42a7732a1487ffd293560377dde75466273f55406d21252f2e6db4e5c66d94b4268eba0abdb2128c7a61a5f29d745007ef35bf36d27f7c927afbc71e1551dab4089326313e021239ef6f3d64501e2e6ffc74cc1e7c5c826f7494ef982f63a5dd96c10ce10522ceab82dfc464d9a01208e7093bd506bbfbd602360cbe576a3136b76dd7dd61a971b1a7c4f6d30dc3bfadd5aec67fde93ea4693b4c085fb7be647923a568c130a04d0c75226c9d427f4da391a9d3bd78484c47e7d8c131116932fe5c2920d48cdc08ef1df77cf05b27245d6f6d32dd335e1d09495fc199b5bedb43a1bc73a6ac267acfcf14822242002f87c8ad966acebb09a8dd5668e0e53f2fa3491950c6a581ebf5331f599f350e376d522a18bda9639af24c5099c1b3021f7912fe39241bda3ab97d137a5706d7b4b9aa0d1ef06ac14d6a833e981b0dd67d2df50a8b1334262785a871d388000770dffaaf7c1f5671d5e161571be238534dd2d7b1eb4fdb491c6dfb477a54b51594211a139a8f143ccf6a8baba9562fbb0b5e9e3f4eb9964a12ac261ecdc5f6ab374a5ec22f6af50ace3af57a4f7a338b4e78bc9186d53c056616fdc55e6dff1c0f844debc4209e6585bcc80023e99ded6147f8a291317c03f9380729541146b18349245d8f426d71bcc7f2c8177da2eaabf95ce9c520530b818df88512e4fec26fe3622e7cc1140835089c3288290bfa20c64ddf95d9661fbbffb182ba82508bf8aef053b455ca9e731cedff54661be2b8d64e72bf974c3a5d0cdcbf4f157334cd4d685d532d6550d7ec9d99233114ba87c85a573d98836669babed80c705cb69f95e91314ad1d3af8e9ae9a59406fecb3cee95cb0a39fd5cf87650f3f7147209dbfb23d54d2a959802193576c6fbad0cbbd4924fd90867382e2b33e31af88aa75b08f2ce6066f8aee0a9ab29246d70347e2650d4ad1d034c436fef23df0a3d0d8f113fa9b3f4ff933892f7b25548a0a2399aeb810359c31657071d25b31aadb08aa6ea438ad9ed484fa7d19358d9338769447721dbeae3d1cb102eb236e2c69c52db0c0f1527edab28b148b191187440caab3206f75cdeed16dc31dd880d4e8dbeb089f416f7f56e7c85618c70a616a5a8e7f1ca9ae595f339dbbe1bb71296c809fc946c00f389d3bb3b64714a8a1ccc0062769dc5f5a1ff36804b5025e17b154f6abf2e7da3e886b9cedd8120ea6b3765beca0c146bf4990ef019ac353ce617517ec9c703e6628dfe4d0284aebe4e3c596b58456fa4243862176a0d21bdd4ee02be47a6c90fc8fc2ad1309bb894c42a481942f16cb5e369273d412f155e26e2e987aea83ba532f1437d0c201add10edfb10b62feb7daf780151c986abb9252b44e537973dbe5d3731b2fca1632e01943999f630e70885b54e706c4ee2c189ec4c57a894a2473e4a0d0b8139f1d39c1fb084cd969c61efb2dbc6b0204d8cb8a57d7f7f2ecb227ab8f6bb33e81f96f2b96d7c8e3fdeb08eaee96827628266d54b2d20045bc8bffaf876799103841458db1547d9fe71474a59226b95d8f0f6b08dd56a92f92cb87e47ee28dae53cac599f91f35a12ae4bce5bd2d53acc596d12801cca47ec115867c41b82201714f0fb0f1158b0bb53be1ff15676b2dac2df7af81343e6d1984d0f8e13fcb6410bdb3906143e50882b9253134160446a8bbe4937baca116998db449834fc3954ff8d27a414c9eb9988b0c51d4473f98f0465f7bcba915ed8c8f8a83c1232854bcc0a4390826adfaaa9437d96df64254daec5f4a7491664a5436ade6b733945d262c593c979c97a0925b40b5bae47925d38ff4bf0bf96b4d161011edf2ac6ee3c4894183e8f754b9c63515697530f276c07abcca3c9e10a3ef0208ad908f85611caaeae1686dc7c485e48f8fb361f9aad0fc7b4072b525852785ce3ea7e4961846bd7ef6ef43221e2156d5d23fe3235ba6c75c3ea2fe8eff7b4656bc770e0bc0d871ef1d8d58f333a3bf27cc492e4ab355f9a07bf1352cf8cd4dfd0df7889df1d08b544db6de927697bf1c8e6720289e8ce1667acb5d2ece8c65f2202e7851ecf24a0ac65ddbaf310915766564803b45af907aed6098829d7852df5f3c8f35fd66bcfe569bbf9786e794e9eb5d62768ba2824142ad29689e65ce1238214983583202e2e597fac2ef103df6a2106f4da2aa95c9c4e164da315d6badee17ae80b1e1e778171bd7fe5328e8f74cfbfc87cd2b59cff9d3b7f610b47d6ab88b1bc9f1c6e84e08c77e76d5aa7c45bea5793b8d54f5e67e84271aacc8e06932167055e7d3188fef6978c1206fe91a193cb36f2f2b5af2acd51a9f2ecd8556bbf8b19b06a135f5d86d0c82c21fe2425436cc498059164d673127e09f2bda5cd2ceadb50675e30d3c994506bb920d0770f7f78ecaf9843210faa622ba3c481bae1acb98da875189b9dab36d95ef9a54bb7523ecb6be287702d38cc9f47186a03fdc29d9076eb3a37286106292fa552af4fb79dc91dbc0eff2c4ece897a0dd0b56e5b7c14ccd6ccd13f042c533b7401612641e2e63302b4315985b93774b12d1df81a8637cadf412f0b82ee301e3febab5080b5bc28dd6fe63b4a4cd1a7eda6bb82323e64726db9ab67fca17bc95e4b86ab9e8d3b6f4da0cb818f6b94740bd4829f5d6d7975e7e9fd950869a0b2cd97176e1aebb080689a6c4dceb2dda47103e4eaa995ef940dbf4dfa2c5ef1756eecd9c394411fdf95b6ecb40301c9528904a1fe1ce7d1f90d7f3ec5f2c99ca6ef0b0af95b56a584f1038142428b767eb41c43ca657949a1088b299b53f3f708c5d943a5b5d555c99c0ae0afff8f671eda7192b83d58f74dcf46939ab9e75deed6a975167efbdfb85f08dcb013401c205f6938117e28c488d4318bd8d9165f8f83cc7cd8279532b0631bc626aab783acd6c7fcff1b9d34a2cf7cb0971dcf1e925d458f0a5c34d380cab697e873312e5c41d0e3a50e6373040b77ba4fdc8ecbc59d6fa4f31655896123b4a7f55e7b847ea70bd5a0b27698953919ce76f2615049b7b15a3e9b9a923ec99bbe13560797740853c75a0996f7aa6cfa9ee92517e47042c4a65426186b2084cea15061c1a623204ca5cd623df128746dd5f37b6bce88248592acbea43d866810020ba33a6f8887b84f37dbaab09732846e73244baaf73cc494c207d5352c79d31d6a690155e64bb5c04eb55ffd3b8585f487248a0f867e783b10098cb0a8948c99c166a1891e60115c4cc809d38f311f80d1246046064fa03814e3dae07bfc4c1f3653b6d26ba6909bc1735236e8f312a9c162797a6e907a5f4b361f5e2abc780caa15060c2d2a93aa03f2f3b0e5f893e59ba1e6e07885f9c70d1ae3298a5c7a92f78ab9a374913f83801cb3da6a3a74948bd392099bd32c175f03601dae2d8c90c226c4c157fb4b680f174f4c84d6692c2238abd2c7dd168c84569ac6bbf2b1e1f03193decceb72b65c75ee03aec20ed304734c1ccae8dc7554f29a7b4741999d11354e14a3b382f7099c60f78fb1e4627ad232458d3a026397906d13cac1afe7ea8dcc087bf4a9a04b18ac57f29b7ee0ac65a73aa4f2377c12d12267c2f364bdcd223368cef8b8c6c98edb4ada8a1f4f1e75a0c1ced5a4454222de9915e645198e97b4ada173ec5bc0cc5a6ae78013810befd751ba1153876a0616706067f207c0de2864b6fc4867abcc92e1f368fafc1e2acbd1cb74c6fe9e28e9e4dd46f9d909a1898dcd3fd043acaac90d71f7b8616723b4f3338b166a8370cf15fe3778610a40abc62e68d2b1c9f460250bc4bbcef643603b214974c57fcb83025ef5e0bc15366be9285093198e6a6e66fabfa11b563ca1f886c3859cf313073a5cc2aba72e04332815c2504aa68dd7b291def8f92128c5d3a68b1297f977bfa9d1c1d8e91cd5ebb891ddd29402fd60b7fdae9b02b2a9a779f2cc885659826cf02565298eb11e230c94ccde2a9e697c4e9ea650251690746e83101ba82f52e7661f948ead37f19828ab53a2aac1db718414e228964b3c63c81d276a4e1fcfb9f6200a3524c17013c6e74e9a308ea7df153bc28acc11ef7616bedc342620992ec6238e62d55440324adb827e51542d61684464ff111f7cbe1eb07ab7139e9c8d95abb05c16b3c4e754df916182b7d02db12a448178aa07a2612165c9e3e51176aa18fba188d0557c1dbf6ddfb966390c04b76ec7bf003c5647681da341b04073bdc6e87f8de2f566fa88d1d4a88ea99e43d5670f65a5a5e90eb68b4490a8a107eefa29a78a8070047633afdd2c19a3e865f35ba4ce2db98a4dbad66604870ce83444606ce4e37ea65086a0756e5c34eb9c2d626840dc7eec768e9a773f694f7f0664fa6b492cab74ef946f62c2e380976a67228fb58f375d7c04e8b48e70e7f64ae0dc85e4634fa60b6b7f0905e6057c6f6084b51e63cdb1dcbb847567fbf86ad73713f5d1308bcb5598d5a0c3e3ddd1bf6be485a1a7d8fbdfa7e8ac387908aa24db8c52b19bd1fb891a62d7a878f673ace6b5a639df662675dfcef27e1dcdc06372c23c0fabdac7421a268a0ca22c6685e182bb0298129c59e1b989963788562177cb5337d9c96c8bc3e33e4fd1f9750375f48b80bc15029891e28474ff59185641f099f80ea0f9f2170565c84e3f0e52a07a3239f5b08164003d274a1adc459a318e28f727bdc5eac71a7db8f236551aeab3a9aade87056ae86559056d7713f9599538119e1bf05775f47a76f1722fe7caac2b2fe9ecfdc012249afe86de6604d9c65ac3c37d34f73a1e25b03c17d6b8f76ef4784b36ddda560f628ae37f71fce8231e996e5309d253ad0c689d5a1fca08aacc7f2e67871de21fec9598741d6bc23204d320e887a24e15f33e479bd134a24705c420f3c813a0a334ff4fad183a4055a6d8e2fe7a2e744869167ee5dde179f2c658a3f8988b507fc8173b4cab825a870bf7a71fc3f9469f967fa26886cc943e9833543c6190385901b1895611c7ebb2b4a08f78b7b1e53e6edd5156635bda9c728561db2454943f713ba62ba57d7bb4555f6ce9cd4fcb231ad23fb453a0477b9b1e89b7a7779894f352fca56654fcbb6c607bd05f1e74fa21e82adad3e82a7828d755492fd069849e3406fafb0f8ab83de4d488dd63be4fc732c7da26445a1aa5f676b6e5daf90616c5c4ff71510b4d3da58256a4eebd75df9c6dbd58b3c7fd99fa1b941fc71d151ad5c433765f83c6ea5f6184f42ab6175f862dcc6e0f95b09c002a6e0bd8ec0d4590922044a2bfced221ed0d04acb93a940942ecc8e7472f83c1b1e4c7c744105d224640e41f1910618b995aa73b81e123a427b42f0c7aea803abc72ef2dfe2f7d053fe3ea27fac78606040f7f7414cc918fb0815f05624fac5e664230c485f799111991fdabddf5ff4cd81f05fda986f4bc50c56253de778952a2893a6dea81159593db8cba4323d9dd1f1bbe7414dba86568be42bb41333044e3be5c2f0cc58acb24715b741355cf28704acd727c6d86466c81429e9113be73e2f0d6659602bf21fffc30e02f2bb58e46c7061fb7dd1d8b72819dfd3b02af6bae3815ea6e36f9627c99b15f6b9a5350af61cd0614a7aa53911d848610acdf21ec24c3bc94e1641eed198651853a286ab303b4f8098d7a7a80d93583ed8de487797cfc7c1a904145944c38e1439ae927a8f8f7c48614208b8acb7f3d95160b795ca22f47629b9c2b6b677e1148c5c66b2822e648454e7f559e2b90555803b7627b73d62ea1fe2b0f2fba85752e367f456a61dff898b2ac066af3986e96222d99665c97dec412293735a0d2341599d7d89bbc478c788c7fbf7d4cfa34656a01007ef9a768f17b6c8e0923b7bb7624552c8786dc83ec3a9d33141e4ab94ae851dd4b3e4b659865fb299ced79f74590c2c584b1c7cfd18b04f6b5c5bc5afbe17a67d8fd66be7771e691ac5c59834d9cf485feb86243bb4ab4659fb62d8daf84c991f64309bd06131b2f6cfb42aaf65e28a1971ddf53d67cc73face02d97b2cc83cb91f42816c6c8bc2455e7d1076a5c0cf04418188faf17310ad3520aa079810c49d7cf48790dbda01668a6b4755123748373a7d06fcc32af7d15cab649ed7e6ca10b3441f57bb32ed2c493dede11630cc82de177d078e76eae3a312cbdbec643d699e37eac03029bcf35be192c7f5de943ca9014b8ee5d8cd0f7b2e27840146b67fb003459f654ce574a40521a0b28b35b24b9fc771ad1ef1266198200f7cebfac0445ced4f3c80b63151392fa8905dfe7f66a0aa68408456157b2e42b2ac334886620f30516f7c5de02404c3cc1124f742530e98cb6af26d05fc78a13f5a6acee06229dc8968c716692a75d7320734733af06614b5a4f8e1f9c8316682e49e96f7ef066aba45459584c5d045858620ea24d5f010b7dc2f6d7e5367facba48fa3c1af20b8958d7550a222f4f7d790f8285cb47a84b33ae164b429e8cdda5a621289f5a722be720872e8ab2861f66181c90016360261b64c8b3a9d391603f2b53d974040388660cef356b3fff0346e1e358c3a2e2c9faef23eb75eb66d05cf76229d104ba0875ea037b1fcbae7520f6dd3ed9fe8e32a04864ae349e66433784547fcfc88211f93678e62be345b9d20489ace75fce4ad1eb3f6550bd573bbcce28179fed984d576bfefe1924cc992b8a4462e9ff2e3ffaf55bcdc5ddc610dd0d3b6a979d3adc9516f041871c8147cdfde1690f72b20880a1f4669662455e50da219de800c114c06f82a0c00d573690f044d0e8e0b7bd3de73b46e2092ef977b2a6f743a4f2b370f18b3828f56728ee5eb29b1cf3d3692825979bd40be2e9f3e1dd85f72baf5d9b797b0b6e46670fb654e39175aa95d000fba5d8e0587879e3259812d46a82a2da83fa5476ab9f1ec7e149bc3de6d223600ce91caeceef41d9dbc350a1749cdbb4e2db549a94096945a54a80c5fbae441c76316218199f16897d8c25aef33f8d1d2ac0fb2168861a9f7a850a04dfdc7fc69464302bb6a1205d4565e692af619a679b310a6f6c47ac22963d0cc4ae3be9fce55135fbf8dd095b4fd8e25c94f17aa621dcd47b99888b9f76a582a1e28a0013b27ffb42975bc6abb2c79d2ddc205d8b4832ebbfc49638e17cb710877fea9b62f19547899401962ec7dccec497324aed78e8fb98ca822c2f9804c0dce3365510772fa0f08dffd394e88bc3c36f5317e079ad5bbb04ee086b4479132c10f064e7531f3fb2ed00bc6b66b4639d99a68619378c23a9516d3a409c3a9919456fadd9d573560b426acb36e48a531eb835490c66f2c09458e571d40108b2d2feb7a42c52782aa4615d2326d0b18fdb361e7ab44f1e49d439e3395e20a1790b009f1d61713401d15af32b0d6713db73e65f315db26d7ad64891eb36e6e7eade37aa346f1121ef72b14ab3d52f3bd5d4fb0fc4027ba91a1ee01a58b0cb66c92b0b41ad403f4ad71340d4c1a8562e646d95e15004229a7ee1ee04a48de62db264436a578c4636437e50a07e0c956353dda1049066249219cad380c6b6f1de0accff4565ae3177f15e53934542e7c7525d2d6b0598056526cc3afe3fd59a23f3e4a0d8c63b70fdf3580f373a46cac05248d9785ccc2a67d3f61374fb652dfc1f1151cf750ce1135068497a72d3b695e33792f52676d79bbda6985c6b871ede5c24aea948e05f3d1c8a75f06ddff3f83f2b0ae5616111dc462c9f958b9e26d4d582214f40e5460966f8871f8f4087cc774d1a7b3f3712ab09edf7e39e3f9b9b1b23d0df80afdc59bb81f04dc30e226f8d0dc16237a5d91385c5349c49692371b4f843ee44d8a1177b603ff0176b9b209b4e86dda326d321696620509d323b59d64c4f5d0d05a123dedf8619d8f1b7933fb34f9102c32517a1be88c4cce7896567c56985857236711fdbf66abe83d030850d67d215e6964728714bcb772ab2428f8291365009b8681f460353cb96c2b45ece3d6dcdea68036f2d29d618d0d8795756a9ed03a249dd4675f993f82a6653520f4c2d32af2e35b16af0b8b2c2bf20092ddc76df9e9805a41456c787466bd2d885862aa39001a887798d0e423d218644ee6d50a74ff42691b560ab76376284ac83a315d289a85ff6e61b115836d50bed3e7c4f9ebb03e1adf661083ee2222da3d737999f3e9aa8519f29c5117feb255bb9ed9239ead8f3f45b6070bdf4007859108a774f470e9bfb50f9db9ae5d5cf66981fdcadfd2371fc04ddc3b8b002bc90cac07b67601baacb286d076190a796fcaf2a1c98a6742c42032e348be5a38117530d9168909a9c0a58047a28460b1be29b7a55b2d291fca1bc647382c3759a4e9aeb981d1ba49a1881a4b2fe8604076455c407d49274801ade1bd6b99a081f9d53676c48b715adc64dc6fb1051a58a6e57e1a9b61d7713a8ecc6eb3c1968caf51d5704c6f633674237f29e50644bf28117f79466cd4304931a54b1ac553130651d762c8ec6c24097e07f3e47b1865908092866296ba8be24b4babe97147d536746f16a16961f31afe0314a39a6ddbe88a158a448ea2be6eed0022a548d19a5bf887e20d8e94e4f1da27058661a972136afd496a155d541204734a799c2e0ae59b3f76e6c663d80b641bedd1f35f075f893d443a56b730887ddb64400455c82d95b434e12095fad7ae5c093a74b1814307f43d626efa10d766a137e6c5facaba05ce076a7dd08da2cacbb53c1f83ad799b32a0316ce16e48d991a8e5221e59593612d20b75d49676c49666358ded5c8fbe63311615c4f8006801754292427f24dd9165865af3ee90620979699426cf9555d60656e75ba4747a20f4a8a3137749f95544ae086b054ba9342de2195dd1a21640bebf359fec2b9f53f269e45532b17065a637d0cb3f4b0efed1f1ac094ead1c6039e187f593a80536a464491701bc51535459ca9fc6a256a6d5cb39ccc847e81168e8fa7e25c71915c143bf5b5f5395cecff345401ce4bc9ecfa8f7370fc666a7bc6767759f081bd90f772b0f737bd80132d5f82c9b8b96175853cbc4dff0eb81f721f0e9736bba0e8c31f7672258282e746dc66d782af2433ef6d0434d56fb92cb9862a3bec1cdbbfd05aedcd6fc75f1e0b825dc4a9ba7f65237b43f481a412b7af7ba48fa5c9f9332fced80f76804a08db0df187fa09fffefe5ac3925a8e799afecf9a8f0f7c16beed2af7be777dd47260b9c277260ed2f144f6bc7445b3faf3c7df5568ec640f6656bd9c565d490c9d56ff3b9ed992d0d64911c97faf6a6944bee3716250bccd1c053223423206e068c63b8e8e112e3b5b871995e6960db2b580ff79e1346a1b07310ece0c700a17c9fab9c4cf017f1c8911f51eff990ca056b1cfdcf510bb6034bd0d416d04931c1a42e590efd2a6dfaff9a2162f11b15c1f292436a14cc585046d980936ed889c0d521dd56fcf3b07d4215cce205bcf1b57d5fd7409f43f9f7d32a25779cb7e54ef9849cb8798477bfa5b9551400d9bbbb31e10875588d4d578361d47f2b2ea999b83793978fea63f325f6831e42c0708ff89910ded11ecc69dcf18c17ec9025a01cbf60f91ac2d8b5be0d4fb43166499eac92991f1235e67ad286bf3e3ff5bd2d73f34da9ca9d168f871295e35448da4e3a5ca5defed2c485f86256960770c1a49c4d4ccb2db96b3a4649f87900d65fd08e361b9e794087326dd8fbc8a56fa8be4bca9e96a1dbfe6ebf660c3b50f519551e9de15b6a091d8e075e07a018855e184136b64e694cea7cecdf4009dbaae1f81b774b62e0e27e39e53c3c15a6ae5c044b5e1e83a28bf911b59d576319fcc12c7e9d533379aa9b9a4fe8b5bb411ebc317da900b4bc7fc8cb320e38d6165afbec35d18aa528afe531505b7b91b67828343a8f45f9d734bf650571e263f86a523f44dcaaa50bfe84a2f5b53f2fe5a8c0f2b106da29aab71f1b81595ea8aa60c3eb95d585c1e5082fa22a066cd90a3b4bfa4ff2bf08343b95b92f3e6f2f97d6040245224e687e31e5f60811fe721d0cec490f02b63f8d9dbb1769420fde34c4b5597eb463a1c44fd2abfec4aee5f34c9d2c7ea892ceab1089820a1b1bb61e27cb8ab7f54e1d65028accb418b6a39081c899d3112f2618c9329abcb36bce069775f01ae5b955baf431beffc66f22766a4ff42c264096b176b99249e7870150e2a8a561127599ceaca117e1d79eb7cb116f8296984180e6fac365038c71392d8402783eb9ea3a8f2e8ddc5125cd35a3322a121957108e2270bb8cb0c21a6e5887ef888060cbf68ca08ac4bb7ae9f1da6b5e5516ca389b7893f95e68aad17107c4fb6f81a7803f60347a827716e8ffd62474c97fe8e20973edab691ba8fe61e9b3f4dfd136cedc340120c597728cfaef69b13037f118ff5a2628821d07973df61c79e6ddd0be50975ff37ca54bad9fd65262d1066325b84400cdcfb50045459c5b20106b297111552bcdaf259f3952d794a2e8602cdddec38ecd10afcc8f4d0ecbabbc7d95f474fa47dcd8acb2c3c4fdbef4c24aec8adc6c7f4c062ad2ff2ae9d744c2b8fbebcf54de39a9127da45e3064acf1ab713a1e0873f420e5f55ec378b40b6b5985269e605d42227c281476a640c714140e68428a9ad1a25bc74db45612e75b90e241d65a7df08892ea62c1c72af0ca42d35344523cbd3fe719a33309e503bf7af48ffdfbe8b81e781489eb38d3c58ddba0dd8a1f4a18d3071803f47e6e3ac8b09363f73d927503ae19077ef924e063ecd2c40af68a1661eb30fc03dccdc1c2aa3def4f52e86b3b2cb376f871bb95309c77b863193f380cea72d7ba20b57d740bc81b7ae9048ade6a1d0eaf3cc37ba4cc1eb0d886ea65cd1947b69ed1f6f4bafc56c24608d04a1d818163345c273e81c22e5946e6f5f7d94479efd8047ada0be42f1d973314e5373ac67972a6c5e00e18f01ed9237b5750390783de5d6f22ed05d31c5ee4b0ba7006d2bef50297ce91b3035d92c636cfbfd49ed1d29cea4e5f9f5576f045e5e109622dfe43a3ce39f63990a1fbb3428501b72637c4b3572e48c931be58aa6c8f110234bbec4f2f9deb0af1ad84ba7c4a597634a8c1a18a8753121894277682a5275c19ca71def5704f3e08fb132580058563a3771dc54fc305ef69c1888098c001ba280d4e5e0ade39f36ad7952d15ae35888f7c6f8159a4fffefc0df9fee00447e626d639553dd1454a69c0f1430fdad9229bd1b94ac93de2eda16f9871322da2f4d5b8fa355f84cdc91be675c2c464964bdfdbae29cdfad3b718d1dc4236d9809d3bcd432ad64bf93f03b9b640a6f13b4a4cf8943b5058233e00a364ab71c06eb995c14e23ac3270dadee284adaf4298fa979324d09a61acb6f446a78c73f245bbf419ef402859023b89a1dc185225412d9a3c5905cbd651c519686ce7ea8c60e8a836898c0cdf07dfc4632df205bd4339e4022d32be77cb8507df8f06faf62a4ce130025dbb31e994478755331312a0ea578a119f824cbca256f8b6ab930b7199f8bd4fe10d8864cf967c2e26653969384d0138822ffb8e4287aa7b9d17a12e8cee2e2c79dd565b91949c27258ecf39b4f70897981a58bc45c98b9fa65da9e2ea83a57a2c40c2f2407b1fa112a899854c07abcfe904d8a63abdd0c49238c6df3728e645444e9fa98ae65a0a022625e26be8e878abcbb66bfc4931799acd09afb5601e79388b1ca559a8c43776aa2f0feeaa8453decfa3d780f139216f12937d41ef634ae74616d7428026c63c360d62ab9f3358bdc46c6c7c34819b6240d1b85106ef1ae8a07630a0f64237279ece0668c81c06eeb92dec529ac989e5e921b84e937c541c770bcc822fc051b6a01337769301d8642e7355df8c2aff3040343ac073df4ee5fa36b4e5594d7e747a74b1ae0b9bbccdbeaf8570c8cf9d303a351b9bb590225b0fcf52f3960f58dc993b892151a2bc66db8772732134528cb2b0694fee06c92aaa1a66116ae0bef2bed32c9339c05b73d1328e8a872257bf70dc5446f7956becfdf1aa82ce2940f66291cc13807ba936cbae5899c9ad7872a0a105297b6ed3a18d53eea1ee4669929a007e4a5b77db31210efaf3da67ae2f45e6dbd11158d19758b296cdb731f18fe6a10cf38897ffbf2cea0953d4f8924ed10df5b99bd35207452d00d9e8d16d56355d3a3a460a114be95ff31daa6addda9ba1c8bbdfa0cd758551ee934123bbcc4cc91c9fbb2bfed80b01c33334ef349b5c3309a409e1033aa2c0060d37108fd8cd6a1bccadceb124af4d4bfed345b50c68c96af0d47ce75d0edd39039e13e1349264dd8880b0d5700326fbde488794781bca5665a34f112a522d60bdd51a6df63394c44cded8562f257e44f8c43a8465edbf701c9db4932ed207a3886d83e941a2b9f8572ff8e53f1ab5cb8709e5e7f5999440370418384a91577241d0fad440e237a5286a863517f3d991d036cc6dcc50f1583730f379138da9f78ed25f675ce7283898da8bc3cb1b32c48e2c48e94de33619d76db964e80149baa06e9a4dd60acc9c9244b8a414714d476fd3dcf8e62eab6a49f0cfa90b15f6a8b65132617f36a0d788f5a2edcc107866b6c5828d58601e2df758e410131a53a5db0295cb8d88d6a2abf805ef945b9a4124d265d3c63f22ba679f9739d6892bd439e718185530200c35f41b1c9ad03f9f3a8b77e5164e8ae3efb846b4a8eef22a12ce1261f4f689c3f5a48145af3839e5afde5411d6be4c4d627764c42ceed554116a49a25bc52e57f003afe84327535ece3301b0f6313f513602caad311ef279efb084931011666e7b90572f0b11dd6e4222b6c8bc80fe1b425ebf6a2a84d7ea741b345addfbb05868c10477e4c2dbb4c5cf06a4b0cdebf2507860c505f887af465e9562bc827d07734b04f8d73d4e717475d4b1a8599e72c38e6e83017cf23038bcfe98c15963bb3bc2e041f92e196e43fc15283ffcf327fbebbf92b7fdc7179167c377457ecf529f5fd4a79cfcfd1364e77e7c331faf73b6bcc870545505f3f9e77023dc1f9f3b0937a7fe0de2bb07ad852d38106ac86b38dbacd28bf80962c1704f21254b727e5f5a3e1b8c33eff69fbbcb3c27958c80e75204e8479d9d6d0e6066207477ab950530000cd4c999dfa97e66279f6de5184822d6d7ddab8a8c96cce685d5c7574699d0de5d88ef381a959355f9da3cf3cca45359abac721867b2cfc65df15cb5a0243b4436256364a94387b5007f7299c6f09c006d80d1f3167b5b59175da81232be70f536ce65c7c2aa0e4abce3937e8c941a1d92d029902f4384c105c612ba22764ea87ee80c855935887dbe6d933a14d658ae91805000b8e22be675f8c00b51ea8e43b9c5cb15cf88a768a4f9e4d7433b38687be727972ed923b7fb20b98381eb83e07d980d33ec7dba1d920cc15d7b48316bcec120dc66edad2c307ceeb1427bd738bfbde1fa629dece5585c8f1e312c8633a1eccda9ff18de2e7c2fe9416314e7a068e51358afc2d2aedfb4b0caa754018347c1291d477a96ed79758ace4eea41392daa0b5ee487609054f4af5e21bb4ce2bbf79c7f8983f97594f04950ff057361a03cd5ddc860bd06f39216225083c71bb76b42d29f8bbfed6182fde442a9ba0eae2ae43c862c7310895c13a522b5f66fe2d36bdf6863282eba632573b94e1d3e80a3919da412ac523318fc62964fae14b087b6a7f02822b8b65f816fad786a51ef4309743e9d73211bdc4ac575a03335b04bc7f2f873f5cf34d2db26926486e724fc0c42a2b88ac97d7b1c28c0bfe9f1c4f377ab0cd5de17e3da6c66decaa3361e95378e22e1659677bf0e9aa0e14da855889dcb203a97694c91444418e598186801aeacb8f93a033240bfcfee01761a217096acafbd97c3ee4c761a4e814aa685a482b8a69ea4955a21968a131348e66dd870f4d0e31eb5fd8bc2322e24f8d93bf1e667b3a604213b1bf9df740ea96216b9866f0d1328be7ad898fb423be13d26a6453c09bc97f4e6a5960ae0111882f069fb64ce5527df031cc5dedf7926a7ac08056970ccb00ee29881eb1d6e86f821930967d1c44eacde03039b0fbf247c2bb15120fd234f0b1da3288052fbfbc7d81f9588044d457f08edeada17fffc83e161999ec51587e7ede6ccb8e3e8e7ebf30d850c9702046234e8210529b3977b61f8e03e4d8d3f74302e96b2c61eee2e8245a76f2a0f1faa85f6bc0ea874837c54261b68e35ba3ab7ac952fe9fc4baf7847a49fece650abc0aee1306f7740eb01415e93457b6198c8a0295eccf26075a1f95e2cb9fe97f1a4a55b068c5542bca7fc08ef45b985180922fb12f3b9737d6679175a7d503137f89eb23f7a057d821df13caa014831cbefd0e11c8ee45d6537c7b9bb57b538dca62f59ba2de0e4a432883aecdedd1fd03ada8ac36f847086035ab2a6a7136f72d7aa43c2d603898f88af0c76a2de7456e56b556f58c13013f99728335820aedf666145590e0654949a6e28cdbe89b116bf73395b1b6f04415ca9eeb1ea23b5516bff425647ebfae4256bd29bd12908fc3d8320771d2d1b026629b647a5bd6508b7d92f9237ce76722ab4f7f1323bd196754ab643f076b9b6bafbea1996fb35b7fc70e5b76fcc27df0432cacc636775e64868ff06f9a4d31802fcdab24444ce0de3aeaa9fe81c149431bf0c0cf59a667092cae0ee207fbbd40ea748d1c5b2005a73fb9dcb728c7067d89626875def78306fd3af41f33a999afb3f9b04c0311bec9178aa5984f781db491f114fe0cbe4e6398e4c71d1dadc87bae3219303872c9c2ff2df880cde906bcc2adb136f12c08a73712730d7b81d782dc36d9772a593254354a07433aa9cd78b77a7ba261fb804a08b3c943ad130467ba53e558c8a52057a764b29375314b87afecb50f6cff7990a42513b3a22a76d0f2cbb49d0b8e786566772e699513a7e4e66a3a69b614455a6f82e05024d267a6deda7febe5b3ab975c06a82fcfec2779eb03e004c10fdf75159a354a7e671bca0019f92211e25d782514dc5c51535760e86c5a44e966539c247fbcffdf726d2966298d7d786c1ebb6369c6eab010fff755166be250cfa187bf84f954b8a51396f0ed103e33a87847e3ed636e530033b7899b602195b5a00e84197b9e61865e14ad4f45c7fa0ff89965f540832e50157687f0596a32d58d3c2757c8765801ed87a0bb65f571c0e67def3d29d6fd8217c6d5e0286d69bf9900a7ec45f280e9e1331685ffc1aeb1a63a30b58954c7b29258db83179390fbed3122469419eedf3350404819c78f124b88006121629050ea8bf88764a6b50fe9e397b261247f3eb0338d56ce05b78cd52c98481a0b9788fa7d56ffbabdb4a7311f070971ef09a6a9ede796d4fc24d5b8c5647168b30b315ba1d5c95caf36ea8240892aea5291574cc51443693823767ee122e41bb5330955f3c87409fbc11ebe0311a96117dcd85991666f84b4577253fdb9a87b7ae7be23d58aa00a5d61b7f6297d02f97ac0cb0e3662d58da204ab9ebcbb9d1315c6d66db6a41500c2ebe75d1a67f5d3489c1d205b19f0bbf99472796d9069f07c1ead554b56139e9396e1bb911241df4fdc008b763045eb773010fa8247ad2e075759886926a3a934da2b77961f20023e04feac013b2cc2c366e6d16266a983d7a177142b9423a5b05fc60c6cec5a6e7efca244dde5b0d3d076a6bf9d536c13d2b040a7889d0428a5c96afe6fb9426e09519c1f14c37adf39d063d419a89a5c1f4dfd9505fa204c4c14588e71fb7d6cb5968fe2752ae16cdfb07d9ef6867703e4a239b6cc07e55ea7f3b8644729dead0b4d87a5ff29150c951201ac0b5175bf61852fbe4e26df996b734e52e1e11c85a68ddf9ca73054b6f005ee0c70296674b8cfa67f54af5242b6f02954724d7aa96cded75f0bbf4cc8c503d53a3bd6942d9a4861ad9ba6a7066af9e449d73c8758054c75c429601f2014899afd69e5a74cee37a2b2b6ff7c9d940066dec3945e597cc3ab2037111f71256ec3c7495b196c2057ebdea89d5be66e67a96f4af7a954ae1db92884a0cf9dc47aab2d46fe61153eba3c92f0bdb905155c934a98229d599105e48f5eab307d6a112c10a0a4dd0f4001742b9c8efc7c899c33ef96c21a7790b067808589fae3993aeef646d1b41cd26c2d6703a21f5f5263d10a5890982516f046e6069755b6f4c7af33db7b3d0f7f977b2013e9395ef8d3024ace03f43c1c1ad8724a2b2d4a51a88518d92d7cc3f7a204745b4c0c03a9ff7e477551bcb690a7fbbfca59a47771a1be324740eee58d2e1236ecaa1e7055334b6f3da88d690403b4055c0036e69e67122c4c4baceca4336901e57d01929f4e4a36a7430a0931b644236191e13116efe1c4634f259b062185d5fb5b6886e0f17a811ccc888b5040d750475057cdab829eb507c38c6b489b34bcb3763f92e9f373fe6cea8a25e2550ced9812ce7ce2a44857115aa331bb4955b0df8cfb0d043b8813eb819687457d626f0df9735a6310c14a28f5f9dda8127037d89a2c4d2ee604b05dfe030f462fb690bade4aed59a0b7e5796497955eb43d71a407fde01852c196c6210ca797b7b2bc07aa8760a580922be0058301d74625b45c537a6abbb7da16770d1e690b4649e58e00f84988d83357b392108b718199145ce3ffeec56d2346723166050ac657b2a621b1578fe0fd00470794e0a2e2ced2f80bf9d8f604ce9175b1ebec0d3de4f912b46c6b08514ece78c78ffcd7e560412c8e9cc0752e1f1f419f118724b0c1f42e8db3c5ef4472d2e89b8cb4c3e1815b286a1feffcc11bc7adf859f43ff50565ee0e37a33cbd3bacb948a6ec586bf7d9eee94fc5ec115ffe75e345553c1e89007e5cef917c2fbc4d6cd6344171df0dcbcd5ef5905853605093fa16cea07ef2d3dc85d3b9fc199bba87c88f233d48d502076b7e0506e57f6bf87ce50f92415acb77043e2de749cec84b79ae85aff7568a1f41fad5ed3f073a28ff9ec7cb1257228e9cea452c19be345e7cce37861fa6c9032c845ddc01cdb8bd965417ece4ae0e8a1f8b5825e9db4b21c0b847493f31607a7d98cc828c0488e408db0c2edb00fddcd5286b8b4d4b28532a3b9f31e849f8a676122631ed1fc4056a4451a20298e6e3ad429f115d23cd3ea33197b08069681a3e483eceaff46883eb9a5dd0f7766d6ec5cf88206927cc6eace79bd738523b179fd4346aec71580523c6c36a96676e3b9c6b630a7ddc1206bed70cf8e8ace53bc5a5ef66613c398a4dc39bfc0b2de0afe5ed38378c2e9a3475a837dfc1e7a4d5d53f6e8c260c21f8aed16a04c3366ef2d37bece9eae8474a0d1684eff9aa1be8f2b6221b209bd333faa0320de585e95b38afdf6449ab115ba304d58bd915ac4925132c25d8dea8f00140c97ab81393b874deeaf9ad59099ab24f20aa832e6c37a4998499075cc0a99091fae3c00d915d5045400f1ee7f6e4e45969cf36c452a631dc50c72f3562da7bd95cc40b1157f156164e070a15fc18b737691aa293cae05936bac6ea688b76ed35ded24fb99feef417fa6155546094a9911e072ef67b4f1c2a96e0858e537b6b959805317297196546a4659f91976e865431363bf3b2cd766a94e42d15419fdd002e9bc8f71398447d10b851eeedd821d86ed5c6e4f65cd63413c76ed89a08ad8db0903eede4ef41a7de3aee7037f491e87cbf9df1505346defb9c169454835a015576ab8ddf31e0267f036011249ccaa9fd2bca45c9c386f94aa29d03f54dde40a43628c3a48507b71311bb27a7d4caedcbe26cd94a65633116cd2eddbd909ca55203fb524c809cf65663f7dd81b3450a7f49f22ec8bc639ff6d03e2fa116032db372a61dc6e923a6f8519013f0f4a174ce4b2b7b891416f8ad09389385664abbf9c87013967f71f59441540c5f624de244aa619aa3bbe4003adffcd4f455dd5ec1eab76ca71032d86263c5ee6fa4fbcd080245b44a56cbdd9d9ecd39987647e61b7436c634ebb871bb0b61d37226f0c45849ff77d3a30ce05963cd6b93eb57f30c3e66a6d3a0107c8a894a6ac3e449a35bf48cfa224055aae38ca77c40d149c3bedb645aca158606e21b7b2dcfd457d2405bfb32a3fa1c05630a295dbaaaddd65804a7231c2edfc986a7e78fb5cdf0c7cad40a05df0caee7d4352b3ad88e32c71a7b965028906c5d9c03a5b3d250ab741febc29ce91a5778cd236eb6ec78b8d2342394424be90b6332061d587d14bd21da465673417838698094d845e4bb6d464ecb54cce84f1a68137023ff7aed29262969d793a293771345d310c324d0724f4acd0682109168e43e4e4e3194ff3a180d2c9e108a611a6156828e8d3b3e0882a7c1f57d28fe4d92181c7a376f2f710e234db921e0b7fa003f1a609f6ebfc5a951a2f7f827eb6aa2de6af044b86075f9d4a09d56353944f8270abc93fd045c38600cef22f7b1086deb5a5bd6d7bcc8dd903d028f927c5358b9c4b984255bf9e794fca4081508347a1a798b9c9715cc9d301636f5a187c47d82aae18834b75e6eec5688ca9cf4f39c928aa713b85ed722ab97e1af208a3ea2c758c2cec2011d094a4df67feffd99bebbc950decf958af2ce7001a7e0f528f552bbb802bfbb33b0835b14884685b2ce6e27a28d6739759c9d39f6c2b43fcf4382694e3bff88906dabefe7bacaedcffaff5634a9a03aa41a09cfd7adad0a2ef93e6c9ec3a7edccc84e0f5be0fb7a60e8f37030a4f1db778d03183ae6cd602f72de135d9a2aa5d0944d214062c15cca9bfeebbe6dc83e825928499515e57696ee02fd1966c246e45db2d5e041e763bedd94ab3f541c0298ec34d07d76ce3c39e4a10fd2c48df14eacea169f4f093b901d674cf275e03893f9e1c04e0df1ec91d675d2a0bd3970e98b3af6e6c4622b1c37de73c3a373c9bb44d5c5333c02d26c3638c69e337751eca2cf36402483a20da7f494b552bcb76b2b150adf2d0857a81fa76657cdb4f119f0c45c9670576f7de67090730dae1840fab68979a43398820bf71cd89d7289ac52b3b6c47e87b141f1021fec7ff0ddea83655b8d55ac5a2cde612b0a57a2bf18e4fe5cf2104493846ac1127a3d71b6cdf20693da4bbea27d7e6639478bc566cad24e8fb8000d944fd48950321644ca98d5c68b16fa3c46544c32dd7184f1968744ce53f119f6ee155893fc5ae0670c8151103cd443a71e2a5e6635f7d8c8e3e73a1c706cfbb3041802c5acbf278a11de6075872fb86d409d949f373458966dc8045d814de018069971a39d3ae16e00b0882a7635737ad2e29ca023e25aa79504cced8dd4a4dc3245846d384a2eab94a67e20d7b6c22c57464b87f66ba0745795220a8ba8f8e335ff1cd58c55f8faff744eb7ab1db11f87a3c6bef8f9aac83817c656f614a91c854ecede40b5dc37ce732e4b747b3fa87262bf0aa39da0424d89c29ba0c96ae3466ecb921b1f4523498209262063b05a201fc60993891c687ec2b8b0ebc5016b360d443c629b8bb3e318361142e719101998a8e6f0e99d5655e2604e3a0621ef830ea932257a536bad1cbc4d86be5cbd8b8bcf448874ddc588d46e144414b23589d2c25d4e2e1985ecd3b148076fc6216966139eecbfca97688eec661a1f5f6a7e2c16dba5e9498033a4c87813d1a331a452193c932c51ef037d32002f86de0192077ccdd9109b55b5c615c19f0cf0b666f5c57c729d3bd0c1dfc56eccc9c8bced09a56dfba5001f72b7c8015f38bd1203b851594ada18ddf4106c4bf7de29f34d8c41316e3f38faa982c087c4d121187c4fe465c5965251a599cfe6b962ef1b58ab9cce3d5130ae01ed0f51bcddaed9471a4f680b734d87991af89a3a2a25fd428dd589e849e2be5a3d2a44f5b3016bc4fd921d57393c67a23e2a9b4999f85445a1964c584b9e70681534044264e4822f15e43e9d143682265b435352687f8f23aef6d01716ea311b14d64ec24dcd97359e055bb24413304581a1638756b967aafffe28a534086b5996fc1c32fa822a0cd46ad809c19f3ae4d942760b2fc6a910db01ef8c6eb6d5a458ef0481d7d62b393d7514370168098b3ede67cfb5a27cd505804d20495164c1e9d05ee404742229696e8ebb47956f9afadd29bd65ec2d0d65595b4e9858e519ab228282dd551b0d3b06eb0bf316f53c2b2aebdf9ac980a5a4314e4506309ced3d40bf59d12db5845bd3133c729b013c1d68fa831eeb7ba38fc17a4e3a293b3a55f3968b9be232d6aafe4836674fc7822e97592b7c5a5874417a25719fdc228b3e600c0f7b84dc39a9013223cc949d38c7c9ee9c9838f768cc2d78e69aa7e33dfd76f3518390ccc895b072cc5f3b8ba700436402f03e168482b53db4fb6595008dde8a15bece0ef49f4de82a3a88145d7f1d44bfe221800eddcff69625a50523197abbe3ba8a6a075451d129be704e8f0fb79a2e274777493df66c3a9f3e5caef40e611eb68e0cbdb7b139246b3246022b4bf4c842a8ed26190ec61ecb13e2bd47a0ff4e38d04da4a67bcfa99d2c9a98c6d07af6bec4744b8e4dc79ecaff32d4016c807855f71461dbcb4aa377b6343c4dcaf6796b68e2b8786a0c158a0be8b46bfa3af6850379d7854b04003751e92937ba74ea63f27cccaf23f6eb7632096baa14e95caf2b38301a5b6a11e0584c80435ee63a824198168443ef96eb80e7c022c6af8c0f7e35b7a62413b50e3f05efcd6dfb2eae03450ce8e2d6b41ec674ca2840deba9eadec89108580a78d3dd2f644458a139600c26ae717bd8a4d0f5d5f9e3822884932772339750195f7f46da741902796006147e4a892297a108ec5e77b926384a8f9f8c068a146c017207b205c4261ae654b194d61aac6e2d6123b472ffd2872189bbb43abd669d47d382e12473c27642ab321ec67c1eefc7a5a86499f221a74b4f66546e9ce3bffcd3d17ddd664a2861494398900e0fbe55ac9a14b484eba82a2348bf5e1e63f1b72ca5642d260a186906514e0342f1bdaedf499f95205156d19784721e889e8c787b3b22f66c0486e151d44e38fa33d4e9408cc9120eaf92de78f8e56b484d936731f83ca376c1eb3b2f366903e8fb5c97bc194f77cddeb1618f7a9a3c775931baa57dbf0825784e5a9b45425c830bc1ce8898a292803433e009142e27e876e6bc71a31ba74346db98be71a6f54b03d8c08f812d6204e8adcad8f435b0258693ab1e82fcba8b66e0c3115f6a4c15c58e8bb9bf6ce232129c095074d0b742a17ddae9d8933b43db8d66e1d762c2cf25f60bc71eafae711047a009808385e10fbed44fa767c3da580415992c45edf79a2023eb636efab6e7277dc36cbd94fb4d63e24518dfc546fcde416793b3e0b1f320b99837245835a8a2500c1aae8b71316957a1b795c9322bc9c7e3b5f257b73f2ebbb10fdb5dbf45ee47c612ef87cff7e609ac3ecbd8ba9663d92ed35b9275dba5455ef0cfec8d066f14f2eaf93b66d1de67170eabcb43324db389c2b60ad4164a35b88e495319367b4d8b3f743bd101fff51583ce4fa9df164c376dabbe7e2503d8afbf97e6143410cc20b9796c30a1dce9eed36798e043a5b6696b96956caacf3defc0124d000434373b73164f3361d98fbf702219038d810005c234a39bd64165035ecbf2aa28fbcfbf1f55f89228d6102917b86f1bbfea47fe04174bcad31a66a2d6dd9c1dffcd9a18528c458a31f691fd2dc989e2686d77ace0ca99b98a8cec855857a8163b251dd681fa7ac530f9326f161bdcc60372476b760682e0cc9127d66ea78ac09fae116ca72efd9eae00cffb292eca1507a93d4d2cc8a25fc80e89ec18e209ad5aa319d761d981f7d5a6bc1b81a17f69c19a2db8d30458baf480b9c02771322ed464a7d1973e13cea1a37b2065575f71d52ba1addfad70edfe12507625aa4cf03294eb894c3dc2fdcc90980c7b1c2266c095c6d8335fc75608eefaa5b41df0c6383e27873075d0af15b03f98ebb0f71baea56f48c6b49222170fc0cb356a7ee356233d8c7833c71c4844e3bd44dafa6258bb83924f7d18b9fd98bba0dc724c425eeb9d5f6d898f04372ec1919c0529c29ce4878e9ab42d07f1e6053f4ecbaa97b8a7ca3cdf77d7f020f7a5e6871413cc96595ef6af369e59fe47af582d8e111537c349fdd96609e98d4ad44ee449114ca3538ff6766650be156a802e3e3a5addf48556712fbe4dd6d886ac0894b6401449568f2e257e54d63fb7fe4db0dae9bad0cbdb1f29ffa31daff3d5b26bb0ffa95e8341d0d4b7edd8f724f5b0ad0d0455826a9349a36dba69c46e80926f712160c99065cfdf5a91d1c9e76a154d0c1a4e2d4c465adb464a091fdf2c441893ef170b4f6a37878c42f35330590bf5a8dbf1ecfae708eac5341f792dbb7442c2bb09b3d3760846d1cf5c9a84afbd28e8b5f1e0701a2138d21e2d75e41dbab78154eb882ed84085f852d4eb56a114e4524a1ce8a6c86dcb439fdab05c0b034d38c64d32f3a41be7306c5dd71e91fa17c8f5539820ef1caca11fada1c83039e943e064c82432ce74fda15e2613b234f1498dae229693573885d886d0c6c5506bcb30cefe71fdf0d83d3567a1afaf318a57047c87379218fa91ee0fae81833a3a4c4a72097192d94c8155ee6ad3c866cc75ae1cd87fe1df2d2fb948e16dd51587e0688ce9f30c161690356a488b6a177abd027d2a260c21e2b337f6c74beb129f7324f52a1f8544274e13fcb00e994e5962e0bfa6a5d0749e9bdb38be1cd954a7af565c1d0fe74873d476d9be27aa3d22cc0eb0c9368d50961233d065cd75463d2e889a53ab861892a453e58c517577b9fc6f602ffcc61d4efcf340771ccc0804fe1414a2e4832b1b191089664fda037bac810c61981c5b6df5ed163cba06ec75e8e08d60f7967c5e1f6daf49192cf4abfd4af510aa75ff97746172fd78d3398aeff5beb8108e7659c071c377415158919d46cbe39af2dd648d4239973ba52cee29b206e0e127ccf9ca6a69d2fc56345271bda75c64cf32dec8eed3be5016ea479c5d7224924a8739249641836f24b1b7e0eb10aa7a08bdd4c1ac946ae4ee033f490e4c3ba0774fa8b1c9de8d43b59be32cf0f41e592f97dd53bb31dc74674e5629deccf461b8df45ef0b42a46ef0e9a77e0f7f735958d944c8f07e3f03b5bbb9d31c0f2c1fff5fbdb3c2723a0e071274058279f0ceeabc240c595e958517ef8b4d3878d615beffd2f644f34ed86579b5a351521f087af8a305eac1bd80291f4c96a33aab156312d14dbbf56eb211502c3471c7a83ecd4642f1db45af4479ecaed694a16b92f2ce3b56347e5aa9a78c7a0d9bb55d3350e24e0678277c1225048d1c3db260cfa6dc304a61901c9277ec883a0bbcfe58544f2f3d822d8d11fbf533ea56330104c2ca8a9f32a738de95de4381055498f748016f07772f2d9fe27fbe782ee9df7da72bd8637b5703438a3ab109c30d741fee48c5858c4fdebbe46b94ea6737ceb2a3df6ad958b2cdca0dd05fd0309f621d08de8220021435ef541cad408242d7f736f2c6f7847a0a95755573c59c9f98e65dc1af7bd7172310fa6142b1327fedf20d02324d7adf45416c6667273d44ce8a92b20b895f72621a247d20610491ddd65e7974f29926d1f4f21c575be46b31ffc4ef19c80edb6748a24afba4ff81c7627ac6c716c655eccbfbd8300ab74335ba416a1416d8891af3f86a6f48d565920b82124e63196aa633d877201a8889aa9045a89bffefff47ab8787963b0f39bab12fccaa0f1f6b605c6260d2f7bc172fd4688de873aa96174ae382ae9873b9c86dc7a3489fb43cf7d3acb801ebcc5ce27b7dc4f5424320d79295da1c002010182c884e4b52c3bffe508bcdfacfba6ca1bf79c366fc0cbf0206d28668fe4cd1691d180376dff82f53e7635c4ec17a265ede702e500e234f5f1101da8fc2414e1cc50c1b8046b08ee1309aa7df04ae2e794950887ae5e9e59bf35ae603e9ca0f9aa769476f59285a2098a8133b0cd1629b9eda73031439811e6912483e6527be0fdf22c54a3c8b82d932a0ea3c99eee5bd01df3579e66d5255235fd9fafc42eabcabe2881e85bbb654136ec78f245aaa2bbc09541c5301a0a574407a179176c83875fa2e1bec49742fdfda4ec05b6d63b7f5f0490eefafd1f2b63fd6189c49ea282a8226c885ea5576ae0d473df28067c4293496ff1df1f84ffed8c8091458b405ff67c3de49f92b990f4c4e1fe95bf514f6d27b031b567ebf26066f4d01640061ed7e012bf73fb0d9ed0781a9e560394a1c7c3da9a050201054972b823bb3f1030f5a83a14e85087b1b5310ace39de554b1abb50ce614faf81aac405a1d6df080a307e91ba5e7b7d3911fccfdb8b0adc1aeeabeea57b4ac5c84825ca21b1e8bf5fb6533d74c3a104c7f6f3eba243dc9d323b584c4caf68562cef7e25f255d6ba34c911e128a53af90650973ff082d10f0ba1e32f4582936418f7131dc6ddee7dfc2ed38d87fd1c6a8bc4d430a78fcf7c453a1f26795155d6731036cf1dc3ba1e2e64854e7961bd63e4b0106e2217ed38e4754642c70a647cb54e38ac1419fe89d943e6bb1f5ca189ec89b1a153c2774ccf28d93bbdd7a6d235b0eca93a0fead63d954c1164c2077ba7d5a6d6eeaabe07ec27c594c00ea9d1b2d01321037f6e9a59383c25ed43912c6aeefdc18f88a1ad485daff83bf1cd19bb9314a668ef84d406ff502c2ff6b02dae5ba1ad5bdd81fbfc82d1f1f4e3e48b76f96eb74bdb09510858aae022bcaa642aeec4c3a1adc4fd57b8b20e5c95b2c4152069ec4b90dd0d65847783fbf56c3a452a809d7d4a5a55ba3dd696e93022b6c02dc150e037812cf801edd593a389ea81886776232588517620b1eb5a5a8960470dc457ee6021d36d92ab7eb19c5b1635a88cec80ecb62eba1c06af6ae8503908fad9d5756394900822ff75bedabfc3f1f8c9cbf535a13db28284b683dae82129cbd633799f15b6337844f71bcc1c2e29da7e342046dc12b9c51af930062c5a760018889d485205e8598ecb1d3fcfb0faffb6bc7005823d047406e9a0636929486da9d9db2365f0e2e5043efdb3230f0bd7ff509dbfc4ca032e2142ed521e6e66851cd257219a7fdf8da80dd888acc5e95130e07c1cf3255c264680c809e7366f0328160975ce9c400fb1478692da7d80e5147488a96ae06aa9c9fc80d582206a06ca100094994dc0152c8715c5c33819f71ab36e7c547eebd04ad873bdc38e4d86e3843078ee3f37bd0b6fcc3b53165566580041b5183c591d22a64fa02117e0662c84817265c377b120570ca4b636f2bd055fe0c8897e5d47d50b846d9d791ff66e4d988c99a3d390b401bdc447283b62bcb22dd9327f605cdbf89f868adac9f5971e329eac97bcaaed6fb3faa08f5ca37e8158e1f8ca2de3d2afe625ba2ef19f416f5fcb31765919f951cf674ab5f1a85710f6edf169b1634dd0639934041dbca53350b18dc9d203ffb2b92e6f62d19e2082f906d00242f0819da0f3fb0eb099ede2ad652f827134821eb5538914c3a4c4086316b5eadbca30e77ed78c02898fc478b8e19a8655c503ceace0decbd4c9188ffd8d92dae447f76024ce8dfbeb39455f081a555268cb390ead9211edcd263dd258f8d9801c53b7344784f7b882b293fc8eb4115f5353edef13b8f59c5bba58690ab6c98324748de03e29bf2e4b6ee75716ef4fd47d4e7af3e1038c9a8fb7f0a317023f2a20e0499d320a93776a97aef0a6b39634cd130616dd214735b43d38e6c0912f76979517ae971c3d47035b9953eb12065773c285ce8262ea1c695ecdc1d4918df2a311ec542c3c1aaa4c619126e5402eb70e70e339363a110c6876ded9fcc30f19b8baaad0ed0114667dc11083040d637b780484300276c54594f7c1942d1fa3b396f7af085ea6513bab5f780ed4e26b66fdaff5f81001a5c71d8d8399ad4ad7a2f6e3f07c50da2096cce71b248987084051bd4ef6c93742aedcf9209f609de99fcf3665fa767ddffdcdc10364e9dfd4665db52feaccac5abc7bb73121d7b2a846bd2f9e4827fcdd9169bd64403a208717fe912c02f8527fc8ea2730eeb8269509c3cd6bf478c49b83c3c5710298fe2595d40c0e8572a6fd000a5bdc0f29c48c0451bc82afd053dc555c578d8ae18fffe49b80a067bf793a590ef5cb924df54b4fe1d0b85411f04b0d48841d3c69340bcd9ee0af690e38bf21da2c213f6f78675c62ab1a145aed57f93734109e0f1cd20b9548dee91682ef699a93e99ebceaae12613071556ebed5950d27d3b6545c0563498398736e19fed8a8d7a758b860b14fc14ef9c9a454845a5ecd6ec637a5d7d1209bf2300a5008cbf32722b5ae3c555b7abb633638b995e1788ca51f653d8aec91bdd8d5e95919751a911ec0c1251361c2715bce0b34d238fa446e386c3a9f2c0c018d0df16a98a3125ec8321b4bbc9fcfc5f3cd8ecbb56b0388c1cbbcd30ada7c87cff1d6e682a521fa3c55b2489fb0804566b43d072fbbf6fc60647bddd1ee9087f054b7f54fdca76e4b0778bcf2642581e67b1682ea9047b1cb2029f94c5261de115c911416968ae4ddd632d7641309dc7636b3da65b6927196bb1b313a1852cb2e607b4ebd6eead5f62fccfdf1b115bbf7241ba7335ecb96a97676db306bf8e21a1d48d176166614a37025a44e25fde0e4fd5cf9f556b1c77855a436ba635b31639e0b02c6f6b64219b6158ec834b3170922042ebcc893e5d5c8732c3e76ad03d8f9c95a1cefff22ffe31b48c75fc59295b4f6cd782eaed5484e6ef12456e02d760e31e4477fdd95a15a9291364af7ad0ca5754c93b11587fbadd6b5a43cbdc1af85bfe232aa27bca0a8c9734cda082d065f197c97e334e3a63d116371a81b149ceda05ba588c0e604916ea13c09bbfb0284d5268edbe30b8243ef30acb7fa187b7d50ff57bbac7fc4302705fa7aca1167fed5cdb4cebb608e2cdc361b4273ab71eb15f5df4bdca40dc6e4b1c048bdaa85526d4c70e2c80d55cb9bd8c31a050fe1cfd023e19f5b8e500e0269dba243ae5abc49fa1e2da7e0c679106e92834c05ad7ac3597a7cef04d5762b5856a7ca2c173db97f3e9582ce47a79e278e700ee2ffc2c74241934a66fdd65ed201ad7fb901e746777a0b416060d671f267a422807035c17e13d2d182c4a4eef3915fcbf56e9a43e57baf8153c3f17121383d076f7dd158b66b60bca7e1e7da1bcc10a9c73b8dfb82a947db1675f21f725b8f5c3bebe982e9656bc23124f0e2a75eab5df2fdf1b4ffb22f44ad0a97cf71dd413a973fe1ea5151fb61f63c510c7b0f0b854033d47be21b3daecb2e776bb759c238cd7e173db34d9caf8d64698e42a103960fffe389f698c85e2bf3a7052e9709f8cd96d15f892480149c6a97cc0099314dc8af541c77336aaed12d71b5aee4ae6a8c3622b743ea6051f1bc33158a46782c48183c3005c5b7c7e29a28b20b39a43a16cef3929e1f08024e3fd34ecc747d16de8c4b03a572cf082b4a2b7e0789c656140f9b141dc7b3f0fc759c5936a59b6b0e89f096e604e962c595399a1a1e0096e353f126077b4e95103f229715f10a468669ee99f1559874fa4603c72062ae55920453fe8441dc5d88e7190d904fb3e5518fe6512968f7c662b7c14827117dd77f7a2d76b6b7632500040f5edcf3d1bc971973011863b9e5d86d8544de322d6e405971e1b93e4a344118ccd71cd4d6e0036c332de11d271a8e4ce7b0c75a88a118c32b41e05f559427d2d27f8f2e875d2ae430686d48cd778f26ae23b17d9aa6e16a134f94cc194d7320da67ebf888d922bfecf125e4f1ca2531d7658e1d78ba61bddb70bd95397cfe18b38d7f73b3bd6aa73abe394b31570bb0e9c8e0c9cd177c257dc1138ebd1d86f8adf72eeedc2584b0d565471f513c6bb97d58c6f9d6cc77fd19a1c41e5a2f0dd579bfbd05e6359269ad87c80687b64de088c1029b0206df91a17fcbdf69b4fa59d020fdb2f4997d4ef88da40ed49ef69fd77e9b6146a8dbb390e3b2b914f5dcd35b88e99a0b90950f587514ffc92b9f13c2243fa43ffee7959a1c9f1d155e39bb1674092ec431aca416bdb201ac358897ee7244ed2cadce94d6c7a457e7390296de2fa32a0f86e7d080f138553c4207cd7e11dadb93bd1350e3cf1c29ce9ec8d272ac3d045eb67658907f1fbd3b92289f2d5f24faf4dcab1dcf12d80ce8446eab52c9cdade658728fa67d8a5610263e8071bf042223555cc49b5bd93466deb45e3ce6f2a41d3d6e1b6ed55550de55561441e44856d1065f3098b04704da5f79feb5552749e2a8706c49492f3b709b71e294a40576afe2cbb7f1d9aee3e9fe9fe0c956c6ddd42f6da8c858c9fd7c2381a3f856e95fe2ca488db1c8d39b233aed751ea297702119efaa28d8928874d184d7dd70ec3ff9501e4a1225428e4dbbf91c935ca1f9de08db479f4f4c410461518c640c0f057cc46aed0cf6aa595c55ca372dfa2f4724f1218edb62229743ac109e7b9c6c3470d468d4c966b56ef9a39fcdedab1fa228b61a7395161e7c3b91da4b5efb9cb243d1c68edd9462464203fe955b6062148c812e1284df1dac67416d1e27326f64658991095664ff92c345e2c73e565db566525b25fb6d669a9ad0000b01ce69c641c4a38836805eeffc91bf245acba39e74d4328272755f9e22c531de89cea770388728b649d99a8ca3daefec631df4d46c58d229a71a489e389f2b7d140c8a8f5de768ac2486bbc588d96319b22e82810955e76dafdf18e3a48caf52aaf8332c7237e6cb3183cd7816facd8ea6b1c71c5ca4737efd80b30c893c30e7ab2f0344d8c5a4af595009c3b3427fe2e30edd02e907c1329e565368be14062635435ffcc530428bde6b58084c8ffd3d2711b6094bf92430245d8fd6d4e1d195f2c57f6af2c1198363641b666ee50a808913af673aa8da47af0a16963d4d2563ae85890a8379e1d88557d40cacf9dcf482d9db7290189207022f9e507b3c02b8eac9756c441d40f1ce9dc5b13572d6674e11a1c5ebca05f18fa2740d0433f60a28341e627cc622c685a91200c7196e7460de36e8dcc0c39f0dc5f93ade8f9db5aab003983ee2a116f74784e7061c713290554a5f796679d582879fa71458cb146e6c636dfa79eed3fc02aef11c0ba3aab760b3c16dba07649cc2901bb6971473ab5e0b8fb8fca6775eb11508ee402addc783cba99ef4b37027275c508f011220e1b51a1a6462bfd45ab82a82bd20e5435b2a311b485ae670ab243186e1ea1f2cd122dd9b85a719e5c69c5de8e3a65b3477fde9fe49f29adc7a926291e41de571b75cfbdf0a0264c0212e983b69d85fa3e1ece28cbf0073988ab1fef4527538868cf5ef75e88cc91f178c905c51d9a10b71f57d3709dddac0151b0409b85abb06805550b99f2672deea8f4dd5aeb820aa315fff29a0af38f85039bf32a5a1b5c47067846ece1c4ed3e8948124fb196f3eb79bc906739f010c009e74509032d38c711b612fda1e8748570487beaa8d5c7923d2794c78a7e25b787718e27616c05ef8aa3513881dc1e5fc93bb8f7db626ad02668905e3f174f4756dfca08bed44e47ea85a953652954b56e901e01e28051120ed8536c19c17aae0db189ebde2251e0a1baecad59d1eedeff56fab1168f974df80a692a26e35a1d98d70400c734a05b19f1c94f56d6f8f27d7a9dca1682f0b6f60c3328d1009e8fb59c1b7c171199b5aa037fb914ea3fda33335c8431f152341306fcaa25958c29d64b0a78f5a0f79106a5b9006295b349cebb6ab1c142ccbea045fd6c44733334fb4220a6c0ef1a36baf08d658ff17562e16c3025fe75ab322f540281bbd790f1798024d38b93d158793a8574fea8e1f511b477ccb0a7bef313c5259a697d2d35d4e68579cb2aa8745733497a484b0438292ea74c74009f9535debffb968dbbf93f60266852c150ec6598c16bc47b1555ea6db316e19902c65ad8e7a7597b769f750ba40aed89fd24bddead9ba4e7a99c354e8a0c6838a75b85b0c58b16fe5a7d089b66918ccc292b1f29860332f27ac4065db375ebc460d6ca3863b75e9f066138c56fcd5ae82d81a7b23352e90420bba7f29beb74c4fc61f5eb1b6fe957f2bb165093ba688f44a575d5afcd2b91baf87f49c7ea7fac8f80ee28d2ed9692d538141f228f2413807c80f2da57ce75305c1406a3957289e804bb6b650edc7486167f7bc3439a793686388a31e787d4ba39fbdbf7e996b86bcf7e98191131c3e3f898a566e28a316fe9b30ff82a70908ef13d65d4a6fae4801ce787ac7d23b918739428ad4f5cb5bedb43b1172cd5eb79a18ce465eeea15b6bc19798b12c29a5245575411c3a3e6c9b5619b84f363afe200e94f63e74d7f11a954a8ec142cab920b2344abdf098481f430d1434f354451773c83581f5dcb946f8f201dfcd624256741a050f620362b54b75cb6c6a70d6bc41d5568553d1b6198e4d4487976d5dd4e6a94e4ea917ff0e18eef8ede2fabc20c9a029875d3293f63737606854602a847f0f7ed79c3011c2f661660903142e338e0507c3406b9ce43dfcb7697efadd2e5d059d944098193443f3c28bb14682605982ad0fccff9d758638e453bdef2bc423e846fff59ee96a74d48715f35aa09894feab8b1ace90f1b4e4129c8584feadcf46f03faf0a68bfd32ac6a57841540e6f732f810076714411a8af7a173b2ff25298493fdca2914f94c00d2291c2270e646bf416984f52bf1408ddfd2b199c1e885ec18f9e297de9b4e01fa09394f8dda3a184bbf2559c37735fe247c1c866162c8af4dbf1061a6478073fa213f596e65df0134be5bf889f8aa16e03cc029281734f350068bb7978c71a142acdd22d559a025381694b682014722fbb2c8d851d6dd7a9b9ad2c0ea19f022c747ada5a5afc0274ac48c8334965580435be55b9edce2f37867b1e37f1e7ebff21f910d29cb3bff7415ba7be01341b72a5a678ee7a630d1a0921aa17f4193d70f524607d018cd9c9687d43ae5ffcfacadb96379c652ec026f3f01d06dffd576a4088f1f67be3d013030fd181b01cfb0ebfc817a3e3951b25307c249c413e171278f8330807fc3e7666cae9310981920c9816f187422d8f5f58eb3aa6bee9f57a2c4f2cb1f830c827304405b85122e09cbcf799aa9894d93d0ffb9012022780e1543b322eea5fad6c01babccfd8cadbd30eca0a668b8700ef49094cea651ce335135e1e7a46da3695a7ebf961a749f5ca94215ad4d5c7a51c5dd7b1d99559de8832d4b1037011e454d4132599c1ba62cd7ffa7d0903ea1c6bb3cf56887e32da40367903427a4f47742abe9ae17b96d63fe85a36e50954c0554981c9ab971d66ac98740df3672e4e3cb82f2104b584ff125792fb11d37dfe930d775c803881f08107ffda33c7e6383e95133df588c85a2fd76ae9fd27556a3f3e6bb8177f00ff8096b847a6938f28beaf2066a7b2dab4ee7685703a988550850bfef2122db9aba5a2908871f42c8be3f2a80215e92ce6fbb333e767f5e4b246cc3131dfc916a73473bb8605bb0e9b26dc308beacadb71a548715dd91870b78f9a797988c06b3df4ecc69ce24b351aa0f8ff25ca4d15648b81f16028f8e59c2d20b87bc2e3ad688c9ed4a13bc3bc3b5e46ba3acbb5396bf5a3752148aca818dc3f8c37246a960c4b303bf4979a253a42a2b83ecb820aab75d95a53b6040bc8928a15519db233c7972d477dc5041dd8644da438ffffe789f9aaa32544e91a834ee304a535b0e2830a0bd88ca28c5ecabceea639a77b35fd3765b5c15afaa0e8300619bfd653282c10a356cec2b925e4160296eaaf8a027e044dc030abeb5c141b7c3c2d64f14caf3732f878c0f225cb7cec7981269f86d2390ec4396e5e90ba66eadbd4b83e599f8b02a87c2e0443c88eb98ee406be14f5990cc2c98c8fe27c6682fb1894333057a3dcdca320c32813c649236beab560b3aae03ba3f53fdf700716d7418d725b97b018974a7336804361ee49da0af8dea0e33567089ac69ba923f4d3d279f92efd54f4365bd0efcefa616b5c7d9b05ed784f486750e92dcb44732866517c8c0bbf1c6e85b340699af5be23e5f377b24b13fa3d487ba325755f84ecca36c86824c4aa5c5aad52196b1a98a43dd9a306c654d44ef8381f31e32ef5c4729724c16ac3bf092d8ce7e6fb35b8523aa7ea5008387c2dde3e5f724a4e888e323a7e7b2eb967777f37471375ee5c47464d7dce7f3270e1cbe9d4f0333ba3815480bb59ecc0d7da70d2c6914709c1a54bbd6e5e2212405f50ffb0fc5b0f222493029fa7ef93701d05c2b30741d21b2825e959d12d61ba4cdbf23fd89150026840892b17a13705d1aab04670f563da226231ec3f7241c51fa8cfb4cc6617e068bfdd86f596dd69a12b83d28eac63c9a0f974af97afce248ffc5f472abc51162c4d096b0b1c18b433e1a8509adfc12122a3cb16e00a07e7abb87191c031f74c871d896f39bae0635e67718a64550346aed8a5eae0f1cd128313f33861ec9978789c1ed39164fe05a85ad4ae43843a1da6baf5481a45f36df271c6f5ae2f0ff5815d90f5ee961bedec5438c15c8aef7b703bdf25b02c62785113fecd6297ebb000295ae0015e2d26ca97753086be0852e7c45e4e9f4fbd406f5389c76b4d9be49ced84382e1998b5a950b534a2d98c3d7a994ec576d4bf5893857b5c8e9c47ea2b341c91b409be113b188eec6ff474e7a65f6f44f68df1290cfd6d18b251a39d32bd472e60da6aaa80605f80b78ddea1332c30f184b60377cf89a81e66709e402c9b1e4d7ba98a8030be5de6ed02ca29ad4d872bdcf50f996629dab182c3d7856b6652c1bbd12e7be78e265a9c601e5a31b5502c099f117405266a2af3713e847807f9a778a955dc4513aec5f713187f41d1cf1cdd2b46b48f199ae7f1559d4b059ba99402e434dd85be0a4497477089bc1ee5c5aead45a25c1758fe2da2c3e38f266d2ef8508f2f040ccb20886eafa2980206efd93b5c8138bdab883babc1e49e2b6687afb6e4dece5b42509dac8b6eee821692300f9fda79d3f660001ee337a25fd9084396bf756a88e49be3110bd81b7f923032f0d5361aec2b5c22b2490db4934cbfdf5d71d545ee93bb2a02f3432d988df6e06c38ff96598dce0ee571d80ee53666745c7aa608fe886489a51d83444ec6de747886ba13da7becf5743f011dd181890cc8835536f24adf08fcc3ce0f01a200748826ba9df5896c61353956ea698a64f8eb11260c6366ca475e12262ad86973aa9563a1fd2308384fdcddc29b16740299ab7dae590899e3d147db64fdae51cb1ba873519b9bea36733f04d6a6e108011153d000e7acc9146e3e5726850aeb4d2165179c6ef3fcbce81c8828673d0b3f8a0cde6771d933afdd793004557bfecfaf3fd2e1b46aee7b9d8f027b79bb0ee52c1b5d43d3782acadccb7760a0edc84fc5f01f9113eb9b0bd3bf196955c6109f8311c42fcd59c198af7d878f81ece25ba17d1fafaa05ff81de81e6debaccdaa4e2750e6c78616a562b9ecaa6caba48a02e1cf11708637b1d57970edbf22bafd8cde8b647249d2a1ef7098028b8bc8891800d9703983d8ddc59eed2033bf8af86aba941253e607b9662dd946d000f75312421b42e90cfbafe26f1a28ab62d38c22ea47af7d813c6cf0a0a073ebd939a3e6c3eb6ba96dfd1de776c4919a7c90b6b62fde1e473f906bbbbab1e1cf2648918105758a4a5402819fb48783b109fd94540c955c93a648c238bf3d32b6eeabc49c36f05022884284dd25f5f83ffff124fb3e347f4529d2bcd4019c96b90886cc834bf523bea18483e2890dcf34b8af56255747abb1b4f7831322190397bbf705d7fcf251804669ae51a4af00ca3297206bf4262db1fe84312f72265627b99cb225711ecf6f8263e594084216d1c56405bc630090e6e082acfe65973b0e219fd4a7a52b9fcd009c741ef8c08452ad6f275eb44aaaed2c02bc0f4fd5de5e7e9e687067615f380067c5b713eef76937aac91838a95079cab557ab301058b8d06e74dcba850fa3795d1945355befdfebe30a25a09e3612a204f1d514f3d278bb2d0dd22fe5705eb6c7575e59c8cc96e808656a01387902d886b271f9557d1a73843c1e3762c31da5069f379f8e01d1e241c0caff3d89e53fe995fe5ac8a50f7d3136720649ab7ed4b740ca8ca5eb42e4533e5f71fb88c97da41a8f73a9d7ebec0a689bd36b6b33934c1a5e6bfceb0c3d67b48d5a217be4320234805b3f46762575c86dfe5d66a72773fff7bfc11173f07787c96e8e093b380ed19f904a8f6210eb177d82543a1ab103959ba5c4801fe90e9c45d85d1712c14c2de2f07cbc2ded6380ce0bf22d51daa50f496a5055af8b99e1cdd8dc51fef0fcf3e6c6b2e9a9ed556813242418a0a6b1d3009b2add283c38a6cd988d6f66fe5b949101338a09619887bf81cae69d1711891a51117a5871f40303f3f10117cadb0e480e6e80d6a29db19afba4d3619e5587d15985c4d7efc557949cccbcc6b9180a8c6575628d7b20f3505020df2fec195ceaac83e1b89aa398ef5d955987fdb66eb93b1c44d05b9b34d014bade0a7f064e90ecec5788face01c3f64413bf54f42e3f4194aec03197a939ce3333ce71f2ce7d6ed84874f2d3b2c0def6ec045148d7f6c0ba89e325385f538bbc226936948bd342946a449a03c0d487795da20a88a304370a43c951edb92360ccb7a1082909ccb44611d8d1ffc69e2e1e7b452990b621f05f2c2c42eaedbbb64af6a6ea1a7833a065f243a989e220cf0d39a69f09b595304704642ac7fe491cd2ed341fd6aae31d3192330c3af4c8d3e51fc79dd0e8e13434ecace14ab2a8779652362aac770cbf5a1e19456d3eff9e3411090941103d6e135356bcf20ed6f683c83f468e46a9cdeca077caaf33271f82ea19bed8ae7192a716c45b6ef6b66818b85c783a54df5fd4bd266edbeaad285e1aca06993bd20f661eccbb6a0a719d4de2dc0f55d7514255b35a3c79b509f5f82bf884006731d303c92ae15aca7481e2a033b2fc6fe1951690843f63b3842d7eeed5983cea7584709b6bec1b0d514c32fdfa9acc6ac7ab697f5e2445823d081a21824e2c4225b092f123b4becfae6ade5dee5ad18f0dcaec8f019253a3dad3de9dc5f0d54019dad8a0a787bdafa3e87812625f06ad3e84f4e36a0422908cc56fe3a6d09d6ba5b61d15b67f424db71ccd991bfa8882b37e7f26d6699e59b4b997b2da91d44dc7e6b29f49d3724c467dd7f88a64fd138f66d1ceca717447bef325533a5373dd58995b576098a0a3ae45823197ec88631a0501d6dba2ea4c622525a64e5ab67fb5635dd3d5a0fbffc00e7386693edd71390cd594fc0d102c0746272d4861c439a81da5b3dd52b3133bb8161f787dedd4bb5753e03a3417a6b598fe0d970424677544528fec89bb7262564eaccb20eb243f8093b52e0a04708e1c1fbcfd4ce5ad03ec2b6492e82b7835823bb95788315ded339c5464a6eca14d55c0d4805b9f8add22cc6e704a76e2bbc8ba4fef38f89dce5c7ab7764c8a698d34da9d498842995c52a399068c97ac493ccc422e75a074abedb12f7fada0ab620acdfacd2937e6404b020e9a9278a42ea2a626ce34271d364d53d4024c78248ec7894119d2f840ca0db8daecf78dfb9c2518b2b2c36695e6105cf8fab39f490a92bce6e77d3a370e0dda5ef0ed0386c9ec626e9618ae1a380f1aeccf7890cc4854bf4b5802d2ea16bfa90d0fd77928de9bab3623afee241eb8fce0bb464bc7b750077f201ea8a022a11998bb2b19416988a8fe3933f37bfd4368bc82087badae08ade8666301ea960234670291a6501455506d599239f3586266d77a1bd1a4f4f68f3696e51bf89ad0eba3b13563fb2417d5a69029f72addf5dda94db6a1b3daf25ba3db1a30824142b650b034d8beadb364c2e00adb0eb620257e2c3d588f6e8bff2ad96b66fb61eecc1f105e509c6a28c7051456526330307eb6a59fb04020425a3c059bdc523c1c931814eeddafc673da0d5cbd729cd5ea418c03a237e95f725e17e1549f3b98e56dccde8c654147ca657f0dac6987acafa27e63171d93cc2cfd8956783dcab19a7d91503f92786f255c5afae3e47ec9e7b0eb18df4ffec181dcc3656c214410d1351ea1f9cedf3a248db3747d5dade94542b48a3cca4842b69a140b1485acd671ea15b6138a49a618c0a49cf4c106d07cb39ea94a5b12d9e48bdeb07316de587700be3c8471a3f68df7d34957e1371ca2c7f2fe3b2ddf26c49206b11b12da555ac74cf2cf39a607c773f81a50e05b9e87d1398c6964013e104b6e6a6fb15fb6a9376cf67521ec35398ac11fdea5aecd1370d37435fb685940c764424e8f0e3587bec7d25047bc20271618cf527fbb51c87a78ad0f2c0cef1e9c7ca913636945aede7adcec12d938167566e28d853d8541c3307f6c9271c364298155bacd9242bcd46217ce20b83e188fb235385a1030ca34ab92a651a8bc386bd8dc3b0b4e3fb9dff61a4e70de5f6c0d5977e987bd3b657efac489849a9fe29f88aadf2e6b5552e7cd80b96dc0e1ad8dd370dabd28fec9e012cebb5866f85bf7055467f86e443c788d7177351de16c527a4b4c96eecb463a08728c7ef6a2e3e2966a93243bb15ba7ca7c5d6ea410782b8ef30bcfe26544de45972129c32915c534067fd0e28635c1ae74ad7910ed9f4c566cec711ee35779b66ad57e9bbd9042c6f1275a02634d766c52f0f1705f25eeaaccdaa6627a0dea704d2606aa56f05f6955006c5ef6651999416cfa6849715846c239fb5d640f1396662d963cebe237636e12f2434ada81ecb1aa9bde40b3ae7cb99880927b25690bcec7f373ffabb1c4978074dc6476234b67a58f70be48b03ba709d5b276d84b5ee14d07240dfe04a053a986168b2f669dd14b4bc6820f795904ec8b2491f41e56f44827aeb1769881d99d64455a628fa66e34d72dc169c71b92c018fedf5ba784a3960fa98447fb328c7bbe2c9bc8cb3590025db591e68a0e6372ab5fede0d3734ebb5508738f19e431711e93754a789e85ccee9d777146bdfae1a09c975849ab0562deee75f154627338ea973b3fcd10a2aa0cce4b731e3531657d9155d7d120d40d407eba52c71588fcb785766b8c0568e801b11ca82fe7b2da4f91e8612f31722f9138bb8f29d6908831e15c83f260b5a0108bb22a69f47daec3f703ebf1e7b83c6eb4cceea0e7e3c9a3b0b7f9112abda046e3cc73da0eb51389ccde09a59f15e18430ac4d90a8eef88240ff5ab0e30826924405b9634943d80c977ea65facaff00857dd389a7389a2576ef2048bb1c617a904c9ef4ae9e6f7558b3c20b32b74d95fc6ae6c87867b685ed6b2e205c4c2ce6a99fa071a6c001936565d1479b66e1c95ce3539f3aa8bd418de6cf00eb2f99641f7a16caae1b532df697e90c5da8341f50a542bc1ad480ac245abe09f40eb38d97b6cb98b12e3e349585e90ae13d1b9d5f6b4dc095ae2403058c4765e86bf76021ef45baf453554d73a73564a634f2eb65532a09cda90c6f9397a877a5db0615ca07fcd3b0d62fb0e92575f4e0463c08362c991976a142e30f4046dfaf2780e6dc1f4a8473f1a4f40ca47a37b2f3075c8fffe35620371cafb89bcc5c37e67de0aa4ac2a98b97abb51417e8023175bc0d9dbcfd17ac8ebbefbac464b30c584d06235cba078e64afaec82030789a7df0eb3647026cbab0aaff61d51c49087a2012ec81194eacd5ecd77e4a20fdc73ca01a957a3fa5499ce95e4909b0bde78c06e0a0c91a50734713f7d4b71d36b46ef165cc9107206179dd6ca9cb20539188e12d7db2e132072d1c890de2b4550c08553008ece6e94eea4fc7a9caf3685f533e2d2dbf190301cc45f555d4702f7f45709f70bf581abcbaadc67cf5205fcebb9096c17aaf684a38fb8c67cb23321ec581598d6ae3026dca09160f6de01c034dd384ebc8284c2a828eeaa8d838697d7eb93b14fdb7dc36fbcb7c14af55f87924069e693b3375378b1793ee243b879f87a8f2a8e73ee5c1b5e538c0544b44ae5bce4f1e1f5b0e9da9743d34c4e119895fe674362e8417aca959e7deb1e9ffc4b9005a91797892a202a05f061c16d91d797266c23bcdc1aa810ca5461cb09c85a53c01e49ee40d34f9fa2cfa3d6ccc94af742a28434604934c25aa925982fc6b0e61d32546a455e7565f9d7bf0854f2b70144b30e88214db31257df0c4044ef265770459395b2740ec5bf2c24a1943a83468392613dfb8bb0578ae2afdf7f3139f573a405894ab5a4f4aae2c2670b5a8c05f426a616614b39bc6b700f7aed53e1593fb1e9047429dc3c038af24e264c54d0c5847baf572259f78f96df88902a01dd0343185a78df68e47a9e6283e47884cf2c2ab02108bac954f9acddc6c1b534afbf1339167e1590052de1ad41055fc37a5ee41dde6e235900c893896b765e6f782731b651f8c7e4d7e2c611b3a670a74962b451739ff0dc886b3527c0ce5ffa2ce97a0682382d3ea435bcf9b5624091dfa13c880387879dd70a891fdd143a38863c905cafa0ad747dff3a9f595b445cbfca31e1ca2780fabfa87cceebf1ee5c1b2e68cb9217cafa501951618ff3978dd9d32fdee67aecc27f64a9ac91127fb4bdd6c7e9fc531141a1792c9706aafe66a507d3ccb4f23c38f15d71fc7d88216ac7a803460262629fbe5067cede265c1138c98f5f31d8e06dea5db459baceddff4aeac7927f713e4abe9c1af8693c8a4a34ea93e04802571a9a513c7f6f336beb5c171ec76fcef7f94923fc9e8a48779b10685c66f28502f8d1f0ffb5da102827879e672e541de104c4e5c09343a3bddd2132eb0153da9393bf85336b23bba60ae9255bd8bddec9d367c6cf2fd4f4306cc3c6ffd629ce539a69fb1c7142919f477ebe50d676e01a66503b7c37a52ad4753bdbac124796603296d638820237d7247c01ef85854eb8fe00ce5fba568a2a46b2b346ab92d854344a25396c990ae5c8b7083ed8ad94199eb8684fd3a39bb9fa5cdb0d5aff19dc39d178055c0204a0fc84555ef93be1ea32ee4a50a2ef3a284dd19f27a91f07c90e91f36a2b225a2a9f44ec47836f361bd4609087188fe428fccbaf88b9c400713cbd2db869eabea065269f612ed7961d6e007490e6992291f98cf732a70c21f12292ba62dff3f8d158a72b0919e277447cb5091c651aef931139e4ddcb4b508192d019268f8e446fc1c9d91b5c088d1d22856f958ef7bb823e5a555abce49f73a2d21b4e98f65282a38e773e0c7c75e4f9af562c81eabbd32560b130fda1eceb77c94fc4d047e4acb0779f06828579bc518414d5402d07cd96be902bc3fb806f849496c2b8fd470106aac1e20ec66b11993291e78b7c0a97c1ee64aead6341fbc056f3dedc18f90fcfbc1e8a28d8daa9ef4f0dea6c14070ffe3de08c1707530b0cee437f1fb1f15bc450622867f0a3f1c28fa9bbb941743ef6a7c4c7553f71a443c2c6407ff4b7db3f9dd3b3d476fd4cd1e3c066fe444c6c253e6e8c8ba974f6c08eb28068a6662c1e3f86859447655a35472247dff3ea4045651df179f49d2cf9e1e1a93acdd4a8b80be74f2acbafdd0922dea241b32434e22634c88adeeea4cb99dd2777a85106466dbc57218bf8b75f989e81fa96ce022a898fe73d92e1795781e4ed55db499f708a2c9de7a820afea3cbbd78a70a68d465e6466b05988bd2e2c192b1d33dee4975c9a933ea485247e99825a3314661507d4d84f3b68ecd396595a8fd2892feb18a8bba2b7a4a9a6645b521f6b4e03537288502e37c56b3f97939654468b63454d2cb63f8b8fd1ce2027454f5cd431d3d976c103849a1886e6dfc43f0621ed8cd6d315e77bf89b927106bd19f176d2117342be8592acceb5b8369781c7b3d906f1f8f5ca5c9d022510d0dbd6cb0bab48d0ac3b9fa5764f6a6a6700c44428be4d223c07787efeb0e7113e3866eedf329063d106c705be8712350a13a3c2c0490f9dc3af5c99ed3912ac92a4db7944df3c6b5b03734176121500a12ff88ccd086feaab51bf818c19bf677580aa2bbf5afdc4397490da48766b402ea5c3f3a38af8e2b51f8938eb17d0db40363db3633e0ef14491c63b0c2f5251fcad44eb62cac0bd159b411726f719e0bb4da3a1a7e9147607806b0c24a211babc73c389cdd6b016dad3b069f679f9eb0a07addbc01c4604f1c225a49949c8074830dd7671809df3d534f4006215032f967ff15c811642a879012cab680355ef7c02b4462c2b67d1e8cad4c89fd591df7919a2a0ba86bef0608ee11c1dd24d1c0d765d7fa5cefb3c20a76886c3bc1325731d0689dcfd34a96af71903abe256386e35de67f00cecab0552cb4f425285c8008c6b28c33760ad9823a602d28867d7e1094d34b4b3f7ad0a707c3867c17af796fb048547ad0f1d95c8719046f9d4a81bd78d5708e63096c3a989eb1a30f5a929bb33ec9cd0e82231ceb2b8bb7fab0f5005091fd9580ab45653711998c7b5a6100bd759b43a27e4722ed1f1de48469936f8fa0fdb466ed6f90639c6f6af1c775358772ec344f8b7255a7c08f954a3eab20ad503eedd1ddd5710580d7fef1ddf50a8cb1c577975edf2b3128062eeae5554ab66ed1d857a08748275361ddbb2f70c94674c43fbfa0b550bce95b6fd32a19174a0b4efb5b324d9c550b2c1497e1486dcc8d97fee58526dae87647ac06caf712d86ed24bfa50d3f868aae25f18768f3c318080d4a6ce0af7e9fd4735144427d3eb423f816fd8dba49e03a02fdfda9e405c0e4db84594d6dec08d8338439f0e96c79e67720d51b02bc85b4e186d541b9969853ffdf3def7b143995ccc311cd2d046d2fdd9801c1cce84428e3c814a386c1dc6b3c7e3a462f280760fcc6cd8c85bae93f049c51a2643f8adda8dfa1a095279a547ed730fe43bea7a8262d9100b1705f81b3b963ba17798bee164acd8a97a3bc3146cd61d7ed6042292df4e6ace11f243579c7f492fd7bebe27510a4f6b1bedcf1f05e6afb430ad44fb698879f608468e89a7f24ac8c661f616ea2ff28983c2bde7ab0eaa9518ff36c4783e0ec59c20ccea8a7ce79c92b5c85a3bd2edcb43383c661b77e539d1c5eacd30d3627a76e399c92134f355fd9b46848e9ea3bf99cea029c65b6db36ef8a93eee18cddcbf3e02f57c72f7863ebc64fb33130193fba8ca279b732caa405305a7c4802a7b72a7aa84bc40435f416bf0aae6725e8ab044d4470f03e3dce8f0183322aa5fe75fe9336e25081439c4aedeee160b2b527a4968741ff2562175c115aaf3fdfb90a06e6503fcff029c1cedad67e6c1af11671287665206347857ff370229b2885d0992686a0e67ea6db314f9ade1916e5656a7709fe2b7af53ff82872f5729ff415c8a99cb62c2aaaed1a8549dddb6a8d270a4f7b08e8f137f00236fe55c8ed9e4a1d1ac4fe0588028d550395eab64ede66a29ded81d3b1ee5ceeb0a03a2f637398fac2fd7558669873e699df1ecb7457dc9bd054b1d12bcdfd833978321fac989ff480ec5bfc1cce6632ba129dbff64a9fdaccbe3e8ef4b0f438462c0a66504656d30ed8c3184f4a7c1df8f3665a9beb6123fe9416e848985542c80d0915e3cc3957e0956081bf327edc369706d2fa7d861ecdb7954ee8c3ff1e2798a5aa7e0b1c7f0e97206d1aaa20b48b59bb2ce3c333d180ee25cf9b1115a9cfb99e1d5033140579dac19a7ac8506e9b32db7bf7751c0ffe2e32c580b6df38e2e945a00a3f9415aeb3b6b543bb1d01c2471a18bd51da1e57dba8db87497f28095000f1b070fd49edfd7345e0125a0806c84dc5f421035cc85c7440e364dbcba78bfd44d7a666b53217b9d708658627791ca8aa5e63f48e0668776312636b715c4feaa9d9223c740f5d758f050172ddea1f6fe0b21448443532cfb7132a4d17554bfa48e10194f8acc257e9ed9ded409f60809403d14d3c44c3112abae71e1322d90e7d3df6e85cbeb06966026274591fd92579543527ef9b7247418ec12dc23912b81e2951627af7ddb0d6d45848cc8f4c8232873b45d8ac85f793eea44ae0416a97d3869f788a02a916e65f09386549b3a36714b56050404ba05e4f9ea1b44a15a72f77e52b4459c6e760153711ce6a69e4057456ac87fea323fbf2178640e8047888769bf890de308b0cb1a51603dd4617604051cc64ac0578f8ee2c1dce9931ea5d91ab07477280bb304b99f1bcd513aa1ed120fbee02177725931d86fac9880b3950c2a20483103f92958ed4d15e131c6877d8f21f38a500fdecd30ec6dbdd14c2b0e0fa86770eca9c4555b624f13537e403c44cb4b62cbc9ef068dd1db408f76eedd6f3f80ab5bc6b2c6b3be76a4b819eb14a8c6d6559981af08ceb72e76bfbd014bd71b5f63a90decc73f216396f6330a8b21b34c9c860a22258ec4b9a53e55e770d88ecb2f1faaa9c6e318d120a8e3a9332ecac689814c0de93b5ac2aa5cfdb40749eab735a86763e99763261d606c9e5391a10610ca34a6ea0728d3d0d228a45a24578ea743d79e07d017ec9a79661784af64cbbf4f31711bb15b756073a84a96feeed4d39b5a36586c7356a3e39e88fc856e9b7dc7e3979c61ee9f2145d942849cd30cb106fbfd46acd6a8419cc95f78dfa8e0f517441c215a9052dd51b64bbe9541bdedbbb57cb506db329b5d0999b117d5e6c26f70db51729582d2eaa592c245924398173b566aa0fa5ec529a3400ec886ee1b5507ca3d5612c7fc8453d3d7f733815650d6b79d983bb48336eed2b26122cb203a83d7810fe5f2a1e0fa22019c9067dacd3daea8b1e28ab657023fd49544dcc5017b55391e5caf16a2ded60dd5f14ba403b922a73f6949d5d923b065240a75156ca21bab1b999aa145a2c50888b9593ffea820e5372a18386936f107275ea61afc32783b9da6b44c5716bbe30674f116757f53d08027b6d6be09bd2769e474aa1d178db4b1129c2b34a76e9a7fa61cebd4274b2ec1026c77fdd22ad6b8101e3ffb2b1471d6a22c921c963c4c606d69f4c78191d501260e6907b5e9595df2d2d46ea097d3c569ba7a3fff773f4e7b6fc936100471520c3bea0c1100729402c5795b5066f802c2ba6eb18eada8081627852e7ae2116404508ad797118be4f18319811443bb539f2d51bc89266a6f3e8028af34f5c91a0525a48dbc914fcfb8ddfa75b5362be75592a686f95168398c1d1958850d20f9d1364786534cdb57b9e3562020f215a19161552f6f0e4d02ad0427b9f9b1efad57e6493a672da191301f153bb531705e905ee2995e88988d8a3f38846e57a1a7d68c371d0f5d3a3170d14528108164d3e7023aa2a59a7e2d832984b5b049ee9bced9f8ca96bef87a3f899f2ff42bb545fcd5899d79bea3f5d31da3c5534304c2bc6f4049592f6240c57e31243bf54e2efd78389523ae1742d8cdeba844acc7d7bb85db589b2e94faecd28d2ef088e9a790a57b153db1bcde05959da1e09f3a0450f740126acf2ed56382bdc361a0bb08d1d3b09ccc66bc5f13693c67d4d65e4f30418e73e88c0cb974439d48a0fc0228067694ed1d51c9712e677c992ac3f99e658234ffaaefaabd76fa9e277c93914b32100f4655c17d991edea78d3e24ba4bf92a8160f8dbd7c9db52d0d0661f08e90c9a163edfa63ddb732eb3e7f9da57e41b6925e2058c20fc66cbc79c7d5d28c6c508412fee8e12f9c560db7378c7dc50d0f9591982f2c71de2895f63b340030808b460abee3bd82f3a013876092dd21c4f205a4778212d391ae96a291b8ddb6bd65d4361802921e4c480aa34d4e950912aa57e6d1df6aac6308e036aa3acf0e0755ee5519e7942c4faf548fc324c2d445bbe8b333ef3d1d296afb6696115a507886b91c59a6b182bb9077f4cad34f2c6c59e3d0926959e8fc3cca32f84738825e03880b87c13615e332a53b353cf6d92934ee8a7c1bd8c30c6c82265cae3979971ef8d802faa02445475db96e7c2f4d01dc2c03429234d7c04b6db6e1e32f93f99d5a36be2e2adf54c04facd634c04e23a6fe02f990a2486ad13c7cd4140501ecf04c22449368faaa5ac9bd6b13c1694fcb52c04cdd1222572f24cee70af85007e9cd8885f1381f07909a016a2293a70914b3298dab94fdc885f589db8cfd25b6676750675c96cb60d34d460289268f402097c3be71c97df2cd96590b81666a65e57df8fa33e1c69565fcac7dcb3c837fbd57bc8099007185b91a2954f9b749d575a442d4ac644f5c2eebe8709d2b927e29678a85bf004f71a1be68025d08ef8446475a28cac8d64bcb4f3cad169d6a37e30cc37fbc971a1be53d343fdd3a5178c0c480cc86499afbd337080f8cc1370dbc38cb17900cee90ed25afdfdadec654b3c9fd03e317a7c7d733217f2bef00e585f6940e91e83427761f2bfe7e843f0c19c44b2a284207bd6f13afefacc3995f29d3511d5a01ef9ad00c4e1ec94b8bff5b9e2a633aba9ef2b5dacccad0136e5cb8275abdf6b94305402ae5f1e7c0852db5fee88400a7a397be2f24714c53c8a5e1fb317088a14184f3fb9d136d98484d700535f3271fe2a01f7dfeff6f6e36a6ac379ee79c083c716f52cfffd0357393a32a78d93633cc14d76f439dc9fdd590d7e96241de38b4a95de603aacc2ad007677594f57c37783720b9f0a35437122960fe3d9bd330b11081aa1ecf682ef1e6ca536032d3f1a62e39f7b3195eb94913eee4295f9c49c2c39390e0289e82ce22cb9764199364025f0b94a5f82e180e73086fa63e36ad5853630fab269010bc02b11048ec068797bbff1ba74e926c6671eaf73fd42e3422ebc6540555563391a1e81180bd3789e8db8e3b5fc98f0615563f270f01fb8c84a11ef3ae899531f7677bcbe4b0983dded340dc18c90a75e6789ae505c5705ec1abd67c6050a83b3b61a4d065cdc604380f2ea3a44d076b0844c588c863d8fd914fb7f8421eabfd59309ca135df8aa2a56399da8cc30c59b5560156305365e03e9747e27779e04ffef4c8d9f9d0a68ea93d0c64e0530b65d364d2c681ff3cca4f0c1a85f23249bf1d0d536ceca355ce047168661991dc788adfd84089da2513fb59b518d3c887595b6754752ccafe9055dd39449b5d80e3a37ae4cb984dab32be53f1e3c53cffe05ef4cffbc7cc1cd7678ad181b4c370bd3908670524baecd1556adc1e539cc2248972686d1847dcbf840180e4a22d82460234770af0a3f2bc3a2f71c3094c7ab02a937c29c3308acb721f9ddd00f26affa00becd0901568f9db2fe3933a569355a9ecc0d98f940c4ff366012b95d904a83964ec8f9e0d1b2112aa0d120f1a48fe5b56d1c14ab8c881ae552f5ed8d250faa094eb9c1cbb8f5b366638942733f8c5536921e028c1e9492b8080598b8ff96fd0470c7293046cdef86010a4974eab13cab73fa4ee32921c2e0509f4f6151b130d2b39e299edb6b41224640ab0159649531b9c7cc2eb06506cb2ff09ba6d8df980003b74941f560160497426ca6e61e0f89e32d3110e72d0bbd3c891fa5dcb3353a19822de36a1e655cc1841a5d9be5ee9bda0b0d9cbfd12daa27ab051d6a8f1935db9c21e6314cae23eba820d0b0827c98b60aed1eb87e6610cabd54fba63ed529c409387c33acc2795088486a88204893a2d96a01ece78dab6fd28a7d7f7136453b6c9f05f1d42932a97b29508564e02f1ab8eb190fa5624964968bbf2fc0fb9c876f29ca82130ce381e32a50f68f5f12df629bc5e412f80b2fc172659189fca5a8e1e0c03f9b657643d07ee6978df1e733c69bb1c9c10b36407d40c2439d0201d19edc1bc3e39d617e6aafc70e34090a7c1d0260a460beb32ad0f76e4d12e8f3dbbf28314992cba46c945007902cae756608f165714f689dd460d2928d8a31c4560e23edaa551a699f7a80af96d7a945947cad9f6f91879d17bf3b689817b7d3ceba46a948b268e6fc21a38cf7bc49faf1a9156732009abc9ca0b03899c3e56cb39f9b9f04be299b3d5595818e645d3da022efafdef8b11817ac8830a9590e062b3c796ca24b850908f73970e9037650c78554b16aadc4f78538a9441ed23ba3b16cf4a17b0f4ed953af5a3b1ca8c11ee7b3df4684aa1d0a13406b7482f640283c4c531335d9bc602ee07388ac6a1d645a6d84af08b1dd08ef0b6cb3a9f71bc5a2b80acb42eba357870443b2ad1ea28f99e6f3f31ab24ace4af0400ee2dc97877f5b5bbae3f1c4c474d22f8df13a8ffc7e5de631a768adc3a83db5ad9cd4f201dc9071fe42de25950e1eafbc6ba6721ca59cbcba995a5021ab9350b710a5a34ee1e65240836d4af9c5beea145609d678e68a07157c6da141ba00c07ca161a90d3a3cfac05d8a5efdac96e295bde5783360abfbd8c1d19efff8df310460e8d2793f359c10158cc7c93dcd7821dd905865a843f6efbfddd42c25f5b3dea2bc66babed89712570750e099725f794de50ce73501b2569b71aaec7b8f9ec571f136e8b7fcec2f78d31240d26a1edfeca84e489dd6f3bcf5f7411a4e22adc991f8f88a8682245b69bd2f7cc1c3afa20f067e5e1cd6d86335217294b051447f1fc8418a8cd28d0cd2023e85b1d9ad64f8b3c4be9b9cff59aea1e6f24cc14d563eab5c5cdfdbf601f679cfd74a846f594ee90c8b5d37359dd06a82e451c8ed388d946a4ac8d863b9afb8ca9419b72f3e3908d6b6459c93559157d88c5c21b199e72f3b6b85535db2a3f83b48e189e02b09d9330608f224ce4846f9a7017f7f68f13f5d4588f93c7ec1543f89a3c387aa9fed565361b3046ea4dc1cc08aa641e4cf3061e7906c196868176e033c849c3f57a4c85f88dfc3a113ed6c1669742cb5d66786a50d9e60e49ff55ffa801d600fae59d8d27bc5ea903178dd04c084f1b21778d08d1894d04412b62d068e2e6aa9f1d1b15db4b6b890ea25cf59d11e3d64b2b912d868ed15fbc9369ecba66e15e771771f5aa1a5b76628f53526f15307296d471b64fb5746e7c7ae70c455d542e699986c46ab75be9f85a77052f8ba33b117b44c11a5e6b23e10e07338297524f0cd5b3433caf4befc5ccdf620f1339eca332010d0ce4d97306a22315cc5851c0c7a73d251450e25d83deab41581ee56d64fab2ece4625da45da2317baec2747565fb9113adc15bb539c25b4eed9acbc71b74b597ff46b55696ee34a2a71dbc0ab5820d89c23c93c4a394e86ee54672de26ee15abd1a11f42edcd6c7cd51d9e1fab35ebebe826f7cdad6ba72429b8bcd40686c88b2cf70da89df2124d204107c935ad722ee402642085ad5ddb69c29f2e75e87a851e8beefbd6176f356a267b9a710bbc2bc62463cffca1e6a35b99f697cf74cd064a0484a586f9bb00e69e9e959ae17b86f16d930f030e3fe2b7d3a74d36510c70ff8751aeb7ee6eb1ab71eafae7acffe396ff197e8ac9a475018f2f8b6c26001db4fdaded7384d057fe2b3a20cd8f6111c76764ab926ac2348783eddc8f96feabb511575a8e054c3779256d372326b8110a7e8ed625d33eca36ee2bc2c0cbd53e3861049e684ce4d73deba96838f3d4f91a498269f038783aeaf6498bd92d7340031c9d16a884db0465c517727b25cae8e0fefba1b66d7f68c6bf22049554ccaf828fff17bbab8ef9e8dff70480995541c43ace6f3ff7a47cea5f2f798234b0bb3ccb7fae4fb51965f5f24d39959220a3162f8a9f0afa70cfbab9037f072c80032245bc3b98f5eb4737e0473ea653799cbe62c61bc1420be3bac49488336a3209e34f2d748f3d6aa6fdcc39ddbbf6a98d5ab7918f1e5440fbbecffd717803e1dccd04cadc87a74070abbb1d2ab8fbc3dd6aaea3d3f27a9546d632da6057e425587d7a4432df6950802a91d1029edfbcd28abafad7906662c7e9353b32b6b0d3764728c3fa96210f7225eee43d8e28ae4e84e01984b06dd7afd268727e5b8036142ca304dccbe4e5dfe51b5f7c4de7982af121911daef1e2d11ffbd3e852cdd9590d47bcda6e13b22fc33606fb485c82db6356857c4aea85b3051eb355ee5462430e648b779983559f8fd108d63b5c12a8d3f4326cd121af80d87c95f9210634955735b75b424d40d625eb89bbc32cb77de35da902223ea5fddb73d2a4f63742b8758af182d249c374679af27ca24626900f187ada66dd544b8db14f0fcff0eb391f551a81b063e5d822ed05246c7f4e887e8a6535c1b80121d6145bd548d782a97ce462453165d6f85b0b8fb000ecabbf016ddf908a4e671013b0c9c7180db4658c207ff9504a4da92a510e2dd3f59823788699e39e3c5dc021a75b4da8c550bc33e29aeb70354a9960e24bbeb3e5b782d6397cba2ac5e5d778a756873924cebe02b9e4bfc1abee8b865e7361750f6c64f01e244b3878245dda99b2b37e1b03adbccca0036c3b68b0b8aaf9c83ad34b23717e81c806502e5625386e263081dd8a9f2bbe47e4c5bd902ad8142d5b920657df4cb70e67a548b2edb40bb1278a1a11c0ba2d1f6189b48ae3f778246b9ee3fb6047df2d29620efce3a6790051614e8235e36d0b926cd80763286923b9d54f10690e3e6292d9f6258486a4dd94ab7e8f5c06a3d638b9b74d8b2a7b3f970098c2732d5334b91f909cf351ae32fc611bdc5b4dfcd0f94dfe71af1787cdee5db12bf070be688be91b53bd8de1654caa0be8b8f15ee35c85c56dac4bd3bfa0abdaa561ea3608cb2dcf0f52a446192a3d5321eeefa060bf7f9a0c566acc5c80a3fc07dba53a228afcbb14e63b33171c46345314b137c101f432050cb9650f6a22508b168cebbb6f7aede12a7165c516bed1f84fc1c602c23ca24111390b26300168c974b94969a91dcb924b772756468f07ea8f6d5eeb5df349abf549f80da46aec5957da4d6a663396e6988a8eb4d658efe0a89deb2d3d89eef4a988accb33eb7d05bd5785204ad3d3586a938075c88f765e5e8a78bb3dd7cfd023299c91087ab5106410c4ceceae5264da1b5f770ab92197086414ae9b7c667d0f90a083ec6b8f2fbbd4ebf110a920c13aebb9b3a2a1b8cdce1ef9995ce0fb5a89cee128aab859693ce4ce3f816be6247fe7702d5c054d7633c7cd463f05f27e7dbb5d3f2afb1056c76a6369a23ef7673b3926665717768434a0a9f54cbb6b0bddd00d3c8ffc9a8d5c88fcf4c15468bb06386aa56bfb11ef6c3fff255ece5369e9221d32b1ce9306085dc31c075843643dd684c356cf9d595eedf4bd61797faeab6cb81975cb7d642f1480f2d654e0b9fc6ef13c2af793b72e586c936c6f2b2fb29e331b5ce8c910328d4416ec08d9183dc434d3fa673443e58e7054e205eaf79d4457a0e87be059359428bcd77579721ef7d9e6cf22398db334fdccce1d46cb475ef3b802b0e1a6401e1c49c0d4cf0ef345853890bf1306ccb82c681f4a0cb72a247aa84767a2ac59b9d087e5a91767bf266617459a9916c1517f66cecbe977b79ae92b256db4b86dcbd466f0fec05c6d3bc1e955e4381fb6c95b20436b52a27e6693bf182832a1ba9b68556973022450aee1c0eddbeaf8d6cb5d34e948fcbb221d597177f55aa963b726d070482723b95a66430a74d90d68d8a6a217ec7887ac5c32a7d466f83f5fe460879dc41401e70840c481c13975729eca129d43237d7d292081914c35342549b209caf49bb90de1e4b8d69ee78aee6eb1fc5a514537808d3ebd171b3e6de404e05a4def8b45e6d51e923e2cd08b1959d9eb6b72eaff7ccee2f24481f953a2190900fa5ec995c5e3d3bd2f13e357726ffed8235243b52ce7885926978dfcf135df9df987aa2377679ee16fc13807f6f35a2807656af90521a8ddc9f6dea890f7b3e65892154c1e55fcde69dc968a243eb44b0fd1405a83b5272daddfb99808e2ae5ae6c357e33ff57b4e2d6feae006794f02db7f4bb95f8bd269ceb27eaf84399d7df8d175a9d4057d530108bc17aa63ba473eea7239b8e4c1d3f7141c099c18e6f7180fc350bfb4e084d389087389fdf4335172ce28cd127105d257795704d15db1c78377f3979725302478dba4d61210d5dffcd7f05fa2db3911243ecb7d8a695a78e00cea512355b02aba63214f1d291a1fc00f27b8b512f640b6b46f3cb50e272025f649f12e5a784f7b9604591d1c444607fe6ef32e56a08cb80bf2ca2ef1c8ebda45ef9d3554e65a62caffb2f02f59fdea020de8716c2ac19b07cd991691c336d7bc58d76676a275956b392223658549ec1332d23580db1d776678da019e31e882683ae3165022e12e3047e400d709c4736767e7557056693b33249b254a272694ff70e96b0c0bb386354c78b211e3b8dab993ee8b31802bce48041901771b43af840e6b80f0cd41e101b4ffcd5fe42d0446d1e8ac2dfafabee5010e057e8df3844a21bf61433497ba04a952ace49d7aa2688c3d4327264ff9eee2546d17db926bcc9abe0eebc3a8bdb0a2559acd6c26c1dce715f5a030a23147ee161efe9ebb3c6a95bc3793e7abad5d5918a50b0b91d2b8f7f2a2a41dad014a8337092c5ec12e882103c8b5aadf61195debf3eab3fb689fec4d926b2880931fa6f6c999f2e2c84d9426581aec1010207edb18d291bd3a64f362d79c50c468f97ab717afcb6e24c25fd8d8953cdecf584fb4aecea4327476a9634b74cf8825e819957a8c943f85c3d2275cca374dcf85d29c262dbf224606e0abc63c52bd1d88ebc79c973b309dcc76336e491c642e4cfbb9781fabab3fba2a29cc000053e3e5633b979620e9091851c99a0e9c9fa1c1eff1adf808d6f8451785ebc4a187699878ed17f7cff7576e9a1dbf1f263222ad948b9878e023c8a476388a20b226a68c372f9870be3824baabe4f1227dd0d48a960f72481dd59c8d2afa6086cba2d97f8e860fa139d7069f8dbd88da52bb40aeec82cd0da31d71c318880cba63797677bdcc93e4e18d1b2266c3228f5b765d05e020ef489aa157e720e0926b8cda29aa7748146bf71f8978a084706cc5c7a3ef5848b4f8470825311e4ad2ef4c44a8242e52c967ab85a881727ddb385e197cbf7006c0d2092b6d6f0ab85a8973842044b01e69b15d4f30d4c43e6daf96818528cb55134b72478e905e8af7b18621c541746a0f49aee53e12c6764fc6f43be1544f52bd8809b9f5835cfbff49be36af33dd6a88b393ab833f2b09a02db467c2b630001ab49f7c649c9e48061f4a2a5950776b07976236e668c278069eb9b83bd8a49ecd2b4e92c7ca0b061c6edcc3ce670f6efd39b21d3f6cce226a3fbd7f490fe0ed3fef5d4d2ee672a4376837c35690cb82197dcae4c684345ae111bc8e8e2aa40d24b4c91c10435f200c7c3ba0af03b6a8c9c2c39839ce22b26c95ca87641c10eb58ea398c8922e38e9b35ecbaf3709a367d7f0f994efb9f1660eb21163849eaeeca32a6263103ebe97da486ece11c4bd387e3968acbcb7f6a6312cb059450aac984626419ad4cdfb5e412a6718a63e202a083fe768b4e3dd855c89af94f2acce0268f18526d234d2c02577f6733d5363f149345055a178285d6f421bb4b82ea189ac731bc6cefacc405eb9323a352b10baa6aa73dd115872622612ce52a8d7054bc2866a4f7eae4b9e185dd48200147bb71dddd115bad40e51ea62120ccc894205b9138bd2fc3b3bda81bb9031a66eae9d3413608d884f19207015ad2479f9e19aa3e64a426e919cf1a64419a59f45a27e895783abcdd51adda144c0548666f49b33a6eaecde2930894c7e0610a4fa44cea1c3b7cce04a27a7b6d58b10d0c11ff3f777b54ebcc0f72571f239db542e2712a69aff601f1c68567beb391ea1e3f960bb6b5ea54ffe63bbfc9ce720aad9e21b270a8a824326bdaf040c76570a8d76214fd67eab25ec514d313d84a0a42600fcbc73bc099a1646ca2f22d55adb240983336d2c2258cda7e6602e20305ff319750c574ec471ce357d071306d1c9eb98e90fee7d01c04650e37ecf34d93578cd3039b01f299bae4a65090ec28dde50456f82f07c563c16c17f8f9fad1ccfc7b2bc9fda6c8b5af2ddf819e84c8809b1b859c452bcab14c48186c9443d399f7123f575e1d52a3ae455e9b577cbb5fcb43a9ace8b32df5f8ca092ded2850a33b61b47f52bec71ffca1237a460e800344b60015a276f71cc131b9535911d901df4eae0ec23e1b64aa23a14505a91ad7fc784f1d4050ae7f446e7f843b2d3ccf6606aede77ba7da4b63e1ea147b8f9b60e52fe60af4a5c0541e6d31f19043a57c666d28f1ad9472a9af51c0689f663fb7709f53061b43e1da567464671416e537dce56b9fd73eb78c65718ba266ea0826c72673148c6bc26343d37ff511f996d6ce5d68379a926e3108b8e6e0293d12e13bf5eb853dfc49d70b2b4aceb4e08e6ced7c21d9e4afa692022cf47e7c97f709cbb908b9b0604b053b5f015a88acd7b0a0bbf16e90977beda6b6082e5c77e9d2d5cc8f55f83ab58ebe31a8fcfbaca2b1411f6cd1a07d662763a044802e2e0bccf307c15b1a37b467f57341aa68b5808b68877b07af1942079d3c38f2de9552118c266ea6b8081c6cf5d02620d321ed2f4ef6ccdf5e25cc4c2ef86c7f435b7d61e3513805a07328960f56156a99b70ddde3791abb00dfe42e8d9734730bbf83c6d5e542f4cf232b0cbd9ef9992a217bc53aab5688ee88693f88d7a294f3614a78ce4410c4199adec88465a093d70c514923d0d93079723ffd68c7a23b46b2463fe8ef415d4128c2ce49f973cece3571dd6a49d1ac7ba366eb2e3b505b5d4ecf67528bf9c455715324ab89989c80c4d67782bdcfe4e9a7f9c148837fec9adab794393036ebbd8bbf779c9b2ed3d413ada4ff71bee6837e2c1b2edf0824877feeb495fc9567dc288ac654a9fd8c81d66714573d27239206dd8277a2deba820b7212614d4fd410dc531b9a37b84b4784158c82daafdc18f8cce5fac9de79a21ad19aa62a0c585a4b4db96a686aacb618ba5da34a309fed37744dfb7a249dc5fdb88432e20e556c3cb7120f342ec789979d1d60c889ea27afc8f51b5df0f40944f25739d9846269aafe98d620914e59a105c8800253c1aa3dda71d8820c985bd688e2d554d3820058b40a51e02332d31e59fcf4bd1f735a6df907ce064e4f30dc77419468ec6e037769575e163598b3f491e00964765be2c4c84dde634b92b66d01268cfc6304ac8885a06ba06292196e72edc83e4a328200b992ee77878d165281616836e06cf5200161ad8a59266bbff62274247f0aab599f5f4953595f01ad06c082c64586909626147b1bf6ec19051072d408c6fa3e516211fbc68618ff79d65fb790380ff8321efca75cc44bb754b05e4e1b812ee898e226e3a2a5f0e9ad2174c912b016cee4c654cb0da9da8dba5d78d90bf199e5f13ccec6cc19f2ebbd8915afc7e495298482948d85e9b4db44f47f99ba0a53cacbfa94b957a06502909569f942cfc2a76b3f383d4325707e2ae1bf89f482382c1798bf9b87dee6f5326c74485002ca2c24168cce51332262333994848f05f465d3fa2c2586c4978ab46c7cb2e13c2be401a882b383f8960e7de169757478d25e0f1cd128404697c2ebf8f2a2084ebc47ca79e1d1fe7cf766d6d0e86e74b4827301553f6a1d8b9604d2816064218863befa1c4eeb8c1a86f25aac48116881e9f4b9727cac2ccb8ff09578ea35ad57fc935bd42bb81ae0cc65bc32096add5ef25a4ca727b33c70f5706e7d318636d67f298c6ede2c01c17b9d233a306f73003c9fbacfbbffcfe62c036f896709bfad4854ce5a1b4079d64da08a22558f373b30791397d66384a9b8a68c50bfc23b651192cd9fede9b20f14fe2e8a7eeebf0c83762dba25e7dc26b22afb3400dba461450dfe2ad1b5700c1ea0b0c61f9cef401d0eea29bfc12ffbf28c440c3d3f0a5638a2e91e8623881640a042dcee14c39b02f5a89aee17b8b3d4450c81ce9caba484829ee5d55d490752c640cc30a0af647fc050a341ada1e2eb67beb34ffab6d387f8f5d8062e826ea34f514e17a3194e9ddee6b069d8b7bf7e28eb0ad5ace97e336140c04abbdc414d1aa512f5eeeb2e1e22b1b6b8fe5d90db2b6b5aff0574c5ee788e90e369b2f9fe2b1b78964330f53bf76bcb56665cc8d4c5d059e58e491943ab90ceb4a48995b34035568c909cccbd609b5aa2ef8fe1de531a36f8c26b66039f9a1a9e61d884ba3b32f14282b5a31a1e93cc0f407b6aaceaa1c54733dcf32e4d9306c36d0d236419dd330bf12c722a7e2462e2fbaf27a7fdc645204770954e8f015a4e6c82fb69a0c2e8688756c50812f623f30b10bb875b861978892bce31ea82f3e14c4703f5b076e800d617abb6edbb7c45f060c58b0f0de69d6aa8205ab09c6298f3653fed3bd4f54240676aa44a0e8e8ea0b372adc3172f7619c478cc8afb26f22151b07e30010c7bba1d07271e8c9aa525892153450b453404048ddc7178b7c82f1116740f12f0e54b0ab39a865eda91f0b567d84dabe3d524b4540dabeae38ee277e640d05d4df811009d7bcf2ef53e6fb6ac50fb15d63681eafcab8b3a7b51f33a2cdc4a5378f478cee3886195334e9e30abace32a0c5fc4047c266409f437a6e07aab0d40f38663a0ed87f25986d746c2a3839070bcb1d964c6459f5640a10d7f1c5a25f2e56ade84fb32e5ea4586268d79e8400d94d4e84f780108f45061b4b2aaa467dc5f80997ba3501d9dba75e4e564b4577c021be539ccdfa1753b49771b873b9ccf3913e823ebd47747ad933b179d2f59004a3f86c691944b826de0f29806d9ae75f1913d346cdca007a22b7df88e6c8f34afb70388e1ec8a7e4a93bc514ac5beea188dc28bbda7a0157c1c101e1b9b59bd24b00547c6e3edaafa7784a888d3b0ec876c5ba7aa11a642ac8aa6d6ebdb902270baeb2a35d669b1bb3b5f17257fdba69970336a253d3e33b9d7a7891ef28fd347027b89edb25525ce958f82e9fb3d000a5bce3333e2b172e02a186f3173ad451f146a812bb92d36bf2d0a800a47dc9bfb5d5d9a035e9b47d31c7489fa1a372ffe57d43465d07dfc3cbb54b628fa85d99173de8a00eed226c72f43bcedaab095847a7290996bbf09e316b16941c3bddd983a333663ce5acb6495226fad975f5e1baef69c2ebf09533c369e938290a21e127cad6c279503952ed027eb5636af7d8d6356537e3d0ddcf30aed81e0e799aabb8fb57d77f487381c0eba7a0e2b030b5552b7d03b54a00a5d14d84eb825e614fdeff6650f8e943d707606b4d35262384ce4cca3014a94772694d926c96e381687ec88bc7f02b5fd264cb40c4a55824a5b22ff37b2e5798b1d4bb350c2e79707cc578e168eeb1e7836c4431bda18ab0bd89e0b746a43779d36c3f5bac5f35acf9bf7ad3b3e7f238ee46139742a5885c400d351684abf79ac44e1ead1856925105bc86ac91ee57657b8421f5ea1e6ffdaec9a78b823d7a89ddd5e6d4d5bd4de81a23303e1b8e456bdd0e879f88f80ee63d0f63b5a3598a184738095ec6ad4e69b309cf24b5de706cf69656b01d727b595c7391bc0ff44f474eb3b22dbde2de53300a36da0ddf3d9b4ea199e007ac06d232402c7ad3acd1f384b8573738d7c11f507b5cade90b2ed4d6de5fcdfe5022f04db4addb1ebbd33d66234881ea10699f286b343c1d9ce7556d107cdfbe44268276a61ad29c0ad02c71011eb3afa36da22c0ef715a169e2806292b57bf639173d537266f137e937b63404a88ba83f97db8c8a7b401fdc7bf8d057fededd629be8b514f504776fef8c827fd8dbf47e190ab24e96ad5eb69b1f11016103054c204761f89e1db6cb86ee80a36dac103e4f642dd4bb2ad1fad3ee29b814d6a7cf46472f6c1ad74aa5a97a24b811df76d4cd22b9a6faf7e66a87c19f187d2529a65bebf976a7e9ccfe9389cc98b9ab4c0d36fb27cb0d63c9bc4328349aaeec3dd57d2e7b297997543a403d7d23a14bf69dfbe563cd5cafacb37bc2e78fa89d3288041c12a3cbafa1d90eb69b35ae59ec2e4d540db921c1ec1b2600ed576fa22720157cb57279df83aacbac42da64ba48f1c6cddd5ae457f695deca9835d30ee094e3685f55d20bf1647a788df0c3d673c0071bb2c6ff241aa5c25d360534f5bad5402550860fd0a553c2774a18f07cac7d48bf2edf7250e2c1d96ad915a5ce4a510c8d35059a20107b51859f442e3c09d2caf76c801ee06a462abdc57db0eff24cd77e9db78e739d7fc70afadd0ceb371077ba8c45844597ec60f163fc1c59e6db85b26a2e303b1760c34e5a042d53fae783234ab86d38df2ffb01b9b0f1b8499fd722599d38b79db083496e59802d9e3ed3d32bbb5fb40fb38a2c3f0ffae4c81e44007aa75bf39d25f0fae7c94474679503372dd59fa0ada0c2a4d8cca9426c8bd65878ceb99f6619f41a28dbff3beabc2afc6cb52dfb55cf63ce080da665b4585719bb86c79c95bf7a8a6c6bc611c158e01d1989103f365fd75f218e06422c63522d4dd6f329daadc5795266fb30d531cb4b5f6324f7fac1ee941b3f7b338ecf7e192c2376fa4374710dace6b416fa2e21addb0d93ec0f68e655b73fb6748acfd0c481456935b27de23e2133f38f0773bc908cd54fc7b0b8ced1db5295c0ddf5fe577f542cc4a27ed3c3cb0bd5be48aeaf00ecbda80e7cf6ec071d4441dfe669086246da8521f76425d18a33413fadabba90c0ec379b50959ef8ca67a96f82e50e0532a3713fa777abeddd4b9d75b5d40394db02696c3f895a86f38a939ad1bc0b1eaf0214ac10a333650c837cd13af16953400e402c7dbbe383d47284f0ac479e4c8e8f738d3ff699977e664a3f650282f6e72937132e77796265b7b0f1b1285f3172ccfeb769956f7b0fbea8e8e75a14aa34720e7877971beb7d8255fc301d99f5ec5bed7898766775ad2339d9de3f6910a73c6834991c0818cc323abb898860b8dd20c4bde6a99e4f6f1ec35b1eb00bdfb29390f45b28dd50cd0315ad33489bcec2230d2b670384d9d3ed4e5f111f6f61d52ee9f969ab03db0bc3a78d0843f6fd1353ae163484755ff6cbba15ad95d05d28e66ec8fa1e4f9d84734951bb35e4637b5b71312b583ed463963cdc71ab98c5915ec070b87b7b4ca0a315ad40672503227f651aa87eaa39e9bae1603fa92f29bc3fd4b6b6bd91ffd107e07eb4c70bfed75838925c0275bea4505ffd9dc0b1665252768e9d53b6e7ba67369bf44f9ec71b0b34939bed43b966e77b103ad6849d3c4158f266368e42fdd63856644da7f8f71eca246cd1f05f776e0c510b88003e26569bd82493b2c0c85ded82e782f6c121c2429a36972f8e5a400ede04540d260f9a622ccf3563a191b698abb2d571fcde4491382a46abb61c9e069b3481d774981f30b748e93442dd39deb590ffbdf88b4d87ebab1509006b07b982a45711153cdb3b6ae7bbacad3aaa99602c8c43dbbe3919f622f3c4fdf39b3cf10732c880893240616c03d70a7697f6c6932771532b8737a347802b7bd400507d2b163f31ac8d272c576f33654e0a95834cb34267e66ac6909bf230bf91c8cb1552e25c11940a83d22f874f3a374b5ec36867d51589ec54d8135f7fd3016b1751ffbeaff518311ff5102fb997fdc101fa28e12c74a66664451e028c692be02b2b442df49dffaa72a3651c27ef4cc22bf86a39c7cd141c5b178b1c8149afbfef417b30de5a52c08ed918bdba749dd096949c17c83e3eb1ad8a3664782b4dbeb9c1b8695110319906f7b53d3064141a49a01f9aa14104922f4107ac7755d44458fed252e4f0e740bc05f02370ef7c679b5d180a78b0843f5f5492978a0666ae64c8fe1c6ef7f7617a57615a0c9b6ce38dba3e004690468a7bfb5cda313f6fd6781540d03d0591b58413061d6667434c41629c6c7e6b7e23f0133b5b0cf8372ef8ce043316cf540ca20768cea2381795f217ae02105812838ba3c63322111e1408158335fab96cf8b9190ba4c37df64a834af34deb4f11a7b1a96ac8529b729c9fa0d8ab510b12d8579f7d0f3bbbff38c727d84bccaee4dc176af316bd3a4b1d30eddf678d3a7e96aa13ae3fafaba9b89f0d8e58f41cbe311badf90b2da850c06dc96d894500eff246fae4f51dd61646303ac041ed1ca5a7398421e4a4426e3c6d921f442fbc2471f18443dd4c11f105613276b573ebba4319efc2cc64fa9d12eb40564ea8a4cdbee4100d775f1ad89a15a5dfcb57b016ffc9a46058e25862c912249b5d0fd9b02b09a39ed96619fd66709cb73ca500ef6a5017e0a5fd9da3108750800705935bf6b4a18cacae503997e155bb8100511539ba6e9aa61fd4b26782a36fe20cb4774d14b2f6d99ac88e0c2e8fad6c1c77d34ef0ba0bb6c76a69abf12c8c5f6a4f2f3a19e8400567b96d805f9e890fe116af87f3cd6139586cbb881ee8cd7a2599d23b16d4b73f1c72ce3c0866686a606d9f45796c3e1d317904e5568a0c04c1de59a3bca8bb16dab5954f9dc199c6b1cb6e6fac1f4baf551d3b2a4b08a293f76f83f4d5fb098b8384460bf4cf5f35dde8f7f5911b602dd7ff4cb12308921ded0ea5e3a8aa6920027e51a67690b6e6ad6e9486eb7a64329900c902752119955ad8c4b1a659ece008243a9fe351784a5f455ab17616a1fdefcf49caa93e047eabd8165af1c07ebedf93615f77f22b81125faa551ca0ec25622e67168d89be78ca7161ac2eb5389c9252edfd921b33feb1a8879b0d90cac324b3294deb1c0221b6a784134c8ba23df431fbc238f2c8d22f99e35d94248bb407eb1da5c120dc2cdf9ea23c7480184717cde811a37fbeedfa65fe58c7cd30aa7e27eb6611b7f262316d160b6b1a5b878a0a0c61d6e9c03449bb69683a468b0a1c411573240646e6fa866751642363edbb98d39c4c2b7d652b899839a5f9defb07693ead5204bd6b9b89f4818a844a4d408f40f4b4e2c82da9b7afd501a0169fc12266d2ccdc60d116e96d3b0c4dfe2fc4722381e258ce8bb29b69ace3fd30aff5e2d7bc4a6d4bea86cb1d42db4dd4714de26507f390d6c101e826bb81a40d39b3a42ade89b37ac6a277ae53983f637dcdf04bceaa037a5cff97d927d985d8bf5b45d2c451c2618386faff13146dba6f7a8453a67ca0541fa6a1aafa8029db242ada157b9422567da1eeee25a86f9fad8e94daeb6fb93c1603f8358bd2b9b1b5004edc54f4006e68850391df422f54d1e1e8d4af03ccd2c758eb7875eef4ad49ec300707a69602bbfffbe4a2a3c473e621ef49425bc0294fd3e3c31084af829a6438feb79d1ced0f6b719e1b2365b978e79fa5ae4739212a87816afe63a7b414422a669bbc7d6219134d81be651554c3a533f9a116750076661dca9e0e5c663e8d1e4f58504a28a31a8d618ab6ed2e1333e390fecba2ea83e315cb6504f6ebb4009b9037cfde8d270c749cd799b5ac15e6f562e51f5417c12fd82f6d5e6c92f71c0afbe989df41fc90b7ab1005e2d0c630d1b61fc6debfaf0a69fd4dc53ec2b3d4921e12f74ba5dcd8fb61bbe8eec3b38babd953c20fde2dc868ab1ea98316c5112489f62267ae9e782c5a23ad4deccd395126896fe97b4e6de16a28a230e1bc290c1ca903f55cb2fd67bef50a3c2ac12618e63f1a61c24875151c96bc25356948a30bacdb6cf8a1a0eb8215ae5105bbc026a6444d423df1744e2df56558cf9626ee0f6743acd6a2ad4743878ada54202874ed22fc79ad3ebedc614a09a572a17c9e9d76259edd442ca8467705fce7d42c53de4d87d9be36df795c528da26e7ca8c3bd6ed0e6fdb61096ef6fbf12075e57c6e50f8f438752f39caf4e87fdeb882798d2802525ea0ec079d79e8e82381ea9f9fc13426f9f3a294a1a4dae12dcb38fb2596ae159d92b404d5cc3f8764adc83abe3ff431762576d48a05ec8df35be377cc5fc1dd4211ad314b23d5e1863774091f121190f7dc575795cb0fed8004dfc75fc9c12a24b7f787fd0bdd8bc7c718788414565e51c69b0cd2f10cbcca357c8367a7ad25668ef423a9bc61b60c88202774a1ec1656fe709ec4d6b4cf2fe269cd230883004624f11af4dc7ee0b67718cfc2ed2bcdcc431b7d25ea953428d72f581ad209a5f206c1922f9ead6a90eb2ccfb60fd64af5f601c9f93cdfe0ee9a8ae8ca76419a075381b96c435f2d6eb37e5464ec8925b859c728bdc6fc02fc3b2295daf33a54d63e8803352c20e4f4b9729f5714c2e828b81c85e1118f2a3424a0c928b96ed33ca08b6a865938d7040621d29f364dcb170d3677596907cc874fb6cb96b23913cad3799a88cff91fef7d5b254c3d8b4431eb07d8f36d5b2335a64175890b3d447369df7ca84be2718b4716dec75b6a2857025ab762a4fa0ab8f4be3ec18d789b322317fb9da2b6b2093a758e63c9a32f6fbd601b6e27416c81ad0b8fe105000d0b3279d1816ce5d8a9d38828f0b6b62e9ea9ec11152d5d93b45470237226e1c62ca61723f26776c8c28981db4025a80b523da3e5f2a99264a98153628e095c13acc0045daca9ad25daf6c194a1943a879bb71bf09c9cfd913902c0d2b9ec15cea51e3c93dce111c1a674beb35cac6606263289250dcd3439b98231e3072ed2f445e3e940e8487fb39ae55bd5334adc454e53bbb695097e1c5ca1acdf85f7d4300adddeb84fb533e6b50d731ed3696d972ee02cee17a33c520b51679947504e5650e9d14977660bacf2be1721ec820acff1d784bed9c9b51d1651338d3f11e7a153e831846294b1d56268ab4137fe5ac2f415e11ed4611fc9d84d86755b4c6eb802a262c276b67e1fc069131782f16bc2773c1a6a958fa72e5965dfcfd273660929978ace79f2e42a07f8b38c500abf598c8a29ded7cad2651d72a65d0390e5610990154085fa32a240e16b8588945fa5679e1d2ad81a00db26b6ce12f1277e4f1812b8324ac38526dcb624253617d0752a831bd4f90921ff07864191704493ca6b99b51f3f9c2e7c57b6ee61bb02f43975bba9048662a20a0e17f9bb27436247000786d4d054b6c1619bc6715075b240b656e7f8bf640342db3e66a281319d764b647f8a6fc45bc6e68a7ad2aa785874895aa57d1ae9b63995ecff0c47b52e42be5d763d3017bf617e1822d407b9de2f357790f286d91c6d1e143b30f2d646c0309971a8e448b4f078b53f6ddc3477bb4ba3700563e22efbaa17744b47f55edc035b58806cd59948ff49d273312ffa36ec63600d6d49278dce4161a8c94b61b8d14dd4fb1e73234cc7bde976b48d41b8d165d80fb84a1322711c96daafc23a0a704135816086d8a466e2171ab93bb1c7a55156575f28a04a232f527e904024ad3cb9ac2136794528739292a704e4b90990c3f7c0be509e7eda792e0f8967913f54ab7668670d0e2d14a645fbfd20e7d245e60ab6f1124de34dfcb248de20297ba1c031264efdab0760f7f169cda6b2d841945146502517682ecbec88197e478db97a4546936c4505d197d126e1a35d8d0064b43200cb029b2d05b18892308ccd36ea2035b8f930d263d996495c5fdca57730712a1a7da8a20392f66650211e8da291cdba7b6646e5bbd4f5a4304d5261a3582f6016d6f67ce4e4e4b3416834d2dab576802deefeb511fc336c1e2fc3ccddd7f8c217ebc7edd2e6c5ca884a0d94eb9b73287fae49a5e92f071a278f3dc3ac422ccd96c46666bf6219adbf74828d43443906b98f051627b34ca26803964ce2629d0f91758876b549940b527fb5c17bcc27c669f0d62342305a921e33f5646c8e03a250133dfefeeb4c059ccf19512b9076fbcbac87d0a53918db53de7cde0f1c2b36e3d7f3da9bad46f5a3001fad77ac59fd1f66068250aa9c575082566a7be5008d4683091dcd05cf1c19f2decb6925018e99125de83b9ed964beaf91f9bfdfda8f4d6f907229eb0d86c0194a7d6f817226463f6d6265719b5b94f51c17d9cf06ffb67632e4dd89ab81eae8666279980bd5d6a8165a3821db00446e3007a1f43b8e4c7662622f82528cb1aa8b3f91e9102f74713f1ca35b787a1e533aa5904e17ad1b3c8fb010b7017245fb5aae6d9f9bc63c40099e2b3017853ec2d7910941313e36ce870dcde65f27fd38faaf91737445741c138687fde2d05e918cbfcb0bc40471432ce40e1f8de4461273aa7ee40f701c12b1ce728c0d43846485372fbbbe3a966b118a5702aef61145577503a692d23d99cc66faf3774037655d18fb48f90810eb994ceaaaeeb5c3e6022c25404b7b63532a48211b13395946764db90c919386354909c7bfba533565eebe50bb44e993d1f6d6f55b0484d984c34b52d587f9204b161733341044ab802b763284ba444463ff83933126e75b778571146cb9367f99ccb094080b3c0cf959d9eaf4b000037f89e33e15123c5781ad46af3dbf4caf4fd9eacc312c1bf9db99a15354911d0240269f7f4383dbb5d2bc4efb32882b9f14a448eeb1a0c983e807514dff2cf614a5a3c278e910b63a74e3932fa96dd231db4c7816096cebe466ecf75d9a4d03767c03b428397fb9379be2a36030ea5772ed3f48835da627f47449e0767aceabc73e05adce0c538428e6d37816c14af3579948f061ea01fff7bcfae42a05117f5038c7333da9c0b85f1b8122ba565ca6962e02a4d58123c02bb4de8468b4ea47c2ee0bb4fc6596a622d3108d89660513686b6191f4c883a6c2014ff7ebbc06a7f1ddcc0db87fedc341f58b88d69fa5ab943cd4de8d4e5f80f0a4ea79d93e759c6a498cfdc1016255a9fe5272d05793497e13506eb09f72279bc607f1c94a7931d70618175d82d6ed0d921bf330965c4667f848bdade99fa4a05b5ca05849f049af14f0479dbdbe05ddd743c082a6916100e4e6faf87c69b4e3ef33deb8a32364e5ec020364cac0d91d0fe541e1b43c3e1fdc1b7c4f7b6f83b588035adadf431c0d6f85d215a54b8c0215a316df2bc519855d5e33f2522c8de171fd338bb2ecadf06761a97de218d45b2f60d60a9888d62b32d19c7c43e7b7b74dcef0c02ac64dc8c0074761afbfa9cd7f5487b77aa5aea6941b299f6083e90cb78a8b0b1cb7c24d279f0678fe117437f4d1b8dde0893dda35b3104b5a51bf1b7afbc4761ecdf97ff80630eecd255f8dd5794c917f31246408ad2c858352ffcf7dfb0e3bcd185ceb3461c001b980b0c57271960fb5c18b0cb94f4df39e99c527b4621c732c6237615331f19e8140b2c8a77a54b55ef5b9b44c0628ffe8d4701646e952aca2c93a85d07acd6caeff2bfc06c2d0ae3314cf78fe9af4f850efb78b78898f8bb78a7086c6fc6d1019092fb3865d738a98878931a8add55541c4caae607b7b9c49560404c1ee69202338f6c6c7bf8f77ea15230dd178da401cf165d12123c1a76a6321d5d45633dc48f568abac6581326aa86ab98768287ba0be6052437bc42e2dd0a0bc13e147ad02fc7cce0b27b9d512fb56880d131c8cfb64ba53623fe8ed028676e2b56d8001f72017755c72b602ad62245335d419a45715bf8bb11f552c9568841638e2d3c45bb0b317bceff0a739e522c4bb8925267b005f52dda6a8b8171802c8594e8fd50f7fb2d07a8d0363a633b04af60d682b57d5c7e0ae2a41a13f029c7671d0b17196a75bd93c4733d383525fef4bb4962df0701a5bdb37ab2b6818bbbf3a9ea6706f72a50234c7e4f4304cd2524bb22f0f0d6e1c9b58ed064509e4e5c67c9714f7c08615b48f16771af500bcc1b48af1d9f34d8b829a327165003f5e01f1d4b7bfe830be1d2ab0716b2a959eb0d79b2420316adf7779677e40c5b33e525a2f7f0e746377c50213b561a3c0c10fe40fd78c8adb2ecfaf7a0997d3c89acc74abf3d680fbb5e30469734d02a34d5cb370b16feb291085af72eb62cdadc6e5bfa686d8fc13589ad88ec5f79647ddafac179213ef09ad22abe99c72cb8053ebc6bdac8ab6c67e77f0668ffeb613b6d7ce23b6b46ca58eeb642968bf3d38c51510f8c3e5dcb197d38239b4a6ba97f8c06371904e79c6120aaf519b95b66136f11ec227149fb6132754242f6d6215ce4f95dc600e48cb6df5c96995b2f14c7cf562c195fb1b8da687725b91e0d9d65199d2eb9693757cc03c929aa686c8d6202d356f23afb73b6215fcc8ac6b4cdb7229cdcb4e5c10dd8bfe9b5a4baed965d67bbf71ed6d4eaba2c32df5252b2d5007f39c8f800f4d070233bc10aa25d790dd8c8017893cec5fc5adade58c5b457aa5bd85a8f9bbd90d580eb9274f45e9ed3b6e6b70f8a49ea368cbe1a9e52d6564db456d77227c11d035683d99c9bbaa985d57598e05524ffb3e67e9ba033f607b16a7c3dda0ede7d6582fa21e38bb6b246040b2303b7ae950c5b076da03dfd505374e6dd957d2e0370ddec617bb0601ee0e04a44d5e37ef25abc0e594e177aaa5d99699ade2a68e6f65d2ba6b081d281597f38b17dda5686c794aefb8c45bae72ebc80c8886b0d0d4f4e78f014e80a30f2aa2613c8f105bb214f878a6ffcbd7ac1c9215bb6a98d221678afd443bc48b39d55bcc8af05e653c05b5555acab135527120f30c5734399e0883c9e6ec79674d512068bf023336e7892b29df8dcc100fc1a0180ff47207808a792ae24f3fce1fba9ee8ce26ba662101cb8bde7ec1f2c18cafdf1cadd32f915d17a4b49dd7ce849a46a0109c0804255ea72438e2729e7904566df717bc00e4c1b0950b3b70adf99c24e195c34fb81462d8853d8e729d4fa46e92396ecef34f330092a96b1450b6b35f519751a0733f7f581e303c5c7d2e8cda68a79e5d4894b66b29375dead26b999b9286a1d3fe8b7ec8eb28a56e590bfba5cca82e5a3d9e059c2cacf97de0dd312dcaaf2958cd8e55eeea72cd2a7b5cb69b87d77c516318a3a71060e8fa641440f10b43d5d042be9a21989b49cdbfc5193f2f6a43c08d082fb380b50170aa5d7b9f160e7e27c6f26939bb3b6259878688912f071134f1be8a29cf30b743608370cd1df5386bbbbdae30e8cc2aa58d0c2813217edbda7196d6e1f36f47ede3546c23351a95932cde4afaf30b396523797b68606026ceb844510b97daabad6db93102c514ae0d0af3a63e64da2d8d032fc09d4ba326205a93baed5e9af75c7faf1c4ef19d446d7410ad9ea948bcf879b4dc74c95f1b8f520767c05db25fef38d5d5c3a654ff1552603c5991df7317f7562ecefb85357f9ce9f5f8d5c8cb75368323afe76f66402cb34a57a37a0a6633c2b532f7280443f401a8ae6d20c1a084c1586f23af7dbfba360b58679a200866f7c6d5032734398cb56e22ea488defa2f4fa2a54b8661731d9ad93ece890a80c1dbfce5c54667279ad9129de4aacd30391fad85905458f43f4c64beca71a0fdbee962e298fa0f66e0c0b81f66db13d204aef39fc28bc23f8638e6b845f9715d3e018b16c61253c2e272720538b1a31672c63bcb79b8508401c09d1000aecece36fcf322db466018ff69d6b5609d3864e3390e0cc45a2458d14466abf7ad4482e78c0cb686b3a5d4083cfa1339dbe6fa199fb7dc166db714cc8743c79809291b9ba09ac2bde5f581566c32c8f11991b2c716f19792f05116651fa1b0595c24ac6b677505cc16ade1f496eb60f0e68b22339a17f71e41043a33dc72530c609a3623f7074f7341f2f16bdd3e0a476c3bed953fe6c7561d1065593dbee20905b34be155a5c17160790ac03b698ffc84080d2e63a0dd4e6465cf30b78f53a9004adedca9fc38dd13e0d4dcd2dd4949f4097d226cc31e0b9cb2953692f7f9cc90e09253c32078ad13d677fe82bba388b64127e0ab7eadb375479a0ccee8fc063bf8176f376312a900da769e8efc89e271efc4494d032fa3e5c53748195f98feb5acdc73e929e1862009e5771e3ef549cefb11932822ac46df13a7c4fce4bc0ce22b3e08718c2b2894db7f9ff6729ed63068454651f2ee9b1954d379eba368739cf634a9abcfff1ee963fcf3a3d291c954dfe012d0cc5e0747437888f3066b6455d4910761fda1028f2554b4b66f69f5d764656561acf0564f5b792300191c2dce1a602bc9b429b6de18e75f626e5ed4c28c419fc78096b699eda9a68f1f252545af4d084057bfe7344ca6363162eadb005a28d02cc8bace0bac4d22b816bea5b46dcdfacf3d4a713eafedfb9ca95dfd33d326582c4c5db64d00ac3ee912d628b4cb09826baa9371fba30ea7ee9bafb3d92945148611a133e4fc6ec28bbc2c7127073d6627c66bc3e666b45253e6f9891e37fa1fa9ab71a8eed4ab453b5eccb995ee63c96c6c354be5c5e2cfc4be35ba840e785b12040b13140536f59b86a94c57e835be57f99eddaaebf034d65943052ee7d8f0147497e2c801f7fa752cede7b6582de294f2dacfb7e749163b9158048f587b493b8e8df296e03db13fa0aa777ba4e9a22127390ec589f1fa2033aa08078687551ddfe650341f08c43bf54b6a0ce1a0e7375aa7e975ad86cccf71d1f9868ea48cb92cae736ccf38250c765d4db4e9f861ba68954d95d70ff6d29eaa5cd0414da3e5f5e0e249dd07fc1915e570de080fc459c08d0c8549887432d3813a9cab2770dd7f696aae7b6b1f0d8ec898ac2277719d65552ba79af9304ba737876bc96626830ddf3de28be99a548c819c7b94569e46e729a6a150691d97c26ed25a9d24053154465a9418b0e871bb692303206f2b12628abc6133489a66d3ac4033d2c24ad269181460518a14d8dee65c405c48e347ec6c63c5adff09ad3bd87783dff62dbe6443554281d3a6bb6dcd0d36d36fe6d7b69bf0e772176106857af85a97f48ff4f5aa5f1ecd280205cd66aa38d8b21dd41227010ee6f59d9b8e91cefa24621e9f312f80f7550391503756c225e4d12a3548d3495768d6f2e7e9dc095e025f5d6d518ce80f0a3f8959225ad5b56623b460a85013dabb5e2281c9c2d93580b65988578143f33137ee9f2634fe0dba2caaea9c421b8c6ae5d7f41bcfdc52c4d931dda338f2e71b3731743170777d0254326136cbf0d029f47915918f0aa977868ba85f4374a05570e9045cd19480fb89e37484e3f1661ab2591d44c4d80883efad6864a19b1ebc99990542d53bb419ef63ff3679f50f333b7f1facfb9dcaea5d9a3abaad16cc193bf3a4363842b6e3b75ad29c12f1ae67d09a3313476ef6c7b373c95f231e5db686cf150ec19df608b14af689360dcd9af9ae4d6a71a7a740b7ca18fad7e6e2d31e5be48c94311eb5f2a70d44b16472c0c503c3b64e4ef7986e7c4ee270f8e1d559f1aa56361bf43882dba01224f8949c9d6b1a568d044512554fe952d3a8e20d6099607e67fe9fb2a4ab31050c2e80d38016f94b4937999a6f3dc00fd8096f31c6f48e0e8697d380377ce31381298226dc266c3783eb19efb5be43082af3977a683f9a5118888cf533d0da37f1f9d0608c6c55bd6798b06a8ab9a97428c19008d445679de30cded8904762ac9d30c28e33360de83e8850231c3d59f7ed690029e79b409bf8c8b1648e198fc5f0a975d64ebecd0d2a28fc616669d3cc49a1e417a1f6ef142918cd49e11687dd68b8ef93a1af10829721b9d52c4b4b2e8c534d4cdf3a57ceb5371d2f24288ea8fe79728f1605754709b0a12a37d5ca07fa088ec86635d28a6e0e01537b0e7d4b806c3a30bf71439b013bab1f7726eda7af65098713b6b82d31e8f186e0bb81c663c3020d6d644978a289cac958612ce356f2b385feea9054509595ca5fd032b321dc8536ae23b724934558ad636ca435f6c6adab95950a825fd33ff090338683a91c5d5bea37529104550043e8ac61954cadc948bd8047f95d6dbe765e1361c1da739137d45b26788806308b27023f57e0dc062e4639e2a760ebaf621d54c32180d8de26e3e0efbc2dcf50b6cf9fa89a9bb9bd9809c0c71373c070faedf4ef9a319917bfe1fe33e54ef35f2864d46edff8c4c259dc1c85fb4cb29546ec6825091d1c186a3e238098e3a56c14ddf3280112f769389e1634b63c8a9932f537a9f6ab11635812a1b2c6f48efb99b0c35655ac450cfd28875c2f911d7f9ab1d1c614065d92770be6392fbb4d9879d88c626f6ca362d7ffe922a060a2d519fd021a1b6c1eaa4842668bef2808393b9b722994376ef448066571482824978c387af46feb850cce6f395d8df477209be1ae88f8fc0cb85f89fe3d3cc03914a080b15aabd384a79aeacd0c3ea52872378ad15b561d2bfeedef395e3726a7d0e14cbd0b3b09aa18c8e60b6033abfabb624c7ff20b52534b819d86fcdee9362dca4e0da6b9614cbc7dad2d16b2bece95d7e32170fccf52116c4a3b7a08cf0c4ae7c13f4cea1ecc6899eb14402d0d231eb14f92e250c92554eb558d2d5b29debd2c33a1e7e2a97ddc603fa57cc1b791a02c98d5612826f78168633772f47e08953d238fcaedf88b72f66d2fc561517199fddb198a8791971343c1738e240702b5815ae7500e13b0497cdc0a7c3acb3dc51cfbb9dfd699ff42c2cc96683819aeb560b338dc49efb5c6c9ae6e2cae0bdc8e1b09d48132a39c5be71820802f47fdd3e718148d527f9352e21323e79e9c90dd612837b9a2e25c9adaf7642707b057eb9d7e406c55f20b70cc78e0104528cf1b48c77e315f53507c124fced10d999f25f852a527f89fe48159ac65ad8260183d82803e36ccd5d86279025f2590a4ef4ab44a2d890c37b45c49b5ad0cd20ca5fa7fc10dbdce309075b47da282e6c4f04efdfcad2b643c52f4009b96556b80dcb1ef76bcfb24bf437d1e67b65e1cf91b57c933845cffbfde586393a686df89744e27d3277e6e32fa261c86acac8ebdedefebc93bb1f4dca6c407111e9e3cc11f2534d5176e9ef3d91052e393ac5b95de5cfdf2b16f5b8a8fbf4063772a46af63c34afb6d12804e84f34ae6fe96bbf0f8833c2d5e7e68682d176409a9ab05196914e90e132f6e6f8b3bb4021417073d9082002aa51b2a3b4c9b5122e1805d382322266639d5b35e1c510acba6a734617180e39f8dea35820cc352eb5c8ab1acd3d9ac3f5d33acd5e714fff8f35893a0f1289e45acd0a3aeb4ab64ddfcbf65181e402f60e94a9d4621c1f966940b80ba16645f96cd93350edc16c5e560a4f5e4bd0037dcb5bd55c2ce1e46863faed7f5a65011085defff5f9236ddb82e18d937776251eab0100bdc5913c56f59b3861b5b3c289deb4e53405d91e61a3d884bba88ab7965a342d75afcf5b4177103fdf6b53035c1a38609777e865b0982430e2cb44fe83e03f48858d64f9fdfce8ca96835cbd065792222cc52e6fa07297701f32310901ebb302be538b5684c3f7944355fae9eeae4570d8f7b707c90fd80ab9f8d4c6bd60959fb409fb1d33cd3245b20059add9bd02036a439910553ec4e12df8fa375c773b2021c4702e736a44619095d88274e8bc1f9493b40d6266c538ba547563f4de1fdbca60ba9c3ce77212ac7bb5af007c417c1e6ef9184f61b147636f9ea5d9c1dfd392c12618b12a7c71d78d85d191043811b0c672b926338c0962725c3c8f2dac7cbf01b8cfa4bf4b94016710e21f96ba4e08470ea4768687a8d38fa1f0029c33b5c21270589cadc4d10907d4aaed110fc88700459359478c803cbc505c9cbbaca457b95ca35d00a633d558817463bdfbd15934b93aa41d9d8a68282938d391148e40ab6b81e76d51346d8187e351258228e571d46324d96d4af03e0d34e70657e1d948c5ac4e7fb16b24a5cebf6b87d95bf4bff845e13fec240433abb0a199e741e773b423c590d27c14529649fb981913d0aeb0bd9ad04ae8aabbdd85d356eac6eab9f525c21939f81e154aec049b4145f4a2f62873ddc18cace6c470db77a641c8247dc39c6f085b0d1eb5b6d8a3b599051ec3e10829346141221147ea27172b84f616c5cb02cbc38bb0109cc3831e4419e8a47307ff48b1379887f5a42ad21d7296d1229ba63e3290c14c7548f5ea64f32400848eb879f8105586dbb3615a41ff368fe3fe9e88682fcd080427534fe1252c549de2dd30ff6e2a2c45cf56d0b4c5cfa1fdf63955b7f5f225a580c1294272300fa22d29801d7bb147383a895390316b86057512c0391b3d98414ba276b2bf604c65ce8c058708ab6a6aa5acbb77eb14e2441787546c720f0be3917093ca1ce72ff36018df5d38f553d5115758c6a56692e29db304f385324741fefad735e1eca156136b41310cab8ed4e9dd5efdb67c080b52db645fe34bffcf1ed70918019999f88f6d2309e4bb3b6b4d234966ba3ab34b36fbf96843e3e63f824b36fd61bfc71d167d7b324b21525fe6571a331b8ef943b98f2bc099bef4af7e138e9a4e1d922443dcd7840062bff08dc2813fd9b166ff846b797a410440c160709f59aeda43c111d7d3fc14dd89afc89ccdbcd113b39c94d8f1832ed58053c3b5a2c584ded0b5efee29e04226f870f2bd7fc4fd53cb3779c8556b7565cd8d533cc387a93dec2b8a2cb6085f45719ca708b4860eb796802a4fa021e970b79cfd85ba678b84b48b28f1de51a50508022c4e8b98a9dcfe969eb51fd25d84013af49191388202d712d652178e18c45ff9ffa175b952878e34b06a63790c1ffc632a9c8c032cbe75a3147790d72ea5eb48c1405cb793d947ae1dfccf9b99c0870dfc0817fa8e918121299c2032ae6c06c2e9330f1df1510c740c8d9c171794d55d6866dc5c7f340f05c9ca3a6dccf60a3cf277f690746794e9a5399d2e7434320597e365dac2c991f2c6e800e349935519101d4966f543d125bc3130bb74c9f97a721cc48968f8f3b8e414310fac1086aafa49c078f4e0a3c34193cee0f52a5dfa4fa30a3f11af063a4cb4d722ad817330d4dec48a541a0d1256b1dec6b1eb1144c269246d914420888fcf8286562e4f89a3b89fa7aaf44058d3989f8221c217f05dd8b9202f9bbe2b9bbbc09afcb79f6a1f3a1199fe449b6d0796d2ebccb9725101bd4e54a1f0c5cb01961cf67732c224553d217278848c4a13ebfcca18ebd880cff131b3b9a95be211df2f9385c6f8237a03ca7ba9a01a800d2db4ab2a538039aaee39a28e4b0bbf0dc6cbe24ca983fa75ff2145e089ae97234d52eb764b3ab7787712acac5a868dc859f2c6e56469af360e3b4fc93079556095f3bd9482a8a7caf89de0f1c18ed383a7b48f5675f2807ff3ad579ae0054f929eba365732388227e97b6714e1bcdbc8a81ec06a565591e59791e5f1203cb358d9c2a52e0dbf9fc5468107424eccb06567ed767ec05477ce6b0670fcfe84e7feb1d577548e5d7faf540bf4195bb58d4326c8696be2c943988cc4bf4ec233655aef9f907619126d39b38c55f5831992b7581cf7a8af7cb452b22b267d92ee32186a7207ea6bfe864eb5baae249b64940ee538de12b828004ef882e7190f39b80d0c3481d89eb717a9037f63f0ff5c28733ff89517814c7a6503cac9477e4b4ca95e814df230efc4f413bf022c184f6ba70f2f4b31a41680c88e2b55cacd98519b659ca55be238c67c434e55ea56290e45a79695df4ae7f62820880559390fd1966e230b8ed9586b8a5f22fa3cfc36429ff455870a28d922b4f6a54c06769822dddced278f3d5f0874b9b5e04caf116540b48e315b37e2f48765371afbde07fd9bc9a10c54a22578f0f0fb85993c1002d7b51785fa5bbe627b76ab97b244ee9d755edd019bfa7d646c2b58048888b5dc2118e90a3a93fedd5a2668499710b040b2baae85b165855c0d51493edcca77ef6df212b3648140c949ae31951fc46f8b1b27de77110a31c25e3978b673d8b3c99da1bd9ac3919ba52a0e4f8800dea1adc25849c9e2cbb8839364fa4149f59b434b5fd116432ac3b829902996b4cc2ab584daceac0ff0498e1f23764345aff513585a2d597aa37c392119bf5d79626904aa892ab884b3430a7d40446fab93581f04e8a797e66876b5146d2ed1839f7b7ecb7c515c5d1403deb95d09a6045c9c608aacc9c9b8936bfa2ea30df114f8c15e0029fc491a3c51c09eb160912e07af1d4b00c4261957ae59cab948052606e7aef787772aff452d63f501509fbad768a8bd7bddf77c1e676de4bf18d70a175e523d0b19dcc4d67dd738ca611de39e6a1997d33a10126b42700119892a44d33df48767e9f2778a32c373742019150de995679e36ff22dfbb0fc0ac305ddb1b24be01ab29c6c5005432216c43712da08648eb59675004d1afcd3bdd878b4d43e3dadf9c6b9ba68dbce779710493ac1097c84ce33532b8abda8d73979bdfd88f0f87d4725f78e6b008364ad2ad714a13088b49b61f653a33818653ce29b2e97eb05a69547838ba24afeb7cf197fd976cb3427067be2d4b50b033e60a14cdd15dc0f17908f0e2dd203e1e9c4735d3e3762d2c33292e8afc00b008de37dc1ff4e712cc1bb94a40f1fab062b6e33b2b761930159419395587675452504eb04375518510f0d17aedd19ea6f962267a301e663e1e73c03af5bef79a06a11c7da37e4df4285809d58126d1df8e5cb8fb3e2d514a880bf6b1926218aa98ba001da0ce87643c80cb325b5086b8bd0227c95d9793926c94c6f0c2105bcbd4f2760dc55826bafcc68dbde7142ddd02faec6168fdb29631a01d7aec40809c4fdcca432f33983a222daa1c93520f1c8b7961848bdfead85daac90bbcefc022d949ba308a318ac3450e49fa1b5b1f6017a9163acfecaa5c1f3ea90ac4d2a7de7c8834dd7cfbf2b3b318f6b6d98958c4a64da673c5e55add783741aeb8adcd5caf511f86d50da277d58a8e8fb53074c6b726bb3d26aa8db8579e66ad6e8927367fdaf139338880cfeb5d3d013c70555632b30f381b78999d3893850accab0c2880c5345bb99da2705e29c32093a4b149c02e5d6c470802fc3228d3760e57f79330f0ab11961f2cac32cc171d6565a2e14a418ed695ab6ad04c7f371f440ccd5db97c380f67ba2627ac6cc94ea3cb878a68b64d1069d5ec27e9a962e32aec21d128911a49f20d468a5636686ea26b33eec1d81c614c8bea7775b6707f14b1a5bac402cb10837c981c1a2f3aaf98481401e8e5fb4e434b45fb86227a44fabc2d442e3df243df2c1f7ef121f739ac632ae5b18110ebef1e83be65a122d64e291f02925d5c4dbf50de7b1dee25a9ef2a4a5e3c6b0049ed13827653949c2516cc424fbd019069bcee07735bbe7922023e40c7b625fe9f41e05387842fce50214a224cf152dba8d6c4465497e83d0d2ab6c2ab5c5d98a5dcd57e21baa99414c997ece3e69752568e7ddf743b7c3f85fc6bb0a0383a56cc3df88ca53c3d804a6cef25c60b14ba88efaacc485724336781dcfd158da57b293c9cc5e0eb258673c361a43a8d3cf44507790d140fd4a97664a4eba0dba2aa3a2d070380352c00fe2c7cd98aaaf7e2dcf9a134413120a06a3e57a49882f84e951166e7545bf1f1fa975a89d98f4281a5f39f983060c1af83d3901f02fc750d3813ba15ab8f5486a569d7757d8ab46627815df3ea495618771488f5bf8a170faa0ee6d1101b9b21a777be15c85e07b0ee6fc8e9e637b9508fe5cac72737f6649569bcd95ccd9942884716fcd02bad778c4ba3214db39079efdc1946442e541be92170f778bf3a209a96a09afad985e6515aeb8e0d3ebe60fa04cce4a01415527f8e0b38bf92f88af44760a95bf3df7bc96baa5da9a22020d7da57e17833b13a446490fb9df810b395fe525188114397a92ee19994b217ccea054e781f6ad28104d02ea07434451ae1608b0bdf6789313558a3076f7a322ebe77fbbc8714c9624f6bad00d6c9629093b8dacd500804cb259acc5d78ad35b4aa227e2c27102a4d5c5c389569e5c9495da97e9c76cff5c75811be3b7713c4120e3d20d1e8973997b58448e6a43c8d2d358176e762624b120451e86f4eb9c8999625e90694a3a7896fd9c79948aa857a7be02612aed6c9a35f7f0933db621e617c0ce5bbcdb68ceacaf90352523891c33a281fe2700e840e6c1648514aae64025697da7d3db15d3b3fac8a28da060d5bfb2e47482959f99fd388d0a61864afc9423fc82cfb6e2931d04447558a45804ee0fde9e690db8c0372b8f8629f5e2fffef2b0436006679689060f32d21be8ffba47b6f16f15f3e82a92d96ace1878bdb6ee9b98fe1101c3d798170b8713df6b9ce964b00d314f5180342b5d68a9a5dccf8fdaa09423c3dcdce5ba8052a02f4df2984ab5255902e691d419bc7d1d60a202d637cbc3542fcd1b036870c20c61460443e8432e0e4047c4885be3c2c8818015e6e18b2e2a1341c8e0a02d32e656bce6d13219f3d66a09d11b926ba1426613c06450afe7eceebebdbf16a6661a46855eb9414669293f5166254ec913595acd5ca0f9298c8b235458338f357857a2e534ebaadbe00e833ba6146260e00ecc08340bab1b18b79b4e89822fac21d72cb630a8e29d7ecfb7756a9a5afe43cf3f3c8eb8d904914de8f7731564c2b785536706f7928e29c54292e2a9c97261953363eb1dc57dad540458baeabb28a70dc07e3bcbd95487a17879a3e4fa9092305aacf2951e5b49f7e6893e3bcac3b6fdf6de421c0b40800006fe708ca62531f4655e0abe96d166f87ea9f819f2c94c4a806b468b01289e6b062952bf2c44481013862a0f510f975dae8e07736ed44e0226d887c2f203a9115e84e285edca8651b37284eaa4fe3e45523d5458d6074aa7367d2cd3063126c9198eb195bb5da74eee722dd184b185ab8db689da0ddb509291d538f3c2b2582712911f6c2ecd2cd040e8ecdf9dddade023730eb9e97ea9bf796b0c97064bba53dfa384fc55a9fab189b88d27508d701ff7298e00b614a11ff3f7f557d362070efac4381ad432070b1503a7634de5cbbfc4c739426fd3b89c9198353835688a5fee713667a492567b8c936c2406127421d17f458dd6362da1f7dcb0ee94eb5ea354ad5e2cc2671b6ac811171bbc4d8811de73357f6496d8047428e4b65bfe7c8f0467284560640a5a6e97679ede5f24ac03992f5348365c6dc3c43dc70fd8b78cb94448e216dd2f80428a75889a97420eda4ff7d00108c45c5e1e0d125cc0d2494f598a7c6b1be8bedbb858e6e7921e5855a9c61481e183554ea3c764013d9dbd409c81fc8057cd6bf3dc7130e750c8a9a0c931714bf1a8e35c9de673ec3a44ddb13d2b970c02dd6b58158aeeac02fbd0e6486ba73d703d368eff7571ac3e445804ef9cc2e2351131a3ba196f4d8d7455be388ea61388b8ca14a0af7ee033daa8fd48ced93bbcb36549d7fc49dfa95faac68e4ce64f150db975969592530cd42e051d7b3cbc0eb986424c51e4fe986007855f731e76185d755b50330c8b68e0689ee8e1364c4dbe3a317519024c4ca1a518083a3c8b621232d2c786f5b18eba59f9a742a37c376fb4fb58bca83f2f55652502b61b8debd6181aa4cbabb1dbd7ed80f2a631a5246a4ec450d3691f6e2457abeae7c2d452c638c3d2f1f3dd69bea858d36bd21cd0bfdec7627b7cd43240d72763599c6cb1b55e4040850fe502a91708dfc6a89ce520b3e8b6c2d02f9dd4f0f3ee412125342469a2736ee7459523da9b3c86f469d13f96ce70f3ac362af9f38cd6d1f193213f14669f12e27d779ffa1d812f78f3c395467ca3223196707b351f7701fd47c0be6d0ac2d24569d07ad09edfa166adab468a77c169e088ce42e3fbb5720a39a4382b0f187629cc789591ad9b9cbcb263e3ae9112a66a42d5c149ca52acb927b45f5243e38e64904ec54745c8a5ed37728691d28fc378ed81dabf8d6258c7948190513f84eba58b5deb047d5e9eba4a677d4b99f3ad2f0950d47e9bfc07b6cfcf4828de8051b29c5d7954eefb2bf346e28bfc9e5ceec33a474788dd8d505c2e37abf97e6e26751423b6c851ffc8a1f4ab9da12f053dad38ee3cdf88f61cc38f6608d5d06f3cfb5e45aa0d11eb8536863ca5e836981c9f0a8c9c6ca4bd58724613fc054f958db057bb1ef02649918ed709176619ed51cdf4dc5c80a5eb9d0d9b15ae8c66deff132ad66114b8d8424e08a9cd5fbd090e7d52a770076dbe728f88791ac4cad684ffdaaec904418cd56916ff88cff9b31373ff76dc9f3b3dd17c85b83f89b7af5186aa9800632988c51e0b39bbf3ae7500219162e225080ca9923d7f8f4d2fe02f03ce2aef3ede02fb6c32767d897eccee567fc0831e059772e82094a06e20d58b6a3d0a866327bc9f55477195cf8c8ef925875cfa09d13a6560b229e8c76f5daece0c47fb79e3fbef364573b62738b9266910f223fee6d867c3aa0ee4484313f7564e0767d516007391df0c567ed36473af0c6e4ab863935e6923568d5a09fe17d02db7fed2ea22a3bdfa4e7fdd272a815f9fcafe45471ca2872f04d2742c4c73c3433396ae92d2e24ce25139d8c0d089c61c8f872c5096fc8bf351993d9a0f6acc5c709ee0afaecb5c89a60436af9f44ca42c4bc6c7eaf8010e1ab0f5f6e9ae39e12489b0d84953a2f8cfeec028d14c5d15bfa9954eef3757261c42f141305226b707ea3878b581213ebd484ef0d0118dcce2073a24ed8b379a92d2b1f077e11935b4f6d442c220b4c6279dc8ecbce0d8501b5fc4a92d260fce59a2b28b4138922029d3797c091e75466e6925974bd6a4d75a6d2858c194b330ad1a1dfb8bd62254cad7cf9d1cd893d773cb101d4dd0506c7726a8bbb99f5653d36ebd09be494382bdc3b3090ff56cb0a025316d3394272ef6e84d5d96fbdce564937b68016ad5b280398f8e694856803d19c396e68c39b1573b1d6fcdce20efca5967c1f6e8bd843ca642b1f4ec41e3224919574b44119ff5ba217eaa964a33ba8fa86e29e83fcb876d6983443442d6ad90d4e2f5ccbd96809ac01376791b9a03dfe11c2820f7c18bc20e3ca4225ef2094acb32d03c9fbe0f4a7d691fe820014e4cb3e444986e59ade8cf8c370835de4a56991c11e890e1fee9c6f563f9ad99981f0eb5d698e5b983627961153dce25ef4972a5d163a4d67d6a83c85faabcb98590029d4c7cb6a52405598e738500a87386c8f2223aae21ef921824d5b680bd51878c6398d0646a2e5b6bea3309c3bd61a72f5425d5bedaf02557e765f476541e8d10284b5b71ac3d0f8f362b5f10859b2e6b3c3035842cb146b17c26dfae9f4d6da81dfa6b14c41df506ff4707857a986da4cdf0367f887fe8fc0181536a0fc10833a8e89bf4955d9318447c64be3f953bc971e8d1bdb146d91fac177640a4d1e4bf8052b34d6896c020d57e880fcb3642c77b0abb548e5ab2c31f69d89b818278927555ba56624f58a88914128882701847cd1fe291804b0b373f82a89502c0b9e0e3326ed9e5ed870772e958f8dd037683012ac94518547e956f73e1cac95f0a5f71251fb7cb4aad7dfa696bbb856fea77d110b5fa1db6736fd53fd2cef3ce5ae6caa72ecf68994d09f599dff5af944b8b74e6340b6a6b2512510c90bf39eba56848f79c5cbd3d78888d040b7b89cae44e5cefffc5fd572accfa6eb9bba0f4075dbf417933a7bba397429cae1db74678036382e795af5ae3669c970a05827c639f2f161e6e1925992cef93688650293eb63495e66415ac3ba001578e4e96b200c71d669c6ce95bb60260c03ff773725dd378503135028518dd0cf9e2dcd5362f749ff7bf51e09b65b902beb3b47cb96e4b2ab3d021aca859bb04c3a77e9b9298f22f51391dfda1e30e6d4ae0fff61ab16eebb794dbf895134b0a5100aa2996f6da7b0a3b2de8cf9d7772c231ac9579905517c1cc12318abd519dff70c2589d95752bbfd6bce7429f2d7348215ccd3f3b0a2331ff084ec1dd56198e8c83e38b71405fefc16020dd186b00f44b8e7097536d32028e05d53eaed6d424f70a3c3ed268974cdaceb2945bcd6498d9e4de7267681b8d7aed1ece8a8e0563547ab4fa010b6e9022534e91293c40bce4baf4253e7dccfc20c1503162c8f1f3b789c31d7ae6a13be35326134813e8528b58026c96b0c97565ad795a6f28d7d5044e10cca2cfafe6f1443581ba48c59ac794ea13e09c1952adf17714fd2d2b41a56bc26eb5782190185a85aaa341b5c641584cd2e1bb023d69494151ea8a88bef0999a73572f65972a216c006d572fad22fb1222b31f7ac55d24355196d8f1c25671fe4e9ff94554464820c735d0c7305c7cf5dbd9623f1879e2d0b59395f04a37a1b290c254228afea1614adb6386da61717eb3c3b83fcd6c0e9149357c32f4863b4c3593687511d04ce1ad966cb2ca2ea17526e780f9a96d78c2c8596f55d8c0765db5812bd54ff377e22cb9e2d868faa243fba5f20de6bce58f8b3e5c338329d427ca754c9378cb5640ae3f8b38d61bb797f30367b359881591acca3ce88c7d7912c697cf42609deed76fa4733975f1b177cb34e7f8e09a1a17ea1678c7a68de38b3f2c3232c45c9f931ac6ae2612e08327531a95d13dc037de16ac9fd711cb5e1f9fa73bec32a30e1b8fdfbb34c9eff77ec52770a7d9c75cee441b3a76fe38e3d70932ed1e0d2b948b6af405ebcacc9e0af49caccebabe0cddd2c3810d8e3e4810bda343b5c1e750c40bfdfc9ace855dcc3940b89827b543bdd905b88bb70795a0738da6655df4499a003eddd0116c2bbccaa8996802e7fb147e6ee90e860b117f96a29cbe6d06dfc7e5ef652a37e2d1679589e26d531ee917bf0ec6e3347e3fb022ef6a605d85e46a91056db7f24bc982b299b66f74f3b50f25c72cff60c6546cdce6dd9e60a40b878a553866ac61f75de136d41312efd863b44889754dde89c135f8d229eae80f36d597ad27ec0e7587c88fbfab22cb3ab736ffe223f00be980da9407967cc54a88c2ccafd082993c368dfffeab088474b728bfcb12e6f0d1d9b3eecb20924481fff4ec931b460edfa6db56442e2a621c32bb2fb4365f022115a737f2f64bb62da5e1ebe9ede06171aa13a75f4bd0d71bf7bede5b45d3ae648710665c0c07bdcd8430c2f052587a0807dd90fbf0b0d18014017edeae3220b603139dff8a2bf587fde6a230f253c2bcf63f3b1792e238fce88f49ca26b2dfd002e4ea8eb7f010d186e30f6c27e18d885c0a13a569fa02b6455e6dfcdad22504c2aa1f658df5f1cc1911357900a7bb3a3ff927712fbf8c47240119ee1f3c966ed2faae3ab3cdc1e97c3dae5d7af73d75d5667c4b44a1ddd6282ddc0c9dab366d33c279b1c1ff6b454378f9fe8ffbae5bec714fa53f0abf845d5fdf6f5fb636176952296e6e78c345e96faf78cdfd157a3c331b99ceb858ccae675c7720627458dd30308ee8c7f203b45f33f776785bd1ce639146c630378764741258711010a92c0b72a95de7eb6b8c3ee2b4a7527f2395edf6ed2f95bc8da72815d1e8d0d54d447ba69354b390dc8e31a502c8ad2d77c1110e781f2833a564c8300f5a0d1c49a428bba7f8d4cc38f6a2cccf68871c20067968e938ebf1befd63b50d686167958eb606f89036868299fc4a7045ade2b0e41d1979519140399d9f2258990eb70f7b2d93e8382d872061a0232a0dd064ac94bdc369065a0b1537476bfb1a91d509d7e62e297be3a9509a77bd20b1f110058d79198abfd395345b2f06a139d1596bfd46383c8f38f5a9db21add23f2777dff8fd80ff87e206de3953f028c7c0f0c6567f6c98e1bd6bb63f425b3a4f3f4a476f5f24e4d056d934072b05137147b90e7d22657923a99730876dc02331ac49777e178601dce2cdc14116bb52a55a37f619943cd15895d5c445ca0480a83625c77a62639920938e6035bf7c5b39cee335573d4b31216fe2775d5a6ae0c6a94cf038abf5c326003c0035df0f97d109efd9440ce2e3bc9309c806ef966d79cecb107c95b5089b7489046dd1551dbc1266db5b32a8e953aa51f7fefb2609f96591462f9599c34c807b333f5a56fbb219a82c5130d7c7c820a232ff1a3e360fde6f6ad8b8813fe198f5b780785f6286c845fe51434bcad756b23632a75a2631f0ce8f467a8847b6ed5bda7872dd061ff0fd8bc3a5444482224199f80f6e3dba0ab006764b0e44a675d6bd69da0138e4177cb19fd547e1729af8d6d7c9f1d531d429bd135d72c2a5b1b135108d046d460a8b3f6b3ab8285921de3fd605751bfc6cc63f258c1a7139f0dfeeffa34311a552e5c446c4839103abf7177e36d00bbb8b7b3cf26516736ae8ef629e49129f0eb200563de4f7c8e0f96904f6cba0bf8025c4dc7949f09a2dfb6121afe83d64469e25a9b77fb3a12cb4dbcaef0aa2de4eb693292949776294b2829b0148eb4bf75023ba4a1ad7987e1fe5a6696a9ca2029d2d9b921b1cebc3427143af7cbaba64b633f6e4c14f10d93a5f66812382d8e2b54e07d42490d9d7a2c09937521ca631e19707e8e499b2114634e6d4926f056ebc5c1528604f69715802cd471cfdcb00cc337f03a458acda621ea51740cd999737b8f2a46848912eebc2647913963d742b67bf607cb8487db517f38d2c5dde2a6081e70a2728c82acd11b882ae5a1b509f0ffa76a9e5395d7c5c39ce72120cf8f7e9ef751b257ba4de8b02126b4d619ce195e82eb62a2bd4f416386b81c2104a8db1a3452d6f5c7deeb0c4d7cda164717be04d07dbe6edf42130642e99d5a6f552867a11dc675c0d761de31dd39201a437a3b208a2485f7aa454e573692df6b728a46e0446daa4b77ebd89dd3ec234d3de4694bfe6d0b08bbbe693d0503f1aa33d57ab89bbef5eed77dc3f20de841d732aae51b123fc56378246ee3369bca9683f18ab3240c1bde9ee5c84568e9eaf6975f80ad36192801e9ab98057f89512423664582db38d58ebe9a5d8f6bc5f14f37451fb62c3487824e9269beed6fdb98343731f413419d72b382c5ed1bcb166d55d2209598f739fa054342868125b096092e853d36def3c894ba25107351b60ca510879cde6474b686e75a291f9495864af14e9bfd46592031b52617fabfa4309333e3eae11a994bfc3052039932214e83a619feafab5de08c7268826aa4b2b35efb5f9a6ca9c2fb7cdde989d3b3d0e48954b9a97c47aa9ec621b42dc52c5988e06393599c9f66f91a88410df2b58ece8ef39017ccdc07d5295ca55ff87be782f46ea08a212afb82a228169cd8a1aa2ccca9a9ab6570166500eb7d53058a2d3d7aec0dcd33788b144b921b74f14bd48c168cd47972db8c1a0b1b3f915ff73473c8368cce121fd2b463cd201e0dc87a092ee825e116783ffd7e1ad3172107f0900dc634a9574d0b2225bf0b5733dcaee21faec6b8101c6b7e9d9ddcd6662f6a8ac9a33aa3ce6de10d86126df03433fcceb69659b0e2ce5a83ae267fdc844e5ab1dcb87ee0a7faffef2931a6f509b2e9bdaf4a969d82123c03083523f112a2bde823996399daaf3461772ce96323a7157d18228f7974a7ef469d7ffb10cb62ce5f36dc03ac1c2215229e099a1ad3d063c50db5b3cd2319e0436361231a3fc7961be7ab9e99fda4da1fd7300f66740f792ba60ce493701cddd051b13bcf960167af485457d4486659a3b1d6fa255920e4674f931cf89a4531361f7d2925ffc1614234a2ae87795b071982ede4fbd474c39728f386fa73a204484f66d069fbbcf5bae76c65007b4cd2469ea50ae394af35b76171ebcf3aaf95b9858af0a7e6895738805768f739a586c0efc3a47f400fa9914e9d0600396a40b8159561f8542517c9ed32dfd833f8c88efecc4f049de4a1a0a564a19bfad930cb8b251195ecb24ffa241d4b339144c865a55e4a9ac9aabc94e5e8af6295817d2ee05868f3b162bb499092725b06c078bdfeb243b0b92afebc727ff7175a13948bf4466c18a62b57914cdcdfaa9c5b63890304ad655b23338100805df022968708fff616a3a10cdd532b4ebd2ab32546f25325a050f3690ecc6243d446e63e3dc2a6bfd5d78e0da4f42befc12cd044f73285a94af33233e7a45d85353a1a8391844d0698f83506ee62c729cd569bae571580b0e18a1f1b9eb386e4094346f9ef22de3dcb1cfa94505d3d3b538b6e880ef79a4b3774983f0f93227ca22d60c8196e35307ba46474d68606b3d1db88398ee43946945c166946746a56c4dfa43269d3f40af2b82b40bc5facd153e30730811e189763790655fcb981310a73bfe498555480ea0bea1905bca5d9796f36a19925a021d6aa921b7d5517b6de6bddd926c96d1cb6a1581dec1ffeb54abfe0083cb01d2b9a53fc5045b437127b2a83d25edfe15d2ca08c2bc9905187b875c95d408893e66c702486f33d230c593258e0dbe59cdce29594feccf5f23cc804313e16bd70ebe526a33e9916e9b80b0fb0b22afbee45a9b2f8d06f2ede5994307ef7bf2cccc58f99169ace509d36235abaa661e890a973fb084609c64e0fae8ee7974353dd77c6918e0629fd78ba7a2f0efb2ac1ed067406311f16e216748f57ee47c5bafe7632063684cc7353f1158392fd324e7f0cd1fc131b0f8580b611aa34e039c4a9514a538a393ecf6cce0860995a895e267874cec5bf301c77e28766b606b0dd03e52874f134560826ebc012ac3ffe581c91d4d7124d560c77117ea99b1870992f8b6db6e19ea07031afc10328ed66595749644e788cd5ca230fe0f32a54338ebfa6f642bd0b1e8173e81e5239e3ee6d6dd42af00f1424b071e18aabb5588d36a9b95c0d68c4eff3fc821c145a5c6f5c4e894f33b3d4ffb44896b37c91e1497ea971aac43842fa8609f60d30032d8b335700f4b4ae6d85ad4fdcb720bcd4db3d84075c4617d94a30b80f1691ad02720fbfd4f4f14a0e25dd1c782e22b517da742006f35ac185c5ab65f22d16e3854b53561ecbbb6602942dc24f517239b7c569a0143930ab98598bc2555ba27e45937062779e0bcfb878e3d93d3b22567972448196252ed36d3d47feb288d07ef5f2063f1153f94862aec0ece64d01c03a8d6600b71fba3962b1a9adfe90a6458f45c398a8a8255359ccde3bdc3e46f73c9d308e6a95eaac43117091d6789672f1634083d408d5b74c0e244a638600edec3118f6943793dc2aa6f3bc13b20d3fae6478120e2191114608e960e6fcb3f1a22a8555731517ed406608c5209bab46bc6d088fcfd9fb1079ebccec3b2baa7c336142930ae86ebec86b2bb7f0532175474e560c08074849ffa2aee9ff566e07f2cf921733210d831d38a740f4072fa9a55b225aab40c86b791490c34183ffcb11f3fc2268097f5a3c7fcaf87119a67ad12205eb4adb4ab283718132402bd5542c1d315edcaa3251033149156fc46d3a57b6c9f8098c13926180f9e2c9f29643be1be69517901836c224a990863ecd5efd1d4a9c40f6ce8d8e54c7cdad5db68c979b0be7f5984eeeb75f5ed13d7eb5aa645625771cd0d6cbcb3445dc1509ea167c032adead8984cfe6767c1a1cc0c5b67821ec56aabf75f52d69b35d64c4d62b1aac3bb8ab2f2da5724199d55613d6cfb04f9394502581bfed30f77b9402ab48cb391905e463a9306ca501c934946843ec055f33e5e5c7a245098fddd172f1ee5491ee7adbb1572029ba51b98857a712932f406db324ee949df821a9bff8886418e0514ff8da61b6aff3cb4f0377aca7811578b7e23e6d379baeea11e3f7c075ea042661f06f0c2c5245945ec7f2040251923f8cc3fa5bebf0a07490d6b55b536d234d8eef354c63947c5f2b971da04ac7160d9e06fdad5ea1087a53cd8b496c5efb7b4c78545ced75cb6065a111c7a0f45f0064b3d8f5ef933fdb3ce2e086541acb9e136027d8cfebcff67a86d4745a13e1199cdda19c5f25e52d54783943369af3a02b8a5278882a7876f4df3a9c14f1d457622b9ae7b05744465159dd4d8d50e9ab74752bb1fdee8340e9fb82ba8ae1615bd7449a7f0bc6746cc2ffbc23dbfe24359d075bb6f25bfa6b67a9cf24aba2ae493111d171fb23044bbf279b40bef50db257a9f93f4797efb95596450dbf41f55519d09a90e61bd09671eaab82e458eae375c3fbbd5d6525f27835ac0d8e953c181d3069140866ae2c89e17fd64c9b0d341944b4a10b53e9f628f21a37c340d90164d519720f64d7dc89e2de6efc5bf139b6dda4d415ed3d4e6eede0a3970476956303aa748f4edf38360352bf74e6fa0d10af45aa473298edbaeafe6c1c801b029bb86c76e1c5667a62ef4ed4657da01da548903f0638c7232c9a27bb781ea7201d1d6a72fcacf15ce01b8910df3d44e22b68649d5cf5f7a51591dab97a957c0994abd2a93d76a7ad1ba3db8073d3eb24139670c9771097b4233a2e535f671956cc41364128ecc832d1316f1231d953fe213bba3d97fb94d743821872a6eb96c7dd84933980d2f137f91687c4142fcd46a931080835d5b8921bdefc8c563d4f760a6e09f4253b7bcc9c0550b2c2d85d9b11f83f513b0f07bbef78c542047c22439b8790f5333ee32cac0dee45837d4b4f26670bcc00160f3c3a5914b65f5693429589c449ecd88f499211ecf3b512cf26dfb14c695f6e7b21f97fce0a0cf96226322feb3067a9bad228131ea6ebd81ab739481037bdca01f4c154b42be9592276b02471c5e036b5066f766295e7355ebfa5ff7495ec8607ff96ca1feb184f2bcd205a1e2954a95b489e6ce5fd48b8137b3cd074b24e3035d9232337402daf27c2033546faf6e47fc2d683ec0b10b09dc5fdcfdffd5f758a8dafde78ccd0f10b05ea6b3420b6e608d48bf3d09a7fbe6eacf75c91771fa27ed3fd70fe9f86f7c547260061202546475f39d3e9e91c41b92ed3e6dac3bcca02eb6ebe409030f63ea815a8353559df9f0cee251377224ca9a5f12d5970f37c5699d53793db34a9caef1f109e24c9b9620cadcbc7e00483242b55843be8e5c10a65478fbe8ed6d21486f8cd0a54b6dece3fe881e9b7a63dc55e97853a083b3f835444268c445b31c5c77e63910ea220026d29fddcbf0e9df15b3d52c26d19b10aa2326f2459dd53e6b9ff862a3f84a5e6b76ea7288891e80a6171030e25a5ac826dfce5dbea4414b227976b7a7a1e760c27994fd312e09f4b8ff8f5354b161b5bb29bf3d66c7a5be90bf93ef72ed001bea87ad8481a52b52a22263442d6856b77b492d7fe6533075f19a13a125cc18cc4fdd1cbdeb5701766d82d703977e232cd429b98bbce7edbcb09e76294d556642328ac53a0a7a579232622d33804b26d5bf6170875a48c169ac7f6988f336abe8f4f3934e49d3543a74277051471ae39ccea6218b47a78c1f8b7c6981c6fe9bf711daa375d4453a6bc493149ab835dc25bd88d81b141fe54791a81e7bdd2aa2891073fc66fb8dcb074f2129e50ad51d556e38dd8dcab1b2ccb73cf09ad2675dece70826f250b3178ae219debc09ece01e63b5fe16cbac7448ab0c3da45dc2c5edbdf1e6e08591cd39fd0c782e4b64e91df7651f9ed3709a910984a5308819f377e9d1123b5df9a5b5afb6fab6c02d1f596770fd8b9012249eb6a33e5e1f59aa0d38222b0c5dab0c34ce7f7dba0edd53aa3d5bd30d4a09ca1cfba714b37511c7fa205f65b35165e69ac7d5297ae9c068a873b1a45a43b7221496ed351b367bacba38a25be06599e70028e132817db73ca04f2cbc816ec1924cabc9f2fef248a9f8d2c97a66acda4157551e6fc912f3f227d95ee70ab20659ca5db47aef95af156a791550815f4cd959b0aab239adca88333595c255dfb412a0c9f96118c7343cf44eb6baf34b39443989734020a40b8d634d2ca254b6480cb697ba5b945d6a2d54e313aec3fa4af98240597ba03d38e202eede77c5eb87e506b4c6a47a7043ed69f04969b04bd34f80ddf9ab388e9b3a768021c94f80ad8da506eb3bb05e5f18c88b2145a7dec056a9de9ac6d0206b24eaa6a37296a986f416fb9a3bc3706fd74037ab5d3017539c8c986d5e07e3213a8c6391cbb2122ce694636da5df0fbb76c2f30bceb95f48e0b66ae5ddb2a274c452b3db44489435dc2286c4bd6030a832d75de42ec146a433f1028e949405dc55f7cd5ed577c4d968e040837715f8a3701f928b23c83ace957cdb1c8cc0e299b4f69ab02558abfd341643b88387148b0e18a9abd9bacfdc1d3bbd4af41f7eac18104432093ab01e0c3ae41bfe8dea996d2ca0a26ac680139cae38206efe32dbfa0ed4cb6c3e12a07e8525af8936228fdd4b1cc09fd50515d589cb35cd4cc93344c18e163351ffb302e19804aa332090ce3fce2f69504b53d5a50d4990af74fe34e8baaa7ba4e567848cdf73ce54db6e80356bc898f387065347e5c810279185767802f3e1777dfdfa7b68c46a4e5aba8eda4c8a1abadedef1066fa78c6fbc565c8f5d74c2c665897366feb32c6f1d89c598d24f1cbc96e2594d9504fcf9f71516d1e6997d126808395aba21751ea8610c5f966bb035ea879e043447c736577e202a8fad146a618f88600ffa66f53ff6f82050a977f2ec32bda08c346a3507e6752bfe1a6c1684c9d142be81b93ffa9da2c71403da52bd755cd4f7efefc4a5b27fcec7d88606e6d01333f58d2a22cb73b2bd2903d521a78c40ebec5275fc6e4e54adad30898c24592387a017fc65d957167c868ebc686399cdc804df8ca9119b15b12c0996edd116ad74297f57a10c11312d60bfe1728c6a14d96ee47739e58882106f0224577466f04d56875d72946122bc0ae81ffbf6a3e9e1395e5ac89ccdba7485b800a27eacafcbd413f3345bc47235cb48bc93f5a4426f31ad453a0b934d68823498bf09a81e219e797fdf5a69e18a5446c2888255037cf736ffe486168ed22a1d8ff9ec5aad6a5545f00b80656f3b96ad34fc056320cc98d113564287085692bb25f05700651ced3d70fa9883a53903d0b120f82c28ac10f704847ba5f793a9ce82f4d000adfb801030d4415e0c05b3fa3c461875cfb91523e6c55a6286f95a004b85cc2f22210e01bcc75811c6bd864a8d8c28a0c1ee3863b00455e72d7735d0c42d2aefc262bc01c0d8dc65bdc8d467c1f1d0cf3036000090b5ce1fe2a732dd4b616701e0eb8dd198bbf0646137c05633b2d0ff7d79a3a97fb23efc0daafebbc19539302a20c117d28e7e744feadafcb80e6b8e59628f5d82c53fc553817c01eba936dade7407616d4507cfd4b711ebaf27e729abc9465f9b2d46e6150f1e8d9d464003224b1e293b0800e50581a9db3e5f1eec4c4df56a28fa25ec19c268f4cf44038cfe494929a322bb3d0bc0cb19e70807da72fd07357bcd576867b7e00992c41603eacb8bd0a11712aa83988622afe97494cae9d6910d27b05b3be3063f1593aff70b77596b5a35ed53885d6df236eb6dfe35b8a026830488c108fadfaa6335ba6470114f77c1bf3394c50648949e656e692d2b07a24419025eb2ab4ae58520526af448f376626d0a9937f87d99bdb23655797282189fd276dfb820aa658b95632ef56aece6e86bbeb2c73a9c88541c1fd7c57e4313bcbc7637c7cf97fc54991f787a87a7f1ca9672a2fe9ce7e605a913df479a02277f5f76670f7f23929d0cdd1047b379d1632f67089f4ebe6a4f52928c886e81bb472b21f406def60b85b271837eb0c35f06858361134cd00d6fab1993b1149bec310d5bc8b57f9379174d56efe3110e4162e9ea1ccc9202853460ce71fcdf90110cbbb02f54c3aaf8b918a0e6043d5f2a937ff9cc8b35f904ae7005ff4e590ed43b7a2ed85dd1c21fae0b902fccf674be4ef9de3ec8d047629ef0d852bd471733d32955ee03b3a62cd522ee90d93416cf7a4593e27b69262284868205b1e1726f0915e26a7bfc770544c256986f683dbc470e4f758fc88edd018c0174920eece9a781b8fd6ca73e0e0ac2404b9f68204fe5c31722e142aa3da7bdefbce6a16948db1cbb27047a30f3cbdbd9db5a557656016b452072882fb91e5be4f46fea9219784982efb8c1f5e1d27843d833b89e04a04214235e3d2c6ec9d2f881ab9f6779f04044336db74e259f9cd61faa66760362b89bb64f13d1518923b45cde043897f91e0ba81ce00acbce1098b874f175d3fcc7e263e8f678048b5756a4b2fa52e3cc70e5c4180c558fbecc795bf0d80849548cab4298d739209df71f5cd8689262604c081d946c02d285e024f368d332c532adc246fc7f4cd0f14e477a3dfed5155d0292423e668a5641192109ae82270f639d1d92d9947b3895c2ce08383ffc9eddcb5842f20097c582a31579a73fad9525dee1062bde6213a8912f99f36bad853a30a32d4e961e8930c145e131062331deb95457e2b3eef697a0eb5230fce49971a0bdbe3a7713692113bbfc1a4ae250e15566f68eb0c1f27932ddb14e2c9886891f635f30ad49e517822b74415480f66464dc1dfae78d27c8e51b17281dc52f2cac3e9b1c0af627e38afdb38652ee085f4a4f6ae5939bdd18ca0d39a9a438e9e03525fdb70c1d49caff5279cb313bacb3ed2260a502c92bfcf0e4b6cb11f366ebb80f48488bcc285b2905172e71aeefe8714bdf1a0ce0919abd8048857daad2be62f95b21816c2f74fb29555af9842f8936c8daecc5c96959fd8b5240fecb09155f782521b7efa3ecfd1ea2c93a5556ba1eee7af132bb8e35452f661b9310c5adc3333d560d466d03db7d6d46b83cc275cc549477a287e0a50769d3fb42ff46bffda4a720731fd254b2742f63e9ddf34bc45a3a30c4ed372f8a42e81d3cb980802b4c8a3a799d2349205122db2cb092393bb3fb2592c45fe47268bdd4312ea6d49e736bb329cb391b13db26b1c3d3fd318643f3bf526f06b6f275014e279b912cb94aa945bb2caf461bc4a5f95a460c582de12c047fc8af9fe0d3af46e3095a2c5a661054c2e12c10ae02a083b3675065f1715114448032c6dea0c8999b8d8fb43a8dd5130a463b2ac45487ae711bb02903ba7e4af9333462d36f19d0512e0521a0282649cd7f111168fc6d15390d7ffa4546834c2da1ddff8bb83be263ef7e9c3c72f3460823021de76b97fda775d7d21104c5b35b5e37b87215e8b6a499c7dda19233c33264791459e7dd58233609ea6c8906d459534c1603412b402db0a5f5efdf90ca2ba50643c280eb6bc46bcbc534864b7eb277bc3bb9141f9dd0b2b902d88b1dc12d7ad25b91e9cdfe2c3879eda0fa3ded434f244ea146ceae9d64afcbcb37b71d7fce7fdbd372f0e775d2152c11aa2bef1628f34519441696f940055d8ec5a9f8382478a3bcac2e038efdad153767e671a82f70a16306cc9ddb99c6bd1bacff15434ded6d959e327fbbb08430ee01a796471f836bd6682d181133b28e0424cd10c5154275228ca5191cdaf6e3d4980fa93ed1b229c60c920bbd5813b3b59d1514ce7cbec78e13952fc7b055b28b85fc1b1c2967cb4987a469f6c78423973f9de0f86fd2caf37688fd76e01c3a8e7b86037538231ac55519e675f48b2c86996c76942d998b4b381a53d9ac9d2df9c085d2387a0328233c32e002f572cb7674eb1c937b54bccc2c3c67a8d6d35dc5250c429a3b17f9a831605e5f46ee8353d3b374e610ff3016014641093042612dcae9dedf0062c5baecfb88580e31820312ccb245c91e99cc8f5ab5ebdfae888a72c5014ce4fdf57289fc9cc5ad3d803ee4a7722159e755e805c945ab37f55fded610c3fefcbc18d31533ae7fd768d442dd7a0b044f36e68b90bf4de0e1aca3817044398fb96d2168a2785597f8143ddff53d0f3c733a4833437b93d74f2862738ef14443429c9f1e6be72366b612013d0ea424a1dd49b54defd88111384b9692cf0380e2490a588f0b95dfac94f9518d281ac60dcd08f328cf44d461ef914af98b54bb2dbf74371d8c1b99cc60e03762c03826e12372d0a7e4e4213bed283233c97350ce2cdc84346c6a7c7825dd980e754917db97ade14e091b3a32fc769a1e919551910151d68c1c3ce667dcc3c2c7ed5e192acf801a9b907eaf37cc0762d50cc6dce9d5b11135a7c865ff97e4823ba0fd264c9d041dc1adcdf4fcabbd1a52ffac907cdd34c3f3a1f4b3dbec1a88a5487e7760d7320439a5c84c6906df92cad46136f49fc7663b06af7ccabb5023233be8c76675e550b1516c08d956f426a7f9bbd7bddd1493d011dd998cf9e5e0d858b52c92634ce3a26ebd0957e87b1178a0e72fb8c11c5367430303e408271348d2dedcd9843013a69e55f63ad828014da2ed0bc53802267e384d340f7d61ad74a79ecd1184de6173f36465a7ae477c7c06c625cb2d84a76d6215b4ab119d02635d74d3312a8de938dc6d223227bcfb181df0695e4e35118952c6fea46ccaeb3acaf5d09cc0c0d8d96bb6d7249ce942525d062fa1e51b5782c4c3ef346059d05df95ed8922216cd4835f43baa06b144be87b7e476053b166c231a421a974fbde700789d62500f103ce7f700424f11b759a662b5fb4ab47db5630d4f5979c90add8a6b83fbe8e68a8d193db94a071c54ab13b3c75e751ec02f1b6d232db7b4fe23512f918049bd5433fb935328a8c7d61a241d64dee6d7aeb46a4339e4783c22fc61333414e4d6b30152410a3b00c34e2e1c3604e496619be42228b7a0ac59f4a0edea1d0085a245435cf84f35e0a76b4b3322e489a7c07b693205db03f630b63e3b1dc6abf3acacfff7f917c3c7bbde0d1b5510674ffc4158dbfc0f57791a67ea642e74bea1becf2eff336aa9c3100fe60d93f0f9ab68cb9236c97f0937ec1dc48faa03be47d2b865e0bc82c54a2104f5781ba30c08a39d366e9c2bcda75c2b3a185324fd1e9c1c61329bfd2ffe2894ee1d08e401c17699fe32f17946ee8c17c9b45751c907a202ad984396b5c47d095cfbe1288a0e1773ac9397ecc7d9e5d890a1ecf1595ab0228fb65effdda1e93fe54f6d51c02e768a60b7462eb8e37ddd268c895dd1969ea73e1c5790c0a0e41d16b41b006c2adf15858b236c9fbdbf48ead523979d53631de54efa3980e1f694ca88fb4c72730bafa8e15896ee68d7f8d12bca294c253999caf7f48dd6884a40ae7f19174e3e38986e46403785045670f29c9414c30d3771ee4b5a4e9b7469cf4e327cb3ca905a16222130fb2b3d4a32c14182cb8cddd353007d5b5b06c236405693807fcdbb762424e112ba2293b41e4f66825c5daaea9d6a41cd7a20b8e5a3efcd6ed7866510df914acdcb9eaccfedf34c6f57c6f99180c573b889864f1a5c54c75befe16ea49384e09f463880edca28b4fc5a55b8786866f1faf76e55dfebab901c368f0913787638b0e5cdfe3fbbd502b18d1ba9338d88ba61ac128a00d2c259c0fabd2019d0ebcbfa56e9bbe9a43b34e8c87d6a3a15b8543f13eacdab9edbff689117fbcd62c74036aaff714f10b18a805713f36d55b914994a6b3444344f88c6fac2b8cc92977f806b15a76b7501fb05764466d382740061cb3e5806309172ddba4ce3dd6256b03dfd240f27bb20576ad74b12a2f52717e030fd1079c43ee877296b4f64b50197083a6f5a0cef29bbfedc7f58512a0380264ae6195dfaff472546aeeafb61d329c60555d49d6a0478643f78afcddf33a52ca97e7a5ddf32ee3842638ddd07386a186453a8933de37fcb3642dfb958d8e6d335d2246e4c114992e844d26562afe4ae5086def7cbcd2992e2b2dfde28f6939b316b95aba94e5a5797746ad1cd608c69baf40add7478bb4f6435a0043e17a88efd015c596c504ab12062481ac792447fc8023b433ab89494b641d3164b4f036124fd4ae343c85f3950ba54aaa67a052e710f9947272458bc52f3c23de9a66fa711aff8ee182f0007121b2c8584936f3baba13487332d456456b4e15edb746e2c3df9ea628e07b96190868a1bf7c0f579a0c67f321f0590fda9fc951c2182b27ecb3ca77adb039f0d5c3ed49e00656f8f6c9da1b17fa97ff4c6ff872c18dbdd2b6aad7bb0cabc9b0074a1f870dc06d0118861daeb82a4cdac7c6d1383ce8e0b30494e4caf0f4082b11e3ce08b1e508084f233dfd0ce89343c585cb1f90539aa935e179609344141e0845cfc0fd17a8b68c657d74d4dbd184f90ebcf513c7a546cc7b8049e6d8a96811a1d74ccbf1c70b710a5b2720075caca3ce4a6a8be6934bacd530cbbabfbdcda8f4280cff01926b3dbbfaa750ffb6ee444e1addfbbebc69a3924542261484b1ffffe10c207feef5de884ae4fef3cd927b0659741e2ed08da8403d120f685067d90f8cfae7e2a9d5fd366e425f02d6d4759950f15e98ab3aa41059e4546e4d6d9210132405a7bd16a5b770111beb7e719011a5e9a144d041bf570f697a05015bb6d052bf4e1ffb78d85791e058f74cd2ec25baed75688bda4c27ba307c45ef16fead9837b807593ab324ffedcc1c756ff33f1cad035bf51f9a30b7e8b819d3ff7834eb203adf7641c6236b1715e3778befca4d3289378d20a523f1abe29e9d0fce38e1b4e25b88f8beba64f1ca24a3fe04aa29070c360375f917280b5d1053ce56c6443f6396ba36c43677ccfd6fca056f8382035394b161c84abd3df4cd1854eea59601516ed6ce45453c8d8c30293d16efccc40cdbac3b9f19d500040806fa7d6adef3edd6cdb72daf45d8729152f8c1e731555b54713327a6138b57a9eeca80a16c93c496f0be4efcd538f93d987695b2443112f25ad1ec89eac490b8e705b78d865188ae2752a08bd298a6efa028a82043fc28b0729c86c69e7af972bb59c21c560f783e63edfa24528aeb63a206fd409f2e3521d268460632fbfb4443a640794e1bee66deff6e35fdfaada53c1a4166c9ab300ce7403acf9258b4678f84cd2b4dbcf5de5847229ab8eb47bf453568c1346de33c16bda0d9b73778aa0301f479a883f3144b93b32bacec176001f40f37e3c90224dd418f804c0d75c75b5136915f85e3d302c6a9cc3401ef5b9cc7915968fd8c161c0eaa47d97ea501ac3e4f7fceea2820e5380bad583dc6925c701efa4d4af9dbd47bfea808064485c4648bb65cd6734d8d0198da6155757ee0980313b84ac0af183c9cd1d296b61f287ed6b511cc53a38d4a69a78dd48720f05b50ff8b60802b5f22ccebec184af04cef06ac83ae7b28bb200fe30a8073e69b633b502efbffeaf154d68f9096c227529fca188720d126f6a780ac915de417d8311c50dc640f71a058c72e915b9d05bc43ba9278ba921e1594bd5522e10ba05105fc144e40b6b3d43f7f42597b3488c33b122b74821ddb340033b3bf28aed7338faa38b623ee7ac35c604cd5e7a1a9a77ab9d993028eed0b78cfaaf487a1d3a3a48205cd133b2cbdf2e8013e9e004d1b8ec190c17b55de4dcb346a8d24e4bea6fab4e0d073aacc83ff5f81dafbc08620dcd69d66d0cd316b4f11c4b853418693f2d336a7a9ac73c93fb8ef9ec1e8c57f0c528c73f4d5cf7d6242621b7bc0dcb6e91049978a7f108da40fcf638cbbb33eeefbda6adc56c84d50cc813c5fe36849c3e295b1c0d96fccd20452665b01bf27c68dc6e4a1d6bd9873cd6bd949d372403e8ab2aef53dfdfaf139a8f78ec6a3419629117a0ba0bf34cf427135d37cb1104450247d8466db94587959a610db84b9655f3cf8f08359aefa0f3eb5e0ffe092b718a045f4eeb47b2f40526b22d96d698e277e5dbc31c4cb6b12d23ae20060438aaede7716458ba5b5ec64841b083b2dad622fcf4bea2c74b539f6bec6d5c95f1299e3ccbbfeb64a30c641ad542938f1e2bc98a26153a2a88f21b311511d6996a63f0f12243545f6205027a494a02241738df99cca9c657f8af9753d9c4b75026b1f11f38437a1ed1b3f93bd2a88861249cc2cd2966f7d294e10da1a79694585d2a84d8ece7d9827a738aa77c7ca05e97aa0a27a71ad5e2d5be9b6b12bd8c296771232462f5cd64eb820dd278f9413ffd398b22105c707378c3be7c2824b32a04db297a50c85fbdd2457d626ebb12a9e8e4d604fd5540a89005809e14bb197d4a51a785c1a95b026503c1679372843d1d6ec75cbb15113202b3fa098328821f361b4482016274bff9e0163964438cd78d344290cff7a262aad4e74b23624d04592939eb14d687db069e8b23e8b33e4427c4053fb686f673a495172c94e40fefab31d0591e7fbd7de242a201021310ad957a3083c1dfa43a1e841f30fe6a598d50ea49911b30f3528efaf80dbe910f627d946cfe23cd07ad6f9e947d2b9bd336e5434e6c115c0d356a3ef0701c566b1cbf06f1a1f126e13eab196e85e224d0f3a5ce7608449cbe6a739e09e657dc2d7a5f5a31a0bb61bfff856b825a8644988d2ade6d12bcd7f32b94bdf028739debd744e7f6019fb7138453d72c0daf606444b2cea4bb7821f65eee1d23e0f013728c19135e4f1fb96a3c8491ffa776df21200d25630c43bb996d10d03fa398206b27acde78e0b6566aaa2851b43f30f24a60a15242ab158f9119b49fd4c520187fede99db0656f24e333b40557a2f945e967b6fecbe9df336cf6ff5e695dd70584556331ae91b6bd8916f84044610f9bef38434736822a2ab563f6acca2ccfb4814951a8093eed1914d8be7c67959d76d88d82990fe6b2a151af3099bbca952674d1925f08e42e2b768fbdcb592203dec30bb573526966a303b49cf145ad94285cb9d4ac9af30611e2da913a581e3ae54e194c6100bad4b34e8f4fbd301f0d18f90f04fdeec236dc688456b2b87060a35059f029bf55471706a320a3054b8e2e6bb3a842c5f95041a5d528beecaf386d71a4926ed5e0e805785741bed051290ae9c994db24f174a6a6fede03272587b44fa37cbdb65a7f96c703b6f73bef1c2a837457ffed8ce0fb5f256805a49529228649de1107049336481ac227146258eda10ab2b7a6b18604df411a7ba84fa9459463df62cd0f5f5c3dca40d93be6a11753c6c7491964195236cc7555bde383c8352cdc40b5d174997210c72b8a5a74eb4093fcea27e705fdc30cee5aa9bc1a1e84d06edcd77bfd12503068e24f38b69eb6f9887bb109c815cb2a6fb47790a5fbf116dfe5f5fb4d609240ec4fe0bf66d00c7177544d4b6254c8725a0593cd575372e91e45553319cfa7e6e4359cde95a4dc8047cf2e02896184467db6a4e03b474d60cb428bfc5fc246383ff530996c4bc516dfb4715320b0882881abc9868b7f7c68ca53d206dd33fb8d9c3462081a688c6a70be58994068e33279848bfca58d1c4ba6101060921645b878e743d0730a610d02aac80156c9f4c1ae75e353d847f7e1590a7ae6c6afd6c7fe93a803d0a7ceb9e91782c223df5dd39ba967878d6a3f548da54c067995afe6e342e7e39752fcb9e08357f7812e76a85b7c7bc575ad71df02eaef5ad5d7f2e120930936da15313fa5f16ee16dc38b8939dd8953eb1924999443e155478904f29ab7aec1d057d9ea33b3a16bfd6daa6b4f56586b20bcf6462321ce76cf5e1b4b3c780bd4e4816f0b695fec5356e4247da3839ae03b2dd0cec299629f84e72a641d6b31495be1c379408229853027b8db3a9d1c7620ebae68b83a2ef7f0f35aa61413a896e72ef784adff8e1970263aac65582630d8f72c20ffc0d8273982c5fe5868f1aa509a3efc2097c556c420294b36f32b821a4ef20ab90e81f2b2a9bd8bd9137e6e87291f385fbd26e7a5868e2b3f4309cb2a444fb2e939a9b5be9d00e0d4f153e3b42f9e095346a967d40b4348e6da73b0c347a0f1976370a51bba261a6dff4e5905e7f187a8e5aefa745c7fb04b41d212ae195439c7ba0b2649274a706bb84b0caa17559b6353293155834d1e3bc2ae6ce63ea1f21020a92820c25b44aa3f42471bec4b372457369bdf2d2887af909db404d18ef06d7540466779e52b24b8fc1144407d88b0e33fbecde9d5e7867d1959d145be6b9a1218afe7d2174d27171f1419bec9a538665eb7ae184363f36cb51f729acb7592da5b2139f3b1a31c5f92840e39469d6f94634efbfc69727caae30affd409556dea2d62c6101bdb79da59d19acc99c7c539467b2aaca8781919b956ecbb2043acf8895bcf803129bd2cd970021b2e979c6f565f7e8dca0d0fc60346446b7614b8708758877bbc73da476331ad89b59017c0d994098493c0e7e12297125fb530c541ea85976637cc49c2d04b9348c456fc27038b8de7bd219f298d11b923b7945b9f7bf7efaf5dd68f3f73b268ea3dbf73a507dbf606060ac4572acd3e47422ccd028689eaca1d558601f13a5fd52237f248bfe99af1462841f52221590f10d0a9a6cdd3784204e4deb524eb173ccb511aaf5a157a5c2c13469a3109f44aefe6d8cf6b73d506cf0960d6677d76cd08355ae3702c831264d77a3104e25270df48bf357a66c03cc240e51c857d326ef45221026dfd32d02c6482e90d72e7298b67fdd7718660124ef104361a7ce33016109aa95554573942e4331068a332b002123e4795db5d980bcfd43ed2089ee45ece2ffb74dd38e131d53edc377a963db0195b69270cf481412be3e5630454dc4d8e98725424d9518da5a28287f7b6f33d321cfd0761f0a47facd436bc20f8e9355499bf4fa6a2a542af71c1f68c60d1cbbae6a90cffd3659bf9dae3e447e8bb8e60cd7b8fb96a16c398db5e3b937606fa3855ba64233fed7af7c09bec9c3600be4f3b4a7a46372fe62342b2a3f292ffe2cbfdf10ad5124a57ee48802ed29726006a29397f8f428744eb3b40904507d1a9c970e47906239b9bb2cb7bae4313e973d765dfed6dd7744c9a2acfbb0e086e2dbce584e090d2db4c83decd7a55e0bf055877ae2d60cb9f5c961ff17e63161c6c4e9c77618ea606e4654dcfa1e9e5b3edee5d891b51498a9c75bc849dcebf3723298f2e631a25c91a8a5d3d1d9145476d292a92f9dc6e4e9520c2df86f847ca968b9999e9e1a3cd4ecf96cf87c814d2ba5722a08af8edfc4b36412605ad960d4819a949ea894ecb36fcaa5fd1748789bf2689114295c98efa3956908a435fa1008031d7df652198d668eeae104daafe1c4c7fc082784efff0ec9e9c4aa751a51dd9a4c32fd5bcf2e7c9221be6257bd76b9f4875306bd24f286467b8715be95f98bdd68ad3661dad617a2ddc4f94301daaa2c4db0e92a7ef15188d7cbcab023a582e65d8d9ffac60c23fe7a7a282989155c799bc2d3853274f820525afa16b29f90026dd90ccb4f099be83c16d87e9d6a64e3051809e74eedf9578cf8047c84174487036e84233cc749c9adcd196ba77b63471f7a2a28eb5ac3f9acd9fb138625088a7acdb26eb07b1516edc7067bd1a89b67a66aca9b2db34f719f4995c365a3a985675db86c581bd6e54b7181411a70b74907fbb121d968637b963236ddb2f13891c2da422834dd91306416cc6db9f5fe4b2e7b1bd6cd310a99c1fad68ed1e44b6c618ae8e3bc0d722aa65b8e6443216fbab6425649cc05683e66f20f45202ce4496b3c5f1b639f0465d3597adc49b48a74dcfff0f8702caa998818ba918fddfeedd176ff2431e7344fd43002ad6973186ba98d49a97febe007f62824b45dd64d6bfe4fd18b5151d08816ecb6226f5af03e501a9262c5cf1746d76c293bb11e81d78867ccb46a7f3e69e266f02fe4f92c7b194e0e4d790a9024747a5abbb3bc4e16b0a5dc1da571f0ed3563499e6ad95d45addaf944af1cf38a972f972e0a591b80cb7e3a69cd1a90257eccefa98ea6807d977a3e796fa8a4ed9bc1e2ef890ebbe822405334279df2d08d137197405bc1c13498a8699617db3d70e3291627dada48464b050a526124fa1bd08a5eb3a62ddb35143893382c3cba8594c41053a4fbe37d595730f16113d67fc5b7d3483276e33b79d33d087ede48060ef5a23e001ecf9cf31b380d798363cbf451a675cbce6be525617364ef22944b7194d909faf7631a3bf6d7a0135c802e5008b191dff6258b9f758a7b7ba80b1e673711255540472606b347c43337bbf8db918629d44c2fa0956d9e2ac01f373fb657adfa3771dc925af9bf3f807c4ee1adb8441486d529cdfe559224a109613efaec84b39a788c9ac7b94141f900a88a2726dbed8d0d9dc8a1453d95621d3479fb8440dd3c7ce5e107bac4f92aa6b3defd358c90da8a23bb8f724bc61bfda6086d8a72bb42d9632ee49312f8757c61577d1195f655839144d1988ebe0b3df10d63b042cd821d7c862187f24ea577fc19398495a7fb55731d64ca7f8a901933db8a09be995db4dadc8914cf197beb85714a4e705d2d8a0087e929ee5c9e4c908751ced041cc28da3eefd3b557b9e1c7b4ce6a6720f0a76f706e7236feebe0649abedffad643c82ed3c297797a6d5c606d19e0dadf4e27c5e14dd7aa4fdac408135760334087c525f7d020a16bc9ad4897c225dc9f40fffa2b6e2d6be6467b7b09de57d8c916ac98dfcb02d20db91a59e6a93f868d5f5af4ddc758efeea2926b3d633b278b6acfbc4a50adb3c29456f2215c88a4bda4bcd4a6438f7a7809543e6bcea396bfdf70a0b5b2b791b5e15db121774beb007723963e67c6065d1ab53ffd4c97bac6d35d4329450a79ad1611b21e57c182aabe96c4138d4588a15d10bd9280c2663d9194121b672af2748c7169b3d50126a879220ef929885cff60ecd3a607e5b1f314682669a9880b60f5be057315f513b90c7fd574e6934f30ba4e86d9c014f31911d36de5d1b0be68488175f1a477d8a575d043463f5efcd365a4a93ac37a74d262852977a01fcc920e75d76fc5060b4f36daeca7fe68eb95da579fdc83b120e31c80241dac86a873c7e5f5a782e4d2dec6be9a11e6f09b12757db718b13cbed6b41d52ff29b5868d48c8dd96c7e76ac9f9a7f1a5b481d8bff5dce9a1ce8164f27cdc9f56738a538202a77a46dd3b56c72258ddbe439e239dcc3b64636a76f89e0d5587d0b4fee552ff91353d82a6efabe7f2726af0ff2b3edb59a31b9db7125c7faa9dc4d6a986f1094ea57a8ab6700b9e3e8ba4f1c789bf5dbecf5dfac7b9e687edd70d0226c693aef4de5b693efc0cef3955560b0ab9ab35bcd7cb386fe4e5528d1f0ceeca837612ea2e91d67d4be8b66247a1361b3fd908e0b100a9869674426c61d8441a9cf192e01be05fca56f9d209dd5a2497288ed4b33571a96e70f3910c795534db4b5a94d28c33149080ac5d70be74e31856dc71f9b8daff5211d02fac5fac574a829c614d1992841cbf3946c95be2bbcb3b6e4a0dec74567ffae29011c535eeed1605ca1993112e9732c8728e5aeb02e76c5e3e8b3b2191337ce4a59ff879fc3bff333bffe3a7a3aaf5f356b8efd96be304303ff95a25741eebda92945d426a261a54ed095496fab4a30808f58a911aade9bbecec5224cc9412440fc99a27f1cd78de180ff8358be5a72b6653bcefd0b2048c1e44dcab60647be047aaebca4fcc1f1023440bcd4ea7676a95002e30bfc53164643e52881c6ae7ca6836f5baf5e0cf55dd559f554cfef0674572d113420bbfebbdf86e121edae563ebfa26d9dc1c85c35d91031561d6694e04597a611fa43b6fa70fa693ebdd21f3b1763d1b16a2315bdef2f8d16a6e9c6dad068b5527b06485ddda4ce6e6f38440852e09c4af054c4e69248a08758291626bed2ade41550c654135f2d34ab6fd1b344536869a4e118bfd526102bf4eb5d0676099802d4e5f036ec560277e6baf96be64bf2aac26df4767da3d8798ec4641abf74853cab95287097a57fdcf877e0a6c770620556430e7964f6021a9845e13cc98c180e4c878f429867e0e97c528c330d074986d24f79ba6c7d3e8ee64b2211a92ca0873643adaf20f03b618434d014f732e66460f67cc8d903c9c16ac8f259914df6e659a51c585329a02be2fd96f908a31f09b982850f0e3bbf7773196332c1506b53db2d5d79b87671fa603d243390340f6fe219476ce3912a381d7202c0a77db6c5ec26d5f3d75b834a965b4c524a8c097e7d1ccdf621cf69047e7e769f01adeb736370439d57361ce62b622d750585a602b8eb29572cab0bd118383efad47d9f1557ccbc0e18da0c405a8297953b31790370eda589d7c1a43f6c3b298bb28d4c88fbbb5d27e6ed68951ab901c56f186082936730bbfd2e627408fe465f9e352feb0a91c2611f2c9f91aa275537d6fb252cc2b1277fcce8ced817e43915dbab542c5b341123fe9842d8c64a7d2b79da24f367b84cd3fd1a7f0cc98720e2076ea28899c98ba7d58d69f4bc2fa25851e2c3cf5be2e5a1fc2f43962aeefe750010348dcfca9e13b5d2c35f9a96804ffe1a2bbfc979bcabcb9cd39fc20e8d83cd0d98b10e9e588710a3170e1149926a40f47625779d5a03480f33c79dc14f3e8c4905832203a318a051fad71db84ddf5cc8975f3280b1f2012167fdd6f0d8f8b3ab07818a9156e3a9a3e6603c45713bcfe6ea498f1f6c0bc4ec953c4336cc5f9e342e7c8cf8cac951447e12460ed040bbef2c75104bd4e0798f92b0e012a48a73c8591979a27ce979fea8f0edb1e056597c3c1295e9cd1924d9bc1082e6395a3954eb6ea43e8acca0639b8d17b3f6f9a6dd57f9f94b31ebd3e2ab52b5e5be6760924b9f0ca4893dfcdecfcd1ada395210870a365750756fc0d55c94d96f03ff88997be1261c1ffc8bdfaa18c8633aee358774fba48a13f5a1aa2d613ee6a7ae797dc0d530f3d559b9881cca56578ba85f2968b724e29e7ebd4ff47f421109edd74e162fd61b208c76739e614e6095faeaaeaa96ec965b500843bc06ac245213da1bbe7c92334a5f5b96abede0512ca2ada5430761ac18a2d27c97a5e38699d2af51d5166524729af743dd186c278f6bb9ff7a8b82e651730ffc86a7a6bd6a0d607406a45c345f732dbf317d43c402fda7e37465766df49b97afc81ebc1f4a05c8fe91bfcefb0a266fa782e77ca82544c3efb9b9909698bf63f9d4d2518871f76a5284b1bae7d464cefde386ffde15b831ca3715131fc165f074dc10f3d8cc8080d328fc4db043a125a5c056f92493550a3967bdab2799092de472a56866327ea29ca324ace438c7cb30002e11c9fc00807ac22148332d951841fec33f2345750483741ea6daa06eb65af38ed01040df9e41f4ddf2ece2c28b5fc3a2ce2a4cd5ea18a5256268c933802a0bbc506b2ca288d6984e3b3a2b1f8034cee2a646136f97be8da2cd3faeb98b17847b12873409fb7c5b9c96696a3975c3a5e7679fcb2a8a5d3d9d3f018a0ae5f4f8d24b8de63a28a90886846bb252b47c2523e7de67487da95ad002fc11004b357ba237824ac837545b34ef84d5221b73a236ccaa67832e550bb582d3fd6e6b0b65459bcd2338a23bf73cf18b444a7248ebd2a242f7ae6c3b1b1efe8341c7bbcd6159886f2ac08ad8b5d38df5f0966e98e20102d57b7bd207afe4e5af19261fb5d7b0d6feaa37bbe1f0c266c8ba13e80b6e1e8a44382416fefd2c049d3cd8a562bb79b27a8d0c9d0e24eaba5f23c29ec02251dadffd9710fbc3f7fc5aceab8fefbf397177788017e76a67700c3bc1cc9ee10f22cb3f037a9df536ce1202242640a8c7221f849f279a10c4e9c2ad903cfc118cbb6336874d204690806d9a4f2a58ce08af55e1c961a915b13feab9016844491b3d955b75e2924643a6197e3875a791b6bd432754486b69d632e57c517e0b5391aba063f6b1b10581c94c6993fdf2ff2dfbf972b325572b54a0994e77caaec15452c5d35649fa4ed95411bfa46a09367ea124332a7d36f2deef4ec7c15b035a7163348dcfd029e9e3d3eb9920c88b0e830d1b4296cd53b7ca15031b7f226b4f088ddc094f25f27c163df468425e0dfd51ec3c39457b52c72b45bf3122cf2eacce2a2adc4bd6dba20e8507d0098a8d5a77282df60f30974f56643399bbf169e7d1354f8dde1e4faa13b54814508a1f1f54c27eb2e2ebcf35123bd1d74cbf1dee84f495bbf96558eb795915cdcec85cd4bca8611e5dcb305212560bf3207ff283ce04826a5a6910fb5550d0b6911213e634919aa7c40d228de03199b14ba63ebfc987887966e660ae3765968a302dd03d101ba139313417416f70c94a5187dc5603510927ee3f3d9f0a7540c5a742e9435eae4da054863cf238a75b649b6963773ffdd45739aaa171bb463ab523721bca5113b9fc0359a1f5b690ad877178b7bcb13a92d0cda42e5cc1b2b8fe6e3023b0ad71ea6c892da3e4979525f14c167f7f2ffa6f1d72d8589ac8303766f97cec0f593cd34cad1d9b9792eb52bd9d1581c833f8da9cc5e916c381a39012ee9b9ce63d4ae64051bfff50f1342198294d06ad160581c9450f362caa7ae6269636073602d2afc5aac9d7883a550dd953c57d06078db55caa911c283d8aceff191a2d2e7a369fdc02720df3fc0dd873200d6041be334c5a562b219e10adc765f2ae73687f14496b08b6f92725e1ea87eabcf24709de0eb20c0443f7838fac92d336c63cb927a982e09f7c0b66f1db93719ca56e26e8bb51c35d4e21eb3f87c351b0fc1279865e55e3e3d47b350619a28e67e1e27425e555cf6e8addc128e4c8733cdb950e9567cff51ed03fa82773510d570282cb44ad65cd5fd5c8a43a2c512d3148d7d9745b5278530f6b0406a4fb9c7d3688b41c878051daba7cde2d8dcaf822616aefa5ae578f186cc92a5c21912c6103b95e8b188839b628cff91b962504c3acab693fef3a6cb2f94ba647d51f0b481de063cb597a66d3ce3d9f319996602509ddd4da6d959d2d4caf056bb2820da9ec5c21cc4a75dc8adcf30c6c382a3e8f2aca90f62322734bb2a7eab66ce641c4e010c2e0aeb609a0e018b88c5086603a211e08c61008b527325b8bde143939e564cd7b08eaa3d1af23e934f6bb3e87a656d31e1950d3414d53d87e93b07feba3c699b71c72cb67a27ac255edcfe9f0ff0e9ce83de759b0394333a7a3b9edaf74ab12ac0df764873aa01662a59012b4dd6c738af6940bed75173d58a0786d42caf13cb879905f2d661c405617cc3ca9603e2d0f8096c588c9458268cd214786f4986d934912fdd9cbe02e01f81c333e256074fb3e1a12bc545480e4b6b44bee1ee6ed64eecbe4a787c47c7d42506546f555b012a3fcbe1f8b6412d9d6188502d991dc20f121e02149ab7e0937602b3e1405eee81dc484f3434ddb9413b52a2b4df506b0910de235a714ef8c887c3f29c30a47c0d4437f8310bda7718aac027928bf56156abaf4e0acb0b0ab183df0aa6cc3f21efbc8c9117b297670f3b697dc9cddf4b1930a4682779b82398af04815ff461daab2da70f600dabb001c50defbd76f26ff12fa0838ddb3cfd060371646cd065798e67c882334b62d7478f64f77912a5d8f0c5af88dc818b6c978e5cc5b30a4009fb16a0a4e2f6ff2696c01b606b15b56dad7ae5e584f597e0417a8230d692d3fb65ce99143537c5b41209476b4f8e91dce78e8b30b52bdc61f3ed27d6b309b17b45bd8208c98c3f7f57fc0a9212118b65e8c3d7cde642525eb7f9d726d3c11e701e28efe452f07cb6f83c355a197868c8d3835cb4318b20c397d3ed847b6e30f54b5c3c5af2290e3a8487671d775de58c1f620226b8d8404320c4e523863e9c7ce80960ee231caf091024171d89cc384b48da26224c7cffb9ae93a8e877275d4e778c508f1613375a50060cea003f4a5bc6826b518b5ddc6b3f1293606db0bc1d82a3f126f45c1d3d30ee390efb267f1fa2d4582e51292ce14c8fcbc88332fb59a54f58ed77079a4aa22c611426b4a82cfe07441e86cf3c80f198b3da3ba7d6ce663d56fa2311a45542baf33e11fb4d823c0e6eef83d11745ddcf936e2bfa9335c9b02c29e1a08900b3aeef68862915e34dfce6638be01500e2d636468a1401fb3284ded56cf23e3cb0ccf1ebd73da50dc7bf4409665ce944c9b614b81a35416a3ec378c2a6d551c159b0d99fb7a02bf1c7e965b1a41bd8bfeb843618de1ad308d39eab954e390f0dcea3062be4f2a44bdb31df98b30c2c0b4d626c985f4a4252795f312a0cbd423be98c2696b0a089eb03776ab31e3420f670a51ca627c3bdc462ba00ce90d39b451de3c9b5deebcb9ea5be49b8c4b4e65dff18fb72a6b027fa688230e02d0a3d3adfef8e86d654d2a82221ee528439601d0827a4e001e68ed8d074b5082c1d6331ee3ee0e7ad0411dd5b1dca10ec5f6a7a49eb453ff1e9a9c916cb8648e0ded267acf206586f60b238578252d5bd57feb954bb6b378a8e16ff51475b2a3f6abb1e23fa2a6d3b373bca029a6a39c39d504a361dafbd88c53cbfbef76ac2009cb0e3cc3e174741df45e27017d34f63f52fac8da4f8bf2e13e77465eb942ad4dea9935ae23e89d0175b9f017ae5a1be4fc18bfa07e313ac58d0ba79e2ead32d7c2db035880185e20bc5ea557cc87661bca1cc898851c0c5ceae8fdb7eb800f092ca59a060b2d3af11237b0c264850e78089609d05ebb6bf660e7a82f52956eb1001671920f09af2ee054d3720f23f383ad8d3bbab60dcdc09f27794ffd164e61fe546442bc63136b115159cfbf10bde691dfd49c5723ce59cf8eded1bc017d22a65b198d07f8bfbf35922a5ea7b7ea2bcec42378f4ba191ef3e830d085ead29861191a0d8bf95963c15d8322ce77efc5f3f682cf12aacd88006bafe001a44b2854633b4c2d2e7f96acafdd56557ad4e72c8585add46ea328f3efa6bfbc906373de323d32f2dd9f92793e8de6ca83bfadfbf9db91c2505f05192d6ab4488f23cb7004a59f74726f94722709b010a060cbaa5d6b6d6b5033a1cb8821aff85b441e7724305194e9d84b47249f69183976ef19ac0169b5593954022c423009ad4b011c894728609c4ad838466b12b4936612af5bfea816091d1a68d36bb1c7531e689c902ae9bfab5bb12d21179499f71cfb1c6b612219c626f97e9f141067680718babe9eeb1a41ced96c51dbd767e3f60e09f52abe6e140130b72b1d53ea016a18a31a9befaa43d6fc78dbaad8bdc1de9e621ea6faa5e4334a5f8a6547343c4b1c9e2b83c79305372465fd2c220829163ba1a01b5d78f71f417a9ab94bb579b419fb9773b5d8cd914a6655acb4268d7ccd570408fa3cceb456edadafc7e28fa220ed5cf85aa59cfa4300ebb90b5893f24144e4e58ae67e748e1318c1370bb3bc8be6869ad612e7425fd7366aca00d13826361e92f2e862f611a3c733701fd30db26b09b13545b0ce4636d90e55d35f7b321ee67faa5b535f77e2e60b5d1d47e481510311cfee55b873b0aef1f20188235af8ebe114a06e4e64c6f36376dc573fbc30ce8b355d8b4fe61b250ee1d64e711737b6c29b8dfc28e03badd3ab7f72bd941a4003969b104f3324b6aa5b63cb5b427819f7045e7b5e707afe6508f20461b1c3d3ef454bfae7d49e831eec175ae46432aa61218d8e76bc3a1e63a03d86acfec2df02f7c706ea73fe294a66bef1064e130162ba377d6855cb11824d79cf92a94a388e827b0dbad7ba1ab0b1e1161bd46803efa859ea54c6eab8cd58774bf68807924310cca33401d1d04923f1175b4dfd52e0a4c6ff921b0ce3d4db5593bc4eabe6777e2940eea537a85c3b198c4b950f2d8c552fbe393550399f0f2b9023461ce760c86a8450af2e29cd0226c74ae57423809612bbe222ed271baef6efb39e0338dc635aa7fe9b8c9eb0e29af1c023358456c0eb6d2b6e031bd7e2eb38a9efc57b069a1f5df2c69059a14a219c616c8029757c0dced9835ab7edcccb7e0c60ae170fb66a7120416079995bc5797d3fd410629a87c83d7d87ced6e5928752c41c834b18822d15a32496ff6e5191dd7587004a568510326a2d310e0c4e8add1761b3cbff4997d33d9479e42bebc5a3114cc1644c93b8c6a4b20be77622b06bfda5851d8fc3d3e1a72f62d22d845558a706699d6afd833c1812c25c272a46b4a7e0c9fa3100cd345a3f0c254f30f8211c2c8c7a4208d8dc9c05c8c18716acee53cd388700e847c3c6bf520ad3e8f0477cd8165aa92f199f32991071b01f1166e418a6c9e8fbc95ba6e65abe0dabde45cb3c51579d62a8fd860c7acd628bbf0024b0a8ac5596e756eaede3c99f6b0c9a6247fa72a7e6c04d3c1eb404d566f26462908a24cd8b0a93f56e9c4f52654cda90ffb524446aa71052e479db22758d881f9193f41686936ef8f88da20e792767795a114fdf883af050e362ce025e89975cb78aec9df540088b6faf21649a399ab1bc9dccab80d562f9b116b62a481fefc5225bf74922b890891427e6430e3c7857ed477443dee8a7e251fbda3ddc335181652129641084d7bd02f721d8ffecaabec956c26f4ab32672bd1f92bfe95ae53bc83fed2768cc56d5402cf32947eb270716e79945843b3bd2add33a21e7743548773ed46d5746cb80d20e692177f3e9be480ee78f9ca96584e3c4ba72e32de3a99b74152c313b9c403cfbb8d410dc77e8578e9cea538382fadb01c9f87f4dd1c2aed09a143e51ed03b7dbcba4ff32da2e65701ee34b288bb664cced379d3fb6347ca050145410c7da50ba17b876cb3043e12b181ac1c116cbfc4678dc68c7269244c55ee30cb98605434fce1beb6e09bfa621af1a3e174e545d8f079df9f445ba5ff892f4214a4788bf784a901be1650e002c76de361b20fb3010cbbf96cf10ab41628ca62781b2225dc971d81c694b01aa78c79be6da1e6ad8b6f00ed717bb52733858ed22a6bb0cc4bc1701192f2787166f926ba0608176a711e3b2516f54cb8642aae4d45cf8f3d007cddcf398b9b60b7eec97b265fab1260cdf8be6284f5c65498b517790066933138838196afe46ddfb6a71018327b03ac9a84c5e8c21d06057826e4f632b7c1a9781cf745dcd481468d8b1cf34081ef9638524705871fa9d1f6f61124fe4788e139231285c52d1a32a0cb38595bc45d634eaf4b4f6a83ee2608c21b220582abb68d6dc2f32f241419bda8300d3c03d810c3fcb91fbeb230dd0279d9f228b77a8a2c002f2a9907bfbc5226434efe80efa2b8fa0d44f0641fb5b5aeaaf09d5082f3f6b29611772d89e4ed68da4a536fcbac810cc7160ff2048cd764cce0a8dcfba6a1d36a361c6cc5321d2cacf25cad8a32505e3c7ec2953411a3c245dafb5c9e023dc60f90f6e5794271771b02acd7b85011c19ec5c087fa31f0302da5220ff74c13ee8f9ad4aa8447a88649d634a6e82550ab07db352f0e9dcf2c5d9ca55e169110a08962865b6262f7c466d4566877e3a5131024b0b1df84274887477d005b5d59179adb1d7fa20777d9b2f82049c7ba76d664cc51ddaa132694bac4d2e98429638e84c477445b89ea7825866e655d96e20f273f029c5069939d90333742ed0f2d7bb8ee90fd7f867ac370e75e487c0d602c60012c525bb3bd55c6ec1f64e6ef87a7b38658d4382fce4fd355465f3e11f62c6dd4b7d131ea9819173c64aa056fa962a692c302f30ee6f31959fb38fec8e5268d196e7af86cbea20018377926b2f4a225cb7c3e89f831c50bd318a66317e9442d83fe1330f57526f344bc2a9e846943ef79006c7dabeff10b88c20cb7cd2cfa6b254c42de3aedcba016196dd32f5389d636a4631c207378e0191d4ac47656d0060fd36affcc33ad01aeea43bd96b602d4d610687018e78656e40999e9dc23f9c8904b57dcd870d42c53536d6caf472ecbf45ecff0d78b350cbb3791d084060f0add02d29375b61a89c7b12027029aca0873d787ed7bc2dc0554ecb0caa5095a063e1b2054238b73545d5d7832d035784d619a3dfea46694eb59a1656c9c1be51d6928ba34ef910490baa84be06cd1dc9c95125d2a0786aaab45a9b766d42519ecf55f28f017d0eb8bd01b94ac0853384d9ab78f525f5026fe2cf063c0a1b50c5add68d2414a8065fe5c6d7625c3db59cf2fbf1ba0e290c8253317cb3657356150d6a925caf38eb7ad8493ce6162ce28bee10dbafb06a5767365b62d1e485894a49e020f7d1627599979d86523046b0820ca80c933e6300e966538fab2ca759ace24abd2876a104690385c5c39a7d75b0e3b9e7442fb41f158cebc83e1d299671ef0852ac38010b2d14e95ee8bb626d0133f64198300a746e115250eed832a1b43b48ca1595bbd5bebbfff18f5491ac2ad0f1b9a8fe52cc4dfd07b104c3f4bfb7a15ed650c46fc04aabf4a95477a7af9fa6f0b7723dd810d478147c5588b0e9a15d6058328b3b3a5a51b0086fa3950aa60f0cbb7e38a9bf781ca56d7d4cfd3b71e7bcf52486deace7d5022c0685179e978d266e68113e27eb02c28d8943aa1333109896cfd2c36f9db54f5fabccee131c2676bbde3cbbe1427140f6596cad867a026fb87812fd2a506cd11afd9cbabc5e65141ead04a8fd39d108d9fa595bdea8ecb4c1f254cdd38f2688006fdb0f5baebe91a4c4792e50d45f002f056be7c3350dcdb9d85933191680ebf2f055a652c1b21a099aba953c322ead6e42f64b1151ccf67706486ce0bb58f13fc241b29e2aac757fb108237758083d1b96c2199872da27cad8be1c147f63132e37d6a6047fdb6a5976a5aa673f7eb0e6847964fab7cc287cc8bb1e20b464f54a24659a9cca97828e27507caa07041fadc83bd97f070aa4b060d4c19e36fc4fe0966f39ed453351ce16417cf136629b8acf1a9c7b7a619cddadba1ec56fdba56b0f932190ec8bece0662b63b4031f9a280cffa8e21e298eaf24280514d9799aee18e8fb0f48313c37d0f0954eec5a937c5f5db1c385c1fd151f1d52860610a44a3e42dfb235d011dc27551141f1e893e98460a2ce5d242d76c9afe1f7d0006f8ba525dac73defc77ff4dfa8da04532e8e9687e4b66486b335f50cad6797d88eba6dd704e7e89d2ea9ff9648337706a008f3b5254aa9af346bc01415471eb4b996b4fef46104d4f66982112acf987b950057f583b111e9e725b1857d1c44d1f79908e73f3729d00e18d8c9caad4dc729984a1e6ce17024a54a149c82a5530d29dd2db14900c9326d10fa54dbd30cd3781849b6f7a4ea8b37e38b6635217edfcef9461c3642cb7e48c4c7ef2965c2afb61bbc69d5c7a20e5953d99c61eee3de0bebe8f0426c13b40a36723eb50ba2a6b0da26ed7e005b2a449fd0754c796cbde24d90f4b3ec7be38d4edd6df6472941afc9125505d3a67afc85489a5de2b550219db6ca1d7914167c6a20058473b88895e2bc8ad1ee6ad1e55b8eb1a2bb4f2b552e08c01028ab28c86f634aa0fe6823aa5d3d465903dfb2c59e7300ff6d36d26c6859c63177b75ad19fb0ef36b265f6bd7f715843d222676cc01c148ea78f4e44ba1478ed0f1a032cff62a1f2585f54724357761187f779f3e4bdffdcf7971bebf9e52851ac828ad2f692d2fa7ea6efab09618bf9ef0b5e79a77512e7f55af4ac762b12d521f466b481bf912803eb7844b21393f130330d089b5a2cd93227652e997a72b35f4c218e8795838d5ffb8a9802721e8920f52605d192a51f0f0e920b34f04f063c3536a8c7450a5fdf97358e6d2a13318cc03e003f1f99239635fe583297c4008c6efec6aad9c164afc42f7a814a3813731afc281e375abdda533e4e0e7c3c0a323646dda20b4723a3afb8ef26d2f43168b28281694e865578ae0fc00336a1b9b30927a8994459df89e9217f86a82ec6f6c780290ef9e363d43af4b1b0e163af9a60fdacef97ec21d7f6984727655c8d8595d955c89270fd3a5e5dd7f41e0253bf9a61c673bd3f6ab70a0ae22d426cd9269f90a1c0d8174958308d8bc5f0f09cc080652f6fb925c53be72dc4ebd491d55d031795e0893b2e548c6dde56fd967706a5183cc277009f933b04a0a7ee1e36be9633b650045a59128ffd2b6aaf24f1b5d8ad9e92637db9a3fc3d7bf19383abf5e9da1f78807749f80fbd64f36e87231684fdd63dbeb4efefd0d60830d1747272b64880d5502c40b803fbf315574b5d4c5825bbbd9d452c37e31ed7af51026a6bac3d465775ac46fa6cfc012d1551056ec54523c75a15be0bef7d17efa2e8378427c0caa05d6ac20655ff127b992f6c493b0415dede52f977101a5763939ad8fd334c2f12d7ca6aefd9278c7db50d99e8a83a35ab1009d026e8aae5834bd9fdfd356d7b45f09d986c6775a7a6af753cd140b73e6b8b6bcaa8b80d9b092e09a7b812e3707f000da238f4a7ec0b4cee688639f52d9977641a442696415ceb907846c2a4d0116101f8aef48238e704eb97be960875d72d691f2dbaeaa46712cab95699f4a5a971c7efb5166e0119fc44c21b508089ce0bef8456ae5c72cf3a5444cd2699e60dec5c4b89ce9ebacd3e091ae9181ecba40f61546674fca02ca6dd8d11a539b90a95f2d4561194e92c78e85c6df02fda36ec815e7386ab46fb3e4af02d2862de57e9c7e7e77ba7eeebfc236f3a254949838778affd1121cb8f1f3852411d6163df7a174d56e1a5e52bcff7d899488c87e3146bdd94c3189a1c871a509b24fbe496a05066cd1ff454c57c6d1c5215a3e17ef982de36db7c53f9750b389ae1f2ec91cffa9a21fa54eb5e17eb339679f895e34e32eb944006bf73f93a8665ac3ff987769f12ee5b20d61db943e572355269dc30070d90185a99a073fc7414faec10721c054165dc4d43ce4ea208c37565bf425608fcf82ce6ac70f7d16f42c4cdd1a3b8a5082eb477c5d0308cc48f8164904af6d89292bca1584665627d3dd2fc6740b4345a349546b566ee41ab612f32138b1ef0099e5d867e3f4d3e1c40037282c5cb97aa286719f10008c7dafab2a3f97a513ec046c78d8fc3fe2a17a4cc5fad977889f588781d862dcc652692ad6a284b2add6a804dd0f18fdd6128aa7f6c37443d74f477828e11e1a589919e5e914c0ec78632162dd10d49f1f0c4934ea27b9c576a0ae916e4efeb80ab5208ee0d1d6c8227b68b24eb899471f894df0b388d529696d25abed03fda72e4990590cb65caeba397c639218cd379b7d70c605b49be4ed85ece7c5e49332897eecdc8af71f0912a74ff4e524393bb042d443fd9bf46a7680982c78d2babd54ef65639f1b6990907d2b59b965f270e9d4c75b71b58cbce68eb57dd948d9dfebb85d70f9dffd6c24aacbe634ef6c630c1d7c6b668e44170672e7666e2dc605c6b1ab8bd61cfc2c53c6848aea103a2d3df2b156749d5e394e27fe791e306d674633ee672e1eb9aa0c575c4cc008c3c581c3bec8d2b0083e95688784dcdc5d5afabee4351e31316b4a74408188f7e82e7d1d90b752973f1d4c8db4389ba34e4e12ef581c3f28e098ce12004f8a3f5549b68e8d5ce0c57dcf9dffb806f2128ecf9e8daf9a2713de9e257838417f930d68037f6a69a317cdac8ef4b5fa7fd3f7abd576deeccfcc1b4d2b346941b2b234662cf86960aa6ebf585976a837455c19b41bcf5bd4ca51df10a05554aa6ac1ead7fdc8ba16a97fe192355e8dcfb51a88868e986bc5be3b72bc4627d7a3b116dcc059b288879f539b1b92123263b0ab99c192e249d04717ea22c441d014ac2b01dbbb2d2be0906a17582f3f5d5541f3aa3fd447ade7eb5a838895424457b2ee17d0e8ec5f4a6ef23475581448250202e984bb9983b19323d9515aec9a900bd90f27f7c1c0fdeeabae15e702c098f6b2875ecd68080d03b394970e66c75d76480900036390dcf5a6e88a0fe412d38183b46d82218a4ebee1a0f25dbe8237d36dabf978528c41db80d499e5a07ed3899a51b3604190dd1ce745fe4c1ffa0663cac603d29efc63a35ce978fb42528d7b4825aa1b0a28e57588521f288ae2722246e9827faf61b5868b0c2e11f465eae0dff0736902851a2da06f6d102b3883a3b9fc5cfdfd0fdd3736cfc92ff89647280fe653fc5dc481d52b239edd629248beec540264b3ca45334802992cee1a19b26a1e89a3d7bd0e4bf485a8aedfb607dc27f3a391fd2ff13d946f294d4f64ad56b67d34eff1e10813f513ca9380d1c9204f1483094b3c4ee28668c6055cd46793271964eed13f186bc4d3165c32e5c5cd17bbf749bf62359d8e3e15b03cbbec6fbb2fdf6f2ea002d8177ad3caa90db889c679e0a37a3c7de7dd889fb64271feec4b8550fb8cd0a903cf75b718444cd78f64fea6211920f7ebe98a596611bab2cfed46603f3e04b3eeb2ed762f0961ae17c648228b763f165045a6aa1478b1bd95952aaf02777dbdb9c08963cc8140b5862b0650a9e4762da3c6d72ac3ae6898e4dc98469538aa6742ec41b2a779bf0f5a93885e600f1f62e2b6a7996f9455da147781596c2567421ad20e959595e511f5fa9379b311a0bc7af49fa6b26e4fc50580afea76c03acad2eae187b76f062b2926c6afc848eadbb6aa2080f6848542b4281b52305ebd1358f32fcd29f920fa4a03ef0317f9d5fe7fa2be5fb43c12c88e36a0217b057045200e8b288eda48107bfa135c985da4a2e166c8f878fbb9840935f1579e3d97be5304ceb791a9bbb65efffad1d0f72f7519cd11d767ee239743252a7358a7ae5e24fbe2925dfbdb26e6d36ab058e304ff541c4461d30dcf63eb9b8067ea2894c2c8bf87a90915189bae7654ed9efcffcb00d79f9a6846225427de2e19edeea27b0dbd84289c9e15be1724c1cdd9d43f8784c94f8dd215e1ce407e9c520ea929a02f8b2336f0e0bd35516a1d47558cafa68c62c218cf994db087e7d31a0ea76dc5ee805fe93ebee43301506b4bc5ad3e328a87fa4d5985432526bb4213641544fcd1b48a2bc328023d13f7f9ebca5fb49d8283692424c687dcf90b27ce619b26b5ec6327ca09168415efa4a34a953c0dd88ad94bdbceda8bda3961aaebf0eed87efc0b661d08eab2cca7299cb95b1d824b7e74b0972006187d81a0e30a367d3c3fc833c7774d716860bcb4217f7582fa4c3dd3035df19984570b669f5a4cbd3f6f6fc65f21f043ef18f3c62feabbdc84f8d706503c0a3a93e7d1d0b136130b26380f941a93d86315d076af0d20b960941b2c89f583b07d73ed611c9956df1074f30f08c831de70ac68de264a54350ebef74ad9a2ea0dcdc024b0fb2bc6a5ba2760b36c8a085ed6fda67930ecc194f338c30c4f02f882e026e3b8aeab4d69ca8236484c75db63bd3a9b467d093ed756f7ae6a6da6f1d1c96918e89af627c7124bc62d3b5b619e2bfcd1724aac844fcdfa4e383bc2f60ec14a80da3d2073d64242f62b3bb256feaf6d88037daf42873445904708bdac8aa3988d5cb4f6c8b802b33d920db6a100d3f045b1c0dbed8bbb3b634cdb78dfb954254cefe8acfad8a1c90b012729d4095336862cf2268fcf229166889f82f26b63e68d549e6081f932b484de464a9a43873fb010b9de127ed0b36ac79548524ef48f000c7e17110207d18c52ba02048807700a24e9decef0b4e0d001864770269ae9f0e7ad61fdb09cade5e14b49e33cd0f1fc7ce2b0313cf317f2dcb9dc62eef33ec77b1533143790377e3a1512224cde43a62c8378af92e7e5f4820f9038be624b62773f37ae4e7489b8b4a7713ebefd2850acf657dbd37c5ed9152f7d50d3524915891a70f3afef1017ef5f6dd9dac2dce905da5be1b60138610aaa26569377453e2fb31a13fed2c70a27114fcf39f28953eaa774ac6e578c7b0b1cb23e93d7a6db35768212e008cb85a15ec7fd4b29d011aae6d47a3d36d01990238f19c43581123e7c6bf99b0acbf8e2e3152ac7b9046e82d8fdd2b3c47365e70b95d8022d32265a36b0d839989aa695621ea5f5c674a5e14c18b5a64587fefa23256cca8b792b0ac929896e810c5ad7f25adc0ac01e855926081a4d4cd6da5a97f49ee80679ce15f8ec8137e3acc35d3ed38ef01491d4e46e0ca660bbfa1ee7916cf0bb123f96578e601fa5cc4b35c99b2e222c169f3463d6961edbf0fa32d211b08e3d2a26dc59cb23fc1a02b892ad62b7f5cc5335e713a53eb81e01e71971b81851e799fd1ca327c1b10379ae18c650585d573935243bc724506c922cd1950146c6d3727986e2e7a5576c965dceaab2194d2d5d634366455029474b248af9c2412315106806a6ca84c1ca6040b3f400b6ace71cee3c030224e5505719c6dd11c66eb01d81ee02947523cc575b898c16443963cce3339694a387f522c7eb937376e9f304e0e275d6fd2582a3633fe7b3071c53496c3af5ae7bfab44e6d58460ff11db17692042592cdbca2e6dacc838fcad9db0c5454f29a66fafa93184a7d92697e4bfccd9ab70f98a65e380f6af059341d9db8dc8b8a5dc3957dfcd24cea9914fd816bbe34a1c62a57a7e838320021172d281fff0b1e797beb9904948799c736d731f3f211ee34a54450d69036f5e74c3e20b37e0c9fbf0ea452952860a8e1efc0b3ac552c880ba1990857bc72eb35a8a3f21f2a0204ea1361dcc475036310390c450924461d7b0576a278af418ba9e863c1011e52800ef67174398534c8781e8b9b6e1af469e498a4cb9020b84b3d5e4558f9989e6a2edb2c1a7ae5c8e7b2be0ca1830c1b353ef218ba53f6270daf8d88e74ba62f9db005f2e6b0c9089a52ddab8b9bd03f369f6fbcdd54a683b37f5d0f6b0d772863af19bcdcb2d74ca5a09f409609dc93bb33c6094b908c8330e6a0bf5412371e368f7869a8e995355ca5311aa167522a59c2ff6926a25cd12cae20b33d05591d556c38fb3cd44ab3d8fad2e74882fea54812ca64382d3181fdebc5538b572aad6a628f532fe75c9c836b0e30adbb09c21c4e60478e05596ff7b36331da1aa6a41c8d09da563cc351bb80209e090605c482145af7095aa711048f56e9d956580ab35ae3e1ac65e243c06766d1967dd04368b6616cb68c5a18dad2de740a0001ffe0499fbcb16ade537124579c4341c791f88f2a0c4303ac3e2898b40fa922a622a911c4aacdae266d30be4570e067fe0210714c0c97c2f0c7a39166e1c6bdba87aae85299f2c5325ee43e83de771cefd4a89e16134bfd896fff8b7046bb12afaacf94013e5d289d83d9ba8906f402ab92f9a59461ccb042754eb1eed5735a9847f81549b07c2798476212658e32ed65167d885bce1c5b95194c4adaa2e0a2364e4aabe9a8ed733ac2eb84d60ce07742279f45fce844a4f8def41f536e6eff622d1907d87b35114834c82a8d11ac7bdd2fb23660a9a10445d6c7b5be6e7b356331d3dd228c08bfa34f21de4203b25451cad05af6b2455105e5d283a1ba5087b5dcd09b87245fb0f628b4f8e7f27f9f9a44d9ade737866508096202392e6e6814588ca249da09387c6524450ff7bcc52f5e04c0e75acc8720b4693ff81f068affd5c068ec3eb10ece945f9364f1bbfcc4141b23fb9a8bd0f27df4144a00f9847fb4a11236b81f9f78a5e6249a06e9b35337b7baa93cebd19e921122c2925fd3d4e95dcc1aa6c3b7333d6598d55eaa0f065f54e05aba0f69c29198a6986cef4a1e159931d8f449c90778e1f9b91e634b76bc457f315d950eb95d82b04826084236482f64a389092389cddce83135a94a27c067c891e8cd4722cb47b100baedb7e90d569e158a95dda997d928d11021c50119ef08878872bdac875522f137174d6e0225575cbe796c0b820ca46dbd6aa4527c5d1616c324a8c30059bf337d5765069812f21d3e0650e51a6522dcb0386525f0d45dfa47bf685bb6a5a6e06b95241f6443fcbc5a6b1060a0b7ffc1c35688d5bb194fdf6cfe98b3d7d17c61714e46059506ade3e5aa59dec11e91f1378987def768c0a805e3204850d1b249f57d150e0e84762c1c9ac81d258a5ab39edcb7561b1e2509a0d57c4b1e7d6e4942bc2a7632e88c7217681c50e5cf6855b4a3dbbd91f659350786d26e0de00653efac29888307ae824710a7af30666573e2e8b0e4e69f9efd2b0277c6bd53fbc47b8c5accabeec5a536a4b5ff932cf9e8c4d4c3a6710cbc6cd4278cabcd4e066ef8b898f163b620013f5fd8bc7b1b2d9f57569d7f8f97658418682d09f9655a4847b77fe6f1496a3e7a3261f3b43ee2552421013ee992d527b1ea9e899be96a6907241d6b64c6ee2f9ccb6893413bca7d2331a34c01839690c91e3b09cee653606d68bdbe344310fee5a402a2243bed28bcac6d84dd55cdedf45deea2a7eaeee1a3b32cc67d5c88e107a5208f158930fe7d8979fbae502207fd1049c8a6cb01f4698ac598228f0d85f54cfabc863bf6c6ef6a4b4e8f60bb5d79237da9ed7bfc4455a7b715383696862539e989b584b005d40f5c1653349853026cdea15d49cc8228ddb6df81fb79db334ed546eed92ee3dadc756bcebb5131ebea14b15c26671cdf358333909d1b54fe6aede24558bbbd9d31983af64d251168259dab90d19864ea9c81d0aaff01b4e7ee488a8536f3027bc397affcb08ccad9f6946a98de4556cc922203643c0f2f707980b5972407cbf884a8ccdc23bf840e115106037f667b2bd443236247507d033b7e367db6c3daa96cfbd0ecd27182d96df8aa853948bcf94e6cea9d4f5ef8cc917c5de6934d68f1f286bd648413c32b818d70a32989c96bfa923f39bc23471928c1bae53a043d1a9006d672980af3a2d1bad7f532ec60ee57c1650a0b35ee522ac1eb1b939e2caee4af8a88d840b0f90e8e10a7151a5fb91cfe27a1a0b2666341999a4b4e10e8cb6a458cc4830a2742d103a689ab06af2b8ff1defdf2f288c10be9b5822eb9b8daf0a05e98766156e56d272a5ad3aa79d1ca9feb54f7c46936fde617fe99f9ce24e31ea43ce9d3731c8adbf510586851df6867599383381d68e7bc66ad3565420d4b13d84137ef9cd332906a746c513d56cf338378ea176606f02735b8d9003ed072555443d366283d14943d115f436e3b89f4d65b7644a479024acc287eb15d45577f00672c27c6a2894d8fc77ceba04fa22f335fdbce8757da2214a21a2e2cd04970a901e9aad2fb563ff00358ba0f62e08e84b47ae6792dd36ab0626aa34d36edcc2021e7f8141de11187210451be0cff7f0fd84da0a2b77e353f28884d0bdd653bc88f7b181312cb9016bebe21948f620eb7616d265247971a2dc0371fab7d77afd97286cff04eb00e66ac63d30ca34de0663e17091b69497e5594e774411cf00aa5c169e1208cd8155214d7f259e00c19fa53ce22a2b279c1800d2b2efb897fdf32929e47b15cda6c149fa6ef1023a24d5bf72389936d559e92e11ca87fbd06e20792607d6a7da3258a9929ea6e99f96495da2883cb96c4490beeaece4facc83b6fa790ba755c906d5c8f45988c463e370e91989ceb5f27814f702e8818930d477a5d1bd75e61298f6132f1fb80b2ebee3225d8d7936618d4c38e7ff93d0ecc9ec9d96cdbb921efa5bbd1d1e22d3c5581d8d33ca27794f808865b83e973328595003a76f774727ac29f26d50cbe2eff63ab0a4abc4811eb629d9166c790e9172059049f4074ab76160193872a78ef6a4eb31c93141fddedf1b0e84e14b9a4ee999149af5cc15b3b0c13da503add1940b20294cb6f24de266ff8a4a845303399524cde484310dfea35d270841c46f8235dcfa74d65c37f597584bbed7fbbfe720d096b92349a4844af71c33152c8c689ade8f2b94989b68e4ed6b488d0cd42e009e3f1d98a072c479c16ad327e47e876c7093389573ed531a6055ca9d1c464f3e1db70d6a3992bc8863ae33f450d8c1fb616d14e8e0713ca4c84be234c68fa87bd8643e158742d94d3dec8bfd8277f90cc3704a8338c24491ffef1d3c39b2e7b7e57fde66ad46ee5652d460462c0d7832bce27ca32b8f61e07880a2c15ba548c6939268987dd9c7c3c7012769e5b6e38467a94f1f9b01c601531ac0c40f3b3bca2a6ac92e7d0cfb8f71fdf1f1d299dbee3fa4abbbfcefb190078fb5b96237c38c41628bd8529407d609c6b88f5e56ea07e8a21815903e7ef8f74a9ba829552c5e25f7b5a211cc63812dd531a04e16eace09178880db4de12fc577c7cb64313fc685c3fe974b00893ddc472ae634c667c2dc95c34ba1786042661d48c69d3ce522934c949ba9413527b421fbfa52a351af9cd3108e3c2e4be55a44ec59a2aa2cc154d0ef02a4957a27fd7ab2726e730b4911be1fc7b22aa83d2af7b0702136b2d0e810e485b36e9ce99d122db1bac22b4772041e3dbf772e034cbff434f2bbcd7a89f919c8f4ed6579cacd96edb360bdbdc9fd524d06831806d681f1f3002e360eec67f8110fcb12b237c70fae7d1035fbe7dd71ff85b9a40266770fb8198766d7e84b9751db194db03a40632cf00914468c80ea4b1a7c03dca1bb76a17e6c5a39327bf9d86beaf2c58998a3af4f4d102f4e5f229ca07eb9df321919157c774f93f44cdf3063e8fb969fad1d75333142f83ca4889b2f89b0b7f35013138c3b9c0478cb0156f1ffd59440ff7b1e0c7fc20a5c1f5d4ccb47528d7132cce77989e84d2ffc75d550d57b27fa009248d8868f0ec74d6e5c1aad2d09ff8ba04e2b1d6d52d7393d32710729d4024b4bfe2f93785e1d5644b570782d240a4973385959b1afbaa6ffa6461c515fd4ecd2e82866cbfb8c15a5923bcbb56558c40cd283be53d97abe140bba8bc7ffcd32b7257d8551fb51a0d91bfc91c17202f6103e613b3e53dc96b2d135741afdc6ce81d694089b3d5e170c3f24399dfa7f142f4f37b1a14166310e8295e37e9a55245e4fe94b3fda80fadcbc2573a99f5e05f71c7f65e9398ea7096a41f5ff0e85383f5a5db595dd8dbd57cddcb0e0bc2421dd78525a9e81bc69455e3cadb82a01250736b5c4aab8ba7345f6a5f76ca5b8039ccd4b2fdf96599596d393253ee08a89bf34b85f5503ce0eb2b03d770f9b403b8c0b086fa6e6ef51b68fec450508debb425737f9a288da71af30faf5cd9e945e49029467bee492408165e058b0283eff3920eaf592181589f16fba31cf479d7c5e41c75a27359943d7d4ee657ce062770b4f3dfcd7a2ddfd13899caf40b44afc207a3176a84b30b82e0de39cf27bd6781e64ee1695dad54575698c859fa8fbf822643e3b00070519a855574ff1302c8bf9c0a882e52eb9e922273d32b2695177d0fa1e3a65a09fc660338a1a469df20151b29c9d6b9191845ec51319a41289b849a9afafff76501d09b4456e9f707bb6f3fd908f0a57bb3e6261b10075f3fa0c0ad34380dec3cd8e24c2faa3a5ea5ca751c058fee6e6f6a7930cc9b48dcd5638509b7b3b736b2dda89db36e63670a14f8e847d5966153a0283e01f9650baeca5e75c8d449f93a4611c64ea10fb865443d4e544391038734ecc8cec4ed29e6b5d405885cb03a8a31b49be6a9e3bdbb888bf83d4368dc018b257dc822e0e9ff5f0a382b7eff509a2ab565683fab3221f3ab4093911cc2f833b7e70f5afb06857f29fa23d2b56fcc8fb8590b75284a319fb43a1d893e0ccc6407561991606c362fce06771e985b4fa3912e536a5a98f82583486539f2e46f9146516187f7dd41381ee2acbe12af271dbbfb555b13214077e6e087326150fe3065a956acbb40aad116fca886ec8c7f6db0786205ec32e04a719e5f8f6ee59120f6c885c53490bd84cd416d99712427d78bdb3a370aa34ef1e84a2d890e8c7ac08ed7153a22226fa5e8d31974a2c9624e9d5a3121e4f6becd381930c10870b9867f47d4da856a0fc8f1439852a107eed53dce72d47b0ad988df9b9b3337c2cd32b20011e933bfe2b4ed7ec2b06d0d6665ff55e30597bebf417c16732f372e4b6c18e64bf9fd08883f6d13662efb97249f80d969c03a53211fed80fa9d22101bfc9923ca4b52555a9f88fc458652ff6d2ccf2325eb810c2beecb7ad908d5bf4e268574f2c36413ee9cc7098b15610d0b300190771499c418d0a76b5c48ef9b225b275107fd2c51cde3eb8dea7e8a716a50cbadf074bde285033615b4040799c23c4aa4d95c9d890d619d9771036ff9298c3db9a95e61f550dd092143b12fda63d45201c37f44491e30ed9bd64115be40add00d7795fc7d83721a3b4c2dd363f8d2456a6a6a55749464669d1c656dc4047d3601576dc3f595e9311520cd27b103414fab7f77fc03c43c08e50221c0e1edcc4c685ae3dcc7286c4a6e76bf72e0b8a039d77c40a9b79ebdd6f061bdd922b14b1e764819df305b0ec2ce66bd0da53aff494ccbcf1d9ddc5b1329d040490427fa8e0ff0d8b55ca295f4e4d4aa51f8475682d0c9a491ac269d94b71e7f42d823de0c8dfa2efb718cd907ee5112d8edc2ca201844794f18690136cd9aa0c1a3a47625868a6183ab4b890ed5e51b9d6fd728bb7a2fcf57e65e5a00677e36e626cb8b8b398c570707c872e70067e5e667d83dca2930c9e8fade3acfd56932bedbaa987db37c6abac831da94969677b923ee44692793d01f50de693ec03279e04dcfe8b48507d0fd6867de3a38166de69b71bb197053d0229b99488627aca8508a0558d2ae16fd1d4e6c54ff2836845e5111e53367bfd754f94f68a20eb6b53cf5809ceea55b43a676874e736e06cb7004c7a5e024d5fe30bca03223ab73e7a1ba607f6693cf7eba46676da66938c2c4098f4b30fd77c24b11a754021135471f42a325b811dd867618ed778097be6059c53eb82a89448ea0739ef56bfcc75e6d9653bf571696e619e4b629d54ff6539ade09f11986eee14e91ee5498f9e3e64c9d39aeff0fa516b749fa8c9e8016889a39cbb31ba2f5d206756663443a5ad5abe5b7b57bc28a558dee6c62eec50631f81a5dc1285abdd5a155ca3088af41a75c0671436f774773b532cdd4dfd85f7c92899ee7754643dcff91ed6f0a233314918bd1cf115d29405529a81cb98169b1ff2c30ed80db423baebdf8a599e15e90179778ee263336f1b8cfdd26e0d0191e28be31189a7c6f52f1920835c5064d77ef664622a52aa4a194908f3ad4aefe411b204e36693ad25e562b9a508da87239c3abcd2a1d8185886cc889d083b4dcad14e9e0fc49c13f3b245fcbf2d60b1be1bbc2fe3fb6d0eea2fc901e3ee604cac56a6adfc8c31cc99416cb6114693f20f8767e5c49926be07dc1812613aeac608f21e06b668be26a2225022e89c36952cd004331aa682bab20df700054f1ae8670e4304f57138dd2b9b8f236278a0eb294410882dbb3f7039ce7871f6d33720bec281edb0de70c47535aa71b43bb6fa81c4850d912de009a51e29a3f8a145677d97694c8bcbac1e360dbd266ffc170a2966c8cc07845e3e045b1a2763554d074b8c2f52bf1fdffcea5c8aa3703651d5e950b4363bd529e9e237f6251cb6e60f07865abb8b59dfe0392c0aebcb3bf1616ebe3acc78a8b87ad863536f45088a09a8c394127e74189c932c10add2a02abd070f7984307d5ae5d22b5278fd7822d5031e482064e24df6a124bb6668d734e15df6b37add2e0457d93763edf7decfdbcb3e00e81474221a66715e55e0e49274c1236a522cedb3b0f19ce4b30a605367e0471350ad7b425bef3212b6dea0a824db338a782bc4bcf96b8886d82f73957a4c1a051839fb90635b2bb5560b196b16e20e758ad41717d72667760ac84cc509f6084a285fc73d0ecaf85389efe4a99e884fd58a0b1dcf3e76341397cfad25dca4baa9770ffe37267abafbeae81cfd59621026b6cd3b1797e6257032ec975193413f8a8b6dd1a14b9a19704307570435cdc628da1d52d9e1e0b014cecb7a87d4841db2dfb4caf922bd195bf643f7a3a248d958a1ae9954ca056d538036579a264232b7ace2a203687a2dc85288beff9697a0b216027a6335373f8257fe1ee8fbdf2cae5e8340c501255753a95440338b4336015a903baf9d323e427e11d1b539628e6e7e2bb20411d94a6bd06e9245a1926a8cb076477a79033d7963cd555a9114f67d9c1ff09d420606f332558f1638c2424f769f7f1dab34265e747dfe399846c045210cefacf9f7fc938ce84d04bf1ad1c467928418e5456d6efd1273f057e80b5fa386e592c13f0c1f0402736b1a5bf9a224b394ebb9184bc65b305bd1215ef47c415a4e963bf4f70cae750858218241ef81efd44355d17a83e0187a6b8d5814b2bf8f6c62a74017b4f58acf99b28f7afbde3832dbecee28976a7385c546b6f1d419155c8d55f661ee4b141df948fad903ac27acd945989ff654f7d50e29d469423bdc5f9ded86e0c664cc81802184827e5d2dda7edde103360db0a196a835d261dd8906f7492391ec09ee5edc46cccd8c963677481f8504f29804be79a7b3c6870a9482d1b785c4eadc4a2dc8314d934693cf4b03ef586353d3026e3567f1a7d39bfb8a0adf7fed5c306c7c64465406d10c14eacef11e079d3b31b5ad59a62ee475c3f26f63a2a467342c605d0dd76924693aefe36feb025cd0ca560431adc8753f4461e740676fb31f5896da321b7ab36e30a4231d642d33368bda12f21b59ac65361f1700859f3897c5712489c01d88ba682be4aece834c2952ad11f7e65c51f7852f07add44307bdabbd12d8b383552638cb5cc65f20cabd27dbabc9076f0696df33183728d294680d18ed24187c719c0d85f11b3dd8f716faba51c698f5707361b933283fe6d99113ab5f9443fdfe959c4e10772189d1887b2e4e7f99f3ae76bb4787009cbd67d244744fa91ed7a6f5fbf9fe3c6b50d0d8640ceac499e5c9f8acd01c671fd1d50c1e8fba6aae3d68a1535812f85e46879cc1fa23c0004277fddeee0881441728a595ebc817cb7d19a0390004789045677e7f9ea6eaa6d1bb804da77a22fec11566061f1e21f8e9a5f93c3ccd99541db11d9d0a40902c16a904274e593c31d094a47ac66c79c66b5536e6f08a4e7ffb3f1a5f1f7a1eabca152c3b984a0dffed9ec633a14a84143e04e256c6aae3b4a403b0c1424ffb6f50c3202e7526581d593a525cd7d4b2e2b6c87c600dfe6ffb8da13c10aecbe4c4093016c5621c9359dd3a9004afcad5de8448b58744657945366ec943ca901e1b6c459ce320d1e70436e5006e5da533cb2e594e64f77b8fb485a7f358685bc25103b4ed7e9630c75ad54b96745d5ce369861ceec43d22218a6eeeb13d1a591cad0e2119f850daecbfed1e7f976e825a9566febdf9d89d1c1faa9871b5974636dfd8e22cc23705c2e421313186011d84ed6e5c39a110c29868637282513755bb20b1a9095caba38fd99413cf468abe043f5ad7ecfed73466e6a5610ade1211bf7240518b9925bdf64eaa2ad538918ac9c71eeebbd1efeeccf2e0361cf8116afd7bcae53da9a0c93931e8e2d2ce5ce36b0896f9d2548e82c912c318366982bb3e3188cef87abd532f87774cb3319ab496eef4fdfcb1b08628fbfc1af32a725798df35d42b5aa3c51592bbcb7d0a43ae2cd268c6194bbfb569b45cb74aa66ce3778d2e39c4cc738fbf6dc1faf8bd1da46aad8162be9e3b1ade57161d5cb7067cfaf04af20617417f72c4364c40d268359bf4e37dd10667b2efc6c42e0054886626043d76c410dd3a0d2a59773636b6473b178e3842c75f07cd23eebd594423ef13faee5397b26b9bf080fb1b12905a780132199a54a43d09628fc3c2193f560770985344c3decb490f2ffde31a5440dad198ad305b72834a4a0cffa4513b9b6bf1f1aa5935be00ada1db221712d91c4fbd3d42f24742580fb8cb1977b7389747ac3217a1722bbfbc1b1c5641d3e2dc7f4401d4a04e3257be022cf182d9abbb5f6837e8fefe19e20509f9e7bf672a83ea40c0e42da87e4ae4318f4e5bdb6cf3e1dca96888bf1ebb03f0a55b394876a73c302d89e6f577e913093d776cbfbfc4313235374679787a95bdfadfc9ff82a299a2dbc9483a42ee4112a7c28fab96989753549d8bb55510a5472969b21aafcf4edf10ccc5dad76ee003a028c437d0edaf6f4d538dac2d08bde577a0629ff5c8bf7a47035791e54d6f1fa9a0dcd58f5bb45893bde32eddc73b0ad30ec848cd0f91f7a334aa8e14b1b760fdacbf053c56d34d2d3c16f2840a830a41cd79a662562ea3e5eba65c3aa48bdb66dc8683439627a0ef3c5e4dde95e72a485db4762475bbfa85fdb5ace14ed700957b29c984b2098c02278d513ffa5f506fae8ce80804e436abd1e13292f747497b3d89aa0b0cd66f0685c673e5c13451b05d4017bbed66bbc519a607cae51295596b41d5077b0912486307e2e2832feb71b5bfdd3ff3c1067871bca8ec7466cd753c80021558c3287d93a88f94d5032a253b216575dbfd83b6c2d1ea7c29ee8e6d3a6b51c6d4324d962d7e992673f7fef54f143bfc53fcc352d436b7dd02389b27f4b31307d91dbec82391c43bce191437550c18aab10a29827cbf1094b037dea6dc15bb4a1837d0ce604e7fee40f00ed90bbb5dae72e653084aa2c0caaf57bcc95a62c92ef0d61c45457105b8dbf5b2913fb5effe7e1b2b22dacb77f168e4005f0d56481b4f5efda2fa0e3521fb73183f8a4716cc0c87e0ab87e9b61b4e3c447edf0dc3206b4875775af694e563d17f6644b6b31eb18766438689fa3c11b944395c4b231ad08bafb5d26769eabd837cddb5d16ccfb184bc4293156f1469f05e287c1056d1536b052b1afe1cc6df6e0afa07ac9820f199bc0bd7336807eca9ea52280ee233967ae894ec8a4402b7b6bc907e850838af458137239e5d335fa3f0dac6cd10e31b0d1bea8e11311c45781c2a95053de58fab0582f90c3fb77b4f84673f28544a4733481f798f7e793ec20280801e54d9716985b38b38479ec84685482c64980b13d30d6d7026462f3ec93c51267392aa2b846d0c7f35573963739dc667535ebb9d55d4dfb62aa4a01f4a7740358e16fc1a5ef42a62ce54578a8484fe33e4c528a4faceac8a8855a9e70dff21ed82f788882d77a0434b7032358f70124eb90bf5ddb2c776f61849683cb5f9bd5cb997ffb325c669824d102865e8be5a67c5d7e5584e9eb05d8377edbca8d37b358dc2e251248d8003884666306e63b2ec799a01dcf55151ed79500c83fecc4953fab90910e0a28f296c51565881d112edde6aff34d54e5c08cc9b45e29eea3d49b51719632f1771ed7251fda5ce9a248af0677cef0c27b639f5ca68192b7d61db4c03e86d811bba3bb6174a2fa0dc123644de72c033d4a0cff1dbd9fb0c7112383ea370f493be9808aa1b711706f783e7aeeae61ebcd2eee61bc4e4ed83b128effbb6f0ce857abbce2260241166af9b69e4352c4566ab72ecfd2280db076d88a5b3c278972faef5eb7858bd15029f1d4a9fdd31c7803b03c0071450e39cc1feb50385e6843823cec5295351b6ebecc48f48d290a179c9d177bd79e8d219681fb837ea0c0a1c3df9ac334aeb6a8a28e61352dbdeedb6500c12c556882fb710f53cd78bb3c608e6ebe6d2432d018c027ec23f10d4c966833355baf282834ce2c1f64d8f6c3bd352db716bb78c86f26f1c6a3ca9005fd4af64c89be849ae27d91b219c41151bd9792b5fe1bdcc32f79da7ce01b233b32409f74b4a532f92a1317dea313b0c9bef4df8fb54d71d3a6af2de7c5a4e921c76c238fc20cd74b48520f6748719deadaf5ac2a427141bb09aac33b9f70cd6d3f96a7fbadcb2fc62c78673190bfbf255ed4596f9fa349942635ffca854525f8035767ba9c4445eebe447e8dfb37dea928ca796148ccf006f530a5f1bbcaaee2d318d0e8320626aa55e667127bda16be1d27fd7e9b429b0d41494af6ccace361a80c02df1ffe48c247ba3cf2ac98ac4f10b5bbd5b72c27b2e012a1a2e04b6aa22eaa94fa96c61ecb652496cca8ecd1fa3b11b1f2c0e802cfeb18a79742fc967e395ed2e7719f19cd743cfc7616a481d63350eda80b78aeb800b1e89d561f1e124d7f44d3ecdf586f3b0e06f6c5a60f9fc9dd353fd2ed608ebd56193e7275288941b8ca3a39e0e34b8bb6c81eb4810fc626f159f3402a15c49f99d582843caee963d7c7c6c20f77e3f32359ffc2172886eb37c8205f2c0a5b521fdc528b2fea545ab45b8a316bad89336f49700a7705fbf18cc73f5e50fc65a5b6ec2e7c7eedf84e2a6cdff7d9fdc21c6bbe390c495207fd5c626e4fc1d6742b079917dc308d9a4356ffe2f2368f1ebe256f7d505b001ab4a4e76514222e5731c02c1aebb982e44e412142152ae7b5bf5b632577a8a49b1a2ad30e518e630018ff7ab5092a36964f5daef98375f73a5064dea7a9b7ca50af3c106d289816465cfa6801491c674f65a648dc1302711686316c4dff4cd34341a48ac3faa71ff36608b9455ea7dede0a9799f9053050fa34249d92d3d946d3ef3fde973534e692115e0dad508b52b779e8d8edaeea580aaf3253b20cf414e20f0095bad152d740babfa07a14af9dcd595a1988a55940f53fcba5b625a34f944ef58942981cd78539b70a9f1f20f04f98246990966bc65618d9cd2eeee07d9a069e4b4901448660a639aaa04c47cb1fb0855846b5597d714398cb0923b3f01e551f09524dab6d329095137232fc0dabc2a3874b6c4c1799ac2329d194f200a7b4477a761fc5f2551be4b90e4f893d9800b20cf06cdb469a440878c9d005884b1e6f21181546276a170e1436d31b2fe7fbb04a9f11e3543707cc10ac85e419c10d8c77ac5ec2561f6a65385dc46863b3fa00bce7dc4e0d2a30fa5ff638f7f9f69ae23462e86cf162a9420e8184e92eac1ba28a7bd1c54ec403f58615cba4d73f91791331de9bb918e4e07c9a719cff4fa61c4e773f8c6ef8686e480626c1d217f89a8fa16115ec4d341a5863f0da1b31c5dd74ec2ec0d2ac89bbf56f4aebd5fadbc1782d388d85012c1ef63e78accae5d9a4eeaaf4344982ad93797d742f125994834146edd78cfd28d72ee2d95460ac943f48c6190a895f22f86834b30d41378ebbba8d6db74a793b194b274c4ca8b9b9c0d6c3da551bb37486f8f3120f6cfc49ea36154ec01321bf6ff3b439ff4719043f13fd4cd589ed15ccc5afd6a8e53487f319e25da5fc0c0a41fc05030a2245857948c4d4a739361a82d54317b637f75830a6e5988adbe5a6798023bf49cec059bd9832efab10cd4f6b524892cfc4f9030f4a1b1b21caf24f6e12e8530c83811f88cf1ddff7502a03913c839e8959ae4196536cee34e8c1ccb4b377d45f34f11fb6ba948cf78c6600d4a0f401e9c11cb51ab464ae298cc3f2f4ffc8c30fc7d32f2ddf18f478880489ef000c783b741cca872413f3d582f280ac782fc62f7428ab6a4d16c752d5172666bbb1b4f00bcc0b9293e8d210a887ec2070a5f4cdcfc527fb5f0e2a8b0eab52b16421f8ac537fa6a0cf5007041bd303e931927fef79fd18e1c78add642b6d8e2c144d342ce5d0af219c4046c900283c9a510f4539389aff84889899de347f8ab5f2580a4a98f35b2dd3f43c62e370cc4a2561e632d841995935a833b27e018a87fc25d886fa8e90a12b8760dd0a4847253787126e90dd4a5412ffe5e4b66779c9e96a9671be62bc1f502d7a8a847a5b01f4544efdd302a9b8354a6eafe064343fe89062eb540986ec4290523e43f9bcc19dd1fd5a02b4f0c4c6565da840655074d9205734d1b2bc2767dc85f8b548f801239f1ffc12ad886688d62945583547ee28475b28fe43d9ea9accf7ac53dc44afe4180bfe946650466b090f0874a1027a1343314ebb6fa7fc8f3a229ffc491cfbcf8b42b7acec723aa96ccfb38df32e49f128d0bf6c474c2285ca20b4d1446347b25f155b112625c36ff32763d61f2e9125fae70438fb95ef7add51e148a836005329fbe4155f64a598f1e7cbfb9f4e61508eb7cb52d7070539880b95a75cdc0db62daf6eeab5d7e7fcf925ceae0e0d9a6d0931ae2e14587e8d7795add47dbaaacf4ef0b60f49ee8041e99a314850462db81c252998c809e3e2ba5c00459b1a656ccee7272fedb6d7c5bdf0ab5b00cc3667a5c2ed3f4c77ba1ed7eef6739339826133942f0b8bea2ecb37d872f637e0be6068ee06e5e50334d514cb77d9cef70a2de43286d59305bb95edb05fefd5d4c9a8a86d7b17889c8b256c0cdcbd18f54c12bdc92778453a1b1da8216a25c7ee47b67b30810a22069d137094f478d316da105cc83bf05e8701e511c7859a57e3f6cb3e9fd3140422158a0d1d51b867584dd4c3e53c76b175d79205021c5f1cd2164ab4eaa5c4465c5a5f4c6c207ae72bcc2654cb3ca718851b10da587e13c40a2c89c4c951fa9dcd86226488cfd96e5d8611652d01feb1543789c3d64156be80504f1c3f115bf0b060c14d2023976979bc8d797b521b2b1927e1594b57373a6847b7d5fbd22137184e7f632bc4f4ea50c766140c4f1019ecd2c8d7e8a9535840b9a386e2654b8849b9816edcbea59681753524493ef82546db8ec8e3b6be4d8cd2be20e3cb8d8c980225bd20c51ee4ad36d8799221ea3ee44005bc4f68668c656ed0b45fd14f51294a0597b3794491c4165fd9f11cf1dd69d104af633ac71d9e6f30ef3c820c9017aa516428920681a5d535eda5726e4e4f9d33f200c5b60123a31397a2c17fcdcf5614d22d35e3396e83d7ee35e17dba37a837ffdc66f6894064da965e278721a58f213f6bc571591ab820903f5ffe23bc6cf6685b760e0d47738eec5daee5030cdcab9e062ba9c573f404e976c96b028e25ace5252aa98e39a5f9377e8163ff4def032293eb77c1135d0c7767a86d698b462d98ac0d2896aaaf9bbace193ec6897e547df1c99fe7d89ce307fa1acc4c381b3e64a97a4347ae72429374574af16a561efe06fb76fb8bda83b7c7699b562610b48873327b18d7081cffed20ef6dfe078181bc37e15d97200831c02d0df41ecf2cbbf47fcac75d13fe09a3bcd406b98981ebaaa72718d079c5ab7e4d1249cdac23783efa979746201d6bc53b56b5ef8ac0a23b25e112c3b5db03cf67f8799023ae21ba3943a0ed36fe3f18c9edc480de28d8847da693c8cc5d9a3535f35df9cb9a4a1569eb19c309e651c8c3842e435fdebd97278a11d8c57f055713341fc560982a51111d38fa48e07e710e5d2a3229ff9f36a969eadcd6ff7ed50751386065af62a90c0b7d83ffb2cf4e792b2f563b26ed54c50ed62684f82bea96006db321b8dfad14d9ccc610d6a13cc6c19d5357bc5b0462e7bc613c79dc1e245b43dd30551998382d32ef66031427e942115e290fda7bbdf23787107b1c08da86266829cc9caaa4122bef74d245f6ff75a836994c930329ea987b53ac038b2fbb94b28d77481ccf0b94e75c39139565b35647898fa48d9122b67f902f5b684ebf227ff344c9ceab7e02169c2233d91068fd60b9c1354513d58a4916594014a4cf491d46b72761863eb6c90c5ef67da7231b5acc3df7c52f6bbfc9cbdd494b4f05467276b891b7ff417b9811e4b47c4b511a7a5bb7de6d2b9ae5147f408d3e2a28d2badcb519e2e7992c210c9c4a22acfef197a61ef8485dc1f60d3b33ce4a2506e5c09d51f6685aff30b8b649b4b827a2c8aed7e998067b772e887bdd312d32bee20194688393398c43645b13e081fcc203f60bb88ce3560300373406c39d3e34b9f556b779c5f714557480bbcdf6cb53a5d6b00e13fb09c691ef9bb52bb2d0ff301d51b85650ad4aaa8f143927362e24c76391309a68ca032e1fdea4c2c19122e7a4d4a4d79ea6207cddc72bf35a381fb8cb86e65b0fc2e0b5cb737d9ad459c6167c165c222312b66467bf652f13aeac51e7780cb1332911b016c1adbc61fb542421babdd5963c9262fafe553764f0a229a8bf2aadc881e7c0394c83bb1f29c97de915196eb5162968a65f78bbc1e87d5e7c81174b7ffc44ceecef38dc69ec9f5dbb794999c7809671549b8664c0e329b2d664bfec5b2f3d878ee68f00a152cb89ee8e09207712eef04d1e2f2deba3791a4b8240d4b00bc0c03a7bb8f299b9d12d249a8657cfa53604ec29c84acbe9eecd0aeee58888b25462e180baa21db955c37ff7676b32afb977d00e33fdcf803c6357c6a10182510b95423e845c7e2ba23be268d82d0bf43ab4edae7384457865b63bdd08ce9b0164fa3d7ccb53fdfe1b279db6bcd7b948a5d6a30b2a36ce6fbabc30ab18bd99361fc36facdb11251e5f52320bdd875c86da5919f960278c21104473899c753c10dd51d1f006dd37db410b925046ef22903db08a1cdfdca461765f4b58a2cb37d617481927c91340583b71a0ef6315d2ed9b17bf301eb14d0583cabc0221555e09d8fcdfab66ef5f54d9c6dabf5c62df660511a4b3f891d1087bd15358ae64accb17625f96ac23fb06f33e2ad9f3fd6959a6832f9dda831ce2a8b2e2081aace8754e14ec9c3bb77d3136c26cf04bdd5f2b5f89aa9234c760161ee72e2fba58d8a1c88e8071f67706ae6d2eb200111dc731acac9d62e9966c19145cdc98b9495bfecccde7bfdd086af3192808698c0ae189047a0baf543943a4308cf2d949eb89012058c555198ce4ba77209b428d21a70ee194c1bc8d167a17255659f78aab21b408a8891a73566e12feebbcb1c509cf40b96f68789b7bd2f5f5ac8f9ad4bb5331a16f1b32d62ae3bc7d51f5fa50bd3fe26664d8564d15886a53766a5a2f622cbc8b712a986716572ed41f0409a633fbbce6226ecac331b0631535b65e4aeb00dd85daeae98da254f60483d1f4e20b57cf6ed55a668cecb22a7c0a7013c7ccd2aef26f04fe5145aae4dae2ca4e45487238f45ab2bb75a4501c9c90e9d646eecd601ac0cbb98fdf461364e1c44d4ded6383cabe6ac468ff0ad2b865ccec7448a1f5051085b5dfb9eb66d570de2e03dbe9f331c6cc14a756f8299f1a429e8baa3e60167ee76f95f90bf3ed5548d0050c8390189625a7d2cf34f442e624aa29cab01e2e4656576acddaed0a6c92eee5724361662a4ecd2a53c5442a9e3ab3bb01278b1c2bfa9b82cdf5bf95a5f7af5082081d237a7b012f1852b7039505033c44adf693254e5158d933d6395324b4b6305ab0ddd94f771641703b106a994474b45b1202cc6e8362c2b826d0f599f9bdfb236d7dee46855b463b3d9e460721af07f491dab4a1636b6e1ef4367eef15836603fb74998f91a4a416a9b11aa2d1cf350c2b5bd3a9ede42623b37bd68a589287248d5e293728cede4eb8dd8927b507f6b080af082725265d3761c970a7bb4baa65826186719ba3c09bbe582d7853f3200399f64f228b834b46760bb01af629eaee81ff4c66a455756646e4530336578e9a78e4a9e4ac19f661d0b4a7e0bc4bfa7c4539ec25da33864191a1b09afdd37cb404488820b37dc1ae27fc7641ca3cf9d5fbc145f7b37bb08793eb87861c71b9f8705b93325438f19bae67cbc4f2ba0f6b01cfb94d4ebfda20b7bb8434305ca02d9d3334f234b8d67060682c095e65ea0393a635f1497bb038a3854d27837276db73210c7a21eeb19c743ffefc539622ad00543010c8fa88eaad638594ea7fdd81f0ef993f528652f4bc10aa8217bfad8362514f5d9e940e475be34c43297c8ae8f50cb7ab87a17b2089f19db1a015f78a4563148e571bfaa93101e624329629e06cc103e9ec3a50d9ba919f6409093b7d1de92e5ac703ab9ac9196e6d82eb48e78f614f02a060f66843305e26ac561ac3b03d419cbef1dfe0b05493b4b5735ef596ff536432b04b40158402bbef213bf99c2c91921350220c9d92d2da9c8a30f17ce7d22830d66f482bf0025ea608ef904b6f030c2c3a30775e2512ec1ffbe8a2817fbcec6cd2cebc5b356de178e87ea9a32881b7ae6643a6a7128402fd16225d37b8f3a3cb76f70e38e13b2078c60f16b34385d42059fae8df86b$2ab5d1395feac8ca9307d7101c27e4d563574958eb8745a5b3dc1bb26884ea886d313475755843c28babbb96d86dd2079f697647af8ff47a27e564ca68aeb6ce0b5b2e0d5cd36b860fd314714058b45454245e7fa8e7ed269a324be1b04959a883738b27eab0388c5825e6a8e0e1797be9a8467104372b6fe34161e6141ceff562f5d4402629440a71c821ffbf5bcd6b141028a79f4913c2648b664574bcdf5c58e0974e8108868b4d5b1f6f05b13068c7d8b045034cf14ea3e0bb5ca8abc373a4688f2f07eb075b6c965652ac8a3a5ee822c98b1d2c579f58ec8ec9fc23d1a06abc76334b29762175f346b0397b58211184a3bda7d859fe9075da3aa843c2c32a3177f7191e5d001ae9af20dbab1c6bd5154ce9a7f76f917f5e101180878303121552c4537d247b542576c082c039524934692afd45c1b87923c96177dd00019fd89e4d796d1bdcf2b0860fb81815e874943ad6dc722844b6a4f61ee7b33613dd1d1eb6c6b9891d834b79300c377ccee475d179eba065edecd92fd13d5cc1723d32f3de2bb3a896f4e55a13b471b4dc30fdc2ce46a4722c3a9bb8af72af39faa79810421803aeab1745f23b775f1a0fccc268147569082ca26d62db1fa9c8db33fa81b75d455f2d60c4e8aaf621e02a6954654b2bc1dc8333defc9582bb4c990abec0010c9c5f2e4601f7f4e4d83aff42f763763b909c18b206b9ca6997c8b8"; + +u32 module_attack_exec (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ATTACK_EXEC; } +u32 module_dgst_pos0 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_POS0; } +u32 module_dgst_pos1 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_POS1; } +u32 module_dgst_pos2 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_POS2; } +u32 module_dgst_pos3 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_POS3; } +u32 module_dgst_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_SIZE; } +u32 module_hash_category (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return HASH_CATEGORY; } +const char *module_hash_name (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return HASH_NAME; } +u64 module_kern_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return KERN_TYPE; } +u32 module_opti_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return OPTI_TYPE; } +u64 module_opts_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return OPTS_TYPE; } +u32 module_salt_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return SALT_TYPE; } +const char *module_st_hash (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_HASH; } +const char *module_st_pass (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_PASS; } + +#define LUKS_STRIPES 4000 +#define LUKS_SALT_LEN 32 +#define LUKS_CT_LEN 512 +#define LUKS_AF_MIN_LEN ((HC_LUKS_KEY_SIZE_128 / 8) * LUKS_STRIPES) +#define LUKS_AF_MAX_LEN ((HC_LUKS_KEY_SIZE_512 / 8) * LUKS_STRIPES) + +typedef enum hc_luks_hash_type +{ + HC_LUKS_HASH_TYPE_SHA1 = 1, + HC_LUKS_HASH_TYPE_SHA256 = 2, + HC_LUKS_HASH_TYPE_SHA512 = 3, + HC_LUKS_HASH_TYPE_RIPEMD160 = 4, + HC_LUKS_HASH_TYPE_WHIRLPOOL = 5, + +} hc_luks_hash_type_t; + +typedef enum hc_luks_key_size +{ + HC_LUKS_KEY_SIZE_128 = 128, + HC_LUKS_KEY_SIZE_256 = 256, + HC_LUKS_KEY_SIZE_512 = 512, + +} hc_luks_key_size_t; + +typedef enum hc_luks_cipher_type +{ + HC_LUKS_CIPHER_TYPE_AES = 1, + HC_LUKS_CIPHER_TYPE_SERPENT = 2, + HC_LUKS_CIPHER_TYPE_TWOFISH = 3, + +} hc_luks_cipher_type_t; + +typedef enum hc_luks_cipher_mode +{ + HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256 = 1, + HC_LUKS_CIPHER_MODE_CBC_PLAIN = 2, + HC_LUKS_CIPHER_MODE_CBC_PLAIN64 = 3, + HC_LUKS_CIPHER_MODE_XTS_PLAIN = 4, + HC_LUKS_CIPHER_MODE_XTS_PLAIN64 = 5, + +} hc_luks_cipher_mode_t; + +typedef struct luks +{ + int hash_type; // hc_luks_hash_type_t + int key_size; // hc_luks_key_size_t + int cipher_type; // hc_luks_cipher_type_t + int cipher_mode; // hc_luks_cipher_mode_t + + u32 ct_buf[LUKS_CT_LEN / 4]; + + u32 af_buf[LUKS_AF_MAX_LEN / 4]; + u32 af_len; + +} luks_t; + +typedef struct luks_tmp +{ + u32 ipad32[8]; + u64 ipad64[8]; + + u32 opad32[8]; + u64 opad64[8]; + + u32 dgst32[32]; + u64 dgst64[16]; + + u32 out32[32]; + u64 out64[16]; + +} luks_tmp_t; + +static const char *SIGNATURE_LUKS = "$luks$1$ripemd160$serpent$"; + +u64 module_esalt_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) +{ + const u64 esalt_size = (const u64) sizeof (luks_t); + + return esalt_size; +} + +u64 module_tmp_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) +{ + const u64 tmp_size = (const u64) sizeof (luks_tmp_t); + + return tmp_size; +} + +u32 module_pw_max (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) +{ + // this overrides the reductions of PW_MAX in case optimized kernel is selected + // IOW, even in optimized kernel mode it support length 256 + + const u32 pw_max = PW_MAX; + + return pw_max; +} + +int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED void *digest_buf, MAYBE_UNUSED salt_t *salt, MAYBE_UNUSED void *esalt_buf, MAYBE_UNUSED void *hook_salt_buf, MAYBE_UNUSED hashinfo_t *hash_info, const char *line_buf, MAYBE_UNUSED const int line_len) +{ + luks_t *luks = (luks_t *) esalt_buf; + + hc_token_t token; + + token.token_cnt = 7; + + token.signatures_cnt = 1; + token.signatures_buf[0] = SIGNATURE_LUKS; + + // signature with hash and cipher type + token.len[0] = 26; + token.attr[0] = TOKEN_ATTR_FIXED_LENGTH + | TOKEN_ATTR_VERIFY_SIGNATURE; + + // cipher mode + token.sep[1] = '$'; + token.len_min[1] = 9; + token.len_max[1] = 16; + token.attr[1] = TOKEN_ATTR_VERIFY_LENGTH; + + // key size + token.sep[2] = '$'; + token.len_min[2] = 3; + token.len_max[2] = 3; + token.attr[2] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_DIGIT; + + // iter + token.sep[3] = '$'; + token.len_min[3] = 1; + token.len_max[3] = 10; + token.attr[3] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_DIGIT; + + // salt + token.sep[4] = '$'; + token.len_min[4] = LUKS_SALT_LEN * 2; + token.len_max[4] = LUKS_SALT_LEN * 2; + token.attr[4] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_HEX; + + // af + token.sep[5] = '$'; + token.len_min[5] = LUKS_AF_MIN_LEN * 2; + token.len_max[5] = LUKS_AF_MAX_LEN * 2; + token.attr[5] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_HEX; + + // ct + token.sep[6] = '$'; + token.len_min[6] = LUKS_CT_LEN * 2; + token.len_max[6] = LUKS_CT_LEN * 2; + token.attr[6] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_HEX; + + const int rc_tokenizer = input_tokenizer ((const u8 *) line_buf, line_len, &token); + + if (rc_tokenizer != PARSER_OK) return (rc_tokenizer); + + // hash type + + luks->hash_type = HC_LUKS_HASH_TYPE_RIPEMD160; + + // cipher type + + luks->cipher_type = HC_LUKS_CIPHER_TYPE_SERPENT; + + // cipher mode + + const u8 *cipher_mode_pos = token.buf[1]; + + if (strncmp ((const char *) cipher_mode_pos, "cbc-essiv:sha256", 16) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256; + } + else if (strncmp ((const char *) cipher_mode_pos, "cbc-plain", 9) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_CBC_PLAIN; + } + else if (strncmp ((const char *) cipher_mode_pos, "cbc-plain64", 11) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_CBC_PLAIN64; + } + else if (strncmp ((const char *) cipher_mode_pos, "xts-plain", 9) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_XTS_PLAIN; + } + else if (strncmp ((const char *) cipher_mode_pos, "xts-plain64", 11) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_XTS_PLAIN64; + } + else + { + return (PARSER_LUKS_CIPHER_MODE); + } + + // key size + + const u8 *key_size_pos = token.buf[2]; + + const u32 key_size = hc_strtoul ((const char *) key_size_pos, NULL, 10); + + if (key_size == 128) + { + luks->key_size = HC_LUKS_KEY_SIZE_128; + } + else if (key_size == 256) + { + luks->key_size = HC_LUKS_KEY_SIZE_256; + } + else if (key_size == 512) + { + luks->key_size = HC_LUKS_KEY_SIZE_512; + } + else + { + return (PARSER_LUKS_KEY_SIZE); + } + + // salt + + const u8 *salt_pos = token.buf[4]; + + for (u32 i = 0, j = 0; i < LUKS_SALT_LEN / 4; i += 1, j += 8) + { + salt->salt_buf[i] = hex_to_u32 (salt_pos + j); + } + + salt->salt_len = LUKS_SALT_LEN; + + // iter + + const u8 *iter_pos = token.buf[3]; + + const u32 iter = hc_strtoul ((const char *) iter_pos, NULL, 10); + + salt->salt_iter = iter - 1; + + // af + + u32 af_len = token.len[5] / 2; + + if (af_len != (key_size / 8) * LUKS_STRIPES) return (PARSER_LUKS_FILE_SIZE); + + const u8 *af_pos = token.buf[5]; + + for (u32 i = 0, j = 0; i < af_len / 4; i += 1, j += 8) + { + luks->af_buf[i] = hex_to_u32 (af_pos + j); + } + + luks->af_len = af_len; + + // ct + + u32 ct_len = token.len[6] / 2; + + if (ct_len != LUKS_CT_LEN) return (PARSER_LUKS_FILE_SIZE); + + const u8 *ct_pos = token.buf[6]; + + for (u32 i = 0, j = 0; i < ct_len / 4; i += 1, j += 8) + { + luks->ct_buf[i] = hex_to_u32 (ct_pos + j); + } + + return (PARSER_OK); +} + +int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const void *digest_buf, MAYBE_UNUSED const salt_t *salt, MAYBE_UNUSED const void *esalt_buf, MAYBE_UNUSED const void *hook_salt_buf, MAYBE_UNUSED const hashinfo_t *hash_info, char *line_buf, MAYBE_UNUSED const int line_size) +{ + luks_t *luks = (luks_t *) esalt_buf; + + // cipher mode + + char *cipher_mode; + + switch (luks->cipher_mode) + { + case HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256: cipher_mode = "cbc-essiv:sha256"; break; + case HC_LUKS_CIPHER_MODE_CBC_PLAIN: cipher_mode = "cbc-plain"; break; + case HC_LUKS_CIPHER_MODE_CBC_PLAIN64: cipher_mode = "cbc-plain64"; break; + case HC_LUKS_CIPHER_MODE_XTS_PLAIN: cipher_mode = "xts-plain"; break; + case HC_LUKS_CIPHER_MODE_XTS_PLAIN64: cipher_mode = "xts-plain64"; break; + } + + // key size + + u32 key_size; + + switch (luks->key_size) + { + case HC_LUKS_KEY_SIZE_128: key_size = 128; break; + case HC_LUKS_KEY_SIZE_256: key_size = 256; break; + case HC_LUKS_KEY_SIZE_512: key_size = 512; break; + } + + // iterations + + u32 iterations = salt->salt_iter + 1; + + // salt + + #define LUKS_SALT_HEX_LEN (LUKS_SALT_LEN * 2 + 1) + + char salt_buf[LUKS_SALT_HEX_LEN] = { 0 }; + + for (u32 i = 0, j = 0; i < LUKS_SALT_LEN / 4; i += 1, j += 8) + { + snprintf (salt_buf + j, LUKS_SALT_HEX_LEN - j, "%08x", byte_swap_32 (salt->salt_buf[i])); + } + + // af + + #define LUKS_AF_HEX_LEN (LUKS_AF_MAX_LEN * 2 + 1) + + char af_buf[LUKS_AF_HEX_LEN] = { 0 }; + + for (u32 i = 0, j = 0; i < luks->af_len / 4; i += 1, j += 8) + { + snprintf (af_buf + j, LUKS_AF_HEX_LEN - j, "%08x", byte_swap_32 (luks->af_buf[i])); + } + + // ct + + #define LUKS_CT_HEX_LEN (LUKS_CT_LEN * 2 + 1) + + char ct_buf[LUKS_CT_HEX_LEN] = { 0 }; + + for (u32 i = 0, j = 0; i < LUKS_CT_LEN / 4; i += 1, j += 8) + { + snprintf (ct_buf + j, LUKS_CT_HEX_LEN - j, "%08x", byte_swap_32 (luks->ct_buf[i])); + } + + // output + + int line_len = snprintf (line_buf, line_size, "%s%s$%u$%u$%s$%s$%s", + SIGNATURE_LUKS, + cipher_mode, + key_size, + iterations, + salt_buf, + af_buf, + ct_buf); + + return line_len; +} + +void module_init (module_ctx_t *module_ctx) +{ + module_ctx->module_context_size = MODULE_CONTEXT_SIZE_CURRENT; + module_ctx->module_interface_version = MODULE_INTERFACE_VERSION_CURRENT; + + module_ctx->module_attack_exec = module_attack_exec; + module_ctx->module_benchmark_esalt = MODULE_DEFAULT; + module_ctx->module_benchmark_hook_salt = MODULE_DEFAULT; + module_ctx->module_benchmark_mask = MODULE_DEFAULT; + module_ctx->module_benchmark_salt = MODULE_DEFAULT; + module_ctx->module_build_plain_postprocess = MODULE_DEFAULT; + module_ctx->module_deep_comp_kernel = MODULE_DEFAULT; + module_ctx->module_deprecated_notice = MODULE_DEFAULT; + module_ctx->module_dgst_pos0 = module_dgst_pos0; + module_ctx->module_dgst_pos1 = module_dgst_pos1; + module_ctx->module_dgst_pos2 = module_dgst_pos2; + module_ctx->module_dgst_pos3 = module_dgst_pos3; + module_ctx->module_dgst_size = module_dgst_size; + module_ctx->module_dictstat_disable = MODULE_DEFAULT; + module_ctx->module_esalt_size = module_esalt_size; + module_ctx->module_extra_buffer_size = MODULE_DEFAULT; + module_ctx->module_extra_tmp_size = MODULE_DEFAULT; + module_ctx->module_extra_tuningdb_block = MODULE_DEFAULT; + module_ctx->module_forced_outfile_format = MODULE_DEFAULT; + module_ctx->module_hash_binary_count = MODULE_DEFAULT; + module_ctx->module_hash_binary_parse = MODULE_DEFAULT; + module_ctx->module_hash_binary_save = MODULE_DEFAULT; + module_ctx->module_hash_decode_postprocess = MODULE_DEFAULT; + module_ctx->module_hash_decode_potfile = MODULE_DEFAULT; + module_ctx->module_hash_decode_zero_hash = MODULE_DEFAULT; + module_ctx->module_hash_decode = module_hash_decode; + module_ctx->module_hash_encode_status = MODULE_DEFAULT; + module_ctx->module_hash_encode_potfile = MODULE_DEFAULT; + module_ctx->module_hash_encode = module_hash_encode; + module_ctx->module_hash_init_selftest = MODULE_DEFAULT; + module_ctx->module_hash_mode = MODULE_DEFAULT; + module_ctx->module_hash_category = module_hash_category; + module_ctx->module_hash_name = module_hash_name; + module_ctx->module_hashes_count_min = MODULE_DEFAULT; + module_ctx->module_hashes_count_max = MODULE_DEFAULT; + module_ctx->module_hlfmt_disable = MODULE_DEFAULT; + module_ctx->module_hook_extra_param_size = MODULE_DEFAULT; + module_ctx->module_hook_extra_param_init = MODULE_DEFAULT; + module_ctx->module_hook_extra_param_term = MODULE_DEFAULT; + module_ctx->module_hook12 = MODULE_DEFAULT; + module_ctx->module_hook23 = MODULE_DEFAULT; + module_ctx->module_hook_salt_size = MODULE_DEFAULT; + module_ctx->module_hook_size = MODULE_DEFAULT; + module_ctx->module_jit_build_options = MODULE_DEFAULT; + module_ctx->module_jit_cache_disable = MODULE_DEFAULT; + module_ctx->module_kernel_accel_max = MODULE_DEFAULT; + module_ctx->module_kernel_accel_min = MODULE_DEFAULT; + module_ctx->module_kernel_loops_max = MODULE_DEFAULT; + module_ctx->module_kernel_loops_min = MODULE_DEFAULT; + module_ctx->module_kernel_threads_max = MODULE_DEFAULT; + module_ctx->module_kernel_threads_min = MODULE_DEFAULT; + module_ctx->module_kern_type = module_kern_type; + module_ctx->module_kern_type_dynamic = MODULE_DEFAULT; + module_ctx->module_opti_type = module_opti_type; + module_ctx->module_opts_type = module_opts_type; + module_ctx->module_outfile_check_disable = MODULE_DEFAULT; + module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT; + module_ctx->module_potfile_custom_check = MODULE_DEFAULT; + module_ctx->module_potfile_disable = MODULE_DEFAULT; + module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT; + module_ctx->module_pwdump_column = MODULE_DEFAULT; + module_ctx->module_pw_max = module_pw_max; + module_ctx->module_pw_min = MODULE_DEFAULT; + module_ctx->module_salt_max = MODULE_DEFAULT; + module_ctx->module_salt_min = MODULE_DEFAULT; + module_ctx->module_salt_type = module_salt_type; + module_ctx->module_separator = MODULE_DEFAULT; + module_ctx->module_st_hash = module_st_hash; + module_ctx->module_st_pass = module_st_pass; + module_ctx->module_tmp_size = module_tmp_size; + module_ctx->module_unstable_warning = MODULE_DEFAULT; + module_ctx->module_warmup_disable = MODULE_DEFAULT; +} diff --git a/src/modules/module_29543.c b/src/modules/module_29543.c new file mode 100644 index 000000000..c2e24e01f --- /dev/null +++ b/src/modules/module_29543.c @@ -0,0 +1,471 @@ +/** + * Author......: See docs/credits.txt + * License.....: MIT + */ + +#include "common.h" +#include "types.h" +#include "modules.h" +#include "bitops.h" +#include "convert.h" +#include "shared.h" +#include "memory.h" + +static const u32 ATTACK_EXEC = ATTACK_EXEC_OUTSIDE_KERNEL; +static const u32 DGST_POS0 = 0; +static const u32 DGST_POS1 = 1; +static const u32 DGST_POS2 = 2; +static const u32 DGST_POS3 = 3; +static const u32 DGST_SIZE = DGST_SIZE_4_16; +static const u32 HASH_CATEGORY = HASH_CATEGORY_FDE; +static const char *HASH_NAME = "LUKS v1 RIPEMD-160 + Twofish"; +static const u64 KERN_TYPE = 14643; +static const u32 OPTI_TYPE = OPTI_TYPE_ZERO_BYTE + | OPTI_TYPE_SLOW_HASH_SIMD_LOOP; +static const u64 OPTS_TYPE = OPTS_TYPE_STOCK_MODULE + | OPTS_TYPE_PT_GENERATE_LE; +static const u32 SALT_TYPE = SALT_TYPE_EMBEDDED; +static const char *ST_PASS = "hashcat"; +static const char *ST_HASH = "$luks$1$ripemd160$twofish$cbc-plain64$128$107691$262bb8c34b794cb0f3fa2e093662c0461a2213a152d57fd442672cc724de2c31$b7b51690133c8629c7428f82e06b48f33afe1fd508badbc86eac39aa76adedde4f1caf6e3978c41d20b30f52d8a7f359975be11b0116c943e8dea98815785036992968a9df92abd43fbe9a1885ec8f69007984b8b52f54c07d4e799ea6002b5a55f051a0247ee406f5185ffe736c4ac57e59c58e736ed17b0880d6893ac0ec822a7b2a1fd5b67e6732b7f7a5a9993bceecacf4ea92f0cd8d636bdc8cd506df99f915e10d1708399c0d574bfb9ca7aa6afa83678503dae53f21e222bef616e724697168a0e6dddf933062764f7d3990635934b4489130976ff90ce6a9da77c29d4cf8335e0977c135146976c69648ed289a66584c4dae3930799772fc404b114e88209db4ccb33514d595ca921ccad71ef12161cfb93048c1d858abf825c2b24d4fb93be516e5400f2bd3a6264ee16bec15d57c8baeb151461d499b0077c10a35b7c91a8f8d58ade772bad33d09d350568a183576a296cbd98b9492f6bd5a0d44566f9177c645a8d18865068da884950a454a7741f621b98ce1364b36b7448b9e3f22d9a682c759743edc58ecb8d0115c41879510ad7118829e6e5699a6ee54e5dde3993613132e5d8a692fba0548cbf5bfd980efacae7b57cf5c47d4631b6283da320461c2565c0912c2d5179196fb79250d98d8181208046986f231111cc1ec631c2388c7cf827b2b97cd848c31616d6c5c79d86702001d6017b1cc83d4bcd2b2dcffda79e398c519ce4cbab49147c1b4afbcf7c85c77d2c946ad5cc2345e3a5712f8fd469229973dcfae647ff127cb9427f5d3c5257c789ff13adb3c033ea26b48e7eb1682a6071dfc15ee4cf78fc78bd2db7d31287c4524566b3f60370d63fc6b76c97d4b2365fa363e597a4d6076a70b96468e1f5176f0c32429083a6d8c285b03c1d15393521359d6ccf2f814056f5d6e7951059c90d4c48a96c4f63168b380acd53b275b964abecbbaa5fb16f3e360063031b70c0aa90fad2e7d0a98d480d266ed4353b75a20c8d56d8975fa126fc8bc93b54a185c2494af06933519c17df27d04a319ade211b6c24891a0f8e5f39c4fb5d6584e792c917383ff041d0c938537f85ed593132c489c6694f06ace47cf1a61c9ee1450287dfb9635cd4f596e0582dcb50e58c08f6ebd7125a7d31718259fbde1ce527bf1fd9f0fb174ca65567e1a427eee57f07566b2a35dd8766eabaf578cf67a0c8563f5bf9a655937158cd83c92f6df04db25eeffaddaed6ad9887a36b7f18ea72182213be6f4fc3c6058214306eccfabacd51d9c822d165d7a31cf6b2e681e9a4cbc8a661a8cdfd4e70fcc9aa40ff719c5e5d6d95944a8f8d8147985bba198fd74620dff09881ff745fdcd24ad38290a2196292f6b7831caa91607da73ab10ad17416ef6957574b353adac36de1ec1d76b7cf160743aa8aed3fd6c316021edbcf4813d644249d82f0d3e577882625eacd156c59d8fafbfee10bcdf863a74973856cf0b501da83aff8d55f6dec82df267916802d200b4d353b01a9befc520c73a9041ae4e92792d156655847b2dcf6d1a5e2015de1d2238880587560fe2240bca6da0cac3985cc164dbee92186d8848988b6f192fd1cf571983e489800adf34dd70325430ad4db6d54bbbcd10b6b043897ee9e753ceb83f387c068ec4e2f8eb952912103ae2c7db09d91b0795d999edc4fd5b3af395e622c749dcacc4a84dc7de3b5b4527f14deee7c8fe6acbd4332c8f6c05e5281bef0656d0a273d6ffff10ff035c090ef982d0935931a4a415a26736c3347cdffe975edafa2ebeedfdaf21a89416285ec1a36a2bcb8fb5841c25849d8836b62baca447c38f39e727e79708274bba8272b444fea3e0ae8151b0102138e4d066b42d0349b91bd6acc2ef2d4938c58d2c618fa6189261ae9d42bc57bcd1a5f97c84dd564051cf784203df58108e746a70b636f919082799082e4013328bef1b50b82ba7ddce3a4d357760a5a6938b4c6d955bbcab3b308ef0a32901601a7626d239f0345dda04b45a62ed02bdba43f1af6c07987e3149105b3e1aefa885952ab9c124bedaf4a5c71738ae7c135589b4e25c6a2388ecf2aa0dfb8617f81bdde59032d8f8e7a9c683a20303e8e418b6b7e5af2ecb61d1e40a160ddbc3426b69195ee27ddbc9b1a5532da255c78edc3d4ce761db1cc3544ebb59fb177327585ac431a59dbd5755488651c0f085e1a178701173dc2028598a240f00ef1591af52939ac39390bb6f3ec9f2a0fe83f0bff11c3f0e54f2abe89b460481396c6990039731bf50623019f983635d02d45ac9e97ea73f4ec0177c9254f042ccc29d567f052aa2656992974a4483f81c46d0fcb41fb2314dd6a141e5845a15aae21deca5b749df616d30d7c0b3740b8e9a76de87c4103850c7213d408904ee864b12dc1ce76381432f4066d85920478c6c1fb534236db6642a551c374448e99159634f2f023c64e5577b87e9723cb67c619017f42ca9aed97e730710911a35facced5b094becbe54e3067f408a103e42164141f5861bcbd0f8d97305f7b438c577ef2c5376e131eb0dabcee5c6ce785626fe1598c376ccd65172b15d3ec96fbf9d5eb70016cbe162dcdc943697f34bb38c4d4a3926fb671e9a49524edae9dc1c13db1717cacca9dd98772c7d344ff06488fd3a5993af3375f121d27a125063ecedf1bb271e5e92810703a895f2c4158e2c4fecad06a03fa2c2b80022598b947b628eebde45cbad5bc09c9490c982c03d8d5f30d7369e4791c01387fa87808afa47099500874e07d6755302211aa420760ac393f13fb0df34af5b16c2a0bd7160d66588cc57d595827180d7d60ed97ddf35bc01b86385c8919cc41f2f8f403e0e2c7d970aca16df6b833919e88e37f5dfdec8a2f62eabcbf700b4b66be080e1f81b306bcfae8647cfc477a177733fc55ef760022a5abac82f504273103b7ba4f599be305cee29e50f00902e334bf4c3954b6d5e4245ae5e7212d9dad918209803fd8d85718e1301048bcc0ed6a8df9cab990a5b34c38cc2cb47b003bb346dd373e8943ef146047f015ceed542652c30d5721d2f0f224c29c2b75074e44ed2b3d9066beb5e811bddaa37c77d4a3be47873328f0bccaff131e46660bc840766a83461d8e6f3b75fe3b93e86085402ff4fa960769269a2758a2f67f0fad05782f0d8a8476b9e9ff73ea11fbed1e08c02b56e19587f1ba17b425e4d468a0ff93c0c0e138f33091153aa475907fe6ecbee16066f9246c52e31108478b9feebd09183f87eedb3c92708edea2c00965e192436d8b868e2c9c79415573fe79b3d56f609b4b03d2586a798544b21f5764b03eb14625794ef0f588bd0d81722cf854cc4f1662a30c75550a6496adecc1f02817da8825c7358f6588a7d07e6dcb896d6442963de2544665648bafe6e31611ca46f299c81a9512157822b1c3edbfc6ec9e8e20f08980b794b4a045ad4d8de27b9e13e8b8eab2b570c4063e17488c783e66ebb480b7ad26b08fed1ca008ea61afc174d50e535b7ec043b54943f27193b8e4a1ed611494222f24ade394657f5979f04d8aa5d01091bdba5d8592f77af7ae9e0d40ad914ba69fdedb80dd6d7a4da213daf52939f82e88684e87850264d74deb8df04d0cee9eeb68e626e93ba76a825520df004a3d8fd46e5ee23a02cfe60c6c0fe63cab49417adb1e4e4221d6c6464e8702c1dfc857c374b636ae93fc68d6f0735a58439bbbb5c746c2ce34feb38ee50c0f1b4932fb89187651cb8d54b7f10de9c4c040ef46af71a1516668f7d14472952c976b4b4718977046bbcee6c7e9aa835aef3e18b1a39ad178ee0effa2ecb78b5c8e49286a88c985443b1cc4fd94dfe9b3be08fb91fc24d453991f397808ea4905b5a58867cecb0aa05e5d18c79138a4f96685d8d64bc704a3dfd7e28ab29e16ccbd46f6a20f2116286ed9ecce806a77f7865fcfb9b4a9f40448f8e3705ffc6ffbd8b417665334940259e81f732e4d313c559608b8337faa0383038f0edd5229bd27a4ad97974c875d1639b2b6f5f378aeb1cf5f6d4b674abb10f388b454a0d7899fbb264553009ee19ecdf2d6eb90fe240721fba3e0251246243077c4b0c5ab00294126a5a1f719f2af349d9be304b9fbcecc4de6d96c58f9092b7035c66b9615c01ab3587a07f1ff776f776927bea91e9a9aa2a113986cbfe1dfc8d02761eb635c7b0b4106a25b6641fa1f3dbc6e66738106663649e1a63d14ea09cdd1424c8c90074a2bf646b7c8520a681ec0507b28c83d9c428c2d0b6056bd44ebdfb7ca13e57694e6b62db0169eda4730d2618f433f5927e6e9273581fef51a3ec98a6169209b8a141eb8cb11e6623f1465e987e31ee789e66331cd4bff256adf22b782c8acdd8a52597d56181e41fb96ca273d55def8c59d05d32e24b1c368a8162b8d27d524042e7c9894dccdcd648b3183e51b5b411301f9a9452ca4d2b060cb5c635d7f5d8aad6b69817b58d5cfd6133919089e27db7927949e6c8036fd70e2147efff4c177f18fb723cb28abdb9d0aa9b9bdc6005d232bf16f515341651146daf4029db409442c7d3a0ca78e6a0653b5f977489e312a4156f09714df995a7a52b6bd0e909d75b812adf7ef5f25130309c3a2cad4c8dc545d3de822d7208a6ca0593f5c80b217a222b4e24b4c036f66ebbf5ddf95c44559e42720505bdf597879a1cf3f748176cc18462440b9a83340cb932ee6db551816b94e3f823d2fa655e36af57e97d87939b01b91dfdc565a2fbb7bf2244d7a2902434b33bbc170dd0a9dc002929f26afc2b5bc409df8c25b0824ef050e5cbe35d9c67255db2a3f9dd2bb2df66df7f64528b8f23c5e9a1869a530aeca8c150a4e48e7cb253a8e28e3d813ebc03cbd06c13ebb9b2ea72a0c64bdf4198e6de41ae87096aceda1ce5ab0ba883d221a7a5ec4640688687646932f4681a77e8d88c834812f55aa229e1918d3daf36bea392a474189dac11fa44cad6bdb1e0a947d75e6f2097a35a1bddb1b05268392f3ff942a7530a9e8fc446a2411820b1064791e566f9f4d38a59ba0f873489d57bda27c3b93bed37c12d0fa7a721143d3efa089064e41fdd5c141fc48822120b6fdaf393ee66ef9a9ac8e1f553de96714cc8dab963a5c1af5589380acfe6b31f915d65adceb7eda83ab769003a5dd444bf6f0c2c89984875f6cc452d60a7791aa6f237475300777c307ff8c8c038de399314e970b7378ceda85e06e95d1ad46c45e5a6e4a3e80fa9fffeae7c9c89165a3d667ee55db77f3cd057609a74d8a766fa5ac789741b32f99264b19382ccaa48b7ce4bfdb69b6b79495c624fe2500798b527ba1bcf54ef7e8e73eed7e4c55bf2f26577dbd4cb64bdc196e4303cd02499dc4a023cbfdeaece3d3f0383cf1b924f917b3931cb7c3e205c42e277d9ce345c0d50cb771f2bcaa5cc4f8f753bf77cbc5858e0568f425d9d66b0c1781c25c1f057b274462cc123b4b46ad687a1dc4b88b06c2038d2a52b10d68840ed558c5c8c1c812d1cbca4ec2f52f07bb2691385478888af20682addae85deef10a8a9c717d4542bb4c269b391fc68f990c8cbbbd7ed8a75a8162cbfe74817f31a2be33d6dab9bcaabeffee3f822ac69bc0b8c869b790609e38ad7b158547562db7ab391154a32baa7756f90e5a4ccd286ccc99e398386272bc6a02352ff116da62d581b268fc5657aa2a56b904fda5cbfd7ad74a48ad88b8ee23a708b8d1dfa6e041610c0dcf3cf61bd76ca1f64ce34950f6aa526d4c5c75db42e231145304c11dcea175de3ae3e756ba4344b08b6f6dae67fa79dbd641c46263ceffa17a8091d7c1d3b821eaffa3e7f334d1a57f7f79eba697738827a9a76cd3e2bd5fed6214656ef887f6c8f6d108546c58cc6d11dba86e9da9f463ec0ee3897f54466ecc1201d18132ad7981fb3d607750e751cb6921b1c22e967b53bceb9a4dfda2bb094d77ad870eb470f7f053135723c340c17436f11a5b37cda1805e060d093fd2ae9475ecee998a2f6a78ddbe7fb54ae05b49ff5cda779e466cfc4f7b321674d2d8371adf6425b13200d9d31c3c0c5efabff211256573ba840188437a53698399c76ac489b0e621bd89b9cd33e4c947e47ca507acf202ac976e2f683508896c14b08e93f9247e90e71efff47ee4210dd1c943949e8b8e21b9bbe590c30ba495ff0727f018edca3f1f8a1a293edb11ca6f90eb2631d2d319c3cb787dafa11bddabca72d9b99b48a16125ba3eb72301fe38a2c25e0720f42032532a4c88ce07c38527dcac3fefe44876aa3ed9bb59d29466d95ab19982878fe8d008e597ff86aec6e5b9997d8512c8d10222f5e9d69519559394ab15e9ee5115aa02a2cff130be499d231e4e5e5d8585af654ca3994b98fe91b52ffe67f566c302de1067d7611d2f31f1721b5ff5683f5c0a4dc653349e56a3d42db32b3f23ad383ec5ed30cf7b9e029eedaf05dca7363010a2208eb030d3780b9da27e9b55aeae1d95f503f8557423476b16eb729354d2767a30645a4a64bb3f9c7f58483ece50345292166900de169e0b00bc080bc02140bdda9ec48a13086cce480e7a1b02c373f7124912c1c0bf2e4e19ad0e2e0119fe63236b829099cff2a1f48cfa49d996e68f8cb09ad1a59ab69b3e7213d50f59c0064b493fbf9ec3636332d7dd1e658f0ce7d8e5a67950f03317f0a97bc2e9c7d8ab51e4b1db0582c4003980a0f09a59f0eb0dc0e1cff75c75fd287047588e7e52972348ac084433ea2f66091d01a3f08013bd0c57c05c5cb7e767d6749e29af7ac1005fa0ff0a81b111db925df145a5b2424c4261000efc0b8c75f4743a4662ca7486857c113ca131b9444b8ef80af9090ac5223134282fb991db331a79e7156674e09eaa30b4a490f3f06309bbdd55831bd7c08d27066074526ac8ba1b4889721e960d1038ddd8b54009596fa946eae900c623d0cc6d2080de66a4327620210d913e18f19f6a9a7852108a16ae4ea8c7580abd4d7f2dc2c254503d81002cfba3e71111e671711b18cd41a8e25f3fffa0e5e48713fa36c3e3a03322d823577f3a9d7f99a721bb0b264397910710b36bd17c8156b5ed8807367e556ee50c5b11b1eb85827f21b73528a2fc28dca8e14d3530f47e66fddf6a36962925ab0d5deaf82fbc6fbc43f147e3bfcabef19b3687716c7240f8a1ac2d5a6c5301a77b598585188acc87787f06565e3311a7527f298579d596da3de8be3ee928d82891cd45ed62c223aafcf2503f0125d1170576ac29b7e9663daab481625171552806c0ecda66547c0967612ab6cdeb5ad9bfe24b4246ebc93936a4777d132baf7494dda36d203b5e15bd9a52a57bfa0bd045d8a7f37503592e077a49ae79acfb06a9cda6ca2a86fe6e2199152e1a93535ed81513d4e28f7e61c9bcd435970ee380d2e7a647d128883cfc57677d08cb379781ba5082299e903b519b04b1ad4c9aeba5318a0ee43eff0ea7d58c085f95810061d09985bb9c25c4d64340d29d98d7fa7661d44f707ab283b03fb638783d8f56f7c406419d2d7967845711233f9cd8a5d1e47f1af26cc4f8760f513cd3f400ca6b249f0bcdc272d8ff2666c0bb5a9462d1060c3727686e8d8b46f4920556a56193559960729d3d014dee3972a53f8309a51473b2510a5584b00fa76c98680e696ac13ba9b0eb93da8ee0e252a741551857a5a33aa898ecb574cad17b67bb73e39c80cfcc4a03c2253d951d320f2c8cc9f8b390b36e16753a025b79a4e640656f5a9b997a75dbeea8fdb7eb92f8c086f30ef5493c3dfc95e8bd808c654cfb01ba86d3a99162a5beaa28eefc3c91f62ddfaf2cdfcf6a13abf6986b2da40eb1c75ab8b1c7f2cc1d1ff51ee3d2f6e59acb8f5973f39db2b7dea37b53c873e0ba8dc2dc2223d0f510354e170a1f1f12542823cf30ce0c1981aae499409c029930c7221ba6c73ec7f29d0680825f4ce571faa6ed020ad93e8ed94c1c6eabc4dd77cf52256e7f442d995b4c89f38935c5a07c2fab604a51f5c96ca69d088d9516db142450b66e7da8838d4e0b58aa575d77e09198467af8aab7f0b4f695b565667417a8ef3c194c606ff0257dd33ce960e3cebfa81c779d8b433e03a7fd6ece48a31e9890f8c8b965368b151a5b35c49dde9ccc3d0225bd65af1dbff1a166b29c96517c29e6358cd482cc27908e8b1cfe78d1f8951333ed0447d81c0a1a9c45a33704b3f2d81e6ce914c0563510e16159a2dff8169c782b664266e419b22829540a5092341f60f9440af3714dc54e0690b64199990f1a9e6259f543c9728a8f2410a14dcda55248cd12f478e4acd5b12894f8b429c72400bd58f54eb8b735acc6a6578a2d930b19bfd73dad5d4cc8872866c913b9630c2356dff9407b5c53833a54040ff9e8f509bb50da4cfda616090cd7f2bf8c8b71fb4abb0c4df448818d69c6fff56c861d716de8a1d23cce129c307f66d22472760c45b30a7bd8e4da96cade20e4fc1315e7d1921d8dfdd688c5452585a1aa24e8217d238e637f41fb89ebea6005c6b8cabd888ad299f3b04589f1ee7bfe56dfb92e15757dccd9f87f667c76b599588bfa4c03ed61fa2001bcdabe8d2da50d3073b109b934ea545b1ab4cff87a3bdc1dcdf413c8895fb9f1cd5e3884cf225b713e421e6bc5d757298b97eeace8c4a3206e13f5350a754b39976abfdde9c20e21d3c071ab9b86c1e215e5322459612f0c76bd02dd6c6b609d8c2f29c8ea000635994b6407aaf9d8ecff404255396621b1942c4d07a0ae50aad9ec9f04186d2ee590e53f252c7a231253676aea646635f04eb0f3647fd9a0dfd45440388ad0c749564922c772de7da91517e3756b0026b6a69e3de6abf060307ec9340ee1b256c73f068fe46154534e15dfcbe74709f196646aef4d1a080dd6ae2d50da20360b815f83e4be3ee0c2c46bc6664acf4a9d43f3644292f5d795d9824fedefaf7c94af892955d29c10ad5c8be848900c39bfe5baecd2c06a600982f754deaf98da8982ac518ca8c58447f35d3443994388ad899d324bce5ca5bb683118eff00579e9888c7ad701f463a5cf9940f38c8bdc7f9a801f6888905417f93e0241ad8953ad211ad527b4f5098724af4c3ff2bbf5a29d99919eb74e7e5d3d37dc4e6052cc5bd4d953321bcc0553f5a0ef0c67e4db137c9909152efab16e92b0fa91f8417fa569613cf21d99cfb1b07210ec1c71aed419c09a50bfc692fdd9921952d2d2aa2804da148506a534bfdc70f3c91a43d6bf0dc05b32f49436bcad772f46e0a6f1ee45fb6a8aab2e0728e313e9d1f75c6f36333208f2d725f11a48646df647802da095220ecaf7d3beb222f9f452eea713fc7d8705af08300af125fd550cbcdcdfe38d8b887a4e0f2bbd7e93fa06ce0ca39cd3e4e697dda38e45a899a8697c4d97e62df400ced95702157c243e4ff1f54d55cbad0bb9a7738daf699f094c4f962fa6933139e4069a4b758634b078e597feb79ac4effca72d157b174a1c48ee5b8edb3e8a01857275a29d7b9c336e4912b300a72e2c30e10ec53bcd8fad8a425a72a976ad1d5ebc9d8e2941796e6b93dd29fc1cdbf7a9bd6c1fd5dc6a103a4ec5c0bd33a7826db6e874073193587c86c58d336cd9da68e752a5890f6384400e006ace8c98f6533c6873cb38fb1f346ec200ecafd2b547c7a687546c7c4f6669637fb63add5ce0607cab598b3f3132ddecc93f1b7d55ab227ae065e4178787c1ad0a2238e3cbd578c101cbabc0c1cb61f4645134ee3d6364925414b5c77eeae0beeacba0aeaa52a269940158e6b46c3a42f413a676aba9ecd1155adf9234dc88cedf0d08ebe34c07bb4015f725807e5a6227afded87acc37039c9dcb16e3cc8ab6491bcd6461df8702fc6b0b59acb7e81d363bde699e5a493563aad2940bf9edda31020379ce019abc118a24cf58de42afc3d46363e8e55f9637374cce457dd300fe12ed879f0d844edcb4131c5acf54b81b4174a0c63cd4b7cb42ea21565f4b1b27b7ec55869bee755ab5b04ab005f634c3e443d08db585480ac2b42e02f0c3d5dd44a921f51fbe116bfce1aca38b281ef4b8b37e4881c13b542e39009aabff623bcb68dec3cb0728999f9dbada8c1444a11c080a115f801d35e296a18c44720a741c36086eec154f1eeea72870f0f2dc8e694e9eb429346329e0bcd9db0fd8ea2e37e153d50bc4be6402cd4f2954da6aeafa06203b4210f427d57a83d1ccea86ab7a2c6472fafac383e6db22ef0093c8c41634a7c1f18138cded8396da0d5d3044a5051480f8c4be56095ba23c010ca1dfd1884b206432f0432949b80cbb63d8d20ce5669fd57a237f6569193ebca373dfa7be632a947e1a91a030c0a7e0bdd074c5f36ff95fe64ecfc205d93358647ae23681b8bf96ea589b134db63c793520a3eb8b12554be2a6dc4fdafcdfc73d86ba17dbdb45c8da1bbae34ae9b57fe8abda978f10e5ea9e60751e4a034af8eccd0419e197d3d63c6e5d7c096e14f95894a990a35377ec261c14e62bafa2a8c3c4cc71254063ecfb882abeb5ce3b3d8a0f47f63d4f67e392d7b3ffa2b9b0394162230ce72041ce54fd2260766c94fa46c8a081f6a0ce5a80bd11edfc200d2d614e6a0c8ff5505d608a6af664787b5740142d0585c414c03dd73826cc6f6ae6da87b3be0c87fed949636c569b06e9bd9b5dea27989180cd8c0740f74b22e3fe371ab2d8cece33139b681273b6cac93b987c8ceb027528bf79b2499be0d50bef40c3ae806c19b6c5b3924abbc6d70c02beb82cd6cf30ca6ab1271586795258f4f8e75e2ddb70016f75a897b325583333c95a064b305a8d19a21b6a0e77b260f3c63cfb61eb4fc14d4783a7e6f50a2feddbb13507d10eee2b779cd7151b4bc2575714e160c7597a569045adda2b6f5426fdfb919d48786135d532cec7de82d8362660a39a8828f995cffcbc2b319cdf3b1e0034bb41af385644e4cc3cd08b5b013928d4a19b875773196b38c9a22da9e690e49203c04598a1cc0a7696df7ab54c3c9baa79cbf63997178c49db694b7992876c3b70b9ee4550ee1a3238c45ed64bca590ae101735d3a8ab11d15cb2622e9c0bd0e7a996f266949684cd4173471d0d19ac64b96d23ea3862d389b3ee5a3a93b498b9eae1afb75581c638d151f3180f8c9c122df6b8b62a3085fefd258caa4f644f1ae9d14ae669952afc6f682596f8b516a98de87d63f010d0c274b195be5ed9c8884e0fb47b610653e5597949f43b9f2cec7edadbcd88cb67b4b0ba108c944d005a66ecb705b5f96d026bfa3524a1d263d65c03878994591aab0fbf69a240fb1d98f06218af8a74ec4ae4c65b92077ff52b869db320388ca2db9d86875e70be0f23295f297056a522274da8310ee5f30d24a9e5e6d47deea88c712b46d08e0e132364554294655fc8e027f7ccec2cc08ba0f27f8b3df03115fab4220d1e5d900c1ffaac3d3b717efbb227f7bb0a1f254d54978a0ca3cda50310befcb05ac9ac9c1f34dd75dd59dc8d65389b92063baded2fcb88bb2e478fba2e07e08cfcf5a9d5c3f29e7616e9c2838917926236d6c1833cc44e39dc769b248ccdf3c10e1db25bbd41fd368115b41b77880eafa13f6422274e4322c5f0b377a79fff34b97e466635d9a6cfa65ce1c486646cc71b39325cfcb32bf170fe2939880e6a3add07baad8322432f9fb34d6ae6019f8287ea7a75893f9c68e37ebaaa6e36d194d5fb435bed5b6199d7555c2b365757108eac8b6b990ef3d7519861f57120857cf27f21c47b7484d6f401761aee47927ce2f36a58b1b5105754c8f3786fbd9249a3419fe590a1a2d6b7e4389af4a4ce83d3f7156b4591b732e566b299507ce2ca799447aa5233be49badca8c9ac2c7f5fbc472255cf4b852655b8fda8b6ba5f537c982067ae6346e4318f8f2925cc03b50e93af8a2576132fd82a0dec63f9f1a311241e218bba0d21a5882e05c0d28eb5fd4617b4601f0268de664a5d1b4793fce0cc516047dad15ac3ed494ee6a43bba1ab262a3e86fd1efb2e07119aed2e4338a1406d37894a28532accc69458c0ce680dd0c83e6043ed1c70d4ebf90609cabe5295c756bcf0b7c5437c7a6e19182805d24122005330623514edd4661fb503e7bf2317331a853feeac88d0dd2974bb72eb374b6f67e62ab9f19ac433b94e940ca248c55084fbc25a2743210dd1823cfd2285875d244570f154890d7b4032640ca7ba3d4eeec13b8afcbe95cd1d636b0c956846f5f4bae7f2db12559a035e09ac9e047724a8f4c05da4bd1eb66cb8a742e4094889f40d112626fa3bd97b960ec51f1233d78e64a2502b34e399ab9db931e09aff99cf5493b5aff0fa564d4ecd43edb20b8854616a975e022ee00724746b083f6524a673bc0f1c506d7f1e66ab4d4dc4d22a423667a8a92e69262917d521786292c66064aa98d68fcd21f14b54f95acee96d2a01506f01e69936417f45bb72a90d001669f0b6ab9dc6cea8f6c316203b37b935219603ef9cd4d180b7048e0c3b76a44245f6e925a14e257602a7a9c50532c0d05c51b7a8b901581b846fd3031596ca959d71d540b45b7c95defe10eb14ad7a24813bd12e0f7eb3c362871d8b69a9dbab9e62113d1561ceedfdb61b43c04193075dd871da10b0178f85083c384383b2e59187471fa0acd1c18d4b5093c6c6b37db8dde7f97cccbf3c52833d7cbd7dcca20fc9ca904e0b8e47bae619341bccdcdf76cd64b7cc46c37ea4df4ad2ea6ec20f447dbb8a2693346237a8908fa4e6693e460610d29e682a884158e7a59a200bbd936b21b1752fcebf509407365a2dbd2cfb82a9fde83b3828181976e6c95f527fbb3aa8164724b2c4e38a934148fb1c81ec0d5cffb5242e2a333d86568541816d1b1ea5efeeef3f3a6114eb489d21bbf582f25e0ea63535d3c1220831ca204a39beef6a433c622f0b40941fe04219d7db11fe620dde4157f1b3de4b4dc090b31d663bc5cbad6db5715fb9b79abddd9d59936a07f342401071611f054344475ba64475e4c0ce323cc2d9543942bc787ac0183a1456dbeaac1c9c61d1b79f347bf8ee8b7b496beaed9f8da647f7ad4ac823e57ed4f28a2dffd52bc495b07617e12fdb255a8508d7f7c63151e193f7db967b8300373d2d22e3a5d859a080949fae2ddcc993cbc4ff8368b9f77865545bb79a3f3c334fd7d7c32ff5d9ce93fd0c08f8e9b477c024ea72829b7383455732c69e1fbdc9b4efc353f0380878be123a68aa05a5de40df6edd6b7de3233299f9694ee7f092eeb4cbfa3e1b4ae2824fdb3249158af8db8215817953ff77473e16148a7bbd14fc8f8a740589a399057d147831d2a466de889748d767a5ac6c7a3840f28f632b5bd3b6686538323e40f65360c9466a37ba9e8ab8d66dc59885d76c59a165cea4f396c3ee3c75799592b6d9f7e18155ae34ce94cae0575056a1dc128fa6a0345a009217ba544f9161474eb3b118bcb7a90d36d3fa0b6354eaee6998154f78ae6afce3d9119d8f55dfd968abf8c76c6a56ea0d6c550e5b6051f4223690c2ed4cf42642771dbf9b996768d9bc785996b8440b51367468b1da869f623eacc5577a3f31592ffd6922e6a71c3b2ff46108c38b3ef235bb8da8a95177bfa74a2312d56686be347df94ca9ac3137d05427a21eedf512d47def6e3decfba363183ef2ad9724f5b9d52882b759bfc93ff9481311503035bb2e6a3b349249d9f572317e830e6b5dab847de4f37421a94d54449a444f5238f208489935707e5936a86e2d41fb196443cdc89e48bbe16e5f5dd7bb7d6342629d658995213f5bd3475ea571d63ca11bfce002b7dc42c8a9369fd0cb0b3c4838af7a0aaaff2951c4effa1bacec5be77e5a8e4ecbab0ed6568c94165ddf7d5bdd45492fd530b75fe1015806369df80964db94d6d60fb703cc0bd3a60a57c8e30a40f33f27060cde806e5174b79c2f565fa0f2e29009fd64ac80b72cb093143ca739b7708cab284d6e1c6e50cdc65fbcce9cbec79c65da0400cb0e7f0585875796ccfe724814116975f2322e31fde549452d7c760ee29effc6ee4ea5ce311962f87106d1fefd434393923a0de401d7a4ec666c81ac97e673320aa700f3ace79368b6a00711d746f7baaddd8008f43327d525be00fb211982f119f2c4c0df0df43d4ca9d5176bc045d81d4423085d64392d698aa6760ebaad110c40f9518b8af7f528f9533cfc321df20720fbf9ee017cbebe4cddf99a8f9ac9996aca27150102c1e331eb2ab59bfe960a1e4771a1e79af550ed37f961a2bd411e9d4183ebcdde203857ccc99734b872c8c95860c9bca9056425f0c4f2d894ea89493a494c18c241232d3afc817b3c90f478d28986487d2e32318146471cf26c797e1ba011ff9aa9d6ef34f99892abd7b6821b6d59d737a59cef86a51fe0647f1ca43cca179bc0baa039647c786a7079c485efd5a34a6f72c2ab050bdaca4e9531a33341f6d578dde808952e6a0c2728af98524173764b24a8031fab791a97912c0d9f1ddb14ad331e24a713ec8354191edcd25248d6dfaa05d4b091554b286331813fe310b6eeb29eb4749897cea3b762f8c350b36e6b93f3ccc3bbd8fe2768c37735f9881056ee5a2e9c2c1d7439bbe257a11c3e904002a793849f102a8a9c2669cbc1dfb4ca55dcfba8827ce87a0588eb5188aeda3347fd5a103182d9188a1f51554ad75cd9e5a6373bb9a39d87978a54ff40d5f1d184d0daa72388418edf28b6cb2a2c6978e31c3786621915954f68f9917fdcbb5a1a58f1edfaa4151b2c73b7a29060ab0d3b1a05fabd1bc146f276fa49c5e616f5bf87629d22dc97f20a025e10f5e4d6d3d5bdf7681b3ce80ebbc4c160a84c66bc348cbe9473ac8d2d74efebd98013820e9d3ebed48e635ad9c18890e79060e3a843db59bbd33e73b63580f04ddee541a53173d53cac500f662845f813e34a278da4487d34571a5b271b03ba476a75f0d635ef87c33bc0497e78ccc39750c6b87ff4ea446b8c06caa943fdaa14cc6cb7fc2df0277fc5efbb506de64271f0c2db7c0ae36d45347c7f482cfd79ec008f231ad25c56ea89210691d14e258da5eb44edfbe313297cdbe3f3cbe47909083117d3f958622c25447679a32b6ac163fff85b18dd943b2edcec94c4b20eadc1ca791125498be52b597c82c847b7cbfd07881fc16026dee13d7643313790238c1c4f4bb3523ab2cc2a3ee840874c3ead183ea19f26fbb9eab7b7ff7a550ac6e3225c6eb5bb83ed4a7abd00cf27296837dd0df7ac904f2761c539f7c2d1a4fea96c4a88ec3dd5f9924317b85696f45c32fd28128bef4479c596acfd3e292e297b97bd2dbb119597004af79400a81495886bf79bf2c67eb0a8ff2770ddb2bdc5edd8d91d7edeacf5108ae5e38ae297299009c4f28e7abdfb31f5aa039695dfa19f2310a1e982df82baf456c3fa57668c49800cd377ae59ab1457bf1f2844383878a2ea355a3b2d464b6f01fa059cf2d75f3ea435cf1e5804c58cf00c798344707599472e1ed6751a98d43da7a8db723047eeb48b72eaa325f13956e17fa56424db28bf09a16eaed75894a657c8aaf7c28f03409921a6f62933463ca015788bf65b6fe9382c24912eb46fa7ca2e6e5b894743f95d9c7d164ea09494b0cfbd8bbe10f26e8cbbb48cfcf7c64c0401db947869bd4ef71881f1a8745c13385edc19d0135a56e45ca59b83a4b08f11e9cee136de5614c39893bfbfd7ee965550834574eea111ed2e62dafce4d95e8aa952d93a7fef937158f28a1f9e433f11f791ecc0e55d92a8b5006b3ba79cbbf13370da687f3e6432f4001bd88141f11f4f2d09c60833ad0ff002af6b163598245e0b53411221800017ccd5aba35dde01514a4744e29eebb26945d384e8d2263f5c0440f4722485d827730c228015c0c7078b4348df23aa185d6af6ee24859e034eaac1861d1300641bc782a50c26bf45c153df12d9a3a37cded55cc67d0c8348b0151c3967a9ae3294d7651239c31e8e5b73c8ba3bcefc7f4bbd899247c0e1caede692cd6b57fd7f7b0f4e7d4c830a86fe848894ab0a60ca339430594da534b4011ac7497f11d83d073ac05ad519b5ece0b40a077c3f2f53deda3e02f16ce68daa204b60fca82ffdfa895eeb594a0b2aea56854b79cfb4571297735802d3ba10e5ff3db420d54cad3a7c6afbd0405e3ae11e2649424ded31ab2828051a661fe23140edad113092d5a85ce337b40b377055461769b3c428a6d3ea46d695c2c3f3db1d09b496a32fba72693444faf26f24f61d38b300e30054b2703a1e0aab5e6e352ae7fce7fe493d504cdf43b3c4dd8cfee6c423813e761b9e7bab81c64c9651a2405815985ec90f0519d15d37236dd3ac4a5a893421b953dffeabdb378ae86d14078994fda395d852dc1deb98234ca3d11edd8e6b3b0d0a1beae6d1a2d83f300791b06c144b69379fdc6687d3d87870beafe34ccfa07c36e58411bf3678b89500e5b9cd7a2bf576d7a94b7dc3bfdc202c964b43fca17669f24d70b463d012a08a63d39c816522eb933e0c1773c4c90ab88cbac58ccf3d755023908b72fce8ba97e898a966f69b1f3e645a5b2ff26f20dd9ce747089185f38010db2e1345e7c26efc7262aef3436c45bfde3817d3f9548e8c2300ac785853956e3ff77eed85e506ff1b3373d1be93ed883077f1ef0d67308f15b0760172dc63be45e095fc2337a28cbc8b2e3887e2328ce2156f56cd91747f410d0ab3bc03dc01894c96cc8e4e1e6231eea0c84670dbdb4f38d164f7b7c1146cebbd262fc1de45dc596b3775a86840eddb77d02ab04a7487a7849835f7d57fa0b32789f441a4e3357d2d22813b425172b879478d7fcc6b1557b57fc7a3f027ab1da154023f6c4fc5ce915940a302b48453be5cc9bce07bc99625f11701d1358bcf45906eedc7099eead67229a6bd0435da1739e8ee55aef06a5dd5a834cae0dcd79abfc20667bcbc2ac30e6ddb96deab0f0a8a358e5deb52fd83c5efa9d9d3adacf9a554c2d6a11cd1228aad3be939ea06e9c1f08670578a18139c43d15a775799ec99b2462d9b78ffd50ee2bc9de620e629dfbe501e2d517cf1e9321ea83bd08dc7365096e062b5223d9f6720d2e0ebcce6f18cc506a1fcdcce8d968d7c8d2b92c0937fc1b91403e94b994b03869e2fee3acf181a074241de4eac99aab6e43582ae2a4af02048123417de996253469551a7639691e60f60a5b1cbf25cc84b3887fe7bd6676456724669f7bba6c3b119322fc0763a16546dedd1794a78a0cbc112d10759462a5e44e703c7946e86372eead9b60c516297faf2955c62a13862642eb9ba4dc0b55961cb751de23e7d1bfa172fa9759db0fc1d0b60d211ee698c015022d91964dac7cba9d8409b86a9049ab137d8b428a09d88879e7f071deff95583e040c70ed1b769b706fd545bf0b6f1c818319244357b8ff7d9e10446e475c5210cb4d3712571bbbc87c456ebfdb4c4563f37e533f968893e920a45e0fa100198432b4e7794b78fa3187b64044012e676717860ad7125873458d3beff44ecbaec0598f4972532d2bdf166a5bebce053bfff9e4190d0b8f6044cc5b03474fadfdee6ecef1821b8a0d24658eb8588882ecaf7f9bd01b074a0dee3499335bfd0fd540231e0f7e680c5de248358c10920256029ffdf392338bd46b004d6d4bb81e43665177bc4ac255f7a1136a76f7d761f577ef8426ce879e22fc3bb3d2e3b63c4f9e4be1f99e07ced841534e93d4e1f306c1a023a425a064593c1027c8619772ebed657290bb867571d6da0aa708e608447b6c668d403dd8d557c164a09c18037e62d3e3f63b035bce290b0f4a01cf799584bf12a0bc26b4ce61e7e8a5818313e697465e585a471377a3b7701c3b431bc5feeccd0b1133d290139ee7e94856a2097959fc41575cb2877ac2fddbd9980ce6f9837015edf2f722950cd9876b3d2a366e718549a3526dda21baf37fb32e3ac54febb17e555464f2655122c73d28d0ec9d2009f564c8b7d802d887338e33a2833e320aadd8dc25e855cbe07deb1a4a62ce9d76f5b6448d4cb571274cf273a6b1126c515641caa09b892c4005fb080313f38f8a459d5e5d27c3904371254d5af8f2c0714ebed3f8bace143e1d77adf45318885072ac30324aef0bc798edfa8769a3d566a618b8de88950cccd7832ebcc82cd1fea27849b9bea7770c34869a2303c69b35d5312edfa71eeabd67e88c431e3ad4efc5df18787f9b961915330caefa82f5754e8fca5df4b6c5f75f166eedf5e2a175e5c5372bc97be7c5fab638ef68d4babae66e4f619eb126855bc2b66610d4caede98e87e637e0e2ea146073d57038b7c88d1de191526b85c5e34527af81b5fec462f3d0cfea362de9365f132f0558af64de6071e24d41584cc72b1701bd40c3a35de4663d21d6096f114243f9b7825ee1358ff4e6cde1d821156f60d40dd12dc741a1d6a445e7cb12aa1852e6eeda3c20116262a1fe63aacaf0764802f05d02361075cbcb3c5d7fbe603be048399cecfb773ed3763c3a76f3cc31c9baa3a1bed22197be47dca91af7e7ddcb4751c77a60c0d1f8788759aad5338321197264520ba7105cd2dcf1dd6062df7b40a21e1a4ea70aa940969273002047eb6ab0d08b482f983c538cb2df45ee64bf32e67f6487b53fdfd9bfa8a5765d5a6be93f9107d8fd0fcf2c0a7f7dd6fb740ee01946046e28077b644c379de55bdc0e60ad7c30cdd1df92d916bd93b4fec294c08c43519f2c306d2772df971060d83c2aec2670c2c6ff6eff2543b933d18b0eb6f07beef079195a9718e522f095577454b4e97e693db1008d416e3f127b6b40ff89dbce53da7320f979ce68f266522f7eab13822c2f57c8d0d71302ddf33275f6f7b70fb10e07851f2fe2fcd2e1460e38a4fbbcfa207cda93a7359eec5045fa9153a697104def89c95671efe4a9147bed89f17f3127d42b486547a196a4ddc965f387745da396ddeb6745e704c6ef4874f429125a34a8dd2426f03340ba187b491c951ebc8bf9afa0e885eda7a7a753e9f8b950d5c773da785a081a83da7d2144f7ab44f7634fa782954b01002ceb0bc362f2d513f196efbd350f87d09389bde01038306d24ab2770a0d5999bb91b1ba4dc73b4a07fe2f3122ac5f26692981d7f93584447e98244d954aa048b9c0c96553f1f67fa83bbf73130af472667933238bc5a6ec03acfb4459a19e1bedc6a69df33cc2450e2eccdf7c7812f3a68a4904b909ea75b6af1a3390144446de023613976babe28c4db34b89c4c3986a0b2d5ba7cfa891d40804fdca5d8662b8a922ed3793cb3326dc6b30dce212d433f01d726875b759bc57a78c401f7d996bebbb6b10a56eb3b152f5123dcaf9bfaf175550383abc113c9af45ff72e225580d1131d8890a8d6107530beeddc7944acaf1a4a35b92a0c5ae4f2268b17ef3bd65e5608942045ef64b517274404755d0b2a68fa9328f043c4a83563da0f44576e21e54e207b01e817afabf91e5b62e1dc18078c779b7edfc76648cd61c80ed83ec5ba817e44209f089510e384564326d19fab9d4fce521cf7603f24a757aee15d043d1c7a6d969163b2c3ab190f4537e88fd5c1c74f5c10a856c809ee139da06350b724d343ca9ee2c0326af6a09042849ce2722264a96484c18633a148502d7f5b12c1936289ff0651d5c343cfb2946a2e43bd1e3c2a485d091f01e7d87b64e6c79bd9c8248cbec8bfc91bca8a3e79d9f4c6e9fc59b968c6a1eb133aa2fd482bdb31feeec088b03d4677482d640853b1ffdf1fdd01c1f23fe3e86528b1c14729c85a2a473b5b95d89ae25a68863c69a9233542869e3830136831b193ab8a46ab8762e98f2cde532da5fed860a0022cdb90669facae2a7879b6176aabdb0ab16dc6734e56a94455b9c6af3389ef80688936896ce68163926c63ec4f7ebc250b98ad86bd31de91e4ab056d1f4aad52943b0f366a1b6f571122d8e6a5f4902f60d237f3ca2c8f24d2c2555b3b4333d1aabfbf0db7ee62b746c93d64423a69025630360cc8227ece16b8c4a0aeb93d6c39c931b16b8df76b0743178a4f0557bf2f13278d6ad7d35f3a04454cbbb13a7e3b10e0577385ddb011a822f910b416175a98737a382781ed413aae7dc11074f5e61ad1c78b632ae55573c688456f35d015049e0b76b805534a8fa4d9716534508a2f93d358362f6c511b35fc344cfca648d277af8acdcffd305f1c657577dd9a5e6b88cdf8f5d3eeadfffbd07e8bdd2b2cde656f9821750031215d386d992b06383c004966806681d6214ddb3e9ff5c65074c4f857129a37a128cbe392d626aabfab8c59a24c1e110c685e4029aa561b9af3b44fb8ad3e143936a43279f2ffb2bd11ac8b2709eac6942c650eb09177647564ea3785e1be585782fedac74b1672824f738ae0b9726c6013d5220525b0fe42c64df2c154eca4d61d9fb628dc3592683a83d935dbf1a161eba94cc58c44859c2f6c50dbc29ef704ba2f1ebcc51b9d7cc6f2030dfeeff32f2ec89104c2405548e6a13527938199d5593daa7bceb3524802c821bb42fdba07c56e70f1a5baa3a0eaff161d738befb0825bec4f27d4de2803f25ed0ad0a8b552331b8f5d8b829ca645531b354de1e47e64e8db9e5571257dbf1ce83957c5bc260da95d9e05c27ea01b23fd48885f45bb70162162a54142bfda142f977eb141234ed52b58466ae324799635e97084db2a832cf2a1a0e13e4b6c8f0a2d1305c5072ba18f99610785f5ebfe034a6d54646132c0a058e4b7f61850f1b09944bf96d459b0747748b42e4e380908b9e031d83e46013dc140366928cc61ff341929a1501fd0401f8126b60fe234153b8b80612a7c49d9b5a44325fe3fd35a3ddba1221b28face11770fcb6e49d13091050b941ca7f81eb3884a9bbab35d6c1a688111216d73e55745aa40efb68d38ea65b5a6ac7d409066ee61df17ce08d60951a05068144e969bee487574c86195b7dd991672848ca711f482b0f14029cf5c3aa7032bde076e8a6d99b1c632b96ae67813709150a36a635156689a7f54f8c38eb55ebc1614690e7ab8f7683b3d90bf24dfd1991729ad795493ef27746b22ebef196972660811cee3fc3a10f175c8adc1539eba97e335aafd43afb6c51dad30066a71ced95f10d9c1a0de83602c67a77a0b905a7e1be33d384c30932e7defedfe5d70ecca4cf91af35e74b5a52724407a6312e8661822bd38af755adb150c10cd34da0a98b620567a68787e582b75760dddb3b8ad50a4d698c0dd0cbf416580f3bf56ae10c021855ec7d6883e7aabcd9709204c01e45be73dbbe249bf2a058679c85b4aea120dceef77a128922a318fe9a9abc71d9e439940f9264db9aa6c7ed88a441c7d4574224c76fe8fe9206d1acf1fe082e9af3384f0f9048a69a318fa0412e212552e6e8cf5bd2cb17f42e80f88505216080c5248e02389c08109be60fa1f4477d5319988a2297941e097859c2969d4993c59795bfa3171ff2cf7b4b5f1ca23430413f5ee1104676fb52a13fb98e8a2832edfbacb4690674581ee7a10ee2e06c05c0cc8bb3361f36afd3b7836dc577c01123056bab3c316fbf03415f7ef767f05dc26f05d96efa432999b06e7368151ae5eac0c91133d5628dfa6c111422bfbd2ef4fcdbf70c2a00d3a90335884f71533ff3069ecea89c3bac970ea331102bbbe8ad6d051e6cf9ef4e065b57fad68e97cb55e2cc1e1fe2547151fb764de808ed70dc6e8b7e417f5cc9ca5c08a05e247984fb7148521119b119102f61214ae867420201968e555e188134f6502b2ce2040ac31f118f349d422bf7b1ce8739a12f4230f6f16bdd2e6a13d537fbc15269df0c22d1b01173f5bdd12c4441835d327613a3f6746b4a46570cbf30108855261d6c3e5aff44f5c1e47de3504fdc4587a03e6a65549db034ac0fd1a8cfca6d239723af3e9476cac50bb9cf28ea6270b98a2678276edc0a03b48e1cb5bf9429bb15cec167b601d8f1a7917f4922f1128295290f36c936906dd4aaf73e3b27de3e5baacd93cddb90e0ee1d4c3ba2dcf3a4a3824883bdad43be6acd5280ed02f32484da089a000522dfb7e1d2e7d98005e4bd3ceac4a9b6e036e46c0a4dac6687f1703cb1edd506d0bc5e09950c5a0153ab2a6cd0c07952447f4694431021708f5975c4d9ed20b6ced4431d2d24ad159199e9ded8659debb8354185b0801df6ddbecc1e4629af641fc1cf8f20f1e987d9ac8f9b0563274693539feb7eaaddf765ec61826dc109f9acdbc01cbfe1a99c2fc78083fe447e2b442422d6791f0b6e1bf5444f2635458b8abbe31341ca54df2094e43ef6181f347588509015848750f8de20c4140b9e77dabc3f4c065470cdc2fa375de10f24e46afbac7902f9cafe0edadfdec05971ef23689d54dfa0491ca9b585ec46fa8f0e3b0caf6d80711f80d88ad085fc1d0f1b6829fd768c938b4424427116519513931cdf0eac1e022af59c3e1616c74439a1006677f7516169a2b8252bdfaafc3ffdc2e9129cddbc34ebefd1b765e07abe042a5dfb0235fcbde619f0e47a7579bdf7538d56be99240edc48e48e33a45dc9a9006ca9327243d004bd149416a5667a130c9f5317105964c2140e585fb8a4b09a780aa470c3a2b4a09e2b754f544467703f09ea073c7d7cd9db473bf54e12d24265ff7db8f239794587727e89c4d4efee1e5c9b2676d5c96b2cb547f00a0857f5c83db86d7c2182f3744a0bc75cf6d4865927c6260c9c3339896296c8fab7d95f29e4c122572c52a609c4365d65b1f7fd10ba30b7df5e377e351331620cba3096ce80f36865222a360d3b48beb247fe0bb1ee3104c8981d5fe4856cb2e4ec5447db24128b8f87cf1dc03db18cdd550d2b7912150079e0f1b51630f11184297a75c6027db3dd6260f75a85cf669a57badc7a19bd7a12ad6cbf3b6d8f7683f18e20c037de85c1ea97257342ff773ff032a561b54e8a39afd8b99efb4a9ca7699719bf2b0076d9a5100490e6ffbee4e7ee14a43e0fcf18f8a351d115fc1f66fc94b2ddfaf3e73090314a7d7371bf6a8e69b5332b38cc7af5874e8aa48d50b861cfc4ddfb7d2403a78dc74c5018ccddf3466a33497b4b7ddeacdc85d4d74b7c29497e137af6f14eb7fef65ebeae42fe2ab291d0d45dcf38725e05f4aa8ff60409d7a742263c12db279e6087809e922f3da7e7be1e37fe57771566b9ec1ff163475e1c730c6c8236f2f981259e64ff45c89a29aca7314980c5d1b05a7602b1d82a564d1d5d265687fb524d8ded99e827767f62d1b8e6c43084a69938770c2573f656f79efdd65b37a60fd17152e535628c1748238fa6de42697e03a1bee65e9355a69c5a7718a31390ca80db920da5dc759113661087cc90aaa1ff355c431db3eeb8eeef245ce41d9d8afce5c7b43a3838069fcbb1f0ac6755743267e785128b861dd6bc0cd3bcac88e5a453e47dfc2b7d4d2641b468714f1ff8c2812ae068bc24703f6e04126706c3ad2f5de499443fcc7a04fc5e4045c5d2a37f973900c1451399e2a9c60115ca6b2b61d22ff38335efeb01db83375f8d150b0b3f942108e961148fccd37349d54dcead3ee6b1cd20f14e7936eca15d3b0b2498f95e28bcab83a5b4a1f7150ff165e57003d0bb20ac8ea586601ae4aa21b41561c3c5c9e575378c52b66fd9b91a9d1d47a779e06b1f7e6145a02e3698dc5899048efa3ea6e2bc3bd703dbb2b51190ae4bba8de8453bb2f707132490255879ed1581059e12b80742fce5217c4dca91ee748d38b5e6f6d67a2d0f315e0e1eb5f3b76cc1d5881bf0924b0d127bdc7eba2c3f8b0ab5d2404826d0d9bd4e33400741f82ae47710713a4fe2b4b020e973380d5b3548269e54df9140800b1db06a942ea23225b45126c6b2b84396fe2807a4be9e28e078468c397d02f3c14b97e8906c0482097f9f083997c9bbde0bd9f424b2221534f7b47786eb698a8c4afab04b46194936e654360a2e466fd5f6d7f45845aad41155e40399a4dcdb22c01da961ba20741e376d49853579394f2cf30c03dc808c7098c56365a471c303cd02b1460922bde3491a4f8d4ebc4c77930910e75c41d8f73ae785b76783941be96d4b84b79eada46869fe4669234ba1409a6b6d521f141dea598f6dcf1cfdb35d4d43884ff5e94715bec069fbdeb20ff7f63977cf9d3fc2ab919be8b21ead1368743c3ad2911ef54dfa61f7a7b420ae24ed3034d74f0e7f3131eac6a810a84a2ad080668321c89532d575f50e383da8d375aff193bd73b8e7183b83d12c7bd788d81e7b91cea29f3834db3b42713933ded671ab9f8762874ef2eb979acfdb7e04295be71164036e9c78ab47d4a34f485c7cca068da00a0416642b5b00447c41c18ce9c7b7c675e81badd8c66c439493253ff99063c58d070473b485f0c454a0faba9a16c7f31ddaee770a415f2f1df77cf3b0b6e292d9b1e68c4d6b6f99a593bb221ea2aab34ab61f6c3c624e259236065b2a5e4ee6e40d0975c4be610149fdc0c061ad6f75dd2ee7de584e02589324296a2c564b860bee2a926ce2280cc447cf6264ddcda7fbc6df41467c70aa7067a3b191c0c78300923e93b85cae4d485f8512a3874b9e9462dba966a8484f79cf3f8bbc649d459abf8350bfbc476e12a13382647e1697dffff97096df4aa08d91f86e33954c649042b916a5fb007980dec413831d901e175ec49000fea91aa3cf99dcc53871d1a3acc5e6ce716a80103fc73a651225d96592928df327dd4461244b0a363ba7572d4e5c20b97bff2424af86667a5c96570894b3b916e4977f336305bc18ea5abb65ed5add4a8200f728817fe2ceaacd779c9b736bc8d6166e3269f94f686118ce8cde6364f4b9e67adc22bfa1d4d179cbecbefdd104fe08351d15d772bfb42747e0a9a36f6fb0c734c03f5759ede4cb3920c0391ef91a87aaa515ea76d8ca89c9db2105aed50cdece9014a7bf61226acb0a5d915253de1432025e4d702680d7b82d4b230b380ca4c3f83fde3d71750f2cbcf331de443d6e5dab82b4d2e88e5121aa9867a6cb01c27fd683c433c78dc5ecedb9ff43c4f73cee94b8b71cd22c7eea25cf226b4734dea2d690aa6537ff4b2f823f1ca5346e33cbcf7a84e484845709474441e3af916b8d7acbbc1470455e2ee3abd1b6db37a7359229aa96e2684a841139e7d114cc7f879d3163a198463cbbc844421d0c588e821a0336892301aee6c2a463dae52739e1c1bbf364e7bcf2121b9382d8a9bd48d51940279c22150f3669072e4fd431b513f088996b2be1c2b8fc8d706e8c066e5454c944e6a19e8e93a5764869461e13da99643902fe7377850aec94ec06f480b566a8ca3d2a0ae1944cf7938983289549f90080d211ad0959e29feb68cd3cf15a67b120592e21b527a0cfd890fe77e5f5aaec0e62501fef81fff903b74be2d0c86bccbd16e932be01f50513baaca66a59a7bfa0b312c8a12e7e0994fbe703d1013b8466cf0de384c77604b1ea8e1206ca4d5679ff973312b5034db30467c4adae12e80b7714808969d2d757f4707c1dcb9fe4b6700d2396361bbf2a0013d491e663c63e14c0e93e659bc0424bc519148c744b4baa264fd8896244062e21fa36ef72d0ee1f407be24ccd5001ceebdc8a8615b2f379fbdae9a7e21c4e2590128c5eadff4572f8125a8cb1d3a2bf28dcbf1f0c232061cd78ebb7a90a7f62b7f32237d196f421c0b4eeb1e2d3bcb28eefefd2152fbc4550d8667b678f9b761d4ec2bbcbfe2902bb02859ab2dffd771b7deac7487ef7b196e64d3ab840babe09f69f7758b7d7309ac39cc1fdbfa94bd120880dcf2bfa0e0d5c9b2979d32084fdaf3a861852149425c37e88c9b9d3665a2a359e6f2fa41edbf77efbffd767a1f5721a58be90d5ecf37b0ae3ade5ae0506d6d378aba2962fc5bf5f168df38e671d101f411a0d8447bcd4aeb64a981f8c0773690da898dc371f3199a77f37a79eab996172240174c1d87f78b1d429a80c0f72e902098df035521217b09116e2b27cbd85ff94ddfbe56e7069423359eff0949a43aed4fb866e247a48bf1c1040c9065b3d7e657ecba4a62527282b2fd369b63e7cf353fe1dbe3faf9c830aaf845cc74cad56817dd315c8ed8efa32a933dd62de92878ab792b3f2e374da7c76d810162d7d45103d7f6c78fd0f140f5c4670ad99e3d6fa1e6039b94fe99b6ea93e12b3af8fb00ad813da267c93d906215c372febab0c255c1118199d7ef2fa42f1fb3e5b8f6b08a9942ac1e46be17ed09da6e81e26c87cf0c15d5dc6e5702d64da02fadd9d6e30dc9df657c4dd5c995c2bcfdee3536b635d7b2154d1de80d43f7b2dce56800b91276b183a79f4a4b3b880207ac3eef2e4458a9fd1ce70bfc5cc953c65de7b1e756730b239668652881a8d00be0a51aa40f26447827e79593d02beb54b675a5f728661a4062415de57fcfdb4e69a84e88a5a5329a13889d8b2ae434c86e30fffeb494b54a491ebf8327e5fa71bea454d820dbc1489a02152ce906b3278a3335a3c10a655dfc062cbc4bf00fdb101a21b5c7830ffa7e696de561b10cbc15f56dfcdae852c2982ac092d2964f8dd21d3a822748f9437d28bad1a25a601d919681c9718aa71ccedc76b4e7cbf22d1c9d83303c9f2324c63c79e235c386c1327263c56ab07f2523d2aac83e6fc241b78ecc43716c32b24af0ec1a4e752c7066e07e07569256d5321477f42f30c63f60bece0384c0cbf24b156d4bd4cd51468829348c0be387ab0e670582f589381884dacfdf2a318f3a2f4f624d01696d5af76bad7fe185e7d1abf6958446a05f3bbaeb3538724005541bd8d04d102c759fa2acf33bba856f879819da887ceae031e0cdac6e50dc1c6fc5d8ecba8d1a2b12b2d0ac7a4541f31755ab5481dc32f1c03060bf24a74d05d5f0e00792e9c57674c64f39a756816b5c4a54ad0e34befd70dc4c84ab3ded386b64f0bbdd8c2e636d4f74149785ccd02866e931a5fd0d92eb7cccb6db056d728bb0c15663bb8452350e87ef18eeb476ae7e244916045d19e0ff13151cdd319628a50032b8350fab744f2db463071f12fb9d2f94808570d8c0f1c6bcea63f6601c757045a9b4bd1083d0f2c1a29f9f1fca003a84c7f13421386cf4fb72db6496743d4478de9b389938f1dded1828c6cd8a169c1349731529273660f6fc7c0d1cade7f0b05428bbb034c34111088a175cd88825f879d802bff5c328e0dc32eda4d0dde25ea1273c39c0087188765844d6856f69554c6aba1e2e6894e929f2a0e36f0216863f6f5df3bebe437c149ea9c13f0b758bd2b65984c634dc220da68d0f310ff73d35358b0514932c77910d6bf55942923338bfd3011301754b43f0c211a4ca97639284a910f6d30654ba2a4fe2745de6446a671baf7647395b4436e1b38a33dde5ca814402c99998af70d77d2968ccf6b36021c20dfb3be303465fdcb34e83393219a91c7b2212af91323ee5249da14aac9ccb367b48dfdb56906ead9ddc43a986632abea6302824ffaa9e90922c7f6d1a6ac9270e1148c231a2771b807184309909d7d677505112d49865f226cc18773fd1240b25fb21e214f71b04245d1ca35b44ff9250b0c8830642dee877387207ce58651d0599f3803d8015e284f572e244036be5f06ff2341c8d17579ed8c46330cd1fd94c795a6cb1b8f6cad58af4c72154679873aa0d2a40af6fef301ea9103c083bfb1e3539f6bcd2978784b9bc0c65d8e364f214731eb748a578c97ca86ed019838eabc9dc6667f0d1105533da452a267981ba51768f1457115c61b12dab4700b90e104ed4041fc259b0718d7b6239e7475b4a79a6b8a9c3398bc51bfc218e7dbb1bcb6c030c5562d2960f54871042ab747f51d9f8c7d7ae00b2af923d8d2006ec1d8b732db9677278b8a0e00194940f46aa31af47eb011cce7702a35977d15ab912495486e660de0dedba47fd755054f32455263756fec3b5594bace575271870f28c401eb21650536048fb6e5bf293374f45d6eddb56b805edc84488a538bc841c0df066363e1c3e174c79e401bbd9ebd622e06a29dd0d8e30c593cc106c6913e26744d71c34522905579eafb52e18e09a40b04e9d383f33832c41521b7dd34d4cea024bd1d6abab11814f5df255176fbdae4b71d2033da5a7213717a5bb1aae3887bd20cfde34ffecc8ade918bc3df003fbc6a2c484e8904665daacdab032b3104355db482f5e013a5534af2ca522ba76b77b009478ce238d1865d46e13fd4d2b8acb25adede1ca95d5befbe94290c88288bc36c56ee00cb175a72fb4f2ef78f010f2efd6d9752c74962299fb139bbeeb82c78b81708df8683f585abbecb15a8ac1f3d06fee5f6419b0216e82f369488bdc6344f776987f19f389dfa846fa45c87eecacc0d1f8feafaa8504c8aae545c06d8a87864f44ce46da2c601a08c4ba27d8a17aeeab782f4ac8e7bec5e557da497e96e0f111e6f66fb97e6e87706573c55d85361d67724e9db3621c3f511e89f1fab39711563645e6add56647de60a011f157abc9175e5db01f71c75d77429d71d6ae6eb90b845ba146207a657fc0f91cb3fe024e45f4e4f65071a2f6680471171f50295f7d73a6d3d425b44e165ff2a3b9ccefb1c3728b9811b51c4a0bb8cd50dd1a60d0ae07c4e7a1a432c4e255d423dc8aba56cf295ca1507768da9564610bd5bc82bfbe065be18b8c06a42668f509c20e80fc94a1f946ac8144e94fe4b3661abf83f956d1355b897c552ca145bfca98f17c0ac5f179340867a32ceace6ac1fd979b5ef22c62a992addc33bdc938f7d6922c273fcbfc78b7924eac074053778cd32293686facb91cd61dbc203616a1f38828f429b438568c697acbf658a0b545b2fe3a08c8df36a2ae6991d5f28349e7ce2dca25e6bfbd568326d43c487e26307912b924fead5d16e8db4b6a5655da7e88e1b74e6f56d32633ca086012bf7c9d3b093afa0c18089aacf57910b18c3e0d3541ace09b18b5cfeab3a25862f1fd49a6a1691f4dc37c3f9a87243fe2f7ade23bb7677bcf58ecf0c2b5131498361c7ede987dc0cbce4af00678a69812d1e4a64f0450e84a70d3a7ca4f80375161e463bac4d67b8696b16c43148d4acfec424c43d8b1423ef517976c0fb1a6a47800b748481a2906b20dbabb8178f57991db927f38ca0b9b4b42b56d5b15923ba86a6c7a3ddb0c45d988443607522926e23a5edb334eb69f0fe169411723bf71c5bef6da9c4c07e4fbf4b8318a8aff01cbdfac68e5fa7af9699d3566cc05fc76bd519ecaf303c87b3edfc3b021442c302b0c4cc24651087efb6254159edfb817ac0b35b66be04d0f05de28516d66f7b648711d173d77b576686bb039a1311c71b847b799bec19b83e6a8f721de860b1807d5292c04d126b220c87a9d9358270f139527bbf42969899716a3ed127a269fbb2ef040e31118995d39c761bffd8d3458bdb15cdbf10a19c09256d7dfc55d5b413cc8435fc98dda6877fcb65bb59cdd20d9882ddba8ce0bada149af3ebe6972d7071f6f02b48818d6509ccfac33f042bab99430aabcef8ae841844a432480f18831cd65eb1a98c0607fdded0ed9c45a430f13b9fadb501458da4f08eb985f9bfdc66460999c28a76226b58104cf2d675763b3e4d0c7270e016cb8d0dc070bb1fb09cc333aa72b86b599e17dda70f81a3c3fd58d7ad5e4a0efff20fe66c0e5c158684698d9a52c001017ad6f99f9f1d0bbea4c1cf66e8d7e440d8ce054e714e0c9ece4a10e569ed0f17ccc45ed6f4a35d888f983cf42808046bae0dc383b8653e02f37b2097df3b82779b8f4eeaf8263f72839d9e0b0366632bdeedc20acac99275ebdd8fdd6e41efec65fa62bb39ade87ca7c90aa1095a1bad5c1a96195029db288bb9112b8fa0cbd1b2c8e45086d632e8e0542d8c65cc16ba6cd57321d3783d445d86484e1df25620f665f0d64ffa210a932edebd92b790da22801060b9a21cb2dd1339a1302314201842ce9044a958d13c1a4d2e06ff53bcb1bfc546898b0029fcad76664bb09ede61bf61bc68f0ba39570a92799419821ca0fafd5508f282d98aa7262d299c0f90d7a56fdb807a4e991eef1292d5f56c61eec03a94293b9a2fe8122684d94e19ed918a67ac342387a49ec282ce6fb982726d182ca5cc16a2a28df0fbb151efcf77bcfc1f3e1d8215ff8d082a23a100f2fa7deb58aab504b152bcb302ad474d48eaca060bb374ccb8e97e6dda41b3331a58eedb36b88cc3b41af9466f68aa86d8cd948ade654f454f1ac6d771fc8790a3ebe27d187c32020bf862efb0890655bbc109cf46f8fcc38880508a5e4e005f0640328ea14d7b81f9d9348a3b992dd2445efa7bf657068367b3350473f8726e2f675dcc0aaa322c7e5bc70fe6833e10dc179b7e5f23e9f63605ecaaced21dcc7b7f773f49fc2b3bc5f31c9f8e3121cf0c0c89fa45cb9dec16c519fffa7b6a9bd23a6eae4a8e2f7aa61ed1c6d88fa5baa563fad95d94b91da4c9709631fc75527b9d696530c57cb4e1e0dada995aa3422a7de32f078e75e167976fcb936892630a0ee7b17c1d2e0ceb58ec1512834ef34614fad35c9ab5ccebe386e28436e25c8f5fb59461d803ce7c1daf3e58a87f6d2ef69e4b2addecb4f97dfad7de2ec3fb3e46397ad79871de6fc08ae53da466d2f28548cb9c99de2bab5e09e396a467a639678f3dc2c752cde10c79d64d6d948170c068b17444ac6b104f48edd0873fef8817fa59fa656fa22de29938b0a6d3121cf43fa8beffc870a5fb345bc54469a66dc46b4de4466c73519ca2dd78c29899a3402539677227b4bf95627004b43c472ba280eae403ec5392881e5fabaad64d26f8ca79acedfaaa97957ac72ae00da3d3af4e290101f474c040b913bb66a7592ee8a18a147b750983937c9cf54bb1f6fe083acf0e7a655a46f2ae341eb3838f6a937e50778e2d97043c701f23893a903036f22e71aac34256c2594efa3bd09704c85bfc8d5d6a8d89a1d5046743275f0f880508fd42bbba2b23ac2f566a2bad430d112cef4ea61f4af6e84d7055d02939526433ba9b01a12b4dfada3e81d9864d495743f04d011c1712bb2d8b80f85bc0de426ba127dd8fd871b0eee54b2eeb8e07648dc3dd24ad7de77c586df1040d07a7854b7c28194aa9baf09ccb6b3b5669e92f911324c434dc0a764aaa88583dfe10548372b4dcd3dea019f8e238feab91248e959ef9973bb8c7ee781aa98a7251ada44adfe1b700f0c18ce575fe11eb0c03c8ceed31e9efd5b69fb5a038f064af8ab2be7e79f3aa4cb2a7674e99f64c1d1513052b525ab875843d5422c97e8e81e889aef705d5176ce40f75797afc066d03b706e83b251d7014153c939c0484c19ab09d06524460ac67825e1a7535ad28f982bac325396668fa4b879885814e9284d448f96d0db49341dad8826a9cf3a4cfa2eeaab863951357efc528e3ebf1fd78b0df88a0f8327f2445f1b94c63ad7edd2d510697a9420c20f5cc9fb3c2e18fdb9b23214eac68566ce37837250a920e640286c13f0a2c6d43a0440d41f2ad62b1bdbec486f476a913ca92e3534314452e2e0cc3d30cb8be31c0c87380c3a9b13217f33314e93883214bdc574f5e93ece9c4099d2b91b5b50d301082dd3224288235884b04d80fbba89456f60940c808be28caa31a42a2b7a714a3871e2de94306c906c03f45b0f8ce6d51d1d0c692770578968258cbf998cc80888df040a539d2ecc3b40ab16c69ec6db0454baddd0e034a7e4b429647177ba9a1842f0421fcad0b5fdac0dae0084a5e4acb0a4408d2f89dd88071d96b381e748aec36b52a34360b22e660e17c1fad8e71a4d18b5a21404bc24d09ed4a4367d586d116dbe9c12e31b41de468814659ace32880dcf2003b118d940b640c60ed0d74715c58380f41e3d02dcc53002f6f58f27bee1fc0710308205536e3bc7a7b556141568894f6979713f9c66045015a28b61ebe9790bbc03efb4eff4d2b42f126130890771874936c482695b97f144b945bcee62e8db1f6d9e5e1f5f0ee4de2e8d925a0ac8b87fe3359a9e10cd2dbc480382eb240307d87b83b91a7e5dc692025ad8a991ba00c128d5ef0ac0169392aefdd054b88583ec5495299c56d0c68dfb68c8e1456334a0d65bd6aefaee0aa1d79b9f0e8cd9d299ff4ffa70f9ff2d400910d48a9fa7fdc3f39e5f14fc0510f9cbf52153ed9b455730b467c7ad4ce70e7a8d0967ccc5b1138e2c95070d954c222414be51318c6483e65aecc874659ccc3257c44c861627a0b4c619476b889905d9727aff874b4138c700b499c260da5e2e7c8b08675f48d8036fa705772beb4e6c6cd1da73daab75e4caea26ebd8eae28b961b36748ae6f9cf0ded6508e9658793a0f8066f30badf09cbc99574812f42372a842f547d539c23c499d381766ed70744fd54dcabab12b2296e1d774615f9322d4f31f29f46e0808f0ab0d31aecb9b023ba508681c5feaf45a0365dbb560b56eb085ff7c41e9dc0ab1aa13aa1359a6f82e616213bd11120b8f176f74e0063d59723ff3f9f8e7e5d615a93b343bea801e0b7204e388f252e50d9f9d8000c9ccabdd65f29e5b5243dd60091448cf201e33498e25fd5642437aea6a1227cbaf2c5911f721ef132784aa4c905db036e49a0ffcad887784cd744b5cb076b45f335ae51e0457d84a1691c2cdc01592ace27b6b2fa175b4c9b30227e09a0e8a934a30b902b9053d2d3d8b8b9d03749c77bccdf88c84e9fb0e87cfa0e11038534c34db4ccd3f4c9c9d3ded1c9bd7f5e5dc19d8f6e736dd9107754599486288208bc9e66c41f34aa6fbc974a608d4fa6690e998558b441656fb0731b09e522d0b7e73910c8aa0c9ea0e55b3b564ce65bfdc6ba8e5ad22c1703e7c9fd7e9cf2242d291eda2ab81a46e110446a1fe7bdfbbe031a522ce735c3102e34ff154b8a65199eaa2b9f015465841a9fcb5c1935afacc357ed5372013c40179fbd36e723e47b2d5b505c691f1bc78ae29af4c7ac67751c5aa946892f203fc0a632acbbbe856e2b43bb2371c7cd5725a18ecdc44c1c4d3e815f64c611ffc5055c3cd2866e6dedd2b2b98e2b9267ad778d17837c2e9533a2ad5f94b7d6ccbeb31a96bf1fe2a5928df5f4ce3ebaa9199f75e1eb59d9c3bb5b969ddf8a0ed031189c9f4c153b98ccac6e9ceacbb5577fc894ee482585c984786df82d6482a71eed80ae02684dd5c7aef27432b2911307b489bbe2ecc9d153e31dd1c4c6890a8b2b55546b600ed63f977e7265685a68eeddbac0ae2d8b087620f9d53d9861eb6912f4a4c0d64136489151c711dfed0f2c45b6fe949fcb052ebca29a10ae74a31f270342e24a76476a3847f2087679332ca36de6430d029d8baa3ad25d12a80073077acbbcbb5704609515a6a17bd9021aed3e6758cd6a6e0ac64895f50e1a20dac809879a53ff574ca6a77196f0d58b1e846b6f5a3694c37cd1461e0e7aec308b8c14c94fca9e16837d451086c57bcc37e8fcb6ca618530e876e8d0a1ff17d7c26f89c729e62d0bd2f632cc5d97382029c9da491c19bec910c4a4c97067d9a6f3719b438a2b729c9711c649f97f9c3ebf9a0a292e35701c0e8da94adcad45b92ce01a6c980bbe657cf0cc9fc87b2b0ee04cc32b5e6490e7ab115dfd2ff722f1c1728618fe78ee8d48b1daa2be84bd139146860e0fa66010d59f834ce605e2dc2098efae2784a35dfd3b262e7ef134194a5d1f132007ced9a98d1195029b10571caba8d24233bbc17a02a27927a42dc40de958f6e932046dc506ce230a5e8b6c63fea95e2076f867a847d71a34119b0d9255f31c8079abb98e1c5b2d218ba21c20f183f1108e6b0f2dedd7059e17207a57a511920b5203f07159280f2d9a868c71fd3aea497e3e9473da33bd52ebd0fb9a82452ede83a7d65b8055c4c79b20a13b296a36d362fd9ed31a9bcd8f54276abf70d43170e8a44e1a3ff5af13629248d0c17ed04363fa83a7fb5c35270c5344ad873658b64802e9aa425d990ecd6f2fe6da9c51593282337be380bf963eba30332aaf7ade134d28802207a67f9c2f88051b6d9ceb9fed6b904f6d97c8bec9e45ed1dde2d4bc40a088964bb9355039339d8aeeaf3e8bae844b828001a0f8cee5543f117177460dc9812a893050472b656d5993cf261355a8fce8ffcf146cc9aa0f0e0c8df2adaaf249a073ac86471741e6888663c38d662b1ea6987642a96ba38168a68ce28ee15bb908906e5d7817ed0aefe6926716b2c6f89d9c8c6b7c0951778c21effbaacc86bb7ddad13efd3896e0cf7e9eeb9b2a27fc58cb1ebe38e8a0740202974abacbf7118f8ebb54b5016c1736f516dbbcb19843bfc197543eddd1d7c9fa8bbe264f1529dc9b65c2ea04da434fed09e9b64b9d0f5f40834d5e3185a54cac98135b2fe65ab675f021bbea5316b8a8cee82723bb54e456cc4f3e55461bc7d61035d2aa21d6094f08db9d147ed52c1c62bd636f8fbc053179588f6b6dbd6f60a2fa77f5e50c0beaca2b0a7b563590c8708da8aefbc56bbdab76d6d127990effdfeb59916da72b7a75ad162f9fb6be6dfc15bb95845a0fef3e1fb57dacc57701803ec950da3fa2de7f602b451c10c3c3362dd663cb7a37d4d5cbcc82f7adb04993469330bb7642f0aa2bfcec43dedc85e76dcf3316dbb0ac6f03781d5c7cea75cdadc14b16ad4465c6c1a1c0b4b24046c28a2cd20e9bffaa240461f381167accc6b21902574b4ed78797e0b23ec8f5b43816a9bbb6edaea1b90bf6b2fd932d52c0d8f66107428b0030d67b43bd3c44cc45c11927f997317446ed1f3adcc81ab3091ea22bb54d5d828a7d4a7e1844a67e521e683c8092f76bfb3a97ba8ce825d6defc1501ea08e78d429c41af7c6c539ec1a63366cc0690082749f33e3206a8b3fe62551cfb8fcbef2a217f1617580ebc64792ab5c48e303ab9d2d4c688f6194847f651c96f681a1804cb3197cbbb17715561afe19976fc530b8e0ab94f1a1366abbf9342ba0edcc02ed50b24a4c65f8a24d094b13f2a5e58775c9b983e337ea9a4448d31f15ea3eff486712596e794a6ddf4b92030cc578afc9782e9c0147f0a9c9cdff115a2ef09cb21386a69e1e86363e1e8e0ed5e37f967d14d4102c74fbe6d5efbdc12648abbb07e9ffde294be37144ca3ee4650fbef038193263e8ca4367b16b52319d903ee29b66f4a0b9c17df8e7adf0f7fe439472b5f7f03a47488fa8e553addf4e230bbdc2198447724d88fa4d41e91550b27f25b28d8821b9eb90df74613f34ae714e8e915cf7f9eba38c2a823cb070d3542d7817b0be038dbffe7de440103a4a39e20fd03630269fbb1720a3a003a98bf8deed887249c4a03b9b6b5ca54b3512138926a3cb6f86e03696cf57e5410c495f484d1d1369d93bccb3c26333d976ea6331abbb5636f36c5abcb2ea9ceddf68f713f3d8fce55d2167e68754140e55dbbe94a5aab092771fb0263e2240a900833104247c8eaf67a7f657d766a457de639762171643f61106d85267626064e69f3c0f44546c29ca01a1a1f4fa88515aef468056368456d0b3e7377efae88a29e989147cf306415d77689c69b56c839b3bcd7e5cea34b22afbb228a37d8c7e656e0501eee27c088012355ad9cdf9c4e6d34fb89ecebdc8cc54650535a31ad1942901eb57c19f814e23a3fd63852b5604724a7731883cd7d675ec27d4901bc5ce8d5ab67a5a0dba1ee2ad24f6b8b7dfe0622e1f9b1691e580bddd5bff39f97f055193b972cd7e59c6d6ef0b587ef668732493f668986417e9f12d723bbdaa60f6a5db1c9775ddb335f50955a2967f450b1b0e8c6953a8a228cfecf0ecde4f47a982f23d28f576f07db84f73e2c4be881e2bf3fdaf4a8d6afe88e5800a6e54b7807e4a3b15c4601db4b627a79333493bbc9dace9660ca30f1a16e26fe3e95d9bda43fca1b8cabf180fcb98774c9168b628d25b18bc634a6fb2a08749965f93b3f67e0a942e9fa1b6223188fd65d385fd25ecc71ebb741dd0f9a1763566ddc68ce1077e974e4708a50e3c4e2c134cbf705cb11b6b2c4a678a27ed526ad5d51377ebf61bdb7e3d2aa36a77b616192d0d9ca37f681d408528c2a159e6448ff34eb44eebf66689a1b5e3e68d28299147d69bbe334036a1f94a021046ca0f0a1351035650145140a6d6a6f0f64fd40c79d933fed2371d4cb00987d0dba47379e6346f9ac527fe805c623fb56e41fd64abf515801bf34001b1bc597e4cbaa96d83dc7b1bf4ed2935e947caf1accd71bd8bb5e1143d066487fdbfea3045b136368cf1109f93ded0c4fbe4979e2d88133ef3544fde1e0e67961f9f60b9c9e3b443f25d8fc8e469b58342ec3cded1fa707ceee35149bce2c4e5fc6ad20027a0cfe3f9748fd5116400ec1902efedaa04f1e584090c9443913baee8932d40e99babf5339bf3e8dced54249cc8bb7de5202b520ffe03ea82c1c9a890c4f6df4cc2f95b1c8483ccd91bf532c7b452af8c0e5ba5d2a5e3889b7f92222d77eaabf50a4560f6374a77ff728d2c9cd9960a8bb6e48025ecfaa92fe8053b4e61c4e719630d3a1987181102259b9f701549b12a0938e52944d54930fec3bc1984e5c61c5d875d10d85becf2d932919118ea884c69402085d1b53d8e9f1b01b608d2887b3d1c11dd54b7db2f51100d36bd64b3dbff85d046741102e5f9226d6677eead1afe7d8f8196adeadfe1fefde39225bb2276ed446a042c98dab7de080ab0f9d6c8e249691ed7b14804025cdf49a07339e2623f313cd529030f595b43fa784a288abd55883ea430b386d5896bf56d20d16ead53171d69c49cf770d4be75c6556cfb877d3f08a23ec98d24d4759cccbd2df614718bcc4d09562a103ed6c8152f1994f3cf23c5584888db5d2bfb0badb4e25d813d380f390156eb2bd8f7c5ef9ff90f78b5470d317d0e4fe59384e9e9aa4b3b87d73f6355748b13223d42d595f7bdf4ed8c42e950c3bc7b5d478f885f17ba0d33515aca671361c781ac405ad5843f21f0933266a9c5afdcd87595e7d50ab5ca3ddecbc11cd1eacad8fd965364aa1cf858f9a28b4138f32c4ea42315fbb543a73b6134095330cf0283acb56f485eaa753942656cd53ddcf358765f2e595c3254407d3a94b703dacf1d5096598f34599789fe22f7eb37500220e282d5796603591098c398da2ed77193e9906306fc41e3a0ff5c59146ba8a6858601e23d8971e8e642634939c840e1ac0fda5a3da91f354348e0350018bdc51b50e75d7a93472c083a710fd3f4230298f0fc7bafb01c37ef42141db87d6ee66d46e0c02e923c621c6aa688adae6372b497f9a349ec5bb8e6a9e7d42c74ea9e0f5bd991f436289db39d77c1e6ab8776f4e6ad269e26bf17122bb98adc983b8c9c20ef6a027912d7b51736ca424e66ad11f8f15c1f9a7e074648e72883cd1fc17581f6af2ed53ddb1f10207407dcc9570f0371d805a6a9394fe1fd50e15624176ef72e2b30c3cedb3f86a3d9ed482345aa9878afe929c5c8e353f3bd530f3a904665f0bfb3659c7b2a5f2633f52c78b744ae11af8ce38b4e2f54a51ee2f812eef76b1d7f263d62ccb2db2f5c157b5b86c7b3ddd6a936c82c4c1d00f954d0f15600f1e4a6bb61965e8356920c967d6c5bdec79871231537d4109697b4b99e0a7c6200950e75744466e82ab13e091c92ab029ec7fe4621aac96aca3890666ce73f1a9b25b71acbefaf71f6ddd4a0942faafb2b0e087932ebefa211d35e057ecd09201bb9253ac635782285d68db58009a885f0a0661a7eea0817265a7a7ab05c3284fd4548944d6b3d5110e0c56a4eb49c2dbd884f61c639b7867cb53c5bc3b0630e7240714ed8fe64ce39b4b26eff97e6cee0eef3a7bc03cc869e3cd26651938d49ba547e4910a0457cfbd8f1f171b3e1f6647a6e1bf9b0dfa83da185140ccf7ec502eedec41ca4c0617dc1585b0760718b666da3d61bc6f523070b18abf94702290abd9a2d3da5fe47c2b6625ec018e9c9ac2cac18d8dd15a59e05f6ba763ccb66e0f02401ca3e8c30fdf7ec6ff77e44ee4f0a8a8245f0b34d7f4ce55a913dab479f3158ce76e8772ca94966b6d594114b149055c2393da3c2e0dfabe6a6998a880684a60bc471c7a7cde4ca9ced028710f052d8754aa8d407e285e26a488032478255e526a1290d0938e422bc1a61cc7ef47d998b4e7de0d171e34aa40a5889ec1382e497160103bb5a16bee13a43af89656533c3934b17f2ade383dc2bbcbeb2b2f2290e08115225d63bf853be8aaa5fadfa944149f666ce753bb7a361513d9b4999e132804241c6e113baa3bd58df5eccfb1fb33d99c4094d7d23802be145aff967b2ae30cc384646a979ae86e4cd7937302e620a7d07290a8907fcbb2423130bf8699a1d88abdddb3b1ec519dd7693d28ea57d9dc7984e8015e06278135d70c3a71cc281f5057d4d679bd3ccc32b827fffb3bd121369c0ffb46f99e9ae9d9961d2ad8dae92365bf7c02d4de6a752330fbf98e0c0684b0ae8cbdd0663a70557874402a6a095b893a774c788ed7abae8328e7c07d433f4e059a0f27c51110f8acd9d64a52200d0ada6de45ef56f9824227bc929b9beca7e1bace0196c4678c4c28c75af2afadfdee779f7cbce45bb29e49325f97a67367e7c7662d78abb41af95d8c27b086d07d83f7a627f514deda1afc3826133ef6c1b9c6d77cdee2329b9da6fb6bec3ed86c211ad179f08fa79a04b0d14a11b79d220155b7cd2688470de21d80c9e229274ee0f0f515576e75499828c85332c8da6472a41bd1e00505e5fd8252b24d9ee0c17cce55462d7bb8b8e1f9ca62e7ca109af11b1ca9789690fb07c96def5be031c1b25c3568ad0679b2a3cfb45fc4554727ae43117a21d13d08395e35a0b5f8c3abd51df15679137a1d8bc04c306a8f9d8b6aef1f6bd3fd10ce58338bf69f997bb29646c221a93514d430c5cd80a8ae2c26a1f6c3c4f80890b5d97a69555017b115595055bd0a6f581708c910356516b9d4a5cac7562e0c21af3bfc5e54c2b83622a5962ab50823cce4ea270b109f57afee769196ac00c22b217d943822d4493ae7704c87ea9d66a62f853365d6d61039113ac31a7b21391868aae310d9324dc124a06ec9cc25a17244d4866d4d71a114e5dcc72413eddb3654569a9a5d5d9e97131d3fa0d2dcc43877121ca70aab9f6ccb6488f7f485563ee1626b050f5cc19e2a32e64f209e4cfee6e9520c13aa75ea87e13bc0a83b0c57ce0305046fe532ca0861cbb28e9d94c5d41daec2253960e0ce6aee550fa61adb69e7feed27079038d1ef9897b05e4fdc3f005a1d07d70e154e92537bb2ceb87a4f6a1d413d117c3a1a63b6e638bb3a38b7138886d9a9fb7809650435dcef9263e2ad73f86f410ef4f3f93c664fd0524b6a06ce7c6082c7be7066ceed04342b3206da199bf9dd1e45e7d2f9fafb37f71aabf462edbabbf74145cf0f2c780d9a0a3a1e40a1996c929a7ff8c66a587cfbb64e175a012a3666f9418ce9e5b3ba1df437aeda9333d3af04c092c8db46ab27ea4f35fe5a1b2ad210c75c69bb0f96ceef78285bee863efb20eebe63e7c202dba7283efab0762afefc71f6439d503ab9a29a16240c420f874f54de8ffa2f400731cec7b9381903c387aab66846e3c3a6b0c2ef496a4b19fa14c3ea22901a52116c943aff15c8a20bf8f134391995ba5df132fab77d6de4c801770d6f1153aecfe6e83b60ed8317aad7d684c7dd732989c3f390aa7fb127ceb0627204ec84028741082fc95ba0d1284b144e7c6bb6045455152e87253820f3728e20fa5e2b2a2ae41b00d61ce8b321a200e03822e955c4c00cd0d43258d9a7a7b6e99a75c1d3f40c18901d26ca00fc7bc0c1ad44566634e85e012741e0825425ee5201f58e372a309293a2ffc686071c53d83563c2ada39b9d461fc2ffaf2cfddd080f7f74ae50c2e5847d27b496fdc1d1114d833912157ad53f075591284c4105ce3591a05e23798a55827fcfe5b74de0ccc3f6603a6beaf6640cc2d424194382fb119ef163e6237f2ccd918f841da065aed0de18623944f18a343f162868ff4e2fc26f34711fd2799004d8481cd21c1c7a26910d286f41b372d2208bf8a89410504c04f42228c26646727fe276ce86284e6f4159413ce9a2b7eb82251440f54ec6636b1bde808e0efec683513d72f745deb5c13959ac17bca5bd6e83fc2c35bff3ad73cf3f40f34dec99c69ac3a4d6f5d3c62205488643cdd8ee96bd8ed41ab4abbef7b17ae1e3403a1e59efb784f4d7fcd8fd45f6944b508e8d7b275841e5558e22e531e4ce01cc4340cb243351de390834007d8378e55ffa01f185e766f5d77641d3a28f9752dfd1afd986b58903ef26c4b320749c950d723ca174f42506610a42c890fe02bfea293295cefc960e3d904d89ea4e79c15a0286772014bac4ab9c616b741e9bbc39b84f879a7e82234e673a87115fe477a5a899c5d6d83d0291bca4a300f35f582b5758e01eb27db2182c1245f80124b0f707b2b1ca1d31f686d2ec37211f84b0c896d3a4fde160a73430e61078594d531a62e8a0ddf290451377f4406a3dc7a936f0d9e5fa3a80d4ac9bde4497c2125723aeb9ff61b64fdad1657599bd63033b1ff2e601f1f94f952fa3cd8e7d566149669500351efad7518cf1746dd2b4e26bfe1eaae38f14b359f465659b67278d6ca327deb7e264d15e57464ab2f1c8ac10760431dac513bb1838e9ad61efda6ec902d3e6fffc66cc226b3c2d67d0e95b5a18bdbb72cd8499e6e8f826d52ec0d89623d484d76083f6fc0b60ac3ad31891c49793d8f9ecd01ef61b48290c10731f3b646341ef2c6dbf7c0de90dde79260c78debf4f9c1ed97fe648c2cf3288ede295b23df4815873f2d48a012b682a73fe2c755b3b14ee29dd56b5eb4b11a963bd81de4f0430d72f87001cb77d4d61080319b94c1a37e6f715ebcc44de1047c905b2e6588da653e4ae41159f3f20946fa454921693456905af365314029eb208ec1ee1d4e2d97f3686080f3215dd27a449105cc4a466fb5e1f66a40d980c0330a5b4f05dad75a22557f3b880390b5e62658e4308385754fdd947d492aff155f7b3fa05cf85ccf0da963eba7030f785a947da89f3fd84464bdcd54d0d226335603894f0483a4814ba99530692a00a713703d7c384557d2c4f17db72c38f31a04709fb7c56637d6dcd5f4da4a410db3b05ac4f33294dbe3dddc6deaaa78266e53de2266919595a14036757fe3c145e1bb44cff13c6fcd5d781bbf366eb28d570a7b1605f1611d595de5a058123bd1744f3c1da00d51a9323b695382b4810a6ad5275fc30023b7c33b0a597fe082b2d39db0ce592874474127a59c0a5816619d916afaa5dce5e5050ddabea11a009eeb4c65d7c66d6ccd9706de519047a99da5084869d6dc287d03c51db40021970306af57801fa150cee0fe5ba8ed0f9451f15de5412278f195778597de357513b8f7e4fca8fbf13370f3a501e1d178cc1cf12814a95bc776c81936717731494bdb1aa8dea7c1aaebd04a29ce63b7f1e71009b9b6d9803127f4acb4fa2edf1398d5645b8b79b8cc7d1d5324f0a885de3bdf3938c24139deb7dbb385fd001442d27adf60d4a922dcd95a4e4c5dba1a9d2f5fd0c9694f98845b7829c13984076e53d2526e5cccba6dfb918e755c679ae098e8a3afe323e2d4536fa09847b94d34da74de139a9108ecdfd5ca7715e36da47098be67fd3824a0d49bc345d2507ef19e10a1260e1804a6bfdd3e3247825981f9529b0b498982ef0731dc283f58b443359a29eb0a216fb06c769d0705be1bd47b60cdf62603b8d4f2c6c3a50c6c52d6d691812e74c7558659a5b47a8bb9aebc4bb6c918a7c074994bf3ebb821b70a50333b06256bdff117c1a194394371e157b4434ae9bfe258c6e7bef9afda11abf764c121665190aa8b551be24d51973146f3dcc7127215c43c79f6f15e07c62096eba6725612e8df7d865f037151573e63fb96803a7fd2f4165c3580fd627eeeadac158b678e1e7c3eca059db82bbb5e33946c3430a768e4075dc4bfbd073c91deab49c69391c0529cb5c8d692719f18266b0782fe8f3a1bec5b9e1d3befd2abe88e6f767ff514af91562eb30c9ccc1215179f6762d6d1e9a7a3c41bc2e7a8d6ffebf7f38f99e34552a91b8e2001c1967a6d12e55e0cb4c14cb4735ae21b6c3ee46c6379c61cc8b464916a0834e34dc8df2bf6a215e6d9fc5e86550ef7566344dbb2d1a0085975fbc7a80961f7af39a011fbb7d75cfc673c9211ec7b9d00401f746681d77c652f863ad573b836857937003b0c0dc34ab01411bd2d14d38dcc6856176bea0c08f33abf8516a0a7fd9cc6a03857aa43de2ed441c65d0cc1b43312f874bd3f4c81eccdb0bbbe159adbf8ad68a383272f0b78fffbdc6d9eeaac99e46cf2211aba36c37ebe1a510c00260eda3be9ce739896454e133493febe5e493be0cf7791e3a15dbf79aba5582854afe7cb499ffd1497d61351a6137a8ed579062b5184695f35564397dad202745e1ecd8f603ad192a8e065346457f6a422dfc4c1c4b0293aa1d3d369878ec195b5aa89d314b29f837d329629e7fd06900d56f599fd2f0048c1290a24db2a187a2634e35ccc159b75f9fdc762ad840e2937aa0c365ba18fd25415371f4af9c01bddc93b73cd099b0d24420ead0b4ca5a9463fa85e5c7f7f9543aff14961c8591ee574b712be0fc942019f554ebba953e1f04e47144e022a41f8426b92e5b5252da4f17897121020a78d5dbbce40a0aac608d3fcc383d9d95ca743c946cbe5016255a2b2d6a60ed937add96dc5faef54933810b9d9989ac218204b70e599eaed2aa5d9a35fbb2915477d4d475c0798765a240a78487106b6ca88b8d479ced4aedc7d5d7df15556264d6c840f7be0242a68ee1c508b3c2c0212f0357fe4354ec9fafe5d0376756cc64c917e0038e2954a93958d8c81b3e2f898cc2618068cf6025092aeebb86eca817cafa4ff18c0da8960c0db6fe680a4ccb410cb5d463803cd500bd6941fc5c432dfd084863dc32ab5916d11fc3ddb4bc4b6582aa075995685cdc2efeaf504320ce567b9e721222953d5344e7fdba16d169fd5bdabd99ab1c7310f8249dbfb414c1108233816f0ea6d9f3dc466770ab427c31a2cf55d10cfa23ea0773496535644cb10995b8c7f2e2067559692c24bda80958dff1485b9081bd6410d7dc864d1adda952f92587c191c2ab6fb3dc2d5db1132b6b107eb538db9d83cb52ed2931b3a4558e28a36d65f5d7813b6104d279f49bf3b27b3cc59219cc697a7e5a66fb4d65abda5524370cfd3a60dbb284a2ceee4cece04925dd58212e789962a9e74b264673a8c3702a9dbd1a1dd5abe4b322545d3db7754bfdc3ecba1c32ab0e965980dfda997ad52c775307953791919a888de8b04a329b1d0e74cdf54d5a709d41a18fd799f0a3566a367542383afb1cbb3ffcfbb2b27c65b32714329f0f90698733241811fe3464dff61a9c8d8e0c4fe9e6d80c168fbf59233309e5bb16baae091ab268918f2267291f0524ed4d6d4824b44e7704af4022002469981e20aa93d67c96c4c71aa5131569593933298abfeebef7fffcdc4882614cf19907db0dfd3b816fd6c0f6954a81d70b71fa261c8be16cc9ea810510f8c7075bf5ff10bca6a2b022bd42a52dc639e2d4949aad63f395dcc428865385aae24630d4d539558c04034f0a1577d3018fb2009a3e7b21dff5fcfb70dd69b00b8bbb8d10e697d88defaf59ede3f444a177ef414f02e0c86ec5afef4ae0d2b31fe9a395321555b9b2d99d387a3876e595357418e67648a7939ea72f906b4356cc3857661089238326ff4d371d130eb60fa17dd0a983e24892bdaad45453f4c301e5a1763a816dbb0a37359e9853dc8d990e50e5789f330a9b7a8d6d7a4f20559077f918b0e3e765868dd49780ffebc9fdd447298fb35c1dcf625f1fbfaee9b520b055390c661a8554378eff514eab3b9e6ee10a0d2823d6bd1edb9c77d41bde1a27bd44c627c1b4725d5bdfda6c1bc813f072365ff05055785ab5e28350720317777862d6072dec039443e0b18ac2e3b634108b6f49ab3997ce506293c63aaf5b9ccf1760a900bc85495c779503c4b42459f9ff03b5de4d0d47760a46f140d0270cc8b05fdac8a7d6913c26db9a0ce3fbe441e32fde9eb4d85f72448bef2a797182b49ba5e0abba3e3d8548cf2af19551827439e93d5c7af40901e2f22988957f36741c0466b68e2b946d8aee1693d49578ce825e1d1196a4459fb7e23092dd16b373ab7628cfb0c79b9bdaaccdacfa71dca0f740b0f5b175adfbf79becced8b4c9b2bec9d06e88bb213660a290ffd0f219f5a528cfc2303a93d07178e094309daf877d58f72ed36b54e14ca051822d79bf9e95798ded85fe4d4c4514a5582093fda9814ad52b80c660a052fec43af3f52a550173b7d13f68138ece3f0e39232cf7f8e6524bd76b7c55a5a7904afe26b4bbcb22a5858fc4c7f70ce6811110bd111b3af603ccb590a71a2b22653b98527219a3a6c560f63b66e676c6127801dee836935c6ad11d02c06744c3b330321a2b8d526229a2f922105e65e1eaf43fe9402dfa758c095f24d68542bd13286f712af25fbb0240620bc1ac3baef5ca48605241148ab412bcf734c3c2763113aece727efcf97cdbea48e02cd7dba5cf607deddcf7f6cde00c60283da8ce9348545adb6b8d1195fa5966fcab509406038c22633d2075f051ce77e69a7724670fa414339a13c46b82af21a795427d1f1485c521d4cede18c701a8ae7c0abfa2390b5469bbe84ce333fad5030062710eb749f902d85c4393a6345a263008bc9a008dcac2931b6ab66ef4d02b2a9d07c94b906e2321c06536486ebe40542ef814754496738bd7e015753f360ef098701adc72c071787d1a24a78b52c50c23c36cae3dc722e23cd00e05f8b2fa65331b65437b30adb692a749c31fe0d3babd3e8b1688556bce302018ae55507ef1794d950397d243f450446d161841edcbfa40627dc2e07295bcfb8baf20e2120916b7908360ace796f2f97c46f305197ca3d494c1ab0b912ef0e780373685a1752a376d3797b92a9e809ec09c36b20bd7acd861b94ea5bff14d4b68cc97aa10a45e397c07b0362e3126b96ab893ef2df92ea8c9c687b059be622de050ea295aeb8361bf3dc90abd3d2c6abf1849f2f6d04e55616e967a6ce90a902dac9dc334b789877f07e4a6b248774287479e30d625335604a75e6079c989453c253999e617d5a9a27e77b7f374076437af344bfcc10d8cf74705a40fe8bc394fdb818d5b6ec82cc181895ddad78c7755814b8793e5725e0b9d59e54a75016ee69d3b73372470d3f52966468fb83a435c5175a759c4766c95fe2671b35e44bb148e1b3716bafecad17c614e398fec3389a3e146fa52cbcf10f33ace32d40c79916254a364ad6ad7d2df2adbeb8dbcf67091c50372a2433c42c656e346a4645d3f156a3c2dcf502b7784d8d275a152c5c7b59a29b9430965bc34796eaa998d693b9589d8b6f517ee9b75587ec970bd81cbd07004126b6c36bbbe0a1384c63cdc03f910c3332909a98629cfd9fd9ef28ee2425b0cda2b6344786333fd6c44fe1b5d0d8323e32027f1237cfbf08baa5197a73a6e1b476cc3322ca9024e79a4756315c85ff6c71471bb56ebe6ac337ad923602b636c383de231e9e4e8c7dbbbb08e9f0411edfe9bf2f6411d2da60ef70b74c4a965e9434e59db13a4553ccf5c615623e649995cea5843fe576557849bd3558ee51bea2e28e76dc30a16bdfabb102b781185cebd95131bba9471d5f663c3e00da719e97a7f2603ab3ce6fb67e62bb45ec626b1899c4d46d86140e0dcbd159e6417fb464c675e739abdfd7030c42505531641055800b8d0872166a1bf4aa779e14999d338f67870771d5dd043d8c09b5c5691a775cc483a5d7223f5863374c3a2ad212c1018e3600e296cf696d103ac7c096fd6e16cb0274c1d85e91aa5ee7029b22b72852b5e32110765f8490b7660271d5a6190ac8a55d4a91ad4247dbbc03f761440c9ca41df9c7e1b15d10922528f8ee9480035832c564c4871176e22a34404ea3dd5b7b086a43ff3eb859ac0658a1915d1d885639bf6f9def9a6f5653d7eedbeaa45803f4860d2ce946af7941cb029e8013247ae5b22814a37f4a6c83c599bc737df3cb60255bbd2b37efae19c655825000bccab66a746e11302242d32124adcd402eeda915737fbab7df17be09b33e843aa1d3d289dd86493aa3e12d74bfc0c8e90fbb6ec29e8826cee963cd170ff91efee86efeb285a6850ed64bc21d3bc8be7940abcda0241dda2dffe89e371f09c33788294cbf520ab58bb31de637cd0816fac971413359d38d218703717334cf23e10c4da3fb024b3548db7fd0e80850e353d5f46810aa15245714c4d37b72a5200ef2ffe9440c5c9f13d8b45f3ed7d743ca2b8dad72b9572d4108214133783de9e6201710d423ea7627f8f0ca9fa71f80608331e9a481ac05f6f96e4f5315c0d254ccbdb049522e2ded0aaf731a026ddb18e532a174c8e53e6be985daf5f4212fb2c45bbfcfddae9ee2fc3df399cbbef99607ca984fbd2e892f9e34b156873bfc322add954f41a8a7eae5fb7319fb3b47bbb0d5dadd5d787b997e9b52e9beb9be9e2bfe6fd47fab667cf35362d8de28c8373182d98eaa1458f412a6920d7590feceabbc234b2482a07903c13193cd96ad11f47f3cc207cd3d825efd9ee00eeade859c143a748b26793146d24073af3229a3f36de666ee462f7d77001dd63278b83777a7e745a14be02e1581e015d860f6c426a5264c9e932e6b2f67dc5e24c7ac7869e773209c1cf2dea997036ac5a30498d3c602abefd744d07d21e11fc722cca7608c9c08fc0d1941d9ae0068bb57c27bb21dc9043f3341bf8d2fb4f0bcfed839295936bf9a9ecdc43f98f3f81be53999c67fee27a624ba0984a7a83fe9599b0cff72c681f42640bd6a63027325c56b56835805d48fb64e0e632d84d72199bff95e57ec6243ff56c59b9a1bc32704ca90be7b4a8d2dddc98455bfa637f1cbf17415ec0246e1259cd8ec37563105fd49ef42f6dbbf738206cf97454ed50a1282e24712f6e2dec7f9a8732df89a9219201aa6aac39ca8a8b026c8dc819c944511236ba15ac5f03488d8b246a03db818ab844a4843512da9a42b67fb9b8586da47312e8c1564d48db21c897d3818c63e36b460cb1813cc05a006f816ad7a62fc0f7feea9dec6e70eca6dc1df36a9f3aefcb21c319f4a9864d49fe6a190ae2993b9672738b8ad76e015e8f545a9af112da09735d18c30fbb7e6b0af45f2a02e0e6f5f50c0a90c2ac2630bbf9454c27ca1781384892c566992ae784b0891b0467db58d799ffb738542ef93b421b91f4f48061410b0a4f34c9c1a2e8e739468714c0cfa7836a1080bfab504a7e1fc75df37438bfe3cdc217cb8d9c9e61aea33539e26529fbcb78fadcd839bcca4da2c36d0209a71429870f1d91b63c58dbc9d08732d18dc38bd827d9d9206ec44da1e0aaea9c78acc270853bf2f57d006b1ffeb810348ff40d541af187e3d2e50e55e6de61ee23175074cfb34894e9b4582d19f240ef3c9d7cd90048179a9c368a0b2781f30c860136d7a850066dfb0cc0d10cf1ea72a0e9c25645cd427c31aa199ed2958f774f99a141692b2c504f5354254de1bce5c7dc3556f3eec92b3180e7fc2dcf6305fd82b878a8f0d4fa701960827b7641c472241b2a0a95ed7bb4f8e4eaa88d2d04c367fba46d5a4ab8edc80ac5fcdd3e3aff76c3ef76449d7bfedbe652bfb3bd625b7108c28c9ffc5fcd144fe82491dfb7efeccf9795bf2dae1d27560c76d836160abcb525d3bfe9a0bf0397ddbbfd60738a289c48c97d7781ac7d9f79bafdfb648164c29159de7e8122c4edcc388b8be34658f829988c7062882c871b68d6721e5871dc4f3fe5c71aa2725015ed03b8958a557632d161dc2bb9a113840c2b8199b62654097319b46090854dccc29bb267a3bec13fa137a75d6b27ddb7b78042d57e0f2fd13ccf0abc888c5351bea18b9c21883ec8fb9193e4be04b829b423f2bc9263ce1ebfbbd29a07d248941267b800665785d241c727c200e5566afd9a6b7b96162c89300ef89d198c2ac036247d4946746ab780ec245fe07066f964e36b5956f90033bc9711871205be82e17551170dd68a4f82eed32d8ae567de7d3e2b950e95578828a7ac1a9e15322136c01679b28d0a0ffb7be09ee504baa02749b5dbce152c1742234714c94277a91205bddfc635eadb05a0079fc1c0d045aed11039a27721dddf1e76cb9d8f038ea02a6141ae4c3fbe8fdbba5978fb444ccddb484d1dc42806698c2e72419b0b3202b7b090b08e7de50df50d8345c4679a27bd2f83d1f65816f95b5e459ae93ed6c95cef381c40e0abfbdbad67c47570998ee5924a75bc2826099022d620979543687e269ac14067cbedaabd8be1cf5e8894e67c9e66a68c8c9665112f95943277d535ec5f5ab499825299f729dbee6927977a277c105602812e027862fb0a71d386c0e32f27dcbaf553349d3e9ccb46b50a43884e7463752c1f02f61171ee6992de7e4941a77f475559db3e864d40fc932cf57cddd910f51966bbe88c4bf003b42ec30287a85872796783dea5f3fed1726ea29d9d545a54a901ff9ffb70e576786da3881077a6a023915eb7de31dcfbdcddf2712907e17f08e4d4f9cdc412a2f6b8053e25b9dac7b834f067921db3498873a6b5eeff5a443eedff746965f592da526f5a29a84cf3a3508461f405fd476a47721351063e45b0c08132c01037ed44ccafae0bd63673cb592df9e0aa32f31859299ef4ebb7537705c4c459de95029857abeb9861b1881e48de8201f192f72d474b5bf935409e7f16114c7641b014e69b30a4b5938b985a12dd1ae6787a0f2849aa64c0e8c3fb7ac9790c29049bcac4f529d1db816d731c0313b7b7181af0a8ca604bb8085cb32ea564895319986b1f6ba8df2d1a1eafa7eaf6435146910b563381014567edad0861843a465d9b7dbaa1fb8e3bbd0f2d900c67199ca752071862868ec13146a9126639fe54711788fdb49e450a00695532730895f580493172bdbbd5a2a6cc3ef4a4a52639489456f0ade3da808fcf181e07e6acc5f9bb5670d9ac6fc2a8dcd69b282059fb8dcbaab1d9703a0aa34ecf2403533c0991ec0b26512227971286a7d7f12016df3ac9842d8af3d43d32f8398a0085c234eb68cd9a3fc6aacdd55d4aa3788351f48ec5cc291e4aa40bfb5cc7178aa048653664840bfeea26ba03df8af1042b276442a0ead663d9229c6f561a24714c547050e82d9fbf443defd1d6c7e93a3179d0f0294229d386bbd584ab93da48c35f656392a24c528e49ea7aedc9cbac216f5fbbbed0582248e933e543a60899ae1d914b62d53b936a44e9c62c7a94ff3116c8d15d23b5b10a127d8470a54f6b48314aa9bb938be3e12443aac22384a918417d2742b4bc6effd015b8c242a2844bfb52c29f110ea32d618f7438481bfc6a06f74164f77fd85292883c04251f965badec9d6d6fd29fb879f88d4d51c9172f3d614c852dcf1a515f47bbaddcf3fda912e7d0ae46a279cbf7dcea07eefe52432e97e733105b92e0850fea78dd4b70afe19afb73590f0b6a9c948bfa7e08ea9547a1b7b141440344c4bc4b524e0a58a2d99e205961c32582ba0e0614af6a83634af150dc21195d0b5770ccfc3dd952786a03ca3758ffdaf53953bb5f200192755732cc82c671bd543731fe5115655656f501b3a04ec27d597bb1133bf8d7411f716d6c0c90bcccf1a47d2eae851b736d8c3dc18d1ae420bf2d1e680ead184743e31356c637920a7548d88fe7f66dd448fdf6fdf18994b1120066649e6e82c8a8e0a6e720964b75f97e17b7be3cdd3a22b4d1ee378ca3725bd682afd4a8d4fa28ac438bbf655edb1f005130ab9347d8dd749442f926aa9b5a21be10f2c22fa17afe5a4327bc919a87a29f39847041adbb11848993e0509c857156b9ee56021788a59a4053f854617dbf9e3f346d5fe27bef6819f8148213cd560c995c02fda36e022ac4c8a467dcffc2c4f378fb7410496637b6b3acc662f48e38469f035ee95d1c549659f24e8643ce0675086ab5b5de5463b197edb94ed2a41b131fd716315f59f65aa3b0cec6c113d86ce793e9e103c9e3c698c737c6694b08925714109c8e4addbed0e01c2c94f3fd0654d3295c1a4165cb420344a8d28d7f46de7b16a5c76c3916c39108cc1919b11c030db51ba53441d1ac2bf3ffefd222fe836eb418d87d1712b4017f8aec6549234dd059f47a69258bb2b482d14aca8c348b201be6ae242ba3f9720c6411a49e47d8fe7086d8b175abaec54b671bf43cbb6f54d91d454d05d77c76f3723feab42ab2da3fb0f948ea9c94c41b683fc6897784adb547e0c980c90e95c946973ed594926f58c3ef33db8ab494aa8db5b8995d7955377eee68e0399bd81ec03b15951008312e1c63b0685807aae4cd5a705972db34aed49aacfd6d3202b00324484d80b7f0467c5012fef743eb4edf066169b4ea183af07c472257e65ca0f2f00162d4a89b120788a933f3e9bc59b873c90df34d423e0358ffe1e13382b105cd087ca9f28af6881cc96db19afbe4c7558539ba93bd0abba47688ca30eb0d6a9979921c917e4f33f96d66a43f6227f18c2e460405f9c86d3c7f5e21bdd5827b8984c0482c8d9e0649e5c5d0ca53802812f085062784fc7913f815c2ab529c6909a1abd0cebc96616f8309549e3f5e05cca939c0ef2b7ef0ca818dfffa1c21a5b87e15fed5d6360611ebab277da426994976c3d0c981590869933f1555b8aaaa9007fa09fd4c5ff239a663cfc0b38202fe6a54813fba3589468f3362cf7c5d9866c07540b3efd98f01eac096a127d95e4253da9e6682b674164d5aa770cb6a100a51ff0d6ffb4674f53b0bf3938a4a676f65abae25a2cac8753ea13963a6b0a147fa96ae4af67363dce88dba1bb5faf0d202c16f855216cbc4372f776de5aed1a268b8a48205d33e66b8e888c36039aa06e5631993edffdaa773eaf6426b2edf1d7b7d9197029713476dec8b14dabc45e6ed5113d3809f80922ea1c2f4bb3e450d06fd3c049ac6afe4857318469dc0b000a07c33698e33ecabdcc7842234f6730558ecbfadc3599a99aff17dfbf5c61360c0b21bebcaee0ef03715b24341e6470e5f6a499d3b2de627739540d3cd4555fb14686706e772193762536fb371fb51848433d152cd8ab1e35ff2548759571158d4f1790194315d603d062833507f082315fc14fa1a5a3cf9b0f86c3630906060c3e01c65deef04ba4ed3cfa849cc6af80df927094f1bade115b5a2268dcae9b8d6ad1c5260191c5fe3af7bab96580d5d22f823bd626633ae31427d0b46392acecf4e39e3b1dcd70bcbafffad893a63a463d7a658d4194fdb69c7e798159848fbe552d2fd918757f288de4831dc0d9f5417c16da2b313423c662ba852957788aa439b0b0253ddfd58c7ad22bda5bb66849a59ff0047865a1c0962404769f3a30e06439d0c48736d8784a99d809a11cdf734113d355623eebd04fb7201f69ad1ee4e1c5fb8f91ea35eb9339295aa644a5bac41729f8665832f3cb6a36cb691d04ec13239c6d05a6e0dd197034cc2f93b5c47ce839491f31964bf06b60e42b89f7971eabebe6b1ccedc0c904908db2299f50cf3c24274446f177deafa1a20c3bb15bfded7e38b666aea46caba429bfe080a101eeb7ef63b18f08a4faa703f1045ab8a12d35cd7f82bda9212a40df515e21449f442ca27d67fef4fe16aa967662ad48630f1f7c677df8d1049b81eaf41d485c10c2ee61ccc7efee292182fdf08154dc4ae56a401bab7ae577bf2e6ccd7be38491ee14b76ecc89ba34b1813356b3d12c0bbad745486e041c8a437d88c034fe9d5db9cd5fb0b0eb4cd3f4e54c967a3258e182d4d723542057e3d02b2b011069b0ba0a0c24361ba035fb13c58b438a1a04d90231d0d4bcdb2bf66e582a0a9b7f0bd7cb1a2bc5e3c590c49bf5abf3426b8ec01a6a0c5621a4cc6455fde35fbd46fca1b11949fbff6f0270697c00ddcff8eaee74742e2c418c1e62afa3ba08ac10fb56f9ded238a3035468285054572d21139a6ea2e50e100ac9429af774d31502c9e780f546fd6dd8759f42b80583b1b929f52c044c6f37b143f720bc32f084fd2783defee74035cb97eeec2dca37d069d5b22fb798caae14232b7322ae2c716d7d00d371beb7d9916a47975531a5b57899ba03c31bc69d439c7dce8cb38eb60bf031296cabf60049ddc118ff03f6c8d16b44a5ea51e1410f90a299b36532af0e38654d4b8e89b37206021a4e936cd37296dbebed357ae075394f9e3bd0f2158ae617be51eda247c65746691138264b0d1636b3ddc98c2cd061ef4256418124294f4f084ec28c6c1ed1b3ed2605c38c79cbd3b7734c9fe1ca38255d97d23f062d1860c17af563d14a2a1350cf87f57b0e418bf925576b8d2bd00062a8c48be85904492fda85cdc3804cb985e8622740f8b3ef56883893d0a02fcd5c618d0248f41285b01e5b3735f86bbe05cbdc292ce4d713d72bacece8b430a6e1c0a4d364396ae075eb45c9ac8b67739a9bece5bebf00bb028b8f9893eda55093e911ab05d3eeae4b2553cf8264ee5a08f61d642640053324583b8de22d415327c2496ad795ff6fbce9488495de3201595e70d2ab5d55023d050e839b4b666d44f14de08ea60e39f50ca2d010d26923de4a92062278153667668331bac51a3c18230afe39d8933a8d69249d1896056e5f80b958872deae0cf10fc7ff0ee0ae92c49f96cf584108ad61bd5bf668b41043496be13c0ee315d47baf818e1ddee34319e4bec2185350095f9d68fafc563780c2f7003c8e65cfdafac788b087314dfa9db1ebb3601d6c8b6696e1b913f28617568dfed9f263bec81a1da44003855e5c5bbcc7e4a4c0413d6b5d57b5c8d9a7a61da8721685b0cb4ac1755f58e3b2c475c6e2992f0ea4ec6e8c8e25fdc4052bdee8629bd1ae575dff6f61302e1e0c889e8affafc50f3a10eafcb90cee665f2d397339480748590f491c5151671c356d71b2782847c33dc00eca2a3087b1a69f2cdd899398be7abc394c58f475a088cad2beae1902339d4a2259b5594571b7a28a94947f2a0a3ca34129bb290e2acf8675f90a4f4590404881e9e9d0949b589d25525dd473e560f1158ab3b8039b4e8f199e8807a2910c0abb3db5fed32192b206ff539eea9f8a6dbd7af4069b95afcd997b609b070184f50c6127211f39b5ab3921936361863ad8ce452498b91294223ff6174885fa01ab0e2668cac5b51abc3958398ed8a1ff0de837b9e852ff30c9873a4b5c9e908562807992d21809bbce25f5d9e31b1933a4d3338159435bd6d2c758d866bb788a27dfde92ef648421f0079197342601a12dc2eb9d48b6d5361ef36cc2b4a8f2f9050eb1fb8b039da5d60330a480392e7c9bfa29fd6464391b83944e7c3cc97acad9f188593caa9a189d13767cb54be774f02a9c14f8ffa8e0c370eff59ad32d370b0df6ba49323d67f0ad1a7bb4c2d8d99a6de34ad1665d411d86f4cd4d3fdfdb7308e5339b2681f003bff67098a8b79c53bb3047c11d506a3ba27cb0fd6a9030168a9304ac6de863ca0726b89480b96a1d8629de072a7945d6ea3bb8593adbc6cf50fc97860c6d1a7d51c1c0183531f4ead9df4e1b91e014c041adb48c27e544053868276a85dab1ed7a72b3f5da64b4b9f7b3231d69dcc10616567e384369e41cd041d8ca70083275f0461118c1db17cd185fce1b5c8ab30cc119ce0ac46b6018ee81334d90051f5458c8720d2db9e4c664063ac36c8a27ceae137f9c5f4c066a6ae93c5e80736cfd2eef890b1e5679314c844e8cbd89acdc2390b22efdbb3d859883830a62c53231a92dd7ef63f2e82d811aeb8e9dd747abc71d0ae2abf0316e53b33d890793eef0ea957c5b7e18c2a9c7d2816f1991f242f45daa29349d8714d81c9ff9a12573db3cc088f10de589f9203dbd2aebf08e979da9be4432d9ed771de2973f75fee31f4dba31bb8ff2b33fa58ff20a2060d76a3cf720021377847eab0331dc6e7b2b018d875bf0d2808421d3f84b15a81a0a3c3c2d1b2822456401eedc02a806e988d72043a18290269dcaf432de34b2a7ef3fbaf75c8a175e8f64f5d5a505346bb7c40076627a8a916e3d1341393ef5e33a1409a7f4491d48e21f4406adebaf5f8bb76097b618e5bb2b5c872520a2637749a47f425ef2a829052346efb94e624bc7b4ce9427e9c5a784f76defa5900bb5e67f1085fba3f7b754bfa0b6ad2e40de49a72f0427bc1fbe0da7ceaf0660984a55e90ca3a4045ff7e6fbde04bfeee42311688261e3c2cc8cf5f15b5817ecd6b6c224350afe0d42157476cbdd21abe48c8bbf6e6fb503fff72efc5ecf651cabdf4f5d7cd5629cf5d4f14832016407cfb6a57408eaf8e983a357cd526fa39fcb83b0386af1f84e7944512bb9608b788bd6145200492036d9b4fdbd4b00afdb419b87cfbaea76b649f3df25a348d57a62e8375b37c437b9151814f0ae7494f5eb69ff10d69896081fbf019cd63d2e2b99e5be55af59000730ef53065766bfa271f6243b406c44e753f82b1a69f032096532b66a7ba5c2f19bf45cd0901711c44024121bc745c5ff63b83822650d072c0dbddc26f87f591519d6db8e24cb7dac6a816b26fe6f3390a218aa877d92fde57279b7e9153b05073c2b3b9d75c5918199890fa426217290ae5227b65577aacb9734ebdf3fbd5892d725bd5a58ea544c48923f02f7fa705badd904192e064eb97342a4d2c0436550a079f1d26a41fb71bb7e4204f8e43b7d0656b1ef317d7743cf7a9944eb12ca3197c2671adb05a67d9f9b772cd91cf8185f2151bf79e17338d8d80cc7a7a5fdbaff3156e98687c37b36d27d132db5baef086d6806594edbe7fe0733d4b43f52056cb65fddb8a640b22a00e2c7e1cb12bab2040b8328842bdffe0ad07693dc60edc811e8eceaea67bb46176e5c811d535b781923fdb2d661b6f72656d897768a52370c49aecd9de1217d1a09d145bfcabd132497674a4410baff53015f567dfaa541ae3218656d0f6962d07af4335eb858a2abb7eea335c3b1b569cb27a1dea88a58a93924ea60d723ab84d2afd88ab3da7fa24492cd90d0410e8925250e2129a07a699b6b7d36e88bc3e5e1988751c1b4db406af6edb38fdb7a4c5d10dbbfc8ad464136cc31d07a103d4f3f1384d7a64de038dd8ae70a2848b9f5c2e2c138305224292f6cc31b7876e30c4c0bd68d16ea19e268cfb25d310d45f62fad8d344a2f3353d731dc9e8622a24f42ac6fd69ebc493cb0081ed7d2c2ce0ada663458107ddb796c9eed51ee75c76e803745c80e9656c9a6fefaa0dc27499b6d7073913c9d1182e154e70423fe883e1ff6efdf5e6f970cd41d46c800e811a61ec983c74f88a99990b44d851b0a577f15b881d77718dd504ee192cab836f5b3466855c1f024f3cf16477671ca5a50e91788c827bc8af8c18151af433ee9ec806bfc1db62d798ab32e3d4edb2bb79e853ab72e802072cde4130a06f9b0718aa1c4fc911f36e482c5c53289b71eea3409239db4b1c77398e138b2fdbb0865f478058274593fb14f9dd7f83d3fd9d2dfb6edc133ba4a312fe7e54666cc1399980844c59c0977d595ea6ebe2fcb5d4822ff21cd683022e6fa18edca6a9f8fc40820ae3254835fa253d59761afb8309ddac1e8574a543b831f4d7a1f9c8044305901b5301b06272ca750a8b54aad8836f4f5fe461dd047e0df5e74364710869675c2af0ee783da075f1f9e0eee5e0fd4a585dc764be263ac7c9310de387d38dd21976e11b09219354c2d15f44aaa7ae7d451be7d4274858feaf7c1303a068213146df9c373c0c06becd460da5bbee0255001acd671d96e5b55e9aaa08203eef8bb3027d927a20da0ab2fad2d837e073fda1feb3028ac19834941a913e0c0417acc6d2776860499a7b9d76e349be2a28be073f172ddca2e9938cb94dcd44fd155172fad4706d0aee5f6d62ed79500c7114b6f09ace5a17b3c1967b84a592b207135fc519305f93f3905772a3119735c1d5792d83bc7da0c7c851232290b0c9c16b6a0f885c4a6a9f7606ad887e916cc4ed981c40bab9568f28c36a96d3e195ab07301830856dc96e71c3f5ae003cb1fe83716779259d002bf6815bbbfc2f043ea9d855ac051b520539daa442e153de82911ab1a00abe6610c8ada38277a402cec41808e5f26ad4ad9f7266f09f16db0881815a7b2f17a2cd03eb17198a6a7e50bacdafa8dc8d5bb188515d40c06db0c55052a22cbc58784dece324d5fc376b461eaa9bb4d66c2f5b145519d420279993a161a360c486498a45330c15cb0671c8dae3220d2a43d07e1e85944bdc32ee303a8962e06e28d30e2e849bbdfae0af0c8f5eeba069fa4cc896cdc12c853b7a509117c05df63a28ca76fbf9816874734fb3263b840e252fca059d451b6176e476e2e3265e0692929758cf3cebd5adc5801f78785a438011aa9dc0fa98cdaa6d2bd131aea288baa52fe9bb8dc582cda5ae524e72d10a0ab4aa22ec6ad605a35d7b6a6476ce98585e4944adf3fb0d664eb6cd1046aaaea08ecb164194f91b0043c0ce5c4f55e367cc519c3656b7b5c302dd770fd2e7ead7caf52ad19de31694aa4decbc4c647c0f4c4cae9d5b9aade9895c33585ef1d4cf0cb188eb6b7588cc89f938d6a87c4be8d8ab754f89d5b10a37f1d488971f313a80060284801cb16fbd4a1cfd3335a817234213d697d39537e6e3e3fb6cee14a99aaaf390eb0eafa2edbccbd2106aa77b75bb248aafd916885af8cbb04b393fc7ee6f1b8b6dd7455d66100992cb38c1bb2040b5d3faf887f8cba134e83bb776fbd0ec2f73467caad5d68187345bba777727c3b1d316141ca634a474c4cef1f7b3dc7fa1dfc55792df35de3e391e4c7dd69329d2617c24d56167d59b5c5f8237f3840ca29bc1d99e374db689598afd442c3342419c965740e71d15fe4393ea3d980c85f4fa0551b003f3aeb92f47754930b38da5558baebe0d03daa49ac34e52b7997fb664350b34bdbfc0181037d482dd832b3df9f03a8431f7c8e74acac15abd488963101b409194b1d1487a3fa2eb6b201d7ad5fa6bc8e0ac0a4b61d19e0facdac4a000ebd2728496f4d882657b618633d954daa289fac09b2fb53a4b6dc01f4dbbb6af06496d629fd1fc887413306b3bb04cbf30e97a00bb348a1bd713e6ae283f4a3d3f943c1bbc2fe8f3e0e16ae62eba1d9d01c771d3d33cc1b8d2f176193948ff032bb7e4858fabbd62a47ee172016438533bdfa8dfc34dbdf2bd271f65202349f8e2a133656fbb096b6d543ca639eaf312002dd9273ac3b1a9c1a8f107851018f4a0f49d0e3b25f1c9fb6338ade781e1ff98fb9091ed645c29fcedbb7a58cdb56c4851b85affd2ab3873a0cb682c8e3676047d1fd8d76e32ffbf560a471aeb1ea54ba1b4d49aa5584144331c743298074d9444245e4e8700df79319876c6989f06910cb7532f4d5e85c8f598bfd7c7cc5fd01c2d4d2d6c65eb512d7ef6115ad232ed533eb7a041a5c5f5757aca0910c40ee3e3e9b8b14f43ee550a1c7555bf006f99d481cc95a57f064612fb5c09c976680ed839ccc4593e2276d45f073435c2e491b642ff9aa85676519ff247a23872fa8dfd10bc6ec0983a575cfcdc2b76becc25172f45b433a8938d889f87e55ddc53404d8bd59e7acdb402630840542572532712558db85c10b1be148b61a6a111ad912478e7a9b44247228c335b81a7cc0ce4069485836eb6f159f0d3faa5ff3afc3246a2ced42d15b4197ffb228a9723f1e39c79063ba3cba4033d6d2e223220310dc8cf060b8daf59d2185a22487570075d122fd80b728f6a04562552ec3d099b1704c593a95a26dc8924e3ba2e985d7b9ff3765dca348e613cc035cfd99a316ed76c6f07859ebacc2c3b69c78a100acca4702e8458fbab9cceb52eef45d653becfb3a58eec3158498a9d453271e939fa82eff717f81e9f97d5f90f198e7a4bf4a2fc7754363df1d95a61a544c93aa989b94937b336440bf1b78666b48c51e323b1f93928a07fc22f88a5ef7d518bef6efaa8f8d2517984e11788c1aa22be005f7d3be3bf2f4e333be34e16e5c993fe5d9aa28c4a20ce04db0164c3e5c5a7e275370a10a8090cb1ba11a8c945c5e1b3250dc5a88c784f1e19c588326461dfa84fcc2ad9e05bff9e9d12d01d81a64a69473e83489cb2e03774ef4a4a8530d496a04d385bb3c8046907b5266b1fb790338480f53e9b5f437a271e08ca15195c9bbaebdc93eda930afbf62aa64b606821fe000b71b899281a5e6daf474b8d22d984941b6a728bd748e2a1c4709882f74808faf07326d1679100978c9eeec64e0842e0554b3b18c2e4a7cd9d552f8e37c03ad157351cf2a2dd9adecddc057ebf6d26e39f476111272f3aee70155d01b0c8faefb139327a875f593cc3af7631d7ba03b3ab0b1ad0fbce8fadba3ecb05e4b6e689232f1710e14470a1ddfa6d547dfe453ffa6c2173adde21a95a4bd9af222397b4200af7b6d95a5467acd9a31093e86852f988fac0d52b40eee3d4bcde116c0c410df9a406d237b6af36d15707238c924512ace6ece850bf956ed3a02983afdc7cd01d6fea4d860f2aaf200b37c91f791f7725189ad9db82e234540163018dee6a91a401240bbf86a1055da0b87b70a7acb2aef58183448105274d00f8826095accf5ad8f46cc12b22cf0f119c44d4e6eef30dd7987ddf3f9fefc90500cc076ad27a8463b87fc1a4554014ed08b6251b5ac0f955399b392dda973d84fde7105971f406b62cfdfb7f83ce6a2060a5ff5dc42ba225b187a33ad9a64aff79f34bf9ded9580058dcaac7e96a0de1cae34595d62bef70a2ec4b459ad16fb08313f150d0ffff296ef96545fdfcbf7b4bc4fff27221ebdd7a258683b7afd4d8017de799f72349d1e88cb17a53f4f0e998f2fbd50649337706bc422a748370a5d05553f140fa6fb688431c219813ca725bb52a382976208d3fff76da691f5c6199dbc7d313d358ce937daf2adbd0e8c1752298cbf5f2d1596bf4cb82300e663358e33b3793835195927525902a020787592647d1d3a096fbb7ba94ea469200eee6a43bb9eaae228f9ce6642c37b8ac65322d9514b5faca74cd5662e29a209540fe0b26b2d52f92af41241130176fe7915380fa9d2f67cde0faa15dfd9955b61f341d63fb828477f5833272b6d71fdafea145b7552e46c10c127763e5bef870d051b2ec06d26d7a9364f097cd906548337ca9679ad2e8c64dd80a1a10cd226fe4788735c5e2fb0a37796712bda5e87c96405a4f987f8f184091452a39838e1be35cdac62611247fdbcb2afc1670c61596ef803276a04691d0e50751ad6cbdd9df13fcab83e06b9aaabfb683d4e297bc2c85ea9243e9a6659b829269eff9480adb7a20ab439eea01d82503872071761061f16dda5f882f09356a72bc5be033d1a5cd38e3d4b39a1202cdab767d1065cd510af2264d75c6308ea55990526f6ba08f9ee067517164f80d3744101c723e287cc9950e4922899f66c7723219275dac741ebd18911d684532b20bc1ca09c0db48224a6b9aeb42bae2be0eb86f1d40053d56582508db4fd0a1e04309cb6b7e56e4b290a86c97d9b4928ee42c4373054f6d95baf1f71adbd2a8568e3f692213dbe1c7e351be2b6592d33bdb2d143ae67f5163bc264dc0e708cbbc35b2158abfbe126edf7c4df5925a83ad6e3915ff77e78d0ebe07a56ef7e2b110e398dc8b4a77b76ca29c940904c21d9b386e74872d10c6cce8f579c44249e05d624e9596c21c2cca223ee6081eea7366d9bb174efa503105ca87a37458d2022ad0e2bb58f6b7df25beced79c7e8f1f306b141f746a15220e88e182fe9c3f52c0e0e7ca2795f81b48489a04bb61111add6170b6372c903d85354ede792ae03046851c1fae32058529fc94e516353ee7267ed17e550f4022a3c059735b4e3e69ad3f8193595925245c6bad019635c1906eac6c01b462a7113a9829f6136c2bda6e0353ab3b9a14b900359a239930ab9494488006e41c03d032a1c9155b787cb8b7c59221af80d15de472201ac203842393e6919559d49efc7c40a2737cfc9f57a5684e55da0b9078071809e08efe919a2cb8326facec0a28918e3b0e2275022405203b8a339571403ef39a34c0e0e2d1bcf67cc9e91ede905cb576f175c2b0cf6a59a53f88ec2bc654dfbed0a58936d7225e7565c65525069b988e8d8f4f013d4f9077e011ad250000829a270acba893a18372793a1480ddd9381d02058d9faf992274169c7c9083cc45ac7f434a435a2cdef3d12857320809bd97571fe328867b2c8f60405186c6e09ef746a74810be104ab9ad0bc931ae8e91b6a69ce21bd64cb30df826ad2f5f54daa09d52ec2627e8c5d61e7abc67da5bf9a3815a623e3c7ee789e83e8c59f5121cdaad2d4762b0b8d09cdbc3ba656e77c1a929791b4ab26958a78756f31e4b6ab1032de9ade9ad425d818a4c1c445310815b610152f7e1920b09c0b97d9b522c69123c113d1c715aa2b4b5c8ba7e7abae6b254f9346c15c80a6b61370d503762d3317de594d91a3b21a798796ebf39e53cd152fc3ba1f4124d063d9ae85e5df83b6973e3e458fef2b536fb31da228607ab14dd21299f2278d409d17c84e6b3405e7a9ca5dcc5d6a2e939c45f4c30cfd9293835ed44c468191551092d9ac4001b0072921c31923b174f3a20d2a4e572115f0510fb721139104c0c88296fabd3c4cdd789aa45b511bc22d54697408630c9ae1d63a868e694c4eedbb60d8a76100547990a6ebc0d3825ba68c78634adbcca6fb606536e3fd345576d17604318ccaad10ba5f65211ba31c2e14301698e2cafb8b46cfb5dd5110682fa83f983dd4aa74aef3193d2179b7a800dc58a188724b0600d986048b2df00b73d4470e87dc750f971dac75cc2224c6f7b90e7ab25cfccd38e9f07b847f4c20f3efaa1df888df17437913b820d3bb688533e998b5de9b8f2d18a93f88d022f997cea23bba5d1a10d7625adcde9d502a500c60d0022f903a4093cd0d7fff134ded20be911fa90eb4021190767571ee334cb12b7a68c566af4e3581c644b2038a5ea2bd5ed20ffb43965f21db930977b40a06b59cced4f3ec6b6eb6c88ee0583223e1c43072ea990c3f3e04e14b433358dca3aaf95d54b9883c3b4744652ac52403560435e11d412abd38029cff1c566643b03e61a4abca310e8890f4f7c3fe63f3325dba6af49571890ccc85a0f8791ccbc1409c67b78591ba3fae3c8e12638e8afbe21b0c34ad448770ae3ba45e2d4c7f16845fbc2a88db3ce95ad5a6c690305de49ce968ca93410f80f170802f62f7b607b1f41176c2c67421b5d4f735a58b15eda21ac9051072252e6a95498e17955b11dc03bd7519544538f9d25d68d7ac9c993c61d51cc85abd02e66d4b04a687e80093e5c20a443fcabcdd68be5f7b294d83af460bfffdb4989feff00d3f2eb042a0cf4dec854dcccb92bec0f7c939ccb56bd399c53f7a65ce8549db0ee5f7b88eef0548918dfb119d23fcf91703324dcd556d7873f8ab6fe2aa6401d22bfb51b20e2dbf52fdab809b96ef8d5501017f66d0f897f74dfdf907ef4d2a8930089939bf3f8e8d19ceb785faa645dfc1a74b07df7d2719617299a831cd4b1c38419b2ae42835fb61cbf6d1a5dfc60c7d07aa63f23842eceda0c3d1cd8175f4b5fe40637bfa41889c8c39eeab225f67c686a4e4a664f16ad9e476c517ec37687c8289fb2d6137e2804d7c82f4291984214d38e475cdd02f06546724170b4314c87de00837b60a32fa5324e8a6671ee6e7d63ae6bab89a935cc20a91b705df3e32548840e826a5208b701406a008f7967fa3890f9eebc60d96de75ddce1ec803773a8fc907fc6ccc08334119765daf812bc45df9bddeb86682cef69ad6dcd0b8cfce38cf73081098c5a51b9cb307e4d729c1e30107348f890c7ec1e1faef5964f38262e4e423d4e20c134c449d851247c52a7f236c54cadab0d804645ceeee06f8ea785c4c3f8fb630a5e7499fb1f8fcd10f16debd74ffcc40c7d2e28e69b178476aab88240551b69835c5ed1339ff63333feb8b0c9fd0e5e97bb8002e5662e48205728140681e480faf37a740c130a2d8d4b65362dfa16cf5d34f04e212b7f30b61a3f566284a56a161b38c2694a5e22ed3f948f8651a824d1edb88e9ec3a475843ddad0d05693dce58c817279f19b54b0a58f6bb4ab599ece060b389d23ff1e1a1a2b393fd24c9da5145d65ba194b1286553cab8dd12382e99253afd8b9da9aa1c33008b7fd9f10bbddab3721e0e4db11fdca30bf71733a7474772c1c5b0e09b19d5b3136d9aab732a561de1953f3f39bb965d0bec5cc271fc0c6c446b7cf03d79cc863926ffd6dd0036cd8a2c3c63d7fcea9a9374f57b52b19c9f31b712b4c90f25eb101e1548dc6c400897f9b8bcb4f4de78bde198cf88109930b45d1dedb62293e6e81a80e584d915d6ec1f53b8a4a99311df3d1d68b22fbeb74faad8222f98462c3220831548d5cdb941097376f16ebe8adaabfc36306a7ac205ab6fa260ebd174ef29f60f351b3832aa179bcb349c7ab21523c9491c05730babe37fd5270bcdbfc85508191fdfc9befdf71ac6705a8a277b4c479894606c47900113f7ec0edb8da662386843f8cc894fe82d97ded992a7ebe34386f73ed725ed8832d91be931fe73645cde4a762372767097748920167c9f276ca1a687c54bc24a1023248a1702fc0140d62823e2e08bdf1c47df2552074ecef2949602413cfa5b147fcd625645dc0d494fc3f7ac332f406b5e4302d6a79f84b6989b82464ebaa3d6ad5a74d3b4ef677e57536eebf7a9152f31ec727a05a4f03461829b71a8bd1b535d55e887452b5a241db35a8d38bb5623cc38746d5ca581af088edd9b179eac1a38cdd920a19cb3746acd8e53b1d9bbe23a9dfad3c3b2da30309724dfc0d767190cc714945a1003f56140871a2f1981d0a28fe314fe266e8ef2432185e7791154a0ca3c2c87ee29f6d0d99bef9729be29804a60c4165d52b1aa1732df1072527df19836ba337e464b58b6a966f7f3d06681b57d35398eb9c9f09085da6f685efa325dbf10c361fb89aa2b8a6ee37e07a14dbdf124728d440d20792fe8bb77194782da509124b065fb442d9e6e258d0b1a63e46758735a55546be624490900cbed2c1d9d92db2063c4205f2006a10398419124042d6f551573231488387dcf49060b3553b0a2898730967184d84283653a75fcaca0680dfa81709282321cb39340cbb0f7989dd6524639d529297c9ce504bc84bcc034ada5338f5b0a34bd862b58bcfef4a6db468dafbcb12dabfca55a72fd8f094006e1b8aef65f2d5b8846086ca340b43645ce4754f758f4fabfca6c0d3e793158d490070c0bdf3565a748e3d551f7b326e1a346c8df527aeb4dac5c5ca53f2cc6c3a04b26e9355a65329df618d1c9043f90dec7edd7d899fa4490f2ab9fc7062d5162a41f5946ec4bdc8e8245ab89d6ae73ffa0bdb481043882348e03fae1f68dc6eb0ba0c2e163291cabe947a5d9b233f0a63d8e2691d5ef1e75a8d49b494c283de9d9e1accf23bfddc2e02eb9a9205cb1dd3537c9a540fafcb1463e3e5406c0dc644df76cc1af3b4fcae2c3b3a84bbf75def4984fe7dc1b881fa67f7f4a5f050f6664162f5ffc8c5fb9197a5fa9757845c33b305badef004d053f064fbd15e7ef6367a456b2e543f9d37fee95b613a38bb330062f48339ba249740cd86a87bb3aa2d3f9c7771246073e8f0a610155e5c653510d791c1cf4382e26835a03e91b767d887197b51d67d38339c5e3b728c3cc08f5a807d08983a52362874e61372c212f1a2b94d1cf8236050c2021751f221ea279e150dc7b36a5a7182db62f7443caf9d50bb7359b790f3714ff40d62264ff3e304863279e9261aa4c0f1195c3adbae52389343fa07c4829b67b76f8b526f84535c238afbae3dc3262ee4c5a1f11e4cccee315e17e0c4641ffdaf26305d11620c355039de1d3bf40a74621f9d7881bf02e497ba21e940050fb95448ebfe61e4e09b59612077d58778fe4f7f17db0e72887eecbbdd4dbc314f3891a0d96407887db79207bbd565e248c7919d1b3ed2c4f906aee2bdf606e732d95220f60ffe7ad222884cbda68fa9740d534ccf2e958c988d01fbc16a3c4253a470e679111b1beb6c998a3f7d855e593b08427ff973c0d8613b0599d51094960a81d185c2d1f3251219bf2f28ae9c97c08c03cabfdc5833783975dc76f1b32a44c0ea4174ae8cecbdafa834db794382c2044e514865eac17989ab82ab8cac7924423f231cc6271726921b59743ca553b380cb4ee9df812a65c3d51c0bd596c7b2e287ec8f970e20894385e1298a5e57b0a09eb6758faedbe29ea2e841c8568bd66fb51dc1a311cde1fce7243109038a46ca9d5bf0f585d45608550fd70f441a0b3ae5161bc9dea30405e58c090007251d904121f2140c8202477f21026faec2e4b07fceeddd12eb2fea68cc5076fe923109faf95f2f52c649448c62933d2ae4359081d8f54fa35782d8fbd49431944c5de55c287f21b5b55f873d7aecee5ef86f8368bfb656b61f65b33e697ab57461da91052acbc7ed32ce0e50a04d277daba98dd3297cd2236a54cc950433c13a709c7ff04633dac0f0f192f8535799f8d14f062babaf7acdb392e130eec09e0e94c198a0478306dedf75c28bf2c7ec97b032ff1ca3f520d87bd4ce6cda2badfb05126669c396cd1753daccc1909c4fc955e6db43dad9d26e827c4847bf5ada4aee01c063e16381af759a88637e1a652a4b9b8c8d153b8476525aff664767bbed42d50cc07e5a697da4c3ddcdfe3224b56780922f7e9d99779a6786ddceba0f3eac3f34b2cb42a802953fa6312da3ffdf3d1e9fecbbce83ff08ac9bd4285db5727ce103545174ca0df5c3e161a318fe4699f7968f3fa24d3623dd89dea682ca6392b5eb2267ed077b074eadb28337ad526cc838925020462f0d5961b4bce8535f3140e5b24dbdf747a44def5ff5df109dc0cbf71d70060b03efeb6d27918cd64c54cc35edf6b536f483c6b53c1f77b2764896fc927abfb6761783a180f681be1e8cc0c1f0a21ba625f8e609597338620cd91072433a28d77607dc7f336691d245f923aca76057569f50bb5ff4083ffb6b127e2b1735c774141470943ac328f386aaac0c1c3de5d91305c7f3c0d3b2c690b678266de74c40691f3b96430b6319904527b449a93631d2b9a4cfd46386e8d4e8e24e078ffa1f2f2940853a35a19cdf4b5834ac2f34e6c4577a81ea62bcf6b841469f8507918da5f409cc157358c7482ae9e06f564ca9318851a99d0adc9e751a705cf36a6566bfd8c85bd6eb1b7c5e33989a2ad3fc448ee6566bdc32046ae9e392b52c2808b1a753b463a57371b85d01e887afa072814440897bd26e0786b5c101a682349805027a6c5c12189077e546d731edf690452cb465a5b1170ef0f5f4ac251df452d64541f883aedb9b178b1c72603606c939902a570fa0fa267583e9c364b947cc895c50c4e0cc9fad7f7bd711bccffdb4e6c6cf0b18e38c3f972b71f3f675eadfff477a56a1b09ff6df7443459de6d15e8da579fc88bb0dd86139b2084ef22195326686b52e9080716af475f5f58ad4e254df74477eeb8af119f1e65c6d31cdcce4e66ba55dcf18bb65ecc6281b0276add0af4ea0e909ef7a0532ce86073e394cda70e9f2b39c05d89c9455af13778695802cff81e3c598f2d5ae15d015bf6f2852b3819fcbcc7adc5a3c2eba603d2b30011bce1cfadbf7f4fe3c293120ccd77d790bc37afc43f82361b1fb6f6893badd0f6ec1dc5acd24f1d0648c5a09e1938d8ff654d250b7243884b6bf63619776e1aa078d17916796768d877025362a7d1a2de6b88bf8987afb911c363e86a711a98cb42bfbee90ff5b1332b4df792ffa87762c8a15281de51c7707bc389207b6d63b6e23327fdb2c8a86066782b9512220decad569ca0f596e99b5ed02dec0703d387ad2cebc2d84561699b6661eb3de363d0aa0257af7f22e5b5d73b21dbb14dbb901ce635635d407cdc7e4758da1e244bf92621a94a4d16334ba8d1a1890f679d71f4b7a57e6ec66f2a6d1a112af40bb90b68b63dab0eae1051b771ace77c8b2f45dabb9b4b504c9bddcd582ac6d59fcdbc838ffc03d57c58ec338b3e13a82bb482133a744df5e5febe6b52c82d071722703348aea9119df0db4471e73cc0b628bd7454d969c22bb5884e14f6b875208a2a1aefaf8a98ed09cda157428f88e375b8d8d09a7df6b57dd060a8863472bfba7fd3f4eb013a315def0537018387b852498648161de432255d1b8e563db89b2da3201967eddafa249f8ca7aa0b8c3dcfda4593aeb14fc32c1f89ad736ea28521cebd2f98d0128d7daccee475d8398fc1ba5b958d44103b188feae01f316c665d29102fae576384c202ce8b40244ef26db1855604784c3b35fd76b62c08769b5138f13d99720806cae423739aa4eac33be4b41c55450f1d52eec29c6971c83ed3117639a5b3aded1db06381f06da1c190b671825fd68b53921669a9ac5a4ba4cba55e1068cc2e4a0ddacf60c3c523fe8a5b3a9a9cdcbf2582d0e87122018c980c5fa5898b4c6282a9e01f587c7826d567a24ddb7386cb39674fc7dc5104938eda183c76ff7538737185754e2e64c8e2b44568a8e2f5a739c807732c763179e1135c7a9291e00d56c7a7601d9149cd22adbe691e52a1275d6b95c659f32f02dcce20ca8d707184c06e4db61d9348ca9007a6e2786d25f3c45118db027c20dc0ffd19877ec224a7616deb441c48717439e7003aa39c5db8e2d205e3c04c1dd2a27541947519adee669f6fc3af41a0937612ecde349cad027da9ffda5e95eb1e80983e323feb5ae2d7716db11714fa8c635ec66ceef0f7a0da7acb2eeea1a4d40989dcfea96fde01cdf096a80b0593de0564823d11b8053b534f8c6ff2ffa04eee793bca32328bd8526870e685596ec24a29cd86515685d64a3fd55cd360d5e2389ebed267227598918613706bfa801ea5bd5c41b3ea303f4ec177b3e2f43a341597d8fb610cf30022d563cb09d5e2c04d0a3ecc6a68a624d80aa7a06ba5aa58a96413500d830c3fa18aced54329bda515bc81466884585aed47ee91a54c794d1dc80358f884309da1f609baff52d1838beff9644f12220d39d85f2e559528be3332c79e94f9d8e226b8a9cce75a63b9109eaedfaf1f43ec8847153b01564e01a513d75f1f899df6ca3dd466a81ad3d74f7b4cd8e4a41220ce26a2a5ee490ace311013022a705eb4f47d61a4ce435508c5aec38496d5ca66d07f8767b9f4f189a88e7b86e7017200c51e67dcc647f8a9eddbed450a19a16294bee2ffc71fd16ce17c7dd727c19f740f54b1fa2e379be47c4969e13a2ff9a6bf4b1189875058dd699ed7228e1afc84a6498deeddb4f9c89f70adff5f33260fe15b9856c338593281fa6054776da3746f79ff00535745818694b951286ec21030bd7a0abb62bfb62d52327726adc9f27a695b48914662c9b295805355453604f18a4253f3c64c9e839a3606efc280e9f93425610b94139d1f57fdbc0abb39b4ff633b63af5a885cdee544d3541d88d65c4711fa5b6de7f06a8919450db53c3ad6a171bef630617fe6db19372f6d419ad61bbda740627289c6110980f30c97e73aea9e50c2bdc340c03a13f0ee160b2e38252a7c11079ab7f0e18db3502ba53947324932343597a8b9b9029a01a470ea8f52971bd79b43933406b3b62ce391a8e72b13e5f8f4cc9366ab416f8a39286fab99696ed021429f3534cad26e21a448558dec8fabaab33e27278113355c30b3604585798ee2c6012ef4d0545fc924dba14ee071635e46eb151bb62020fbc24e4374603b8d928f88261153067932535c370a6da1f16b0b0bd24f463c5218b796502751fa984f93320083a153aa23f3c435f4b07f678cf4c677a80ac6167268d380a7df6765c9e5f64a7540bac01034289af5cb35a3de17c43708dbbd426acb523e606b9addea4ff5e67ffa580236a5de02449146c2baa94da9837a756dd79590b61c5683a9b962d878dc91c56b54e57c79a5c80db0e045540ddc70058b70407037d313245d4bd3c9ac0d16068812e8624d16987190deac9a323275c2a3eebb1e0cc18f6102df3b4031add5e0fd612cf00297a9abd3e0cdedeca556cae192002f8a4454857de486efc909d1aaff273e446dda6eb3dfa3e30edff0237b04a446186d5f4a79a349de9df2d7c2bc7d6c5666da9927030b703c717adbf9c5bbbeea00ea4acaab1e0c5fb58f55b59ad23141bba505180965047432e5a5970f0f868983ef8e801dfb72a3bd01267d811bfb3a393e53bba5d02e0a164d9698a827de39097d12e12aa8d7b8e5293f8174bf382b264ed7181bb9a81187f718fcca63b35fd09436b26e5087d31c10520d862133a297b2ac1078e784f2128bc5c0bb73fda8ca69eeb64724980d57f00dfefe73f780b14d76f01c9b66d3438a09b3aa0a70e3f57c43b9015da712ea043062d4408eb7d98264bd65af04454aa477ec73a1b3e5ae812d13ac501eb7e8a84b2e70c71efa6c67dd4fce887ee61a568ba86f7ab9dae0625f23166462e93d328ec90b11de5dabba2075343570be233e66e92605f7031fc87c4883e0527e6be1d76d9d0440193a8a59443abd910e33a6e099ad421257cf72e88c3d884400569a861697961524f4d849adaf40189228ee4df16e280c7ef5afde1e5ef9a5dd73a3fd5b73602b603676249ef3ebc3e066944a76c13e89c213487cff155efb7366078c84e826d88bb5c794c19f9fd4450a323a64b60347ffa8ec066cfe160a183a4c0b1beef1de9220da9e8bda03452f41046437f5f633d1abd9ed51e7816966ee4ad0630efd2f257b36b8eb70e2aac11d5dd8b6ecb4ba9b189f6a3515e8f704db2cbbc365339c6f33ddf50cde8ce8f5a020515633620eb8cc1ad9a5490d034c089dfc1f825af3c80f528284f40193c768bd8516d61111a10ee372d40cd4c7d60993d783309d42ee145400d3bddcaeb8b7c64b9f88f849c9bfec7c436f2e0d3ff72d607a6127909b8783479b7caad45568e25641cc78c4f6fe5daf0a1da816ed072775591f0c06a4878a73546c55e2ff6792974064c9660a0fab4cdf67f247dc3ed88060fc86cfc27f929a9b471b84cfbd0edda5e4b37c2be5ebb31d1ad38808933d08811bf87a44805b257458d66d047edf45092f0b2ef74612d1d5771bb7f40f3961b603e93c2398d905320c1edbb9d46543cda2d9e24de00a10cde4760032f6477d2da7f6f20737126a46cab5bda0a5341621b08159ce4e431612f49bd97fa058d84e479e4d4ba00700a0876729c4810a99c9a01f084813921843831b88ba2cf568a3910e886adad974bc03321802d316f39945fe40e2e0ac3aa3d610af675555e7eb18feb92f0653e7c5ced0c9034e17b9214ddc2a3f6c7b4b95b9d0c4210e211d820a4be77cf6741ad130a137074eee9487b64b87ac5526202edcdf93855397de89bec29764b497286dbba1e139195f522c5af676eedb3d3f017fbc6f61d0908864441c680d5413c4db7ce190af08f7f35c5eed8d619043856993c990cca312c0132fd59c95f206f952fe8838dbdeaa900dd4de0a1d0fbdfeb1e11a11161a058a1ac00d6373c60f93ebee71affbc30794abee679c5a94f17962f195d6c61947661ca26c0fd1e0f4402fd721f9cf228b82c2f4ca5b8ccdc1d1d2fcfcc8399ad0bb88141ccb57f63408536cab1e22e3a59bf379cc604b375a2cf3595b233d4db501ef6eda65ad21558ad49469f4e583aa4167d326e74f7ddd5a3c36f9da39270861b68ea6a91cb9defd875efb047b27f5dfbc90529e440af67d9a2935ff13848dc0d33c82363bc6dd9ba57f527ff7a48073ca147378ebb758288f7aefeaff3cfe47b061e0a5e50036794dae5ee907aa357d3d2521213efed03dd0b8a3d485f1d31ff60ead0a5bb95236642d70d7e90a4f2ed2ce09597612254aca8d2179d3ac07c234ded55cb38b5d9d4a6089d2ee57a2e5306f7563dbfbda5b6ee3371a50965953a2b8c8be80c5993622e7941f5db09bfd80b66c6dd06bf0947ab9dd9a6513149a2b0a49f5be5277a1dde1f500bc2bdb25a33ffba48a956d45cc14a98b97ea30b123080a43ff4a712b09430816334de524fa684c91c3d053c825a1532be5be915ef00d3486e3cd52a7583393b40a31d1e84f680d674e90935a1e99dcb4a75c193555c42cd2391b2fc8a3b980168ddaf1462896f79b1f682b65e3694c612970edb74cadede54f95550e8f1cd8080030ccdc14e1a6636b8448650600b6ff6b320b251ca81c357dcbcdf53aca7719418688f110891a2982c0dd48857c133a97051cda905e024e083e8433887999d7c3253eaad6d71e27206bb25195a17d8086e45f82918f2a959f5dfa96abfeb08b802ad83bc80f9b49ac1fe16de438ba087a3ac51f44e34de4d692ca8647d7ca3ab43f99e537ab3a16c659a9dc2bcf3e1d1116dc48b79deff436603a8a7b75f50e7caa93d12c1c1fc657f4c9e16e01dd6da25deb32cc9b62f591764121604a71bb6de23834fc6aa3070d4d7c6f175734eb99e3ec86028784885841885f38898d6509eb42a54fdaa92ce7d251c0458101012483456551d7a4ac370b9836a6406238778483fa559625877e307dd54a84435474789b92360cb7a4e7b8024a690b58b6b0530e28a79429809d69ac3c26f884c31cd436fd7c45fcd27c3e3b6af88b77dd91edbd7b22aa03d8ff7e6524f663e4050fa77d61f272017001b04c15a13c5764d57b18cf6d78e361cdcb7d895ef80e604b4a152c30b8f469339c1b7a73438aee543d889cd1e070e790834eac1d4a97b339762cb405c0b3cb0a37045396f895abf558fab837d4b7681f4dfbb2be607f9fafd87f02419cda062a620c8352370533d7aac14150d43a0e927104c438db467a1f278cef018de7d9c6d3af5af488352f9d3840f8fb364424c70a97f194de314deb3056ada6cb803084c4f8526154900c26857d5400d1da6e1cb0740e01511dea975ccceb22dfd659c0345bd29e17f3239a4be4c9a02b83c137ca93ebce5ad4f993ef2e8129e9b53a8c450b92a045f73714cadc2e29304c15f94c38271518e1d44dd31b27ffa198dfbf0db23ef9af8d614d5209fba4debde8b97847479ac8a3292eea6b1a647f6b328fb40ebd5efa9baade95b1e79783094ea9cc003ce5b60d85e164f43151ba637c15d51700867084b35e1c87f1768620d8129e424d0c88ec5f779f04bd6aa0f98b1c7071261f40f042930e6b2647c92efc5ba24e001b0f7f98fef36d9bde810f6d0589d8be68a6b0df7ef5fd28181494066be8d19325efe350c904f5da7cba9e67a5150203c510c81406d4d8af739a05b6707653825c5e2b0d0ca224c60f80c90cb9dc9bbcaf10a5baa0ef4722c624d70831af28054a86c41545bbb0cbbca8a8726ae17db43ac82fb240fb27a4440777274759b6a3a620dd85824754ad684da71b701f1998de7afa4bae252159a256e06f31df349ede9a6cb8f1f0f1209729589330db4afe37e39fb3cff7b4c2732859bc5c46e8af20480d9ed7f320c9b10f5810aafe9a5d41d8acdf2737f507cfdfe2c6ef065b6c64699d16cdd96bafdb61518ec721978f9700c1587531d73b8de2a34305584f0b6927c0991c8ed1e5fffa51544168efc523327c1f4a76e21ffc1c3eba465cd368b55316fdcd26863eea0c65070a2b5b3719f91df052c1fba47c2bb767af508d3fd6f80e1c60b32e8c65ed65d3df568128b663c9847a875e6d17abc708754d6a6399d5866d5bf96ce355ef3621382af46d1a8979add620a07be5a563c54947e707596b44e6799eec8d7238d0d7320118a5b25e3b0aa5a3d5ed8322d979e3f6ee05a02256a88ae3b7eb56ca860f9c072192f23a0d8adfd3077f12ee23b1da1140883f9142d7591b3ac4ec813e46bd7e38a73259e249f5a5d05cedb2779116372de8aa35ae0a76165b0e1739a80e2e1d78fca95360953dd181eae5c061faa19e15d6626e35c5b5423a1fba52d3f80cb95fc87fdc96d9743ce75a46dbab45139ce2245ee47002e34e415156dd0be65ea5c9fc037ffa5bb3379d2fe441af28b2ca4cfc991ad8f4b7ad08b2cf3360fd1861d47c362cc7114379af4218265ba3d86e203f400b2825f0d96f4383f2f7abb6bda08219721e9f33031d66e5778f5bf8f7633a43a82967c221899c864de96fa54621c9f399795c90fc9d1a1e92c5e66f580e286cf0c14f9515ca4af67a4796d7a60d1299025bcd5a16e79bc688e464066b8bf64a4e07efc36a08e62b240c331341ee5f200c0358b8cba5eb31877100f86236fe2b4732c4f47579affef68169cb86fe4ddc79605877da44cfb8ee1ea0aeedb50eed3e064ed40fcc4dc840402a552087e03f9f86138ffc5b139864a184a3c6eb669fc9c2c1914369462ef60400b5b7d49fa8c820acc4570cfe158512769aa7f73a04073b73b682e13b7ec6bde350c131a31f661e5f1b27d68b49405008f8b8d45b3eb45ec55cfc5a59801a6b9a4d8e3d5caf3d998bd3520cc553952424ce9b3f55a2e2a870c8d2116b99773072a13bb7de98675e185079d876ecfa91014730768e2490c2714646b760aa3eaf9325f440b3fe7b64166e38c937df169b819c06c42c9cce19578670fc3614d49a5daef817fb1123e1839df97e03dd3f40cbdce3d0f4e726031aeeaaecb017efd7eec028a82f1e9dc044069ea0147d9af8985221691f05353895fcda1117973627f2fbdd0044838926979f2ffd5d01b9a1e6a016a9916c26ea4073cd65bdfd7c2d63997cc66563e294ecea6474e021e892aae977bd9e44f8dfac14b44ecb4440bd11cea0cb7dc2094a0b7e50091ce6079b715d709fa247e0b21f04479e2ddff468cb0946cc17576bf367f058f394d29145105552fb880052334a57502021198fa4c763d6bee0b7b47eb8d04b71187f63f2262858413d6d8259dc4c4ae6c9acb6cbeee30237bf308065ab00104c5c4bba098a8a38972132b66824aa15ea92265d408b99096fc957bf9b086b0a48ca0e149e3c880a2aa1d0e339b6ad5f96f8d8a796fca154de5257983172038b44387eb9c7d2e364bdf645416f10134eddf279cd7b4dee69863029f2a6caaf2f7a9f487a78f731d80fe97371c7c712db62c3fae6349006cbcf42782bdd5310f6a24110a611ce28539883f1b9d3225bf507251584fddff328491997edc944c966475927d8a543c6cde65a59d1d83bc3c10ad8c8c1a6a69c2c01da5fbcded40cf39b021ba422c7d917ae2e57622d7a8575503fe1a35b89f78818e38addc2a9a8326388a03ca533937869646ef366617f364dadfad73a67cde2de852688a9bcf139272512804ef0105a9a2d589030e02d580c29a44ff45772f3076dd05e84010134a8828197d4e8158afc874a6f744cf0bd55eedd5b1c5d3da58727882bc9f4861e5914879cd8d90382e88c3a920c7f062316fd2fbd6761b1baa3d92319ab31108ca1c18a4617d148e1e6c420fff996fbcb032c0b6a091295a7875c27457b3710cef9e1b6aabfc52c89f00dc1b00a768627b4e2114102986b7388bb7a69cb3462d5cde3a24b8c01a817747aa2759de6793266cb4c9d0c7a57db1c096fabc97ba1ad5e204d9c756f129e28c5b30224726c31313751306908e384bc645d625181d1b824983cd7ea2a255f2e326c3cb53e76c3739f1034ad4b1b53c3744ac2232ba8c7ebecd3c7e36c2c713ec93681ee08139326223f3731911d3921ea895c17384a03f04dec0aeae03a356f2f95684df09afa467998427036ed1b79ab9852ae603542337c9c4f1efe1fa2eae1341dd279e2e8a69a207cbb1255af0e8f22b77d559fb0738bf18890177d8a0adc4d2b527b704633d926094137572db3f3acf28d4c5391594849a726a1127f0ef40855194ab32ff50cc4748ee8e61e6e134c7cdf993ba2fc1a6a85db10f09cbd444fbe383da6d9a5477a0b948fd2b8ecda585138c0e64665bd8605c9c7e51ee9de54e56ebc068555d9f53ee7760b4af0fd1438957e4f23a836e0cc69f1649c1eac6789bf2a2a77bf6a83842cfe2ef804612efc545debd87190455d0fa024bcd191bf5c25c77e1935efc441ea4f6a22c7d7b8d28d184b69fd7e7a839ff1b8ee37b98f7b2fb7002030701e9559bc2f205c79e815c854fb4eb70ab105bbe96dc6cebcf2af71123bdcc9e8c74bd9667c3ca2b9eaea4626e8e3fcbde86d685a2a7e6d3ae6653f50539f0e3f61428d0e1a8de73bfdcd229c4147d195caf13ac3f868c5b7096c97d868b41b111c2aaa32f621cb5c2faf599b5195b03a7677168629f73a87ffaa200a3e90a057d94ba9b37bfb0d7c6a861f0a242411a935f1967bcd8ac8a47c55abdfb804c29c80833b42df5ba9d4bb4c520cecfb71320765061a0f2ff61583ecff213c4796f7a6409c9bf28c71b994df52dd5cc81660203c7e33821de14df31adea45b0a29e17c493f6b4de7e8113bc24e0b50c306c536bcc01bc70ebb86153cecea3eb61ece888a07d08679dd26f80a7f20f21729c1d75b4c65accdcb9d08f7487e4456b3ab8b339c00c47ddabd19f6c5de310833c17cee6c991a65358a53b42ad0fc890a7e1e2413846a4da4bc3edf3d1564c383dca39b33e967f82e659ad7e6f2f5ec5f1e5e421a736cc4e69afe41aeb68f1a1a92ce6d896eed5e0c60fdf25621790e3bbc1adbec24711497c6e1d9ecb66977cb42d68cb7edea0a6ee2cc677f78f30ecf1e9514a86a800d8eae215348d15f411f8cba2bcdfb85340397f9c78ebdffda12faddfebed2a8821108e3942af8a26357f208fe97f8fa436e95a456008e754686c06694f06b9cf1b6d29a79503e171b192c8293ec2b31424370f575bedda60875bc3eeddd99c27acfa21a34c4a4c16bbb5d6761adb862fa10cf23e4197bc5220f597d97f22a49606b5b3733de29daa21b455f3a7350708aadd6c26c0af18566dcc568a548915b631e5a1b7e7a28065682a43e228ac26516463ab4454a9065152b674f02cc63ec64c685d57860a2ecee71ea289bbbdcd366c90aa2db02e541faf86333c8a1251a7097eb1475ea00e7df9f7e9124d785592ec15bf5541b657b59dc50357cbf5632697330b4b25befe1903c17bcdc922830be846f8dbc25ccffa8c90fc432ce63a0b90a6b659affb6c0da4a1b90a783d7478a2478aaecce647990fb1680909be4d7f63e934e02041b75a5e47a7b03bc958516adfabb4a2a652f27fa69170989194d93b99bf7f46a4ace9c81491e0310cd584ce34d89032cbb7490b7503e6b78762f9a8be7bafce4077a0fec5bdfa5b53bf8b2893099e47cf797c7a143a5190e66c14498db39fd6a7aa5a9249b73e2ccfb7480f4c914b656bf845a01321a5b1b67a26f5b6de45912ef2fcaf6603f452ff50834ac4957de36ffdf000284caec99642cc6ac05f992ff9af7f7c43e1243cfa3d54ad841c317162ac623530f5ab627c86c9e3dc6430ee431e34b76a8cc79cee128f4385092bd47a98399a287b438da077b4899abcdf7c690b20626a55cf775fbeeebe8edacc03902da947a37c39debe3f322b1b2173121391923ed46325a2884a9a3296e24e8cd210be244d3f32fa8c67b59c71c60f4c369e438fce9ce3a950193d59476b799db006689254512f375343ed3237aee9825d64489629b82c6c1af26a5286f054e3a65972e028016949612512b9b6cfc1d380cb8a35f82ffd3db5db0351906ef2cb27d9165504fbdd7d85e8fd47857e6640d912f4f306263d84b6334052cad1855dc1ac0a1a5de74a25c38d4779ac4e7f617c804af6f473ed3718ce5278a2d1578c636a7c9bc98d9df9aa08d39fa1f9bf4ed0c305078ad24e719e39102de78be5e242d27e26b6424860e233ce6ddef15ad214435d6115db659b14058c6c8c1e11734f1456aa02831cc1dae4449adf644d39108309e01c37155f47c98dbb8d7b6beccf5275f6f67d277dabd534af9a08323dbe3b71501550e26cf6f7f30bc67d9eedffee499df19c2682cd9990f73dce7cd2b7b377f2a3423da2403c21b78417571c816fba588d6eebc07bf968f254eff12b803a4085dd58b5e0eec5ec98cdbdb5db4c40a8f3e8bb84b0ac42f310e7ff025018ed9e80f0396173133fbd58e29fb5726054197a6579c746c96475fb5a58b029e74d1120dbbea6534dde13c2e193d7fbde0c024f345900077f75947e52312f0d0c8a1f76f0b10297f4a7a00347a90830864b67b41854aef7135f00f6106393b54715a6881358f1fd5e82b6e8d94173ff6ae7bc91746bdc8bd02bccd182771fd9f6fef4dabf858d20b150c3c52ba09652391e2f29ee76d8a304b01e44385df9f27705398c7f4762f20ae8c88d6d4cd63cdc9efd16fd53860be8d0797525eec06a9ef43aeb5de46cbc53070a7f6c999d3d92e8a4bd4a8a0d5d9cc5abbdb8ee03841b87209411c9bd017dccbddd25c640c720068b0312fd773df65a36f93a5eeeecdbfc1fe529b2e984f89d70a9448e2d9a22b35ec85a020232588e76d9171eeacfa6b477501be5b1ed08eb7137fc5d0db5036a8284fd0af1992c72792bc618b10221afdfb80b13f5d96102392c4f0153ea0de7546b764b15fdd503cb58e59bb6c657e928f3bc956355abc115a690f5aa4c9af9c066b551156fb58d4c7a6cc7d71a8264353bd53ab6e63adce19828a676899134ad53d645808f6f6d27a4a2f17288f1375a2f635b06d07fdd8c3175f4ed8ddffcb2e765aaabbbaa735349323c4d2c60bb9123c8064bb5cc08b640a231a608c0b7185933876e384f2a863765243263cdce2876f0be429cb8575319e0bcdbb01fb4e2ed0cbed828ff1c84628661b06f5347afc9a545f744e85fbb1644e6c1e4e2480ab211113939e1f924bc92521ad2c03ed6b17a6f1ee750ebd36b7d6f1f1eb271d7228958f215722a56ed81be1de7ccc7286843e829affa0355e17c6c3f42925e2b82b520486c058533a1c52e3d97744c9005269804f01e0dd88c595f5d7d4a843dc0623d28284c3268ce1433a0a46f304805b389156eedc0d6505f3d36d8f0b00f21d52311f75c1a865fe893bffc809ee9742606be7f0caea1f104fb476c5140ae3db16fb212b662018a06e64f2393f32b2fc5ad1828104abc071e251670c760b7583b5086f8e0f25f8b66621266be91cf479687a7a2b06e3337c1c196270ee4f8565566992c1b7cf5457d851342ba3814c9fad622fe79faa23f108a71433886b7e4a6fc01adc3745d88131af135840cb684f625ebd3a04ae9cf38499dcde057a99ea428073b38b12466a57b89f0be3c7fd39574e19265445929acf60c4af765514456b4c03e4e29e8d29aed66a8b60f59eb9a314e52b5ac4b6144d9eda46a4923b98abf76d7a3d1ddf13f0f69d96e1af67431d929841a91e72c3edf3ecf82a16e6f31d9fdb46e401d04b6fb5cfd7b8c836a18a1b00fbac3386724c530b42089ee07718a18f6af83dec1a3cee042fc38141bab167562a909c557d0113e6afbd20549b08247eff77380949fedc2ba8bf07156e1c85cf1b694ffd2a73d701223c7bedd442d2b228657bdcc703f04f908c40317c4256013190f77279e523eb78f443c44e5d7877e308ce0dbd3ab9dc50aab6da9711b5d1eab7f724663c803a1aa7753672d5ba393b9ad7b4fc8726d71655bd27d2ca49f5e68cd17462530d0d019323b95d8e31e3e6a8e3bf9904f943bf72e7f15c3b6cde3f68958d3c057d9d1852d4ddf5416f46ab3deb1de46b5fe2d5c99d32ea19c206f2db95721632382f36abca603a5c57b97c9c738fc65f472f8f2c1780d9e36502171b1c1c90938fa4e1f12fae111400ef6825e44a63f4fd60e09d0c9b3e89d9069299aeb7d1924cba46452b7bcc19a7e47c359371a3db9bbf767cc4472d6476d55544f2464bc575735ef14a3b11aa33f201b9f77eefb4f3213f666e154538bb5ecce654fc08a0a368a8ef7897ae5fe8e513e004a7bd56442b89e04de844a6f5e29fe6b1f402097620eff3eb0a51d6cd2865855ee75ce0b98864883863208c28ec623dcc73f830d108ef5aaa9a77c3e7a57e5c42745e8bcc9be97a37d55cf6c0e69636e097d16a933a3cba8c9f9b3cc240699020ece2a24e8279231e4953e92deb651f81cf78f884d5b6570990a5ddfdf2f0208117386957e049e873cd6e60f235967df14822ca8b5ab05d994664a92841325f59eac80df29ac017f0ce539d3757df810f23e8641a8878f44a4ffe07d7ae69c06f03bfbec427df7125abf430f79105337e1e1884b2bad15d74708db76726ee42fda4a9986ce3beac95970ddcf539deceb2f2ee604a7a1a259d7bf4ef4779fe54662f639ee951ddeffc60f3409e704ca7d26661504d55a39740cbe48f407af89c69ac89b6e8ed7f186c4217d12abed4948e9f30ccc56aea95d693df4ad2d038fdb904c2c402e1d2af2d9424d8c740e12e53e1eadbda8e91e822af1c8a76d1090d083f57e5e272caa2abfbdada6695df48fe6b7764f1d19557dc46ef07596eb4f5c90fe9413f10267d198f3575557ac15deb40fa50dc14c274a57fe88b16ff334d9636324dff3ba6017e23b3413acfa185ca2ccd89b9da8a6f35b67b36eeba379cba5e585f2873b3545183428a6c5da1dbe0e6b715266f8081ab72670ba109cded43962708e1d95220399063fdf73614afb24a3f6e580fc74f9d0776da6f0ad19cfee1e516b05882c84bc6b94616f32ff9061040338d5f5041d0e63a9977cb7b0297a426d2ea4a42772de300a1370f3651cc3b35a071d7719bdd1dd0ba77ea82e835d13708372d0d65c8da0d78aaa1d655273e37915d8a9de06853d97fb525d80da21f7f08923d6ab6a0186a7b781dfe60dc6ea8a1a501b93cc414015dcf5b792e2dad17b7f53b2cb1d7b7e9b101a37c2e6d9f92cbcbb2a9db8b1dbcce8fe0b3c7785ce4327f6d6a65f35ee946ff06e9d51cb8e86ef955ce47951f9b0bc8f54a659f6748f6f776daf7817914d48d8cea46318c835b7c77c55e4aa2d74545759f8d24297e88c90e425c8c802241ff7f392a9f79b1866ed47bfdabbb645530f89a5f0a7668df8f8354d18ad7f3a9ec3d8bdeaa1ff3c386603f3469a5baa2a61227478275e66edd557aac00b232ced6a13679b81500bbfd6b8fe3fef732bae036d102970935a8c527f9d639259feb3424c199d9b218f51d07d28f66469ac7840672ec1c68206a84d257c39f8368db65f5eba6535e471d410060787a8981df5c490c660bbdc1ff5b508da1728aa529b18931945cfc7b75c3601326511990e7424afdac64cb411dbb7fa5ddf1e69cda5ef09f857eeae051848340918d3650e3215cf6698e6cf3837b03effd258abf913dc9d6be7aa121073ffb83f5066315967c1e0d60c26ffd58295cc746860ddafaad79c9c41de2f4a2e0366799bc3df91982292a7f158b9aaf63a4b11db81640f351cf7917f3f3cb7f3b5df9e2b3d0c636111ad936b59d87aef31e89beba5bac7a2906b06584d0f3e66d5adec31c177aaa5c1909225bf319eff4676a7bdd9866844c35116ffc78954057befe75f5dbb3e693c1e34cfa7bc08a41767ea741a5dcb2d3944901f9ec2da941507f4f4b0b57e992eb9d176d21ba5bbbcfe1a5fe5fe5a6f71b9a06ac35afe3fcedda5a4807bcba7038cf1ba8959b4554858b7b14478d02d3ddacac17acd3efbd3641542d1d1e4a2d39d658b5a9876773a41d6b0db73eba07d89236e642d60703ad5a7e48d18aa236e70e3730da81b6fd1f2e7bd70e9c36edf51819718bb48482add06fdf4d59cd40d12f7525f591cd052dcb8cbcf99280b9a6be45c31c452109af0928fd1afe2141f92408ff5e4aa6bdba2546e0f8cec6c0bb5b8b03c9de556665b6dbd2f965bac640fbd47cd81c7ca6fb83e913725eae852721e2a2a4a5c00d65dfdc89eb3dac30522c95813d6867a105ada6b411b6394d3ab2d22028e7e17d3d663c3e09101ce7b18ce7288fc6b26f98e7b301a7ffa76a7c4bdf7f395de7a85cc8a1dfdf0e19e702e88c6aded964967e20a6c08e7e99bcdc73ab698c25af7ebaba685ab268ba3e67d4316301feeb8c4e4781da137f44c1baefa5f74fd45dd43d56c31e5002275ab4f8869b96e82180f43cdd3550425235bcbca98db5e3b8d628510e16c8c7004a7fcf2897758757d94a629d9a8366aee54d16ffb9e1213e73c7f3caf8298f67069dc45f6674f24dd1c1dd93549dab782ee4479111ceecece2fb0005d07cd32997e4d59ea462ab9cd43883663712a88787df38e7ec2b0758afab074f37b093ba04402616f689e4d655d4053df7bf194d4899b112902fd8a6ea9095074c78d1114c4921b0b059f0de833def50c387a7ca2c190b033417912fb87bce963ca4949f58b56963221a63aa6b15ff07d72dddbe38ae02564697baf7e3f284d666f5fa169562621b978d1c0c7f12503186594edb7df59b9b2e917afc7f0dd030084ae71545847a866661c9fff50973b5a5852e7d673bce61c1445274aa03d3d41bbcfbda8b423779ea7d12ff59cc0fed394cbcd1bf8d05c2582c9646aa16b7105de0ede286ace26dcf2bb5dbd49454409920f69c5f545e1f1f13aea46ec154e7eea4d077bc136f306d159751736042e459dc339da3a25b2f8cdac026a1b281c34a1b9dd23ac73010c4562e4f6f04317cb948ef68d61a6863c1a8617fd1dfad4c960039d6ff44aeb9e52fdb1988026d3ea6253650e2eb27accd30b6131163d8762b416db1c73988a42f7102326bf58c600a402208a595d6bd8d13fb9c6c6c3ecfb4c597d20bf35e64561748ada4c2eb15abe576dde6346f65ec264156cb7c2ac451a5048716dcd6839820acce412c911c3719275552b29c7ad7ea2753f468b4a0620e3fcc29ad9ea8dc9dc88b541ceb9ba60cf5d15a99639d36280ea77693bf626c96ffda6e1020ef334851a91672246c5a2de9517453a27f1e338fc4c8bfee58d5a657c142bb2e131888112ef70e55a4bee6e1905321936c072ed202fa66d42aba43e242a9f88588a2494b3843bbb09ce80d16671664f68e2beb9cde33e1a1b587735143a4786887e82e360acd7eed0512dc36428c9b7e220d6fa17e3ade68c5ff4ad142c22a9f9ad4700bb15bf5271b4474fa508c7f2d90bebb9cd6b85659c0f4639ba62c65cb7097c411160c80007ca77005e1e185751f0975efb7a267a3197a3b4af6c16394e0c20b2767410553d3d4c9083040371fc5b7454cacac5cae975ee64e861db39baa8bf80478acef5ed0a6ba0368599a254696bce3e936f4d5d7cab72963ef6d9a51e12a40934cd0b2ae19b54dced3f01e89aeee240f1339af77a217071041d075958b7f71ab62d82c80627995b84ceb23a3ecd98284854ddb1a69a7aa5b1c2b040730ef3c7d9d4b9131bee82fddbec56bdf4810ed8158a84af0c27cb08745614edede1b1426ae32a97252fb488e5342a6d2e8870e22c334b1e1622eaa7e336832c23188da424c0ca79a64957e56667295fec157687bd4fc77945073b2f0386af1d4c8365111cf09c2e499d763d3089a74061d23381d8b4c1e7a3466ec84613e5640e64822ac11e2ecf717a26df0375c9ae07ab202acc8a4f22025cc5c1f39eda4eafd1dbf22179aa633679d69a55018cc06ef64b558ce24ee6073caea28fb4a338d68d08d0cd10024ddfdb1fcc7a6c2e05b3e6b34e3545e47ff5a53a2ad78fb3b4a4777040ca3a2578e260e4a323594f87b461140d090c736e06753a2323e9ccbf275b46cef489af86c025ce022d8bf79ac92dcff6e0e5cd98766a443614027b3166a0b93b091d32fb8d24c1d356b6147b5088021001df6436a4195c82f73c72179c1de7afe4796314819bc74fa3f3c00ff69832b395d67189242058b6ad02d85994b8372b275a358121776bab39c5e0993bd09aefbdf7f2a805e813279e8dde513e05ae06a5aa1bef3d7e81922c907a3f54ac92cc295103853edbe74ee79dcbdd951f2aa371057fbaa43bc88c82c832482974e3338ef0a9fcbebd329620cb5a3597d1ab90f1486d2a923ff89768b6d654fac0f097cbf72e655f6ef9c56df4ee5f1f7bd3b329cc850f4a48d1238c448b40381766bda118e7e14221c8d4d3780e5d17e335919599de68383142fbd38f83938fb045647e8b4d4ecdf48a8b3f0fb276c38cb3811d85a2b7ce12618f215f97e305578327c02abc898b3d9dd4a00955ffc3581abd97e79ecf5fb19c3ec8662029789f3252f304526b9482abdad6649d9621ad52b0aa7004ad54bec176cf955afc7a908d4cbd557f5016e19a6e21b695f45d3064478d8018bf867ac47b7f57a5bdbece3825a78360ca55d1d2ecaa118ee7fdfa8c76e665803698f65ed6cc6969d6286bdca1205c1939c95975d40ffd36b4f2baa3a88441d030ac1fba4d343eead037ca8e8ae05eeb917e3c38822267f23bc2e35a34a7a151540dc185ca7bf9b367b8d120380479bc99cc269c943f13ccd85d260261b40a305a046554cfc760be09b038666deb584858debbc1acfa0a28fdf338796240ab60983e357d617bf554566a88de04fb965dddc5eb94050d6a91e9a975601160d9db60ddc0a8cb11161dc23c9e23cb34916d69c8feddde514ca9113e0fb611fc694920a1168211b4b4c0e54af79c20c2651c4729c99020a40b8972e41a3b5da9eb1017f371ae70d6d10506f1b993d0080523b44a63f00f969081b3d54d903bd76c1d4f9fca1192c87d6c7d7122e2abcc572b059d16314e36e8a52bc51104a44f8868477e9aa47842e74777ad479c8b79089b57f19ed64ae60908b26d6dea24be146135f94004148ea6637ade34182f08c7b1daf0f4f994dc61bbe5a6178de6fcfb0da6d7820b309b542510e92e22e9b21dd0f81cd557b9f9dfb367d2124c5c2cb8a5c46d1789356605da85448af0bfbefb9da487787b81e2099bc125fcdf1b538fb90c3536fc875050e87e6ad5fa9b86b9f5bdb1f3e4cf2c6532b558a0c682fb59ddd3006db8fc75a0649b5617755006ac59620aef274c24e08e9d997ea11894ca36fb32a0f2fda0af8d1092a23b6dab93dbb1d8a50e7c44b629f0109e18a610b2ad857419c5e0d370b193e5a02444712a3bf75b4cc5c7c67907ccf4d8a266b857018591e9cb9d28d7f86762b8a9b25ec20507ba170dc62fedbf955020fdade2d89572a13972a6d6226151e84ca7bfa90b0cef8f9647553ddbed0a742ee53df31ada940d977ec61c50c6010e7431206356908bf53a9f4996096d939ee40b774fd1fd98ea32b78ca19e595af326ef4662167bc190503f8370730e85536295e258598d714fa88bb57eb8236f2ad20da799149662aff494abb685bffdc101a33f181aff8e4463e2a92ca658be0f23270cacadf5919c92aeb10d3159abf5fe916188f396666f42ff29f0496d65f6ece923682912db4d4c5b51e304541c53099cf208038ade8165f49a4b640b780dd2c0078c1223a31f382cb71adc1746ca61bc3e78e70268bf9eb394d3e19ab88e3c446edccdb03e7a493ef1019d8ba714d0075ee1bde114648cf21a79cab76f43b94e8a81f2595bbf71ae3ca8b6855b69d5a8ca03f35c878de0744d9247860637150e85835c66176d83e0cd42b5385e0860809a8862eded93f4fceb75d18ae8340841383e7cf362d20431ae5426bda2dc213e6c38d9d0a54a84a4ec9e0f1df84f89de9b7c30aefedccc035aa7b4bc994d62fedcf9e845919c559f861bb35b6b747fad17e8ce63042a826c19ff5b3d50eba494244402d58099a0b98248b4fdf504161c66f856a3514787a568e2a45d0fe6816c86b3065ea0d0b2415aeceaa006fcd3af54bc78f3373fbc0e3989aee7cbdb3487eb339c5efb21c23378150e190b8c7c871f7fd92225a503940442075fa570be92219d98ccc66388a23f57355db09b7fd05c3923d42c7698d02a5bd383509e8d0fa46a259809e66917b19117eec4fbac6d4fc74e71c061eb3aad824d9e08c897f55afafc8a286a79b98c88407997b9a995f57e6315e0e8c1963b72024bd1b962d7aee7f7ea586d7264a62a1222b1c17d8f652a68f7be7ef6503f0517c2d8e125354aa48132ea73cb17f0edbaafa6164010ba4f5a005d1380aa5c00f11be01081647ba95daa4926512cdb369d8daa695004f223ae7436b6c4fe986bc45d71b3b0289ddc2d5cb4d797c8cad0c1157320e5d8c3e3748400834d0afa1b4c7cf16d6a76eb29b77657200f993b0601ab2f8dd69351081dfa41c903beb48ae7bb3f57948e53e20582ed5257181e1cc24b7731cfbc854b782bbb7de8f05aa0aadc93ed2c1e3389a6c9831ea1dd41cfdd33dba4e8e0c786c136c1fec8caee098876575406ee94808f2f7aa33968b1d36b8e6409b2e57f72c974a0f9e2049472b36d3969acd999a367771bdbd6785f182dffe1f4ad61370b07543e1ed7e89e2efd6d800660df126fe3709e98154edee569abef14cdfb3f40b84b652356b615b2485ec36faaa58e0cfb3e327823b78fcbeb2dc44069117a514e3168e8296742c8c1cdd6cdbf731e18584a87b0938bf0c01cdfb01eb95f4aa2fc2baa8cab2d0a6adc893c5493fd8ec29bf96c532ebb3a28867487acb9ff0389a316393aa8772eecc869b353b54655666adec831c7f00e179216bebc4458de86c2aa476e38d6553cca5394a0d0b2e666190320fa26ea6545acc4fa7b1a73e75c781dfae12788744f00f7a7f626aadad297ed89de9d33a52f0fc44ef6a8e8259d274640796f4e950bb729ce29e73037c7ea90ab06496af274f986ca1abf7d49593aed173b5a4b70c77c809eebed7169f9ce16616aeb32ccbec880897247cbd622a96c5d1f3135778778425a8c6aad4aae1d9a45b94c5721a1c1130eb1294658cb75373248c0bfc2cc11186d8ff43844ad104bccbc3a64f2ae2db70ff698020bc420ef5e58b173f4ef7df080092698dcfdf4a6ca402f8761fc8c5fb204725e9185494dcabb372dfdfd434257e09aaa824f75f04688af2612aacd94a9b1146514402b2c4d4b812ed3aacb62b24ebc6f11dfb8ce43a46a35c581add3f1bbfd97646da23179241c29b3b2d2d85c45097262fb782e0a4c3df800a10e1ac6a3426274f4c0ac769e091543c0214bc05a9825474c5f07d5a5293528ee0a81171881bf8a13d696f37ccd03e9b476336db20c044997635145ca9dc42b4af49039f32e7c4da24ed00c479f9ccd0384ed7e1daa40c2116b92c42031a5d0a8a6d7f6d5bc10b132fc0c3d87a73bd6254543b9f847cc162a2777afbcb5140fdcff08e1f07535c3eacd339e342a668ff2a40fb94451c70630fe253ed8ed1b5e39ea460ccaf31f8dbadb82d8bbaa620778766bc79799596936b5b6ad4cf6d34e5e1f42a1976dbbd7302acea699159c26f184212e0ed6ebcd5a486d0e6dc8e47b700d60c2d727f32efcb9c6dc4982df1545473d5148acfb32d53ad0cf04d33f223635cdf7d2248eeafcdf8077f416dbe8c3018f6d85b2b7e5729aca8fd982519b4080a156b38a0e108d2dc3049148ef6c71d41060800a36e1c64ab1c28d8b830d3f00787f1879e69a6baa5e1a4085bbc7c946a9c6a48fd175081bd4c8139c872cb1c21da535860cf68559329bf3e34a7121178ec5c4bcede202c1dda3d74826ab61fbc25c8bfc70fccc726a2a58c6309015d7ade282690d8bda077b0eea51a87067b7912c82f3c96711cc635471f6784b5b8ebf97beef623e2b480336475526c037110af13946cad8b368d33c644f7a0518e864d90ce8675089e77a58581f5b1e419e189465bdf936bd0c7a11aa36613ea774af12b42e0384de74ccf79fa763e461b551034a6eeb8109f97aa07fc945edebce281f9552a6d1b660cc26b79314c7f960f064ce5541304b56928fab1e30e9b6397c7b3112bf2fb9df0fced86f509ad0db914620737fdb252000a46f159624c3e979bef52c6d260dcb21793f43120143274d3c8e8c364c32983fd8443cf4f88acb83a29e6465d969619817688e51791011c2a72878356d9eb4a18bffc64454bbf2831eb050f7daa9ae5c122bbd5124e333c1c99a444f62806335c5425345ab87921afbb0df4f27aa542c66880918457df128cfae2260f3d51be1cf657f7976444e2d4f2d4d0ae3bad39abae07916cde973f3b7d542e7f46b61e01aab50af747794b1899e4d7e9b9077a8903dcac5bd0962b7d393d76e9cbed122e49cfb3762f651ab620a34453f58d5a53bf5a7e09a59e87d1b120a374f62fe2493e42fb3772b94d2aab9bdb1875db48dd4561b5ce395c2eb3a4d4b2581ca8585c01410822a44e11757710c648fb107279ccd4599e402ee95da421665f966938e4c3952dfdd9e163f6465fe1906105e56558a6bf75fa78881d67113a1d43fe0014ca75a2f1a9adb02eee649df88e0eca125a63566465c31fa0b970ca24068f2a04d88da5a509b975fca2e63cf9adc24da7b3039064746a6befbd3a280ea3388fd8f08142635f3767a63c27c28484d3d5ff99da442e198691657e43605eb25fc45073d4b4e5ae5333cc1da37fdcd46d08f33da2fa648f04a9d415516626e9f92bf73aae305875772c03a28e799809117e3abea8fbbd21296ff8ab16f405b0aef06aac914ca6f84cd976cf5c33585e6b96dc515f700adbc679a38d7d627d036d1c61369a9bd798026203025b7b9c4d44251519985a6aa16e54614db0da6f529ac1988ee4cc551737306046a429a7e7c2dc89b91c0e47f19976572731dc1de5c90b7cdeaef81eefc7538bd1eecbf4eae125283ea492e6354e3822e1beeb421a54dfb2de675b3f2d9754aa63169a27c1f4134b27c95fbbc074116fe933e40fdbf6a770fa7e8928ec39a643fe96ca763909f01023cfbf900bff08072c7f8deafc81b45e580ae8a2d28dac1b6fd5c0d7829863f95989ad725229d81a9b54c195c4b27687dd8068faf5d70e5d1cb8a645aecbb663a1d2a11b09f4686bdc3ede5994e62094264d926c358d8fd1f0a1b7ac33ea8c1db3b833064f2e61cb16a5feb0650d6d66a89b731a49b23c2e5134f01eaca84d03f88c5fe6c8bea69896ec1ac8649d82d8c4bd194caed2db473d14b8fb875b723307b43ded6529270bb07a75310c4343cd94dae37eda36c838f68d96a6ee462cb244264e846b64a83b77c6e8d0705ae5b1ba8d3bf8f42e03af50d8aa19239032de5ca5754dd52bee431d879491429726e6bbdb05b7edeb68bc5378f62bae71e5c669a38ab7d2a66cf3af148e75fb1dbb611ecacc50efc7def4cc00772160fb54f1d9ea847b15f1a6cdca9664adf9b63b5f49660f47d6143638e1a69c1d119b58c0dc0307cafba2ce1edc95c2b1772e5e150339119fa1a713c95fec864f46fae0ee4933c422b3dec0219ee92399e50bf5f30663f63bd4711acf39300aa971c6e163b08e8bd0761455fc1a66b6bcd1b11668c6df1acf04b718632596b64bc06a0138dca62837d4e0b11d9be200a8ad2b3fda57bda1bfe31f99d211d3f68fae402f66c0b7d62821498d5312600e49932a7fe60522f54c93895251422a8f4e72c7d1d429a5cf17a899c6dd006ca501aaee7c4a39e825b2579ef03e30e7088e4b8e87f4ae9ea03109acf7598d11ca684ed3e0d9f1c5a64b2781f400edb6f8f8da893102410fc43ac2e81441dde6740e928a8b2b5e0d5b1c63f777771e0f0b580cd70f789502e7c7461af5afa0a031c64f3395f92288ac973f4234124d1e6b014daf70cda95e06032753632479e364c59b4b399eb741d5293bc7637bb9e8fa4069c06b90d1292bb96ad8d8acb89d9d45094d63273c23f59c0c1ba0b13e28c4871c04d00cbeac45b016cc9fadce2a409bf9096ae16b529c1b236a636176d309f8b4ec92f1cd97782ea2e8b5e22161b92f1f79c00cb4dc327cc58817658abf156b3e25feb9d4c4e9f6666cd9f33cd8196795e511760c5608d2e5e9bc974ff125a85de68e7b00cff964a0c31ac3b9902b1fa1ec2bf5f4ad72b27998aa1fc7e8dec37eb0bc50994cbd5154362f941050abb643c066f3d958eee795eb3a1c894759051f127a6215f3fe4fed64582ec23a3d08b8598314281f3a901e3b1c3af3f6170e90a88e152a04ed1e5f0a70d2fa18f792ceb4a0b330b13363ed46933f4172030bb04bf979e9f9dccf3a400adccf4ed6155b21c6a4fd5af7e05d6a884111ff512b53761326c34b50ae3a6600a1f4e39c88d425a90fc40654aed727273f8721c2cdacf5d45fceee95e70e43296a89b810fc9f95d472af7404caafe4772fc32563c4207f76d2851cdfb126c95e38b2562968f1f3161a1696316c8bef2dd5a2eb213a390fb7d4444b40fe7dd6fb9bb69cc4990839fef616037660ba59324c6f219ee47a918343864564f99752d476add16662d26aa08cc780bc422d38ca86e276c21ccc29620af561d2fd8084f12d00a364b5a55a7b74f6949c18ecac5d7c46dff0c4738b80da8f663eb8c6b4cca3e3417ced56a1f17e755dcb98dbf2159ccaf3670078f68bb383c6acb52c181f1335f3f5f52a7e1d6f9a35304913e0b973843fccd9ecc8afc51a27e539b35c7ec01057e65c2d529a7e538d847e1f175d07e256150c907243a2c3d9401d4e2e298d77d3ce9c9769f31b2553e4c4ec788f5f50c36b6117d386df686ca21f971f2eaaa00bf96a55b037ad6d00c53d9df6926138ec35868b3c8987ec2a9575ac0ecf69a0dd781624ecd6704b52dfe2e41496fa9cca97251fed38057583a32ce07b98f3de6e5148901ae2fdf93c4f7cad58d9d6281f8799e79fac17a29d5ffbfdcdd06fe6d0df47bcdd536170aed2f4c344812d9301ccb9c3d4274a6b70ea69118d42811115038a28489bf1c89b4d5df5c9561f92487a8860f4f2e58fc5725201bafe125a83dc1245322aaa55b51f7f6f540b1ce557506a76668de5b844124a4a8669c51a9831b5b27d7841648d6bbda5f5413d9e4ef212a11fb3e0d827a4415cdf4af060048db7604fc4c0906e5ce60ec56ec667fa2fc28a83feee56454a2822972a471c6f9494fcc39772dceace7f92846788694b214166f395155856c090918440e4720ff852b24fcee5056eb7e1bd043a7c65caefd1378769736959c97be8c46e164d7a2438b6d527a702b6972d0397320ab91baa4c53cc8a928ea86df2da024273f0f5f99b74a56b76bdede28bb7b5272466e36c862379d36c4f10e8a2f790c8b398721bbf154ead9cd90be49ceffc31e2f8e9698c2f1b5b56b78b013d06c9df7ce81b898d3808434251c0436fda09d4c845f223d937c4283903f41dccede8d462454ed9794fcf33e1c8f61f94b578f5c7b0485cf2c2bc1a264458bb5d0e837087074afb1e8fe062325363937349cf4370e224e7a3b964cb39f83da58474c7ce76edac395c53ab9e3c693286286cdaa1b37510f2bbd2a828875feac67320d45bc213de19e3d5862b18bfeb4a1f7356b4b190927312cd84f255387cb6f1efba50fece63cdfe2e151e17e0c8e96f2da996a5c662919dcc098364283dcfa9a8f0a84223f2d02a4ab0f90f4e23ae587599467beccf32314ea8312b604b6c06de5b7d1f8e9f2561934928933dc652e4f2521ae2d5d31d0fd10c6601bfacb4a23000caf94e51634fe4d21123fc80474c183a044f57a37cf5a19a9b0685085f38e55365abba004d2e35cb83997d803e70766b0da4e84ee046175e0779a2a3cb459b2dc17026f355e0637fe88d1bf1d81debe143d827a9b899b2c0fab23d2027cda63d252b11d133de9946e37d006e445cde800ec80aa24eac14a65c27f09bf15dc275e9204fbefe56d51456ed2d01ac82e0c977414b55d4784ae554090709f38884867ae43808e74d8cbae1aeebbb70c1f85de678c0435b880d4b090d3bd5e6d6be8bbf67ec37711bf5f9a0e8c95f0d25cbdda7f2075f450db480e46be4197b2b84fed0e0e53b1bf2312e27bbb7159abbd162ecf5bce72247550ffa1a7e243684e20bc9ec20365b4880548cc9f00df4a445383e2bd5034530784cdf45185ad05af21074c268ac047dca4a55b5c5fc5eba8944da4813e738a5ae60541d3e4834f0fc170fd13a3cbcd6a01ee815fc1679158a9fbd209569a3e766c561204e17b5fa6aaba160b30d20f658af92684550655dbf5d489a48a60196c3f8f4d624cd1133ec9344f49f5617db4a7c3318ca6b39fdf1a25a69e20929cce63c71a60127395e160b235642fc23c868efba1da0e9b1c0fcd5745235b6d6eeef99c382652e645bf3d5c2148874bd83d844f58cf137285327a414e966eda23f1756caeabde600c1c1dc53ab63c8631669a369b0b99e0357ff337ced04ed088da43f78f0817345f284fb984425dfd58100d5398908be2ab45a2bbc5d7fc30a582263057cb31f4b9d782f838f4fc3f9e6dc5b443f9af966b57e4da913eef2816da9bec215a8fbea1ac2fe7fdd30dd8dc2de911bbd61f0d18e07c4da461c01$bd3501cbb163b85622f2baa704177ad83b087002bbb43b841a88d25b24f87fe4c3a349f32f70a8338ef59aa09fdc10196285a0e5fc65fb273f5538dbcbc67ab28d40cc7855af9d4385d885640ee611d011ec5fea49c0dc57123caf845ee9887b0f4c721acfec5fbb788eb2fffb454e34d535c9ae2d3f27d62456b22649f2f978c8c5e00bcd9bb71cebba6d44f1a4f72f263c64045a49591fd272729dd52a7f28bb629cff0f6730485d6f5b7121074d668838596693a94400f8647ad97f06c99cb460bdb88eb0fb972300daecedd5ca1527a77fc9a3ccb282a0cd8baf51b182bd69518eecc25855d6c08e363ead0856afedf91c5c20c05d628b24e377c1a5c21861abb67674ecac7ffa090295aba303639016bdfcd09a0014a667d15079c980efc9b1aed8235cab7327da09d2cc3baeed2171224300e26e7c26acb05d726f618955fe3b1419ac2a1bf95b7d8e14edeade2ad5c3d48706f5ae615926f79aca797e57e42921734be8417d58c33220ce33c503c8f3dee0f4893b5365827da6a3ba07b85e24ea6f7a9141964c58e6743a711dc3b98124b6663f99cbf7c3690ec5100ed1b10e4a29f9f8124a78671018b4c135d17e86f3260f97ec3bb9acf58ab5a499c237a8e00e541f3ac0c22fb1256ae27edf2c4a69523da32508949159609717bf649fd4a52bd4f7814f5f864598aeedd13b36566a8b2e3ea346ac976dbf5fcbe6"; + +u32 module_attack_exec (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ATTACK_EXEC; } +u32 module_dgst_pos0 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_POS0; } +u32 module_dgst_pos1 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_POS1; } +u32 module_dgst_pos2 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_POS2; } +u32 module_dgst_pos3 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_POS3; } +u32 module_dgst_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_SIZE; } +u32 module_hash_category (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return HASH_CATEGORY; } +const char *module_hash_name (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return HASH_NAME; } +u64 module_kern_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return KERN_TYPE; } +u32 module_opti_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return OPTI_TYPE; } +u64 module_opts_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return OPTS_TYPE; } +u32 module_salt_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return SALT_TYPE; } +const char *module_st_hash (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_HASH; } +const char *module_st_pass (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_PASS; } + +#define LUKS_STRIPES 4000 +#define LUKS_SALT_LEN 32 +#define LUKS_CT_LEN 512 +#define LUKS_AF_MIN_LEN ((HC_LUKS_KEY_SIZE_128 / 8) * LUKS_STRIPES) +#define LUKS_AF_MAX_LEN ((HC_LUKS_KEY_SIZE_512 / 8) * LUKS_STRIPES) + +typedef enum hc_luks_hash_type +{ + HC_LUKS_HASH_TYPE_SHA1 = 1, + HC_LUKS_HASH_TYPE_SHA256 = 2, + HC_LUKS_HASH_TYPE_SHA512 = 3, + HC_LUKS_HASH_TYPE_RIPEMD160 = 4, + HC_LUKS_HASH_TYPE_WHIRLPOOL = 5, + +} hc_luks_hash_type_t; + +typedef enum hc_luks_key_size +{ + HC_LUKS_KEY_SIZE_128 = 128, + HC_LUKS_KEY_SIZE_256 = 256, + HC_LUKS_KEY_SIZE_512 = 512, + +} hc_luks_key_size_t; + +typedef enum hc_luks_cipher_type +{ + HC_LUKS_CIPHER_TYPE_AES = 1, + HC_LUKS_CIPHER_TYPE_SERPENT = 2, + HC_LUKS_CIPHER_TYPE_TWOFISH = 3, + +} hc_luks_cipher_type_t; + +typedef enum hc_luks_cipher_mode +{ + HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256 = 1, + HC_LUKS_CIPHER_MODE_CBC_PLAIN = 2, + HC_LUKS_CIPHER_MODE_CBC_PLAIN64 = 3, + HC_LUKS_CIPHER_MODE_XTS_PLAIN = 4, + HC_LUKS_CIPHER_MODE_XTS_PLAIN64 = 5, + +} hc_luks_cipher_mode_t; + +typedef struct luks +{ + int hash_type; // hc_luks_hash_type_t + int key_size; // hc_luks_key_size_t + int cipher_type; // hc_luks_cipher_type_t + int cipher_mode; // hc_luks_cipher_mode_t + + u32 ct_buf[LUKS_CT_LEN / 4]; + + u32 af_buf[LUKS_AF_MAX_LEN / 4]; + u32 af_len; + +} luks_t; + +typedef struct luks_tmp +{ + u32 ipad32[8]; + u64 ipad64[8]; + + u32 opad32[8]; + u64 opad64[8]; + + u32 dgst32[32]; + u64 dgst64[16]; + + u32 out32[32]; + u64 out64[16]; + +} luks_tmp_t; + +static const char *SIGNATURE_LUKS = "$luks$1$ripemd160$twofish$"; + +u64 module_esalt_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) +{ + const u64 esalt_size = (const u64) sizeof (luks_t); + + return esalt_size; +} + +u64 module_tmp_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) +{ + const u64 tmp_size = (const u64) sizeof (luks_tmp_t); + + return tmp_size; +} + +u32 module_pw_max (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) +{ + // this overrides the reductions of PW_MAX in case optimized kernel is selected + // IOW, even in optimized kernel mode it support length 256 + + const u32 pw_max = PW_MAX; + + return pw_max; +} + +int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED void *digest_buf, MAYBE_UNUSED salt_t *salt, MAYBE_UNUSED void *esalt_buf, MAYBE_UNUSED void *hook_salt_buf, MAYBE_UNUSED hashinfo_t *hash_info, const char *line_buf, MAYBE_UNUSED const int line_len) +{ + luks_t *luks = (luks_t *) esalt_buf; + + hc_token_t token; + + token.token_cnt = 7; + + token.signatures_cnt = 1; + token.signatures_buf[0] = SIGNATURE_LUKS; + + // signature with hash and cipher type + token.len[0] = 26; + token.attr[0] = TOKEN_ATTR_FIXED_LENGTH + | TOKEN_ATTR_VERIFY_SIGNATURE; + + // cipher mode + token.sep[1] = '$'; + token.len_min[1] = 9; + token.len_max[1] = 16; + token.attr[1] = TOKEN_ATTR_VERIFY_LENGTH; + + // key size + token.sep[2] = '$'; + token.len_min[2] = 3; + token.len_max[2] = 3; + token.attr[2] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_DIGIT; + + // iter + token.sep[3] = '$'; + token.len_min[3] = 1; + token.len_max[3] = 10; + token.attr[3] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_DIGIT; + + // salt + token.sep[4] = '$'; + token.len_min[4] = LUKS_SALT_LEN * 2; + token.len_max[4] = LUKS_SALT_LEN * 2; + token.attr[4] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_HEX; + + // af + token.sep[5] = '$'; + token.len_min[5] = LUKS_AF_MIN_LEN * 2; + token.len_max[5] = LUKS_AF_MAX_LEN * 2; + token.attr[5] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_HEX; + + // ct + token.sep[6] = '$'; + token.len_min[6] = LUKS_CT_LEN * 2; + token.len_max[6] = LUKS_CT_LEN * 2; + token.attr[6] = TOKEN_ATTR_VERIFY_LENGTH + | TOKEN_ATTR_VERIFY_HEX; + + const int rc_tokenizer = input_tokenizer ((const u8 *) line_buf, line_len, &token); + + if (rc_tokenizer != PARSER_OK) return (rc_tokenizer); + + // hash type + + luks->hash_type = HC_LUKS_HASH_TYPE_RIPEMD160; + + // cipher type + + luks->cipher_type = HC_LUKS_CIPHER_TYPE_TWOFISH; + + // cipher mode + + const u8 *cipher_mode_pos = token.buf[1]; + + if (strncmp ((const char *) cipher_mode_pos, "cbc-essiv:sha256", 16) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256; + } + else if (strncmp ((const char *) cipher_mode_pos, "cbc-plain", 9) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_CBC_PLAIN; + } + else if (strncmp ((const char *) cipher_mode_pos, "cbc-plain64", 11) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_CBC_PLAIN64; + } + else if (strncmp ((const char *) cipher_mode_pos, "xts-plain", 9) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_XTS_PLAIN; + } + else if (strncmp ((const char *) cipher_mode_pos, "xts-plain64", 11) == 0) + { + luks->cipher_mode = HC_LUKS_CIPHER_MODE_XTS_PLAIN64; + } + else + { + return (PARSER_LUKS_CIPHER_MODE); + } + + // key size + + const u8 *key_size_pos = token.buf[2]; + + const u32 key_size = hc_strtoul ((const char *) key_size_pos, NULL, 10); + + if (key_size == 128) + { + luks->key_size = HC_LUKS_KEY_SIZE_128; + } + else if (key_size == 256) + { + luks->key_size = HC_LUKS_KEY_SIZE_256; + } + else if (key_size == 512) + { + luks->key_size = HC_LUKS_KEY_SIZE_512; + } + else + { + return (PARSER_LUKS_KEY_SIZE); + } + + // salt + + const u8 *salt_pos = token.buf[4]; + + for (u32 i = 0, j = 0; i < LUKS_SALT_LEN / 4; i += 1, j += 8) + { + salt->salt_buf[i] = hex_to_u32 (salt_pos + j); + } + + salt->salt_len = LUKS_SALT_LEN; + + // iter + + const u8 *iter_pos = token.buf[3]; + + const u32 iter = hc_strtoul ((const char *) iter_pos, NULL, 10); + + salt->salt_iter = iter - 1; + + // af + + u32 af_len = token.len[5] / 2; + + if (af_len != (key_size / 8) * LUKS_STRIPES) return (PARSER_LUKS_FILE_SIZE); + + const u8 *af_pos = token.buf[5]; + + for (u32 i = 0, j = 0; i < af_len / 4; i += 1, j += 8) + { + luks->af_buf[i] = hex_to_u32 (af_pos + j); + } + + luks->af_len = af_len; + + // ct + + u32 ct_len = token.len[6] / 2; + + if (ct_len != LUKS_CT_LEN) return (PARSER_LUKS_FILE_SIZE); + + const u8 *ct_pos = token.buf[6]; + + for (u32 i = 0, j = 0; i < ct_len / 4; i += 1, j += 8) + { + luks->ct_buf[i] = hex_to_u32 (ct_pos + j); + } + + return (PARSER_OK); +} + +int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const void *digest_buf, MAYBE_UNUSED const salt_t *salt, MAYBE_UNUSED const void *esalt_buf, MAYBE_UNUSED const void *hook_salt_buf, MAYBE_UNUSED const hashinfo_t *hash_info, char *line_buf, MAYBE_UNUSED const int line_size) +{ + luks_t *luks = (luks_t *) esalt_buf; + + // cipher mode + + char *cipher_mode; + + switch (luks->cipher_mode) + { + case HC_LUKS_CIPHER_MODE_CBC_ESSIV_SHA256: cipher_mode = "cbc-essiv:sha256"; break; + case HC_LUKS_CIPHER_MODE_CBC_PLAIN: cipher_mode = "cbc-plain"; break; + case HC_LUKS_CIPHER_MODE_CBC_PLAIN64: cipher_mode = "cbc-plain64"; break; + case HC_LUKS_CIPHER_MODE_XTS_PLAIN: cipher_mode = "xts-plain"; break; + case HC_LUKS_CIPHER_MODE_XTS_PLAIN64: cipher_mode = "xts-plain64"; break; + } + + // key size + + u32 key_size; + + switch (luks->key_size) + { + case HC_LUKS_KEY_SIZE_128: key_size = 128; break; + case HC_LUKS_KEY_SIZE_256: key_size = 256; break; + case HC_LUKS_KEY_SIZE_512: key_size = 512; break; + } + + // iterations + + u32 iterations = salt->salt_iter + 1; + + // salt + + #define LUKS_SALT_HEX_LEN (LUKS_SALT_LEN * 2 + 1) + + char salt_buf[LUKS_SALT_HEX_LEN] = { 0 }; + + for (u32 i = 0, j = 0; i < LUKS_SALT_LEN / 4; i += 1, j += 8) + { + snprintf (salt_buf + j, LUKS_SALT_HEX_LEN - j, "%08x", byte_swap_32 (salt->salt_buf[i])); + } + + // af + + #define LUKS_AF_HEX_LEN (LUKS_AF_MAX_LEN * 2 + 1) + + char af_buf[LUKS_AF_HEX_LEN] = { 0 }; + + for (u32 i = 0, j = 0; i < luks->af_len / 4; i += 1, j += 8) + { + snprintf (af_buf + j, LUKS_AF_HEX_LEN - j, "%08x", byte_swap_32 (luks->af_buf[i])); + } + + // ct + + #define LUKS_CT_HEX_LEN (LUKS_CT_LEN * 2 + 1) + + char ct_buf[LUKS_CT_HEX_LEN] = { 0 }; + + for (u32 i = 0, j = 0; i < LUKS_CT_LEN / 4; i += 1, j += 8) + { + snprintf (ct_buf + j, LUKS_CT_HEX_LEN - j, "%08x", byte_swap_32 (luks->ct_buf[i])); + } + + // output + + int line_len = snprintf (line_buf, line_size, "%s%s$%u$%u$%s$%s$%s", + SIGNATURE_LUKS, + cipher_mode, + key_size, + iterations, + salt_buf, + af_buf, + ct_buf); + + return line_len; +} + +void module_init (module_ctx_t *module_ctx) +{ + module_ctx->module_context_size = MODULE_CONTEXT_SIZE_CURRENT; + module_ctx->module_interface_version = MODULE_INTERFACE_VERSION_CURRENT; + + module_ctx->module_attack_exec = module_attack_exec; + module_ctx->module_benchmark_esalt = MODULE_DEFAULT; + module_ctx->module_benchmark_hook_salt = MODULE_DEFAULT; + module_ctx->module_benchmark_mask = MODULE_DEFAULT; + module_ctx->module_benchmark_salt = MODULE_DEFAULT; + module_ctx->module_build_plain_postprocess = MODULE_DEFAULT; + module_ctx->module_deep_comp_kernel = MODULE_DEFAULT; + module_ctx->module_deprecated_notice = MODULE_DEFAULT; + module_ctx->module_dgst_pos0 = module_dgst_pos0; + module_ctx->module_dgst_pos1 = module_dgst_pos1; + module_ctx->module_dgst_pos2 = module_dgst_pos2; + module_ctx->module_dgst_pos3 = module_dgst_pos3; + module_ctx->module_dgst_size = module_dgst_size; + module_ctx->module_dictstat_disable = MODULE_DEFAULT; + module_ctx->module_esalt_size = module_esalt_size; + module_ctx->module_extra_buffer_size = MODULE_DEFAULT; + module_ctx->module_extra_tmp_size = MODULE_DEFAULT; + module_ctx->module_extra_tuningdb_block = MODULE_DEFAULT; + module_ctx->module_forced_outfile_format = MODULE_DEFAULT; + module_ctx->module_hash_binary_count = MODULE_DEFAULT; + module_ctx->module_hash_binary_parse = MODULE_DEFAULT; + module_ctx->module_hash_binary_save = MODULE_DEFAULT; + module_ctx->module_hash_decode_postprocess = MODULE_DEFAULT; + module_ctx->module_hash_decode_potfile = MODULE_DEFAULT; + module_ctx->module_hash_decode_zero_hash = MODULE_DEFAULT; + module_ctx->module_hash_decode = module_hash_decode; + module_ctx->module_hash_encode_status = MODULE_DEFAULT; + module_ctx->module_hash_encode_potfile = MODULE_DEFAULT; + module_ctx->module_hash_encode = module_hash_encode; + module_ctx->module_hash_init_selftest = MODULE_DEFAULT; + module_ctx->module_hash_mode = MODULE_DEFAULT; + module_ctx->module_hash_category = module_hash_category; + module_ctx->module_hash_name = module_hash_name; + module_ctx->module_hashes_count_min = MODULE_DEFAULT; + module_ctx->module_hashes_count_max = MODULE_DEFAULT; + module_ctx->module_hlfmt_disable = MODULE_DEFAULT; + module_ctx->module_hook_extra_param_size = MODULE_DEFAULT; + module_ctx->module_hook_extra_param_init = MODULE_DEFAULT; + module_ctx->module_hook_extra_param_term = MODULE_DEFAULT; + module_ctx->module_hook12 = MODULE_DEFAULT; + module_ctx->module_hook23 = MODULE_DEFAULT; + module_ctx->module_hook_salt_size = MODULE_DEFAULT; + module_ctx->module_hook_size = MODULE_DEFAULT; + module_ctx->module_jit_build_options = MODULE_DEFAULT; + module_ctx->module_jit_cache_disable = MODULE_DEFAULT; + module_ctx->module_kernel_accel_max = MODULE_DEFAULT; + module_ctx->module_kernel_accel_min = MODULE_DEFAULT; + module_ctx->module_kernel_loops_max = MODULE_DEFAULT; + module_ctx->module_kernel_loops_min = MODULE_DEFAULT; + module_ctx->module_kernel_threads_max = MODULE_DEFAULT; + module_ctx->module_kernel_threads_min = MODULE_DEFAULT; + module_ctx->module_kern_type = module_kern_type; + module_ctx->module_kern_type_dynamic = MODULE_DEFAULT; + module_ctx->module_opti_type = module_opti_type; + module_ctx->module_opts_type = module_opts_type; + module_ctx->module_outfile_check_disable = MODULE_DEFAULT; + module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT; + module_ctx->module_potfile_custom_check = MODULE_DEFAULT; + module_ctx->module_potfile_disable = MODULE_DEFAULT; + module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT; + module_ctx->module_pwdump_column = MODULE_DEFAULT; + module_ctx->module_pw_max = module_pw_max; + module_ctx->module_pw_min = MODULE_DEFAULT; + module_ctx->module_salt_max = MODULE_DEFAULT; + module_ctx->module_salt_min = MODULE_DEFAULT; + module_ctx->module_salt_type = module_salt_type; + module_ctx->module_separator = MODULE_DEFAULT; + module_ctx->module_st_hash = module_st_hash; + module_ctx->module_st_pass = module_st_pass; + module_ctx->module_tmp_size = module_tmp_size; + module_ctx->module_unstable_warning = MODULE_DEFAULT; + module_ctx->module_warmup_disable = MODULE_DEFAULT; +} diff --git a/tools/luks2hashcat.py b/tools/luks2hashcat.py new file mode 100755 index 000000000..5eab81cb1 --- /dev/null +++ b/tools/luks2hashcat.py @@ -0,0 +1,328 @@ +#!/usr/bin/env python3 + +import sys +from argparse import ArgumentParser +from collections import namedtuple +from dataclasses import dataclass +from os import SEEK_SET +from struct import Struct +from sys import stderr +from typing import List + +try: + from enum import auto, IntEnum, StrEnum +except ImportError: + from enum import auto, Enum, IntEnum + + class StrEnum(str, Enum): + def _generate_next_value_(name, start, count, last_values): + return name.lower() + + __str__ = str.__str__ + + __format__ = str.__format__ + + +# consts + + +SIGNATURE = "$luks$" +SECTOR_SIZE = 512 + + +# utils + + +def bytes_to_str(value): + """ + Convert encoded padded bytes string into str. + """ + return value.rstrip(b"\0").decode() + + +# pre-header + + +TmpHeaderPre = namedtuple( + "TmpHeaderPre", + ( + "magic", + "version", + ), +) + + +# version 1 + + +TmpKeyVersion1 = namedtuple( + "TmpKeyVersion1", + ( + "active", + "iterations", + "salt", + "material_offset", + "stripes", + ), +) + + +@dataclass(init=False) +class KeyVersion1: + class Active(IntEnum): + ENABLED = 0x00AC71F3 + DISABLED = 0x0000DEAD + ENABLED_OLD = 0xCAFE + DISABLED_OLD = 0x0000 + + active: Active + iterations: int + salt: bytes + af: bytes + + def __init__(self, active, iterations, salt, af): + self.active = self.Active(active) + assert iterations >= 0, "key iterations cannot be less than zero" + self.iterations = iterations + self.salt = salt + self.af = af + + +TmpHeaderVersion1 = namedtuple( + "TmpHeaderVersion1", + ( + "magic", + "version", + "cipher", + "mode", + "hash", + "payload_offset", + "key_bytes", + "digest", + "salt", + "iterations", + "uuid", + "keys", + ), +) + + +@dataclass(init=False) +class HeaderVersion1: + MAGIC = b"LUKS\xba\xbe" + VERSION = 0x0001 + + class Cipher(StrEnum): + AES = auto() + TWOFISH = auto() + SERPENT = auto() + + class Mode(StrEnum): + CBC_ESSIV_SHA256 = "cbc-essiv:sha256" + CBC_PLAIN = "cbc-plain" + CBC_PLAIN64 = "cbc-plain64" + XTS_PLAIN = "xts-plain" + XTS_PLAIN64 = "xts-plain64" + + class Hash(StrEnum): + RIPEMD160 = auto() + SHA1 = auto() + SHA256 = auto() + SHA512 = auto() + WHIRLPOOL = auto() + + class KeySize(IntEnum): + SIZE_128 = 128 + SIZE_256 = 256 + SIZE_512 = 512 + + magic: bytes + version: int + cipher: Cipher + mode: Mode + hash: Hash + payload: bytes + key_size: KeySize + digest: bytes + salt: bytes + iterations: int + uuid: str + keys: List[KeyVersion1] + + def __init__(self, magic, version, cipher, mode, hash, payload, key_size, digest, salt, iterations, uuid, keys): + assert magic == self.MAGIC, "Invalid magic bytes" + self.magic = magic + assert version == self.VERSION, "Invalid version" + self.version = version + if isinstance(cipher, bytes): + try: + cipher = bytes_to_str(cipher) + except UnicodeDecodeError as e: + raise ValueError("Cannot decode cipher") from e + self.cipher = self.Cipher(cipher) + if isinstance(mode, bytes): + try: + mode = bytes_to_str(mode) + except UnicodeDecodeError as e: + raise ValueError("Cannot decode mode") from e + self.mode = self.Mode(mode) + if isinstance(hash, bytes): + try: + hash = bytes_to_str(hash) + except UnicodeDecodeError as e: + raise ValueError("Cannot decode hash") from e + self.hash = self.Hash(hash) + self.payload = payload + self.key_size = self.KeySize(key_size) + self.digest = digest + self.salt = salt + assert iterations > 0, "Iterations cannot be less or equal to zero" + self.iterations = iterations + if isinstance(uuid, bytes): + try: + uuid = bytes_to_str(uuid) + except UnicodeDecodeError as e: + raise ValueError("Cannot decode UUID") from e + self.uuid = uuid + if all(isinstance(key, tuple) for key in keys): + keys = [KeyVersion1(*key) for key in keys] + elif all(isinstance(key, dict) for key in keys): + keys = [KeyVersion1(**key) for key in keys] + assert all(isinstance(key, KeyVersion1) for key in keys), "Not a key object provided" + self.keys = keys + + +def extract_version1(file): + # consts + KEYS_COUNT = 8 + PADDING_LENGTH = 432 + PAYLOAD_SIZE = 512 # sizeof (u32) * 128 + + # prepare structs + key_struct = Struct(">LL32sLL") + header_struct = Struct( + ">6sH32s32s32sLL20s32sL40s" + + str(key_struct.size * KEYS_COUNT) + + "s" + + str(PADDING_LENGTH) + + "x" + ) + + # read header + header = file.read(header_struct.size) + assert len(header) == header_struct.size, "File contains less data than needed" + + # convert bytes into temporary header + header = header_struct.unpack(header) + header = TmpHeaderVersion1(*header) + + # convert bytes into temporary keys + tmp_keys = [TmpKeyVersion1(*key) for key in key_struct.iter_unpack(header.keys)] + + # read keys' af + keys = [] + for key in tmp_keys: + file.seek(key.material_offset * SECTOR_SIZE, SEEK_SET) + af = file.read(header.key_bytes * key.stripes) + assert len(af) == (header.key_bytes * key.stripes), "File contains less data than needed" + + key = KeyVersion1(key.active, key.iterations, key.salt, af) + keys.append(key) + + # read payload + file.seek(header.payload_offset * SECTOR_SIZE, SEEK_SET) + payload = file.read(PAYLOAD_SIZE) + assert len(payload) == PAYLOAD_SIZE, "File contains less data than needed" + + # convert into header + header = HeaderVersion1( + header.magic, + header.version, + header.cipher, + header.mode, + header.hash, + payload, + header.key_bytes * 8, + header.digest, + header.salt, + header.iterations, + header.uuid, + keys, + ) + + # check for any active key + for key in header.keys: + if key.active not in [KeyVersion1.Active.ENABLED, KeyVersion1.Active.ENABLED_OLD]: + continue + + hash = SIGNATURE + "$".join( + map( + str, + [ + header.version, + header.hash, + header.cipher, + header.mode, + int(header.key_size), + key.iterations, + key.salt.hex(), + key.af.hex(), + header.payload.hex(), + ], + ) + ) + print(hash) + break + else: + # all keys are disabled + raise ValueError("All keys are disabled") + + +# main + + +def main(args): + # prepare parser and parse args + parser = ArgumentParser(description="luks2hashcat extraction tool") + parser.add_argument("path", type=str, help="path to LUKS container") + args = parser.parse_args(args) + + # prepare struct + header_struct = Struct(">6sH") + + with open(args.path, "rb") as file: + # read pre header + header = file.read(header_struct.size) + assert len(header) == header_struct.size, "File contains less data than needed" + + # convert bytes into temporary pre header + header = header_struct.unpack(header) + header = TmpHeaderPre(*header) + + # check magic bytes + magic_bytes = { + HeaderVersion1.MAGIC, + } + assert header.magic in magic_bytes, "Improper magic bytes" + + # back to start of the file + file.seek(0, SEEK_SET) + + # extract with proper function + try: + mapping = { + HeaderVersion1.VERSION: extract_version1, + } + extract = mapping[header.version] + extract(file) + except KeyError as e: + raise ValueError("Unsupported version") from e + + +if __name__ == "__main__": + try: + main(sys.argv[1:]) + except IOError as e: + print('Error:', e.strerror, file=stderr) + except (AssertionError, ValueError) as e: + print('Error:', e, file=stderr) diff --git a/tools/test.sh b/tools/test.sh index 1a9106b33..4b9cda5b4 100755 --- a/tools/test.sh +++ b/tools/test.sh @@ -24,8 +24,8 @@ NEVER_CRACK="9720 9820 14900 18100 27800" # List of modes which return a different output hash format than the input hash format NOCHECK_ENCODING="16800 22000" -# LUKS mode has test containers -LUKS_MODE="14600" +# List of LUKS modes which have test containers +LUKS_MODES="14600 29511 29512 29513 29521 29522 29523 29531 29532 29533 29541 29542 29543" # Cryptoloop mode which have test containers CL_MODES="14511 14512 14513 14521 14522 14523 14531 14532 14533 14541 14542 14543 14551 14552 14553" @@ -33,7 +33,7 @@ CL_MODES="14511 14512 14513 14521 14522 14523 14531 14532 14533 14541 14542 1454 # missing hash types: 5200 HASH_TYPES=$(ls "${TDIR}"/test_modules/*.pm | sed -E 's/.*m0*([0-9]+).pm/\1/') -HASH_TYPES="${HASH_TYPES} ${TC_MODES} ${VC_MODES} ${LUKS_MODE} ${CL_MODES}" +HASH_TYPES="${HASH_TYPES} ${TC_MODES} ${VC_MODES} ${LUKS_MODES} ${CL_MODES}" HASH_TYPES=$(echo -n "${HASH_TYPES}" | tr ' ' '\n' | sort -u -n | tr '\n' ' ') VECTOR_WIDTHS="1 2 4 8 16" @@ -187,7 +187,7 @@ function init() return 0 fi - if [ "${hash_type}" -eq ${LUKS_MODE} ]; then + if is_in_array "${hash_type}" ${LUKS_MODES}; then which 7z &>/dev/null if [ $? -eq 1 ]; then echo "ATTENTION: 7z is missing. Skipping download and extract luks test files." @@ -3170,17 +3170,223 @@ function luks_test() attackType=3 fi + mkdir -p "${OUTD}/luks_tests" + chmod u+x "${TDIR}/luks2hashcat.py" + + for luksMode in "cbc-essiv" "cbc-plain64" "xts-plain64"; do + for luksKeySize in "128" "256" "512"; do + CMD="unset" + + # filter out not supported combinations: + + case "${luksKeySize}" in + 128) + case "${luksMode}" in + cbc-essiv|cbc-plain64) + ;; + *) + continue + ;; + esac + ;; + 256) + case "${luksMode}" in + cbc-essiv|cbc-plain64|xts-plain64) + ;; + *) + continue + ;; + esac + ;; + 512) + case "${luksMode}" in + xts-plain64) + ;; + *) + continue + ;; + esac + ;; + esac + + case $hashType in + 29511) + luksHash="sha1" + luksCipher="aes" + ;; + + 29512) + luksHash="sha1" + luksCipher="serpent" + ;; + + 29513) + luksHash="sha1" + luksCipher="twofish" + ;; + + 29521) + luksHash="sha256" + luksCipher="aes" + ;; + + 29522) + luksHash="sha256" + luksCipher="serpent" + ;; + + 29523) + luksHash="sha256" + luksCipher="twofish" + ;; + + 29531) + luksHash="sha512" + luksCipher="aes" + ;; + + 29532) + luksHash="sha512" + luksCipher="serpent" + ;; + + 29533) + luksHash="sha512" + luksCipher="twofish" + ;; + + 29541) + luksHash="ripemd160" + luksCipher="aes" + ;; + + 29542) + luksHash="ripemd160" + luksCipher="serpent" + ;; + + 29543) + luksHash="ripemd160" + luksCipher="twofish" + ;; + + esac + + luksMainMask="?l" + luksMask="${luksMainMask}" + + # for combination or hybrid attacks + luksPassPartFile1="${OUTD}/${hashType}_dict1" + luksPassPartFile2="${OUTD}/${hashType}_dict2" + + luksContainer="${TDIR}/luks_tests/hashcat_${luksHash}_${luksCipher}_${luksMode}_${luksKeySize}.luks" + luksHashFile="${OUTD}/luks_tests/hashcat_${luksHash}_${luksCipher}_${luksMode}_${luksKeySize}.hash" + + case $attackType in + 0) + CMD="./${BIN} ${OPTS} -a 0 -m ${hashType} '${luksHashFile}' '${TDIR}/luks_tests/pw'" + ;; + 1) + luksPassPart1Len=$((${#LUKS_PASSWORD} / 2)) + luksPassPart2Start=$((luksPassPart1Len + 1)) + + echo "${LUKS_PASSWORD}" | cut -c-${luksPassPart1Len} > "${luksPassPartFile1}" 2>/dev/null + echo "${LUKS_PASSWORD}" | cut -c${luksPassPart2Start}- > "${luksPassPartFile2}" 2>/dev/null + + CMD="./${BIN} ${OPTS} -a 6 -m ${hashType} '${luksHashFile}' ${luksPassPartFile1} ${luksPassPartFile2}" + ;; + 3) + luksMaskFixedLen=$((${#LUKS_PASSWORD} - 1)) + + luksMask="$(echo "${LUKS_PASSWORD}" | cut -c-${luksMaskFixedLen} 2>/dev/null)" + luksMask="${luksMask}${luksMainMask}" + + CMD="./${BIN} ${OPTS} -a 3 -m ${hashType} '${luksHashFile}' ${luksMask}" + ;; + 6) + luksPassPart1Len=$((${#LUKS_PASSWORD} - 1)) + + echo "${LUKS_PASSWORD}" | cut -c-${luksPassPart1Len} > "${luksPassPartFile1}" 2>/dev/null + + CMD="./${BIN} ${OPTS} -a 6 -m ${hashType} '${luksHashFile}' ${luksPassPartFile1} ${luksMask}" + ;; + 7) + echo "${LUKS_PASSWORD}" | cut -c2- > "${luksPassPartFile1}" 2>/dev/null + + CMD="./${BIN} ${OPTS} -a 7 -m ${hashType} '${luksHashFile}' ${luksMask} ${luksPassPartFile1}" + ;; + esac + + eval \"${TDIR}/luks2hashcat.py\" \"${luksContainer}\" > "${luksHashFile}" + + luksMode="${luksHash}-${luksCipher}-${luksMode}-${luksKeySize}" + + if [ -n "${CMD}" ] && [ ${#CMD} -gt 5 ]; then + echo "> Testing hash type ${hashType} with attack mode ${attackType}, markov ${MARKOV}, single hash, Device-Type ${DEVICE_TYPE}, Kernel-Type ${KERNEL_TYPE}, Vector-Width ${VECTOR}, Luks-Mode ${luksMode}" >> "${OUTD}/logfull.txt" 2>> "${OUTD}/logfull.txt" + + if [ -f "${luks_first_test_file}" ]; then + output=$(eval ${CMD} 2>&1) + ret=${?} + + echo "${output}" >> "${OUTD}/logfull.txt" + else + ret=30 + fi + + e_ce=0 + e_rs=0 + e_to=0 + e_nf=0 + e_nm=0 + cnt=0 + + status ${ret} + + cnt=1 + + msg="OK" + + if [ "${e_ce}" -ne 0 ]; then + msg="Compare Error" + elif [ "${e_rs}" -ne 0 ]; then + msg="Skip" + elif [ "${e_nf}" -ne 0 ] || [ "${e_nm}" -ne 0 ]; then + msg="Error" + elif [ "${e_to}" -ne 0 ]; then + msg="Warning" + fi + + echo "[ ${OUTD} ] [ Type ${hash_type}, Attack ${attackType}, Mode single, Device-Type ${DEVICE_TYPE}, Kernel-Type ${KERNEL_TYPE}, Vector-Width ${VECTOR}, Luks-Mode ${luksMode} ] > $msg : ${e_nf}/${cnt} not found, ${e_nm}/${cnt} not matched, ${e_to}/${cnt} timeout, ${e_rs}/${cnt} skipped" + + status ${ret} + fi + done + done +} + +function luks_legacy_test() +{ + hashType=$1 + attackType=$2 + + # if -m all was set let us default to -a 3 only. You could specify the attack type directly, e.g. -m 0 + # the problem with defaulting to all=0,1,3,6,7 is that it could take way too long + + if [ "${attackType}" -eq 65535 ]; then + attackType=3 + fi + #LUKS_HASHES="sha1 sha256 sha512 ripemd160 whirlpool" LUKS_HASHES="sha1 sha256 sha512 ripemd160" LUKS_CIPHERS="aes serpent twofish" - LUKS_MODES="cbc-essiv cbc-plain64 xts-plain64" + LUKS_CIPHER_MODES="cbc-essiv cbc-plain64 xts-plain64" LUKS_KEYSIZES="128 256 512" LUKS_PASSWORD=$(cat "${TDIR}/luks_tests/pw" 2>/dev/null) for luks_h in ${LUKS_HASHES}; do for luks_c in ${LUKS_CIPHERS}; do - for luks_m in ${LUKS_MODES}; do + for luks_m in ${LUKS_CIPHER_MODES}; do for luks_k in ${LUKS_KEYSIZES}; do CMD="" @@ -3646,7 +3852,7 @@ if [ "${PACKAGE}" -eq 0 ] || [ -z "${PACKAGE_FOLDER}" ]; then # generate random test entry if [ "${HT}" -eq 65535 ]; then for TMP_HT in ${HASH_TYPES}; do - if [ "${TMP_HT}" -ne ${LUKS_MODE} ]; then + if ! is_in_array "${TMP_HT}" ${LUKS_MODES}; then if ! is_in_array "${TMP_HT}" ${TC_MODES}; then if ! is_in_array "${TMP_HT}" ${VC_MODES}; then if ! is_in_array "${TMP_HT}" ${CL_MODES}; then @@ -3662,7 +3868,7 @@ if [ "${PACKAGE}" -eq 0 ] || [ -z "${PACKAGE_FOLDER}" ]; then continue fi - if [ "${TMP_HT}" -ne ${LUKS_MODE} ]; then + if ! is_in_array "${TMP_HT}" ${LUKS_MODES}; then # Exclude TrueCrypt and VeraCrypt testing modes if ! is_in_array "${TMP_HT}" ${TC_MODES}; then if ! is_in_array "${TMP_HT}" ${VC_MODES}; then @@ -3812,9 +4018,15 @@ if [ "${PACKAGE}" -eq 0 ] || [ -z "${PACKAGE_FOLDER}" ]; then truecrypt_test "${hash_type}" 0 truecrypt_test "${hash_type}" 1 truecrypt_test "${hash_type}" 2 - elif [ "${hash_type}" -eq ${LUKS_MODE} ]; then + elif is_in_array "${hash_type}" ${LUKS_MODES}; then # run luks tests - luks_test "${hash_type}" ${ATTACK} + if [ ${hash_type} -eq 14600 ]; then + # for legacy mode + luks_legacy_test "${hash_type}" ${ATTACK} + else + # for new modes + luks_test "${hash_type}" ${ATTACK} + fi else # run attack mode 0 (stdin) if [ ${ATTACK} -eq 65535 ] || [ ${ATTACK} -eq 0 ]; then attack_0; fi @@ -3884,7 +4096,7 @@ if [ "${PACKAGE}" -eq 1 ]; then copy_cl_dir=1 else for TMP_HT in $(seq "${HT_MIN}" "${HT_MAX}"); do - if [ "${TMP_HT}" -eq "${LUKS_MODE}" ]; then + if is_in_array "${TMP_HT}" "${LUKS_MODES}"; then copy_luks_dir=1 elif is_in_array "${TMP_HT}" ${TC_MODES}; then copy_tc_dir=1