Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp831580imu; Tue, 20 Nov 2018 07:37:40 -0800 (PST) X-Google-Smtp-Source: AJdET5e8NDJ3hVzG1bZw+UpdS2LLYSBR2FC9CsWjJ6SG0urTmzpcttjsu8pfwASnyRcGYainly1p X-Received: by 2002:a62:546:: with SMTP id 67mr2587475pff.99.1542728260448; Tue, 20 Nov 2018 07:37:40 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1542728260; cv=none; d=google.com; s=arc-20160816; b=a6+OHu9/23/NdrywC+8e82yPCAbZ44q0OF6UxR/z1RckaaB7+oUVlDM3OsW8MFP6iL xRy7Jngo0yMgk1WRKrE0BRwvhHf9PccGlSIbqFfB4sc6tKZecPbd4j2Qz6sxlcOLk5j1 a8DSTRa2vPlVgFJONpMoqrBdCk/kAPb4oZrnIXojbjNz7NXK6Ct1BS8C4iM/1eawBbTf jFnXo9LsbCQUfqZbUGH83H2vSrJyDJJDq6KSvgY6S1vkhmtlFL9R9oJW+4acpT0QRAlz j0cxFYNa29iUYhGUMEqCTVExyigS0feJYOA+VltEebnwP/r5ELPZBRhg2FYNMYlnIGq+ Eo5Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=3qEAPLs2gpC334/oBZDqYM/qOmWvEN+M82xKfxmvWoY=; b=tb51TiIWMlNH2q79jDkOeT0j+DNrliSayWZgIq81fEB9wYC5AipGFXtpxStzymUxpS tBVeVgs24lZ9JQOibTHZpNUqOjgUf9Pr8XjZ2qHw0jQNYCNC3svG3dtxmB8Ff7I/2QWo o5OTznNxnv5dYTsPSXnBv0bJ8/j6EMkhbpOIknq4jaaAbVl++Iw9i9NqdQb3jvAq6Sz2 rHZcAPUzL1pGihNmN5FeQq2SXq6DzSRApIA4IztgxAr6CFVKHY+HTGFgFqRAaAiInKkN ylSJGg8mfMRcpPYFMvOaJTX+EazcGerMZ4NhuawCmh+yWnO11CrRFF+c/Sk1DxuA7Zmg hkzw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id u9si15970203plk.61.2018.11.20.07.37.25; Tue, 20 Nov 2018 07:37:40 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727853AbeKUCGM (ORCPT + 99 others); Tue, 20 Nov 2018 21:06:12 -0500 Received: from mga11.intel.com ([192.55.52.93]:31319 "EHLO mga11.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727171AbeKUCGL (ORCPT ); Tue, 20 Nov 2018 21:06:11 -0500 X-Amp-Result: UNKNOWN X-Amp-Original-Verdict: FILE UNKNOWN X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 20 Nov 2018 07:36:27 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,257,1539673200"; d="gz'50?scan'50,208,50";a="281539064" Received: from lkp-server01.sh.intel.com (HELO lkp-server01) ([10.239.97.150]) by fmsmga005.fm.intel.com with ESMTP; 20 Nov 2018 07:36:25 -0800 Received: from kbuild by lkp-server01 with local (Exim 4.89) (envelope-from ) id 1gP84f-00040w-1V; Tue, 20 Nov 2018 23:36:25 +0800 Date: Tue, 20 Nov 2018 23:35:52 +0800 From: kbuild test robot To: Tudor.Ambarus@microchip.com Cc: kbuild-all@01.org, marek.vasut@gmail.com, dwmw2@infradead.org, computersforpeace@gmail.com, boris.brezillon@bootlin.com, richard@nod.at, Cyrille.Pitchen@microchip.com, linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org, Tudor.Ambarus@microchip.com Subject: Re: [PATCH] mtd: spi-nor: parse SFDP 4-byte Address Instruction Table Message-ID: <201811202348.n7lHxFem%fengguang.wu@intel.com> References: <20181120115512.15958-1-tudor.ambarus@microchip.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="qMm9M+Fa2AknHoGS" Content-Disposition: inline In-Reply-To: <20181120115512.15958-1-tudor.ambarus@microchip.com> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --qMm9M+Fa2AknHoGS Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi Cyrille, Thank you for the patch! Yet something to improve: [auto build test ERROR on mtd/spi-nor/next] [also build test ERROR on v4.20-rc3 next-20181120] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Tudor-Ambarus-microchip-com/mtd-spi-nor-parse-SFDP-4-byte-Address-Instruction-Table/20181120-223821 base: git://git.infradead.org/linux-mtd.git spi-nor/next config: i386-randconfig-x005-201846 (attached as .config) compiler: gcc-7 (Debian 7.3.0-1) 7.3.0 reproduce: # save the attached .config to linux build tree make ARCH=i386 All errors (new ones prefixed by >>): drivers/mtd//spi-nor/spi-nor.c: In function 'spi_nor_parse_4bait': >> drivers/mtd//spi-nor/spi-nor.c:3165:15: error: implicit declaration of function 'spi_nor_sort_erase_mask'; did you mean 'spi_nor_set_erase_type'? [-Werror=implicit-function-declaration] erase_mask = spi_nor_sort_erase_mask(map, erase_mask); ^~~~~~~~~~~~~~~~~~~~~~~ spi_nor_set_erase_type Cyclomatic Complexity 5 include/linux/compiler.h:__write_once_size Cyclomatic Complexity 1 include/linux/err.h:ERR_PTR Cyclomatic Complexity 1 include/linux/err.h:PTR_ERR Cyclomatic Complexity 1 arch/x86/include/asm/bitops.h:ffs Cyclomatic Complexity 1 arch/x86/include/asm/bitops.h:fls Cyclomatic Complexity 2 include/asm-generic/bitops/fls64.h:fls64 Cyclomatic Complexity 1 arch/x86/include/asm/arch_hweight.h:__arch_hweight32 Cyclomatic Complexity 1 include/linux/log2.h:__ilog2_u32 Cyclomatic Complexity 1 include/linux/log2.h:__ilog2_u64 Cyclomatic Complexity 3 include/linux/log2.h:is_power_of_2 Cyclomatic Complexity 1 include/linux/list.h:INIT_LIST_HEAD Cyclomatic Complexity 1 include/linux/list.h:__list_add_valid Cyclomatic Complexity 1 include/linux/list.h:__list_del_entry_valid Cyclomatic Complexity 2 include/linux/list.h:__list_add Cyclomatic Complexity 1 include/linux/list.h:list_add_tail Cyclomatic Complexity 1 include/linux/list.h:__list_del Cyclomatic Complexity 2 include/linux/list.h:__list_del_entry Cyclomatic Complexity 1 include/linux/list.h:list_del Cyclomatic Complexity 2 arch/x86/include/asm/div64.h:div_u64_rem Cyclomatic Complexity 1 include/asm-generic/getorder.h:__get_order Cyclomatic Complexity 1 include/linux/kobject.h:kobject_name Cyclomatic Complexity 2 include/linux/device.h:dev_name Cyclomatic Complexity 1 include/linux/device.h:dev_of_node Cyclomatic Complexity 67 include/linux/slab.h:kmalloc_large Cyclomatic Complexity 3 include/linux/slab.h:kmalloc Cyclomatic Complexity 1 include/linux/mtd/mtd.h:mtd_get_of_node Cyclomatic Complexity 1 include/linux/mtd/spi-nor.h:spi_nor_get_protocol_data_nbits Cyclomatic Complexity 1 include/linux/mtd/spi-nor.h:spi_nor_get_protocol_width Cyclomatic Complexity 1 include/linux/mtd/spi-nor.h:spi_nor_region_is_last Cyclomatic Complexity 1 include/linux/mtd/spi-nor.h:spi_nor_region_end Cyclomatic Complexity 1 include/linux/mtd/spi-nor.h:spi_nor_region_mark_end Cyclomatic Complexity 1 include/linux/mtd/spi-nor.h:spi_nor_region_mark_overlay Cyclomatic Complexity 1 include/linux/mtd/spi-nor.h:spi_nor_has_uniform_erase Cyclomatic Complexity 1 include/linux/mtd/spi-nor.h:spi_nor_get_flash_node Cyclomatic Complexity 1 drivers/mtd//spi-nor/spi-nor.c:write_sr Cyclomatic Complexity 1 drivers/mtd//spi-nor/spi-nor.c:write_enable Cyclomatic Complexity 1 drivers/mtd//spi-nor/spi-nor.c:write_disable Cyclomatic Complexity 1 drivers/mtd//spi-nor/spi-nor.c:mtd_to_spi_nor Cyclomatic Complexity 3 drivers/mtd//spi-nor/spi-nor.c:spi_nor_convert_opcode Cyclomatic Complexity 1 drivers/mtd//spi-nor/spi-nor.c:spi_nor_convert_3to4_read Cyclomatic Complexity 1 drivers/mtd//spi-nor/spi-nor.c:spi_nor_convert_3to4_program Cyclomatic Complexity 1 drivers/mtd//spi-nor/spi-nor.c:spi_nor_convert_3to4_erase Cyclomatic Complexity 4 drivers/mtd//spi-nor/spi-nor.c:spi_nor_set_4byte_opcodes Cyclomatic Complexity 8 drivers/mtd//spi-nor/spi-nor.c:set_4byte Cyclomatic Complexity 1 drivers/mtd//spi-nor/spi-nor.c:erase_chip Cyclomatic Complexity 2 drivers/mtd//spi-nor/spi-nor.c:spi_nor_s3an_addr_convert Cyclomatic Complexity 4 drivers/mtd//spi-nor/spi-nor.c:spi_nor_erase_sector Cyclomatic Complexity 1 drivers/mtd//spi-nor/spi-nor.c:spi_nor_div_by_erase_size Cyclomatic Complexity 6 drivers/mtd//spi-nor/spi-nor.c:spi_nor_find_best_erase_type Cyclomatic Complexity 2 drivers/mtd//spi-nor/spi-nor.c:spi_nor_region_next Cyclomatic Complexity 3 drivers/mtd//spi-nor/spi-nor.c:spi_nor_find_erase_region Cyclomatic Complexity 3 drivers/mtd//spi-nor/spi-nor.c:spi_nor_init_erase_cmd Cyclomatic Complexity 4 drivers/mtd//spi-nor/spi-nor.c:stm_get_locked_range Cyclomatic Complexity 7 drivers/mtd//spi-nor/spi-nor.c:stm_check_lock_status_sr Cyclomatic Complexity 1 drivers/mtd//spi-nor/spi-nor.c:stm_is_locked_sr Cyclomatic Complexity 1 drivers/mtd//spi-nor/spi-nor.c:stm_is_unlocked_sr Cyclomatic Complexity 1 drivers/mtd//spi-nor/spi-nor.c:spi_nor_set_read_settings Cyclomatic Complexity 1 drivers/mtd//spi-nor/spi-nor.c:spi_nor_set_pp_settings Cyclomatic Complexity 4 drivers/mtd//spi-nor/spi-nor.c:spi_nor_read_raw Cyclomatic Complexity 1 drivers/mtd//spi-nor/spi-nor.c:spi_nor_read_sfdp Cyclomatic Complexity 1 drivers/mtd//spi-nor/spi-nor.c:spi_nor_set_read_settings_from_bfpt Cyclomatic Complexity 1 drivers/mtd//spi-nor/spi-nor.c:spi_nor_set_erase_type Cyclomatic Complexity 1 drivers/mtd//spi-nor/spi-nor.c:spi_nor_set_erase_settings_from_bfpt Cyclomatic Complexity 1 drivers/mtd//spi-nor/spi-nor.c:spi_nor_map_cmp_erase_type Cyclomatic Complexity 5 drivers/mtd//spi-nor/spi-nor.c:spi_nor_regions_sort_erase_types Cyclomatic Complexity 1 drivers/mtd//spi-nor/spi-nor.c:spi_nor_init_uniform_erase_map Cyclomatic Complexity 4 drivers/mtd//spi-nor/spi-nor.c:spi_nor_smpt_addr_width Cyclomatic Complexity 2 drivers/mtd//spi-nor/spi-nor.c:spi_nor_smpt_read_dummy Cyclomatic Complexity 5 drivers/mtd//spi-nor/spi-nor.c:spi_nor_get_map_in_use Cyclomatic Complexity 4 drivers/mtd//spi-nor/spi-nor.c:spi_nor_region_check_overlay Cyclomatic Complexity 3 drivers/mtd//spi-nor/spi-nor.c:spi_nor_hwcaps2cmd Cyclomatic Complexity 1 drivers/mtd//spi-nor/spi-nor.c:spi_nor_hwcaps_read2cmd Cyclomatic Complexity 1 drivers/mtd//spi-nor/spi-nor.c:spi_nor_hwcaps_pp2cmd Cyclomatic Complexity 3 drivers/mtd//spi-nor/spi-nor.c:spi_nor_select_read Cyclomatic Complexity 3 drivers/mtd//spi-nor/spi-nor.c:spi_nor_select_pp Cyclomatic Complexity 7 drivers/mtd//spi-nor/spi-nor.c:spi_nor_select_uniform_erase Cyclomatic Complexity 6 drivers/mtd//spi-nor/spi-nor.c:spi_nor_select_erase Cyclomatic Complexity 2 drivers/mtd//spi-nor/spi-nor.c:s3an_sr_ready Cyclomatic Complexity 2 drivers/mtd//spi-nor/spi-nor.c:read_cr Cyclomatic Complexity 9 drivers/mtd//spi-nor/spi-nor.c:spi_nor_setup Cyclomatic Complexity 4 drivers/mtd//spi-nor/spi-nor.c:s3an_nor_scan Cyclomatic Complexity 65 include/linux/log2.h:__order_base_2 Cyclomatic Complexity 3 drivers/mtd//spi-nor/spi-nor.c:spi_nor_lock_and_prep Cyclomatic Complexity 2 drivers/mtd//spi-nor/spi-nor.c:spi_nor_unlock_and_unprep Cyclomatic Complexity 2 drivers/mtd//spi-nor/spi-nor.c:spi_nor_is_locked Cyclomatic Complexity 2 drivers/mtd//spi-nor/spi-nor.c:spi_nor_unlock Cyclomatic Complexity 2 drivers/mtd//spi-nor/spi-nor.c:spi_nor_lock Cyclomatic Complexity 2 drivers/mtd//spi-nor/spi-nor.c:read_sr Cyclomatic Complexity 5 drivers/mtd//spi-nor/spi-nor.c:spi_nor_sr_ready Cyclomatic Complexity 2 drivers/mtd//spi-nor/spi-nor.c:stm_is_locked Cyclomatic Complexity 2 drivers/mtd//spi-nor/spi-nor.c:read_fsr Cyclomatic Complexity 5 drivers/mtd//spi-nor/spi-nor.c:spi_nor_fsr_ready Cyclomatic Complexity 5 drivers/mtd//spi-nor/spi-nor.c:spi_nor_ready Cyclomatic Complexity 7 drivers/mtd//spi-nor/spi-nor.c:spi_nor_wait_till_ready_with_timeout Cyclomatic Complexity 1 drivers/mtd//spi-nor/spi-nor.c:spi_nor_wait_till_ready Cyclomatic Complexity 74 drivers/mtd//spi-nor/spi-nor.c:spi_nor_write Cyclomatic Complexity 5 drivers/mtd//spi-nor/spi-nor.c:write_sr_and_check vim +3165 drivers/mtd//spi-nor/spi-nor.c 3053 3054 /** 3055 * spi_nor_parse_4bait() - parse the 4-Byte Address Instruction Table 3056 * @nor: pointer to a 'struct spi_nor'. 3057 * @param_header: pointer to the 'struct sfdp_parameter_header' describing 3058 * the 4-Byte Address Instruction Table length and version. 3059 * @params: pointer to the 'struct spi_nor_flash_parameter' to be. 3060 * 3061 * Return: 0 on success, -errno otherwise. 3062 */ 3063 static int spi_nor_parse_4bait(struct spi_nor *nor, 3064 const struct sfdp_parameter_header *param_header, 3065 struct spi_nor_flash_parameter *params) 3066 { 3067 static const struct sfdp_4bait reads[] = { 3068 { SNOR_HWCAPS_READ, BIT(0) }, 3069 { SNOR_HWCAPS_READ_FAST, BIT(1) }, 3070 { SNOR_HWCAPS_READ_1_1_2, BIT(2) }, 3071 { SNOR_HWCAPS_READ_1_2_2, BIT(3) }, 3072 { SNOR_HWCAPS_READ_1_1_4, BIT(4) }, 3073 { SNOR_HWCAPS_READ_1_4_4, BIT(5) }, 3074 { SNOR_HWCAPS_READ_1_1_1_DTR, BIT(13) }, 3075 { SNOR_HWCAPS_READ_1_2_2_DTR, BIT(14) }, 3076 { SNOR_HWCAPS_READ_1_4_4_DTR, BIT(15) }, 3077 }; 3078 static const struct sfdp_4bait programs[] = { 3079 { SNOR_HWCAPS_PP, BIT(6) }, 3080 { SNOR_HWCAPS_PP_1_1_4, BIT(7) }, 3081 { SNOR_HWCAPS_PP_1_4_4, BIT(8) }, 3082 }; 3083 static const struct sfdp_4bait erases[SNOR_ERASE_TYPE_MAX] = { 3084 { 0u /* not used */, BIT(9) }, 3085 { 0u /* not used */, BIT(10) }, 3086 { 0u /* not used */, BIT(11) }, 3087 { 0u /* not used */, BIT(12) }, 3088 }; 3089 struct spi_nor_pp_command *params_pp = params->page_programs; 3090 struct spi_nor_erase_map *map = &nor->erase_map; 3091 struct spi_nor_erase_type *erase_type = map->erase_type; 3092 u32 *dwords; 3093 size_t len; 3094 u32 addr, discard_hwcaps, read_hwcaps, pp_hwcaps, erase_mask; 3095 int i, ret; 3096 3097 if (param_header->major != SFDP_JESD216_MAJOR || 3098 param_header->length < SFDP_4BAIT_DWORD_MAX) 3099 return -EINVAL; 3100 3101 /* Read the 4-byte Address Instruction Table. */ 3102 len = sizeof(*dwords) * SFDP_4BAIT_DWORD_MAX; 3103 3104 /* Use a kmalloc'ed bounce buffer to guarantee it is DMA-able. */ 3105 dwords = kmalloc(len, GFP_KERNEL); 3106 if (!dwords) 3107 return -ENOMEM; 3108 3109 addr = SFDP_PARAM_HEADER_PTP(param_header); 3110 ret = spi_nor_read_sfdp(nor, addr, len, dwords); 3111 if (ret) 3112 return ret; 3113 3114 /* Fix endianness of the 4BAIT DWORDs. */ 3115 for (i = 0; i < SFDP_4BAIT_DWORD_MAX; i++) 3116 dwords[i] = le32_to_cpu(dwords[i]); 3117 3118 /* 3119 * Compute the subset of (Fast) Read commands for which the 4-byte 3120 * version is supported. 3121 */ 3122 discard_hwcaps = 0; 3123 read_hwcaps = 0; 3124 for (i = 0; i < ARRAY_SIZE(reads); i++) { 3125 const struct sfdp_4bait *read = &reads[i]; 3126 3127 discard_hwcaps |= read->hwcaps; 3128 if ((params->hwcaps.mask & read->hwcaps) && 3129 (dwords[0] & read->supported_bit)) 3130 read_hwcaps |= read->hwcaps; 3131 } 3132 3133 /* 3134 * Compute the subset of Page Program commands for which the 4-byte 3135 * version is supported. 3136 */ 3137 pp_hwcaps = 0; 3138 for (i = 0; i < ARRAY_SIZE(programs); i++) { 3139 const struct sfdp_4bait *program = &programs[i]; 3140 3141 /* 3142 * The 4 Byte Address Instruction (Optional) Table is the only 3143 * SFDP table that indicates support for Page Program Commands. 3144 * Bypass the params->hwcaps.mask and consider 4BAIT the biggest 3145 * authority for specifying Page Program support. 3146 */ 3147 discard_hwcaps |= program->hwcaps; 3148 if (dwords[0] & program->supported_bit) 3149 pp_hwcaps |= program->hwcaps; 3150 } 3151 3152 /* 3153 * Compute the subset of Sector Erase commands for which the 4-byte 3154 * version is supported. 3155 */ 3156 erase_mask = 0; 3157 for (i = 0; i < SNOR_ERASE_TYPE_MAX; i++) { 3158 const struct sfdp_4bait *erase = &erases[i]; 3159 3160 if (dwords[0] & erase->supported_bit) 3161 erase_mask |= BIT(i); 3162 } 3163 3164 /* Replicate the sort done for the map's erase types in BFPT. */ > 3165 erase_mask = spi_nor_sort_erase_mask(map, erase_mask); 3166 3167 /* 3168 * We need at least one 4-byte op code per read, program and erase 3169 * operation; the .read(), .write() and .erase() hooks share the 3170 * nor->addr_width value. 3171 */ 3172 if (!read_hwcaps || !pp_hwcaps || !erase_mask) 3173 goto out; 3174 3175 /* 3176 * Discard all operations from the 4-byte instruction set which are 3177 * not supported by this memory. 3178 */ 3179 params->hwcaps.mask &= ~discard_hwcaps; 3180 params->hwcaps.mask |= (read_hwcaps | pp_hwcaps); 3181 3182 /* Use the 4-byte address instruction set. */ 3183 for (i = 0; i < SNOR_CMD_READ_MAX; i++) { 3184 struct spi_nor_read_command *read_cmd = ¶ms->reads[i]; 3185 3186 read_cmd->opcode = spi_nor_convert_3to4_read(read_cmd->opcode); 3187 } 3188 3189 /* 4BAIT is the only SFDP table that indicates page program support. */ 3190 if (pp_hwcaps & SNOR_HWCAPS_PP) 3191 spi_nor_set_pp_settings(¶ms_pp[SNOR_CMD_PP], 3192 SPINOR_OP_PP_4B, SNOR_PROTO_1_1_1); 3193 if (pp_hwcaps & SNOR_HWCAPS_PP_1_1_4) 3194 spi_nor_set_pp_settings(¶ms_pp[SNOR_CMD_PP_1_1_4], 3195 SPINOR_OP_PP_1_1_4_4B, 3196 SNOR_PROTO_1_1_4); 3197 if (pp_hwcaps & SNOR_HWCAPS_PP_1_4_4) 3198 spi_nor_set_pp_settings(¶ms_pp[SNOR_CMD_PP_1_4_4], 3199 SPINOR_OP_PP_1_4_4_4B, 3200 SNOR_PROTO_1_4_4); 3201 3202 for (i = 0; i < SNOR_ERASE_TYPE_MAX; i++) { 3203 if (erase_mask & BIT(i)) 3204 erase_type[i].opcode = (dwords[1] >> 3205 erase_type[i].idx * 8) & 0xFF; 3206 else 3207 spi_nor_set_erase_type(&erase_type[i], 0u, 0xFF); 3208 } 3209 3210 /* 3211 * We set nor->addr_width here to skip spi_nor_set_4byte_opcodes() 3212 * later because this latest function implements a legacy quirk for 3213 * the erase size of Spansion memory. However this quirk is no longer 3214 * needed with new SFDP compliant memories. 3215 */ 3216 nor->addr_width = 4; 3217 nor->flags |= SPI_NOR_4B_OPCODES; 3218 3219 /* fall through */ 3220 out: 3221 kfree(dwords); 3222 return ret; 3223 } 3224 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation --qMm9M+Fa2AknHoGS Content-Type: application/gzip Content-Disposition: attachment; filename=".config.gz" Content-Transfer-Encoding: base64 H4sICAYp9FsAAy5jb25maWcAlFzdc9u2sn/vX6FJX9o5k9QfiZNz7/gBBEEJFUEwAChLeeG4 tpJ6jmPnyPZp89/fXYAUAWqpnNvJdEzs4nux+9vFQj//9POMvTw/fr1+vru5vr//Pvuyfdju rp+3t7PPd/fb/53lelZpNxO5dG+Aubx7ePn7t7vzDxezt2/OTt6cvN7dnM2W293D9n7GHx8+ 3315gep3jw8//fwT/PsZCr9+g5Z2/zP7cnPz+v3sl3z7x931w+z9m3Ooffpr+ANYua4KOW85 b6Vt55xffu+L4KNdCWOlri7fn5yfnOx5S1bN96R9sTQf2yttlkMLWSPL3EklWrF2LCtFa7Vx A90tjGB5K6tCw/9axyxW9uOf+wW5nz1tn1++DcOUlXStqFYtM/O2lEq6y/MznG43Mq1qCd04 Yd3s7mn28PiMLfS1S81Z2Y/71SuquGWN06MZtJaVLuJfsJVol8JUomznn2Q9sMeUDChnNKn8 pBhNWX+aqqGnCG+BsF+AaFTx/Md0P7ZjDDhCYgHjUR5W0cdbfEs0mIuCNaVrF9q6iilx+eqX h8eH7a+vhvr2itFzsRu7kjUnWq21letWfWxEI4Zli0uxMndlPA1utLWtEkqbTcucY3xBdttY UcqMJLEGzisxHr9hzPBF4MC+WVn2og7nZvb08sfT96fn7ddB1OeiEkZyf6xqo7NoJjHJLvQV TRFFIbiT2HVRtCocrhFfLapcVv7s0o0oOTfM4XkhyXwRiz+W5FoxWaVlViqKqV1IYXBZNhN9 M2dgx2Cp4IA6bWguI6wwKz/GVulcpD0V2nCRd5oGZjpQbc2MFd3M91sYt5yLrJkXlthQDiNa Wt1A2+0Vc3yR66hlv9MxS84cO0JGpTaQY8qKlRIqi7Zk1rV8w0tCCryCXQ1CNSL79sRKVM4e JbaZ0Szn0NFxNgUbx/LfG5JPads2NQ65l25393W7e6IE3Em+bHUlQIKjphafQCiN1Lnk8b5U GikyLwV58jyZOnlyvkAJ8YtkbNxibYRQtYOqlaB0SEde6bKpHDMbou6RalxDrX4NeN385q6f /jV7hsWYXT/czp6er5+fZtc3N48vD893D19GqwIVWsZ9G4nMolT67aaIXstYvgBxZ6vRkc5s jkqEC1BxUNfFkxnT2tU5ucZonq1jzpLU2krqoMBEpNVlr0L8chjezCwhD7B0LdDiscEnYAcQ CGqtbWCOq4+KcMRtUoQNwiTKErGCitUaUioBi2fFnGeljOU7wIBMVmcRPpLL8MdhiV/OobjU 2EIBqloW7vLsJC7HBVJsHdFPzwZZkpVbAvooxKiN0/Nk05vKdvDK774/rSN9c8Uq12aoqoCh qRSrW1dmbVE2dhHpnrnRTZ0cEzCIfE4sflYuO/ahuleYJCV8h/ENpQWTpk0pgzkuQCOxKr+S uaMNsXFxXZKl67aWOS20Hd3kKdoZ0wsQrU/C0Cw1AAJHGolQORcryUUytUCAmnjcpmuC2BdE Pb/K1HHQfLnnSSwOIiswd3DC4+YaUOYVvS4Aq6ZIMFszovXiKnMgRL0KF76HCSwEX9YapBp1 Mlh0SvF2GgxgeC9DMeIDqcgFKFkABOme90IhShbBCZRF2ABvYk0kef6bKWgtWNoI3Zu8B/WD pOVHEDMQJ9AyUFKk7FlplOxJFEIGJ0zXoPPlJ4FgxguFNopVI5kasVn4g1rcHvb2ugGsHywG wKZo44JOkfnpRYSWfEXQxVzUHmrB8nExqlNzWy9hiKDucYzRNtTF8BH0eSKJ2BcxWgWugUSB S4RgLhyC2bZDPFO+Ae7tcQ6cEMHSK6cFaJ8yWeTgQQQoQdp+1NeRwxH0d6VkbEkiezG9XgyQ adHEcK5onFiPPuHIRcta65jfynnFyiKSeT/uIlGyHtIV1DmyC1D8kZxIHddj+Upa0S8etRZQ O2PGSBGh9iXybpQ9LGkT5Lov9cuAJxq9mASy1MXRzUWZ8Y4lOTdvEBfMRoOE1iqAr6CRIkBg ReIaBOuGpUSb0JLI89i4hRMB42jH4NsXwhDblfK+TSwQpydve5jUhXfq7e7z4+7r9cPNdib+ s30A3MgAQXJEjoCsB/xE9hUGTfS4n9ZKhUoBstKSjXEVBvjBB3eGI1Qy2g+2ZZNRMlXqbFwf 9sDMRR8HoJGl0YUsAeoSTXot5C1KNOf1h4v2/Cz5jjW/dabhXoflgoPmiyRUN65uXOsVrLt8 tb3/fH72GsNurxLZgdF20O/V9e7mz9/+/nDx242Pwj35IF17u/0cvuMY0xIMV2ubuk5iYIDc +NJP45CmVIRcfc8KgZupEIsGV+zywzE6W1+eXtAM/Zb+oJ2ELWlu7ylb1uZxPKsnJKquL1xc CXDJ3HhabNNbkLbIowNhrqxQ7Zov5iwHUFDOtZFuoQ7bBVUgM4Oucp4igP1hR6SNumRN0RiA jhZkTHjDSXCABMLZaOs5SKMbHXLAfwGtBb/NiBh6oUfRk7ySgKYMOvOLplpO8NUMjgTJFsYj M2GqEPEAk2RlVo6HbBuLoZ0psvcGFg30UitweBbMkBx+cVnpOcFbOOjDi6vdAw+M5MIaJk5p ytlpI5jeSPGFI9taVU9VbXwMLDrlBZhiwUy54Rj4iY1VPQ/eUAl6rbSXe38KMBJupWW4zXjs cC8FD5Elr3Lr3ePN9unpcTd7/v4teOqft9fPL7vtU3DkQ0OfNLSQk5gvmQHOqhDMNUYEDJ6S VO1DUEn4SZd5Ie2CRLYOLDyIaMwPik+UAB5pzYmdZHIOYyLaQ6JYO5ASlLwBgiS1qfEkDGEA StL+18DxsWFm+QOesra0z4EsTA2j7Hwq2nXRtmhVRgUjsBmT8/Oz0/V4niB7iIRBKqqcGQo0 INdeGLsoMfivZWME0Zg0kp5K8G60kmBlwAGBA4jGK/Ute92yAX0AOAvQ/LwRcTgCxIatZIqh +7JD9/CQxdZwUDHKSIX4AQ/03Q0x/JXqzm4xEf3pmx5FpyiU3LP2YYoh1PD2wwXZunp3hOAs n6QptaZpF1MNgtYEl0NJ+QPycbo6Sn1LU5cTQ1q+nyj/QJdz01hNHw4ligIOjq5o6pWsMKDP SV+sI54nDoQCgzrR2FwAtpqvT49Q23Jie/jGyPXkIq8k4+ct7Y174sSCIbyfqMWcVhOHvkMY qer2Zxbd5g46hLDcRcxSnk7TAKzMK4WgO/axB02I/gvX9SalIYCvwWaFOIptVEqGgzCyL2CL VaM8pCiYkuXm8u3gm/qAL0YKRCl4fP8A3KDowkgOi/3WJPC6p4CGPixcbOZxkHXfCsydNYlf 35MAC1dWCcegk6mIm2dsFB+x9IqzFkERRcjelwnVlAgRjUs8oFxR1qLyWMy2MBzASZmYA0g+ o4lgQwf83JM6l+aAAAUja2AVGd32NBXtaV+CgQWdbrW/wm5ZfSCnmig0woCjE+JEmdFLUbWZ 1g5vDMYIJQ7xdAUYiS7FnPHN2O4pf5cFUjNxkpAehCS17BWXeBQUpyJWfUW8wbMLgCMHA4I+ fw8SHDBc5C9/fXy4e37cJRcskZvcn7YqdfwPOQyry2N0jvciaago4vHQRV9NBJD99vn1BFd8 wiw5DUoko/Cm/LAcby7uJYDjEMfvFZzkcOCT29F90fikD4TkRA/FsAlBARbsQD6sGW8vyPwE Oqw0Xs8Blpq4uAPK23ncXFd48ZbGNytl6xKA1fmPyOixHGU5o4DLQMT6aQglUE5pvAMaQhcF eImXJ3+//3Di/xvN83DRGIJRJ62TnIJpcQwL9A83m3rsVBeg6wKVEQ6idz2myd4o9DgXr9Uj AZElymvZQ1e8pW7EZTKl2h2gYm+0wB3RFuNspvFh5CmU7u/08dbr6vLibWSnnaGQsh8yqOJc j0yiVawej6M782oiQ0YUNOqwgmMshKQtPrWnJyeUFH9qz96dJCL8qT1PWUet0M1cQjOpGVgY vClOQLpYCyobhhtmF23exJ5pvdhYiSYDhMygXJ52YjlcSAifdYGyQQl1X98jGah/lkq1dnXZ eFOdhG1BMyH8VzEDvRjB2/ghWxeeWuWWvlbhKvdRHeiZjhSDaMti05a5O3IV4OUrnJP+SHQj 2xudx7+2uxkYnesv26/bh2cfOmC8lrPHb5iWF4Vpu9BMZNa7WE13y5hESDuSXcrah6iprVCt LYWIN7cr6YIRg01S/lrN02gvTrVXbCmmXMNajVqbuokEEi8ju3T1Mdi/1rsf3tj36Ggi2oNL F9EOvnqL6eXTgp7Qy2YcOlIYaOxyr7BKHQcWfQnsuAMNGMbmTbiNgrDDbQfy+rnOSUc9tFVz E4Yz7qTbnLQ5xN+FPYQFMY8Rq1avhDEyF3EkL21J8COJSp6DjeedMQd6ezMubZzzWD1tfwW9 66mmC3ZYwTHa3IdlBNmaasz7KUaAsFg7GtvgruyhFk2W+cEG7Imj8gklNWqQzecGZM3pyW1y C2EUK0fSh7a5Ww5UG009NywfD21MI0RueilrjsKlKd8hLKcGHwuU39S8pe5cg7RZm9EhnlB3 ItEidNhYcKNBQ7qFPsJmRN5gTt6CmfyKGQBHVbmhrN7+5LJaROc/Le+uV9MukECbldoVR7B4 OFBrBz7OhIKUeM8OAiEnYij9ysPf5IFEBALqsfdOB01fTEUsGbCj4Yx2MVXEyABGGFyYkJzR GQ1KLFBn6wHxJU34VK2ctPa+ngSMyzZtVrLkQgKNSgk4re3u4PqEt1mx2/77Zftw8332dHN9 n7hg/UFP4wL+6M/1CpNvMSzhJsj7xK0kIuDJqBsmYwaeo084xoaiVAoKNpFVUHQsS2+jSU7c Cp9z89+PR1e5gNFMpDJRNYDWJb+u/h/9eADZOEkjomSt/8sl+vHSTC4JxdgvxKQADLOeYNlP MZbIz2OJnN3u7v4T7tDjEYcFo/Tq4D/UBx6/P9mc9w1MX2R0pm7MFDeDS1nBmVpeHPSwJ9FB Th+xXHsdoPTkPUYtRA7QJ8ThjKxG0aRD+h7ZJB0NfHIiWT7lsmSgzU/rbbgOgDGnQ+m3o/KJ 3GfjEZS6mpuGVsU9fQGCP8kgBrlNTIIXiac/r3fb20MIn86qlFksZfL2fpuquhST9CVeTkuW 5+IgDLonK1E1VNDHi2DXrO84e3nqhzn7BYDBbPt88+bXKOjFEyOJ0GGu0RenzZwnKxU+j7Dk 0gg+kbXhGXRJP9DwRFZFEBSLcEBpSeggLevHlZZiT6O6/pGBHc+bV9nZCazvx0ZO3EgCl0Af IGuml0eR6c5I8e0e9HrkVg5hnCMTZpCEp6LE1Oz9pJOaUq8mW60NDYI8jVlJqQffJctE8jSm R4woWOMzgmU3jw/Pu8f7e3CBB40aDsT17RYDscC1jdjwPcC3b4+751jz4rK3HIAwGBv/IGhy c/ZcU34sTKJw8P/TiVALMmAP/eXOdE9rzDxaH8w63z7dfXm4AvXgF4A/wh92P6X9woiH22+P dw/PyUHE6wIfOkvFtS/do8fxVou6OHjYtu/p6a+755s/6Z1IRe0K/knHF07Q08Z8npHkR5Rc MbxRiIKBlsUDFfBNXmZghCi+ysDvhRlf03SneN8cfrdrffoOalAHjpUyucuvhHv37uSU4lR5 W2XxknMWZwTXXHHJxt9w/FjechmpJawG67OP/PDXN9e729kfu7vbL2mayAYvuWjRyi/en/2T Xv4PZyf/pC++gHR+8Y6+IOCS1rN+Ev3zsSG4B1uYSzpk5o3bxhbZgZxldw/Xu+8z8fXl/npk Ebs43Pn4wSPeq2KOmA6B2JjUZ27NfeDGd1Dc7b7+hWcq38tuL1Z5mrea5xhSJ8dfSKO8W6kE ZrFNyDi3oDuzwgH7BOAurlpedJnExNKCbZuXYt9bPLqOhJdK/l7tIIgaHkZtv+yuZ5/7KYfj Osw4PPJcJZ4epk00IPKf2Dh2nryZxZzEu+ftDeYtvb7dfts+3GJI8gDG9GrdqnFGmw45lxFq 6UvQ3T70Xn9vVB3MxpQfP0T+msrHjDHHn2OMZRQ3wUtufG7jZNVm+PZzNDQJq4rJiUQe3nKc IhZKMXGKIuiaLu+aAS8EjAiR5V40VUgfFcZgxMnfPiYvJD1bkvY9vAD1LS60Xo6IqFjh28l5 oxvipZ6FFfa4MDxlJKJNgJAdxrK7Fw2HDOBSd+FrcmDhMXbIjm2vFhIwZvIIap8XaNt8UzE8 187n4fsaoyaNmNuWYegaE+26rU4tR+CzcRggXV984z1ZMQkw+5LFVZvBFJYj2+ppSq5B4Aay 9QMcMfnoCUhLY6q20rCWSfb6OJ+b2GCMaCFe8490QmZh/4jnoBGi/z5L23SLll7ZDDs1nLbj 1Dh1Pllz3nSRR7xymCTKqn9+eiBLQbzDyzSuaszPHW9PKA2JCRO0XDcTqan4/ig8z+1f6xMT 7W7kutRckgOXsYQ9HxEPkj97K9YliCZk/0A0Qi4TdUeV4FDog8eZYYLSLWTVbbHPARzLwY9f efaapMJrXNHl8uJF81jsdd5f9woO8hx5SEBq8OoE9a0oUR6pCLan+IvVJC16GESScD5iEGvp aHWV1vqQSoeuN70ycmXUZgdMU13AS8zFzWAtwQrnETcmKVg574Kh5wcENtLZg5Z0oG5d/7MF 5mod7/EkaVw9LO8Ej8H3A02spPqS0aOfYZ1r2J/zs/5WFka+B6Bzrlev/7h+2t7O/hVejHzb PX6+6yKuAygBtm7kx9IJPFtv65NXOQgV8M0+uE2cX7768o9/pD+IgT8XEnhi63W8EJ+0e+xY oqxsSBbM2KrwRz/gRNU0S7BA3UGPZkwwtNkG1rqdejhE1wEllGlLR1ijGnhQQq0ft90pJmIr DAgPPu6K1YJ/CGXx7c5ldEXfHWEqWbM73P5N9PhyNBvn3ZZZzgqiFXw86YGyER/TBOT+WWVm 52RhCImNyjFqNTdhm4eUgI6IKfVUPKKng0LQzpWJKjyk+YSRUet9CoC3J/S1D7JdZfSuDa+Z AXp6WeTUZVUYS8iQTkdoMd+7ZvtIdH29e75DJD5z379t4/dbDPBbAD75CiPusdYEZ6IaOC6T C6+E1PJGsYrywceMQli9nuyildwe64blExfOKZuProJNnO7HgDOWOvFMrgc6uSmY409y9C0o UPATy+WYkUcrK8aTqn2xzbWlCPj7Cbm0yxEiw+xbDMRn5DDwNxFg5iH4fWQwDTTivVmihzJX 1Hiw2ItiZLjmkl6NpvQ/sXJ8tW1THR3jkhnFqJGIQlLF+MM9Fx/oAUWndbI/PFXqYxfTTsvQ Q45zY7HY35aGX9rRM3vz5/b25T4JLkgdUqoqreMfs+lKcwAi3bObEYUXyftQ+Gx7RTH9kwT9 RVzfLDG/nmXUfl+MwzxSq+v88tXN53/vLTQsDTGfwZIM5OUmIzNSenqWDio7Nun+yNnqdFg9 kOgqvLSrwRI2FfFjFUMaUAgfGRX9xJE3jqEyaA99lSQ4hPeCE0TsaYq2jz34n4fKhycyA8s0 ZVzZXNFVD8oH1Ng/P24zUfQ3+emvGQ3pYV6Wxd/bm5fn6z/ut/4n42Y+5/k5kupMVoVyiOCj A1kWaapzx2S5kfXYZ2a6cQecZKGSNonaYh/ovB5EqNT26+Pu+0wNeXKH6XHHMk/7lFawcA1L riiGfNZAI8Swq5y21vpHHKFedPiH5nwWLh8tDT4c99IUarNx6hkoawwT7/ki6Q3zin8TZ98l phDXzrfrHwrsH2v46Or/UXZtzW3jSvqvqPZha07VyUZ3S6dqHigQlBDzZoKS5bywFEeZcY3H TtnKOZn99dsN8AKADWr2ITNWd+NKXBqN7g/OecUE5jIcLPf0Tb2OzcoqbbjuXEYl5XvdrCTq lKbhnsLi1/l4vaRnaS8azm5rj767zzPogLRz3K8ZnhNtZ+Um+KDK3wcPlCpCSicausBfpvLX VoE71ogGZT1VVMp3IbGuQODnwHVfy6WBxfB6BY6+8tebhvQ5zzJrqH/e7KlV9vMssqIjPsse ukAdFwufNdeKdJdnLdzzoGnOLrUVUgXcNjZYY0dEw6TqXzRv3jqZ57xQMTte7KgtbB8bUKx3 iRMk6i6Tecm1KcO0KaW8jf1Iz5f/vL79ga4dvYUFZtAtt4Io8TdM1cBQlFDdsvQj1OFQhL51 IaEvjpEJ5YG/VOC6ma0i7n3HEcVtAyw8JaBmWWFAsBOHgyy9NtDnVZ12KLQAcXtuuZVrTaIy bkaA/grdDUuu0VsQT46+gsnbY06lwpFIpSOv8tQcZ+p3Fe5Y7hSGZOVe7isMBYqgoPnYPpF7 IgI0c4s6OE/2R0+PQRHlPk3ti3PY1mHxzm4Fpwe+Tngo6Xt65EbZfojXFesBckK5gPbNUTwu PT2mq+aGPJjctrkmUY8/3BX1wmrhWbgSwxlsOHfT2pNV14LlDdmu/D7M/TNXSRTB/RUJ5MJX R2PuA70CQOnw57Ydy9Q+1Miw/cbUJJpttuGDxv7jy9Pjf9m5J+FCCsrJHsbN0p4Eh2U9k9Ba SF+OKiGN14DTvwo9vtrY+uXQwFkOjpwlMXTsOiQip6KMdeKrg2h5ZRQt+8PIqV/HV11WQ1j0 7lXtSjsT1WRJUfY+BtCqJQkmoNgpaolKgywfct5Lrds10IO4vOZ4IahiIAYEVQv9fMm3yyq+ v1aeEoMdmvYagU5F7Ge8lPFs4jif8jJH9GgpRfRgbeAqbb57UPcesDslroICMvqehzbS5QNM WCJDxrwbg2SeTaPwgAaWDuiwYVqi4/7jaUktorI0jbKFCM3rG/27EtsEaogn/v4lkFqgbO+b mkTW4hAHabUaTye0a2rIGaQmqhnHJpRlzAwXj6AMYsuSjNZYUC5jjgxa/ZguqDKC3EKGyneZ U5mWtYyz+zygzEKCc47tW1iI2B21SuP6D4VAJzD+njwoGkkQU9HchWD494vAXvfZPkJmWMLD FO9+4Oh3ME0PGxg3gTL6UrTmTw8ztr6/wQlJPd4QSJknZeLV2czs+0cYSgyPAw4MSGfEzXl6 0L5o9IDVne9RUWOR3jr6QJKb14X4VZBSbWVmy6gl35pPiiryvgKnMSwpOJ6dHemsxoBqC8wB r8YWzxCHG3foIamUkc6lhRnQXUQKrNfc+I42cGt9aaGW3UJQEVyGhF6UQ7v3CoSllQ+VDSy4 ubPPXlWE0R8ai98+ho0u5/eLcw2pqnNbwnnS2/ywyEDtyVLhxFy1QrsgKYKQbpIdjwY/Ucuj BasNM85pSNjeNy2AX6Pw/O+nR9MXzcr2wMhFSLGOuhoGScY9EowAt6osiBleiaMuQmLnqEoW TiNzhBP3VoZVvZIViYR8Mriku6Xis5ubsZMhkmpP0B65j26JPBEJ/L8NR4mMxG2Lxc3xOhYd c0lgR9XTnwKMZXa6XxP7VWwYdCV5Iju/UKsemkMf24x6YtKrbfEK3B4CdAYaLCc+DnyqUsJ/ J27dZRa50EztmN/LzegJcSW/nR7Nu0lMt8LdHQT6fdQnyhCJU2d6EZJ1G3v0hG2CPlV1maZa TdoPjRl9LashwzwbFr3dBREsgYVP2YuqW0ZZT+9FwWPt12hcDW1RbZj0+7xhvJzPX99Hl9fR l/Po/IJm/a9o0h/VCsek+xQNBY04aBTbKfxwBVs47uqQmDiH6mfdDwoUr3O5KaJbYa7u+jdI hVYDarJI8z2lVtTsbW7eveFavs7d390VnbXor/241iwQNgw2/B4Uxgx7q6tA1zoarpTxfFf5 3vRII9KxWgbotGI3TkQGoTlQmbVoaHheoXRFxHusLc81aYtoTzx29RpoHeo/pl76oC6gOkZb KJrfswONMKe8tBBM91O3efe2vc63+OmxJo+y1rramUo1iuyOxzlZGFStTHI7rKGhwXa/T0kQ JAXIF1seeHmhS2odvRU6/6+uD/nz6+mr6VAd3StnflPz5kfQTzsX7g4DvJXV7pi6TVanUgLQ 1XGMrmjUqhAo0INDezdmnKJU+CzNc6hGx6k1rRAHz6G3XfQKz5qnBTCepM4GTiZJdqBsuy3G KqKb7svM8xoNsg/7GCFDNyIWpTA9mAq+tW4M9O9KmA8q1LQkMVeRRtB8zQJ9pRVoaYhvIkTm J0VWpGKDHNdt5V+tLmrqUf7t9OP5ogJmnn778frjffSnvpyEsXMavT/97/lfxvaHBSK0erJ5 gC7rFtqWgXcceJ7cctNDq2VLBMlUab2XQq1cl9V1WdATPbdInYi5E6j7pQZ8DnaBNnjwq5r1 1oSWApc4jFanw4Hgf6njBIuwCR0EdXe/k0rSS620sQTLELEBVMgEun94klguIibEVYkxIRQ1 KG5asuOC9f309m6scnv4MUpe0UFEo2yXb6eXdx3tMopPf1luI5j1Jr6FOeaU51z5Ribgftr7 VRWGc4Ow+UUU2smltOCRZWKzVR9kuVOf1pcG0ePU8bPpiCJIPhZZ8jF6Pr3/Pnr8/em7ETZm dnkk7Cw/8ZAzZx1AOqwF7mNVdXplDsjyxnXVYaZZHephjQbkbGB9f8BrP98zYI1g7BF0xLY8 S3hphkAgB5eYTZDeVuq5kWoyyJ0OcueD3JXbRrdkDwhoX5KEPmxaKSZUXwoP+mXD9gCTNuyV p8DMNGS20hijDBssMRASUHTCPh32+qBPrYP4zTUiSBxC5hCCjeTd60vJ6ft3I9hfqdVqqJ8e EezZGenaGbm5I5duNyLwVeIdYDUX1iFnBrZ0FdAQlMIOpndkthydBz1lyA2rtsejXYCOp0R0 nSgOzBd9VHck4c3yqHvJKlKwHZK9X53DEW6Iz25X4/lgDpJtppWqklcE9NnL+dnT2Hg+H2+P va4iT7yaY0dxdjT11MlDYsVWqRUrR4xMdHBxO0cF2R8w/oNSZ1XOcVD2RmOMjyw1OaoBKM/P 3z6gonF6eoFjHQjV2y0Vo6vyTdhiQQWxqi6Ne0Xmux4J/rk0xF0rsxJB3/CwaPrz1FzQ3GSN gD+Zrszs1JY21Ru21p+e3v/4kL18YDiRekcGIyUMya0RfbFBYxVsAWWV/DqZ96ll5/WklpaU pxYQiEHEqYTxbveFKDkt0WH3Wv3bsH3uAqbM9Igb2ha6x/M9lBRnvUIaOmzSHoDqWqhnFIhz GDyj/9b/n45g/Da6Kbk5KzG7/XfqSVViI5Y57rWFO1ZWk58/a7o9fbW4OlrO1eUeqHuUXoaC esLI3EKasBieievIEHZJrMuexHQPS0Mdyiw7ASyk+1SUnrdggYv+f6UVAYf6IyxnPeJttvlk EeoASIuGU96KZwWadWzJotpXqftd3wZZNDys95+wMNDsdHCcfSvuI1R2PH1DhUOrCOjL3i4h nIwjyshuSMi9eqyRKgJr6TeANlLBcbW6WVOuAI0ErESGSmW5AylfIHWOTaDj4cDUafhvr5fX x9dna2kVMoAUdHXS3EVD6Tg2/GAddWI2uQlESfdxjD+oi7daxHyQiYXOngxNFiF96mvSo+1b SpyzIp9NjzR++mdnterlsqdBdxt2bDnCm1TlDqpj11YuX2HQZnXaXpFhsRmK70k3IZVKHiml s+FaO5xBrGvYvVVj8nqbn/oMeCnFwoP7dRpybWewwLttgfued6jhFxCoSV3xkrpJ1AZRrKPZ Ax1VxWANfk6na/t8eexDmKSHhBuYJXUSpDbvYPXHNyYhjaSYSjukBGQblUAUbAodVWRRmUMo g2JrLpMG0RmZJseTDdDrNPos8PT+aNg6mg2IpxL2tSoWchYfxlNrKAbhYro4VmFOIi2G+yR5 cB8RFpukCiQ9BfNdkJYejRnDdETG6GNYKaJEfRnakYXJ9Wwq52P6vQWeQjdIfIcGkdO8FyG7 vBIxDQsS5KFcr8bTgPR5FTKersdjQ9HTlKmJ+VL3cgmcxYJgbHYT62qxoaui12PjyLNL2HK2 MM7hoZwsVxY6GN6K5rs9bdTfy019W19FMljPVzRMkPStoxZej0fBYFMXR1ZTYMhAtkFRTSeL cW9Wco4KCAWPpDmwmEzp8VHzNTAuUZ+anwTH5epmYRjBNX09Y0fLn7Cmi7CsVutdziW919Ri nE/GY7pibHMzGfdGbo2B8vP0PhIv75e3H3+qp+1qyLUL2t2wB0bPcGYafYVp+/Qd/zQfSq7M kFRzDtdm5W7som+YAlTPPQ5u+hUjD2hoy608y18nUB5piYO+qTgkBIKWeMHzL2iToPK/nZ9P F2j/u40l1YmgrTZsoGL06ZKJiCAfspygdhntXt8vXiZDRCOiGK/86/f25Sx5gRaYIT6/sEwm /3AvlLB+bXbdaGI7evnBEKOqKGXvupuQcO75mjVDQStY78OHLX5e/nw+vZ9BHE6xr49qLCqj 78enr2f89z+XnxdlOPr9/Pz949PLt9fR68sIlTV1JDODCUNeHUFVcN+iR09V5dYhbSIoBxac Fr6K03tdow2hBq4MSvIhCGBtrY1LU6rAg0HVsfNh7QIEmefevNHteHwr6At4M5Mh/Q/4UBFS 6wCWQlL3NUKB0MC2WXrmNoJn472E7a2mRzB8QDQFAqGZch+//Pjt29NP+ypE9VUfKs7VzYmT a6scJ+FyTu8yRjud40mL7mbUk4TOa7IYgrNrZNAGv5zSakKrMH52XyLoiQScLX3nj1YmFpPF kX5NvpVJwpv5tXxKIY70wc3q3+FcykJEMR+WYXKxmA43HEVmf0OEBmqzRGhbfyOyy8vZcljk k3qUZXjmSTaZXvmWOXTv8NAsV5Mb+vLAEJlOhj+1EhkuKJWrm/lkuOvykE3HMPQQyeXvCab8 friLDve3wyucFCLxXch2MvBNr3SBjNl6zK981bJIQHUeFDmIYDVlxyvzpmSrJRuP+25H2eX3 85tvVdGnw9fL+V+jP1FJeP02AnHYHU/P768jxFB+eoOt8vv58en03GDOfHmF/L+f3k5/ni+O RbupzVz5GQz3M64Y11aDsGTT6c2QXWBXLhfLMQFBchcuF+bVSWcPgZ66mbYGezxw1yb6d/eE rBBRNE5xW7UiEKGCLSdto5DA0FMxufVerqLUHs0ONWmBux1GvaFZFa5rqp8u/QVU5j/+Obqc vp//OWLhB9DRDTjgdjja7pe7QlM9GOo1O5PkeafNs6D2P1lUBzgxkVcpbbmGR3ZLYzun6Qzv CQLHw0Bx4my7pf1mFRudIeFY/qAc37tuK5ujxrvzjdEYrb6pU4GIkWSNKdlw7JpJfAzCHR59 kVhs4H/e+hc5WXCc3WunPlP3U5ySkcF7iqfcLBS4Za+27LjdzLSYv74oNL8mtEmP078jc4RO 9TxZueFTfwbN6JrdV7AWHtU89Je0yz2hMYoLeax9C2oj4Hwdmx8w+uVYzdwFk8X06Hw6RZ1P e18gCNhwUwLBbgYriwLrKwJr30qr157DYGuTwz4Z+KphXsIpnD7L6fIxYFI+DPVnwRJJe7cp Pof6TWl+AicotSbDzu8LNWhl+haTvsxwV4Cidk1gOiggk6Ao8zvycgz5+0juWNgbJprsPRFb MvXZZFAQobuGpk8pMloL1xN5L2EF9pw+dD88FLQ9ruHSXVQbT/KDuw7UfFg2Teuv+plZR0nv 6oKMKkqHKi0HuWFynE3Wk4Gpug1L2vmh2TW8X71xrExZsZitxr3PL/KBISVSdPka5Af0o3Va wciDfnkJdWmkWZ9FXvE8nyz7qZAl0cWVlQOzWZaeo5nmPiSLGVvBEk+fQur+oLQLxbpTI7OK gv5uV7MmU58RWAsFVTQwDJB/ZZ+L86EMQjZbL34OLIbY/vUNbWHVGqTMPQ/mKvZ9eDNZU+AF uvgaL8xOkydXtqE8WY09Nw56SYjcbjO5/UgArVnseCxF5p+0ltZDXDJbDXPVx3BXFWHA+tQd jNL7PpknrFdDIAfx3ltmJkM9/YLSdqloufvYqyggO8wLvFhAkzb/ddJn2+BuQRlYPxq4So1P bbPqq+yuRkj8nGchWR9k5kl7ecaM9xv+83T5HeRfPsgoGr2cLk//PneBQ5YXsSp259uiGi65 QTUVRz7jB7OZSLrLCnHXaw30PJssp57FRHcCYjMN10mK2L5nMToRmtyeIKD1j263PP54v7z+ OYJDHt0leQgnCMX1lX4nfbGPunJHX9U2Sdj5uCtLMVlDJWZWSX1pnxVIlZnQ8aqKlw7w8HZI eLBTm54eYnq2OMU80GYdxdzHA1/34PFKqZkll7J/WZX//e7M1TDz1EAzE3pZ1cyi9Chamu03 h9b8fLW8ob+lEhgwlmq+3wra8j0m0I5PG/E6Pm0D0/yHHD2p/AI8CujpobgDhtOWP9Q9yD9O 6VNDJ0Ab+hR/wBba8QcqMGTWVQJwXICtz+e/hTOSl2xYQKSfAo++oAUGLLFKIItD74qhBeC8 4FvllIC2zw59CVwpfVZeJYBx4L5DpBYIPY/7qAXEbxqv+bTmrpn4QnWBwCUDxcPitvTolfnQ +qaYxKvvjsDAjUY+tM4p5r1INxnhfpqL7MPry/Nf7lrXW+D0nZb3+KlH6vAY0aNsoINwEBF7 nR4d7pM9itiL5Nb5RD7OXWg/jaZGTe/+i+i46hC3D7814ZHfTs/PX06Pf4w+jp7Pv50e/yKf YWo0MbLZyPTfNaq0/QvihASe0h5QrjdXyZJKKIduKg0wEfvd1suRmnuPN+hghWGPdYGkjMqX alBtqWx8vrqT+V5Sb9wgNstoMlvPR79ET2/ne/j3D+pGNBIFx0hs+tRfMzHsyGP4QdgSnH91 cKQHhKQOKjc8z4j+xrHiw0BR7mMkh9+pl3484Z0Kd8OLxFSV3OO4BO1CHCDazHL0cSCV9LwW hhtNlsospnu69LzNCPTqoDqryKSsPKkP3GM6qZ0jfRhBaZz4nuctXJSjGvpARIbPEfUsKAaQ lyX9rRRTqre+A99DrCiy80wgxdRt6lUtfHq/vD19+YFeQVI/8hYY7zv1QwI4vkdt+ZknoRuW r69iqhmz/Y95TCstM7bwaQI6tgYEPKaJTmBFv3d2yAqf5ad8yHcZiQButCEIg1zjy3cfWZPQ 36uInDWAyGDL7fnKy8lsQllKzERxwDDsRN1OdceHWLCMDHW1kpbcRfDnPhtj7blWymuNSILP JjqwxbLdWZNwNZlMXF/kbjF33/o1PiXk6lMZ9WdOE+ZbQ1LheboOH+Y7bjfXGgjLYVqau73J LBhNx6mQ2c8YlDHdAmDQhixk+Py644nvs9Ej2qzbvsgKyoRkyGyKLAidObqZ0xNtwxLUGjzA XemRbjXzDbxSbLPU48uAF3b08flBljxBJ1dfQuri2G4wPu1ptZd8y8JIU78FamlDAaM8AK1E B7FPyEFTmx/ti3FtkSzpEdKy6f5q2R732JZ9oEBBzJqJorDxu5lcrX9SeqqVSjKrNe5iQyTB l+RS6wJAh6S2mwvdkmPFmecB9pAGFzQKDe1FXCPMxoK6wTZTuXAnYTylkQflPg0975gb+fFk DycqawDy6dW6889sJ6ywF02p0lwiID3sMYl+xOhaTtH+kyjl3vZkV2trlBw+TVZX9qWdVYld Tt/wmAn2wT0X5EQQq6nlLGOy0OHZai5dELehuNRP7v6udvcmYoPYbqwfwE7s/RKIBw+8LWwk 1BkD9xcjU/xJZKvIIaOvKMV87HH+3tIr6KfkylCrjTjWwnVIfM+yyluP+5m8faCQAMyCoJQg zeww6vg4r3w34/Fx4Y80Aa68H2RHFOCeWR/BCnv43MrVajGBtLTF6lZ+Xq3mPqQzJ+fMnYrQ 9pv57MrEUSklT+ipkDwUlpEAf0/Gng8S8SBOrxSXBmVdWLfgaRKtN8jVbDW9MpXhT4zFtJ8Z mnqG0+G4vTI84c8iS7OEkz2S2nUXoMLx/99Kt5qtx8QyFxy9pzo+9TklA8sPpdc8guye/FoB fASJtpPdh6vxz9mVfjqI0AYIjLKC8ZAO9jMSZre24YntKkcNNo4ku+zKnl0/Z8DTrUi5pSTs 4HAAc4LM+IEj+FREoggZmes7cjPTuziY+RyQ7mKvWnkXeyYNFHbkaeVNR4LrmjXcBzFoypaq fMcwMMmHWF0kV4doEVptLpbj+ZU5WHA8sVkKSeABGVhNZmsPKjWyyoyeuMVqslxfq0SKvlHk vC0QU7cgWTJIQEeyvQDUlnh1JEtuPuJrMvCVswj+Weq59DlCROihAZ/xymiUIrYRUCVbT8cz CjDDSmX7fgi59qwmwJqsr3xomdhPHsmErSfrQRuIEmGet915LtjEVx8oaz3xXBgp5vza3iD/ j7Er6XIb19V/pZb3LvpdDdbgRS9kSbaV0tQSPVQ2PtVJ9e2cl07lVJLzuv/9A0gNJAXIWWQw PogjSIIkCDQp+n/S3fHoqJDLn1EfUWEcvPtdf6rNuaZtn6qccS2A4pXTB5Mp+h+umdWvON0p xFPdtLD5NPYBl/R2LQ/W6F9+K/LjSRgTsaLc+cr8orilLShFCXcKWpLuebX0zuYKAj9v3dGK DmegZwwEWwjqoaeW7KV4X5vH6opyuwScsE0M/r2tw7XorLOJQdAR8BjbtH2W0Z0MShtzISJd a+/YB0moMQ/eXenRd3zifHu2JRPypW0ZO0d6P4rPiZXnanlXoDcJQrAnpic8BB9h/8UcxSHc 5oekP9FtiXgnyth6R0zg9JyDOCrHMbOOIw5/WLUJ4GNPr1KIFe2Rnj4u1vQ9eswFdYs6O0X2 +bS3UssrhYmjue4eV8JwARosVEYy0Ur3sa5D2ukcgY7HLgQ07p4ZqOsLY3OEEZcZ33dtV/RV QBkD6YnOG00KzEF7Zdu0S8xXKQY26ToUqL950QH9zbZOFwz/+6dMV2V0SB4J57V5UDXMQV3y ZD5alZcpl09Vcn3AS8PPL9++PezeXp8//v785SPl/lI5TS68jeNUrOvgy51IFNSUoKH75DEv mfOGmSsRXPYa0/HSF/TSeq5wS0WfTQ7HTTc+PhW6t2QSlpeQhHfhuXh9xlwGnKtF3xRfvv74 zr66kp6ntSMc/Dl6qTZo+z3GHSwNR0wKwTAGluMeBahgj4+0Wz/FUiUYJ/dRubCdXIV+RtGh 3KUPHzWnPlc5knT0In26smifdjlsia6/uo63Wed5+jUKY7ta75onK8qEAednomj5WZmWaj3C OXdTHzzmT7sm6YwrppEGszW97mkMbRDE8c8wUXuemUU87ugi/CZcJ6KXR43Hc8M7PNkQb6QL Y/oaa+IsHx8ZdzwTC/ocvM8hBZaJIjwxijQJN4zTUJ0p3rh3mlmJ+J26VbHv0TOJwePf4YGZ NfID+kJ4ZmK8DswMbecyD9knnjq/CMYWYOLBQDR4nnknu2F/fIdJNJfkktB2AjPXqb4rJLAD a2mNdi44zEf0llPreh/Gzp1uFZV3E80pPQJlnfMq7pY7TVrYq97JcZfSS8rctwIDdzOnQdok uILD/Icx7ujbIMUiQ6cx8SkVA7aKmmT5tUFFPzZocdxWcehcb01thdLU8BFmU06yyN0sFghF tX3cDBiqq9gFsuArFdtVibVtMNcB/+rcdichrCsStZCmfftIhusc1sprFIVbHw8DjNDJExxv vWBqmSW4jeZP7T5PXT+K/Vt76VTp+FJUMOcFDtFEbcLGuZMMh9ZjPKYMMLply3M6yoHGk+Vp k5lhAxR6KTCgZH3biZqL2qn6skz6+0yFdNwvcnqPN63SoOTUAydb7MereLddlleSh9VIurVZ yaltLnlXccFnFc9TLncVKxxp5Tr06qDwLhenn5AB0fZh4LnxzLqsnLiUeKx7Oxc70hxDcZ1I /bNN94ET+iCO1YkaJvvYMosy8Us1yNEiXUBkeZaJSsnqGpF0T+jUDQWMzSBLtk7gcVMQoqG/ nIFsYYXl3MWJak0Is2vpMw8KFEch4yXRoWzHLk987ohnSCPLYeyiA2T43455ADDUrTt7OPuq aYR0WDfzhcHIRzSSZIhWEuqqYjOafOoka3qWtL6it3ES3DvURZOEvGxwb2blsXfdBcWzKb6z oGxsShCMOv/x+e2jDJ9S/Kd5sL0iDK5eh5+EW1qLQ/68FbGz8Wwi/G36q1XkVMReGrmOTYcd mqXhD/S0aHvq+lvBZbED2E6sSy42abCzU8x2Hr2Hri3ZTKAdbkQuSbsjk2tKaKikZaLnKh6l /pMVO/W2w91DUuW2zZU6yPjz+e35A+xOlx4vhTBmhDNVO4x9voW5U5gH68r4XJLZGiTlrVZu OjLLJ8J8BNC8byrylP126I1TZRnI5dZbK8YAwh4WtvvGwX9+frTc2w5e2N/QX83CXnYor4xs n+o2lAMQe6YWoZEhr7ZDk6c8G0NbMFIyfqDcF5Np7fHsj6qizpQqW2uykDgYaCC/Jh2N6N5Y dXrd3U4yYsqGQrtTjXF611jyq8jrLF8M2RGvkhoDS9JRXnTGpG9zaN4z5kWXVUYCMj1tm30k 8lTweGeG0DU+pQxZjG+FF8dXOt2y7ZnGrQq+WZor8zJRMWnPWBYCXr9++QUTAYqUdGnKTjyN GJLCBi0LUhscOMxVTSNqYmin+q4nfQQosE/T+touklRkVrb71A2LPrpeiewmDNdbPmOQ1l3e ZQmR+jDzvxPJYRAxOw+LYyznWjcNnyD7GhuafNg8Jse1AE35CkvBjZR/E2Zb0LCPnmlr/DgD yOH5q7sodtdyKy6A+74E0WeacgapVrQFrYZ5C6OmFYcibUrrKT3H9DPdgyendEwrWBdv8vG9 dq0hf+tKeknIatsap6nHczoc/c+04dEKMXaKtipAh6qzkg7TdwGVpc7Mu9aJKEOmg0pAu3Sf 2axbpxlQDwQW5EPemJbYM8Q9K9Q57Mcs4+p+Vk7b5+VaMJHCO38b0odbGGEcOpvxZdPUT+ZF 8uBFU3qJ+MCrROgYTB7ymvsA9BWA0aw39IPAGd7oSmvaeZur2cXjLSdZ6uqSkKH3hrg+ZmDN No0jP/zbDrfZpxYF9NyFEOKdlqRj1DIvCLXOa0lzKBDLQ3rM8XUfytmckkjhT8vJZEv3jvyI efM6YDiTq3MsanxqPAVQ6lzX2HS0Pp0bYYO1abSDpEVOBjrmwTKkHWVwjMgZ2gC9H1yflgXs he+/b70Nj9j7Rxi7KfNkE7rS9jQO60L5tGPMBsYu6k4Yb7Q9LcYKLqXLCzg9UiM+XpWt3ID+ eyj0ZkaqPMLFEDTGCPBSGV2LeSAgYdDkmCsrQCt5V6bc+P/4/P3T188vf6MXSyitjEJEFRmW sp3aTUHaZZnXh9wuEyS7uJBZwCrvxXelSDe+Q9++jDxtmmyDDX1NYfL8vVIEaGazjZFYlde0 LTO7ZEM0UgzVyaTYV7vT5DwSGzD5/N/Xt0/f//zrm9V85aHZFcLOAcltSj1XmdFET386VkCX 5Jar0TZ9gPIA/U/0Njo/OKeeYarkC5dzLzHhIX0DNeGM+waJV1kU8H06PKBj8SJmPCJJkHMp oMCKHxv4jp5eDuVsJ22OmSNgxKWRMggycwSHMoHua7d8swIeMk4/BngbMkeAAHMqw4DBPLmY huQLeUYG+rRarvFy3vrn2/eXvx5+x5CmQ7y/f6EX28//PLz89fvLx48vHx/+M3D9Ahsm9H/7 b1PmUxgb40pqZJrlfXGolS+6NXd6Ni9jl45s+cFz+D7Pq/xMqdqIUQWUE510FwsL1zsZrIv5 +jGviImjWdyC6gKYJqSHc4kxu1bEukfy7YWSmcp6uotUtalZ9G7+N6htX2BfCzz/URPG88fn r9/5iSIrGrQWOpE7Q8lQ1p45qy7CaGnEW4lnnXZpu2bXiP3p/ftb0xfcjCiSpr/l58pMVxT1 kx3NXo2HFj14WSdnuuPmqQU0OTeFGHursE42lC6ZcA+cPPQoTJ3Iya7Cl+1m8SVpiP+xHCoY lYuPVjOx4Fpxh4XTY3rGXrRvmVc0R7J2bWvo+/BzxWywFi1yLLcXQPvw+ZMKYWLrIZgkbC3w WczjqEQb+Q1gmcHyQJdwZJnlk0rAVmOmov0X3ZM8f399Wy6+ooWCv374XxvIvzz//vnlYbCe RUOnOhfo7QYNauVeoBdJhTFSH76/PmDgDBBNGJEfZWBlGKYy1W//ozUDtJ0bxPFNKrJ4+GFU o6hT0VE6P9YKyjAL30BAb44C403BwKxARwlcb+TAGKrGVkhF+TTiuI2pFN1v9osxJXeMUiiT Gh0n67Q52KROlaYuzqy5qkCOfz1//QorkcxiMX7ldxgUYQyFPh/1t9NdBSmeCq+yltrJqUvp S9LuFkniATH3xV7gP45+J6NXl3Cro+DOXqEk+Vhe6PsAiRaMdiTB8qm+yohLPEu1i8M+opYb BYPcnVqroNCVqXkxLMnnaxzQypCEmUWqhRH0y9C5eIO20sGus8EV6raJ80XmiBUIulRkRJ0F Prfqs49c40xa9Yasvt1HhYijRd6WhmpBvuteF58QnqQMuHfDVJZzUtNku7z8/RXmFWvhHuLx LuwCTbi2e1ENM1tGJdWzG2OgmlcC6soN92H+soIDHb/gyqRu+5efirZIvdh0caVmgn22bAaj ll3xvqkTq4jqUn+RDaoyvLQqdY8retn6241v5VO2ceRTLReFnt3M0lTNog2GZzZ1sMigyHFI cm9dh2hUCazUeDDrYEVSWjUsBbmKt+YjrikEzz2JXdkVKoshwT2zUC1b3opmZfJr12ZGDEdH TBcLplxxMQHklGlJlvqcb0LV102WnIvSPGBXFtH9bl2gZ7127ueLq///pmZimZz7y/99Gg4M qudvdlAR4K1g+cc4W4noGmrKn1my3ttsHSMjDTHjBuqYe6E3eDMPqXENJe8/PxuRweArpTKj D43KKI2i9+om2yZjGZ2AA2IWwAcaGfplYzhcn/s0ZADPt1pqgmInoHtg/th3mVR9rhy+f0u7 lMty41Prg84RxQ6dchQzZYlzZ8NWMXcjSjlHg7dbcjY3EZIIe2nySF2h/alty6flV4q+sgdp s0Sx0oN0UMuSLL3tEgFCStmXjkaYMh2tLZSxFwqNricN5JFZO5TuxUpRhuwnY1iSCc98D9iC sOQ7IfWGd0wGOy401gIdiam53mDQ+tyge0t6mR9AKT77SwStd5bUfqdtBsYaKeJ8xSOdI0jy Skl3v3kY2IOq5QAxN9021zH7jajvQnkYCwsI94xQ+/geC4iVGzlcnDuTiQknpjN5pBu2scij 9eWy5Yu+xRyoekrBdzhHTYoHVR+PGusjg7m3nD4DlScMXCZXdxNEa2kqM5Vm4A2DcJnBaFhN 5QDdvnGD9SEmeciH7TqHF0TLrBGI/IDJGRQ9usunoVDt/M1a7aVC52zJ0X1IToccW9fbMtco Yyqd2G4CaiEaff3oP0EdMQ5AFXE4uDqa73yVfY3yck8YkA1hirNo4xpCZyD085uZpXIdj5r+ TA5NDzCBkM4YIerplMGhL80asPU2Dp2qsJ32khxkqgCEHgNEfHYR1a0TR5/CrsSlPn6M0SPd atM/us5dnn1SucFxZa2bY1W3Zd5XtC3SWFp8zE40gbR0I+ji2hJNmfVqI7YoAsbCXpWkLC9L GJIV+bGyGede7o1sRfAIWx7q6ntqscgFpXBP5SFPKLw9E2poYgr8KKCtAxXH+BYkMb20TAn0 6ZFxsj+yHMrAjRmDtYnDc/pq2foHUEUSkkwI93AvU1PFPBbH0PXXBlOBx2a2s7K5IwI6iM+A 4xE8SveyUPbhz0h/lzJL88gAg6BzPdLjyByEu86TQ77MVM3ixCQmgS0xKvCK3Q0I+UfAcwOq ChLyaCM1jYMpx8YLyXGlICbazSiTsHiHTrg2WUkWd0vlIKFwfaFAnm10jyVcnwEkh8+VIQw3 a20nOQKiqySwjUjAdyOqd6u09R2P6F2RhgG5llZ5vffcXZWqMbHaEGUVUm8qZjjyyY6uVlcb gIk6AjWmqDEl07CfIqm0NFcxpTrN8JYW12q7OgKqLVmGbeDp70MMYEMNQwmQBVd2amvzBHJs PHIaqkWqDkoKOxaOzZgKGDNkRyIUrfYlcMDOkZiyEdg6pATWbVpFV2pnMldrHwdbQx9pK9rg dPrkUnErRH8U7lodAKdGEJD9v5n00vVZjDAFsdWEKncjnxgGOazKG4eQLAA81yG7CaDw4jlr ExZ6udpEFanijdiquCumnU9NT70QfRQwaVfh6mwOyofrxVnsEoM/AU3MoVcogKLYu7MlgGaJ V6fxok48Z0ss7UC3zeUnxPeYN/Pz1MuFmRsZjlXKHARMLFULG4/7LGvTs2SIqVoAslkVF2Sg xgR6zkrb06AQLdIFOIxDMq7byCFczyUl5Sxiz19v2EvsR5FPxifWOGKX2AMgsHUzKmMJeWT8 Np2DHHkSWRNvYCijOLCCLRtgSEdcnnlCLzruySoBkpPQeDuzagc2jRM0Rv2JnZl4dFxy1yqX mcTwuTSQMISAKHrm6efIlFd5d8hrfBSHpWj2e9xiJU+3qv/VsZmto4iR3Oyp7C9dIV0UYKSf dq0IQ5Tw26HB8N15i2/McypFnXGfFJ16PUU2HPUJvj5EfzmMrzXqk+GAvCybNOGi2o3f8aUi GFfriQy7pD7Iv+7m+ZPV+tnqwBQzfkPj0gBmjSPLz/su/22VZxa/U5mIgtGFxyvb1aRkJMX1 AuFrcW+VRT4wUe2TlglzoKKY+ia9ZaKnkpuHPLD6G+eKdkVvfxkvN/XUkOVnipUeV7n0a5M1 vksi0mPWkFMeuutr+r7YWS/jeuqcZJdWic6ukc1f0v+bvOKluSfcODudgJ50HCxx9TaE/HSA 0H3mLa1oyTIYOY9Gism+y5qN+P/48eUDGoyNjr8Wp6vVPltEVJI0PsYgwkkq4u0moNZyCfd+ pJ9PjjTPuBxBBzTKFoU87ZAfJcKLI4csYiK2Lkwt9AM/xYDeWjCEm+FGcIaOZZqlJgANGmwd U7uT9GwbRG51oUNxyiSvrecsro/MRu3QTpXHqyTjTM9kW+EsQVr7TmjgmdUZzhut1y4TQukm IxgSSYX+gubqRxWSZlj9ymqlrn/VQx1oRPPhCwLHIgTlUlZJu1IQaCfcF6mhZyEVvm+ZEIaY mpqefjsl3eNkw00yo9sAzj4OMfZlwTTjrvhT0llu6VFcfpYRp0va2nauHL6E5uPdWXyctTyy vUvq9zAdNRlpmIkck127RlO+lhyKGBDE0LEFYbi8W1AtU6iZGocU1VTBJ3q8oTZBAxxvnWW+ eHNPELcRkT6QKTMJiYrQ2A5L2ni6ZpIpyx2kox8ek7K8lJ2c5CT6VDZRbStRmeyKEZLEReAw LuYknAYiiFfwx9jhGqWrAxG6sV2iPk9XQl4gQ7GJwusdniogd60Se3yKQcqsiWnwMj5Qkt01 cJZLTbLz3YHMJT7Y5yk/GKL69OHt9eXzy4fvb69fPn349qBczRWjI0vN1+OsxCALY3ogs1hY 0SJVYOB63w9AQ+tT605JY5sMEI2P8RqetAEdUi5Np0tS+pKySpjXpW0fug5zQ66un5k4pApk wtTKskiGmDLVnWHzkHaiey59lj8yxJuIUz2wCUYjTbvVEQjIgyst59gUtqUR5kTdug5J9Wgq tZwDBpMwc0IiLuXG8VkZHn10mQ4pMNVL6XqRT2pfZeUHK5PE7BKCa6TJgNX4bmEXrmtYtsWu RqTaJO03ER1mXtatClzHamGkuQtJkmar1B3BBMZ2MvHGXhGnQ5cFjSo6IoGzMiEoU9rFzN4c K1BVI5czhu3yA+5mmY11tzYLoyNraT1H+UI6vD1//RPnOsIhSnKgHP+eDxiIXXt2MhDkE/pD e+p/dbXX8wj2lwI2h3nHRO7ImOeCQL9l7S019e5xH/zwr+THx0+vD+lr+/b64eXbt9e3f8OP L398+u+Pt2fcOo0vdjCkfPnp97fnt38e3l5/fP/0RVqfSmz/9vzXy8PvP/744+Vt8Oir7bH2 O4zljJe2c22BVjei2D/pJL0790VXyfeN0O7U6SMmCn/2RVl2eSqMlBFIm/YJPk8WQFElh3xX FuYnsMDQaSFApoUAndYeZKg41Le8BpExFi0Ad404DgjZXchSHAiOGYf8RJnPyVu1aNreIGb5 Pu+6HNTgxqCjGeb45nCmogPG4Ym3mYwoSllVUdSTC2ej3/8cH2ETJynY9jK8IFfntqKP8/HD J5hJ2dhMwJB09HYCob4ooZHoNz1SGHrBgjDoyAcyAJ3Oufn6EdmBxCVVb1xKNQPkeDDFavIW bKXeu5nLhkTCHOQTbA7tijOLFRFjUYmilsMuJqIvklBYFsbxRqawnWeODbFrxJPLXFEplIN6 xtc8IMk54aKm7fDake1pvuXqvIFBzuxsAX986uj5GDA/27ONc26arGlofQVhEYeMK2wci12R 5bxUw2afH2dsomnSVVxMGIClwx5ahnEfcdpfDTk+ZaXxu9hVt8NVbALHscdN0YkTcx6KMjYG imMZdtBU/MDoC9izcwXvYVA5kT3UqsilLnunCfNWptmoCsyVRGJaJn0/hIvRU0WMetS/SNlK YIEvXoHOUHupKLJ9LDYj815/Pk+dQGlpuFrUFlSwjQs6sm5VOMN9ckxMF7MzphQ/+kR3LkHW xjHjON/iYlzwz1z/T9m1NTeO6+i/4pqnmaqdHVuybHm3zoNEyRbbukWUbKdfXJnEk3F1Euck 6drp/fVLkJJMUqDS+9JpAxBvIikABD+M3hFQutS6DT6rU3plP5HiFsLCnWIuYkNmhQ0fN7E8 74AO7MCWV1rWOZ6R9lguHCtV7jxnukxLrOAw4ubt0jJVKnIgOaaspMVG877Ab4jeA3AZvqYt T7QS4vOrLK8rh6RN7Th69EzR5EM8g4SrjoP78glVAclodL1mUVdxvtHT/HB+FezRN90kqGIK JV5XqfSJvJ7uATIRHhicQIB8MG9zvas0QhoBs240hzOqBnOCCx6sWqMcINHKILKGGZQGEu4Y AxOnW5qbtLooj+u12SqutIZxzhnoWIEE2C4V/lWXbMp/YbeJBLeoWEArs1ZSNBv0brlgCptN bz65LSsteQsQ+SveFHklz3p7s6mjyc4q4nHGkAGI8SxskhUbqcwkFVccBO8rDtwvJ1cW0sqY w5u1eucPKEmhp0+Sv5GGb+qF7+IGMbB5Q+xo/0LgFv80A68hIrWnpSf7IOWTyejIbSVOm3Uq NfO2C6IFBh54XwIcbx149Z7mSWDUsI1zxi2b2qw5JcYlNkGMI5OQF7vCoPGeD5d1R4UfpZ5I uOOsMZwX4FZNFqZxGUSO8RqBuVnNp/ZH90kcp9i0FcrtINeFJnC75krJYBviFqVYItZXIHMe F2tcTRUSBSBfWic6wGJTdAvMLYdCkldR7PwceFxf05YEBZ9uDgfyaaGuKIWIDBm30PiAWdRv KVAHACdhaUUJUKIkGhQryVwDHX8OM9xV9kjRkNHKVjjfvkDRpsTYHMsKMpXptAp08uGCrApC LPh7wOYbOA5BLZldeliVyD8IVwr8GmzG4lZLm0VOr62OAxSyVPL4auCfaCOVMRW5c8rU4qcQ fbSh/8DeBYlcAmaDL4XSs6CqvxS3ZhXq7kTNjYTvkSw2d5w64btVZtIAdFHeHVf7pdLxLULs 1aDpHEvmmkOyDww0VJVHKeT80NtxoHyB6KSvcVVAp9WyO5q9SZCdj28ixpYsQ+6OSROidML7 WmTtr4HylCLwSgAtgKqKIgclRZYTpvi1whKo9wpNiJUrYBRVNRSeLRJCbb494A8MTpH8s8i0 gD+gicwJScCOCdGr0MWMwBzxZJ7zjY3EkNeqNUKHo5Wd3+9PT093L6fL93cxdpdXcBRrDj8o rQvTA1ciZfYsn9FtHsB5f0ZzruVZxYoaj7Rrecd9wreX1KjIkAlTsXeyup09WiGwO4JrZQOX PTnB9PQrooMx3w+Gdy9eTxiszWp6hiVwScxGwKokV6xK5MhUlLJYHqZTeM+Wdh5gTiX6B6Gn R+GGoEkJewkN8v9KHUAyASu+VmVSq6IQA36sa7Mhgl/XMOEYNxBs/YivrRk+now7V8S7PzTO bJqU2FjAde7Z4mCOoiaz5pOHFzAqU7RtsQo0nwrMXGfkZbLUn82wHvQM3hd7wlwphYYai1S+ frBYeJAca1jB/rOWJ/tgnE9EaBn+YewEBN6DmQCqXxJtokjydPeOgBKK3YsYU3IArS76EhlS ddYb6jn/lP3XRAxWXVTgS344vZ5eHt4nl5cJI4xO/vz+MQnTrcB4Z9Hk+e5HdwZ29/R+mfx5 mrycTg+nh/+eAGadWlJyenqd/HV5mzxf3k6T88tfF731rZyx50ui3CkGr71ltply7S++KySo g3WAaZeq1JorMVq8oMqkLHLUk12Vx/8f1DiLRVGl3iQxeZ5n69uXJitZUtj24U4sSIMmCmyF FHlsN2FVwW1QjczRTqr1IRz5cJLPRjPO+cCEC8czBq0JeoBkmNz0+e7x/PI4hI0XH5uI+Oag C+NKM2Y4lZaDUAVJ3SHrVxOAWF6zKHTOZWKxRhVm0otv+Z64ekuBcmzSkiLktlqJgvV098GX x/Nk8/S9ixGaMEwjE48OPk2ywEA9/OzJxbo9BhjwnCFFa9Xm7uHx9PFH9P3u6Xf+LT7x1ftw mryd/v39/HaS2o8U6ZQ8gKvku8BJ4Fs+DFQiKN8Wg9gLDPQCUwByFm0hMySLwUhaG30GfAlI Z4ZT5WUQjDEY054zmB8SBGUxRYlDNaBnQMx4JfNT9JNfDBtyaCwTxLMlGh0tFpnIt2FsK33m Dj2DhsK7emf15d3mfLGdFykyAa1IYMThq+xq684sYGmKmHSvjtdEEnc+s1QjFN4kDqybY5uO hG4oeJPjNB7aD101JdduDpZ6uv0uw6LlFLk4K1UYeYWzriPKB7awVLDjagvugFSEaBncfCqD uYLVFkYb+xh0TC1XvNoJf+a4jqULnOm5+PGSOvPEEevnPcUSQ6kCTYO2sMvDWSKfQk3isxZs UxTLWJUoQgr5kQYKfcvPSH1s+HCNlyLOdtGuZAVbLnUAEpM78zq84k8q4cL+3FRaWt6hsc6H PNhlAxu8zayUOq5+2VhhFjVd+B4e2aCI3ZAAPcZRRZogBQMfbQMrSekfPJwXrG17E7D4uEWR 1dbq98G4qoIurYyttNssLDBUZUWmHlht/b4SxtWXwJJCWRE88O0W9UCpm+FeD7VSX0hpXl9D ZLKcci1xpATyWREH8DgdM3wy7SlLwiLHP0iMNbOBVt1OgdpB6U0ZLf31dOnij3W6W/+N1Z02 qPkUZ3RhVMZJOvKTMLOiph6ZuTsWD7TGihY4jgwwAQ2vNrH/BGPEoOy+SeR2SVAUDinUYWHq Bn9kO+8ArvhWwWHeoN9wkBpxTSa15F8X/aeM/9ltsLMn0SdDMeKaXE5ikY23LgxLlRb7oOJD Z5DBTDadLCyupfm8poe6GZgAXP+C84K17btyyx85GGV+FYNxMGYEeHH4X8ebHQx/V8Iogf+4 3tTFOfPFdK5zREIsPpwA0TboFUmCgsncwv00Lv/+8X6+v3uapHc/tMwMynNlopwZ5EUpiAcS 0505KhI21pKqLUh2BUhpjvSOKBXZ8LbzcVrnAyi+riVji2hCwLUO/PH6toxtZhakygZPpWFU civrGKon+80+1H6Ao0Ybhb107uDt40w6m/vTBmlFlmkKdLmvWHzDN4wMj5Rr+Vblmj93DOHe 8rW5Pal1DP/L7zgMYIb1jIUg3E4h6aTOyB8s+gMkf8aZCo/bIVGByyJjmBTePmSay0w0hq4z 8BDZy+MmSJEY/jhNhIRLy50R4ALYBIsyFAtO8JtQQywHWsMSYlKihC64RTY1O0BubPNCdK9g CQ0D+306LpPV2GFfFmeAeKC+6Jaif7VkKgP2cb7/hhmH/UNNLlQa/jVoMnRmsbIqBnOL9ZRB ZT8zXbrKxVvOLK+wE/oinDX50fUtl3w6wcpDQWbgMAbOJq7NFycVIlQQox2783qVE1bwBcjh m5nsYW/NN+JIUXSLSwz3UvGYcmfxGm0AjCB3p463wr5zks/cxdwLBs+FJFu4lrjfq4BFfRYC 4uYNpkx03MXcGVQL5JWDj38vMEUBYQUbbjM6rjGmXGGc+4fh2OyrAIcnEFyJ9o+9aMHW0V9l 2+AC2xwhqkGALdHzDofBqWDPU1FrrkSzX0BcIGNY+vgNw47rq/6ga1/VMEaVinUVWAvXfKC9 KARwKfoRsuDKCFdbu2RYrDHHIsefWp9Ia9dbmWPSwkEa1JoEcHnPpKbEW80OZi+we7odw3LD qp/w3j9GYUWtOeJlOcPrtYK+rSOHz/5BvZS5s3XqzlYj66KVMQKsjV1DnGv8+XR++fbr7Deh qFWbUPD5M98BrB+LgZz8eg1k+M3Yd0JQDTOjH8NboLLb6aGKMX+p4AL4yuCRnJKlH+Jdqt/O j4/DnbA9GB5Ov+7EWOResrWiE+ImIBxnmBOm5XLrYmthZXVkrTmJuS4UxpbQG020jx36rKGk bKz1BaSmO1pjcVuaHLK++562sQHXhAzn1w9wmb9PPuT4X6dOfvr46/wEmdjuxcW0ya/wmj7u 3h5PH+a86V8Gt6sYZK2y1E8C/rKGX6eOXQZ8hnw+mvwDYCQUtRUHEca42w08swC8QlNqufMi ssRyZQtNgRNHAeSzLSCAgpFKjYkRrEHUCFANGW6BB+TWzDolWJ1KptMIXBLL9CsOsiFZZMmq 3LGXliyOgh8vbTecWrZn+YQLNvUdf+nhX95OYLW03NGWAq7tmlnLdkbZsTsbFTi4uFojn/bm o4XzzlkuQwh+5TuL0ee98a55s1E2ZD9CZl9V89mjJk8DAmA0LvyZP+QYKiuQEsJNiVuc2N2D +eXt4376iyrAmXWh2jIK0f6UMZmBlO9kVhSxBXHC5NzBFCj7PwjSvF73K6QfnJ7DbQzMEOv5 Mips+BzEETQ0FihbluejaqeZthBVBi0dKOyd8BBnRONgjCAMva+xHvp35R38KaYY9wIdspFB j1h7uQqlHwnfnZvqFucv5zb6cR/VKG+xRNqQ3Ga+t0D7BXjCK8ukV2QAI2Wk88glKo1lAVNW ZASiy0gNFfOIu3SwGihL+Y6Dbyq6jINfrzWE8CPLTujARXBIrE5CINM6mDtWk5jiL0TwXNSb q4moKEwaw0cY2XxWqyDJOh2fTOGN62yH5CGChcYxMol1PMat1RV6DayTWGfuzEWfrfjKQzEl FQFPzTyjPqii+HT0OONWO7Ikq53vC7etvK9UUvsOI5JU5xB4TVV5SOH56c4UMVceoaL0IQy9 8nadGZoz5doB3rEVQcqWnL5sPdZktLUkKxi60zj+Amsl53joNW9VwEPmKGxevgdZIGiK74cL H91hBGc1uiS5yNLxx5ctyMx/Qsb/mXIws/oq4Myn2M4+SBykckZ3BFZvZ8s68LEV7tcqVJZK d5G1AXRvhdBZtnDmaOvCmznuR+gnX+mRKbI+YU4im9Iwb6CyAgY3Uw2Rr7f5jQAeFlP88vI7 N+HGJ/i65v+b4ttWi083NvL5DlkeJuxXPxJcg5x1jQMnADu9vF/exhuoRPWDda22MwKwQDxA nbPCZq1EpbePsNucAMiHDp+5F3T8AKQtaTgGQXNoTwKvPU2i+VzmhOsL2DI+uljUDM02kFaG 0va2TldEPVtsNXSzII9T42efpXlqkKtCdM7TydLVe8y4kamFl0puCKHZHe+XXluGlEfGPaIG vT0Ml/dblE5NMd6FxWHTxGgwPjyjOgbkb/BeaS6Hlmw7YWjZIWDlokfzrQDNy6YeVpZhLeDE Dqqmu/7QnxAAqtn75a+PSfLj9fT2+27y+P30/oEB/iS3ZVztkBaxOthQ9Y4TKeCKqtppSbFG APZs6T3hk/PI6Nf4uA3/5Uzn/ogYVzRVyakhmlFGlPeoMyH77oCoH9i2xEGC+5bOGN/K8xLp KWUdyit+itIVDPcVfkYsIxQtUJcTkZTDWduNW73yLdlfW4lcFLHwLCe711oiNFJC40Oe8cGA SRajmyxAGrjLttwks6RjkyK+43lHhqmdrcBW/pU2ev80INAA3GdELDc7K385cxqLGsA8wxqR BivfOd4/2gDnfquXoFL396en09vl+fShUl/uni6PEEn7cH48f0C298sLf+xD+0gE0XIx1RQx STnSdUAgxqniW0OMoD/L0rui/zz//nB+O0mYYLyeeumqSAQtocUtkyv/7vXunhf3cn/6iWZr mLHit6P9Xs4XXcGRaBr/IwtkP14+/j69n/uhyk8f/3N5+yY69eN/T2//MaHPr6cH0RCC1u6t 3F7RD+5FzrnTy+nt8cdEvAR4SZRo+GVRvPS9Ydri6vR+eQLnv63D6qRi2dKS04EzDxs6KJ29 nu6+fX+FEt8h7vr99XS6/1vHjBS7qURmQ97yw9vlrAVgByzJYiyMjOpWB/8pfElxBp51C9A4 lyFBtYuLpv5EKmny7ScigKZtE+i6KfBRUYkNO67LTQCfclyNySnvDisDC5y8OCw8knR7PKQ5 oGts918rzNecySjw68E1BMEQmwdccHNLcItgRtSC+iW4ViRpYDY66rmicS1xi3lTxbdaaExL OMbMGRJhLCsdsqFj4agfHbe7lz14LEVB3a/cotRzKXecQVbcjmGDJen4XUzZSK1hRaNNHOkR Ux3TRM7t6LbX0jd4jy2xjgsBOVipjQFjPhSwvPCs3h6NIJj24sb7t9OHcqGmf+JA02NwoID3 t8Zvy0GSDcjwh/Tj4C/6u4aKiqic5sTVsQuatZz3xFUS4TApAMtyTIOyLvC9ICJRaAGgbbMu hrQY5Re+b3F5CoEqrPHPfsvFP/zr5gutWTPW8k5E5BvBjALwfRTHar2lqZYqZVPy+VmQbVxD Aiu07KSU1xtszNHXkTE61m5uJQUMUBHGhPgOWgbpmISALhjhwyWbMojGROCcfAsyVqjzPudj FJR4ZyUQOje00gLfPMQE/GT6lvS4t4AgAFJBHVSj3WgDx8K6fdmjUomtJ6IZJCvHgOT5v9Pp 1DnurKD3Uk4A7uxseHpSZmdbGG1VowNeZiPAsgCMV9XY4c+hmCELglO9Y8w/UHjYfIujMTrZ RKOKYFtXAcXHvyvlxhKAKGKhj5uswW0QWUNlufPfwvwDFAan5DHBxcpdaT2Fv44rtUwB1lTS DKgKlxvAdY36CNpyuIZUQ0macpMe0Fvl1zY4RELU8FL4rM9rGtRYACK0Eg7oFRsv4bpF3JfO TE7Bv6JwgVRzVPWsOrTE2Ir0GttQwLzggR7XzvHtPMgLvIddcekWTie5arJtVJCmYBcLZbGs Yq5Sxprp2iqSvVl0eX7mVhV5utx/k2CxYKyoH2NF+RwBBQR2wiJ8xitFYKdpFrmVzeGtiDHq uZ7VwlekZnjMgy40/xkhC6qgIkQiEi+nn3YRxFbOp10kDJB1j8TyYeMSLTr6ZwUZah8msiN4 8nRW0lwNxpXThV2+v2EZe3hJrBLxEOpRCqfGu9qkip9HPfSXS4ZpZEpmfCcMC8313qt5WYKr PSXBjvzhLn4VHDNZml684TSjfGwaJUJHKq5gjZ/vJ4I5Ke8eTyIuSrkKrdiO8LzwFa6HbvDq 9Hz5OL2+Xe4RB3sMqD0QtNDHPrw+vz8igmXG1JAJ+Cm8wybthr/o40Zc6MiDmu7iEQFO0I4c BF/6YC3aU5NHoJUMvQQFmfzKfrx/nJ4nBd9o/j6//gaugvvzX3wII8PZ9Px0eeRkdiGmHyp8 u9w93F+eMV5+KP9Yv51O7/d3/DXcXN7oDSZ2/s/sgNFvvt898ZLNovuuEXlBTsgezk/nl38M SdVwodw+3xHsPkaZdVndeteR/DnZXHhBLxe11i7/m8hzJ65kHIs8irNA9fOqQmVcwVKAu0ra IYwqAoYq4x8HpHGqHMRjilx4lpoCxuTs0ToRmQN37a/U3a6lxQdQK7oC4n8+7vknqEUPGRQj hUVeti/S/r5agZJlVR5bfq9ruvMVFsbRig3T/FwZrut5GH0QLXxlWeKFW4Gq9ldLNxiUyTLP mzpIid1tKMzpw7cKNUqHqgcnkDw+bNZrFWTlSjsSzbesMOAKQpHDjQ3MPwGCW7DOQVwvuI2o BAUHqVb+Vw1iVJ4ZiIrqGcztXsRRRViHgaU/ycnXEnEvtuI7PaTu3LM6TQR/6Vj5YRbMfMyd xXXAmTeVdu+1eSrVTKsRBQ5aUhS4aqq6iKvl0XRhErRk7oJksQyUI1vZDBd3Wop3IPPBtYIy ChX36h1YtELavj2QL9vZdKZ+yInruNq1p2A5V5dXSzASr3HiYqE/5uv5kjK4szAzk8RIqknQ kw0dyHxqCZzivIXj4TxWb7lCjGad5pwwEIcI/7/zEmelNJX/Xq0UHUUms+PbgJZJC9LZ6bm1 4nwXp0UJJ6Q1t90MjL3DEg2BSWvizJcakoUg+ZhKKDha7jC+ebp60Bio8IsZrpxnpHTnloi3 PGiWvi13dCQ+BFkRDZPE9EN/mKkRLJCCKiJTf6attd16MZse8YxU12Rn7bCqr3D9dnn5mMQv D3oeUr5WqpgRI5tQq9S8PnFlR1E4yN+nZ3FHVkZYqDOgTgO+3yUINmKYxQvfouQT5qPvlAY3 JtzQ7qu/Gt6qSM4PXbgHnAVKq1BHwG63DLkz65eXDDa6m2fsmoP8eirHWNnVa9YpNvLaeAjn tX1sDdrvL/qq4rMBcBqio389spNrkC/HO/lW8dXoTRcahDmnuOgOzRnzuXb+6HkrB+5yqIDV gupWRomL1cL6cSG8n1GAzdGoLCBxgP79YPM5nkxq4bhqUB9fmd5MX7yer14848tzvtRDZvky +r/Gnqy5cRzn9/0VqX3ardqZ8RUneZgHWqIstXWFkmwnL6pM2tNxbeeoxKmd/n79B5A6eIDu eZhJG4BIiiJBAMQB3V1eXlHrTO0mNZzhQvnr5/Pzj05KNj9r2GTZHQiFa55b31RJuhLvxyhx 0jDqOyRK9nDWeYR5oQ4vjz+Ge9r/wzCnMKx+K9N02J9SvZVq3sPp9f238Phxej/+8akXWyqf Hj4Ov6RAePh6kb6+vl38C1r498WfQw8fWg/9U/3K+/bj/fXj8fXtAEPrWYC209fTJbXMtH22 vhMFHNzaJyub+cSodKoA5MZRT+MVC41Cw1mPHue4XtvRFYp3HB6+n540XtZD308X4uF0uMhe X44n6x1ZxBeLCblYQdqeGMk2OsisX1zx5/Px6/H0g5o7ls3mU/q0DuPacxrFYQAd0oYtI51t loS+EKC4rmYzam/EdaNvrSq5mkyMnYWQmTutCay+E8bjPR8ePj7fD88HOHc+YSY1FrXKkqku E6nftly5yfZL+sWTfIvrZDnxVnLrVkVaZcuw2jurpYPrLD09fns6kZ8GLwRYSt3ZsfALzLIh 5bIUWNbEcK1hZVjdzD2XYxJ5Q26bVTy90ncG/tYdzoNsPpteG5IPguYe/6IMBkZ5eQYYn3xp NLtcXhrNrssZK+Fjs8mE8lkczroqnd1M9PKMJmZmlCeVsOmMtNxpon7qJtJWmNIqENVRfKnY dKYXeBSlmKjwZE1AFD4Hq3QLW3bhy53A9rD7PV+yKGv4yNRWKmFEswkizf0znZJut4hYaB8E hPL53PSlRT+FbVKRk1cH1Xwx1SVJBOghLP1XqeELGDEPEnBtSMMIurqidAXALC7n2tJvqsvp 9Uzj7dsgT3G6DDmOZ+lyQtYG3abLqenleg9zCjM3dZhM9vDt5XBSajG5ZzfXN1cUl5YIbW7Z ZnJzo+/fTtHN2DongZZ2x9bzqV5jVFufSM3rIuOYG9048kCTvJzpecM6riTbp4+3vmv3eBvu ZrPg8noxt/nhP4aK9W/fD39ZRgQp4DauWJ28PH4/vjjTS4jNeZAmOfGOGo2ydLSiqPvyG7KP Phj64hd04Xv5CvLsy8GUt2IhI581wdwYuUzBK5qy7gk850CNl1XoB0NL+DL0zja89ALP2+sJ zq8jaYC5nJH7Iqym12YKNxRLgS1SQgNgjD1Ul6kuMtjDgJnSz9E0K2+maoMp4e798IFnrvvN 2KqcLCeZkT9rlZUzj2ZmsFnfhX1cTjxlast0OvWbpgANm8Zjtqguvbo3oOZ0zFu3SZyh9pN6 udAzR8XlbLLUNvF9yeDQXDoARzp4QRfGD1NeLN9f/zo+o1SHcUpfjx/KVZPgSfK886S5SEL0 bUhq3m7NcJAIfTZ9RgURkZJotb+xauEhJR3Lt00v5+lkT3KNn7phqn18eH5DfYNcdnqYBc+0 u94s3d9MllOzzq6EkflL6qyc6KZD+VvTBGvYxHo0jPw9M6IM8pp289pmvKUTdRll7+CHG6SL QFZn6OmRBmHg8VBDqqjCXKVWe275cAWtKm9swkjgv15HGpnt5PrSGr9eTj0RtxePT8c3ooaE uMX0vNohKbJ2jWUU2L7Nxe/TgbDEZMErM3GKMkDV8AK+iPUhGWkR1IyMTeaYdQ5+1KJIU51f Kwzo9EPCjg4R6alJ4EcbsQ23QqMRDGx+m5CdInYncAtyvL7M7CfxatJySFUMIL67qD7/+JBX heMkdqmATQ/IVZC1G6ypjYnuOtT4aeO7FotRYZWMkCqegATlnrWz6zyTqe/spwckNu9pIICV UdrZ5xCRsbKMi5y3WZgtfQH/SFgEPC3QiAXTQW4boJFXsipDn7YETYQ7/t43yB6+QVQDFgR8 z/jwqjDw+DtnZk519fUO7xiuKXn2s9L33Q0hmBmazyq76PUoLsdNHqIV1szcZzmO9/sqD0Vh FoHpQO0qwWZsH6RewmCGOwH60gCIIDRyEMS7i9P7w6M8w9wbf+ANlPgkryDNwoU9zMujBgLb n9DGrz0Nwyo433BZn23XysaALuy6gi69KEqcXCepvYOUfJYcDLbaZmvRPxNsPf6pSKf8of34 MCJZUmVEcMHPvnxOm3tK5gJJV43JTJGjIaz6NIiprCS4JnLFbX/mfkOhj1qZ8v0oN2uahuuS AKoGiM3rq5uZYR9BsO+KGOt5GgF1ZQaKthHuVSWeQtFVmmTWya6MqUeM+pD8WvdcCFgQ83aH ldlU5hx99tAjhmlHIt/Xs9bIaaMA7Z7VtXDBZVEl8PKB4XDZIyseNILOegQk89YUOjrQ2KTP h2D+87YXbtsLb9sWTd+y8zycYOLOlxlZUlgb9MsqNKRe/O0NVISes5X8VgZP5gkcSI5v/dik z+2+CKLK/JI9pC1mwYoAY644Y9IURo4X99jGCsgg6cixrGr1BprA0EGM9WPjYCpADEPut7a/ x0AjmhyO1xzQ0lOMniRF7c9WqvCsgpmmeeLYHY/aLcg/EW10zpNUTSb1fWfWHEgATroL1fbb yLJm1ozRjK2jOrM9JImaW6rjcZXbOBkZm+RfeGBhq+7kHn8Tn5Xv0WfPZC0K0uWsLfRCJBiX Ld0QjehfdLfCa+Y7D943/CovavhmhnChQORxKzF9Gry+DTa00UFum6I2+L0EYPyWdNmTVhx0 qKYFOiy01D2xYyKH1yCGovAWV1HAWnDtKvM2yup2O7UBM+upoDb4NGvqIqoWPt6i0D5s1GCh X5L1wA5J2Z3FgkcoFkJNBKyiNiTLT1CULN2xOxgL6E3FztMsipb0iakR7eHzyjf7GWHGYb6K 8s45ZoOHxyczPiqqJN92KcNfQOH6LdyG8mx2juakKm5AJbEm6kuRJmTAz31iFa4JI/WoMqkV 1W8Rq3/La7qzyGI0WQVPGJCtTYK/+4h4TGBXYsqDxfyKwicFKpKgxf7+z+PH6/X15c0v039q U6SRNnVE2Qzz2mKQEmAtfgkTu8Ew+HH4/Pp68Sf1wuira02tBG28gSUSvc1svI5F/bzW80sg EOcFCxwmRkJ6iQriJA2Ffq++4SLX39LKIVhnpTlmCfgJ11c08sigLZrNGrjSitytoElFYRsI zmojMgH/WB9EpjxAzqtifXXZQmDKjJ5csyX7xBMWWW1zybZpUJduw2D1sdMZQFRtVI8QwH1j WdlDcZr+ErnH+oBsVok6OYGrxDyvk4B5ZMRAsEzvSP1Wx59l0+lQWU2Fzla3DatiYxF1EHUu OlKkiVYslVYtekLMWJmVLRb4JrPP24RSZSK71AnQcxRz7Jxpz9IzBvi9kRpxAKf3CxJaEND9 PdVuVYcEeCELFq5kiMk9PZc8W3FPUZhxvgVbZ7Am1CdRbc0Hfrt3FlqW5LDN6VM1c1d86VvS t/l+Ya1qAC1pkFO2TnR90UxSxllRL31Xba0BNr7xgZAECumGZia5fQ7Ab12Ukb8N87KCePQ6 iVzY5NXOY01T5C19VyPrsuaemcEnUSjqksOGOfnmHREeAzxFImtkdKy8DMwDxaPQFqtkG9ZP 9aZaX7ZvYNXkogzs3+3ayDJaBqA/IKzdiJXpHKPI/bpUwMuY/uZBYi4O/K2UTsqmK7GYqWiH wYKozfQT67Sx4wyjqbCAM12wUlI1ZcA8sbMS75yeOtLZIiPU45Uy4NEBrpRlxM4Q/mR8Rci8 Qrp/p96Uns2X6psrrXrBzJDcNHQv+rUg+pkPDpgrP+bKWD8G7vqScpewSGaehq8vzzVMhXqY JMuJ//EldZlpkczOPE5fH1tE1BWnRXLpe/fl0ou58Y7rZk7HQJpEnqQzVkseV3GDaEEFIJij vVrYowUdB5dgS2oI+rNTo0KsjZqaKJk5zteV72P3eGsF9uA5DV7QYGex9ggqAkrHX9Ht3dDg 6dz7lnQwrUFCuV0hwaZIrlth9ihhjd1bhom1i4xR4m+PDziIggH1JCY45o2gLOYDiShAvNar DA6YO5GkaRK4mDXjNFxwvR5wD04CLGYWEoi8SWoXLN83Mcuf9bi6EZvEPJY0CtSEDaNUalxX KJf8w+PnO/phONkZ8UzR1E0uqgQkKRA2ASFAcDevr7sHaP1RNPBk6BD0CpGyqXUEeqvwuw3j toDOpdJDPd2bItsQ1Dh51V2LxCyDecZa2aNM2SEqhLTRVUUjPBY2lCxkFTUusEJ6zNOS9KTq rRLjMPVs/zZWy/i4L4RS3QyNDuap6K0TwfuPt9PrxSOWL399v3g6fH/TXe8VMQg5a6bXejbA MxfOWUgCXVJQX4KkjHUzpo1xH4qNSkga0CUVRmbGAUYSDkKGM3TvSJhv9JuydKk3Zem2gKon MZyKObDQfWkeEEDY6mxNjKmDG1JBh8IlSFoD9Aexkglm+lHXGE7z62g6uwYd2kHkTUoDqZGU 8q9/LKiT3Ta84U6L8g+x7qTJI3DgVZK5xDxfJ/ngp8M+T0/o+/f4cDp8veAvj7hZMKPg/46n pwv28fH6eJSo8OH04GyaIMiI91sHZFqO7pEYdHA2m5RFejedmz7/wzZaJ5ismpbCTRqPqK4R zS49OSe6D18A11368kRoNFM6DLWfan4r6zTaazdmSS4RKlxfhtBgKfYPdy5XATEXQbQ6M5e1 uwMCYtlyM565g6aCzqXUoYtzPZdqtCZwT3QNRxNWFesnIH74ePK9f8bcJuOMUbOyh+79g9tm Y8hVePx2+Di5nYlgPnO7U2Dl6kEjqU+EcJiRlC6FMVLV00mYRNSGsXVma7LHrWKty3BBwKgt lSWwEjGFVnJm3kQWTmfXTosINtW0EWFtLgc/17OF91slZlMKCG1R4Mupe3QAeE4MqMrICBSF rNdieuM2tStVB0pUOL49mUlbekbirmyAGRXXNfDltfsmCM+TYWk5rCpvVglpr+nwIlgQj4Hk s4sSn8GlW3kMsyYlZErdngLzYVomKg3nrjyEuu8YmjkFO2j0k+NuE7N7QpiqWFoxYvn0Bwj1 /TlpBx6wolQJN9znJKatKj7Dj3duNquMshj0a4wzovl6V/zsG3Ukdud9Mqo39Lw/6nHAw4xH qXlj1PF23fTewa4XFPdK78+8DyBjiv+iud4Zp3h4+fr6fJF/Pv9xeO/jRNWg3dVeJW1QCvK6 vX81sVr3udUJTEwdFwpDic4SQ52XiHCAXxKse8bRQ7i8c7AoSbaUstAj6CEM2GqUqCkhVdKc nZqBqtNCnDWK5lz/4zg6LM7mLpF4R+xpzG0Tdrmo7J40LHK4M19TIwTu7WlqzS3HQ4ooTqK8 vbrx1EPTCANfdrCR5BYvxOPrm8u/Al9uOoM2sGtLeAmXnopvns63dGJVqvu/SQoD2FLhlBrd UNCAnj3BqQsmVt1lGUfjgbQ7YLVvvQUNXTartKOqmhUSurwNo3n/lNrHhyzG+XH89qKiPR6f Do//Pb5803JOqdzWmplEGJfRLr7SDAUdlu9rdKflaLnAO2LuPO9QqAvDxeRmqZlDijxk4u6n g1mlMp9hVf8NCrkv8V/aqFdJjt1IR6Xo9yFc6I/3h/cfF++vn6fji1HxjSXhsi1vx15WSS04 1gvQE5tJKxHTRNw+nqCqRR6Ud20kpCO9rmHrJCnPPdico2dJot9t9KgoyUP4n8AC9LoBb4hl CBLbD7ZHWWAQhmKcrRZLEPR+wolpDghgAQMXN0DTpUkxCOQaLKmb1nzKFvpR2q94GtXckye0 I4G1z1d3Pi1WI/HkV1QkTOzo9JwKr2ZSf4i80Qgc8TEgy/YmK1czCjSVYL/vjrbxLpblYZF5 pqSjAclD5hoWhtszQpVbgglHHwM8nkzBRkIdcQfkHKJlhFItS3GGpF/QIwExhyCXYIp+f49g +zfm3nZgMpSkdGkTtlw4QCYyClbHTWYo9h0KM+ZTal6HXgVfnNbM/I7ju7Xrez1US0Pobhz9 NsWL4oAZ7lerIDZ+yPxltSxyoTsbSDfNLUsth8o9E4LdDW4twxFTFUEikzW2kmBEIVMAZsEz G4Q+rq3BRBAeZpoJMgftoa1klrAWGJwKHxmIoa/+NZEgKGIpIGpzA9DOTdLwoa3WqZoYbU9J t98qWeesbqxsuWWDTt5tEUUgxQUbai+XDajW+quEtzorTwtjUeDvc5szT01fnyC9x2znxqAK EZKGgzDUo53FLZoqtKFkZWL4C8GPSK9biKFIAm10tZ6or8JAq0JrZmD3KoVnovtRAP9TU6Hd OOAxS76xPDw3h/eXw/eLp4deupDQt/fjy+m/Ksr2+fDxzb3nkUfwpq/nNcxMXhXSB3qdwimb Dvb1Ky/FbZPw+vfFMEeqhpXbwkAhS111vYdcle4a76rucoYllB1XkEF1PH4//HI6PncC1Yd8 xUcFf3ffUjlLmMrBCENP4Cbghs6hYSs4hekjUSMKd0xE9JG3DldYCzopSe2F59IynzVorMAd NI4wAm7CpQe3UU4Kl0IJ7AJjazMzyA4UJ9kaIGl3whzkmxCfWxWpxwULP1uxyz33WSoOQ2Mh 0CWmbbSGrggr5c2Pvp0ZqwPjhLVx8j3bIk/JsAI5E2UhGar7maJCBLxz1VHF0ilfVIbhuCCe Ck2O1IDDdZz6Ir9P/ppSVCoQ135T5XHVS7LZ4fkVBNnw8Mfnt2+GsC9nF0RxnldWmRvVDuIl W6V8hPFZmAMsgKBL3Ca8zYsuaEVv3aK554L2UR9HgeEo3hUgipBhnAA3K9AoZLHCKA5qrcvz ppswOM1S+GDu4z3G27k8QUBQV/XzrKe31CXNwGo7GlAQG5YSDyvEmZlR6VdhyyfUodPNnlqC eC5X9jqJk3VsnePDlMj3wiCByApDINDUARqo04TlQbEFiUN69QXOlowTMeYkxgV6gXnNPt8U C40fXr7puTKKYNOUemrJfvcWUe1FImuXopBOVmL1gL9D04LA1PAxYB5DyK2uZAJkfQ4dCn36 xq40wtIuZvBT4m5cE/27YGdtjOHXNYg35LrZ3QJnA/4WegLcVNvACIuipPaMgR/GYCDx8C4a rQJlBdw4tKMbFNA8AyXMic1TlGqbcdBuJW8/symw/w3npRVnpJR6vBocGOHFvz7eji94Xfjx n4vnz9PhrwP843B6/PXXX/9tLjvVtqy1NaZkH4QW2AduhJYyw8Hb2IseheSm5nvu7Ect2b25 z2ny3U5hQMctdiXTZemup11luBsrqDIkmtKy8ssvKVICjBUr8AhKOf0ITpM0wnbyYWXNCmwJ lMkdjj2+kF+UVqwE2AZoqWtdBcAFIpEjTB7i8KYgaeC1BSwjpUkTbF4dE14uCv9tMSdARTB5 tCadO76Sn1FU9F5USBmLl/hKWyqaAERGDMewUtypG4OgIY9+uWgBOc6W9VV6KS5oJIMjwP4H 8MCBDwIz33OD2dR4svtOo6wIQH5LRK6aC/62E66EPNPcT6HCK0GiQesqeR0GA4uBp6bqCKt5 n6NEb6uf8pYLITNkdXGglCjojRRlSaokF2unSUTGNijS3DbWBpBIme9Kzhr5ySVNhNvk5+PR RWSzgSwL+gF4ejEbGrcXRjLUpDyOZqM8uKsLjSnIaxTtYYd75jKpFxY+s8SQqMlV1+exa8HK mKbp9bbIYgsEst0ldYx6cmX3o9BZUDR5DQSoplskGCgnlzpSSq3AbiToHlStaDtOth2YLF9q 1nYCe5l3VtJbNYJBBYHVXsHwA3cWSsF5VtZoNCAH57TXAbSvNC4I2QItNAAvSULQ0+Igmc5v FtJMYwul404FJB4Ovq0uYIpg+Uuuokp4mqWf001IJjpBeslpQYYzhy4xCCTHsxrXJpw6rdfi LFZoN3PwHdYwrlkcUR2Xy8VwrDmDi/keYyd8b9WZW5Rjp/79ELkBbG1Wp5FwdZ1BO8FydT+Q eQKDejwwwZS67Jf4pjHz3kigMib6Gz2jMUi8QNO3rANovaVtEpfAJGQ088JbEBh/uwJ+FGdM UOqbbCFKRAZSAneXi4x+9b67YyOSYNClAgYzTw4KkN61JRVV4NaoxgKjwIyIiafGcsUw17RX n5XK5WYdGrZF/H1OEW1WoKcpPR3LgDPdvihxemMuMW3ckWQsTdZ5ZpXPc/VgTHLUJl0UFNej FKUDdUehmUELH8YUD93jBmt0dpKc1K706mWcibS7BjSLvWjwNlyt6e9rUGF+rH24ou+7ZZ3Q 2t7wliizo473sGhga1jexZ3ak66itKlsezqm3vGcvJgOHZexvF5uJ/vryaiz2Tj4JlMa122F GY3NixzDQId3G7DYHcVGR7xpAR0Qqj9y4gYa7PWM/7sxRHgvW4iUtmB5eUJfGpbMe3gVsHEz 3BagyCWmYUw1jv4upnFZSflZcv6+E9dMJ8yVnopjslAhnjXe0TX5TiUl81owB4p1YyXi/H+l WEApOeIBAA== --qMm9M+Fa2AknHoGS--