From 2bc173e3f7d33cde790d64938f36e0c647498dbc Mon Sep 17 00:00:00 2001 From: Jamie Smith Date: Sat, 21 Sep 2024 22:59:52 -0700 Subject: [PATCH] Remove RDA emac code as the target it is for no longer exists (#354) --- connectivity/drivers/emac/CMakeLists.txt | 2 - .../emac/TARGET_RDA_EMAC/CMakeLists.txt | 15 - .../emac/TARGET_RDA_EMAC/RdaWiFiInterface.cpp | 364 ---- .../emac/TARGET_RDA_EMAC/RdaWiFiInterface.h | 148 -- .../TARGET_RDA_EMAC/lwip-wifi/CMakeLists.txt | 4 - .../lwip-wifi/arch/CMakeLists.txt | 6 - .../lwip-wifi/arch/TARGET_RDA/CMakeLists.txt | 6 - .../TARGET_RDA/TARGET_UNO_91H/CMakeLists.txt | 20 - .../TARGET_RDA/TARGET_UNO_91H/inc/csl_mbed.h | 153 -- .../TARGET_UNO_91H/inc/maclib_task.h | 69 - .../TARGET_UNO_91H/inc/rda5981_flash.h | 105 -- .../TARGET_UNO_91H/inc/rda5981_ota.h | 57 - .../TARGET_UNO_91H/inc/rda5981_sniffer.h | 99 -- .../TARGET_UNO_91H/inc/rda5991h_wland.h | 659 -------- .../TARGET_UNO_91H/inc/rda_sys_wrapper.h | 216 --- .../TARGET_RDA/TARGET_UNO_91H/inc/wland_dbg.h | 60 - .../TARGET_UNO_91H/inc/wland_flash.h | 311 ---- .../TARGET_UNO_91H/inc/wland_flash_wp.h | 32 - .../TARGET_RDA/TARGET_UNO_91H/inc/wland_ota.h | 39 - .../TARGET_RDA/TARGET_UNO_91H/inc/wland_rf.h | 41 - .../TARGET_UNO_91H/inc/wland_types.h | 86 - .../TARGET_UNO_91H/lib/CMakeLists.txt | 13 - .../LICENSE-permissive-binary-license-1.0.txt | 49 - .../TARGET_RDA/TARGET_UNO_91H/lib/README.md | 7 - .../lib/TOOLCHAIN_GCC_ARM/libwifi_sta_ap.a | Bin 1070954 -> 0 bytes .../TARGET_UNO_91H/src/maclib_task.c | 223 --- .../TARGET_UNO_91H/src/rda5991h_wland.c | 530 ------ .../TARGET_UNO_91H/src/rda_sys_wrapper.c | 453 ----- .../TARGET_UNO_91H/src/wland_flash.c | 1481 ----------------- .../TARGET_UNO_91H/src/wland_flash_wp.c | 366 ---- .../TARGET_RDA/TARGET_UNO_91H/src/wland_ota.c | 145 -- .../emac/TARGET_RDA_EMAC/mbed_lib.json | 3 - .../emac/TARGET_RDA_EMAC/rda5981x_emac.cpp | 291 ---- .../emac/TARGET_RDA_EMAC/rda5981x_emac.h | 160 -- .../TARGET_RDA_EMAC/rda5981x_emac_config.h | 22 - 35 files changed, 6235 deletions(-) delete mode 100644 connectivity/drivers/emac/TARGET_RDA_EMAC/CMakeLists.txt delete mode 100644 connectivity/drivers/emac/TARGET_RDA_EMAC/RdaWiFiInterface.cpp delete mode 100644 connectivity/drivers/emac/TARGET_RDA_EMAC/RdaWiFiInterface.h delete mode 100644 connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/CMakeLists.txt delete mode 100644 connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/CMakeLists.txt delete mode 100644 connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/CMakeLists.txt delete mode 100644 connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/CMakeLists.txt delete mode 100644 connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/inc/csl_mbed.h delete mode 100644 connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/inc/maclib_task.h delete mode 100644 connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/inc/rda5981_flash.h delete mode 100644 connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/inc/rda5981_ota.h delete mode 100644 connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/inc/rda5981_sniffer.h delete mode 100644 connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/inc/rda5991h_wland.h delete mode 100644 connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/inc/rda_sys_wrapper.h delete mode 100644 connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/inc/wland_dbg.h delete mode 100644 connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/inc/wland_flash.h delete mode 100644 connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/inc/wland_flash_wp.h delete mode 100644 connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/inc/wland_ota.h delete mode 100644 connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/inc/wland_rf.h delete mode 100644 connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/inc/wland_types.h delete mode 100644 connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/lib/CMakeLists.txt delete mode 100644 connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/lib/LICENSE-permissive-binary-license-1.0.txt delete mode 100644 connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/lib/README.md delete mode 100644 connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/lib/TOOLCHAIN_GCC_ARM/libwifi_sta_ap.a delete mode 100644 connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/src/maclib_task.c delete mode 100644 connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/src/rda5991h_wland.c delete mode 100644 connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/src/rda_sys_wrapper.c delete mode 100644 connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/src/wland_flash.c delete mode 100644 connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/src/wland_flash_wp.c delete mode 100644 connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/src/wland_ota.c delete mode 100644 connectivity/drivers/emac/TARGET_RDA_EMAC/mbed_lib.json delete mode 100644 connectivity/drivers/emac/TARGET_RDA_EMAC/rda5981x_emac.cpp delete mode 100644 connectivity/drivers/emac/TARGET_RDA_EMAC/rda5981x_emac.h delete mode 100644 connectivity/drivers/emac/TARGET_RDA_EMAC/rda5981x_emac_config.h diff --git a/connectivity/drivers/emac/CMakeLists.txt b/connectivity/drivers/emac/CMakeLists.txt index 04246bea988..2aebd3fc930 100644 --- a/connectivity/drivers/emac/CMakeLists.txt +++ b/connectivity/drivers/emac/CMakeLists.txt @@ -21,8 +21,6 @@ elseif("NUVOTON_EMAC" IN_LIST MBED_TARGET_LABELS) add_subdirectory(TARGET_NUVOTON_EMAC) elseif("NXP_EMAC" IN_LIST MBED_TARGET_LABELS) add_subdirectory(TARGET_NXP_EMAC) -elseif("RDA_EMAC" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_RDA_EMAC) elseif("RENESAS_EMAC" IN_LIST MBED_TARGET_LABELS) add_subdirectory(TARGET_RENESAS_EMAC) elseif("STM" IN_LIST MBED_TARGET_LABELS) diff --git a/connectivity/drivers/emac/TARGET_RDA_EMAC/CMakeLists.txt b/connectivity/drivers/emac/TARGET_RDA_EMAC/CMakeLists.txt deleted file mode 100644 index ff2c4a5e325..00000000000 --- a/connectivity/drivers/emac/TARGET_RDA_EMAC/CMakeLists.txt +++ /dev/null @@ -1,15 +0,0 @@ -# Copyright (c) 2020 ARM Limited. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 - -add_subdirectory(lwip-wifi) - -target_include_directories(mbed-emac - PUBLIC - . -) - -target_sources(mbed-emac - PRIVATE - RdaWiFiInterface.cpp - rda5981x_emac.cpp -) diff --git a/connectivity/drivers/emac/TARGET_RDA_EMAC/RdaWiFiInterface.cpp b/connectivity/drivers/emac/TARGET_RDA_EMAC/RdaWiFiInterface.cpp deleted file mode 100644 index c68b7327379..00000000000 --- a/connectivity/drivers/emac/TARGET_RDA_EMAC/RdaWiFiInterface.cpp +++ /dev/null @@ -1,364 +0,0 @@ -/* Copyright (c) 2019 Unisoc Communications Inc. - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "WiFiInterface.h" -#include "RdaWiFiInterface.h" -#include "rda5991h_wland.h" -#include "nsapi_types.h" -#include "wland_types.h" -#include "rda_sys_wrapper.h" - -typedef enum { - WIFI_CONNECTED, - WIFI_DISCONNECTED, -}WIFI_STATE; - -static WIFI_STATE wifi_state = WIFI_DISCONNECTED; - -void daemon(void *para) -{ - void *main_msgQ = NULL; - rda_msg msg; - int ret; - RDAWiFiInterface *wifi = (RDAWiFiInterface *)para; - main_msgQ = rda_mail_create(10, sizeof(unsigned int)*4); - wifi->set_msg_queue(main_msgQ); - while(1){ - rda_mail_get(main_msgQ, (void*)&msg, osWaitForever); - switch(msg.type) - { - case MAIN_RECONNECT: - printf("wifi disconnect!\r\n"); - ret = wifi->disconnect(); - if(ret != 0){ - printf("disconnect failed!\r\n"); - break; - } - ret = wifi->reconnect(); - while(ret != 0){ - osDelay(5*1000); - ret = wifi->reconnect(); - }; - break; - default: - printf("unknown msg\r\n"); - break; - } - } -} - -nsapi_error_t RDAWiFiInterface::set_channel(uint8_t channel) -{ - int ret= 0; - init(); - - if (channel > 13) - return NSAPI_ERROR_PARAMETER; - - if (channel == 0) { - _channel = 0; - return NSAPI_ERROR_OK; - } - - ret = rda5981_set_channel(channel); - if (ret == 0) { - _channel = channel; - return NSAPI_ERROR_OK; - } else { - return NSAPI_ERROR_TIMEOUT; - } -} - -int8_t RDAWiFiInterface::get_rssi() -{ - return rda5981_get_rssi(); -} - -nsapi_error_t RDAWiFiInterface::init() -{ - if (!_interface) { - if (!_emac.power_up()) { - LWIP_DEBUGF(NETIF_DEBUG,("power up failed!\n")); - } - nsapi_error_t err = _stack.add_ethernet_interface(_emac, true, &_interface); - if (err != NSAPI_ERROR_OK) { - _interface = NULL; - return err; - } - _interface->attach(_connection_status_cb); - //rda_thread_new("daemon", daemon, this, DEFAULT_THREAD_STACKSIZE*4, osPriorityNormal); - } - return NSAPI_ERROR_OK; -} - -nsapi_error_t RDAWiFiInterface::set_credentials(const char *ssid, const char *pass, - nsapi_security_t security) -{ - if (ssid == 0 || strlen(ssid) == 0) { - return NSAPI_ERROR_PARAMETER; - } - if (security != NSAPI_SECURITY_NONE && (pass == 0 || strlen(pass) == 0)) { - return NSAPI_ERROR_PARAMETER; - } - if (strlen(ssid) > 32 || strlen(pass) > 63) { - return NSAPI_ERROR_PARAMETER; - } - memcpy((void*)_ssid, (void*)ssid, strlen(ssid)); - _ssid[strlen(ssid)] = '\0'; - memcpy((void*)_pass, (void*)pass, strlen(pass)); - _pass[strlen(pass)] = '\0'; - _security = security; - return NSAPI_ERROR_OK; -} - -nsapi_error_t RDAWiFiInterface::connect(const char *ssid, const char *pass, - nsapi_security_t security, uint8_t channel) -{ - rda_msg msg; - bool find = false; - int i = 0; - rda5981_scan_result bss; - int ret = 0; - - if(wifi_state == WIFI_CONNECTED) { - return NSAPI_ERROR_IS_CONNECTED; - } - - if (ssid == NULL || ssid[0] == 0) { - return NSAPI_ERROR_PARAMETER; - } - - set_credentials(ssid, pass, security); - set_channel(channel); - - init(); - - //reset all scan result to avoid any previous stored SSID/PW/CHANNEL - rda5981_del_scan_all_result(); - rda5981_scan(NULL,0,0); - if(rda5981_check_scan_result_name(ssid) != 0) { - for (i = 0; i< 5; i++) { - rda5981_scan(NULL, 0, 0); - if(rda5981_check_scan_result_name(ssid) == 0) { - find = true; - break; - } - } - } else { - find = true; - } - - if (find == false) { - LWIP_DEBUGF(NETIF_DEBUG,("can not find the ap.\r\n")); - return NSAPI_ERROR_NO_SSID; - } - bss.channel = 15; - rda5981_get_scan_result_name(&bss, ssid); - if ((channel !=0) && (bss.channel != channel)) { - LWIP_DEBUGF(NETIF_DEBUG, ("invalid channel\r\n")); - return NSAPI_ERROR_CONNECTION_TIMEOUT; - } - - memcpy(gssid, ssid, strlen(ssid)); - if (pass[0] != 0) { - memcpy(gpass, pass, strlen(pass)); - } - memset(gbssid, 0, NSAPI_MAC_BYTES); - gssid[strlen(ssid)] = gpass[strlen(pass)] = '\0'; - - msg.type = WLAND_CONNECT; - rda_mail_put(wland_msgQ, (void*)&msg, osWaitForever); - ret = rda_sem_wait(wifi_auth_sem, 10000); - if (ret) { - return NSAPI_ERROR_CONNECTION_TIMEOUT; - } - - wifi_state = WIFI_CONNECTED; - - ret = _interface->bringup(_dhcp, - _ip_address[0] ? _ip_address : 0, - _netmask[0] ? _netmask : 0, - _gateway[0] ? _gateway : 0, - DEFAULT_STACK, - _blocking); - LWIP_DEBUGF(NETIF_DEBUG,("Interface bringup up status:%d\r\n",ret)); - - if( ret == NSAPI_ERROR_OK || ret == NSAPI_ERROR_IS_CONNECTED ) { - ret = NSAPI_ERROR_OK; - } - else if( ret == NSAPI_ERROR_DHCP_FAILURE) { - disconnect(); - } - - return ret; -} - - -nsapi_error_t RDAWiFiInterface::connect() -{ - return connect(_ssid, _pass, _security, _channel); -} - -nsapi_error_t RDAWiFiInterface::disconnect() -{ - rda_msg msg; - - if(wifi_state == WIFI_DISCONNECTED) { - return NSAPI_ERROR_NO_CONNECTION; - } - wifi_state = WIFI_DISCONNECTED; - void* wifi_disconnect_sem = rda_sem_create(0); - msg.type = WLAND_DISCONNECT; - msg.arg1 = (unsigned int)wifi_disconnect_sem; - rda_mail_put(wland_msgQ, (void*)&msg, osWaitForever); - rda_sem_wait(wifi_disconnect_sem, osWaitForever); - rda_sem_delete(wifi_disconnect_sem); - if (_interface) { - return _interface->bringdown(); - } - - return NSAPI_ERROR_NO_CONNECTION; -} - -nsapi_error_t RDAWiFiInterface::reconnect() -{ - rda_msg msg; - bool find = false; - int i = 0; - rda5981_scan_result bss; - int ret = 0; - - if (_ssid == NULL || _ssid[0] == 0) { - return NSAPI_ERROR_PARAMETER; - } - - rda5981_del_scan_all_result(); - if(rda5981_check_scan_result_name(_ssid) != 0) { - for (i = 0; i< 5; i++) { - rda5981_scan(NULL, 0, 0); - if(rda5981_check_scan_result_name(_ssid) == 0) { - find = true; - break; - } - } - } else { - find = true; - } - - if (find == false) { - LWIP_DEBUGF(NETIF_DEBUG,"can not find the ap.\r\n"); - return NSAPI_ERROR_CONNECTION_TIMEOUT; - } - bss.channel = 15; - rda5981_get_scan_result_name(&bss, _ssid); - if ((_channel !=0) && (bss.channel != _channel)) { - LWIP_DEBUGF(NETIF_DEBUG, "invalid channel\r\n"); - return NSAPI_ERROR_CONNECTION_TIMEOUT; - } - - memcpy(gssid, _ssid, strlen(_ssid)); - if (_pass[0] != 0) { - memcpy(gpass, _pass, strlen(_pass)); - } - memset(gbssid, 0, NSAPI_MAC_BYTES); - gssid[strlen(_ssid)] = gpass[strlen(_pass)] = '\0'; - - msg.type = WLAND_CONNECT; - rda_mail_put(wland_msgQ, (void*)&msg, osWaitForever); - ret = rda_sem_wait(wifi_auth_sem, 10000); - if (ret) { - return NSAPI_ERROR_CONNECTION_TIMEOUT; - } - - if(_dhcp) { - memset(_ip_address, 0, sizeof(_ip_address)); - memset(_netmask, 0, sizeof(_netmask)); - memset(_gateway, 0, sizeof(_gateway)); - } - - ret = _interface->bringup(_dhcp, - _ip_address[0] ? _ip_address : 0, - _netmask[0] ? _netmask : 0, - _gateway[0] ? _gateway : 0, - DEFAULT_STACK, - _blocking); - LWIP_DEBUGF(NETIF_DEBUG,("Interface bringup up status:%d\r\n",ret)); - - if( ret == NSAPI_ERROR_OK || ret == NSAPI_ERROR_IS_CONNECTED ) { - ret = NSAPI_ERROR_OK; - wifi_state = WIFI_CONNECTED; - } - else if( ret == NSAPI_ERROR_DHCP_FAILURE) { - disconnect(); - } - return ret; -} - - -nsapi_size_or_error_t RDAWiFiInterface::scan(WiFiAccessPoint *res, nsapi_size_t count) -{ - int bss_num = 0, i; - rda5981_scan_result *bss; - nsapi_wifi_ap_t ap; - - init(); - - rda5981_scan(NULL, 0, 0); - bss_num = rda5981_get_scan_num(); - if (count != 0) { - bss_num = (bss_num < count) ? bss_num : count; - } - if (res) { - bss = (rda5981_scan_result *)malloc(bss_num * sizeof(rda5981_scan_result)); - rda5981_get_scan_result(bss, bss_num); - for (i=0; i -#ifdef __cplusplus -extern "C" { -#endif - -extern const unsigned int RDA_FW_INFO_ADDR; -extern const unsigned int RDA_UPGRADE_ADDR; - -/* - * function: start to wirte a partition. this func will erase given flash region - * @addr: partition start address, must be 4k alignment - * @img_len: length of image getted from OTA server, must be 4k alignment - * return: 0:success, else:fail - */ -int rda5981_write_partition_start(unsigned int addr, unsigned int img_len); - -/* - * function: write image to flash, without erase. - * the write region must be inside of the area given by func rda5981_write_partition_start - * the write region must be in order, otherwise the end function will return crc error. - * the maximum length could be write once time is 0x1000 - * @offset: offset from image inital position, must be 1k alignment - * @buf: data to be written - * @len: buffer len, max #0x1000, must be 1k alignment - * return: 0:success, else:fail - */ -int rda5981_write_partition(unsigned int offset, const unsigned char *buf, unsigned int len); - -/* - * function: end of writing partition - * return: 0:crc32 check success, else:fail - */ -int rda5981_write_partition_end(void); - -#ifdef __cplusplus -} -#endif - -#endif /*_RDA5981_OTA_H_*/ diff --git a/connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/inc/rda5981_sniffer.h b/connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/inc/rda5981_sniffer.h deleted file mode 100644 index 0f0f4658e35..00000000000 --- a/connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/inc/rda5981_sniffer.h +++ /dev/null @@ -1,99 +0,0 @@ -/* Copyright (c) 2019 Unisoc Communications Inc. - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef _RDA5981_SNIFFER_H_ -#define _RDA5981_SNIFFER_H_ - -#ifdef __cplusplus -extern "C" { -#endif -#include "wland_types.h" - -/* Enable filtering ACK frames (no support)*/ -//#define RDA_RX_FILTER_DROP_ACK BIT0 - -/* Enable filtering CTS frames (no support)*/ -//#define RDA_RX_FILTER_DROP_CTS BIT1 - -/* Enable filtering RTS frames (no support)*/ -//#define RDA_RX_FILTER_DROP_RTS BIT2 - -/* Enable filtering beacon frames */ -#define RDA_RX_FILTER_DROP_BEACON BIT3 - -/* Enable filtering ATIM frames (no support)*/ -//#define RDA_RX_FILTER_DROP_ATIM BIT4 - -/* Enable filtering CF_END frames (no support)*/ -//#define RDA_RX_FILTER_DROP_CF_END BIT5 - -/* Enable filtering QCF_POLL frames (no support)*/ -//#define RDA_RX_FILTER_DROP_QCF_POLL BIT6 - -/* Filter Management frames which are not directed to current STA */ -#define RDA_RX_FILTER_DROP_ND_MGMT BIT7 - -/* Filter BC/MC MGMT frames belonging to other BSS */ -#define RDA_RX_FILTER_DROP_BC_MC_MGMT_OTHER_BSS BIT8 - -/* Enable filtering of duplicate frames */ -#define RDA_RX_FILTER_DROP_DUPLICATE BIT9 - -/* Enable filtering of frames whose FCS has failed */ -#define RDA_RX_FILTER_DROP_FCS_FAILED BIT10 - -/* Enable filtering of De-authentication frame */ -#define RDA_RX_FILTER_DROP_DEAUTH BIT11 - -/* Filter BA frames which are not received as SIFS response (no support)*/ -//#define RDA_RX_FILTER_DROP_NSIFS_RESP_BA BIT12 - -/* Filter BA frames which are received as SIFS response (no support)*/ -//#define RDA_RX_FILTER_DROP_SIFS_RESP_BA BIT13 - -/* Filter frames which are received in secondary channel (20 MHz PPDU from Secondary channel) */ -#define RDA_RX_FILTER_DROP_SEC_CHANNEL BIT14 - -/* Filter BC/MC DATA frames belonging to other BSS */ -#define RDA_RX_FILTER_DROP_BC_MC_DATA_OTHER_BSS BIT15 - -/* Filter DATA frames not directed to this station */ -#define RDA_RX_FILTER_DROP_ND_DATA BIT16 - -/* Filter Control frames which are not directed to current STA (no support)*/ -//#define RDA_RX_FILTER_DROP_ND_CONTROL BIT17 - -/* Filter Beacon frames (in IBSS mode) which are not used for adoption because the timestamp field is lower than TSF timer */ -#define RDA_RX_FILTER_DROP_IBSS_BEACON BIT18 - -typedef int (*sniffer_handler_t)(unsigned short data_len, void *data); - -int rda5981_enable_sniffer(sniffer_handler_t handler); -int rda5981_disable_sniffer(void); -//don't use this in sniffer callback handler -int rda5981_disable_sniffer_nocallback(void); -///TODO: time is no use anymore -int rda5981_start_sniffer(unsigned char channel, unsigned char to_ds, - unsigned char from_ds, unsigned char mgm_frame, unsigned short time); -int rda5981_stop_sniffer(void); -int wland_sniffer_set_channel(unsigned char channel); -int rda5981_set_filter(unsigned char to_ds, unsigned char from_ds, unsigned int mgm_filter); -int rda5981_sniffer_enable_fcs(void);//for hiflying -#ifdef __cplusplus -} -#endif - -#endif /*_RDA5981_SNIFFER_H_*/ diff --git a/connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/inc/rda5991h_wland.h b/connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/inc/rda5991h_wland.h deleted file mode 100644 index 38df3e8ca6b..00000000000 --- a/connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/inc/rda5991h_wland.h +++ /dev/null @@ -1,659 +0,0 @@ -/* Copyright (c) 2019 Unisoc Communications Inc. - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef _RDA5991H_WLAND_H_ -#define _RDA5991H_WLAND_H_ - -#include "sys_arch.h" -#include "wland_types.h" - -/* Mbed interface mac address - * if MBED_MAC_ADD_x are zero, interface uid sets mac address, - * otherwise MAC_ADD_x are used. - */ - -extern unsigned char user_mac[6];//not save in flash, need fill before wifi init every time -extern unsigned char gssid[32+1]; -extern unsigned char gpass[64+1]; -extern unsigned char gchannel; -extern unsigned char gbssid[6]; - -extern unsigned char gssid_ap[32+1]; -extern unsigned char gpass_ap[64+1]; -extern unsigned char gchannel_ap; -extern void *wland_msgQ; -extern void *wifi_auth_sem; - -extern u8 sta_state; - -typedef enum { - WLAND_CONNECT, - WLAND_RECONNECT, - WLAND_DISCONNECT, - WLAND_DISCONNECT_ERROR, - WLAND_STARTAP, - WLAND_STOPAP, - WLAND_ADD_AP_GTK, - WLAND_AP_EAPOL_3_OF_4, - WLAND_ADD_AP_PTK, - WLAND_STAJOINED, - WLAND_STAEXITED, - WLAND_STADEAUTH, - WLAND_STADELETETIMER, - WLAND_MAC_CONNECTED, - WLAND_MAC_AP_CONNECTED, - WLAND_ADD_GTK, - WLAND_ADD_PTK, - WLAND_CON_FINISH, - WLAND_AUTO_RATE, - WLAND_ARP_OFFLOAD, - WLAND_SM_START, - WLAND_SM_STOP, - WLAND_WPS_CONNECT, - WLAND_WPS_START, - WLAND_WPS_DISCONNECT, -}WLAND_MSG; - -typedef enum { - MAIN_CONNECT, - MAIN_RECONNECT, - MAIN_DISCONNECT, - MAIN_STOP_AP, -}MAIN_MSG; - -typedef struct { - unsigned int type; - unsigned int arg1; - unsigned int arg2; - unsigned int arg3; -}rda_msg; - - -enum { - D_NONE_LEVEL = 0, - D_ERROR_LEVEL = 1, - D_INFO_LEVEL = 2, - D_DEBUG_LEVEL = 3, -}; - -#define WLAND_DBG_DUMP 0 -#define WPA_DBG_DUMP 0 -#define HUT_DBG_DUMP 0 -#define WLAND_DBG_LEVEL D_NONE_LEVEL -#define WPA_DBG_LEBEL D_NONE_LEVEL -#define WLANDLIB_DBG_LEVEL D_NONE_LEVEL - -#define ETH_ALEN 6 - -//encrypt type -#define ENCRYPT_NONE (0) -#define ENCRYPT_WPA_TKIP BIT0 -#define ENCRYPT_WPA_CCMP BIT1 -#define ENCRYPT_WPA2_TKIP BIT2 -#define ENCRYPT_WPA2_CCMP BIT3 -#define ENCRYPT_WEP BIT4 - -/* r91h driver data structure */ -typedef struct { - struct netif *netif_sta; - struct netif *netif_ap; - sys_thread_t wland_thread; - sys_thread_t maclib_thread; - sys_mbox_t maclib_mbox; - sys_mbox_t wland_mbox; -} rda_enetdata_t; - -__STATIC_INLINE int mac_is_valid(char* mac) -{ - return (mac[0] | mac[1] | mac[2] | mac[3] | mac[4] | mac[5]); -} - - -#ifdef __cplusplus -extern "C" { -#endif - -extern void wland_txip_data(void *data, unsigned int len, int mode); -extern void *wland_get_databuf(void); -extern void wland_sta_init(void); -extern void wland_reg_func(void); -extern void r91h_phy_task(void *data); -extern void wland_task(void *arg); -extern void rda_get_macaddr(u8_t *macaddr, int mode); -extern void rda5981_send_rawdata(char* data, unsigned int len); -extern int rda5981_send_nulldata(int power_save); -extern void rda5981_set_country_code(unsigned char country_code);// 0~china(1-14) 1~NA(1-11) 2~EU(1-13) -extern int rda5981_set_retrans_policy(unsigned char count); -extern int rda5981_set_channel(unsigned char channel); -/* default is 0, receive multicast packet, disable please set 1*/ -extern int rda5981_filter_multicast(unsigned char enable); -/* default is 0, 0 ~ no hidden, 1 ~ hidden zero len, 2 ~ hidden zero contents */ -extern void rda5981_set_AP_hidden_type(unsigned char mode); -extern void rda5981_set_AP_link_num(unsigned char num); -extern char* rda5981_get_ver(void); -extern int rda5981_enter_CE_MODE(unsigned char enable); -/* - * mode 0 - not 11n 1 - 11n - * - * -----------------11n(mode 1)(Mbps)----------------- - * rate HT20 HT40 - * GI(800ns) GI(400ns) GI(800ns) GI(400ns) - * 0 6.5 7.2 13.5 15 - * 1 13 14.2 27 30 - * 2 19.5 21.7 40.5 45 - * 3 26 28.9 54 60 - * 4 39 43.3 81 90 - * 5 52 57.8 108 120 - * 6 58.5 65 121.5 135 - * 7 65 72 135 150 - * - * --------------not 11n(mode 0)(Mbps)----------------- - * rate data rate rate data rate - * 0 autorate 9 9 - * 1 1 12 12 - * 2 2 18 18 - * 5 5.5 24 24 - * 11 11 36 36 - * 6 6 48 48 - * - */ -extern int rda5981_set_data_rate(unsigned char mode, unsigned char rate); -extern void rda5981_set_mode(unsigned char bgn_enable); -extern void rda5981_set_auth_timeout(unsigned char timeout_enable); -typedef struct { - char BSSID[ETH_ALEN]; - char SSID[32+1]; - signed char RSSI; - unsigned char SSID_len; - unsigned char channel; - unsigned char secure_type;//refer #define ENCRYPT_XXX - unsigned char wmm; - unsigned char *ie;//user program couldn't free(ie); - unsigned short capability; - unsigned int ie_length; -} rda5981_scan_result; - -typedef struct { - unsigned char mac[ETH_ALEN]; - unsigned int ip; -} rda5981_apsta_info; - -//scan one or all channel(if channel is 0) once -int rda5981_scan(const char *SSID, const unsigned char SSID_len, const unsigned char channel); -//0 passive mode, 1 active mode, scan time(unit is second) -int rda5981_scan_v2(const char *SSID, const unsigned char SSID_len, const unsigned char channel, const unsigned char mode, \ - const unsigned char scan_time); -int rda5981_get_scan_num(); -int rda5981_get_scan_result(rda5981_scan_result *buf, const unsigned char len); -int rda5981_get_scan_result_index(rda5981_scan_result *buf, const unsigned char index); -int rda5981_get_scan_result_name(rda5981_scan_result *buf, const char *name); -int rda5981_get_scan_result_bssid(rda5981_scan_result *buf, const unsigned char *bssid); -int rda5981_check_scan_result_name(const char *name); -int rda5981_check_scan_result(const char *ssid, const char *bssid, const unsigned channel); -int rda5981_check_scan_result_name_bssid(const unsigned char *name, const unsigned char *bssid); -int rda5981_del_scan_all_result(void); -void rda5981_set_expired_time(unsigned int expired_time); -int rda5981_get_joined_AP(rda5981_scan_result *bss); -s8 rda5981_get_rssi(); -void rda5981_set_main_queue(void* queue); - -void rda5981_set_sta_listen_interval(unsigned char interval); -void rda5981_set_sta_link_loss_time(unsigned char time); -unsigned int rda5981_get_ap_join_info(rda5981_apsta_info *buf, const unsigned char len); -void rda5981_set_AP_white_list(unsigned char flag, unsigned char *mac); -int wland_set_joined_sta_ip(char *mac, unsigned int ip); - -/* - * return 0:ok, else:error. - */ -int rda5981_flash_read_mac_addr(unsigned char *mac_addr); -int rda5981_flash_write_mac_addr(unsigned char *mac_addr); - -/* - * return 0:ok, else:error. - */ -int rda5981_flash_erase_uart(void); -int rda5981_flash_read_uart(unsigned int *uart); -int rda5981_flash_write_uart(unsigned int *uart); - -/* - * return 0:ok, else:error. - */ -int rda5981_flash_read_ip_addr(unsigned char *ip_addr, unsigned char *server_addr); -int rda5981_flash_write_ip_addr(unsigned char *ip_add, unsigned char *server_addr); - -/* - * return 0:ok, else:error. - */ -int rda5981_flash_erase_dhcp_data(void); -int rda5981_flash_read_dhcp_data(unsigned int *enable, unsigned int *ip, unsigned int *msk, unsigned int *gw); -int rda5981_flash_write_dhcp_data(unsigned int enable, unsigned int ip, unsigned int msk, unsigned int gw); - -/* - * return 0:ok, else:error. - */ -int rda5981_flash_read_ap_data(char *ssid, char *passwd, unsigned char *channel); -int rda5981_flash_write_ap_data(const char *ssid, const char *passwd, unsigned char channel); -int rda5981_flash_erase_ap_data(void); - -/* - * return 0:ok, else:error. - */ -int rda5981_flash_read_ap_net_data(unsigned int *ip, unsigned int *msk, unsigned int *gw, - unsigned int *dhcps, unsigned int *dhcpe); -int rda5981_flash_write_ap_net_data(unsigned int ip, unsigned int msk, unsigned int gw, - unsigned int dhcps, unsigned int dhcpe); -int rda5981_flash_erase_ap_net_data(void); - -/* - * return 0:ok, else:error. - */ -int rda5981_flash_read_sta_data(char *ssid, char *passwd); -int rda5981_flash_write_sta_data(const char *ssid, const char *passwd); -int rda5981_flash_erase_sta_data(void); - - -/* - * read 3rd parter data length from flash - * return user data length - */ -int rda5981_flash_read_3rdparter_data_length(void); - -/* - * read 3rd parter data from flash - * @buf, buf to store user data - * @buf_len, length of buf - * return user data length - */ -int rda5981_flash_read_3rdparter_data(unsigned char *buf, unsigned int buf_len); - -/* - * write 3rd parter data from flash - * @buf, data to write - * @buf_len, length of buf. - * return 0:ok, else:fail - */ -int rda5981_flash_write_3rdparter_data(const unsigned char *buf, unsigned int buf_len); - -/* - * erase 3rd parter data from flash - * return 0:ok, else:fail - */ -int rda5981_flash_erase_3rdparter_data(void); - -/* - * set flash size - * @size, 1MB:0x100000, 2MB:0x200000, 4MB:0x400000. default size: 1MB - * return 0:ok, else:fail - */ -int rda5981_set_flash_size(const unsigned int size); - -/* - * set userdata location on flash - * @sys_data_addr, data to save system parameter, user can not operate this area directly. - * size:4KB. default location:0x180fb000 - * @user_data_addr, data to save user data. user can save own data in this area - * by @rda5981_flash_read_3rdparter_data - * and @rda5981_flash_write_3rdparter_data - * default location:0x180fc000 - * @user_data_len, user data length, default:4KB - * return 0:ok, else:fail - */ -int rda5981_set_user_data_addr(const unsigned int sys_data_addr, - const unsigned int user_data_addr, const unsigned int user_data_len); - -/* - * function: erase flash - * @addr: mast be 4k alignment - * @len: must be 4k alignment. (package 64KB erase and 4KB erase for different condition automatically) - * return: 0:success, else:fail - */ -int rda5981_erase_flash(unsigned int addr, unsigned int len); - -/* - * function: write flash - * @addr: mast be 256 alignment - * @buf: data to be written, best be 4 alignment - * @len: buffer len, mast be 4 alignment - * return: 0:success, else:fail - */ -int rda5981_write_flash(unsigned int addr, char *buf, unsigned int len); - -/* - * function: read flash to @buf - * @addr: best be 4 alignment - * @buf: best be 4 alignment - * @len: buffer len - * return: 0:success, else:fail - */ -int rda5981_read_flash(unsigned int addr, char *buf, unsigned int len); - -/* - * function: read user data - * @data: data to read - * @len: length of data in byte - * @flag: user data flag - * return: 0:success, else:fail - */ -int rda5981_read_user_data(unsigned char *data, unsigned short len, unsigned int flag); - -/* - * function: write user data - * @data: data to write - * @len: length of data in byte - * @flag: user data flag - * return: 0:success, else:fail - */ -int rda5981_write_user_data(unsigned char *data, unsigned short len, unsigned int flag); - -/* - * function: erase user data - * @flag: user data flag - * return: 0:success, else:fail - */ -int rda5981_erase_user_data(unsigned int flag); - -/* - * function: update tx power from efuse data, for reg 11F and 120 - * return: 0:success, else:fail - */ -int update_tx_power_from_efuse(void); - -/* - * function: update xtal calibration from efuse data, for reg DA - * return: 0:success, else:fail - */ -int update_xtal_cal_from_efuse(void); - -/* - * function: update mac addr from flash data - * return: 0:success, else:fail - */ -int update_mac_addr_from_efuse(void); - -/* - * function: update tx power from flash data, Deprecated version - * return: 0:success, else:fail - */ -int update_tx_power_from_flash(void); - -/* - * function: update tx power from flash data, for reg 8A - * return: 0:success, else:fail - */ -int update_tx_power_rf_from_flash(void); - -/* - * function: update tx power from flash data, for reg 11F and 120 - * return: 0:success, else:fail - */ -int update_tx_power_phy_from_flash(void); - -/* - * function: update xtal calibration from flash data - * return: 0:success, else:fail - */ -int update_xtal_cal_from_flash(void); - -/* - * function: update mac addr from flash data - * return: 0:success, else:fail - */ -int update_mac_addr_from_flash(void); - -/* - * function: write rf reg - * @reg: rf reg data - * @value: rf reg value - * return: 0:success, else:fail - * eg: 0x00DA:xtal calibration - */ -int wland_rf_write(unsigned short reg, unsigned short value); - -/* - * function: write rf reg - * @reg: rf reg data - * @value: rf reg value - * @len : value length - * return: 0:success, else:fail - * eg: 0x008A:tx power rf - */ -int wland_rf_write_all_channels(unsigned short reg, unsigned short *value, unsigned short len); - -/* - * function: read rf reg - * @reg: rf reg data - * @value: rf reg value - * return: 0:success, else:fail - */ -int wland_rf_read(unsigned short reg, unsigned short *value); - -/* - * function: read rf reg - * @reg: rf reg data - * @value: rf reg value - * return: 0:success, else:fail - * eg: 0x008A:tx power rf - */ -int wland_rf_read_all_channels(unsigned short reg, unsigned short *value); - -/* - * function: write phy reg - * @reg: phy reg data - * @value: phy reg value - * return: 0:success, else:fail - */ -int wland_phy_write(unsigned int reg, unsigned int value); - -/* - * function: write phy reg - * @reg: phy reg data - * @value: phy reg value - * @len : value length - * return: 0:success, else:fail - */ -int wland_phy_write_all_channels(unsigned int reg, unsigned int *value, unsigned short len); - -/* - * function: read phy reg - * @reg: phy reg data - * @value: phy reg value - * return: 0:success, else:fail - */ -int wland_phy_read(unsigned int reg, unsigned int *value); - -/* - * function: read phy reg - * @reg: phy reg data - * @value: phy reg value - * return: 0:success, else:fail - */ -int wland_phy_read_all_channels(unsigned int reg, unsigned int *value); - -/* efuse API start */ -/* Efuse CAN ONLY WRITE ONCE! DO NOT CALL THESE API IF YOU DO KNOW WHAT THEY MEANS!!! */ - -/* - * function: read all efuse - * @value: buffer to store efuse data, 28 bytes - * return: 0:success, else:fail - */ -int wland_read_efuse(unsigned char *value); - -/* - * function: read tx power from efuse - * @tx_power: 2 bytes, first is mode g/n(range 0x25~0x54), second is mode b(range 0x15~0x54). - * return: 0:success, else:fail - */ -int wland_read_tx_power_from_efuse(unsigned char *tx_power); - -/* - * function: read tx power from efuse - * @tx_power: 2 bytes, first is mode g/n(range 0x25~0x54), second is mode b(range 0x15~0x54) - * @len: must be 2 - * return: 0:success, else:fail - */ -int wland_write_tx_power_to_efuse(unsigned char *tx_power, unsigned char len); - -/* - * function: read xtal cal from efuse - * @xtal_cal: 1 byte, maximum 0x7F - * return: 0:success, else:fail - */ -int wland_read_xtal_cal_from_efuse(unsigned char *cal_val); - -/* - * function: write xtal cal to efuse - * @xtal_cal: 1 byte, maximum 0x7F - * @len : must be 1 - * return: 0:success, else:fail - */ -int wland_write_xtal_cal_to_efuse(unsigned char *xtal_cal, unsigned char len); - -/* - * function: write mac to efuse - * @xtal_cal: 6 bytes - * return: 0:success, else:fail - */ -int wland_read_mac_addr_from_efuse(unsigned char *mac_addr); - -/* - * function: write mac to efuse - * @xtal_cal: 6 bytes - * @len : must be 6 - * return: 0:success, else:fail - */ -int wland_write_mac_addr_to_efuse(unsigned char*mac_addr, unsigned char len); -/* efuse API end */ - -/* - * function: start rf test - * @argc: number of argv - * @argv: args for test, 6 elements for tx test, 4 elements for rx test - * @is_tx: 1 for tx test, 0 for rx test - * return: 0:success, else:fail - */ -int wland_start_rf_test(unsigned int argc, unsigned int *argv, unsigned int is_tx); - -/* - * function: stop rx test - * return: 0:success, else:fail - */ -int wland_stop_rx_test(void); - -/* - * function: get rf test result - * @result buffer to store rx result - * return: 0:success, else:fail - */ -int wland_get_rx_result(char *result); - -/* - * function: restart rx test, use last rx test args - * return: 0:success, else:fail - */ -int wland_restart_rx_test(void); - -/* - * function: stop tx test - * return: 0:success, else:fail - */ -int wland_stop_tx_test(void); - -/* - * function: restart tx test, use last tx test args - * return: 0:success, else:fail - */ -int wland_restart_tx_test(void); - -#define RDA5981_FIRMWARE_INFO_ADDR 0x18003000 -/* - * function: reboot to assigned addr (onece). - * reboot to rf test mode, not for OTA - * @firmware_info_addr: firmware info addr, depend on your flash layout - * @reboot_addr: reboot addr, 0x18001000-0x1840000 - * return: 0:success, else:fail - */ -int rda5981_reboot_to_addr(unsigned int firmware_info_addr, unsigned int reboot_addr); - -/* - * function: read reg and corresponding value related to test mode stored in flash - * @reg: reg to read - * @value: buffer to store value - * @flag: user data flag - * return: 0:success, else:fail - */ -int rda5981_read_user_data_regs(unsigned char *reg, unsigned char *value, unsigned int flag); - -/* - * function: write reg and corresponding value related to test mode stored in flash - * @reg: reg to write - * @value: buffer that stores value - * @flag: user data flag - * return: 0:success, else:fail - */ -int rda5981_write_user_data_regs(unsigned char *reg, unsigned char *value, unsigned int flag); - -/* - * function: erase reg and corresponding value related to test mode stored in flash - * @reg: reg to erase - * @flag: user data flag - * return: 0:success, else:fail - */ -int rda5981_erase_user_data_regs(unsigned char *reg, unsigned int flag); - -/* - * function: get flash Manufacturer ID - * @mid: - * return: 0:success, else:fail - */ -int rda5981_flash_get_mid(unsigned char *mid); - -/* - * function: get flash Device ID - * @did: - * return: 0:success, else:fail - */ -int rda5981_flash_get_did(unsigned char *did); - -/* - * function: get flash ID - * @mid: - * return: 0:success, else:fail - */ -int rda5981_flash_get_jdid(unsigned short *jdid); - -/* - * function: read mac reg - * @reg: mac reg data - * @value: mac reg value - * return: 0:success, else:fail - */ -int wland_mac_reg_read(unsigned short reg, unsigned int *value); - -/* - * function: write mac reg - * @reg: mac reg data - * @value: mac reg value - * return: 0:success, else:fail - */ -int wland_mac_reg_write(unsigned short reg, unsigned int value); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/inc/rda_sys_wrapper.h b/connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/inc/rda_sys_wrapper.h deleted file mode 100644 index 25b80b51996..00000000000 --- a/connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/inc/rda_sys_wrapper.h +++ /dev/null @@ -1,216 +0,0 @@ -/* Copyright (c) 2019 Unisoc Communications Inc. - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#if 1 -#ifndef _RDA_SYS_WRAPPER_H_ -#define _RDA_SYS_WRAPPER_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -/* Alarm */ -/** - * @brief : get current time in units of micro second - * @param[in] : - * @param[out]: - * @return : return time value with uint32 type - */ -extern unsigned long rda_get_cur_time_ms(void); - -/** - * @brief : create an alarm with given function, return timer handle - * @param[in] : func(callback)/data(pass to func)/mode(once or periodic) - * @param[out]: - * @return : return timer handle, a pointer to the timer structure, non-zero is valid - */ -extern void * rda_alarm_create_v2(void *func, unsigned int data, unsigned int mode); -extern void * rda_alarm_create(void *func, unsigned int data); - -/** - * @brief : delete an alarm with given handle, then reset the handle - * @param[in] : *handle(pointer to the timer structure) - * @param[out]: **handle(address of the handle variable) - * @return : - */ -extern int rda_alarm_delete(void **handle); - -/** - * @brief : start an alarm, raise a function call after given timeout delay - * @param[in] : handle(pointer to the timer structure)/timeout(micro second) - * @param[out]: - * @return : - */ -extern int rda_alarm_start(void *handle, unsigned int timeout_ms); - -/** - * @brief : stop an alarm, will not raise a function call any more - * @param[in] : handle(pointer to the timer structure) - * @param[out]: - * @return : - */ -extern int rda_alarm_stop(void *handle); - - -/* Semaphore */ -/** - * @brief : create a semaphore - * @param[in] : name and initial valve of semaphore - * @param[out]: - * @return : return ERR or NO_ERR - */ -extern void* rda_sem_create(unsigned int count); - -/** - * @brief : wait a semaphore - * @param[in] : name of semaphore - * @param[out]: - * @return : return ERR or NO_ERR - */ -extern int rda_sem_wait(void *sem, unsigned int millisec); - -/** - * @brief : release a semaphore - * @param[in] : name of semaphore - * @param[out]: - * @return : return ERR or NO_ERR - */ -extern int rda_sem_release(void *sem); - -/** - * @brief : delete a semaphore - * @param[in] : name of semaphore - * @param[out]: - * @return : return ERR or NO_ERR - */ -extern int rda_sem_delete(void *sem); - - -/* Queue */ -/** - * @brief : create a message queue - * @param[in] : size of message queue - * @param[out]: - * @return : return message queue id or NULL if error - */ -extern void* rda_msgQ_create(unsigned int queuesz); - -/** - * @brief : put a message to queue - * @param[in] : message queue id, message value and wait time - * @param[out]: - * @return : return ERR or NO_ERR - */ -extern int rda_msg_put(void *msgQId, unsigned int msg, unsigned int millisec); - -/** - * @brief : get a message from queue - * @param[in] : message queue id, message value and wait time - * @param[out]: - * @return : return ERR or NO_ERR - */ -extern int rda_msg_get(void *msgQId, unsigned int *value, unsigned int millisec); - -/* Mail */ -/** - * @brief : create a mail - * @param[in] : mail count/size - * @param[out]: - * @return : return mail handle - */ -void* rda_mail_create(unsigned int msgcnt, unsigned int msgsize); - -/** - * @brief : get a msg from mail - * @param[in] : handler name of mail/mail/wait time - * @param[out]: - * @return : return ERR or NO_ERR - */ -int rda_mail_get(void *rdahandle, void *evt, unsigned int wait); - -/** - * @brief : put a msg to mail - * @param[in] : handler of mail/mail/wait time - * @param[out]: - * @return : return ERR or NO_ERR - */ - -int rda_mail_put(void *rdahandle, void *evt, unsigned int wait); - -/* Mutex */ -/** - * @brief : create a mutex - * @param[in] : - * @param[out]: - * @return : return ERR or NO_ERR - */ -extern void* rda_mutex_create(void); - -/** - * @brief : wait a mutex - * @param[in] : id of mutex and wait time - * @param[out]: - * @return : return ERR or NO_ERR - */ -extern int rda_mutex_wait(void *rdamutex, unsigned int millisec); - -/** - * @brief : release a mutex - * @param[in] : id of mutex - * @param[out]: - * @return : return ERR or NO_ERR - */ -extern int rda_mutex_realease(void *rdamutex); - -/** - * @brief : delete a mutex - * @param[in] : id of mutex - * @param[out]: - * @return : return ERR or NO_ERR - */ -extern int rda_mutex_delete(void *rdamutex); - -/* Thread */ -/** - * @brief : creat a thread - * @param[in] : thread name/thread function/thread fuction argument/stacksize/thread priority - * @param[out]: - * @return : return thread id - */ -void* rda_thread_new(const char *pcName, void (*thread)(void *arg), void *arg, int stacksize, int priority); - -/** - * @brief : delete a thread - * @param[in] : thread id - * @param[out]: - * @return : return ERR or NO_ERR - */ -int rda_thread_delete(void* id); - -/** - * @brief : get current thread id - * @param[in] : - * @param[out]: - * @return : return thread id - */ -void* rda_thread_get_id(void); - -#ifdef __cplusplus -} -#endif - -#endif /* _RDA_SYS_WRAPPER_H_ */ -#endif diff --git a/connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/inc/wland_dbg.h b/connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/inc/wland_dbg.h deleted file mode 100644 index ce418c023be..00000000000 --- a/connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/inc/wland_dbg.h +++ /dev/null @@ -1,60 +0,0 @@ -/* Copyright (c) 2019 Unisoc Communications Inc. - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef _WLAND_DBG_H_ -#define _WLAND_DBG_H_ -#include -#include "rda5991h_wland.h" -#include "wland_types.h" - -extern int wland_dbg_dump; -extern int wland_dbg_level; - -#define RDA_WLAND_DBG - -#ifdef RDA_WLAND_DBG -#define WLAND_DBG(level, fmt, ...) do {\ - int dbg_level = D_##level##_LEVEL;\ - if((dbg_level <= wland_dbg_level)){\ - printf("%s,"fmt, __func__, ##__VA_ARGS__);\ - } \ - } while (0) - -//if frmae_len is zero, get len from frame header -static inline void wland_dump_frame(const char* msg, u8 *data, u32 frame_len) -{ - - u32 len,i; - - if(wland_dbg_dump == 1) { - if(frame_len != 0) { - len = frame_len; - } else { - len = data[0] | ((data[1]&0x0f) << 8); - } - printf("%s : ",msg); - for(i=0; i= 4) { - wait_busy_down_4(); - } else { - wait_busy_down_2(); - } -} - -static void spi_write_reset(void) -{ - if (rda_ccfg_hwver() >= 4) { - spi_write_reset_4(); - } else { - spi_write_reset_2(); - } -} - -static void spi_wip_reset(void) -{ - if (rda_ccfg_hwver() >= 4) { - spi_wip_reset_4(); - } else { - spi_wip_reset_2(); - } -} - -static inline void spi_flash_enable_cache(void) -{ - unsigned int func = spi_flash_cfg_cache_addr; - if (rda_ccfg_hwver() >= 4) { - func = spi_flash_cfg_cache_addr_4; - } - ((void(*)(void))func)(); -} - -static inline void spi_flash_disable_cache(void) -{ - unsigned int func = spi_flash_disable_cache_addr; - if (rda_ccfg_hwver() >= 4) { - func = spi_flash_disable_cache_addr_4; - } - ((void(*)(void))func)(); -} - -static inline void spi_flash_flush_cache(void) -{ - unsigned int func = spi_flash_flush_cache_addr; - if (rda_ccfg_hwver() >= 4) { - func = spi_flash_flush_cache_addr_4; - } - ((void(*)(void))func)(); -} - -static inline void rda5981_spi_flash_erase_4KB_sector(u32 addr) -{ - unsigned int func = spi_flash_erase_4KB_sector_addr; - if (rda_ccfg_hwver() >= 4) { - func = spi_flash_erase_4KB_sector_addr_4; - } - ((void(*)(u32))func)(addr); -} - -static inline void RDA5991H_ERASE_FLASH(void *addr, u32 len) -{ - unsigned int func = FLASH_ERASE_FUN_ADDR; - if (rda_ccfg_hwver() >= 4) { - func = FLASH_ERASE_FUN_ADDR_4; - } - ((void(*)(void *, u32))func)(addr, len); -} - -static inline void RDA5991H_WRITE_FLASH(u32 addr, u8 *data, u32 len) -{ - unsigned int func = FLASH_WRITE_FUN_ADDR; - if (rda_ccfg_hwver() >= 4) { - func = FLASH_WRITE_FUN_ADDR_4; - } - ((void(*)(u32, u8 *, u32))func)(addr, data, len); -} - -static inline void RDA5991H_READ_FLASH(u32 addr, u8 *buf, u32 len) -{ - unsigned int func = FLASH_READ_FUN_ADDR; - if (rda_ccfg_hwver() >= 4) { - func = FLASH_READ_FUN_ADDR_4; - } - ((void(*)(u32, u8 *, u32))func)(addr, buf, len); -} - -static inline void SPI_FLASH_READ_DATA_FOR_MBED(void *addr, void *buf, u32 len) -{ - unsigned int func = SPI_FLASH_READ_DATA_FOR_MBED_ADDR; - if (rda_ccfg_hwver() >= 4) { - func = SPI_FLASH_READ_DATA_FOR_MBED_ADDR_4; - } - ((void(*)(void *, void *, u32))func)(buf, addr, len); -} - -#endif /*_WLAND_FLASH_H_*/ - diff --git a/connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/inc/wland_flash_wp.h b/connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/inc/wland_flash_wp.h deleted file mode 100644 index 40ee40ee595..00000000000 --- a/connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/inc/wland_flash_wp.h +++ /dev/null @@ -1,32 +0,0 @@ -/* Copyright (c) 2019 Unisoc Communications Inc. - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef _WLAND_FLASH_WP_H_ -#define _WLAND_FLASH_WP_H_ - -#ifdef __cplusplus -extern "C" { -#endif -extern void flash_wrtie_protect_all(); -extern void flash_wrtie_protect_none(); -extern void flash_wrtie_protect(unsigned int offset); -extern void rda5981_flash_init(); -#ifdef __cplusplus -} -#endif - -#endif - diff --git a/connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/inc/wland_ota.h b/connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/inc/wland_ota.h deleted file mode 100644 index 57b90528717..00000000000 --- a/connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/inc/wland_ota.h +++ /dev/null @@ -1,39 +0,0 @@ -/* Copyright (c) 2019 Unisoc Communications Inc. - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef _WLAND_OTA_H_ -#define _WLAND_OTA_H_ -#include "wland_types.h" -#include "rda_ccfg_api.h" - -extern u32 flash_size; - -#define CRC32_TABLE_ADDR 0xbb5c -#define CRC32_ADDR 0x8dff//u32 crc32(const u8 *p, size_t len) - -#define CRC32_TABLE_ADDR_4 0xbbd8 -#define CRC32_ADDR_4 0x8e33//u32 crc32(const u8 *p, size_t len) - -static inline unsigned int bootrom_crc32(unsigned char *p, unsigned int len) -{ - unsigned int func = CRC32_ADDR; - if (rda_ccfg_hwver() >= 4) { - func = CRC32_ADDR_4; - } - return ((unsigned int(*)(unsigned char *, unsigned int))func)(p, len); -} - -#endif /*_WLAND_OTA_H_*/ diff --git a/connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/inc/wland_rf.h b/connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/inc/wland_rf.h deleted file mode 100644 index 6a9ebebc985..00000000000 --- a/connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/inc/wland_rf.h +++ /dev/null @@ -1,41 +0,0 @@ -/* Copyright (c) 2019 Unisoc Communications Inc. - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef _WLAND_RF_H_ -#define _WLAND_RF_H_ - -#include "wland_types.h" - -#define WLAND_TXP_NUM 2 -#define WLAND_CHANNEL_NUM 14 -#define WLAND_TX_POWER_PHY_GN_REG 0x11F -#define WLAND_TX_POWER_PHY_B_REG 0x120 -#define WLAND_TX_POWER_RF_REG 0x8A -#define WLAND_XTAL_CAL_REG 0xDA - -#define MAKE_WORD16(lsb, msb) (((u16)(msb) << 8) & 0xFF00) | (lsb) -#define MAKE_WORD32(lsw, msw) (((u32)(msw) << 16) & 0xFFFF0000) | (lsw) - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif - diff --git a/connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/inc/wland_types.h b/connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/inc/wland_types.h deleted file mode 100644 index 3cb0e7e9e60..00000000000 --- a/connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/inc/wland_types.h +++ /dev/null @@ -1,86 +0,0 @@ -/* Copyright (c) 2019 Unisoc Communications Inc. - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/*****************************************************************************/ -/* */ -/* File Name : wland_types.h */ -/* */ -/* Description : This file contains all the data type definitions for */ -/* MAC implementation. */ -/* */ -/*****************************************************************************/ - -#ifndef WLAND_TYPES_H -#define WLAND_TYPES_H - -/*****************************************************************************/ -/* Constants Definitions */ -/*****************************************************************************/ - -typedef unsigned char u8; -typedef unsigned short u16; -typedef unsigned int u32; -typedef unsigned long long u64; -typedef signed char s8; -typedef signed short s16; -typedef signed int s32; -typedef signed long long s64; - -typedef unsigned int size_t; - -/** Indicates Bit Value of BITx */ -#ifndef BIT -#define BIT(x) (1ul << (x)) - -/*****************************************************************************/ -/* Constant Definitions */ -/*****************************************************************************/ - -#define BIT0 (1ul << 0) -#define BIT1 (1ul << 1) -#define BIT2 (1ul << 2) -#define BIT3 (1ul << 3) -#define BIT4 (1ul << 4) -#define BIT5 (1ul << 5) -#define BIT6 (1ul << 6) -#define BIT7 (1ul << 7) -#define BIT8 (1ul << 8) -#define BIT9 (1ul << 9) -#define BIT10 (1ul << 10) -#define BIT11 (1ul << 11) -#define BIT12 (1ul << 12) -#define BIT13 (1ul << 13) -#define BIT14 (1ul << 14) -#define BIT15 (1ul << 15) -#define BIT16 (1ul << 16) -#define BIT17 (1ul << 17) -#define BIT18 (1ul << 18) -#define BIT19 (1ul << 19) -#define BIT20 (1ul << 20) -#define BIT21 (1ul << 21) -#define BIT22 (1ul << 22) -#define BIT23 (1ul << 23) -#define BIT24 (1ul << 24) -#define BIT25 (1ul << 25) -#define BIT26 (1ul << 26) -#define BIT27 (1ul << 27) -#define BIT28 (1ul << 28) -#define BIT29 (1ul << 29) -#define BIT30 (1ul << 30) -#define BIT31 (1ul << 31) -#endif - -#endif /* WLAND_TYPES_H */ diff --git a/connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/lib/CMakeLists.txt b/connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/lib/CMakeLists.txt deleted file mode 100644 index 3f0d69fbeb3..00000000000 --- a/connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/lib/CMakeLists.txt +++ /dev/null @@ -1,13 +0,0 @@ -# Copyright (c) 2020-2021 ARM Limited. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 - -function(_mbed_get_lib_file_uno_91h) - if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") - set(LIB_FILE TOOLCHAIN_GCC_ARM/libwifi_sta_ap.a) - elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") - set(LIB_FILE TOOLCHAIN_ARM_STD/libwifi_sta_ap.ar) - endif() - target_sources(mbed-emac PRIVATE ${LIB_FILE}) -endfunction() - -_mbed_get_lib_file_uno_91h() diff --git a/connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/lib/LICENSE-permissive-binary-license-1.0.txt b/connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/lib/LICENSE-permissive-binary-license-1.0.txt deleted file mode 100644 index 24e25298db3..00000000000 --- a/connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/lib/LICENSE-permissive-binary-license-1.0.txt +++ /dev/null @@ -1,49 +0,0 @@ -Permissive Binary License - -Version 1.0, January 2019 - -Redistribution. Redistribution and use in binary form, without -modification, are permitted provided that the following conditions are -met: - -1) Redistributions must reproduce the above copyright notice and the - following disclaimer in the documentation and/or other materials - provided with the distribution. - -2) Unless to the extent explicitly permitted by law, no reverse - engineering, decompilation, or disassembly of this software is - permitted. - -3) Redistribution as part of a software development kit must include the - accompanying file named “DEPENDENCIES” and any dependencies listed in - that file. - -4) Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -Limited patent license. The copyright holders (and contributors) grant a -worldwide, non-exclusive, no-charge, royalty-free patent license to -make, have made, use, offer to sell, sell, import, and otherwise -transfer this software, where such license applies only to those patent -claims licensable by the copyright holders (and contributors) that are -necessarily infringed by this software. This patent license shall not -apply to any combinations that include this software. No hardware is -licensed hereunder. - -If you institute patent litigation against any entity (including a -cross-claim or counterclaim in a lawsuit) alleging that the software -itself infringes your patent(s), then your rights granted under this -license shall terminate as of the date such litigation is filed. - -DISCLAIMER. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND -CONTRIBUTORS "AS IS." ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT -NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED -TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/lib/README.md b/connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/lib/README.md deleted file mode 100644 index 5df1aa37df9..00000000000 --- a/connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/lib/README.md +++ /dev/null @@ -1,7 +0,0 @@ -This directory tree contains binaries build from RDA SDK modified for Mbed OS and released under Permissive Binary License. - -libhal files in the subfolders are generated with toolchains: - -Arm Compiler 5 - version 5.06u6 -GNU Arm Embedded - version 6.3.1 -IAR EWARM - version 8.32.2.178 \ No newline at end of file diff --git a/connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/lib/TOOLCHAIN_GCC_ARM/libwifi_sta_ap.a b/connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/lib/TOOLCHAIN_GCC_ARM/libwifi_sta_ap.a deleted file mode 100644 index 4d2ed200dcfd102fea0bf963b750ebbe4ac7cf60..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1070954 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
    A4>BPVB;dRO%zlz&!SoznG5 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≶r-SWqMMj%kPBh{Mk|ddDgd73};GPoU}}k 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%0D%?H4Lp@! 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 -#include -#include - -#include "mbed_interface.h" -#include "cmsis_os.h" -#include "csl_mbed.h" -#include "maclib_task.h" -#include "rda5991h_wland.h" - -#include "lwip/pbuf.h" -#include "lwip/sys.h" - -/** - * Macros - */ -#define MACLIB_TASK_DEBUG (0) - -/** - * Variables - */ -static int maclib_task_run = 0; -static void* maclib_mbox; -static int g_event_num = 0; -static int g_event_proc_done = 1; -static sys_sem_t g_maclib_sem_sleep; -static int g_maclib_sleep_flag = 0; - -extern maclib_func_t *maclib_func_p; - -extern void rda_critical_sec_start(void); -extern void rda_critical_sec_end(void); -extern void wland_set_sta_sleep(unsigned char is_sleep); -/** - * Functions - */ -/* maybe called in isr, should not use "printf", "malloc" */ -void mbed_event_handle_cb(unsigned int event) -{ - static unsigned int sec_cnt = 0; - MACLIB_EVENT_HANDLE_T type = (MACLIB_EVENT_HANDLE_T)event; - if ((maclib_task_run == 0) && (MACLIB_EVENT_CLEANUP != type)) { - mbed_error_printf("evntHndlCb_nulldata\r\n"); - return; - } - switch(type) { - case MACLIB_EVENT_PEND: - rda_critical_sec_start(); - g_event_num++; - if((1 == g_event_num) && (1 == g_event_proc_done)) { - maclib_msg_t msg; -#if MACLIB_TASK_DEBUG - mbed_error_printf("#1-1,%d(%08X)\r\n", g_event_num, __get_xPSR()); -#endif - msg.type = MACLIB_MSG_EVNT_HNDL; - msg.msg = NULL; - rda_mail_put(maclib_mbox, (void*)&msg, 0); -#if MACLIB_TASK_DEBUG - mbed_error_printf("#1-2\r\n"); -#endif - } - rda_critical_sec_end(); - break; - case MACLIB_EVENT_PROCESS: -#if 1 - rda_critical_sec_start(); - g_event_num--; - if(0 > g_event_num) { - mbed_error_printf("event handle err\r\n"); - g_event_num = 0; - } - rda_critical_sec_end(); -#if MACLIB_TASK_DEBUG - mbed_error_printf("#3,%d\r\n",g_event_num); -#endif -#endif - break; - case MACLIB_EVENT_CLEANUP: -#if MACLIB_TASK_DEBUG - mbed_error_printf("event cleanup\r\n"); -#endif - rda_critical_sec_start(); - g_event_num = 0; - rda_critical_sec_end(); - break; - default: - break; - } -} - -void mbed_mltask_sleep_cb(void) -{ - g_maclib_sleep_flag = 1; - sys_arch_sem_wait(&g_maclib_sem_sleep, 0); -} - -void mbed_mltask_wakeup_cb(void) -{ - rda_critical_sec_start(); - if (1 == g_maclib_sleep_flag) { - g_maclib_sleep_flag = 0; - sys_sem_signal(&g_maclib_sem_sleep); - } - rda_critical_sec_end(); -} - -void maclib_check_status(void) -{ - rda_critical_sec_start(); - if (1 == g_maclib_sleep_flag) { - if(*((unsigned int *)0x40020580U) & (0x01UL << 2)) { - mbed_mltask_wakeup_cb(); - } - } - rda_critical_sec_end(); -} - -int maclib_is_sleep_allowed(void) -{ - return g_maclib_sleep_flag; -} - -void maclib_task(void *pvParameters) -{ - int ret; -#if 0 - sleep_entry_t maclib_sleep_entry = { - wland_set_sta_sleep, - maclib_is_sleep_allowed, - maclib_check_status - }; -#endif - sys_sem_new(&g_maclib_sem_sleep, 0); - //sleep_entry_register(&maclib_sleep_entry); - - maclib_mbox = (void *)rda_mail_create(8, sizeof(maclib_msg_t));//ret = sys_mbox_new(&(maclib_mbox), 8); - if(NULL == maclib_mbox) { - mbed_error_printf("msgbox init err!\r\n"); - goto mac_lib_err; - } -#if MACLIB_TASK_DEBUG - LWIP_DEBUGF(NETIF_DEBUG,"#mbox new\r\n"); -#endif - maclib_task_run = 1; - while(1) { - maclib_msg_t msg; - osStatus_t status = rda_mail_get(maclib_mbox, (void *)&msg, osWaitForever); - if(osOK != status) { - mbed_error_printf("ml_task: invalid msg ret=%08X\r\n", status); - continue; - } - switch(msg.type) { - case MACLIB_MSG_EVNT_HNDL: { - rda_critical_sec_start(); - g_event_proc_done = 0; - rda_critical_sec_end(); -#if MACLIB_TASK_DEBUG - mbed_error_printf("#get event %d\r\n", g_event_num); -#endif - maclib_func_p->ml_tasklet(); -#if MACLIB_TASK_DEBUG - mbed_error_printf("#5\r\n"); -#endif - rda_critical_sec_start(); -#if 0 - g_event_num--; - if(0 > g_event_num) { - mbed_error_printf("event handle err\r\n"); - } else -#endif - g_event_proc_done = 1; - if(0 < g_event_num) { -#if MACLIB_TASK_DEBUG - mbed_error_printf("#2-1\r\n"); -#endif - rda_mail_put(maclib_mbox, (void*)&msg, 0); -#if MACLIB_TASK_DEBUG - mbed_error_printf("#2-2\r\n"); -#endif - } - rda_critical_sec_end(); -#if MACLIB_TASK_DEBUG - mbed_error_printf("#pDone\r\n"); -#endif - break; - } - default: - break; - } -#if MACLIB_TASK_DEBUG - mbed_error_printf("#4\r\n"); -#endif - } - -mac_lib_err: - LWIP_DEBUGF(NETIF_DEBUG,"MACLib exit!\r\n"); - osDelay(osWaitForever); -} diff --git a/connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/src/rda5991h_wland.c b/connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/src/rda5991h_wland.c deleted file mode 100644 index d51064e5823..00000000000 --- a/connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/src/rda5991h_wland.c +++ /dev/null @@ -1,530 +0,0 @@ -/* Copyright (c) 2019 ARM Limited - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/****************************************************************************** - * @file rda5991h_wland.c - * @brief RDA5991H wlan driver for LWIP - * @version: V1.0 - * @date: 25. July 2016 - * - * @note - * Copyright (C) 2009 ARM Limited. All rights reserved. - * - * @par - * ARM Limited (ARM) is supplying this software for use with Cortex-M - * processor based microcontrollers. This file can be freely distributed - * within development tools that are supporting such ARM based processors. - * - * @par - * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED - * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. - * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR - * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. - * - ******************************************************************************/ - -#include "lwip/opt.h" -#include "lwip/sys.h" -#include "lwip/def.h" -#include "lwip/mem.h" -#include "lwip/pbuf.h" -#include "lwip/stats.h" -#include "lwip/snmp.h" -#include "lwip/tcpip.h" -#include "netif/etharp.h" -#include "sys_arch.h" -#include "rda5991h_wland.h" -#include "cmsis.h" -#if defined(MBEDTLS_ENTROPY_HARDWARE_ALT) -#include "entropy_poll.h" -#else -#include "trng_api.h" -#endif -#include "gpio_api.h" -#include "gpio_irq_api.h" -#include "maclib_task.h" -#include "rda_sys_wrapper.h" -#include -#include -#include -#include - -/* Global variables */ -rda_enetdata_t r91h_wifidata; - -int wland_dbg_dump = WLAND_DBG_DUMP; -int wland_dbg_level = WLAND_DBG_LEVEL; -int wpa_dbg_dump = WPA_DBG_DUMP; -int wpa_dbg_level = WPA_DBG_LEBEL; -int wlandlib_dbg_level = WLANDLIB_DBG_LEVEL; -int hut_dbg_dump = HUT_DBG_DUMP; - -//#define CONFIG_DISABLE_ALL_INT -#define CRI_SEC_START_PRI_LEVEL 0xF8 -#define CRI_SEC_END_PRI_LEVEL 0x00 -static unsigned int g_critical_sec_counter = 0U; -#if defined(CONFIG_DISABLE_ALL_INT) -static unsigned int g_critical_ctxt_saved = 0U; -#endif /* CONFIG_DISABLE_ALL_INT */ -void *packet_rx_queue; - -/* Function statements */ -void r91h_wifiif_input(struct netif *netif, u8_t *data, u32_t len, int idx); -void mbed_mac_address(char *mac); - -/** \brief Driver transmit and receive thread priorities - * - * Thread priorities for receive thread and TX cleanup thread. Alter - * to prioritize receive or transmit bandwidth. In a heavily loaded - * system or with LEIP_DEBUG enabled, the priorities might be better - * the same. */ -#define RX_PRIORITY (osPriorityNormal) -#define TX_PRIORITY (osPriorityNormal) -#define PHY_PRIORITY (osPriorityNormal) - -void rda_netif_down(int netif) -{ - if (netif == 0) { - netif_set_down(r91h_wifidata.netif_sta); - } else { - netif_set_down(r91h_wifidata.netif_ap); - } -} - -void rda_netif_link_down(int netif) -{ - rda_msg msg; - msg.type = 1; - msg.arg1 = 0; - rda_mail_put(packet_rx_queue, (void*)&msg, 0); -} - -void rda_netif_up(int netif) -{ - if (netif == 0) { - netif_set_up(r91h_wifidata.netif_sta); - } else { - netif_set_up(r91h_wifidata.netif_ap); - } -} - -void rda_netif_link_up(int netif) -{ - rda_msg msg; - msg.type = 1; - msg.arg1 = 1; - rda_mail_put(packet_rx_queue, (void*)&msg, 0); - return; -} - -void rda_netif_input(u8_t *data, u32_t len, int idx, int netif) -{ - if (netif == 0) { - r91h_wifiif_input(r91h_wifidata.netif_sta, data, len, idx++); - } else { - r91h_wifiif_input(r91h_wifidata.netif_ap, data, len, idx++); - } -} - -void rda_get_macaddr(u8_t *macaddr, int mode) -{ - mbed_mac_address((char *)macaddr); - if (mode == 1) { - if(macaddr[0] & 0x04) { - macaddr[0] &= 0xFB; - } else { - macaddr[0] |= 0x04; - } - } - return; -} - -void rda_critical_sec_start(void) -{ - if (__get_IPSR() == 0U) { - if (0U == g_critical_sec_counter) { -#if defined(CONFIG_DISABLE_ALL_INT) - g_critical_ctxt_saved = __disable_irq(); -#else /* CONFIG_DISABLE_ALL_INT */ - __set_BASEPRI(CRI_SEC_START_PRI_LEVEL); -#endif /* CONFIG_DISABLE_ALL_INT */ - } - g_critical_sec_counter++; - } -} - -void rda_critical_sec_end(void) -{ - if (__get_IPSR() == 0U) { - g_critical_sec_counter--; - if (0U == g_critical_sec_counter) { -#if defined(CONFIG_DISABLE_ALL_INT) - __set_PRIMASK(g_critical_ctxt_saved); -#else /* CONFIG_DISABLE_ALL_INT */ - __set_BASEPRI(CRI_SEC_END_PRI_LEVEL); -#endif /* CONFIG_DISABLE_ALL_INT */ - } - } -} - -unsigned int rda_critical_sec_counter_get(void) -{ - if (__get_IPSR() == 0U) { - return g_critical_sec_counter; - } else { - return 0xFFFFFFFF; - } -} - -void rda_critical_sec_start_resume(unsigned int cnt) -{ - unsigned int i = 0; - for(i=0; inext) { - /* Read enough bytes to fill this pbuf in the chain. The - * available data in the pbuf is given by the q->len - * variable. - * This does not necessarily have to be a memcpy, you can also preallocate - * pbufs for a DMA-enabled MAC and after receiving truncate it to the - * actually received size. In this case, ensure the tot_len member of the - * pbuf is the sum of the chained pbuf len members. - */ - /* load rx data from 96 to local mem_pool */ - MEMCPY(q->payload, &data[index], q->len); - index += q->len; - - if (index >= len) { - break; - } - } - -#if ETH_PAD_SIZE - pbuf_header(p, ETH_PAD_SIZE); /* reclaim the padding word */ -#endif - - LINK_STATS_INC(link.recv); - } else { - /* Drop this packet */ - LWIP_DEBUGF(NETIF_DEBUG, ("low_level_input pbuf_alloc fail, rxlen:%d\n", len)); - LINK_STATS_INC(link.memerr); - LINK_STATS_INC(link.drop); - - return NULL; - } - - return p; -} - -/** \brief Attempt to read a packet from the EMAC interface. - * - * \param[in] netif the lwip network interface structure - * \param[in] idx index of packet to be read - */ -void r91h_wifiif_input(struct netif *netif, u8_t *data, u32_t len, int idx) -{ - rda_msg msg; - msg.type = 0; - msg.arg1 = (int)data; - msg.arg2 = len; - rda_mail_put(packet_rx_queue, (void*)&msg, 0); - return; -} - -/** \brief Low level init of the MAC and PHY. - * - * \param[in] netif Pointer to LWIP netif structure - */ - -static err_t low_level_init(struct netif *netif) -{ - static int init_flag = 0; - if (init_flag == 0) { - wland_reg_func(); - init_flag = 1; - } - return ERR_OK; -} - -/** - * This function is the ethernet packet send function. It calls - * etharp_output after checking link status. - * - * \param[in] netif the lwip network interface structure for this enetif - * \param[in] q Pointer to pbug to send - * \param[in] ipaddr IP address - * \return ERR_OK or error code - */ -err_t rda91h_etharp_output(struct netif *netif, struct pbuf *q, const ip_addr_t *ipaddr) -{ - /* Only send packet is link is up */ - if (netif->flags & NETIF_FLAG_LINK_UP) - return etharp_output(netif, q, ipaddr); - - return ERR_CONN; -} - -/** \brief Low level output of a packet. Never call this from an - * interrupt context, as it may block until TX descriptors - * become available. - * - * \param[in] netif the lwip network interface structure for this netif - * \param[in] p the MAC packet to send (e.g. IP packet including MAC addresses and type) - * \return ERR_OK if the packet could be sent or an err_t value if the packet couldn't be sent - */ -static err_t rda91h_low_level_output(struct netif *netif, struct pbuf *p) -{ - struct pbuf *q; - - /* rda5996 initiate transfer */ - u32_t actual_txlen = 0; - u8_t **data; - LWIP_DEBUGF(NETIF_DEBUG, ("low_level_output enter, p:%08x\n", p)); - -#if ETH_PAD_SIZE - pbuf_header(p, -ETH_PAD_SIZE); /* drop the padding word */ -#endif - - data = (void*)wland_get_databuf(); - - if(data == NULL){ - LWIP_DEBUGF(NETIF_DEBUG, ("rda91h_low_level_output, no PKT buf\r\n")); - return ERR_BUF; - } - - for(q = p; q != NULL; q = q->next) - { - /* Send the data from the pbuf to the interface, one pbuf at a - time. The size of the data in each pbuf is kept in the ->len - variable. */ - MEMCPY(&((*data)[actual_txlen+2]), q->payload, q->len);//reserve wid header length - actual_txlen += q->len; - if(actual_txlen > 1514 || actual_txlen > p->tot_len) - { - LWIP_DEBUGF(NETIF_DEBUG, ("low_level_output err, actual_txlen:%d, tot_len%d\n", - actual_txlen, p->tot_len)); - return ERR_BUF; - } - } - - /* Signal rda5996 that packet should be sent */ - if(actual_txlen == p->tot_len) - { - if(netif->name[0] == 's' && netif->name[1] == 't') { - wland_txip_data((void*)data, actual_txlen, 0); - } else if(netif->name[0] == 'a' && netif->name[1] == 'p') { - wland_txip_data((void*)data, actual_txlen, 1); - } - -#if ETH_PAD_SIZE - pbuf_header(p, ETH_PAD_SIZE); /* reclaim the padding word */ -#endif - - LINK_STATS_INC(link.xmit); - - return ERR_OK; - } - - LWIP_DEBUGF(NETIF_DEBUG, ("low_level_output pkt len mismatch, actual_txlen:%d, tot_len%d\n", - actual_txlen, p->tot_len)); - - - return ERR_BUF; -} - -/** - * Should be called at the beginning of the program to set up the - * network interface. - * - * This function should be passed as a parameter to netif_add(). - * - * @param[in] netif the lwip network interface structure for this netif - * @return ERR_OK if the loopif is initialized - * ERR_MEM if private data couldn't be allocated - * any other err_t on error - */ -err_t wifi_arch_enetif_init(struct netif *netif) -{ - err_t err; - static int thread_init_flag = 0; - LWIP_ASSERT("netif != NULL", (netif != NULL)); - - if (*((int *)netif->state) == 0) { - r91h_wifidata.netif_sta = netif; - netif->name[0] = 's'; - netif->name[1] = 't'; -#if LWIP_NETIF_HOSTNAME - /* Initialize interface hostname */ - if(netif->hostname == NULL) - netif->hostname = "lwipr91h_sta"; -#endif /* LWIP_NETIF_HOSTNAME */ - rda_get_macaddr((u8_t *)(netif->hwaddr), 0); - } else if(*((int *)netif->state) == 1) { - r91h_wifidata.netif_ap = netif; - netif->name[0] = 'a'; - netif->name[1] = 'p'; -#if LWIP_NETIF_HOSTNAME - /* Initialize interface hostname */ - if(netif->hostname == NULL) - netif->hostname = "lwipr91h_ap"; -#endif /* LWIP_NETIF_HOSTNAME */ - rda_get_macaddr((u8_t *)(netif->hwaddr), 1); - } - - netif->hwaddr_len = ETHARP_HWADDR_LEN; - - /* maximum transfer unit */ - netif->mtu = 1500; - - /* device capabilities */ - // TODOETH: check if the flags are correct below - netif->flags = NETIF_FLAG_BROADCAST | NETIF_FLAG_ETHARP | NETIF_FLAG_ETHERNET | NETIF_FLAG_IGMP; - - /* Initialize the hardware */ - netif->state = &r91h_wifidata; - err = low_level_init(netif); - if (err != ERR_OK) - return err; - - netif->output = rda91h_etharp_output; - netif->linkoutput = rda91h_low_level_output; - if(thread_init_flag == 0){ - /* PHY monitoring task */ - sys_thread_new("maclib_thread", maclib_task, netif->state, DEFAULT_THREAD_STACKSIZE*8, PHY_PRIORITY); - sys_thread_new("wland_thread", wland_task, NULL, DEFAULT_THREAD_STACKSIZE*5, PHY_PRIORITY); - /* Allow the PHY task to detect the initial link state and set up the proper flags */ - osDelay(10); - thread_init_flag = 1; - } - return ERR_OK; -} - -unsigned char rda_mac_addr[6] = "\0"; -static int is_available_mac_addr(unsigned char *mac_addr) -{ - if (mac_addr[0]==0 && mac_addr[1]==0 && mac_addr[2]==0 && - mac_addr[3]==0 && mac_addr[4]==0 && mac_addr[5]==0) - return 0; - if (mac_addr[0]&0x1) - return 0; - return 1; -} -static void rda_get_macaddr_from_flash(unsigned char *macaddr) -{ - int ret; - if (!mac_is_valid((char *)rda_mac_addr)) { - ret = rda5981_flash_read_mac_addr(rda_mac_addr); - if ((ret!=0) || (is_available_mac_addr(rda_mac_addr)==0)) { -#if defined(MBEDTLS_ENTROPY_HARDWARE_ALT) - unsigned int out_len; - ret = mbedtls_hardware_poll(NULL, rda_mac_addr, 6, &out_len); - if (6 != out_len) { - LWIP_DEBUGF(NETIF_DEBUG, ("out_len err:%d\n", out_len)); - } -#else - ret = rda_trng_get_bytes(rda_mac_addr, 6); -#endif - rda_mac_addr[0] &= 0xfe; /* clear multicast bit */ - rda_mac_addr[0] |= 0x02; /* set local assignment bit (IEEE802) */ - rda5981_flash_write_mac_addr(rda_mac_addr); - } - } - memcpy(macaddr, rda_mac_addr, 6); -} -void mbed_mac_address(char *mac) -{ - mac[0] = 0xD6; - mac[1] = 0x71; - mac[2] = 0x36; - mac[3] = 0x60; - mac[4] = 0xD8; -#if !MBED_CONF_APP_ECHO_SERVER - mac[5] = 0xF4; -#else - mac[5] = 0xF3; -#endif - return; -} diff --git a/connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/src/rda_sys_wrapper.c b/connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/src/rda_sys_wrapper.c deleted file mode 100644 index 07781ffc0c1..00000000000 --- a/connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/src/rda_sys_wrapper.c +++ /dev/null @@ -1,453 +0,0 @@ -/* Copyright (c) 2019 Unisoc Communications Inc. - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#if 1 -#include "sys_arch.h" -#include "cmsis_os.h" -#include "cmsis_os2.h" -#include "lwip/sys.h" -#include "rtx_lib.h" - -#include -#include -#include "mbed_assert.h" -#define NO_ERR 0 -#define ERR -1 - -//#define RDA_SYS_DEBUG -#ifdef RDA_SYS_DEBUG -#define RDA_SYS_PRINT(fmt, ...) do {\ - printf(fmt, ##__VA_ARGS__);\ - } while (0) -#else -#define RDA_SYS_PRINT(fmt, ...) -#endif - - -/* Alarm */ -// Timer definitions -#define osTimerInvalid 0 -#define osTimerStopped 1 -#define osTimerRunning 2 -#if 0 -// Timer structures, same as os_timer_cb(rt_CMSIS.c) -typedef struct rda_ostmr_cb { - struct rda_ostmr_cb *next; // Pointer to next active Timer - uint8_t state; // Timer State - uint8_t type; // Timer Type (Periodic/One-shot) - uint16_t reserved; // Reserved - uint32_t tcnt; // Timer Delay Count - uint32_t icnt; // Timer Initial Count - void *arg; // Timer Function Argument - const osTimerDef_t *timer; // Pointer to Timer definition -} rda_ostmr_cb_t; -#endif -//#define USING_STDLIB - -#if !defined(USING_STDLIB) -typedef struct rda_tmr_node { - mbed_rtos_storage_timer_t _obj_mem; -} rda_tmr_node_t; - -typedef struct rda_tmr_ctrl { - unsigned char *buff; - unsigned char *state; - unsigned char max_node_num; - unsigned char node_size; - unsigned char node_cntr; - unsigned char last_freed_node_idx; -} rda_tmr_ctrl_t; - -#define MAX_ALARM_NUM (28) -#define WORD_ALIGN(n) (((n) + 0x03UL) & ~0x03UL) -#define MAX_ALARM_STAT_SIZE WORD_ALIGN(MAX_ALARM_NUM >> 3) -#define MAX_ALARM_MEM_SIZE (MAX_ALARM_NUM * WORD_ALIGN(sizeof(mbed_rtos_storage_timer_t)) + MAX_ALARM_STAT_SIZE) - -unsigned long g_alarm_buf[WORD_ALIGN(MAX_ALARM_MEM_SIZE) >> 2] = {0}; -rda_tmr_ctrl_t g_alarm_ctrl = { - (unsigned char *)g_alarm_buf + MAX_ALARM_STAT_SIZE, - (unsigned char *)g_alarm_buf, - MAX_ALARM_NUM, - WORD_ALIGN(sizeof(mbed_rtos_storage_timer_t)), - 0U, - 0U -}; - -__STATIC_INLINE unsigned char get_node_state(unsigned char *buf, unsigned char idx) -{ - unsigned char state, ofst; - ofst = (idx & 0x07U); - buf += (idx >> 3); - state = (*buf >> ofst) & 0x01U; - return state; -} - -__STATIC_INLINE void set_node_state(unsigned char *buf, unsigned char idx, unsigned char state) -{ - unsigned char ofst, tmp; - ofst = (idx & 0x07U); - buf += (idx >> 3); - tmp = *buf & (~(0x01U << ofst)); - *buf = tmp | (((state & 0x01U) << ofst)); -} - -static rda_tmr_node_t *get_tmr_node(void) -{ - rda_tmr_node_t *node = NULL; - unsigned char idx = g_alarm_ctrl.last_freed_node_idx; - if ((idx < g_alarm_ctrl.max_node_num) && (0U == get_node_state(g_alarm_ctrl.state, idx))) { - set_node_state(g_alarm_ctrl.state, idx, 1U); - node = (rda_tmr_node_t *)(g_alarm_ctrl.buff + idx * g_alarm_ctrl.node_size); - g_alarm_ctrl.node_cntr++; - } else { - for (idx = 0U; idx < g_alarm_ctrl.max_node_num; idx++) { - if(0U == get_node_state(g_alarm_ctrl.state, idx)) { - set_node_state(g_alarm_ctrl.state, idx, 1U); - node = (rda_tmr_node_t *)(g_alarm_ctrl.buff + idx * g_alarm_ctrl.node_size); - g_alarm_ctrl.node_cntr++; - break; - } - } - } - return node; -} - -static void put_tmr_node(rda_tmr_node_t *node) -{ - unsigned char *node_buf = (unsigned char *)node; - unsigned char idx = (node_buf - g_alarm_ctrl.buff) / g_alarm_ctrl.node_size; - if ((node_buf > g_alarm_ctrl.buff) && (idx < g_alarm_ctrl.max_node_num) && - (1U == get_node_state(g_alarm_ctrl.state, idx))) { - set_node_state(g_alarm_ctrl.state, idx, 0U); - g_alarm_ctrl.node_cntr--; - g_alarm_ctrl.last_freed_node_idx = idx; - } -} -#endif /* !USING_STDLIB */ - -/** - * @brief : get current time in units of micro second - * @param[in] : - * @param[out]: - * @return : return time value with uint32 type - */ -unsigned long rda_get_cur_time_ms(void) -{ - return sys_now(); -} - -/** - * @brief : create an alarm with given function, return timer handle - * @param[in] : func(callback)/data(pass to func)/mode(once or periodic) - * @param[out]: - * @return : return timer handle, a pointer to the timer structure, non-zero is valid - */ -void * rda_alarm_create_v2(void *func, unsigned int data, unsigned int mode) -{ - osTimerId_t handle; - mbed_rtos_storage_timer_t* _obj_mem = NULL; - MBED_ASSERT(func != NULL); - osTimerAttr_t attr = { 0 }; -#if defined(USING_STDLIB) - _obj_mem = (mbed_rtos_storage_timer_t*)malloc(sizeof(mbed_rtos_storage_timer_t)); -#else /* USING_STDLIB */ - _obj_mem = (mbed_rtos_storage_timer_t*)get_tmr_node(); -#endif /* USING_STDLIB */ - MBED_ASSERT(_obj_mem != NULL); - memset(_obj_mem, 0, sizeof(_obj_mem)); - attr.cb_mem = _obj_mem; - attr.cb_size = sizeof(mbed_rtos_storage_timer_t); - //printf("hehehehe fun %p\r\n", func); - handle = osTimerNew((osTimerFunc_t)func, mode, (void *)data, &attr); - //printf("time cb %p handle %p\r\n", _obj_mem, handle); - MBED_ASSERT(handle != NULL); - return handle; -} - -void * rda_alarm_create(void *func, unsigned int data) -{ - return rda_alarm_create_v2(func, data, osTimerOnce); -} - -/** - * @brief : delete an alarm with given handle, then reset the handle - * @param[in] : *handle(pointer to the timer structure) - * @param[out]: **handle(address of the handle variable) - * @return : - */ -int rda_alarm_delete(void **handle) -{ - if (NULL != *handle) { - osTimerId timer_id = (osTimerId)(*handle); - osStatus retval = osTimerDelete(timer_id); - if (osOK == retval) { -#if defined(USING_STDLIB) - free(timer_id); -#else /* USING_STDLIB */ - put_tmr_node((rda_tmr_node_t *)timer_id); -#endif /* USING_STDLIB */ - *handle = NULL; - } else { - RDA_SYS_PRINT("Delete alarm error: %d\r\n", retval); - return ERR; - } - return NO_ERR; - } - return ERR; -} - -/** - * @brief : start an alarm, raise a function call after given timeout delay - * @param[in] : handle(pointer to the timer structure)/timeout(micro second) - * @param[out]: - * @return : - */ -int rda_alarm_start(void *handle, unsigned int timeout_ms) -{ - if (NULL != handle) { - osTimerId timer_id = (osTimerId)handle; - osStatus retval = osTimerStart(timer_id, (uint32_t)timeout_ms); - if (osOK != retval) { - RDA_SYS_PRINT("Start alarm error: %d\r\n", retval); - return ERR; - } - return NO_ERR; - } - return ERR; -} - -/** - * @brief : stop an alarm, will not raise a function call any more - * @param[in] : handle(pointer to the timer structure) - * @param[out]: - * @return : - */ -int rda_alarm_stop(void *handle) -{ - if (NULL != handle) { - osTimerId timer_id = (osTimerId)handle; - os_timer_t *timer = osRtxTimerId(timer_id); - if(timer->state == osRtxTimerRunning){ - osStatus retval = osTimerStop(timer_id); - if(osOK != retval) { - RDA_SYS_PRINT("Stop alarm error: %d\r\n", retval); - return ERR; - } - } - return NO_ERR; - } - return ERR; -} - - - -/* Semaphore */ -void* rda_sem_create(unsigned int count) -{ - osSemaphoreId_t sem; - mbed_rtos_storage_semaphore_t *_obj_mem = (mbed_rtos_storage_semaphore_t*)malloc(sizeof(mbed_rtos_storage_semaphore_t)); - osSemaphoreAttr_t attr = { 0 }; - attr.name = "rda_unnamed_sem"; - attr.cb_mem = _obj_mem; - attr.cb_size = sizeof(mbed_rtos_storage_semaphore_t); - sem = osSemaphoreNew(1, count, &attr); - MBED_ASSERT(sem != NULL); - - return (void*)sem; -} - -int rda_sem_wait(void* sem, unsigned int millisec) -{ - int res; - - res = osSemaphoreWait(sem, millisec); - if (res > 0) { - return NO_ERR; - } else { - RDA_SYS_PRINT("rda_sem_wait error %d\r\n", res); - return ERR; - } -} - -int rda_sem_release(void *sem) -{ - int res; - - res = osSemaphoreRelease(sem); - if (res == 0) { - return NO_ERR; - } else { - RDA_SYS_PRINT("rda_sem_release error %d\r\n", res); - return ERR; - } -} - -int rda_sem_delete(void *sem) -{ - int res; - - res = osSemaphoreDelete(sem); - free(sem); - if (res == 0) { - return NO_ERR; - } else { - RDA_SYS_PRINT("rda_sem_delete error %d\r\n", res); - return ERR; - } -} - -/* Mail */ -void* rda_mail_create(unsigned int msgcnt, unsigned int msgsize) -{ - unsigned int mq_size = msgcnt * (msgsize + sizeof(os_message_t)); - osMessageQueueId_t msgq; - mbed_rtos_storage_msg_queue_t *_obj_mem = (mbed_rtos_storage_msg_queue_t*)malloc(sizeof(mbed_rtos_storage_msg_queue_t)); - MBED_ASSERT(_obj_mem != NULL); - memset(_obj_mem, 0, sizeof(mbed_rtos_storage_msg_queue_t)); - void *_mq_mem = (void *)malloc(mq_size); - MBED_ASSERT(_mq_mem != NULL); - memset(_mq_mem, 0, mq_size); - osMessageQueueAttr_t attr = { 0 }; - attr.name = "rda_unnamed_message_queue"; - attr.cb_mem = _obj_mem; - attr.cb_size = sizeof(mbed_rtos_storage_msg_queue_t); - attr.mq_mem = _mq_mem; - attr.mq_size = mq_size; - msgq = osMessageQueueNew(msgcnt, msgsize, &attr); - MBED_ASSERT(msgq != NULL); - - return (void*)msgq; -} - -int rda_mail_get(void *msgq, void *msg, unsigned int wait) -{ - int ret; - ret = osMessageQueueGet(msgq, msg, 0, wait); - return ret; -} - -int rda_mail_put(void *msgq, void *msg, unsigned int wait) -{ - int ret; - ret = osMessageQueuePut(msgq, msg, 0, wait); - return ret; -} - -/* Mutex */ -void* rda_mutex_create(void) -{ - osMutexId_t rdamutex; - osMutexAttr_t attr = { 0 }; - mbed_rtos_storage_mutex_t *_obj_mem = (mbed_rtos_storage_mutex_t *)malloc(sizeof(mbed_rtos_storage_mutex_t)); - memset(_obj_mem, 0, sizeof(mbed_rtos_storage_mutex_t)); - attr.name = "rda_unnamed_mutex"; - attr.cb_mem = _obj_mem; - attr.cb_size = sizeof(mbed_rtos_storage_mutex_t); - attr.attr_bits = osMutexRecursive | osMutexPrioInherit | osMutexRobust; - rdamutex = osMutexNew(&attr); - MBED_ASSERT(rdamutex != NULL); - return (void *)rdamutex; -} - -int rda_mutex_wait(void *rdamutex, unsigned int millisec) -{ - osMutexId_t mutex = (osMutexId_t)rdamutex; - osStatus res; - res = osMutexWait(mutex, millisec); - if (res == osOK) { - return NO_ERR; - } else { - return ERR; - } -} - -int rda_mutex_realease(void *rdamutex) -{ - osMutexId_t mutex = (osMutexId_t)rdamutex; - osStatus res; - res = osMutexRelease(mutex); - if(res == osOK) { - return NO_ERR; - } else { - return ERR; - } -} - -int rda_mutex_delete(void *rdamutex) -{ - osMutexId_t mutex = (osMutexId_t)rdamutex; - osStatus res; - res = osMutexDelete(mutex); - free(mutex); - if (res == osOK) { - return NO_ERR; - } else { - return ERR; - } -} - -/* Thread */ -void* rda_thread_new(const char *pcName, - void (*thread)(void *arg), - void *arg, int stacksize, int priority) -{ - osThreadId_t id; - osThreadAttr_t _attr = { 0 }; - mbed_rtos_storage_thread_t *_obj_mem = (mbed_rtos_storage_thread_t *)malloc(sizeof(mbed_rtos_storage_thread_t)); - MBED_ASSERT(_obj_mem != NULL); - memset(_obj_mem, 0, sizeof(mbed_rtos_storage_thread_t)); - _attr.priority = priority; - _attr.stack_size = stacksize; - _attr.name = pcName ? pcName : "rda_unnamed_thread"; - _attr.stack_mem = malloc(stacksize); - MBED_ASSERT(_attr.stack_mem != NULL); - _attr.cb_size = sizeof(mbed_rtos_storage_thread_t); - _attr.cb_mem = _obj_mem; - _attr.tz_module = 0; - - //Fill the stack with a magic word for maximum usage checking - for (uint32_t i = 0; i < (_attr.stack_size / sizeof(uint32_t)); i++) { - ((uint32_t *)_attr.stack_mem)[i] = 0xE25A2EA5; - } - id = osThreadNew(thread, arg, &_attr); - if (id == NULL){ - free(_attr.stack_mem); - free(_attr.cb_mem); - RDA_SYS_PRINT("sys_thread_new create error\n"); - return NULL; - } - return (void *)id; -} - -int rda_thread_delete(void* id) -{ - osStatus ret; - unsigned int *stk = ((osRtxThread_t *)id)->stack_mem; - ret = osThreadTerminate(id); - free(id); - free(stk); - if (ret != osOK) { - return ERR; - } - return NO_ERR; -} - -void* rda_thread_get_id(void) -{ - osThreadId id = osThreadGetId(); - return (void*)id; -} -#endif diff --git a/connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/src/wland_flash.c b/connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/src/wland_flash.c deleted file mode 100644 index a2c0cd8ffac..00000000000 --- a/connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/src/wland_flash.c +++ /dev/null @@ -1,1481 +0,0 @@ -/* Copyright (c) 2019 Unisoc Communications Inc. - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include -#include -#include -#include "critical.h" -#include "wland_flash.h" -#include "wland_dbg.h" -#include "rda5981_flash.h" -#include "wland_flash_wp.h" - -#define MACDBG "%02x:%02x:%02x:%02x:%02x:%02x" -#define MAC2STRDBG(ea) (ea)[0], (ea)[1], (ea)[2], (ea)[3], (ea)[4], (ea)[5] - -u32 flash_size = FLASH_SIZE; -static u32 user_data_location = RDA5991H_USER_DATA_ADDR; -static u32 third_parter_data_location = RDA5991H_3RDPARTER_DATA_ADDR; -static u32 third_parter_data_len = RDA5991H_3RDPARTER_DATA_LEN; -int rda5981_read_flash(u32 addr, char *buf, u32 len) -{ - int ret = 0; - char *temp_buf = NULL, *temp_buf_aligned; - - addr &= (flash_size -1); - if (addr < RDA5991H_PARTITION_TABLE_END_ADDR-0x18000000) { - WLAND_DBG(ERROR, "couldn't read system data\n"); - return -1; - } - - if ((u32)buf % 4) { - temp_buf = malloc(len + 3); - if (temp_buf == NULL) { - ret = -1; - goto out; - } - if ((u32)temp_buf % 4) { - temp_buf_aligned = temp_buf + (4-(u32)temp_buf%4); - } else { - temp_buf_aligned = temp_buf; - } - } else { - temp_buf_aligned = buf; - } - - core_util_critical_section_enter(); - spi_flash_flush_cache(); - SPI_FLASH_READ_DATA_FOR_MBED((void *)addr, temp_buf_aligned, len); - core_util_critical_section_exit(); - - if (temp_buf_aligned != buf) { - memcpy(buf, temp_buf_aligned, len); - } - -out: - if (temp_buf) { - free(temp_buf); - } - - return ret; -} - -void rda5981_spi_flash_erase_64KB_block(u32 addr) -{ - if (rda_ccfg_hwver() < 4) { - spi_wip_reset_2(); - spi_write_reset_2(); - WRITE_REG32(FLASH_CTL_TX_CMD_ADDR_REG, CMD_64KB_BLOCK_ERASE | (addr<<8)); - wait_busy_down_2(); - spi_wip_reset_2(); - } else { - spi_wip_reset_4(); - spi_write_reset_4(); - WRITE_REG32(FLASH_CTL_TX_CMD_ADDR_REG, CMD_64KB_BLOCK_ERASE | (addr<<8)); - wait_busy_down_4(); - spi_wip_reset_4(); - } -} -void rda5981_spi_erase_partition(void *src, u32 counts) -{ - u32 a4k, a64k, a64kend, a4kend, atmp; - - if (counts > 0x00) { - a4k = ((u32)src ) & (~((0x01UL << 12) - 0x01UL)); - a64k = ((u32)src + (0x01UL << 16) - 0x01UL) & (~((0x01UL << 16) - 0x01UL)); - a64kend = ((u32)src + counts ) & (~((0x01UL << 16) - 0x01UL)); - a4kend = ((u32)src + counts + (0x01UL << 12) - 0x01UL) & (~((0x01UL << 12) - 0x01UL)); - - for (atmp = a4k; atmp < a4kend; atmp += (0x01UL << 12)) { - if (a64kend > a64k) { - if (atmp == a64k) { - for (; atmp < a64kend; atmp += (0x01UL << 16)) { - core_util_critical_section_enter(); - rda5981_spi_flash_erase_64KB_block(atmp); - core_util_critical_section_exit(); - } - if (atmp == a4kend) { - break; - } - } - } - core_util_critical_section_enter(); - rda5981_spi_flash_erase_4KB_sector(atmp); - core_util_critical_section_exit(); - } - } -} -//@len must be 4k aligment -int rda5981_erase_flash(u32 addr, u32 len) -{ - WLAND_DBG(INFO, "erase flash :%x:%x\n", addr, len); - - addr &= (flash_size - 1); - if (addr < RDA5991H_PARTITION_TABLE_END_ADDR-0x18000000) { - WLAND_DBG(ERROR, "couldn't erase system data\n"); - return -1; - } - - if (len & (SECTOR_SIZE-1)) { - len = ((len+SECTOR_SIZE) & (~(SECTOR_SIZE-1))); - } - flash_wrtie_protect(addr); - rda5981_spi_erase_partition((void*)addr, len); - flash_wrtie_protect_all(); - return 0; -} - -//@len must be 256 aligment -int rda5981_write_flash(u32 addr, char *buf, u32 len) -{ - int ret = 0; - u8 *temp_buf = NULL, *temp_buf_aligned; - u8 *check_buf = NULL; - - addr &= (flash_size -1); - if (addr < RDA5991H_PARTITION_TABLE_END_ADDR-0x18000000) { - WLAND_DBG(ERROR, "couldn't write system data\n"); - return -1; - } - - if ((u32)buf % 4) { - temp_buf = malloc(len + 3); - if (temp_buf == NULL) { - goto out; - } - if ((u32)temp_buf % 4) { - temp_buf_aligned = temp_buf + (4-(u32)temp_buf%4); - } else { - temp_buf_aligned = temp_buf; - } - memcpy(temp_buf_aligned, buf, len); - } else { - temp_buf_aligned = (u8*)buf; - } - flash_wrtie_protect(addr); - core_util_critical_section_enter(); - //RDA5991H_ERASE_FLASH(addr, len); - RDA5991H_WRITE_FLASH(addr, temp_buf_aligned, len); - core_util_critical_section_exit(); - flash_wrtie_protect_all(); - -#ifdef FLASH_READ_CHECK - if (ret == 0) { - check_buf = malloc(len); - rda5981_read_flash(addr, check_buf, len); - if (memcmp(buf, check_buf, len) == 0) { - ret = 0; - } else { - ret = -1; - } - } -#endif /*FLASH_READ_CHECK*/ - -out: - if (temp_buf) { - free(temp_buf); - } - if (check_buf) { - free(check_buf); - } - return ret; -} - -/* - * return 0:ok, else:error. - */ -rda5991h_user_data wland_user_data; -u8 read_flag = 0; -int rda5981_write_user_data(u8 *data, u16 len, u32 flag) -{ - WLAND_DBG(INFO, "Enter, flag:0x%x\r\n", flag); - - if (!read_flag) { - if (0 == rda5981_read_flash(user_data_location, - (char *)(&wland_user_data), sizeof(wland_user_data))) { - read_flag = 1; - } else { - return -1; - } - } - - if ((wland_user_data.flag & RDA5991H_USER_DATA_FLAG_UNINITIALIZED) || - strcmp((const char *)(wland_user_data.rda5981_flag), RDA5981_FLAG_FLAG)) { - memset(&wland_user_data, 0xff, sizeof(wland_user_data)); - wland_user_data.flag = flag; - strcpy((char *)(wland_user_data.rda5981_flag), RDA5981_FLAG_FLAG); - } - - wland_user_data.flag |= flag; - - switch (flag) { - case RDA5991H_USER_DATA_FLAG_STA: - memcpy(&wland_user_data.sta_data, data, - min(sizeof(wland_user_data.sta_data), len)); - break; - case RDA5991H_USER_DATA_FLAG_MAC: - memcpy(wland_user_data.mac_addr, data, - min(sizeof(wland_user_data.mac_addr), len)); - break; - case RDA5991H_USER_DATA_FLAG_PMK: - memcpy(wland_user_data.pmk, data, - min(sizeof(wland_user_data.pmk), len)); - break; - case RDA5991H_USER_DATA_FLAG_IP: - memcpy(wland_user_data.ip, data, - min(RDA5991H_USER_DATA_IP_LENGTH, len)); - break; - case RDA5991H_USER_DATA_FLAG_PARTER_DATA_LEN: - memcpy(&wland_user_data.parter_data_len, data, - min(sizeof(wland_user_data.parter_data_len), len)); - break; - case RDA5991H_USER_DATA_FLAG_TX_POWER: - memcpy(&wland_user_data.tx_power, data, - min(sizeof(wland_user_data.tx_power), len)); - break; - case RDA5991H_USER_DATA_FLAG_XTAL_CAL: - memcpy(&wland_user_data.xtal_cal, data, - min(sizeof(wland_user_data.xtal_cal), len)); - break; - case RDA5991H_USER_DATA_FLAG_TX_POWER_RF: - memcpy(&wland_user_data.tx_power_rf, data, - min(sizeof(wland_user_data.tx_power_rf), len)); - break; - case RDA5991H_USER_DATA_FLAG_TX_POWER_PHY_GN: - memcpy(&wland_user_data.tx_power_phy_gn, data, - min(sizeof(wland_user_data.tx_power_phy_gn), len)); - break; - case RDA5991H_USER_DATA_FLAG_TX_POWER_PHY_B: - memcpy(&wland_user_data.tx_power_phy_b, data, - min(sizeof(wland_user_data.tx_power_phy_b), len)); - break; - case RDA5991H_USER_DATA_FLAG_AP: - memcpy(&wland_user_data.ap_data, data, - min(sizeof(wland_user_data.ap_data), len)); - break; - case RDA5991H_USER_DATA_FLAG_APNET: - memcpy(&wland_user_data.ap_net_data, data, - min(sizeof(wland_user_data.ap_net_data), len)); - break; - case RDA5991H_USER_DATA_FLAG_DHCP: - memcpy(&wland_user_data.dhcp, data, - min(sizeof(wland_user_data.dhcp), len)); - break; - case RDA5991H_USER_DATA_FLAG_UART: - memcpy(&wland_user_data.uart, data, - min(sizeof(wland_user_data.uart), len)); - break; - case RDA5991H_USER_DATA_FLAG_RF: - memcpy(&wland_user_data.rf, data, - min(sizeof(wland_user_data.rf), len)); - break; - case RDA5991H_USER_DATA_FLAG_RF_CHANNELS: - memcpy(&wland_user_data.rf_channels, data, - min(sizeof(wland_user_data.rf_channels), len)); - break; - case RDA5991H_USER_DATA_FLAG_PHY: - memcpy(&wland_user_data.phy, data, - min(sizeof(wland_user_data.phy), len)); - break; - case RDA5991H_USER_DATA_FLAG_PHY_CHANNELS: - memcpy(&wland_user_data.phy_channels, data, - min(sizeof(wland_user_data.phy_channels), len)); - break; - case RDA5991H_USER_DATA_FLAG_TX_POWER_OFFSET: - memcpy(&wland_user_data.tp_offset, data, - min(sizeof(wland_user_data.tp_offset), len)); - break; - default: - return -1; - } - rda5981_erase_flash(user_data_location, sizeof(wland_user_data)); - return rda5981_write_flash(user_data_location, - (char *)(&wland_user_data), sizeof(wland_user_data)); -} - -/* - * return 0:ok, else:error. - */ -int rda5981_erase_user_data(u32 flag) -{ - if (!read_flag) { - read_flag = 1; - rda5981_read_flash(user_data_location, - (char *)(&wland_user_data), sizeof(wland_user_data)); - } - - if (wland_user_data.flag & RDA5991H_USER_DATA_FLAG_UNINITIALIZED) {//flash init is 0xffffffff - return -1; - } - - if ((wland_user_data.flag & flag) == 0) { - return 0; - } - - wland_user_data.flag &= (~flag); - - if (wland_user_data.flag == 0) { - wland_user_data.flag = RDA5991H_USER_DATA_FLAG_UNINITIALIZED; - } - if (flag & RDA5991H_USER_DATA_FLAG_STA) { - memset(&wland_user_data.sta_data, 0xff, - sizeof(wland_user_data.sta_data)); - } - if (flag & RDA5991H_USER_DATA_FLAG_MAC) { - memset(wland_user_data.mac_addr, 0xff, - sizeof(wland_user_data.mac_addr)); - } - if (flag & RDA5991H_USER_DATA_FLAG_PMK) { - memset(wland_user_data.pmk, 0xff, - sizeof(wland_user_data.pmk)); - } - if (flag & RDA5991H_USER_DATA_FLAG_IP) { - memset(wland_user_data.ip, 0xff, - RDA5991H_USER_DATA_IP_LENGTH); - } - if (flag & RDA5991H_USER_DATA_FLAG_PARTER_DATA_LEN) { - memset(&wland_user_data.parter_data_len, 0xff, - sizeof(wland_user_data.parter_data_len)); - } - if (flag & RDA5991H_USER_DATA_FLAG_TX_POWER) { - memset(&wland_user_data.tx_power, 0xff, - sizeof(wland_user_data.tx_power)); - } - if (flag & RDA5991H_USER_DATA_FLAG_XTAL_CAL) { - memset(&wland_user_data.xtal_cal, 0xff, - sizeof(wland_user_data.xtal_cal)); - } - if (flag & RDA5991H_USER_DATA_FLAG_TX_POWER_RF) { - memset(&wland_user_data.tx_power_rf, 0xff, - sizeof(wland_user_data.tx_power_rf)); - } - if (flag & RDA5991H_USER_DATA_FLAG_TX_POWER_PHY_GN) { - memset(&wland_user_data.tx_power_phy_gn, 0xff, - sizeof(wland_user_data.tx_power_phy_gn)); - } - if (flag & RDA5991H_USER_DATA_FLAG_TX_POWER_PHY_B) { - memset(&wland_user_data.tx_power_phy_b, 0xff, - sizeof(wland_user_data.tx_power_phy_b)); - } - if (flag & RDA5991H_USER_DATA_FLAG_AP) { - memset(&wland_user_data.ap_data, 0xff, - sizeof(wland_user_data.ap_data)); - } - if (flag & RDA5991H_USER_DATA_FLAG_APNET) { - memset(&wland_user_data.ap_net_data, 0xff, - sizeof(wland_user_data.ap_net_data)); - } - if (flag & RDA5991H_USER_DATA_FLAG_DHCP) { - memset(&wland_user_data.dhcp, 0xff, - sizeof(wland_user_data.dhcp)); - } - if (flag & RDA5991H_USER_DATA_FLAG_UART) { - memset(&wland_user_data.uart, 0xff, - sizeof(wland_user_data.uart)); - } - if (flag & RDA5991H_USER_DATA_FLAG_RF) { - memset(&wland_user_data.rf, 0xff, - sizeof(wland_user_data.rf)); - } - if (flag & RDA5991H_USER_DATA_FLAG_RF_CHANNELS) { - memset(&wland_user_data.rf_channels, 0xff, - sizeof(wland_user_data.rf_channels)); - } - if (flag & RDA5991H_USER_DATA_FLAG_PHY) { - memset(&wland_user_data.phy, 0xff, - sizeof(wland_user_data.phy)); - } - if (flag & RDA5991H_USER_DATA_FLAG_PHY_CHANNELS) { - memset(&wland_user_data.phy_channels, 0xff, - sizeof(wland_user_data.phy_channels)); - } - if (flag & RDA5991H_USER_DATA_FLAG_TX_POWER_OFFSET) { - memset(&wland_user_data.tp_offset, 0xff, - sizeof(wland_user_data.tp_offset)); - } - rda5981_erase_flash(user_data_location, sizeof(wland_user_data)); - return rda5981_write_flash(user_data_location, - (char *)(&wland_user_data), sizeof(wland_user_data)); -} - -/* - * return 0:ok, else:error. - */ -int rda5981_read_user_data(u8 *data, u16 len, u32 flag) -{ - //rda5991h_user_data wland_user_data; - WLAND_DBG(INFO, "Enter, flag:0x%x\r\n", flag); - - if (!read_flag) { - read_flag = 1; - rda5981_read_flash(user_data_location, - (char *)(&wland_user_data), sizeof(wland_user_data)); - } - - if (wland_user_data.flag & RDA5991H_USER_DATA_FLAG_UNINITIALIZED) {//flash init is 0xffffffff - return -1; - } - if (strcmp((const char *)(wland_user_data.rda5981_flag), RDA5981_FLAG_FLAG)) { - return -2; - } - if ((wland_user_data.flag & flag) == 0) { - return -3; - } - switch (flag) { - case RDA5991H_USER_DATA_FLAG_STA: - memcpy(data, &wland_user_data.sta_data, - min(sizeof(wland_user_data.sta_data), len)); - break; - case RDA5991H_USER_DATA_FLAG_MAC: - memcpy(data, wland_user_data.mac_addr, - min(sizeof(wland_user_data.mac_addr), len)); - break; - case RDA5991H_USER_DATA_FLAG_PMK: - memcpy(data, wland_user_data.pmk, - min(sizeof(wland_user_data.pmk), len)); - break; - case RDA5991H_USER_DATA_FLAG_IP: - memcpy(data, wland_user_data.ip, - min(RDA5991H_USER_DATA_IP_LENGTH, len)); - break; - case RDA5991H_USER_DATA_FLAG_PARTER_DATA_LEN: - memcpy(data, &wland_user_data.parter_data_len, - min(sizeof(wland_user_data.parter_data_len), len)); - break; - case RDA5991H_USER_DATA_FLAG_TX_POWER: - memcpy(data, &wland_user_data.tx_power, - min(sizeof(wland_user_data.tx_power), len)); - break; - case RDA5991H_USER_DATA_FLAG_XTAL_CAL: - memcpy(data, &wland_user_data.xtal_cal, - min(sizeof(wland_user_data.xtal_cal), len)); - break; - case RDA5991H_USER_DATA_FLAG_TX_POWER_RF: - memcpy(data, &wland_user_data.tx_power_rf, - min(sizeof(wland_user_data.tx_power_rf), len)); - break; - case RDA5991H_USER_DATA_FLAG_TX_POWER_PHY_GN: - memcpy(data, &wland_user_data.tx_power_phy_gn, - min(sizeof(wland_user_data.tx_power_phy_gn), len)); - break; - case RDA5991H_USER_DATA_FLAG_TX_POWER_PHY_B: - memcpy(data, &wland_user_data.tx_power_phy_b, - min(sizeof(wland_user_data.tx_power_phy_b), len)); - break; - case RDA5991H_USER_DATA_FLAG_AP: - memcpy(data, &wland_user_data.ap_data, - min(sizeof(wland_user_data.ap_data), len)); - break; - case RDA5991H_USER_DATA_FLAG_APNET: - memcpy(data, &wland_user_data.ap_net_data, - min(sizeof(wland_user_data.ap_net_data), len)); - break; - case RDA5991H_USER_DATA_FLAG_DHCP: - memcpy(data, &wland_user_data.dhcp, - min(sizeof(wland_user_data.dhcp), len)); - break; - case RDA5991H_USER_DATA_FLAG_UART: - memcpy(data, &wland_user_data.uart, - min(sizeof(wland_user_data.uart), len)); - break; - case RDA5991H_USER_DATA_FLAG_RF: - memcpy(data, &wland_user_data.rf, - min(sizeof(wland_user_data.rf), len)); - break; - case RDA5991H_USER_DATA_FLAG_RF_CHANNELS: - memcpy(data, &wland_user_data.rf_channels, - min(sizeof(wland_user_data.rf_channels), len)); - break; - case RDA5991H_USER_DATA_FLAG_PHY: - memcpy(data, &wland_user_data.phy, - min(sizeof(wland_user_data.phy), len)); - break; - case RDA5991H_USER_DATA_FLAG_PHY_CHANNELS: - memcpy(data, &wland_user_data.phy_channels, - min(sizeof(wland_user_data.phy_channels), len)); - break; - case RDA5991H_USER_DATA_FLAG_TX_POWER_OFFSET: - memcpy(data, &wland_user_data.tp_offset, - min(sizeof(wland_user_data.tp_offset), len)); - break; - default: - return -1; - } - return 0; -} - -/* - * return 0:ok, else:error. - */ -int rda5981_flash_read_mac_addr(u8 *mac_addr) -{ - int ret; - WLAND_DBG(DEBUG, "Enter\r\n"); - ret = rda5981_read_user_data(mac_addr, 6, RDA5991H_USER_DATA_FLAG_MAC); - if (ret) { - WLAND_DBG(ERROR, "read mac addr from flash fail\r\n"); - } else { - WLAND_DBG(INFO, "Done(ret:%d)"MACDBG"\r\n", ret, MAC2STRDBG(mac_addr)); - } - return ret; -} - -/* - * return 0:ok, else:error. - */ -int rda5981_flash_write_mac_addr(u8 *mac_addr) -{ - WLAND_DBG(INFO, "Enter"MACDBG"\r\n", MAC2STRDBG(mac_addr)); - return rda5981_write_user_data(mac_addr, 6, RDA5991H_USER_DATA_FLAG_MAC); -} - -/* - * return 0:ok, else:error. - */ -int rda5981_flash_erase_uart(void) -{ - return rda5981_erase_user_data(RDA5991H_USER_DATA_FLAG_UART); -} - -/* - * return 0:ok, else:error. - */ -int rda5981_flash_read_uart(u32 *uart) -{ - int ret; - WLAND_DBG(DEBUG, "Enter\r\n"); - ret = rda5981_read_user_data((u8 *)uart, 4, RDA5991H_USER_DATA_FLAG_UART); - if (ret) { - WLAND_DBG(ERROR, "read uart setting from flash fail\r\n"); - } - return ret; -} - -/* - * return 0:ok, else:error. - */ -int rda5981_flash_write_uart(u32 *uart) -{ - return rda5981_write_user_data((u8 *)uart, 4, RDA5991H_USER_DATA_FLAG_UART); -} - -/* - * return 0:ok, else:error. - */ -int rda5981_flash_erase_sta_data(void) -{ - int ret; - ret = rda5981_erase_user_data(RDA5991H_USER_DATA_FLAG_PMK | - RDA5991H_USER_DATA_FLAG_STA); - return ret; -} - -/* - * return 0:ok, else:error. - */ -int rda5981_flash_read_sta_data(char *ssid, char *passwd) -{ - int ret; - wland_sta_data_t sta_data; - - WLAND_DBG(INFO, "Enter\r\n"); - - ret = rda5981_read_user_data((u8 *)&sta_data, sizeof(sta_data), RDA5991H_USER_DATA_FLAG_STA); - if (ret == 0) { - strcpy(ssid, sta_data.ssid); - strcpy(passwd, sta_data.key); - } - return ret; -} - -/* - * return 0:ok, else:error. - */ -extern u8 *rda_get_bssinfo_pmk(void); -extern u8 *rda_get_bssinfo_SSID(void); -int rda5981_flash_write_sta_data(const char *ssid, const char *passwd) -{ - int ret = 0, ret1; - wland_sta_data_t sta_data; - u8 *pbss_info_pmk = NULL, *pbss_info_SSID = NULL; - pbss_info_pmk = rda_get_bssinfo_pmk(); - pbss_info_SSID = rda_get_bssinfo_SSID(); - - WLAND_DBG(INFO, "Enter:ssid:%s,pw:%s, pmk:%02x %02x***\r\n", - ssid, passwd, pbss_info_pmk[0], pbss_info_SSID[1]); - if (strlen(ssid) == 0) { - WLAND_DBG(ERROR, "ssid is NULL\n"); - return -1; - } - - memset(&sta_data, 0xff, sizeof(sta_data)); - strcpy(sta_data.ssid, ssid); - strcpy(sta_data.key, passwd); - if (pbss_info_pmk[0] && memcmp(pbss_info_SSID, ssid, 6)==0) { - ret = rda5981_write_user_data(pbss_info_pmk, sizeof(pbss_info_pmk), RDA5991H_USER_DATA_FLAG_PMK); - } - ret1 = rda5981_write_user_data((u8 *)&sta_data, sizeof(sta_data), RDA5991H_USER_DATA_FLAG_STA); - return ret || ret1;; -} - - -/* - * return 0:ok, else:error. - */ -int rda5981_flash_erase_dhcp_data(void) -{ - int ret;//, ret1; - //WLAND_DBG(INFO, "Enter\r\n"); - ret = rda5981_erase_user_data(RDA5991H_USER_DATA_FLAG_DHCP); - //ret1 = rda5981_erase_user_data(RDA5991H_USER_DATA_FLAG_PMK); - return ret; -} - -/* - * return 0:ok, else:error. - */ -int rda5981_flash_read_dhcp_data(unsigned int *fixip, unsigned int *ip, unsigned int *msk, unsigned int *gw) -{ - int ret; - wland_dhcp_t dhcp; - - WLAND_DBG(INFO, "Enter\r\n"); - - ret = rda5981_read_user_data((u8 *)&dhcp, sizeof(dhcp), RDA5991H_USER_DATA_FLAG_DHCP); - if (ret == 0) { - *fixip = dhcp.fixip; - *ip = dhcp.ip; - *msk = dhcp.msk; - *gw = dhcp.gw; - } - return ret; -} - -/* - * return 0:ok, else:error. - */ -int rda5981_flash_write_dhcp_data(unsigned int fixip, unsigned int ip, unsigned int msk, unsigned int gw) -{ - int ret = 0; - wland_dhcp_t dhcp; - - memset(&dhcp, 0xff, sizeof(dhcp)); - dhcp.fixip = fixip; - dhcp.ip = ip; - dhcp.msk = msk; - dhcp.gw = gw; - ret = rda5981_write_user_data((u8 *)&dhcp, sizeof(dhcp), RDA5991H_USER_DATA_FLAG_DHCP); - return ret; -} - - -/* - * return 0:ok, else:error. - */ -int rda5981_flash_erase_ap_data(void) -{ - int ret; - ret = rda5981_erase_user_data(RDA5991H_USER_DATA_FLAG_AP); - return ret; -} - -/* - * return 0:ok, else:error. - */ -int rda5981_flash_write_ap_data(const char *ssid, const char *passwd, unsigned char channel) -{ - int ret = 0; - wland_ap_data_t ap_data; - - if (strlen(ssid) == 0) { - WLAND_DBG(ERROR, "ssid is NULL\n"); - return -1; - } - - memset(&ap_data, 0xff, sizeof(ap_data)); - strcpy(ap_data.ssid, ssid); - strcpy(ap_data.key, passwd); - ap_data.channel = channel; - ret = rda5981_write_user_data((u8 *)&ap_data, sizeof(ap_data), RDA5991H_USER_DATA_FLAG_AP); - return ret; -} - -/* - * return 0:ok, else:error. - */ -int rda5981_flash_read_ap_data(char *ssid, char *passwd, unsigned char *channel) -{ - int ret; - wland_ap_data_t ap_data; - - WLAND_DBG(INFO, "Enter\r\n"); - - ret = rda5981_read_user_data((u8 *)&ap_data, sizeof(ap_data), RDA5991H_USER_DATA_FLAG_AP); - if (ret == 0) { - strcpy(ssid, ap_data.ssid); - strcpy(passwd, ap_data.key); - *channel = ap_data.channel; - } - return ret; -} - -/* - * return 0:ok, else:error. - */ -int rda5981_flash_erase_ap_net_data(void) -{ - int ret; - ret = rda5981_erase_user_data(RDA5991H_USER_DATA_FLAG_APNET); - return ret; -} - -/* - * return 0:ok, else:error. - */ -int rda5981_flash_write_ap_net_data(unsigned int ip, unsigned int msk, unsigned int gw, - unsigned int dhcps, unsigned int dhcpe) -{ - int ret = 0; - wland_ap_net_data_t ap_net_data; - - WLAND_DBG(INFO, "Enter\r\n"); - - memset(&ap_net_data, 0xff, sizeof(ap_net_data)); - ap_net_data.ip = ip; - ap_net_data.msk = msk; - ap_net_data.gw = gw; - ap_net_data.dhcps = dhcps; - ap_net_data.dhcpe = dhcpe; - - ret = rda5981_write_user_data((u8 *)&ap_net_data, sizeof(ap_net_data), RDA5991H_USER_DATA_FLAG_APNET); - return ret; -} - -/* - * return 0:ok, else:error. - */ -int rda5981_flash_read_ap_net_data(unsigned int *ip, unsigned int *msk, unsigned int *gw, - unsigned int *dhcps, unsigned int *dhcpe) -{ - int ret = 0; - wland_ap_net_data_t ap_net_data; - - WLAND_DBG(INFO, "Enter\r\n"); - - ret = rda5981_read_user_data((u8 *)&ap_net_data, sizeof(ap_net_data), RDA5991H_USER_DATA_FLAG_APNET); - if (ret == 0) { - *ip = ap_net_data.ip; - *msk = ap_net_data.msk; - *gw = ap_net_data.gw; - *dhcps = ap_net_data.dhcps; - *dhcpe = ap_net_data.dhcpe; - } - return ret; -} - - -int rda5981_flash_read_pmk(u8 *pmk) -{ - WLAND_DBG(INFO, "Enter\r\n"); - return rda5981_read_user_data(pmk, 32, RDA5991H_USER_DATA_FLAG_PMK); -} - -int rda5981_flash_read_ip_addr(u8 *ip_addr, u8 *server_addr) -{ - int ret; - u8 buf[RDA5991H_USER_DATA_IP_LENGTH]; - WLAND_DBG(DEBUG, "Enter\r\n"); - ret = rda5981_read_user_data(buf, RDA5991H_USER_DATA_IP_LENGTH, RDA5991H_USER_DATA_FLAG_IP); - if (ret) { - WLAND_DBG(ERROR, "read ip addr from flash fail\r\n"); - } else { - memcpy(ip_addr, buf, 4); - memcpy(server_addr, buf+4, 4); - WLAND_DBG(INFO, "read ip:%u.%u.%u.%u\r\n", ip_addr[0], ip_addr[1], ip_addr[2], ip_addr[3]); - } - return ret; -} - -int rda5981_flash_write_ip_addr(u8 *ip_addr, u8 *server_addr) -{ - u8 buf[RDA5991H_USER_DATA_IP_LENGTH]; - WLAND_DBG(INFO, "write:%u.%u.%u.%u\r\n", ip_addr[0], ip_addr[1], ip_addr[2], ip_addr[3]); - memcpy(buf, ip_addr, 4); - memcpy(buf+4, server_addr, 4); - return rda5981_write_user_data(buf, RDA5991H_USER_DATA_IP_LENGTH, RDA5991H_USER_DATA_FLAG_IP); -} - -int rda5981_flash_read_3rdparter_data_length() -{ - int ret; - u32 data_len = 0; - - WLAND_DBG(INFO, "Enter\r\n"); - ret = rda5981_read_user_data((u8 *)(&data_len), 4, RDA5991H_USER_DATA_FLAG_PARTER_DATA_LEN); - if (ret) { - WLAND_DBG(ERROR, "read parter data length from flash fail(%d)\r\n", ret); - return -1; - } - return data_len; -} - -int rda5981_flash_read_3rdparter_data(u8 *buf, u32 buf_len) -{ - int ret; - u32 data_len = 0; - - WLAND_DBG(INFO, "Enter: %u\r\n", buf_len); - ret = rda5981_read_user_data((u8 *)(&data_len), 4, RDA5991H_USER_DATA_FLAG_PARTER_DATA_LEN); - if (ret) { - WLAND_DBG(ERROR, "read parter data length from flash fail(%d)\r\n", ret); - return -1; - } - - if (buf_len < data_len) - WLAND_DBG(ERROR, "The buf you prepared is to small(%u:%u)\r\n", buf_len, data_len); - - data_len = min(buf_len, data_len); - - ret = rda5981_read_flash(third_parter_data_location, - (char *)(buf), data_len); - if (ret) { - WLAND_DBG(ERROR, "read parter data from flash fail(%d)\r\n", ret); - return -2; - } - - return data_len; -} - -int rda5981_flash_erase_3rdparter_data() -{ - return rda5981_erase_user_data(RDA5991H_USER_DATA_FLAG_PARTER_DATA_LEN); -} - -int rda5981_flash_write_3rdparter_data(const u8 *buf, u32 buf_len) -{ - int ret; - - WLAND_DBG(INFO, "Enter: %u\r\n", buf_len); - if (buf_len > third_parter_data_len) { - WLAND_DBG(ERROR, "buf too long(%u), we have only %x flash space\r\n", - buf_len, third_parter_data_len); - return -1; - } - - rda5981_erase_flash(third_parter_data_location, buf_len); - ret = rda5981_write_flash(third_parter_data_location, - (char *)(buf), buf_len); - if (ret) { - WLAND_DBG(ERROR, "write parter data to flash fail\r\n"); - return -2; - } - - ret = rda5981_write_user_data((u8 *)(&buf_len), 4, RDA5991H_USER_DATA_FLAG_PARTER_DATA_LEN); - if (ret) { - WLAND_DBG(ERROR, "write parter data length to flash fail\r\n"); - return -3; - } - return 0; -} - -int rda5981_set_flash_size(const u32 size) -{ - - WLAND_DBG(INFO, "Enter set flash size: %x\r\n", size); - if (size == 0x100000 || - size == 0x200000 || - size == 0x400000) { - flash_size = size; - return 0; - } - - return -1; -} - -int rda5981_set_user_data_addr(const u32 sys_data_addr, - const u32 user_data_addr, const u32 user_data_len) -{ - WLAND_DBG(INFO, "Enter set userdata addr: %x:%x:%x\r\n", - sys_data_addr, user_data_addr, user_data_len); - if ((sys_data_addr&(SECTOR_SIZE-1)) || (user_data_addr&(SECTOR_SIZE-1))) { - return -1; - } - if (sys_data_addr == user_data_addr) { - return -2; - } - - if (sys_data_addr<=0x18001000 || user_data_addr<=0x18001000) { - return -3; - } - if (sys_data_addr+0x1000 > 0x18000000+flash_size) { - return -4; - } - if (user_data_addr+user_data_len > 0x18000000+flash_size) { - return -5; - } - - user_data_location = sys_data_addr; - third_parter_data_location = user_data_addr; - third_parter_data_len= user_data_len; - return 0; -} - -int rda5981_write_user_data_regs(u8 *reg, u8 *value, u32 flag) -{ - u16 reg16 = 0; - u32 reg32 = 0; - u8 idx = 0; - - if (!read_flag) { - if (0 == rda5981_read_flash(user_data_location, - (char *)(&wland_user_data), sizeof(wland_user_data))) { - read_flag = 1; - } else { - return -1; - } - } - - if ((wland_user_data.flag & RDA5991H_USER_DATA_FLAG_UNINITIALIZED) || - strcmp((const char *)(wland_user_data.rda5981_flag), RDA5981_FLAG_FLAG)) { - memset(&wland_user_data, 0xff, sizeof(wland_user_data)); - wland_user_data.flag = flag; - strcpy((char *)(wland_user_data.rda5981_flag), RDA5981_FLAG_FLAG); - } - - wland_user_data.flag |= flag; - - switch (flag) { - case RDA5991H_USER_DATA_FLAG_RF: - if (wland_user_data.rf.valid != 1) { - wland_user_data.rf.valid = 1; - wland_user_data.rf.flag = 0; - } - - reg16 = *((u16 *)reg); - if (wland_user_data.rf.flag != 0) { - for (idx = 0; idx < 8; idx++) { - if ((wland_user_data.rf.flag & BIT(idx)) && - (wland_user_data.rf.reg_val[idx][0] == reg16)) { - wland_user_data.rf.reg_val[idx][1] = *((u16 *)value); - break; - } else { - continue; - } - } - if ((8 == idx) && (0xFF == wland_user_data.rf.flag)) - return -2; - } - - if ((8 == idx) || (0 == wland_user_data.rf.flag)) { - for (idx = 0; idx < 8; idx++) { - if (!(wland_user_data.rf.flag & BIT(idx))) { - wland_user_data.rf.reg_val[idx][0] = reg16; - wland_user_data.rf.reg_val[idx][1] = *((u16 *)value); - wland_user_data.rf.flag |= BIT(idx); - break; - } else { - continue; - } - } - } - - break; - case RDA5991H_USER_DATA_FLAG_RF_CHANNELS: - if (wland_user_data.rf_channels.valid != 1) { - wland_user_data.rf_channels.valid = 1; - wland_user_data.rf_channels.flag = 0; - } - - reg16 = *((u16 *)reg); - if (wland_user_data.rf_channels.flag != 0) { - for (idx = 0; idx < 8; idx++) { - if ((wland_user_data.rf_channels.flag & BIT(idx)) && - (wland_user_data.rf_channels.reg_val[idx][0] == reg16)) { - memcpy(&wland_user_data.rf_channels.reg_val[idx][1], value, 14 * sizeof(u16)); - break; - } else { - continue; - } - } - if ((8 == idx) && (0xFF == wland_user_data.rf_channels.flag)) { - return -2; - } - } - - if ((8 == idx) || (0 == wland_user_data.rf_channels.flag)) { - for (idx = 0; idx < 8; idx++) { - if (!(wland_user_data.rf_channels.flag & BIT(idx))) { - wland_user_data.rf_channels.reg_val[idx][0] = reg16; - memcpy(&wland_user_data.rf_channels.reg_val[idx][1], value, 14 * sizeof(u16)); - wland_user_data.rf_channels.flag |= BIT(idx); - break; - } else { - continue; - } - } - } - break; - case RDA5991H_USER_DATA_FLAG_PHY: - if (wland_user_data.phy.valid != 1) { - wland_user_data.phy.valid = 1; - wland_user_data.phy.flag = 0; - } - - reg32 = *((u32 *)reg); - if (wland_user_data.phy.flag != 0) { - for (idx = 0; idx < 8; idx++) { - if ((wland_user_data.phy.flag & BIT(idx)) && - (wland_user_data.phy.reg_val[idx][0] == reg32)) { - wland_user_data.phy.reg_val[idx][1] = *((u32 *)value); - break; - } else { - continue; - } - } - if ((8 == idx) && (0xFF == wland_user_data.phy.flag)) { - return -2; - } - } - - if ((8 == idx) || (0 == wland_user_data.phy.flag)) { - for (idx = 0; idx < 8; idx++) { - if (!(wland_user_data.phy.flag & BIT(idx))) { - wland_user_data.phy.reg_val[idx][0] = reg32; - wland_user_data.phy.reg_val[idx][1] = *((u32 *)value); - wland_user_data.phy.flag |= BIT(idx); - break; - } else { - continue; - } - } - } - break; - case RDA5991H_USER_DATA_FLAG_PHY_CHANNELS: - if (wland_user_data.phy_channels.valid != 1) { - wland_user_data.phy_channels.valid = 1; - wland_user_data.phy_channels.flag = 0; - } - - reg32 = *((u32 *)reg); - if (wland_user_data.phy_channels.flag != 0) { - for (idx = 0; idx < 8; idx++) { - if ((wland_user_data.phy_channels.flag & BIT(idx)) && - (wland_user_data.phy_channels.reg_val[idx][0] == reg32)) { - memcpy(&wland_user_data.phy_channels.reg_val[idx][1], value, 14 * sizeof(u32)); - break; - } else { - continue; - } - } - if ((8 == idx) && (0xFF == wland_user_data.phy_channels.flag)) { - return -2; - } - } - - if ((8 == idx) || (0 == wland_user_data.phy_channels.flag)) { - for (idx = 0; idx < 8; idx++) { - if (!(wland_user_data.phy_channels.flag & BIT(idx))) { - wland_user_data.phy_channels.reg_val[idx][0] = reg32; - memcpy(&wland_user_data.phy_channels.reg_val[idx][1], value, 14 * sizeof(u32)); - wland_user_data.phy_channels.flag |= BIT(idx); - break; - } else { - continue; - } - } - } - break; - default: - WLAND_DBG(ERROR, "Unknown flag:0x%08x\n", flag); - return -3; - } - - rda5981_erase_flash(user_data_location, sizeof(wland_user_data)); - return rda5981_write_flash(user_data_location, - (char *)(&wland_user_data), sizeof(wland_user_data)); -} - -int rda5981_erase_user_data_regs(u8 *reg, u32 flag) -{ - u16 reg16 = 0; - u32 reg32 = 0; - u8 idx = 0; - - if (!read_flag) { - if (0 == rda5981_read_flash(user_data_location, - (char *)(&wland_user_data), sizeof(wland_user_data))) { - read_flag = 1; - } else { - return -1; - } - } - - if (wland_user_data.flag & RDA5991H_USER_DATA_FLAG_UNINITIALIZED) {//flash init is 0xffffffff - return -1; - } - if ((wland_user_data.flag & flag) == 0) { - return 0; - } - switch (flag) { - case RDA5991H_USER_DATA_FLAG_RF: - if (wland_user_data.rf.valid != 1) { - return 0; - } - - reg16 = *((u16 *)reg); - if (wland_user_data.rf.flag != 0) { - for (idx = 0; idx < 8; idx++) { - if ((wland_user_data.rf.flag & BIT(idx)) && - (wland_user_data.rf.reg_val[idx][0] == reg16)) { - memset(&wland_user_data.rf.reg_val[idx][0], 0xFF, 2 * sizeof(u16)); - wland_user_data.rf.flag &= ~BIT(idx); - break; - } else { - continue; - } - } - } - - if (0 == wland_user_data.rf.flag) { - wland_user_data.rf.valid = 0xFFFFFFFF; - wland_user_data.rf.flag = 0xFFFFFFFF; - wland_user_data.flag &= (~flag); - } - - break; - case RDA5991H_USER_DATA_FLAG_RF_CHANNELS: - if (wland_user_data.rf_channels.valid != 1) { - return 0; - } - - reg16 = *((u16 *)reg); - if (wland_user_data.rf_channels.flag != 0) { - for (idx = 0; idx < 8; idx++) { - if ((wland_user_data.rf_channels.flag & BIT(idx)) && - (wland_user_data.rf_channels.reg_val[idx][0] == reg16)) { - memset(&wland_user_data.rf_channels.reg_val[idx][0], 0xFF, 15 * sizeof(u16)); - wland_user_data.rf_channels.flag &= ~BIT(idx); - break; - } else { - continue; - } - } - } - - if (0 == wland_user_data.rf_channels.flag) { - wland_user_data.rf_channels.valid = 0xFFFFFFFF; - wland_user_data.rf_channels.flag = 0xFFFFFFFF; - wland_user_data.flag &= (~flag); - } - - break; - case RDA5991H_USER_DATA_FLAG_PHY: - if (wland_user_data.phy.valid != 1) { - return 0; - } - - reg32 = *((u32 *)reg); - if (wland_user_data.phy.flag != 0) { - for (idx = 0; idx < 8; idx++) { - if ((wland_user_data.phy.flag & BIT(idx)) && - (wland_user_data.phy.reg_val[idx][0] == reg32)) { - memset(&wland_user_data.phy.reg_val[idx][0], 0xFF, 2 * sizeof(u32)); - wland_user_data.phy.flag &= ~BIT(idx); - break; - } else { - continue; - } - } - } - - if (0 == wland_user_data.phy.flag) { - wland_user_data.phy.valid = 0xFFFFFFFF; - wland_user_data.phy.flag = 0xFFFFFFFF; - wland_user_data.flag &= (~flag); - } - - break; - case RDA5991H_USER_DATA_FLAG_PHY_CHANNELS: - if (wland_user_data.phy_channels.valid != 1) { - return 0; - } - - reg32 = *((u32 *)reg); - if (wland_user_data.phy_channels.flag != 0) { - for (idx = 0; idx < 8; idx++) { - if ((wland_user_data.phy_channels.flag & BIT(idx)) && - (wland_user_data.phy_channels.reg_val[idx][0] == reg32)) { - memset(&wland_user_data.phy_channels.reg_val[idx][0], 0xFF, 15 * sizeof(u32)); - wland_user_data.phy_channels.flag &= ~BIT(idx); - break; - } else { - continue; - } - } - } - - if (0 == wland_user_data.phy_channels.flag) { - wland_user_data.phy_channels.valid = 0xFFFFFFFF; - wland_user_data.phy_channels.flag = 0xFFFFFFFF; - wland_user_data.flag &= (~flag); - } - - break; - default: - WLAND_DBG(ERROR, "Unknown flag:0x%08x\n", flag); - return -3; - } - - rda5981_erase_flash(user_data_location, sizeof(wland_user_data)); - return rda5981_write_flash(user_data_location, - (char *)(&wland_user_data), sizeof(wland_user_data)); -} - - -int rda5981_read_user_data_regs(u8 *reg, u8 *value, u32 flag) -{ - u16 reg16 = 0; - u32 reg32 = 0; - u8 idx = 0; - - if (!read_flag) { - if(0 == rda5981_read_flash(user_data_location, - (char *)(&wland_user_data), sizeof(wland_user_data))) { - read_flag = 1; - } else { - return -1; - } - } - - if (wland_user_data.flag & RDA5991H_USER_DATA_FLAG_UNINITIALIZED) {//flash init is 0xffffffff - return -1; - } - if (strcmp((const char *)(wland_user_data.rda5981_flag), RDA5981_FLAG_FLAG)) { - return -2; - } - if ((wland_user_data.flag & flag) == 0) { - return -3; - } - switch (flag) { - case RDA5991H_USER_DATA_FLAG_RF: - if (wland_user_data.rf.valid != 1) { - return -4; - } - - reg16 = *((u16 *)reg); - for (idx = 0; idx < 8; idx++) { - if ((wland_user_data.rf.flag & BIT(idx)) && - (wland_user_data.rf.reg_val[idx][0] == reg16)) { - memcpy(value, &wland_user_data.rf.reg_val[idx][1], sizeof(u16)); - break; - } else { - continue; - } - } - - if (8 == idx) { - return -4; - } - break; - case RDA5991H_USER_DATA_FLAG_RF_CHANNELS: - if (wland_user_data.rf_channels.valid != 1) { - return -4; - } - - reg16 = *((u16 *)reg); - if (wland_user_data.rf_channels.flag != 0) { - for (idx = 0; idx < 8; idx++) { - if ((wland_user_data.rf_channels.flag & BIT(idx)) && - (wland_user_data.rf_channels.reg_val[idx][0] == reg16)) { - memcpy(value, &wland_user_data.rf_channels.reg_val[idx][1], 14 * sizeof(u16)); - break; - } else { - continue; - } - } - } - - if (8 == idx) { - return -4; - } - break; - case RDA5991H_USER_DATA_FLAG_PHY: - if (wland_user_data.phy.valid != 1) { - return -4; - } - - reg32 = *((u32 *)reg); - if (wland_user_data.phy.flag != 0) { - for (idx = 0; idx < 8; idx++) { - if ((wland_user_data.phy.flag & BIT(idx)) && - (wland_user_data.phy.reg_val[idx][0] == reg32)) { - memcpy(value, &wland_user_data.phy.reg_val[idx][1], sizeof(u32)); - break; - } else { - continue; - } - } - } - - if (8 == idx) { - return -4; - } - break; - case RDA5991H_USER_DATA_FLAG_PHY_CHANNELS: - if (wland_user_data.phy_channels.valid != 1) { - return -4; - } - - reg32 = *((u32 *)reg); - if (wland_user_data.phy_channels.flag != 0) { - for (idx = 0; idx < 8; idx++) { - if ((wland_user_data.phy_channels.flag & BIT(idx)) && - (wland_user_data.phy_channels.reg_val[idx][0] == reg32)) { - memcpy(value, &wland_user_data.phy_channels.reg_val[idx][1], 14 * sizeof(u32)); - break; - } else { - continue; - } - } - } - - if (8 == idx) { - return -4; - } - break; - default: - WLAND_DBG(ERROR, "Unknown flag:0x%08x\n", flag); - return -3; - } - - return 0; -} - -int rda5981_flash_get_mid(u8 *mid) -{ - *mid = 0xC8; - - return 0; -} - -int rda5981_flash_get_did(u8 *did) -{ - *did = 0x13; - - return 0; -} - -int rda5981_flash_get_jdid(u16 *jdid) -{ - *jdid = 0x4014; - - return 0; -} - -int rda5981_read_default_config(char *buf, u32 len, u32 flag) -{ - int ret = 0; - u32 addr; - u32 addr_offset = 0; - char *temp_buf = NULL, *temp_buf_aligned; - - switch (flag) { - case RDA5981_VBAT_CAL: - addr = 0x18000088; - break; - case RDA5981_GPADC0_CAL: - case RDA5981_GPADC1_CAL: - addr = 0x1800008C; - break; - case RDA5981_PRODUCT_ID: - addr = 0x18000084; - break; - case RDA5981_POWER_CLASS: - addr = 0x18000085; - break; - default: - WLAND_DBG(ERROR, "Unknown flag\n"); - return -1; - } - - addr_offset = addr % 4; - addr = (addr - addr_offset) & (flash_size -1); - - if (((u32)buf % 4) || (addr_offset != 0)) { - temp_buf = (char *)malloc(addr_offset + len + 4); - if (temp_buf == NULL) { - ret = -1; - goto out; - } - if ((u32)temp_buf % 4) { - temp_buf_aligned = temp_buf + (4 - (u32)temp_buf % 4); - } else { - temp_buf_aligned = temp_buf; - } - } else { - temp_buf_aligned = buf; - } - - core_util_critical_section_enter(); - spi_flash_flush_cache(); - SPI_FLASH_READ_DATA_FOR_MBED((void *)addr, temp_buf_aligned, (len + addr_offset)); - core_util_critical_section_exit(); - - if (temp_buf_aligned != buf) { - memcpy(buf, temp_buf_aligned + addr_offset, len); - } -out: - if (temp_buf) { - free(temp_buf); - } - return ret; -} - -int rda5981_flash_read_vbat_cal(float *k, float *b) -{ - int ret = 0; - u32 value = 0; - u32 x1 = 0;//y1 3.0f - u32 x2 = 0;//y2 4.2f - float k_tmp = 0; - float b_tmp = 0; - - ret = rda5981_read_default_config((char *)&value, 4, RDA5981_VBAT_CAL); - - if (ret < 0) { - WLAND_DBG(ERROR, "read vbat_cal form flash fail\n"); - return -1; - } - if ((0 == (value & 0xFFFFFUL)) || (0xFFFFFUL == (value & 0xFFFFFUL))) { - WLAND_DBG(ERROR, "invalid vbat_cal:0x%08x\n", value); - return -1; - } else { - x1 = value & 0x3FFUL; - x2 = (value >> 10) & 0x3FFUL; - } - - if (x1 == x2) { - return -1; - } - - k_tmp = (4.2f - 3.0f) / (float)(x2 - x1); - b_tmp = 4.2f - k_tmp * x2; - - *k = k_tmp; - *b = b_tmp; - - return ret; -} diff --git a/connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/src/wland_flash_wp.c b/connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/src/wland_flash_wp.c deleted file mode 100644 index 6ff01816407..00000000000 --- a/connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/src/wland_flash_wp.c +++ /dev/null @@ -1,366 +0,0 @@ -/* Copyright (c) 2019 Unisoc Communications Inc. - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "mbed_interface.h" -#include "wland_flash.h" - -//#define FLASH_PROTECT_ENABLE - -#define FLASH_CTL_REG_BASE 0x17fff000 -#define FLASH_CTL_TX_CMD_ADDR_REG (FLASH_CTL_REG_BASE + 0x00) -#define FLASH_CTL_TX_BLOCK_SIZE_REG (FLASH_CTL_REG_BASE + 0x04) -#define FLAHS_CTL_TX_FIFO_DATA_REG (FLASH_CTL_REG_BASE + 0x08) -#define FLASH_CTL_STATUS_REG (FLASH_CTL_REG_BASE + 0x0c) -#define FLAHS_CTL_RX_FIFO_DATA_REG (FLASH_CTL_REG_BASE + 0x10) - -#define WRITE_REG32(REG, VAL) ((*(volatile unsigned int*)(REG)) = (unsigned int)(VAL)) -#define WRITE_REG8(REG, VAL) ((*(volatile unsigned char*)(REG)) = (unsigned char)(VAL)) -#define MREAD_WORD(addr) *((volatile unsigned int *)(addr)) - -#define MID_GD 0xC8 -#define MID_WINBOND 0xEF - -#define FLASH_1M 0x100000 -#define FLASH_2M 0x200000 -#define FLASH_4M 0x400000 -extern unsigned int flash_size; - -#ifdef FLASH_PROTECT_ENABLE - -#define FLASH_WP_MASK 0x407c -#define FLASH_WP_NONE 0x0000 -#define FLASH_WP_ALL 0x1c - -#define FLASH_4M_WP_4K 0x0064 -#define FLASH_4M_WP_8K 0x0068 -#define FLASH_4M_WP_16K 0x006c -#define FLASH_4M_WP_32K 0x0070 -#define FLASH_4M_WP_1_64 0x0024 -#define FLASH_4M_WP_1_32 0x0028 -#define FLASH_4M_WP_1_16 0x002c -#define FLASH_4M_WP_1_8 0x0030 -#define FLASH_4M_WP_1_4 0x0034 -#define FLASH_4M_WP_1_2 0x0038 -#define FLASH_4M_WP_3_4 0x4014 -#define FLASH_4M_WP_7_8 0x4010 -#define FLASH_4M_WP_15_16 0x400c -#define FLASH_4M_WP_31_32 0x4008 -#define FLASH_4M_WP_63_64 0x4004 -#define FLASH_4M_WP_127_128 0x4058 -#define FLASH_4M_WP_255_256 0x404C -#define FLASH_4M_WP_1023_1024 0x4044 - -#define FLASH_2M_WP_4K 0x0064 -#define FLASH_2M_WP_8K 0x0068 -#define FLASH_2M_WP_16K 0x006c -#define FLASH_2M_WP_32K 0x0070 -#define FLASH_2M_WP_1_32 0x0024 -#define FLASH_2M_WP_1_16 0x0028 -#define FLASH_2M_WP_1_8 0x002c -#define FLASH_2M_WP_1_4 0x0050 -#define FLASH_2M_WP_1_2 0x0051 -#define FLASH_2M_WP_3_4 0x4010 -#define FLASH_2M_WP_7_8 0x400c -#define FLASH_2M_WP_15_16 0x4004 -#define FLASH_2M_WP_31_32 0x4000 -#define FLASH_2M_WP_63_64 0x4050 -#define FLASH_2M_WP_127_128 0x404c -#define FLASH_2M_WP_255_256 0x4048 -#define FLASH_2M_WP_511_512 0x4044 - - -#define FLASH_1M_WP_4K 0x0064 -#define FLASH_1M_WP_8K 0x0068 -#define FLASH_1M_WP_16K 0x006c -#define FLASH_1M_WP_32K 0x0070 -#define FLASH_1M_WP_1_16 0x0024 -#define FLASH_1M_WP_1_8 0x0028 -#define FLASH_1M_WP_1_4 0x002c -#define FLASH_1M_WP_1_2 0x0050 -#define FLASH_1M_WP_3_4 0x400C -#define FLASH_1M_WP_7_8 0x4008 -#define FLASH_1M_WP_15_16 0x4004 -#define FLASH_1M_WP_31_32 0x4050 -#define FLASH_1M_WP_63_64 0x404C -#define FLASH_1M_WP_127_128 0x4048 -#define FLASH_1M_WP_255_256 0x4044 - -static unsigned short flash_wrtie_protect_4M(unsigned short status, unsigned int offset) -{ - unsigned int wp = FLASH_WP_NONE; - if (offset >= flash_size - flash_size/1024) { - wp = FLASH_4M_WP_1023_1024; - } else if(offset >= flash_size - flash_size/256) { - wp = FLASH_4M_WP_255_256; - } else if(offset >= flash_size - flash_size/128) { - wp = FLASH_4M_WP_127_128; - } else if(offset >= flash_size - flash_size/64) { - wp = FLASH_4M_WP_63_64; - } else if(offset >= flash_size - flash_size/32) { - wp = FLASH_4M_WP_31_32; - } else if(offset >= flash_size - flash_size/16) { - wp = FLASH_4M_WP_15_16; - } else if(offset >= flash_size - flash_size/8) { - wp = FLASH_4M_WP_7_8; - } else if(offset >= flash_size - flash_size/4) { - wp = FLASH_4M_WP_3_4; - } else if(offset >= flash_size/2) { - wp = FLASH_4M_WP_1_2; - } else if(offset >= flash_size/4) { - wp = FLASH_4M_WP_1_4; - } else if(offset >= flash_size/8) { - wp = FLASH_4M_WP_1_8; - } else if(offset >= flash_size/16) { - wp = FLASH_4M_WP_1_16; - } else if(offset >= flash_size/32) { - wp = FLASH_4M_WP_1_32; - } else if(offset >= flash_size/64) { - wp = FLASH_4M_WP_1_64; - } else if(offset >= 32 * 1024) { - wp = FLASH_4M_WP_32K; - } else if(offset >= 16 * 1024) { - wp = FLASH_4M_WP_16K; - } else if(offset >= 8 * 1024) { - wp = FLASH_4M_WP_8K; - } else if(offset >= 4 * 1024) { - wp = FLASH_4M_WP_4K; - } - - return (status & ~FLASH_WP_MASK) | wp; - -} - -static unsigned short flash_wrtie_protect_2M(unsigned short status, unsigned int offset) -{ - unsigned int wp = FLASH_WP_NONE; - if (offset >= flash_size - flash_size/256) { - wp = FLASH_2M_WP_255_256; - } else if(offset >= flash_size - flash_size/128) { - wp = FLASH_2M_WP_127_128; - } else if(offset >= flash_size - flash_size/64) { - wp = FLASH_2M_WP_63_64; - } else if(offset >= flash_size - flash_size/32) { - wp = FLASH_2M_WP_31_32; - } else if(offset >= flash_size - flash_size/16) { - wp = FLASH_2M_WP_15_16; - } else if(offset >= flash_size - flash_size/8) { - wp = FLASH_2M_WP_7_8; - } else if(offset >= flash_size - flash_size/4) { - wp = FLASH_2M_WP_3_4; - } else if(offset >= flash_size/2) { - wp = FLASH_2M_WP_1_2; - } else if(offset >= flash_size/4) { - wp = FLASH_2M_WP_1_4; - } else if(offset >= flash_size/8) { - wp = FLASH_2M_WP_1_8; - } else if(offset >= flash_size/16) { - wp = FLASH_2M_WP_1_16; - } else if(offset >= flash_size/32) { - wp = FLASH_2M_WP_1_32; - } else if(offset >= 32 * 1024) { - wp = FLASH_2M_WP_32K; - } else if(offset >= 16 * 1024) { - wp = FLASH_2M_WP_16K; - } else if(offset >= 8 * 1024) { - wp = FLASH_2M_WP_8K; - } else if(offset >= 4 * 1024) { - wp = FLASH_2M_WP_4K; - } - - return (status & ~FLASH_WP_MASK) | wp; - -} - -static unsigned short flash_wrtie_protect_1M(unsigned short status, unsigned int offset) -{ - unsigned int wp = FLASH_WP_NONE; - - if (offset >= flash_size - flash_size/256) { - wp = FLASH_1M_WP_255_256; - } else if(offset >= flash_size - flash_size/128) { - wp = FLASH_1M_WP_127_128; - } else if(offset >= flash_size - flash_size/64) { - wp = FLASH_1M_WP_63_64; - } else if(offset >= flash_size - flash_size/32) { - wp = FLASH_1M_WP_31_32; - } else if(offset >= flash_size - flash_size/16) { - wp = FLASH_1M_WP_15_16; - } else if(offset >= flash_size - flash_size/8) { - wp = FLASH_1M_WP_7_8; - } else if(offset >= flash_size - flash_size/4) { - wp = FLASH_1M_WP_3_4; - } else if(offset >= flash_size/2) { - wp = FLASH_1M_WP_1_2; - } else if(offset >= flash_size/4) { - wp = FLASH_1M_WP_1_4; - } else if(offset >= flash_size/8) { - wp = FLASH_1M_WP_1_8; - } else if(offset >= flash_size/16) { - wp = FLASH_1M_WP_1_16; - } else if(offset >= 32 * 1024) { - wp = FLASH_1M_WP_32K; - } else if(offset >= 16 * 1024) { - wp = FLASH_1M_WP_16K; - } else if(offset >= 8 * 1024) { - wp = FLASH_1M_WP_8K; - } else if(offset >= 4 * 1024) { - wp = FLASH_1M_WP_4K; - } - - return (status & ~FLASH_WP_MASK) | wp; - -} - -void flash_wrtie_protect_all() -{ - unsigned short status; - unsigned char r1, r2; - core_util_critical_section_enter(); - WRITE_REG32(FLASH_CTL_TX_CMD_ADDR_REG, 0x05); - wait_busy_down(); - r1 = MREAD_WORD(FLAHS_CTL_RX_FIFO_DATA_REG); - - WRITE_REG32(FLASH_CTL_TX_CMD_ADDR_REG, 0x35); - wait_busy_down(); - r2 = MREAD_WORD(FLAHS_CTL_RX_FIFO_DATA_REG); - //mbed_error_printf("status %x %x\r\n", r2, r1); - - status = (r2 << 8) | r1; - status = (status & ~FLASH_WP_MASK) | FLASH_WP_ALL; - //mbed_error_printf("status %04x\r\n", status); - - spi_write_reset(); - wait_busy_down(); - WRITE_REG8(FLAHS_CTL_TX_FIFO_DATA_REG, (status&0xff)); - WRITE_REG8(FLAHS_CTL_TX_FIFO_DATA_REG, ((status>>8)&0xff)); - WRITE_REG32(FLASH_CTL_TX_CMD_ADDR_REG, 0x01); - wait_busy_down(); - spi_wip_reset(); - core_util_critical_section_exit(); - return; -} - -void flash_wrtie_protect_none() -{ - unsigned short status; - unsigned char r1, r2; - core_util_critical_section_enter(); - WRITE_REG32(FLASH_CTL_TX_CMD_ADDR_REG, 0x05); - wait_busy_down(); - r1 = MREAD_WORD(FLAHS_CTL_RX_FIFO_DATA_REG); - - WRITE_REG32(FLASH_CTL_TX_CMD_ADDR_REG, 0x35); - wait_busy_down(); - r2 = MREAD_WORD(FLAHS_CTL_RX_FIFO_DATA_REG); - //mbed_error_printf("status %x %x\r\n", r2, r1); - - status = (r2 << 8) | r1; - status = status & ~FLASH_WP_MASK; - //mbed_error_printf("status %04x\r\n", status); - - spi_write_reset(); - wait_busy_down(); - WRITE_REG8(FLAHS_CTL_TX_FIFO_DATA_REG, (status&0xff)); - WRITE_REG8(FLAHS_CTL_TX_FIFO_DATA_REG, ((status>>8)&0xff)); - WRITE_REG32(FLASH_CTL_TX_CMD_ADDR_REG, 0x01); - wait_busy_down(); - spi_wip_reset(); - core_util_critical_section_exit(); - return; -} - -void flash_wrtie_protect(unsigned int offset) -{ - unsigned short status; - unsigned char r1, r2; - core_util_critical_section_enter(); - WRITE_REG32(FLASH_CTL_TX_CMD_ADDR_REG, 0x05); - wait_busy_down(); - r1 = MREAD_WORD(FLAHS_CTL_RX_FIFO_DATA_REG); - - WRITE_REG32(FLASH_CTL_TX_CMD_ADDR_REG, 0x35); - wait_busy_down(); - r2 = MREAD_WORD(FLAHS_CTL_RX_FIFO_DATA_REG); - //mbed_error_printf("status %x %x\r\n", r2, r1); - - status = (r2 << 8) | r1; - if (flash_size == FLASH_4M) { - status = flash_wrtie_protect_4M(status, offset); - } else if(flash_size == FLASH_2M) { - status = flash_wrtie_protect_2M(status, offset); - } else if(flash_size == FLASH_1M) { - status = flash_wrtie_protect_1M(status, offset); - } else [ - LWIP_DEBUGF(NETIF_DEBUG,"flash_size is error\r\n"); - } - //mbed_error_printf("status %04x\r\n", status); - - spi_write_reset(); - wait_busy_down(); - WRITE_REG8(FLAHS_CTL_TX_FIFO_DATA_REG, (status&0xff)); - WRITE_REG8(FLAHS_CTL_TX_FIFO_DATA_REG, ((status>>8)&0xff)); - WRITE_REG32(FLASH_CTL_TX_CMD_ADDR_REG, 0x01); - wait_busy_down(); - spi_wip_reset(); - core_util_critical_section_exit(); - return; -} -#else -void flash_wrtie_protect_all() -{ - return; -} - -void flash_wrtie_protect_none() -{ - return; -} - -void flash_wrtie_protect(unsigned int offset) -{ - return; -} - -#endif -void rda5981_flash_init() -{ - unsigned int status3, status4, status5; - core_util_critical_section_enter(); - WRITE_REG32(FLASH_CTL_TX_BLOCK_SIZE_REG, 3<<8); - status3 = MREAD_WORD(FLAHS_CTL_RX_FIFO_DATA_REG); - status4 = MREAD_WORD(FLAHS_CTL_RX_FIFO_DATA_REG); - status5 = MREAD_WORD(FLAHS_CTL_RX_FIFO_DATA_REG); - - wait_busy_down(); - spi_wip_reset(); - WRITE_REG32(FLASH_CTL_TX_CMD_ADDR_REG, 0x9F); - wait_busy_down(); - //WRITE_REG32(FLASH_CTL_TX_BLOCK_SIZE_REG, 3<<8); - //wait_busy_down(); - status3 = MREAD_WORD(FLAHS_CTL_RX_FIFO_DATA_REG); - status4 = MREAD_WORD(FLAHS_CTL_RX_FIFO_DATA_REG); - status5 = MREAD_WORD(FLAHS_CTL_RX_FIFO_DATA_REG); - core_util_critical_section_exit(); - - if ((status5&0xff != 0x14) && (status5&0xff != 0x15) && (status5&0xff != 0x16)) { - mbed_error_printf("flash size error\r\n"); - return; - } - flash_size = (1 << (status5&0xff)); - flash_wrtie_protect_all(); - - return; -} diff --git a/connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/src/wland_ota.c b/connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/src/wland_ota.c deleted file mode 100644 index 05a85abc0a5..00000000000 --- a/connectivity/drivers/emac/TARGET_RDA_EMAC/lwip-wifi/arch/TARGET_RDA/TARGET_UNO_91H/src/wland_ota.c +++ /dev/null @@ -1,145 +0,0 @@ -/* Copyright (c) 2019 Unisoc Communications Inc. - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "wland_ota.h" -#include "wland_flash.h" -#include "rda5981_ota.h" -#include "wland_dbg.h" -#include "wland_types.h" -#include "critical.h" -#include -#include - -#define IMAGE_MAGIC 0xAEAE - -u32 wland_ota_partition_addr = 0; -u32 wland_ota_partition_len = 0; -u32 wland_crc_result = ~0UL; - -static u32 crc32(const u8 *p, u32 len, u32 crc) -{ - const u32 *crc32_tab = (const u32 *)CRC32_TABLE_ADDR; - - if (rda_ccfg_hwver() >= 4) { - crc32_tab = (const u32 *)CRC32_TABLE_ADDR_4; - } - /* Calculate CRC */ - while(len--) { - crc = crc32_tab[((crc & 0xFF) ^ *p++)] ^ (crc >> 8); - } - - return crc; -} - -static int rda5981_ota_erase_flash(u32 addr, u32 len) -{ - addr &= (flash_size -1); - rda5981_spi_erase_partition((void *)addr, len); - return 0; -} -//write without erase -static int rda5981_ota_write_flash(u32 addr, char *buf, u32 len) -{ - int ret = 0; - u8 *temp_buf = NULL, *temp_buf_aligned; - - addr &= (flash_size -1); - if ((u32)buf % 4) { - temp_buf = malloc(len + 3); - if (temp_buf == NULL) { - goto out; - } - if ((u32)temp_buf % 4) { - temp_buf_aligned = temp_buf + (4-(u32)temp_buf%4); - } else { - temp_buf_aligned = temp_buf; - } - memcpy(temp_buf_aligned, (unsigned char *)buf, len); - } else { - temp_buf_aligned = (u8 *)buf; - } - core_util_critical_section_enter(); - RDA5991H_WRITE_FLASH(addr, temp_buf_aligned, len); - core_util_critical_section_exit(); - -out: - if (temp_buf) { - free(temp_buf); - } - return ret; -} - -int rda5981_write_partition_start(u32 addr, u32 img_len) -{ - if (addr < 0x18001000 || addr+img_len>0x18000000+flash_size) { - WLAND_DBG(ERROR,"write partition start addr error. (0x%08x, %u)\r\n", addr, img_len); - return -1; - } - if (addr%0x1000 || img_len%0x1000) { - WLAND_DBG(ERROR,"write partition start length error.(mast be 4k alignment) (0x%08x, %u)\r\n", addr, img_len); - return -1; - } - - WLAND_DBG(INFO, "rda5981_write_partition_start:0x%08x, %u\r\n", addr, img_len); - wland_ota_partition_addr = addr; - wland_ota_partition_len = img_len; - wland_crc_result = ~0U; - - rda5981_ota_erase_flash(addr, img_len); - return 0; -} -int rda5981_write_partition(u32 offset, const u8 *buf, u32 len) -{ - if (wland_ota_partition_addr==0 || offset+len>wland_ota_partition_len) { - WLAND_DBG(ERROR,"write partition error. out of start addr(0x%08x, %u). (0x%08x, %u)\r\n", - wland_ota_partition_addr, wland_ota_partition_len, offset, len); - return -1; - } - if (len%0x400) { - WLAND_DBG(ERROR,"write partition length error.(mast be 1k alignment) (0x%08x, %u)\r\n", offset, len); - return -1; - } - WLAND_DBG(DEBUG, "rda5981_write_partition:0x%08x, %u.(%02x)\r\n", - wland_ota_partition_addr + offset, len, buf[0]); - wland_crc_result = crc32(buf, len, wland_crc_result); - - WLAND_DBG(DEBUG, "rda5981_write_partition: wland_crc_result 0x%08x\r\n", - wland_crc_result); - return rda5981_ota_write_flash(wland_ota_partition_addr + offset, (char *)buf, len); - //return rda5981_write_flash(wland_ota_partition_addr + offset, buf, len); -} -int rda5981_write_partition_end(void) -{ - WLAND_DBG(INFO, "check crc32:0x%08x, %u\r\n", wland_ota_partition_addr, wland_ota_partition_len); - if (wland_ota_partition_addr == 0) { - WLAND_DBG(ERROR,"OTA is not started\r\n"); - return -1; - } - core_util_critical_section_enter(); - spi_flash_flush_cache(); - //u32 crc32_check = crc32(wland_ota_partition_addr, wland_ota_partition_len, ~0U); - u32 crc32_check = bootrom_crc32((unsigned char *)wland_ota_partition_addr, wland_ota_partition_len); - core_util_critical_section_exit(); - WLAND_DBG(INFO, "rda5981_write_partition_end:0x%08x:0x%08x\r\n", wland_crc_result, crc32_check); - wland_ota_partition_addr = 0UL; - - if (crc32_check == wland_crc_result) { - return 0; - } else { - WLAND_DBG(ERROR,"check crc32 error\r\n"); - return -1; - } -} diff --git a/connectivity/drivers/emac/TARGET_RDA_EMAC/mbed_lib.json b/connectivity/drivers/emac/TARGET_RDA_EMAC/mbed_lib.json deleted file mode 100644 index a0fbd3bfb2a..00000000000 --- a/connectivity/drivers/emac/TARGET_RDA_EMAC/mbed_lib.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "name": "rda5981x-emac" -} diff --git a/connectivity/drivers/emac/TARGET_RDA_EMAC/rda5981x_emac.cpp b/connectivity/drivers/emac/TARGET_RDA_EMAC/rda5981x_emac.cpp deleted file mode 100644 index 4b322063070..00000000000 --- a/connectivity/drivers/emac/TARGET_RDA_EMAC/rda5981x_emac.cpp +++ /dev/null @@ -1,291 +0,0 @@ -/* Copyright (c) 2019 Unisoc Communications Inc. - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include -#include "cmsis_os.h" -#include "mbed_interface.h" -#include "mbed_assert.h" -#include "events/mbed_shared_queues.h" -#include "netsocket/nsapi_types.h" -#include "lwip/arch.h" -#include "lwip/pbuf.h" -#include "rda5991h_wland.h" -#include "rda5981x_emac_config.h" -#include "rda5981x_emac.h" -#include "rda_sys_wrapper.h" -#include "maclib_task.h" - -#define RDA_HWADDR_SIZE (6) -#define RDA_ETH_MTU_SIZE 1500 -#define RDA_ETH_IF_NAME "st" - -#define RX_PRIORITY (osPriorityNormal) -#define TX_PRIORITY (osPriorityNormal) -#define PHY_PRIORITY (osPriorityNormal) - -extern void *packet_rx_queue; - -RDA5981x_EMAC::RDA5981x_EMAC() -{ -} - -/** - * This function should do the actual transmission of the packet. The packet is - * contained in the memory buffer chain that is passed to the function. - * - * @param buf the MAC packet to send (e.g. IP packet including MAC addresses and type) - * @return true if the packet could be sent - * false value if the packet couldn't be sent - * - * @note Returning ERR_MEM here if a DMA queue of your MAC is full can lead to - * strange results. You might consider waiting for space in the DMA queue - * to become availale since the stack doesn't retry to send a packet - * dropped because of memory failure (except for the TCP timers). - */ -bool RDA5981x_EMAC::link_out(emac_mem_buf_t *buf) -{ - emac_mem_buf_t *q, *p = buf; - - u32_t actual_txlen = 0; - u8_t **data = NULL; - u16_t retry = 400; - - LWIP_DEBUGF(NETIF_DEBUG, ("low_level_output enter, p:%08x\n", p)); - - while ((data == NULL) && (retry-- > 0)) { - data = (u8_t**)wland_get_databuf(); - osThreadYield(); - } - if (data == NULL) { - LWIP_DEBUGF(NETIF_DEBUG, ("rda91h_low_level_output, no PKT buf\r\n")); - memory_manager->free(buf); - return false; - } - - for (q = p; q != NULL; q = memory_manager->get_next(q)) { - /* Send the data from the pbuf to the interface, one pbuf at a - time. The size of the data in each pbuf is kept in the ->len - variable. */ - memcpy(&((*data)[actual_txlen+2]), memory_manager->get_ptr(q), memory_manager->get_len(q));//reserve wid header length - actual_txlen += memory_manager->get_len(q); - if (actual_txlen > 1514 || actual_txlen > memory_manager->get_total_len(p)) { - LWIP_DEBUGF(NETIF_DEBUG, ("low_level_output err, actual_txlen:%d, tot_len%d\n", actual_txlen, memory_manager->get_total_len(p))); - memory_manager->free(buf); - return false; - } - } - - /* Signal rda5996 that packet should be sent */ - if (actual_txlen == memory_manager->get_total_len(p)) { - wland_txip_data((void*)data, actual_txlen, 0); - memory_manager->free(buf); - return true; - } - - LWIP_DEBUGF(NETIF_DEBUG, ("low_level_output pkt len mismatch, actual_txlen:%d, tot_len%d\n", - actual_txlen, memory_manager->get_total_len(p))); - - memory_manager->free(buf); - return false; -} - -/** - * Should allocate a contiguous memory buffer and transfer the bytes of the incoming - * packet to the buffer. - * - * @param buf If a frame was received and the memory buffer allocation was successful, a memory - * buffer filled with the received packet (including MAC header) - * @return negative value when no more frames, - * zero when frame is received - */ -emac_mem_buf_t * RDA5981x_EMAC::low_level_input(u8_t *data, int len) -{ - emac_mem_buf_t *p, *q; - u16_t index = 0; - - LWIP_DEBUGF(NETIF_DEBUG, ("low_level_input enter, rxlen:%d\n", len)); - - /* Obtain the size of the packet and put it into the "len" - variable. */ - if (!len) { - return NULL; - } - - /* We allocate a pbuf chain of pbufs from the pool. */ - p = memory_manager->alloc_pool(len, 0); - if (p != NULL) { - /* We iterate over the pbuf chain until we have read the entire - * packet into the pbuf. */ - for (q = p; q != NULL; q = memory_manager->get_next(q)) { - /* Read enough bytes to fill this pbuf in the chain. The - * available data in the pbuf is given by the q->len - * variable. - * This does not necessarily have to be a memcpy, you can also preallocate - * pbufs for a DMA-enabled MAC and after receiving truncate it to the - * actually received size. In this case, ensure the tot_len member of the - * pbuf is the sum of the chained pbuf len members. - */ - /* load rx data from 96 to local mem_pool */ - memcpy(memory_manager->get_ptr(q), &data[index], memory_manager->get_len(q)); - index += memory_manager->get_len(q); - - if (index >= len) { - break; - } - } - - } else { - /* Drop this packet */ - LWIP_DEBUGF(NETIF_DEBUG, ("low_level_input pbuf_alloc fail, rxlen:%d\n", len)); - - return NULL; - } - return p; -} - - -/** \brief Attempt to read a packet from the EMAC interface. - * - */ -void RDA5981x_EMAC::packet_rx() -{ - rda_msg msg; - packet_rx_queue = rda_mail_create(10, sizeof(unsigned int)*4); - /* move received packet into a new buf */ - while (1) { - emac_mem_buf_t *p = NULL; - rda_mail_get(packet_rx_queue, (void*)&msg, osWaitForever); - switch(msg.type) { - case 0: - p = low_level_input((unsigned char*)msg.arg1, msg.arg2); - if (p == NULL) { - break; - } - if (p) { - emac_link_input_cb(p); - } - break; - case 1: - emac_link_state_cb(msg.arg1); - break; - default: - break; - } - } -} - -void RDA5981x_EMAC::thread_function(void *pvParameters) -{ - static struct RDA5981x_EMAC *rda5981x_enet = static_cast(pvParameters); - rda5981x_enet->packet_rx(); -} - -bool RDA5981x_EMAC::power_up() -{ - /* Initialize the hardware */ - static int init_flag = 0; - if (init_flag == 0) { - wland_reg_func(); - rda_thread_new("maclib_thread", maclib_task, NULL, DEFAULT_THREAD_STACKSIZE*8, PHY_PRIORITY); - rda_thread_new("wland_thread", wland_task, NULL, DEFAULT_THREAD_STACKSIZE*5, PHY_PRIORITY); - rda_thread_new("packet_rx", RDA5981x_EMAC::thread_function, this, DEFAULT_THREAD_STACKSIZE*5, PHY_PRIORITY); - /* Allow the PHY task to detect the initial link state and set up the proper flags */ - osDelay(100); - wland_sta_init(); - init_flag = 1; - } - - return true; -} - -uint32_t RDA5981x_EMAC::get_mtu_size() const -{ - return RDA_ETH_MTU_SIZE; -} - -uint32_t RDA5981x_EMAC::get_align_preference() const -{ - return 0; -} - -void RDA5981x_EMAC::get_ifname(char *name, uint8_t size) const -{ - memcpy(name, RDA_ETH_IF_NAME, (size < sizeof(RDA_ETH_IF_NAME)) ? size : sizeof(RDA_ETH_IF_NAME)); -} - -uint8_t RDA5981x_EMAC::get_hwaddr_size() const -{ - return RDA_HWADDR_SIZE; -} - -bool RDA5981x_EMAC::get_hwaddr(uint8_t *addr) const -{ - mbed_mac_address((char *)addr); - return true; -} - -void RDA5981x_EMAC::set_hwaddr(const uint8_t *addr) -{ - /* No-op at this stage */ -} - -void RDA5981x_EMAC::set_link_input_cb(emac_link_input_cb_t input_cb) -{ - emac_link_input_cb = input_cb; -} - -void RDA5981x_EMAC::set_link_state_cb(emac_link_state_change_cb_t state_cb) -{ - emac_link_state_cb = state_cb; -} - -void RDA5981x_EMAC::add_multicast_group(const uint8_t *addr) -{ - /* No-op at this stage */ -} - -void RDA5981x_EMAC::remove_multicast_group(const uint8_t *addr) -{ - /* No-op at this stage */ -} - -void RDA5981x_EMAC::set_all_multicast(bool all) -{ - /* No-op at this stage */ -} - -void RDA5981x_EMAC::power_down() -{ - /* No-op at this stage */ -} - -void RDA5981x_EMAC::set_memory_manager(EMACMemoryManager &mem_mngr) -{ - memory_manager = &mem_mngr; -} - -RDA5981x_EMAC &RDA5981x_EMAC::get_instance() -{ - static RDA5981x_EMAC emac; - return emac; -} - -// Weak so a module can override -MBED_WEAK EMAC &EMAC::get_default_instance() -{ - return RDA5981x_EMAC::get_instance(); -} - diff --git a/connectivity/drivers/emac/TARGET_RDA_EMAC/rda5981x_emac.h b/connectivity/drivers/emac/TARGET_RDA_EMAC/rda5981x_emac.h deleted file mode 100644 index fa95ba44ff1..00000000000 --- a/connectivity/drivers/emac/TARGET_RDA_EMAC/rda5981x_emac.h +++ /dev/null @@ -1,160 +0,0 @@ -/* Copyright (c) 2019 Unisoc Communications Inc. - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef STM32_EMAC_H_ -#define STM32_EMAC_H_ - -#include "EMAC.h" -#include "rtos/Mutex.h" - -class RDA5981x_EMAC : public EMAC { -public: - RDA5981x_EMAC(); - - static RDA5981x_EMAC &get_instance(); - - /** - * Return maximum transmission unit - * - * @return MTU in bytes - */ - virtual uint32_t get_mtu_size() const; - - /** - * Gets memory buffer alignment preference - * - * Gets preferred memory buffer alignment of the Emac device. IP stack may or may not - * align link out memory buffer chains using the alignment. - * - * @return Memory alignment requirement in bytes - */ - virtual uint32_t get_align_preference() const; - - /** - * Return interface name - * - * @param name Pointer to where the name should be written - * @param size Maximum number of character to copy - */ - virtual void get_ifname(char *name, uint8_t size) const; - - /** - * Returns size of the underlying interface HW address size. - * - * @return HW address size in bytes - */ - virtual uint8_t get_hwaddr_size() const; - - /** - * Return interface-supplied HW address - * - * Copies HW address to provided memory, @param addr has to be of correct size see @a get_hwaddr_size - * - * HW address need not be provided if this interface does not have its own HW - * address configuration; stack will choose address from central system - * configuration if the function returns false and does not write to addr. - * - * @param addr HW address for underlying interface - * @return true if HW address is available - */ - virtual bool get_hwaddr(uint8_t *addr) const; - - /** - * Set HW address for interface - * - * Provided address has to be of correct size, see @a get_hwaddr_size - * - * Called to set the MAC address to actually use - if @a get_hwaddr is provided - * the stack would normally use that, but it could be overridden, eg for test - * purposes. - * - * @param addr Address to be set - */ - virtual void set_hwaddr(const uint8_t *addr); - - /** - * Sends the packet over the link - * - * That can not be called from an interrupt context. - * - * @param buf Packet to be send - * @return True if the packet was send successfully, False otherwise - */ - virtual bool link_out(emac_mem_buf_t *buf); - - /** - * Initializes the HW - * - * @return True on success, False in case of an error. - */ - virtual bool power_up(); - - /** - * Deinitializes the HW - * - */ - virtual void power_down(); - - /** - * Sets a callback that needs to be called for packets received for that interface - * - * @param input_cb Function to be register as a callback - */ - virtual void set_link_input_cb(emac_link_input_cb_t input_cb); - - /** - * Sets a callback that needs to be called on link status changes for given interface - * - * @param state_cb Function to be register as a callback - */ - virtual void set_link_state_cb(emac_link_state_change_cb_t state_cb); - - /** Add device to a multicast group - * - * @param address A multicast group hardware address - */ - virtual void add_multicast_group(const uint8_t *address); - - /** Remove device from a multicast group - * - * @param address A multicast group hardware address - */ - virtual void remove_multicast_group(const uint8_t *address); - - /** Request reception of all multicast packets - * - * @param all True to receive all multicasts - * False to receive only multicasts addressed to specified groups - */ - virtual void set_all_multicast(bool all); - - /** Sets memory manager that is used to handle memory buffers - * - * @param mem_mngr Pointer to memory manager - */ - virtual void set_memory_manager(EMACMemoryManager &mem_mngr); - -private: - void packet_rx(); - emac_mem_buf_t * low_level_input(u8_t *data, int len); - static void thread_function(void *pvParameters); - emac_link_input_cb_t emac_link_input_cb; /**< Callback for incoming data */ - emac_link_state_change_cb_t emac_link_state_cb; /**< Link state change callback */ - EMACMemoryManager *memory_manager; /**< Memory manager */ - -}; - -#endif /* K64F_EMAC_H_ */ diff --git a/connectivity/drivers/emac/TARGET_RDA_EMAC/rda5981x_emac_config.h b/connectivity/drivers/emac/TARGET_RDA_EMAC/rda5981x_emac_config.h deleted file mode 100644 index 717d423bfee..00000000000 --- a/connectivity/drivers/emac/TARGET_RDA_EMAC/rda5981x_emac_config.h +++ /dev/null @@ -1,22 +0,0 @@ -/* Copyright (c) 2019 Unisoc Communications Inc. - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef STM32XX_EMAC_CONFIG_H__ -#define STM32XX_EMAC_CONFIG_H__ - -#define THREAD_STACKSIZE 512 - -#endif // #define STM32XX_EMAC_CONFIG_H__

    o#4G1cihWVe$`WpTiZVf4~D(43dL6Phw#9)ucn-QCC$`ZjDF-Re{v++D^h#j`yUvIE4Cfe z$KhXyahPQ>r^RrNU<|)I)<)$R#{M|SYxCP8pV$K9zp{6ucb8X*oDM7;pMJQgXhhM7 zsKfp3UgyA92jDKiBBkiDIo;8x+@24=7wDKzS;U4?C308ba{PTbP=mjZ1lIZOQ%6-j z9(-($=fj~q|yPWl2U#jel&l3aKI_M1GR7Kj(W4c>>q*CaIQzj|N4}iSG1g8Rc0&h>Umo9hVJM! zWh;7|rB{T~OPz-u$o<^1?LD^QX6S8EBeRmwgCciE{k8%n;t*e=FZF!vf7(C$q`e4V zwOemlJ7X=Mhtyni>&I)K7SCBVcYo!UTV~us|BRZuZ~gd|r^WNYnwM_9W!;Q*^iQpM z=_?*+reQf*q1~IfMb?j)?Zyy=x?Jj(;!e9a zQB0bJr(B(A6g($mrq}LK+#O@U6-3-ohGC{p6Z;Mq#Ynh9h&#$K%=A{7MusIkBOVz~ zv<+sCpDEIduUk0Nk2~51Gt*}a`qyG4P@)+eZGV~RhX{JE*)_)%Mcnb6iU0c)aatYt9`q5Rl=IT5#hUmf`WXqS1d~ zp-*Pwx+A@HuflLkICZwtk)HXMj`$T8d_Hh`J%t}-eAc}Q8!hzTu;9AxO(a472X%fv z!7okuwT1pI3x3*y+hc88s}JfOr6d3Gz!`;ambU0Fw}daU;5X~^>?yQOcdI4*eha=& zr{|bT+jTEk!e6rB?^^KxwcxlNFy@&5p}?8{2!7f4S7HgTu;6obdbYD{j8Dy$@b!B5 zJ0g6T@(oM)BNqI}7W`#Bz6Y7g#`x5033oWP{PI0yV>}uGoQ`G4Qd~-z2_K`>>Nr6b zde;pmyg*rDqAyamnD9d7eiL4-==SIJ^hPO1OyL-xs1P&jHDen``#FEILYMPe@5Qwq ziJ@4!@A)*t=9d1p&=|I{Xy?iVCxfr*TdNDbySiE%mm3eybu1Ghebc4k!R1R^nibt# zo!GV_gxU2gHTm|9l-X)|(!|+Pw*42x+Lo;cM>L6NHYP2< zae0?6?MD$h+mSvM2Aw|0=$q@+o3ZN$9MtyqHo1cb7b7D@iv6`ajVb)s{J^epd1vz~ z2>v@eTiaI{y;XxZTbfqA&Gn7gDb&u}mRFLcP%V%(b`!+{b6$*1F>6`nGoH zE}Gg`;UcJJ+-%sS>s7FQs0i6=o>==ut$f?Lz;d-6KskjMf(WllL1d zL@$a~d|7mH10(i~Ep0UUU_Y5&8G2h5bh>Y+idWv=gjbPR5z~on;3%6cO~*2MPEyo= zV+UTPQ0$;FpiwnjnXr)vf1z~JdoT)uo#Qvg6;W+1xaGRbP-(hW>c)CeLn5wzE^{T@ z9gfb%l_5=ys@NMQyag%xrODHT$F)>jFlO3kVoy3?+81=&npbFN8Ph!4S;n+k`u?v< z{T}Vv`o6C!&0ZeqPBK2|-X{bd2T%JP$ifM|`hKq~bsL=3_|DS*5`EtnHam!YUvm|0 z-&YOCeJwxJ2|cj)N?4~T$fA-qPf?ge8Wb6e36Y;Agvie_LgfEeLXV={PKbEaJuu#O zLd4q*XkVa}i~0NkapZ3=A@Z@G5cv@4U!|vewWe!JyGGZsp&U$~@tM9Ii;xDwQth0W z{aXF3>zDL1t{~1p_~`4j{dc3U*K`+YHz*3Sq@?|mUY>ewj%Nq60Q~KZit-v^lcJm; zM84l4Y*v(a2`|$2o7&4XT~QkHTLJ$xR0gVEVSc%uV7N+%e0LEdo}Uo;L=#Y$4+IH# zl>R7}NVh>x7lEtcKia3w-A1=4%Fl_nYI=>)Hz`UXaJD1C$D`L5>VF~qQU9nSQU5Cl z@!mwc!+YCA9Ph205b+-+^eD;`gtHVSNQjrt{LuddA^5T$$oE}BRN@~A!H0GiNtZ{6 z_@fCCpX(mJU+$0N`<_XN_xvp4jYcIsKsqS2xZYuSDq%GOKh-`%`EAoiw@$Tv1&)qz z@Qy1sb&`Y=fj(3iG%!F~Kaz2>#2>hLc%lzdJk&V0#=j|+{2GZY-;y||1RsNV;9nT^ z4Mc_ypLv{*)BMFTJ5Hw8uw|^)&jX9Gk{WA$_|?5JxEcmb-7`LFN{@a9N$1obCISw?&!gj> zVd$@TF2Rp9{1M0SXX5t^aN`K%-w7a3!B0BLZxuX@ z`8x`J-S8tn=1cP1jb|gjT^MtG@RLsRdjK9reht{O;ej9drQs*}9l^7aAA}$Y&)u>f zjQnFC9P0?+rW~`4xj-KK!JU`8y5|Bfq@{ei;ap{2X9r^qzwEyKt;D>jiYE+8yYtUiJ9dk0TS@4nXjDbG9-(MoGbdrwH;H@|@_^4p}uA$Vx+)uI=b0czIY##hiSXgvNe!6gWF6#|U(%e)~~1BJ%qpo#dxoX@X;Q`tjgcKk8>6 z*#+C{e}nsMjW40;uUj@=IOn3ZXzO?AOK9MqcmEkII}c!={sZf7CcDx7_MhqcSL^Ki zFn4Q-#P(rcI4{PzfnhR$_h9-C(Nx}rZ&0k2via~wU9oX4_Ym-NnalCMn9sWpagHaQ z*1RE4)Xp129gJblp1(r>xbwI#{|)*Ozje~dJ~ZXxvc&75 z{=P#O&Mi|^6my?TAEKPwpyOZO+`jyLe~$iM@>j}L*%sY;jZ*%aNUrc{zeVTk-10K& z`pd;sPR!HJ`YoESn@T!|^Z&Hj1$SXSC#pgFlW;yKU&49*3jL$@9oqT%yytN+2NQGg zZ_u=IgGerJXRN<(kThj^4t?jsT8Q&J%;F6$Vc!u~h_eTo#!s}cRLsRxBmW| zuY0JbTs&Prr>XU%vwnXnq`8{2%M%{C@clWrK76V4aDL$a9)c>~+( zr25hmJI8(`${w90omQ*DeMk&}ra#6{(%W9wPUb$EwTC=R#wBPi?cPQ46&R-wmOSsU7 zWW|5hx!n2cLu;TEf;o^2>mb_*Tb^ySz0lZU^p|P$`kQ=*A>c;1_6}I^krM3K`lp}1b8*E~ zeM7?8^*|AAQ+RAY!Wf*kPlpw7Td6H%!+kH?q8$aal%DHVuS^mCDWT-rT>oyUEcbpK zhn$fQY2da)!vmHfMN7t%{ zX8CDh*Yl*Uq#~raTy^98%H-*xht_VcED9BRZAH!#SKZQGY43H|^Fzmi`zl9y9lbWk z>6dUH%^@v+zYY&UI%g*QDs*>rRhg}{G7?Y*hSWouwTqWHl3#g6J*13HIyEP$X#~^z zYDw=gdnCn9D)mq*Xx{5_dqMLT9PISY8n$5g{5PWwfh1S~XO6oMx^Eb-*#R#Z5-Jf- zyABR!ElqnT_(0|07nPDfglr}0hbwMST$1u+_y;Pi%x<)m2>bIJaet`$zj~}mM-L1v&EvoQS7Z;>`?g6_(3wGjUr{NpGK2O1$rf-&3Q9qK9lHX@`?)mEwH= zs|jpWPx^gywo;Vjt@6JaJsrSrTg8GvbY5x~S*=L(MByz@?9mnGtgzqWk{7}SBDLpVxd&<4N}mgBsgfIi_lUZAJv?mw)GsNe zIj`>5>m@66@eLD_qpw`5TZ6Zid=M`2UaIHlz3^92E6?_<_YXAG%8&F~`QeKnd{LPY zJr0_(y$R|>#obQ1?iT;I{r}~^dgS*<20z~P!M=|-_Fg?;?f{m5M|2Hxni|>>^#hJV z`x_UsmyAK58xEV|YjG!hZ+Hi54)8!FEXKpexOUs^Q|KYrqi%oyimhl1DAYq~h_Mba zUJL)O$AwzbY?#NNY$Y#+9f?LTnK!f+lowv_AEmdUEl+AS zF&u5E^ek;iYmL!EPy5%YzwTM*A5>$Tn&oHTa=sMN+tYi7_9W?xys*u0aTRD+Y(Fi2 z-@)|S#W!e{_H89eA+2>Z`5&uH4pqoe%eDB1KZrI_A?(^4>g9s1Y|H&x+I{ytKchM8 zdDp)8eGLKOQ<6Mp0ZH?qt!(3YFvg8um!31i0{ZE2h7hY9+4{nP4B+|ib{nLbz0dtxNHu_r#zmbTG3ATfo>A)zDl z0MhpJWCH<9f0+fZwcriFS-mggN88XV0i|R7+av-={96`$p9N>#ke`YlZ85)P3IEW7 zTWvvKgvgBV6Y96F z?9rB){9BvBNb^K`v3%%WD_|71kGF30ZaM6>inL-ZS|Kmvx`pSn6EW>++&Q6@>_x@%w_RpeXepc%&PXzA)$tLF<9BnX;Y`f_S+*9`A! zu}~3$5>O=8)YYaLAtsp~#`<2}*w)%?t#uGU_5o{(YCFvTX^c8rghgTbeqx0}+n9!* z9R`jn2q$RvGHK_t9C%uZHfGbGHq}UXgm99gJV%I5&h|(87YL_l_b%JrS|4S6judHN zR!j)IO2-=jN!Lt>cs@cL_-`XbrksGJ=g4D>&vAtKV$y+r2_g725Q2~3hxp@wlMX?G z&lh!kDd8o$-A#o5SjSHTl3$b%d_EyWdD)3Xeh9&g_R>b9vS6A_@a35v=2PZtK5_6r zLJ0n>7vh2s_zJtR;KOl*{L=}MF3V58`J|trC?db$y9+q&*gimr_`3-a|6c${U#i*N z8$DgCZ@wpf`9>o%xqwU`ULt=U9j_xqe!6sg6Cu)hSjYG3;m-pyJ?5YJ3lSpSmkCk7 zqTFB5>YM4P@F(A=81AvO7w~zG{@^3uYc_Dwi}Iozh$7OfB1Af@PnPS`*(dF1Sc}`v z>@!@&gX9pkeARgY|Ao1A^ zZvMUG*=R=M8_2#&hh{6sPM{OI-%()tf?^dJp?srX%mAG)jP`v9U3 zu|G&B`N3?jiQfz0=Yb#jF)xx|8=j5)s)4W{NhkUF;9<;PI;Ni<_>mv;CHdWnXCuF- zfH1CflHb?hVdPh5;K%Vp@(beG$j@ch#w{zqCoKH7f?ostn7?%VB)<@zjr@3D1LsH5 z$^5+l4`cq`1HZ-aBR@RG_`Q#3BfknTco=@tNq#5cVdPgeSo_|QUnYK}V?AbonUUXX z2p9r?=_J225E=Qc2S4&5KaOjXUy+3$uDdqfQ6l+`vGCgpehoT5rZ4$bS@=DlqC}4{I;QSR_nY7B)@x7hY#@d+d3jhl@g_`LX?|#&fP+F~ zYsOV)`5pdyA-}GL{MsSp*Ey75Lq_g}4D1i#(U6OuDfxZK6A38lmFj`2b(D0t4vwhJ zy}^;}fE3zRG7J*#?3!WzH}>5P`F3_FOUSqDZrM_4>vh-$hF%NqH_5jLBJK&?a7gL( zH9~qVB-MvSj{Er&lj*K|Ga3zCwt!OIKy*%7=7|})WIFprOdB)h*07uB|PvbIu9l3mJ#|Gj6YsGAQywOqGq*2_I@>x^>U z7j%i!^9H$YRoPE0vO!rjnp{_V6IQwIoX;ZH6(v4*x$c~pTz5`cT&~M@^J(O|Rg~+l z`^$3Os)TY~>J{wnwsnuLdw*T_$Orq#b$3Q1*adUvp<=zNW7^y1vdP?o=%IudRg+ zWr7k325gtT7_^n!PgUCUs+4iZ*4oCW9{$!^$JDzkqhXC&DX^8`CO;+hus7mNW{pcLAQF7;|um)9ig`TT+|C*N?oX3tLa zPNkGj`ztq`zH*OJvf*^q9<7fmB@4r4LO-zKBhMb*^gE|4dT6pPGk*(jVZ-S%opwr3 z;ryby+MW{B!TKI8{@9*j-Y@s$>ZQp`SejhDG^}-vQY%fap)?t$(r8p^HMx3en2X*g z(vZ(bdy-49_~UhZQe(2;ZoA#H8$a16C1l@Bg6?AYf?Vj;ngg0vZMQ+ICN)lb4`y;4 z7Fsnqb}1z%h3wv_Tk8q`pp(7Js9SqGmJgY()U8Euw{E^adqMX6WP@&vnl;kIfZ8JwLWQ3&OJx;lz!yg>&{KiE%X`dpr3<2wI*M*?!`Hzd7>Tcgx{Y6k2P%i?UxjT4hnl_$LxpBTrob=5(0;!R zzYoV#dRtG4UxHsJ8lNx7@WmWRwoA^6a)9iPdC1wG=E3_eIcJKyWI-Q|dB|0j=0O?0 znLbs}$0liFh8>HHd0m=?K26ZK#pYvNiNqac_-6j;fd?R~nr64vh!li86i4 zav1j+{3v6mj6^!-rA{J%#JOgYj(D>~0Ew@$;9s@ilsQR9`bQ-KNSyg#ekjAD%>LJS zmX6`CNd%DidlsBBFzFaR(t?)*rx(|Vl;O+!3$~(-WTX9DYoTwn;A<@StrnazdFhz` z6BhhQ;Pmq2N16Yxbe#1_nf}{4&NUNT!^b+#a#Lm>m$`ExAw}-E0jwT3yl8^t$>r{{ z@~MhZ90gi|Ly#L6%R_7qT)&XcEShlAGSnpOiG+X5h4eQ{{OF%RXh!e8!Z`YR(Js=8bQx~3en;0> zMR^4N_Hp`MT^H$hbz$MUpZ??HGI)@P_|pg{>UVd6-x3|?SeORc{10{fSsmw?-AAU4 zbWO5o3@)2MH+r%r3t>Kygh)@wwt>vo`5hqy{(_FPlQ5rxANUB_HuwwK_7q*V4ZiuL z$3nk~5c~s#D9jT&JVFRV2`>{u_ABnXLOR_0%k(A^f}XZT2z`X0Urz{n_FwWnP6(aE z`-EkR=$E7~#<)Q^oe=SO4+i7$o5T872_e+reHJWFfDkh3Erb=2wG*Oz9NC$UC=c=_ z-;1ax_}4KU{(K*#ZzBXhl@RsOMd;S#66BK$ob-6*rutr_(=R3jAHHYuX&^-WWI)Cj z`N4Y^`9XO-31W2{(|vAI+?!!JdFJE2Wv80@=L={^7|H^jr?{cY4Z+v3n%&A2h7Ot9q_A$ANi%@ zC;1)0vyopWDx(>G(n)@NM@D`VGvn_AMUV0OEuM}1y1lyHS4dK#Be%zRD_ioEl=0(2|~^F&9w zcI{F8Wf*_6@CUq98I%I%=OUwaLTG&z8R$+v5*nI^G86nlNB~z6iMu6P4%QFLD$9UJ zB^@s{(-2YeYr3(meQ9G`r%>?Yq{G={)R$a1>;3tkaWKDxroZmP_gQa6`TLFa9K+cT zWgo(nDq$bO6wB0y9s+(Yedv6h^^UzheE3c0RQoyWP;v3a)2Zb-7d=lMJGMd3GfgSO zzS^?dviarn%Il_9Po10Rdox=66a3yPTc8w84U`6oR7b-=b;|rH^W1gr>aw|8AO@E=2OccNQ)$h_TBRUMy-K}H4XarzuUhHo&9FUC=!n{; ze68~TgD&Lx6UEhI=R&7cJ8r>6^DdgN6oaQ{raDn|s_E*GhWrM~j|*#xYK!I-FBqbp zDOhki(Bbyxt20%Glz54sDd6)o#EKpgCHoA2&cJ=z==^3f_7FfD{>bt0)AG9z??Me+ zsDTSL@VBagy_nc>`o=L&jCvRJ5MrJiuWwBc@qElf&ipkG>LJW>a<1y)&Vd^R&Ec5P z8yxi#=5VeO;?98?w>g|M@VKL%!W_;oP~16`ftGM=Dls_fEzI$`N{c&(GANGViFyk& zJy&6I=THV)!m$7}IO;LX@wuvqJBMYbKlK=9dakPC&Vf*KxEZ5f!|cN^bKFsnVGbV} z55yDo8s_j}mhj=0@Zpwlt}NruffbdRpEePb6g<0N4$qT80`e?_(K#ShGt*Pb7IzNp zf-;A5S5(|NunWl?&Rt1y=TOF2!pFn|@#IikmT;FPyucD(U}$6LZDSi&b*!b>gT5R4j}15$5u ze!1F-JBKpK5)Of=!8vg9#T6qWqI!=&<{x{i#7b>+Te3Ej5j`K^9h1ywV z!qXI>A1#kg0e)%we)k86()R~vQfvGjVz@= zx!Z(aqU0y@MP@WSrV* zZ)@pjTtS~k7*=1tyuPVXy0-;t17G@cGj<4)v~IEnS{z?b^X#NX1Zy$xK7jP*@fC# zuGY6Pn=wk=)7J{m=GM-pcGMRRl6AB+cDAp8--=bJ|K)1e+IrSTCw#hEVL-N{Wm$a_ zvdJ0*uVpPAcr&QDR%SzF7>U(4HaGLVHFkEkHz7)Aed~&4OkH}clpeA&+gdxxk#C^6 zvkB*{L^EjV^0joV;5j;tpLj#!8yf-BfnQ@&m({DSb;Zr7Qe?QxhZ6eQ+XPcaTGrauC31(V zz-ckT2(5`}GPtvSRYw!K%EEUbLA=tImG$NDjn%=j)(+f3gPOok)OTm=jVl`4@Yd0D zy4EsVtX@&`Xq`}u~q zdd4t#YMm_>Qx-yULd}C>m8h>SbhXaqtzGrY8e7{|p_ULmUT<16(#~O}E!NMCeOW&@ z2FP`b{W@JI3SBb4mG%X?P83u9qr|V#bQ^Yj$WIW*6!RUz%M|5ZLM$oXBP>>w2;n?M zIZZfDKaYkf$|uC9;SUBiJEp)w*N&;S(6wVqDRk}EYdS6a63E9$cLVe;g#QHHFk!u- zxCk4d3n#>YUP9QY>DKK_A=4#}A#xgFlcq1R&&9bw;+RT%2%C|Q$(?JLV}A-@SBD0D z@~NxE-=$3EMGy*gohD5#>e)EP3SDTt%ju0m_x;OnNhh+tDho%w6YIXQfh9f!iF{7( zucztp%wvX(lBhlF5sZCE_e#)C^$_bQCiy4m8F~!ao{gPS4~h>q+VCTp^%)&>`dF33 z$67rk@i=bDffy5I8m3;S6UIi0cu&?t_v|I4I}$%t0R zS85*FbS`o{(oxIzLHD(e&$_qFa)K|RP7%w8Wnk2U`+me^0s4;UdX)GJ)xRDxhVk2= z?F?&uh9`(S|_D!~F5mNv%x+-()?+GPvu$)+vDQZTS>`_T3F!nPd17^Kt;O z$AC~eeOikdvqq;+3;WQK2OZa080xSl(;SCaqmy)Qcv{otT1`5Ay4mL(VFU|7?lC9_ zA!+zydROXDrt2rK1pF|3oAO6G16k~O(>c=Jn}9CH1YxoqdlJyeFa*Wuet~D^$5;;e z4oD}Td+=_5+Jr{mU^mJr-`%8C? zgEv@E=#2IJm44`Eo+I5=mUR2$x7@;y`+#Mhm`C}{{e66v@3$MsZbJpi$8TEr zm7p<89!7poCZK~?%*p3x6VN5tG_Kqu>hg^|y5L1(N# z@{?sGoqTSx@S6xa$-~HRorNFi5|#HJ3%^PI&^>yNbcZeJy1@_sV@~Gv6$`%#5XmrO zIsQ8VovaJe$>$_QHogz?OH|(c1ayhgEr%!L^ZP|de(l<$_{%W+qQh(*?Kw(}(p0Dz> z0;t&>E37T|Z;p=jYs&3_lNXw{QL*8$_zvwb?Z})%oh53(gc}VXuf2R^%cZ&lJAYSe5Yyk}rtkw2;Q#bYd$ zQdFe=pPobS>Q>nPLf%-8)B_H2+OT?`QrJ|mNwozk8yp3P-W4@;I2BeoNBTG8L|>kN zQ{|9Q=6*--Mb2aXwu_$s8Plt#j~2~O|W(EQq&6Gy3&^mEREgS9m| zzM_aad*H#E+MEWwAz`60%|Fk7r=Rv2Uxj_fu5cAjmk!5{pD_n3vA;*2-(}5QfjTs| zssGb6qjqLZzJF%zrl=Aa;a`97GL-bu$}fd%g-895z>cXcgROO5sQ%+SKFFAGI(){Z zjIRnm)$1Aj&7%uWF3z@3NR5n1y(ctjUec*e8MdM~qRtbJk5fO)IhiqdYv{6lH~UKW zT{k+%V?(?DIQ)yCt*YQh6>RN z`fIn&OK-1q9j`dB;E!ikrJR^qnjUKM+o$GLZ4cgFnR0ydlCh=ADZBH7@KEmuJwv^q z>ij0`{(V2+R^_>Y^=flf98$zjy)t?rPjBxjq0LLS-_feAyp6KTz$szk{iaB^oAeIA78~ZN=HO` z9?YNV!f8nM-NV>Lbyzm-GkmzPFTgZM=2wD4b4XT_>C4LRMzV!ovpE=u(c`0IaNGxA zoV#jY+BgCA{O0g9k$zQ-#H#mCx6o@g1^MmUg+F%a{h9w}`B4F4Li#H#;n!L4dJEoe!T$v~y>{cr^PFtQ(vkl+ zE%+Xt-i0up&-{rcJZ!NJUTRYY&EvuPFD0IQO zt-VQ6+o6gQo;=^$<-;FYZ9Mb}B`x)cFzC2U(NnkTfXyml9?fM6EJJhq^2S!`EIXPt z%~zAJrRnDSrp`t-5y>uA4vOoAUJ&nHFE^FEpGCvlS4pgA&+-b8N11WG^l0-H_@%iu z`;a_SxtKTvo9hX&u-irm0qPFIi*?M1p?>{4AXX4Qwy(Dh+s zbbT1MRGntLak@UNK-Y(H$VX?SeMBc=3BKxtm+NOtk^Ty%KSfajjDH2rauOn5HzD|J zCBzmX=AZGIf4fK1_t}v?%QqVFIfkTFYW6Hg&(_aYqCC~`x1$_TlT0Psucx#zRdVDDK@~SJJf- zu?}tA86njniNyM3A0A`;-ovwzpBo8v!B0AwzjxtbEtu#)JA@!V?Lyl&m7;+h3Nm=EJq?)@}EJ3I%ZQ6Zg|o;%90`b%|Kg~j%m>m8oZS{@XN#xpJuU>mi5f` zz_udaEgqF6=oBXn5hXwEYF?VxJ~vtNC70;e8=ZqJ`2j7F*!@NWI7(cQ>+p5NoI}CO zGrWYRzix)|nGenWz4j1HL=CWcxb>RgcP&x>!PME*e;xvUF1i@nM46-WCXnr&(9jLU zel&JYjx{Ox_1Ax@5s~AzbdsO;>af_;x{vE@x|r$i@@dq>oQp0dcZf(W)_-_1L_M(i zpD&s3DJ+5{*{&*un^#q;+HF;ik|Br7Ys(=Mzp3H=?$V8AwYk3gyH9QWSu{(pn7Pi(0vRD4H5GHH^Y*9Ab7l|0MuH#yz7kV zDW(4rF2}89r*PBRFAcWpd+q!c%KH*RG z-P!$9l=#h!nZA3va~tiG|8>*g5cEx}uUienIR*EwKE66{&2?)^t63*b@8W%huIQn= zqDq!+{HbvEx+Saa5t}`4^}9U_PN%ONE2vVusZRpy(8^fo&7Z5?^ONii>>D8{lD!pb zU|*gnb#~}6=zU(oJyQQ3-4EM)8m-$atQL9)33_5Fz0W1Tg*%Iot7*(j=EUS)XYxm3 zrTDF&Qdr@YzJCh;#!x5bdT@A)YxWj0u^m9?;~yPz(2<9E7UKGwlK-I>1EH-i5- z$JpG)f88{C^*2!q$5&VTJ;}pg&aDpk?YR4AP=Qi70yV;V*b!B1HfZs7L~SDsl%RaOWaqb||LoV~@0`8>3GVEDY9(W$s$D*dpn z$X+yi(atFBTTVzlJUf!Ha#&=lF=c<5U7 z(DrCE_2_BIg3&|Ij+m8yTX1{u^|4B?BYo_mF&}UJBzJ7fqVFzR zSm=zVyOdsM#+*?bM?E|0@gV8Oe0;~BKN#nXW;EP*ZPOy(yoVMky{V3y{Pzd#k-_%g zE*kH*jdvbi8rgtnrFVeiezdXQE~>9ldef4wS@C#~nyIF1?^-_BW{Wh~2F`A}c6(IK zWE{SyrfaXQJ+^$=2wP;ZZKXPD#jKM_Su52iqrS|!0|uq-Q$JGgYEybMl7AQ^#e>(r za`SRqQluei{Okw8XOU`~;ygSnl8KNJZQl`GTGfAQn{_fds})@8z$GK?`|A7Zi_t)) z(wiOQb8Wkk&sGDUd)p-9PH)2=4NgG@jh}*rpP1 zu4tbRt$S>B3fgFX!TYPV(KNrGQG9VN$Jo20l`c67FB0P}TVqw|>IF0W$!LxHgA*{y zFI;e`kJMM~tM=R7KM$6BOGa>P+C4%k+7g`6pjke+QjB5yKiaxs(2EcE<~m*t=6Nft zlX`P)O4K%k^sZ5C!)FR}pkcgR)LbY$Q^3nYGhnG(DS1Ae?3MX(R~-rdq-VMa|6!Qz z{`KNb`4bmy52h5e^|y)E?;Q2SqKAVE3zN|LKPa4Vtm>GJ1(SUJZ>rwE9(&}j>(nr$xTPmo+>?1SJiKPn z+W%aeb;~!_X8Rvjs!m?%ESNp(LoTX6ST->LN- z6Q^$0y+8B#mL;2WlP2Oe&G5hzTb3kEObuPH>u5LU-VQ6|r(adZmU!LN#2>yeXLedn z1v|wW=bcyubJiAj)P)X;qj=J6x1Nsq$(e=bL0zbsUbEf0D@M=RVcbzSYNpq0w>HE` zD1nGOo_RLYYqnc=$0nkbFvJ~op=Nr`cI$pQ=`_tmIX}*{&}YV(;i6STX3!yq$9sCTkvHTe60nioLf4^H_EJt??pIC9>$Nl z#-HoBPvB|F>z4RY3(iFly^a9VmTL~6bmTw5g3qzw*I97djFgV?Z?WLC87UpZ?*h*B z-^Cx=j{UYJ{D&6&-!1rmT5x%$lWCCuCzkNR5QZ?la{Pp);`qW%sw%O~Uv1Qk(ctv6~0ms@dov~4-;%%YE^ z<-;zl4i^$a=eUFr0%wjfX%IMWC3GpueS`&y@*~1R?F=C8roIE5XZYSF#0Q45Zt5%} zgcs>LOu#7d5?zNm9tb)rb%92?z$9Un9H{ zd!Pxc(M|~GBGFHEhEn!q?aVcMPF(jX!(zi-|3TV-5)WthOE9#=2_$dB2+}t&)|)5u z5a?uKpj+=|pIs^W_mbVB%dzWV)}%RfG0}%~G^Y1qI~;(YM-SMQsqHfu0^F(pQUUAm zGxDndVw{hWmJUtD#Ltzb^)d2eUPwoNH{xgH=Rv=C7=F@8eogQ&=5HJLx!^~B;&(oq?lS4k)N{RAFHe!P3@Dfp3J27Z#?Yj`&DJDp-aTPXRxuhX$T(3POl z63Os6*G3UlL4-f|fX=wSkXc3XNEdUNIgrWAK={f>LPK>aFMuEIiVcN7`vmicrY6d2 zTJPOYmK1mEo6HluZ{R{BzKOg^)M6m<&Gy_DQ&=cL-^R5>l^B zr5yb*iK=QM`)yw3BTuK(Te#Fc?E%=U^wc?*9*Lgt9Eo~n9f^i!Ia{3GrFz(9bw{G_ zc%0sE>-Z(Wt7kdAzt!<+z+VHtv_a!lR#!f6M|7&kKGAvDjj-ns_d9wRV(Cw%^GoX{ z&YQU4Nc4e*BhgPh#E(RmTva;nxuzr0tt*d2-)nSwTN*W?BIf6z%}f3u686%VKG(oCNu#u3tUOtB-Jas~E9%_YeP z0coqw96v?S50M>HXyoEiXq(RHD2FLAcrcyW7JLD4vJ2o(HuyDI!dF=E^%neg3%<*O zf760nGw&2{)Asx$Sy%T1NC48m@UtqzTEcj{*ewzi?b@(C+O#g99 zIM3Kh$MD}+@b@gZ%`kA2UXg>ZScPlLNUmg>h4~h&%s8Pd#;#qlz_f^ar+G+S=-u8S*czYcR-=C9(b3>?d+% z_7XX;crp2ym&}0h5cPniJ58CGav`boFhe$IctQH=)!2V@lu}qpL9<}nuw#D0dCq7| z3^*p(F%QWl#Nd)oh!4Jt5DV5~!r{987EHP*pW{AKH({P`zXg*6&Mocvy8RZc)jY(p zHmV}T+Nhe)g*ho zdAbNo^?k0G7_TSJN#S3!<`HWM`S#yYZuY0Z5{`^9F=D40Goh7(dTt?(9LP?-ZQ1KQgO?h9Owo@e_gvrp7n}(*NAq zgUU#BH}I6{|8i+RXOYXNYe$sNVeY(x88XbBbMR&|alSQO>^yOK$JJ5S z$X}7axMu9!)P~R!fz=fGv;DTIMXEBPG*nPiP@Cl|h@{%G8b$~>q5=5nz)FDw3Oo`( zIL_im0`|NHYI|?SO^hS`*Bl&LGqifxTt`FB%7G2ntjtlbQSVk?QZo+?^BYj5=05`C!p9p046s?v3qjy<2{q9UaeGD4ai(19RSGnpE1XxJRBjws zQ?k}pbjj@D4I{AIMZBTf+=e@P@(eXtDQb>6w~11xczq2@$wOhS#JROo#Jf=|Z`nth zUEZJdXmoB+Z4Ki*Gv0+-sZ0ojGivfg4aCorveK>fKg4eL&_5TjSbu&?QC#%nspi}F zCO?jo<=&~)ZP0peUzxn)2MzBvFz>v5H`(hEwdfXqQ@l#aWuYQ(p%<&S9h%>`x)f24 zr=qD1F7eh}zA`~wAhhRBZ)D$?+WYn?;V8u4Ysdjx|vTp<*qQ1qEeK{65gGx?}5NsUs1;8w^fJ|j`wPiyCH0a4(87T zK8KTI=e(1UE63i5;jFJrA9a4^mc2?*s@MMbVDID6bhrKPFVDYD^l(jYzw=#(GS%m5 zcrc*gj^v$zPTy5%+3VP{cjGqIyB5w{C~{fm`+gK-9NIR^urulm)YR109uzG*Hxd{u zTKDdeVYcn|zHNKJv9+`2h_<~=YunnJX4{?{ai%_xwypUrIGI{qeNypVELwN<$>ih_ z-eI_Jn5mZ4j$NDEu(Z3VyK(K5>M37-=bG9)LISp9f@){S({%ih*ADtZ~yEi8&3c89@{ppr;Mnv-Crt319kSg zeQ)>N>;0CYr))UgyeBKxN?r~R#`_5O@EsT(`-bcn9G^H&DF!F|l595@_9r+^a|?b& zF%=c}7;4ofX9pU_{Rzgo2xl{-=iE|rQnIRH+@D~kPZji((`k+~l(^%%*i4@$=-Xl> zoOs3^_a~U?(*-@}sG8&KCGNOC!RTm%9aC&EpLrRO`w1`wjycY!pk|3V;`3sdHs5Nr z;MR5dzgWV*Zo&W6fAz&bDbtsZ z;j{_O_|M=E_eTuEBwRX%kG0^_EV$z1*;y{z+hBkfE40{swlu9D3G6 z+gc0~8X;loyTL-QB_V||yl+_@(qDlDMdVb=lVQ&WUKUQb!-_DrUEnRPRbn38v_TKN zDj#;WG}p_@Fz%|5yDnnyj`~V@xv$h+%2pW5m5@(~9SYbx61P;0Ef_eE$#!p${|G^u zY}TUv8OnKM%L*9w#`Y0d357*us$8}FcXcjfpMi{xU&1te9Qnmb%Vl2#gj~l(h>y-A zfIQ#(1477k_7Xy_v!4)hoo5Ik*EvGy(sb{X>pV}qP+Qxl6>I01nGPP6G{|)(5{}ar z-f0(c{Qw*vwdV*S*ZB=0h{J!#TUSvs}9~b$nfc%O$_9RpjBL7ztBLCMBg1CY3 zGHrie+6;Zq#!N-|HvIvgAVhvyUyT16AkT}RAVhxOAw)gBOZWwS4+rvfnmEdp4k+#> zCiLic?#}xE*?Sl8s*0;`eD*#k_do*S5<&=H~F>T+R85( z37q4Y!Q^*4BCPx}Q}w+9l=I!V@GQ1em`#L83DMa@fWa3;@8oEt5m?Drr z=)&O*y81UwZG1aUbPsI$@CF5|DgBz3-9Gz^I~}`9 zL|0PN{_;mF`ZW%1Oy04xB2ACRc8Mn8$?~!^N}lMtp$V&ni94lzh3I-3wrC04GQ8Q>$F}NgHL<&6uy!W8{?sJ$ zi@Soj_YEzzg`A4JJ_UA*rWB-m;@z>W^Lmb_-2$!&t@mnU3LN=yft^V6bQNRGv)Dm8 z*Y#X^Vd)-hx&iAdELUPv%x&iW_8>8(Q=~L@o(ww5T`C%=-fTe#+mj0op zb`6@YISXEb)y>0N--7$Smua!nUqTt5M(o4dfP&=}kU{L0IV^9wR~zfP7p>&n`5UdV zrR1c;lUL{5mauC^kN<`XPO5#KyWYRyH=4hrq^EfN%#)%hud=f#dDo>!1nQ@;X((2t zio3q_ufY24X~&S6^_A~xt`^}b^DfeB`{DPrIlr#HUbNigRkoIUFU5-7E1KwFS>5%H zd;Xxs@9n7jgXZ)_p!6NX`<|qpT5?|xQ>X53 zn|V^5*;y&ZUJ__%e4=qzi5fW7n3^9Ogf*hHE@Ca->`&vG(_O;z^Ixj;S z!kxPRQg5o1P4TexVpTK=FV?}da1<96vQl(AU@pt-^` zz31~0w&U#1vfWFb?|fb;oqo}xEfh*_NuY1V z?j_FF8&9~ePu?N!j@x~nl;Dvw)~;kv!=HFnEjF+15ZYPb=z7M{oWHT>ACK?U(hC~O z9bIvb*Oxf*r+;zc@ipaXrHeNxNbPuh6;{iXqO{6CpV)iVRiWKa@N`eLi;&jN@wNDGFqkH|AZV;oU_k8vE&JAClaB+M%t+xPmcdpdk`@Pg$T_2r> zKE@Xq8k@oDgFV1bp@J zhbSTXcfw8hT9AExxmWMg?9o37T;Q$nrl0V57igK|AeU=5`dQzCMJM`sZ#l8-dX514 zcZh`DN&4DU<~C_Hy5?zL$NF!sRTW?c(t^l;8CUthv&> zp7lMDFTH@)p|=43B{aml_=LT!O@RS_@xXzM}skfMqxqu#G<$D#cO?o3i0LHBJwFjw|x6NGkUMMbmSp z5(!-Yj85kaC=%$S(i*t_IT;b03ve#S^~(z^1e{0kyDrn~P$sSiuCb*z+wdJWobw+u zklza?0!aLA8{T8Xlg){WL7!p63vKum8(wC^FR|f2wBh#kN53td@12R#K+juCmJ~Qs~=~`;q|(;v`Vq8*UemT z$-#$p>BxLC{2eb zg^AnNzl;TyhFTce7_{)cRSiF2SWKy@y}WAuN-XqYHx1l!2|8=j7q=MY!zB!E>8MJNUI*t?;HD$h>)_{z%y@&oRHZKsS{Kpk zYv|9amqoS6Ca&d6&$L-FSE@|=9r(Fw#QJDMJ=dJz2nRgr7|y6?eft&;R;$4xtkq$h zb^TFaZCYAa(|~PcToPqNMO($3#dn)71Wl~4CMGMjZUbu&xj`t9$F#}F#EpqAtQ!$#V_O`dTgWpxX@l_;aooo`7|4}I+)<^hm!~I8d2uEQICd|XS2_e=;mJs44tCA2e$u)#{v8W@&pu3WA9Nwh} z(}ef{kTy0M=qOx&dxo%3h*t?A|2KqKAK_R}z6%NQVz-EJ0`ep5i~I;7XAL22NB#%a zNm%i^Q?00V6nj@2+pvaIW6geCh;@;u81!f3+&Ein{tqmZ{2#SW!e_4;&}=f;*GZD` za!)!mnS6&P9r5}2ameNKkzpEsd={F)pa zOcuVwzN@`@CSjX}|2?;hZDML9TZK3jXI0hes^!uanBOf5@rm!>8rJ^1hj-zzBK6Ab zlNfHJf~hvy2A!!_b~;n1@c4-8LuaGon8AC@K190S`VfbCrzeP}V5&jPI( zO!)}SGBK?kKQd>(kHhb5eP}jr#G@=6On&1gO+Hs&?TcRX;|@iAlcN5&u%KYlBy^v` zb0h!y4kh2B;_?%#_{gc z>NYi{LjC-!hRt8AX|D}_uJeHbe8Uz);f-PFW;K3} z?yejC3o9-zzj)s3*hlr6CJs);4!`a3F&(@|neb8Dqa{OLi~ri`+f?^*r>gevOiJl~ zQ#t?95>Tn}U&jkSH`3VT>(=B9obd?UnK8C{W8H?%IT$A3v|mlCT68F#*S(67!ZS3QG#TeNz)tC6wh zZ^V(|-1*ewUyxQge2(JrG?*#yu+pGQF<{=jp6$zyh6Y|Ru)GK>a*9J_7geer^6Muh zGVdWQ!mcgFQN$fo$HL0>FD`oX*TKDp4sQ(CNmAC$+1>1_e89iIdF=&BhaSSYRGp1U zhi=kJ3+~po7Kr@%!0LJTV6}Gz&c_m6_xkmHar$5GHFIsK+Hg7A{rLOuY5SVE=WOxQ z#n^4OyKUKQPbK%A{Q^8+#kz{4@<-+OXr-w?s_0kwqYH*K{#Y9!SfU+BE5dqUO!oy& zwS7U>+igWYN9RmOe5XUbTf3m(%?-lc44P(5!B2I4cxY+X={Duub4mwjN(wnVQ}WLs zxQMcH-=Wtx>@P__hBfWrB^|*H50_jVP>SAe+YB!(4)u$m;wkcBeX;31ZNU2n8t((w z_q60+KV7m1o?B)H8oY`}?RdVeZ~m4*u<=NVqgxTY?{oNS5h>FG`SXPPW^F{l?YM7f z8)eMW90gxrZf&1Ya-Zx*_*r2rYi<~7ZevgNfo<^MqvU%6?((~}B_g}bU6Ja$Tl=B7 zTf5yA@5}IA7!rnb%xzF0bsq95V16%#`phG==J|5yugx#TEIOuoHsOS_H$u*NGrgek ze`?bU?xRaaKTX9?{ENUncV;qe1?BJXlsVarn+_%%QV;r$_Q`d4ziOW}m*pN-x}vdf z{;9x(@;xK}w2&qBG`@bQuwwDGJm09GqOg2u%6{V+<9z&wLl`S6;DK)tiC6pgJ}f zRDX_}b8KkY&@#o{r};&kp118v{cJp^_oGmH#WhEE-+6DzR6MD&dWPh79XZwhluhkOgc_QbwlI>UK{W(>0bUfRwq^RAov7*xvH_V&qjR{Wc zNY$LjpF#Y&ftb=&jq1eFIPLKEk`dm|a5~eo-Q!bYf_*z)STcSz?@0(;*QieLl?+ zR#T?8K~CNmQ>so_)tEdc_gM0XyRUq(ZT+E`?$eW(eg$7w-AcT(^kC^Pyy$bk@2e?) z{OzoN27ioi0*9e*vr!Lx2K@M-)2nW4_GY_9cAtF-k2&QSEj;`E39W}JvgD3q5Bw2* z}8m-%_sL7hH0vWZJPpZ*buqkPVA}UBfUgOxT9iCB1eq2Cda-TkSGRrX+^Os2cDMR<+_siVDG9!3{KU_z z7+mf0&oI7)Z6CS1A{JCb8e4puw5_S6P(ab-Uy1mnN$T!BsNruH{ODgaH`~(BX=YBc0HKi zcIF|sW4u33YRAnbal1v=CcjL(i}ja;Z#(fWJa=6;g!K9p*%$hjh92^6*F34zlkJ+@ z1wAQ%ZupW~s69A8&kcPkP`1VVc%>pk#JX3xDae^mD&cq35Z@2Bjd7!O!P&?lA9YHFdl`Fh4)(n8!WD?e?U5_AdEw3BJX-Slg>X?dWo-O5VbN znzthG=h*3=uRl;=9Bf%nvO4J`nMf?bIac7 ze!{z1%S~lXJ$vFWXm{30Ld$;th7*g*7UAByt?_mJ>Yi?k+x8Y}^w*stIkQtu5#25R zxLv^d?(xnBN2TzVwyh;&0|9MMK~|>&>Dxumn}2MJ8#n!n2?vl<{;|LeNb^ic&3z=8 z7xJJqJ3=$0MM0Cd&pwu?Y1XD-xwp^5(`4+yul%PLC&ad117B)egZ)B%4tPV!UCEC4 z{J3qi1D;=vDK9G9rU`tZo7WYeyz!i^+FbEe33}XrD&5-^=WC~CWgd(3F8ylrH%ift zww98=zfLJ81=ZcZDmjg>cgwx;<2LrJKk(5BC!VYyJU*o2J?*;Val2r1a4`NH;c3d= z1CGs-V{-TQWXD_NsCeIN)A{`a{2n->?!K*L`WMeX-X0?N={?Uru1t@sINdhf*Ax=x zYzjFmmZN^fag+k3zxpg~&u{+>{!#F27nnav3DA?>o(&sE_rnO~_U>_~K0}S?_}D7P z#}tf@3HwBLmK;+&jU3^`Hgi-A`K>zh;gb8IGitv6T^1*#b|@{co+^&SKB8-%zZidy``zA{{iJ@ypM|lrxa&FpMHn|@TDCPmrln&J zv}3EImEY<)3uk-Ae;unObjHUlE#K!uOLd?}7Tl=KEr`cBbfdPlBjI7OOCO6IyYIy~ z-HH)O?Ea)Gzcc}w#xV$Ek!#czjHP`!3SkU72wm+sxy2ZTI!aFV9s4tkQ#qdTUgmuM zaON8sg$gXA(CD*_LgwxQeH4l{Mxi3fPalPPyO!TKCdoaRq_EsW$%TU}kvKbWx^t5MV$nC+YGurQPh012@_MtrKP3=sr0{lFy5>Ai2;1A@7mv_n7w5RVTeMlyCTedc^V2CDvCqD-8?xO}A@U9dF3$Q}n=&z` zb5_h{L*ClZ1pBz3Y;Y9qf(||yqCC&MtL$D-`d-_$S*RIb^;$9Ri2&~I=-Yj|5Pl>J zJzk}Ah9X?f?#!4=OV@d~c<=MRF{|h`Y(?!l-sG!54aO@Sx0Un>T(+Ssb&<5Zk|?E3KPRiT$VlatXh8uPoUX<>zMw`wuRGmV@a!ID`q0R{8x+t4zQC0W5J zB#uXN+J~H83gJC12{T?XNK5LtX_li~b-Z{CH2=A)Ew(c$VH|XfyM(T4La7U4x-*lP zKvHE&O!rXn%k&3JU8RH3TOg$abN1<5W_=l4U;2->IAi8}zW4bPN})P_{gQ2Mg{9m* z^3dbvtXP>6-<=shzI1OXv@N;6ru?IC*T%ldfF0n%+3{W2x3ID2%E$k9V!P&rJ>15g zv;(!*4xM-HB_e;|+rK%aoIkMZbWB=cuomN|o!A$FY{SY=$?Xaj|22kg?6m1dhoKug!@4oW z(2d$zaotMXyX`Bo)_LzlKm7xCaNMc&DH!L?Jz?m;2Rn5= zh}X5PcGk^!ZztEb_SZunT>HSanBk{ZuU&M)_x%MGD2vFz<|wtj1oOcRA8ko5E1fg@ z^$ns`jB3RB?5eNCx5<~-DDtigsNJWhEX8h_M9lAhpRU~9=I!Ghi8r!=#u~%VFbACA zRqp+P_XxBp1v|lnYuO>oU5PK34l!t7#=8-7FD&S)c!r#*hm{%5W|^f4t*4Jf`Dz9#H%5iXH;U+`Fn zu|E#7HD2~&Pgl#)(B{UL@Tj`rUc$ zJ1V+gh~atixv;x6&y$bATgK~+01VTnARTR`?6JaCm-%V zS3jklC)^Lls2PJk(s#D$n>g9v(i3!nOSj~b?TrnmJG-A0h5>7X$J#Zs=wb)L{5y?;VSUms)^#;@XM@B!j8tR z-kdk$WyvPPE|Md^;z4S`)ViUKpu`hO6k|W#p{aFfL7Z+rC|FUBXV~7S@s95el*xUH zBLcz|!?&Zm$oD-hGfe$SKppjIaC#ZM1>gkxP!QgZv#H5y=W{Baq*{ZkE-(3*(=FWN zeUl`ww}K-7KLUBzr{ulS?&#d)sK5Pn&6%Be$l<|t52{^yKf521bXl=rdKV>Uxi$7(jV>jA%bYeq)JWbTp zsdbNrhRn&1TH7qvM=qmO)G-J8go-D3JaT`sApIJ0;@t(lzl4eoF>dIgR_#V;Wmiz$ zrSA-VJE&y;F{<56-Qb+4MVnj@pRc0sIIr1Khh1Q!%LA8O(4r0SKLH&+&!^^B2i^c@ zkv~;x27N;-`M$t=+U%{0=N8Or%`!dFh!W)^#&tzt`nZJl71zHV=XAo2)w4H_EQSez0U!X|ByM+Yt6q3>Gg150CkLY$X(!a`&&Pj zv3grLavcHxte*#;XuLH<`|Wt>+m8b=sIi%|dIC>%J5qKAyLxSlt|yabCsl|MS#?Y5 zcGm5_WtOk+IjJLV_8r$8l`;4mhm*vTQuk^p1<~hgaYlIw`)|u76`Kzp>5fTJT7miN z+Mhz-5MA5-37xk%6FN(s4~lseAGQ57bBM1!^Bt@%E%9yERJpc7&6*VuBa6JVF*|g< zzkMX;35l^^J4U|lJ=eS58{6$lp5{$?rDj%cWqsu%m7SI6cw@R#V|s!`-g6okXvuvh zY3|YYXqBmZn#cJDX}Qw|X(N|BuH_cvNs##5DbYW1CY}r3_rPELom&1uW$G=nUe$8M zotnpWCuTQyYVP@WYI()6-P>dPc8~7+Lc6j%XEtX?@m)$h-XHz??2siIfm#$P{UI&N zr6geHb&D8M@lxBZnHj!Ijgpz=x+j!Y@lH;A=3hp*v8uw@VZJ54d0jCH)D*1sh92&Y z;q&{SF(dyY6kj27)Di8O+1_{DCN1fnifXT1bRK?>ORPvLOFgW*V_YI91K(sw$zLp1 zU|)-Kya5mA^hZ*eYO$H;cLesi_q6%`e)HnHixU=U&Upil4DQIOfArADb@v_`IjjIH zWl3e^Byvv$^6D|-WsJ}N`&%MgANh0Y#pu5VU!3(mRvWd=k#YW;)2C0T9_D>Yu7cj2 zdNc-FQBiP0{1^g)1SHjF*^Os{gBb=$uhrB!&zWchb7P+Jer=n zJtBej;nC?Sy8K}h?t+K}o>w1DPjAJrK~qf{Bb^;c20i_wa5dA4BogTBJDQ*MYcTua zKwJ7inP0@eGINgv2X<^k^BXMb!ymeByH6crh>d=Tq(2yzUr&G0g3BDu5Bs>^8XVYF z6rKN2$*(R<#GL_=;1I)X^ur|moG=MCmRW)W-sGbBV}qI{;G?K5JzMf?3F~9Fg_`y2 zvC(@ZeMH|qHu@1Z`Vo@8AWStPe8mfgILAhRj-;;%%X5y6ew2-Vl%yXWrWzH#;)Mg- z^P}q{U((MHQ(W_+3+eGz6QAL58&M&&*z&Bd>Ry_KSsOV2JV;X zgT*7Z`=7SquiEf;jr-&A4DFBS=cl%GHT-PV+b_$8PqN_`*zg(~eyt6^#fI;+;SbsH zU)b>9+3?qG`1>}z2RQ3ufsdWIFaqU!+DPXdr$6Q=e~O|XB|B`iSJtyu?oVS%#LIE-g4B8^MKM-GmZ zSxZxt>IR&$(*TPU9(1yn9)y-Jy?jjrPH&Ot>ySvA)+}GTy5Z^-a1P{))M$hSZnoqg z&-Z~n%6!C;f$n(*bqwb-%tlrQ+{Ub|!Wlndp~Lc!#5~5vS_T~bgJKt&N5R;S@i7|H z7OiJ?mbAjcdK~bw673qU9n>~YslnE1X~QJXf3X-Z`PN*GI$l|ORqaYtjNX7zj*lWn zL}xWB(oZ>B17}2VC1e^0p*nm~RzbZP97&=m&pOq0vUyptdM1W8BEs*rdU4yuw?Z2AdNYp5mEA3YYus{v(iCnnLKl_3DEsOsqt zYJJ01wHujQBOgnS0=N5!}`n9gVvg{Qh2zW@~v6D7KMUpQ?)RJ zzIprBUb|#L&p30-5J!?=1dp;jG}2bpV{E4hB5IWNZi>6A%CKlO+fr ztrWzJGKs4iWE*mDtjEyDRTB`*fXHVx zPPH67W)4eI(CT{M+V$-Au*Iy_dzdb=Y!ri?dHTCF47KJX6W}0jZEeFX_ta9h1;*u#VMB%Ew>$ zA;zLJA~I+g7}}2qlGW6&H8q82`&|v~@rGKAIcwHSHDt5v ziU*w~0xxu{@oHvt|@jAIaq-L!Rv?SA!Dg3u(hncopVw zi5D4XWG&Fo^h#W4`1!gRX_#0h{s1<5gqL7GNQjC4Ai_)av-A@$gS`*&#h8NJKQws}A%}lQ_&Ni#m&)8I}gxJpbWxB6RwOZ(B zZq*oPZq*uRZe5PE-blCH@NZTR+gFwk28Fj0uE1I9gezgQ2s+BQkPz}MB7}U>uh}Y` zaYjC?4gX^>VETkO^3@2D?>B@#FvB~kdL>rz2^(N_pS|nbpubCxYZ=At)gW-Q|qY%Gfy5Bfk4fl01OYrF-Y|`6_a(+X66aG-H z&5(z13*;fZ5podTWcW(B8S)Ts*3UjuZxOn$1XR*8u*ka3IODC#@b?G3$U%JKorZtC zyNvp5(diPmf*1HD&NK7`bmUL^k%Ze|lWgEp51?<)5WgK~vJtlG^_93?ucySjaTXiu ziT80`pY`=AA??D5+UCegpm6)!XLw?+JNy+;Eu*`ng`}eL#5MUZWrW)HqAn zA29UyLA`$^{tSA>_=ogF2c*rP68^!_PvkAeE@{<1*gy3@%;ji^G zJ*am9;?EiV=6Uoh=8OAs331;Agt)H}ko9vNA@cPTzF>@#kgJ(E~ z{{o}DfRjK+T%KhJ$nltZ&VH!=2<Mx(&GcYNUNIqzd(q_%R*hKn5Y&BZu*jKbLSd{vc$%hClzMvk^HPIAet&a&Nl6fP_enfnt`%f#F0(QWIso~Mvhv$fgmEA7y*PI(z^IdrsIt;T>bo~Cq z=Y$zd-oHbHRlXcF++M^{zGVDJM>+q3pEcj@G5R=+XcpHH?i8-A z`M!XBnGf?#G3ba71~V(aJ!}NfQbexxHmKFgx`B?;j|yctY> z<3VKQ_YoMG@}+^;Pw<@YK0@%cvi2I6P(yUNB->m!68>1Htb zaSmwZS2{_bH<909{7im#+4wc~MLAf9Mlku^X5+U6{Pu!|{D$CX^4n+Q=O3Vd69S10 zCcg)5{JsId$)F%VjwvR;=WP6Xz>oD}29w{jHhvS%)%!g84a3jm_pXiKoPqj0&(7~H z8^3knXO0`gE&Mq70BLyqs{=ol%?ze|-`MzV0lzvBQNC>aO!+)Ee#vMoels$I$!|F5 ztnK?L`1wIZejfZxemuK{x0_A6BVDg&M9EP1a`<;#7JK)D>iWy9P&)fJVpBIsD42VsBAK3WCL)lFpt#ng~r&=NF$j1e9^9w!@iQw zdS=RmqKW!J$=`lv%E7TRv+%h?)5Li=GbMF)YFWSXeii-aiX10)$PVyj%3ZQ46)EMJ zzLL*UuT(t!D)YlT-jm9b%9ATbHzZe*k~Rcp8NLl-5A@8^xi=mZBXhludsN-`R&GNe zPI|rV=&3?W1mdn~>`ELj)u-4n^pY6Hd>+sDxnUF^N$;$E- zzO*{-Aip9ov&-p7tGujYNqKr*UFA-kXgjKDYx8eVr@K(Ue{E96KC&sdYIz{t<7gG` zOO3i^%kb3V`Pi@Q^y~HI+^@FKwqCdNR(A?m+M6k&WrkPXrQie$;gQn1VM(zK{cw#e8W!{48sbyO<|K6m!4{nK^psbAju=2dXh4A|}QI<~R76--HDM6MZB~Vyi zSfRL5eObOZX-(phrD_ccmyYL^=gM^KOK;I*l5hsGaOYo@;kn`}N9)$mi*9#?>Z6r} zEAXrCR0mJ}h9&k_HKAeBc4COkdyvdK{fJ`l)#W!ay**vt7ef6i(zGO;k}EuydgHpE z5^h<}cP+N9B1SDX+uCef6SqR2+#jBt>ydUG%PN-59oo38OvxW`OdT0BQsi{B9V{92 zT1@A0$7OX%b!jEv1TWSK3WnAx6X2OHaOoLm@A!`TjxMZNe4QgdC$IoE8zS%1;6)OC z61-5tkAm|h>vY`bx`ZmGy5-XpDg+fac9VpsYrTQQxHeJD#QsaJFhLoNjn*J zg=P9~e(vgbVpo4+<7bEHxlqM*K6d;EV;paq-XwW%HsZD^8$Yi-Kq>(rlS@O+yaR6y zoGr2sYD--EaDGaOy!$;%JH`vO*xFwI)$1*WKA7hg#S=H;@XRaL?F3vE8EAC%H_8gD2Yje$2J&N1o%L_kKgeSjY^3kE- z0JVlq#^5<6J$~>YeMp`?MXCFi4=7{#+44z^G5LK0{bWD=Qy^8s*8mC$RN zej#Ue)MDgt%*-YAXjXYY*s&D^)X{0a zKL2JgV>6_kG<&c+Zsh6iRgK7Xn>P2`sZ zMpb0`Mx7z~3!%7C&$Z`NEXLXW&$fGTazE`Tj|3M(uYM8yeQ0K*vXdNU9vMns2m1u_kn7MxEF*i~IYxb9aq6Jnv;H3R$QnBt7>>FsI+87GEL%Q{ zIzvi+ejroE#07=|s`>A?XGodf4aMbt-VU2!)I@jtU|ACio}_~+hBS&%uLd)GuYls^ z_B2WH+x8Tru6`}+>e=9{A*F>Mj%72;>N|WfPV+0mX?}@;1yQBD5Z2=vKHt&m z>y-TNzy-2ge}nhjxpK}@ece6U=G3+|>Qp6P=~SKZZ{4mxtlJ38fpBDAj~0G$K;B3RR?jCtXd7;sKtY1Ydmq_udkoab;<~BwrEa8(lsKr%wGjsL#~1 zTKc(bc;4X|dLK@2U_Npd0pBoY{eCBi=bt`~#Z{!&>Ao3a&gd<$+%tmj@Zvd(;U`;U ztNEJ__VZmDaNvp6UzW#%l3f&lI1N>MF*DXp;Q^OE;K;4GDmFv9qm6t11pAbycn0k@nW>d>j><` zc%k37k*rcXs*Xv)Ne*V~q*bI@ zsLXp)WE=i6C@rz2L|RxU4b_z3U(I2$79st3q@JU%nJ5@KQeDOVn*R$OdzkAgEVNT} zpSIS4L#_x#VjRM{lEd{H>xvC=CoF5M!6~rRBfqojvDBtWpdD&7eXOMCy1X9DRZAVC z9cnavyre%KrsqmnB+w2unm$p|?+DXJr_v8cbPW8if?ac%CBJw?0_{$t>HA9h2g4*- zOt%CFR=T3;>50p_KFO7^NN`|hd^CN3N&iBaq<{E|7Y=wqiKZVQ=@*5muy}3>4tOey zrXM8f@oB^egUkyF9oTshO`k65>%vs&;VWJ^@I^kFK10$E2-kmxT>B#}TTYQHxy1C~ zzz&S)`!nVJPnraBhejAdepxp9EJ@FAFnY)`FC=sbmyO;f>2tzVuJ9EvusC9)cT0Ni zYtVz+ypYg=oe0tL=ScdFFjbEH)`z(*fTaNx^H32^GlO8jVdd#NRzqsw|5ewPh@z=pTk z@W|MsuiLjHo%v11AKLMD+UUQq;qfFk0_7QQ!^he1SvH(!vzvkUueIS=OA804|Ja5< zY{P$H!=Ja|FWK-DHoVJ*e{RELERRge!#$d2AZ~u|BOlu3o@Yz1u;G{5@LC&wD;~)d zfqO*x^tj5FZnx9D&zAlR8*aD5?XabD&!ibx9;_gTgDkHNA7{hqC&mn<|A7ssKNvGG z-4C4Q+lL?RbbAc^MTz%?vq@YSf%FgC@S`^TH^%+zK-(Wrqc;uwBZ>DHCk?z#;seBg z8hEk92Z>=$U7qVCo-W1%Hv{uO--eeN^xPBJAJ4~Sw)AUl_?-rQ2YB_z^X@SN=ia>j zc;5ZoM*o75&XKmiaEW#U=bq*Mcz$)-=($${NpkOQe>|`H05=2WA7;Z%yIbDV599k( zBVETQip5cQfmm8QV-!9?d=P~fi7yOX=RZay7*j?a z&l8yjuFD5Uhf(-=VcOa1>3Dt_9~i4e&N`7(V|v;uoH#LZIhkf0+=9P$Wi8AABE}xe zR#m|UBw`Op&sWP=u31(Eqk=Q+`mo!}G%Y+M?OSaAY}RzT&nSJT{<`(F|2xxvmE6GZ zgBjDBl`Cl`F=IZ=EMV54@2#_%e&~i?XYu7_w|+73@8lkgwBPRTi#y_AU$boe<(I?y zuBLWfRXu9&%2n%^(y$0Ax&tvGH^u?gU5u@O*+lIsT9?%d)92T}uJe|gyCh(5gQSJQ}e>Ds#b z%fqITl-)>zfhd&)HlZ*vm0AxsYfE7i3ByC$pI%kpux>ppQ0+;m+vOHAJz2`IlmbZ8 z8T}@D#|p<$X4u@Iak%rdW(~}seA3#bYDMjO7$SuWq8Axa7V}!uw8_{2xo+7yX&foL z$Or@1f^xkTSXl^kj_g);pS(t=1|4b%Gf-4{2%327ni%E&1rL=M~ zZ3wG;Ytf?`>X$D^PcsaCNT&}km#-FjE3;!6)}L$%87cK4+ylZ!MRGi>UyZzJq{gbG z5%sz{?B%Uv`DA*{`UdKpB$E}16choq6qdPKw^8CSXqatA_c!zqSc0xW3(AIqrLu0i zv|MToR28C8fk9=x--udPTZP_W^j;$_Qf|Fv%sb6?UbCLeq&Y7XNp?n9tr{wY6k~_@ z(i$iQpPzhlPFxCG4#G-oJtwTv*Fw|<`d%pYV#D^}5@T=s`NrP%W%?dB^)h{JK%FTB zSO~RTKTn4?LY$ANHToPp@p2(tz!R4nHV{a>fq1=POLGPM_z_hq(gbmHHk@+8kv9r_GUz5R)bD6;<&vkxO_L_WlrFjeS6bjmDmS z$TgCDA=f5C$aN1PS*6kSjn4dD;mf&pU*u-ws05_eX@+8a7v$ynRaidi$Xve8w^{ICbTo|PedUvC){kkgdWIp-V9qH#y1<~y~QZ+twwooGs-)~C@1uS3BhMCA^5OeSx&H({E(%*?|X!}uafXi zU5{zYv=2Dj>ruiMT_4EzN#fx14B>^kp3=tb1>&fO34m;$V!}$JoxuMh;&&MR27Hku zk{Q^MRT9pFweyEJ(k1CY>A+nVJDI@(^!dgQfp^*P(HwL-aNeWE^aDL8Ji9$8)#UDhk>o%!5OSP2^_LhyT)aHnCjgnCU@fTR2a z0I478gpgm3Lnyq9I5Np0M4{z4giJ;gM}7r_Gf-~AUHbY2A@w=yZex5xy?B`~@J9%N zKMBbE*v`yP>L2nuP8|8YK#2TaBt-kl_MUFEH}ZRf@yJKEceT;pi0_Yh@}EF>xe%`r zqTatT;-&2?>Vj|IF#yE|7*+YCD#xcT6jqw`ww~sj5vk@XD-fuiV zq4#aXAx{S&pCca;B0tt6^ZS$#decR?MSs4ks06mRit(7`W&Tb=)L%Ry`U~}*?Sd%T zF1HgtpzB)}^8GV$)XRU(mhCL>rV-PjUS1PziO~}=yct;1%^7@ z^mmHr8GIzwB7}J!NOWR&0&iG-^|DxDq_9OS(`D02>|ag1ZQhFuCr%b)ISU_a%(bmE zW-}pbc5Gx~Q6&BS!H7R&CT_&{@`_-Jf}@AH@?uJVmbVNeIcg3c&XX@rIHtwG&wN8L z63%#=FiWVv+MMmx$GE$fHgpoP%FH ze&0q{02+I~D-mY~r*SbFFaf_}17GRZ=M5PCFR~w6`-^7Tj|lC|KvxxOn!IT`0>14uCtrLl#kCkE5Do^ zef%fCMEp#CKgG3GzCesVA4aqcCOTlp2o^=`}cD(I~IUI9POE66VuKa=05xVG|p68t_woEc2{ zK0$<)U(QHI zFy$Lz+%Jp4?>gXSF!|9Q-zr}wI$$M;$S)l~li!s#e$U{h zY0SU~CcjlSe%FCt3uwqM13!}==Rmw2Y9a#+97Kn4OcuZ@ z{MwWB`4^I8F!?=U<98kSJp~H#%fio;kNp+@!}3-3>D~6~4I94+qay9$vhe%D#_x9U zdz2X%!IbYa8^0RxYX=SG!%!2JFAaU4x104hIYs}Df+!hGekq`{w(qpONPFaf(k$;t z(6JsdtjI7MoyQ_x_`3Kz(*58&(p>{O<^vGUmvWfFEQe{UXUaDp@|kI*HLo8s_?dJI z&r*(G+2p(UEOf8i=oXzN-_Gwy7X!hpG zbj_e+c>!cNTR9%L@vAyZdHLKUzXF3F>DCz61We;E2s-@tF^(Ysx+48j{v{1VKm0%! z4zHkpyl;sx=?Kxp;o!uLE{ri#5%VMbsDH>p_BG4xFg<`jce9fs-Q|mT<40N!XS!fuqFtXU?4B%KiQY7rPd&S+jDj3*S~; zGcKCzn#BV~Yies;^BdMw*W&9(!`e}Ep&}9D4bL9iCMP=hOC^6_tu9dA|ARN?n4g%|1N!K5tz?1 zcoUfINNDXte6Eo>$2m;L&f14&<3{!^GnoA32dq`~YvuPkbRv8xpE%*Xb0?nF9=D+I z-0y0SyTv1O3-_U+m<`d^^Tvb1^B6oGtF0n;b|Bd+M$HObHV=MZ;e&b0A^f%~t(&~V z;3If*&J z+!y>19;s-D09jp6gvNUn!^d) z|4{ihSR#n7`~52L$Ni7PvZEf-i>^*T{H@}!1Xh?-Mydb@fl=q-c;b$oyr7BJd#JU*QTybv+z3tu%_=jMwH|7ylO8dLed)l;3 z#Zn^r_!3=h{;On(FMc6_|>hh#IPglGnsWMH% zv`XR0@DA}#mK?8?ns_|uvy}B3S=L`j`!hXy(>Z*6EXG=mn18++y) zAjRxZmEc)6~|< z@MSz5Ub$z$&vsQp z;i2)ex5hitDmR4gK^aDsvlL4XY}1r}lN*c5$!8%-n|x)VwDe)EKOX?zpnK7zA1%H1 z(vRry$&lVYig&V41H z`paNVXcxTD4h;3y7tR*v7i#g@((LgChm)FTLaR0)tu+&dYzI( zXQ&IZY(6MP%*bcYcFvFW&W23If#Q4xwsl=ce^7DBobPa%W8( zMor{WPMO~%-19+@cTAAl@la@7Sf5@B6`s+LUXq$L+R&uBL)4>DvX=8;furkBfuTpb zZXXQkqtRra>xg2E!`&g>ZY~~nbGtFxZS2`_K<{1asAJB*w&5fIw=$73r;c%UJDt7h zSchf&HTC1W=urIO#PY<7{*AEM>)fO|I%hg|m56uZVFzZ~%N+eAUfRP%#&8;XpHJGg!%|j4w+>+)SgHHu+c?KR*FW3c znBS<>nKh&o?kZ6##i>XA*BZ~zYbu7;iLOWeX&8+~*B$<=FSvS6QR91B>ir8fk61rX zDROivF>Jx{jgb3bL&ZYP?V9W#3V*&$@LheQmQi^}aF=}EPKQtA%ixVx8BZUc7nLqR z+1ocPniYR+r{TAGwbW%XYF9wy?vNI%UD8+i4`mOyD>%DO$}ZzBofp?#9DfP?@V#fEDzPQXajIzXf>y9{NA6w*hU1SLFJ8QkEF+ba-OL_`>I^l*ipTsxfai{WZINV$}4WD-NiQ zTj8Df@&iTXICbNTJ!{kaOG6RuqZ}2XjJQE>cp5V=;LOb9V_bgYibLZYTT2pO8;H7p zJFf2=IpLX_8#A>?j--AjlvR;gKD2J?5k4t>Ge!R2gF`{p88Yz`!F0~=Lg}hnoP(cf zBW?C26WaUK0MIgx{s{@~;kTFzH4C-)cYx-+DE06r%v7D;I-Hgwq$gFUYz127Uwfz@ z$}zLck7rm)MJhCOPf5SZltAB#Jtc7g+T!*Jr~f^4g)xSF7QXshFXI4ZqTGqiGxH`N zPV(jjF3pSaCVK}5X5@*$x~> zQ=&A$Ox@8~R%c%4!ZLNTZQP(7;qbrjymEabTpxJD;+nI9AJ-mL;Nx(;g%L8Ct7tk# z8#%6zL_(~j=enyN^mHtlgmLoYnZHgwVatSetkPqd|DQP>h_BNu&tvXqD4 z-SxmP5|Ka~xoG;nlAiCsdf*p_NT7{eG<~Y1=eoKc^mMNGm^jP(PPn|*w^Wvg-l?pC z-e!cT3`g;cLL|_JE}DLTq;Cw9u=OH=HgwiN-;7*$F$1M3HW5JL{C;Hy;x#4$Nc?&m zzTJlZ#D+g+!!Z_x1Nprf#&rJH2`bb7VN2&;1T!$bj}5om>`b<$UkIF0^Bw$N6D#+q zSo!e`Lo<+nME7<1?y;pmXu}WK@L$>RmuxuC{4)dd<97fv5RVP(j-LNO8$QB@7uxXY zHvB>xewhuo+vK#^(s?$W87SXT8{Tfix$bQS(sO;=48(c%n;D2_*zg=1KGBAA-P#Pi zf1wRuZo_Y|;kViF78`!A4L@YVpSR&J+3?qF_y;!pYa5(^C#vXajZ}=~U5Ti6@HJ4g4S?Y4a2^aIP8BH{X{wes&w4!B}QB z1Is%Gxa5y|q0Q6xZ0QSac(o0`)`s6{!|$`|{XIpx;4fomb>umTY8-9xo=b5yuZ$3l%<6oOC{Y4x8mO+2Jq#qzYwWa^l zh9_|0)(9+5mJJuti?q_T3Cr&M(!h=Pv>o8~m$CJ08>+^hORFcE>V)l4qD^hivUjPf z=8E+&4ydk{octLm3wD?Rq+!;9E@>8%OkT@C}F z^$m0q73DK%x$d;ga9hHhOzV#`IILY?&9a)dJ}c{2uYeyL6yCI3sD{nS`gL{qlwg`H z7#sX;qR`-jh5+2SM!Nz1=x(ll!zjq^TFmrNW0+1f)Z*ax+NG%XWwmrbCr~tt&rmRk{NzScTaRTDNQkq<0@dEx^YU*fgv# zNNcNQtq2Mb?bA!Lf(M-cL8CT{I1!ISbu}xcEQWhMTKY(TV1|8@4&Nx$^U0`+X)$ACC!=)&fI%oC1gl4T;<*Qi_cS3M!7E#Nkb7#yf zqzclOD#~G5ZywF$nee)<7zQe61l&knkj5`Hwe;qPuCY|NmC+r|ty@Vmn#6d5gAQlkT9TZ>4|7>7OhU zs}r@}fSh}GB^B;l(kFu6x6JM)jrO9WKu#-4c0v8X{BZ9+i=CbnKpJ~Ng78S7n<%YW zStI+l;iyk%+q;RQ8N23ccvpk>G-yk2wvE`8D!aY0p%9si8fiyGL13m{0~$SJ4?8oTVK77pMT|ZNS3UAU4wiYh20EB zd!x_|@%;4TmpDS- zQg7r-)z>u=XTjeWS*aE=h%r<917=bH$T&pm_}p#BKwq237R!-k0PLbMm*MX+jJ$r=JC?{bJ%1Ky@J^zGgY@UgrF4y-avOS@4 zvOUoRvc6Ds!S)5ARv9*EKEt--O2am>!O;J;u=N4|MA&q^N{CAPi12FY3H1o|QAY^= zD+$5RPk0UbAK`VnzR{+TXJjyc=~oQ-OTS__7IUzve14m!bX&n5H>825MFEewYu5R zE3}`~m+$F&d8r4;QtEjPA=;&m5bc2~5NfkNKCxZWfm4s<{ir8oC2d|%B|^PjA79lw z(B8yRKHMtX5m||>TXkDD%1Qo|A59{%Zo;4clK&?23De7)PQ+>={3MZ+6!|3SB{4E3 z=`E2)>u0+Y{LN`f^H>_77ixAp&+vIYX`qYpd!Bk_?i4Tw<142ix@rvzcu=${L3`{X5bI1 z0Z%7AEI=b*Y8VcrVd#gSrMg6c8@g*IBF(%cg!+aV=>U&N}d*r|4>A3OVsOOM35SCqwf4;8#K{zyH} zxuypRM_@U=xWA;O7Ca4XVBn)eHRZ^$pnr4UBAlojnAfEws^bm@nCcEHI~_ZCe;RiH z++||qFGhb5OxnjZ-tlpWyki4zVOQDEL#^74*m<}s$dbg3R@?Qv^)k&W(@UhvFX!rR zk^7I}t_{sNQTopt?#ycr=(OZEz30*c+|McUr}r#8;D8qkC0qH*amsztp}H%%kFo54 zes=Fg!HN8;-XqqgRemqTGRL|{%Ni58_XhJSl%455y&StjvF;I;TJcn*`*>dMsY6d} z5c!*M&b-r|?TzhDm$gQ}A{%=e51iVdq6L^q#l_h2HnH9UT{H z@hQ(~BSmxb{2TwGVPx3-tmfmW&ZtILC5`Cafhq!Ijuy* z=frxPBj$CfeK%?2i#KVL@GAoCWcCkG*e!kE*)%KJ!R2c>sBdA-sl60(k*} zM2vtkBwBoG8dZVhvi&1gJu#76BhTw6xHQRuKZU;-jFo-}Sb(O$2*U zyoy$ch2D0eQBQ5Z%lH59bN0-cLs0MS?fvfW{@lr#b=KbNto?rPwRSS-JSFSa{y_Dn zCi;G-4pfG=bv33xUYMKfjNkYaPD?(erYjb;{BoN(PxXR1eqWsz5dB3oFYVY-*2XfL zo$PTmjOPQ`zeG*Epy!-KGnzZ+#u6t#&M_q}-w1g=fbLPl(Mi5liKf=wqPMUB0CQku2u>~Y+P?{(Uw?sU0DrS zE|l93&5NK3T7mm<t!(H;``!7Eeo1fVDWwhQcRJH?Q)k$TMZRShbV~{ zGuaXHh?+VkRC7>YL~mFTT(E5M;w8%(xRcSaa7mLUlbM7@VJ-64I#?U8T2X29fsep= zj&qhI3`|*Xk}v=~rbDrQGgM!<0W3iQNy^Z4ijeMA;(%`v!u^bnC!uYjJ=+{B=3PNT z%$HgTM_~L-i21}f37v{qC$Wyg{GWIZ!b#{tI0pg^nu--$6LFx{|(OB;x z9D{WpK(5Df{Vb_KUpGU1IiI8dJf~nSMCATc>jvkS{n$yixvWYJ0q19k?jqK{4Vm|M zPs@=7q8;RXl%`ArkzXW_Fi2`ahvX2(Oowa~21zRBqF+Q;0y=(U^ml{cp#8`mitRjm z2e)Re_<=a_j;s}J5$VwSi2KZq{9c9~+jeOrziL<*`GtUlVMl%pi{!T$@8m0441;)?4tEJm!8};{f$tOqpJ(@5R-8el%;THSBjACDQ)9j zE}^2juGvM&hg~^Ca&lZ*uD$a=n!j1KZaARYLpWb9&f{9jk91n{e}8;4dD)5WhxsddX(PZg^ncD9-af~u{mn$AZ5cwNRZi`q2iIA0iK&7<#X(QAtQ%7k?gxi zU2NOzXJ57!c|IyrQWkeT%{!qg`$CxW-PRMp9QiVR z#<#xv9kpx279kxswX3YAtlGQwe$0cC*Ve3@^X$gXS!b*{)A3yQ?D(2(oi=}xpP@+3 zucY)K?neV8lJZWDb`9)3H*sWP$#JYXC`UT&Ph2zXqxo1_nDVR6 zhbz=>`;Q;3Qe5|8*6Q!c&6zICQ~q;ZKX2=3%hTY7c6*XB?2@9mkRCPnh7 z7(NU+neF4rLkcFj#RQ?a_U@bIn|CmsbReDKwPOVp0NMfdED z>wfR9op*6vfcFU{Kx(F`-PK-sCN6Jmr!w}FZp?b`z@0h?@t#p#d9z9aOasc1xvKe= z;0f&4WU7ih7Ehr^c|engafq5V)K?OCOMHRSAmDF$GIa@{M5pZ``$L!!iW-&%nVdA- zSNCYe3*ELSN_0u3pZ4$+ympd*Uw1N2?(gY|y6*0$9x#5=ysIeAUj{Ptn8tN?-?a(x zw7Bd=N>^}Z$-%4IGZ0UEZf+-Js`gQeD$Qrv9OuajST{pz%B_{TM6AOkl}J1hvVD#& z{+@;ek(8)9*%N(#GqOg+aB!VSrgm!4y1nt;R?p76P9hwNYiMW2zC^KJ5)a9(VI}@H zO2oN5zg^pbnmHG>axQW`UdVP1D~aEIk!TY_sAEd_kD(WRFY2<04al#saij{3)qQTaq|rNtc{)bYbenMXbP0i{~#_X{0b7&<#f;I`9I z`hBO{L@%I(AL)?a-`w$l$XiPBJy1JlrK{~?NXcX!&Kg6x$IgzZY)np-%Y$_=#~UjT zRX7fBLQ7`D3e>0FT1mrgcKPKV$KmR*-NBf=qgHRMM(R>F@1GH-G>=8xuX?BNPTXOX z>c6vIDRPH@5}MMs|G76*B{eC2;<113v_PWA7CxseqFu>yFK z-jva`Y302YybU#>d-1y))x?v_XIOh}Rwdlff%{Sa{q&57J+@wpt@o(KB_)<_fW(q0 zPoiE-X&ZWIqL6d_C`7qNO{z{S3tx+r`1Zc=p1COVe>{zR%*pGyl5N{43)ZtPc{=`y zO^|hj1hGP{#XUY>ZOzcOdna z;;Kp1q|zoKk5hUk)l521e(}E36KhJn_v0SRjG(2Uy)W)*-f9^@eQEDIw`ZKlqxQbf z_KbyXxv=fqQ>5Ged5?A*<(boCVx)1H7xPY6dM0~DjB<*W!E;)xak5kl^P*0sZn_C~ zXQDK2TG-wcm#K&b`=fkevGtE3#7sacRVIiL^;!t1-5@8m(y3h96^WQ(W>u4RQdf``hl5H^qxx110~TyOVau=WNhN z1TS?*xkAo)6(zrsnxfV$`tB-^QnasoO(f(69q~CGHO`xv6RXiG@9f@*yU=!YaZNg{ z`!3w6H)qBmu9GLeiMPaF3z`I*Egt2l<1dGL2M+qEyFPp_@mBE5EAh=x!dI+n@wWK> z(46LfqB&c%7Rynhiu7@;5-wgfyC~%_N3l!1XXmGhn<=+cOz+CTU32d6D;)?a*1+B2 zj8#p(A%UcLrT5pXL_M=w(XuIp?(i>GWe2eS`!4Ser39pQ3-F_eA;Wx8*Q08D$-USa z_}!WnXf@+cqVykW(A&0G*P#6W?bR9E&THGe2<4P-C-1BAW?)xCDRCXrS{)_)eus89 zq7weg>Pd)aljtGtS*2-DP{L)aOT_)5?S1iBna=m*>bWwl@89=Cb7D;WL!zv-_kFY{ z0b^rL8sCBy_p^J(Qz|gt-FsgLWI@3p+fXhv|JwUb?U^EE__GA}e?9$x>T*Az=9IAS z*J=*e#(%LV`hIv%TyK(SS?Ti39>^XFiQWBsCVFyRn(S}77d5MN)56`SWx4+%$o9n8 z7Lne3&)hM!WWzHx)flCURyzNZu4w)*SZ$oiJURdD{MZ;Y8e(w69{Ux!ZR`YdZ{bxz7J(?P<)Bjm$JmA%z2Kbt^B?IOIt>yw55yE7I*UNw;!s| z`q9KS$2+TMWQmgYk?2MJy5#SzC~J=eAd(f{wz?dWw_W$I5P747ZL7DS>@BP17-Y;U z#+r3udB+2&T@yW{OAB;K?RV5Cp}*is=m~l9`$(hQ0~G__EV{lBUoGsg6eV{R4Y8J8 z*Ou|wn!a6~2P%3`%tr~E(s1yUR=fV(T{PsnHhYo%ID8Xr(nG7PWg7JxJy&DACR>|- z(!cO^&qT^NP#fbrVr%2Shq43q0xflH-Lf{mqdMM|HIns4*2#?3=hw-^)vS~6$~xIk zpHzVKDmi@_=9Cv;jHNE6ma` z>@aQ(4RxOSQLjDux!&AC?Vk=6C91HfKAejYkG~_sV?&85M0vWlBU+xWo00AL=mc*Z zW*=wSvonye30g3AI3CO$lejtWq_M8_S1*k2d=H`S?84(kKK&`QsLfhBvg&Z>b2Ho@ zWp|vt{_>)@vkCTa_g{w{sQ$zJ4QlC;$-`g#C^T@-d`sA-By4#e&u+5s-hOeB&Ed`Fl=xGxx zAjwX<6Fp3Q$VET3=u~bFTQ04>xA!f7YOT1971~#xy2qOpOcnE{Z{c?6oW4*$^6T?X z8MT3Y_jGa9&bBQH?H}*lb1V2*3#auxx@WmqnP~6ZvInKunRLji-zv@ih5oKTt(ETf zzAN`E74>-9$F+MRr8R|ns8xIVFRkkhrFGXTSz2>ev9ucN^pI7?I&B<1$+}&S(4?Mz zuWe@=XQP$gjJp@EbgdLS*50{yzqfLyc)#4c>01kLcim3=$=*$Ozjymi@qVfI=-mtN zaNR-sGVjrEy?4h>@jk&j_ny)wb1j0 zm|{Ek$P~&)n6{mMNcG%5#e=qgl$KAfw#R!diHAO0_ZLf1{h4cqxWn65fo8%^jI;KC zw)&&%5`8nK^}XtNHK1HKVKl*JNP*l9x< zEV=IVKJQaCzxoDlCNBDbr4}RORH)FbAC0clRD;-1Xg0%%78>^p0YC z@3bDW1iz0m#d2}m9+vNluv3)lWv73Jk%R;5d9|lyn=$QEWzV@!&ppSruAT2ci0`bJ z#oUXrspGIM#|?c7ahq5tm;!OzzJ7`!xz~G7jY|(rMw>OqUi8avOzW$qUkIfZ{;Jbf z`2Xvtcw;QT4I!_7aVpm}(WCXycj`U#hwuNa*M@lHh|>L}*}sP%d&`;6T=uWnu~R|ck^i68a#>H@#ZZ)y9QFEub%9aXY% z?bcOw-mHdBwZgetbvo0NR>S9WpEf_6eAbuzcGaV50!A!l&qc9M->(*Vq=f4`EQKkD z({q%Znw~1LW<@O)9DT0~F{ad%Gfl*qCrqaGO?!emPV{+RPQ%SwS>(FIk3)Vj-qrNv zDB;gS@2Ib04NaT-9}5-xwqjnp)k6(Vi*AnFln>wN&$&>(xX-z~Z8UPjj@-EJsexXU zrIV{vXDZ8#rQ41?VOh%2%TmoL<*Zw|n=w0b+VFnv(@&l=)&b)?>jH7Eh1v1$&~e(O z;9ahV5xQ}#)?G@CGs)ncwBWOE_s+xEDyi3!L@v+vrVdI*U;iQICYmePQH-vA-6=i( zoA2qlxUMMT_qX8dH+x1VtbN@UPO&w&IgnP_IaxWsN(^<`p#$X39tYD@tX=$dPuy0n zU6hMj_t9y^6*x69=l@=)o%`xMi0OQXb{>R#I@}MV{)l|Q@)xTLwe@5wY|sg1$9EgM*0%L;Vr4 z^aBOGKeFMaxno488_oTdNHTD@ENZApO;K#H1n$g^OhF;=KuiQv7Y3}n4INfJ+ z6HXY-oqLlKr+Z^0TAKS215WqyNHDph7d6yhLHDRJuJUu=k2`@;L;V#+QB<5qahvd2 zCj43xeiLvOk6irle9avu_q8T`n+ZQ?!e24rzcu0iV#41s;UAmu&rEm*!pZO!BM&J* z&u~k_)GRXLlyj1X?p_n_H{rLMaLPSN!|ykn@W)K}3nu(!6aKmhf7gWfnee}vaBHOO zYUhC{=RuM`;^7^zg(mk)O!!O_e!U65*@WL_!Z(<3%9BXL^!b?yKVib(HQ{GW_+NlC zJ|R5Re=rDjlXxHMIQ1VmBXw1ae~}5FXu_wPaOzu@hT&ao!p-_D%y-Q0G|~Umg!7JB zX~^HG+nD$l>8Hq#v}IcSCY$h?CVZ|5zutu3V#4n-;ommlkC^bEnDCcO_%BWP?@ah9 z6aE(yo)9NfON+1h4%$+adzA^l)`TxG;jJe8UK9SH38y{_mbY58(bSjGX>xzngq!tO zd}MM@i1Zy={IX5>SQ9?ggkNRCZ!zKbn(#+V_|qo*hzWn)gr70t=S+Ai&YMWX@||~{4wF$Wd2$xK;2&MlEd8E=G+cfRJfyX<9xJnj;YX z$X&MQYyFVn6JMZQK*PoI((}}qP|i`m4OiS^y@Xl>aJj5J8XVC~Vs=1?cue=krTX_# z)f1m{XjnVft7*9qdNE>j#GDt&GA)vNAr?cnw-*cnxiXxE(KtoI6W6Lo)wt&KNuYY8UW3Q;XJwI_NthY}Cm zERG}D;!0n6|F+O!!E3ywg-$}YU?>`{ zEKtOkiC#-TGS6})^pl9RiYh$;ji#Lhs#KW7JZjIzR_Geil3-B_PUAPp@}Vn5VXr6> zLvJ~t3roA2TQ6;*S%Gqu))gxkXm03x5Qyf*Elhh{vMrACvp+shFUz8q+w>c{MNg~i zYtaIO1QY(~?N(I15xekP&f^dEqJO0D!EKsrt3kDkRGMPa^wPiH9zABV4-8U?7d&m& z%LD3dw4^kntzh*zPwCQ^*Q%r`9%^iX79?Z{BEq65QKY@5qefPX#Y-A))YizX1^V5$ zh1vm0tWAqMZmq?d-hrfXx_*`Mx;}^!MR^wEs3hoV_?-?<6HbI4NkSa(PQgGcsZ3i_ zv*H|d7I5n%oD(O^Q-ppP>!r}ALi)?}yRawg@)uJe*FbydTX=%-a$SE5lp(xAe4043 zB)&UC+^r}d5>D6kYE)ppO8+aN?}e~R({D-rD_pZ!CM;aJHs*hW>N`w?d%)7$KM+ zCq%g3BAlzm&w7=17aaAmASr}D2!il;AtCtQLI}RCfaJ$;@cVBP;(G*1Nt&mJ8{rh; zLwfI`{Wba>!-$8S>4ZhE8wjrhU&8siKAY>cbV~wcdL`X}IUnHyExnTb$VcK0nmkL= zLY%iJzDSc>Nov&AJ9szrZ)lIi`yC<5-&=(6|BpI7*BnXj$NB){(?}SA-V4HJ$kPzs zgmfpo8Sy1t0)GjYVm*WqiL#au<$66K(r+^%()VG)WssjC3?dx}mqQ;2;R?vl5Vk<} zfDq;403pihGlWRw4*;1C9y{QziZYuJ>3S_85<5Wn4TOvEHuy(~Oz8q7-(!Rb$8kc` zi?;|@BEJc5M}89`Tpti(k@1g&$V_a2io4j$nQs-kUK+pyI{q4A2k3O%!~9!??+Fp! zsZ7@@J)hQ~o)N!W*UNGb>ND}Rs9%KZ6y-fagrE7r@b(d++^U4%*7XD-UlgXxy(k}q zh=+r4J<18;cQ98Zybtw@5c%RH{I0H_Wdq6&ainVr;hm7zAw<5F6Cyu7fQ&EmI|<=r zJ~N#2kRFWJRzj59wQ)L52>PGtkZaTocRu0$SPvycILZm(FV_)RzTAWx(e4o?E9s_J|Pav?m#G8_GAK4<|YZFGD#c+>UZdxK3NEXE*{W;Qt8fAtAyMBzzS9 z5EdaF2n$gU36Y;`2oaABI^0Y+6ZMYpdq_{h9jJGN#i)0L9+Yds?;~7IcF(;zsZR{}H=D z{GXDy<4}o1MKS*2azw1SUCgpVKTdKY-;Yzw6!&x7#q6*@cWU;*JTcbEApa-E>{7~4 zU)>Nxj=x*P?|;}jYU5NJMv?=B)<;48~MFz z)AmnbEsW%cY97PyE$~BACHSG4iSYYA-i`d80fP|iq>=p4yu|QZG7j|;b_^e?RfOM* zcsKGZN1M<64{7A<3$QSz-!Aa$!iVIC>Kx(s7T%5giV=9OZ%ZTj9fyUHUu%grJ|MqT zJfvefexgGpn=oxz8h;%Xe(^mCp3+~i5r%XaqC^bc_;61Tyn@o92Xv(p(P@aL;gNn4 zFD_GXwGiJlBVP#(#X}i31mkYR`C`}?;9)!%AI8W|LQ>-s}YaW$H~mn9l&MG%|dIGEQ`3 zdqCz4a{`_V)f?)xpu04ZUrS@NuA;hmvGLB;3*8s_)t#%o=VTfZ+C(Xc+Sp=phwic@ zX*B)To0v>k^xs>75Ul^Lb!Z+6`G0jCVxJ_9tV823ExRPr@!;hP`=0WWFWvX-(meU9 z?~#cP_=R<70d7wC@9u~YuK%s|X#PK-9%UNxQ`VzfTNa8XV>ytE)T0aN!?;wxx!CFa z;xXLzujx&|p@Krw~iztf@pa1Mw?karzU)>LJE-H;yv=xO}Cp1-QL%C=_^i};HiIGbmCbw7N}HWZiAD_c4s)E>wRe=_+);ME~=! zR!P4a#~ISS-*KFt3IEMi=YQ?kZO%WS?r>dI8bjZM^D4_$H0jmntFfC*p(vDTMVo(A z-=k;3e|PoyUt52!{s+__Y|BNAEED4|oz(vt!o&;d0=x_^G+#XT;ob>Mr0*F385H&4 zj^5n32P%{<^@W7BcF4OA^!(FD$qAG>%-WZ!j+uI{D52}870U5thj^#7>W0f3-LCG#ogM9<%{GdO$X~Du<7cYi} zU#Vo5$K#aGxoAzY6RLU9yDSYZY2vBN1&eWyK11{SqXXEEjkcI&N9!q>&|= z`y9@u@qm4$H;HDZVw=g1^RobIRk^W#DBvexm#MQ)AC%47b+Hx$V$w6x{Cz$#? zw7(h*b-`L|Y+joyIhYZQy3t-d2kjoabAXVn5AB1-(@{3ne%$1A$jC%1ZTNMsN{eq7g%-VMs$&q85$VsNHK=+BL%+0h$}xFg<$)-Gj~!xNloo$%sE$(H1#%5aIz z608i;4(>(e2SEY7SmiHddaPwHf0S%@2^u?Sl;Ym50ni=w=Pqjr(^l)BNt=qipbh(S z8~Sp47gH=%OLyU-#D1y?As;ley7?u*#8PG6hc><<>8c* z;dP6K?Wow^S=bd^x4NQaU1?zVVI`L|^=CFGHz`BZd|c6VTi9l^LWi7NXxgE@ z&8d7A_p$3tTwJ1>JbV8-%M^=qe+T0yxgP6wc%g4Iq5;9~gT4f7_KF|&*o5vnLorsE zu9kw}fl+U)9+u)!@-kG*k__C(Vx4L|8=qq-zNpI9YqfoJ{N53+u*GIA&8o75EtbT6 zwzlC_yE~P$7tM&n^Fd{(Gsqf}*W06&f5*WjXiu{g#dk4emi&aS1mDoLwtbElUiiQv zQeMKS4w)mnGynC8C(x+Sd^Ii-ZKakN{I!cSGB|3Y8`&FZD0L~Y{f`>+I4Qy8o*?+K zP1cNYN1XjZqKV#c&;%b)w?eFc#+fkPlTGfi)HY~FkF^;f!c!%KBQ&Q+5bzshq8}va z*^g?*xQa#p(@gYfg5E93#p#>~0{RRSz1A^E3hFM14X<(6hW=e-a=%D^DxeLc(%A1g zN{t#DZb*xDkLEO~Y`Cc;);(Lqhi4u%lPzBav?;?(^utW@%mW~rEoTo(H6O{!q zcv9rPzsZ6=S@{m2G#qd7JfAegIlh#JIM3%vL;RO`=wCISbkxTl9cLb=qdwZ`s2kGr zZdF>b4yPk_WhVCu6Fys~XHKW1{!!+EBrM74sBg_W&XSjo`W4b~&Slb3pEi(KH}wA@ z-F*_?(@~%Hn%s}*?(YltY~`rQ{m&*mjv1jF@*io!OHKIYCY)!H$&%LTsE-SDe3rn6 zi#uAQ?jw{A-Mvh>k5snsL*3B-$4vNhCj3nk{*DR%gN{E2UTLV0NqSdn7r09qqvPy3 z(oh;NiNW*59l&rB^NTdp*RSdBj6)hq@sb#PjF15#z2=VkBnR^H3LhcLs#)HG>u?q~ zENW72S=QRTc%?R#hS+7}N=Ohdp|o{l)8Yn5FGId=v7*UhnZ9gUwiq(pO_YJtJ<>$D z`@aL|bEeu-vQBW(=$6OM(}grD&Ves(#--%ED<>jCjKB#;T=LT>t}Lf3WX!dLWsn7f zWVsf+MUc;x%*7{*Z_@?am$uv(`9LlYXm{`kIuR_0Ei26saMZ#8Dq<@dZd<@tDGeQU zT@b*v_R@OEG6*PwOcy8?{Q8@io0lq9G%a0*g$x7*LTt>3<>yQHLUfLo$x`xHi<~Y! zya-<{#0tpyUwp1S@Qslqf?(v5h80U8>MulUBl3k>RyX2qAt7eiA_e#55qM)_MsADJ zi^MW5D}=OaM1Y;iq{|Icpta$)hMSupblupzh^scSUox90ET~_B6qP%c>mAx6k14}j zPz)r22)>~xG*hn9cmou$6^j-?(tl|~%gyrcCR#NIC8qJvN<#EHD`6{w8?}oRKI%N+ z@_@LP)jCzXm&uBT)d@T671~^#knIlb9e|Xt$szRNEHmJUTFA=~VnHHZcc(qw*#}U5 zL%4&^4Lm{zoV}xUw$_&L9(20XAGYly=0YJfAm!ys2*ICi6yo zCwCtq@FxkcSCk`!H|TPI=rE51xB7MYz6M1(NgUxw0;D_~!%z7(`b+sX`bYT@v|h@H z0Dk^c>tp>jbmLl^+FHk*-`qtP&H8Ehw2zF9T%_UDocd`5jSL|_-G6gvBDzr9W+J;l zD`%qWw_($Q8{33M>|{fxS;%(F)SN|qkp!|~i@JzP&|ljYCF!SC)4c7ciP0P)4ULA1 zM!CP{ChErpnh!;n%aM)21zL-7%(8J>Lm+Ft>C1ka5uKvH#v#JcaMPSlZfYTnOk&y+ z-Qm2p>F-|5MHTy>w4R%b@JPcph=y&1asAbasVCbb+LMM4+e{9x>5cWoY%i(V-?C5U-9_ep8-Z|!y{swh70AVD*t-y?Qt-z%l3FZ4w zO>}L*(Pc!8q}vZ0WB95OJ}2xLKF(c9$8>oMkI~-)z^m~{Bl)qdHu4LAUq0-}ZvY<2 zkMj^CzrX1;0K!Oq=YSdcZ7`%CUL*VpO#JeJS81$b_~pUg$ZrRj$a27~6dAr66F=UW zncEM)>rHf=-wf-Ajxyo+kL2%@K%D*1eb+?yD)91t=#G1^AVi=-NQXIh-_-A7ucI>70+sE6ejp5X*SX0v+oK z*a-6^UN~oyM)Ko+3BzZklWwGy?`uu`_TmHSW~8HTM5Di?BY$b+`!7uXl1{cYq?Nqi zF!B4z1^E5>OVUxM-55UV0_e|Q<~ze$q6eIG%k*~wy74K1J^tA|3Nr=)FO>+OjIUXa zZ#MGnGJGhFq$5OBB4$4Lm7rlB3!5rDOc#7A%7Ec>Wjz|l`wbS7ALpS9^z*AwWy(NpFtEA4slUOym1{q*4CT=yYIuHu z-ISo)j>er)GxG#viPf+5#YmNa2l-`o;h(m(}5&Ct0dCX1NA1Lee)R^PxP z%CZ&zu?dWrq8PdB!#)#F-8RPK|AK+w|F3Z%)0_DrbB=Afu@uO6OpjyQBld;T4X=^+ ztG*;%0CezRG0E58jJAC$PznTSB=rxfVCU-BYU+{q@8>K9?W#;*TzTasnZrQux;s z_2Ie|*%8-a0j2nFC+MEr7iuKD&AY2JBXDaS`Ba5dS}OaL(xM2x||Dtubnk54X7 zcA%-2e%;uQYfj*Xe!`LM$-tdne><_gQ-mda#8w#&iQ7o$B35(0Ff=t@hPM{C_{n&` z@IkrQn+Uy1lluu#G-ayvlqnG@GhT+JwW?1kD~|XVO_|Zcr!oEb#FQB+ zQpVYjYfd1mpK$b-GH#JFDTr0F49x}e$tF@}Irg$ye1?@++;`8mTJLsSt?K~S0gnBH zT3PA~d2n;UhC$*C!35v%z|cTOU+Aj1uqEz_E=#U5c3OAwtOwO*+$D!wN5(L=$@$a8 zjyUdNEg4-i##=cfIWW14w>T#IaZ4*;hCgSP#Z?;Fy;tx)*;DPAE_^w4DEAO&z;NB+P<5AOw9^&tSBFh`+aQ=fg z;@Z3q&j*Fkz~!rPhh2;dqse0IN!Z@UncU;Vc`DAQG-DozB$((E1U=^}nlX<<5>51p zg8rB!H@R|upL3b0Nfz|%Cp5#}BWk$cA4@;LM9-ckYPjDYOFu}^bNsIvOacvt`~9)> zX@WjFf95DFYPjDYOP>*S#2fefQ(|l~V=(Ub$GV@t-yiGFnRL|Hgmw=jo`o1k`(il` zWS^RkCms1eK1wd;5fvt!Yv9r_AC^i4kT?c^5kveQJmg=EGQs_2t_Mj&_h%&nNc=b+ z(ueV+BlXSzN<;T}IRL;r@rzCP1QR~PgkNdGx&JE-`LzM36>}mTFDUo`PTM#)@p7QTy|G z#Gkvv$L(6(Cq-LCCpW5#Zd=fDD|EZw!X2@gy+8UGQ6LN5s8Hnz^~~p6E)RK=-H}yf8#ACi-jyFY@4Y= zk8Kcju{jBgw6#C#SW5>!0)><1mAXAg6QYuXRN!76XT7F-tB$wn_y!%{tmAuhyi>=2 zr{nMGxD^GN{8>+he>!yQ_EkFGsN-CxB;9>FzEQ`Y(D6Mw&hzLz6siz8Fk`K)$xUdnAj{PEYsr;!Q*f1_V?-bI|#AScnpx~ z%J~b^`2#{6qWL3Xj@Bkwv7yJhZ*^*OH`5yvZBnDzki|NfBHH>6^asydSpGJ9PjLtq>&>%H!L_NA*6XVNu%Q$H%E7* zbKvpgG4dnMK3p2fZ$2!H{QAI;ACezOf0Eywnsp?6yTL0AJ82}pm9U86hap}7cH~EU z$!`nZjp2J3ixru$lScA;02W4m^U)A8e&ol|qvZDt-i`dY9^N0n1E4eVYc%ka>loz! zFD8CRzz?JmBg1zTHb#EbwJF0l2yQZbeRwy9k1}TY5pEhCQKqSpA9Z!Ik6?T`I+gqe zfSHkBANa{Ifh_XQeJX|r&cdj8;dj!=_i0~}j&d4bh97l0lXr>k5&c~zJq4s2pJn)g zQ&2kHh)8^yb*lA9mv%DHjeI3E6mw-e_@&}u{b%3FG)l$8G?ryN@?V+RnOD{W+Q}Aj1e*gPD%P zM^xvL#7C39_lR12GUbuU$1MfcvlZ6zuJYPB7W-LiqO~_a33qaa)~REa>abN=r;bZq zr;aaKr zcZ06wYt*TJD1a=4h5O_&VOMOX=^S`7fx?fTUDD+QD1GQ2aonD___l{b-0Z*vRvtQwg zMUg-5q@|2&8V5f9Y?=LdQQ$;EeK<+!JBFJ~OP*`8Ogawu*QUgA3BCS=_q(|QqOIM` zcUs+kJdJp`W<&mxdum;o=eec-j4$^qpDlewRh*TOwz#lgmPud4KRi7oR%sa00&hWG zMxg%8+L@JM2i8{-`qTvL=pwA#s5Vz$a1quBTc%XH`rLDi{6%72rpWL9u)EcEl3!b< z=5%SXv?!k(vwNQDbqsPGA6)G?TkTNJR?D(;F5Q~}U*u{~^wvwoRkVV#Ea48z6@$a) z;$P}c5-UN$%H%^1toVubq1>ZAB}f-19tB3O{qX%5suJa2HtpT&c|;ACq-`1r_|1|5 z8#Z|c-k-X0(5B&!jCk~4)lg_vEqUq zoYLo>le{r$lXXme*plc9#BXW#y27e0xiVo(GEz^qIkqr0lPePiuGo@**Un9@Oa`8^ z#T8cY?(*Nn7g>h`xke*2l* zb^F^hDrZUiJ08E|%pJP@9T}B1y8Sb_BX(dH%iz&PGknKYyEEH=Ty;1rReSMqH3iU7 zJfW?nZ5rua8U6_?SFHS~t>TO&XCHoTm6LToE>R9#EC+YkMLBq`*OFY{pv<;THJpxRI|HMsm17=5SuFcMR?amgU1`SXIpTxK?Bc zd7z>AerR0Eu^~07-sAwvK?RXq`Qt(va$-*-Xk1S^_V+stKXLtDE=-PYsDtQSf zuXBv)wp{XWorz=Zy?*=UU72dhRHf+St~V2UU(Zx8T9T<27uz1()tfnRSMSh-UA;x| znd;c7nd-PB*V&c$chv2Bb80PpD(-3z1_pbq zd6qHCxJ$Z91HVG<5BKh0o8fn1MfJ8tsM)T{Gl{m!GY*>zc37Kl5jlIimb1^|R@=C) zoWN0wmb1$aSuVdQd@c^Tn(%tJwr(4&EZQe(>X>rM_cj4Y4eRi}9`9>X(>86yd&rr-G2{Ns4Hs?BeI)PE zG2eSAQimV#zN4;xFC&n!MXSYcqg7=6b!^PsT7TxH-}R^=DQU zWWatc1M{N5E9wAIyj&W1W#nNgX#H3O}cR$AEeX>CEmNwff##MfCC*dipLMPLtT zQ9cwc!kBJH@451<@HwO%+XVm9#d@1i6loI*BW*&SH~(|mgo{O+FidX~vTM>V&?a1j zHX&2A33k+*wA~5Y5?;~TgWvR|cvF2ZsmhL@B+SY0FC;6v%3b9Y~Yup^} z^w=M?ZnkWWd%*Tk^5&$?DVqmuc5F`A{FIvO{DE=7!{7U z4Dk;MOb=TD*P@MJ`>Mc*b{R0!X>|wiEWuNbhv}XQ_|+baU7Q0~BE~NEzd1+K3}+Zo z!?PZoQb$d^pcj)LVJS}#XcRo_5lin7^s^%jIQxnk%2>wICzF9*j(d$LJwnSD?zzO$ zW6d4*8?2HnQ@#jDnaWuD!Gb~Pk=Xeg6uG&amc znF3_THAU{>I02=h+Za4_x8uhsr4^wlYj&}(>MQH()hVg;aP$_;r+&0I=%yTynmMWS=0SVfu}3fwN1QB&}S;k zb-Y-(4_3aV<5L0Ck^Y-WtQ&@ZiwVD2ck^R{pT_*qC-HID$*Yzmz5*L`p1UlZF(f6q4=|)Zh9pK&ul-fSfF9;9f5Uu76{@_ymCKaHXw19 z2_w$dllua!v)mV`*4=}I;IoDh3rcGV%XFC^><>H-ocvxU#J<2QgxCkjCmr|+f50z< zaL~V>5#qaJgy46a5d3mbW|KfXACTWS5`y0x@+sH%ApqI_(Z5-=2fy11!EXoc@f}zR ze?cnZ@uu!?Hu-~&?JfN+BLwm7gz)!yKz{!+A^hFV@24or|Is1q9%ZzggwtU8AK9;1 z(X>Qc(l^(b=q`Y{(wyg_RgkE)EOci3NO_S}DEdjnNfz9wljLS7!coV_cm0*oe#pM4 zSZis~U*V22GZk}vD?@K+{{C%@|50);?7yV3>o2S~#`WvsG_8-}c~#Qzap3XdL6MB? zC$N6AzmrDt^T5K$Zz}lld-99NBl$Jr-N=vY)PC4WBl-DZVdPh32p{=Mes|#A$nU@f z_}ymWca?!3+a$?vlZjs@>T4J5q>W$lScCU1uTsG{sw+*yU8yVkK}h6??!%M@Ou(= z(nx;q!NSNd6T>~p53dn^=KYTC$b60$q>=m*;i-{dF__5sW*Yc$EMW}a5`4t6D~;rL zt%>eo(D7SoB;D6wXY{uf{yIU#bh#K0=~%wF-$5w%9*&`qaGWBIeU zD{BWS%1+4yZt`_$Ai8(L)4LJ9To*X!JK?fR%e31bzF05UG4^K$J&jkR*X8yqVAD3BfZIM)7QGHwsmf;NDigER@i)VVCbyx z<1FT!f!WnVYbFM>Q-&s4gULa~b*KON;618k!(W5t9?K|%suC*!hb;#C4|^E#?QvH3 zdOQ!~c@ocFJZvM@D^~YrJj&;oL|^Jbn^Vah7UU{J^*+m}7lZDcD!(;kgO8ftt5jWQ zmsP9}@q8%GU|Owi$3cFRoNw>8MO+-Dg`1I<=R=8e$3%W>#OZGLMOP~-!WOJnXnyo( zPx{mY@wM?jXWN$H&_Y#|T6J&5k7%43o{v(~i7c`9fAzW2utk3i)qmN^~gzF*sc)rgH z2y+0{f~m0@>v1@9>tv2iRS@2T@wHg%#d^8RpGn(uSho{c>Ix>Lx7F&@x3Lm?!;-g_ZBpH#;kO)BA6BMW6Kx57?K3TX?V~QM zd{o^YOt)NCY3*xYm{j?rnn{)<|0cC9_(Sg|b^eh}>gLp3OMGAZV$T^z{8)=(vG=t% z9#sROsg-ek?M?gD+TdWn(%0^vaV90sQF&C|ab!Q%fFJZ-?f;oN+d0htwz|YW5ASPB z-d1}Pzg_Ajd2kGK^37uUXhi_^bfUF$xo?kbsiW}thw|AzV- zsu>@~qYC>hm-(O2V{%k2Z#}ABm3dSR<{nkckZQB9I;t+I+N9RLd{kX)-=vnTF^7G9 zYcwxp*aNK<$cr`LGw*$dU4~q-$gnf*ry}h)yu4qX+N$LTW6_#?%$=e9mFq9B??mWD2zUpUcTUi3iNeaq|WBM5m1vFzpeaDl6ClgN=o@zXF zOa+|ao#>lbQ(7H9xNG7Zb=Uj}wZr`b0~6|U0}5L2?1t3KZh%h2r;DuHRpHYN4wpw{Dl3dveU8#fx?6#HM0`CI{ASI5tZ|oG>vuLaH2t9I_f6OhLOaDcWdi2n$-?8nlaD6_PbzV=)gi^| zo`;9++EsYw;c3KEg{K-%08cF*h!eOQK^MR?ACDhT3chbcjLTnYt8S}N4`u|~>e_1G zQH$Set8bg7?aQ#evtzG%QQ%dqQ11+Io%;8IDgH6*6a1Tz4x3e1@D^W%T9T5}ykq^P zeuqC>v~fzlJN!_n+1FgNBE6s~;7Czkk zqI!J7?{7Y!);j6eMEEkxpR+XHzj*16rPui;`*SaQZ|S&*Kgs#Eb#uCAMtTU*YM#4g z$&Z&@S$$>A*d=lPW#M*fXGQ+uiJl~Xdr_P}$uFPFs=eOao4qyb54*zOtPHs_{Mw%# ztKAi~uCNtr_*~1U^ulb_J(Yb>?qoOKG6K#(THxM_&$`Kda@~~LDK$m@4e%w^vn>40 z3a7uwAAOSGC;x_5J8Nu#aoBCL+iVfeV%Kz0hF^VwtzL3|dtc+zOm&_R&|>qW=HEBx z)QqZbYW}>~4D~wBi-{|c?4R1hvcWRL{Fdd4Ws2oz7a+?I%aOU9u#6bX5&J7Uzr(|F z$g;_D$#U0-C(&XHTsJRc-_T}A3w5IpKDa?$?OeSqqiXfuYuc2YwFysQFG|^%dF+=7 zwTI`b_Ca&i)IrLIZEIm)67a<5IBJ*%nkG-%-s@HSU+1bx5sH7)~=J<>g*XdSDaI2#oU9pK)Z&3H-~vjH>VM-?r|K{mSS|JX1aKC&@S7liSQ4-^~5L zZ~OU2(=#kZPS3C|Wo#IFI)%R#f9kS|{?+c;u&>fN-Qx`XFnFW?bg;-X*^^vN8mGsK zu}ye7-VZBddvF3I+;ITuxE9YdcsAovU^vEgV06T9s`n{5?olrVEujiOM@E`nO2-Qf zcbV^!x{+v$p06C*Ro@qiht5w&CidF~cW3q~X(R9(@{jJ`nK1s?DC?wS3lpXtTV$<% zJ-1JjzZ&OPinTCMpDF#y4O{FMR}t(_bbr`m871ucl+5}*C4;tI-90^8sREBi__&C+ zzvzCeNBi1pw~DWy?>-u#Q|$N}rBNx~*Zqo4XSe?X<4%5~6#uCE1?&}1tsEx$ZsqVA zq(KNz>cK>x-DAnIIkT@OCDLJ3Ue21}bn^%iX$4KRohkqy=SSQC;DTb3NKT#6B z3BHT{p0Fi;1nNq>7-Ml%6{nA?{;j7x-s+x;2kex6=nj~^A#lYAwGNyo*-z?cdn)q4 z`AxB}`SCIADmyakszrU%cFYfae0zHm&i+`OClc&cA0NAT-vI1VP7$$_`{l`pl5~In z+;e_dj-3~l;K4RuTkY^bP9Wz@oGl|9vaHz~?-|e)a=H8^BIi~>t_q{R(xjrlc3YhG zy}=hUP!6)YGf)n4@f-4IcW+4;eJsm5{@67MWyj`O^Nw8;f9bI;_A8Hprs}%xp$Wlb z3w(u@+5Xpiw9;S!_uuOI$h>y>U(w41%Y)1RqR34vsGb*Zps~69KZ$&y0DD@v*g?ZQ z+}%^-tr2^q*%b+gl~Ku_49qW%*{!e7sJ7(VgIzZ3>lI#$b9Qi=H#Lyz?>;oe=g!IY zuNPd%0dpyw-huzKZIu~l$J=`@^>NH+ioRq}t;^>WaQe!+toSD{}S3JS?(1D?W*1muq;Zm19mTKQ+frhSB78KBPUAxP%BP6D4)DO#5)ueL+e~I6hlB^Lmjs|aRR10vlivXaDvCR0=kVO z^=*(|?%(J+zb?Eha``!ZZc~deb8f@1E4twvM~g?EHxD7ntHa(o!m71NGQ@U-=Q^~7 z4DoQ(y=&uhj|~Alkx+Q-V(-QH?&1r6cdh;%&k9`=?>IIv67m#1E9Wu*ul3YsLEJY_fQx3;Lul2(f zSRb%Y_7r$}k8)lg-z`ETV$7a{54d2yXBE<#Cwda4#!+shbzR}*J_wOebY zlu?%a5|88X%&d(D)O_$eCj) z`fSN_AwM`)&A^CJIhpPK8PdC;Ytzd86h1dg2uX?7Ui zbMd|w&+WcDaIzu?D-y`1dTj)pzwx$Nx7D}RBCpWSVeH$dOcXF2vS#}asn*mjs(tn$ z%vfulUDr9|jAhgoHE#BtXZg0VbFzPezhQ0O%AB>0E2aCKXRCyp)xQt?wy344^5llK zfM+*W@6Glr;Vaiz3T)jRYx6Y6HQu?tYijJyRE9vTZU~4FC8Oji;led@d_FHrVMZY3 zFwd2`#M#nWqGT#z>zYbmE#g*Nqio0thgR^M5ytq4tFkcLKhsxT%WswN2dh0bIc>>p zTPxfj4p>d8TvyfGD<{M&z3;5fYrDd?bl**pGPfm5$$N8UCraESC~@~jN}MI%(mf+= zkGsUDp~A{*vXT08+q~d?ozh>hazZpJgM?$>n7GKf2{XHQ*duGq!qM-B4t4 z`=X4>WWTNL@!=P#h*8z!6(_LXlkc?!GyG$G`86UJ5N^T{YK@i#Pp`%p)0^#g)wq1W z3@FYlfBGT&$@H7j_o4k9^jY_>nn%~vV;|QbKkMF5y}^5b zoy~uLjr+r?{z0yM%w&=Sht#Q8y87B%To~JMCi9Dr661=H5_8deoU_dZoa=Wquf~REc&d8D)g+5aV^7@48u8{)qwQ z;cIJOyo=`xC;F9~YyH;-LU-kaZC1W1VcZ{Gd98n5Ag9e4&Qj*#?KQ<3#>@t`*9I&F ztTWg8ZM}Az5?;QlM)W6cv@=C*905Legycfv{YYc zx;QP>r%ccxaM6QYt%S>0Wdyccl-^eXEqRq;t{sl^OsJn&tBngR)0FVO4wo3ST5&qJ z*k?gGAAKmFVbS`}vG(p<5i)+8C-SGc+c|4gEqkX@_EcY2!YeyU132l>yKPlzz%qvZ zl=`3bTwGUv@&L-yGk7-O*^7tsMa~-)7&$NGyEGxVt--Thr(t`?HjsTjX=K~TK8yY7 zZk>*~V!2!iI}sb6EM#mj0!QjuY%V`fF50?FMVw0gmhs|UgwoM#aXizTI%rGx!7IZFwr6@RgK*x}ndJBSU1%{6g@*4VAEuGz($w+4?7q)8{lg?{ zw*NbN>Hjda-n-tnQC;kGf0%yd5I_4}C45tdwytrH_a0w*+db85YuDCT3R4bm&Z+O) zfxgVL?OWaxOSf5Ve(#5ki1TcGZ7p@6#)f=b)JsOO{*{fo)_<4x4YfQi&41^tJL~SM z`MGLOzq9tP>bq*7rva-A^?h}>=K0;9Y`$pvC;5#pseil*s}}y()V{LY>TavW>P=s$ z+P7*5__<`4{^f{-JH(_J^Dpxi7R7Rr`PGPwiglOK$k# z$G6|Q>*MxT%qb9BWd&f%cN$U_RyX{z!MBj*K->~hkGI2fN1W(P4*u!=QuN@=x9L4| zaH9xhE5ny`SVtc{HCvQy&h}>MV>oAzFJf1t+r4=jV*`JZ|&>yV36F;=6O_ zf=WJM2_83|T0FDyC{AbQ=&P?*e*4>@Ib=JJc6whi72lWX{YbG6NyD-CcF?gtW&|Ea zs%#5giBU4gpHsU>c>d2RW%R7NVW(z!(=mo@@B8*sjISHq*-Ad3o-Egho0Os&hz;2!J;?c zCwlY3StG4Rd}QV5S<_-{D$gXuPqG?E03$F0D6P!!5BFI%o%{5&=WrIe?YVsx-bph$ zee}bkG>Y0k=HzK5&oX+_DP;^=l%&O{7!S6ymb@E!CXQbHzSjRUjcJ(YvK^eQr$75| z#fnEa?A!HM#U^Gpme*MmI4@+m>Cf&Jd~oiQWM#6$@zuR0m<`3t1QbxyYhuBBK7Ool z=PAk$A~al)iyEG(jr~4eoTcRV+{3rRmEY$_K8dB~8QWMJhoI-)sb-Kz2E%(!V(AkF zJ}+PchL)L&ndjCnc7CfQg#u})Ze&bE_<4x`*CifCk{7Ovp6HW9J#n~Db2bLi#G}g0xJQ?|F zV&si4Hk=lX4S$)!qcHp);{<$PCcfW}cg>W^7XfY1xF7rdBtajFP~jk{!Pua|Hni1Gdx)m z3TT72kl64~72%1tA5%^ASD5IpFwx^ct-;t7w{VYIxudUmvnkU}?$b@~6(;uzlY6Df zz0%}fWpaXn%wJ5?sX>jStj>cCii-id%ekhwh6yd2^efx?%GWFS`*Im zqSBE5QHcN&-)X{s3Y>XMH_C_{({c7J{psQQtM0DRCo6;TarFBXr7#8`pj7HOdqT=| z@Vq1GHGGgF^^NBW_f+LB-JS7F#~<|rNh9K8!aGg)i~9GO;`>acTgROOAFTA~c#4hu zvy{J>zK@TzEn1ok1Wu9?{G_A*=DB*}ynl)JE)|&QFV)?(^ckUebbOxhf26pl39rJC zX0hq}piaLVZt3WMLnikPy1P@jyTm-PFBa}&6!X1JeY*Qq!o5JD z9&GYkFYqE|sE((CE*<@!3%E24zfo5;@i`{<Xa*E@Cs#q3_e|19D}=+ zHXUbqO;f6sdt-2)@3-=mjzm79o)0COY%Q1MB^0tm^;hCj;9D{q6Bz>%+eeY35 z=(t8-sazW4UaQQC!O@@K;IxoegAA5_k$2OA=9U#oZllt=u(g%%l(Cwi+}6CfnPO-S z3zw~E9T&vaTH`Lckd{2nd6I$~u*OZCaB0b9=iMg0eCe$VZVloZ7pNp`TYxLgcx|}2 zr3>2YmM_qx&NS(*8zo@_^atY3uZ4?l!M$cu@~gFFG4+i%EL_sGfENxm1p9Z4y;zI7 z0sH46;u`BDWa>=hx||&oCYJc7WzFW`(Mn50%Ji&&G#f7aYH7l?WCncU%GRdyr2qOC zzKfBzgJcqz2LB&>?*boHb*_!Cy(gE+1qdW!0s$tO0D%Mu5Fm1qA(tT+AVERVqD)8v zL%C#fL5GTFfT*anML`8oixm`=V2IG-rGQGUww}{TwLK_W(-w^tZ3l^VKx+QayY^Z$ zdv+#DPkX-e{l8xqti0>;u4moeb=$MoyPfN_n{bRPc;sQI3BNgqI3}99rn;(9@ZnAz zbQKn9*W!eSHB_Q~UC+Zpo?@4UG(9A>&uqR@dM= zbf}^HtlMfA??){saE6GPP7V-N7mzu+1juEN>z7|zvy3i5LK7peE^DOkkI~1_aF4P| ze$A~OrKwr%YQzWo(8Lf2e2pI3-4I$|gAdfNS<&ExtFD^e42_hyLRs55emrkDt+tiW zTOSf6O2BYka}6o0tX__hu?F7;tY7QGckM`E>np1(>v0*gkv0YS+kU zC~I8N0Huy=C<#6)*igHMRj*y`(z*p9%h8}U^$ps1Mnu)W0yS*7dwU2pdq*p%sQ?dbIH=1SxB!1gCRzw7xd=UtCxsxP{9W!d!+hP zOIy2a8HwwJoZK9}R#Gho9!hcqNpRKkuF1=p04YU3iqP7d16~q&FmibduyI|S=oa*E zLu38gszww*s^`>NWf?@EN7k%j3Chl;Wr_Ik)zZoae8~WPk5DJ3CVrWg1Q`XGhcNWJ z2-9-VG9}f86~)&rDFDa#@yqdrKwd!jAjg=pFgP?k?xio^!5fg6#)hiKh9zri>4S>e z*BO^qQXLy=pxU!`O@qGNbh$OagDEt?gYPwBlE&zi^Fpw3>gelxG*cqw+6H{P5JLwo zTEAi$z6uF-q)Te*U0OkT$wFrQ-llq_;vXqoUbSR-C8j>jTaN+@XTuuOB})PLmS8=f zCu;b>lp&ZWmQ<~w+60(H(2_NowbTi`nW`FB(JHkJpM2Ef zWdskTPi_W+(W)zI*EXOf>uc-zWXV_s*7n%@v3Do>fY1fH10F2WDrh{>o!GAtt;gPk z=q8+bh~9-g3(-cV-L1Weu?+HmpRwNoV(5dw6!@8->OtB&GY9=ref72zzLCKXgJOUcFt@3lRIP zcGsEsc{-%uf^w37H&OVzK#4z>aND$WDqf!Ae!PsifWkrP83MJJo9JPr2c>q}BWN=y z)tmM_#7CMB$WKp8V)4kEw>S1V)#L}|cc4LkK>kCF{aDbS5XGNYh#t}EPk6i?U(ni# zaAkXNe6-gb@KbvwQ99I%mmhQ~`4NvU;*`osd_&29RMUA)<++Xgpj!k*)q>?h`CEnm zC88+b38E;UO6`cZyrPI6XRMGY@^cVH`{O4&7K=n&NA8Q-y*u(hO5yN7A>z5NT=?m( zDb@FFqNpeDpL_A1E&M9#e~~Eq9S{0=J>rSJ%)KlYh2rf3ieMJ|bFCk!zbB9%?ZNvK zbPf4m6ZQXvxT}tGKT6@Cdx*X&?#jQ;*m3x&-6ZZniU&@rpz{Qk`0L3JoI8lVCh(EZ zcJg1V-Bl+%YF8EbBPjfrqQAbwn1{lD#rWNQ6+%t@qW*`_{rhX7>ld_{(s{Kz_Ob1Z z{U`ZBE2#ZIJ=9)=Llo&r{#6Wy?L^v&^H*%hd&m$boZ0e^Y;EN0a4`dC;EF-DiZVql#^%& z#s?_jY!Ngy8h$j|BBJQ8Rf6syihejQ{Pg@){UdP9pvX6gDB3lZDDrm_{S*3y=xMY& zQMA)$qA1rEqEBKR<2fziRuFv}I!{3Ucr^5|knp>>bLPcXjcF(??P zKl=njfyVW(h*OYOEyL+2$c>#B6`M8^q356wmXHIGE=C-;b-J$!hz{Uk4?)3{;Z8om z*l@?4U@U#t+;H#-MvDAJH-|l@1ey7EvB!bM5Kntk{R4zxw6+fu#~|ADY6|z|ql6%1 zucwkAi%vTRs(`}_KU(x2uWRzqO>ZzsFU1Qe5tqAJ>VNESg+dP68q)??=jB^t;qPU4 zDPnuu)$-`zqZPqTeHFTUx6>A^bkY*YaX+!*;Nj?73{ zS{J^JF9$rveCeGOX|SYnla0Svu9%Jcu-8Mz4!Ey|B_6VrUn#5}Z!tWSRvL+CM}Qvh zIPj7YMtD)M67NR1^?0JUWBYZ*bB`yxj)8WZ+rAMD0iY zBJqwJ@JLS#{YEE^#Cyqrm!~V=ARXTC40smo4e2*NX(Zln40tx+<$#IGN8?16?~DPD z^u&adQ#u=fH6RD;!M6y0X=J{1c+$(23;9a9qPKQrz9S8IZzIt@2`2c+Yc=3`fR~4G zsz(~E#G7TnTaUf71@Y3z^35>d9nqD~3TBB%XBK^Z9|m5B1QUGZtuWxd4m=yeseHp> zCEhIty!CP6=gFH5c;?B$d6MRMiMP{$w-0y=5HF3a@BIcmiwp zKJq?iz{>+(Cc>${S+ElCZ3Eusc*p_5q><(G8t@#z^MZ-+#=uIvKN|3M^wr{wcnZd9 zNWX!PK zF$0J2rt9!NFyI~O1@DvrFHeVer4H}!;G=v%xOo$Jy5;M-^5Ggn;(V` zK>;J(t}uMz>d_R2Pht?Lbnm!Cz5`+SbkhbcFWkHqhR-45h{$~33Bwnz9_PSE;rf1) zc@ds;Cu059^Lf#~GB4tj?i}#x`}gf$ocu49 zooqAsP*<0Xnmy#w^s3n)_uG+H8p0w&RJIZM*8|UkxsBGO`(df9m`eB@Dccxcb`gh# zD(qpTk$B^#9WsZ>HY0_{GRLm=c61Bmy(`iXK5q3rnUReN4q*) zD!%HIXMaM3#5){ys>V}CZ92KEqi(SKi8_{5;r-0L{XBC`ocC=0zGLI;O>IH!?dMgG z%eAj)-?4r6@(Y{&3NUT@V>ef#;S99P{Vz#C#;-ImGY zrto|Rm8HA!C7=8JTaKw`r!e(w4ujr=QiP_(jH+;LIi?^~K`27{$BZ)h`kA&In=(FU{Md|`tnDtZ ztK2s>0+!9ML-@p;iP33EbzAG+s_XAkTcO=f7~f$_*$}s4AAT?ylIi1;`GLRjIBdtm zemvKH?or%QPtHpB+J}DGrcAEK4OLUe0DQ(GIXlJsT>b}bxap7k=wGxS$$!5+Df5)K zAoWyReCZZSW$lZ<`F=|RA@i0(KSq`v$uGbc$X_FkF4jK_9RadDM1y5Y`Gzv3gega$vQ0_|;Tq`!ed`=lY#PUWP-3_Py9%T>Zka)^2HKV}iF;DiZ-x*^0Gym?&&w)4V zlV(Lrq2$gIsC}}}v8RrAyYQ`_Y1VvwfcEZ^}>RVMRKc%S!lnQJxqw+@9-K z2S0{d@fvOZu_Y#!TuO)Yq%t&4O2p-q{DJ9>(iHeyV&mp%MR=NNF~$n`Mzhn->Hl)^mbOuNdz{g8Ia zX%YfyFyG6327hxt@qskKxmhpM>$(uGPq<4- zJEOIgpoj9$w7Y(G5oyT^y^6SzXmx1%N9cPf2%*!b(!kSSg9zz`V_N5Tg{Aa%xBcwLxr9X+&jegd%D?h zt|x@%JBnqyD18c_{WRIg=HUa%*iO>G5PvMqXHjOsW?R_3#G&lemsv|AvFOfp5DPPk zFf_-aTp6TAM@zlhP^z1FsdCch^4#~OE#P!f+BKZ!rCrOZIqe=!cc+c#v|ri;PA{ZQ z8hcoa$SSW_|JxHPp6P)Hc&l zTVrh^d(wdPs2VM)z|xY{`+moVtqQ0AMd5~a+Qm; z_k}is16YeJme1Rh#`?SsSh;?H73(9bx%9<_N?N{uM8ZcF(n71Pi;DHH0ojr=rj?8R zljWlHG8ZZr`-XBcQ7-n4<bm2oU_F zE`4)7ciP+$42LFI9!`7INVM-J|4o)n{td8=uxn|y;Ct7pxU*~$J67|H&|c|*J-)-w zI!OPG!;8H~&OQ10-o9tMC)2*8n)fTdQ?}&$`FY+)vG0)mdbDV&7j3uU1OI+t>CY)18#!Ws$XxgTa}KaeZIPE|!(w zzQP{CM>0e2#bZV^EBEB9UM)=7+5ez6uhG~Z#3|N$ai3H?2R)cWFxCcf-h{M~JV$d{CZ|f; z2u>HJZQ*oC+V{2ar?hZo*RE*)Z?JZ6f zLtRGk&~LAciGTM`UzfNNeADdE%V#|{B_qzB1feBZ2rM=?{L({6g)! zv6Xt%l&QYQcfxm)Z-qTFllEnYk4+kpGoonZ)R7d*Fy}De8y>t#X)VNV?!;U<@<+Sr z>A>wCW~C5q1);D)Z)iyVLAH~P`enPEm#9@B{WkpY>xTVH%D<+PQ) z1Im1#c;ei{kkcto48Avrv!I{!|NMaGG}N#B`lYkO!1W)V0?O%v%&EPosq5-zpGRIZ zyUL%9;kh}H+c4xd%BA4@#08yFPRDnC;NS6ws$%SXM4pE{s(TpvW>-j_DsM@g(}xWk z#e6>$IX=wW@?1ORI7s9;P~=!%N_!tIPlh~WkW=;_iYX`Fj_bT8wBk~m=0`A1p0(@)p{m$p@iQpLNc&77V`$K$n&vrF*-e-@c zbgoHQxuam;{7A9x0i6Q-E7(&G~sMPBnF;?^L z<5}k2Y?3+t2>aSZw+s_lBGiVxYI@(a5(_8YQ@xh`i5&no8G61-b|!2UEVC6vnONfW z6}G6m$or3&XfR&|YlEc&ZzU{#9^>zY&jTgf1#5$?F|;9qdYDLj{pTywJEkc7LUY0N zAZVfDM`8bB`qK0_)7PdrywN-bIj&+Jc8^GX3+Q^-TVZd5ZGyGIz6kpgEFOa890kRO z)Zzi9PP+*Eci69Csock5ry-x|ifz&irT_I;Dr&+^#bjYhTEZ<#!kqPR->S5uEgws0 zQf&AapYfuSFySR-!A(EI$HtE;pMHEyi5lcl#^!yc*rVv(jK9Nv4ciTS9Cn(jy%$Tr zKVJzu6PCf!@51Y0Z-u=Lwh7h-`y%X1us?%63VRIJ1N#;1MOga%@@v>`*yFI%(DU@0 z;SAU-VQ0e91O8iJ*TdclOYhk>!P;P7gnbG2XRt?MkHLCizkX+atZvn-lBQ&50LSn{okfa-WEa>@&-BB4#N2F51=4Ov5Z$bIRv` z@0RuVx1dDa#Ne0v*{qR0&i;daM!hh*pkS&cbN0N2mIbx7s~Rl0bY+=!)m%%_>ZLW+ z)iu?Yiu&3r+(p3!l~I;SV{^xjw@k2b227a1Ff`;_(gz_hFetPd*GxW<+(2)L}P=5NVqIO?G7 zIz#$*Liv+8e`H-JLplMV5M4Do{u@q-QVgL!$j2DkvJ4dMK+2l{u2fq$5Re;DWA9N-!jaFK)b>xAN`8Tiu-{8j_M)et}25I@`yKhh9C z(hxt&5KnKi1dRzB+|csUn<+tK!bUYTKAYDk*h~0PQfEwTtbu58QM#5#nO*oowgQgFg8se`p#9w2G zzt#|cts#DqA%2k|{yKyIdj1YI4IdXQeM4E_g9!**0!#5UQ<1j0dQfR7eiJOkAHg5e zm-B>-1f_V|8%sleT)zq!^8YU2)A-LA{9hRSX39($N^ddvCmQ@x-wv%g^iAg*4e@mb zf0My~7yJ~oou`jy&xH8;Ih5M8E-8VS7q4Lvv(_q2O zPy7Q}W{5wT@8Kz)cuC*RViCWC`v>FI3^;@#o^2xjO(YtC_4 z*ahLw1kV7RArmoI62Imj&ZY`~GLIk0ZVd5{;`@H$r)&pcecUPHX^%4iQq(5=)Q$imeO&*`aK7n5vs*hj9uY!93-f$#+HiS=W+yJak>B6t2pUkERe;$v|V{?Sx!SkDn z^P!gB1>6BxAHD}a8N%$3ljN2Ve<|A?;-AafLi{#H?}w4m($8e?hWLxvXCeMV_OW>pRy>CUv4BH>`%>%+u z+4jfH-e-iLcJBRIK7Lq%1BP~%{c+}fE5tva{W-*6#=3>Sg7a4}i#P&k{&F@;_-Wnk z&#qxr!mqVY30oHue_U?`hgxpuL5z)-*0%MPJm0 z4wk%$c~S|8E=5o!!jcJL)nd?XCVs6R3Mg(`vJ4tnaP=Km?N_W>R*U=aHFZcw_X?|P zmQ}7@rD<-cy%`ttS3#G{ss^d_f>PJigKg>RC5^SDkk(^hMm z1?uTD;LB=}(3l^Bg7^NQZ3P$RmLs5nhcCyaGB;^Oa8c1jwn0C?0Y{C3dtxXhol#}E z!(5KjbO(TM$(psRfkg@74{1<DC<`5|b1Az;*A$o-( zx*Lwc{?XK=&`reg;{*B85N_1MmInnJ9YGTW|6;iqOwc~`-L+6^Q&ojds$H{e#qzaK zq=L~P#e_0yxLMO6(!f?#f)_)c z8HVqg@snAPpb0&K@_K~il0GCZp5oRdN92JJNMo4ZPyI%GhOjlzmJ=p)LJpt(r3mTk zqIJ@e@!!S}M8G7%^_2vgqX&d0mzZjxTP6tHTe={!K3$HOeK8_QM@`L|HI>@Efmm!n zX%9t|_J%~Ux-oS*V~dHp7;_NCmcE*(6YonB#fF>qK5CQp416fkWsv`F4Nt9t9t`+n zw`lj8h`u2Fv?n6}=YsadB20eLNlBE>%|tg61@7H~((^jfzp{hq51Bmce7uS@hk=$|0EP1C!fV#C~*@0<>=7Bo{(x+_WXR|;w;iu@aeU-lE%a{|6YBK%!JKNgg9 zbP`Ugpj>YT8ZifcwGq!JiGCONXNcaU{a&Enfamq(zZG&pbc4{Vfde4j`%}N8ok0k9 zkf>j}prZxN1yyUbdpYVYqW>S&_M%h|>Q72fdsm_vf|`kbLp)E1_z{Ai_appQ3cp>X zcL={z(0W0?M-==JVV*DbBgr*Hl&Oyg{}l9hg8p96j|BaTpkE65wV*1= z$B$u!oD2|jkf7;;^7#Sfkn%WHgy#!dD(F>$k`7zagHkR0s|1yDyI%O41>GVj%`?0BUv4tq+OWvO@(Vv)4V-ZgC#ymkig8p~Y^+kG; zpP@tnV)UCuyrd-GRL)O{Vt(@xg)nvzMLGRMQO=7*=@Aaq%ZXoOh+>`}h#<<3%OhwW z`H^qFpbinwGp5xLY(q#&oBd9EgP56ri ztq_!thh5sb7W=TauEp*V>lpH_2H((UMg1NXdb$p3{SV=z9o7+=3AnuG~J0;SKw|F(WPitqIiV2m}sqbN1Db<65)W3CW_1p1zjZQ zcLnA1AjI^Y?NT4r27|rr@DC$YnU5>CeDHrf)v}2Km0_ARJ`u^++6Kxx~Y9Fu|o9 zlS8<_`M|6-cJIgLAe3n6o(Je2EWID4dt(h8s)G!M9utT4V7%@a9Y&aSvB5)jFfl#% z=yBW*M)!K~4zlRPE_ejj6ys23=nUBVNlfDlo}T&foFB5o#_%J#78B^c-XKM%CKsA zGxU6dtflGsbVYmWB4Q0sQF09p-kX@p(i%lBPim$@uhi?G8~i_|`w82JfQb;UY|t23 zoA75MpaSm2u*5^w3`@USV#|VGA2qWFgwjeQ@#xo7J)Rp(2?!%RN-Obhf?JR0g`a-E zlt$vw`B9Iz8F)JoMtD>%iT60%dc4i5c1A%kHxlnh@agd^V;Hj_jPPP%CEn|B>+uq> z@1i}ZG!pLw0`zz`;N>8U@Zw=5UKiYYygj|(`M{^gbLsHt%p>tE0Mp~;A%cGYl!o}o zq=HG0w;Oo0r={{yzeqefU+VETqqC+HfG`q|bWZ8gchgWLAtH2-&hezL} z(c`u1@X~a64F<%&)qrQ75S06oV3y_k!hl!N3*K1+UV;v9lnyTy^NzlMoxqc2qB2Ui&A_(` ze5u4BjO3dRK7GF>>++@bLDr+nfVUZVW-5p<5^sqC&jP$W@KC>DstMrzz<{?ElkJ-V zi-^R#+km$ScuvF<9?c)Je9s#27WdJfd4q);iT8{F?>O+>;2=CW19-nS;JpsK6C6qV zBk_J^z{{H$9Ot<@yw41HTd){}tM8u;csqb6>pNM87motyFa>P!7Xd}i1z1Kw8PIl}bsNCTc3c(VPb>hR_n@O&7&^uCBRlrNc51D;2RHy!cB zN99`~@FavINn2kK#f`+HZzoZ)C0`@>bkzvBpE2;Q?S=2>20l0Vl0}|GWWK*Q@NESj z?U$sHe7JZRQobGFvq&aT$=5$JlLu8ECb(5;7bjYZ;gTPWG{T1418U^ z41AaM z!Z+Q(mkhoNSvXz3^iGdHUuQ3TcN_SQfG=EqpD^%wd*M4S_^{k?^D+25x(ds7dDnpF zygajl@g9zD8f)E#O1f1&rj&Gw|&OAFcb+NWKd2Q9g2P2(29h?(LvWrIC2_a)|gy%h=j+(4jSH(xlugrc9bVu@@a%d6VgS}mqtg?t=8;h&1`Z!? zNq1E_#;506I~$+am^X6zhz~bfHra+V%hFAcZ&K1#Yv-mB%{9%<{tT90zqJ03^^ezE z8>$)}Z}?M#wXv%4@y3|vo1tmwhB7rhdZaRfr6mkEosDPB{t>Qb-2HoO>E7F$aa+IH zKMpp>V#007P5I?Mrk-z~U)JoOVF9;-&~ZB{H1d4=-126BX@xohT20J(_GW)s#fR0+ z{)&p4nr8oZDw_R{iVv3!U*7Cr`kyY z!>)t91$MEg*-4(YwW^8Eo-|A@g-v-+R>w(<>yAgI1>>aRo z!rtZB<8MaUHdoLM-?%Bw{_TuX=h;vA@8@C3sOyhdvwt_ZAA|id?BlR|V4r|}5_T^T z_Q5^{`!wt`u=`mVdC~o@BLJm5;W;6z7z}`*W48!H~-}kw2QCM#x@J_4# z3?^qBjfd`YQGC$o1}g$hEZPvSn;dw&es(1O7=|gBkH^y(qV)dw=pZ|FN`wC< z;inPaALXO{7@0$`{ZSsKpFH@7{P5~0f2)h0A&OarUO$sBarN>8N3T!Y!@i`+KbKWO z<)}u%V$sNMLFs&}Vj}et#rf}TK~D<$o}e8>(Oj>A4yDO*Y{RfKwv0kH2>B6PJ zM(rUYe-x-w)*rT_+G9vjM6Oq!zf<~8KQ82FdlVPFpc!pW6&?_|CZxeld~)tL@=+X_ zk+Ax8t~Wj!+s1rJo}`gdOlLa%dBB4Rk}n+R_?kp~lwTRFzI@3jxDJlAIXSNhrts_H~$dwr(Asg|~CC4i{{h_x-u!-C6D} zr62e+Hx6*$lb-=?gQUa4bf&;GvGBchZ1no}JD}@D$+G#jds6HsD|9gCL|Qi%Z}zJ> zQPy&wIc78TBP3ft@L&AHt>w_qv6Y?8h~MltSt zUjoX*%qSP@xYwPq`9b&N{z#TQYU~BY_d%U{)}%(Bd^y_m+w0a<`kIvM>P!=>iau!{ z?_PKC+`7l1F>|9Qzm!?k4)40%`B7d4?E~FBNcCmAV$E`4J=`>wm-YK^PagF^``w+l zJf~*0wa2GNq?t!5);KB^tdfv#&n=-+QH#kE**;I4$2#tDn>YW^{bQ6$nRcozHVb&Z z|Eg2Ynv}?s$5FDY*HN9Xt}{*8Ui5MM!OrwjH7&xTj8xBN^aVO2bRbhbVIy3o4%37O ziXQPk=tfVnbwhIsl~L?$WPHDOBF8D-xN(1NS0?sHJM2cgo@(2IGL1*?pKias^YYF2 zQm6}I3A5KJ6PNp%qEEHWuKPZF)zPVVSK*!UGjt!8f2=v>p zT$gq17Sc5Hot(^BkS5FK$K8*i#WZQkb8pNa>NVx=DH`P6?cPMvq?~HI0@9>#Y0`S= zz283Wwrr+UBu!=Oq%4)y{k}8L?K=3?x@YnSdgFO-x37Cj^!6sv+a~Ko-rJeHw}1Bb z!n?&O{i^>P}i#G>2KLV(%Q6f*l*f~jvjz|T!#9)W-EEe+hQ}LPC^z6 ztQYV~l23v5SJDluz($v(T~I&&P4u7N-hFm5YrWv{*~x2@|4jteaf6 z=+gnU8rl_e-8b;x)cI)s%&x{~AHrPm5Y0tVvyUkgNPiFM?NKIDx$j2Y-H7{f;obg7 z#|@p=qr}&{_I4^NEp7e=G~fzG?u<-nb|UI`J>BH9g8a;u6o4re$_jU>#E7Gp zaAkqs2s#dQnPtcvWpo@|)j3L*;!Qw#l<@_N3w#z+!GgbaZui%K^RMl5Qq>#seG#g< z@Xww7O9!|I`2ODSzuNN`=ld*b{sIm6E$+8*KjHrx{>V8?eN8-M8A5*5{yRgv<{au% z+NW%Q+cdl|xoCkhyvC)DhgRgA(&zhRMV};jh%Vi=xL|?Fl7o_UTcu04>@A*EN(I**n9otxB*{h4Q7Md)spLJU`8r1iBS=k`>=ofv5 zijudajz+)EUa-ccE*$KB_4x#}pgK*-N<7)OtY7J1H=CGz44QKm4sb&o^D)v_W?C2v zp1}uAHx&3H;4@ixkD^zC`1-O^KmX}@`up7TO6DN1in$^tvp?pFnDlha6|Y3c{Wgwr z&5CX(( zb2F^>``Pixj(WE`A+c~5R=wnRUs*h3G&^I8>Vl3Y*6(clPu~f+UT6(hBQNy*;u`0q{6Bc79So;)yf1W) zPq0OK*>KW19(h)YywLthK(|M zH-NW}OHdA%poh2wJt!n-4B|i2&c`UP1k5^d?fpvo zl?*tq_UnIMow+0b(6K~&oPCkoH9NM%TxyCcJJ$bvM8A8_<4Ml>h?)1DXE{6a-wf~s z*AChXe&El!7n%uk6lkcs9sB6a4f$pHrM12$oXaAP*ZOV)jRd_FGzxS*Xf)_8pk~nT z#Y4BFC1Qj+ykFX8f6Vc6-yMDL99ix&#h3eH<2E5}N?rfDa$n!rc*HXYP9HXCYqa46 zQc>=U!HLj>6G?2xW`7*C)0>g1k9nwTlRv6;vFj1nNw}hSZ}OYBZt}-?Hu+9j>s9PuTi=E27IjcPYM>5vX?a~=j~qHasJ{n0O-TC>slC6=m`u_AXv$C{ln6zQ zQzPT!q6YMf8EA@2j*ZXgJ0K?}xwub;!<@4!ezJm1epH{tK_hdg&gz4|^PFop#z&ar zl#LNev!dQ36F(3xF`gM*GVlKn6=dmW;(vvHtZ>g$^8ycH=!r|v(DT$#e(m`xjv2zp zCuy1&&j$?rX8yc&fn?`TuL2%CONuq{$8!G7flA{6q|T6jtkCkrbAI~0Tr>3KC}>DO zRw#d8&Oax>LT`Nq4e7@U3+GQ>{`g2P4ny7a~bt(T$sP0>e#KhF@KXNbST;Gb&Xr?+f^#snRv zq4`Y33_+fd2)9|33}>_u;4f9Iyj0|9&d`G^Y>1{2D`%!Vo^)!KR=+u%s_&lt-)Vq@VgEEjqnHYhO!?S;#)=h99|v^dn3f3&Q2Qm z&lvoq$CTsa&j8GCm&qTkfJgNmY4BfZ@Xt5+=`Nf!l)l;Ef6(CHYw(jER5FydKgQdC z2tUny{V~2i4DnCn`j3d8X5RjoPw3q_GL5kPX?_xZs$+lLkfwLs$Y}oY>KmbJ;B+{;7C0&fx^!M1wx0N$e*f@mH{4g!o6Z_d@(*7=8baj8?u0%&fh? zA^hXmS%Z`m zP2x!Bx)6dT0=F)>N&8W*iq(%&uC|xQ=VS5kHAD z{+lq}ZR{mpUVGH^-N;|ksX2OTKcY4b<T4OeEhqFPhs0vNi4R(rG1>_VA+qn;-&9VjN(vSVmCYH=r2l89Jp`OpwqJRQ@L zh85qd3B&mf!QoK&c!5Twklb}Xo{daMN}AR-K=%1S(pp*@X?R&;ZB?V>3yep|6NRIg zd^qc>y_{7PU$>+HF|yV|8&K^Us#WFM##&s_Z4CA*S{o``(Eplr1O$k>Vd>2}WYV)k zvV*efW*YU@^euULjGsE~965NSgLHSrh0 zwIsWm`X*9o#2Z|nlm?~V&)s1ZFKLwE zOX;@|MR~Rob!z(<6`MZVA5eZ3MDZfV4&i@T_;(YM#0Q*KqQFH~Y$!IPv;&WA#Qift z>8wcgizkZm(SA!^huk;q;=ZKEMgK@#3#BvS zLb1ZP;nG=?@+~B~L3{s3-N?8ePPG~3RSn-`XG|x0 zH_A=)9)SL9-jfQ9#D;Hrn<~hq4c6dwWaIiCj0sukgTaQSIT-Pci*%6f8&>L2rk-oD zu7+~%3b$B?!t}C62buVd?;cBVXgswa-B>lQxuIO)mfCOS2-6|q*U3;M-HI8E=zU@2 zZ_kBYAheh4_>OQIOHWSyYCE&a)ze(0QBBtRkl8+M-J$XJK7Xa7hreKabN^I>Cmu zH8|1ByUyX(M_FX!QYgcz)P`k6WDyuROK43Kfnkb+~LrKp_q!Gt1es4Mkfi@B0$A!sExM#u= z4_PzpHL#eH1Mh-v0Tw+|kw)TOg#bOC#S+AeLY&0g0Jk1*H_o{Zgh?au=)FZfUa>_x zD^vNXToP{=+ z5nep3#QPQ8db}>+(VjpWiT4Wx=<#-2g7xi-IEnW;+ zMdeF?m3Wr}Opo^|@Cp$xjl@d?lOFGNOAv1Wm?a*q=X$)H=%9=dro^N5Uys+J!=pWz z#3Mc3dOW)0vWkF&k$801TaV|r1m%yO{!6?~2E6xxhiz8CNIcU2t;e&ZF=hc5wO=x< z#CzO;mj~fIgm`Hr-j57;HsBEs;SGY7cyAc+J_Q~RK_kuUx zfR_L~l4GhboB_Of2E2F-oz|7zHseKy2>aV)!~NtGK8Cm#3LPL#0SF7`d;wpxvie>)?WC21U`NF zZtI2b&?WNy=OyydU21*#ddru-pQUdX56Va5LmJsGm%*XOqdU^0BonCQn`q#BzL)ya z-DiEfywD3@wE^#?Uh=(F@a2dyeF(l7h9k7%HL43|Yz5%ljlXp4RbZI2sYFAa>#M~?R{R#`r zx7~G|BCk4L!d=H5S|)+JjxjVF|N9P{>;g_r44oo7q3R!doKRJ}dNq!-Y%D(THny^{ zv3|wUwe%CgrJBKDq%NX;FPU781pZ1nOG60pNqI8zY2AG3_ouQ2UXI9#@WPE9`t=ui zx&#}(i+5>b=V}zFNG1Z6*IfD7y?ktR5fCQJ^FBHbF)>o}6b?%T)FzJHG+j1xI?Yc2n6;|RantynES zkMVzcF#W%}CRP0pj3sI-X@X;E60}qVO<+x$6kd15zt^OH{u{Nj4~X(L>87e$Jh}bf z8$>9_|EuF@@&CX$O44;;a2!qfhsM$PNmIlc_U&tuSDTIld%J#k66-tEr?^j9-%{1V z(&E!|MkHlKj4b%Fd+l|uovxI+p|1B_*VjE%_io*whS`os92*?3I`|#AW3uRr7SU5R zoCR}cTsg1Sa#hXpwW}%{YwOop3bn6wA+DPq8vXnH#ZsuD0w#h#hs@LY15P;Toq2jr z88q^=q=nEs@}co`ng|-wIT9LAPxFF?-kH}M6HXe#5I}NR2utsbP6ef%?_${g?DK94 zCqJF@$xpv&kfAWrNm9do(vSRfdt}mlt?AOn%AV24q;`_9EO;v;_=&fA`Z^W9GFM+s zuNOgW30HEB*NJ#Ag76~NQu)tG!6OJqkzB+>CJx}2^6brmL@inp{+G%`hN%Aefeir_u=KkZwIh|4 zD7A@fJ2=@^B)W+l!brSvc~=O%VcLEzuvf!MqCF|l{*KSdnLHU`<0ns?pq+faeT}J} z#xo17F{x;Ax(9cAE8V(%swCFAuZ)fU>eQ2^gB-Xi$Nvp-ve6e$ZEI7u5f9lPl_okL zox`%eI`wFoHNYoht@c6A2j&pU4nwT6tH5W9BtGK#KIbX&r8g9Gv5DbvnmNy%2At+H z=pMUjkR#S2^GtVskC*#4eYx$4xDk8t)FW-gb(zoB4|*~Vt}RbGR^G+F3xwFqa7(tl z%Tvums+cuq1l#tGeYm~V&URUGi#zsAq*CBxSK~%$!8BcNr*LDCYF}0M2DwB#$v4L*^^rFyx>zqlLN!QZ1)v|`F-ls$)^WBFZ%8c-ggzczAOL6zAO3GzH@kOpLf^apKtOilY;#> zk3t(BrqEn{AHGI?=s(s*{b%x;wf^(7U5N*y(Rat%OuMp53JQ1F)m_sHUq4r-zIv|A zRPc#fpga`kNEf3pqqLeX;0C~USun7h?XPv7|Z^NS4!8xPBvx_ z?uToo|52w_@|j&H4#=_}{Yb0h%&vn6WG$chi04noU~`c|^C?M6ErKC>** zf7xy}ZjzT}Pz~isD*q(5wA5#72ug>Hkz;IBm#-?dK%b`6$Lf;`as%>2ampmh{j;`b z^4~bA?rM0Ex7H8Yu0C1uCzV~-x%-YXd;3}wzluy8QaZt(Xp89bRlm?V-F~FgMB^=j zFp^64w8c3G@Rl$1#WyAea=`sv4{>NU{6Rap%_VWpXwGZG92?&doF#%irHvaFY7V+) z_ZfBZr0?+fxzH#RkzKf{wc6b`dy1Ehp3=@NeYrje^(i(y+CIx4aYHwsaYxxTdcN(y zxc?XD`lX%ZE@h_{Gv1!5X_CmL(hV*t>|zVzoGGFF(HdP#Nv_ znxKhiLw?s==0UHv^~v&aZ6#TS-*NZN`ox=Bc;ejbh}KSJwBn7h{JAq`RL6U7t#`*?fq3)7xf=VQFaKQ`3(M{_>#@7ws4J>tvkZF!^Of#lg#Po&_gPBC=q-#KA9hNR*m{8pEnv% zuX}mv;l|^~D`G|KC}!8K~EEUay(q>V;7~iA(X+USh}a*xX)X zNATD&y~GaXu_Fz!87NVK&x3s(^|IA@8J`P>>DE*VPc0cz8t1fj*{b3kiO!wu;%_N5 z7HMO6ZTcEeITmW8@H~f!z0pj3B6FImosp)gk;3gF`R<>g)`6~tO|4LEDl@5$1ZIne zWo)VntrcNrIhqAqcn@cXFh=F9B&ikZ$2fo^VL0V>n1CsF`mbTWYVjV{J=R?wen1b<8h|bG+_nmI^#MtSHWNRFut!=F0VdfR@J%HD0W6Z4Ec z;sNy$<c%o@4Pye(pz zX0y)ew$i2&?3g!NyPB%3zJ4ZafeDfju|xVz1?9dkZHbQP2hEQ7`}^=decrD1 z<$UyDa@f917Jb>1L-wWQ(D&sHWrLlso{KY~Kc}TXQ&#k=_V`EoJQ}@&+OB82DY+H? zh{1c>to99Etg>gDC2DOJueDiHHnrEi`Dac}*R@wR+-F34{Vt@v<^x7H2C)Tg@(dvmH|A(WGpl-Pl%3>`Lw;NEx-2$HyFr7%QtFt0cFy zE@VS?vGeIi@;i02l%=U2(SkziGP5`O*wU@}pPe*H9JOHdSv49@IIPqB&~Y}J`L=Hm z@|Ll`WItB9{l&7CXswg(M8}h5v;24?R|P z-2dLVI6mj_=TYUfyMC^%z?Z~##M44{eKapjbKXCXc%A_dJ#(^6oY;eBqH_!1@!VtB z@lg6KtPss}>ABYJy~N(iV{Z!=>%582=x)P|9=Xf>P-6+pqCKyxU{JvTJnewH%TQx zSeju{3#_(8tPa!``Iy;f@%5`X-1>!xuuT%M~^nBun^+o88U(R!@+ z9iY}{6T`J4`djO>>|SE6yhlg$5}V3nhxHPh#A8!>iS5H<2ZW1tM)AIl*U8GyK2ETq zHTb@O?}yna^qJOoBS)T4k0<;Rdw?epHdD>x?Y0)}hJ7LCjfQY}pysQ130C(KTf<|Q z^%8pnk9G7Cdkv4hu9w((Jof4^vFXm)d?z|rw-c4;`-l0{X_AO5OHZ8ZtKgi(XS`WH zh0lqhr&4;>K)f{fP2jUzVOT!m8SR8_OU#btKD+)Iop`Pg%-2FsFe($BLq)z(x|485 z7po?$J-n2Z>t!O>sK)Fbvvrmey^o$r3eyHw(ffTvdOwf%zP2x%g8qJ)`a1#rEyk!e zj-yTTjKs(^!)}E2z!oyrue;lKau{9>Jpun_*e$Rh<98q!4~(BhMSsnr@N?}Ie#Eew zM#kOu$lY-}PJ9~o=%?jzdlC=EJu@vS?%>j!;(mJ9J8?fdI4$nglaI!|fnTD$BbUbg zZr;!1-b0!{g6C|^D*p2l!7%57h7~I;mIg~@O=DxjYD+^+Wkbz!%UI_EOAWrS+qle9 zTW?vtx^Zn4=bBnmylR!Dw)Wap^=Z{E8(ST5I~3dF$Fs;Gf))#kAKrL4>KXZK{6@DJ z7BAUG&4ew1#Sec`-_gEV0=25W{^N!G7yr3i;PKza^8XmcuEf9mha)w*Soj~6;RgS1 z;ork)M{ztm@+>!KR@wpsD0^K z+hKE8UJG(+${pUiGH>q~@D5ztIOdDfFNN?DW*jhMY)S_&mjU~89ro^$#U98^!+bxk z_BZu&li%ivncuCj8iZ}9uze+KJPCJY%)i*3HZo!7o{~(D89w$>^?asw6eqK7P1DDk zcfzNjbWMlGF?)5?rl$2HJcoCKcVJgeOX*+C_o8OZy*E2<#7wp`6Sc@jeVu#X0v~aq zE??*Dwe1|V_Kper4}5ewZ*TSdJ__489h}qmBJJ12#dfkQDJE9Ye8Jd5Pf`d<+{9A; zRQz%G9@N8pSM~g4X5P8GWU7bV)lr#|fZ6Bpo|5zpX4EBP1J$LwUtSB!?=$aY zhdsE0QGS^1Y;0+L)>D$nvRk_C3%Ylg;8s33&8%^+r>I$}xwaqccX-xMh&$@^)0a<1 zU({UNmzlao9A!~bAxUc5&F1B-23ia+P#Ee1Ak-a~y$sI$n)DpIx zJZ@nEqdZT1IOp*6y;MeETrB1_Xhk2hoqsC+6lF>GY%N)ya(gXH*@t>o+`fALFjhf5 zv!VF*j$#X2J)c?Dx8Uz_c1JP7(-A%fJZ=i}P)@}=ca*S*+ygl+`yp5RT9iZ8sAtF5 zxqB;0*@m4Z-QCsmJ?y8|RKj$$yQ9T)sN4Podcosix2F$pDq7IZn$+BG`@>&TihGgb zfojL_`<7Pkz3cG1OJ6?Ry&@;0yJ_EW%58Uv#gns^rNn;tx5%0Buf8^x4V?dV_q9h8 zZZ$VfIQln*LiZw+HBFiRZtcF7u9eE6$@4q9-Dssl!>IC5=8)W}?p#S@N%$wQ#?k4k&-6bP7u+28qoMc?d?asgEYb~C_WIXZ8 zc>C9pha)b_s8}B3DK(=XyStxT$#yu#nDvF&uXbfMoqZrRgPdzG0zP?Ix) zk~hr#b%d3t|4+PJ%$dL#Gf_l_RAwQEeyjPWVOG1Lajj%Bvove3g$bh>HoK^w+z zps^_>bU#TbAAhI2TTveiYLkmGcNd$E(S<$g&eoEo4VJsMqeh;?)$^m-!zBkimYv%h z^2Y3G+1>JX!^2~`8r~k$*y3tg)#AilvSZv$sNdxItoxywq!CSUPvLIwr{2$!4tPo` zP~SWL-irD*#`f=}xzSU!oNZlI&F9jSE91MUMkiOD-kWy$c|K05F8yGu_vg0k zZy7V+!am-cv&U1kmR(%w*fT4IYES*#rz>^OZiHN1mAWTmWk0_R$L!e6Ryy`WV!Ai1 zP2K-7%KP-`j6ECH?#_5)tu5Dlqm7l`XkqN9i}zceP1v9DtnJV@)q^$7$=2#(5p|h_ zx+Lr!bXzv+VpqK@El*M%_M`V2kM3_#4tt6&vRQ}Br*rqboZ=~hBpsr%`!q3QUfhY>d7^oTBUdsk^#xyLk|RAtto*wcshv|s*Xpa-$0a;y{M z!(p-0#}B`BTWZD(v|Q?K&f$*zo}$auu9X>2QYl)1bL-KMTVxq?(4rbHwQ1&27s@zm zQsn8#F5BT*yo|QPnKLp@W2e=`CUvdSP;Na&2-zrI+-cX|rv~m7rNi8sOR{^}(boOV zw-t^z;;_@~u=lojtdF^S`+%=<;jPTIchCOrqT}Zpg)F^Wo;+8cE<&Db5+x zYaP{*U0)nK1o@c+UpCro`)!ut)R!IAds;HVdo%N`TD;dWgIbSON1+|2U%7SV;=R-1 zKeV!=B@)z$ahJQ-wYTlV>^+N6k7S24V?O9$jE7o`jnacX!VE0{Ae=?|ozi^0#D10esk9y4>#r&L$S11#a|HKcvLp`pDYT z1>Zv3JBj!Uk#6_Z`jKX9pFmrJHi4~MXz6#yeiEKm!_G;o+C^;A9%#_Du6<+?w5Bim zpMF+06Fr=M_vo|iAl`-NjpL~^lMu(lpHLkCd}b1lV=a0glb%2v(L0(1&D%=Z6bj|c zNA7JY7)5ayi?SIts^7iv?3PkCjd;V+uL;kuKc4A#Gm&52XCQYu$swOcZ7pS=K7)38 zq25m${!YoeNV~gu-z=Fq@vgfjdSO|+KjX&4A@q*MgFN>7_kYd*L;rnL3;c73*s5pI zFS{{$X!WS3Z1(5x^cJRUDa%01{Hb=Lq96=4e0~Gv3~6%9iFU5I$ONo+E<$Be;2(xum9&eJl~>JI{p2<2(b(4?H|?o?Z**= zXTG0(I&sI|(pvPu8RbYCh1PkxWCzdO3Dh;Ged~ z;(0EOZQG0Z#&3HZq4w>eH^<`b?b|k#D*e=VU#^#l#CJ+CLA0*0jXk})G>d5PG2USJ zmn!J{>l}T&LgmMPKJITU_AX5~e;=ijz97=r20e&#t&7U@yd6bJ1DY+xM}jqfTeEs1rB8 z-@ea3S7U_%WyIFB{<&B6+sj<&@3XQj#{Tl6KQZFy74Jm-A!^;+mVTwT-~`*!KX+e$ z)V@Ul#S#~IQ(^17F&h7gGAH9@CBEvXN}THzWwPy;%1iO!-3#7}Manla<|xIJ+<;dC zmI0On&IeoocopE)fY$+D54Z&IM!=f@D*>wkYXIv3mjNyZycuvMU=v_7U<=@CQ;OU(Qh^KZP16+AOZDPWT^sGg#9tl&fJOZ)$^r`~8R{EX&(s-%fK zNe%dLur^`{qMM+FqXXShO7hq6i3}34ayj`!-wTBMAI1Ielmg%z4SgRFE^p)VbiST$ zbUubcL7e`P&RQxu^42bR+Z|aN<|cre|(+{$2x4d`p~QpYwf# ze#XD#(kVnFKP;GDXsZo|&ioILe=L^|odX^8n7g7g|4CoS#PjoO2#cQ;lYfb9J}8vD+fXLxdlGaBgN9OLT@cgvuhYJHX^8&>9&+!+51mmSDyzEup9KFH zAe~wMS3qfaYLjDO2&Xfeq#=Bq38ym_i4=u0G!*4$fr(GwB}+r@n}z%|KswX>E`eK6 zC+JM`T|(Xm*&(3(P~cSLhamrcD{!hpL-5xpZ~{Xp|LA+Z0Y03evxFN~w$?S*SJl*2 z()TAUoK%C;dilpU{D|9}JlFKeQ&>$^V?#ARjJXyEFxS?cd&IJSuybS6n#Q`-b&cop z=?LZ^m(F+ODsh-T9~i7uCk@Et`6TA;kf3emGuqFn6Ig&wQ^0>&2{wU zQILu+lg1}1zULo*$fm697{uY666Zn$?e~#cZ#$FWkw*`Fy3Lw#Q2*UkU z1mWNPg8qP@9~Sh>P=HC!O%QU|5QKX=SC8no3HsZD{+^)QG+q8Wf{#PIx(Ut} zdclWk&MzPcoV$m-N8q;;1kUwX; zx=+ws1-@C}KNk2O1^$7+>C7|ITMVeWP#y_~{%S$57x?W0-y-lw1>Pa>PJwp|{3C&% z5%@4sF6^RQTrP0Bi-7#&m2)Sk)jzjQCf~aplB#8R; zV*y_guv7561%6z>69S$li1*8FgLFN25QLt)1^lLfy99raz#kXzX#rm(2tD7!i-*GV zBthu;p@2UY@aKZxDe!Iqj|=!dLFjo8eOpSes2D(`XAD8$Sps(nyhPv?0)j3N*_^iz7ZNt~VGJj0^E0Hw z`&}U?19h(q+yOgU@-u1*m8sJ!4>ShH5SU6shsq!^U|($j{<%FigOJf1W8ZAxK=N+5 zWYHJo#_ss%@ZtBr>#Pkl@l?cvGYpepr!k&1(wYSVUYV>wFxKW_+y;k9z)6N48Vi-< zG3xs{7+xX>BlTSg+^BCeI$}Q1NFSPvpuRTPjrv?*Qr(nB>T3nTsP7Z#qjv%6qj1Ua z{U_{3eKBZHXpAV0)OR-sMt#@hGe&VCeR$;u^*si=QQxo;`Z@m~b0hVAADB^J@-)3K zPx|nR59<2`>_&YRBf+DWpD6u^D#saM(QIW zBBQ&+%~B|mZipc54wIY*a+Gh-R92<(?OERQ}0Kn=tVA|F1v}X%dX$_aTR(5Hw(OLo+@y?TD}$V+DG* zOCzlWWgLii4EnYp@KpcN4dnS24@h}y)Yq7cd^I?f`qubbFt}Z@qG_dm{ATd`|H%V? z|37u=L~*dwXMg`M<~$L;moynhcpx^M7l}FP$4G64G3Mu0sKz zD-#(|mUnag=?0G~C%s$nDnD=iDS<=7>msNRS%*0&Z{^K(xAF>fss11lO-80Ykw1_7 zhK=fF{Rw8mMXo^qu6`Hwrzl-z`$O;8CPTsyj~;3h&<+IKpND~8Nc(d=9Dm;R$Iwj* z)}P$zc{o)jWInV0TsptDA6XbQS}-Mbk`~rGpu9)!8_a;`Zt|Cym+oS0@m5WoJmq2^ zxQXz6S?dwaBY)oYXqX{Csg9H3Sx5tJaf5l17#Z-u_^wxTVfC zkAU8ti+AtzUwMw;rFn!e;LK-3CS2?q^kwb8UDSC5eg$Q78`Yp-`*YslW>c<6>pVFP4e|A3ZV%4FlI;;m(*N9mJ!#L=C?a-yW*gpSx1epmJxe5BR_Tetp zU2KMBAU@*x%s$+uy7T$h9gztax$1mr=MQMV_vhVrqx~<^$o`0N^#Q}53mE@g+J_+1 zkl^RC4rI)Pi(G-etZmQrUqJmCXdM+(Kfyf+)c9O#dyKV1x65}8VPDkPhiAg2y2BHk z(wm-tcFc3J`fXHqXv8W9J)c>3F0Gw@{{6OKCS2sogYx-hZF?@(+E4EEd^s5%KJJ-% zzO^4IerfKSUX-6p-;L@|9d5pBZlljfFZ#^em$eQp`2zZHLn+gRk$sZf>60h%$|HV) zZP2AUB$Fy^r`s3Sf1^5t?}IMYpt4}zia=2s5|1so=f8((eTszot}SoF79IW;biv7PZ=)t;Y0=+ zfNZOY^o8`{!ZP6^H$sThm$emMsznu}AC{@wk!*0!qZrsmd*-I4pU)}b5GdHB5d^B7N?m3e=f~se^KoZzg_0iJY49#MenYEc0Kjt z_TMV&o2ypvlX)(+LI1usNY8|e-UNMV+n|fJo{9^hR)j`ChB46ef#2G@NO^CUc1VhP`tfp$kCx3k2^Ai!-ymC z9L66ZSGvsKyOp5*kIvov0<#m}9IouY^e(t_pXODzR_`CQ8qxzJn(YIBeX%Ebq z+k8~r&hC#p)BfQRuPfm6uu~fp?bIA?Ub}i~gJn;^vSm*|-Qoy1x3KI#bt*f*=Vz&P ze#;cC&k`Ny9(;UsK%3d0x!9f8wV+qgl)UJGI`f{6?-U&`amZpCfq{&(*m7O*UhzU{H1)klBhCA~Vm{m^uiZ_efgz5Oo4emz0ol@acDdWIp4 zk7my78WvDvlxeSYSORL}P5U!VE`1%&W^$L^5pim6#1Gi*iCS zrv;jH?011E|JRm8?LQn~{lG zhVaacoTsE^8B)#e&g7wyvEg-M{OrzY2PvJhUMu!Gkxm)idKwMqsT4)26cc^hhN9%7 zp)~3QmEu2)LXb6~cxy+0W_)+-JouV*uAj&c%Kyw0o!0R5Nlk5zLT*L5Mg6>V_I}tM z60~~?*DkSSo>BB8Z-LMWbg!!M&I!6%gyb`HHh$@*k&vN#Rm0_@xcuUvNH~}7RSl;Y zPe!1**BBE&hU?oN)Mq@2k>q1d^08dr9voyFPp~KXc$0iQmv0a1H_oV&{7}vhvVj{7 z-9t+06Een?VRApr#5bN~O#I;{{_v10*ytWoqoI37DMl1MIuD)h6-^Pii{n;C=b{te z%kd~y3@8o7u3931gs(H<-!|co11EiS9{}A8`Xhnw0;GFCUj>wg^qr6hAmJ)G7KZQ< zCOjQDk<#!(_l8ap_-4?CLPIezVF=Kzu{4e#Lsxsyy`l{Qr;<$fihfn#bC8t$9#P(z zsbOiYEUlLD8=BC&sa#RDvT7MF!fdI*t)MmDN}^RY;ttNr`ju=oZVSZ#ysol(Ree3( zmPyBiH`n1lPKa|+UsF?KCGN1SZLAA%eK)rbz=Y1K#sTQnRp$_cp(FJSVXVQerCf>! z?c7UA^*cXTRM*v>%cBcRIY$pBVpr9?qO!?X*IaoE!W@Pgy~0hNb&MwmE;(J*QrFx< zF*GC-h0;u_Z8K4PtvuO6&M435y`!SQ+6iKzB8}h}{r#fio}CQB0jX>gpWY+tW%^x^ z>Nv(cghQy7AnvK5vS~|a>=OZFk@tir3y7;?m<`Hs%^0UsT_FAv0UHTs>+5Z{9EL03 zb$l~H;Pl>6agPkH&f)H$itEEwNgU^QsKI>^;gD}52z;%;9}sen3;3$wcMAS#LAO$P z;m$@7dhCGYFQpfS*X-|gLJyAzhl06KctcRXkcX2Hxv5k zy-)h6_aOBxhux@e3ve$UX{5e-5RCdN4B?}2Nqrk(H|h%jr#4F(sm~9BQD37$AFM%r zyI?o!D?o!oG-;$hdPf-bZHAH(&?vq!cx3pVf!(O@81zw_CymtiGzdn0uR|ZzYtk2s zN9ubGcB4LGYz9plsqZ%+81+@4!%_em>7#s+`g&le^wjW>*$f7P7&OxUDJW(+=@$u0 z`)~x#EJtm!G*T{O069al@Hmp20uYHV%N&KTNh$**9zCV_K^%ONbry0La{tR_qzldQ zOCzlWW!#D9iatQNGx+*bz}^o(NbLJ`u1MJQ1+r(Z`;aeZJ?zb&V(+Q6BGIZ(Z zDvw7V9yWhi#W7E!+wM?)przmB8N)}P@rZ+(rZ_gP*W9cx(W3f);xD{I*-+?T?@wBP z!}|PyHSXaewK&kleF@GXQTQny(gY5UEE_rRb+4P{Cq`g~<%af$H(^|V#NsaaU}jZ3 zAFoEbU))b=wB-=}x<*BuDqxCZL%Xdap?HJeVHgc#2EiS8J~E(G{H2GDBfIp6pzmM= z*Y^zOC6o$%HexaCmd1pV@tmXNs9lyU)?KjQ_xyPGVB~<0=YYlC(?fpS$}OjgnFjwi zv`6n(W^C}AM!%TRkZG#>O!E`P^X}T0;cf6f>OJLcbjKZLd^A6hSkdl=kFJM{6!+gcS>|6mS=NcJLib;K{-bDQ=b(;zn3^Bcr$VpBW(8vG zvjV9F*@4UO#IWo@>hbJ=2HIt==tC49W!7Ii`m+yp*~)EYNgf-@%+LC)kqvH?@`yyY z#gWqd6%VDMmFAq*(|g%yo>L;&OzSlE2{lkKiFk7@RcY)*HCq~#`AhQ&rtzwUw@Jk^ ziGpu`oj~&m;p1Z~moEs)iv$-q%_oG*M{)V3L3wIXLWbrO!sTsT-V+p|7CmHWej!{w zhRb_{BH<;2<`=@{W4U}{@D)NWa>&s9LO8`(eyDvIV&WUWNGCpxfQ@FT5dlBJ#6New zA>92ill$Q&_l5=;k~H5C?tb9;hmcZSwrVgMYEHQOL<5)fk23M87ZNfWZ&i)>Xr!3l zc2XIj`3^^j&1>g);M4}U!K)$cgZ{}T{v6TUyMftl;;Ef!& z@v#)F+)!@bFYE*ef7FD(V#1G`@Y5z-gXbatWB47xQiSxU3O@CdsC2kU7>43Z^C5I^ zESa%*h9LbH2%La%ex!us!`K~ypT_Y7wmS?T#a<9N`8@>X;rC(q5Oz8YNB+wW%{fyn zbSOsC$`+bSz}3;19|+EbgwGY|lQO0mme5QMA2IUrqYx3(EKE+f=;Ow7N0R2zXialN zYXi;2wA9tKB4m}H*X)T52p^;x!@&tW=wVUU=aL#%wN_SFwb1+#6i~0w*W3VvY$ECS zD6|2SQMX}&$B=%NEvu?4`4m)Dvtf2hhGSrEaPG>)4hBuvcwv)TrrZj1$}sCG<}n1! z5|G*nn%7xK5c3mM7gZNyGXclu;7(yc+eCeQqGH~I$}G+EWC%LF15^|_4?(;-sE*S7 zk&htehwOkhya2d7CVili-yKi>+Mt~D*`|lw*8(SZUV@kFb&Bq!r?O9w>XZ$EyMo|U zF>eGtHxUj!+?@;u^zd*%51g{GaL4DP5FctUDBLtJrDD)vCy4md_>bnp{>6D3SSh6rOTCDEh&e~o{QJ)>1#RAYsA5;hR?S|c`?>Qg? zg>M(+jQTv#w-7Ya7lTKJ@BhJW)aSwk1@#Z4k>NW4f>GZ-=#%lKewx(xD(vJOYPea9 ziHtO1Cm{8`4m+h2*xamzh2E9YNV$(dFv}T&$NeHV<~btLH;}*6;MlCMM0yG+{k;xy z#q<3 zi<%v7{s!bi=DNC34*rKc5Jp-F$}&K#Gz7?phvI_e2_8PmZz@ypDrmMLbA}omN`1Gi zSQVV-qEE{|Ypx47@rv)zKYJh1GxP#5%ykV%@0jL0+}^>;no-YgdUn6>h8VYNe`g@x zPb2>VH_HfgMU_OAvQvk(CEjRnLcu3p3j>qv37%)yf7R2nh}mgwfRsitwE(*2u**ix zQ+(F-b3H>2(Ef=L6;s{VQ!{A6N$c2E#g%97`sB_)?3TISs8g@15vO9ctGwS`KQ|ET ztMq)=aL(ocdB<)hn_ z%$OGT+;5Xlss(HXSS@qPMQ97F!AGo0@CtusgY~j)>G%1p5~H z=DDgGdkIJnb*Q-|Tp{GvtXNT5w~_>F4FWg-nfu7NR$yE!X{u>#;^WJP7W741e6%9~ zoqE2lz4De8y)R`$;!v5SaTJv`8mCa-gm5ZLs$Cz?jYVOgbhJ6d_zF0NI?R?T$~WXF zKgI(8=f*SVPs7mIB$z(oBvVQa#0;iVI8#p|(SbitItgwl6TfVI`B0q>^+B?bjmExX zE!MrLP9)&5h=<-V*WjW0Am2`Y*s1Q zz8E|*eEVT1e`J4ZAM}xaX{7x(AeiL_^7lC8$c+mR8PYdU-|;Wt!A~C-!cPkNZ}}1d zl>XBEs|*{lpF=!8CW|mqj-a6n$gTmh5YI5sDgP+G@pvdrjQaL~5nP}HPwJzZuHOu+ zA4>FDeaHN~eDNXsXZIZ&DG-Lf<509c)OYl|W8Je$GWhx^%P8$saw6R^FQ|6SPQ5FZ zQQtWuC9*Fqf~Cy~SQb21gk9X~$6c3K2daoaQHeUGD&^j(B+Bt(&q+ zvrClxt?Qo&*j-BgUi?~|N{-gopC8{Dd&uT}dw)W2zxMa8wD6s*c01o$t9r*&unB+d zn&BNC_t&m*o>M(4@1>RmRNsH~5cTb@k>#VkM=k2>6b9w8gz_Zsk;uf~CV68^9leU0 z<@~BM8vEIur~Owacz)V5-EHA(zPe5oJ;uNGP{PPQBH1mB`oe)Z!`xRj zjB#IWi9{M@|CXmm_SZU7msc;}-GFq6`IGy&yT<*V`=$M5)ojA`okObIi?lvPOMJmz z{YFRg+{70S2hxszr)Xa1_s|nB?Xp zgB8qCol}%YJFW~^{m%i5?R<9B%K^)aR}{xo9N4ro>A?C~o1aLUwec4{6Wmjj4|@(l z=C56U#sdjwlQ)T8RMRQ&#^-pWxu^U z;qJ`hogG=3GrN_(?1;Z6J<%~T`>nus|F>RHoQdh}7^~nZ_(4(3YhzHlTArnm(OZEw zKXXQoZx1N0xbCQQ))!+{kI%U0v7)HpNP%U1)Tub50v4B&6@?Yuw>o3>@|K_A;VZAu z#xhSM)V=F%<%%Q8N4AJynIue4H!6dBBlNKfmBUMGuljg`rv?A9Fxu`BC105Q4IARp zcp|(@mjUT9e zpy1Iw`9N!ZlS0n9Y>^44d3k9_m$4s0_-4rjBz%tvKWM^VGvRLor|`|>;j^+21ilfF z)(#_xDGcc!37klW@zD5Uf{8y>;41h-s8=8wJ-L)dXcczhqVFnpA{$qi^!a%?v#w*G z-x`-b&LIE1YiOt<1`uJplKDzNaDqKJ?`@nqnOG@+-<;`>wJxMD;qGl3U=a6Yi7-Dw_wdIC{=e$E$?I5u)IxkSGEyi4F_YJ zy9md?=5B&myZH&hB*v(pX~WtS)h87l7V0O`7-%Tb;f}_R1fL`b_ZssT*P%(n}5?#Xx6()cn^+JV;tz7p#C}jCGlCssm(F@gPZqeMGYy@yLwBW9$!~ zPtFB7a%1$D-Y?Ri`^ilfevSQg3zV0DMp;HO^pJlQc#QgJZGhef(nx*e)~K%njx#_b zeH0d{uO4=zzRgI8ji5;*^;Lsl)Yl4qq>CO{gZehWZqyf#&h}x@q>=j8fne0P5lT?3 zxjuT6lN{;YC7|rHzYdGcE3mj6!5`uwe_e#YklaAy4(jWJ<>Ny5nFEh5WZba}fuS*w zG&0Ev8pG2DeFY%UxCPaZhmX>T;ws|+E2H`23aJFRv{FrLZ3|6X%W=n4%uMT()B10o z%Qa=n6uUit`u}0h8uRWj!Tp(u*uTO1X3kE0p_fn&1acd(^2&jZK)^ zxnt9#?Tfuio-%RA`bYh2zojaP@NIZ2a1x8B$ke1{cb={-7X(^u8;gF4^1VaEQWZ7+RTI7AsA-#NO0W&WdUaCnbdj5ND30zKy5 z9+JaY%0{v*^F-H&BHh&kfrD1B^^`JVxI4~m;XWVOGy(qX>^QLg{{0WNE0;gy-?@L- ze8rjH%+knbdNSOT`2JKo_M&Q7N60+%Fhcq;dhsoY?OTDYkr0Y$A zsrI2>+o6v232x?S_8bxZ%k&teXx_z(r|o~a?d1;(6O>G~lQpo6e{|9J*1o4>=f}>o zo_bMR>do{zq3ybW%a!Q$?Y~O-1yg%Hs?wXN*ye2TI(yr+ggF~L!tHbVx0>V!>H@8G z^uHBY>ra|LdLA3M9U~E0$}7)&{o@^TQ;#e-`3sx%lntdJlb7`C0@LHMnsX@jxYIpz zf0DZtduNjyNDs^SduK;6@&6F8*ddJ-pJ77U8T>xIbF>Xsl z?(g2|Uhf{sQ+-Jw%40+My=niCi`<uChQ>d=IFT-NW1?+`s6#$@3?@ zEMHoaF^yUDG1FekU~VYKL*{&Arq_cavKOHf1{yQbm}g^9o?6h5Io}v+ZBXRgF;qAO zV+4btF;qBzFdtRT49bL$z-SF7Tt1G=w*}?nf;O_ynoGF+5H9~>P>NdFkfHslMnm7f zQrk;y>oa%;8q-~2a6qz)O?aaTzs-c-Wx~G&ocwzi53K<`F7S4aM}-r4X-%V?k(41_-LqM-8eLy)eI&VUBjm}=`9L(cS7sRpbw(PC4>%4H!rF+yp@ zNUa7Nz$&ZPFmg)kQBszCxw*B4op0!g2*_`4DP%#77)R=TJzI)i_h|e@`Aut6RM%X35UClLXOG+ z>2(pb>*E~aQ=KGtRM$x#mxq3$lRp;XXX)b$TZTS&L3BUyv&A=^2p1oZ%5d1lx2Mqm zBFRDTzc#)MWprquNNGJl;RqKn6_apgcp1r|VQvm-tv{!vgu4soaH!0L1kP7_LK5ae z@-Gi!|Nk_GrT3{cRCdUq_=Jt=)?&~@!ynK;d6rKt^3Le>-y$}1lc%+f~N=Ic2?$1iKY?7a6atiTKZf1t?<9Ce;iq(_7FYWF4(vvK1zPwV zq}2Bo{pqYd<#a<9Fy~f|O6ux*o6bJYlG-*g= z+T$mUwAOlSe01l6zET+6XEtT}^nu6hc~hoO(GRTp?6tzpQ@C%zF?%^HW77`Km}kLi zRexRvKj)`v?5{dfGHu;c$`t241w*{ia}qom-sewD8S!F^e&%164I^Wj@2xTm}Se2b+oiqYuH>U6dc zrLM)&7t1O6&WBqkxJQ@%xz*A)j8mpKovXRbYD-@drzATcUNga+Q2OUJmOeYDBso>b z#z2~DV<6ogTWaaMj8jvb8v_}jjrUB%%!8$G0;l$an(4xqmoLaNVuURRRj2x-=2M&& zH%qrT=J>464L*0kGUlhg^@(=A7Mi|(!D&`N;m>n>)>|BwzId*AJia2d^u-wLdJJ@W zBB#eY;t{@NAyWYPEMfP<-pK7yt z|1sS&OBJVfM*Se#>pZDy(cxuHC7G!1d?8cLWy(G8_n^E9UY6k9!+H03{s>-`;H3-R zuQ=~lp3Y#o8`M1(Wn?`sBMA-8lNK$Z>ZM@G8`M1#+y^=LYR`JQ)T<}9wuRq}G%)%z`u+)~n%xIc&Q zyi~e0=cyix^DjLSnP#A3Jme9znGf7n(7*W<+=N!Oux zhrKkFmm!vMtTUy2d|Oi6y+ud68rqfs{Z!>i1=p-AaXQ5N*t)vaeg z_(1DT(H6f@UX)O}DB!R=&S)RL5vl!l5D(EaT`o_&V^FF7efCp55zd{aGzpcMb8VPY zS@89JkI##^cait81>-%#+{tMVSm8d zalE#5L2pb{)LCmF(QS1U7L$~=(|ZU!dr|R`+lp{1*bLvyL)%LtX%1@v_%A3^-s<^L zUvV5xy<7h}=FOh|ILbq7>VrFxXM6@l+jOAF?~drSyF;$3yyFqWDKq9Y8k9I zX1xW!dFz!7ch{-~HQr3m*|ygCEVH`P;>dGPzp(^s-CLKGF>kRmmHQg8o#H|1G5hqorwZI(>)DC^mzq5FAkHrz)r((y!obo(gvhq8N`D*$#IOnh5w!>XC zpIRiBm;87u5c86DA9F0l7uJ@oS1Xlg?l`ODGrMI+>KXRw*j^>>m5$k6JLb+hcK_TN zZ)iJ}DT$b0EFVE`NA&hv*PXuYsa!p6E^F<%g_q!;b#?F({Bqa$@{iiyXgg5!rzPpgkf7x|E4g6ZUp#I}>^6U;00k z?{iDMPBHdRq)hsJk2lYoHjQFQwhW$^G7lrt^;|?AF4XfdseClg!z4o<_O_Ahk>z82 zBYQm1pr59Y>5VU$?AQ?Kwc~7nK%d=;-w*8l`2Em62;ZbrNl0}UI~k8(WO)R3KK$c7 zItB9ddjq#s@dpQ$4|99=V~>O`Cj}mvS^9#j(vcR`+eO$w6<63={~3&DP5tL zJ7cOvR2VU&w9zPw{QWQyHFsQHqZZ&hQa)c|U%?mQ?e$d+*r7WZ`y~e3=QcMtHK)SZ zufDaVwQhyIwyCaV<+xTm7sVN4_NtY)+V$0ayA9KKHv9Z0JC5C=UB31PA3234kgux4 zF5i|`(CkgC>zeJY-a318)yidc8F|?gCr=u0hnO(Y0@4`gYV@nAKaF37#wIbd(QE!Y zh}$_){{hOF@;(QX$hu2=2V%1PmED{|i{m)bG#ZFu#^xjUu9OhaQ9OnULvei-vo$CgC-B?H0hz-sYGT0 zKL*@Sc#FaYl>kYEN7IPVtkPj~+))~6+|eTnvn>L3sT8_Z1`m}pB=Q_5Bts&We(=wY(jQ4EhB$h_B9th?CjjR$iPmwNFXDK-j?;bv zjt|#ykHnL7ycsx+`;-(NZei0wTMG}`NiQ9|>WOEMF zeXyf~#7M*t*1;kO(Low%i8Xi%hjGGTG--(s#zVNl09*2PB}lGDJV;O&y&{s0l93D* z1~ODi$WYB9W9Pqm;Ug>6CNfkz$(ZFNop|IIP0!H#fXcWuRJ0_Gij_1}HUAsW1MvHZ z@Sk{8J!v}hk9Y>+Q*GTW+{B3Rfy8U*Lyx~kSy&2=qHSJt(*G|^6@rFGcclwI50fVXMO(rXH@x^nI{l~)xPR?eMQIA>|& zng(C?nuhv@rB%%}UISZNubsc3a(Z6LQa<^>m_7$lL%yLb^X%4UC~3)QHK$3y zlAIgb_}{i0=qs4wo;oIVLVjvRYQ*Xb+J_&Tc*|JC-f?}N zkSd?gEm39Ga)*{skB?14Y4DOoDIA^d7&|&6J5_75PfpF9GL=i`So1mjo%IH7P)@3r zY1giu35u%ua$KL2i%+1Zqh5nS(^3>T&8g5R}hU92X z_Ssr&j@E3)Z)&b<_84dR4L6i8N=+%BH7grS1fdjvJ3<*YYkJx&M_3lWk5_GqBV|@@ zu4`5<_m!9J%Gx^qWzv=NueHy?%-WQk{G2@dL|5Ka*OZCq$T!zD*5Npd@%9@FubP)z zM@Ns=*41WD$*x8(rN(P-u3O#Ef@3%A6DLidlt1+=_UsikzE!hoaMx{JTlR`cz+1hm zR#XGlgI@1jJt@1zmtC7Tg(!_pRjt`o)eW;+n(ABYefI2SdG_oDE%xk|*4kOiR<1&T zvg=pWwY1<=*KF(-T-NHH_yV$I4b5 z?7~)5HQ!v>;KMg*;sZ6^3zEZcT(yF&T6s>4aN$m4WfM|DPb|7Sv9)exE1P@y(kmNUE3dw8{!%K-*-b6kHB}95 ztLpOdToWb95Ii1D9{-^K=*6S$s9cHlE+pdrX$!l3N;Xxk>{}*g>#Jbn|K$p&e|JRV z7KN#6V`Bz~eUC{Eb75@!2Fph6PW3;PYiz&%>EV}SSrLsTlBrD-hB_>Tv56b38zb(t z+@*aTvSEDc$bi4ma;J6|c4yeGwQC$uUp$AHd*f0?tzxV*aDv|Hm&H_zxw4be*UvpehQsM z(bu0tF~*fTRfVxU4D)Ri2&9Hx_lEzP;-c2+X~y>*N->hZGB#>%EZ{In1SH)>x^7lT zYYbHw@-;Ap*6)Do3ZxT1WtGS=eYJq<{QjFDnt zef=R0t)m#Zg!4X1P(%a8Xf$+IY5gT+ER2tHK%lasf*%9e8x#n2Ziz&DX~NxG`4_$v z3MxYw@p1QiNtheC8mVKnw*$Y?leIh;S5-745rG8KLjvr#^o z-6K$4f3nGaC?+JP;S`o|{bTsv65{Fl@ezQ*XjsV%mmkYs6ntHNtU;RerA%b*Kh7jSj;#rk$L1Y_(Xc`vp1&Dv zLzsMqL7LKkyh(mM+ZHB2-XuT4BtL-<&`C(oFXIrN^kB zk_z8V5^|#91eoynX0tbheyS-7KOx2_pJS5GVV{JBCnqEfo5pfY^0_9yOAMA}{9Pt~ z9;5j(GJ5*t>4^B%u;VL7@F^Gy-vJg9(O5n!33HzxV#21O#a<%#1eD-Zj4r0}oAE+U zG=2)45uX}DVAC*X8J?cgO#I7D_)HT%%Y@H1;e{rA4)>4Vb-J0$aeN{rjNYDw-rDB& zYOWOIPz&1`L-DziwTbj00rKbTCj34V{v8v($Amv+!hZ;y@{aml^gZ1#1a1e7TDLb$ z@}~u#`ipdS=7?ZhsfTZj3C}d)lTG*>6MhwN3J=AV&K|8a@z)4G_4S70?;e5c;UC8C zGs!<_!hc}G_nGh?n{e6>Bn^e>w(kJRTo| zVmQbIy;)x(p|KYEbY5}J6yr$xZm_APp|z>`R^5@Lw>GuntWYt6uEdl=t5=Nnf+JrX z#!`C@jm|pN;~A3UCyh!f-74R>4zB(L|X<&YpV26w#dU&t6Jm`8R^kb zFOxd_I+kz;AYOaeJVT4TBgvqF_^B4jv=wHec|bQEi7PC{3)qH0+~4MyWl zH#g|B22v@XaH+4tF*+++S5;1)I)yd0%%iXs*4(nHp}9_?SLqWO49BXjY^|qbXls18 zGMd+|^tKufrX65T;M|D=Nm)jv&R4k{(>|CKsc#agD&}0mq9LbN$m110=EEW%qEppa z*HTlbWBmJBngXFrX>G!_0F1EOh89dhti&m`j8`8_)lhk0YZ_^egXUhyd!!Uk@95w?3A(ZDx#maRjOLBv>ZkQUO;AxKY6S1>6g$mWzGii^P}`!cP<3gK-zZ z)%v@U^iprj_8%dCiV6Qu{p=Tl+&@4s(IMX|_qFtPLxl9E5!@p31O9=; zY}@p7CjKjggMO0WH_`q;AK`WZsc%nmv@C4HCfHVj(bxw}@IEXq5&Smh5(q->1A<5| z>f_mv9y19d-S!Eb#?k5&$P;X2>_vjejKc&mQ2aST#Oqap$cIjX$cNVnB3-%(B3+IV zM7)m^M7-Z6cn#8#;1Z-G!LR81Sygn&s1HK<79a?JJ|S3yNTY34k)9TU$WMF|$@6U( zplt{8lpx|wOR^O23WA6?^*L;jxW`TKw+K4T15h~k5=3|&Cy4M+pMk>jG(qI^a(F!! z>9U(3K9-3Gr1Z-Gr0`}DMEDR@9zGhSjs-s!(6&o2SGMnndiQ|%jsp6qXpkO6l|ux9 zLwLz--_^f+uN79TsL$^ceZDBq$fwhUQ$7&%i1PeZASgGK{=7UR{dhe?{_=YEu&8Ha^zVem zJ|ybbO31;f?Rz5q5D7{rif0BOg)567!pqYU{*t^}uP@B1x9jy=y@UEupaW7roZu*e ze#Ymz)b)Bg6CFWf>ID7$LpZXEpIu!>5ICaD==+bQ0!NgXnyQ~$K>SsN;{%3v0g+YQ zA4-3s?-uwI0^cw2mjvD=;BN)}ZGnFzU?im@^o$fRognld8I9b3M1d(ZOfzyr`ET1terNh_s@<4bZ;Rv6dAi~Yd1>EuSfOt(KI?|zl zAkqy*gy+{ng2>0k1Tp2{A&7h@L;5TN^6~^cM&Q!FWP#fSgevZi`wM?25e~@x2b?Kz z?mzGff%9+xzeeCZJivMR0`v-cqkujETLttBxKY4%0eQKD`|X4yop|{J+)X&*vq!+a z1d(o!3%HLU((h>jpCLF*%q0W9NI25-uz)`&2!CD`u#;e_c#i;f6OP0=Cg5>`Nbh$A zJV6lY{=R@b+z96n2}d}2xkvcyRE`j?a)Jm)B|(JaM+D*juc>^bGWH%p_?M*t!k;37 z&<`g}y-SoA=;!$Xyg>NF(;K*laQL^DAaFlH_`65oJiTN(fPa|i2nUZJ@Z*FdJQ)-& z;8_F_t`dP)5JdPI1@0q=aBdVhwY$6={!{0doU`f{`brCZO4BGY#1kWpa~JbQ%{a=QsX3_A@xS7kl<&=5H&)e>4E=Hui68HlugQ-Gcue0;%=55nM~Ih=LAVY5N6 zX-I0|gpaDvVaTENIgAxFzBW+xL3TJnj(*_oID(J)Wol9(96L2YnfTz{89<=>l&rb&mMX5YF1lUy=s|0pwH3mRn^tlv7#Tr zBq)5hZHtj~E~OCza~$Es)ggL@D@0MZ1)c8>VL8|)lT+2&+T2i$$%_`eo-f$oHO}xl z=6w!wG>Lu;22Bk&srV&1G&S6q<%mZHuX)}-{VX{bU#$Iyr7XjD;}wD8SKXJy$^)?4bn(`H6R%E z*)#O-tw~=L9;xqc*p2#jAz^9mRvM`f&1smv?a(LVYXeW}`#$VOeKa<+gC>pC_b>>? z@ckV65<#Qz#o&?pUWVPMuM_&>2MFH_kTdE#4t+k*NFR;sq`tqwZq#=i47u?XEG|dz z6dt3#h2xRVa7g;%@ko71pc(aTj|wlVBu8chgpB&Il*RkYq;Du5sgKTDGwOR4`Uc96 zNhW<6&`0As(ntL*sc)W1-*E)O4!$%pd^A=uhR=lp4zIbs5r9(PN|QdClrh#hsc*SS z-!$lx<%RND>RS&v@(0<<4Si=!=_?J`-0T@ZPWnXx(oXAv7ozXY0pz3(qdwXdZq_%D zoE`P%Lgc1jpxjj#C`UW>FT~$_FHr8W3zVZdr3>+ww%=cf+=mw^M{`LRqA%$J<;Gv2 zT=@mcEgL}2P6bLBS$0+pAeStK0Hxer1IS4piA(#o0pw70gGSnE4vp*p+)#a!I*1_U zUNXr|JCEE^lN^25FLfC8eJtdV&D_j7kG=#1hTKcJLdZ!wIh4Am3%QA08_w8+9L+09 zLvr+7ZIW9GxiTpvWJqpE)@qGn0HxI*Ne4ly^@6&0JAUP_> zzZLqpBm5kPzUvJUCV$Cvne_RfuN%w~@Gi$A_5I1DZz{&qG!B+VT0b<&)u55|Ng+Tf z_cxQjB{}*yo&24JNBV2UxL&#;HLpQmfGomD9?gds(`7I8`N1T8G~XxnC7Sg83iHG_ z$U+M_sc)D`Uj`bP#o&{^LW4e>XwKb$%}rVY_AHw8kBLMqAr|`|iBjZ~NIRwWC5;q&sNKTaqpj1uJP(0XkklTVXQwsVf zJftrk52djodaS~UbDLzKz?1qgy%Hwp%0oIMEYe6hePJ$iskb;Y^1SCyOw6C2KgCYw zv(KOCt>C@|&!1S1Q&a*6hv3U!C37&&drRt?aHyiq)|RGPPWx(y%~9OZCDHUPc7M*O zgGCWtsqR7eVl+?y$_u!8dbIxib6=0~j0EaK$KaWEaIibsUGUMTE#D~`;!b(9klV(- zS;XO(H|KDe{AMwSufJfy*^?1IOXh-;!_(*bHu{EjYA%QS7JgIq@#JaG<8Z9B|L#$o zY8uY1cUsa;^k~la`1$UC>v7s%_Bq@Z{;jlq%(UkN2k#kE>`j}$vqM`S;lAF!+vjRK z?z=MCk~h`&px^QA%O6H-b58r`IQ_{b4PM5-7ELODw{5gH!~KSL`<4DfiSrWYXLt)g zXwReAckds;zmB%N>2MD#9nQZ$#TT$R8$y|2>C&~u&-r~%43~QS&FIp>T;?}DAGYl( zQaX=z_XN`j)nPy*+oXhpYTl*}i(6U$qeCx!7_AhZ_AkPH=kbI4tcvRJcqu%NO;z4O z+y{Ks@3r$VtNY>+np0imrs-s1VbjS)g>M_aeV!`xMx?Cw9~nTioojxmJ=Gh{HQS(B zPYwNkac!Rq`cH)Ef6JiXcQD3IVYAJTa7U-*!|hI_%1Feg-F4?vU|FDSr2pX|=ew?@#0*v%ERcJ)(3Z&rif^lHJYY z^>rotw_T;s+|_fk?Y^Rj&cEFH*sa~G`8#!LyWR*R_C8@p;+YvV>QAMt6{wU>9O)38ai*NA#d9E z$BXzl+_A_B%1u3&e9tR6f8cTX9nY7)cfQlzciym47%9B*2S-7llDTD{_U6daM6PdS zIomq2T*0H_(ePOCMBuUFiNq6yXAmA6o@hKVTSrzTmJi;VSRT98?j2bkx0S->^m^T+ zQNrR;AIZPZ( zaEH!mPkp;b$%*ZQMPP80vP1 zd%RmeJxJZIPO{*f06RZr#D=p;V(jV;3P06Xy@W;JZFcTi2}vTe;t$@n&*Dym4lggu zC5Sh34Z*MC(n}7t1c{>LpsuxzK9F_jJK#Ed<2919Iuc6ta9bTiO9%Ja82N8?;LIUC zZ=ic{-w00ix)b$VV(eCw87kLj26&fHyGmx=LAs+w&9u5LZ>sL$qBX+1tL?-6mM28c z?@ABEuCPv0ofF)JAE=6cTFNUOglUTE+%59^x?p}=aAJ_~S@$ORtNW*XhJO*rf9oU# z{;A?@7L)-G`S@C@@_+I#+tZuEFr9!1^;2G3KRze~09)}A?D>JU6r zeM4RG$-2VxJv08GuG3m-)pce?l;8b=;z;%-`OdAY7Z#4!KQkQh2O}#Y#kovY0p&SO zc6Z2M>NBA$&)bIw=jWp~Xm9Q=eUOJV6{Y37CA;Un74Y5h-37ZVs4NwN_5kO`r`mY? zmcdWuXmIPN$*`S?ne2n%>)$$&(3`@pXX&_Es+uih2}(PAf-MK!j60OEz_fn7IxV zA3RsmtvDV0bjwr9_CaTvtCp9Un|t&yF9R%U)7lc|+=1sOc+^`H<`m(XeR|1LuLXr5OvV(lmL!tE5=8Y=WWk9tnI}tKx1kP@G(Vp8g zseDF>27RRa>A)SXH>}F*L!8=iit(KNaZc30iIjhgwUF-8pz0Z7V#8)V1q+J@%g6Meu&Q{ z`BuZ46}9{#K?9lgMoMz!>WSy!2r@1$ucYs9nOvi#^-o#`s%)n1haoDqJT_OY;g@2B z5$W?=6O|TFTd^k7f<2Ip4K=qKv>;?y>Rnma7^GoCFE*aenOiw;LGj!ml|r$isWub< z#Fyk&tim_Lv}0BTzm*mS(_6CivuZC-r{i79x}z}L(@6$L%J9%Y2v<;6t-zAA%q}1_MD{o%ev}Pr#mvNTyy{0WZ4m?4q zRKn9WRSm87>r0F6%`HAVeYV`Rsx`|_UmQ2oUY@=Rs>WefKp)>*6c-A1%z6;$kOrTj z3aB$dP=A0Qeb=9|>qgkL#rUz%?gy$F5wy*aruk_ZK~*t{VC5S*c5_#xTG?g21$^}` zPNA6$Q0^wm?VLjE0m`mOFPy5katgH~kfDx@T4i+AN3M!Eg~ACLE4fNDQXV4;?OoD$ z(kQ#4I>=Q(QLMC6P<;iMz6l1N?j+V;P7$6~6Xi}$c?NRuq8_@`HcqkY6uyJ8hEt~L zl