From e8614639eb2a1f97ca3908953e7b531be29c1e2f Mon Sep 17 00:00:00 2001 From: tanglj86 Date: Sat, 7 Mar 2020 19:10:36 +0800 Subject: [PATCH 1/3] [bsp/stm32] add support for NUCLEO-F410RB board; --- bsp/stm32/stm32f410-st-nucleo/.config | 369 +++ bsp/stm32/stm32f410-st-nucleo/.cproject | 201 ++ bsp/stm32/stm32f410-st-nucleo/.gitignore | 42 + bsp/stm32/stm32f410-st-nucleo/.project | 69 + .../.settings/language.settings.xml | 14 + .../.settings/org.eclipse.core.runtime.prefs | 3 + bsp/stm32/stm32f410-st-nucleo/Kconfig | 21 + bsp/stm32/stm32f410-st-nucleo/README.md | 104 + bsp/stm32/stm32f410-st-nucleo/SConscript | 15 + bsp/stm32/stm32f410-st-nucleo/SConstruct | 60 + .../applications/SConscript | 12 + .../stm32f410-st-nucleo/applications/main.c | 33 + .../board/CubeMX_Config/.mxproject | 14 + .../board/CubeMX_Config/CubeMX_Config.ioc | 164 + .../board/CubeMX_Config/Inc/main.h | 85 + .../CubeMX_Config/Inc/stm32f4xx_hal_conf.h | 443 +++ .../board/CubeMX_Config/Inc/stm32f4xx_it.h | 69 + .../board/CubeMX_Config/Src/main.c | 253 ++ .../CubeMX_Config/Src/stm32f4xx_hal_msp.c | 151 + .../board/CubeMX_Config/Src/stm32f4xx_it.c | 203 ++ .../CubeMX_Config/Src/system_stm32f4xx.c | 761 +++++ bsp/stm32/stm32f410-st-nucleo/board/Kconfig | 141 + .../stm32f410-st-nucleo/board/SConscript | 37 + bsp/stm32/stm32f410-st-nucleo/board/board.c | 51 + bsp/stm32/stm32f410-st-nucleo/board/board.h | 50 + .../board/linker_scripts/link.icf | 28 + .../board/linker_scripts/link.lds | 158 + .../board/linker_scripts/link.sct | 15 + .../stm32f410-st-nucleo/figures/board.png | Bin 0 -> 447466 bytes .../stm32f410-st-nucleo/makefile.targets | 4 + bsp/stm32/stm32f410-st-nucleo/project.ewd | 2834 +++++++++++++++++ bsp/stm32/stm32f410-st-nucleo/project.ewp | 2257 +++++++++++++ bsp/stm32/stm32f410-st-nucleo/project.eww | 10 + bsp/stm32/stm32f410-st-nucleo/project.uvopt | 162 + bsp/stm32/stm32f410-st-nucleo/project.uvoptx | 940 ++++++ bsp/stm32/stm32f410-st-nucleo/project.uvprojx | 712 +++++ bsp/stm32/stm32f410-st-nucleo/rtconfig.h | 169 + bsp/stm32/stm32f410-st-nucleo/rtconfig.py | 143 + bsp/stm32/stm32f410-st-nucleo/template.ewp | 2032 ++++++++++++ bsp/stm32/stm32f410-st-nucleo/template.eww | 10 + bsp/stm32/stm32f410-st-nucleo/template.uvopt | 162 + bsp/stm32/stm32f410-st-nucleo/template.uvoptx | 192 ++ .../stm32f410-st-nucleo/template.uvprojx | 395 +++ 43 files changed, 13588 insertions(+) create mode 100644 bsp/stm32/stm32f410-st-nucleo/.config create mode 100644 bsp/stm32/stm32f410-st-nucleo/.cproject create mode 100644 bsp/stm32/stm32f410-st-nucleo/.gitignore create mode 100644 bsp/stm32/stm32f410-st-nucleo/.project create mode 100644 bsp/stm32/stm32f410-st-nucleo/.settings/language.settings.xml create mode 100644 bsp/stm32/stm32f410-st-nucleo/.settings/org.eclipse.core.runtime.prefs create mode 100644 bsp/stm32/stm32f410-st-nucleo/Kconfig create mode 100644 bsp/stm32/stm32f410-st-nucleo/README.md create mode 100644 bsp/stm32/stm32f410-st-nucleo/SConscript create mode 100644 bsp/stm32/stm32f410-st-nucleo/SConstruct create mode 100644 bsp/stm32/stm32f410-st-nucleo/applications/SConscript create mode 100644 bsp/stm32/stm32f410-st-nucleo/applications/main.c create mode 100644 bsp/stm32/stm32f410-st-nucleo/board/CubeMX_Config/.mxproject create mode 100644 bsp/stm32/stm32f410-st-nucleo/board/CubeMX_Config/CubeMX_Config.ioc create mode 100644 bsp/stm32/stm32f410-st-nucleo/board/CubeMX_Config/Inc/main.h create mode 100644 bsp/stm32/stm32f410-st-nucleo/board/CubeMX_Config/Inc/stm32f4xx_hal_conf.h create mode 100644 bsp/stm32/stm32f410-st-nucleo/board/CubeMX_Config/Inc/stm32f4xx_it.h create mode 100644 bsp/stm32/stm32f410-st-nucleo/board/CubeMX_Config/Src/main.c create mode 100644 bsp/stm32/stm32f410-st-nucleo/board/CubeMX_Config/Src/stm32f4xx_hal_msp.c create mode 100644 bsp/stm32/stm32f410-st-nucleo/board/CubeMX_Config/Src/stm32f4xx_it.c create mode 100644 bsp/stm32/stm32f410-st-nucleo/board/CubeMX_Config/Src/system_stm32f4xx.c create mode 100644 bsp/stm32/stm32f410-st-nucleo/board/Kconfig create mode 100644 bsp/stm32/stm32f410-st-nucleo/board/SConscript create mode 100644 bsp/stm32/stm32f410-st-nucleo/board/board.c create mode 100644 bsp/stm32/stm32f410-st-nucleo/board/board.h create mode 100644 bsp/stm32/stm32f410-st-nucleo/board/linker_scripts/link.icf create mode 100644 bsp/stm32/stm32f410-st-nucleo/board/linker_scripts/link.lds create mode 100644 bsp/stm32/stm32f410-st-nucleo/board/linker_scripts/link.sct create mode 100644 bsp/stm32/stm32f410-st-nucleo/figures/board.png create mode 100644 bsp/stm32/stm32f410-st-nucleo/makefile.targets create mode 100644 bsp/stm32/stm32f410-st-nucleo/project.ewd create mode 100644 bsp/stm32/stm32f410-st-nucleo/project.ewp create mode 100644 bsp/stm32/stm32f410-st-nucleo/project.eww create mode 100644 bsp/stm32/stm32f410-st-nucleo/project.uvopt create mode 100644 bsp/stm32/stm32f410-st-nucleo/project.uvoptx create mode 100644 bsp/stm32/stm32f410-st-nucleo/project.uvprojx create mode 100644 bsp/stm32/stm32f410-st-nucleo/rtconfig.h create mode 100644 bsp/stm32/stm32f410-st-nucleo/rtconfig.py create mode 100644 bsp/stm32/stm32f410-st-nucleo/template.ewp create mode 100644 bsp/stm32/stm32f410-st-nucleo/template.eww create mode 100644 bsp/stm32/stm32f410-st-nucleo/template.uvopt create mode 100644 bsp/stm32/stm32f410-st-nucleo/template.uvoptx create mode 100644 bsp/stm32/stm32f410-st-nucleo/template.uvprojx diff --git a/bsp/stm32/stm32f410-st-nucleo/.config b/bsp/stm32/stm32f410-st-nucleo/.config new file mode 100644 index 0000000000..57db8e1a90 --- /dev/null +++ b/bsp/stm32/stm32f410-st-nucleo/.config @@ -0,0 +1,369 @@ +# +# Automatically generated file; DO NOT EDIT. +# RT-Thread Configuration +# + +# +# RT-Thread Kernel +# +CONFIG_RT_NAME_MAX=8 +# CONFIG_RT_USING_ARCH_DATA_TYPE is not set +# CONFIG_RT_USING_SMP is not set +CONFIG_RT_ALIGN_SIZE=4 +# CONFIG_RT_THREAD_PRIORITY_8 is not set +CONFIG_RT_THREAD_PRIORITY_32=y +# CONFIG_RT_THREAD_PRIORITY_256 is not set +CONFIG_RT_THREAD_PRIORITY_MAX=32 +CONFIG_RT_TICK_PER_SECOND=1000 +CONFIG_RT_USING_OVERFLOW_CHECK=y +CONFIG_RT_USING_HOOK=y +CONFIG_RT_USING_IDLE_HOOK=y +CONFIG_RT_IDLE_HOOK_LIST_SIZE=4 +CONFIG_IDLE_THREAD_STACK_SIZE=256 +# CONFIG_RT_USING_TIMER_SOFT is not set +CONFIG_RT_DEBUG=y +CONFIG_RT_DEBUG_COLOR=y +# CONFIG_RT_DEBUG_INIT_CONFIG is not set +# CONFIG_RT_DEBUG_THREAD_CONFIG is not set +# CONFIG_RT_DEBUG_SCHEDULER_CONFIG is not set +# CONFIG_RT_DEBUG_IPC_CONFIG is not set +# CONFIG_RT_DEBUG_TIMER_CONFIG is not set +# CONFIG_RT_DEBUG_IRQ_CONFIG is not set +# CONFIG_RT_DEBUG_MEM_CONFIG is not set +# CONFIG_RT_DEBUG_SLAB_CONFIG is not set +# CONFIG_RT_DEBUG_MEMHEAP_CONFIG is not set +# CONFIG_RT_DEBUG_MODULE_CONFIG is not set + +# +# Inter-Thread communication +# +CONFIG_RT_USING_SEMAPHORE=y +CONFIG_RT_USING_MUTEX=y +CONFIG_RT_USING_EVENT=y +CONFIG_RT_USING_MAILBOX=y +CONFIG_RT_USING_MESSAGEQUEUE=y +# CONFIG_RT_USING_SIGNALS is not set + +# +# Memory Management +# +CONFIG_RT_USING_MEMPOOL=y +# CONFIG_RT_USING_MEMHEAP is not set +# CONFIG_RT_USING_NOHEAP is not set +CONFIG_RT_USING_SMALL_MEM=y +# CONFIG_RT_USING_SLAB is not set +# CONFIG_RT_USING_MEMTRACE is not set +CONFIG_RT_USING_HEAP=y + +# +# Kernel Device Object +# +CONFIG_RT_USING_DEVICE=y +# CONFIG_RT_USING_DEVICE_OPS is not set +# CONFIG_RT_USING_INTERRUPT_INFO is not set +CONFIG_RT_USING_CONSOLE=y +CONFIG_RT_CONSOLEBUF_SIZE=128 +CONFIG_RT_CONSOLE_DEVICE_NAME="uart2" +CONFIG_RT_VER_NUM=0x40003 +CONFIG_ARCH_ARM=y +CONFIG_RT_USING_CPU_FFS=y +CONFIG_ARCH_ARM_CORTEX_M=y +CONFIG_ARCH_ARM_CORTEX_M4=y +# CONFIG_ARCH_CPU_STACK_GROWS_UPWARD is not set + +# +# RT-Thread Components +# +CONFIG_RT_USING_COMPONENTS_INIT=y +CONFIG_RT_USING_USER_MAIN=y +CONFIG_RT_MAIN_THREAD_STACK_SIZE=2048 +CONFIG_RT_MAIN_THREAD_PRIORITY=10 + +# +# C++ features +# +# CONFIG_RT_USING_CPLUSPLUS is not set + +# +# Command shell +# +CONFIG_RT_USING_FINSH=y +CONFIG_FINSH_THREAD_NAME="tshell" +CONFIG_FINSH_USING_HISTORY=y +CONFIG_FINSH_HISTORY_LINES=5 +CONFIG_FINSH_USING_SYMTAB=y +CONFIG_FINSH_USING_DESCRIPTION=y +# CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set +CONFIG_FINSH_THREAD_PRIORITY=20 +CONFIG_FINSH_THREAD_STACK_SIZE=4096 +CONFIG_FINSH_CMD_SIZE=80 +# CONFIG_FINSH_USING_AUTH is not set +CONFIG_FINSH_USING_MSH=y +CONFIG_FINSH_USING_MSH_DEFAULT=y +CONFIG_FINSH_USING_MSH_ONLY=y +CONFIG_FINSH_ARG_MAX=10 + +# +# Device virtual file system +# +# CONFIG_RT_USING_DFS is not set + +# +# Device Drivers +# +CONFIG_RT_USING_DEVICE_IPC=y +CONFIG_RT_PIPE_BUFSZ=512 +# CONFIG_RT_USING_SYSTEM_WORKQUEUE is not set +CONFIG_RT_USING_SERIAL=y +# CONFIG_RT_SERIAL_USING_DMA is not set +CONFIG_RT_SERIAL_RB_BUFSZ=64 +# CONFIG_RT_USING_CAN is not set +# CONFIG_RT_USING_HWTIMER is not set +# CONFIG_RT_USING_CPUTIME is not set +# CONFIG_RT_USING_I2C is not set +CONFIG_RT_USING_PIN=y +# CONFIG_RT_USING_ADC is not set +# CONFIG_RT_USING_PWM is not set +# CONFIG_RT_USING_MTD_NOR is not set +# CONFIG_RT_USING_MTD_NAND is not set +# CONFIG_RT_USING_PM is not set +# CONFIG_RT_USING_RTC is not set +# CONFIG_RT_USING_SDIO is not set +# CONFIG_RT_USING_SPI is not set +# CONFIG_RT_USING_WDT is not set +# CONFIG_RT_USING_AUDIO is not set +# CONFIG_RT_USING_SENSOR is not set +# CONFIG_RT_USING_TOUCH is not set +# CONFIG_RT_USING_HWCRYPTO is not set +# CONFIG_RT_USING_PULSE_ENCODER is not set +# CONFIG_RT_USING_INPUT_CAPTURE is not set +# CONFIG_RT_USING_WIFI is not set + +# +# Using USB +# +# CONFIG_RT_USING_USB_HOST is not set +# CONFIG_RT_USING_USB_DEVICE is not set + +# +# POSIX layer and C standard library +# +# CONFIG_RT_USING_LIBC is not set +# CONFIG_RT_USING_PTHREADS is not set +CONFIG_RT_LIBC_USING_TIME=y + +# +# Network +# + +# +# Socket abstraction layer +# +# CONFIG_RT_USING_SAL is not set + +# +# Network interface device +# +# CONFIG_RT_USING_NETDEV is not set + +# +# light weight TCP/IP stack +# +# CONFIG_RT_USING_LWIP is not set + +# +# AT commands +# +# CONFIG_RT_USING_AT is not set + +# +# VBUS(Virtual Software BUS) +# +# CONFIG_RT_USING_VBUS is not set + +# +# Utilities +# +# CONFIG_RT_USING_RYM is not set +# CONFIG_RT_USING_ULOG is not set +# CONFIG_RT_USING_UTEST is not set +# CONFIG_RT_USING_LWP is not set + +# +# RT-Thread online packages +# + +# +# IoT - internet of things +# +# CONFIG_PKG_USING_PAHOMQTT is not set +# CONFIG_PKG_USING_WEBCLIENT is not set +# CONFIG_PKG_USING_WEBNET is not set +# CONFIG_PKG_USING_MONGOOSE is not set +# CONFIG_PKG_USING_WEBTERMINAL is not set +# CONFIG_PKG_USING_CJSON is not set +# CONFIG_PKG_USING_JSMN is not set +# CONFIG_PKG_USING_LIBMODBUS is not set +# CONFIG_PKG_USING_LJSON is not set +# CONFIG_PKG_USING_EZXML is not set +# CONFIG_PKG_USING_NANOPB is not set + +# +# Wi-Fi +# + +# +# Marvell WiFi +# +# CONFIG_PKG_USING_WLANMARVELL is not set + +# +# Wiced WiFi +# +# CONFIG_PKG_USING_WLAN_WICED is not set +# CONFIG_PKG_USING_RW007 is not set +# CONFIG_PKG_USING_COAP is not set +# CONFIG_PKG_USING_NOPOLL is not set +# CONFIG_PKG_USING_NETUTILS is not set +# CONFIG_PKG_USING_AT_DEVICE is not set +# CONFIG_PKG_USING_WIZNET is not set + +# +# IoT Cloud +# +# CONFIG_PKG_USING_ONENET is not set +# CONFIG_PKG_USING_GAGENT_CLOUD is not set +# CONFIG_PKG_USING_ALI_IOTKIT is not set +# CONFIG_PKG_USING_AZURE is not set +# CONFIG_PKG_USING_TENCENT_IOTKIT is not set +# CONFIG_PKG_USING_NIMBLE is not set +# CONFIG_PKG_USING_OTA_DOWNLOADER is not set + +# +# security packages +# +# CONFIG_PKG_USING_MBEDTLS is not set +# CONFIG_PKG_USING_libsodium is not set +# CONFIG_PKG_USING_TINYCRYPT is not set + +# +# language packages +# +# CONFIG_PKG_USING_LUA is not set +# CONFIG_PKG_USING_JERRYSCRIPT is not set +# CONFIG_PKG_USING_MICROPYTHON is not set + +# +# multimedia packages +# +# CONFIG_PKG_USING_OPENMV is not set +# CONFIG_PKG_USING_MUPDF is not set +# CONFIG_PKG_USING_STEMWIN is not set + +# +# tools packages +# +# CONFIG_PKG_USING_CMBACKTRACE is not set +# CONFIG_PKG_USING_EASYFLASH is not set +# CONFIG_PKG_USING_EASYLOGGER is not set +# CONFIG_PKG_USING_SYSTEMVIEW is not set +# CONFIG_PKG_USING_RDB is not set +# CONFIG_PKG_USING_QRCODE is not set +# CONFIG_PKG_USING_ULOG_EASYFLASH is not set +# CONFIG_PKG_USING_ADBD is not set + +# +# system packages +# +# CONFIG_PKG_USING_GUIENGINE is not set +# CONFIG_PKG_USING_PERSIMMON is not set +# CONFIG_PKG_USING_CAIRO is not set +# CONFIG_PKG_USING_PIXMAN is not set +# CONFIG_PKG_USING_LWEXT4 is not set +# CONFIG_PKG_USING_PARTITION is not set +# CONFIG_PKG_USING_FAL is not set +# CONFIG_PKG_USING_SQLITE is not set +# CONFIG_PKG_USING_RTI is not set +# CONFIG_PKG_USING_LITTLEVGL2RTT is not set +# CONFIG_PKG_USING_CMSIS is not set +# CONFIG_PKG_USING_DFS_YAFFS is not set +# CONFIG_PKG_USING_LITTLEFS is not set +# CONFIG_PKG_USING_THREAD_POOL is not set + +# +# peripheral libraries and drivers +# +# CONFIG_PKG_USING_SENSORS_DRIVERS is not set +# CONFIG_PKG_USING_REALTEK_AMEBA is not set +# CONFIG_PKG_USING_SHT2X is not set +# CONFIG_PKG_USING_AHT10 is not set +# CONFIG_PKG_USING_AP3216C is not set +# CONFIG_PKG_USING_STM32_SDIO is not set +# CONFIG_PKG_USING_ICM20608 is not set +# CONFIG_PKG_USING_U8G2 is not set +# CONFIG_PKG_USING_BUTTON is not set +# CONFIG_PKG_USING_MPU6XXX is not set +# CONFIG_PKG_USING_PCF8574 is not set +# CONFIG_PKG_USING_SX12XX is not set +# CONFIG_PKG_USING_SIGNAL_LED is not set +# CONFIG_PKG_USING_WM_LIBRARIES is not set +# CONFIG_PKG_USING_KENDRYTE_SDK is not set +# CONFIG_PKG_USING_INFRARED is not set +# CONFIG_PKG_USING_ROSSERIAL is not set +# CONFIG_PKG_USING_AT24CXX is not set + +# +# miscellaneous packages +# +# CONFIG_PKG_USING_LIBCSV is not set +# CONFIG_PKG_USING_OPTPARSE is not set +# CONFIG_PKG_USING_FASTLZ is not set +# CONFIG_PKG_USING_MINILZO is not set +# CONFIG_PKG_USING_QUICKLZ is not set +# CONFIG_PKG_USING_MULTIBUTTON is not set +# CONFIG_PKG_USING_CANFESTIVAL is not set +# CONFIG_PKG_USING_ZLIB is not set +# CONFIG_PKG_USING_DSTR is not set +# CONFIG_PKG_USING_TINYFRAME is not set +# CONFIG_PKG_USING_KENDRYTE_DEMO is not set + +# +# samples: kernel and components samples +# +# CONFIG_PKG_USING_KERNEL_SAMPLES is not set +# CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set +# CONFIG_PKG_USING_NETWORK_SAMPLES is not set +# CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set +# CONFIG_PKG_USING_HELLO is not set +# CONFIG_PKG_USING_VI is not set +# CONFIG_PKG_USING_NNOM is not set +CONFIG_SOC_FAMILY_STM32=y +CONFIG_SOC_SERIES_STM32F4=y + +# +# Hardware Drivers Config +# +CONFIG_SOC_STM32F410RB=y + +# +# Onboard Peripheral Drivers +# + +# +# On-chip Peripheral Drivers +# +CONFIG_BSP_USING_GPIO=y +CONFIG_BSP_USING_UART=y +CONFIG_BSP_USING_UART2=y +# CONFIG_BSP_USING_UART6 is not set +# CONFIG_BSP_USING_I2C1 is not set +# CONFIG_BSP_USING_SPI is not set +# CONFIG_BSP_USING_PWM is not set +# CONFIG_BSP_USING_ONCHIP_RTC is not set +# CONFIG_BSP_USING_ON_CHIP_FLASH is not set +# CONFIG_BSP_USING_RNG is not set +# CONFIG_BSP_USING_UDID is not set + +# +# Board extended module Drivers +# diff --git a/bsp/stm32/stm32f410-st-nucleo/.cproject b/bsp/stm32/stm32f410-st-nucleo/.cproject new file mode 100644 index 0000000000..57136a8532 --- /dev/null +++ b/bsp/stm32/stm32f410-st-nucleo/.cproject @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bsp/stm32/stm32f410-st-nucleo/.gitignore b/bsp/stm32/stm32f410-st-nucleo/.gitignore new file mode 100644 index 0000000000..7221bde019 --- /dev/null +++ b/bsp/stm32/stm32f410-st-nucleo/.gitignore @@ -0,0 +1,42 @@ +*.pyc +*.map +*.dblite +*.elf +*.bin +*.hex +*.axf +*.exe +*.pdb +*.idb +*.ilk +*.old +build +Debug +documentation/html +packages/ +*~ +*.o +*.obj +*.out +*.bak +*.dep +*.lib +*.i +*.d +.DS_Stor* +.config 3 +.config 4 +.config 5 +Midea-X1 +*.uimg +GPATH +GRTAGS +GTAGS +.vscode +JLinkLog.txt +JLinkSettings.ini +DebugConfig/ +RTE/ +settings/ +*.uvguix* +cconfig.h diff --git a/bsp/stm32/stm32f410-st-nucleo/.project b/bsp/stm32/stm32f410-st-nucleo/.project new file mode 100644 index 0000000000..4fce1e5d64 --- /dev/null +++ b/bsp/stm32/stm32f410-st-nucleo/.project @@ -0,0 +1,69 @@ + + + stm32f411-st-nucleo + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.rt-thread.studio.rttnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + + rt-thread + 2 + virtual:/virtual + + + rt-thread/bsp + 2 + virtual:/virtual + + + rt-thread/components + 2 + $%7BPARENT-3-PROJECT_LOC%7D/components + + + rt-thread/include + 2 + $%7BPARENT-3-PROJECT_LOC%7D/include + + + rt-thread/libcpu + 2 + $%7BPARENT-3-PROJECT_LOC%7D/libcpu + + + rt-thread/src + 2 + $%7BPARENT-3-PROJECT_LOC%7D/src + + + rt-thread/bsp/stm32 + 2 + virtual:/virtual + + + rt-thread/bsp/stm32/libraries + 2 + $%7BPARENT-1-PROJECT_LOC%7D/libraries + + + diff --git a/bsp/stm32/stm32f410-st-nucleo/.settings/language.settings.xml b/bsp/stm32/stm32f410-st-nucleo/.settings/language.settings.xml new file mode 100644 index 0000000000..5d47297634 --- /dev/null +++ b/bsp/stm32/stm32f410-st-nucleo/.settings/language.settings.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/bsp/stm32/stm32f410-st-nucleo/.settings/org.eclipse.core.runtime.prefs b/bsp/stm32/stm32f410-st-nucleo/.settings/org.eclipse.core.runtime.prefs new file mode 100644 index 0000000000..b36aae6fb2 --- /dev/null +++ b/bsp/stm32/stm32f410-st-nucleo/.settings/org.eclipse.core.runtime.prefs @@ -0,0 +1,3 @@ +content-types/enabled=true +content-types/org.eclipse.cdt.core.asmSource/file-extensions=s +eclipse.preferences.version=1 diff --git a/bsp/stm32/stm32f410-st-nucleo/Kconfig b/bsp/stm32/stm32f410-st-nucleo/Kconfig new file mode 100644 index 0000000000..8cbc7b71a8 --- /dev/null +++ b/bsp/stm32/stm32f410-st-nucleo/Kconfig @@ -0,0 +1,21 @@ +mainmenu "RT-Thread Configuration" + +config BSP_DIR + string + option env="BSP_ROOT" + default "." + +config RTT_DIR + string + option env="RTT_ROOT" + default "../../.." + +config PKGS_DIR + string + option env="PKGS_ROOT" + default "packages" + +source "$RTT_DIR/Kconfig" +source "$PKGS_DIR/Kconfig" +source "../libraries/Kconfig" +source "board/Kconfig" diff --git a/bsp/stm32/stm32f410-st-nucleo/README.md b/bsp/stm32/stm32f410-st-nucleo/README.md new file mode 100644 index 0000000000..674092c585 --- /dev/null +++ b/bsp/stm32/stm32f410-st-nucleo/README.md @@ -0,0 +1,104 @@ +# STM32F410-Nucleo-64 开发板 BSP 说明 + +## 简介 + +本文档为 RT-Thread 开发团队为 STM32F410-Nucleo-64 开发板提供的 BSP (板级支持包) 说明。 + +主要内容如下: + +- 开发板资源介绍 +- BSP 快速上手 +- 进阶使用方法 + +通过阅读快速上手章节开发者可以快速地上手该 BSP,将 RT-Thread 运行在开发板上。在进阶使用指南章节,将会介绍更多高级功能,帮助开发者利用 RT-Thread 驱动更多板载资源。 + +## 开发板介绍 + +探索者 STM32F410-Nucleo-64 是意法半导体推出的一款基于 ARM Cortex-M4 内核的开发板,最高主频为 84Mhz,该开发板具有丰富的板载资源,可以充分发挥 STM32F410RB 的芯片性能。 + +开发板外观如下图所示: + +![board](figures/board.png) + +该开发板常用 ** 板载资源 ** 如下: + +- MCU:STM32F410RBT6,主频 84MHz,128KB FLASH ,32KB RAM。 +- 常用外设 + - LED:3 个,USB communication (LD1), user LED (LD2), power LED (LD3) 。 + - 按键,2 个,USER and RESET 。 +- 调试接口,板载 ST-LINK/V2-1 调试器。 + +开发板更多详细信息请参考意法半导体 [STM32F410-Nucleo-64 开发板介绍](https://www.st.com/content/st_com/en/products/evaluation-tools/product-evaluation-tools/mcu-mpu-eval-tools/stm32-mcu-mpu-eval-tools/stm32-nucleo-boards/nucleo-f410rb.html)。 + +## 外设支持 + +本 BSP 目前对外设的支持情况如下: + +| **片上外设** | **支持情况** | **备注** | +| :------------ | :----------: | :-----------------------------------: | +| GPIO | 支持 | PA0, PA1... ---> PIN: 0, 1...63 | +| UART | 支持 | UART2 | + +## 使用说明 + +使用说明分为如下两个章节: + +- 快速上手 + + 本章节是为刚接触 RT-Thread 的新手准备的使用说明,遵循简单的步骤即可将 RT-Thread 操作系统运行在该开发板上,看到实验效果 。 + +- 进阶使用 + + 本章节是为需要在 RT-Thread 操作系统上使用更多开发板资源的开发者准备的。通过使用 ENV 工具对 BSP 进行配置,可以开启更多板载资源,实现更多高级功能。 + + +### 快速上手 + +本 BSP 为开发者提供 MDK5 和 IAR 工程,并且支持 GCC 开发环境。下面以 MDK5 开发环境为例,介绍如何将系统运行起来。 + +#### 硬件连接 + +使用 Type-A to Mini-B 线连接开发板和 PC 供电,红色 LED LD3 (PWR) 和 LD1 (COM) 会点亮。 + +#### 编译下载 + +双击 project.uvprojx 文件,打开 MDK5 工程,编译并下载程序到开发板。 + +> 工程默认配置使用 ST-LINK 下载程序,点击下载按钮即可下载程序到开发板。 + +#### 运行结果 + +下载程序成功之后,系统会自动运行,观察开发板上 LED 的运行效果,红色 LD3 和 LD1 常亮、绿色 LD2 会周期性闪烁。 + +USB 虚拟 COM 端口默认连接串口 2,在终端工具里打开相应的串口(115200-8-1-N),复位设备后,可以看到 RT-Thread 的输出信息: + +```bash + \ | / +- RT - Thread Operating System + / | \ 4.0.3 build Mar 7 2020 + 2006 - 2020 Copyright by rt-thread team +msh > +``` +### 进阶使用 + +此 BSP 默认只开启了 GPIO 和 串口 2 的功能,更多高级功能需要利用 ENV 工具对 BSP 进行配置,步骤如下: + +1. 在 BSP 下打开 env 工具。 + +2. 输入 `menuconfig` 命令配置工程,配置好之后保存退出。 + +3. 输入 `pkgs --update` 命令更新软件包。 + +4. 输入 `scons --target=mdk4/mdk5/iar` 命令重新生成工程。 + +本章节更多详细的介绍请参考 [STM32 系列 BSP 外设驱动使用教程](../docs/STM32 系列 BSP 外设驱动使用教程. md)。 + +## 注意事项 + +暂无 + +## 联系人信息 + +维护人: + +- [tanglj86](https://github.com/tanglj86/rt-thread) ,邮箱: \ No newline at end of file diff --git a/bsp/stm32/stm32f410-st-nucleo/SConscript b/bsp/stm32/stm32f410-st-nucleo/SConscript new file mode 100644 index 0000000000..20f7689c53 --- /dev/null +++ b/bsp/stm32/stm32f410-st-nucleo/SConscript @@ -0,0 +1,15 @@ +# for module compiling +import os +Import('RTT_ROOT') +from building import * + +cwd = GetCurrentDir() +objs = [] +list = os.listdir(cwd) + +for d in list: + path = os.path.join(cwd, d) + if os.path.isfile(os.path.join(path, 'SConscript')): + objs = objs + SConscript(os.path.join(d, 'SConscript')) + +Return('objs') diff --git a/bsp/stm32/stm32f410-st-nucleo/SConstruct b/bsp/stm32/stm32f410-st-nucleo/SConstruct new file mode 100644 index 0000000000..1684dc06b0 --- /dev/null +++ b/bsp/stm32/stm32f410-st-nucleo/SConstruct @@ -0,0 +1,60 @@ +import os +import sys +import rtconfig + +if os.getenv('RTT_ROOT'): + RTT_ROOT = os.getenv('RTT_ROOT') +else: + RTT_ROOT = os.path.normpath(os.getcwd() + '/../../..') + +sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')] +try: + from building import * +except: + print('Cannot found RT-Thread root directory, please check RTT_ROOT') + print(RTT_ROOT) + exit(-1) + +TARGET = 'rtthread.' + rtconfig.TARGET_EXT + +DefaultEnvironment(tools=[]) +env = Environment(tools = ['mingw'], + AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS, + CC = rtconfig.CC, CCFLAGS = rtconfig.CFLAGS, + AR = rtconfig.AR, ARFLAGS = '-rc', + CXX = rtconfig.CXX, CXXFLAGS = rtconfig.CXXFLAGS, + LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS) +env.PrependENVPath('PATH', rtconfig.EXEC_PATH) + +if rtconfig.PLATFORM == 'iar': + env.Replace(CCCOM = ['$CC $CCFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS -o $TARGET $SOURCES']) + env.Replace(ARFLAGS = ['']) + env.Replace(LINKCOM = env["LINKCOM"] + ' --map rtthread.map') + +Export('RTT_ROOT') +Export('rtconfig') + +SDK_ROOT = os.path.abspath('./') + +if os.path.exists(SDK_ROOT + '/libraries'): + libraries_path_prefix = SDK_ROOT + '/libraries' +else: + libraries_path_prefix = os.path.dirname(SDK_ROOT) + '/libraries' + +SDK_LIB = libraries_path_prefix +Export('SDK_LIB') + +# prepare building environment +objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False) + +stm32_library = 'STM32F4xx_HAL' +rtconfig.BSP_LIBRARY_TYPE = stm32_library + +# include libraries +objs.extend(SConscript(os.path.join(libraries_path_prefix, stm32_library, 'SConscript'))) + +# include drivers +objs.extend(SConscript(os.path.join(libraries_path_prefix, 'HAL_Drivers', 'SConscript'))) + +# make a building +DoBuilding(TARGET, objs) diff --git a/bsp/stm32/stm32f410-st-nucleo/applications/SConscript b/bsp/stm32/stm32f410-st-nucleo/applications/SConscript new file mode 100644 index 0000000000..6f66f7ab73 --- /dev/null +++ b/bsp/stm32/stm32f410-st-nucleo/applications/SConscript @@ -0,0 +1,12 @@ +import rtconfig +from building import * + +cwd = GetCurrentDir() +CPPPATH = [cwd, str(Dir('#'))] +src = Split(""" +main.c +""") + +group = DefineGroup('Applications', src, depend = [''], CPPPATH = CPPPATH) + +Return('group') diff --git a/bsp/stm32/stm32f410-st-nucleo/applications/main.c b/bsp/stm32/stm32f410-st-nucleo/applications/main.c new file mode 100644 index 0000000000..1305c03138 --- /dev/null +++ b/bsp/stm32/stm32f410-st-nucleo/applications/main.c @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2006-2020, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2020-03-07 tanglj86 first version + */ + +#include +#include +#include + +/* defined the LED0 pin: PA5 */ +#define LED0_PIN GET_PIN(A, 5) + +int main(void) +{ + int count = 1; + /* set LED0 pin mode to output */ + rt_pin_mode(LED0_PIN, PIN_MODE_OUTPUT); + + while (count++) + { + rt_pin_write(LED0_PIN, PIN_HIGH); + rt_thread_mdelay(500); + rt_pin_write(LED0_PIN, PIN_LOW); + rt_thread_mdelay(500); + } + + return RT_EOK; +} diff --git a/bsp/stm32/stm32f410-st-nucleo/board/CubeMX_Config/.mxproject b/bsp/stm32/stm32f410-st-nucleo/board/CubeMX_Config/.mxproject new file mode 100644 index 0000000000..41375e9c7c --- /dev/null +++ b/bsp/stm32/stm32f410-st-nucleo/board/CubeMX_Config/.mxproject @@ -0,0 +1,14 @@ +[PreviousGenFiles] +HeaderPath=F:/rt-thread/PR/rt-thread/bsp/stm32/stm32f410-st-nucleo/board/CubeMX_Config/Inc +HeaderFiles=stm32f4xx_it.h;stm32f4xx_hal_conf.h;main.h; +SourcePath=F:/rt-thread/PR/rt-thread/bsp/stm32/stm32f410-st-nucleo/board/CubeMX_Config/Src +SourceFiles=stm32f4xx_it.c;stm32f4xx_hal_msp.c;main.c; + +[PreviousLibFiles] +LibFiles=Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h;Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h;Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h;Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f410rx.h;Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h;Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h;Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c;Drivers/CMSIS/Include/cmsis_armcc.h;Drivers/CMSIS/Include/cmsis_armclang.h;Drivers/CMSIS/Include/cmsis_compiler.h;Drivers/CMSIS/Include/cmsis_gcc.h;Drivers/CMSIS/Include/cmsis_iccarm.h;Drivers/CMSIS/Include/cmsis_version.h;Drivers/CMSIS/Include/core_armv8mbl.h;Drivers/CMSIS/Include/core_armv8mml.h;Drivers/CMSIS/Include/core_cm0.h;Drivers/CMSIS/Include/core_cm0plus.h;Drivers/CMSIS/Include/core_cm1.h;Drivers/CMSIS/Include/core_cm23.h;Drivers/CMSIS/Include/core_cm3.h;Drivers/CMSIS/Include/core_cm33.h;Drivers/CMSIS/Include/core_cm4.h;Drivers/CMSIS/Include/core_cm7.h;Drivers/CMSIS/Include/core_sc000.h;Drivers/CMSIS/Include/core_sc300.h;Drivers/CMSIS/Include/mpu_armv7.h;Drivers/CMSIS/Include/mpu_armv8.h;Drivers/CMSIS/Include/tz_context.h; + +[PreviousUsedKeilFiles] +SourceFiles=..\Src\main.c;..\Src\stm32f4xx_it.c;..\Src\stm32f4xx_hal_msp.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c;..\\Src/system_stm32f4xx.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c;..\\Src/system_stm32f4xx.c;..\Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c;; +HeaderPath=..\Drivers\STM32F4xx_HAL_Driver\Inc;..\Drivers\STM32F4xx_HAL_Driver\Inc\Legacy;..\Drivers\CMSIS\Device\ST\STM32F4xx\Include;..\Drivers\CMSIS\Include;..\Inc; +CDefines=USE_HAL_DRIVER;STM32F410Rx;USE_HAL_DRIVER;USE_HAL_DRIVER; + diff --git a/bsp/stm32/stm32f410-st-nucleo/board/CubeMX_Config/CubeMX_Config.ioc b/bsp/stm32/stm32f410-st-nucleo/board/CubeMX_Config/CubeMX_Config.ioc new file mode 100644 index 0000000000..2ff19285ab --- /dev/null +++ b/bsp/stm32/stm32f410-st-nucleo/board/CubeMX_Config/CubeMX_Config.ioc @@ -0,0 +1,164 @@ +#MicroXplorer Configuration settings - do not modify +File.Version=6 +KeepUserPlacement=false +Mcu.Family=STM32F4 +Mcu.IP0=NVIC +Mcu.IP1=RCC +Mcu.IP2=SYS +Mcu.IP3=USART2 +Mcu.IPNb=4 +Mcu.Name=STM32F410R(8-B)Tx +Mcu.Package=LQFP64 +Mcu.Pin0=PC13-ANTI_TAMP +Mcu.Pin1=PC14-OSC32_IN +Mcu.Pin10=PB3 +Mcu.Pin11=VP_SYS_VS_Systick +Mcu.Pin2=PC15-OSC32_OUT +Mcu.Pin3=PH0 - OSC_IN +Mcu.Pin4=PH1 - OSC_OUT +Mcu.Pin5=PA2 +Mcu.Pin6=PA3 +Mcu.Pin7=PA5 +Mcu.Pin8=PA13 +Mcu.Pin9=PA14 +Mcu.PinsNb=12 +Mcu.ThirdPartyNb=0 +Mcu.UserConstants= +Mcu.UserName=STM32F410RBTx +MxCube.Version=5.5.0 +MxDb.Version=DB.5.0.50 +NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:true\:false +NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:true\:false +NVIC.ForceEnableDMAVector=true +NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:true\:false +NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:true\:false +NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:true\:false +NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false +NVIC.PriorityGroup=NVIC_PRIORITYGROUP_0 +NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false +NVIC.SysTick_IRQn=true\:0\:0\:true\:false\:true\:true\:true +NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:true\:false +PA13.GPIOParameters=GPIO_Label +PA13.GPIO_Label=TMS +PA13.Locked=true +PA13.Mode=Serial_Wire +PA13.Signal=SYS_JTMS-SWDIO +PA14.GPIOParameters=GPIO_Label +PA14.GPIO_Label=TCK +PA14.Locked=true +PA14.Mode=Serial_Wire +PA14.Signal=SYS_JTCK-SWCLK +PA2.GPIOParameters=GPIO_Label +PA2.GPIO_Label=USART_TX +PA2.Locked=true +PA2.Mode=Asynchronous +PA2.Signal=USART2_TX +PA3.GPIOParameters=GPIO_Label +PA3.GPIO_Label=USART_RX +PA3.Locked=true +PA3.Mode=Asynchronous +PA3.Signal=USART2_RX +PA5.GPIOParameters=GPIO_Label +PA5.GPIO_Label=LD2 [Green Led] +PA5.Locked=true +PA5.Signal=GPIO_Output +PB3.GPIOParameters=GPIO_Label +PB3.GPIO_Label=SWO +PB3.Locked=true +PB3.Signal=SYS_JTDO-SWO +PC13-ANTI_TAMP.GPIOParameters=GPIO_Label,GPIO_ModeDefaultEXTI +PC13-ANTI_TAMP.GPIO_Label=B1 [Blue PushButton] +PC13-ANTI_TAMP.GPIO_ModeDefaultEXTI=GPIO_MODE_IT_FALLING +PC13-ANTI_TAMP.Locked=true +PC13-ANTI_TAMP.Signal=GPXTI13 +PC14-OSC32_IN.Locked=true +PC14-OSC32_IN.Mode=LSE-External-Oscillator +PC14-OSC32_IN.Signal=RCC_OSC32_IN +PC15-OSC32_OUT.Locked=true +PC15-OSC32_OUT.Mode=LSE-External-Oscillator +PC15-OSC32_OUT.Signal=RCC_OSC32_OUT +PCC.Checker=false +PCC.Line=STM32F410 +PCC.MCU=STM32F410R(8-B)Tx +PCC.PartNumber=STM32F410RBTx +PCC.Seq0=0 +PCC.Series=STM32F4 +PCC.Temperature=25 +PCC.Vdd=null +PH0\ -\ OSC_IN.Locked=true +PH0\ -\ OSC_IN.Mode=HSE-External-Clock-Source +PH0\ -\ OSC_IN.Signal=RCC_OSC_IN +PH1\ -\ OSC_OUT.Locked=true +PH1\ -\ OSC_OUT.Mode=HSE-External-Clock-Source +PH1\ -\ OSC_OUT.Signal=RCC_OSC_OUT +PinOutPanel.RotationAngle=0 +ProjectManager.AskForMigrate=true +ProjectManager.BackupPrevious=false +ProjectManager.CompilerOptimize=6 +ProjectManager.ComputerToolchain=false +ProjectManager.CoupleFile=false +ProjectManager.CustomerFirmwarePackage= +ProjectManager.DefaultFWLocation=false +ProjectManager.DeletePrevious=true +ProjectManager.DeviceId=STM32F410RBTx +ProjectManager.FirmwarePackage=STM32Cube FW_F4 V1.24.2 +ProjectManager.FreePins=false +ProjectManager.HalAssertFull=false +ProjectManager.HeapSize=0x200 +ProjectManager.KeepUserCode=true +ProjectManager.LastFirmware=true +ProjectManager.LibraryCopy=0 +ProjectManager.MainLocation=Src +ProjectManager.NoMain=false +ProjectManager.PreviousToolchain= +ProjectManager.ProjectBuild=false +ProjectManager.ProjectFileName=CubeMX_Config.ioc +ProjectManager.ProjectName=CubeMX_Config +ProjectManager.StackSize=0x400 +ProjectManager.TargetToolchain=MDK-ARM V5 +ProjectManager.ToolChainLocation= +ProjectManager.UnderRoot=false +ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_USART2_UART_Init-USART2-false-HAL-true +RCC.48MHZClocksFreq_Value=84000000 +RCC.AHBFreq_Value=84000000 +RCC.APB1CLKDivider=RCC_HCLK_DIV2 +RCC.APB1Freq_Value=42000000 +RCC.APB1TimFreq_Value=84000000 +RCC.APB2Freq_Value=84000000 +RCC.APB2TimFreq_Value=84000000 +RCC.CortexFreq_Value=84000000 +RCC.EthernetFreq_Value=84000000 +RCC.FCLKCortexFreq_Value=84000000 +RCC.FLatency-AdvancedSettings=FLASH_LATENCY_2 +RCC.FMPI2C1Freq_Value=42000000 +RCC.FamilyName=M +RCC.HCLKFreq_Value=84000000 +RCC.HSE_VALUE=8000000 +RCC.HSI_VALUE=16000000 +RCC.I2SClocksFreq_Value=168000000 +RCC.IPParameters=48MHZClocksFreq_Value,AHBFreq_Value,APB1CLKDivider,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,CortexFreq_Value,EthernetFreq_Value,FCLKCortexFreq_Value,FLatency-AdvancedSettings,FMPI2C1Freq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI_VALUE,I2SClocksFreq_Value,LPTIM1Freq_Value,LSI_VALUE,MCO2PinFreq_Value,PLLCLKFreq_Value,PLLN,PLLP,RTCFreq_Value,RTCHSEDivFreq_Value,SYSCLKFreq_VALUE,SYSCLKSource,VCOI2SOutputFreq_Value,VCOInputFreq_Value,VCOInputMFreq_Value,VCOOutputFreq_Value,VCOQOutputFreq_Value,VCOROutputFreq_Value,VcooutputI2S +RCC.LPTIM1Freq_Value=42000000 +RCC.LSI_VALUE=32000 +RCC.MCO2PinFreq_Value=84000000 +RCC.PLLCLKFreq_Value=84000000 +RCC.PLLN=336 +RCC.PLLP=RCC_PLLP_DIV4 +RCC.RTCFreq_Value=32000 +RCC.RTCHSEDivFreq_Value=4000000 +RCC.SYSCLKFreq_VALUE=84000000 +RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK +RCC.VCOI2SOutputFreq_Value=192000000 +RCC.VCOInputFreq_Value=1000000 +RCC.VCOInputMFreq_Value=1000000 +RCC.VCOOutputFreq_Value=336000000 +RCC.VCOQOutputFreq_Value=84000000 +RCC.VCOROutputFreq_Value=168000000 +RCC.VcooutputI2S=96000000 +SH.GPXTI13.0=GPIO_EXTI13 +SH.GPXTI13.ConfNb=1 +USART2.IPParameters=VirtualMode +USART2.VirtualMode=VM_ASYNC +VP_SYS_VS_Systick.Mode=SysTick +VP_SYS_VS_Systick.Signal=SYS_VS_Systick +board=NUCLEO-F410RB +boardIOC=true diff --git a/bsp/stm32/stm32f410-st-nucleo/board/CubeMX_Config/Inc/main.h b/bsp/stm32/stm32f410-st-nucleo/board/CubeMX_Config/Inc/main.h new file mode 100644 index 0000000000..b3f4aa5505 --- /dev/null +++ b/bsp/stm32/stm32f410-st-nucleo/board/CubeMX_Config/Inc/main.h @@ -0,0 +1,85 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file : main.h + * @brief : Header for main.c file. + * This file contains the common defines of the application. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2020 STMicroelectronics. + * All rights reserved.

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __MAIN_H +#define __MAIN_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f4xx_hal.h" + +/* Private includes ----------------------------------------------------------*/ +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +/* Exported types ------------------------------------------------------------*/ +/* USER CODE BEGIN ET */ + +/* USER CODE END ET */ + +/* Exported constants --------------------------------------------------------*/ +/* USER CODE BEGIN EC */ + +/* USER CODE END EC */ + +/* Exported macro ------------------------------------------------------------*/ +/* USER CODE BEGIN EM */ + +/* USER CODE END EM */ + +/* Exported functions prototypes ---------------------------------------------*/ +void Error_Handler(void); + +/* USER CODE BEGIN EFP */ + +/* USER CODE END EFP */ + +/* Private defines -----------------------------------------------------------*/ +#define B1_Pin GPIO_PIN_13 +#define B1_GPIO_Port GPIOC +#define USART_TX_Pin GPIO_PIN_2 +#define USART_TX_GPIO_Port GPIOA +#define USART_RX_Pin GPIO_PIN_3 +#define USART_RX_GPIO_Port GPIOA +#define LD2_Pin GPIO_PIN_5 +#define LD2_GPIO_Port GPIOA +#define TMS_Pin GPIO_PIN_13 +#define TMS_GPIO_Port GPIOA +#define TCK_Pin GPIO_PIN_14 +#define TCK_GPIO_Port GPIOA +#define SWO_Pin GPIO_PIN_3 +#define SWO_GPIO_Port GPIOB +/* USER CODE BEGIN Private defines */ + +/* USER CODE END Private defines */ + +#ifdef __cplusplus +} +#endif + +#endif /* __MAIN_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/bsp/stm32/stm32f410-st-nucleo/board/CubeMX_Config/Inc/stm32f4xx_hal_conf.h b/bsp/stm32/stm32f410-st-nucleo/board/CubeMX_Config/Inc/stm32f4xx_hal_conf.h new file mode 100644 index 0000000000..467f329454 --- /dev/null +++ b/bsp/stm32/stm32f410-st-nucleo/board/CubeMX_Config/Inc/stm32f4xx_hal_conf.h @@ -0,0 +1,443 @@ +/** + ****************************************************************************** + * @file stm32f4xx_hal_conf_template.h + * @author MCD Application Team + * @brief HAL configuration template file. + * This file should be copied to the application folder and renamed + * to stm32f4xx_hal_conf.h. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2017 STMicroelectronics. + * All rights reserved.

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32F4xx_HAL_CONF_H +#define __STM32F4xx_HAL_CONF_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Exported types ------------------------------------------------------------*/ +/* Exported constants --------------------------------------------------------*/ + +/* ########################## Module Selection ############################## */ +/** + * @brief This is the list of modules to be used in the HAL driver + */ +#define HAL_MODULE_ENABLED + + /* #define HAL_ADC_MODULE_ENABLED */ +/* #define HAL_CRYP_MODULE_ENABLED */ +/* #define HAL_CAN_MODULE_ENABLED */ +/* #define HAL_CRC_MODULE_ENABLED */ +/* #define HAL_CRYP_MODULE_ENABLED */ +/* #define HAL_DAC_MODULE_ENABLED */ +/* #define HAL_DCMI_MODULE_ENABLED */ +/* #define HAL_DMA2D_MODULE_ENABLED */ +/* #define HAL_ETH_MODULE_ENABLED */ +/* #define HAL_NAND_MODULE_ENABLED */ +/* #define HAL_NOR_MODULE_ENABLED */ +/* #define HAL_PCCARD_MODULE_ENABLED */ +/* #define HAL_SRAM_MODULE_ENABLED */ +/* #define HAL_SDRAM_MODULE_ENABLED */ +/* #define HAL_HASH_MODULE_ENABLED */ +/* #define HAL_I2C_MODULE_ENABLED */ +/* #define HAL_I2S_MODULE_ENABLED */ +/* #define HAL_IWDG_MODULE_ENABLED */ +/* #define HAL_LTDC_MODULE_ENABLED */ +/* #define HAL_RNG_MODULE_ENABLED */ +/* #define HAL_RTC_MODULE_ENABLED */ +/* #define HAL_SAI_MODULE_ENABLED */ +/* #define HAL_SD_MODULE_ENABLED */ +/* #define HAL_MMC_MODULE_ENABLED */ +/* #define HAL_SPI_MODULE_ENABLED */ +/* #define HAL_TIM_MODULE_ENABLED */ +#define HAL_UART_MODULE_ENABLED +/* #define HAL_USART_MODULE_ENABLED */ +/* #define HAL_IRDA_MODULE_ENABLED */ +/* #define HAL_SMARTCARD_MODULE_ENABLED */ +/* #define HAL_SMBUS_MODULE_ENABLED */ +/* #define HAL_WWDG_MODULE_ENABLED */ +/* #define HAL_PCD_MODULE_ENABLED */ +/* #define HAL_HCD_MODULE_ENABLED */ +/* #define HAL_DSI_MODULE_ENABLED */ +/* #define HAL_QSPI_MODULE_ENABLED */ +/* #define HAL_QSPI_MODULE_ENABLED */ +/* #define HAL_CEC_MODULE_ENABLED */ +/* #define HAL_FMPI2C_MODULE_ENABLED */ +/* #define HAL_SPDIFRX_MODULE_ENABLED */ +/* #define HAL_DFSDM_MODULE_ENABLED */ +/* #define HAL_LPTIM_MODULE_ENABLED */ +#define HAL_GPIO_MODULE_ENABLED +#define HAL_EXTI_MODULE_ENABLED +#define HAL_DMA_MODULE_ENABLED +#define HAL_RCC_MODULE_ENABLED +#define HAL_FLASH_MODULE_ENABLED +#define HAL_PWR_MODULE_ENABLED +#define HAL_CORTEX_MODULE_ENABLED + +/* ########################## HSE/HSI Values adaptation ##################### */ +/** + * @brief Adjust the value of External High Speed oscillator (HSE) used in your application. + * This value is used by the RCC HAL module to compute the system frequency + * (when HSE is used as system clock source, directly or through the PLL). + */ +#if !defined (HSE_VALUE) + #define HSE_VALUE ((uint32_t)8000000U) /*!< Value of the External oscillator in Hz */ +#endif /* HSE_VALUE */ + +#if !defined (HSE_STARTUP_TIMEOUT) + #define HSE_STARTUP_TIMEOUT ((uint32_t)100U) /*!< Time out for HSE start up, in ms */ +#endif /* HSE_STARTUP_TIMEOUT */ + +/** + * @brief Internal High Speed oscillator (HSI) value. + * This value is used by the RCC HAL module to compute the system frequency + * (when HSI is used as system clock source, directly or through the PLL). + */ +#if !defined (HSI_VALUE) + #define HSI_VALUE ((uint32_t)16000000U) /*!< Value of the Internal oscillator in Hz*/ +#endif /* HSI_VALUE */ + +/** + * @brief Internal Low Speed oscillator (LSI) value. + */ +#if !defined (LSI_VALUE) + #define LSI_VALUE ((uint32_t)32000U) /*!< LSI Typical Value in Hz*/ +#endif /* LSI_VALUE */ /*!< Value of the Internal Low Speed oscillator in Hz + The real value may vary depending on the variations + in voltage and temperature.*/ +/** + * @brief External Low Speed oscillator (LSE) value. + */ +#if !defined (LSE_VALUE) + #define LSE_VALUE ((uint32_t)32768U) /*!< Value of the External Low Speed oscillator in Hz */ +#endif /* LSE_VALUE */ + +#if !defined (LSE_STARTUP_TIMEOUT) + #define LSE_STARTUP_TIMEOUT ((uint32_t)5000U) /*!< Time out for LSE start up, in ms */ +#endif /* LSE_STARTUP_TIMEOUT */ + +/** + * @brief External clock source for I2S peripheral + * This value is used by the I2S HAL module to compute the I2S clock source + * frequency, this source is inserted directly through I2S_CKIN pad. + */ +#if !defined (EXTERNAL_CLOCK_VALUE) + #define EXTERNAL_CLOCK_VALUE ((uint32_t)12288000U) /*!< Value of the External audio frequency in Hz*/ +#endif /* EXTERNAL_CLOCK_VALUE */ + +/* Tip: To avoid modifying this file each time you need to use different HSE, + === you can define the HSE value in your toolchain compiler preprocessor. */ + +/* ########################### System Configuration ######################### */ +/** + * @brief This is the HAL system configuration section + */ +#define VDD_VALUE ((uint32_t)3300U) /*!< Value of VDD in mv */ +#define TICK_INT_PRIORITY ((uint32_t)0U) /*!< tick interrupt priority */ +#define USE_RTOS 0U +#define PREFETCH_ENABLE 1U +#define INSTRUCTION_CACHE_ENABLE 1U +#define DATA_CACHE_ENABLE 1U + +/* ########################## Assert Selection ############################## */ +/** + * @brief Uncomment the line below to expanse the "assert_param" macro in the + * HAL drivers code + */ +/* #define USE_FULL_ASSERT 1U */ + +/* ################## Ethernet peripheral configuration ##################### */ + +/* Section 1 : Ethernet peripheral configuration */ + +/* MAC ADDRESS: MAC_ADDR0:MAC_ADDR1:MAC_ADDR2:MAC_ADDR3:MAC_ADDR4:MAC_ADDR5 */ +#define MAC_ADDR0 2U +#define MAC_ADDR1 0U +#define MAC_ADDR2 0U +#define MAC_ADDR3 0U +#define MAC_ADDR4 0U +#define MAC_ADDR5 0U + +/* Definition of the Ethernet driver buffers size and count */ +#define ETH_RX_BUF_SIZE ETH_MAX_PACKET_SIZE /* buffer size for receive */ +#define ETH_TX_BUF_SIZE ETH_MAX_PACKET_SIZE /* buffer size for transmit */ +#define ETH_RXBUFNB ((uint32_t)4U) /* 4 Rx buffers of size ETH_RX_BUF_SIZE */ +#define ETH_TXBUFNB ((uint32_t)4U) /* 4 Tx buffers of size ETH_TX_BUF_SIZE */ + +/* Section 2: PHY configuration section */ + +/* DP83848_PHY_ADDRESS Address*/ +#define DP83848_PHY_ADDRESS 0x01U +/* PHY Reset delay these values are based on a 1 ms Systick interrupt*/ +#define PHY_RESET_DELAY ((uint32_t)0x000000FFU) +/* PHY Configuration delay */ +#define PHY_CONFIG_DELAY ((uint32_t)0x00000FFFU) + +#define PHY_READ_TO ((uint32_t)0x0000FFFFU) +#define PHY_WRITE_TO ((uint32_t)0x0000FFFFU) + +/* Section 3: Common PHY Registers */ + +#define PHY_BCR ((uint16_t)0x0000U) /*!< Transceiver Basic Control Register */ +#define PHY_BSR ((uint16_t)0x0001U) /*!< Transceiver Basic Status Register */ + +#define PHY_RESET ((uint16_t)0x8000U) /*!< PHY Reset */ +#define PHY_LOOPBACK ((uint16_t)0x4000U) /*!< Select loop-back mode */ +#define PHY_FULLDUPLEX_100M ((uint16_t)0x2100U) /*!< Set the full-duplex mode at 100 Mb/s */ +#define PHY_HALFDUPLEX_100M ((uint16_t)0x2000U) /*!< Set the half-duplex mode at 100 Mb/s */ +#define PHY_FULLDUPLEX_10M ((uint16_t)0x0100U) /*!< Set the full-duplex mode at 10 Mb/s */ +#define PHY_HALFDUPLEX_10M ((uint16_t)0x0000U) /*!< Set the half-duplex mode at 10 Mb/s */ +#define PHY_AUTONEGOTIATION ((uint16_t)0x1000U) /*!< Enable auto-negotiation function */ +#define PHY_RESTART_AUTONEGOTIATION ((uint16_t)0x0200U) /*!< Restart auto-negotiation function */ +#define PHY_POWERDOWN ((uint16_t)0x0800U) /*!< Select the power down mode */ +#define PHY_ISOLATE ((uint16_t)0x0400U) /*!< Isolate PHY from MII */ + +#define PHY_AUTONEGO_COMPLETE ((uint16_t)0x0020U) /*!< Auto-Negotiation process completed */ +#define PHY_LINKED_STATUS ((uint16_t)0x0004U) /*!< Valid link established */ +#define PHY_JABBER_DETECTION ((uint16_t)0x0002U) /*!< Jabber condition detected */ + +/* Section 4: Extended PHY Registers */ +#define PHY_SR ((uint16_t)0x10U) /*!< PHY status register Offset */ + +#define PHY_SPEED_STATUS ((uint16_t)0x0002U) /*!< PHY Speed mask */ +#define PHY_DUPLEX_STATUS ((uint16_t)0x0004U) /*!< PHY Duplex mask */ + +/* ################## SPI peripheral configuration ########################## */ + +/* CRC FEATURE: Use to activate CRC feature inside HAL SPI Driver +* Activated: CRC code is present inside driver +* Deactivated: CRC code cleaned from driver +*/ + +#define USE_SPI_CRC 0U + +/* Includes ------------------------------------------------------------------*/ +/** + * @brief Include module's header file + */ + +#ifdef HAL_RCC_MODULE_ENABLED + #include "stm32f4xx_hal_rcc.h" +#endif /* HAL_RCC_MODULE_ENABLED */ + +#ifdef HAL_EXTI_MODULE_ENABLED + #include "stm32f4xx_hal_exti.h" +#endif /* HAL_EXTI_MODULE_ENABLED */ + +#ifdef HAL_GPIO_MODULE_ENABLED + #include "stm32f4xx_hal_gpio.h" +#endif /* HAL_GPIO_MODULE_ENABLED */ + +#ifdef HAL_DMA_MODULE_ENABLED + #include "stm32f4xx_hal_dma.h" +#endif /* HAL_DMA_MODULE_ENABLED */ + +#ifdef HAL_CORTEX_MODULE_ENABLED + #include "stm32f4xx_hal_cortex.h" +#endif /* HAL_CORTEX_MODULE_ENABLED */ + +#ifdef HAL_ADC_MODULE_ENABLED + #include "stm32f4xx_hal_adc.h" +#endif /* HAL_ADC_MODULE_ENABLED */ + +#ifdef HAL_CAN_MODULE_ENABLED + #include "stm32f4xx_hal_can.h" +#endif /* HAL_CAN_MODULE_ENABLED */ + +#ifdef HAL_CRC_MODULE_ENABLED + #include "stm32f4xx_hal_crc.h" +#endif /* HAL_CRC_MODULE_ENABLED */ + +#ifdef HAL_CRYP_MODULE_ENABLED + #include "stm32f4xx_hal_cryp.h" +#endif /* HAL_CRYP_MODULE_ENABLED */ + +#ifdef HAL_SMBUS_MODULE_ENABLED +#include "stm32f4xx_hal_smbus.h" +#endif /* HAL_SMBUS_MODULE_ENABLED */ + +#ifdef HAL_DMA2D_MODULE_ENABLED + #include "stm32f4xx_hal_dma2d.h" +#endif /* HAL_DMA2D_MODULE_ENABLED */ + +#ifdef HAL_DAC_MODULE_ENABLED + #include "stm32f4xx_hal_dac.h" +#endif /* HAL_DAC_MODULE_ENABLED */ + +#ifdef HAL_DCMI_MODULE_ENABLED + #include "stm32f4xx_hal_dcmi.h" +#endif /* HAL_DCMI_MODULE_ENABLED */ + +#ifdef HAL_ETH_MODULE_ENABLED + #include "stm32f4xx_hal_eth.h" +#endif /* HAL_ETH_MODULE_ENABLED */ + +#ifdef HAL_FLASH_MODULE_ENABLED + #include "stm32f4xx_hal_flash.h" +#endif /* HAL_FLASH_MODULE_ENABLED */ + +#ifdef HAL_SRAM_MODULE_ENABLED + #include "stm32f4xx_hal_sram.h" +#endif /* HAL_SRAM_MODULE_ENABLED */ + +#ifdef HAL_NOR_MODULE_ENABLED + #include "stm32f4xx_hal_nor.h" +#endif /* HAL_NOR_MODULE_ENABLED */ + +#ifdef HAL_NAND_MODULE_ENABLED + #include "stm32f4xx_hal_nand.h" +#endif /* HAL_NAND_MODULE_ENABLED */ + +#ifdef HAL_PCCARD_MODULE_ENABLED + #include "stm32f4xx_hal_pccard.h" +#endif /* HAL_PCCARD_MODULE_ENABLED */ + +#ifdef HAL_SDRAM_MODULE_ENABLED + #include "stm32f4xx_hal_sdram.h" +#endif /* HAL_SDRAM_MODULE_ENABLED */ + +#ifdef HAL_HASH_MODULE_ENABLED + #include "stm32f4xx_hal_hash.h" +#endif /* HAL_HASH_MODULE_ENABLED */ + +#ifdef HAL_I2C_MODULE_ENABLED + #include "stm32f4xx_hal_i2c.h" +#endif /* HAL_I2C_MODULE_ENABLED */ + +#ifdef HAL_I2S_MODULE_ENABLED + #include "stm32f4xx_hal_i2s.h" +#endif /* HAL_I2S_MODULE_ENABLED */ + +#ifdef HAL_IWDG_MODULE_ENABLED + #include "stm32f4xx_hal_iwdg.h" +#endif /* HAL_IWDG_MODULE_ENABLED */ + +#ifdef HAL_LTDC_MODULE_ENABLED + #include "stm32f4xx_hal_ltdc.h" +#endif /* HAL_LTDC_MODULE_ENABLED */ + +#ifdef HAL_PWR_MODULE_ENABLED + #include "stm32f4xx_hal_pwr.h" +#endif /* HAL_PWR_MODULE_ENABLED */ + +#ifdef HAL_RNG_MODULE_ENABLED + #include "stm32f4xx_hal_rng.h" +#endif /* HAL_RNG_MODULE_ENABLED */ + +#ifdef HAL_RTC_MODULE_ENABLED + #include "stm32f4xx_hal_rtc.h" +#endif /* HAL_RTC_MODULE_ENABLED */ + +#ifdef HAL_SAI_MODULE_ENABLED + #include "stm32f4xx_hal_sai.h" +#endif /* HAL_SAI_MODULE_ENABLED */ + +#ifdef HAL_SD_MODULE_ENABLED + #include "stm32f4xx_hal_sd.h" +#endif /* HAL_SD_MODULE_ENABLED */ + +#ifdef HAL_MMC_MODULE_ENABLED + #include "stm32f4xx_hal_mmc.h" +#endif /* HAL_MMC_MODULE_ENABLED */ + +#ifdef HAL_SPI_MODULE_ENABLED + #include "stm32f4xx_hal_spi.h" +#endif /* HAL_SPI_MODULE_ENABLED */ + +#ifdef HAL_TIM_MODULE_ENABLED + #include "stm32f4xx_hal_tim.h" +#endif /* HAL_TIM_MODULE_ENABLED */ + +#ifdef HAL_UART_MODULE_ENABLED + #include "stm32f4xx_hal_uart.h" +#endif /* HAL_UART_MODULE_ENABLED */ + +#ifdef HAL_USART_MODULE_ENABLED + #include "stm32f4xx_hal_usart.h" +#endif /* HAL_USART_MODULE_ENABLED */ + +#ifdef HAL_IRDA_MODULE_ENABLED + #include "stm32f4xx_hal_irda.h" +#endif /* HAL_IRDA_MODULE_ENABLED */ + +#ifdef HAL_SMARTCARD_MODULE_ENABLED + #include "stm32f4xx_hal_smartcard.h" +#endif /* HAL_SMARTCARD_MODULE_ENABLED */ + +#ifdef HAL_WWDG_MODULE_ENABLED + #include "stm32f4xx_hal_wwdg.h" +#endif /* HAL_WWDG_MODULE_ENABLED */ + +#ifdef HAL_PCD_MODULE_ENABLED + #include "stm32f4xx_hal_pcd.h" +#endif /* HAL_PCD_MODULE_ENABLED */ + +#ifdef HAL_HCD_MODULE_ENABLED + #include "stm32f4xx_hal_hcd.h" +#endif /* HAL_HCD_MODULE_ENABLED */ + +#ifdef HAL_DSI_MODULE_ENABLED + #include "stm32f4xx_hal_dsi.h" +#endif /* HAL_DSI_MODULE_ENABLED */ + +#ifdef HAL_QSPI_MODULE_ENABLED + #include "stm32f4xx_hal_qspi.h" +#endif /* HAL_QSPI_MODULE_ENABLED */ + +#ifdef HAL_CEC_MODULE_ENABLED + #include "stm32f4xx_hal_cec.h" +#endif /* HAL_CEC_MODULE_ENABLED */ + +#ifdef HAL_FMPI2C_MODULE_ENABLED + #include "stm32f4xx_hal_fmpi2c.h" +#endif /* HAL_FMPI2C_MODULE_ENABLED */ + +#ifdef HAL_SPDIFRX_MODULE_ENABLED + #include "stm32f4xx_hal_spdifrx.h" +#endif /* HAL_SPDIFRX_MODULE_ENABLED */ + +#ifdef HAL_DFSDM_MODULE_ENABLED + #include "stm32f4xx_hal_dfsdm.h" +#endif /* HAL_DFSDM_MODULE_ENABLED */ + +#ifdef HAL_LPTIM_MODULE_ENABLED + #include "stm32f4xx_hal_lptim.h" +#endif /* HAL_LPTIM_MODULE_ENABLED */ + +/* Exported macro ------------------------------------------------------------*/ +#ifdef USE_FULL_ASSERT +/** + * @brief The assert_param macro is used for function's parameters check. + * @param expr: If expr is false, it calls assert_failed function + * which reports the name of the source file and the source + * line number of the call that failed. + * If expr is true, it returns no value. + * @retval None + */ + #define assert_param(expr) ((expr) ? (void)0U : assert_failed((uint8_t *)__FILE__, __LINE__)) +/* Exported functions ------------------------------------------------------- */ + void assert_failed(uint8_t* file, uint32_t line); +#else + #define assert_param(expr) ((void)0U) +#endif /* USE_FULL_ASSERT */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32F4xx_HAL_CONF_H */ + + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/bsp/stm32/stm32f410-st-nucleo/board/CubeMX_Config/Inc/stm32f4xx_it.h b/bsp/stm32/stm32f410-st-nucleo/board/CubeMX_Config/Inc/stm32f4xx_it.h new file mode 100644 index 0000000000..ab2ae38f21 --- /dev/null +++ b/bsp/stm32/stm32f410-st-nucleo/board/CubeMX_Config/Inc/stm32f4xx_it.h @@ -0,0 +1,69 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file stm32f4xx_it.h + * @brief This file contains the headers of the interrupt handlers. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2020 STMicroelectronics. + * All rights reserved.

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32F4xx_IT_H +#define __STM32F4xx_IT_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Private includes ----------------------------------------------------------*/ +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +/* Exported types ------------------------------------------------------------*/ +/* USER CODE BEGIN ET */ + +/* USER CODE END ET */ + +/* Exported constants --------------------------------------------------------*/ +/* USER CODE BEGIN EC */ + +/* USER CODE END EC */ + +/* Exported macro ------------------------------------------------------------*/ +/* USER CODE BEGIN EM */ + +/* USER CODE END EM */ + +/* Exported functions prototypes ---------------------------------------------*/ +void NMI_Handler(void); +void HardFault_Handler(void); +void MemManage_Handler(void); +void BusFault_Handler(void); +void UsageFault_Handler(void); +void SVC_Handler(void); +void DebugMon_Handler(void); +void PendSV_Handler(void); +void SysTick_Handler(void); +/* USER CODE BEGIN EFP */ + +/* USER CODE END EFP */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32F4xx_IT_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/bsp/stm32/stm32f410-st-nucleo/board/CubeMX_Config/Src/main.c b/bsp/stm32/stm32f410-st-nucleo/board/CubeMX_Config/Src/main.c new file mode 100644 index 0000000000..2beb1d8334 --- /dev/null +++ b/bsp/stm32/stm32f410-st-nucleo/board/CubeMX_Config/Src/main.c @@ -0,0 +1,253 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file : main.c + * @brief : Main program body + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2020 STMicroelectronics. + * All rights reserved.

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Includes ------------------------------------------------------------------*/ +#include "main.h" + +/* Private includes ----------------------------------------------------------*/ +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +/* Private typedef -----------------------------------------------------------*/ +/* USER CODE BEGIN PTD */ + +/* USER CODE END PTD */ + +/* Private define ------------------------------------------------------------*/ +/* USER CODE BEGIN PD */ +/* USER CODE END PD */ + +/* Private macro -------------------------------------------------------------*/ +/* USER CODE BEGIN PM */ + +/* USER CODE END PM */ + +/* Private variables ---------------------------------------------------------*/ +UART_HandleTypeDef huart2; + +/* USER CODE BEGIN PV */ + +/* USER CODE END PV */ + +/* Private function prototypes -----------------------------------------------*/ +void SystemClock_Config(void); +static void MX_GPIO_Init(void); +static void MX_USART2_UART_Init(void); +/* USER CODE BEGIN PFP */ + +/* USER CODE END PFP */ + +/* Private user code ---------------------------------------------------------*/ +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ + +/** + * @brief The application entry point. + * @retval int + */ +int main(void) +{ + /* USER CODE BEGIN 1 */ + + /* USER CODE END 1 */ + + + /* MCU Configuration--------------------------------------------------------*/ + + /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ + HAL_Init(); + + /* USER CODE BEGIN Init */ + + /* USER CODE END Init */ + + /* Configure the system clock */ + SystemClock_Config(); + + /* USER CODE BEGIN SysInit */ + + /* USER CODE END SysInit */ + + /* Initialize all configured peripherals */ + MX_GPIO_Init(); + MX_USART2_UART_Init(); + /* USER CODE BEGIN 2 */ + + /* USER CODE END 2 */ + + + + /* Infinite loop */ + /* USER CODE BEGIN WHILE */ + while (1) + { + /* USER CODE END WHILE */ + + /* USER CODE BEGIN 3 */ + } + /* USER CODE END 3 */ +} + +/** + * @brief System Clock Configuration + * @retval None + */ +void SystemClock_Config(void) +{ + RCC_OscInitTypeDef RCC_OscInitStruct = {0}; + RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; + + /** Configure the main internal regulator output voltage + */ + __HAL_RCC_PWR_CLK_ENABLE(); + __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1); + /** Initializes the CPU, AHB and APB busses clocks + */ + RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI; + RCC_OscInitStruct.HSIState = RCC_HSI_ON; + RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT; + RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; + RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI; + RCC_OscInitStruct.PLL.PLLM = 16; + RCC_OscInitStruct.PLL.PLLN = 336; + RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV4; + RCC_OscInitStruct.PLL.PLLQ = 4; + RCC_OscInitStruct.PLL.PLLR = 2; + if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) + { + Error_Handler(); + } + /** Initializes the CPU, AHB and APB busses clocks + */ + RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK + |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; + RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; + RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; + RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; + RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; + + if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK) + { + Error_Handler(); + } +} + +/** + * @brief USART2 Initialization Function + * @param None + * @retval None + */ +static void MX_USART2_UART_Init(void) +{ + + /* USER CODE BEGIN USART2_Init 0 */ + + /* USER CODE END USART2_Init 0 */ + + /* USER CODE BEGIN USART2_Init 1 */ + + /* USER CODE END USART2_Init 1 */ + huart2.Instance = USART2; + huart2.Init.BaudRate = 115200; + huart2.Init.WordLength = UART_WORDLENGTH_8B; + huart2.Init.StopBits = UART_STOPBITS_1; + huart2.Init.Parity = UART_PARITY_NONE; + huart2.Init.Mode = UART_MODE_TX_RX; + huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE; + huart2.Init.OverSampling = UART_OVERSAMPLING_16; + if (HAL_UART_Init(&huart2) != HAL_OK) + { + Error_Handler(); + } + /* USER CODE BEGIN USART2_Init 2 */ + + /* USER CODE END USART2_Init 2 */ + +} + +/** + * @brief GPIO Initialization Function + * @param None + * @retval None + */ +static void MX_GPIO_Init(void) +{ + GPIO_InitTypeDef GPIO_InitStruct = {0}; + + /* GPIO Ports Clock Enable */ + __HAL_RCC_GPIOC_CLK_ENABLE(); + __HAL_RCC_GPIOH_CLK_ENABLE(); + __HAL_RCC_GPIOA_CLK_ENABLE(); + __HAL_RCC_GPIOB_CLK_ENABLE(); + + /*Configure GPIO pin Output Level */ + HAL_GPIO_WritePin(LD2_GPIO_Port, LD2_Pin, GPIO_PIN_RESET); + + /*Configure GPIO pin : B1_Pin */ + GPIO_InitStruct.Pin = B1_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING; + GPIO_InitStruct.Pull = GPIO_NOPULL; + HAL_GPIO_Init(B1_GPIO_Port, &GPIO_InitStruct); + + /*Configure GPIO pin : LD2_Pin */ + GPIO_InitStruct.Pin = LD2_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + HAL_GPIO_Init(LD2_GPIO_Port, &GPIO_InitStruct); + +} + +/* USER CODE BEGIN 4 */ + +/* USER CODE END 4 */ + +/** + * @brief This function is executed in case of error occurrence. + * @retval None + */ +void Error_Handler(void) +{ + /* USER CODE BEGIN Error_Handler_Debug */ + /* User can add his own implementation to report the HAL error return state */ + + /* USER CODE END Error_Handler_Debug */ +} + +#ifdef USE_FULL_ASSERT +/** + * @brief Reports the name of the source file and the source line number + * where the assert_param error has occurred. + * @param file: pointer to the source file name + * @param line: assert_param error line source number + * @retval None + */ +void assert_failed(uint8_t *file, uint32_t line) +{ + /* USER CODE BEGIN 6 */ + /* User can add his own implementation to report the file name and line number, + tex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ + /* USER CODE END 6 */ +} +#endif /* USE_FULL_ASSERT */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/bsp/stm32/stm32f410-st-nucleo/board/CubeMX_Config/Src/stm32f4xx_hal_msp.c b/bsp/stm32/stm32f410-st-nucleo/board/CubeMX_Config/Src/stm32f4xx_hal_msp.c new file mode 100644 index 0000000000..55374ff0d2 --- /dev/null +++ b/bsp/stm32/stm32f410-st-nucleo/board/CubeMX_Config/Src/stm32f4xx_hal_msp.c @@ -0,0 +1,151 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * File Name : stm32f4xx_hal_msp.c + * Description : This file provides code for the MSP Initialization + * and de-Initialization codes. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2020 STMicroelectronics. + * All rights reserved.

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Includes ------------------------------------------------------------------*/ +#include "main.h" +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +/* Private typedef -----------------------------------------------------------*/ +/* USER CODE BEGIN TD */ + +/* USER CODE END TD */ + +/* Private define ------------------------------------------------------------*/ +/* USER CODE BEGIN Define */ + +/* USER CODE END Define */ + +/* Private macro -------------------------------------------------------------*/ +/* USER CODE BEGIN Macro */ + +/* USER CODE END Macro */ + +/* Private variables ---------------------------------------------------------*/ +/* USER CODE BEGIN PV */ + +/* USER CODE END PV */ + +/* Private function prototypes -----------------------------------------------*/ +/* USER CODE BEGIN PFP */ + +/* USER CODE END PFP */ + +/* External functions --------------------------------------------------------*/ +/* USER CODE BEGIN ExternalFunctions */ + +/* USER CODE END ExternalFunctions */ + +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ +/** + * Initializes the Global MSP. + */ +void HAL_MspInit(void) +{ + /* USER CODE BEGIN MspInit 0 */ + + /* USER CODE END MspInit 0 */ + + __HAL_RCC_SYSCFG_CLK_ENABLE(); + __HAL_RCC_PWR_CLK_ENABLE(); + + HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_0); + + /* System interrupt init*/ + + /* USER CODE BEGIN MspInit 1 */ + + /* USER CODE END MspInit 1 */ +} + +/** +* @brief UART MSP Initialization +* This function configures the hardware resources used in this example +* @param huart: UART handle pointer +* @retval None +*/ +void HAL_UART_MspInit(UART_HandleTypeDef* huart) +{ + GPIO_InitTypeDef GPIO_InitStruct = {0}; + if(huart->Instance==USART2) + { + /* USER CODE BEGIN USART2_MspInit 0 */ + + /* USER CODE END USART2_MspInit 0 */ + /* Peripheral clock enable */ + __HAL_RCC_USART2_CLK_ENABLE(); + + __HAL_RCC_GPIOA_CLK_ENABLE(); + /**USART2 GPIO Configuration + PA2 ------> USART2_TX + PA3 ------> USART2_RX + */ + GPIO_InitStruct.Pin = USART_TX_Pin|USART_RX_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF7_USART2; + HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + + /* USER CODE BEGIN USART2_MspInit 1 */ + + /* USER CODE END USART2_MspInit 1 */ + } + +} + +/** +* @brief UART MSP De-Initialization +* This function freeze the hardware resources used in this example +* @param huart: UART handle pointer +* @retval None +*/ +void HAL_UART_MspDeInit(UART_HandleTypeDef* huart) +{ + if(huart->Instance==USART2) + { + /* USER CODE BEGIN USART2_MspDeInit 0 */ + + /* USER CODE END USART2_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_USART2_CLK_DISABLE(); + + /**USART2 GPIO Configuration + PA2 ------> USART2_TX + PA3 ------> USART2_RX + */ + HAL_GPIO_DeInit(GPIOA, USART_TX_Pin|USART_RX_Pin); + + /* USER CODE BEGIN USART2_MspDeInit 1 */ + + /* USER CODE END USART2_MspDeInit 1 */ + } + +} + +/* USER CODE BEGIN 1 */ + +/* USER CODE END 1 */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/bsp/stm32/stm32f410-st-nucleo/board/CubeMX_Config/Src/stm32f4xx_it.c b/bsp/stm32/stm32f410-st-nucleo/board/CubeMX_Config/Src/stm32f4xx_it.c new file mode 100644 index 0000000000..84413fb5f2 --- /dev/null +++ b/bsp/stm32/stm32f410-st-nucleo/board/CubeMX_Config/Src/stm32f4xx_it.c @@ -0,0 +1,203 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file stm32f4xx_it.c + * @brief Interrupt Service Routines. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2020 STMicroelectronics. + * All rights reserved.

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Includes ------------------------------------------------------------------*/ +#include "main.h" +#include "stm32f4xx_it.h" +/* Private includes ----------------------------------------------------------*/ +/* USER CODE BEGIN Includes */ +/* USER CODE END Includes */ + +/* Private typedef -----------------------------------------------------------*/ +/* USER CODE BEGIN TD */ + +/* USER CODE END TD */ + +/* Private define ------------------------------------------------------------*/ +/* USER CODE BEGIN PD */ + +/* USER CODE END PD */ + +/* Private macro -------------------------------------------------------------*/ +/* USER CODE BEGIN PM */ + +/* USER CODE END PM */ + +/* Private variables ---------------------------------------------------------*/ +/* USER CODE BEGIN PV */ + +/* USER CODE END PV */ + +/* Private function prototypes -----------------------------------------------*/ +/* USER CODE BEGIN PFP */ + +/* USER CODE END PFP */ + +/* Private user code ---------------------------------------------------------*/ +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ + +/* External variables --------------------------------------------------------*/ + +/* USER CODE BEGIN EV */ + +/* USER CODE END EV */ + +/******************************************************************************/ +/* Cortex-M4 Processor Interruption and Exception Handlers */ +/******************************************************************************/ +/** + * @brief This function handles Non maskable interrupt. + */ +void NMI_Handler(void) +{ + /* USER CODE BEGIN NonMaskableInt_IRQn 0 */ + + /* USER CODE END NonMaskableInt_IRQn 0 */ + /* USER CODE BEGIN NonMaskableInt_IRQn 1 */ + + /* USER CODE END NonMaskableInt_IRQn 1 */ +} + +/** + * @brief This function handles Hard fault interrupt. + */ +void HardFault_Handler(void) +{ + /* USER CODE BEGIN HardFault_IRQn 0 */ + + /* USER CODE END HardFault_IRQn 0 */ + while (1) + { + /* USER CODE BEGIN W1_HardFault_IRQn 0 */ + /* USER CODE END W1_HardFault_IRQn 0 */ + } +} + +/** + * @brief This function handles Memory management fault. + */ +void MemManage_Handler(void) +{ + /* USER CODE BEGIN MemoryManagement_IRQn 0 */ + + /* USER CODE END MemoryManagement_IRQn 0 */ + while (1) + { + /* USER CODE BEGIN W1_MemoryManagement_IRQn 0 */ + /* USER CODE END W1_MemoryManagement_IRQn 0 */ + } +} + +/** + * @brief This function handles Pre-fetch fault, memory access fault. + */ +void BusFault_Handler(void) +{ + /* USER CODE BEGIN BusFault_IRQn 0 */ + + /* USER CODE END BusFault_IRQn 0 */ + while (1) + { + /* USER CODE BEGIN W1_BusFault_IRQn 0 */ + /* USER CODE END W1_BusFault_IRQn 0 */ + } +} + +/** + * @brief This function handles Undefined instruction or illegal state. + */ +void UsageFault_Handler(void) +{ + /* USER CODE BEGIN UsageFault_IRQn 0 */ + + /* USER CODE END UsageFault_IRQn 0 */ + while (1) + { + /* USER CODE BEGIN W1_UsageFault_IRQn 0 */ + /* USER CODE END W1_UsageFault_IRQn 0 */ + } +} + +/** + * @brief This function handles System service call via SWI instruction. + */ +void SVC_Handler(void) +{ + /* USER CODE BEGIN SVCall_IRQn 0 */ + + /* USER CODE END SVCall_IRQn 0 */ + /* USER CODE BEGIN SVCall_IRQn 1 */ + + /* USER CODE END SVCall_IRQn 1 */ +} + +/** + * @brief This function handles Debug monitor. + */ +void DebugMon_Handler(void) +{ + /* USER CODE BEGIN DebugMonitor_IRQn 0 */ + + /* USER CODE END DebugMonitor_IRQn 0 */ + /* USER CODE BEGIN DebugMonitor_IRQn 1 */ + + /* USER CODE END DebugMonitor_IRQn 1 */ +} + +/** + * @brief This function handles Pendable request for system service. + */ +void PendSV_Handler(void) +{ + /* USER CODE BEGIN PendSV_IRQn 0 */ + + /* USER CODE END PendSV_IRQn 0 */ + /* USER CODE BEGIN PendSV_IRQn 1 */ + + /* USER CODE END PendSV_IRQn 1 */ +} + +/** + * @brief This function handles System tick timer. + */ +void SysTick_Handler(void) +{ + /* USER CODE BEGIN SysTick_IRQn 0 */ + + /* USER CODE END SysTick_IRQn 0 */ + HAL_IncTick(); + /* USER CODE BEGIN SysTick_IRQn 1 */ + + /* USER CODE END SysTick_IRQn 1 */ +} + +/******************************************************************************/ +/* STM32F4xx Peripheral Interrupt Handlers */ +/* Add here the Interrupt Handlers for the used peripherals. */ +/* For the available peripheral interrupt handler names, */ +/* please refer to the startup file (startup_stm32f4xx.s). */ +/******************************************************************************/ + +/* USER CODE BEGIN 1 */ + +/* USER CODE END 1 */ +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/bsp/stm32/stm32f410-st-nucleo/board/CubeMX_Config/Src/system_stm32f4xx.c b/bsp/stm32/stm32f410-st-nucleo/board/CubeMX_Config/Src/system_stm32f4xx.c new file mode 100644 index 0000000000..3303f969d9 --- /dev/null +++ b/bsp/stm32/stm32f410-st-nucleo/board/CubeMX_Config/Src/system_stm32f4xx.c @@ -0,0 +1,761 @@ +/** + ****************************************************************************** + * @file system_stm32f4xx.c + * @author MCD Application Team + * @brief CMSIS Cortex-M4 Device Peripheral Access Layer System Source File. + * + * This file provides two functions and one global variable to be called from + * user application: + * - SystemInit(): This function is called at startup just after reset and + * before branch to main program. This call is made inside + * the "startup_stm32f4xx.s" file. + * + * - SystemCoreClock variable: Contains the core clock (HCLK), it can be used + * by the user application to setup the SysTick + * timer or configure other parameters. + * + * - SystemCoreClockUpdate(): Updates the variable SystemCoreClock and must + * be called whenever the core clock is changed + * during program execution. + * + * + ****************************************************************************** + * @attention + * + *

© COPYRIGHT 2017 STMicroelectronics

+ * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. Neither the name of STMicroelectronics nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND 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 HOLDER 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. + * + ****************************************************************************** + */ + +/** @addtogroup CMSIS + * @{ + */ + +/** @addtogroup stm32f4xx_system + * @{ + */ + +/** @addtogroup STM32F4xx_System_Private_Includes + * @{ + */ + + +#include "stm32f4xx.h" + +#if !defined (HSE_VALUE) + #define HSE_VALUE ((uint32_t)25000000) /*!< Default value of the External oscillator in Hz */ +#endif /* HSE_VALUE */ + +#if !defined (HSI_VALUE) + #define HSI_VALUE ((uint32_t)16000000) /*!< Value of the Internal oscillator in Hz*/ +#endif /* HSI_VALUE */ + +/** + * @} + */ + +/** @addtogroup STM32F4xx_System_Private_TypesDefinitions + * @{ + */ + +/** + * @} + */ + +/** @addtogroup STM32F4xx_System_Private_Defines + * @{ + */ + +/************************* Miscellaneous Configuration ************************/ +/*!< Uncomment the following line if you need to use external SRAM or SDRAM as data memory */ +#if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx)\ + || defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)\ + || defined(STM32F469xx) || defined(STM32F479xx) || defined(STM32F412Zx) || defined(STM32F412Vx) +/* #define DATA_IN_ExtSRAM */ +#endif /* STM32F40xxx || STM32F41xxx || STM32F42xxx || STM32F43xxx || STM32F469xx || STM32F479xx ||\ + STM32F412Zx || STM32F412Vx */ + +#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)\ + || defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx) +/* #define DATA_IN_ExtSDRAM */ +#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F446xx || STM32F469xx ||\ + STM32F479xx */ + +/*!< Uncomment the following line if you need to relocate your vector Table in + Internal SRAM. */ +/* #define VECT_TAB_SRAM */ +#define VECT_TAB_OFFSET 0x00 /*!< Vector Table base offset field. + This value must be a multiple of 0x200. */ +/******************************************************************************/ + +/** + * @} + */ + +/** @addtogroup STM32F4xx_System_Private_Macros + * @{ + */ + +/** + * @} + */ + +/** @addtogroup STM32F4xx_System_Private_Variables + * @{ + */ + /* This variable is updated in three ways: + 1) by calling CMSIS function SystemCoreClockUpdate() + 2) by calling HAL API function HAL_RCC_GetHCLKFreq() + 3) each time HAL_RCC_ClockConfig() is called to configure the system clock frequency + Note: If you use this function to configure the system clock; then there + is no need to call the 2 first functions listed above, since SystemCoreClock + variable is updated automatically. + */ +uint32_t SystemCoreClock = 16000000; +const uint8_t AHBPrescTable[16] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 6, 7, 8, 9}; +const uint8_t APBPrescTable[8] = {0, 0, 0, 0, 1, 2, 3, 4}; +/** + * @} + */ + +/** @addtogroup STM32F4xx_System_Private_FunctionPrototypes + * @{ + */ + +#if defined (DATA_IN_ExtSRAM) || defined (DATA_IN_ExtSDRAM) + static void SystemInit_ExtMemCtl(void); +#endif /* DATA_IN_ExtSRAM || DATA_IN_ExtSDRAM */ + +/** + * @} + */ + +/** @addtogroup STM32F4xx_System_Private_Functions + * @{ + */ + +/** + * @brief Setup the microcontroller system + * Initialize the FPU setting, vector table location and External memory + * configuration. + * @param None + * @retval None + */ +void SystemInit(void) +{ + /* FPU settings ------------------------------------------------------------*/ + #if (__FPU_PRESENT == 1) && (__FPU_USED == 1) + SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2)); /* set CP10 and CP11 Full Access */ + #endif + /* Reset the RCC clock configuration to the default reset state ------------*/ + /* Set HSION bit */ + RCC->CR |= (uint32_t)0x00000001; + + /* Reset CFGR register */ + RCC->CFGR = 0x00000000; + + /* Reset HSEON, CSSON and PLLON bits */ + RCC->CR &= (uint32_t)0xFEF6FFFF; + + /* Reset PLLCFGR register */ + RCC->PLLCFGR = 0x24003010; + + /* Reset HSEBYP bit */ + RCC->CR &= (uint32_t)0xFFFBFFFF; + + /* Disable all interrupts */ + RCC->CIR = 0x00000000; + +#if defined (DATA_IN_ExtSRAM) || defined (DATA_IN_ExtSDRAM) + SystemInit_ExtMemCtl(); +#endif /* DATA_IN_ExtSRAM || DATA_IN_ExtSDRAM */ + + /* Configure the Vector Table location add offset address ------------------*/ +#ifdef VECT_TAB_SRAM + SCB->VTOR = SRAM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM */ +#else + SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH */ +#endif +} + +/** + * @brief Update SystemCoreClock variable according to Clock Register Values. + * The SystemCoreClock variable contains the core clock (HCLK), it can + * be used by the user application to setup the SysTick timer or configure + * other parameters. + * + * @note Each time the core clock (HCLK) changes, this function must be called + * to update SystemCoreClock variable value. Otherwise, any configuration + * based on this variable will be incorrect. + * + * @note - The system frequency computed by this function is not the real + * frequency in the chip. It is calculated based on the predefined + * constant and the selected clock source: + * + * - If SYSCLK source is HSI, SystemCoreClock will contain the HSI_VALUE(*) + * + * - If SYSCLK source is HSE, SystemCoreClock will contain the HSE_VALUE(**) + * + * - If SYSCLK source is PLL, SystemCoreClock will contain the HSE_VALUE(**) + * or HSI_VALUE(*) multiplied/divided by the PLL factors. + * + * (*) HSI_VALUE is a constant defined in stm32f4xx_hal_conf.h file (default value + * 16 MHz) but the real value may vary depending on the variations + * in voltage and temperature. + * + * (**) HSE_VALUE is a constant defined in stm32f4xx_hal_conf.h file (its value + * depends on the application requirements), user has to ensure that HSE_VALUE + * is same as the real frequency of the crystal used. Otherwise, this function + * may have wrong result. + * + * - The result of this function could be not correct when using fractional + * value for HSE crystal. + * + * @param None + * @retval None + */ +void SystemCoreClockUpdate(void) +{ + uint32_t tmp = 0, pllvco = 0, pllp = 2, pllsource = 0, pllm = 2; + + /* Get SYSCLK source -------------------------------------------------------*/ + tmp = RCC->CFGR & RCC_CFGR_SWS; + + switch (tmp) + { + case 0x00: /* HSI used as system clock source */ + SystemCoreClock = HSI_VALUE; + break; + case 0x04: /* HSE used as system clock source */ + SystemCoreClock = HSE_VALUE; + break; + case 0x08: /* PLL used as system clock source */ + + /* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N + SYSCLK = PLL_VCO / PLL_P + */ + pllsource = (RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC) >> 22; + pllm = RCC->PLLCFGR & RCC_PLLCFGR_PLLM; + + if (pllsource != 0) + { + /* HSE used as PLL clock source */ + pllvco = (HSE_VALUE / pllm) * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> 6); + } + else + { + /* HSI used as PLL clock source */ + pllvco = (HSI_VALUE / pllm) * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> 6); + } + + pllp = (((RCC->PLLCFGR & RCC_PLLCFGR_PLLP) >>16) + 1 ) *2; + SystemCoreClock = pllvco/pllp; + break; + default: + SystemCoreClock = HSI_VALUE; + break; + } + /* Compute HCLK frequency --------------------------------------------------*/ + /* Get HCLK prescaler */ + tmp = AHBPrescTable[((RCC->CFGR & RCC_CFGR_HPRE) >> 4)]; + /* HCLK frequency */ + SystemCoreClock >>= tmp; +} + +#if defined (DATA_IN_ExtSRAM) && defined (DATA_IN_ExtSDRAM) +#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)\ + || defined(STM32F469xx) || defined(STM32F479xx) +/** + * @brief Setup the external memory controller. + * Called in startup_stm32f4xx.s before jump to main. + * This function configures the external memories (SRAM/SDRAM) + * This SRAM/SDRAM will be used as program data memory (including heap and stack). + * @param None + * @retval None + */ +void SystemInit_ExtMemCtl(void) +{ + __IO uint32_t tmp = 0x00; + + register uint32_t tmpreg = 0, timeout = 0xFFFF; + register __IO uint32_t index; + + /* Enable GPIOC, GPIOD, GPIOE, GPIOF, GPIOG, GPIOH and GPIOI interface clock */ + RCC->AHB1ENR |= 0x000001F8; + + /* Delay after an RCC peripheral clock enabling */ + tmp = READ_BIT(RCC->AHB1ENR, RCC_AHB1ENR_GPIOCEN); + + /* Connect PDx pins to FMC Alternate function */ + GPIOD->AFR[0] = 0x00CCC0CC; + GPIOD->AFR[1] = 0xCCCCCCCC; + /* Configure PDx pins in Alternate function mode */ + GPIOD->MODER = 0xAAAA0A8A; + /* Configure PDx pins speed to 100 MHz */ + GPIOD->OSPEEDR = 0xFFFF0FCF; + /* Configure PDx pins Output type to push-pull */ + GPIOD->OTYPER = 0x00000000; + /* No pull-up, pull-down for PDx pins */ + GPIOD->PUPDR = 0x00000000; + + /* Connect PEx pins to FMC Alternate function */ + GPIOE->AFR[0] = 0xC00CC0CC; + GPIOE->AFR[1] = 0xCCCCCCCC; + /* Configure PEx pins in Alternate function mode */ + GPIOE->MODER = 0xAAAA828A; + /* Configure PEx pins speed to 100 MHz */ + GPIOE->OSPEEDR = 0xFFFFC3CF; + /* Configure PEx pins Output type to push-pull */ + GPIOE->OTYPER = 0x00000000; + /* No pull-up, pull-down for PEx pins */ + GPIOE->PUPDR = 0x00000000; + + /* Connect PFx pins to FMC Alternate function */ + GPIOF->AFR[0] = 0xCCCCCCCC; + GPIOF->AFR[1] = 0xCCCCCCCC; + /* Configure PFx pins in Alternate function mode */ + GPIOF->MODER = 0xAA800AAA; + /* Configure PFx pins speed to 50 MHz */ + GPIOF->OSPEEDR = 0xAA800AAA; + /* Configure PFx pins Output type to push-pull */ + GPIOF->OTYPER = 0x00000000; + /* No pull-up, pull-down for PFx pins */ + GPIOF->PUPDR = 0x00000000; + + /* Connect PGx pins to FMC Alternate function */ + GPIOG->AFR[0] = 0xCCCCCCCC; + GPIOG->AFR[1] = 0xCCCCCCCC; + /* Configure PGx pins in Alternate function mode */ + GPIOG->MODER = 0xAAAAAAAA; + /* Configure PGx pins speed to 50 MHz */ + GPIOG->OSPEEDR = 0xAAAAAAAA; + /* Configure PGx pins Output type to push-pull */ + GPIOG->OTYPER = 0x00000000; + /* No pull-up, pull-down for PGx pins */ + GPIOG->PUPDR = 0x00000000; + + /* Connect PHx pins to FMC Alternate function */ + GPIOH->AFR[0] = 0x00C0CC00; + GPIOH->AFR[1] = 0xCCCCCCCC; + /* Configure PHx pins in Alternate function mode */ + GPIOH->MODER = 0xAAAA08A0; + /* Configure PHx pins speed to 50 MHz */ + GPIOH->OSPEEDR = 0xAAAA08A0; + /* Configure PHx pins Output type to push-pull */ + GPIOH->OTYPER = 0x00000000; + /* No pull-up, pull-down for PHx pins */ + GPIOH->PUPDR = 0x00000000; + + /* Connect PIx pins to FMC Alternate function */ + GPIOI->AFR[0] = 0xCCCCCCCC; + GPIOI->AFR[1] = 0x00000CC0; + /* Configure PIx pins in Alternate function mode */ + GPIOI->MODER = 0x0028AAAA; + /* Configure PIx pins speed to 50 MHz */ + GPIOI->OSPEEDR = 0x0028AAAA; + /* Configure PIx pins Output type to push-pull */ + GPIOI->OTYPER = 0x00000000; + /* No pull-up, pull-down for PIx pins */ + GPIOI->PUPDR = 0x00000000; + +/*-- FMC Configuration -------------------------------------------------------*/ + /* Enable the FMC interface clock */ + RCC->AHB3ENR |= 0x00000001; + /* Delay after an RCC peripheral clock enabling */ + tmp = READ_BIT(RCC->AHB3ENR, RCC_AHB3ENR_FMCEN); + + FMC_Bank5_6->SDCR[0] = 0x000019E4; + FMC_Bank5_6->SDTR[0] = 0x01115351; + + /* SDRAM initialization sequence */ + /* Clock enable command */ + FMC_Bank5_6->SDCMR = 0x00000011; + tmpreg = FMC_Bank5_6->SDSR & 0x00000020; + while((tmpreg != 0) && (timeout-- > 0)) + { + tmpreg = FMC_Bank5_6->SDSR & 0x00000020; + } + + /* Delay */ + for (index = 0; index<1000; index++); + + /* PALL command */ + FMC_Bank5_6->SDCMR = 0x00000012; + timeout = 0xFFFF; + while((tmpreg != 0) && (timeout-- > 0)) + { + tmpreg = FMC_Bank5_6->SDSR & 0x00000020; + } + + /* Auto refresh command */ + FMC_Bank5_6->SDCMR = 0x00000073; + timeout = 0xFFFF; + while((tmpreg != 0) && (timeout-- > 0)) + { + tmpreg = FMC_Bank5_6->SDSR & 0x00000020; + } + + /* MRD register program */ + FMC_Bank5_6->SDCMR = 0x00046014; + timeout = 0xFFFF; + while((tmpreg != 0) && (timeout-- > 0)) + { + tmpreg = FMC_Bank5_6->SDSR & 0x00000020; + } + + /* Set refresh count */ + tmpreg = FMC_Bank5_6->SDRTR; + FMC_Bank5_6->SDRTR = (tmpreg | (0x0000027C<<1)); + + /* Disable write protection */ + tmpreg = FMC_Bank5_6->SDCR[0]; + FMC_Bank5_6->SDCR[0] = (tmpreg & 0xFFFFFDFF); + +#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) + /* Configure and enable Bank1_SRAM2 */ + FMC_Bank1->BTCR[2] = 0x00001011; + FMC_Bank1->BTCR[3] = 0x00000201; + FMC_Bank1E->BWTR[2] = 0x0fffffff; +#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx */ +#if defined(STM32F469xx) || defined(STM32F479xx) + /* Configure and enable Bank1_SRAM2 */ + FMC_Bank1->BTCR[2] = 0x00001091; + FMC_Bank1->BTCR[3] = 0x00110212; + FMC_Bank1E->BWTR[2] = 0x0fffffff; +#endif /* STM32F469xx || STM32F479xx */ + + (void)(tmp); +} +#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F469xx || STM32F479xx */ +#elif defined (DATA_IN_ExtSRAM) || defined (DATA_IN_ExtSDRAM) +/** + * @brief Setup the external memory controller. + * Called in startup_stm32f4xx.s before jump to main. + * This function configures the external memories (SRAM/SDRAM) + * This SRAM/SDRAM will be used as program data memory (including heap and stack). + * @param None + * @retval None + */ +void SystemInit_ExtMemCtl(void) +{ + __IO uint32_t tmp = 0x00; +#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)\ + || defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx) +#if defined (DATA_IN_ExtSDRAM) + register uint32_t tmpreg = 0, timeout = 0xFFFF; + register __IO uint32_t index; + +#if defined(STM32F446xx) + /* Enable GPIOA, GPIOC, GPIOD, GPIOE, GPIOF, GPIOG interface + clock */ + RCC->AHB1ENR |= 0x0000007D; +#else + /* Enable GPIOC, GPIOD, GPIOE, GPIOF, GPIOG, GPIOH and GPIOI interface + clock */ + RCC->AHB1ENR |= 0x000001F8; +#endif /* STM32F446xx */ + /* Delay after an RCC peripheral clock enabling */ + tmp = READ_BIT(RCC->AHB1ENR, RCC_AHB1ENR_GPIOCEN); + +#if defined(STM32F446xx) + /* Connect PAx pins to FMC Alternate function */ + GPIOA->AFR[0] |= 0xC0000000; + GPIOA->AFR[1] |= 0x00000000; + /* Configure PDx pins in Alternate function mode */ + GPIOA->MODER |= 0x00008000; + /* Configure PDx pins speed to 50 MHz */ + GPIOA->OSPEEDR |= 0x00008000; + /* Configure PDx pins Output type to push-pull */ + GPIOA->OTYPER |= 0x00000000; + /* No pull-up, pull-down for PDx pins */ + GPIOA->PUPDR |= 0x00000000; + + /* Connect PCx pins to FMC Alternate function */ + GPIOC->AFR[0] |= 0x00CC0000; + GPIOC->AFR[1] |= 0x00000000; + /* Configure PDx pins in Alternate function mode */ + GPIOC->MODER |= 0x00000A00; + /* Configure PDx pins speed to 50 MHz */ + GPIOC->OSPEEDR |= 0x00000A00; + /* Configure PDx pins Output type to push-pull */ + GPIOC->OTYPER |= 0x00000000; + /* No pull-up, pull-down for PDx pins */ + GPIOC->PUPDR |= 0x00000000; +#endif /* STM32F446xx */ + + /* Connect PDx pins to FMC Alternate function */ + GPIOD->AFR[0] = 0x000000CC; + GPIOD->AFR[1] = 0xCC000CCC; + /* Configure PDx pins in Alternate function mode */ + GPIOD->MODER = 0xA02A000A; + /* Configure PDx pins speed to 50 MHz */ + GPIOD->OSPEEDR = 0xA02A000A; + /* Configure PDx pins Output type to push-pull */ + GPIOD->OTYPER = 0x00000000; + /* No pull-up, pull-down for PDx pins */ + GPIOD->PUPDR = 0x00000000; + + /* Connect PEx pins to FMC Alternate function */ + GPIOE->AFR[0] = 0xC00000CC; + GPIOE->AFR[1] = 0xCCCCCCCC; + /* Configure PEx pins in Alternate function mode */ + GPIOE->MODER = 0xAAAA800A; + /* Configure PEx pins speed to 50 MHz */ + GPIOE->OSPEEDR = 0xAAAA800A; + /* Configure PEx pins Output type to push-pull */ + GPIOE->OTYPER = 0x00000000; + /* No pull-up, pull-down for PEx pins */ + GPIOE->PUPDR = 0x00000000; + + /* Connect PFx pins to FMC Alternate function */ + GPIOF->AFR[0] = 0xCCCCCCCC; + GPIOF->AFR[1] = 0xCCCCCCCC; + /* Configure PFx pins in Alternate function mode */ + GPIOF->MODER = 0xAA800AAA; + /* Configure PFx pins speed to 50 MHz */ + GPIOF->OSPEEDR = 0xAA800AAA; + /* Configure PFx pins Output type to push-pull */ + GPIOF->OTYPER = 0x00000000; + /* No pull-up, pull-down for PFx pins */ + GPIOF->PUPDR = 0x00000000; + + /* Connect PGx pins to FMC Alternate function */ + GPIOG->AFR[0] = 0xCCCCCCCC; + GPIOG->AFR[1] = 0xCCCCCCCC; + /* Configure PGx pins in Alternate function mode */ + GPIOG->MODER = 0xAAAAAAAA; + /* Configure PGx pins speed to 50 MHz */ + GPIOG->OSPEEDR = 0xAAAAAAAA; + /* Configure PGx pins Output type to push-pull */ + GPIOG->OTYPER = 0x00000000; + /* No pull-up, pull-down for PGx pins */ + GPIOG->PUPDR = 0x00000000; + +#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)\ + || defined(STM32F469xx) || defined(STM32F479xx) + /* Connect PHx pins to FMC Alternate function */ + GPIOH->AFR[0] = 0x00C0CC00; + GPIOH->AFR[1] = 0xCCCCCCCC; + /* Configure PHx pins in Alternate function mode */ + GPIOH->MODER = 0xAAAA08A0; + /* Configure PHx pins speed to 50 MHz */ + GPIOH->OSPEEDR = 0xAAAA08A0; + /* Configure PHx pins Output type to push-pull */ + GPIOH->OTYPER = 0x00000000; + /* No pull-up, pull-down for PHx pins */ + GPIOH->PUPDR = 0x00000000; + + /* Connect PIx pins to FMC Alternate function */ + GPIOI->AFR[0] = 0xCCCCCCCC; + GPIOI->AFR[1] = 0x00000CC0; + /* Configure PIx pins in Alternate function mode */ + GPIOI->MODER = 0x0028AAAA; + /* Configure PIx pins speed to 50 MHz */ + GPIOI->OSPEEDR = 0x0028AAAA; + /* Configure PIx pins Output type to push-pull */ + GPIOI->OTYPER = 0x00000000; + /* No pull-up, pull-down for PIx pins */ + GPIOI->PUPDR = 0x00000000; +#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F469xx || STM32F479xx */ + +/*-- FMC Configuration -------------------------------------------------------*/ + /* Enable the FMC interface clock */ + RCC->AHB3ENR |= 0x00000001; + /* Delay after an RCC peripheral clock enabling */ + tmp = READ_BIT(RCC->AHB3ENR, RCC_AHB3ENR_FMCEN); + + /* Configure and enable SDRAM bank1 */ +#if defined(STM32F446xx) + FMC_Bank5_6->SDCR[0] = 0x00001954; +#else + FMC_Bank5_6->SDCR[0] = 0x000019E4; +#endif /* STM32F446xx */ + FMC_Bank5_6->SDTR[0] = 0x01115351; + + /* SDRAM initialization sequence */ + /* Clock enable command */ + FMC_Bank5_6->SDCMR = 0x00000011; + tmpreg = FMC_Bank5_6->SDSR & 0x00000020; + while((tmpreg != 0) && (timeout-- > 0)) + { + tmpreg = FMC_Bank5_6->SDSR & 0x00000020; + } + + /* Delay */ + for (index = 0; index<1000; index++); + + /* PALL command */ + FMC_Bank5_6->SDCMR = 0x00000012; + timeout = 0xFFFF; + while((tmpreg != 0) && (timeout-- > 0)) + { + tmpreg = FMC_Bank5_6->SDSR & 0x00000020; + } + + /* Auto refresh command */ +#if defined(STM32F446xx) + FMC_Bank5_6->SDCMR = 0x000000F3; +#else + FMC_Bank5_6->SDCMR = 0x00000073; +#endif /* STM32F446xx */ + timeout = 0xFFFF; + while((tmpreg != 0) && (timeout-- > 0)) + { + tmpreg = FMC_Bank5_6->SDSR & 0x00000020; + } + + /* MRD register program */ +#if defined(STM32F446xx) + FMC_Bank5_6->SDCMR = 0x00044014; +#else + FMC_Bank5_6->SDCMR = 0x00046014; +#endif /* STM32F446xx */ + timeout = 0xFFFF; + while((tmpreg != 0) && (timeout-- > 0)) + { + tmpreg = FMC_Bank5_6->SDSR & 0x00000020; + } + + /* Set refresh count */ + tmpreg = FMC_Bank5_6->SDRTR; +#if defined(STM32F446xx) + FMC_Bank5_6->SDRTR = (tmpreg | (0x0000050C<<1)); +#else + FMC_Bank5_6->SDRTR = (tmpreg | (0x0000027C<<1)); +#endif /* STM32F446xx */ + + /* Disable write protection */ + tmpreg = FMC_Bank5_6->SDCR[0]; + FMC_Bank5_6->SDCR[0] = (tmpreg & 0xFFFFFDFF); +#endif /* DATA_IN_ExtSDRAM */ +#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F446xx || STM32F469xx || STM32F479xx */ + +#if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx)\ + || defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)\ + || defined(STM32F469xx) || defined(STM32F479xx) || defined(STM32F412Zx) || defined(STM32F412Vx) + +#if defined(DATA_IN_ExtSRAM) +/*-- GPIOs Configuration -----------------------------------------------------*/ + /* Enable GPIOD, GPIOE, GPIOF and GPIOG interface clock */ + RCC->AHB1ENR |= 0x00000078; + /* Delay after an RCC peripheral clock enabling */ + tmp = READ_BIT(RCC->AHB1ENR, RCC_AHB1ENR_GPIODEN); + + /* Connect PDx pins to FMC Alternate function */ + GPIOD->AFR[0] = 0x00CCC0CC; + GPIOD->AFR[1] = 0xCCCCCCCC; + /* Configure PDx pins in Alternate function mode */ + GPIOD->MODER = 0xAAAA0A8A; + /* Configure PDx pins speed to 100 MHz */ + GPIOD->OSPEEDR = 0xFFFF0FCF; + /* Configure PDx pins Output type to push-pull */ + GPIOD->OTYPER = 0x00000000; + /* No pull-up, pull-down for PDx pins */ + GPIOD->PUPDR = 0x00000000; + + /* Connect PEx pins to FMC Alternate function */ + GPIOE->AFR[0] = 0xC00CC0CC; + GPIOE->AFR[1] = 0xCCCCCCCC; + /* Configure PEx pins in Alternate function mode */ + GPIOE->MODER = 0xAAAA828A; + /* Configure PEx pins speed to 100 MHz */ + GPIOE->OSPEEDR = 0xFFFFC3CF; + /* Configure PEx pins Output type to push-pull */ + GPIOE->OTYPER = 0x00000000; + /* No pull-up, pull-down for PEx pins */ + GPIOE->PUPDR = 0x00000000; + + /* Connect PFx pins to FMC Alternate function */ + GPIOF->AFR[0] = 0x00CCCCCC; + GPIOF->AFR[1] = 0xCCCC0000; + /* Configure PFx pins in Alternate function mode */ + GPIOF->MODER = 0xAA000AAA; + /* Configure PFx pins speed to 100 MHz */ + GPIOF->OSPEEDR = 0xFF000FFF; + /* Configure PFx pins Output type to push-pull */ + GPIOF->OTYPER = 0x00000000; + /* No pull-up, pull-down for PFx pins */ + GPIOF->PUPDR = 0x00000000; + + /* Connect PGx pins to FMC Alternate function */ + GPIOG->AFR[0] = 0x00CCCCCC; + GPIOG->AFR[1] = 0x000000C0; + /* Configure PGx pins in Alternate function mode */ + GPIOG->MODER = 0x00085AAA; + /* Configure PGx pins speed to 100 MHz */ + GPIOG->OSPEEDR = 0x000CAFFF; + /* Configure PGx pins Output type to push-pull */ + GPIOG->OTYPER = 0x00000000; + /* No pull-up, pull-down for PGx pins */ + GPIOG->PUPDR = 0x00000000; + +/*-- FMC/FSMC Configuration --------------------------------------------------*/ + /* Enable the FMC/FSMC interface clock */ + RCC->AHB3ENR |= 0x00000001; + +#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) + /* Delay after an RCC peripheral clock enabling */ + tmp = READ_BIT(RCC->AHB3ENR, RCC_AHB3ENR_FMCEN); + /* Configure and enable Bank1_SRAM2 */ + FMC_Bank1->BTCR[2] = 0x00001011; + FMC_Bank1->BTCR[3] = 0x00000201; + FMC_Bank1E->BWTR[2] = 0x0fffffff; +#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx */ +#if defined(STM32F469xx) || defined(STM32F479xx) + /* Delay after an RCC peripheral clock enabling */ + tmp = READ_BIT(RCC->AHB3ENR, RCC_AHB3ENR_FMCEN); + /* Configure and enable Bank1_SRAM2 */ + FMC_Bank1->BTCR[2] = 0x00001091; + FMC_Bank1->BTCR[3] = 0x00110212; + FMC_Bank1E->BWTR[2] = 0x0fffffff; +#endif /* STM32F469xx || STM32F479xx */ +#if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx)|| defined(STM32F417xx)\ + || defined(STM32F412Zx) || defined(STM32F412Vx) + /* Delay after an RCC peripheral clock enabling */ + tmp = READ_BIT(RCC->AHB3ENR, RCC_AHB3ENR_FSMCEN); + /* Configure and enable Bank1_SRAM2 */ + FSMC_Bank1->BTCR[2] = 0x00001011; + FSMC_Bank1->BTCR[3] = 0x00000201; + FSMC_Bank1E->BWTR[2] = 0x0FFFFFFF; +#endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx || STM32F412Zx || STM32F412Vx */ + +#endif /* DATA_IN_ExtSRAM */ +#endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx || STM32F427xx || STM32F437xx ||\ + STM32F429xx || STM32F439xx || STM32F469xx || STM32F479xx || STM32F412Zx || STM32F412Vx */ + (void)(tmp); +} +#endif /* DATA_IN_ExtSRAM && DATA_IN_ExtSDRAM */ +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/bsp/stm32/stm32f410-st-nucleo/board/Kconfig b/bsp/stm32/stm32f410-st-nucleo/board/Kconfig new file mode 100644 index 0000000000..98a7620b75 --- /dev/null +++ b/bsp/stm32/stm32f410-st-nucleo/board/Kconfig @@ -0,0 +1,141 @@ +menu "Hardware Drivers Config" + +config SOC_STM32F410RB + bool + select SOC_SERIES_STM32F4 + select RT_USING_COMPONENTS_INIT + select RT_USING_USER_MAIN + default y + +menu "Onboard Peripheral Drivers" + +endmenu + +menu "On-chip Peripheral Drivers" + + config BSP_USING_GPIO + bool "Enable GPIO" + select RT_USING_PIN + default y + + menuconfig BSP_USING_UART + bool "Enable UART" + default y + select RT_USING_SERIAL + if BSP_USING_UART + config BSP_USING_UART2 + bool "Enable UART2" + default y + + config BSP_UART2_RX_USING_DMA + bool "Enable UART2 RX DMA" + depends on BSP_USING_UART2 && RT_SERIAL_USING_DMA + default n + + config BSP_USING_UART6 + bool "Enable UART6" + default n + + config BSP_UART6_RX_USING_DMA + bool "Enable UART6 RX DMA" + depends on BSP_USING_UART6 && RT_SERIAL_USING_DMA + default n + + endif + + menuconfig BSP_USING_I2C1 + bool "Enable I2C1 BUS (software simulation)" + default n + select RT_USING_I2C + select RT_USING_I2C_BITOPS + select RT_USING_PIN + if BSP_USING_I2C1 + comment "Notice: PB8 --> 24; PB9 --> 25" + config BSP_I2C1_SCL_PIN + int "i2c1 scl pin number" + range 0 80 + default 24 + config BSP_I2C1_SDA_PIN + int "I2C1 sda pin number" + range 0 80 + default 25 + endif + + menuconfig BSP_USING_SPI + bool "Enable SPI BUS" + default n + select RT_USING_SPI + if BSP_USING_SPI + config BSP_USING_SPI1 + bool "Enable SPI1 BUS" + default n + + config BSP_SPI1_TX_USING_DMA + bool "Enable SPI1 TX DMA" + depends on BSP_USING_SPI1 + default n + + config BSP_SPI1_RX_USING_DMA + bool "Enable SPI1 RX DMA" + depends on BSP_USING_SPI1 + select BSP_SPI1_TX_USING_DMA + default n + endif + + menuconfig BSP_USING_PWM + bool "Enable pwm" + default n + select RT_USING_PWM + if BSP_USING_PWM + menuconfig BSP_USING_PWM3 + bool "Enable timer3 output pwm" + default n + if BSP_USING_PWM3 + config BSP_USING_PWM3_CH1 + bool "Enable PWM3 channel1 (PA6)" + default n + + config BSP_USING_PWM3_CH2 + bool "Enable PWM3 channel2 (PA7)" + default n + + config BSP_USING_PWM3_CH3 + bool "Enable PWM3 channel3 (PB0)" + default n + + config BSP_USING_PWM3_CH4 + bool "Enable PWM3 channel4 (PB1)" + default n + endif + endif + + menuconfig BSP_USING_ONCHIP_RTC + bool "Enable RTC" + select RT_USING_RTC + select RT_USING_LIBC + default n + if BSP_USING_ONCHIP_RTC + choice + prompt "Select clock source" + default BSP_RTC_USING_LSE + + config BSP_RTC_USING_LSE + bool "RTC USING LSE" + + config BSP_RTC_USING_LSI + bool "RTC USING LSI" + endchoice + endif + + config BSP_USING_ON_CHIP_FLASH + bool "Enable on-chip FLASH" + default n + source "../libraries/HAL_Drivers/Kconfig" + +endmenu + +menu "Board extended module Drivers" + +endmenu + +endmenu diff --git a/bsp/stm32/stm32f410-st-nucleo/board/SConscript b/bsp/stm32/stm32f410-st-nucleo/board/SConscript new file mode 100644 index 0000000000..45da9228a8 --- /dev/null +++ b/bsp/stm32/stm32f410-st-nucleo/board/SConscript @@ -0,0 +1,37 @@ +import os +import rtconfig +from building import * + +Import('SDK_LIB') + +cwd = GetCurrentDir() + +# add general drivers +src = Split(''' +board.c +CubeMX_Config/Src/stm32f4xx_hal_msp.c +''') + +path = [cwd] +path += [cwd + '/CubeMX_Config/Inc'] + +startup_path_prefix = SDK_LIB + +if rtconfig.CROSS_TOOL == 'gcc': + src += [startup_path_prefix + '/STM32F4xx_HAL/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f410rx.s'] +elif rtconfig.CROSS_TOOL == 'keil': + src += [startup_path_prefix + '/STM32F4xx_HAL/CMSIS/Device/ST/STM32F4xx/Source/Templates/arm/startup_stm32f410rx.s'] +elif rtconfig.CROSS_TOOL == 'iar': + src += [startup_path_prefix + '/STM32F4xx_HAL/CMSIS/Device/ST/STM32F4xx/Source/Templates/iar/startup_stm32f410rx.s'] + +# STM32F405xx) || STM32F415xx) || STM32F407xx) || STM32F417xx) +# STM32F427xx) || STM32F437xx) || STM32F429xx) || STM32F439xx) +# STM32F401xC) || STM32F401xE) || STM32F410Tx) || STM32F410Cx) +# STM32F410Rx) || STM32F411xE) || STM32F446xx) || STM32F469xx) +# STM32F479xx) || STM32F412Cx) || STM32F412Rx) || STM32F412Vx) +# STM32F412Zx) || STM32F413xx) || STM32F423xx) +# You can select chips from the list above +CPPDEFINES = ['STM32F410Rx'] +group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path, CPPDEFINES = CPPDEFINES) + +Return('group') \ No newline at end of file diff --git a/bsp/stm32/stm32f410-st-nucleo/board/board.c b/bsp/stm32/stm32f410-st-nucleo/board/board.c new file mode 100644 index 0000000000..0f59b7dea6 --- /dev/null +++ b/bsp/stm32/stm32f410-st-nucleo/board/board.c @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2006-2020, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2020-03-07 tanglj86 first version + */ + +#include "board.h" + +void SystemClock_Config(void) +{ + RCC_OscInitTypeDef RCC_OscInitStruct = {0}; + RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; + + /** Configure the main internal regulator output voltage + */ + __HAL_RCC_PWR_CLK_ENABLE(); + __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1); + /** Initializes the CPU, AHB and APB busses clocks + */ + RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI; + RCC_OscInitStruct.HSIState = RCC_HSI_ON; + RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT; + RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; + RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI; + RCC_OscInitStruct.PLL.PLLM = 16; + RCC_OscInitStruct.PLL.PLLN = 336; + RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV4; + RCC_OscInitStruct.PLL.PLLQ = 4; + RCC_OscInitStruct.PLL.PLLR = 2; + if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) + { + Error_Handler(); + } + /** Initializes the CPU, AHB and APB busses clocks + */ + RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK + |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; + RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; + RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; + RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; + RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; + + if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK) + { + Error_Handler(); + } +} diff --git a/bsp/stm32/stm32f410-st-nucleo/board/board.h b/bsp/stm32/stm32f410-st-nucleo/board/board.h new file mode 100644 index 0000000000..58660f75ad --- /dev/null +++ b/bsp/stm32/stm32f410-st-nucleo/board/board.h @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2006-2020, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2020-03-07 tanglj86 first version + */ + +#ifndef __BOARD_H__ +#define __BOARD_H__ + +#include +#include +#include "drv_common.h" +#include "drv_gpio.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define STM32_FLASH_START_ADRESS ((uint32_t)0x08000000) +#define STM32_FLASH_SIZE (128 * 1024) +#define STM32_FLASH_END_ADDRESS ((uint32_t)(STM32_FLASH_START_ADRESS + STM32_FLASH_SIZE)) + +#define STM32_SRAM_SIZE 32 +#define STM32_SRAM_END (0x20000000 + STM32_SRAM_SIZE * 1024) + +#if defined(__CC_ARM) || defined(__CLANG_ARM) +extern int Image$$RW_IRAM1$$ZI$$Limit; +#define HEAP_BEGIN (&Image$$RW_IRAM1$$ZI$$Limit) +#elif __ICCARM__ +#pragma section="CSTACK" +#define HEAP_BEGIN (__segment_end("CSTACK")) +#else +extern int __bss_end; +#define HEAP_BEGIN (&__bss_end) +#endif + +#define HEAP_END STM32_SRAM_END + +void SystemClock_Config(void); + +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/bsp/stm32/stm32f410-st-nucleo/board/linker_scripts/link.icf b/bsp/stm32/stm32f410-st-nucleo/board/linker_scripts/link.icf new file mode 100644 index 0000000000..4603ce791b --- /dev/null +++ b/bsp/stm32/stm32f410-st-nucleo/board/linker_scripts/link.icf @@ -0,0 +1,28 @@ +/*###ICF### Section handled by ICF editor, don't touch! ****/ +/*-Editor annotation file-*/ +/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ +/*-Specials-*/ +define symbol __ICFEDIT_intvec_start__ = 0x08000000; +/*-Memory Regions-*/ +define symbol __ICFEDIT_region_ROM_start__ = 0x08000000; +define symbol __ICFEDIT_region_ROM_end__ = 0x0801FFFF; +define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; +define symbol __ICFEDIT_region_RAM_end__ = 0x20007FFF; +/*-Sizes-*/ +define symbol __ICFEDIT_size_cstack__ = 0x0400; +define symbol __ICFEDIT_size_heap__ = 0x0800; +/**** End of ICF editor section. ###ICF###*/ + +define memory mem with size = 4G; +define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; +define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; + +define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; + +initialize by copy { readwrite }; +do not initialize { section .noinit }; + +place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; + +place in ROM_region { readonly }; +place in RAM_region { readwrite, last block CSTACK}; \ No newline at end of file diff --git a/bsp/stm32/stm32f410-st-nucleo/board/linker_scripts/link.lds b/bsp/stm32/stm32f410-st-nucleo/board/linker_scripts/link.lds new file mode 100644 index 0000000000..eefaaa6f36 --- /dev/null +++ b/bsp/stm32/stm32f410-st-nucleo/board/linker_scripts/link.lds @@ -0,0 +1,158 @@ +/* + * linker script for STM32F4xx with GNU ld + * bernard.xiong 2009-10-14 + */ + +/* Program Entry, set to mark it as "used" and avoid gc */ +MEMORY +{ + ROM (rx) : ORIGIN = 0x08000000, LENGTH = 128k /* 128KB flash */ + RAM (rw) : ORIGIN = 0x20000000, LENGTH = 32k /* 32K sram */ +} +ENTRY(Reset_Handler) +_system_stack_size = 0x200; + +SECTIONS +{ + .text : + { + . = ALIGN(4); + _stext = .; + KEEP(*(.isr_vector)) /* Startup code */ + + . = ALIGN(4); + *(.text) /* remaining code */ + *(.text.*) /* remaining code */ + *(.rodata) /* read-only data (constants) */ + *(.rodata*) + *(.glue_7) + *(.glue_7t) + *(.gnu.linkonce.t*) + + /* section information for finsh shell */ + . = ALIGN(4); + __fsymtab_start = .; + KEEP(*(FSymTab)) + __fsymtab_end = .; + + . = ALIGN(4); + __vsymtab_start = .; + KEEP(*(VSymTab)) + __vsymtab_end = .; + + /* section information for initial. */ + . = ALIGN(4); + __rt_init_start = .; + KEEP(*(SORT(.rti_fn*))) + __rt_init_end = .; + + . = ALIGN(4); + + + PROVIDE(__ctors_start__ = .); + KEEP (*(SORT(.init_array.*))) + KEEP (*(.init_array)) + PROVIDE(__ctors_end__ = .); + + . = ALIGN(4); + + _etext = .; + } > ROM = 0 + + /* .ARM.exidx is sorted, so has to go in its own output section. */ + __exidx_start = .; + .ARM.exidx : + { + *(.ARM.exidx* .gnu.linkonce.armexidx.*) + + /* This is used by the startup in order to initialize the .data secion */ + _sidata = .; + } > ROM + __exidx_end = .; + + /* .data section which is used for initialized data */ + + .data : AT (_sidata) + { + . = ALIGN(4); + /* This is used by the startup in order to initialize the .data secion */ + _sdata = . ; + + *(.data) + *(.data.*) + *(.gnu.linkonce.d*) + + PROVIDE(__dtors_start__ = .); + KEEP(*(SORT(.dtors.*))) + KEEP(*(.dtors)) + PROVIDE(__dtors_end__ = .); + + . = ALIGN(4); + /* This is used by the startup in order to initialize the .data secion */ + _edata = . ; + } >RAM + + .stack : + { + . = ALIGN(4); + _sstack = .; + . = . + _system_stack_size; + . = ALIGN(4); + _estack = .; + } >RAM + + __bss_start = .; + .bss : + { + . = ALIGN(4); + /* This is used by the startup in order to initialize the .bss secion */ + _sbss = .; + + *(.bss) + *(.bss.*) + *(COMMON) + + . = ALIGN(4); + /* This is used by the startup in order to initialize the .bss secion */ + _ebss = . ; + + *(.bss.init) + } > RAM + __bss_end = .; + + _end = .; + + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } + .stabstr 0 : { *(.stabstr) } + .stab.excl 0 : { *(.stab.excl) } + .stab.exclstr 0 : { *(.stab.exclstr) } + .stab.index 0 : { *(.stab.index) } + .stab.indexstr 0 : { *(.stab.indexstr) } + .comment 0 : { *(.comment) } + /* DWARF debug sections. + * Symbols in the DWARF debugging sections are relative to the beginning + * of the section so we begin them at 0. */ + /* DWARF 1 */ + .debug 0 : { *(.debug) } + .line 0 : { *(.line) } + /* GNU DWARF 1 extensions */ + .debug_srcinfo 0 : { *(.debug_srcinfo) } + .debug_sfnames 0 : { *(.debug_sfnames) } + /* DWARF 1.1 and DWARF 2 */ + .debug_aranges 0 : { *(.debug_aranges) } + .debug_pubnames 0 : { *(.debug_pubnames) } + /* DWARF 2 */ + .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_line 0 : { *(.debug_line) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } + /* SGI/MIPS DWARF 2 extensions */ + .debug_weaknames 0 : { *(.debug_weaknames) } + .debug_funcnames 0 : { *(.debug_funcnames) } + .debug_typenames 0 : { *(.debug_typenames) } + .debug_varnames 0 : { *(.debug_varnames) } +} diff --git a/bsp/stm32/stm32f410-st-nucleo/board/linker_scripts/link.sct b/bsp/stm32/stm32f410-st-nucleo/board/linker_scripts/link.sct new file mode 100644 index 0000000000..fc59d61cae --- /dev/null +++ b/bsp/stm32/stm32f410-st-nucleo/board/linker_scripts/link.sct @@ -0,0 +1,15 @@ +; ************************************************************* +; *** Scatter-Loading Description File generated by uVision *** +; ************************************************************* + +LR_IROM1 0x08000000 0x00020000 { ; load region size_region + ER_IROM1 0x08000000 0x00020000 { ; load address = execution address + *.o (RESET, +First) + *(InRoot$$Sections) + .ANY (+RO) + } + RW_IRAM1 0x20000000 0x00008000 { ; RW data + .ANY (+RW +ZI) + } +} + diff --git a/bsp/stm32/stm32f410-st-nucleo/figures/board.png b/bsp/stm32/stm32f410-st-nucleo/figures/board.png new file mode 100644 index 0000000000000000000000000000000000000000..87f797df1302ae5cb48f5a3cffb9e69cb6150a4e GIT binary patch literal 447466 zcmZU)Wl$u+vIdH~JBz!!ySpv!I=DNFySux?E-Z@-?yxYpySuyl0*`aO1Gw5a zyW2Q9f?>jwQGDSD|G_1koV{IbtgPL^{-BQYf1xP|D}Qd zk4D|e(%s9{)dI}W`SU;Ki2uF0jT^w;^vl#0tfjXx@e79g53FtK>S*I=1=dS&82N?4 z{?GLut^f+$b~v*S(P1s z!gDY+wRGP)i-Tq~I}T%Nnm{PQyl{FZD}`ybL^L~uGN!CG2r4RF6maJ6t6%*zN%GK6 z5Fd~T!URJ|Idz*95bg1*I$f;(t-tlU;Do;AeOXj2#;6;~N;>g+mD|*XV-R~Gm-^?( zcF`2yj&EuajJOzSdx?9(XrZI^4uXJX=FT*_hM??iMCJjLpqK()J417INm zrhTSW8H0!Ff27>MER83DRr#fo5_^d5e?){mjt%6}Ip~@fvzJCfRmrO?_g{HQCO`O1 zh%R2X%X=Ub<8eYVv979@U%+Ib-3n9F?j$hrC^hG|<+Q(Hcl7*TM*3{Cd}WENUnSJ3 zENs+g@bX(<3B^f(M_%OXziQbCdl_~$J^M_)E}5Zp8@+ejUKp|{&7HP3&4w?WB{UrtqLH{-V-uI@0q#)^SF|@R$Bb z)4I{AR&vV!$}H*s4a3)9Agj6L{jVnF|D*b&Q1!dg(nX}CE!C}|Sp*^HK_d20b1uhJ z(pM~OA_U4E(fG~t_oVfT;9=v!2bccCn!jSeH-_7;_o&C;99#}-%2M5DIvbZ4n?~~T zqlpO_;C4%u;s^19iCJ2~ZxanBaEnvvde(}m{%K4KpEbr$4~mIP?w@-0HTkv!7sokv zmBDIbH^}0@Y1AE&HZR>dL@ZAnzJ~V85q9MUT;%^xLNy3~mHn@9%Km>;Tcl+LnRFug zWt)%xefvB(i~3w>hp*|c9XQG17m`BUrJA1M8LIh8-5G<8+CE+I_3^-@2!=(hC62Y> z_!QtiO~g;t^%9%51xogg5xHq)%h;COGwkwB>WLaJiW-BTh&kG`j+*U_C;W|YJa{8gYoDKfX-(tBh2^=yX9K{86TQ?mu zxGZe>{$DTraz&e@FUR~pf%!iN{r{^nrZf4qTU0Nf9X#_KHB(x3MONWG*&uS-7Ft|Y zoDSn0!>oy6ogtxi5mSZ14c&4w%pBd))@-&ouS*9;7POLv(_0LMyD}B3SzznCS2#_q zq1w4ZHvZt`+7XY@vq_^d1mT$?jp8+01J>j8;0rj&sZ+jD^g62Pcjqf;rVWXd%&S+lYooHeIrEQLY3!MZT7&HVhRtsMl<$@2}*IP_P)+o3&vmCz7O)kuXES zXyl=x$%>c}hl^(=A7M3JRd--Gs@CxjQvTq!a}Tjj-bVoE^bT@bh}40j%oO~S%i|Py z(AfTD;B6V}d1w#p9H}ZQXLk5S!m!KxmADR=fS7J4<+e+rMgM+Q$IGgT{+1r(8xx&2 zSH|XSp`{_`b}UPt4pq`$@qAu4ssqQS9>RG@YILNsU&bZi$?7u^w#9^FKZJ`|w?*N7$(#sxA7bJQsg z%sN;qmDBbB zK{K>;tkQt8L3Ruo{vQR2jaYg^)?%|B|q`C@qUe0=O!pOx2cLP*zZHRTlvG zQLreVX*8A<@9z1Pa=jJUwIcMIVmzs8C`NQ(YPlsSb)KS`az)LrOVAYbu`UQbj3MiH z7Lyb`rLE(lDu%$lOX<*4D_PK?gq!Otw14x;C-r|f%#q@~*r?{$$nv4bnjnM=G9yqe}w*l>`@m(~*j7kD0+Ih!eA* zw5ZKn2P+p3CnLXB)x+febD06dpf&8N{#jmD#>q-bjzPEb90hkW)Cwfm3L(8^V>0-= z8E4iVDk}rEI+O{1@B`k}m5XVOiUgpq5gqjhl%@4(ho^5kRAs~5Bx^tv!Yc`I=7bX| zGZBCTMD6i17mYdU0e;0ZLa3@`!#s0A-&t5nN94mupC^zWID!#pc8>F-kt&=?XOdJ751S_YkOf@}=RvN9S zXwOM2CxjBci>DxKj-_6hOBDkVmITEQReobe!o(>Kze`IA(Et849UQ5F(|ln<0Ze;# zfeTWRYjZ)LY46cA|9Tg(5R@=#d6cfH+hlepqNRViVD^}AojTT!Ugu+S?=&9e% zLnEN%d(RE(=UL#5C9>XOQ725Q@7$7LwJVGdnRDvzY(CX;Nj)>sk zwmr7pnWd{9P@lh@%}6w9#K@&E@{ob>y{a}<$P=L>5Ko`~c({l#z6x98jPUc( z>!cvRq`?=gEL@AcO&2@^%^Eqw!PH%mn%&(N@$S@Rx5qDMeH*Rqk~u@1M8Ot8HONjE zt~ly9S9_Vs&b?eoZD8*1p{YSRt2D=%G+wDH&o%aq=WGP-dT#ALOpyhTW6(#_MmRyy z)P$~bOY^^WLx^t|?aykZc}el<{7}S>f2r(We|Np;;z|;S|54DWN#bE!@kv*<*uw|r ztaaV61;nRVsH!moNifg$#a7wPEEdK_JjG2bPLl{z{HP)IFc~CBIlqPCjKHS)m0|p7 z9!&IeKWD=WRfC~ITGmSWG|Vk4N-kGTR#6^88rSLtqFb9G0qcO}5|f^)>ECK<_8@?` zXo%q#ym%Bz7waTn&$_l4?O;E}=_1lW?KY^Nv^w`yGdD3zk(BM1&-EGK57b+6sp*8a zXAPegn~;zE&F$+DQ%1dvb{}w2fCv3o<=osba8NNic#YSpYN?pat}ZB_>jYR=s}gNl z0~~C{i|2U6yU!&5pobC*4lj*ApduBtH;+(oJ5OSZ*lEj?%Q4dB^Fv7Lj~DPyj`t@g z)^uOrMa0h_!VP&S++uo@mu07O_;Ko0F<2O&80WKiT~b0s65XM~$f(kbtBAj=aa&C( zso||ko|~%z6Oja4oipO4VqF~y#O+hP_-S*qj+vf{{248h#|}o?`A&_Hx1Mf77XX~> zozMWqyBHm%BsF#}4moWZ+}Hyt+lNzZrc4)uc7YCEot$5n)p}RVS6gb{H%v>KjA_G1 z2x(Oc8dd2YJx<>?Lk=gN(eH$z0719t7lxV2Z6>0_O^NP`&dQcW*U1YGBCyKG<3_fYSAOa#+sd|sLNyrX}isH@rTMAN@HnbDm2FI zCd)~Pq7zwGb>HP-;E0lGEUk;hKh8u<{?^v*g`!^TS>41e{YevtAtREW@h}Y@SxTI3 zaD%=(r&{rNLH@Rro3cNBoYh;!r~M_|twXEmWHc_-KKo6G33q`F;m=+>H^W# zQyFzggFEaNJ*TmN#<@rOp&DJuOVqXuJC)cyn$1SS>BJn*H|KO3!!?Js6{7}if(xl# zS%)Z1vv*cXi(C#>Nh8@w5&_W6m49LGWlyBK6^pY^O}%9-#4tT9zD*eOoazkJ03qgG zEFNZYTIk}pcxi6>3+i%B?^MTTX&zt(WN6-&7{=s>GbT~K-5ahHdTQ!XcDpmq80c9#R85vy|1_4|({ei$DFA zJQa5czCTFF>#}3lf0eZ^xxZFOWugi_8P0NOl-2Xhkl_sP8{Xly9SfVWejktugf4A4 zjO%(%ywUJ;!>+bVcBPgQTtnVeA+|c#b9QE>$+DwB`>5}QLy>WETZj9q_2QD@^e!Se zKF@EDb}qJocDn}XtIy0cP7U_+7Y(292l6Fe$5ABzqC_Zx_sg`K`JFen!?O6|MDX76on&}+wrAO7@|--d{Np+R=A+7 zxX~cAxI(^o5#h;Y|EJ`Wi*mgiRSYvEH95sUY%Xy)A*@K*B7p@GDuJ>3jw=IdR_H2R z5i_EbvSvhNP{Xo&Yuvg3v{(hg*VmT1O)nNhuk*jHIXZ(y=C?5NvIau~xFLu#3Da($ z#0awyvZc}A)wcO@2wq=*JlF+Ff2`v-Uj(8m%S7jaVw%z)OAlY`-y!kbGzyGWyy zKsU34Wq`HSXAW^HcZ*lLE?pTKmPSNODg17d?9hIYSs6MaVxIRUf&J%kDAJY(?u@7i zzCOAkyI(U5x~=Q%&u;e|aT~}%SGL(h!EaQYDOt}FT=S!pf1 z?H8nnC)e{c*x`egJ%Yl!m84`Mf$W-zhU-zcq>(wy1>XBnvIuU+@}qu|k_3~#Pjw!> z39sZ^-g{71Ou6Bo|9F2{{%m_U^qTv{uPS3yzPB&Oz2U~vogyhF>H&(vqA`X6KO9b8m@|FzL z2laP1y}DxWB2m>>o3p(uD+u6rvvv|7I1nw$QWc103ErcrqKg(%zRU6>o0o5A2(>s5 zhdmdBqrvFof322!f4iM+v~YZkHW2!pt6skNeu6D*4B0n{A0t2z0aj8_Y|!m0h9a2o zb9n|68{E#&IP@dn?wAX%0A@;J5++hQ_ymSG=*m35jsB9EneK3=c&R5z{S23q45Ka~ zex30P8Q{* z=Si10Y&vNfA!wOjLK>blVwn07XV@Z^mpt^>Qco8fb(86`!%gTKhQkq343`{7Lu~-Z)Qw+Q?AJTv zCjx!rZ22sA9`kvd!?CJRLlPp8>NvfFqeWh((gM!Z@4KFanSIEb^U2`+8R?SMFuchU z7B!6i39}dr_OYD*BMtCExthm<%n&!n@=z}(hw>71hMfsAyI%J;J0o|)#8eEtuvzxy zS@GJOGzg@Dq?hTwRL{-(IV8Ewq?RS9qVc4oqf^8?t85VFv zT&DIcCfj33?t2Qi`HV$$Nt#XyrjX)>)lWV2RQQgP4`})Bb1d<-;m}a;oQKqRSLt_! z?|Hs1MG2+)Q&vVB#g5;scsg?2(!~(hLSkpx<~~6Qs+{4e&@rO6D2w3_9N=z0^;m`^ zysd3PIviq`ClIqOP=pudusoABQD|||6SR!?Izq#iC={{Wf_gJ85!L03kH6geBJzUC zZ;$#=oJdiw2(_}82tXm0^t(+RR`HMNOk(Icneum3`UL$FiN_<5h)_(eEclB zx9cfr6#0SnK1>lkY~|H661H^ciGoQClY<0_}klL&7J%*snqyLfzZwb>;uYgyYy^iaGA8+ z`~LkVO>ucSyUz`^(+>(Hmd@u!1%bCV(%tWduUFst$N0zLvgiob{a{s-?p^q_eW@Wj zx`W^Wgr*dyBdN+2U$M(WB;fkk!ncTtzhM*f$+=LSjh zF*vo|j|dyNPCt)5O)_KT1ZBm(<6=v0r;2bUcx~IXdu>TKO^1*FQR&AiWy6m)K%zYk z;(+Z@FrFgaT?&AncO~v5*kQU!PyH{|jZGO6;>t=*?Zl@eCV9|@#Ul77s6Y5vXR3gD zXvgAw6OZY>(GV-&ElR2FG+i7)`-einusxs9u~@YFFnPqIBsw|%iHAIHBqAcER`sqs8|NVojt7Sy^0Depx#EzQe2HX88W3sxaN+x=Z==kJ}{^;!6rGMTgCtQNmqH6^# z`ol7ygntYgbCyIePiCf=FfX10iZ8Ra=NdwnlYr;p`|W91ZQjqtz1a@8v=BfjEanko zv;VQ!tK;T?q;R4YL>lXlqhGu{d?QnS|8UXZGEP0}4Go`7!49Yrv<};zHlCb;S_cml zLv7`yxV7xDzZq`^@1^pFDUOzY0RCZx|3x{k!Wxq9omgW=A50X42wLtU$ODngb>3qf zA{vWo(+@|INUsOHy<&IWB7B8i%GTq#?%mwM#f00`-<5_ak$(~zKoG;{$rP)(V4)VjHvUlf3ML(rcj*0I((#FEH~`R>$83&T z5zPdJuvhSj@Kog!Yo=>as#N!rWh-&z1;5}mmc?x;@M#KfwGJQb-RWcE8+gEu{?_*O z)hBqz=ZJ_!|Ic8_dt%-?_Uy%wrj1F&u;_|F`2|+%0!Lcq;*R{9Jp|&2skT@#*_5*5jwti>@v}fU(=EZTtSy64JJw1HeI|cKzh??Qv8xBTg zLcTBdPPZx|?@9sOX2cQGY}& zh|DmPMq0Dv&eiXQ&U-^o;Fa?Qm5k`QFE-`8f#c)*lwNU{MYGue7tfsT1ag{>Yxvie zjlVL&FK3Kc@)`*EjTX)v%%&5NoVq7wqr$&XhyZgAS4HcZ9j z+Q3Buy|8AH4p^A#y4f;O#tbk3wceKLgNg&{~GO<$0fs}=(0PF7M ziQ(>EY;MM9ghEeejjF=3bCzWW6kX7I4j`g{ZcaB3s4FiiVg$`{?j&P&>ItYU?ev>p zwx{MswwRd3lCm=nXQeFSG1a9HxUApBI-+B z4+{RSN(^yOZN1QP7mhqWH!Y$_WVY1J;~i@G{Ks&=j`D1~8$Vg<+5AT-as;#i$XzKge$}%M6y@$IhA)#q+a~2xe z!HshB1>wQhB*mpJvxCGhC|fPT+uwuCJHK3+aP2RlaGnkW_{&Wqh4A}HI`^xBaY$_d z_T6!5){H7>vnzVx4&$EWlkF=O&sReK&HvhT&oz6xl)R2lq>z?gzD@9|+gTu7`Ae3S zs}Q!dO=@XoW`VECSo2TXi^uh=ZaIBe)?aMB8;<`C&BCNXdwWz}Zf1J7V?3barAu5A{geoBm_q`WBfYH&vvy~g(QHJ8+g$JQI0Wo zi`$bW=nPc_?o@Mx*`A|jh1xsH&nDjazr6s$WAAV1h41#a8@N4DU$-95>_I{m3Ukfl zTC-iWnlU$s+G{bmytM!=FQa<>VZi><=jnWq_|U#w{-=ryhTxMJ^F8`+yeq0GQJZPf zmdVNM3}YA0pY8cp#*;OZHe>ZAj#$&T*7`8FhYAOFygY037Ml#$Jl#n5G@v>__Tx5Rx^a zij|mQ)~&BxYF_o{BA$lI@pkh6-5b+FgJVw!t+Q`rjk2c^ddW?8jKHN<=9pbk;VT#j zBT^*hmtJUEd?AD-i;CsY*g%3D{W}k-=tbNKMn+Y9HB(K*j;RnAcx4e2D%HNA#l6{? zOZO{xgtgcAotGlC-`uA|Cxv@3COT^QgilfE0pg%^i1%s5)C{rFf~+1T3h4lCn)!j% z#8(CN$X@JNPjOJeAd6on0D!tzBI;?1;_Z?nKt3}3;ib-?J1%W;+h+7CksJ%^&%Gi@5&U{iMzja-yxGMr+RN@_}r7 zr*2No!s>gD_4kFY&lcn^6XCN>F~9J#=5@#qhEX_8Dk^+G9mBe)M^P>*{EyZ0E3nYG z!gTRo$CV0x>6}w8Q3kQ-7=ZM%Kzx3LT~=}H*S4Ys%T0)G&#Z^N;Gkc^Qdgl@{oO|i z=DDz_)DDA#i%|eD^-4;u;Ru!sgtZn4K%2Q~vQDPgh5X~MnMDwrIGv*K*0H%L!)~P< zy;B|~Ph)WFe3RNhT_^9Dxft91UsTmmTvi%o%Ej|B$=c!llNXv#!n8iYCxcxC45;Dv zH_TXDNE#%dD}Mc$)<(}uF372k><}DO`wv0zM$!yE@ODHK=#Bp|5WC#QSTdjd%w){X zTrWk9f;mJAB|hpg22z#uFfC{`qS2;LIXTvA@$lliGUxV^*K} zHXmjpTkEPxek~7~btUMJe&1jNO@028`EgJc7|$P&!1NVda|_X#s**TR^vMpRy`i7) zS4Ab1q&0gB+O*FK_8-GjCGs2Y=E$yoc@nkVgMKn7GYew6gP?L0af&1Y`DO7EZc8?D zx^{E~sjhF+*-WB!k{ea3BXqmP7?`2nx2m$dToZ_aADS@2Hvtismtx3|&adH4F6Yy9 zn@`ckC3Ox0AD_9oB#@?E=dmZX~66KD-Kd^MxW(k5-$BhO`(ZSwJWa zoR^hI;l5~=4`X}pttm5wzb8&Ty^AX6G;VjymVns2gzqbiKnN9B(I_gwsS(k|d`0+N z*w1k_|6tcmLoda~0yr8q`xfgA_=PE-#aqOkpj=XJKP4o)T2C#b=wQ+i8#kURrit%?8g4qWPqC@ zp`%~A4pKvkEe<3iw-pedF1VS$!Ls6KUif;tdDexpa)*fprMdvC8NEe%1-w&kQ49JL zA<0dL5v3-;MIJ}e>W4>c>SrLVjNVY5grC9x^}OrHjbcP4b>0BSaI^Tl(z>5SKzvro zf0~{BgRfXz9UU`ro!YPi0U|~~RDfW+g0qijL5Vu4m4)h@N6Z2~w-nipofSTA%w;tJ zKCLeA4f)C`BMYHVGLgug(fXfQ^%_zJ%~u8DmEXH-Th9o9tH7jEA_yAo-YCWw*e#{n z^16RP*TZZ+BtK{hTq}!z*w{uZP4x`k%o&&4+2-_#d?4ptI-0r8`{Lr^Z48tEvs+oC zS%szftWAqKs}2BCu77IMhE*7OOF9H}hmt9ruSw0ex)*wRb*#klvO0SQ?r`x}vWkmq zmsqupOitDbkp9h(umZ1y9bfYU+kJdiJa^|_@8_;7RoLnRMRxl9ZujO?Xtef%gFVi$ zC@7++GvwJsdOpU_FO2{Td3k(^^C8_I$WDCJV7~){5p^oM3=(# z2&&X{IB9AapCSg}XBQVY?O{aN4NAd+)At0lDUj4L8(Z4A1mAG{5+(2%0P9x*-H12! zWmoe3v5pXMRAJnH{Yptg!Wo>_Q2Wte98wF4?^6w<0EbBY83O$QdvmHj#}M8;7v0GQ z=MO{q-;(y#cDKZg-R@C$ECuH0M*;Xie~x5~`zfa4^kR%OmwN8}4w;pu8#bfQz>hFQ zSQJ)4PXYqsXZ&^Kkvq+h zU`$P!L=Y>YFk7MRD~1xcW9Ju@jTLP(w}^5j3d=2Cvz9~ylzj8<8g_uB_@N-|UDeyD z<*q$uPm5iltc+IRmp%C=+#8o+&Y_zzipV>F1ax4XrAqNI!)G%rF!idGov32<-a)=i zR>FymBdLFA?l|_}^Z2b`!Os+{)ZhO+gj!lf9NF!XgxvEiCOtT)%sMJHXC)(PnSYR+JS_(gO>dVDF-~$2f^1R0aLds=RuW;% zKz-~caf;)w{#|M#3!T$|%Il1Bi216G{|gB_prN%@w$M4d6585SRoErwMV_aajdz7H zeb~fI?60H-bDmYRR{8g;6fX|N1v{N)2*CBIrcc?xme3v2Ti^{~oH;EO>bZ{+M+KZ9 zBI2dv>Lc)e!<)qAmt?ElNSrlL9=d;7)mJc$vv^7yFlBAeoaRZ1Z;EZHjFC_X(MB#E@?$#fYm%ZOzP%vS~Cyi=89MmJv&^x}4l`GRsWAaerOQevI9_I85n^0h>ZbD#j+r>jvz-C{d&-UGlZafEh zy|f)^F#^q4M<@tXRM-M7^ZsyFIIQXXVPx-S{ky5ZmHy{UU`y_!Yh4I@J6#*2C3x&@ zZMct>w;uV|cUjM~8JX0Nz>m9VuKU@?*}fA+ztDlruBb>7m?7OBM{upm8+TydOfm4| zwvSP@OR=U3b*{-Mty{Bj;%g>+W*28=Pz&(tdU0hK;~bo=XX@nbrENPjwV7atbEgPW zUhyQ~Cdk+sgA`;z9*iqV%3iT4dmORkki2=2U0Ea~lG!g48$f3fd1IWDF|vA7TFXlG zXC@YrZYpwyh-|=}oarzP+T-u5*3K66i7PH3=6-yB)t?c`Td7!2({OD-59iJN{mFkaS)*4Hb1qYIlHVxuc zEZP|e`sPsJPEp*P6zZ3Be%~3+o(n@%VC;OQpA45n;~p}42B+!Iip3mi^L}$&-(foD z{rR2NOdm(=J4IZTT+TRe3B#G$A#O$55#5xwj#^APY2O2v7Mja_?-uZ`S$_lx*|kP% zs8*)6xu59iYR?`^m5zn2mMg!_C=AV71SWO4dHhz@p_AGmTNvrgiOsU@;ncuvo4-@0 zHK5E9`>RvK4$bmnjlh%?4L#e8crxwgj_4lS;Aeqf%C7&DIw2uxg;unEWT%CCt+%_U zXZ-=>RVlY1$PA0@j*tF;Unrd1g{egE5pUg%rs)IxcRE5bmFVd{RbDbyJ4_|Zd_~Xm zw@Y8g0qzk7K0f2Ydv{aEHL-<>5(e~Ui_irz4S1Jbu&U-^)Pfi8+l9R-+x$L5-%2L} zF&Xr=c3*rpbj+#l(c!^-_bo3L*P^J{A|IEWXpuLC=8t}3Gxr|^ZfRLnL%eF}3xdi- zLee$?1qE%;_EUSyPX$K@v2*Kpo3JbF^}z$}L%OB-jPBQ`99zH82!8M39t%Cd&=dsZ zWUt^`4yv%tW6w0aG1q+yIf(28SXXCf2~JIK4}wI}D3j#Bc!&|(&s~;n!z(=(i=-C_ z+|PfxQ6&;n%@-A|-YYs);YoU?_DIBmegjPqT88v^1p1ikFhSaT;Zy$ro_LwbR^9Mo zNzYhQ6J#*3m|n3FNydIRuuz{LTg8D7xO^nO^Wob+XADKj7r$tbsEv+P*q||1maeqc zL{71|c(O(@{%lIS!M#M9?!R9Z1anA!h4J4904d=9D0O>~M{Kys$yQNYdshc766C~{ z;51|P@%2=Pd^r@u@pZLt^+t8`OQ_y&Lhn@1q&6{CV2jwHvdv&Ce=}7$Pb~ zJn^Q8=?Fg~v4+H$=e4F`o`>jVD)8V<`iN87&3*fpI08c#!(n~Q%u zlmR{)+CZ3mk{97WMOgzxXUSU}A)G3bXx&tRkhjD%y+nuNrsX$q_MaBsTLek}L!D4` z?ibW@9*46lR}P;)l6ihk^$dj5bc?;eMIL)k_np%3U?D#9Q(wViaX|NR#Ez#iYIKVl z%9@FgY7eVE3Hb=L;}_=q3S7cV=cU&A^_P+d*@iNhaaZ4id$T$BIlFewe~V~X7ULN0 z5a+nnA#LRY100{RO1ub4I3xvkPM<^YMdma7azt+PZY0rdzhf%ovCaB)*)hQY*n3_T z>22y7(pBh}70ZLF{@~Bem=?{PSDG|}akV@MZ7gcV1FQ^jXH|vEKyH?@=5(Q4;cX}K zU87x@B$o-e7HmOsvT`)bnGx`8@c4ljnY4OO*`Q(rL;Qm$bO55+!9`0iOx}=VF6U^$ zrK1DA@CE6Xf<$h%LP?oA;GEBIpkflTbwzZyp6)V&Bnh>vhi8 zJqTX>$k68#g>(K~8D2pQk^R;Lx>j|=RM%@VTA2>tKZ=*9JfnGe)xsNertK27+zx(z z^q>nqaP4orU5AqzTki%!nESk@_}jJ`M6r5r4`az&JNXMQ|Mb_tymO_F{!ipZL?HIx zkK>zDOEfRIg3+i@?>@8y61-$jkv?Ai(m0poG$7bK*HE7=@g;RRW8K?h_#BNS7WX^k zV7SnN_&_0)T`asR(lRO|9&oB!uUzmORGDzws`X3JLo4-x<>g=tP8~rDC(|X`3+fhR(##~keJlu)Dr2x;TA6A4A($p7og0qLntrq z4AhNps)>w_6ahkA3@uCe9c73a_I8=lZ%}&rCTH?nLqiquB$#U0IG3faR%}YFj4V!$ zmZf!5?3v28?G6h9qx}Ovwb626_!#W4grZ&Se+Pu22-UAZ5X0C@ zO<1R;6fOO7P}i$%o&J`5UN~Jf(79ytO;cIR7G5%1q(AZR*y{g8&d#lgnQ8AtX4JnZ z15O#gL%|`HPBBM!#9*qdDrWR&;^2rK-d=;O{bB7MWe+zJfy>t1f@B9q7-IgYI){;! zwmYP)&g@%*^hBs_L=J@Btk2M>8{xZO^RYrb*!Pk zHBWF*5;U^(WSRfW+0m8gg}Zu#t74mbIu`F5xC-cUR~VRvLn-KX0;XQ+t}1A-S6D z2t;wLA&oQ5*Ud&AyEpp+KX!P}yev^h{jDZTTicwP?s%q5{XxN7xUX%$8RKUN+bg5< zOGo~7YolIte}w#KAbc*v#BERiS|N_4%HtyoYg;jL%H z54wF=<2M)%H@8l})y8t}TlU*x!*VHr6k*<0;l9mVa_}#G8*N9MUkdURN5#T3Mi*i-@Kfqv9>|sPr`2RB;g6RN*z8pNtoGiU(pr~* zCHQudf2`%z`m9Fzr7A@G2et3mFEuFK4^O+EUO*rx2sAS{eTAZ zQZo=fy@gH@R^u)PZ32;nP}~9E^a}EdsuvA*TaSAdB)dTyy73HG0^$#dR`F(c;1U>O zh9AYcSq*n|{?GR~vp-cXRUk7v`cIdW+&C&Kb-VA8$)D3+#!qezU6Omw}2ecah^knC2mqSWCJ$eXL}9d zZ}Jfxz%y7IRL4>77R~awR+N=dp|N5%Af@-%g#sTk^39%`BKg^$uJQBNF_Fk*CCfV< z7ZJNqhpdb#r0;7W`fKh>iBUE$F|jSyPhLN~yLGqdCYLKC!7V_5O+i5dG2xJy-|O5k zsqDXG0=jNj$oI~t77?YU&@prKh0dFPxmJ177|jaj z?*+XWlz$S)_V+f}|9WnlO`75Ui1Cb4+y7a0owd@ydfnER|a-~|QT^_K81 z>SS!(w`fJZza@Val*&`#C%*m1i>PFDAD@<>1wme3S{5>U#I*@B;Wu5-x3JMWNMwH}(FlSw zLV6kIiVgaB$*=to5U%aa4GGW}MsORRO?%e|Y$gRi5eT@EIh^m5!pK9ZICa;48r94k z?Ejc55SZyQT+W55j4u=;5)Q4zFB{*%!N#oZ4k3Zgic?zOEpV|}@3DrnFokl#0)P|v z!mQNUa6op2RvZQP-W|{fUIo6AL}`++bUh04T&&A|5CM*}rD!v7apb`6WN$utvBXL~$9-t4WroO$kc z8;N5!)YbKZwumVSPfdmlTR42C{0TA0=ofjFGdk1zp_(Y`k`8S1EX(X-XLT1AtARQZrroE9dIOp2nVPNyAXE7^FuVy&%sMoES^+QH6N5V*o$L4OJPs|5ymxcgy@!nYVr$**Yd`Y}KEPo_9$Yr@ zHWbT$kEF|^MM}O9f7MM8mEGs(d6!k4#gccy%b&V_Ii9Uaa3Zv?k17>IDB&=QNaaf; zQ6lRYT_{!Om+S3SDy3`a*0?NG7BnUj>FyE@%jq*M>-=_z2TrTfaCNLi=s5zfKdCp<;d z06iHB-|(P9>nyM54#hFI;`{c9n~c}*h=RNl3arX=Ry_iW5q>DPZ3+sNHgEe>XRk~%A?12=cR!z=OxGk2_M$4L%$ z?(oIe`j9#;!kKme356=4x8SdUM3xLM#6LasA%Uwf7XM1lsN+vZWJna4q-Rz*+1oIA zoxiY7l*vv0Z}M_2cSj0l>u#2%Mnla4UoF^2*QuBqzUa3K$wE&ULjiAI(|$P|>0uW; z0o+Pg2Fmy*0RcsB>!*T7E=Tzq+{z74#-Hl9!B4Eb0M*O*i@l>G^xpkvsLdy8Foz%vN}Y9${5-vsnj0eo(p&5vA11*TpArPT?|CT zzaV$Xe-#|%`5i*XU|O+KVA}$?CL43&Jh4vu7;%kwN5|E050HzW6tUsW=)#qyscKB> z_L*t^44QLq??-ONrhEekrP3%Tt#Fs1Oj<~io6~XG;}Ml6Aq$fAg?5|&_+jc2V$pPti3++{2;zg{AmHZMsz@S+m&IM9RL3;e=SdQN`Zgr;WWl`I z6RDIaDBggp zL#mM@3j5;#eQ_rS;z*1k(H*~({)P<^<0nL&Z=LlT^eWqKMu0H49-Xxk=LFoEWSI*mH#-20lV3Oc-w) zcqFWSz8&HDUQ5__+3;AUARx|?{*i!>c7_&PBvWRmp9r}hcA3oQpU8mSl<;@QOze5& zzw+G*mBgGgU__86C@u2|{w^QK+GsCbf&f7k93*Nj>9n$d=)8zLxkeD==!9>u?rmj* z_`VFVNM0#TWEWz87!o;EWzELbGnL48~+_bCj=)PI$Bnc zZ01TkB+=eB`%Bk&U+Rn{UH;th{3LKLVe1=uj;lxqBY zAh+-8+w8bHUA@>T^s#zbD+I)r%+hrV?r`?lEUD;L0C=bLPhPt*Y+I>0^y3a zTS8|XV}T~yj#?w`X!?xiIXf{hj<%w-ohhU|Y)JS?>7U`#u2XmD5(4Edxhl-ui`?|#dy&5*?sUrNrW+EH4DUSN<%CfH(&N2FILC{xyvTzed=MRn*jmWq`5A86w3TB| zJVDXzaDM(GBT6tHR7hKGWTVNbif~zhLr|;5r~stW7;8xjh?OXbcv3LY7^g@xRK?(1 zT|yPo%~Rr$IzevHdBV9DUgiV8@(HX~*lvnW7MVG6gz;N<5>Lcv5u!tlFpfr%5Llp_ z;73OBxuHH@$C(u6JX2AfC~fnNzy2$t^Cx-lr+$T{R+CqseVo}p{v!^4=);WNelLqI zK=tzGymJ_5X(t_=Gn{zxY3_UE5lAgBzwjIfKJpM>`}Wt^Y7%zde?RHW3_+e?t94=l z(_u&=6w(WtK;|7n2!xQ}JyMEg38Wu{PSPpUR5oo|AyfbHKjLR*R*W)Wxll_y{P41= zgPJ|h$ovv5)1`LrJ(um<8Anm%2qmy?a3ovo-CGjYb{l`>Ncp>c`v#w^wPl|1jvZw| z*JnPntc5IQW^k9tmaSH^V8@O(7;h{eznA(j2p%Y$!&`?yaQ^J;jE`>^=oklUyT&C) zj#6oim;EyUflx4WVWmBKW+Lu0pFtiyiVuR4;O04E)21~IKme?lno#5^qk#iw zNxj2YDp2ngnn{V(66Zh(f$5~^D8M7gO##YL4Fi;u=&UFStrX~LKt*ecg*F#1&T?Si zeojbTMiK_xudB&lKVMgRhs!d~%`LEL>vl3B357ydHGu+~bTOesj?{VA2Oi{`U;ZN7 zCbsaAkNh+XqjgSqJH(?E;!r~%D4f9>OJ*`+Q6VS_B0Q=QQK?i|>~;`wNH-Ns-MW|8 z&Y$Jtkyn|HB_m$pF3$78Pk)Njd7J6+ac1)j?;T;F34@3Nkj7ACmfTsIh2i^8JxMY@ z&%C{y9DB+-h%imrE&@)TJIC((ZpRC;oV3_a#dxb;7;hJb=u+gj-zVsYB0@CbKkxm`V_F(g-jSjkL|k#f!Z7 z^~XpfjVTQALdwbKUu4UB?_=tb2VpWmdq-z>k>;`%JJ34j;K4o2{NbN-_`m%H@1Lk4ZoLC~B(`)S6S$E&1ii+rQ^KU;Y{!Z`(ua4E0KbvrisEBI(R`X{HJB zyY3>`z7@1W$x=jATEDKS%JH+u*|%%o8_CovGmB+}A+o2;(0t)pUjKLh4msOo1A6+gabYJ??a$(yK zl4lzP7eyGMK!o5mNjK%SBQLUP(>97MC(AOV7t}`UGzJvfWwW!K{p51abgf_5ZG9UNTEOq&YnNb zp1rHa)2d_iBgXx4)NU@2bUH*;QKsI!osnZ9kW%2R!SwW*vpB#ziHt%r(*YIWqZpEc zB8-^N5>yzFxq{eRCZh`a!V*%C)3p|lpb~`?ofZ`z5*H3-D4iLLjM#fFoOqpFDCFMT zD73_{anXGuD0}(2%0p-@GslkNH*G{uZ=|h4l(MAFCXp)`FA9wFJonPe+_HHq(>r%@ z;n0hW?cISscrzR8o9JeSEXzPfWuc#fYOR6pWNfO$A zeegZxdw0>~ayJ?$ESbxg0;ZNS4!!gu4uumQCqysrdL^R%R*l}?4h+fh5JL>H0s)>f z-Jz-iLT^zsO;l%|>Ac|L_rJvx=Z+CfGdn0e}D zk{1tg=F5+9a%qWZ>n6;v{sTsL-9kJuO{OBSDOr}%E;PD5?^X z#W_h@B|6Yk{W`6``wH{jf=FZ-A#g~FAS9_Y z5bwSh-giI8UO2|7BS(1u&;2yT_6AKkO?z~K-T(Stl2>2mxi9}6VV2<&&(f2BODoCo z61M*0PcyZ710AWbfx<}v&Lf@2t1EwNwCCnnoS0{9bOQN1zf(q7FVz^PREJ<<0-I$V z`ITSeylW!sHFmtOw0-WU5%m9z8#PXQOLxmOjeG7IxD9}K^wH(?3b88x_tI@k!xWGF z=tuGU_FblCAs%?(jo;s~13vYsH@)^ZoW~`{6Z>u@J+O!7RE=DQIO&*cHo4G#0p&!Q zCu$5gRd1s);QI>~&++(IKhOSu_=}8Z8ct{_S!+^<4p1 zT}PHB9KLW0X${V+b$B{n9Y`V2QsT0dSSUo^MG0_HOcJ+vT8(N9NMPnPLoZYoZ_qBV-^t=a6PM&nEzV*tG!b+2)MZGcI!UMl zG#b}wV-3uln@4}|MGj|@egE{=2@md}`v-r?{O7)csXxZ{k32;4-rFfsLtBM3a%dVy zmkvp_M&*tJWZSlIAr2|r02fwSAxSDw4e5|D^)o+*-Ma;&!?><60Fjtks@36xJ+Q8?fmb zgYK<2(Hetptx>+Ng24g%ShG{taV2XM778ISSOO2E8Rq;foz^1Kd#1x0(c}n~kp}G| z!_;Cj8Bo@wNWvng>OHkACulC==jNHeaFJ-dPUp5;QE`>b3kn2*Dm63R=^2bo7~Qmy zL~5!sq7ahITTBer1_Ve#>+#-GNQ=@MX$p)jKuUyEBvK%qCz6s{niIbIDqUw7-LZ{} zB4BBD1`TZAun8Mh$r0pXK%zVjfzlF{6~u)>cuyb&?NC#QvWUbfNu_XTDM*tx`N@k+ zZJ0(!0nG~JRucvqVRNc!PQ?q91D!g2y9Hr@Eebm04f6U3T>(BQRRX*f2&?gGaPil` ze)1rtWaswXY?!)SP2f^ApMIR=(39j!qT-lv`%b1Fc=)pIj-NWp!iDo}n4iPMF*iN< z;VV9;L6|%K3NFi;+PfdIhQfq5hU~;K;=Q-LrDFliK6i+PQ^&FOI;~oL`MKzYUw$4+ z2f;{{J8!)_t>oOxhe(efrx+WfDJ8No!952qk5V@eeUHwG*D+F4+q;*s{kJ3K8mbZ( z&N2U;Z=gmenSS{4_B{XGA(px=+FCO*InK?y-rRiT&ET!2dHyU%&mS*S2vmTMBM$Dr z{92EnKFYq#;8aE;ZvgmZLf z&N6rSIH8wl=kU_wyvG?!ECpjrhSy$vo;|nS#^Pv<)e7S*fz||R%G}YTv`?L6{Em!JOv5B}tbaR+Z_?3P=&&}vgrnrU)c zhmUgN`;XIk?IdSx&bHh4vEiZj!%a7#MF<8s_A>L29pc23&#-Uf1bhG0Z_(`}geqk2 z)CtbLeu{$gx>U6e+qwl`ewxi1Bjq_uHs$!W!Jjzd2FA>g0Gm z7^F0DSt9!nv5&RL@p^DA$?>(q)o9P_4{xUCaCsjNYKvYW?OTIzT=^?uz2x|<9&Zh- zrMe*n!h5812xDm^hCJ3db@@5B1J80iz$-way&-Zbl|ldx=?qpm+Cla5%Rr#5rcf(+ zY=Mn1Jy)i@cZ$lFQ5e6L8pnYC8_jyIU0z~(q*HnUqQHm>4uKUCBOPyy_pBgvmO}N4 zN`SzYKRXGvUQo>o=mzBrKv14%WP4pCATA_c=H;^#up%T=3L^xlR&OT(xC+R@(qKOb zljBotoZd{H=U8K@R;uJhhWDN*3Q3n1SUPbGCp^BaI|m^MCa2l3c^lSRq*g4n7CC$F zG};LwSGuw_#wMBCyqm&Vlu|UCOPC^OYGMkLXBcORDplI;Ce6+gTQ_XST8mPeW^;j= zbH_`aR3!E3jnwKR#BmjqWw<24W;xl+3<-vKVv?yX+euAEmSzY9!V8pl2+EJrF=4ev zcX5HV(`I7pc8oPhT^{fJ*^|rdVg^Wz^$BvJV0>hpEgQGtj74fmv$ep*(o9b7zh%OIcX~C`n^-8&Mb$gb|e}rpR*^&Yz}eUcd{9LsJ`@ zVsh&a3TIGC(_LKP;^~viPGm+(M#g&Q<^w79g* z`FMh4Y@CHWrzsp$fn~HXxHD%^UpYkW{deG}Mmc@z0&33=biF}WO7HlS;h9?fm@fsMC8-Sd<<7pj6&slwHnC)3(f2^Wu#;xaC;ByxrF7Kk0jIBt*IN zD@3n)S|DBN+$6n0ilme+8xYM9UgBg)YMm^by+5*|KKBN4T}nEwu3vXOzHLO0953%P z>@DvL5NW>^N`frjI?0fjRpVcQS2&sDge{4&P(8C(No0$X*ojq|rCuVPMEezkT#G{B z@xt})A-9}UX{1;tl2A?{r1!ntLf31*a^tc@Zly3MwBQj~sorQj0~pmsdWp0l$^}R) z0!KF(u$1k4?Ri;S435MLU-swnb`GqNWsAAez@dLWov>^HLHSFudYtqcsNe6aZFIF; z6)6+t{+$qb$`8G^RIc21`8_Kvu9wCueAz~YDivIu(7lM4M>~rhK!VHf47eeBW1>Gv z>qmI4yu6Ldwv+^}02CgH6&fdt^6Y(Y1bK<~;NQ+FD*@IEYR(b|5k=M|rI%$GXUHmb5vED^>LX<<-CFcL-t)~^JtDjM;pJB|&nrMFA*6b`qp~~} zB|$6azJA4&ZjJpeOAt{KC?m^DEy)ziguY*u-rwE{mR}6gL!W>24%;J0o)y#8YrD)S zeM#xO7r3$#vPVi+Rg(L@v#UpWhY@Po#6aSZuB3ksf$V>Ob;W+a4SVF-Nr$6P1|@y^ z2rK=X>Xpe&zhI|7%+&Hf^ek#A&o3B2{9KRpT`9a+vA-3|{U-5YgMQg))hlq^wJql7E(5+O>`rUYL2WfwKI-2RtCTZy&;BVF%Y1xBp#uVh*Kp+W3Kx%VxXOJ=~ zrQM9dx^k=+IzYMtDFoR7$wC!H$Vz||u3RC@J>71Lx^9s9kSv$XR%=wPM9CVWA_<*C zIEfY>X#-MO;0Ca(vTi_>&j4fb&S9k_H3lyrPzsl4=pdr)Dg>aOh%lhAj*x(H8IopQuofdFEia%}ClL^(IRr7ejIb4nHICdG(zHWO1q4PD z$^ahF6mZQeK6YlTV>E4O-7~v&ERrP+OdUO`#Dt%Im=-IzYBp%(%;VsGW zrLJI3_EvPf!lTN5bOI-fWldb!i{464xdhEho0U=NGP++zg&hcozz$q>5wcuqxV$X} z|H}8sX#XotuuSs%ecO+2dkpvxk6vk2>6Z)9`sdt_!1oEo@|;Vsyb=PvXm)?>^p4k$ z!ml+?6JFwxTIA8X; z69Uy+8R(zS+Xe4E7TcS3mI^Xiks%3CvOgjBNEMc8PX6-y$~jM`$dD!>)`BpI2t-7Z zb_t>iAs(wEa+?#xn#^PfWVxb-#P>UF(D?yUsZ#pU_ou<0D3S=N@eZ5_F5z-+bF1q2qY!Q=%h(pa;ORjl6RyPOWI-dKGHFSB0(hU9pNA%=JZ zES|uFLX=DFQek_M+)H6(?@cRup=MzSoJTrCF3Tl+izBcKAxQVEw2oE6Nr^|C{`|B zxD|;e1d$W04qz$|29K2v=_G+Im+7T1JzAt+MaXkKzgOgL>UG3!mmX9dmJ{`2H`@469}&WgOv^=eK~RJHFN*EmM0sI zWulg={=B4@RN)QEOC(@c-9p+yJ|MT>BXL4wWSIt2+WMAiGM8^F1`?BUlG`5#E0ell z(3*2^5?ICo4OR%G_ZVRjUf_G_6iycOr&MnjJRT!FDpVL(;JrZ$5Vj@rXPu( z1+&8$i?fPqSR*gMngznRf^*O|1=VVecBf6G1yV@77Z_Jyd#f>8Yh-3HNMsz+bp=X* z%7EOUBZ<&uaiY`#LWCG=F?oTcP3p&xA|wnok`!Zdq*P40fYcONDM%=&`*3;n@Jf3H z4?>9EYLUVsP~?Lf={mq0a*o%Nv$`Ie=&O+fyw>s7lLNe-bJkbE#^r{|0bVP=bzL^f z*D6Q07ooZYQc7%Y2*Q}$OVT`JbZiWl%u~1!uL7ER!4^?207(UT$B|cJ3h#*takfb) zOB>D1IT8(CX=DMulQJ?=CrP>ll?v8Myz^*f(Rq%IG>PzNsnISaD-r@FkB4y`(hzC^P7;X#>pi(i@f3{5RZ{Ipl9YM?nU3+! zQxs(sEyCeUf%XC)hh%w9W(=VaNMUipmiwbX8&4#_dXJHgFsNXh#iRu|k1x6yuc%26 zCMT5|?HyK>u~9+qg}=trGti16OQ~5;H4aINl+1(gr7_UU{OXnd3^BwILkw}fU=6~% zt|^NEDb;eCkoBGbiRcwB(#t8^cuHd1Mia|KQb;xJ?~s!|VPBoW3+3L}wT5eP{wiV2lKnu76qMB$5`x`RbxanjjWnjo>kaqRqy0Cs};_WyC9I>1Joh>M_;v2`W4H zvUp%Sd&W0#=xwF;qdBzYSZ zXhJOsoI@Rc1^e>rWV?3}?bw8`Rwjyr_xqUlV)Y6yp zWd~nhWg%gtu$=ttAG3Jub?*43UqIh+J2TZ>33+Lkuy*5JTK}kV2GF zY#xmDNCBboNFg!C5NM4Mg4|lJSd!w$3`24}#0`nu%`q)Q#=r3l7yj#CaAI+R%7!US z1X*i=3Y4K&`hakUD2 z8{>@a+)J7l$VP)e<)kJCr3rJWHZQRB?eDPor+-c5mw%D18y~?$1?{k`PFA@kL}QCC zb4QQx!gsz!{nl-SH{VQ8aSYp+4!{G&X=VZ8@@iw$~dY4;C}YtgZyCwNnqjQ9Vnh5^O7 z3mpFZ7wKL+&wKxek5PZ{{bUgcDRC!W=j7i%$t%tijg0f*pZ|w!X&Xe*MQKgBzQk=S*HOQXipNj$c?n zq#4Q-C?}|e724hr2m#iV#tTaH9)g#rXROs5gKy#WZ2eZZT;D#*VysdP0q@IVOn-IM z9|rDW7=?eEAePmj`&Ft!h&5fi26fANM!;IzzSaF+t$n-`a6O*$TgO_tzHhxX`h|Y0 zi|zVvG9?_|dAxHV6sUf#a8DgZc!cywzalFrkpv#3P(+mqA%bcUQST<`r8Z*wHj;LS zg{38=QvH*7%hyrv=koR#WX!W(4BW*!3r2q!Ty=8%R`XZZa^$;K5P(`o2M#*7%Oskv zHCAbqUcts!VYYD<_VHF7;nvzMr6sE*FSS_l2vHE^Im}-~y?zpX;AZSY@8kUD&2%C~ zrLl8;Yw#snZTYStq!b_fE&{8)wXjy=p&Hej^@9Hy{%G&XnC z!YWE@3fhFKbUiXf73meWNQjK3>jZ@kiO4azAqXlIuz%eC001BWNkl+?QL~04WB#dk5q#$&HxudU=o| zqMc9=tF%->vz?&>jShk(J)C8k63E`;dylI%-b#R7xyC6j1ofRX(oD z@z&aQxIB4P;jLYM$_XKsHI)ZFO4d?WSg$e2APjt`twS9{F!=rOb_ap32Cm0*UJuq( zr5NbUX&E#M)}w5(dfUE=1PIWIz?VT0gvTjO$E6ry(V~vh0;xS(JA4;x?*^D?jI%Xp zAcY{7iet|_!Lwiad-4}vqS0!y|Brs3iVm4I1|5e8CHvFQw+7)60|vRg3S@53F4nrI zt|o?Q6+>L-@IYUtOi)@FE2N2WsYH>W^&-iX;7r`Yni#oridiHlPG?N*+Q$W9$fYOB z1PFn54jBv5Kw?8dGxjXT601Qdjh6wwFbL-&x@F&z_I`H1fUoQ$2HmL%;in>@Q&Y;BH<&b`_YhLhncl%| z5C0_RKK@bC&|-rehobNmGEre37-`M3>6ICt`cJ=0I5|o6fBzRmVTJA*8pAgNtjUo` zmXssV0hvi@WFZ6PaEG{VAcVm8Rs#CO!FvyKSVum@je)*Og!g_`6xkt7L5@dyO@Sme zFd@8}ALb|EUUgoT6+5!*$K6oUNZMa)xQYW4zYmJx;lg|XK@40|17NREfN&f%Ah9?BnFIm;IURjFV`Mlr9RVdVQSP`mRU zvYKM?;tXBm*x4ATt2H*uQCgrWm#dU3-K0V*Fjf*6g>teKzIWg=gD@Vg1Eh9n9Wp93 z#yfNfMg}+udEXsid1mf=?gj#{L8TJ6)S`3Zb&So)TuuXvPL^oCc9PjRXGv?e{_-!e zEvWPO=fA*fU-}#B_ufIUb0b2P_P@d;)UoW8iu{!`JoRUPfvbn?{@BA@s8wiZ2{OF$ z$no_CDHTB&LXskil<}yBu#Ws~HMJe$YGd`1bDtzDr6?H6P7QHmz&W=(30#JN97~`B z^1@(EPDN=_FY!UdhDu091~k%~sMR6)_V>7OPL4bh0IW z>XZL~g}qx?=(d@foFqxpA64hPElAUZTXyVbv{q++evVV;&w(C3^si@FXO~^KwAL$; z<6*ZBaRXs>)L00C5R$?d;2m0NYSkJW8g+DI9B;v&KS}z;clp-e{T)ZY`vmV^S|n2u zKk@NTApg;Cz|KvGu!@T!&S&SDCgczP{qON!+hDVET%4PQC;%leX+{`?L&b^#7?R^5 zu5Som5>Tgm1XKW;G_({`6)L~-^K7Y)(tP?!#4}G2KmIKi|73*5_HFosceCx6KhC1< zlIVcUX}pKR3#=~fh6^dkG-L{l7GjZlXVGylq~j9AM=W=JH|$H$0oxedK}BZ>1g zI~mKwxUbRX1L{Jc11M?=ryX%rLAnqZ&5+MO&+He!L@YYo{Hvd0@s`^-x^0?qSJ3LV(DKHO918&xlM_^z z3ZDPs-*W5S_po8(2F}l2{869U5N`n+H*BO*sSpGKS(Y(BKTosSL`FC6SRUfX3#&=7 zl%+w35|TZ^D5El>q9ol5Gt4~pUBpYzA&(rPbK(r0`X+Yl+sD>_^e@=;;JcaFwVfrG zF_(0}8H%h$x7B20B|^P2!^C&b5dRr3ydH%3)a&W=LdTbA`nMLANDQ;V<0{8k_vJ_q*ZAj?)z2zuW zhA$jmD7w>I2>!>9G5N7a2wcMX@4rCj>1R3i(o0M|`5XJkRrg`PVe&7nxR7&e)WZn{Vc((P=jB+(@7$H4)JY0;INh zX>le**fvpA$FvPf$56Bhb%s#}6-8vmA=)`A0?y|M2X!mi zoE2RB@)s$Jgzb-h5`Wvxv_?m$B%USLrW)1|xx~u?C;FNmdX0OsPvkFc=qn!=qGw%t zDV)4EX%2yfTH;td`7+=8>}R=S>vp6bTXXwsWsiM5;_bHM9)z`uYbsI_zVa%E|F8d> z1OMNDp}i!~Lg47VBYNMlvOj7E6i2P`(jR!;tDmbzJH3 z*4uw;je#4*5*pSRF9L$zW6cAm*TDTZrhS2P^D`8AjuF1RE-xtBT{cbc;>=@z%v7yl+kNln)!7-m zge=R5Q6(w%SD~-Hz_0V6;hbBJn)g40@T0PtzN(Sq8|Ys8F?dnlIKAaX&jYUahIK-s zBaOG73{N^aM(Sc*+GgvA9wNT|AoA#OF8-HTy^uY(=zWXp+ zH{dE&5}$LV+agJ}U&yd8Bt#Y88rRlfy5*#2xqCi>k)hPWg`U-j}(? zKcazhJt+GO(<+9zuHi))kt}U8$~UGHg4E^&D!?hv>B3ME5w(#~4(Ba4)pinAYqU3Q zWAfMw$ho<}I~RQ^9n<@i$LrdFiyOD2Hf&?T7)&4$%8?rfa)j8mFw#>{(t}qmVXTnwpL=|N<x)v$qem*FgW^Uh`u7mV5k-=dTLaa2NDgiQm^35QAwd}6 z7urN9I@W=@Q3mc1*E3X6S}%Jk5K5I1e<|p6TIe7GAfemcE<7W8eN2%}LLv3sWi3@l=li1`eKAooxC{+awK5)y* zuCDwa5-`@XecNW5fA<8l^G&Ay$Y66VsWmGZg@Nu!b(i01G0J*HM;f^{H5?p(Wxjh6Ckw2baP?^ z9c6J?rmUpl6xK?T)U#lg2=W$H0TPd(%cKbLxyJ`_DNCgrXer-RTfz6j$sQ2igM~cH zktk*=HO!VBaNAzSXJ&c*@4rLmPyd7+zw~o-x7^Kqw~37|-QoJ$`JD_0pcFnS@Jit$ zi5y^hGQ{--2gp!imBL+Yp*Kxq@&dw32lEg^y#26|#!89twoJ?NW%RZ-u>qYKTwbs_ ztg^E)g_Q~2rL*w$GnlV_o97QbN!o35a*L*R^By+*pPz>NAD~{_L=aSHpPl2iY?02{ zS)4LdF$6&sCnB^1n`S5=QW0HDNiKaaiO74#!icF#%*C&KiP8NxW8QNov$IP-+6KD> z{XFY_YQ;M(nmi=OLtNJoc$Bkv=_z%D1=vF4)B2;+#3 zF)%Vl?W2#dWpSPto_vBWTPIOJyPaC3=s2|;`S!kyLfjof0 z{AgjE!-WBPAX%DSpt5BnP7hyML%cKK3xhxq35k*dB^6RiMgvVAhM@S0GzWoQ;{>hKC>6Y7g_sv@=lp>V@Ss^%m_B5R|L1~Xc5XB1N6*xm$IG|;Mr&j&b{&q?;06l+ed#EF|k(U zSgw3};?%F;K! zi#>3V&HE0L_?4nF-y_LyzwP<8LFtxl5ylWlF;=?La&?I78mTD|wHiLsw3k{`oI}UK zQ0I7vcLX$&SO-+&3S;#KwQ7|pj5z*RpX0Hwf0Ng~_kC_!>~f$s!p^<7aL@nrKO;YQ zKSUu;YfjD0Gv7|BMjG2~Q%Dfi0HZuDzeFV*1?zFnqm?3vYjoNvX*WS@jZ*>YWy2dvZbtT}{P=r`dW#ORX^&@3( zWxs1-&3z0=cll9ONM3D7q0l};;z&eJCM_C6D4RR4eW-Ym$k>%Q~* zoaHY6wO2HD5FkN{;3iTOMN$%FS(0tZW6RP=UM4ef9M7a&lbNI{NmU;5lJzYQsY+F9 zQmL65x$LsXmNb&=IFc;Oq9{?~BJKo0fCLF*=|(qt|8I9WOCIj+1;G7l&;me$oc^*% z0=I9UdzO38`Tlk~JNL5q%O9obbDEd*_ZIqIv3u_!T#%C-xet?TI50)33`u*0+Q)u{ z6(MLgV~`GQ6j7~CZ|^P4J@#uHID7!psMAp)^@l#r!mhKd>=;7?mStIE$6XJw`=9*_ z-hAd~1ZU3^95_T=Z{rAXYr%`_b5}K`*Y*y0A+crPU{PMWSbLFMR1}d|L+lhzN>mV% zo8Hy8U9pK80lprhmZuqS#2_R3;=QRkey0zKVUMd4oNiS1f?*@Bc@QdMW%3r%^T#<@ zdl;OibFqcntK7LRDeSrV`VimH zn>n+E7LZF{tfLTwPGCG(R|Ic|CSbqL4gwl9Aum@(fOi_3B*YpD3#q4ugfv4bOW-41?#ZKwMn7X$;CS`xU*+OQ z9^mjTdl@WUq#J}cl{VDf^MA=egiMP7nSrzls~kySihg^=+D4@)w7Wr`F&!xC58cnsdp|(vuAI-YP?AeY zr|!|8+r`8uKf;QDMd=wdN7?nCf04{tE^3XH9*LnFz{tI~@xUF2xfo`=?G#ZI(*EMF zaxgQ@2LY)Huqxu^wqoQ{A7k&wA7Vhtxu{NG7X=lh_iJL%4RkxUrSF?4=EqAwP;V9H z!N5Z*JE$;Vae0Q(+T=ApPZZfWk{lfsHKVs(j^F$6-jFLv5-0{Ub9n2BYa!ij&G9z2 z0Bamh3A~VaDM%FrPSSFc#2GT%M~Y&PY8#ITV|p&fr8#w@iIu0ZdnaRYgzWUu=Vx#~ z{4Q_&eqLWdH8!+DAfngZTyIgU4QI>u!vNq|kU2 zHC@AbkBCABc%09XDgagFNmT-*7f82JMexR~MnS+g60R2i=4nozrnKW4D<(x6$4ILM z!#zr_4&D<;Mbhn4k7}SnSbOb8iEX^A5Go+U<7y$Dg=LhNXv_AgwT&&oBN0M^6h*pB z4<k%5_AVdgX?Hz+1u~LOG8&28RTv5I#o- z3M55JFfGw8C<^d7MW#VWPe4+VzS0*Ni68^(2r|i_SqJIKZBFPan4geH6hUek)HNbh zgsU0GW(4E=$el+ig_54UKfnfHg-1^YSSN6yCg^!Wt+5nAAu7%&1A~9<$P8#7QowF)o}tLp`pO$ZKQA55 zEP?RU!hlg7peGIzx}5&PEOSr%4M(5(8JwSH~)9^Au&4?T?f?57z$as<8i5dA#o zeA>qjQo4(Cc;gwwZPL^esF;Qj$ezInL1HaoX`>Z@vYzyM9JfM(^r*ly76yo3k2juw zmd8Hx89GwZla4%+1lCblI=68(*e1vCb0`teP@~*2I*EPeIN1{~5t}Z~ua@75zQp{k zMfxuHc&m`$D_&y{-dluA@Hhe$gN_iUi?;@ez*}D&v|)@l4ssBI1T0!OAi%i{AsxbL zVjtnLpwr^HYs3$M(-P@($TMQ$kX9gak8jkj=$de*$j=-?qi-NJ&x6vp6XTghS|vTHoVyi?78yD9u)7{%|N8qR13~b)FVLHxr5j`{tDIYV4f@-1 z-$v3^&NQiFT>)lxk7!XbpiyR1kb;|)Sfv@twNl0m|lvI67M9DlH{E}NI~EQMmW4k(MkgXlV^omB=4Yf2uNHf!DGPtbsD^R zEoH?w;<-LSVH;Mw(qbSyCKt5MFVK1ZD2E<9f;@N#j~!BWwA#`zEJ#QQh0B*{1iSDw zN%b7V$bV&U)6j~6?{D1P)>cVkJne~n^!k5~NCpV03v1Kna=u<&B7|**e}~C*rKNnx z{#hoTxypuzw6TTfZ3RQ$i>kdr47ogH?zd91+*w;#Im?QnYx|Ry8i6M>IXVb%N|NV= z@T7$x^s*=$mpimBYMeIe4aTAxVeSc&F2UKix%krSy!OUhoIiJ->Fx^m9ln!^hd;^# ze|Ut4@3@U@w8=m#x_L^{>#}lTy5I&{BcvwK5-Am?EFCSSV$kg%g)A&{)`9Q{D=~Sx zzUHDVWHW4?e8rjOhge^|3J3>%YC;f1HD3SjcR8?oCvswf?qCJwAj&-^ypem{5I2!) zwhX^}xP%+RAk~G;WI1)*-Y)rzxt}<)Kgh68sPUZF!hfpz8Xt zU3@E(H0&c8){m=(7!swhh4Fb=-M?XNyrb(Xs*@5Al}xrUpFUSVb;gUSZYrPkj{eANt?=U&8xaNKJ54LjNZYiAEU!U`9D50;qaSPAe3Zaj~ z2;(fdF$g8mN};7DOL9aRTx`;mL@VOBR;0bOmi}rV=^VFA?Z$e^j-8W4alqV5ukzwo zzr}@DeukVq&8}|5p4$%d8=v_U>Q_FFZ|_4iBUYB@IN4joF3yo>23;!)&!{3k#|nq= z5+QW4zTP85QP4t*lK47T&Wpf1S7wL0x^J%Xy&dwxbkhM7DkKt)^A~2BdF2%z`WOEk zuOuA{GK0DZ$(6(3P_lY6?M$fvNQ}6BCmaXWkB9#XnV_TW0J*&Vysp} zhBX*mYcw7Rsfs6d1_Y6YGJmG??)|o3|3?L99X{~XMw>)P{GbnGqr7(mhqnQcRms8( z(I^`W-XVp+0jam7*5b9pNJZpB0^>Q*6@-0=>vcp+F)}fVAM`nY`Xv3MFW`QBlI-Qz zQBKf!U@wP1{2-%u{b$^A?-9h*4pvOcT-L`foWib3R&5TofJim)gTYO`kA%*$62N4u zLGLdg=ginBzx0s@nKKzlnn0ilg8-ZLK~*aZws9r4$?^Lf8bK`sF@PX(5XJ;i4e0}9 zCA+%vl^DXqws=Hs#V)u-RBDcgwCk%xf?=BD3Qd%M=kqgG$IbbojPzx&TS!)}RE6p8 zI*d=?D$6$yWR7l*kf(+qkp!tnr=GliZE7wh6;60eCqdO~>n3+UB**RbuqIv z{0Y2|~@_8a07ZNpPOD+hrt< z5g3H1EZwk;_YedE;Vkub3uPSXpifY%LFZwlk!XO6gX{s2hFf+^%(e9*L_EyaG`}q-ELA zC}i1XEK7II8P}vN3Yy44UXpI`UJP{)+14DtH&E4|0hqQM%#7j-ZkMIojTQIv7YGrHbV4>aTsg+n`ua}H@8 z`Aw{Jt;L!VLSFv%->`3Lgk6t*jMv{jh1IgiawKJuok_`UkEAW&7v5>MQfgXxQSItE zM7Oh*!>g(vatryjhkca8@SZCx?Ho~&+_6Ys6NOkQ3*BC&67|Yg!V6bM%3gNeU6&+{ z6@8G^*RKHJKp(%gT?!346dL4p^5ob5a~Xz>@7l+Gtpv@xYVEA32tpf168*3je=9!6 z720)yKvlF|vjS;7T1%`QP?wI(TLx9*pdis}>$EloCpY#IRmQt0W2q~}#g$dswU|zp z;nAoe%TzTVL)W89)gr`twE1QXb4S^V54Tcky`9bDmKB1`_3(Y)%6qsKAN65`TbK(!B)y53TR6M6 zVB3(sDu2OxEy^n(w%`aSD_qLlkki>!%#jd+KuR)e5u$jC$#Q}~;4L^~33UyvRH4fV zV_Z5Yg4nd6A3HP}mwMuUjz-aLwx~6m>@Qzmr=Y zeTWbLPyY>#+mFx>6x}3YVRePK=jO1^BBZ46^CFXkl7v>Fox(eh79LZ+k3yE$ZIPed zQHGh$Jcze6#|>(XcN=w&oce>Kc)Q- zf0seFN>`tL=xNnv`sb&@&_sV~cHEH8unTNYVi!_q2p0 zl7d#VPJ1+_p5*AW=jcB9HgCOgjMq<{;{4o2c24c$u7@7s(3gLQBX{3}+`p4mZ&}Pz z78aIR8g$5=E!I{Dgi<&G!s|`M)Z;~7I?`P^cU8(Z&!xoHQ+gD>!v-i%@tsIf{>2rU zF?LOkF!=iaM>B!lk37ifvuB6KTWsU%u}zM*v5j{ae#k+0z1prq6>%6w60h|j7p0cw z3fQV@fx}77+I1=AMqkConIy_TD<#PXDPb5Bh9MnmN-g3LP1z7FY&D^%xR>f&$-~BB z?Nk$~bm9^f=^Q4rOeXg1dDMY2#*EmN~=4l_B+QDp+q60N_F0QtJ z!!*Z3Ei6@}lp&hH8rKWUF1A_Bbs`@(dvbZb%T# zR$LUS$lUcX%MZia7=;j*{P{*@NVy&sjA8S6)nwIEq}{s=QVG1t5LV#Ecd)v+1ZGH| zrGN^8?Y1D83=@#ygB*htxZbYc}-`#Snk?Dv19uS-teD|Nw&Z@~hulBJLUXMyH)S2uitE*y!bzvU$)&i@4^{+Yl#u-kZJ;O>6(|q(k z?)@)*pB=Z~&cQusUVgb z;XJvs7;6jR(m8~%!y7@ZzdFawGfeyx$arh=bVp{VV#wTA_~B;qt@xoDTb%*MYm5#t%1=U8RbTW} z=6EmOiwY}7g%)nz_w$N2Dj&D*Zn61Sl#uHsk=K9bxg_{`O{**Mg=@tXZL5mCuMi4k zN#%UG{tR)=utKf>_WJ%)hoa}O7D=)J>PhqZ=g6fxRt(Qc1062#m& zIf7qWWbyC*p7YPY%JE~bGCw=dhsRs&*s+(-fAI^LBX`lAtdRyG(}RSiH{T+&1_DK{ z1q%yHh)^R`K!0TgZyic1yn^LHLKN2!UXkHQ%Y8)$njj3ykIdtId7_B&yI32exYQ|S zXf3GnXQJ3TH}d{(kvDAZ_A5Igg&?;UqJX?-Xf|W&f#UoRpWyyqc?8pFuzbEp5d6Hr zxS>1A7Vf<<_(kUQMnZ2TQ^RIdMiBbpSuCm~=c=l>g5uD-T5Kg}V%1pJqEBxGDxb$Y zZ;q*k8p7VIiO~%cAf&*SWJ7CR92U7lIFG|)g~!=~9!h_u&#L#}Gryj7#EUXodXQ9W ze2lxqJ#rmZa$b9cYZniletVfv}*3#v@6xoI$Tc7{)jc&P$B*1X5s4R`e+h5kipX zIk}39AR8%*sPWukj3qP!mTNIV5Roh_(3cW5Br@B}QaC6NOerNUck8m(C0Qc0Sodcw z<`IMvm4Q&gmTj&b#O0hjRZ&=HsCMtlYtmQmiEBcoF$U{w>E|nPkt#BI_#$mq;2@Vn z{3$Dh8;PjQU?3_s%0i1)ti{^D!WUI`WyPkER18FUNnmv`fouDZuyhHqxgk#z{GNR* z{p?xrioLBdE&!Ra)I~&UlA>={eU?e8vhrAwQFS_3pAVj@^p8Qsq2?uI+9TJ7R<@~K zk(I}k$$6A3t~+T8p&5k}0Zs^{$-v~7Se=9rC=nL>9>v*P$Z-zqvVz!_BtDmgCah|T zl&)cIiZM9~&`RJ!O(G0(;Bc7*r$Gv8tvcF!OqwH%p;2!!+8Uv)6>(h?Tf^*Ir+NAD zr>UKIfnaWq`oPn^?RGx-na?2Zxtoz&Z%1Sa=XyOB23?k?=NULjBG%SKLhd2=h+GjM zu`VHsLZp=RdOcK72VzWG?oB{mPJqZPp@CX0A_yXk%L@_1OSG^EY`Mo@Nsh0U4{e2` zthK$hU#LihDFwz^yz~Tp$&Q_)ymkC}7M7;@;D;V1>%pRyw1p?l4Yp$6sVsH{RA#Zb zE?J|l9>a=_y<6CJtJuc73RxyAkD_RO<6BrYR5)S_H!DlLe^+TSgOuE!IIE6Jl(5mv`c zNKdQt#RJtOipGDJ{TctkCj?4MVcETUB{V1h*4S< zgfq)%#s;s7xs@JbD{0hYdS|B#5*^3Xnk~k{sJh4vY$Cdw2yDaQ#Fc)s%IizkT9mn} zs{EO4VAkhjGl9`nRx@g6dPFP|YKQja<=EN?$@AwD#=a13M?7labDzCqMcO@i(650goE zvYX~@xAI1J8D~Q>JejqHo7pygVQkOdHr`d_nI(?u2q{@vS)t$W(P)h@G8wOHQr3be zT*d1u@Cacqu~;}!D8#DxTyAnMHCwYDWU*#`UNi5A3hff5rtuQOgush@?Z*fdQWnI^ zGf$ zh1qxAG+#wBs!tMUtNH*o_hr>mfwKZ*JjUdBAxgIshg1qBG(vfV)C`goL6H_phzudX z3XAs&=N(=;vdnJelJy?t6&}UX$|^nxFwT*AhcjSYl^cL41&H#+5~V;OERNE*cbzzG z2n-v-gF_+FRa>VNg>Pf&sr7x(E6a-fQk}Mk_g(6EVVq_d+4BjNDAj0KE z9#==P{=$n&VX+ckRDUN!$x_u1WOcTK3T?7S;G|sF9IpxR&Tsr5%JuO@K3mV4O8|Hr z#(A9e>-$ytQeGkquUYs60;M%^J;WM|HHDwH7p^kZTy1OwXARvfK{`t)1i2R2P>`k_ z8kyjhsVTG-?7Mpx{=y>irPo!<&a(fzmL58uKZAzd8D z`%BEd@-|tTAyoi`#n{T(F?o*g5>chq6rO&s&&bFKZ@m5{d2V?4;YUf*Y|}no4&GUW za7dwuqb9}}7Uq{28Eqn@LdbHjUYo=B7!00)b%fqimk`d+F?jVD0O2rtP30EMri#jhuMU)wot#c8>wgK(QF{uQJ^AcVzxffNesJxT<)3bS<- zC<1Ts4n`(+lG&WMXJ&Zn*eUKhd@K8=rl^GqT!66&CaY*83M+${%#dwgN?B@IHry)$ zwGr&Ku8Fd?I*0F&=x42iE1%`Tt3s3GyaZ8{E!8SO$q?%-c!?}E@OX(63ge4ZOj;A`l*6A2(575Fz)(_hC z>uVaSHG#-EtOJ)<%#o(_|J`t3@!nS!3}J{CZ!7Lgn>GHhmV(ctj4L&WU<4RhQqIb@ zuT<9wA(2DKe-*4TI9assL>a6kM5P|rR2EfnIO)p1s6u<}1wI6CJtnirMw40?B9>QR zY>Yg!IHAY|Nw1~a~%KP5BXQ$`*TL$y2$vc7490D;NxHT7~vN_4~IX9*fYX% zo^W(=iO%^s@`hx&+r`#Hno%9$9ivf=>A5cTTAf-WMmR{bymS}1vTxQ|;(CqT=G=bA zJxB$qNpWf;rQe#hMk$HS4c;4+kmxYL3&`^vltTq_{o5|ARPQa-aS+#8Sy`rD7aTaS zhsE#wEy2ZE9{B8MIg@4BC_rmTHb{x%7*nxFZR6^(O^&zmE<@7qCk*;2V`F2)agFZE z0Pi(INt`IOSeb;pqMWmo5QutNGI+zaLbz(bgWMNH&$%LyX{`|sn=jM@Lsqh46)-w_eT9l@10K z@2!y48B3~SHiWPCaV(XG<(!KmeV+FyE!LMRUeiv>A^wzARss)H`1cQsB1~&)-7hzA z#WTU-D+I$lxUvoDC9x0LDEV%I3?l+unnNIwDy3bEV0xP7t#^V|jwFZOL z6)ryg0<-_uza>9@oZ0hdXiwC*`_>OI@lQU_fe+nJbm%ZEM$s9hTufK!ojQ-r3O5e| zfln3nU;>v2e4c}n%=G4Ijf{}HjMc$_+&c^oB}0_DQqWeUWY*!0px$aAr6x&IoLH-h zxM2nGULuu16tjhQ5QGtFx{8bDQ-*cpR4PBQ}8y{g;cYqXv6Hh+L1NYtyhYzxR z_Bc&stRQmzN`Ij0NNpnw4xJw3)xo_&El6MX6;cQYDGS`jRDSINDk z7T3@!#;5(_JrWz5Qx90P7Mxc2x;X?kNr|HvL`ZHuQd)A;L5qMeC^U$PgDhy{<2v)b zgqKb)@Z__vB1DKCz>d)g?l^o0o$e}+Klw5ryz5R5?w!PEvqL7YO0!*Y+vcmjjMU#0 zCGSi3lC^79rdKiKo2m-(vMxtO8k^_fEdqrWj&52+x@#SfCmxv#tdTh7G1eeUUt*Ll zf^61EI~(cSauE57}ZF#oG^^&_jcx5X?b}6Xb%9p1#?tZWTaIm z&k~gMc&TyDlN(DA)X8#BtyW`YagkPYgghG%M;h-2^fONshFF)8cKeL9Mhjt3C8XBk zEl3?Cqf(GP87nJyZMeE+`5>SVQhCIw%6UbP$nbDX9^}^(IM@W3rTHENRta zI-ON?R7XoomiCc82Q;}43F9`sv_~8ZvNT02MWh=bC8^EPs*f{u zfG}uKmkysL#8QCNWZ3}cETPH?Wq?AZIB}Ios>9 za_$0&_hmIogL4Vi4`?D-B4eEgN8Hj{Hc=EhQzXwvs zXekRfEG>~TAT>G4dz6e&O5lA5<@!WA#O68H$5S*$9aoOass6YmB0ywHx83!B)OwiZ!$z?0B;=i zs7}7RN@sbATBu0#9{t=RWkeW-^alxAg{UCJYmby6og^WWiln*IqBVyO&D68ECjPWcit>8sOk_isp zdI%#G)=P5hsY%U+>5F96(5T0Zjx>l{G3U;_Nxzq1>jCZYNyf$|kZ7D%XzjT$e}TpM z3+xzcFgn^sOIV)oGCRA3LoqtGk3G9?AOpLTa2aJ!#9N52yi?eggTv%fFfjh`ufT}m?4pwQ@>ntrU zaP-Azh$2m%ryRO%f&+W^Qg1hS;klPdz31)+9%iNQz&N}~aVF#BE3eW|G9oSU!gI&| zNkUPiC_HxN9QS829p}36pW74XtgzsTENug z7-OTm=q0vrzX=ptN6cQFV zk}UNZ2t&^%;1hh_XKHecog*VOLd&VQrdeLjSWPu&&P^ktn53JrkSJujiqbV+efFoc zKk@*3ckVzSNmGM&P>&+AY_PtGR;4W43?l`(^~4$ismaq6Cp@|CqT?~Tx#HN#d0sp* z!<#cRgd<}FQJZ$$WMTFK4?lQ6x9#4+t0&*&#kb~Jk!{9C+hDry#4`K`VMTSo(y)|{ z>#5LWaY$KPm^nQjDK>-)$EB8r%_-%o;G8S`F`X;iBg!DO&dL%94JyDPQQpzF4vEGl z8OrvF=rP`GaPo~){9H(&SpWba07*naRMq#N=Ixm|P))ML(jJ@SOTYblw5KL91O%bt z)S0vF@D~}a?WPvicK(j3{#lC$JWGX2`~{K^0Mzw!J3=t~^@^kW23!YgmS!Jq!SuQK1Y z)Z07x-GA~2?Eb*LEF^|V#k_uImOuG7Utz56`2BzUduS=?uXK3jxgYV|voFx~H9q<4 zzsW~G@hQ3kL$fx@VrP!8fBWw^{_;=w!modvU;f0S1S&_GRlf7rU*)a0&+)-We~Zum z)_;l$BT}iU`<$OV@dV%c_g~}oy*v2LFMgUsQ%8y*D-5kz;Fm9A!Ulbz=y^}K-y_Rb z`161Nmn<*M^Pzi>@Wo&MRr-Tz$U8jsEwPIBU1!ALIsMGCr|RX-~JnVgADHskA3VB;=_As z>zoU-GyLE?e@*7v+;Qi9)as)Qe8SARX}?%8u~ck-p*{2Z$82}8r6pMh*rixk?#EKPU# zi+}w!mhB>e4zXFzNW0EQ9=@MP9y&s+W$5(hNlZj8HA2VKgMcTVe1e}n`%_}?P+sG_ z<<|S|r1{~yIdpJ0X+HVZ^ZtXrOa8F0J4uTaJUlzT~KwZNOAaE32jj5fRI2n)g% z!RPdN^BYfc@2`G_XsW@=+%$NJR=V)f#~~`RByD4B*e1u@cvs6NKRru~YNcw$d zW@p(E2kf32qZPrM$KPaO*|M;-%6Gr_eY}kc2uZSx>CP;Tz|g2geCiV)<4a%o9KFFR zChJqL$8_?PmybTf%(;1_4l$}u7(|3d^2`r^ito?yYoGgd+LH$vBsr-~NRmFVkrQ|= z`03Ihs0~=-k!4VnAjD`1fua}g;LY>PynOs5XU?UhCMIm&M$+q}W9Y2RvwOVG2M_P0 z<3pZ4d4^>lLmZK%37F>9W~jPpaCtg8PZ8*+qy?owX{0Jht-_Z0QY#pw2|xMqkJ(udx$pKVR<&i&StRK$5x5)~WEeN# z)El!r@#DY62P1TQ16s{G(`Qce#gE;}j#rYyjhcLYK^3Rw)e}<{CaXOtj z<(WSJHp_FT35Dja-`+>F5i>aUCg;zd=Z8Q1A%iR{Yq7d8N1n7fe)JgA=g+ct_r4-9G0FJaUwoCZUHehg zm}=K~`iUPPM3=_M2-fDz&oA)JZ+?SLK8IAAPM+|M?|hS6&z)s%u|p%Sk|$(xtrh+6f-M>j?krAN>yc|M=h8 z{Wsr5eCK=g?)(6+J@F(7o{M{@NFMwkANtbgx$XWBv8Y&FYdd|)*Qg2PNc=065 zOBa}&96_W#T$<5pk8xpUhM)bcM|X9J<%Jb)yW;^Srw$@?h!vhN42u9!=MZHHmNnP7 zpJ&p)dHj(tR}gq&8KRx1_sX-JoL%B~KKdxHr(IIvh=W=Y=i(h!yCN|3X5jhnVQiD* zZM>@}NR!%R<`Nv(zn@PxN7ywQQmX}IX%FKpS)P&P14eeVSz73!m8PcPaC;X@dlu*C zc<#9un4FxX-3XYUpQYAp(a$`iaSOFa(N8iwnr^R87)I=!n&9M#*H~Oxp*403Qb$Zo zjPb}vKDh3ZX02V%Z9HuAR7kY0;gWN8L-23pGiN55C#~)>R zzTo1^U#6OFv%EOR)k_1eZ%(*$^#+v%r_OQozK8gUpZp*<+oUwuul4wU?BeJM3;;;un7L?~VLyW;(dR#j`KaO$C`r2rlsI z)pcsCX@X?!+7>_g!4v$z!}s&l*PiC`%g?iz3qJ9QPqENR@Xe4*>mTRp+7^``G8j%- zSUJkl;xXR$qwnLw+0%Ubqkl}IYSxRI(O^iYo3XR8%d3~JvbC{|PfI2UjDVl`$qy17 z{PACWf{nGSq|&o-@ifbeeYA?uSgvmDGHonP*k*e&;R7H1Y2G>C=dsUzigV9@m42sS zC@jOxv&?n6VuI6w53cW~{>6`nl(0&%>F2o0BH3?3%v66rzl55 z>_}5GA=r89Nr^3UoEtG1PPw)=V4G+7+rRKjTwB}Vsn352QH}V|fBnB<_~f$;|Kt(+ zNVZ=&#m4>ja_4{Xk2!Sz1MKt)>cgvCzOlit|HeP#(XT#3-Hcejah+qw4xxnMvA=kf zG!XKpVSFc{hY{z!6Wia4vZ+U<;ZIJ|j z8U1!pL>JJ~v@!vs*eR!c;pwmP#nVHQxx=X53f@Yl)r3?V7Uz2mCR^Nj>=5sI_d9s? z)YJU=S6)JC!@~R=gUunGVve2dFPNJA(GE8ab@i^o7b+;d;7b%^T<)E@sO{6ZG-b?B#8**X@(Cyu3ov$ zxNJCd#|gH!w|I4~#|J*}0i2(3`Rr+i3mxpzJX%;@y?7003u-GFPj*O)4naFMuV3Wo zp&p0l=J|u)y@*aFO3iWlkX> zB1`j&47LZTs%Ek1@Zw;HYCNRB(ql3iaOK)Mt|{@}GuNGGJgrzt1tv?_eDwmym*$xc z$5cBvm`^n!3f8Y}QI2Yo#2|uYTsCxyF4|=5>|ST3XE?Fk=hJJKSx7W@9y`L-%jc<@ zKx!;EHaFN9?Q&<5apu%1atRBaE}^O!+_*u1sZTFYn2u{S3PQr>_5_o3h@xb1VS(~` zjgf*Q%k%86U8b1~=^BAj8Rc}!*6xHT13QBWiiU;WJVA9BPp2GR=&-x9%kaiJtBZYZ zY;4fUdq|bAxwS)6SB!=wN*1gv&NHeZRf73mhx2D%;n?9-bmH29!>S@%m}fGm@qktd z(l#7Fc7z2j_`WyX$C+oJLj}vR)g`9WT{@kdBuUub88FzK5Tl?s*Jpllg{6fahZh%E zyLO#&dz*jrul`Sd_@M`Q@rf^SOc;W7RAt2jzx0bdpB4P(pZp1@&t2eMKk_4to#n%y zdz9W{k7y*LYKj6@=jIqpCQO?tu~rBY(kM8zu*mU+K2Ht@tn?P?cMLbyuMnKz_&tZ& z8SZl7;wAEK2ay5%QM0hi8S=H9#Sp|Lyr9lp3n@A@zQ9^+VJv|$`8oC^dS$+8TgJ<+>^b#S-i zn~raLa(obqXb)fWornW9kGJ4m$b-zF#4Yeiw>Ym3{=9GfwXY{+JeVQ+or)M{@Yiql z^{+#>WsuY%k|imV+Tn%ZYv-@=^w}$9S!6*q9AD~lJj+mNhld}0GZ!yjpx)VLY#Wf0 zU{XjV9*K34tt)G|7?|(Rv9@sqkw}WUf=gE}QG7<_Oz9WjY&b#1ahDo3y$DK$FIA!VSdYqCr+s!DR*V|;DQeD@e3XjH9QTWbN< zTLO;41U~qE_aJvJ^XLm32-78an2Zg}N+Ux>R&);{Msd?DA%bX00Bu%y&?POX8%H)0{Yb2t!F# zjc{5}Rstm>ChyYM4TqK&>G%7T(;Xgr>=W!>zs#E-x{Io+a1qJ|Nao2BhZ~nDS#$UC z`=~2V=}R8}_{T8DaPK`wsHzGrG^GGzRLijqmaLm{_~N!(hgRuk8M`~%Eh125sHo`o z=21p+^!N(%;|bR;e~mx?46Lu+;N;1}6h+Ep>}i^syt9b4mT_g#ML}wcJP&HCCp z-QE$-y|m8z=2qC&nq!6LnJ;_>o#a%5A&0U>if+dBNkwK-v<_%#@l8$E$yiwIlB7r2 z-Z;x6AN|)12Lq0+cIf5>TQ@dogd&#$DTSqUf}!!6ak8 zpJPnI#dD|l@bCN!Hr6)j_j7vP4plWmmXS0o&^XYL7{kKSG9d(}lPQ1n2fxo?XP4#G zKELyOzsHO3{66k{=exM;lOJSo{vu}{f10uPyma+6AAjQ0v>yed#qss|bzWz8>U2*?U{XFYC z+jw7*N)5sy6KKL1D$w7C4B=K?JSo3*J@Y{Xid%i&>mp4YWP{DY+uXYD9>6=FZQAY1 z@$LAo#-7`p_nzQALMaX}E;3#J8b9{aA7FI-9H0EyAMwVc3!J@lj&7%5X>pbDV2j~k zh)@cWrlk!iL-Y}e;Of=u?C$Jhl)|YN6Ba_Cwo}|R5JE)jgv4YZTDL1}9YT~$CQ~Mp z38~KawXp&L!qD<69ChPRGtQ_ZAhpGXDIS9q0_&%oymOVSm$rzaiwy=(hL<@BmU45Q z5B~5y99r!2^0|wgUmsv(jwj$|7wn$H*@3sykWgzhh5jRO1pQ1y;3=TtXYF+M*J}O)tT3F23<5w|CRC&b?+JM$Vkw_Fu<;xN;Ns zhW%pPx49NRqFp3O(pe`$LI`-@o>u@$DP$D*;2ArQR-PC=O$-<rmQA(k; zBBlb@D4zQAlNe)IURpvSsGA1c2+}0Om;|i?G1N4*r_<92sd(vy7fH-nilR%BNTiHN z6$s7}37DucNsGwR2BZy~JO2t7FP=vV!|KWszNttO&2%~;FC;P4rfA(JXIg7^MqBvU zkQWJ3Xx2AwaQX5Yoo+#vnpQU}BG%T7Cp$E@Y`a+ke5ink^PbbE&!Lp!$l@|DJpUEG z_RN=9+g|70Z+wvZPTs{Y{mh3r@y;KlQ%(7o|N8e)N^$z!DVnO{juUsZaOD}{AvjMt zEpe_P3NSR}2wdGT+1_QXzCxO$5Hz)&{Nm<`mCq{`ehCEFvOiHv3-dZNZEw(py zx#QSz3X?GQkxrUnn+6{|-bez1Ufw59a&BzwFdj{?)^Xy*>i+#hDMiyX><$N{vUTx` zMiRB83=ZcV&bPMp?R|h*68t?D5o8dIt0|^PsbfthJ$g`a<|Ch?_x*1oSy^P~#&t>~ zkO$dL-i~iMZYRgLXwdX=sWEqE6R|zgKnKn$PHP_eI5kfMZ*4U;&D+4+( zEh}8rU`$4y742YOg!%qFQVL=Wc;8S~H6~4gmNU9%0uq9!T~xM-TGLp{a>{f%C8iN! zB-$9HFfAXLh>wvVG+EZAZUQk#65S%mgoG^B7&6}c<_Fo$uJH1imQ$>g9;3?Rea%w8 z%Ud42pTS_lm%s8XQXN7fhzJw{A7?`(;#M{LJrVFXnsZ261BKUy6p}nuL_{c}r%w%uxp)J=ty0-dE`6lGJQjijt5 zq-jcsEoZe~6x3Bo(^$LbjyV zr%0(VMx&IW$UEeD#`buJx@m~fQ%@_>JY#-tj{UAO1oXbe)~{FKXAu2B5IdkBd^5y_M!%M4TN$vT>5(w_HwiLv*d7$aIrnzBMl zNuo7rl9H$ypFH~6y}-|`%_Gq{Y+d7=B}o!wjLgmTuvJZ-XF#N^rifVrR@ZfVzRYAq zQpz?V?sO=MqFt0p!JgkxUDu4q<96S8hjWgmwrJJR>2_IM%-9`nkt8`WdaSLftBOFR zs_T~H9NM2JNrD!zvbacDm1rf&I|X%JBey)yojJu>%Kk^wC7VqG1eduRNvYeum zv)U|k7kT%8 z{a>-QeS_V}2vc-8$mQ~OeCu&LIldj=)o`x8u(j4G7inDJ#@YtQRu(vS=2f=WuCusu zn7UlU=!{M$r<_jNEi0O)bxDiCgK8767zKpDbXozl6__-qt{ua{h~a41R!&W_U%8C2 z{d}UtIgj_ArfCq;pq)kN*3#C;mP;zq3~vq3ox8@VGZ%Q^frokUWRB1Y&P#}az?6l4 z!jHb=E*`x51W$eC6zA6mKtduKe&+o@OsWH)d+r=tRYH?1VTSpM0b&qqdojqVy0pHt}5D0{Qy?XQ>!A*;9=RMY1lx|5NLI|p=VltWR zC*=KpAGg;Xne7iD+I`oQ6;)LsgrKf#LI^b8ljWLp_Wi4B(q6666QZZACI}hPS|DeO zOl$3HEZ(=bHd$I&q@0Y~#cPbLU%Q5%mRLHJUNRJp$+dMp{D&W5_3$CCt*;ZBn$#q% z?8QX9Z3wpQq(~=m(ceIo5D?MfeZ-bEYOYO& zv6fIZGXFR#@i9(!DJAI=H&R$OdACP$kPov3lYt zvATnu!AmsbF>ib8-8^vbB2PZ^GLM}elXvfCwW*kzb{GxX0TL_0$%r~gMipC$$7?jl z;$Y3Oivg7j$|%_!R$RWe%Y$=w5<=wBubpDpTw+?4{LnidCQCFgpIxIYZ*cd~32(Uj zC>_S_Cw-H8ycV0ZhrF9r+r3BaSwYj<;xZe;+e?lk@g}hU7J8CBLy>RPiwW5tR`4nwMj{AjTyXCq-lZC zlB%u{v=8gO?-k3MN<`-7=15FJ@I#ypBuUDAw=?SiEEa#Dw4_RT&Ui zVsJ#-gjs1pQ#agu{62=`5!0$fCD6_0alsQ*M&%_|7-ZU|Zl=W8CMKOu2Y~T-jPq_^ z|L48O+Gd|X6JuMwP1A%Bj?c!iha-o!Je_yq3XHvGE z2dyPk|b^R_u<}g-PfhgD&4}m*89ST*W91>Ix63rJTpOvV1&XDSuQ%%J7d0n?m6E2 zBX1#JI?TnjOC0Vm;>WkE#^0&KKU zi|N!ojb;q9|7TQ)gX@ytxtqyf#^|)|?)HIUy~9U=N3pg$=80#XVpIx_tQ?}(Tf&4$ z^cA~q*uJB@aGyf-9RFym0Xfd8UcBWNaI}PO(vdQYcG1c^@S~Nu=}0 zSq0R(Hp%fmprs%+hO(&;QWB&`M%fOyMYTWk99)1Pxv{mw`SVw}^WL}ckq`eq3oD1Y z@2&?pb>Sk9J^nPVX?W|~-%39SsOj?2U{D@6o1}8i*MW&f^iW z9f)k2o0YH@|Mps~@?Q=K_z;P)O|r5yAyze=dW!D!Au)t$g$QA0GaFDkLAU@i;-jS; zjUa2uBGXz>bPQ?MT98N4w&s(>5cU%-kRl*OU^;fhnIocg9%wbr&IKmrn5E@~nNyWV zD+s<}IBYAL+9-rnEuBTzc<(@h(vtCbOt0Hxdt(jhp_g}=Ry9I6l+JJgoS)e*8%>A- zAu_6}K}pSIw2MTcq$WuWQnm?&RDiHVBto@GTd*GQB!q-3SFcmmtvp1fhO(^Ci9sn% zo@WS}wz@AgTIV!&7cs4oN@7ewmT7EktK%Vt)P8FVB_ ziLETodbExRr3eIsQp|PcnAYua>?Imqc^YjPD9Ly zOD2d|k*6t&2)==k6MeutN1_eHh;1w}2=XjL3PGA^LUa^)j+P)}AQ76f@l1CnD4~%k zTnK2LVWTAYK$;n(fV|Ks39j)(YjGixXw9^$m{v6?MUkfHETtbatdb;i1*ypx?F^Ap zGM$bISw><~WEF8Pw%3UOsTA4l9Lh`=6(ot&RDMKk6hc6zTkUn48S1)WTGbe-AwrTQ zC@Be{CirHy=+!ihMMX$WLUiplY_g2JNYN^xn-=XoCIV5>Sb;$hg+wStnink>-xxZn zqP7)TB60PYUU!us3#Kt=XH9^R1rw z2bzn(fvJNC2j5k_wd9=~KdP9^Rv10=SvJN~4!`$(Tp6#StspcWBP9MiXk7Bm=OwqG zF1!v)>05o?LHqfZ`~KT7h$v@o{XL%?e>>uJku+{u&HC$$DB^(tgIk>z``b5bBks8c z{dKmR_O{`sbK1>eER!Z!=PBy|#_-%LXE=RzjWktLD@zC#q$cll znKlzd@U6K75QIQ$gA|I0B+n9rl=$G0v2EvBYY8Eu46T;4lhQcP?r6&4qj%t(?mBshF5pGLhjv0*_(&!o`jR)^y~G26 z%>-XPeTi2$2WT;etEZ^6Lk)P*Ci;$mlm?m*325mHh$b=wyAHKXwWtu*~!7o#N#fwLf_$C#vD2p||& z6O;t+0{ze@%W@{8l6#Jy#1olcoM&Tu#Esougw!|>K7b2>s%c1)1ZOSXZjW9kXS%Zs z9)gpYPC=gKv!oCr7O67i%+fng`z$UdxW<7iSz2DkBngvhiq;CHG~P$5s-&@&)MW(U zx^5j_JxZEtyl+q{LrO_4Jl5HE%D%1%Hehs$jgfx8Phlj}$q1ogQV;3$7x1#Ci78Sk zLhyL&Tl;7MwYBuRb2Lg*PKFo>tDOaGw~ts_U^?2N-(NszLsO2(<`xJ|BgtPKB9zXVSWMUEkbxgw5X&*W?Bt&ktS@{0WCGk zD6}*n1!>wPNg`=*bh;fzgH7_(;9X5-3T!Q~Veh&UAQX9Ca6CQ4v~hGyMv`SHS+G60 zMqZ@E80pR=Jw7_36G)LTH@AS4?ND8o=4@|mQ)E4=(G+x`n+QS)Qh|sOLR&eHLXxDK z+@$RyJVI61XxR`%yFdy)qNE~I8j+@CX$L9AEE%^XGR4RYYo}yMN{FIO{)He4flgB9 z=I4nqVzgqRNI+Ps#^S3fX{y;AR6O(ev%I*zjvee$%y)R}yWYb4-uwm@GJ_VL=soBe z(o-Dt#5_1T`<4-J;ueYb0S|H^BuWGZ;{o$#j?^a%9{nuG?zx}%;2S98fcd;fw6Q(6 zzYX+=12_3~f9LN^f$&z(f`d_f-+FQ^ZYRgL<8MN=)va{DH7k|k4fouINizC#%j7B$ zhu7FzACMSBl#-}G`PKyu5=3JN0b&p|jbl2knT$%7mzF_lf)#l0(20hm#?>`mwMm)t zf{3IV3QSgz^_H170!)XqqntBeKg0R+mq>~uL@`IGbF`5t2~x?nGAShI&tKtP4?jd- zE4;5;jiql#j6{qi%3xxvN8R;`voD=R1W8Onn-It;-X??y5;b#0j`(0v!XahS4l6Yl zvWzAQc83+ce2yf~*%=N?(H{sZmklnubtLC{oM9g5cQOevE(j$;UXl zvdHfCHt+q>AEm#r$kR_e!OJhd#2fFwpJOYFEC)l&ef#EGc&!e$-8amVU282mycX57 zZ|6EY_TLN<#F_MvY+W+lT_iG5@N~HLP}~< z2D>AMKH!{3DuvRm!H%sXLMV&`t4A0UICg9a*R<}AtpwF0FIq*7>QaIQuwhxZlz#f%3YTqesBc6PV8c4dn+>C?;S*)50r-3=*a zOPq)mqwyBUj~(Xd;rl4^jLVlVva!=%BYXN-KTBSuR3th;7cN??p3NfnZYJ5L_v@X9LF@r2P}!tStawe>L&Y1)No45XbN4MWmA zVsyjtI}h_<%qb^hUO96SNlN1)LPWYC&I%XLUF6!OZLBCj zC|svhqIe&+qW{jP_&cKs?Z zzVtlLKmR;G_|`Wdg-2zErYVv7Z*J-n0bx?Y_K>AR32x^KHy%ID8~@vXOr+4(G^Mi+3==ZsH;y8^9Y;Rw{ zxe^gIxl(vH!PX9e-qV`koyS?h_Vy5=3%YZ2BqG5JOYoAqDT!!;l;}jadO$DnL9wgckAiaK@Qoq}@TzTdx=Nr`o5;1O zx&TBHnV{<_CUmgYk)#ISgqhW;oKX)1O37Jr>5xfETa-~WBy0^QT)A?cLyJqCIML_E z*t2{68V}vMK)W+$f(ikaDPvb*x<@g^3a2l8oz7EhTs(h)_rLc?c-NaB&2F-*M zhwkT%zx?yOcf2U+TdB`pBC$VU zCtF#_t;P|>%wD>+oR)ZNiPnceF`= zu3&M#!{7ek-=g2^aQ5seKK!vy;+!P}kkYiIgdo`78X<@nqw(JI_kZDS=+k)n)5k?Fhe^! zBmt=u&9vbM-}4^c_NHS98TsG-_uuCFwIM=lYUf&%qZD`|jdvg=Nt&{D{SqJg&_Cjb z-u*6Kc;O{J`jL-*!-8qA`=Zds5QU_14b5P}z4x8u*Z#9#X1P1ZBcFVPQ|B*HO-ek9 z`Nb8au&|2R?*H*GD5oVt#QpsyA7QsUT2Q!c%5JUyT8nd_VzAw{Y5%iM)01dwq$A6CN>egb4Ve$ z|ABj1UF|TQ?((_MeGY5eA)h2k+7_?bGn5G|%r78?B*ehUlXsA%il?4@46W5{LO(%C zjdPMb?=T*3P~=IAoO2d!G!H*~AE(Y(kvz>&B5=o%BiwQH z7^ml6B18lwzR8Im-^HDF{)A`>tv z#1`w9X$8tq`xfI^)g?tPaZ!*YMY|~Vk;!Pn&h`$8kr-{*TptpXzbf^K5sFTVa}ArD z8$e)Zck49^n7xIbR0=NwE{4`jC(#V1V=iC5ijj&$CP-zFGBTc22$K15P zTt)*fQcg;$>6FpVfF#L?Siqx|X$OymWIUbH$vY?+AP6p=xxhx2b8Yt zd#tm);WwoeqrrgT);2HhUPA)44d_I*I79-0*h+Px#d+6CX-q<1bQq0BT)%dW;dson zu5dxY?7fpDC18nhMqrU`hb#ogcsNGtNM@j8G8)<{{a(d>Z=YIgX=+a zlBgu7wrxAyjxACKgsAaCFqsCHj~u5vf0*6jnBL+lMbRZsGqjSexrT@Y*|wSmvnoc2 zcmdXevjVLXqO54DiahCqx9#tPr;H9SC7H0i_xs+&u02b2eut*=GySF`&RWYYKeSE6 zv{DEmX}rUjl#T5H{pG{_@Q=QijjPxA>}NmA(&`HJo*Bq%Dy{quB?4+Xos_s1ka?cz^h2w%ZbwwS*O7JnlFCw^St=n zR~YQ9kH^!%%A@0NBQg{7V8DW zp=GXj7)c+a5`wfhldYLvKanYAHR6#^{uy7&U}t9sZT6DqneoOwp_7zr^7GZ`v)XLC^1Q`u^D*5`;FY}ehpGN{k$Ka}r zq}M~lF%C7W%muQvz}1c{O^_ntV;}t#{rQxwtu4CU4oy8}VSbLa$>x6IxL*MkEeWTb zTK<>+`Jd726*Tn}r8@iP^F9GbNle;GrXqoEug51I`6PNgL4=4ZIwbi#Tf6H>ZK$2a z1&`2*Bx^OoLM5C$c`twZCy(%_fBZ*ui-K;qpc#c3<_%(0#Gu;5HIe*(?7dmAW#@I@ z_xq+joaqkTwr5 zamtlc21l~Wv86;J#Yr4MVjueZ4qq&l=fD21{vnhD@}fj2Lzb1PO6)qcG56u&gb?hUILYt-qyLV> zsbl-(2~@UCXKGv}`ii(f$~?^upfFleWH3FP@!$Nz|CZdqaAQI!4Yo>~9%o(J(5Th5 zoUYr5=LdiBW4`%+f0r}oH)(2*mLpu0eP=QK1Lxd&<69Wm9B=UlfA|MnyKVxHj}h(s2>t_;-pQ{^s(2Ysgh%(S<!pMGnXq9`!N@Zy)h%#CaBa{JaTZ0E>yiO)5Ni1dc}{08H#A%}L#)6c!Yd~eR( zyN5)EXkZZy?Vx0+TDoP6E>v<8LxF^yoyQZxZGWF%d;WQzIkm-8XU{P2I-(A=nL?qd zoTpU%@R&;NOCbeIJ>%7zS2%y+8Ps%6t_S$mqKspSL60W<@%LWlTi<`3zx$0B`PFC7 z@wH!j8s~n>8<(%JXiJ9q22n?JnIjhtS1ri~Bby6Fh7=KF6m{JpGfg?!pj$SWS%=?xjOy0wj7CG|*5aK2 zVF)_ot@ozLe9UO)1$@58<-0GFWs=b-$N83QRMOc%BL&vEemGF@PyX>AGF{He%aXz1 z38sg264eOLXp-!igH%`<$tfUY+}&;Y$N$@(^kxYs7z`!*hclFlWVt4Ihme*m^LTF= z4ky$$LKBgr6Uba~;@k#@(zYy!O_$wHsT0@@cBs zoS@R?N@a#j4NyT~7agOG9h#oshONTO^i?s2h{bF zGf$pjv~hxE(@^=-c$3pui^?6b7UX$}$_)9S1YohK$jh9qozpz_^mBBb<@W8nm?jyd z1R;?o!$mN8fhh!s2MuktrqwzM=*^E1P?r?B$K=i3NV5=q3I*Ou12(Y%r z64*I+n$xF0#lgV=ySuyTekBgDQnKh8PUKJwCCh3_RaJxlCr_T@nWvs6&r255LvCEZ zPTRIj50{C9oohrM!S} zMKY#oD%!>(q9rp)B2+CKOi}cmzWYP;_pEz~O7FKBKF<31zWd)X&um0Q9OqsdOn<*j zPIo4Na!}ZUCtuj$%0K_7Jmm(AzWN2O?apvILx~z^fT$6*A$-VLkcW*2S~MU3>SObP z2Xz4-#yvPrLX>GDT_oqQQf0WRA+#Nt?CpDt z9P1Tku*sX3-{Ym1e~vT*{^I2~$Td85@d96e@hg1t*-N~3`3CR2*KxR5AYEWv3I>Hq ztWzm5d7cn-XhMuU^W=^@MIjL~R=YFTmT&MnHaWNUke5ZvlRurj(B3U3_Go?!KkpaVey5NmB-r~lM_h{Q>95P=lICFNe zKEL-?SEGn5t0jxWgCteZ8iZ!CSg^IVwf-!5Q6#Oh_vCpR&b@y9I^X}%OO&s@fs_Wj zT=HAL_98oHFHluAQowjJ=I~(FR~8-1<&wH?nNAltn+z%PJYT=(>N{mww(d?W77KRw zk}P7m_}O~Bq$>7N2V=$96(W&t4i65=Due4BKYR5}yz`tqd5SVu>+c0eQjrh>RaN7< zj@{i|ZoPM%)0z;9KAPCe8*rj0MT9PI$+%S~8!{nQU!xczDR}ox6CSOl`6v(MVRNDOr{=7!0WEnrgX( zn68&wH*fOR8*hP+oZQ*L5s6B$SXPuuP~sRO z?u`fGxe~47{x&(SWt0!gGZ(gMd zhEwOB;oZwWMZDA?G+aD)o~JLI;juF(`5*uIbsCp&b(soi8IxX9({pkS#bCmB-+Ue0 z%s9DOP@>5f3(k~+XCFI@t&giBBunZn&tY?elUrL@R}l!D+T5gSYJU2|AM@GIe1^qx z!HLr+aL%)H@)T|BxN-d^50M+EhY3ejfL~N;S;cDDW~EO)mH^sg;SvuukPB#eK)0-kJ|W{Yf=ro2^AO2&rdljm%xAQ1&F030=wLakICsX-g;W90vW%iAD2gHx z5S-)o-d$wxgy%b(+U~t6K!0%Qbsy_i_$tX;J zMc+%A0&UyUG|f68%(EQVyCN!;h!u;)f~HP}7T$Z7^NMi#=mEXD_NA2g=n(>37pcXP zI!1c0j3XJwJ!@wDb7HcPmbsx@R%l_6T}PZAvhk@;Gn>xPA#(EMHnaH@r3E3RfnM(; zZPQ?FG6HhW_14t%iJ)G0*u3|I7^&-;*=$B;%C!Md(#Iy&`6_AET9aiNUDu^SKI@ns z9N;a)C|J(s$Vs_ocBf5t`n6mxSuSc~=ukr9Y=h`2J-~VpZY7y9TH{?*21u`Ei955+4JBglI)cLIkl@ zAinog+`K}4?L`iD_fzLi3hsxtK1z;1u6UFjKZ=h$9;6pNF48o&ypMxi8iDQRm>4Mv zh4&Rk3p(e~F%TM02o@6~#t4EaP+87*fA}2^=MDMB20y)agPonzTzTbZTsZq>DyF=1 z;|6ct^h}B!&Yarf&;I0P9@~6^@nDFdCPs@^{f$t8k#k04!6(1*C0@C@&$oa48i&i4 z))xo@D$5Wt;H<}6337ms5-kKK&uBV}8Eo?UPp5lt0pUE<+rX`A+jg1Zd^rg4CVc%sK6ed(O&79|+yToT6 zpM2mLXPHF$K-<>%V2ROF*EMywAjXWQSumdD*ltO^oTAN14i6W+@y45c`i0L>lm${H z(~b`lF-8#FGidjhKV0s$@%}|s8WROUM6{A<9AgiQdP%-Dp^Y9-#ED+o5hKpoqe_qz zeNx=?ZRfybGFevxR|!h44M^F$(*=}DNkZ3k%$km-sVT~$e@KIt3RPyz7gM}*XnB+r zbzRG1SrMY3Z92N9O>zbN2NJ{(0-bXNml(Vz2z+PpZI{qf5>$`LYi&o-C&#O#b~Q|u z29A>5^QwxedWQ79Ni(EjMy1sHwW4Q)uV^XGrOKz0NoL|)AjTt$WRUBmZuOq2;+pjH z1c^`qYXja|giOh0(=_X(+*(V~S9h&F(pEQZi?f~_gU%%HEfLhPp zy+VkAx^3vX4v@^}bAk_)?2Q$9z6ZI$;skrZ>hIlv0dFBf8nN ze-E*)+P6(jXVb9?)}=wdz5=dwLO*t0I(E)F3X?$y+hsaRcm zw{G2LI-Oy%jP331B!BC=_3>(a|9YR+Ol~r|WyS1piYHKvh7_UKuJ>znWj$V16o>_fR!QPyYebf37*&$xsl#&R%1tW!Lr?-C zBbT-W7j{ONOkiz5YxTgnhSfmuz4xJyGdUI_jc6m%Pfi#iQi-QGBHFus4$TSB_Veqcn^r$c&-xt64J3L8P0%R>^>) zZCaGj-~{!u;v3)iI@w0am4EVwOg2t(Ql<9vV6;hI4p_{u@tN~GeExHnDAa-z8zT-5Dza=0)E_v;)_d@tHg;6DW?D_z zJ=o>)J8#f74Y|p9;_(Z3*DxI993CF>^2{oN z`zwjUgYGtK$%RP6D64;WtQ14&G@Y*{BG}Z9ZyN@a5rN+MF@(gH?&TEe{lYo{KAi4S zRTWv5F&d6QM7pk}vwmGEbUyTqS;h2VpWWSEVvKAKM&wxzJ|t`6mD!0+Rkf7hrE1!2 zK4USTC(g9Vkx1I6LrP8Co1YvdPf4$PFlz{%LqsT%;5@bsWYHtCq`{0*&^XJ6NR`pL zu30XZ>*Q8t`MOh+68w}Du9D*zBUM$=wk?b0f~ILwC!}ZVu95?(6j+;NOj6*Sr>>Kn z!h6SHFd#2O_3Q(N-Bio5#W_n!Y%0=3p2HjdbN>KL##a{2Bp z;`RjUhTuB3w>J?g(%71|ZPHq|mb$9&zIR|VX1)H_a*v+i5o2<2OqKRFX;XzZl&KT>eemt31qSe$XZIv3>6-csQ%RUt&Du z$NDfsi}#A}McO;x!?8>^aOWJgcW9k3P^}FJEl@gQRE7YokBssG`*)U{IeVJ(7tV3> z?k!A~(^X< z?yKtkW$R_VZV>&%I;oPKf%O(M7|?}C3_jU2yGUJCv`tIfw1l?9`&3~y+9b(A zFeopEL}aSgOMx&tIVuM5-cjT^%jJ^8!$a~sqs)s`ZB>0@=N&>r+cpSf!n5@T5Z*d|YQyKeL`t=;n5U#8f=gh3B_u*hq)~vt#enXa&;o(#yDipQx-Pjr#+Z&}lt;vh zrfE_l7!p627?b9?Cw#0l!a^isOj|d}Nlr;qW2=+2a@?q?B6R< z6a)gA@Xn`-r%03$0Amt+2A}_eLdka{}Z6YBi zw>M{#*-Bmvl7)A*M3<`nPG+5qE2#)RU_0AyByxm_wAQbk`VfXJGs$YbP92XG!3RX2 zTzcB3L2Jc$Ji=&=l<63!DtD@;Ds6g8b4NKC&~=ukZHO_@bsa@fP?qIdD&qRtj<`bp zNl956ocDCr_R^e0nn;_ixZZd<=dd!DFcYOG4VruJ(z%TRDHX15$%|1sXF?I9;E4-Q@Z{6aG3zwne&ucQJm>SD z`y8LUIHai$@zJumk>Om6GT8%XWA45895*-diyiYm`~y=+frv6)?=B)0lqTcy_y3f| zu;A=hzs#%GuhMEyW;7xAgc0T6j2!H^PT)rZFaSR8%=8x~$5Fs>_TRs3D#b?;@*zI+ zaRaCDaNqmkcAb>5>_uy3q(W7G0XG$F2YoZXe(SmdoLO|DW-UPNjeTHWrpYX=JyS#q& zkb^p~dFCvC`m@Vidg>HUZVnj;0kY(oOA} zb7glQJGYQ!1Rd$T#~7JtDk|>}py&KVq9#M!;u=~iVwCAzh?bBm=sbi#+jeXe6WVBz zvY^z0vnS3lTa;{kW)nKga5yB-3U*FEj&qLjc*5qXC)RD&r!PI19;AJxZ8gE1)?mb~ zAK-B_7BT51T9qR@y~VB0!Py0Rw)H0Luiv+=meFKxT-l29fYnQh${Qzh(E?}Dm6~Q+xQ6|^M;3FzZVwZTfXlUvsT4$&z@om7_7VkS^biIZ-B~rmhJV~bD ztVM{3lIi#_n-*((9GB2&48cNObrgdV8i}qc2IZs&O!iZSF#I* zHlVb?2a9t8L|||44rWl|W0Kc2UCXj=5HX^pzy(k6mf$UI6Hr=FH!ZGfsOy|ON~+4z z`G7E*#m=5@4k=(dJESNIntF-v zlCe$GbiIjA+Ej@U@NGww8jql@YLpO3ORrJ_EqnHNF(}s(7bznUD2j~fbc#~RM5%2m z5RR-Yk`as2m|o6iEd(#gDXE&kn{T|%E0=GADS7eBU*fUH&aqtH;LOI5c5%>izdcfg zV<}bP0g3Uk&$;-ZxrhfP2_Jm5wVog}qA*ZfkcuSD4sRjzoM}6yX)}b#$VVqID#O(Wl#?+4lOj|QAU84q{|5FbL_X>xSig#{PWHXf$DK`y^gSl*$0wSgI6*`s61`xkaR9kS2gqALVI&_lks?rbAgSGE%c&J)lu)s$77~< z_aF+)#um-peNGeux~fJt1Mm`U3JRgun>Qf@12e?Ch!vjse8FrsLu!T0Ql(W$O;HY! zDnpw@w$M89(wjEPBJSMTOM_`e!Dy6R4o8CtWp+dxky4UpB~6{ABK!LXNe;1W*xA{k zZ7jp#7^TdSC3L2H=S)G@dZyE~j>NoTJeiP{IXWwuY?)rmuGTaSPuftqs$%b8itQYy zvI4ZihQMGrSsTEt2p!f2GNb8Q$K5;oRMirJVo)j|t?|rAC}rY67fI?co6RYTj5~L4 zbL()%#%RpOctWW&%E1Ve6?mW6%*q&qlE^G4Mn%)K930G(JS8e7lL<=Yl%-@eQfnEC z0CZ3Y3%2f9?9b`C4u2|D#kDEe*ff12tud-VDo>=wxh2amlW==bk9R|(s_rV(07tndhH`TPr? z;U}-XPE*hL+Lu1d=4i+$*C;>dH@^HCg47h7Bi?!AO>9%~`RBesa2>&SWI82O2zqnq zr0qlqJju90_875X17)U&zD5ScrN>Tk^0B|kJMUg$Lm3R7Klm4a%zKL^F)B`-++i>% z*`92W8^i6xeQxgUv$t=VSB^k3S}<8^-Fok_(!&FG-2loMimV`5N08v1<#7Kl-~ayi zxV<&v()m+doaA)Yl4oha%5^P5Ch~y`4kI=5+44R;sy1d#ELc7CjWNXF>Dpv+(Kaoi zZ+}ZA5Qw$TSoAancMLSc^{BNqkz0_ex(~I8k^u{VQ3^t&s$1CDOw@n?!KZVmazoo$ zA`&4rLK-I9+vH_x{dT=vL`sP=hNg8atCq#GL8>IR$jXd79|93ux8MU=UeG#E+d8Vc zV>(*^aOdtmr%#_w$f}`cb1TC+N0Zm<&7F@>H7(QmoT_g6VK7IQ6-*|ZxX|DRsgo1CAXHcEE)9lfwrm8 zd6|-vEKh@o-m_?Gtn)0Jj;!e@$|2h1j7{E?JrcgIC`x>cIOnOV2JZuHYZHY7h0>Cu zR7k0SNZmThUUwXPq-!nKdXzRajinq!d`QD+}^p1xSmQ_R3Sq8>1pQp`2o|pYbWRMJfyie|#Sw?3q%SD6t zsVZu_K=6XRC@AwWLMUw4VOJ6eWeAm{EZb0TCjir@5>s3Q7frC`ye|2BWjJB*^&=1a#KZbq*y`B4=G7Q;-)Wg^;-5Xu1}Y=V=&L2%Lwu z^EelAF0!mzq-w~rj7%C-UlqiLf1`LNlB1^Ze82nN|&*htv**d3 z;N88u6oZoLaE4QxEblC->pR4*C3*+Skd*_p+NLNCo%K{*MX3_1%*WJPrk5xj*SoXc z6PgAOC>@b#Hikpao;|}ekDq39Ys9VhuJXVB&;LDpvqMC#QI@_sA87+9?->qC&e87c{`Er3WnsHeWh{;(_NZdW=EBJtIZA#p% zqiroFD=|fmHX0i|s;4!i_BzP^d$}M8ooCrtB8thzHc@Ii7s!Po3Wbm|4g6UPQQ%4E zy{>DlwM-_H{#a66N(@rbm_DN>@Gs@@BQ4C9}xuQ3J7@=rwL)CVShUq(b?`ax~F$DpSkP#a^)+Zfx8d^-p zb~qd!Q84P7!DxslVw6HEiFcOZBH9!LByDF2q>X461m26}plB39CJlG&H>{y2u_&bp zQIHoUCM#3Y8X}|7D3LXyAPR*iV6CUjB)-=Puk6peuA^!+!(pDxUWDomOw#&6D0HT& zsyQmlC}O$~wzf-D9i;(}4d79Tm>doR5z%>C>ybJqGdWQxtdA5rTTAC$gb)Q%nRW6n zghr{17$rd{JdzLv&Zm1ZLLkZl=N1T^BuG+c+}YjdM=!m~i(mOX7f)|fD$oD7V^`zWy732cIeSyOvrh zHie?~?on#|ON>X!@uT=i<3X*edxz~-uRBV>dMO2BEh9Q^=;8eX5s9Z8SX2wP%WZtu zAZ)|tK+$$J$VlC_496Mu;ua%S;B5^DGm0!{zNk2PZVOw@$%MxXfs8uowNS+95F~sS z{qG`5GP#Klsk#$XL=RwOArqEHE-A)=FMj$0qfGFlcjt7KV=Euwi&Gp1i3q8J=)A;H z6GfmHfboK$BtAr164TNrKe-Qtn&ebXg{>F$|M*LY)>61TeE+3y^5*5A zbLR9JWRPg-00}|%zKOBJMN6(d(hq3oGhTb?$Ej+pH7d&p(ITTvgOVYgvs-s>(A9^u z%^`wjJ;)`EUTf1<=htKvUJWbhOk>p1fR=NPs%|L}Ld&l8yA0;&Tc*ta917$Q_)SwM&bzMmbT}LrUpRb)xX=TfBFl1O3ltq4@ zWNEZvC_9%bia?yB9<3dDfO*x#b=@*45*DZe6EGcq_6sc`q6a|g7 zAX2ioLV*G3@eqk1H-=g3DN2}ZOc2=-Qf$Q~t~*C*3??h6ZNpe-=KF_KCx+}D?DF_z zi;JJU#MQluJkuC0*GYd~B$1Vf#1=~A23&VI?CD0_I#%Pk`UDDWx z5Xg!llg$%}8eu(MNbZNG93mw|>+r2z)`dm7MSFj~_%TJIQ)HWCv&q#2VCJXz5@kSf7YZ=myx%m$jeK`F^_IHt&RLX1Qg z&{80jN*iXQDKTW(qNkfAq@FSbCLaPvG!Lannq?&z43ZQ{jz-jVP1m$2ouf<|B7~%+ z%}-32gb_iMoO|L~-ky$l>D~8e3d5PRC+T)?a$!8-Kl)o==U;yRd%SSz9A&?GBGOBc z{`ynRX4$Yk*r1tpJh8Kh`(OSk&n!B&e(MYT?Cu^;XB1x01$Q*b{3w1Y@e7mVhqYJ! zwHO*I<++dPjyP(?hIxs7%wi7Nc}Bh%o7)7=)x43{x9kXe?>s zdBu&4c+{#0Dw3Yo$20^Wh)9#ZXNZxINLRR~K_b~ulC81k+~=R=6HiY0@vHB0?dBef z5Gce3ZSY7XkTD{?Lg)dD)>C9lKoO!sxSZGtqKd@)o;BA0o_o#w&Mt!@Cwj+Qm)~J) zbCbbFN4=~#{q)l`^_=J$x_VA-a(qlS&8jyA39&&6K@c9D38eJIP-8?SxQOhhz@3YT z(DA#!^S8M4#93zZDc7!DCC?4x!I-Ppt~1%#BqG>4agwX=yv;Muy+9Hlr?udHhm8iJ zOs!-csG22p*R1u+t1}&AeBdxil%PY74=qM?2-{LOmM9Cn1RGjnw0NZvx@6f!$`fZ8 zoV|qJx{eN>+5R4j`FnVk1T^`0ho+j*i8-UK6P!5rME{V6<_-zvMTd_-OdBFphV>m@ zjSzXsaC?V*XQEM;b?zbiSivK*%#FN9gf3Sy9lmEp=TZM5GAUodYx^Ewg`Se+z5AtbY+?eR86ImC<;p0BQJ=Cc_yYq5(Xrt<3k zAhls*Ym0L0Bw8!fu*Unq)vH&jy{BmeIY}B40db>cF&yyRuY8W@zwi~V{n>XIj7H=_ zaxk-;dEz{GswMB-+GA7-j7~$#t%sp5QbK>sLtY-2FpHxJiu<~jLOc{N;kY~@5E5mm zsVK~tD?fUL3tNvfdGZqP?7fH5iXbAc>5xkG+U(UE_V4jfgLi-RWbU~4SP@@7ObGt! z1Az41-H#(yFoq9RIsVr<#rwG8-~R9XQS5jg4y6)FD5x~$yGn$@y)Wqhb9D2$7n5=9 zW+Q?S3KYoxM&ftkoZQ}KJR0)u^_y5FDa(ScYY07piP+O7NE?&%kO@GV zf?xdrAxMTF{U#wqh~5*NqsTMLvf%FBTO1zl@xlwwvpwEoduy9#Klw@CeDmk1ydXrm zK6Qyi)srWLO2!Z(B1A~IvlZ3iLq<#|94RD9CaH#X4)Poy!V&&TrG#K>dz&lY`Y!u> zbL?`?{_Y*TR74MT8yMyV%gW+9(m6nJBoi zbas8cPS#YGexoH233VkEQe`NU(fP>j-TnI>3QDgYGWY9gZ08ZmP&FO)c498OaHPFo zADc+8ok?p^>73R^y2Ax#nXIB$c(=AotXv@lZFgjoEQDrJbu6lmEKA2>xm*Hr{aHgV zF%m-JZK4fmC24I%JY2HEGp0eTqfN3C_C5zq?IV?)BK8k^yqizeX#qq}bSu_zgAb8c z-guMGpFGL@r#~hx7Bp4O-r)hR>ovR~_788D5NW+uQ_4Wq1;ip*Pvb3Jmj($DNoQ^Q z>UN9?hiE-CT_Cu2y%|_8lV!cuy1y7DQpBVUmn4lZi{5NS0D@&zqqIc&)!InZBQHgI z4;eX_E|IeCv3Y@IwM+@I?vGVe1P@(Im1!RW-R*t4_HK{5Oh4PXNQ|N9DyKChr9?@Y zKA*4B`3M1ople$~%&41y5EiA9VT@D;L8R?G(`n6enFtqJ_@1oN5Q0o+SxD;E9?@!~ z$Gb!JnI36mW5fnYL^GW?NAkJVtbzDwOVm9>*FhSr2WK6vUu~KsxiBE%=a+Bb z^-q}3XZ*&OzsimGuJae){Wd@PW=EbWMuUQ1`|NWRS&nxNN+x7rj4?HsKHN=beJTE8 zjN8M7mKoJ@$@%kVIkjN|Qzv6qu_<+AS z{zrW@NATmx(pHD!k*wlT{I$pZgLV&h<);LMWN%8u1(B-6D&m4g#dHH-RUD3G>dJ^X z_KtH5Mi21vex#q5snc-WrCOp`RCAs=cY?EL&hg5-@A1Z4H@SLa&Ym7oZfv4sO=0(` ztwErOU56QfiADu@0+}h8&zH=mGxqnVG)==F{n5YR%{Sj>GTA~( zy-w8nTy-sHxmQDvAci3 zx4-v2n$GjYrDp-jWP7KtF!p&)jKtvjszGY)65<-k_hCZ_K@30)mU@BGWZoI(wSG|M&hbT9*t;!@z|D3zGKqTlGPk~H6Idy&l=S7nSz=U`nePq9jlJ6nB#=mHX>^K}xm za$&Qb>d#LabPT<0g%Hr%+~yOCi8H-^*tb%hfmT-7z8+X?hJl< zo5lV<+v5p;^J`z_#Qqd-1@Rukv!l&Ps%S!Ap+cj@x^bk_FAYn6@lENGcFO!pdxNGWk$n~Yb4Sj!+n zNSpN#0!2}vl%lHZ-W^Y_8O7fD9^<9gu7@itY@-sx+gh83{Q7meVh;oBE{+t5&5Q^X zc}A9J2qK5egVb${kq|^0UXB70B2q~*lNihNGM^A)Zv^7jKf|K#BWW08kVX<@=r_yh zey*fK=pz}>O3I~#WJ4G1oH!v#(RMW_cDBit#@m+Q zx+EJ59@K+q6~ElFn92>&T2Ahanf?AB(rr%&U;h%*dYR-YJ<#W94Ea&~vf@#4{3!m~ zL#>h}?rmFr@K$haD~3cU@Ybh+q0Hc94q6gaj!=PEEeKiCG)r-ewRL>Blw8JpT3aLy z+=FghIy#0jBK#q_$@v?XN4rBR0kw zLc3C!q@T6=-NUtOSJ~UUgGTf2yEka-mU5$HxvaQyh@yY>GP@x1W-^IUx50@toz`~TQ`uUN~j{LJsS(%$=o z8!NKNDrPoglbzI5PbW#EEURY>Tk>eefG~gs_{H$6-weMG1{lDA0eNhAY>b0OZjDDd zr|woqw%ARwNmemcPB)&g!wP=*uYJzFUAHun;bse(T0rr#>fXEeK0B>%egE(OeMDt2 z)^XqcXIa}=!?%6eT`#sT#{Y_x{Z3WXdH(#Hz4D_<=;R@3N~6$SqMJ6bwj!*X(imll zT5)WB#MbQ{9yxQIy7ojogHy+0Fyq&L^DDgb?t5rs`0Nip&kIlAhl&T&1tlavh0!5^ z7kWUMT}Apy+geKsesLf4jad?oAvSr-nCyfP38l>;Ewbp2H|~hFmFQ>aqoDf+$PniX z;Lrn)-eI{yBtxZW-*F=BM7_40-rNrL8Vo+At7-@CKFe>W0r96IuVcRec zo<|-$&7K*7n-kJ}aa{eeSnZ@fq9Bq8T4585TJ-Y#6@UbCq?8uX%pq88c5gUnAt{ow zAmCdWjFBJ{2~13cu(num$U-nI(m(r!Qt)0<;W9W*NnA$eO_#5`{JgO5D(_1#z6a3x z`C?JBe2z73ST2P61isMKk{+pgsZ*{N_~rRZ^owYDPKAjFZ4waa)Ij7KDM50?C{;k^ z<#Rb_b9{LKBioC)Z^2rz*=wT&j)WMc0%Q%9)@bi@08>F(O3Gu*Z{{B4Yc2Or6XvXM z4s+j$ER0gzW_2)Tb92aOP%+(846TH0G)+M3B$cofDU4WB-Z9>1390K6>t)HH>$vgj zf6Tcb|1{yjJ;e}hJeo(WAx%T#3w zrcKR-H*PQ*jd}d+Ny^g8OJ6T#6$giCjgQhVHAn6Kgfx56JEV=i}PrAEI=hKg9i$qS^a8;5`{;bjeP>P+xXN8Bd+hf6NqI3>{iqVyfwa zXEYq~;)@?+V`H6%AAX3@c*yFYq^O1rhC{jtP3I}s#ePZvTU?Y|Ro+J+5%5@R7?gv* z^7`H}l2|;Y)Zw&)5U71iTp7_cb)Mvf-P@mRQCLd~9hEhBrI>d$O*7@z_8!GxmAdZO z-P@xq9z`c}001T0wnJl4`7IfP1Sy0h8c6{)fwt}Px$VCy$|6r@3fi_^u!!PR5J*~B zU++T(6^62u2B?<F`3goyXu0*v?UA{Y!S3vhSPqdd?zAclO+HCoGO?H5P=LZV7;>5-j*C`u9a z;fQC2=sc~`46J4zbF6MVVYs%&$d;Jt9@VH|IPUGktT3&BRtjS+I!VRIXP_0x?7GTw zo+L6Noq>KL5yO({HaZeh24+gaM6}j~*vi%-q+}%xP+8ip5dddPNJ$u4;v$|qC3)Vg zu_&7srSg!1ND!jJ>g737N>kb_CDK+T6Cn^|!dkOPGK{gmF62hYr8H;J^o;nT_wt@D zNr($pFRB0_X@^EzthR*ciP7ieNi7QtKk6E4nWYYNt!Ub3vlin@+73$XsVXbh zjWM89#K-PPaD3GK@Vy)foofdx%G{yLTB1@dg%YMM-jo$<7|X{|8^t#E2=Nl@^_23PhiqYfQ;QtBP|Ue}b*2AL7ryewBB&W`y~aCm()* zrye_r342&2U_*{`xtl>%F`vyTi<0&A6{eFZBrw`i6eZi+JM8Z6p_R!j)6(GsdP#s2 zJFh;q%gWC-T?a{vZZS_5Wmz$w*9?YZR@XLgMaAZ^6IjF}_V)HR$4;C=Sx4K5uj`^w zjJ|9ylW$4^FgR;*<=@O}RE)Wz=%%%THj3wRRm!4DN6|5&7>owY_G<7g)|AYf8OKkZ za8Jvy>n7-xtE?3-w z*_DztbOBI`qHr7xwz2MT08Vdnm?BhFdEi_sl0U#?vee|q%m|i+qbi4sv_q)~qynrnpRl+R&RxoC>*S!1OX^UmX(#V$KoQA(CT{m)n{pQ&VN^WvJ`ecDol3Y)+}kI9N@))pTEtK$`R_U9C%lDh7wOhl=K zZ(G#ZVXVQ22nWv3_iN~=*c=Y{jeqwWoZehvv0bp ze-FpqTrB=}409x)`|Ed$F2_N8w!Vw>-~X;-L-a+>|= zoTl~EO^XkSA9(5nXHMNGAjDXvT}N3Js5oO*MoDZ&W4$G4O&0@&t(@L1So}4s0V$MM_KA(ON?1neFd0 zjr;7oeWue{)=Em_%zY=<*;uW(ePe=76(mbi37eEbZcxq9hsVmn765ykWQoU2!^5S3wb^BBiZo?6H>dhh|FSxpg&!m>Y` z;v2uX?|RUrv#;w>!$pWjL+J<#*xO>Yw3wvv#?bgA0R$CJgy%+<^K}rV!)>3+O5Of)1@NxP43Gh-F z6(!nNDT0-+&S|P>iMeemWTyfJsOaw4cA=IMj)Ncu>;mZYe?s)Kh{@Nq2aLTZG*KEu zl~Nd`sG?f{zQP%-E(of_S&LCHY)c4{Su@A3!0G)7W_yqF%n4Sz9YQpOB%j5UPFPF8 zI$1cU7$vMkiIc;?mWyjwC;`>vGImNxbg?aSnwqfi%2;CC;k%B(c#x$U5%fWMhDZfe zl0{Wfy8OMv=Vz%S&TM}M)ggpMLmDJpv6QSF)NWg~WR{lz+Ai2*r;0<@Pg3aQc>3!$ zaANV+#x8$ey8xvsC87@`4N8eUqA=~^*PTp%A0(8HIF<{ynDV{sJiX7up+&hXh-52I zBfjp@3$xw-Ob?z{iYouTCsGnx^+7S3q!O4!P#q-EDDN~=VgYrWV+NKsMvMZgf;uI1 zC(^N_IN~mbL&y48HQ(KBem^L`SuCoNC%Y375>{)BPn2QK@bV4Te)mh*U-~E9oXr^y z2ebrY>f{k$NYzCec*k+z|JuhK!`;63*Pr)~+J-32{`z<)h9mZ;;*sUoqn#}{Boq7p zbM*a0_rUSJ@qHbKALf*qLn9QbhU1V5zV!H>?P=}K7vE%IQ z&j{)?zHS*fhl+_+TC5$iJKf{!H*c}MKSQ-OCr2xM^pQ0}u(YAWD#fhcA=rZRmv8db zZ+{(C3@L{d51hM?C(oW@KHFh^WsRM^gsp}IYXDE^Ix43zXu77QGH~YP2~M6m&d&BW z?_Hd7=FD+!+`i3Zvd<%rKE}%Gnxw9Uh&`e+yVtocJa)fpK?4UHsuG|3+&^SxWz6L( zm$|)lgVptt)zLAglNnDx{UrN!&Ae&Z+Sxzy`iTxVm;Ym=Ya_lpB1-SCykVp{MI&wr zOs5p4KwB+rP*SKQpSNpUl+jdWNjLKh$`TDE75T)6kMjdBdlrCVoa;OKS?G5Uva@|DT4zTO zm35M0l(J?Qyl+TZQq#x7E2Ze_Cd)>ofl&0!>< zkP@AbJo$kqdHnIm7Yut@mY4v;!B84LtwC$?>E*yR?CtHGwY^_SCj2t%djJ@dKNm6J zy@bqY)9cZNjn>)4LChffM&;fse)&u~TPy&n+*k6TM_9;IY)(V8N_?2*o{bBzX_M@~ zPtij`^l<^)4}v{sdtdXEk5f`IgPaWd%4DO|(f*OLj27)>*U7{( z91Qu)CqBWkl>xKuUFLgx9A91Ge1rMU4ox#Zn@t#x2E2Qz z!MTcCx3-x~=G0AxHTFnwe6T~lpJ4jM$zp=1XSo7@@fTm>+2@{ReSHnBVKUicb8SN= zGvLC73!J*|eyllKD$#?rMUzrmdP@Ga?~}~3CY2 z+qe0n-}`Oa{VB;Oih*OogcuV>6_iM*OHAUk-IKCfYnoYos2S@ZgD1?Huy!dP%?kU(A#^+d5S60$C>vm>>}FRbo8;*3ulBLuqu%p z^kOlvSiCmSUr#pz9=hw+FodjgJ|yWt+Ds`q`93 zYbzyj(G-`;EY7Et;N>oJ2P7lTiQLDdFiMj`z;+U$Tv$u}pZ`1x*tvRz+nZzlE$rXXQ{tW1gPqTq`-$L@ze`h3IyLS0I4>55y~+dtsH7%TwI5|&Hmns zQT(Y@z9&WIBMU5_B{DGtIxh`yMqaRom|0^C(|Rh$6Xdh>6~34k&awBk){4?Dr6^1L zK}*zH7P@NrKJi|()rmyci93q1R@~3Cb4beX`d$juYqJGpM>Kw+hweXHin*aRpWFVJ z2^|D!U`sZC_7M1?ANeUxo;bERk40gKS)%iP4W$$*MyxTI2+@1WqNHd&Z@u;^k3ah? zqvM;jSFdqba`)bNU&lRgd~bYT$9I>21P~nk(rTJ!p-EIqvAVj-XuLw36ioLyHn8kY zI)-UR(JG?y%)^vPHxUU1hC!)_(W9c47b)UU;8esGCHuQu3^klPy~2*3^YBBDapuf9 zUVZy2W@W(X`%m+&8<9)bZgJ+sF+TXzQ>f!3e7DE3D)N~RJ;x_L{Ry_-d5g2FL$+>S zHo~7B{<=V94p%W*VsWHFy>%Yfm{@#nc{pK57n^>;BcadQ^ zV6?W%=YIT$c>C=OY~7mh$kUg>RHdq>iUuU(}{(zX+k6b&i>6b$0~!Vs6bl{Tf2;kQuNc)xs;hhhql6A>T-bh zE#G?iFX^UJRMdC^xP3H;xxU{(mzI#0P6GV|-v$A=!oCXIWUav%wE!$Vb8ION*>d$Z zRv3kKMgU}z#fnlLe3qKQvdE z9MbXTu>i}ex8BRn1|&iZG@+%cD!Q(tuIv1)87Y7F&J_K9tCv80!ER@ky}uV1%&~G9 zv(#YAHG`P^Ld)JCPl}e_8yl7ugrV~}>O1d4WzdeoSR=BM%;u}q<>T$+o>SJtTYBf; zSi0EJwVt38Mk&^uLsyPlx2{l) zp;&=v13q-jyN2ikLpx$zj8MZOGcXoVw2ddl29uz$j&@p8lm)}G;!0A?V`6)6m%ZCp zxPR?oe(V!3@WaJ%zI_>f?{|Keum9PXdF+RtX7kB2ur}nBPK>5|eDgbBM$F~^?9=;L@@@spqXIX?gU-=OJAo`2y( zeB-qXeC>_vY+svGjgHZzAq{iJD?{G7wnfuUc<8BT*xtE`4vuO#W-wae*47Tw>6Cgp z!wvolHa7$05JV9gjQGMPt?)78i8Qrhef1O%oqLi*!*d^ehS6xq=Gt+d`oM=-U0p>N z142^L(0A0xW#SMs6KmWeQunVr5=tU9vIddeU52hgSwrhPY0yy}DnVHooKXzQ65n+U z2Lob=%<9Pg)rdx8b%|CJnCYCPX&SUi7#j|;xJoHjN5`;c zKwtN;MtpL&Zq7()8HS;Bkg_fUz}DB-F@-?|Ks5yKna}4;r&F<8OA3}?enU|evaephNhEmBY&K(OZW=NhyVm9kE$fQp&PqR8@H2iY7f@?`A%eY5<3|yIO0S4$2(a9dg4Z z%97fSrj{@gQo?sFctiD1cVw zhNY0TXuYMA*e4mfRwhQ2cs%+TcyDWhMNIN5t(eazoIHMv#y1Qcj8?{M-MYrwXn+qv zN|_;16=TYx;@0*yrY=}t-^lES!FPeiL+k>sg0iX@jz;WWzs{_l(sebiung8VnX8Id z-nhs+JD2$OI}N8dj`7haALi5d?_QX!d$YrSkL? zB=O0Ia3~VIFK?s7+R7LMxuaj_a%%Jmw78D=1aUq^#}=HUZT1)r#!~ir1GM%y(@20MvENLdv)YZ+9PG=3F@l%QjzYg&xb%|aGS4YysnBt-WP!0;3&SG1MmX9ifV`Ze| z9~Cix_lfn*bW})x?4sH&*`s8_Kev zs)XIP)`*>9H=_%(4c&=5jt>!SjL0FZ#Z}cpKb?{^r?nGdoK@0TB?(7y4qXV7 zobP&!h7dZMrlD>c34aQKqAF><$TlidVhck|pp!iJ#%R2+S*a>n6vlYuy!PFd%6xFQd3xD_reBg6G&d{xJW%nl4%79Q$Nbb&wSmn09 zJBOyXdrNowk;Snc^-XmoiGH`wm(rbXQfcv@JGXt*zaM!VciZ2QElA({rOn?>aLio* z-92!8VDw<<&VM~>9DVBY>NfSA^LIbNk+jhFiT#=qJ0SX%e1x2wWRxX!5vtt$p(Sed z^MCvmn*BY_oH)apZ7GdrS~q;)@duc7HKCc&cAmEGC`vGk9-N&QRAKv+11eon2mg^L6%S`&=82s9eEh-tna`e4Rh}%FF0e&tS)o zGoJ17=fC&sR6qU^o_hQl3R9vh$L*WfY36gHS0v?l_nmjx+1lgO<{2(txQ;bLeAGr|zdQj{W@! z(FaDORX{OsTT+OuuCB7bw@cH^an>-I&KV4b0+x+|;^fmHARVzt3Yxbv5 zRpRcDS-%B?oIGem>m4FSC5%c;8j&s-XNh?M;L3_fB;@O>v_f0Wd|K0mj*vWUR}(sq zHij++s;WW{Do6pNASr|Q(j4Gr1T4|JVpdA5?Q9;0IQpBW)NfVH%sOX{$4dZny=6A4V)mezOpZjOo;gC!{OEC23s z5D*@6Tly|g+%NWz8b|%RT<^#vHLM!P#$d=hUwet`b;Bp0dx7cRjIJ=aro|;KE+}_w zx^ySELw4+2K-9_kp)MrU|*~5`4m2@-%es^b!JNFmAN3InAzVUYw9N!y% z`-XzW)6;{YgXKCQbh18@01k|TCM03FfS>x2k8tJMjF0}{4-s*6D-S;*=$bFl5T8n@aFmRy!F;wtZlCG)vtV&om)Gc zeCSzT{P@Rd^^kWa6*sqUV>U-T{o-eM;Nb_ECb-?y*x3L*Is?@izI}d&oA2&&>DsRN zo=*1Y>g%i>+vLmNc$M9)HC9F^DcvfQ7(qLZojAd<&11aw+8cc1+ABQ$#7VAg@ACRL z{*bM!mw5icPZG*irnlasbei$WHE!Ox&XsFdSYKPC4S|*MDxZGw<9y>UzRFt{-iD$e znFE?frBQ0>YkF|Ve0o^38baXgsbl!{Bj=W#2wKD0UP|ncS4Jjsex2|GK!?#~~nHAUZ z$aKo69AIY?UViB%_NOh!kDuW5<}p6<*}uoBQ>PhLj_Lj`>uc)-B@JH~Mbpj&cqWba zElr~^g8{~>JQ4LeNJlf5^tIt|$aFTPtFtCoEhBehj0hrGPM*eUVye-`6H`s_0vwEX z*^_qJnV(Xkvo$exG`gkJ3hvKFRvV8ka9$UMw(l?CA2j^4?R|4Z$mnv0_oC6c|lV z;y99WQB5C^F7?fHihxoYXDvD{6Wc_tljzOH`hB%cvjE3QDOrp}iSrI2V6wA?;=5zQ zWi8o-jv|%V!X0v4v85~?B10aGR+Tld9qEU56DmzBwG2YK*0j>?!mLzTP5ro+Jo7bAudYN2d&(CyQQci zHYE%ilMHQ2SnYWI_1E~?w_ate91ouw@RL9CY3j)YQ)qPbi|zM%P3Iib>6Gboy0C}> z(Zh9J$J*K&3Po8}?Cwk@O4i07Vrj@6A-=KFK*J9!^eYkc|ZFLC?YbzXeoW88P@ z4DY@B9MZ@|PYa(+R7q1s{C&1wQDn6K)ja>mr%;0upCU0N<~v(7v(r3sW`p^yD->39?(7-PoH@zG zix)X{-$@>O;t^hc`4yZiDT+dD??@Dd#d`rkQsK0q0=_#M9QPgPi)1^cD4fO_gHei; zC)b%yciCLupsEIp#w$Gj#1nk+%U?lj%cU#VGC;~D?B04R1X7Z+YR^<#b%c$E9BKAj zg|6)gAyPPpD;2-}$G^iDzxV|{^5nzlc|)Nz`q(i(_YZy+g=KqthwE1_^MC)F|C3LB z`cpjk;6n@t2Jh#P0wHwlY~7-&3c7m6eAWspd%%IAZCmloHA5DzFHZP^iT{*Do~seJrfjST^s)^wwa+l|uMQyEZ+louPsMCdwv8?jEp zEtHDO?e>~uSp2;QMEx=KU&Z|*1Iz69E55e|V=UG>Vz!PGhYh((y#<(TtIHAsE3Od- z0C3YZ3)xH}W!pD77L)*=lxF<<-I*BQKep3&-YE?v6JWVTP(-Iaxo*3#?HyEx=+ zD`gh{KXfiXCpyQpYq1AZ>A<@$U%wQHQ6i*umK(@Dua=E-fkTT80lNvz!8Avf_g*F( z`UQzXEB06FRc8MbIS%oM5jKlYgxQ7pvZwC zD#4&Anb$2L3CW_+bY3hH-_H>Pl&YZAB^!lf)O4s$$mr9oPBrRW4EqLY$|Qo-JA%CCO@|KTGaeUa1monxgO z@P$A5U4HkE{*)j4^hb%^oc-NhEP>-IV^&A2gl%EE*4Ni5ib7tzNgbNp#^W)&evh_o zCFEf?r7UGq*x%Y=b#S$7 zGN(`9&*jUPxN++mgHb`}J!Q7XGDc!neQ1v~SC^p=0UKisTer9Qwa60IsYA=eEI{Nd*Ce7i&v@6o@RRE20nVK(y_WWq^QoadH*RcTsY6QYgbua zU15KJpW(1#dvAvr1Lq#NpPj1Y(#1;{3yDBXUc6GX=Wz%UQlYhGR@bymLseDOZHwxg zl~9t>N7kOEC~gdyO*Y0d7#O-PGmRmUvO`3d!CB`$T8w3hK9SmhMp0>p*DZD9F;+{N zGU}W_7--s#uB$1EV!{4tE#3N^7b(HQfA;`z?17|a=`|d>PD=0r5=*wvdwE`Tp>ruc zf9ANfy(5YYhLi|Jf%n2vYOR;{azM~xX?D;RLHZD~EFeTw1f7;{Am0rDcel5RPd>%O zH-s)Q91Yo-?;Ub==pZY~@4p%WEHGsYW^YDUK<;CE5JffaYX__f1G>nHO`_qnju0gC5s?b;b7m1KGCIAhGqmW6SF5x-3Mxj@8vMz~c7~_NNq8 z$!tEyU?{7KV;h@`d&_7;2%fSixODjnJ9~Q!Y$RYMQBY}No!_Tnvelglb2c{b=jvDf zf@a$B;h+6kF5kF<84gf&5;DLy-0R2t{*Qa$_}+M5MvB6CEnf0HtF>T`52TH04N0N8 z>}8uYlgXUHi3j-DM?ZwFC#(!c?0@pJeEAE1PF>dworc`x*E9`D$>cGg&)M18VPj)M zCc{?Pt(BFPMIw|B9)_coUNaIgdmC;`Yx-=(oaTJ{c> ze^W{*Tkz)F7rD8!gVylFKl~#MS67L;;K9c~!0z6J<0npWeS4qdr_RWA%!{7BT%2OM zLsE99R|$*XwboKMGqg6eO~cDCzs#F&yvp+*evao}c$U$yWO93p>WPO)qX85a5BL;m zQcVaQk3Mpa*I$2=dOjhBju=f&5;WQ3O5vQuIEN53C=orS$&Mx|<)*NFJ_c1KE(S58 zQj{2MXY+AOgH;Nm8uUKkJBcMOT)v({pbC1jvwJBttCVnOhc;4O{v0`b>F}OqNQZT(p;~|xn@ih0kQ6~@97fW%Vi^Y6?=~~z2fd8t^UCv8hX!Mfgli=5MTfHvjao=Q`uD)nOM1BtV+`6y z;^vs0uBK}}XHTA@zP2nwFD>Eh!jrjhj>6j9^pj-?S~A&EN_1^Yq30x@*uQy+Tknn8 zzI=f+y~Wm6NoYEG7r~*0qbv}X$Ekck`v{FE8HLi4*oa<&{l&eX0pY>MN3AoHnu9U=Qi?=Uc<=Ty_C)y?>K|LR}!$rnFMHyUtdHf8E-P81_1^O|Bf zqKkKN{JA&Yw_(G96^eQPBskyGq5nM{oA(BAm(JIyj{rY(I5 z`^g{WRHe|WWuODbYX-`*Vm0e-z)rEtM?dx?)9D5_!_WQwzt82}E&lYSZ}a41&v3Ij&tSMp zXr`=HUAO!9Qo9sc-t{w?PoeVivAeVkYa8bF7R zU>u!tbUA=_Hf!i?NsKiic*f)50=%?MLugx^E7_Y&Y1@|Z#t8~*By7T3DpxSbpfD&2 z)|k&5lq-laG3grIxTHET>Br~^ZNQWk<1ER_eP*;pPikg$1KO~0?09A}<&kQYW?Hul z1_P8*OqwaiXlsoc zbq(4Xn$Qw`LKy{Cks4u)$HO5hC8|O`qcv^;a+Q*p;21pC=qybMD3z$H0$n2aav)j0zIse0uzvVD^fQr?D4YF!r~K;uYM*vvVN&Klj*?Z ztZu1BW6I$Q3M*-gJyRVuHfmItSRKNruh%56;qec^Kl}xvgYw)1T)lFQpZ~>w%K3LM z;Z;TI8bWY%-BKcCoS}}MU=-Erc*%k*C%WkltWxMUQI?kAYphb@E|IO*Y*mu7MPg8vB8gH4-v*A4Rv8UO z1m9wnMVVfUekb4wVYv`FEcv^09M!XN@ONPueQY(fvpr5$r>MU55`#CtN&Aog3*Nf) z7P_*ywqQ?bifT0<*7pV+-|d)}8P&^?ds*)s>P}nGevx#?HtyDVm+su(-L~=l8uysv zd*gi>M`;J|`XD6fYPQN{Cf9L%^B6z-!#{uz4J#v!vn?>Aqed%5Q4~z3yX@}n;?@T^ zqjU3}SpC%VhPrO$j#tq6>{FW(RvV_XIpgt|{mGQI^);sRIqyua^5_$f^42@=aOVEA z%=TwI^~4jLcI{P9M;#IdEhKf-Es27Nxu2bm)P3g;rD$50WAL`yo281at%7V5Ly{oXm1uN?%D@pF9{#y4s(C9^0 z&{t=AKsT~0V&Rw4p(Zt*#qKf7LXt9BU#-#BP!0PgPDQ{HQTUh$(}w%*zYq6vL7lI0 zVtH)_qcLT#ZO-=(+znb@@_p7!D)aJCae$ikr^i zJ}Cei9}+Pwn;Ko=7>)-LIi5t0lL&xAYn7SmM8fmx%dc>5Z^j?|%m0!4o0_W|W6u2K zPxIn`^FMdPYp3;ra$!o8VaQ>qrnQsxC7EJ3n8J6LMg*+GN*JBLNgkT zD4Zj8eIukeC%vBpTGx4;D>-#?os0kS&pBSKbM~3Xc&)xc=YyDVsECi^(S8J0y*J+H zaSt5d8}IArC(1=h@~Dv~N@WbbZL!HRDl0zz%!8tFBcf8l&70eN<7;1~beh zgRv_j%RouV+k!W_S;u8%%|@#ozB?0e3i*`m&xufyW6+fzIlr$o_~U;o_vzMy*=jpdvea*fS@yL zmJ;Zk6jrwjt>RJ#YD9Az$jqT=VoO`{6F>2zeC%T%@7 zmOIn8o0=2D0sHg$QqyQHb!^cp2QvU6D0~2eCM6?|3tD6H8_*e@C*?%jwsb+X(ZP#r zf^{V*BhC;?k>Y_+kG$~fg80&UFCfKQ(VuE#7MjY1lY-IN^HqlLME^J%RRSndAhcN< zNyI2kn{oqVP#9a#hEAjxAudbw&S7i;x%shh4yP2s*P?R{3Fw1MBDGJV`8BeLkUl95 zdf71R6Qr(@F8`EJDQ3$$i9VLt=;bvIK^R-nxXJ^q6jBn;I?rCa8)G6xl^f^sv*|rH zvXDgd?0kQ&Z*OfAjAb+)lJ;htJavqwX_zk*TWP^UcU^a+h`Q3R44Plyuu(M?%f z-{jWTZEkICVGPXY6RK*Bpt93SikM1MnF6g0eSCPoUx_DnXr0|Tf`=GzR#O(0tP7Rw zJ0y$N2b@lTkOZVl6-8s6WiYZhBFY?ocZvf@llPrLc-Hw#@WwD}(@pj=Kd|7*Hfla} zy!q{K@e4oo(`;JD2XF0h-+l1dCqBwozxZYT@JnChzK70o{pL+h7ppXOE{-E!Twh{t zxOIg=X^8+geY2p?;T?-}B#UmXJ&WWK516k|PeokP1|yXi}18)^2G_@@lp6TB4=3X^WO?SJv8+ zE$xB@W49oP@y;7+_|QV*{Q0-h0mZlK=S5ZD2TnmSc%SdJAvW z6l&1u8&7z@_j{h-)1E-707#q#9~?p}w2}y^a5j=wyoak-ud=eTLOYKOg^?!ub(K{l z8aEtb`s@DWTqVX$C`??NGETmXB*t={;Xpl&tCx9WARn{gzsF9~Q5PC7_6 zK?6MdV#|IG?z)$Ymsi<;;7z33 z^2Ja8C39P*x&PoEzVNxv@}-kUdD|n8a_Yi)p8o7#B5KKZym>!`a@=+IezwicaP{&f z`Wx%Cih`r3UL*w1&Ye4$oE+z+mtSTso1-qxE1HZD0x>oqPLCx?WGjTm5g$CGPzUE6 z+jq|M-uHYD-g}1q4X#{SVEfj2w&OUsYdg2yb{prRjkVVrsiwhpK2Flgs>WM` zPU3sr)IEAf=>n=Tp;>gJjnM!HG~e^ zEH*qqGhrSzI?2d1DWZu@Hs?z4PZyJRh9%F8x)-v@t6()8v?3w)Xrj^L&%8y zA|wzb*2JyrG>JP6r5wg-q?9-z8eMgaB@VLT&7DloAF#G=`Z)OlWW?2vrT7Z-!*J*Ht5Tw^pJ|L1cthKD0fJss&Cgu^Bm)W^* zKSfrM6gf(3v{IW)>C%Sl&hwEmIN)&U1d+BugOd^7nRF?NYW z2I8VYda-GG69|lV_}U@lC=S{qiN`_^szI%R7m>LwWk73%5UTkOW5|*40o6>Usc#Uz-PFTFSrfnWw z^QCUb@26SR3DIOqipXOY^4bJ>G(x?m^N#13wejaFiQtg{B&r>EzJefawQxRA8O#0q z_R(&)31+zY8sbF#b<~l1&(`T#hEG1n+4T+H^#1p7&Tim+jG~uPM(w&BO|}0W(YXHq zxNbGax9WAPuXbMFtT`49rNTj@9Rs}QxkJyeytIZOfuKP;_U+mRF1pQ&R>5%KSYBC2 zBo^Zw{f&*ySkoj)=oMo~A*mV=f4s3+vMi;lDvF|Dz3)J_SX*3UX?2McW2e}<|3R*7 z9Od~_XQ`*(z}V~Iw%A9NdiGjn5Su zA?I8(#cfPQ2tvbwyqpM~$@) z2q_RQq5~1}wMSO7K_VJ6RcsRLy2e?%xh@DHHo0k6qe)Jtk-F*edC0w7eJU0QVy2jQHDYDIp zW}Jd+WGazDZpu&?sbs9f1=&mx)8_9ZA!B3~^UZWxHWA&KfxKO5?Br#-^u{YeTkf-AZ?SoH}b#`P67q8j$5RGEE30oSG*HM_#mI z1L_^A)Ku1T_S|^_fw}p4N;ANFN0xVJb;eOb5NsU-DS{+$9r>ZTwx#~s6d!1=cTuJj zQ#<2%AcPMCNuBTS4uav9|HS<64LsYru?tOdsvtRgUeC{WHj34^%eu+IF`Y`|M zH-3}PoIFE2ZPN;`)YZDin0bvl)V%*xB2<(sh0(s=}cwoK2m z^5;(?@7PIra2NjaD(D0uKsKmBuj1riyxRJ6t6t~Q*Wa6NsJ;F=KKbkYe7EYlYK%Rv z;TQfb5BJyq{FM#yXnG0PXMK-u4uLp<3Q|O7W@8k3!+rNKJvB#NdD66CqrXBTJ((ym z#$%jEBpGR|N9`50DH#~p7&@%8C}rud2b7Lmo>ItWq8D&}JyH>_t}#9_!Nlx#c1(@a z>9w)JFreUDzwKRo?2kUq7mgld_tr_u{u++KYsjQ*gH6oLoty@!L-n&ZcxN7j}n zp7<;)E6YrbkC7%Bt1Bz44c58){(HH2<}^je&@FPjaICCu@ZyU{n4O(sZoI{styo`M zrJJ|t%+GT2rBm$QxtFS5Ce2bVUs=EohMYfhniHo^vb4U!`f8u&4nNO@3l~^gUZJjH z^Oow2sOfAtv)*G>q=JOtQ4*vKh!7eqnWL(PNTA({l8OK4w|V?Af!I#pM+yrsm?|C1X79=zEP_laGeYMj!l&orLR-7w0TAY}h1A=#BMI ziEg9>5>r{Q1|g%>PQ7{1^F4{IxWQ`QT1pz+l<)u=D(L@Z{Ovd8Yx3!+Sj-eS^Dujrc6vjHT zJZ~n8F&WBuk9C3CJ8bO{Dr!@$4WLG7D{-wU5(2z!f?S%0g4nP)A6dvMN#a7qdAzqE z;`X->0`CIO$M>hT#5Kr8ISRRGuwA9`n|xl;NJ)G{0T_`xT=3wVg-|m+H#VNnBhp2T zJ618xtZ4{F$7t|wGtmwN)_P3sSX^Jj)|T1HN%Y1#X^~Mo!>|fa#mQ)lEsn3hHl}Ib z)43M zkY#CXxEndZsEMqtr!+NX9gjCJBB@0HQfZV<<8)OJr3OA~vR!TB?n4wPL>ZEgG1X~a zAV)f1AvVA7_&o%I2k&DXwo;lP8~rz?eC@%V|?i*jg*uI+f9MY@WlHWncrGIeAU(kw-yBVk4>D(gwI zf-K27e)1IE40073%%o|O8(-OPjIKXly}S9>nes-zH~JTiY9^lbjjT%rPp>^jwYU-n$!oA0jmLhp$8V*ZKKw)wSBxZ+&&$@R;*A{QI!kjD*cUHw|8|de{b(9|TIq zDV7u(LGsEi&!Dl+B2@w&QWf=gS_$S`8itD`0Oc|hs(Ef7xA?sGBw5bIOUqoow85Y> ztZfXaM^n0Bkzwi8uT2p7r#eL?8K+lQXtga{r?)b!BvPkj0(MMv_y_;~dsrTp6zxD! zq@S$zW}Tvo9T`v?cF+`@>MJRx;$>Y?S_ z#tO2S;I{o;=E{=3vzThYZOcn+-LZ$|g;k7ml-9Diu))IO5=oxoFer0Pa*)mJ3l~UvxJ=IZ~~$ z)r_FaML?%{B&0~gz!-e(o5mnFfx?|L8Q1w6`=g6 zIjK3Y9tAO z7kHUOxk2#Fgs=(AaPhUfszw9|QXqYe^nnl*f&}F>smK|K4MH_!rq?5R=~>E|X=7`;FUlLNfsnJ)dVCK zPc^K`rA82_YtNdoRK_7>v*>UhEgE`>1JP)B5srYx1&0|Lypx0=G5sN0C(scjN|6Xj zVthQF1k}>;(Jz0QZ+YK)`MF>GSDbk1Wsa>^{MbMFCB}dC*ZBM|{xbKz|9$+YANXN@ zxO9QF@rwN zQ@0nREW^aP3DU}CI=SBi7zuHuC!%UaY` z#+pgkH?xI>OVn=SFE(&HQrr5r92W!g% z*4GBCtPVMS@+>O7h}4=iPZ+E(ZhnTN$BN z>rO5$EYqHxr3{|43riGv!IUo0vP8)Y@9S56%tA(HbtDzU$)LE&C8#QEI-M?6Ib>K4 z*}3C3K6C1E+T8+QJIFJv1Ct8S3BgA4h!-?5#+JdL&&0$uE34~FPR=vGbvvJZ;&XI+ zEmoJ;81@HbQd5Pf4VE-hVPm5?EI?aC&1q~rE%?|V#RZ9C7EM z)T~}zr<=84ah1#nl$Q(#W^<9ZiIqzg!AqQVNTH*iS_?$5I5Wh!0p15HowL5a%=F|G zopwQ@C4>GN##l%sUX2#;k>4vyfpk&!5QmkqtEmVL0Y^r?Z5qvyi44dxUXO$b4XVu| zfHZit^+=V(!H|H2&@@hgRElP8Z{zd(KnkQj;KD|n*vcqt33!ATBw9t&pR-75kTQ@3 zjr7snse(rZi4+zWESDE9@Zo>@PdRer1-uvh`bR#(=MO*0@BE8jraQNdPyFj&=S>&S z^I!brk201G_`}a1V&lvji^T?6uZ>&t@pC3>ttFmH8>F}Jnl?AL1sCqf<1C2EY9XxXAyOOF2GAF;aUHq^d79C`97rlw~ZU}KXOpt%Ws zonFe;prOdX|*zH-{|%N2G^*KK^_GoPlH zOVT{&(2FnAZMB&mpXBVzm(WVHe033})#eRkl=v5$FCEjxf+I;%y4{2V*|Fmwh}S119gRwP=HD;2lZ)10Rdz06aG4-=9WLMw(FYxFv8 z9)0jGZr?UeWoqP2zQWMlEJqE~%}g;$B}kbdrNx>+w>QE3{5ICs*C~W#c6^+2SP@i) zZ)F%$M|Nq5p#g-z)Z`o+{Q*T@ux;y3W@fjrch3QyIeL^tYbuqnKCGH%FvSIfv(5Iu zi&h|kASM7uqgmZFKh{}&A-Bps4ad&jV@~-N$+$T2fvUEVWa1sh)Fe9KWyDr0;i-H;5v4Ih zAEV@-diF53a%|bMoqm6b=U+a>4}b7y`N_ZkBfR^+{1Bi2_5Yd0U-_5(=nwr}X1g=| z&d2@&Q`Iaju99Zs1a$mfmBfn()bsw@?v#=esT8%hxF85pMd@5K?H^$sUGPW|@oWN( za{*%_)=i+IH$aLA4^}BoWPrv?h4F%Y2kzz0yYI)iz}w#SPJaJWpXKVp6}C-uBkSB& zagzS^st_mP)_5?EZQV)2sS^y(p5c-I>O-8qdYSIz7}k2wu8}y#@9z~4a;v_fb*nkP zRj*5J8l|o?##n37N!FNF{58YgYkA{=gER%W_pew6TbY^Gsv_@RRu0xx=1^poW~i1)RIg=o)!#z#`&eoh{Za2c1xKdpIPk8^cIPPzq-yHNTa7Y8v`#3Rmjw-lF3uz=rQc7H~kzNw| z@jW#>?~#uqgljYgE-oE79|%DrL=CB=W#A2hf)wCHz*>V$6h3$^oWICZr3qNU~|}e&9BG-7Z;@ z#uP3gSTjRjIQbH{kL_c2d^=ayj&j><%J=QKhl>|4@?GC~J9#SU54JHgHOouKF0xdX zbhhnfx|@)s2As#aIC)RgXq2k!nndV$!wVo&jTb4d7Nj91xC9#{9uEqHdnE%lM&Slz zaNs0~6of3^Jhd`ZrjKqFwDUloDT+KLO`+FKS?#2(Zzyz9V9fA_oX!{n8xYO{A~LCO zLi7|uB2|GbB;bH02xom=aM7TSgp^(n!3^;&F_GkTSAh z7)La?X-VZvBr(Pu8ADZqjCyB{#;;n^?ks06ERs+4DEmt!s!L{5t`?5+YRNDE%iqEL zgTKRn@N2(>|JDDML+|~5?);UX<3m6FkNLIV{0L8;JdKh$rm7kiJ(N{}5;18pgn+3d zicctw7odbBs2Jv=u_V-+#>UMconb)An6xKk5;e)z#dAOkhT0;NAx>62cGo+ZoSNdv z7f*0}Ei$Z^)>hb=3TDP9@s+_SPpi|4$KKazI4fiqJlNrYEm;=^eZKO=FY&GKc{htm zfz%1c^zoZXa}i+|w_|Q03BFnC70t1{!4Buw^Q(HjpYK*(UpF?{-B|N<6XE)6DG_gO zQbuBd4g_Zs8%9Qe zOtl!+mdV-e+*!XCilfJ$N9&xs zcJE=w1oQ`e#&>V094uk#C7er8GR4?H5(0P5Z=>(mvDFfZuIUQN9XoDg$3%xD@pv;} zzBNHr4Y~cm1X95I>I#F)N9j$Ck>?5L&zx=3Qy znd@}<{eSbjcx!p@cRfabW1UVr!PmagF<+Z9iV=WcL_D9jj=a;}Yyw9W)AT$_#BEs% zAS9IwOpZ^H?~=@ojp0wf%oQ*3d53n=CkVl6e~1f`yfeY>-3Ms5+Zdtn%EplLV7Tj! zZA{O+A7ed>D}7YfqVCreX+dd1Y~pMgoAcV>iH)BX;DjOshf)FI1f`V(owHsgJa_mh zid1pW{#|UJ8pAqEk+-X zNm1m;N@83|TBHoh5~VYgN?2H2W^8P1ljXdzu|d1li&H@nh$^Hw5w0qOsSRnC;k*YA zSv#k8b%T$K3oz#$gaLWcrYuV&DMh15zV> z!j@eVq~l#`9hkHg-}>+!bY~|BDu$#89|$I}Y*#3X4xM%v=XBHDOR91hwV}4ARb=$K z84n%YN;xc>g^(vrQ*@GW_39GV)YPU%AR;r{dQg#$VCxc7RkT|LWo1YkdP?Pn4K+gm zj@n6DtuY3JlBCt9RTK>SeR^5SU}Y)BC~Ji=Lxh(kT1B#nf*>LRrN2>94{N5T#wmyE zly(@UKSH8>oCeeA*`1F3>29w}FqVOdbe>cOvLwpa(!9me>JsgugBMWtYucS2Hm*JqK znCP&vTqBx`dB0j`SXOk}1+}*%N};5PyLnz95`oMVd76<(g{dsT2da%VCMKs@TUnC6fJD&C}kbv=`&5Q+vTqP`{=X^_Re(}3~NeLBeqU(VAl@D3#f*x1gX$A%8Wvk z{9n5dT#udjn(sc5$uF)`0}2dl*3cdAF|NDtiBI7ACGxR%v$A>xZ#}`qAfn)}ajy}6 zQ&@2$D1qn3dgSZFU9P>ZxP$ZRAKc9C_c#2vueEOYd^a-y-st&W>lbyS_wv{GG_Pom zU+>2BRwMiktefp;-|z$+X&3*dHPTjHH&tn{N8Sgnv2|YSRq7i4ZS%L~bx*VTP&dKy zG!wThE#mZ9r=(J#%fOX|1#UlhkeP{bR?!SAgCn5xoPBrQ$K#)Wnw|R|rrn!DhQQQ# zk8*I1rK^{jo!P;mqlX!63}_WC<|gMkbLt$OUXQuCd7gjqIVNWA#u>>TB;6LlT8y#;5&6A|gtD#~mNm6mCrE>}mdUnbY+{Uu9(;g}<(fy| zzKg31tN6O68mu$5eFj^VO#n!|*p0|2*Ba&6^m^wuBZR;DTaR19;@aOfShU($+U*V# zlhgQ<$EX4r@2SfQty3oFrDCFJDEq=NJqJq^6{! zVKUuA(as63BF_{mOA#ti8bj9Z(kaGST)51c)2Hclx=c+?Qq~)!S<-BekIbnlLMiIt zICbVEr%#9a7*D7xc3`P4I*%1~sA z2k*a=si{de)>mogEn2#uGBwjv6RfNb_|&I9#jv*Q+_{sx@4AbX)fFyXy2KkE*c!$SN1&i%Afjlf||pDdB&Njo;jG}0VznV#z5Ts(h-R7e3Y zo;k~)wrri>%KVnuh{ZD&<0`T=jS?aiLo2McWJQ9pn&U5>V1C;UE-ozd!ttYYih{fM z?PuTK-3*3<=oLsi2rmd;Fc_9x?XNL8Jmdj3 zzXvH45GdV{vMi%wJyoPqL-6EjLMl@#S2M7~Xwq%c6;qv3B$BeK(Ytq12RMD^9L5GPHc z?xCe2p+=5X^p_S%g5=Hz-^7z&Il<$fJIs}}lDs{~eRto+bT`9ROGsUTb5xZ>hzTw) zSN!frKS8&cBrQtD+Zk_q;BNM8nM6uSzZxQ2k}S(Pa_l9ZJam+0qez8jZF!j={-FE;r@zd5-tz-2TwY*hX^m>5z?eF6R-5KH_^+M}`*;s&^ro++v`&%M zpnz&n5z>r&YKnOwDH)KLOn30kkdCLEy|B#EdP&k5a^k{8 zKJddo!WX{$d5)hr!@k+OV;D^!-b_P4B#MpIMN*maEe}4xC2*cZcL*UcH#g0lcOO7E8eO27(kjrJ6K78G z(n}}Vw)HmV=H@tk>LMTi_@{WsJ04}n_E}u0QE7s$ExuJ@$T@ZKG8eCG;3&}2vUA6F zE?+v!;TK-y!3XXl?`3!!B}YO+Wi1!4ED>bJBagnFC!c(h%D%wv-McA`B-IWrW59&) z2HC7T zz*GZvY~98?-u70UtsCQ1)SQ=9pCpw$``i~v^fIT0+_@D_oWDqM^ekIuX4$`QKU?PJXt@;#4y;A_fYOqRKq3>4ojAcuFP%iEU7q~% zA?CJBv3PZvXEzQr_x86$HgKY;>mfzj#?+RLjXs}!;`8jg4N}kJMTWg*jSI}o_m_P@isf=w-D?ACmm0mJ8t zcNv^G%C~>`XDM>U|M1%%VRE@*Fg6LPA~=gi&`qPRdMHz*P8bgQc;l&6luacnV*R9w zamskhaOen9vfkg|FFySR)(0i6UYBL(XdgSw!}s3HBlq7+r}orI8RbbqA%u&MAzh?$ z;PLp_n8p_Q>sDH2WTvJtu)KPj=f3z15B^6#j@JoS2PJu;u-=dffxp#)ebd&hZ{}8g zLo3FLHtSr$W<&KiT`g`JfWN9X5kc4gUGuyn{F4uX%a<=RyK@&0KKd4(_|)UvK9MoE z=Ps(Dtz&0m#VN- zRl;(jtDEEa7%`+k>wrvCobwD!#p#RZdGp&IW$TuC9=`t}p7{Ky30k3vOy9&4 zX#mbL-W?+m2}KIu{q1k(spnqg^G_b8bzq)}uEq_Qalw$v#hX&%1w0q(!=Vd}bO@617d^V08w zOfj~``#!0jzzKye5-J;6uvwBLg=f$Hz1;WUT^v6;&Y9CMP!u`CVb$o31zDO>8-bM2 z>2}z)YZucq)BMRF{|T2aU1ENIo-|ESA})5M*9Z{P6U-(Y;?_m^A{I**JJOd=yVwy?{ekR1)liyUojjQvP3k&G*QNprU@R) z<%Ns9>)YST!*i2#dRSOKlP;J*9rr`PRr=$U7^ z@aa#pclRD1xP6{hyFf@q;yekGB5g;>lN0oMvk(fVx9sDGe(=3K_w3WWeB`-E8Bqz& z)hG=<7?c)_k57=L9h}wd-*Yc-ecRhuS~$;N{^iH1ZA~YYn` zH|Xh%VoBi6tnt6Eewlyx1K-Od-}(rD{J{@W|DB)Vd;gmcGyDDD$v^p>kC5ap8koH# zR2GHAYstD_Mc53T3X~RPS%&Z#(t))bRONs?6QnvJs1)ZlXD^(jGdaV1Kky!`_4JB_ zXP$kIwY613UNA`dv=WUD7VSgaB@>?DK#MAFBVY(7Km z<3y%;$6Fre#l=fh!BYs`7)@_s+rF9WR&#u-z6mNCf1C%M#5mNi{Wl}7?W;@PWK+rA zWP2q|)5zzP(L6FXHpazcr}@Yq`~hD%beJ9A`F2X@S?jN}dj2?XdE>Wm=E7M%_R&A* z>R^MljT)>)7deT|>6@CPC(dx@;$;@ETqQ{px~+oswPnU8=a{boS60@U%4$TS$lEzC z6u4lhhK^P{VS22?qi=Zw9W|h>CCf`!IDh^uy>=U$T27w5$crb=vG=a~Ie2hCAt^Y& zw1Jck7b-|HEE?leln_YKWl*o9Rf~yYoIn4=f5Rhheu&ejUgYAXQ|O|_#P~QH3(K53 zd6KF5Ii5dy9NC&;qBBFevP^sbUgqcKIQHxz7A{}l+rIr>Jn`f){`}(~=dnlL%)-i5 zMg*~Iak3+PTXgPAsiQHeNymCEHLNV1plG$bSPM=_ywo_NX~`IelHf+Ebk{Y+F=Qqn zWx$&nsU@`;GB(!c$cdM^bajdCTX%E&zP%hda+ula3DQ;@?`wjKj96TPRuDvFK}#KI zcT(Q`$bIZPxSgr-9z`Zlx<_SeTnH$gQ6xF7OtHK=#0(4vAGm|@?l_8+{ksox{>*ty zWyz;IAR?vuyp$*>wQ)){B_&aIq1bCS=0?vp(F=%c*z zu{U$*xkE@ub?oC!hF$_aHex``ktik#ZRgAcxeC!czfQVD+WjSsNm zEZx<0TDKphRdizzNRki$Ei_pOY}>YlmtTI7t4nLN#{@@?9bqsmDYnkUgg7)plt`T* zgpBEj4O+~52nMuLjU32E!V88}!@+&Kxoztl7cX4krDMlgtGi^Kgd)#S)*zh4;i!g= zt@GQtbmavO9X>+e2tM-BKVY!F%$A9|ijW<3tkClP5=PytV2Ndm;Ua!rtiWH727<8g(>lQ!%-~TT>_V9ze^Fu$! z$^Y&D;E#X#7x<39{~z-6Kk-2h9etjKl|{7B6rFJf!x9+;Yga0c96dxpAXUM}prVr} z?BBD4UAOIEe5!?%9#aj#3)-Cm-Od>dOU_(4PhPZGt2CFF*XXt~a+#p2I>x6r0U{!R zkO~n-^p_~>3Nl0uYk=1-G5Ff56hmgaGfcE|PJihs_P*<#3@0Wj*A~c9jYN_qaZ!E~ zKk}{mCa7D@@vZuX)+?E=qsH}XpBxKrZ0x*Q%jItHu+BNMG{qWF4f$Z#u3fx!Y?|kv zd5-sd|NFUZuE%Owvg5WL-1G3ggeu{I2j7TL1v7QcQh$x(M-TDBOUKwZp5Ue8tDLX#*-P^-}_x$ym*l$Dr771GCDfUhBfPGcUm~E4HCSb63u!OzwJ;N-NNsE`TK}Zyq{0} zFTcgazx|Iq{da$h!GHEI_|RkT;<;B|W^!f$*AH@078I4z0MpaQ7#7BybAMH(IP;x1QSzDbKz5GFnRJqXo8(Z)Nl5t)!ipLC+(SAxLrs zj;!09EhLbV8*Jn&iJ7R_^)^@mzI|@XUk8#{Vl6`ga3C|5DX*IHyh%T2*1NRB4vU=@S`K@re*6_0x6bkXuY4Ar zHHqVRd2vpXgs{`ZcMO*G}xi(+=?ooDc+00C2b{G7Gx%u&_bkLN{0mqgymu< z86wMa$1v&BTd=8mCDJUzQj!Pv?*juxE6kTxAuv*q>5w$duq~H`w&K|rUggH^8L-L( zgczMNI^4%Y`*$I1ussi{9WvX-uPKZrc>M80ymt8xr!HQ@s3v_*jeYwLvURi{OC|6I zMU^PYu%i~4HlS=enL}m;%yh0{1r9<;3U+{H2{MzA+BQ+TNM$e}j3cUj<79D6#VPUe z4}BQhL}WV6t-Ym2=!`552?CE+XmR=a1j;WFbrNi4(AhNo10@_gMc4+A2;p_-7Qy^N zgKt0o3bt~gm7xj_h$cb7=E;K(k%S!_$Hj3aCXG>Ap<=_kcJ1Ji-P^f6Jw;?P%EcP4 zZDUMI!L!jx2g^ugrjS;E?Mcp_yU5Ac&r{M3E=P+L3&R{cd5jNy>;q({XOOi)M69t8 z7!`tcC=_eB!8}(cCctEriY}WrZo>!*X}fvDmXo2oMkbJNu4UH*#j*vNjzQ)oB2xJ5 z-MNp`XD{>BuY8|&l;Q_2t42oHzO@g}^9X!Dm+LAxMAG274kEERd+rRD$p}cFbEru0+|gID9GGlGY$^|7>p5(d+f|ch zNDW3=Oe`*N`}J42HgTIu(PL(Mim4kut4D{Hn+qN3;o3eOq39_pZrzyTl~=EDasD>a zRw&xNAKEhY3SGas`5??u}RI_QU#^%l22~$H7hq!(H^!D`PyI^#Kij$k$SeXl{jU`}c zBw$Bt9gPKx*~O5-p&{078D?NriJ%0{g&5EFF-DUKfw1z*p)iJ2I!L3?Mqz8PmfRiR zW(aL?9EV7!BuR|txR7artjuuD@uAwb*9r*iEJM>Dq zq5B-Wvc&2AkAK@CRs!^5MOBFvKL@GqPo}tV?gU8#j-7ZO z-z(8-b|@CAEX+6P?XS{5)W^l^S1A5kx)vsXEP^%g;`%K6I|sT2!z8V%yq@WRW-n4GIq85PuOJ~w728QNfR^5hYUu3*mt zTloDieUrdB%C>Fm7#=GyUylfaDoNG=mgp2qn!R0Xf&p|PZejx+ju`l(c_+?br@gCBc8DsCe&_>PTbrFfED3QmIUC^}(>pjaUc zLpt+!c;7=i!Bbp2cZY@fNisRQA}7A!2_D?Omep(5Q78}cy=Q*N<;z#uy0M>{BPrPy zQU=6nf>J(dtkH?&_Edu-ubjehiY&}eP%PL;6c23Q#HNkwh~fsufUOkhj36j-`T9-1 z@zhg{Zrn-L3n&E^I%&~UG+2W^OZM*C=;fx%V$r2upQl{xVc*XEEJTZB$vgu?RWKPv z*Fi}^l7&Eq?>Tg$lsmIcI(USsjcw=r*DT8@6$?leA;>eiUf>fa(CKt|>7|$0wDSOa z*NqTVdYJZXtho?7Nw6%dYe3QE;VOllg`7Y28q-tr?B2GEzJWoeXJ$BZ^a%Y$SigD* zWjh!hb|vTDJm!>;2x$SiMz6r)#QC$la_Tr+cJ8Cv+t2*mJm=1wrckliv3Vm&9OYoi zWE3q$;95*Awn$nH9(&{<1SdOba~MW3E}}rK3lA zaQ6djUbmJ7V{`2F6P$YfCANO-V-x~6r$}Teah8!}DN)qn_~}!$8-i7<*0MDya&6)& zKX~bN#A5+N{Uxj{%C)gmjbf3O4mf%BGIp(>k00JhsaWOuts9&;eVR2RB}V&uX+(=y zR*^J`ah(FTUE~KZzRH#BHz`(!IW@D$zx(EM{N{i0cbHwjm1qCe?{fIUNj~x`f19%h z#(4hd5k$e~#_TNDCT~-3g)Ge8rWwW*OFoAVAEa-*LfUFjEEdt3O`AGysld#v=A|FL zN~u<3>$dgWn!d*6SI$vOZTcSAPH5`9HA3Fo53Mz6nxHXQ)?I6L;R(FO4i`TE4K{t` zy(}&)Kc5ifa$F_{F}m9Tw*&^37u~KAMJ95|s4UAln<)?*2}$nW zl}drIWWHH_o76EWB}!OyI=Qy3vTf$)=Xvj;{YWWUJ3h|D@iXXHV^Ryxb3sZ<)jp1$ ze2v1jN#YPlV=_`?mf_oy-kvhPV>3M1$D-RnNsrm-89L1-)xtPQr-ioKj1KfMSgX=% zH*&)R0kgByd5N6daN%BOGRU3Ka#4K)OLoRsC^S0Gh@yl$w{Egw`vHo+PZBqPHabhO zog%FiKJd|B@HNO`2tsJTw7sDi^XAHAK@lNa_iVW&=OS0je?gx`pM+s&TsTbQ4lq^DRUPC7u& zL(jo>-mqpeL!nq;wiR*c(8DytgcB!UBanijfk6g0tw)6|r0!7ge43pQB^8eA&~CT5 zdGi(z?%mDKUAw`~IJi^rwJ(2>FltdQ72o`kjbUhT5EcdBc=~x37V3QD!|!L;mSH3r z?dA-=Z6k$1b+xE1WidAwGC4KF+BN;`*trMS)g)m;xm-giiR(Bd#^5`ZgEs**325eh#@Zce4rxvMJYn1FFgF~BeZ9`-7 zHdVh!m~`XNr5pLMb9Ql92Q$0R<9Xh^Xg$5orukwwsH091kFZ^%I1w^4MVEIwE|3> z5XT7%3yZ8-y^dW64ly)Xqjl#tzx)6EA^**X-ovl{_TT4A|LR}UZp5tm?cc1N-D!K*;wu7`J^Q{mgTw+TSrWpmD zA%udi^^JoGrP z9Y0T)Y7t#C|6;9H1Hqtg&uX@&-C)E7EPqY);?QiddKQfC$?$OywCo;O4oYLX-- ziX)`Th2ez}Z?fLbIjt79qYy|Cnlz1(5hP)Rqb$N!n=5Btuag>3M|ZGv7?nK>@p3;^f84y!iSl zT6N9IBQJCME?1Ph8;EW*U@pg?mwy{0uxuNh#LJ+)QmOIb4}XMX$Io#5)M?UA6SZ~?1N}A9 zcwsq1DrHx45JQy3_(2cfeCGSyxN(c!2X@n%o9Fbo)7+Z8!;=p^h{{yXJ#{2$*1>ip zStKZxsyLQI+-?$Pb(Ah)Nx*TIRVwa{#0Y-y`dOZN=`!_B%AS4uiF}VEufD|E@eyj3 z0CesK>3Kfw&NRvnSifR>xQahB23+ryR}J1LH8)~sDaDX=M65?7_TD#fJpV7oZ3gRN}hRFi6r zR|@#T*T2G;wD`;~eu%Y0z0_Zt!;O<=mq6RL$#jBHP|qZ>9q{t;a~wN2NfO1>N(C;T zJIhedUIN#~=mbkzNM)^9ZZ~?#{y68&=eE%{moHwT6Foz{-Jw`0GI8}f+qSRbUORWG zy6P(BGKE1ncll8~#T+c@uLlVbip@n1D z5L7sM@&@xW6EvE25HK^}X3P2tY3QIRqGX8C8J4oJ-2mV7nVXy8+_^LS@MJ__+1$J} zL-Op){I{QY9|!)&UT*%I-{I&#{Cgbyum1tRvj6@3>u-J$J4>lnieyGpE0!4?9HriF z(`tqE6dklq2?|BpojQI{!f^{I%V%nKmJ8SCaRZCR#3phS9b3{?hGKUAUX!0iNFhNP zgv!^hOlusa7!?+$p8Emo*A8Q^8Yi7wBuRdbC-zSKRN@_Q{7(FQ;+`J6d#!Po`BGg< zg)s(Y;$3VU{JW5cSxw|8n?yJ4jismaK6 z#@P5cUp;b?M-K1j`4cC3V#huT(c9q-HcUV(d$86Z<=HfhlTBYih7%KX7I!(eTBui7IgfML5 zIu4GL-=?~|p)g&K*sQyN3IV#yBkhPHqEI1qJp6*gBfHnIX3ZKbN8lzg9pTfC6Vhgr zQq^a6W)k0TVrfGw4q0q0(A!sIxKzM2r})_6oj860Lk@JyaLuGXqKFFhmG$+qr;=>>L2%}|-EV~Piwb2M$ zGTUroiJ$oNusO;vp$8iVGFJj1nOrz1@#aGW$ ztoAW8b(%mF=d1R*Lb zplyfw`37gtpX1j2A~qI*7tq&Rg8H~8|`zsZwNyo-Z-R{>qVrpYg+F>w1EpWwueL)>mP=-Qn9$f0r~(*|KJoL;JQ;supnlhBbzTKv4+V96GR$vB4U)Xk+<; zOlzd;lST=}ETHBn0#l$h6|ru|dLG)jlTN!%v7(??v9K`5LJ~1#_0rB#YSk*H14HAh zxj8+@*t(5u8X2Xi+f)LZkzk&rJ6B?Irn-|Eq_EjIJWit{S(uvxsnE)>d&@YZ6^XB# zIIcsMrfAn8b}Rx~tm~J&bn`M7g8?4cyq2Dd!nQ0njtoK4K&4HDZ$T!=q7X90*!Td) zUO&af(E9uj13RrIsxTUkvQyNjKS9dj&Z40Y_3k;;@D^J(9=6iyWV7|Cu8fn z5z5R{s|$qtv(+ztW8{vHAXIL5ZAnSFT&8pCCTC|a@WD@fj5H2tm?@VZ+)<4(#7gU#$m~#z;a+fd@(berI>zPjjz@y_ESPpBar# zHIA~_wP_XYqo?`7x4+HCRU6p6VJ*{>ldNCAmaPx$q%hdaOD`Vf%YXa_;Fnl6GRorY zEVI)gWp9uL6Z3-~9wX6;nfWF{c_4j;Mpn~krkp)@gW-{ljE?PNcD9K~Je2JtQ;lCJ z;5aTxlF)88P$tPOU89&NPP=ktcV)>eOVDmMQA!aM$|O;nxYcC)x={xEdO^pekwK?X zUTP-8FF1r@oq@sL94saYVH(jt*iRCM%+JlxTdiU#3xp&LLxMtqR+dnx_T$%FlvAJ` zgVuE_1HB|F=K9486obO@*udm2P&r?^+ax3M>z$+tC1ov-oqPGoqU(tF#*i8i1|w7K zFeGz)GHH=W3#Cn0NEe;-hkeRtz zj=lB*{XJt8i@nPZbgpX=M=6$LVX&FLHOWwKAMgLjhbR|HEX*zN;>$<4dE*YNMn?$B zeVC|8;JL(|IKL0AfWH1=KKlL-5oa=YwsR!y#v($BJX_YS{Alv;Vxc|H+SO~>xnmdY zPC~g@WcRN9T)Fxcl!Tta9(0zGY8%gyL`g)cR^#PweidYe#}DlzN@6A^uJYp1mwEpa zkKt(>M+tPALD$OJQId!E?_qr7W==i(EY~Kk@V*0EnbjKEYNM6HmWGTJ$F&hA!z-5X zoPhPKS7UIXTfK4|hjyny95(SC2bTTPR+uxaydNRwv6%a-HL+&v8o#4)5Jb(F5glNV}zcNmmmZgB5t}-M0gwd<-&AG?)xWCU}k_ zPC8_1-lXc-Hd)$2xMdDKdVt#SBCnn~$DPZU7=LgttJjP`)I?emA$)`h^9oyPA%tSj zj-6~+vkoD_@_phcqF5?mr7=;v&T}ul#QxPA_~8HfJDmEX|G>HclZUHZe@}NlH(pMElrNq?Skdk#{kX zHVNx3%HKOggzU--{_`d&~2dFea%H0e-Zm}T{1;xje=1fARCI9qQpDkM5;xSy+}vNS)Jtj7=D2oH%)wHRHpq9_?rP z)-`r*-ND%_*VwT+Ll#{SF-keuwna*YBP`M=V&mHNj1KpLPN^1pS*&lQ;sw~!M#dqQ zQ2FN2kqFO0E1Om;;)U-$N9MW&r2J5@kN)m^JSwgj^ha?6;3u!5$C`C)jfA+p7=mV=#HxhjJaU=p;BmM4Iy zt#B-I$_%=z!M!pm)EIKxwxxMaq}WoRL`Ig>^X6cYON2RAmuF9gvLq(exgv^6alDw` z9?4^ecQU?lEzdsnGH1@5Ve11M`QUpFkcAzLPSKV^WSUN=328`g(dO{JP3+yVp6@(+ zp8xlApW|JR9c0JGGL9YO^Pe_!WscECmMxB`*n&A6Hv zD+qYy@@2%(06RbZYYg=cbNcuGCE3TC{LjDn>--P@>FZp$agoOlJvuStj{pE507*na zRLo$df>*zdw!rp$(gac+Q3wjO<`#K$-!?Wq0M8$Joo|2dYwX)O&buGlN71(+neA?f zbAV-**0y``mRVYpmijkVULStkupJwLK_?mW)3&5ofyKJxAn`t9&d z?{`0Wo3|q2(@8tb)n^!?gB{p3+YN5rp5Re)h|#`rp84+gsFiB8U6)JOFHtH696r1o zr*)MmTA-&EbLP@n!d9Ds-abs6a^>_a>o;v=)qurZr;aTPjPxl+dL(Ju!m*&)YO;Ut zKCWCi&+Z4dbNl*5jvqgZW!oIue}KW^F`_6UNn+;brnzwLG><;|Fz3&o<;Lw9E?>RQ z*6q8%D^U*(o*R(F&AfCjA#Aou+f9U0%-*=o^>Y^hK@j-V8x8!DPov&ID#^^u33 z2^3NB zgNQYSLh;QDPZuOCC6Jb%dBc!c;-~t)&np*S;f3>;D3`~G8;itIg9o;*B9r4tr4S-- z>~oC3bv=*~N@;d(S&KMxnQH$4pZd`IC>33#Y*TO(vQ9+39^v~Q?XZo((1{Y1s!(#u z^c6Fzw3v^eEDG4EhvUUqDsL>)LL&^c$(UbQWX;;G^!4?#_rd*08%~}&NgCDhtdSfD z0+yx7(g@3QvHTLRoxQ=)n<1H#5$hOv=Nymj*@|rq5vl+kd5APc3I`RZ_(_NQ%pxyM z-(hs^IN6Px1isHexd!A7iA&0fqALbs+cx84!`!-gi{Y`=jISQW(J7<-{R~wdq;6x0 zgjgpOkfAA)e55Ivs*S0NwZSeLt5p^a7GjMy)!8 zUvW{*kZ^LETCGgGT_@2RZBm4=e}vj|xA_;0&gkMK1nM4s`U=sVVo77& z2+$hzJ-ri4?`tU=WgOy#7M^88(qVnM!0@L(%K3|zc=_lH{NVYRLwon&xjr!qx&1T( z$0;FH0n7GCOp8yx|6$Hw9_M>6zDU!1n8(&TT~KH+qRZpQ;I1TZX?_%YEb-gp_7IjY zks?D{5y3!_LxVe5vvHK?kDTF|=T7qQLwhKWNJNI?*$K2&}{LbI`yZoGcvkYz8$eu0ZSnWCbd&(Ho zq7WBow_*yl5?Ts23X2Vo9OBhmmpS&z1YetYfd_Z*WzA>_M<&RwUH!e>ePc3Y_j4~9 z67hz0=O+ncD;n)Kj#I?a88xp!{ng{#oNaOF@psb-n@n1oKFc9WV^DtqfZsduW5+w- z_?`HPsRc?Z)~#E|w(a|Q{nB+N=NEYQ!F}u* z?Wf0+KRX?D+ab&hog^j96h_%-OR$*TrqnaY@Tx7GI5P#c0i<+s92?6{Ny2$_(jrhb zZeO{?)Z`SW)0Aql%=K&6P83zwM z2+CsTj_vgI4N`Bl5dx+rD+HcR7)A8<_VSUB{{k<(cnmiPxO!)iOV_8^yJrg}&q4|4 zw3^J%O|vk4hs#%QFh4g(Po+v2hPakZxlq6ea4d^Lp+FkNbeb)`_4%hLl*$B^UMiN$ z$DY_sA|&JEMJ&5T5Trnhfq`Mdb`zayjLFOJ%RK3yLS#Z?2??1diz3Rk66rm_`_IY- z-381Uwj%*-r9JpsMt0&MtMQpL+aM={bXATx;~Lzs*;qeDFY$b+1?JWZjL za^S&3jE)QtE>7f}T$2N2$bps=uy$mao(~Oh^3-`wow-P(r@+H|_c2hb61T1sC`BAa z6r6xYR!0RTl=8SfH^sS`AF^s>n7}p|ldyixdK_V+tQ6a^QA!a-5td~UMG;r8UgcXq zcpXo<+}^XD4ZrXnqDG6f9n!aI6}Os;xh1p#o!$$G?^Z2@03i)h2!yb5V270hs}%r~ zk#_;#k38N*n$qOeC<{pCz0c=!oJL?=i-l&$+0!TJ9~dAp4p*l`G7LNS>|@uaRX9?R zW(it2DB~f8MZ2DG;^Gx17Fw8~h@CXBlMefKZDsvP8AT5CGI4hf78ukD_nYSK+Im zqh#AC+h##$Oe{2Mw=S{g!+)EDL!0>ezx(%$|8M_@|LJ#rmuJt6@Yydt&3R_|!2W|Q z&Q79SNkeJy17_O`glR~B(1)cYTehubbaWdpzW75j(MH({^gW+>Y2&lhG`c(oEEy8L z{YaCv>+~t9M3TPL;0vQs~sVUkk=h zBXgW)8rLfzq}O!^OKC?DwjXe((dPQiJKVfBi|iXl#|Z=u#Zo}hu<10_GB@*)M;_wp zm8(?BWt0+Vo#1!@l~Re(ks%t3F;Up2L>Zwo$_1aO9kJ(uU0ghWj{4L!cI@1Wt$fPG z0Nb*tluKB4-f16rHdB)~=}3tsBt}SDNy^b9ukz}dD+~zVGwIV-GVrHqOywmpOg<7zZERfvrR?KW7Y5S*Roh1VY+)p39xN1uSD&vu2pp ztJib&#vQ)%%y)SDyWi!Zy$>*4DWS3iKk&$mrqNtPNEfXW4nO)3V{6vpb~)l%6yi7v z8F#zjjmUwx$*?SV?2-L!THof}xvNNJGPMN z;8QHRL~%%^Tt?h7*p`*c%n8ksQpt~0s=D)wAh(1TLZCB&P)k7XM?;#s;P_r(nTfmX zG`YO-XZih>8&IVp&Qe;PHq)~+eEWOfqmxm>+$q*7QCY@|p`t^VG=Y0}Cuek5N z?XSp&ZsmqNfkHCid)#>X`>d|@(K@t?`R4ta*na%b`bQ_j~&tfttl1vjpxiaV)5mdnoq^gwa@*1TC;EiwF1a!*vanQjJt= z9NQ)+6p_jz%kpEZl@jlN-+NeGT%gj^L$i}GGPaJ}b8VW5&H8n#>Fq62uwBxqMPE;u z*1{|&E}UoL<^=PL^SOIrSNWn~St!6lusA!%)r*&yZ%r{c-jB9j9z6Is*Kbbo;?YyQ zc5#ActHa?(AET#~mls{fCd(2q5~U>VPMb4lPcqWi%fsWVnfS(26yNm_7iQ=>CQuZytOVbeH0#sYmZsdR*t~TM z3w6+`&Dd}cmQ3>oLJXE|p)8w`(X~|jhgfWcoH})u7k=;pw{F~Ge0&uJD@6$hVN@>B zEE6otkR}cKdwN+lGR(SFWI832ie|e`Z>`AYZQChVdU@^mS#DmRW$o$#Y^9KN zfnv8jT~Y!;f=)ZsY9%&p+KTdvynN~;)uKmlp@1zN9O09Rm_WMNsbRD>$j0@n=``xR z{K^T=o;t;FUoW*v2~4Nka4MHeAGQ*|vKv#n1mK>9*|zTeov< z>JHknx=x2yK8L(v^PZo!Mo0xnvdo|}gQdDX4?_INkH)-dp3_pGyI^#wOfM0j8X4jk7mrc<$I) zj$K%!+!yfh!v`q&5--$PmL_*o)8zDVozsAX%(=l?hEloQrqL@qsNQegxcBj;|9e6} znj!3fEtXGw>LPPrdWs$Y=_-cBFSw7yQP&CY>maz zdEB$8Y5{7gnZc;;Yviu=Y6a5*Ed*x8LH_d;mVuv&CG=YWkCvSSSYz_e=OwiYv%(iB zMc!PKH>)hUYh`HZl3^jNykSfzfh5DE8L6?5wnFQS#|}P-Jv2*ip-5k$!1;*_Y#Ch# zSxBZc(lkXWl{*y)fzG0w8z&?P8-qZbZWsA|KKH$!T}p{+-lRt)WUV$;zf8MaWG0Q+ zUMsVGWSAem_%eU+#V=rGl8QBeiZunh$jw%rC`mbY=MI+_>nu*rqvHg}ahVSzMtfrJ zgm+l996FXEN;6Wrv!5(dOQy4g#QNeqz=v8BYfT(StN(kG5P z=qRN>FpM952v_=i*Se8i)kKSWxX<&7F3{r7KNdJ8}e- zX1x33PeQVQV++z$QSfb|BqPlnCT1dDI(v%ePn@6`COmmy2Twe_pR#VDwL+8RU2h7& zLL2a`Dx?Xn0*LPp+%(4bMBV^qM1G%{1l%IFRAgE+pL>KmL=?@k<~7 z2z%C#VXTBSvM3g+wBi}Eq=;7<=GMXjjl~)IYGpq2tG~pR%NKAhg=0yC$>;f{IsHz( z$rrzSk-0`2tLPCnLu!3B21hrsX~Sk@JcCg&SemM?&`ui&yNz%g^cO2Ud3Y=DerO+G z{Q3|151;)a4?Vn}_dl`~R7}`uxc z@d6g=i%3;Q$QDcb+Dqdj2Zy;PGBT%v8fD&8#aaqSbm!IO+Puo=i}Ve1r2v;DS4Niq z)oBW`K?h|-P^8mJNSus?c!5rP5nl>QCZiok2y6nYNSd`sbPBe_E%>e++I<@ye}P z=BK7<&JUm%BFzWHGC*JYV^&yj?WGT~R9fjaAht|QqBV(;tX;o}+L%K-47oXViW5f{ z*fLaObjNx!)xt?dJ}|{SoL=s(+4q9TVxpFfRf2rhM`SUTLX{^!^|$!bFMf^JF3s{g z|Mm}=|Cj%qZ~q_vn8W9Om0iE_x47El(6~L1l7?oZMbFqMm86Jub&7gtn#fMsTYG?t zQ^84MwA1LWwlcpDvYY~BA;^@@4NnA+W#}|d0<5&s3BB_AmnROo8>4O`V`wBw+Vr+E zO6w#?k9~(#`!`~(UdQ6qODIc_#4V~`nJmj2gx~bKe;E^VZ^1tLzShqxVHL6RhUG2A zPXPlhy~fX+R`KWY-QRD({kZ#`CFWNCJ>AO{GRq+Po%qQkr%WuB-7|ESEGumYDM{m) zqVE%?f>bIJt$FE(FB3WeTSs=&S*+7+)H#2l!^SnMNaHsDKYMQ)W!H7x`Tfp0cYJfr z6HqA31W14+2!ex1bJAoDwxr1Fwk*3l?M^yzCJ#ycC9Atv=S!B;E6Ga7ang3D-R?NO zBFB;=YqTWNoJDa4Nq`utfWlPst9tXD&N=yTUx5HwkV%VjBrol?9tx=UaNixyxp$wv z|AX!m`9y#5q9l1Wr%$vo^soPWn0tQcbM($z2`fW1>gzo9#z_Wh6Iki6XXgx;=I4=C zP;z`~wGm!;;W=JDdx636{d6ubveAHJx82Rqz!1I{l39UUsd47qdAg~gIxvC=i@fm4 zQ|y@DlRLUefpipBD%KhsG(yqXAJzI>T>yUks9-G!DA z0dJl<&1+wKjG38zblPov&!yr=eCYl=i8@V6#R?PED%EnCI8KNXjYN>78Pao5Qqt|U z7#OOuclSQVC&ww5s-$Vm^UpoY&wc!3?ASL$;AYHB?dB`JKgZ|K2rj8?3+$P@+F@ z@Zq{1(pq{^Oqy7{LJ=bYSD|gj;@UDO!~Gw+htbgyT#=Dw5g0J!L@ui>r~-{v!V@pN z$mxX^XU<&U-n(w+&`sNsPKp!`)@BGt(rUFS7AqhGZybM_6Q|CyXKFjv^{5oX9P8cg z{LuGHDJ9bNF;X#mc9v$Z$1MkLrrAju92)1P*Pi2-fARC|-ad|wTS#S4%4NN=L0BoV z+)VlQSH8^Ul{JP2t0cWHgS7!ZaL?U%UIy1H;t0SB0>2EzOiT?hx^0~2pMIUomoG6h zvppw=c|K_pqg+EfZQ&POdcB0iK$<4FL4}J~R@u3CH`{hj;wnp&c1b!dD&-Pc7Lgbb zet}bOp5n>Zu5fv&N!V`k_Z~jR-l-|B^tzZv9ajqCxI^d#Xp>!qXuX}^u=)3E;ScX^ z7`^+?OUJ`Px}ajDMOo(g~P2Y<-NAN(NI zg3s%J_D#km?Ecgz$i^$2U07#iXqXF^&++IpZ_rExpZnBjSZS>D{IgFZbejk6ybYNt ztkBnWj^KJ2^7|b^DbiFkGCB$u7CC+VB%l2Ef0ah3gU)pBrYR*TnRlIj8b49-z9+}m zR$%`+4p{F;81dHRxOOhfEeg4o>yzoX_E+Yw>o#Q3@|`!u8&$@C8gIqsL&z9=758PW zMPZP_fXQutr4S^_qEs$6A0?JXJK^}L^L*|XK0zgP=&klRc;Fx>UwWBtuS4MGZf900 z40#1uxiXh!Ltve}sz%P^de@C>79Yt#Rj_cd~!?9xg7fk!1-c)kIq33xn&sjE@d6FffQV zhEA`C^)*qmfyxZgdYkoZjZ&$GD-4N_h*ODYJ+d@^Y6pG+$LWBT#HmIqhg7EsWAT(n znp%nlFSq8_7la(-i(=WNV9x88ii z>g9WyYk;d126*oKFCqOh<73F{#CM0xT(hNfBoW3Gn!n&vNrkci|TlU;Ofy32I|ZO$_nzpZy@dsDpJtY0@a7 zP_ELBBaXlNA{*&8ZvDW+>>VgGHaUn_8>APd$S}ZB0^LfmjzKy;QpoExv^QfbV%mE; z$2aJ(ZM8jZ4O$5!))_8`bTW&Tf?hAB)s>t& zeUVsIxb4Wpc(np1zJTu=G;JLG{&ncL(QO|Cyj2m8t&3F^70}a)mtHu|iE~Socie#+ z2CR1*%rCBTVEZ7WQ)4(u4Dy{;Z`YoQ>lPYvQ!cHaBx4a$aAEEON;-Vz)1PHzcnCfJ z3g39~Res?kpJ8BljPL*M|3WrD$G(63>-c;2^8E2Pn4a2+6P#w>w(Y1?^T3hYnHZ_^ z;&ac^N>j%C3caL}V~oi=(u()GOn7f$gurt={DLC>w@))z9>Tr#0QKeuiOKLB4}nFi zycqP;_{oa*JvqL%qkipV{ISg)`!I_B9L^uWhFmZnuEEM~k`8`skL1TbHl^Pzy03Ms zF(yJ<7l}b<4#p9RB2?ODxE!+FTPJI;GZ5}UCCwa{Xf|wg9iZ2WJS&y=`Sd*Z`0_%-7FPuEj!g2?SbR8;3PAAE!XR&hm! z7P+>k61gLoi4ttANwdE6R9{X@8-o}4SfCe2SZi5ZUq^*LNs_Q|@e=K3mnXmVRir0y zONxDawlffxNxd4&nS%(1@PMh2?S$3K=qv@B3*}4YBZVLg3WQ;S1VNz~(&=rmZ~qRC zzw#`dCtH-N72+&LxQbdS!1Fw;&Im(~DDKkjMijylwSfVWZc3cwGJOWi)YLS^LWL}o zq{8BOMUa9l$t!-QFM7XO8Iu-_14ZfJv|14O2<4(}f1CYw=e6z6Ew8I`F-C)Q=~&Ie zx%13jUc(ASoF=q85v^XAefw@k>lAAwjtr5~keZlY)Id2YkngmJ49r{C1%L4MoRCN}t%Y*gIKa*VIvt-8{{eix*g1TO~Cy&K8UB_Z9-_ zctqWln{GOUC=KzQXHK#D-PhQ*eH)+t#Di2_!+L9jqRjApA7cdVb{p$jf*_z)EU;^! zLaWhY_sB5kMg|CUnkUA>yhU`(ONO+gCW9j*j89GR#jpG+AAjKI85}P2hkx|1@jrYI zo%If5WaAW+z~J->rQ0>)&Ai&4;=Dt~+@AvA@6z1o2u2;VLp~@CyMp z%Lp8g58Qbd$*XJB&!6Sw`Iv><#~7)3)KAW0{cp0~SO5SZ07*naR1g)V)CLF0GQ(;s zA`Inq72<1uzCDq>krd^7xguLtl!X--E18_$#s0$y3+plKy$oeFJEwOrG*rW6nsTK~ zx7$GlA&#R^j=}dmrlz*BVKbInvsCRMJIBV^K01PHeU!MeCGTUak$Xq}5|zVBM=Y;0ca=>H>sUrJB`VF-Syz@>Vf z@yQwV*f##G(c|L}-ObOA5Ac=W`5!6%)<38A-~2ic@1NmZyUj*>jo0QbGrfI=xwB_@ zW$s0e-F}!LFvOi6u9uG&1UM$oMK+V$U5Q6{8 z8ZGjo;oowk?%%rjkyMU1@o3UsGjaX~;Rx#59QLosWj8CwYBMqJ@3Y>VQr2FFg>i0> zVEr^@{=xBfP2&olYmmTl+3j3ktr+-aRwS z%t#vbHIy4Ld+`e2UwN5(?|+Cd{n@wiyc$_=1*PEO2kvFOSi+YvS(*@cH9@Ju-25fJ z|Kd|b#=$8K;)MYp{_q_<^x=n)CIg$IWPm0EWy#_$uA@k-!CG*Xhq0P4^f`LRoh+R> zL6&HQggA+q-m!;vCg~ZFj>nb71*+95ML)pUcvH_GY5LF#3#rh6CF^u>!Vu*JWZK-Y zI{40k2qv{C$3Z#{CBHzS=Hk{{_(6f;Fd*u5X!pA8+cSYwZBP!FoV2CMaFvTB!1fH= zYE`E0m|)-DTUc(^xp;1t*Izr$&}|1%u0^52wRr_ofKC#mBT0Haij^uu1&8go9wOBS zghXVWzvc|P=J<@jbrhEt7HD@e{PGyKnKFIgFehf`xM^FBp>l}PJ>sNGu~>vSqw0B# z6f3;A*x+lAz0SnM2#-E{oHK8p=3^iGNUrz1*&gSuZkZb@d}o-)zxxUWZ-gB?2AMs3 zmhr(V(prL`KpZC+3{_Pol0M5DU5pp76t!6CZt%$cAHe8{sM$bwBg(Q!Po({tM8Dea z`izfkDN!O{Ko67PEWG^gZCqyYb(a$ngzfX`+I}qprlB3!qKCL zsg3pc-fIiIK7WaqFJ5LL=-}Rah$9F0Bhv)IJ2mAuxBYg=iV*Hq%<*RWEQG{34yVqY z<++n52?`Z-XN}Mo9KLx!<45o2z@D4=@bCRDPyMt1jw`?U8{GXL{~8C6+`-YQX+Hb0 z2l&H(_b0UCjE_J3A@)p-QP2s>vw%UF+>FI+a+&(i_8&#K35)>rKnuSOR#<%f1gATz zeCF1JEG32vgX`pEP-88oZ%ZV9njZf|#rvKdU%hFHoR}s1>9O2=a0!uDr>?{D=CR2z zw^H;Ui22}hWS-oZz7=i$MFOi0QsvY;Yb;7gHtQNn2rxRwBwC9QDhJh*ljnq#x!i)y zSN2xeJ}%XgD~BN=l5`Bt}{`*6Sn%fgc126@pMCX`EjRk>g`r1)(e1y>ln^D_5xa4z4Si9G&3Q zi4zP|LZqA1O|&ssY|c(L8YOeQm!*%jk=NT4Uv0&|gHo9%P+4Y(*V}lGhtvrdXHSu| zyWDzUFR#4xeQL!D-DVSnL|a4Ak+@2tjiH++C~J^Gk)iP^;+M|xCtvvrJ4Qy>H91bP z;4(2WO1s-ax!Z72Ip*4AB#F*Pt5is(@O__dw~Ga$IL7f6olYAeWNuBW4ccgg&UImH zl@daFOpXuZ`X#DE6MX0KM`?Ew&dkm8&?5&KtL{MBguT0Wk<{nOx;-kT0@hbp&tqn0 zI=?1-Y#1wZSUw)n*Q(a9v(Mb%v>J)9l@~n>g+wFbHEPxlXRJOFoa$ z8k;7_AVA679qmTd!L5d@>*Z!Bahi}=K`%)-f8jib58uwNneCi7@g|E4m)N&wH@0AM z2RW19v0PUng@?`z29KqcI!`?P4d$1-$g0DwHy`4rnL`X#LpmEPRI6p$S&Ggqj#4;| zM`krvTRf{#HbV%DP9n7M2;ZYoz&k!Ib7EE|ES+YXr=EThQ`||pSmf20U!mfq>>fEp z8ajlYBy@{pS%&9%^tx?!&+O!bkN79EQ z^IP9!`^+vL`p74Vlk7Uo`qet-=Cf!sInJ?O@9rFL5nExJufAstj_Yz|_A>w1pMQsj z_6f%Jv2Di=j@^DU2d8VK@nx*BREkC7jv)wq(oA#q%qjl-yDxHfIU*RD;lREF9Nj<7 z?i~|&Sz`+oh0V&XxgPHD1CFDcL=+1}zWdmtJonOhthbHO^SJ4@d${M8QFae_n5fm4 zyW8UUuG#i=73{v&+qKC%XJnp?3f&*;2L5ao;f+o;r%l_^xMD9 z+&})W`R?!k0r&l4m;d7PpXN`Wxxm!O2;R&z+a|_HdTq)Dg%%o}q&PC~@Ls)}3;H>O zecL|2hv(KEC4?^!Qe1_Gi7j%SAAQ`Y%YCE$ zxY7C8>hteM?(yT0zx?3%E2Z27Z&iTb%}ZK~X94LDS@2AN)fukqV70(k5^FLbW3%D0 zxqT~g5%t&=cv>J`kIaB?AyYa2&~+U$-A{HigC{lCbY3HlSC=Uk%NUd5D2Xr`3Qg!L0%37nkrOzq##0gp&2X(i5I7W+Ac;GK zp+~V$KnQ{3I=G%giUvoJWD%b4qqD5vBFN>*q_qfRP$K`k0+f^}nG^U_Uy(q&B{HLN zJdIx|G?K*%CWhNNzpPS+(%LN2a#c(uMl zWqgu1&RyX7H|JXz1ic9^A{PL-pjemO&X0B7q46*2#b^l z2Km-w-{bsB3x8}E$4{K6Rvo|#0+ei1Rfb*CW&W$*rTE|jM5U0PiRsEN#v9`06LXxt z)Z+A|HIAP-&-~Ili;EjniUqT67HpJd_U0tL6iU@gC{D4px(8cAj?UeRZEt;e^Y zei{544}ai8>^iuM(A79E8!hO5iKguXc&+ zUb%Md7Wdj~+UeIOC5cQ3WD(abGQYUSZM*mKkq;apUb{%S8ggvkegY*S?INwrO;n^L zRF(^^glC_BhL3*qUb0e1D>hubQfI0L!<7&vK=md6j8tf$2;2gqFu>)NMdp^SaQw|B zhK7c@_3$keos_7xMyXUpDIZTbBxw&N4dbIDl!7w%-gO7P-YVTj%uT!ZPz-zm8KKjJ zqNDJL&^p2OJfnzllxOizEna1oI zs}U$gXMF>w;9|23fudX;qcpOI^5i5}T6LD!I$XYVo=8+6w%QwgA24e?EGG5uGaqpRPAxT^k? ze=a{A?PizJO2DDrQ;d}i)1x7SuBD)35?A0l9`$+y>G|yc^alxhDYO6U@6$#*C-z!0M>#*;5 z<-U$vWNv*2(Cc2d&%1iZXSaYJS%I|T9b4W?HKqR_-uZf8;{B`6zwedf*rX`GgiaH* zF@(fqPK-7^BB|(F7f(V#d31H3Yy($e7_NX~WYC#Hli<0Mpw+@@r8vbhJ(G~65V$U` z=aD3>ymjs>+BTz{WC+_KX)LqhNE9KC3Tjj?GoDr;YlFH#4%2k(2IL?J&EHM=oxU7gZe25|7vVj+BfxV z<5Z)RA}shcHd?H#EF-1I;J^sgas?$Nabhr7;y6YpDcUh8kxRRI4g{V{k|s3jJzA|6 zJ9q6ONi&q^=DMZAMJFk(W(O%%Um-&hM=@csm=ia&rdq3^T!(tSPOsNPXPPui(Mk}w zE=inF35yJoa_Gn%EL>S)cpzj@R+*3Mw645H(wOGVxr>}xSY#>HSZOfAVk3oL7{c>Q zoLgMQmf`6aUSYTtvbM0n&T56V*$(^nOw*I+`W1M4^`RE037Ko@wKfP`kFS00>%9Kr z%k+8?NtWj1Q%52kMQSur>~Z(K_u+;G+MSHBT*h-@YHXBkJND3O)EOyA3Q0uNT%)#g zl7UizrVu1Lrq}M^xh~bxB*uiCJh@70Jp9^DHd-wjS-^w$f0R4+Pvdv%TwY#e?tDbi zcL-gFvTwQnkz))G4shJ|u$>MAQxl|d0=kQJ1dg@jQhow$1u|0vfo0H>9Ne*ksj(4U zPvbZOSGv>+A*oK#Isy|R6vSzY6L_RLA-3I-y1U2tKc0Mv-8*+PH4rcyWF)aA2+Dcq zqbE4=+C?%`A!3k|-~SR1e&7)n7FL*BS!3_^+7@3ZSZj26_NgbCm>A;=AAW?a)#dBo zeT*j_Z}7Pf-Hq$}IF6I+HdhnUrbAE|;fb$*h2nt0m_c+BGdp*NIEuLGz(F>ax>Q0B zoy1rpkU>bVCwTSE)BMHBI!@eV&~w-|q!B>{X*8nKp;#y}vuiKbLX^H!y7Na7*Hv$~ zct6#Kt~TI#%)U9to97p3c6*GvO>UXq#i1Qlgzge+7#^D>N_q&Jl3B~r$_f{jV>aqt z8dus(k1KB7Gey}|cu9a2NuG!rgK`a0rujaY8z%|Zc2@w5(F_ewQg3F|=P$Foyh5ll z{H%ja9Hfcxr65-N2R_p_yKtM_5~<9V@Qxib12}4esMpMi*;# zI>VI;-%6ZJGc-`(%2Q8cS0uOmolkOpVV=}gKM6(ApT@h0_cu8fpgc(uMQEFgwtI=e zUtPmSZM=z{tUGzlxTQ0M(|17HWIvOSt4P?KY}9QLXi06QPTfE$D9}zcDlCG{awjOy z%UyKByaiX264hzbZ8ose6X?XCMIZBH3_%hhdp$-_bZbM@dmUUa!1UTww54ne^4ulT zq>U>yUbTR&PEZd^L`D$Xh*GzWG#PLQK-bW(lK1HHL=9X_=5`UVff!lfxX{wvAr5NvTvo zYsuPLmn(~_+Xcxvy{O?z)jPm?AW;r&kxD8zzZF$jVV;iEMA1_vrs z$^~3clOz$XW($#K_@RT*24yS=hgQ2qISk35Zy){cD=j9?Pzd}&fo`Um+BU_bfB6*k z4w+eQ*?T8acCX?obC=w_Qr2@4dI_vHWB%;xPardiEtKfAyNJRt#x2lF z5*+2CZ1Pv_(p&T72EP|KP*r$)g~?irCPkQxH12TVz(GpY3Ue1PvH#E^_ARyXl_Cg2 ztnCnn0jak1;to}>jO)5gj7_q!)<*X-_V3uze8P%IX^9<70gC zQ$LT^Es9of?C4RRf8`a@G^ONuL{SenDAI0s@%$l{R@Z2@x;*l+kD?Tm%R@Z)(1&>T zsi#=0ui;#U(HMl1q;ZPxm(d0WhKATXvXi@RznRfcp(;=e0&Hu8M0uoXMwS_@RPT%W z$5!!nZ2Q%A`xXhA>$<2gJ-N3XVgd1*WgpY^}iBEGMNRP<<`tO=F!Oq|V_uF3o0( zrNw2ImX?{Go?`#OJ&cbJP^OKqJJ>8mDF^ujwEH)|=dH@I-7-N{2!ze@j)`>8Iz{xI zR;{o|44$h{#^R=e*Izx&j$`)`{&s=K|M1_i^xyvuhkx}y;Byb(#mSf7U_CZiX|aau z)Jd)*2mTPTxjol$Fj}LnpjIm3_F9~N;&JvJJ4Pg7aeWP0@G;R(W!wHX#QT~Y=On8X zM-=cqA0aJ`g$vC6=@(J;HFo~pzmIcZKf+gZbQh1lVTb^wbK*_r2%1Su$t^Gt_^4Kk zm;UJgq-FHvc9NmGTi8J_RZ@>7PVX4rMl-L$rifmeJ#Pw!83=&Y|$VKlz) zkY*WDN<7bDcz6uQafzcOPs*~qMV2ay?rR}O7~1UyN(xHlklNG;u5!rIj9#yEwIUsc zE?F-9j_Ww2X+o)3V%N+L9LLSAsH2=zqNE{-6B>;*GHX!E5{52Hsa*ZSv4oDp`0yyp zOAQ7qC8SBnGN{yiY}TdTY|?9WsO`E5H_#l|H^pdB;I(tF(Y?^c_=>0zGgBGl;oBy7 z?zwNXUT-oqILhp~(>SFP!xJTv(4w_P$-K?2`pOh0OL3)T=bjn58%_4?+CixlBCJMO zi$vyl`6NLnF^6v1$7`eA;Fez?P1YG18{y5_ z$TG{h^Yau-MWmEOy&ircL~Bj4RHEI@6AZ@>skdVWsznNZ$VPjGX1k3v0@ra#lP-=F zNafJ#q?C#w+A8WR%gi^HP;rZ2`Rvc3vL%YXhh4ftWpX!utAmsV={Uqm{I1Xa4-=c$ zLT+(QGGpmRDMOjjs@TuiSGnp z3_@$dG@?obSrb>Jq!~Dlq+(n;j=4@*LI9x=$VA{)e3Et(U&jPVi;8xrWf}E2!-Nt? zDFlWTL69l@6beEyw9-I5`ZSfe!@w_pfnLeMniyMfsHtHl>UA!iILF9|%T)e>i*X&= zv1Z>lzDxF{FSBcD8GZLXc%%1`q&=D|r-`0=9+72C?A?Y}b*ar>Wa+V|nGQqhH|<1= zl%(5X`}_vsU%pQBxi^^pho5Km@Xhb%>HUchDHS%$s~2gSVyz_%LmWqvBt6nJLrMqf z=Q21#T9dSy*3l$+vy|h@|$D^j&#UuhU-X_wDh_S zx_z7BZm&zb)y}K^X%FQ(=qy2NO_t`>ZPAmodK**|{JXzA&Lf8hSXkZQ^5QaM+xD=s-sI8mpP)20#hEwfdFZagG~yP% z(?caWjogtQhOAGU6j%k)FL1fJ!DyDzURr1M$^{f;wjQ+=je44?!DtC4o?k|nS@wWP&USO70L=ay%nZ+4)gNKl&~8#AD z*XNmc$~0(VC|&=+=Tx(?rZa+Yn|C$QNm=1!gEz|0K70jJj>EEI|29@15~zE7i@@Wl6D=0E!TU*P;= zgJ-|@EEie{_Y64PagX(ljIl5``4^L}7AZyeWEjr-%{?cq8uMW@8+*?DZ# zFm3Et@jV2F%^k+DA`V^PWUE+lGPH6Btpd1bcmOtzUQzCA$}eS)+Qf{~FSG!7e$4#$q&LpV6V@#9Yu z-8RnlauL}{v2jX4D$*@nW`V0!>FdwM*6D?k8dtdpBwELmOJy3ph)gO1GNb|*37Mch z>LMZsxi0wH3ya*b?;v~s`9I_NfAKr4|EK>IAOJ~3K~y>d3at*Ij!EM#YIuMposy&} zfhQ1SqulaKUqH7v=uYh-b1hOQ)MCw0;F0yZ_zuV@!51Ep)pV7h-fdF~izHZX|J8rQ zZnsEWEzu-J66b`eI0eT-QPVRTWemayvPilAH-3%!Eq73NJq8N_)13_#-#EpY^;POlKxPXRWQLR}6Aylrp`ZUG z+Lgq;m?7Py^*{Y9PMtr^=!w$=2M-WCkVap=)XF8w#WFfIc&-m3SNc#&B8e6dR2zgNu+pJeC{rrdSX*6Zqt`%5$-@Fa9L>U`;of5OH_9f`n^4rn;J zv_g_*T%JG6-o4wXZJ)$(ELT=mp*73QKuENk;32;&o&eL1MW3$Q|t2eUMgTjY8n(1lD4O^H-L6^W0^W<4_HY zG#X6?1Ied;<}gWONs>0S7GjsEFx(nQM+YWZ_7{*Zok|NN| z#cGTO6k36H6j~}W$B;QbXXe+@LUa0jgTa|DuV1Ni_sxf~k-?DRNpOs!*XWW~3iz4A z(~@i}l?QQ^d2@Z31mh^Ia)~vZyKsr&!9lw12K5WGeD>iFbAE1)D=SMJ9IfSvvCUhw zR$6*-kD{+=^_qCTnxTLbg`74WbW6Nhh{b8Q@ z-Wx0~Zm_tx&PJ+o2f1FI%xYZUg3VB21r-SftAl87luIjZ(zwT-JvUKc2%%+;6$cO+ zfkC3dx(o$Ad&ehP>||_|JqD_hM7i`bjbkB8QUb>%wP{W;O*OtNIeYmcg-XETJu@8H zGfmmGG?&k!0)>11MKes`xbGl$MZqwE-5Emyk1i7;py=S61kFF~YZyf-gdn zEu_appRD!v$dzv1UC2$MlHFV*h_}cyZ;LF;5HdrUgrR{7#iBsuk^He zKi{kt_y3WPu}olOg2FH~RAJlheO$PB7G#x<^auh-dL4>N5Vayol|f#4?F4pUJ7Xhd zDy1T%F`?Ta>SY98k<@4$Bv^yvScI`8nZ@-&G8^G|9@=OeA<#*JYc0wMgmA9PavG5# zGaoAqZqXst8K)MPs1<#V{pLTRH}=Q;#qa+cK7OUnu`m2xPB!4;;%W}9s1(p~f=A9h zK|m%XMi?^r)-`kcj$sx-rogqPPa@2#cG4PzwFJ_mt_-ErP}CWs*Wu+e=eXs*hj0SL zS{hOCd|c(_-SEETA(p%hu&LVdL&W>BaL%>0w%GQ2*^w=Bhy0$fmCM=<@`oGcJ3mI@ zY+AHJu7Y4p?qa5ti<6{uE?uEnZ=kminr`Nq@X-4Yq{>Ofy|ukUzg1?Vk2 zI~|o1={C9HN=aPTMF2^hi>c>QSsrm5A;hNcbS~u=gaNMO;W#cjGbrgWJY2fD8KS6e~-0|b^hp&|1Fux z;Q&&;C6Acva|^ajZs)*F2dUI*42?}t85+)YY>fsCgQFuHJam}#Zh|WWHiJ&2nHU{n zpi(2tVvNz~LP*%`A^d<;dNg|-?!5B|yLWD*EH%>cDTXDI_5%B6wi9P5Nqe2Lqd0PC zA6mE=of5}g5|dF0i*G?6`r}IjT1etF!TK4~+h_RFSD#>Paunr<{O-T}Lw3!KV=@qq zA}EB2q?6lR_abx<(ieZ&dNhlxe_T7db6Zy@ZxcISfbR#4j*YQ!Wr5*pg`2idb7}T0 z#UQ^Po6|w`=Z16?*3I1oiscfg-aN(X>M9S7-bJIn&S0g8)s}82rdkP!qW0T&A(w{R z>H#6dRefjZs}D+<6G}6I)+xPS4^McM2FkQs9kk9d@}jG&bv)*81~>wgB<&@*!n-l_ zDQ8@NzyP@wy3klMo_zdKg5xK+vT&J=`Z}YPfO`(_XWQ5SNv}<{Hb9aJzV)5Qm`h6B zv}cN24<2C0#0YzL6tJX7qsVlO=laBH53SSxkG=N{((F3#{C?-08{gbHO->lh02l-! z42eLHAVo?HYXvHi;!3r4$${EkOY-i@wI#c(T6u#$*jBA&YfCDvRwb=yi6#X`Py~n! zB4dD=!C-Re>FL~Wy6FUexNpx4z#a+MC1g>>r>ehn-@fm8Z#d^U&+`xXQk7;X#^Ssy z>MK%8j4n9PwUflqofvwaXFGk?4YaP2)So{vZDdKH3=OtH1NRY);oW@bmu_ z(dH>;FRiegmNJ@|b$GtVWizk!H5mpQ&cRg@b^x*(V5QgpPN_6u3qzs6i+yHV6Z8%r zXMU~CDF=zhZ3)mB{Gx3|h#!PFR{5vmm>9_v_Y!MJOSUPoq zF(K)!EOPc6UuW!r57YSRzelb>Sx3}naQo>4&ER?iu9~pT_2h+YK7n)Q#w9q6Tr4-df zKyk5Pwcn-hd&Il<@I4Sq`~M~6fE4!Ez06nR*47ss>m1%S^kt!J^A*-$ts@8mDwPU( zmeFigNYavdouw((_waomHyF>*&=9@~5J)?BiUS^otJjL+LCL94e(S)L4tP$e%mk?GUt;6#QtRHaw_H9gz zZ^DLSc&Z@qEWS-}c@JNN^jGHaT!kQT zRjMRO4__*Rz$Z=m)T=F4dzxMs^`;PS;YpRR6ra@ zI4ihe_cr{n%F%_46Z0LM&baBWdzhN60V$Uak=&K4e60qb{<$CH;!>AGr{_6(ah^&5 zBduX7VT{w}a;2_YWO%YvCE64#K6&eAmUfTw&|@#KbUx>{TlO>3s!^}hNlZ>*4Y3~) z2ZBbW!pHA>A6kX1WRf8CF?om9{@turLfR+J5F&|y9EVWv=ED3ApghjvY|8a}wlO?3 zL@&)TD#F?vmuHNP)XI&$EA`m5)wm)fP#)W+C;59Hx*z8S;0L%O!Q^e~)e5yRMA-Gp zF#~P*cm7R;@^H>^!wuKd7#_#SfSYz-hqe*1?9;3^@T5fhIbGeSmkDI8j`X(k+H#-6 zkG#nKZJYU2eJ_nLrYb#ZUPd7uF7QA~l=N_^!Da=*|8B{zvSYYD_`$O!)+^!b*vo+- zv~w&h>%l#lDY!g1a_trT@SG4lmCAI(PiSXHYwK(S2=+pjDxx`{bfP0@@Y$0zwN` z7%UDW%kB=sp%6g0!JQW5E}-I-?xbQgL_PQ@Bbzp(-*XG|D|7e*n2N9bQcCm(@qHiO zy3L{$kPAT+mdxNdw+y8T6RSOj&#myx@e6GK@DH))y?1iz^}|g4U%$t~AAg;d$`F@+ z=EK}~`yKR`Ryg-tzs1@UUtxUT7UaYT&33}pBq3Q^!di#6T}A@KlukH(Xq5}Mwb=8^ zzlb+E!H(}7;`s-^LiEi?Xy11i)n*H29BN^KITS7y^hA%aYw@L{NY?0uioj`vQ%J2) zg(G+e6?-it3=I?S*~{$VbI3n?f;-wN?A=SA^hkWcDKu#i<2Q!rtjsZK1QRx(y3l9z zm6HfRKnTdspXK>ypJC|w?X>qzzI%7=T@L5mWjo%tbF2{Ja*}4PL2uyGY+Z??mA*t6 zjT#tRc%Da==Wj~18JtfkRVp%AN2OB1>T(klMG?l7l~Uy?mR8!FJ~PYSeK#VdL>oh1 zXgsAz)08!<85SX7jdf^!t5|A3si(WfVoh{QNvY5U|!; zLq-w4?<18$Ngpd5*5(N169zH;yo0rxqDYa-5d8`*!>&Bu!JSvpo2Xd?n~FzQNvITlnY$_cPt7;Iu{xNymDi1&=@d9AAFu z+h}i?z>`$`kYD}pK1Udi(#=zpaCo%@Q>19o#{$}qDMWyXT9}nJOqwAA2SQ^-S<%9l z8(3)tzLcn1jnyot(^;i8)Wqt9v#-Czr+)e~eC3fx$kHxRyjsH3uROx1f8wWDwkyOV9$r!^ zBj}<}zn@WUO>yH5*E4NGCQmQ$^{;+~Kly{F82agtF@56%5=W_T?kJNOOBi@8CMiLq z#*RG=PS33{cm6a>W5bxyO$1TtlxQqOQ5D_m;*=zE9>Pf`nj`$o&wPfn7fGX24s=)b@OXn{#;y`LmU>w3TS2?s@ z^$c9=*^qDdj(~92Xp?X7DxCit4$6r_3W~JH)L4T(JGay6_E26% z7-@`YP-KoYOR4xH)Cx-w`1m@YznT+PYgFqo%ZW$kVvqrz0F!H6Tsmj=oS~CxYMxIJ z2prLO58@i6TIH>`wY@>>Mqtn+^#-P|cC9Fa!oES{#zC_mpZu#hkX&pSsX=@m{<#x=_ zpK?Lx9QcV(vihO>$b>}3by_zb;KB=!!Td6n9TFF4dRdAw5IdjHuaT#kcDjb#y`6)f z{W-GfF)lg7*gXdsdHo2>k3WMhEzUTmJx;_VHf~|ik*@rwmI6e=#YjCc_NjoQy(kIUg`u!9sJ$%n6@I$0h=%T=y z0-I|D9#Sd5P!t(jl-ke0WtfU}mZQgy(Ht7$SGe5JtgUvj z#(^ubd!8>5!jh(Ktn^q}UZ&Bk^05a#z;K+RT*1Up1(9@7N+6V?LQYX=?!0LiJGM;I zEh?-g8HZjw%IOQUC>*s~jFp;3VsX05_~;0QbBJJwGiT4!)2r-iH5sZ$q`eNRqHw0f zom*9!uSn-`2Kwy`>npNUv+t&Ty!QI5?A^PIM%|~`sL{_eq-TjegH;NUB;7tX^wIi1 zrAp&2JH6>VqY~ArjK!cNR%?=OLJ$P>`+a=x%6o8G8cRrWp>RY*LL;=m3k{i*_@RfO zl%n)iNYYP| zQ25I6{(JAilLcw6xq07pXss!vVbk~st}uM?-g^l>L&LA2`&~RyVqB$kG+HedJAIyi z^(Bs7TH^FV+ z%0o$k(*eeoN*X~BAUs8u_6frcD#u(6bs5|tAuv``8ceNk$^-}x(;K+o#)@Z-ALh29 zDSq@{{7WAH_kYN@{_Vf!PVwJx@W%bTHg}1xQh>!%u9WFit}LcGH4vt=fVt*|LI}_{ zM9Iic)bvCvTH!K}42oJSB0? zUMBfj=a7MiGms=H0*U8^SmV$-XWza(wA+0yo0VmGyo7KQ@q>lqKzRG<$6*S8P0-I2I1Fm zvS7=WX{M)|eB<+<=g!-2VWBTMeeBi2A}H}yLA5nZCpBDJ>Y(BY&MfyB8fkL;+!VRc3`|3=dgVM%QmqGwp1?RsqcKD`wLJOa zQ9kjBj}dr=s+Um-9oAErEXC-8N*HnQmc7JvpUgO%5ggci9llMmX@`-DqMsD_zDJ=G za&4GhSmnsEHg?)LKKbrZr5{+^OPb!=zDT)+pR7srG`pTybaOzfEwSRe= zA*4bVnlSV*d4cbPHIjfD(n|n`)&;^-^o&4O>c~okWGzEri9(6A1)=XDZTW;NDXGQd zJoEe^9(>|S{92X!-ggH(H%$}Lf7@e|gH0t@t6w-rg%Igm7PFK-mTKSQy3q*^{_6k0 z;s4{`@P%Lghur%QKgZ3V{w&WPeS?AeHwB=jLm7!@0}54u&;zdpyWzu8nyh3@G@GF&V}$F`7atobg%nB-2rV3VphT zplbpO8DoXSlLn(KNt#p30;EZ)IG?bcGv1xY&R!x)Gf+7flM0pYW?W4|kz%EX6)|yN zGFR&m#Z7D?5fw+;25UV`v{FvKLq1L!4o_{RGGvLb--k;3Y@IvDk*6NVoOzx1JadS( zKll@_|LkX(-8@5%InlB5GRB#Il< z8e??(hAo>W2$Vrcg^_Kn2WveEvW7zwI*GR6`7ueJ5k>(~MG-ZIQF%c%YVrD^Kx zVV9>L{}P}6#E-Fgat9B7{cBuUXfrat2iw)eu7gV~zVr~*k!C&cBmuB=c9lp)?AX19 zTelo!tW_h+QZ`p>^z9`Azea9Ch66)b^iVpb9!#*37idpn#CnD4DtlD7apEjQxyX9n z`eJJ^NKz-tb~eYFBV7OhAOJ~3K~$PBP!xHOBodrCHBZt>x$TyHEH7&2R@Qjrg%=1t zp9A}EWM*oLL(jd!OD7*=^X3WObMs!Vi#jMGbmp*;Er*sFgpowH!o|e$7ms|KdTR`u z_84n5xMAlOCWk}9SkdmR5r!ecNLE%8o_^{GJx@}|5F-M1?|L5(h$aViPf`y$6hV#l z#RXL6<3vatWe5^{-yr%0k+@Q$1CU-wFCUOjGz3&Y8*Z7dbJI_L1TD(s*HZqQbRfyE z%mebuwVj!4@pC`%U-0AbF1;>Wqug|$}!MK-#FYgzK8Dyxc$69AzAm- zDNJdAgN0B9;Gj@~B<&GPi?0M$MidTmqo{fcPiyibM}{GV)>KC)aNamCuS#C|;vqIo zEO6J}QTFZH!pLw9l`RvJ;N#&L5WYe?i!}u(Ft$~yx0H52;Btf$XfK2U8nQ~m!m6-5 zxiZJp$PhRE%0FYczKxgv;Qt{wdx_ir!7p+~XSB1NqEOVW1}sLj@idnqfye-*3mgJZ zN}Tj@l$!fBZD?+5kU#S>2j)(rKKC13?04}(kE$z3^9~MGnpbhfeeh~qaj^kW-CYAD zzM($!-*id(8r_j=70Wh;8NFNhYq2re?|boigIvt}E&|9#gSebrx$=SuixCQoPnq~h zq_9Y5F*3sm!@4)ObLBA`g>nLEOBp#&lqMjaqjb6%Tz@M{DYQO{%z+*rrTOEZpk;kz zu1TYmn(`>(D$BmdkndpxU^KBz3BnjtfNwoK?co;zwXUY{tGGa6Y>w+2OdOLoLsAPO z3|Uf+EkFBdqS;HBv%kg3(xi#WTkkEy^(tj#Hkj7Fo$+S(eUqhlx~VUX0UV?VDX!dEKXZ*^&cH&^{0 zJNFoW^hf`JAPgu9$LMGSZ6pWpzL#EJFgrg-o>{hT*-CA63{~;z76mJF^F-AePWW^? zedgva(rONo_IfCl)6Ol%YtSd+!Eb#BsSHWK!}-NatSoj3>N(-;JQvQtK@f!KRMYM& z3cbeBBWJnshFugcN5~RG?D-zX8P1k(nc!|kYm7Csk6V^KVy@WLFGhFld#h?2$jph)GOY`jBHAQ>r z5+) zjVj~@&k1DUVXe7}5B{GXLX_qp*4nZnCj_47VN8o}eB;YB8bfT^wTD85Jo?0w-2eXf zv#_+t=~KtiCg<46V|?iD+c|vn4W4`E7`yJdiNYj!p``Ew@+?LA5n&wDO(bueKE;vK zr?}_NDMp(^_}0)2JfM%Yf|20}2du4hsn!IQ76>n-lPR8i_C;QJ7EOBLu-D8``!)Y!6FG0}0Jo5ra4!uI%blEm~FT%>w zZhC|D);SMnJq8+OIOh>GS|q+t)@~Dc19+Xz-!;iu-w!x?^axKq^%S4_$)7|@h1q~> z@pmzU=Lp!(O^@AGgPW|ibS)tlJelACwb(#<80kL$$=ZE*t2zr zM(E+vE))fxbtn}PDG!@>1{%%|Z9%CJF9^`?yStNB5wSG8!jTEs|4W~NT{ArV+rQ7P zt8Mmv?!Tng40v^+jqvK&BD?IcZC!~?7ee9&-7Ulw{I+uzCk@l8&e=Ckl2+^7aLYbU ztgO)$1x^?|+(2bU!Vd^}e<#9wTgndZ>Z(Jz!?l8eJC73v zq5J?Z@R3o7h$6Jqh|oh8RVbEO>#X8TR>A>fSraG|v}<3A@7r(=tuJavo_^{(9DCyp&R&@1@h6_5pXVIB<8HR^ zoMv=#g18#tdp@3$kmpQq8UotjgpeV;;GLg}HcrnlB+X7ec5 z?YN$9dxgb?S-dAbv~h%fgwh3?0_mWard+@OdbV!aMBoc%w#*RvHC{P%m|mw%k*8Se zu*NaJ&?b&+96fprouvd>iXSMFw1lcicb-d&ORTQ8kxr5pYpkyISXx=)^&?04iO+lr zC4DlJGc-C1LK0Uhtj=E|Eec%d)9>}E)teY2!GgpQNJ-!Y)S{Sv5a3J~F_0?rr6Tk^ zI{h~1&M&ZedrDq70wEAiQms`>GF#dsl0JUmlRNi40g+zrlZY!eyPoH9?)(Cc;c>Fe zaN*KCMhAF7#MVvI?A^PYa~Cdf_WU_^?B2nRd$%!EYx2;yo~0-xK@`$Y`&?SGAV_|7Use*~fY0k!Ls{DriDfJW!Q*o3W9igDhX7l5*#4se&+=$2JP( z9JP9Y>m_{fzJu(%?p7Xt_z@ob#y5HYZP#<--Yq1(EsDhrY=h z=jUim&G5ke?`O}Z5n9zcg=iye!A6w?DI}$awL%D2&NtN>c@WX>_VB916nV*+dDrG! zC)j)4e(JRrp&wJ^7AgI*FtkBzWGj7Hi})?Ek+%H1xom9odDp5Amh&l>6^hnv?sHcr z$j+7WehPtf27$)e94SgdU6xC1X)ycaJa6G}Wli>GQL6^ED1Ua6g|O-_BqDFaMMizcI%re)X4; zyLa&XtEZ^c!*Y~^_q}vjy=t>4%e=%6QlDzGhS%=!(o@g!p%4EMwq9jr_5v9eB`gSq zLJpu(KS+-MF2vi|Sj+OT%L(#86Vdq?AVO_MxttYmB)v2#R_H_f$l)cPN z5d>DC{FqP&%!dKOO2Rl~m4H}efFM>es#Z`R8fNX>1)^hzXl&brwVJlgnHD+r>>HSc zIqdK>BhDl2C0x36npV5V@O3-Tm59|&kG^kk#?nu^q}@KE(L(LJ0p z`ZPQRSr3);@y^U)XO|hC*hE^bqCKx4 zwWina^Tgv1@$}QrAe7_esS{k9TV#28l}@`)r4nOZj&qbct@x$GlPY02n>Nkx>%ac% zY}>XCZHmj2_*;|Wt0(fStHf6;U|d$-5R!|R=9rq9V(0E%bdxT-_T9wD)Ha@f{zYCn zcACcIHrhQ&8YluhYC#pFG*&p$evh%S2}Xy9IQ-fntjpN7Yd2eENle@O zD7W5qKg$;{vbwN{UR%MM0vW^znR971!+9+>@7zjdY?6*>aJusPqS<1^?0_+(~o|QD2|byLP(ZO?F>b027o0?=&YYC8RCAC6xk3xlT7-27Q4shgEFn!ZobymYKtEg|Aj0Z^ zPKQTuojVolvfXv`jRc zxF=sAU06nbL7<2pt{P!Ow zogOU>7tWpI(!cs$YIoht=J(&t%;b1knJ_uahhJpw{0Z!VTUnmjg|-1j5K?Q^35tXr zr)DAWL0OU~9_Gw9pW@=&9Pv+oiZG7ID6J<0smivpHSYug{I@=olIWtuZ3RIoX;-aA zWLZY9+vCWQBgAn;Yq-JYEt_dIhp5+Ec*-krcTQ8}C8pTg@>z@HfLbla_X8#;$H}q+ zr4)IdyqOr~u2_~{ohV;jNnTHk*C7|ZG^L-VEU&FGw=l=j$_hbaf_5(@s1I}E#bbQ1 zKElPt4kp)B!Ww}R_)bub6+_K2^6ngsdO)kyWOZeMojZ21><{zO(bGJ6y3NGYR)%-% z!e%Lw{ZKmX?oo`{^WQ6SAx_ad=HdB zTgQo$r)W-0vz&JEW5okM{6qZdqtDVo@QEM&5!wrLgcYB-S|<)Y`YX%e`^eN1B2lr2 zvF3Y{WvGD!ptU8lUTaOS*W>KzLnJE~SzTUWZQ(FypB?7n+$9b@T~_O_+qH+l_wc31 z-fDzjZGc#&XD*?w&)L~k?zsB~K6>xH%+AeYmCsk6dV$woIz!g$MuwR)yYLAJ@=)`^gt+wZ{4Q$3B7g?Wg$Km;RV!N+hA%o2+V-ssSsQNu53JyzqWLWKm6lIIe)3m_?8JQ?(!n@iqa~;Z%n}R@iETUMcRLCcWsT2keuucF03zdM?qQo7E zNPHR43qzKpI{hFjNlZ?#RH;(bYRo8~NGcNLaj{+@4J%lou*M;Up$G*lp`zCuqooZs zC9%eGsT!mG3cbQ$gn^TLap>vGZecpffUF_dEiF186ZQ91x&D*$eZl2+ht;}^a zhfkm9)#DebHyfl`f=zPv@7u%3XpM`rZ?Jr!px^HeoYn#&(&0pfW>knWuO~2bk>n<^pJU7(iCe}}xnwntK^duuA!(_RjR;$zQ zcF-c@ru{o<4AoFUmB=`-IpbqhYLUb00ftv73g_6peJexFVR{9`m5|CE``Eo{lr5k7 zI6{K-Jd{ef@4dI-djZN7+<)&K?7e*pXv&7B4Z{sMA|pp*qyS4;6SmWL<(hC8*R$ouf1olSs4KAmPl(3vAgkO_o}0lF?6dTwmk)K0^9vA(*{5%TjxZF{xQyTju7QZ$>ylqfuvN zX`YGEA%5v|zeKYZm7P7ofb#)T_?O=cYs*An9V2S5G4aR&Nz95XHn`V{-7{PH`Oo|$ z$Io5j)zb^)ew_omu4DhM8AOng_exnsYc#?d3TGJ_8Rla@{86@COnK(TS9tiLZ}MU~ z%L8}b#Qg_vBa{*`sQRvd^!iApkQ8Y_REbG+TIx~z0X=8w^w-$t*9q(zsVWU;q=TX` zrR_EX>nu(QtS)io)>s4B2ryl;)7$N|Cf$|6A!Fflnsx7&qv7s0`(-CvcWUn6OL zCvh#Z;M;XM{j1Kq;X36?1t}$cq%ec`&EX4$=K_Q*iT6%8G!Co4$kI8^*s{VdRfsO2 zo%fK!A(bQwLSo;;Yc%Pm9iDvQFs~jy%C_-Qwrn2bh8uS=7KFq`W1K*UtDX&4UT5b^ z+DVr<^6)A#yq&av$iKTI?+&fJB0lw__8votrtoX_{4ApoFEqV>eTOzlA-0lH|-;YRd~`INbJa zM4PvxZ@ZQL@DOttWKGdLaDcnRA>t(C))9xxGL#oVrA2>wnqX>zm3p17&4983?wo}I zDcEi_>0Co((QO0@7wfJ;Z$0?CYtrR=yUsEI+`4|Q8CYZv#O%d-BC&CTy^%VGpj5R8 z{19xZ(QAyx;)tS{BuS{%8{Bp9z2uqY<(FTi(X4Riop-XZFpp9my?(!xEQ>-chA0RK z0uNmjBuS5=NHNCHYPCr7?7OPO>!G#2Y+j<2B26;{j_sSbGCMoVTDOBAg$y-fW-lfr zX%B5R#%N|XZ{zhd7ntiys`X*C73|r6fJa|A%uqPOWWnvq8 zNF~{}v&EvUaob&YvGCksvSq{YFp&n-6***-z9BycESU~G<(kYyQx z4Foev@&ESquLrFNfS^K=P3l1P%3Pip+bdI ziZsdj@V!68tEUz?^4v4ry#IP`yI~s@yF%beq!4uS(mgCP8B!@$^Bk=do&_aitTP0j zB6As1zFDCG1{+K1$TN%Ql?nr3DT<6B@KHjc6N9sYtdo+h%+ZMIjE+?P`*_&$9Q~X#7w55}w60z0t&-$jjz0MW&5?0#+Pec` za$bD)JNUlihd=rulm<$!!XTh9r7gS3vJKvM$3RD6!)fNNVOBeA znVMkJ&drRUTjJ|azRcGidWi1w&3yFkZG=%Nb?FL&avEgB>2v4!;^VJ!d@-YMVEgv{ zeE62T*)dipPkM~jJTL;|?B%IPATDF;$t~9NvChzF)*uXVag~17qe+C!93pZE=P=sh zc@l|4IDzN+;S<$ZwXrTM`>)Y?$d(ZEDf8WIxt2Udf!VnTFm6$wN zbh}-wElPmEPf9Df0pe|>_cuJtjhoxm9`}Bi{To3iAGB6IHs?@M5qKd=XbR(Sh%&6p zh9GhZKPSdVDkxk|C+`!7id-lPYfB1(P=mlHix39kpvVlVfFP_Ponb|HIdn1OrDLzN z@BBr6`oWvHb}y{_Rw~rD-pq+!j*)JF z5)U9IV-Ugu`dzQvwKYnt4lsS7R!;ozTFun~yVZ|Q+=#=r>V@(jnScEQjH`YZkwQ3E znvWwXv?i>EM0f09&eJqqKp_lPI_49Ny!#Fa0xp_9U6YekLQt09==FL?rKsI;3svn{ z2m_iXCx}B#YA`nl0Jv17sMyEev72z`*770>eJ)BLq7Wk`X=VsAKzcM|iQ6=TH#?2E z_bzfQg)R_YNYnS|N}sN96iQ%Cfw*ZM{`$34rAHwgCNJ=mPcv5Zy@9f}*S;2H@uOJI zzT1=W9Xi7Mzg*wjq&k!;H!4L@&}y|H z7-PxWU9v2r<#{w07g=6uA{9)GPhyNN&joL_=D+;eCG8@|^E~F~=lQ+g`&XPgahl)w z^qucW>vBJzJnMvs)T+3&R5%%?Hc+9ds4a^d80HmseZ5l7&6AT@MS_|DU>vbYjL4oM(c zH{-JdU_~VW03ZNKL_t)2eT8}>KvWB~7lXCX%h>zEYn)!_5>{&9`P7W#7eDt4ymj~t zZI!cSdKgbtXqgG-u5_tY*RyP6V&B8M0_!XYgHSovs#QU*RkS=C!UmC&##H{aQ?~kM+Rh7M&YLh7_XPAw=MNAuOJL_q@UBt za&(^IX9{g$x;8_eW`ur#$;$>V46D5H>f3k+&+wu99%OQO7;OwgQ*zrIY>-^}Qg#t$>-O=GeiRu?2m!UPKGC3t?Fuv(>^`K&bic>WZh z`S`sIS3L4|#$%uO6kq)FKgEa$m(8P`hljvZf zJ#WRqtjlYQIE;98%)ktDPs)HW|MvU_OWBf z4t(DyiXzhdM+e{gVU%<3nm_l|kRmY#`^kUChJW&#c$*p=J>S7k5+okBoe}$j zYT`2~JsS(NI{5hsa>vWfwXl0gKlpu%u6g|OmZ;pF*?_hJUM>Chqw{xtHdH(G)y!z%| z!XclNG2C(cJ$&se-zdlPttB4)@FU#1c5)Cst&tLhaM#9{H+ucAFERLhDVB5B7ETy! z%C5KDQxf0vFh!qQAUN{o^B7S<3Cr`}`6?szn2$VgCpyolMKRS-VprP4en_Y#Pd)t- zb5|C5^rt>bV`79C_CCvpKm0&B^0n_hx1DnsYY6-RZ4FKe3IYrsF7z-$5rhRjosnrx zo@tU$5=H?ME89-Sr2_}C12meI)y;`#{f zwjtF`Mn|TJ!h+28=(JWCtxr&?H&|-s1G+(q^&L@A!8%Dlx1=^N8;8OWSI2QhPAEM* zonu!s#$6rcx?#;PF7u~<`4o#iO=WyN)woJ?d5PtPCALhCf?txjl;_iu8G$eHeV;s% z6p>>j8DjlJ!l{GHV8_u#j`DnjC|0%U>-01Hs6yrhoy-yrPvE4_=*%>gLS*fBqbY4Mv{oN~TEzSRrlN(C?^w*ijYlZo ztE{!CfnAyq5+xN$QpP|_DS7k?(zn<6M*oTseyY}40 z=YQo_`PS1z?4>1lKMar}!VeNIEqD0TXMTZie)B1| zZoice-LZ=={y+Z)=lN8kgynXIa2`cBB@84wU*g!|R}dRFpqqVsC0Vu>yW~&=yf&(`>)vJ~nTgp?&5EmoCk*Y2!LR`N>c6%nQ$R@X%p)trqZr!q-fB(n-fxq~|pW?!VB#Iax8)f~>IB%SM zkt7}=j)v(j_BeO;G+D1nnr1|`A%;iBxVUnK*WP-I^*8Ndc&I{iKI2PY{Bzb!O(M~p zUe;`x8K)Ba#C}4nos*^(;f3Hyq|p?aqbCYFD=Tc67$;O7DXY^e-hVk(noY8zU}9no zYc}7^+NoLA)nTe8adr-@MI|BHXoU3Wr7830E^_R|87f1w+_Gf@>qjGYZkim{y&A$l-m5byZTyRr|!fv*%oI;KafOa~LJo1WzUJ-6}VspA|ta+cHQFHv|2Bq6?# zU^PmF2wiHMgi}b*r*+CVC-%~35CvzRUr-~6e{q@WI&p05Sma~IeYF7!f`B~F$@83<+4YQ!j?$sfBSQ(H zRY;eT_HvdF9A{=`4Xwo!_;Ex>3RLW43X4KfUOp0MeO}mmfTQQ=ZSv;visa7dG@lpK$Vp%Lce3R$a%HHN8m%PbRSDWl*d$ph-k!Pzc|NYdcf}$Dh5L!8@sDl2 zt2x$MbNx2mcLHq$xd;gd%5R4y^L&)^F}c0Q71Di!q;#ynI4sbYWuu)5aGpfz0A))a zuB7z*RU*O;NM*jtOXL_qNCX9VBE$f(iYW3DjV-R(<&?X0@4ALgOE5?brP|qtlB8`V zv8Y{poGr5_0Ee-T;5vgfjVO6;&LN#37(_f4gGL|mjwh<;1lY29&cwi*IrMSHAy%^? zy3SMa`m!ISEB!#Eb61k$uhCDgIXIT%@9(B%u0o)Hm!R+ZhhBYMih^1kQ4EsBj4gNF z-EJ496mc9Q0*THFLRCdNOOf?RB1f~Ap=69MN|kV&#AK#h3f7D%T`H81aSq=KJSph+ zQ<8d}tjLJMm~N+uF_th&a44J?mHykxBa9>JLp4sEJ%RKbTQ_Y&-&N3F=`%h$i&ctd zuS-&kIDhygFYMcgv6|U+(+p2+#Jjx2x|xVdCB|1iX=aFOLv$CHh$BUuB;?xT%9$hF zv2lX?_S{N9mne~VeviUge6Kg);0io6_iUSF>r{eYsc>;Y^6DE0Si63PFa7!NvvbQf zmX5u~?|kJ;+<*IKl&?u`K}$GPQl}*vsAPzC+GAS(gsioU?01+ChWOII{a^T%U;7OnfAT?|dn@7Xy|02*ctt=Yb5dtmYA#c2)Jo1O zAe4s}I?|OkjbMoLtqupyo@C9&E!=eTo$USVZ`1Aci4q6(3PsVuL(*?|ICJVEZ@&II zy{=_?dYD9d^qPG-7V4E6Hr2#|g?@|0^B4HkV^479^ko{u8m(4%;^!Y>Wbav?ef4!F zrlx4Mdz?CTj?Ej^BTbLy(lS=0I4?&9lIHSa*&Oy##_JVkh9@}s)@g>^5?d#0Ks@;4 zfE;H8ezJz+=f1$_e(AHsfnu!Uk>x3^)-o!Z;ZL4^k@E{3CMP#x%p#%mD73||jgaJX zgi=uC?>|VS-|BLB|2fXgHCbNjbJH!`xNYMwo7dEkP6HXv3Ie}Mk*CO{!b;KM^ySO^ z%qKp>8~fhm+)~C!7@_b;dp%5Sh^>c2yt7CRpyP^y+=Vzb#F2wnnAvqJlQSF1dP}Hw zm#ouAIYH*SgkF_y(MS4%W~YM-s}K!w=2DBl|Jh$4R0Y5N-~Bf{`jOq(l8}sY4zO5R zx^>7^&-?Oo#yEsf7~=+$gB+Z|3D78<5C|t2it40#nO@pOg%MhW_{w1lO`i5?gjI?n zB@P1mtB9~~G}pUIXS=!{DOIjx!hWA9$DnQ`>T}8~*H%BoC=0@)m*o^9#3&C>`Gj7K z?&kP$NV}II{0M6u0!gO3#Gzt#OtE2diU)69$Jw*%c=nC`ymjUR&2Ag~27VG_JV~6z zWhhcu#Z#In_BnUr814JEFc#(bp2q1OA`CIMv{U2SCccc5S58qVftHe3TSA+Xi-NW_ z9JshdF+R!efBN6^)bITp(<5Z_S?Vu@o$>SUhlMYBeD7aS9RlKSOp|u^|j!JQPV#xI?9a%fUB4lls(an zjSaqM2*}k@)-}o1H9p$ah|#MTp}C>7`RdE?p05gXolC;t|CGr`-(5FK@>|v9Vc^Al z<0JY0%dBQ;2JiaiRyUCP@vZB5%f9a;tfAZOBBkV+XP)8IsZ)4?qEe|)iK--_PaGFWN;iU5t3?z=XlFQb_v1|V6`C61jb6{n|;O_LrCFh_uE8C4dubwwbMvpc=g5SShsG9uYCD0h=yuRjZYwe zgKzI=!@Bj{_o4eaa`YI{@CdDR2xlxGy8l7$ynhd|fX?C~58UT5Ga3>ojntaZm-NyU z<21dzU?>SmjpV}I620~krApcoDDdNuGv}AMve>8Em?4Nqu)P9NG?|_p;>x9q#KI8Q z5>A~v$CUK$5372nT!!8@D5tBdw~N`Q45fg?_Qu3Wi59Qs6_ zN0w!rI624g*d&!|l`QQM%5vfmL=i+jqid&m>*!I=fBQvT9P-G+A0|z6oE4f{p&0(EU|O@I=1-=HOf$EVY%wF)LKS6N3A|Y6j$i9dt_ORsCu}fPZU*1^8)1w@*<<(=`uAr&Di8LaqTpH z?eO9XF4LGI$CI+$Sgmp+&H5eUIN-vCvvf1Tt3M*QX<~_p5 zM`IAqpiRcU{ckeAe1+HF+>6s4#;3;1snrhx1+)%?DEaOT95$4o)n3BN0u_`Xf*&Ph zMUIjlUJ&7jKGtfqu?YD+m*pG(`0JXjA4Z9R>w+;Q)d?X`N)2dj1}jV%zitd^+C}*i zKa9w1fpLZ)^eJ?ixR@4wq;Ra89_Q!Q{1o@KTI@S`fupCdu(;Bp-OUNS1cgUlWOVz6 z$SQ`S7%9LH6cU4W26v-wo-!UnR%VrJ;p(Uu zt{VZaegr>ORYrxrgI)+qv^OtuwAQrSZNC2Xuk+e#uMq|Ur6hSjqn1=yyJiAi4H*e$cp+nq#=Uu${!V9dO7=x@wfB6cNYbI%otYL2H7{^bZrmk|9(hfCG5s=WI zTVi5nic}~HEVd}9R4ObqS6DN&maV(?fYmHqIzyKC7#)&}6Ya^cg*vCMuaLuv63Eo$b=Jn^r z;M|alaK{IJJ0Qz@)B=Ulee}u#^yaDhDLQWxyPSI1 zz@KW6r4e`EKgy0xn@GD|oL9xQPf@8e!r`u0gr$DF-~1-^PLxt@aC&;az5-) zm$$QVVlz%^Y;K5y0G($SZJl}y5m;% z9X!CqNR?mw<J&42t) zc<8_W2Yl#}dzmvCB8VyaIgu48YX?@5KdB$rdS9!aaPOX|iVv7sF9y$H#XBDntKq|c zH_P!3qAmtKg|s&sKK%I9YDslcmLj@5&lwvV<8z<;95XXB^m!S>G&{?dts8Kr zU~FQ9ix(Ei(t`76FR{{Epw&;ATUw^wZj+`NM~@yQjuZC1^d|S-cQ3c!aR*q-%E}7I zjvwQuty`FwSVKQesZ{E$bb16*(C_!D)oOG)9nv(VTCEZV0qbVgv$E7?q|rd*NQ-h2 zUR+#cZf*`|G>7-^W2MvM$&Y-Jp-G>#fS_8z5->Hsjc1=Z$l=k8?AWoLv8i#onZPLz z85%s5g6WgC+t)bIolXa93_2U2V$RWOw;8TV@+@cn{{8GfdWOxjv+j9 zI;gODCScFH3O9Xh4>Pr4&gWOC)nNS-cc6QQBuEf+uPr9;O2+&E=y8cI4bBV7&;@&g zF|TuuqR<2$M9NX*DKR-c&r+)^cJAKIU;p)s)N2)b-43SHq1$g0RASU{o%`;2fR&bH z^VZu~Gd;>*ec_MkcRI998>GYcBXZrPTB|V8s1t_)Cr_PZZvG;Z6T{?v$+;EFM?d-` z-+J~LE;g5W^WX`NAKJ_8%r6qifPTA8ABcUy-S^$Y%(_X6qKWe|td|p3H4Dvi^sT1d zouZP|5kivY1*cA(<%z%ld9E~blz<2Cd5||QyhN|v=KR~I`LlDEPx0^03ZNK zL_t*HUw`3?_({x`Z5#OXlXo)Pm`3J~UawCh3NR)|>l~>JChIUWImCxFmzIdUjKT}?M@GndJ&Mi>6=(20N8u#OUcFCQ zI{iMac8f-1m|y*s&rdaqS=HLCrUXrm5+VcK-G?U8uTopBykGpZ# zy_)0D4a=z;KF{B_yj9kCBg%$fxp$E4_hX*_<51V56y=&#j@gnVL2J$S?c3S5Z5s$n zmZub{CKMi7-eqNF0jV7K+;=~tzRE&*`5{4DBEGN%2#&qz45N9>R!^3RcxUsY!l9GPE&+gs3nVs0cxw9A8 zxM^dFUNq_~^_H2Qp2qIpjZRbUzT;LbAz3dcsWx!FPdD!oMvA*`onrLEH*@UxXYe4i-nCHaOWqQpeqOe3&i_DQ`8BPjx(dY8g618fT(Xlaxrib|VfBff6 zjcj76m(WdGET)>5_8-PMxc$C|85&wkJ+2V=5oy{ZbDH_ZB^FyNSexuVIQF zSb?VkvcfVNM>rvfqJW91arW+g9(L>?iDRDK_X^GV)7*3WF5+mG98Kg|gf&c!$AsQA z#^^G2QX8T;K>7iJ?-Te{lp3L08KN=n5H5YsUCud(1IeD{h0@&+iX z7jy8~DGnVx%7!gFIeFp?-}r0GwqN@!^-7iAl`BM(Q(!Z4?Wjf}l~8fw>}B@8{x&=J z+`-W^r@3(AIG_61M>)Cw5RdKLevJz8w<#wDm~u@Bgu)Xg()!YiFLP|(k*0>RsVO#0 zP4Lp*y@YYX)(taQ6xtN%BFBrO_df3pnlP>PHOHRS(nEjHWv#_xubT!59A!g(^%^(E zfb__E9jcWC8z-DFRKXP)H;lIZN&TI# z?~NP_zH4{nN?*Zi!mf7|e1Fqv;@=f9KH55z3dnRuyWhtlIeF?7m1Gn@NXW91 z!xdL5?A*DFnVDq(ZocJazWUX#ap;x3BuPS=_DTDFk}x9gr(C*pi6@`E&1Hw!0+5Rh06vE+ddRCT+1}+ZHx&y@}IvZJv1mKS990=4DQwzsSffqinln7Yp-O z*syggGORM(Xb>omJ-hbM@Aqlv1?#rl%*4zrmli#in#(M=J9K*;4jw+lo^7)nKYf9P z6GwUYz7L^%i3kF;*32&~v2gYx))j@8N zIQrHb=%UBA&Fcx2#c55PBy>7$qQu7)(CM_9ot|W++o#>>V6A1t<_)~|+)>^>cZK>; zgF{CSGhK;z{Lx47l#eM&E3n2;17rG}I(?dUtIxU((}YnCP{dJ{ZkFPO3f~I|q8RNA z)oQ|?+jjE$;p2Suo8Q7Y$53OK+jiZ;&YL$gJe1H(+eCrDm*ANKXTbC0(qlca#8F5b zCp0PvNjya0HJD#$6JX1>#Ff{f5M}s~lmeqQzULvFWoTrCEwh_2SpNJkzQ99wKZ-4K z8nqfpQsK?BCwS=bkFx9LZOkpLaOv_qBeewoeXseBGpA0nxG=}=TXu2q@L^7`4_Gr< zL7++dEs8=AMiJT?T8k})>qDg79zi6D1PGgwbz9_qfN>6GeT)T3X$NR2?IKN4B9g`l ztOcb!9)9Fux+_~a^x`*JZZ@e650iH~)Hf&OXXgnjL!@bruOJE{lhW z{yHx`{~}WQRN^X9bjx#gaBu&9%GxqDQ4ECJ&N;FyrPJ;5)1UffzV+?zuwng8eDtC1 z{Ot&65^F4;=i_;b8$m>?HN02FcvqX_tBvswt2uUqMXkK|m(EgBN#Zaej3PYW zfR+QldPiY0vceM8C(x=zGk3gr;52U?J;cV@aqi!Z>pFv0wfiV_*0SUi#PnH{-^!>*s%#eWy>7ns*ZNgeccoXFfZ$awu)vm$;`f@qUg!Q|0Gz#cJ{ty# z%?~I5de3pM5)AT#Dx(aZ^ahQCER%U`S}p{>U?lS}LeTR-$N*;yxY7+n4E&Qb_g-$B zwD13R>`<`U=xr6xQtd3cbU=ad43MJ%q01Og1{b!q4(rOO>-UsU#Bq&E;&G;V1tA@= z@W}cd{3t{Shf)%wbHIYMC27)yB0S6p0JW_qDQl1#8>%Ov+bvIg6=C{K}RIWq7t&T?j9k#=Db z+UNXoj}S6@EC1GnGH{sRYi>+nTtf#uOVZbkVOWP1)fRHvO;{_I;%F+RSNAhAda zZdpHym-zI%DKhkE^aO>-@M<21-aJh^9iiLLxw71%)j7c9AHR#{$^xTAP<2E>fbJE@ zYDjK94wdx}5+%@0o&=1gApTzSJ#-OCY6dGUp#D0tr zg2Hx4!Wa>FtfW0;?6Yv?BIBbYSn0@2hV&fL79g+vUEF*X+Q3r{|P?|WFAmrbGr zk*$>84LUFF7ke3z^vLs^G)swHhL8c$SkBE|VC$9%YD)(E8cXAKmM)wk>o0&8;)OL- z7@~ZOZzS|2sum$UN3JafiwYxTTo4$aiXYSKpo39eWo zYj;QlgecOqj~@o51B@yCQ<0(^xRdVKTQZ*ysJ9^(fzUh3lq6L@k2Un_i1AU#Q^-zV})N2lwZ z3vSfxmZ&N3LT-PU6^f8dDpFezx?xfr8iQ3nHuNZTPQ5f)Lq#=Gy@bT4-E3ogk4%B6 zj^IL%qw_f@zHyB4@j13mjj(feiftRK3`LHj$N-CHK`M(gU39lcMfway0#z&%7)dS_ znNoOKyd!3M7ysCRQ%J8As-gguV6`R;6wX?l$nisuLTG&1pymr+{*&KDz16~f_VYA; z^EcTwJ;ll2{R2*%Jj3n(`7d!HsB-rFS^O}-ij;m{pu7a(LM-ify=GS%<<*+y?{==b z`aZ9wrMgjna3ej|2dWR^=J12~aUW#!w%W1r0|4!Bz*E0^Y~Q~u_W!443N=s|x`A3( zBb*^r0qs0z&Vn@#UB)7%gK``xp?;6|I6Nc2U(Wgb)KJd&b7~_&#cVy-nKW@POX+&EvZ{Vg4HZ;L9iPv zGq{~#VJ3FjnF&Jd#uC9yOw0xhF~CB^0z!Vw!`QpC&?mhRM-}(K%hRvHc^V;#_EU&Ke-uFFDwOR#H zQY;6C#wfyJX0NUgS7VgtvzBN&trmA3I>1=NXW`r&gJZ*-I`TA0C#QdCkfDJ=oRXYA zbDBz{&eXX{Htsq^ZXJH5N^NL_eYfl-bzRO*p5=e|$Oj0L6>QdoI3SD#S!I;vt9C{!#i%-fp#8eCTAHA15)YpjaSd}%F8cN z_51no6Nic88pqEcW9NnmCMGtpu(HOVy>ymyCtl^f_utB6cOAfQ&Qat(o_Di$=mOp# zGxe6^*|_UJwwp1qX^`PPdzqP;CP{MAv?O>63)VRbt%>81t40$_g|W7*;80F%N|yGs z<>wY448}s9TW063qEtesoiIOh31b}J_uu>^t};ZofEUgj=dWKlhfMCEKD-qt3mW}( zYPFb^tBb6zETS=l6-{Tgjm<5!u!_MEhZUqJS!uWFnvAtHp%PY5!pB#NqR6pXhfJqb zBOh%I7(%l7EfbwZGPe>euSmvtJGD7SG9cj@rT&9eVoC5+0&)>x!FG6H;rWro|I&HS}N`Mioh9u z=#l$)ZhD1*hYxY|+9N4>? zfvQi~ULZgchJw1$=xmK5vDiu-g{5>HP&a+Yf*{0bO*d~7`5vJsQBLF1B{nq`=l=RA z-5-1}ognAZ+#L;k*v5!yxo8MsU{2beV?H3T^qg+{>MOsUvS|`a9IwmDvXB~b! zzW3too(=NRtsbp;z>zSWLOtaAkgb=(r)4$ zilRX4H!m_muA{3g6@l4xXlFnQ(mX@@0wGE}=g{*Z%aJIIv1D0_u?5y@oO1+0K$@lu zkBo42c?l<=zuus;wnkJdlhVKo85$U&R!}mjqqF{A(jiI4Ik|Zfb z`NIGyB`Yf{*WLP-mX_GPdl%cbZe#Y!3B?L{;ke!m(+56yL0Jb#a!lkp|1F%e?gbQ4SqE z#H2pWORv5{nrHm*kNyZcOUOE_)T_g^R$H`YQjR<=n3}pwHS~DlnHTWWHQsUmy`;%9 zS#AjZpsaM*obKu}eYKe3%0`s5i(k)!O` zv7Iz8`1}{Y%twCU2RJu*iCFp!4Uh2LH=bidwZT14JkIIYj&iIz&0Pm~khIs{ME-iK zaBukSnsecL+TKuNWSw(Z=ZM0Hju5P_uHs3<^z;?1fuvjNtP0} zFB7t|XSiackaQKKHm)GJZXP18|Wi%^R8Y7?a*qH2vaEAWJeE;Is( z=P68)v%J*e`RAYE>f$2xN=$#FPPfwr5%jKyMT#;xmI{)zgYSg|LB!f>lRNIXi@WYU zjPDC{RuBgPUf_{tDFPpD1#z{`mQCARi7?tPTWi_<*+;xlA<%ERw@ zkjnTl`Kd`RFU&ALI(WlmX#s2)sxmV-ht5~Ici&b_o|CpyVC*_!%a@8G)8MUBJ@b8> zu(Z;GxG~J+r74b{JxbTF&`Js}Uz+9OE0Ok0)Zez zTg&BzHRk^I8IHVqnmxNVargEOj13JS@F}uo0%D>*pR~|eA$tf)jdW$X=q)^L)(s^E zs>e@Bl7gC$?Ao}IrDtA3BnfxF|52uwmRML?qJv@k-aY)-$No2-{Egqj```Z^5B$tO zBiy)wE3G-MH0SB7H0YDp+!x-C@AY^)IljqI%11a;V&9Cx4`6I;n3eMv80lEBD}=s} zz|aXJL~76`#Yju7R>$veV1qYbcI$53lghjW`(Lbssg|BcyW1uV2YKgz|522JN?(=D zaTO^gzNZjUQaI4oP+iB2#OM?y9E)Fgj#Iz;CrsRNkZu3;$GLUy0nVK}N0N2H!Ti!y zYSjwH6gV7ySQ1OZFhmzQ3J60Fhak@r5Sl#C34(wk|cXlp3)jM3o%GVNGgTII}{ zv&_vb&~D}Ueu$7|`(GE9G%rXOmw5L1BiwrHZ78Lv*J@=YFRm~;I?Cka$nSDF=v$UM>=`S4NmTlX3_apD+YI})K{L$~z&I(i%;{{c+0=916 z%E28Q@hT0LFHdo01-7hO0tf31+ix4r^%m1_lT-^)YGY?A23s=ay9deUlwPay=mbh;K zZ5%3$nOV5XnNt@?+G{-cz+p_Da{9H`hy%sS$|A>Jd6_^eRs)X{%{BU}RgC9dZ^4#7 z60k@mP}0X5kkaG1=bmGJsl~eUo!E{Vi22Qr{}Gk`3hzF6ANBD;a;u4NA}8F~7qIow!z5{j3Tikb z5K1AHhe?-lS`&r=VqM)$FcxeOQFsAK3OeZH)a6&0E)-jL>?0cMLkEJ|$X0SyAYH=L z%oVOKE^+Uj_oH>j;J`4IY9DJuL(I(1aIh$-)N8cNB9%%^b8U@odzsUxPV)Zuy_ey> ze$vhgyLWHr&p!R1`T2kPKcbukQ}o)&Z%mGFTvw?Y#iZ>7D-G5PWZ*$m;j>?Ol4^Yu zS_}U0_y3q5`_PA(nVMy+zm6TOV1>k5M>k3Fdva)R90%Vm@kZhwP?GGe#oE`&fVgY$ z$k(gh#u%Iu2q~~dL8TJooFyqzx`i&CRE38S4Z`{m3!Q?=r;hT%vxa>;w{q8Qhd8vc zk3d;ESqe&(M8NB(a&yH0+h$`5$L!M?twK^NeC-~~qzscTRyQpm6%ITL*5;q1| z(i!RWG`qHK;GMtqYb^Zg@9?>Q{cAk-(?7|<4?V=%m1(l&CgVgbyq#73|03SLjW-)k z^%ObEiBoyN@+=?!cmD_PIo`yzW{DaRI@HKjTN2rTPuj5)ge+~b5D(+)E|P);reG`{2&vE9=c}|`_hZp!rUlLSeOwZOY*M=~zF*G>L z@#B*mIdYsl&+&bqAQB7?_Va-cd;rh$=ytngS;nbTCpmKDB{pr^NKq6doeoKoP*}~S zOP6S`Hu03=H~#H!5JUk7Z@CSmM`N%L&-anSV`Z`6*ee$}a42T+>H-&LXUPjmSgGQy zAxR31QLHw*EUh-#yMG^X9CKlM8sP^RFJ?6pEKSWa7A`OxNbVUOB$h1@F}4852!?_v z08tn^xd(+$(g9S2j4CWFud%#1$K9(5;Gy-(kB@>Rd@75?&Xo@VbYDf6p2 zwo+qapbynrVnEE73zjJfNTw*Lcs>XA?x&kKsk(xApvuLy4wblzXC+qOAeO(EoC@(e z7V@nYc;_6sD6zX*ItB*^@x7E<&_}nO&@Dogs?qJH#9@dr7Oe}2A~I9pDM^;Q*9&~t zKf7Frb6vWnDJ2*f7@<}hL}C~l-^#@19n^=$xYAl*ck}QAhgn&;#D>v;M$Kb+B?0Yd)W_&{9hnVCiilH_Q_RdPqC&;rJaq(Y zLE2hlY_OkGM~+jgH7JUltWz-97(o|#x$%|?DNC6wYcIAqerR(WU@IFFWg(QPc8yRU(iZn@)N)Uz;S@B49iWkOEyjcZ9;jn3oy00iq z#=uyGk3R7rUwG*Xv$L0}Rwdv6*oRQbD#_v+UPWSzz>8|+evGX~Xl*FsemX+~%w9Z$ ztSBrUq=;#^QhYDQ(>}f*Q?Ct!iAhYG@rm7BUHMB2*TC8(Bt1E$>%5hls~npoqY_25 zy9q&Dqm^ZxJ${1zxn&-@?IEgz!+dUanP*>onw6G^j5cFrIQOo!001BWNkl8?h0QTSl;c8J zl*^D_m1e5|A!!WnVl8R$^;1`Q?&O!*yLo`y4(?&+=5e+U7_8{QsjNfXq;RSOv~^$| zN=EnrjP#Ab@yndMc!@iH`p3wZG`aCH*PIW%kduo`?A*4M@&D!LIrJZYi(|k2TWq_! z%)37NW1P&+bH(IH{bp{)+wr{@-;@chyRrZO_?i62up9hN9z)3#XDx*;5J-#-aeX8F z@Gt%f8@di@bC8rUgS=$+N+A(AvMk4B1>QQ9G%IfWQfEs`6wS3af4}wk7!H*5$bE%P z+r-LISPu`!YPU{DstN0 ztvDj2Zx|S=bNTWWgy*wy^EL`?$+C=UC8pI{KxL7C|R51d&hNH^kY?Gn~CVL$}+dbMiD&N-`&jY7LIO zc9L!oFfug8(()QnT;-`_7rA5a2p6WOc=6~lHf#idsL5GxNAkmuj_2 zSnub>$w~ZbmF0y+ZoTaw%lIs=wHWIgB+q=Lx^aU9aa~!U#KC%Ah!B$88H{rXB{9|@ zm7=f~D`Ql}Ax(}9eMnP+FlJ)IHZHGfDkB>xq+kdiqf&Ao=&z!rqmUBoM;O~PB#?r@ zS0rhIbTNfVQJx^IREX;#&a(u*VqtZeE&KKo)dyKkay&0#bZ~%nJ7=K3N}6`iq)g3T zq!L%Diz8GW z_St9p5~`a`nS7PWys zI%$H3LtHaD65^W_SH3lhUV*|30uYW^3MPhz5x3vYpM2)e`S6FH;Aem8hxo%!eumes z%pi=Vm89gRMy6A|&?`5rCTGLw5JlEO7YVT+tt+;4bGk)u@!oH7)%&(~$1X2Bcd~Sz zv#wMWxhA_OgnR?3%pj}=n}aGL5Jm_(0$h=yoM6|+jTGH33k!<`QE3(JM;=aSI_;}y z9TLYw2rL)oGo}_#F;c(CFZ|$PYCbq=z-1sqt|>C99vRpnutKt)SBIud)TLEeW$@#W zzQGv#hri9%dV}DW`#Cn^PnZ9rZTOVN8zx-wNXFtu$pZX-p>JmGD z@FVmE70$J<;yh922u@IOAx=7sGd&WScwN!zt?tP>=j`|nD#xuWVsLZG-*;>Sx9+*U zm2}_w7w9dYlW%j*-;^AGw`lX;j6=|O>KJcz(TvXEx{RG9%M4fMuHsi3Ovhz1d~IiK zta(#=NlJ+?-i*KO@oaA>s=lIsJ$qOER^Lw$)+!{=JVVf5XUD#SWJw#D>(ZUbkHMF? z9?|ekp+Z!Up`}fjH zI;1O2q=4a}5%%uh#qdaf38kp_v3b)7+qZ9_=q5DkF`Ybv&?oTwNK(o4^gNd@FL3*9 zhlndNtyUYUBm)C|eDH%GAkQTTOSM`WC$!sbT1`!@S|`tn>)1`-_qp@VJJ~Qcf#-Wf zaZHjH7zaTZvhTotif+on+&mjMZp4qP%+AfRdDAx9ofPMJbh4cHJpLeOCNGhhg2&$f zKDG?T96NS_myf=}T?aNZHZg%UIUo4ohk6Pu&}y}*Rx1c8IemEwR}}OOj&k+V3YX^> zS+j%Oa$q}8J#&=Z2luml^$N#MoM!L#jR-HJTJNK<8I@|CqsLA#QV$VPjYD_d!&rZn zJkiwS23dEJ(eViy!-m;~HO4mYM21zCUOU6YP(Q{vKK&Pe$?D8S9((5_Natv_nyj@; z<&jFY!e>7FSLBgL+D&=l;C`YY#AGQq>L`58DN#y^>-kg|V{twCziTtR0J_~S&z(4i zmKn9k=b`)W!AFvGGmf7)!O64d>B|jzeu=v`?O?AQpq*<>HRSU2MP5F&OyGxDEMDNV zFh5J4B@7HSNV1InMuRj@@Lh&rI~&Kx$nuQ1R_Dp5pQF+@O8?jn%;+$cC_+k~JS)Ii z(mY{#c?pvn435FR2HUr8Vb88zoIG)r)wNZ$F%(wg#|>7Nt`aqBWY*DcHYxIg#jDFC z&3T50M;IC&WoCY!q}d_}Lu{Iru4tksi>Op7;pPm^f~7}zG8!Q@T3ZkvQu+A4&(P2S zS)NlJtT1_To>sHXefQtb!t@1JTC3Cs2H3H0FRECht5f=ihH-Ku&%ZLomMvQt8WfL<)hqRtdenTse%^L}7$; zCB&k{20u$PvmCzvFe82ay!hfbXbkl+FgQSA9aUB1J&%2Wzj^*uKKtcos1z9k^+6t* z*oaGWWM-IOSS9g8gy+-lWHkH=JNF*q_^I>!{wF?#4h;wQ@8*FA-a(#aw2dIu4r2wi zN{w!o^{h_c02$!h&(lIFjCG|HqO*ja$L5U_Y~6Z*+KxTMo@H%mmWLm_k0=_UR`L1L zm%qrF*QTiVHOTUmTD72F@p<2S-_7O?!&q{x18<%6>mMUI{?^3!+a|}>Twfc7C~>>y znr_{<98>oGuarOvh3nZo8zl(*5M>O$kOZDrem8AVQjrxoQVQaFjiLy9@`MFOD0E?2 zOCU26d|PrbFj!g6D*|_2de-%HnAhV@*+3Aaf)e4aeNLJFa z!|avU>DuM}c8K=%{(fCS_B#^aCCT5q@mA-y-VWj|#_oD={d3 zbC6{jd7fU!`&!Yfz&l5wdV546kZ+iD+&ZudEpMDmAWhjy`qsF%WB%r_2xqxtY%5>< z)Bnu7cI_eCw1Lx0^BBNGl$AbfDV$+2slVw6g@D145!7RkA@|;f*td@v?U-vVfi>j1 zz_SjaUHRpO0B2}atNijW{c}7&L`gxTR;MUZl(Xm}Ckz7GdBUdc`w4xYBFRuf&=-Z| zTBEI_QI8lN-pGCTR}dIhRu}PoAK!;+E#w0qcnm2^{CAq>blM3o967@D)G9+mLjWX6 zg0*F}d1-l>3m48aI=TUC9cj13OB-X@vSkZGTkgF5cHa5WJ2-jfILL^>p#fTjKm{>E z8(us9JS$5nzO!_eR(aw4G{VBz$Pl3~Ns5e#@e!;o$TE+UvZZFW%L?)&XY-a3 z&YwTUGhcg(sxl0XkK*-L*uQBjsS3$zb(XpvM7)i{i@*l7XO|J}Ce^V)IwHjrIeWH^ z5{Ew0Xp%HxY9>x?I7u%lEmkG5+}i0L6HHj`v$D3hf*cE)%FsLYtDm3QSg~3zlu{8>Vvb) zuO<}TF6S3pY(KOOT^;3*KmS#R2Zs?^fbj!JES>fxj=lCOAN}zkVaK*H22G1Z3uF|L zCmlxW9$C^^f0O(cVP)QvMUs@vNKxwP^whOHTfRz1X$if~co7mZ>+oxR965S|6PK^j z=#Tisr$5E}AOAisW&!74IM4j@D*Z+gTaTz(qvK$(I!47UlIwZGxQcHT#d5+^Uwws_ z)`m%ng4{Y9riG4bDBojX!vsWNm$MjUi$K2oYTy)kJn!=a?25<~>bLs(DKV2wd2g`+2IzfNKs>l>#O6jGK(4c`)GJv}&Us45ACqklD_zLJsS zLm`lqJ9U{0lrIUD&q6(Y(;=$4K#7Ejz57@j+rYCYPT~9zFAkAPp*#;MC8;%dLQ<%Y zsMqTxNrEwkFbuJ_V6C}86gH4T(AQU`C<;35HiLtMWu@NtiJ}Ot3y!^djN`{%V|+vD zoR<|jN-5S_El!;}MbS+e=T%YVm-xSaYX+IE@#q70lX?X~vWC;p*9SlJ{SVUB4liiXX|;h>Oq!$f zoG7dkW^JrU34O`q4;(^ik0kG){j%!QY|b(`+#nMD7!*ZkiJgNrJf+aONnh1+>wZP8 zb}Q}G1f5#EU?bYLxfvX)loHSLu-0I0PnPUjB}bI)ba2GgDz_fo%+cqM@Y=CgIOcM? zS)1K^_wvZ2kCLaFSC4#|sWX$@wP!zU9>nv&4)t;5lYhgXf9t}5$MV>QYT@OA1LRf^bK=4h54oWGcEH@K*(UZkerTIet=r~V4eT2bH zlCg;$gw-0m4(wz5kl?@l@Ov><(rFbGoi;%j)9H4Y*gU{(+lJXO;21NDNHhwIZ&S2q zu*O4Ta5tkZ*-KD>>pOh;hC;HIrKIFr@hYT}6k5|w3o2oq#pNaLzV9CHJA4aIedX&s z`IWDdH^!)r?qF*2S$_Vq>b}-$NCmXZ$0G zy?`RiP@Ye&3o>I6froWxTUWivDVHR&?yJT$2t1h|G?#u4T$}_=yp@Q+~HRPvZ76IU(}OUERC)T;mBRV z@tGC&eBd4q92(@wU;hovPyZSZ{@af+aBwf@E}r7*;wo`mdEI6B?f9OEx0B2vf?^;2chrmYUZl8qf1ex4dh8lyx3fdsAzXSQkg-)=OSQPw&;GsL01D zkIWem4k3MnwP@jb40G_;fg0vThIWPvXD`!Cx8G0I|G>6E8!UNZkZk6NvU?9#vmWQ2!=r@ybu2nnjHJk;K^6}8T z_~LU+o;kzdKp#peIz`6C^E3QE7e7varN%G)^Ph(#VSA;4x-x@ZSVW~6k3INKYFoCj zv^38vM_=a3xk(P+br)MVZ=}_15k(=VPM@Y)i}C$RX&0Lr`uj(D{`r^Kx_LK~m!=S2 z17j6Ql7cfRQ9=NUqM(&D$wgLHqn%IQ0__w7eVfa9z)8}gzyhI+5K3YdBuSf{J9o2r z>uz2;d!FZ>d6wC!DU>Ui=#TJ2A6sZVPY{M4N|xk1B}-g!iEGsuYw(mpNRPa@R&_0_ zc8Bl0jsD>=Uc0=^-0T%@-@lXnyS5=+6MHq|!o?|s@KMg;SxGA?Sjkt|yJ-YJ>_-;~ z&S{(wWZe$RSBRwOIgZ_UID#G~?{(KyfkRnWR*xx-nw(gl7h!DafYd)YK)1*l8mRN! zGhd?~6x?=bFKKT0((|WC)eO}rBnT@kTsVhRnhPfvkwCuc zB|*>gK}bB|lV@$TPT9S2kfFX2icW{6B+%L3HvW`=L5bl>14rLDnO zgLRI+S{1r$q^C~s_)q>6^Tx5->5$rldbJOc37joTsFMIsNu-dNq97ECOeaiEPO`bL z!3Tf!Uvv8Z{2l)IV;|$gAN}vx{_exD9MLt!ckKSX9p9OFJ2}3|Fvj$(OG`g{YkO9> z*8!O&;Y2urXWl%ySW#9|zBO(R@BJ2UUI)1DDTz%Bs3z=X#2t2gbB;6cq zAn*g6Nzl4L$pEJv()kpHW_fvuZnt|KE2fm<{s-=3W_p&bTel&VVqjpPbSLwD#>U1_ z4lZB3gzx)ES)nKlmEkHzCnz7J)ik1EmZvW;I5a}LyMz^00$<=Oi5GbIQh?QDNtYtk z_wuHFS}aWgVoi@R11XNZTnwc?hqDvrPiuLl-@x z8X>US;+Y6-9YGwBk&t^if%9(|_wz=B0BcPTH*0Xt!&!5EgD9lHI?K}4%hW3#l}d%R zwS-iI%{?mBDl-dFFlJ$Sl|q-}r!Wd%g&aSA0%H}ePKUvfQCh7QQRw4G zA$gHg6a_{KROpeBA*^I%e4M`O0L`T~xl8aPNjqy2R06UjNBRMQQeX}@o*g( zfF~U;2PGVt$q9YQI$j;$=6?IviFgPL!s5A70L=ipL|R}3`0E^3DUY_m9!Wd8^m9cgeE~G ztJEu!#26}3Om1PQ(a%_DI6ij~navZLkXk*YPM18=+@%sn2|lcO1TxwS`#_Rc5Z7r&_<8#nlC7TONt-g0lFtEiPSIWMa#9 zR2WjED-_n2iR5=MZlogqMl{JaeRAtc?c?4%dYgxGt;D{rwjltE!(;^tf$7yxwp$m>yxnVfDA{nps~AT)5II`c3C{Q!SVEC$IICl8v)S--pcM;emEYoe_xu zX9Rgq*I3}8H0bqCPPkIbxDL=Q2aN?~N?T?Xga|(%5T$Hal4+{d3P(?#MZ{Isx?L(^ zm5K2!jBOZWYH^ir(jv<PF{b9x?MDLg-5asDcvUj+oZ&}EChhpF~`fs{Rn zi*N`P(d{Nw!U!2kQrqI`Z+wlNJ9qN#cRvEcQmIBD3~9F@%?ccX$;;>I@9!tB#1!o= z58QhgwB^?Qhj{+-b4eZIcBx))K)>XXZIF^Hut@E|IbfH3IC)0*~JR z4tDR@fpaaoI!A^vHjG%b5t-BYzC_vp=Q5luK(+C5iE$pr`e{HNdjkKF(3|A9&e!sq^$+nWL2 z=bxl{Xb)#!d4=Em-QQz1gD7gS+|)ezI}hP}7#VY!{LdSRYM-ykcU4o*sPlToR} zj1P}8Kf46E!K4MEFcdbYYdZLTh_RZAa3onl;CTdABAvxbjcrI=Taadk(Cb5Ms0@d+ zo2z(n73EvD@7h5#Gt9LNc{^uzW}d|>SBRsuC%dS69jH?ON>Em@ilRWF2vljmo@q^H zEyw^ReTrO@b`zfZ$_WbZ9AaRQwo?R3P(62D8&%Sh$O*^WLSNc%q#??ur_pR?O-7EFAEUHA8 z;j#YyN?Q#I3g;m3$Q_)yI7MpPOl;W5sgtj;+EMJ@zKy58uBj;>Z8AFT6>i(Mjmzg3 zN`su-5e#_@c0$}-7j;{NFCwG{QD~N%GaP&V%MA2YiR*)OIvo<5P;|=k|H9vWiETR$ z(a1fND=Kvw(&xNM(fYJbWiGWTopX z0wY}sX|xt!NL;pxl_fz`OTSdO$vk}R;%zb~001BWNklvgKtDy>$VfAz6{K^%wpVaSec zyKqV}Jv9wpfTUb(eC1OKL%cw-usB}|!)x8ct@-46-us*$`LWlI^?a|yX7+H{J9qA+ zzrUZ`Z@-;w+qRLWDM1jRb-}jnTPchtjv`LIc8al$8z{7)-AQ@z#a9s)DwT*o`r}V9 zFh0tG-3Mq?duWY)7k$Z9v(aO3@*}VPq324B8VI2~WRr zoYUv8P^6MZtwD2nj!LbH1-u|8$#QT8&r`T8C-6L^Q`8y_9)I_P)MA4dRDc3xh}9Zh zWP}oYlcB5v5&px6Ob<%&t-pV3cuG;J`pnHw5k@hf@qLf1(`Bub(n;3vYZZR)Q=j5v zKl=-u|LSLHda&(|JBaSRlb`q(|B~gr#0Fbu(ArR|HaPn7E1a8|WOi%DrpvL zq0>r;<2q?(P=3VfS_|I~$n!PwyhEcFQVBznc8hE9YuT&V3(DWGVOq7;*DLTA&_aNd z-;{{$**k>qSMkF>Tr|L1k?@r-ex8Ysd>>&f5h7*dSe4yd`>58c2-a9^uc45<@a#9Z z?;TIziHMJX=5u`HpL~S#xn{sb6vjt!%ssd6rV&)w zGPa3V|6lgrJ6N;xzVG`y<+QinUbgp!UGz?n1W2k4u{KJVxH89>g3KF?$%vyGYfCGrt(%ZRNM~h@ zx)O{ff-LJIZ6D!t_U+k)Ga2=I!tR|rvBuKt_b7{kP6nnla5L7iPYZ(-N2+c|gf3R^bqq^=#Ep5^YlKEneKZYIr!2wCE_BqBrk z0^?E`Rt4Jo%(?hbpj;*5)*giOc;ir`HJ9{=i7NS7lCP{QMFiFXDaRQ7>op40EHvv~C?Ys<@Y zdds9~hSHiXo42uR=PsJ#(?qeLGrUT)rdWUOP1Ha6IhNPgFwP>h99_4n^?9T2^Lt?} zU*+h9E_;9A`&oRZ(G#Aq+!4`q7Va;J^XK z$H$4|khS#{gb<`@%9goV9(njH{5;SeKf}=K?cmuZ>1JTtS_&T4l;u7 zpi);W1q#+WU0yr(CU@NVAiwc1ewXz@pRm#5!8>mOsrX<2_kYcfO*O>&WsV#=#Nk_S zN2-iOMHEFwAOp^?T;k}_Q?M*pD;7C%X@y6=>oc5NT;r9a&oDRr2=n7@E}Vap$t0%H ztdT?sLTN0LD_56E>SKKD!H*!2G!sE-3Rc%Tym9<(4&1(zRuWMUBTPC(>5zphOT6^L z%M^v62o+goNTlMiC!XQE9{vQ)SdjJCh~faL6gMzad0)8Zb2_3OeZ6j!)|%UHJHpdX zKTDn$#7W4~(h5bMv)<{@7_alzl}kMS)Ki@Q%x9VZk-x>-lg~2y3qQ|4{oMb7Rf4N4 zD~z|t34@S9HY5mRS`!nTK6{2(EArei=r19In4-+ty?-~K{hL3G))BcYkb$Px?=Tql z2m*(cO{6H0GC+qhejpiSIidGB;VB#x-lIk$B=1HcCQ6`6Ltf^9Km>ww7tRsJV|?tQk7Kuhl1-3v4kGJkRZ9(<8ij#c+EkV-0 z<7z$(G)0*aE5UvD-Nt=~rV)M}VWBjAC@eCmCJ195R1!KT+#2&UjA0^%kd&o#ezD$Jn%K3!nVNC%EmF16=xV ze~azoQ*1qSh+`|ul*WJ_>4&)SME2_;_bDQ5^8AV8Jow!Yv$N6QOTYP>y!_AqXSV!D zKg;&LyEt|JJT0N=_^SD%oxs>)WO?|(&e2VLYjCqTzKQ=wR2RJ)*x@izE4z0tj?Ou< zEF1AhJ3R2f0~|VZh!>y#D(5er=YarM?^Blfs95vV>vhWBfHNmgBa~wE{3Ze!U`mga z0eurvk0!bAWA{)KhMa=9-k@|jN;b(%$nmp_tmMZ~tr`CPpZxnQEG_cVlV9Nbe(-yd z0*Z8%q}atoqYlELsQ8phN{kXr%x&X}!`XPSVdEuP&sVA3n!D`*(BOt{GC(2j_@Cpy#FMI?>X5 zM4exQfSo&ca`NOUu3lY6YfZo3$9qey8Dj?pt@R=@#sJ!0!`>EFI($8E|54=r#9Z85scwn z2wq}cf$$}-zwsh>-*yCRbBZFxT8HzZia@8R{8@#&#wXrL$n$uR3MB+V6oHrY`vW?i z4$r*)CS~rKYHz{X8fhpgt!8eb%>#EGW`3&9S6_LB6TPz(C3II7DD*Vn_nkk$i$_oJ zr7!#uKlq75+_8TL%4U4w=@$uYm&m>!b?^sApfz|Hb~A`uY~OQ`r(Qct5XL0+22Z{5 z5@#=5;qH6yWNN%cqhVM%zs#ApyU1*a$qH1h#rW(zed`J07?Y;VMT$>9a0`Wpsn{^M zxJcH?u|-NC9L1ozHVE(WMakv0b*5%_a{Fxui0hKF>>;X|%s2kW_{zyB@HtLEsUv#U z@V%e;INP_3G3<4jnH;Cr%X#_yB1_91_U_t481}HH#1tg~Q zM(y8jY`CRdi-jI-5U;-n0AJTyP56|ty62($ZsQZT%rGVvL1>(lNFQR8gw%l%0j*e3 z7Cl1YQDv7zYwp`Oj|~*U<>--}TckpIWrs3Pi9*5jj!gtXfVT!4g%rafci(X*cON>; z@z;-W{N!<-`pTnxWXn9y9zDw8TMjcEo27I1ETtTY62)~M-tPkinr07bzR9x}&vMt1 zE!_W0|A-fV`**nXkAHlCM1e62JVb|BUnJ&k-dNN=T9@ zA_^nQET_yX8@DKq`I(>j8E(J*cARrWQG_w(TDSQ6LOIWKq9{fPNs=U3>#w6@DD1Fg zFzD0ith3%(W$TWeymjgV(hHOb5mg2j$4{T*>Pm;*dk@kd3`klbLU|gk2C0;E@{-GI zecY7d&b^!1R)=d+vGu<>OEA z$b%o_7ytWTMurWlWbk>(x zT)0RrQPd*MmEJ026ElD#&xc5zsAy?)Nh(jpH%(&UXZr`fb+6NhfOo6mjjx4HfB4wN%A8!=jGtk5I>?WzM81{zCc zdnb_?TdjBDMj~Jt;9a#DEXxwR*g*slgQySMP&0~;AJ|6Cm)w2pVb+!}bKkuWuxID@ z;L?JupYz&V3q*3j_kZt0oIbzEl8Cr?dWA!K?xo#2z~*h9w6{w1ZM->4DJimoT5XJ; z57@Q)04G-*|LQMaLg|zuEk{kj=DD3b@GHN@OTY9FdGbH~S$_2I{fFH1<3Gs> zR_G3Tqs$*9bIg;UEh?IhMtA!Mhb=SzUoT-@! zrk18F4{GTd76Y7CG@4_S&XNQ{6)kO{$V(gCaA&L%4lt3XLQ-Bpgg_$;N<^b5h#YDy3!?Ao)RX0u6a zVv?v{V`Y%?+UZkl*}8?-kG_VpCBs36GlHbipx#m(I&_Fg^l>FTeeM;;=BFvMjHFg$ ze9vx%!#n5xc`^Mc-B$RN#VG@A5>3+O1oBUtbDXxCdTt}hb=im(y$ zZ+`dp_~IXYo*)RZ-r|cKyhnu$7KfTAxRPtf|I9DW4vWiixq!3Ot1qSs%?6e)q0#F1uY=_4*@?3(q~t#LQOaCwI^YgDUd(ui*Wrl-}s^RTIwh4j)xwoWr;hCj@``$DilQN|(4j z!+}lXq-l<=No;?O-~4C4&Zocg5k7u!g4x-vm^{Tc+r&vsqcKUX-a^!4<~DEP^|#JY zWFq=U)=%sF%*5i&x^I?e#XP~-t|sIkT)rGL-A=iTcbl#218 zATC@+b!A=2gqSR^GuC~)4q zbI3*<_3C(D7yZ2Pab%nJHNWTkId|{zeJun99+iaPhm~=I5C{o@l2in3k8xF_B+o6w z!lHEuzT%31?2ZF`^q##WWQ0N^RY>U_W6cS!c06Bs?hT%P@l||WXH)$l_U)L*mpMN2 zgi;V`jVXo*FGg|I1=(=O)bun$csjivk*w_2%EAyeY6K1ft>|SvBB9v2WjpuWc{{5= z|6j0u?|#ZnJ6Juph-c$DE2nQEM@hFg@cq8tz2tgGn-c^AYaC7pgs@z^be^o&;P6lX z96P7>^10vteQx)jt$*upvaAJfFAWGvPbnK)qf1Pg!{@pEvZvcOT-RAo|JU3LndU@ki=`g?=L$}{24ui@DO9xnQ2m-~##5iSH zk|Z%gB+PEw#J&Ujh$D${IfG#r>1!Z7feJuCX)Gqo@gwUsXQ7@n0Em+MC`uRdJjHuA z5~?^%>2bngZAqYOI05x~Os6v{o@79t<($8Cj%2+P!ON&+4R4QISag0Zw=~Bvsd*u|D zx(UDVqu7*isQrxC_#DSP4!+XSGXL^bk@J z2vKe*X^#t!Mr%#_^eC#0B7>c4qBEgi{!r{v5#x8K+ z4P`MP%~x4ixWL8pXX$l&)M^Q3S)hp!!XW%8LbtT^I?JSkb>dJ`0=32jfB6?*#R!jf zibo%Pj(VtR)=DO3Ch2vT8T5L%BCmoH5Y!qi*4NjsarSGq8d_?W7M7WrnIg-wQ9@*u zo~N+Hz9cOBNNurM2dyH?GNmk1;$}=b=n^W$_~bYXy^Ba8dHSVSICRfL9N9jP#3H2Q zcmM65vEH3xa_c;H@WG1X_bwzi%#Jtwz$!bgMk8U_c!s&*o_p?PeqxNWS}Nql0ILI( zAFw(oU=Xlt_pOxW5J>S7YBDAiF=D(;*c>O%D*kCKAuDsjFrhS(I1DM$yyD7wH!37S zc!%^73;yr;{XAx5%*PkC~$=J7`(-cjbIvqQV!`IQh*f-trAYZb%E}%By5KaS68|3 zuETun$WCHk5KE6jkq#c2m2 z-d7=8-dmiP2q{oO0B*xEQc`-0vVfFW6cCU^HTtV5?B7N0 z+s)W^5>#h;+*g1m=z*1t2p;oJn zlJFeqm5eY9P+DPaiBbY%Vr)?$gv45h_h58}Qi9%ER$0SoO_pW+PbSL7vv_P zhCvlQu3kCKF~~h^H^sv zWr-~vSV=3X^VZ4Zr2P)H$W!L4L^{G+L7*c-U8~BINU%O!=jo>(V|;oZWxIUp<9Bm) zX_YWekWOIB0!%>|f^!**i>Ba)=X)Z`S$UVW2W zZ#{x@6?cAiZkBo@Mh6O|G)h$hBIhfw$S4jeGr?dmV9@PQ=FqB7vbfx1^MoP^B5KM} zlmb(fgmHk1#~2g=!(8&g{Yt)Zn9>lSai+kPJ&qjQ!Q#2MIsNiqQj0^RP+VR~*|U8& z{iVy4w{Jz*kPt~=>jXZ+x)L8kka_%Mi*;X64pRal5oR><*AgLRCARvI7z$d1cq7mR z*xV88g#Ekr;L3v2m);^DtWaiMye&vgLbG0HY2h-*P8?_3rdh6BRuoxEGQNd}KlL31 zL5-rnMp7HCv+Fh;Qc9$M$Cr5H+I^$0@wW=XIJAV=OX^nOg{Sa>taPjlO5%2%(s%;t z=w)4Y?cT!d$%`zky~!iD@8NqN*~3_zq1^z5Bh3qfWP+8_@c64IdF+)%ay5aBLwwK$ zQQ&-z^95d*QRs)h7DK<`p^T^Ak}D+bh8=w?ZVCC_$Iz-G+QlfSyB`^&pz`E>7b945@W7cFIR8o zTCA&!mk?yb5@Sp1wI*e084L#GWr0=-trT8ZkkxZ&J+f(&l0b)8Tcw798+Cphel+$9 zf)K4Dto4kKkJIUNM;v5B7)Gpj1{^tj2hDa1sT4`APNz5E?K7vi^`85f9c!R{P9QBt zIVdg7_84W66E`GzR`Aqw&k;>-XWM*}Y;chzN=Tw ztP$#f@%9)-36eOXQIFBhadM|ot{{>bKI>D91A<7A7luRoc2Z9a6Zm&ZaYNo~~Idb=HKMTN!k|ND0 zhHJ!;WXIMS0^KH#5`+&pcWwn^L}g)!C8@c;}l~n%9^@H*&21pH?9X#V!THxjdz~d3+9F7^*{O}f?E%> zm>0Zt?kwA9CqR8j#jz6Pc{S^S5dZ)n07*naRF2n*h2emulPB1J&)q!m+y51R_&@v( z?pOagdq4Z*-1eRKa`OCXhC<--5+&q_@>PYc+$df5CO#b8ERJvDU3fnnZetAATjC_4 zIo@Vvb(vPX&3Lmmax0M61bZeQvcA58){3d=scT~nV+E~t9Vr#wJIb=4aHABkQD?xI zviiC6HNrC~|V`F^$;fJ~0gNGlul|U;( zsknGyjkD)ZR2D_n;-#S8Y*5+)XG(^H9-DUT;=-^`EvYj#HGy%Ka+s02O0Ay`yVSLy z-(4XNS~O}QPrmp(PdxWBGxM7{v}Ka^bH%&I${Vk@k+|obuZn0P z7^W#jY0;r0ElXC`)(~O9rAwFDvUw{)25byUu6Ne(&f}>*mv|<}$5>st%pJFXgune` zpW%(ykFmVm;Sc}l2^N=o2rsF%TBO}I5FTF?H0lkKAS95Ie%eJ#a0sMOj5Qk+HUR-q z6rhE`l_e?+@y;`8S?hM#JT-UY z1fvfLLO@nzBw@@g2lwM_Mif}KZJ8yBBJyUP!bccgV^ebyR~iE0kW{n?YXgiFXsPg} z#ZOPtD>I68NIi@z2LK^(l8Qh2KBAxBFFXc>#cynekeH&N%yP!tO)g)of^nR&)RPzi zH0uddb2F?hEg{30TGHakEw_;7Lxl3w;u^+T*a#PaYtBH|f82OqNFl#9=^*a`0eI&S z8|ko8;hf^Fx6iY8%LMIEqg+`{tOjfBm>VaIBFa2Plo?K0%A!E)1g9dNdj1$syzn|* z6H-cn^PVV>u*#fBEZt zIw7PXV5CZT2B<#a1O#S#9GV5!~_6~i;JY`fc{{e)wNZYRxWe? z;u*9S47vlRnwr^(1c$?mf+(zyil(aA>t;jVK7XE*3pq(pa&Ye+o_q2sJTXyFc{dXV z6k2ff#Bp)~PdxiPgHDh0mls%GUS`YA9r!S2H8-@9CcX6`xzoh8I-woVZbTG$A0IUE z-f`QlhnU?u%cD;`Mz@!9|Ggh0FEvq=;H@Om5w-RtLt_})98*>S2HkFtZfAh^j$Xfy zF@l-tIUaxNY2IixdFYni)Y~(B;R}C8W=l#{5|JW&j^~3_#~U_oRj5VDa5zM3eJx7% zdI$uq<|O@IPLd>;vZCF1D=Lz)uY63Ub_gX6nc6;gygmENw&5?t<(OPlo>_ucTL`6m3XgFDkhEufvQB`H`*jiUkSyP zuj0zxNUNY^WxE)7#lGpyT>a8x?A3zVhd#pVU-}Bpc|zyOKa`^e2Jlgg@FlV+NumJh z;KT`-n;U1(um2N*-~5-n^6UR2`H9!r`FDPrRT;9{?a(iCoEAu}Z2JVs2`_8-hKc9MyvFF~TRvLcnhrWx) zo_Urfqez3@9JzltXHUPugCG4YMs$hLC>_urLQmAVkfj`c+HQ_TjOW@h-)M<3(JEw>ZjF~_q{eidm9E@~p9gq6i5`s)kq*|UYxYKkmCizfGf zwSBcwiwgy+RwH(T<%MNBt0h;; zIh_I*OQO2H2bC%}nH_!QM*io8o8J@+2!d{Ds-mrh;J>C-~Q8kfJ8YLX* zpife-Gq3}Wzxf6e%{E>bT-ab`y+>gLS=vQf!^iKvi%3Z>F0b&y6VLJk-~WRQ2bL{6 zr|5MD)!uSM8QOSlVJ%S*k>v%b0E;5ea_aipBS!puiS?=yL{b%y?_B#WI#4)ca8i!= zy#9ub%6xH&@wq(=O3%>8^b1K4g~X;yhbDjV+}liV`4n4JL6P@~!UoPdq=K@ngwxW4 zZqM`7v#;|9Upc|mG9;--5Qc!I%%X}z?^ZEIhLQ$IDa#0{H9{(kFjy=?jrhf)dhaq4 z(h2X;qT)(f*Tc9Paaf}nXhi6E{P8dI{Xg+{$%-z0J0On)E~%l3$W4h*7O4cnE3^tL z-2~TDw%~^O%-nr2OpsXrK^0+^El;Vr(mp%*zuqI4D;J=;ZJ_`H>thd zW81I&646=D>E%_zNRkzxLyZjzY6dbK0~GZe(rpypYmgh|z5o}3_;AX9@g9fc!;7o- z2zdj2l>5d#_q=da+m^rjgX%eM7RNX7O=IJRvGKVdi9U#% zGv~+(gI58a#U<{)?=I4GofltxkwL%1#fxY7)JGq|TFczr9B~}8fB$}xT8-JcIo>$- zCMQpvAdYLCJA0liv`p69G@^vXw2vRVgzO`GRQ z>WX?JVr6-SW5>?&UgKMuJhv`STaJ zdg($H(TyZ6a>|kSw$$$kqc%3cQdI&l=LAB$;|UJ%$}2DO@~fwqo1MU!lx$)acDBw;puNHS8z|Pk z1)FlEWaWZz-BSrE81y>GP@{zeZ;6wDLB~^T)EH)crsj4alp>50ocEkQb&~$eeVnt5 zkGJU$QeH7H(o`Y0e)3byZkk8u83qg95helM<&-?liFJf`B|_RttM0`$r-N)bq*a$_ zqmZL$Y8`y-B;`Ffi`G%t93?ec2aJtRa(Q71-JD=*({}Q-hgJ}ZfEnE)OAE%Q+Jpxr z^RpAgS~4*^OIakOSx%5N==M{J(h%w!{2p47ngZ)fT;U1BkT?n{uU&(y0!;~lDQzW| z9?{)4s7Sdh=?`*hNrLbmYYbZ5xX2irY}4(nv478Yo;folcL9SUB?=?5qTu-37x}$E z_;dco{ri|3t5-ob+9P$02sARZ3<}8$&%DYrFCQZ%K-O9eON$T%R=JU*&DU#0ZP=}W zl!`D6u-4*)t0*PBdx3csqJ4m}o{6azyznw2FHyH2q2F2O?1hVrO-$i=Co=jSSG-C@ z{$asONoh+~)`ytbv-P1n_>r0aoTq;4*Ln5le}V7(2mgS5Tjx2ux=tK=3S-EzsLW%9 zV64@kECx3?M4n1@x^WCQTw-qG8^z7y_$EFut`~z`Kk~aC6`#{mxSX;ygi*z<^U|@n zxXk3_G?y=5=G9kU<;ZP^$%+BHcWvYK!GQj-&+ffDDD_rMS#_#~^=K)vPU2n3-FMx| z^z;l;M>rINUYD`4Hd3^?>yGc_%v+~8`bwLzu`#x7+eWX~!&*xm#}q}*%*-^MPKP+E zvt`RxjIqdeL?QyTmmGWRE!GhXR+o75nI}mXui!RKbK>Ra*t2gZ-}gP=OIU9r9MpUU zqh2+A*Rpy$TdHv{XOioSn z+Ogw2{lc5f&P=d29FjTB#Y-1?{rM+Qq(~8R?!p3h-}eY{qIvn%W8`_tU@)MwmQov= z$JNJp?fBd5-g}7KZo8AkvuAkb$tU>uLl3fh$4)xEWwernQAAM;KhS!(e)KB@Ri|ZS zM+A&+U{x{doks}8p+g6G;;WCbXU`s9df{bspb5liJnTpIY*h*SHLu0U>E!w;i1(HM zaFW#M_c|1Lh7SWwSs)P%heOJ;y!QC(Q@(^y2r4e82J*ZljzZERr*PGJPm8L%o@Ld? zTBD8(72W|_;i;S>w2&2dSUQ9h*IZe=F+B9K`?=%DK^8BcqF%3Y>Ea14tuNA=9HTMT zWRR}2GRzU)a_8NL@X2OYmoi>>;blsbV3RtRFI}WruQNB<#uh^g>!>9GbKAG^^eb<0 zb!A9l6nU8uCW>|vGdbSoyFT$S4Qr@{mTXus-ku=sEfL2hos|`8wbs|1*KdgyNL92L zFF?D|_}dv&JpdK6zP3&+N$4$Kr8nqQ9ZhHG4cBQk+ZZPZ0)dJ`_H5dRu!dnaz?u?Q zW=xMyB0@={-NY|lA&vqB9-CY8tYCh2Gt(1e2)VHyD<>U~WqEZ4Ty;|nr9=vgupVwu z9KRRpNu9jN2qa{~6rlsY@c0vKIe0g9QRmXq6(ojU?iiC1-a3+KjP6>W&hk}+OX(ZW zzFY3)rPp6!e&+$U*5_!|8@T*yyM8K3DEd9n0_`nD-p46TIod^5-ENQ;ViAs_$vwLC zI9Z*GJeDXQP?iqm1sa8P0x!SzIxe+C%98ziw=ny{1y&YH##>Dm)-I!DgbNa$d*c#U z&tK+KcWq{lm12EuAF_1Ehdc-4%K|Vf(#1xqssC^X7m2%Y5md{t^%T*Z-J3oA+~W z@iJ-FLF$lpQe&9q*lq#wjh@+6x}IwV@q2mt-o$(1W^sHI-!wK7>oy7tcy~AXdMFK1 ztg$6%9TEl+K@eaGn4hat_6pX2l0|4m}E6sMQh% z!#?eHo0*wS)N2ifgOs$_#duAu6B><(*@-djT8i31Nl=kk@aTsV7{#l4R zH1q8V+`w{Z&u-q3m)O>7v2Wi#UVH5og60IZM6&JR-6O@gqBTFj)e?q58{gQ1su_YP zXR@sc8GgYv@O{NW-4Jrr!8N8N9j4T3 zBmViWYmw*qwehD?ia=|EAQ*8O#kDSPAT`p1LSv1(=6X=r z96SU;Oc(}4L5Noxrvyq=q9VtL|0oqYkR$$Sb;)(UWO}U4u)oNopZ`Pl?Apftciq8K z-r?$*3;#EJZyIFhb>8{?&N=UT*WNcYmc~jfBmoi>S5cCweY0hGWXCBd^I^)BO5)U{ zGR}CCDc4k`l1wI<$$0W%QWMWO9>?W)w`@h0sKpd1k(5Y+1VMnjk~<}-1q&T=lL%zV=-DXIJSpcwZfYxen4!`(?5Cu#}zCH zmp}a7uOP@EY4Pc&9_7%1J$(1Y7w8)q<7YneS=zDT&%XWwjgDlXzswgt`!ROA0;SfF z$qh=v(22m!GSam*$P$!r7^#=Hpj1yD137bno{7e5ZC5JCa2kG;(2b*@xwz1OR0YwQiZIncd6HExKiQBcPE4DBrzh-DU|~v<&cOH z3u_&w0?WuijrBzrlNhus$b@8YY=r*pV=T1hzRb6ezvPQ(ZtuKjVcRDwu z+Tb}7UnV?xbdu{|f2H_L1tF8Q_-GB8wq$uiz1~l^+oo2paO%xdJooKy^YKr93LBJo{K>~S zcKjhuoIF9R)hxt&0<0r3!jh*k63yt)0GYO=){s*8 zI>OnD7igZmPQ7m@=#J!k?JP4V>o>HFkk!XR~hQtMjSVB96@Fb z))u@;C7r_N4{qc0ZEVisIHuDnMvP$?;`=_WW}~o(6M`(udKXN&89}}QzHhY*RH_ip z2?1FY;W=*cd)F--TC~OqLPF)@r~*CNEGOIOMG7clBL%MKVU0kkn;XYsq{#S?0o zX@u0|R*+ZZhMD&$A0tHP3x>%I#joBlm(zSH5Xa0nI&C^97~F1aji?GR>G@P z@xqXDEu&mf)TX=4-dN|{^XK@bU-%H6ZimMDIwSr4I8u??l*RTEJNmX`(++*r3eM6x zHx^^Q{rnp|@{wl{Zpe-4vnVNWlp)H%wm_RA5X7hw^}Z6-y$lh_DSliDxzjqRmK_w`Y>YU7RAPAA#MPW#LKIg6*;)i7% z&(LirAT5q`aY#_TMUm$@*u2Qbffa%riQDTO+fA3`A8+S)NcnX0g!QOJ2@mCZBt~;% zWfocM=fi*hAMoOD{Wfp@)8FQSFGcM5;1jt0WiBnQq1?j0Zc7c5l@yuRx6mrA3nKfm zy_SF9>K-`$53)8ccJF=6a+@%!cYDi|nkb^4g@qsp@%=7JNy^oJqNq(H&)B|wCw&8T zR#sM+otfe5U;9fw`_o^bxek7*%%?y7Db`k3$Yd3NubA_#nvEGO3~ zzH;$P0YX>;-)D4m6h|l)7Z!-)nB|ofUU=aJrlzJ?Sy|!2g$pQ0a`x=ogkcHSbC{c( zr(E@LU59$DkHPUimRE8DDTwnJkqOF55J*eZ>9S+TB%lB3&vW(S1-y!6aeju#7X&4b z{!&N~c$_=?7R#Asu)j*D8?zii5LOu7wwv=;FCqiQwy6UQR?B?ozFlb3;^2LIiTsdO z*2VLD>Xm@m>1!Apq4SKsa-GI{msYn;wZF#si`S7#6DJ*_C?W_#D&;Z{AA5*Bd-m|) zfhhzzp3JaKgTPR&1O&bzwkeHf1IPbiW8_;od0Vd^DFnt?vMj^%TEKO;(T4Y&9 zxm@lA$7s?t-AtJ>+7N~%WDf*yQXG1;jhhq>!G>5>IZokrpmVe-(%f>Rk*+{ni%B(B zYdq-|p31IEZb2#+&-3s+k32I-X?r8v;&D5jE|WVeR4P>vhEfoabR(pNJWCJ?991an zO_tGZc8IWOof2nVR@yC+X2Ku*(VwwzqK_jVeUv!YG}>+a(ja-<b0B#uK)%)R* zhxqcJ{{`jJ2U%X6#S1)QtEiO9BypQ|6j5?rta|4t`zA2H9VFZ?z~mMe-VKjg(d+)* z1jxN}&O1&$21B0a2vO!6-})<_cROsCPF6UwjUJ++?ZPdDeyg)Zl{A7 z7$na!UVZZwrkAg<^CJ_C?i!=7-iJDWmQqb}>Dmn*G?KW}<*jq)DESJVbt&9E3c-~y z0^?Pf+Fj<#%ngn{WDzKGa@<~u)&@8Ihn2Mkty7}Ng7i?*BP`eW!HGA~d&UTrPp)&M zQDnK{&C_o)II>P9@CY1-z;Q9ca(VeO3(HNQNcGF}n5}5Q*73-YymaCuFT8pY>s9gm z5}8+Q`bvkXApig%07*naRD_gZ1!Mg}g`0KW8vPjg_b4n|N4 z1B|&-tYoc&BMrWSZr0(WAAXD|O*wI*Dc(Jti~F86r^5|l+n+ejdacZ*nR)tmO;W8^iMla(!KSKgBV+{LxxxEU>XyI%Yc8{CtAkhaFLbq^fhrG8viIK`)Wi~F|keUyFohulyo_c%x*?{SfC6)xQD^u4RQ zzU6}X!*?RGhR?gEWQ1C(NAWr6;_3fm?IP;No5xP0j%ex;v!{~#vo;t~_6I(Z(E z=>+S9bfOfKq&O=Jw36$L^p#k=d==|P%-R4cJ$CFoj5d}tC*EXaXdBy-l%|L{Jg#{1 z{-b>Nweu`qoaXV5eF5n&P&SZd8plLb71%uDi%&iPu-U=fFvz#o7D-WZBfeo{ouw$N zP*#Ci1SN}iS_;xy8%HRtjc9i?k|Llavu2A6LQnav^(Gym=(;+$1rgYu%3Y!m6h5y{ zJ@quNz4i(+>mZCo$2oa!s1FZvW$`SYaIhjHZa28^z)oxy^V;j@aa4dYaUqOTl040j zf!OT+D(MkN3EfVYH0~gTq+ajG_kGedM|V0XlcTU?y4Q7+lGMWB$QXVQ5|%3DX#+=j zq=_y@v_|839!d$c<4~>DX}3EV9NZwp%_1ZzN_j{;JmDdvkE>!rzr_4<##4PeQBDc0 zB=lS?Davs$0;KEWdL?o#$z{yIV1?P)X;$YKNY+*`B1cGzp~YhR6i(?1t4WMg?dSU9 z5-aO%wjbU_C!OW-Cm-YV#nXJ}B} z)o0^oIV!>$i_R^9MZ4KHI|N5}_s5Xf!c?Wr{|U(Cucp8XRqDTTN!0 z?A?2idd)-16nPg|9#TPTXfChv#m_&(CIyct37*kAd5Q>f|BA=B^DTk1m3ZfVNtx(9IkK7iU;9LXH z#$u$8G7;AG$+H|^8ZaOwqvOPa>yd4{$IVTvyE{oA(@Up+@S{RRjA(Z6MO zEoR$+LsV+DLi{QO9vatmNYfrb-t?6gw>cx&J8rzA?9GikVuP1coR9C&qf<3b{?6~Ra(0e`zy5cLy^yO*^JpWHjv&=3(lHn% z(Rl_G;$mrgRJL2D3Gb};>MF4zLViDMOT2M6(cxD3%Kq@coO|H-UcEmhAkVT*CktaV z?RFb4XrXmVSPIZd&fJYflFXpIGGmi9Qmy&U_kMuux_tJTPtZ3|r`uX0%QLobo21=p z6%o0e4q;fv^E|Rt_r`cGQMb+f{5(k#)8F5Z=Q(`lGoK|00_NxEiK3W+{y`QOmpJ<1 zFH}kp57lX{F5pQ+ zNtI|dW6EC9;qcvrxuvsM6xcp0VZhFzN$&exjqiW&1XE)Xfm2u>p*3C)kiv#52zXLp zdLal(6&*SwEMn7|rU#C#LnaLwNe`|{l%){dXb{3|c1%&CI7x1C&e5juHH99}cY|xb z#anHS#bEF}k2Fh|nwrA*U6!t#Lu5I^ijDpcQcAMe;`itWr6Az($DTwvA+Nl4g7x)9 zs+B>O7MCc6Wt<)ei*-R&$udKdLmrrH@mwnPYVlfJ z2j!?jD_5lEeCq#lk*Ld9>mTB|TiXpR8?gRY?EP2zjD$ONMH#POEW^ z(a~{yPvS}mHr`C(+fcq6Et$E#$i6-Ias1&Yn4h_hYbAPYC)y^(dn*Ls7M{1e#uy)X zkQ)nKs%nC5WrxPjNe&);fW`JQ$+hd0q>D;&E}cEY5IHwyZ*b)3LyR0e#H%O1LS=XW z75KOc+U*9FT8a3b@74an<|2VQIB-4%ljKNu}^gRaV-X zNY!aFfHV9EBehY|v`Hm&m=rbMI=8^7`SUC{x(wDztS2qL^6h8oE?;M8Y#aM_?PP9c zjjI>0P%rm0eQuhOFksjI2kGXLkxG^0hwo#4VU~`r62~3LVSRm#Bl{nuw)Y_Qp%L=) zmkNHq&ygVG zyXh)m5mps0K8_+oV@-;+DRJ7su?~*7Q+bt>Vsb&A=L}UnhJ1*-E#7+Lb)Go(Io4+` z^ZeJo%#+W2mPe}rr%%7hNHyTZ{3RA!bAGdRANH|DO=$qjxr zq?@OxI3f&7MABbRBlJ)`{a@w7YO1X^89J<|@9Xoe3 zA1pFIKTo64rrnJh8|!0by@g+?Fu8jd*QcjhURb2lY14`0B7^>xFV#~jODU;TDhL7V z>+2**itG4XyE=n0no_BX<9ZAakK#BUk3aS}aW|sViO>}81A~KusGy3@bL1_v%?$?z ztqoDsB~DYU5Uj4X36w;qme}T?Ql#V3Y;|a5kPAUq8!DAPT))Q2(`T8!c!|d!-^YPN z2YL3nZ?b>y6gwwI2^DFPsh?yWI}zb9~u>7)S(N);Ar%G%=p z^rBy-wMaxSKVoBaxpm#jncevJR$xadMG~jDZrJNC3nnKg*;e*(LLVIE8|$95up9~>bgN81D|ip@j0(ubOzz@f-i*U*LG~*@yPw zIu5mJmFp`rjEs%p1|`1w>^Dij`znEBc>Li9i->lo7(pjV0?zG0(Kq?xH-YfYZr7b4 z`Suv^0#0ps!4^~PTLiir6s&iEE@N~7vO=G*6!5igJWHiAgb=Ivfnr%lt(97QChhq(Uy|*5!NM3Q?!COjyESWcdY#_%5#FAunbI|A&h`LCDRhACBh0M zvhe#B8!UBtDSm~QZo88f4ijo4@y$oDb(bqiBEoWofm(^E6H_kN_`&nvW$&KdOpcB4 ztusGh@9rs{dg@8a<(Q#F)#CS;Q_Y&_k0<~phbfZIf8$edY zL}Ye;7B4LG*zpIr|NaL!H@CvM%hx$|;W~3G(^wTS&|f9aMX$*qFk0aB`1xjwkf6KO zR$ap+&B&!Hv@MRn_d`6-ry?>cYpcBZo$vD0$3I0k%UJKUNv$9V0y3QwCo#%#@c#zH z$nUi*mN?H*O5nLJCeLYf+nl?8j){HS`S7p(L#F@lKj6#%!~e*~e&z3R;F0^eI6F-{ ziLtJW5sEaw2aMlq-2=z>>V2s+NpZb`hZ*;Hm!9XL97~=V;v@khsMq^Ixg@iTG}(mC9 zRcnn@F4|gz>oIe6nZ>yqH0H0F0#4FEwc_A9psy|Pg`__ zjKxKvd!uyesM`$d?^YWCc>~}f?!1_6@M<@@we5Bj*LA3t%8=zffL{RCTx+ydT)1$V zmE|QCZp^Vbzl7^bo_OLhKK_YkICJ_UQd;Kb=8^6WT-V3OBa~h zvx6f?rZC2^XU`t?9y)|@e0J{H$LxBS@0~o$V-MZOeFqPcug%elT7+SUw%HvP__nus zx)l`P{4#fRlkWh>?*PTOY7)5h_U)^xw+=HNe)vHyTv@`MWQ>_i4lLX=1{u(#FZ)sVXTQXft9(-S6vlN?4 zT2QbH23enpQHc9K1#p)n>_yy z{w^bb|G(kzCqB+}qrt^ii+ZV4Z0f`hrw!bzA71ys@x6LqN;#@GzBfHb07;srq-kN8 z-&kM6D2IBjpC}g$3{SGwOo-!{p;4bor9#zlX{@a*duD-2H@WcR*fsC0&*T0rUG6sLc1jdXdQvM12qO@UnD-BuxtcXsIw-<9ZHBnzFdE%ixr5$Hz14v>Qt}e!_>2?}t3ccidixNbfj{V&jnJ5mMzuafh|_dG6b{gVC{mY&6KJ z=@}3fp(GQPA!_4&B(p12hGKT@+{K&cXZXrDUtoT2p56O)bLP}rc--QWK* zfAr-W9NRO@L&uNv)`c$G4zXwNQU3g^U*X2wEFU|1kO!W86zxcAE7utFEr0NDev7E& z@iRaBc`jdzN#hpJe0Y+R=g;x-%dfE9ap>Pp#jRFM>|@_wH8-#$0p!z`ij7$ zbWM&_lGI8B9**Y}y<(GNY(ZDB()7CY60{Eza%IR>PGTZFE0I>95(lePu^zT~JSk$N zv@}~yWH`*Xzki<0A7yN6KaIuL7@gS1Qy=;ufBf7jQh7hQvy;m=UZPwP{8wN45(|rq z{LWup#1#&{l(<$RQ(eRoZt;kwM;n*+=66>ra@P{AFXLE2&2b2oLu55+lrezA&WHMV zeCmF#&aLy}>18g>H(Bd6$W#c9C_3XmdgFM@(%P`Gx09-8g<@b-_+0(o%j_QLr*d#F z*Iqcw=(b^6NfVo8gkgy5c?G!s2`DRyGrX@x`tm4Y5&;5u>ZrT_hmKQZ3Ok>v`E?Vd2ID?TTh06oX_H~ zC4&F8_wcTd=f>zx7LRS!EusP2o0Z)uw)vYZS9xfYlV%YpL#i`ctv0E3@DwywS1DJj z*j%%`+@$Q5cwolQ^F$xxf)L3@*I~<)HWc}i4mfCGfWuHB}c5?86hslyw!QPV+4Mg(`y!7g;5Y$oA zC58vLv$o#m%P)L`Birj3opJf<1tv!8l*@G#Il|mzh8Brl1xP7G7JxCE@0t?MEvjU* zx#+d%g>G<@4xuF&aZ`zpDY)8>0l)0C)=u%NLv&VG3Ca~RYp_{NJ@Cl$6stAq7V*(V z07eeN7U_092L#vi!Bu2=hT|wABe5c2Zgqt)tl|JV&X8$JSPf}JO)gGf<*|p3a`ebC z&YwBM<>n=>T)9dV#bl{QYbaN$n>JOc&ag(~I*QPd_@0OBc^F6Fxe|mSEZ51CHPS4@ z^*uaSB9tm3e|;B6`Z%tKln$~y$hG;i1ho+wos`uWbxunZ&E!NK zSA|H&Bg%8y-H1HXcwT@J8s&O~p--N~EUc_yjb>uo4p!ov!ND?~>)|R%d7z&>&pCAD z0bEf8WDNHA(`>CE!xGk7q9~@;--nQeLA|j>x7cwUERunW%g3I46of3g7sm7sw!m`> zdVwDVbdreOQ#(;%g`NA45ap2Ju(I0V%(;u4Jo7fyQi-8~QI722hwlgIIJ%AIaC7C{ zeu3T`b@Gn6CmT6nx0e7kH#@)97NR^UB+79yM)TSmr+DMs3`6A--8@B`l+k*PryhQQ zdaZ&h*#ta^h~6g{1{n z*Vh;t8p8EFR#uiVR?_aaab<~CvxStBM~)xk)R~hk&&@J(<}?RC^eDAT6&ojrpn_v9 zk3D)EEpv3YLFg;4Ub_lPg0SSdE}lpq*juLpW)mF0^UL;9yo8)jyzoG}MwgScg?Pi;D zZHPR}5JK|#pZ**-7FTFx8U5jXjP2OZaapB4JI|Hr^X%Sph*8(&smGp1_LZ4kU!`C5 zvv%!rp#wl;M31Jm#bdrRG;afp-1fZbaflIEQH0`1a->dCHX_i5hxU#!HCAV4J?H%F z3a8(`#O3KljHnO})=>(&ODnk2fu5E^D1k5rDV!~tU!LdE>9p|tQehdH!_@dBD}VG2 z8d-|^z;POJicyx_d9AkAVx>jplI68EGGjRK(?7$1G_su+f8+mP=AZsEKJvf)pM>pYW>yo@Ji&E* zq$>dRo<)!Ew(f>>-Yd$ueS7_*-0!=8#Gi~g!oB+UzJvhfNNg_Yb~3Dy3=NGFXJC>p zxe;{Z6fGovy^aJrCPlfDcASvshQO;4XA<8H2|bOD4YgVw*XGRKSR?eyNFz}~;8;a! zEDg7eEwO59q?IaGIe5B3tR-zLsdzOieKoX{1QpOWFM=V20|*?Y$aCFG za4KpeWiQVQiz9i<1r5OTe0NvZ*XSD@U}o+Hr@r@X_S9VVO-!(|-e#g2aOC(DR34<; zY!iAe(j=tqWjxPe3-A9Qa-84Wltx>Kj04u<^^Flbt4!U093gWwIaSZ0GCGbWC(SZ2 zKf0;Bq3C$)9>5ZS=Q>P|)j9k2SrmfIW^|=MT1&lBrCzP!2a?!ol!R^L{nV=uu(UMJ z%*-5fHx@_|pMiRfIF5_t!!RHWL&_D4>-uEI(uplP&B^l=;TSySP_5TVGlAokQI1z6 z-T8%JEet|@zs%Wl(+t+D96GR6{!9n2XUsG*Yx-EEZMUh_B=_wYqU;3h)Whr;hOFDc(H*+oCde{!3l9DJ-#q!zOA3cH z%}5hXtybph+%hLmoM3c(8y9cPGB7a6`LkzPUh6U(RQTSv|BAhPcQCy$%@-g2S+*^$ z^LsD8NOO6iSZ9GprWD#Fh%Icf+;@Slq}_nZ27}rJihWLptbK(+U~;05V`DWI_8sQh z!X&R;SmeUYGHWYsyfnoLEJhZ>MJ*-9_Ch-Dv|vWN#RQ_735-tZE0?I%1#@5j3J-to zZxIde=FFC`=eurvZkg(wBSTOqYMrBa=+ znvx=T=%BH6K|eoWN3svJNk*!E;=?WuXj21 z`Z?}Da+tw^GOlY#t>Vn3tNh^HMXt_v=<6Tm{=*N^=w9Wu6K~N!Fvur9`V5Ee+s;@2 z_$xFPm)NswH;>$ZKiZSzkwz+w5DHM65yrOHA=wyvZtVU8-vw())3nzeP`Iu`hD(|x zjEs!XiMosq4)KLA{w+$rN3&~iy%ItRTCEPre7#J8M%VMIqO&mvsU7M8nzE8PY zLpmRH0S9}ji|=X5jL7r@2D);2t`eokeZAG{LiLvm zOpOeXy>)_>>FXT*&aUiZN9y?S4&7*Q3YcE?d@ZOAf> za2%36DXhQ33g!Mj&R&~lcWTJ|K3d5N;{%gix$zP!9n0A(^Q<&-CMWmc1Qm=GIBtcR zxkZj1J4Pw=3qGj{nV(x?@Az&We*8X8p1sIRXHK(wyuyF{#V@kDw8-4W3oOmgvfk*h z|GvYtmX=B&6#i9zKn$??~GOZ1c=WccuHpXIc)ZM)BD_PjAC2@u)9ilv? zwZ4jS9fXqjrI0k~b!LRXB$m*3as7H>Kb1rv1illH=h9Xq*xAq{9iowz#g7{`U%oBrRKUQ zN78P$ah-xATJXX*KymN8F=%ZzyT%(fi5t|4t=8369psI)Gayh~(QLBwo4$5`Nw83#40vC+U$!(6v zES0c~juNcYcjXfQq?YRhJvlrZe>ABZwHoJs6=5wF<3iwKuMSSHb3nL>B^I*HcJqZ<~<)yOl*^Fcu6Ojx7R##*q%1f=}xxg>pUe zPE0H`WBql;KKucWKYRqobnttVIB6sz*C;9Oa9IH$H+ae=!%}e_>aNEtfBse6-G|Am zll=34`I`(LIKYDs972eUJ6)rTDTb6qZ2j$g;P;mTx>Z?QY?|{tCrOe`a6H^MjEHmQ z7Zy0QYcD_j(T~%R4vn=HtdMw~MCZju_a~3LpZ_oM_y z=RGgW6c9vl2j#j*>yYZgo(cUfs0&+0cfX4hqL8#xL#?lmuYdV#ym4`siM~FR)TBww zSbvpIJpBay{WThK#JfiBLKI%nvfyHOT3r^Gb9PNk@ZixtJdq)?CULjRjhSgqzjcn) zwKk=4g)FsHN2&`{c(z+H>hJ^w%mp{((oRR6_3CGm7sH zvEE##R4ei5t=H$m~O;J7C=+6+XwYZ__3$=xq(2@4T%;081sO$PdFG}qRs*UL1T z>o_H!+z29_V|<@D2v}cU!gCecSn|~1Ig+>=BT52gTpY)z)5-Ag5ry*Wj%V?c+&Rv3 zja3fT8miSA4?TR0fBmoj4fVbut}V~4_3pUSDJzlyt7Gc3t0S-B7 zdjSpf`99jnqTgu*ju51|K{#7a8baw1CmA~MsFy?hPQ=W&p6AHte}To)Acvm#2roYO z4HmPUFMRkh=xp6NHs*H9P$8uI(O>tEtFr%}z4r`~>^jdhpL5Q2X{)kKm#_8~?a+;G zcn|cLh{@Gpq+1S|G7)>ZbnjMX#kwy}&Xdn;(Nzecw zylXT}n`-Z?s=HiP+H23*A2&0ry1SYJND0D9{dL@^L?ZKM=Dp|M^PcZ}zxRzIq$4{f zOl|d`xB;G3K#<^9n>_Y^{6}_u_7@m_;3J&9(7+GsX#=;kSy}VsW~>w+2spmZGVz}& zIy$b)!eB@~1mErb#QQmxy2T%a)(Tk3WsP~uSH!0Cj`tcj=C@w|ymD-`(L{+)BdTL% zC5?CiPX+k0Kr_~Ow#D)DHQqXT1-H<{3=LMTTE)3bR~TBefkVg6Gtk{fy|&1uDaq?^ z9$|2Bh}p#^wFHEdCy5&vlff%?(G-HOzjTmlcnCM+v2pbfLp?T6A3Vm7-aN^M4YyEl zLf%o>&CA$C#8QK6(^NH-79=`Cs&?nNM#!|$Mo5`TUBxjNLySyoZ_9qV0jx|+v*Bao z632#Owwt6GQ&1i;hGuM#jz=USM69uFMNs$2r<`6PND_mxQ(^xkZUgou4dV1%x716Z#p_H!hBQry^=sELKU?9~f92;eiB>3oPA0BunNe*^I={KwAd%G<`V> z8CS54+q#b!khN4JRyrV4U@fg2MjLF)BJ>+LQnOf{Vf9ciNtB_#w;Ru~n7(|LU;Wk3 zQ!bYo8yn%PU;R5i_qkuj@hm*2%9V>pvD_S={^Ww+uuX=!Gg&!yIAJ8f8&=C zBIN6jALKhfdWm&w$M}t3-^7`dr#W@#2zPE8MM+6B@Nq14l?0wGBtcuHqSK7m`kS=3 zN>_Qq7CKo1Tn-XN6x>i{EBDOZ2g`MTt zt-D@~lpuryMs|j@xK{5DFhZ;d6iu?y*f&?%54R&~$y&DMAhp)%n2ysgrnM#vLwb68 zs8q{X*7fsORYYXnEXF9bU*@i@J6M(JRlGXj=%su}!yMhKIpZXLt&2y~l z3GhCBA7AzF@gvqG)5#HZmv@5szuw+j$Z_#)!Nx!f0^{@6=TKEQ;I~i znlrT_3De_aJR7^3uz74P$NutYT2&0*vlFw_K59rN`;pMN0~g>(mLZJ}6g*ZCNBqLKp<85sga4)50(WW5^c@ z%*tXPxAMF`(=nMR`(CHc)1FZkFX7*<#?B@(2)0j3Po{S(yXPL(>bUs>_p!H zB*r%Y<8p;#8j}#lF@1K1-mU@%Cnm_RUWdJQh?9rUrS~?ivD@@CDN&K2cQ8vbbCSg$Jk7no_dED&N0_V3k_dy*$(wujjw zzxsFl!5{qZ{Exr(#FM=0iiJ_J@2F?S0N?ELY~`)hwyMA_8A!& z>QTnmZ9Tdb2OSwPMkQ&Bab}H=~I`mU4@VmV+1jhW;0~KD==~V6z5Kz z;&*=cKctO{{T@%8KF!g0kB}5H%+?Zq{*ljc{_JV~>aV}da8HhV_TI|vJJz5@M36*u zb$3x~)UF!<*E!>L0CJ0qoGg=dYwIJMtHE)Hdn{!ttJMOJ?M=2TEg0(c=2aa}=>kg< zL_U^ffk|jK11x3Xc^-?4i)8aTlu|UCK9+5zn!=WiObn5P&~K6}6tMgN6Zk~5nrnqY zV~`|E)u0w=lP%MQlO* ziYa7sL{WrauQ56_L=Xf-VTfEIb1XFoWyp9gl}ep$J9lw;@g;OUVCya0Xx4r1x@{ko zLx(tf>KujsVWgGtiI07P;ocFnAMvd>-=;Ayk7wBJM;jX@yWN<$ywkWv!Iak?09(fN`j!L?j^ig_OU&;OB~*&>@i|0`TPcZzzm zfl>x-1V)1})=kRs`-q$1_-1?{p`=6`kXCBZtCO}IjX;PrV=lz zG8q@!5|p|mU-;Z3jP&Oy?%mF+RYS~G>QrhCv^L~Kf=xsc23WR@Un_I({+(RBGEc1@ z<2nPZU%P=zJNvkDc8bBiK}L)Hl&3C{&p8NV=qQv5%Q_Rdw;<}pI>2tVN!fm^@P$(3*eBl&PvrHi)*sx}ls99y**cjV3ZluwuGe19% zD>Q>WMQjs8*kJwG5LpWfj-tOSN25H;*ib(^wrt?-1FuoaxwyjMTCxLV+5q-OJUS^Q zrBaERnHkFEGI!i@2f17hKd5o%o%is>6F%t2Iiji9aal8!;0m{xW@tvY2g9#I%_=Ilup=B8P@elz|31JoNK zN?8Pc%JG&Y*p|c(eM&vO2GDy=N7fOfVm z#l?cQDMYJrJxZcL}7$mDDu5$U*OF73-k~7^X;de<>7}v#q%$|$f`B{+n4f{fpnE^wMGM|MT}*oL^w3-T*HJ#%PU@7D8BDXNh?;ZWuSg@y+-^qLW=wsg7)@ zTbWoZgKl*o8y(#imBJ@#BoeEo9%Q5-?)M3`iPlzNKPs`FTu#u5q5$~=8p zk8-t4z1hG>!D6+>z~DG1PM)JtudsIY7{VmvG7jbW8JhJ9y`>_H3v;YnGlnG%`K+7n zueM0mwa7RYmnSb!?CQqJ7CRtjDf@l>l$0b1S|+KyUM53#cQ^HV9h5>@1(fPWCq<0W zSi)(^a$QZU_=#hH*2lK8$d>Kk$53u8kSi7G?J4lgkEbzVLKtg8;S*?(+(QMA+iX`O~wkKJUq*=2ShD$b+WqfQkjWD2Z zXp~qd7-8Xu4N9dR$_v$W%v`)gPq9RoSEMU%(MVE`dNMJ|AAj*{^p#3p=7_1IwA6iQqAu&d$ zK#5efKuB8EfX)$W`*y6rpfKng_F-KAoRXgy6`Tv)q2$em-^AUj8tCoNvDPJo#dt-~NTqARAMh zDjLSt-a_@_Jny`Fn)O>VRIDPATO)F^#572fI!YUy6@H7B@4YN<8Qo%3$W|v`>o}?v zxXh$3p4W!6qK>*~xeZWGECk)%-N=(uyzt{^8NcHW)@^)mzU(-@5~2@(O)B8dW2t89Jd zB7v|h;vhh3jpsN7O`nXH#ZnHn@;pfplFt=sh7B^dmC8G19HP(=ClN+UbRtNSh$xEj zJcYp!Mj_Q|6@#HzEP}XxQf#@q0)oVVkTy~&qA1349E1sIHheO+ht!hAg))nkDp44t zjiFI*5DQ3RO%iJa5-AMj@+`OBx`TRifrWCJrtcFc8q0Rb!FDYCz^7WPQm&L+ zWz3Ws0jbG`=VeHu1nGKcBM9Oc*HS>#0z$e2TBTI@i6jy>vz35zFTcS+{{W6-ap~eE z8uggK5)fLrP7afLC0{j0(uCvHPEY{IluD6kgEpz8pCu(iMC39#bkw9-tJ7WRB8Vaq z39$wtZ1Tkt#bO`2l{rzC0t8Z~kB!ltMzD6tH6p@OY0rEiXA>6E98&-QAOJ~3K~y$v z{CXW}NebC4(uUriZiXn&v1Cdu=w}16BOis@b$Q*vX#;%<^xI8sUy%}H`pN;Fr zaPWzP05H^|2r1|Q-uA$5^N7=P*#^kVw>B7VJ#K3wUvu5Ja4}293M=0;EK3o$U2RQ^ zpDYb=6k|yXiQ&|#Qxpn0wr<%(tuo8Kci+V`&puBf*GI?L|h$M#&XR96x@7&6~GSUMLer5o04GOdLB#v6#i6X*3#a+q#Xz zM~^c!Fn|y+H95(K%^R7YnP;(FVbl8cOq@8zs)1Elp3B8c=jre3r&_5}$QSAE>f+St z(~PYi#}5L6AYycMlpu)6WU>gMFjC-UTuz)gLA_q*t~>VPc^;YUoxJ<*VU8W2AXn%j zA-z^R)d?eTJ%?Hlcc{I)Hm~LA+iy^vKF_78D`c}7l34S^_nzght-WmBw23Q=HR2@Z zhfhDv+Y=|KMK(4PG$~&@Nf(O=DY%ubj5)@z+_<@|Pc5!5KeR@B>v_@Ux~9NWw-%nA zD=RHOE!k41uWF5_>-U{5WYQ%}dff|zHYfy+@|Zq(lq<2r{+)aH!@vF#XU{b#R}0*- zdpkdP_E{Rcwz7BUR)}h?EOv`$jzJjJ;gE~goF$fhjpZ}udtoSaDrza|_dUFW&M}hh zDoksB)*2kgA<;gL%;RAgD3)0Ki!W1YM(p^_-(oIo5(Xif1T7582$YZrBQYjS7bzbg zwc?)&Uj2j=%=_5OPd*SI?mEIha%f|&-~NT8V?oM=16ru1WBAKb!_aaz;0^Y3jW+4E znVxj_%lC85rjzty*P1wp5JsX*sv&F(193u(h0+l!(cFK>z3jVn8#^`*v3JV|yH*c! z`}XzZlt2kUDFPD`k=mxlNvZ)Uj7G*0wz4siMkNB3BzU$W3Ti1YkOZ9sL_ss1jFD-h zgGd3FZCfO|i68o8av2I;1+w`pwwvm)3Ijr$rOnW~0SPjh91E3@@BQ#ao_+Bxp8VeP zy!Pr_ROV~s9GCBY`$-=D_@_91{3J#jZrQ$r=U#k~^_w>nhY8hkod@rKkOObL!L7Tu zlgoL`mn%H{$fr5@);rvB=iQ8rui@ZZZ}H$m4|4wEd88%Tv}F@dKl3bi-g6f-b2Dg@ zuxr;Y&YwHa@gox)KYWaLkDlVliStC-A@W;XSOLZ)Erc&HLNPsC=a2vF>m0vS;q*+M zA0C|I`>&tk=yZcCe#9UB*`G64tz$&ydVXpP2uY!^EeD+#0zX72hSt+FgvL#4?<=8l$i?SW0rBIGQ*#c>U zveU=5aIsJn9h;s~7ANnL?JwbVXNiqZS0O{_r?7>lw};CM3w-hG-(hCHLXc=8q0vI4gv1gmMHg+yb|FAWq-CR}L`c;# zj?oC6U4|NA{GG=sPoASuzQW&q z@vrDBWH@(XfI)L5jxFv~MfJ%uMNUi{J1SV2h62p;|77a8vD=Iz&C z=jrc#m;Pdbul)62p(7vL7Cipw*XSvFoIZAlvlB;9VaQ`&{R++M9FrGLaqz&)#EH-4 z%a<@ppq0S(Jf<#B66=u9{Nm4{tc1DwY1XVA<)aVY&&7)um|vKu(P*IK2-|U5?uH%# znr0H<6g*_Cx$D-=+3>ey+#xU7@dI87#(BU_rz;9Ito4lWZc;j zBrQ@Dm=w54-KsJegF&Y%OG1<8@vq+6f*>)PNEoydXbgp17wcAyvhecr=yki8AKr{l zmQQ^8VchO6s&UM|`ySwx0|%)$Lxgr%QtHtNVgzZQfdqun%eJN8Wm?DOMziHg_r&y{ zzHYlw=#Cmn3eu%X`RGWA7Ipjv4E2vN|ISgaJoz{u{rR6K9vkCSV-BrNnpxMa>nbrM zNeoh7bq(LB;`5IgMy$O3Q|%j}-~09tV84G=nd6)B&lgLj)KoLowpy9RSb=GY{kO)d zRC%6$_8@1@T;cSQE1?4IKz9gfc`r0#e|DkO(BPOwwCyi$>7S za;#9%yJ5s}jOTgea=BESIEqs7bvtw2YXcOqfM#r%T3F!JFLQ}I|7kd zY}SyrBWZa?cLAR)D(BzeHXUpuw&OQ)~wse=*S4eeZB15vYCl> zYuU1S3!`JB?A*MOJ=<^L!}|3b`TEx%rLHY5 z&R3A#y_CyU?zsIzGCcR} z)0kwDT2qr-=?>CrT#Vz?@>eN^ZQDc*Khl(*xYPafof>J)Apx0V7iYt)zvCLbRo@lv=r_ z{yySHbIFbDU@a5eU`OwLR$8gy>FO6OTNJ|$C)le#aT%>*`NBF5(*>?&sg`_MKrWZV zbrr{t9VUqb?z!(CYSjh$d%CDpXP7t^VN6IY17yY{7OCT+C(_D6BMeaa3|c_2xXAW3 ztLYi+B1Y5IQ^Iv^G8qRi;}XXq-K9KADO}HHV4$DVr%%&W%#+Dv*s^5{*=&Ylp+IkM zPg-5D1!HSg6U8C9Y?iF&;Ya}_l)AeRBF%hfvl%j353LMdK1(bi*Hy$?SV+0eEg8Z_ zqd~D)OqE!)p*+99V)p`ly#wsLWjpV@dzjJTQQQDbL9@Pmfkw50moE_bAyE>M&vaAF z@v;hCfF&^PYk^^I`o^gKO%8_)-5SUA7H{9J`48Nq~{5*tv;26Z}uRGS27oBuPRL1SCmW+N9EbNJGP~V{8jYr4nkcvRS)jD_3T&kjoZ$cj6>MO1etjG#Vk&b`Wi8 zqPBLZFsyXzw>=jVhveK0jcOCAVa@0m>(`Bw1U|J&jW^zS6GduRA%$eQ8c922wgisT zZFFRWfe{NO9qKh7&-K`_VPjhER2Fd@VM#^XigqPXdP7x%m7aeepf)`LKl?7Odhhao zBK^CBdY2PfmcNG%&$#_J&Az9VtmO-`D2@OJrP2jeE|;a*Y;fxIQL>o~_uhREg?xtD znTv#BKoB)K@#^awJ$izNKJ{~Cx=MgTsRUbE@*p}(iZv58~YmPHiDpka7;n3`r=e4g+01)aN2joH)V0+jil4E_dCvg9{f9QEfC?GcwBj^hKg1=Je!Q zo_yj7Hf`E~Yr8}`Nzc2burnUnSawummP;JIpFRw=jGJJ@`(HZ>Kv)WqXp|9{IKei8 z;bM{bciu)D$t|Dx1>QV6Lp5}G?ddmItZANo`T#TMPw?R0`%y9rgq{6;*g~~$JFU<_ zqgrQG-zt(t!=~YWW}kS1xw9v^<3Io3T+)W~E=zvB_jcp4c=JnU#;5*;>4r8S(U8NF2NwkR}320R7=$;}`;Nv%%2qDUu|fULcT(=i&~%wLW7hJK^UcFSrJ2$Afg1Uv^X0t zCoC?D8*vs_0?juXwl~Vm$rbc)6LW(_;!lGN+EmgNU~!vgy8L%6mpQu%RJAh6mTMCR zF+muS$z*_pGiOiG+f(B1yY8fr^*H$I%Sfd;dEyva2u`0m$Ab@j3^$X<2t^o0#73jz zROYd}R6<)K<=pCoj1Ziizrxz_HB>4U3O!xq3N|w{Gk9K_Jw_P1x(WnAlYBl8MpLU* zsMQuzjb#$zB;>@&qjYt3b7^XVdb3VnZx_?k(`55m9LK>A(k$@&!YqEXPO+GyIy;}* zt=DTTF3ge7IyjC^qv=yD6!gN5rHiyxv zB;YUn!Y>jAF@OHum$8*ZIW{|X?_&Grak{cO{CXW>42b~Swos0Z31tTix8*I{VENj( zQBp!_NMs6Ay8BYiXe;kXHoZ^j1}sXLbF7y$qv;3jrH<$u#d2-qC7J*$-bqa+{SC1Q5m|xEOa9y6{3&zuQ}p!}sm#yOmCdlYSf@}d zBBUfv433+j(M(MMY}ZCAD_!jif#oln%LEYI+bx0-ORN4v`PS>mm{o zbVy<}z5V?x%vULudZ^T!yztiRtiwPc?;$pt#8Ql` zA7^lUm{X_Ea{9t$)~?-vK#|L2f%g0$ehs#W5{GPEY!+OU%1FyZ@k3V=qSzF0@)syD5;}dFgm4Fv=dcEx9|AZ-}Oxr z;(9Jo5R$PS){Tx+sn>bqtphAvo+6vc(ToBzg)CtlV>*&uKe@7T`urr{e)u>9+RMmUT9f>87 z+x~CFvc3bBvd8TO#B!C1<&=rGBi{1ss6*vxJ#V6zIF4~$heo5$>C>kf9UW!I){U4X zvL3eKt=gysDc=a%&qoagjK&ez>V&XVa7*Hy8F+Dv+CX>Z>Qd{PA>(_Gb+!^|M zOZ4{i;5ZHgLw&q@phCm1vu@2g>a_}eeO*W;n4g~`oAWq(;yg{i!TPmpsaMMMg1kdxRHyY&gdBP}S@7}%4o-c9i=mhoAIzvOFR2CPprDE6S&2;tVIC1to zwPu~Z!7;p?LnSga6V2J#8h#RUW;){7D>JBKNUc%j%_9f+-QRqKvEe>mdgTSyZCKA! zKYErU$B(gL<3{3{c}yJAY}9CWYiwm$Y}BxXz$gi}A_794q}tydn%YuDaHY)g4XY!@ zPH*|Gp_Ry%UUQqAE>e@0^hGy-C{c_nBr*YF80ziDd-Evj)J44C|2@9=_pk8uD~G6w zBC41n-{q0Xx*VB!6ItnH_r^8kCFu70@kRBsXJ4jzMHtcc!Km0x;woCTk ze2!DIHEOXSPN2)SxExe)vUxzeS)R7N++yuw}!sEvF(Fsef!b^YU3Q|4) z7^Hn+QU@X(heV-|qilqU5IVpT9+5VWZeux3A)FIQEndP zS1}ovS~J9Rvnd@Q2|5!n7_=RwddEqgg4;(>spBBg_AHHB6EEWtMIo;1A&o$2kX8Z9 z%Ms~_dQibnV0Nxby^*kS^*VCdnEBaB@)?_g+aL}CEMYT08*uExaq{^Lt}=`jvgD1; zvuEC-NJv}@u>ju>C=_#PmMRiyM%%RI)l_Qv+{*BUK?Fjgl*CGWj343%MO?3A8HpAF zQYS<~gtRS`tw3nPrbdVim2!yXWT^!WOyYCp%w<&2;8PEO64$Xw7EUtT3>Y3BVe--( z##oGut)>})H%W`3SpsCi`f zUP25AO>8_I0hUa4cbf(ZIgduYjAQ4}af0nSXcJ(X5mMMx6M=Di8SnGBc>W9r4xb=$ z9S%+$XMFWq^4V@G4WBSdkWx`E*C~~{34;)0Wih&$HhNkyk+jM76%Yl@{@rWXyn2j$ z#zpHU^|*=ax+IZC8bc8HWb;{)a0UBe-PYM%0+K?Aj^kh3E?g;vRI05fl4g=jyL&xZ zHs+VE)0N!AKqJI*PG^dErHqMn3RA8HGgoDLuK~+T^oq95@5Lf^;$u?|o=t$O6L zF6S>!vwm<8?OH6B7a1QIK=$_2&@v9A@dX0ge9J4di_;HN1JSx?go~~Y|r)Q`& zny8%1bZr)2Y9?pr=emj=1IKOZY-+AF6_gdXFw4&x4%C#mzU}2e2Asb&0S&h&% zbd^k4L`n@)+O+D0O2jf6d+w}Ez5n6-DZ~@y3h?54w zD5SO##z7c?$jKB)Vp6MSkyae9n*Vf5xw%zoTfQJ%uJ?Y`cV71XYa7{DxNvAng+qw2 zQet*j)5D06@l}IVzxyKJe(4E*tm(){rwo)d}!iE_R%Z2J+5eZzASEn62oV!rD0`oSagb`8;3D3d|5 z?bbmGgx{v4|3r`nc=Z< z4!?DPfx%&l-6ev0l~S=tC8(zky2cR4Aq$mR5+m?~5KFk!tBd4vIh3+ME{QP+(hQIW z;#MZfYB|mYVTfav6)@WqEZ~PBQbD1+n~jA$Yd5TCVX;b~tDAB?WM)2LXfQ|6tZ}(q zMp`zsfMhY3r5+mGOo1>+6%(RnlZ>ZODnp#u)aoJGLJyO*3cYK$arf{#A}QGG2aJu5 zbN1pSPBw$BJmMrG-_=c|(}|DeW#86=Qdc*(?b<^=lO>aJsnlwOL7jY0YSSIZ5gA*e zj7_q_qbe1l4(&mUHqC9gepZ6ucQsTJlc%ltFz=kdBVOL zEdQjeF|bsTXlID8$r>-`9XFay`UVC$^6nvedU|-|k%yVRa)r~UCcs1#ig`|-K8sNn z_kZk@42`d$>4)gp;Mg9PFoeF(VE-!OC}w_so}7}@XXlXv11u~qU~+ltl?uJReVjXg zj@{e$aO(7Fwrt&sQi_R*W4!b3A-cLty!H0G+;Yoi=I0kUbM_oj9P#RFuQD_|%wna& z@e?O06bl?XdV;&|xQC|ShC9WO#Ip^0yu%BFE5hFWa_lVB^|^vIlrGa3@lM4+AwjO}Gm zQc?Gt7~|93Riaw2cgE?pqc>}NARXc)Lh&r|&P}m**9L;1Mn>fQUXiv8@n zeLI$f6Ne7+{HtH#uD!Q#=dGI%GQ!H`I5hDJuf6;vTQ;r5772g(mw!%_D2!C(a;bSp z7=|fz!nRXcvpBh`8Ls`f{r%g(!BR4HgA=O7e_dJ(D3dCEq<~wby2tH1q-^nsNzh5c z;^HDtJ@pimlb3k%$;ZiL6mdzAGT*EQHc3^<9Whz}{G}3Xf97QoZ%-e@ga`f04 zgfCb#USYVmo2OoT1*>b2V`t7YG&F=$pW#yv-N&YN!yJ0|AYGX(tH(ysNrYEe#d9yb z%2PjjmY%_3Zri_y{iB=t+GAf~dTtt5DQ@3?2hFu-u0JB#va&dYV zAB+9_?_^|ToTgDYmIEdtibE`6rDM)>X)Mg+*BkV2Uqu*(B)xr19iM>i5_|XW;oaGD z)D9nJ-|ctsmw)}=S+{;8eSL$x^wL3g?A*=7vEy`g7umCSAAk3aZ?bXIRw|1T3yT$Y z@7c?vk3Gifwd?5XFL7ydijAALadhGoelz6md+y^e{_MXpGB8S4S2qVONNIA5K)MuL#(htrBdep&)r3_*iCKM7M_3p6jrgH zx)4m9It^jWZ~gYarM$4npFH+MTq7_-qGL&HKuLl8SqZ8g$GH}Jwq?s5CQaOYo-l~0 zH6ywQR#C5(QOY8pQ&i{X(9I?#OHz+l_zp%u2z~~ln$OV42y^eg!%QRLo`*lnskthn zBWpNuVVXxDeUe{(=YS^DygIZvh+{u|axyn#~a61nebS z9ya+ylm=k0@M=;`S}Dvgweg>r+T;W3J)N@M;qMI1&8 z4&usX`nAuX?K9Nh#rD1(T$=3V(8=@6&y7;d{(tPfS&&`VdGGgIYmaB2spkRRKx3Xr zZ~{kBqD70AM3EF_S<=0-9r@ahD|Vchr1FqkmEY_Ft&+s5TZNBxs&O_??>=Xrwf6e2|M&m?pGRsL zcJAMbEkA_GB6QN>PyXaf^bHR4v!|Zs@06wVp4@MxgDDpIVd(jCLvP_Y3F~t)9I|S zq1VHR`Po^#b@S_QOzwbz`Im#^UIsxag=JZ|u1l7t#8HIZ%`!mF%%@3$ZQE<0vnMIO z9#<{MQ>*z!@3!+rY}iz8Y~r%n&v?^$*4X3xtl~Nahu1n8NGY(a_X6XM8^MC_Q)|>1 z9vx!->QzpiKFjPr-dMtMUCv)T$C-1d@wDQ~;#Cgc zdWiY@GP}ozh>U^7RiaMFD=)u+GRNZL63ff0Xsv0tLlzfny!*~s?!4U0+r0-b2xzqzQ6jX96gDG4ft$CDaP@!t8P=|Sr27wX zVdg5*7tAfpbITn!bMWAPOs9!J^WcLI@#7yq!QHpTcqNzorX=Xinrk>izB&+p$#O9_k=rx+aAN2R-12q z=X=y!9bP^9Ca2DxCQcQ9`*&YuVR4C8tHt-e|Ief<<@Gn;q~5G!7i@m;lbt;@`Vq5>bG-8UE4+E)7|pQF_kQqwu3nvGX=N2{3_+>N zJsZay@U0~STg!PK-^7Dm>Kzdbu+qt4+p6s;F}pSv~d!_x<<(mbOuZ5=s^n3ofT$I?Cn42N^3C@ZEsfw=ZG~ zNx4wQGBE;yG%BCtMq`Y#HiqdA?;i2;L4`2}tx`%sHFu}*0sK8_R^ z72~@a*YPQr$|$9CK&CBp3Pr!j%EAnRV=*!^z^Qi|NXx+wN__jf-(h^LkB2|{Ak9Xb zmtJ{>`)<3H(ZLF(Vv#prd6Dmb=bzcRV+Vu%0mt5Yn@*H5JUT|9P(TPtnk86L;`@GA z8{D-a(h8$;pre#RigiYK4M5OiFxDHXtaUo-0_XhtN{lkyBB}KoVVWc?FD>)+uYa9G zhi>Ba*N+kuEuQ_^Qv`(~3yaJA?(aRqU;M>ik*OHtI&`8CtrUK#%=Xbq;wVLlE6l81 zB}oNIX0RO#M2^HZb}8yPk{Dy~3k8B=uz`i_>EpVKuK?3!(}e)rvauY8t%Pcna&>-@du}~|?Rw}`;#fAm z=MX0`zT400$|}3|9OSv@p5@%}XL$UPPchP8;o0Y3Axga=OKH*PRh-8%9Cif>#4V z+Q___I%$@%y0Xlb%QMVeILFG$3iU>VC=4+eia`+G5NpshD}&LFu5LRx}KyW*BpyYMR-DP)*=JgmLyUN zNxq4)Bus3Xluu*G>+q_4!N*WY-ZLNTBdM!fmfTTD!DNx+q|1Y=Vo& zFY?$YKF%%sck#kAKka5+G+HOu#dF4h?-wwgm~y3`v(G;XX-farNsiCYl44j{U1Hzf zoeUg1!QcPm*LdjedzimE&ztYg@Ws!564~u&nuB7|&8%Fj!SBj-f6Ikwo6g=%#Hj8y zu#I5%wjC_|^eN6AKh78a^xqHl@$U zXD_@=5coKrhf<0}Nzf@qM{E9|(gJNVB&I8$==#DM)h*7DYZ}&Ex2I7CykY^FWpp~7 zoQ;=~OoBioOxNpDTNvrFb#f<$Cv;~3Va`NP5frLP31USzU=2cCQj+qLkdAc-{smozc!9pA|C{G2^>-2zFXuxv>bhX^Ui zvfTdASR(JhDQvWo7$Gqd+F^|A7s-?W=^}+DRT3%6sI1#+-tx#&iOL*SRysJIi|Z&( z9ebV0k$w*BzYWjz@-31O6s!HjS;W452XTEL-D`BD6*|k;?LY{=`0zdSRSk|KkVcaz z7tafbqYPhI=qw^A770y))+w%Kk+cPY@1lgJ-MNhRTxg|8&qZ91EEVgLocy`!62mrH zWC)oTw`nUwr2?=KCU1!@WZo(~QW7C;JU8I*j;%a?|4n#~!YrTU%;}R1-+L!W8(#{d zUXd|*v9AQAC1`c(6w7^-vj#_h@HK)v?q{_!NK~&u*n~oW$zuNe@lSH(%nWBQuOh7h zKL5G9nH*O*GKRFbN$h?m14ic^RuKuhTTCd0jk%5{>{>SYmsvncli!Oo+0*wMEUhr6 zSDVqBP6nhvx<1;p7%UHwEOiiH{(snZ-@WKhJj9umvv{J2B`o6ip*IBrv1Ws3$kTG_ zH)2;Oe+4+8KWIGuezKAGbFsKi^lC(IFvmCIg9(%Oh&M*$gU>`DLSB3IC;aFqzo1y` zM`Si}m?1TIuFcTU5XEAV)mn{}r6rPDgG(1KGI#X~SOpp@i#S5#TZ$xsYX1nGPC}y| zF*&e5EI8Yb!qXz-l;>ww~c>DOvG@Gkvli>S4uIn>~dF?mC~+X04@b&ZO7tbxxi< zNwZn!tz$>=e4Ev!7M|--@B#*gC-6NF%kwbH3xrt*ZEK|Ga_;ImI*phpOxeG8Cxj`( z6_5TRdBKcXe{XaFvM_6$X!pAZt-E#9LX##bwiOV!I>b&Nu5FRT5wQ`JidCxRKJLE% zLB9X9r&(UA@wv}^j>EU!!Ruf73Sa(*Z)4dmfA-iPa4wDc+K<0WzuQj~&9iI&Zrti1 z#?qLefF9Y$|NM7PV!IB%cX%JE*36u_%-G&Z{_&rm<6l4i8Or*fXUwCa4#v~X^ zfD@7?Y0j#587W6j%38cvIEDPy+ zM5#h+8&erzIqD#tfRf|UtT(uL{xm^li0SEB?)lI?xeO%B@GOZ+k~I*jO%6zV?k+v; zy4E>cyb&1pn7oZTWYe9~8^>ku=XD=)!{eI&m!`S4-L-6l3rQTay1YzKEn!&_$FZ<% z3#}Acrf99yC=?2$aY&=KLSJ8%B+f|FZc`ibu6uKHbKn{(8SO}2o_FhV7IXh`UX9h*L!HfVEg$P@+ zxU|4ee)3~>Y}iE-)UhL0#uS<`vHl*p(Fln#0_wKBR-H2+MrdgA zT;C;0TuOn9R+=P=aHM2tV1TAlwAv9D&z~hI50b_aE32#2M2v9C%(hoKar_+$j*DF! zC(U5`!bRSG{Y^@)!^p@WyY@UlmgQDzu2UdMGJM}>`qCv97nX5d58HJK%0+C)Vz{r$ zo3Fmi<*SQWN^}1FY34ZhX@;2E?N~@zt5*sZ7cI>;Aa=o9$yM4PPJl2BkqCky zASe`wvk)o3=!`5*G2MC6SMh1Lo2ax2Cd9Ezs8o|>`J9QukWRDB%*+f{;86A*%)%1E z(0I31_4*v^b$k0|9<@^DP9b^OK>qz{)nxzy)6LRAiZ=PR>h3|-K7VebqkepA5p5-fNRe@!zhIjn%j0yarP_UV0?TlQwMM2=xQA;1wpZh zBP1$LXs*_n3)_T=O&Fz|JA0nH@4AUC58lPEQVa0w$3}TWZq2!Vd~*mPurkBc*eJyl z@9^d`KWE?Xe;PA7%DI^tqy>(&$z(>DMs#nuH{v%OH^A|Y_&`Enu!O|59ZJQ3!NDq{ z!vhRdeP*w&f-7e4 z{X^q8c7Urg7M7l2$JBPl$3~glGKMg1N=_dtUczx*vP4lX_me42v(;j9a)QZ;t+>Ge zm**BSO4DC1abV{ZNd}|+6{L`;B*OQ6Qd=M#L6!>22npG(TsnX~)LrR0?x+EE#eD^%}J@Q{LFzArR zA&w=9T82&<^7>nEGPQjNlcOVi_5b@1Jo?E;D6}H9bg+a&SvahS4%4+ohKDnnEy4M- z7r6D%9XJICV=qz~EwX=n7iZ31~PEbZWV4oYdVETh$GgI2U!Ercs5S}tZ`8E5A%RF+_M|8_5Pvk@r2 ze{9^~DvYqYpUWU+Zv$XR)ke9uqecz}iD1t^mdClIGOsCJwpVW&gMFS38fO;v(&o8uev{q(Rkr@wpK)R7 z5*?xO{32nL;MtHn;oN|6zm2$YRd2)x5>g0kVPOj!$Fgy3gX<};Zg3oXFE~U zpf85469t}q@)>LrqSY0SAAg5EyZ16NF~vLYyh}T5^T|gZ=EC`lIKco>1_ejphY5$b zjiY5svsK3{_}ESr9fdTqh%8EOQ!?}b03ZNKL_t)jR0F0@yv?)E{*3M0w^0aezVrPj z(3zo7sNfgeoB`gH`dVkHdJA$6iu2=XnyxLdwr!JkJE8R!@cei4^ltAQz2C{f4x0dW zlB8Ujnc;^&{2?#Bbc8qFe2t*!@zRl_c&^XP^bDW>;+OdJ7rsEMGOB|C2X8wFO3+R+ zA|0X-B#ky?@WB1|P%TJw+`&k*3F!3RCjdH^(ul6BP)}c-nVjWwizSlSFdRgLwKFWt z&EmTji*pT1rEvyr7_crWVx33so#fpkNAMF(l1Z9zOkaPM`G$vJg zbCH@5_?CynMq=~!v6sQ=XZ!9Qj1G^m(2%S)LngLvMd>o6ic-*VeRP&@7&8;0vXmt05OyRowXkeM*Fg~}dSE!;n28NaL}RXHi8uem^cs>} zr)%c*2rL1;rUYWs3)i1XDKSD2MG>~lH+%j4{Rq`!xwVRAS!~<79mjE4Sy>^D+Bo(w zK`Oy!4NbB->h6XCvMF+VIpj)VFa`spm zK_iyT*FzRpm*`{=3zxxyVW_{4;l3&*5hFg6)giX--pO}Q&11Ch$H_`X2X8mV!v{~kHJfmmP6 z1d?@w_V+)>dfM~)73$_!P}^rlVk`?K6;Yb7uvDkjj=}UXJhTPRD-b1@iH$@XgUVu( zG^G=FkkZ0-Yz&e(j_Ku0pm$Jxa>k}yT; zoI%|=wTsJWZoc&vgpe%NmT`TbDD5ydGQfqir-{QBUTFZgZHVGJwscWpi?VMMsf2de zreqiJEDvKj7$uq9Ho=#^_$7jZN4>GkAAI_=luK3q=^wwr+b2)rbld;RZo6oVM(BJ& zl_sy|7hRT4h+MO)x`jU*86gm4nE@m7!W08K$<`EXDBZOZ%K?c& zc@9}-&=@eek7>>n%WgaD1f9h=js)RQ_FWvyL258rilq{4kuuO! z0b2$JnGRQJwdxpYm>AAe$0yI7U}V4{*08wRU}Enbv}>yfqexV4F?M;O#?PL5j``(? zh1!d3-_pm&KYS~%zWX)|H%>_c`^5$D_(+Mq* zf+$PTmL$zI(y@rL1V^X%(gAHqQ-$S7+`vU;I`^w4%L_b}!r0aZw)nk_@q7J`H{KIA zOC)+5ro6@UwfCcSAdtJu2r{j3U5_kIke1--r=Q}L7oQ^xTeyzH*p?AW#Uk~3jkwdM z)$S0-8I@`UZE|nzR-=h@B&n^@4rJ|^nb{Q_r$97&6;sj#cA1Vz&`v(r!Z2_7ohAvU zd!Ds~x9K{5Nc|pph|wCPS+l1zT4B&g+S|$_=lkFKHV@o=D`Pk9BVAoaNDDHJXGvl! z!-_J>p2v{mbLK1mo`Z)DVhs+nba5^xVKag66e$W=ZnU{Pzd~IY5~)zaN=VWS*K*OCZkF#l{)lG1nN?4!1Axxawv=LR6QKds)x+o7^SnSd zu@q8EOr|le2VujLLw-vxbMJ>q zu6tN)p6CC0gt`8XsC&r%?eCUu#Kw3(UE6Op#I=jrX69ydTo2IyOJDi^k!D$LTV*m* zl@cczjs@+|u(-I2>$a%XS8*H{OA6wsLy{zfTH|>hzVs>hMN(yGcbX_%EXTq1eHx7h zm(Rb+#P}q4{`tSbBB9f4;9Cy1aIh_hPCF!tQ*75JQ<{2Xh2fzw_Uzlsh4ZJdq`|fX zjj)4LsE{Tp7(>`@P$_w=t}as@9tD*Vwmay8hh^F5OtG-AMAm3i@LXD*RocxaS&~s( zUZGgXZOo!5!b0G=A8t>w2K%g>}-+aY-H#K8&XNz9s z{`CgSu^Ar8t*}bv0vD$*;J6l^6XUr8zZl@UE=9k9GC-OU2myMX!4{~z;v7H=T+6K6 z%WcT98I&WQ;+vEk_P6SP|?Dr}R*Ar_i;v(C^+Km86QT61M_ft8hI zihhA8Y@$(E(hx;0ZomCjN={571i_U#X0KkRzg#AcLVVjGEtk=;Ej;vzPx8c*N7%c6 zKez0iB#aiZJO|rRB(Wh?3fFQF0(>dSEQxgOd;v8c+C&(gr&M(&^R9qdiqUza5uIwZ zazHxN>MLAcTt%lbsn$4-gCoG`7@dW@b@Wx1uU^C-7^Tx{peT}NR(CuI9LJ;CZjq!( z*C#p8zWRQVOl7Rp>NrwjyAH;vE*q>d+J0X!yjfPU{_ozstf!`Y{}7u|G3%Retxdi; z?sNz|kAm-W;J|*yhN}z>4Ur}hMrf4ESXo)78u(0Zn__uom4Euiw~!{E4~OqK%u`36 zrZ`+7>~z?%ZIU>(7%W$)FCJ&#!QK4fAO11h#<%jL=YGtSPdxt*~uLrxP-|Wt_Q%dG0uT zn1efZv$DF#>goyw&%+%aWXtF{SqiI-I;CQXG|6yXpDalcA}_$Tgv1gcjbYoiakh*N zqqB^1F<^8wodr`HYTK<_97=I7?t$R$Rw(XHv7*7FvcX1VF0C!X4R;&!E%e;LMUI9W- z=WlQwr%MYo>jd&(_CRYcAM?Kz1iUI`_B_i--2i-$tdb3K#3EL6+zo6m)uF z2tC3j-R4!@B^@t1tS!Cg8{VN`#;ADDKCRp+g54ixZ0;2=OUrvY+L(1=-+d*n1i|`D zHiL9FkP)eRgcOujV`cI);QCVpJkR#%c z;IM?$r6!(g*_mk3cuK7q^atUxb_wOrJe^}{t#=t^u@2CetAx!up*2^n!g`O+a+LPn zK_hHf5yWti2#uORr7sihqNQ^pND(mtw*Zt?uTbX5E|+!3Xbzo@*P-RA6YENlZUn{>G0N%h zZ#Ov_kjk>lgHku#H*MhPP?CmWR0=+u@a=T&GDoA>dy!x>U^eisIvwKl4?_@MSlGp# z)2rC&BQ<5cBW1NKwcW8{)*+9*VyIi5a0QrPX+^^*0i7RDgG4Py-w1_6L%B!3P$jU7 zEb>r*YgXfWjd237{Igt_YHry7R9b`m*p+A*M38_3u-1~*fwNetI;rs1Guq`U%OsN} zs^)XaQVFrrQ-*~$k0G}FVdY=<{N2;7{WYA>r~7a|^Nt+Io&VZKGa>l(yOtex6K=Srze(C(hemFFwwF3kfZE z(`IU!GJA5e^KRxy97nQO@HgtBD!e?i<%`=mxvU37OpppkdHJk9-Fk9C_3sjo>26X0 z!zdWQf!sq}&B6cR?H|~*lapHJAZg1$vX(IiWC#ftLRdkAQT?m-9KsJ5Os(h<`TkC4 zxM*tMF0c59+&X6~k1TN>TyhN6koknGYX@(4)0L%}yqjh81H{hAlB3lq;y))5(bnLd z8fOr>XWFmtee|W($=yFC+daH{l6kHjX$5|S{Y1{Gp(@fuYi(aV*2ED=!ztu(@4U{x zv^maqzLVWzV^qnMw@o*RPFG@t5i+D%;~g;}=KBcHOKTcd$nj2N@_jgY?HaH>5QBFy zXd%|I4*RCpixd3IfQ@^PB1y!A-c5Nb8KwSA(KeWS7%pLI1J~|8W5cvvo1EK;{(^BH zeGgsH8dBVwH1layPXA7jyba}4Yue_4#o|F$h6rWI*qoK`d*^x`E(i%a=XafD=(-o- zvSdVG_IR9*Ic%2df-Xk^%L;;h?;raW=I6^j)2D%(vq3i^ZlWvykwv&#OTXylv*&4%v+MW0)A_m>#nx;T7aeiHK-7OjN)>; zZt)8}ZzT}6n{bhMZxRHqSviE}CKv2GwSHQZ+{jQ}X-YSN;KdEL4<#VF>fob4j)-BgR1bV{n>4vPi?5ai4xXH zBO2rO8{QAw?t;D$1$d`SMSJi`v!(XWat>{fm8Fq=mZpxKr=RHS^mZs6;)!ree0mZ`X3Ub8%%oggfF4L?#H`jT z1}$B*1>qS9n;D!E5>kj5BN!GSgC&f#VyUfzU!angOWBigK(i?zj%1c$iDCxTc`_9u zWthJB7gCV%8< z=A&U%0pX3T_&Xw9piOaC5R6!O7h_DMEb4HQbvvigm94&4WTb7~iJ4j(>g6Py6hLAE zJ7}a#{w=NRn%TQrWiZQCHFLoIvv%AaL|^ybQH$s9zoWDzdARz*D3NdyUiZtnFj$|~ zkOzwzu|R#zQG zp3tZn7rts6#Tv8gAxAdl8OgrVCw z%+tljQ2*oNYPpogZM)@%T`$7JhWj^i~75B>Cw-W_i_FV;k^Bn-jp(vo{TPC<#x5>ex*93&S9*v6H#-r;x6T-tAUxz+Ql)0QQXb zJ559*ETn89cF#i<%mD}|j4GF7j1a^7pz@H0A}LS6v?jEP5wZ&UdD=h>8i=6YKGO|9 z1C4>u4mz=1vHmN$@D~xfuM&LbadE~0qvo+F$+y=51WCU^CcuDSX(mZ=C6UTi->X#f zZOvn8!zA-V*Iw=`n;Qo&51A41f6tNSQySas(Vb0ps|DDXgE+JeUSRrI517U;pRd@Q zcmZjgZjf(A%(Llf{|ztc!5Cfrf=}>{puWz<(ELovJAxs5|&00mWU!{ zl+hv1zQFyW5&vzc0A4~%B{GV7=yvQ#3X_sugw>j0Uw1dF{>!saoGDU)NU{4j=aHMI zW3G;&a!-`YxQ{E}?bD7I{mLHBrF8+q)(5fIzK*ws$M&ds#Owo7hOc05d4Kk?Gx#7Z z(piGb)yKgIycQdlGA_O;ZNrtOjG$Vq{^5#By=nC7gZSN%i-p zkCBdd`g0*K8c2Z0Q;<7EdQqPt!%4{*L0>9swGuUaz0GI;)iKkT$3O}`iSwvJJ7cg&)%W$o>|)Fa*mBO-F`;#SU++=pde`n~$?=et_c+G$&J%YDPTYlEZwd*g+g zn#x!lwp13(A&KIje}6URF4|oucs6eMHiGz2Nk}bq4Vsk(_7PL_3>37k`3;!|OXg(O z9S9omNJ?)y-?(bRw@N-9DaR~2&sIuzrTo<~%pCqM7cayBU>-T501ilICG+2m-Mh0P zZ&)@@OjgGr(Z_AhBmg*9MQ5oMeGTKDz5Sw=crew{D7_i-+Hd;`RVVGI3Z-+4m_(sm zm@qo`7oEHQn=QHxZS>eo=43^sqf7Mrj=t&Bq5b*O*hid8i>@+4NcN2Oj}sc`h2sJJ zh0d$GW;&B7hH@~N@>VPnX^?fqo1``3;Qd^Saah8(iB=e+$pz z=KU%i1#!h{Qtd(zty=vwW@vPq8y`=&+>J)bM1_fZ)gEKOnNuNFl%ZmN02)U$Azx2np_=-FdPy+0_FJN9jg+T}zw~aE z`$KEuNjIvbkAS^{WWWYOFcjZ(@^*7E)wr-rs^syA{3)(z?_*_q!z0_aSX*ecTz%JATvjfUtWF_*pZ{a~m{D=v zKc!(Vuev126*VR@GzDimsIV?ufEOmhSPMQO2_zEHp=uV71hoK|T?uoTRs$!O5U#Q|X-+wd0ZR_@ zQf^-G77NCvfR5>`*ovfLVlCtR?vq4bg>Z!M8j!Ck<{2Ne>KN*X%XGb#(%zHTY6I%!$ENr^!!+J^Z@iAXa=KeS ze4<-D3BlqX0g@8N;#KGA4&^?t&R+>X5RTt){7V^HTed$MK-+{wb05VxUKm+YAW&KCNKX zeqG4qIJ5pn==(xM?0LFV+sv{iLLwBJTEeZ`JpA@Ryw9fpjPxCo|1PWGar_$dVQt)^ zMGi~6wz>3HWBIm4#wsg=`ox9X_mvWpjg1?+U7gz!?cc2dM*u4oa+v!>KJ`z)U^fpE z-?pPgCNq|}k_VXzvbbmSPb2XmBdne#LE>=##8@}cUr}A@(?-qOC5ng?bV{%Q!WtDd z!gwOShg|2c8esFz{L9(~`6WC=*oBsW4b)o%wdXU6uu&X5s%ejCb6{UFTfH}hr#>>aHrw@mgEmaqu6 zWtZkK%D-sI1i}L~ypD6yq;6%R3}cPDA-(|xa@FWWL|)uL-p)BuFats$=}DOgO23pB z5t;=mK%je)>^o}dz)?T+Hosx)!_%Tzj4~p9?AJwK1EGz#^BM4TTo}|I5}`@w_jKxv z#=VT@z8=BKZ&7C>e=sQgkiTUjR&~jID6CNzG<9K}sAi*!|B=1RFt|9ker%`yi%?q( zQCNURpHA0Yp$8N)H-m8X!~o({s>UGH1E4{3TP{n0{<4F2kl4-Oj8Mq<-&~;5Xv6201}^0-sUPEwse_}`{$9F@INg; z^YjbX4^lRr;4e+cAS!WfH1nKMte#IBTS+n^ytJ2XNcN^z^yr{uLwH!r@>F@Q!Zi>J z505;WBx7ciB*BCIFvRBj`*hvgZxzW72LN3gKB*@Xhe&5glu+oFB!x3hND+f%E+1FR z`YJ7KuB-O zA+!=mt@j*H`wt+7*(@l2HK#dPVrfs3_6_6ec*GA-5D5OM1-5nMMd|)a@y&d?)_|Y= z=dp{qynJFB`5z?F#93`PJx=2g?vk_LfEfWs8<5{wj3I6gtDM*=`U#=XaT`Cy$qH!C4*tcoMM)Fk@>Ci1_(KD8u2?$fh?T3yg1;z z@kwM`FGk)oDqAWJ34x*CKOvlzS9eRQPrG4asnDJG3aQ!Vs({XrlT={F%s#K@9r}fN zoWfPnn*EQOfrCSO!hiy@3XwoOR3zY1U`(?hY%+lPZ>&i`U7euTUrEfag={whnvvZB z?uet?ui1Zd%R-!>6X$3TI#FCTPjr7V?hwX2UQ)#AN)_S_-*RQSSpBaXzj$-Yo+Y8dq8IkVg3@bcA4ss*#O2V-@k~ScP9q7BqP$ zwe!Kf(jpcP*R7-s(#!tI;rXWylZLeqQj#ro721((2&!#lEof!nPWo{gxXppYRE85s)(CDpu@3#D>S zp0>*2(NW+;$1DFpjHc)w+HYdl4SVJo!~tK>_VyrR-n%{bn3_QfDU+q;h*jFs@aQS>nhhkC%sTO6=B)pZbmO?;DgqI@&}}ba zF=CLzCaBD*wwb8?>9nEgrCkTq;F-$oM?N4aB{b%Ce9;bxg%R@8FTK3Ctgv7C@Ay$b zQcR1H|98NmW#p+wH{0_{jre)6r`2;GXy4K2?D;U6Nm#6h|KC8ShxY4dN<%c!-u}w@ z?%~zW=@Rcyc2*0I*Cj6`;*<+OU(O+~XKw$x3qm1j4)a3$&6ZmBsrWK!J9`DSX40mH z6_2zA#soNwXn~FDl$5KNhd+xBIk~5F=F`TC`YTFqZN)mB5&VmfHMOKvH)uh;rIZu; z<=_<@Rz(dJ7AyAg^RoeSQRi|%V@|A=6k3pKDY_B^}iH!D1)U8yL$hUY= z)Ta+90FgGJR+*M-cij_7KT))O%I%IHHBuLTwSeWsU9YLDOgI~NS1Y(GT4b6AnW7d8 zMky(2PVIfIBf88UlMHg(KgYsu)%N_3UalsNIr_mlRHG>gumQNXxAUlup=B4mK==gEG2UU;hT zeNq8dWES)87t~7p34Q7lcc6h-lLnaUmWA8Cw9K{4YS{ zLc2x3;d$Q9LA(v;l$R7h07`^ip+L4>{G4%AQ$Lm#Uy;@o&(pT!X=>Upiv^$Tjz+~I zlXNHtMP-V>T!JVu?*Q*8Ex|ey8i5L_UDj&(43Eu(Uhl{m4QxUg>6be6tZ|eQ6K(1G zFGD%6TNm~_{?L&dUZGs$nFSRpqC&K3AUO8?(_KC20gdwi>jrpYyD1oy!@CpLl#umb zyK`nPZd1)?B|Y)Ak@(NHV8pJ{DVZE<4_H`qi#OOZJsxQ7$swt-U}k{$eqIo%GwgDR z@FQ(UbT}R5I1M9K*CP(^zs)lZeKU{`@e$!JKK%$oGB3*yMm?~;q=kwOAb=n%JC6sQ zl|yG|e&ydm)2WH5&dyYbPjC_E?Td98OJr2k6>iQ8Tk?30$;m91eG4R%$?F>vLQ`#H z>$$4Z@}gFCexw(X+-?Eghrlr_YE%D7Lf*=4>edea-#soO-wIEQ?fC^tp4T>ZDfj1+ z;*vQ!LiZErL^}7tY?Mj8-mhG1QrWm}KEf<8Urh0I+q9ZKdQ|JQVWEpExla=*&WQiEXM>US@OgQJm_zBCY&B-o&lp2^)1+-a0gd_5euP%;=R(+MMx~Mnh*zNMY7GX z#G@VYaXzbWX66f5w($HjgZpKq^Q^us*qxHHm)+3e<8awIui?;qbE$cHGH) zasdwT-O5-zN4cFSL7K`QFnXb};jSA3UDMZ)xANe!z%L?&aTCtc>+qc~EU`Nsiwh>$ z=KJ1KFN59zVNFw9>*v@Y%x{YaZFj_ED@ot86+J#3xJMITd+=qU#PDAukh~1`fI$Hq zusfJL+$W8-c8F#ztB?LV+>Y1$`p+XYhfX^fvFTG&HM9bCM7J}69s=7NUiUG%I9mt! z?e|Ll#MBzg&cs)j*3=U+`a4r?IR{clKNu=&y{o;cA7N;f2GWr@`Ip;)+bO!4-~Y=Fn7WGwrP&+V~F-!ztKGQyMp zHSPz`O&SyP;ecws1>zF0X-#D7(qCC6o6TpZ0_(@ zCSZn269>+a!zsU)pb-0 zSUiIAaGuyL(6zFa0|k`$-Y=RV%40F0n4fKjwLYPM&HRsrc`9Z^~|)Lu)sK3I>+c=T;qN7@I949!0A? zJ#feVbZc^ugXU8+RwS&g0+_t_N_)%aseN}ath7(&&uS#{#VoC*N(~D5Hs@OyQ+`J( zw>C_PuLFr4nr{`b6~nuOU;8Br{1f9#N~9oGdIR%lg{iZ?%nr9Oo%2x12xYI@CmySF z;*ZKtOELUqwWL(ANaYlP$Sf9-%cI0r9X}@KrVNSZ%qtVKy4~dBN6B8Pe~;2|)XWmp zl$Ezf9LQnHuS++(B-+qP2F3iDy|Vb)`bT6Mq;hwn+VADWE|!f0rY5)ls$Ag@n&qjQ z7hOSl>oZYLQRlhMQ*iL{fh~o~A2f<}w&V6H$G`Ppx12n`zX}WiI@Hz{GBE)JlH$G$ zV&ff?Bo%FD<<&eSL)DdpVh3;jqJ54QnfigurTOK{ zm)$f&FNa9r*b%A+76XY9j3}J!8R5Wj;JZQCLNxzCh|o3L={k#ejnY>4HeJrsj?jK* zHol8(R$rL%X(Bx=WeVc=HP6r2rV!RTms^`aD-+vn8L%9p=aVkv4R*?P(76^cL4>rGvhZ>^ zjC#fc|8z5Bbg+ICR{XV>FVjhkqD9O@3H~P1nMB4Z4FLWHGa^JtKvt7l*$Gqt(d1}` z`9(uy7k9Y=Zr6{3FuD*8D_FkF;hpi zLlK$s9TV-px$>Z6xMfP_GLWmi-gZH%I3bAqe=&F1i;9=(J%yg6V}dpMB90@^8ngQm zV}j&kG@>)N#!nzvjT~HkUWpE~)U?(9?QK|5CQ2rZvRbUCPeK^ql>?^TQ~|KEFOpL^;p_p`5s;B6uxjch;>#;< zCV{^{b`(HzXT6?}1wdd<@xB(N34-)~5b`s_aa|~`o_od-17FjLzo+|N9qvRrjPk2~o=#}i>;8A*r`klSeUfHQYy6yU2&M9RXW`-49gX*8NrQ)+=WiRHkslN#hQoDmo&0M_O(*yvIkLP==Ys~hdFa7O$*Y_Hy(4IQ|5P_*^z^a@o#ET; z^TT>yX(ejhHTzo`LlNDL7|F44}QJug~+@Hen#f*wswZRPq0lg3l~R^h0xw? z5KfJ!O%Z`V;y?+9+0l{|*!T09IQQ1fIiI%o!1(V5$CEV@V?#sy4rLQ}lg^=;;z=La ziIkt3+9o6Q<@}dzeSRNWs-8$%VMcO2_Xef69&~O;`w7lcP@b4{pXP~yG;5fp_j?g7F%-{ zE|f|&@R5;A%Q@hrM(fWUy&m&Ima2_tY}@WQCj=g#&K8v{*;7-~$z?o7mgZ16|9^o+p-_td3wEtRa|v1;u(@& zLFagsiwd1Pg6v@@X1vaZ%pUvnpPkQ}T)(aPAX_w|+wCoi@??&byu@qh`~LQ6jo4qL zeAk3E!|sl7yPu;_t=r3nw>{X+*w`ACv4kN`&ENEYIX@U}N|-Gr3;pGtIW8+Z6_!%f z^T*!k3%^#;HIEshR}8zJfr)#VPe;rQ(nf-;>?oQ9Cc+--(_~@nurX|c(bvCfK{6`* z`i3*ChKlZmGEorCi|+9q5?ORmir(I&_k)ToyLlG(k3!byp^;P@GRm=MymEDTBRH?q zxR`{MOw@H(+?gc%_j8?zNhuH6ahtveg4w@chfnv$*cSGR2?`y(9OI#+E??F_l41s zO+}INzlKTjCUbw6T@Q^J>4SEufJ!nppI?-is3W>DhQdFgkT!;tN>dAJqgxX^Nn03V z(4_gH%Z1h2xJnu%OsBOB*MxzW17S=LkoXc7Zl1YDE0?RIDaTjg=p z@gUIk=J%J()6uu3j#gYnnQe5^hTS=U17`nCYdO1d7CfD$43_2Qc)s4LFiju1{P`QO zzl$YvCa9IJ9K){uJexsW(dHg*bdmjo&tC{H_KVVT4$s)?F7jJrE`e$#r-Y1j;UmFO)_f^{+Vay{H6%{Skm@%D!C%XH@m&;L36?#?FdIRd6m*R1W^bs^#!GL1ee?U9s-2l2U(0s!GWUZ zi4Db7tl2{?IIh8B0!Wj}RYof|(Zm9BstE`{5xh!g7xFJNB4;xB7?r7u6j{S5bIOct9dY>S`(JU9d-_=e&cUs+g=x& zX%yg68AKD4$9tZoC-!G<PGUnnuV8&ODy`3@GOtKQJB|A1(!zrw+nw z`TO3*NbpJ2V@))L)S3d(kK=#l1$5uAtNvP(X}NuMsBp_ht8P! z+Va^yPFK8%4%+V^?EUK-{@00jn!xEye4r8{`S-XkJ27f-?PzD%(1{5N994D*<_+FR5$HkGeNx7?In=3;@q!)7g8oydA!z zSJyI33Al(xJ4RSRJ)huhA3u%b!1xS7%nBP9W5w772k4t1k>nytsuDG*^X3(_QzJtD3HzYgfI;ch}ze9Sz zK0ns^fobi0{Aj+A&-IwBO>18W>{a&Kr_fHyPRPbmLt7-#fmukn8zVCAZF`!reuT4p z2_0m0w)-|enwO|hz#?I*=;tIW%ULDQD)~!x>(6{??^&vJVK;>T&*Qj{9HkxQ=U4a? z;q@r?a0OWg1zc$-)r@@cy0PsLt5c_mfOU_n2$6AO2(e>|Z(%UCE zQ}>tBW~4+kt+wJXf9mVp)44=150Mk7M@J*}A%6NCv#K>Lx49qla2@+YueoQul!cw( ztKdx`lih9|Zj;*kEB_x%rTbhvj^GtBQ!%ICA8#jHVtK%?>tpWH0<+b9of== z#6**D@ZEgQiuow-fjK+Dt%pD&T^3{eV;|G?n5|FNQJR#MA>w~7F)dv!aRjltsvvlw zR~6au(Rduv;2W4f4&!zh076ff@ha~J;=ubMIscq{krXm^Xs(D_eC;wcIlxcqDp8{$ zw4+a!NP&tc7aRfCytDleoDsiozzWN}J?%U(+H#ZDIlaR;Dk?8muZZL0Bs-I%<-NZJ zmFa46jNxJljD+1du3KYzqMO&&Y9bV-phF?Y;UcBYXThOyeaO;jsaYYV#mF5Sr2uZ=0{HWQWG> zWO3!^Wkc2VXpJP0N6=rWKi50@#FfMSmWG7#lE3|V?n4-7g6&^-{5UCvw*7DkrrBdi z$8{-tF*VQ2z2#^idiy~Y_dKO#7LC5{-ae7sdHVw~A>_>El_rC`-*nZr!upU_29e!jWfx0g zh#i8`?|2Q>?CcH0?uQAS%KJV3rv)%9gi!1YnFD|mQ`!_J_+q07PDpn07%=E{5>db5 zZ3AjJwjV*pDDtz4NP%{$Jp^~m;0;h!vz@=XP~HLq!*k$#r1r|X;}v%3%# zjghQGa`De*r#RZnrmLc!R>xP}?8oJW(4EAp^bQba)75Jto_kBmk^2e!Vb4KHU4QDd zskI})y7^Du18J19I$8)h!)^3j`jS3K*g&Sk9xxOU52Y6E8F4SYQqMoZ1ieNfbf8xO zpC}>#O0V{Qak1fUOi?$B(yJKJEPyO(XG^Kt$QcNKH^R(xr*35mOHtSx5J?jDW6`F? zIjxwJ#cGC&G?gQQC3q_`WgOwDyKYRHoExGg-8BLD$k4*OMGte<%cr7gqafLE6c1VX zD97hD_wiQGuyayVixWi1ugU0f_8&erNq1qx&k@RKc#|Ze6CvtWRQv6-)Nw&jub7zO zP)%m}8Fo5|=w)B$Foa}Fh}iZj*b5--C}iuP;ju1O3*>uhf@&eg2FUm2GrJI&1cKf(%lk( zz>h4jdMQ~_uq1h5K_$lIZa-O@-wEnkAgADpiw%Xm>3!*&;=SMgd|hqfyB2eh|Q6+DC@Nw}jZt`R*Mbp&O)0GlFPBDd|fWV-rGz+-f zmWa`@(>zHG{yp@(+)5x5BPI;lj#8F&f=XtN(7^O7{}hpD+P4Z;&y%k(3`<_!y%+iAtW>JqZ{UC!NdT z^|Q0`-PeMV6*Etkdd*bwOX1VZxS!ZfLW5or51n1ZQa3Kf%Mty%3IDe+`vB3D)Sx9R3Pid*gSU=~2FY?nwN<%-Ll%q$rvd(+Ei4nnpsbn~>XjpcB+pH!6a>8RXBd`qP(p%H(Ku$4 z(EVk};6nQ|kPLTCTd~JoQnW6QR<>(f^jmrQEd2}+m~H569mP;H^ZgCr1(0(5ja^vb zy?myOCsVO-P~&?gzAnfXQ;i0yK$c@o-gy5(Qt0Y|?fA~m1?dl7mq~o$#HYa4bjIJo z>i#6Ljh{J6!*m2%EBmuTYzs&p?A*JL3Sr^eGWqLP?cM}V8w~>{sbcj7=(+rJXDsY* z{$-$7wDu?XzG?}+p}v3qO2rf1ViE9Xwwh;2I*WTTZwq`?qxBrFv=}Je6g4gx|Bp^K< zSI^6zUjd{Fqrz76v$3}Kan=PXL8(Gx$aiqRDi@}spw9^=w(fd_^eg2X(CFokZ;7)Z z$#uMsaFw?U+I784#`gjF{a73#N~_Rio|lb93SU)3DKQ4Q{Y#a*yW_oF#3H zYSnA`1iXYkJ+&P!-f*~QqwxJnF0dua(?(qMUGv#?Q*0L6@o^lCfYTAGXN7nC{x{3z(Srnm~pW?52WnR&WG>`K$UU!#kyJxz# z8m1aOUfgDF_YGw~wdx&S_C1SM0FrnAZ@*Pu@F3tC3SatKgycZ_k{W^!abvR6Y9Llhlk8qK!do;3voMr zhJ>H|jZZf&ry7f3O_b!8HI%+E%A2%UL^p+Lg&j}Bn56Cj%Qm3@QHjlzP?(IOh4@e0r6$@23@m9j74wHg0Z>PoXkYtG|1qV{vfoDa(L#rlq+Ml2M z$?M3+*}!FF-ZCh(`T<1DgTE3{qsbP20{D-1bi~Pk8Tv|=qrn1ec3ylMiRp0g-dHM8 z1RkwjPjj%yWIEI?ig(nNVkGXM>-d&4pby$7mTVHkSF`}Sk4udYbS>Ygx;{tM($C!} zk0tOndy60UE30)MoQ&r!*$fK|j;~2Zl>QJmrtSXbJ)-OjR1z8~Sh?itiRL|cdA^*m z{SF#(!^-Y>d!|<{I>CZ!e;VfVdZw`znF}bj*xPsLO5SHo?{;`qcux$ew<@@H6q*>h zXbqp?NsSanK>9pxvCfrvudQ1L(ExpP=xxJu8`x_QoJF(lySv@e$O8Ix6o4KR1-`Q6 zqEhm?gpxrQPmkG9NM$Dwfu_{z$xd0JQpvP@N|+ZyfW2Meizvr+Sdheiw8UKT%ES=H z$b5-4;bIl`TG`E(r;Xu&6A{JVMda+~{+Y-Vf;R4crA^t$A=$KE2r^wqqFI}4Fg)|m z-?Xf(e07k+xmU(_V@;*u!^|pDLTPC_glTrNP&(xBNG7j$q1dHV=$HGe@sl5qZyz@? zQsI$34XdJ9>QZb!greiJdv6>Gq4;?7Z~2i9?39&D1I2>8{MD)SXS64~ds2TL5;NZt z%@fNbC*4Vqmv`bb_xF?#p7B6B^4LY>CK_MSX%C~8N5wAk@;YMTX7V>`K6od{=ttB0C2=JV6-QGQ_l}{pbezea zXZ)U|z9Co(RcvXr3g{40gH$3N-X#}e16D^w>;D%+YlPf~CVPthGOqxaNzZdIj|0}~ zjw_(y_Vh_xEyT(fPDOHyl_ph0(*biXw)Y((MU|`7;soOFTKH83kmF*7bsZwdeVxR_ ztcAB${Ud@H2~!T+h^&v0iB3yZH9z23bbCx>KU=7|a2)N{BgxsS#F^z(_FEUgc!Fl@ z_2?Q`spd7Dql&nCj%c7J8!1NA@d^as8s$BJ$}5lcd(1{g9jGJ{a(?FWL2>Gag@=I?MPPT+UC zOEGb!)N3Dmzgb!aX7>ObVo{6ju1^3eLn`VCX_;o)zX@PiEgQtv_?5B<2Z}tWtTN4> zW~e>b-To`znumRnWZj4V2UN_I(CBKma5`k;FoXn<&a6i;5^q ziX1bs<47snNo+?|PAYM%_>V}8TynXRD5=QWY>JjClAt8+3n**@U@({&07GCfd(TX7 zZ@t@D^2fdJbq~-Z6NZ4WT=T1%dOh8*U*GlI@A;kYGBGv7CqDTA4?Xx}ymaammoG1} zFu#TVphtggg)OtwT)5m}YG#2Xvnap8(5zyWhga2P#N;J+yH<@@8U$25NyW3|B1DRe zEbd{52}R-XVU33k4b`v>c;u_)Ugczo2h92>l4Z7LmD>En8=h=U!oc zE~LBC<6U>$gFL^;_n&@>pZkaZ4Y&cfy<-oxEmQpQSHDNSHA7-0!f%pgT`G~sAWylx z*5^#x;i(tCNn#8?`{DOh;=wO{0isa9j|SaB9i5}KDdI&%;lpa3Ln8rM z=!%>r(;8>XkOHYndWBEm2c)Lx>gZg9aAgNf)0}AXzy}_t+K8Ba;xU3on-ED9Rk(0z zk)1nsVQlGh{ASg`Zk?i9aK%+&OC)8vClV(d$`eeq8r*ZsK5jp_i*6b-KUHJTp~D>9 zxt-z4B47BUKVY!B#0TE@Zl>Flgsw+#7=w@~A5OjaJkK6GML$(cPc^9c4wH7-vug_v z-~1rcGgBn}CBFO3uc5W(;RhaIy4?b6$V`ru;Q1b!;-NnZxG2v1wfDblklyufWkNg_MQAuXSZg zqbLBgv_)5SsEKi|z5LJrc4S~W~Qv}dB zjqj_X+iY_3JVi+#FYwUDlqsG?2#-<%YcxjNqMPT$HTc9BQ`nCwRfg&mmT#i`Sz+_$ zk!8ibt&|?G2G#3z;yA`riYSU033!pZ)=p)sTt@j)24a=9y?kNNGU{0zW`!mLzq2``h0p2x|CV zolbwiop&6dJrRyqpPV%y%+PW2CG+l1k+9S@7s%K2M8H(@#0ks9#b=0(0F9J z0M>b)7tSD7Gwcs>Mx$KHi_?`0gi9f+fw5tcIUKO6Au$>-SBn4*$7vZ3Rf-}^p!4$gx?mNL0z zn%xKXk+}iqUVerC@Jb0B9m1`VS&83hGCQ-t&RqvsTIn)K2b=DPR1#5olSW|(C1Vy;*WaHac&wke@k_@4Tnk5V2cFFa&ZV`%zK4(-2-%t9Dgn(Ya; z@7c@b^c>nsYLzNkp1$exJvzs*?g1-Hezc|Fa0bd}Vaps_ZfasyuMjE2r+?~xB0mJ1 z^P%_NN+v3#1IYl*bF6Nbll~A_uPW02z0i> zeYYRrJ-6J9r#u7>K?fg;lL{{g=nRK|eM57CJkPN~0mv2?*U(vlbXf_k)&Y=|65sd7 zvAUxUa+Vb0#7?J!F@`va38E^Yl4#=~*Ho(w8tn)e3wtX9MzmIX2W~)V#XT-yp z`K{ZSnweql(jrejd4xRAN`P zGa1g9A~x9-;}zE7m&eeKs3q2xyljUP7C-P%syKdO7?Ne#c+yaWgA~6vT8S{mFdPo4 z)oKg|#aN@1;>eLB+;zvTbbD)9o3nN6c2-xHNa7gbESH`*$|pWG&Cb31@PwcmHPP7+ zUnwvK=_!)T@`D!!eBaYSL}E0;X?&#$;i`gn-gyfZm$K4d=9yzpv3l_`cT6^T;q!mU%^&$V$R_{l>&M`c zmuT19yzjnydGXlO965T74?Xy9^1MU6-J*ASnWg1L=Gq<)zvouoed`X|HJ^aEh;DX* znqR|5;@e_15C;~8bZ?SRHY%CmoJ9IQ{WN8^G0nCx;>F+nf1#7G^{0P=i=kz3*1_AC zLvo|uVBG-6H|lLFF;C# z6Plp_oifpG(_8J~GD)M=B-6ujm!RN-7R$gz*SH8L2!enh3`@UaN0wzMvIACS@D#LyUMUF9=EX&5=6G|Yx!BM2(jtiow!rIyztKAf% zO}SD4Q4pasSlGFngYSMXM~*y+=Z7SN9>XL0*c(_1c8Ti z6ynX2YUPjwK|rNa!QqjW+Jdn~;|9@f7=}e6V52c!mH70hKg~lAyqAlYF0!(+%(iXw z7^CTSyZC-cwbrDcI&_jCP^@$lhC@)Q&A>L8t;}O&#eLYy zPvvY~m}hQofi3gfSZ=ti?qn{hF5Y`+MGZ9l$b1V;2oD9fJig1n~2r<15Lg&;}$h&X58Pi|kQg^_a zryu9Q`~saP9_31AxaGe0@%3{Tn4a0r)=HDfW}SB)+{XLvILz<=-v7<&$|`=vk`7|R z$Ya;`SsL`nZNk)qM^1)C(&-KO)}v2y*R2O>R05P6fB++kdjnL-I)8JeEC^#TQlcWC zchpDQfWQrOTLV{RRO05w08O=0?3ORgANu425vx2Zj)^Yxf@J z=NHJ66yYG%npA80y_6*BBZR{b9a$34Xibu3hSo$IFLW%gtH;d(qZxUKN~?GniNeTUJD@W*l1z8|2SB&^m73dx)7polRgL7>ZMUTZDJmEdB-(xLDBWU>&T8F>lg zH0jDJac_<3sVU-oSj5zNMf`M<8*HATEqF2~3Ot1LNV1q*m+`Ysk>`$nx5GrMMV4pW zbZ9?HN}hc3G4fP0*={lDtr7)33HA-`asj#wfv1SVkbQgiGSO~;$%{0r5=@LH2ju}7 z$9hXCaix`4rPk()U;a9S!GORzYV`@6ib#eDUbRJQVF%vJ7l@)dL%WE!YY1WSDhlO= z;4DHpjDdbHCr<|Gj>b9A)=^c8&;zL$i|96{GAdPcj*HC{C{LBb(NSddI#6CezZ<}< z6k{;FkuI^ZYg*7PHi+_MN#`i913@uS%9ETZQ23t5Z~veFij&ViT6mNR$L!n!LB;3N zrA2DBI#-u|ha^p@H(IpX(`0#!a|M;i^CaLfHb)3=Of6dXK{iM{tOid=JQ*NRI9Hq( zYX!!EF$KVm>Z+VDX5flcI|Yb9;Isjuk;=nmIoA5)IO-tuk!e=CajXkyH*(lVLcA~x z$@84gfBy4)`HNqm(X5oziyF(zS4lHXSgF$O^!e1Mf1W)%_pq|kp;m8`OTk)_^3`uV zPQ6(t)j4NYE)zLHBXzuI{~@B=_AyZl=ykfpLrb+%MU?4{AHM%RIOX956;7T$&uX`i zP!>lH!eK2%`kwU*2OK~-$V&qvV;y#2sZ^@WPFJwG#`nS^DN<{$bccW>i~<}EV<8AU zl4J=``Tyfzu)Jdr+;o_$$6sWt?ep`W_(_(RuFy~! z-~IkKacRuLmRa1&8Km$CL!Wotek;{Vjb5G={C*_4f~DRn^{G1h5AViP29+DE5?CP- zNR$)&RoJ^Jr|_*r#)8?o7Gm)V&ph&FcD>^+w!QZ~9J{(qilyqslsQf}>PN6{fa4qW zw$#W>pOLFV`Ed3;9}ozsh$>YAspwt0MBqnknQY?RB-$hhnNh7Tkei(Tu*1ZJPnu?I z+p@r+eFyj#|JQG`FwsI~FFL|0_P$fw%#tMGnm;Q5p^VffqpZLg6 zQvJY(`R3QY#KA*{Sv>O!gXJE(_wVK0#dB1v6@-vvSxTeP;MFtdn3<_yOu-or!;rPL zRlHmih7md)5~xB{Bm)m)E%7i$R%_@ir{C>S*-~S5C8pJ!z&VAGmOXp+aMP`~gV#U? z5q>qo_a#5k;!-BhGX1Rl&n_0mc+UHx)Q0TGI>%9ik}0 z=oEwFgFpTdm(HFf3Ibkz^$b~>VEv#JV2O3E^mVS`b-F}Brx^@~Otc$Rt5s~4Zvc*k zOGj~yd)EL`Ap}Ne_<_f4s=09S0=-_3nOYs~ifCP=2hyiCGtZXoyBWrYg-R76a;!%c zwZOPMyX(OpV}QKjGsmtJ*8=3%c8oWQoSZAVzgaqD(C_oX4}Oq`-}lDuqi6sCAOJ~3 zK~#>yh73ckQO8)rnODy;IW@&?cihD@&m84u zSI_fMN|C1-I>||s6c6Y@bE(qkS8fsznJ8uX-Ykc$kG_;9L_*kts$hL*_!5Kf9*a7 zmro<5Lpp~Rm)(7LNd5Q;5V-M z-5UmOKRR^-9RC&6TNV=y*Kwe@PHpOJA;2mMHOW{@U%qz}1ukkshvnMW*KOJl`93H_ z55`)g?@_5#3i<#bO7neH^r}dWVPc|HbYv)&L<7$Ue6U>tDVVH>$ULDc!P$f#yZ2^p zJG7lnr-M?8nVA_Ts}3c)I9)6Y58@#Jz7z4i8k@DhcgL7>ro9XAN|RX^X(^Ipdx+V@xVuU_`!E_?6E)P z!pT$o!Y}?jzxv<*Du4ZFe->>mpZlZF@%R7Rzs*1UU;Zf%J$N674jtyVe(SgRNB`iL z`P}FJ4b90Z?!W&5KKt3<;P3vuU*^yL^y_3gFUlhygCe84rhfWR3353m2*^tN?{HVcXZ5o?tQXCl(LA{Qu zTp>;dcu|FV;G@e>6`PJM6;$EXOMs=Y=8D2P7E3422%|by!fI!QMkPWg18TJvgS1Db zStoXyil<7Ovf>)u*x{85um)kl6GgDLHaTA4k!R4X)u~1moUu5HYo-7a>-U67ORjaP zdKW_Aq$bNX)mlWmSwlIE&>4edNHy?@JP(&FF<%Mz$@jkliz_^7@yS!m3ol&e+||oW zx3+Q5-UVhFA(3!QwpzS&ewFs#?VLD&iRD+XGQHF1<{dlnOR#H9jw)601wEt;n<@F> z>!5h!>&Dak+RpK7|HgJ}1a`vR;#HC9to;iWeQwGBx)6-K(1)a_s z=g-zSe)JfNmoFpIgqE)`nI(4t#u*sq_`W3YC001nWLVg;rH*>NjwMHi7OX}DhR6$w zF0oC>bc!Da7@Okz9$Fiuk?1@vI_s(o?@wL3TboD#r!(DX|iR9$Ccwx5Uwn-^Mm(uw%a3#d%SRIndS3W zxaY3B>0~j^KqV+F039H-z_$wD7>50GD8J3gQ;Qrwd4yG6#dr~@vmBVwyz9=x2;VO# z5QX0#RywQ^2;rgglxi4)%gbwYlkrcx;(k`9q|FEf9$IN?CT6p+vIg1h~3Or zNmw>L(k14)0gi9f+g2l`{D^Z`bm7($qedk>g;1}*n1z$22xh(Om0};;fLtc zF1FI?pK zi5KYh`<%aY5ibns4g0+KgO}(I`t;(2Ua!l_>IzpbFEi*5>2*2`J3W%#fR)QvNqPg8 zE-lhs8?v%I;PT=XlwW6UZIy3+=PyW1mFex|8+nw#L#;#CHN0rkclNutMGTz^CBTm=f@Ac;d`e988mJ17l!Wv5X#7WGl<1dm85;|8`sReZ=7bd`HOj7VyJ+FpPjwJ6D++VNC zYTV~*kNrjAfgJfv%+0cW>vohggzagb`RWridyJ4p8Js%TX}lQ*Vn9_jNZQ)DCRXD#+!iRkqEDNrFeA$<$2_3iq3P4)*Lx%K}13jvqgPA9#44Ak~7u`Ct4p z2M*s%5CmjtjLIRjf=bq>mSl*`$8#ElNA46ao?B$;$~i>jXtyU=nB7K_fiW71;0Ncs zIAdwI>!|89-JT(I9!`Kz9@aQ=qj93}dX}Q}f_4spedFVX(MTmpGEJ6gf}n{rDb;YA z75@slTj9As{CDhn|9yCqb)I|fC1~y78{d1Jhu(V|)u}pu&(f0(zWT%oKJ?=cv$s|y zOJWo`nU)0YDK0K&{K>bU;C&ysk2{+Ud>k%IXjDU5O`kk|lN1V3N)nyN*cw$BGA+=u z#?GC4IR5wk0nhK-&wU^JIE(nKCOuLl$`)ZCkiWTYxKVFe-2lfo>TN0K?09K)V?6T4 zrRw5+Zqo+|fUxp)?^jZygv4eWLN$T{m=r-8*LFe2zO|!=WhvhIVVnO!;M1zsxYAvt zR;luGu-$2olP4(_|}UEF-|V%WMZn4ns#B78}&*Tqv7&&x2mVQsZTx6?uEBH=(AU9?zU zTY^n}Go=zZtufkROiB_9dUBbye$2v-`E{yC$*~nB0CLu1%Shp`efewTX+}I8V$vMp z+}LWbv$jm04B5VIp1Ij6tW6n#Vm&I>zJI(Ij;fU_9;!UjvFq zzc0t2c;opSJA9OG51;wWXE1S>W6vLD$M$Ump@)?4!V4#9PfW9C=RRIM^#Wgc(P17<-ZzRf< zNa=ylWBNrm8=%WrdFvdq^h>t(^&luoQfjptolb{Vt%}i_U-^|^;kMfkvbNUc^5x64 zTCHN+Ff1-!q*9+?VtN6o6ocWAFsdM&N2okJe0+SAUm>VXu+lxt(UUI|)!Xcvnr7RM z38p3|u$e(PMWa&Twma`&d051ldwzwKI!jBZsrU_Y1d))$S5G>pcJGT!`p zMrYUap;b;{U5?NW=Oo%0mabl5`}7ohc5b7&c$LK$UgD+?{ViTPdk%t#vsYFy!e?Ro z4m!Odla(6x-~WF8_>Vu&TEEAt?GmbjTkZ!{jF2p?tkIsFV*jDTRBehdITKZ%I8KQN zL%cUV)~!>-){lTA@&Xp-X1M&!QF_OZ@yUPkYb;l*oLxLm<~*WWl{Aa-9pldNjr!56 z8{qgxy)9LE@=EeNyQXtIvW^;cj{h=nHi}?#9+WTqZ`_ zv{5AU!;}y}+DFG0rH2GA=E3*e!|#3N&pETW#O&l0d8Vm{9?JIdq@@!0%+1Vj*PZup z@#Qnr8chz}bTcPke1ZG#x{KAdHG(MOw%c#x@h2WgEpNKDG`lMxqJDM^-QC?y%jITI5T#KV|gZ^+Oj z)O?S?^RQNsIiJa?N#6aQdojL3Ra>-MEuKB`1ODtA-{9qQ7idq;@TISPm#d4fGU#?O z;sBL)gIx=CluwCn2-SNETni_X{Uki?}0mfVdjMsm+{QTm7 z*L5*MIPP9Dnv{)>fB^DiQTYg?hb));XO{4{HQ@n&5>#)06Y$wwQQ1 zEJ%SL1cZUYxoiw-g%C6v4WcN*8jIFuorj#+LL6EK!Hg#8X__LX4@MxA#18{J-zV1@ zTAQNVj#oNb6cOB`6g(+J(NJ`ok1s+%uiv9usbGx3^AwLf@(6$a)jy@(Zjh!aGcz-+ ztgO)KtYMv@IWfyeKK2Q;&I{c`oD>3GEs!Vz&qoDSR$|3cEE#$YE-fySr7^MTk!3j( z^(M7y6^&t#^jYl0If~d+j+L-+$K` zQao8I`J4rz$h73xu~YarEAHOEo5kP%1Gd#8rti9wr_WsA@#AM%(lrPwJp25M+>=18yTJee%Nru8*`keh;Qy)HNc zE3e<>cx_p22~?fQ$$&~FpLqloj~O zXQgwMdZWhD@>M)9AP6HaUtMDB_8l~94Uir|6rrudI`G2~qYafx1#2`>Sf^gEk{C^; z)nIkdgTRBpBe5E5pg%~+vYcwAN^5EYPlBK4$blvD8>l=Y3>ysT0bJ9?f2(WMV{rmp z=~z;!OrngUS)az2iag1{`edmC=OKi}+KgN$n@93F0r;=`ww4A@c;FP7P)H0lp)h$) zZ@I(8ix=5<_!hD(13xU5kwroESXy1-%9SfXAsWqX0kR5fGXYAH>I_Uys3a=%iL-Sv z+j!HQMToHABAYT;BQy9)5vLhO6k^mkO_5$e6#1Auqc`Yd3|PNPm{jR>1bw%{wq4Wg z*|vvsTVqb2Jx82brlU!IaQ-|Wc<^EN>|Wr@-}yGDU%UijhQM86zA{N>Gt34{jxnSu zJIAA{RIB6fzqZCUbo_^}Fi0msN^)(`rntt9(J0@eQmvx1j3|n@_10Ut_3%wJn@v_$ zmgx3YXtkQ0Jb8ls2lg>NF~zA@PV?AfPccjq2z-QR@f7&dp+XRz1uez^xHy*{d6uKK zB~A0vp`z$$J6AY}1VKoyi;27E6>caammMKW#~lQ?!gA4;<4~?O3UBO5Zk@&CrUcBd zKNd=PcwX^0v*7@Nhmn$9ySJjXE=9wZYPCwM)ucb@vAou!-|ypj9!aJlkVqLpwaS|F ziTegG9#S(g_a55H`)}XLX?2m6t5?ac_PEgPFqml4y5&}eNz8L6j&gSKJoT``zWs;D z2bRb$;=&O=po?)TijZlkN3o^nwObF1xnAdZQ|_$J3A{Q`xXKu(SYAyK!4!?vKF>e? z9roXHkP9~B)GJFYbvv|oPjmP7d7k*Q@A92*J^{@t({jj9f9ylFva`hb01qFRdnh2X zl1i(|tY6{xfBO;k+2_RD&?-dXT(Yg9SpDb!l6zMN z@IU{TEG}N6m-JDQ!q^O_GeQM2%|S(PZX0gYTUOVAXPIzjF{hTWL0bK5aaapKf@tn%2sb1zfvDk79r zRh>?Eh!KjQ9wB^>&agw4YOY*aWo0eF`c=9aTwU#BWQDa}!XQa;p5)@vRpvxMVmy`x z39%6@F0U~=Jx#sV;PRyvrf0YF^wAfwqDriN7BBayP0e%m+-X*a8MWplHpysKYV=hO z)?tLj`GTDI8h~>RFT40g@wIc~Nro)X)5b~1W)5hMf*+2v=sZW2ihU=1jFVU-QYf?( z^tDD06ag`{O33c*TS&4hUbVu|rSx9Dz+h+zBS9rnIO$4JoL-+?xg!2}^e}d##*|j% z&X8mYR>1ts46{>H1S;bE)yw!%6N68h8k7_u70%=wd+8j{AAN>wu*P86C-eiX(}2a= z9A9{t%wlwrsweSCOhysbQh44vCrY;pfe?;7H$|X?kXQ$KZZM`y=d%_kiX~wk=XlD) zi-OWsO0v@H@#l|z9j`XUJB9&sTNVgC#oc$_##7H6W9PORu3WxAx0`b5avy6v5No75 z!mrPfC0SujrVX`Pg>G-9;O={t)Wrzl7p^fmI4dczvK@zcIOmGUZzsWl@)UWVl%TV8 zdnkR3bEAu35i1H0ZqFkf(HN8}>;s`p@hfNxo~JN6BgqW{TLf?j%hJjsk3aq$ZoB;! z+U+VrXr`xI2$L87-C2SsEh11LDQ(6Co-8KU$uI%C?&}PWJh!BIL5T>0un4qJ3Mo8t zo8X5
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + + + + 0 + 0 + + + + rt-thread + 0x4 + ARM-ADS + + 25000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\build\keil\List\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 0 + 0 + 1 + + 255 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 0 + 1 + 1 + 0 + 0 + 0 + 6 + + + + + + + + + + + Segger\JL2CM3.dll + + + + 0 + JL2CM3 + -U30000299 -O207 -S0 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8001 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO15 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000 + + + 0 + UL2CM3 + UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000) + + + + + 0 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + diff --git a/bsp/stm32/stm32f410-st-nucleo/project.uvoptx b/bsp/stm32/stm32f410-st-nucleo/project.uvoptx new file mode 100644 index 0000000000..a6a085890c --- /dev/null +++ b/bsp/stm32/stm32f410-st-nucleo/project.uvoptx @@ -0,0 +1,940 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj; *.o + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + rtthread + 0x4 + ARM-ADS + + 8000000 + + 1 + 1 + 0 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\build\keil\List\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 18 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 6 + + + + + + + + + + + STLink\ST-LINKIII-KEIL_SWO.dll + + + + 0 + ARMRTXEVENTFLAGS + -L70 -Z18 -C0 -M0 -T1 + + + 0 + DLGTARM + (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(1012=-1,-1,-1,-1,0) + + + 0 + ARMDBGFLAGS + + + + 0 + DLGUARM + (105=-1,-1,-1,-1,0) + + + 0 + UL2CM3 + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC1000 -FD20000000 -FF0STM32F4xx_128 -FL020000 -FS08000000 -FP0($$Device:STM32F410RBTx$CMSIS\Flash\STM32F4xx_128.FLM) + + + 0 + ST-LINKIII-KEIL_SWO + -U066FFF515456707067071728 -O206 -SF4000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P2 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_512.FLM -FS08000000 -FL080000 -FP0($$Device:STM32F411RETx$CMSIS\Flash\STM32F4xx_512.FLM) + + + + + 0 + + + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + 0 + 0 + 0 + + + + + + + + + + 1 + 0 + 0 + 2 + 10000000 + + + + + + Kernel + 0 + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + ..\..\..\src\clock.c + clock.c + 0 + 0 + + + 1 + 2 + 1 + 0 + 0 + 0 + ..\..\..\src\components.c + components.c + 0 + 0 + + + 1 + 3 + 1 + 0 + 0 + 0 + ..\..\..\src\device.c + device.c + 0 + 0 + + + 1 + 4 + 1 + 0 + 0 + 0 + ..\..\..\src\idle.c + idle.c + 0 + 0 + + + 1 + 5 + 1 + 0 + 0 + 0 + ..\..\..\src\ipc.c + ipc.c + 0 + 0 + + + 1 + 6 + 1 + 0 + 0 + 0 + ..\..\..\src\irq.c + irq.c + 0 + 0 + + + 1 + 7 + 1 + 0 + 0 + 0 + ..\..\..\src\kservice.c + kservice.c + 0 + 0 + + + 1 + 8 + 1 + 0 + 0 + 0 + ..\..\..\src\mem.c + mem.c + 0 + 0 + + + 1 + 9 + 1 + 0 + 0 + 0 + ..\..\..\src\mempool.c + mempool.c + 0 + 0 + + + 1 + 10 + 1 + 0 + 0 + 0 + ..\..\..\src\object.c + object.c + 0 + 0 + + + 1 + 11 + 1 + 0 + 0 + 0 + ..\..\..\src\scheduler.c + scheduler.c + 0 + 0 + + + 1 + 12 + 1 + 0 + 0 + 0 + ..\..\..\src\signal.c + signal.c + 0 + 0 + + + 1 + 13 + 1 + 0 + 0 + 0 + ..\..\..\src\thread.c + thread.c + 0 + 0 + + + 1 + 14 + 1 + 0 + 0 + 0 + ..\..\..\src\timer.c + timer.c + 0 + 0 + + + + + Applications + 1 + 0 + 0 + 0 + + 2 + 15 + 1 + 0 + 0 + 0 + applications\main.c + main.c + 0 + 0 + + + + + Drivers + 0 + 0 + 0 + 0 + + 3 + 16 + 1 + 0 + 0 + 0 + board\board.c + board.c + 0 + 0 + + + 3 + 17 + 1 + 0 + 0 + 0 + board\CubeMX_Config\Src\stm32f4xx_hal_msp.c + stm32f4xx_hal_msp.c + 0 + 0 + + + 3 + 18 + 2 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f410rx.s + startup_stm32f410rx.s + 0 + 0 + + + 3 + 19 + 1 + 0 + 0 + 0 + ..\libraries\HAL_Drivers\drv_gpio.c + drv_gpio.c + 0 + 0 + + + 3 + 20 + 1 + 0 + 0 + 0 + ..\libraries\HAL_Drivers\drv_usart.c + drv_usart.c + 0 + 0 + + + 3 + 21 + 1 + 0 + 0 + 0 + ..\libraries\HAL_Drivers\drv_common.c + drv_common.c + 0 + 0 + + + + + cpu + 0 + 0 + 0 + 0 + + 4 + 22 + 1 + 0 + 0 + 0 + ..\..\..\libcpu\arm\common\backtrace.c + backtrace.c + 0 + 0 + + + 4 + 23 + 1 + 0 + 0 + 0 + ..\..\..\libcpu\arm\common\div0.c + div0.c + 0 + 0 + + + 4 + 24 + 1 + 0 + 0 + 0 + ..\..\..\libcpu\arm\common\showmem.c + showmem.c + 0 + 0 + + + 4 + 25 + 1 + 0 + 0 + 0 + ..\..\..\libcpu\arm\cortex-m4\cpuport.c + cpuport.c + 0 + 0 + + + 4 + 26 + 2 + 0 + 0 + 0 + ..\..\..\libcpu\arm\cortex-m4\context_rvds.S + context_rvds.S + 0 + 0 + + + + + DeviceDrivers + 0 + 0 + 0 + 0 + + 5 + 27 + 1 + 0 + 0 + 0 + ..\..\..\components\drivers\misc\pin.c + pin.c + 0 + 0 + + + 5 + 28 + 1 + 0 + 0 + 0 + ..\..\..\components\drivers\serial\serial.c + serial.c + 0 + 0 + + + 5 + 29 + 1 + 0 + 0 + 0 + ..\..\..\components\drivers\src\completion.c + completion.c + 0 + 0 + + + 5 + 30 + 1 + 0 + 0 + 0 + ..\..\..\components\drivers\src\dataqueue.c + dataqueue.c + 0 + 0 + + + 5 + 31 + 1 + 0 + 0 + 0 + ..\..\..\components\drivers\src\pipe.c + pipe.c + 0 + 0 + + + 5 + 32 + 1 + 0 + 0 + 0 + ..\..\..\components\drivers\src\ringblk_buf.c + ringblk_buf.c + 0 + 0 + + + 5 + 33 + 1 + 0 + 0 + 0 + ..\..\..\components\drivers\src\ringbuffer.c + ringbuffer.c + 0 + 0 + + + 5 + 34 + 1 + 0 + 0 + 0 + ..\..\..\components\drivers\src\waitqueue.c + waitqueue.c + 0 + 0 + + + 5 + 35 + 1 + 0 + 0 + 0 + ..\..\..\components\drivers\src\workqueue.c + workqueue.c + 0 + 0 + + + + + finsh + 0 + 0 + 0 + 0 + + 6 + 36 + 1 + 0 + 0 + 0 + ..\..\..\components\finsh\shell.c + shell.c + 0 + 0 + + + 6 + 37 + 1 + 0 + 0 + 0 + ..\..\..\components\finsh\cmd.c + cmd.c + 0 + 0 + + + 6 + 38 + 1 + 0 + 0 + 0 + ..\..\..\components\finsh\msh.c + msh.c + 0 + 0 + + + + + libc + 0 + 0 + 0 + 0 + + 7 + 39 + 1 + 0 + 0 + 0 + ..\..\..\components\libc\compilers\common\time.c + time.c + 0 + 0 + + + + + STM32_HAL + 0 + 0 + 0 + 0 + + 8 + 40 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\CMSIS\Device\ST\STM32F4xx\Source\Templates\system_stm32f4xx.c + system_stm32f4xx.c + 0 + 0 + + + 8 + 41 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal.c + stm32f4xx_hal.c + 0 + 0 + + + 8 + 42 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cec.c + stm32f4xx_hal_cec.c + 0 + 0 + + + 8 + 43 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cortex.c + stm32f4xx_hal_cortex.c + 0 + 0 + + + 8 + 44 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_crc.c + stm32f4xx_hal_crc.c + 0 + 0 + + + 8 + 45 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cryp.c + stm32f4xx_hal_cryp.c + 0 + 0 + + + 8 + 46 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cryp_ex.c + stm32f4xx_hal_cryp_ex.c + 0 + 0 + + + 8 + 47 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma.c + stm32f4xx_hal_dma.c + 0 + 0 + + + 8 + 48 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma_ex.c + stm32f4xx_hal_dma_ex.c + 0 + 0 + + + 8 + 49 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr.c + stm32f4xx_hal_pwr.c + 0 + 0 + + + 8 + 50 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr_ex.c + stm32f4xx_hal_pwr_ex.c + 0 + 0 + + + 8 + 51 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc.c + stm32f4xx_hal_rcc.c + 0 + 0 + + + 8 + 52 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc_ex.c + stm32f4xx_hal_rcc_ex.c + 0 + 0 + + + 8 + 53 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rng.c + stm32f4xx_hal_rng.c + 0 + 0 + + + 8 + 54 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_gpio.c + stm32f4xx_hal_gpio.c + 0 + 0 + + + 8 + 55 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_uart.c + stm32f4xx_hal_uart.c + 0 + 0 + + + 8 + 56 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_usart.c + stm32f4xx_hal_usart.c + 0 + 0 + + + +
diff --git a/bsp/stm32/stm32f410-st-nucleo/project.uvprojx b/bsp/stm32/stm32f410-st-nucleo/project.uvprojx new file mode 100644 index 0000000000..7211b98701 --- /dev/null +++ b/bsp/stm32/stm32f410-st-nucleo/project.uvprojx @@ -0,0 +1,712 @@ + + + + 2.1 + +
### uVision Project, (C) Keil Software
+ + + + rtthread + 0x4 + ARM-ADS + 5060750::V5.06 update 6 (build 750)::ARMCC + 0 + + + STM32F410RBTx + STMicroelectronics + Keil.STM32F4xx_DFP.2.14.0 + http://www.keil.com/pack/ + IRAM(0x20000000,0x00008000) IROM(0x08000000,0x00020000) CPUTYPE("Cortex-M4") FPU2 CLOCK(12000000) ELITTLE + + + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_128 -FS08000000 -FL020000 -FP0($$Device:STM32F410RBTx$CMSIS\Flash\STM32F4xx_128.FLM)) + 0 + $$Device:STM32F410RBTx$Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f4xx.h + + + + + + + + + + $$Device:STM32F410RBTx$CMSIS\SVD\STM32F410xx.svd + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\build\keil\Obj\ + rtthread + 1 + 0 + 0 + 1 + 0 + .\build\keil\List\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 1 + 0 + fromelf --bin !L --output rtthread.bin + + 0 + 0 + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + + + SARMCM3.DLL + -REMAP -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + + 1 + 0 + 0 + 0 + 16 + + + + + 1 + 0 + 0 + 1 + 1 + 4096 + + 1 + BIN\UL2CM3.DLL + + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M4" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 2 + 0 + 0 + 0 + 8 + 0 + 0 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x8000 + + + 1 + 0x8000000 + 0x20000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x8000000 + 0x20000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x8000 + + + 0 + 0x0 + 0x0 + + + + + + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + + + STM32F410Rx, USE_HAL_DRIVER + + .;..\..\..\include;applications;.;board;board\CubeMX_Config\Inc;..\libraries\HAL_Drivers;..\libraries\HAL_Drivers\config;..\..\..\libcpu\arm\common;..\..\..\libcpu\arm\cortex-m4;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\finsh;..\..\..\components\libc\compilers\common;..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Inc;..\libraries\STM32F4xx_HAL\CMSIS\Device\ST\STM32F4xx\Include;..\libraries\STM32F4xx_HAL\CMSIS\Include + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + 0x08000000 + 0x20000000 + + .\board\linker_scripts\link.sct + + + + + + + + + + + Kernel + + + clock.c + 1 + ..\..\..\src\clock.c + + + components.c + 1 + ..\..\..\src\components.c + + + device.c + 1 + ..\..\..\src\device.c + + + idle.c + 1 + ..\..\..\src\idle.c + + + ipc.c + 1 + ..\..\..\src\ipc.c + + + irq.c + 1 + ..\..\..\src\irq.c + + + kservice.c + 1 + ..\..\..\src\kservice.c + + + mem.c + 1 + ..\..\..\src\mem.c + + + mempool.c + 1 + ..\..\..\src\mempool.c + + + object.c + 1 + ..\..\..\src\object.c + + + scheduler.c + 1 + ..\..\..\src\scheduler.c + + + signal.c + 1 + ..\..\..\src\signal.c + + + thread.c + 1 + ..\..\..\src\thread.c + + + timer.c + 1 + ..\..\..\src\timer.c + + + + + Applications + + + main.c + 1 + applications\main.c + + + + + Drivers + + + board.c + 1 + board\board.c + + + stm32f4xx_hal_msp.c + 1 + board\CubeMX_Config\Src\stm32f4xx_hal_msp.c + + + startup_stm32f410rx.s + 2 + ..\libraries\STM32F4xx_HAL\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f410rx.s + + + drv_gpio.c + 1 + ..\libraries\HAL_Drivers\drv_gpio.c + + + drv_usart.c + 1 + ..\libraries\HAL_Drivers\drv_usart.c + + + drv_common.c + 1 + ..\libraries\HAL_Drivers\drv_common.c + + + + + cpu + + + backtrace.c + 1 + ..\..\..\libcpu\arm\common\backtrace.c + + + div0.c + 1 + ..\..\..\libcpu\arm\common\div0.c + + + showmem.c + 1 + ..\..\..\libcpu\arm\common\showmem.c + + + cpuport.c + 1 + ..\..\..\libcpu\arm\cortex-m4\cpuport.c + + + context_rvds.S + 2 + ..\..\..\libcpu\arm\cortex-m4\context_rvds.S + + + + + DeviceDrivers + + + pin.c + 1 + ..\..\..\components\drivers\misc\pin.c + + + serial.c + 1 + ..\..\..\components\drivers\serial\serial.c + + + completion.c + 1 + ..\..\..\components\drivers\src\completion.c + + + dataqueue.c + 1 + ..\..\..\components\drivers\src\dataqueue.c + + + pipe.c + 1 + ..\..\..\components\drivers\src\pipe.c + + + ringblk_buf.c + 1 + ..\..\..\components\drivers\src\ringblk_buf.c + + + ringbuffer.c + 1 + ..\..\..\components\drivers\src\ringbuffer.c + + + waitqueue.c + 1 + ..\..\..\components\drivers\src\waitqueue.c + + + workqueue.c + 1 + ..\..\..\components\drivers\src\workqueue.c + + + + + finsh + + + shell.c + 1 + ..\..\..\components\finsh\shell.c + + + cmd.c + 1 + ..\..\..\components\finsh\cmd.c + + + msh.c + 1 + ..\..\..\components\finsh\msh.c + + + + + libc + + + time.c + 1 + ..\..\..\components\libc\compilers\common\time.c + + + + + STM32_HAL + + + system_stm32f4xx.c + 1 + ..\libraries\STM32F4xx_HAL\CMSIS\Device\ST\STM32F4xx\Source\Templates\system_stm32f4xx.c + + + stm32f4xx_hal.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal.c + + + stm32f4xx_hal_cec.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cec.c + + + stm32f4xx_hal_cortex.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cortex.c + + + stm32f4xx_hal_crc.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_crc.c + + + stm32f4xx_hal_cryp.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cryp.c + + + stm32f4xx_hal_cryp_ex.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cryp_ex.c + + + stm32f4xx_hal_dma.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma.c + + + stm32f4xx_hal_dma_ex.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma_ex.c + + + stm32f4xx_hal_pwr.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr.c + + + stm32f4xx_hal_pwr_ex.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr_ex.c + + + stm32f4xx_hal_rcc.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc.c + + + stm32f4xx_hal_rcc_ex.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc_ex.c + + + stm32f4xx_hal_rng.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rng.c + + + stm32f4xx_hal_gpio.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_gpio.c + + + stm32f4xx_hal_uart.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_uart.c + + + stm32f4xx_hal_usart.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_usart.c + + + + + + + + + + + + + +
diff --git a/bsp/stm32/stm32f410-st-nucleo/rtconfig.h b/bsp/stm32/stm32f410-st-nucleo/rtconfig.h new file mode 100644 index 0000000000..3defbd982e --- /dev/null +++ b/bsp/stm32/stm32f410-st-nucleo/rtconfig.h @@ -0,0 +1,169 @@ +#ifndef RT_CONFIG_H__ +#define RT_CONFIG_H__ + +/* Automatically generated file; DO NOT EDIT. */ +/* RT-Thread Configuration */ + +/* RT-Thread Kernel */ + +#define RT_NAME_MAX 8 +#define RT_ALIGN_SIZE 4 +#define RT_THREAD_PRIORITY_32 +#define RT_THREAD_PRIORITY_MAX 32 +#define RT_TICK_PER_SECOND 1000 +#define RT_USING_OVERFLOW_CHECK +#define RT_USING_HOOK +#define RT_USING_IDLE_HOOK +#define RT_IDLE_HOOK_LIST_SIZE 4 +#define IDLE_THREAD_STACK_SIZE 256 +#define RT_DEBUG +#define RT_DEBUG_COLOR + +/* Inter-Thread communication */ + +#define RT_USING_SEMAPHORE +#define RT_USING_MUTEX +#define RT_USING_EVENT +#define RT_USING_MAILBOX +#define RT_USING_MESSAGEQUEUE + +/* Memory Management */ + +#define RT_USING_MEMPOOL +#define RT_USING_SMALL_MEM +#define RT_USING_HEAP + +/* Kernel Device Object */ + +#define RT_USING_DEVICE +#define RT_USING_CONSOLE +#define RT_CONSOLEBUF_SIZE 128 +#define RT_CONSOLE_DEVICE_NAME "uart2" +#define RT_VER_NUM 0x40003 +#define ARCH_ARM +#define RT_USING_CPU_FFS +#define ARCH_ARM_CORTEX_M +#define ARCH_ARM_CORTEX_M4 + +/* RT-Thread Components */ + +#define RT_USING_COMPONENTS_INIT +#define RT_USING_USER_MAIN +#define RT_MAIN_THREAD_STACK_SIZE 2048 +#define RT_MAIN_THREAD_PRIORITY 10 + +/* C++ features */ + + +/* Command shell */ + +#define RT_USING_FINSH +#define FINSH_THREAD_NAME "tshell" +#define FINSH_USING_HISTORY +#define FINSH_HISTORY_LINES 5 +#define FINSH_USING_SYMTAB +#define FINSH_USING_DESCRIPTION +#define FINSH_THREAD_PRIORITY 20 +#define FINSH_THREAD_STACK_SIZE 4096 +#define FINSH_CMD_SIZE 80 +#define FINSH_USING_MSH +#define FINSH_USING_MSH_DEFAULT +#define FINSH_USING_MSH_ONLY +#define FINSH_ARG_MAX 10 + +/* Device virtual file system */ + + +/* Device Drivers */ + +#define RT_USING_DEVICE_IPC +#define RT_PIPE_BUFSZ 512 +#define RT_USING_SERIAL +#define RT_SERIAL_RB_BUFSZ 64 +#define RT_USING_PIN + +/* Using USB */ + + +/* POSIX layer and C standard library */ + +#define RT_LIBC_USING_TIME + +/* Network */ + +/* Socket abstraction layer */ + + +/* Network interface device */ + + +/* light weight TCP/IP stack */ + + +/* AT commands */ + + +/* VBUS(Virtual Software BUS) */ + + +/* Utilities */ + + +/* RT-Thread online packages */ + +/* IoT - internet of things */ + + +/* Wi-Fi */ + +/* Marvell WiFi */ + + +/* Wiced WiFi */ + + +/* IoT Cloud */ + + +/* security packages */ + + +/* language packages */ + + +/* multimedia packages */ + + +/* tools packages */ + + +/* system packages */ + + +/* peripheral libraries and drivers */ + + +/* miscellaneous packages */ + + +/* samples: kernel and components samples */ + +#define SOC_FAMILY_STM32 +#define SOC_SERIES_STM32F4 + +/* Hardware Drivers Config */ + +#define SOC_STM32F410RB + +/* Onboard Peripheral Drivers */ + +/* On-chip Peripheral Drivers */ + +#define BSP_USING_GPIO +#define BSP_USING_UART +#define BSP_USING_UART2 + +/* Board extended module Drivers */ + + +#endif diff --git a/bsp/stm32/stm32f410-st-nucleo/rtconfig.py b/bsp/stm32/stm32f410-st-nucleo/rtconfig.py new file mode 100644 index 0000000000..8c0a3e1281 --- /dev/null +++ b/bsp/stm32/stm32f410-st-nucleo/rtconfig.py @@ -0,0 +1,143 @@ +import os + +# toolchains options +ARCH='arm' +CPU='cortex-m4' +CROSS_TOOL='gcc' + +# bsp lib config +BSP_LIBRARY_TYPE = None + +if os.getenv('RTT_CC'): + CROSS_TOOL = os.getenv('RTT_CC') +if os.getenv('RTT_ROOT'): + RTT_ROOT = os.getenv('RTT_ROOT') + +# cross_tool provides the cross compiler +# EXEC_PATH is the compiler execute path, for example, CodeSourcery, Keil MDK, IAR +if CROSS_TOOL == 'gcc': + PLATFORM = 'gcc' + EXEC_PATH = r'C:\Users\XXYYZZ' +elif CROSS_TOOL == 'keil': + PLATFORM = 'armcc' + EXEC_PATH = r'C:/Keil_v5' +elif CROSS_TOOL == 'iar': + PLATFORM = 'iar' + EXEC_PATH = r'C:/Program Files (x86)/IAR Systems/Embedded Workbench 8.0' + +if os.getenv('RTT_EXEC_PATH'): + EXEC_PATH = os.getenv('RTT_EXEC_PATH') + +BUILD = 'debug' + +if PLATFORM == 'gcc': + # toolchains + PREFIX = 'arm-none-eabi-' + CC = PREFIX + 'gcc' + AS = PREFIX + 'gcc' + AR = PREFIX + 'ar' + CXX = PREFIX + 'g++' + LINK = PREFIX + 'gcc' + TARGET_EXT = 'elf' + SIZE = PREFIX + 'size' + OBJDUMP = PREFIX + 'objdump' + OBJCPY = PREFIX + 'objcopy' + + DEVICE = ' -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard -ffunction-sections -fdata-sections' + CFLAGS = DEVICE + ' -Dgcc' + AFLAGS = ' -c' + DEVICE + ' -x assembler-with-cpp -Wa,-mimplicit-it=thumb ' + LFLAGS = DEVICE + ' -Wl,--gc-sections,-Map=rtthread.map,-cref,-u,Reset_Handler -T board/linker_scripts/link.lds' + + CPATH = '' + LPATH = '' + + if BUILD == 'debug': + CFLAGS += ' -O0 -gdwarf-2 -g' + AFLAGS += ' -gdwarf-2' + else: + CFLAGS += ' -O2' + + CXXFLAGS = CFLAGS + + POST_ACTION = OBJCPY + ' -O binary $TARGET rtthread.bin\n' + SIZE + ' $TARGET \n' + +elif PLATFORM == 'armcc': + # toolchains + CC = 'armcc' + CXX = 'armcc' + AS = 'armasm' + AR = 'armar' + LINK = 'armlink' + TARGET_EXT = 'axf' + + DEVICE = ' --cpu Cortex-M4.fp ' + CFLAGS = '-c ' + DEVICE + ' --apcs=interwork --c99' + AFLAGS = DEVICE + ' --apcs=interwork ' + LFLAGS = DEVICE + ' --scatter "board\linker_scripts\link.sct" --info sizes --info totals --info unused --info veneers --list rtthread.map --strict' + CFLAGS += ' -I' + EXEC_PATH + '/ARM/ARMCC/include' + LFLAGS += ' --libpath=' + EXEC_PATH + '/ARM/ARMCC/lib' + + CFLAGS += ' -D__MICROLIB ' + AFLAGS += ' --pd "__MICROLIB SETA 1" ' + LFLAGS += ' --library_type=microlib ' + EXEC_PATH += '/ARM/ARMCC/bin/' + + if BUILD == 'debug': + CFLAGS += ' -g -O0' + AFLAGS += ' -g' + else: + CFLAGS += ' -O2' + + CXXFLAGS = CFLAGS + CFLAGS += ' -std=c99' + + POST_ACTION = 'fromelf --bin $TARGET --output rtthread.bin \nfromelf -z $TARGET' + +elif PLATFORM == 'iar': + # toolchains + CC = 'iccarm' + CXX = 'iccarm' + AS = 'iasmarm' + AR = 'iarchive' + LINK = 'ilinkarm' + TARGET_EXT = 'out' + + DEVICE = '-Dewarm' + + CFLAGS = DEVICE + CFLAGS += ' --diag_suppress Pa050' + CFLAGS += ' --no_cse' + CFLAGS += ' --no_unroll' + CFLAGS += ' --no_inline' + CFLAGS += ' --no_code_motion' + CFLAGS += ' --no_tbaa' + CFLAGS += ' --no_clustering' + CFLAGS += ' --no_scheduling' + CFLAGS += ' --endian=little' + CFLAGS += ' --cpu=Cortex-M4' + CFLAGS += ' -e' + CFLAGS += ' --fpu=VFPv4_sp' + CFLAGS += ' --dlib_config "' + EXEC_PATH + '/arm/INC/c/DLib_Config_Normal.h"' + CFLAGS += ' --silent' + + AFLAGS = DEVICE + AFLAGS += ' -s+' + AFLAGS += ' -w+' + AFLAGS += ' -r' + AFLAGS += ' --cpu Cortex-M4' + AFLAGS += ' --fpu VFPv4_sp' + AFLAGS += ' -S' + + if BUILD == 'debug': + CFLAGS += ' --debug' + CFLAGS += ' -On' + else: + CFLAGS += ' -Oh' + + LFLAGS = ' --config "board/linker_scripts/link.icf"' + LFLAGS += ' --entry __iar_program_start' + + CXXFLAGS = CFLAGS + + EXEC_PATH = EXEC_PATH + '/arm/bin/' + POST_ACTION = 'ielftool --bin $TARGET rtthread.bin' diff --git a/bsp/stm32/stm32f410-st-nucleo/template.ewp b/bsp/stm32/stm32f410-st-nucleo/template.ewp new file mode 100644 index 0000000000..51abb339f9 --- /dev/null +++ b/bsp/stm32/stm32f410-st-nucleo/template.ewp @@ -0,0 +1,2032 @@ + + + 3 + + rtthread + + ARM + + 1 + + General + 3 + + 29 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 34 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 10 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 1 + + + + + + + + + CUSTOM + 3 + + + + 0 + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 20 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 1 + + + + + + + BILINK + 0 + + + + + Release + + ARM + + 0 + + General + 3 + + 29 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 34 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 10 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 0 + + + + + + + + + CUSTOM + 3 + + + + 0 + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 20 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 0 + + + + + + + BILINK + 0 + + + + diff --git a/bsp/stm32/stm32f410-st-nucleo/template.eww b/bsp/stm32/stm32f410-st-nucleo/template.eww new file mode 100644 index 0000000000..bd036bb4c9 --- /dev/null +++ b/bsp/stm32/stm32f410-st-nucleo/template.eww @@ -0,0 +1,10 @@ + + + + + $WS_DIR$\template.ewp + + + + + diff --git a/bsp/stm32/stm32f410-st-nucleo/template.uvopt b/bsp/stm32/stm32f410-st-nucleo/template.uvopt new file mode 100644 index 0000000000..b53d69d5df --- /dev/null +++ b/bsp/stm32/stm32f410-st-nucleo/template.uvopt @@ -0,0 +1,162 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + + + + 0 + 0 + + + + rt-thread + 0x4 + ARM-ADS + + 25000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\build\keil\List\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 0 + 0 + 1 + + 255 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 0 + 1 + 1 + 0 + 0 + 0 + 6 + + + + + + + + + + + Segger\JL2CM3.dll + + + + 0 + JL2CM3 + -U30000299 -O207 -S0 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8001 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO15 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000 + + + 0 + UL2CM3 + UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000) + + + + + 0 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + +
diff --git a/bsp/stm32/stm32f410-st-nucleo/template.uvoptx b/bsp/stm32/stm32f410-st-nucleo/template.uvoptx new file mode 100644 index 0000000000..52fe4bb316 --- /dev/null +++ b/bsp/stm32/stm32f410-st-nucleo/template.uvoptx @@ -0,0 +1,192 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj; *.o + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + rtthread + 0x4 + ARM-ADS + + 8000000 + + 1 + 1 + 0 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\build\keil\List\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 0 + 0 + 1 + + 18 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 6 + + + + + + + + + + + STLink\ST-LINKIII-KEIL_SWO.dll + + + + 0 + UL2CM3 + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC1000 -FD20000000 -FF0STM32F4xx_128 -FL020000 -FS08000000 -FP0($$Device:STM32F410RBTx$CMSIS\Flash\STM32F4xx_128.FLM) + + + 0 + ST-LINKIII-KEIL_SWO + -U066FFF515456707067071728 -O206 -SF4000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P2 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_512.FLM -FS08000000 -FL080000 -FP0($$Device:STM32F411RETx$CMSIS\Flash\STM32F4xx_512.FLM) + + + + + 0 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + 0 + 0 + 0 + + + + + + + + + + 1 + 0 + 0 + 2 + 10000000 + + + + + + Source Group 1 + 0 + 0 + 0 + 0 + + +
diff --git a/bsp/stm32/stm32f410-st-nucleo/template.uvprojx b/bsp/stm32/stm32f410-st-nucleo/template.uvprojx new file mode 100644 index 0000000000..91afe9facd --- /dev/null +++ b/bsp/stm32/stm32f410-st-nucleo/template.uvprojx @@ -0,0 +1,395 @@ + + + + 2.1 + +
### uVision Project, (C) Keil Software
+ + + + rtthread + 0x4 + ARM-ADS + 5060750::V5.06 update 6 (build 750)::ARMCC + 0 + + + STM32F410RBTx + STMicroelectronics + Keil.STM32F4xx_DFP.2.14.0 + http://www.keil.com/pack/ + IRAM(0x20000000,0x00008000) IROM(0x08000000,0x00020000) CPUTYPE("Cortex-M4") FPU2 CLOCK(12000000) ELITTLE + + + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_128 -FS08000000 -FL020000 -FP0($$Device:STM32F410RBTx$CMSIS\Flash\STM32F4xx_128.FLM)) + 0 + $$Device:STM32F410RBTx$Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f4xx.h + + + + + + + + + + $$Device:STM32F410RBTx$CMSIS\SVD\STM32F410xx.svd + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\build\keil\Obj\ + rtthread + 1 + 0 + 0 + 1 + 0 + .\build\keil\List\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 1 + 0 + fromelf --bin !L --output rtthread.bin + + 0 + 0 + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + + + SARMCM3.DLL + -REMAP -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + + 1 + 0 + 0 + 0 + 16 + + + + + 1 + 0 + 0 + 1 + 1 + 4096 + + 1 + BIN\UL2CM3.DLL + + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M4" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 2 + 0 + 0 + 0 + 8 + 0 + 0 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x8000 + + + 1 + 0x8000000 + 0x20000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x8000000 + 0x20000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x8000 + + + 0 + 0x0 + 0x0 + + + + + + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + + + + + + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + 0x08000000 + 0x20000000 + + .\board\linker_scripts\link.sct + + + + + + + + + + + Source Group 1 + + + + + + + + + + + +
From 816a714de1b14336f52a1bffbb64929cd2c0842a Mon Sep 17 00:00:00 2001 From: tanglj86 Date: Wed, 18 Mar 2020 18:51:22 +0800 Subject: [PATCH 2/3] fix some format issues; --- bsp/stm32/stm32f410-st-nucleo/README.md | 4 +- bsp/stm32/stm32f410-st-nucleo/board/Kconfig | 89 ------------------- .../stm32f410-st-nucleo/board/SConscript | 2 +- bsp/stm32/stm32f410-st-nucleo/board/board.c | 2 +- bsp/stm32/stm32f410-st-nucleo/board/board.h | 2 +- 5 files changed, 5 insertions(+), 94 deletions(-) diff --git a/bsp/stm32/stm32f410-st-nucleo/README.md b/bsp/stm32/stm32f410-st-nucleo/README.md index 674092c585..5c4079d384 100644 --- a/bsp/stm32/stm32f410-st-nucleo/README.md +++ b/bsp/stm32/stm32f410-st-nucleo/README.md @@ -20,7 +20,7 @@ ![board](figures/board.png) -该开发板常用 ** 板载资源 ** 如下: +该开发板常用 **板载资源** 如下: - MCU:STM32F410RBT6,主频 84MHz,128KB FLASH ,32KB RAM。 - 常用外设 @@ -91,7 +91,7 @@ msh > 4. 输入 `scons --target=mdk4/mdk5/iar` 命令重新生成工程。 -本章节更多详细的介绍请参考 [STM32 系列 BSP 外设驱动使用教程](../docs/STM32 系列 BSP 外设驱动使用教程. md)。 +本章节更多详细的介绍请参考 [STM32 系列 BSP 外设驱动使用教程](../docs/STM32系列BSP外设驱动使用教程.md)。 ## 注意事项 diff --git a/bsp/stm32/stm32f410-st-nucleo/board/Kconfig b/bsp/stm32/stm32f410-st-nucleo/board/Kconfig index 98a7620b75..b0aa3d2a26 100644 --- a/bsp/stm32/stm32f410-st-nucleo/board/Kconfig +++ b/bsp/stm32/stm32f410-st-nucleo/board/Kconfig @@ -42,95 +42,6 @@ menu "On-chip Peripheral Drivers" default n endif - - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - comment "Notice: PB8 --> 24; PB9 --> 25" - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 80 - default 24 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 80 - default 25 - endif - - menuconfig BSP_USING_SPI - bool "Enable SPI BUS" - default n - select RT_USING_SPI - if BSP_USING_SPI - config BSP_USING_SPI1 - bool "Enable SPI1 BUS" - default n - - config BSP_SPI1_TX_USING_DMA - bool "Enable SPI1 TX DMA" - depends on BSP_USING_SPI1 - default n - - config BSP_SPI1_RX_USING_DMA - bool "Enable SPI1 RX DMA" - depends on BSP_USING_SPI1 - select BSP_SPI1_TX_USING_DMA - default n - endif - - menuconfig BSP_USING_PWM - bool "Enable pwm" - default n - select RT_USING_PWM - if BSP_USING_PWM - menuconfig BSP_USING_PWM3 - bool "Enable timer3 output pwm" - default n - if BSP_USING_PWM3 - config BSP_USING_PWM3_CH1 - bool "Enable PWM3 channel1 (PA6)" - default n - - config BSP_USING_PWM3_CH2 - bool "Enable PWM3 channel2 (PA7)" - default n - - config BSP_USING_PWM3_CH3 - bool "Enable PWM3 channel3 (PB0)" - default n - - config BSP_USING_PWM3_CH4 - bool "Enable PWM3 channel4 (PB1)" - default n - endif - endif - - menuconfig BSP_USING_ONCHIP_RTC - bool "Enable RTC" - select RT_USING_RTC - select RT_USING_LIBC - default n - if BSP_USING_ONCHIP_RTC - choice - prompt "Select clock source" - default BSP_RTC_USING_LSE - - config BSP_RTC_USING_LSE - bool "RTC USING LSE" - - config BSP_RTC_USING_LSI - bool "RTC USING LSI" - endchoice - endif - - config BSP_USING_ON_CHIP_FLASH - bool "Enable on-chip FLASH" - default n - source "../libraries/HAL_Drivers/Kconfig" endmenu diff --git a/bsp/stm32/stm32f410-st-nucleo/board/SConscript b/bsp/stm32/stm32f410-st-nucleo/board/SConscript index 45da9228a8..9da6dc63fb 100644 --- a/bsp/stm32/stm32f410-st-nucleo/board/SConscript +++ b/bsp/stm32/stm32f410-st-nucleo/board/SConscript @@ -34,4 +34,4 @@ elif rtconfig.CROSS_TOOL == 'iar': CPPDEFINES = ['STM32F410Rx'] group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path, CPPDEFINES = CPPDEFINES) -Return('group') \ No newline at end of file +Return('group') diff --git a/bsp/stm32/stm32f410-st-nucleo/board/board.c b/bsp/stm32/stm32f410-st-nucleo/board/board.c index 0f59b7dea6..dffc7ffba0 100644 --- a/bsp/stm32/stm32f410-st-nucleo/board/board.c +++ b/bsp/stm32/stm32f410-st-nucleo/board/board.c @@ -5,7 +5,7 @@ * * Change Logs: * Date Author Notes - * 2020-03-07 tanglj86 first version + * 2020-03-07 tanglj86 first version */ #include "board.h" diff --git a/bsp/stm32/stm32f410-st-nucleo/board/board.h b/bsp/stm32/stm32f410-st-nucleo/board/board.h index 58660f75ad..b9c9f8427f 100644 --- a/bsp/stm32/stm32f410-st-nucleo/board/board.h +++ b/bsp/stm32/stm32f410-st-nucleo/board/board.h @@ -5,7 +5,7 @@ * * Change Logs: * Date Author Notes - * 2020-03-07 tanglj86 first version + * 2020-03-07 tanglj86 first version */ #ifndef __BOARD_H__ From 95547922750f46aedae8776c04bc7c4fb4e1dd9a Mon Sep 17 00:00:00 2001 From: tanglj86 Date: Sat, 21 Mar 2020 08:51:18 +0800 Subject: [PATCH 3/3] [bsp/stm32] add bsp stm32f410-st-nucleo in travis file. --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index ef09eebad4..056664bafe 100644 --- a/.travis.yml +++ b/.travis.yml @@ -87,6 +87,7 @@ env: - RTT_BSP='stm32/stm32f405-smdz-breadfruit' RTT_TOOL_CHAIN='sourcery-arm' - RTT_BSP='stm32/stm32f407-atk-explorer' RTT_TOOL_CHAIN='sourcery-arm' - RTT_BSP='stm32/stm32f407-st-discovery' RTT_TOOL_CHAIN='sourcery-arm' + - RTT_BSP='stm32/stm32f410-st-nucleo' RTT_TOOL_CHAIN='sourcery-arm' - RTT_BSP='stm32/stm32f411-st-nucleo' RTT_TOOL_CHAIN='sourcery-arm' - RTT_BSP='stm32/stm32f411-weact-MiniF4' RTT_TOOL_CHAIN='sourcery-arm' - RTT_BSP='stm32/stm32f427-robomaster-a' RTT_TOOL_CHAIN='sourcery-arm'

4ezN+6h;37RiriC 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�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�o|Z9{yB9U_9s< zWY}P9XNMrH6ZgRLJ+w(&>{g@kq`(V&Ow`8nA+cZsOIH|F-yrblWs_2n7+g-c4rvG; zG6Tj3N5_fskajRuY3T+)Wjb{FRYJc42}Gjj79Y}g#~L>bCz)?e3ga?7iIgaCn?n6c z6?%qZ$)YmW!6rGs?l#W}@OA7a3Qy1#DH@O{gjG~DXi~5#SnyD!`N*%p%iNyP$4Fxw z7JOSd{@`)%9%lUX5|>CLRS~Edtd~Wt&;@%`uvw+LGx9nIJ2`7BtsS3gS`6A=>f*Zq z-DqlH7(ez7g;Ok!6+_?KT~cOpSVl0U5zXq8vtOfi+RIGVIkk1nULI*=D24Gs=+XmN z8365yRFEB0fbhcSzoRlj#>e!{+=6VlB`{;7gBGI#;^rL{zk*(rIDhh|~ns z9({=8m##9udY2E{%gi5}qT29@mY2En`j5FC$2|1KFERhXJgKo*-={B(%dKG*;NzT; z2a9p~^Rz-oCkC$%+cOJ>juHWM-%OA>dQ0!A`+d@aHOs?DeY&3BpN|Qd(`19Ngto+R z?Z#6XT#>o!Tog)Ple4fT?c^>S>APijxn&PmrX%~rTA3}* z?UN3c1*yxFBNDVQXyNosNiU+ey@TA^B*dUnK{tu%2{6roZlKtT`ovN){p6FR+HmLf zH&GbUMAO^aVdLs`W*$06?c@ozx4QJ#R`G>J=!DL#yL5XU=1!awDlU;y9sMtFh3WX6MFT-h1_X zv~JyE<@z$$Hro)#Tz=`hw6@lXq~XTO9aeAOCFu4!7B(=Q9%(niSc{Qhd1hyHU94?z@$*?fr+U1uK^|RDH5<=_kla2*sA;b~`J(zO@)|g(e># zbvBV2i_kiotSLkd<&BM_>|q)3=C9MzY+3H7dA!*B4Uo$k<~$0+VN6Kjm_{j(#<7k0 zHB@=b+mCS?$u~_xw!qc~C8Vok2KXjLekglQ$IXZ1&XohEgRt!Rra1?ea?q7hfV1NF zWE&dG3b1Qjc)5KDu7dX#WEoB~4}o#e)hf4muu7n<#Tv&Xll77EuqHEx`XCr#UtkO% zl0k>J3Tz102kRk>2gXBK4~vI26|4;~!XGfx<2;l5ozLli00kxl6M(58GLNP*3M)+U zOz+xjP+s6j=LHl*2$dp5f;H~mXqzuMoIX|_*;oFcb8Op4MT#xtY>dP-9N=5vJq z-^<+kU;miKm%oaBc8P_#B}A>kwyCpK52#Gn>BSmz?i^lomen`kVXog}s#2$S^A6KV z0#84I*wHN4E6iWJMB|aukQzGIR%jux3$v^Sl2mxk{bCKi)uc)yg+L}CD~hDvU^Ue& zJn|GvQgY?`4Hjd|+x>`|2x(|VZD*SWZRp*;%X>fh3Djpe{o7w92_$u~z}d}ZUi#nO zg>lzO#}HkM75FcbKs{TMG1*#M&k1J0*_IUaR6m*Za^)N*i< zgAgr-fzLg+g83-DzK^It%i)2#U?V^IkL}Oda)!vuCe(o&7luJj@uXPrg>+cjSUfA- z<3zpzC*Rp$a-(LaD%`gWJR)R=loKYD+2ow8g8P3z%W}Hxk3C)Uqc)_=E^APS7}EQ1 z_wi?L}XDrz={-sL|KcrPKSL2jz5J~ z?&QUe;Zcp!C(MLV2rIz^7~^)}TV>(b{~^;+$lKrl0aJhW|8nv#EdI4kRl+7Vk&iyIMGD)5a#NnzCfojC&LPjwH{)7mAQ@U z?7a30VH7btTc`cVL*R$>wzi;=(p>Ez`*7^HzQN6DMK4WJ)?<+>Q;Q*Mw^s=gLD=-L zCc(E7<0%jkZV(RKfM8*0Yx5`2ly%zN9H@lm@K9b_2Z-~bR*U=X;#EMxpr%#sCrh8- z!5n-jJIq=h*#r|#Rg3WlzFGtbQ^4f1`&3#AR#jVrkfK;<<;gb6(G7Cuvd}N*HpZbK zviC>h-sYQt4zma6!`M*xwakSsg!oYVQ_HUNA<+0SnaJ)FW{_IA(2bI1!ZS<+uO9+l z4V@eIV~<6_Q@Zcupe+BA+cmJC4P8=^16_y4q;MfZCz;c{mq2Z)zSd@$7)$RLeL|K7 z()%^S$~!-KgYe2-W_!O!^Z94#%+Hh7s?--3(Y{Cf>J{ph8Y@>m;PkOYY;%e@ ziV0@tX(PF z#+uz_6wMH&A%CcCqX+MWpKTUqLF@Lh{or!C-4x#|V zgT7RrD$C|vshOKSTYQwka2Zq;ENQke%`*6~sEsWhob4pbC*4xdo(PPK^BsX9?I?h6?hpMVvL^2VHNulfvEPGtv}T}PKm z_F~~>2hVa*`{8gS`&cfmaysE$dSWvcS!C@UztD576~eJMGMhwg=?dGT^Sjy|037Et z@wk&6+&+zwDLxH$&s`?>$x>yJCPAqbVSEe{q+%lsNtTun^YesXG@Rb(VODMtd~k{7 z|KtDUtv~$}zP30;>&yvSi6K0(#9fiFbonZCXHU_-b%m)Xo}fS7z^=DA@$i%QKYa}^ zN{L!sYAZYRzjy)s0MdktUqyP76oZlOaq|O3p9B@VRlO&DqODDA*Wk@op<2W1w+Ys6 z@<7FB;dg$A#jQ22UcN+-bgA9xFx703?A)b)`#o;I`4(rt@+G3K#&5MbE;jk$5B{E~ z&p%CLYKG4>X9)UT)}n-+z$frR<_$>UxfH3Mi&Bu{p*0vAW$`ARSpcmFl%Q@SHt|sS z1TviH8XY&;Oqzhk4lWbRH7>yYt};i#a10Y7X^gTsGDj*0o+0zuZrD`LW{k39c68{o zAPnPDoQt9FK*3^+shXKE5y{f=R=6u;M=8ksd=t39Lq(7H$iPC3EFSW=KWZF35M#ix z%SyEyVG64<(5i>n;j-u&6?EkR2feCL6o*p-|v9i)k_f1vlsCA??O$(D%|bixL6M z{!u)3ebiQo69Jn)QaJ-Zv+vdWl!6GP^ z<_U7oWG<)3h?8RV>;{7(eui}mjw4yck$o&Cw1)&VhQxCru=;6-z9;A@MPeW!vyGVVjgLn2}ZhIlMYMg+*ScgeoE6u)UW=K z)+i~E)+g*4f|{Y@S%OZFByOY99w8A31;&s_&oNY` z@gfm1QYzvQTB1)|bm*xbP9kt*NA~Hraq@-zHd75I%j|W=B+IO@e4|(Hf-RV1neX)X zvWZo?4L*Q%%b5YwDKeLC26%EwP}#X)l|YqanH>Ub7Gi^(&HV_Hxf~=+tiuRs%)!|G zHYW|pVi-wL;KBpjm^w}Zs|MFbWpc00@NtJd^@p|5>+HN(*``A&5Zbzk5qZ>!@^`U= ze&Hx+_r4Ov{dK*X!mCiQ!`VF^($U+}MqzO{S&cKaKtqvzEH7avHwl!lk|2;^QevIb(F)X5*`2j5OY5~P$*aJMFl$+s1wmkL;D!qzf@`h_ zZn)$x;gY|A8wmRb0%I_NWI!m8khDgucZJqscjvP|&PP>czAqPDlhto?S_t zCt{|j&z!2ttjel-^2z6YU*`hH@p!`$kbhQI6RagYj(os`MkIm>?XMqYgLRz}-LAg* zDag5htcls!#?nsP{K5+)$i`X)AC$g})XS}q?ajN091p~Av<{asbUy#dCx>w!HE=Us zYswd?*{7=cZLEfjF&d?R&ej>22mUt>#o=0S5aMU~ySKM}@Pr$J7UH^jubvrLvT@*3 zP6W3;3F6KWW?@*V$^m}m9=2?U%$beWD?3BGHuFwz`i@UoY08Na28)&e9<$;3U_0e_ zhffZs;CznIbr?P-Y|-+g|NJL>;myCwjk|Y|KGGQMHGz0^!r{9=ChhNY`;9O2{(OO# zK&&e6|N0k+Kl(!+EL!f}zfW`TWxyl#gjGtsa{pBx{`p(17Ax+*_9gzWuZT(U$z%Nj zRxO=n@6+wzaFyq{?dXq>iEqEdPrvzJSiSYXdFA*1I?b5f+?mt_ z0ve5e)e@&OZXWFO-jCkKRSnU|zOc#JlJ z1xK9})r2K*O`w_V5pg{H-~kW*(>Hl?ctSM8?K`~Yo84J12-2TKDue@34&VQPHxOoZ z&GOT}&^zpKO^^*zb6HoyX38!xaut?RZO)PwLXdMEI|Q7=G%u-YDYzmA>T;P`b5>O0 zQf}GGdpz$3$SXR-%Xp}M=ZEyn&nruopsOJ}!N-NlX`*n}rnQkq`BaLv7lI8kKBP-C zxq$I*!&Q~|GPhC5L{QynpZKQV`V+B}$Z6$v{Cp&nf^C-P9xjfPY}Ww>lfbaKIgnI> zG{wp|v~e=Iwv?SGj#qDgz5t5L#gVd>y!JPb{MQ%*%0(H2%!ehBVWwh^F=No6GLIIE z;v?3an>gF}hV63J4_8vW*-#{<9KvMXS4D7Qr_|)ZVj+V)MWmFx&VAaE;~hR3h=Am| z`hIU5^hSHK!vD*E#nW&8H}-z@SGf7PUj?0#<_~!C&JVcxzaFE1?;AY%(&v!<84L3~ z@{amzU&Z~&zvg)Hgd4BC&ZC>kfjgk>5=H}Ge1oI6zK3YSKL2^%uLF$)`gX-M0XL?E z{hGzYzoh@8KO$+x^5~f6;ZIn;`yt_Y&da~^*U*3X5BSl6XL0`~H-GY&`?D#roul0f zBodvHnt-7!`^c@|c%9o{`CaPwe~SLaJN)op{B!Od9Ws6GRo?p_-(#3&xTI>~G@IZX%mO&g~4Ezo?5 z*La5=UIaE&p9@trP6@#44~NpoT1dx+ilq!?o!6L<>>epdnkx>Y#XTDxb-1 z*r3ja#$Tq(0;bBde504!(FT`XcVYbOEYBR8{Jfn0GT5BxtZgnY4o*)K!g2D%hNAch zVwijkgf&yKqJEY@y0c}o^B0Skd3xgx%cNMh!e$=5H|0CO{05J@IdA^< z@6m^wglUhiTI!76?0EnH5G_eWK~%coC$GKETlZh5t{vUyU*lE~j@lj$4p=M?d8Zd1 z-@ebcfBHW9tv{n%wlsBx-n>QiJ8$y(Z+(UEg)i{oeuLB%^4O5Q83*kGef*d&N`*dt zpS{Hi?#VGP?|+6>H^;@q?QTvpKjb?<{4UF;=H@^7r?jg%|KZ>KTYlr;|4+XBcfL;l z#&7cArQ1AGPmTc;ToC354e#H&%i=R%;tSJ#RtZ9wqM|50>Y?|Lq(Xf_QbOyBgMapq zdGPWtBjEsKn|7S9%H=QYQh~f2Ee4MUS z@EU!TjLZF(8M14Y?vyOGKH8NHwPl}TBZ1?RZ8?jrfwtReem*SQdxSJ7=|f;R zITOH;F+_?|=+t2@;Sdrf^{5VtVwQHt0w)8B9lh2YUVw7_hiYy)P;GNTJ(Dac_p*ti zB`Z;;al?1O)G=mGDoX;UDf@qiV@rNMV~Nw5WP~B5+u%jlfhbzcSt-W$4=VtJCpNQK zG3cz%nMlfj%iYV-Ic8c?w&nAa`!H0OEBj5kIvi3`UXP@=sH%ffixuTHBI3&(kaF5G z6LLxCp>JCHahjy(-`$z~%z57>)D00|?gy7AA*7PCIgbvHFAD9D4sYXJkGss*dc5+M z_n~D~$1I|oB-d<%WM43LH$2T72|vgyG`>7vhH+b}H2(3Q{=4U#H|@yr|L?d8IgZ7b zG*|P4^Jsy4LvmD)hi3Q3cM)vD{VtYs}9bfv3Lrz>m zUb@5oxv|elm9S;Yji%w=NcW$%jlrTNO`a@nnX^9^^`UDyfAXST}`{vMCclhXBrqt zh?L`t*o6f7xv)_bWV}uT$>1^pfHnrr4Y_BxZStbd-A7?mho4g=Jc~?Nqy%IYN-9Gw z>a{R9OfEzUand16fEz#8jV}%XWFt8)2Rq&74U&xFP)q_MLxC49zEc_PExElz=7;=0 z1DVT&%AF#sI()Z~;^F#^03GK`nDfPW*YmJeY$5dsYq62tz0m} z;Rfq~6$N!;3XplPLdl(MrQxF&7aRM@w32l-l~);xJo zS;qv}#(5kkT6sdnjvVjsac~hie%6b17>vHmaOZKsEdmurZHjX--{1-lf@4+H5CV-< ztP(gnL_0n=SLVKAnG&fAEGL3jMN{OJ=$QLV$d^#koK*xhRuZYTr$Gp94+`qRc|)k_ zL`dGVa*ohKtYMKN)5dcHn4HY1zx7|~{_@BC((iwRA3Qzey+8jcVKwL8OLw^U+1IG= zzk*hQP7_aWc+?x!s^crmng`$h@BCo3;-#;@Nj$hk-&Ay_IE|!eOcZ7+Je(QR-hmo@ zuyf=%7PWaATXJAQASMs~Jki{d<4a&ij@O&>vq6qAkE-P*Q7JDi&IHGO42;U4QM`uh zm+e4|o#gVo7w&`X4Tg&&{-6824IJk=u<0`uk+S^!obA}sFf&({s#D1(poLsff~Kl< z;gW3VM#Pmdt0b|JM2a&=MPb*RVlxy1>IOfu8Y;e&VK+>A#C%SJR*bbdCwwVLVT!mC zbZII3PbvOzwGxjRO5z6rEdg3G*b`(Vl9IBL<7^{i#HeIv@~xIDt(vY0vWX(pIf`Pc@AbkbK&*^H@p^0WAu48mB0E!_iVvGF^yf z8Es&w1D{XjZKX(_e29ZoDEOdUYx$lruFAME*E6FCw+_x7<@7w^aAddi=v~fge&uRR zYm_H>T<*y64$q6LD95>EBd1czsDSt>8oQFG5n9bSjU|rE@*O!K&-IU3uma@D06qfUZS$qp>5$ z>&^KYA;&72bm4HtPv``ayS}U}Ln^IN+tLz{XIgS3Ut%BS#qPwdmB!QExO%&WR9(+8 zc7(Oh7K%zc zQHS_Uh+`pFDha2)5G}?DjM5`iIOowsDdU|G3*dyxd(3*!o^?*&GRyJ_!;d5|MR4AM zt5NM?P;_ljn*kEe302{9nhcXfE_q$Zq6*H3LQH*8v-4OLm&a6PT{)_daG6|6jvui? znAHrdA_Pw|MO8`S@K%8s-g(3XwH~FzNy-6hmB&RRTEe+%B$Fbe22QVuqz;h^M+jLKs=h%peUEt{;DZZC;})D9MnbM}Id#;L4WT%8zS*yf>Zaru@DWdgHmv9O1#kYdk% zs8E*`z^o$YohGN$LC`+XN5!e9s&WPb!$6JXe4hNrK-0{L%MMYG^9>RVf|7`6pP$QS zIZ!#$lWaxKqF-k|ZK#fMG^el*) zrG`L2`s{`61yT|wAutioQ6ldXC7I!UQFB*4!M8Zs2l2G2MMCym3xYF8FN4j(;a$FR zD*&r#LuBx_dl7u_IGbSc2*VN7)5Sz5P*+0VD^==gnkgc}GIgv>@#5K=?h#jy!6x*r z5hgQMmPmb%0}iShaURUmRXtG^Et7y`5$7CDJ!3UL0TMAq%o#I3Ma0ubMV->e6_ch0 zGrIPKz1eL}juuGh*x#QqKRF?(qwNz_RncogW5QRC;2lvC@#%{F$t@g?l`im-2(zBO zx+SJPs(zVCd;mX)a10ZsJW}g^N?iro*yG(HuimXtS7Bm=l@g!At@;kf^EpkE)6DG1 z@ebFEXS@mQ%uf}lNz~H`ttyLliIYI^70DbLJCXs;V^u>JBfbjk)eT3sfVQOy74z6L zs~R*$f(k2(m_dq4Q#qVC+P=@Jkpg&i^litqt_Za!YRutBDPqYXVl*N9daYj)yACmr zxGD9dqVvK@dqP!DSS@>&u4Pi+#QKDnTpl$@k*l%ujKNy638$7P557bP zdq+wOs^C#qk^0E2zCmgaiB{6%NhH(`qetTkYg=a1m$6WjS|DjAkEzQRH_5?Om4n6n zm>aX3pgt?8bhOJA1kmMz(9|?8;OS5o5$B22bZLng)OAC&6;ZPtqxPQQ5}hi^DxB4L zOC(LqW{NEh)ksPm&U-2W=LG2!&Ko}D>WJDyr9SuD1n(d?&vJ1BRf7!6^^)I3!8as} zRCS|L8ExBA zO=kI;#GX(&CKgyO7R0F3H}|+X+2`=^kX8E>rwed_s-DvKk;(oPH<^(775#FKS+<=- zI;yHcfqvCeO#@XGSS^kKquHOKizP7{of@%QQn|o%0)Fav^ymQx2e%2{(JmwVd$*al zk60~^m`$f>GQ8xvkdvmu%(HAy&}jI^u~$u5#e@WpIL|6|;1Yd&OpHCwdMpH@54dRK z{WcVTL4?|>EYNAfrHG{ywDxmkC$F!ND!M?l_PCOSR z!f#O+KMicP2fX0)GCxmvo~1q2yd315%bulcfZtMnI9Cq3{5ZNwC7_FzLqG05E?P!T zS9pUB0TGwMU}rhMlZ!G3T;5i36$~o*S!_L@k`o-A+sBqMaG?$00?Wr%t3+Pp-O`Tp z`?$~sZ~@ZRQq0@?_oBwEPb z;zd29F5+!h;do;TypP$I9d@`7y9ve)JM8euV3V3YACVa{30#JFZ4%0{0^8aB>G|&r zo4shVJe18o-5`d5|B>8ZM$!K0)Ob7W@Qa5XIo{!gKtyoP?FjM?JM8cY1 zWP_VTcdSCkT1eY0`Y`O$e+o=L#FB*29;~lOYB65xtzp#k?9d_7Z zhwFr#HfdaXGuu#PH-0a>TodQ#2(Y^rY>4YuA^+p%pH{nf*x^&ajvVi>!wx&_@beAZ z%zs?mwa>!PKP20k@&t5dPt=K7RHQVX4PtRHZ=av1&JM8dtj{gTx WKVLZ=j`;Ba0000 + + 3 + + rtthread + + ARM + + 1 + + C-SPY + 2 + + 29 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 1 + + + + + + + + CADI_ID + 2 + + 0 + 1 + 1 + + + + + + + + + CMSISDAP_ID + 2 + + 4 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + IJET_ID + 2 + + 8 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + JLINK_ID + 2 + + 16 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 2 + 1 + 1 + + + + + + + + + + PEMICRO_ID + 2 + + 3 + 1 + 1 + + + + + + + + STLINK_ID + 2 + + 4 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 1 + + + + + + + + TIFET_ID + 2 + + 1 + 1 + 1 + + + + + + + + + + + + + + + + + + + XDS100_ID + 2 + + 6 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin + 0 + + + + + Release + + ARM + + 0 + + C-SPY + 2 + + 29 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 0 + + + + + + + + CADI_ID + 2 + + 0 + 1 + 0 + + + + + + + + + CMSISDAP_ID + 2 + + 4 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 0 + + + + + + + + + + + IJET_ID + 2 + + 8 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + JLINK_ID + 2 + + 16 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 2 + 1 + 0 + + + + + + + + + + PEMICRO_ID + 2 + + 3 + 1 + 0 + + + + + + + + STLINK_ID + 2 + + 4 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 0 + + + + + + + + TIFET_ID + 2 + + 1 + 1 + 0 + + + + + + + + + + + + + + + + + + + XDS100_ID + 2 + + 6 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin + 0 + + + + diff --git a/bsp/stm32/stm32f410-st-nucleo/project.ewp b/bsp/stm32/stm32f410-st-nucleo/project.ewp new file mode 100644 index 0000000000..62c7e09b99 --- /dev/null +++ b/bsp/stm32/stm32f410-st-nucleo/project.ewp @@ -0,0 +1,2257 @@ + + 3 + + rtthread + + ARM + + 1 + + General + 3 + + 29 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 34 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 10 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 1 + + + + + + + + + CUSTOM + 3 + + + + 0 + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 20 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 1 + + + + + + + BILINK + 0 + + + + + Release + + ARM + + 0 + + General + 3 + + 29 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 34 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 10 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 0 + + + + + + + + + CUSTOM + 3 + + + + 0 + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 20 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 0 + + + + + + + BILINK + 0 + + + + + Kernel + + $PROJ_DIR$\..\..\..\src\clock.c + + + $PROJ_DIR$\..\..\..\src\components.c + + + $PROJ_DIR$\..\..\..\src\cpu.c + + + $PROJ_DIR$\..\..\..\src\device.c + + + $PROJ_DIR$\..\..\..\src\idle.c + + + $PROJ_DIR$\..\..\..\src\ipc.c + + + $PROJ_DIR$\..\..\..\src\irq.c + + + $PROJ_DIR$\..\..\..\src\kservice.c + + + $PROJ_DIR$\..\..\..\src\mem.c + + + $PROJ_DIR$\..\..\..\src\mempool.c + + + $PROJ_DIR$\..\..\..\src\object.c + + + $PROJ_DIR$\..\..\..\src\scheduler.c + + + $PROJ_DIR$\..\..\..\src\signal.c + + + $PROJ_DIR$\..\..\..\src\thread.c + + + $PROJ_DIR$\..\..\..\src\timer.c + + + + Applications + + $PROJ_DIR$\applications\main.c + + + + Drivers + + $PROJ_DIR$\board\board.c + + + $PROJ_DIR$\board\CubeMX_Config\Src\stm32f4xx_hal_msp.c + + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\CMSIS\Device\ST\STM32F4xx\Source\Templates\iar\startup_stm32f411xe.s + + + $PROJ_DIR$\..\libraries\HAL_Drivers\drv_gpio.c + + + $PROJ_DIR$\..\libraries\HAL_Drivers\drv_usart.c + + + $PROJ_DIR$\..\libraries\HAL_Drivers\drv_common.c + + + + cpu + + $PROJ_DIR$\..\..\..\libcpu\arm\common\backtrace.c + + + $PROJ_DIR$\..\..\..\libcpu\arm\common\div0.c + + + $PROJ_DIR$\..\..\..\libcpu\arm\common\showmem.c + + + $PROJ_DIR$\..\..\..\libcpu\arm\cortex-m4\cpuport.c + + + $PROJ_DIR$\..\..\..\libcpu\arm\cortex-m4\context_iar.S + + + + DeviceDrivers + + $PROJ_DIR$\..\..\..\components\drivers\misc\pin.c + + + $PROJ_DIR$\..\..\..\components\drivers\serial\serial.c + + + $PROJ_DIR$\..\..\..\components\drivers\src\completion.c + + + $PROJ_DIR$\..\..\..\components\drivers\src\dataqueue.c + + + $PROJ_DIR$\..\..\..\components\drivers\src\pipe.c + + + $PROJ_DIR$\..\..\..\components\drivers\src\ringblk_buf.c + + + $PROJ_DIR$\..\..\..\components\drivers\src\ringbuffer.c + + + $PROJ_DIR$\..\..\..\components\drivers\src\waitqueue.c + + + $PROJ_DIR$\..\..\..\components\drivers\src\workqueue.c + + + + finsh + + $PROJ_DIR$\..\..\..\components\finsh\shell.c + + + $PROJ_DIR$\..\..\..\components\finsh\cmd.c + + + $PROJ_DIR$\..\..\..\components\finsh\msh.c + + + + libc + + + STM32_HAL + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\CMSIS\Device\ST\STM32F4xx\Source\Templates\system_stm32f4xx.c + + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal.c + + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cec.c + + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cortex.c + + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_crc.c + + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cryp.c + + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cryp_ex.c + + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma.c + + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma_ex.c + + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr.c + + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr_ex.c + + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc.c + + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc_ex.c + + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rng.c + + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_gpio.c + + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_uart.c + + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_usart.c + + + diff --git a/bsp/stm32/stm32f410-st-nucleo/project.eww b/bsp/stm32/stm32f410-st-nucleo/project.eww new file mode 100644 index 0000000000..c2cb02eb1e --- /dev/null +++ b/bsp/stm32/stm32f410-st-nucleo/project.eww @@ -0,0 +1,10 @@ + + + + + $WS_DIR$\project.ewp + + + + + diff --git a/bsp/stm32/stm32f410-st-nucleo/project.uvopt b/bsp/stm32/stm32f410-st-nucleo/project.uvopt new file mode 100644 index 0000000000..b53d69d5df --- /dev/null +++ b/bsp/stm32/stm32f410-st-nucleo/project.uvopt @@ -0,0 +1,162 @@ + + + + 1.0 + +