From 6f21aca5178f950a2cc49c767437536a38f13308 Mon Sep 17 00:00:00 2001 From: Dave Camarillo Date: Tue, 19 Feb 2013 16:03:57 -0800 Subject: [PATCH 01/52] added board files for waveshare 407I-C --- boards/WAVESHARE_OPEN_407I_C/board.c | 112 +++ boards/WAVESHARE_OPEN_407I_C/board.h | 1303 +++++++++++++++++++++++++ boards/WAVESHARE_OPEN_407I_C/board.mk | 5 + 3 files changed, 1420 insertions(+) create mode 100644 boards/WAVESHARE_OPEN_407I_C/board.c create mode 100644 boards/WAVESHARE_OPEN_407I_C/board.h create mode 100644 boards/WAVESHARE_OPEN_407I_C/board.mk diff --git a/boards/WAVESHARE_OPEN_407I_C/board.c b/boards/WAVESHARE_OPEN_407I_C/board.c new file mode 100644 index 0000000000..b8f1272f98 --- /dev/null +++ b/boards/WAVESHARE_OPEN_407I_C/board.c @@ -0,0 +1,112 @@ +/* + ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, + 2011,2012 Giovanni Di Sirio. + + This file is part of ChibiOS/RT. + + ChibiOS/RT is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + ChibiOS/RT is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#include "ch.h" +#include "hal.h" + +#if HAL_USE_PAL || defined(__DOXYGEN__) +/** + * @brief PAL setup. + * @details Digital I/O ports static configuration as defined in @p board.h. + * This variable is used by the HAL when initializing the PAL driver. + */ +const PALConfig pal_default_config = +{ + {VAL_GPIOA_MODER, VAL_GPIOA_OTYPER, VAL_GPIOA_OSPEEDR, VAL_GPIOA_PUPDR, + VAL_GPIOA_ODR, VAL_GPIOA_AFRL, VAL_GPIOA_AFRH}, + {VAL_GPIOB_MODER, VAL_GPIOB_OTYPER, VAL_GPIOB_OSPEEDR, VAL_GPIOB_PUPDR, + VAL_GPIOB_ODR, VAL_GPIOB_AFRL, VAL_GPIOB_AFRH}, + {VAL_GPIOC_MODER, VAL_GPIOC_OTYPER, VAL_GPIOC_OSPEEDR, VAL_GPIOC_PUPDR, + VAL_GPIOC_ODR, VAL_GPIOC_AFRL, VAL_GPIOC_AFRH}, + {VAL_GPIOD_MODER, VAL_GPIOD_OTYPER, VAL_GPIOD_OSPEEDR, VAL_GPIOD_PUPDR, + VAL_GPIOD_ODR, VAL_GPIOD_AFRL, VAL_GPIOD_AFRH}, + {VAL_GPIOE_MODER, VAL_GPIOE_OTYPER, VAL_GPIOE_OSPEEDR, VAL_GPIOE_PUPDR, + VAL_GPIOE_ODR, VAL_GPIOE_AFRL, VAL_GPIOE_AFRH}, + {VAL_GPIOF_MODER, VAL_GPIOF_OTYPER, VAL_GPIOF_OSPEEDR, VAL_GPIOF_PUPDR, + VAL_GPIOF_ODR, VAL_GPIOF_AFRL, VAL_GPIOF_AFRH}, + {VAL_GPIOG_MODER, VAL_GPIOG_OTYPER, VAL_GPIOG_OSPEEDR, VAL_GPIOG_PUPDR, + VAL_GPIOG_ODR, VAL_GPIOG_AFRL, VAL_GPIOG_AFRH}, + {VAL_GPIOH_MODER, VAL_GPIOH_OTYPER, VAL_GPIOH_OSPEEDR, VAL_GPIOH_PUPDR, + VAL_GPIOH_ODR, VAL_GPIOH_AFRL, VAL_GPIOH_AFRH}, + {VAL_GPIOI_MODER, VAL_GPIOI_OTYPER, VAL_GPIOI_OSPEEDR, VAL_GPIOI_PUPDR, + VAL_GPIOI_ODR, VAL_GPIOI_AFRL, VAL_GPIOI_AFRH} +}; +#endif + +/** + * @brief Early initialization code. + * @details This initialization must be performed just after stack setup + * and before any other initialization. + */ +void __early_init(void) { + + stm32_clock_init(); +} + +#if HAL_USE_SDC || defined(__DOXYGEN__) +/** + * @brief SDC card detection. + */ +bool_t sdc_lld_is_card_inserted(SDCDriver *sdcp) { + + (void)sdcp; + /* TODO: Fill the implementation.*/ + return TRUE; +} + +/** + * @brief SDC card write protection detection. + */ +bool_t sdc_lld_is_write_protected(SDCDriver *sdcp) { + + (void)sdcp; + /* TODO: Fill the implementation.*/ + return FALSE; +} +#endif /* HAL_USE_SDC */ + +#if HAL_USE_MMC_SPI || defined(__DOXYGEN__) +/** + * @brief MMC_SPI card detection. + */ +bool_t mmc_lld_is_card_inserted(MMCDriver *mmcp) { + + (void)mmcp; + /* TODO: Fill the implementation.*/ + return TRUE; +} + +/** + * @brief MMC_SPI card write protection detection. + */ +bool_t mmc_lld_is_write_protected(MMCDriver *mmcp) { + + (void)mmcp; + /* TODO: Fill the implementation.*/ + return FALSE; +} +#endif + +/** + * @brief Board-specific initialization code. + * @todo Add your board-specific code, if any. + */ +void boardInit(void) { +} diff --git a/boards/WAVESHARE_OPEN_407I_C/board.h b/boards/WAVESHARE_OPEN_407I_C/board.h new file mode 100644 index 0000000000..c1408b1947 --- /dev/null +++ b/boards/WAVESHARE_OPEN_407I_C/board.h @@ -0,0 +1,1303 @@ +/* + ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, + 2011,2012 Giovanni Di Sirio. + + This file is part of ChibiOS/RT. + + ChibiOS/RT is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + ChibiOS/RT is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#ifndef _BOARD_H_ +#define _BOARD_H_ + +/* + * Setup for WaveShare, Open 207I/407I-C board. + */ + +/* + * Board identifier. + * + * http://www.wvshare.com/product/Open407I-C-Package-B.htm + */ +#define BOARD_ST_STM32F4_OPEN_207I +#define BOARD_NAME "WaveShare Open STM32F4 207I-C / 407I-C" + + +/* + * Board oscillators-related settings. + * NOTE: LSE not fitted. + */ +#if !defined(STM32_LSECLK) +#define STM32_LSECLK 0 +#endif + +#if !defined(STM32_HSECLK) +#define STM32_HSECLK 8000000 +#endif + + +/* + * Board voltages. + * Required for performance limits calculation. + */ +#define STM32_VDD 300 + +/* + * MCU type as defined in the ST header file stm32f4xx.h. + */ +#define STM32F4XX + +/* + * IO pins assignments. + */ +#define GPIOA_WAKE_BUTTON 0 +#define GPIOA_PIN1 1 +#define GPIOA_PIN2 2 +#define GPIOA_OTG_HS_ULPI_D0 3 +#define GPIOA_LRCK 4 +#define GPIOA_OTG_HS_ULPI_CLKOUT 5 +#define GPIOA_SDO 6 +#define GPIOA_SDI 7 +#define GPIOA_PIN8 8 +#define GPIOA_VBUS_FS 9 +#define GPIOA_OTG_FS_ID 10 +#define GPIOA_OTG_FS_DM 11 +#define GPIOA_OTG_FS_DP 12 +#define GPIOA_SWDIO 13 +#define GPIOA_SWCLK 14 +#define GPIOA_PIN15 15 + +#define GPIOB_OTG_HS_ULPI_D1 0 +#define GPIOB_OTG_HS_ULPI_D2 1 +#define GPIOB_PIN2 2 +#define GPIOB_SWO 3 +#define GPIOB_PIN4 4 +#define GPIOB_OTG_HS_ULPI_D7 5 +#define GPIOB_SCL 6 +#define GPIOB_PIN7 7 +#define GPIOB_PIN8 8 +#define GPIOB_SDA 9 +#define GPIOB_OTG_HS_ULPI_D3 10 +#define GPIOB_OTG_HS_ULPI_D4 11 +#define GPIOB_OTG_HS_ULPI_D5 12 +#define GPIOB_OTG_HS_ULPI_D6 13 +#define GPIOB_PIN14 14 +#define GPIOB_PIN15 15 + +#define GPIOC_OTG_HS_ULPI_STP 0 +#define GPIOC_PIN1 1 +#define GPIOC_PIN2 2 +#define GPIOC_PDM_OUT 3 +#define GPIOC_PIN4 4 +#define GPIOC_PIN5 5 +#define GPIOC_PIN6 6 +#define GPIOC_MCLK 7 +#define GPIOC_SDIO_D0 8 +#define GPIOC_SDIO_D1 9 +#define GPIOC_SDIO_D2 10 +#define GPIOC_SDIO_D3 11 +#define GPIOC_SDIO_CLK 12 +#define GPIOC_SDIO_POWER 13 +#define GPIOC_PIN14 14 +#define GPIOC_PIN15 15 + +#define GPIOD_PIN0 0 +#define GPIOD_PIN1 1 +#define GPIOD_SDIO_CMD 2 +#define GPIOD_PIN3 3 +#define GPIOD_RESET 4 +#define GPIOD_SERIAL_2_TX 5 +#define GPIOD_SERIAL_2_RX 6 +#define GPIOD_PIN7 7 +#define GPIOD_PIN8 8 +#define GPIOD_PIN9 9 +#define GPIOD_PIN10 10 +#define GPIOD_PIN11 11 +#define GPIOD_PIN12 12 +#define GPIOD_PIN13 13 +#define GPIOD_PIN14 14 +#define GPIOD_PIN15 15 + +#define GPIOE_INT1 0 +#define GPIOE_INT2 1 +#define GPIOE_JOYSTICK_A 2 +#define GPIOE_JOYSTICK_B 3 +#define GPIOE_JOYSTICK_C 4 +#define GPIOE_JOYSTICK_D 5 +#define GPIOE_JOYSTICK_CTR 6 +#define GPIOE_PIN7 7 +#define GPIOE_PIN8 8 +#define GPIOE_PIN9 9 +#define GPIOE_PIN10 10 +#define GPIOE_PIN11 11 +#define GPIOE_PIN12 12 +#define GPIOE_PIN13 13 +#define GPIOE_PIN14 14 +#define GPIOE_PIN15 15 + +#define GPIOF_PIN0 0 +#define GPIOF_PIN1 1 +#define GPIOF_PIN2 2 +#define GPIOF_PIN3 3 +#define GPIOF_PIN4 4 +#define GPIOF_PIN5 5 +#define GPIOF_PIN6 6 +#define GPIOF_PIN7 7 +#define GPIOF_PIN8 8 +#define GPIOF_PIN9 9 +#define GPIOF_USER_BUTTON 10 +#define GPIOF_PIN11 11 +#define GPIOF_PIN12 12 +#define GPIOF_PIN13 13 +#define GPIOF_PIN14 14 +#define GPIOF_PIN15 15 + +#define GPIOG_PIN0 0 +#define GPIOG_PIN1 1 +#define GPIOG_PIN2 2 +#define GPIOG_PIN3 3 +#define GPIOG_PIN4 4 +#define GPIOG_PIN5 5 +#define GPIOG_PIN6 6 +#define GPIOG_PIN7 7 +#define GPIOG_SDIO_CARD_DETECT 8 +#define GPIOG_PIN9 9 +#define GPIOG_PIN10 10 +#define GPIOG_PIN11 11 +#define GPIOG_PIN12 12 +#define GPIOG_PIN13 13 +#define GPIOG_PIN14 14 +#define GPIOG_PIN15 15 + +#define GPIOH_OSC_IN 0 +#define GPIOH_OSC_OUT 1 +#define GPIOH_LED1 2 +#define GPIOH_LED2 3 +#define GPIOH_OTG_HS_ULPI_NXT 4 +#define GPIOH_PIN5 5 +#define GPIOH_PIN6 6 +#define GPIOH_PIN7 7 +#define GPIOH_PIN8 8 +#define GPIOH_PIN9 9 +#define GPIOH_PIN10 10 +#define GPIOH_PIN11 11 +#define GPIOH_PIN12 12 +#define GPIOH_PIN13 13 +#define GPIOH_PIN14 14 +#define GPIOH_PIN15 15 + +#define GPIOI_PIN0 0 +#define GPIOI_PIN1 1 +#define GPIOI_PIN2 2 +#define GPIOI_PIN3 3 +#define GPIOI_PIN4 4 +#define GPIOI_PIN5 5 +#define GPIOI_PIN6 6 +#define GPIOI_PIN7 7 +#define GPIOI_LED3 8 +#define GPIOI_PIN9 9 +#define GPIOI_LED4 10 +#define GPIOI_OTG_HS_ULPI_DIR 11 +#define GPIOI_PIN12 12 +#define GPIOI_PIN13 13 +#define GPIOI_PIN14 14 +#define GPIOI_PIN15 15 + +/* + * I/O ports initial setup, this configuration is established soon after reset + * in the initialization code. + * Please refer to the STM32 Reference Manual for details. + */ +#define PIN_MODE_INPUT(n) (0U << ((n) * 2)) +#define PIN_MODE_OUTPUT(n) (1U << ((n) * 2)) +#define PIN_MODE_ALTERNATE(n) (2U << ((n) * 2)) +#define PIN_MODE_ANALOG(n) (3U << ((n) * 2)) +#define PIN_ODR_LOW(n) (0U << (n)) +#define PIN_ODR_HIGH(n) (1U << (n)) +#define PIN_OTYPE_PUSHPULL(n) (0U << (n)) +#define PIN_OTYPE_OPENDRAIN(n) (1U << (n)) +#define PIN_OSPEED_2M(n) (0U << ((n) * 2)) +#define PIN_OSPEED_25M(n) (1U << ((n) * 2)) +#define PIN_OSPEED_50M(n) (2U << ((n) * 2)) +#define PIN_OSPEED_100M(n) (3U << ((n) * 2)) +#define PIN_PUPDR_FLOATING(n) (0U << ((n) * 2)) +#define PIN_PUPDR_PULLUP(n) (1U << ((n) * 2)) +#define PIN_PUPDR_PULLDOWN(n) (2U << ((n) * 2)) +#define PIN_AFIO_AF(n, v) ((v##U) << ((n % 8) * 4)) + +/* + * GPIOA setup: + * + * PA0 - BUTTON (input floating). + * PA1 - PIN1 (input pullup). + * PA2 - PIN2 (input pullup). + * PA3 - OTG_HS_ULPI_D0 (alternate 10) + * PA4 - LRCK (alternate 6). + * PA5 - OTG_HS_ULPI_CLKOUT (alternate 10) + * PA6 - SDO (alternate 5). + * PA7 - SDI (alternate 5). + * PA8 - PIN8 (input pullup). + * PA9 - VBUS_FS (input floating). + * PA10 - OTG_FS_ID (alternate 10). + * PA11 - OTG_FS_DM (alternate 10). + * PA12 - OTG_FS_DP (alternate 10). + * PA13 - SWDIO (alternate 0). + * PA14 - SWCLK (alternate 0). + * PA15 - PIN15 (input pullup). + */ +#define VAL_GPIOA_MODER (PIN_MODE_INPUT(GPIOA_WAKE_BUTTON) | \ + PIN_MODE_INPUT(GPIOA_PIN1) | \ + PIN_MODE_INPUT(GPIOA_PIN2) | \ + PIN_MODE_ALTERNATE(GPIOA_OTG_HS_ULPI_D0) | \ + PIN_MODE_ALTERNATE(GPIOA_LRCK) | \ + PIN_MODE_ALTERNATE(GPIOA_OTG_HS_ULPI_CLKOUT) | \ + PIN_MODE_ALTERNATE(GPIOA_SDO) | \ + PIN_MODE_ALTERNATE(GPIOA_SDI) | \ + PIN_MODE_INPUT(GPIOA_PIN8) | \ + PIN_MODE_INPUT(GPIOA_VBUS_FS) | \ + PIN_MODE_ALTERNATE(GPIOA_OTG_FS_ID) | \ + PIN_MODE_ALTERNATE(GPIOA_OTG_FS_DM) | \ + PIN_MODE_ALTERNATE(GPIOA_OTG_FS_DP) | \ + PIN_MODE_ALTERNATE(GPIOA_SWDIO) | \ + PIN_MODE_ALTERNATE(GPIOA_SWCLK) | \ + PIN_MODE_INPUT(GPIOA_PIN15)) +#define VAL_GPIOA_OTYPER (PIN_OTYPE_PUSHPULL(GPIOA_WAKE_BUTTON) | \ + PIN_OTYPE_PUSHPULL(GPIOA_PIN1) | \ + PIN_OTYPE_PUSHPULL(GPIOA_PIN2) | \ + PIN_OTYPE_PUSHPULL(GPIOA_OTG_HS_ULPI_D0) | \ + PIN_OTYPE_PUSHPULL(GPIOA_LRCK) | \ + PIN_OTYPE_PUSHPULL(GPIOA_OTG_HS_ULPI_CLKOUT) | \ + PIN_OTYPE_PUSHPULL(GPIOA_SDO) | \ + PIN_OTYPE_PUSHPULL(GPIOA_SDI) | \ + PIN_OTYPE_PUSHPULL(GPIOA_PIN8) | \ + PIN_OTYPE_PUSHPULL(GPIOA_VBUS_FS) | \ + PIN_OTYPE_PUSHPULL(GPIOA_OTG_FS_ID) | \ + PIN_OTYPE_PUSHPULL(GPIOA_OTG_FS_DM) | \ + PIN_OTYPE_PUSHPULL(GPIOA_OTG_FS_DP) | \ + PIN_OTYPE_PUSHPULL(GPIOA_SWDIO) | \ + PIN_OTYPE_PUSHPULL(GPIOA_SWCLK) | \ + PIN_OTYPE_PUSHPULL(GPIOA_PIN15)) +#define VAL_GPIOA_OSPEEDR (PIN_OSPEED_100M(GPIOA_WAKE_BUTTON) | \ + PIN_OSPEED_100M(GPIOA_PIN1) | \ + PIN_OSPEED_100M(GPIOA_PIN2) | \ + PIN_OSPEED_100M(GPIOA_OTG_HS_ULPI_D0) | \ + PIN_OSPEED_100M(GPIOA_LRCK) | \ + PIN_OSPEED_100M(GPIOA_OTG_HS_ULPI_CLKOUT) | \ + PIN_OSPEED_50M(GPIOA_SDO) | \ + PIN_OSPEED_50M(GPIOA_SDI) | \ + PIN_OSPEED_100M(GPIOA_PIN8) | \ + PIN_OSPEED_100M(GPIOA_VBUS_FS) | \ + PIN_OSPEED_100M(GPIOA_OTG_FS_ID) | \ + PIN_OSPEED_100M(GPIOA_OTG_FS_DM) | \ + PIN_OSPEED_100M(GPIOA_OTG_FS_DP) | \ + PIN_OSPEED_100M(GPIOA_SWDIO) | \ + PIN_OSPEED_100M(GPIOA_SWCLK) | \ + PIN_OSPEED_100M(GPIOA_PIN15)) +#define VAL_GPIOA_PUPDR (PIN_PUPDR_FLOATING(GPIOA_WAKE_BUTTON) | \ + PIN_PUPDR_PULLUP(GPIOA_PIN1) | \ + PIN_PUPDR_PULLUP(GPIOA_PIN2) | \ + PIN_PUPDR_FLOATING(GPIOA_OTG_HS_ULPI_D0) | \ + PIN_PUPDR_FLOATING(GPIOA_LRCK) | \ + PIN_PUPDR_FLOATING(GPIOA_OTG_HS_ULPI_CLKOUT) | \ + PIN_PUPDR_FLOATING(GPIOA_SDO) | \ + PIN_PUPDR_FLOATING(GPIOA_SDI) | \ + PIN_PUPDR_PULLUP(GPIOA_PIN8) | \ + PIN_PUPDR_FLOATING(GPIOA_VBUS_FS) | \ + PIN_PUPDR_FLOATING(GPIOA_OTG_FS_ID) | \ + PIN_PUPDR_FLOATING(GPIOA_OTG_FS_DM) | \ + PIN_PUPDR_FLOATING(GPIOA_OTG_FS_DP) | \ + PIN_PUPDR_FLOATING(GPIOA_SWDIO) | \ + PIN_PUPDR_FLOATING(GPIOA_SWCLK) | \ + PIN_PUPDR_PULLUP(GPIOA_PIN15)) +#define VAL_GPIOA_ODR (PIN_ODR_HIGH(GPIOA_WAKE_BUTTON) | \ + PIN_ODR_HIGH(GPIOA_PIN1) | \ + PIN_ODR_HIGH(GPIOA_PIN2) | \ + PIN_ODR_HIGH(GPIOA_OTG_HS_ULPI_D0) | \ + PIN_ODR_HIGH(GPIOA_LRCK) | \ + PIN_ODR_HIGH(GPIOA_OTG_HS_ULPI_CLKOUT) | \ + PIN_ODR_HIGH(GPIOA_SDO) | \ + PIN_ODR_HIGH(GPIOA_SDI) | \ + PIN_ODR_HIGH(GPIOA_PIN8) | \ + PIN_ODR_HIGH(GPIOA_VBUS_FS) | \ + PIN_ODR_HIGH(GPIOA_OTG_FS_ID) | \ + PIN_ODR_HIGH(GPIOA_OTG_FS_DM) | \ + PIN_ODR_HIGH(GPIOA_OTG_FS_DP) | \ + PIN_ODR_HIGH(GPIOA_SWDIO) | \ + PIN_ODR_HIGH(GPIOA_SWCLK) | \ + PIN_ODR_HIGH(GPIOA_PIN15)) +#define VAL_GPIOA_AFRL (PIN_AFIO_AF(GPIOA_WAKE_BUTTON, 0) | \ + PIN_AFIO_AF(GPIOA_PIN1, 0) | \ + PIN_AFIO_AF(GPIOA_PIN2, 0) | \ + PIN_AFIO_AF(GPIOA_OTG_HS_ULPI_D0, 10) | \ + PIN_AFIO_AF(GPIOA_LRCK, 6) | \ + PIN_AFIO_AF(GPIOA_OTG_HS_ULPI_CLKOUT, 10) | \ + PIN_AFIO_AF(GPIOA_SDO, 5) | \ + PIN_AFIO_AF(GPIOA_SDI, 5)) +#define VAL_GPIOA_AFRH (PIN_AFIO_AF(GPIOA_PIN8, 0) | \ + PIN_AFIO_AF(GPIOA_VBUS_FS, 0) | \ + PIN_AFIO_AF(GPIOA_OTG_FS_ID, 10) | \ + PIN_AFIO_AF(GPIOA_OTG_FS_DM, 10) | \ + PIN_AFIO_AF(GPIOA_OTG_FS_DP, 10) | \ + PIN_AFIO_AF(GPIOA_SWDIO, 0) | \ + PIN_AFIO_AF(GPIOA_SWCLK, 0) | \ + PIN_AFIO_AF(GPIOA_PIN15, 0)) + +/* + * GPIOB setup: + * + * PB0 - OTG_HS_ULPI_D1 (alternate 10). + * PB1 - OTG_HS_ULPI_D2 (alternate 10). + * PB2 - PIN2 (input pullup). + * PB3 - SWO (alternate 0). + * PB4 - PIN4 (input pullup). + * PB5 - OTG_HS_ULPI_D7 (alternate 10). + * PB6 - SCL (alternate 4). + * PB7 - PIN7 (input pullup). + * PB8 - PIN8 (input pullup). + * PB9 - SDA (alternate 4). + * PB10 - OTG_HS_ULPI_D3 (alternate 10). + * PB11 - OTG_HS_ULPI_D4 (alternate 10). + * PB12 - OTG_HS_ULPI_D5 (alternate 10). + * PB13 - OTG_HS_ULPI_D6 (alternate 10). + * PB14 - PIN14 (input pullup). + * PB15 - PIN15 (input pullup). + */ +#define VAL_GPIOB_MODER (PIN_MODE_ALTERNATE(GPIOB_OTG_HS_ULPI_D1) | \ + PIN_MODE_ALTERNATE(GPIOB_OTG_HS_ULPI_D2) | \ + PIN_MODE_INPUT(GPIOB_PIN2) | \ + PIN_MODE_ALTERNATE(GPIOB_SWO) | \ + PIN_MODE_INPUT(GPIOB_PIN4) | \ + PIN_MODE_ALTERNATE(GPIOB_OTG_HS_ULPI_D7) | \ + PIN_MODE_ALTERNATE(GPIOB_SCL) | \ + PIN_MODE_INPUT(GPIOB_PIN7) | \ + PIN_MODE_INPUT(GPIOB_PIN8) | \ + PIN_MODE_ALTERNATE(GPIOB_SDA) | \ + PIN_MODE_ALTERNATE(GPIOB_OTG_HS_ULPI_D3) | \ + PIN_MODE_ALTERNATE(GPIOB_OTG_HS_ULPI_D4) | \ + PIN_MODE_ALTERNATE(GPIOB_OTG_HS_ULPI_D5) | \ + PIN_MODE_ALTERNATE(GPIOB_OTG_HS_ULPI_D6) | \ + PIN_MODE_INPUT(GPIOB_PIN14) | \ + PIN_MODE_INPUT(GPIOB_PIN15)) +#define VAL_GPIOB_OTYPER (PIN_OTYPE_PUSHPULL(GPIOB_OTG_HS_ULPI_D1) | \ + PIN_OTYPE_PUSHPULL(GPIOB_OTG_HS_ULPI_D2) | \ + PIN_OTYPE_PUSHPULL(GPIOB_PIN2) | \ + PIN_OTYPE_PUSHPULL(GPIOB_SWO) | \ + PIN_OTYPE_PUSHPULL(GPIOB_PIN4) | \ + PIN_OTYPE_PUSHPULL(GPIOB_OTG_HS_ULPI_D7) | \ + PIN_OTYPE_OPENDRAIN(GPIOB_SCL) | \ + PIN_OTYPE_PUSHPULL(GPIOB_PIN7) | \ + PIN_OTYPE_PUSHPULL(GPIOB_PIN8) | \ + PIN_OTYPE_OPENDRAIN(GPIOB_SDA) | \ + PIN_OTYPE_PUSHPULL(GPIOB_OTG_HS_ULPI_D3) | \ + PIN_OTYPE_PUSHPULL(GPIOB_OTG_HS_ULPI_D4) | \ + PIN_OTYPE_PUSHPULL(GPIOB_OTG_HS_ULPI_D5) | \ + PIN_OTYPE_PUSHPULL(GPIOB_OTG_HS_ULPI_D6) | \ + PIN_OTYPE_PUSHPULL(GPIOB_PIN14) | \ + PIN_OTYPE_PUSHPULL(GPIOB_PIN15)) +#define VAL_GPIOB_OSPEEDR (PIN_OSPEED_100M(GPIOB_OTG_HS_ULPI_D1) | \ + PIN_OSPEED_100M(GPIOB_OTG_HS_ULPI_D2) | \ + PIN_OSPEED_100M(GPIOB_PIN2) | \ + PIN_OSPEED_100M(GPIOB_SWO) | \ + PIN_OSPEED_100M(GPIOB_PIN4) | \ + PIN_OSPEED_100M(GPIOB_OTG_HS_ULPI_D7) | \ + PIN_OSPEED_100M(GPIOB_SCL) | \ + PIN_OSPEED_100M(GPIOB_PIN7) | \ + PIN_OSPEED_100M(GPIOB_PIN8) | \ + PIN_OSPEED_100M(GPIOB_SDA) | \ + PIN_OSPEED_100M(GPIOB_OTG_HS_ULPI_D3) | \ + PIN_OSPEED_100M(GPIOB_OTG_HS_ULPI_D4) | \ + PIN_OSPEED_100M(GPIOB_OTG_HS_ULPI_D5) | \ + PIN_OSPEED_100M(GPIOB_OTG_HS_ULPI_D6) | \ + PIN_OSPEED_100M(GPIOB_PIN14) | \ + PIN_OSPEED_100M(GPIOB_PIN15)) +#define VAL_GPIOB_PUPDR (PIN_PUPDR_FLOATING(GPIOB_OTG_HS_ULPI_D1) | \ + PIN_PUPDR_FLOATING(GPIOB_OTG_HS_ULPI_D2) | \ + PIN_PUPDR_PULLUP(GPIOB_PIN2) | \ + PIN_PUPDR_FLOATING(GPIOB_SWO) | \ + PIN_PUPDR_PULLUP(GPIOB_PIN4) | \ + PIN_PUPDR_FLOATING(GPIOB_OTG_HS_ULPI_D7) | \ + PIN_PUPDR_FLOATING(GPIOB_SCL) | \ + PIN_PUPDR_PULLUP(GPIOB_PIN7) | \ + PIN_PUPDR_PULLUP(GPIOB_PIN8) | \ + PIN_PUPDR_FLOATING(GPIOB_SDA) | \ + PIN_PUPDR_FLOATING(GPIOB_OTG_HS_ULPI_D3) | \ + PIN_PUPDR_FLOATING(GPIOB_OTG_HS_ULPI_D4) | \ + PIN_PUPDR_FLOATING(GPIOB_OTG_HS_ULPI_D5) | \ + PIN_PUPDR_FLOATING(GPIOB_OTG_HS_ULPI_D6) | \ + PIN_PUPDR_PULLUP(GPIOB_PIN14) | \ + PIN_PUPDR_PULLUP(GPIOB_PIN15)) +#define VAL_GPIOB_ODR (PIN_ODR_HIGH(GPIOB_OTG_HS_ULPI_D1) | \ + PIN_ODR_HIGH(GPIOB_OTG_HS_ULPI_D2) | \ + PIN_ODR_HIGH(GPIOB_PIN2) | \ + PIN_ODR_HIGH(GPIOB_SWO) | \ + PIN_ODR_HIGH(GPIOB_PIN4) | \ + PIN_ODR_HIGH(GPIOB_OTG_HS_ULPI_D7) | \ + PIN_ODR_HIGH(GPIOB_SCL) | \ + PIN_ODR_HIGH(GPIOB_PIN7) | \ + PIN_ODR_HIGH(GPIOB_PIN8) | \ + PIN_ODR_HIGH(GPIOB_SDA) | \ + PIN_ODR_HIGH(GPIOB_OTG_HS_ULPI_D3) | \ + PIN_ODR_HIGH(GPIOB_OTG_HS_ULPI_D4) | \ + PIN_ODR_HIGH(GPIOB_OTG_HS_ULPI_D5) | \ + PIN_ODR_HIGH(GPIOB_OTG_HS_ULPI_D6) | \ + PIN_ODR_HIGH(GPIOB_PIN14) | \ + PIN_ODR_HIGH(GPIOB_PIN15)) +#define VAL_GPIOB_AFRL (PIN_AFIO_AF(GPIOB_OTG_HS_ULPI_D1, 10) | \ + PIN_AFIO_AF(GPIOB_OTG_HS_ULPI_D2, 10) | \ + PIN_AFIO_AF(GPIOB_PIN2, 0) | \ + PIN_AFIO_AF(GPIOB_SWO, 0) | \ + PIN_AFIO_AF(GPIOB_PIN4, 0) | \ + PIN_AFIO_AF(GPIOB_OTG_HS_ULPI_D7, 10) | \ + PIN_AFIO_AF(GPIOB_SCL, 4) | \ + PIN_AFIO_AF(GPIOB_PIN7, 0)) +#define VAL_GPIOB_AFRH (PIN_AFIO_AF(GPIOB_PIN8, 0) | \ + PIN_AFIO_AF(GPIOB_SDA, 4) | \ + PIN_AFIO_AF(GPIOB_OTG_HS_ULPI_D3, 10) | \ + PIN_AFIO_AF(GPIOB_OTG_HS_ULPI_D4, 10) | \ + PIN_AFIO_AF(GPIOB_OTG_HS_ULPI_D5, 10) | \ + PIN_AFIO_AF(GPIOB_OTG_HS_ULPI_D6, 10) | \ + PIN_AFIO_AF(GPIOB_PIN14, 0) | \ + PIN_AFIO_AF(GPIOB_PIN15, 0)) + +/* + * GPIOC setup: + * + * PC0 - OTG_HS_ULPI_ST (alternate 10). + * PC1 - PIN1 (input pullup). + * PC2 - PIN2 (input pullup). + * PC3 - PDM_OUT (input pullup). + * PC4 - PIN4 (input pullup). + * PC5 - PIN5 (input pullup). + * PC6 - PIN6 (input pullup). + * PC7 - MCLK (alternate 6). + * PC8 - SDIO_D0 (alternate 12). + * PC9 - SDIO_D1 (alternate 12). + * PC10 - SDIO_D2 (alternate 12). + * PC11 - SDIO_D3 (alternate 12). + * PC12 - SDIO_CLK (alternate 12). + * PC13 - SDIO_POWER (output pushpull). + * PC14 - PIN14 (input pullup). + * PC15 - PIN15 (input pullup). + */ +#define VAL_GPIOC_MODER (PIN_MODE_ALTERNATE(GPIOC_OTG_HS_ULPI_STP) |\ + PIN_MODE_INPUT(GPIOC_PIN1) | \ + PIN_MODE_INPUT(GPIOC_PIN2) | \ + PIN_MODE_INPUT(GPIOC_PDM_OUT) | \ + PIN_MODE_INPUT(GPIOC_PIN4) | \ + PIN_MODE_INPUT(GPIOC_PIN5) | \ + PIN_MODE_INPUT(GPIOC_PIN6) | \ + PIN_MODE_ALTERNATE(GPIOC_MCLK) | \ + PIN_MODE_ALTERNATE(GPIOC_SDIO_D0) | \ + PIN_MODE_ALTERNATE(GPIOC_SDIO_D1) | \ + PIN_MODE_ALTERNATE(GPIOC_SDIO_D2) | \ + PIN_MODE_ALTERNATE(GPIOC_SDIO_D3) | \ + PIN_MODE_ALTERNATE(GPIOC_SDIO_CLK) | \ + PIN_MODE_OUTPUT(GPIOC_SDIO_POWER) | \ + PIN_MODE_INPUT(GPIOC_PIN14) | \ + PIN_MODE_INPUT(GPIOC_PIN15)) +#define VAL_GPIOC_OTYPER (PIN_OTYPE_PUSHPULL(GPIOC_OTG_HS_ULPI_STP) |\ + PIN_OTYPE_PUSHPULL(GPIOC_PIN1) | \ + PIN_OTYPE_PUSHPULL(GPIOC_PIN2) | \ + PIN_OTYPE_PUSHPULL(GPIOC_PDM_OUT) | \ + PIN_OTYPE_PUSHPULL(GPIOC_PIN4) | \ + PIN_OTYPE_PUSHPULL(GPIOC_PIN5) | \ + PIN_OTYPE_PUSHPULL(GPIOC_PIN6) | \ + PIN_OTYPE_PUSHPULL(GPIOC_MCLK) | \ + PIN_OTYPE_PUSHPULL(GPIOC_SDIO_D0) | \ + PIN_OTYPE_PUSHPULL(GPIOC_SDIO_D1) | \ + PIN_OTYPE_PUSHPULL(GPIOC_SDIO_D2) | \ + PIN_OTYPE_PUSHPULL(GPIOC_SDIO_D3) | \ + PIN_OTYPE_PUSHPULL(GPIOC_SDIO_CLK) | \ + PIN_OTYPE_PUSHPULL(GPIOC_SDIO_POWER) | \ + PIN_OTYPE_PUSHPULL(GPIOC_PIN14) | \ + PIN_OTYPE_PUSHPULL(GPIOC_PIN15)) +#define VAL_GPIOC_OSPEEDR (PIN_OSPEED_100M(GPIOC_OTG_HS_ULPI_STP) |\ + PIN_OSPEED_100M(GPIOC_PIN1) | \ + PIN_OSPEED_100M(GPIOC_PIN2) | \ + PIN_OSPEED_100M(GPIOC_PDM_OUT) | \ + PIN_OSPEED_100M(GPIOC_PIN4) | \ + PIN_OSPEED_100M(GPIOC_PIN5) | \ + PIN_OSPEED_100M(GPIOC_PIN6) | \ + PIN_OSPEED_100M(GPIOC_MCLK) | \ + PIN_OSPEED_100M(GPIOC_SDIO_D0) | \ + PIN_OSPEED_100M(GPIOC_SDIO_D1) | \ + PIN_OSPEED_100M(GPIOC_SDIO_D2) | \ + PIN_OSPEED_100M(GPIOC_SDIO_D3) | \ + PIN_OSPEED_100M(GPIOC_SDIO_CLK) | \ + PIN_OSPEED_100M(GPIOC_SDIO_POWER) | \ + PIN_OSPEED_100M(GPIOC_PIN14) | \ + PIN_OSPEED_100M(GPIOC_PIN15)) +#define VAL_GPIOC_PUPDR (PIN_PUPDR_FLOATING(GPIOC_OTG_HS_ULPI_STP) |\ + PIN_PUPDR_PULLUP(GPIOC_PIN1) | \ + PIN_PUPDR_PULLUP(GPIOC_PIN2) | \ + PIN_PUPDR_PULLUP(GPIOC_PDM_OUT) | \ + PIN_PUPDR_PULLUP(GPIOC_PIN4) | \ + PIN_PUPDR_PULLUP(GPIOC_PIN5) | \ + PIN_PUPDR_PULLUP(GPIOC_PIN6) | \ + PIN_PUPDR_FLOATING(GPIOC_MCLK) | \ + PIN_PUPDR_FLOATING(GPIOC_SDIO_D0) | \ + PIN_PUPDR_FLOATING(GPIOC_SDIO_D1) | \ + PIN_PUPDR_FLOATING(GPIOC_SDIO_D2) | \ + PIN_PUPDR_FLOATING(GPIOC_SDIO_D3) | \ + PIN_PUPDR_FLOATING(GPIOC_SDIO_CLK) | \ + PIN_PUPDR_PULLUP(GPIOC_SDIO_POWER) | \ + PIN_PUPDR_PULLUP(GPIOC_PIN14) | \ + PIN_PUPDR_PULLUP(GPIOC_PIN15)) +#define VAL_GPIOC_ODR (PIN_ODR_HIGH(GPIOC_OTG_HS_ULPI_STP) | \ + PIN_ODR_HIGH(GPIOC_PIN1) | \ + PIN_ODR_HIGH(GPIOC_PIN2) | \ + PIN_ODR_HIGH(GPIOC_PDM_OUT) | \ + PIN_ODR_HIGH(GPIOC_PIN4) | \ + PIN_ODR_HIGH(GPIOC_PIN5) | \ + PIN_ODR_HIGH(GPIOC_PIN6) | \ + PIN_ODR_HIGH(GPIOC_MCLK) | \ + PIN_ODR_HIGH(GPIOC_SDIO_D0) | \ + PIN_ODR_HIGH(GPIOC_SDIO_D1) | \ + PIN_ODR_HIGH(GPIOC_SDIO_D2) | \ + PIN_ODR_HIGH(GPIOC_SDIO_D3) | \ + PIN_ODR_HIGH(GPIOC_SDIO_CLK) | \ + PIN_ODR_HIGH(GPIOC_SDIO_POWER) | \ + PIN_ODR_HIGH(GPIOC_PIN14) | \ + PIN_ODR_HIGH(GPIOC_PIN15)) +#define VAL_GPIOC_AFRL (PIN_AFIO_AF(GPIOC_OTG_HS_ULPI_STP, 10) |\ + PIN_AFIO_AF(GPIOC_PIN1, 0) | \ + PIN_AFIO_AF(GPIOC_PIN2, 0) | \ + PIN_AFIO_AF(GPIOC_PDM_OUT, 0) | \ + PIN_AFIO_AF(GPIOC_PIN4, 0) | \ + PIN_AFIO_AF(GPIOC_PIN5, 0) | \ + PIN_AFIO_AF(GPIOC_PIN6, 0) | \ + PIN_AFIO_AF(GPIOC_MCLK, 6)) +#define VAL_GPIOC_AFRH (PIN_AFIO_AF(GPIOC_SDIO_D0, 12) | \ + PIN_AFIO_AF(GPIOC_SDIO_D1, 12) | \ + PIN_AFIO_AF(GPIOC_SDIO_D2, 12) | \ + PIN_AFIO_AF(GPIOC_SDIO_D3, 12) | \ + PIN_AFIO_AF(GPIOC_SDIO_CLK, 12) | \ + PIN_AFIO_AF(GPIOC_SDIO_POWER, 0) | \ + PIN_AFIO_AF(GPIOC_PIN14, 0) | \ + PIN_AFIO_AF(GPIOC_PIN15, 0)) + +/* + * GPIOD setup: + * + * PD0 - PIN0 (input pullup). + * PD1 - PIN1 (input pullup). + * PD2 - SDIO_CMD (alternate 12). + * PD3 - PIN3 (input pullup). + * PD4 - RESET (output pushpull maximum). + * PD5 - OVER_CURRENT (input floating). + * PD6 - PIN6 (input pullup). + * PD7 - PIN7 (input pullup). + * PD8 - PIN8 (input pullup). + * PD9 - PIN9 (input pullup). + * PD10 - PIN10 (input pullup). + * PD11 - PIN11 (input floating). + * PD12 - PIN12 (output pushpull maximum). + * PD13 - PIN13 (input pullup). + * PD14 - LED5 (output pushpull maximum). + * PD15 - LED6 (output pushpull maximum). + */ +#define VAL_GPIOD_MODER (PIN_MODE_INPUT(GPIOD_PIN0) | \ + PIN_MODE_INPUT(GPIOD_PIN1) | \ + PIN_MODE_ALTERNATE(GPIOD_SDIO_CMD) | \ + PIN_MODE_INPUT(GPIOD_PIN3) | \ + PIN_MODE_OUTPUT(GPIOD_RESET) | \ + PIN_MODE_ALTERNATE(GPIOD_SERIAL_2_TX) | \ + PIN_MODE_ALTERNATE(GPIOD_SERIAL_2_RX) | \ + PIN_MODE_INPUT(GPIOD_PIN7) | \ + PIN_MODE_INPUT(GPIOD_PIN8) | \ + PIN_MODE_INPUT(GPIOD_PIN9) | \ + PIN_MODE_INPUT(GPIOD_PIN10) | \ + PIN_MODE_INPUT(GPIOD_PIN11) | \ + PIN_MODE_INPUT(GPIOD_PIN12) | \ + PIN_MODE_INPUT(GPIOD_PIN13) | \ + PIN_MODE_INPUT(GPIOD_PIN14) | \ + PIN_MODE_INPUT(GPIOD_PIN15)) +#define VAL_GPIOD_OTYPER (PIN_OTYPE_PUSHPULL(GPIOD_PIN0) | \ + PIN_OTYPE_PUSHPULL(GPIOD_PIN1) | \ + PIN_OTYPE_PUSHPULL(GPIOD_SDIO_CMD) | \ + PIN_OTYPE_PUSHPULL(GPIOD_PIN3) | \ + PIN_OTYPE_PUSHPULL(GPIOD_RESET) | \ + PIN_OTYPE_PUSHPULL(GPIOD_SERIAL_2_TX) |\ + PIN_OTYPE_PUSHPULL(GPIOD_SERIAL_2_RX) | \ + PIN_OTYPE_PUSHPULL(GPIOD_PIN7) | \ + PIN_OTYPE_PUSHPULL(GPIOD_PIN8) | \ + PIN_OTYPE_PUSHPULL(GPIOD_PIN9) | \ + PIN_OTYPE_PUSHPULL(GPIOD_PIN10) | \ + PIN_OTYPE_PUSHPULL(GPIOD_PIN11) | \ + PIN_OTYPE_PUSHPULL(GPIOD_PIN12) | \ + PIN_OTYPE_PUSHPULL(GPIOD_PIN13) | \ + PIN_OTYPE_PUSHPULL(GPIOD_PIN14) | \ + PIN_OTYPE_PUSHPULL(GPIOD_PIN15)) +#define VAL_GPIOD_OSPEEDR (PIN_OSPEED_100M(GPIOD_PIN0) | \ + PIN_OSPEED_100M(GPIOD_PIN1) | \ + PIN_OSPEED_100M(GPIOD_SDIO_CMD) | \ + PIN_OSPEED_100M(GPIOD_PIN3) | \ + PIN_OSPEED_100M(GPIOD_RESET) | \ + PIN_OSPEED_100M(GPIOD_SERIAL_2_TX) | \ + PIN_OSPEED_100M(GPIOD_SERIAL_2_RX) | \ + PIN_OSPEED_100M(GPIOD_PIN7) | \ + PIN_OSPEED_100M(GPIOD_PIN8) | \ + PIN_OSPEED_100M(GPIOD_PIN9) | \ + PIN_OSPEED_100M(GPIOD_PIN10) | \ + PIN_OSPEED_100M(GPIOD_PIN11) | \ + PIN_OSPEED_100M(GPIOD_PIN12) | \ + PIN_OSPEED_100M(GPIOD_PIN13) | \ + PIN_OSPEED_100M(GPIOD_PIN14) | \ + PIN_OSPEED_100M(GPIOD_PIN15)) +#define VAL_GPIOD_PUPDR (PIN_PUPDR_PULLUP(GPIOD_PIN0) | \ + PIN_PUPDR_PULLUP(GPIOD_PIN1) | \ + PIN_PUPDR_FLOATING(GPIOD_SDIO_CMD) | \ + PIN_PUPDR_PULLUP(GPIOD_PIN3) | \ + PIN_PUPDR_FLOATING(GPIOD_RESET) | \ + PIN_PUPDR_FLOATING(GPIOD_SERIAL_2_TX) |\ + PIN_PUPDR_FLOATING(GPIOD_SERIAL_2_TX) | \ + PIN_PUPDR_PULLUP(GPIOD_PIN7) | \ + PIN_PUPDR_PULLUP(GPIOD_PIN8) | \ + PIN_PUPDR_PULLUP(GPIOD_PIN9) | \ + PIN_PUPDR_PULLUP(GPIOD_PIN10) | \ + PIN_PUPDR_FLOATING(GPIOD_PIN11) | \ + PIN_PUPDR_FLOATING(GPIOD_PIN12) | \ + PIN_PUPDR_FLOATING(GPIOD_PIN13) | \ + PIN_PUPDR_FLOATING(GPIOD_PIN14) | \ + PIN_PUPDR_FLOATING(GPIOD_PIN15)) +#define VAL_GPIOD_ODR (PIN_ODR_HIGH(GPIOD_PIN0) | \ + PIN_ODR_HIGH(GPIOD_PIN1) | \ + PIN_ODR_HIGH(GPIOD_SDIO_CMD) | \ + PIN_ODR_HIGH(GPIOD_PIN3) | \ + PIN_ODR_HIGH(GPIOD_RESET) | \ + PIN_ODR_HIGH(GPIOD_SERIAL_2_TX) | \ + PIN_ODR_HIGH(GPIOD_SERIAL_2_RX) | \ + PIN_ODR_HIGH(GPIOD_PIN7) | \ + PIN_ODR_HIGH(GPIOD_PIN8) | \ + PIN_ODR_HIGH(GPIOD_PIN9) | \ + PIN_ODR_HIGH(GPIOD_PIN10) | \ + PIN_ODR_HIGH(GPIOD_PIN11) | \ + PIN_ODR_HIGH(GPIOD_PIN12) | \ + PIN_ODR_HIGH(GPIOD_PIN13) | \ + PIN_ODR_HIGH(GPIOD_PIN14) | \ + PIN_ODR_HIGH(GPIOD_PIN15)) +#define VAL_GPIOD_AFRL (PIN_AFIO_AF(GPIOD_PIN0, 0) | \ + PIN_AFIO_AF(GPIOD_PIN1, 0) | \ + PIN_AFIO_AF(GPIOD_SDIO_CMD, 12) | \ + PIN_AFIO_AF(GPIOD_PIN3, 0) | \ + PIN_AFIO_AF(GPIOD_RESET, 0) | \ + PIN_AFIO_AF(GPIOD_SERIAL_2_TX, 7) | \ + PIN_AFIO_AF(GPIOD_SERIAL_2_RX, 7) | \ + PIN_AFIO_AF(GPIOD_PIN7, 0)) +#define VAL_GPIOD_AFRH (PIN_AFIO_AF(GPIOD_PIN8, 0) | \ + PIN_AFIO_AF(GPIOD_PIN9, 0) | \ + PIN_AFIO_AF(GPIOD_PIN10, 0) | \ + PIN_AFIO_AF(GPIOD_PIN11, 0) | \ + PIN_AFIO_AF(GPIOD_PIN12, 0) | \ + PIN_AFIO_AF(GPIOD_PIN13, 0) | \ + PIN_AFIO_AF(GPIOD_PIN14, 0) | \ + PIN_AFIO_AF(GPIOD_PIN15, 0)) + +/* + * GPIOE setup: + * + * PE0 - INT1 (input floating). + * PE1 - INT2 (input floating). + * PE2 - JOYSTICK_A (input floating). + * PE3 - JOYSTICK_B (input floating). + * PE4 - JOYSTICK_C (input floating). + * PE5 - JOYSTICK_D (input floating). + * PE6 - JOYSTICK_CTR (input floating). + * PE7 - PIN7 (input floating). + * PE8 - PIN8 (input floating). + * PE9 - PIN9 (input floating). + * PE10 - PIN10 (input floating). + * PE11 - PIN11 (input floating). + * PE12 - PIN12 (input floating). + * PE13 - PIN13 (input floating). + * PE14 - PIN14 (input floating). + * PE15 - PIN15 (input floating). + */ +#define VAL_GPIOE_MODER (PIN_MODE_INPUT(GPIOE_INT1) | \ + PIN_MODE_INPUT(GPIOE_INT2) | \ + PIN_MODE_INPUT(GPIOE_JOYSTICK_A) | \ + PIN_MODE_INPUT(GPIOE_JOYSTICK_B) | \ + PIN_MODE_INPUT(GPIOE_JOYSTICK_C) | \ + PIN_MODE_INPUT(GPIOE_JOYSTICK_D) | \ + PIN_MODE_INPUT(GPIOE_JOYSTICK_CTR) | \ + PIN_MODE_INPUT(GPIOE_PIN7) | \ + PIN_MODE_INPUT(GPIOE_PIN8) | \ + PIN_MODE_INPUT(GPIOE_PIN9) | \ + PIN_MODE_INPUT(GPIOE_PIN10) | \ + PIN_MODE_INPUT(GPIOE_PIN11) | \ + PIN_MODE_INPUT(GPIOE_PIN12) | \ + PIN_MODE_INPUT(GPIOE_PIN13) | \ + PIN_MODE_INPUT(GPIOE_PIN14) | \ + PIN_MODE_INPUT(GPIOE_PIN15)) +#define VAL_GPIOE_OTYPER (PIN_OTYPE_PUSHPULL(GPIOE_INT1) | \ + PIN_OTYPE_PUSHPULL(GPIOE_INT2) | \ + PIN_OTYPE_PUSHPULL(GPIOE_JOYSTICK_A) | \ + PIN_OTYPE_PUSHPULL(GPIOE_JOYSTICK_B) | \ + PIN_OTYPE_PUSHPULL(GPIOE_JOYSTICK_C) | \ + PIN_OTYPE_PUSHPULL(GPIOE_JOYSTICK_D) | \ + PIN_OTYPE_PUSHPULL(GPIOE_JOYSTICK_CTR) | \ + PIN_OTYPE_PUSHPULL(GPIOE_PIN7) | \ + PIN_OTYPE_PUSHPULL(GPIOE_PIN8) | \ + PIN_OTYPE_PUSHPULL(GPIOE_PIN9) | \ + PIN_OTYPE_PUSHPULL(GPIOE_PIN10) | \ + PIN_OTYPE_PUSHPULL(GPIOE_PIN11) | \ + PIN_OTYPE_PUSHPULL(GPIOE_PIN12) | \ + PIN_OTYPE_PUSHPULL(GPIOE_PIN13) | \ + PIN_OTYPE_PUSHPULL(GPIOE_PIN14) | \ + PIN_OTYPE_PUSHPULL(GPIOE_PIN15)) +#define VAL_GPIOE_OSPEEDR (PIN_OSPEED_100M(GPIOE_INT1) | \ + PIN_OSPEED_100M(GPIOE_INT2) | \ + PIN_OSPEED_100M(GPIOE_JOYSTICK_A) | \ + PIN_OSPEED_100M(GPIOE_JOYSTICK_B) | \ + PIN_OSPEED_100M(GPIOE_JOYSTICK_C) | \ + PIN_OSPEED_100M(GPIOE_JOYSTICK_D) | \ + PIN_OSPEED_100M(GPIOE_JOYSTICK_CTR) | \ + PIN_OSPEED_100M(GPIOE_PIN7) | \ + PIN_OSPEED_100M(GPIOE_PIN8) | \ + PIN_OSPEED_100M(GPIOE_PIN9) | \ + PIN_OSPEED_100M(GPIOE_PIN10) | \ + PIN_OSPEED_100M(GPIOE_PIN11) | \ + PIN_OSPEED_100M(GPIOE_PIN12) | \ + PIN_OSPEED_100M(GPIOE_PIN13) | \ + PIN_OSPEED_100M(GPIOE_PIN14) | \ + PIN_OSPEED_100M(GPIOE_PIN15)) +#define VAL_GPIOE_PUPDR (PIN_PUPDR_FLOATING(GPIOE_INT1) | \ + PIN_PUPDR_FLOATING(GPIOE_INT2) | \ + PIN_PUPDR_FLOATING(GPIOE_JOYSTICK_A) | \ + PIN_PUPDR_FLOATING(GPIOE_JOYSTICK_B) | \ + PIN_PUPDR_FLOATING(GPIOE_JOYSTICK_C) | \ + PIN_PUPDR_FLOATING(GPIOE_JOYSTICK_D) | \ + PIN_PUPDR_FLOATING(GPIOE_JOYSTICK_CTR) |\ + PIN_PUPDR_FLOATING(GPIOE_PIN7) | \ + PIN_PUPDR_FLOATING(GPIOE_PIN8) | \ + PIN_PUPDR_FLOATING(GPIOE_PIN9) | \ + PIN_PUPDR_FLOATING(GPIOE_PIN10) | \ + PIN_PUPDR_FLOATING(GPIOE_PIN11) | \ + PIN_PUPDR_FLOATING(GPIOE_PIN12) | \ + PIN_PUPDR_FLOATING(GPIOE_PIN13) | \ + PIN_PUPDR_FLOATING(GPIOE_PIN14) | \ + PIN_PUPDR_FLOATING(GPIOE_PIN15)) +#define VAL_GPIOE_ODR (PIN_ODR_HIGH(GPIOE_INT1) | \ + PIN_ODR_HIGH(GPIOE_INT2) | \ + PIN_ODR_HIGH(GPIOE_JOYSTICK_A) | \ + PIN_ODR_HIGH(GPIOE_JOYSTICK_B) | \ + PIN_ODR_HIGH(GPIOE_JOYSTICK_C) | \ + PIN_ODR_HIGH(GPIOE_JOYSTICK_D) | \ + PIN_ODR_HIGH(GPIOE_JOYSTICK_CTR) | \ + PIN_ODR_HIGH(GPIOE_PIN7) | \ + PIN_ODR_HIGH(GPIOE_PIN8) | \ + PIN_ODR_HIGH(GPIOE_PIN9) | \ + PIN_ODR_HIGH(GPIOE_PIN10) | \ + PIN_ODR_HIGH(GPIOE_PIN11) | \ + PIN_ODR_HIGH(GPIOE_PIN12) | \ + PIN_ODR_HIGH(GPIOE_PIN13) | \ + PIN_ODR_HIGH(GPIOE_PIN14) | \ + PIN_ODR_HIGH(GPIOE_PIN15)) +#define VAL_GPIOE_AFRL (PIN_AFIO_AF(GPIOE_INT1, 0) | \ + PIN_AFIO_AF(GPIOE_INT2, 0) | \ + PIN_AFIO_AF(GPIOE_JOYSTICK_A, 0) | \ + PIN_AFIO_AF(GPIOE_JOYSTICK_B, 0) | \ + PIN_AFIO_AF(GPIOE_JOYSTICK_C, 0) | \ + PIN_AFIO_AF(GPIOE_JOYSTICK_D, 0) | \ + PIN_AFIO_AF(GPIOE_JOYSTICK_CTR, 0) | \ + PIN_AFIO_AF(GPIOE_PIN7, 0)) +#define VAL_GPIOE_AFRH (PIN_AFIO_AF(GPIOE_PIN8, 0) | \ + PIN_AFIO_AF(GPIOE_PIN9, 0) | \ + PIN_AFIO_AF(GPIOE_PIN10, 0) | \ + PIN_AFIO_AF(GPIOE_PIN11, 0) | \ + PIN_AFIO_AF(GPIOE_PIN12, 0) | \ + PIN_AFIO_AF(GPIOE_PIN13, 0) | \ + PIN_AFIO_AF(GPIOE_PIN14, 0) | \ + PIN_AFIO_AF(GPIOE_PIN15, 0)) + +/* + * GPIOF setup: + * + * PF0 - PIN0 (input floating). + * PF1 - PIN1 (input floating). + * PF2 - PIN2 (input floating). + * PF3 - PIN3 (input floating). + * PF4 - PIN4 (input floating). + * PF5 - PIN5 (input floating). + * PF6 - PIN6 (input floating). + * PF7 - PIN7 (input floating). + * PF8 - PIN8 (input floating). + * PF9 - PIN9 (input floating). + * PF10 - User Button (input pull up). + * PF11 - PIN11 (input floating). + * PF12 - PIN12 (input floating). + * PF13 - PIN13 (input floating). + * PF14 - PIN14 (input floating). + * PF15 - PIN15 (input floating). + */ +#define VAL_GPIOF_MODER (PIN_MODE_INPUT(GPIOF_PIN0) | \ + PIN_MODE_INPUT(GPIOF_PIN1) | \ + PIN_MODE_INPUT(GPIOF_PIN2) | \ + PIN_MODE_INPUT(GPIOF_PIN3) | \ + PIN_MODE_INPUT(GPIOF_PIN4) | \ + PIN_MODE_INPUT(GPIOF_PIN5) | \ + PIN_MODE_INPUT(GPIOF_PIN6) | \ + PIN_MODE_INPUT(GPIOF_PIN7) | \ + PIN_MODE_INPUT(GPIOF_PIN8) | \ + PIN_MODE_INPUT(GPIOF_PIN9) | \ + PIN_MODE_INPUT(GPIOF_USER_BUTTON) | \ + PIN_MODE_INPUT(GPIOF_PIN11) | \ + PIN_MODE_INPUT(GPIOF_PIN12) | \ + PIN_MODE_INPUT(GPIOF_PIN13) | \ + PIN_MODE_INPUT(GPIOF_PIN14) | \ + PIN_MODE_INPUT(GPIOF_PIN15)) +#define VAL_GPIOF_OTYPER (PIN_OTYPE_PUSHPULL(GPIOF_PIN0) | \ + PIN_OTYPE_PUSHPULL(GPIOF_PIN1) | \ + PIN_OTYPE_PUSHPULL(GPIOF_PIN2) | \ + PIN_OTYPE_PUSHPULL(GPIOF_PIN3) | \ + PIN_OTYPE_PUSHPULL(GPIOF_PIN4) | \ + PIN_OTYPE_PUSHPULL(GPIOF_PIN5) | \ + PIN_OTYPE_PUSHPULL(GPIOF_PIN6) | \ + PIN_OTYPE_PUSHPULL(GPIOF_PIN7) | \ + PIN_OTYPE_PUSHPULL(GPIOF_PIN8) | \ + PIN_OTYPE_PUSHPULL(GPIOF_PIN9) | \ + PIN_OTYPE_PUSHPULL(GPIOF_USER_BUTTON) |\ + PIN_OTYPE_PUSHPULL(GPIOF_PIN11) | \ + PIN_OTYPE_PUSHPULL(GPIOF_PIN12) | \ + PIN_OTYPE_PUSHPULL(GPIOF_PIN13) | \ + PIN_OTYPE_PUSHPULL(GPIOF_PIN14) | \ + PIN_OTYPE_PUSHPULL(GPIOF_PIN15)) +#define VAL_GPIOF_OSPEEDR (PIN_OSPEED_100M(GPIOF_PIN0) | \ + PIN_OSPEED_100M(GPIOF_PIN1) | \ + PIN_OSPEED_100M(GPIOF_PIN2) | \ + PIN_OSPEED_100M(GPIOF_PIN3) | \ + PIN_OSPEED_100M(GPIOF_PIN4) | \ + PIN_OSPEED_100M(GPIOF_PIN5) | \ + PIN_OSPEED_100M(GPIOF_PIN6) | \ + PIN_OSPEED_100M(GPIOF_PIN7) | \ + PIN_OSPEED_100M(GPIOF_PIN8) | \ + PIN_OSPEED_100M(GPIOF_PIN9) | \ + PIN_OSPEED_100M(GPIOF_USER_BUTTON) | \ + PIN_OSPEED_100M(GPIOF_PIN11) | \ + PIN_OSPEED_100M(GPIOF_PIN12) | \ + PIN_OSPEED_100M(GPIOF_PIN13) | \ + PIN_OSPEED_100M(GPIOF_PIN14) | \ + PIN_OSPEED_100M(GPIOF_PIN15)) +#define VAL_GPIOF_PUPDR (PIN_PUPDR_FLOATING(GPIOF_PIN0) | \ + PIN_PUPDR_FLOATING(GPIOF_PIN1) | \ + PIN_PUPDR_FLOATING(GPIOF_PIN2) | \ + PIN_PUPDR_FLOATING(GPIOF_PIN3) | \ + PIN_PUPDR_FLOATING(GPIOF_PIN4) | \ + PIN_PUPDR_FLOATING(GPIOF_PIN5) | \ + PIN_PUPDR_FLOATING(GPIOF_PIN6) | \ + PIN_PUPDR_FLOATING(GPIOF_PIN7) | \ + PIN_PUPDR_FLOATING(GPIOF_PIN8) | \ + PIN_PUPDR_FLOATING(GPIOF_PIN9) | \ + PIN_PUPDR_PULLUP(GPIOF_USER_BUTTON) | \ + PIN_PUPDR_FLOATING(GPIOF_PIN11) | \ + PIN_PUPDR_FLOATING(GPIOF_PIN12) | \ + PIN_PUPDR_FLOATING(GPIOF_PIN13) | \ + PIN_PUPDR_FLOATING(GPIOF_PIN14) | \ + PIN_PUPDR_FLOATING(GPIOF_PIN15)) +#define VAL_GPIOF_ODR (PIN_ODR_HIGH(GPIOF_PIN0) | \ + PIN_ODR_HIGH(GPIOF_PIN1) | \ + PIN_ODR_HIGH(GPIOF_PIN2) | \ + PIN_ODR_HIGH(GPIOF_PIN3) | \ + PIN_ODR_HIGH(GPIOF_PIN4) | \ + PIN_ODR_HIGH(GPIOF_PIN5) | \ + PIN_ODR_HIGH(GPIOF_PIN6) | \ + PIN_ODR_HIGH(GPIOF_PIN7) | \ + PIN_ODR_HIGH(GPIOF_PIN8) | \ + PIN_ODR_HIGH(GPIOF_PIN9) | \ + PIN_ODR_HIGH(GPIOF_USER_BUTTON) | \ + PIN_ODR_HIGH(GPIOF_PIN11) | \ + PIN_ODR_HIGH(GPIOF_PIN12) | \ + PIN_ODR_HIGH(GPIOF_PIN13) | \ + PIN_ODR_HIGH(GPIOF_PIN14) | \ + PIN_ODR_HIGH(GPIOF_PIN15)) +#define VAL_GPIOF_AFRL (PIN_AFIO_AF(GPIOF_PIN0, 0) | \ + PIN_AFIO_AF(GPIOF_PIN1, 0) | \ + PIN_AFIO_AF(GPIOF_PIN2, 0) | \ + PIN_AFIO_AF(GPIOF_PIN3, 0) | \ + PIN_AFIO_AF(GPIOF_PIN4, 0) | \ + PIN_AFIO_AF(GPIOF_PIN5, 0) | \ + PIN_AFIO_AF(GPIOF_PIN6, 0) | \ + PIN_AFIO_AF(GPIOF_PIN7, 0)) +#define VAL_GPIOF_AFRH (PIN_AFIO_AF(GPIOF_PIN8, 0) | \ + PIN_AFIO_AF(GPIOF_PIN9, 0) | \ + PIN_AFIO_AF(GPIOF_USER_BUTTON, 0) | \ + PIN_AFIO_AF(GPIOF_PIN11, 0) | \ + PIN_AFIO_AF(GPIOF_PIN12, 0) | \ + PIN_AFIO_AF(GPIOF_PIN13, 0) | \ + PIN_AFIO_AF(GPIOF_PIN14, 0) | \ + PIN_AFIO_AF(GPIOF_PIN15, 0)) + +/* + * GPIOG setup: + * + * PG0 - PIN0 (input floating). + * PG1 - PIN1 (input floating). + * PG2 - PIN2 (input floating). + * PG3 - PIN3 (input floating). + * PG4 - PIN4 (input floating). + * PG5 - PIN5 (input floating). + * PG6 - PIN6 (input floating). + * PG7 - PIN7 (input floating). + * PG8 - PIN8 (input floating). + * PG9 - PIN9 (input floating). + * PG10 - PIN10 (input floating). + * PG11 - PIN11 (input floating). + * PG12 - PIN12 (input floating). + * PG13 - PIN13 (input floating). + * PG14 - PIN14 (input floating). + * PG15 - PIN15 (input floating). + */ +#define VAL_GPIOG_MODER (PIN_MODE_INPUT(GPIOG_PIN0) | \ + PIN_MODE_INPUT(GPIOG_PIN1) | \ + PIN_MODE_INPUT(GPIOG_PIN2) | \ + PIN_MODE_INPUT(GPIOG_PIN3) | \ + PIN_MODE_INPUT(GPIOG_PIN4) | \ + PIN_MODE_INPUT(GPIOG_PIN5) | \ + PIN_MODE_INPUT(GPIOG_PIN6) | \ + PIN_MODE_INPUT(GPIOG_PIN7) | \ + PIN_MODE_INPUT(GPIOG_SDIO_CARD_DETECT) | \ + PIN_MODE_INPUT(GPIOG_PIN9) | \ + PIN_MODE_INPUT(GPIOG_PIN10) | \ + PIN_MODE_INPUT(GPIOG_PIN11) | \ + PIN_MODE_INPUT(GPIOG_PIN12) | \ + PIN_MODE_INPUT(GPIOG_PIN13) | \ + PIN_MODE_INPUT(GPIOG_PIN14) | \ + PIN_MODE_INPUT(GPIOG_PIN15)) +#define VAL_GPIOG_OTYPER (PIN_OTYPE_PUSHPULL(GPIOG_PIN0) | \ + PIN_OTYPE_PUSHPULL(GPIOG_PIN1) | \ + PIN_OTYPE_PUSHPULL(GPIOG_PIN2) | \ + PIN_OTYPE_PUSHPULL(GPIOG_PIN3) | \ + PIN_OTYPE_PUSHPULL(GPIOG_PIN4) | \ + PIN_OTYPE_PUSHPULL(GPIOG_PIN5) | \ + PIN_OTYPE_PUSHPULL(GPIOG_PIN6) | \ + PIN_OTYPE_PUSHPULL(GPIOG_PIN7) | \ + PIN_OTYPE_PUSHPULL(GPIOG_SDIO_CARD_DETECT) |\ + PIN_OTYPE_PUSHPULL(GPIOG_PIN9) | \ + PIN_OTYPE_PUSHPULL(GPIOG_PIN10) | \ + PIN_OTYPE_PUSHPULL(GPIOG_PIN11) | \ + PIN_OTYPE_PUSHPULL(GPIOG_PIN12) | \ + PIN_OTYPE_PUSHPULL(GPIOG_PIN13) | \ + PIN_OTYPE_PUSHPULL(GPIOG_PIN14) | \ + PIN_OTYPE_PUSHPULL(GPIOG_PIN15)) +#define VAL_GPIOG_OSPEEDR (PIN_OSPEED_100M(GPIOG_PIN0) | \ + PIN_OSPEED_100M(GPIOG_PIN1) | \ + PIN_OSPEED_100M(GPIOG_PIN2) | \ + PIN_OSPEED_100M(GPIOG_PIN3) | \ + PIN_OSPEED_100M(GPIOG_PIN4) | \ + PIN_OSPEED_100M(GPIOG_PIN5) | \ + PIN_OSPEED_100M(GPIOG_PIN6) | \ + PIN_OSPEED_100M(GPIOG_PIN7) | \ + PIN_OSPEED_100M(GPIOG_SDIO_CARD_DETECT) |\ + PIN_OSPEED_100M(GPIOG_PIN9) | \ + PIN_OSPEED_100M(GPIOG_PIN10) | \ + PIN_OSPEED_100M(GPIOG_PIN11) | \ + PIN_OSPEED_100M(GPIOG_PIN12) | \ + PIN_OSPEED_100M(GPIOG_PIN13) | \ + PIN_OSPEED_100M(GPIOG_PIN14) | \ + PIN_OSPEED_100M(GPIOG_PIN15)) +#define VAL_GPIOG_PUPDR (PIN_PUPDR_FLOATING(GPIOG_PIN0) | \ + PIN_PUPDR_FLOATING(GPIOG_PIN1) | \ + PIN_PUPDR_FLOATING(GPIOG_PIN2) | \ + PIN_PUPDR_FLOATING(GPIOG_PIN3) | \ + PIN_PUPDR_FLOATING(GPIOG_PIN4) | \ + PIN_PUPDR_FLOATING(GPIOG_PIN5) | \ + PIN_PUPDR_FLOATING(GPIOG_PIN6) | \ + PIN_PUPDR_FLOATING(GPIOG_PIN7) | \ + PIN_PUPDR_FLOATING(GPIOG_SDIO_CARD_DETECT) |\ + PIN_PUPDR_FLOATING(GPIOG_PIN9) | \ + PIN_PUPDR_FLOATING(GPIOG_PIN10) | \ + PIN_PUPDR_FLOATING(GPIOG_PIN11) | \ + PIN_PUPDR_FLOATING(GPIOG_PIN12) | \ + PIN_PUPDR_FLOATING(GPIOG_PIN13) | \ + PIN_PUPDR_FLOATING(GPIOG_PIN14) | \ + PIN_PUPDR_FLOATING(GPIOG_PIN15)) +#define VAL_GPIOG_ODR (PIN_ODR_HIGH(GPIOG_PIN0) | \ + PIN_ODR_HIGH(GPIOG_PIN1) | \ + PIN_ODR_HIGH(GPIOG_PIN2) | \ + PIN_ODR_HIGH(GPIOG_PIN3) | \ + PIN_ODR_HIGH(GPIOG_PIN4) | \ + PIN_ODR_HIGH(GPIOG_PIN5) | \ + PIN_ODR_HIGH(GPIOG_PIN6) | \ + PIN_ODR_HIGH(GPIOG_PIN7) | \ + PIN_ODR_HIGH(GPIOG_SDIO_CARD_DETECT) | \ + PIN_ODR_HIGH(GPIOG_PIN9) | \ + PIN_ODR_HIGH(GPIOG_PIN10) | \ + PIN_ODR_HIGH(GPIOG_PIN11) | \ + PIN_ODR_HIGH(GPIOG_PIN12) | \ + PIN_ODR_HIGH(GPIOG_PIN13) | \ + PIN_ODR_HIGH(GPIOG_PIN14) | \ + PIN_ODR_HIGH(GPIOG_PIN15)) +#define VAL_GPIOG_AFRL (PIN_AFIO_AF(GPIOG_PIN0, 0) | \ + PIN_AFIO_AF(GPIOG_PIN1, 0) | \ + PIN_AFIO_AF(GPIOG_PIN2, 0) | \ + PIN_AFIO_AF(GPIOG_PIN3, 0) | \ + PIN_AFIO_AF(GPIOG_PIN4, 0) | \ + PIN_AFIO_AF(GPIOG_PIN5, 0) | \ + PIN_AFIO_AF(GPIOG_PIN6, 0) | \ + PIN_AFIO_AF(GPIOG_PIN7, 0)) +#define VAL_GPIOG_AFRH (PIN_AFIO_AF(GPIOG_SDIO_CARD_DETECT, 0) | \ + PIN_AFIO_AF(GPIOG_PIN9, 0) | \ + PIN_AFIO_AF(GPIOG_PIN10, 0) | \ + PIN_AFIO_AF(GPIOG_PIN11, 0) | \ + PIN_AFIO_AF(GPIOG_PIN12, 0) | \ + PIN_AFIO_AF(GPIOG_PIN13, 0) | \ + PIN_AFIO_AF(GPIOG_PIN14, 0) | \ + PIN_AFIO_AF(GPIOG_PIN15, 0)) + +/* + * GPIOH setup: + * + * PH0 - OSC_IN (input floating). + * PH1 - OSC_OUT (input floating). + * PH2 - LED1 (output pushpull maximum). + * PH3 - LED2 (output pushpull maximum). + * PH4 - OTG_HS_ULPI_NXT (alternate 10). + * PH5 - PIN5 (input floating). + * PH6 - PIN6 (input floating). + * PH7 - PIN7 (input floating). + * PH8 - PIN8 (input floating). + * PH9 - PIN9 (input floating). + * PH10 - PIN10 (input floating). + * PH11 - PIN11 (input floating). + * PH12 - PIN12 (input floating). + * PH13 - PIN13 (input floating). + * PH14 - PIN14 (input floating). + * PH15 - PIN15 (input floating). + */ +#define VAL_GPIOH_MODER (PIN_MODE_INPUT(GPIOH_OSC_IN) | \ + PIN_MODE_INPUT(GPIOH_OSC_OUT) | \ + PIN_MODE_OUTPUT(GPIOH_LED1) | \ + PIN_MODE_OUTPUT(GPIOH_LED2) | \ + PIN_MODE_ALTERNATE(GPIOH_OTG_HS_ULPI_NXT) | \ + PIN_MODE_INPUT(GPIOH_PIN5) | \ + PIN_MODE_INPUT(GPIOH_PIN6) | \ + PIN_MODE_INPUT(GPIOH_PIN7) | \ + PIN_MODE_INPUT(GPIOH_PIN8) | \ + PIN_MODE_INPUT(GPIOH_PIN9) | \ + PIN_MODE_INPUT(GPIOH_PIN10) | \ + PIN_MODE_INPUT(GPIOH_PIN11) | \ + PIN_MODE_INPUT(GPIOH_PIN12) | \ + PIN_MODE_INPUT(GPIOH_PIN13) | \ + PIN_MODE_INPUT(GPIOH_PIN14) | \ + PIN_MODE_INPUT(GPIOH_PIN15)) +#define VAL_GPIOH_OTYPER (PIN_OTYPE_PUSHPULL(GPIOH_OSC_IN) | \ + PIN_OTYPE_PUSHPULL(GPIOH_OSC_OUT) | \ + PIN_OTYPE_PUSHPULL(GPIOH_LED1) | \ + PIN_OTYPE_PUSHPULL(GPIOH_LED2) | \ + PIN_OTYPE_PUSHPULL(GPIOH_OTG_HS_ULPI_NXT) | \ + PIN_OTYPE_PUSHPULL(GPIOH_PIN5) | \ + PIN_OTYPE_PUSHPULL(GPIOH_PIN6) | \ + PIN_OTYPE_PUSHPULL(GPIOH_PIN7) | \ + PIN_OTYPE_PUSHPULL(GPIOH_PIN8) | \ + PIN_OTYPE_PUSHPULL(GPIOH_PIN9) | \ + PIN_OTYPE_PUSHPULL(GPIOH_PIN10) | \ + PIN_OTYPE_PUSHPULL(GPIOH_PIN11) | \ + PIN_OTYPE_PUSHPULL(GPIOH_PIN12) | \ + PIN_OTYPE_PUSHPULL(GPIOH_PIN13) | \ + PIN_OTYPE_PUSHPULL(GPIOH_PIN14) | \ + PIN_OTYPE_PUSHPULL(GPIOH_PIN15)) +#define VAL_GPIOH_OSPEEDR (PIN_OSPEED_100M(GPIOH_OSC_IN) | \ + PIN_OSPEED_100M(GPIOH_OSC_OUT) | \ + PIN_OSPEED_100M(GPIOH_LED1) | \ + PIN_OSPEED_100M(GPIOH_LED2) | \ + PIN_OSPEED_100M(GPIOH_OTG_HS_ULPI_NXT) | \ + PIN_OSPEED_100M(GPIOH_PIN5) | \ + PIN_OSPEED_100M(GPIOH_PIN6) | \ + PIN_OSPEED_100M(GPIOH_PIN7) | \ + PIN_OSPEED_100M(GPIOH_PIN8) | \ + PIN_OSPEED_100M(GPIOH_PIN9) | \ + PIN_OSPEED_100M(GPIOH_PIN10) | \ + PIN_OSPEED_100M(GPIOH_PIN11) | \ + PIN_OSPEED_100M(GPIOH_PIN12) | \ + PIN_OSPEED_100M(GPIOH_PIN13) | \ + PIN_OSPEED_100M(GPIOH_PIN14) | \ + PIN_OSPEED_100M(GPIOH_PIN15)) +#define VAL_GPIOH_PUPDR (PIN_PUPDR_FLOATING(GPIOH_OSC_IN) | \ + PIN_PUPDR_FLOATING(GPIOH_OSC_OUT) | \ + PIN_PUPDR_FLOATING(GPIOH_LED1) | \ + PIN_PUPDR_FLOATING(GPIOH_LED2) | \ + PIN_PUPDR_FLOATING(GPIOH_OTG_HS_ULPI_NXT) | \ + PIN_PUPDR_FLOATING(GPIOH_PIN5) | \ + PIN_PUPDR_FLOATING(GPIOH_PIN6) | \ + PIN_PUPDR_FLOATING(GPIOH_PIN7) | \ + PIN_PUPDR_FLOATING(GPIOH_PIN8) | \ + PIN_PUPDR_FLOATING(GPIOH_PIN9) | \ + PIN_PUPDR_FLOATING(GPIOH_PIN10) | \ + PIN_PUPDR_FLOATING(GPIOH_PIN11) | \ + PIN_PUPDR_FLOATING(GPIOH_PIN12) | \ + PIN_PUPDR_FLOATING(GPIOH_PIN13) | \ + PIN_PUPDR_FLOATING(GPIOH_PIN14) | \ + PIN_PUPDR_FLOATING(GPIOH_PIN15)) +#define VAL_GPIOH_ODR (PIN_ODR_HIGH(GPIOH_OSC_IN) | \ + PIN_ODR_HIGH(GPIOH_OSC_OUT) | \ + PIN_ODR_LOW(GPIOH_LED1) | \ + PIN_ODR_LOW(GPIOH_LED2) | \ + PIN_ODR_HIGH(GPIOH_OTG_HS_ULPI_NXT) | \ + PIN_ODR_HIGH(GPIOH_PIN5) | \ + PIN_ODR_HIGH(GPIOH_PIN6) | \ + PIN_ODR_HIGH(GPIOH_PIN7) | \ + PIN_ODR_HIGH(GPIOH_PIN8) | \ + PIN_ODR_HIGH(GPIOH_PIN9) | \ + PIN_ODR_HIGH(GPIOH_PIN10) | \ + PIN_ODR_HIGH(GPIOH_PIN11) | \ + PIN_ODR_HIGH(GPIOH_PIN12) | \ + PIN_ODR_HIGH(GPIOH_PIN13) | \ + PIN_ODR_HIGH(GPIOH_PIN14) | \ + PIN_ODR_HIGH(GPIOH_PIN15)) +#define VAL_GPIOH_AFRL (PIN_AFIO_AF(GPIOH_OSC_IN, 0) | \ + PIN_AFIO_AF(GPIOH_OSC_OUT, 0) | \ + PIN_AFIO_AF(GPIOH_LED1, 0) | \ + PIN_AFIO_AF(GPIOH_LED2, 0) | \ + PIN_AFIO_AF(GPIOH_OTG_HS_ULPI_NXT, 10) | \ + PIN_AFIO_AF(GPIOH_PIN5, 0) | \ + PIN_AFIO_AF(GPIOH_PIN6, 0) | \ + PIN_AFIO_AF(GPIOH_PIN7, 0)) +#define VAL_GPIOH_AFRH (PIN_AFIO_AF(GPIOH_PIN8, 0) | \ + PIN_AFIO_AF(GPIOH_PIN9, 0) | \ + PIN_AFIO_AF(GPIOH_PIN10, 0) | \ + PIN_AFIO_AF(GPIOH_PIN11, 0) | \ + PIN_AFIO_AF(GPIOH_PIN12, 0) | \ + PIN_AFIO_AF(GPIOH_PIN13, 0) | \ + PIN_AFIO_AF(GPIOH_PIN14, 0) | \ + PIN_AFIO_AF(GPIOH_PIN15, 0)) + +/* + * GPIOI setup: + * + * PI0 - PIN0 (input floating). + * PI1 - PIN1 (input floating). + * PI2 - PIN2 (input floating). + * PI3 - PIN3 (input floating). + * PI4 - PIN4 (input floating). + * PI5 - PIN5 (input floating). + * PI6 - PIN6 (input floating). + * PI7 - PIN7 (input floating). + * PI8 - LED3 (output pushpull maximum). + * PI9 - PIN9 (input floating). + * PI10 - LED4 (output pushpull maximum). + * PI11 - OTG_HS_ULPI_DIR (alternate 10). + * PI12 - PIN12 (input floating). + * PI13 - PIN13 (input floating). + * PI14 - PIN14 (input floating). + * PI15 - PIN15 (input floating). + */ +#define VAL_GPIOI_MODER (PIN_MODE_INPUT(GPIOI_PIN0) | \ + PIN_MODE_INPUT(GPIOI_PIN1) | \ + PIN_MODE_INPUT(GPIOI_PIN2) | \ + PIN_MODE_INPUT(GPIOI_PIN3) | \ + PIN_MODE_INPUT(GPIOI_PIN4) | \ + PIN_MODE_INPUT(GPIOI_PIN5) | \ + PIN_MODE_INPUT(GPIOI_PIN6) | \ + PIN_MODE_INPUT(GPIOI_PIN7) | \ + PIN_MODE_OUTPUT(GPIOI_LED3) | \ + PIN_MODE_INPUT(GPIOI_PIN9) | \ + PIN_MODE_OUTPUT(GPIOI_LED4) | \ + PIN_MODE_ALTERNATE(GPIOI_OTG_HS_ULPI_DIR) | \ + PIN_MODE_INPUT(GPIOI_PIN12) | \ + PIN_MODE_INPUT(GPIOI_PIN13) | \ + PIN_MODE_INPUT(GPIOI_PIN14) | \ + PIN_MODE_INPUT(GPIOI_PIN15)) +#define VAL_GPIOI_OTYPER (PIN_OTYPE_PUSHPULL(GPIOI_PIN0) | \ + PIN_OTYPE_PUSHPULL(GPIOI_PIN1) | \ + PIN_OTYPE_PUSHPULL(GPIOI_PIN2) | \ + PIN_OTYPE_PUSHPULL(GPIOI_PIN3) | \ + PIN_OTYPE_PUSHPULL(GPIOI_PIN4) | \ + PIN_OTYPE_PUSHPULL(GPIOI_PIN5) | \ + PIN_OTYPE_PUSHPULL(GPIOI_PIN6) | \ + PIN_OTYPE_PUSHPULL(GPIOI_PIN7) | \ + PIN_OTYPE_PUSHPULL(GPIOI_LED3) | \ + PIN_OTYPE_PUSHPULL(GPIOI_PIN9) | \ + PIN_OTYPE_PUSHPULL(GPIOI_LED4) | \ + PIN_OTYPE_PUSHPULL(GPIOI_OTG_HS_ULPI_DIR) | \ + PIN_OTYPE_PUSHPULL(GPIOI_PIN12) | \ + PIN_OTYPE_PUSHPULL(GPIOI_PIN13) | \ + PIN_OTYPE_PUSHPULL(GPIOI_PIN14) | \ + PIN_OTYPE_PUSHPULL(GPIOI_PIN15)) +#define VAL_GPIOI_OSPEEDR (PIN_OSPEED_100M(GPIOI_PIN0) | \ + PIN_OSPEED_100M(GPIOI_PIN1) | \ + PIN_OSPEED_100M(GPIOI_PIN2) | \ + PIN_OSPEED_100M(GPIOI_PIN3) | \ + PIN_OSPEED_100M(GPIOI_PIN4) | \ + PIN_OSPEED_100M(GPIOI_PIN5) | \ + PIN_OSPEED_100M(GPIOI_PIN6) | \ + PIN_OSPEED_100M(GPIOI_PIN7) | \ + PIN_OSPEED_100M(GPIOI_LED3) | \ + PIN_OSPEED_100M(GPIOI_PIN9) | \ + PIN_OSPEED_100M(GPIOI_LED4) | \ + PIN_OSPEED_100M(GPIOI_OTG_HS_ULPI_DIR) | \ + PIN_OSPEED_100M(GPIOI_PIN12) | \ + PIN_OSPEED_100M(GPIOI_PIN13) | \ + PIN_OSPEED_100M(GPIOI_PIN14) | \ + PIN_OSPEED_100M(GPIOI_PIN15)) +#define VAL_GPIOI_PUPDR (PIN_PUPDR_FLOATING(GPIOI_PIN0) | \ + PIN_PUPDR_FLOATING(GPIOI_PIN1) | \ + PIN_PUPDR_FLOATING(GPIOI_PIN2) | \ + PIN_PUPDR_FLOATING(GPIOI_PIN3) | \ + PIN_PUPDR_FLOATING(GPIOI_PIN4) | \ + PIN_PUPDR_FLOATING(GPIOI_PIN5) | \ + PIN_PUPDR_FLOATING(GPIOI_PIN6) | \ + PIN_PUPDR_FLOATING(GPIOI_PIN7) | \ + PIN_PUPDR_FLOATING(GPIOI_LED3) | \ + PIN_PUPDR_FLOATING(GPIOI_PIN9) | \ + PIN_PUPDR_FLOATING(GPIOI_LED4) | \ + PIN_PUPDR_FLOATING(GPIOI_OTG_HS_ULPI_DIR) | \ + PIN_PUPDR_FLOATING(GPIOI_PIN12) | \ + PIN_PUPDR_FLOATING(GPIOI_PIN13) | \ + PIN_PUPDR_FLOATING(GPIOI_PIN14) | \ + PIN_PUPDR_FLOATING(GPIOI_PIN15)) +#define VAL_GPIOI_ODR (PIN_ODR_HIGH(GPIOI_PIN0) | \ + PIN_ODR_HIGH(GPIOI_PIN1) | \ + PIN_ODR_HIGH(GPIOI_PIN2) | \ + PIN_ODR_HIGH(GPIOI_PIN3) | \ + PIN_ODR_HIGH(GPIOI_PIN4) | \ + PIN_ODR_HIGH(GPIOI_PIN5) | \ + PIN_ODR_HIGH(GPIOI_PIN6) | \ + PIN_ODR_HIGH(GPIOI_PIN7) | \ + PIN_ODR_LOW(GPIOI_LED3) | \ + PIN_ODR_HIGH(GPIOI_PIN9) | \ + PIN_ODR_LOW(GPIOI_LED4) | \ + PIN_ODR_HIGH(GPIOI_OTG_HS_ULPI_DIR) | \ + PIN_ODR_HIGH(GPIOI_PIN12) | \ + PIN_ODR_HIGH(GPIOI_PIN13) | \ + PIN_ODR_HIGH(GPIOI_PIN14) | \ + PIN_ODR_HIGH(GPIOI_PIN15)) +#define VAL_GPIOI_AFRL (PIN_AFIO_AF(GPIOI_PIN0, 0) | \ + PIN_AFIO_AF(GPIOI_PIN1, 0) | \ + PIN_AFIO_AF(GPIOI_PIN2, 0) | \ + PIN_AFIO_AF(GPIOI_PIN3, 0) | \ + PIN_AFIO_AF(GPIOI_PIN4, 0) | \ + PIN_AFIO_AF(GPIOI_PIN5, 0) | \ + PIN_AFIO_AF(GPIOI_PIN6, 0) | \ + PIN_AFIO_AF(GPIOI_PIN7, 0)) +#define VAL_GPIOI_AFRH (PIN_AFIO_AF(GPIOI_LED3, 0) | \ + PIN_AFIO_AF(GPIOI_PIN9, 0) | \ + PIN_AFIO_AF(GPIOI_LED4, 0) | \ + PIN_AFIO_AF(GPIOI_OTG_HS_ULPI_DIR, 10) | \ + PIN_AFIO_AF(GPIOI_PIN12, 0) | \ + PIN_AFIO_AF(GPIOI_PIN13, 0) | \ + PIN_AFIO_AF(GPIOI_PIN14, 0) | \ + PIN_AFIO_AF(GPIOI_PIN15, 0)) + + +#if !defined(_FROM_ASM_) +#ifdef __cplusplus +extern "C" { +#endif + void boardInit(void); +#ifdef __cplusplus +} +#endif +#endif /* _FROM_ASM_ */ + +#endif /* _BOARD_H_ */ diff --git a/boards/WAVESHARE_OPEN_407I_C/board.mk b/boards/WAVESHARE_OPEN_407I_C/board.mk new file mode 100644 index 0000000000..f887af79df --- /dev/null +++ b/boards/WAVESHARE_OPEN_407I_C/board.mk @@ -0,0 +1,5 @@ +# List of all the board related files. +BOARDSRC = ${CHIBIOS}/boards/WAVESHARE_OPEN_407I_C/board.c + +# Required include directories +BOARDINC = ${CHIBIOS}/boards/WAVESHARE_OPEN_407I_C From f49f733b27a02fcde18320d01362f334247591d2 Mon Sep 17 00:00:00 2001 From: Dave Camarillo Date: Tue, 19 Feb 2013 16:07:05 -0800 Subject: [PATCH 02/52] added sample code for full speed interface on waveshare 407I-C --- .../.cproject | 52 ++ .../.project | 95 ++++ .../Makefile | 224 ++++++++ .../Makefile~HEAD | 224 ++++++++ .../chconf.h | 535 ++++++++++++++++++ .../chconf.h~HEAD | 535 ++++++++++++++++++ .../halconf.h | 316 +++++++++++ .../main.c | 221 ++++++++ .../mcuconf.h | 270 +++++++++ .../readme.txt | 27 + .../usbcfg.c | 308 ++++++++++ .../usbcfg.h | 29 + .../usbcfg.h~HEAD | 29 + 13 files changed, 2865 insertions(+) create mode 100644 demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/.cproject create mode 100644 demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/.project create mode 100644 demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/Makefile create mode 100644 demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/Makefile~HEAD create mode 100644 demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/chconf.h create mode 100644 demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/chconf.h~HEAD create mode 100644 demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/halconf.h create mode 100644 demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/main.c create mode 100644 demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/mcuconf.h create mode 100644 demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/readme.txt create mode 100644 demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/usbcfg.c create mode 100644 demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/usbcfg.h create mode 100644 demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/usbcfg.h~HEAD diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/.cproject b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/.cproject new file mode 100644 index 0000000000..4c0ec4132d --- /dev/null +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/.cproject @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/.project b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/.project new file mode 100644 index 0000000000..20074f5a76 --- /dev/null +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/.project @@ -0,0 +1,95 @@ + + + ARMCM4-STM32F407-DISCOVERY-MEMS + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + -j1 + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + + board + 2 + CHIBIOS/boards/ST_STM32F4_DISCOVERY + + + os + 2 + CHIBIOS/os + + + test + 2 + CHIBIOS/test + + + diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/Makefile b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/Makefile new file mode 100644 index 0000000000..9da3f11f37 --- /dev/null +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/Makefile @@ -0,0 +1,224 @@ +############################################################################## +# Build global options +# NOTE: Can be overridden externally. +# + +# Compiler options here. +ifeq ($(USE_OPT),) + USE_OPT = -O2 -ggdb -fomit-frame-pointer -falign-functions=16 +endif + +# C specific options here (added to USE_OPT). +ifeq ($(USE_COPT),) + USE_COPT = +endif + +# C++ specific options here (added to USE_OPT). +ifeq ($(USE_CPPOPT),) + USE_CPPOPT = -fno-rtti +endif + +# Enable this if you want the linker to remove unused code and data +ifeq ($(USE_LINK_GC),) + USE_LINK_GC = yes +endif + +# If enabled, this option allows to compile the application in THUMB mode. +ifeq ($(USE_THUMB),) + USE_THUMB = yes +endif + +# Enable this if you want to see the full log while compiling. +ifeq ($(USE_VERBOSE_COMPILE),) + USE_VERBOSE_COMPILE = no +endif + +# +# Build global options +############################################################################## + +############################################################################## +# Architecture or project specific options +# + +# Enables the use of FPU on Cortex-M4. +# Enable this if you really want to use the STM FWLib. +ifeq ($(USE_FPU),) + USE_FPU = no +endif + +# Enable this if you really want to use the STM FWLib. +ifeq ($(USE_FWLIB),) + USE_FWLIB = no +endif + +# +# Architecture or project specific options +############################################################################## + +############################################################################## +# Project, sources and paths +# + +# Define project name here +PROJECT = ch + +# Imported source files and paths +CHIBIOS = ../.. +include $(CHIBIOS)/boards/WAVESHARE_OPEN_407I_C/board.mk +include $(CHIBIOS)/os/hal/platforms/STM32F4xx/platform.mk +include $(CHIBIOS)/os/hal/hal.mk +include $(CHIBIOS)/os/ports/GCC/ARMCMx/STM32F4xx/port.mk +include $(CHIBIOS)/os/kernel/kernel.mk +include $(CHIBIOS)/test/test.mk + +# Define linker script file here +LDSCRIPT= $(PORTLD)/STM32F407xG.ld +#LDSCRIPT= $(PORTLD)/STM32F407xG_CCM.ld + +# C sources that can be compiled in ARM or THUMB mode depending on the global +# setting. +CSRC = $(PORTSRC) \ + $(KERNSRC) \ + $(TESTSRC) \ + $(HALSRC) \ + $(PLATFORMSRC) \ + $(BOARDSRC) \ + $(CHIBIOS)/os/various/shell.c \ + $(CHIBIOS)/os/various/chprintf.c \ + usbcfg.c main.c + +# C++ sources that can be compiled in ARM or THUMB mode depending on the global +# setting. +CPPSRC = + +# C sources to be compiled in ARM mode regardless of the global setting. +# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler +# option that results in lower performance and larger code size. +ACSRC = + +# C++ sources to be compiled in ARM mode regardless of the global setting. +# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler +# option that results in lower performance and larger code size. +ACPPSRC = + +# C sources to be compiled in THUMB mode regardless of the global setting. +# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler +# option that results in lower performance and larger code size. +TCSRC = + +# C sources to be compiled in THUMB mode regardless of the global setting. +# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler +# option that results in lower performance and larger code size. +TCPPSRC = + +# List ASM source files here +ASMSRC = $(PORTASM) + +INCDIR = $(PORTINC) $(KERNINC) $(TESTINC) \ + $(HALINC) $(PLATFORMINC) $(BOARDINC) \ + $(CHIBIOS)/os/various/devices_lib/accel \ + $(CHIBIOS)/os/various + +# +# Project, sources and paths +############################################################################## + +############################################################################## +# Compiler settings +# + +MCU = cortex-m4 + +#TRGT = arm-elf- +TRGT = arm-none-eabi- +CC = $(TRGT)gcc +CPPC = $(TRGT)g++ +# Enable loading with g++ only if you need C++ runtime support. +# NOTE: You can use C++ even without C++ support if you are careful. C++ +# runtime support makes code size explode. +LD = $(TRGT)gcc +#LD = $(TRGT)g++ +CP = $(TRGT)objcopy +AS = $(TRGT)gcc -x assembler-with-cpp +OD = $(TRGT)objdump +HEX = $(CP) -O ihex +BIN = $(CP) -O binary + +# ARM-specific options here +AOPT = + +# THUMB-specific options here +TOPT = -mthumb -DTHUMB + +# Define C warning options here +CWARN = -Wall -Wextra -Wstrict-prototypes + +# Define C++ warning options here +CPPWARN = -Wall -Wextra + +# +# Compiler settings +############################################################################## + +############################################################################## +# Start of default section +# + +# List all default C defines here, like -D_DEBUG=1 +DDEFS = + +# List all default ASM defines here, like -D_DEBUG=1 +DADEFS = + +# List all default directories to look for include files here +DINCDIR = + +# List the default directory to look for the libraries here +DLIBDIR = + +# List all default libraries here +DLIBS = + +# +# End of default section +############################################################################## + +############################################################################## +# Start of user section +# + +# List all user C define here, like -D_DEBUG=1 +UDEFS = + +# Define ASM defines here +UADEFS = + +# List all user directories here +UINCDIR = + +# List the user directory to look for the libraries here +ULIBDIR = + +# List all user libraries here +ULIBS = + +# +# End of user defines +############################################################################## + +ifeq ($(USE_FPU),yes) + USE_OPT += -mfloat-abi=softfp -mfpu=fpv4-sp-d16 -fsingle-precision-constant + DDEFS += -DCORTEX_USE_FPU=TRUE +else + DDEFS += -DCORTEX_USE_FPU=FALSE +endif + +ifeq ($(USE_FWLIB),yes) + include $(CHIBIOS)/ext/stm32lib/stm32lib.mk + CSRC += $(STM32SRC) + INCDIR += $(STM32INC) + USE_OPT += -DUSE_STDPERIPH_DRIVER +endif + +include $(CHIBIOS)/os/ports/GCC/ARMCMx/rules.mk diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/Makefile~HEAD b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/Makefile~HEAD new file mode 100644 index 0000000000..9da3f11f37 --- /dev/null +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/Makefile~HEAD @@ -0,0 +1,224 @@ +############################################################################## +# Build global options +# NOTE: Can be overridden externally. +# + +# Compiler options here. +ifeq ($(USE_OPT),) + USE_OPT = -O2 -ggdb -fomit-frame-pointer -falign-functions=16 +endif + +# C specific options here (added to USE_OPT). +ifeq ($(USE_COPT),) + USE_COPT = +endif + +# C++ specific options here (added to USE_OPT). +ifeq ($(USE_CPPOPT),) + USE_CPPOPT = -fno-rtti +endif + +# Enable this if you want the linker to remove unused code and data +ifeq ($(USE_LINK_GC),) + USE_LINK_GC = yes +endif + +# If enabled, this option allows to compile the application in THUMB mode. +ifeq ($(USE_THUMB),) + USE_THUMB = yes +endif + +# Enable this if you want to see the full log while compiling. +ifeq ($(USE_VERBOSE_COMPILE),) + USE_VERBOSE_COMPILE = no +endif + +# +# Build global options +############################################################################## + +############################################################################## +# Architecture or project specific options +# + +# Enables the use of FPU on Cortex-M4. +# Enable this if you really want to use the STM FWLib. +ifeq ($(USE_FPU),) + USE_FPU = no +endif + +# Enable this if you really want to use the STM FWLib. +ifeq ($(USE_FWLIB),) + USE_FWLIB = no +endif + +# +# Architecture or project specific options +############################################################################## + +############################################################################## +# Project, sources and paths +# + +# Define project name here +PROJECT = ch + +# Imported source files and paths +CHIBIOS = ../.. +include $(CHIBIOS)/boards/WAVESHARE_OPEN_407I_C/board.mk +include $(CHIBIOS)/os/hal/platforms/STM32F4xx/platform.mk +include $(CHIBIOS)/os/hal/hal.mk +include $(CHIBIOS)/os/ports/GCC/ARMCMx/STM32F4xx/port.mk +include $(CHIBIOS)/os/kernel/kernel.mk +include $(CHIBIOS)/test/test.mk + +# Define linker script file here +LDSCRIPT= $(PORTLD)/STM32F407xG.ld +#LDSCRIPT= $(PORTLD)/STM32F407xG_CCM.ld + +# C sources that can be compiled in ARM or THUMB mode depending on the global +# setting. +CSRC = $(PORTSRC) \ + $(KERNSRC) \ + $(TESTSRC) \ + $(HALSRC) \ + $(PLATFORMSRC) \ + $(BOARDSRC) \ + $(CHIBIOS)/os/various/shell.c \ + $(CHIBIOS)/os/various/chprintf.c \ + usbcfg.c main.c + +# C++ sources that can be compiled in ARM or THUMB mode depending on the global +# setting. +CPPSRC = + +# C sources to be compiled in ARM mode regardless of the global setting. +# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler +# option that results in lower performance and larger code size. +ACSRC = + +# C++ sources to be compiled in ARM mode regardless of the global setting. +# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler +# option that results in lower performance and larger code size. +ACPPSRC = + +# C sources to be compiled in THUMB mode regardless of the global setting. +# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler +# option that results in lower performance and larger code size. +TCSRC = + +# C sources to be compiled in THUMB mode regardless of the global setting. +# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler +# option that results in lower performance and larger code size. +TCPPSRC = + +# List ASM source files here +ASMSRC = $(PORTASM) + +INCDIR = $(PORTINC) $(KERNINC) $(TESTINC) \ + $(HALINC) $(PLATFORMINC) $(BOARDINC) \ + $(CHIBIOS)/os/various/devices_lib/accel \ + $(CHIBIOS)/os/various + +# +# Project, sources and paths +############################################################################## + +############################################################################## +# Compiler settings +# + +MCU = cortex-m4 + +#TRGT = arm-elf- +TRGT = arm-none-eabi- +CC = $(TRGT)gcc +CPPC = $(TRGT)g++ +# Enable loading with g++ only if you need C++ runtime support. +# NOTE: You can use C++ even without C++ support if you are careful. C++ +# runtime support makes code size explode. +LD = $(TRGT)gcc +#LD = $(TRGT)g++ +CP = $(TRGT)objcopy +AS = $(TRGT)gcc -x assembler-with-cpp +OD = $(TRGT)objdump +HEX = $(CP) -O ihex +BIN = $(CP) -O binary + +# ARM-specific options here +AOPT = + +# THUMB-specific options here +TOPT = -mthumb -DTHUMB + +# Define C warning options here +CWARN = -Wall -Wextra -Wstrict-prototypes + +# Define C++ warning options here +CPPWARN = -Wall -Wextra + +# +# Compiler settings +############################################################################## + +############################################################################## +# Start of default section +# + +# List all default C defines here, like -D_DEBUG=1 +DDEFS = + +# List all default ASM defines here, like -D_DEBUG=1 +DADEFS = + +# List all default directories to look for include files here +DINCDIR = + +# List the default directory to look for the libraries here +DLIBDIR = + +# List all default libraries here +DLIBS = + +# +# End of default section +############################################################################## + +############################################################################## +# Start of user section +# + +# List all user C define here, like -D_DEBUG=1 +UDEFS = + +# Define ASM defines here +UADEFS = + +# List all user directories here +UINCDIR = + +# List the user directory to look for the libraries here +ULIBDIR = + +# List all user libraries here +ULIBS = + +# +# End of user defines +############################################################################## + +ifeq ($(USE_FPU),yes) + USE_OPT += -mfloat-abi=softfp -mfpu=fpv4-sp-d16 -fsingle-precision-constant + DDEFS += -DCORTEX_USE_FPU=TRUE +else + DDEFS += -DCORTEX_USE_FPU=FALSE +endif + +ifeq ($(USE_FWLIB),yes) + include $(CHIBIOS)/ext/stm32lib/stm32lib.mk + CSRC += $(STM32SRC) + INCDIR += $(STM32INC) + USE_OPT += -DUSE_STDPERIPH_DRIVER +endif + +include $(CHIBIOS)/os/ports/GCC/ARMCMx/rules.mk diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/chconf.h b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/chconf.h new file mode 100644 index 0000000000..f0ccde0d06 --- /dev/null +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/chconf.h @@ -0,0 +1,535 @@ +/* + ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, + 2011,2012,2013 Giovanni Di Sirio. + + This file is part of ChibiOS/RT. + + ChibiOS/RT is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + ChibiOS/RT is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +/** + * @file templates/chconf.h + * @brief Configuration file template. + * @details A copy of this file must be placed in each project directory, it + * contains the application specific kernel settings. + * + * @addtogroup config + * @details Kernel related settings and hooks. + * @{ + */ + +#ifndef _CHCONF_H_ +#define _CHCONF_H_ + +/*===========================================================================*/ +/** + * @name Kernel parameters and options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief System tick frequency. + * @details Frequency of the system timer that drives the system ticks. This + * setting also defines the system tick time unit. + */ +#if !defined(CH_FREQUENCY) || defined(__DOXYGEN__) +#define CH_FREQUENCY 1000 +#endif + +/** + * @brief Round robin interval. + * @details This constant is the number of system ticks allowed for the + * threads before preemption occurs. Setting this value to zero + * disables the preemption for threads with equal priority and the + * round robin becomes cooperative. Note that higher priority + * threads can still preempt, the kernel is always preemptive. + * + * @note Disabling the round robin preemption makes the kernel more compact + * and generally faster. + */ +#if !defined(CH_TIME_QUANTUM) || defined(__DOXYGEN__) +#define CH_TIME_QUANTUM 10 +#endif + +/** + * @brief Managed RAM size. + * @details Size of the RAM area to be managed by the OS. If set to zero + * then the whole available RAM is used. The core memory is made + * available to the heap allocator and/or can be used directly through + * the simplified core memory allocator. + * + * @note In order to let the OS manage the whole RAM the linker script must + * provide the @p __heap_base__ and @p __heap_end__ symbols. + * @note Requires @p CH_USE_MEMCORE. + */ +#if !defined(CH_MEMCORE_SIZE) || defined(__DOXYGEN__) +#define CH_MEMCORE_SIZE 0 +#endif + +/** + * @brief Idle thread automatic spawn suppression. + * @details When this option is activated the function @p chSysInit() + * does not spawn the idle thread automatically. The application has + * then the responsibility to do one of the following: + * - Spawn a custom idle thread at priority @p IDLEPRIO. + * - Change the main() thread priority to @p IDLEPRIO then enter + * an endless loop. In this scenario the @p main() thread acts as + * the idle thread. + * . + * @note Unless an idle thread is spawned the @p main() thread must not + * enter a sleep state. + */ +#if !defined(CH_NO_IDLE_THREAD) || defined(__DOXYGEN__) +#define CH_NO_IDLE_THREAD FALSE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Performance options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief OS optimization. + * @details If enabled then time efficient rather than space efficient code + * is used when two possible implementations exist. + * + * @note This is not related to the compiler optimization options. + * @note The default is @p TRUE. + */ +#if !defined(CH_OPTIMIZE_SPEED) || defined(__DOXYGEN__) +#define CH_OPTIMIZE_SPEED TRUE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Subsystem options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Threads registry APIs. + * @details If enabled then the registry APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_USE_REGISTRY) || defined(__DOXYGEN__) +#define CH_USE_REGISTRY TRUE +#endif + +/** + * @brief Threads synchronization APIs. + * @details If enabled then the @p chThdWait() function is included in + * the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_USE_WAITEXIT) || defined(__DOXYGEN__) +#define CH_USE_WAITEXIT TRUE +#endif + +/** + * @brief Semaphores APIs. + * @details If enabled then the Semaphores APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_USE_SEMAPHORES) || defined(__DOXYGEN__) +#define CH_USE_SEMAPHORES TRUE +#endif + +/** + * @brief Semaphores queuing mode. + * @details If enabled then the threads are enqueued on semaphores by + * priority rather than in FIFO order. + * + * @note The default is @p FALSE. Enable this if you have special requirements. + * @note Requires @p CH_USE_SEMAPHORES. + */ +#if !defined(CH_USE_SEMAPHORES_PRIORITY) || defined(__DOXYGEN__) +#define CH_USE_SEMAPHORES_PRIORITY FALSE +#endif + +/** + * @brief Atomic semaphore API. + * @details If enabled then the semaphores the @p chSemSignalWait() API + * is included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_USE_SEMAPHORES. + */ +#if !defined(CH_USE_SEMSW) || defined(__DOXYGEN__) +#define CH_USE_SEMSW TRUE +#endif + +/** + * @brief Mutexes APIs. + * @details If enabled then the mutexes APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_USE_MUTEXES) || defined(__DOXYGEN__) +#define CH_USE_MUTEXES TRUE +#endif + +/** + * @brief Conditional Variables APIs. + * @details If enabled then the conditional variables APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_USE_MUTEXES. + */ +#if !defined(CH_USE_CONDVARS) || defined(__DOXYGEN__) +#define CH_USE_CONDVARS TRUE +#endif + +/** + * @brief Conditional Variables APIs with timeout. + * @details If enabled then the conditional variables APIs with timeout + * specification are included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_USE_CONDVARS. + */ +#if !defined(CH_USE_CONDVARS_TIMEOUT) || defined(__DOXYGEN__) +#define CH_USE_CONDVARS_TIMEOUT TRUE +#endif + +/** + * @brief Events Flags APIs. + * @details If enabled then the event flags APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_USE_EVENTS) || defined(__DOXYGEN__) +#define CH_USE_EVENTS TRUE +#endif + +/** + * @brief Events Flags APIs with timeout. + * @details If enabled then the events APIs with timeout specification + * are included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_USE_EVENTS. + */ +#if !defined(CH_USE_EVENTS_TIMEOUT) || defined(__DOXYGEN__) +#define CH_USE_EVENTS_TIMEOUT TRUE +#endif + +/** + * @brief Synchronous Messages APIs. + * @details If enabled then the synchronous messages APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_USE_MESSAGES) || defined(__DOXYGEN__) +#define CH_USE_MESSAGES TRUE +#endif + +/** + * @brief Synchronous Messages queuing mode. + * @details If enabled then messages are served by priority rather than in + * FIFO order. + * + * @note The default is @p FALSE. Enable this if you have special requirements. + * @note Requires @p CH_USE_MESSAGES. + */ +#if !defined(CH_USE_MESSAGES_PRIORITY) || defined(__DOXYGEN__) +#define CH_USE_MESSAGES_PRIORITY FALSE +#endif + +/** + * @brief Mailboxes APIs. + * @details If enabled then the asynchronous messages (mailboxes) APIs are + * included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_USE_SEMAPHORES. + */ +#if !defined(CH_USE_MAILBOXES) || defined(__DOXYGEN__) +#define CH_USE_MAILBOXES TRUE +#endif + +/** + * @brief I/O Queues APIs. + * @details If enabled then the I/O queues APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__) +#define CH_USE_QUEUES TRUE +#endif + +/** + * @brief Core Memory Manager APIs. + * @details If enabled then the core memory manager APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_USE_MEMCORE) || defined(__DOXYGEN__) +#define CH_USE_MEMCORE TRUE +#endif + +/** + * @brief Heap Allocator APIs. + * @details If enabled then the memory heap allocator APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_USE_MEMCORE and either @p CH_USE_MUTEXES or + * @p CH_USE_SEMAPHORES. + * @note Mutexes are recommended. + */ +#if !defined(CH_USE_HEAP) || defined(__DOXYGEN__) +#define CH_USE_HEAP TRUE +#endif + +/** + * @brief C-runtime allocator. + * @details If enabled the the heap allocator APIs just wrap the C-runtime + * @p malloc() and @p free() functions. + * + * @note The default is @p FALSE. + * @note Requires @p CH_USE_HEAP. + * @note The C-runtime may or may not require @p CH_USE_MEMCORE, see the + * appropriate documentation. + */ +#if !defined(CH_USE_MALLOC_HEAP) || defined(__DOXYGEN__) +#define CH_USE_MALLOC_HEAP FALSE +#endif + +/** + * @brief Memory Pools Allocator APIs. + * @details If enabled then the memory pools allocator APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_USE_MEMPOOLS) || defined(__DOXYGEN__) +#define CH_USE_MEMPOOLS TRUE +#endif + +/** + * @brief Dynamic Threads APIs. + * @details If enabled then the dynamic threads creation APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_USE_WAITEXIT. + * @note Requires @p CH_USE_HEAP and/or @p CH_USE_MEMPOOLS. + */ +#if !defined(CH_USE_DYNAMIC) || defined(__DOXYGEN__) +#define CH_USE_DYNAMIC TRUE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Debug options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Debug option, system state check. + * @details If enabled the correct call protocol for system APIs is checked + * at runtime. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_SYSTEM_STATE_CHECK) || defined(__DOXYGEN__) +#define CH_DBG_SYSTEM_STATE_CHECK FALSE +#endif + +/** + * @brief Debug option, parameters checks. + * @details If enabled then the checks on the API functions input + * parameters are activated. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_ENABLE_CHECKS) || defined(__DOXYGEN__) +#define CH_DBG_ENABLE_CHECKS FALSE +#endif + +/** + * @brief Debug option, consistency checks. + * @details If enabled then all the assertions in the kernel code are + * activated. This includes consistency checks inside the kernel, + * runtime anomalies and port-defined checks. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_ENABLE_ASSERTS) || defined(__DOXYGEN__) +#define CH_DBG_ENABLE_ASSERTS FALSE +#endif + +/** + * @brief Debug option, trace buffer. + * @details If enabled then the context switch circular trace buffer is + * activated. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_ENABLE_TRACE) || defined(__DOXYGEN__) +#define CH_DBG_ENABLE_TRACE FALSE +#endif + +/** + * @brief Debug option, stack checks. + * @details If enabled then a runtime stack check is performed. + * + * @note The default is @p FALSE. + * @note The stack check is performed in a architecture/port dependent way. + * It may not be implemented or some ports. + * @note The default failure mode is to halt the system with the global + * @p panic_msg variable set to @p NULL. + */ +#if !defined(CH_DBG_ENABLE_STACK_CHECK) || defined(__DOXYGEN__) +#define CH_DBG_ENABLE_STACK_CHECK TRUE +#endif + +/** + * @brief Debug option, stacks initialization. + * @details If enabled then the threads working area is filled with a byte + * value when a thread is created. This can be useful for the + * runtime measurement of the used stack. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_FILL_THREADS) || defined(__DOXYGEN__) +#define CH_DBG_FILL_THREADS TRUE +#endif + +/** + * @brief Debug option, threads profiling. + * @details If enabled then a field is added to the @p Thread structure that + * counts the system ticks occurred while executing the thread. + * + * @note The default is @p TRUE. + * @note This debug option is defaulted to TRUE because it is required by + * some test cases into the test suite. + */ +#if !defined(CH_DBG_THREADS_PROFILING) || defined(__DOXYGEN__) +#define CH_DBG_THREADS_PROFILING TRUE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Kernel hooks + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Threads descriptor structure extension. + * @details User fields added to the end of the @p Thread structure. + */ +#if !defined(THREAD_EXT_FIELDS) || defined(__DOXYGEN__) +#define THREAD_EXT_FIELDS \ + /* Add threads custom fields here.*/ +#endif + +/** + * @brief Threads initialization hook. + * @details User initialization code added to the @p chThdInit() API. + * + * @note It is invoked from within @p chThdInit() and implicitly from all + * the threads creation APIs. + */ +#if !defined(THREAD_EXT_INIT_HOOK) || defined(__DOXYGEN__) +#define THREAD_EXT_INIT_HOOK(tp) { \ + /* Add threads initialization code here.*/ \ +} +#endif + +/** + * @brief Threads finalization hook. + * @details User finalization code added to the @p chThdExit() API. + * + * @note It is inserted into lock zone. + * @note It is also invoked when the threads simply return in order to + * terminate. + */ +#if !defined(THREAD_EXT_EXIT_HOOK) || defined(__DOXYGEN__) +#define THREAD_EXT_EXIT_HOOK(tp) { \ + /* Add threads finalization code here.*/ \ +} +#endif + +/** + * @brief Context switch hook. + * @details This hook is invoked just before switching between threads. + */ +#if !defined(THREAD_CONTEXT_SWITCH_HOOK) || defined(__DOXYGEN__) +#define THREAD_CONTEXT_SWITCH_HOOK(ntp, otp) { \ + /* System halt code here.*/ \ +} +#endif + +/** + * @brief Idle Loop hook. + * @details This hook is continuously invoked by the idle thread loop. + */ +#if !defined(IDLE_LOOP_HOOK) || defined(__DOXYGEN__) +#define IDLE_LOOP_HOOK() { \ + /* Idle loop code here.*/ \ +} +#endif + +/** + * @brief System tick event hook. + * @details This hook is invoked in the system tick handler immediately + * after processing the virtual timers queue. + */ +#if !defined(SYSTEM_TICK_EVENT_HOOK) || defined(__DOXYGEN__) +#define SYSTEM_TICK_EVENT_HOOK() { \ + /* System tick event code here.*/ \ +} +#endif + +/** + * @brief System halt hook. + * @details This hook is invoked in case to a system halting error before + * the system is halted. + */ +#if !defined(SYSTEM_HALT_HOOK) || defined(__DOXYGEN__) +#define SYSTEM_HALT_HOOK() { \ + /* System halt code here.*/ \ +} +#endif + +/** @} */ + +/*===========================================================================*/ +/* Port-specific settings (override port settings defaulted in chcore.h). */ +/*===========================================================================*/ + +#endif /* _CHCONF_H_ */ + +/** @} */ diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/chconf.h~HEAD b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/chconf.h~HEAD new file mode 100644 index 0000000000..f0ccde0d06 --- /dev/null +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/chconf.h~HEAD @@ -0,0 +1,535 @@ +/* + ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, + 2011,2012,2013 Giovanni Di Sirio. + + This file is part of ChibiOS/RT. + + ChibiOS/RT is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + ChibiOS/RT is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +/** + * @file templates/chconf.h + * @brief Configuration file template. + * @details A copy of this file must be placed in each project directory, it + * contains the application specific kernel settings. + * + * @addtogroup config + * @details Kernel related settings and hooks. + * @{ + */ + +#ifndef _CHCONF_H_ +#define _CHCONF_H_ + +/*===========================================================================*/ +/** + * @name Kernel parameters and options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief System tick frequency. + * @details Frequency of the system timer that drives the system ticks. This + * setting also defines the system tick time unit. + */ +#if !defined(CH_FREQUENCY) || defined(__DOXYGEN__) +#define CH_FREQUENCY 1000 +#endif + +/** + * @brief Round robin interval. + * @details This constant is the number of system ticks allowed for the + * threads before preemption occurs. Setting this value to zero + * disables the preemption for threads with equal priority and the + * round robin becomes cooperative. Note that higher priority + * threads can still preempt, the kernel is always preemptive. + * + * @note Disabling the round robin preemption makes the kernel more compact + * and generally faster. + */ +#if !defined(CH_TIME_QUANTUM) || defined(__DOXYGEN__) +#define CH_TIME_QUANTUM 10 +#endif + +/** + * @brief Managed RAM size. + * @details Size of the RAM area to be managed by the OS. If set to zero + * then the whole available RAM is used. The core memory is made + * available to the heap allocator and/or can be used directly through + * the simplified core memory allocator. + * + * @note In order to let the OS manage the whole RAM the linker script must + * provide the @p __heap_base__ and @p __heap_end__ symbols. + * @note Requires @p CH_USE_MEMCORE. + */ +#if !defined(CH_MEMCORE_SIZE) || defined(__DOXYGEN__) +#define CH_MEMCORE_SIZE 0 +#endif + +/** + * @brief Idle thread automatic spawn suppression. + * @details When this option is activated the function @p chSysInit() + * does not spawn the idle thread automatically. The application has + * then the responsibility to do one of the following: + * - Spawn a custom idle thread at priority @p IDLEPRIO. + * - Change the main() thread priority to @p IDLEPRIO then enter + * an endless loop. In this scenario the @p main() thread acts as + * the idle thread. + * . + * @note Unless an idle thread is spawned the @p main() thread must not + * enter a sleep state. + */ +#if !defined(CH_NO_IDLE_THREAD) || defined(__DOXYGEN__) +#define CH_NO_IDLE_THREAD FALSE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Performance options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief OS optimization. + * @details If enabled then time efficient rather than space efficient code + * is used when two possible implementations exist. + * + * @note This is not related to the compiler optimization options. + * @note The default is @p TRUE. + */ +#if !defined(CH_OPTIMIZE_SPEED) || defined(__DOXYGEN__) +#define CH_OPTIMIZE_SPEED TRUE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Subsystem options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Threads registry APIs. + * @details If enabled then the registry APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_USE_REGISTRY) || defined(__DOXYGEN__) +#define CH_USE_REGISTRY TRUE +#endif + +/** + * @brief Threads synchronization APIs. + * @details If enabled then the @p chThdWait() function is included in + * the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_USE_WAITEXIT) || defined(__DOXYGEN__) +#define CH_USE_WAITEXIT TRUE +#endif + +/** + * @brief Semaphores APIs. + * @details If enabled then the Semaphores APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_USE_SEMAPHORES) || defined(__DOXYGEN__) +#define CH_USE_SEMAPHORES TRUE +#endif + +/** + * @brief Semaphores queuing mode. + * @details If enabled then the threads are enqueued on semaphores by + * priority rather than in FIFO order. + * + * @note The default is @p FALSE. Enable this if you have special requirements. + * @note Requires @p CH_USE_SEMAPHORES. + */ +#if !defined(CH_USE_SEMAPHORES_PRIORITY) || defined(__DOXYGEN__) +#define CH_USE_SEMAPHORES_PRIORITY FALSE +#endif + +/** + * @brief Atomic semaphore API. + * @details If enabled then the semaphores the @p chSemSignalWait() API + * is included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_USE_SEMAPHORES. + */ +#if !defined(CH_USE_SEMSW) || defined(__DOXYGEN__) +#define CH_USE_SEMSW TRUE +#endif + +/** + * @brief Mutexes APIs. + * @details If enabled then the mutexes APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_USE_MUTEXES) || defined(__DOXYGEN__) +#define CH_USE_MUTEXES TRUE +#endif + +/** + * @brief Conditional Variables APIs. + * @details If enabled then the conditional variables APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_USE_MUTEXES. + */ +#if !defined(CH_USE_CONDVARS) || defined(__DOXYGEN__) +#define CH_USE_CONDVARS TRUE +#endif + +/** + * @brief Conditional Variables APIs with timeout. + * @details If enabled then the conditional variables APIs with timeout + * specification are included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_USE_CONDVARS. + */ +#if !defined(CH_USE_CONDVARS_TIMEOUT) || defined(__DOXYGEN__) +#define CH_USE_CONDVARS_TIMEOUT TRUE +#endif + +/** + * @brief Events Flags APIs. + * @details If enabled then the event flags APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_USE_EVENTS) || defined(__DOXYGEN__) +#define CH_USE_EVENTS TRUE +#endif + +/** + * @brief Events Flags APIs with timeout. + * @details If enabled then the events APIs with timeout specification + * are included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_USE_EVENTS. + */ +#if !defined(CH_USE_EVENTS_TIMEOUT) || defined(__DOXYGEN__) +#define CH_USE_EVENTS_TIMEOUT TRUE +#endif + +/** + * @brief Synchronous Messages APIs. + * @details If enabled then the synchronous messages APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_USE_MESSAGES) || defined(__DOXYGEN__) +#define CH_USE_MESSAGES TRUE +#endif + +/** + * @brief Synchronous Messages queuing mode. + * @details If enabled then messages are served by priority rather than in + * FIFO order. + * + * @note The default is @p FALSE. Enable this if you have special requirements. + * @note Requires @p CH_USE_MESSAGES. + */ +#if !defined(CH_USE_MESSAGES_PRIORITY) || defined(__DOXYGEN__) +#define CH_USE_MESSAGES_PRIORITY FALSE +#endif + +/** + * @brief Mailboxes APIs. + * @details If enabled then the asynchronous messages (mailboxes) APIs are + * included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_USE_SEMAPHORES. + */ +#if !defined(CH_USE_MAILBOXES) || defined(__DOXYGEN__) +#define CH_USE_MAILBOXES TRUE +#endif + +/** + * @brief I/O Queues APIs. + * @details If enabled then the I/O queues APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__) +#define CH_USE_QUEUES TRUE +#endif + +/** + * @brief Core Memory Manager APIs. + * @details If enabled then the core memory manager APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_USE_MEMCORE) || defined(__DOXYGEN__) +#define CH_USE_MEMCORE TRUE +#endif + +/** + * @brief Heap Allocator APIs. + * @details If enabled then the memory heap allocator APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_USE_MEMCORE and either @p CH_USE_MUTEXES or + * @p CH_USE_SEMAPHORES. + * @note Mutexes are recommended. + */ +#if !defined(CH_USE_HEAP) || defined(__DOXYGEN__) +#define CH_USE_HEAP TRUE +#endif + +/** + * @brief C-runtime allocator. + * @details If enabled the the heap allocator APIs just wrap the C-runtime + * @p malloc() and @p free() functions. + * + * @note The default is @p FALSE. + * @note Requires @p CH_USE_HEAP. + * @note The C-runtime may or may not require @p CH_USE_MEMCORE, see the + * appropriate documentation. + */ +#if !defined(CH_USE_MALLOC_HEAP) || defined(__DOXYGEN__) +#define CH_USE_MALLOC_HEAP FALSE +#endif + +/** + * @brief Memory Pools Allocator APIs. + * @details If enabled then the memory pools allocator APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_USE_MEMPOOLS) || defined(__DOXYGEN__) +#define CH_USE_MEMPOOLS TRUE +#endif + +/** + * @brief Dynamic Threads APIs. + * @details If enabled then the dynamic threads creation APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_USE_WAITEXIT. + * @note Requires @p CH_USE_HEAP and/or @p CH_USE_MEMPOOLS. + */ +#if !defined(CH_USE_DYNAMIC) || defined(__DOXYGEN__) +#define CH_USE_DYNAMIC TRUE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Debug options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Debug option, system state check. + * @details If enabled the correct call protocol for system APIs is checked + * at runtime. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_SYSTEM_STATE_CHECK) || defined(__DOXYGEN__) +#define CH_DBG_SYSTEM_STATE_CHECK FALSE +#endif + +/** + * @brief Debug option, parameters checks. + * @details If enabled then the checks on the API functions input + * parameters are activated. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_ENABLE_CHECKS) || defined(__DOXYGEN__) +#define CH_DBG_ENABLE_CHECKS FALSE +#endif + +/** + * @brief Debug option, consistency checks. + * @details If enabled then all the assertions in the kernel code are + * activated. This includes consistency checks inside the kernel, + * runtime anomalies and port-defined checks. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_ENABLE_ASSERTS) || defined(__DOXYGEN__) +#define CH_DBG_ENABLE_ASSERTS FALSE +#endif + +/** + * @brief Debug option, trace buffer. + * @details If enabled then the context switch circular trace buffer is + * activated. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_ENABLE_TRACE) || defined(__DOXYGEN__) +#define CH_DBG_ENABLE_TRACE FALSE +#endif + +/** + * @brief Debug option, stack checks. + * @details If enabled then a runtime stack check is performed. + * + * @note The default is @p FALSE. + * @note The stack check is performed in a architecture/port dependent way. + * It may not be implemented or some ports. + * @note The default failure mode is to halt the system with the global + * @p panic_msg variable set to @p NULL. + */ +#if !defined(CH_DBG_ENABLE_STACK_CHECK) || defined(__DOXYGEN__) +#define CH_DBG_ENABLE_STACK_CHECK TRUE +#endif + +/** + * @brief Debug option, stacks initialization. + * @details If enabled then the threads working area is filled with a byte + * value when a thread is created. This can be useful for the + * runtime measurement of the used stack. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_FILL_THREADS) || defined(__DOXYGEN__) +#define CH_DBG_FILL_THREADS TRUE +#endif + +/** + * @brief Debug option, threads profiling. + * @details If enabled then a field is added to the @p Thread structure that + * counts the system ticks occurred while executing the thread. + * + * @note The default is @p TRUE. + * @note This debug option is defaulted to TRUE because it is required by + * some test cases into the test suite. + */ +#if !defined(CH_DBG_THREADS_PROFILING) || defined(__DOXYGEN__) +#define CH_DBG_THREADS_PROFILING TRUE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Kernel hooks + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Threads descriptor structure extension. + * @details User fields added to the end of the @p Thread structure. + */ +#if !defined(THREAD_EXT_FIELDS) || defined(__DOXYGEN__) +#define THREAD_EXT_FIELDS \ + /* Add threads custom fields here.*/ +#endif + +/** + * @brief Threads initialization hook. + * @details User initialization code added to the @p chThdInit() API. + * + * @note It is invoked from within @p chThdInit() and implicitly from all + * the threads creation APIs. + */ +#if !defined(THREAD_EXT_INIT_HOOK) || defined(__DOXYGEN__) +#define THREAD_EXT_INIT_HOOK(tp) { \ + /* Add threads initialization code here.*/ \ +} +#endif + +/** + * @brief Threads finalization hook. + * @details User finalization code added to the @p chThdExit() API. + * + * @note It is inserted into lock zone. + * @note It is also invoked when the threads simply return in order to + * terminate. + */ +#if !defined(THREAD_EXT_EXIT_HOOK) || defined(__DOXYGEN__) +#define THREAD_EXT_EXIT_HOOK(tp) { \ + /* Add threads finalization code here.*/ \ +} +#endif + +/** + * @brief Context switch hook. + * @details This hook is invoked just before switching between threads. + */ +#if !defined(THREAD_CONTEXT_SWITCH_HOOK) || defined(__DOXYGEN__) +#define THREAD_CONTEXT_SWITCH_HOOK(ntp, otp) { \ + /* System halt code here.*/ \ +} +#endif + +/** + * @brief Idle Loop hook. + * @details This hook is continuously invoked by the idle thread loop. + */ +#if !defined(IDLE_LOOP_HOOK) || defined(__DOXYGEN__) +#define IDLE_LOOP_HOOK() { \ + /* Idle loop code here.*/ \ +} +#endif + +/** + * @brief System tick event hook. + * @details This hook is invoked in the system tick handler immediately + * after processing the virtual timers queue. + */ +#if !defined(SYSTEM_TICK_EVENT_HOOK) || defined(__DOXYGEN__) +#define SYSTEM_TICK_EVENT_HOOK() { \ + /* System tick event code here.*/ \ +} +#endif + +/** + * @brief System halt hook. + * @details This hook is invoked in case to a system halting error before + * the system is halted. + */ +#if !defined(SYSTEM_HALT_HOOK) || defined(__DOXYGEN__) +#define SYSTEM_HALT_HOOK() { \ + /* System halt code here.*/ \ +} +#endif + +/** @} */ + +/*===========================================================================*/ +/* Port-specific settings (override port settings defaulted in chcore.h). */ +/*===========================================================================*/ + +#endif /* _CHCONF_H_ */ + +/** @} */ diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/halconf.h b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/halconf.h new file mode 100644 index 0000000000..fa7e83bfa3 --- /dev/null +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/halconf.h @@ -0,0 +1,316 @@ +/* + ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, + 2011,2012,2013 Giovanni Di Sirio. + + This file is part of ChibiOS/RT. + + ChibiOS/RT is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + ChibiOS/RT is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +/** + * @file templates/halconf.h + * @brief HAL configuration header. + * @details HAL configuration file, this file allows to enable or disable the + * various device drivers from your application. You may also use + * this file in order to override the device drivers default settings. + * + * @addtogroup HAL_CONF + * @{ + */ + +#ifndef _HALCONF_H_ +#define _HALCONF_H_ + +#include "mcuconf.h" + +/** + * @brief Enables the TM subsystem. + */ +#if !defined(HAL_USE_TM) || defined(__DOXYGEN__) +#define HAL_USE_TM TRUE +#endif + +/** + * @brief Enables the PAL subsystem. + */ +#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) +#define HAL_USE_PAL TRUE +#endif + +/** + * @brief Enables the ADC subsystem. + */ +#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) +#define HAL_USE_ADC FALSE +#endif + +/** + * @brief Enables the CAN subsystem. + */ +#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) +#define HAL_USE_CAN FALSE +#endif + +/** + * @brief Enables the EXT subsystem. + */ +#if !defined(HAL_USE_EXT) || defined(__DOXYGEN__) +#define HAL_USE_EXT FALSE +#endif + +/** + * @brief Enables the GPT subsystem. + */ +#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) +#define HAL_USE_GPT FALSE +#endif + +/** + * @brief Enables the I2C subsystem. + */ +#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) +#define HAL_USE_I2C FALSE +#endif + +/** + * @brief Enables the ICU subsystem. + */ +#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) +#define HAL_USE_ICU FALSE +#endif + +/** + * @brief Enables the MAC subsystem. + */ +#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) +#define HAL_USE_MAC FALSE +#endif + +/** + * @brief Enables the MMC_SPI subsystem. + */ +#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) +#define HAL_USE_MMC_SPI FALSE +#endif + +/** + * @brief Enables the PWM subsystem. + */ +#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) +#define HAL_USE_PWM TRUE +#endif + +/** + * @brief Enables the RTC subsystem. + */ +#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) +#define HAL_USE_RTC FALSE +#endif + +/** + * @brief Enables the SDC subsystem. + */ +#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) +#define HAL_USE_SDC FALSE +#endif + +/** + * @brief Enables the SERIAL subsystem. + */ +#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) +#define HAL_USE_SERIAL TRUE +#endif + +/** + * @brief Enables the SERIAL over USB subsystem. + */ +#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) +#define HAL_USE_SERIAL_USB TRUE +#endif + +/** + * @brief Enables the SPI subsystem. + */ +#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) +#define HAL_USE_SPI FALSE +#endif + +/** + * @brief Enables the UART subsystem. + */ +#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) +#define HAL_USE_UART FALSE +#endif + +/** + * @brief Enables the USB subsystem. + */ +#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) +#define HAL_USE_USB TRUE +#endif + +/*===========================================================================*/ +/* ADC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) +#define ADC_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define ADC_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* CAN driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Sleep mode related APIs inclusion switch. + */ +#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) +#define CAN_USE_SLEEP_MODE TRUE +#endif + +/*===========================================================================*/ +/* I2C driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the mutual exclusion APIs on the I2C bus. + */ +#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define I2C_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* MAC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables an event sources for incoming packets. + */ +#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) +#define MAC_USE_ZERO_COPY FALSE +#endif + +/** + * @brief Enables an event sources for incoming packets. + */ +#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) +#define MAC_USE_EVENTS TRUE +#endif + +/*===========================================================================*/ +/* MMC_SPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Delays insertions. + * @details If enabled this options inserts delays into the MMC waiting + * routines releasing some extra CPU time for the threads with + * lower priority, this may slow down the driver a bit however. + * This option is recommended also if the SPI driver does not + * use a DMA channel and heavily loads the CPU. + */ +#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) +#define MMC_NICE_WAITING TRUE +#endif + +/*===========================================================================*/ +/* SDC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Number of initialization attempts before rejecting the card. + * @note Attempts are performed at 10mS intervals. + */ +#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) +#define SDC_INIT_RETRY 100 +#endif + +/** + * @brief Include support for MMC cards. + * @note MMC support is not yet implemented so this option must be kept + * at @p FALSE. + */ +#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) +#define SDC_MMC_SUPPORT FALSE +#endif + +/** + * @brief Delays insertions. + * @details If enabled this options inserts delays into the MMC waiting + * routines releasing some extra CPU time for the threads with + * lower priority, this may slow down the driver a bit however. + */ +#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) +#define SDC_NICE_WAITING TRUE +#endif + +/*===========================================================================*/ +/* SERIAL driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Default bit rate. + * @details Configuration parameter, this is the baud rate selected for the + * default configuration. + */ +#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) +#define SERIAL_DEFAULT_BITRATE 115200 +#endif + +/** + * @brief Serial buffers size. + * @details Configuration parameter, you can change the depth of the queue + * buffers depending on the requirements of your application. + * @note The default is 64 bytes for both the transmission and receive + * buffers. + */ +#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) +#define SERIAL_BUFFERS_SIZE 16 +#endif + +/*===========================================================================*/ +/* SPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) +#define SPI_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define SPI_USE_MUTUAL_EXCLUSION TRUE +#endif + +#endif /* _HALCONF_H_ */ + +/** @} */ diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/main.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/main.c new file mode 100644 index 0000000000..705af84643 --- /dev/null +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/main.c @@ -0,0 +1,221 @@ +/* + ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, + 2011,2012,2013 Giovanni Di Sirio. + + This file is part of ChibiOS/RT. + + ChibiOS/RT is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + ChibiOS/RT is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#include "ch.h" +#include "hal.h" +#include "test.h" + +#include "chprintf.h" +#include "shell.h" + +#include "usbcfg.h" + +/* Virtual serial port over USB.*/ +static SerialUSBDriver SDU1; + +/*===========================================================================*/ +/* Command line related. */ +/*===========================================================================*/ + +#define SHELL_WA_SIZE THD_WA_SIZE(2048) +#define TEST_WA_SIZE THD_WA_SIZE(256) + +static void cmd_mem(BaseSequentialStream *chp, int argc, char *argv[]) { + size_t n, size; + + (void)argv; + if (argc > 0) { + chprintf(chp, "Usage: mem\r\n"); + return; + } + n = chHeapStatus(NULL, &size); + chprintf(chp, "core free memory : %u bytes\r\n", chCoreStatus()); + chprintf(chp, "heap fragments : %u\r\n", n); + chprintf(chp, "heap free total : %u bytes\r\n", size); +} + +static void cmd_threads(BaseSequentialStream *chp, int argc, char *argv[]) { + static const char *states[] = {THD_STATE_NAMES}; + Thread *tp; + + (void)argv; + if (argc > 0) { + chprintf(chp, "Usage: threads\r\n"); + return; + } + chprintf(chp, " addr stack prio refs state time\r\n"); + tp = chRegFirstThread(); + do { + chprintf(chp, "%.8lx %.8lx %4lu %4lu %9s %lu\r\n", + (uint32_t)tp, (uint32_t)tp->p_ctx.r13, + (uint32_t)tp->p_prio, (uint32_t)(tp->p_refs - 1), + states[tp->p_state], (uint32_t)tp->p_time); + tp = chRegNextThread(tp); + } while (tp != NULL); +} + +static void cmd_test(BaseSequentialStream *chp, int argc, char *argv[]) { + Thread *tp; + + (void)argv; + if (argc > 0) { + chprintf(chp, "Usage: test\r\n"); + return; + } + tp = chThdCreateFromHeap(NULL, TEST_WA_SIZE, chThdGetPriority(), + TestThread, chp); + if (tp == NULL) { + chprintf(chp, "out of memory\r\n"); + return; + } + chThdWait(tp); +} + +static const ShellCommand commands[] = { + {"mem", cmd_mem}, + {"threads", cmd_threads}, + {"test", cmd_test}, + {NULL, NULL} +}; + +static const ShellConfig shell_cfg1 = { + (BaseSequentialStream *)&SDU1, + commands +}; + + +/* + * Debug output and heartbeat thread. + */ +static WORKING_AREA(waThread1, 128); +static msg_t Thread1(void *arg) { + (void)arg; + systime_t time; + + chRegSetThreadName("reader"); + +#if STM32_SERIAL_USE_USART2 + BaseSequentialStream *chp = (BaseSequentialStream *)&SD2; +#endif +#if STM32_SERIAL_USE_USART3 + BaseSequentialStream *chp = (BaseSequentialStream *)&SD3; +#endif + + /* Blinky Light Loop */ + palTogglePad(GPIOH, GPIOH_LED1); + palTogglePad(GPIOH, GPIOH_LED2); + + while (TRUE) { + time = chTimeNow(); + chprintf(chp, "Toggling LEDs: %u\r\n", time); + palTogglePad(GPIOH, GPIOH_LED1); + palTogglePad(GPIOH, GPIOH_LED2); + palTogglePad(GPIOI, GPIOI_LED3); + palTogglePad(GPIOI, GPIOI_LED4); + + chThdSleep(MS2ST(500)); + } +} + +/*===========================================================================*/ +/* Initialization and main thread. */ +/*===========================================================================*/ + +/* + * Application entry point. + */ +int main(void) { + Thread *shelltp = NULL; + + /* + * System initializations. + * - HAL initialization, this also initializes the configured device drivers + * and performs the board-specific initializations. + * - Kernel initialization, the main() function becomes a thread and the + * RTOS is active. + */ + halInit(); + chSysInit(); + + /* + * Shell manager initialization. + */ + shellInit(); + + /* + * Initializes a serial-over-USB CDC driver. + */ + sduObjectInit(&SDU1); + sduStart(&SDU1, &serusbcfg); + + /* + * Activates the USB driver and then the USB bus pull-up on D+. + * Note, a delay is inserted in order to not have to disconnect the cable + * after a reset. + */ + usbDisconnectBus(serusbcfg.usbp); + chThdSleepMilliseconds(1000); + usbStart(serusbcfg.usbp, &usbcfg); + usbConnectBus(serusbcfg.usbp); + + /* + * Activates the serial driver 2 using the driver default configuration. + * PA2(TX) and PA3(RX) are routed to USART2. + */ +#if STM32_SERIAL_USE_USART2 + sdStart(&SD2, NULL); + palSetPadMode(GPIOA, 2, PAL_MODE_ALTERNATE(7)); + palSetPadMode(GPIOA, 3, PAL_MODE_ALTERNATE(7)); +#endif + +#if STM32_SERIAL_USE_USART3 + sdStart(&SD3, NULL); + palSetPadMode(GPIOC, 10, PAL_MODE_ALTERNATE(7)); + palSetPadMode(GPIOC, 11, PAL_MODE_ALTERNATE(7)); +#endif + + + /* + * Creates the example thread. + */ + chThdCreateStatic(waThread1, sizeof(waThread1), NORMALPRIO + 10, Thread1, NULL); + + /* + * Normal main() thread activity, in this demo it just performs + * a shell respawn upon its termination. + */ + while (TRUE) { + if (!shelltp) { + if (SDU1.config->usbp->state == USB_ACTIVE) { + /* Spawns a new shell.*/ + shelltp = shellCreate(&shell_cfg1, SHELL_WA_SIZE, NORMALPRIO); + } + } + else { + /* If the previous shell exited.*/ + if (chThdTerminated(shelltp)) { + /* Recovers memory of the previous shell.*/ + chThdRelease(shelltp); + shelltp = NULL; + } + } + chThdSleepMilliseconds(500); + } +} diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/mcuconf.h b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/mcuconf.h new file mode 100644 index 0000000000..e5ccf5d6aa --- /dev/null +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/mcuconf.h @@ -0,0 +1,270 @@ +/* + ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, + 2011,2012,2013 Giovanni Di Sirio. + + This file is part of ChibiOS/RT. + + ChibiOS/RT is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + ChibiOS/RT is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +/* + * STM32F4xx drivers configuration. + * The following settings override the default settings present in + * the various device driver implementation headers. + * Note that the settings for each driver only have effect if the whole + * driver is enabled in halconf.h. + * + * IRQ priorities: + * 15...0 Lowest...Highest. + * + * DMA priorities: + * 0...3 Lowest...Highest. + */ + +#define STM32F4xx_MCUCONF + +/* + * HAL driver system settings. + */ +#define STM32_NO_INIT FALSE +#define STM32_HSI_ENABLED TRUE +#define STM32_LSI_ENABLED TRUE +#define STM32_HSE_ENABLED TRUE +#define STM32_LSE_ENABLED FALSE +#define STM32_CLOCK48_REQUIRED TRUE +#define STM32_SW STM32_SW_PLL +#define STM32_PLLSRC STM32_PLLSRC_HSE +#define STM32_PLLM_VALUE 8 +#define STM32_PLLN_VALUE 336 +#define STM32_PLLP_VALUE 2 +#define STM32_PLLQ_VALUE 7 +#define STM32_HPRE STM32_HPRE_DIV1 +#define STM32_PPRE1 STM32_PPRE1_DIV4 +#define STM32_PPRE2 STM32_PPRE2_DIV2 +#define STM32_RTCSEL STM32_RTCSEL_LSI +#define STM32_RTCPRE_VALUE 8 +#define STM32_MCO1SEL STM32_MCO1SEL_HSI +#define STM32_MCO1PRE STM32_MCO1PRE_DIV1 +#define STM32_MCO2SEL STM32_MCO2SEL_SYSCLK +#define STM32_MCO2PRE STM32_MCO2PRE_DIV5 +#define STM32_I2SSRC STM32_I2SSRC_CKIN +#define STM32_PLLI2SN_VALUE 192 +#define STM32_PLLI2SR_VALUE 5 +#define STM32_VOS STM32_VOS_HIGH +#define STM32_PVD_ENABLE FALSE +#define STM32_PLS STM32_PLS_LEV0 + +/* + * ADC driver system settings. + */ +#define STM32_ADC_ADCPRE ADC_CCR_ADCPRE_DIV4 +#define STM32_ADC_USE_ADC1 FALSE +#define STM32_ADC_USE_ADC2 FALSE +#define STM32_ADC_USE_ADC3 FALSE +#define STM32_ADC_ADC1_DMA_STREAM STM32_DMA_STREAM_ID(2, 4) +#define STM32_ADC_ADC2_DMA_STREAM STM32_DMA_STREAM_ID(2, 2) +#define STM32_ADC_ADC3_DMA_STREAM STM32_DMA_STREAM_ID(2, 1) +#define STM32_ADC_ADC1_DMA_PRIORITY 2 +#define STM32_ADC_ADC2_DMA_PRIORITY 2 +#define STM32_ADC_ADC3_DMA_PRIORITY 2 +#define STM32_ADC_IRQ_PRIORITY 6 +#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 6 +#define STM32_ADC_ADC2_DMA_IRQ_PRIORITY 6 +#define STM32_ADC_ADC3_DMA_IRQ_PRIORITY 6 + +/* + * CAN driver system settings. + */ +#define STM32_CAN_USE_CAN1 FALSE +#define STM32_CAN_USE_CAN2 FALSE +#define STM32_CAN_CAN1_IRQ_PRIORITY 11 +#define STM32_CAN_CAN2_IRQ_PRIORITY 11 + +/* + * EXT driver system settings. + */ +#define STM32_EXT_EXTI0_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI1_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI2_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI3_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI4_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI5_9_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI10_15_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI16_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI17_IRQ_PRIORITY 15 +#define STM32_EXT_EXTI18_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI19_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI20_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI21_IRQ_PRIORITY 15 +#define STM32_EXT_EXTI22_IRQ_PRIORITY 15 + +/* + * GPT driver system settings. + */ +#define STM32_GPT_USE_TIM1 FALSE +#define STM32_GPT_USE_TIM2 FALSE +#define STM32_GPT_USE_TIM3 FALSE +#define STM32_GPT_USE_TIM4 FALSE +#define STM32_GPT_USE_TIM5 FALSE +#define STM32_GPT_USE_TIM8 FALSE +#define STM32_GPT_TIM1_IRQ_PRIORITY 7 +#define STM32_GPT_TIM2_IRQ_PRIORITY 7 +#define STM32_GPT_TIM3_IRQ_PRIORITY 7 +#define STM32_GPT_TIM4_IRQ_PRIORITY 7 +#define STM32_GPT_TIM5_IRQ_PRIORITY 7 +#define STM32_GPT_TIM8_IRQ_PRIORITY 7 + +/* + * I2C driver system settings. + */ +#define STM32_I2C_USE_I2C1 FALSE +#define STM32_I2C_USE_I2C2 FALSE +#define STM32_I2C_USE_I2C3 FALSE +#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0) +#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6) +#define STM32_I2C_I2C2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 2) +#define STM32_I2C_I2C2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7) +#define STM32_I2C_I2C3_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 2) +#define STM32_I2C_I2C3_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4) +#define STM32_I2C_I2C1_IRQ_PRIORITY 5 +#define STM32_I2C_I2C2_IRQ_PRIORITY 5 +#define STM32_I2C_I2C3_IRQ_PRIORITY 5 +#define STM32_I2C_I2C1_DMA_PRIORITY 3 +#define STM32_I2C_I2C2_DMA_PRIORITY 3 +#define STM32_I2C_I2C3_DMA_PRIORITY 3 +#define STM32_I2C_I2C1_DMA_ERROR_HOOK() chSysHalt() +#define STM32_I2C_I2C2_DMA_ERROR_HOOK() chSysHalt() +#define STM32_I2C_I2C3_DMA_ERROR_HOOK() chSysHalt() + +/* + * ICU driver system settings. + */ +#define STM32_ICU_USE_TIM1 FALSE +#define STM32_ICU_USE_TIM2 FALSE +#define STM32_ICU_USE_TIM3 FALSE +#define STM32_ICU_USE_TIM4 FALSE +#define STM32_ICU_USE_TIM5 FALSE +#define STM32_ICU_USE_TIM8 FALSE +#define STM32_ICU_TIM1_IRQ_PRIORITY 7 +#define STM32_ICU_TIM2_IRQ_PRIORITY 7 +#define STM32_ICU_TIM3_IRQ_PRIORITY 7 +#define STM32_ICU_TIM4_IRQ_PRIORITY 7 +#define STM32_ICU_TIM5_IRQ_PRIORITY 7 +#define STM32_ICU_TIM8_IRQ_PRIORITY 7 + +/* + * MAC driver system settings. + */ +#define STM32_MAC_TRANSMIT_BUFFERS 2 +#define STM32_MAC_RECEIVE_BUFFERS 4 +#define STM32_MAC_BUFFERS_SIZE 1522 +#define STM32_MAC_PHY_TIMEOUT 100 +#define STM32_MAC_ETH1_CHANGE_PHY_STATE TRUE +#define STM32_MAC_ETH1_IRQ_PRIORITY 13 +#define STM32_MAC_IP_CHECKSUM_OFFLOAD 0 + +/* + * PWM driver system settings. + */ +#define STM32_PWM_USE_ADVANCED FALSE +#define STM32_PWM_USE_TIM1 FALSE +#define STM32_PWM_USE_TIM2 FALSE +#define STM32_PWM_USE_TIM3 FALSE +#define STM32_PWM_USE_TIM4 TRUE +#define STM32_PWM_USE_TIM5 FALSE +#define STM32_PWM_USE_TIM8 FALSE +#define STM32_PWM_TIM1_IRQ_PRIORITY 7 +#define STM32_PWM_TIM2_IRQ_PRIORITY 7 +#define STM32_PWM_TIM3_IRQ_PRIORITY 7 +#define STM32_PWM_TIM4_IRQ_PRIORITY 7 +#define STM32_PWM_TIM5_IRQ_PRIORITY 7 +#define STM32_PWM_TIM8_IRQ_PRIORITY 7 + +/* + * SERIAL driver system settings. + */ +#define STM32_SERIAL_USE_USART1 FALSE +#define STM32_SERIAL_USE_USART2 FALSE +#define STM32_SERIAL_USE_USART3 TRUE +#define STM32_SERIAL_USE_UART4 FALSE +#define STM32_SERIAL_USE_UART5 FALSE +#define STM32_SERIAL_USE_USART6 FALSE +#define STM32_SERIAL_USART1_PRIORITY 12 +#define STM32_SERIAL_USART2_PRIORITY 12 +#define STM32_SERIAL_USART3_PRIORITY 12 +#define STM32_SERIAL_UART4_PRIORITY 12 +#define STM32_SERIAL_UART5_PRIORITY 12 +#define STM32_SERIAL_USART6_PRIORITY 12 + +/* + * SPI driver system settings. + */ +#define STM32_SPI_USE_SPI1 FALSE +#define STM32_SPI_USE_SPI2 FALSE +#define STM32_SPI_USE_SPI3 FALSE +#define STM32_SPI_SPI1_RX_DMA_STREAM STM32_DMA_STREAM_ID(2, 0) +#define STM32_SPI_SPI1_TX_DMA_STREAM STM32_DMA_STREAM_ID(2, 3) +#define STM32_SPI_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 3) +#define STM32_SPI_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4) +#define STM32_SPI_SPI3_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0) +#define STM32_SPI_SPI3_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7) +#define STM32_SPI_SPI1_DMA_PRIORITY 1 +#define STM32_SPI_SPI2_DMA_PRIORITY 1 +#define STM32_SPI_SPI3_DMA_PRIORITY 1 +#define STM32_SPI_SPI1_IRQ_PRIORITY 10 +#define STM32_SPI_SPI2_IRQ_PRIORITY 10 +#define STM32_SPI_SPI3_IRQ_PRIORITY 10 +#define STM32_SPI_DMA_ERROR_HOOK(spip) chSysHalt() + +/* + * UART driver system settings. + */ +#define STM32_UART_USE_USART1 FALSE +#define STM32_UART_USE_USART2 FALSE +#define STM32_UART_USE_USART3 FALSE +#define STM32_UART_USE_USART6 FALSE +#define STM32_UART_USART1_RX_DMA_STREAM STM32_DMA_STREAM_ID(2, 5) +#define STM32_UART_USART1_TX_DMA_STREAM STM32_DMA_STREAM_ID(2, 7) +#define STM32_UART_USART2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5) +#define STM32_UART_USART2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6) +#define STM32_UART_USART3_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 1) +#define STM32_UART_USART3_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 3) +#define STM32_UART_USART6_RX_DMA_STREAM STM32_DMA_STREAM_ID(2, 2) +#define STM32_UART_USART6_TX_DMA_STREAM STM32_DMA_STREAM_ID(2, 7) +#define STM32_UART_USART1_IRQ_PRIORITY 12 +#define STM32_UART_USART2_IRQ_PRIORITY 12 +#define STM32_UART_USART3_IRQ_PRIORITY 12 +#define STM32_UART_USART6_IRQ_PRIORITY 12 +#define STM32_UART_USART1_DMA_PRIORITY 0 +#define STM32_UART_USART2_DMA_PRIORITY 0 +#define STM32_UART_USART3_DMA_PRIORITY 0 +#define STM32_UART_USART6_DMA_PRIORITY 0 +#define STM32_UART_DMA_ERROR_HOOK(uartp) chSysHalt() + +/* + * USB driver system settings. + */ +#define STM32_USB_USE_OTG1 TRUE +#define STM32_USB_USE_OTG2 FALSE +#define STM32_USE_USB_OTG2_ULPI FALSE +#define STM32_USE_USB_OTG2_HS FALSE +#define STM32_USB_OTG1_IRQ_PRIORITY 14 +#define STM32_USB_OTG2_IRQ_PRIORITY 14 +#define STM32_USB_OTG1_RX_FIFO_SIZE 512 +#define STM32_USB_OTG2_RX_FIFO_SIZE 1024 +#define STM32_USB_OTG_THREAD_PRIO LOWPRIO +#define STM32_USB_OTG_THREAD_STACK_SIZE 128 +#define STM32_USB_OTGFIFO_FILL_BASEPRI 0 + + diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/readme.txt b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/readme.txt new file mode 100644 index 0000000000..3d7f8ce4a3 --- /dev/null +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/readme.txt @@ -0,0 +1,27 @@ +***************************************************************************** +** ChibiOS/RT port for ARM-Cortex-M4 STM32F407. ** +***************************************************************************** + +** TARGET ** + +The demo runs on an WaveShare STM32F4 Open 407I-C board. + +** The Demo ** + +A simple command shell is activated on virtual serial port SD2 via USB-CDC +driver (use mini-USB plug on 207I-C board board). + +** Build Procedure ** + +The demo has been tested by using the free Codesourcery GCC-based toolchain. +Just modify the TRGT line in the makefile in order to use different GCC +toolchains. + +** Notes ** + +Some files used by the demo are not part of ChibiOS/RT but are copyright of +ST Microelectronics and are licensed under a different license. +Also note that not all the files present in the ST library are distributed +with ChibiOS/RT, you can find the whole library on the ST web site: + + http://www.st.com diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/usbcfg.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/usbcfg.c new file mode 100644 index 0000000000..d95c503c98 --- /dev/null +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/usbcfg.c @@ -0,0 +1,308 @@ +/* + ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, + 2011,2012,2013 Giovanni Di Sirio. + + This file is part of ChibiOS/RT. + + ChibiOS/RT is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + ChibiOS/RT is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#include "ch.h" +#include "hal.h" +#include "usb_cdc.h" + +/* + * USB Device Descriptor. + */ +static const uint8_t vcom_device_descriptor_data[18] = { + USB_DESC_DEVICE (0x0110, /* bcdUSB (1.1). */ + 0x02, /* bDeviceClass (CDC). */ + 0x00, /* bDeviceSubClass. */ + 0x00, /* bDeviceProtocol. */ + 0x40, /* bMaxPacketSize. */ + 0x0483, /* idVendor (ST). */ + 0x5740, /* idProduct. */ + 0x0200, /* bcdDevice. */ + 1, /* iManufacturer. */ + 2, /* iProduct. */ + 3, /* iSerialNumber. */ + 1) /* bNumConfigurations. */ +}; + +/* + * Device Descriptor wrapper. + */ +static const USBDescriptor vcom_device_descriptor = { + sizeof vcom_device_descriptor_data, + vcom_device_descriptor_data +}; + +/* Configuration Descriptor tree for a CDC.*/ +static const uint8_t vcom_configuration_descriptor_data[67] = { + /* Configuration Descriptor.*/ + USB_DESC_CONFIGURATION(67, /* wTotalLength. */ + 0x02, /* bNumInterfaces. */ + 0x01, /* bConfigurationValue. */ + 0, /* iConfiguration. */ + 0xC0, /* bmAttributes (self powered). */ + 50), /* bMaxPower (100mA). */ + /* Interface Descriptor.*/ + USB_DESC_INTERFACE (0x00, /* bInterfaceNumber. */ + 0x00, /* bAlternateSetting. */ + 0x01, /* bNumEndpoints. */ + 0x02, /* bInterfaceClass (Communications + Interface Class, CDC section + 4.2). */ + 0x02, /* bInterfaceSubClass (Abstract + Control Model, CDC section 4.3). */ + 0x01, /* bInterfaceProtocol (AT commands, + CDC section 4.4). */ + 0), /* iInterface. */ + /* Header Functional Descriptor (CDC section 5.2.3).*/ + USB_DESC_BYTE (5), /* bLength. */ + USB_DESC_BYTE (0x24), /* bDescriptorType (CS_INTERFACE). */ + USB_DESC_BYTE (0x00), /* bDescriptorSubtype (Header + Functional Descriptor. */ + USB_DESC_BCD (0x0110), /* bcdCDC. */ + /* Call Management Functional Descriptor. */ + USB_DESC_BYTE (5), /* bFunctionLength. */ + USB_DESC_BYTE (0x24), /* bDescriptorType (CS_INTERFACE). */ + USB_DESC_BYTE (0x01), /* bDescriptorSubtype (Call Management + Functional Descriptor). */ + USB_DESC_BYTE (0x00), /* bmCapabilities (D0+D1). */ + USB_DESC_BYTE (0x01), /* bDataInterface. */ + /* ACM Functional Descriptor.*/ + USB_DESC_BYTE (4), /* bFunctionLength. */ + USB_DESC_BYTE (0x24), /* bDescriptorType (CS_INTERFACE). */ + USB_DESC_BYTE (0x02), /* bDescriptorSubtype (Abstract + Control Management Descriptor). */ + USB_DESC_BYTE (0x02), /* bmCapabilities. */ + /* Union Functional Descriptor.*/ + USB_DESC_BYTE (5), /* bFunctionLength. */ + USB_DESC_BYTE (0x24), /* bDescriptorType (CS_INTERFACE). */ + USB_DESC_BYTE (0x06), /* bDescriptorSubtype (Union + Functional Descriptor). */ + USB_DESC_BYTE (0x00), /* bMasterInterface (Communication + Class Interface). */ + USB_DESC_BYTE (0x01), /* bSlaveInterface0 (Data Class + Interface). */ + /* Endpoint 2 Descriptor.*/ + USB_DESC_ENDPOINT (USB_CDC_INTERRUPT_REQUEST_EP|0x80, + 0x03, /* bmAttributes (Interrupt). */ + 0x0008, /* wMaxPacketSize. */ + 0xFF), /* bInterval. */ + /* Interface Descriptor.*/ + USB_DESC_INTERFACE (0x01, /* bInterfaceNumber. */ + 0x00, /* bAlternateSetting. */ + 0x02, /* bNumEndpoints. */ + 0x0A, /* bInterfaceClass (Data Class + Interface, CDC section 4.5). */ + 0x00, /* bInterfaceSubClass (CDC section + 4.6). */ + 0x00, /* bInterfaceProtocol (CDC section + 4.7). */ + 0x00), /* iInterface. */ + /* Endpoint 3 Descriptor.*/ + USB_DESC_ENDPOINT (USB_CDC_DATA_AVAILABLE_EP, /* bEndpointAddress.*/ + 0x02, /* bmAttributes (Bulk). */ + 0x0040, /* wMaxPacketSize. */ + 0x00), /* bInterval. */ + /* Endpoint 1 Descriptor.*/ + USB_DESC_ENDPOINT (USB_CDC_DATA_REQUEST_EP|0x80, /* bEndpointAddress.*/ + 0x02, /* bmAttributes (Bulk). */ + 0x0040, /* wMaxPacketSize. */ + 0x00) /* bInterval. */ +}; + +/* + * Configuration Descriptor wrapper. + */ +static const USBDescriptor vcom_configuration_descriptor = { + sizeof vcom_configuration_descriptor_data, + vcom_configuration_descriptor_data +}; + +/* + * U.S. English language identifier. + */ +static const uint8_t vcom_string0[] = { + USB_DESC_BYTE(4), /* bLength. */ + USB_DESC_BYTE(USB_DESCRIPTOR_STRING), /* bDescriptorType. */ + USB_DESC_WORD(0x0409) /* wLANGID (U.S. English). */ +}; + +/* + * Vendor string. + */ +static const uint8_t vcom_string1[] = { + USB_DESC_BYTE(38), /* bLength. */ + USB_DESC_BYTE(USB_DESCRIPTOR_STRING), /* bDescriptorType. */ + 'S', 0, 'T', 0, 'M', 0, 'i', 0, 'c', 0, 'r', 0, 'o', 0, 'e', 0, + 'l', 0, 'e', 0, 'c', 0, 't', 0, 'r', 0, 'o', 0, 'n', 0, 'i', 0, + 'c', 0, 's', 0 +}; + +/* + * Device Description string. + */ +static const uint8_t vcom_string2[] = { + USB_DESC_BYTE(56), /* bLength. */ + USB_DESC_BYTE(USB_DESCRIPTOR_STRING), /* bDescriptorType. */ + 'C', 0, 'h', 0, 'i', 0, 'b', 0, 'i', 0, 'O', 0, 'S', 0, '/', 0, + 'R', 0, 'T', 0, ' ', 0, 'V', 0, 'i', 0, 'r', 0, 't', 0, 'u', 0, + 'a', 0, 'l', 0, ' ', 0, 'C', 0, 'O', 0, 'M', 0, ' ', 0, 'P', 0, + 'o', 0, 'r', 0, 't', 0 +}; + +/* + * Serial Number string. + */ +static const uint8_t vcom_string3[] = { + USB_DESC_BYTE(8), /* bLength. */ + USB_DESC_BYTE(USB_DESCRIPTOR_STRING), /* bDescriptorType. */ + '0' + CH_KERNEL_MAJOR, 0, + '0' + CH_KERNEL_MINOR, 0, + '0' + CH_KERNEL_PATCH, 0 +}; + +/* + * Strings wrappers array. + */ +static const USBDescriptor vcom_strings[] = { + {sizeof vcom_string0, vcom_string0}, + {sizeof vcom_string1, vcom_string1}, + {sizeof vcom_string2, vcom_string2}, + {sizeof vcom_string3, vcom_string3} +}; + +/* + * Handles the GET_DESCRIPTOR callback. All required descriptors must be + * handled here. + */ +static const USBDescriptor *get_descriptor(USBDriver *usbp, + uint8_t dtype, + uint8_t dindex, + uint16_t lang) { + + (void)usbp; + (void)lang; + switch (dtype) { + case USB_DESCRIPTOR_DEVICE: + return &vcom_device_descriptor; + case USB_DESCRIPTOR_CONFIGURATION: + return &vcom_configuration_descriptor; + case USB_DESCRIPTOR_STRING: + if (dindex < 4) + return &vcom_strings[dindex]; + } + return NULL; +} + +/** + * @brief IN EP1 state. + */ +static USBInEndpointState ep1instate; + +/** + * @brief OUT EP1 state. + */ +static USBOutEndpointState ep1outstate; + +/** + * @brief EP1 initialization structure (both IN and OUT). + */ +static const USBEndpointConfig ep1config = { + USB_EP_MODE_TYPE_BULK, + NULL, + sduDataTransmitted, + sduDataReceived, + 0x0040, + 0x0040, + &ep1instate, + &ep1outstate, + 2, + NULL +}; + +/** + * @brief IN EP2 state. + */ +static USBInEndpointState ep2instate; + +/** + * @brief EP2 initialization structure (IN only). + */ +static const USBEndpointConfig ep2config = { + USB_EP_MODE_TYPE_INTR, + NULL, + sduInterruptTransmitted, + NULL, + 0x0010, + 0x0000, + &ep2instate, + NULL, + 1, + NULL +}; + +/* + * Handles the USB driver global events. + */ +static void usb_event(USBDriver *usbp, usbevent_t event) { + + switch (event) { + case USB_EVENT_RESET: + return; + case USB_EVENT_ADDRESS: + return; + case USB_EVENT_CONFIGURED: + chSysLockFromIsr(); + + /* Enables the endpoints specified into the configuration. + Note, this callback is invoked from an ISR so I-Class functions + must be used.*/ + usbInitEndpointI(usbp, USB_CDC_DATA_REQUEST_EP, &ep1config); + usbInitEndpointI(usbp, USB_CDC_INTERRUPT_REQUEST_EP, &ep2config); + + /* Resetting the state of the CDC subsystem.*/ + sduConfigureHookI(usbp); + + chSysUnlockFromIsr(); + return; + case USB_EVENT_SUSPEND: + return; + case USB_EVENT_WAKEUP: + return; + case USB_EVENT_STALLED: + return; + } + return; +} + +/* + * USB driver configuration. + */ +const USBConfig usbcfg = { + usb_event, + get_descriptor, + sduRequestsHook, + NULL +}; + +/* + * Serial over USB driver configuration. + */ +const SerialUSBConfig serusbcfg = { + &USBD1 +}; diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/usbcfg.h b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/usbcfg.h new file mode 100644 index 0000000000..aa6353cf92 --- /dev/null +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/usbcfg.h @@ -0,0 +1,29 @@ +/* + ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, + 2011,2012,2013 Giovanni Di Sirio. + + This file is part of ChibiOS/RT. + + ChibiOS/RT is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + ChibiOS/RT is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#ifndef _USBCFG_H_ +#define _USBCFG_H_ + +extern const USBConfig usbcfg; +extern SerialUSBConfig serusbcfg; + +#endif /* _USBCFG_H_ */ + +/** @} */ diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/usbcfg.h~HEAD b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/usbcfg.h~HEAD new file mode 100644 index 0000000000..aa6353cf92 --- /dev/null +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/usbcfg.h~HEAD @@ -0,0 +1,29 @@ +/* + ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, + 2011,2012,2013 Giovanni Di Sirio. + + This file is part of ChibiOS/RT. + + ChibiOS/RT is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + ChibiOS/RT is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#ifndef _USBCFG_H_ +#define _USBCFG_H_ + +extern const USBConfig usbcfg; +extern SerialUSBConfig serusbcfg; + +#endif /* _USBCFG_H_ */ + +/** @} */ From 336decbf527205662b2f16067170e0a20fed6c9b Mon Sep 17 00:00:00 2001 From: Dave Camarillo Date: Tue, 19 Feb 2013 16:09:34 -0800 Subject: [PATCH 03/52] added demo code for high speed ulpi interface --- .../Makefile | 224 ++++++++ .../chconf.h | 535 ++++++++++++++++++ .../halconf.h | 316 +++++++++++ .../main.c | 220 +++++++ .../mcuconf.h | 270 +++++++++ .../readme.txt | 27 + .../usbcfg.c | 308 ++++++++++ .../usbcfg.h | 29 + 8 files changed, 1929 insertions(+) create mode 100644 demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/Makefile create mode 100644 demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/chconf.h create mode 100644 demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/halconf.h create mode 100644 demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/main.c create mode 100644 demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/mcuconf.h create mode 100644 demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/readme.txt create mode 100644 demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/usbcfg.c create mode 100644 demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/usbcfg.h diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/Makefile b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/Makefile new file mode 100644 index 0000000000..9da3f11f37 --- /dev/null +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/Makefile @@ -0,0 +1,224 @@ +############################################################################## +# Build global options +# NOTE: Can be overridden externally. +# + +# Compiler options here. +ifeq ($(USE_OPT),) + USE_OPT = -O2 -ggdb -fomit-frame-pointer -falign-functions=16 +endif + +# C specific options here (added to USE_OPT). +ifeq ($(USE_COPT),) + USE_COPT = +endif + +# C++ specific options here (added to USE_OPT). +ifeq ($(USE_CPPOPT),) + USE_CPPOPT = -fno-rtti +endif + +# Enable this if you want the linker to remove unused code and data +ifeq ($(USE_LINK_GC),) + USE_LINK_GC = yes +endif + +# If enabled, this option allows to compile the application in THUMB mode. +ifeq ($(USE_THUMB),) + USE_THUMB = yes +endif + +# Enable this if you want to see the full log while compiling. +ifeq ($(USE_VERBOSE_COMPILE),) + USE_VERBOSE_COMPILE = no +endif + +# +# Build global options +############################################################################## + +############################################################################## +# Architecture or project specific options +# + +# Enables the use of FPU on Cortex-M4. +# Enable this if you really want to use the STM FWLib. +ifeq ($(USE_FPU),) + USE_FPU = no +endif + +# Enable this if you really want to use the STM FWLib. +ifeq ($(USE_FWLIB),) + USE_FWLIB = no +endif + +# +# Architecture or project specific options +############################################################################## + +############################################################################## +# Project, sources and paths +# + +# Define project name here +PROJECT = ch + +# Imported source files and paths +CHIBIOS = ../.. +include $(CHIBIOS)/boards/WAVESHARE_OPEN_407I_C/board.mk +include $(CHIBIOS)/os/hal/platforms/STM32F4xx/platform.mk +include $(CHIBIOS)/os/hal/hal.mk +include $(CHIBIOS)/os/ports/GCC/ARMCMx/STM32F4xx/port.mk +include $(CHIBIOS)/os/kernel/kernel.mk +include $(CHIBIOS)/test/test.mk + +# Define linker script file here +LDSCRIPT= $(PORTLD)/STM32F407xG.ld +#LDSCRIPT= $(PORTLD)/STM32F407xG_CCM.ld + +# C sources that can be compiled in ARM or THUMB mode depending on the global +# setting. +CSRC = $(PORTSRC) \ + $(KERNSRC) \ + $(TESTSRC) \ + $(HALSRC) \ + $(PLATFORMSRC) \ + $(BOARDSRC) \ + $(CHIBIOS)/os/various/shell.c \ + $(CHIBIOS)/os/various/chprintf.c \ + usbcfg.c main.c + +# C++ sources that can be compiled in ARM or THUMB mode depending on the global +# setting. +CPPSRC = + +# C sources to be compiled in ARM mode regardless of the global setting. +# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler +# option that results in lower performance and larger code size. +ACSRC = + +# C++ sources to be compiled in ARM mode regardless of the global setting. +# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler +# option that results in lower performance and larger code size. +ACPPSRC = + +# C sources to be compiled in THUMB mode regardless of the global setting. +# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler +# option that results in lower performance and larger code size. +TCSRC = + +# C sources to be compiled in THUMB mode regardless of the global setting. +# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler +# option that results in lower performance and larger code size. +TCPPSRC = + +# List ASM source files here +ASMSRC = $(PORTASM) + +INCDIR = $(PORTINC) $(KERNINC) $(TESTINC) \ + $(HALINC) $(PLATFORMINC) $(BOARDINC) \ + $(CHIBIOS)/os/various/devices_lib/accel \ + $(CHIBIOS)/os/various + +# +# Project, sources and paths +############################################################################## + +############################################################################## +# Compiler settings +# + +MCU = cortex-m4 + +#TRGT = arm-elf- +TRGT = arm-none-eabi- +CC = $(TRGT)gcc +CPPC = $(TRGT)g++ +# Enable loading with g++ only if you need C++ runtime support. +# NOTE: You can use C++ even without C++ support if you are careful. C++ +# runtime support makes code size explode. +LD = $(TRGT)gcc +#LD = $(TRGT)g++ +CP = $(TRGT)objcopy +AS = $(TRGT)gcc -x assembler-with-cpp +OD = $(TRGT)objdump +HEX = $(CP) -O ihex +BIN = $(CP) -O binary + +# ARM-specific options here +AOPT = + +# THUMB-specific options here +TOPT = -mthumb -DTHUMB + +# Define C warning options here +CWARN = -Wall -Wextra -Wstrict-prototypes + +# Define C++ warning options here +CPPWARN = -Wall -Wextra + +# +# Compiler settings +############################################################################## + +############################################################################## +# Start of default section +# + +# List all default C defines here, like -D_DEBUG=1 +DDEFS = + +# List all default ASM defines here, like -D_DEBUG=1 +DADEFS = + +# List all default directories to look for include files here +DINCDIR = + +# List the default directory to look for the libraries here +DLIBDIR = + +# List all default libraries here +DLIBS = + +# +# End of default section +############################################################################## + +############################################################################## +# Start of user section +# + +# List all user C define here, like -D_DEBUG=1 +UDEFS = + +# Define ASM defines here +UADEFS = + +# List all user directories here +UINCDIR = + +# List the user directory to look for the libraries here +ULIBDIR = + +# List all user libraries here +ULIBS = + +# +# End of user defines +############################################################################## + +ifeq ($(USE_FPU),yes) + USE_OPT += -mfloat-abi=softfp -mfpu=fpv4-sp-d16 -fsingle-precision-constant + DDEFS += -DCORTEX_USE_FPU=TRUE +else + DDEFS += -DCORTEX_USE_FPU=FALSE +endif + +ifeq ($(USE_FWLIB),yes) + include $(CHIBIOS)/ext/stm32lib/stm32lib.mk + CSRC += $(STM32SRC) + INCDIR += $(STM32INC) + USE_OPT += -DUSE_STDPERIPH_DRIVER +endif + +include $(CHIBIOS)/os/ports/GCC/ARMCMx/rules.mk diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/chconf.h b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/chconf.h new file mode 100644 index 0000000000..f0ccde0d06 --- /dev/null +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/chconf.h @@ -0,0 +1,535 @@ +/* + ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, + 2011,2012,2013 Giovanni Di Sirio. + + This file is part of ChibiOS/RT. + + ChibiOS/RT is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + ChibiOS/RT is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +/** + * @file templates/chconf.h + * @brief Configuration file template. + * @details A copy of this file must be placed in each project directory, it + * contains the application specific kernel settings. + * + * @addtogroup config + * @details Kernel related settings and hooks. + * @{ + */ + +#ifndef _CHCONF_H_ +#define _CHCONF_H_ + +/*===========================================================================*/ +/** + * @name Kernel parameters and options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief System tick frequency. + * @details Frequency of the system timer that drives the system ticks. This + * setting also defines the system tick time unit. + */ +#if !defined(CH_FREQUENCY) || defined(__DOXYGEN__) +#define CH_FREQUENCY 1000 +#endif + +/** + * @brief Round robin interval. + * @details This constant is the number of system ticks allowed for the + * threads before preemption occurs. Setting this value to zero + * disables the preemption for threads with equal priority and the + * round robin becomes cooperative. Note that higher priority + * threads can still preempt, the kernel is always preemptive. + * + * @note Disabling the round robin preemption makes the kernel more compact + * and generally faster. + */ +#if !defined(CH_TIME_QUANTUM) || defined(__DOXYGEN__) +#define CH_TIME_QUANTUM 10 +#endif + +/** + * @brief Managed RAM size. + * @details Size of the RAM area to be managed by the OS. If set to zero + * then the whole available RAM is used. The core memory is made + * available to the heap allocator and/or can be used directly through + * the simplified core memory allocator. + * + * @note In order to let the OS manage the whole RAM the linker script must + * provide the @p __heap_base__ and @p __heap_end__ symbols. + * @note Requires @p CH_USE_MEMCORE. + */ +#if !defined(CH_MEMCORE_SIZE) || defined(__DOXYGEN__) +#define CH_MEMCORE_SIZE 0 +#endif + +/** + * @brief Idle thread automatic spawn suppression. + * @details When this option is activated the function @p chSysInit() + * does not spawn the idle thread automatically. The application has + * then the responsibility to do one of the following: + * - Spawn a custom idle thread at priority @p IDLEPRIO. + * - Change the main() thread priority to @p IDLEPRIO then enter + * an endless loop. In this scenario the @p main() thread acts as + * the idle thread. + * . + * @note Unless an idle thread is spawned the @p main() thread must not + * enter a sleep state. + */ +#if !defined(CH_NO_IDLE_THREAD) || defined(__DOXYGEN__) +#define CH_NO_IDLE_THREAD FALSE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Performance options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief OS optimization. + * @details If enabled then time efficient rather than space efficient code + * is used when two possible implementations exist. + * + * @note This is not related to the compiler optimization options. + * @note The default is @p TRUE. + */ +#if !defined(CH_OPTIMIZE_SPEED) || defined(__DOXYGEN__) +#define CH_OPTIMIZE_SPEED TRUE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Subsystem options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Threads registry APIs. + * @details If enabled then the registry APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_USE_REGISTRY) || defined(__DOXYGEN__) +#define CH_USE_REGISTRY TRUE +#endif + +/** + * @brief Threads synchronization APIs. + * @details If enabled then the @p chThdWait() function is included in + * the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_USE_WAITEXIT) || defined(__DOXYGEN__) +#define CH_USE_WAITEXIT TRUE +#endif + +/** + * @brief Semaphores APIs. + * @details If enabled then the Semaphores APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_USE_SEMAPHORES) || defined(__DOXYGEN__) +#define CH_USE_SEMAPHORES TRUE +#endif + +/** + * @brief Semaphores queuing mode. + * @details If enabled then the threads are enqueued on semaphores by + * priority rather than in FIFO order. + * + * @note The default is @p FALSE. Enable this if you have special requirements. + * @note Requires @p CH_USE_SEMAPHORES. + */ +#if !defined(CH_USE_SEMAPHORES_PRIORITY) || defined(__DOXYGEN__) +#define CH_USE_SEMAPHORES_PRIORITY FALSE +#endif + +/** + * @brief Atomic semaphore API. + * @details If enabled then the semaphores the @p chSemSignalWait() API + * is included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_USE_SEMAPHORES. + */ +#if !defined(CH_USE_SEMSW) || defined(__DOXYGEN__) +#define CH_USE_SEMSW TRUE +#endif + +/** + * @brief Mutexes APIs. + * @details If enabled then the mutexes APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_USE_MUTEXES) || defined(__DOXYGEN__) +#define CH_USE_MUTEXES TRUE +#endif + +/** + * @brief Conditional Variables APIs. + * @details If enabled then the conditional variables APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_USE_MUTEXES. + */ +#if !defined(CH_USE_CONDVARS) || defined(__DOXYGEN__) +#define CH_USE_CONDVARS TRUE +#endif + +/** + * @brief Conditional Variables APIs with timeout. + * @details If enabled then the conditional variables APIs with timeout + * specification are included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_USE_CONDVARS. + */ +#if !defined(CH_USE_CONDVARS_TIMEOUT) || defined(__DOXYGEN__) +#define CH_USE_CONDVARS_TIMEOUT TRUE +#endif + +/** + * @brief Events Flags APIs. + * @details If enabled then the event flags APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_USE_EVENTS) || defined(__DOXYGEN__) +#define CH_USE_EVENTS TRUE +#endif + +/** + * @brief Events Flags APIs with timeout. + * @details If enabled then the events APIs with timeout specification + * are included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_USE_EVENTS. + */ +#if !defined(CH_USE_EVENTS_TIMEOUT) || defined(__DOXYGEN__) +#define CH_USE_EVENTS_TIMEOUT TRUE +#endif + +/** + * @brief Synchronous Messages APIs. + * @details If enabled then the synchronous messages APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_USE_MESSAGES) || defined(__DOXYGEN__) +#define CH_USE_MESSAGES TRUE +#endif + +/** + * @brief Synchronous Messages queuing mode. + * @details If enabled then messages are served by priority rather than in + * FIFO order. + * + * @note The default is @p FALSE. Enable this if you have special requirements. + * @note Requires @p CH_USE_MESSAGES. + */ +#if !defined(CH_USE_MESSAGES_PRIORITY) || defined(__DOXYGEN__) +#define CH_USE_MESSAGES_PRIORITY FALSE +#endif + +/** + * @brief Mailboxes APIs. + * @details If enabled then the asynchronous messages (mailboxes) APIs are + * included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_USE_SEMAPHORES. + */ +#if !defined(CH_USE_MAILBOXES) || defined(__DOXYGEN__) +#define CH_USE_MAILBOXES TRUE +#endif + +/** + * @brief I/O Queues APIs. + * @details If enabled then the I/O queues APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__) +#define CH_USE_QUEUES TRUE +#endif + +/** + * @brief Core Memory Manager APIs. + * @details If enabled then the core memory manager APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_USE_MEMCORE) || defined(__DOXYGEN__) +#define CH_USE_MEMCORE TRUE +#endif + +/** + * @brief Heap Allocator APIs. + * @details If enabled then the memory heap allocator APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_USE_MEMCORE and either @p CH_USE_MUTEXES or + * @p CH_USE_SEMAPHORES. + * @note Mutexes are recommended. + */ +#if !defined(CH_USE_HEAP) || defined(__DOXYGEN__) +#define CH_USE_HEAP TRUE +#endif + +/** + * @brief C-runtime allocator. + * @details If enabled the the heap allocator APIs just wrap the C-runtime + * @p malloc() and @p free() functions. + * + * @note The default is @p FALSE. + * @note Requires @p CH_USE_HEAP. + * @note The C-runtime may or may not require @p CH_USE_MEMCORE, see the + * appropriate documentation. + */ +#if !defined(CH_USE_MALLOC_HEAP) || defined(__DOXYGEN__) +#define CH_USE_MALLOC_HEAP FALSE +#endif + +/** + * @brief Memory Pools Allocator APIs. + * @details If enabled then the memory pools allocator APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_USE_MEMPOOLS) || defined(__DOXYGEN__) +#define CH_USE_MEMPOOLS TRUE +#endif + +/** + * @brief Dynamic Threads APIs. + * @details If enabled then the dynamic threads creation APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_USE_WAITEXIT. + * @note Requires @p CH_USE_HEAP and/or @p CH_USE_MEMPOOLS. + */ +#if !defined(CH_USE_DYNAMIC) || defined(__DOXYGEN__) +#define CH_USE_DYNAMIC TRUE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Debug options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Debug option, system state check. + * @details If enabled the correct call protocol for system APIs is checked + * at runtime. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_SYSTEM_STATE_CHECK) || defined(__DOXYGEN__) +#define CH_DBG_SYSTEM_STATE_CHECK FALSE +#endif + +/** + * @brief Debug option, parameters checks. + * @details If enabled then the checks on the API functions input + * parameters are activated. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_ENABLE_CHECKS) || defined(__DOXYGEN__) +#define CH_DBG_ENABLE_CHECKS FALSE +#endif + +/** + * @brief Debug option, consistency checks. + * @details If enabled then all the assertions in the kernel code are + * activated. This includes consistency checks inside the kernel, + * runtime anomalies and port-defined checks. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_ENABLE_ASSERTS) || defined(__DOXYGEN__) +#define CH_DBG_ENABLE_ASSERTS FALSE +#endif + +/** + * @brief Debug option, trace buffer. + * @details If enabled then the context switch circular trace buffer is + * activated. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_ENABLE_TRACE) || defined(__DOXYGEN__) +#define CH_DBG_ENABLE_TRACE FALSE +#endif + +/** + * @brief Debug option, stack checks. + * @details If enabled then a runtime stack check is performed. + * + * @note The default is @p FALSE. + * @note The stack check is performed in a architecture/port dependent way. + * It may not be implemented or some ports. + * @note The default failure mode is to halt the system with the global + * @p panic_msg variable set to @p NULL. + */ +#if !defined(CH_DBG_ENABLE_STACK_CHECK) || defined(__DOXYGEN__) +#define CH_DBG_ENABLE_STACK_CHECK TRUE +#endif + +/** + * @brief Debug option, stacks initialization. + * @details If enabled then the threads working area is filled with a byte + * value when a thread is created. This can be useful for the + * runtime measurement of the used stack. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_FILL_THREADS) || defined(__DOXYGEN__) +#define CH_DBG_FILL_THREADS TRUE +#endif + +/** + * @brief Debug option, threads profiling. + * @details If enabled then a field is added to the @p Thread structure that + * counts the system ticks occurred while executing the thread. + * + * @note The default is @p TRUE. + * @note This debug option is defaulted to TRUE because it is required by + * some test cases into the test suite. + */ +#if !defined(CH_DBG_THREADS_PROFILING) || defined(__DOXYGEN__) +#define CH_DBG_THREADS_PROFILING TRUE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Kernel hooks + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Threads descriptor structure extension. + * @details User fields added to the end of the @p Thread structure. + */ +#if !defined(THREAD_EXT_FIELDS) || defined(__DOXYGEN__) +#define THREAD_EXT_FIELDS \ + /* Add threads custom fields here.*/ +#endif + +/** + * @brief Threads initialization hook. + * @details User initialization code added to the @p chThdInit() API. + * + * @note It is invoked from within @p chThdInit() and implicitly from all + * the threads creation APIs. + */ +#if !defined(THREAD_EXT_INIT_HOOK) || defined(__DOXYGEN__) +#define THREAD_EXT_INIT_HOOK(tp) { \ + /* Add threads initialization code here.*/ \ +} +#endif + +/** + * @brief Threads finalization hook. + * @details User finalization code added to the @p chThdExit() API. + * + * @note It is inserted into lock zone. + * @note It is also invoked when the threads simply return in order to + * terminate. + */ +#if !defined(THREAD_EXT_EXIT_HOOK) || defined(__DOXYGEN__) +#define THREAD_EXT_EXIT_HOOK(tp) { \ + /* Add threads finalization code here.*/ \ +} +#endif + +/** + * @brief Context switch hook. + * @details This hook is invoked just before switching between threads. + */ +#if !defined(THREAD_CONTEXT_SWITCH_HOOK) || defined(__DOXYGEN__) +#define THREAD_CONTEXT_SWITCH_HOOK(ntp, otp) { \ + /* System halt code here.*/ \ +} +#endif + +/** + * @brief Idle Loop hook. + * @details This hook is continuously invoked by the idle thread loop. + */ +#if !defined(IDLE_LOOP_HOOK) || defined(__DOXYGEN__) +#define IDLE_LOOP_HOOK() { \ + /* Idle loop code here.*/ \ +} +#endif + +/** + * @brief System tick event hook. + * @details This hook is invoked in the system tick handler immediately + * after processing the virtual timers queue. + */ +#if !defined(SYSTEM_TICK_EVENT_HOOK) || defined(__DOXYGEN__) +#define SYSTEM_TICK_EVENT_HOOK() { \ + /* System tick event code here.*/ \ +} +#endif + +/** + * @brief System halt hook. + * @details This hook is invoked in case to a system halting error before + * the system is halted. + */ +#if !defined(SYSTEM_HALT_HOOK) || defined(__DOXYGEN__) +#define SYSTEM_HALT_HOOK() { \ + /* System halt code here.*/ \ +} +#endif + +/** @} */ + +/*===========================================================================*/ +/* Port-specific settings (override port settings defaulted in chcore.h). */ +/*===========================================================================*/ + +#endif /* _CHCONF_H_ */ + +/** @} */ diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/halconf.h b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/halconf.h new file mode 100644 index 0000000000..fa7e83bfa3 --- /dev/null +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/halconf.h @@ -0,0 +1,316 @@ +/* + ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, + 2011,2012,2013 Giovanni Di Sirio. + + This file is part of ChibiOS/RT. + + ChibiOS/RT is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + ChibiOS/RT is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +/** + * @file templates/halconf.h + * @brief HAL configuration header. + * @details HAL configuration file, this file allows to enable or disable the + * various device drivers from your application. You may also use + * this file in order to override the device drivers default settings. + * + * @addtogroup HAL_CONF + * @{ + */ + +#ifndef _HALCONF_H_ +#define _HALCONF_H_ + +#include "mcuconf.h" + +/** + * @brief Enables the TM subsystem. + */ +#if !defined(HAL_USE_TM) || defined(__DOXYGEN__) +#define HAL_USE_TM TRUE +#endif + +/** + * @brief Enables the PAL subsystem. + */ +#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) +#define HAL_USE_PAL TRUE +#endif + +/** + * @brief Enables the ADC subsystem. + */ +#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) +#define HAL_USE_ADC FALSE +#endif + +/** + * @brief Enables the CAN subsystem. + */ +#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) +#define HAL_USE_CAN FALSE +#endif + +/** + * @brief Enables the EXT subsystem. + */ +#if !defined(HAL_USE_EXT) || defined(__DOXYGEN__) +#define HAL_USE_EXT FALSE +#endif + +/** + * @brief Enables the GPT subsystem. + */ +#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) +#define HAL_USE_GPT FALSE +#endif + +/** + * @brief Enables the I2C subsystem. + */ +#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) +#define HAL_USE_I2C FALSE +#endif + +/** + * @brief Enables the ICU subsystem. + */ +#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) +#define HAL_USE_ICU FALSE +#endif + +/** + * @brief Enables the MAC subsystem. + */ +#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) +#define HAL_USE_MAC FALSE +#endif + +/** + * @brief Enables the MMC_SPI subsystem. + */ +#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) +#define HAL_USE_MMC_SPI FALSE +#endif + +/** + * @brief Enables the PWM subsystem. + */ +#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) +#define HAL_USE_PWM TRUE +#endif + +/** + * @brief Enables the RTC subsystem. + */ +#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) +#define HAL_USE_RTC FALSE +#endif + +/** + * @brief Enables the SDC subsystem. + */ +#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) +#define HAL_USE_SDC FALSE +#endif + +/** + * @brief Enables the SERIAL subsystem. + */ +#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) +#define HAL_USE_SERIAL TRUE +#endif + +/** + * @brief Enables the SERIAL over USB subsystem. + */ +#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) +#define HAL_USE_SERIAL_USB TRUE +#endif + +/** + * @brief Enables the SPI subsystem. + */ +#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) +#define HAL_USE_SPI FALSE +#endif + +/** + * @brief Enables the UART subsystem. + */ +#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) +#define HAL_USE_UART FALSE +#endif + +/** + * @brief Enables the USB subsystem. + */ +#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) +#define HAL_USE_USB TRUE +#endif + +/*===========================================================================*/ +/* ADC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) +#define ADC_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define ADC_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* CAN driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Sleep mode related APIs inclusion switch. + */ +#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) +#define CAN_USE_SLEEP_MODE TRUE +#endif + +/*===========================================================================*/ +/* I2C driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the mutual exclusion APIs on the I2C bus. + */ +#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define I2C_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* MAC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables an event sources for incoming packets. + */ +#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) +#define MAC_USE_ZERO_COPY FALSE +#endif + +/** + * @brief Enables an event sources for incoming packets. + */ +#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) +#define MAC_USE_EVENTS TRUE +#endif + +/*===========================================================================*/ +/* MMC_SPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Delays insertions. + * @details If enabled this options inserts delays into the MMC waiting + * routines releasing some extra CPU time for the threads with + * lower priority, this may slow down the driver a bit however. + * This option is recommended also if the SPI driver does not + * use a DMA channel and heavily loads the CPU. + */ +#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) +#define MMC_NICE_WAITING TRUE +#endif + +/*===========================================================================*/ +/* SDC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Number of initialization attempts before rejecting the card. + * @note Attempts are performed at 10mS intervals. + */ +#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) +#define SDC_INIT_RETRY 100 +#endif + +/** + * @brief Include support for MMC cards. + * @note MMC support is not yet implemented so this option must be kept + * at @p FALSE. + */ +#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) +#define SDC_MMC_SUPPORT FALSE +#endif + +/** + * @brief Delays insertions. + * @details If enabled this options inserts delays into the MMC waiting + * routines releasing some extra CPU time for the threads with + * lower priority, this may slow down the driver a bit however. + */ +#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) +#define SDC_NICE_WAITING TRUE +#endif + +/*===========================================================================*/ +/* SERIAL driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Default bit rate. + * @details Configuration parameter, this is the baud rate selected for the + * default configuration. + */ +#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) +#define SERIAL_DEFAULT_BITRATE 115200 +#endif + +/** + * @brief Serial buffers size. + * @details Configuration parameter, you can change the depth of the queue + * buffers depending on the requirements of your application. + * @note The default is 64 bytes for both the transmission and receive + * buffers. + */ +#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) +#define SERIAL_BUFFERS_SIZE 16 +#endif + +/*===========================================================================*/ +/* SPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) +#define SPI_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define SPI_USE_MUTUAL_EXCLUSION TRUE +#endif + +#endif /* _HALCONF_H_ */ + +/** @} */ diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/main.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/main.c new file mode 100644 index 0000000000..f8864e19f0 --- /dev/null +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/main.c @@ -0,0 +1,220 @@ +/* + ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, + 2011,2012,2013 Giovanni Di Sirio. + + This file is part of ChibiOS/RT. + + ChibiOS/RT is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + ChibiOS/RT is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#include "ch.h" +#include "hal.h" +#include "test.h" + +#include "chprintf.h" +#include "shell.h" + +#include "usbcfg.h" + +/* Virtual serial port over USB.*/ +static SerialUSBDriver SDU2; + +/*===========================================================================*/ +/* Command line related. */ +/*===========================================================================*/ + +#define SHELL_WA_SIZE THD_WA_SIZE(2048) +#define TEST_WA_SIZE THD_WA_SIZE(256) + +static void cmd_mem(BaseSequentialStream *chp, int argc, char *argv[]) { + size_t n, size; + + (void)argv; + if (argc > 0) { + chprintf(chp, "Usage: mem\r\n"); + return; + } + n = chHeapStatus(NULL, &size); + chprintf(chp, "core free memory : %u bytes\r\n", chCoreStatus()); + chprintf(chp, "heap fragments : %u\r\n", n); + chprintf(chp, "heap free total : %u bytes\r\n", size); +} + +static void cmd_threads(BaseSequentialStream *chp, int argc, char *argv[]) { + static const char *states[] = {THD_STATE_NAMES}; + Thread *tp; + + (void)argv; + if (argc > 0) { + chprintf(chp, "Usage: threads\r\n"); + return; + } + chprintf(chp, " addr stack prio refs state time\r\n"); + tp = chRegFirstThread(); + do { + chprintf(chp, "%.8lx %.8lx %4lu %4lu %9s %lu\r\n", + (uint32_t)tp, (uint32_t)tp->p_ctx.r13, + (uint32_t)tp->p_prio, (uint32_t)(tp->p_refs - 1), + states[tp->p_state], (uint32_t)tp->p_time); + tp = chRegNextThread(tp); + } while (tp != NULL); +} + +static void cmd_test(BaseSequentialStream *chp, int argc, char *argv[]) { + Thread *tp; + + (void)argv; + if (argc > 0) { + chprintf(chp, "Usage: test\r\n"); + return; + } + tp = chThdCreateFromHeap(NULL, TEST_WA_SIZE, chThdGetPriority(), + TestThread, chp); + if (tp == NULL) { + chprintf(chp, "out of memory\r\n"); + return; + } + chThdWait(tp); +} + +static const ShellCommand commands[] = { + {"mem", cmd_mem}, + {"threads", cmd_threads}, + {"test", cmd_test}, + {NULL, NULL} +}; + +static const ShellConfig shell_cfg1 = { + (BaseSequentialStream *)&SDU2, + commands +}; + + +/* + * Debug output and heartbeat thread. + */ +static WORKING_AREA(waThread1, 128); +static msg_t Thread1(void *arg) { + (void)arg; + systime_t time; + + chRegSetThreadName("reader"); + +#if STM32_SERIAL_USE_USART2 + BaseSequentialStream *chp = (BaseSequentialStream *)&SD2; +#endif +#if STM32_SERIAL_USE_USART3 + BaseSequentialStream *chp = (BaseSequentialStream *)&SD3; +#endif + + /* Blinky Light Loop */ + palTogglePad(GPIOH, GPIOH_LED1); + palTogglePad(GPIOH, GPIOH_LED2); + + while (TRUE) { + time = chTimeNow(); + chprintf(chp, "Toggling LEDs: %u\r\n", time); + palTogglePad(GPIOH, GPIOH_LED1); + palTogglePad(GPIOH, GPIOH_LED2); + palTogglePad(GPIOI, GPIOI_LED3); + palTogglePad(GPIOI, GPIOI_LED4); + + chThdSleep(MS2ST(500)); + } +} + +/*===========================================================================*/ +/* Initialization and main thread. */ +/*===========================================================================*/ + +/* + * Application entry point. + */ +int main(void) { + Thread *shelltp = NULL; + + /* + * System initializations. + * - HAL initialization, this also initializes the configured device drivers + * and performs the board-specific initializations. + * - Kernel initialization, the main() function becomes a thread and the + * RTOS is active. + */ + halInit(); + chSysInit(); + + /* + * Shell manager initialization. + */ + shellInit(); + + /* + * Initializes a serial-over-USB CDC driver. + */ + sduObjectInit(&SDU2); + sduStart(&SDU2, &serusbcfg); + + /* + * Activates the USB driver and then the USB bus pull-up on D+. + * Note, a delay is inserted in order to not have to disconnect the cable + * after a reset. + */ + usbDisconnectBus(serusbcfg.usbp); + chThdSleepMilliseconds(1000); + usbStart(serusbcfg.usbp, &usbcfg); + usbConnectBus(serusbcfg.usbp); + + /* + * Activates the serial driver 2 using the driver default configuration. + * PA2(TX) and PA3(RX) are routed to USART2. + */ +#if STM32_SERIAL_USE_USART2 + sdStart(&SD2, NULL); + //Note: do not use GPIOA_PIN2 and GPIOA_PIN3 as they conflict with ULPI pins. +#endif + +#if STM32_SERIAL_USE_USART3 + sdStart(&SD3, NULL); + palSetPadMode(GPIOC, 10, PAL_MODE_ALTERNATE(7)); + palSetPadMode(GPIOC, 11, PAL_MODE_ALTERNATE(7)); +#endif + + + /* + * Creates the example thread. + */ + chThdCreateStatic(waThread1, sizeof(waThread1), NORMALPRIO + 10, Thread1, NULL); + + /* + * Normal main() thread activity, in this demo it just performs + * a shell respawn upon its termination. + */ + while (TRUE) { + if (!shelltp) { + if (SDU2.config->usbp->state == USB_ACTIVE) { + /* Spawns a new shell.*/ + shelltp = shellCreate(&shell_cfg1, SHELL_WA_SIZE, NORMALPRIO); + } + } + else { + /* If the previous shell exited.*/ + if (chThdTerminated(shelltp)) { + /* Recovers memory of the previous shell.*/ + chThdRelease(shelltp); + shelltp = NULL; + } + } + chThdSleepMilliseconds(500); + } +} diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/mcuconf.h b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/mcuconf.h new file mode 100644 index 0000000000..4b7e6469e5 --- /dev/null +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/mcuconf.h @@ -0,0 +1,270 @@ +/* + ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, + 2011,2012,2013 Giovanni Di Sirio. + + This file is part of ChibiOS/RT. + + ChibiOS/RT is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + ChibiOS/RT is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +/* + * STM32F4xx drivers configuration. + * The following settings override the default settings present in + * the various device driver implementation headers. + * Note that the settings for each driver only have effect if the whole + * driver is enabled in halconf.h. + * + * IRQ priorities: + * 15...0 Lowest...Highest. + * + * DMA priorities: + * 0...3 Lowest...Highest. + */ + +#define STM32F4xx_MCUCONF + +/* + * HAL driver system settings. + */ +#define STM32_NO_INIT FALSE +#define STM32_HSI_ENABLED TRUE +#define STM32_LSI_ENABLED TRUE +#define STM32_HSE_ENABLED TRUE +#define STM32_LSE_ENABLED FALSE +#define STM32_CLOCK48_REQUIRED TRUE +#define STM32_SW STM32_SW_PLL +#define STM32_PLLSRC STM32_PLLSRC_HSE +#define STM32_PLLM_VALUE 8 +#define STM32_PLLN_VALUE 336 +#define STM32_PLLP_VALUE 2 +#define STM32_PLLQ_VALUE 7 +#define STM32_HPRE STM32_HPRE_DIV1 +#define STM32_PPRE1 STM32_PPRE1_DIV4 +#define STM32_PPRE2 STM32_PPRE2_DIV2 +#define STM32_RTCSEL STM32_RTCSEL_LSI +#define STM32_RTCPRE_VALUE 8 +#define STM32_MCO1SEL STM32_MCO1SEL_HSI +#define STM32_MCO1PRE STM32_MCO1PRE_DIV1 +#define STM32_MCO2SEL STM32_MCO2SEL_SYSCLK +#define STM32_MCO2PRE STM32_MCO2PRE_DIV5 +#define STM32_I2SSRC STM32_I2SSRC_CKIN +#define STM32_PLLI2SN_VALUE 192 +#define STM32_PLLI2SR_VALUE 5 +#define STM32_VOS STM32_VOS_HIGH +#define STM32_PVD_ENABLE FALSE +#define STM32_PLS STM32_PLS_LEV0 + +/* + * ADC driver system settings. + */ +#define STM32_ADC_ADCPRE ADC_CCR_ADCPRE_DIV4 +#define STM32_ADC_USE_ADC1 FALSE +#define STM32_ADC_USE_ADC2 FALSE +#define STM32_ADC_USE_ADC3 FALSE +#define STM32_ADC_ADC1_DMA_STREAM STM32_DMA_STREAM_ID(2, 4) +#define STM32_ADC_ADC2_DMA_STREAM STM32_DMA_STREAM_ID(2, 2) +#define STM32_ADC_ADC3_DMA_STREAM STM32_DMA_STREAM_ID(2, 1) +#define STM32_ADC_ADC1_DMA_PRIORITY 2 +#define STM32_ADC_ADC2_DMA_PRIORITY 2 +#define STM32_ADC_ADC3_DMA_PRIORITY 2 +#define STM32_ADC_IRQ_PRIORITY 6 +#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 6 +#define STM32_ADC_ADC2_DMA_IRQ_PRIORITY 6 +#define STM32_ADC_ADC3_DMA_IRQ_PRIORITY 6 + +/* + * CAN driver system settings. + */ +#define STM32_CAN_USE_CAN1 FALSE +#define STM32_CAN_USE_CAN2 FALSE +#define STM32_CAN_CAN1_IRQ_PRIORITY 11 +#define STM32_CAN_CAN2_IRQ_PRIORITY 11 + +/* + * EXT driver system settings. + */ +#define STM32_EXT_EXTI0_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI1_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI2_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI3_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI4_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI5_9_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI10_15_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI16_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI17_IRQ_PRIORITY 15 +#define STM32_EXT_EXTI18_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI19_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI20_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI21_IRQ_PRIORITY 15 +#define STM32_EXT_EXTI22_IRQ_PRIORITY 15 + +/* + * GPT driver system settings. + */ +#define STM32_GPT_USE_TIM1 FALSE +#define STM32_GPT_USE_TIM2 FALSE +#define STM32_GPT_USE_TIM3 FALSE +#define STM32_GPT_USE_TIM4 FALSE +#define STM32_GPT_USE_TIM5 FALSE +#define STM32_GPT_USE_TIM8 FALSE +#define STM32_GPT_TIM1_IRQ_PRIORITY 7 +#define STM32_GPT_TIM2_IRQ_PRIORITY 7 +#define STM32_GPT_TIM3_IRQ_PRIORITY 7 +#define STM32_GPT_TIM4_IRQ_PRIORITY 7 +#define STM32_GPT_TIM5_IRQ_PRIORITY 7 +#define STM32_GPT_TIM8_IRQ_PRIORITY 7 + +/* + * I2C driver system settings. + */ +#define STM32_I2C_USE_I2C1 FALSE +#define STM32_I2C_USE_I2C2 FALSE +#define STM32_I2C_USE_I2C3 FALSE +#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0) +#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6) +#define STM32_I2C_I2C2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 2) +#define STM32_I2C_I2C2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7) +#define STM32_I2C_I2C3_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 2) +#define STM32_I2C_I2C3_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4) +#define STM32_I2C_I2C1_IRQ_PRIORITY 5 +#define STM32_I2C_I2C2_IRQ_PRIORITY 5 +#define STM32_I2C_I2C3_IRQ_PRIORITY 5 +#define STM32_I2C_I2C1_DMA_PRIORITY 3 +#define STM32_I2C_I2C2_DMA_PRIORITY 3 +#define STM32_I2C_I2C3_DMA_PRIORITY 3 +#define STM32_I2C_I2C1_DMA_ERROR_HOOK() chSysHalt() +#define STM32_I2C_I2C2_DMA_ERROR_HOOK() chSysHalt() +#define STM32_I2C_I2C3_DMA_ERROR_HOOK() chSysHalt() + +/* + * ICU driver system settings. + */ +#define STM32_ICU_USE_TIM1 FALSE +#define STM32_ICU_USE_TIM2 FALSE +#define STM32_ICU_USE_TIM3 FALSE +#define STM32_ICU_USE_TIM4 FALSE +#define STM32_ICU_USE_TIM5 FALSE +#define STM32_ICU_USE_TIM8 FALSE +#define STM32_ICU_TIM1_IRQ_PRIORITY 7 +#define STM32_ICU_TIM2_IRQ_PRIORITY 7 +#define STM32_ICU_TIM3_IRQ_PRIORITY 7 +#define STM32_ICU_TIM4_IRQ_PRIORITY 7 +#define STM32_ICU_TIM5_IRQ_PRIORITY 7 +#define STM32_ICU_TIM8_IRQ_PRIORITY 7 + +/* + * MAC driver system settings. + */ +#define STM32_MAC_TRANSMIT_BUFFERS 2 +#define STM32_MAC_RECEIVE_BUFFERS 4 +#define STM32_MAC_BUFFERS_SIZE 1522 +#define STM32_MAC_PHY_TIMEOUT 100 +#define STM32_MAC_ETH1_CHANGE_PHY_STATE TRUE +#define STM32_MAC_ETH1_IRQ_PRIORITY 13 +#define STM32_MAC_IP_CHECKSUM_OFFLOAD 0 + +/* + * PWM driver system settings. + */ +#define STM32_PWM_USE_ADVANCED FALSE +#define STM32_PWM_USE_TIM1 FALSE +#define STM32_PWM_USE_TIM2 FALSE +#define STM32_PWM_USE_TIM3 FALSE +#define STM32_PWM_USE_TIM4 TRUE +#define STM32_PWM_USE_TIM5 FALSE +#define STM32_PWM_USE_TIM8 FALSE +#define STM32_PWM_TIM1_IRQ_PRIORITY 7 +#define STM32_PWM_TIM2_IRQ_PRIORITY 7 +#define STM32_PWM_TIM3_IRQ_PRIORITY 7 +#define STM32_PWM_TIM4_IRQ_PRIORITY 7 +#define STM32_PWM_TIM5_IRQ_PRIORITY 7 +#define STM32_PWM_TIM8_IRQ_PRIORITY 7 + +/* + * SERIAL driver system settings. + */ +#define STM32_SERIAL_USE_USART1 FALSE +#define STM32_SERIAL_USE_USART2 FALSE +#define STM32_SERIAL_USE_USART3 TRUE +#define STM32_SERIAL_USE_UART4 FALSE +#define STM32_SERIAL_USE_UART5 FALSE +#define STM32_SERIAL_USE_USART6 FALSE +#define STM32_SERIAL_USART1_PRIORITY 12 +#define STM32_SERIAL_USART2_PRIORITY 12 +#define STM32_SERIAL_USART3_PRIORITY 12 +#define STM32_SERIAL_UART4_PRIORITY 12 +#define STM32_SERIAL_UART5_PRIORITY 12 +#define STM32_SERIAL_USART6_PRIORITY 12 + +/* + * SPI driver system settings. + */ +#define STM32_SPI_USE_SPI1 FALSE +#define STM32_SPI_USE_SPI2 FALSE +#define STM32_SPI_USE_SPI3 FALSE +#define STM32_SPI_SPI1_RX_DMA_STREAM STM32_DMA_STREAM_ID(2, 0) +#define STM32_SPI_SPI1_TX_DMA_STREAM STM32_DMA_STREAM_ID(2, 3) +#define STM32_SPI_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 3) +#define STM32_SPI_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4) +#define STM32_SPI_SPI3_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0) +#define STM32_SPI_SPI3_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7) +#define STM32_SPI_SPI1_DMA_PRIORITY 1 +#define STM32_SPI_SPI2_DMA_PRIORITY 1 +#define STM32_SPI_SPI3_DMA_PRIORITY 1 +#define STM32_SPI_SPI1_IRQ_PRIORITY 10 +#define STM32_SPI_SPI2_IRQ_PRIORITY 10 +#define STM32_SPI_SPI3_IRQ_PRIORITY 10 +#define STM32_SPI_DMA_ERROR_HOOK(spip) chSysHalt() + +/* + * UART driver system settings. + */ +#define STM32_UART_USE_USART1 FALSE +#define STM32_UART_USE_USART2 FALSE +#define STM32_UART_USE_USART3 FALSE +#define STM32_UART_USE_USART6 FALSE +#define STM32_UART_USART1_RX_DMA_STREAM STM32_DMA_STREAM_ID(2, 5) +#define STM32_UART_USART1_TX_DMA_STREAM STM32_DMA_STREAM_ID(2, 7) +#define STM32_UART_USART2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5) +#define STM32_UART_USART2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6) +#define STM32_UART_USART3_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 1) +#define STM32_UART_USART3_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 3) +#define STM32_UART_USART6_RX_DMA_STREAM STM32_DMA_STREAM_ID(2, 2) +#define STM32_UART_USART6_TX_DMA_STREAM STM32_DMA_STREAM_ID(2, 7) +#define STM32_UART_USART1_IRQ_PRIORITY 12 +#define STM32_UART_USART2_IRQ_PRIORITY 12 +#define STM32_UART_USART3_IRQ_PRIORITY 12 +#define STM32_UART_USART6_IRQ_PRIORITY 12 +#define STM32_UART_USART1_DMA_PRIORITY 0 +#define STM32_UART_USART2_DMA_PRIORITY 0 +#define STM32_UART_USART3_DMA_PRIORITY 0 +#define STM32_UART_USART6_DMA_PRIORITY 0 +#define STM32_UART_DMA_ERROR_HOOK(uartp) chSysHalt() + +/* + * USB driver system settings. + */ +#define STM32_USB_USE_OTG1 FALSE +#define STM32_USB_USE_OTG2 TRUE +#define STM32_USE_USB_OTG2_HS TRUE +#define STM32_USE_USB_OTG2_ULPI TRUE +#define STM32_USB_OTG1_IRQ_PRIORITY 14 +#define STM32_USB_OTG2_IRQ_PRIORITY 14 +#define STM32_USB_OTG1_RX_FIFO_SIZE 512 +#define STM32_USB_OTG2_RX_FIFO_SIZE 1024 +#define STM32_USB_OTG_THREAD_PRIO LOWPRIO +#define STM32_USB_OTG_THREAD_STACK_SIZE 128 +#define STM32_USB_OTGFIFO_FILL_BASEPRI 0 + + diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/readme.txt b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/readme.txt new file mode 100644 index 0000000000..aafb3da511 --- /dev/null +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/readme.txt @@ -0,0 +1,27 @@ +***************************************************************************** +** ChibiOS/RT port for ARM-Cortex-M4 STM32F407. ** +***************************************************************************** + +** TARGET ** + +The demo runs on an WaveShare STM32F4 Open 407I-C board. + +** The Demo ** + +A simple command shell is activated on virtual serial port SD2 via USB-CDC +driver (use USB3300 ULPI mini-USB plug on 407I-C dev board). + +** Build Procedure ** + +The demo has been tested by using the free Codesourcery GCC-based toolchain. +Just modify the TRGT line in the makefile in order to use different GCC +toolchains. + +** Notes ** + +Some files used by the demo are not part of ChibiOS/RT but are copyright of +ST Microelectronics and are licensed under a different license. +Also note that not all the files present in the ST library are distributed +with ChibiOS/RT, you can find the whole library on the ST web site: + + http://www.st.com diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/usbcfg.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/usbcfg.c new file mode 100644 index 0000000000..58b603bea0 --- /dev/null +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/usbcfg.c @@ -0,0 +1,308 @@ +/* + ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, + 2011,2012,2013 Giovanni Di Sirio. + + This file is part of ChibiOS/RT. + + ChibiOS/RT is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + ChibiOS/RT is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#include "ch.h" +#include "hal.h" +#include "usb_cdc.h" + +/* + * USB Device Descriptor. + */ +static const uint8_t vcom_device_descriptor_data[18] = { + USB_DESC_DEVICE (0x0110, /* bcdUSB (1.1). */ + 0x02, /* bDeviceClass (CDC). */ + 0x00, /* bDeviceSubClass. */ + 0x00, /* bDeviceProtocol. */ + 0x40, /* bMaxPacketSize. */ + 0x0483, /* idVendor (ST). */ + 0x5740, /* idProduct. */ + 0x0200, /* bcdDevice. */ + 1, /* iManufacturer. */ + 2, /* iProduct. */ + 3, /* iSerialNumber. */ + 1) /* bNumConfigurations. */ +}; + +/* + * Device Descriptor wrapper. + */ +static const USBDescriptor vcom_device_descriptor = { + sizeof vcom_device_descriptor_data, + vcom_device_descriptor_data +}; + +/* Configuration Descriptor tree for a CDC.*/ +static const uint8_t vcom_configuration_descriptor_data[67] = { + /* Configuration Descriptor.*/ + USB_DESC_CONFIGURATION(67, /* wTotalLength. */ + 0x02, /* bNumInterfaces. */ + 0x01, /* bConfigurationValue. */ + 0, /* iConfiguration. */ + 0xC0, /* bmAttributes (self powered). */ + 50), /* bMaxPower (100mA). */ + /* Interface Descriptor.*/ + USB_DESC_INTERFACE (0x00, /* bInterfaceNumber. */ + 0x00, /* bAlternateSetting. */ + 0x01, /* bNumEndpoints. */ + 0x02, /* bInterfaceClass (Communications + Interface Class, CDC section + 4.2). */ + 0x02, /* bInterfaceSubClass (Abstract + Control Model, CDC section 4.3). */ + 0x01, /* bInterfaceProtocol (AT commands, + CDC section 4.4). */ + 0), /* iInterface. */ + /* Header Functional Descriptor (CDC section 5.2.3).*/ + USB_DESC_BYTE (5), /* bLength. */ + USB_DESC_BYTE (0x24), /* bDescriptorType (CS_INTERFACE). */ + USB_DESC_BYTE (0x00), /* bDescriptorSubtype (Header + Functional Descriptor. */ + USB_DESC_BCD (0x0110), /* bcdCDC. */ + /* Call Management Functional Descriptor. */ + USB_DESC_BYTE (5), /* bFunctionLength. */ + USB_DESC_BYTE (0x24), /* bDescriptorType (CS_INTERFACE). */ + USB_DESC_BYTE (0x01), /* bDescriptorSubtype (Call Management + Functional Descriptor). */ + USB_DESC_BYTE (0x00), /* bmCapabilities (D0+D1). */ + USB_DESC_BYTE (0x01), /* bDataInterface. */ + /* ACM Functional Descriptor.*/ + USB_DESC_BYTE (4), /* bFunctionLength. */ + USB_DESC_BYTE (0x24), /* bDescriptorType (CS_INTERFACE). */ + USB_DESC_BYTE (0x02), /* bDescriptorSubtype (Abstract + Control Management Descriptor). */ + USB_DESC_BYTE (0x02), /* bmCapabilities. */ + /* Union Functional Descriptor.*/ + USB_DESC_BYTE (5), /* bFunctionLength. */ + USB_DESC_BYTE (0x24), /* bDescriptorType (CS_INTERFACE). */ + USB_DESC_BYTE (0x06), /* bDescriptorSubtype (Union + Functional Descriptor). */ + USB_DESC_BYTE (0x00), /* bMasterInterface (Communication + Class Interface). */ + USB_DESC_BYTE (0x01), /* bSlaveInterface0 (Data Class + Interface). */ + /* Endpoint 2 Descriptor.*/ + USB_DESC_ENDPOINT (USB_CDC_INTERRUPT_REQUEST_EP|0x80, + 0x03, /* bmAttributes (Interrupt). */ + 0x0008, /* wMaxPacketSize. */ + 0xFF), /* bInterval. */ + /* Interface Descriptor.*/ + USB_DESC_INTERFACE (0x01, /* bInterfaceNumber. */ + 0x00, /* bAlternateSetting. */ + 0x02, /* bNumEndpoints. */ + 0x0A, /* bInterfaceClass (Data Class + Interface, CDC section 4.5). */ + 0x00, /* bInterfaceSubClass (CDC section + 4.6). */ + 0x00, /* bInterfaceProtocol (CDC section + 4.7). */ + 0x00), /* iInterface. */ + /* Endpoint 3 Descriptor.*/ + USB_DESC_ENDPOINT (USB_CDC_DATA_AVAILABLE_EP, /* bEndpointAddress.*/ + 0x02, /* bmAttributes (Bulk). */ + 0x0040, /* wMaxPacketSize. */ + 0x00), /* bInterval. */ + /* Endpoint 1 Descriptor.*/ + USB_DESC_ENDPOINT (USB_CDC_DATA_REQUEST_EP|0x80, /* bEndpointAddress.*/ + 0x02, /* bmAttributes (Bulk). */ + 0x0040, /* wMaxPacketSize. */ + 0x00) /* bInterval. */ +}; + +/* + * Configuration Descriptor wrapper. + */ +static const USBDescriptor vcom_configuration_descriptor = { + sizeof vcom_configuration_descriptor_data, + vcom_configuration_descriptor_data +}; + +/* + * U.S. English language identifier. + */ +static const uint8_t vcom_string0[] = { + USB_DESC_BYTE(4), /* bLength. */ + USB_DESC_BYTE(USB_DESCRIPTOR_STRING), /* bDescriptorType. */ + USB_DESC_WORD(0x0409) /* wLANGID (U.S. English). */ +}; + +/* + * Vendor string. + */ +static const uint8_t vcom_string1[] = { + USB_DESC_BYTE(38), /* bLength. */ + USB_DESC_BYTE(USB_DESCRIPTOR_STRING), /* bDescriptorType. */ + 'S', 0, 'T', 0, 'M', 0, 'i', 0, 'c', 0, 'r', 0, 'o', 0, 'e', 0, + 'l', 0, 'e', 0, 'c', 0, 't', 0, 'r', 0, 'o', 0, 'n', 0, 'i', 0, + 'c', 0, 's', 0 +}; + +/* + * Device Description string. + */ +static const uint8_t vcom_string2[] = { + USB_DESC_BYTE(56), /* bLength. */ + USB_DESC_BYTE(USB_DESCRIPTOR_STRING), /* bDescriptorType. */ + 'C', 0, 'h', 0, 'i', 0, 'b', 0, 'i', 0, 'O', 0, 'S', 0, '/', 0, + 'R', 0, 'T', 0, ' ', 0, 'V', 0, 'i', 0, 'r', 0, 't', 0, 'u', 0, + 'a', 0, 'l', 0, ' ', 0, 'C', 0, 'O', 0, 'M', 0, ' ', 0, 'P', 0, + 'o', 0, 'r', 0, 't', 0 +}; + +/* + * Serial Number string. + */ +static const uint8_t vcom_string3[] = { + USB_DESC_BYTE(8), /* bLength. */ + USB_DESC_BYTE(USB_DESCRIPTOR_STRING), /* bDescriptorType. */ + '0' + CH_KERNEL_MAJOR, 0, + '0' + CH_KERNEL_MINOR, 0, + '0' + CH_KERNEL_PATCH, 0 +}; + +/* + * Strings wrappers array. + */ +static const USBDescriptor vcom_strings[] = { + {sizeof vcom_string0, vcom_string0}, + {sizeof vcom_string1, vcom_string1}, + {sizeof vcom_string2, vcom_string2}, + {sizeof vcom_string3, vcom_string3} +}; + +/* + * Handles the GET_DESCRIPTOR callback. All required descriptors must be + * handled here. + */ +static const USBDescriptor *get_descriptor(USBDriver *usbp, + uint8_t dtype, + uint8_t dindex, + uint16_t lang) { + + (void)usbp; + (void)lang; + switch (dtype) { + case USB_DESCRIPTOR_DEVICE: + return &vcom_device_descriptor; + case USB_DESCRIPTOR_CONFIGURATION: + return &vcom_configuration_descriptor; + case USB_DESCRIPTOR_STRING: + if (dindex < 4) + return &vcom_strings[dindex]; + } + return NULL; +} + +/** + * @brief IN EP1 state. + */ +static USBInEndpointState ep1instate; + +/** + * @brief OUT EP1 state. + */ +static USBOutEndpointState ep1outstate; + +/** + * @brief EP1 initialization structure (both IN and OUT). + */ +static const USBEndpointConfig ep1config = { + USB_EP_MODE_TYPE_BULK, + NULL, + sduDataTransmitted, + sduDataReceived, + 0x0040, + 0x0040, + &ep1instate, + &ep1outstate, + 2, + NULL +}; + +/** + * @brief IN EP2 state. + */ +static USBInEndpointState ep2instate; + +/** + * @brief EP2 initialization structure (IN only). + */ +static const USBEndpointConfig ep2config = { + USB_EP_MODE_TYPE_INTR, + NULL, + sduInterruptTransmitted, + NULL, + 0x0010, + 0x0000, + &ep2instate, + NULL, + 1, + NULL +}; + +/* + * Handles the USB driver global events. + */ +static void usb_event(USBDriver *usbp, usbevent_t event) { + + switch (event) { + case USB_EVENT_RESET: + return; + case USB_EVENT_ADDRESS: + return; + case USB_EVENT_CONFIGURED: + chSysLockFromIsr(); + + /* Enables the endpoints specified into the configuration. + Note, this callback is invoked from an ISR so I-Class functions + must be used.*/ + usbInitEndpointI(usbp, USB_CDC_DATA_REQUEST_EP, &ep1config); + usbInitEndpointI(usbp, USB_CDC_INTERRUPT_REQUEST_EP, &ep2config); + + /* Resetting the state of the CDC subsystem.*/ + sduConfigureHookI(usbp); + + chSysUnlockFromIsr(); + return; + case USB_EVENT_SUSPEND: + return; + case USB_EVENT_WAKEUP: + return; + case USB_EVENT_STALLED: + return; + } + return; +} + +/* + * USB driver configuration. + */ +const USBConfig usbcfg = { + usb_event, + get_descriptor, + sduRequestsHook, + NULL +}; + +/* + * Serial over USB driver configuration. + */ +const SerialUSBConfig serusbcfg = { + &USBD2 +}; diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/usbcfg.h b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/usbcfg.h new file mode 100644 index 0000000000..aa6353cf92 --- /dev/null +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/usbcfg.h @@ -0,0 +1,29 @@ +/* + ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, + 2011,2012,2013 Giovanni Di Sirio. + + This file is part of ChibiOS/RT. + + ChibiOS/RT is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + ChibiOS/RT is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#ifndef _USBCFG_H_ +#define _USBCFG_H_ + +extern const USBConfig usbcfg; +extern SerialUSBConfig serusbcfg; + +#endif /* _USBCFG_H_ */ + +/** @} */ From 43475cc1b046f68f5c793c8fc308991d0027f222 Mon Sep 17 00:00:00 2001 From: Dave Camarillo Date: Tue, 19 Feb 2013 16:29:51 -0800 Subject: [PATCH 04/52] fix to max packet size for high speed to be correct value of 512 --- .../main.c | 4 +--- .../usbcfg.c | 11 +++++++++-- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/main.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/main.c index f8864e19f0..bd2373fa2a 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/main.c +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/main.c @@ -181,13 +181,11 @@ int main(void) { */ #if STM32_SERIAL_USE_USART2 sdStart(&SD2, NULL); - //Note: do not use GPIOA_PIN2 and GPIOA_PIN3 as they conflict with ULPI pins. + /*Note: do not use GPIOA_PIN3 as it conflicts with ULPI pins.*/ #endif #if STM32_SERIAL_USE_USART3 sdStart(&SD3, NULL); - palSetPadMode(GPIOC, 10, PAL_MODE_ALTERNATE(7)); - palSetPadMode(GPIOC, 11, PAL_MODE_ALTERNATE(7)); #endif diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/usbcfg.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/usbcfg.c index 58b603bea0..9b17419453 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/usbcfg.c +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/usbcfg.c @@ -22,6 +22,13 @@ #include "hal.h" #include "usb_cdc.h" + +#if STM32_USB_USE_OTG2 && STM32_USE_USB_OTG2_HS +#define MAX_USB_PACKET_SIZE 512 +#else +#define MAX_USB_PACKET_SIZE 64 +#endif + /* * USB Device Descriptor. */ @@ -116,12 +123,12 @@ static const uint8_t vcom_configuration_descriptor_data[67] = { /* Endpoint 3 Descriptor.*/ USB_DESC_ENDPOINT (USB_CDC_DATA_AVAILABLE_EP, /* bEndpointAddress.*/ 0x02, /* bmAttributes (Bulk). */ - 0x0040, /* wMaxPacketSize. */ + MAX_USB_PACKET_SIZE,/* wMaxPacketSize. */ 0x00), /* bInterval. */ /* Endpoint 1 Descriptor.*/ USB_DESC_ENDPOINT (USB_CDC_DATA_REQUEST_EP|0x80, /* bEndpointAddress.*/ 0x02, /* bmAttributes (Bulk). */ - 0x0040, /* wMaxPacketSize. */ + MAX_USB_PACKET_SIZE,/* wMaxPacketSize. */ 0x00) /* bInterval. */ }; From d1fab0b29dfc43ebc2644f346c019a1a41a03633 Mon Sep 17 00:00:00 2001 From: Dave Camarillo Date: Tue, 19 Feb 2013 16:30:16 -0800 Subject: [PATCH 05/52] added in code for ULPI support --- os/hal/platforms/STM32/OTGv1/stm32_otg.h | 2 + os/hal/platforms/STM32/OTGv1/usb_lld.c | 94 ++++++++++++++++++++---- 2 files changed, 80 insertions(+), 16 deletions(-) diff --git a/os/hal/platforms/STM32/OTGv1/stm32_otg.h b/os/hal/platforms/STM32/OTGv1/stm32_otg.h index 842ec80ea1..9a28c7f08e 100644 --- a/os/hal/platforms/STM32/OTGv1/stm32_otg.h +++ b/os/hal/platforms/STM32/OTGv1/stm32_otg.h @@ -238,6 +238,7 @@ typedef struct { #define GUSBCFG_CTXPKT (1U<<31) /**< Corrupt Tx packet. */ #define GUSBCFG_FDMOD (1U<<30) /**< Force Device Mode. */ #define GUSBCFG_FHMOD (1U<<29) /**< Force Host Mode. */ +#define GUSBCFG_ULPIEVBUSD (1U<<20) /**< ULPI External VBUS Drive */ #define GUSBCFG_TRDT_MASK (15U<<10) /**< USB Turnaround time field mask. */ #define GUSBCFG_TRDT(n) ((n)<<10) /**< USB Turnaround time field @@ -679,6 +680,7 @@ typedef struct { #define DSTS_ENUMSPD_MASK (3U<<1) /**< Enumerated speed mask. */ #define DSTS_ENUMSPD_FS_48 (3U<<1) /**< Full speed (PHY clock is running at 48 MHz). */ +#define DSTS_ENUMSPD_HS_480 (0U<<1) /**< High speed */ #define DSTS_SUSPSTS (1U<<0) /**< Suspend status. */ /** @} */ diff --git a/os/hal/platforms/STM32/OTGv1/usb_lld.c b/os/hal/platforms/STM32/OTGv1/usb_lld.c index 1bb29beaed..7da50adde0 100644 --- a/os/hal/platforms/STM32/OTGv1/usb_lld.c +++ b/os/hal/platforms/STM32/OTGv1/usb_lld.c @@ -37,7 +37,8 @@ /* Driver local definitions. */ /*===========================================================================*/ -#define TRDT_VALUE 5 +#define TRDT_VALUE 5 +#define TRDT_HS_VALUE 9 /*===========================================================================*/ /* Driver exported variables. */ @@ -605,10 +606,24 @@ static void otg_epout_handler(USBDriver *usbp, usbep_t ep) { */ static void usb_lld_serve_interrupt(USBDriver *usbp) { stm32_otg_t *otgp = usbp->otg; - uint32_t sts, src; + uint32_t sts, src, dsts_enumspd; sts = otgp->GINTSTS & otgp->GINTMSK; - otgp->GINTSTS = sts; + otgp->GINTSTS = sts; //Writing 1's to this register clears those respective interrupt flags + + if (sts & GINTSTS_WKUPINT) { + //If clocks are gated off, turn them back on (may be the case if coming out of suspend mode). + if( otgp->PCGCCTL & (PCGCCTL_STPPCLK | PCGCCTL_GATEHCLK) ) { + otgp->PCGCCTL &= ~(PCGCCTL_STPPCLK | PCGCCTL_GATEHCLK);//Set to zero to un-gate the USB core clocks + } + + /* Clear the Remote Wake-up Signaling */ + otgp->DCTL |= DCTL_RWUSIG; + } + + if( sts & GINTSTS_USBSUSP ) { + //Implement suspend mode + } /* Reset interrupt handling.*/ if (sts & GINTSTS_USBRST) { @@ -618,7 +633,13 @@ static void usb_lld_serve_interrupt(USBDriver *usbp) { /* Enumeration done.*/ if (sts & GINTSTS_ENUMDNE) { - (void)otgp->DSTS; + /* Full or High speed timing selection */ + dsts_enumspd = (otgp->DSTS & DSTS_ENUMSPD_MASK); + if( dsts_enumspd == DSTS_ENUMSPD_HS_480 ) { + otgp->GUSBCFG = (otgp->GUSBCFG & ~(GUSBCFG_TRDT_MASK)) | GUSBCFG_TRDT(TRDT_HS_VALUE); + } else { + otgp->GUSBCFG = (otgp->GUSBCFG & ~(GUSBCFG_TRDT_MASK)) | GUSBCFG_TRDT(TRDT_VALUE); + } } /* SOF interrupt handling.*/ @@ -858,6 +879,12 @@ void usb_lld_start(USBDriver *usbp) { #if STM32_USB_USE_OTG2 if (&USBD2 == usbp) { /* OTG HS clock enable and reset.*/ +#if STM32_USE_USB_OTG2_ULPI + rccEnableAHB1((RCC_AHB1ENR_GPIOAEN | RCC_AHB1ENR_GPIOBEN | + RCC_AHB1ENR_GPIOCEN | RCC_AHB1ENR_GPIOHEN | RCC_AHB1ENR_GPIOIEN), + FALSE); + rccEnableAHB1(RCC_AHB1ENR_OTGHSULPIEN, FALSE); +#endif rccEnableOTG_HS(FALSE); rccResetOTG_HS(); @@ -878,18 +905,49 @@ void usb_lld_start(USBDriver *usbp) { usbp); /* - Forced device mode. - - USB turn-around time = TRDT_VALUE. - - Full Speed 1.1 PHY.*/ + - USB turn-around time = TRDT_VALUE. */ +#if STM32_USE_USB_OTG2_ULPI + /* High speed ULPI PHY */ + otgp->GUSBCFG = GUSBCFG_FDMOD | GUSBCFG_TRDT(TRDT_VALUE) | GUSBCFG_SRPCAP | GUSBCFG_HNPCAP; +#else + /* - Full Speed 1.1 PHY.*/ otgp->GUSBCFG = GUSBCFG_FDMOD | GUSBCFG_TRDT(TRDT_VALUE) | GUSBCFG_PHYSEL; +#endif + +#if STM32_USE_USB_OTG2_HS + /* USB 2.0 High Speed PHY.*/ + otgp->DCFG = 0x02200000 | DCFG_DSPD_HS; +#else +# if STM32_USE_USB_OTG2_HS_FS + /* USB 2.0 High Speed PHY but in full speed mode*/ + otgp->DCFG = 0x02200000 | DCFG_DSPD_HS_FS; +# else /* 48MHz 1.1 PHY.*/ otgp->DCFG = 0x02200000 | DCFG_DSPD_FS11; +# endif +#endif /* PHY enabled.*/ otgp->PCGCCTL = 0; +#if STM32_USB_USE_OTG2 + if (&USBD2 == usbp) { +#if STM32_USE_USB_OTG2_ULPI + otgp->GCCFG = 0; +#else + otgp->GCCFG = GCCFG_VBUSASEN | GCCFG_VBUSBSEN | GCCFG_PWRDWN; +#endif + } else { + /* Internal FS PHY activation.*/ + otgp->GCCFG = GCCFG_VBUSASEN | GCCFG_VBUSBSEN | GCCFG_PWRDWN; + } +#else /* Internal FS PHY activation.*/ otgp->GCCFG = GCCFG_VBUSASEN | GCCFG_VBUSBSEN | GCCFG_PWRDWN; +#endif + + /* Soft core reset.*/ otg_core_reset(usbp); @@ -905,12 +963,13 @@ void usb_lld_start(USBDriver *usbp) { otgp->DIEPMSK = 0; otgp->DOEPMSK = 0; otgp->DAINTMSK = 0; - if (usbp->config->sof_cb == NULL) - otgp->GINTMSK = GINTMSK_ENUMDNEM | GINTMSK_USBRSTM /*| GINTMSK_USBSUSPM | - GINTMSK_ESUSPM |*/; - else - otgp->GINTMSK = GINTMSK_ENUMDNEM | GINTMSK_USBRSTM /*| GINTMSK_USBSUSPM | - GINTMSK_ESUSPM */ | GINTMSK_SOFM; + if (usbp->config->sof_cb == NULL) { + otgp->GINTMSK = GINTMSK_ENUMDNEM | GINTMSK_USBRSTM | GINTMSK_USBSUSPM | + GINTMSK_ESUSPM | GINTMSK_SRQM | GINTMSK_WKUM; + } else { + otgp->GINTMSK = GINTMSK_ENUMDNEM | GINTMSK_USBRSTM | GINTMSK_USBSUSPM | + GINTMSK_ESUSPM | GINTMSK_SRQM | GINTMSK_WKUM | GINTMSK_SOFM; + } otgp->GINTSTS = 0xFFFFFFFF; /* Clears all pending IRQs, if any. */ /* Global interrupts enable.*/ @@ -937,17 +996,20 @@ void usb_lld_stop(USBDriver *usbp) { otgp->GAHBCFG = 0; otgp->GCCFG = 0; -#if STM32_USB_USE_USB1 +#if STM32_USB_USE_OTG1 if (&USBD1 == usbp) { nvicDisableVector(STM32_OTG1_NUMBER); - rccDisableOTG1(FALSE); + rccDisableOTG_FS(FALSE); } #endif -#if STM32_USB_USE_USB2 +#if STM32_USB_USE_OTG2 if (&USBD2 == usbp) { nvicDisableVector(STM32_OTG2_NUMBER); - rccDisableOTG2(FALSE); + rccDisableOTG_HS(FALSE); +#if STM32_USE_USB_OTG2_ULPI + rccDisableAHB1(RCC_AHB1ENR_OTGHSULPIEN, FALSE); +#endif } #endif } From 4077d3469a2b7db6da7c05866a20c296fa1a7e6d Mon Sep 17 00:00:00 2001 From: Dave Camarillo Date: Tue, 19 Feb 2013 16:55:31 -0800 Subject: [PATCH 06/52] cleanded up code style and added default for STM32_USE_USB_OTG2_HS_FS in header --- os/hal/platforms/STM32/OTGv1/usb_lld.c | 13 ++++++++----- os/hal/platforms/STM32/OTGv1/usb_lld.h | 10 ++++++++++ 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/os/hal/platforms/STM32/OTGv1/usb_lld.c b/os/hal/platforms/STM32/OTGv1/usb_lld.c index 7da50adde0..3fc65ea1a7 100644 --- a/os/hal/platforms/STM32/OTGv1/usb_lld.c +++ b/os/hal/platforms/STM32/OTGv1/usb_lld.c @@ -609,12 +609,15 @@ static void usb_lld_serve_interrupt(USBDriver *usbp) { uint32_t sts, src, dsts_enumspd; sts = otgp->GINTSTS & otgp->GINTMSK; - otgp->GINTSTS = sts; //Writing 1's to this register clears those respective interrupt flags + /*Writing 1's to this register clears those respective interrupt flags*/ + otgp->GINTSTS = sts; if (sts & GINTSTS_WKUPINT) { - //If clocks are gated off, turn them back on (may be the case if coming out of suspend mode). + /*If clocks are gated off, turn them back on (may be the case if + coming out of suspend mode).*/ if( otgp->PCGCCTL & (PCGCCTL_STPPCLK | PCGCCTL_GATEHCLK) ) { - otgp->PCGCCTL &= ~(PCGCCTL_STPPCLK | PCGCCTL_GATEHCLK);//Set to zero to un-gate the USB core clocks + /*Set to zero to un-gate the USB core clocks*/ + otgp->PCGCCTL &= ~(PCGCCTL_STPPCLK | PCGCCTL_GATEHCLK); } /* Clear the Remote Wake-up Signaling */ @@ -622,7 +625,7 @@ static void usb_lld_serve_interrupt(USBDriver *usbp) { } if( sts & GINTSTS_USBSUSP ) { - //Implement suspend mode + /*TODO Implement suspend mode*/ } /* Reset interrupt handling.*/ @@ -919,7 +922,7 @@ void usb_lld_start(USBDriver *usbp) { /* USB 2.0 High Speed PHY.*/ otgp->DCFG = 0x02200000 | DCFG_DSPD_HS; #else -# if STM32_USE_USB_OTG2_HS_FS +# if STM32_USE_USB_OTG2_HS && STM32_USE_USB_OTG2_HS_FS /* USB 2.0 High Speed PHY but in full speed mode*/ otgp->DCFG = 0x02200000 | DCFG_DSPD_HS_FS; # else diff --git a/os/hal/platforms/STM32/OTGv1/usb_lld.h b/os/hal/platforms/STM32/OTGv1/usb_lld.h index 1ab3c0f0c3..c54d734a7a 100644 --- a/os/hal/platforms/STM32/OTGv1/usb_lld.h +++ b/os/hal/platforms/STM32/OTGv1/usb_lld.h @@ -73,6 +73,16 @@ #define STM32_USB_USE_OTG2 FALSE #endif +/** + * @brief Enables or disables OTG2 high speed in full speed mode. + * @details If set to @p TRUE run in full speed mode. + * @note The default is @p FALSE. + */ +#if !defined(STM32_USE_USB_OTG2_HS_FS) || defined(__DOXYGEN__) +#define STM32_USE_USB_OTG2_HS_FS FALSE +#endif + + /** * @brief OTG1 interrupt priority level setting. */ From ea50a0a2ae2426680bd632caab775570191e6446 Mon Sep 17 00:00:00 2001 From: Dave Camarillo Date: Tue, 19 Feb 2013 16:56:08 -0800 Subject: [PATCH 07/52] removed eclipse files from repo --- .../.cproject | 52 ---------- .../.project | 95 ------------------- 2 files changed, 147 deletions(-) delete mode 100644 demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/.cproject delete mode 100644 demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/.project diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/.cproject b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/.cproject deleted file mode 100644 index 4c0ec4132d..0000000000 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/.cproject +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/.project b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/.project deleted file mode 100644 index 20074f5a76..0000000000 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/.project +++ /dev/null @@ -1,95 +0,0 @@ - - - ARMCM4-STM32F407-DISCOVERY-MEMS - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - ?name? - - - - org.eclipse.cdt.make.core.append_environment - true - - - org.eclipse.cdt.make.core.autoBuildTarget - all - - - org.eclipse.cdt.make.core.buildArguments - -j1 - - - org.eclipse.cdt.make.core.buildCommand - make - - - org.eclipse.cdt.make.core.cleanBuildTarget - clean - - - org.eclipse.cdt.make.core.contents - org.eclipse.cdt.make.core.activeConfigSettings - - - org.eclipse.cdt.make.core.enableAutoBuild - false - - - org.eclipse.cdt.make.core.enableCleanBuild - true - - - org.eclipse.cdt.make.core.enableFullBuild - true - - - org.eclipse.cdt.make.core.fullBuildTarget - all - - - org.eclipse.cdt.make.core.stopOnError - true - - - org.eclipse.cdt.make.core.useDefaultBuildCmd - true - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - - - board - 2 - CHIBIOS/boards/ST_STM32F4_DISCOVERY - - - os - 2 - CHIBIOS/os - - - test - 2 - CHIBIOS/test - - - From 100cf77370ec5f4effada8735aff22c0bdfe237d Mon Sep 17 00:00:00 2001 From: Dave Camarillo Date: Tue, 19 Feb 2013 17:02:34 -0800 Subject: [PATCH 08/52] mass storage code, modified and speed up from Badgers code, working over USB high speed, partial error handling --- .../Makefile | 228 +++++ .../chconf.h | 535 ++++++++++ .../ffconf.h | 193 ++++ .../halconf.h | 318 ++++++ .../main.c | 855 ++++++++++++++++ .../mcuconf.h | 282 ++++++ .../readme.txt | 30 + .../usb_msd.c | 924 ++++++++++++++++++ .../usb_msd.h | 152 +++ 9 files changed, 3517 insertions(+) create mode 100644 demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/Makefile create mode 100644 demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/chconf.h create mode 100644 demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/ffconf.h create mode 100644 demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/halconf.h create mode 100644 demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/main.c create mode 100644 demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/mcuconf.h create mode 100644 demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/readme.txt create mode 100644 demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.c create mode 100644 demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.h diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/Makefile b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/Makefile new file mode 100644 index 0000000000..f655167816 --- /dev/null +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/Makefile @@ -0,0 +1,228 @@ +############################################################################## +# Build global options +# NOTE: Can be overridden externally. +# + +# Compiler options here. +ifeq ($(USE_OPT),) + USE_OPT = -O2 -ggdb -fomit-frame-pointer -falign-functions=16 +endif + +# C specific options here (added to USE_OPT). +ifeq ($(USE_COPT),) + USE_COPT = +endif + +# C++ specific options here (added to USE_OPT). +ifeq ($(USE_CPPOPT),) + USE_CPPOPT = -fno-rtti +endif + +# Enable this if you want the linker to remove unused code and data +ifeq ($(USE_LINK_GC),) + USE_LINK_GC = yes +endif + +# If enabled, this option allows to compile the application in THUMB mode. +ifeq ($(USE_THUMB),) + USE_THUMB = yes +endif + +# Enable this if you want to see the full log while compiling. +ifeq ($(USE_VERBOSE_COMPILE),) + USE_VERBOSE_COMPILE = no +endif + +# +# Build global options +############################################################################## + +############################################################################## +# Architecture or project specific options +# + +# Enables the use of FPU on Cortex-M4. +# Enable this if you really want to use the STM FWLib. +ifeq ($(USE_FPU),) + USE_FPU = no +endif + +# Enable this if you really want to use the STM FWLib. +ifeq ($(USE_FWLIB),) + USE_FWLIB = no +endif + +# +# Architecture or project specific options +############################################################################## + +############################################################################## +# Project, sources and paths +# + +# Define project name here +PROJECT = ch + +# Imported source files and paths +CHIBIOS = ../.. +include $(CHIBIOS)/boards/WAVESHARE_OPEN_407I_C/board.mk +include $(CHIBIOS)/os/hal/platforms/STM32F4xx/platform.mk +include $(CHIBIOS)/os/hal/hal.mk +include $(CHIBIOS)/os/ports/GCC/ARMCMx/STM32F4xx/port.mk +include $(CHIBIOS)/os/kernel/kernel.mk +include $(CHIBIOS)/os/various/fatfs_bindings/fatfs.mk +include $(CHIBIOS)/test/test.mk + +# Define linker script file here +LDSCRIPT= $(PORTLD)/STM32F407xG.ld +#LDSCRIPT= $(PORTLD)/STM32F407xG_CCM.ld + +# C sources that can be compiled in ARM or THUMB mode depending on the global +# setting. +CSRC = $(PORTSRC) \ + $(KERNSRC) \ + $(TESTSRC) \ + $(HALSRC) \ + $(PLATFORMSRC) \ + $(BOARDSRC) \ + $(FATFSSRC) \ + $(CHIBIOS)/os/various/evtimer.c \ + $(CHIBIOS)/os/various/chprintf.c \ + $(CHIBIOS)/os/various/shell.c \ + usb_msd.c \ + main.c + +# C++ sources that can be compiled in ARM or THUMB mode depending on the global +# setting. +CPPSRC = + +# C sources to be compiled in ARM mode regardless of the global setting. +# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler +# option that results in lower performance and larger code size. +ACSRC = + +# C++ sources to be compiled in ARM mode regardless of the global setting. +# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler +# option that results in lower performance and larger code size. +ACPPSRC = + +# C sources to be compiled in THUMB mode regardless of the global setting. +# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler +# option that results in lower performance and larger code size. +TCSRC = + +# C sources to be compiled in THUMB mode regardless of the global setting. +# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler +# option that results in lower performance and larger code size. +TCPPSRC = + +# List ASM source files here +ASMSRC = $(PORTASM) + +INCDIR = $(PORTINC) $(KERNINC) $(TESTINC) \ + $(HALINC) $(PLATFORMINC) $(BOARDINC) \ + $(FATFSINC) \ + $(CHIBIOS)/os/various + +# +# Project, sources and paths +############################################################################## + +############################################################################## +# Compiler settings +# + +MCU = cortex-m4 + +#TRGT = arm-elf- +TRGT = arm-none-eabi- +CC = $(TRGT)gcc +CPPC = $(TRGT)g++ +# Enable loading with g++ only if you need C++ runtime support. +# NOTE: You can use C++ even without C++ support if you are careful. C++ +# runtime support makes code size explode. +LD = $(TRGT)gcc +#LD = $(TRGT)g++ +CP = $(TRGT)objcopy +AS = $(TRGT)gcc -x assembler-with-cpp +OD = $(TRGT)objdump +HEX = $(CP) -O ihex +BIN = $(CP) -O binary + +# ARM-specific options here +AOPT = + +# THUMB-specific options here +TOPT = -mthumb -DTHUMB + +# Define C warning options here +CWARN = -Wall -Wextra -Wstrict-prototypes + +# Define C++ warning options here +CPPWARN = -Wall -Wextra + +# +# Compiler settings +############################################################################## + +############################################################################## +# Start of default section +# + +# List all default C defines here, like -D_DEBUG=1 +DDEFS = + +# List all default ASM defines here, like -D_DEBUG=1 +DADEFS = + +# List all default directories to look for include files here +DINCDIR = + +# List the default directory to look for the libraries here +DLIBDIR = + +# List all default libraries here +DLIBS = + +# +# End of default section +############################################################################## + +############################################################################## +# Start of user section +# + +# List all user C define here, like -D_DEBUG=1 +UDEFS = + +# Define ASM defines here +UADEFS = + +# List all user directories here +UINCDIR = + +# List the user directory to look for the libraries here +ULIBDIR = + +# List all user libraries here +ULIBS = + +# +# End of user defines +############################################################################## + +ifeq ($(USE_FPU),yes) + USE_OPT += -mfloat-abi=softfp -mfpu=fpv4-sp-d16 -fsingle-precision-constant + DDEFS += -DCORTEX_USE_FPU=TRUE +else + DDEFS += -DCORTEX_USE_FPU=FALSE +endif + +ifeq ($(USE_FWLIB),yes) + include $(CHIBIOS)/ext/stm32lib/stm32lib.mk + CSRC += $(STM32SRC) + INCDIR += $(STM32INC) + USE_OPT += -DUSE_STDPERIPH_DRIVER +endif + +include $(CHIBIOS)/os/ports/GCC/ARMCMx/rules.mk diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/chconf.h b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/chconf.h new file mode 100644 index 0000000000..f0ccde0d06 --- /dev/null +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/chconf.h @@ -0,0 +1,535 @@ +/* + ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, + 2011,2012,2013 Giovanni Di Sirio. + + This file is part of ChibiOS/RT. + + ChibiOS/RT is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + ChibiOS/RT is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +/** + * @file templates/chconf.h + * @brief Configuration file template. + * @details A copy of this file must be placed in each project directory, it + * contains the application specific kernel settings. + * + * @addtogroup config + * @details Kernel related settings and hooks. + * @{ + */ + +#ifndef _CHCONF_H_ +#define _CHCONF_H_ + +/*===========================================================================*/ +/** + * @name Kernel parameters and options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief System tick frequency. + * @details Frequency of the system timer that drives the system ticks. This + * setting also defines the system tick time unit. + */ +#if !defined(CH_FREQUENCY) || defined(__DOXYGEN__) +#define CH_FREQUENCY 1000 +#endif + +/** + * @brief Round robin interval. + * @details This constant is the number of system ticks allowed for the + * threads before preemption occurs. Setting this value to zero + * disables the preemption for threads with equal priority and the + * round robin becomes cooperative. Note that higher priority + * threads can still preempt, the kernel is always preemptive. + * + * @note Disabling the round robin preemption makes the kernel more compact + * and generally faster. + */ +#if !defined(CH_TIME_QUANTUM) || defined(__DOXYGEN__) +#define CH_TIME_QUANTUM 10 +#endif + +/** + * @brief Managed RAM size. + * @details Size of the RAM area to be managed by the OS. If set to zero + * then the whole available RAM is used. The core memory is made + * available to the heap allocator and/or can be used directly through + * the simplified core memory allocator. + * + * @note In order to let the OS manage the whole RAM the linker script must + * provide the @p __heap_base__ and @p __heap_end__ symbols. + * @note Requires @p CH_USE_MEMCORE. + */ +#if !defined(CH_MEMCORE_SIZE) || defined(__DOXYGEN__) +#define CH_MEMCORE_SIZE 0 +#endif + +/** + * @brief Idle thread automatic spawn suppression. + * @details When this option is activated the function @p chSysInit() + * does not spawn the idle thread automatically. The application has + * then the responsibility to do one of the following: + * - Spawn a custom idle thread at priority @p IDLEPRIO. + * - Change the main() thread priority to @p IDLEPRIO then enter + * an endless loop. In this scenario the @p main() thread acts as + * the idle thread. + * . + * @note Unless an idle thread is spawned the @p main() thread must not + * enter a sleep state. + */ +#if !defined(CH_NO_IDLE_THREAD) || defined(__DOXYGEN__) +#define CH_NO_IDLE_THREAD FALSE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Performance options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief OS optimization. + * @details If enabled then time efficient rather than space efficient code + * is used when two possible implementations exist. + * + * @note This is not related to the compiler optimization options. + * @note The default is @p TRUE. + */ +#if !defined(CH_OPTIMIZE_SPEED) || defined(__DOXYGEN__) +#define CH_OPTIMIZE_SPEED TRUE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Subsystem options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Threads registry APIs. + * @details If enabled then the registry APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_USE_REGISTRY) || defined(__DOXYGEN__) +#define CH_USE_REGISTRY TRUE +#endif + +/** + * @brief Threads synchronization APIs. + * @details If enabled then the @p chThdWait() function is included in + * the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_USE_WAITEXIT) || defined(__DOXYGEN__) +#define CH_USE_WAITEXIT TRUE +#endif + +/** + * @brief Semaphores APIs. + * @details If enabled then the Semaphores APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_USE_SEMAPHORES) || defined(__DOXYGEN__) +#define CH_USE_SEMAPHORES TRUE +#endif + +/** + * @brief Semaphores queuing mode. + * @details If enabled then the threads are enqueued on semaphores by + * priority rather than in FIFO order. + * + * @note The default is @p FALSE. Enable this if you have special requirements. + * @note Requires @p CH_USE_SEMAPHORES. + */ +#if !defined(CH_USE_SEMAPHORES_PRIORITY) || defined(__DOXYGEN__) +#define CH_USE_SEMAPHORES_PRIORITY FALSE +#endif + +/** + * @brief Atomic semaphore API. + * @details If enabled then the semaphores the @p chSemSignalWait() API + * is included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_USE_SEMAPHORES. + */ +#if !defined(CH_USE_SEMSW) || defined(__DOXYGEN__) +#define CH_USE_SEMSW TRUE +#endif + +/** + * @brief Mutexes APIs. + * @details If enabled then the mutexes APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_USE_MUTEXES) || defined(__DOXYGEN__) +#define CH_USE_MUTEXES TRUE +#endif + +/** + * @brief Conditional Variables APIs. + * @details If enabled then the conditional variables APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_USE_MUTEXES. + */ +#if !defined(CH_USE_CONDVARS) || defined(__DOXYGEN__) +#define CH_USE_CONDVARS TRUE +#endif + +/** + * @brief Conditional Variables APIs with timeout. + * @details If enabled then the conditional variables APIs with timeout + * specification are included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_USE_CONDVARS. + */ +#if !defined(CH_USE_CONDVARS_TIMEOUT) || defined(__DOXYGEN__) +#define CH_USE_CONDVARS_TIMEOUT TRUE +#endif + +/** + * @brief Events Flags APIs. + * @details If enabled then the event flags APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_USE_EVENTS) || defined(__DOXYGEN__) +#define CH_USE_EVENTS TRUE +#endif + +/** + * @brief Events Flags APIs with timeout. + * @details If enabled then the events APIs with timeout specification + * are included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_USE_EVENTS. + */ +#if !defined(CH_USE_EVENTS_TIMEOUT) || defined(__DOXYGEN__) +#define CH_USE_EVENTS_TIMEOUT TRUE +#endif + +/** + * @brief Synchronous Messages APIs. + * @details If enabled then the synchronous messages APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_USE_MESSAGES) || defined(__DOXYGEN__) +#define CH_USE_MESSAGES TRUE +#endif + +/** + * @brief Synchronous Messages queuing mode. + * @details If enabled then messages are served by priority rather than in + * FIFO order. + * + * @note The default is @p FALSE. Enable this if you have special requirements. + * @note Requires @p CH_USE_MESSAGES. + */ +#if !defined(CH_USE_MESSAGES_PRIORITY) || defined(__DOXYGEN__) +#define CH_USE_MESSAGES_PRIORITY FALSE +#endif + +/** + * @brief Mailboxes APIs. + * @details If enabled then the asynchronous messages (mailboxes) APIs are + * included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_USE_SEMAPHORES. + */ +#if !defined(CH_USE_MAILBOXES) || defined(__DOXYGEN__) +#define CH_USE_MAILBOXES TRUE +#endif + +/** + * @brief I/O Queues APIs. + * @details If enabled then the I/O queues APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__) +#define CH_USE_QUEUES TRUE +#endif + +/** + * @brief Core Memory Manager APIs. + * @details If enabled then the core memory manager APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_USE_MEMCORE) || defined(__DOXYGEN__) +#define CH_USE_MEMCORE TRUE +#endif + +/** + * @brief Heap Allocator APIs. + * @details If enabled then the memory heap allocator APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_USE_MEMCORE and either @p CH_USE_MUTEXES or + * @p CH_USE_SEMAPHORES. + * @note Mutexes are recommended. + */ +#if !defined(CH_USE_HEAP) || defined(__DOXYGEN__) +#define CH_USE_HEAP TRUE +#endif + +/** + * @brief C-runtime allocator. + * @details If enabled the the heap allocator APIs just wrap the C-runtime + * @p malloc() and @p free() functions. + * + * @note The default is @p FALSE. + * @note Requires @p CH_USE_HEAP. + * @note The C-runtime may or may not require @p CH_USE_MEMCORE, see the + * appropriate documentation. + */ +#if !defined(CH_USE_MALLOC_HEAP) || defined(__DOXYGEN__) +#define CH_USE_MALLOC_HEAP FALSE +#endif + +/** + * @brief Memory Pools Allocator APIs. + * @details If enabled then the memory pools allocator APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_USE_MEMPOOLS) || defined(__DOXYGEN__) +#define CH_USE_MEMPOOLS TRUE +#endif + +/** + * @brief Dynamic Threads APIs. + * @details If enabled then the dynamic threads creation APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_USE_WAITEXIT. + * @note Requires @p CH_USE_HEAP and/or @p CH_USE_MEMPOOLS. + */ +#if !defined(CH_USE_DYNAMIC) || defined(__DOXYGEN__) +#define CH_USE_DYNAMIC TRUE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Debug options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Debug option, system state check. + * @details If enabled the correct call protocol for system APIs is checked + * at runtime. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_SYSTEM_STATE_CHECK) || defined(__DOXYGEN__) +#define CH_DBG_SYSTEM_STATE_CHECK FALSE +#endif + +/** + * @brief Debug option, parameters checks. + * @details If enabled then the checks on the API functions input + * parameters are activated. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_ENABLE_CHECKS) || defined(__DOXYGEN__) +#define CH_DBG_ENABLE_CHECKS FALSE +#endif + +/** + * @brief Debug option, consistency checks. + * @details If enabled then all the assertions in the kernel code are + * activated. This includes consistency checks inside the kernel, + * runtime anomalies and port-defined checks. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_ENABLE_ASSERTS) || defined(__DOXYGEN__) +#define CH_DBG_ENABLE_ASSERTS FALSE +#endif + +/** + * @brief Debug option, trace buffer. + * @details If enabled then the context switch circular trace buffer is + * activated. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_ENABLE_TRACE) || defined(__DOXYGEN__) +#define CH_DBG_ENABLE_TRACE FALSE +#endif + +/** + * @brief Debug option, stack checks. + * @details If enabled then a runtime stack check is performed. + * + * @note The default is @p FALSE. + * @note The stack check is performed in a architecture/port dependent way. + * It may not be implemented or some ports. + * @note The default failure mode is to halt the system with the global + * @p panic_msg variable set to @p NULL. + */ +#if !defined(CH_DBG_ENABLE_STACK_CHECK) || defined(__DOXYGEN__) +#define CH_DBG_ENABLE_STACK_CHECK TRUE +#endif + +/** + * @brief Debug option, stacks initialization. + * @details If enabled then the threads working area is filled with a byte + * value when a thread is created. This can be useful for the + * runtime measurement of the used stack. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_FILL_THREADS) || defined(__DOXYGEN__) +#define CH_DBG_FILL_THREADS TRUE +#endif + +/** + * @brief Debug option, threads profiling. + * @details If enabled then a field is added to the @p Thread structure that + * counts the system ticks occurred while executing the thread. + * + * @note The default is @p TRUE. + * @note This debug option is defaulted to TRUE because it is required by + * some test cases into the test suite. + */ +#if !defined(CH_DBG_THREADS_PROFILING) || defined(__DOXYGEN__) +#define CH_DBG_THREADS_PROFILING TRUE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Kernel hooks + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Threads descriptor structure extension. + * @details User fields added to the end of the @p Thread structure. + */ +#if !defined(THREAD_EXT_FIELDS) || defined(__DOXYGEN__) +#define THREAD_EXT_FIELDS \ + /* Add threads custom fields here.*/ +#endif + +/** + * @brief Threads initialization hook. + * @details User initialization code added to the @p chThdInit() API. + * + * @note It is invoked from within @p chThdInit() and implicitly from all + * the threads creation APIs. + */ +#if !defined(THREAD_EXT_INIT_HOOK) || defined(__DOXYGEN__) +#define THREAD_EXT_INIT_HOOK(tp) { \ + /* Add threads initialization code here.*/ \ +} +#endif + +/** + * @brief Threads finalization hook. + * @details User finalization code added to the @p chThdExit() API. + * + * @note It is inserted into lock zone. + * @note It is also invoked when the threads simply return in order to + * terminate. + */ +#if !defined(THREAD_EXT_EXIT_HOOK) || defined(__DOXYGEN__) +#define THREAD_EXT_EXIT_HOOK(tp) { \ + /* Add threads finalization code here.*/ \ +} +#endif + +/** + * @brief Context switch hook. + * @details This hook is invoked just before switching between threads. + */ +#if !defined(THREAD_CONTEXT_SWITCH_HOOK) || defined(__DOXYGEN__) +#define THREAD_CONTEXT_SWITCH_HOOK(ntp, otp) { \ + /* System halt code here.*/ \ +} +#endif + +/** + * @brief Idle Loop hook. + * @details This hook is continuously invoked by the idle thread loop. + */ +#if !defined(IDLE_LOOP_HOOK) || defined(__DOXYGEN__) +#define IDLE_LOOP_HOOK() { \ + /* Idle loop code here.*/ \ +} +#endif + +/** + * @brief System tick event hook. + * @details This hook is invoked in the system tick handler immediately + * after processing the virtual timers queue. + */ +#if !defined(SYSTEM_TICK_EVENT_HOOK) || defined(__DOXYGEN__) +#define SYSTEM_TICK_EVENT_HOOK() { \ + /* System tick event code here.*/ \ +} +#endif + +/** + * @brief System halt hook. + * @details This hook is invoked in case to a system halting error before + * the system is halted. + */ +#if !defined(SYSTEM_HALT_HOOK) || defined(__DOXYGEN__) +#define SYSTEM_HALT_HOOK() { \ + /* System halt code here.*/ \ +} +#endif + +/** @} */ + +/*===========================================================================*/ +/* Port-specific settings (override port settings defaulted in chcore.h). */ +/*===========================================================================*/ + +#endif /* _CHCONF_H_ */ + +/** @} */ diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/ffconf.h b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/ffconf.h new file mode 100644 index 0000000000..e6a13cea3a --- /dev/null +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/ffconf.h @@ -0,0 +1,193 @@ +/* CHIBIOS FIX */ +#include "ch.h" + +/*---------------------------------------------------------------------------/ +/ FatFs - FAT file system module configuration file R0.09 (C)ChaN, 2011 +/----------------------------------------------------------------------------/ +/ +/ CAUTION! Do not forget to make clean the project after any changes to +/ the configuration options. +/ +/----------------------------------------------------------------------------*/ +#ifndef _FFCONF +#define _FFCONF 6502 /* Revision ID */ + + +/*---------------------------------------------------------------------------/ +/ Functions and Buffer Configurations +/----------------------------------------------------------------------------*/ + +#define _FS_TINY 0 /* 0:Normal or 1:Tiny */ +/* When _FS_TINY is set to 1, FatFs uses the sector buffer in the file system +/ object instead of the sector buffer in the individual file object for file +/ data transfer. This reduces memory consumption 512 bytes each file object. */ + + +#define _FS_READONLY 0 /* 0:Read/Write or 1:Read only */ +/* Setting _FS_READONLY to 1 defines read only configuration. This removes +/ writing functions, f_write, f_sync, f_unlink, f_mkdir, f_chmod, f_rename, +/ f_truncate and useless f_getfree. */ + + +#define _FS_MINIMIZE 0 /* 0 to 3 */ +/* The _FS_MINIMIZE option defines minimization level to remove some functions. +/ +/ 0: Full function. +/ 1: f_stat, f_getfree, f_unlink, f_mkdir, f_chmod, f_truncate and f_rename +/ are removed. +/ 2: f_opendir and f_readdir are removed in addition to 1. +/ 3: f_lseek is removed in addition to 2. */ + + +#define _USE_STRFUNC 0 /* 0:Disable or 1-2:Enable */ +/* To enable string functions, set _USE_STRFUNC to 1 or 2. */ + + +#define _USE_MKFS 0 /* 0:Disable or 1:Enable */ +/* To enable f_mkfs function, set _USE_MKFS to 1 and set _FS_READONLY to 0 */ + + +#define _USE_FORWARD 0 /* 0:Disable or 1:Enable */ +/* To enable f_forward function, set _USE_FORWARD to 1 and set _FS_TINY to 1. */ + + +#define _USE_FASTSEEK 0 /* 0:Disable or 1:Enable */ +/* To enable fast seek feature, set _USE_FASTSEEK to 1. */ + + + +/*---------------------------------------------------------------------------/ +/ Locale and Namespace Configurations +/----------------------------------------------------------------------------*/ + +#define _CODE_PAGE 1252 +/* The _CODE_PAGE specifies the OEM code page to be used on the target system. +/ Incorrect setting of the code page can cause a file open failure. +/ +/ 932 - Japanese Shift-JIS (DBCS, OEM, Windows) +/ 936 - Simplified Chinese GBK (DBCS, OEM, Windows) +/ 949 - Korean (DBCS, OEM, Windows) +/ 950 - Traditional Chinese Big5 (DBCS, OEM, Windows) +/ 1250 - Central Europe (Windows) +/ 1251 - Cyrillic (Windows) +/ 1252 - Latin 1 (Windows) +/ 1253 - Greek (Windows) +/ 1254 - Turkish (Windows) +/ 1255 - Hebrew (Windows) +/ 1256 - Arabic (Windows) +/ 1257 - Baltic (Windows) +/ 1258 - Vietnam (OEM, Windows) +/ 437 - U.S. (OEM) +/ 720 - Arabic (OEM) +/ 737 - Greek (OEM) +/ 775 - Baltic (OEM) +/ 850 - Multilingual Latin 1 (OEM) +/ 858 - Multilingual Latin 1 + Euro (OEM) +/ 852 - Latin 2 (OEM) +/ 855 - Cyrillic (OEM) +/ 866 - Russian (OEM) +/ 857 - Turkish (OEM) +/ 862 - Hebrew (OEM) +/ 874 - Thai (OEM, Windows) +/ 1 - ASCII only (Valid for non LFN cfg.) +*/ + + +#define _USE_LFN 3 /* 0 to 3 */ +#define _MAX_LFN 255 /* Maximum LFN length to handle (12 to 255) */ +/* The _USE_LFN option switches the LFN support. +/ +/ 0: Disable LFN feature. _MAX_LFN and _LFN_UNICODE have no effect. +/ 1: Enable LFN with static working buffer on the BSS. Always NOT reentrant. +/ 2: Enable LFN with dynamic working buffer on the STACK. +/ 3: Enable LFN with dynamic working buffer on the HEAP. +/ +/ The LFN working buffer occupies (_MAX_LFN + 1) * 2 bytes. To enable LFN, +/ Unicode handling functions ff_convert() and ff_wtoupper() must be added +/ to the project. When enable to use heap, memory control functions +/ ff_memalloc() and ff_memfree() must be added to the project. */ + + +#define _LFN_UNICODE 0 /* 0:ANSI/OEM or 1:Unicode */ +/* To switch the character code set on FatFs API to Unicode, +/ enable LFN feature and set _LFN_UNICODE to 1. */ + + +#define _FS_RPATH 0 /* 0 to 2 */ +/* The _FS_RPATH option configures relative path feature. +/ +/ 0: Disable relative path feature and remove related functions. +/ 1: Enable relative path. f_chdrive() and f_chdir() are available. +/ 2: f_getcwd() is available in addition to 1. +/ +/ Note that output of the f_readdir fnction is affected by this option. */ + + + +/*---------------------------------------------------------------------------/ +/ Physical Drive Configurations +/----------------------------------------------------------------------------*/ + +#define _VOLUMES 1 +/* Number of volumes (logical drives) to be used. */ + + +#define _MAX_SS 512 /* 512, 1024, 2048 or 4096 */ +/* Maximum sector size to be handled. +/ Always set 512 for memory card and hard disk but a larger value may be +/ required for on-board flash memory, floppy disk and optical disk. +/ When _MAX_SS is larger than 512, it configures FatFs to variable sector size +/ and GET_SECTOR_SIZE command must be implememted to the disk_ioctl function. */ + + +#define _MULTI_PARTITION 0 /* 0:Single partition, 1/2:Enable multiple partition */ +/* When set to 0, each volume is bound to the same physical drive number and +/ it can mount only first primaly partition. When it is set to 1, each volume +/ is tied to the partitions listed in VolToPart[]. */ + + +#define _USE_ERASE 0 /* 0:Disable or 1:Enable */ +/* To enable sector erase feature, set _USE_ERASE to 1. CTRL_ERASE_SECTOR command +/ should be added to the disk_ioctl functio. */ + + + +/*---------------------------------------------------------------------------/ +/ System Configurations +/----------------------------------------------------------------------------*/ + +#define _WORD_ACCESS 0 /* 0 or 1 */ +/* Set 0 first and it is always compatible with all platforms. The _WORD_ACCESS +/ option defines which access method is used to the word data on the FAT volume. +/ +/ 0: Byte-by-byte access. +/ 1: Word access. Do not choose this unless following condition is met. +/ +/ When the byte order on the memory is big-endian or address miss-aligned word +/ access results incorrect behavior, the _WORD_ACCESS must be set to 0. +/ If it is not the case, the value can also be set to 1 to improve the +/ performance and code size. +*/ + + +/* A header file that defines sync object types on the O/S, such as +/ windows.h, ucos_ii.h and semphr.h, must be included prior to ff.h. */ + +#define _FS_REENTRANT 1 /* 0:Disable or 1:Enable */ +#define _FS_TIMEOUT 1000 /* Timeout period in unit of time ticks */ +#define _SYNC_t Semaphore * /* O/S dependent type of sync object. e.g. HANDLE, OS_EVENT*, ID and etc.. */ + +/* The _FS_REENTRANT option switches the reentrancy (thread safe) of the FatFs module. +/ +/ 0: Disable reentrancy. _SYNC_t and _FS_TIMEOUT have no effect. +/ 1: Enable reentrancy. Also user provided synchronization handlers, +/ ff_req_grant, ff_rel_grant, ff_del_syncobj and ff_cre_syncobj +/ function must be added to the project. */ + + +#define _FS_SHARE 0 /* 0:Disable or >=1:Enable */ +/* To enable file shareing feature, set _FS_SHARE to 1 or greater. The value + defines how many files can be opened simultaneously. */ + + +#endif /* _FFCONFIG */ diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/halconf.h b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/halconf.h new file mode 100644 index 0000000000..67dc917a13 --- /dev/null +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/halconf.h @@ -0,0 +1,318 @@ +/* + ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, + 2011,2012,2013 Giovanni Di Sirio. + + This file is part of ChibiOS/RT. + + ChibiOS/RT is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + ChibiOS/RT is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +/** + * @file templates/halconf.h + * @brief HAL configuration header. + * @details HAL configuration file, this file allows to enable or disable the + * various device drivers from your application. You may also use + * this file in order to override the device drivers default settings. + * + * @addtogroup HAL_CONF + * @{ + */ + +#ifndef _HALCONF_H_ +#define _HALCONF_H_ + +#include "mcuconf.h" + +/** + * @brief Enables the TM subsystem. + */ +#if !defined(HAL_USE_TM) || defined(__DOXYGEN__) +#define HAL_USE_TM TRUE +#endif + +/** + * @brief Enables the PAL subsystem. + */ +#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) +#define HAL_USE_PAL TRUE +#endif + +/** + * @brief Enables the ADC subsystem. + */ +#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) +#define HAL_USE_ADC FALSE +#endif + +/** + * @brief Enables the CAN subsystem. + */ +#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) +#define HAL_USE_CAN FALSE +#endif + +/** + * @brief Enables the EXT subsystem. + */ +#if !defined(HAL_USE_EXT) || defined(__DOXYGEN__) +#define HAL_USE_EXT FALSE +#endif + +/** + * @brief Enables the GPT subsystem. + */ +#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) +#define HAL_USE_GPT FALSE +#endif + +/** + * @brief Enables the I2C subsystem. + */ +#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) +#define HAL_USE_I2C FALSE +#endif + +/** + * @brief Enables the ICU subsystem. + */ +#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) +#define HAL_USE_ICU FALSE +#endif + +/** + * @brief Enables the MAC subsystem. + */ +#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) +#define HAL_USE_MAC FALSE +#endif + +/** + * @brief Enables the MMC_SPI subsystem. + */ +#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) +#define HAL_USE_MMC_SPI FALSE +#endif + +/** + * @brief Enables the PWM subsystem. + */ +#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) +#define HAL_USE_PWM FALSE +#endif + +/** + * @brief Enables the RTC subsystem. + */ +#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) +#define HAL_USE_RTC FALSE +#endif + +/** + * @brief Enables the SDC subsystem. + */ +#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) +#define HAL_USE_SDC TRUE +//NOTE: The SanDisk micro SD cards apparently do not support aligned reads beacuase the SD read function fails and calls sys halt +#define STM32_SDC_SDIO_UNALIGNED_SUPPORT FALSE +#endif + +/** + * @brief Enables the SERIAL subsystem. + */ +#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) +#define HAL_USE_SERIAL TRUE +#endif + +/** + * @brief Enables the SERIAL over USB subsystem. + */ +#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) +#define HAL_USE_SERIAL_USB TRUE +#endif + +/** + * @brief Enables the SPI subsystem. + */ +#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) +#define HAL_USE_SPI FALSE +#endif + +/** + * @brief Enables the UART subsystem. + */ +#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) +#define HAL_USE_UART FALSE +#endif + +/** + * @brief Enables the USB subsystem. + */ +#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) +#define HAL_USE_USB TRUE +#endif + +/*===========================================================================*/ +/* ADC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) +#define ADC_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define ADC_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* CAN driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Sleep mode related APIs inclusion switch. + */ +#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) +#define CAN_USE_SLEEP_MODE TRUE +#endif + +/*===========================================================================*/ +/* I2C driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the mutual exclusion APIs on the I2C bus. + */ +#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define I2C_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* MAC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables an event sources for incoming packets. + */ +#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) +#define MAC_USE_ZERO_COPY FALSE +#endif + +/** + * @brief Enables an event sources for incoming packets. + */ +#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) +#define MAC_USE_EVENTS TRUE +#endif + +/*===========================================================================*/ +/* MMC_SPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Delays insertions. + * @details If enabled this options inserts delays into the MMC waiting + * routines releasing some extra CPU time for the threads with + * lower priority, this may slow down the driver a bit however. + * This option is recommended also if the SPI driver does not + * use a DMA channel and heavily loads the CPU. + */ +#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) +#define MMC_NICE_WAITING TRUE +#endif + +/*===========================================================================*/ +/* SDC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Number of initialization attempts before rejecting the card. + * @note Attempts are performed at 10mS intervals. + */ +#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) +#define SDC_INIT_RETRY 100 +#endif + +/** + * @brief Include support for MMC cards. + * @note MMC support is not yet implemented so this option must be kept + * at @p FALSE. + */ +#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) +#define SDC_MMC_SUPPORT FALSE +#endif + +/** + * @brief Delays insertions. + * @details If enabled this options inserts delays into the MMC waiting + * routines releasing some extra CPU time for the threads with + * lower priority, this may slow down the driver a bit however. + */ +#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) +#define SDC_NICE_WAITING TRUE +#endif + +/*===========================================================================*/ +/* SERIAL driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Default bit rate. + * @details Configuration parameter, this is the baud rate selected for the + * default configuration. + */ +#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) +#define SERIAL_DEFAULT_BITRATE 115200 +#endif + +/** + * @brief Serial buffers size. + * @details Configuration parameter, you can change the depth of the queue + * buffers depending on the requirements of your application. + * @note The default is 64 bytes for both the transmission and receive + * buffers. + */ +#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) +#define SERIAL_BUFFERS_SIZE 16 +#endif + +/*===========================================================================*/ +/* SPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) +#define SPI_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define SPI_USE_MUTUAL_EXCLUSION TRUE +#endif + +#endif /* _HALCONF_H_ */ + +/** @} */ diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/main.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/main.c new file mode 100644 index 0000000000..3aa06f2110 --- /dev/null +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/main.c @@ -0,0 +1,855 @@ +/* + ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, + 2011,2012,2013 Giovanni Di Sirio. + + This file is part of ChibiOS/RT. + + ChibiOS/RT is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + ChibiOS/RT is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#include +#include + +#include "ch.h" +#include "hal.h" +#include "test.h" + +#include "usb_cdc.h" +#include "chprintf.h" +#include "shell.h" +#include "usb_msd.h" + +#include "ff.h" + +/*===========================================================================*/ +/* Card insertion monitor. */ +/*===========================================================================*/ + +#define POLLING_INTERVAL 10 +#define POLLING_DELAY 10 + + + + + +/** + * @brief Card monitor timer. + */ +static VirtualTimer tmr; + +/** + * @brief Debounce counter. + */ +static unsigned cnt; + +/** + * @brief Card event sources. + */ +static EventSource inserted_event, removed_event; + +/** + * @brief Insertion monitor timer callback function. + * + * @param[in] p pointer to the @p BaseBlockDevice object + * + * @notapi + */ +static void tmrfunc(void *p) { + BaseBlockDevice *bbdp = p; + + chSysLockFromIsr(); + if (cnt > 0) { + if (blkIsInserted(bbdp)) { + if (--cnt == 0) { + chEvtBroadcastI(&inserted_event); + } + } + else + cnt = POLLING_INTERVAL; + } + else { + if (!blkIsInserted(bbdp)) { + cnt = POLLING_INTERVAL; + chEvtBroadcastI(&removed_event); + } + } + chVTSetI(&tmr, MS2ST(POLLING_DELAY), tmrfunc, bbdp); + chSysUnlockFromIsr(); +} + +/** + * @brief Polling monitor start. + * + * @param[in] p pointer to an object implementing @p BaseBlockDevice + * + * @notapi + */ +static void tmr_init(void *p) { + + chEvtInit(&inserted_event); + chEvtInit(&removed_event); + chSysLock(); + cnt = POLLING_INTERVAL; + chVTSetI(&tmr, MS2ST(POLLING_DELAY), tmrfunc, p); + chSysUnlock(); +} + +/*===========================================================================*/ +/* FatFs related. */ +/*===========================================================================*/ + +//#define ENABLE_VCOM + +#ifdef ENABLE_VCOM + +/** + * @brief FS object. + */ +static FATFS SDC_FS; + +/* FS mounted and ready.*/ +static bool_t fs_ready = FALSE; + +/* Generic large buffer.*/ +static uint8_t fbuff[1024]; + + +static WORKING_AREA(WA_sdcard_thread, 512); +msg_t sdcard_thread_sdio_test(void *arg) +{ + (void) arg; + uint32_t errors; + uint32_t bytes_written; + FRESULT fr; + static FIL sd_file_handle; + + BaseSequentialStream *chp = (BaseSequentialStream*)&SD2; + + chRegSetThreadName("sdcard_test"); + chprintf(chp,"SD Test Thread\r\n"); + + // all io pin settings should be in board.h + + + /* + if( init_sd() != 0 ) { + goto sd_test_cleanup; + } + */ + + + chprintf(chp, "Mounting fatfs\r\n"); + fr = f_mount(0, &SDC_FS); + if( fr != FR_OK ) + { + chprintf(chp, "Failed to mount fatfs\r\n"); + goto sd_test_cleanup; + } + + chprintf(chp, "Opening test.txt\r\n"); + fr = f_open(&sd_file_handle, "/test.txt", FA_CREATE_ALWAYS | FA_WRITE); + if( fr != FR_OK ) + { + chprintf(chp, "Failed to open test.txt, %d\r\n", fr); + goto sd_test_cleanup; + } + + chprintf(chp, "Writing to test.txt\r\n"); + int i; + for(i = 0; i < 1000000; i++ ) { + if( i % 1000 == 0 ) { + chprintf(chp, "."); + } + fr = f_write(&sd_file_handle, "test 4 5 6\n", 11, (UINT*)&bytes_written); + if( fr != FR_OK || bytes_written != 11 ) + { + chprintf(chp, "Failed to write to test.txt, %d\r\n", fr); + goto sd_test_cleanup; + } + } + chprintf(chp, "\r\n"); + + chprintf(chp, "Closing file\r\n"); + fr = f_close(&sd_file_handle); + if( fr != FR_OK ) + { + chprintf(chp, "Error closing file, %d\r\n", fr); + } + +sd_test_cleanup: + f_mount(0, NULL); + sdcDisconnect(&SDCD1); + palSetPad(GPIOC,13); // power off card + + while(TRUE) + { + chThdSleepMilliseconds(1000); + } +} + + + + +static FRESULT scan_files(BaseSequentialStream *chp, char *path) { + FRESULT res; + FILINFO fno; + DIR dir; + int i; + char *fn; + +#if _USE_LFN + fno.lfname = 0; + fno.lfsize = 0; +#endif + res = f_opendir(&dir, path); + if (res == FR_OK) { + i = strlen(path); + for (;;) { + res = f_readdir(&dir, &fno); + if (res != FR_OK || fno.fname[0] == 0) + break; + if (fno.fname[0] == '.') + continue; + fn = fno.fname; + if (fno.fattrib & AM_DIR) { + path[i++] = '/'; + strcpy(&path[i], fn); + res = scan_files(chp, path); + if (res != FR_OK) + break; + path[--i] = 0; + } + else { + chprintf(chp, "%s/%s\r\n", path, fn); + } + } + } + return res; +} + +/*===========================================================================*/ +/* USB related stuff. */ +/*===========================================================================*/ + +/* + * Serial over USB Driver structure. + */ +static SerialUSBDriver SDU1; + +/* + * USB Device Descriptor. + */ +static const uint8_t vcom_device_descriptor_data[18] = { + USB_DESC_DEVICE (0x0110, /* bcdUSB (1.1). */ + 0x02, /* bDeviceClass (CDC). */ + 0x00, /* bDeviceSubClass. */ + 0x00, /* bDeviceProtocol. */ + 0x40, /* bMaxPacketSize. */ + 0x0483, /* idVendor (ST). */ + 0x5740, /* idProduct. */ + 0x0200, /* bcdDevice. */ + 1, /* iManufacturer. */ + 2, /* iProduct. */ + 3, /* iSerialNumber. */ + 1) /* bNumConfigurations. */ +}; + +/* + * Device Descriptor wrapper. + */ +static const USBDescriptor vcom_device_descriptor = { + sizeof vcom_device_descriptor_data, + vcom_device_descriptor_data +}; + +/* Configuration Descriptor tree for a CDC.*/ +static const uint8_t vcom_configuration_descriptor_data[67] = { + /* Configuration Descriptor.*/ + USB_DESC_CONFIGURATION(67, /* wTotalLength. */ + 0x02, /* bNumInterfaces. */ + 0x01, /* bConfigurationValue. */ + 0, /* iConfiguration. */ + 0xC0, /* bmAttributes (self powered). */ + 50), /* bMaxPower (100mA). */ + /* Interface Descriptor.*/ + USB_DESC_INTERFACE (0x00, /* bInterfaceNumber. */ + 0x00, /* bAlternateSetting. */ + 0x01, /* bNumEndpoints. */ + 0x02, /* bInterfaceClass (Communications + Interface Class, CDC section + 4.2). */ + 0x02, /* bInterfaceSubClass (Abstract + Control Model, CDC section 4.3). */ + 0x01, /* bInterfaceProtocol (AT commands, + CDC section 4.4). */ + 0), /* iInterface. */ + /* Header Functional Descriptor (CDC section 5.2.3).*/ + USB_DESC_BYTE (5), /* bLength. */ + USB_DESC_BYTE (0x24), /* bDescriptorType (CS_INTERFACE). */ + USB_DESC_BYTE (0x00), /* bDescriptorSubtype (Header + Functional Descriptor. */ + USB_DESC_BCD (0x0110), /* bcdCDC. */ + /* Call Management Functional Descriptor. */ + USB_DESC_BYTE (5), /* bFunctionLength. */ + USB_DESC_BYTE (0x24), /* bDescriptorType (CS_INTERFACE). */ + USB_DESC_BYTE (0x01), /* bDescriptorSubtype (Call Management + Functional Descriptor). */ + USB_DESC_BYTE (0x00), /* bmCapabilities (D0+D1). */ + USB_DESC_BYTE (0x01), /* bDataInterface. */ + /* ACM Functional Descriptor.*/ + USB_DESC_BYTE (4), /* bFunctionLength. */ + USB_DESC_BYTE (0x24), /* bDescriptorType (CS_INTERFACE). */ + USB_DESC_BYTE (0x02), /* bDescriptorSubtype (Abstract + Control Management Descriptor). */ + USB_DESC_BYTE (0x02), /* bmCapabilities. */ + /* Union Functional Descriptor.*/ + USB_DESC_BYTE (5), /* bFunctionLength. */ + USB_DESC_BYTE (0x24), /* bDescriptorType (CS_INTERFACE). */ + USB_DESC_BYTE (0x06), /* bDescriptorSubtype (Union + Functional Descriptor). */ + USB_DESC_BYTE (0x00), /* bMasterInterface (Communication + Class Interface). */ + USB_DESC_BYTE (0x01), /* bSlaveInterface0 (Data Class + Interface). */ + /* Endpoint 2 Descriptor.*/ + USB_DESC_ENDPOINT (USB_CDC_INTERRUPT_REQUEST_EP|0x80, + 0x03, /* bmAttributes (Interrupt). */ + 0x0008, /* wMaxPacketSize. */ + 0xFF), /* bInterval. */ + /* Interface Descriptor.*/ + USB_DESC_INTERFACE (0x01, /* bInterfaceNumber. */ + 0x00, /* bAlternateSetting. */ + 0x02, /* bNumEndpoints. */ + 0x0A, /* bInterfaceClass (Data Class + Interface, CDC section 4.5). */ + 0x00, /* bInterfaceSubClass (CDC section + 4.6). */ + 0x00, /* bInterfaceProtocol (CDC section + 4.7). */ + 0x00), /* iInterface. */ + /* Endpoint 3 Descriptor.*/ + USB_DESC_ENDPOINT (USB_CDC_DATA_AVAILABLE_EP, /* bEndpointAddress.*/ + 0x02, /* bmAttributes (Bulk). */ + 0x0040, /* wMaxPacketSize. */ + 0x00), /* bInterval. */ + /* Endpoint 1 Descriptor.*/ + USB_DESC_ENDPOINT (USB_CDC_DATA_REQUEST_EP|0x80, /* bEndpointAddress.*/ + 0x02, /* bmAttributes (Bulk). */ + 0x0040, /* wMaxPacketSize. */ + 0x00) /* bInterval. */ +}; + +/* + * Configuration Descriptor wrapper. + */ +static const USBDescriptor vcom_configuration_descriptor = { + sizeof vcom_configuration_descriptor_data, + vcom_configuration_descriptor_data +}; + +/* + * U.S. English language identifier. + */ +static const uint8_t vcom_string0[] = { + USB_DESC_BYTE(4), /* bLength. */ + USB_DESC_BYTE(USB_DESCRIPTOR_STRING), /* bDescriptorType. */ + USB_DESC_WORD(0x0409) /* wLANGID (U.S. English). */ +}; + +/* + * Vendor string. + */ +static const uint8_t vcom_string1[] = { + USB_DESC_BYTE(38), /* bLength. */ + USB_DESC_BYTE(USB_DESCRIPTOR_STRING), /* bDescriptorType. */ + 'S', 0, 'T', 0, 'M', 0, 'i', 0, 'c', 0, 'r', 0, 'o', 0, 'e', 0, + 'l', 0, 'e', 0, 'c', 0, 't', 0, 'r', 0, 'o', 0, 'n', 0, 'i', 0, + 'c', 0, 's', 0 +}; + +/* + * Device Description string. + */ +static const uint8_t vcom_string2[] = { + USB_DESC_BYTE(56), /* bLength. */ + USB_DESC_BYTE(USB_DESCRIPTOR_STRING), /* bDescriptorType. */ + 'C', 0, 'h', 0, 'i', 0, 'b', 0, 'i', 0, 'O', 0, 'S', 0, '/', 0, + 'R', 0, 'T', 0, ' ', 0, 'V', 0, 'i', 0, 'r', 0, 't', 0, 'u', 0, + 'a', 0, 'l', 0, ' ', 0, 'C', 0, 'O', 0, 'M', 0, ' ', 0, 'P', 0, + 'o', 0, 'r', 0, 't', 0 +}; + +/* + * Serial Number string. + */ +static const uint8_t vcom_string3[] = { + USB_DESC_BYTE(8), /* bLength. */ + USB_DESC_BYTE(USB_DESCRIPTOR_STRING), /* bDescriptorType. */ + '0' + CH_KERNEL_MAJOR, 0, + '0' + CH_KERNEL_MINOR, 0, + '0' + CH_KERNEL_PATCH, 0 +}; + +/* + * Strings wrappers array. + */ +static const USBDescriptor vcom_strings[] = { + {sizeof vcom_string0, vcom_string0}, + {sizeof vcom_string1, vcom_string1}, + {sizeof vcom_string2, vcom_string2}, + {sizeof vcom_string3, vcom_string3} +}; + +/* + * Handles the GET_DESCRIPTOR callback. All required descriptors must be + * handled here. + */ +static const USBDescriptor *get_descriptor(USBDriver *usbp, + uint8_t dtype, + uint8_t dindex, + uint16_t lang) { + + (void)usbp; + (void)lang; + switch (dtype) { + case USB_DESCRIPTOR_DEVICE: + return &vcom_device_descriptor; + case USB_DESCRIPTOR_CONFIGURATION: + return &vcom_configuration_descriptor; + case USB_DESCRIPTOR_STRING: + if (dindex < 4) + return &vcom_strings[dindex]; + } + return NULL; +} + +/** + * @brief IN EP1 state. + */ +static USBInEndpointState ep1instate; + +/** + * @brief OUT EP1 state. + */ +static USBOutEndpointState ep1outstate; + +/** + * @brief EP1 initialization structure (both IN and OUT). + */ +static const USBEndpointConfig ep1config = { + USB_EP_MODE_TYPE_BULK, + NULL, + sduDataTransmitted, + sduDataReceived, + 0x0040, + 0x0040, + &ep1instate, + &ep1outstate, + 2, + NULL +}; + +/** + * @brief IN EP2 state. + */ +static USBInEndpointState ep2instate; + +/** + * @brief EP2 initialization structure (IN only). + */ +static const USBEndpointConfig ep2config = { + USB_EP_MODE_TYPE_INTR, + NULL, + sduInterruptTransmitted, + NULL, + 0x0010, + 0x0000, + &ep2instate, + NULL, + 1, + NULL +}; + +/* + * Handles the USB driver global events. + */ +static void usb_event(USBDriver *usbp, usbevent_t event) { + + switch (event) { + case USB_EVENT_RESET: + return; + case USB_EVENT_ADDRESS: + return; + case USB_EVENT_CONFIGURED: + chSysLockFromIsr(); + + /* Enables the endpoints specified into the configuration. + Note, this callback is invoked from an ISR so I-Class functions + must be used.*/ + usbInitEndpointI(usbp, USB_CDC_DATA_REQUEST_EP, &ep1config); + usbInitEndpointI(usbp, USB_CDC_INTERRUPT_REQUEST_EP, &ep2config); + + /* Resetting the state of the CDC subsystem.*/ + sduConfigureHookI(usbp); + + chSysUnlockFromIsr(); + return; + case USB_EVENT_SUSPEND: + return; + case USB_EVENT_WAKEUP: + return; + case USB_EVENT_STALLED: + return; + } + return; +} + +/* + * USB driver configuration. + */ +static const USBConfig usbcfg = { + usb_event, + get_descriptor, + sduRequestsHook, + NULL +}; + +/* + * Serial over USB driver configuration. + */ +#if STM32_USB_USE_OTG2 +static const SerialUSBConfig serusbcfg = { + &USBD2 +}; +#else +static const SerialUSBConfig serusbcfg = { + &USBD1 +}; +#endif + + +/*===========================================================================*/ +/* Command line related. */ +/*===========================================================================*/ + +#define SHELL_WA_SIZE THD_WA_SIZE(2048) +#define TEST_WA_SIZE THD_WA_SIZE(256) + + + +static void cmd_mem(BaseSequentialStream *chp, int argc, char *argv[]) { + size_t n, size; + + (void)argv; + if (argc > 0) { + chprintf(chp, "Usage: mem\r\n"); + return; + } + n = chHeapStatus(NULL, &size); + chprintf(chp, "core free memory : %u bytes\r\n", chCoreStatus()); + chprintf(chp, "heap fragments : %u\r\n", n); + chprintf(chp, "heap free total : %u bytes\r\n", size); +} + +static void cmd_threads(BaseSequentialStream *chp, int argc, char *argv[]) { + static const char *states[] = {THD_STATE_NAMES}; + Thread *tp; + + (void)argv; + if (argc > 0) { + chprintf(chp, "Usage: threads\r\n"); + return; + } + chprintf(chp, " addr stack prio refs state time\r\n"); + tp = chRegFirstThread(); + do { + chprintf(chp, "%.8lx %.8lx %4lu %4lu %9s %lu\r\n", + (uint32_t)tp, (uint32_t)tp->p_ctx.r13, + (uint32_t)tp->p_prio, (uint32_t)(tp->p_refs - 1), + states[tp->p_state], (uint32_t)tp->p_time); + tp = chRegNextThread(tp); + } while (tp != NULL); +} + +static void cmd_test(BaseSequentialStream *chp, int argc, char *argv[]) { + Thread *tp; + + (void)argv; + if (argc > 0) { + chprintf(chp, "Usage: test\r\n"); + return; + } + tp = chThdCreateFromHeap(NULL, TEST_WA_SIZE, chThdGetPriority(), + TestThread, chp); + if (tp == NULL) { + chprintf(chp, "out of memory\r\n"); + return; + } + chThdWait(tp); +} + +static void cmd_tree(BaseSequentialStream *chp, int argc, char *argv[]) { + FRESULT err; + uint32_t clusters; + FATFS *fsp; + + (void)argv; + if (argc > 0) { + chprintf(chp, "Usage: tree\r\n"); + return; + } + if (!fs_ready) { + chprintf(chp, "File System not mounted\r\n"); + return; + } + err = f_getfree("/", &clusters, &fsp); + if (err != FR_OK) { + chprintf(chp, "FS: f_getfree() failed\r\n"); + return; + } + chprintf(chp, + "FS: %lu free clusters, %lu sectors per cluster, %lu bytes free\r\n", + clusters, (uint32_t)SDC_FS.csize, + clusters * (uint32_t)SDC_FS.csize * (uint32_t)MMCSD_BLOCK_SIZE); + fbuff[0] = 0; + scan_files(chp, (char *)fbuff); +} + +static const ShellCommand commands[] = { + {"mem", cmd_mem}, + {"threads", cmd_threads}, + {"test", cmd_test}, + {"tree", cmd_tree}, + {NULL, NULL} +}; + +static const ShellConfig shell_cfg1 = { + (BaseSequentialStream *)&SDU1, + commands +}; + + + +/*===========================================================================*/ +/* Main and generic code. */ +/*===========================================================================*/ + +/* + * Card insertion event. + */ +static void InsertHandler(eventid_t id) { + FRESULT err; + + (void)id; + /* + * On insertion SDC initialization and FS mount. + */ + if (sdcConnect(&SDCD1)) + return; + + err = f_mount(0, &SDC_FS); + if (err != FR_OK) { + sdcDisconnect(&SDCD1); + return; + } + fs_ready = TRUE; +} + +/* + * Card removal event. + */ +static void RemoveHandler(eventid_t id) { + + (void)id; + sdcDisconnect(&SDCD1); + fs_ready = FALSE; +} + +#endif + +/* + * Green LED blinker thread, times are in milliseconds. + */ +static WORKING_AREA(waThread1, 128); +static msg_t Thread1(void *arg) { + + (void)arg; + chRegSetThreadName("blinker"); + while (TRUE) { + palTogglePad(GPIOH, GPIOH_LED1); +#ifdef ENABLE_VCOM + chThdSleepMilliseconds(fs_ready ? 125 : 500); +#else + chThdSleepMilliseconds(500); +#endif + } +} + +int init_sd(void) { + BaseSequentialStream *chp = (BaseSequentialStream*)&SD2; + + // power cycle sd card + palSetPad(GPIOC, GPIOC_SDIO_POWER); + chThdSleepMilliseconds(1000); + // this is probably longer than needed + palClearPad(GPIOC, GPIOC_SDIO_POWER); + chThdSleepMilliseconds(100); + // let power stabilize + + // startup sdc driver + sdcStart(&SDCD1, NULL); + + if (sdcConnect(&SDCD1) == CH_FAILED) { + chprintf(chp, "sdcConnect FAILED\r\n"); + uint32_t errors = sdcGetAndClearErrors(&SDCD1); + chprintf(chp, "error flags %d\r\n", errors); + //FIXME: handle error + return(1); + } else { + chprintf(chp, "sdcConnect SUCCEEDED\r\n"); + } + + return(0); +} + +/* + * Application entry point. + */ +int main(void) { +#ifdef ENABLE_VCOM + static Thread *shelltp = NULL; + static const evhandler_t evhndl[] = { + InsertHandler, + RemoveHandler + }; + + struct EventListener el0, el1; +#endif + + /* + * System initializations. + * - HAL initialization, this also initializes the configured device drivers + * and performs the board-specific initializations. + * - Kernel initialization, the main() function becomes a thread and the + * RTOS is active. + */ + halInit(); + chSysInit(); + +#ifdef ENABLE_VCOM + /* + * Initializes a serial-over-USB CDC driver. + */ + sduObjectInit(&SDU1); + sduStart(&SDU1, &serusbcfg); + + /* + * Activates the USB driver and then the USB bus pull-up on D+. + * Note, a delay is inserted in order to not have to disconnect the cable + * after a reset. + */ + usbDisconnectBus(serusbcfg.usbp); + chThdSleepMilliseconds(100); + usbStart(serusbcfg.usbp, &usbcfg); + usbConnectBus(serusbcfg.usbp); + + /* + * Shell manager initialization. + */ + //shellInit(); +#endif + + /* + * Activates the serial driver 2 and SDC driver 1 using default + * configuration. + */ + sdStart(&SD2, NULL); + + BaseSequentialStream *chp = (BaseSequentialStream *)&SD2; + chprintf(chp, "running main()\r\n"); + chThdSleepMilliseconds(100); + + /* + * Activates the card insertion monitor. + */ +#ifdef ENABLE_VCOM + init_sd(); + tmr_init(&SDCD1); +#else + init_sd(); + //sdcStart(&SDCD1, NULL); + chprintf(chp, "done starting SDC\r\n"); + sdcConnect(&SDCD1); +#endif + + + +#ifndef ENABLE_VCOM + BaseBlockDevice *bbdp = (BaseBlockDevice*) &SDCD1; + chprintf(chp, "setting up MSD\r\n"); + USBMassStorageDriver UMSD1; +#if STM32_USB_USE_OTG2 + msdInit(&USBD2, bbdp, &UMSD1); +#else + msdInit(&USBD1, bbdp, &UMSD1); +#endif +#endif + + + + + /* + * Creates the blinker thread. + */ + chprintf(chp, "starting blinker thread\r\n"); + chThdCreateStatic(waThread1, sizeof(waThread1), NORMALPRIO, Thread1, NULL); + +#ifdef ENABLE_VCOM + chThdCreateStatic(WA_sdcard_thread, sizeof(WA_sdcard_thread), NORMALPRIO, sdcard_thread_sdio_test, NULL); + while (TRUE) { + chThdSleepMilliseconds(100); + } +#endif + + + + + + +#ifdef ENABLE_VCOM + /* + * Normal main() thread activity, in this demo it does nothing except + * sleeping in a loop and listen for events. + */ + chEvtRegister(&inserted_event, &el0, 0); + chEvtRegister(&removed_event, &el1, 1); + + + while (TRUE) { + if (!shelltp && (SDU1.config->usbp->state == USB_ACTIVE)) + shelltp = shellCreate(&shell_cfg1, SHELL_WA_SIZE, NORMALPRIO); + else if (chThdTerminated(shelltp)) { + chThdRelease(shelltp); /* Recovers memory of the previous shell. */ + shelltp = NULL; /* Triggers spawning of a new shell. */ + } + if (palReadPad(GPIOA, GPIOA_WAKE_BUTTON) != 0) { + } + chEvtDispatch(evhndl, chEvtWaitOneTimeout(ALL_EVENTS, MS2ST(500))); + } +#else + while (TRUE) { + chThdSleepMilliseconds(100); + } +#endif +} diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/mcuconf.h b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/mcuconf.h new file mode 100644 index 0000000000..64db49f80f --- /dev/null +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/mcuconf.h @@ -0,0 +1,282 @@ +/* + ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, + 2011,2012,2013 Giovanni Di Sirio. + + This file is part of ChibiOS/RT. + + ChibiOS/RT is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + ChibiOS/RT is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +/* + * STM32F4xx drivers configuration. + * The following settings override the default settings present in + * the various device driver implementation headers. + * Note that the settings for each driver only have effect if the whole + * driver is enabled in halconf.h. + * + * IRQ priorities: + * 15...0 Lowest...Highest. + * + * DMA priorities: + * 0...3 Lowest...Highest. + */ + +#define STM32F4xx_MCUCONF + +/* + * HAL driver system settings. + */ +#define STM32_NO_INIT FALSE +#define STM32_HSI_ENABLED TRUE +#define STM32_LSI_ENABLED TRUE +#define STM32_HSE_ENABLED TRUE +#define STM32_LSE_ENABLED FALSE +#define STM32_CLOCK48_REQUIRED TRUE +#define STM32_SW STM32_SW_PLL +#define STM32_PLLSRC STM32_PLLSRC_HSE +#define STM32_PLLM_VALUE 8 +#define STM32_PLLN_VALUE 336 +#define STM32_PLLP_VALUE 2 +#define STM32_PLLQ_VALUE 7 +#define STM32_HPRE STM32_HPRE_DIV1 +#define STM32_PPRE1 STM32_PPRE1_DIV4 +#define STM32_PPRE2 STM32_PPRE2_DIV2 +#define STM32_RTCSEL STM32_RTCSEL_LSI +#define STM32_RTCPRE_VALUE 8 +#define STM32_MCO1SEL STM32_MCO1SEL_HSI +#define STM32_MCO1PRE STM32_MCO1PRE_DIV1 +#define STM32_MCO2SEL STM32_MCO2SEL_SYSCLK +#define STM32_MCO2PRE STM32_MCO2PRE_DIV5 +#define STM32_I2SSRC STM32_I2SSRC_CKIN +#define STM32_PLLI2SN_VALUE 192 +#define STM32_PLLI2SR_VALUE 5 +#define STM32_VOS STM32_VOS_HIGH +#define STM32_PVD_ENABLE FALSE +#define STM32_PLS STM32_PLS_LEV0 + +/* + * ADC driver system settings. + */ +#define STM32_ADC_ADCPRE ADC_CCR_ADCPRE_DIV4 +#define STM32_ADC_USE_ADC1 FALSE +#define STM32_ADC_USE_ADC2 FALSE +#define STM32_ADC_USE_ADC3 FALSE +#define STM32_ADC_ADC1_DMA_STREAM STM32_DMA_STREAM_ID(2, 4) +#define STM32_ADC_ADC2_DMA_STREAM STM32_DMA_STREAM_ID(2, 2) +#define STM32_ADC_ADC3_DMA_STREAM STM32_DMA_STREAM_ID(2, 1) +#define STM32_ADC_ADC1_DMA_PRIORITY 2 +#define STM32_ADC_ADC2_DMA_PRIORITY 2 +#define STM32_ADC_ADC3_DMA_PRIORITY 2 +#define STM32_ADC_IRQ_PRIORITY 6 +#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 6 +#define STM32_ADC_ADC2_DMA_IRQ_PRIORITY 6 +#define STM32_ADC_ADC3_DMA_IRQ_PRIORITY 6 + +/* + * CAN driver system settings. + */ +#define STM32_CAN_USE_CAN1 FALSE +#define STM32_CAN_USE_CAN2 FALSE +#define STM32_CAN_CAN1_IRQ_PRIORITY 11 +#define STM32_CAN_CAN2_IRQ_PRIORITY 11 + +/* + * EXT driver system settings. + */ +#define STM32_EXT_EXTI0_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI1_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI2_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI3_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI4_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI5_9_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI10_15_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI16_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI17_IRQ_PRIORITY 15 +#define STM32_EXT_EXTI18_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI19_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI20_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI21_IRQ_PRIORITY 15 +#define STM32_EXT_EXTI22_IRQ_PRIORITY 15 + +/* + * GPT driver system settings. + */ +#define STM32_GPT_USE_TIM1 FALSE +#define STM32_GPT_USE_TIM2 FALSE +#define STM32_GPT_USE_TIM3 FALSE +#define STM32_GPT_USE_TIM4 FALSE +#define STM32_GPT_USE_TIM5 FALSE +#define STM32_GPT_USE_TIM8 FALSE +#define STM32_GPT_TIM1_IRQ_PRIORITY 7 +#define STM32_GPT_TIM2_IRQ_PRIORITY 7 +#define STM32_GPT_TIM3_IRQ_PRIORITY 7 +#define STM32_GPT_TIM4_IRQ_PRIORITY 7 +#define STM32_GPT_TIM5_IRQ_PRIORITY 7 +#define STM32_GPT_TIM8_IRQ_PRIORITY 7 + +/* + * I2C driver system settings. + */ +#define STM32_I2C_USE_I2C1 FALSE +#define STM32_I2C_USE_I2C2 FALSE +#define STM32_I2C_USE_I2C3 FALSE +#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0) +#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6) +#define STM32_I2C_I2C2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 2) +#define STM32_I2C_I2C2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7) +#define STM32_I2C_I2C3_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 2) +#define STM32_I2C_I2C3_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4) +#define STM32_I2C_I2C1_IRQ_PRIORITY 5 +#define STM32_I2C_I2C2_IRQ_PRIORITY 5 +#define STM32_I2C_I2C3_IRQ_PRIORITY 5 +#define STM32_I2C_I2C1_DMA_PRIORITY 3 +#define STM32_I2C_I2C2_DMA_PRIORITY 3 +#define STM32_I2C_I2C3_DMA_PRIORITY 3 +#define STM32_I2C_I2C1_DMA_ERROR_HOOK() chSysHalt() +#define STM32_I2C_I2C2_DMA_ERROR_HOOK() chSysHalt() +#define STM32_I2C_I2C3_DMA_ERROR_HOOK() chSysHalt() + +/* + * ICU driver system settings. + */ +#define STM32_ICU_USE_TIM1 FALSE +#define STM32_ICU_USE_TIM2 FALSE +#define STM32_ICU_USE_TIM3 FALSE +#define STM32_ICU_USE_TIM4 FALSE +#define STM32_ICU_USE_TIM5 FALSE +#define STM32_ICU_USE_TIM8 FALSE +#define STM32_ICU_TIM1_IRQ_PRIORITY 7 +#define STM32_ICU_TIM2_IRQ_PRIORITY 7 +#define STM32_ICU_TIM3_IRQ_PRIORITY 7 +#define STM32_ICU_TIM4_IRQ_PRIORITY 7 +#define STM32_ICU_TIM5_IRQ_PRIORITY 7 +#define STM32_ICU_TIM8_IRQ_PRIORITY 7 + +/* + * MAC driver system settings. + */ +#define STM32_MAC_TRANSMIT_BUFFERS 2 +#define STM32_MAC_RECEIVE_BUFFERS 4 +#define STM32_MAC_BUFFERS_SIZE 1522 +#define STM32_MAC_PHY_TIMEOUT 100 +#define STM32_MAC_ETH1_CHANGE_PHY_STATE TRUE +#define STM32_MAC_ETH1_IRQ_PRIORITY 13 +#define STM32_MAC_IP_CHECKSUM_OFFLOAD 0 + +/* + * MAC driver system settings. + */ +#define STM32_MAC_TRANSMIT_BUFFERS 2 +#define STM32_MAC_RECEIVE_BUFFERS 4 +#define STM32_MAC_BUFFERS_SIZE 1522 +#define STM32_MAC_PHY_TIMEOUT 100 +#define STM32_MAC_ETH1_CHANGE_PHY_STATE TRUE +#define STM32_MAC_ETH1_IRQ_PRIORITY 13 +#define STM32_MAC_IP_CHECKSUM_OFFLOAD 0 + +/* + * PWM driver system settings. + */ +#define STM32_PWM_USE_ADVANCED FALSE +#define STM32_PWM_USE_TIM1 FALSE +#define STM32_PWM_USE_TIM2 FALSE +#define STM32_PWM_USE_TIM3 FALSE +#define STM32_PWM_USE_TIM4 FALSE +#define STM32_PWM_USE_TIM5 FALSE +#define STM32_PWM_USE_TIM8 FALSE +#define STM32_PWM_TIM1_IRQ_PRIORITY 7 +#define STM32_PWM_TIM2_IRQ_PRIORITY 7 +#define STM32_PWM_TIM3_IRQ_PRIORITY 7 +#define STM32_PWM_TIM4_IRQ_PRIORITY 7 +#define STM32_PWM_TIM5_IRQ_PRIORITY 7 +#define STM32_PWM_TIM8_IRQ_PRIORITY 7 + +/* + * SERIAL driver system settings. + */ +#define STM32_SERIAL_USE_USART1 FALSE +#define STM32_SERIAL_USE_USART2 TRUE +#define STM32_SERIAL_USE_USART3 FALSE +#define STM32_SERIAL_USE_UART4 FALSE +#define STM32_SERIAL_USE_UART5 FALSE +#define STM32_SERIAL_USE_USART6 FALSE +#define STM32_SERIAL_USART1_PRIORITY 12 +#define STM32_SERIAL_USART2_PRIORITY 12 +#define STM32_SERIAL_USART3_PRIORITY 12 +#define STM32_SERIAL_UART4_PRIORITY 12 +#define STM32_SERIAL_UART5_PRIORITY 12 +#define STM32_SERIAL_USART6_PRIORITY 12 + +/* + * SPI driver system settings. + */ +#define STM32_SPI_USE_SPI1 FALSE +#define STM32_SPI_USE_SPI2 FALSE +#define STM32_SPI_USE_SPI3 FALSE +#define STM32_SPI_SPI1_RX_DMA_STREAM STM32_DMA_STREAM_ID(2, 0) +#define STM32_SPI_SPI1_TX_DMA_STREAM STM32_DMA_STREAM_ID(2, 3) +#define STM32_SPI_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 3) +#define STM32_SPI_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4) +#define STM32_SPI_SPI3_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0) +#define STM32_SPI_SPI3_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7) +#define STM32_SPI_SPI1_DMA_PRIORITY 1 +#define STM32_SPI_SPI2_DMA_PRIORITY 1 +#define STM32_SPI_SPI3_DMA_PRIORITY 1 +#define STM32_SPI_SPI1_IRQ_PRIORITY 10 +#define STM32_SPI_SPI2_IRQ_PRIORITY 10 +#define STM32_SPI_SPI3_IRQ_PRIORITY 10 +#define STM32_SPI_DMA_ERROR_HOOK(spip) chSysHalt() + +/* + * UART driver system settings. + */ +#define STM32_UART_USE_USART1 FALSE +#define STM32_UART_USE_USART2 FALSE +#define STM32_UART_USE_USART3 FALSE +#define STM32_UART_USE_USART6 FALSE +#define STM32_UART_USART1_RX_DMA_STREAM STM32_DMA_STREAM_ID(2, 5) +#define STM32_UART_USART1_TX_DMA_STREAM STM32_DMA_STREAM_ID(2, 7) +#define STM32_UART_USART2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5) +#define STM32_UART_USART2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6) +#define STM32_UART_USART3_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 1) +#define STM32_UART_USART3_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 3) +#define STM32_UART_USART6_RX_DMA_STREAM STM32_DMA_STREAM_ID(2, 2) +#define STM32_UART_USART6_TX_DMA_STREAM STM32_DMA_STREAM_ID(2, 7) +#define STM32_UART_USART1_IRQ_PRIORITY 12 +#define STM32_UART_USART2_IRQ_PRIORITY 12 +#define STM32_UART_USART3_IRQ_PRIORITY 12 +#define STM32_UART_USART6_IRQ_PRIORITY 12 +#define STM32_UART_USART1_DMA_PRIORITY 0 +#define STM32_UART_USART2_DMA_PRIORITY 0 +#define STM32_UART_USART3_DMA_PRIORITY 0 +#define STM32_UART_USART6_DMA_PRIORITY 0 +#define STM32_UART_DMA_ERROR_HOOK(uartp) chSysHalt() + +/* + * USB driver system settings. + */ +#define STM32_USB_USE_OTG1 FALSE +#define STM32_USB_USE_OTG2 TRUE +#define STM32_USE_USB_OTG2_ULPI TRUE +#define STM32_USE_USB_OTG2_HS TRUE +#define STM32_USE_USB_OTG2_HS_FS FALSE +#define STM32_USB_OTG1_IRQ_PRIORITY 14 +#define STM32_USB_OTG2_IRQ_PRIORITY 14 +#define STM32_USB_OTG1_RX_FIFO_SIZE 512 +#define STM32_USB_OTG2_RX_FIFO_SIZE 1024 +#define STM32_USB_OTG_THREAD_PRIO LOWPRIO +#define STM32_USB_OTG_THREAD_STACK_SIZE 128 +#define STM32_USB_OTGFIFO_FILL_BASEPRI 0 + + diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/readme.txt b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/readme.txt new file mode 100644 index 0000000000..f7cc4c9422 --- /dev/null +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/readme.txt @@ -0,0 +1,30 @@ +***************************************************************************** +** ChibiOS/RT port for ARM-Cortex-M4 STM32F407. ** +***************************************************************************** + +** TARGET ** + +The demo runs on an Olimex STM32-E407 board. + +** The Demo ** + +The demo currently just flashes a LED using a thread and serves HTTP requests +at address 192.168.1.20 on port 80. +FatFs integrated using SDIO. +The USB-FS port is used as USB-CDC and a command shell is ready to accepts +commands there. + +** Build Procedure ** + +The demo has been tested by using the free Codesourcery GCC-based toolchain +and YAGARTO. +Just modify the TRGT line in the makefile in order to use different GCC ports. + +** Notes ** + +Some files used by the demo are not part of ChibiOS/RT but are copyright of +ST Microelectronics and are licensed under a different license. +Also note that not all the files present in the ST library are distributed +with ChibiOS/RT, you can find the whole library on the ST web site: + + http://www.st.com diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.c new file mode 100644 index 0000000000..702bb5dbd6 --- /dev/null +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.c @@ -0,0 +1,924 @@ +#include "ch.h" +#include "hal.h" +#include "usb_msd.h" + +static BaseSequentialStream *chp = (BaseSequentialStream *)&SD2; + +static WORKING_AREA(waMassStorage, 1024); +static WORKING_AREA(waMassStorageUSBTransfer, 1024); + +static msg_t MassStorageUSBTransferThd(void *arg); +static msg_t MassStorageThd(void *arg); +static void WaitForISR(USBMassStorageDriver *msdp); +static Thread *msdThd = NULL; +static Thread *msdUSBTransferThd = NULL; +static volatile uint32_t trigger_transfer_index = UINT32_MAX; + +#define BLOCK_SIZE_INCREMENT 512 +#define BLOCK_WRITE_ITTERATION_COUNT 32 + +static uint8_t rw_buf[2][BLOCK_SIZE_INCREMENT]; + +typedef struct { + uint8_t is_transfer_done; + int num_blocks_to_write; + int max_blocks_to_read;//could be negative + uint8_t buf[(BLOCK_SIZE_INCREMENT * BLOCK_WRITE_ITTERATION_COUNT)]; +} rw_usb_sd_buffer_t; + +static volatile rw_usb_sd_buffer_t rw_ping_pong_buffer[2]; + +inline uint32_t swap_uint32( uint32_t val ) { + val = ((val << 8) & 0xFF00FF00 ) | ((val >> 8) & 0xFF00FF ); + return ((val << 16) & 0xFFFF0000) | ((val >> 16) & 0x0000FFFF); +} + +#define swap_uint16(x) ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8)) + +#if !defined(MSD_RW_LED_ON) +#define MSD_RW_LED_ON() +#endif + +#if !defined(MSD_RW_LED_OFF) +#define MSD_RW_LED_OFF() +#endif + + + + + + +/*===========================================================================*/ +/* USB related stuff. */ +/*===========================================================================*/ + +/* + * USB Device Descriptor. + */ +static const uint8_t msd_device_descriptor_data[18] = { + USB_DESC_DEVICE (0x0200, /* bcdUSB (2.0). */ + 0x00, /* bDeviceClass (None). */ + 0x00, /* bDeviceSubClass. */ + 0x00, /* bDeviceProtocol. */ + 0x40, /* Control Endpoint Size. */ + 0x0483, /* idVendor (ST). */ + 0x5742, /* idProduct. */ + 0x0100, /* bcdDevice. */ + 1, /* iManufacturer. */ + 2, /* iProduct. */ + 3, /* iSerialNumber. */ + 1) /* bNumConfigurations. */ +}; + +/* + * Device Descriptor wrapper. + */ +static const USBDescriptor msd_device_descriptor = { + sizeof msd_device_descriptor_data, + msd_device_descriptor_data +}; + +/* Configuration Descriptor tree for a CDC.*/ +static const uint8_t msd_configuration_descriptor_data[] = { + /* Configuration Descriptor.*/ + USB_DESC_CONFIGURATION(0x0020, /* wTotalLength. */ + 0x01, /* bNumInterfaces. */ + 0x01, /* bConfigurationValue. */ + 0, /* iConfiguration. */ + 0xC0, /* bmAttributes (self powered). */ + 0x32), /* bMaxPower (100mA). */ + /* Interface Descriptor.*/ + USB_DESC_INTERFACE (0x00, /* bInterfaceNumber. */ + 0x00, /* bAlternateSetting. */ + 0x02, /* bNumEndpoints. */ + 0x08, /* bInterfaceClass (Mass Storage) */ + 0x06, /* bInterfaceSubClass (SCSI + Transparent storage class) */ + 0x50, /* bInterfaceProtocol (Bulk Only) */ + 0), /* iInterface. (none) */ + /* Mass Storage Data In Endpoint Descriptor.*/ + USB_DESC_ENDPOINT (USB_MS_DATA_EP|0x80, + 0x02, /* bmAttributes (Bulk). */ + USB_MS_EP_SIZE,/* wMaxPacketSize. */ + 0x05), /* bInterval. 1ms */ + /* Mass Storage Data In Endpoint Descriptor.*/ + USB_DESC_ENDPOINT (USB_MS_DATA_EP, + 0x02, /* bmAttributes (Bulk). */ + USB_MS_EP_SIZE,/* wMaxPacketSize. */ + 0x05) /* bInterval. 1ms */ +}; + +/* + * Configuration Descriptor wrapper. + */ +static const USBDescriptor msd_configuration_descriptor = { + sizeof msd_configuration_descriptor_data, + msd_configuration_descriptor_data +}; + +/* + * U.S. English language identifier. + */ +static const uint8_t msd_string0[] = { + USB_DESC_BYTE(4), /* bLength. */ + USB_DESC_BYTE(USB_DESCRIPTOR_STRING), /* bDescriptorType. */ + USB_DESC_WORD(0x0409) /* wLANGID (U.S. English). */ +}; + +/* + * Vendor string. + */ +static const uint8_t msd_string1[] = { + USB_DESC_BYTE(38), /* bLength. */ + USB_DESC_BYTE(USB_DESCRIPTOR_STRING), /* bDescriptorType. */ + 'S', 0, 'T', 0, 'M', 0, 'i', 0, 'c', 0, 'r', 0, 'o', 0, 'e', 0, + 'l', 0, 'e', 0, 'c', 0, 't', 0, 'r', 0, 'o', 0, 'n', 0, 'i', 0, + 'c', 0, 's', 0 +}; + +/* + * Device Description string. + */ +static const uint8_t msd_string2[] = { + USB_DESC_BYTE(62), /* bLength. */ + USB_DESC_BYTE(USB_DESCRIPTOR_STRING), /* bDescriptorType. */ + 'C', 0, 'h', 0, 'i', 0, 'b', 0, 'i', 0, 'O', 0, 'S', 0, '/', 0, + 'R', 0, 'T', 0, ' ', 0, 'M', 0, 'a', 0, 's', 0, 's', 0, ' ', 0, + 'S', 0, 't', 0, 'o', 0, 'r', 0, 'a', 0, 'g', 0, 'e', 0, ' ', 0, + 'D', 0, 'e', 0, 'v', 0, 'i', 0, 'c', 0, 'e' +}; + +static const uint8_t msd_string3[] = { + USB_DESC_BYTE(26), /* bLength. */ + USB_DESC_BYTE(USB_DESCRIPTOR_STRING), /* bDescriptorType. */ + 'A', 0, 'E', 0, 'C', 0, 'C', 0, 'E', 0, 'C', 0, 'C', 0, 'C', 0, 'C', 0, + '0' + CH_KERNEL_MAJOR, 0, + '0' + CH_KERNEL_MINOR, 0, + '0' + CH_KERNEL_PATCH, 0 +}; + +/* + * Strings wrappers array. + */ +static const USBDescriptor msd_strings[] = { + {sizeof msd_string0, msd_string0}, + {sizeof msd_string1, msd_string1}, + {sizeof msd_string2, msd_string2}, + {sizeof msd_string3, msd_string3} +}; + +/* + * Handles the GET_DESCRIPTOR callback. All required descriptors must be + * handled here. + */ +static const USBDescriptor *get_descriptor(USBDriver *usbp, + uint8_t dtype, + uint8_t dindex, + uint16_t lang) { + + (void)usbp; + (void)lang; + switch (dtype) { + case USB_DESCRIPTOR_DEVICE: + return &msd_device_descriptor; + case USB_DESCRIPTOR_CONFIGURATION: + return &msd_configuration_descriptor; + case USB_DESCRIPTOR_STRING: + if (dindex < 4) + return &msd_strings[dindex]; + } + return NULL; +} + +/** + * @brief Default requests hook. + * + * @param[in] usbp pointer to the @p USBDriver object + * @return The hook status. + * @retval TRUE Message handled internally. + * @retval FALSE Message not handled. + */ +bool_t msdRequestsHook(USBDriver *usbp) { + + if (((usbp->setup[0] & USB_RTYPE_TYPE_MASK) == USB_RTYPE_TYPE_CLASS) && + ((usbp->setup[0] & USB_RTYPE_RECIPIENT_MASK) == USB_RTYPE_RECIPIENT_INTERFACE)) { + /* check that the request is for interface 0.*/ + if(MSD_SETUP_INDEX(usbp->setup) != 0) + return FALSE; + + /* act depending on bRequest = setup[1] */ + switch(usbp->setup[1]) { + case MSD_REQ_RESET: + /* check that it is a HOST2DEV request */ + if(((usbp->setup[0] & USB_RTYPE_DIR_MASK) != USB_RTYPE_DIR_HOST2DEV) || + (MSD_SETUP_LENGTH(usbp->setup) != 0) || + (MSD_SETUP_VALUE(usbp->setup) != 0)) + return FALSE; + + /* reset all endpoints */ + /* TODO!*/ + /* The device shall NAK the status stage of the device request until + * the Bulk-Only Mass Storage Reset is complete. + */ + return TRUE; + case MSD_GET_MAX_LUN: + /* check that it is a DEV2HOST request */ + if(((usbp->setup[0] & USB_RTYPE_DIR_MASK) != USB_RTYPE_DIR_DEV2HOST) || + (MSD_SETUP_LENGTH(usbp->setup) != 1) || + (MSD_SETUP_VALUE(usbp->setup) != 0)) + return FALSE; + + static uint8_t len_buf[1] = {0}; + /* stall to indicate that we don't support LUN */ + usbSetupTransfer(usbp, len_buf, 1, NULL); + return TRUE; + default: + return FALSE; + break; + } + } + return FALSE; +} + +static void WaitForISR(USBMassStorageDriver *msdp) { + /* sleep until it completes */ + chSysLock(); + chBSemWaitS(&msdp->bsem); + chSysUnlock(); +} + +void msdUsbEvent(USBDriver *usbp, usbep_t ep) { + (void)usbp; + (void)ep; + + chSysLockFromIsr(); + chBSemSignalI(&((USBMassStorageDriver *)usbp->param)->bsem); + chSysUnlockFromIsr(); +} + +/** + * @brief IN EP1 state. + */ +static USBInEndpointState ep1InState; +static USBOutEndpointState ep1OutState; + +/** + * @brief EP1 initialization structure (IN only). + */ +static const USBEndpointConfig epDataConfig = { + USB_EP_MODE_TYPE_BULK, + NULL, + msdUsbEvent, + msdUsbEvent, + USB_MS_EP_SIZE, + USB_MS_EP_SIZE, + &ep1InState, + &ep1OutState, + 1, + NULL +}; + +/* + * Handles the USB driver global events. + */ +static void usb_event(USBDriver *usbp, usbevent_t event) { + USBMassStorageDriver *msdp = (USBMassStorageDriver *)usbp->param; + switch (event) { + case USB_EVENT_RESET: + return; + case USB_EVENT_ADDRESS: + return; + case USB_EVENT_CONFIGURED: + chSysLockFromIsr(); + usbInitEndpointI(usbp, USB_MS_DATA_EP, &epDataConfig); + /* initialise the thread */ + chBSemSignalI(&msdp->bsem); + + /* signal that the device is connected */ + chEvtBroadcastI(&msdp->evt_connected); + chSysUnlockFromIsr(); + + return; + case USB_EVENT_SUSPEND: + return; + case USB_EVENT_WAKEUP: + return; + case USB_EVENT_STALLED: + return; + } + return; +} + +static const USBConfig msd_usb_config = { + usb_event, + get_descriptor, + msdRequestsHook, + NULL +}; + +static inline void SCSISetSense(USBMassStorageDriver *msdp, uint8_t key, uint8_t acode, uint8_t aqual) { + msdp->sense.byte[2] = key; + msdp->sense.byte[12] = acode; + msdp->sense.byte[13] = aqual; +} + +bool_t SCSICommandInquiry(USBMassStorageDriver *msdp) { + msd_cbw_t *cbw = &(msdp->cbw); + + static const scsi_inquiry_response_t inquiry = { + 0x00, // direct access block device + 0x80, // removable + 0x04, // SPC-2 + 0x02, // response data format + 0x20, // response has 0x20 + 4 bytes + 0x00, + 0x00, + 0x00, + "Chibios", + "Mass Storage", + {'v',CH_KERNEL_MAJOR+'0','.',CH_KERNEL_MINOR+'0'}, + }; + + if((cbw->scsi_cmd_data[1] & ((1 << 0) | (1 << 1))) || + cbw->scsi_cmd_data[2]) { + /* Optional but unsupported bits set - update the SENSE key and fail the request */ + SCSISetSense( msdp, + SCSI_SENSE_KEY_ILLEGAL_REQUEST, + SCSI_ASENSE_INVALID_FIELD_IN_CDB, + SCSI_ASENSEQ_NO_QUALIFIER); + + return FALSE; + } + + usbPrepareTransmit(msdp->usbp, USB_MS_DATA_EP, (uint8_t *)&inquiry, + sizeof(scsi_inquiry_response_t)); + + chSysLock(); + usbStartTransmitI(msdp->usbp, USB_MS_DATA_EP); + chSysUnlock(); + + msdp->result = TRUE; + + /* wait for ISR */ + return TRUE; +} + +bool_t SCSICommandRequestSense(USBMassStorageDriver *msdp) { + usbPrepareTransmit(msdp->usbp, USB_MS_DATA_EP, (uint8_t *)&msdp->sense, + sizeof(scsi_sense_response_t)); + + chSysLock(); + usbStartTransmitI(msdp->usbp, USB_MS_DATA_EP); + chSysUnlock(); + + msdp->result = TRUE; + + /* wait for ISR */ + return TRUE; +} + +bool_t SCSICommandReadCapacity10(USBMassStorageDriver *msdp) { + static SCSIReadCapacity10Response_t response; + + response.block_size = swap_uint32(msdp->block_dev_info.blk_size); + response.last_block_addr = swap_uint32(msdp->block_dev_info.blk_num-1); + + usbPrepareTransmit(msdp->usbp, USB_MS_DATA_EP, (uint8_t *)&response, + sizeof(SCSIReadCapacity10Response_t)); + + chSysLock(); + usbStartTransmitI(msdp->usbp, USB_MS_DATA_EP); + chSysUnlock(); + + msdp->result = TRUE; + + /* wait for ISR */ + return TRUE; +} + +bool_t SCSICommandSendDiagnostic(USBMassStorageDriver *msdp) { + msd_cbw_t *cbw = &(msdp->cbw); + + if(!cbw->scsi_cmd_data[1] & (1 << 2)) { + /* Only self-test supported - update SENSE key and fail the command */ + SCSISetSense( msdp, + SCSI_SENSE_KEY_ILLEGAL_REQUEST, + SCSI_ASENSE_INVALID_FIELD_IN_CDB, + SCSI_ASENSEQ_NO_QUALIFIER); + + return FALSE; + } + + /* TODO: actually perform the test */ + msdp->result = TRUE; + + /* don't wait for ISR */ + return FALSE; +} + +void SCSIWriteTransferPingPong(USBMassStorageDriver *msdp, rw_usb_sd_buffer_t *dest_buffer) { + int cnt; + dest_buffer->is_transfer_done = FALSE; + dest_buffer->num_blocks_to_write = 0; + + palSetPad(GPIOH, GPIOH_LED2); + for(cnt = 0; cnt < BLOCK_WRITE_ITTERATION_COUNT && cnt < dest_buffer->max_blocks_to_read; cnt++ ) { + usbPrepareReceive(msdp->usbp, USB_MS_DATA_EP, &dest_buffer->buf[cnt * BLOCK_SIZE_INCREMENT], (msdp->block_dev_info.blk_size)); + + chSysLock(); + usbStartReceiveI(msdp->usbp, USB_MS_DATA_EP); + chSysUnlock(); + + WaitForISR(msdp); + dest_buffer->num_blocks_to_write++; + } + dest_buffer->is_transfer_done = TRUE; + palClearPad(GPIOH, GPIOH_LED2); +} + +static void WaitForUSBTransferComplete(USBMassStorageDriver *msdp, const int ping_pong_buffer_index) { + while(TRUE) { + const msg_t m = chBSemWaitTimeout(&msdp->mass_sorage_thd_bsem, MS2ST(1)); + + if( rw_ping_pong_buffer[ping_pong_buffer_index].is_transfer_done ) { + break; + } else { + chThdSleepMilliseconds(1); + } + } +} + +bool_t SCSICommandStartReadWrite10(USBMassStorageDriver *msdp) { + msd_cbw_t *cbw = &(msdp->cbw); + bool_t data_cached = FALSE; + int read_success; + int retry_count; + + if((cbw->scsi_cmd_data[0] == SCSI_CMD_WRITE_10) && + blkIsWriteProtected(msdp->bbdp)) { + /* device is write protected and a write has been issued */ + /* Block address is invalid, update SENSE key and return command fail */ + SCSISetSense( msdp, + SCSI_SENSE_KEY_DATA_PROTECT, + SCSI_ASENSE_WRITE_PROTECTED, + SCSI_ASENSEQ_NO_QUALIFIER); + msdp->result = FALSE; + return FALSE; + } + + uint32_t rw_block_address = swap_uint32(*(uint32_t *)&cbw->scsi_cmd_data[2]); + const uint16_t total_blocks = swap_uint16(*(uint16_t *)&cbw->scsi_cmd_data[7]); + uint16_t i = 0; + + if(rw_block_address >= msdp->block_dev_info.blk_num) { + /* Block address is invalid, update SENSE key and return command fail */ + SCSISetSense( msdp, + SCSI_SENSE_KEY_DATA_PROTECT, + SCSI_ASENSE_WRITE_PROTECTED, + SCSI_ASENSEQ_NO_QUALIFIER); + msdp->result = FALSE; + + /* don't wait for ISR */ + return FALSE; + } + + for(i = 0; i < 2; i++ ) { + //initialized ping pong buffer + rw_ping_pong_buffer[i].max_blocks_to_read = 0; + rw_ping_pong_buffer[i].num_blocks_to_write = 0; + rw_ping_pong_buffer[i].is_transfer_done = FALSE; + } + + + if(cbw->scsi_cmd_data[0] == SCSI_CMD_WRITE_10) { + /* loop over each block */ + + int ping_pong_buffer_index = 0; + //initiate a transfer + rw_ping_pong_buffer[ping_pong_buffer_index].is_transfer_done = FALSE; + rw_ping_pong_buffer[ping_pong_buffer_index].max_blocks_to_read = total_blocks; + trigger_transfer_index = ping_pong_buffer_index;//Trigger the transfer in the other thread + + //wake other thread on semaphore to trigger the transfer + chBSemSignal(&msdp->usb_transfer_thread_bsem); + + WaitForUSBTransferComplete(msdp, ping_pong_buffer_index); + + for(i = 0; i < total_blocks; ) { + const int done_buffer_index = ping_pong_buffer_index; + const int empty_buffer_index = ((ping_pong_buffer_index + 1) % 2); + + //initiate another transfer in the other ping pong buffer + int queue_another_transfer = FALSE; + if( (i + BLOCK_WRITE_ITTERATION_COUNT) < total_blocks ) { + queue_another_transfer = TRUE; + } + + if( queue_another_transfer ) { + while( TRUE ) { + if(trigger_transfer_index == UINT32_MAX) { + rw_ping_pong_buffer[empty_buffer_index].max_blocks_to_read = total_blocks - i - BLOCK_WRITE_ITTERATION_COUNT; + + trigger_transfer_index = empty_buffer_index; + + //wake other thread on semaphore to trigger the transfer + chBSemSignal(&msdp->usb_transfer_thread_bsem); + break; + } else { + chThdSleepMilliseconds(1); + } + } + } + + + + /* now write the block to the block device */ + if( rw_ping_pong_buffer[done_buffer_index].num_blocks_to_write <= 0 ) { + chprintf(chp, "\r\nCant write 0 blocks, this should not happen, halting\r\n"); + chThdSleepMilliseconds(50); + chSysHalt(); + } + + if(blkWrite(msdp->bbdp, rw_block_address, rw_ping_pong_buffer[done_buffer_index].buf, + rw_ping_pong_buffer[done_buffer_index].num_blocks_to_write) == CH_FAILED) { + /* TODO: handle this */ + chprintf(chp, "\r\nSD Block Write Error, halting\r\n"); + chThdSleepMilliseconds(50); + chSysHalt(); + } + rw_block_address += rw_ping_pong_buffer[done_buffer_index].num_blocks_to_write; + i += rw_ping_pong_buffer[done_buffer_index].num_blocks_to_write; + rw_ping_pong_buffer[done_buffer_index].is_transfer_done = FALSE; + rw_ping_pong_buffer[done_buffer_index].num_blocks_to_write = 0; + + + if( queue_another_transfer ) { + WaitForUSBTransferComplete(msdp, empty_buffer_index); + } + + //Swap the ping pong buffers + ping_pong_buffer_index = empty_buffer_index; + } + + } else { + i = 0; + /* read the first block from block device */ + read_success = FALSE; + for(retry_count = 0; retry_count < 3; retry_count++ ) { + if(blkRead(msdp->bbdp, rw_block_address, rw_buf[i % 2], 1) == CH_FAILED) { + /* TODO: handle this */ + chprintf(chp, "\r\nSD Block Read Error\r\n"); + } else { + read_success = TRUE; + break; + } + } + if( (!read_success) || (!palReadPad(GPIOF, GPIOF_USER_BUTTON)) ) { + chprintf(chp, "\r\nSD Block Read Error 1, halting\r\n"); + chThdSleepMilliseconds(70);//wait for printing to finish + msdp->result = FALSE; + msdp->result_sense_code = SCSI_SENSE_KEY_MEDIUM_ERROR; + //msdp->result_sense_code = SCSI_SENSE_KEY_HARDWARE_ERROR; + //return FALSE; + /* TODO: handle this */ + //chSysHalt(); + } + rw_block_address++; + + /* loop over each block */ + for(i = 0; i < total_blocks; i++) { + /* transmit the block */ + usbPrepareTransmit(msdp->usbp, USB_MS_DATA_EP, rw_buf[i % 2], + msdp->block_dev_info.blk_size); + + chSysLock(); + usbStartTransmitI(msdp->usbp, USB_MS_DATA_EP); + chSysUnlock(); + + if(i < (total_blocks - 1)) { + /* there is at least one more block to be read from device */ + /* so read that while the USB transfer takes place */ + read_success = FALSE; + for(retry_count = 0; retry_count < 3; retry_count++ ) { + if(blkRead(msdp->bbdp, rw_block_address, rw_buf[(i+1) % 2], 1) == CH_FAILED ) { + chprintf(chp, "\r\nSD Block Read Error 2\r\n"); + } else { + read_success = TRUE; + break; + } + } + + if( (! read_success) || (!palReadPad(GPIOF, GPIOF_USER_BUTTON)) ) { + chprintf(chp, "\r\nSD Block Read Error 2, halting\r\n"); + chThdSleepMilliseconds(70);//wait for printing to finish + msdp->result = FALSE; + msdp->result_sense_code = SCSI_SENSE_KEY_MEDIUM_ERROR; + //return FALSE; + + /* TODO: handle this */ + //chSysHalt(); + } + + rw_block_address++; + } + + WaitForISR(msdp); + } + } + + msdp->result = TRUE; + + /* don't wait for ISR */ + return FALSE; +} + +bool_t SCSICommandStartStopUnit(USBMassStorageDriver *msdp) { + SCSIStartStopUnitRequest_t *ssu = (SCSIStartStopUnitRequest_t *)&(msdp->cbw.scsi_cmd_data); + + if((ssu->loej_start & 0b00000011) == 0b00000010) { + /* device has been ejected */ + chEvtBroadcast(&msdp->evt_ejected); + + msdp->state = ejected; + } + + msdp->result = TRUE; + + /* don't wait for ISR */ + return FALSE; +} + +bool_t SCSICommandModeSense6(USBMassStorageDriver *msdp) { + /* Send an empty header response with the Write Protect flag status */ + /* TODO set byte3 to 0x80 if disk is read only */ + static uint8_t response[4] = {0x00, 0x00, 0x00, 0x00}; + + usbPrepareTransmit(msdp->usbp, USB_MS_DATA_EP, response, 4); + + chSysLock(); + usbStartTransmitI(msdp->usbp, USB_MS_DATA_EP); + chSysUnlock(); + + msdp->result = TRUE; + + /* wait for ISR */ + return TRUE; +} + +bool_t msdWaitForCommandBlock(USBMassStorageDriver *msdp) { + usbPrepareReceive(msdp->usbp, USB_MS_DATA_EP, + (uint8_t *)&msdp->cbw, sizeof(msd_cbw_t)); + + chSysLock(); + usbStartReceiveI(msdp->usbp, USB_MS_DATA_EP); + chSysUnlock(); + + msdp->state = read_cmd_block; + + /* wait for ISR */ + return TRUE; +} + + + +/* A command block has been received */ +bool_t msdReadCommandBlock(USBMassStorageDriver *msdp) { + msd_cbw_t *cbw = &(msdp->cbw); + + /* by default transition back to the idle state */ + msdp->state = idle; + + /* check the command */ + if((cbw->signature != MSD_CBW_SIGNATURE) || + (cbw->lun > 0) || + ((cbw->data_len > 0) && (cbw->flags & 0x1F)) || + (cbw->scsi_cmd_len == 0) || + (cbw->scsi_cmd_len > 16)) { + + /* stall both IN and OUT endpoints */ + chSysLockFromIsr(); + usbStallReceiveI(msdp->usbp, USB_MS_DATA_EP); + chSysUnlockFromIsr(); + + /* don't wait for ISR */ + return FALSE; + } + + msdp->result_sense_code = SCSI_SENSE_KEY_GOOD; + + bool_t sleep = FALSE; + switch(cbw->scsi_cmd_data[0]) { + case SCSI_CMD_INQUIRY: + sleep = SCSICommandInquiry(msdp); + break; + case SCSI_CMD_REQUEST_SENSE: + sleep = SCSICommandRequestSense(msdp); + break; + case SCSI_CMD_READ_CAPACITY_10: + sleep = SCSICommandReadCapacity10(msdp); + break; + case SCSI_CMD_READ_10: + case SCSI_CMD_WRITE_10: + MSD_RW_LED_ON(); + sleep = SCSICommandStartReadWrite10(msdp); + MSD_RW_LED_OFF(); + break; + case SCSI_CMD_SEND_DIAGNOSTIC: + sleep = SCSICommandSendDiagnostic(msdp); + break; + case SCSI_CMD_TEST_UNIT_READY: + case SCSI_CMD_PREVENT_ALLOW_MEDIUM_REMOVAL: + case SCSI_CMD_VERIFY_10: + /* don't handle */ + msdp->result = TRUE; + break; + case SCSI_CMD_MODE_SENSE_6: + sleep = SCSICommandModeSense6(msdp); + break; + case SCSI_CMD_START_STOP_UNIT: + sleep = SCSICommandStartStopUnit(msdp); + break; + default: + SCSISetSense( msdp, + SCSI_SENSE_KEY_ILLEGAL_REQUEST, + SCSI_ASENSE_INVALID_COMMAND, + SCSI_ASENSEQ_NO_QUALIFIER); + + /* stall IN endpoint */ + chSysLockFromIsr(); + usbStallTransmitI(msdp->usbp, USB_MS_DATA_EP); + chSysUnlockFromIsr(); + + cbw->data_len = 0; + return FALSE; + } + + cbw->data_len = 0; + + if(msdp->result) { + /* update sense with success status */ + SCSISetSense( msdp, + SCSI_SENSE_KEY_GOOD, + SCSI_ASENSE_NO_ADDITIONAL_INFORMATION, + SCSI_ASENSEQ_NO_QUALIFIER); + } else { + if( msdp->result_sense_code != SCSI_SENSE_KEY_GOOD ) { + SCSISetSense( msdp, + msdp->result_sense_code, + SCSI_ASENSE_NO_ADDITIONAL_INFORMATION, + SCSI_ASENSEQ_NO_QUALIFIER); + /* stall IN endpoint */ + + chSysLockFromIsr(); + usbStallTransmitI(msdp->usbp, USB_MS_DATA_EP); + chSysUnlockFromIsr(); + + cbw->data_len = 0; + } else { + /* stall IN endpoint */ + chSysLockFromIsr(); + usbStallTransmitI(msdp->usbp, USB_MS_DATA_EP); + chSysUnlockFromIsr(); + + cbw->data_len = 0; + return FALSE; + } + } + + if(sleep) { + WaitForISR(msdp); + } + + msd_csw_t *csw = &(msdp->csw); + + if(!msdp->result && cbw->data_len) { + /* still bytes left to send, this is too early to send CSW? */ + chSysLockFromIsr(); + usbStallReceiveI(msdp->usbp, USB_MS_DATA_EP); + usbStallTransmitI(msdp->usbp, USB_MS_DATA_EP); + chSysUnlockFromIsr(); + + return FALSE; + } + + csw->status = (msdp->result) ? MSD_COMMAND_PASSED : MSD_COMMAND_FAILED; + csw->signature = MSD_CSW_SIGNATURE; + csw->data_residue = cbw->data_len; + csw->tag = cbw->tag; + + usbPrepareTransmit(msdp->usbp, USB_MS_DATA_EP, (uint8_t *)csw, + sizeof(msd_csw_t)); + + chSysLock(); + usbStartTransmitI(msdp->usbp, USB_MS_DATA_EP); + chSysUnlock(); + + /* wait on ISR */ + return TRUE; +} + +static msg_t MassStorageUSBTransferThd(void *arg) { + USBMassStorageDriver *msdp = (USBMassStorageDriver *)arg; + + for(;;) { + if( trigger_transfer_index != UINT32_MAX ) { + SCSIWriteTransferPingPong(msdp, &rw_ping_pong_buffer[trigger_transfer_index]); + trigger_transfer_index = UINT32_MAX; + //notify other thread + chBSemSignal(&msdp->mass_sorage_thd_bsem); + } + + chBSemWaitTimeout(&msdp->usb_transfer_thread_bsem, MS2ST(1)); + } +} + +static msg_t MassStorageThd(void *arg) { + USBMassStorageDriver *msdp = (USBMassStorageDriver *)arg; + + chRegSetThreadName("USB-MSD"); + + bool_t wait_for_isr = FALSE; + + /* wait for the usb to be initialised */ + WaitForISR(msdp); + + while (TRUE) { + wait_for_isr = FALSE; + + /* wait on data depending on the current state */ + switch(msdp->state) { + case idle: + wait_for_isr = msdWaitForCommandBlock(msdp); + break; + case read_cmd_block: + wait_for_isr = msdReadCommandBlock(msdp); + break; + case ejected: + /* disconnect usb device */ + usbDisconnectBus(msdp->usbp); + usbStop(msdp->usbp); + chThdExit(0); + return 0; + } + + /* wait until the ISR wakes thread */ + if(wait_for_isr) { + WaitForISR(msdp); + } + } + + return 0; +} + +void msdInit(USBDriver *usbp, BaseBlockDevice *bbdp, USBMassStorageDriver *msdp) { + uint8_t i; + + msdp->usbp = usbp; + msdp->state = idle; + msdp->bbdp = bbdp; + + chEvtInit(&msdp->evt_connected); + chEvtInit(&msdp->evt_ejected); + + /* initialise binary semaphore as taken */ + chBSemInit(&msdp->bsem, TRUE); + /* initialise binary semaphore as NOT taken */ + chBSemInit(&msdp->usb_transfer_thread_bsem, FALSE); + chBSemInit(&msdp->mass_sorage_thd_bsem, FALSE); + + /* initialise sense values to zero */ + for(i = 0; i < sizeof(scsi_sense_response_t); i++) + msdp->sense.byte[i] = 0x00; + + /* Response code = 0x70, additional sense length = 0x0A */ + msdp->sense.byte[0] = 0x70; + msdp->sense.byte[7] = 0x0A; + + /* make sure block device is working and get info */ + while(TRUE) { + blkstate_t state = blkGetDriverState(bbdp); + if(state == BLK_READY) + break; + + chThdSleepMilliseconds(50); + } + + blkGetInfo(bbdp, &msdp->block_dev_info); + + usbDisconnectBus(usbp); + chThdSleepMilliseconds(1000); + usbp->param = (void *)msdp; + + usbStart(usbp, &msd_usb_config); + usbConnectBus(usbp); + + if(msdThd == NULL) { + msdThd = chThdCreateStatic(waMassStorage, sizeof(waMassStorage), + NORMALPRIO, MassStorageThd, msdp); + } + + if(msdUSBTransferThd == NULL) { + msdUSBTransferThd = chThdCreateStatic(waMassStorageUSBTransfer, sizeof(waMassStorageUSBTransfer), + NORMALPRIO, MassStorageUSBTransferThd, msdp); + } +} diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.h b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.h new file mode 100644 index 0000000000..1bdd5f74f7 --- /dev/null +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.h @@ -0,0 +1,152 @@ +#include "board.h" +#define MSD_RW_LED_ON() palSetPad(GPIOI, GPIOI_LED4); +#define MSD_RW_LED_OFF() palClearPad(GPIOI, GPIOI_LED4); + + + + +#define USB_MS_DATA_EP 1 + +#if STM32_USE_USB_OTG2_HS +# define USB_MS_EP_SIZE 512 +#else +# define USB_MS_EP_SIZE 64 +#endif + +#define MSD_REQ_RESET 0xFF +#define MSD_GET_MAX_LUN 0xFE +#define MSD_CBW_SIGNATURE 0x43425355 +#define MSD_CSW_SIGNATURE 0x53425355 +#define MSD_COMMAND_DIR_DATA_OUT (0 << 7) +#define MSD_COMMAND_DIR_DATA_IN (1 << 7) + +#define MSD_SETUP_WORD(setup, index) (uint16_t)(((uint16_t)setup[index+1] << 8) | (setup[index] & 0x00FF)) + +#define MSD_SETUP_VALUE(setup) MSD_SETUP_WORD(setup, 2) +#define MSD_SETUP_INDEX(setup) MSD_SETUP_WORD(setup, 4) +#define MSD_SETUP_LENGTH(setup) MSD_SETUP_WORD(setup, 6) + +#define SCSI_CMD_INQUIRY 0x12 +#define SCSI_CMD_REQUEST_SENSE 0x03 +#define SCSI_CMD_READ_CAPACITY_10 0x25 +#define SCSI_CMD_READ_10 0x28 +#define SCSI_CMD_WRITE_10 0x2A +#define SCSI_CMD_TEST_UNIT_READY 0x00 +#define SCSI_CMD_PREVENT_ALLOW_MEDIUM_REMOVAL 0x1E +#define SCSI_CMD_VERIFY_10 0x2F +#define SCSI_CMD_SEND_DIAGNOSTIC 0x1D +#define SCSI_CMD_MODE_SENSE_6 0x1A +#define SCSI_CMD_START_STOP_UNIT 0x1B + +#define MSD_COMMAND_PASSED 0x00 +#define MSD_COMMAND_FAILED 0x01 +#define MSD_COMMAND_PHASE_ERROR 0x02 + +#define SCSI_SENSE_KEY_GOOD 0x00 +#define SCSI_SENSE_KEY_RECOVERED_ERROR 0x01 +#define SCSI_SENSE_KEY_NOT_READY 0x02 +#define SCSI_SENSE_KEY_MEDIUM_ERROR 0x03 +#define SCSI_SENSE_KEY_HARDWARE_ERROR 0x04 +#define SCSI_SENSE_KEY_ILLEGAL_REQUEST 0x05 +#define SCSI_SENSE_KEY_UNIT_ATTENTION 0x06 +#define SCSI_SENSE_KEY_DATA_PROTECT 0x07 +#define SCSI_SENSE_KEY_BLANK_CHECK 0x08 +#define SCSI_SENSE_KEY_VENDOR_SPECIFIC 0x09 +#define SCSI_SENSE_KEY_COPY_ABORTED 0x0A +#define SCSI_SENSE_KEY_ABORTED_COMMAND 0x0B +#define SCSI_SENSE_KEY_VOLUME_OVERFLOW 0x0D +#define SCSI_SENSE_KEY_MISCOMPARE 0x0E +#define SCSI_ASENSE_NO_ADDITIONAL_INFORMATION 0x00 +#define SCSI_ASENSE_LOGICAL_UNIT_NOT_READY 0x04 +#define SCSI_ASENSE_INVALID_FIELD_IN_CDB 0x24 +#define SCSI_ASENSE_NOT_READY_TO_READY_CHANGE 0x28 +#define SCSI_ASENSE_WRITE_PROTECTED 0x27 +#define SCSI_ASENSE_FORMAT_ERROR 0x31 +#define SCSI_ASENSE_INVALID_COMMAND 0x20 +#define SCSI_ASENSE_LOGICAL_BLOCK_ADDRESS_OUT_OF_RANGE 0x21 +#define SCSI_ASENSE_MEDIUM_NOT_PRESENT 0x3A +#define SCSI_ASENSEQ_NO_QUALIFIER 0x00 +#define SCSI_ASENSEQ_FORMAT_COMMAND_FAILED 0x01 +#define SCSI_ASENSEQ_INITIALIZING_COMMAND_REQUIRED 0x02 +#define SCSI_ASENSEQ_OPERATION_IN_PROGRESS 0x07 + +PACK_STRUCT_BEGIN typedef struct { + uint32_t signature; + uint32_t tag; + uint32_t data_len; + uint8_t flags; + uint8_t lun; + uint8_t scsi_cmd_len; + uint8_t scsi_cmd_data[16]; +} PACK_STRUCT_STRUCT msd_cbw_t PACK_STRUCT_END; + +PACK_STRUCT_BEGIN typedef struct { + uint32_t signature; + uint32_t tag; + uint32_t data_residue; + uint8_t status; +} PACK_STRUCT_STRUCT msd_csw_t PACK_STRUCT_END; + +typedef struct { + uint8_t byte[18]; +} __attribute__ ((packed)) scsi_sense_response_t; + +PACK_STRUCT_BEGIN typedef struct +{ + uint8_t peripheral; + uint8_t removable; + uint8_t version; + uint8_t response_data_format; + uint8_t additional_length; + uint8_t sccstp; + uint8_t bqueetc; + uint8_t cmdque; + uint8_t vendorID[8]; + uint8_t productID[16]; + uint8_t productRev[4]; +} PACK_STRUCT_STRUCT scsi_inquiry_response_t PACK_STRUCT_END; + +PACK_STRUCT_BEGIN typedef struct { + uint32_t last_block_addr; + uint32_t block_size; +} PACK_STRUCT_STRUCT SCSIReadCapacity10Response_t PACK_STRUCT_END; + +PACK_STRUCT_BEGIN typedef struct { + uint8_t op_code; + uint8_t lun_immed; + uint8_t res1; + uint8_t res2; + uint8_t loej_start; + uint8_t control; +} PACK_STRUCT_STRUCT SCSIStartStopUnitRequest_t; + +typedef struct USBMassStorageDriver USBMassStorageDriver; + +typedef enum { idle, read_cmd_block, ejected} msd_state_t; + +struct USBMassStorageDriver { + USBDriver *usbp; + BinarySemaphore bsem; + BinarySemaphore usb_transfer_thread_bsem; + BinarySemaphore mass_sorage_thd_bsem; + BaseBlockDevice *bbdp; + EventSource evt_connected, evt_ejected; + BlockDeviceInfo block_dev_info; + msd_state_t state; + msd_cbw_t cbw; + msd_csw_t csw; + scsi_sense_response_t sense; + bool_t result; + uint8_t result_sense_code; +}; + +#define MSD_CONNECTED 0 +#define MSD_EJECTED 1 + +#ifdef __cplusplus +extern "C" { +#endif +void msdInit(USBDriver *usbp, BaseBlockDevice *bdp, USBMassStorageDriver *msdp); +#ifdef __cplusplus +} +#endif From 101b9339c65759b4ecfd7564ba9bf7e9bb69e66c Mon Sep 17 00:00:00 2001 From: Dave Camarillo Date: Tue, 19 Feb 2013 17:12:52 -0800 Subject: [PATCH 09/52] updated readme to describe use and building and added photo of functional board --- .../demo_picture.jpg | Bin 0 -> 983913 bytes .../readme.txt | 22 +++++++++++------- 2 files changed, 13 insertions(+), 9 deletions(-) create mode 100644 demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/demo_picture.jpg diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/demo_picture.jpg b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/demo_picture.jpg new file mode 100644 index 0000000000000000000000000000000000000000..50dd55c22f3fb39a2bc68b98b211a9fcda7c1426 GIT binary patch literal 983913 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%0A}W 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� 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 z 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%0ArDr;~!RY_x!qDPj}R{5jdYhy)=;>^zc>RVkskl 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�t^E6{Xow|5QV@-pfCTZM7{}|;bAAk^UvQs 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�gNg=9xzXWar=W>LqK4jRUD?4#7sDvLR3a1T{T- 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 z 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®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 O=>7n~_41XimGbHU literal 0 HcmV?d00001 diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/ffconf.h b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/ffconf.h new file mode 100644 index 0000000000..e6a13cea3a --- /dev/null +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/ffconf.h @@ -0,0 +1,193 @@ +/* CHIBIOS FIX */ +#include "ch.h" + +/*---------------------------------------------------------------------------/ +/ FatFs - FAT file system module configuration file R0.09 (C)ChaN, 2011 +/----------------------------------------------------------------------------/ +/ +/ CAUTION! Do not forget to make clean the project after any changes to +/ the configuration options. +/ +/----------------------------------------------------------------------------*/ +#ifndef _FFCONF +#define _FFCONF 6502 /* Revision ID */ + + +/*---------------------------------------------------------------------------/ +/ Functions and Buffer Configurations +/----------------------------------------------------------------------------*/ + +#define _FS_TINY 0 /* 0:Normal or 1:Tiny */ +/* When _FS_TINY is set to 1, FatFs uses the sector buffer in the file system +/ object instead of the sector buffer in the individual file object for file +/ data transfer. This reduces memory consumption 512 bytes each file object. */ + + +#define _FS_READONLY 0 /* 0:Read/Write or 1:Read only */ +/* Setting _FS_READONLY to 1 defines read only configuration. This removes +/ writing functions, f_write, f_sync, f_unlink, f_mkdir, f_chmod, f_rename, +/ f_truncate and useless f_getfree. */ + + +#define _FS_MINIMIZE 0 /* 0 to 3 */ +/* The _FS_MINIMIZE option defines minimization level to remove some functions. +/ +/ 0: Full function. +/ 1: f_stat, f_getfree, f_unlink, f_mkdir, f_chmod, f_truncate and f_rename +/ are removed. +/ 2: f_opendir and f_readdir are removed in addition to 1. +/ 3: f_lseek is removed in addition to 2. */ + + +#define _USE_STRFUNC 0 /* 0:Disable or 1-2:Enable */ +/* To enable string functions, set _USE_STRFUNC to 1 or 2. */ + + +#define _USE_MKFS 0 /* 0:Disable or 1:Enable */ +/* To enable f_mkfs function, set _USE_MKFS to 1 and set _FS_READONLY to 0 */ + + +#define _USE_FORWARD 0 /* 0:Disable or 1:Enable */ +/* To enable f_forward function, set _USE_FORWARD to 1 and set _FS_TINY to 1. */ + + +#define _USE_FASTSEEK 0 /* 0:Disable or 1:Enable */ +/* To enable fast seek feature, set _USE_FASTSEEK to 1. */ + + + +/*---------------------------------------------------------------------------/ +/ Locale and Namespace Configurations +/----------------------------------------------------------------------------*/ + +#define _CODE_PAGE 1252 +/* The _CODE_PAGE specifies the OEM code page to be used on the target system. +/ Incorrect setting of the code page can cause a file open failure. +/ +/ 932 - Japanese Shift-JIS (DBCS, OEM, Windows) +/ 936 - Simplified Chinese GBK (DBCS, OEM, Windows) +/ 949 - Korean (DBCS, OEM, Windows) +/ 950 - Traditional Chinese Big5 (DBCS, OEM, Windows) +/ 1250 - Central Europe (Windows) +/ 1251 - Cyrillic (Windows) +/ 1252 - Latin 1 (Windows) +/ 1253 - Greek (Windows) +/ 1254 - Turkish (Windows) +/ 1255 - Hebrew (Windows) +/ 1256 - Arabic (Windows) +/ 1257 - Baltic (Windows) +/ 1258 - Vietnam (OEM, Windows) +/ 437 - U.S. (OEM) +/ 720 - Arabic (OEM) +/ 737 - Greek (OEM) +/ 775 - Baltic (OEM) +/ 850 - Multilingual Latin 1 (OEM) +/ 858 - Multilingual Latin 1 + Euro (OEM) +/ 852 - Latin 2 (OEM) +/ 855 - Cyrillic (OEM) +/ 866 - Russian (OEM) +/ 857 - Turkish (OEM) +/ 862 - Hebrew (OEM) +/ 874 - Thai (OEM, Windows) +/ 1 - ASCII only (Valid for non LFN cfg.) +*/ + + +#define _USE_LFN 3 /* 0 to 3 */ +#define _MAX_LFN 255 /* Maximum LFN length to handle (12 to 255) */ +/* The _USE_LFN option switches the LFN support. +/ +/ 0: Disable LFN feature. _MAX_LFN and _LFN_UNICODE have no effect. +/ 1: Enable LFN with static working buffer on the BSS. Always NOT reentrant. +/ 2: Enable LFN with dynamic working buffer on the STACK. +/ 3: Enable LFN with dynamic working buffer on the HEAP. +/ +/ The LFN working buffer occupies (_MAX_LFN + 1) * 2 bytes. To enable LFN, +/ Unicode handling functions ff_convert() and ff_wtoupper() must be added +/ to the project. When enable to use heap, memory control functions +/ ff_memalloc() and ff_memfree() must be added to the project. */ + + +#define _LFN_UNICODE 0 /* 0:ANSI/OEM or 1:Unicode */ +/* To switch the character code set on FatFs API to Unicode, +/ enable LFN feature and set _LFN_UNICODE to 1. */ + + +#define _FS_RPATH 0 /* 0 to 2 */ +/* The _FS_RPATH option configures relative path feature. +/ +/ 0: Disable relative path feature and remove related functions. +/ 1: Enable relative path. f_chdrive() and f_chdir() are available. +/ 2: f_getcwd() is available in addition to 1. +/ +/ Note that output of the f_readdir fnction is affected by this option. */ + + + +/*---------------------------------------------------------------------------/ +/ Physical Drive Configurations +/----------------------------------------------------------------------------*/ + +#define _VOLUMES 1 +/* Number of volumes (logical drives) to be used. */ + + +#define _MAX_SS 512 /* 512, 1024, 2048 or 4096 */ +/* Maximum sector size to be handled. +/ Always set 512 for memory card and hard disk but a larger value may be +/ required for on-board flash memory, floppy disk and optical disk. +/ When _MAX_SS is larger than 512, it configures FatFs to variable sector size +/ and GET_SECTOR_SIZE command must be implememted to the disk_ioctl function. */ + + +#define _MULTI_PARTITION 0 /* 0:Single partition, 1/2:Enable multiple partition */ +/* When set to 0, each volume is bound to the same physical drive number and +/ it can mount only first primaly partition. When it is set to 1, each volume +/ is tied to the partitions listed in VolToPart[]. */ + + +#define _USE_ERASE 0 /* 0:Disable or 1:Enable */ +/* To enable sector erase feature, set _USE_ERASE to 1. CTRL_ERASE_SECTOR command +/ should be added to the disk_ioctl functio. */ + + + +/*---------------------------------------------------------------------------/ +/ System Configurations +/----------------------------------------------------------------------------*/ + +#define _WORD_ACCESS 0 /* 0 or 1 */ +/* Set 0 first and it is always compatible with all platforms. The _WORD_ACCESS +/ option defines which access method is used to the word data on the FAT volume. +/ +/ 0: Byte-by-byte access. +/ 1: Word access. Do not choose this unless following condition is met. +/ +/ When the byte order on the memory is big-endian or address miss-aligned word +/ access results incorrect behavior, the _WORD_ACCESS must be set to 0. +/ If it is not the case, the value can also be set to 1 to improve the +/ performance and code size. +*/ + + +/* A header file that defines sync object types on the O/S, such as +/ windows.h, ucos_ii.h and semphr.h, must be included prior to ff.h. */ + +#define _FS_REENTRANT 1 /* 0:Disable or 1:Enable */ +#define _FS_TIMEOUT 1000 /* Timeout period in unit of time ticks */ +#define _SYNC_t Semaphore * /* O/S dependent type of sync object. e.g. HANDLE, OS_EVENT*, ID and etc.. */ + +/* The _FS_REENTRANT option switches the reentrancy (thread safe) of the FatFs module. +/ +/ 0: Disable reentrancy. _SYNC_t and _FS_TIMEOUT have no effect. +/ 1: Enable reentrancy. Also user provided synchronization handlers, +/ ff_req_grant, ff_rel_grant, ff_del_syncobj and ff_cre_syncobj +/ function must be added to the project. */ + + +#define _FS_SHARE 0 /* 0:Disable or >=1:Enable */ +/* To enable file shareing feature, set _FS_SHARE to 1 or greater. The value + defines how many files can be opened simultaneously. */ + + +#endif /* _FFCONFIG */ diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/halconf.h b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/halconf.h new file mode 100644 index 0000000000..43f910e374 --- /dev/null +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/halconf.h @@ -0,0 +1,332 @@ +/* + ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, + 2011,2012,2013 Giovanni Di Sirio. + + This file is part of ChibiOS/RT. + + ChibiOS/RT is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + ChibiOS/RT is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +/** + * @file templates/halconf.h + * @brief HAL configuration header. + * @details HAL configuration file, this file allows to enable or disable the + * various device drivers from your application. You may also use + * this file in order to override the device drivers default settings. + * + * @addtogroup HAL_CONF + * @{ + */ + +#ifndef _HALCONF_H_ +#define _HALCONF_H_ + +#include "mcuconf.h" + + +/* + * This is to allow for concurrent use of VCOM driver and MSD driver + * on the same USB peripheral. This is important for USB composite devices + * that have both a mass storage drier and a VCOM driver + */ +#define MSD_USB_DRIVER_EXT_FIELDS_NAME msd_param +#ifdef MSD_USB_DRIVER_EXT_FIELDS_NAME +# define USB_DRIVER_EXT_FIELDS void *MSD_USB_DRIVER_EXT_FIELDS_NAME; +#endif + + + + +/** + * @brief Enables the TM subsystem. + */ +#if !defined(HAL_USE_TM) || defined(__DOXYGEN__) +#define HAL_USE_TM TRUE +#endif + +/** + * @brief Enables the PAL subsystem. + */ +#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) +#define HAL_USE_PAL TRUE +#endif + +/** + * @brief Enables the ADC subsystem. + */ +#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) +#define HAL_USE_ADC FALSE +#endif + +/** + * @brief Enables the CAN subsystem. + */ +#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) +#define HAL_USE_CAN FALSE +#endif + +/** + * @brief Enables the EXT subsystem. + */ +#if !defined(HAL_USE_EXT) || defined(__DOXYGEN__) +#define HAL_USE_EXT FALSE +#endif + +/** + * @brief Enables the GPT subsystem. + */ +#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) +#define HAL_USE_GPT FALSE +#endif + +/** + * @brief Enables the I2C subsystem. + */ +#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) +#define HAL_USE_I2C FALSE +#endif + +/** + * @brief Enables the ICU subsystem. + */ +#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) +#define HAL_USE_ICU FALSE +#endif + +/** + * @brief Enables the MAC subsystem. + */ +#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) +#define HAL_USE_MAC FALSE +#endif + +/** + * @brief Enables the MMC_SPI subsystem. + */ +#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) +#define HAL_USE_MMC_SPI FALSE +#endif + +/** + * @brief Enables the PWM subsystem. + */ +#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) +#define HAL_USE_PWM FALSE +#endif + +/** + * @brief Enables the RTC subsystem. + */ +#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) +#define HAL_USE_RTC FALSE +#endif + +/** + * @brief Enables the SDC subsystem. + */ +#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) +#define HAL_USE_SDC TRUE +//NOTE: The SanDisk micro SD cards apparently do not support aligned reads beacuase the SD read function fails and calls sys halt +#define STM32_SDC_SDIO_UNALIGNED_SUPPORT FALSE +#endif + +/** + * @brief Enables the SERIAL subsystem. + */ +#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) +#define HAL_USE_SERIAL TRUE +#endif + +/** + * @brief Enables the SERIAL over USB subsystem. + */ +#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) +#define HAL_USE_SERIAL_USB FALSE +#endif + +/** + * @brief Enables the SPI subsystem. + */ +#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) +#define HAL_USE_SPI FALSE +#endif + +/** + * @brief Enables the UART subsystem. + */ +#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) +#define HAL_USE_UART FALSE +#endif + +/** + * @brief Enables the USB subsystem. + */ +#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) +#define HAL_USE_USB TRUE +#endif + +/*===========================================================================*/ +/* ADC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) +#define ADC_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define ADC_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* CAN driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Sleep mode related APIs inclusion switch. + */ +#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) +#define CAN_USE_SLEEP_MODE TRUE +#endif + +/*===========================================================================*/ +/* I2C driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the mutual exclusion APIs on the I2C bus. + */ +#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define I2C_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* MAC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables an event sources for incoming packets. + */ +#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) +#define MAC_USE_ZERO_COPY FALSE +#endif + +/** + * @brief Enables an event sources for incoming packets. + */ +#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) +#define MAC_USE_EVENTS TRUE +#endif + +/*===========================================================================*/ +/* MMC_SPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Delays insertions. + * @details If enabled this options inserts delays into the MMC waiting + * routines releasing some extra CPU time for the threads with + * lower priority, this may slow down the driver a bit however. + * This option is recommended also if the SPI driver does not + * use a DMA channel and heavily loads the CPU. + */ +#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) +#define MMC_NICE_WAITING TRUE +#endif + +/*===========================================================================*/ +/* SDC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Number of initialization attempts before rejecting the card. + * @note Attempts are performed at 10mS intervals. + */ +#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) +#define SDC_INIT_RETRY 100 +#endif + +/** + * @brief Include support for MMC cards. + * @note MMC support is not yet implemented so this option must be kept + * at @p FALSE. + */ +#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) +#define SDC_MMC_SUPPORT FALSE +#endif + +/** + * @brief Delays insertions. + * @details If enabled this options inserts delays into the MMC waiting + * routines releasing some extra CPU time for the threads with + * lower priority, this may slow down the driver a bit however. + */ +#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) +#define SDC_NICE_WAITING TRUE +#endif + +/*===========================================================================*/ +/* SERIAL driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Default bit rate. + * @details Configuration parameter, this is the baud rate selected for the + * default configuration. + */ +#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) +#define SERIAL_DEFAULT_BITRATE 115200 +#endif + +/** + * @brief Serial buffers size. + * @details Configuration parameter, you can change the depth of the queue + * buffers depending on the requirements of your application. + * @note The default is 64 bytes for both the transmission and receive + * buffers. + */ +#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) +#define SERIAL_BUFFERS_SIZE 16 +#endif + +/*===========================================================================*/ +/* SPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) +#define SPI_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define SPI_USE_MUTUAL_EXCLUSION TRUE +#endif + +#endif /* _HALCONF_H_ */ + +/** @} */ diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/main.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/main.c new file mode 100644 index 0000000000..3a82c0ff64 --- /dev/null +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/main.c @@ -0,0 +1,124 @@ +/* + ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, + 2011,2012,2013 Giovanni Di Sirio. + + This file is part of ChibiOS/RT. + + ChibiOS/RT is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + ChibiOS/RT is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#include +#include + +#include "ch.h" +#include "hal.h" +#include "test.h" + +#include "usb_cdc.h" +#include "chprintf.h" +#include "shell.h" +#include "usb_msd.h" + +/* + * Green LED blinker thread, times are in milliseconds. + */ +static WORKING_AREA(waThread1, 128); +static msg_t Thread1(void *arg) { + (void)arg; + chRegSetThreadName("blinker"); + while (TRUE) { + palTogglePad(GPIOH, GPIOH_LED1); + chThdSleepMilliseconds(500); + } + return(0); +} + +int init_sd(void) { + BaseSequentialStream *chp = (BaseSequentialStream*)&SD2; + + // power cycle sd card + palSetPad(GPIOC, GPIOC_SDIO_POWER); + chThdSleepMilliseconds(1000); + // this is probably longer than needed + palClearPad(GPIOC, GPIOC_SDIO_POWER); + chThdSleepMilliseconds(100); + // let power stabilize + + // startup sdc driver + sdcStart(&SDCD1, NULL); + + if (sdcConnect(&SDCD1) == CH_FAILED) { + chprintf(chp, "sdcConnect FAILED\r\n"); + uint32_t errors = sdcGetAndClearErrors(&SDCD1); + chprintf(chp, "error flags %d\r\n", errors); + //FIXME: handle error + return(1); + } else { + chprintf(chp, "sdcConnect SUCCEEDED\r\n"); + } + + return(0); +} + +/* + * Application entry point. + */ +int main(void) { + /* + * System initializations. + * - HAL initialization, this also initializes the configured device drivers + * and performs the board-specific initializations. + * - Kernel initialization, the main() function becomes a thread and the + * RTOS is active. + */ + halInit(); + chSysInit(); + + /* + * Activates the serial driver 2 and SDC driver 1 using default + * configuration. + */ + sdStart(&SD2, NULL); + + BaseSequentialStream *chp = (BaseSequentialStream *)&SD2; + chprintf(chp, "running main()\r\n"); + chThdSleepMilliseconds(100); + + /* + * Activates the card insertion monitor. + */ + init_sd(); + chprintf(chp, "done starting SDC\r\n"); + sdcConnect(&SDCD1); + + BaseBlockDevice *bbdp = (BaseBlockDevice*) &SDCD1; + chprintf(chp, "setting up MSD\r\n"); + USBMassStorageDriver UMSD1; +#if STM32_USB_USE_OTG2 + msdInit(&USBD2, bbdp, &UMSD1); +#else + msdInit(&USBD1, bbdp, &UMSD1); +#endif + + /* + * Creates the blinker thread. + */ + chprintf(chp, "starting blinker thread\r\n"); + chThdCreateStatic(waThread1, sizeof(waThread1), NORMALPRIO, Thread1, NULL); + + + while (TRUE) { + chThdSleepMilliseconds(100); + } +} diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/mcuconf.h b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/mcuconf.h new file mode 100644 index 0000000000..64db49f80f --- /dev/null +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/mcuconf.h @@ -0,0 +1,282 @@ +/* + ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, + 2011,2012,2013 Giovanni Di Sirio. + + This file is part of ChibiOS/RT. + + ChibiOS/RT is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + ChibiOS/RT is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +/* + * STM32F4xx drivers configuration. + * The following settings override the default settings present in + * the various device driver implementation headers. + * Note that the settings for each driver only have effect if the whole + * driver is enabled in halconf.h. + * + * IRQ priorities: + * 15...0 Lowest...Highest. + * + * DMA priorities: + * 0...3 Lowest...Highest. + */ + +#define STM32F4xx_MCUCONF + +/* + * HAL driver system settings. + */ +#define STM32_NO_INIT FALSE +#define STM32_HSI_ENABLED TRUE +#define STM32_LSI_ENABLED TRUE +#define STM32_HSE_ENABLED TRUE +#define STM32_LSE_ENABLED FALSE +#define STM32_CLOCK48_REQUIRED TRUE +#define STM32_SW STM32_SW_PLL +#define STM32_PLLSRC STM32_PLLSRC_HSE +#define STM32_PLLM_VALUE 8 +#define STM32_PLLN_VALUE 336 +#define STM32_PLLP_VALUE 2 +#define STM32_PLLQ_VALUE 7 +#define STM32_HPRE STM32_HPRE_DIV1 +#define STM32_PPRE1 STM32_PPRE1_DIV4 +#define STM32_PPRE2 STM32_PPRE2_DIV2 +#define STM32_RTCSEL STM32_RTCSEL_LSI +#define STM32_RTCPRE_VALUE 8 +#define STM32_MCO1SEL STM32_MCO1SEL_HSI +#define STM32_MCO1PRE STM32_MCO1PRE_DIV1 +#define STM32_MCO2SEL STM32_MCO2SEL_SYSCLK +#define STM32_MCO2PRE STM32_MCO2PRE_DIV5 +#define STM32_I2SSRC STM32_I2SSRC_CKIN +#define STM32_PLLI2SN_VALUE 192 +#define STM32_PLLI2SR_VALUE 5 +#define STM32_VOS STM32_VOS_HIGH +#define STM32_PVD_ENABLE FALSE +#define STM32_PLS STM32_PLS_LEV0 + +/* + * ADC driver system settings. + */ +#define STM32_ADC_ADCPRE ADC_CCR_ADCPRE_DIV4 +#define STM32_ADC_USE_ADC1 FALSE +#define STM32_ADC_USE_ADC2 FALSE +#define STM32_ADC_USE_ADC3 FALSE +#define STM32_ADC_ADC1_DMA_STREAM STM32_DMA_STREAM_ID(2, 4) +#define STM32_ADC_ADC2_DMA_STREAM STM32_DMA_STREAM_ID(2, 2) +#define STM32_ADC_ADC3_DMA_STREAM STM32_DMA_STREAM_ID(2, 1) +#define STM32_ADC_ADC1_DMA_PRIORITY 2 +#define STM32_ADC_ADC2_DMA_PRIORITY 2 +#define STM32_ADC_ADC3_DMA_PRIORITY 2 +#define STM32_ADC_IRQ_PRIORITY 6 +#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 6 +#define STM32_ADC_ADC2_DMA_IRQ_PRIORITY 6 +#define STM32_ADC_ADC3_DMA_IRQ_PRIORITY 6 + +/* + * CAN driver system settings. + */ +#define STM32_CAN_USE_CAN1 FALSE +#define STM32_CAN_USE_CAN2 FALSE +#define STM32_CAN_CAN1_IRQ_PRIORITY 11 +#define STM32_CAN_CAN2_IRQ_PRIORITY 11 + +/* + * EXT driver system settings. + */ +#define STM32_EXT_EXTI0_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI1_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI2_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI3_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI4_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI5_9_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI10_15_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI16_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI17_IRQ_PRIORITY 15 +#define STM32_EXT_EXTI18_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI19_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI20_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI21_IRQ_PRIORITY 15 +#define STM32_EXT_EXTI22_IRQ_PRIORITY 15 + +/* + * GPT driver system settings. + */ +#define STM32_GPT_USE_TIM1 FALSE +#define STM32_GPT_USE_TIM2 FALSE +#define STM32_GPT_USE_TIM3 FALSE +#define STM32_GPT_USE_TIM4 FALSE +#define STM32_GPT_USE_TIM5 FALSE +#define STM32_GPT_USE_TIM8 FALSE +#define STM32_GPT_TIM1_IRQ_PRIORITY 7 +#define STM32_GPT_TIM2_IRQ_PRIORITY 7 +#define STM32_GPT_TIM3_IRQ_PRIORITY 7 +#define STM32_GPT_TIM4_IRQ_PRIORITY 7 +#define STM32_GPT_TIM5_IRQ_PRIORITY 7 +#define STM32_GPT_TIM8_IRQ_PRIORITY 7 + +/* + * I2C driver system settings. + */ +#define STM32_I2C_USE_I2C1 FALSE +#define STM32_I2C_USE_I2C2 FALSE +#define STM32_I2C_USE_I2C3 FALSE +#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0) +#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6) +#define STM32_I2C_I2C2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 2) +#define STM32_I2C_I2C2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7) +#define STM32_I2C_I2C3_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 2) +#define STM32_I2C_I2C3_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4) +#define STM32_I2C_I2C1_IRQ_PRIORITY 5 +#define STM32_I2C_I2C2_IRQ_PRIORITY 5 +#define STM32_I2C_I2C3_IRQ_PRIORITY 5 +#define STM32_I2C_I2C1_DMA_PRIORITY 3 +#define STM32_I2C_I2C2_DMA_PRIORITY 3 +#define STM32_I2C_I2C3_DMA_PRIORITY 3 +#define STM32_I2C_I2C1_DMA_ERROR_HOOK() chSysHalt() +#define STM32_I2C_I2C2_DMA_ERROR_HOOK() chSysHalt() +#define STM32_I2C_I2C3_DMA_ERROR_HOOK() chSysHalt() + +/* + * ICU driver system settings. + */ +#define STM32_ICU_USE_TIM1 FALSE +#define STM32_ICU_USE_TIM2 FALSE +#define STM32_ICU_USE_TIM3 FALSE +#define STM32_ICU_USE_TIM4 FALSE +#define STM32_ICU_USE_TIM5 FALSE +#define STM32_ICU_USE_TIM8 FALSE +#define STM32_ICU_TIM1_IRQ_PRIORITY 7 +#define STM32_ICU_TIM2_IRQ_PRIORITY 7 +#define STM32_ICU_TIM3_IRQ_PRIORITY 7 +#define STM32_ICU_TIM4_IRQ_PRIORITY 7 +#define STM32_ICU_TIM5_IRQ_PRIORITY 7 +#define STM32_ICU_TIM8_IRQ_PRIORITY 7 + +/* + * MAC driver system settings. + */ +#define STM32_MAC_TRANSMIT_BUFFERS 2 +#define STM32_MAC_RECEIVE_BUFFERS 4 +#define STM32_MAC_BUFFERS_SIZE 1522 +#define STM32_MAC_PHY_TIMEOUT 100 +#define STM32_MAC_ETH1_CHANGE_PHY_STATE TRUE +#define STM32_MAC_ETH1_IRQ_PRIORITY 13 +#define STM32_MAC_IP_CHECKSUM_OFFLOAD 0 + +/* + * MAC driver system settings. + */ +#define STM32_MAC_TRANSMIT_BUFFERS 2 +#define STM32_MAC_RECEIVE_BUFFERS 4 +#define STM32_MAC_BUFFERS_SIZE 1522 +#define STM32_MAC_PHY_TIMEOUT 100 +#define STM32_MAC_ETH1_CHANGE_PHY_STATE TRUE +#define STM32_MAC_ETH1_IRQ_PRIORITY 13 +#define STM32_MAC_IP_CHECKSUM_OFFLOAD 0 + +/* + * PWM driver system settings. + */ +#define STM32_PWM_USE_ADVANCED FALSE +#define STM32_PWM_USE_TIM1 FALSE +#define STM32_PWM_USE_TIM2 FALSE +#define STM32_PWM_USE_TIM3 FALSE +#define STM32_PWM_USE_TIM4 FALSE +#define STM32_PWM_USE_TIM5 FALSE +#define STM32_PWM_USE_TIM8 FALSE +#define STM32_PWM_TIM1_IRQ_PRIORITY 7 +#define STM32_PWM_TIM2_IRQ_PRIORITY 7 +#define STM32_PWM_TIM3_IRQ_PRIORITY 7 +#define STM32_PWM_TIM4_IRQ_PRIORITY 7 +#define STM32_PWM_TIM5_IRQ_PRIORITY 7 +#define STM32_PWM_TIM8_IRQ_PRIORITY 7 + +/* + * SERIAL driver system settings. + */ +#define STM32_SERIAL_USE_USART1 FALSE +#define STM32_SERIAL_USE_USART2 TRUE +#define STM32_SERIAL_USE_USART3 FALSE +#define STM32_SERIAL_USE_UART4 FALSE +#define STM32_SERIAL_USE_UART5 FALSE +#define STM32_SERIAL_USE_USART6 FALSE +#define STM32_SERIAL_USART1_PRIORITY 12 +#define STM32_SERIAL_USART2_PRIORITY 12 +#define STM32_SERIAL_USART3_PRIORITY 12 +#define STM32_SERIAL_UART4_PRIORITY 12 +#define STM32_SERIAL_UART5_PRIORITY 12 +#define STM32_SERIAL_USART6_PRIORITY 12 + +/* + * SPI driver system settings. + */ +#define STM32_SPI_USE_SPI1 FALSE +#define STM32_SPI_USE_SPI2 FALSE +#define STM32_SPI_USE_SPI3 FALSE +#define STM32_SPI_SPI1_RX_DMA_STREAM STM32_DMA_STREAM_ID(2, 0) +#define STM32_SPI_SPI1_TX_DMA_STREAM STM32_DMA_STREAM_ID(2, 3) +#define STM32_SPI_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 3) +#define STM32_SPI_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4) +#define STM32_SPI_SPI3_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0) +#define STM32_SPI_SPI3_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7) +#define STM32_SPI_SPI1_DMA_PRIORITY 1 +#define STM32_SPI_SPI2_DMA_PRIORITY 1 +#define STM32_SPI_SPI3_DMA_PRIORITY 1 +#define STM32_SPI_SPI1_IRQ_PRIORITY 10 +#define STM32_SPI_SPI2_IRQ_PRIORITY 10 +#define STM32_SPI_SPI3_IRQ_PRIORITY 10 +#define STM32_SPI_DMA_ERROR_HOOK(spip) chSysHalt() + +/* + * UART driver system settings. + */ +#define STM32_UART_USE_USART1 FALSE +#define STM32_UART_USE_USART2 FALSE +#define STM32_UART_USE_USART3 FALSE +#define STM32_UART_USE_USART6 FALSE +#define STM32_UART_USART1_RX_DMA_STREAM STM32_DMA_STREAM_ID(2, 5) +#define STM32_UART_USART1_TX_DMA_STREAM STM32_DMA_STREAM_ID(2, 7) +#define STM32_UART_USART2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5) +#define STM32_UART_USART2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6) +#define STM32_UART_USART3_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 1) +#define STM32_UART_USART3_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 3) +#define STM32_UART_USART6_RX_DMA_STREAM STM32_DMA_STREAM_ID(2, 2) +#define STM32_UART_USART6_TX_DMA_STREAM STM32_DMA_STREAM_ID(2, 7) +#define STM32_UART_USART1_IRQ_PRIORITY 12 +#define STM32_UART_USART2_IRQ_PRIORITY 12 +#define STM32_UART_USART3_IRQ_PRIORITY 12 +#define STM32_UART_USART6_IRQ_PRIORITY 12 +#define STM32_UART_USART1_DMA_PRIORITY 0 +#define STM32_UART_USART2_DMA_PRIORITY 0 +#define STM32_UART_USART3_DMA_PRIORITY 0 +#define STM32_UART_USART6_DMA_PRIORITY 0 +#define STM32_UART_DMA_ERROR_HOOK(uartp) chSysHalt() + +/* + * USB driver system settings. + */ +#define STM32_USB_USE_OTG1 FALSE +#define STM32_USB_USE_OTG2 TRUE +#define STM32_USE_USB_OTG2_ULPI TRUE +#define STM32_USE_USB_OTG2_HS TRUE +#define STM32_USE_USB_OTG2_HS_FS FALSE +#define STM32_USB_OTG1_IRQ_PRIORITY 14 +#define STM32_USB_OTG2_IRQ_PRIORITY 14 +#define STM32_USB_OTG1_RX_FIFO_SIZE 512 +#define STM32_USB_OTG2_RX_FIFO_SIZE 1024 +#define STM32_USB_OTG_THREAD_PRIO LOWPRIO +#define STM32_USB_OTG_THREAD_STACK_SIZE 128 +#define STM32_USB_OTGFIFO_FILL_BASEPRI 0 + + diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/readme.txt b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/readme.txt new file mode 100644 index 0000000000..a3505cb526 --- /dev/null +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/readme.txt @@ -0,0 +1,35 @@ +***************************************************************************** +** ChibiOS/RT port for ARM-Cortex-M4 STM32F407. ** +***************************************************************************** + +** TARGET ** + +The demo runs on an WaveShare STM32F4 Open 407I-C board. + +** The Demo ** + +This will demonstrate the use of a Composite USB Mass Storage and Virtual COM + device over the high speed ULPI interface to access an SD card and serial + interface. + +** Build Procedure ** + +Refer to demo_picture.jpg. + +Make sure you do not plug anything into the other pin headers on the board. +Only connect the USB3300 board, the SD board, and optionally the ethernet +board. Most of the other pin headers conflict with either the SDIO pins +or the ULPI pins. You can see debug output on pins PD5 and PD6 of the header. + +The demo has been tested by using the free Codesourcery GCC-based toolchain. +Just modify the TRGT line in the makefile in order to use different GCC +toolchains. + +** Notes ** + +Some files used by the demo are not part of ChibiOS/RT but are copyright of +ST Microelectronics and are licensed under a different license. +Also note that not all the files present in the ST library are distributed +with ChibiOS/RT, you can find the whole library on the ST web site: + + http://www.st.com diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd.c new file mode 100644 index 0000000000..e80fd6993e --- /dev/null +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd.c @@ -0,0 +1,808 @@ +#include "ch.h" +#include "hal.h" +#include "usb_msd_cfg.h" +#include "usb_msd.h" +#include "chprintf.h" + +#define MSD_ENABLE_PERF_DEBUG_GPIOS FALSE + +#define MSD_DEBUG FALSE +#define msd_debug_print(args ...) if (MSD_DEBUG) { chprintf(args); } + + + +#if HAL_USE_SERIAL_USB +# ifndef MSD_USB_DRIVER_EXT_FIELDS_NAME +# error "The serial usb driver and the mass storage driver both use the USBD->param variable and they conflict, you must define MSD_USB_DRIVER_EXT_FIELDS_NAME for these to work concurently." +# endif +#endif + + +extern const USBConfig msd_usb_config; + + + +static BaseSequentialStream *chp = (BaseSequentialStream *)&SD2; + +static WORKING_AREA(waMassStorage, 1024); +static WORKING_AREA(waMassStorageUSBTransfer, 1024); + +static msg_t MassStorageUSBTransferThd(void *arg); +static msg_t MassStorageThd(void *arg); + +static Thread *msdThd = NULL; +static Thread *msdUSBTransferThd = NULL; + +#define WAIT_ISR_SUCCESS 0 +#define WAIT_ISR_BUSS_RESET_OR_RECONNECT 1 +static uint8_t WaitForISR(USBMassStorageDriver *msdp, const bool_t check_reset); + +#define BLOCK_SIZE_INCREMENT 512 +#define BLOCK_WRITE_ITTERATION_COUNT 32 + +typedef struct { + uint8_t is_transfer_done; + /*Number of blocks actually read from USB IN endpont that should be written to SD card*/ + int num_blocks_to_write; + /*Number of blocks to read from USB IN endpoint*/ + int max_blocks_to_read; + uint8_t buf[(BLOCK_SIZE_INCREMENT * BLOCK_WRITE_ITTERATION_COUNT)]; +} rw_usb_sd_buffer_t; + +static volatile rw_usb_sd_buffer_t rw_ping_pong_buffer[2]; +static uint8_t read_buffer[2][BLOCK_SIZE_INCREMENT]; + +inline uint32_t swap_uint32( uint32_t val ) { + val = ((val << 8) & 0xFF00FF00 ) | ((val >> 8) & 0xFF00FF ); + return ((val << 16) & 0xFFFF0000) | ((val >> 16) & 0x0000FFFF); +} + +#define swap_uint16(x) ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8)) + +#if !defined(MSD_RW_LED_ON) +#define MSD_RW_LED_ON() +#endif + +#if !defined(MSD_RW_LED_OFF) +#define MSD_RW_LED_OFF() +#endif + + + +/*===========================================================================*/ +/* USB related stuff. */ +/*===========================================================================*/ + + +/** + * @brief Default requests hook. + * + * @param[in] usbp pointer to the @p USBDriver object + * @return The hook status. + * @retval TRUE Message handled internally. + * @retval FALSE Message not handled. + */ +bool_t msdRequestsHook(USBDriver *usbp) { + + if (((usbp->setup[0] & USB_RTYPE_TYPE_MASK) == USB_RTYPE_TYPE_CLASS) && + ((usbp->setup[0] & USB_RTYPE_RECIPIENT_MASK) == USB_RTYPE_RECIPIENT_INTERFACE)) { + /* check that the request is for interface 0.*/ + if(MSD_SETUP_INDEX(usbp->setup) != 0) + return FALSE; + + /* act depending on bRequest = setup[1] */ + switch(usbp->setup[1]) { + case MSD_REQ_RESET: + /* check that it is a HOST2DEV request */ + if(((usbp->setup[0] & USB_RTYPE_DIR_MASK) != USB_RTYPE_DIR_HOST2DEV) || + (MSD_SETUP_LENGTH(usbp->setup) != 0) || + (MSD_SETUP_VALUE(usbp->setup) != 0)) + return FALSE; + + /* reset all endpoints */ + /* TODO!*/ + /* The device shall NAK the status stage of the device request until + * the Bulk-Only Mass Storage Reset is complete. + */ + return TRUE; + case MSD_GET_MAX_LUN: + /* check that it is a DEV2HOST request */ + if(((usbp->setup[0] & USB_RTYPE_DIR_MASK) != USB_RTYPE_DIR_DEV2HOST) || + (MSD_SETUP_LENGTH(usbp->setup) != 1) || + (MSD_SETUP_VALUE(usbp->setup) != 0)) + return FALSE; + + static uint8_t len_buf[1] = {0}; + /* stall to indicate that we don't support LUN */ + usbSetupTransfer(usbp, len_buf, 1, NULL); + return TRUE; + default: + return FALSE; + break; + } + } + return FALSE; +} + +static uint8_t WaitForISR(USBMassStorageDriver *msdp, const bool_t check_reset) { + uint8_t ret = WAIT_ISR_SUCCESS; + /* sleep until it completes */ + chSysLock(); + if( check_reset ) { + for(;;) { + const msg_t m = chBSemWaitTimeoutS(&msdp->bsem, 1); + if( m == RDY_OK ) { + break; + } + + if( msdp->reconfigured_or_reset_event ) { + ret = WAIT_ISR_BUSS_RESET_OR_RECONNECT; + break; + } + } + } else { + chBSemWaitS(&msdp->bsem); + } + + chSysUnlock(); + return(ret); +} + +void msdUsbEvent(USBDriver *usbp, usbep_t ep) { + (void)usbp; + (void)ep; + + chSysLockFromIsr(); + chBSemSignalI(&((USBMassStorageDriver *)usbp->USBD_PARAM_NAME)->bsem); + chSysUnlockFromIsr(); +} + + + + + +static inline void SCSISetSense(USBMassStorageDriver *msdp, uint8_t key, uint8_t acode, uint8_t aqual) { + msdp->sense.byte[2] = key; + msdp->sense.byte[12] = acode; + msdp->sense.byte[13] = aqual; +} + +bool_t SCSICommandInquiry(USBMassStorageDriver *msdp) { + msd_cbw_t *cbw = &(msdp->cbw); + + static const scsi_inquiry_response_t inquiry = { + 0x00, // direct access block device + 0x80, // removable + 0x04, // SPC-2 + 0x02, // response data format + 0x20, // response has 0x20 + 4 bytes + 0x00, + 0x00, + 0x00, + "Chibios", + "Mass Storage", + {'v',CH_KERNEL_MAJOR+'0','.',CH_KERNEL_MINOR+'0'}, + }; + + if((cbw->scsi_cmd_data[1] & ((1 << 0) | (1 << 1))) || + cbw->scsi_cmd_data[2]) { + /* Optional but unsupported bits set - update the SENSE key and fail the request */ + SCSISetSense( msdp, + SCSI_SENSE_KEY_ILLEGAL_REQUEST, + SCSI_ASENSE_INVALID_FIELD_IN_CDB, + SCSI_ASENSEQ_NO_QUALIFIER); + + return FALSE; + } + + usbPrepareTransmit(msdp->usbp, USB_MS_DATA_EP, (uint8_t *)&inquiry, + sizeof(scsi_inquiry_response_t)); + + chSysLock(); + usbStartTransmitI(msdp->usbp, USB_MS_DATA_EP); + chSysUnlock(); + + msdp->result = TRUE; + + /* wait for ISR */ + return TRUE; +} + +bool_t SCSICommandRequestSense(USBMassStorageDriver *msdp) { + usbPrepareTransmit(msdp->usbp, USB_MS_DATA_EP, (uint8_t *)&msdp->sense, + sizeof(scsi_sense_response_t)); + + chSysLock(); + usbStartTransmitI(msdp->usbp, USB_MS_DATA_EP); + chSysUnlock(); + + msdp->result = TRUE; + + /* wait for ISR */ + return TRUE; +} + +bool_t SCSICommandReadCapacity10(USBMassStorageDriver *msdp) { + static SCSIReadCapacity10Response_t response; + + response.block_size = swap_uint32(msdp->block_dev_info.blk_size); + response.last_block_addr = swap_uint32(msdp->block_dev_info.blk_num-1); + + usbPrepareTransmit(msdp->usbp, USB_MS_DATA_EP, (uint8_t *)&response, + sizeof(SCSIReadCapacity10Response_t)); + + chSysLock(); + usbStartTransmitI(msdp->usbp, USB_MS_DATA_EP); + chSysUnlock(); + + msdp->result = TRUE; + + /* wait for ISR */ + return TRUE; +} + +bool_t SCSICommandSendDiagnostic(USBMassStorageDriver *msdp) { + msd_cbw_t *cbw = &(msdp->cbw); + + if( (!cbw->scsi_cmd_data[1]) & (1 << 2)) { + /* Only self-test supported - update SENSE key and fail the command */ + SCSISetSense( msdp, + SCSI_SENSE_KEY_ILLEGAL_REQUEST, + SCSI_ASENSE_INVALID_FIELD_IN_CDB, + SCSI_ASENSEQ_NO_QUALIFIER); + + return FALSE; + } + + /* TODO: actually perform the test */ + msdp->result = TRUE; + + /* don't wait for ISR */ + return FALSE; +} + +void SCSIWriteTransferPingPong(USBMassStorageDriver *msdp, volatile rw_usb_sd_buffer_t *dest_buffer) { + int cnt; + dest_buffer->is_transfer_done = FALSE; + dest_buffer->num_blocks_to_write = 0; + +#if MSD_ENABLE_PERF_DEBUG_GPIOS + palSetPad(GPIOH, GPIOH_LED2); +#endif + for(cnt = 0; cnt < BLOCK_WRITE_ITTERATION_COUNT && cnt < dest_buffer->max_blocks_to_read; cnt++ ) { + usbPrepareReceive(msdp->usbp, USB_MS_DATA_EP, (uint8_t*)&dest_buffer->buf[cnt * BLOCK_SIZE_INCREMENT], (msdp->block_dev_info.blk_size)); + + chSysLock(); + usbStartReceiveI(msdp->usbp, USB_MS_DATA_EP); + chSysUnlock(); + + WaitForISR(msdp, FALSE); + dest_buffer->num_blocks_to_write++; + } + dest_buffer->is_transfer_done = TRUE; +#if MSD_ENABLE_PERF_DEBUG_GPIOS + palClearPad(GPIOH, GPIOH_LED2); +#endif +} + +static void WaitForUSBTransferComplete(USBMassStorageDriver *msdp, const int ping_pong_buffer_index) { + while(TRUE) { + chBSemWaitTimeout(&msdp->mass_sorage_thd_bsem, MS2ST(1)); + + if( rw_ping_pong_buffer[ping_pong_buffer_index].is_transfer_done ) { + break; + } else { + chThdSleepMilliseconds(1); + } + } +} + +bool_t SCSICommandStartReadWrite10(USBMassStorageDriver *msdp) { + msd_cbw_t *cbw = &(msdp->cbw); + int read_success; + int retry_count; + + if((cbw->scsi_cmd_data[0] == SCSI_CMD_WRITE_10) && + blkIsWriteProtected(msdp->bbdp)) { + /* device is write protected and a write has been issued */ + /* Block address is invalid, update SENSE key and return command fail */ + SCSISetSense( msdp, + SCSI_SENSE_KEY_DATA_PROTECT, + SCSI_ASENSE_WRITE_PROTECTED, + SCSI_ASENSEQ_NO_QUALIFIER); + msdp->result = FALSE; + return FALSE; + } + + uint32_t rw_block_address = swap_uint32(*(uint32_t *)&cbw->scsi_cmd_data[2]); + const uint16_t total_blocks = swap_uint16(*(uint16_t *)&cbw->scsi_cmd_data[7]); + uint16_t i = 0; + + if(rw_block_address >= msdp->block_dev_info.blk_num) { + /* Block address is invalid, update SENSE key and return command fail */ + SCSISetSense( msdp, + SCSI_SENSE_KEY_DATA_PROTECT, + SCSI_ASENSE_WRITE_PROTECTED, + SCSI_ASENSEQ_NO_QUALIFIER); + msdp->result = FALSE; + + /* don't wait for ISR */ + return FALSE; + } + + for(i = 0; i < 2; i++ ) { + //initialized ping pong buffer + rw_ping_pong_buffer[i].max_blocks_to_read = 0; + rw_ping_pong_buffer[i].num_blocks_to_write = 0; + rw_ping_pong_buffer[i].is_transfer_done = FALSE; + } + + + if(cbw->scsi_cmd_data[0] == SCSI_CMD_WRITE_10) { + /* loop over each block */ + + int ping_pong_buffer_index = 0; + //initiate a transfer + rw_ping_pong_buffer[ping_pong_buffer_index].is_transfer_done = FALSE; + rw_ping_pong_buffer[ping_pong_buffer_index].max_blocks_to_read = total_blocks; + msdp->trigger_transfer_index = ping_pong_buffer_index;//Trigger the transfer in the other thread + + //wake other thread on semaphore to trigger the transfer + chBSemSignal(&msdp->usb_transfer_thread_bsem); + + WaitForUSBTransferComplete(msdp, ping_pong_buffer_index); + + for(i = 0; i < total_blocks; ) { + const int done_buffer_index = ping_pong_buffer_index; + const int empty_buffer_index = ((ping_pong_buffer_index + 1) % 2); + + //initiate another transfer in the other ping pong buffer + int queue_another_transfer = FALSE; + if( (i + BLOCK_WRITE_ITTERATION_COUNT) < total_blocks ) { + queue_another_transfer = TRUE; + } + + if( queue_another_transfer ) { + while( TRUE ) { + if(msdp->trigger_transfer_index == UINT32_MAX) { + rw_ping_pong_buffer[empty_buffer_index].max_blocks_to_read = total_blocks - i - BLOCK_WRITE_ITTERATION_COUNT; + + msdp->trigger_transfer_index = empty_buffer_index; + + //wake other thread on semaphore to trigger the transfer + chBSemSignal(&msdp->usb_transfer_thread_bsem); + break; + } else { + chThdSleepMilliseconds(1); + } + } + } + + + + + if( rw_ping_pong_buffer[done_buffer_index].num_blocks_to_write <= 0 ) { + /*This should never happen!!! Something is seriously wrong!*/ + msd_debug_print(chp, "\r\nCant write 0 blocks, this should not happen, halting\r\n"); + chThdSleepMilliseconds(50); + chSysHalt(); + } + + /* now write the block to the block device */ + if(blkWrite(msdp->bbdp, rw_block_address, (uint8_t*)rw_ping_pong_buffer[done_buffer_index].buf, + rw_ping_pong_buffer[done_buffer_index].num_blocks_to_write) == CH_FAILED ) { + + msd_debug_print(chp, "\r\nSD Block Write Error, halting\r\n"); + chThdSleepMilliseconds(50); + msdp->result = FALSE; + SCSISetSense( msdp, + SCSI_SENSE_KEY_MEDIUM_ERROR, + SCSI_ASENSE_NO_ADDITIONAL_INFORMATION, + SCSI_ASENSEQ_NO_QUALIFIER); + + if( queue_another_transfer ) { + /*Let the previous queued transfer finish and ignore it.*/ + WaitForUSBTransferComplete(msdp, empty_buffer_index); + } + + return(FALSE); + } + rw_block_address += rw_ping_pong_buffer[done_buffer_index].num_blocks_to_write; + i += rw_ping_pong_buffer[done_buffer_index].num_blocks_to_write; + rw_ping_pong_buffer[done_buffer_index].is_transfer_done = FALSE; + rw_ping_pong_buffer[done_buffer_index].num_blocks_to_write = 0; + + + if( queue_another_transfer ) { + WaitForUSBTransferComplete(msdp, empty_buffer_index); + } + + //Swap the ping pong buffers + ping_pong_buffer_index = empty_buffer_index; + } + + } else { + i = 0; + /* read the first block from block device */ + read_success = FALSE; + for(retry_count = 0; retry_count < 3; retry_count++ ) { + if(blkRead(msdp->bbdp, rw_block_address, read_buffer[i % 2], 1) == CH_FAILED) { + msd_debug_print(chp, "\r\nSD Block Read Error\r\n"); + } else { + read_success = TRUE; + break; + } + } + if( (!read_success) ) { + msd_debug_print(chp, "\r\nSD Block Read Error 1, halting\r\n"); + chThdSleepMilliseconds(70);//wait for printing to finish + msdp->result = FALSE; + + msd_debug_print(chp, "\r\nSetting sense code %u\r\n", SCSI_SENSE_KEY_MEDIUM_ERROR); + SCSISetSense( msdp, + SCSI_SENSE_KEY_MEDIUM_ERROR, + SCSI_ASENSE_NO_ADDITIONAL_INFORMATION, + SCSI_ASENSEQ_NO_QUALIFIER); + return FALSE; + } + rw_block_address++; + + /* loop over each block */ + for(i = 0; i < total_blocks; i++) { + /* transmit the block */ + usbPrepareTransmit(msdp->usbp, USB_MS_DATA_EP, read_buffer[i % 2], + msdp->block_dev_info.blk_size); + + chSysLock(); + usbStartTransmitI(msdp->usbp, USB_MS_DATA_EP); + chSysUnlock(); + + if(i < (total_blocks - 1)) { + /* there is at least one more block to be read from device */ + /* so read that while the USB transfer takes place */ + read_success = FALSE; + for(retry_count = 0; retry_count < 3; retry_count++ ) { + if(blkRead(msdp->bbdp, rw_block_address, read_buffer[(i+1) % 2], 1) == CH_FAILED ) { + msd_debug_print(chp, "\r\nSD Block Read Error 2\r\n"); + } else { + read_success = TRUE; + break; + } + } + + if( (! read_success) ) { + msd_debug_print(chp, "\r\nSD Block Read Error 22, addr=%d, halting\r\n", rw_block_address); + chThdSleepMilliseconds(70);//wait for printing to finish + msdp->result = FALSE; + msd_debug_print(chp, "\r\nSetting sense code %u\r\n", SCSI_SENSE_KEY_MEDIUM_ERROR); + SCSISetSense( msdp, + SCSI_SENSE_KEY_MEDIUM_ERROR, + SCSI_ASENSE_NO_ADDITIONAL_INFORMATION, + SCSI_ASENSEQ_NO_QUALIFIER); + return FALSE; + } + + rw_block_address++; + } + + /*FIXME In the event that the USB connection is unplugged while we're waiting for a bulk + * endpoint ISR, this will never return, and when re-plugged into the host, the drive will + * not show back up on the host. We need a way to break out of this loop when disconnected from the bus. + */ + if( WaitForISR(msdp, TRUE) == WAIT_ISR_BUSS_RESET_OR_RECONNECT ) { + msdp->result = FALSE; + return FALSE; + } + } + } + + msdp->result = TRUE; + + /* don't wait for ISR */ + return FALSE; +} + +bool_t SCSICommandStartStopUnit(USBMassStorageDriver *msdp) { + SCSIStartStopUnitRequest_t *ssu = (SCSIStartStopUnitRequest_t *)&(msdp->cbw.scsi_cmd_data); + + if((ssu->loej_start & 0b00000011) == 0b00000010) { + /* device has been ejected */ + chEvtBroadcast(&msdp->evt_ejected); + + msdp->state = ejected; + } + + msdp->result = TRUE; + + /* don't wait for ISR */ + return FALSE; +} + +bool_t SCSICommandModeSense6(USBMassStorageDriver *msdp) { + /* Send an empty header response with the Write Protect flag status */ + /* TODO set byte3 to 0x80 if disk is read only */ + static uint8_t response[4] = {0x00, 0x00, 0x00, 0x00}; + + usbPrepareTransmit(msdp->usbp, USB_MS_DATA_EP, response, 4); + + chSysLock(); + usbStartTransmitI(msdp->usbp, USB_MS_DATA_EP); + chSysUnlock(); + + msdp->result = TRUE; + + /* wait for ISR */ + return TRUE; +} + +bool_t msdWaitForCommandBlock(USBMassStorageDriver *msdp) { + usbPrepareReceive(msdp->usbp, USB_MS_DATA_EP, + (uint8_t *)&msdp->cbw, sizeof(msd_cbw_t)); + + chSysLock(); + usbStartReceiveI(msdp->usbp, USB_MS_DATA_EP); + chSysUnlock(); + + msdp->state = read_cmd_block; + + /* wait for ISR */ + return TRUE; +} + + + +/* A command block has been received */ +bool_t msdReadCommandBlock(USBMassStorageDriver *msdp) { + msd_cbw_t *cbw = &(msdp->cbw); + + /* by default transition back to the idle state */ + msdp->state = idle; + + /* check the command */ + if((cbw->signature != MSD_CBW_SIGNATURE) || + (cbw->lun > 0) || + ((cbw->data_len > 0) && (cbw->flags & 0x1F)) || + (cbw->scsi_cmd_len == 0) || + (cbw->scsi_cmd_len > 16)) { + + /* stall both IN and OUT endpoints */ + chSysLockFromIsr(); + usbStallReceiveI(msdp->usbp, USB_MS_DATA_EP); + chSysUnlockFromIsr(); + + /* don't wait for ISR */ + return FALSE; + } + + bool_t sleep = FALSE; + switch(cbw->scsi_cmd_data[0]) { + case SCSI_CMD_INQUIRY: + msd_debug_print(chp, "CMD_INQ\r\n"); + sleep = SCSICommandInquiry(msdp); + break; + case SCSI_CMD_REQUEST_SENSE: + msd_debug_print(chp, "\r\nCMD_RS\r\n"); + sleep = SCSICommandRequestSense(msdp); + break; + case SCSI_CMD_READ_CAPACITY_10: + msd_debug_print(chp, "CMD_RC10\r\n"); + sleep = SCSICommandReadCapacity10(msdp); + break; + case SCSI_CMD_READ_10: + case SCSI_CMD_WRITE_10: + msd_debug_print(chp, "CMD_RW\r\n"); + MSD_RW_LED_ON(); + sleep = SCSICommandStartReadWrite10(msdp); + MSD_RW_LED_OFF(); + break; + case SCSI_CMD_SEND_DIAGNOSTIC: + msd_debug_print(chp, "CMD_DIA\r\n"); + sleep = SCSICommandSendDiagnostic(msdp); + break; + case SCSI_CMD_TEST_UNIT_READY: + case SCSI_CMD_PREVENT_ALLOW_MEDIUM_REMOVAL: + case SCSI_CMD_VERIFY_10: + /* don't handle */ + msdp->result = TRUE; + break; + case SCSI_CMD_MODE_SENSE_6: + msd_debug_print(chp, "\r\nCMD_S6\r\n"); + sleep = SCSICommandModeSense6(msdp); + break; + case SCSI_CMD_START_STOP_UNIT: + msd_debug_print(chp, "CMD_STOP\r\n"); + sleep = SCSICommandStartStopUnit(msdp); + break; + default: + SCSISetSense( msdp, + SCSI_SENSE_KEY_ILLEGAL_REQUEST, + SCSI_ASENSE_INVALID_COMMAND, + SCSI_ASENSEQ_NO_QUALIFIER); + + /* stall IN endpoint */ + chSysLockFromIsr(); + usbStallTransmitI(msdp->usbp, USB_MS_DATA_EP); + chSysUnlockFromIsr(); + + cbw->data_len = 0; + return FALSE; + } + + cbw->data_len = 0; + + if(msdp->result) { + /* update sense with success status */ + SCSISetSense( msdp, + SCSI_SENSE_KEY_GOOD, + SCSI_ASENSE_NO_ADDITIONAL_INFORMATION, + SCSI_ASENSEQ_NO_QUALIFIER); + } else { + /* stall IN endpoint */ + chSysLockFromIsr(); + usbStallTransmitI(msdp->usbp, USB_MS_DATA_EP); + chSysUnlockFromIsr(); + + cbw->data_len = 0; + return FALSE; + } + + if(sleep) { + if( WaitForISR(msdp, TRUE) == WAIT_ISR_BUSS_RESET_OR_RECONNECT ) { + return(FALSE); + } + } + + msd_csw_t *csw = &(msdp->csw); + + if( (!msdp->result) && cbw->data_len ) { + /* still bytes left to send, this is too early to send CSW? */ + chSysLockFromIsr(); + usbStallReceiveI(msdp->usbp, USB_MS_DATA_EP); + usbStallTransmitI(msdp->usbp, USB_MS_DATA_EP); + chSysUnlockFromIsr(); + + return FALSE; + } + + csw->status = (msdp->result) ? MSD_COMMAND_PASSED : MSD_COMMAND_FAILED; + csw->signature = MSD_CSW_SIGNATURE; + csw->data_residue = cbw->data_len; + csw->tag = cbw->tag; + + usbPrepareTransmit(msdp->usbp, USB_MS_DATA_EP, (uint8_t *)csw, + sizeof(msd_csw_t)); + + chSysLock(); + usbStartTransmitI(msdp->usbp, USB_MS_DATA_EP); + chSysUnlock(); + + /* wait on ISR */ + return TRUE; +} + +static msg_t MassStorageUSBTransferThd(void *arg) { + USBMassStorageDriver *msdp = (USBMassStorageDriver *)arg; + + for(;;) { + if( msdp->trigger_transfer_index != UINT32_MAX ) { + SCSIWriteTransferPingPong(msdp, &rw_ping_pong_buffer[msdp->trigger_transfer_index]); + msdp->trigger_transfer_index = UINT32_MAX; + //notify other thread + chBSemSignal(&msdp->mass_sorage_thd_bsem); + } + + chBSemWaitTimeout(&msdp->usb_transfer_thread_bsem, MS2ST(1)); + } + + return(0); +} + +static msg_t MassStorageThd(void *arg) { + USBMassStorageDriver *msdp = (USBMassStorageDriver *)arg; + + chRegSetThreadName("USB-MSD"); + + bool_t wait_for_isr = FALSE; + + /* wait for the usb to be initialized */ + msd_debug_print(chp, "Y"); + WaitForISR(msdp, FALSE); + msd_debug_print(chp, "y"); + + while (TRUE) { + wait_for_isr = FALSE; + + if( msdp->reconfigured_or_reset_event ) { + /*If the devices is unplugged and re-plugged but did not have a CPU reset, + * we must set the state back to idle.*/ + msdp->reconfigured_or_reset_event = FALSE; + msdp->state = idle; + } + + msd_debug_print(chp, "state=%d\r\n", msdp->state); + /* wait on data depending on the current state */ + switch(msdp->state) { + case idle: + msd_debug_print(chp, "IDL"); + wait_for_isr = msdWaitForCommandBlock(msdp); + msd_debug_print(chp, "x\r\n"); + break; + case read_cmd_block: + msd_debug_print(chp, "RCB"); + wait_for_isr = msdReadCommandBlock(msdp); + msd_debug_print(chp, "x\r\n"); + break; + case ejected: + /* disconnect usb device */ + msd_debug_print(chp, "ejected\r\n"); + chThdSleepMilliseconds(70); + usbDisconnectBus(msdp->usbp); + usbStop(msdp->usbp); + chThdExit(0); + return 0; + } + + /* wait until the ISR wakes thread */ + if( wait_for_isr && (!msdp->reconfigured_or_reset_event) ) { + msd_debug_print(chp, "W"); + WaitForISR(msdp, FALSE); + msd_debug_print(chp, "w"); + } + } + + return 0; +} + +void msdInit(USBDriver *usbp, BaseBlockDevice *bbdp, USBMassStorageDriver *msdp) { + uint8_t i; + + msdp->usbp = usbp; + msdp->state = idle; + msdp->trigger_transfer_index = UINT32_MAX; + msdp->bbdp = bbdp; + + chEvtInit(&msdp->evt_connected); + chEvtInit(&msdp->evt_ejected); + + /* Initialize binary semaphore as taken, will cause the thread to initially wait on the */ + chBSemInit(&msdp->bsem, TRUE); + /* Initialize binary semaphore as NOT taken */ + chBSemInit(&msdp->usb_transfer_thread_bsem, FALSE); + chBSemInit(&msdp->mass_sorage_thd_bsem, FALSE); + + /* Initialize sense values to zero */ + for(i = 0; i < sizeof(scsi_sense_response_t); i++) + msdp->sense.byte[i] = 0x00; + + /* Response code = 0x70, additional sense length = 0x0A */ + msdp->sense.byte[0] = 0x70; + msdp->sense.byte[7] = 0x0A; + + /* make sure block device is working and get info */ + while(TRUE) { + blkstate_t state = blkGetDriverState(bbdp); + if(state == BLK_READY) + break; + + chThdSleepMilliseconds(50); + } + + blkGetInfo(bbdp, &msdp->block_dev_info); + + usbDisconnectBus(usbp); + chThdSleepMilliseconds(200); + usbp->USBD_PARAM_NAME = (void *)msdp; + + usbStart(usbp, &msd_usb_config); + usbConnectBus(usbp); + + if(msdThd == NULL) { + msdThd = chThdCreateStatic(waMassStorage, sizeof(waMassStorage), + NORMALPRIO, MassStorageThd, msdp); + } + + if(msdUSBTransferThd == NULL) { + msdUSBTransferThd = chThdCreateStatic(waMassStorageUSBTransfer, sizeof(waMassStorageUSBTransfer), + NORMALPRIO, MassStorageUSBTransferThd, msdp); + } +} diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd.h b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd.h new file mode 100644 index 0000000000..b0256344bb --- /dev/null +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd.h @@ -0,0 +1,150 @@ +#include "board.h" +#define MSD_RW_LED_ON() palSetPad(GPIOI, GPIOI_LED4); +#define MSD_RW_LED_OFF() palClearPad(GPIOI, GPIOI_LED4); + + + + + + + +#define MSD_REQ_RESET 0xFF +#define MSD_GET_MAX_LUN 0xFE +#define MSD_CBW_SIGNATURE 0x43425355 +#define MSD_CSW_SIGNATURE 0x53425355 +#define MSD_COMMAND_DIR_DATA_OUT (0 << 7) +#define MSD_COMMAND_DIR_DATA_IN (1 << 7) + +#define MSD_SETUP_WORD(setup, index) (uint16_t)(((uint16_t)setup[index+1] << 8) | (setup[index] & 0x00FF)) + +#define MSD_SETUP_VALUE(setup) MSD_SETUP_WORD(setup, 2) +#define MSD_SETUP_INDEX(setup) MSD_SETUP_WORD(setup, 4) +#define MSD_SETUP_LENGTH(setup) MSD_SETUP_WORD(setup, 6) + +#define SCSI_CMD_INQUIRY 0x12 +#define SCSI_CMD_REQUEST_SENSE 0x03 +#define SCSI_CMD_READ_CAPACITY_10 0x25 +#define SCSI_CMD_READ_10 0x28 +#define SCSI_CMD_WRITE_10 0x2A +#define SCSI_CMD_TEST_UNIT_READY 0x00 +#define SCSI_CMD_PREVENT_ALLOW_MEDIUM_REMOVAL 0x1E +#define SCSI_CMD_VERIFY_10 0x2F +#define SCSI_CMD_SEND_DIAGNOSTIC 0x1D +#define SCSI_CMD_MODE_SENSE_6 0x1A +#define SCSI_CMD_START_STOP_UNIT 0x1B + +#define MSD_COMMAND_PASSED 0x00 +#define MSD_COMMAND_FAILED 0x01 +#define MSD_COMMAND_PHASE_ERROR 0x02 + +#define SCSI_SENSE_KEY_GOOD 0x00 +#define SCSI_SENSE_KEY_RECOVERED_ERROR 0x01 +#define SCSI_SENSE_KEY_NOT_READY 0x02 +#define SCSI_SENSE_KEY_MEDIUM_ERROR 0x03 +#define SCSI_SENSE_KEY_HARDWARE_ERROR 0x04 +#define SCSI_SENSE_KEY_ILLEGAL_REQUEST 0x05 +#define SCSI_SENSE_KEY_UNIT_ATTENTION 0x06 +#define SCSI_SENSE_KEY_DATA_PROTECT 0x07 +#define SCSI_SENSE_KEY_BLANK_CHECK 0x08 +#define SCSI_SENSE_KEY_VENDOR_SPECIFIC 0x09 +#define SCSI_SENSE_KEY_COPY_ABORTED 0x0A +#define SCSI_SENSE_KEY_ABORTED_COMMAND 0x0B +#define SCSI_SENSE_KEY_VOLUME_OVERFLOW 0x0D +#define SCSI_SENSE_KEY_MISCOMPARE 0x0E +#define SCSI_ASENSE_NO_ADDITIONAL_INFORMATION 0x00 +#define SCSI_ASENSE_LOGICAL_UNIT_NOT_READY 0x04 +#define SCSI_ASENSE_INVALID_FIELD_IN_CDB 0x24 +#define SCSI_ASENSE_NOT_READY_TO_READY_CHANGE 0x28 +#define SCSI_ASENSE_WRITE_PROTECTED 0x27 +#define SCSI_ASENSE_FORMAT_ERROR 0x31 +#define SCSI_ASENSE_INVALID_COMMAND 0x20 +#define SCSI_ASENSE_LOGICAL_BLOCK_ADDRESS_OUT_OF_RANGE 0x21 +#define SCSI_ASENSE_MEDIUM_NOT_PRESENT 0x3A +#define SCSI_ASENSEQ_NO_QUALIFIER 0x00 +#define SCSI_ASENSEQ_FORMAT_COMMAND_FAILED 0x01 +#define SCSI_ASENSEQ_INITIALIZING_COMMAND_REQUIRED 0x02 +#define SCSI_ASENSEQ_OPERATION_IN_PROGRESS 0x07 + +PACK_STRUCT_BEGIN typedef struct { + uint32_t signature; + uint32_t tag; + uint32_t data_len; + uint8_t flags; + uint8_t lun; + uint8_t scsi_cmd_len; + uint8_t scsi_cmd_data[16]; +} PACK_STRUCT_STRUCT msd_cbw_t PACK_STRUCT_END; + +PACK_STRUCT_BEGIN typedef struct { + uint32_t signature; + uint32_t tag; + uint32_t data_residue; + uint8_t status; +} PACK_STRUCT_STRUCT msd_csw_t PACK_STRUCT_END; + +typedef struct { + uint8_t byte[18]; +} __attribute__ ((packed)) scsi_sense_response_t; + +PACK_STRUCT_BEGIN typedef struct +{ + uint8_t peripheral; + uint8_t removable; + uint8_t version; + uint8_t response_data_format; + uint8_t additional_length; + uint8_t sccstp; + uint8_t bqueetc; + uint8_t cmdque; + uint8_t vendorID[8]; + uint8_t productID[16]; + uint8_t productRev[4]; +} PACK_STRUCT_STRUCT scsi_inquiry_response_t PACK_STRUCT_END; + +PACK_STRUCT_BEGIN typedef struct { + uint32_t last_block_addr; + uint32_t block_size; +} PACK_STRUCT_STRUCT SCSIReadCapacity10Response_t PACK_STRUCT_END; + +PACK_STRUCT_BEGIN typedef struct { + uint8_t op_code; + uint8_t lun_immed; + uint8_t res1; + uint8_t res2; + uint8_t loej_start; + uint8_t control; +} PACK_STRUCT_STRUCT SCSIStartStopUnitRequest_t; + +typedef struct USBMassStorageDriver USBMassStorageDriver; + +typedef enum { idle, read_cmd_block, ejected} msd_state_t; + +struct USBMassStorageDriver { + USBDriver *usbp; + BinarySemaphore bsem; + BinarySemaphore usb_transfer_thread_bsem; + BinarySemaphore mass_sorage_thd_bsem; + BaseBlockDevice *bbdp; + EventSource evt_connected, evt_ejected; + BlockDeviceInfo block_dev_info; + msd_state_t state; + msd_cbw_t cbw; + msd_csw_t csw; + scsi_sense_response_t sense; + bool_t result; + bool_t reconfigured_or_reset_event; + uint32_t trigger_transfer_index; +}; + +#define MSD_CONNECTED 0 +#define MSD_EJECTED 1 + +#ifdef __cplusplus +extern "C" { +#endif +void msdInit(USBDriver *usbp, BaseBlockDevice *bdp, USBMassStorageDriver *msdp); +void msdUsbEvent(USBDriver *usbp, usbep_t ep); +bool_t msdRequestsHook(USBDriver *usbp); +#ifdef __cplusplus +} +#endif diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd_cfg.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd_cfg.c new file mode 100644 index 0000000000..4b402b12b1 --- /dev/null +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd_cfg.c @@ -0,0 +1,250 @@ +/* + ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, + 2011,2012,2013 Giovanni Di Sirio. + + This file is part of ChibiOS/RT. + + ChibiOS/RT is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + ChibiOS/RT is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#include "ch.h" +#include "hal.h" +#include "usb_msd_cfg.h" +#include "usb_msd.h" + + +/* + * USB Device Descriptor. + */ +static const uint8_t msd_device_descriptor_data[18] = { + USB_DESC_DEVICE (0x0200, /* bcdUSB (2.0). */ + 0x00, /* bDeviceClass (None). */ + 0x00, /* bDeviceSubClass. */ + 0x00, /* bDeviceProtocol. */ + 0x40, /* Control Endpoint Size. */ + 0x0483, /* idVendor (ST). */ + 0x5742, /* idProduct. */ + 0x0100, /* bcdDevice. */ + 1, /* iManufacturer. */ + 2, /* iProduct. */ + 3, /* iSerialNumber. */ + 1) /* bNumConfigurations. */ +}; + +/* + * Device Descriptor wrapper. + */ +static const USBDescriptor msd_device_descriptor = { + sizeof msd_device_descriptor_data, + msd_device_descriptor_data +}; + +/* Configuration Descriptor tree for a CDC.*/ +static const uint8_t msd_configuration_descriptor_data[] = { + /* Configuration Descriptor.*/ + USB_DESC_CONFIGURATION(0x0020, /* wTotalLength. */ + 0x01, /* bNumInterfaces. */ + 0x01, /* bConfigurationValue. */ + 0, /* iConfiguration. */ + 0xC0, /* bmAttributes (self powered). */ + 0x32), /* bMaxPower (100mA). */ + /* Interface Descriptor.*/ + USB_DESC_INTERFACE (0x00, /* bInterfaceNumber. */ + 0x00, /* bAlternateSetting. */ + 0x02, /* bNumEndpoints. */ + 0x08, /* bInterfaceClass (Mass Storage) */ + 0x06, /* bInterfaceSubClass (SCSI + Transparent storage class) */ + 0x50, /* bInterfaceProtocol (Bulk Only) */ + 0), /* iInterface. (none) */ + /* Mass Storage Data In Endpoint Descriptor.*/ + USB_DESC_ENDPOINT (USB_MS_DATA_EP|0x80, + 0x02, /* bmAttributes (Bulk). */ + USB_MS_EP_SIZE,/* wMaxPacketSize. */ + 0x05), /* bInterval. 1ms */ + /* Mass Storage Data In Endpoint Descriptor.*/ + USB_DESC_ENDPOINT (USB_MS_DATA_EP, + 0x02, /* bmAttributes (Bulk). */ + USB_MS_EP_SIZE,/* wMaxPacketSize. */ + 0x05) /* bInterval. 1ms */ +}; + +/* + * Configuration Descriptor wrapper. + */ +static const USBDescriptor msd_configuration_descriptor = { + sizeof msd_configuration_descriptor_data, + msd_configuration_descriptor_data +}; + +/* + * U.S. English language identifier. + */ +static const uint8_t msd_string0[] = { + USB_DESC_BYTE(4), /* bLength. */ + USB_DESC_BYTE(USB_DESCRIPTOR_STRING), /* bDescriptorType. */ + USB_DESC_WORD(0x0409) /* wLANGID (U.S. English). */ +}; + +/* + * Vendor string. + */ +static const uint8_t msd_string1[] = { + USB_DESC_BYTE(38), /* bLength. */ + USB_DESC_BYTE(USB_DESCRIPTOR_STRING), /* bDescriptorType. */ + 'S', 0, 'T', 0, 'M', 0, 'i', 0, 'c', 0, 'r', 0, 'o', 0, 'e', 0, + 'l', 0, 'e', 0, 'c', 0, 't', 0, 'r', 0, 'o', 0, 'n', 0, 'i', 0, + 'c', 0, 's', 0 +}; + +/* + * Device Description string. + */ +static const uint8_t msd_string2[] = { + USB_DESC_BYTE(62), /* bLength. */ + USB_DESC_BYTE(USB_DESCRIPTOR_STRING), /* bDescriptorType. */ + 'C', 0, 'h', 0, 'i', 0, 'b', 0, 'i', 0, 'O', 0, 'S', 0, '/', 0, + 'R', 0, 'T', 0, ' ', 0, 'M', 0, 'a', 0, 's', 0, 's', 0, ' ', 0, + 'S', 0, 't', 0, 'o', 0, 'r', 0, 'a', 0, 'g', 0, 'e', 0, ' ', 0, + 'D', 0, 'e', 0, 'v', 0, 'i', 0, 'c', 0, 'e' +}; + +static const uint8_t msd_string3[] = { + USB_DESC_BYTE(26), /* bLength. */ + USB_DESC_BYTE(USB_DESCRIPTOR_STRING), /* bDescriptorType. */ + 'A', 0, 'E', 0, 'C', 0, 'C', 0, 'E', 0, 'C', 0, 'C', 0, 'C', 0, 'C', 0, + '0' + CH_KERNEL_MAJOR, 0, + '0' + CH_KERNEL_MINOR, 0, + '0' + CH_KERNEL_PATCH, 0 +}; + +/* + * Strings wrappers array. + */ +static const USBDescriptor msd_strings[] = { + {sizeof msd_string0, msd_string0}, + {sizeof msd_string1, msd_string1}, + {sizeof msd_string2, msd_string2}, + {sizeof msd_string3, msd_string3} +}; + +/* + * Handles the GET_DESCRIPTOR callback. All required descriptors must be + * handled here. + */ +static const USBDescriptor *get_descriptor(USBDriver *usbp, + uint8_t dtype, + uint8_t dindex, + uint16_t lang) { + + (void)usbp; + (void)lang; + switch (dtype) { + case USB_DESCRIPTOR_DEVICE: + return &msd_device_descriptor; + case USB_DESCRIPTOR_CONFIGURATION: + return &msd_configuration_descriptor; + case USB_DESCRIPTOR_STRING: + if (dindex < 4) + return &msd_strings[dindex]; + } + return NULL; +} + + + +/** + * @brief IN EP1 state. + */ +static USBInEndpointState ep1InState; +static USBOutEndpointState ep1OutState; + +/** + * @brief EP1 initialization structure (IN only). + */ +static const USBEndpointConfig epDataConfig = { + USB_EP_MODE_TYPE_BULK, + NULL, + msdUsbEvent, + msdUsbEvent, + USB_MS_EP_SIZE, + USB_MS_EP_SIZE, + &ep1InState, + &ep1OutState, + 1, + NULL +}; + + +/* + * Handles the USB driver global events. + */ +static void usb_event(USBDriver *usbp, usbevent_t event) { + USBMassStorageDriver *msdp = (USBMassStorageDriver *)usbp->USBD_PARAM_NAME; + switch (event) { + case USB_EVENT_RESET: + msdp->reconfigured_or_reset_event = TRUE; + return; + case USB_EVENT_ADDRESS: + return; + case USB_EVENT_CONFIGURED: + chSysLockFromIsr(); + msdp->reconfigured_or_reset_event = TRUE; + usbInitEndpointI(usbp, USB_MS_DATA_EP, &epDataConfig); + /* Initialize the thread */ + chBSemSignalI(&msdp->bsem); + + /* signal that the device is connected */ + chEvtBroadcastI(&msdp->evt_connected); + chSysUnlockFromIsr(); + + return; + case USB_EVENT_SUSPEND: + return; + case USB_EVENT_WAKEUP: + return; + case USB_EVENT_STALLED: + return; + } + return; +} + + + +const USBConfig msd_usb_config = { + usb_event, + get_descriptor, + msdRequestsHook, + NULL +}; + + + + + + + + + + + + + + + + + + + + diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd_cfg.h b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd_cfg.h new file mode 100644 index 0000000000..120cef5c12 --- /dev/null +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd_cfg.h @@ -0,0 +1,46 @@ +/* + ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, + 2011,2012,2013 Giovanni Di Sirio. + + This file is part of ChibiOS/RT. + + ChibiOS/RT is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + ChibiOS/RT is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#ifndef USB_MSD_CFG_H_ +#define USB_MSD_CFG_H_ + + +#define USB_MS_DATA_EP 1 + +#if STM32_USE_USB_OTG2_HS +# define USB_MS_EP_SIZE 512 +#else +# define USB_MS_EP_SIZE 64 +#endif + + +#ifdef MSD_USB_DRIVER_EXT_FIELDS_NAME +# define USBD_PARAM_NAME MSD_USB_DRIVER_EXT_FIELDS_NAME +#else +# define USBD_PARAM_NAME param +#endif + + + + + + + +#endif /* USB_MSD_CFG_H_ */ From 910afa5dadc2b31798049c0a21d1dbf0ab8122d5 Mon Sep 17 00:00:00 2001 From: Dave Camarillo Date: Thu, 21 Feb 2013 18:11:46 -0800 Subject: [PATCH 25/52] created sample project with composite USB device with mass storage and virtual com port, refactored mass storage driver to more cleanly support this --- .../Makefile | 2 +- .../halconf.h | 2 +- .../main.c | 64 +++- .../usb_msd.c | 9 +- .../usb_msd.h | 1 + .../usb_msd_cfg.c | 325 +++++++++++++++++- .../usb_msd_cfg.h | 2 +- 7 files changed, 376 insertions(+), 29 deletions(-) diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/Makefile b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/Makefile index 7e61df6aa4..319bbf2594 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/Makefile +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/Makefile @@ -70,7 +70,7 @@ include $(CHIBIOS)/os/hal/platforms/STM32F4xx/platform.mk include $(CHIBIOS)/os/hal/hal.mk include $(CHIBIOS)/os/ports/GCC/ARMCMx/STM32F4xx/port.mk include $(CHIBIOS)/os/kernel/kernel.mk -include $(CHIBIOS)/os/various/fatfs_bindings/fatfs.mk +#include $(CHIBIOS)/os/various/fatfs_bindings/fatfs.mk include $(CHIBIOS)/test/test.mk # Define linker script file here diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/halconf.h b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/halconf.h index 43f910e374..5c3c64a548 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/halconf.h +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/halconf.h @@ -152,7 +152,7 @@ * @brief Enables the SERIAL over USB subsystem. */ #if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL_USB FALSE +#define HAL_USE_SERIAL_USB TRUE #endif /** diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/main.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/main.c index 3a82c0ff64..246f610fe3 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/main.c +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/main.c @@ -29,17 +29,31 @@ #include "chprintf.h" #include "shell.h" #include "usb_msd.h" +#include "serial_usb.h" + + +/*Serial over USB Driver structure.*/ +SerialUSBDriver SDU1; +SerialUSBConfig serusbcfg = { NULL }; + +USBMassStorageDriver UMSD1; + /* - * Green LED blinker thread, times are in milliseconds. + * CDC ACM Echo Thread */ -static WORKING_AREA(waThread1, 128); +static WORKING_AREA(waThread1, 1024); static msg_t Thread1(void *arg) { (void)arg; chRegSetThreadName("blinker"); + + BaseSequentialStream *usb_cdc = (BaseSequentialStream *) &SDU1; + char c; + while (TRUE) { - palTogglePad(GPIOH, GPIOH_LED1); - chThdSleepMilliseconds(500); + if (chSequentialStreamRead(usb_cdc, (uint8_t *)&c, 1) != 0) { + chprintf(usb_cdc, "You entered hex char 0x%X\r\n", c); + } } return(0); } @@ -71,6 +85,7 @@ int init_sd(void) { return(0); } + /* * Application entry point. */ @@ -93,7 +108,15 @@ int main(void) { BaseSequentialStream *chp = (BaseSequentialStream *)&SD2; chprintf(chp, "running main()\r\n"); - chThdSleepMilliseconds(100); + chThdSleepMilliseconds(50); + + +#if STM32_USB_USE_OTG2 + USBDriver *usb_driver = &USBD2; +#else + USBDriver *usb_driver = &USBD1; +#endif + /* * Activates the card insertion monitor. @@ -102,14 +125,26 @@ int main(void) { chprintf(chp, "done starting SDC\r\n"); sdcConnect(&SDCD1); - BaseBlockDevice *bbdp = (BaseBlockDevice*) &SDCD1; chprintf(chp, "setting up MSD\r\n"); - USBMassStorageDriver UMSD1; -#if STM32_USB_USE_OTG2 - msdInit(&USBD2, bbdp, &UMSD1); -#else - msdInit(&USBD1, bbdp, &UMSD1); -#endif + msdInit(usb_driver, (BaseBlockDevice*) &SDCD1, &UMSD1); + + chprintf(chp, "Initializing SDU1...\r\n"); + serusbcfg.usbp = usb_driver; + sduObjectInit(&SDU1); + + + + + /*Disconnect the USB Bus*/ + usbDisconnectBus(usb_driver); + chThdSleepMilliseconds(200); + + /*Start the useful functions*/ + sduStart(&SDU1, &serusbcfg); + msdStart(usb_driver, &UMSD1); + + /*Connect the USB Bus*/ + usbConnectBus(usb_driver); /* * Creates the blinker thread. @@ -119,6 +154,7 @@ int main(void) { while (TRUE) { - chThdSleepMilliseconds(100); - } + palTogglePad(GPIOH, GPIOH_LED1); + chThdSleepMilliseconds(500); + } } diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd.c index e80fd6993e..5ce2f6e59a 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd.c +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd.c @@ -789,12 +789,15 @@ void msdInit(USBDriver *usbp, BaseBlockDevice *bbdp, USBMassStorageDriver *msdp) blkGetInfo(bbdp, &msdp->block_dev_info); - usbDisconnectBus(usbp); - chThdSleepMilliseconds(200); usbp->USBD_PARAM_NAME = (void *)msdp; +} +void msdStart(USBDriver *usbp, USBMassStorageDriver *msdp) { + //upon entry, bus should be disconnected + //usbDisconnectBus(usbp); + //chThdSleepMilliseconds(200); usbStart(usbp, &msd_usb_config); - usbConnectBus(usbp); + //usbConnectBus(usbp); if(msdThd == NULL) { msdThd = chThdCreateStatic(waMassStorage, sizeof(waMassStorage), diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd.h b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd.h index b0256344bb..6a4d924e08 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd.h +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd.h @@ -143,6 +143,7 @@ struct USBMassStorageDriver { extern "C" { #endif void msdInit(USBDriver *usbp, BaseBlockDevice *bdp, USBMassStorageDriver *msdp); +void msdStart(USBDriver *usbp,USBMassStorageDriver *msdp); void msdUsbEvent(USBDriver *usbp, usbep_t ep); bool_t msdRequestsHook(USBDriver *usbp); #ifdef __cplusplus diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd_cfg.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd_cfg.c index 4b402b12b1..100b0b70ef 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd_cfg.c +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd_cfg.c @@ -22,8 +22,48 @@ #include "hal.h" #include "usb_msd_cfg.h" #include "usb_msd.h" +#include "usb_cdc.h" +#define USB_MS_DATA_EP 3 +#if STM32_USB_USE_OTG2 && STM32_USE_USB_OTG2_HS +#define USB_MAX_PACKET_SIZE 512 +#define USB_CDC_INTERUPT_INTERVAL 0x10 +#else +#define USB_MAX_PACKET_SIZE 64 +#define USB_CDC_INTERUPT_INTERVAL 0xFF +#endif + + +/*see www.usb.org/developers/whitepapers/iadclasscode_r10.pdf*/ +#define MULTI_FUNCTION_DEVICE_CLASS 0xEF +#define MULTI_FUNCTION_SUB_CLASS 0x02 +#define MULTI_FUNCTION_DEVICE_PROTOCOL 0x01 +#define VENDOR_ID 0x0483 +#define PRODUCT_ID 0x5742 + +#define MASS_STORAGE_INTERFACE_CLASS 0x08 +#define MASS_STORAGE_INTERFACE_SCSI_SUB_CLASS 0x06 + +#define COMMUNICATIONS_INTERFACE_CLASS 0x02 +#define ABSTRACT_CONTROL_SUB_CLASS 0x02 +#define AT_CDC_INTERFACE_PROTOCOL 0x01 + + + +#if USB_CDC_DATA_REQUEST_EP == USB_MS_DATA_EP +# error "CDC and MSD Endpoints must be different" +#endif +#if USB_CDC_DATA_AVAILABLE_EP == USB_MS_DATA_EP +# error "CDC and MSD Endpoints must be different" +#endif +#if USB_CDC_INTERRUPT_REQUEST_EP == USB_MS_DATA_EP +# error "CDC and MSD Endpoints must be different" +#endif + + + +#if FALSE /* * USB Device Descriptor. */ @@ -53,7 +93,7 @@ static const USBDescriptor msd_device_descriptor = { /* Configuration Descriptor tree for a CDC.*/ static const uint8_t msd_configuration_descriptor_data[] = { /* Configuration Descriptor.*/ - USB_DESC_CONFIGURATION(0x0020, /* wTotalLength. */ + USB_DESC_CONFIGURATION(0x0020, /* wTotalLength. */ 0x01, /* bNumInterfaces. */ 0x01, /* bConfigurationValue. */ 0, /* iConfiguration. */ @@ -71,12 +111,12 @@ static const uint8_t msd_configuration_descriptor_data[] = { /* Mass Storage Data In Endpoint Descriptor.*/ USB_DESC_ENDPOINT (USB_MS_DATA_EP|0x80, 0x02, /* bmAttributes (Bulk). */ - USB_MS_EP_SIZE,/* wMaxPacketSize. */ + USB_MAX_PACKET_SIZE,/* wMaxPacketSize. */ 0x05), /* bInterval. 1ms */ /* Mass Storage Data In Endpoint Descriptor.*/ USB_DESC_ENDPOINT (USB_MS_DATA_EP, 0x02, /* bmAttributes (Bulk). */ - USB_MS_EP_SIZE,/* wMaxPacketSize. */ + USB_MAX_PACKET_SIZE,/* wMaxPacketSize. */ 0x05) /* bInterval. 1ms */ }; @@ -139,6 +179,204 @@ static const USBDescriptor msd_strings[] = { {sizeof msd_string3, msd_string3} }; +#else + +/* + * USB Device Descriptor. + */ +static const uint8_t msd_device_descriptor_data[18] = { + USB_DESC_DEVICE (0x0200, /* bcdUSB (2.0). */ + MULTI_FUNCTION_DEVICE_CLASS, /* bDeviceClass (None). */ + MULTI_FUNCTION_SUB_CLASS, /* bDeviceSubClass. */ + MULTI_FUNCTION_DEVICE_PROTOCOL, /* bDeviceProtocol. */ + 0x40, /* Control Endpoint Size. */ + VENDOR_ID, /* idVendor */ + PRODUCT_ID, /* idProduct. */ + 0x0100, /* bcdDevice. */ + 1, /* iManufacturer. */ + 2, /* iProduct. */ + 3, /* iSerialNumber. */ + 1) /* bNumConfigurations. */ +}; + +/* + * Device Descriptor wrapper. + */ +const USBDescriptor msd_device_descriptor = { + sizeof(msd_device_descriptor_data), + msd_device_descriptor_data +}; + + +/* Configuration Descriptor tree for a CDC.*/ +static const uint8_t msd_configuration_descriptor_data[] = { + /* Configuration Descriptor.*/ + USB_DESC_CONFIGURATION(98, /* wTotalLength. */ + 0x03, /* bNumInterfaces. */ + 0x01, /* bConfigurationValue. */ + 0, /* iConfiguration. */ + 0xC0, /* bmAttributes (self powered). */ + 0x32), /* bMaxPower (100mA). */ + + // Interface Association descriptor (IAD) + 0x08, //Length of IAD + USB_DESCRIPTOR_INTERFACE_ASSOCIATION, + 0x00, // bFirstInterface + 0x02, // bInterfaceCount + 0xFF,//COMMUNICATIONS_INTERFACE_CLASS, //0xFF, // bFunctionClass + 0x00,//ABSTRACT_CONTROL_SUB_CLASS, //0x00, // bFunctionSubClass + 0x00,//AT_CDC_INTERFACE_PROTOCOL, //0x00, // bFunctionProcotol + 0x00, // iInterface + + + /* Interface Descriptor. */ + USB_DESC_INTERFACE (0x00, /* bInterfaceNumber. */ + 0x00, /* bAlternateSetting. */ + 0x01, /* bNumEndpoints. */ + COMMUNICATIONS_INTERFACE_CLASS, /* bInterfaceClass (Communications Interface Class, CDC section 4.2). */ + ABSTRACT_CONTROL_SUB_CLASS, /* bInterfaceSubClass (Abstract Control Model, CDC section 4.3). */ + AT_CDC_INTERFACE_PROTOCOL, /* bInterfaceProtocol (AT commands, CDC section 4.4). */ + 0), /* iInterface. */ + /* Header Functional Descriptor (CDC section 5.2.3).*/ + USB_DESC_BYTE (5), /* bLength. */ + USB_DESC_BYTE (0x24), /* bDescriptorType (CS_INTERFACE). */ + USB_DESC_BYTE (0x00), /* bDescriptorSubtype (Header Functional Descriptor. */ + USB_DESC_BCD (0x0110), /* bcdCDC. */ + /* Call Management Functional Descriptor. */ + USB_DESC_BYTE (5), /* bFunctionLength. */ + USB_DESC_BYTE (0x24), /* bDescriptorType (CS_INTERFACE). */ + USB_DESC_BYTE (0x01), /* bDescriptorSubtype (Call Management Functional Descriptor). */ + USB_DESC_BYTE (0x00), /* bmCapabilities (D0+D1). */ + USB_DESC_BYTE (0x02), /* bDataInterface. */ + /* ACM Functional Descriptor.*/ + USB_DESC_BYTE (4), /* bFunctionLength. */ + USB_DESC_BYTE (0x24), /* bDescriptorType (CS_INTERFACE). */ + USB_DESC_BYTE (0x02), /* bDescriptorSubtype (Abstract Control Management Descriptor). */ + USB_DESC_BYTE (0x02), /* bmCapabilities. */ + /* Union Functional Descriptor.*/ + USB_DESC_BYTE (5), /* bFunctionLength. */ + USB_DESC_BYTE (0x24), /* bDescriptorType (CS_INTERFACE). */ + USB_DESC_BYTE (0x06), /* bDescriptorSubtype (Union Functional Descriptor). */ + USB_DESC_BYTE (0x00), /* bMasterInterface (Communication Class Interface). */ + USB_DESC_BYTE (0x01), /* bSlaveInterface0 (Data Class Interface). */ + /* Endpoint 2 Descriptor. */ + USB_DESC_ENDPOINT (USB_CDC_INTERRUPT_REQUEST_EP|0x80, + 0x03, /* bmAttributes (Interrupt). */ + 0x0008, /* wMaxPacketSize. */ + USB_CDC_INTERUPT_INTERVAL), /* bInterval. */ + + /* Interface Descriptor. */ + USB_DESC_INTERFACE (0x01, /* bInterfaceNumber. */ + 0x00, /* bAlternateSetting. */ + 0x02, /* bNumEndpoints. */ + 0x0A, /* bInterfaceClass (Data Class Interface, CDC section 4.5). */ + 0x00, /* bInterfaceSubClass (CDC section 4.6). */ + 0x00, /* bInterfaceProtocol (CDC section 4.7). */ + 0x00), /* iInterface. */ + /* Endpoint 3 Descriptor. */ + USB_DESC_ENDPOINT (USB_CDC_DATA_AVAILABLE_EP, /* bEndpointAddress.*/ + 0x02, /* bmAttributes (Bulk). */ + USB_MAX_PACKET_SIZE, /* wMaxPacketSize. */ + 0x00), /* bInterval. */ + /* Endpoint 1 Descriptor. */ + USB_DESC_ENDPOINT (USB_CDC_DATA_REQUEST_EP|0x80, /* bEndpointAddress.*/ + 0x02, /* bmAttributes (Bulk). */ + USB_MAX_PACKET_SIZE, /* wMaxPacketSize. */ + 0x00), /* bInterval. */ + + + /* Mass Storage Device */ + /* Interface Descriptor. */ + USB_DESC_INTERFACE (0x02, /* bInterfaceNumber. */ + 0x00, /* bAlternateSetting. */ + 0x02, /* bNumEndpoints. */ + MASS_STORAGE_INTERFACE_CLASS, /* bInterfaceClass (Mass Storage) */ + MASS_STORAGE_INTERFACE_SCSI_SUB_CLASS, /* bInterfaceSubClass (SCSI Transparent storage class) */ + 0x50, /* bInterfaceProtocol (Bulk Only) */ + 2), /* iInterface. (none) */ + /* Mass Storage Data In Endpoint Descriptor. 5*/ + USB_DESC_ENDPOINT (USB_MS_DATA_EP|0x80, + 0x02, /* bmAttributes (Bulk). */ + USB_MAX_PACKET_SIZE,/* wMaxPacketSize. */ + 0x05), /* bInterval. 1ms */ + /* Mass Storage Data In Endpoint Descriptor. 5*/ + USB_DESC_ENDPOINT (USB_MS_DATA_EP, + 0x02, /* bmAttributes (Bulk). */ + USB_MAX_PACKET_SIZE,/* wMaxPacketSize. */ + 0x05), /* bInterval. 1ms */ +}; + + + + +/* + * Configuration Descriptor wrapper. + */ +const USBDescriptor msd_configuration_descriptor = { + sizeof msd_configuration_descriptor_data, + msd_configuration_descriptor_data +}; + +/* + * U.S. English language identifier. + */ +static const uint8_t msd_string0[] = { + USB_DESC_BYTE(4), /* bLength. */ + USB_DESC_BYTE(USB_DESCRIPTOR_STRING), /* bDescriptorType. */ + USB_DESC_WORD(0x0409) /* wLANGID (U.S. English). */ +}; + +/* + * Vendor string. + */ +static const uint8_t msd_string1[] = { + USB_DESC_BYTE(38), /* bLength. */ + USB_DESC_BYTE(USB_DESCRIPTOR_STRING), /* bDescriptorType. */ + 'S', 0, 'T', 0, 'M', 0, 'i', 0, 'c', 0, 'r', 0, 'o', 0, 'e', 0, + 'l', 0, 'e', 0, 'c', 0, 't', 0, 'r', 0, 'o', 0, 'n', 0, 'i', 0, + 'c', 0, 's', 0 +}; + +/* + * Device Description string. + */ +static const uint8_t msd_string2[] = { + USB_DESC_BYTE(62), /* bLength. */ + USB_DESC_BYTE(USB_DESCRIPTOR_STRING), /* bDescriptorType. */ + 'C', 0, 'h', 0, 'i', 0, 'b', 0, 'i', 0, 'O', 0, 'S', 0, '/', 0, + 'R', 0, 'T', 0, ' ', 0, 'M', 0, 'a', 0, 's', 0, 's', 0, ' ', 0, + 'S', 0, 't', 0, 'o', 0, 'r', 0, 'a', 0, 'g', 0, 'e', 0, ' ', 0, + 'D', 0, 'e', 0, 'v', 0, 'i', 0, 'c', 0, 'e' +}; + +static const uint8_t msd_string3[] = { + USB_DESC_BYTE(26), /* bLength. */ + USB_DESC_BYTE(USB_DESCRIPTOR_STRING), /* bDescriptorType. */ + 'A', 0, 'E', 0, 'C', 0, 'C', 0, 'E', 0, 'C', 0, 'C', 0, 'C', 0, 'C', 0, + '0' + CH_KERNEL_MAJOR, 0, + '0' + CH_KERNEL_MINOR, 0, + '0' + CH_KERNEL_PATCH, 0 +}; + + + + +/* + * Strings wrappers array. + */ +const USBDescriptor msd_strings[] = { + {sizeof msd_string0, msd_string0}, + {sizeof msd_string1, msd_string1}, + {sizeof msd_string2, msd_string2}, + {sizeof msd_string3, msd_string3}, +}; + + + +#endif + + + /* * Handles the GET_DESCRIPTOR callback. All required descriptors must be * handled here. @@ -167,8 +405,8 @@ static const USBDescriptor *get_descriptor(USBDriver *usbp, /** * @brief IN EP1 state. */ -static USBInEndpointState ep1InState; -static USBOutEndpointState ep1OutState; +static USBInEndpointState epMSInState; +static USBOutEndpointState epMSOutState; /** * @brief EP1 initialization structure (IN only). @@ -180,13 +418,64 @@ static const USBEndpointConfig epDataConfig = { msdUsbEvent, USB_MS_EP_SIZE, USB_MS_EP_SIZE, - &ep1InState, - &ep1OutState, + &epMSInState, + &epMSOutState, 1, NULL }; + +/** + * @brief IN EP1 state. + */ +static USBInEndpointState epCDC1instate; + +/** + * @brief OUT EP1 state. + */ +static USBOutEndpointState epCDC1outstate; + +/** + * @brief EP1 initialization structure (both IN and OUT). + */ +static const USBEndpointConfig epCDC1config = { + USB_EP_MODE_TYPE_BULK, + NULL, + sduDataTransmitted, + sduDataReceived, + 0x0040, + 0x0040, + &epCDC1instate, + &epCDC1outstate, + 2, + NULL +}; + +/** + * @brief IN EP2 state. + */ +static USBInEndpointState epCDC2instate; + +/** + * @brief EP2 initialization structure (IN only). + */ +static const USBEndpointConfig epCDC2config = { + USB_EP_MODE_TYPE_INTR, + NULL, + sduInterruptTransmitted, + NULL, + 0x0010, + 0x0000, + &epCDC2instate, + NULL, + 1, + NULL +}; + + + + /* * Handles the USB driver global events. */ @@ -202,13 +491,21 @@ static void usb_event(USBDriver *usbp, usbevent_t event) { chSysLockFromIsr(); msdp->reconfigured_or_reset_event = TRUE; usbInitEndpointI(usbp, USB_MS_DATA_EP, &epDataConfig); + + /* Enables the endpoints specified into the configuration. + Note, this callback is invoked from an ISR so I-Class functions + must be used.*/ + usbInitEndpointI(usbp, USB_CDC_DATA_REQUEST_EP, &epCDC1config); + usbInitEndpointI(usbp, USB_CDC_INTERRUPT_REQUEST_EP, &epCDC2config); + /* Resetting the state of the CDC subsystem.*/ + sduConfigureHookI(usbp); + /* Initialize the thread */ chBSemSignalI(&msdp->bsem); /* signal that the device is connected */ chEvtBroadcastI(&msdp->evt_connected); chSysUnlockFromIsr(); - return; case USB_EVENT_SUSPEND: return; @@ -220,12 +517,22 @@ static void usb_event(USBDriver *usbp, usbevent_t event) { return; } +bool_t msdCdcRequestsHook(USBDriver *usbp) { + bool_t r; + r = msdRequestsHook(usbp); + if( r ) { + return(r); + } + + r = sduRequestsHook(usbp); + return(r); +} const USBConfig msd_usb_config = { usb_event, get_descriptor, - msdRequestsHook, + msdCdcRequestsHook, NULL }; diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd_cfg.h b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd_cfg.h index 120cef5c12..0b86bd3fd2 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd_cfg.h +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd_cfg.h @@ -22,7 +22,7 @@ #define USB_MSD_CFG_H_ -#define USB_MS_DATA_EP 1 +#define USB_MS_DATA_EP 3 #if STM32_USE_USB_OTG2_HS # define USB_MS_EP_SIZE 512 From 402f3e4791ca792b615ce927f2658b334915dc45 Mon Sep 17 00:00:00 2001 From: Dave Camarillo Date: Thu, 21 Feb 2013 22:42:28 -0800 Subject: [PATCH 26/52] removed fatfs from sample build --- .../Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/Makefile b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/Makefile index f655167816..89cf9ac7d0 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/Makefile +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/Makefile @@ -70,7 +70,7 @@ include $(CHIBIOS)/os/hal/platforms/STM32F4xx/platform.mk include $(CHIBIOS)/os/hal/hal.mk include $(CHIBIOS)/os/ports/GCC/ARMCMx/STM32F4xx/port.mk include $(CHIBIOS)/os/kernel/kernel.mk -include $(CHIBIOS)/os/various/fatfs_bindings/fatfs.mk +#include $(CHIBIOS)/os/various/fatfs_bindings/fatfs.mk include $(CHIBIOS)/test/test.mk # Define linker script file here From a19a078742999bbd4d5f46ff5cc7082d48f28d5a Mon Sep 17 00:00:00 2001 From: Dave Camarillo Date: Thu, 21 Feb 2013 22:58:51 -0800 Subject: [PATCH 27/52] pulled in code from factored mass storage driver to make code base common --- .../Makefile | 2 +- .../main.c | 26 +- .../usb_msd.c | 213 +-------------- .../usb_msd.h | 10 +- .../usb_msd_cfg.c | 250 ++++++++++++++++++ .../usb_msd_cfg.h | 46 ++++ 6 files changed, 331 insertions(+), 216 deletions(-) create mode 100644 demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/usb_msd_cfg.c create mode 100644 demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/usb_msd_cfg.h diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/Makefile b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/Makefile index 89cf9ac7d0..47803d8073 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/Makefile +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/Makefile @@ -70,7 +70,6 @@ include $(CHIBIOS)/os/hal/platforms/STM32F4xx/platform.mk include $(CHIBIOS)/os/hal/hal.mk include $(CHIBIOS)/os/ports/GCC/ARMCMx/STM32F4xx/port.mk include $(CHIBIOS)/os/kernel/kernel.mk -#include $(CHIBIOS)/os/various/fatfs_bindings/fatfs.mk include $(CHIBIOS)/test/test.mk # Define linker script file here @@ -89,6 +88,7 @@ CSRC = $(PORTSRC) \ $(CHIBIOS)/os/various/evtimer.c \ $(CHIBIOS)/os/various/chprintf.c \ $(CHIBIOS)/os/various/shell.c \ + usb_msd_cfg.c \ usb_msd.c \ main.c diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/main.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/main.c index 3a82c0ff64..3755e9b20e 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/main.c +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/main.c @@ -95,6 +95,12 @@ int main(void) { chprintf(chp, "running main()\r\n"); chThdSleepMilliseconds(100); +#if STM32_USB_USE_OTG2 + USBDriver *usb_driver = &USBD2; +#else + USBDriver *usb_driver = &USBD1; +#endif + /* * Activates the card insertion monitor. */ @@ -105,11 +111,21 @@ int main(void) { BaseBlockDevice *bbdp = (BaseBlockDevice*) &SDCD1; chprintf(chp, "setting up MSD\r\n"); USBMassStorageDriver UMSD1; -#if STM32_USB_USE_OTG2 - msdInit(&USBD2, bbdp, &UMSD1); -#else - msdInit(&USBD1, bbdp, &UMSD1); -#endif + + msdInit(usb_driver, bbdp, &UMSD1); + + /*Disconnect the USB Bus*/ + usbDisconnectBus(usb_driver); + chThdSleepMilliseconds(200); + + /*Start the useful functions*/ + msdStart(usb_driver, &UMSD1); + + /*Connect the USB Bus*/ + usbConnectBus(usb_driver); + + + /* * Creates the blinker thread. diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/usb_msd.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/usb_msd.c index b33a68802e..5ce2f6e59a 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/usb_msd.c +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/usb_msd.c @@ -1,5 +1,6 @@ #include "ch.h" #include "hal.h" +#include "usb_msd_cfg.h" #include "usb_msd.h" #include "chprintf.h" @@ -9,12 +10,6 @@ #define msd_debug_print(args ...) if (MSD_DEBUG) { chprintf(args); } -#ifdef MSD_USB_DRIVER_EXT_FIELDS_NAME -# define USBD_PARAM_NAME MSD_USB_DRIVER_EXT_FIELDS_NAME -#else -# define USBD_PARAM_NAME param -#endif - #if HAL_USE_SERIAL_USB # ifndef MSD_USB_DRIVER_EXT_FIELDS_NAME @@ -23,6 +18,8 @@ #endif +extern const USBConfig msd_usb_config; + static BaseSequentialStream *chp = (BaseSequentialStream *)&SD2; @@ -76,143 +73,6 @@ inline uint32_t swap_uint32( uint32_t val ) { /* USB related stuff. */ /*===========================================================================*/ -/* - * USB Device Descriptor. - */ -static const uint8_t msd_device_descriptor_data[18] = { - USB_DESC_DEVICE (0x0200, /* bcdUSB (2.0). */ - 0x00, /* bDeviceClass (None). */ - 0x00, /* bDeviceSubClass. */ - 0x00, /* bDeviceProtocol. */ - 0x40, /* Control Endpoint Size. */ - 0x0483, /* idVendor (ST). */ - 0x5742, /* idProduct. */ - 0x0100, /* bcdDevice. */ - 1, /* iManufacturer. */ - 2, /* iProduct. */ - 3, /* iSerialNumber. */ - 1) /* bNumConfigurations. */ -}; - -/* - * Device Descriptor wrapper. - */ -static const USBDescriptor msd_device_descriptor = { - sizeof msd_device_descriptor_data, - msd_device_descriptor_data -}; - -/* Configuration Descriptor tree for a CDC.*/ -static const uint8_t msd_configuration_descriptor_data[] = { - /* Configuration Descriptor.*/ - USB_DESC_CONFIGURATION(0x0020, /* wTotalLength. */ - 0x01, /* bNumInterfaces. */ - 0x01, /* bConfigurationValue. */ - 0, /* iConfiguration. */ - 0xC0, /* bmAttributes (self powered). */ - 0x32), /* bMaxPower (100mA). */ - /* Interface Descriptor.*/ - USB_DESC_INTERFACE (0x00, /* bInterfaceNumber. */ - 0x00, /* bAlternateSetting. */ - 0x02, /* bNumEndpoints. */ - 0x08, /* bInterfaceClass (Mass Storage) */ - 0x06, /* bInterfaceSubClass (SCSI - Transparent storage class) */ - 0x50, /* bInterfaceProtocol (Bulk Only) */ - 0), /* iInterface. (none) */ - /* Mass Storage Data In Endpoint Descriptor.*/ - USB_DESC_ENDPOINT (USB_MS_DATA_EP|0x80, - 0x02, /* bmAttributes (Bulk). */ - USB_MS_EP_SIZE,/* wMaxPacketSize. */ - 0x05), /* bInterval. 1ms */ - /* Mass Storage Data In Endpoint Descriptor.*/ - USB_DESC_ENDPOINT (USB_MS_DATA_EP, - 0x02, /* bmAttributes (Bulk). */ - USB_MS_EP_SIZE,/* wMaxPacketSize. */ - 0x05) /* bInterval. 1ms */ -}; - -/* - * Configuration Descriptor wrapper. - */ -static const USBDescriptor msd_configuration_descriptor = { - sizeof msd_configuration_descriptor_data, - msd_configuration_descriptor_data -}; - -/* - * U.S. English language identifier. - */ -static const uint8_t msd_string0[] = { - USB_DESC_BYTE(4), /* bLength. */ - USB_DESC_BYTE(USB_DESCRIPTOR_STRING), /* bDescriptorType. */ - USB_DESC_WORD(0x0409) /* wLANGID (U.S. English). */ -}; - -/* - * Vendor string. - */ -static const uint8_t msd_string1[] = { - USB_DESC_BYTE(38), /* bLength. */ - USB_DESC_BYTE(USB_DESCRIPTOR_STRING), /* bDescriptorType. */ - 'S', 0, 'T', 0, 'M', 0, 'i', 0, 'c', 0, 'r', 0, 'o', 0, 'e', 0, - 'l', 0, 'e', 0, 'c', 0, 't', 0, 'r', 0, 'o', 0, 'n', 0, 'i', 0, - 'c', 0, 's', 0 -}; - -/* - * Device Description string. - */ -static const uint8_t msd_string2[] = { - USB_DESC_BYTE(62), /* bLength. */ - USB_DESC_BYTE(USB_DESCRIPTOR_STRING), /* bDescriptorType. */ - 'C', 0, 'h', 0, 'i', 0, 'b', 0, 'i', 0, 'O', 0, 'S', 0, '/', 0, - 'R', 0, 'T', 0, ' ', 0, 'M', 0, 'a', 0, 's', 0, 's', 0, ' ', 0, - 'S', 0, 't', 0, 'o', 0, 'r', 0, 'a', 0, 'g', 0, 'e', 0, ' ', 0, - 'D', 0, 'e', 0, 'v', 0, 'i', 0, 'c', 0, 'e' -}; - -static const uint8_t msd_string3[] = { - USB_DESC_BYTE(26), /* bLength. */ - USB_DESC_BYTE(USB_DESCRIPTOR_STRING), /* bDescriptorType. */ - 'A', 0, 'E', 0, 'C', 0, 'C', 0, 'E', 0, 'C', 0, 'C', 0, 'C', 0, 'C', 0, - '0' + CH_KERNEL_MAJOR, 0, - '0' + CH_KERNEL_MINOR, 0, - '0' + CH_KERNEL_PATCH, 0 -}; - -/* - * Strings wrappers array. - */ -static const USBDescriptor msd_strings[] = { - {sizeof msd_string0, msd_string0}, - {sizeof msd_string1, msd_string1}, - {sizeof msd_string2, msd_string2}, - {sizeof msd_string3, msd_string3} -}; - -/* - * Handles the GET_DESCRIPTOR callback. All required descriptors must be - * handled here. - */ -static const USBDescriptor *get_descriptor(USBDriver *usbp, - uint8_t dtype, - uint8_t dindex, - uint16_t lang) { - - (void)usbp; - (void)lang; - switch (dtype) { - case USB_DESCRIPTOR_DEVICE: - return &msd_device_descriptor; - case USB_DESCRIPTOR_CONFIGURATION: - return &msd_configuration_descriptor; - case USB_DESCRIPTOR_STRING: - if (dindex < 4) - return &msd_strings[dindex]; - } - return NULL; -} /** * @brief Default requests hook. @@ -297,67 +157,9 @@ void msdUsbEvent(USBDriver *usbp, usbep_t ep) { chSysUnlockFromIsr(); } -/** - * @brief IN EP1 state. - */ -static USBInEndpointState ep1InState; -static USBOutEndpointState ep1OutState; -/** - * @brief EP1 initialization structure (IN only). - */ -static const USBEndpointConfig epDataConfig = { - USB_EP_MODE_TYPE_BULK, - NULL, - msdUsbEvent, - msdUsbEvent, - USB_MS_EP_SIZE, - USB_MS_EP_SIZE, - &ep1InState, - &ep1OutState, - 1, - NULL -}; - -/* - * Handles the USB driver global events. - */ -static void usb_event(USBDriver *usbp, usbevent_t event) { - USBMassStorageDriver *msdp = (USBMassStorageDriver *)usbp->USBD_PARAM_NAME; - switch (event) { - case USB_EVENT_RESET: - msdp->reconfigured_or_reset_event = TRUE; - return; - case USB_EVENT_ADDRESS: - return; - case USB_EVENT_CONFIGURED: - chSysLockFromIsr(); - msdp->reconfigured_or_reset_event = TRUE; - usbInitEndpointI(usbp, USB_MS_DATA_EP, &epDataConfig); - /* Initialize the thread */ - chBSemSignalI(&msdp->bsem); - - /* signal that the device is connected */ - chEvtBroadcastI(&msdp->evt_connected); - chSysUnlockFromIsr(); - return; - case USB_EVENT_SUSPEND: - return; - case USB_EVENT_WAKEUP: - return; - case USB_EVENT_STALLED: - return; - } - return; -} -static const USBConfig msd_usb_config = { - usb_event, - get_descriptor, - msdRequestsHook, - NULL -}; static inline void SCSISetSense(USBMassStorageDriver *msdp, uint8_t key, uint8_t acode, uint8_t aqual) { msdp->sense.byte[2] = key; @@ -987,12 +789,15 @@ void msdInit(USBDriver *usbp, BaseBlockDevice *bbdp, USBMassStorageDriver *msdp) blkGetInfo(bbdp, &msdp->block_dev_info); - usbDisconnectBus(usbp); - chThdSleepMilliseconds(200); usbp->USBD_PARAM_NAME = (void *)msdp; +} +void msdStart(USBDriver *usbp, USBMassStorageDriver *msdp) { + //upon entry, bus should be disconnected + //usbDisconnectBus(usbp); + //chThdSleepMilliseconds(200); usbStart(usbp, &msd_usb_config); - usbConnectBus(usbp); + //usbConnectBus(usbp); if(msdThd == NULL) { msdThd = chThdCreateStatic(waMassStorage, sizeof(waMassStorage), diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/usb_msd.h b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/usb_msd.h index 8ff9b28571..6a4d924e08 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/usb_msd.h +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/usb_msd.h @@ -5,13 +5,8 @@ -#define USB_MS_DATA_EP 1 -#if STM32_USE_USB_OTG2_HS -# define USB_MS_EP_SIZE 512 -#else -# define USB_MS_EP_SIZE 64 -#endif + #define MSD_REQ_RESET 0xFF #define MSD_GET_MAX_LUN 0xFE @@ -148,6 +143,9 @@ struct USBMassStorageDriver { extern "C" { #endif void msdInit(USBDriver *usbp, BaseBlockDevice *bdp, USBMassStorageDriver *msdp); +void msdStart(USBDriver *usbp,USBMassStorageDriver *msdp); +void msdUsbEvent(USBDriver *usbp, usbep_t ep); +bool_t msdRequestsHook(USBDriver *usbp); #ifdef __cplusplus } #endif diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/usb_msd_cfg.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/usb_msd_cfg.c new file mode 100644 index 0000000000..4b402b12b1 --- /dev/null +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/usb_msd_cfg.c @@ -0,0 +1,250 @@ +/* + ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, + 2011,2012,2013 Giovanni Di Sirio. + + This file is part of ChibiOS/RT. + + ChibiOS/RT is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + ChibiOS/RT is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#include "ch.h" +#include "hal.h" +#include "usb_msd_cfg.h" +#include "usb_msd.h" + + +/* + * USB Device Descriptor. + */ +static const uint8_t msd_device_descriptor_data[18] = { + USB_DESC_DEVICE (0x0200, /* bcdUSB (2.0). */ + 0x00, /* bDeviceClass (None). */ + 0x00, /* bDeviceSubClass. */ + 0x00, /* bDeviceProtocol. */ + 0x40, /* Control Endpoint Size. */ + 0x0483, /* idVendor (ST). */ + 0x5742, /* idProduct. */ + 0x0100, /* bcdDevice. */ + 1, /* iManufacturer. */ + 2, /* iProduct. */ + 3, /* iSerialNumber. */ + 1) /* bNumConfigurations. */ +}; + +/* + * Device Descriptor wrapper. + */ +static const USBDescriptor msd_device_descriptor = { + sizeof msd_device_descriptor_data, + msd_device_descriptor_data +}; + +/* Configuration Descriptor tree for a CDC.*/ +static const uint8_t msd_configuration_descriptor_data[] = { + /* Configuration Descriptor.*/ + USB_DESC_CONFIGURATION(0x0020, /* wTotalLength. */ + 0x01, /* bNumInterfaces. */ + 0x01, /* bConfigurationValue. */ + 0, /* iConfiguration. */ + 0xC0, /* bmAttributes (self powered). */ + 0x32), /* bMaxPower (100mA). */ + /* Interface Descriptor.*/ + USB_DESC_INTERFACE (0x00, /* bInterfaceNumber. */ + 0x00, /* bAlternateSetting. */ + 0x02, /* bNumEndpoints. */ + 0x08, /* bInterfaceClass (Mass Storage) */ + 0x06, /* bInterfaceSubClass (SCSI + Transparent storage class) */ + 0x50, /* bInterfaceProtocol (Bulk Only) */ + 0), /* iInterface. (none) */ + /* Mass Storage Data In Endpoint Descriptor.*/ + USB_DESC_ENDPOINT (USB_MS_DATA_EP|0x80, + 0x02, /* bmAttributes (Bulk). */ + USB_MS_EP_SIZE,/* wMaxPacketSize. */ + 0x05), /* bInterval. 1ms */ + /* Mass Storage Data In Endpoint Descriptor.*/ + USB_DESC_ENDPOINT (USB_MS_DATA_EP, + 0x02, /* bmAttributes (Bulk). */ + USB_MS_EP_SIZE,/* wMaxPacketSize. */ + 0x05) /* bInterval. 1ms */ +}; + +/* + * Configuration Descriptor wrapper. + */ +static const USBDescriptor msd_configuration_descriptor = { + sizeof msd_configuration_descriptor_data, + msd_configuration_descriptor_data +}; + +/* + * U.S. English language identifier. + */ +static const uint8_t msd_string0[] = { + USB_DESC_BYTE(4), /* bLength. */ + USB_DESC_BYTE(USB_DESCRIPTOR_STRING), /* bDescriptorType. */ + USB_DESC_WORD(0x0409) /* wLANGID (U.S. English). */ +}; + +/* + * Vendor string. + */ +static const uint8_t msd_string1[] = { + USB_DESC_BYTE(38), /* bLength. */ + USB_DESC_BYTE(USB_DESCRIPTOR_STRING), /* bDescriptorType. */ + 'S', 0, 'T', 0, 'M', 0, 'i', 0, 'c', 0, 'r', 0, 'o', 0, 'e', 0, + 'l', 0, 'e', 0, 'c', 0, 't', 0, 'r', 0, 'o', 0, 'n', 0, 'i', 0, + 'c', 0, 's', 0 +}; + +/* + * Device Description string. + */ +static const uint8_t msd_string2[] = { + USB_DESC_BYTE(62), /* bLength. */ + USB_DESC_BYTE(USB_DESCRIPTOR_STRING), /* bDescriptorType. */ + 'C', 0, 'h', 0, 'i', 0, 'b', 0, 'i', 0, 'O', 0, 'S', 0, '/', 0, + 'R', 0, 'T', 0, ' ', 0, 'M', 0, 'a', 0, 's', 0, 's', 0, ' ', 0, + 'S', 0, 't', 0, 'o', 0, 'r', 0, 'a', 0, 'g', 0, 'e', 0, ' ', 0, + 'D', 0, 'e', 0, 'v', 0, 'i', 0, 'c', 0, 'e' +}; + +static const uint8_t msd_string3[] = { + USB_DESC_BYTE(26), /* bLength. */ + USB_DESC_BYTE(USB_DESCRIPTOR_STRING), /* bDescriptorType. */ + 'A', 0, 'E', 0, 'C', 0, 'C', 0, 'E', 0, 'C', 0, 'C', 0, 'C', 0, 'C', 0, + '0' + CH_KERNEL_MAJOR, 0, + '0' + CH_KERNEL_MINOR, 0, + '0' + CH_KERNEL_PATCH, 0 +}; + +/* + * Strings wrappers array. + */ +static const USBDescriptor msd_strings[] = { + {sizeof msd_string0, msd_string0}, + {sizeof msd_string1, msd_string1}, + {sizeof msd_string2, msd_string2}, + {sizeof msd_string3, msd_string3} +}; + +/* + * Handles the GET_DESCRIPTOR callback. All required descriptors must be + * handled here. + */ +static const USBDescriptor *get_descriptor(USBDriver *usbp, + uint8_t dtype, + uint8_t dindex, + uint16_t lang) { + + (void)usbp; + (void)lang; + switch (dtype) { + case USB_DESCRIPTOR_DEVICE: + return &msd_device_descriptor; + case USB_DESCRIPTOR_CONFIGURATION: + return &msd_configuration_descriptor; + case USB_DESCRIPTOR_STRING: + if (dindex < 4) + return &msd_strings[dindex]; + } + return NULL; +} + + + +/** + * @brief IN EP1 state. + */ +static USBInEndpointState ep1InState; +static USBOutEndpointState ep1OutState; + +/** + * @brief EP1 initialization structure (IN only). + */ +static const USBEndpointConfig epDataConfig = { + USB_EP_MODE_TYPE_BULK, + NULL, + msdUsbEvent, + msdUsbEvent, + USB_MS_EP_SIZE, + USB_MS_EP_SIZE, + &ep1InState, + &ep1OutState, + 1, + NULL +}; + + +/* + * Handles the USB driver global events. + */ +static void usb_event(USBDriver *usbp, usbevent_t event) { + USBMassStorageDriver *msdp = (USBMassStorageDriver *)usbp->USBD_PARAM_NAME; + switch (event) { + case USB_EVENT_RESET: + msdp->reconfigured_or_reset_event = TRUE; + return; + case USB_EVENT_ADDRESS: + return; + case USB_EVENT_CONFIGURED: + chSysLockFromIsr(); + msdp->reconfigured_or_reset_event = TRUE; + usbInitEndpointI(usbp, USB_MS_DATA_EP, &epDataConfig); + /* Initialize the thread */ + chBSemSignalI(&msdp->bsem); + + /* signal that the device is connected */ + chEvtBroadcastI(&msdp->evt_connected); + chSysUnlockFromIsr(); + + return; + case USB_EVENT_SUSPEND: + return; + case USB_EVENT_WAKEUP: + return; + case USB_EVENT_STALLED: + return; + } + return; +} + + + +const USBConfig msd_usb_config = { + usb_event, + get_descriptor, + msdRequestsHook, + NULL +}; + + + + + + + + + + + + + + + + + + + + diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/usb_msd_cfg.h b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/usb_msd_cfg.h new file mode 100644 index 0000000000..120cef5c12 --- /dev/null +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/usb_msd_cfg.h @@ -0,0 +1,46 @@ +/* + ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, + 2011,2012,2013 Giovanni Di Sirio. + + This file is part of ChibiOS/RT. + + ChibiOS/RT is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + ChibiOS/RT is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#ifndef USB_MSD_CFG_H_ +#define USB_MSD_CFG_H_ + + +#define USB_MS_DATA_EP 1 + +#if STM32_USE_USB_OTG2_HS +# define USB_MS_EP_SIZE 512 +#else +# define USB_MS_EP_SIZE 64 +#endif + + +#ifdef MSD_USB_DRIVER_EXT_FIELDS_NAME +# define USBD_PARAM_NAME MSD_USB_DRIVER_EXT_FIELDS_NAME +#else +# define USBD_PARAM_NAME param +#endif + + + + + + + +#endif /* USB_MSD_CFG_H_ */ From f2ea90f2ce4df132575f6769898002300369aa57 Mon Sep 17 00:00:00 2001 From: Dave Camarillo Date: Thu, 21 Feb 2013 23:06:54 -0800 Subject: [PATCH 28/52] removed old device descriptor cruft --- .../usb_msd_cfg.c | 123 ------------------ 1 file changed, 123 deletions(-) diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd_cfg.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd_cfg.c index 100b0b70ef..2f3e01e6f7 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd_cfg.c +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd_cfg.c @@ -62,125 +62,6 @@ #endif - -#if FALSE -/* - * USB Device Descriptor. - */ -static const uint8_t msd_device_descriptor_data[18] = { - USB_DESC_DEVICE (0x0200, /* bcdUSB (2.0). */ - 0x00, /* bDeviceClass (None). */ - 0x00, /* bDeviceSubClass. */ - 0x00, /* bDeviceProtocol. */ - 0x40, /* Control Endpoint Size. */ - 0x0483, /* idVendor (ST). */ - 0x5742, /* idProduct. */ - 0x0100, /* bcdDevice. */ - 1, /* iManufacturer. */ - 2, /* iProduct. */ - 3, /* iSerialNumber. */ - 1) /* bNumConfigurations. */ -}; - -/* - * Device Descriptor wrapper. - */ -static const USBDescriptor msd_device_descriptor = { - sizeof msd_device_descriptor_data, - msd_device_descriptor_data -}; - -/* Configuration Descriptor tree for a CDC.*/ -static const uint8_t msd_configuration_descriptor_data[] = { - /* Configuration Descriptor.*/ - USB_DESC_CONFIGURATION(0x0020, /* wTotalLength. */ - 0x01, /* bNumInterfaces. */ - 0x01, /* bConfigurationValue. */ - 0, /* iConfiguration. */ - 0xC0, /* bmAttributes (self powered). */ - 0x32), /* bMaxPower (100mA). */ - /* Interface Descriptor.*/ - USB_DESC_INTERFACE (0x00, /* bInterfaceNumber. */ - 0x00, /* bAlternateSetting. */ - 0x02, /* bNumEndpoints. */ - 0x08, /* bInterfaceClass (Mass Storage) */ - 0x06, /* bInterfaceSubClass (SCSI - Transparent storage class) */ - 0x50, /* bInterfaceProtocol (Bulk Only) */ - 0), /* iInterface. (none) */ - /* Mass Storage Data In Endpoint Descriptor.*/ - USB_DESC_ENDPOINT (USB_MS_DATA_EP|0x80, - 0x02, /* bmAttributes (Bulk). */ - USB_MAX_PACKET_SIZE,/* wMaxPacketSize. */ - 0x05), /* bInterval. 1ms */ - /* Mass Storage Data In Endpoint Descriptor.*/ - USB_DESC_ENDPOINT (USB_MS_DATA_EP, - 0x02, /* bmAttributes (Bulk). */ - USB_MAX_PACKET_SIZE,/* wMaxPacketSize. */ - 0x05) /* bInterval. 1ms */ -}; - -/* - * Configuration Descriptor wrapper. - */ -static const USBDescriptor msd_configuration_descriptor = { - sizeof msd_configuration_descriptor_data, - msd_configuration_descriptor_data -}; - -/* - * U.S. English language identifier. - */ -static const uint8_t msd_string0[] = { - USB_DESC_BYTE(4), /* bLength. */ - USB_DESC_BYTE(USB_DESCRIPTOR_STRING), /* bDescriptorType. */ - USB_DESC_WORD(0x0409) /* wLANGID (U.S. English). */ -}; - -/* - * Vendor string. - */ -static const uint8_t msd_string1[] = { - USB_DESC_BYTE(38), /* bLength. */ - USB_DESC_BYTE(USB_DESCRIPTOR_STRING), /* bDescriptorType. */ - 'S', 0, 'T', 0, 'M', 0, 'i', 0, 'c', 0, 'r', 0, 'o', 0, 'e', 0, - 'l', 0, 'e', 0, 'c', 0, 't', 0, 'r', 0, 'o', 0, 'n', 0, 'i', 0, - 'c', 0, 's', 0 -}; - -/* - * Device Description string. - */ -static const uint8_t msd_string2[] = { - USB_DESC_BYTE(62), /* bLength. */ - USB_DESC_BYTE(USB_DESCRIPTOR_STRING), /* bDescriptorType. */ - 'C', 0, 'h', 0, 'i', 0, 'b', 0, 'i', 0, 'O', 0, 'S', 0, '/', 0, - 'R', 0, 'T', 0, ' ', 0, 'M', 0, 'a', 0, 's', 0, 's', 0, ' ', 0, - 'S', 0, 't', 0, 'o', 0, 'r', 0, 'a', 0, 'g', 0, 'e', 0, ' ', 0, - 'D', 0, 'e', 0, 'v', 0, 'i', 0, 'c', 0, 'e' -}; - -static const uint8_t msd_string3[] = { - USB_DESC_BYTE(26), /* bLength. */ - USB_DESC_BYTE(USB_DESCRIPTOR_STRING), /* bDescriptorType. */ - 'A', 0, 'E', 0, 'C', 0, 'C', 0, 'E', 0, 'C', 0, 'C', 0, 'C', 0, 'C', 0, - '0' + CH_KERNEL_MAJOR, 0, - '0' + CH_KERNEL_MINOR, 0, - '0' + CH_KERNEL_PATCH, 0 -}; - -/* - * Strings wrappers array. - */ -static const USBDescriptor msd_strings[] = { - {sizeof msd_string0, msd_string0}, - {sizeof msd_string1, msd_string1}, - {sizeof msd_string2, msd_string2}, - {sizeof msd_string3, msd_string3} -}; - -#else - /* * USB Device Descriptor. */ @@ -373,10 +254,6 @@ const USBDescriptor msd_strings[] = { -#endif - - - /* * Handles the GET_DESCRIPTOR callback. All required descriptors must be * handled here. From 085a02453aa99c3bae04082c1d6cde1ff7b852ba Mon Sep 17 00:00:00 2001 From: Dave Camarillo Date: Fri, 22 Feb 2013 12:18:19 -0800 Subject: [PATCH 29/52] refactored code to simplify projects using composite devices --- .../main.c | 3 +- .../usb_msd.c | 45 ++++++++++--------- .../usb_msd.h | 18 +++++++- .../usb_msd_cfg.c | 4 +- .../usb_msd_cfg.h | 22 +-------- 5 files changed, 44 insertions(+), 48 deletions(-) diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/main.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/main.c index 246f610fe3..773ae2fe26 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/main.c +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/main.c @@ -30,6 +30,7 @@ #include "shell.h" #include "usb_msd.h" #include "serial_usb.h" +#include "usb_msd_cfg.h" /*Serial over USB Driver structure.*/ @@ -126,7 +127,7 @@ int main(void) { sdcConnect(&SDCD1); chprintf(chp, "setting up MSD\r\n"); - msdInit(usb_driver, (BaseBlockDevice*) &SDCD1, &UMSD1); + msdInit(usb_driver, (BaseBlockDevice*) &SDCD1, &UMSD1, USB_MS_DATA_EP); chprintf(chp, "Initializing SDU1...\r\n"); serusbcfg.usbp = usb_driver; diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd.c index 5ce2f6e59a..bcffdc41da 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd.c +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd.c @@ -195,11 +195,11 @@ bool_t SCSICommandInquiry(USBMassStorageDriver *msdp) { return FALSE; } - usbPrepareTransmit(msdp->usbp, USB_MS_DATA_EP, (uint8_t *)&inquiry, + usbPrepareTransmit(msdp->usbp, msdp->ms_ep_number, (uint8_t *)&inquiry, sizeof(scsi_inquiry_response_t)); chSysLock(); - usbStartTransmitI(msdp->usbp, USB_MS_DATA_EP); + usbStartTransmitI(msdp->usbp, msdp->ms_ep_number); chSysUnlock(); msdp->result = TRUE; @@ -209,11 +209,11 @@ bool_t SCSICommandInquiry(USBMassStorageDriver *msdp) { } bool_t SCSICommandRequestSense(USBMassStorageDriver *msdp) { - usbPrepareTransmit(msdp->usbp, USB_MS_DATA_EP, (uint8_t *)&msdp->sense, + usbPrepareTransmit(msdp->usbp, msdp->ms_ep_number, (uint8_t *)&msdp->sense, sizeof(scsi_sense_response_t)); chSysLock(); - usbStartTransmitI(msdp->usbp, USB_MS_DATA_EP); + usbStartTransmitI(msdp->usbp, msdp->ms_ep_number); chSysUnlock(); msdp->result = TRUE; @@ -228,11 +228,11 @@ bool_t SCSICommandReadCapacity10(USBMassStorageDriver *msdp) { response.block_size = swap_uint32(msdp->block_dev_info.blk_size); response.last_block_addr = swap_uint32(msdp->block_dev_info.blk_num-1); - usbPrepareTransmit(msdp->usbp, USB_MS_DATA_EP, (uint8_t *)&response, + usbPrepareTransmit(msdp->usbp, msdp->ms_ep_number, (uint8_t *)&response, sizeof(SCSIReadCapacity10Response_t)); chSysLock(); - usbStartTransmitI(msdp->usbp, USB_MS_DATA_EP); + usbStartTransmitI(msdp->usbp, msdp->ms_ep_number); chSysUnlock(); msdp->result = TRUE; @@ -270,10 +270,10 @@ void SCSIWriteTransferPingPong(USBMassStorageDriver *msdp, volatile rw_usb_sd_bu palSetPad(GPIOH, GPIOH_LED2); #endif for(cnt = 0; cnt < BLOCK_WRITE_ITTERATION_COUNT && cnt < dest_buffer->max_blocks_to_read; cnt++ ) { - usbPrepareReceive(msdp->usbp, USB_MS_DATA_EP, (uint8_t*)&dest_buffer->buf[cnt * BLOCK_SIZE_INCREMENT], (msdp->block_dev_info.blk_size)); + usbPrepareReceive(msdp->usbp, msdp->ms_ep_number, (uint8_t*)&dest_buffer->buf[cnt * BLOCK_SIZE_INCREMENT], (msdp->block_dev_info.blk_size)); chSysLock(); - usbStartReceiveI(msdp->usbp, USB_MS_DATA_EP); + usbStartReceiveI(msdp->usbp, msdp->ms_ep_number); chSysUnlock(); WaitForISR(msdp, FALSE); @@ -450,11 +450,11 @@ bool_t SCSICommandStartReadWrite10(USBMassStorageDriver *msdp) { /* loop over each block */ for(i = 0; i < total_blocks; i++) { /* transmit the block */ - usbPrepareTransmit(msdp->usbp, USB_MS_DATA_EP, read_buffer[i % 2], + usbPrepareTransmit(msdp->usbp, msdp->ms_ep_number, read_buffer[i % 2], msdp->block_dev_info.blk_size); chSysLock(); - usbStartTransmitI(msdp->usbp, USB_MS_DATA_EP); + usbStartTransmitI(msdp->usbp, msdp->ms_ep_number); chSysUnlock(); if(i < (total_blocks - 1)) { @@ -523,10 +523,10 @@ bool_t SCSICommandModeSense6(USBMassStorageDriver *msdp) { /* TODO set byte3 to 0x80 if disk is read only */ static uint8_t response[4] = {0x00, 0x00, 0x00, 0x00}; - usbPrepareTransmit(msdp->usbp, USB_MS_DATA_EP, response, 4); + usbPrepareTransmit(msdp->usbp, msdp->ms_ep_number, response, 4); chSysLock(); - usbStartTransmitI(msdp->usbp, USB_MS_DATA_EP); + usbStartTransmitI(msdp->usbp, msdp->ms_ep_number); chSysUnlock(); msdp->result = TRUE; @@ -536,11 +536,11 @@ bool_t SCSICommandModeSense6(USBMassStorageDriver *msdp) { } bool_t msdWaitForCommandBlock(USBMassStorageDriver *msdp) { - usbPrepareReceive(msdp->usbp, USB_MS_DATA_EP, + usbPrepareReceive(msdp->usbp, msdp->ms_ep_number, (uint8_t *)&msdp->cbw, sizeof(msd_cbw_t)); chSysLock(); - usbStartReceiveI(msdp->usbp, USB_MS_DATA_EP); + usbStartReceiveI(msdp->usbp, msdp->ms_ep_number); chSysUnlock(); msdp->state = read_cmd_block; @@ -567,7 +567,7 @@ bool_t msdReadCommandBlock(USBMassStorageDriver *msdp) { /* stall both IN and OUT endpoints */ chSysLockFromIsr(); - usbStallReceiveI(msdp->usbp, USB_MS_DATA_EP); + usbStallReceiveI(msdp->usbp, msdp->ms_ep_number); chSysUnlockFromIsr(); /* don't wait for ISR */ @@ -621,7 +621,7 @@ bool_t msdReadCommandBlock(USBMassStorageDriver *msdp) { /* stall IN endpoint */ chSysLockFromIsr(); - usbStallTransmitI(msdp->usbp, USB_MS_DATA_EP); + usbStallTransmitI(msdp->usbp, msdp->ms_ep_number); chSysUnlockFromIsr(); cbw->data_len = 0; @@ -639,7 +639,7 @@ bool_t msdReadCommandBlock(USBMassStorageDriver *msdp) { } else { /* stall IN endpoint */ chSysLockFromIsr(); - usbStallTransmitI(msdp->usbp, USB_MS_DATA_EP); + usbStallTransmitI(msdp->usbp, msdp->ms_ep_number); chSysUnlockFromIsr(); cbw->data_len = 0; @@ -657,8 +657,8 @@ bool_t msdReadCommandBlock(USBMassStorageDriver *msdp) { if( (!msdp->result) && cbw->data_len ) { /* still bytes left to send, this is too early to send CSW? */ chSysLockFromIsr(); - usbStallReceiveI(msdp->usbp, USB_MS_DATA_EP); - usbStallTransmitI(msdp->usbp, USB_MS_DATA_EP); + usbStallReceiveI(msdp->usbp, msdp->ms_ep_number); + usbStallTransmitI(msdp->usbp, msdp->ms_ep_number); chSysUnlockFromIsr(); return FALSE; @@ -669,11 +669,11 @@ bool_t msdReadCommandBlock(USBMassStorageDriver *msdp) { csw->data_residue = cbw->data_len; csw->tag = cbw->tag; - usbPrepareTransmit(msdp->usbp, USB_MS_DATA_EP, (uint8_t *)csw, + usbPrepareTransmit(msdp->usbp, msdp->ms_ep_number, (uint8_t *)csw, sizeof(msd_csw_t)); chSysLock(); - usbStartTransmitI(msdp->usbp, USB_MS_DATA_EP); + usbStartTransmitI(msdp->usbp, msdp->ms_ep_number); chSysUnlock(); /* wait on ISR */ @@ -753,13 +753,14 @@ static msg_t MassStorageThd(void *arg) { return 0; } -void msdInit(USBDriver *usbp, BaseBlockDevice *bbdp, USBMassStorageDriver *msdp) { +void msdInit(USBDriver *usbp, BaseBlockDevice *bbdp, USBMassStorageDriver *msdp, const usbep_t ms_ep_number) { uint8_t i; msdp->usbp = usbp; msdp->state = idle; msdp->trigger_transfer_index = UINT32_MAX; msdp->bbdp = bbdp; + msdp->ms_ep_number = ms_ep_number; chEvtInit(&msdp->evt_connected); chEvtInit(&msdp->evt_ejected); diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd.h b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd.h index 6a4d924e08..f5b9a4d286 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd.h +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd.h @@ -1,10 +1,23 @@ -#include "board.h" +#include "hal.h" #define MSD_RW_LED_ON() palSetPad(GPIOI, GPIOI_LED4); #define MSD_RW_LED_OFF() palClearPad(GPIOI, GPIOI_LED4); +#if STM32_USB_USE_OTG2 && STM32_USE_USB_OTG2_HS +# define USB_MS_EP_SIZE 512 +#else +# define USB_MS_EP_SIZE 64 +#endif + + +#ifdef MSD_USB_DRIVER_EXT_FIELDS_NAME +# define USBD_PARAM_NAME MSD_USB_DRIVER_EXT_FIELDS_NAME +#else +# define USBD_PARAM_NAME param +#endif + @@ -134,6 +147,7 @@ struct USBMassStorageDriver { bool_t result; bool_t reconfigured_or_reset_event; uint32_t trigger_transfer_index; + usbep_t ms_ep_number; }; #define MSD_CONNECTED 0 @@ -142,7 +156,7 @@ struct USBMassStorageDriver { #ifdef __cplusplus extern "C" { #endif -void msdInit(USBDriver *usbp, BaseBlockDevice *bdp, USBMassStorageDriver *msdp); +void msdInit(USBDriver *usbp, BaseBlockDevice *bbdp, USBMassStorageDriver *msdp, const usbep_t ms_ep_number); void msdStart(USBDriver *usbp,USBMassStorageDriver *msdp); void msdUsbEvent(USBDriver *usbp, usbep_t ep); bool_t msdRequestsHook(USBDriver *usbp); diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd_cfg.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd_cfg.c index 2f3e01e6f7..2f65b2e861 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd_cfg.c +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd_cfg.c @@ -24,7 +24,7 @@ #include "usb_msd.h" #include "usb_cdc.h" -#define USB_MS_DATA_EP 3 + #if STM32_USB_USE_OTG2 && STM32_USE_USB_OTG2_HS #define USB_MAX_PACKET_SIZE 512 @@ -367,7 +367,7 @@ static void usb_event(USBDriver *usbp, usbevent_t event) { case USB_EVENT_CONFIGURED: chSysLockFromIsr(); msdp->reconfigured_or_reset_event = TRUE; - usbInitEndpointI(usbp, USB_MS_DATA_EP, &epDataConfig); + usbInitEndpointI(usbp, msdp->ms_ep_number, &epDataConfig); /* Enables the endpoints specified into the configuration. Note, this callback is invoked from an ISR so I-Class functions diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd_cfg.h b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd_cfg.h index 0b86bd3fd2..495a805a94 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd_cfg.h +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd_cfg.h @@ -21,26 +21,6 @@ #ifndef USB_MSD_CFG_H_ #define USB_MSD_CFG_H_ - -#define USB_MS_DATA_EP 3 - -#if STM32_USE_USB_OTG2_HS -# define USB_MS_EP_SIZE 512 -#else -# define USB_MS_EP_SIZE 64 -#endif - - -#ifdef MSD_USB_DRIVER_EXT_FIELDS_NAME -# define USBD_PARAM_NAME MSD_USB_DRIVER_EXT_FIELDS_NAME -#else -# define USBD_PARAM_NAME param -#endif - - - - - - +#define USB_MS_DATA_EP 3 #endif /* USB_MSD_CFG_H_ */ From 205c272500e49ac95772953129955f8cc10e5fc9 Mon Sep 17 00:00:00 2001 From: Dave Camarillo Date: Fri, 22 Feb 2013 12:21:45 -0800 Subject: [PATCH 30/52] refactored normal usb single mass storage device code to use same composite variant of driver --- .../main.c | 3 +- .../usb_msd.c | 45 ++++++++++--------- .../usb_msd.h | 18 +++++++- .../usb_msd_cfg.c | 2 +- .../usb_msd_cfg.h | 18 -------- 5 files changed, 42 insertions(+), 44 deletions(-) diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/main.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/main.c index 3755e9b20e..c8b9f467a0 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/main.c +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/main.c @@ -29,6 +29,7 @@ #include "chprintf.h" #include "shell.h" #include "usb_msd.h" +#include "usb_msd_cfg.h" /* * Green LED blinker thread, times are in milliseconds. @@ -112,7 +113,7 @@ int main(void) { chprintf(chp, "setting up MSD\r\n"); USBMassStorageDriver UMSD1; - msdInit(usb_driver, bbdp, &UMSD1); + msdInit(usb_driver, bbdp, &UMSD1, USB_MS_DATA_EP); /*Disconnect the USB Bus*/ usbDisconnectBus(usb_driver); diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/usb_msd.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/usb_msd.c index 5ce2f6e59a..bcffdc41da 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/usb_msd.c +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/usb_msd.c @@ -195,11 +195,11 @@ bool_t SCSICommandInquiry(USBMassStorageDriver *msdp) { return FALSE; } - usbPrepareTransmit(msdp->usbp, USB_MS_DATA_EP, (uint8_t *)&inquiry, + usbPrepareTransmit(msdp->usbp, msdp->ms_ep_number, (uint8_t *)&inquiry, sizeof(scsi_inquiry_response_t)); chSysLock(); - usbStartTransmitI(msdp->usbp, USB_MS_DATA_EP); + usbStartTransmitI(msdp->usbp, msdp->ms_ep_number); chSysUnlock(); msdp->result = TRUE; @@ -209,11 +209,11 @@ bool_t SCSICommandInquiry(USBMassStorageDriver *msdp) { } bool_t SCSICommandRequestSense(USBMassStorageDriver *msdp) { - usbPrepareTransmit(msdp->usbp, USB_MS_DATA_EP, (uint8_t *)&msdp->sense, + usbPrepareTransmit(msdp->usbp, msdp->ms_ep_number, (uint8_t *)&msdp->sense, sizeof(scsi_sense_response_t)); chSysLock(); - usbStartTransmitI(msdp->usbp, USB_MS_DATA_EP); + usbStartTransmitI(msdp->usbp, msdp->ms_ep_number); chSysUnlock(); msdp->result = TRUE; @@ -228,11 +228,11 @@ bool_t SCSICommandReadCapacity10(USBMassStorageDriver *msdp) { response.block_size = swap_uint32(msdp->block_dev_info.blk_size); response.last_block_addr = swap_uint32(msdp->block_dev_info.blk_num-1); - usbPrepareTransmit(msdp->usbp, USB_MS_DATA_EP, (uint8_t *)&response, + usbPrepareTransmit(msdp->usbp, msdp->ms_ep_number, (uint8_t *)&response, sizeof(SCSIReadCapacity10Response_t)); chSysLock(); - usbStartTransmitI(msdp->usbp, USB_MS_DATA_EP); + usbStartTransmitI(msdp->usbp, msdp->ms_ep_number); chSysUnlock(); msdp->result = TRUE; @@ -270,10 +270,10 @@ void SCSIWriteTransferPingPong(USBMassStorageDriver *msdp, volatile rw_usb_sd_bu palSetPad(GPIOH, GPIOH_LED2); #endif for(cnt = 0; cnt < BLOCK_WRITE_ITTERATION_COUNT && cnt < dest_buffer->max_blocks_to_read; cnt++ ) { - usbPrepareReceive(msdp->usbp, USB_MS_DATA_EP, (uint8_t*)&dest_buffer->buf[cnt * BLOCK_SIZE_INCREMENT], (msdp->block_dev_info.blk_size)); + usbPrepareReceive(msdp->usbp, msdp->ms_ep_number, (uint8_t*)&dest_buffer->buf[cnt * BLOCK_SIZE_INCREMENT], (msdp->block_dev_info.blk_size)); chSysLock(); - usbStartReceiveI(msdp->usbp, USB_MS_DATA_EP); + usbStartReceiveI(msdp->usbp, msdp->ms_ep_number); chSysUnlock(); WaitForISR(msdp, FALSE); @@ -450,11 +450,11 @@ bool_t SCSICommandStartReadWrite10(USBMassStorageDriver *msdp) { /* loop over each block */ for(i = 0; i < total_blocks; i++) { /* transmit the block */ - usbPrepareTransmit(msdp->usbp, USB_MS_DATA_EP, read_buffer[i % 2], + usbPrepareTransmit(msdp->usbp, msdp->ms_ep_number, read_buffer[i % 2], msdp->block_dev_info.blk_size); chSysLock(); - usbStartTransmitI(msdp->usbp, USB_MS_DATA_EP); + usbStartTransmitI(msdp->usbp, msdp->ms_ep_number); chSysUnlock(); if(i < (total_blocks - 1)) { @@ -523,10 +523,10 @@ bool_t SCSICommandModeSense6(USBMassStorageDriver *msdp) { /* TODO set byte3 to 0x80 if disk is read only */ static uint8_t response[4] = {0x00, 0x00, 0x00, 0x00}; - usbPrepareTransmit(msdp->usbp, USB_MS_DATA_EP, response, 4); + usbPrepareTransmit(msdp->usbp, msdp->ms_ep_number, response, 4); chSysLock(); - usbStartTransmitI(msdp->usbp, USB_MS_DATA_EP); + usbStartTransmitI(msdp->usbp, msdp->ms_ep_number); chSysUnlock(); msdp->result = TRUE; @@ -536,11 +536,11 @@ bool_t SCSICommandModeSense6(USBMassStorageDriver *msdp) { } bool_t msdWaitForCommandBlock(USBMassStorageDriver *msdp) { - usbPrepareReceive(msdp->usbp, USB_MS_DATA_EP, + usbPrepareReceive(msdp->usbp, msdp->ms_ep_number, (uint8_t *)&msdp->cbw, sizeof(msd_cbw_t)); chSysLock(); - usbStartReceiveI(msdp->usbp, USB_MS_DATA_EP); + usbStartReceiveI(msdp->usbp, msdp->ms_ep_number); chSysUnlock(); msdp->state = read_cmd_block; @@ -567,7 +567,7 @@ bool_t msdReadCommandBlock(USBMassStorageDriver *msdp) { /* stall both IN and OUT endpoints */ chSysLockFromIsr(); - usbStallReceiveI(msdp->usbp, USB_MS_DATA_EP); + usbStallReceiveI(msdp->usbp, msdp->ms_ep_number); chSysUnlockFromIsr(); /* don't wait for ISR */ @@ -621,7 +621,7 @@ bool_t msdReadCommandBlock(USBMassStorageDriver *msdp) { /* stall IN endpoint */ chSysLockFromIsr(); - usbStallTransmitI(msdp->usbp, USB_MS_DATA_EP); + usbStallTransmitI(msdp->usbp, msdp->ms_ep_number); chSysUnlockFromIsr(); cbw->data_len = 0; @@ -639,7 +639,7 @@ bool_t msdReadCommandBlock(USBMassStorageDriver *msdp) { } else { /* stall IN endpoint */ chSysLockFromIsr(); - usbStallTransmitI(msdp->usbp, USB_MS_DATA_EP); + usbStallTransmitI(msdp->usbp, msdp->ms_ep_number); chSysUnlockFromIsr(); cbw->data_len = 0; @@ -657,8 +657,8 @@ bool_t msdReadCommandBlock(USBMassStorageDriver *msdp) { if( (!msdp->result) && cbw->data_len ) { /* still bytes left to send, this is too early to send CSW? */ chSysLockFromIsr(); - usbStallReceiveI(msdp->usbp, USB_MS_DATA_EP); - usbStallTransmitI(msdp->usbp, USB_MS_DATA_EP); + usbStallReceiveI(msdp->usbp, msdp->ms_ep_number); + usbStallTransmitI(msdp->usbp, msdp->ms_ep_number); chSysUnlockFromIsr(); return FALSE; @@ -669,11 +669,11 @@ bool_t msdReadCommandBlock(USBMassStorageDriver *msdp) { csw->data_residue = cbw->data_len; csw->tag = cbw->tag; - usbPrepareTransmit(msdp->usbp, USB_MS_DATA_EP, (uint8_t *)csw, + usbPrepareTransmit(msdp->usbp, msdp->ms_ep_number, (uint8_t *)csw, sizeof(msd_csw_t)); chSysLock(); - usbStartTransmitI(msdp->usbp, USB_MS_DATA_EP); + usbStartTransmitI(msdp->usbp, msdp->ms_ep_number); chSysUnlock(); /* wait on ISR */ @@ -753,13 +753,14 @@ static msg_t MassStorageThd(void *arg) { return 0; } -void msdInit(USBDriver *usbp, BaseBlockDevice *bbdp, USBMassStorageDriver *msdp) { +void msdInit(USBDriver *usbp, BaseBlockDevice *bbdp, USBMassStorageDriver *msdp, const usbep_t ms_ep_number) { uint8_t i; msdp->usbp = usbp; msdp->state = idle; msdp->trigger_transfer_index = UINT32_MAX; msdp->bbdp = bbdp; + msdp->ms_ep_number = ms_ep_number; chEvtInit(&msdp->evt_connected); chEvtInit(&msdp->evt_ejected); diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/usb_msd.h b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/usb_msd.h index 6a4d924e08..f5b9a4d286 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/usb_msd.h +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/usb_msd.h @@ -1,10 +1,23 @@ -#include "board.h" +#include "hal.h" #define MSD_RW_LED_ON() palSetPad(GPIOI, GPIOI_LED4); #define MSD_RW_LED_OFF() palClearPad(GPIOI, GPIOI_LED4); +#if STM32_USB_USE_OTG2 && STM32_USE_USB_OTG2_HS +# define USB_MS_EP_SIZE 512 +#else +# define USB_MS_EP_SIZE 64 +#endif + + +#ifdef MSD_USB_DRIVER_EXT_FIELDS_NAME +# define USBD_PARAM_NAME MSD_USB_DRIVER_EXT_FIELDS_NAME +#else +# define USBD_PARAM_NAME param +#endif + @@ -134,6 +147,7 @@ struct USBMassStorageDriver { bool_t result; bool_t reconfigured_or_reset_event; uint32_t trigger_transfer_index; + usbep_t ms_ep_number; }; #define MSD_CONNECTED 0 @@ -142,7 +156,7 @@ struct USBMassStorageDriver { #ifdef __cplusplus extern "C" { #endif -void msdInit(USBDriver *usbp, BaseBlockDevice *bdp, USBMassStorageDriver *msdp); +void msdInit(USBDriver *usbp, BaseBlockDevice *bbdp, USBMassStorageDriver *msdp, const usbep_t ms_ep_number); void msdStart(USBDriver *usbp,USBMassStorageDriver *msdp); void msdUsbEvent(USBDriver *usbp, usbep_t ep); bool_t msdRequestsHook(USBDriver *usbp); diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/usb_msd_cfg.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/usb_msd_cfg.c index 4b402b12b1..cff2679a93 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/usb_msd_cfg.c +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/usb_msd_cfg.c @@ -201,7 +201,7 @@ static void usb_event(USBDriver *usbp, usbevent_t event) { case USB_EVENT_CONFIGURED: chSysLockFromIsr(); msdp->reconfigured_or_reset_event = TRUE; - usbInitEndpointI(usbp, USB_MS_DATA_EP, &epDataConfig); + usbInitEndpointI(usbp, msdp->ms_ep_number, &epDataConfig); /* Initialize the thread */ chBSemSignalI(&msdp->bsem); diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/usb_msd_cfg.h b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/usb_msd_cfg.h index 120cef5c12..a4e9eaa05b 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/usb_msd_cfg.h +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/usb_msd_cfg.h @@ -24,23 +24,5 @@ #define USB_MS_DATA_EP 1 -#if STM32_USE_USB_OTG2_HS -# define USB_MS_EP_SIZE 512 -#else -# define USB_MS_EP_SIZE 64 -#endif - - -#ifdef MSD_USB_DRIVER_EXT_FIELDS_NAME -# define USBD_PARAM_NAME MSD_USB_DRIVER_EXT_FIELDS_NAME -#else -# define USBD_PARAM_NAME param -#endif - - - - - - #endif /* USB_MSD_CFG_H_ */ From 8cda1e181f9d6ef925797e30f3f0dce82d834bdd Mon Sep 17 00:00:00 2001 From: Dave Camarillo Date: Fri, 22 Feb 2013 12:34:11 -0800 Subject: [PATCH 31/52] refactored usb mass storage device code so that it ties in with the normal HAL and is used commonly by both sets of sample code --- .../Makefile | 1 - .../halconf.h | 7 + .../Makefile | 1 - .../halconf.h | 7 + .../usb_msd.c | 812 ------------------ .../usb_msd.h | 165 ---- .../hal/include}/usb_msd.h | 0 .../hal/src}/usb_msd.c | 0 8 files changed, 14 insertions(+), 979 deletions(-) delete mode 100644 demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/usb_msd.c delete mode 100644 demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/usb_msd.h rename {demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM => os/hal/include}/usb_msd.h (100%) rename {demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM => os/hal/src}/usb_msd.c (100%) diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/Makefile b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/Makefile index 319bbf2594..3b30fc2044 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/Makefile +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/Makefile @@ -89,7 +89,6 @@ CSRC = $(PORTSRC) \ $(CHIBIOS)/os/various/evtimer.c \ $(CHIBIOS)/os/various/chprintf.c \ $(CHIBIOS)/os/various/shell.c \ - usb_msd.c \ usb_msd_cfg.c \ main.c diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/halconf.h b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/halconf.h index 5c3c64a548..8f5b0e6b50 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/halconf.h +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/halconf.h @@ -155,6 +155,13 @@ #define HAL_USE_SERIAL_USB TRUE #endif +/** + * @brief Enables the Mass Storage over USB subsystem. + */ +#if !defined(HAL_USE_MASS_STORAGE_USB) || defined(__DOXYGEN__) +#define HAL_USE_MASS_STORAGE_USB TRUE +#endif + /** * @brief Enables the SPI subsystem. */ diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/Makefile b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/Makefile index 47803d8073..90f8a01464 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/Makefile +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/Makefile @@ -89,7 +89,6 @@ CSRC = $(PORTSRC) \ $(CHIBIOS)/os/various/chprintf.c \ $(CHIBIOS)/os/various/shell.c \ usb_msd_cfg.c \ - usb_msd.c \ main.c # C++ sources that can be compiled in ARM or THUMB mode depending on the global diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/halconf.h b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/halconf.h index 43f910e374..ea18f2a9b9 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/halconf.h +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/halconf.h @@ -155,6 +155,13 @@ #define HAL_USE_SERIAL_USB FALSE #endif +/** + * @brief Enables the Mass Storage over USB subsystem. + */ +#if !defined(HAL_USE_MASS_STORAGE_USB) || defined(__DOXYGEN__) +#define HAL_USE_MASS_STORAGE_USB TRUE +#endif + /** * @brief Enables the SPI subsystem. */ diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/usb_msd.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/usb_msd.c deleted file mode 100644 index bcffdc41da..0000000000 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/usb_msd.c +++ /dev/null @@ -1,812 +0,0 @@ -#include "ch.h" -#include "hal.h" -#include "usb_msd_cfg.h" -#include "usb_msd.h" -#include "chprintf.h" - -#define MSD_ENABLE_PERF_DEBUG_GPIOS FALSE - -#define MSD_DEBUG FALSE -#define msd_debug_print(args ...) if (MSD_DEBUG) { chprintf(args); } - - - -#if HAL_USE_SERIAL_USB -# ifndef MSD_USB_DRIVER_EXT_FIELDS_NAME -# error "The serial usb driver and the mass storage driver both use the USBD->param variable and they conflict, you must define MSD_USB_DRIVER_EXT_FIELDS_NAME for these to work concurently." -# endif -#endif - - -extern const USBConfig msd_usb_config; - - - -static BaseSequentialStream *chp = (BaseSequentialStream *)&SD2; - -static WORKING_AREA(waMassStorage, 1024); -static WORKING_AREA(waMassStorageUSBTransfer, 1024); - -static msg_t MassStorageUSBTransferThd(void *arg); -static msg_t MassStorageThd(void *arg); - -static Thread *msdThd = NULL; -static Thread *msdUSBTransferThd = NULL; - -#define WAIT_ISR_SUCCESS 0 -#define WAIT_ISR_BUSS_RESET_OR_RECONNECT 1 -static uint8_t WaitForISR(USBMassStorageDriver *msdp, const bool_t check_reset); - -#define BLOCK_SIZE_INCREMENT 512 -#define BLOCK_WRITE_ITTERATION_COUNT 32 - -typedef struct { - uint8_t is_transfer_done; - /*Number of blocks actually read from USB IN endpont that should be written to SD card*/ - int num_blocks_to_write; - /*Number of blocks to read from USB IN endpoint*/ - int max_blocks_to_read; - uint8_t buf[(BLOCK_SIZE_INCREMENT * BLOCK_WRITE_ITTERATION_COUNT)]; -} rw_usb_sd_buffer_t; - -static volatile rw_usb_sd_buffer_t rw_ping_pong_buffer[2]; -static uint8_t read_buffer[2][BLOCK_SIZE_INCREMENT]; - -inline uint32_t swap_uint32( uint32_t val ) { - val = ((val << 8) & 0xFF00FF00 ) | ((val >> 8) & 0xFF00FF ); - return ((val << 16) & 0xFFFF0000) | ((val >> 16) & 0x0000FFFF); -} - -#define swap_uint16(x) ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8)) - -#if !defined(MSD_RW_LED_ON) -#define MSD_RW_LED_ON() -#endif - -#if !defined(MSD_RW_LED_OFF) -#define MSD_RW_LED_OFF() -#endif - - - -/*===========================================================================*/ -/* USB related stuff. */ -/*===========================================================================*/ - - -/** - * @brief Default requests hook. - * - * @param[in] usbp pointer to the @p USBDriver object - * @return The hook status. - * @retval TRUE Message handled internally. - * @retval FALSE Message not handled. - */ -bool_t msdRequestsHook(USBDriver *usbp) { - - if (((usbp->setup[0] & USB_RTYPE_TYPE_MASK) == USB_RTYPE_TYPE_CLASS) && - ((usbp->setup[0] & USB_RTYPE_RECIPIENT_MASK) == USB_RTYPE_RECIPIENT_INTERFACE)) { - /* check that the request is for interface 0.*/ - if(MSD_SETUP_INDEX(usbp->setup) != 0) - return FALSE; - - /* act depending on bRequest = setup[1] */ - switch(usbp->setup[1]) { - case MSD_REQ_RESET: - /* check that it is a HOST2DEV request */ - if(((usbp->setup[0] & USB_RTYPE_DIR_MASK) != USB_RTYPE_DIR_HOST2DEV) || - (MSD_SETUP_LENGTH(usbp->setup) != 0) || - (MSD_SETUP_VALUE(usbp->setup) != 0)) - return FALSE; - - /* reset all endpoints */ - /* TODO!*/ - /* The device shall NAK the status stage of the device request until - * the Bulk-Only Mass Storage Reset is complete. - */ - return TRUE; - case MSD_GET_MAX_LUN: - /* check that it is a DEV2HOST request */ - if(((usbp->setup[0] & USB_RTYPE_DIR_MASK) != USB_RTYPE_DIR_DEV2HOST) || - (MSD_SETUP_LENGTH(usbp->setup) != 1) || - (MSD_SETUP_VALUE(usbp->setup) != 0)) - return FALSE; - - static uint8_t len_buf[1] = {0}; - /* stall to indicate that we don't support LUN */ - usbSetupTransfer(usbp, len_buf, 1, NULL); - return TRUE; - default: - return FALSE; - break; - } - } - return FALSE; -} - -static uint8_t WaitForISR(USBMassStorageDriver *msdp, const bool_t check_reset) { - uint8_t ret = WAIT_ISR_SUCCESS; - /* sleep until it completes */ - chSysLock(); - if( check_reset ) { - for(;;) { - const msg_t m = chBSemWaitTimeoutS(&msdp->bsem, 1); - if( m == RDY_OK ) { - break; - } - - if( msdp->reconfigured_or_reset_event ) { - ret = WAIT_ISR_BUSS_RESET_OR_RECONNECT; - break; - } - } - } else { - chBSemWaitS(&msdp->bsem); - } - - chSysUnlock(); - return(ret); -} - -void msdUsbEvent(USBDriver *usbp, usbep_t ep) { - (void)usbp; - (void)ep; - - chSysLockFromIsr(); - chBSemSignalI(&((USBMassStorageDriver *)usbp->USBD_PARAM_NAME)->bsem); - chSysUnlockFromIsr(); -} - - - - - -static inline void SCSISetSense(USBMassStorageDriver *msdp, uint8_t key, uint8_t acode, uint8_t aqual) { - msdp->sense.byte[2] = key; - msdp->sense.byte[12] = acode; - msdp->sense.byte[13] = aqual; -} - -bool_t SCSICommandInquiry(USBMassStorageDriver *msdp) { - msd_cbw_t *cbw = &(msdp->cbw); - - static const scsi_inquiry_response_t inquiry = { - 0x00, // direct access block device - 0x80, // removable - 0x04, // SPC-2 - 0x02, // response data format - 0x20, // response has 0x20 + 4 bytes - 0x00, - 0x00, - 0x00, - "Chibios", - "Mass Storage", - {'v',CH_KERNEL_MAJOR+'0','.',CH_KERNEL_MINOR+'0'}, - }; - - if((cbw->scsi_cmd_data[1] & ((1 << 0) | (1 << 1))) || - cbw->scsi_cmd_data[2]) { - /* Optional but unsupported bits set - update the SENSE key and fail the request */ - SCSISetSense( msdp, - SCSI_SENSE_KEY_ILLEGAL_REQUEST, - SCSI_ASENSE_INVALID_FIELD_IN_CDB, - SCSI_ASENSEQ_NO_QUALIFIER); - - return FALSE; - } - - usbPrepareTransmit(msdp->usbp, msdp->ms_ep_number, (uint8_t *)&inquiry, - sizeof(scsi_inquiry_response_t)); - - chSysLock(); - usbStartTransmitI(msdp->usbp, msdp->ms_ep_number); - chSysUnlock(); - - msdp->result = TRUE; - - /* wait for ISR */ - return TRUE; -} - -bool_t SCSICommandRequestSense(USBMassStorageDriver *msdp) { - usbPrepareTransmit(msdp->usbp, msdp->ms_ep_number, (uint8_t *)&msdp->sense, - sizeof(scsi_sense_response_t)); - - chSysLock(); - usbStartTransmitI(msdp->usbp, msdp->ms_ep_number); - chSysUnlock(); - - msdp->result = TRUE; - - /* wait for ISR */ - return TRUE; -} - -bool_t SCSICommandReadCapacity10(USBMassStorageDriver *msdp) { - static SCSIReadCapacity10Response_t response; - - response.block_size = swap_uint32(msdp->block_dev_info.blk_size); - response.last_block_addr = swap_uint32(msdp->block_dev_info.blk_num-1); - - usbPrepareTransmit(msdp->usbp, msdp->ms_ep_number, (uint8_t *)&response, - sizeof(SCSIReadCapacity10Response_t)); - - chSysLock(); - usbStartTransmitI(msdp->usbp, msdp->ms_ep_number); - chSysUnlock(); - - msdp->result = TRUE; - - /* wait for ISR */ - return TRUE; -} - -bool_t SCSICommandSendDiagnostic(USBMassStorageDriver *msdp) { - msd_cbw_t *cbw = &(msdp->cbw); - - if( (!cbw->scsi_cmd_data[1]) & (1 << 2)) { - /* Only self-test supported - update SENSE key and fail the command */ - SCSISetSense( msdp, - SCSI_SENSE_KEY_ILLEGAL_REQUEST, - SCSI_ASENSE_INVALID_FIELD_IN_CDB, - SCSI_ASENSEQ_NO_QUALIFIER); - - return FALSE; - } - - /* TODO: actually perform the test */ - msdp->result = TRUE; - - /* don't wait for ISR */ - return FALSE; -} - -void SCSIWriteTransferPingPong(USBMassStorageDriver *msdp, volatile rw_usb_sd_buffer_t *dest_buffer) { - int cnt; - dest_buffer->is_transfer_done = FALSE; - dest_buffer->num_blocks_to_write = 0; - -#if MSD_ENABLE_PERF_DEBUG_GPIOS - palSetPad(GPIOH, GPIOH_LED2); -#endif - for(cnt = 0; cnt < BLOCK_WRITE_ITTERATION_COUNT && cnt < dest_buffer->max_blocks_to_read; cnt++ ) { - usbPrepareReceive(msdp->usbp, msdp->ms_ep_number, (uint8_t*)&dest_buffer->buf[cnt * BLOCK_SIZE_INCREMENT], (msdp->block_dev_info.blk_size)); - - chSysLock(); - usbStartReceiveI(msdp->usbp, msdp->ms_ep_number); - chSysUnlock(); - - WaitForISR(msdp, FALSE); - dest_buffer->num_blocks_to_write++; - } - dest_buffer->is_transfer_done = TRUE; -#if MSD_ENABLE_PERF_DEBUG_GPIOS - palClearPad(GPIOH, GPIOH_LED2); -#endif -} - -static void WaitForUSBTransferComplete(USBMassStorageDriver *msdp, const int ping_pong_buffer_index) { - while(TRUE) { - chBSemWaitTimeout(&msdp->mass_sorage_thd_bsem, MS2ST(1)); - - if( rw_ping_pong_buffer[ping_pong_buffer_index].is_transfer_done ) { - break; - } else { - chThdSleepMilliseconds(1); - } - } -} - -bool_t SCSICommandStartReadWrite10(USBMassStorageDriver *msdp) { - msd_cbw_t *cbw = &(msdp->cbw); - int read_success; - int retry_count; - - if((cbw->scsi_cmd_data[0] == SCSI_CMD_WRITE_10) && - blkIsWriteProtected(msdp->bbdp)) { - /* device is write protected and a write has been issued */ - /* Block address is invalid, update SENSE key and return command fail */ - SCSISetSense( msdp, - SCSI_SENSE_KEY_DATA_PROTECT, - SCSI_ASENSE_WRITE_PROTECTED, - SCSI_ASENSEQ_NO_QUALIFIER); - msdp->result = FALSE; - return FALSE; - } - - uint32_t rw_block_address = swap_uint32(*(uint32_t *)&cbw->scsi_cmd_data[2]); - const uint16_t total_blocks = swap_uint16(*(uint16_t *)&cbw->scsi_cmd_data[7]); - uint16_t i = 0; - - if(rw_block_address >= msdp->block_dev_info.blk_num) { - /* Block address is invalid, update SENSE key and return command fail */ - SCSISetSense( msdp, - SCSI_SENSE_KEY_DATA_PROTECT, - SCSI_ASENSE_WRITE_PROTECTED, - SCSI_ASENSEQ_NO_QUALIFIER); - msdp->result = FALSE; - - /* don't wait for ISR */ - return FALSE; - } - - for(i = 0; i < 2; i++ ) { - //initialized ping pong buffer - rw_ping_pong_buffer[i].max_blocks_to_read = 0; - rw_ping_pong_buffer[i].num_blocks_to_write = 0; - rw_ping_pong_buffer[i].is_transfer_done = FALSE; - } - - - if(cbw->scsi_cmd_data[0] == SCSI_CMD_WRITE_10) { - /* loop over each block */ - - int ping_pong_buffer_index = 0; - //initiate a transfer - rw_ping_pong_buffer[ping_pong_buffer_index].is_transfer_done = FALSE; - rw_ping_pong_buffer[ping_pong_buffer_index].max_blocks_to_read = total_blocks; - msdp->trigger_transfer_index = ping_pong_buffer_index;//Trigger the transfer in the other thread - - //wake other thread on semaphore to trigger the transfer - chBSemSignal(&msdp->usb_transfer_thread_bsem); - - WaitForUSBTransferComplete(msdp, ping_pong_buffer_index); - - for(i = 0; i < total_blocks; ) { - const int done_buffer_index = ping_pong_buffer_index; - const int empty_buffer_index = ((ping_pong_buffer_index + 1) % 2); - - //initiate another transfer in the other ping pong buffer - int queue_another_transfer = FALSE; - if( (i + BLOCK_WRITE_ITTERATION_COUNT) < total_blocks ) { - queue_another_transfer = TRUE; - } - - if( queue_another_transfer ) { - while( TRUE ) { - if(msdp->trigger_transfer_index == UINT32_MAX) { - rw_ping_pong_buffer[empty_buffer_index].max_blocks_to_read = total_blocks - i - BLOCK_WRITE_ITTERATION_COUNT; - - msdp->trigger_transfer_index = empty_buffer_index; - - //wake other thread on semaphore to trigger the transfer - chBSemSignal(&msdp->usb_transfer_thread_bsem); - break; - } else { - chThdSleepMilliseconds(1); - } - } - } - - - - - if( rw_ping_pong_buffer[done_buffer_index].num_blocks_to_write <= 0 ) { - /*This should never happen!!! Something is seriously wrong!*/ - msd_debug_print(chp, "\r\nCant write 0 blocks, this should not happen, halting\r\n"); - chThdSleepMilliseconds(50); - chSysHalt(); - } - - /* now write the block to the block device */ - if(blkWrite(msdp->bbdp, rw_block_address, (uint8_t*)rw_ping_pong_buffer[done_buffer_index].buf, - rw_ping_pong_buffer[done_buffer_index].num_blocks_to_write) == CH_FAILED ) { - - msd_debug_print(chp, "\r\nSD Block Write Error, halting\r\n"); - chThdSleepMilliseconds(50); - msdp->result = FALSE; - SCSISetSense( msdp, - SCSI_SENSE_KEY_MEDIUM_ERROR, - SCSI_ASENSE_NO_ADDITIONAL_INFORMATION, - SCSI_ASENSEQ_NO_QUALIFIER); - - if( queue_another_transfer ) { - /*Let the previous queued transfer finish and ignore it.*/ - WaitForUSBTransferComplete(msdp, empty_buffer_index); - } - - return(FALSE); - } - rw_block_address += rw_ping_pong_buffer[done_buffer_index].num_blocks_to_write; - i += rw_ping_pong_buffer[done_buffer_index].num_blocks_to_write; - rw_ping_pong_buffer[done_buffer_index].is_transfer_done = FALSE; - rw_ping_pong_buffer[done_buffer_index].num_blocks_to_write = 0; - - - if( queue_another_transfer ) { - WaitForUSBTransferComplete(msdp, empty_buffer_index); - } - - //Swap the ping pong buffers - ping_pong_buffer_index = empty_buffer_index; - } - - } else { - i = 0; - /* read the first block from block device */ - read_success = FALSE; - for(retry_count = 0; retry_count < 3; retry_count++ ) { - if(blkRead(msdp->bbdp, rw_block_address, read_buffer[i % 2], 1) == CH_FAILED) { - msd_debug_print(chp, "\r\nSD Block Read Error\r\n"); - } else { - read_success = TRUE; - break; - } - } - if( (!read_success) ) { - msd_debug_print(chp, "\r\nSD Block Read Error 1, halting\r\n"); - chThdSleepMilliseconds(70);//wait for printing to finish - msdp->result = FALSE; - - msd_debug_print(chp, "\r\nSetting sense code %u\r\n", SCSI_SENSE_KEY_MEDIUM_ERROR); - SCSISetSense( msdp, - SCSI_SENSE_KEY_MEDIUM_ERROR, - SCSI_ASENSE_NO_ADDITIONAL_INFORMATION, - SCSI_ASENSEQ_NO_QUALIFIER); - return FALSE; - } - rw_block_address++; - - /* loop over each block */ - for(i = 0; i < total_blocks; i++) { - /* transmit the block */ - usbPrepareTransmit(msdp->usbp, msdp->ms_ep_number, read_buffer[i % 2], - msdp->block_dev_info.blk_size); - - chSysLock(); - usbStartTransmitI(msdp->usbp, msdp->ms_ep_number); - chSysUnlock(); - - if(i < (total_blocks - 1)) { - /* there is at least one more block to be read from device */ - /* so read that while the USB transfer takes place */ - read_success = FALSE; - for(retry_count = 0; retry_count < 3; retry_count++ ) { - if(blkRead(msdp->bbdp, rw_block_address, read_buffer[(i+1) % 2], 1) == CH_FAILED ) { - msd_debug_print(chp, "\r\nSD Block Read Error 2\r\n"); - } else { - read_success = TRUE; - break; - } - } - - if( (! read_success) ) { - msd_debug_print(chp, "\r\nSD Block Read Error 22, addr=%d, halting\r\n", rw_block_address); - chThdSleepMilliseconds(70);//wait for printing to finish - msdp->result = FALSE; - msd_debug_print(chp, "\r\nSetting sense code %u\r\n", SCSI_SENSE_KEY_MEDIUM_ERROR); - SCSISetSense( msdp, - SCSI_SENSE_KEY_MEDIUM_ERROR, - SCSI_ASENSE_NO_ADDITIONAL_INFORMATION, - SCSI_ASENSEQ_NO_QUALIFIER); - return FALSE; - } - - rw_block_address++; - } - - /*FIXME In the event that the USB connection is unplugged while we're waiting for a bulk - * endpoint ISR, this will never return, and when re-plugged into the host, the drive will - * not show back up on the host. We need a way to break out of this loop when disconnected from the bus. - */ - if( WaitForISR(msdp, TRUE) == WAIT_ISR_BUSS_RESET_OR_RECONNECT ) { - msdp->result = FALSE; - return FALSE; - } - } - } - - msdp->result = TRUE; - - /* don't wait for ISR */ - return FALSE; -} - -bool_t SCSICommandStartStopUnit(USBMassStorageDriver *msdp) { - SCSIStartStopUnitRequest_t *ssu = (SCSIStartStopUnitRequest_t *)&(msdp->cbw.scsi_cmd_data); - - if((ssu->loej_start & 0b00000011) == 0b00000010) { - /* device has been ejected */ - chEvtBroadcast(&msdp->evt_ejected); - - msdp->state = ejected; - } - - msdp->result = TRUE; - - /* don't wait for ISR */ - return FALSE; -} - -bool_t SCSICommandModeSense6(USBMassStorageDriver *msdp) { - /* Send an empty header response with the Write Protect flag status */ - /* TODO set byte3 to 0x80 if disk is read only */ - static uint8_t response[4] = {0x00, 0x00, 0x00, 0x00}; - - usbPrepareTransmit(msdp->usbp, msdp->ms_ep_number, response, 4); - - chSysLock(); - usbStartTransmitI(msdp->usbp, msdp->ms_ep_number); - chSysUnlock(); - - msdp->result = TRUE; - - /* wait for ISR */ - return TRUE; -} - -bool_t msdWaitForCommandBlock(USBMassStorageDriver *msdp) { - usbPrepareReceive(msdp->usbp, msdp->ms_ep_number, - (uint8_t *)&msdp->cbw, sizeof(msd_cbw_t)); - - chSysLock(); - usbStartReceiveI(msdp->usbp, msdp->ms_ep_number); - chSysUnlock(); - - msdp->state = read_cmd_block; - - /* wait for ISR */ - return TRUE; -} - - - -/* A command block has been received */ -bool_t msdReadCommandBlock(USBMassStorageDriver *msdp) { - msd_cbw_t *cbw = &(msdp->cbw); - - /* by default transition back to the idle state */ - msdp->state = idle; - - /* check the command */ - if((cbw->signature != MSD_CBW_SIGNATURE) || - (cbw->lun > 0) || - ((cbw->data_len > 0) && (cbw->flags & 0x1F)) || - (cbw->scsi_cmd_len == 0) || - (cbw->scsi_cmd_len > 16)) { - - /* stall both IN and OUT endpoints */ - chSysLockFromIsr(); - usbStallReceiveI(msdp->usbp, msdp->ms_ep_number); - chSysUnlockFromIsr(); - - /* don't wait for ISR */ - return FALSE; - } - - bool_t sleep = FALSE; - switch(cbw->scsi_cmd_data[0]) { - case SCSI_CMD_INQUIRY: - msd_debug_print(chp, "CMD_INQ\r\n"); - sleep = SCSICommandInquiry(msdp); - break; - case SCSI_CMD_REQUEST_SENSE: - msd_debug_print(chp, "\r\nCMD_RS\r\n"); - sleep = SCSICommandRequestSense(msdp); - break; - case SCSI_CMD_READ_CAPACITY_10: - msd_debug_print(chp, "CMD_RC10\r\n"); - sleep = SCSICommandReadCapacity10(msdp); - break; - case SCSI_CMD_READ_10: - case SCSI_CMD_WRITE_10: - msd_debug_print(chp, "CMD_RW\r\n"); - MSD_RW_LED_ON(); - sleep = SCSICommandStartReadWrite10(msdp); - MSD_RW_LED_OFF(); - break; - case SCSI_CMD_SEND_DIAGNOSTIC: - msd_debug_print(chp, "CMD_DIA\r\n"); - sleep = SCSICommandSendDiagnostic(msdp); - break; - case SCSI_CMD_TEST_UNIT_READY: - case SCSI_CMD_PREVENT_ALLOW_MEDIUM_REMOVAL: - case SCSI_CMD_VERIFY_10: - /* don't handle */ - msdp->result = TRUE; - break; - case SCSI_CMD_MODE_SENSE_6: - msd_debug_print(chp, "\r\nCMD_S6\r\n"); - sleep = SCSICommandModeSense6(msdp); - break; - case SCSI_CMD_START_STOP_UNIT: - msd_debug_print(chp, "CMD_STOP\r\n"); - sleep = SCSICommandStartStopUnit(msdp); - break; - default: - SCSISetSense( msdp, - SCSI_SENSE_KEY_ILLEGAL_REQUEST, - SCSI_ASENSE_INVALID_COMMAND, - SCSI_ASENSEQ_NO_QUALIFIER); - - /* stall IN endpoint */ - chSysLockFromIsr(); - usbStallTransmitI(msdp->usbp, msdp->ms_ep_number); - chSysUnlockFromIsr(); - - cbw->data_len = 0; - return FALSE; - } - - cbw->data_len = 0; - - if(msdp->result) { - /* update sense with success status */ - SCSISetSense( msdp, - SCSI_SENSE_KEY_GOOD, - SCSI_ASENSE_NO_ADDITIONAL_INFORMATION, - SCSI_ASENSEQ_NO_QUALIFIER); - } else { - /* stall IN endpoint */ - chSysLockFromIsr(); - usbStallTransmitI(msdp->usbp, msdp->ms_ep_number); - chSysUnlockFromIsr(); - - cbw->data_len = 0; - return FALSE; - } - - if(sleep) { - if( WaitForISR(msdp, TRUE) == WAIT_ISR_BUSS_RESET_OR_RECONNECT ) { - return(FALSE); - } - } - - msd_csw_t *csw = &(msdp->csw); - - if( (!msdp->result) && cbw->data_len ) { - /* still bytes left to send, this is too early to send CSW? */ - chSysLockFromIsr(); - usbStallReceiveI(msdp->usbp, msdp->ms_ep_number); - usbStallTransmitI(msdp->usbp, msdp->ms_ep_number); - chSysUnlockFromIsr(); - - return FALSE; - } - - csw->status = (msdp->result) ? MSD_COMMAND_PASSED : MSD_COMMAND_FAILED; - csw->signature = MSD_CSW_SIGNATURE; - csw->data_residue = cbw->data_len; - csw->tag = cbw->tag; - - usbPrepareTransmit(msdp->usbp, msdp->ms_ep_number, (uint8_t *)csw, - sizeof(msd_csw_t)); - - chSysLock(); - usbStartTransmitI(msdp->usbp, msdp->ms_ep_number); - chSysUnlock(); - - /* wait on ISR */ - return TRUE; -} - -static msg_t MassStorageUSBTransferThd(void *arg) { - USBMassStorageDriver *msdp = (USBMassStorageDriver *)arg; - - for(;;) { - if( msdp->trigger_transfer_index != UINT32_MAX ) { - SCSIWriteTransferPingPong(msdp, &rw_ping_pong_buffer[msdp->trigger_transfer_index]); - msdp->trigger_transfer_index = UINT32_MAX; - //notify other thread - chBSemSignal(&msdp->mass_sorage_thd_bsem); - } - - chBSemWaitTimeout(&msdp->usb_transfer_thread_bsem, MS2ST(1)); - } - - return(0); -} - -static msg_t MassStorageThd(void *arg) { - USBMassStorageDriver *msdp = (USBMassStorageDriver *)arg; - - chRegSetThreadName("USB-MSD"); - - bool_t wait_for_isr = FALSE; - - /* wait for the usb to be initialized */ - msd_debug_print(chp, "Y"); - WaitForISR(msdp, FALSE); - msd_debug_print(chp, "y"); - - while (TRUE) { - wait_for_isr = FALSE; - - if( msdp->reconfigured_or_reset_event ) { - /*If the devices is unplugged and re-plugged but did not have a CPU reset, - * we must set the state back to idle.*/ - msdp->reconfigured_or_reset_event = FALSE; - msdp->state = idle; - } - - msd_debug_print(chp, "state=%d\r\n", msdp->state); - /* wait on data depending on the current state */ - switch(msdp->state) { - case idle: - msd_debug_print(chp, "IDL"); - wait_for_isr = msdWaitForCommandBlock(msdp); - msd_debug_print(chp, "x\r\n"); - break; - case read_cmd_block: - msd_debug_print(chp, "RCB"); - wait_for_isr = msdReadCommandBlock(msdp); - msd_debug_print(chp, "x\r\n"); - break; - case ejected: - /* disconnect usb device */ - msd_debug_print(chp, "ejected\r\n"); - chThdSleepMilliseconds(70); - usbDisconnectBus(msdp->usbp); - usbStop(msdp->usbp); - chThdExit(0); - return 0; - } - - /* wait until the ISR wakes thread */ - if( wait_for_isr && (!msdp->reconfigured_or_reset_event) ) { - msd_debug_print(chp, "W"); - WaitForISR(msdp, FALSE); - msd_debug_print(chp, "w"); - } - } - - return 0; -} - -void msdInit(USBDriver *usbp, BaseBlockDevice *bbdp, USBMassStorageDriver *msdp, const usbep_t ms_ep_number) { - uint8_t i; - - msdp->usbp = usbp; - msdp->state = idle; - msdp->trigger_transfer_index = UINT32_MAX; - msdp->bbdp = bbdp; - msdp->ms_ep_number = ms_ep_number; - - chEvtInit(&msdp->evt_connected); - chEvtInit(&msdp->evt_ejected); - - /* Initialize binary semaphore as taken, will cause the thread to initially wait on the */ - chBSemInit(&msdp->bsem, TRUE); - /* Initialize binary semaphore as NOT taken */ - chBSemInit(&msdp->usb_transfer_thread_bsem, FALSE); - chBSemInit(&msdp->mass_sorage_thd_bsem, FALSE); - - /* Initialize sense values to zero */ - for(i = 0; i < sizeof(scsi_sense_response_t); i++) - msdp->sense.byte[i] = 0x00; - - /* Response code = 0x70, additional sense length = 0x0A */ - msdp->sense.byte[0] = 0x70; - msdp->sense.byte[7] = 0x0A; - - /* make sure block device is working and get info */ - while(TRUE) { - blkstate_t state = blkGetDriverState(bbdp); - if(state == BLK_READY) - break; - - chThdSleepMilliseconds(50); - } - - blkGetInfo(bbdp, &msdp->block_dev_info); - - usbp->USBD_PARAM_NAME = (void *)msdp; -} - -void msdStart(USBDriver *usbp, USBMassStorageDriver *msdp) { - //upon entry, bus should be disconnected - //usbDisconnectBus(usbp); - //chThdSleepMilliseconds(200); - usbStart(usbp, &msd_usb_config); - //usbConnectBus(usbp); - - if(msdThd == NULL) { - msdThd = chThdCreateStatic(waMassStorage, sizeof(waMassStorage), - NORMALPRIO, MassStorageThd, msdp); - } - - if(msdUSBTransferThd == NULL) { - msdUSBTransferThd = chThdCreateStatic(waMassStorageUSBTransfer, sizeof(waMassStorageUSBTransfer), - NORMALPRIO, MassStorageUSBTransferThd, msdp); - } -} diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/usb_msd.h b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/usb_msd.h deleted file mode 100644 index f5b9a4d286..0000000000 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/usb_msd.h +++ /dev/null @@ -1,165 +0,0 @@ -#include "hal.h" -#define MSD_RW_LED_ON() palSetPad(GPIOI, GPIOI_LED4); -#define MSD_RW_LED_OFF() palClearPad(GPIOI, GPIOI_LED4); - - - - -#if STM32_USB_USE_OTG2 && STM32_USE_USB_OTG2_HS -# define USB_MS_EP_SIZE 512 -#else -# define USB_MS_EP_SIZE 64 -#endif - - -#ifdef MSD_USB_DRIVER_EXT_FIELDS_NAME -# define USBD_PARAM_NAME MSD_USB_DRIVER_EXT_FIELDS_NAME -#else -# define USBD_PARAM_NAME param -#endif - - - - -#define MSD_REQ_RESET 0xFF -#define MSD_GET_MAX_LUN 0xFE -#define MSD_CBW_SIGNATURE 0x43425355 -#define MSD_CSW_SIGNATURE 0x53425355 -#define MSD_COMMAND_DIR_DATA_OUT (0 << 7) -#define MSD_COMMAND_DIR_DATA_IN (1 << 7) - -#define MSD_SETUP_WORD(setup, index) (uint16_t)(((uint16_t)setup[index+1] << 8) | (setup[index] & 0x00FF)) - -#define MSD_SETUP_VALUE(setup) MSD_SETUP_WORD(setup, 2) -#define MSD_SETUP_INDEX(setup) MSD_SETUP_WORD(setup, 4) -#define MSD_SETUP_LENGTH(setup) MSD_SETUP_WORD(setup, 6) - -#define SCSI_CMD_INQUIRY 0x12 -#define SCSI_CMD_REQUEST_SENSE 0x03 -#define SCSI_CMD_READ_CAPACITY_10 0x25 -#define SCSI_CMD_READ_10 0x28 -#define SCSI_CMD_WRITE_10 0x2A -#define SCSI_CMD_TEST_UNIT_READY 0x00 -#define SCSI_CMD_PREVENT_ALLOW_MEDIUM_REMOVAL 0x1E -#define SCSI_CMD_VERIFY_10 0x2F -#define SCSI_CMD_SEND_DIAGNOSTIC 0x1D -#define SCSI_CMD_MODE_SENSE_6 0x1A -#define SCSI_CMD_START_STOP_UNIT 0x1B - -#define MSD_COMMAND_PASSED 0x00 -#define MSD_COMMAND_FAILED 0x01 -#define MSD_COMMAND_PHASE_ERROR 0x02 - -#define SCSI_SENSE_KEY_GOOD 0x00 -#define SCSI_SENSE_KEY_RECOVERED_ERROR 0x01 -#define SCSI_SENSE_KEY_NOT_READY 0x02 -#define SCSI_SENSE_KEY_MEDIUM_ERROR 0x03 -#define SCSI_SENSE_KEY_HARDWARE_ERROR 0x04 -#define SCSI_SENSE_KEY_ILLEGAL_REQUEST 0x05 -#define SCSI_SENSE_KEY_UNIT_ATTENTION 0x06 -#define SCSI_SENSE_KEY_DATA_PROTECT 0x07 -#define SCSI_SENSE_KEY_BLANK_CHECK 0x08 -#define SCSI_SENSE_KEY_VENDOR_SPECIFIC 0x09 -#define SCSI_SENSE_KEY_COPY_ABORTED 0x0A -#define SCSI_SENSE_KEY_ABORTED_COMMAND 0x0B -#define SCSI_SENSE_KEY_VOLUME_OVERFLOW 0x0D -#define SCSI_SENSE_KEY_MISCOMPARE 0x0E -#define SCSI_ASENSE_NO_ADDITIONAL_INFORMATION 0x00 -#define SCSI_ASENSE_LOGICAL_UNIT_NOT_READY 0x04 -#define SCSI_ASENSE_INVALID_FIELD_IN_CDB 0x24 -#define SCSI_ASENSE_NOT_READY_TO_READY_CHANGE 0x28 -#define SCSI_ASENSE_WRITE_PROTECTED 0x27 -#define SCSI_ASENSE_FORMAT_ERROR 0x31 -#define SCSI_ASENSE_INVALID_COMMAND 0x20 -#define SCSI_ASENSE_LOGICAL_BLOCK_ADDRESS_OUT_OF_RANGE 0x21 -#define SCSI_ASENSE_MEDIUM_NOT_PRESENT 0x3A -#define SCSI_ASENSEQ_NO_QUALIFIER 0x00 -#define SCSI_ASENSEQ_FORMAT_COMMAND_FAILED 0x01 -#define SCSI_ASENSEQ_INITIALIZING_COMMAND_REQUIRED 0x02 -#define SCSI_ASENSEQ_OPERATION_IN_PROGRESS 0x07 - -PACK_STRUCT_BEGIN typedef struct { - uint32_t signature; - uint32_t tag; - uint32_t data_len; - uint8_t flags; - uint8_t lun; - uint8_t scsi_cmd_len; - uint8_t scsi_cmd_data[16]; -} PACK_STRUCT_STRUCT msd_cbw_t PACK_STRUCT_END; - -PACK_STRUCT_BEGIN typedef struct { - uint32_t signature; - uint32_t tag; - uint32_t data_residue; - uint8_t status; -} PACK_STRUCT_STRUCT msd_csw_t PACK_STRUCT_END; - -typedef struct { - uint8_t byte[18]; -} __attribute__ ((packed)) scsi_sense_response_t; - -PACK_STRUCT_BEGIN typedef struct -{ - uint8_t peripheral; - uint8_t removable; - uint8_t version; - uint8_t response_data_format; - uint8_t additional_length; - uint8_t sccstp; - uint8_t bqueetc; - uint8_t cmdque; - uint8_t vendorID[8]; - uint8_t productID[16]; - uint8_t productRev[4]; -} PACK_STRUCT_STRUCT scsi_inquiry_response_t PACK_STRUCT_END; - -PACK_STRUCT_BEGIN typedef struct { - uint32_t last_block_addr; - uint32_t block_size; -} PACK_STRUCT_STRUCT SCSIReadCapacity10Response_t PACK_STRUCT_END; - -PACK_STRUCT_BEGIN typedef struct { - uint8_t op_code; - uint8_t lun_immed; - uint8_t res1; - uint8_t res2; - uint8_t loej_start; - uint8_t control; -} PACK_STRUCT_STRUCT SCSIStartStopUnitRequest_t; - -typedef struct USBMassStorageDriver USBMassStorageDriver; - -typedef enum { idle, read_cmd_block, ejected} msd_state_t; - -struct USBMassStorageDriver { - USBDriver *usbp; - BinarySemaphore bsem; - BinarySemaphore usb_transfer_thread_bsem; - BinarySemaphore mass_sorage_thd_bsem; - BaseBlockDevice *bbdp; - EventSource evt_connected, evt_ejected; - BlockDeviceInfo block_dev_info; - msd_state_t state; - msd_cbw_t cbw; - msd_csw_t csw; - scsi_sense_response_t sense; - bool_t result; - bool_t reconfigured_or_reset_event; - uint32_t trigger_transfer_index; - usbep_t ms_ep_number; -}; - -#define MSD_CONNECTED 0 -#define MSD_EJECTED 1 - -#ifdef __cplusplus -extern "C" { -#endif -void msdInit(USBDriver *usbp, BaseBlockDevice *bbdp, USBMassStorageDriver *msdp, const usbep_t ms_ep_number); -void msdStart(USBDriver *usbp,USBMassStorageDriver *msdp); -void msdUsbEvent(USBDriver *usbp, usbep_t ep); -bool_t msdRequestsHook(USBDriver *usbp); -#ifdef __cplusplus -} -#endif diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd.h b/os/hal/include/usb_msd.h similarity index 100% rename from demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd.h rename to os/hal/include/usb_msd.h diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd.c b/os/hal/src/usb_msd.c similarity index 100% rename from demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd.c rename to os/hal/src/usb_msd.c From 6833d4aca635a73decb8844423d3f73ee510d513 Mon Sep 17 00:00:00 2001 From: Dave Camarillo Date: Fri, 22 Feb 2013 12:35:20 -0800 Subject: [PATCH 32/52] refactored usb mass storage device code so that it ties in with the normal HAL and is used commonly by both sets of sample code --- os/hal/hal.mk | 1 + os/hal/include/usb_msd.h | 36 ++++++++++++++++++++++++++++++++++++ os/hal/src/usb_msd.c | 28 +++++++++++++++++++++++++++- 3 files changed, 64 insertions(+), 1 deletion(-) diff --git a/os/hal/hal.mk b/os/hal/hal.mk index b2eed900e1..ae0c6debd8 100644 --- a/os/hal/hal.mk +++ b/os/hal/hal.mk @@ -16,6 +16,7 @@ HALSRC = ${CHIBIOS}/os/hal/src/hal.c \ ${CHIBIOS}/os/hal/src/sdc.c \ ${CHIBIOS}/os/hal/src/serial.c \ ${CHIBIOS}/os/hal/src/serial_usb.c \ + ${CHIBIOS}/os/hal/src/usb_msd.c \ ${CHIBIOS}/os/hal/src/spi.c \ ${CHIBIOS}/os/hal/src/tm.c \ ${CHIBIOS}/os/hal/src/uart.c \ diff --git a/os/hal/include/usb_msd.h b/os/hal/include/usb_msd.h index f5b9a4d286..8b73ebf215 100644 --- a/os/hal/include/usb_msd.h +++ b/os/hal/include/usb_msd.h @@ -1,4 +1,36 @@ +/* + ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, + 2011,2012,2013 Giovanni Di Sirio. + + This file is part of ChibiOS/RT. + + ChibiOS/RT is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + ChibiOS/RT is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + #include "hal.h" + + + + +/* Default to disabled for USB Mass Storage */ +#ifndef HAL_USE_MASS_STORAGE_USB +# define HAL_USE_MASS_STORAGE_USB FALSE +#endif + +#if HAL_USE_MASS_STORAGE_USB || defined(__DOXYGEN__) + + #define MSD_RW_LED_ON() palSetPad(GPIOI, GPIOI_LED4); #define MSD_RW_LED_OFF() palClearPad(GPIOI, GPIOI_LED4); @@ -163,3 +195,7 @@ bool_t msdRequestsHook(USBDriver *usbp); #ifdef __cplusplus } #endif + + +#endif /* HAL_USE_MASS_STORAGE_USB */ + diff --git a/os/hal/src/usb_msd.c b/os/hal/src/usb_msd.c index bcffdc41da..5a76a13f89 100644 --- a/os/hal/src/usb_msd.c +++ b/os/hal/src/usb_msd.c @@ -1,9 +1,32 @@ +/* + ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, + 2011,2012,2013 Giovanni Di Sirio. + + This file is part of ChibiOS/RT. + + ChibiOS/RT is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + ChibiOS/RT is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + #include "ch.h" #include "hal.h" -#include "usb_msd_cfg.h" #include "usb_msd.h" #include "chprintf.h" +#if HAL_USE_MASS_STORAGE_USB || defined(__DOXYGEN__) + + + #define MSD_ENABLE_PERF_DEBUG_GPIOS FALSE #define MSD_DEBUG FALSE @@ -810,3 +833,6 @@ void msdStart(USBDriver *usbp, USBMassStorageDriver *msdp) { NORMALPRIO, MassStorageUSBTransferThd, msdp); } } + + +#endif /* HAL_USE_MASS_STORAGE_USB */ From 7b144cf55baed46505df10586797017edfb694f0 Mon Sep 17 00:00:00 2001 From: Dave Camarillo Date: Fri, 22 Feb 2013 12:39:49 -0800 Subject: [PATCH 33/52] added ifdef to only include the header once --- os/hal/include/usb_msd.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/os/hal/include/usb_msd.h b/os/hal/include/usb_msd.h index 8b73ebf215..a096f1e090 100644 --- a/os/hal/include/usb_msd.h +++ b/os/hal/include/usb_msd.h @@ -18,11 +18,15 @@ along with this program. If not, see . */ +#ifndef _USB_MSD_H_ +#define _USB_MSD_H_ + #include "hal.h" + /* Default to disabled for USB Mass Storage */ #ifndef HAL_USE_MASS_STORAGE_USB # define HAL_USE_MASS_STORAGE_USB FALSE @@ -199,3 +203,5 @@ bool_t msdRequestsHook(USBDriver *usbp); #endif /* HAL_USE_MASS_STORAGE_USB */ +#endif /* _USB_MSD_H_ */ + From f3e52062cf7cbca0fb4c58eb56229007dac44c01 Mon Sep 17 00:00:00 2001 From: Dave Camarillo Date: Fri, 22 Feb 2013 13:01:08 -0800 Subject: [PATCH 34/52] factored out USB start logic from mass storage driver --- .../main.c | 3 +++ .../main.c | 3 +++ os/hal/src/usb_msd.c | 2 +- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/main.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/main.c index 773ae2fe26..7c18141f61 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/main.c +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/main.c @@ -39,6 +39,8 @@ SerialUSBConfig serusbcfg = { NULL }; USBMassStorageDriver UMSD1; +extern const USBConfig msd_usb_config; + /* * CDC ACM Echo Thread @@ -143,6 +145,7 @@ int main(void) { /*Start the useful functions*/ sduStart(&SDU1, &serusbcfg); msdStart(usb_driver, &UMSD1); + usbStart(usb_driver, &msd_usb_config); /*Connect the USB Bus*/ usbConnectBus(usb_driver); diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/main.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/main.c index c8b9f467a0..1bc4f53560 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/main.c +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/main.c @@ -31,6 +31,8 @@ #include "usb_msd.h" #include "usb_msd_cfg.h" +extern const USBConfig msd_usb_config; + /* * Green LED blinker thread, times are in milliseconds. */ @@ -121,6 +123,7 @@ int main(void) { /*Start the useful functions*/ msdStart(usb_driver, &UMSD1); + usbStart(usb_driver, &msd_usb_config); /*Connect the USB Bus*/ usbConnectBus(usb_driver); diff --git a/os/hal/src/usb_msd.c b/os/hal/src/usb_msd.c index 5a76a13f89..52509d765d 100644 --- a/os/hal/src/usb_msd.c +++ b/os/hal/src/usb_msd.c @@ -820,7 +820,7 @@ void msdStart(USBDriver *usbp, USBMassStorageDriver *msdp) { //upon entry, bus should be disconnected //usbDisconnectBus(usbp); //chThdSleepMilliseconds(200); - usbStart(usbp, &msd_usb_config); + //usbStart(usbp, &msd_usb_config); //usbConnectBus(usbp); if(msdThd == NULL) { From 85c52501473f98e0e7082c2b52e56bd9346c356d Mon Sep 17 00:00:00 2001 From: Dave Camarillo Date: Fri, 22 Feb 2013 13:49:33 -0800 Subject: [PATCH 35/52] added code to set thread name for MSD transfer thread --- os/hal/src/usb_msd.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/os/hal/src/usb_msd.c b/os/hal/src/usb_msd.c index 52509d765d..79a0b8e4c8 100644 --- a/os/hal/src/usb_msd.c +++ b/os/hal/src/usb_msd.c @@ -706,6 +706,8 @@ bool_t msdReadCommandBlock(USBMassStorageDriver *msdp) { static msg_t MassStorageUSBTransferThd(void *arg) { USBMassStorageDriver *msdp = (USBMassStorageDriver *)arg; + chRegSetThreadName("USB-MSD-Transfer"); + for(;;) { if( msdp->trigger_transfer_index != UINT32_MAX ) { SCSIWriteTransferPingPong(msdp, &rw_ping_pong_buffer[msdp->trigger_transfer_index]); From 314b12cc1e9701ce60bec2517e0bdc489c6a0e0e Mon Sep 17 00:00:00 2001 From: Dave Camarillo Date: Tue, 26 Feb 2013 17:45:41 -0800 Subject: [PATCH 36/52] added SD card write performance metrics to readme file. --- .../readme.txt | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/readme.txt b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/readme.txt index e77fdbe896..21eafdc7f2 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/readme.txt +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/readme.txt @@ -26,6 +26,19 @@ toolchains. ** Notes ** +The following write performance tests were performed Feb 26, 2013, using the Wave Share 407I-C Dev board on the USB High Speed interface. + * A-Data, 8gig SD card, Class 6, 3.0megabytes/second write speed + * Kingston, 32gig SD card, Class 10, 3.9megabytes/second write speed + * Kingston, 16 gig SD card, Class 4, 2.9megabytes/second write speed + * RiData, 8 gig SD card, Class 6, 2.4megabytes/second write speed + * Sandisk, 32 gig SD card, Class 4, 3.9megabytes/second write speed + * Sandisk Ultra, 16gig SD card, HCI, 3.1megabytes/second write speed + * Sandisk, 8 gig SD card, Class 4, 3.9megabytes/second write speed + * Sandisk, 4 gig SD card, Class 6, 3.9megabytes/second write speed + * Transend, 16 gig SD card, Class 10, 3.9megabytes/second write speed + * Transend, 8 gig SD card, Class 6, 2.8megabytes/second write speed + + Some files used by the demo are not part of ChibiOS/RT but are copyright of ST Microelectronics and are licensed under a different license. Also note that not all the files present in the ST library are distributed From e076819b831fbbea0b0e4f3708f8b1328877f4c9 Mon Sep 17 00:00:00 2001 From: Dave Camarillo Date: Wed, 27 Feb 2013 15:39:11 -0800 Subject: [PATCH 37/52] modified default hal include to include mass storage driver --- os/hal/include/hal.h | 1 + 1 file changed, 1 insertion(+) diff --git a/os/hal/include/hal.h b/os/hal/include/hal.h index 8bf648a8c3..b6e60258e4 100644 --- a/os/hal/include/hal.h +++ b/os/hal/include/hal.h @@ -63,6 +63,7 @@ /* Complex drivers.*/ #include "mmc_spi.h" #include "serial_usb.h" +#include "usb_msd.h" /*===========================================================================*/ /* Driver constants. */ From 30ce2bebdf4343a17974fec251eb2c4cc948812c Mon Sep 17 00:00:00 2001 From: Dave Camarillo Date: Tue, 5 Mar 2013 11:52:32 -0800 Subject: [PATCH 38/52] updated readme for usb mass storage demo --- .../readme.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/readme.txt b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/readme.txt index 21eafdc7f2..bf8ee9b6a9 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/readme.txt +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/readme.txt @@ -26,7 +26,9 @@ toolchains. ** Notes ** -The following write performance tests were performed Feb 26, 2013, using the Wave Share 407I-C Dev board on the USB High Speed interface. +The following write performance tests were performed Feb 26, 2013, using the Wave Share 407I-C Dev +board on the USB High Speed interface. Tests were doing using "dd conv=fdatasync if=XXXX of=YYYY" +on a Lenovo Linux host with a USB 2.0 host controller. * A-Data, 8gig SD card, Class 6, 3.0megabytes/second write speed * Kingston, 32gig SD card, Class 10, 3.9megabytes/second write speed * Kingston, 16 gig SD card, Class 4, 2.9megabytes/second write speed From caa582eb6b87d9b065291b403338082edf705ea6 Mon Sep 17 00:00:00 2001 From: Dave Camarillo Date: Tue, 5 Mar 2013 11:58:35 -0800 Subject: [PATCH 39/52] removed unused variable from msdStart() function prototype --- .../main.c | 2 +- .../main.c | 2 +- os/hal/include/usb_msd.h | 2 +- os/hal/src/usb_msd.c | 8 ++------ 4 files changed, 5 insertions(+), 9 deletions(-) diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/main.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/main.c index 7c18141f61..d29e8bb544 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/main.c +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/main.c @@ -144,7 +144,7 @@ int main(void) { /*Start the useful functions*/ sduStart(&SDU1, &serusbcfg); - msdStart(usb_driver, &UMSD1); + msdStart(&UMSD1); usbStart(usb_driver, &msd_usb_config); /*Connect the USB Bus*/ diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/main.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/main.c index 1bc4f53560..47ec506129 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/main.c +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/main.c @@ -122,7 +122,7 @@ int main(void) { chThdSleepMilliseconds(200); /*Start the useful functions*/ - msdStart(usb_driver, &UMSD1); + msdStart(&UMSD1); usbStart(usb_driver, &msd_usb_config); /*Connect the USB Bus*/ diff --git a/os/hal/include/usb_msd.h b/os/hal/include/usb_msd.h index a096f1e090..2caa990d1a 100644 --- a/os/hal/include/usb_msd.h +++ b/os/hal/include/usb_msd.h @@ -193,7 +193,7 @@ struct USBMassStorageDriver { extern "C" { #endif void msdInit(USBDriver *usbp, BaseBlockDevice *bbdp, USBMassStorageDriver *msdp, const usbep_t ms_ep_number); -void msdStart(USBDriver *usbp,USBMassStorageDriver *msdp); +void msdStart(USBMassStorageDriver *msdp); void msdUsbEvent(USBDriver *usbp, usbep_t ep); bool_t msdRequestsHook(USBDriver *usbp); #ifdef __cplusplus diff --git a/os/hal/src/usb_msd.c b/os/hal/src/usb_msd.c index 79a0b8e4c8..6762b5aff4 100644 --- a/os/hal/src/usb_msd.c +++ b/os/hal/src/usb_msd.c @@ -818,12 +818,8 @@ void msdInit(USBDriver *usbp, BaseBlockDevice *bbdp, USBMassStorageDriver *msdp, usbp->USBD_PARAM_NAME = (void *)msdp; } -void msdStart(USBDriver *usbp, USBMassStorageDriver *msdp) { - //upon entry, bus should be disconnected - //usbDisconnectBus(usbp); - //chThdSleepMilliseconds(200); - //usbStart(usbp, &msd_usb_config); - //usbConnectBus(usbp); +void msdStart(USBMassStorageDriver *msdp) { + //upon entry, USB bus should be disconnected if(msdThd == NULL) { msdThd = chThdCreateStatic(waMassStorage, sizeof(waMassStorage), From 35a88d3980488d8c26bc141c2cd6768daec6f2fc Mon Sep 17 00:00:00 2001 From: Dave Camarillo Date: Tue, 5 Mar 2013 15:00:06 -0800 Subject: [PATCH 40/52] re-aranged code and added comments to be more consistant with chibios styles --- os/hal/src/usb_msd.c | 325 ++++++++++++++++++++++++------------------- 1 file changed, 184 insertions(+), 141 deletions(-) diff --git a/os/hal/src/usb_msd.c b/os/hal/src/usb_msd.c index 6762b5aff4..802e349357 100644 --- a/os/hal/src/usb_msd.c +++ b/os/hal/src/usb_msd.c @@ -18,6 +18,15 @@ along with this program. If not, see . */ +/** + * @file usb_msd.c + * @brief USB Mass Storage Driver code. + * + * @addtogroup MSD_USB + * @{ + */ + + #include "ch.h" #include "hal.h" #include "usb_msd.h" @@ -25,7 +34,9 @@ #if HAL_USE_MASS_STORAGE_USB || defined(__DOXYGEN__) - +/*===========================================================================*/ +/* Driver local definitions. */ +/*===========================================================================*/ #define MSD_ENABLE_PERF_DEBUG_GPIOS FALSE @@ -41,9 +52,26 @@ #endif -extern const USBConfig msd_usb_config; +#if !defined(MSD_RW_LED_ON) +#define MSD_RW_LED_ON() +#endif + +#if !defined(MSD_RW_LED_OFF) +#define MSD_RW_LED_OFF() +#endif + + + +/*===========================================================================*/ +/* Driver exported variables. */ +/*===========================================================================*/ + +extern const USBConfig msd_usb_config; +/*===========================================================================*/ +/* Driver local variables and types. */ +/*===========================================================================*/ static BaseSequentialStream *chp = (BaseSequentialStream *)&SD2; @@ -82,21 +110,87 @@ inline uint32_t swap_uint32( uint32_t val ) { #define swap_uint16(x) ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8)) -#if !defined(MSD_RW_LED_ON) -#define MSD_RW_LED_ON() -#endif -#if !defined(MSD_RW_LED_OFF) -#define MSD_RW_LED_OFF() -#endif /*===========================================================================*/ -/* USB related stuff. */ +/* Driver exported functions. */ /*===========================================================================*/ + +void msdInit(USBDriver *usbp, BaseBlockDevice *bbdp, USBMassStorageDriver *msdp, const usbep_t ms_ep_number) { + uint8_t i; + + msdp->usbp = usbp; + msdp->state = idle; + msdp->trigger_transfer_index = UINT32_MAX; + msdp->bbdp = bbdp; + msdp->ms_ep_number = ms_ep_number; + + chEvtInit(&msdp->evt_connected); + chEvtInit(&msdp->evt_ejected); + + /* Initialize binary semaphore as taken, will cause the thread to initially wait on the */ + chBSemInit(&msdp->bsem, TRUE); + /* Initialize binary semaphore as NOT taken */ + chBSemInit(&msdp->usb_transfer_thread_bsem, FALSE); + chBSemInit(&msdp->mass_sorage_thd_bsem, FALSE); + + /* Initialize sense values to zero */ + for(i = 0; i < sizeof(scsi_sense_response_t); i++) + msdp->sense.byte[i] = 0x00; + + /* Response code = 0x70, additional sense length = 0x0A */ + msdp->sense.byte[0] = 0x70; + msdp->sense.byte[7] = 0x0A; + + /* make sure block device is working and get info */ + while(TRUE) { + blkstate_t state = blkGetDriverState(bbdp); + if(state == BLK_READY) + break; + + chThdSleepMilliseconds(50); + } + + blkGetInfo(bbdp, &msdp->block_dev_info); + + usbp->USBD_PARAM_NAME = (void *)msdp; +} + +void msdStart(USBMassStorageDriver *msdp) { + //upon entry, USB bus should be disconnected + + if(msdThd == NULL) { + msdThd = chThdCreateStatic(waMassStorage, sizeof(waMassStorage), + NORMALPRIO, MassStorageThd, msdp); + } + + if(msdUSBTransferThd == NULL) { + msdUSBTransferThd = chThdCreateStatic(waMassStorageUSBTransfer, sizeof(waMassStorageUSBTransfer), + NORMALPRIO, MassStorageUSBTransferThd, msdp); + } +} + +/** + * @brief + * + * @param[in] usbp pointer to the @p USBDriver object + * @param[in] ep USB Endpoint Number + */ + +void msdUsbEvent(USBDriver *usbp, usbep_t ep) { + (void)usbp; + (void)ep; + + chSysLockFromIsr(); + chBSemSignalI(&((USBMassStorageDriver *)usbp->USBD_PARAM_NAME)->bsem); + chSysUnlockFromIsr(); +} + + /** * @brief Default requests hook. * @@ -107,90 +201,93 @@ inline uint32_t swap_uint32( uint32_t val ) { */ bool_t msdRequestsHook(USBDriver *usbp) { - if (((usbp->setup[0] & USB_RTYPE_TYPE_MASK) == USB_RTYPE_TYPE_CLASS) && - ((usbp->setup[0] & USB_RTYPE_RECIPIENT_MASK) == USB_RTYPE_RECIPIENT_INTERFACE)) { - /* check that the request is for interface 0.*/ - if(MSD_SETUP_INDEX(usbp->setup) != 0) - return FALSE; - - /* act depending on bRequest = setup[1] */ - switch(usbp->setup[1]) { - case MSD_REQ_RESET: - /* check that it is a HOST2DEV request */ - if(((usbp->setup[0] & USB_RTYPE_DIR_MASK) != USB_RTYPE_DIR_HOST2DEV) || - (MSD_SETUP_LENGTH(usbp->setup) != 0) || - (MSD_SETUP_VALUE(usbp->setup) != 0)) - return FALSE; - - /* reset all endpoints */ - /* TODO!*/ - /* The device shall NAK the status stage of the device request until - * the Bulk-Only Mass Storage Reset is complete. - */ - return TRUE; - case MSD_GET_MAX_LUN: - /* check that it is a DEV2HOST request */ - if(((usbp->setup[0] & USB_RTYPE_DIR_MASK) != USB_RTYPE_DIR_DEV2HOST) || - (MSD_SETUP_LENGTH(usbp->setup) != 1) || - (MSD_SETUP_VALUE(usbp->setup) != 0)) - return FALSE; - - static uint8_t len_buf[1] = {0}; - /* stall to indicate that we don't support LUN */ - usbSetupTransfer(usbp, len_buf, 1, NULL); - return TRUE; - default: - return FALSE; - break; - } - } + if (((usbp->setup[0] & USB_RTYPE_TYPE_MASK) == USB_RTYPE_TYPE_CLASS) && + ((usbp->setup[0] & USB_RTYPE_RECIPIENT_MASK) == USB_RTYPE_RECIPIENT_INTERFACE)) { + /* check that the request is for interface 0.*/ + if(MSD_SETUP_INDEX(usbp->setup) != 0) + return FALSE; + + /* act depending on bRequest = setup[1] */ + switch(usbp->setup[1]) { + case MSD_REQ_RESET: + /* check that it is a HOST2DEV request */ + if(((usbp->setup[0] & USB_RTYPE_DIR_MASK) != USB_RTYPE_DIR_HOST2DEV) || + (MSD_SETUP_LENGTH(usbp->setup) != 0) || + (MSD_SETUP_VALUE(usbp->setup) != 0)) + return FALSE; + + /* reset all endpoints */ + /* TODO!*/ + /* The device shall NAK the status stage of the device request until + * the Bulk-Only Mass Storage Reset is complete. + */ + return TRUE; + case MSD_GET_MAX_LUN: + /* check that it is a DEV2HOST request */ + if(((usbp->setup[0] & USB_RTYPE_DIR_MASK) != USB_RTYPE_DIR_DEV2HOST) || + (MSD_SETUP_LENGTH(usbp->setup) != 1) || + (MSD_SETUP_VALUE(usbp->setup) != 0)) + return FALSE; + + static uint8_t len_buf[1] = {0}; + /* stall to indicate that we don't support LUN */ + usbSetupTransfer(usbp, len_buf, 1, NULL); + return TRUE; + default: + return FALSE; + break; + } + } return FALSE; } + + +/*===========================================================================*/ +/* Driver local functions. */ +/*===========================================================================*/ + +static inline void SCSISetSense(USBMassStorageDriver *msdp, uint8_t key, uint8_t acode, uint8_t aqual) { + msdp->sense.byte[2] = key; + msdp->sense.byte[12] = acode; + msdp->sense.byte[13] = aqual; +} + static uint8_t WaitForISR(USBMassStorageDriver *msdp, const bool_t check_reset) { uint8_t ret = WAIT_ISR_SUCCESS; - /* sleep until it completes */ - chSysLock(); - if( check_reset ) { - for(;;) { - const msg_t m = chBSemWaitTimeoutS(&msdp->bsem, 1); - if( m == RDY_OK ) { - break; - } - - if( msdp->reconfigured_or_reset_event ) { - ret = WAIT_ISR_BUSS_RESET_OR_RECONNECT; - break; - } - } - } else { - chBSemWaitS(&msdp->bsem); - } + /* sleep until it completes */ + chSysLock(); + if( check_reset ) { + for(;;) { + const msg_t m = chBSemWaitTimeoutS(&msdp->bsem, 1); + if( m == RDY_OK ) { + break; + } - chSysUnlock(); - return(ret); + if( msdp->reconfigured_or_reset_event ) { + ret = WAIT_ISR_BUSS_RESET_OR_RECONNECT; + break; + } + } + } else { + chBSemWaitS(&msdp->bsem); + } + + chSysUnlock(); + return(ret); } -void msdUsbEvent(USBDriver *usbp, usbep_t ep) { - (void)usbp; - (void)ep; - chSysLockFromIsr(); - chBSemSignalI(&((USBMassStorageDriver *)usbp->USBD_PARAM_NAME)->bsem); - chSysUnlockFromIsr(); -} -static inline void SCSISetSense(USBMassStorageDriver *msdp, uint8_t key, uint8_t acode, uint8_t aqual) { - msdp->sense.byte[2] = key; - msdp->sense.byte[12] = acode; - msdp->sense.byte[13] = aqual; -} -bool_t SCSICommandInquiry(USBMassStorageDriver *msdp) { + + + +static bool_t SCSICommandInquiry(USBMassStorageDriver *msdp) { msd_cbw_t *cbw = &(msdp->cbw); static const scsi_inquiry_response_t inquiry = { @@ -231,7 +328,7 @@ bool_t SCSICommandInquiry(USBMassStorageDriver *msdp) { return TRUE; } -bool_t SCSICommandRequestSense(USBMassStorageDriver *msdp) { +static bool_t SCSICommandRequestSense(USBMassStorageDriver *msdp) { usbPrepareTransmit(msdp->usbp, msdp->ms_ep_number, (uint8_t *)&msdp->sense, sizeof(scsi_sense_response_t)); @@ -245,7 +342,7 @@ bool_t SCSICommandRequestSense(USBMassStorageDriver *msdp) { return TRUE; } -bool_t SCSICommandReadCapacity10(USBMassStorageDriver *msdp) { +static bool_t SCSICommandReadCapacity10(USBMassStorageDriver *msdp) { static SCSIReadCapacity10Response_t response; response.block_size = swap_uint32(msdp->block_dev_info.blk_size); @@ -264,7 +361,7 @@ bool_t SCSICommandReadCapacity10(USBMassStorageDriver *msdp) { return TRUE; } -bool_t SCSICommandSendDiagnostic(USBMassStorageDriver *msdp) { +static bool_t SCSICommandSendDiagnostic(USBMassStorageDriver *msdp) { msd_cbw_t *cbw = &(msdp->cbw); if( (!cbw->scsi_cmd_data[1]) & (1 << 2)) { @@ -284,7 +381,7 @@ bool_t SCSICommandSendDiagnostic(USBMassStorageDriver *msdp) { return FALSE; } -void SCSIWriteTransferPingPong(USBMassStorageDriver *msdp, volatile rw_usb_sd_buffer_t *dest_buffer) { +static void SCSIWriteTransferPingPong(USBMassStorageDriver *msdp, volatile rw_usb_sd_buffer_t *dest_buffer) { int cnt; dest_buffer->is_transfer_done = FALSE; dest_buffer->num_blocks_to_write = 0; @@ -320,7 +417,7 @@ static void WaitForUSBTransferComplete(USBMassStorageDriver *msdp, const int pin } } -bool_t SCSICommandStartReadWrite10(USBMassStorageDriver *msdp) { +static bool_t SCSICommandStartReadWrite10(USBMassStorageDriver *msdp) { msd_cbw_t *cbw = &(msdp->cbw); int read_success; int retry_count; @@ -525,7 +622,7 @@ bool_t SCSICommandStartReadWrite10(USBMassStorageDriver *msdp) { return FALSE; } -bool_t SCSICommandStartStopUnit(USBMassStorageDriver *msdp) { +static bool_t SCSICommandStartStopUnit(USBMassStorageDriver *msdp) { SCSIStartStopUnitRequest_t *ssu = (SCSIStartStopUnitRequest_t *)&(msdp->cbw.scsi_cmd_data); if((ssu->loej_start & 0b00000011) == 0b00000010) { @@ -541,7 +638,7 @@ bool_t SCSICommandStartStopUnit(USBMassStorageDriver *msdp) { return FALSE; } -bool_t SCSICommandModeSense6(USBMassStorageDriver *msdp) { +static bool_t SCSICommandModeSense6(USBMassStorageDriver *msdp) { /* Send an empty header response with the Write Protect flag status */ /* TODO set byte3 to 0x80 if disk is read only */ static uint8_t response[4] = {0x00, 0x00, 0x00, 0x00}; @@ -558,7 +655,7 @@ bool_t SCSICommandModeSense6(USBMassStorageDriver *msdp) { return TRUE; } -bool_t msdWaitForCommandBlock(USBMassStorageDriver *msdp) { +static bool_t msdWaitForCommandBlock(USBMassStorageDriver *msdp) { usbPrepareReceive(msdp->usbp, msdp->ms_ep_number, (uint8_t *)&msdp->cbw, sizeof(msd_cbw_t)); @@ -575,7 +672,7 @@ bool_t msdWaitForCommandBlock(USBMassStorageDriver *msdp) { /* A command block has been received */ -bool_t msdReadCommandBlock(USBMassStorageDriver *msdp) { +static bool_t msdReadCommandBlock(USBMassStorageDriver *msdp) { msd_cbw_t *cbw = &(msdp->cbw); /* by default transition back to the idle state */ @@ -778,59 +875,5 @@ static msg_t MassStorageThd(void *arg) { return 0; } -void msdInit(USBDriver *usbp, BaseBlockDevice *bbdp, USBMassStorageDriver *msdp, const usbep_t ms_ep_number) { - uint8_t i; - - msdp->usbp = usbp; - msdp->state = idle; - msdp->trigger_transfer_index = UINT32_MAX; - msdp->bbdp = bbdp; - msdp->ms_ep_number = ms_ep_number; - - chEvtInit(&msdp->evt_connected); - chEvtInit(&msdp->evt_ejected); - - /* Initialize binary semaphore as taken, will cause the thread to initially wait on the */ - chBSemInit(&msdp->bsem, TRUE); - /* Initialize binary semaphore as NOT taken */ - chBSemInit(&msdp->usb_transfer_thread_bsem, FALSE); - chBSemInit(&msdp->mass_sorage_thd_bsem, FALSE); - - /* Initialize sense values to zero */ - for(i = 0; i < sizeof(scsi_sense_response_t); i++) - msdp->sense.byte[i] = 0x00; - - /* Response code = 0x70, additional sense length = 0x0A */ - msdp->sense.byte[0] = 0x70; - msdp->sense.byte[7] = 0x0A; - - /* make sure block device is working and get info */ - while(TRUE) { - blkstate_t state = blkGetDriverState(bbdp); - if(state == BLK_READY) - break; - - chThdSleepMilliseconds(50); - } - - blkGetInfo(bbdp, &msdp->block_dev_info); - - usbp->USBD_PARAM_NAME = (void *)msdp; -} - -void msdStart(USBMassStorageDriver *msdp) { - //upon entry, USB bus should be disconnected - - if(msdThd == NULL) { - msdThd = chThdCreateStatic(waMassStorage, sizeof(waMassStorage), - NORMALPRIO, MassStorageThd, msdp); - } - - if(msdUSBTransferThd == NULL) { - msdUSBTransferThd = chThdCreateStatic(waMassStorageUSBTransfer, sizeof(waMassStorageUSBTransfer), - NORMALPRIO, MassStorageUSBTransferThd, msdp); - } -} - #endif /* HAL_USE_MASS_STORAGE_USB */ From d1aea5bb638ba4924645bc1950a1a6a8833995f0 Mon Sep 17 00:00:00 2001 From: Dave Camarillo Date: Wed, 6 Mar 2013 14:09:54 -0800 Subject: [PATCH 41/52] updates to doxygen docs --- os/hal/src/usb_msd.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/os/hal/src/usb_msd.c b/os/hal/src/usb_msd.c index 802e349357..5486b1afb7 100644 --- a/os/hal/src/usb_msd.c +++ b/os/hal/src/usb_msd.c @@ -119,7 +119,14 @@ inline uint32_t swap_uint32( uint32_t val ) { /*===========================================================================*/ - +/** + * @brief + * + * @param[in] usbp pointer to the @p USBDriver object + * @param[in] bbdp pointer to the @p BaseBlockDevice object, such as an SDCDriver object + * @param[in] msdp pointer to the @p USBMassStorageDriver object + * @param[in] ms_ep_number USB Endpoint Number to be used by the mass storage endpoint + */ void msdInit(USBDriver *usbp, BaseBlockDevice *bbdp, USBMassStorageDriver *msdp, const usbep_t ms_ep_number) { uint8_t i; @@ -160,6 +167,12 @@ void msdInit(USBDriver *usbp, BaseBlockDevice *bbdp, USBMassStorageDriver *msdp, usbp->USBD_PARAM_NAME = (void *)msdp; } +/** + * @brief Starts data handling threads for USB mass storage driver + * + * @param[in] msdp pointer to the @p USBMassStorageDriver object + */ + void msdStart(USBMassStorageDriver *msdp) { //upon entry, USB bus should be disconnected @@ -175,7 +188,7 @@ void msdStart(USBMassStorageDriver *msdp) { } /** - * @brief + * @brief USB Event handler calback * * @param[in] usbp pointer to the @p USBDriver object * @param[in] ep USB Endpoint Number From 3d6ab301cd51a6113a480f28ced52870e9b983a9 Mon Sep 17 00:00:00 2001 From: Dave Camarillo Date: Wed, 6 Mar 2013 14:16:43 -0800 Subject: [PATCH 42/52] modified code style to follow ChibiOS style conventions --- os/hal/include/usb_msd.h | 6 --- os/hal/src/usb_msd.c | 82 ++++++++++++++++++++++++++-------------- 2 files changed, 53 insertions(+), 35 deletions(-) diff --git a/os/hal/include/usb_msd.h b/os/hal/include/usb_msd.h index 2caa990d1a..d087ca43c9 100644 --- a/os/hal/include/usb_msd.h +++ b/os/hal/include/usb_msd.h @@ -23,10 +23,6 @@ #include "hal.h" - - - - /* Default to disabled for USB Mass Storage */ #ifndef HAL_USE_MASS_STORAGE_USB # define HAL_USE_MASS_STORAGE_USB FALSE @@ -39,8 +35,6 @@ #define MSD_RW_LED_OFF() palClearPad(GPIOI, GPIOI_LED4); - - #if STM32_USB_USE_OTG2 && STM32_USE_USB_OTG2_HS # define USB_MS_EP_SIZE 512 #else diff --git a/os/hal/src/usb_msd.c b/os/hal/src/usb_msd.c index 5486b1afb7..5b5e9b580a 100644 --- a/os/hal/src/usb_msd.c +++ b/os/hal/src/usb_msd.c @@ -47,7 +47,9 @@ #if HAL_USE_SERIAL_USB # ifndef MSD_USB_DRIVER_EXT_FIELDS_NAME -# error "The serial usb driver and the mass storage driver both use the USBD->param variable and they conflict, you must define MSD_USB_DRIVER_EXT_FIELDS_NAME for these to work concurently." +# error "The serial usb driver and the mass storage driver both use the \ + USBD->param variable and they conflict, you must define \ + MSD_USB_DRIVER_EXT_FIELDS_NAME for these to work concurrently." # endif #endif @@ -127,7 +129,9 @@ inline uint32_t swap_uint32( uint32_t val ) { * @param[in] msdp pointer to the @p USBMassStorageDriver object * @param[in] ms_ep_number USB Endpoint Number to be used by the mass storage endpoint */ -void msdInit(USBDriver *usbp, BaseBlockDevice *bbdp, USBMassStorageDriver *msdp, const usbep_t ms_ep_number) { +void msdInit(USBDriver *usbp, BaseBlockDevice *bbdp, USBMassStorageDriver *msdp, + const usbep_t ms_ep_number) +{ uint8_t i; msdp->usbp = usbp; @@ -139,7 +143,8 @@ void msdInit(USBDriver *usbp, BaseBlockDevice *bbdp, USBMassStorageDriver *msdp, chEvtInit(&msdp->evt_connected); chEvtInit(&msdp->evt_ejected); - /* Initialize binary semaphore as taken, will cause the thread to initially wait on the */ + /* Initialize binary semaphore as taken, will cause the thread to initially + * wait on the */ chBSemInit(&msdp->bsem, TRUE); /* Initialize binary semaphore as NOT taken */ chBSemInit(&msdp->usb_transfer_thread_bsem, FALSE); @@ -174,7 +179,7 @@ void msdInit(USBDriver *usbp, BaseBlockDevice *bbdp, USBMassStorageDriver *msdp, */ void msdStart(USBMassStorageDriver *msdp) { - //upon entry, USB bus should be disconnected + /*upon entry, USB bus should be disconnected*/ if(msdThd == NULL) { msdThd = chThdCreateStatic(waMassStorage, sizeof(waMassStorage), @@ -182,7 +187,8 @@ void msdStart(USBMassStorageDriver *msdp) { } if(msdUSBTransferThd == NULL) { - msdUSBTransferThd = chThdCreateStatic(waMassStorageUSBTransfer, sizeof(waMassStorageUSBTransfer), + msdUSBTransferThd = chThdCreateStatic(waMassStorageUSBTransfer, + sizeof(waMassStorageUSBTransfer), NORMALPRIO, MassStorageUSBTransferThd, msdp); } } @@ -215,7 +221,8 @@ void msdUsbEvent(USBDriver *usbp, usbep_t ep) { bool_t msdRequestsHook(USBDriver *usbp) { if (((usbp->setup[0] & USB_RTYPE_TYPE_MASK) == USB_RTYPE_TYPE_CLASS) && - ((usbp->setup[0] & USB_RTYPE_RECIPIENT_MASK) == USB_RTYPE_RECIPIENT_INTERFACE)) { + ((usbp->setup[0] & USB_RTYPE_RECIPIENT_MASK) == USB_RTYPE_RECIPIENT_INTERFACE)) + { /* check that the request is for interface 0.*/ if(MSD_SETUP_INDEX(usbp->setup) != 0) return FALSE; @@ -260,13 +267,16 @@ bool_t msdRequestsHook(USBDriver *usbp) { /* Driver local functions. */ /*===========================================================================*/ -static inline void SCSISetSense(USBMassStorageDriver *msdp, uint8_t key, uint8_t acode, uint8_t aqual) { +static inline void SCSISetSense(USBMassStorageDriver *msdp, uint8_t key, + uint8_t acode, uint8_t aqual) +{ msdp->sense.byte[2] = key; msdp->sense.byte[12] = acode; msdp->sense.byte[13] = aqual; } -static uint8_t WaitForISR(USBMassStorageDriver *msdp, const bool_t check_reset) { +static uint8_t WaitForISR(USBMassStorageDriver *msdp, const bool_t check_reset) +{ uint8_t ret = WAIT_ISR_SUCCESS; /* sleep until it completes */ chSysLock(); @@ -304,11 +314,11 @@ static bool_t SCSICommandInquiry(USBMassStorageDriver *msdp) { msd_cbw_t *cbw = &(msdp->cbw); static const scsi_inquiry_response_t inquiry = { - 0x00, // direct access block device - 0x80, // removable - 0x04, // SPC-2 - 0x02, // response data format - 0x20, // response has 0x20 + 4 bytes + 0x00, /* direct access block device */ + 0x80, /* removable */ + 0x04, /* SPC-2 */ + 0x02, /* response data format */ + 0x20, /* response has 0x20 + 4 bytes */ 0x00, 0x00, 0x00, @@ -319,7 +329,8 @@ static bool_t SCSICommandInquiry(USBMassStorageDriver *msdp) { if((cbw->scsi_cmd_data[1] & ((1 << 0) | (1 << 1))) || cbw->scsi_cmd_data[2]) { - /* Optional but unsupported bits set - update the SENSE key and fail the request */ + /* Optional but unsupported bits set - update the SENSE key and fail + * the request */ SCSISetSense( msdp, SCSI_SENSE_KEY_ILLEGAL_REQUEST, SCSI_ASENSE_INVALID_FIELD_IN_CDB, @@ -394,7 +405,9 @@ static bool_t SCSICommandSendDiagnostic(USBMassStorageDriver *msdp) { return FALSE; } -static void SCSIWriteTransferPingPong(USBMassStorageDriver *msdp, volatile rw_usb_sd_buffer_t *dest_buffer) { +static void SCSIWriteTransferPingPong(USBMassStorageDriver *msdp, + volatile rw_usb_sd_buffer_t *dest_buffer) +{ int cnt; dest_buffer->is_transfer_done = FALSE; dest_buffer->num_blocks_to_write = 0; @@ -403,7 +416,9 @@ static void SCSIWriteTransferPingPong(USBMassStorageDriver *msdp, volatile rw_us palSetPad(GPIOH, GPIOH_LED2); #endif for(cnt = 0; cnt < BLOCK_WRITE_ITTERATION_COUNT && cnt < dest_buffer->max_blocks_to_read; cnt++ ) { - usbPrepareReceive(msdp->usbp, msdp->ms_ep_number, (uint8_t*)&dest_buffer->buf[cnt * BLOCK_SIZE_INCREMENT], (msdp->block_dev_info.blk_size)); + usbPrepareReceive(msdp->usbp, msdp->ms_ep_number, + (uint8_t*)&dest_buffer->buf[cnt * BLOCK_SIZE_INCREMENT], + (msdp->block_dev_info.blk_size)); chSysLock(); usbStartReceiveI(msdp->usbp, msdp->ms_ep_number); @@ -418,7 +433,9 @@ static void SCSIWriteTransferPingPong(USBMassStorageDriver *msdp, volatile rw_us #endif } -static void WaitForUSBTransferComplete(USBMassStorageDriver *msdp, const int ping_pong_buffer_index) { +static void WaitForUSBTransferComplete(USBMassStorageDriver *msdp, + const int ping_pong_buffer_index) +{ while(TRUE) { chBSemWaitTimeout(&msdp->mass_sorage_thd_bsem, MS2ST(1)); @@ -464,7 +481,7 @@ static bool_t SCSICommandStartReadWrite10(USBMassStorageDriver *msdp) { } for(i = 0; i < 2; i++ ) { - //initialized ping pong buffer + /*initialized ping pong buffer*/ rw_ping_pong_buffer[i].max_blocks_to_read = 0; rw_ping_pong_buffer[i].num_blocks_to_write = 0; rw_ping_pong_buffer[i].is_transfer_done = FALSE; @@ -475,12 +492,15 @@ static bool_t SCSICommandStartReadWrite10(USBMassStorageDriver *msdp) { /* loop over each block */ int ping_pong_buffer_index = 0; - //initiate a transfer + /*initiate a transfer*/ rw_ping_pong_buffer[ping_pong_buffer_index].is_transfer_done = FALSE; rw_ping_pong_buffer[ping_pong_buffer_index].max_blocks_to_read = total_blocks; - msdp->trigger_transfer_index = ping_pong_buffer_index;//Trigger the transfer in the other thread - //wake other thread on semaphore to trigger the transfer + /*Trigger the transfer in the other thread*/ + msdp->trigger_transfer_index = ping_pong_buffer_index; + + + /*wake other thread on semaphore to trigger the transfer*/ chBSemSignal(&msdp->usb_transfer_thread_bsem); WaitForUSBTransferComplete(msdp, ping_pong_buffer_index); @@ -489,7 +509,7 @@ static bool_t SCSICommandStartReadWrite10(USBMassStorageDriver *msdp) { const int done_buffer_index = ping_pong_buffer_index; const int empty_buffer_index = ((ping_pong_buffer_index + 1) % 2); - //initiate another transfer in the other ping pong buffer + /*initiate another transfer in the other ping pong buffer*/ int queue_another_transfer = FALSE; if( (i + BLOCK_WRITE_ITTERATION_COUNT) < total_blocks ) { queue_another_transfer = TRUE; @@ -502,7 +522,7 @@ static bool_t SCSICommandStartReadWrite10(USBMassStorageDriver *msdp) { msdp->trigger_transfer_index = empty_buffer_index; - //wake other thread on semaphore to trigger the transfer + /*wake other thread on semaphore to trigger the transfer*/ chBSemSignal(&msdp->usb_transfer_thread_bsem); break; } else { @@ -522,8 +542,10 @@ static bool_t SCSICommandStartReadWrite10(USBMassStorageDriver *msdp) { } /* now write the block to the block device */ - if(blkWrite(msdp->bbdp, rw_block_address, (uint8_t*)rw_ping_pong_buffer[done_buffer_index].buf, - rw_ping_pong_buffer[done_buffer_index].num_blocks_to_write) == CH_FAILED ) { + if(blkWrite(msdp->bbdp, rw_block_address, + (uint8_t*)rw_ping_pong_buffer[done_buffer_index].buf, + rw_ping_pong_buffer[done_buffer_index].num_blocks_to_write) == CH_FAILED ) + { msd_debug_print(chp, "\r\nSD Block Write Error, halting\r\n"); chThdSleepMilliseconds(50); @@ -550,7 +572,7 @@ static bool_t SCSICommandStartReadWrite10(USBMassStorageDriver *msdp) { WaitForUSBTransferComplete(msdp, empty_buffer_index); } - //Swap the ping pong buffers + /*Swap the ping pong buffers*/ ping_pong_buffer_index = empty_buffer_index; } @@ -568,7 +590,8 @@ static bool_t SCSICommandStartReadWrite10(USBMassStorageDriver *msdp) { } if( (!read_success) ) { msd_debug_print(chp, "\r\nSD Block Read Error 1, halting\r\n"); - chThdSleepMilliseconds(70);//wait for printing to finish + /*wait for printing to finish*/ + chThdSleepMilliseconds(70); msdp->result = FALSE; msd_debug_print(chp, "\r\nSetting sense code %u\r\n", SCSI_SENSE_KEY_MEDIUM_ERROR); @@ -605,7 +628,8 @@ static bool_t SCSICommandStartReadWrite10(USBMassStorageDriver *msdp) { if( (! read_success) ) { msd_debug_print(chp, "\r\nSD Block Read Error 22, addr=%d, halting\r\n", rw_block_address); - chThdSleepMilliseconds(70);//wait for printing to finish + /*wait for printing to finish*/ + chThdSleepMilliseconds(70); msdp->result = FALSE; msd_debug_print(chp, "\r\nSetting sense code %u\r\n", SCSI_SENSE_KEY_MEDIUM_ERROR); SCSISetSense( msdp, @@ -822,7 +846,7 @@ static msg_t MassStorageUSBTransferThd(void *arg) { if( msdp->trigger_transfer_index != UINT32_MAX ) { SCSIWriteTransferPingPong(msdp, &rw_ping_pong_buffer[msdp->trigger_transfer_index]); msdp->trigger_transfer_index = UINT32_MAX; - //notify other thread + /*notify other thread*/ chBSemSignal(&msdp->mass_sorage_thd_bsem); } From a59e008a5eab6c61772f0a7d2744ec9d9108f1c2 Mon Sep 17 00:00:00 2001 From: Dave Camarillo Date: Wed, 6 Mar 2013 14:19:17 -0800 Subject: [PATCH 43/52] standardized USB OGT2 defines for HS on wavesshare demos --- demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/mcuconf.h | 1 + .../ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/mcuconf.h | 1 + 2 files changed, 2 insertions(+) diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/mcuconf.h b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/mcuconf.h index e5ccf5d6aa..8722db4bae 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/mcuconf.h +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/mcuconf.h @@ -259,6 +259,7 @@ #define STM32_USB_USE_OTG2 FALSE #define STM32_USE_USB_OTG2_ULPI FALSE #define STM32_USE_USB_OTG2_HS FALSE +#define STM32_USE_USB_OTG2_HS_FS FALSE #define STM32_USB_OTG1_IRQ_PRIORITY 14 #define STM32_USB_OTG2_IRQ_PRIORITY 14 #define STM32_USB_OTG1_RX_FIFO_SIZE 512 diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/mcuconf.h b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/mcuconf.h index 4b7e6469e5..01a0c82b8e 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/mcuconf.h +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/mcuconf.h @@ -259,6 +259,7 @@ #define STM32_USB_USE_OTG2 TRUE #define STM32_USE_USB_OTG2_HS TRUE #define STM32_USE_USB_OTG2_ULPI TRUE +#define STM32_USE_USB_OTG2_HS_FS FALSE #define STM32_USB_OTG1_IRQ_PRIORITY 14 #define STM32_USB_OTG2_IRQ_PRIORITY 14 #define STM32_USB_OTG1_RX_FIFO_SIZE 512 From 9c098d66ea2e1affaf4afba12494dc2c8a1cb41d Mon Sep 17 00:00:00 2001 From: Dave Camarillo Date: Wed, 6 Mar 2013 14:19:58 -0800 Subject: [PATCH 44/52] added default defines for USB ULPI High Speed USB modes to stm32f407 demos --- demos/ARMCM4-STM32F407-DISCOVERY-G++/mcuconf.h | 3 +++ demos/ARMCM4-STM32F407-DISCOVERY-MEMS/mcuconf.h | 3 +++ demos/ARMCM4-STM32F407-DISCOVERY/mcuconf.h | 3 +++ demos/ARMCM4-STM32F407-LWIP-FATFS-USB/mcuconf.h | 3 +++ demos/ARMCM4-STM32F407-LWIP/mcuconf.h | 3 +++ 5 files changed, 15 insertions(+) diff --git a/demos/ARMCM4-STM32F407-DISCOVERY-G++/mcuconf.h b/demos/ARMCM4-STM32F407-DISCOVERY-G++/mcuconf.h index cc0f434268..b5014d66c6 100644 --- a/demos/ARMCM4-STM32F407-DISCOVERY-G++/mcuconf.h +++ b/demos/ARMCM4-STM32F407-DISCOVERY-G++/mcuconf.h @@ -257,6 +257,9 @@ */ #define STM32_USB_USE_OTG1 FALSE #define STM32_USB_USE_OTG2 FALSE +#define STM32_USE_USB_OTG2_ULPI FALSE +#define STM32_USE_USB_OTG2_HS FALSE +#define STM32_USE_USB_OTG2_HS_FS FALSE #define STM32_USB_OTG1_IRQ_PRIORITY 14 #define STM32_USB_OTG2_IRQ_PRIORITY 14 #define STM32_USB_OTG1_RX_FIFO_SIZE 512 diff --git a/demos/ARMCM4-STM32F407-DISCOVERY-MEMS/mcuconf.h b/demos/ARMCM4-STM32F407-DISCOVERY-MEMS/mcuconf.h index f9b3e9997c..e56166c6d3 100644 --- a/demos/ARMCM4-STM32F407-DISCOVERY-MEMS/mcuconf.h +++ b/demos/ARMCM4-STM32F407-DISCOVERY-MEMS/mcuconf.h @@ -257,6 +257,9 @@ */ #define STM32_USB_USE_OTG1 TRUE #define STM32_USB_USE_OTG2 FALSE +#define STM32_USE_USB_OTG2_ULPI FALSE +#define STM32_USE_USB_OTG2_HS FALSE +#define STM32_USE_USB_OTG2_HS_FS FALSE #define STM32_USB_OTG1_IRQ_PRIORITY 14 #define STM32_USB_OTG2_IRQ_PRIORITY 14 #define STM32_USB_OTG1_RX_FIFO_SIZE 512 diff --git a/demos/ARMCM4-STM32F407-DISCOVERY/mcuconf.h b/demos/ARMCM4-STM32F407-DISCOVERY/mcuconf.h index 1afea37a65..4e6ecefe39 100644 --- a/demos/ARMCM4-STM32F407-DISCOVERY/mcuconf.h +++ b/demos/ARMCM4-STM32F407-DISCOVERY/mcuconf.h @@ -257,6 +257,9 @@ */ #define STM32_USB_USE_OTG1 FALSE #define STM32_USB_USE_OTG2 FALSE +#define STM32_USE_USB_OTG2_ULPI FALSE +#define STM32_USE_USB_OTG2_HS FALSE +#define STM32_USE_USB_OTG2_HS_FS FALSE #define STM32_USB_OTG1_IRQ_PRIORITY 14 #define STM32_USB_OTG2_IRQ_PRIORITY 14 #define STM32_USB_OTG1_RX_FIFO_SIZE 512 diff --git a/demos/ARMCM4-STM32F407-LWIP-FATFS-USB/mcuconf.h b/demos/ARMCM4-STM32F407-LWIP-FATFS-USB/mcuconf.h index 3028a7b851..405316fe5f 100644 --- a/demos/ARMCM4-STM32F407-LWIP-FATFS-USB/mcuconf.h +++ b/demos/ARMCM4-STM32F407-LWIP-FATFS-USB/mcuconf.h @@ -268,6 +268,9 @@ */ #define STM32_USB_USE_OTG1 TRUE #define STM32_USB_USE_OTG2 FALSE +#define STM32_USE_USB_OTG2_ULPI FALSE +#define STM32_USE_USB_OTG2_HS FALSE +#define STM32_USE_USB_OTG2_HS_FS FALSE #define STM32_USB_OTG1_IRQ_PRIORITY 14 #define STM32_USB_OTG2_IRQ_PRIORITY 14 #define STM32_USB_OTG1_RX_FIFO_SIZE 512 diff --git a/demos/ARMCM4-STM32F407-LWIP/mcuconf.h b/demos/ARMCM4-STM32F407-LWIP/mcuconf.h index 11c1eeb8a6..13bf1459a5 100644 --- a/demos/ARMCM4-STM32F407-LWIP/mcuconf.h +++ b/demos/ARMCM4-STM32F407-LWIP/mcuconf.h @@ -257,6 +257,9 @@ */ #define STM32_USB_USE_OTG1 FALSE #define STM32_USB_USE_OTG2 FALSE +#define STM32_USE_USB_OTG2_ULPI FALSE +#define STM32_USE_USB_OTG2_HS FALSE +#define STM32_USE_USB_OTG2_HS_FS FALSE #define STM32_USB_OTG1_IRQ_PRIORITY 14 #define STM32_USB_OTG2_IRQ_PRIORITY 14 #define STM32_USB_OTG1_RX_FIFO_SIZE 512 From f180c3b9fd1427c69dba6bc0ec1cb3c4eb6dc8a8 Mon Sep 17 00:00:00 2001 From: Dave Camarillo Date: Mon, 25 Mar 2013 16:57:58 -0700 Subject: [PATCH 45/52] added support for enable disable of MSD callback function and counters for read/write errors --- os/hal/include/usb_msd.h | 5 ++++ os/hal/src/usb_msd.c | 64 ++++++++++++++++++++++++++-------------- 2 files changed, 47 insertions(+), 22 deletions(-) diff --git a/os/hal/include/usb_msd.h b/os/hal/include/usb_msd.h index d087ca43c9..1b5171005d 100644 --- a/os/hal/include/usb_msd.h +++ b/os/hal/include/usb_msd.h @@ -178,6 +178,11 @@ struct USBMassStorageDriver { bool_t reconfigured_or_reset_event; uint32_t trigger_transfer_index; usbep_t ms_ep_number; + + bool_t (*enable_msd_callback)(void); + + uint32_t read_error_count; + uint32_t write_error_count; }; #define MSD_CONNECTED 0 diff --git a/os/hal/src/usb_msd.c b/os/hal/src/usb_msd.c index 5b5e9b580a..de9fc11e3b 100644 --- a/os/hal/src/usb_msd.c +++ b/os/hal/src/usb_msd.c @@ -26,12 +26,12 @@ * @{ */ - #include "ch.h" #include "hal.h" #include "usb_msd.h" #include "chprintf.h" + #if HAL_USE_MASS_STORAGE_USB || defined(__DOXYGEN__) /*===========================================================================*/ @@ -191,6 +191,9 @@ void msdStart(USBMassStorageDriver *msdp) { sizeof(waMassStorageUSBTransfer), NORMALPRIO, MassStorageUSBTransferThd, msdp); } + + + } /** @@ -549,6 +552,7 @@ static bool_t SCSICommandStartReadWrite10(USBMassStorageDriver *msdp) { msd_debug_print(chp, "\r\nSD Block Write Error, halting\r\n"); chThdSleepMilliseconds(50); + msdp->write_error_count++; msdp->result = FALSE; SCSISetSense( msdp, SCSI_SENSE_KEY_MEDIUM_ERROR, @@ -583,6 +587,7 @@ static bool_t SCSICommandStartReadWrite10(USBMassStorageDriver *msdp) { for(retry_count = 0; retry_count < 3; retry_count++ ) { if(blkRead(msdp->bbdp, rw_block_address, read_buffer[i % 2], 1) == CH_FAILED) { msd_debug_print(chp, "\r\nSD Block Read Error\r\n"); + msdp->read_error_count++; } else { read_success = TRUE; break; @@ -620,6 +625,7 @@ static bool_t SCSICommandStartReadWrite10(USBMassStorageDriver *msdp) { for(retry_count = 0; retry_count < 3; retry_count++ ) { if(blkRead(msdp->bbdp, rw_block_address, read_buffer[(i+1) % 2], 1) == CH_FAILED ) { msd_debug_print(chp, "\r\nSD Block Read Error 2\r\n"); + msdp->read_error_count++; } else { read_success = TRUE; break; @@ -631,6 +637,7 @@ static bool_t SCSICommandStartReadWrite10(USBMassStorageDriver *msdp) { /*wait for printing to finish*/ chThdSleepMilliseconds(70); msdp->result = FALSE; + msd_debug_print(chp, "\r\nSetting sense code %u\r\n", SCSI_SENSE_KEY_MEDIUM_ERROR); SCSISetSense( msdp, SCSI_SENSE_KEY_MEDIUM_ERROR, @@ -856,6 +863,7 @@ static msg_t MassStorageUSBTransferThd(void *arg) { return(0); } + static msg_t MassStorageThd(void *arg) { USBMassStorageDriver *msdp = (USBMassStorageDriver *)arg; @@ -868,6 +876,7 @@ static msg_t MassStorageThd(void *arg) { WaitForISR(msdp, FALSE); msd_debug_print(chp, "y"); + while (TRUE) { wait_for_isr = FALSE; @@ -878,29 +887,40 @@ static msg_t MassStorageThd(void *arg) { msdp->state = idle; } - msd_debug_print(chp, "state=%d\r\n", msdp->state); - /* wait on data depending on the current state */ - switch(msdp->state) { - case idle: - msd_debug_print(chp, "IDL"); - wait_for_isr = msdWaitForCommandBlock(msdp); - msd_debug_print(chp, "x\r\n"); - break; - case read_cmd_block: - msd_debug_print(chp, "RCB"); - wait_for_isr = msdReadCommandBlock(msdp); - msd_debug_print(chp, "x\r\n"); - break; - case ejected: - /* disconnect usb device */ - msd_debug_print(chp, "ejected\r\n"); - chThdSleepMilliseconds(70); - usbDisconnectBus(msdp->usbp); - usbStop(msdp->usbp); - chThdExit(0); - return 0; + + + bool_t enable_msd = true; + if( msdp->enable_msd_callback != NULL ) { + enable_msd = msdp->enable_msd_callback(); + } + + + if( enable_msd ) { + msd_debug_print(chp, "state=%d\r\n", msdp->state); + /* wait on data depending on the current state */ + switch(msdp->state) { + case idle: + msd_debug_print(chp, "IDL"); + wait_for_isr = msdWaitForCommandBlock(msdp); + msd_debug_print(chp, "x\r\n"); + break; + case read_cmd_block: + msd_debug_print(chp, "RCB"); + wait_for_isr = msdReadCommandBlock(msdp); + msd_debug_print(chp, "x\r\n"); + break; + case ejected: + /* disconnect usb device */ + msd_debug_print(chp, "ejected\r\n"); + chThdSleepMilliseconds(70); + usbDisconnectBus(msdp->usbp); + usbStop(msdp->usbp); + chThdExit(0); + return 0; + } } + /* wait until the ISR wakes thread */ if( wait_for_isr && (!msdp->reconfigured_or_reset_event) ) { msd_debug_print(chp, "W"); From 49d11d3956530ab17c604aaa108e82f30e403439 Mon Sep 17 00:00:00 2001 From: Dave Camarillo Date: Thu, 28 Mar 2013 15:59:21 -0700 Subject: [PATCH 46/52] added ability to disable dissconnection of usb bus on eject --- os/hal/include/usb_msd.h | 1 + os/hal/src/usb_msd.c | 17 ++++++++++------- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/os/hal/include/usb_msd.h b/os/hal/include/usb_msd.h index 1b5171005d..5baab04e10 100644 --- a/os/hal/include/usb_msd.h +++ b/os/hal/include/usb_msd.h @@ -180,6 +180,7 @@ struct USBMassStorageDriver { usbep_t ms_ep_number; bool_t (*enable_msd_callback)(void); + bool_t disable_usb_bus_disconnect_on_eject; uint32_t read_error_count; uint32_t write_error_count; diff --git a/os/hal/src/usb_msd.c b/os/hal/src/usb_msd.c index de9fc11e3b..1db0587c59 100644 --- a/os/hal/src/usb_msd.c +++ b/os/hal/src/usb_msd.c @@ -671,9 +671,10 @@ static bool_t SCSICommandStartStopUnit(USBMassStorageDriver *msdp) { if((ssu->loej_start & 0b00000011) == 0b00000010) { /* device has been ejected */ - chEvtBroadcast(&msdp->evt_ejected); - - msdp->state = ejected; + if( ! msdp->disable_usb_bus_disconnect_on_eject ) { + chEvtBroadcast(&msdp->evt_ejected); + msdp->state = ejected; + } } msdp->result = TRUE; @@ -912,10 +913,12 @@ static msg_t MassStorageThd(void *arg) { case ejected: /* disconnect usb device */ msd_debug_print(chp, "ejected\r\n"); - chThdSleepMilliseconds(70); - usbDisconnectBus(msdp->usbp); - usbStop(msdp->usbp); - chThdExit(0); + if( ! msdp->disable_usb_bus_disconnect_on_eject ) { + chThdSleepMilliseconds(70); + usbDisconnectBus(msdp->usbp); + usbStop(msdp->usbp); + chThdExit(0); + } return 0; } } From 3cd3e0d60198f2457c70258c17830b3e455d4997 Mon Sep 17 00:00:00 2001 From: Dave Camarillo Date: Thu, 2 May 2013 14:40:30 -0700 Subject: [PATCH 47/52] refactored sample usb code to work with new serial USB drivers from master chibios tree --- .../main.c | 2 +- .../usbcfg.c | 15 ++++++++++--- .../halconf.h | 13 ----------- .../main.c | 8 +++++-- .../usb_msd_cfg.c | 9 +++++--- .../usb_msd_cfg.h | 5 +++++ .../halconf.h | 11 ---------- .../main.c | 3 +-- .../usb_msd_cfg.c | 4 +++- .../main.c | 2 +- .../usbcfg.c | 15 ++++++++++--- os/hal/include/usb_msd.h | 9 -------- os/hal/src/usb_msd.c | 22 ++++++------------- 13 files changed, 54 insertions(+), 64 deletions(-) diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/main.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/main.c index 705af84643..5d7a8a2e3d 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/main.c +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/main.c @@ -28,7 +28,7 @@ #include "usbcfg.h" /* Virtual serial port over USB.*/ -static SerialUSBDriver SDU1; +SerialUSBDriver SDU1; /*===========================================================================*/ /* Command line related. */ diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/usbcfg.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/usbcfg.c index d95c503c98..153f52e1c0 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/usbcfg.c +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/usbcfg.c @@ -20,7 +20,13 @@ #include "ch.h" #include "hal.h" -#include "usb_cdc.h" + + +extern SerialUSBDriver SDU1; + +#define USB_CDC_DATA_REQUEST_EP 1 +#define USB_CDC_DATA_AVAILABLE_EP 1 +#define USB_CDC_INTERRUPT_REQUEST_EP 2 /* * USB Device Descriptor. @@ -276,7 +282,7 @@ static void usb_event(USBDriver *usbp, usbevent_t event) { usbInitEndpointI(usbp, USB_CDC_INTERRUPT_REQUEST_EP, &ep2config); /* Resetting the state of the CDC subsystem.*/ - sduConfigureHookI(usbp); + sduConfigureHookI(&SDU1); chSysUnlockFromIsr(); return; @@ -304,5 +310,8 @@ const USBConfig usbcfg = { * Serial over USB driver configuration. */ const SerialUSBConfig serusbcfg = { - &USBD1 + &USBD1, + USB_CDC_DATA_REQUEST_EP, + USB_CDC_DATA_AVAILABLE_EP, + USB_CDC_INTERRUPT_REQUEST_EP }; diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/halconf.h b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/halconf.h index 8f5b0e6b50..ca2d9c86b6 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/halconf.h +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/halconf.h @@ -35,19 +35,6 @@ #include "mcuconf.h" -/* - * This is to allow for concurrent use of VCOM driver and MSD driver - * on the same USB peripheral. This is important for USB composite devices - * that have both a mass storage drier and a VCOM driver - */ -#define MSD_USB_DRIVER_EXT_FIELDS_NAME msd_param -#ifdef MSD_USB_DRIVER_EXT_FIELDS_NAME -# define USB_DRIVER_EXT_FIELDS void *MSD_USB_DRIVER_EXT_FIELDS_NAME; -#endif - - - - /** * @brief Enables the TM subsystem. */ diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/main.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/main.c index d29e8bb544..cdbd81552d 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/main.c +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/main.c @@ -25,7 +25,6 @@ #include "hal.h" #include "test.h" -#include "usb_cdc.h" #include "chprintf.h" #include "shell.h" #include "usb_msd.h" @@ -35,7 +34,12 @@ /*Serial over USB Driver structure.*/ SerialUSBDriver SDU1; -SerialUSBConfig serusbcfg = { NULL }; +SerialUSBConfig serusbcfg = { + NULL, + USB_CDC_DATA_REQUEST_EP, + USB_CDC_DATA_AVAILABLE_EP, + USB_CDC_INTERRUPT_REQUEST_EP +}; USBMassStorageDriver UMSD1; diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd_cfg.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd_cfg.c index 2f65b2e861..f3e84bc365 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd_cfg.c +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd_cfg.c @@ -22,7 +22,6 @@ #include "hal.h" #include "usb_msd_cfg.h" #include "usb_msd.h" -#include "usb_cdc.h" @@ -34,6 +33,10 @@ #define USB_CDC_INTERUPT_INTERVAL 0xFF #endif +extern SerialUSBDriver SDU1; + + + /*see www.usb.org/developers/whitepapers/iadclasscode_r10.pdf*/ #define MULTI_FUNCTION_DEVICE_CLASS 0xEF @@ -357,7 +360,7 @@ static const USBEndpointConfig epCDC2config = { * Handles the USB driver global events. */ static void usb_event(USBDriver *usbp, usbevent_t event) { - USBMassStorageDriver *msdp = (USBMassStorageDriver *)usbp->USBD_PARAM_NAME; + USBMassStorageDriver *msdp = (USBMassStorageDriver *)usbp->in_params[USB_MS_DATA_EP - 1]; switch (event) { case USB_EVENT_RESET: msdp->reconfigured_or_reset_event = TRUE; @@ -375,7 +378,7 @@ static void usb_event(USBDriver *usbp, usbevent_t event) { usbInitEndpointI(usbp, USB_CDC_DATA_REQUEST_EP, &epCDC1config); usbInitEndpointI(usbp, USB_CDC_INTERRUPT_REQUEST_EP, &epCDC2config); /* Resetting the state of the CDC subsystem.*/ - sduConfigureHookI(usbp); + sduConfigureHookI(&SDU1); /* Initialize the thread */ chBSemSignalI(&msdp->bsem); diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd_cfg.h b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd_cfg.h index 495a805a94..4ac07383de 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd_cfg.h +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd_cfg.h @@ -23,4 +23,9 @@ #define USB_MS_DATA_EP 3 +#define USB_CDC_DATA_REQUEST_EP 1 +#define USB_CDC_DATA_AVAILABLE_EP 1 +#define USB_CDC_INTERRUPT_REQUEST_EP 2 + + #endif /* USB_MSD_CFG_H_ */ diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/halconf.h b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/halconf.h index ea18f2a9b9..0f6625cd54 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/halconf.h +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/halconf.h @@ -35,17 +35,6 @@ #include "mcuconf.h" -/* - * This is to allow for concurrent use of VCOM driver and MSD driver - * on the same USB peripheral. This is important for USB composite devices - * that have both a mass storage drier and a VCOM driver - */ -#define MSD_USB_DRIVER_EXT_FIELDS_NAME msd_param -#ifdef MSD_USB_DRIVER_EXT_FIELDS_NAME -# define USB_DRIVER_EXT_FIELDS void *MSD_USB_DRIVER_EXT_FIELDS_NAME; -#endif - - /** diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/main.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/main.c index 47ec506129..8ef545451f 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/main.c +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/main.c @@ -25,7 +25,6 @@ #include "hal.h" #include "test.h" -#include "usb_cdc.h" #include "chprintf.h" #include "shell.h" #include "usb_msd.h" @@ -113,7 +112,7 @@ int main(void) { BaseBlockDevice *bbdp = (BaseBlockDevice*) &SDCD1; chprintf(chp, "setting up MSD\r\n"); - USBMassStorageDriver UMSD1; + static USBMassStorageDriver UMSD1; msdInit(usb_driver, bbdp, &UMSD1, USB_MS_DATA_EP); diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/usb_msd_cfg.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/usb_msd_cfg.c index cff2679a93..a15afb042d 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/usb_msd_cfg.c +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/usb_msd_cfg.c @@ -24,6 +24,8 @@ #include "usb_msd.h" + + /* * USB Device Descriptor. */ @@ -191,7 +193,7 @@ static const USBEndpointConfig epDataConfig = { * Handles the USB driver global events. */ static void usb_event(USBDriver *usbp, usbevent_t event) { - USBMassStorageDriver *msdp = (USBMassStorageDriver *)usbp->USBD_PARAM_NAME; + USBMassStorageDriver *msdp = (USBMassStorageDriver *)usbp->in_params[USB_MS_DATA_EP - 1]; switch (event) { case USB_EVENT_RESET: msdp->reconfigured_or_reset_event = TRUE; diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/main.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/main.c index bd2373fa2a..14fcc2d721 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/main.c +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/main.c @@ -28,7 +28,7 @@ #include "usbcfg.h" /* Virtual serial port over USB.*/ -static SerialUSBDriver SDU2; +SerialUSBDriver SDU2; /*===========================================================================*/ /* Command line related. */ diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/usbcfg.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/usbcfg.c index 9b17419453..b0e358db03 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/usbcfg.c +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/usbcfg.c @@ -20,7 +20,6 @@ #include "ch.h" #include "hal.h" -#include "usb_cdc.h" #if STM32_USB_USE_OTG2 && STM32_USE_USB_OTG2_HS @@ -29,6 +28,13 @@ #define MAX_USB_PACKET_SIZE 64 #endif +extern SerialUSBDriver SDU2; + +#define USB_CDC_DATA_REQUEST_EP 1 +#define USB_CDC_DATA_AVAILABLE_EP 1 +#define USB_CDC_INTERRUPT_REQUEST_EP 2 + + /* * USB Device Descriptor. */ @@ -283,7 +289,7 @@ static void usb_event(USBDriver *usbp, usbevent_t event) { usbInitEndpointI(usbp, USB_CDC_INTERRUPT_REQUEST_EP, &ep2config); /* Resetting the state of the CDC subsystem.*/ - sduConfigureHookI(usbp); + sduConfigureHookI(&SDU2); chSysUnlockFromIsr(); return; @@ -311,5 +317,8 @@ const USBConfig usbcfg = { * Serial over USB driver configuration. */ const SerialUSBConfig serusbcfg = { - &USBD2 + &USBD2, + USB_CDC_DATA_REQUEST_EP, + USB_CDC_DATA_AVAILABLE_EP, + USB_CDC_INTERRUPT_REQUEST_EP, }; diff --git a/os/hal/include/usb_msd.h b/os/hal/include/usb_msd.h index 5baab04e10..1d070b467f 100644 --- a/os/hal/include/usb_msd.h +++ b/os/hal/include/usb_msd.h @@ -42,15 +42,6 @@ #endif -#ifdef MSD_USB_DRIVER_EXT_FIELDS_NAME -# define USBD_PARAM_NAME MSD_USB_DRIVER_EXT_FIELDS_NAME -#else -# define USBD_PARAM_NAME param -#endif - - - - #define MSD_REQ_RESET 0xFF #define MSD_GET_MAX_LUN 0xFE #define MSD_CBW_SIGNATURE 0x43425355 diff --git a/os/hal/src/usb_msd.c b/os/hal/src/usb_msd.c index 1db0587c59..386dd8650f 100644 --- a/os/hal/src/usb_msd.c +++ b/os/hal/src/usb_msd.c @@ -45,16 +45,6 @@ -#if HAL_USE_SERIAL_USB -# ifndef MSD_USB_DRIVER_EXT_FIELDS_NAME -# error "The serial usb driver and the mass storage driver both use the \ - USBD->param variable and they conflict, you must define \ - MSD_USB_DRIVER_EXT_FIELDS_NAME for these to work concurrently." -# endif -#endif - - - #if !defined(MSD_RW_LED_ON) #define MSD_RW_LED_ON() #endif @@ -130,7 +120,7 @@ inline uint32_t swap_uint32( uint32_t val ) { * @param[in] ms_ep_number USB Endpoint Number to be used by the mass storage endpoint */ void msdInit(USBDriver *usbp, BaseBlockDevice *bbdp, USBMassStorageDriver *msdp, - const usbep_t ms_ep_number) + const usbep_t ms_ep_number) { uint8_t i; @@ -169,7 +159,7 @@ void msdInit(USBDriver *usbp, BaseBlockDevice *bbdp, USBMassStorageDriver *msdp, blkGetInfo(bbdp, &msdp->block_dev_info); - usbp->USBD_PARAM_NAME = (void *)msdp; + usbp->in_params[ms_ep_number - 1] = (void *)msdp; } /** @@ -207,9 +197,11 @@ void msdUsbEvent(USBDriver *usbp, usbep_t ep) { (void)usbp; (void)ep; - chSysLockFromIsr(); - chBSemSignalI(&((USBMassStorageDriver *)usbp->USBD_PARAM_NAME)->bsem); - chSysUnlockFromIsr(); + if( ep > 0 && usbp->in_params[ep - 1] != NULL ) { + chSysLockFromIsr(); + chBSemSignalI(&((USBMassStorageDriver *)usbp->in_params[ep - 1])->bsem); + chSysUnlockFromIsr(); + } } From 131e96c56b034b9ad0bfad609345290125d362e8 Mon Sep 17 00:00:00 2001 From: Dave Camarillo Date: Mon, 24 Jun 2013 13:08:09 -0700 Subject: [PATCH 48/52] added ifdefs to handle different HCLK rates that were causing problems with SD card writes at HCLKs other then 168mhz --- os/hal/platforms/STM32/sdc_lld.h | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/os/hal/platforms/STM32/sdc_lld.h b/os/hal/platforms/STM32/sdc_lld.h index 8b01ba9150..6578c67cbe 100644 --- a/os/hal/platforms/STM32/sdc_lld.h +++ b/os/hal/platforms/STM32/sdc_lld.h @@ -134,7 +134,21 @@ */ #if (defined(STM32F4XX) || defined(STM32F2XX)) #define STM32_SDIO_DIV_HS 0 -#define STM32_SDIO_DIV_LS 120 + +# if STM32_HCLK == 168000000 +# define STM32_SDIO_DIV_LS 120 +# else +# if STM32_HCLK == 84000000 +# define STM32_SDIO_DIV_LS 61 +# else +# if STM32_HCLK == 42000000 +# define STM32_SDIO_DIV_LS 32 +# else +# error "This make brake SDIO" +# endif +# endif +# endif + #elif STM32_HCLK > 48000000 #define STM32_SDIO_DIV_HS 1 From 9c1fda952ff17c359bdb73ab07f6052d4e34288a Mon Sep 17 00:00:00 2001 From: Dave Camarillo Date: Thu, 25 Jul 2013 12:43:38 -0700 Subject: [PATCH 49/52] updated max CDC transfer size --- os/hal/include/serial_usb.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/os/hal/include/serial_usb.h b/os/hal/include/serial_usb.h index 28ab3a940b..14d2d3b5b7 100644 --- a/os/hal/include/serial_usb.h +++ b/os/hal/include/serial_usb.h @@ -91,7 +91,12 @@ * buffers. */ #if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_SIZE 256 +/* + * Note: setting this to somthing lower then 512 while using USB High Speed + * can have significant negative side affects on thoughput. + */ +//#define SERIAL_USB_BUFFERS_SIZE 256 +#define SERIAL_USB_BUFFERS_SIZE 512 #endif /** @} */ From f8baa4b32f8305c95149cf234e1c2ec30deb576c Mon Sep 17 00:00:00 2001 From: Dave Camarillo Date: Thu, 25 Jul 2013 12:44:57 -0700 Subject: [PATCH 50/52] added return 0 to avoid gcc warnings --- demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/main.c | 2 ++ demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/main.c | 2 ++ 2 files changed, 4 insertions(+) diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/main.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/main.c index 5d7a8a2e3d..71c9467184 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/main.c +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/main.c @@ -132,6 +132,8 @@ static msg_t Thread1(void *arg) { chThdSleep(MS2ST(500)); } + + return(0); } /*===========================================================================*/ diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/main.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/main.c index 14fcc2d721..f489c65fb4 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/main.c +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/main.c @@ -132,6 +132,8 @@ static msg_t Thread1(void *arg) { chThdSleep(MS2ST(500)); } + + return(0); } /*===========================================================================*/ From 020bb97ea101032b973ec3450106b0d597956231 Mon Sep 17 00:00:00 2001 From: Dave Camarillo Date: Thu, 25 Jul 2013 12:55:56 -0700 Subject: [PATCH 51/52] updated mcuconf files to be consistent with lastest upstream/master changes --- demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/mcuconf.h | 1 + .../mcuconf.h | 1 + .../mcuconf.h | 1 + .../ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/mcuconf.h | 1 + 4 files changed, 4 insertions(+) diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/mcuconf.h b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/mcuconf.h index 8722db4bae..2c6a76ad50 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/mcuconf.h +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_FS/mcuconf.h @@ -64,6 +64,7 @@ #define STM32_VOS STM32_VOS_HIGH #define STM32_PVD_ENABLE FALSE #define STM32_PLS STM32_PLS_LEV0 +#define STM32_BKPRAM_ENABLE FALSE /* * ADC driver system settings. diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/mcuconf.h b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/mcuconf.h index 64db49f80f..0df317d53e 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/mcuconf.h +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/mcuconf.h @@ -64,6 +64,7 @@ #define STM32_VOS STM32_VOS_HIGH #define STM32_PVD_ENABLE FALSE #define STM32_PLS STM32_PLS_LEV0 +#define STM32_BKPRAM_ENABLE FALSE /* * ADC driver system settings. diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/mcuconf.h b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/mcuconf.h index 64db49f80f..0df317d53e 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/mcuconf.h +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/mcuconf.h @@ -64,6 +64,7 @@ #define STM32_VOS STM32_VOS_HIGH #define STM32_PVD_ENABLE FALSE #define STM32_PLS STM32_PLS_LEV0 +#define STM32_BKPRAM_ENABLE FALSE /* * ADC driver system settings. diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/mcuconf.h b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/mcuconf.h index 01a0c82b8e..ffd326e50e 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/mcuconf.h +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI/mcuconf.h @@ -64,6 +64,7 @@ #define STM32_VOS STM32_VOS_HIGH #define STM32_PVD_ENABLE FALSE #define STM32_PLS STM32_PLS_LEV0 +#define STM32_BKPRAM_ENABLE FALSE /* * ADC driver system settings. From 3a10ea1c04b11d85e1c16b6354f2160f7a9fda7a Mon Sep 17 00:00:00 2001 From: Dave Camarillo Date: Thu, 25 Jul 2013 12:56:26 -0700 Subject: [PATCH 52/52] fixed minor compiler warnings --- .../usb_msd_cfg.c | 1 + .../usb_msd_cfg.c | 21 ------------------- 2 files changed, 1 insertion(+), 21 deletions(-) diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd_cfg.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd_cfg.c index f3e84bc365..90baf613c2 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd_cfg.c +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd_cfg.c @@ -276,6 +276,7 @@ static const USBDescriptor *get_descriptor(USBDriver *usbp, case USB_DESCRIPTOR_STRING: if (dindex < 4) return &msd_strings[dindex]; + break; } return NULL; } diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/usb_msd_cfg.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/usb_msd_cfg.c index a15afb042d..9a9b5d6bd2 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/usb_msd_cfg.c +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/usb_msd_cfg.c @@ -222,8 +222,6 @@ static void usb_event(USBDriver *usbp, usbevent_t event) { return; } - - const USBConfig msd_usb_config = { usb_event, get_descriptor, @@ -231,22 +229,3 @@ const USBConfig msd_usb_config = { NULL }; - - - - - - - - - - - - - - - - - - -

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�gNg=9xzXWar=W>LqK4jRUD?4#7sDvLR3a1T{T- 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 z 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®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 O=>7n~_41XimGbHU literal 0 HcmV?d00001 diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/readme.txt b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/readme.txt index f7cc4c9422..e77fdbe896 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/readme.txt +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/readme.txt @@ -4,21 +4,25 @@ ** TARGET ** -The demo runs on an Olimex STM32-E407 board. +The demo runs on an WaveShare STM32F4 Open 407I-C board. ** The Demo ** -The demo currently just flashes a LED using a thread and serves HTTP requests -at address 192.168.1.20 on port 80. -FatFs integrated using SDIO. -The USB-FS port is used as USB-CDC and a command shell is ready to accepts -commands there. +This will demonstrate the use of a USB Mass Storage device over the high +speed ULPI interface to access an SD card. ** Build Procedure ** -The demo has been tested by using the free Codesourcery GCC-based toolchain -and YAGARTO. -Just modify the TRGT line in the makefile in order to use different GCC ports. +Refer to demo_picture.jpg. + +Make sure you do not plug anything into the other pin headers on the board. +Only connect the USB3300 board, the SD board, and optionally the ethernet +board. Most of the other pin headers conflict with either the SDIO pins +or the ULPI pins. You can see debug output on pins PD5 and PD6 of the header. + +The demo has been tested by using the free Codesourcery GCC-based toolchain. +Just modify the TRGT line in the makefile in order to use different GCC +toolchains. ** Notes ** From 2bde1f7960fbd84f75888b1846981722a1cb5176 Mon Sep 17 00:00:00 2001 From: Dave Camarillo Date: Wed, 20 Feb 2013 13:35:05 -0800 Subject: [PATCH 10/52] modified code to return SCSI errors to the host in the event of a read error, tested with fake GPIO button pressing --- .../usb_msd.c | 79 ++++++++----------- .../usb_msd.h | 1 - 2 files changed, 35 insertions(+), 45 deletions(-) diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.c index 702bb5dbd6..c5de9bc18a 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.c +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.c @@ -1,6 +1,7 @@ #include "ch.h" #include "hal.h" #include "usb_msd.h" +#include "chprintf.h" static BaseSequentialStream *chp = (BaseSequentialStream *)&SD2; @@ -399,7 +400,7 @@ bool_t SCSICommandReadCapacity10(USBMassStorageDriver *msdp) { bool_t SCSICommandSendDiagnostic(USBMassStorageDriver *msdp) { msd_cbw_t *cbw = &(msdp->cbw); - if(!cbw->scsi_cmd_data[1] & (1 << 2)) { + if( (!cbw->scsi_cmd_data[1]) & (1 << 2)) { /* Only self-test supported - update SENSE key and fail the command */ SCSISetSense( msdp, SCSI_SENSE_KEY_ILLEGAL_REQUEST, @@ -416,14 +417,14 @@ bool_t SCSICommandSendDiagnostic(USBMassStorageDriver *msdp) { return FALSE; } -void SCSIWriteTransferPingPong(USBMassStorageDriver *msdp, rw_usb_sd_buffer_t *dest_buffer) { +void SCSIWriteTransferPingPong(USBMassStorageDriver *msdp, volatile rw_usb_sd_buffer_t *dest_buffer) { int cnt; dest_buffer->is_transfer_done = FALSE; dest_buffer->num_blocks_to_write = 0; palSetPad(GPIOH, GPIOH_LED2); for(cnt = 0; cnt < BLOCK_WRITE_ITTERATION_COUNT && cnt < dest_buffer->max_blocks_to_read; cnt++ ) { - usbPrepareReceive(msdp->usbp, USB_MS_DATA_EP, &dest_buffer->buf[cnt * BLOCK_SIZE_INCREMENT], (msdp->block_dev_info.blk_size)); + usbPrepareReceive(msdp->usbp, USB_MS_DATA_EP, (uint8_t*)&dest_buffer->buf[cnt * BLOCK_SIZE_INCREMENT], (msdp->block_dev_info.blk_size)); chSysLock(); usbStartReceiveI(msdp->usbp, USB_MS_DATA_EP); @@ -539,7 +540,7 @@ bool_t SCSICommandStartReadWrite10(USBMassStorageDriver *msdp) { chSysHalt(); } - if(blkWrite(msdp->bbdp, rw_block_address, rw_ping_pong_buffer[done_buffer_index].buf, + if(blkWrite(msdp->bbdp, rw_block_address, (uint8_t*)rw_ping_pong_buffer[done_buffer_index].buf, rw_ping_pong_buffer[done_buffer_index].num_blocks_to_write) == CH_FAILED) { /* TODO: handle this */ chprintf(chp, "\r\nSD Block Write Error, halting\r\n"); @@ -577,11 +578,13 @@ bool_t SCSICommandStartReadWrite10(USBMassStorageDriver *msdp) { chprintf(chp, "\r\nSD Block Read Error 1, halting\r\n"); chThdSleepMilliseconds(70);//wait for printing to finish msdp->result = FALSE; - msdp->result_sense_code = SCSI_SENSE_KEY_MEDIUM_ERROR; - //msdp->result_sense_code = SCSI_SENSE_KEY_HARDWARE_ERROR; - //return FALSE; - /* TODO: handle this */ - //chSysHalt(); + + chprintf(chp, "\r\nSetting sense code %u\r\n", SCSI_SENSE_KEY_MEDIUM_ERROR); + SCSISetSense( msdp, + SCSI_SENSE_KEY_MEDIUM_ERROR, + SCSI_ASENSE_NO_ADDITIONAL_INFORMATION, + SCSI_ASENSEQ_NO_QUALIFIER); + return FALSE; } rw_block_address++; @@ -609,14 +612,15 @@ bool_t SCSICommandStartReadWrite10(USBMassStorageDriver *msdp) { } if( (! read_success) || (!palReadPad(GPIOF, GPIOF_USER_BUTTON)) ) { - chprintf(chp, "\r\nSD Block Read Error 2, halting\r\n"); + chprintf(chp, "\r\nSD Block Read Error 22, addr=%d, halting\r\n", rw_block_address); chThdSleepMilliseconds(70);//wait for printing to finish msdp->result = FALSE; - msdp->result_sense_code = SCSI_SENSE_KEY_MEDIUM_ERROR; - //return FALSE; - - /* TODO: handle this */ - //chSysHalt(); + chprintf(chp, "\r\nSetting sense code %u\r\n", SCSI_SENSE_KEY_MEDIUM_ERROR); + SCSISetSense( msdp, + SCSI_SENSE_KEY_MEDIUM_ERROR, + SCSI_ASENSE_NO_ADDITIONAL_INFORMATION, + SCSI_ASENSEQ_NO_QUALIFIER); + return FALSE; } rw_block_address++; @@ -704,14 +708,13 @@ bool_t msdReadCommandBlock(USBMassStorageDriver *msdp) { return FALSE; } - msdp->result_sense_code = SCSI_SENSE_KEY_GOOD; - bool_t sleep = FALSE; switch(cbw->scsi_cmd_data[0]) { case SCSI_CMD_INQUIRY: sleep = SCSICommandInquiry(msdp); break; case SCSI_CMD_REQUEST_SENSE: + chprintf(chp, "\r\nCMD_RS\r\n"); sleep = SCSICommandRequestSense(msdp); break; case SCSI_CMD_READ_CAPACITY_10: @@ -719,6 +722,7 @@ bool_t msdReadCommandBlock(USBMassStorageDriver *msdp) { break; case SCSI_CMD_READ_10: case SCSI_CMD_WRITE_10: + //chprintf(chp, "CMD_RW\r\n"); MSD_RW_LED_ON(); sleep = SCSICommandStartReadWrite10(msdp); MSD_RW_LED_OFF(); @@ -733,6 +737,7 @@ bool_t msdReadCommandBlock(USBMassStorageDriver *msdp) { msdp->result = TRUE; break; case SCSI_CMD_MODE_SENSE_6: + chprintf(chp, "\r\nCMD_S6\r\n"); sleep = SCSICommandModeSense6(msdp); break; case SCSI_CMD_START_STOP_UNIT: @@ -756,33 +761,19 @@ bool_t msdReadCommandBlock(USBMassStorageDriver *msdp) { cbw->data_len = 0; if(msdp->result) { - /* update sense with success status */ - SCSISetSense( msdp, - SCSI_SENSE_KEY_GOOD, - SCSI_ASENSE_NO_ADDITIONAL_INFORMATION, - SCSI_ASENSEQ_NO_QUALIFIER); + /* update sense with success status */ + SCSISetSense( msdp, + SCSI_SENSE_KEY_GOOD, + SCSI_ASENSE_NO_ADDITIONAL_INFORMATION, + SCSI_ASENSEQ_NO_QUALIFIER); } else { - if( msdp->result_sense_code != SCSI_SENSE_KEY_GOOD ) { - SCSISetSense( msdp, - msdp->result_sense_code, - SCSI_ASENSE_NO_ADDITIONAL_INFORMATION, - SCSI_ASENSEQ_NO_QUALIFIER); - /* stall IN endpoint */ - - chSysLockFromIsr(); - usbStallTransmitI(msdp->usbp, USB_MS_DATA_EP); - chSysUnlockFromIsr(); + /* stall IN endpoint */ + chSysLockFromIsr(); + usbStallTransmitI(msdp->usbp, USB_MS_DATA_EP); + chSysUnlockFromIsr(); - cbw->data_len = 0; - } else { - /* stall IN endpoint */ - chSysLockFromIsr(); - usbStallTransmitI(msdp->usbp, USB_MS_DATA_EP); - chSysUnlockFromIsr(); - - cbw->data_len = 0; - return FALSE; - } + cbw->data_len = 0; + return FALSE; } if(sleep) { @@ -791,14 +782,14 @@ bool_t msdReadCommandBlock(USBMassStorageDriver *msdp) { msd_csw_t *csw = &(msdp->csw); - if(!msdp->result && cbw->data_len) { + if( (!msdp->result) && cbw->data_len ) { /* still bytes left to send, this is too early to send CSW? */ chSysLockFromIsr(); usbStallReceiveI(msdp->usbp, USB_MS_DATA_EP); usbStallTransmitI(msdp->usbp, USB_MS_DATA_EP); chSysUnlockFromIsr(); - return FALSE; + return FALSE; } csw->status = (msdp->result) ? MSD_COMMAND_PASSED : MSD_COMMAND_FAILED; diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.h b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.h index 1bdd5f74f7..11153fc833 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.h +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.h @@ -137,7 +137,6 @@ struct USBMassStorageDriver { msd_csw_t csw; scsi_sense_response_t sense; bool_t result; - uint8_t result_sense_code; }; #define MSD_CONNECTED 0 From 4d03df812bca750958a18fbd184ecdbfb15ad53c Mon Sep 17 00:00:00 2001 From: Dave Camarillo Date: Wed, 20 Feb 2013 15:36:25 -0800 Subject: [PATCH 11/52] modified state change to reset to idle state imiediatly after configuration, this avoids a 45 second wait for the host mass storage driver to re-request from the device when unplugged and replugged --- .../usb_msd.c | 76 +++++++++++++++---- .../usb_msd.h | 1 + 2 files changed, 63 insertions(+), 14 deletions(-) diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.c index c5de9bc18a..5be82714b4 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.c +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.c @@ -10,9 +10,12 @@ static WORKING_AREA(waMassStorageUSBTransfer, 1024); static msg_t MassStorageUSBTransferThd(void *arg); static msg_t MassStorageThd(void *arg); -static void WaitForISR(USBMassStorageDriver *msdp); + static Thread *msdThd = NULL; static Thread *msdUSBTransferThd = NULL; + +static void WaitForISR(USBMassStorageDriver *msdp, const int max_ms); + static volatile uint32_t trigger_transfer_index = UINT32_MAX; #define BLOCK_SIZE_INCREMENT 512 @@ -22,8 +25,10 @@ static uint8_t rw_buf[2][BLOCK_SIZE_INCREMENT]; typedef struct { uint8_t is_transfer_done; + /*Number of blocks actually read from USB IN endpont that should be written to SD card*/ int num_blocks_to_write; - int max_blocks_to_read;//could be negative + /*Number of blocks to read from USB IN endpoint*/ + int max_blocks_to_read; uint8_t buf[(BLOCK_SIZE_INCREMENT * BLOCK_WRITE_ITTERATION_COUNT)]; } rw_usb_sd_buffer_t; @@ -241,10 +246,14 @@ bool_t msdRequestsHook(USBDriver *usbp) { return FALSE; } -static void WaitForISR(USBMassStorageDriver *msdp) { +static void WaitForISR(USBMassStorageDriver *msdp, const int max_ms) { /* sleep until it completes */ chSysLock(); - chBSemWaitS(&msdp->bsem); + if( max_ms <= 0 ) { + chBSemWaitS(&msdp->bsem); + } else { + chBSemWaitTimeoutS(&msdp->bsem, max_ms); + } chSysUnlock(); } @@ -291,6 +300,7 @@ static void usb_event(USBDriver *usbp, usbevent_t event) { return; case USB_EVENT_CONFIGURED: chSysLockFromIsr(); + msdp->reconfigured_event = TRUE; usbInitEndpointI(usbp, USB_MS_DATA_EP, &epDataConfig); /* initialise the thread */ chBSemSignalI(&msdp->bsem); @@ -430,7 +440,7 @@ void SCSIWriteTransferPingPong(USBMassStorageDriver *msdp, volatile rw_usb_sd_bu usbStartReceiveI(msdp->usbp, USB_MS_DATA_EP); chSysUnlock(); - WaitForISR(msdp); + WaitForISR(msdp, 0); dest_buffer->num_blocks_to_write++; } dest_buffer->is_transfer_done = TRUE; @@ -533,19 +543,35 @@ bool_t SCSICommandStartReadWrite10(USBMassStorageDriver *msdp) { - /* now write the block to the block device */ + if( rw_ping_pong_buffer[done_buffer_index].num_blocks_to_write <= 0 ) { + /*This should never happen!!! Something is seriously wrong!*/ chprintf(chp, "\r\nCant write 0 blocks, this should not happen, halting\r\n"); chThdSleepMilliseconds(50); chSysHalt(); } + /* now write the block to the block device */ if(blkWrite(msdp->bbdp, rw_block_address, (uint8_t*)rw_ping_pong_buffer[done_buffer_index].buf, rw_ping_pong_buffer[done_buffer_index].num_blocks_to_write) == CH_FAILED) { - /* TODO: handle this */ + chprintf(chp, "\r\nSD Block Write Error, halting\r\n"); chThdSleepMilliseconds(50); - chSysHalt(); + msdp->result = FALSE; + SCSISetSense( msdp, + SCSI_SENSE_KEY_MEDIUM_ERROR, + SCSI_ASENSE_NO_ADDITIONAL_INFORMATION, + SCSI_ASENSEQ_NO_QUALIFIER); + + if( queue_another_transfer ) { + /*Let the previous queued transfer finish and ignore it.*/ + WaitForUSBTransferComplete(msdp, empty_buffer_index); + } + + return(FALSE); + + /* TODO: handle this */ + //chSysHalt(); } rw_block_address += rw_ping_pong_buffer[done_buffer_index].num_blocks_to_write; i += rw_ping_pong_buffer[done_buffer_index].num_blocks_to_write; @@ -626,7 +652,7 @@ bool_t SCSICommandStartReadWrite10(USBMassStorageDriver *msdp) { rw_block_address++; } - WaitForISR(msdp); + WaitForISR(msdp, 0); } } @@ -711,6 +737,7 @@ bool_t msdReadCommandBlock(USBMassStorageDriver *msdp) { bool_t sleep = FALSE; switch(cbw->scsi_cmd_data[0]) { case SCSI_CMD_INQUIRY: + chprintf(chp, "CMD_INQ\r\n"); sleep = SCSICommandInquiry(msdp); break; case SCSI_CMD_REQUEST_SENSE: @@ -718,16 +745,18 @@ bool_t msdReadCommandBlock(USBMassStorageDriver *msdp) { sleep = SCSICommandRequestSense(msdp); break; case SCSI_CMD_READ_CAPACITY_10: + chprintf(chp, "CMD_RC10\r\n"); sleep = SCSICommandReadCapacity10(msdp); break; case SCSI_CMD_READ_10: case SCSI_CMD_WRITE_10: - //chprintf(chp, "CMD_RW\r\n"); + chprintf(chp, "CMD_RW\r\n"); MSD_RW_LED_ON(); sleep = SCSICommandStartReadWrite10(msdp); MSD_RW_LED_OFF(); break; case SCSI_CMD_SEND_DIAGNOSTIC: + chprintf(chp, "CMD_DIA\r\n"); sleep = SCSICommandSendDiagnostic(msdp); break; case SCSI_CMD_TEST_UNIT_READY: @@ -741,6 +770,7 @@ bool_t msdReadCommandBlock(USBMassStorageDriver *msdp) { sleep = SCSICommandModeSense6(msdp); break; case SCSI_CMD_START_STOP_UNIT: + chprintf(chp, "CMD_STOP\r\n"); sleep = SCSICommandStartStopUnit(msdp); break; default: @@ -777,7 +807,7 @@ bool_t msdReadCommandBlock(USBMassStorageDriver *msdp) { } if(sleep) { - WaitForISR(msdp); + WaitForISR(msdp, 0); } msd_csw_t *csw = &(msdp->csw); @@ -831,21 +861,37 @@ static msg_t MassStorageThd(void *arg) { bool_t wait_for_isr = FALSE; /* wait for the usb to be initialised */ - WaitForISR(msdp); + chprintf(chp, "Y"); + WaitForISR(msdp, 0); + chprintf(chp, "y"); while (TRUE) { wait_for_isr = FALSE; + if( msdp->reconfigured_event ) { + /*If the devices is unplugged and re-plugged but did not have a CPU reset, + * we must set the state back to idle.*/ + msdp->reconfigured_event = FALSE; + msdp->state = idle; + } + + chprintf(chp, "state=%d\r\n", msdp->state); /* wait on data depending on the current state */ switch(msdp->state) { case idle: + chprintf(chp, "IDL"); wait_for_isr = msdWaitForCommandBlock(msdp); + chprintf(chp, "x\r\n"); break; case read_cmd_block: + chprintf(chp, "RCB"); wait_for_isr = msdReadCommandBlock(msdp); + chprintf(chp, "x\r\n"); break; case ejected: /* disconnect usb device */ + chprintf(chp, "ejected\r\n"); + chThdSleepMilliseconds(70); usbDisconnectBus(msdp->usbp); usbStop(msdp->usbp); chThdExit(0); @@ -854,7 +900,9 @@ static msg_t MassStorageThd(void *arg) { /* wait until the ISR wakes thread */ if(wait_for_isr) { - WaitForISR(msdp); + chprintf(chp, "W"); + WaitForISR(msdp, 0); + chprintf(chp, "w"); } } @@ -897,7 +945,7 @@ void msdInit(USBDriver *usbp, BaseBlockDevice *bbdp, USBMassStorageDriver *msdp) blkGetInfo(bbdp, &msdp->block_dev_info); usbDisconnectBus(usbp); - chThdSleepMilliseconds(1000); + chThdSleepMilliseconds(200); usbp->param = (void *)msdp; usbStart(usbp, &msd_usb_config); diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.h b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.h index 11153fc833..f2ce51aa56 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.h +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.h @@ -137,6 +137,7 @@ struct USBMassStorageDriver { msd_csw_t csw; scsi_sense_response_t sense; bool_t result; + bool_t reconfigured_event; }; #define MSD_CONNECTED 0 From dfd3d3bcbec115ac69f992769b05a92726366d30 Mon Sep 17 00:00:00 2001 From: Dave Camarillo Date: Wed, 20 Feb 2013 15:45:58 -0800 Subject: [PATCH 12/52] fixed state changes in the event of USB resets --- .../usb_msd.c | 9 +++++---- .../usb_msd.h | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.c index 5be82714b4..407eb454dd 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.c +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.c @@ -295,12 +295,13 @@ static void usb_event(USBDriver *usbp, usbevent_t event) { USBMassStorageDriver *msdp = (USBMassStorageDriver *)usbp->param; switch (event) { case USB_EVENT_RESET: + msdp->reconfigured_or_reset_event = TRUE; return; case USB_EVENT_ADDRESS: return; case USB_EVENT_CONFIGURED: chSysLockFromIsr(); - msdp->reconfigured_event = TRUE; + msdp->reconfigured_or_reset_event = TRUE; usbInitEndpointI(usbp, USB_MS_DATA_EP, &epDataConfig); /* initialise the thread */ chBSemSignalI(&msdp->bsem); @@ -553,7 +554,7 @@ bool_t SCSICommandStartReadWrite10(USBMassStorageDriver *msdp) { /* now write the block to the block device */ if(blkWrite(msdp->bbdp, rw_block_address, (uint8_t*)rw_ping_pong_buffer[done_buffer_index].buf, - rw_ping_pong_buffer[done_buffer_index].num_blocks_to_write) == CH_FAILED) { + rw_ping_pong_buffer[done_buffer_index].num_blocks_to_write) == CH_FAILED || (!palReadPad(GPIOF, GPIOF_USER_BUTTON)) ) { chprintf(chp, "\r\nSD Block Write Error, halting\r\n"); chThdSleepMilliseconds(50); @@ -868,10 +869,10 @@ static msg_t MassStorageThd(void *arg) { while (TRUE) { wait_for_isr = FALSE; - if( msdp->reconfigured_event ) { + if( msdp->reconfigured_or_reset_event ) { /*If the devices is unplugged and re-plugged but did not have a CPU reset, * we must set the state back to idle.*/ - msdp->reconfigured_event = FALSE; + msdp->reconfigured_or_reset_event = FALSE; msdp->state = idle; } diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.h b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.h index f2ce51aa56..f6cdb447bd 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.h +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.h @@ -137,7 +137,7 @@ struct USBMassStorageDriver { msd_csw_t csw; scsi_sense_response_t sense; bool_t result; - bool_t reconfigured_event; + bool_t reconfigured_or_reset_event; }; #define MSD_CONNECTED 0 From ce41c5b87fd386217d6cc773902e74a3b11d77f1 Mon Sep 17 00:00:00 2001 From: Dave Camarillo Date: Wed, 20 Feb 2013 15:59:59 -0800 Subject: [PATCH 13/52] added #define to allow for disabling console of debug output --- .../usb_msd.c | 55 ++++++++++--------- 1 file changed, 30 insertions(+), 25 deletions(-) diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.c index 407eb454dd..4b11a944e0 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.c +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.c @@ -3,6 +3,11 @@ #include "usb_msd.h" #include "chprintf.h" +#define MSD_DEBUG FALSE +#define msd_debug_print(args ...) if (MSD_DEBUG) { chprintf(args); } + + + static BaseSequentialStream *chp = (BaseSequentialStream *)&SD2; static WORKING_AREA(waMassStorage, 1024); @@ -547,7 +552,7 @@ bool_t SCSICommandStartReadWrite10(USBMassStorageDriver *msdp) { if( rw_ping_pong_buffer[done_buffer_index].num_blocks_to_write <= 0 ) { /*This should never happen!!! Something is seriously wrong!*/ - chprintf(chp, "\r\nCant write 0 blocks, this should not happen, halting\r\n"); + msd_debug_print(chp, "\r\nCant write 0 blocks, this should not happen, halting\r\n"); chThdSleepMilliseconds(50); chSysHalt(); } @@ -556,7 +561,7 @@ bool_t SCSICommandStartReadWrite10(USBMassStorageDriver *msdp) { if(blkWrite(msdp->bbdp, rw_block_address, (uint8_t*)rw_ping_pong_buffer[done_buffer_index].buf, rw_ping_pong_buffer[done_buffer_index].num_blocks_to_write) == CH_FAILED || (!palReadPad(GPIOF, GPIOF_USER_BUTTON)) ) { - chprintf(chp, "\r\nSD Block Write Error, halting\r\n"); + msd_debug_print(chp, "\r\nSD Block Write Error, halting\r\n"); chThdSleepMilliseconds(50); msdp->result = FALSE; SCSISetSense( msdp, @@ -595,18 +600,18 @@ bool_t SCSICommandStartReadWrite10(USBMassStorageDriver *msdp) { for(retry_count = 0; retry_count < 3; retry_count++ ) { if(blkRead(msdp->bbdp, rw_block_address, rw_buf[i % 2], 1) == CH_FAILED) { /* TODO: handle this */ - chprintf(chp, "\r\nSD Block Read Error\r\n"); + msd_debug_print(chp, "\r\nSD Block Read Error\r\n"); } else { read_success = TRUE; break; } } if( (!read_success) || (!palReadPad(GPIOF, GPIOF_USER_BUTTON)) ) { - chprintf(chp, "\r\nSD Block Read Error 1, halting\r\n"); + msd_debug_print(chp, "\r\nSD Block Read Error 1, halting\r\n"); chThdSleepMilliseconds(70);//wait for printing to finish msdp->result = FALSE; - chprintf(chp, "\r\nSetting sense code %u\r\n", SCSI_SENSE_KEY_MEDIUM_ERROR); + msd_debug_print(chp, "\r\nSetting sense code %u\r\n", SCSI_SENSE_KEY_MEDIUM_ERROR); SCSISetSense( msdp, SCSI_SENSE_KEY_MEDIUM_ERROR, SCSI_ASENSE_NO_ADDITIONAL_INFORMATION, @@ -631,7 +636,7 @@ bool_t SCSICommandStartReadWrite10(USBMassStorageDriver *msdp) { read_success = FALSE; for(retry_count = 0; retry_count < 3; retry_count++ ) { if(blkRead(msdp->bbdp, rw_block_address, rw_buf[(i+1) % 2], 1) == CH_FAILED ) { - chprintf(chp, "\r\nSD Block Read Error 2\r\n"); + msd_debug_print(chp, "\r\nSD Block Read Error 2\r\n"); } else { read_success = TRUE; break; @@ -639,10 +644,10 @@ bool_t SCSICommandStartReadWrite10(USBMassStorageDriver *msdp) { } if( (! read_success) || (!palReadPad(GPIOF, GPIOF_USER_BUTTON)) ) { - chprintf(chp, "\r\nSD Block Read Error 22, addr=%d, halting\r\n", rw_block_address); + msd_debug_print(chp, "\r\nSD Block Read Error 22, addr=%d, halting\r\n", rw_block_address); chThdSleepMilliseconds(70);//wait for printing to finish msdp->result = FALSE; - chprintf(chp, "\r\nSetting sense code %u\r\n", SCSI_SENSE_KEY_MEDIUM_ERROR); + msd_debug_print(chp, "\r\nSetting sense code %u\r\n", SCSI_SENSE_KEY_MEDIUM_ERROR); SCSISetSense( msdp, SCSI_SENSE_KEY_MEDIUM_ERROR, SCSI_ASENSE_NO_ADDITIONAL_INFORMATION, @@ -738,26 +743,26 @@ bool_t msdReadCommandBlock(USBMassStorageDriver *msdp) { bool_t sleep = FALSE; switch(cbw->scsi_cmd_data[0]) { case SCSI_CMD_INQUIRY: - chprintf(chp, "CMD_INQ\r\n"); + msd_debug_print(chp, "CMD_INQ\r\n"); sleep = SCSICommandInquiry(msdp); break; case SCSI_CMD_REQUEST_SENSE: - chprintf(chp, "\r\nCMD_RS\r\n"); + msd_debug_print(chp, "\r\nCMD_RS\r\n"); sleep = SCSICommandRequestSense(msdp); break; case SCSI_CMD_READ_CAPACITY_10: - chprintf(chp, "CMD_RC10\r\n"); + msd_debug_print(chp, "CMD_RC10\r\n"); sleep = SCSICommandReadCapacity10(msdp); break; case SCSI_CMD_READ_10: case SCSI_CMD_WRITE_10: - chprintf(chp, "CMD_RW\r\n"); + msd_debug_print(chp, "CMD_RW\r\n"); MSD_RW_LED_ON(); sleep = SCSICommandStartReadWrite10(msdp); MSD_RW_LED_OFF(); break; case SCSI_CMD_SEND_DIAGNOSTIC: - chprintf(chp, "CMD_DIA\r\n"); + msd_debug_print(chp, "CMD_DIA\r\n"); sleep = SCSICommandSendDiagnostic(msdp); break; case SCSI_CMD_TEST_UNIT_READY: @@ -767,11 +772,11 @@ bool_t msdReadCommandBlock(USBMassStorageDriver *msdp) { msdp->result = TRUE; break; case SCSI_CMD_MODE_SENSE_6: - chprintf(chp, "\r\nCMD_S6\r\n"); + msd_debug_print(chp, "\r\nCMD_S6\r\n"); sleep = SCSICommandModeSense6(msdp); break; case SCSI_CMD_START_STOP_UNIT: - chprintf(chp, "CMD_STOP\r\n"); + msd_debug_print(chp, "CMD_STOP\r\n"); sleep = SCSICommandStartStopUnit(msdp); break; default: @@ -862,9 +867,9 @@ static msg_t MassStorageThd(void *arg) { bool_t wait_for_isr = FALSE; /* wait for the usb to be initialised */ - chprintf(chp, "Y"); + msd_debug_print(chp, "Y"); WaitForISR(msdp, 0); - chprintf(chp, "y"); + msd_debug_print(chp, "y"); while (TRUE) { wait_for_isr = FALSE; @@ -876,22 +881,22 @@ static msg_t MassStorageThd(void *arg) { msdp->state = idle; } - chprintf(chp, "state=%d\r\n", msdp->state); + msd_debug_print(chp, "state=%d\r\n", msdp->state); /* wait on data depending on the current state */ switch(msdp->state) { case idle: - chprintf(chp, "IDL"); + msd_debug_print(chp, "IDL"); wait_for_isr = msdWaitForCommandBlock(msdp); - chprintf(chp, "x\r\n"); + msd_debug_print(chp, "x\r\n"); break; case read_cmd_block: - chprintf(chp, "RCB"); + msd_debug_print(chp, "RCB"); wait_for_isr = msdReadCommandBlock(msdp); - chprintf(chp, "x\r\n"); + msd_debug_print(chp, "x\r\n"); break; case ejected: /* disconnect usb device */ - chprintf(chp, "ejected\r\n"); + msd_debug_print(chp, "ejected\r\n"); chThdSleepMilliseconds(70); usbDisconnectBus(msdp->usbp); usbStop(msdp->usbp); @@ -901,9 +906,9 @@ static msg_t MassStorageThd(void *arg) { /* wait until the ISR wakes thread */ if(wait_for_isr) { - chprintf(chp, "W"); + msd_debug_print(chp, "W"); WaitForISR(msdp, 0); - chprintf(chp, "w"); + msd_debug_print(chp, "w"); } } From 3702855842f094b2245f8fc8155a10bfa7009d05 Mon Sep 17 00:00:00 2001 From: Dave Camarillo Date: Wed, 20 Feb 2013 16:03:27 -0800 Subject: [PATCH 14/52] moved trigger tranfer variable into driver structure --- .../usb_msd.c | 28 ++++++++----------- .../usb_msd.h | 1 + 2 files changed, 13 insertions(+), 16 deletions(-) diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.c index 4b11a944e0..0d42115b68 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.c +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.c @@ -6,8 +6,6 @@ #define MSD_DEBUG FALSE #define msd_debug_print(args ...) if (MSD_DEBUG) { chprintf(args); } - - static BaseSequentialStream *chp = (BaseSequentialStream *)&SD2; static WORKING_AREA(waMassStorage, 1024); @@ -21,7 +19,7 @@ static Thread *msdUSBTransferThd = NULL; static void WaitForISR(USBMassStorageDriver *msdp, const int max_ms); -static volatile uint32_t trigger_transfer_index = UINT32_MAX; + #define BLOCK_SIZE_INCREMENT 512 #define BLOCK_WRITE_ITTERATION_COUNT 32 @@ -56,9 +54,6 @@ inline uint32_t swap_uint32( uint32_t val ) { - - - /*===========================================================================*/ /* USB related stuff. */ /*===========================================================================*/ @@ -308,7 +303,7 @@ static void usb_event(USBDriver *usbp, usbevent_t event) { chSysLockFromIsr(); msdp->reconfigured_or_reset_event = TRUE; usbInitEndpointI(usbp, USB_MS_DATA_EP, &epDataConfig); - /* initialise the thread */ + /* Initialize the thread */ chBSemSignalI(&msdp->bsem); /* signal that the device is connected */ @@ -514,7 +509,7 @@ bool_t SCSICommandStartReadWrite10(USBMassStorageDriver *msdp) { //initiate a transfer rw_ping_pong_buffer[ping_pong_buffer_index].is_transfer_done = FALSE; rw_ping_pong_buffer[ping_pong_buffer_index].max_blocks_to_read = total_blocks; - trigger_transfer_index = ping_pong_buffer_index;//Trigger the transfer in the other thread + msdp->trigger_transfer_index = ping_pong_buffer_index;//Trigger the transfer in the other thread //wake other thread on semaphore to trigger the transfer chBSemSignal(&msdp->usb_transfer_thread_bsem); @@ -533,10 +528,10 @@ bool_t SCSICommandStartReadWrite10(USBMassStorageDriver *msdp) { if( queue_another_transfer ) { while( TRUE ) { - if(trigger_transfer_index == UINT32_MAX) { + if(msdp->trigger_transfer_index == UINT32_MAX) { rw_ping_pong_buffer[empty_buffer_index].max_blocks_to_read = total_blocks - i - BLOCK_WRITE_ITTERATION_COUNT; - trigger_transfer_index = empty_buffer_index; + msdp->trigger_transfer_index = empty_buffer_index; //wake other thread on semaphore to trigger the transfer chBSemSignal(&msdp->usb_transfer_thread_bsem); @@ -848,9 +843,9 @@ static msg_t MassStorageUSBTransferThd(void *arg) { USBMassStorageDriver *msdp = (USBMassStorageDriver *)arg; for(;;) { - if( trigger_transfer_index != UINT32_MAX ) { - SCSIWriteTransferPingPong(msdp, &rw_ping_pong_buffer[trigger_transfer_index]); - trigger_transfer_index = UINT32_MAX; + if( msdp->trigger_transfer_index != UINT32_MAX ) { + SCSIWriteTransferPingPong(msdp, &rw_ping_pong_buffer[msdp->trigger_transfer_index]); + msdp->trigger_transfer_index = UINT32_MAX; //notify other thread chBSemSignal(&msdp->mass_sorage_thd_bsem); } @@ -920,18 +915,19 @@ void msdInit(USBDriver *usbp, BaseBlockDevice *bbdp, USBMassStorageDriver *msdp) msdp->usbp = usbp; msdp->state = idle; + msdp->trigger_transfer_index = UINT32_MAX; msdp->bbdp = bbdp; chEvtInit(&msdp->evt_connected); chEvtInit(&msdp->evt_ejected); - /* initialise binary semaphore as taken */ + /* Initialize binary semaphore as taken */ chBSemInit(&msdp->bsem, TRUE); - /* initialise binary semaphore as NOT taken */ + /* Initialize binary semaphore as NOT taken */ chBSemInit(&msdp->usb_transfer_thread_bsem, FALSE); chBSemInit(&msdp->mass_sorage_thd_bsem, FALSE); - /* initialise sense values to zero */ + /* Initialize sense values to zero */ for(i = 0; i < sizeof(scsi_sense_response_t); i++) msdp->sense.byte[i] = 0x00; diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.h b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.h index f6cdb447bd..8ff9b28571 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.h +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.h @@ -138,6 +138,7 @@ struct USBMassStorageDriver { scsi_sense_response_t sense; bool_t result; bool_t reconfigured_or_reset_event; + uint32_t trigger_transfer_index; }; #define MSD_CONNECTED 0 From 9a322220ba25b73ebd8449367a2c3c2c97c0a087 Mon Sep 17 00:00:00 2001 From: Dave Camarillo Date: Wed, 20 Feb 2013 16:07:35 -0800 Subject: [PATCH 15/52] cleanup of misc cruft and adding comments to code --- .../usb_msd.c | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.c index 0d42115b68..114a9243b5 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.c +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.c @@ -19,13 +19,9 @@ static Thread *msdUSBTransferThd = NULL; static void WaitForISR(USBMassStorageDriver *msdp, const int max_ms); - - #define BLOCK_SIZE_INCREMENT 512 #define BLOCK_WRITE_ITTERATION_COUNT 32 -static uint8_t rw_buf[2][BLOCK_SIZE_INCREMENT]; - typedef struct { uint8_t is_transfer_done; /*Number of blocks actually read from USB IN endpont that should be written to SD card*/ @@ -36,6 +32,7 @@ typedef struct { } rw_usb_sd_buffer_t; static volatile rw_usb_sd_buffer_t rw_ping_pong_buffer[2]; +static uint8_t read_buffer[2][BLOCK_SIZE_INCREMENT]; inline uint32_t swap_uint32( uint32_t val ) { val = ((val << 8) & 0xFF00FF00 ) | ((val >> 8) & 0xFF00FF ); @@ -554,7 +551,7 @@ bool_t SCSICommandStartReadWrite10(USBMassStorageDriver *msdp) { /* now write the block to the block device */ if(blkWrite(msdp->bbdp, rw_block_address, (uint8_t*)rw_ping_pong_buffer[done_buffer_index].buf, - rw_ping_pong_buffer[done_buffer_index].num_blocks_to_write) == CH_FAILED || (!palReadPad(GPIOF, GPIOF_USER_BUTTON)) ) { + rw_ping_pong_buffer[done_buffer_index].num_blocks_to_write) == CH_FAILED ) { msd_debug_print(chp, "\r\nSD Block Write Error, halting\r\n"); chThdSleepMilliseconds(50); @@ -593,7 +590,7 @@ bool_t SCSICommandStartReadWrite10(USBMassStorageDriver *msdp) { /* read the first block from block device */ read_success = FALSE; for(retry_count = 0; retry_count < 3; retry_count++ ) { - if(blkRead(msdp->bbdp, rw_block_address, rw_buf[i % 2], 1) == CH_FAILED) { + if(blkRead(msdp->bbdp, rw_block_address, read_buffer[i % 2], 1) == CH_FAILED) { /* TODO: handle this */ msd_debug_print(chp, "\r\nSD Block Read Error\r\n"); } else { @@ -601,7 +598,7 @@ bool_t SCSICommandStartReadWrite10(USBMassStorageDriver *msdp) { break; } } - if( (!read_success) || (!palReadPad(GPIOF, GPIOF_USER_BUTTON)) ) { + if( (!read_success) ) { msd_debug_print(chp, "\r\nSD Block Read Error 1, halting\r\n"); chThdSleepMilliseconds(70);//wait for printing to finish msdp->result = FALSE; @@ -618,7 +615,7 @@ bool_t SCSICommandStartReadWrite10(USBMassStorageDriver *msdp) { /* loop over each block */ for(i = 0; i < total_blocks; i++) { /* transmit the block */ - usbPrepareTransmit(msdp->usbp, USB_MS_DATA_EP, rw_buf[i % 2], + usbPrepareTransmit(msdp->usbp, USB_MS_DATA_EP, read_buffer[i % 2], msdp->block_dev_info.blk_size); chSysLock(); @@ -630,7 +627,7 @@ bool_t SCSICommandStartReadWrite10(USBMassStorageDriver *msdp) { /* so read that while the USB transfer takes place */ read_success = FALSE; for(retry_count = 0; retry_count < 3; retry_count++ ) { - if(blkRead(msdp->bbdp, rw_block_address, rw_buf[(i+1) % 2], 1) == CH_FAILED ) { + if(blkRead(msdp->bbdp, rw_block_address, read_buffer[(i+1) % 2], 1) == CH_FAILED ) { msd_debug_print(chp, "\r\nSD Block Read Error 2\r\n"); } else { read_success = TRUE; @@ -638,7 +635,7 @@ bool_t SCSICommandStartReadWrite10(USBMassStorageDriver *msdp) { } } - if( (! read_success) || (!palReadPad(GPIOF, GPIOF_USER_BUTTON)) ) { + if( (! read_success) ) { msd_debug_print(chp, "\r\nSD Block Read Error 22, addr=%d, halting\r\n", rw_block_address); chThdSleepMilliseconds(70);//wait for printing to finish msdp->result = FALSE; @@ -653,6 +650,10 @@ bool_t SCSICommandStartReadWrite10(USBMassStorageDriver *msdp) { rw_block_address++; } + /*FIXME In the event that the USB connection is unplugged while we're waiting for a bulk + * endpoint ISR, this will never return, and when re-plugged into the host, the drive will + * not show back up on the host. We need a way to break out of this loop when disconnected from the bus. + */ WaitForISR(msdp, 0); } } From d96a06f88654d7d3a196b31c0e4da0ec5834291d Mon Sep 17 00:00:00 2001 From: Dave Camarillo Date: Wed, 20 Feb 2013 16:30:24 -0800 Subject: [PATCH 16/52] fixed restarting of command processing if device was unpluged during a previous read --- .../usb_msd.c | 56 +++++++++++++------ 1 file changed, 40 insertions(+), 16 deletions(-) diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.c index 114a9243b5..d72f903843 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.c +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.c @@ -3,7 +3,9 @@ #include "usb_msd.h" #include "chprintf.h" -#define MSD_DEBUG FALSE +#define MSD_ENABLE_PERF_DEBUG_GPIOS FALSE + +#define MSD_DEBUG TRUE #define msd_debug_print(args ...) if (MSD_DEBUG) { chprintf(args); } static BaseSequentialStream *chp = (BaseSequentialStream *)&SD2; @@ -17,7 +19,9 @@ static msg_t MassStorageThd(void *arg); static Thread *msdThd = NULL; static Thread *msdUSBTransferThd = NULL; -static void WaitForISR(USBMassStorageDriver *msdp, const int max_ms); +#define WAIT_ISR_SUCCESS 0 +#define WAIT_ISR_BUSS_RESET_OR_RECONNECT 1 +static uint8_t WaitForISR(USBMassStorageDriver *msdp, const bool_t check_reset); #define BLOCK_SIZE_INCREMENT 512 #define BLOCK_WRITE_ITTERATION_COUNT 32 @@ -243,15 +247,28 @@ bool_t msdRequestsHook(USBDriver *usbp) { return FALSE; } -static void WaitForISR(USBMassStorageDriver *msdp, const int max_ms) { +static uint8_t WaitForISR(USBMassStorageDriver *msdp, const bool_t check_reset) { + uint8_t ret = WAIT_ISR_SUCCESS; /* sleep until it completes */ chSysLock(); - if( max_ms <= 0 ) { - chBSemWaitS(&msdp->bsem); + if( check_reset ) { + for(;;) { + const msg_t m = chBSemWaitTimeoutS(&msdp->bsem, 1); + if( m == RDY_OK ) { + break; + } + + if( msdp->reconfigured_or_reset_event ) { + ret = WAIT_ISR_BUSS_RESET_OR_RECONNECT; + break; + } + } } else { - chBSemWaitTimeoutS(&msdp->bsem, max_ms); + chBSemWaitS(&msdp->bsem); } + chSysUnlock(); + return(ret); } void msdUsbEvent(USBDriver *usbp, usbep_t ep) { @@ -430,7 +447,9 @@ void SCSIWriteTransferPingPong(USBMassStorageDriver *msdp, volatile rw_usb_sd_bu dest_buffer->is_transfer_done = FALSE; dest_buffer->num_blocks_to_write = 0; +#if MSD_ENABLE_PERF_DEBUG_GPIOS palSetPad(GPIOH, GPIOH_LED2); +#endif for(cnt = 0; cnt < BLOCK_WRITE_ITTERATION_COUNT && cnt < dest_buffer->max_blocks_to_read; cnt++ ) { usbPrepareReceive(msdp->usbp, USB_MS_DATA_EP, (uint8_t*)&dest_buffer->buf[cnt * BLOCK_SIZE_INCREMENT], (msdp->block_dev_info.blk_size)); @@ -438,11 +457,13 @@ void SCSIWriteTransferPingPong(USBMassStorageDriver *msdp, volatile rw_usb_sd_bu usbStartReceiveI(msdp->usbp, USB_MS_DATA_EP); chSysUnlock(); - WaitForISR(msdp, 0); + WaitForISR(msdp, FALSE); dest_buffer->num_blocks_to_write++; } dest_buffer->is_transfer_done = TRUE; +#if MSD_ENABLE_PERF_DEBUG_GPIOS palClearPad(GPIOH, GPIOH_LED2); +#endif } static void WaitForUSBTransferComplete(USBMassStorageDriver *msdp, const int ping_pong_buffer_index) { @@ -459,7 +480,6 @@ static void WaitForUSBTransferComplete(USBMassStorageDriver *msdp, const int pin bool_t SCSICommandStartReadWrite10(USBMassStorageDriver *msdp) { msd_cbw_t *cbw = &(msdp->cbw); - bool_t data_cached = FALSE; int read_success; int retry_count; @@ -591,7 +611,6 @@ bool_t SCSICommandStartReadWrite10(USBMassStorageDriver *msdp) { read_success = FALSE; for(retry_count = 0; retry_count < 3; retry_count++ ) { if(blkRead(msdp->bbdp, rw_block_address, read_buffer[i % 2], 1) == CH_FAILED) { - /* TODO: handle this */ msd_debug_print(chp, "\r\nSD Block Read Error\r\n"); } else { read_success = TRUE; @@ -654,7 +673,10 @@ bool_t SCSICommandStartReadWrite10(USBMassStorageDriver *msdp) { * endpoint ISR, this will never return, and when re-plugged into the host, the drive will * not show back up on the host. We need a way to break out of this loop when disconnected from the bus. */ - WaitForISR(msdp, 0); + if( WaitForISR(msdp, TRUE) == WAIT_ISR_BUSS_RESET_OR_RECONNECT ) { + msdp->result = FALSE; + return FALSE; + } } } @@ -809,7 +831,9 @@ bool_t msdReadCommandBlock(USBMassStorageDriver *msdp) { } if(sleep) { - WaitForISR(msdp, 0); + if( WaitForISR(msdp, TRUE) == WAIT_ISR_BUSS_RESET_OR_RECONNECT ) { + return(FALSE); + } } msd_csw_t *csw = &(msdp->csw); @@ -862,9 +886,9 @@ static msg_t MassStorageThd(void *arg) { bool_t wait_for_isr = FALSE; - /* wait for the usb to be initialised */ + /* wait for the usb to be initialized */ msd_debug_print(chp, "Y"); - WaitForISR(msdp, 0); + WaitForISR(msdp, FALSE); msd_debug_print(chp, "y"); while (TRUE) { @@ -901,9 +925,9 @@ static msg_t MassStorageThd(void *arg) { } /* wait until the ISR wakes thread */ - if(wait_for_isr) { + if( wait_for_isr && (!msdp->reconfigured_or_reset_event) ) { msd_debug_print(chp, "W"); - WaitForISR(msdp, 0); + WaitForISR(msdp, FALSE); msd_debug_print(chp, "w"); } } @@ -922,7 +946,7 @@ void msdInit(USBDriver *usbp, BaseBlockDevice *bbdp, USBMassStorageDriver *msdp) chEvtInit(&msdp->evt_connected); chEvtInit(&msdp->evt_ejected); - /* Initialize binary semaphore as taken */ + /* Initialize binary semaphore as taken, will cause the thread to initially wait on the */ chBSemInit(&msdp->bsem, TRUE); /* Initialize binary semaphore as NOT taken */ chBSemInit(&msdp->usb_transfer_thread_bsem, FALSE); From 15460142be24a8284c3c35516fcde42bc0effb00 Mon Sep 17 00:00:00 2001 From: Dave Camarillo Date: Wed, 20 Feb 2013 16:32:37 -0800 Subject: [PATCH 17/52] removed cruft --- .../usb_msd.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.c index d72f903843..2692f815ff 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.c +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.c @@ -587,9 +587,6 @@ bool_t SCSICommandStartReadWrite10(USBMassStorageDriver *msdp) { } return(FALSE); - - /* TODO: handle this */ - //chSysHalt(); } rw_block_address += rw_ping_pong_buffer[done_buffer_index].num_blocks_to_write; i += rw_ping_pong_buffer[done_buffer_index].num_blocks_to_write; From f9982fc8572a1a36ff66eb29f09f4599ed58fd3a Mon Sep 17 00:00:00 2001 From: Dave Camarillo Date: Wed, 20 Feb 2013 16:50:06 -0800 Subject: [PATCH 18/52] removed old un-used vcom debugging code --- .../main.c | 646 ------------------ 1 file changed, 646 deletions(-) diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/main.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/main.c index 3aa06f2110..a2a5c5eae9 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/main.c +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/main.c @@ -111,573 +111,6 @@ static void tmr_init(void *p) { //#define ENABLE_VCOM -#ifdef ENABLE_VCOM - -/** - * @brief FS object. - */ -static FATFS SDC_FS; - -/* FS mounted and ready.*/ -static bool_t fs_ready = FALSE; - -/* Generic large buffer.*/ -static uint8_t fbuff[1024]; - - -static WORKING_AREA(WA_sdcard_thread, 512); -msg_t sdcard_thread_sdio_test(void *arg) -{ - (void) arg; - uint32_t errors; - uint32_t bytes_written; - FRESULT fr; - static FIL sd_file_handle; - - BaseSequentialStream *chp = (BaseSequentialStream*)&SD2; - - chRegSetThreadName("sdcard_test"); - chprintf(chp,"SD Test Thread\r\n"); - - // all io pin settings should be in board.h - - - /* - if( init_sd() != 0 ) { - goto sd_test_cleanup; - } - */ - - - chprintf(chp, "Mounting fatfs\r\n"); - fr = f_mount(0, &SDC_FS); - if( fr != FR_OK ) - { - chprintf(chp, "Failed to mount fatfs\r\n"); - goto sd_test_cleanup; - } - - chprintf(chp, "Opening test.txt\r\n"); - fr = f_open(&sd_file_handle, "/test.txt", FA_CREATE_ALWAYS | FA_WRITE); - if( fr != FR_OK ) - { - chprintf(chp, "Failed to open test.txt, %d\r\n", fr); - goto sd_test_cleanup; - } - - chprintf(chp, "Writing to test.txt\r\n"); - int i; - for(i = 0; i < 1000000; i++ ) { - if( i % 1000 == 0 ) { - chprintf(chp, "."); - } - fr = f_write(&sd_file_handle, "test 4 5 6\n", 11, (UINT*)&bytes_written); - if( fr != FR_OK || bytes_written != 11 ) - { - chprintf(chp, "Failed to write to test.txt, %d\r\n", fr); - goto sd_test_cleanup; - } - } - chprintf(chp, "\r\n"); - - chprintf(chp, "Closing file\r\n"); - fr = f_close(&sd_file_handle); - if( fr != FR_OK ) - { - chprintf(chp, "Error closing file, %d\r\n", fr); - } - -sd_test_cleanup: - f_mount(0, NULL); - sdcDisconnect(&SDCD1); - palSetPad(GPIOC,13); // power off card - - while(TRUE) - { - chThdSleepMilliseconds(1000); - } -} - - - - -static FRESULT scan_files(BaseSequentialStream *chp, char *path) { - FRESULT res; - FILINFO fno; - DIR dir; - int i; - char *fn; - -#if _USE_LFN - fno.lfname = 0; - fno.lfsize = 0; -#endif - res = f_opendir(&dir, path); - if (res == FR_OK) { - i = strlen(path); - for (;;) { - res = f_readdir(&dir, &fno); - if (res != FR_OK || fno.fname[0] == 0) - break; - if (fno.fname[0] == '.') - continue; - fn = fno.fname; - if (fno.fattrib & AM_DIR) { - path[i++] = '/'; - strcpy(&path[i], fn); - res = scan_files(chp, path); - if (res != FR_OK) - break; - path[--i] = 0; - } - else { - chprintf(chp, "%s/%s\r\n", path, fn); - } - } - } - return res; -} - -/*===========================================================================*/ -/* USB related stuff. */ -/*===========================================================================*/ - -/* - * Serial over USB Driver structure. - */ -static SerialUSBDriver SDU1; - -/* - * USB Device Descriptor. - */ -static const uint8_t vcom_device_descriptor_data[18] = { - USB_DESC_DEVICE (0x0110, /* bcdUSB (1.1). */ - 0x02, /* bDeviceClass (CDC). */ - 0x00, /* bDeviceSubClass. */ - 0x00, /* bDeviceProtocol. */ - 0x40, /* bMaxPacketSize. */ - 0x0483, /* idVendor (ST). */ - 0x5740, /* idProduct. */ - 0x0200, /* bcdDevice. */ - 1, /* iManufacturer. */ - 2, /* iProduct. */ - 3, /* iSerialNumber. */ - 1) /* bNumConfigurations. */ -}; - -/* - * Device Descriptor wrapper. - */ -static const USBDescriptor vcom_device_descriptor = { - sizeof vcom_device_descriptor_data, - vcom_device_descriptor_data -}; - -/* Configuration Descriptor tree for a CDC.*/ -static const uint8_t vcom_configuration_descriptor_data[67] = { - /* Configuration Descriptor.*/ - USB_DESC_CONFIGURATION(67, /* wTotalLength. */ - 0x02, /* bNumInterfaces. */ - 0x01, /* bConfigurationValue. */ - 0, /* iConfiguration. */ - 0xC0, /* bmAttributes (self powered). */ - 50), /* bMaxPower (100mA). */ - /* Interface Descriptor.*/ - USB_DESC_INTERFACE (0x00, /* bInterfaceNumber. */ - 0x00, /* bAlternateSetting. */ - 0x01, /* bNumEndpoints. */ - 0x02, /* bInterfaceClass (Communications - Interface Class, CDC section - 4.2). */ - 0x02, /* bInterfaceSubClass (Abstract - Control Model, CDC section 4.3). */ - 0x01, /* bInterfaceProtocol (AT commands, - CDC section 4.4). */ - 0), /* iInterface. */ - /* Header Functional Descriptor (CDC section 5.2.3).*/ - USB_DESC_BYTE (5), /* bLength. */ - USB_DESC_BYTE (0x24), /* bDescriptorType (CS_INTERFACE). */ - USB_DESC_BYTE (0x00), /* bDescriptorSubtype (Header - Functional Descriptor. */ - USB_DESC_BCD (0x0110), /* bcdCDC. */ - /* Call Management Functional Descriptor. */ - USB_DESC_BYTE (5), /* bFunctionLength. */ - USB_DESC_BYTE (0x24), /* bDescriptorType (CS_INTERFACE). */ - USB_DESC_BYTE (0x01), /* bDescriptorSubtype (Call Management - Functional Descriptor). */ - USB_DESC_BYTE (0x00), /* bmCapabilities (D0+D1). */ - USB_DESC_BYTE (0x01), /* bDataInterface. */ - /* ACM Functional Descriptor.*/ - USB_DESC_BYTE (4), /* bFunctionLength. */ - USB_DESC_BYTE (0x24), /* bDescriptorType (CS_INTERFACE). */ - USB_DESC_BYTE (0x02), /* bDescriptorSubtype (Abstract - Control Management Descriptor). */ - USB_DESC_BYTE (0x02), /* bmCapabilities. */ - /* Union Functional Descriptor.*/ - USB_DESC_BYTE (5), /* bFunctionLength. */ - USB_DESC_BYTE (0x24), /* bDescriptorType (CS_INTERFACE). */ - USB_DESC_BYTE (0x06), /* bDescriptorSubtype (Union - Functional Descriptor). */ - USB_DESC_BYTE (0x00), /* bMasterInterface (Communication - Class Interface). */ - USB_DESC_BYTE (0x01), /* bSlaveInterface0 (Data Class - Interface). */ - /* Endpoint 2 Descriptor.*/ - USB_DESC_ENDPOINT (USB_CDC_INTERRUPT_REQUEST_EP|0x80, - 0x03, /* bmAttributes (Interrupt). */ - 0x0008, /* wMaxPacketSize. */ - 0xFF), /* bInterval. */ - /* Interface Descriptor.*/ - USB_DESC_INTERFACE (0x01, /* bInterfaceNumber. */ - 0x00, /* bAlternateSetting. */ - 0x02, /* bNumEndpoints. */ - 0x0A, /* bInterfaceClass (Data Class - Interface, CDC section 4.5). */ - 0x00, /* bInterfaceSubClass (CDC section - 4.6). */ - 0x00, /* bInterfaceProtocol (CDC section - 4.7). */ - 0x00), /* iInterface. */ - /* Endpoint 3 Descriptor.*/ - USB_DESC_ENDPOINT (USB_CDC_DATA_AVAILABLE_EP, /* bEndpointAddress.*/ - 0x02, /* bmAttributes (Bulk). */ - 0x0040, /* wMaxPacketSize. */ - 0x00), /* bInterval. */ - /* Endpoint 1 Descriptor.*/ - USB_DESC_ENDPOINT (USB_CDC_DATA_REQUEST_EP|0x80, /* bEndpointAddress.*/ - 0x02, /* bmAttributes (Bulk). */ - 0x0040, /* wMaxPacketSize. */ - 0x00) /* bInterval. */ -}; - -/* - * Configuration Descriptor wrapper. - */ -static const USBDescriptor vcom_configuration_descriptor = { - sizeof vcom_configuration_descriptor_data, - vcom_configuration_descriptor_data -}; - -/* - * U.S. English language identifier. - */ -static const uint8_t vcom_string0[] = { - USB_DESC_BYTE(4), /* bLength. */ - USB_DESC_BYTE(USB_DESCRIPTOR_STRING), /* bDescriptorType. */ - USB_DESC_WORD(0x0409) /* wLANGID (U.S. English). */ -}; - -/* - * Vendor string. - */ -static const uint8_t vcom_string1[] = { - USB_DESC_BYTE(38), /* bLength. */ - USB_DESC_BYTE(USB_DESCRIPTOR_STRING), /* bDescriptorType. */ - 'S', 0, 'T', 0, 'M', 0, 'i', 0, 'c', 0, 'r', 0, 'o', 0, 'e', 0, - 'l', 0, 'e', 0, 'c', 0, 't', 0, 'r', 0, 'o', 0, 'n', 0, 'i', 0, - 'c', 0, 's', 0 -}; - -/* - * Device Description string. - */ -static const uint8_t vcom_string2[] = { - USB_DESC_BYTE(56), /* bLength. */ - USB_DESC_BYTE(USB_DESCRIPTOR_STRING), /* bDescriptorType. */ - 'C', 0, 'h', 0, 'i', 0, 'b', 0, 'i', 0, 'O', 0, 'S', 0, '/', 0, - 'R', 0, 'T', 0, ' ', 0, 'V', 0, 'i', 0, 'r', 0, 't', 0, 'u', 0, - 'a', 0, 'l', 0, ' ', 0, 'C', 0, 'O', 0, 'M', 0, ' ', 0, 'P', 0, - 'o', 0, 'r', 0, 't', 0 -}; - -/* - * Serial Number string. - */ -static const uint8_t vcom_string3[] = { - USB_DESC_BYTE(8), /* bLength. */ - USB_DESC_BYTE(USB_DESCRIPTOR_STRING), /* bDescriptorType. */ - '0' + CH_KERNEL_MAJOR, 0, - '0' + CH_KERNEL_MINOR, 0, - '0' + CH_KERNEL_PATCH, 0 -}; - -/* - * Strings wrappers array. - */ -static const USBDescriptor vcom_strings[] = { - {sizeof vcom_string0, vcom_string0}, - {sizeof vcom_string1, vcom_string1}, - {sizeof vcom_string2, vcom_string2}, - {sizeof vcom_string3, vcom_string3} -}; - -/* - * Handles the GET_DESCRIPTOR callback. All required descriptors must be - * handled here. - */ -static const USBDescriptor *get_descriptor(USBDriver *usbp, - uint8_t dtype, - uint8_t dindex, - uint16_t lang) { - - (void)usbp; - (void)lang; - switch (dtype) { - case USB_DESCRIPTOR_DEVICE: - return &vcom_device_descriptor; - case USB_DESCRIPTOR_CONFIGURATION: - return &vcom_configuration_descriptor; - case USB_DESCRIPTOR_STRING: - if (dindex < 4) - return &vcom_strings[dindex]; - } - return NULL; -} - -/** - * @brief IN EP1 state. - */ -static USBInEndpointState ep1instate; - -/** - * @brief OUT EP1 state. - */ -static USBOutEndpointState ep1outstate; - -/** - * @brief EP1 initialization structure (both IN and OUT). - */ -static const USBEndpointConfig ep1config = { - USB_EP_MODE_TYPE_BULK, - NULL, - sduDataTransmitted, - sduDataReceived, - 0x0040, - 0x0040, - &ep1instate, - &ep1outstate, - 2, - NULL -}; - -/** - * @brief IN EP2 state. - */ -static USBInEndpointState ep2instate; - -/** - * @brief EP2 initialization structure (IN only). - */ -static const USBEndpointConfig ep2config = { - USB_EP_MODE_TYPE_INTR, - NULL, - sduInterruptTransmitted, - NULL, - 0x0010, - 0x0000, - &ep2instate, - NULL, - 1, - NULL -}; - -/* - * Handles the USB driver global events. - */ -static void usb_event(USBDriver *usbp, usbevent_t event) { - - switch (event) { - case USB_EVENT_RESET: - return; - case USB_EVENT_ADDRESS: - return; - case USB_EVENT_CONFIGURED: - chSysLockFromIsr(); - - /* Enables the endpoints specified into the configuration. - Note, this callback is invoked from an ISR so I-Class functions - must be used.*/ - usbInitEndpointI(usbp, USB_CDC_DATA_REQUEST_EP, &ep1config); - usbInitEndpointI(usbp, USB_CDC_INTERRUPT_REQUEST_EP, &ep2config); - - /* Resetting the state of the CDC subsystem.*/ - sduConfigureHookI(usbp); - - chSysUnlockFromIsr(); - return; - case USB_EVENT_SUSPEND: - return; - case USB_EVENT_WAKEUP: - return; - case USB_EVENT_STALLED: - return; - } - return; -} - -/* - * USB driver configuration. - */ -static const USBConfig usbcfg = { - usb_event, - get_descriptor, - sduRequestsHook, - NULL -}; - -/* - * Serial over USB driver configuration. - */ -#if STM32_USB_USE_OTG2 -static const SerialUSBConfig serusbcfg = { - &USBD2 -}; -#else -static const SerialUSBConfig serusbcfg = { - &USBD1 -}; -#endif - - -/*===========================================================================*/ -/* Command line related. */ -/*===========================================================================*/ - -#define SHELL_WA_SIZE THD_WA_SIZE(2048) -#define TEST_WA_SIZE THD_WA_SIZE(256) - - - -static void cmd_mem(BaseSequentialStream *chp, int argc, char *argv[]) { - size_t n, size; - - (void)argv; - if (argc > 0) { - chprintf(chp, "Usage: mem\r\n"); - return; - } - n = chHeapStatus(NULL, &size); - chprintf(chp, "core free memory : %u bytes\r\n", chCoreStatus()); - chprintf(chp, "heap fragments : %u\r\n", n); - chprintf(chp, "heap free total : %u bytes\r\n", size); -} - -static void cmd_threads(BaseSequentialStream *chp, int argc, char *argv[]) { - static const char *states[] = {THD_STATE_NAMES}; - Thread *tp; - - (void)argv; - if (argc > 0) { - chprintf(chp, "Usage: threads\r\n"); - return; - } - chprintf(chp, " addr stack prio refs state time\r\n"); - tp = chRegFirstThread(); - do { - chprintf(chp, "%.8lx %.8lx %4lu %4lu %9s %lu\r\n", - (uint32_t)tp, (uint32_t)tp->p_ctx.r13, - (uint32_t)tp->p_prio, (uint32_t)(tp->p_refs - 1), - states[tp->p_state], (uint32_t)tp->p_time); - tp = chRegNextThread(tp); - } while (tp != NULL); -} - -static void cmd_test(BaseSequentialStream *chp, int argc, char *argv[]) { - Thread *tp; - - (void)argv; - if (argc > 0) { - chprintf(chp, "Usage: test\r\n"); - return; - } - tp = chThdCreateFromHeap(NULL, TEST_WA_SIZE, chThdGetPriority(), - TestThread, chp); - if (tp == NULL) { - chprintf(chp, "out of memory\r\n"); - return; - } - chThdWait(tp); -} - -static void cmd_tree(BaseSequentialStream *chp, int argc, char *argv[]) { - FRESULT err; - uint32_t clusters; - FATFS *fsp; - - (void)argv; - if (argc > 0) { - chprintf(chp, "Usage: tree\r\n"); - return; - } - if (!fs_ready) { - chprintf(chp, "File System not mounted\r\n"); - return; - } - err = f_getfree("/", &clusters, &fsp); - if (err != FR_OK) { - chprintf(chp, "FS: f_getfree() failed\r\n"); - return; - } - chprintf(chp, - "FS: %lu free clusters, %lu sectors per cluster, %lu bytes free\r\n", - clusters, (uint32_t)SDC_FS.csize, - clusters * (uint32_t)SDC_FS.csize * (uint32_t)MMCSD_BLOCK_SIZE); - fbuff[0] = 0; - scan_files(chp, (char *)fbuff); -} - -static const ShellCommand commands[] = { - {"mem", cmd_mem}, - {"threads", cmd_threads}, - {"test", cmd_test}, - {"tree", cmd_tree}, - {NULL, NULL} -}; - -static const ShellConfig shell_cfg1 = { - (BaseSequentialStream *)&SDU1, - commands -}; - - - -/*===========================================================================*/ -/* Main and generic code. */ -/*===========================================================================*/ - -/* - * Card insertion event. - */ -static void InsertHandler(eventid_t id) { - FRESULT err; - - (void)id; - /* - * On insertion SDC initialization and FS mount. - */ - if (sdcConnect(&SDCD1)) - return; - - err = f_mount(0, &SDC_FS); - if (err != FR_OK) { - sdcDisconnect(&SDCD1); - return; - } - fs_ready = TRUE; -} - -/* - * Card removal event. - */ -static void RemoveHandler(eventid_t id) { - - (void)id; - sdcDisconnect(&SDCD1); - fs_ready = FALSE; -} - -#endif - /* * Green LED blinker thread, times are in milliseconds. */ @@ -727,16 +160,6 @@ int init_sd(void) { * Application entry point. */ int main(void) { -#ifdef ENABLE_VCOM - static Thread *shelltp = NULL; - static const evhandler_t evhndl[] = { - InsertHandler, - RemoveHandler - }; - - struct EventListener el0, el1; -#endif - /* * System initializations. * - HAL initialization, this also initializes the configured device drivers @@ -747,29 +170,6 @@ int main(void) { halInit(); chSysInit(); -#ifdef ENABLE_VCOM - /* - * Initializes a serial-over-USB CDC driver. - */ - sduObjectInit(&SDU1); - sduStart(&SDU1, &serusbcfg); - - /* - * Activates the USB driver and then the USB bus pull-up on D+. - * Note, a delay is inserted in order to not have to disconnect the cable - * after a reset. - */ - usbDisconnectBus(serusbcfg.usbp); - chThdSleepMilliseconds(100); - usbStart(serusbcfg.usbp, &usbcfg); - usbConnectBus(serusbcfg.usbp); - - /* - * Shell manager initialization. - */ - //shellInit(); -#endif - /* * Activates the serial driver 2 and SDC driver 1 using default * configuration. @@ -783,19 +183,10 @@ int main(void) { /* * Activates the card insertion monitor. */ -#ifdef ENABLE_VCOM - init_sd(); - tmr_init(&SDCD1); -#else init_sd(); - //sdcStart(&SDCD1, NULL); chprintf(chp, "done starting SDC\r\n"); sdcConnect(&SDCD1); -#endif - - -#ifndef ENABLE_VCOM BaseBlockDevice *bbdp = (BaseBlockDevice*) &SDCD1; chprintf(chp, "setting up MSD\r\n"); USBMassStorageDriver UMSD1; @@ -804,10 +195,6 @@ int main(void) { #else msdInit(&USBD1, bbdp, &UMSD1); #endif -#endif - - - /* * Creates the blinker thread. @@ -815,41 +202,8 @@ int main(void) { chprintf(chp, "starting blinker thread\r\n"); chThdCreateStatic(waThread1, sizeof(waThread1), NORMALPRIO, Thread1, NULL); -#ifdef ENABLE_VCOM - chThdCreateStatic(WA_sdcard_thread, sizeof(WA_sdcard_thread), NORMALPRIO, sdcard_thread_sdio_test, NULL); - while (TRUE) { - chThdSleepMilliseconds(100); - } -#endif - - - - - - -#ifdef ENABLE_VCOM - /* - * Normal main() thread activity, in this demo it does nothing except - * sleeping in a loop and listen for events. - */ - chEvtRegister(&inserted_event, &el0, 0); - chEvtRegister(&removed_event, &el1, 1); - - while (TRUE) { - if (!shelltp && (SDU1.config->usbp->state == USB_ACTIVE)) - shelltp = shellCreate(&shell_cfg1, SHELL_WA_SIZE, NORMALPRIO); - else if (chThdTerminated(shelltp)) { - chThdRelease(shelltp); /* Recovers memory of the previous shell. */ - shelltp = NULL; /* Triggers spawning of a new shell. */ - } - if (palReadPad(GPIOA, GPIOA_WAKE_BUTTON) != 0) { - } - chEvtDispatch(evhndl, chEvtWaitOneTimeout(ALL_EVENTS, MS2ST(500))); - } -#else while (TRUE) { chThdSleepMilliseconds(100); } -#endif } From 7a4cd781593e664e0e0c46be523cb1df46ad94c3 Mon Sep 17 00:00:00 2001 From: Dave Camarillo Date: Wed, 20 Feb 2013 16:51:03 -0800 Subject: [PATCH 19/52] disabled MSD debugging output, slows down performance tests --- .../usb_msd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.c index 2692f815ff..67bffeeefe 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.c +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.c @@ -5,7 +5,7 @@ #define MSD_ENABLE_PERF_DEBUG_GPIOS FALSE -#define MSD_DEBUG TRUE +#define MSD_DEBUG FALSE #define msd_debug_print(args ...) if (MSD_DEBUG) { chprintf(args); } static BaseSequentialStream *chp = (BaseSequentialStream *)&SD2; From 81c8db892926a137975ec88752da9339d90197e1 Mon Sep 17 00:00:00 2001 From: Dave Camarillo Date: Thu, 21 Feb 2013 14:23:08 -0800 Subject: [PATCH 20/52] added ability to redefine usbd param name in anticipation of USB composite devices --- .../halconf.h | 16 ++++++++++++- .../usb_msd.c | 23 ++++++++++++++++--- 2 files changed, 35 insertions(+), 4 deletions(-) diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/halconf.h b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/halconf.h index 67dc917a13..43f910e374 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/halconf.h +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/halconf.h @@ -34,6 +34,20 @@ #include "mcuconf.h" + +/* + * This is to allow for concurrent use of VCOM driver and MSD driver + * on the same USB peripheral. This is important for USB composite devices + * that have both a mass storage drier and a VCOM driver + */ +#define MSD_USB_DRIVER_EXT_FIELDS_NAME msd_param +#ifdef MSD_USB_DRIVER_EXT_FIELDS_NAME +# define USB_DRIVER_EXT_FIELDS void *MSD_USB_DRIVER_EXT_FIELDS_NAME; +#endif + + + + /** * @brief Enables the TM subsystem. */ @@ -138,7 +152,7 @@ * @brief Enables the SERIAL over USB subsystem. */ #if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL_USB TRUE +#define HAL_USE_SERIAL_USB FALSE #endif /** diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.c index 67bffeeefe..c10ad5c8a0 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.c +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.c @@ -8,6 +8,23 @@ #define MSD_DEBUG FALSE #define msd_debug_print(args ...) if (MSD_DEBUG) { chprintf(args); } + +#ifdef MSD_USB_DRIVER_EXT_FIELDS_NAME +# define USBD_PARAM_NAME MSD_USB_DRIVER_EXT_FIELDS_NAME +#else +# define USBD_PARAM_NAME param +#endif + + +#if HAL_USE_SERIAL_USB +# ifndef MSD_USB_DRIVER_EXT_FIELDS_NAME +# error "The serial usb driver and the mass storage driver both use the USBD->param variable and they conflict, you must define MSD_USB_DRIVER_EXT_FIELDS_NAME for these to work concurently." +# endif +#endif + + + + static BaseSequentialStream *chp = (BaseSequentialStream *)&SD2; static WORKING_AREA(waMassStorage, 1024); @@ -276,7 +293,7 @@ void msdUsbEvent(USBDriver *usbp, usbep_t ep) { (void)ep; chSysLockFromIsr(); - chBSemSignalI(&((USBMassStorageDriver *)usbp->param)->bsem); + chBSemSignalI(&((USBMassStorageDriver *)usbp->USBD_PARAM_NAME)->bsem); chSysUnlockFromIsr(); } @@ -306,7 +323,7 @@ static const USBEndpointConfig epDataConfig = { * Handles the USB driver global events. */ static void usb_event(USBDriver *usbp, usbevent_t event) { - USBMassStorageDriver *msdp = (USBMassStorageDriver *)usbp->param; + USBMassStorageDriver *msdp = (USBMassStorageDriver *)usbp->USBD_PARAM_NAME; switch (event) { case USB_EVENT_RESET: msdp->reconfigured_or_reset_event = TRUE; @@ -970,7 +987,7 @@ void msdInit(USBDriver *usbp, BaseBlockDevice *bbdp, USBMassStorageDriver *msdp) usbDisconnectBus(usbp); chThdSleepMilliseconds(200); - usbp->param = (void *)msdp; + usbp->USBD_PARAM_NAME = (void *)msdp; usbStart(usbp, &msd_usb_config); usbConnectBus(usbp); From b33039d088e375070e7d1f2902eef7b800633290 Mon Sep 17 00:00:00 2001 From: Dave Camarillo Date: Thu, 21 Feb 2013 14:26:49 -0800 Subject: [PATCH 21/52] fixed minor compiler warnings --- .../main.c | 85 +------------------ .../usb_msd.c | 4 +- 2 files changed, 4 insertions(+), 85 deletions(-) diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/main.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/main.c index a2a5c5eae9..4eb5ac2ff1 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/main.c +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/main.c @@ -32,101 +32,18 @@ #include "ff.h" -/*===========================================================================*/ -/* Card insertion monitor. */ -/*===========================================================================*/ - -#define POLLING_INTERVAL 10 -#define POLLING_DELAY 10 - - - - - -/** - * @brief Card monitor timer. - */ -static VirtualTimer tmr; - -/** - * @brief Debounce counter. - */ -static unsigned cnt; - -/** - * @brief Card event sources. - */ -static EventSource inserted_event, removed_event; - -/** - * @brief Insertion monitor timer callback function. - * - * @param[in] p pointer to the @p BaseBlockDevice object - * - * @notapi - */ -static void tmrfunc(void *p) { - BaseBlockDevice *bbdp = p; - - chSysLockFromIsr(); - if (cnt > 0) { - if (blkIsInserted(bbdp)) { - if (--cnt == 0) { - chEvtBroadcastI(&inserted_event); - } - } - else - cnt = POLLING_INTERVAL; - } - else { - if (!blkIsInserted(bbdp)) { - cnt = POLLING_INTERVAL; - chEvtBroadcastI(&removed_event); - } - } - chVTSetI(&tmr, MS2ST(POLLING_DELAY), tmrfunc, bbdp); - chSysUnlockFromIsr(); -} - -/** - * @brief Polling monitor start. - * - * @param[in] p pointer to an object implementing @p BaseBlockDevice - * - * @notapi - */ -static void tmr_init(void *p) { - - chEvtInit(&inserted_event); - chEvtInit(&removed_event); - chSysLock(); - cnt = POLLING_INTERVAL; - chVTSetI(&tmr, MS2ST(POLLING_DELAY), tmrfunc, p); - chSysUnlock(); -} - -/*===========================================================================*/ -/* FatFs related. */ -/*===========================================================================*/ - -//#define ENABLE_VCOM - /* * Green LED blinker thread, times are in milliseconds. */ static WORKING_AREA(waThread1, 128); static msg_t Thread1(void *arg) { - (void)arg; chRegSetThreadName("blinker"); while (TRUE) { palTogglePad(GPIOH, GPIOH_LED1); -#ifdef ENABLE_VCOM - chThdSleepMilliseconds(fs_ready ? 125 : 500); -#else chThdSleepMilliseconds(500); -#endif } + return(0); } int init_sd(void) { diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.c index c10ad5c8a0..b33a68802e 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.c +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.c @@ -485,7 +485,7 @@ void SCSIWriteTransferPingPong(USBMassStorageDriver *msdp, volatile rw_usb_sd_bu static void WaitForUSBTransferComplete(USBMassStorageDriver *msdp, const int ping_pong_buffer_index) { while(TRUE) { - const msg_t m = chBSemWaitTimeout(&msdp->mass_sorage_thd_bsem, MS2ST(1)); + chBSemWaitTimeout(&msdp->mass_sorage_thd_bsem, MS2ST(1)); if( rw_ping_pong_buffer[ping_pong_buffer_index].is_transfer_done ) { break; @@ -891,6 +891,8 @@ static msg_t MassStorageUSBTransferThd(void *arg) { chBSemWaitTimeout(&msdp->usb_transfer_thread_bsem, MS2ST(1)); } + + return(0); } static msg_t MassStorageThd(void *arg) { From fb041e3f7a940b44fc270cf9a3fa184cf1de1b4f Mon Sep 17 00:00:00 2001 From: Dave Camarillo Date: Thu, 21 Feb 2013 14:42:50 -0800 Subject: [PATCH 22/52] renamed demo directory to remove fatfs because it doesnt actually utilize the fatfs --- .../Makefile | 0 .../chconf.h | 0 .../demo_picture.jpg | Bin .../ffconf.h | 0 .../halconf.h | 0 .../main.c | 0 .../mcuconf.h | 0 .../readme.txt | 0 .../usb_msd.c | 0 .../usb_msd.h | 0 10 files changed, 0 insertions(+), 0 deletions(-) rename demos/{ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE => ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE}/Makefile (100%) rename demos/{ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE => ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE}/chconf.h (100%) rename demos/{ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE => ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE}/demo_picture.jpg (100%) rename demos/{ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE => ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE}/ffconf.h (100%) rename demos/{ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE => ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE}/halconf.h (100%) rename demos/{ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE => ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE}/main.c (100%) rename demos/{ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE => ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE}/mcuconf.h (100%) rename demos/{ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE => ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE}/readme.txt (100%) rename demos/{ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE => ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE}/usb_msd.c (100%) rename demos/{ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE => ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE}/usb_msd.h (100%) diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/Makefile b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/Makefile similarity index 100% rename from demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/Makefile rename to demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/Makefile diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/chconf.h b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/chconf.h similarity index 100% rename from demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/chconf.h rename to demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/chconf.h diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/demo_picture.jpg b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/demo_picture.jpg similarity index 100% rename from demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/demo_picture.jpg rename to demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/demo_picture.jpg diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/ffconf.h b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/ffconf.h similarity index 100% rename from demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/ffconf.h rename to demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/ffconf.h diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/halconf.h b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/halconf.h similarity index 100% rename from demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/halconf.h rename to demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/halconf.h diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/main.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/main.c similarity index 100% rename from demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/main.c rename to demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/main.c diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/mcuconf.h b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/mcuconf.h similarity index 100% rename from demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/mcuconf.h rename to demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/mcuconf.h diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/readme.txt b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/readme.txt similarity index 100% rename from demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/readme.txt rename to demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/readme.txt diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/usb_msd.c similarity index 100% rename from demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.c rename to demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/usb_msd.c diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.h b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/usb_msd.h similarity index 100% rename from demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI_FATFS-USB-MASS-STORAGE/usb_msd.h rename to demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/usb_msd.h From 6a1b6093cc87277935b925aa6edeccd9a5502266 Mon Sep 17 00:00:00 2001 From: Dave Camarillo Date: Thu, 21 Feb 2013 14:43:49 -0800 Subject: [PATCH 23/52] removed ff.h header include --- .../main.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/main.c b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/main.c index 4eb5ac2ff1..3a82c0ff64 100644 --- a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/main.c +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE/main.c @@ -30,8 +30,6 @@ #include "shell.h" #include "usb_msd.h" -#include "ff.h" - /* * Green LED blinker thread, times are in milliseconds. */ From 25afa638c3a0a6ad6aa055a32711a45d7984aa07 Mon Sep 17 00:00:00 2001 From: Dave Camarillo Date: Thu, 21 Feb 2013 16:38:11 -0800 Subject: [PATCH 24/52] initial commite of functional mass storage driver with config-specific code broken out, in perperation for making composite USB device --- .../Makefile | 229 +++++ .../chconf.h | 535 ++++++++++++ .../demo_picture.jpg | Bin 0 -> 983913 bytes .../ffconf.h | 193 +++++ .../halconf.h | 332 +++++++ .../main.c | 124 +++ .../mcuconf.h | 282 ++++++ .../readme.txt | 35 + .../usb_msd.c | 808 ++++++++++++++++++ .../usb_msd.h | 150 ++++ .../usb_msd_cfg.c | 250 ++++++ .../usb_msd_cfg.h | 46 + 12 files changed, 2984 insertions(+) create mode 100644 demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/Makefile create mode 100644 demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/chconf.h create mode 100644 demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/demo_picture.jpg create mode 100644 demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/ffconf.h create mode 100644 demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/halconf.h create mode 100644 demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/main.c create mode 100644 demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/mcuconf.h create mode 100644 demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/readme.txt create mode 100644 demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd.c create mode 100644 demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd.h create mode 100644 demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd_cfg.c create mode 100644 demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/usb_msd_cfg.h diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/Makefile b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/Makefile new file mode 100644 index 0000000000..7e61df6aa4 --- /dev/null +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/Makefile @@ -0,0 +1,229 @@ +############################################################################## +# Build global options +# NOTE: Can be overridden externally. +# + +# Compiler options here. +ifeq ($(USE_OPT),) + USE_OPT = -O2 -ggdb -fomit-frame-pointer -falign-functions=16 +endif + +# C specific options here (added to USE_OPT). +ifeq ($(USE_COPT),) + USE_COPT = +endif + +# C++ specific options here (added to USE_OPT). +ifeq ($(USE_CPPOPT),) + USE_CPPOPT = -fno-rtti +endif + +# Enable this if you want the linker to remove unused code and data +ifeq ($(USE_LINK_GC),) + USE_LINK_GC = yes +endif + +# If enabled, this option allows to compile the application in THUMB mode. +ifeq ($(USE_THUMB),) + USE_THUMB = yes +endif + +# Enable this if you want to see the full log while compiling. +ifeq ($(USE_VERBOSE_COMPILE),) + USE_VERBOSE_COMPILE = no +endif + +# +# Build global options +############################################################################## + +############################################################################## +# Architecture or project specific options +# + +# Enables the use of FPU on Cortex-M4. +# Enable this if you really want to use the STM FWLib. +ifeq ($(USE_FPU),) + USE_FPU = no +endif + +# Enable this if you really want to use the STM FWLib. +ifeq ($(USE_FWLIB),) + USE_FWLIB = no +endif + +# +# Architecture or project specific options +############################################################################## + +############################################################################## +# Project, sources and paths +# + +# Define project name here +PROJECT = ch + +# Imported source files and paths +CHIBIOS = ../.. +include $(CHIBIOS)/boards/WAVESHARE_OPEN_407I_C/board.mk +include $(CHIBIOS)/os/hal/platforms/STM32F4xx/platform.mk +include $(CHIBIOS)/os/hal/hal.mk +include $(CHIBIOS)/os/ports/GCC/ARMCMx/STM32F4xx/port.mk +include $(CHIBIOS)/os/kernel/kernel.mk +include $(CHIBIOS)/os/various/fatfs_bindings/fatfs.mk +include $(CHIBIOS)/test/test.mk + +# Define linker script file here +LDSCRIPT= $(PORTLD)/STM32F407xG.ld +#LDSCRIPT= $(PORTLD)/STM32F407xG_CCM.ld + +# C sources that can be compiled in ARM or THUMB mode depending on the global +# setting. +CSRC = $(PORTSRC) \ + $(KERNSRC) \ + $(TESTSRC) \ + $(HALSRC) \ + $(PLATFORMSRC) \ + $(BOARDSRC) \ + $(FATFSSRC) \ + $(CHIBIOS)/os/various/evtimer.c \ + $(CHIBIOS)/os/various/chprintf.c \ + $(CHIBIOS)/os/various/shell.c \ + usb_msd.c \ + usb_msd_cfg.c \ + main.c + +# C++ sources that can be compiled in ARM or THUMB mode depending on the global +# setting. +CPPSRC = + +# C sources to be compiled in ARM mode regardless of the global setting. +# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler +# option that results in lower performance and larger code size. +ACSRC = + +# C++ sources to be compiled in ARM mode regardless of the global setting. +# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler +# option that results in lower performance and larger code size. +ACPPSRC = + +# C sources to be compiled in THUMB mode regardless of the global setting. +# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler +# option that results in lower performance and larger code size. +TCSRC = + +# C sources to be compiled in THUMB mode regardless of the global setting. +# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler +# option that results in lower performance and larger code size. +TCPPSRC = + +# List ASM source files here +ASMSRC = $(PORTASM) + +INCDIR = $(PORTINC) $(KERNINC) $(TESTINC) \ + $(HALINC) $(PLATFORMINC) $(BOARDINC) \ + $(FATFSINC) \ + $(CHIBIOS)/os/various + +# +# Project, sources and paths +############################################################################## + +############################################################################## +# Compiler settings +# + +MCU = cortex-m4 + +#TRGT = arm-elf- +TRGT = arm-none-eabi- +CC = $(TRGT)gcc +CPPC = $(TRGT)g++ +# Enable loading with g++ only if you need C++ runtime support. +# NOTE: You can use C++ even without C++ support if you are careful. C++ +# runtime support makes code size explode. +LD = $(TRGT)gcc +#LD = $(TRGT)g++ +CP = $(TRGT)objcopy +AS = $(TRGT)gcc -x assembler-with-cpp +OD = $(TRGT)objdump +HEX = $(CP) -O ihex +BIN = $(CP) -O binary + +# ARM-specific options here +AOPT = + +# THUMB-specific options here +TOPT = -mthumb -DTHUMB + +# Define C warning options here +CWARN = -Wall -Wextra -Wstrict-prototypes + +# Define C++ warning options here +CPPWARN = -Wall -Wextra + +# +# Compiler settings +############################################################################## + +############################################################################## +# Start of default section +# + +# List all default C defines here, like -D_DEBUG=1 +DDEFS = + +# List all default ASM defines here, like -D_DEBUG=1 +DADEFS = + +# List all default directories to look for include files here +DINCDIR = + +# List the default directory to look for the libraries here +DLIBDIR = + +# List all default libraries here +DLIBS = + +# +# End of default section +############################################################################## + +############################################################################## +# Start of user section +# + +# List all user C define here, like -D_DEBUG=1 +UDEFS = + +# Define ASM defines here +UADEFS = + +# List all user directories here +UINCDIR = + +# List the user directory to look for the libraries here +ULIBDIR = + +# List all user libraries here +ULIBS = + +# +# End of user defines +############################################################################## + +ifeq ($(USE_FPU),yes) + USE_OPT += -mfloat-abi=softfp -mfpu=fpv4-sp-d16 -fsingle-precision-constant + DDEFS += -DCORTEX_USE_FPU=TRUE +else + DDEFS += -DCORTEX_USE_FPU=FALSE +endif + +ifeq ($(USE_FWLIB),yes) + include $(CHIBIOS)/ext/stm32lib/stm32lib.mk + CSRC += $(STM32SRC) + INCDIR += $(STM32INC) + USE_OPT += -DUSE_STDPERIPH_DRIVER +endif + +include $(CHIBIOS)/os/ports/GCC/ARMCMx/rules.mk diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/chconf.h b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/chconf.h new file mode 100644 index 0000000000..f0ccde0d06 --- /dev/null +++ b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/chconf.h @@ -0,0 +1,535 @@ +/* + ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, + 2011,2012,2013 Giovanni Di Sirio. + + This file is part of ChibiOS/RT. + + ChibiOS/RT is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + ChibiOS/RT is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +/** + * @file templates/chconf.h + * @brief Configuration file template. + * @details A copy of this file must be placed in each project directory, it + * contains the application specific kernel settings. + * + * @addtogroup config + * @details Kernel related settings and hooks. + * @{ + */ + +#ifndef _CHCONF_H_ +#define _CHCONF_H_ + +/*===========================================================================*/ +/** + * @name Kernel parameters and options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief System tick frequency. + * @details Frequency of the system timer that drives the system ticks. This + * setting also defines the system tick time unit. + */ +#if !defined(CH_FREQUENCY) || defined(__DOXYGEN__) +#define CH_FREQUENCY 1000 +#endif + +/** + * @brief Round robin interval. + * @details This constant is the number of system ticks allowed for the + * threads before preemption occurs. Setting this value to zero + * disables the preemption for threads with equal priority and the + * round robin becomes cooperative. Note that higher priority + * threads can still preempt, the kernel is always preemptive. + * + * @note Disabling the round robin preemption makes the kernel more compact + * and generally faster. + */ +#if !defined(CH_TIME_QUANTUM) || defined(__DOXYGEN__) +#define CH_TIME_QUANTUM 10 +#endif + +/** + * @brief Managed RAM size. + * @details Size of the RAM area to be managed by the OS. If set to zero + * then the whole available RAM is used. The core memory is made + * available to the heap allocator and/or can be used directly through + * the simplified core memory allocator. + * + * @note In order to let the OS manage the whole RAM the linker script must + * provide the @p __heap_base__ and @p __heap_end__ symbols. + * @note Requires @p CH_USE_MEMCORE. + */ +#if !defined(CH_MEMCORE_SIZE) || defined(__DOXYGEN__) +#define CH_MEMCORE_SIZE 0 +#endif + +/** + * @brief Idle thread automatic spawn suppression. + * @details When this option is activated the function @p chSysInit() + * does not spawn the idle thread automatically. The application has + * then the responsibility to do one of the following: + * - Spawn a custom idle thread at priority @p IDLEPRIO. + * - Change the main() thread priority to @p IDLEPRIO then enter + * an endless loop. In this scenario the @p main() thread acts as + * the idle thread. + * . + * @note Unless an idle thread is spawned the @p main() thread must not + * enter a sleep state. + */ +#if !defined(CH_NO_IDLE_THREAD) || defined(__DOXYGEN__) +#define CH_NO_IDLE_THREAD FALSE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Performance options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief OS optimization. + * @details If enabled then time efficient rather than space efficient code + * is used when two possible implementations exist. + * + * @note This is not related to the compiler optimization options. + * @note The default is @p TRUE. + */ +#if !defined(CH_OPTIMIZE_SPEED) || defined(__DOXYGEN__) +#define CH_OPTIMIZE_SPEED TRUE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Subsystem options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Threads registry APIs. + * @details If enabled then the registry APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_USE_REGISTRY) || defined(__DOXYGEN__) +#define CH_USE_REGISTRY TRUE +#endif + +/** + * @brief Threads synchronization APIs. + * @details If enabled then the @p chThdWait() function is included in + * the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_USE_WAITEXIT) || defined(__DOXYGEN__) +#define CH_USE_WAITEXIT TRUE +#endif + +/** + * @brief Semaphores APIs. + * @details If enabled then the Semaphores APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_USE_SEMAPHORES) || defined(__DOXYGEN__) +#define CH_USE_SEMAPHORES TRUE +#endif + +/** + * @brief Semaphores queuing mode. + * @details If enabled then the threads are enqueued on semaphores by + * priority rather than in FIFO order. + * + * @note The default is @p FALSE. Enable this if you have special requirements. + * @note Requires @p CH_USE_SEMAPHORES. + */ +#if !defined(CH_USE_SEMAPHORES_PRIORITY) || defined(__DOXYGEN__) +#define CH_USE_SEMAPHORES_PRIORITY FALSE +#endif + +/** + * @brief Atomic semaphore API. + * @details If enabled then the semaphores the @p chSemSignalWait() API + * is included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_USE_SEMAPHORES. + */ +#if !defined(CH_USE_SEMSW) || defined(__DOXYGEN__) +#define CH_USE_SEMSW TRUE +#endif + +/** + * @brief Mutexes APIs. + * @details If enabled then the mutexes APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_USE_MUTEXES) || defined(__DOXYGEN__) +#define CH_USE_MUTEXES TRUE +#endif + +/** + * @brief Conditional Variables APIs. + * @details If enabled then the conditional variables APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_USE_MUTEXES. + */ +#if !defined(CH_USE_CONDVARS) || defined(__DOXYGEN__) +#define CH_USE_CONDVARS TRUE +#endif + +/** + * @brief Conditional Variables APIs with timeout. + * @details If enabled then the conditional variables APIs with timeout + * specification are included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_USE_CONDVARS. + */ +#if !defined(CH_USE_CONDVARS_TIMEOUT) || defined(__DOXYGEN__) +#define CH_USE_CONDVARS_TIMEOUT TRUE +#endif + +/** + * @brief Events Flags APIs. + * @details If enabled then the event flags APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_USE_EVENTS) || defined(__DOXYGEN__) +#define CH_USE_EVENTS TRUE +#endif + +/** + * @brief Events Flags APIs with timeout. + * @details If enabled then the events APIs with timeout specification + * are included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_USE_EVENTS. + */ +#if !defined(CH_USE_EVENTS_TIMEOUT) || defined(__DOXYGEN__) +#define CH_USE_EVENTS_TIMEOUT TRUE +#endif + +/** + * @brief Synchronous Messages APIs. + * @details If enabled then the synchronous messages APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_USE_MESSAGES) || defined(__DOXYGEN__) +#define CH_USE_MESSAGES TRUE +#endif + +/** + * @brief Synchronous Messages queuing mode. + * @details If enabled then messages are served by priority rather than in + * FIFO order. + * + * @note The default is @p FALSE. Enable this if you have special requirements. + * @note Requires @p CH_USE_MESSAGES. + */ +#if !defined(CH_USE_MESSAGES_PRIORITY) || defined(__DOXYGEN__) +#define CH_USE_MESSAGES_PRIORITY FALSE +#endif + +/** + * @brief Mailboxes APIs. + * @details If enabled then the asynchronous messages (mailboxes) APIs are + * included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_USE_SEMAPHORES. + */ +#if !defined(CH_USE_MAILBOXES) || defined(__DOXYGEN__) +#define CH_USE_MAILBOXES TRUE +#endif + +/** + * @brief I/O Queues APIs. + * @details If enabled then the I/O queues APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__) +#define CH_USE_QUEUES TRUE +#endif + +/** + * @brief Core Memory Manager APIs. + * @details If enabled then the core memory manager APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_USE_MEMCORE) || defined(__DOXYGEN__) +#define CH_USE_MEMCORE TRUE +#endif + +/** + * @brief Heap Allocator APIs. + * @details If enabled then the memory heap allocator APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_USE_MEMCORE and either @p CH_USE_MUTEXES or + * @p CH_USE_SEMAPHORES. + * @note Mutexes are recommended. + */ +#if !defined(CH_USE_HEAP) || defined(__DOXYGEN__) +#define CH_USE_HEAP TRUE +#endif + +/** + * @brief C-runtime allocator. + * @details If enabled the the heap allocator APIs just wrap the C-runtime + * @p malloc() and @p free() functions. + * + * @note The default is @p FALSE. + * @note Requires @p CH_USE_HEAP. + * @note The C-runtime may or may not require @p CH_USE_MEMCORE, see the + * appropriate documentation. + */ +#if !defined(CH_USE_MALLOC_HEAP) || defined(__DOXYGEN__) +#define CH_USE_MALLOC_HEAP FALSE +#endif + +/** + * @brief Memory Pools Allocator APIs. + * @details If enabled then the memory pools allocator APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_USE_MEMPOOLS) || defined(__DOXYGEN__) +#define CH_USE_MEMPOOLS TRUE +#endif + +/** + * @brief Dynamic Threads APIs. + * @details If enabled then the dynamic threads creation APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_USE_WAITEXIT. + * @note Requires @p CH_USE_HEAP and/or @p CH_USE_MEMPOOLS. + */ +#if !defined(CH_USE_DYNAMIC) || defined(__DOXYGEN__) +#define CH_USE_DYNAMIC TRUE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Debug options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Debug option, system state check. + * @details If enabled the correct call protocol for system APIs is checked + * at runtime. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_SYSTEM_STATE_CHECK) || defined(__DOXYGEN__) +#define CH_DBG_SYSTEM_STATE_CHECK FALSE +#endif + +/** + * @brief Debug option, parameters checks. + * @details If enabled then the checks on the API functions input + * parameters are activated. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_ENABLE_CHECKS) || defined(__DOXYGEN__) +#define CH_DBG_ENABLE_CHECKS FALSE +#endif + +/** + * @brief Debug option, consistency checks. + * @details If enabled then all the assertions in the kernel code are + * activated. This includes consistency checks inside the kernel, + * runtime anomalies and port-defined checks. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_ENABLE_ASSERTS) || defined(__DOXYGEN__) +#define CH_DBG_ENABLE_ASSERTS FALSE +#endif + +/** + * @brief Debug option, trace buffer. + * @details If enabled then the context switch circular trace buffer is + * activated. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_ENABLE_TRACE) || defined(__DOXYGEN__) +#define CH_DBG_ENABLE_TRACE FALSE +#endif + +/** + * @brief Debug option, stack checks. + * @details If enabled then a runtime stack check is performed. + * + * @note The default is @p FALSE. + * @note The stack check is performed in a architecture/port dependent way. + * It may not be implemented or some ports. + * @note The default failure mode is to halt the system with the global + * @p panic_msg variable set to @p NULL. + */ +#if !defined(CH_DBG_ENABLE_STACK_CHECK) || defined(__DOXYGEN__) +#define CH_DBG_ENABLE_STACK_CHECK TRUE +#endif + +/** + * @brief Debug option, stacks initialization. + * @details If enabled then the threads working area is filled with a byte + * value when a thread is created. This can be useful for the + * runtime measurement of the used stack. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_FILL_THREADS) || defined(__DOXYGEN__) +#define CH_DBG_FILL_THREADS TRUE +#endif + +/** + * @brief Debug option, threads profiling. + * @details If enabled then a field is added to the @p Thread structure that + * counts the system ticks occurred while executing the thread. + * + * @note The default is @p TRUE. + * @note This debug option is defaulted to TRUE because it is required by + * some test cases into the test suite. + */ +#if !defined(CH_DBG_THREADS_PROFILING) || defined(__DOXYGEN__) +#define CH_DBG_THREADS_PROFILING TRUE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Kernel hooks + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Threads descriptor structure extension. + * @details User fields added to the end of the @p Thread structure. + */ +#if !defined(THREAD_EXT_FIELDS) || defined(__DOXYGEN__) +#define THREAD_EXT_FIELDS \ + /* Add threads custom fields here.*/ +#endif + +/** + * @brief Threads initialization hook. + * @details User initialization code added to the @p chThdInit() API. + * + * @note It is invoked from within @p chThdInit() and implicitly from all + * the threads creation APIs. + */ +#if !defined(THREAD_EXT_INIT_HOOK) || defined(__DOXYGEN__) +#define THREAD_EXT_INIT_HOOK(tp) { \ + /* Add threads initialization code here.*/ \ +} +#endif + +/** + * @brief Threads finalization hook. + * @details User finalization code added to the @p chThdExit() API. + * + * @note It is inserted into lock zone. + * @note It is also invoked when the threads simply return in order to + * terminate. + */ +#if !defined(THREAD_EXT_EXIT_HOOK) || defined(__DOXYGEN__) +#define THREAD_EXT_EXIT_HOOK(tp) { \ + /* Add threads finalization code here.*/ \ +} +#endif + +/** + * @brief Context switch hook. + * @details This hook is invoked just before switching between threads. + */ +#if !defined(THREAD_CONTEXT_SWITCH_HOOK) || defined(__DOXYGEN__) +#define THREAD_CONTEXT_SWITCH_HOOK(ntp, otp) { \ + /* System halt code here.*/ \ +} +#endif + +/** + * @brief Idle Loop hook. + * @details This hook is continuously invoked by the idle thread loop. + */ +#if !defined(IDLE_LOOP_HOOK) || defined(__DOXYGEN__) +#define IDLE_LOOP_HOOK() { \ + /* Idle loop code here.*/ \ +} +#endif + +/** + * @brief System tick event hook. + * @details This hook is invoked in the system tick handler immediately + * after processing the virtual timers queue. + */ +#if !defined(SYSTEM_TICK_EVENT_HOOK) || defined(__DOXYGEN__) +#define SYSTEM_TICK_EVENT_HOOK() { \ + /* System tick event code here.*/ \ +} +#endif + +/** + * @brief System halt hook. + * @details This hook is invoked in case to a system halting error before + * the system is halted. + */ +#if !defined(SYSTEM_HALT_HOOK) || defined(__DOXYGEN__) +#define SYSTEM_HALT_HOOK() { \ + /* System halt code here.*/ \ +} +#endif + +/** @} */ + +/*===========================================================================*/ +/* Port-specific settings (override port settings defaulted in chcore.h). */ +/*===========================================================================*/ + +#endif /* _CHCONF_H_ */ + +/** @} */ diff --git a/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/demo_picture.jpg b/demos/ARMCM4-STM32F407-WAVESHARE-OPEN-407I-C-USB_HS_ULPI-USB-MASS-STORAGE-VCOM/demo_picture.jpg new file mode 100644 index 0000000000000000000000000000000000000000..50dd55c22f3fb39a2bc68b98b211a9fcda7c1426 GIT binary patch literal 983913 zcmbSz1ymeOx9tozSa8VTE`dO>;1XOC+%>o*xVvj$aCdhnc<|uv?oJ@M%bR@v|9$_x zcdfV9eXnM9_wMRbRp(UOuIddh^DpZF3~6yGaR3kq1V}=EfR_#S*J3W_CIEnp41gX0 z03ZU;fM@_1D1wJB^+5E$Fgg^s0x|x=ASfONVgX>GTOjlY022IV3q^owAmKlF8A$hU z8)$7nmcPoPLT$Eztbbt~C_V-9{)M4!0pVb<|5K-5(m(mg!R7$CzuE!-F+!;S#wbJp z0Ez`PADTW%kcoXYHgvGFwlX)g2LNoixw#Fj{yGGW@sE#xVg&#tq-5mDSeZDOSeOB< z%q(m?%&a^t++-}AJj`4??>YY}@Xw0aFXiu8VC?+T|G{n{6#w=UY8pcOZ)^krL;(PQ z`UZ}fm6bUP_U{;B{G#Cg!3oj8f7t+GU;)uE|I}F$0|!8cmW6r>QxgOKPkwU@!aukx z2K1l)j6wX54>3sp#?aC+$p6?6#(4Z`3v>sqb229AuXd3D0OaAUzx`xkX3hfsr)(C? z-+c?$p9T9jM$pTG{~IH(=KibfpB@F|{ayAChWU>_d9eQl!~N|K@@yW$fAas7hlVQy z0APne0UC6H{~u?B6MAa?=UMtI4{H1G>j8=Yv={&Yf(QTryZ>kJU;CAYf3`rBuUP}L z#1$5XXY})$lrKLpi|IZN^gYs5PUnzlf<_Y5ZVfvn=`DwCv@LAdW55G7FmQv)NjT=B zTwu32_}r{Sjo;@%1w&kt+-QSYJ|zIMZ&Pa4>X>)`bNiv(yvi=guQF3VGK$>f`a{dR z3Cx5IW#zx^xYnhK8&Ac#Z0$Z$8-@;ay7$1SemX3pisT3j`URilMCJW32pcsVu>LG}%scYSC@3RAOX2f8ky2S)wbq~E;RK{AR**vU z^3VylX3@#IM13x=5$L)W$d`nyy5N@~1+|y8SO_R2vFnl2 z@)Dw0cU#@^UGAzH@bF~0m86ySpQ=5yfr{TRg4R=JaKMHmBHU2q`5`~I^X+AZ z-YJtaoEvt-5#E?}_=jdP!TISM5WQB(Cv*aC`pWr<>?&#W?M6KMvmH0piXWu3I3pZV z0w4V4@ZX7SFzG{l_LtT`}35)S=bKOpE1WWiie?i9(09%4gdM%5Yg_QF15F` zQls#)IQF&_7G!^{$T&0>WbxCB8`EQlPI@cEz^T-7{l5Q<=2MC61LZCzP!srXNsYCZiDpBe$2S{lF8lN}pEfygbSwNM|k z79vg-8&ulbIsrdy`|2Lt6IL`KGjILo#c2q*TUADM+BsbMBr!MMa2}fvY;%$AcD$5J z#?aGzr879K30ez9{_Hk%f4Ecdw5;2OYMC)b8d*saYrBAQXYe_f(xLCZ<^-@YDwUoR zIVmMCluy$b4kn0Yf8a;+Sje-k&7w=erf)G0(NR{S7R+1G#X)FL4QoA|(MhP6B!pak z?mh?&ZDLQtx~g`wnBrh2UhWTB;+nHZ3cl4wZ_zraIuo@(Mi9Z~HOaGRKtfQ}x{Sxu znBjxfPdBlb+L|U*k#|80l$`!TB>hIhQw3{QQ6&L>%0N-uTnl}YMNJmQrOeg-{wZ7M zWDSfuCNdJ7oK1?lr={#-@I=Y&5l>5T&zp<2X>+Mmkdsp^|D7bkC%`+8@1EMv_gP4r zxEo(p2QW9DCM83JWQ_FlJ?oQna}>sHh+E5> zs@Qj!wOqN-xvwek59*KrdFB`Djn6@&buaS7C<3ajw7-Wbo5+8$r>tBtgE3s9KKaE`J}VVP#0ogv`gwEMX*tP%uP}XYbyg7h}5> zAdvQhOLt`cw)?+rUu4AXPXae%)&!T` zF=7yBT2;reUi*1ss~J68_t$J>VD#G ztMPR8;S=al{sl`Em#BsMfx509oD&@~V^#UkPkc+@(*E38k0U^9`G(jkp-6rheOR1B zMgQ;z_v|jIn;zBByQOAzaH%7=i8sC@tetBv&#MvUyl^gY8;7hNzMgJfvua9|Z&{Fx z?U&zGEXi804}W|F2q}q3N&UqJpsPPz1qfwee-;3M49b8Wq3B;sjRi^s|2OGhTo=ka zVE)tr`is**^H9VA#DCR_0>!%juIOLw{f8%EL-T=ua~sw_?I8mHW=IIoLw_^rKW6_h zX_WE*Flm(e|H`CcfPb?ely#^#|7JpT@BS-${N1%SbECECShzJNE z1b9Rc2!w=$h>VK!3Kazf6(0*59fz2Jl!Taoh=`1eiI$AwEhP~V9p{_3%q;Be?4-2Z z{9LSjOl<6|e<}eYAt9lnpn_k$0<)46k+c3krW0Ki}ZVKIR(JpfXu zpYYJJ%AeuNzY~-=!@(nf5Rs5kpa$QeLlPh?EDRhhJUkq zK8V5=ht)Sa819S=jIm{H#WDncXs#o4-U`HFD|dHZ*K4I|HK7l&i@MQ zpUD14T$s?fVBp|j;Xr@l0>U^$7g$UEy z%hx2=#t`eH4BIaN z`o5XU_uo?S8solc83>n2+KgoCUNu?fYiR(6{Ps$t$6f%MHSeE<(d(BqIL@nvE8oBt zT|bUsm=8{f#7rrDk)9%ytB)K~$1}(swhO4f9(7ZV`4-%N5$D~Uxuuu{0m41UvooXG z$9w^CTp6F|yoxnUO?brc4x|f{ySs~fMtR0{5YBt*R{ZAJhfL2MY-F6O*teTv{{n#d zX>#ZWUy;+^_HGv#XlEzpux6_NNQpBWJZ>)|Q|R!Dvj1J(z~z!ZZWmAZV;O=N;GY`dN% z4(reWO7$Zt$Qg>jh-fa4@S63fKY#V$Uw36ZW)9Y6%?S)pk-4%7k-Z(lao1odk(?FP zz=l_cDO`*@l;tJweUs$WEK?rGYZ%G6l3HB6>5JQ@(z`BZE`zjmBPL2oH?bqPii@-J zyP%IcJ41o(hOX2S2~C`LLdLhVFMm~1oN;?^+MwYpAG=-5vX2lxOW1M{apT@OZa&@& zscT!@o~E3>IAW=BVW(v#4GW3e2209>ddHR_fhf1tN8}{fmI^U@j@4b??Ncu6$<{s< zd!`nLp3JKr`(L)Y>ARA&`aF;gkL$|fs9UJe z$yibH3OC$R+kYx8B}D*)^a6-fAw)@t7MwKx=7bwpi4SMwSdLH3m}Ra5>6{CnqbhD} zQ)|kJaf2u{`7VsjmaWt6gJ!ELt~OIu2Pbx-8<(Ni*1M(?Z=lATtRpW>y8x<<9ykv~&$lja)~ zcBc~#bxYZeJRPrlC6z6;!>k-YtQ=&7CAW!wIW5XEFG?#z#$NjHu&)nDFy zG<;|Y@|NCvPbK+&pkng9fMk#ZvcMzP{QNa;zW!z~)1qle7G@J6YQ7C2pGWsSgn>c# z+XL}t7;jQR1lzSo6;qf5U3YV|=F~U2_*hy`X#u*bhN&ws)2|sgPNZFU-Q?@*PTcWZ zCv&QCMsyIMatifBh3xaAwmAoLgL-lYaR-^V_H+Egt?cr^MyasU&Rvb|^F(P;xeN{6 z5hDs~osZAD{dges&X|A*+@Iaf3|JbXA^}qPe99uieU2V~8X`1B+i9`}bYu5(qJbfC zDofu?UbC)~wtA=IDtTQX{)&9Z^PJ~$ad!DZFkjAellPV=(I|~%@}1leZafZ+NJM|z zFB$8DXCk)dyu^eO#FdA_<-XI3CU>rKg|L?Sx!|Am0YJvG!TCKiIMZ=^&H7d9$+UOB z!?x}4(Mb#FQ_Kh$%OshUTYMvyAad=W-5T$`e32<-^e~9%V|q-_`R0i7r7lg1C2KsS zj2iGJI_X(Qm?6TfFxjJ8Q6N&yU6TxMRmrV*mZ+bAUiB@mdpDCh4+(SY0`uz|9=BFS z_Eu&CFU7*@`&q~IpDp{W44(=fhF=jF(pJ(woqXTlFnle0#$BQ#r<8Yks7parEn>BQ zDg$Qa8vNCLxy;W)(h4zG9F(dnrfun7?qeltvGXwvL^)qS`CPC#io~b6=uj5+Je zPq|oc2iw%_8o5c520*73Uc{PjG$nI%Dhg3r_ng=1YuA26hUduBNZJ!N8$I?}N%bAv zs>WM#z2CO&J&WOgE3TCdds?*MLOyn&u%NT5vna*q)WsaGoSSP(IW?Owc=F{|BhPo! zn5$E#=>@=52~ry8t|T~^wan7i;Ug~yL1zqx!}{>pRKW<}7kENb-(2gv9dC~_oVC6M z*oLT0t7YE~OS}&F9X_}t4G(@kqa-aiS?c?;`2s-gnd~_{ieF}lvtfz8x~xc1s^dSd zFr{|R-dQY9pNXG`9Osxu!};{uG0RyGHat>qB3?E|+MRwINSsDb( zH~DQUjsRRbWyROg*1F&4BZOFcu;4y@V`=nVFpiu{+jd`vFw}cgAW07B-jjrp@D`~` z8m)%2;@b!nEr5$*ZTpHU1t%PnFTW*e8a{s$;3VTCv2F517TG=<`Tda$wK*vF6QS);>R7MdcT%!->eZvwcw->SIn_3@+aqlpt%N z6`3DT!?LBUnd;L#CVFio9uWx+^)TNd10LxYi+XL^!(z2BdIpZO%gpoa3%l+eZc2eM z2T{FRq4uK^m9rJvE<(D@;)QO)c6@tiz^lFduUgShIa>fs@SgP#?N-Zr?8iP{^um0D z!=WbaqK)?>0xpbXK{`suId8qT1`!Rn_{F8R-bd$j$G%&tP?!9O7=w>fO!?54X8+6nNOu&| zUQv~+lvgGN?=_*Ls=Lde6m<)^d=iYSzpmwWeAR3K^|+JBAO00p$nfC zyj$QQI)2{dCmx%opclYUQgb3i)ZjtIOD+`_g1AStn{`H#%~+9Nu+qCJ$bo?Ntb3f* zz(<;o9sZ+LQKx%RH&tdI&l)ex>g4$+HiC(kDKAmBBHIN6DiIb-%&A%VI6TWM+l(@1Iyz$Z1~qfGq{07}Y@VU}(M`B88o_bXULkSmp6BQbAovk`yycC{$>tzB z%IeaPJvc)QNI_*qOZnZF1eGBE*K19&?}JMpBvUlh5@CIW@3D^-Ti)T`8cJ53dS%Tz zRZ|W62Bg)Vb~o)d$pzz+P^MuyrE-itUA8~D9Tr*}(u6qgs?n*NamZ{weH2e77E)wf zZWu1~LvP2=3qK@5p3Xoi@)$C|+o-C9tX~VPJvSeEXk{&b^hjxoxor)Hcce^!%_iAw z8u|G1#<`x=+zk?otxX!&LjE)7_oxzUkNspTFx*=pfTIMX_b*uxe^c{Q=U z9_~CUK{9h>j@(U<73u>34pg##pSt45=q%%h>_^u=Oz(K2pl@9BmySD>+l^_}ub|Wn z=CX?S#lHXu)FTva=S$p=nv9l&WjzueM{u!MK0uTQg@_vn7!s3H;$m%yFf%)*zG;WT zDe%##X_wg>A+gL8J)NW}P59z>lH3(l8d3DBirXEw)2&}DeYYfh!%&+0hF7ene7Es! zWr0d~XjciY9!pxr-EPsy780tvm4S-ir^1sv!@g-HzQh)+AJg=;Z5;*jY7kfat?IqS z+|=&txsQqMfvN}wov?d;Ah-(dv2x8^G|M`6mD4q~J^PyntlPxTK?~&q!})n14m)c* zJ8*{tzEh>O%GU)v4)3FhbKR53@!wWdyZ}Dcogw71cN)nQ$BQ9n`2hH0eO$OmHgi71 zcXUeDw@|{x5Rq{ASzl!8G8ClcBA(|C2f9p0vS$>~q?Qcc6cZw<(!xt(LN@DLl{RT( zeo;p=cT-UleI;c*p#mN(<*QHC5erOdSzn#;2^Bs`0T`8DbfnkVvp^)4GamwUaOj-SyNGqNY8_o9u~?!zglga(GMAVsL3UV za4Ukn_sP88&yvDwa@!LZvS7Co1`Ysc+^n}6k6r+?kg;xs1)1w41GCll+Kslp@tv@- zY1>ora*kQ$p@CfW8AY|lw?nF0dw4&|BmHn9`aqC&&G|{kbm1?OR;#e~y9uFS4ipTb zUYHj^9esR$d~|)v$8YM!@miUz<~YY4z2kYN?RQ63ljl=%Km63UFojc%Fe$5a=J5qv z2ab=gersd-$v5SHT|+&szIIk2hITZ|;z^~qVZi|7XoxOC7poLGuP;f`fxmX5@Auc7 zYBpl<&3HNs1{mQ8y!N*Mc<1}}kUCGzf%4t&RHQA*7gd)a|50X!kZJZ2Udh(52hsFG zGi9V)#6Fij+q>Wb#LM?woNtsY%DxU4Mnt|l*>gUy9`8!*bL(_kuJ7=F0q~98&Y1Jr zmNiHOcv9j{>zJpoyWMH${M0sqFRg`W6=fCPCYLj?Hp_v1Mj#e{@lap z_Spvw7h^7>&6-w)hjw)B<0u4P8z5O`lKX5pfl>Iv_oOV+ju!yyGx1N`40^4Q@5(_Y zWFeg$e2(v%yJgwb=6_Cqg9Nl8?|x~BCNN&wNg5^m&0xtzFNX?}j%pzcl7c~a$jSl` z*)D}?fj64nKS~-%<~PQ$Q=xs}GhM5+*CN=3)T5Z;WM5=s>A`>vcewAPI~2qUh+P*ud(0la0)NTTH8Kgx;xi9}P5yX_>korl#kSi^u}N6630MYP3luZekE zs_35XFAZV#GW^kNVpn@58w%&2doO5a%l zYm^yfGb{B4JH1R48hfcNgHJZAcRD{fy1~GlcB`=>k3OTOOcZ@U}t_x!Q5_ zs8Piuf{bNZ`J`Ev*)w#HbT)qs>q_C#dmUw7|6c78b7Vz|Cs*?8W25gr5eKO7ng5>T zu56pQsa=fZx%# z2E?Sw(RqvY9odAr%Nm`u07Hn}=d2Owat#kRFIq-TrR#+5fdQ@RJ{=jhpZwtrgj9Cy z`^e!w-EaUmy=^_WNFgbXrlR=;89S_rbnV`)p+$s`4Pt#akq1*S^&Vom76f$u$|>-R zx%NB&yF!SKTs5h5&#a}Wo6J!QeJv}ikH8I_?HKscE$mkz$FJnMkEt0fMGepG>j`R# z-xMbq3z8)pqpIlr5zExW{iJAjNPfsT?H8Rr z%{iNw9DE}G{_vI543V{w&o)C&Nc%RV%@SP+)@-JjRBn2T7j#zixL<&%Z;V=zMs%g=z<%%lmLT?`(D`lL0FxegC z8^Ra8%XvH3GF{XJ|qCE~iV)M8$l3t55azMt<%UN+62c=uX0qz|FE zOgpOeC+cXHzTNBHt#Hzzi`*?np2^k8k=*a$yu4O=tx@n+7Eba91VKf!ny%_mqWF5e zPJ3RmEdJw03S8%6b=U!Kx>I(&n)2tnG2ENpJCPk5H|aUC>4l$4P{#V-&AOQ_%GZQh z3l6bbE|M&$quF^`@tTsf&19EpbQXwM6P44Bp(kVKFFV6X4C!&H^s=H?*iNgyLE%lb zfpQ^6sl|4=-U4Jhw`j1mohN3KaTYs<1YLUqK1w_b_!CtIBGB2*`~C-e%+HMmwx>dk zMs-Q}+_+*pcc7o!^9L2;cWPhk%BfhEwR=+;3mfh0Nz$1441G@o(mAdeO|}%nCTC`^ zC?t9x`19F1c5WQ{3Ty8fdBA>GKdY*lJ z7j!u{vYN(}vLGcdF5#gU+joX0?oBki&9*3x%6Xdor7WbieWd z{$i`05>#DIO5^OnqCLuXPDK}B#f=ZxHf{41q~D3--d=w;tV;!0S6k<*}Ny*KV7#X{}M=L9u1n8og!DWYZ$0D9dlhGp9WpVRgLg zH@S!2Xju5wiDYJYhzbvn=X=>nVBVr3YDw;`RId>Cwr$E}cv^m?$X9At)#4GxDd>ET z{(kWAWa4nYSW>wETp*Q~#$%vEGsu48fNs$%DKI5t|pZmOnk5ojFs-|R{bC-d2^YlPe zV2aL(wt4IFrs9!NvPSD$>D(=@zXQb9E%pB&L|iaTCmrj5j%CRpD{k7rye zUD}3(Z874O*o?fbYRZdFC^h9S;ya3`D(|tXjb4TUoXuc%SR<%p+s5{O zS}n$5CA^x&(cG?EE3G28kiRKt4~8m@JqNJH>f34eqgGkJ)9|;B*1?S`%L;p9w2Zqw z`?vQS;kID;C3%wMJtEt?+4rjnr=N`Kg=a@45-*G);;tR*Zl3gX$`fLduT-di<>!hf z;Ptu+mz>ZxlsgePuyw+k->_-3>hZ}C16c~H+?JI+)7X8GqH&+*l(5M#Rkw@ zol;Brum;SxC2ayk8&RpgT6LbVP0=9vq6gzZ{u$;K*t8>St!Gl@Cs=K{c(21m4nHWi zS5lKqgg_^uO8n#OR+Vp&h>>t1G$($AStFGw!#;+k@8VvSeT&YbzpHc7V{#&nvg-R( zZc|W~R642o@cgSN0e#zJR9M4-CoDJ%!vN~x*{Mi$g|jwlpz7^I54Z0S%-3y*NaWT7eI-4u zkm%(|#IlIu5g#tV0KzuXK8iWYhh3+n&6KTAahCbCPLUWXYelmoXBp{jIUtFN;q8)$-z>@2ATSsEh1|Os9Cz1BCO#PPCH=(2Rb`I&NlWZ_Nq*33JLup#(7=7 z0s5K8+%)VP&abxkVg!N@G$S^^Ow8D7RU$riQ9-mo@5KY?c&?c2)SwKtP`i$NjxYhE z^|;rDl-TBr`j)vsyFcT`k&~!uw}$#mcJ+7H%wVTzXG_p7+{pl#mT0y&{;Aop*%m%I zId3^NPZe{I3<6Gb;JO-{EcMnGZJx$c(8+TN-NBN8co}d+$Dn_fo%vx}&~1q`i6nN} zk+AebLccHTU~PI%hUaoMGi!e`{pzEL>Q5#(>B&3k)!{Tre*VR#o}zaPqZSB zw6|ATgFjA31T1>k%C@%34>kIHAj?c7+MAm#_>5<+c7oDpgV5EejO8Qey^_FZFIugf z^K_to$xS_UlEZsj=uIOd%$2YW(<6$o42+)R;tjp3aPH})JvC|EqtpFpSAB0_4E^ME zv6dCcuCc1{rA%bEfdZQ%=yTjPrSoUaT|ONf(oUY9AdJ}FXsa#0yD(2~qHS+k^WHjR z2GR2-(~lTUb3J;udc{))T6siTOykPwKQ%)EnwOHzKcs?L=X;GI*AE-*_{0{rhV z757={QgHLae`+Tn_vc+YEi&hF-^uNWZQDzZeBn&`WSyk$ho}$_eM&g@vS=tOVXFtb(>0(CW6U0#J7~s1ZfZk#%nhvr2pNOV&@xmgvzKPi( zw{LrQg{?n|IZWLK-Az>GDEfmU6C)4AsDr<$@#=^>N68M@@eK@lY)BV(kUd5(V7Chb-8)ALG_tga&7;0fq03-8_5u9h5?M~DdrKVvxC$&p4#n=3Er zWe496yHXu{%1D|%PfQt{>xW1YN$fz!-JM$vXWl$Ts|LMeKA#0C8qP>BCiAB@1hlOb z71|>@Fu1k1PBMk=ua2`~${0wFG^hye3EB00hlpSyY2hz``%(#5A0#}sP3KkK#NcbZd+;aa7QPg-VpJ}RP~ z&&d2;&SN(@xa&|@NZ(fI{_63Rr!33$+xd=-%U1h31A5QvdS~8*&Dq!b_)#q3RvpIL zM)u?PGfgzx*^WVimC(|*#O|0~~lQ*I(VR=1SSrdSn#e));`&*<@R9*7Iq zzRP8K8r52zqId8e@rhE5UEWL!Ka^e2-XvT-;L5z(o_5p<)yH}qAP%F%QX|`L+6pVo zu+7Ir0_d> zAxF|(ic{4uE!%2)~e;&zzAZ97Rub&W@=18YD^2WU##Db6L%~T z051H_btAH&^6s*%1*K)7JV87`)%c;j9s2(0soc>GnF>tGBu6^9Kx+>fAq!iTiZ7@R zj4Y1O!p*FoGN^LU7nW7Jsjw~Var;@T)x*>#ZkNYS=W;M-<%WGX+tzM#J$rK@W?OGo zK%#&?w%WP%!y)>cNgSpjhR{ryZ)Da_)j5NP)``6UF&k&r$QAO{o+=_E`^(ZmD|2y< zLvf}6i)j_SPzSy{51Dd0`F9}zJwO;>izFjHKi?%*)l+& zj!7`=QFOF4dP@F?zHA&z%}*`ya!bDU{_lAfuPbV(#%lu)c6zhUrM4k*f|>_)k#)vd z>f1We49u`Ve?h_SQI5#ZAZy5e!iXMd?mslwj(9i*+E2Q0A@dBxuK%=K*cUD zb94gZCV7r0znzGOd(~Z zyzB2dl9}nTw^-a1ERE-~9rh}j{o6HoVscPlE;uto44X%Tp{S;tznc9Q*omW4rDd_F3&b)^)& zb9~_1)e+^!l|U)PAN6ecnf6ZY6Me($H}8aVgDlJkR#LmDRgg=dvUH;f#qU3xXp0`{ zDlBCu(@Uw4ZIZ@rEIJzHv%~g|md<{f=9Q?yg?m~UBa!3l+Wve6^jPkrICdG(%|hrq zQtUXb_0u>0WQ6x#nf~+x8KgTUg=R4z{rRDZv=EmAB?ZwyQMy3ssetyJXa*f)rN@CV z#=sF#A#xA|^vy?U7KY_9GV(!qr83v)33EafnCGN$gCKPmtgj{^9epJ_wqg2q?g9y> z)0W*f_f>YfBr*?r)7)yA`C|HPO095AkJtQJay3ThT_523AhWA_*+;{-AN1;%=i#u^ zlr}g&2uU(xiz<+cG?jGvIsTWhvr|GJL+ks{!SKW}kTY0j0S67PW zLR;{rV5%8Kdz+86k};JSTZIN`!yr2GD~w>HcVSV*bO@SLbmUEG@)>%trDK`&$d0zJ zFFmBK$GO6h{LCbVFNx;ilSp7U!V6%$3AZ-f!XiDHCwDwa6u~*`@e6~>OqoN!{afE{ zK|7qCwS9)TFOhgU5iwNJ@9bJApIqPb7X~k(TJNC|?QBH~3O+VIj3Md5sEftC-Ix8!v!bHK{KIqyD^ePjl9XGB~Q| zlHY2j86@L75rhu;y2p-0>1mqc(RL8I7LUhv&2nmMa2LGg>a>zLTVwpdMT;{I=GB&D zADM5K1-ruNzkX{<@*vLV3tTXw4yBDAcq}zp`vgHupxaHNphFhW1?`C8NHsJDOIg-h zQAh2~k!~m(Wk_Zs-;r!W3$skDe7c2iCzmxhvf|9_R}jMk58(TdazD|R_Wv0s&}Ea6 z#Yn&gJ<->WkdeCcWlSr`09Cb;acm);CB;ADOi!Mb6+R&lHnBYl#^We_LVsEKOBx9C z-xD0{pM9tx4Hgao9s%L61%!l%073#GARwYZHFP*FB^h^vLxO$-%J{v}KNTa@@mg!o652tY)F9+t&~iuK^&U=ZP9;DI0*cmN6z z1`_}aM-Gq0BBY>?fK6cwZS)j}wYqZxw1G=0taxUCN5uwhv?iwu@in!`B)ih)dwYKx z!`klim;a`!>n{_o2d?=0bv)}nA!2b+rJbX4*Yd z)XUIxe1~8&hblck@TZ1*Q9idb#UfR4_u6+wHVB!s#cO901}|kJKc{Cu`ogk02EYF5 zyS@eIC3<(%8L#lYiI!@Q5BrHnG9J0~dyqOQ<=AJpbpTF=$KKe{IE-EO7P3+jcc7`Q zb)lcE)X|RJ(u_ZrEc)K0{ z4rKGz@_t!E-1=`GhGSs`AGG1edece zT1)d0A{TchbNCeUD;afFpo|m3BlmrNkCv+!q$?Z(A5I?w{i`rZ{xvwi$9I4|!R~Cz zqCK)GuFmTN{4k->U#J(+zsJL=_6VCuyK}s{KZKfbxHzbe`7PVWcr!&x09*|`iTtf$}wW_cfxa|!8A|WB}j-m z8h*`(8+pEr9~cdAXncF%F_~B=7n^)Cl&+b0LYuei(YK-3d(S_>Wvrf3UcT#hV|$bA zp=VcV)zACqJnSE~QPbzSK>{lrSaC}MF65#p-`B4a?J&Swmz~6KG$R(|(J-vwGKX^T zh_n29K-;!s;%{leYF}LhWu>45Ia9ch-Z0Nqaq{Pot8k{aO&*B^t#kOrbGvRE8}PE4 z5|!Eh`r-1UFv7Uj7#ZEgo#SZ)fb<*R9weYxA95=6W)ZhfU{i`JZT(^|%TmH}epH-U z4t&6^ZD_TA*Fl2*naYlKdRW#YdWs4LX%&gCmHUZ|Nm8Cac&#!Z;>zZ=^@@E)w43h- zsy)U%XWjerG@nN8b4h+Q&*%2o@Ck8xk}FNKXarY7OiM zM{9hGvatcc<_@Z5xxl{>-bIYgG((9eZ0ZxMvK;(qRL=>W+%NMQL<9+X1&wEOb-c}s zj?|xc0jMfG8*pow-aLrd&{8HWJx$y^j!83vHn|k8Zw}N$jAApi@C5+-Xw~&>=^dwl zt*kd>b-YQ`92n`8@-To8w0!HZad-)>z9f%?T?ycAf88BZjB4e-Q z{zsEYYOxRTf_XH{lWBh0P&PX7OK|S$s2lw17Gitzc+cMfXZiJ1Ad}Q9_hv=TaO#v_ zY_bL%_6(jrv9nEsCwgknlt!K{%lh1m8sKj?e$1>LXs{%7?@W?xwHP*{S72VDQq}3l z(cNh6u?5!NPD4MKwVC~K?m4Bjh(6HQ5(++v_a$K#$FYy}_9ixY7_Dj6p>}2){^*(@ z^^v=8*Td0L&VMAWS6?4hwp>_Tf#8ew%>)6r*{^lQz97})AY|6t=+Y;OLB!Yr#GfKGAYaqQEj z)8XKKNYQ?AL0M^XeYcEkOY*3|%4Y)F>gGfhIe5z%fiWHuLn5=2J7Ga|JT+_p39R7TT#rBqCDSThDt%FmpdD z^7>vT+*Y<676fszh@0w8&?^jIt~e6lGB)o}rda69)}FB4dDsU+xk6pP#N|u>S)&G& z;>XATfCEpP_8WH8?UL!djH?3-3P)?jdbQ58^A<)Xcf;rBCqwg7Ip~wbOq`Qhf5@}J z!J-71zAyk5H2gicny~p(h#`~g4myHE3-LKIT!_7(TSOjWD8e6Q8QjZ=2*;!W`FCzD zW#Q2ahwu1yJGj-ni!3#}Z*ae4G{F$pBYPE2pmsn>gc>7x?sh}B)CLjSF1ncWiQ(qn zql%pi+djE>O5l3|%w?lHFXEy|D;dI?hT6!RMwT*6*p^zY#lXTyM}nXRiQ-@V4N;@e z1Rk%>V%Sk(U#((5;_%?u(bZvmF+>KcMFiHJQMX-)!mqBcdlA8WejcV-yt&+}^dAQB z1zh&e2N8g(i%TH_%eIehWJFay!$78SIzJrVQ;t)wG}9-;Tv#hgn|tL45>UI;j}N)- zdKa<&_g7nL!r%NUBKDTUFUF(fhTv#Sh;v=!NApgloJJ)+gY=|O{Jhb`-K^ioh3urb z=z|u`g`YFzZXNVnmU4;a6#dYgk$fLKTU{?EjFU|Qk639b>zDvl28VrS9V83;@RFb? zI~PTdr}nXeWJmaH!G}UoL~EFGR@Yu`u6_TK%OiX0&DBB>V3cb=Ah6_@etQTS`ERR7 zt7{V5%)N>5LO4IfWsY#~NCociZLuNQ?#HdK=6UmIADboK*|L9qYwwwF%n(zZ_S`he z^Eog@5eybm##2wHu%0orD0iC+h)K5L0?){~fM~Iv)Tf2tV>B+gC?6)$< za*R)`An@qN{QU!0afOU^59eHCkZ{GZR}0LUSm`619xni?!EFo|?p`pC#e@%5`YKftUO9nO?RTQBo^U>>+E-&CyTG3ii+Z?>eX9NrqkRV^U$g_G^Zu zhr;Wfx3@Fg7^czk$f*)|n~Uk)N51G4zk+OUBv+mHm$r;fh1>SB@>uEq9(?#g%&ExC zH6nfY@cj9Df9fMQ`7~jVm%ivgq@Lu-w+_5mQZ?STOg`Id=rhcXNVkx_a31=~DnXF_ ztrN^*KC{wztXgahK1ExOJi5OGt{jV9CY7-dIz8#{SYLpC-w?Yh*Anz_x_;@XB7Vd%JfZ=OjcWGU#YFJX zk>8vH&OIW>&Mzh%;RR7Lr3%Qo{>^mU&`mW9`bQ-MO}Tx8>ZM{M$a zk3XW(s7b$p?F!n=_z|zW%0$S4bzT1_Ea>-JLD((-`v*tgcTV(2?=8h%S-!2Ckr$v2 zQ|T4xA+?e4cxzSKe`}iek z8_GhAeEm%yGObdK3XJ-VDVL(3++tz^56YnbD8L#qiRc7XE7N{Feqf6#(#8$DOYJSv zvks2>x*wwTSS4%9DW!xzYsZQ3hq3l{>EaWtp0!WmNLF^MZo)Od&e1im__r)FUG>C~ z`1^=kaPcq(Vz{G7*JX!D4_jlpsUGhEt!R0!i;{=Tms4W>L#QtRhf5>J*ba|40qz6V zV(LkK>CV@!JOh^LNQ+?KOxmS_o5FYzBkV{bhaLD`q1%2Nm%T#uqoN&nV`NTmm&kUx zd};WN0-hdy>Y|X-<35NhG0)`M(LoZc41K(nbQ9^uRQs<(g7~NDFv3xEsZ7~XJN<4Z zm(BwXSWmt{E$(v< zbm)~q$MjELqnPjCLOzVSR5bCt6BwY^^x!xJJd}nIr#CP`boV(qcrYb<0_Fm zv1Dv?(K!6j(SHLUsjy+XEov06ap!N{-P^5`!6dyOc}iBP2MM7ppLhZ)8wtZg_KG z#K1!do-elV<>B2viFsp4G%tAPaiy0CAI_Y!D1icPU;y?NrWYm7Sk} zEr&HwH6p7~pA3fB_mgJcIi{FOhnXzUIT`?wS68$b-L*9t>lr-ZWvC`)h;x6nRH)WdC?ofBQFlv(?=T$9|-{S+=L+{Yc}3PYbEPp>)soYS>JJZ3RxB}s|yKQvG6BXWWC=oPoBOk+*TP~z!I8Mu8lP>0UC9$LO<&G-1_!5&mF zEZinPak8%7lD=?r)J?}nNA`axy6$MU-ZvhC*jr0&qH5M^Dhu63J^!5rZwt7GTjmgVVR_3Xkd^il{yJSl~4D%5uOyTX%4paVBT@W`(}PuxttkI7*l7x)5h> zuBLOxTHT_Suv)>I#M65IN2Y5LgsxN$Q)i0`N$Cm3bwTs6JH^CCq2L_4|2^5 zFdd60I|T4IDP>WUJzNmr@7x)wzC(RS+ekZXN6x+G$&KVE49WOvaeL& z$OYz!sS-|H9HCy@s!HO+hMyGm$vUvu4}xuvP~NW@SZ92e0poK~r=!Pzk9OQ7I>kC8 zBM%aGC-Y|qlTeS?Mi#jJ8JSQ}qEtHFp1}I^D4cewrg9oe#vi`&{GC5VAmR#k&OsjO z95I=bqDRG%NiVaJ5Ccyi1;6Pj;dxHPXhv5MKo{3n5$tZ66)MddWo=tVD}u2~6t zT}Q~?WyA=TF>!NFZDjen^FIJzuV*H}=4VSWvL}R`L!5H0w-X{NaFmDDzD*)nIIn+V zk*~B~b^iEbjlLN-l_lO0A8^7;cT?0;N}pP!<(OwZLs;i!?^mF>G%ogT`eLTxnPO5Jb{FGopj=x_B_c>LF3iz8A|Xgr=0SsJy0gqhG>A)d{PJH zA|v}n29$VTIjy)BI1zPDHH{Soihe)4h+)hD-ArT)x*6A6%jHD7#?zt3IRuDd2H!cD zk2~RSrT`|K9nCjb#!2Kl^%;TCu^2DD9fuE2{RMzzo;MAEwc|foclsk)xxX_iN#ED9 zq&I@b>-1^MhY!#*DQ6HS>#V)jW*~-90+s2R&rmiQPorb$TlmXTgs=UAre6)@Mz=PO ztoEJbn~QWO0#)%N^4a*+s&QZP+J%?#`#Bb^A35K#U8Zi?)Pg|IxIqV`Uhyc{&5a(2 z54<3zX{H7pzv(|J=~%5yw57TjO3-Jc6rf*61LpI2Ug}VuJ`7?pV|80K%F1O@VZI;ti-h4bxd>sPip^8 z>&-monlYLNPhCwaKxf1{V`>ixUYIlSGs-#u%x6rZWNGwbZDduflkqTh_iyKVIa&A4 zmsp@b>s|=|^SI)BEq?L7TudN4aI}R z2Fx{y#N$l6_nKP0HuaaEI92;%X?nQi@kt=XYhL#i=hdR^I1yNxYx~TDe1E=hMMoU1 z%1y#?^g|E(_QtN|s&Mxjw3h?#k%jKV*Z)e6aaI=p6vkeDl^aS_@Se_E;Jc_W+P=Ot zJjS}Gm}pYVewC%Nx>P;b-OZS3m4!4*Hj_>hez&bU2R#yQcZSGYfCuqN?~g# z4^faWM)2(7__+`gU82TPWn{Ki6)qz3=FQl89t8KOoa!(Pv|5pCo$FAHR=OtyB?zMf zm2xcNdKB1-_F2mnZC?~p^AF)vE2B_cvi)O(zw_^<3MpKbtrO0Oz+ANvx#%n2g><2` zM}s%1P#?-%47!5egU}s!-GjB7^3v?D3`L;t3Q@FoEko~k=G2dpagIq+MP7+wZAuKa z%;xQGS1Nm)#kOSqMN_NvXI)0jDcmb+MdjVn)9=-ig4!-HK)uP`P`cw+W7{t{OC%B7 z?_!OoMNRcpWEq9+?me0z$~E2OR-*{QV;%1qxB7`6BFgU?>~Ntj3#XU(9GY4 zn8=Rz>%R-a0&(cq)q5Y2x<^MLX3RY)n>HEe$97mu`9d5y4?%gJbVN!&6rnb6mto)6 zsgm9Od-;Jsr2-)UK1(r9D$w}N=h$Ol93DIlczJXP2)mu8s(KOEakQm!@ucNw({x2- zJ-iCrK}eW|wWX^Sv|fP|ViQD(o5R!LCUKmAz{V{+>`o1ad=wt=_l5oClql~`snv4( zli~%Reba!;%a}*K(Zn0pNZtpI#aGfZq9ueGN;pz|qoC_hui*0RlH?n#u8RV{eE-G` z8*hV*$=u4dHrIcfzwLC*X<(jPqD!{ddo=58T=jtJx2&oB8ZbjdhgURuYdcw5cqZr0 z7cBQS2HU|0IzQc3SD5t#&CIXq&I`d%8s|jk77A`VZ zU+1|1wl(bOhn(vHCrhK73C-O}V%Bs|t3}iR1I0(@q*mG7a%PH3e9Dc49N~Dy9>Q2e z1D~(So~lH@ekAlvJ+gF4M>sWweES;zMgFLrsIGQiYcGNS51_I!Wws4pL!h3@3=XP& zg289v&fGGh8@~TxuCZWgmZamwW|hpBwU@-c^GOL`JB&d`XgHdFBL^JDu@kpLXL>He zYQP_!)UtWa=96V-YQ!=THz{^#av~N{zyI-@(Z+*_fak{nSeGj9&;jlTuNr73RD`km zNokxT6nC_B-d<*$1@{ft#d+|lvrn5*6c65^s^}dPPyKuI0Vm*2T?hz%$%0OQ&M@sn z^Wh-^m~pxg#^1EpM!rx^@{EwtxX}&Lmw=WkSr#(+tBQCr`wtbbVN3_NzD2I;Y6zuX zn{rL_-c!ININEmxemOP@I6o@+IaRU%{Yzzw0YV--5QL9J8@Vq;y-b8unN)NSrhd(D zm6sTD5=2+g1y;f~x?CB>5R}%1@VGo`(~dP2^$8~u{V@DW1xjp!vFUv*5HC~x3_wHw z;fXuybY50WTX#YJ67wbRCghW}R`N(p(XH+GH|gO1+76h!acKDqCB8J{dbi2}MJQur z`oUSq=2Xs4H-K&eoE)zb9bRCo5ceFz&P1YKjTsh+7jBAl>_zYgU3ufCX16m+_Ls1cU zwEdSTDAA5^AUC4=A)hdhPBetb989NcE^Uw8+NafOY8=6byFI0OyL8;EgeiMLFX-4*5#g) z>^#fGpaCqpdd6y^(!6w0*f6g!)$?~$$cK;fCX>eWvxmdqJ>Ao5M^#EnWA|3HdjWNKxPd3Jky8e}r7xLJ`zpKfUvG}3Lg zeH+^kl>0<;l#L2FSwm*cGG^iP{<4lU_@}|d$930@nG(iG)ih6-Sr2944hj2KrII7h z)TD{`x*$*hFPZu*x$Q|KTxesOi;)bLg7_-0ssJ?*H=$-V5g}t*#!Nx3m+3+*QS*9| zPHykMcdvL>JR+!eDIueNa6M)o^B$Hti$Yjlh~H`Q?_W5sU5YQGe~~bu9v?7wk9WFG z=)SRdY*6g*bHe3^{Ke-lYa3>0Jew?;&nO?bhnr#We-kohFn2&3*2T9hN)6Glp3VB> zMpj~)Q>se!|{v}V+dy}z9{s%R9Vw#jhHezoasWCXkurCg+aUcRg4hMu`B+Q zFv|%<_$<2DCwgl|IcCw&%hGH5fwxo)U**&d?%eApcZQ2wd%qCgcZSHvztl`o4XovX zvgV`$_Ck0=XWP@fpDl+*I0v4Q=662QwFNhRlt*E1o!tdr)U zFUaE-g-4Q2lNJ|LqSN)=rv2FomAipsDtbqFH2t_;&7j^Axq`a|qHhbcFVqe@?nYDyfNBI0to0W#bHxEyqd0ly)3?2N{(&fy;Qz z7wa)7BWlbdy#MGdI1A%(fes>6bG|RTfslDSQOeu1erSyN;S!mJMW!td(?^{V%BWvH zzmDQ0TOLe`6;NL4$L*hP3fgAyf3B>(u__F?{2=Qxw&s*gsBE7!LL@%95l;9=jKHoP z1{(8<>;4!$R!q`%Lv+!FslJoA=Y;4Yx@SGjwoH1#bC_Vk^31AFk4P7>J$%`xPnq@#ovaih>8 zwv>Y3eM@gx5lSD%Uu|2IwlJqPS54iTDBHcNsWjm7A73_`(UtTO#++<$MK{2Dn?2T>W*|(eKxF<}j8@$FoZI9nAZhume*NvbYptQso9~R& zw2^3~^PUmUZDyqw*{t+`PmeZdWR8)F18hYP%h@zzsQ05r`Bn_J7%lwOFX*2ivy?lu za2-Zx<7=bfYQV6OunDE5sTwybG10fC16`oq**@oCD zJx*B)mh^v$BQdy|o{;l3gz*DNBDZrru#{=%Z~f4@#A36FN}(% z7sQ=Y1lHT?02dbrb6I*RVT}gE@VD#F*hcI@+vbybMsjL?{wnZ-^^f*K%IKf!0G^UU zjgp~uys?wFy4Y{K7B-yY>Rvd$=0wt&W@lUr z_FqSFhz2zAC;7C+1rX0Ws6M{O@B_YF z|I@G$!erSsdyOv{o+qHfxqcC%g=h@n0{I$JyY%PTG0h|GF|ALetnbiWsJVcO%_lW! zu)i&c+6Jx0zVJ)o5r=&Z@JJHUb7az1pAGw+_(ACn25G#}0a4lb=A`t(VwSb>c_(jA z!mW`P@R-gD%1o06*tJGqq6833$oCpiZWM5BQ@LPY2H+AIzgBrUZqEygfbM3 z;=%gjBLSJyiVh`xD$TZ@Q}eq1N6X+*$X!cex94XtF5bco6T6$4uAW|G(5Ti37nfS{ zrat2zJcbHK&zbla6^4HJn#8+zPLg2ao%-~cm%(q|KPpNMf?ZE{4miw$_& zfeUCWpe*{!r^`T86T=-osx|&|Y(<;$_D>h(eoPHc=XPaAtBQ_}D7OqjF`uh7S*; z-#WX=(@eT*v8r|BFx1lt>S;0e@hg?Ew}ic`bb1}X9>rzyzezfW${$o$epP^}eXQY( z4{jC23gdvI7vbAHMb9*jGhe`m`7$0t&{X|4Zz^xX?mwwT@q9i`GUP2$!RRjaXx4~T zdox}BsEjzfrkmFO%P^3@`A4Q!nA@$%H6f$Z@o=k=`29Q8nof2~%XJi$lw4(pe7;k3 zX6>01U++QNw(+Ix@25KyUM4X$=Nj3k-v2gf7o>iwt>1GryD-|z!Ga}T5Ne}}) zBj5~4&KNzzOlWDgzF0xmf$R-m-^TAj;i&uc#(Q4E4rqw5*F`YW(7eHB<2^%|C>I^O z{+cU~DF0Ax#~(!v-nMZ@s!*Pbs7s>PJFR2>{Pg&K)G!aJxby$TcQOf5gUu^UcR2p! zztT4Wpw2>l2@p0sWgIi?w_ca^BjKF>5J50OEb1Wh{BfR9W0- zM*D;tfHTt!s2!sZKsSq+>t&KXkbNi@SQY;*Wf2R;iavk$VAgmQrbzc(=tfQ~0FNw2 zd)t|fk-u=>=piP1iPZWb`uhb!BpL(;-6=G}O*m^HfNSZ*x5Z9q{pTT0UQIu?8T7>? zD+SUDa_`z&=#^5$8mU71Az15^!arY;^R49vcXuN`Eq>`A%pC8N4eV}@+W9#MZE&lak zl*1<*abK;)3gyV`F&^~$W2qt(iX$0)M<7*a51&e2cb%~GFC_0`C%|}d_GHtBMc?oR zSx+}JR(L6$v94B@w&;8<&Taqdm&2Ic);jCG^h2Ar7ujRiQQUWxRpFP6sg5dGm_%i2 zo%mXk+Fgb56xsE60F~MuiwcjlQr^UeQTa1MyWvGm&IM9AzpTJaBWJWK4pb`nyxyH{ zS9ctE*Vb8$h57SMKYsNpXtWEAKsCg8Ioz@ggm`ANG#^{TS6|krfSp)cQu!3ujwcRm z--%1)@C{B?R2W+dP<<0ZcvOtPs!W9zADk0K+sxx1_%5xxg>74934#j>?nFOeg7Iz& zGY#61rWqHzkpmGr=|SO~lkw2Q1csp~Xml^DuWZv=OYM1UnKgHx{A{UsMHEX(%{p5N z*QRc_UWP%-1jH4q$BG&Bc;JZ~@^wN;#Dd83ar$tzg18R9xpk+b*;JD#jTvA}EEBRf z_*{2!AnxMq5~o?Z^^KxtLqLPNf?m$#L&7B%Mm?R7OG~A#HW3k}CV1|eejfxN^}aV2 zG*B<{MhQ!m-%=+K!JO;vJw$)vLbAJZBpSjig+vQrQn_Z+YerP^ zO=oZM&J7K6l!Eu@xwkL5aOX!;eS(~>@zy9KZ6#a&Dml8*?%tCllHl~Qs*&yL2!cOo zlA?y!S=(X0M+ljGV*)JR&m6Whhk0ca6SfCV_m6?+6_OW=Bl3U&5?C~oj^@;jr=!~a2bUA@oZtV!F+1wY?>wL1O z@JnJo`N2jlNSC=P4r$w-p_~(rZ$?w!%&^W%cXE49boJ%3q;R5lyN)6&DP|vl43LDz z(xh`T-j^6FlUm{#GZ-e`L-Zs91jg|JqZF=}9{@`z)ko1JB@A!4ctfA*V8-5BaGlAM z6t>19#zgaWeZxDBA_3VYg!xgYjBPn(=|4OdM4O>dSar?>@ya*D1X#@6Gm1Kltl+u8MLz9=KJ^WA;(9POM-?pAKh*iN3C? zOPDB5m-QCZ($8PP+p)6uHW2h`Ve`+-)5p5HCV_Rv86CQ+RnSzc>Q0gDP0V!fzW;@#~5cIT(+{KeBjb=g47WFEKb}cV=<@QoS!d)AvC1&1%rw(DcWf`q z6Y;|TjyC|AOM@cf_d_!h;J;mCF&9B4xUzR|xsI9OSCJe`for+fI{+hNtv|Ix65s^T zejPuF$|HZoF~;-LiTGB(r{N2%7pEaRvz`DgpeN%RBQdATtY)~kU83KSX+Z+6#G@1V zRhS_73Ez|v6JsXe=4|`r;mgwLQXfy+@$(u))lV_8XO~9Dm`WcsVnKhy7i-r z4&+S27#AN3fQjh49?mKQ4&s3C83e1%ytgroXp@$YBPs3psyO^^1L3w7S6!Q_broO% zk6>}SXoujkA5$A(HoBZHhS)eVMb6XBRxkq&LnS8@(`?xKO}#bOT*6P0zgtmdV^Yh< z{#~oKfP2fpmf70%|OheEybpwvAn7$2YB8UpgbiKLKasRjEPn z@cp1a5e4rp+}MW`v)5wasVKG4#eWh+)=pmCocBUbVv?E)wSK&&UmGo*y1kyiF>JyE z!IN;y9?Te;*O){~GnT(HH5L?dyA$*K(FcxZg@^B~mWpT#z{naw10led zdp%{B^hAushS4^h@OO94Phu|R*d(1#cIsoV{Q8Tf5&&`gG5do0t?jWheXUB$*Lo|{ zPmQ|7wx2y#cy@i7!NX6=eKcP59>;h|-OJ&qjklobUrCZwg+P-Awrl9Ex6>R*?EJ~r zVjihTFb~__&&l9lq3_DX>`D77L(sdMB43T%mi@JjjNw7EyUMHf4zr)b zIwmKw&V?hiGOF%rJ)#zPQ$uAGgj=ojD&z(8>z=rSnYHlH*C7T*Y6vRMc$qNa%X0(Q zI)c<~$RhQQoBc(?La&+)c&^BJ<5wP@9raa92-Bi1l8Uihq!!H7g*>7I?#}AzKk$)$ zDjA%gT#2+RB;~UWiBSi=&FTRB5vK+n@D*8%#g8M-hk6qeTS7OuymfCc!^^pOIkvuF zu5`pBW^-H&HM{J4+imY>rxnulgk>0p z>geOOAx_~ZAU-Akno7p#OcAeVVWq4H*F3pp=Yg@Sh}PQU-syO&+OqmQROPR*UQfnv zwA+@+G55gy^X2#8Nu6HX_Z#YD+PsuT3<5p!RyyLzuD7=7c7$ri*YUU|3>9^3=`VQK zyrHQ~*4VSLW&6*p2=LW}G5U4yvs2Ek-*l1hQ`{{@I9f_@%?wSdx{Faq*gpLNUT2;f zhapH->gnab&D-jcK-}@x`r>a+WdvwPv7Ki&=6Ug-E?KiwoC_(;gzfW-%K&qUck#+RDdZ6B-;` z>CoPno)-9p_gy^uzfH|`Pl5FJFJEh_IYY25r@|Fhg_o3Ik2oYIaY~!p?fLiTC4MPh z?*>bG)|r(ay(cn5m{sa-X$c3)l0+O+v^4-coKU$#srf<>!G+I&A*7V;(rESNJ76aQ)zk>eCUr7MCyR2UY@@T z2Q!)dHM9M|`G(x)M(F_iuUnp)!TVbD;{LU)B$-L&W3Gv*a}W3rCDzHIbm=g~%jgKA z*>FG!a1@6u;9hO&UCym$dAmi53%8y;sSsVvrJL4EyS5=IB>ca zRuvuzZ|J+Zh4T;*I;%-86?^i?VqT6`9fqugQ@*R4UCb=$*}Jousn?Wof2xLWJGjG zi*)WAo6eiPN7V?_`qW-9VuC#cYDLAv0B1WvFAT(UP!KIjy};V`7Z@(>l~KjD447u! z)-Ss%sbjGdfr}8i7hWTO;vrWt@QMdv<6rxraX6^!l}A0#L)bG;ds7y%+_~AfmgH7p zPJzAti(q?pcW^>B4i=I2jP)}*r~?*`))gMPpZ$$xzTo~;8JRc(%}NDjsFN6+#A`VQ z%XNQWKPZmo`?!VG{l+AR9cRk^q&<7gnlG8Yz~w49rjmuzu!Fo5lfmLwqCUL+3XV)* z1`-L)c6SE)(~FrDx5FE11dBg;8Du(8H$954Rz}H`;xqg5Rqvm704NkE7}<`uN503( zvScUoHJUb*?!O36$h35W*ui!NFE+ah;6vvBo8RakB%K9emNK zz-aUvX(~2@kTDJ@)=&4ORH) zmVcJE3V=3hwYgV!)Ca*VJi3BaM@&;Qett?J%i*svBgt@G6C?SlbLRGk0F?*;swOS-{fY4)%n zK<1N{MO)BIg88ZVn2R~Ph#v<@r&Fd&es?=y0!nHj-&K|GF>GIf9LGyxPpCwZpP*JbfTu?=AmvC53LtFPA2tvl;!}L16^_ zv2TB<>ux%s`W&V#_9Yjr!MUCXkBGi!)vX5&-hTJBgZs0;O2*D?U=_jMKdP)in1_1S zDMViJv#(%Q;QpT{jo)V7s?xs-sH79e?pZz@*tcypde)o)(<7e5^*WL==TYI4-ofuzad?dFP$62w#aar zCShgt1G|vGoDkr-ZcsnhY~VG zkG9=VS`^-?e3PAIs{H^apJ2Qp)C{2ahad^R@~8{YE5toBzEhM+qc29zza{3BtdJ&> zE<{hM1-Pr?OwzwR%B6N06^2aMxMJF71`9^7>_w|}4GbrAT9y~Cqs$w<7QX12Q3Ke> z=@_XOu}`y*UArsXrCr+>vo#yP&gPMFx)XD29)EN)ettXab71&572LqYzjuc>D=p?Z z1=BoA>37uPv--x`8mVlU#%J8Mi}BfU+2)s0tFFYr(+y@>4l!!7m7iU@bZ8O+u2wBp zC)%k=Y&m~dQC(gcbeu;PQ_CyMROuf;5);fV*n{(7wojulGlPG@t;~A$+BdXRN@j1K z9al9Jfz8D|sN)Q>$djNiGQ(NHAmv?U;E&w^Xpu{N?at>+s{=s6MW7%vk03XOvV~cfS zZ=4Ch7@PA`jlpES`KKu|JF-i(kbob0|a3E zRxxHPPHJtKCIn&gKR};Ofl0d5eNLH?L*47%+o(57V9gTataS7%3Edvj5+Q*B^4|@z zJmB?<448yo7ndqa2?oz?O!DWFiHSVY^rqo)i1S!ntYvA*VDaLB>D)9`nsEX&J?2q{nzT(Sd%Az;$u;c3 zJkJD<0(1K-&5f$slM<~CkMxU}M<0*3Uk0%yoRYZwsjV;Ov#d52=~eJIX_5a3W#m7N zYw)v=Y*mjYZ@awr+|N^x`Qcvg`p<@C1k^{E|19|vLH3euR02=jdS++9BJ3W1fIlNL z<$Lj_WQ|hzE&4OT6mQ$6#E&Pe(&X-ZXKCYDK|T9-*-0qP>*R^`XHQ?>kFdL8rfX&m zKpQ`5lXK$fzMGJ6tx+b=zNnh`dGd5n_(%{D3fZT{^Pdwz-mNk`Z*fv>!L?#9d2YH? zkGBvGVI-dW)xXp6>}krH9X>nNy~Mk``t2I1OJB0iO+yYV{KX_ENmD>#2{z*IohQb+ z?OmK5OuE0)Sa0`72Tif|rr)r&r`F#zieW$F8dJU^iIMSiVq*pOFVmwwn7wvrB>{{o zSv!*jE{y}6Se}@s2LN^$f{?c} zXjAu-oi$96fT0WzNeXzIC}GUGY%qM2i$W0F;TYKi`E50#*6#>Y1a|U{_pq|G|J&5n zQ`F7~g>3p9<+18q)o;F-ck5dtMksTH@We1fTw76b^XvBTJB7laR|{CZue^Hr zI}0wfdk(;}qbV1p`f9IwJpq~#0}I!-Wju}3h<8@fVSy~;AuHJl=~o}bP$kpNdZ zSGqEgdH29yEaJ)8J|pGi&xrby`HxM7$-0yIjIR_oyTz?q2)pWzW_fa74>wx-n@jkc zA90D<01vbN!foPXpl6ro{!hGU6P`u-0S@8V=A?$)hp1W)2sM@;S1GRQzaMLh=ANBO zkLhMX>XRgB^QAqL`BH~Z+KOXAq~jR=#;tULH91c{JE4ODi7KL?X#PTeGn0E&rDU~K zu;~$V4IpgjNslTeb1gOx+d-0KhKVzy2H8Pb32}tVrwAUyFLekmK#3@3Lu^@wHA*Kt zuB4B@Su@WxOmeH$oTh|T#w4p&Di`2-c6?AhV$&fRzUI-4iDQ?LeD!7(ak^ur5DZ>W%B9CSzOgGPYwKVQAjB{@1&Yl}gF^vBBWSkkk9mT21u$>IK zguqyB`TfuHdESDSDm1rJ%rPyuG`w@z|28=FhA%2N##J|zrRiPRv66PWod4vBmOUYi zZf6x`;lcZA5YeVuV}15tx>YYD&7{9s1Csd*wqMNi7PUQ$((5M2YS{syF9n_&X^Ui} z7YFJf-z!GLe6ru;&(aoV6IWQ0!Rg^}H3AZ);DHlG%R!GHZyU0NzQutpXP;6dWVho! z+@A^w&LMQd;@ZDPwedK6cz=tP8x#3-d^_;5CvbeL1o{-lJ{^|*_rdb2vPn7n&;Z$WfM+dvIpou9dv^H4h4|P0BYhOf=M4~c-HNfaJpsNJ*urb z5=nf>(BiG2H=FGUg3&ZS z=wi|MIZh$DX;~->zN%1|6a_fsC>n>1lh8Zy3>BnAGd;nqt=7d+g4Sb(fSVsS!7o8JP$uT;akysV{2%j>|RDh z6qS#qRe>9ea~(}nq4XZ1X5$Q?+9v%E-0t?|L7h#q=j(*?kU9l|pU-_wCK1KPI+_H9 zodL*2*hL0@?j`3dHXr|#*$2}cVcYQ)7)jln62&*taZ-zL)67lfdo|vik(0=m!r3Zd z{uyNT{p-&r!wX<#{4whXLaxgSFXY6ICG1350?L*yG_O8=OVXEWH{AJqEE-4p7{r;uba=c`^pCL3K~?6i#+VozqXEtw z%7EfzEIM|ylhfyDce+ns{F$h74}P^g-6!zAzYz^KVfvlD?v3sOnnl%fHSifss8&;} zUx141;OuP6x?1>-cqdnX{}!)7pv4J;}!EM{$EJm4w?LP@Z?(ILg4EZkBOq%Y1qdq9&OhxnVc;E*>6a47}L4FWqCCJC5Qa zrXi$h&?=&|0Mn@ZMK?7>iM4)DhMFRLtNg-9)ubEnc#UbM`rKdF;Z4s)aPkEUbA|8d z#AHzVb3!9@m@xD^z?HqsR@|&KG{x&xZmbLRY%{t4X>BV4r_!vqo@Rg|2>cs6n4&^y z?~^w9{+)-oKfUD~ykvuTp8#NtWQAWvO*iL85rUld$6+KdoKIH~wH8>~dX7YRIb1a~7R}A3Ccl zeo0$e#|(dr<8@3cf(7U$@WO}q3c-fQk%^DFC|<45slQ|%vdKDUVb%r0)vlBj@0bo? z4^FqzEyn%7yI}VF{E%l|P#@9VZYYsH_yvGA00a9=Un-QP zmhaf@{hJk5-L^o!haFq=UiwhZvRD)%5!cIxB+!H~E{K!}tI+?9hD|Msq zy7WN_(@AMoAQr|*559fNAYeMtIAV`i^$bo|Wi+b3IO%LGlNT zb5!)rdJs9G~k1_fMLt$W`n1J&ze)~#_W zL$K#O>N0_@*iIns5%a^A%#y=hAo4YYo(=P|jnXexb{LFWZvRG#k*+?8b1hLDN80#6 zgWqI>qYt$K&XK`&yxr7{XW%RF*`@_mBQ=UvSH@-8W9j{!v1O8d7Q6gNEazTXAVh;1z$@ZB5}cuQ8&(X2tvGM)Id66wSM9dvE7hIl=BExG%vk zNEoF>blG06=7_GZEUkqf#qb`92Lu60J~iXY@|s$o)DG6K^hUM0k`6zl=&H)A-_2y( z+6&}br|c(XfN)Fb+9!uGsgLB59*}Bso_1RF^ z+UVE2SKp2=@Lb8MLEDyJUU-*0RlGc(Hv1{()om^vCG^49>^J#07K&#LjoH%Ex_f~j zR78PY+r7cMyG6CBTU)V`(|X;3pkfc4Re+&jX;n%#$2Q)md)@cDwvT_sD8S=S_;&Yf z#P(6mV<*Sy>M@ofCRz~T6izzoth2Nef!lHdFHBPNSN+n(+C zr#-=}!pys4%3FT13mlwva2{bTEyLd26OMoA@ZhTaAx!AE7rRyQWaw92%PlVv@4(fb zdVftP4+_F6X!l#f%)_^>wysG1T!nnQ-LBgX5#oAlu?2*&bwd4ZMNIW8=eS>%VQkrZW67906rR4tlMdFm1=?F}rOjc9T z(NLz8X$Gqk!T$VXkrx}1nlGjqjnwsin37bTDYNd2J6H=2(lIIS`;u#pqFrM;4*^Iy zIB&Q|NdcJ65U<+iKqY?#vD*>W#>Rk5!PK{qODGGD^pB4k(f66Iu|`Bz6jgwo+v91Z z&i$3Vy-aT;(dgOeyxbJHS`KWtp#SC>QYW)E@BlwJCse*hI!5@1139rf^Of<% zZK_Q{Zz@Db;dO_6qKvw!9(@A#vJ2Q8c)J_=cOeZ&?vy!$6Jh2Q*=P zN#*nWlm7u6X6`t+N75hQU~ZG78a~`94UV?9)_5JliF2XDL6GtEv{0rX^!xdtxexa+ zUGs4tbT?Rd$MF6XYu9PLZf(Xx6M@T7=c^CV9kf!sYT~R_Z8VGnv0*gDgpvUQW{YPI zQ9k}3K;b#Pw%0qPr6>wcC#@5mJoCSU44=$3&%`2BiyH5)h;v6(bm z9fc&`n-Yc}kc=gtb|N|1kRQExT3a43+6PEXRTbU6)PC&xvxA@OWHVJb$tHbIxeJ^< z#WS*>`nhOi-~J0?B9PAce;l2MBh~-^#jm|Ll5pFVb-R zGowws>TfSJ(yH^-C&dV37;pFHpe5DfgbNKHm#C|!^+5j!lKWe47l_1=$TFhNVghzG zHAXCH??le5naDrd=%%tUZ@~vkR2>_^l@&!Gc5hT0Aa_Y+|kqA*JSovY)y z{&lDoH=4KlbNqgEXdM>7AY|*u$jcbFl5xn%_Z`DptV$muvik- z9M|dNe&!Nr4h44Ip`P?i+Pe5Vgr$nUUtN-CyX3ca(1{Jo*kR-i%Ov4{pvV+-q1R#R z?^|vXa|@UjgFHi!oZIP_IihB0yH|ZNFx_%;N z2%T#6qA9{XXW)!rK#NKQgohLKJTAUY)Cp$wu_ypr#&-*WvSjQAev&;KM6MSVJ(F!; zs1VosM08}^cW#6Rl)!(Xg**1s4eu)xMrG@eF`C#^>i&!CB%-0feiRRM9|Qf74{!tt2R>DaN)W4~+scP?Rl zp7FgFyLuka$={<*aBuSlt)8|h)>)1{IySg0tCgLMu2M}5C zIpDu8Hs`e5)W@WvQtJje&c3i!c%CLuxvc)5Fq4PY82J3pADWU2Sfc0=5Gz}UHS|MH z^rJHm+|-~O57Lc6^YlwA94`1%%B>2?(9pw-0pcckf9>R3Ag!Dz*_aeHj(oN8 zHvhmrL4RnapcLi)W+LO{X_aPqyqJ4y@|Ou?iyu{`6>sl3EM-0Mz)Jd&;s~E?u2vmI zG#fja-0>Pz?zEDjchf>JU=1_+r7*rt+u<4DStD95ocTgAL{HI!Vv0Ww|Nl^4xn{yF zzfF9tQb~b2rs+fT=dI59|HNhqzpia$8zHWIfIBa1d+%>l?C?n zwy5k6HezJzU;`Tbhsynv0}najqFfFAtuTPIvXz335v( z7(HR`Aj$gqp+SiTgv75VdJ#r!vCIDl;<#laHP&u@ON|<_i{DTjhenFrNc#u+@raeY zc|POOFvzK{%VpSzf`$H2dy1eYE8ReE^U zbsA8MoH0k5$895kPd7=hhr7U#g@)GuBn7V+v;cl{99G$ZxTjr&GYC_CL*)i=3bjg> z;{!fC;8q6Mhxdg(j}DZq+(YF3$}#FfTY>s#&0BUhT4HB{YhLk}lvZJl-1UJ*3D8VVJiKv93-#0HaRUvvUxBL8y!ieS+bwA4=jJ!ER3EBY#Lo{w8kpbU+ zPrSO)$hzGUO9F@0W*JQJ!RCiNRAC{HKS!B4g35A!& z(8f!AlV4q`YPhN>)Yym|d4I{lN31w4y1S;*u{Yp12N_*EciD9@X56Ixqcw=-3!MRV z%LbsTX*E$4TLk(??gz{b43G-@>vBA3J@#Xv1Y6~X!Q&Bv^y&h)wTZanNCQKYkA`Le zNB>Nvi}TF9+dP4|0FNyFPp~IDRpkNM7d}+ssV5=28uG^Ma_OFRE2Ksv2v2W?1i|pCrE)CnV3}1r2Eqgv&{O#-vk&gcWFNoD2zP=7m>@J6M6GjaryXS@d9ex=aRX?-8l>eRU!`QqY}knrfOEB( zr%Jf?TV1|E)S2!dNO_De*G=hNljINUw9>d7F?`w6O^w9iIH?_c)bv}`mCylNFF+X; z&Y7rk4T{#;V*rQ|*CKKq9E6wYxu29Awz~SyY_3)WKAfxyWJs7J{rNMt0`e!Mhi8m= zVOQG2_B2mu7)tnHAst)uyFi6-lc5W$(we?4Km{wA|3aqo&|`EwN^sX1wjB4 z%<`eAjn5T}cEjuT&QXE~ud6qIRi}6C!Rkm#2s4J=wd{h-9dReq($>!EJ?S(%_C?nJfI<&d8ssm-k&h zezHgPplWnt z&NQK(z=4|k5#UJRU5_~ZxStAXxG3>7?L2@{q>)VntHUjUC z_nAeObe#fBTL0Q!otSixR3@oBy^TuWic_;$I9W~!Dh^Kl2Re)!_`BX&gW^~H+9!0$ zIPuA6_3+ajU`}G~C^O+-^dz7};8B{Ym#e^9@oR*9e*UQI>UUK7)EQ0RQ->~#Hfk7l z5q8&5`F)>xu`kv2(xtwgugc5wlbI3g%c=G)Uq58TJ+V>R>RTd%PNU6jriR*@tHqb; zDl5|k#bmh*@leS5$B!qqevTuZjuJUJ>WPVYD^eb6a|BV=V=Z$#D}`4BrwU}w3Y$Sa zN0R=duSRa~)p@dj}$;`O(aZ{7*z1NSI@lq9~H3-?b12x7x5c8!0dq1Gv#z=m`{3ceg{U&NS=oo7RI3ujiugwkpEzje|qFq>^ zYa6`<#?w^E@bxEGI|7E-&d`V)!>| zzC~<*aN>J{3`xY8%!tK^rY`vOA5f$GLKYi&h;ubE?$@qoWU(>T|C-B93lQDmSnZ5~qZ+}>rIOB)d%Bi;353sg2eE)jG zbBJqY6(d#sQ^zqdw)x2Jri$5$Nx7gcnHlf_iraW4SX=#DklIwDtmiEpgL7G~gGp_`KT zF<)_rm+mLI?b*6{p34{M=-3>AC-P5i{Pm3PfKS{KB`ualW#YKJcMI2`ve5JIgrkGstBcf}!O^AZ zav)%X%huktJ}9$@){gXWXmQ4do+Hg!dGmi^ACO^B$Q6vD7zU4y24R!dF8EN96+mZS zW@FUxj7xZ|1QOQPR_h0J)f3}|JM3V74jMsHnd$wVx=y%=Q5f(KURrbUvd7&{x$7-Y z1HJeI_p4ve|8nP4Z%78=H|*kj@be0}rkc+UBGg1qjVg!CeCbuz=~iJ??o=D-FfKvTcCF)_bQ}lGP1F+5i;K zH!r+5!nW>t5_~C+kybOzt%~?BO_%onwBqWuUKd@KJIBS*rnbj(Da;~fANY>IEXFO+&xYcE3Pz7)QqD9w1sY;?0qHQ33Fm$r z*~%OXarzTV2cgC87}!T&s_^{Au#SOVgr8CZ0uC*2O6{I=e%v^edD zn!-!`fI~uNaETtNJ*!)yTKH2y--2|tTDNZT3GAXkM&Wi$N*POwXp@t9i`j1fYZf{I zZD9#vt%a8+%lQlsB%IR<rf>W@OU(#8#83)Jcaknn&FQT>?j`k;tA4U5+38=5Lx=tC8va3Ad zN!%iWr$OUKTbH^s_YUao_U!a9BEI={VTT}5sYg4?|3JQp2ez^{bs7a74c8SE4@pIv zMpP)yt&mp&pWJ5q%?}-3$gr{)cj2dj1#_0_!e<#4nWf48f1qEHKLn>#d~I{`^Dk6> z5b&QKGRZ1`RZm|HT=Bwu0^%2R*#fy{-~Q8qOCr*m)jgOQ>G)S7J8i*$(c z{z3Vn@J&sbFE;HqI-KlBY#5q@znfpPpN}hZm$NGb#Hs;GPLTS1?!L6-K(rwf+#mDp=5rlu9LyNzagT+oFu}U2@e=iE?=&Y&QILV@o97CGd{e5Xe zD}Pr$rqIZo&&$vB)Z;PZbVz!t@qtT%H>VO&C10fyCNcB?rxg}9nGL-n;?OaeNiPCMA~2fUE7W} zzCPB^0AAN95sW;ehvbv?cE=={Xyb&9r0k7w28-Q6M+ETMiD)&pi{Wt)8A53;zG~q5 zE|xzikv4RfKpqqDXWpJQ+673Jd0d4F22Vc+8wgwOba6&}P;sZs1!(uO_C=Y0(&KjX zhTAc%8JMzlWac-k(`3)bgzDuAnRM5v2{89DX&ER3BK22Ajd(9wfGvEmlglTm%>bhT zT>b`fnQ1GmRJbrWMM#uYsH7LhbkFK8a~J-zjWCi;Z!$AU{`;0$_e z4))XuV(7MG={~1N^2ch%Upb2&wB@2VU(Meg3(+-Srd7Qd=DK#xnA?^#L`B(_idEj~ z3lCm@Kbd=+bMpr(!ca;I@7w92&)Qdo7UAd0N5^tgbNpHPiD|zI7um#ROPcn6<^*|0 z8yT%t4vz_uGTPI%|AAmn)7DAmRi)NsyxTaozFqoR`f4ZEK(hh&!aGZW^&zu1@E@cU zoVZgfCg0T4m8;ZnsHJthImW90E_~FgmRiw_>0I6RrlOhvi=UJzy>OIPGE#|GA&{^C z@DMOpZnT_5SBoPq{&Y6rWRiL9ic#;Vn*U1ZG#gS)`ACXz@LmrvT z3?dZ(JG7m3hjq0`nzq@1odXpn68R!8H@4a)=Pv={cK|G;SBt5#jN53|`vKS@WuoSi zSCwry171StlGkxzTzj%v@)Ez>hEvGVN#_sl?IkMr*)G(!7Si9|nKCom62vt!xr7mt zdZlJ0I+;BZ&LP2nO2K&VWqlq^D;IFI;c8{&88Kft30}?t6DQ5%@I!l>1YTFgW*_kA z`2)8tz?Qp$&C^rrNW+Lt2K@cIJ{qg9x|AZIBc~vLJOG``(K0uRe{ElM=9UO0m04YJ zWwMFtq-SU``f0B!)X=#Y#ns(EKrmCd6yerw=Evyd&e1;~4&eW8Yt+=wWlIrT*2ne- z?yMO6KJ6^Yrx&`aY%q|JoU=0$bPy$+`bAv8;+94Hc&q%Np~U_!I`iEHjh+0r2l5`fF;-SoC9ldg}a3E`(^vP3;+?-a;GK(J~Of5vO`gX+1N zpqk>HZF8f{ zGKQN?yt&Q!*whKc%F*J*=fVu@Qyg{e=XVTmHoXeWVNNuZ_$A5UEg1P=AI~7FQr(h%-~1+PX?-YdM>1Y&{}=rx!BBR+WYi-hPwz-p{VJ zOh36*j=N#tf(AZO8Na}(?tAroiq2-y3#dQXrKyfH`Fpul{as#7NowM>4(&y@>0$L4 zLt(@V88B#Z|5!MEzWx54#}x6sr9Hf`emB-p2 zeBSXOBV5;>iA}P(P6uvjuuIY+Xu>THCk&?$8T}IzzJ#-zN-rJ^&6`~JdGQ3*H&a&9(ZrCTo0-3 zAdUDV!=7dD*=D7Ex1d*wIQa$RyCrx3Bx{O~cO)q>Z4lqGyYXZE)FM5sGS$wa5CV4T9f$6 zvQDP<=E$28p8IbedDxzBX>fJICxfrc7`OkOH0EWEHH1VZIjj!6zIL0XA;t9(FM1df zD(j|^hoA$Vn6v>1k`yTJsB!%B=+=|*VdFQKVT(_7xVGH2DwbF6Pbo^{<)6k`H8 zVR1!cd0pBZbmoXoCkq6-QIxA88fi1k2-mNzWDg9d7(MNxhB8X@g?m-#8d(N0p5~s& zN(Fbj#Li=Xo(oF%uu``%WVGV}m^9Y|dddUppMNs{jv!UC+&}akY3XFnm2vljjp8eP3O_;mYr0zh;za>fktF?+1kYkMS>&zpkJ44XCD3Ul zxj4sYdi}sQPB6Apo2bc2rL$xls}gVhCBaihtZTnzZ;>)4FNLMyCa1&yOw3PNrEhpx z-R&koA|q752s^RKoIS+u$x|O=>fD}3R#R@Z5Cz`3YzPlYOa0oEnsBZJ%nK8VwDBBJ z%P?CI#V=h%Tn)?OR$?~@)s(jW4`hPlprdo{LK*`C!yjSAiBj3Y_?tdQ9h4NR5b)zz zCI*Q!^#?|3vqoA`T!6s$$}Wv#h-nVNA24DY^tWprR@eGVp>TW0W`7iShv568G#?=I z#vnAz?hmjUN)_p4vdfcIJ4D~ot(V)0N`pOSjwutm^h;<48vO2tp5+I`RVp(F=1k1y z1Recwl@w%;9!{uJW!%&CsHzef>d9m(;?*?t}`HhCOTC z`8YCCY?!+`{l3>E6G83tpuJE^^`WcM0khedlR;{P-Uc`LosK3C#GC1HX68ZA*zix( z0pp;VeLlC^3FfwuLKpQVD2edkl$*&wOo4u~50@c(a~)QsT}1?;k1!cm*U*d$CB}UodK`C-h`s7CS>Sovy@@h3I}5Mu%>G z@h6D}5qH-SA4z@Aw>Z5|&JYg%rE zPO>n9Xn@=cIB2H&2YOxl50pgtOEdtWWf}RnbcS28LK*Zo-#u>^yoiYCh{GDGku>>8 z+X&$Ey%oG%u=Jq7bztBi$%Y#9_kG|~-FT{G z^P>boSXQ|<=cTqLgFigjLxdJ24a7Iw;B2~UPj2*ke z@JP0tHs-yDCGpdO$l<2)-Jf#4O0X$galggbZSVtE^%5NI^DP{O+0)Z5N% z##y0^qldnGQ-e{5HWp(Qv)tB zQ1e}8b^cVhEI!{`Q7eM~K()a}gdf$2HBk;DSaxjwl|&_R(RAqn{sB>3crbU{Gv8w^ zJ2YaQ=X0*J)gauCmR!vgdgsBa_m5qbU__1($ru5o6%!qNsd0*{rM9*Nyi}#_kkd?^ zQ^mz!K2+P_gs5-Wp_=eQWFuWjS^IoxnCyR#Jf8(VGg0(gQBJtvU#GR1ntE*`KOP8+ zBg28bsG;F%*~72aJ+gIoDU7YYAD225Gp_AHxUl-}<0WdRLcRV`W;FtdCGC!@UbWSg zl_5~cd3^mwaK-8Esy{mAq1->rS)FPp95Fd{xr? zZ%jmC0eC1_B(iRO-3Ri?4kJolKc1Pd7`tC12VuElB-bCAW#ND}V-RxuAlGmO zV|j;W`m162nsBw+uhxeUO0nrc(>5fn6_k$$B4vTwA^7)Su3be>Oy(R_OIThrU4x`^ zqT1}bL|0qf`m{G%+BdJ6SGr$&81kluDg_Po(y-RjjX|-OmA*5J9P;V7Il-%;u^T$7 z`0cMr^Y2UQ=37(CjP4E)K9Oy#vE@fq%ls`vS%TaM?7(3Ickmy}Z|k`=xvTZFQfmJN zzY0lle^^TAs(|<$gE|dm_=&wY#ZF)O0AL_M9Wd8xmd{Sgg-?R(=0pQ&PDdYf%& z$S87lC9Oq+8+K_24)gl09%uPtd`xiQ*1i_C@Jl__M+Fa?ERF8mf2gF(+IUCQ2F>?m zxJM8KJ9y-CG4@jqfn7_Srq`p(ra_Q0x)|2~?*B%PtEMTtHuMPEokrZeue~7WQ5u8= zx){u@6wUcrT3luE)Jg`(!70){8E~%GF9*M9-%-U!#$D_{d*cHR_>HsMX4rImGj32KMe z!!{=?^15%le>VflJR=%_DNU+&f7phMY{16()TMh2=SW*NNek9ut0IhO45grg(ik0s?*_K=k7FFaJ8 z{&o2%cm|3xR3*1wcj9|s<*Dmjm|F!&H~UdS*!*^-X1lrel@V2k9p~5dVl^9%2`=E; zi}F_y`po20?Q1*Uqm&)GQtevHxMKiR8gyigeVF`8_lT8I5geL@uH8-ccwAl_<_^h} z$T{gGf1_^f>t9Igm!*G!3e_f!6#D-Ii+|h8dxFi!O$IzD!IqDN;cy!(Z#o=8};WLY|;@U zaItTDznhyczB_nT)L|m}rp1{&2udY1K=>$e_wOd#c&d7)#xlo1snb%B`^rXl$NeEr zT~+EphIC;0<*;tI1Lw&R&8HI!#|)K3NIOo_&RUB_3#%V2+qWuSz*+A~;gE#*B+nPM zBiNkyx;1XW_8iMZDu6Cjp(n$#m?&!yJ{WKTqmcH7E$=@H>-TaQ1-om1rz8)IJcts` z{8fJ|h6UkXs%O`qGDLNi6gNNs9A11d_d@+y7+V`d*|>{&C9Bx8bS5<*(VRD_5V1>! zt;8xGKhn%_a8P4su93TYbMF!mB?GqpS;WZXvRAP9d!B@dPpv#auxIM2eo|rL zSB?$XB7Slzdm#J$U{6U~!`w**@)PD*G$@qN3UNMHTh~2#g!mbLDus`H9f{0RhDhcn zp5)!dfX|VfHFUAdrt~N8I*~SmZKAn++|x}6F$zYbz(`_n%BradzIzCE<|v?s?zkpYDTx-nwycuKol;t5+q92z0TqD2v5@?{>oo33Wnbc_stZ zBK-|T4%b-&ZRmg98gh5zXDBI7yi22~@R(d!|BN%`SyYpne8x$n(ID2yZ)wb_G*pAe znapmEOGQ9VI`f_VYZqR&I5l01X|DiJGg|TFV6ieOP{J5cn9jTYt|Ob2V`!OLle%r;vVy8% zU@Zo8DmE-K-Ce#S0|V|uiqn_N2Pso+Wl2bs>0Yr)yV$EaUn~>AMcr7M&I1=dHOW1l zuH=mM%#7* zEBB4r$bJjzmLKuZx8vtmr36}X+1Pv8{r9OYEEFJz@i7PyeTf~U_A{AjM6(U}a5j4( zuXW2lUl(K3HBOTqba0G(Nf)t?&fxU)&SGWfS0ri8Q?@6pE)RbWk!*24_G^Pt0&;$W zbyA(pnHK|2+|Eu6nOwgt-WghFHG7Az81Fu_ms+6wT{EuL-Dc+BGwMDhRs6as-%454 zz)TKD=SOi&7nAM<)7ITw)x~}?ZxNn9KiRcHj5C?ttyNKw|C-*OyT_12gis37u{|_# z-GF4fsR>uM+Df|(`Mr5GSp^mh{Rh%3hS<0y6cy~~@b~{cS7#}p70=T4c5{{RkS~db zjwm2alzWF4QJDl`QbiBf;wxrU>jUlzC>bNf>71qT!!N^#beNG(+V5ZQt)7k(OFt8< ze^>kZA|IY0g+Cw|8ouubrS~qq)KZ>!St15`MX$CJ`G=-Y{WxP%u1pGw!*8M$C5*XIwBXAD#bI<(me)-om*z&vajMq6S1C5V5nX}$#&HB7pQmK z*@{C~&;j|rYe6810Ula$`$r!BDX7LBBY>AzvAQCw&e8;Gb<9wM3WP!ke;{rJ*-)2hEKQrjZ|xCn;d8a&w+C-qeeY@+E)>U0g7f#vf}#TsiH0-OzZjYjO)A-* z>8Q;1bX8!kh*(p!0G15@KvBNP2XDEJ7jzz1&IX&K}tM-SUdI3Kx!F?vk0HV!C#;R87K@1eQtJtH{Q&?)g2XLmj=+-;?pn4^Ix*cWgoAaf!rwb| zP?KCy*qwHn>t-NfJopsX;a&B&#x?MFuTuPC5V_5lEvjd^l)jQ4aV&&v*k-+_9lAfJ z=FLa{?aI02QvBmh+_Q`oiqQ+0xEc*gM5=6`XnsfFjUhC9q z^rLONNqyC8-*2rlCp3|If~0NrOcNvZIvu6)e;{wB%rR+obnH#OC*!HpJa_KP+l(fR ztb5wRBK0qTq^rG?#!OKiQC!7zNkKL&aL0)w#a0AK45zC#_spW^`F;}jBT9%zmNVr!0 z#;R5J%V(Uq7J_`Rfto%aZ{GwD8_8$oj3SI}!rhkHb{+;h_kX9tUwLUDM4SPM>ASjyh`#n+*$+8;3|MrV=;tFn!XpMH07|()qD8{gewo! z7j_awc!Tb_ruxkj>KqWQZsI7(tRty^DuGrTYDZ`Rr0{d~GDF0F)a}k95xek3_c9nM zH*k6+NXSMbS5S4eM@CSPyijT;8c5`Me!;CiRxmmh@u6eL`i@Z69j9blU&?Ej4E`1J z`k9_ac-)_FE|o7PvS(izyb=u*;8!~%+(XK27D&q&$*l6d=Z@v8>5U~md;9L2o}&&d zYrpq2W2}Go+sM}2fW@iZvxLWE6HaafcHKI}DGCpNX>X<;Cp~KfkbJhM@89*SjeVE; ztfIC&3ua~T9V&$U#FmjPHj{NTabn-N?Go(<@>28P?c<|->-o5^TAL|-yDon5 zV7mcYR8(h;@-1jP4;mGo5`S~YgmuRss;QnAvJ*gDSa@6NI;fl9$gX+3PJg#UHV5I} znEU8HtQ3DZ{jdggJy7eI==2^}YHT>7%0y=*g^O~^F%SaDhcvPlR1jB3hp~JRZUNXO z&Fj8n)SP_E+^n3^{7N#pt-=7dq!XL;pGT<_+*1p=(=-E)n0KbZeH1sdZ=Ho&bdrmV zlht(~l}Yr>s+0Z#Q|XuXO!koC_wD5pJSAVEKB4fM*O(Mf^!sZF;E|uHio@U8Zs4@F z7>sRJizcetb!q;yIZ{X;@_3-b!@!>~ zSH^75zEgTt;F0tw>xwF={~G4gojW3ax_!|hoPP6pW7}?ibL0gw zLiRdi^1h8}4-=ib8(asv+g`{VSQuStB*=}l75^=3IYcvb9V$edL))P7j(#kLRBYYY zA^oJ#!a$GON}NFoM6M9;ze}yaxO);XZf~1=2?pRKLgxpq2`iC54DV(ARoAOT%-Qb@ z=D*=NVx@3cCR2s5avRV?H;E>Fus7i(V5iB*tPnzmJxwqbt+iu{{ZWun!d}zXK*B_p zJk`VUF3RV^f~6<{Z80N;!06~y^wy^7y;3iMb+5S>4BbP1?7j+Hd)v$4(reEv^EviQ zik4#BWVPCWg9XmsZ8wxCLb-6%rhIjO|I`N(9s6L<=#;cTlsGwXw!W_8YQHVaANrT* z$R1zN zofvi+Xr6E^WD*ZHKZlb=$uVOIHg5Tif!dna7rU~zMMd3#vZsR`kh{pv{`Ab>ouGWu zTeP{B;U}TcU*lYHhFv&+gb?cy7%ElV-NgWS+K!zA4o4!-LrXs{ff~DF2%qv}MqAk0 z!{B#sgUk%VfhN)Ietv%Fz`!~Sj8n8bdPPJeN;6zZ^B;&y3ho=LErEf*bi$MZ1$WTR zFZ%RcD=)9Rjm|(sXakY7(O8^0fLWWE$eXN=1pZ)p<0)J3x_NoB#cz39oF-+Ub^)j3 z?c4{=J4*;Hh51wyR%#_EfD`Buh;LWX-(4!rHHZvsj!9qoau!>M77?==CHrqR#e-6TKTn#u@=kOR&Y zCw<;Gz4Pek`Q@B>N7WT=$yJlnHu*B?hNUBv6mR|BK${_kM6mp0{H`wA&(1SsRU3ju zPK2Nd_lu-j| zaDbO`TTy!~jOxc*$b3d;U>`fSOg_stL@!8QQ{H=ji%#(dR*lwuk0a)AV}IgfUZdsj zS6doCWcl8?=_`KL23F6lr_WD=pGjQ(c|`?4)UL@X)ifA@iF446)EeFz9G1#uXrE_w zqS*dvlGd46XU?>dZ?c{tEpO9cXhnIvC~*yjC+@Eg_)Mk$Qt7^kns^Hd?Wc2$c}%T1 zu(l#0U|y*Mss!z$H@k%bC9qK;JLtQ+#tXiP~VNA%YK*c-sOPuUiaLt3w|98i;!Ns~xVF8_t%} z>fpmKoYZef1@1DhxTnQ!5$k@a3XEX?SkiQ}DpjFI^ ze$XU8a~jCtRExc21wkG26XuFclyxspGAjR#6FhN0XB+%I0#IgOElCfcp-j+j8(^VT znxi8Bg%dAk5Oj8OTRxBD^m8CAewM-PDzJ?&p}x!n3J%Rp(6Ubej;PY*Uo*0Nyj-z* ztdvCiq27v(6Qb-_!sY~O7!CS>fqv?yzrxMBv!TNxvJ>j+hMA8dR=LpNZV zM8GJ<&D1sypt?GD)^9sl+GGwzHxyGfg?WASy7W$M?Z+5uWsywOv5T%3=wsS5bmRox z9`?%87tW>uWz$9Pqp_MMiBJn2D1(rU_n1xdZxV5R?BNGUY#>sr{}P5#kgxbEZSPxr z>*no{OQ&>N6{*ZAkXYO=K$={Z(OpWGO3fmIXm>Sl z=5bZ(2lSIZY!m-#O7kCgXB+Yygo8X4A|0ceW)$IaqL&jYuKp+|8KR~%6+I)xoso$j zDymCGy=#6HOM{b?cqRlXdQ-4ekzFtlnvwr5-AFETBBnae==|3r;yXjjgVwM2Y_t_C znSyHho1Y`quHt;6odY)NNm~Gx{5;POtyzpV%}0S3GLH9&C*;!6DMY(=__nYEQt94@ z#spevDKvv1P!_##7*FMfxFadV-_IMcxR~=83x8vXi`lc=t2m$K-hE3qAOQs`SGrYP zSa12w;MGn(7=0)jIJgXdC@auUG{~+`bTI4VW%Qxu+M7(U$Mh900?vbsQS2)Q8qRSs zTDL>Jxds098-=-I5$2-#M+0l!JgCJ)`GBF&HPqiLI;&nCS9ZGdquTMbIVhnH($?s* zY-v@FBw4Ka`0RKsc|G3)&7s!)m=ZXqEYurw%;6h7Ot%C!?PIuEYk6oZHn?P1adP1( zrfpxPqEAB{#lhDn;>HEJA4EuKMDG)HQ_tPARc&j5g_a4*ta1?g*U!E!jBx zuYTox1ZfqM+F(?@XS_%igK0)mPxPBFTefnDMttx$_FIsE9zZ&TPqNX<@E>vAE;haspHuui9gKl#= zRfV>%9?YG1TxG26*mgz2>A4%Yq{8Rz%4=N`F`D?IeCMJI(U zrE}m=GC2ZEbMFI{enx2}$U+QbWN#@}__oKH#xK(a>Ey4GBaJ)La~HWa(9NmbOnNtvt$ z$^gJEiumXFX=#sMlPBm_i-372yu!FF+QnvhF!^_|EyqV{nFmV^85zfv%Q;n%*_18` z-;kh-whc2nSr0z0mqUq%@Nmk@z$DK({(jLX{6Gs^na+GSw^3X2S>V(YrjIPK2FA~$ zI3iP`a-qZVAO#1BL!yRVf(}*O5TfE z#zy7;Sa0xIdi<~mB!ewu&>!93*zv!zvofEg+R&E0B}3cJY4AmjUnKG)`}j$!63E$H zD_}Ic_8u)Ht3&b29R~@IU+MYWg@PQb|KrP;j@K&<7qzIG4 zed7A$%Sk0MTLymu1Oo=50_uWRZFJ@}@q+60ec}HTLA@OA^h!vI)+bk%<5WaV)YE!i z_Wvau17)ZYHi3oK9~?Xm800%ZQ5b7zoJsUb`qxYxJB(sFsZnC56B|iR2kr%3W0PvZ z+vqyZ_leH@S$Plksynbj$HDuzAuou-u|57baN!q@#;-CbY@JP9>Z{H1C%BIp88&=r zm)FH&Kj|9Jb20L!zy8DZ*6enQHaE96JIiy{j8Rmu0K@od4;40)fWv>Zr;T=JE0Nf^ zct}1wxpPh5S?MttIy(c~C09`830rE9bA~se&`vT;FmhBTxr94M?@CTkMqdz4ja)V( z8!d!}AN>qH6yhG=&S<8iqPJ-d$S0wK7mI`ACDV!oCTf(b9{!XW0Eo3RmG%fBu4azj zS`K`h5G*xY>a&{Gkyg~$8kXwfJgG?kbo># z>^yZiuy}~Xi?EUfv|U<47{GgBhwIl&3&kW~dfzE=J`Y>xdF8?e99qKs?&Sq=MtSMGIXMWMQUSO%TzMdWzhBv9?|FxM4qW!~f!ak8KH8$FuvvJYEBP`Mjkx7$vtrOmhW6z=d=0|2L6%o1Ct-`9WOTJK7L-Z)~FXn z=JM07kZAsV>n{KOH)E?gqi%9G-`3GDE9=dMeyR)Fv;Vd&trr*yNsmghFaKa|>tLxN z4tYM(o2I}3{ktv`0I`$NwfLR3bk&+k8a$NihxIXI1=3iMgC*dDA5wOXAgZmEUw!sn zIXW;(Y>fSx0%*yQC1w)KA<(66CCv9FxEd8L8Bwy0^uPbMmU*O&e~&>^)p~3@GrwLC zPb^twtdOn1z@Ey2E{VgaBlH`IC){qOknx{uRG=65$uJuwDj z!IGv=auI?2d}3C>)IB@OPT_go{y%-5(bAknVWd*+QGys6=7wrY7w}ex)SBu__nF^H zdZ{(Ru60VWH#^(Vi6(E~Nta=bQLPotuk*L1>a9!7Qadqo!y#`zFS*tE$qc{M+fZ%N z|KqLbm{U~uh!Io$N}CX7H}c%8xY%oE>}dZ^MA`2Oih;nD6W;WFJp3j+pt|r6yeuoE zh#vQrdh(UFp6a+-Uns_tmI>#CvGh1*HZmSA|sy;9^>@tZOD2$bGYxQxM^^X_RmoZ z?eDiWF6{H0mtm{+Zom{Ju62Y>8Ww|&Zm^H0E3#7#_`<>Qx~P&v!`thfV(x zFgUCRk)RbVX1V7BBrE<|jfZL;fSWDl3}BEQZKu!9-v=5PQ&F$yTCy!g3=yI0vkc;Y ztmp##uYZLrV=TMay(;1x7%vf?ZA?RfBLjiRAmviB;gcLB4Y8)8{BC^4r54=4&rtnS zMfJKw$HCd_EX0$78`sn1r-2R9ihPz39kycg_pxZgq@lswqMi0Bp*mm3&FITaWYf~^ zZ_{l`Q{)s#x+1z@iIoCSbCPA%P@wP*J}%-o&&FslR_YxEJK_4p2{?<5mzvUiA`q1U zGwU}roI$o7CQrbx*|s=9Z)yI51C>#cN)g2LS^_cYa}Ma9wV7fahy0%(n-tG(xCK}S zcrAWuFJ-R02<9hpP@H6|(X&Wr{B4+-wQ`?}c~>4X_&P>PI&g@hxI*IIoQy##!-~_avIF8d zSCGvvr(0i$l#6NA3x8*p-^yak6O4h;)nBf`a8{p@^_-%;?=x2zq~zPW*;sCaFn*M$ zn>DlF?lfeYsIo}qgi#?9oG7lNA|E@b3TQoG@I-m24;soW$@oo84<$G_nqu0)kn_vp z25K21KkSe$rNum3gX!eHM|O8OXOsGrUf!}Pp3;8yUx8RM44%=|aoQQ0U86y*`X1p8%C z4J%nF;`O}_9|=mDE8I^T7r9@-^#=hlVd{PFjrfH{ect#Ulpzwyhvt7h7Zn*f%O4Od zDem0TvI8&+KBNa`XS|F|KHl1^T-?53Mi>~Xyz=KGGP)ZZ)Ab+7bZ;uU2?FGGZ6M3I zw%D6g7nKjoB8k{KS;v|$k1ex{Rtd%3Z0sYaM?d0832+!qKsb{Y?X8@6o=*rLLvCP? zjFR$`XSNS8_fxvjz#IMhk0is;w8ENouN4cTMi<5~!9FP3zwp92&g(;8U zHVv6FggEqc-Ik>2VCP30jwFfKH!6Xl6`qazjaAWlp)$vI9zb7gSezI?Asw4N8OKhp zWkN)NgsnSLNlp;?;z~>s7yCe3PSiVD73Q4IBN`NF+(Pw>N~^5+$@yDUpWeZcaq{*x zv9*PiE*U#C)^tj^Pg~#YDxcG~?eO`d6=f-r26ht*mUYb3|0^#>j+}W{=+ejxjdA;$aCd6%!+5EV3%{ z!sb~;rgKtB7P9m4$>s5@S5WKsNl-bG>d|h+!15%Hx(;C=Edin`)5K~`xw?Y+Q5Co* zy6+&M&44x5x_j)5a$iOmnfca6Kk3#eSY=u;%$)vkyOxma_)<1cgO5~w5qnHh3*+E4 z`I^m&+Fn3Uzr4+fMgTY{7qj*dlULkKqhm76m7*-qIdjPrbw>_Q%tg539(=*=D|&2M z`pV>X2|czoH^iLfZcpVMZ5t@w{93ZKVOI9!(0#*d-k-R0d~DA1p8Cz_D)Z0_WgIZx zRsD{xN_Hi2X^{ZreDWiIa;IswTfXBn({!x4GtBtKXg_Bq@#O>^nAV|~s9ls0dUQqR zA**#d22e!4PPs{GGJv;1Wda3HU@tI@t}xriF^`hl&#RcH%{*Z;(Cj?;5qBFB&#>@` zUl(xbe_^m%+?}8!a)q7z82}(QCd!B5pfaK^XpXxY*vc$M%{^>QTW$!Lw4!wsr3w|C z$k2Qb2;btcommo*9mbyv<3%J!uX~{zmHJP|^j{7F)vi<|&q z0mkpdw<@cS82Y&G2Nu0bdXLFduGKrJMUj$)I9TQfyPUQSe;r z+&Iz{_4G6!UCA?w$D~wrH>3x;n+%Cl6-+19gIEM>dm01GiZu5!L2%FI!CSe9)dm4?O`VsnLEGuLsmv`%$Czjxjm8l*5)`8heoo^>bdGR_v#Ep_=1 zA$ERb4caKq)6w5QvgcKjTO7>8t^Fut*zDC}sbTj8H20Mnp=`r=__gRQ&MXkr*Is&O zDv5zkH=fclk^GU)92?uhg#1%3B5eoB=$hXlFWkyy%eY&WEaI!>nDXTE9E_Qh z2zC4(NnnbxMj!v^x1v-P*uo7QZm(h;3vvJvfs75 zkV$m?i2cuD_Myn0d`*3`!$%A=?NNSa;__mZ1$k6ts;pdDSQ3(*s|)v&Ffabz+uxLv zB8n7>(9_&pX(Hm^_RbliG3xBq^OdCmRt`yf2kZV3BVMG3zjpA5h~Pgi7)q1E*l})d z(FN>Y5pBt8tKwBqyU<^vrpugtDu4XmlmiV`a2f<`GkOKjkGm$#`M|CWJ0r_QZWN77 z$y2OCMqDeHtmlqj`FIQ-U0w#Snt4%O%w=fzIY$3jsLWKA{nKVt8XGVUbE~G@cv;4! zHdd_V3%mXggsl|OeMTfvlR^8t`WxuCE#FGa-~qt;l;PK@E#i@k3*&}0=xDIt^~x}B zf?vG|a@6GVTEX&M5jO08ovr6)2>&4(7Ii4(OJrd-tKhPy$%szb&@5*+>NmPG^oQQS zxWr^+WAHf_dWissLf3t=q`ALR*B+|Gz}yg>O@#oP7sZ2^b z^}~3-MYjHEJ)jM!$TU*t6P%&c6eV^7C|1|u!jD6&qRw?1MN%}BPFHCF5)-$G?(Ny% zcBQWwlFU80V|^7UdBRU7AN_WvNggIS!dFw(KrRgHMoacPBZ`i79~bNW4KaF*q{)I` z1*zT_1&`S1eqiMoVmGgx`#I!)x?xpaofaajydufjg`O^p(vY(*_h6q}trbE^Vh~$6 zHC?ZCCD$zdbI1yB127yh$iExg9xFU<{rmC5yYHdJ+6I;$Y=D+Guk`v{ZWnqjTEqDgz0_Bcj+|65iq9-D~idbR?NE&!b%X zY>}d{1HxHQ3S-ErSsCJI@_;1 zPEf=kkox&SVK%=1sr$-p0=76?TkjpnikgPzwtrmIwL*TVQi+*H^78$ATD3;RCqZZX z#LZ%v=%xc8w@tLgs8n1S^+PqMw2-yp0@z-GOh|ga&Sls^SU;m zSe`46=U2GqH>pUgf68_`TMkIw$8HncRdL+64^4^JY&5Br*^qJJ$CKX^2Cz=EVV&VU3^UrO|Ko2?UH`jt~P73rGPp?=Yt_UT4A@Ol8zLeg~&-tSdQkNcp#8H#%{IAF>IJ=9Ulj z#f_N4!5+%Z&Tn&H63< z-ApYFIaux)7r3(PBj0N>I+|#f#f}O+`i?q#)fF|l%dIZ4)bc}>Rw}8F;O-cTE0+6* zwSH$hK_4Tf%&B8!+A3H3>ao zCY+UK9lnFJ3AEivY7Q}M71>D0Dr*g|n}9c3RMDIH;BU-HAeT-H4HNJ}N`wJj_#16R zBekXMVajwCv8G&C=fj1$hfDvq^i9nVKm2>iQX@ExtJ%FYH(VzIQj939{?TnIb4~vo zf25U@(WJ^VLLtZ#>LZCSI`-}Fju5Fkc}SYFeaelX`R2V!uMq)7^c!DwEF76YdVjN1 zajMcskyG5fag+2sKMqYLS^Ho$rK>i=8IHXx9>US-e5eXzp2jg=loa3Acse6Xx$!1@ zW;If(5fXW^N!PmLl59CWD#CZX>moa4>u}{BScGZAW9Lp1I+GVfZW7vcX}y>pis+~d z^vl3=wz5(Feb`SHY*B*3^)0$0TSUfswc6W@zN}JtOCyBs@Ou?a0y8Ue19W*a8oE?5 zd}qM`PTqrjl`p^$F5jisU+c|4t=c7U>v(S^0J`x#k6#S75a!IjLHl)#%$md}c*6UAP=n$HNczR&}7)6L6xp;dBv+Vr8y6mr?t?XNZ&yGKJ%iGwAH9n9`(KCC_PWC-DQn3#Frl13TBU*p|8nj8} zRS;fBbz$8@wKhW<+9} z&cE{(?)-S(T(UPbh?WB+v|_an=DZW15q>&VZR^N70$yMzxmjZ4&)B`EoOyPRz?D6@ zO)W7xPNyjdyvqZ*CiFt9rC~H|L#tXjfT=LQIKx~N%G|(E$V|;%P8t*W9zdA{D#Z5K z4<7;HHa^9cw&?|n(F}r^A7#0c>Xx#xe59E-_Njv26FS7&!=UJ7Z8enb8jK5Fje8=U zf#n?bB0+zS2ofFErtabi+jPoc|0A6B){HMH#7)7nD1BK|)zW$C(~TFh5tXAQu$0Lu z;>SrcvNhKou`999Il@h4lG2{2W2atf`;fGr9LbcxczkrzzD_SG8bF-o$3iT9(_EaV zw%go#SHG{x04JwN^vlwzpfv;7ih*lZnab33NN*u}qCd!vfyI@H^5H5+lMi5ttrwwW z0aQS111tFZ)QE+)ZPkYzyc^E26k`o?z|KfwaMcVM!4hc&mE2-9345fu!c<(bD<@W4 zip`dq?d;#`e9`bQSTx#F2mA&LU0jR_1=r=bWseyOkMS}+WV8C2&&Ih>9I+qXGLU3b zF=)N^O*z?)(Qti=hE-W~e1j48&hRrVu=t&@C__64S@iw|SM*a~!tA4kSmTFn-D-{E zo2|zczCpdcym{fB?qz){KZWT65NJCNv~W(w6MPPQAE)j+BD0~s+{p7yH?LvjtIM&CmZZcxumjw8gMQRMEjDc}A zS0cp{Uj-O5SRdRA1Y}`X7njxK+W+!khZ0fCV~ri9`3iiFa7<_`Rb)yf3!OCLrlIP)RHuyM26N zn~>4Ca`&v9yxR$%vl*Uu7DEL~y^NID`RKydvBSd@SRVOb|<%RDVt9n;fx!@(H%a{;G zQlSv%;tE||qrSj96oL>pildDVw!L<}s{+R`#@U`GuEY3~jnF$gZ5Naz>9caz^yteI zCdZjd;+3<3KUVhar2$hG+?T8%Fj>eUz}b0N(-s)ll@Wm^Osjd<+;R$s!bolUC9(g3 z?f?RVnp=bECtq(%CXv^oqQxySmnUqE;uWgxX4^FK98XxExY8E;4=H}WrYeac+MHnY z&-l_jZCu?slD%arEcn|ZW3A`n>CyT#)u7DShZ5q82b)ZW|ABN-30Z0kTF(mn?!`%v z82G_5v~h&VF@eH^&y}g5NC9V(9Rk~pW<}hB->*Pp1`7(Qb-K)ZqhvbNbT?Nk8jno~&xW@p6Yhs$FHX1cVr;*Kex{uXDD?r+X60YF{V5fd zEd7^;3=qi%x`qm}92R{;OJnCz-Hi5RCur8Cm;~a`ED5Lb+}GG|MbZ4FSOn=w+ihY8e5JP2G>i)2^m+cZ_Z2Xe+6eR9yHtb}Mf zl#|uUZ>uCWuSTxx3lqIzN=60bLDIV3)DYEqn1O+kSWLJ&i@O7pSPj5ju5bzkHhXGEyUC4qm6*c_@r~Amj)7FqKA)3 z1&pftjv`Ar&8B0MU-3xx!A!^+sMF!v!E3#Ek2cJl+6EpwuxWIyFGgZWI5Y@lu3(&q=`z@urdGJhXvg(tx-rW zH|ViskKodM(}b%lkjf?+PdiER9F)_L`3_K(8&CZ4V3XiHU%B{Q9!I* zV_A4WD9^?>FBLTL*Ndd@swFzv_D4-fo@NMiaWI3Tr|0pfo}5S2kt8yQX2v57?fsp1 zkx6}GyP9wW#!A=%DtEA#Nq7rLK4R6(f&~v)+TyT}-Nj;|1RN@yatSR50HC`0B!+Pm zjsD1hh?9E%+_H};3?M2V`ejTM$|{ZFCoJ$&BMXi5zS8;`PVjl#(Rq*q*qGRSh`i*S z%b|U9W5?x%X8niWRPDk&1{J^R%@J@>l-h}26&04SGrKo8;vMvAVp;Lm{fY`HQNIzX zRds1+5p**tDzfA4P*%1|%S69`afVw$HaB_od9rZ( z^fitc;|r(PUX3fYR%J8e(YnNZ%HGyA@zuE3d#*Wz=%E515-O_F)0$)|&HZE6fmqsW z|EV?Ic-rxTGV#dE-;94>8c9PYY1@Vjex&S0RHxCM5yfmTay`GnF4dA8_gjQCf3+kaOxaJh%aubL2a4Za&S-XoK9m(JHIX zAWB%2J>){=j2W6OVD4Mzc(YHCM+8;aBIa52gv`g)Z|CF*zg5V_t-zw}paPKH<^4B0 z$dw_@p6uz~s@gQM?#D$ghQNySGcsl3rukqEH{PEAszS zomwpR%S$}>dz3{5kbwVncIK%*l+at%&3?KgH{m$rD3F?&6k$|}mf zlX_38C(4W3yv5N!isL@aP>))K=R-l#O#gdkiez=xsl2NZhOkV0Y3$ud(Y|&fGZ4Lg zGbBZH_f3Qt<)B%NR8wt67Ij%O-y!s>=SfaNbq0fph0$ValO`0zy0u6-e$=P+IX4Cd=|%uYyT1(ONV`XGhpi>eRO*lIk;KpbE|;Bmfc;qhdjv zrtAzYruDxEQov0Q865_M9ZVWjc>Qi&B?SBjQc>(UT`f#g_^kGBFfK05&k(gGF%C=v#+|wY9-E#tVOfRZmrv30ZD$_3J&1-WWn) z^y4K5de>gWlE3XaZ4)P7{xW=o=85dVRZ{tCN9EL{gugw$16OR{_~??}N9Gck_4Ona zW*-#J;r{2>+5np0c?e2CU{nGXV8Su3@_kitlyT*=D@_-lOXH$9ezYvCLaqlmmbwwCiuygU+N6l@tYHc)e5RY3iSPn%T6(hv+>Lwd!sA$+SvsVBRlCpJe z7^#o-BO0F}DvDy%fELj_joQPK`QEMoS$v|A;XXTeC;_~Yq>Ka0v29FxmT>B5B>v%B zDI#zS7T3|lIgxVh7(oF>A>X(;xo*7>!=l82k3@?-VUsHx7`dsca%J&LjFz&*(4PXm zr*l?ZHK|aP-(wznAiS5!b-v`?AIt2_-qZCNHmm-OJdpPiHI4g#a08Zv-OK4LD9;K^ z*Dy*Rv4eYZXTXnB4)#b83-k*$T76!O!xTkF#ohA)zew9}OX&7>lB$0K?_r{&3OAK$ zn}#S&hq18Bpu?%QRjFn#0ssd20UPaIn*fxne)gF0<4t91$bhG|i5~y{S{$hb4iW8> zr=*x@3on5ZV#Z9vOE@84XS7IxDh%H zM^AkAjccAN*!4Q$0ci6Am|4LIN#k@D9C{@`scyRTOh8>_O)ThPa0-@ZBp71WP&kDK)>Zv{xxnm$!Jp6(g;r0Ue|H=w}j_~~3gjYAUy zvc&*9zpW{EPx3Fycb(H0c}cG6wz97&3jEcIH3Ict%k>`M>yU%fTA7yB}llfS@CX&OC+ zxIy#-Ma!81Zx?X(aiy1N=szZsA0}na-yi{(8d2_m#u(U~hpsn99G8#${BC7BBX8_| z;#uwPoJ!ogx=I{XNF|3wwf7mbTT}Agh%%x&nP0S;KHaf=L91>q(ihTdXlTsH2GVNi zd>LOvg4^c~kUH?KZT(?p^j$>2g;jTIwv^P-YOWlx0gqSLMWJR-+Shh(oe#eJsiXJd z&7ZOD$jeLUVx*XzD2`0g?(u?WC5Ulj=0Oz|t|>D4EO=(vJR#Hr6Ur_UQ_btU^@GdZ zyf9;MhpX zF7=XOa$CxygCfVqwOHt`-d8?YB!Cg-Ra84M$ob%@8?0V;K>4=x4K>?e67cq@e;-BB zHP%o3VdB98us^I(8}3srk3wKU|VQdE{-6#iYOry}CnOvq^G!!?(;NX|4UtdjKS6X0>voM?s^Qa&@t2f7Vpz@$CF_v#F)- z?7vJ_g?%L$t5?{+jlVx6Estm0;L@iXmD7HLFuXuG7Zb}x&PwgDqUS~xd!U9@eUbc# zm&01}*rG#5zvQ%WES zcn-2tD**4U+(c4mz5l?R=})gWgB8Jt-5d<_Zv8LiD)kZV@SK9K_vOj0d^=T6Qq){F zDB{B+@Y=lyqC7zc?P8a~BnyfRSs(9xs|7|R%oH`T=DmEG|A7ief1 ztjx-G&H17gdHsGm&{LR(-ULHqMdkve#3OzaD!ijgUf=&PO(nNz!H>o*S2K&*K8!7> zc;hhK<()pBjv1U=Z->||>(YS)(LCWQ;u)XZhu6!W*Mst06rs&K+*P4g)VgN0XeNI8WAljj-?g z@6y{*(2JLV1))Ml4;aKAQ_`ik?VJq38@*nH;o3JU({@4JH-0Nls0#Tx?<8p4JM+F? zqrg?hYt56*&PR26Rpjx=zJ}UmaDe(o zlrjg1c|t1&y*K$Q6=(NbutLJ%chNPNC!Du3Z=t9)0$=%Sf#J> zb5K|*Bu=)>k34K&Qv;)yp(vesy_-%FEl5GSlKri9RW`KuCQ{Z-Y$4R2kN99yyD2>b z+iv(rgiy(3D4<*D7J$QJe20SyXjY?Nz<81<|KTx^pr6+K{a zvfu2fpHC=up)d`%smInL%yPPJL-X7yyq@9xd+}8kwE=x5X+-2qAB9TGQ$G>+YeLy+Jm!)4NCuk4xx+D`8LwJ?w#V8B-!d}>n%+tTTfH* zP(%W6FLYl%cV;LnHgDkmaNiJqmR93oVVKJ;e?&^&OT`i728H{(MAezaw@uDGU~LEx z$H=X{vsBg!#tMw?J=9ZCisT44W&os3LISDSjoJEj16y8=H@Wddo1=?S5l)SF%W4C3 zuA2IKN1OS871NWF@j*{Bc*riXKvl6_5u%6El(l1;i}4E!|J_&>;c^C$aSS=VZh5QG znhsSfWB*0t0n>|qg@z@;;-a3?2AMEZVge{Uf-9T zw)22Rtn{mqd9&2X){ScUsE!)|85x5gr+nm?h!+ox7Ncp7qXb>BjXYEnvgcTxOhF4N z>J*klvXCL@4QbGPRZDOjm9eM;#r8`JBI>VTatbl&;;0+{se+L`IKyp9K-VZ~Ta5$!0n568{TBGDSs zBf7Xop>^*G=O|HP@yAD)rx3bOtY9g1jV7;DCz~@l0w_b_G5bSi#8cZtIvM42grXp| z9FH7gj}&k&F7_r_pRC;U$b~GVR{aq=*!o|CKzX^!^xbVp;&XG@r z6nP&qw!vN?gUEDjT!+IZuCDb4j<4nKGC6&b4Gm*1C%BJ!ldc5GnEV`nZ9q;Azm`=u zCiU7*Q`qG>;{zBzH8VqJCMatyInyFwp`-&sL+%&&gYL8Y`33Zb;hst*Yg})~6vaIE z1Frbp@u&XBVWx>=^nat#x|aR`n?;m5GwGKm#qx56WBN*t&!F;Cv0F8?=8`xHdfd_0 zvIf)K341vk_4B}s<4QXgrpf+tIZ$Tyw^wDP)B*LmyQjRz{L2uh z!uh|#_ewtZA{e-Ma=LA)OY$weyClFoXMiHG_&4#{MGh}DJ^Y$s)YRRCg+79m4MEA| z9L4+rk61sB9{VC>A)>Gvcp`a90Ad$&+f5{VYi&tZFl@l}4nJEeH9y!JGQ@C)GQQT5 z`odWB`Cc{ZwT?{*3d&+;$N54kqk=Z!{?%1+lUhtO4i$0o;YQFm&Dg8yu^DkyEn$&! zktP(&L*LV5Rr`7q3JJv8F_#|>cEK1PNn+kTfbUz4z(cX%(pIIXxJEi@1!k`@t8E`t@D)lU34_)}h0T)6M_(rA)m z@UuSml&U^w-g`6t1J&x$ftwG}H4h}?edH5oVnsB@2U#IPg&piof1aC7Ibl{f?9;^X z{@WyR?da22*48ux7YMokiMwak>!ME8`5&kfPyxT35xl1@MOb&#;tqfos`Zm+R=TMc z6uK79lsbY07kF+6RToKB6MLqKf+Wvrpqp?{8@bmWnS<$hq6SpJ5VWvPFn9^fUMV+U z8i?nK04TdBaVEAfT^^gr1(H0zYt15_aKXP0mi7zULv#r7vf*55J{L`MSfa3D`}#9l zN0%cg`-MLdkmG!CfBcKlybJf;Cn6rqAqOY^8@mqJ6X zsLtLPFDP^5>U@*j^O-JUSA-gm)F8rLD6+L!b`SrSJx=y$9bCj{Vz23ZNRFGK?%`-8L{Ev0U*y4 z`c5k(WK4n7XDWM85m)WIyj!vG1F~T8PA^=RA2~jr|Qg( zfHORA(Zpf_B-S)mk34h6{-eZ$-hRw@R``Jj#(_B8<^Goxvk@o)b969890-*lx1`Lv z$kYmOn=emN=sma!zmR|RFe73dH7Tym*fs)R(v)qR(>LQ2mpgus`-{M6h^k4Df8>Qo zev!i?@c2q<`oO)>TeVcWF!)zXHC8=G3oKF>n68N@oP6Kb7~`ZMN=5(hBG%>!#H|$_ zk9sV|^tVe?=h!@<*LbN_MEq>&6G0pKZ-S5Vsz#=#ybD#gRudz*Z>=Iu+!h0G}T(akpkk zaDK0MrOk8U0|9ng*zqYV%pr!^j344Hd`75da(SO09Z_;StWP8)HSK;@Tb3r`zRLTk zZjtM%(f~4_T@rHi96=DJ`BYnIQj#4y!R!(;1NvP)6nGVl*q93H;`3q?v1%p}PDB48y1J12qPB3Yne*8yQR)R< zQuE{4Y2oe89;zs9tYD**?mxpE+P41a`In4y1Lld*3OP~9IBlCfK3uh~1Wl1|PCy_Q zJ+@Ho#NEclDpd;x7O3Yu(R)*_)vdl_>kM_e_Z{|bB17pYV}w9|Lj^=OA#)tLGY_cC zY>)P^`#0TmHk&owcKeA6TE<&6Zaaj^wtD z36Ggmlwn0fWFroC{%wrZth;D91!Sht|0?UXgk&TAai0L{*LE(FZZ7k=lV32!GB8gI z--ooZn{-C3wZV#W#_jp0(l~o7v>Xdfgt-4Kg5Y_PU6|>Lt%9{-=GHYArj$@zkKoxc zpRj>)gb&o7o*f7DHE5epQ&u)E=9-RFya9%UVnb9i6r96InlZ297OQ6EUL8jArj3Gz z5(`E|A8d3^wdwRREm>^G6ScZTgEO&)@Jf{`NKl`gpl>rb(~}zc6xTVfz)y3)8Q8_r z@TG)-h{l(uL1e_&WI@#D9nrEd#$olHKj9+i-Xr3g{>27~-n|?;U_}LdK6m0HW3w1! za5yR>AaJKRwdSc&O;{zM_L5Exb~FcO|I=qOKa<7*3&7fQ*Wb^@7Vuq`S;)v7if1v%} zxAfobQf=y`^AzRckF_b_ACwLio5D*7Y=u_=KZkh&XV3S4_}kEJn)F^$F9ltDOA(fO zwaMXxQ@3}oQxZjP6`1x*%dFn3f%#aiFNAE|YqZCbib(CUVfWY1#WG-4nLebSRqsHU zW5R|HX1?6Ak4aISZ7o8@-!IG-X>u8{a415x2ULB1PS#a!kQJA)qAAje^SOSrsAveX zOpl6mF%KNEOy%Ojd^R+Pr6*>4tkw=u^w{M8dHGfB-iOL|t(aS1Q9`86DDJXAW;YCY zfIMHBYAG)#%UilA%I}dJ%;t2*nQLuBa&ax_g zEHd&e+i#3sy_pShLz~_BnNKEdbK=*cOM<2VPOoR@aX^M@$NjsZKjyL-1LIfgt~;wUyl1!^VVjtT#PptnhNYF`S<`CHoKP89e)#g@$C zx1ch9_;~q0P~H|Fh-3{)kqh3LS=QUM>3$g4;wh}(-}=Q*Ct)u7kA_?(jB8DoCirt> zHCrA_J7Pv03>9{)^&IRg{SYkXKCJKxn&e+JYVaovSaO*-?SCcz%KGt$250`>RWuA$T$%b)<7dnm!)VX1VZ{LUSS<_Fnsj9Q7yCPm z?Dbj_G(jesA6yCyzD|T4hL^k`RPpz?i@Z@|0WErMi)_^8aF4NgDY_h7ui`LGTiUuL zE4v{g*|8`DTAy`N*;3zJ-ITiPVa}nld`k?qd@i)_l6j_1=&#;t1NZN`)X22Ue_+(h z6um+@9&*j%v{a2hRKpNt&|YY(V%br^hcS%BkEaj81n9VdDFz1$`c{!Ta@2MiJPW+C zE8aLglwtV8Q#(4MYOXVwbmhMq*`e(7)>)fhG^AByabIrZ4_lmC7J~$?8M`T;hP!+T zxAI33Di8$Vc&g z!A=hN(JQ)iSb%DBO4}~f^O)>}4fYsEyevxDzeW^*Fh(7Q-`hE5zHzUQgx&tNe@24SsO;$O^Hp)du@6aOO{t#TOtK!|vznLH010Cv2=K_Z z1FRNy=WX5R+-Kf>gD*9d4vLOFiYf)-H9IQeLp^nFHJH#ZUf9#bf@6#5e*p1I=+kx1 zxZ2Djl8kUmBXPRkF(NW@2{)c!iWlJ1lDKcRBxBM9oFYQp)p?PGSVdWgwAZD$i}qU! z!`w2qXStlQ$~{e+&w^Sy;RxHK>fvHkY8-MtH1W7mQ722sXP#<=6Y=2km|rcQ;rrt! z@ShfDGJ(#!t5WATc5a%{8yIxp>)0aLQ5+ zpw_0Z;!q%t{*l zkcW!ax1#^TqA_Z>oAN@9GIUiaJ`J?z)(aB7hGk~XxE_(pWPfWhILg8bEHV*YHDl3R zGwa``#Yy_t;sc(4Lj0&9@3N}(D0xMC|2)_YdI4yZU8r$`kZgC)Fm7$%sB^U*-C0!= z>ONtemuvq=(OJed{kBn@9wj9xNXw8AkP;aTMt65ADIp*&Ou7_=jV@uMV{}MM%LoN& z1Qc-K2x*Y!|NNf!d_L^OcHQ@VopZj&i7SZf9DA_6P$-?`(}~gx|GXad*+8zLELG6G zT;QQPct^-_Pm4C>*6Fl}|KSotDrMf`$uX+Kla5qVZZe_5dsXF$)x)RU`W0S2v3HvN z@Q~xn0D^m?FpZ{(#0pvB^KIBVqADG&KckE_g4WFS{8wi9AyKk_t;%7 zpJz~(2=KYK^k$O8g0~N*Jf*Jf#`P>5smXDdr)T;M(*>6*3emd}VKOx#}bZCk{}%I|WOiZzbq& zWRfJ9%N{_^R%jAbej5kMm6@qSe(5lXlpnT9C!|98%l)UT?~l9s86 z10P4uHy9XG(BSmR2%Smpf$hj2fr)&l8W3uSu_TBe70pmuTvPA1>rQX=p{k!Of76}X|-(aHPQJE@{4Oqgez@HlfPns)^V!oR>wko@<0NnBI=U{EMIFfe|^c=}2NkJ;f z_Dn5h%N`;rN!YYS%Y4;69YRns@r&!LR}WtTF=YO=_X7%`)`& z(j)M;TQuZ^tl8#)(u2m2-X3CNnVhvjeOp~?r)L{9ESdtNCLujRR#~zy&RCYVNPZ_B zUniVMwM`b-m3eEDzqC2=9}={sfizqktPp*L=639iBnhmVB5@oWHJK{VKT!=-)7_MWHfqyk)%^SEu_d9 zW)*H|l4T#9b>tjoyV%s>O(tlrXoon91Ik}b_gtxgj@FR{g$3?>{e)ZjrO_Lq68gL< z$i&X~Si10uKTJv%GMr&_6Wik!@8WXQ)Ce6XR7ZH)xHFTTHWWs<0JTwn^7{|Nj5#!) z&!vhJ9tn6YIk+0@M<+XF!Y6biLZX7P8YUaJ-%HA$!K&4Nzg#f)7wqiH0OMdg7Xdpt zjZDt5(qs2*T+Z>8lA=olpmmezp}De~@ON5-g~qY1Q427m!D6=cux=SoEsJPgk{$Y( zi-_Lqb7x|tKJlB@6^Ac_%=$|u< z)DriT;$SaYjhTM2w5rpSI0;CDj&5Ym{0e(dX3-EX@1Vm8tpc_BGP`^9R2N*#Y5E4w z{Q8q26MThFnOAdzH6TO2!1^Ooa+ZIPSWod%L+nUm9}V~*(Wb$Vz#bW_#z1)~?CON( z@b8A%>oA|#+ea#fW^UVtj48To44Pa*dWKzL*#LDnJ+L<90(x2*#{cu9>0;~5 z?ggNl=5*lWWGZi&#^zb@>`-c4BK%WEK!ds-E%96N3ZM$324^ zEiBoPZ2SA?=Qoelhe5mZ_1{_Uf6sg=#w{C>oj=GScd_}e$vD(GPwZ&P$(aXoM&dWm zo{jifY?HxTP?w$_RVV2lgWrA*0?03N;xYdbbbU$g<+mdzhSlknt!T439<+_fYNsLj zt}hkb+-QlwLIuaEp@+b;MZ2My2p`$SIOQUi5Hohsi$z40FsNjN>k-=UL;dTg`l4=g zQwazY@aP@|jt?44El*~Xy3uIjrE-!ovhV$6yasoveXBg%G(^ck%zZ$?oJM9`#zLAc z#G8PR2g|dI-kF|aRuFtImKR3N5aO?0_J%3Zsg=bTmBKI7PbJs*i~bX7n|g|&$$tbI zBuy8PV_aRg)`uWULCUnmjn9X-?OTCtY#k98MF>ammidgRf)M%7Wax=1nB8&o`R<(^ zbv0@FZ?T8%ANOxRUqTJ1nW!Dzi0a2zgRZYn>~kFg-^WY$F6zV3N1KOoY8zw};$*(n z&?|f?f2dBdwrrA}!P3@si~^W7e!({+tS3t=iAlmyP(P*96@YskX-Xm%$^yX$I@z08 ztyI`K4}<<>JY(K%$Vq={);q#b`7&}irE@QMZHbE`#rD>!kAqiWkdS0GCQyH51)ZFiFz!aG@fJiVw zZnNIc?9abWn;cOyNIoUMUQO=SzhozM^9Jp|A>#vj2DO}0&mzOVt+Lul6T3&KLx!&} z&EmMM6zCG!qK9zTa+eQ`{Ms~`d7>i1*?@vSIex_QuR=vp(?Al2m{pf+I9qFjRFsBR zbELYd&eFdjay8cOv}o*2hu>YJH3=5VZLQ>PH=V9dU?b~=%8wHhkNLe{R>q31G6yl z48<2E+0wv@^kVDT$Qbh&1+K;rEh4Tws}5ps2m>UtF; zc%LzaT1uImG1U)WP%X?N=$PKxt)6&u34X{Edr~4oV;L_^EJsiBLA{A>KK8L``v)Nn z@;=Zc@eN1fs}Dnj8X2PugC47#fCKp9Db6gkN<1+-FDx|Zi?@{5Bb_GaE<6D0C?3wB z>dm0YjHU3Y;>{6A-t%HthrK@79C+b-85wJ6ve7EqcS~G0lTn-{29M^VBL)`u=S|&K zg*3m_a9vJ`M`F9*WAYXiU`|%-58KQ_J$m2wf&|x(hj;L8vvDTz^)$Yg5%>i_=4JY& z$H>HKb|kKjzn1Z6Tlp(Vdwb*GI!(gWF=kTCIgFpsO3xtbyXNBLmMeSr2ZN!#!Wx(= z2&AN;02~5kJ2-i$mW?QwBtjI>f{(U4YxZ8e-Ynr1tE@g`uxu$+1apKxfu6F3o&6in zmU^P|C41j>E1u=>ya|D3^qV7Rm`I6{_@0)d)sDXpPHh~P%DX48$w!O=L62|c-X4pG z>a5#20&4;_0)GX0f9m2bl^oV}R&YTf1HMEMTp zc3^|jW%S`_PssB-X5x;#zV{P}{3f11NTvhfQe)x|5_nLxEE!%*!z2r?SC-bt(e81GGJVGS*kCkT=|GG1MPF6n(1ukiI!?LQsC7 z@IlTjP`ORti1qThZJOqNI+|HUmf1oXN5W(w$PMSBGZ>HS&v z;!By5ct=DbNbpf1JY-a@zY{^ow{qPftg7`|ZD?xcxqcp}7lOyluEO%ehJ_1ORnkj? zGy#hWy1F|4KITPd@AmLJdn#$Kx6}>zZXS((3RdBTA%!8=We+(l6MA}N)WALP8qXou z^L?|DShmG--c?W>brT%vzrz7R)H|vgeoffaW@BFB%mPRQ_B=PNX$~+JV9l{3$9v-J zJjz1FW*^zx3z*@vR5i5?%za1rMaZScrD1i?DZ1-D?z$e8vc9GJt&8QNN5GXHj@_AZ zL^EH#^)J(MqeQT+BP60|HJ{%HakK4(9at~M>>%J)} zYx{0)&>Zo_R#lRwFyx)myYr0>Ua3pO5*ayTJ?IK_fC%tjP8IRRA{;Uygfwld$R75`E+3}JvqJ&p{1{b%7}y~X zKt#93-`wkPJJt3ad9yL17~|V6y&U0p%WnI~0!Jdi`Z1~37i2S9mSg0?;$q-%WH|ng zb;$9&Z2EB7KdIcns0!X9TTotY1fnx}eCLn~RDsRk$hJWIR}^ZT4r~Iq?7lJ^s)owea!-|@cU8GHe+O_CR}K(gt6Os<&2&Zc zZ>Me1`H&DP>bN6glk`cMfU4M%?FIN7xR_6iKpHFN;bJ50%#h+Sy0~V-@Tk#v7< z5eRkC_yV(zGwb|x*i$0BYU(m-qQaHpX`uT_g({6XocNuRdV`Vr;ZDum$4?&(ENfbG z1sByzI}E-UYmro?d{*}CgA4=BI;Q!&B_;`dax#y1XxFA?1{tedH(LEA-)`o=dfW6c zqu`?0*p-h@(vRVg8ZE215OS1vO8w44O8s}FiMTg$ShR^X@*wj0B-WY~on;P7tj%&U;bN6Bnu zJM~G$Qyv^82o`1r(}OXIHBa`k(`7C4u1;Ax5_K5|zQ&&dpG%h?UgaM_CVLkg8nG>5 z^=vxyMS=hfZO;3(h+09n3`!Jb+r+mdNApQ(_AZ(ada^>C!L^=Bemu2ZF0RcMs_^ zlkr)d`YSm{arkuUH$%_i%hGk{Rz6^r@OqJv&Mr0!DnT8DtB!E6Ec*LL&^5{IN4Y{j zUs9xJ+bIF84tg>-ch#uP9JwH7Kad!?KY=Q3THa*d4|4I#%P{SOVfUv51Z(!+MHMyP zZA(tfbCjoDDgXYd{#x0cROWq1@l!)99FvGsyU$fx1i&ywHuSOiOpR(j5^u$-512Qj6=Xxy*NZXhJ5e+q|7kuZ!+9f)1`EM)LJ^KwkD@e81 zjx6ZvHcZA^4zs=ubR()RJ#I8mFrH|iU^^N9_o`p(fwX)U%fK*(7CBK4KH%HBQ^nIB zOICS*#0Ueb$Jd3ssST7| zNPPj}E_HvVw{!PHMjJ?NJc*e>fz=2)+g#d6lW&!hyG(jy@5cigU_1&N}W?htVMw)A?%kuz6^J#pQl-)WOsxc z_C#8a;6bYcIGYSi<2VGCO*RHvcPORRso8CJ=};%2#^(J||odCL>BzZBi!aT;<#~Lmb zryOd;5GX-UCc*YzE8kw+O-bbb9@OP@r)-kR<<6+ssrLO>?e7tdtQC}dPCvLHe1Ho& zyspQOIGso3v zgV4W7_*TcLXj@oXZCA1y(t`*;rpMwZm5qAEN!b89J;l2JYyD~$z zTN<5&eY{B6us=?}IZBR1$vU+{#+!OLd@XGP1w(3l(k2^;BorZt+Z6N?DVN+VSY59K zogYtk(V7ZIK8)exAvpwGAOv3nGajF^r3P;qd5t(eB%<*S+R9*TmR5|cHsY}Tj`Tuk zJmZwtmkR=$+N_Jo2_Y;dWZ4@2VNtmvKO$l^h$bkx0I<3YHf(YiDVKT%D9V@raxdVhTwHa4!F1& zkJH|GD8g^|JMaYVila*SmCX}K6hZv@7*{%`K*Yd8L(7GNy?|khc?=POt9J(PfsVj8 z9fyxt|J9FcuCLNWt3M>wdJOKJ%3y5yk3e5|<6oF^KltEpZ7_xZ4BV6%zT=*(8u23y7bq@sI=W$yu|PnKoH*JNOBZ#Z+X(-R^h&rq z;$&HW8}PS6?rf}2G$laiz) zi((NmCGz!!DwQ)(?jNBX)bX;lXM1QAR02>~{*qH98xq{!Wk}d?x>>k|s2Xa=f91m7i`lJt$k1gYI57 zhMWXhNC6G>oCXsuzR;5c3bwV>HM1zRm-f27LNDxO6R9D~qUfu&PCE@7D<%95Q(KoF z?niUhX>OpHTZWtn8o;$M3f zJF`UL6p(AAIcKPd+S;Z5T<0BvBHZ*|xNs~%M0D&6ZHzND( zD)VAVFyHXbJ{Pk6aDMp$xUu9NC|+NpJ|@{GYYI88O#BVGxs(y@O4SSd$v|P}htg9x z+XQwQ^svDbYe{mhYyb{wr{20!mDW-RmdVo88rc!(nHEUO3e?9)9o}{Y=qZJy+^C!P zxavHqkqoMim{FL2UlNy>{OoJ_nd9*7?ew)w)exB#OgckD@ng^ysbs8~Xi5jr)05{L z{yZ;Z-M-1|1v9mJ3a)6?vPfadKqr_|X_Or78;%9QgsK+*5yZt~Ss)qeELiC2=!az7 z&I1=iYETK?Zx1_C8^@$x7sSWsmX5qCcAad|XyWoRCRuAq$Hx(L!!+LdJBVaWCgXb# za|!#n;>m(I>nvhKqyJW_Y}kJrc@E7DuEaNESMo~0pMUr0{DOU-D=C=TQ-J4TedeQt{^l-jPN^SXBjh!N zqKi}9)AL3d*XaU}^w0fUr{S+5cMKqG z5m3J~Imw*V)3?}0{)fNGikKU^xp0{qZFo-f<%H&p{g}wNyp&E5qWguCjzC;7$?cPn z&_h%fSW-Us_K&w31(p@iqVe-lz3rmy3}u4%F8hu4qk6IEJzzJ*AA8tFq7$L^JBX*) z)N@UZe_Ks+0G?y>mQFqG|H~=~jr$3f^0gEq!8}l4wC=EpMvi2^i&+uXGk8Dr=jeWv z82%JjSn{!W*mc+j(D%+yidbA5;>sERdTFK&fi6z0W(?K-4y6PNm_f2VNt|dT0P+%r zc@JEX1t11*072BBPANdsvAfhWNE#vZ1~?$XPtP`E+NPo(sCy+2li6Grknx@SU^k|U zU+_SjTYI%c*dGLdgYkSU$KRtRd`_Lhox#4IJU=xWqiT0} zBL+SS&(bWfsJ+y=SF^^}9DkQc3U>^3JU^V0cwzczUn_<>GXE>^IS;7bED~BWWJ<*h%;Z-7!M!AYW^y6;nrE3d6ub1Mtjro8vY@x?EVH3>3Yj5Fp=S^!l6M7q7j~U zK_tOA;^k$_hV_IM``VOf zEV^YF+YiXL%=Q9)?}FK%yVF+Yvq`n|%a7IGD5~>&&__oNaO;sD!Gk4FGuU(NC-{}6 zbQ-lj4vB2ttG+Dx`tDA%0E^>9E1UnkU;BWI@zZ|1rt*VFXQ^d{2K;zb$T_UsLc%P> z=*9Ne6w6#$_s8Bd;}&h>!BEF&WLQ(|ew$U?DSu{TcWnVC;z5z;w>;5_2v}F>=gaPr z&7UD--^>i@TpSo;Q+bLn(|S5Yu++a3aHavZ2|9!6u2rl_CHNUf_?bIi>4Ji-h5;pZGY8u|wKaS7>a%ros@9Y&hm{-4m~Y5BK!X!c zpF$}BGz_d-$j8<*edsEpdSlvHn>v|9)XaoA+a!Q=B>VP?b!3gl5U3f%Pu>Y^bL13z z1f>b_e=#b92C+=2<^~EUqM^~##Z?j9`hFnRPjKSfLop#3ee&UaWnddFx00OGaO806 zWn>f%p^u2L3votpeWh_AEz$O}Z6V@9s{u1?cwkw23$Hu(l9{qh#zE zcSn}y;~tH$S__7RUaD$mE?NO4p=oz7Ie!1D$bW!pY{{-eD%C_luA7iI@aAe5-D3A# zMbwqCq=SML>Qkr*&+aaguX<*4DJ$y!5+ZsFrRNikV}B}@kP9SX$>=2*sgfLvbB%x3 zB2?oZ&nB=e2)N{~7&o`_jiyEJuD<1{y8;EvhE`A;PMaC`8OjP~zbY}|!Y!mFIsstC zi-4i@VEV@D?S*TFlSB22T7ST=Eb9STz(ykvwlj;1o2z_NRdiLYBAnHIi!t%Zx=c`C zZXIqKOKX;OQQ(mx|2fre>^*LY+xu(V{|UA8_<8;l^+B?#>AS|&_cgyjjmh9LJ--G7 z&liVe8l$bIyLiY;#s_c#>YeC0RlUs9j)d*Klz| zL3pCgYX0D}1K=#vRQVPK9a3Ldy$wO+2Yh{UC)uPEP5$i#;{zh=KS-oWpP;^N>Capz zk4#Cg@ZdxjX>MyyJ2;-;4qJ)K0lLSwA;+Pr98;7Ft|+T24=RsM|E=*u!X+E6cdnQF$7GjP`&(wNavub(h>rxZKh-@{3%d zl9gB{EO?qEZ0g9laKC_mU!e2-%q>N`^k~Da%1y`CGKH$a!%UfyRElJ%gqm+7Hw!gw z6uF#FmYbkSUi9D4j)fkYo4Gr}B2hCLBP@iOeLmG$ga|b*Fzr0atEZOeh$;wMr`XOwf|zeLq%9+cwN`9roD||NE_C8G6>+T{}e8GZ!U1?WrRaFj+y< zEq1E@3EQoF)3M1_hOztGluEIv&QrnZBO6TCF_onY6V?$kYrDI+&3i3sDx%|w>*I6# zk6;vAJ;LXr{7j^wOK zN&Z%xo85>s^R*TTKPT1x-DK(Uw(H|UI6MKeD45Mm=a`~D(}hTES+4SAIx&~^pE8=a z-oEE<^?r%E8YUl-i2ROf{WLQ?xJljGUGPOHr%dPXw-xr7_NC^VAw+Fv?TWskx~=;*J`0q^dX={y^pI_ZIMP*;|frBY{ znEnxH1mmh}??^c_*{6x_yk>5wB(KQaI@{l2zASYr_fPxEkdj9m9@hG1Ah5o$Yb*Zb zb3gyDt;DKw^7HQYvO8!wG5yQ2^WxPXz{Wi<`P?*T?5gYR+MVU2 z!Mgq=`S@zoQjbFV%xrO`_Z0J`()hhShWL-}p!u{O10Rw9BbnR-YYvHy98C!1oJ}Z1!bC;29+d2y&Anod+F3*JU4JfD3Mw+xu$K&J&_Pp zdytkU!WK9NYqpC%G4dVzQ zJ4G=17GS#6RQUf%*j0b%px>*VJ_Pk;O`C^W++|I40WHg+|KTFtdv zbC~o{)goDQwgX_h!I6zwTXg5K)8vgL@y8c$>pXLJ{$=WvZ;D(Gg5jo;jJ4dJJT)Zf zf0UlxD3-wk!JW#v8u~9jZcJ_r`Vz{rxNxM1m6L`DgVpz<5h5N#c%MLYiE1XR4SC!Qd`1t0h5Mg=gnp0c{|?Q>B&{O z8Va~~sv~r}JssBiHD4)>sD4N}I@xbfYl(XFxsCrJwIH%Y$0+Q-oTn zLfuJD3iz#;j({Mbd26<(lEfxDgRvt@qw$5}%6%hm3|L0Y<%(2^7Qi-Q1s<#2e+)E9 zaEPqwrRs@?BUE^DSV?n!$m(M59 zj&RcmD?59SC>WhH@M-9x1DHgktkQ)*Z=^q(u2gJc9wIE*ODT;QlJ`I)dEPJyprYCH zWl5aq_mCR(N`t}PK&Mm%cK({qF;Dvs9=F;8w|Q+VN^>d`?_CB+ZXCSK zX&V_noG&diLcE*Up~wi%fAKop)xUODE&DRSBtvUwB=Jjq$_PhzmJZ(HF%wb#q_2W+ zFFGtFy!s@n`^?n3-8pXV8$)DrqD}N=ix|+Q@>wOJRKRhx{?fi|G@%9lB@Ryle9Pn9v=>z3T{Br$^?lltDPvzk@3xYJKTpdYD|Gsm zv+j3-1d=bVr6oWhL&I14QsWjqhKOf88I|wI`LIXq`hNAC14ub5SF~T5(Ou?5MlCje z&Z6#$8+t<{Lta%UsLbuK@@|`rwkPkTb+W|N(^gU0%Q1hsH_E8Qg}J#E4<>fkNP z4@v@v$ThmB>+9UU1F|3fBUq_0YrgnWUS^)%UnfBlkTziF_YZh>%UA2GT9c}@4KcF? z-DYpo)`n8P4V6>o(Q*U`&O$zUYymQ{F2Cu7E8@zX#M42)c`xs=CQAC0PN|}TUJBOU zXGtV5hhD5BWV&i5MF{yeok2dJl?fAC&pn2pMOCTBk;mKyb{lH5(ol5I7S@VmS?Wux z{K~P5_OwAKnxpNy5 z;Qh++XA28z+h`e4l*N;vyO2kT{oly2(PCfyK?ocsNZUQUE< zwY&#CUDx5u_?xi4y=mL?M^BnSE}QI9Coq)}DAo7P^)9sbe3)UE2r ztnw~_(@Xs=tkzDCYn))Js!l<0s!b;7uP9tMH-i%9W>iIgj!wI-hu7aF`jX4dO{JxM zb=g16?;dfvZOIy_K!84kp|xY7CC@4i1?2Ja;qtlna?4&<)-A`8z!?VwLGr$UX{R_f z>s8p%h4~|M(o7^D7NvRnnW%|AfR^VR=|pk=7kfd1v`MJ-LGa6U0A&jn6J5T$#F`K+ zCsrz0?{}s3SuZTpA_{*|hu)f+Nys3F$vzL~;eTrOa@K z76Nzy9PG)1w2k;Jcqf7Nd<^|Qg8VjA@}bqdy#^O>mic4R8xvY`aE&1b#62@&uIcdS zaD)+4Lp;M=)0S`R}_#acAh$mRGiFae`E0}ULE(YNdp2^G`!Ru(fZ!U+N6VYl#S ze@2WLJqPUU2rvDAIOTH>L2}l3>0)IiH5_xah&QzqnH}B-ZJr9LnX#b#)-;*7`DZ_s zTILK%b6pW%*qv0mKW^DOU9iifs!tg{z6b`|gR*=laYD@LqUji-)K$nZnEDDo@%%Cs zPxg!|E$$^y-CgoD=~QS+L;>XQghz-?_6e$)VqSX0k?;biTDd}z!hZy!n(0}h=d=l;=dJ zEyu}pXVP2VFdlrT#;gDlBcMdZEmwTh!E-@!oPc7reDILpEhk@+L_AP`WYZq6p8he?R&>tD>5Fx!%~5m{ zOi%66V@wUbrs;lqk~2~B*xqkY#}_D#Q3>q$SrRhC<$_)gYsbOLm2c9_asn&A+WD&3 zxm=>URKD;KZlS7ZA7Q4~dD*m5Iy(&Tf5m@fvto3Md)gi}7^@2~tyQ~F@6_dMiqNQ*OvH78&tI%L%%_5_DWY!@)uj;UxSRC8$#Fm z1)P*)%Vf2QzeZ2Ab9!X}Pje<$L-|@_-L#1ncCbnzr5G`h0*|0?c&&_xu^wi)*_V-x zvj7hyLn(CT{r2aeI-e|%8seHIm+!R<$YCa_Kv0|_)Xm!c6CGFFVy#{f8w#YWxEhnf zPIaT7EJa&&dn16*G>z9H&|efK^V`Rj6PZ_C9mgGMaSu=3yZcb$r4{)ATgzHz@0EXe zB?W7@L+paze+1Nb_W@J4uCTRwvvq;#FzYW{?EbhIlG7{kWnIuDPe~aoId{&uJ_q1< zSt{Xu@zd-4%pRm`M^M3=S%lsqj)=y>Hg4tErpQKxog809F{=Xpxy?GWb&%-v5Zgx7 z-Lo6`T}@wSa->dD=hkvJ1Q;GCJHr9|pgB@44Mm^*aftm-&D&Sc-79mI1>Vk-jH*2g z!e5@+vN7>UlXf9W7k|4{%$$vEIIjp#y>uu>enB2>Ka{Aa1~6p!+8(tuk$i#!PK~eQ z2IK0|G{2>fG4>s|Kq@m3lj1U7xcL!mQCM;vaxFnagDkj}oZpIyZ?a^#4 zinr{<{}JSZ^jVZY2K-fHg#KB5 zXQ0m!K2ee+tT1s^4U%Wp2uHSFoU%3ka;2xBx~FxPg%w6LIRGqxA80!wuY=Whu(FeEHX& zx5PF4%q)UJl-rW@WP^%2VD#dmBecDDkY|VxVAmFO1;l_Z+7N2X4+03@x*)?6ZjRSO z@-TFFN?Mfz(hjcEobaqAy=*S~$kyXcmF7EP-`oF4)zjYzRJy)gPu3aht+r;iNGH{YqeotBWM3KBz7j01{BZwgS8S%vd+?YwuH)hnR zVq7#PmEb1yk_Kb-p)aGFiusZIYwcH*9bHmnI&HA&B3w}-5>r+Z6;9!IaWSD?l28!} z27lBP6hnortbJdL^KDN_c1k5WfXibHbe`oqN%RM{Om}~uGD)rKwS139h9O@$vr7Ge z4>YKS!yy1S;6DP~)aF*14OtlTtuSf;l^)VnO*=y&oZJmV1MYx~>L-?>kwLGtbxFdC zB>}|m;sYbGyyGE>`Tn1ZJ;J(D^s$`ad*dcZP!8k(N}m{x zfP0WtrrGDxrvarh!0zX8OXq_ipTyv|wsn38GZu}%kpYwVbkR6h0FF9>dZn>Ek~@2H z$5UDnoLotz*=a-K`nt2`58ispn$6Aj>1#8~S2xLjZ({*cS~+iH4|&V~-hoQ76nB`b z*}TpU+u5K_Hx%174jxy6x$HY`wnYw9aUX@9RT<6$Co~VLj z{rq^AxK^I0*(+NMWBvSzX+t+jltKO8BJC1iDl{NEpcNhv)|heYzF{PQFj1&Gas11O zM|%0qD$A+rYVT!gvd05yqEk%aW(R|xiNFPIm)W;Eu7AS!|8(r%*3QPcnssPtJ@QG= zGF?E?!t}(0x8GIP)l|O>-bguGiD^ZyeJ?6{a|s9|>;9|hkj1Yw5+g9L<|(&Q<6@zb z`uBpC*+oV6xzf*-eDX4}JJX+^mRU-)*@quD7n#`w!dve_U;SB=)-}FOM&tnm57)lC#{N)o&H0M=qMM z7@_**-TxzaB;Aj>qLl+bHDbdhwgheKzn+?%E%#&>HnksGJ8Is2q`nO@v;EirKRV1R znP&Pefvznl7fVdLZo2O943KP87K&UU0gszSO{zTxn4thcJN}1&Ltq2fG1i)L<)E^z zJjp5FV@AuT9VmAP2Q#mSUZxs{fZfe)#zGpgXaP1=Byyx@tm5$yKb^I7G~;p7uvi=i z3jwv_WfyI$!b1hZ#o*(VxuftHVI_>#iy9L2MIl!DdIgcQeS0?`#4+^gDAvR;xsyEv z0Fc45G{nBjsW!cTYGguKJOmcHC0{>|-kpq6lG0&s;uZi@!F87!!k)zpy2kX#_bHh`V9>%*7e3M7 zGTz3~n^;~ZeQxVjELA$Dw5l|v>3x;J^GDso->RrpIS5t$Z05ai$AC?_@uiy#CC^?C;OL<=GxUT|MtFW@F z#77u9r8YdkYJotw1}1H4_Kq-b7AK1;UbaKF1~FEDE7&kIs?nuaIlrRJ>p5%_C>NPA|vtQ|L3-Y%8*eI_nb8OeqZ7WZHCK7Zj zCr6vP^x4gEy>70=C-E>U=y;yRKg;iR$IC`RjMie?OEYXG+dFFVK2m+qML_#i@Zl4W zP9eqzC8a{C!oXKIWodz!=S_J?d_wdqXSyL@xPC1#r0vQ|e)5uZ|Gld~UE zD?<3Z$U?%x%m2V1Ssg!YQ!7(=_cQnq+4BdMrE6j?8!*M2yCNso&q8Acw~Q{F=vGH$ zYHATuHFHQ`hM<}fl(M6k2ak;Q(#Xrv-isV`AmmT#l)bQDH%})F5dRUFR4~h1n#qe@ z&~n^BnTwfM=s>bc$?_{`6-o^jARx^*I}pmn7JBV()Jp~}`GvJ`f~Rs)JzP)LFu`Nc zUF;p@doOe0Y86yLEo#S>f=YxfMieJM-tk(j(vM4^>Liq@?g_~~>tiuxJKRUkvop+y zsR6MTyQ-UeZ`(mssPB+;m-N(5z zp}Sh|x~?9y5kH_Rr=d^0!lnMLH;g81 zVJFYj-_J-_NJ1TK)W@SPX;f$)kIk?PCgJE%V~QWGN!t z8QlUuBj=&F+B5E%G{O*=_=boQvrJe`+LnMMG*1bh(fD29YbEkFEF>NmQm4{#AxXkQ zU+sN+b8VPw`?%Jfy+EYF`pFUOntK(D@`cG`#6l<{(K>A2*J0eFR=s4Js2lq?gZm!L zVtY&|vY?HV-!r4-+m^v5mA(H2iNua*ra~{j@a7;^NI2ksZ%i2PYf%W4y1QR_j;2jl zD80cN-lb&=1_4sj25_akaxq`Z*XD(KxC^yXJa{Gi8fN8fB?U^}LjNX*9#5_^NAhn! z;`lz@xl#hiGFE=k`zxRA(^}*P+5&M#ssT}&zvfL7-u|T4MLuUxoLKTrCI@q}`l|%hjbaI`7v9nk4Oe?kyRL4NL0PxwtvS4X__r=_yP0%cR&J`yQu5Pi zvB&Dht?CleR4s_p=ORFsx&Mn+*hBMiIftimN~MpvzYog4a(<4S&C-4L=7rHK+qXtD z&h@;+)Tu#iGE5%Giyo2WZFh}IuRD_TjK#G^V|S&L)|1WU&v!JgwcRW>ZlaevwUrIE zpQkL<&Pt{vm8^b}{1SPfwt1Y0x0^8i%y=(UbMZo;4`pla(P?4>N!(>ro>qz`{UCaY z?mq}enlam|e=#Pdr9X|^E|na6{ovgi&g_nEVPUI@>F8O~6VZaYr2IEf>7Ufu9AAP) zj!aGiphVC7w!eln;8`YY4*!lf-4316MA6F&%fzeJuCr*Gq%1HyOJ7MZ0lV_k?~v!8 z@=YCe7r5TRQh;A`2aoD|0Ri?58`aMw8+xfve3;&ZxlV=6Y)>_6{fcEX_Owsd(n~^x zzrU69)hOi=gY+-xtbrrk6nqv#p5*PSf76^N7q=L_e*#f>QD6^PE=Klayp%Ne1(Wk5?JvycrF#=lleg#7_wh}E&OFhRH1(GPe+X8x**@ywu# zQlBBCHJfX&e0*}7Tl0fCLH2EbsdZXIRvLPwV-_4!^1j+Y&z|Xy*5k1Wn!~7aj+>xS zmG`vQ#dWWgk*e3B%5FQj{|H!Fgpq#VS!)Wl(?#QX8>P!rQCt?8w8z4+PiC#0h$jR}UoS`Tg_mn1|O-7d3UYjw)cP+8R#Nde3&MUdzq%PfpKb zSw%TNm-4gT_MGg9P5DX`^1S=SXTO#gz4z<3zVJ3B>Fc|Nzd$WYC{JpnI|3(>VYpgB zJfX*Ua#}l?oBOE@53}O$<@mLHadogkcI4YGWiJy`f2vP)vnfg|@3mP@cc5j?DDUZmv$l&$kt^2!)>@-F@Fv8+d!1Vg%nV}ws1u_nfB#nPWUfJghAc= z#iAeUsQ~B;=>-!>`_1u1ME2cp4yQ^m?eV|3bH4n9_>H0pR=-acoIsh*{N=?KrqMkA z596FGwV~8+DghARFev)=|BF1PctOWhrph?g8{k{nDPzZWqy|a^poOU)V4d#2{7%So z-q_*N5FxZ->HNGZtusozf*SK%cb=F&2mA1L^A{p?vdmff`dB!h(R?$+n7XaZ+FvcW7^B(D7ft{Yl^4GSf#zq+V*X`$V zw>Um}x^;YE=qeODqAHA*U$`K9ecP&jluPK0!5iS`o;}Z;^-a?>oU)G>`$dKXpq#_f z6B(75slj8;PI%+bUv#_os`(W3~)Tzm9jK<>4TC%g(=-*qokvoyO!~Df+R|?$}UxEuXeOk49#y z!J$Hvmo!9Sv(>OW!hlcG3wa$Z7J96xUrXvBo(a$8)S(^70|Wpve=*U?Av}6+Pmpo% z(`qv>X!dqf!wogALQ0m&QaK5X^z|LBPTYsj_t&14#;&ip630B`bJL_joEB4-;065p zWki5)3Zt2=1XJ4S)Bsem#&TJ|%cmIaw5^1Zc=PpSpXz!&U6d%v3<1eK9J`zh%Yb>@ zKHWxMVl{`7S`+@wq00dnVq1k}IOx>1(5X46goExO1b-fk62>r0h)!@+0=i`H~`~Rde?P-=wc`reIeUvha46 zhyndiNeugcc#+hM^MbhkdF#QQ%qu7c`@@8)fh z^%!b`j|bEPJs%o76S_H+{{VLr`5$w~JvMR@;t2^_VAfdCiDJ&)4oCQOq)8qy7>&Gp z*XRIL&8SkBNitupT9*Km{2&}ai2Im ze;$g3unQ3zZa(M7>(IVpl{k6n!#i@IfrHZKZK1O)07LuI3woG_HyW1*kKHef{rUq; z2wYRuvlhbbE5OgbSbv{Nq^hMtv81ZakV#b|o_h1<5<(UkGaz5})l#pSuqpD(9+mU$k)c}t_!=nYo4O3 zvQ^#dJ$s}Sbky{)6b&@<$@mmBk)Q)5o>b!*B9PO%uTj44A!L;UEQ%N~$T%aBk<-6)FZA+jJ5&^vHBnXko7=Ac057^RBu^x6A!39VMr1}h&?ZTuw5XgskyFVQ^l*>-g2_6Q8 zS7?_KgBV$QHWh?X)!@hrvXuS$+u8Gq3cA_SD%F%&4nF?BSYfo@YCK8+H1(=j~EDpstZesR1Vgc_)#RjQeDDL5Xx;wt*!{xc9;(Q(|=W31DyU zV;ZOKR zNXMQ!Pjq#T({z!m3NP%shf)}M5k3Ip-0}Q+&C4UKN?(3)V6NP=9Fo+mWV+mBd=l03 z9H_={|FcP~I0q^|!cDyl?u6GaW2`7<*5#$yp{Q7M4+Za&Ik9>IRuSl{J8JU+^ zXaFB!{5mv5WFB$PjP!hT^FIq4lm7t4^U%d5Ql2A_@tgte)RTL{Sul`5#CgUzB>Qx3 z!U+c-Y>$4ItsPs&zcY_cILz0&NG-(bQC#3@}S7!n>p> zgoPh-)z_yj)bmln9Lk%)A>KtK@T14JGu3~ktLC?@){ToQ*VCe-dxs6rK6z3`I<&OR zH8m9!lr-_YuPX&q1C}g*Kh$)xsS#YY38yGU-aRsUSYyI;mdUE69kE z(ZHOA^ugS~05~}xsOkRzOk5$;w~I~gp39=@s%$mOaHo$^Y13IvRWvSTjya-MUr|fo zV30T&<2^83Vy&X6uB2_EqJp8Ks6cWQuaHRNJoP!H(Yl7Cw(|EKpn-JM8j>q0sFtQM z^3LNVDg%-MAQR`O6NO>RDN-gAn@<>Fc#TqTk%*5g`?Xi0D5|vGj8j~ojt$m(y%jW+ z)bN=G=1Af4b`n4X?T)P;-Q6|4vf(wGxgRr0U3Rv?cCal`8>WHPN!zra8Ry+`gXDEu z>050vvg=7|>8a}&T2tj#c*BTG)lq}_Y{?q(9>D!agF}-$^T2F7O zy}=0jEwYv09GM)CN@!nzaAAH&J!E=Wgh;~_1hj*m@3_6cc-?e1l2=G5s@A2EGE!Y4 z%%%=q+hzk(ciJ7rWj^ok92|!L7RgxM+aMAY!?0LS|C(XmK5 zaScffq<|q~jNtgk=h5*@WZux%6ScPN+nvN?pX<;KO=eEomktLz6b^r0kQ5RAe-MEu zSTsyQ3+Pl5$Z?nseX;%{q72WpGE-DDwtk;P`y6y^RW)sl)JoXFEX(%&I{E4+kd!Yt z!2>2TH)F463ow~`FSmSpl1iYFM>6GdKtspBw@ZUm#;iV4cHBTKu#>_2c^-NYjzmq& zlE2hGtowU(r`4HEUrfvyvOxp-aryMwQWmB#>NM682dvt}Q#jp&xxK$H>(G_%4A}Wr z&hds*?lM2AKYwnFnt7HsZ%RU&h};0@^&J5#FdORKQa_eC$3*5!36Z9-Z_HGBd&i@|2N)!i{P^i2)KtvH z0gYT|`=|N&=;xxXDsfQ5`=ck={+$-oQ^1AVqCn+-tUuz&>7^#@q93{mB>-3x=O28% zOJjLgE5H$Pz;DwJlKhOPVq5RCW$nwuw9C0Wmj{N&bCns5mr`8t5nVd8D#+R` z9d+JqS*_=&HC5BaO)LF0kq{$MjBpeWY-$TV7hvUUW*`+Q`fz(2?M^!~bj3P{zbkZ%N>c*y=eSvtpB z*kfn6>Dm~fqNh-l@|9ig2ltK#lga&9^-b2@YAT(boZ*ig`02usHMBP^Q)Y_|VSMsa zL%C1`gU&~uncl6W`cz;O_Up*uo}{Qy#hCC9lke5@puQh<&ah}EOJtVYe6wvgE2K<_ zfB2)zasC}asjQPsf~Bd4IF%|vQOgu0RMiy>Kn}~FIO=()J9DVDG@>gln&ERKjn4!a zjYmIGV}XtjJ#;@sd@pGIIAN%|EZU;s2|_(sia>|SAv2cFM?7)XjkMV*?MNuC*4XWI zfi?(fkRpWx10Z?x;PsfS=`s>eQXiSO?-mH60?RRhbZ^2grLI(|)OQLi6k$UeSaT%g zV|Lt?z&_qM&z`iFp7?6*zMm1xEgePfrDFipT%;|yjQv|Y1B@IGzgj2LijjR}aWt)v z(RyHD6X%@s!08;921Q}8?_a1Ka8KK;I|!XFRXR%nesINZ(z+R6}S=T0L zKngOggM-H()PG)}mCgR8Iq!!-4!{@`F+xEi5t2N3<32oeV^N4vC;4ZO)&z+ea2y6B zBlvS$?U4eCVu*|Gw@GCzk!yUK8?Oq-;_MvkZ7lhA5urI6COHCseh8c)w%i+%>^63lG$uQWkksd*Il0nGloRj+W?+i6D zjjbAeKZT6mG5G=hv(R2QQqIh~b{sD3`{N(a{CasVn}cW)QloLsB3BI;XTBu#_X-gl^}zk*QCP? z2ylG$(k*T9v1Pd#>hzUxv(%RQEwhsJ>`82ao={}_9|Ol&<5_l}ROs2HOWmrXnlT_m zu7nq-kerOGfDSS}!0Sgxi&52CD!f5mEZKM3DltwD;-@_M=!T7uf#pxXPBPQfQx*)Z zgW<8k9Rw7Sc9DWP$?D-Vl#<}uBNQc2-LYGOb`i+?baGTw(m0k0848~u@OnMz3kGP; zap#_h0h1y?c^(_5-c-ci2SaGPyK&!rSE42fOWM3LUrru1C2)eDjXE4$y`LlksPe51yPYH>;hJaWyRRM9RS6 zA2=Y4{{Swt_^(H)>e5O>7?)38xk~L`JCQA1Ge&npA9MXfW(Ya{hp)a|Gb76h2tf)| z?c4sd))4Ja#LUu)OBSw`UJNWzT;x_VpaTPUKVSIux9s&)w_18?%1gy1Wi-gI9F*~v zSNyp=5ziRwoYrCW7<}B5LvxJ;sq*I~(te)(=>|%Qj^Ru22v#}Z{{XCXgfy}--r$lj zt%Kln{ZNGl)WoD=vJhkS=@E{rf+AK>ILXK7)I`nQ;M9bPBZr&`0JwKn5?R~ZY-_G;wkDW46&GL6OP#Tmi3^j zW47K6Ro6|K6=a0WeOg5W8BFImz~l1kZdX!he)MR@r&`GCsOur$OII0FH3dNYEsW(` z*zy4cj=85%PPMzFMg{TpCrfmmu+(}2?H$U+Qt=gh&qpuS6w9Be74gW({yi;r5SoSc z^yez|?}p^ns#waaz%`DNx@dhtTVlH+iK(P-N_fHa>SEkN%9-Z`4<6nf_rZ3PKZC4rBd9>AJG%^Bt3bHCUzmAzZWpRp!R!~}RQ>-@H%YxG0B}QV45q*;Q z-q1zhNM!=);pnG(Rj-pCxh^Noj6oImR`j;v~B+cs)zP<3-A!st!=M(rmq&!1(8`UDaxii{5J$IN28DuKQ{{V=3uIVKbrqPLt9i-p9AGAoLP(;RN z2ag!loy3$jht^Q6Z;7nJUmd4c*{|jiNh( zJVBZF4l%d^gYLtscBTISc!_`vZOe~-tgAJ}TSnh4vd1j1A&Ocz4}lbc(6bSaK}93= z!RuC?2xp3wg2_|pezuD0qjRKTnEfrsM6P{i^Njh&N7RNG!OmPBh)=3U`)8$No(%l9 zF=Y1W71o+!M>7Ep;yLq9xpC>`_YMyuZhwbe9j4WE5;0QuDuo_N!tW#B&ObkIJz&nn z+vd6VD@(--lxQWMp_^t%M1_l=f9{j~`soEFqLQE_%Ou5CGENXLK0U|qIqN6VMN36U zO1MRq9&7Gr<^6664R0&m9 z8ltS(!F&Gtha+^J7Do4?~Kg+1b z#AS!WY^doVaL-Z_La@zrn&`QKF)LLRayyK?Hsak0ZwJfQ)5;w>OG5%k}sR&4G`!L$cQ}BSlrd1rs zrGpIP^XN{>?X?dd-uoVswF@EKi6C9OzNv-@AL#T_(#lv!7D&{R0NV9r2sMDNDujRv1rcS+vhkxkJRM; zy*DvdeGC!;Qgwpf+_PtVjmh#G{b!;-WT+-jQHuk@t9d+l>BW{p9yHHC-aRCiI-{_p zfGFjOZwKG}Iz*~zHZb{Nv=#DBgMTUy3>5MPI!`?&8)=e7Am`|l9DTnomN=}C5VC{s z^$cWx*QDyw#N}inLKnGM?E8Nnvu|u~6J4q++G>VAgu8xJeI^l*26!3H zbNA~^TZu&2PT<_frk+a}|{B!T;st!3R;*MD5cP;Y`e!l%y^t~ie z%2zWJup$KY4dEbybp-l}`0^AClh@rI)pV$#vgLvB6pWnp_gElQbPpQD$wGzx-*FVN zdf8hI3PJ`zQpAuwx;man)aFM4f#)a5=|q&dA5`<@i2#Jhj*|S9DzReK4fo3qf2UGR z{{S2uq6sL>9VQ%odDj`5IL1F1amV`4LrLS0B1+iQk_N@70H4rj zpbBb8!?ctzI8&eAF6{{Zgl0Y9Hg#Pg^gl_V%}%LtWu z^UgYoqNlVhb$@-n7pAn+EL@$HQG==f@@5S`J}s476i zC_MS(4uI7c89*ygiZhT4j~}ix?b9;>3J34|L8Ub1z-ZE;vPo=Hk@|jJEcH_? zsYzEM3(g`V+wnSovoy6ql_$f4J~|+in$TH=-|GtB=P*Q2LR79!WyVLJ`+pvc30^_ow8$Hg``;gLZkySV z=Ve7k{kSW;86THHjw8D*B+rm|XZ*ijyi#BGg$hU)5a^WkzfSon3S^cg+m3KOx(KDH zW^?;S-4_IaHy%Gj(m4_$Gq!R-Bbj`U=l-+Ob%LC*46L~Ex>L`e&!7Q9=HC0^0#gp6 z7D2i0l*5eR)2;y={{YR=pEiL?o24kmK-m;yY5jlddTEGLvp8i^8Ho(-!RMnzEfYCr zcrXS)5BKAsQMSH<42;@+;d9kf1t8uE=Ynv66UROfePCxySM7K?9GJDoJt#d%7Y@nyTpu&g{rR zIU_m8N@Enn?-JMTP)1gFT%T;?uaLsdPC+b3A{Nd)ydIT(3V$9z@(f4(4@27Wg-&MH z6YZsJg0-h-2(M82Ab8K!&p`BPr3Vz!mhv}}MtSFwdQ@10$ZWCtNr-*;=g8~dRj^Q( z%bz6&NHY@u0C?~TIznh@<5N<|eRBh*N62;c?%Gt!8#0}@@7kERDL z-@Slw$=j3Bf?I0&g?J+cp*aUX)A)2jeVxpBgO$V}EkU_Ko?<*@8L)id@GyP)Qxi}r zIW+}9CxGPt08h{S`Z;HzIbeX2JZ$sFkL%IDHBQPxLAc}TQ5S>PflK8A1Gbnf&2GpH zwFODSk-OXTJx8@==GkSjTrLS6T(uEFww(cNw5{}@~IOT|R6M%5Rq zYAwZ#jkxcQAvp&*&Ig~Cx6-ER+>eFQ#r`1XnA5!}!_b zN0$Hrwg)_yJ#r4`bNnbKl zoNcOk+VL&;!R*yXX8Wmp(@tdhVQ~4KGf^XkYTG?SNh}UqVwPywNfTq~46Xsd>Z;H- z7;5IBsH$I>rMa4`eOwYCAT(w+1cn519WnYIw}-}$cWyrux6abrG#_oR6xQf%H8pfM z3zSj4eQfhd1aijyi%698)a(E+BZ69DaD#@-T31AC4L5hU+bd{YXra9|O>}!eQcO=6 zc-a2{#8I~!httk}-A`3jD(Mv}YKCG3oF8xdMPku0D+-mPyR=WVZF^HCMx3anSF5uS zvCOe!*QR9#H}UPAr_bR%OlwstV49j*L@`uE@i1t-hXqbg@%|k^^;fT_uXMVOoepV= z!ElH%Us@IzV0h;Rv-x9#)Y6{kEo@QC3I~o@)#7YqIWI=*o}w!P6iX&EBVc*+{d(PD^(L~J z6A~Pls;HD{<|sQf6$CXfu_Ba#w;5xDoO$U=Qb`y_^hqtlVEc74s<+4`F_g;&#|$~> zu|&fv(Kg~iOt%CP)rds(50WBvl2@sS`u))zcHjanV12|KfA_1UYtcWOu|4% zdFBLzrH_0;9Ofj)3&wnPv$de7r1&iDGR5iWu$AVO zM0D1%98ssz`MJ{q3HHY%AJ?Xi+iEI}8>uY1nAEi2v9&AJR?%*31ob@`g8+Fg7;JES z4mxM2C@QN%Y=QMH8ZLuZCX$+c$R$7m2^#`^933N2SSkc`Nd;s^I=UBnO2}m-I!hB6 z*bsTo)BSpTSs`U0VNQLsw1XQLK&2-kpMo;7;pYe zbjFb@DF+xlg4_)C$f{+gROMPN!7Edw+h>4@Vi*O-obrAC-`AxD;3_t@Jc6g({r>>3 zO~xrpF<8AtR~wiP2TP%*^#Y$jVDdM6o}(xPm{JTXhI)921%ngMKj+crvKLiS;oBUs zCy(jT&{IYRC517J9QpB%IuFW244+EmI^g&}^&fzh&s95)!-fsg0VWX%fg;{`mSm2xCzXT~r` zUp_n_azP-RV;wC8SL!PxGWZS2`yU+v+%%GKc9EQvJa9kE_28L%!sbxW+7LL9t40-x z2N^sc=6b5@`@f(q)pZm%8}tcNPbo=4bCw6{9OFEXBR>6Ew|Tx=&vlh$^wn+iF(7?e zSlEnzAMon|+xvBIuc3mvsnt{gG$9#y?Z=4#0u)qgab2P zG~|8x?Y%iHFB^iN9+~?1{Ez4P^fvg6?YfR@YUDY?2&vrj?fu+!n@4S|Ux(DLat|cc z5sq`7Iy83QPbk4k$r~gRYag8PoDUz@twK5(PA+qK#cHvK)cQs9Q}G|5u)i-g(TF4P zQ?V`fCyyhj#p~ijN>fnOR8do0<)}m=7^)*E9OHmN_V((whqtLF{zxs2l4*^KAcZO=`(12;6IG9x%cZ7M!WBRq}4M|98yU` zLn4&XfLelBtZc%>G zG9!Y?L5CS{Rsr`v_Uck72wluHYvn95L3sOBd|+t}A8M%4-wwJu;iRmqUvq*@Rj5Q? zwl36iRlC!>ZCpa)FH8&qz$pasK*gG)Uh0imUr}+s)?98ibu3zXin(3c*phO@@J}b7 z&#k{prR<2IO}5^w06WDfI6vY2I$18Cv!k*_Lq-^>FaGYh{YOrG7`RDpd-=mltCmh; z3HRk_=WI0h3h7Z+maU#w3m6oxceZ>EIqOGu_u-pdYZQ*Qx+T;0#wyP>#y0htN|Fl3 zag6=X+;P^L(w0gF)HbI|I!1V_6_rIY6>t7W82KD) zpmm5V`pSnO#;o|k1IYV(a6e9lXq~CrQ-kTsRroj~8S~(tku+d39hnSH0-ryb>z+-j zpHiZwsFTh#2$X=31%x_BP$hX7O0l0g#&SO|w_a8<1dZdWS$Ai6LxMk_Nu??2E+Rk% zFxkf#`}>|cZE{EB+AyT31ad#msF~Ik3y?bqUP{Xn{d<0|b{Hf6y(tqEjB&ZQeJX>3 zIT_>lbJKE$c*anwll1e)k3A-qoRtqFzIL61en=eg(zB__g>fut3(M4<#S0KyYaPdt z{8bg!Ezxv~+0s?i0 zoG$5uR^2h$s~fv88&lk$K2PP(MhZ7Z#Z^1)@wb2B{LfxG%6^ufZQN~UlO8_VJrL_E zZ4FU7sbC$1#DmY~bL0Ga6EvtWk0eaFFmK9J<#M7wtc5;KIUe0Aohf2imKci|H#CbP z<9>PP?gvPLquPJo*(O}<3^Fo4{BzO3(FGDcYY(L5RStjY(vzJ!{b2@HaRt=WETzPB z#w1~g!mk`3)1)O6E4mpac2dlPAOd_5kIZy*^TU-`-bY=fw_xyp)<3UB#Gayu6+%2W z3fu5klauYzp({;>kVGU0+7pnn$dSiN?eznOY;Gg-Cm)|lr)Zf0l8LvT0~vA$K6*Yx zkqgLb32nfq?zmx&asL2*i5uH#XJS;4P(|&J<Gn7&*V4sIr+yd+;3o$e`+mI>Dn}X4WZp^6Q}_=a{VJx} zgbHqN5qE`4hLvTM5&+nL7w5-BRa@=Vu(ds1xK-0R`r@li$sry%{SQy2SOBUY=>(GT zo-%)@80ieLRgs;gm>vq}#ys>%S$jjIGC>~vqbYX>;g3(>8m6~O5vQviOZK zZvf>9Cm%>0 zc9Fxf^U^yjD+7*lIycvfrFOU~agci49o6`1qNEiUJrh?HkcRr~RZ{}^`ibH&WoZ!1yw?#M zWR@okjBpR)LyUEQ_OrekgG9{*B~5ijO`+xns*S1}X#f$BGlgs)AazHyE{w`S$G9Wy z(n%l;OT4)Q$%jWjqm#{{TO3 zx>4Ic?`e+W+tvugbT_?$s%@rW^`CZ4+?DH@V*MVShpolY^o<2IdMW^N#xE(RSCnR= zGFgtoTRXA#{Q4u)o0o_a?uB5<(`u0h|pWc{9lp^&yC(lZJElBzXM# z&WT}4wvjhJVQpbFkyiQ_5)HTtNvr;!W zWO2yx;P7+E>c&Af<}xrOo_4l3e?Ewj);QVZk7z(ljAS4MpCIxG z@zf66dT3ZjC+}b*7(DUQ8a0=mH-j=^W&@K%a=VtTaPgi1j8ua zBJ}l=Qb^Pl*dRXBwYMq!!S@*HMSTH|515DRjkyF513gD->8fIotijcyZKOCLf<2E< zwrjY9G?jqKPU9FS@aK+|)SmeAn4HnCz7Zv~>s#ih?4G2a8f#Z|bT!(`LwTB>IUdn= zNE)u)Qy%b6<5LR5v@+#qVV*}>k51hyv_7x2U8>`HD*ZWo33H~9gTgt6rZ(Hb8+}2? z2aI$L8K`a=KUmu@R!XL&xLR&WQ);e_@X$=G8YvX}5W#=1R*%GuB{ffS?%J|~I#})9 z!K0?s(8olZB3UZp4LYjeY{a3#Pwuww%cs^6QB9QJW88FM?`Qy^iQV_|vA>jUtHos1 z8gA^+Ej;w~b{dV17FaZIPS|1p0LZXCa$W{t5Pjoc@av&nt-IE0Zqw4#wR^nw%T-OP zu?|KWo+d>H8RW(3oc?|~=cEK}i~fe9F~&= zs<_a`(z&<%RLf* z;&;LlN&`lY_-#Y}(kW-%3Vfx8vG-2c7-1T5&!4ZZf}4dm zh3P@diWlG_?+;Y5C62KPl4qU6Nnc7752xkhX+s`(`hMK>yt5dBy;Vf9kPZSU0kP-D z=kL^tZ5dTQb8+-hKLCypNcZ!QKaV{X29TXfhN}~ilA?BEGy3!G`3|$abh4Z4-4*~A z7lvpOp8&N??nebAlmI#VcFp(@fr&qV z1Kj7F_3!Mf@+Lwqass; zEE_AH8NB)E+IxM*HYRJ03jv-|CIsLd92Nb2`Yvh;k<7Pbi5LQfVI=$Y88cAt1eDpq z-U*Rr!*Zj04t8>*qFoNqT4iI5kQ&7xUE43WfYxAB=P3`t>KVV-diZp36YhrAZ5s z!+sUO=cTd8;X8<%zhen+1l>pcr7h;>R}&EpMQCy`5j5_!ju~vPvKMN^Xb8>AuSrH zm+Kh>L_Xf#5@i6hs?OU_B-0W4`(*h403MUH?5OgHaKaH9IKkZV%FT?i4aPq{I%w4} zQpaYvb0Ktzb|&n2VVv~&Ekvz=i&8=0ucL#>{Xd`a>5i17%)(NwScivjbCR@%xrF1=Qo}H=4su(O*WC;DJIWg}GH&}JV~%?J zu4+uOdqDZdqG4E9VEgilNVMm|k^#pM`2Bh43Y82CZQ+jxYK-&w^n9O7u~0zI0G_-K z!H5c{cm8gsq)Tf=L1NGpf>y!y_Zyd^#4`i8oM*^k(FR9c|&B!jPc~zFJm%i4$)>iHYaikLS|#Nkaqc##3&5a!>Q=q{%M9nxFtD7>sj|ZinhI zP{{49L>ccBm?YYkkJ`o=kw@o zC}kLFpPqiMdSyb_5a9%tIzy++BAvdphX<39_v__}Lw!=pR5y%{c*uJfgt6MR zitLQEg%`|#1xE4^HKrwRBt;TVpPc-?E|DyYrv%-SQwRmxD1&jfQ)3~On;yF^n6B$k`+Bn5ONs! z>5@3kH!|+__WuBPrivG4kHpuX@#<+1xi#E`;Kfk@Q0HWu;^NK91RhA{#> zf_XXP+oZosWnNiMe$rzHpqSx1SNEg8Bvf=L6iZ!5m6=;MDQwx8Qr|# z0iFj(`mvCAXB^>A=g}(Esg~NlJRiP#AIwAu1~|fRAKn=!rpUXPP@?Uu34J071gim& zxBJ~FUreSpW&Mfw=_kz7Be7EnD!9WxzH@=?&?c)?A54%O52zE)PfZe?9v%ehVZou4 zu_%fVE=K0bC!*ifQUOK6k%j}L@Z6a~hp4Aee&?QyHQUKwRsuHyM#ISKz{^2sP!^zJ zbU~bt!k_>c2gpACdh(s$NmbkTZ$Hzd$y$oQiiJ$^xne)y0qAm6Q{e8Y1(FHJp@3-2flB#Hz=Ks92Dg;+cq2 zarg$J_qKY^c zaIWKXleGv^ea<|dpXlWsW)cc#A;~TSwV9%2bon(&S5{Ax#dT|^H%Fh*N~ZZ(4Mj`G zPSScX`imc^<#<)z=(~vnE(Uq(UrVMd?=@63aQx-QEGKWfCy^6(nCr}ZHV#`R<*XCovYrS`35 zbkKFQdb>`|9Ui39cL;74dZ{Abu~f$@vNJA5;gN#5!UJf5v?-fGQj-45kY=?Xi=mrYdsL3cKt z^{q^FER<*(u3Fb|7?2hb2dFW|U+Q*HTatRIFBKP9Yx{#0((h{2R~vOhQ2y7j%j!{A zG&|uFQ@56hfDEMaM^)&axl@#tBmtL+CgZu8+(f0*s%U8U921bv1-Jq-aA0N|=!)1IE$LG5X`GoH|U!(@#mcSKmPw6{`hkJU-Cl zr|g&QO!teezMZP#wcDQIbDCP{p;e6rc7rPo?05l2Pd#*B;!jT1XzzyZ$?1CFR<_@N zw?kT?!Tt1hih|_h$=uDxJoU`#iaP45t5lVf!8H}CsyXSXQFf^-BFI4?csoG%>r?le z;v-Y{qJqb2x?1Qh7P}>Em66lY%+eWWX#F)}#X;c<5B^K1aH=ZA6z9+#IDTRVBQ{*w zqbIvV4Uy1jZA3`?cPm;4{LN19zy440>J2qiRO@`4r~uE5AMX}8E&Owyrj$-)?d^J@ zF~?P`Z176pdt#-(#Buz3WP-&Mk=$gctBxe4j7VNw07ePH$-w=3h0@t7ULqX-07`!` zW6|k>G~^%dKS3I%qq`aw@uV~a7h9B;-D{=oa$By`*3_!OEgB$LSr>83FhwPZ8034N zqSALqK*uX9YKjNj_&pktkVm-(829`2l6C%yn$>C0x5(zIudddY3$-OJ1XTN(%{4_W zJP8;BGBl4fE(elFT_Np<{?B~{qI3fH6XMfZ*6C!ar$_$DS?>{1MQYwg*yfy#^HiP4 zJt+AManDo>=vq}4SP zh#8b^`nG}z+@}Zc$m6O5;;Z1g4%OJd+Q(>a)%uIK9;|PAp^~X8CbUN*?T(@;6ayqA zk&=H1KEx5wr=b{WAqtqVcFY;#FzE!@poF9!7_@D7+ilj0mgh>XEH#mOwDL5>Zd05d zM@!nSJnvsjo%kS1a&zbWdaE>Sl@aO7LLZid3Nf}fep8Zhf&RJbT^(DJM3d3Sw}&Q7 zZay$L{J*bU-l|VgJyP}rh|$Sul7fk1Vq7L%5@QD{9gB10uO_NS3IuT}d=(&lL~+NS zqwQZX*s<48gg9bZo9*E7=kn^4?_Y7RS|-Iw9iG0NTyC;S7)lYa)Y8Y8r}`hMiW;QMc5S8<@n( zG5O?RnHsA^uV(0jX}WhfPTFG zeQTRUXZBqZgSl3YBN=A)+B2TI4@9t~;h|w_a$88x<5ePRQb5r6!r>AP;1WiB^q|5Q z3=zmA9p2y9qS133lp_TFN8dduX=YfKAW4lme;oC;HndOy#tCS^Ja{dUk3Z}Fy&oO~ zc_(wK8~kc0pp8YfU7f--ju^UetAdK`?g zJdB<*(Ty5~+8J_4&V9KZ3TVnAsBqh`evc#aJqnZ@0S1(erqELEBxL7|j)Dn^i322^ zp$YNQti-!PVBtq6+z>zS*MXFs#ZKivPv6g;gs3Q96|%vgYy^MrB&JXY`^e1zBG=*JZKuKH z9CfEOeSCG63k_2e?LD%YoQZN24es#uSE+6G z`z3SSOVT*2g`yP`1SfVz>>f|Qf$!5D9njq(H56X8Oae`!N_k0Ae^5Hbv(oA=?`q9w zZj$32G*$I%mf5b-6{n?&mS!bYN0Wd+$CAUT$HVep^uD9GSSza5w#{8eUMjIGdT`9F zaJXVhk^u3?p0jG`)m(}-Pbx2B&9egWbgJnAc?$wL#sD%w&AzXRYaNkI9KlrwCSlLp zKK}sEr3MO(*z_1P4|d}oIqBLt9l>FiJ``v2=~nqX6xthU$G?nqp6ZsBGsL9S04$rs z38txKF6a=J-;Kn6zx3;O!>*$r0B$JFbHf?YE_2U+FGAxV; zVVvY-eZM}7szFl&>mD;^6n@Z-Nme!G7+~NA9A_Tb>&B^+Fi}QIj{m@qto>xqsyn#M%)~J zpn2!|^o_37?X*1%nH)Rh0gRux>Cvff?~p4{XBYwyN1q&md~wn#?RD8w^j&Xkq!n?xh)OraJUy`{hc&{jxZ-cNaOSW01l8(Q+03@P&6O>YM?mh1E-(a z)reWeO+tdF1)u|r_yY$$6H!Z65lOA8mRSH++PE3VzrRERib()LJfYd%BSkKgI~f!x z10ZPyzxa zOAm9#JbRv>l{##-g{5Q|MI|>IM=<-B*}Xxbs;UiDJoOgkn`{?Y=$#{AbF{Wb5Rg63 zxA5wof@+(5hj3w!AdU}RhP%+mccPNhRa%qMRQ(fC*46zIDHy>A$o~Kiv8Q!@9_p$$>8;}!?B?_33JWP{C^QwRY{R#$|5sdZAo&E za)nv>C4J9LQ_yWW0IY}G*q)Hf6-~Nl{A$SL5Jn1-=OFm~I+9RaV6RnpjY&-Vw#YWQJTVbzMazRWyP~Wr9+qF!$r%r`ozj z!*5c=1A;n>x&)BK;fTh5q2sB_5-TO-Tto(Bm6Z*nqrIH(ovT_>!)VkK$8Xdys6b2p z?z^4{1mH0HU;~~yzux0Sv6+nP97?%nkl|E$$tUgC8EL1Uf}%RgNhFR)oH9up;DSB+ zw>1xab!FR5(OM?0D$!FIs;7(=N_khJttVL&+N zI0rZYdHenPp{lB?t0Zaarjl77@iVqb=^k6^3Z&p<@zuQ!1w%xDR5L4_MVVH)wnchh9Xy+g;vHH-TmBtUw?7b+0~S^>18Y>ws;iCnsz2A2*$!Tk}`aK z`jOkK>nLPOs!3TIHw~3P$DXwHH^MHhahjX8x(5d=kpNCVEVn;wbpHSc!fnc!vyDoF z3J%F=feritC;IhXalAPfOwX(z!cHZc(L&M3Vb*a9D#;evd~=xVWH^d;Cy?B6ob_I6 zEh%)xa8;0R}{50^|G_eQ~UR5hc;ZwRd$7< zl&6uBU`acaj(XI3^7m7&yEoff+KFi%r?*K}r)gk@ixmRjEliba^GKwbF)Z$jyYQd@ zV;w^~o!P6dg^JOrXeuf74vW-uOH*al7RU7=W4NQkCjg{~>QsV0$0sADowlil<)piT zrK%#Mnp*o3Pj7mfZS4&7^6yqd{njCwbA!fn_v%Ej0?1bl_JJoj3L1T)zS6zJ)%rFY zl?8(9^0ZaV^HtGH7-W@R#O+z>Mhi&qwE_>uN#GB^ zNGZ6;InM5YN|u!sBr!U{yQT$Hrwn{xa;dwcHXYe!1(HEzo(!o3O2Sg+^+ALOev40INPfkNEVD z=7t&7U}2G!X)%y-_8-SR5ih3r5>Flg$pjDQ_v_J0g$u0Ss)5NwA5Zc2$4vu;Hr*u{{T<& z=~zlI8AzF#bCO~o>))@MqLwT~V`&?}{nwoR`dp}cZ3>kr1{y;{!8@sOO&J6d+b}r( zeCMR{+fKvk(hcAJ5J;X6`W-yTV#6PolXGY3EO5N%@6cF6>9oN%;4$RmAJ5yTrGN{F zRV?Lnh>f+nGVIAu!TME9stF!{PKaw{fMp{n+~+bcIR5}%-AQCv*J`9?SRQvCM?nms zhtU>GePy2*>QT(3#2&Kk5ue$$IVu+b{{Z$u{{T*phKhA;4ix8TXFW*LMUl3TMHz_! zq?tkBeZ2nwE{$JEu~w3lo!?7(%1(X!^rR9a!eK$$805BGWC4+)EWjVF{{RptA8v(D zNpRjw;wI0HvJ;*?_{UNoS|9?MVH-i*M1vl9>+hY652i@)!|Gyi2iWx3n54s{YG6&F zxnYq3IaN3r0eJEHbfaxrgeg!EBW@_Mj!p;%$MxvpTM-#DMnU9}$T-dq@y|s`a*iSa zbq%x-6?i`Ub>O8fH-P}D!4N~WOBKyy669}EoPK}d{d!F;JhDY3a#gTa7$C*$K^%K@ zq}-{?xH$~Kouy7jIxX%B=nm1(;3Yf^bU-Lf4IW~}?$Jl+t2I3ar>nTis~e=I2nPNc ziOaS>P&(FjhYW~7+*N*!!#~Fv{d&o@RjWPq9=&VK!Bs{=HV z$H)a#ZY(^J@A>oBPQzxYa!|O*;we%mn2=R~VL8f>IXV1amIvfIr0)?JbrI!EoD+1*H1>U+<^Cm+o8zwGLWezVi}gjI8a+4tog2p39KO|MsOU+-;d_{Sc66Zv)M z)Rwr%*KxAN^>VFpi=X7(bII=2EO2IaUtrCif%`_J<-Jq5@_cloqk&&K{Xck5;u8n- z`u@?-M%9)?-d_1+R9v=xZEz1h`RK}RV`iykjtxU)EDs;=XfyoC>z;zPU``}IPa~r~ zc76*;&Oy!z<2@()GbDrCFWm$y&j{%>B6^h)#ZylzoRG*j1Nj0vFi_R8JEw#V-$+Pt z{(tK|W3JryQnJNW9VL9S)LZ0Wvc)5lf#Y(Lcq97ft*2+Z+pd(5*3wH9@J^wXk+b~z z&sJg6X&04u99k!$pe;R^AuY3!{{X{1F^rHQ9Gw1r7`B-=Gn(lXzA#K<1E=JAbIC!L zKZTc*($)EAWhOQX0N{J|2%#@{UbvGH_^mSd74-z3ND4XreK; z@6*DV)b2=Js~iq|4{_JBeL;V9w?Fy3b>b71%otLEi0QSWWct%NEsv@}fnzYcZTyUh7iowx^z#%3t*K$ z==JneG^nJsNLvR7XFtd9)6-QzNy;wJNFQIH^^S~L;mB`F9Jh_Y6VNS5HZbB!$OP#P zDN9V40ywbTkW^%!&(B7rRD7SKAANv~^Z9hU6yN|-4DQOd;63^1Owlm_h;hjz0hS-1 zO)DWJ5e{ZkYGE`>Mw>&j1@}8Z2ZPW0`}BNbhy^A^91MLN4?TQ_GD50T?I+GNj+HN_ zfr<23=kSFGp*cZe1Qeta3={JdsKBf7yB|t@zx3%rtEGGpS(omrc*jFBMB4}Mht-zb zgM;?R+pii`QVP6LvmRIg1~L9VIt3{N=>?fY5)GjEs%eM}Oo+RIVCYUq9Q3QzqsDzn z2t4goJpTaSq|CrFmVM(G$G5jVc#)GU6{w9@!h$@1->(de?eEGFP6I;2H2@%iJ2pQF zjN=^=Dk)FWl+{NkBm_JU%=B(l9D1aa;evGGOh(iD#zIeknZP`C;If?sp*cb%dUU}Q zwI_JvXk*9o{Qm%_OH8-`e5FAKtHch=%lE$SNcvQhA9qX5|6|;W1Js7O=R?t zfCI5%{oM4$exX{bCm~^i*D&k1`Ni&szANnx+PQ6{9g`hZNW z_>KrC$5TkFp00%bh86jM>$;CR|9sLtrO zifGS*F|Vy+aat z`{$qI)0UmS-E__GS({DDzJfdDqH9IrXeadkYKi?eXk6ozC3zkW-mRTkWkX#@Svp6$ zCTD^`G0XiYAH$F1)h~X4TQ3!JQ?p{Zcg`CGWtRkhUalzW1p2fUY?klW-+Vr_10hYh zcyrM7+GgRY?KW*vnt)qx7rHtVHkx?8VlP&7jFb}a?X`~8_iPTe?f(F_{{RoS9^Pvk zmXFgP5p^1_&85Z7D=rlj(p#dEDT7YaC;+5u862FP_y?>nOI-AIly@3wWs0KNai^`P zXy$0osT7MM{YY}ZQjSMjJG_4t6nQ2WrQAoau z7mw;LOFILA3ZFe4Z^w$DB`AcJ(EYdf;p8Gh&=f!Nu0rk0_}c4X8FVkfYdspKhAxsgwvK#vYl&q1-`MXB!dT25@+!T;cAAEG}LrqatqBOivxn`faRKbRLVwU>W1d=hp z$o@S!&`>0F_R9K%Z^^eR-tJ%3P~CeSZZU6 zx`VQG*Vx78`Ks$^Zi#M;)l?(_;NG0Hjl7a@Je(iXt&iB-<}jnZqC4WCI@ zrM@b{87Ty?N47KvoMo0(8Tw3^@qyAxUx42A->y?y^%ef*Pp6}*!hYSj!tl!&emA8y z=9r#7o&mwh>D%IeU3Tx`bFq?qHfW2DKA`R{zL67FPLcuUgY>o>y zJpM!;q;-_G8fex^l!h3_5KANN1e1}HG4?-~2dsIk{vj*$q>^cCZK9q#g|0yq)zxy7 zz*TMl$T@~Xx=I$jj{|;eJR6k9Dh&KtQ7u_R#n%oVvbam6R#5* z8FdXHWp`m4?^bt@wpwI58kV|NAUkPo(-y;HBPSqZh8X+xmGw_|KepGJN20dU(3^74 z`!m&j?5`q)-bp`*c?Z~m)_k&Aue!eVZ?W4JN}HY1a*zodg-{DTjD3|<5>Nel*S3z` zXun&9#W9hz<|~oPp1deD!yS;IgS_fhi?(1D@bDJ>GA$ zK8XvTBd(mhvdIa3oY}uS2(~+Q*^c%1+e!Bd{r#M*)KvYnqk>D7(yHSnMQ!3wMJf#y zDle%mRY0XG;xzza;YB36sKlMg(Nz|E?QKQ6*IgBcr)@{)@b0^{#PSbYByBfa)s z$Ro#59JJH=KI?d-tgoP>mU?SydbP5JJ7NolIX>Kd`q=iSK|@Bqp^zmUT#x=J@%;LL z>y0sc(xUFVI^j~5T|-M9Wkt0g0!a51kvAy*?>ryww;fnERc3+>#~G)Ll_ST}I&wua zsp=OcX5!r8s=0z>giRkRt|4Gh5y;%&=jr`^{TUQyRV?G_TyeYGqvv3wWMOjLc=P9; ziBMH|V}gFZe?B_0A1(EYxr8_mXz&l-F#xId0Cc(7>_r1%lb!p&r%9J~NF{>qz$JW+ zloTR0&PgMJr^h`Coy00qf*L&f*hV-6a8KX$=)lBb9hiII`}7r3m?eo&590guab5AY z;<+4-J-TgoRiLvpd>d{uryz0%_rE@dtkOFGK~)}4@yA}GU|^AweD(2R^#O$>U}wqa zo{O^Bw44*T0)GkQe}_dbWMIXQ3UWVz=*XdI0|w3% zWM{z{{{SABC}8G1r74;e(StM>2!n)Ip_Osqa-?&Q%c8XpcjVF?vD3E89bGuocM54C ziG%KvniZ9o)n&&7j0HLT`X=Q%QR&TJG)1GD4J%skO_PwqCifhUanD)4g3M-GYlU~I zB~**+M-v|k-|)fw@%3Z>05Iz{i(rYyF*#{JC~qB1T;Y|n=x9`?yZib?`?dCsL)<%^ zCXu(@p3i@)zf;rOD{2-}l@&G8q%lJ%jBjOmn0U$h{BhOW-!8=W1L3z*HkPK=BPzWR5u6Ak4G1 z!Wd&CByt`=e=K=I zr9{miGXvwV);aT_JL{+|m2|XP65T)+b)}GgDAR7~6Ca3x3H<@X!HBmIpE_b z_=EiV=OnH5jR*nxN6icalQH!bhT;dGZ@)bCks$00tms#{(T5N zGVT~GTO_vcZkWm(R}Iovao(!WlK1!&#=uy}LF-1~p7dPs(t#&Ztf zPDdno{yhxU#BvM(g~tL+jD7zA$N6;81ghl6k_iqWPWmQYxnY5VcH>~v2Kk|{0kNfm; z*T#+NtTg4AmI6V!a7p7H{(3M;EPe2gI4=i1ZN3@3M-oUk{XrOK`4i9{<8CM(8hVoL z`10KU0NbL4!V@g>I#CapiPA;%R16Xc!0lw-qt{{V+d6cjEV z5TGTC!pQD4*=7{d1!4+sZ1c`?I{B`<)Q?Tb&+fMmAHewOt~-T3HyI$>t%qFmk^Vg^ z6;L=Bc%$0cLPrF7=^a4n3J{k&M~_iF<5{2{=CfIp_R(KxSs`2p~{WK)f}$l9{6=o-&*^(~nBV5(n@0nIDcm& z4>=%{&)c8Rr)3aNZC_Xw78bdTr`+DcE~bXI^Jg%n{iP-8Bcu>TR>$r?y2t)tKVGn1 z`%hf7?Z%>px|*VnvW{~c^z$KBje-8Zk@p>TSkl!kHp;5gaI9u5^)CXUIV6r3jt5ou zaXUY!dyQzGON~jk-)QKVTP}$Tv1iUzB*)`VK1m}yb$y0ovuWmabBm|nq%%I1Go@!u zkKQ?LY`i4+rmJnP2ny^x{=FS?x0ykaFiS209uG=2riZ-g8?8mQ=SbAmFgYmelN`(J z=-=K`kbjRoG}`Yf7v(DpaNAV3Td6aUqy@_^B9>&e1C@HiA@v|)jtEo7)IUChEjrB^ zC_VGfo~9QIe02~PjDim#$5Cluo`{8!Nd)=o=1k;HMpZ?6r7bFVhH6VyRl?y(*K19-S3wJD!yLXYQHy_Ukp$I$TK-UYS^g+7Z3WaM_Y{1~LsSA=m#~2-Q^>yo0uh(B#(5Xpq+I!&- zi%vb{U`QTMo{SI!xNZ-%zr5KXbsbC1PfUnu5{>No94_OgXLS+VYg}Ej(qtY zU|#HYw@p?pcBJjS=F?KhOt)<_9eQqJU9!~ba6$Je+-H&`$ z)m6z+%a#2iYot4eTVtcT>B``477N9`s*+j?*%_9Z=8UhZfwQ%hwznT{iS6ydC^an_ zwDHCoLmZRJKu{SONhJ6jlb)*OX(WB@ak%84eDvc2j5*zscp&?pwq0ox0+kg4SO`*4 zU}8^ET`h-K#dfkw1I=TBipI9-&Se=0NAk5QCX^Iyv0z)Tg`n&6VlqaMT|RS?%nkr zydI&HHO6;lsVlY6s3CkGZiP!Ev<$TobEFi}BB(6D6YNh%$X=0Qkv6xiHvp~U+n$Pg zWq9XuNg!oUL!gcqrKmC&X~Qp}$j6_nJxB_lEP(pLf`z_lRVCuCog;d8WNp7uE90jP zFC|4qd}#?G^SG2aEBW-_JS!wIs*p(|9^G0!q@L4c)>?A1>kKo{%U+cA!ej+gdBU*= zlZM9wsP*D{q|A3YL4uHFC1T9+)6UscUZ&7mR!h&SZUWdnVNj!U1!f9c^-!m&<4wLN zUqV&f2?xq01|LQWk2(HW==g8if>{s>Db*DL+SE*- zjD7L?^~qN#&YD!r<~0EY62O00eMtR9A?T+$QbdL`{ylw2@sz2Nj-gdZ4tmNNSp0B>XU zfDT9fhe>6jW_%d806-;Ao}2%_K0tnd zGBf@icp}z6W_e<8p>7OOt{*{JH6t zYn@c3g3l%&fD~sRm*1z+);5p|4wup;(o<6B8y608!5I1b^jM~i3gJfwfX$LmP`7&b z48pcm0CBq@5&86yg?V62+HwX8t21LhapxU8luapP4TJzLb&D8!8%|+UmIrb0ziz%V zBWG+$jPfzT7(DU$^#hIO{{Z=sMr;D3c7Lb0@#)TOb4AD;fffMhvs{se3l2kg z`Z!)kJv6Plv?eNUH4`%c8b*=7{O&sY_B_WW?p0tMc$A!vesj-8StDPp22?2JyhATk z6jvQXOIJNAv#e_I$s%%$r1Gafms%4{Kkgzz2IAS=dCpJxazD`Okh;;eDWj?r&nKro z$KLz}Jox=bR>qX5-5gAJWE^8B86FRhwmRM5b92)UUfwf!oV5wAH;Y`R=vlDMlq^9{ zfAx;3?%-3A0H{U7L;+G4$pj34*FT?ETqx30u1O3Rkl4xNJb~03SI~ULzNrF*Wr^5* z10>^;Nk5V6TOp^(T%))mD3(n;)Tl*9E-du%utANZ@Qh@A`unJrJylw$g_TK#%0A}W zNFUFyy5uz!itCh~1-)aSQl&HH1(O_)G0C{&le><1>*9@!4oUORNZH>cmTx{Yj=fVM z1gjip1fII9t*;pnQba8P;g0MR>`y>tz|KKG{BDt8{{YO#9&_*4pcA{2Mt=Pe%+Mi> zDFo--lhC}A=O@QNOl>Fe5P0LEt88G)=Q$Z2C{Q8`D=P8mJ-Vx5*iP9WYU7jFhmzYt+ISp!>8aGxs*=kNAjHEg_DpD&_<+?+4%WAz@TF+i zf&9PAq6dGqrTcX2?;N- zDe_J_)p`rN)~b7J(CQXxB!QGt)WHt(A|E@6BLsc<>o6MB9OQJNWd}RZ72V0s zeDv9tbudXg7!foDwzOc54pg7==}P>GVgvz?AY};Y63FPzRR^R_cN9Nw`*gAy8c)Ts zA8(H*?a&aR{$tL;j4Dr*RUjw~7&Zh)$K{XHrO`D$*4nJahDPX44?f)>j!ZH7kfU%^ z3=n_U`1CVagM4O1+&+Q37dl6cBG7i^M(V*Mv9ov(q&!SK*4X}o|{y%@Mu|Z@c5IbKe>E^k~V{p_vqN?k8lYE zLmveFJbqqz>5@B*JWYc{(? zJr7n%gwDas!-#j4SS=xlFFeQ?pXr{xB1k|0ekIN`o;qn-)=Cp_5Yzh$Zo=bTI^ws-7L_&I{ z)d2h~4hhe&=`7dy%v&RlLQgE@jB?m=z~|0${JMwO zJGZGVF{DnkmpD*iUa?tZ$0r4lfPa>MKDy2ggVj}GlBy*!BwP~FkHjh@OR6YcuN^J6 z-D8@bqLygQQq;$Y3rCsjM_sjWwp`X=h7)P-9bZ^tSJxYaoeLNCBLa$5W4t zikm*E?Iw@bm+sUa)ap8}?pIFwCe=mfMd!9y*v_ zTq2b|H!`n} z&pm2h=1@mstro4Z$y8}0HL@vJA;}GeBiwL08p(2oE7Zw!45LeEU*8y)BRHoES80jY zyJ*f$LIkq_#6ue$j>DE*@%(yB(z-Kah~sakKIfKyaB}xMN38nbVayHV+zGz8UxpR8A{}UK^$P?r<#~1O*(54WO`(&8JQy`cX;wVbB}+1nyEyS zCT&7iT|fqVcnzSErLJNSQ)l7q#Z^o4jV<0vNau@nMKG7vZQI`x?_rMvc{m?q)rA}F ziac^Q`6sI4+6v2akDRq+d>&7RKj+niI8hrM6<@!T(qOhqyT{TV#E)$+3uLJEf|(U$ z!TMQ-Nc{R507wV$j~ViMZ{!T4{%jAoM=J*y1d_l4bK|SBKvY0NT}&e9nxbkw1EQJ- zD>HWu*cOZtv`{*NN8fC%{Krx2mD;^1>7z*s#|kMyp9By36a4y;)GJA%^a8Of9Jij?)~9K`ej~<-80J%l`djdP`F&7}T_?&fh^Di}d%SGx08q zRn#RU)<#JS_R{4uFdvAvuG9zH^*__A$KZpzn#V==M$4jX+MfGt zuxm$p0cV1zeIc)qucaZ0+hSvBEW-yG=c-q_l*M#E!%)Uq`zJfd<)!o;gS`n;eAX9B)HPN;Ibfu;H9Z{_z6+G|wPWv* zVTLDY-atp!6o3NaPpafgoi+N~em51k6|86^W|@FzaU?}a zKfv|Y?}*()YSEgTv-iv1p{~=^zpyoRD64|jYcI5wR}DQ+6*WnTl)R9{YXY(|;iOqI zah|Ym#6?}Y?N`~$^`B7c?OSTDqr1JYRqE?BHtMR%X!R9bam19Usv%Sg!<8F}C-XIu zE0yq}DM$f8y9RT8#kTL>3QtFtk|wDq$M@1QH*hUdwzkxJA#bYZ^bN)HluUE)(}tAo zR-)AvaKS@vn{2zxl@c!4<5f~iu{Z!^V?Uo-a_3*#-4|6+cDP$)zUohzih8Sj^Wh+! zWXr}_XK*Sp`Tj$Ws!d7XyWK)fMP*dAP!P#ZkV2~>qaa!pIGx`K|Df|f`pQX**;<(Lhp1d-_j=YV=k9U@t^W~$To zSu-Vl@!e`}N>_J*(sU^-BYHT-GPoduGCI@W7G1CI9oD9P{%X2PTV9sc^;W7Y6~5=G zerD^6iU}$sg<@^OC?h_q`fDcO-lO_T3pZ9Y7?hbc!AWuhmuoZFKfNQG*V50MC`)UW z@IBrC0GPs;tK_#iX=*9`MWUgrbecICHpv{PVuc3`Pt%_rKiKL7)QGW+6Sy-G&H=~y zboZz956lF-+@Wumr%cg9B4IItcMl(P&QDQoJU`vY1OtM1j}4RlJx!y;P9tABYPo*V z7QTQ`&`Ll$J-hD`gAV@yuXb4H9QYsg=+8@%saNE6y9TtoR<;lW~931}uUWAV9 z3pO@|8&99VSEDvp5kjl6fdC4Dw3Fj*IsJbwy$lXR4DRp;wtf2gGFg-YN!mt1#(Fpp zuNW&J7(U~rBqs2V1-F9sfO#ab`~w|(xU0HK20;1-KI7l7S!6OR@7a&Uz;b^f(%9oh z0LXCWLIW`6he4RTw0LGIzOYhA7=l%HgO&<7Jp(K1vn+eg;1qife01a~V~wL>AOtoX zdE=t05;ZThvwD(ci2nCYgK{{+v-X9dDNUtY7-l(S&w=mIR#q({1dzv{-LXD+{{Yvc z<^ zy;gPfkEiuKzdRkOq_{^dDJnJy^N_p~;c&Rmfz^p~k@nkm1uIW-SAbCimO>2I?YT}a!DBgAHTMLKB{NdE`t?H#)DDctW1!E&7>$+@l*DKl2kX&XJ_-E-6_ zEy}LtLvN@_q@kmhI&l=TmB@``DEmPmzQRU8J!8(@_CEXE`{tXs=`A6vE^|o)BT(Ee z@=>G|@GS5_Q!e__W5PUy?ZcDL&_F$OAG|${i@jaOqt+TjvfBRfZ@E!hnzr$O)pp%C zWtuu!y%|zC5H)z1#DRZ#8X@wB9GJqsSH$(HO`O^9al$Pmb%I$+u2=`VZ|$R#boTnl zZ`hjeD9^HB%gKHHthTINW@-Tnb_2@vTF6Ik7u$MnbZ8R>6_#_N?=Ah*J zXY|PEMuJ9clvEfSPpnSk`e&bi=hDBEfbQJ0HVF*ILUYL@{bQs50B2KeRswfy{Y9MQ zasL2+IO)O^LuU8q1UjQ)A+hb%GH+Pp5+6w6Ol;Y2&~wK{3mtQ+hK^(EkW&y5w$d>t*T34t^6^R9;`c<)vkKy*|LrqjR$dk%b7&}k%$Dh-p8Q$g-tV&Q)0En9D z`?;DmNaYgCj2V=!GC&y5>N@!>_h`38Du6xS}v_~_K9l%ueQb}BP~ z2Ltct?s|1L`XaGU>H2xvxD0doo_}7K2ELa|fCmWp%x{c=_do03qd;5`A&H+m zcX{I+4?R2C%ES{50!i$cYmBxW`en(FX;Pqplh?kKv7luV7Tw8I1b_hhbomr@RPnfu zREKk`F)DdD$Q&Ly{{Rk(X>LkLT9{RpzMx|nU_XcWbPAY+=pk|`K;956voyGtEP)@%+!{`Tl(`mfv%g-OYSrG5-LDumDdybNXYTEwbaa_WZoa%n6Z`oMVrFzfYxL zonZ)A-_kP=#J#^u(&%TXy1>isO4^bNFyEY4d1`&|PIp32zy11=RZ~S<7?wY-H(nTfbzci@$~$c>+Dci{-&s>66qV*P z=}9bj-5&1&hT*~UpUbC~JfW(-RjhOJraDJTQE8~y9T?MvWE!V0FYWsSvO%-B#l=TtR z20{qP!Tb0a>yGoZbrQUggBs_BK6BOS*`D*)cKWlCqvEo+M|CJWf;G0**3#7V75i*Lg;Z(YCEkr>#G>DK!;G%FtZ|@w5;>q|QA+ zGF6BN0FNO4U2{iTcMDbPir1>tcY2EAUnxu*Y%w3Qul;`gP+(YHL8ui4ffr!G)} za2GvqWh*M8n2=KqgfJv~1IOvos%a2N12%Uz;T-f`YRL@lp2*y?`}C3$eNE#akHen4 zunA~T`n*2f>DrYec-=7TxkB=PkMrrKidXe=Sg|MX(wf;B(Mu9YU%yD{vKdGxCCBmU z*;3s=Kq+04VaB?ZL^4dLI3pnR+e&KwguK{iHwlY{K=cwH=7z5vM=czR^Q!a8s zMWLB%Ql*k&M-t+iryo%1_n8;zcgV&&o2k3b(Nb?hX%3)r2iN9~_QHN7A!2L4ojdpVOf0 zGE^Me9bp0vKt{3Ep3e7P-K_N8mV&;%ku_aCFUr?ZNhlM{@hC$wfyoRo+(D?%z{WPe%};|rkzP)>8KdNIc~Bl z0VJhKxQj5b24{xTPLgGo-tF~aa!5J*&l#Rc+Xw{GiYFe zwy=>bw7U*zREXa{Q@K7d_v_cP(a5a-0521=kiavzC!fgl>a@ETX|65^$=<-{@9)P! z9+((cl1>RBPo9E8o_bj=Tu#LkdmR4&eX+;4LQ_t|a}o(4vNGocbm=NccZNt(VWH!s zlLrVecPki29UN`TDkCjZBy0yb8RMrJAc2$abM)kR=cK6%pQCv(uZ1JQ{{TLlAnst2 zR2Zfa&u;V+Ci_r~0Bi>fyWgHq9(?qkw8#iSs9I1|j2MF`81Mn{@8EwvpJYvo>9jzx z0ZB3O@BF>`M8{-hBZx2upZ9V6vyPfdh%6#W*;$?R3e@Tz$i2A@6*XIui6Ny zlWpQJRTQ#WYpLO{j99iVbooO$5zf1gq<7hbNh4cOsT^Wz|M{CMax3BpLb3o8SW zuyt83sa+>}ptjUUCfbXd#WR3^brbNcc*mAOkI$`dN2Xm;_{A0`oahVOd*d5U*D+*O zA()lrjyd+vNG}x8$dcp%n9fKZMnBg-pG9fv#F8{Sw{8I8iR1cxvD5u@Dr0aIfJYfp zbNoKtZD{5c%y`U9?T%5BZdTaobp>@iw5;hU5=3HR0mcFFees{;*WFCD?I+1x=<9)G z-7eV)J5(-t;E&9Iqu1SI`a?rDUM8a`Sy$D*@qLHap%keL^#V9)=ih_Tp#Z=wk9_n_ z?WE(MtIuAC&T=#M9c^5lBDf5?L5Jxa9P!6SAj*c%k2&|~oCd~880Q0_ju-%Ok)A#J zK+PWPmuMIy?iv2}dKT>c$2|mN2XCJzpJmaGoVE{4i(pPW{S3isM>%+!>G0#T& zkF(NK^p@O5MaT|#$MTP3=7g=C2xm4PQ{`yQE^ zfiPI>9!iv$v-D4LYc!nqCk)fl*4x&UoSZU2p}=>j+53zU<#y_EI+-}bW);OQoy-~05(C%zEv=&ffC9sO?aeJ zExzShL_rIhdXlH733dLenllvIg6S%$A4^s-$5r%cDvSfeaz=VstGogfgW#ZZ$sK7ObKF+8XgVvszPZg^?j%|= zB}1?j`i~rvGmrZ9hr>*ya(02^@6wuzs;ab(Hpxgy*q~z>^ZfDEWb7hUMC7SKn7@B0 zkea2T1uw6BO5xVphFP*M_dK+Ovzqxo!*)IX-D)1n>np~htgX}4)t@m@PfC?ERTXov zV42v4V@Amxq`U^$Hi_0s~q<%}7*kos) zEzgpFhg{@`yIQ6qLA+j9l1crkDIET!@_)~#$}aS3SVrf#Rn&}Nty3(6AH{QzZ16%!UEQl)vq##x4W^N)VKj)s9-a!_n{Cu=1X zj7R`}Tyu`AVeuKFH+@faE0eUELAyBi1mOGhME?L0niZ9ci@xELxWO9kIL1Dw7#aI# zqZoc7ZIMyqQz;}|UM+PhiRr~bI?2YuE#zd6zeP12Y1t>sOu@$>!ME?m500r?pNSnJ ztQtB?n}j)6mUxwj&)X-anSLlN2=WnWxIg@>C1M3Ai^;dq_g7!D&>VX z(N_FKOa`a4M#ZBmLivf10vj=PMME)mIl_i+6?_BK4oOq|`mNxRlPpx{Jm=i?-#RZK)8JB)yAUGOS*7nV8+@a3VjjZbAYk8*CE z;;8HnrnL8xlEp>bcxJgXOG4I!l-t%i7E_jy+EUDa@cpsWW4p8(Db|LjgW_(pzq*R> zvn6!3mWzaKYJ#3HVLr8MGe}vTfKW#yllSRwVrVToXRun=ycPYokG+?gUhvUr`(}W= z)>lbqu_D^mrSBC~bc7k5fiNpK0AzcS(%$=8wDo^%yFuNh?IpXhy4zRW?^G9kA83Z6 znv(Bsq%`6StTfdhTnh3@Bx65_AtNAz)Z(QoYKc+#nb|Dt?WS$JydoN9sWXECr#Jjw zDGuJ~S}M!IpH*L~w6&#dwUxiNXe~`}mO8j#d1;~$pkm&nh_U2n1;%`JEYv;4TKiU} zwf6^3U8}p5S|y{n-7Yz|%WJ9?ke86b8lV!aQOO<(ftJtaW7=C$uAHK&H%9%<*%oVk zS}>c@P|cmYN%Y$*`E-^`1UU1_`|6 z;GVLRCDd0`6)7#ihrf{1?-#~os&r&0z_;J=;|FLf3*M;Cny~5b+RYWIOFO%< z3`B2$P88C*dj9~ZyHR)5^j*B}C6iYjTig1JP3G^WZM7{O9W6wo*AaZuDUMMbKzgBm zkuk?O>S3n4rQN$-%eIyJe(!LK^P>A}cDCqB%T=N{>glQG{jViNvC9exB$qX{EM&=G z5FF=uZ&XqV6$lGhV|(WB_QDEMJm`Mgp%BC7VaZa5GBI36e?Xs8a6vc5JA@ zIO&R76;(_uT(*D`-uSb^ner*p6n5@}y2C|OXdPEwrz>mi6}72NZmq3*C0L%Go$6>| zsW1rvJDNXRV;}jH^m<2(mTng~Z@=57%iKCDJCqBdt{S4{Y?d^7s;yaRr=pzH90m&< z4&z_|43ZBAr+CNi!8zJ|{{WX)m{JufD@u*Q;NFoQu3(>)M|cEjl1O3)xcs_N3SomT zcDF6jCMSkL87iVoY-ivQPn@3vr$mh*tDX;DI)#FzqK0K~vHrgA`nyRmP zH3U+!&2y%!dU;W1kN#-PGN3$-p#Z_$I?&$+J*KsHKUQeEd+Z-Kru0^sz22`h&loFH zRa9wcX(D1z0H~{%AbF-y;g4GTzrPInLr&;DVW_n1PY{NZIbyd8edRDp{R}>#hLAD# z13ht{)C%lD7@(_6vSlGaINL`ge{1g_VE&GDi=h1&qo=?zG_T@n6bU2b24PwdlEul% zGd00Y(scliEccQrC$aoLLV>}j>}&;=PB86%y)ztpWU(ix-)$|oIkk?Dj?+h7Q+A(M z+hMlDK~v~WHAB>-ajbIfZ%KW`#VS*Y>;+V)U)I;*z#6a&Qyc% z``~|%=hV01qQ^Z~cY9YHwJAdr_b$ZM6Uxe-*jp7Sc(I>B3tl)`ZN@m%>Za0k!+NP}+W-Yng zV0}9?=xAxowMv$`w@3-foUU9gMaeoFa4%@(?{p)1wdSqZk|G=R zL5&(+AP*dl&uZAii`k%;ZlV@$IqTm=hi;6rShrCLK0L*fR1fngEY*! zo4P1(hFWWumG0-uN`itLu9>Qa=Sx;H%@b@e;|J*?U5%6M2PkQP(XT zpKyGi`M!VtCgeeL5F(hX`INEQvR;r8_;K96-M%PNe1^mQ6RQAThI!o!n4#q;DOB$6cjCeW!03W|l zI=;{8s(OokMDV<^S$7L96q7R3(IWsHLlI)A2nq;5I8o=TiLM*KA)5ez+wr8TQO~nh-%1In^v4H!1`pi07Ha5rI$1Pg`*A9X&EKUwy(o)^Ag03y(WG@JpR1~Fdj8V2YK)T$Qb+drMCsZV(Pqc z&?1C@&BrLm0kMv@NSNWH6uD%cP$XTOUn+MKz&wtW$A^;uIc5Ma8Oi9lk~EBh0dm)ry16-WwymVdAH=oUrcJ3w}Kf|4>7_ctuyC^*O8rBT71yyOP@l#jn3 z=g^8O?B~xb@3)iE_=H4nz*8IJmgM81D>)blMXf^cl4=LeK|Y&upq_kt{{SA8R!0eh zO20~gH?GhyanpoRJy>j#yPWz%c6b=$`E*THKGg%r&-Ys+-#sFZ#N0=do$sNBX(_-d zfX8y@EWSEQ`2%v0Gw0j&&rfpYp(7G8ar9((^V3L%KR;8D+>HJI0QKwA!6o2Spar2c z!_uM>3}mqcvGb9Sey#lhauVApp_y_$B|*6IFmOG&>ba^xPj7;v6hR~t1|*He^56{q zLq0lj&~-*AQX;{gIY`{j4lsBe`{0B8dd*`?2(1OI-SZn9>5&v8r@~uDD?Q!S4~l?ZuV<^9CRWZ zMZ&(BYQ%Fs-}jnB3(1u#ubDk3Tn63FdC6q2^wV+?xri#tc^TuW?LEd`G)1;CT1^B!DVB7pwifYRL0N8Z1(OQj6t#78Ol*uGi<;g{N zJhKHOBPCkH7KgzuE`>(ALWMEx+UjGSbzI3M>v*P>BK2Jz(wv>`t&84hY4M(w!+B;@|RBKe>T1QIq0 zRx$uLW87mt{XZKe*V2M`=}3-X9YnJr9FjlgIq-T+^tC%TJQU!_!0i|Xc{%Vsx@ajZ z&jgzd9pRm3^%a8;s4&JchW&aqHv(f)nQy0%4;apTao4lcR2PNff+Pu&+hzP-bDy^u z@%QWF8y(2W2?>@Mf2;WY`dr9ycp#MpGeU^s0}UIAT#RkcoO9zmdFYr!#CJ%{yWEq> z$j`Us*O92??G3xwvCpy3gV(PlXMW;=xcW?-e?gvvkW}IfXheEYZZj;bpp1-To)6{s z=@mgqNGUR_DvUmJ{6EK~E9r8EXoBq}RkNSZoPKAZ2xz6;R%D4t%Q=mJAD>E;z04wy z_d-B-aL!31hTVaI=cOqkjNmgIW0%fOF`RUiniyEKR>GLGf6F~3j^#wBVRV&P{VUE-=g&=&lcYP8tK|&}Brv3evi|_$5wyNN{{Z#r zIhLHirjX5-8@CT{K5#lwEzU5~2+F^JvNG=5k^ca5*Q<1WrDJ8-s5X$ie=qgtuS;08 zFIG}C(h1EhasKgY9P{*|WsjbcO;vA+6Vr;hqhW} z{ycRLyj|dqifIhSF&s=}VHrP2L&(QINA>B%oXZ1=;|;QbZ+Rn+#2H5db&M5W4C%W z0y-NN6*NG?0oxrqFR=Ro)1C5$Ek|svv)!#i=R+D76K-EihrJ<~wOVrfuq`1m}y(=7*ihZYyjurR~j2?XFdRoehWW`u9OyQA^GCJMS z)=Q~Cn<&LR$x|h|Ry2hbbP`jOBteMJu<0qp%Z@`2BdK_nD%ixZHbEJ5{Q6?9qji_o zhi(LfEM-=aT{=lFL`baq*0zsLY7Gy0LvYiV%2FxgnYVm}S{=~T#hmSBU_5&g zJ^HHXEO$%Aa!^|+YU}G|W9ie;)3l6nGr%V!!Ro%ckyNtPGMx_hZ6WCs<*bBE+93BX&G!z|BvIV7o$?iy zoh9|6pm`BP1N4%h;E#W|M%naSamukxO;b}@yNYoGZqNS!6b$>0y1!$(MW}65m#bXn zuHSG&BvZ#!57Kkzo*T#@^lI4Yr>Tyz3R+WEt_Y~v89qZ28_8_rpFLq!(kbaB695Eo zEf*q^Sx#hLIq_)tdDOb7kd}jGr}}qQ+<{Lx`jt=O@(-S=?(g>1J71}&H22S&jMWwx zYw9Kx`xRZ}kqWQeeE|6P>#<1%f25{H40mn7sa$Y8c^Ts!a~I;`Mm^OL5LD9Xx-=pA zB#_VkE&Y0b1I6lVtMU`sZ8d?ar$nh4x7IS{NhU0xC&xt6^CWy^2lwdel34&a2iSiO zzM$q*2RxoS-N@}u5lpf|9v-e|7Rmhb$_F0V>M=`$w;%I$C%m>T#YS?|F9dlU^&6v1 zzBd3t{(SW+u%C$>p^9QtDEGvgAVobvJmw>e{+&nQIA&bnG4r0K2m`@Tz~Bf@20Dzu z6`X^}_RmgKhFTwl6tW0V5Vp1^dU%uqbIw5Mnh658JDIwXt^Yt5wt5`=Be} z(|5ZaZMvTIZk(&xZc?KBoqI2dV~$k;(Bu?%_s372-|QBq?TSOFY3gXTZiTHh#@(*8 z>lrBJ6T*_k>TnE9M2NU-ePj#{qtr`jr9kTiC5Q+H;{Fd63{22XjQ;K0j(UEDx^>;{b!k59T_IK%X-i1pR1!lhLuwDywW}j#&N2llJS$R&-e0LMW7~EZq~_ zZCl%`lyljuXIgc2H8!f5S*hny{oT3xe}+2Vy}bB@)4JXWEwV%`+JW3}p_RUg4o(U) zF$aJ+$?`hpy}tKLRT|S>5k#tRlAb@A_UTPUx}uHatfZOBDGwa*J{br(9FNQnsw?nn zJWYHtU~wEWej76+#JJZc^A%#8RB(071tj`2M|8sR?&zvO|Cj zJj*Q!jfq-kbGB0O^sgB#7*dVTkVq#!*z?z!;GpydSdt7R z<3FeR=caXiLheWGd866`F=)wA=bVA#uQRCkI>kbA!yiu8=Y#e?mri8{!)Ou+U~LZM zMCT%&0?1DNv0#(=f77C!m@5xK6C>y^8S%%Cn!SBX4h&YA33teEmc}vq<3F!OwbN8? zDz^CsPb9!N#&evnANKRpvdh@RGZL#9TJkYw%yMOq7#?~G2*@GX)G){(;~g>0SE?O@ z{>&@@1dySBp<(Cp&qS?F{{R5VXqD7>{oc}lFE~Em&!bX67KYM=W;`N8BGIDlX&Kl9 zlk0iF{J8%B*QF7)1AQQq#t3OLPwCW1RNX-_wUT6fu;voPHoiqyjs0BY` zSCU%=R+!+oKVWb_BiFBRxuL^a>jDgne778Ak>l8OtO(aw@XknK3yiL;P66_ASo6nJ zS9M@&dYT)zq3Wlp8&4cd_=IO5XYPKHj>lP^?6%Z?!W%^kN zIKdux@%%ctZMZxnUc!8gZ<<4lSOZyxtVFAW=Mu*kT263 z{n+>epwuKWGe;Be!N%e|^tM}(j+Lk=^9(X$=13$Nn0vS1A8wjK$=q@0-`}NDSi{LS zc=a*$4EZ2rj+IFqNbwbaR23V580j8y!2pwx(C-v*xw*XY&MfVvL>!dG_ga zH;+0~2FAOO)xz%Mr?e3m_GNdGjz^xpwc9EylBP&h6{U;Rm@@(NXA<> zamT+z041J0O`%m45F31*$JlT>Q7zu0hF7A7DCJl152(ALWK&T{n zKY!Pz`71>|*w6m}5oH{c?s3#&%5Y$tggQ`FwN*rkQ%+(ssWHE&f#>t-KB1+|^gs|y ziR2F)^rBmwj(3! zOT&9rTNT+t$s%n#TNvl3n>{2~Hz@+=YVLkN2*?@!qo{2&s4p9UezHL$@6?*XSd_KO z!#fT)0NBXSj*yd?;Y_en@J-^G?U%+#n3kq>bYMQ7+6Y0&&kB zIKw44Aj-vxpQHohr^NIr7ZAxpf}9vOzQYB*;DlC(nx;$uV<0SN05Qkh=a0*;t~yq- z+$NLfA(jZFR1RNbGas-%-8ih4*_mD2G7rMU{knCLsO#LlMNyfQf8t4;c=qW+;Ez<{TLfp0u0K+euAIYBTN>^~j5LS| z3NeqiJPvyKG?j*-S);qEZpi?M*f9R-7(dVL(kw|T01vDpW~n2$6!OP8Co(n7ExLQ% z3Q`($du(Y_5H#$h0!b&5+?68>u#j9 zLUrDxk(Np2xg|B8C0|gpdTY2i-VW3!fBH2(@CYpC(MhfPpUq8$G^*6D0pSaq(%^m*$O=!#Y-p2PCXj1b9I;}I$3ad#PyRZyY zI_DX|JwJD%uebF&ClTsVF?KPaf01nQ!$E$aZ&72W;pE~loU()Ybp z+q>?vrHVDCvtKFDR)YSVZ!R69QVAn-V1e()Q~g)k--xc~U!~L<<51f*mZfTTr;4vs zcXroRR`JIhNGae!J9!Fm8Ud5ieNA4P7VT!YUaYYtMZy^5ip?F`11F{Q2;NUeaEw0f z%kEd4b$RyFP3e0*r?Z;UlUUhxPOR1~scxE=w-lOwY3I@u*7z>VO;Ys{J0vW|nl^7; zBaoJ2fT!VuLyS(TN|t4%Jjimd5NsQZi))~Rtf54#q$up+^o$kzMk#H7Ei#382rz&_ z1Q*E%*!ey>jn!5?OtO#?J@OXY5^Yt>G zi*gW0>JzjQTW?JZ62A5g_#2W>1a+nX30VmY-*~K2rYVUp7dK{aIvY(~^{sBdsJed1 zx%Q({T5WXpsEfRpN{ScxCTtvqT7-z_2L~DBIkdZX-mctf4O#HjsPA@-O?##7)rS2| z-1;S~5Ut%R=e;d75d~qCN@}Vwz>&MtD~$a|JlK18tTkjL+HI007C-oPYlx#hd;|41 zaC{7YeOMCwI`=8*mT0LhvPVlAgXvUmEuIIA`RbOd52vcA&Z1OKx6@H>8u5!c6)Ke{ zBex4{-xBK=dNeJMw;hqw@z}MUP5ZVT@~hUB5!UKS8rJrCcZN`Tm_ofp8VP#_gP*y+cJJnqet$OWgQ-;{`rs)yvrL zr>~q(C|U`oq*#biyK9_yKHW^qI7Fu1m5qx4e4OL{gReU`r!;P%zlGQO?tb3s8fYq> zw^C8*Dx2KDG9mrM2~AEn67EOVcwBkv^IZ?yYRk@+w|3i9YEJ53wG?qt9XWH+b6dSC z>D`a+!In0c(~M*4bWP36am6C>2^2LeO5Bp8vHIvdVri7AvXX4z4gT824L7KN6E@|? zEOLKNltSb%9R3l?`6sPusV#aQqf=ZvJyoG@T7S58`q~{c1q~*gr;O8GR63-oe{{Y?I9ZlNr6tOnP5u~lku^=8nKK}rI ze_ptUPNmgixRI78C`il{5-bk)-(92aZ_)45?um4>45h~FiiK3Nm%nHEWs<|VCtc!y zsB|TY@1WXcuBWS#vZEAH(^es=qiTK&N|_87Y5GC-{W_|92-SnUeXP^-8;wNvMr=LO}6N64JE93FIy5;0)l5?(z-+J~~0z zOXuw#`}UTyNYAZs?)8jJ2h@un&%(?+WbnUkw|yO?teuA`Go6Ny$9RE?bdrw?$7+Q< z*Idy!E!*W-AX%<&AEMnE@fX_tb4_lkvt8s=xZ0tu%~C3@J4lZI050WN{`Gx117j)* z5xd5C&+%P#wrZQ_ZF`d(_ZGSLTCV4Jt%6XWEl*8Nb$SXac-c`)$dJ>jyAX0zHgIv) zk?d{zu-a=z_cHIHZ+fd-TWofla^A0ZzR@SGYKp$TdUzTIsFEQ$GJ2|bDxwUZaNP3v zg4NJVtn@CE(>jLzcUijAXJX{q9j z$k}vf1cu4L=aPEzkdR}y|9f_~j`nz9o$edaP16GcM7&F|ikP-ymZ-z%w$a;s@h0su$U@&5qV9ccqp zXzpk}j8#UmjDwBK!Sa6~c;lY49*&Ng`_*NnB!yT=1H11}r^b4}@9;%W3S1zl zsFrGZSA0@P%vLfvImQM!&+FEK3j%bZ#R-UbO=74qGN-bf9_Y3puiqHUxf}t3k3W8c zTTmsZBq+%lB5;LMhUFn$_e5bQ< zo-x${rAj>nyQVD6NCe~0+m9YP)O2&RRWK2A5Tu{h&B4MQ?I5(nFG;D4;1jflw?)wBV?Qp3spKaX1^l9e=bV(s4n zSlDblyAmC-N*ev=?Dd3p#zkX3&J2>(;&Ml9iU^$BmSKuz}+F)z*6}?)BHzE(4R-r zMO92~OfM&&>(W<48&f@LU>>$f>k)q3iLS|6;xTmh+|ilK+pJqMn2~Q$5!Wa zbyW?ov>ylJqJ|iMv^}@H%xcm#3>|JUu!y#NW@kP;l70H5#ObD0RScr-^aTB)Wh~T7 zl2f<%5bI)`VG>3-Anw|H05kqQS#}GgOJvnF5=8SgeZH8}IGCcrEOiRo$OkQz+_*e_ zN2(IneSy+9Ml1B4!*I`>asleh)0OeOH#pxQy|w)@_B+&*k8&~9K$Jo+9$D=O1#H}9 znY7=fMRKK=mCdQEY<#S+PxF}29a;Q7Z%G=)msbwqLc z63*1{JkbT4Ya!m71GbsbTmBlgS2*_0J^1@{T0wA?nf_H-efL%n zNyy2;^Zx*Dxl&NOkht5Wz{;lg;SWeDs>e|xw%oJ&NBsW) z*BvsXcQ6AbJPKbUYg7`TaD9(I_B|{~E`VfEQ?V(Lwsyer$3vEANjd(IPBblec97A= zgnH>Ab{WJ6BxHZCI{B!UW4SI7!ZHFOh@2CTf4ArP^xpuvqRM4o91-m3oG+$TCNI?YW&z$>zKAT!uBaStShLkz~0K_VJ7yu7H$N2OQ zPO3skf}J-I+hRbuAK~x)dJw6~7g2u*7wuRGUt4Tic%rA5P*P4rIU*T}kYJBLW9Rzx z$t5@ru&sQ#S7LJb$o9|r_vzMOnVHd+hK*5M7%9mZ_sQ{`{{TL`FIcU-($S~aorVR$ zA8viR5GJL`C(;xUEWx{v)+1GsLW{MkE9w}A42viOCp>~j<~nInP|~-jPf}Qq#ML>+ zla2@EI+M+7ud5-Ne?SKeRv-=ramObdbB>$ivD_jm7U5MP=XouR5r9vV{#_dq3oGA* zI)&vI4Gm2dTgb{_s2JgtRA)YV43x7H34x@*8;_~?`{VTLP5UCX!w0LAEQDl?Z^8CH z{ParNYpL1Y>H`D7$j=!(`01xAW11W@01gC4T?9|Ne${gZmChkjnGITo4K!q@0gnTPOGqi6Mx* zBIbqb5qUnh8(@V99Eph_9Qo_$%SJ(Er_M%5$2|SNpHJViR6n9y)egA@K*l|=J-SmJ znj)+c0O}QsNC+4M$@BX33Q#Tyv=U}r;guOxn{!0U!@)pvk?)?3c_1;ovOO$Ou))eG z0B4c;4xEj?IEYgcoScvkpZfGY}nSPL<<8i;LSpjKP;4M;JJOXF2o0&N%+PNFLD`bvtPlm<(oB1IL{4_dO>N zQbI&zLzYf5G6$XyPNh=7d%OV_V-bqFwU{7FoWaIe?2jw>NFG7^kH1lyk~`4X2fNE5 z6wbiCA{?Ehc)$SrcpX^t&{8XqlEL+#!twb7jx*0aA*rRJJEAodVddQ$akwt*44-d* z=z4V%B#=G*pifwMM+N(aNz_+8`N*no2ivF_P_fF#I8-cuLDiMq%5zVuuP`^_j^!#6 z1_8qn{5*AC`fnsP2!Q3Fa0lwAuH8x7rB8R-GE7>5X}3z3%d-cz)4H;_ zP=nK71C#wvPl-b=5l!0c3pW_5z&~PeI3RzC>8H09*2|uP(RUAdxUo$a0{7eZBbe{{Vit^!ceo^^OGX8W}}ul$PcBh<(dOQC?{( zC~mbE3hRA(l&Phtt1gZ{#1cXN9doO{9fYgUbrlzzG!-?vLTPf9QVr7ESoleZ@|@vZ zHX2=x@%DCahJw-*bppHW4>IcIPrKr(W!Y7R9a{Wo42dl%r-H`sp z)zx0~xAZ(QcQa9E4bp0QraHldM8E?h+2c`a1>1(^?m zeY(-es7lk3QCT`m-*~mVQQa!e-rbU(;Imvb)nvPCXbgw&5_2JCNo&r@ANZI$=xnPSV9!Urn6lgQemtoKBz)+?4(uxrJR zAhwgPu?MLnow?`8=cQJ(%)`z{zC84fQW`)3Kba$^Yg+y$`yM#!rctLf@B~oKQ%k%k zy`05M9!^==j(>(aV2U!c5reoMM^ATYcU3|;+Z-bxkAJ^S`C})l0*_I?kOz!)>Xm=I zk{~3EvKgX7ObLQ~`4F5BZle_H1h0aB7gD-KEd<#I{tF$yemad)qWaE!9mM(k`j=8a zn1$O)U`l>cI5LM zgWVgDea~N7Yd1qRG>g4mIYM!gGlTpy)G0H7Q>45+fQhU&1F+rNn)v`{kI({ zsiL-3NF(|6T<=KSoCyHI3ywy9-6x^B+_dFv_N%=uO*_KoI?HuzB_)J|&kfJ{A7j!= zI;yK(Y*iGKO-oTvD3X?@2P*Nle1bf6eB1T5k?yoq`eVBiLu0CdPl5#eXF})T(itY!pBfmt@@JP8EQJE zIlyDi#=ztgkFh;ACCZNV5RPOJ)q(Wn`S;-T2%S$=D=fj81{G*h3CUv}EA6*?wC=s8 zik}9C^pUBmw#s&HI62r!`uufriPIlQmA7-Baz8)e*BTN^>or_85KlEc(8wN|vIz>b zWO4{2_;t3sMe!Uil2ceU)pRuX40==-lT4`{PaG@l00#X2Tgs2iWwF_LMatBt|7zf*o=74`MO= zI`CC(+;_?w(-ma0;Xt)YdI(zele>pT~>PfgB26B1lKg+LDaLFSIW<#8V zxblAe5|;>CCEn7spmOXoNzb3t1oiS&(ryEEj;wR|dG_a^>eY8J;33!sfh|*^;u#xp z@t-52aT0PoYZ)6!1L$R-Q8mJjYRz$3?=l9q`T zoFvWlat2P*{{W{?B}yU5hShQj5L7jU9C{K6+CC%V0Z2c`qoSB7V#Y$OK~lpzKR@fyWhEuyGZ(S6DN58}a~!$j+w%Va*ZFiA zYN09hMZL34;lQ3=^b3u)iBRY@kzCjk-m~a1#$j){v8r)Rn!gjL5BtKImfvp zj)-~U4(uAFjQw9n;?L*PfRrlc@TOQ>ydu&yPfs&b%2`@A0|fF;Nbr1l$68}dR|1g6 zSQKU;miyx#f0tQxpXBcmRHv#Esz1d33y;1(`5vzgGjhVhK@LFtB>ul~>wE_oYk7LD?hfMfs?f&8MN_#=#ETsSq&!^zW<-F(W$;V#gZ3EbQba$qQDnk?Z>(59IMp%RI)2wxe z!2@_C;GE}@eDpHRNEs*c&mA5kh=%jL`0K?`3H$zicniEHWR(~i;4aaVlgK>}gd~hN z9(o7jB#+^N*PM^J1pD+woWOz%7^fSXl24w1*khh~J$wTJ!6SFy&tGHwdCy)Pp-PVN z@c#Ea_41RDdGnvwp$wnn2I`D*2xV#Fub!!LZTw%u|5FlmCgV>Iwii^LKw3s0n3IyI`*%8ieX^N zQ-TQm`nj|(Y%Vp|$_2eq&qZvfnJ24~rZP98us)dcl6-!d>T}#K)6&m&mg%Krj-ndJ z-6gCeD@6Fq5Lj&>u<@VobzU(#RMd54UynF+(#|2mNsQ?XCJJg?Q|)6AXONuk`y6|4 zM@dAo118+BsgOY98S3Su?H;PHVyz`L07S?8?2*=1KUL!`Y>ku;OCjfH@&#_ZEl!eL5XU9@Uve#13L3i}ksVAstBXHwBpk2gc&++lW z>e-;|)}mUdMPAsbo^6j^O$6>0GIGE)OOwYO^`!L{l+$&czB(?|Ynqj*>7q1OTADOQ zYNQ~U7?<34a!>2keMT=LT+}2N1l)~;NKGu&Ah_<1eoT!tisbKbIW5!0n@e5q(|o0- z*;#a}^qxUWLkW?}k1c`vkLT6H{=_fsA`jZOLK%kjjLhu3{gp6JkAHr&FKP4~+7;^S zUOKwly?j1_c<7oWiU8q?jo4yI0G@ri^;R_|RHCVB3OfiXG;<1>K!F&xqqo|+lW?ii zI)hE)x_ z!H{R81uVRf*&yJay3X1T#Z)9UmWwpX$&IGX5Cs1K@}zryT{VBPuHMY7YIM!2bdiZ= zij&eS@4;Mtoad=Sq_TkRB>F=JfkfDY@5VV))bpzl3upA}#`V_$cZ2Vqx_43V@!NTw z_i6tCNo9PXg1SV&&+F$Omq;Y|W9@{2hog9=+;=Hk!xQ5Gcp3Aaq$i}5X%4L3U%Vo) z>7cM6`|gfxB-LxkW@1KjpMH)Nm1w}O{O3FpI_S6m05Z>R+_I&@`h+>leBT>?mU<#@ zg^dI^nr%U-5Qe~6L`()g=Wcp){i~n@<~~Lm{u?=3fZg%Wb6;LT3eS~0yqxEvp02&r z4eV45ZSX&*Tl{=4X&ur7sjhrB z?kc2!IputN0mr{dpW*)iwP9ovNl^G~EN^}!@INEx-}v;O?Oh|YsQ5t~DQG)J0$t$I zJ3d-UV)@S?Z(;r`*4Cr$Z*a7CYd#z_ri#=x_NXrUHuZ3tj@@aanp%p=jbV6&4*6ku z7wL@#6@cSCW`5?_tombI-7K~>+ikZZMNW+|k-f>w5^_oB`1LBccXH87rSztsymrq| zYD<=pw##p^YKqNKbfc-Jh3*wK<7!gMiWw%Vk%Iycj(F>=P|7v9M70FFvAb?JbIvjI zrXp2p(yvI`+N%3OMS9W|9owbV`e#-pwvM9DSE=-bw0D1!cl8o_NM;cFq1ZT5rva6e zkjPXZr?_{sLsn_od#|heoksf8K;Eww8wF;#62nt#p2Ko=YN#NdQ4xMeqb?nB&m8rc z`?2vyuDjjc8&7gI^%a`$KAX2wQCqaj%~u_)MHi}Z>BTZKZh1?wQVSm>fS@#7{vs|F z)U|NacK-miwyNpu6;^6X%_W+;qO#pfQB2g%wC_<>BB2noBK;?BdJ0?v_-f`QDhmoP za`{gLn-(42(37iWR1~sEAO_g@>-GD^8Br^^YYW-56v zwN7wObB}DEtt)2$$Vt~&k54Z;a}lF7NVL`SP&~;MrS2C9spw^%=@QxDNbT{YOvXjW z;$YYqZ08y3=+hm{?iJ3e(WP#5HdADyt9fOus-TLJwncEKbfI7OyLPBtfD{sO=dAmu z;k4Hz4Rfiv+vpb4S@QK(EiEaQpcu-jmRT4pMh@e&e|YryWud2(fdbxclob%xRom`R z>8U9GWgS{1V?2jwjeRrp?jKS6brwv_iU)@;@gAQdT);^e_wVr<(@^Pa2X?Iur>>1| zuDnfanoDzuBlTlQ;tmhexZAQk`OluYQ>nDAR*}^ATSSo>wYSeG+DRay5=#%b1FnGf zeXUnLaietDtGG{6nx-n5=%cZMYHAE(o*Ho^S;R{oa-{8Ia!*x9#C6j3+y3z0?)qA~ zJ5}l`s+i-gTWvi4klnUO#B(FY0pEki_k8v0xu{IAqi1_)KR%FDNtxCeAX%Jo9Ahu& zYUQM=sivsY2p(CO1Mba^q1H>Wk_eUfFMv)t=d9i> zNM@{5AO=>gdy6xNu0_`Sn1lBo>RQGg1^k z5O`TyWs#OyA%&Hvc+j6oHvznn-~vbU=$po&s-uE7kJV*}`h@541?7f6mVaKJZ1+mr z9nO}z1o?;~o-7mA8wqk)=QN>vX4qUX$39n)g3J&JRwp_ zTGxhZSqWp6%6defu|C~ZPoPZ7wOKHfVQMY?G}1nBzYQ_mokGdIdC#2y5bZEemY zzYt%uqN?pJJsDawe!ytz`ic}ls%mPjsZ%XW1^P^qG|XAClke0gv-+}wMR#Ae`pW3_ zliGBaxVGKv>8K(PG?7Cna)_jWSl|Kr^)C3AN_s7ErtI-eO;!Dx?9PU=)y+#FbQLtZ zdWtE~5ud{<$T945(;vf_qm#aUoQ|mySX;Q(^EEuNt1PG)j?%0MJ_i`0Li*2~!>(q3NjLf#(C9tFjUgIUJt4JMdv> z?H~IU?!>+9wp?wOde~y7ve4COy4dT|o;oUt{$h`8M9EO|df5R8{md%cgM~O-y>wR_ zFL674X04=}*>a@q9)*Isf_i0!Xr*fnyvVMA4X(`0Ta4w8j;ST#l=N$yw4sziJRCNo zV(%6>he~l=PFR;ZW@NbZ0X~2Md$0p&-8y!Q{{V2>bGvxAL<)x-5TO0KXVkR7K`WFi zwRj|F>IakK><35MYA1@-ZHc#!_ZWo0C<8v2$o_xh(*^#lNUnt(g+GJ<6+!C09Qfxlu=!}UH$aG34XZOONATA%7F14_`&}Gzgn*U02L9n)_UeR z>5VB_+>*Fo?;pR6_|I7{w=${kZl>Mzq0=0alriZ{5sS3`CyLETxABLF-|~^ zNl(|v80XG&jCFFLO-zsZQTB*RSPN0-_L{Z{5tRAwW<3 zrvo_aPg-8FtQ1%2>FT1e++Y$>UgxHfDJoEwUD3?S5xGY2eY)lq+NI^x*Y;M}t$C{; zFZ`x?5BMIt6Y#g(Z3$)U=8Lx7yY*SG?y}iGbJ`B(%?*=F+nymHlAb!5X(V?@fo;sJ z!v(iv+qBQXrAekl=_K8pYCQJwjO|BBW`!zT&+jLM&aO-5y4PlFMvAf5(Chk&l(lx| zb*QsJ5t$)nr=3-OMaB-`stYmTbY_)M)U3=-0&Xq`u=erok<^+x2~-tI%1e}je9SY7 z;!~@zIVd0inTuin07^d*FO3TmyoFTf&+E{RB;H0?h8uIn2S^g5_o0Df8N#vq^y;i+ zBhvtqMq9xCeOUsbtYsFg!UYyW$c=|kxh=Dhe*GT?-KIiL2RvZQAq-z{%A~CM! zEJ<8oV4gpZPSolFe8dS&r)!Qp^PkrsblR4ZoT3{la2enQP)1}Y543K{1MTDa^v_$F zS~Sig{@`LxG4J`D^z$#O@@>J!&>KE?d;b8BKx#Q91ypbJ*pkW)4hR?Zv~yypXwf2T%Ntofix09crYTp+1HSmACL#6 zzZCPDZpM5N+v5c)s5?z}YN(Q6%(8ss2v~u^`s0(IzI=5fs;G|FO;K>fZ&L*gS=%(C zG{?%#le^gG82gjeS@9EnTjy&&94YB-_k@#4cGj|oP*+vkq>7#zx$bk#=m{JFArX{p zjEp+-lhf2{2NIS}fd2sOQ2cqrg#)Qlc#pV>e@b_H<7S3BTb(!U7~qD|!*PyUyB)?FR69{b=8j)aF3P|F;2#;s^yliF{e1DBI+tl$ zp#|F9OFAK}j7TGFHVMJU=g;-(ZC(pSI4MEFA6;X)g_Lc+td&K z9V2E?LCM;_2iqq;{cK*-%3-eU-E5mn-Mf8DB}COc`meF`AtYpyV?6twxtn@J9d%kU zBW%tN{z&Bc>!TV5u5lM;7Nj%Nj^EoMqX%dVh3DtbBXb;+);p(EG}QP$SwWrq^o#C~ z&X}ss*|cobsWlP(FHBXG0CA3S=lpsiNTW$THmrqk`UV~ z^Zx*DkCKSxx5Wb-<2&*^pME;|GoNGa(|_#J3E2cIyyWfnAF0Pm4G3%q;6kKl1B{Qix3@%P%Sa&m z^?_8<_Yw9&?+H;G$AQYp`JQporkZ%;LF>n|AFuaHGIQrJ+}rP|WCzW7Wj_4i%Z}76j6ss^SkBTu{fq}E?s@4Y zO;8*|EK%=Y#K;L=M?^B8Z5 zkrxS6;X;kb=rB(>9 zxTTHG>xT9RaL)%P@0|Yt>(j%PcT(m>5^%B#T#|Bq{{Wv&)e=uCxe&`Cj2r-}H}Ut+ z`p-&~wVo7!?9j;d5uc@vSjYgss4*>!2bYxd}G{r=c8mY$A(g-HEgnanCI`Gx#*}Q5^pW(h28tMGJE;w`1Fd= z&)ysgb>?U}CXH8XKxAjgEYh(!#~;T%9U0ss^xzx5qFBhs$B%xSy>*U61)?vK`$=LC z9ysXVpG72s6C?nrj@%GAJaNxnDJOV&>{0|Nkt8IM1R+nCc07A~{r>>Zq_4g3eHt>V zp>UV9{BxGZsKd=3IOzR6040Ir?65)|fPrtuQ{fs)-?{&y=!g4xgJ zaC&T8our2U0NoX(n+kX1Z}1u5{{Rnel`d6i@hN7#a6OIp5y$a@aQ=hC5de+|=r;V4UO+D|+;DU9c=pF@E( zX9qr@=dRa)tKu;EN*p62hyt1FG1tF_yOllPvf3n{L8`6PliO-HV373l$satE_!Un- zey@j)orXd|%J3F3$>4R3eh;-ZL^?ZE>9n>A=d|jRSsbe$DGf|2LgW*ltt33-$?ID^ z_P=WgEK?HvA_zBUf$x)!e=fPEF-)p_PHK7mZX)WDd8yE%FYn!F>b)}iZErCW6t$JH)5aWb)bv*hS*_OtOH)l)r6-0;G-Z_tOf~p#k8?3RO7!Yy@=ifb8Vb!zn+1b)T2T5^fAERU z7>}pHJp^oR`FdrNdeyRX6O#? z-g|dXcD2kUudv*xCq$&-jU?tb2`X;m8E#j{zqeV)oyY5Jl^J3b47a(!;B%g*DI!$G zhvc?+Jw+?1+MT6%$IwaRsNch+(@#{?2FYK$1c#(y$8 zjjC|D$tAj$(XXdXxV8euTl#e~4ge^qz}2}x5W{eoy;V!(Z68YX+Z!>Ea&QlW`t+gF zN!%o8(oHOD6XT{Cl~%rB zzep{R54TqH?UEv)MMXj4PiNFuttWD~->er3n^n$>)L1KNB--I!3ObYaD#Q`s^=wy1 zr@N(Uj<(ZHOJ>&=`UU-^KqqathTO~QM!3Sh0%T|0efo%Y>r30Up0U#!TI)3MQeWz- zDE?-g;o*?d&hfbW;zUD^c+W!DJ-XGsroKlFddOi~jrNP}AR-#21QlWb04s6IpK;Y? zRa}(U845k3$KSqi^qEu4tm)fc=s~A7HP=N|*IBOi!E~_IyF;jSrPWA|pbUb^pZHRa zaO2<4+p2~N#~BFbKLDc!M0M< zR>KvqRnf&WOL$^7T)Al!I36S{%rXGTE5`?_vbqZTADXqvB+x9!Vbso1PE)7e7b!~0U{!#TdE?x4**b}1+Uj?&40=gPJ5ov# zOpU__KW?7tqbgFNd5MS&N9okLB`QWmZw;v_3{w`@ZhO&PrJ+qLtf{IsK7*``Ls3Og zM3PdeILhunQUU$kibmn5ea^;!2t|0gJSJ?qyxPq57Be z>WGStI@);^8~x%U2tt1vpKOH)Z(MKOw|j;b=R5&aLb_C5&csH>ASl<1+VOgTD834OLPt9wb`n(GTv z*!5LaO?8)Wj*7U-Oq7`?0g2A!=lEl-&red-)DYHEMrx@lqY_iqLoj7zBZ4uUj=0#h z3WOMmWMTDwN3A8x8N0C>R1+n;`tT6J??Xld?N z`)xGTl}Z{JqOMZ7z~>+yaC~_g>D{lDkCJUWLY%2efCwL-9Q*j|5@jhpgQ(X30K8oZ ziy_kiijJ%!2e-&Z+~8CI2cOsT={s9%eMb*W>kBc*`@qgKk7NCMcU#q4kN&0?Bn-1v zDv~(Q1as|rs#1xE)T>nEnVoAnfVl3EJpWjWav z4o{Cc;~$~x!7}uC9P<<`J^4d?mimTwMU7Vr$oYZ(f1mjD18A;3kXVq%xbiA|5Bh)C zp`ArSIchra#d4!y`|>#>z&!!=Rkkugr>opY8&qYF^T+k-LJ$H=7;Qax3`6=t+FM=2 z(j>%75##1L!29Q=i$g4OBuz*Ok$-r`v9X`)_Z0`7#~}3bq^4qFvbljw4dF1iOT2?g9ziT|S;Kkzf_g2eDt84m zP(&m=15=VY=R6PedM+#E3n%Yw_bjpHjAJ~LljL~LaniW2RLl#0%(2CDpW02df*e#IDPQQE~?{!Mw>=RF_VwT?=v@})n z6FXH!wW2$BZvbx29|xbeT5gZkCQ`biq*dZ_iqclm(ESl{N8L*?3LOH5%I#u*L;3#z ztabNQmWsK_3{-`s3}RIE7-NzEAL}FAue#TXsFX-h`u(Fiwau2<6wk}{kIx9D4OJr^S&l!iUYe;0<%#`IPZcj{oSeKOLMdU{xXLr1AAY@BT4FNO z0CS$BKQSkQ#N_eN%<}uO$J?(3EE||c3A{;uR-IXYdbWHDJozN_j-kAJEJz(GIK;VZ@;$NFr71~2UpU~C)O&k!GyKnbrbZ3Tk6lk9Rogd8qq~QCnlA({{xWQ9#e?$da)#E=JVB;{bz?*Q#N2kGI>UF-lRq zXPkr5rfX;%!)ukC>tPOQ8$0EgvoX$kkz4IB*DX+YFC})tCMMcz7Ym8%t-(a znW>7n4Ueevj-Ki1<&>&`*e8IaIX|aSCMz+}%n-8BE6(6J7{ZXb`*LyC zu8+4pwHtP6t0~8iQkj_ky!A4+SahAb2FU|SdsjCn+iJ= zPaKgYGPo!H6a{gX@qh>TbiSIJ$q10F5h%$dnqcQA&m?Extg%{0KM&q5+_OX;8`buS z8Z>=V5&@M>vASeq+zfdhdNFlgrAHC1W%Z&ia9TKrJ~B$LRuWZPLX`ANCUf-Cj5phY zIyr81jKLP11;_^!*gtN16Ez^+E!rUai6jNf5)j*H*|!4=_(XsE<|1r^Zx)@=-F>;D+Q5eVUSUbeB(X` zMe#t{A%`dhOPWiQ5tu(^Qi$Ulw<~S*si{knfAe4*dvZ@wIyq;OFkrS;R7)WxLn5gl zc>F|Q{=FD)6x&q{6#+wSY@o*@{{W5GzqKgA<_e9k#_u1;&rO-!j3z;M9{pi|%3fL} zaX}0_j}gmOnK}EB$G?xr^e>UrY@q^K;s^1xm6AD8$;k?yc<>LuNmAtzz(kQq1P$$v zJoGiZRm55HA0%G%6`od);L<0!_0J8Mug2_!8MO-QMobjI= zx7c)3X<7mp3RnPU%MGI&vyyZ6Js%~)@E7-S(UM3zm^r}r91+h+O=apx*a&Hq7RS&Z z2hSvv`hPy0>n1nM&CUxdjjSWdbi4?eT55OPaCV{$1LNBy_&p9iHyM&JwDGEk3{g;h zV?6lx#($q*B)4hzML)_2$W{x9GyO>&ETpEnY?`3W9C6bo;$;p$h{68=9Dcn3oT76) zDuGHInC2&Ym1FLntwFaDT#Ee)Ht;#dKR&97quyf~Blm!gtRCseYCDIjAJ!8Wxn-nK zMoC2{$v)@qdVtj6m`d^WVX^OyzNf*1V6rd$Df$TI70MqTzZgL(FrH-%h0oO|+;n74 z&BRC*6T?52=}b{QT|z{vTMPk21eaobaqrT)+Bv9dq@}8*nwDr}0pOk@tcT7BBO{OT z>eUDYu`wNMU>Ifm9a~y=Sn7Lioh{bukEcoKyfrW_I=8AA5Wthk7-BKi zVU!WNgf3VOt?r!XKcCz9^zUQ4O=hctsx%TZxGe;ODI(-#F#S5K#bo~gx|x#o9AWwi z!BfIk92mH$HU6-Mo|c9Sk&1?jBNa6_$s;5PShEG(4&0JS$KR=J8nakbTB5eS-dc-i z%lxxZEGUQ}E?h=cKml`;j~-9IUTGT6-`ymI^$k7l&47o4}j*HZSC-Ci5NZ@rIwRIC#0V4VjJxKS?ENGEO zDv?V8)T6ER?)PCBvf_w4d8Fv$k1hSZ)RM^9%P21R8!<>W8;nP#iT^5$I%D$>W2B5mEHF&@?7;W3YKX5jG^4&{& zd894+f|~OsZS5^prU^}!O0>i-@WRrRX8XC=fN{%t>ei@AMh=;i4S}}2TWG43R=VY- zHXadTgjJ`a-8M|h3-N#k0sjDBr%!E56iA$&KIh5l9+cBht93=ELRvKqq8rs>OY*gs zcX;U7#}@p0h^@pSFI82>pv!KB z8EHZz5D^u(DP66MCm;dTCjF*t)(Ti=m%N>`yGc+ml-hcxuCh=v2IdJD(lANMKE!op zc3y20r*Dzn^}er*Qs`U6b$WkSSaj8jL0eNzQ%5ri7D}d#Dat>hM2G4j&e6|JR8mY# zu(I|%4~Wsc;>MP^D3sd#$Jo4MjZsZ;tE#WmQqr_EcbkOO5k!O#h-7V}0OTkiNYAhx zOuingUfth5)K^73w9-)P0aTSyXM9Z^Ekmo04*w~ zr>K$2;|C>TW&Z%=y4B$LimNGROImW}NgfQ(?^vpv+T%7Ur;1kt7-RrG&-@2Moy5n0>U2va6=%1RX zt(~TpSysnyB)iG=7AFAbk%P}ycV=|9qt<(5!uWV0MRzyEGrU(%#>xNouA9!GaV?i`s-<eCA4v0n3FrCrzR_T|$7ZzpwD0Qtge_2gX#osW6UOhk_UWTgS#2{%kx2^( zK{Vyr4lMf=4Chd#qU&#Q#32DU<9WNi_Yn=MC)j$T|{P5$(M=eks# z;N1e_1Mi5p|v#M3YFA4uek?bHK($%Y6>ketUG5N zWsgPDRa)k(q)09j6){M$LFsM-{yr2QI{H3(CHxekvAE;*<=q^{eC3LTWjpfw$1H3Y zSt#YFg;!)R7>(nEmEDpKar%IH{{SAej+&=*wyae0GapsAkPp-|o(KN`CDu^4O3_r& zG9Z>gEM-GDQMeJwJ^;@>bzZ~Tj>FJtyJXGrd!gaKTr6=^Ra?_UOz_iGOHO2HM9|eq zoG}PUIr>i-A$p06)JvwWC3bK=@hV{}ph7`&nC>_ypVBjOmjt5>;P3#?QW`ds(P)m) zPT!{-fzyTWQhYpEZ>Gy>e~512QCn6jd&aA>T5Qxbml~936*EvpKG}snN6=*fh~yR+ zW-gDpU6rM(qcxqi_?$mXKeQ4Gn+i%u*k52T;GldlBL}FaxTq zEo;?7L~udEqY;zA{{Uahr#R=PWRGg6s>I+sjN{)wZ#@X>zRSsbirn3m_=qu1l^%^1 zPO`JbQ#9`E)cGpJ1qroV8Rs}2{W3}2PR%{CcrAUM?xY%;Xl9Ovw&~o8R-u8+NU^&j zGc=fyq-GmO0eNij0=Ad{LHd4Su}3yyecRF&S8|4qPdqf`kd;;o$j5K6zc#ExB>_iW9k1^TT1S2uOC07XUUh``~%} zj?>b~HC2~YX{w7Q)_RJYUABs9D(Iy{>8rgOn0GNev1DE`fEUlVRzG|%y|L7~3Vlb} z-rje5$zs#;Qrq=q$6wC_QNYzo{{Sl*dUX@X(w2@wSia6cImqiL_jbz`hwT?*uU4w+ zi7Wfpqw2K=qmkm<^5zPsq*$YGBr?WH&Ilyq&qyUJ6`X-7^=+&`bL0nnK9lfr&U4Sg z!ZS_9V5YfTsVHUNM-{?o>EzwJbZa97IrrcWdR1*^j;5T(aVM;#9OD>1dX7UbI42+; zIPf}mf>?}$>h#o}TkVg2w;4)M5@L-i3t3R|iB7JdlHXk-Na9A4FJE%E{P{oQp0>u5 zsFI4Cw3CUAMDL~TAk)Th(WrL;GD+luPl5Ql!}_A|ZqG?qG|44Ilzxo9nkc|VJ4plX z8?D{j8%VoWcK$_evDrI!ZMaUYkE%xAk&r!sZh8LzkoAJ;cuo-m|{)Q1?r!2a<+pIO%V-PglDv!ChTMRo>G9Q8U(ne!8LSng~+ zW6DZ5KKvtKt@cRZ^(vku+^e=h3t{=^jFNr&6dIPE984+^CQxy<1NgZa9^=UV9c5Vc zUw7wNlo~=NE15%85~OY14(xgSx(=-> z7g}xpuf!OZkhf#y8kXyh;4$L1@&j zPQ){w7d&Uqc;l?yQE2a+rZzR2GM!~j*by@o2L$BjIT`+krgzib=gYje{V0&24ADVA zz_t&L2`9(#&q$dmHxm%t9R4B3NC1#+-T94jy24tZf;wtggCIFO*pLQsfyXDFl2zR1 ztaT3HVRGJ+H`aLP{+(pX8ea8UBwCoR8d~yY`i&RM8glsnZ4RxGkGaR_dUl7r*Ud0s zi?}*Irp~P(L3y`3RM9Gy0a{5j^l*6xALY`fO!7#SLi>&UtYg_wg6eV2zsU2AO-_=M z?p;5A+lVg24s*s%eZBhndWwp5n8IR4agv2eAHaTi&rG^+Qc&OMBDmWnptw=aKXFk* zP$g5qValEk2*~r)!QqvnW%N+t!7sEDJRUgdv?(OIg~p;9T2M~5h}3e=GJ3K|fUp=w zO~251=(!C+1Ste(4fK!G`1K$*yr42K;$RbLARpI1_2ZzmylpG=ZO#B!{W%`r`t*6F zlKEN~cRIrW`Lc?pphN&TI|fe!KgW)dJtah?hs^H^{@^JCpXbz%6+pkRwggEsgjIkkG)EUV0k6Oh0QM4))R7oZqenScZ zG8G^l#1owKTTwPXy|M*zNl#|Sx8J8Vqo_r1_lOG&VHr1>7z90-jLxer+8ypNXm!UhhrV5+~=TaGtXG=Q(YvWkXH|>Q% z_Twb*IxO0hE`EG~ha)MHLC5FQsG8UNafHgHJI6eJH#Gc>Z_)aQDP>t|XeN_9fC@SS z2mb&V^Z6cqy61HmCQ?ZE>#$!IdT8ByJ$b2)V>H$}=qr*xL2>Da*ykrCeJ`8=&)<%? z{Z7c0SSNzqW3I8#+4<-KcoHK!i%SA#ZX!0v!Uf@JJBO&OuF@=8gG#LN7~FyDQqHH5 z?siQ70L!k9y%2cM{B>;Pv2&bb{{3u0CB)TCjGQ%z4K zY;b)2MGikMx}jn37j1PUf|7?*Q~J)?9=eFZ{DWkGN&Dlh{{T#ACk#)mLP-PyOGJz! za5ULT(8Q)XHAZcXDEfCH+F58!DFl_GU9Xdx%Ou!(hWh`CrqpgLZsDfY_9avz7$i^^ww8L>J z*mUl(Hye&H#Q8~{jHI=O2V^@CQy`7Z#;^}srfLOeXluW6?3WQ_zKW?+9#;u(e>!5Fn8~y6pTR`q3;o3PPnRy&|l<;}r z_04IqGgHz*e#;O&_r{RO$wGLa*!?3O+Q=~hj#T^f*H{3!OM}60r}OD;vOv5X@On#h zP%72&jQPjET_S5PLKPXrIwq+xX!fG0()SCu)j`=BJz+&2;QL7RThjCG{{R!Nq3T^H zYStE-n?359I?5WDxk;0hZ)QX6N8Ek73r>@wp zW@129jntGF2X0PBjQe%X`gmqYt&u)kyBqgK{s>a3OG<;@IZ54a&ffcFa%#FWC4Gi> z%?-^LnDdNBAm?cr^X@;beH~RD`h-x{B1LnjW@xII{Ze?s{{T-Pnd`7O?JY&9sH!cu zaJ4iQOR{*KMoRg}BvCF2N-X0=Le_o z9+4)oB1H1a`oP!W`B$D;@QmSKMLjf)1wyfL{{Rj`F}MztP|CBy)blsgzl0NxdVN}$ zE|Gk-Yiy~EeG(Cle*XZ|sMTdV(o5=K<8a=?{Cd_o3e6RPjkkm1mTGx0tWsE?=^*(X zI!RGUb5}3>nzX?5*YLmk&rOWc%Nok9^@H`FzfF~*NL?!+Vikzo7ufYJM>;~`pa5AB zD$_cnQD_U~cg;IlB^^{p6%b_lRZ;t+s6S9Y)2(+=ZqeTo`hD(J)JrzLw9(?Bnb&#{ zx!WK(^{{ViMS#MYE7ks6@>H5hiZZwVvbw5O_?vgL} zko~%qTHc85{q2tKJnG;l=$rggO4xhZ}>+M~J{X;zsZ5)J2489!?;gJZ)Wj;X% z{5nGgX2#*N19P8#w}mq44~gvsb=94JcPlpOsHGtOo~1jHjB}4ZdczudrgTwo;Oj$*;*#y^isT8=q4 z#U(*v$+=0B9{l<9=lb+ewm={cKu)U2#>NLa7|AIGNGw`J8@PE;I^MNSX-9(t6UV&E9+ zYJ=nq2~OYFAJ6&p1+-F+sj6l|c`RiZKXQ2d$MWcsrE2in$T1oDM~DIgvEB;^;tCHw zc{|^V93m#~2EelBXB}w{kx+dLiS%W!~7wlB1qFn3;!j5sa`4 z^M+JZ^*~BGlDH+9xB&C|^x^_C;73syCxj;>AM5;jExkx&0EXGlM#2=2Grw8OAz`YC9!Ob+)29VI*}i#9Ed>_$tE(Bk$wK zza2>hWkUT%o~4&|G9l;vaC$kaWOX3LRl9~w!x=foIyn=jNthN6kgAfEBPr4%-L%!W zm3n)9+5u33o;A6~gDOEIW2o?WJmc-x-80urG>yW({3)i23gS0H0rbq-B#&$p<3FEY zbEi^I&V9k@9>xTt1E0^SaF;m%gOSd9OC)iuk<9Tdp=1p4 z6M*0zK_lUs_{ji+=RHj%w|0JkGbB0|7?fxJ9BuFS87Hb4xWXkXDU_$~{o-nAiigZ23GK(0 zQTHYB*Q0K6>O@KQ5)QWzz4m&S4HZU_QZPr$TS3}B`3cmb#dgpas)V7m)@iDlrO&4n zR1t@4V<2TgKHmK_ylqHHQIe*EO(;?M#B=^Q3!DL#_ZaEYJ6%(T*#yi;&k#5LI_Zpd z3N-~qHMlM?3fm$dr?>U#RCb6}n5sp%3=OpEKfrO+HFS(KreCk^4+X)d3- zx`MX)@}%(M-!2dF+tS#yt?|?t?6+qp!CPF%Km9LVDoP(u)GApC##wRodwsfdj)*dr zl4$`WpWYFkm{&;F2mC)@+6go%*FK!Tc;@A|Lu(1@5;(No>6w@V>QFKOJ;^PAI@Nu+ z?Iae(hU=*#KePrKo`B%3Ip^wQ;IR90J^H?d3_;9_#|k-PAv?dB=}OW@--<`UJP%NT zkJInRP-^kX)dF4)^=kxx(DoR>q1Yx&$aq1J*D&}4IM7+t-;jmMHa07M^2=Zyo_;-^yBDL zgSTjqF~bLA$m`(*QOUhyjX(eu@(=wwZBta&gRmkB`DmdFxxg%PLmX`#93h18vhDCl z&j+t0iZE~>rptIO5}m)FkGDyLG|~M+C=9$E-jMtB!CRPdBof0&a*xo21`_hTAKngs zhI$)MNYC|85pl}|loAK#2R%1>l%H1kW86pwF^o4v%~?xK0Vu1L{{WN>pW*rR8QepG zH(?TZrlBB)bUEN1*v}uC=qph~7`F|F;Af0|{PhQ})YOop7AqK0mu4UVk38}Hdate> z*|1W{=u*75I;C=^3v4^b{{SzIzH^_qO(7K%RLBIwg(*kQK#Tq=>tSL{(eemjTO8-l zJq}vx0u>SC1RRzPk~+(CcN0^~C^r2mD2$BavZSGJr2CZvJt|FWuUqixi*$K#NqfSR zjART389&FT6-!hA(08bQVRK5#Yky5*S|!ItWD+7GI$Dy zp0liav$&G|2G3`K9N}Envk{O$J5{md`~A8+T{ZloGLu-N7(7WsGaqhvZy&>^z8-qN zsXk%}1p@4RjA*5~#8ej>m~s%ITy#XYsMl`Vf2bVqSqkU)VE+J*R6H^FPEhR~?@PhB zo_}UkWO0ue$3hex(UGuk_ORH=5ZE2ZpZv?8as2uop+K>ipELFlfT66D7pc^YG8Idb z*i~jY$MF6KrHgc_sAoF?VUAgd{W{MT7Ea}+_I*nZSI4KN!h(PJ#fEwzZ(YW-9o2L+ zx0o}Z-9q&8l>~i5Cj{~1?s{-jEkqP8C&%*8AyUFgDL(v6X|=1WZP|t{d0fbO{+&1^ zwZt~a;TYrwayYuK4DKQsD*CB_?ZaR6%7;zE3Bg892{Y#Uz*;6%a-fYUp#>!N*N0=A6Lym=Q+m?e?FTmT(Ca- z;kHsicZWJ^TGCmGrrN_hQQJIm{(sY@7k84L-js$M3yT$bRj_b{4ln`EMt`48e>ref zT+lRF2bn6O`iJmt2Swbkv&&HvB_LR+@$LEalFEvPkl6|(pSQoX za=*D7B-h%UB&y+VMK>t~0ue?(UOItHjwFa|aJ#;y#|NIKI_6iGS!z0$R1Wuv9ivYR zg4jX$u4IwBUZ769NFAi0)|)RCR2J3bBZa00LF4 zItJMxQUN7H9jpk!0Qm>=={q!nRRMszVF3G{KH7y^1 zs;aI1y}$O->1qA3L1vb^qK4%qMI4m!#E~m7ap^xe$B=kEM8stk(x?FEfYkUyv?VB> z6`bh$7 zsIcj)ivG&d)U$|#iDsseo#z5f989t);{X-hdHLRc@atar>ne?7t?Q{;rGTcg*sU=% zHtQ`I!pBQX5oXwmp+-q0k&<)Plhj?J_*Cs&I%K^)Ph&zX-Vboe~kGI-Rn%*F! zWrYAW6}20sUt8wT7KSz=5tU2=>7%Lm1BL~4?N`N(-a2WBCbw4F>5@(f!6`T+K6p79 z>O{&Z)5FP@qBP9U_#Q$%E~yfGGZZbhgYNN+YE(y{bnwPZ`o~e{KH(y?FWc{)im~4y zh6lA&#=#_?)TOA1g)q4vR^#M@wQ=@6T)q7628GrKMp(OH+sJ!m+uaLqucgzr7ppZj z)h|_2C6=nPp`F@kTqPcovq6K;BV`!JzmB3Kxf;6d zscWzL*6mlSD=(7MtSc|3ao2{RU9WHu9#`PIq>h?PWX2-;Vz5e`$uUT zHj}pMICS50E!T>f^))4RtwO!RvPlmyO67{FB}U~O?%}^ld^l(;&Bx$2{VnISI&zBd zpme3nS?HZnb}?QxrBwB%cWCKICalToDj!heBX5PrOI*A*WV0!9vJxLa3p0z3E#P&B zs8>>nnZlfDsf?N2n6w_7?dFNsIulaYYF&M=-s2XhrncFpq@mJ60@Y+ij({f3%Cs*e&~wJTy-Qbn6%jpl~6|1>?y3byIe)QH=rIdmgD4dc8?sZ=}4_ z+w9a+>}jW|v)589XKNj(XZ0HcJ7YaHPe)BbO0-IMBT{d1Zsvh1yK3CIyK;_&(9z2Urh$yo0@N_% z44t`EC!g1*>%3w(97e3ntHxXJ?thm~G>cU|x{V{NnkO`I6-5fz{n)_da)0mCPWqP! zV0>28A4x!N06TIA`StTPaYJxw~Zq5kizn~rhz>W}S&l`?mWU5A~6oj*h*n1I{zz|m*a%&I&NNC4*_uU8Vu7@Uhek@kqQ2olyGc;q!(GS=NBiJDgx zQ@R%Cb8lilT%NlVr8`^O3omVZX?eTFr}Z|0x^~w}+N{=nMcz3m;@A4l@lgq@d#r0V zA)&QKCMgkJqb^i&p1A2RGuIW&U{4_<8+QFikISyLXl-+*du7=R7OcBldmDMX!`Z`g z(E484@Tp%lbe9iGo+xW4x>YyJ%M@=andM!o+sOw6b@a_rW-gLiP)m~5?(}Xy<~dbN z#0rH1+V33e?$nwp*WHfeQFhj*nx{Zg>#LMnI;xJS)Iw+yrbUO-kdj_9pcQPKsU28W zo2>PgiV35ra_>r>rZ^;lhR#1ev+k(B*J_*P<567FhAWNw=QVwFHp&E~rH)Bhu~=bG zrZfcLDDVeXzi;YNODe!55=jJ&xmCd_l5h|5&++OXNGX4mm5oJ=NTQyV1tj-|i#FQz z1J|8PWJGcgzu){i6qgHPd@o1W@q__$t36R(`~Z0Xx%_# zjlg{^fVkFRHc^E&r>5jw9Nki zOaB1oAPkSorS?mWL{*f~Ng!yS11qSK|S%fkLsBBbdsdoNmBi4hQ_b zM=W}&=;eyw^x~zU68$*~^%P}RCkKF79An$~^$uTNfVBaueFP$six;=Qe^^9zTP|r2 z&oq#^jh_*aKsaJK{YdC_^{q70RYu{E)Q|xf9P`v(spYM@{_R+akqQCt$4*x$Drjiw zVtvT-Rfh)$J6SRa9^m=UPlXhy6Rz-vSRvx!xN3Ta(s;HN=e+g9c<$Vs)UJ3(@6#mrR(Hq$Ek*WUxS?gEmilwn> zPU=%dJzX>!yR)}DJh8z}ttDktk*fsD1GRF#!14O^g?pbqv$<$a%GT;uri)I)r0%xf z-@zIIDWRsk)d`+XGBZ;1h0n6}v*@KjnK^*4FXoazc&5b=q|=rz{+9+QoRCkr`+?`7 z{L(KendWd#J<|Z^l6-j2 zSX)tQTG(rnmfuiiYDtx>I-eX=ywO5H+V3D@r}I2#-`F0V z1%{bqF;!gS+(rS879fmq_v$I6BUz}as(p6?NCdbPOn(*#K6u7_bvkNi^)|g^gdDU| ze1ih%kT(ENAe`X!o>Ylo-U~d<2Ap9Wwi{(Un2PUDFCae1NC$v@@y9sv=cf9*ZM_Ho z093;Vjaei}ihxKN&hPclPiCGvhayXil;{{V6X2FUVr$4nKp5XmHwwciY`VuVDB zM(lyTjt|q0dIE&z0DJU@<*j5J`ownU1-=X*zGOUX^X0DUJQa!!1Ebz0ZmVx}sO zbcn2^`b^D*d~wcs@-dE{^&JfUlU2yopDQCW38ZvTaG>KndocF*>o@8LBY&wSN2o(> z5zao6f2W`G>Rg&c%~L+Sq2t)O+9%WN8aheQC%FjAU>)s@fP9SgH-c*&{(_>KdbF&9 zV9?AxWN75$7yyI(@$c3Jxg*~ztK^zTN_rB}M1jjF3fSCp?oT}(r8Pxnk<=6t(AFER zwyjd0dPt{aRgv5(zTA)sl1@if^SU^bE#htcojcyV8{P()^B$ z*EJM2u#+$boVY1|1ay*F zWihfP9C7Y^scMsuGTy_VZ#^6;Da=Q7TQ;@}7n3D<1-ySx9TqAf!4c89D!+~WQh%w( zN=OBX(iJJo{W0QxX zQ`Rual8fpeNF|Rs{{SCuiZwGZSB{zGOp?s8=W+4v(4(oT1gp>oDmSA%0G-1p@8^Nj zC%zrXZ`mJMPwCbytcg7ym)dB$aXYr%_7`tcZ_H(y9~$r>Fr3>drDjBL^d? zQY5B)^dO&@fdWF3f}%9#8Be``5?4)61;b8I8aiz|QJ7{$qhFY;j|vV+Ct{Mh#xu{6 z)+eT-X{0QXv-5$+KbJ(^D$3PL(wC9TWP{QryVr~)4)I`u416EvI_#KT1w90ynP23_ zQmUbI)aPiDGrVjtraid8&p88={Q3SpEsEzoJEV;xM3dJ zBw@MXc>}V5eC?2Dj|0zL4OXpCH%Dk@d@^C=BhT9d{C)c3JtCJbmll|mh6KOR#>Wpc zCR3!l!iTrgdLce^NbU&$&Z7f7a6j+UEVg@lE?VO$d>=o((@=L~r`!2bX)lVYJ0KAo()t|Q$_{{a4X+;v)+gCpjNMJp|oSuARIR1Sgl`dc+ z3w$h@CN*j&@%&GYoJm=`z^Mh=KDgR+rPhjjb$vA@eH~m)9aTL~A&~HS&T-G5)2?23 z&$E(t{^-^Ai5|O3SIWkMqwz^bbHp;^`Zu`irR)1llA@O0vVs_freHDoeOdhaf_EL* zXl+mXM%`nnqDwr@DpXRAFb38cISso65zkk+Rv}SEP%@VUhY$4U5vnAjYI2z5&93P+ z1iqUM(XqkF@;aO=$5#L<71jR!$Naj0T_S;*swn>e25~G|$&CL1)1g|f($KmrtXiH! z^=JHg>9VE}Ge&V~4nw~PbgiS3j!^g^H-5S4NHEo?0fzL!2j8c+jw<*>ipwIpWmuk= zrngN*8e@x@smRPLXjMo3VZGlTTDq=>20`EVgM`V6S-7M z0Fmn-(`s(N3zs;5NpCo_!d96zYEH&AV>L{;4H8DD@bQ92-~E01WV~6Z?v#}@7Yb;q zsA|y1Qv|8GT~8m=r+F?`_Ch^jkUoGj<3FeA(h7^cxVQpVEw_<_jN|%w9dfi4%UCIm zK>zbY6?OeJl>n&xWrJl!AAZl5PHfh+C z`=%s+Bkl+ueDq8c8Z}bHiQhKIj8aw7^<>OQ?}`o&_j-n>n~)fS2l({4>GID`<0}6E zgtzoP6L62!M5>Jb_A|C%2aY&BIYOqci`Q1&Bmiz6`0Hg)IA~8Os9J7R1TMd5TKip! z)vYb6^_phv%^Ouj32SvyFNc+Qx*>1uaA>%GHr54xIbEKTyZKJaT%3_mi{N4%=N;;cQ9kG_8E6`H_I@D{piq_A2yJ-8>J@U;{B`sw$bLq%cWlwZ% zzEt(FZWcQa#9oS9ww ze$iUW?c3c$OMSIF7}8W13N7R%OgZHn9zF1Vy7he-r~-77%TAp67+EuwE3$43L+WX( zE%lW&b&yR-RY_3r)zeJ4c%(+dD-XCMsU@Dh<9OOB9yual(a4Tfl!Kh)d-Z?!vrAcZ zZkM)quSObUOLAnV))Y`kOtI7!Dzy%$ka9vf#t+chUU=~qmpn3h-76@k~Y+k?f(Fgh(D%!=^U22 zR8=yX78nEssBya<_#>Y^VERFaDuT43A1S!@@pXq)3DO-}hC1Z^H z{$4s;PXvXqf}J5OGW*U?<~Zse)>@)uWq3V+9Wz`C?Wh*{O@x}=Jz4~!BTq3j1N+398b_dVqI`!>zDsZz^=O8f> z07J-fKc`2O+l2k|WA1bPe@?uh6JTKi zolG`_SE>Pbx71NiRL1HE-gAZrh6C^XJ^K5j<(*^3W0AnmzIpp&AL~7R(aNitAvsdE z?uXEqasfU@IHJ&qz-Gv7<8C~35_9zPjPv^Ro!zsKBRpjErZwHpc=!DJ>mZHe980By zd`8idef;!3TmU_?bB{e5Vl1J#Jn}KoilJ1f^23fk{TXOLZv^8pl>{Dn2a(r`p)hs; zNyg<|bYM(m41fQr9S9s-Zv?r=g&|-6?1( zn6y;%^{l7~IXD^P$^Lz1tGYgkvsy_B`bCtQ)gc|L$4TICt>ak(&lWetvMUfz+zxzw z`Zg+rmR5;sAeF!*#41#u;sMXUT*v;?-bB*WM{%zcP83T&&A#`*Ba@t;Cy&pd+qD(O z(@<(@>nh=yh6IsRFl=W(f4Ch$Js6#l%)oeB9sVGNAD7lTQD3MnHi-mRE4{kkBd$bs zb*hIPdmcx(Jvz}8bcRiSGM zW{u1uAZ{|n7z>bEKr^2l^r>S&6^%tYD;xppk3YoqTT+Wes-?t1w&!=rK1jxK`t+$D z(Y>~a)MRZU)^bP(>_6-0tnrk)YTe(wSp=Xnk>?ZEiVUzd)T%}>tsv(=$MWcjO$0?t zTqtq<^3@6e=Yz|BeMH3ebznquHtc87wf_KKM@Pme%F5A0ROrM4(b{kiwg~|9fzxJO zz@7Y|L6)-553*F-{-W0^L{e}YIsJLg4@hOIwtL+v{*ZCDMLEac1oYY@ga^efQNwe# zi2*$Ok~&8%M$ky6xMe{ZNMpdq-x%mRm4bDGNkgzOeO<=Y3Ns6wK0d6UAM5=3ukYHf z+d~xcwZ$Y zebu*WJB3t6<2%hyTtJY{%nrspa(Nl*=9>wq#Ku?3k)Ye@uQL%Q)ykz)>QA56!ZtK_ z3uK2d$x`eNNLqFW-|jk`=&VBfVCxQ1$4ZNn zO?%xV93i4`OJwBo2fyF%(&Q?;Om?f(p<4`0KxBKL#ewg~<}zVM=?VpkmAy^Fg2aqts-dqnlohm-QoN9Q zL^70OIsP4NY48epxOzxSOgDEe^@^3^3r$G?x_Cyo)V5W;Vrp7gs4g%z`g@Er1e13h zHy=>_M^-Ov^{lsAR-&u7+uHMLVGY1bRI!OI;t-7Q?|x&4nok;Tv0m_^~bbi zV0j>Zf7hp~XHyhoY}wil8{ee?!Yf->UAc5pn8ZRW*zI`a=~>O>_#f z3vik;`(qPh4WB;8I2k=OO(fqe%xsX#tNX?*$anc{c;m%YOC}(wsE8}==kX{!e?NYXyv$ou-R1-dziQ6e z+rpjXWM`zR^TRXLtf$p=F_{l12lead)Z!|WAu^M|d9+|nDpfG7+`0O~i!Pp{lT=M= zx>idSx{)S&nyO?B&9O;9zI?U^>7I~V?TJupM3n~=apo{EH#U9q`E+!Cw0|*)%9@qi zD_|C2KQqYw9X3r>H8gXiaurhhh{(eqx&8yA7`)ZW2uiPO$G#3(R%L0<5mZb=g#&H| z8wZj)9Xy}|8U{nO79+xriP{9wnw4gVfYPjN0~F676Pz4-^r$RvQC8IPv`{pkx{cp+ zD&*}1;ADZ1ZnTIhn4y^W#YyVrAd#dhTIQy}hE`XL4oPwWA8$PL{bkhEmiwi;?GDzG zjospoQ}i9k%Y*rSS^gbCW&_rcWd01CpSMl`A4CYo8`I!)_f#ilmb;D+ikg{0E080@`Tfpi{Td5;VN$-+Q_L0OY!n+dGG(s5GviwAb6}ZZ|rp zmF#ju8lpi^WruWvcTx<5uIcMI3)%_9b5MP!fBW&H1$Tb_=N3tg}dK$rLR#` zX?m?Us4jK3+B*7J>nTLWii${!v=c=8RrueG^(;RReXXa{^ct$`@lB;6vfVFjYPZQj z*{x4CMMX+dM^tveY1U6n$0`vnHa9q8LBq(cqbVs_ww4O|feb30WR)Xd2$buejGbk! zWYO0J?T=%0j-}9Z+K!Rcb}b(*O=S%oy`8D;%ky$N3Q%2vOn4^*9(rrnzZ9Lq?iHdd z9X+GA{js)5uAtTzANEb81+IIg?gN->s-%)hJxLLU{sQh`H*N!@)^5mlHs>AYLGeRW z(O7JA-R>qIhpX}*m4-;w%tB(OR{~JQK=3p7=|!)#pAJ>E*2**S0o^bC;a>$Ysb7bA z;(`xWRf%2NN}PoS!6z92`00hzVDf+|O~##-7V{riQ%zZRC!NGUYd?(M_G=A4f3Vyx z8XD6!uC<$PvDJD@LDO4r*UB;ocxo$Ai(%9%HpO40U}Gn$a;Lssz@GiuZAkYETHL!M zX0=-Tb?8{(M4*D*A(EUjb*}3t%=@%T5_UZ~@8ZXQvB`Nh}3}aI| zDRnHTtS8^f38{PWS8keBmZH;c({|d?1j_3a^wvrWd1DNujHAZNKqm!HU5%~m2gVqq z5HD~vREOjxmg8GYDPE?gWmVY>Yb~g#+`yk9Mo+g~e(q%VZA0C5)OV&YaJ^O2O;X~4 zAoYt=rz;$4s-T?X3OdSA;sRRd35m*7m5}?AL!RwDBW;QFPEAb;>ZqzwJrc;xkmd=@ z2>{p|Od>*((Ovy7Q z9{A442v3Ai9jL7T0PU%-q{QgbSZFq>kLn*#Bz|38`nFn!wMvw=HL+DqJU)}O7)%#C zzM?QVQa=3kO!k`9O;g@2e@Q$kG;mqy+@y}!AQ7HHANJ2$8(df{)Ea88x#Hn_sNJGw;O~eR0A%~F?wK`igVlO6OEem+Z&J@VIw_U9}9iCU3uP}EvKqyhMp?>Mxbg*TCHOOwi_j6^udW`!kLma$>Zwx z>P{vTI)-2z2_6@Q>D0M%0rQI!QrQ~WWm>eVree<+coh9(aUdUjjz?8Kq(E(yldFR( z%;C`#lByJPe%U|a*6Gzh3|;!ZTAnHm0~=H-LjM3R`nJ^<)LB`9-%>CDZ0Fwxs>ZkB z2jUv8-$JRO?5OaGKWK`sB`xb9run-@O$wGN*YR?Gok6kU>wWc%P#=q9w$F>{QB~f;di>9 zhPzUB8qFf%nhVE$EvX_CwCy1khlchisi>7LX(~#A?z}NFdWE!#l0Q$=rUjhrjBFX` z##m*MBn(R^A^yB`?bXr$0L;y=B5<;IL*arJSvI=2erZ0O5DEVPf;@TYT6{EW@^by( z_*Ftie|g`!asCwNrp+2jf3bl0r43aT<)*DtD#{}YNMxp$Y2Wmdv9N!DC!#DZbEvn} z#Z3~(OyW4)pxjG;bbe?2k5;@Lle%fDid%)#zP||6sMOLZg5%zEC~)XgcG&51apZX! z9ZP$Cr|h~;zDu1q#K*!oBseBZ?QPMca;&0Q&{F^zHxj2FapN6V)zQu%2*SFN$B363^a>Qeiwz%6VVoQ7D zkKymt(Wtc5E7MGpQ`4hwGD$D4`SYB600uq&{a2S+C8_v}?R;jH)<(75fTmJBdUBs9 zj~Mp<03Nm7MTY2N^-={!Qo!H>SmznY<2dW*I*~R^ie(S%`T2qQ|4_HMXX<(^w5vL`hW?*LmcpVNC@%aky?E zVU92cc_*%uTzh|CaCs^!5}P1oqricVIR^wE*YDJ;O=&Sj6GW35R0sE>C{aGHImrBp z@;vo+o|DWH7$dgK`*}1(nTOMfxq_Gy?d-#bj`@me80oz-QD8(+$lQQ3e2*Ug0LQBa zDPoB?PfTT$g%L7DPQ@9{c+ZSZ zvSOPI!ypWkz~JYqRQ$&{*lQ0l#-4EOU*=pYZ$i*6BqOnA=ZF zP|c9@Ra45D0RCitf2UGbihw#icMF56yKmhe2b=+%Wb~cjrkbW_lCI-2ZYZ9Z!novM zXUCp+&rD91Ri(V)B~32Cv{%=dDe4hfbnMQbGk}!Q$ads@AH~jb$LZBIdb871Lc%>A zPXoxzC77g)>`5FQ-VR5P9QCK*qoI76lI-ZQhcTlLUmOn@9)G7%%DpvisLHfAh!L`4 z6*U}%EPkLijOQPpOk|rSPk%EO2%JBwZ&>DTuh3e8p66EfOH_|XQ#pApuqcBiha@(6 z{Kf|-rG2{WUZA+%Xs_4ZKP{$?-03Yf1XU>{m29|guakutAF1o0Eug4sOzkX_p-9L9 z0DRyAKQop%@zABQQ(L2_NQ}XT{{R^P0!O}l^Y-fZ`0Z(@>Pu+E@^1Kwx@tvC>k+RF zpWisDZuAwD^ianYsTdwsg3z8xzm;_hF2){~+io>*zemoAmS=D##hC*4+3sjyxv*QE) z{WfJOB#?X}D4a;N6C4)^4&b|33}vJQ4EPuypI#TZNw#K=nkii{M#JDACkLS!Ae7=% zbynd)n>qeHctsF78=Y8S7L@VHIOCD+(*{uj;{N%<=K$vX!gr3MVIUJz#>?edh|7E9 zo_`SNfow7tb5TTtXbQ4ObNTrD^y*rT7jUMJa657(W6$4{(uJ<0L+J_{X54vWILR2t z`2PT(LL>zzNcUW=j54LVFc=EjWeP9?#CDQB{O~c+a!}K&Dv8oY{{Wame-RvzFnWA7 zwBcMuOA2MOOG-{gG16%(&k;uHzj(?8CjjT|`hSl~5QLM)9_!{7c#g>oXxs?dSm!MU zKHO)j{{XsH8-4S)I@Z@#ktnRwwM!L8%H+Vy87kx3f(M_^t5MPNS&7M9;aAAVw@jD& zGhM7#iV~HjD=jq?>J>(E(J%)%`;bWceY#mkB;=Rg6-q4IN9VfXZ<%XnNkEoGW-^%h z01V{#{{UI(Bvt8eks2CE=aml)DrJ9{Qk%?`*2|4*tGqP?NljEo8TNJlW2n4s14tgG zU4V>`21)C=)80}^+z83dw8Fv$_sh*!sD^VKXUfGIs2|8@`t;28S1F|Z|nWQGNkbIF!@P#m1`(Yp{t>QR1@2qbkm5{ibg5UVBHERTmhK~rn*4uXnV zC0c8p>-KGHBkct$BXk)j*goER?HqPmW{pF=Kqn!h^*Ii_g=g0reyuMW3=6)j5)d5sjDLqOqgYw6p(NU$Kt^saqZVQ>7^(#asql3`083H&459Y0mmBtSB*LfxGH|x^VgFxK-v{RGi?sCQ%`P?KbXr92=U|J zqa^gJP!+~ma7W*%BP12{rI3e;MaekjPfL?}k6D=4&N%9X?awn!@a;_lFl0kIq z5vr;Oqhl(rRGxqG^y?FP^iGU3nEa8`vpf~bPQV%P2+v5Oi{+(w4t+TW2OM=GOunx& zPKFp<;!qCaBb3ZxlLvvkP7>ARe@4HvD53*%*m56@xUC7!~XzZ>DLTYvo2zS ztVNnOk`$Gs5$h4^=~k5NNGX9Nwlm0)VAYql0sTW60jLpK5$1F8T~qr8Za1^hCRW)mIyff@_(07WhjB!EMQayhktgC zX!kR=wOS7SEgs`nXSk9r^}rGe`3T3^$My0(`l#q6l8UNIcLWTTZ20S}I@?H4YWp2! zj^hFZboD7}(ExgBKs#hZ=Zx|^5yxE0?k1SIX$$Pu`;2cK@yYm#VP;Xlkxw~R7$dHQ zfa0dC1TW?q^NK3UT%eI*4b&GJ%T?Z%=|sjl+jU%Zltwd;-bUHLKHG*={!Du4_sUp% zgQsaEnvB<3^$o5nn8j1R0!XUk2S12s8T*6RGo+N1f@Jzao^kKisQ7;FIEC9m-e!>z zV|jGUq~%E5UP^PH1a2(2;~R&!QhG^AGJQHKrH;}yZ+k;HZ1FB(LXC`2ebw!?cW!kI zw2J1Y)llB8wz)?Pgq%jl+1J7TeO95?L@Ips)cs?mEjsSWQDnL)Nah>qsz3$l-+oWDKeN`UTG6Q*w@ls-}6Rpru+!-bO5a zB_yKco_0kU2U+&t+Lt3sfPfcA@ zMuvjECXk5)kcB{4H~h=A=RD_*xszyiYqaL`F($lo2v+%Mf9Z zgYCk{z$4F4`b$n{VX2%0l)+)s1iF%qjB9#UkztNGsj4E%jnOh5e@;369WIGr-MmH4 z{1fT({{XK;f}%ZrI0jZWrLrClc44m>0+w|xu6FRJlYQ}Ox7{DhU z{RL#4B7qfQ-rzZXiO=5|{{UF&uoIz!9iYk9J)P=MY)LBkA66V zkSgwwEX3gF-|l);sXXMdrgb8&z^ct^z~t-XylS4Dpj_*`nr&iIKZr}&TB$I z&h7iyqzL?m66ZZAjK+$?)nT6*=bs3Z4KLV4WBN%+ixIp0Uml# zwEq0yNEm8hi6lV(FT4hLUS-l}P5N#O+~ ziPhnde|41PAL-M*JFP{oZP+jAVb9!-nDRXvFfCJ5tKZpHuKBLq#)<8~T zVUysFh9so`l9?=d7&;Mrd0|YW+wHrL=hhGOkgx#w zJm7RQO`PGdG2=dZfmMOhR?h1tEV+l#TBIZ=C}`=0zr0#PwYI@_rHg^|%`ze2kIy5i zMINuUToj61rK(JQM77=&{tr-)daqwaq<~V1 zt==HUCDrPWSn3sZYD$tx6tGH3$uQQT^ZFjEd-WA`l<8U$KbD!w0<|H&zJ0%e>jsOp z<}%)$WlU;M(vi%-4Eu0@r%o%Y^+YNn7h3O5GD@MUd<^;HIOnSK(K?i`GA07tkLD%I z#n9JD^!!DsskB|f=UXjRJW({b+EJfn|FCNMH2^+sizwT)oN{^WAr#b z<<*I$$D~tYAaj!Z5pE6rzWvmDJ_&yQ`6DV(+J>+rZ_+|_sKaqKgX!< zjY`MwY<`!?$u%~Tl$Dk6p-aVqpTF1k`}I+$e`_X;MOkO3VsZP(>ZHjWf6brzbPX%s z3uUWcRBFqOws|S!vKk1f=_&^0C8ImZAY^?6`1^H7BL~GL&6ugEa#D2Sd}31TX;mx) zt4QfYVz>puQU3tLT;_H>@s2kC0Ic-$K$k>WD<=6k;-_7}?{kJc57W6=n7$!AF zN>`En;gdd6v{3VlhNerjlRS?l8atirH#;aCf$x#+(-qBbA1PTQPfFz}r*dLuY=De& z&N1Ni5`((EwyX+Z)z+x@Hpg0zRyO@{u>JjyMP2o_jGo zMtT1L9;2e3aGI2<1b7&CIx-UevCQiDr;_!0kRwbI;ZR-UQb+tpB=zMf5)K!5R{sA0 zM$YZ?_h*i!l)Y_0^&>dmo}>Q&F^}=+we%GkR$QWtzCE$mW|~QuK#al?kRXbf%+&$mLbQZ3I@X?h8fW`^Oat#q?PBIG*DTM`u`+z`ZL^XS;*h1JijcA&#^&JP3n zoPQpd*=}_DdikfdED$BZ^!BK>-31hrY+8d&Qk4QCKsep$5#aHjl1M#ZL@kyxLXPY` z3U^n!5m7-+1q2<%zr${Vju9MDz_%&HYKpul3xELd2T>a>1$ENAP+Ms$t~Uy~w$e~r z=^lCJDvabJAS}cxvv52qKHU!aaF+i7c)Q=~VTuZi-O{GMt{4d@l1(c}z-N*-G3xI4 zaJb#9n$KKb>{8d#T&&%S*L5^^du?yaOKo#wsEAaoz=n;K$^w=8w>smk?74zWyxNc= zf@%WYBTvUDucz%-apax-4&H0(h1ga`hep=E+#Yj?ym8X&S8IEXbb{b*ox9g}Ic+y7 zE%zAcbd_9&nyN6SNF+X<5=9Q1kerRfK6=phy+f<&w8h3sU1zOzZSJE+T^>3L9c_1M zt?smfLt8O2?Qc&UF5-6myIwSfstsFmw?ldF2X?FKrJ=c1Do)FJrGh7s zU~tYzrG2dYV4NR*qW=IA2~j9*+}~&XLd>I42~5Dv>lo#J9sB1rE$H@lxYJKHFUx_0Do)iZtW zew41#T2nzKz6tMoce{1<)fXF;O+bX&jk1=C7#?ETRacFaA_IV|ax!|=mt7%w*IydF z&CxxW)ZMkx7mJO$%XHJ9w`!w?n)g;M6crQ80*ERM@|2dYtbrQ_Se%@4!ZqCP+~{oq zc#lojR%vU7p0s>I-0hHR8wDg6D2hj;Z9<-wu34q0R!FNVvr+YZ4AN}{hgDS6)he!= zHA^KbN^+(CR~zy7!X_$Ywb7xIzOAfKQ+IPiY0WR(Z8q93P1awvu92;>Sua)_jZBeR zM4u-o&?R%YvECh@Bna>a)N-9K6n0G?r8Q-37q3Az-h!pl+_{*{-NX|+K|SJ@p?HD;Z%>FRl;lBMgk-6S^{Occ!^%yK#qWZCs@ zjR7*Tq&^+{OQv;yW~=X)+tivxo;7^QRjKt2O*_c{05^WGnn!rTeN9y<;12@@ zf1WyIhAp{wZ!M1*Kc8C>Eh#`M*Mvr=oMud57)AZq%>hr`T}61HxoN9jqP1Cc)Ros+ zFM7<_scAh*ntEz|)2vd-Bgs6;5<-eg7s%1zVE2E?laa`8K;|3HEgRPAn(K$I|uqlX6Q~cMMFzInxa@x zpDJX#jWZ(3eko828@Lhr6}VT@TIee-b<-_91-_C>n#!gJY*8YXXE^o%6USec9^h0~ z()TM&i?mWv)VJ*U+8UZ;3&#wkv_PQ%f+J)&Biwk-I_Q6IE}s+j-7l-5y>{8xQ)+u` zv4~YAWw?B#vPwPk;cyD&tDv;Gj zJ4G~f6zeo@@v|XxbY(as1_!Ld=+!=PQ6sZ0M#c4Q{37cJsYgXRJBd*Rh5SjD0)>l9 z%xn(FIp6w4gl*)hrxZ~vZ4eQ~gO?zmr#a`U_fkt7(UdaA?ScmR3Bl){db3t28kQ#c zM2%G!ZrX1H0DF(qs^?R^F^**UHNt_lf@6=d1b?jcz-KKfQ5%TN5)4sYpK3(!M{!K1 z6;oxR2{BWg@Ob>skKxvV?p$q?B4AyH*4E@Q{ z-QLvN9{FMI)#BX^F2AI?OB8i*SZd@RoyJ-s{<0)azNltg?MLH-*VEGyRfn!xRK$YM zx!^gGq;k2+5~rDp76$wTZ$9^YCR6-jTs5zHqP}W<8+)R+R_T7(>HCcwDNl4uWYfbP zZ2OngiW-WcDPQjxLO1t->W;hr0PM4CZmaCgrr)jg9pcGKo}iGSSi zxmB7#@TqOb_lj}sI#1ia_1Qb&+L#^x@m$upiPKDOBR5ULm+%FaEeo6>rV4)HS zX{scU^SP&tae{iKC;tH29oc&okGzxWTb%`?SoZH#-z{2WLkgocW~7dh_EO6ciCI9M z`1AA(=fOQ^Y3Ji9{#>W*hGx<1A9yt;jE9=7ci6SdU9TK}__p{`rtBYb?wV@Pa=X{* zDw_o*+f3J9Y6+UADIH*zCNXVN$u|7`Bk3#m>n_x2I(m9Lbz8JD+N?@(mAln4jD3;;&sX%bYZV~|YlS-yLmNN&hS$^}w4w-NTwHO8c+l3SXAKlY z1A|{%dN+aokw0w+w{{T*`ODftbqZazI%W}Ehsp)BI9$Gh={Q|N)s{csAjh59Wzf*esmY)0~z+|)~`!x2WVE=r_zoDU#Qkfvr8*`l0t=F&!K1G_>qFA&sC2!*v{zfp(Oaq~s7T%FY2*=ZD+8UU2XH)NX)PLywmMGFsWh}& ze^7T1R_I%TK>Dj!McR6*dF{&VvTTNsJdZ0Hd17@9x0n2m8&)Mw)J{b8+p=iEIr+1oUgRJUzMru5dIO6h8S3ZFsPgER#fuyBG>`cIP4E zO7^3*)~fA!SEV)I#7tMd-Rb+)CZ?*NvoTP^XnF0mw9N%fttMh=GbCe=Gc=d#8+fUTTX(dSOEsIr}nxq+h zpjj$$ajD!}U1HvW0WuF=Vl?N=)4QB#?&E8JiS0w)SJEA})z$R%f7mS{=}}iTvfoB( zCezmXik#0R1w*{E7Agq~yXn9HbpHU|OP|EOld*I*JwvbL{@h=?@p$>l`#s*4N_nmD zS}0?Ro+`ND!$z|-gd7Ilklc)Q0Jl(UD-V1Qjo1Cepwt(e7MHdq!h56-BGlX}sA*~= zjtJp}q;`&&!%vk29e|KBPfT6Nqt>#|+igvJ?&Th()3hDjsI+OT6iX~Ns~S+z+3Fnv z?TJ$g%M&lANOWV#Vg-6uvoR?JESrOs-0ioG;ouTNiAi&)eYdn-9jdPGm3E8O`fFZR zT`N}E*G->8RjF$17OO2~rk<~Lx-^;Hr;aIV zM6f5Ou6HS2_`@>}xx3xuFH5Ja)R8+!rYNMhTqTcUq?1PS7Cc~+_>aE;bK|SrE@Gdo zP-QP&Ko%v~@i893B`sn5Tf!(1z^altV~#&AzBwC4GrKt?^l^y;r_Bk);9R!T6oy@PS*#kP}mKMgU=_E&U5*7 z&h!OAIP>S9%dUX-k$?H{(=Y}Ezho_ChDHDrzrWuge_pw#>Y7TrKCa{TjZZ`r1#?B0 za2viP`%3F25#MUL2_$yPqWW)~VR>#(j~VmFTc|3u2t@G6L+#k4dk#(qT>HF4lmPNT z4Zq(JU80Q4#wls83i7$gA4Hi0ocZIe@kdU@RYdWDgS*@hzh6C1l1&{kf9U@J++(E7 zT7DsWY4(N5PrgQBQA(!+5y>7&9{&A4&{9;}#5Gj&#TnegbWr~Q%m{BI9uJ?-sN&N; z=-5<~DgnJ2cqiMX?I0LUZXWsmeKgct!_-AgweFEK7I0$<1_nWItMwjw@YGetTq8pyhj1RGTfH;vbC7?4 z=@Qh=&P&Tp=XEJX(_fqswy1P=uDMRp$H4KI58)(myKW=mYrdWB0i zL#q}e135f(I|A4JHA{=n3eWi}kscQDpU06R?`CoO#I@&OQ2$ z6tx{2!Xele_u~P3WQ2y2nTcV$0zedj@6Z;|?%`IQ*|)G&5~=Vr`u_my&?mlGr7QG1 zkV{6wuOkP*l0RwZye`*Zi{>3Oo=5%X;yNop!2W~C|= zmE6*B8wWq3&qT*V41ZV3#KqTYvr0i<&x88(2e{HU+%-ua>bU@pc>wQ+?X!@Sf?1|g5)wqP!KxQ85f6kCStcADw$J!# zp>wrS&nE*u{{WXw^(vdrBPyBaGoQox{{Rk%H!LYc!6o;r78(6NmU?TbyRx0A&m5b% zD8M#TL890&?FF~VN$+h?(BeN|?WaW%gG08<%2`?%gnIpaA8Bl0~}@KH}v z#N;mTC5{07deT1-tZMtMtYxioW|H|JsFV%I8RP!|r7Oo-_O_ij$gtFt5|Ty+H+{P9 zIAWDHidxR#eIqki0%{Zi;|`RT`z0cSS$C$5!znSKGB>{@K_34AZ|BvjOvdcIKw2f2B@{-AhOW$7&s*ulcxVEJ&U~GPdFOyR>x+$Ko)8;) zupk!z`0J%V16SB!vg?g7W@)FVyFqq|kZ`ff62icaf4vg(_hZ&erSiJ`FwSeFh_J&~ z)z1k@*Wa-l>aJ!)1x&60!Brl^-~2eoO@)=*shVA^nON9(Y<`~I9QDwE<-i5RB}c1XUytzIx`lND+9lNp`#@sf2EjNh>blzw`Tp{YUfa3#>IYgGAb^ zFE{I=Q$YfP127LM&kC!Yu_SwV>ASie-_rfEvzptzLVWC~!h+tbnPy@48On}5{{Swz zDcwHqYL4pOB&xX2BsS!8@>b|c5yZUXBi!@v_v-%u2*9c_8KFxJFOMGRi$1Xu63=*a z?;$s?*z0R&YGyDsr_kG6VI^irb~0q1}3AMW+* zS?+?=FOpHzEv~MnN@{BMj}gl%jm)Zj@ICx+e%*A56!i3R1f&KLNU5_YEU4Zidq@Ny zIq78o0PrBl=Ldt*Tru;J^>`!CN+ruAV3Wp2JxNe5JK?aRVKFYHF~QC`_v%kurmr^p zMUwehK~Wv2P{AaYi-|+&PEtokKz*1LCm(J`dBYK01SDjJ_*71Ncn-;yQ?C%A@Q07*c{9vj>3 z)nRS9Pi~iElF_jMqjfGtOu5p;*(JgE=MBu4F$AG-zOs%=3Ae_?uI_e@2(d2QBipk)JCCSI8T)^u)y*|h6qZqn+0u)|e(Ol&?~i*G z`n+?|7TMZ4BP5Wy!3U{4RWZ-|*7N=4#~n3Q(V!++Mh^UyQRlBM3zs*nO~fJ>ojFdi zx4sm6ixmY$&$l;PfRNTZT(rcJNTGNC0OQm0c_oN-0DG|OcL^d0&Rte8q_9!tvUA3L z`r=iR=~qEfNm)lT(_C%Uanw;x4hl%D7=Htd5$*{cbyKw(>e1XyF-driDrjyr=&;`{ ztU|RlQk)zO$8wwoQ|=qCXVUy3RP`SfD0WxqV@ZS5rfN*3n~wOiW@9qQ%*q$eQ1W>9 z>M>A~m%_-(yzRj8j-=8<072;pza9z}!Twq4p0b&DU@~WRFhAGl)=aCYr+?s+Ht z`hfQbNI`zmT8`YY87HZ<%=F+4;&cV$AP+xMfse60TH*BuMN$?H@g8bXHd*5wtb$VU z$r~O=Dn8vA1l1AEPgO}gwDq*kB&4W}{ZUH1s{{VBIOu`|6)hh;fxol*J^7VLOL3%vaRY;jFyKgGI4;*pB#bKf9#&En@j6@8*H_*QrPv4 zM0AymyD=44A{l<6h5C-e`8fM^zOVH&+bQ35%TWmd-4DuxfJfroM~^3uf3fSG;xY~i zikyPPxcq&iLr*kS(*XRvnB+NEh1xk4m6f?i;Dh%3k44l*K9^IS*~*WGE8NpXoM9RIYX5Lk+l2!^-3UTRxQrJN#n;`dTNx^(}nT+#Z=j9l{YT1 zWw&?CM~verr+|LhGA^)O7P##ZO{w$dKf&=T33=&OkjqiYY0R z2#Yv>Q`?r~s8o8Qhh%FdCC&*#<)c~_I0Gc-AH$~#T}5rEb_7om&jM%}atFVIkI?nZ ziWGUqlqV{45v)pb%15afAf8H}2k+9RIf!He0mjhT{yjB8FU*4RvlJ%+L7aK>(~qL! zKfvWr0OP2uL3_iprZ5n4NC_LsU84kXgU9si(9YRl0gN_D$mfso=nF|ucz7jqw{RHp zIv~?rIoM@HTsQ9!k)PxG^w|xhJcF6Gg)-O0PrK?TAQGSwN&Px)sJPQgjT*Gzo7Hu3a70knRbz4BJc=6}@(w>g zJq2l+b~46iVpwM}KPT89_3zY)LE*Ww*h1Qhh_M>SYM@pJ1Q`k4mfEaNNj@7LEu~%TMo8y59XGyP zILIEu9Xi{=VfG~Z_15om85Dw~+8v`*BOji6UN(R*Fjvn=BSsC3_-x?xsoWxfr*ogN z@zMfwLoIv2*^~@!JAlc@O?5KvVlsU2LFn(^k%b?KV4ji~Bqg(wbMM!J_(Op9d*GBL zu{@r5{Q5kjNfSTV^T$R*MLBFJ+)3TXPBl;@G*UTiN~8cY(FJ8OPF4h1R52m{>CcskO81j+9f|(|ZZCxQrr?B=qeDnz~d4lAhIbsD+MI z;e$HwwO;1x& z%N3dk1|k<~c_V4${{WFxfJf>^I&q`yro4)w<5~(8R3&|OyT$3_KZ}Et`gL0}x|lk8 zzz=wd667qgV-}xl^d616X<9n#zLZO)Y|=`tJcz_F60)!UAn+7;AAYR(J8#>N(Sf1p zfAh%H>H~g289&GG=czuD(^k6$j@xQ?hFNJTRVA4Q1HK7kj(99j^Xg!c+hagOMHxIO zY!0yXb+gquSyruWa@?ZwT!f`JNHJfhZo6$B);bo{_~0b4MnL@tet)0w=%d@d+RWtt z0ATGeobE`yIMn0}XY0=y`;Q%2OxDj&e&`ehCvy-0_UHcn4ms@D+>%1&i2=P;uQxEALLMiH=)ONY|Y|&Jx7~rDTvfz)=@PCNuhEC0P+O6hFeK$2Q zkLr>|zsS7gaezo4Za)2AvrlY%vGfZ!DoZKH+w}9&IqNO3K2kp|Q5U)sc zFM4)(k59mioqO!&j)lM7A(j#WE+0^5-;cx(=hQ1gc81NYZ8KNYRaVnVwevw3 zr>u-76M%NKOnjd?IqO5}y6P~MP7pGrZpu`0aK6X*9+CV%yfpePB$zV#*NVwM2|gqt zyndcKnM;XcMv-gIUBi09O{Jwwz?^}MR#W^nz}OV`=NTEqux~%dWMF?TkxB5!a&n?A zQEOE>{{W3@sN;`)qt9Ea3d${@M-;3u3J;fj0r`C+K1WB%RY!@yq?{3xBCWn&ea|~N z=~0bh$zRO<;6o~=qg8^E^Kiv_a$ z(I13T&z%1N^1yY{(^*9y&?&0JC;tGbKOBCZPI@!vY4gn$!GIXu`!Z9EfAT#^M@TU- zs0YBqKLbo`BbIf2pYAmSZSC~|uOt#rPk3IqG zt>R)pk~$lSF@m7SZIg`i&(p`AfX!0SkM|psBL4v4nsb0T_HH_qo|DwSYFP7zzlX{{ z)f{`0D#~+-A~CX_R%I&R$n((~m=-cd7`8A+gV$avXke=zomGHT;AH&Gsv-qI59VbBf<&oT9@c^tlKo#j6qi%D$nBa`$ zFGMkj{S2%ydE?uzpjP%Dw^tBMdJ=jfbD3%Co)rXp47)CV!>Co$;de>O*`%S=6bH&| zyG1Ja_uO;Tgmj{XO_|5O_-$BZ*0BaT++&NKq@Ur?#4(bkn*^V3wjJN$qMnf^l8)_J z8WhT#^%_-F?B(;`C~|W~aBm)fbEaa;Q0Kyv8%gH-1~6bU7__XY`6zyu*s5s!AU2M ze03RpIjN}JtzMtKQ#SlR%vz>EIL|p=IO=S=sZ$mhgW@5z$|y-|MvSyuyK7l~?Pa61 zmkR6Nrq{Y0+k1yEbcHnyzK2rOu`d-bx+0KKGD&h!43@`H&eGbhmkY0PG<}-gqhz_< z`*(Jyuc_6xu~99$8d%JgMwv`+>CO}!zRV)4I~7$VMf*G4i;rh}o1%N2YPQ-hH%$|$ zzi850@2erEpD@W22K3okSyonMV1AcXBoGKQ-EHwP+*|(udo@pd?AJSfm)9Dyj^RyN zRbsNm=)p}@Z#L5uDN-dW%Sy2iRFdV?zCk$apeqNbpGDRr49wu>xj))NaQ?3d&Z7`W zosn+Z5Cw+2zZSGF?7wd{XLaj%@&fd`JUfk>JKh8&3@x^|;)ZM;yAda78Eb=5mDwl6j(Ml^7 z++uJMb}zmf&#=9~wf8SW)9Kp1Lq$VbO3~`OLsiqdRKW2wVmTs_T}$o-9dm-Dm1a{3 z)Y|J(-zv3jeNEP3KDE0w*HxHdjxk?Y(#tD9(z%Uy%`Op0P#lgy>6LVHVo<4of(Zn1 zwTu0a`GPpChDuz$-|T(=0Gje=+FB)LWI#fYKRol)!$DYO)KyxVHLH@6D?W+5UFtmy zmz^o;i~0-$58cSy6^Y2f!5u;!NA8R68`CYv=ly(jWp>L_Y27QRF4a1w(|^5KFS<76 zVY*Rio4iytg(`%2be2?f7%_~3ry%uYq^L^lY6M0>NLTYWi=MMbOK|OpzgaZav!bW9 zQQMnRYDJoPC}f7UYGH;lPzd7^$xS-|+z}ds%!#_eqwMCE(_Pcic2>G-OVk%Fajh&$ zcT%jLttIxN)klv~L?6CkB#uiAyo0E(`)lnqcKCGT=`V;Yu9T-VL;E{f-)dS)DTODk z^35bLTlTv~v&PmO6hC17{*1wioXM7~8%OuXM3kbw5xA%+HmEI5iqO{%V zw%u)dr?FJ^@m{o<)2|F&&8ee;8dt8PxJprDr7k3Ti+wKUE%+i;9$2+y*o{GA?hkUT zdT&B}J=!I|&sqCI-xY6i?vv9|niLfuGcdvl1bb&;o=2*{V{z(bb{A16FT?F@Ep2@@ zJt3-!1Zs89rwsIkimnM@58tfW-Yq?P(S60$dUsS($wjCky31L6r+vgM^(<-&mSdc- zlr}%}b!F*YEvR*eWjjepr!>B;zEj%!#jhm0U937%dzxF)qL)mr=2#Vu?XfuuK+ZZT zvr{6N6oi0CFO(NxPmZ3k9Wv6fl|=dR|?Oo!$-YC{DjLRie(yF4Gijq;?tLxy@&XmxC(ZZ{- z-l0Zv7x#yp6Vpzrwb6FY*V`(4?XIS`Rcd=gFr}6)6JHfgGYZYZClk{rsWhIjQn54b zI2q1**jhWbTB??-Pu}$89l?iOR`)K|XuE04=V+>8r;ka)1tQBLRMk@jNoJ@?F*3{h zw0vz=LRqOeyy~9Pk_C@wq+PZ>m<7<&%TZ%+bPdFF9*-QKT_skxo8^|asTyk?)~4Sq z)a+zQ=7M*L%DZ5dB?;VlIqF$QrR|XwS*YZYCIMkk*(dYo9WRX2KC{&m2?UY7`sFNm zQZQPr&N=gdc|UQ~nw=5l+m;|PAZO21*oGxOWm17Q92`Z>8Tf3u0C9akFB4k@n&qHu z)Oy#oea)`YdeZY16Erjja&!XL0xsO{K2HR7cgbz3ZN!qSbT^5N zF`^6xkSSr0%q9+cT~U3oXia&juQf4Ny&kIUmHv+14J0^!+80|y^pP`eI0z&=nYaKF zeY%^3DtgS>Zt7xErWw15-L0$X8XRjBqMuD7qEZ4DMpYnuq=MOidp(?J@i?dK-)8SN z>Z|2Hb@k`pXgeCsUr{nr z&d@A=sD&_s3y?E`(@L9DRY5&d9Ha#SrrKx)+3gYPs%fRnl8GeT49~{y%uTfC9X*b^rm-F(4UMN=(G%_&0s58^b`)iRdO zu@Jt@)k*%=d!Di^?yGK~kx@AaSO7`)=V%A>9bTQ%7diA@$|@R`ffkZ!Y7(ka72}SY zSJ{QZ%M}U-=hl1dZNdtk@OMq3xZ2E5K}NC7B}iqID`15oxj%@XK0467-HDq)+@@;E z6ploY2^OF(38tUUPmiSk033CrrIZFcP82Wvzx+g2)LulzcgGuvgG_hVX{RMWMBkh4!rBvB?^%bmxT0Gysr(}tQ=LZziZk{pY$EWwYMymHm7 zf>ib<_IRngaq%169@cixxV^LO?bhF69nZMY&8anQzNNou!$}1^ku^O#DGLv%9F~}U zU={-z&s42D!W6VsFsx9JU4+1aoSc)Neojf}uD)A!K7iLFmRRxUjG0(eIg z?zNIqvPiB0j-eS*z1SRs{W@D)cdV?fn&BkuWU8CjnmCXQlgR*keqBkdiBDf*tAeLb zTk318WqOz|6_o616&nC-&(pUtu;6(oo}qUKiDi0U^i5A=G<}~_>e@?%zG|C&IGV0XvmGnS z(zL4;OhsK{kvB<`!na>{i%{w88l*}mF;Y3l4+vgJiBH6FCT*bv;-l~$Q%X(BnK zf=KBMn4M#C7=0=D7cqQ7Q`KDWU5%O@H$JMZr}#`lM6R()@$J4vQBcC*vewQy;#+lyOsqN|3I3VE8Q2%u$=M9nKJMwgshP~*?!+who{V*sH1NY2aUt}XiZEF^pu1z3Y-^ zR~v;Mt!+q`YMMKxG*qII7D%FkK`WWn*`phRLL^7 z(v9me^Y9}!!wI};~ihOcNetQ&xsS>Js7_A#u&uXsa6FFAUnq8WvrTF~oUJ6t)WE$p`c4g86u?nzDM+Oq8izQ!LO^M2x8%W>yNTpI|{>{zUb2E{dBd z1;aM!+d%nl8Y8M@QCVer8*$z`L8|^EbXEG{sI?BL?yvhmzMjk1X$wRaPSaOfJ!z^U zRD>_9Qe%cSV=RrhGclF904j`8tJ>9i(^rd)EH^1N4Nd-9!AOBxo|>9a0<$o~Z{Ar? zg~1(GBJFY%P_dvb8qYk2Z)z9d}=vhH$5^l!OM}v+y>IF$rO$Or+%qlw)7{phQPrvg1y*Z`g z7?_l-tygoj`fR|F$jQj|{ykOZQ6wao@{&lfiStlZDwc=Ra(Q5k-0|a|IL}0^6)|On z9A;)C0k?t(Jn%=K%k$}qlKTY6He4>O&ZBZSs6gZH20f2YiF9q-jeT%pRe)kk6P`b* zJoNmutRm&lIF6;Zk>qq&33oHo{_Jha`cL%n`fz$SnamS5C}ee3QMy3N0R3_K9)z{E z?y@3O)H2Ed8|FFt`}AaT&E>(}$Yu32k)OZ6-yfetH49>2x)n16u@JU&jUo z@$SeXDBWdKPc0Z)aZs?FkX}zGjB)Mkde2>xN?3d4-H^2cZ&uwv$q*zmU@6H25Jqx6 zy!EJcg}x+Zl_{YK9A%_@4CG^I{Dv}q`5k5s%tpuJH@V8_BWKfeb20&i$SIMGerKyZ zAwbBU!r4Ff2=!BS32q`b#ESz3SEV6H0~@{i^ik6vr)tL87*$O4_+SMC>_7u$LX*$i z`gC}JvWE1q*&Y+epZcDFs1i6tRTGt;SdWWjPqgh_$2l7YJbV8DKD?UG9>IlEw1&W3 zXCuk#N>c|Xi~*Gkf`3eOP>Gxd1&7v3vpzHDgP%PHb!TB73RFhg*EE1_iAt*T^#S(( z0IyBb+VISx9mhXNEOGo#Q&5v(UnR4Hg&uk%(vWTgb4a6hz@y*q`E+7=4+cSSc*Hqu z@(jqL9OKJIcszc6de)1SjUx)U0)PZ+VEkS@WPZI%1TKAv1#&?CryqWmtSyoFh6Zp{ zWO1IDnzd@zhozM}L>a7iAnyMFJs8=Ysv+c$JvX(QshG<3du7Kev4S)FhgMOBQl1nr zMJ8q5SI#l#uE&C}tiz=qLNm3`@hZFyp8I-Dt4m*3OtJVB@)Z01zh0dpmaeN4)icQ> zw&LyOj!sGFg}zZ**$p+Kmaa{^gVsOOlgA(qe@ygEezLE*PV$-yRU)~-hTlc$qWvIn zGx=waa(d9qn3U@kYC_hg0?_qQAeJ^!?lF*j{(WkHgLs8MbSoF;F$Kd&RY36&s40z`}4zbsI{v`C?ixqY)BP^Gl zKw@+?F;0C7NBlV_ABY_B`E{5(v++}{dxmQ)`gy9f)|r{THm8Q6jP)on%aOtoa&R-& zcc-?^F==W`{YP`Wgp$PhB%dd&o)ghrpU$rT0JrlNRTz?wW?sBuR-)8;hg)3bx?gLm zE2?LeoXInjwWc2+7Jw;ViR;wi)MaH_Nwm}UvMcvyTz<-Zh z!?GU=Fwo5gr|x|ul{W<B8#3t4X+hN1Wpx-Dt5KQi~0g>af@iPlQ90B4qV( ziZii)4ELVmRMTo5S|+pUAm!325Q(lNV1*y@r{6r|tDEBg07+W3$8NMew#iDgHk)Ro zo(eiRF}5{&Z0GgL`TYI5=shI`H8c@J4Ygy6I6y%f?bV#BsSrWs>$AMc2ZnT!H|(2k9J)U~$GW8{hTo z=NVDt5h3W=cxM!cCbzk8{;jZkq zoesx+zUOnMU51_LMlpvRVf;7WK6>{a#$Tz6D-uZq zru&_e)q1zp+HSP8_14RTEfrNIR3Xw;BLomn@%#IZu^47EQA0a0x_2J;i*?h=m?MJp zm6Om(`a@G-T9TOA>ZV z{{TE+X$DCC_us6m1w_{AcPS-H4}J*irP0>OtCS|mEP}Sfap$WKx0?FDLux8}?JO%-Oh==5wMgGhR3!31@w^P+{{Rl4%QS5oD=_su zZTCGE(L6`gjFW-mqn%AAqDrN#I#0VmN}Qxj&i4`6{Trz?uDY^PUi9?oQAbpZz9z@1 z6qp%}$FmRX{REO*bus$POXTMfjymLTZ~Kv``)_wkm4>JHGqC-oXq~@vRDkox_gfwq zd-c+O+;^u(_bQSEp{mrOey?dPln0y`SgOOikY0Lh_p@sf253$^5dzax`u2n(ni)8_Q&}2*EnY- zQ4ZW-9C`hJr&+YkSWqKKl%T8c99iy7oayazsV!T5HKe@Gu_+|&LgcTWd>*1Tn*@JH znGh0B->duLp4e^O*t@%iU)mHDwLFh5Q|dYK=dA4`7may8hZyU#VG~T+BrNU(XDb*~ zAAI3lS*xRESs5mb2988HD#ODA_XnTh*I0Wit$(-L2F0i+jbyk)hKlmf8k|uCHSYKNxOI=e%>k{GTO>w31t4nUGI=}(W<3?%;m@efgY zQ%EZCu{k2?_FyR|DopZ{Z5pS#nlhVP=*#Vd(!&*HRWm)VSd~+WT^F;7DikZbz&G}@*s}7t==B-+IxL(nh0tVeMKU&Qqv=b^bR>@#((we zmlsOvy-9Vex>k|8s;Wt(A#gV{7AGHaPgOk@lUXuZ1a?V@)vJ^c{{Ypr0?-Umw9;e+ z;C_8?AA}t~{{SJZHC0SXQo5!J3PT|o*qfb*7|6>J&V7eiQWf>4j+!z=d$PnI1Fo3- zE8SMFKvml5<3cQV`C)E3B1B08G5eBR`E_y9iLF3oOVC)DiAIm+Ik7RMBZ@U};V~i% zA=`#gkH4ROiG9*Aa2bLUa^BuK{)4A|vYe9{3?$`(4;*wN?g&#B5=O}-NFZk&b3&4p zIE%c;j3bUX7h}31b_A2KWO+Zwr3#S{&GZ%B!sGD|VtMPv19N01R0FgwcI4yudFe{V zk|(@)8%{@zc_$@ri<~AsE~< zyyKpX0f7!rwm0oOob=l@#5@Cz$>j;!jE~-BvdfT3BlvVuQ@CI~L-k{EEs{q(e-3(a zn1hk(IL%1KWN~;rU&skS_rHr|2H;dh!|*DGedn5;j@b@<%|pRmUuz zl``z7iwc1M0C@e+Niks|o&_MT!&oWjmEFBPsHZpsqIXJIgCPWuIP=%hF&l<6kbIvV zD2;xvs2mZ2)p46JEX06>kO6|w%t`(0Dfa;N?1)@o$nJ7DC#4As9mR)^ayn5B9I~)T z5=oqp0>FjIKm3k)$^N}GXG{j>9ZFHWGzfVhgU7k|>O*6-y~ehhiYUueR@9_XBCbg+ za6iYVnq3#FD$nk8-TqKd4lOc){Kx=xq&qv?ne8*rc+~V0K~(6eZKP^OGDg2v=VOcl zevk+C>J5G)E}lVAH{lOSr!yvL7cIB9dRCemW}d@pYKnN34Bsj@794KLK6;kZ>FY|E z)hOar1aJma@r+}lzxPT2S}TD?Z>R(#CqDSW$2rgC(1lf@a;ryJS2zdLAm@*{8UFyk zSS8iZn0{h?_r=e{pg04{9um=PkN*Iy;7~ER`b&|6R>F^!&PO zj-uY~0?}1CLUP0b&UoW@+oQf_2G~Weq1cg(x@3F*0MCqdAFi69&VBg9ijvI|IOwg7 zCksokHsb0N&Is~7`d*Y&0D`eV#Qy-wpNq)n9DDT|jqNjHk8UA!WOyB%3FI`2vt!Ty0DI5) zbmQyYir`bx71{~UsubfN{fzzk6%v&~C?&P`=?-kn2i4&6NI1#-zpqKED(L|tMsjz5 z^fn;$fv3C$$_j0`3+RejbNc5T`TKR_e%ycfNkJKG1ZgQ}$LGcew?Y)B;RFz(p~IXQ zwbX@}1$P9Jpi{Ti{4vtRtfvatT7X!C#9n^?0G~*ZUn4uDdLZIIsaA$u3=AGObI(HE zet*Ph)9b>MYnYD*jvpt_^y}HTI(PoinG=|{u&w4o3gS>3J4Vm(>AJeT5g8R`W()M< z5>Mxxc<9L*{KZI?h=6d2Epq2RIR*3i^Y`hlVS7SJXtF;a{_S!L0gT|tJ-PjQY^XcI zATTU%5Y0tUWQeGSVb27|joJ6})oa+ghNSNQ0Cy|miMP_&=_3e~iz5Qffx|Gt`Ummq z*{-+U2I*=lUN%<4l(Vr1?SN&+<(&Tj4yrEHQ`En6`@JPB^$zk>(WOf*7|Vg`GL4~z zIb)n3ZlzGIrPK|wkEn&H8PbmU)t36#Wm&3e?u|7<7jrBdj!!rzIL{tGUY$i=(hAbm zlE96xOOk&-JvYHU*eHn2QZ}$ZO}TJR2+loIo(?>Yj7e__pe(a*1dvS%WD|_}m;Ga= z3d`Hyq%@=eJ0st}^9verC#kxc;#lKq2o!UH_ihh3n0TS2UEcYD`wbj9}P zRGNyKh5J=@#OyHmAT`F%BHe@W-I zP|B#%BxDVYN{O;YMmnwAQc&J|n|7e4x@j#Jp{OC9;=I~4b^f{sk|@?a(8VrmH#DqB zG9vyGc+VeA8k&^0T?iVz?X~rea+y@?Dj{9`xNQjEx0)hLF1cxYS98+UcCOl8Zq^ID z{nVh+uKAbMnntQ-%3=LZL`gT*u%qQr0fqj( zXsD;=mZ2~a$dkZ78y#YzdR9~jAf6+>J&7VN45Y~%d|-S2T~0e+pk?k~a&#YWDK3W2 z`r}v7S$}FtNYw&@Ipzx_<~1O`#N69*GmcMCD5?-;Sz9c4W8ifp(^{JIq_5VEOQtS0 z7K`3+HS_ik_YTxDu?5Q0(QTI19Hp1e|pP{?3Jm)oR%Gn3?gB$r5bGpL`$j z>&dB>gwraSH*x-xB!!Z9z0{DmMgBVvi9?~whJDh)s}c}I{Q}7 zEwfK+3W^l0oTZW>>LonLGNBvlZvgqnQU3EoVOqNlw?)CJEm|7OMPl49&9_I;Tj@#oc&#C>t2J^wu=^(?uBldg3Y1(k=~mD$%AN!)J(LQz*(#4SvgojFHGOBG8=6q2;G z@yD`P4ylmguoN#nXrA2no4prZMcdz)t-7Xy)LrDE(mlS_383wQi0r*n{Pc9*y*Bu_ zMKoy72vX9k;N~{lQ-e+lnKejNz%CR^8-Gu~4dO;336(4qaM6ojf7zo4StT>-JG6o` z_0?4}qQ(aeHbY=|_WpfYG|-6M97Y1WV6pzaS9)4D7whV;(;O8Q3asn(dTTjV@;%1W z`SoFkBL%*t94OC@dWBfVrG4=DDF_|HBX@{ko~2bruA8xeGqPtc!RZ+TJtEybW(S((eq*O)( zG;y}WB!!MPjp)(<5|Dy5f&;ISNe9aH+?n*RWZp5jQZ)z2=zzRMi# zC#uswtx@%s2kIpLxjj#MVM#x$48Z-l0L~wc;e}3DTPz>1<}({p)T?X~{vQl~A&hX%w@B)0bFdb6vCLNkjN~cf^XZOQ?sQ~|stVe6PFX6brHqVY zIozY}Kc85|PNtZzm>&@u59WcSBB!XYp^(W-EY$A6254ktBz>}^b!BKv_4>N>C@Zd4 zI=U3FUFLd9in(QoZJ?iP6(r*Xj(iOD09xVVctVZe-Z4jGFK;pbJmFN7sdv%?pCSN`pZ%Fi{ap1w9VL8)g*ntmSn#& z()_d$R~afdOAImNWMJbezQY}3*hol>o?Iw7`dqwAa_`~k);?ZoeSS@{{ z?QOEptS#E2nwzz~v!}NDw<;aqEhNRBPgE&v;PP>dfu4-l{{R@B?(T)PESI@^b!fB6 zscA3Tg4LuueFeT9PgP4WnjhMPJ2hNlLA=IDR%4T#3?*-d7WGkSHMK2DEQ%zR?6M4u z43YKY$??;_{{S-$6k}=Dj3!~h{f>68>-A^(e?F?E^oyg(AwfL;Rei_3pw1s&2^q(j z{KD;3@wwlF)CYG(V!Y%2V~%lxDn2>B zCoY<1r%BiM3f$BcdUi_%b;)#916`+~k~0j6C3B-n%*nxTIRNC(&axn`)IIOgs= zH1z^AA|%#Lu*m98)a96+*vF54p?%HxaPDT9(%0_sY6E}a^zS!!toV4|#&=+iio zni?Y*EMrZM_`m{AGls*InC<~vQPfLF1Z+}4b782v`C0;IA6$ujVNq8wN0p3KnsW71 zZ<>~WnW&xC1*fJ;iHnHi1&B}y-~zMbSRt!s7ey{oyar06Sjb>9B~VOkoK{^({&BK7H1 zN&fLAK+eOLeDRUghrXW?9k->_IwBYNchdUnR9ia_q-fVy-ZlN!g`=mQ(FI?il<=pd zQa7rRHyy=_9Dp!7%)QL`oxk^YySg*Fx~ogUd7i;Z4Jpy5Rac5Ch|%PAfqgKd1>Ye5 z0D~Im2RS_Tdr3=BY4azr;PCBtw#S@QnUb=$r*0kGd#usEbjNc$+h^9gB3qYq`|EkM z)OVjtX}RhzVpwgG%k#8fJxJ^!NU98xRH!SQ08R-Zhg`nV6VgZAx{AqyRK*2t&UJ<3 zS$C4Mfy)9i8MB;mgVwsad|zt>i%iwm{4i-0rO~&OsdRi=pHS)vD5x$iD$2JXPD31Z z5-Y4&l3n;z+ND7tS|ptc)QkE>27sbEfaSYP*aAD|TrFV{%}geL_c)#BKG*G`V-W9hf^W$;P>(w4?!HM2145^L) z`^DpQxJOj=Ng`+x!bxav%q z*+{%0knj011x0^JH)nBC=kJb$K?CkR&sSX+Y$U&E`yQaQ-Qk}7s5Qe_Xmq@`T9{)+ zDxoSQuW%`mOO^#m1wxW|>HAasFZZ`c=!>s$^$wJ>+w@hQf`YcT^qs@APJJrMi6Eva z40R?)X&yEq0`A8+^NswBMwp-_YGQ2M<1JB#RHk78B>p2iD9COx^qvn}(?e6#+%=Ag zqNBJ-8GawF5;{PeSwl$7%1#D+u+e-0N+3$zt*!{_Vy|j zsEwugf3~%JoAbq`8rA%SWz$ho_QrQ^K2j8vFX=<@g5q zsTB)zo8@FF^~SBRZ&T!Po^#hhEl;Qx6$0TgEr1xtn}-ArO8M*O+M@JQ4Zc&ve^KEb zIZFbeZ_DWgMN?5r6Pc})r5LeRG8F)kfsk{@j|1PQ+FF<=jb!<1Sf*XOeH8>B9P&By z_UKg+UMKX{dyIeu{oksb;GE}${K@Ik3TvmL%GGsM3k+&Ke@tOUeg6Q79akktF74)F zwd58C#sL`0fM0(+ji7tynd6b)XI+0fZm(=ZZXd}AE!;z z$!jx98p#MM4nhnJ81q->P3yeO{KTQ5zGuBTCZQEE6I6g`H^ZE4k zCZK{fe9&9tL<~q2fE;JWJy(D^Z|fW~B6qVu9e~XYGJ<`F?#rg7ul_ zhSdk^AOukGhDRUA z@*N(ri4^`ZyPv8;03QB7%kRdI~7|kEHLDgZXEqtiecc zK(wp|S=qS#e?B@{^IIdyqKokoBqfOl1OtrY7(E&ip{UoK3xM~8^DCi^S#U#Ra2^JH zb>WVshpLSq(lDjR4f^zOsYE1-c!6~waC6Tde0};cYb3;qu_^<%l7r9R^7GMUP_zh~ z8KDF*PG1bEovc~12HXypLBA}mhdIUp$^Ji={dxeM*pgvTMl$%%KkM@75lbO#oQyXB zHZ#cQsB?tEY$8meo-nEM3op_z4mrU*bdE^_Ze=m;SqLEH9FITCr81b@ZD}S$yO%@G zI*ICA)uT&TuNS+8T~stSi+r_p4D(>V#V2UaaLjPO{FhCo6V{*rygC&qZ+PWD#$Tr| zb!&`rB#rwnkh-Yw#w8~s?}EAhJ!0F0=^($ya#3G|}5b5Gjhcx5V zZ$D2-Vt{0jg+cb}VJ$k6a5(7{v8s)@;~e00@s@=q8cfo6fm1<6O9IO)DUkhMnCi~Z zy{y+A(yCbO7Mi58#WE#r)I*411Z0v=;y6ABLF_i3(t4x1`c}cMA*r6pcBz&D6b@I^ zoJ8*uu^!CJxA^_~?LD_oX!{iuG&b8sJ-U(*qBt$^GN8c5PCTE_pME;Q^q(J@gs-bg zdq&`$8<5<_gAbvVQe2xxbL~H6v`=c`hNdfhWy?^UHC6Vmm+CA41Rx{@UO4gO`0Dj* zyh!G6khpANl#yXwpL6~0PfoQI)>z&D0Nf-B0nC1rbHVY?`FZKCRk6sjBid?%DZ$J< z9x=$>`Qwq-Hl1HGvT2z)M3WanM7c=prafIkM*@n!9I*ixAP#xUb)CK`Dh>Ytvs#`3 zO<0XXH6?I)Awsd3Y7~-iNf{08`SpJZY;cpd(NJV3Xx$$ibDT3Dzp&~f+-eJUpwL>r z&mNv>rMcDqRma(xADnL>jQyeL&U9!%H&f~}5q|1UB z6OI8rI8`ZG{<1eP`iSwkdH%gMuMM|6oQ65;xj0myL}ZHv7ZCLj-AqCrLCHOA--69m zHK$Z-eKwSjTGxv;HOiKqBvs6`@)+3tL!YK);B&`VzJQhnHU9UvR(h3vaD>^JLmoEVVmSvGIQ=?P6;*7go~@0_f>E;~oN8*Mk%H8p z?@LY_J6{k|U5BG`a*-|+M;z4crU(cy?5EhmfPXiIsu#j(pfVZgQB$T+Q?xfaaGY}y^@e&${VBsX zNH6WwuFa_~`ey$COMla~lF?jgV3s7Pi9sb~jiYt^@*Dg*Z~d6jhGwUi2ze!O(N8a= zt%V4~$KRb1Q=|mx0nc7a<8tt)V+P)wtAW5VqNMaEY0ul(`(e09+Y27llSR1 z=be>#cXk0IUP}@{01tDL2l47*sq_Y=(l$E{=Klanw#3wrIk!>CC^NKCgeFE&_(9$P z>6O$;kbx~7m-B-XikFz)7^$jOCs<=Sl13Zc`+i++&xEP&<@KGq-BlD(gGW_W4M6%! zVnhdloRA3X0ozo(xjFNaI^TZ?^levFtg405OM4_#aDW1lAReRhmKfll9>n!ij)06E zMDGsMIjZjbh}s`5svjrzofZ`1XUY;u$Okzc5g^pTO8oR>l|NeBfyciC13$!`g(VHg zKAd{Ko;dd%uQDkhV+X?@%OswRFja2ZE~tr)>@h5Wka_;@IqR79gr+n}LDtZarl1Ux zeEf11BOxuoYz zbJwCt<1Bx*5eAL&r37eB0na4o&*#!DYa2U3r9G4Tz@Pg<%e`x4E03ikp zK!g4@OpJX00Pf(Rjt87z&IVIc(t=4+T~{0&4nRC|dLUFwxrBPAk09rVPdOZO z`F@|LO_$U|;V4K9-mqt_c-gVVMgx6+?xT(m<in$2{}=I%!9$-sVj~M=1^AA7(-4#xea*o|bN$ zMo83DxyDyADZ=OOd}kd3i|Ymw31A>>)y6^$RZFyGNq}P?et%xR={vnbg)OLQvUu7^ z%V6i&ew}^MEg?nVzZZZ{Ml1@}N z;S34>UU~&h+`$Q9E<`t?5^y;?zLEFp&h74on^|2}mPth=x}R*98qLFUp*$l00Oo8E zIzguNP2&AJ3QAcPnPdW@u0RoEQ|>nrxZ~~j8S7|iDs45TZ4~y}D?LGx6g2fRBuw+k zgO((m`<^-Kn-s*;PK>hdv+3{MqIE4Q=bXz7KCoS}#5d|Dz(LRdRN@X}cuEAs+PxZqCY=k*+Cj+|0EJV8eApdJBN zKi8yx+K|An>{^!H__s6Cx74v;WJ(EEW z0j$ak74>mH?)=8IQ#P-Jug(Z21 z1Yy>dzOj%@Ay1!w=hIAgi=2e0vZfWYmbemgpZ@pu2OSyvYV(N!5BVq zf$jbs0G796eMAY;(D1&RWC|G>faXA|4nKf^($^CxaGOhCbc@#F( z1RQ3+1drp8Iyd&U`4}ITwQxx-HOTngj&_6g{JivrTEN@R5hZ1Se<*y6)BwZwVuHYJ z{{VYa?~Zum{{0#0)yPiEY&-pfRwy3h+#G(rF`LEhbNibL3}6vmC*RI_{{Tm?MdJ8I zJxd~}7{ID5dC!dFpBVmq0hc#H_5I<}SlB#0x?BRYEfqXrMmD`>cX;RNQ;hlPj^wq> zjw6B*&Ii`s2ss`)Dof4a0%Wh#3QGV`)ZmXfCoi6u?l*g%q;}kN;uic&l_j_18S?oD z$DWy7si#)+f|*Qa(|Ckw`?v6MWZy$G*{alIgZIn zr7C1rY#7jZG7o%n{{T*9Xo;1i4U3qd?W1f{ma-LA)EmK10A6l)cxWgRzY-fSs`}8W3 zp?CB@i1ueo5v)Hf7X~Fq$$}1Z=)WU5AK$D=8iu_< z%+!yZ;l(?F{Ik)fj<;!8rG%*@?=LODmBLq>K;e&9t(27eIX{MlI=}NR6ow%p_oNIXv_AA0KZ$ zXRgQ8RM%_1?N!kaL)5*|iDRz@NdQqYh1>_Z3`stJUY+#~!uJ%$q3-v@DJIy}CU+<> zM+d<1$LrN)*@~Kzb=TEU+%M2nRceJ+l8zrx&IhP-Az*pS6X&UPRQ+8f`|1GSj5|0I zP#QNhBJClQb6c|500`vWjy~rdMK!jwrqDKtFBh4qA&H1eI&iFBrMUW34;qrT~xrvA-V#}ZT3$0Ur#CQtwpH#j8t>nL|N z&)W;`v8JHy&XK0=%`MLEU~6?2x39iYQpCtGT6+9ABVi|n19A2pLN0nAM^edEZl2+( z7OP`JJGCtt#^u2vE=d?UA8DPCP z;ixIJ-F+^fq|tg>s?%_(XrqGWX|%jvRy;v?4mrW-vg~igM)iNav@x+TsEBa$|;5G{H z831Q@>DNM-q)x4t0!s86Xx=V;FB#cJY`F>`u=@S2^o~ql>V1 z3wEWh)VdAX(VtAuD|_mfNTs0T*0e(T1F^vOJEf~dg)Jh z`!}XLRoPX#(P~X2e81~1%UQ2_n$@IeXK`#5_xlx0QO#5s#?i7xwi10gAJdt_ZNclD z5+q@ZMsfoYgX{q7Y*6LUrv&Q6I|0O#?$J>;U_#Dhu@IO+u|BumApH6qKUAm)EEs|5 zg(o>bVb4dqWd;E+D}{|f@_Hsb!%&GRRgkdCl6d`b$mteZSxiSkTG>h)#K!jou~!)7 zgws5KPowD+C~z_eZb$L!*n)avB;X8#j+EZgLs<<})KgJYSJV8}5o&3XCy2YCk~Wtn zL@gVQz>$zgw@rSb$=VpGA8d8cRtZxW(@IbY1Ve~nwVN3OkO1i&y<@1mQ-)?ldC6^? zbAYT!`hgzbZ+?I#V~{rhct58~?eNP{aiNX~rFmqTg2zu9v$j!&01i2~0(uv{0@8`pl_(pkZn5l(Qiw=Lh8?8H`Y1E(CyF~_@ zzgu)>mbld1D=fDiSxZr0bE&G97O0Td#X%g1OmL#E;UH6z0MAy9zv6y|)q2qvx_;hj zyR-J{_%8Y$)2w^-ajv#nYRy!2Zqd@mM-nPL(MHUxw>xp3PHEe}ZXsK(k}ECWP+lxm z=?~A|q|q--^kL;?KAk(xT5KRz$tp6$dv$7QUdHzGRcehpr(^C%aABJJtSGeXb+UHK zohhm6rehQ6ynsWMq~qJ&6Qx59QSElR;75tPpC3mag%7y2CX^MI@}=oxK`!>BgaXY)63E z#tA=evlC@0bJkShj9QSDE3|cM!xelcMYcw=fRWwmWnvf*suDg)&y11D{Q7x^N2a>h zozsDD6?W=vGudn2sb#k~BH(DFr}XIMIl+nKnG0~)+0tk#p)|KUu(R2srC8L-XM#3J zJv1?-j2CewcvfzFf_?gzX%^BKtChl9CaTgG%|~gev(+0NTg6X39R8b0PEh4QV-j#r zJ8{&yb|4OsT<4NCA`_Y7UG$iFnZ?;aj*G+u=eE<;8HR ztFvg$IagIrU~6EYo@#0+*=C(gt%`_HM$PT&2uVQ4W^$3y6nY!tKJ%d{YaX_XN^3if zvKxg{1Zma@+*7{a0?*G23RXwoN3A z@L?$S!sZED9l)2`LFKaN4Qr!4SH@3tOkSJLJGH3RC5}WffGet38Srqtexs??a^_0H zs8dGW2;k3Z~#@}fbAZh(AtZ;-Pui3W3b$=z&3OsdVcXPMBuhTkK@qN)6YfIYi#>-s{l{84jmY!NkLj(cwlfloh z2dKAVk)-b5cOhuvk)t#L-Tg4XPVh06&yQjE&N{aH_e${g_V`sJiZ!;@yVQmY>4c+~ zjPa6p;17KDy27fatE9B(%vj{J*w}3pc#0B=DTdqqV~-^<3xG!4Wez&q9fr|5rac>J z*OgR0j*pt}QD(JONmU4Hy5xqQqJ6Pv)MZHLLA)-_#IABW#cIf4aOJk+kH3zzf5Umk zqq&&mBjv0wBzuPKtt9lpyzmPMVg!yzjX~i?JJ(3$DsCN_{!$O9A9%vybtX!tBm10q zYa1>)C?=?gRZ7q#FSg)`{a1zsTQXAUD5iA!Q0E8qWF)YzV{QoI+^C1OjTZu+M?0>MW?K|)l)*V zw6zrw!xBd;IF2y%_$;^zSnPAGml|e_BztR=M=F7aZTUQ(IN)cW*R0j>=WLJv0Gm@u z(_5(`dfD~9rbxmnM)NqfT`-12fr8%T;Cas-Pr)RrW+y#CL=+$^$e&^op=nJ5T`ucw z-%Cc3(>=)eAis9YwtczOnh)X+x<|H_3ycFV|varEh3QqCJ82sF^MLeFIAw-GvWcdK+tIX02^)#|l z`sX^6$%XhdLz~uQvi%2^pS%(AD@oa&8q}Wz)JY`DC|I+ZNw7 z9ZdzlU=H&IU)hhlb7ur#ayr7AN?J6&+eEgxE@$V_h`cKc03AJ1ybUDj$DOh7B52@5J+{B)qbwxxHS*s-V zDQe-K&a7gmyj0e-au!m=nGrogyj|X>B#?YAO!RX{4!*65)v0-V*UF$04O=Wv4D0q?quM zwsLNbx==rAyHP~77ALK@ce;75minDtUvipc6Vp6%Nn}XU4T!IdnS(LF#xvIC@1~B@ z7LSE}MW`>DcS+l>bs8?(`flrM_%*Dcy1^P;sAr_5d$g5vQb8Z2jUE-F2$GjUn7uZ+ zm60n#l;^esc#SxF?iAA3*HkDT3cIv%9#kmhc{~sa_v>nC!&aK#w$#zX=&YTFp)$xK zDkVmpn{yoDxnMK@0GF&|Qd&kbIRLuk{t2gUN4F}KY#1iUTr-2BP`Su_!yEWN}F(}gwoPhN~<(9(9;TsFBH>LhTJd*41Y3s@z7e| zcU5#U#{d}&%M2=cCpqJv!_q%fQYZpKK_EAa?y%X;NbtUP`}_X@pH2y+0}Q$pr!dkf zR-!2+mbn>Yi2WfBOCJE|&rPxN#K_eWX znJfkf&PX0}=Z-r0;GsW2odahK5po;fj+u2KE(4C}b238*yg~l}-LS~(GD(6VV@{+q zayI8abJJB_LZY#a3e6j;xmZ*Ta!EMz{{VihxajR0WDh%LFkcHErePw+K9Mt~+ z6gS~jBnGAXVG;eql^nbW!O1+1e_pr#sMe~(zNM?r3j z;|8udCTYH7v|>QbRTqh-Jruv5EQ31}}`RB()eC%pj1hq16Ioh=3Fv-qU zM~`9tJvZ0fZ4@i(Ra~B)6al2DsGc-c0|4hI^Y`oBY{J$)PysTHo*VxFZ+`h>T1$+$ zI49&>pg70k@#h^0?vkM;DXTW*@6JZQZ zsil@aXYP)URO&i1miyaCZ`W0WkJB?k}=Y$ z_J?+1yFByl(r6?ZDkDvm1@_Lpn5lJe&p}MBB75Y^ef)69%=S z-CShgWS1zv?)G$C5H#DVbjC~O_W*7AGB#OgJlPSNmJ>xi|8{6 zc#$)J!yu4;{ycQv^-!O#N?9WzxMpBMAD2#&(nh3^)W>V`xo$r^{=GCxw1wQUr&!pK zhiT91KsE}gA)?J`zNMiwleu820Wp={uOjWq_C9=co7AX%!J3*hc?a&D0muh9 z^WgRC$4;RcS|XqfF;Yec=bz7_2&FrVOHQUSkPK&^9)F)tfEn8G0ZGyC94PL#o|8)J z?N?)ztA5SD)TB(l3~wVyo(Ug?$Ai^jP(sQ`;Y$Jt>u~&JX-Ft_{RX9g0Y$0pDkd<} zlvSyxB?<9>S~DAY=Lhra5mli4YEBgU{krWqMMuS9($sigyheJdIVumIoH<(MFjhe- zVS+laS5QIybJM-%60$7OvqaLa^mvX6xH$wLxHu#9>N!s*(yj&=9(nWCi5)NPJ3~sp zT$JjhqMmVs&-Cie4KW!=(jm<%N`ZLm2V`~4!?@kJ)0fG03kus!sBm>t{49UVmktyBF2vqQM@a*!y<{#_R9 z5aHTyr9p5L$Lq)3j;d3X=$Mj~s934IA)ZS@q=~loRyS}HcM3tzk)OZx>oIq);ik*4 zX{z-Wo2@ij-9R%zH84tBwl`&DApH{f!~5_LTEo+Z72J}}faK$7A&>I@y#a~G5>$=& z+D1I}VMSFkl3<%Ckf>sCD?=+t;8viqU2Jzct6k2Lu7cxlki}C)R~cC$BiN5|?g-$6 zkoa!KWnWRjWJb{k`qSe+>&(qJ; zI+&?QoQE33RJs=1L|^uV%aG@gf4n+zqrFd0x(!+Vc>XX^5L&hXGnJij$uUj>UWko`#@Bq*8$6cP& zR2Ho}VYOJOCJRYsw3|%n7Y_l*wH^ zYeM)|0-1*y=ii+4o$Xe=r46Ru1E0dwL;S}c-AHA*K%6a0u5rPH;Nu^0gYD8OZdA|5 z%>es`#c0k6#&CH3dF!5~Nm14>71k86cw+sDXG0+tYj(mgR8lJL@t<$VbJ8g+c4-g) z08*$_spOh$^PKem0Q*jkO{O}u&eGsu@-jazeYz#9;*TG_%Qi^bhZz1}nErhlj|goO zCWShSM0nV2h|XHqLZL_2O%U4L;{*K! z8RMnO8(8*ffU}tK=q(#TijLeJkC|x$0)5Xp$MESg(OP3CeGRZSFg*)?(fG6E40*@$ z9XR~xkbt1EDUf|44_=D%^)4kK95GlM{-1uC${rmHn9P&w2xq6X>_m>5iCcDC{mTaf zz~dc#(xY6V9Bq{ClWsm-fIn03&tG%}GakfvlM)2Nji29fj()}1t2{ED_ZrEA52*-H ztIxJDdXU@uL#L@BmL_PNKjSr2f^vA^0_5Ox)xszyVgRWbI2(!%l$&&)-klYPxl#3a zDEcMuMDZJ7bj--I9N^zvz#?o#s>Je>LH=n{vuXpv$Qosrl?i2)wc%)aDY_fJd@5r`~A9Bx_;Y&K4$7ya61jfuns=nI&n%S zDg*Ba$YI9O(xjtZr)-ij#{j?O`gGS?x3MrLVSX^kEOz$F`qj)xJCo*|ft>UBxbxD3 zr>%^vUF!)T;61`zetZVw_jgZ(Z+%|I|Qsy@S#}#XWPe0W~>{S z@>EW@hJ~=&L$dladVWSLrab-mew-<^rJ}A)(^0pfxA)R~!-9D6o!R?y`Sszn!a)V) zIOLyMuzi8^&r4~k<4DXw)!Bjf>( zEXS`uvzDBx`53myK^ZN#*nRQsj-1xfOCeqA(rh$ zIVU*IdOo&k3{-vi$DItv)*C;wdT$w$*Fsy2?oxAu`JR+Rru5S(Z`juCY(Th~sxWeer|Q@la3|Vz83qA6DG-1ye#psK5XKVFZmYrxXAz^avdBzMe8X z`Q?1{aj|Lm<5-s4Yr>Eh)TfW_#yI@?R+QAd{{Xv;9|JyrGttdULxH*oiSpZ{2ZQ6! zLDo(FRZ-K@1y6@*@NJ@zhrDOHQc45)GW-kOv($sgo`CB7XyViGO9vf1gE1_fN=CE(-?pFL&1@q}G5a1p8&d7?s9 zeEmd&{PEVi($PWtBHo55@RZRF#y&~dJ@Njz>S{?Cat;1t_J*o5^~4?mCdmaGWyLiT zmFF?is3)BH1MiN99W5^BaZeErIV%VShxv8vKANxsKW=gF&*##$oNw5)&RFLp9zWMT zMN){+!(%cHpq8eHq=g}n0tVoydB@xS-2yrW$zrU#zX)JQ^gS<1gcv3_9DO7?IOxMw zlY~vg{ueFNd9NPMq8LIZp!$f|#lvNv+n-^MjrlmqD$ucAq_Jf@^Y6z>K4L;LBVrHy zt;1uZeqv(ZO6}Y>oHvvCkKxd%#1K-R5E?pgio!1(f@0$t&)cF3#}-P*AQ(IL#>bE0 z`TqcqPv0`mh9VbtmS=A#C$DK?nyzC2i4I>9vXl68;D27ca{(Sop2t!2fZ8bO{Rt~% zNl=tKOpvg`=kvyS$B(~FT8j5gG&9@n)r$2D0>7rfn88t>8NuWa~ws*$2nD)p4_8@}w2B9D{#Wd8u)skEf3j(O&vtUoa2QUh^~6>z8)`WnjW zi0Z_2)bdX;NQnxHjKt?WaHsk8g=LsG`Kay_n5`F6DW&;2VsI6e2$LZC zZ}gLnFgo2DzT9i{#-OA|RFbCEJYmFS{v;!e=kJcNw{-W@+$iV;J4Z`NY=x*nU9pwj zAbfjqga`B;Yx)$1nz^a6tR5&aX`w(RLBZ5=_rAR2rr!%c3q76IH$M1w^Ihm`Zlg|eMtN2jwZT7=iXt2{%zxJz1%PoF@nxdvC;Hsk~ z+OpRxGM6Ecji6@>y8|F~){lysO%L6lhPiu-mWt(UwEXstDY2?eZAu7Q+DG?`mI}dr z;tn#ZbJOtJ>7`~}L2_()9f-b%()=Qe5T{C|iIM;SY0NdjZO0v7TbSWbYHt%Qm#6rIk=scB1X6`+=f$j;ihTR-m$cvsLK(yp)@z zGo+G&V#~O20|ZgaA;w9^Ro0fX-L&Q2TjjOoq?Q;~hTT)?ZvOy!kgp;~aG~%$L@MAm4jf_r+Ays!$;4 zf6IIBh~IzgUH;P@u-8^D>|T4lQEj^R{=ul}sCE7RN{U%48&lH2cE{^5j%ea!S4jYn zZUle|6U|pYh@9hj$RDR$r{Ztohr4~yg8Qa*{fkAxJ;A6cYqd49hOAcATj?iis3~I- zRJ0WFndJ3f(}`W#6f+Qt1{GH_nFa=Tlh(Ra)y`IRfad+5mq0D$6^lwlwo8yWi}=BF zNZ=q=+RE8ej;^1FeIsMnJ?PQ8e^kMt^m*{=b(}jWc7b)R%hwHKH{R zk<-g{rmIT(rnc48Hi#pkigb~8RaE0^lCg|NLpRhsbw@^<^OhqBaz8!Ycp5jE6_sBu z!xAVs{(U)1fJ&1&Dk~=YhY-x{O>35`Mw9QIt4iseE!b@nZM|p>MXM~Gy12>QJMVAr z(A_ELxKwHjjIb=#kmOA$r7&8H$17-C{5bKqp;^@U7v$$(XI4;UUgzh|TUr=|M?r!EE%wYmoE)K7J| z3VLN$)tA6!W|4vg8!%gwk&dkK3Q;1Jv#=S9koz8Ej~I#p2rJEn)Dpza=`uBV2}qbeq+ZLp<6!xK#^)ELmV$s}^j7Y;cD5!S5HpA34VO5eL{ zt*6v&H*jlvt6iu&lcOnhO|lCvp0`6Jzbz>~vpr2gS!HENUTxm7U8(8y&YIb@Ojmsw zTLzn_{gCNxrJkCW8fI&h@X8iv3z7+EasfVaPr2()uVyumZ{M?B*}qscov%%IFSx?9 zN7-eokM`BJ*+yjfb1YtjNS>@NuZUhGL~tP~Osqvo+c-1-OOZFY-l zvouQtr!Z^lZ8>}HjAKn`i0P|sT)w3%R9fk$P)S29QvEBz@($KNm_ycy>@BvhSyT67 z-q%ZwP5%H#_VS}y==%jTD#vsAO8QfDg}#Q8Mp`MPc;Q1EI~E~`Qc|6;Pj%H@yR;)y z!t^>FBcMj6rrQ4iEdIRl`h*Xxt5nFKllVaY0GAyPKf4dq3N5^LCd@TXe;;)nJa>t8A7le4$#gP_0+YxZSwzg-Ws7SV*MgwmRnJw56+1 zdQeLB7V2Asav38`x65QZU=#S22^{|bd3o!oU9Ru8ffsJ_c27xLwLfsXWv#83Yrk(a zy|Y5rO<79KOC3u7=%HmuWM!r^$OZ~T`@92zv{!Al4zbiy+o^4?l~GAO%I!r2pqq6R zex$Ojj(_2>jTwHd5z*n*YchhAJ0Xqs2V=doh_y*QV#T;ymj3>tH5=Kjy28_Sv&{$0 z&?_QDX3q5`cPnHL2>ia?WVsB?Y?ssP)y_<#eH?l&v%qPgf;FMum=c zg>nXYAdeaAadzIo^ty0VI-mE+T3pD)mOyy-=gI3l>x~)mefiRwk_uxj9pebn{ z{K9PmC);wI@q_gAb=7EPV3Y?_I z)pe<@_QhESV@1a2P@E|I{qy4;OwGR1BUE}ic47Emdy=CA?#J!a7gAH%))@(goQxbt zx$^#hKOf=O%9TqBSr?93#@r?Cc{5#WAP2FzxBhW)r6jc`Gj5{1C{q9H^9ze%G zeyk6QXl%6ox4Jl>F}*FWsz_2PT$h;oK{5#=YJ$X`JPx`R3okcH>7V@{_=wKpO9p~% z`0|cHWGpfq2mHzL)|2>c1N%XJm@eZLg%0d~5^5vIzuQ00tlNX>zD7W9aqrf<_(ouBB@svvn~ zop8(yXh6vRAavzdAXtklMpP5(EUt3dAD8;)r8JhR@R1j!sg2o77>rC@{kX@D0scK3 zS*LD5Ig)~SqC>Tr(2dSdxIfGIjlL{{9H5gNmYcLOFyoB38T|9s$I==u_g8YJlAhZy z$txwy%M{~Amp6cH;j+d;`kl!_h!7Wzt^EFF4Qwmp>rk++p zePRNxS+`&>JzOmcn~4=nnc51`B|vMYpXMIxWuludU9Rot@6HkTW|q%o&^`9j)~jZg zw7t7t_V$jV4I6QezTGsm)S8ATf0|IL(l&C+xf$w*>;|*6=q~W-9b0>=)|B*?VP0s@ zZzZ?Gb9(oosEUv*_2HqXPhI2RAxA2?Ax~Pj;u7<%ul<+RG}q4ZSN9&vXus$?jFgpj zx_C{ty0Vi|i6ehT2r$Jdqjdy13na5h6>)0IZAAp8o~DpbH6+3mkck8`VC`^0 zRR6x?XfrP1W{Dq0xPnWPl#RYIIGCm0wbo{2W~joA7#JgD*p z3lSt3*K>~^Re2-WbJ6EYOG1+1hmBpKo{CP^c7Bqws)FLv{6hr(&sAzz?q0MWy%A+? zKTj9TR0n3;lPKSkn|U2<--xX~n(MZ@)@kkSM^~gfVMdmnIZ5!>u9a<3B=xn8QA}s7 zG?wU?(F%2x!?HM?qb$Ku2S2PG$EDNS4@T&^tA?SaxoN)W4O-L!N+@mRCrU#W9+D$m z(vcc245J&E1JM@r#WU!DN?M*ZQskEGaR67?;*=D zD0nN6>Fw3`-Am27mWQ=))lkgU7#I>Q70qxw26)ODPJtefB=Q<5@EesFbpj z9kpo2kEX6L;i8U0%D$m$RzFYw04sy`>CW4!wcea~&9?ohEv&4i6)GfA{{S%am?Xg9DLyCf4hs5^9#mXOy0|7h0&)8P03Ns#H*YQvyU=S@U|5z-(bNI-u*#3EM<)mG z(5t&=sO`0lMD!7wn9#5kl}PGUS8-s-al-!q)6Y=V(9AVMu{lG_lsJq+p)Oc?N9Z~} z;plpg_*$P!NES@C>%?Dd@rKVi{)ew8*4j~~0dH0(GQxI|Ul9sPBaFTW2j3n#{PV7q z)se1NlIDn$7}=J$8E`ygN%76V4A@-xdvHDR3avRSe2=ndgxGK1myi82tK5x;s;|%>Mu@TE-w2 zNgi;latRBTV8@P%i=i^zu9)0c-TpEfUzr&OAZI$!RODnNv1Y$Twwhrmm9yss~H^= z!6Yg2m3N=<4E%j!t(r7WqWHt_E%hXZ*;!4e;gMNDphji@sRISR+0X0M9eLIrz}6E@ zE$>rbZa%*<$0d7&IrbnC$4r9YQHRS>Mul5<)|vjE{W;sM+NSj4D@Cs1T+)(4TWFd> zK;-9dj~@M6BAW}LytE}AUswfo({&`gF&iTSB&eBVb|5o5WRZ+>@AvE37TreXHO%a! z?K?4_w^~a|d?k0ISnaBo!wrIwfj+*WxTG!yNDL4XNIrb{>rQCTfm;PP?{(Gs<8-JI zt|+Y=V2qv%0{A%`5IH`4^<7!gj3SURn&fOf{o+KtGNNjn2KVo1=89C;RY)MAqjq;Y zV~z+*vo<*P_v+TPb{D)C>s@xEmrm4Lbp5J@>niJR^9XlDi@fb#NjUrCuE^?t)CY`|Waxv!v zjylQJblPm`;$1wp1nPaatXoRL<)H&PG5P1XF4p7e$ie5NG|{kZU<2h@&z_xbn2q-3 zzJ@FHXD1wIo|?nL#2H=irz)y?=n_d_VwPYiF#iAsHWZSnS7MSC2RZ3lnnMHbHFC?9 z*nheQzfBa?E6<@yjm`m(XCtQttFI_f2+>&Ng+a&tI-HO|v_(@01dR?{l$Qi&anC2F zc|>Hf0mep1Bc~_%p`G&&89a1`V(px=mm`7)o{XTIh!Rea*35k=nl|NQVg$Z227dj1 zg*3&^+f%1(wT7OSHmkH!)W{-;kg_}|Sw`WU0&)C0{P)bIps0wiEd%{y{{V`5@84|d z>uWoEp{flW6%o&)?N0>8q}oWzrmKvR#OvJucmRlu_d`I zU?)C(uzF~$nu(Q3^qjFHh!4^;oRUWao}PsD@d8B@3ZY0*^CKj4j~UND{3cV#=7q$w*sN|wIc5;|=` zNgC(Vn+=B^#aItNezM+@skD4ScBbj0uUCp&e!lJHsw%GEqfwxe?Mfu5Gg7pJ4CNZ3 zO0EtSPmB(;zJb?zpR!u&TIdzwXevz}rL#!iOp2^k)qp>VPH=zi)jvqEMPgKg`_piE z`})JQHEEMKSJ=mAgVr|k%W@@KkRv>KC)rMv5i%hpqpR2KB&=O>?U9uL13yTm@+r7$2mb4n6+>UZzW$xg;qi zh|s;@Rgkz5#(wm67gP3@yw6u0mpv_4P|0f4k;R2z2mvPph~(%00E*toMnjUfw;$H_N2d&l((iBf3RY_%Rc0Yp^)9G9l%F~D9Gd(S8RD!HI z@ZZO;Dkuz1>qJWiJGP#p5mZS|`P^`L2mJb$&|Ok(qDH~|BdwArm$XwEHnb#1RwYQo z1CVimdQVqN9ZY*SP$m@`?~6)2Ia3R$9{6YYbnJvZwziAy)I~0=xkdxxGEE#r0#iA_ zCyepdp=yZ)WeX`G&UY#H&m9Ii>C~$^K^4&l#SuBNtiZ1qf- zZyGsr6D0vD5Q0smSe6XKfyW=8O>;a<+ZT5O*-6Rq{ImW&Jv{JXmCECHkihZ}`u=?r zB~2Cs3W!T43k8{Q7u$^S(?I31ZzxtET-?JzmLmh8kc`Szhzqxs z$4jNFqEHd0h%}kU?^h)M0Hf1nm6WW7)_9zNOCL}%$0P5@gVV_*-$-phs>R?Rv}8uc z=4_9o`g=}6!2NuGUX#mo$ve!-cK}I<;{^12R?)uQwJ4wfe;VWS&pdhQBURh-%xYs* z_REFxe&_Y+)TEa%!)#!w>ktuvCR7kcG5$Rl^U3M6pHyQb3OUHs?}tH$!<^S`TKNh zUT{kRQpa{=`UxI?ueNyiJtCUnYES;Xhz#RCvV;A2={dUE-iB%D@V5u!IHkl4sSr%q{6N1Q!C zETm;bY)SU^9at=?BFhLGLYSk3C>)a5!TWz6mZJT64V-@tlZuOaC$C82vD2c!rjhE$CLPmIvi_&k}~dm=VK4!o}2#wXvp#- zFRD~=AT+1+$;im|=}Oj4Se?w-ZU?9BK>TRA@60af-f z0hb3Mfb;yiMkJ^l+jJNfpH#4Bs<;|G%+4m)C_+L z=Z=J9jX(+RPIn(a&!Xe`qB63uZZ@+-JdV6|tpK!=$N}Vj>2PzBJ-F+^O$d8hm~nup z9AJ_?x;&UiAB1FN?fm}zGpMQDe|bK`$t9F$`Sd175xF%|M(yCdi}(J#^a~ffDD4-A zKoL$-JgGm69(qt;0f2~*zliO|c;luR;{+~iCjftVP5?Rk;C{U+1qN7L=6%W(gH{=M z=O>(dbgz5DGZrxO6K)%to%tV15yn3KdR9ix%6w#=asIyjH6=tUdAYgY_|Ypsz&vLe z$0R#4j8I0qWiH1%&Kz+K3-j+m-vkR5n zM1+t(FZKHLx=CothFbZYrw0|xa0l_{$G=fqy;UHL{{X&J6Oveb;~(OGr%X%>0@}mK z+mCc-j_WZtSBgkv{q@?B5R!QM_kZ~(`Sr9cQ8A*W{{VttIV#~ma^ZW5p)>QCAe0DZX|ww^F}`}HwEiYZ*lKS&vg z261j*NSi09k^MlNpKgppzHS~+=Q%tao})&46pa4>?=rC50bf>rc^UjC1K-C+8Fb?3 z)t&Ooos9D-VVrqCub z9ANBCqDZk2HyY`pR1J*DAD(&SbZ&hWBle8N&*3U#BxHN>)OjS+GH@rSDrC+UqD*iz z_x9-2lS>Imjj5VUoS~?4K=u#!OyoD@_Lz5 zQkp0g=ebW9$veZwNFaSj@PYk0gxYBIv(`lFu$eto2x9eE?#RJ7$n%bj)MrgbUfmkZ zj^{NlS=enP@D*1%Dmf*M9fbQd?QFp9MeYen!}b-vImJ9>A~aj>pkm@3s0!1>g|&4O3G62 zYpg1Aq^ZC-@~jBR{{W|28Z9kt^?0I=GK@-(Re&V(&JR5{*Xe3xjpn0C{dC4bW^ls? z`F_1zbbk;O6*&~93T?DL?G%`-q|{356R71J=&kLptG5Gor>2gkj@MNZRLvboR-~Pm zAzL`xozpdr%-mKHoY8$U=bjF?5S4OjH4O6Rbl+#pO>7FSmrv=)}s_3>P8G@xARqA@K@Kmtdwa6t`@ai3$0O@Dva8^Vd?5QmK}hJ41?Nh>I7?ln{8(wbrfa{5q2ie4aN{rEt|mOvivl+h(5bn%ghkOIEP0|SrCr@C8h z6&*aEvgzVN#0eY&xF0#m=eoRUX80y1&;2dy3nQiYzOX6H{0p}C<+PgtK3 z#wpn4R|+`}q-XQ!Q!323zy}@=w?)YprB$^_z!}fwj*o!^g$W~=TZQs@>qIP;R74?{ znI;j^qr*}IWaB=4_&qqdI78&F!Q=Y$FHL@8AUPhNApV_cJ1@hv>hbW;t9~TgQramj znrmOu>1edMqLu3^rIJb{X-u3XU>d=J&j@qR9SRB%z?O2unLBvGOfx1gGDENiGb)E{ zpl0M`AO1_D5eS_I!gjL^j-KsyX|9(`MW&u;AfEAeqqo5&Pb(YLR3stT4oC&^K<5DU zx^>sW7i&97-uu^Td$sX7X3&<)R)e znsJP8bk^Fo<9D*^it4Ika<@hv$yFAdqJo`OCU)MCBnu1uWr1Rcl>qqZ`cC)vY2!gA zxw?f*TiWTRijtN&Dd^l`>EV$g4Gd&?R4NGo`2(#T@q^fy`(tnI4z|-B!d~TeyIyF> zsq_`-T2hG8)6&F@A}F6p4kqhdctqDsjmkq81 zHu^Q;RWfQ6K`OVtaiaSHsiLLSbvk0`Via1Ekzt|}1qv!7$y6l&0L-O;{J{J5dg^Z0 zSZF7j^;vGa)md96WwTDAYDXg~RTvQKyU0G->jhF(R8rJIQBO3HRMO0n)5?rPBdN$B zkIW9bi`pG~L#?#E4P{Qnt%@TRd@bkIOa=rWAf7?zAoYdmRv9v$s8!3+b}h&E`$g^* zUXv%QI;W2h+AdFqi$;R%UB^dvGMl=(%UA*_+kCQJjD_{jfmlYaX{-TvI&+hMHfO#2+FRc{m@4 z5wro$dHy|6psOGWPMiMPdU-^NwW}&2*lX;Q^oqz(#b&p~NSH_{pjcH&&Ols#r2YQ= zXZ>m;dfHo%fn}0{;+2%h$IB_)J^1if`1N;QZf!C+JRno)sA5RKKg|ApQu>oFldvER z9H}Jadw)aIHGwr!46Tiij4d8?RA+d)=_R1N+v#iR4K%UVLXNK=<~)9&oPQ3XTBg|* zEG$`JS)~VZDI0+22hYF%0F~8K+k5r$lTg-aY6`kIX)BA>QVW=75Xe6guHHZ(?#4JH zsrII#)V`C;QBiD^h8bw7*zN>mpN3EPiD5wZ#bxm3 zjsDa-;A3?Xt-{>9SIOdFamU{Ssb|G?bg}l{> zPU%}Fh}1e>Tct(!xKy_Ba;nu2S2pEJ$faDBiWGt*OqBvQASUc}mE=2V+yjg;3P;;L zD1@D>_3}XH@7L3_Xen#tDopg|Ne%Dcta9|$PNO-bsf)(r)c*h){oktfDQ&u{)mAC$ zsj4lvSUY!ZwuA~ZA~Z3@xxpa-+};5s9OJ0h{{S`TcqVzjY3izJpshl+!kbM|B(99= z_%C*xlk$m-7y!Eih&MG|EsYAhR2$41%PgV~G)Mj?q*OL>PdEv@t}J!5d_ zuZn)xcCNnPbM4P#_2!Yh+G*;cwOpa^k*xV~Jul13+bXDJQc9DC06K&8k)LqNg399L@R?D5sxpfru)bhb1)I=tMqLb!GszsEu5%@tEAa$GANgzgS zw;OZ$be5(W3}?v!hI+G^hR_K`rR&W^pAuhwF$P_IQl_L8M#k^I#lv^n$9}d{cIoW5 z-BYOS*DYDAuKL8oI(q@|^f2x;h{LtRkkYLdoAE?Jv!$g1rVtg$nrt7S}W zw1fJC$4IH7ba??*A6JvplElZxOK0(Wbp0fWGGv6yOAFfn0K7Fggh~s|ExRKsoB$>`a$ShjFJ`T{&sj zcPhOjsp`H@S=G}?N+&kTsp>8jEnNibE2L{YoRoKwf%O3=ES;?F7PIdLp}6V28%t@H zs?n!vueZyFpubbwXl-`-c8z4Io}zXNiW*cO{FZzIMcr=raMijh@k2F!z3jC@-C%k| zT`}FueSFL6p;5hKWhoo(*jS$oeY&gZ0wheNRIO{T2% z-Kp*MJoOeG2q~@Ci!n8IDNU$qqlITvIc1WjurgE=^%!CRlB1=!F4uP#wED2E)3};{ zw>q}PEs?5fSG*sxZj_Q$QkXIR?Jug!6cQNNX9g!6V~(ne)q-nIk4# zbd*<{UZ{JTM{_|fLaV!-`%*pg2l|OJ5udP;Uox*790#Z|e52pch7zaHl z)z!Vrj`gi6>a<60H2wBV=W?npG?bbj(P~Mm?9iInlrtTvPfZu@bK&G?W6?BUv-l<5Pnn56uW+jK>026`%OQD-Cr6Oui{k%8&M1P1tLG60m z-m!x1*NWR^#)9{5shXDMZ@5EUMOugp#ZeQik;%v)kjf7u+ovsmt@USc^(F6G>ucp+ zpw#+?tW;fY)oP0JFacBrKou2KDuqx00ClA+ei&_bZ6~C4UFYH}uvAtpYgt_mp14JI zxlbKXqA{&YDN1Ai01inJ7<&>wPJ<`I7M;52{@`jI8Sxd`PT<`;b)qVDRqst{i)GW* zG%!mPQV}ggF`&atqul2M7|9(BRndtqm4Bu3o;o{mZciEHN~tq)tBbS7K8T(9B%Gh= zj=B@uDd%qH_LeGmA%On?^FPHDZeR@6JEbI?e|Y^{e?{w`fi_4$$lCtn9^G^UwDq%& z>2`gpp_D?Mg((lDrCZbACf4KIAoKb4&p%QEhewx}R#*Npr0Bu_0O~`->l4o6%UKU} zdmiEGRpRa{yfU>q4Y@G@TO;cPp9dq)T_lRLJfD^>%Yv&x5CH!G^1pw#9QDs$@%mJq z!|Z5;79+Uuu-@g98{u3IdE^6wp11rFOX(77x46OEvjd+aK0hwLYBT1i45kb;SN>7b zX9Oy>PryT;&a+dL3<4yB*9I8BcyY+a-UmH4T&Qffs#b#aLq%T~rc=|NhBqt*KIzcS zBNDl-G3{Z(f%KE?FbB8z^g~A?E(K*nkhobD0Q>moo}vlU3W+C3ChYciF;QK<9eWvm zC-$dr?a|2bxcRGnZ1jYd00wVJjF1=kmF%GRFZyz&>%2_v&n%Ul5UGO;B!U_lDOh zT*KQ>ppI?a{sSjsMUz!ju;=%83IK9*jk}W=KdATW4R-hp?tL7BDhr;Txt)uL`H2vR zBPJpmG4*)&$3A-N6m<2>3L1*AU+YX~lauYoUpyBE!1>zJ!b2)6Oi4KM-~6cj`m>YL z%x*}_*FS(T(x@p^K?$^RnzP`;zjO;Eu<1in7z6i|mFhPE!Q|j^_Rmr2z8HQW==Ukn zdXSC8Vk+(IeESE^KTP%8>1k@J;#pYM)JRymsgod&xA5`&`cVZ0<##-8M31y5B%FKk zk<{6JI>v>R5`6yvFxkTBw+GTVQ2l`Tfu)&Y{=(~KsB@H9)>dQ2at?mS&-LjXy{7N& z9NvuDQ(MPT6MYdnHuOH;PC@Iv@zcwNRgQS_KnH7mSe{$LIdNL1JKjs!n!d*2LxvC~@KIGB`amN{?^&`8`H&IsUh&rCG> z1G$$SMNOsSwcn-GR|sUDir+0$EVC+pG7CQ#_XLi+)2S`hlF}_Z!6w%I{@CIJYN}ya z=aGf`dv%Rwp}Ix!W7`;Gr)oKyMBP8#WsF6-JWnY*rEE5SmIVFqJPx13dUJ`^&s4I6 zhDwh5fdx^6QcI`La$FBG1Y)`mg)aSE+b2iVp_zlTR^6in^PG}c`{e%s4yLpp1l{Pb zkyg0rdthQ!-mg%`S#iN6E>9eB`SsZ`W2%mtIVXmunPfmvF#$>QjE)X4e019OXa=X=rlGt23yc_WNo0l*#v+y z$K{dj@6o^6=8ZmPFm|va7HN2JKhMbOzJE!vnczI%AOt*`N>pf=%$5&^F3;(5S}ilD zs-}^Fj;inLOmmUEu#dHY+cTaKB^uaryN>drYJOGe)Y6 zNzCAZpL}`i<7Nzv>B|Pj&iDC&>@&}}R5Lq;)x03_$`M?jh>_hWjJ$`90h=iKygf&~sYwhnn%$j3!W zDeyx)jfVhjkBoTdBd%GQXx=o3C=6kydTO_MJvku?xFJa+Cp@3&({!};M|wFxMnav0 z`+mJXdUUFyH4<(h=Lj%Ar{~jER5YJcDmykv@tmHV6G_y=B`irI8f2%q?GB?gzu9-_c6Oe8XoHn^~)RGi6kI%VtXy&c3N!#s7|7@Brl~k1nlsNZ2ti6`kyZg0(b^VW&(ZSt4CuP1OQZL~Dn-lCdm^?e864#)qLu;sz|9dqPvz93MQcmOjlIxcZ1o}<+kHyQ5M)+X!OqqM9m+;Q2iTsi zB~2+UN#K8Vbq$f{&x7sP8LyWZH9dX8=N&yY6-8xJ&hS#k5dmY9 zg&Yok-+sK(dfQa?{^~AzYUfjJs*mZFP=d0ia#e!@2srCAjP!n0d(4;FU!nKLENQD1 zAhx1Ac_^zZ{{X{l!yjOa$3DZ`qYV?b=4$Jqk#Kh=#U~(S3@JWy=d5kpuZycC{KrAA z%UP?~4VCoNxrSFcz+k87A5Wfnan`G~>PnqVCLPI6N zaCr9wee?XfO8)>X%)#bkw>cO--_2B3C?v$UR$2nsrHtYCzmxC6mE4McV^zc*jZdPt=6& zKZ#G@r)nztdg#bvyV*yR@6lB>458$Wj(2dl>cUk@7ui%rT%(^bi3XL`720yX8rlk` zr=B(il)HLUFZ{A7BXB-Hz>c~F+aBcUU38+3YgHY#{Lq$`*wQmcQGvt6&fizL+J2$e zGZ!1P;m4kOeze`{t+PccGnGjLs7ETue(Famde7sX9g~P4s##@miS!tv>DCavBeWE@ zyGGPmDI$VkKfaChx7&x{^ZEGbs{JwwM)c8JS_sK46lo^%GJo@d$YbsH>mK&o;ufZA zdv%)qB^=PJ2x7ihPSH9RZ=_CFI0HY757(`CMRRFlj#%ZPt&Ndi)V5xtofs4Bz~euc zp1D0{A5}p#rgO%!O-d)E6y7}+>s>fd)CYDpocf0xjsV@q^61sH+1P}NmWV3tWsX`r zZ8`Qi;~(eKlH4ODoYGWbfMqVBh|ipJk8kVJ;OOBPB*AbpanGC)Ck>ky)Yu3&;kGqm;`73{VEouCs-A^Rg6Q}Vb zYL!DQRPZ#Q0CN}^&m`pg^VGUwQ4V9Mk{4p2u#RwY59Dx9^64>-BCHTFU`GOV8;`i? zku{E{J(Xiy#4Ys29KnqAaO4mPSh#Q32cJDBT_;5zN6SF5F*u21Dgi&Izf(fFR>XA$ z$R}uF&)*#edUqibDms@c0BKgGNCU@={{SE1)53GO1|tQ{MV=u8OxuW)F+k2wJJ6p8 zIOP7FdfH;#Vc zP9cRoVVou;vlMUq$jpKa&y<+I>|#;!Gq6Nlpe^we2zW%>+Y3P5^iA? zE^?1yB*jbUO&W$FfXL;O0RI4?(%9*p@riiwZ~)`;==O227Dg(gId8Y;(pI?B1mHL$ zkicX%I`O`cWksP!%Cv6EwMBUV7a;98{{XK_wt8QRx;Js{k+_c_;~!(wbXPcuVK9)A z-@9Q6{{W{>3tLXZF7g0yaIrBb`2*4@0$HG)M_3DI1^#YU9@t<%hXbLjAy7VcaKz&Q zh&j)WI`wKPbA=T={t@Y8K6%GWW2&T3rK6~3ZyTUtkI#|P28BAXf`EiE^)3|&>JgE> zx%dA79CT}%AP8HG#3;zhzJE_1-@~I;s*qrqC16`Q^a=ilqkm{XSSrC$vqN88UrdJ-S@AVBm-+@s!Ou zQ|G0zRa1~br>FCn=OhC zaFs?6xfuiBr}(5p<~feYoU;U z)KkB)kcS}qc_$qyYh?n07M4&9fP&~q&)fZHsRs4>zKKZVZV+Sj^U;UVln~1{4>;O9 z)2ZY9x^yA{ap^Oh z9Bn-R03MdY&;T7*)A~pN`+r_K@yx3^h3tf08j{^_MN*dfWjC!xKkwl{- z-+|OZ`SRYA1&%$~B~PTe$v>x76pa}hisWQt>mE4g$Lsw1iC&_Ji3%cZVVo?PBcFbm zn5PdCWh|(O%KGXs_kA5mvJ6&g`bFF@7-7aa{{UWk+O&4+HG()+l^;Key(N5}G412W zSl?N)E~@S9N}-9?Fur$ZDyN<^`hPyQ?V}GIZiNG^dqEs~dElS%>U_l!M=QAfVm#8L zJx6E^G;prt^6G#tGO+>ek8X@gXyVvgY4!lbGCwT)bnWVs8lvL_c_$^mkH14wvAEpv zgT@I_{0C7=fYuu(V>pEIEIUrv)RkW$0OQ}IPSqZm&PmUujBdftj)rDPn_@|o#t+r) z(t#`thiir^KB5Wn{$4r|QUjP!Rim^97meAtXwVa!5Bd+!8R%o=QCJ$8NO?x&Dai!m zoQ!`@e!Y&em1IEDg;r9)l`Y5m!06*w0NxSQ4CH%pxu(Yiq++}WOn372({rWUjQ?!73(eK;H2ivbbT4+OoEJ(Y{ z1!+j+^W>hJB__!bi3%zt9bqFpPRdt1Dt2he=*c$WgvngLJ50CJFKgzqk^SM zuy%$aFLlJBqk8R!P1JBUD;11;$`Pqq(9rMl4iXKhpja2bT4g5Cx(qe{e%}UGRiIei=8wP$To!_)jVzdZQGY6Df)HipJ4ZXlTasGWi)W$054SgVzL<*wdRx`Gp znV2Xi>_Fr7$G24V15sUl;#Vnka&(;_pfBkyJ{quqkl%nGdE(nRh{99xv`UCv>-TLyH zp4(Scl$8=sZkdFZ>WS4=swv;`+yAe@C$$>WlK-D&W7YMWG*BSCU`e(@G$#3cpwHUcPPPSe&(h2x21r*_>dU>qqp zADQq!GtlLyo}FR!>1CzO0?iPXB8FI-m2e2;FytS8j;yAUgVn~fnq^VGrC@(Zdwx7^ z{=Ev{Z>_mbX(=PDxYo%@{_90YPbEyv8kJwA5Ej}21C9oI*sM(x$ZHpflJfNcjcp6B zHq^A;R+O|;O&u&xBf{jNFABan0D?DQ{$TadeJ>=x{)Z6 zi6asq3xUo*{{Y&5RPy{?-eV;dX!~u|oz1aQsUv~=%OF1Z@h98<&p#N{?FYj5{?DNK`a3-#2-~>b zYqK^-xBR2{jQ28Q^T(z;_wRd>SO+mkfq^K=QXSvLPmhTMaE0<8E$tWo-z-hq0-ZXc_-0;irMerLGkw}5;Hx@{T zxJW6}c1|&n*&naJT+wtu?Xz)E-%js8#~p0@55qsk2Y7T|maL-C{l?UKCdFySg{0Lw zfhj3zDC7yn4K-xRwl`El3V;Xz=NRibcLTRN$F^FMr%LPXGj`I~`bZ;|OI^;J5=fE{ zq2t?;C@1L!3CZAd(b0)A<#i~Um6Vkd#5i>majl)9Y9<+zGpQvm01wL1UqrZKNF?sh zj;{X4>o(Imoo%x+{?ES3vAf9F2`~p~@ONrEXUD}}rLd-w z2>iO3!*gjOC|!t9c_YuBvA=9PgtzNmDpX7U{Z6YDO23lB19#_~XZZD_Z1*o&al4iP zu3MhC^!jR=Ny?QoXw&DGw1uW5m6Nj)r*Yf$54q#dP)p0JtE&-{__Lh-{ra$I=w`kn z!$X;FXq%#=U&Sf~VsLSSKpr!mMl;n_sH%-4)KfZ`r;Xk@5=6r*D`Ny6M~;msB0QH> z;=GFCC9_e|-XLPKTk0c}G6CUF)H&mk$3K3wwcfm3t&r72OEi>o!jhwUh&L;8J^uhd z;nr8W$?3s>P{}*)a1S77IsQI6x3mS`YrdM6*(96gwJ?nkxD3%ASB&K2k)PA9Yx;>m zkxeeFZDZVYjfX~RfS9Rj(BH}%J{mn0?q7VRY8RK;#eZgkz6kj+J~bP^DjRd+jllqeH1FRh^DOZ}*IFP6_kx z?b08Nst8j~R?P9#wAA)pw5;j`Ta7}OZQ1351ps}R^gS0LT{4h31b^Zoadou>!`~dM zksYbz+6mjv0Q~wf2hgB@$~yI%(}B)$^?yEkP=#En9B?@6>Z*IH+#{1z5Z)#}Rwx~a zCt?;={{WbQoORbO+k6prvh`=}b&m67@9paG++Ny4sqTI7(`MZshtsuFQb|i*7mf4%y%xH|gnWY!cq7goh)pzXP#u38^LycrSNY%^3bf1?UP z+5jz4=&z2wbK2jBdXCQMYCD|{zPf5VlMd!r-x{GTR+^7Uh;8t`Omd7mp*TphyaLA~ z&d>Zsb;ILTK4^}k0P|q>nT$BW(v)N zmTcG7NyOG>BwXh##^pC-sJ4x8c-k!Kmrsx>JB>AMy?c+|FG^2^-pJ^^Io?ffG-kH= zm$K*%?p^fFWv@o-Xza1+D^<3cCYGkMLgA{X+{H*igSXo`EuEL_M`HV#N8c{v_TRI* z`{DwJOzS&kpF?(D@vbA&wKNnpG^tTFeN9S8449YJiZ#hQA@h33vk zzG0QEVcHjG(=ReiN0zE_G!(OF&3^Y|W6k_FuzR=gd26We7PYi!iv2a&jSHkZb*A+< zb1VCwsmoflUDE2Z6|_fIs#>XwAt=Kj;EmjZP@irqV8R@xIL1kzxG#IX0v|iIk+FAY?Zr#_@J+RUpp{VXBVD;sWw$W|B)Yd~+B|fav^pvrBm2JLh zNLe4oMqAsgw{GqBn6-Ag<*lBMin1%^sp+X-)vB~@k;-b#9;tHr?i%bY5c0$a| zJxLQS#u>`v>FZT#zlG~Am-xEwS8Y32L0<-*w9(tCXlUxMsVB(6H9fwjs##icWRNSj ztMrCE5y>N}cjGtVLrr`=X5$Pfx z3EHtR`IP?v5}9E~L}k-qxO-T?d^=K#k=i2L+SfkXIl*j-o@~twC_to6 zpHXA@K;-A!9du7!>n#a;?+1Rh9ivj*Zb^0SZNjfh-Slj<)6+{A%*-9+c>rPxu-Z`L zKXHz^+i9bM<9@MQssp?iE6p`6LPp^j#U#qDhW0pP&#~*OUAXvrpHuumcl)<}snDIW z6k2Cf++m=i*ZPXSC~fo*+^45mp!6c0*^s1Y6saG)$si0DaYap)C`^)BKpX7Nm-Apa zL(~aG*@jfj4-H=Z;vw3J`+usbejj^lL#s5@cPnG+ldG+;UQ%kPCat*9xC7G!deVqw zA$Y+ZPdkG*XuBt1?nSnPSlMaLy!dLr+ANw*>wJo?_}3|}wz#%W6*Oc=9Ir`JBwO%y zDbFE~RW76KC9g$Ydkt!`+bAjffq2&%j@znlG*>Anx6NBksNUHI$y5LpJtCuOhW+5q z4^n@LzR2qxH>f+ATish8fQwR6_8vV$rPD!ODrUD(Ml~g_jmny&j$b z?{-t=!F}DEm1Sv=pk`4or|+ElTO0N2pYNb|r}ctJKA>caADAZx`SsEYHd!gesY@JgNm7940DEe63bdCT0x zE8J3d+LOCrWR`$u&jfYhxyzQ0o>`x36)Yk+U~}aCx_dFK#c>oss5^sk_T+SOK^Y-~ zrq5Fj0{P(Q{CZT&LUl|6rtSgfFF?P%2G*W$CkGaOTr|UdZk^< zSP!V#ECQOskhc;5p95@R47ALGxChGe|AXmVV@SVe!RY2*tk(#<<;LJ3vdla0PJ&yKNG`jWLi zD?45O_VQFzX`7jazF?^vV3?I9vFuMC`Sm_3o;lCn6E}&^bBdBzWpY4OKXe+3I4D9A!Z8xETIf8P7?w@G>Jb362HFn^QMiX0I`K-vS-l{HzyY&DSm3*tA*iWAJb=}KlmqN? zynil?5ZuIsr7b!TTO`lG=Z|hl7(Z@$FkLAS$kESKSO5ulm;vwa=cC%b0x)VPMkghG z78`S(e0cWhg@wBqbt@W}OC%Rl!ofz&>@ps9z{Y%x6VLD*^xZT!h|U_C+q7YsTA+Y% zM+5{v#B$s({Vx;>}KC;Ok&^^Vy=J4oc7dhPf!!tnVk;*s=>)oII6qwkD+L^nvg zvIsfkbv317=@15U=kw}2NfKmbe4aS!M^2&C;K2TgwWP4W0 zSwN9XqAlfA!t7&H7{=}Z&pzLmTrj7XWZTCicpsNt)a)fqTwRy#q)A07h-h1DD=g|a z0}A1YKd&8g{+)-UmOs_@F>{3}rylRbTc(2K8NjZ$XNC+Rkn_e=kK%pDL^VCp4jM~v z1dM?bk+(n0=cD&m?Ty7Z(}2N6V*QBc`gqStgMC}0e;=1kvQg9n zm8zw{AmwSB>iquz7fv$GQ!lFPOa0@pimVgl;~RfZ%cL?jM9j(raiJM1)jSS9_{a6= zk^nCN3zxJ+HCB(I)s{=Gg7PUUZMQmoj;~DY6^O`m$;!H%kbSu8kiFvVHSe^#nrb?w zdb>qivsv!z84=Y*p9hbn#y}(U$m_D@C6Y%GwJ_Nq*0NO|I6q*0`iJXX5oyuD7pE;8%1-!Pe}`B90Camtsyjt=X`NcXPfpA7SE^+#7~D9HV~iw&-`M+o zx{6vB$Ea25tE!EJ~|Lls?Z6INR4A~MqID_m_g46)>eZ&U&kKV~3; z2=?lmmfcZG#7Vd=a;F&`KBOpITtjJ6792ve0^=y#xjuSywdytcu> zO>5#35DrfS^Y7EF{{R&o)|@bFjVxsOcxaCfTlnH>vpk)L7I zPvMwimgq;Vx`Mi)3Btk{A}_xIK>q+os>)dzO&VC8r5OAwHOE0xJyi9f*=M<7HnjD@t&S2qNA7D z0V(njrBh}o0$jy>69gZ`K^Ope>rM89u?GATT6Ya9Y`PANJkot@6t#OnAbor)`25d5 zZj{mKzS;JjBfRQs^@Ce#D4|EE($UjPC#5gG;-Qy z^sIwJ*kl6R6?dlXETMK6LW(x7GCw~(Q6DED0HFGuaGvL<2w_+cfh51(Ut!drNa*cD zt}jvAH2u1+;c$GrideULNIbF01N0fm>d`cm*kvwE%-8+QMl+_=&2grY41#&7++ecc z;Dh(-Ye9LAWZO`3NWdR|*R55nz7=lOb{ZKqfug1^@%-Nt~TBsnIUq3%pzkwGR(!{ zUR|B#WRRs8K?Ji> zy1Wt<$ohfgAIOh!)%V)|?#ZO8mMYo^E|%#B?`?9iP|N}PqG9+OBpe^7ssg4dVJzxN z-JAkE^qMJ4ak#5_$v8RaYcT3;PDu+8wDohSl;GMsE2Q;aiPl!RE;cHf5Qaq)K~pcK zQ410HT}uPx<2dSXN-YTq2~|vlpQN?JIL>qZ?mwTuTz1l$*5jqCX>N2=MwKwirKMGTX4c}Gf$j8^SJ`RtwI)#&OaB0P$G@EC`-h%*>z89a9-oIO zs5wk(D67#@1FHMGMv-fcEHu&uxlpSwDzern{#^7)x}u&gv`w{$A?wwTpExA_y!3`E zO<7#jTUZc)lrW&e@_Enr^t1MCikm(~fW}AD9^X9Y`1|#iDjNv1$O&iqLv;0UNWjTa zYj$?PX(v;=jAO|hWAf|S1s@~Tx5BN-+aMtDe?FYWrY2GyRwKq(#)>ia=|fp*U9eY~7RMFCa%2gEL3>Xn|G3SrZKHWNrgp=8b>q>N2 z?RbvOc9DrO*G@*jPy2x9&yP9&9U^O$L2w$nQ@0%axW~8U$4}2q3KBs@V7mYjjNtzO zuj|rt1R=l~Dh5C(20HPapJ<6 z{rKo>W4AJ~`8C56oD+h5$vNptSuJn-wxET;Bo$zG`TcsbS5=_;e(?;<%b@q=1tin2 z{v8;@fthNE;Qs&v&N?{DFv9P)rg73d=vgx3K*BQY(+C7!@|g z%9RRg#&eE+x^t3)PDm5|?%NwCNp-1#OCNL3M0~cNMkHM+n1jYEpuhxU&-43qKg&?G zD~(id4gUZ)w7C`btd=7ZPvBttbYfK03@NX)ft;ZEkPC5<=il=D`aLGoQ5G$Dq+O?J zGF+p_8TbA@ee=3!>J5FMMkA6gNCq+a9=sBrhopEfDI~y6ORHi_g%ch4`dgf20x_T0 zqeWocRNQUKg?zj$4u09)?Vq<^e9n?k9O?=tEWi{uCFduA2ej3h#kk$ zRk{Lm$2=VW0PD~&9ilxUN}THhTCPbI)UI~m2;*XSAD(^x0LP;vxF{+FrJRG6jt2Yt z;B+6G(vdzI@kNltXv?|Y551eC=GmMYR zuVZ~HAv-H-WeWM*6V;u${RRj9`UQlkKPes&;sF+c3W|-#6qVqPc%qQxS>p~o%^$dU$f=A{509RH$i*T>(UI*8t@ZEB1Ss^Jue@kK4UV*`(|Z2tgHexuFIH2eNyOpuoWqcds-ckUl= zA(Dy}G2Ud5#Pbpu00<0yL4lF^b+WDXGYk6R=%cVj@} zf~8g|sw8+`nM*(J+;BHz$Oqf4qied-tvm>}JBEE89pI-%K6Bv{{SL7TO8R<(9tGUj^;BV1n1mu$o~M>rxmAFp3M_DKN=W2?sQOIA|j!TU?p0!iQ3_knKJ!G_nJjA~wv znaPtl^&`k1eqW)i%Av`phAbg235yN@_rr2|>CrEhK?eIgk$C!=vY#j0+5B{1zRl{i zYeWQujkvF;Bgh`iNI1{8K%$@nePKwmWrRr41qbEnSh&YAAwS@F{yhMRSd-{bBCyWp zqDqDe>P1ZM>=a2I3}^;1>?6lOZ&}HW08!wdmO+ot{t!NY$EAO@t_|jr z6)xMC6ER+Lf8-wh9Jecg+=iY9AY}gjOok-+0zR8kh;;)B0Sk79d7)+-k{5YE{o05> z77xB51bz9*=ca1PS%SHBsM<5iLRXv~IZyKHT_wum#fs3=410>14)4@@L#ArmrPPuH z6v%gEu#!So{{W>P!=|PxVuO9*bMl)sOWLp@FJ(%t;Y;2d!j6@>Y~9 z{{RV#^Y4-~f#)B7l1~j(l5HzG0Ouj3atDw6-hYQit=8xf%TdrqikUm3m=a0j*ngKz z^4xB_NRE<>ZhZ2RbNb|tKkL&Z9ZWJEhd2!M_1FMKAPJC5PQYUaJa7E^&pq;{uC!QR zSkO-#HFlW&84QkCJY;TJsIVSsdH(=h^@Y=NqR0=@TWIH; z^x%wBX(uQD0FCFbsMFD0J@X|>1AuSDawTGw3I);&ZyL()-a6fDNj{piq?V{9Qm|ZV zWeZb`6NDMsg!AN<@Hpxf*sj`A_b0#Io$b}`nzn0Br`Oc+>KZtMER#?`l2%m4N#rBN zPU_A704ujt-7R6Jse(|(BMYnLn+J}1(;c7g#iLGlx3sgZ!cL>GX!*MzVD048dS^@1>1a^FQBM`IXJ(Oj0GjE5PykO#GPpS>8TKlk;qc4w zRq-F*?GD!1JH7ta5!wR6W$Z>?#nY3>pOBRYn0Qw>0Im2I*i8S&K( zJhaSDWhbfzUSP+EY_|O3(Q`s2xjnnx$A#k5@8Qt>*6pAE&tCiY+x9&@UbNNLtABPb z=Ge5*-7QnZwG$eWm?9n2sgd|Zbuy8G$5XF~ABeAs&xd~VKD)N*>vpI3PL_t>WziaH zk~$h|71lb7Np;&*3{uLDCXRLh0~v}mP`g-XCj4CYZ?n)^z7;+l^p>EZ?yqnDA7ZvQ za_^Qf8kYF*e62LJut*rBh3Vt0X9!tAsYTpKJ!x+A-F^@|%c^L*!Q3B;nmeyzbjFoP zG~dI1oO$S~scYe)k`)y6uu8Hlzr8>BIRu3D7BwTOGUW+qlxNB+Nec`?EDD`DK)6$A z`)LU_VVFpkwl>^cw(qZmLOu@lJ#MV*$HjVf2A@i3kBW_JtL3}t?K?$T2%d{hlSWb+ z2dPYYaG9%-8HUB0R4ffM~H*WCvDhq{OXLCE(TP<2rTtkUT zf;5?ob2G~_o$;0mwBWRk&((yPNlqm(E0jx@N|@T;-0a&m%fwYEs#s81u()vEUc`0t zzB+&6tG$!xU2X7*-TOA2?9InR#P<4n3iP%LijP`x>jrvB8Kd+>D5y3C*iXKCqCPli z?>a-V9|yGE-Maq(Y;Kx&xOR8$onWu|zuNT_)GGG|5)}<7bXt|p21EGdbr9~?bAAiH zEUg{9xax0+tz+1VjUS@c+WH0?B~nt-yJvEMu$W|Z39vL|f{K7+$5lthUwiunsCyOg z@!BrO>)L+hziO@#MOxPzJ!ArEN=s+TtJE{c5G^w|)DWEI&lu_@9GS_VPL<0bB&qua zBnBWl^i%O*(dA{zwIx?Aa-eSfH3OC7clXz~ecSk#y4ZV<@Wb&-MQzfwnr@t1bWWbt zwG=R#q;__l{!xf7Rz*USrWay@04J=6-Cb?nop3vb6JA+_?s`E`; z)x%a&$zMjsq>_strRq{j`v&YZj5y~cU3Jg?&K~EF;(P*lGH! zajTG(nTM@ONidMB7E1yjf4qSw0AQ!-Tnq2u{%j$~+EF_d=Qb_~=;>&nxDN>i#6>bR*={J21 z$F>lE$Io|rrD*uK)^zqR;%l1?CWl=;4w$xCbu~>TB_VnWT9R#|A8N}rsmoq{BvQ!1>9mLLqV#&Ok!B%Z3GjY&%c%OORyB_hY0`oK&R zCP&5gU$&3deb^%y^ug57aCgFnlu~ag%#0{j9@nG z`}q6ylH-wCfypB{$oA{2U;8{h7Q0X1n@@2yhjSL?s1r=yDeTsbAxCwVi6K{~6FqFL z11zpszows1RrFtmCm?akTqwyk6)8MBI^WaI8KYfl)FnzIxas+dLLUDB+UTldsG+C1 zR@MnrK@QJFbC6V*f5XlWMou%+bxxz!nuhNk{`%0Z4O-O495hj>6HF30Si1qaiirWv z2b0rZ#jkF3XK214wdR7*HFM8lw2BGRp02c1J-&LHWS!|Z@=vB6ak!QM;GUwoM^aZ! zHM+tk*$hxtR7f5*WgrKzqTxSAS#mUd%=AY^h0Hh%0MW!+U!`52=0K9UdP<~j9pQ!%;pGzsiVFPCYMsfOd0HRefkiBwm_orb^pDG+X8>TFj&aeZ7W#36 zpM2*X2*g5y!~n#E=gA)5*QvlM*hD*P2r6U>s-<~n7<28@YP(`Z#_TZv029--LY>hg za?dae$CKmy`ud$k6txmM(N5823e>PF3n@@>xN1bz;+T(y8KCK=Ql*d3 zs)LT3%CtZSsl%L-Ip~esWLW2#I0*!lbM;^x z6OY%9hOwg++b5|k(rt}GozL&U{v)p$iR$vCSV9>}O0y|fF?aS?y83UnH9f(PQ)v6f zud(+Nw{qz#rMAm`TWv&eOJ7A+(yYv_h94#rasB?aeV^l+)2H-pe{Jl#Z@%z$_T@~G zROwp2?OA3bAR|VnO6Rqj$Y7Evk|&NSR0S=!Ydf=ZnIw)(fif0Q8G^Rr0q}4-9>XIQ zLnE+K*bu%#fJr_$z~r8rDW+12=F107&Z9!k<o5&Xh8xL~Y=H(a`JP$8=BK%fEbd zPi?hchwcubmX)tBOWeA7=qqA|o;q^`)UwdY9I?D`qMg7pl3fZ&sUp+A5T6xVqv8sd zf(!koT1nu)8?AlD;ix`sQ!E%qT4i4f_!C}KpE*WQ3+|uDIkjj zcWw?&oQx``&n^nA@5{ZR4XVAZ*Q;I9DAIPcT&e3)DIA5Bp_yd}NaqBuKaX3EtK%z9 zNvL&puD13HD+a08RkhU`s{N;X{i*G8*R53TJkYYy%NmGUL%7Atk^#p9tXW5ZQ_@)n=t7^%M$diYZnbKC=W&3BeU6en%&&GdkzK7LmhKU@_I#l5p1Ap`kpVx zjr~j#df@u^-{1L&dQGv)qcA&i!`%L7u7q~W<>&5?VkN0)O;t%>Om@~%)>Aw(!r0E&M*)=bI3RV3in(dtl0L^u zDe0qy4&^4P&h9W-oRO2xG1eRPCQ1GPZ*mp?0Evrkj7*D-c<2RPjuVT0)92ym-fqj(Yj6C<6AVk&smhn!Sl|#w z58QkG`cf-{=jsYJOxXZD2|KyiP5{;@DyrI56ONTaGrQ)-Q}5E}&KW8WPX^)`@E{SeSZ zgXwBEAe;<)ewpcq_T|V&6*kznC-;P5Pb0?wXYxH1FBg74dR;l*qZuO}e^2Ami5rc3 z{{Uzl>1GG%6PCDJ4kDzs(To5+K}ooe#qE#G{{TLc&sR;#i+mDD-%;I1wYUS%8RtIZ z+o-9()E$PHJX_A@!91UCLH&8@1ov9XnxRl;oWDO)NOv3o!EEQ-`t%D=XHQsuSx%e6 zjYT~d$;z_Z;x6%%ywLq9asL3t$n&1C)~l?ggW_+nwM#`D>*?Kuks5g;M%@zvHsBTj z0x&=3=dE#muC8>S61Y$SAhSN<>_0$1>DDvXa?4Bc1K4RA;ZZj0t;JR2m5aj7Pm{Oo zLB}6)`E)ouk}+2rWnSm|OiY}#8YMozymWF)oN}p^XhdglOr^K!AAE7(0n=o+m>3i= zzS2sxhTeRE_uG#gbrlyH;YYRRsh2qA*x;ObJo){8{RUdffE5~b3Ktku{9KdILa9mD zk24Y0qICO2j!T?efeliY;IOup9x?2{;n5$pLaHS2+z55dVeN!u1A=nc$jBq#$5DxD z=5=IBh5$*O>z)Dj=b!X?LTYA}LWw2-4WzI>LGjWFS2>7>3lVpTsJx*prk<~6NI0Pw z8TaG^88Nm5wHPQHJbKl=3!R;hJhYM3x=fW-b>=dV#_W*}84=?kU-8d-1#H#$4Ni5Q)KP6+*ANaO|cBGJpM1?)P3qJWSlH>(t*5T zh+(mR=HYqgq|*zDm6fXKa}wbk$lx~|XDjx}={kVUS>UsRG%?LTj;eVl*BW~A^zy=$ z`ft)-SfOSS%ODvlPmdg*)2@3+cC!J`K1l1PUmOtVw9gx@HZfV zjE;Ya>zNal61W_F$6a%y6Eoow#|IvNyxu;~36AJawu`WWKRhqQc@BYCn0NFahNB&nm76 zAmEe9>Gr0&+P_RKDNiKIn9ouAs+wk%{W*Lw+n;`&>rypqlH`RjtlU|qS$!6awTUC!+cRZw=%LDM}@-5!v( zhF_E;Y58<#!orq=b{?vP~~0d z)d0yLSE0w9qyRrm^Tv9N%067@<^<(H$w&{>PCTD)f4`2Ay-_5n-GV-y(Vsav{{UZ~ zT->DP)-RbRCBorQ!a*G(GvKnTRK^Z)f6V@z^xY+GT5a7yv61k_E21RuI6rSb+40i> zk`OqJ3*{W zp94H+{SKSW)e3}?2sQ@Hp(;l>_XLhO>7asllxLPRit!^ydw@d-0Fq z(@RL`gg}shKfRJh-?v1~JY->_Q0E^?oZ$XPAD>Q%D+RMaBqZ$zUg@m*lGRaZy-?F! zt2&*4?y9C3C7L1!)}w$2 zo;v75PT-jR6(N@+b7P;m+aUeUuuL?-E4Jq(^Flvj;gbzO*KNf`jw%aa6!l)ZO5$xsMFxzz7{$m?maC-Uu=;j)uL~g zyxWh<)kBeimmiD+gSE5ctUIp06Lsy1N1sW_4zRZ`)G5@6s}sq_!Zyjr83c9IFn*We zl_|+kGAoO>u7}1m)i^}?WSJ$$-@EY?=Bn*Bq|?&RJaqBhZA&+&O{i=Wii$d{?!%)4 zxM$OR1_Q@ctg%+o?pYK_6zx0Lkb0L@RqHJuEcUCS-|Sz#0!j;-OA418hCqA+_>Ye{ z>6*6x05xF(qBM}IfxIp=$DXeyDwcUFLlO3f$Q2U6O7#%Q4RXZ9OGJn7vyAldNq5uq z`D(2&E7<=4c1whju73XjNdBEQwD7qlqrvh>=!a<7769$sc_YtJOo=MHp8`ZX)-Qjg zSrlE+q_lHl?f#IUnT7>TOixoFIRp?$QT+4z^oIN14&~|?4IOT%uBErP{{UH9TjgTL zF^nP4kI&zzATaP)9z0-m>lliih{QKJZ+@5*bV)giT=T!y9TR6LHfDle7h<#2&h-*a z^)oz$+w~-z^dRK^?ljwvAx9^vKAq88t5!}R)7C4c)yss1?1caxH@DJT&l&dXqn)r4C?dDmtW@@j1W+QUrywuVFfu_oJo)_kkV2C&4Dbm4kaup*Mo(P# z6vwAxM5HIMHsjvWZz7d4Mvh_^Pd2zNvrLw%U5~h@tt6k9-v`bI2k+H4-JZ|O-4!+0 z)S#r)H1tL~JH-d59P;4(D=;8>tL@Jtj(F=%NRk%9$K?AD5k8I?9x?{K3 zm{_YZ&#@=2)M~vAruFTbqfcrpJuQ8@ZewPM32EfP#IZgyj5FkQ%)aw{J8FK|$vxhO z*3>#QzGA)8#7wk%w-FsmfHvR^Zy5*p^}oWg$u)=wnsTqu#YFlpt;#MUxQ4DOsQ6$= z;Hf@3M>R18o;+mpkH1jZD&&R0EJhAN&z_`|*F}>Nxyc?u>rpCcNwJElveLW3@ym~+ z-#<`34^OtsLw!v-Fdg-Ad1DIA0Oj+rEdU3aI`?x6ehAFW644hs0=s|BV- zS~93SMH!_lGE8m$+V|cWk~?0ns=HQ2AoQWSz47BPDaX+&DxJeV7!iTz&swgEdre$$ z)l$mRBd%g|cbSXi6P%202l;i#7%HTukVy=sSYWT``5v^#YP;KArk*Qh!KACSNaKA2 zVVV=3S|V_L&(qK4*E`4hGO2GioEG64Tssv?&?T=?8~&Wz@x4|iZTR}@r9VzNILDtH zXQL9P*c_0tl9FvK(@Mm)Jmrot&rLQxNo>8)Qrv8He>F=wW;tS2QknK;KZU;|)6e3_ zZSRxjKtI-c=hG0%Wh98d6I?tg6&B@9&W(jo2qpOg`2L+oBT5>I)KgGpEy!%lY)smn}Ch=MHC6yb~>bv^s-H zB+A1LAkWf%+@71{yIWBhMMEfJISSe52PFRh9P|0~ZA|g1uxeS<1C?L~2>yScj-s`- zu_C_sDpw@)>5fM|C=&D$;)0<2!53{oNEl5NRWY0|5z0mg=bW*}`StfzjrQ+Pxx{{` z`nlbO&mZH@Uv(uknZvR3i4s-3EWu7f zmS8+!a1TCub@hNHnZh6LkTL-4Mu$}(^v8ad* zfJWiR>+jOFx7)d6WwxkqA~-^mLeFsAgL!A=+Q8dwzy%)$3nctHYd!& zqgN1_ZB&Je$7;98pyUZD)rkD^Mt_ca8rx&~LR)AfAPu-d#s{2{=cOi{4=W=UCpaS< zbfsxyY#9ddPaNYt0zn*oV1kG&VIa3{%8^8b0PZ*sc)rrOm>|9 zKp$b``}N^18o2X=LeyV0Kfy%{G-g#0K*#F=+i@5kRuGvSaDm(>t>O z22KZ2Ijq+b(Tk3ytf_qcR8}il48w5aKT~J({Q8qw&A!jE{{Uo3PQoJ`mkZ5&D>DV; zkFD9cBRpVz`e|~&P0hJ}{{XyrD6u-8ALGg-c8fHXY3jor#u%N*6J?_Z$=DY&KP-kPpVOis)fA5&$m;FKVt>OoIFUv;9tqEb74z?P};j4 z{*lav%8=#DdfIzYxKaju$15Co2l{mIl!BHD9{fkr4qWBtV-hiEnsNUC8L6f%$dVw) z1_nN$e*G(&$ut9sifKs$g82UculhYgmTT+nRhv~pxge!gG*X2?IQRR0T`5`h1ER36 zyUT_cL1Bql4hAq8KI9v#+VmLf!>XC@?_xI_7o8a?%>C!H(tPxZBI$amgs&p8&gJ?} zMh16dIQQ#c)7oc63iqj)1>gZ6jEsMD56j2fskJIbNnju8A71ETYVE0p@YF5!7<@~3 z!2qiM(53+6KWKRT@;&-+q=Ha3kucZ>8cMZt#~3- z0mq(>dWfU+ux$h(vVqchvr^Tf6JzpZ~h>gDqI5ygfqxXn)!aAfWbyi zbNPL`SrW8-J$+7nx0O+lJ%W$=^r3!cML2qOU%SFsllfru36kN#ilUu&WF6FmjC*ms zdwzWhnYs7r0v1bN7l~Y;VJwQHmR2Vxjxmmg)rAypB&j?CIS234ET6T;V~M6!Q<CzD_+z{}g!Edxz9nFz{vYME<+b8UKhtinI!5)8~QqIlE1YNh$ zl!Bww`CAP#M<=C#z^?3%eoK?j->Sd4FjPUNH5aQj%52+Y5DJR*ZOxAdVgTG9w^MG^ z(N)Kwv}iI+A{u&?pjod>qnL(rf-|?z1M(eAl$56qXa2vm6xVwVqUx5SZLF%IMq`EX z#~=3S4J&{)Q>h_9ExRYj9tXMUG-)5E1hrJ^z=I;1uyLL|oMWHy=`gObkkJeEtz{}m z#m+2_dGg$HI*&04EFvqH(hI9vf~33~6yZwl$>;CK>HPZ5pAi$gcJAX3qJ*_&GO0!+ zfxH5EU$?*K)`Y9BvzV}TEgSuNhoy6;a6ck)asEAL4~QzeY?>BmsV?x>O)bipNfa}q z{UOIEY5R~myXd^7{{XZ!-}8^GM#NSA;W4-v!QPV+xFw0_0QDudY5hlcr&`-ioz$0V zQdvb^t4~!`MU}`uTv4##@#oHZw0m8nN>KaU$kupIt< zUX~u>_ZcZ}7Q07wd(CChx<^LKa!Wpm)|V=3YkeehM;7&ho5;sN-l)ps!Hu!9kivz&It32dUR`F8$fIX#1V{ zJCWVXWHi;0PiUGx<=tbYo{7J6=thy$1&GE-I~M~1cm6xRRr^jVI^?U>_Zc1c2XKC= zv5ZHYeaPwTGo_ywP_+`-NgJ1E97H8v6jFrbHs5RVvF8zuKiaupdphLh0Rt5E7{ zV^H;WJ4KpFC#Mh{vKLhtK&(LL9G1Zj^LULe3nZEmbsOi4niy&-Lm_ ztG*cf>7n%PUZ>T1HiFY-qmmfpo;`DBsgc@8R8WvXR?BvmY=ZU^_7#{~Xd^%hS`r_I5pR_FjECn>*Fm|O{$t`DXp+l!XkliWHQbR4YbeSwtu=h9q1g>npvy?1zNJ3x z!us9zV+BuzAXJ%Zw!ZY|=M63J?`(nT#lzxb;XaaSU{{u%yR9ujgDOZ?^l2Dw_S!Sg zPzifFA67?TrS2bYZdMs9BZgk&QP$P|!Ho=R(o5<+GRnyt7D84tl7|`U!|s1;Z~8|- z#i=z_o_jv+QBh~Gnx&0ROH-5;0Sb~GL6BgAM+fYBwL4*@sr5F4?d`5=$gRtDNnT2U z2qhI#t;sn*QTjgFJPw)0dQ~?I!(~-m=2ITXuxGPsd?6`te7{`&*e`mCgqq1u1 z)Uo&aZpW?G#!Wu3qmu6o7igK(K@_P*h2!3g&%QzQ41#mVS{jo@$J>vJ%`azyO8S#c zWY-mT>*dDY)Z*=EIzIB$)o8Auh}}`JPyD9@fu5q*+ZF!+Qff^pr!;+rvhjATvBymf z9gZ_mHA}1R45df>ry2aZN{*FPiIOrGOviT#*!MB<5DCL&ve2OF9sdAFiX*!{n%3R0 zmfe58-7NakPV0)v>MY&K(^tcEpuW@=W|W$TCQo1c%##Ivd>)C?H;FE~-a4O_r=(@m zA1fkKArY|*o8$^}w6S7w?bY>qwA{4UYd$PHe|WT1S?V;Mzd~v_tT&Jh_KUSe-{mT1 zR0k2uEj-Atv}BJxQ-2P&q}00N=V~*>O;tUDXp*k6cR>#Msg+Iv2RX^}<2`FJs$uDOb9k^O4@acU{BoLBr$L-24*r|gc`f|j5hgJrQ(N#5Wbroz9#c!up z{hZQBBl(Gc31AN;R1$OJIQw;aSbI~VY^@BptDRNyrY6tJKH7SAZVxJ~Sb#s~VV}2B zT|r%^R+PaMaK!{b1Xv_cyGH? zYGu{k^>i|NXIw$MY^b2QicdM@;5Qf;>5JnIJZS9AImhh_cu1EGxtZ!n%MJ$%k^{l5yk6 z1N7?iq39>3a$FW<{{Z45E;zCLI%j|0GcBXC`g)VL+9yzIo3+L*d)(@Ibq0~rl#wDs zZ_?1qB{JM=A0@p?x{!Scz#qDS*!kjR4|43<0*=FJUxr_YtwsAjN=tKUeMfD&)ZFLw z3PfsVVOk=27&|e-fVuJQ)0VrArjDbr6E!tsQ2zk)AZRK%{r>J@+YS2zRd zSvWmfr{cq>fF=TvCU)!Qqq z7bT~)>6<>2`CDAi3j&WlIFS0Fyr8fx$Ur^1d9L`U)|y7()M?o7gv6ExY)buwre}TM zR#}>IazP&bM0-Vdvsmpmsr4&CC6*0BDr@PhBV$kLtf`ieAl&)D`bVBRq&2N=Wo_Cj z`ud7ls;-a<_evnDktEqDyA=NK3J2180Q1v0O!d@abts&i$qG;o_5kQFx85C|0%?(y z-G`66-Zie9)LNrf-|XGewb*+}4{&uOtt};qduc>0G-}EqMT*}0qT)Eg$pr3ZZzS~7 zto|rF@uYPPb(Zs|I|{c8U!&-s{%7k6QkxZ!r|!-M-J|cvwmQ512X&WZbY8Bq>JIx| ztQLJS2XAZP)3ti8-|Jh&)&9zfh(kz3ScN5MVb)i#Y|-45YuJu++C zOV{d}=F;Nj6C~!^vpUlkRsog05Sb124}2VsreL|%Nj-Ct6vX8uS)8y3lQVuHD#XOi zmO)@_M*D5e<5OvF;p@)TOLEnHwY+GGZDFiwQhiBTc-_VLgWT%WtBNkL3 za=dZWTBqYv;+E@hOC@H%(=^FbT-MsZknJsk21w*@N1RRc|HM*UstQB^O zI*M9bwxC$)X{)EFLSTUyG~i0-_aT>PBn**}o_fzVir<*NS>|-z9Ji`fIX{Rrsgs}M zo~rO!vu5D)X3a`epcKTU6UyXmw{$;L!l^k9q&?5(-VwDa`<2~3&Dn33{>*EOb(Yyt zGTd*eSE21yQr1tjM6xs0Q%J!=g#kevlgCkeSH=GT#CEuxX&qVJ2dUD!iV0|S6&?eV{sYD*_>o# z`0A$6MUzrmBigRhw2QNDPE1ZgAIqhos8r63E^Netu#?&;52miq0W~uPazIsyjcsxG zhwsm9G}R@CwH@QR=`9y;mPdxcYqDEJkxe0KC6VNknWSbc#PZw%y+^IT5&iG(+>NDs zx840~t2Ae#)e_kyr=gBH>SF`aE+U39;Y()(k(?4Z>Xz;u%AnRuX){D(wt*T`ECC2< z6f=N?kq5(v$5@u783#COD=hoGai=>GtS4Pk527L|(GWwF_ojs&5CIKrezR-ZUf zm?WI%rj0Y+4(In&%)Q(0zQ5L#)>0?a6qjp~$sHw0C0bksP#CIXcO-L+Wafp}6{4!H zx(Zs7)XRCDOmdJU`W=TLdvoWhZ)O=JyZRM!M-9G?<4Zh~wHnMv)Zd9u;{$GXcsV)g z>eb9oM-w+F1;dsBT8+To0$PEuGTqB^izi?Av*KS%TxcD>BzwbC9p0SPK#=zWq@=Xf<tEzwd`PZZK`4I~i~kQ{9unvxeD-UZR{*Q=rJ z?dwfq*;;WX` zEC;<{aP>)5YUQZA4jXUmMd9AZt?plHyQ5d!nWDeI)s<$xJCL zlL%f)dE!=CNY2xaGmenynD%!A;kC@rxtp?tqAA_zfRzjN4Dp?W`+4dEY1XgYjWO}P zt}4aKl7mp`%`+uE9oFV<6;yPGRX{1@dDso?ko`OWIN))UXKC3j@plX1g{b4Nts}FO z{KO9mmURZKMic-z5$z{D=REaO(^Rcp88W6>p4=W#Q3J%DLM3#3OGY$G3%2}k@5� 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 z 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%0ArDr;~!RY_x!qDPj}R{5jdYhy)=;>^zc>RVkskl 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�t^E6{Xow|5QV@-pfCTZM7{}|;bAAk^UvQs zPo%1uPI9}X`*F@Rcs?&P4Fvu!S z@K!pM1*2|A#zt2o*!8Q&ayuexPAv80he;k~>HNLyHk{8$u+fsFs|` z6CIKVnOlsE{-cZ>b(QY2$@?c$!FiILUT&JITDpr|a{mCnMOzN#h^%-d!tvC|0}ST} zk&d+?eWEoEj?zXX5=9{>asj~O?thr;!i_W2Rr(M$LO$ARuR(oPZag+O4t~e1B?V`} z<|QsRym1T@6_tc3M4*>u;t2ajQPx7xmQ6Pm16Mw{xJ3|g?|s2LAPt@{{U#v9j?C}Gu{nx8uuN0S68Wf z3tw%u>se~2iaHB|+-YhcX&x}lfc(2D;BZQh#n$)LpAj9bp6N?lN#4k4tol1mYIp8N zjv7*}qwX<#BG4@H6BtR_3ffAOhXgiH_jZ%aXVO}uU3XrGOlbR5*WE{`^c}`JD|}BB z0(OW?F+QY>sJIbll0ApNR^^ovyrW)AkKhPjrfT>4LjfHGK5(z#dWa zEbBVs(%p^Y+z>2q`kBKGmn|~fW!Ihkn3I6wn2j`4}$NZm+cNGi+-AQ9wr&8lpdN*YRf8rW78shQ-2iB*Zl z0|T^?#z*t&)D^055!R@Rl|3#v#cNSLT`a8}%&9ys%QQstq#SgjX=+{=+7MbvSwK}F zZYPg&0O#&{1okQ7FEdOg-2VVm7RfpHJuWu(o{Qzt)RtUfjtS~gQm~gg#px+F+CIHo zZ~AiQTV>P~l~%j8wbd(a^=hHx+^Xtwq=pQRtQZmqZnV#9uGJCt#wqO;)fX$JpIO(N zzK5uxbxP_AiaIAsx>@;CI!PR=(QrzT*dsX0H5U7oWmMI-3x!o}T*^Iqn%b9^N7|uA z=5kozCZh}`VY_Z=lFEfrZG{W zZD^onZj=6+8O_@|+lVLD@Hu8kMzkgRo*j$Liq%{eJ{HkT-lkds? z9ZNfFDpB{utfWRKq+rEWj!RM|Fg^2(eYxrv+nk*(OA~$wE)`JV1Ne7`#&gf(>RYBI z^t;`s9TR)hQPZx;oFHb{@rl9v`HLtPZAfG zY)bMGy}9~F-1y_D>(5%BT#>~S`eO{W3x)^V&q-FYSwcqC)bioOF8SB#asBVMefm7< z3}M`hU?O7E+mS$7Vs**-i|74+K8c>PltZ>D)wU0)WSoz2`FTA=1og;E3M8C6o&Ny7 zQI37NKg*=;S#fnM`#aK+m}B>?dFcR1p zKID66q|&=)G+VtcSwLd6ihi%RoDM$yM?Q9|_ig(sR;O7uxmnPV$0Nq>M+5ovbh6e5 zJMDFG68`{0I(az!v+PHM(ghNz@y0=ra1GIBkFjxbN3=hxjf2ADDZ#Z+tu3nYJ*LHxn%?!0o7U_D`# zDQGOj_YoYgyXkFFqw79k#ZdyGKP_KPmR+YH4Z}F#a;N!qJktH@ucMM0eNFRq)SeAZ zx}Fg#j9?ZGjo#i5@atjKS}iwdq((^3tPb>Xm2cH^gViOgyB%(?5>(q!t&_IqEdrN? z$?!_#?Bw_yb>AznN;>iU#NUY4Gqjl9B}vOXWLFWSNvwLtBi$pgX*uf#h)zs)z z=O0q8SbKjz9Z9}!RpeRd5gA!?S96|Y$@8^BDg6mOV!O7H)p{NFCsiv6kCC-9KY4t=h+$ln;eC0R>WCH^wSmC(I;|KCRVk`PHQ%viZ+E0tc zxk9q$MZw%&H1bP#kOhjqJ6vIhsU4o#6ab81eP2_5^xpkQ=(Oz>MLgBDlFL~%E{ndZ zXK5Qa2a5;2# zR~8FTsCN^*?uw!{ae?j_AMoqy+pUTwk)ulZAp?nKx6SN1q5*J@SAm02Uhi;$i*hY2tTfMQB3O*K~Gk>~Ju z1fPE$WX|ZxY=>6eYA2_j{UZZU2kpdqVG&f13}UC4WQ?`}az8G#bKdC&(<|u6in|Zo z+h%}+jFE`t0C@6x%014VYALH4t0DC^(>p8U-|BPG$gwnn z8EI`J)?n=NBC4iToMlcu{C&qw+X55FC5A^wMx6ab;A122)5w;MHi*+@N?FWO3GRhx z)Sp3Xb-1dG2-e>iQ^6Twx9U9m^)jH$wjR%@OIoZH|I z;LN_4q|)tAr_@5N^vSZJtJB@Pr9dOnG?kLYlPlF-tJx(aa5$+LBk}{!TI)+$bbTMg zy~^V)4T?QVn!0!@Dy{D?&pD}qS$ViYMwtqZ( z=b%KXM3Uy-_`?KA&U*lR?i>3tHq+W4wHFT4>y1}mr|vdwacRBUt-3xPIW<_N#Gf$p z)XOBbXD$b)#>OAJQG>XZi`(zD){k1A?KI4@KgNO;cJ$RnnsAYHgdAzTpviX->j+ zDn|=3+>nPd#TUDQ3!T{qG#}5W;IH*OaBfy}jBTkQObw z$XtMWSp-4KU=YeO2j8aHuR3v=+H2*uH7k|hJ~w`2?mC!h`836HTxuIyXqq&%q%uz( z-&504OHd?~Mg=@_uxf%1O9TgK^W=32L1Ek$?lDxVYNA+6QoDgLi7BO%W^zX3w11EI z9*SyWg^69KcGLRxy0jO=u9wvoe%D=~xOY2SMcip*j%`iajV*7wX{!d?gp~3c+k@2p z>(WHuCQ$GgC@ePhh;<&J(KgG?=G8~5sP2?@%jI1qHOXk@#Z*yD(WJxERzes6ewHJj zJxG~{)JsBUGrjHS4J!-9r2whYhzip~=G=@SD9Y>!Cu3z!eDspOhMMIB^mR$Bh<) zK)aPlAoWSrUo5m&ipw2sWK@?*D%mLOso9GN=Z%>iH-J&F%0^U>eTnPJrL2&FG^B^z zN0CX0(-5&ON#IzGA_(!_Ew@T^Syn6TQI)q`WRug5>k#t{gMq&T11FMtpINUlU!alE zeJX_pJDs|7%q@Z$Pq_#0`SfMZ)k|`XsH?&GayKglC8BI)T~2ZcIOnSVcy5;4tt@g* zvEL&=Ew>ZISBMAx48Q%8*b~pU*!1DaSbznTJ^6h*qRh;bipdOe%}>8Cr*?|3HZ-&e z8xua9lBh_sKtoMwl;nD`^OCvpIO7BJ==-EM*emK|y&G)RR^1<5qPm87<@FKiOT{CI z*z9tWA;AEHF)OF#@QfkxFeo?_&r1}RCP9au9O1lQD02@ zCbC6Y;8ZGFMT7!W{bvXUg_y`ZXZzmAt74c-6vqxj1j?0c9)8&UdZ#q1 zNROfAc->NZo7|90SLu)xR0x43nhmh#svH(5fOZg#j!>atRt3Uc}S z6KEyT6MWnEMWj}m;ulz1rz|-&ON%+wVEeI z_d7;ZQERJRyH?w(lhgDoRN0YAHB^wrHQY6I7M{E+ zNhzmyCOL@kz=Am$!8kZPbdS0{%+j5j(=cDJHt8a^*WO{bQ&Cvx#_4Kj-LwTDpqwH8y?xg1cQ)zljz+=rS(RZv|ix(YMPqL2x<+o;Z6+Hd(Y zR~Ea_R((f9XTDo%D=eDQ*RoqCv9edqOIt>g#uec8A(ArixNI~`SzC;ZfJDa4s5F+S zwbRwv=C@s5M8!y&AZ4UtFwwHG$}sWIRo8QSwPo$)&qi48RCSe=TE5`W+tQ09sEMQA z+dw6-9eCq|*QR5AB%O?PvSujG0o+{JemmQYDro4?hEM@7XoqMn*lAwOz?S_vJxELS zd=FkKCu1kB5JY2g=agbSK-{rsIb)uuebVi2nARc&N(xF_yp&Q~YwuL>Y^b=<7ZSA; z?4%i~%#ov*nWuCmeC;|H zx|&zF_c|4sFLs5wy=-?V(nzB(I&lH|&BdChmZMHMQ!sR8l!$};s6)hN$%`l79k%}l#3zZz5q~MEYhWBN@(9>4fDru`N zwJ0Qps-1D_WMpT6LFd8es;f|UPTQsRj5f=nG}eTV7s{GTRdY3=TmuA?OXzw8Oj4jC zi8m7i1rB!vc8d||0mSB-Ij1>tvK6k6uDjn@6;o0PV>k>n_x6b%gVXwJN}63cV2T0F-6Emn!8Aemc6vqJ>4SrIEqzN#F?{ zaI2=JC;?z_7K=MeQqo%_tD}Y(A*Z)T9CQ@a@Wikf)C5*Uj0I7J#?U;eKK$1guG47? z*0GOSUg)N;tcs{cBl%i$6ksf37Qq7x5g7n|&U43CFs+K<7N(j-k_m_IN}ulgbwcQ# z`djXL(^u*1t&+NqmrrW?jXzI#Sj34fbSb&lU^~bF5L_uxM=UZrN*qTNROyMQn$rIO zsN4eOoZrGcs(Nsc6a(!SUY%8?p{v-kiB_TGMlHEQ<0X`l`Tqa|k>jWpE`rkZ*V_GC zRY6s9)U~-VUn=Ek-Z_w+t%7(ZaG3z$3}dTL)%n0=iPlpv$`E)zZ}s{0NA}OZx<^@F z^=6n`ZQj*+($~7m3Wl$MdU6PAq=VE_3EHHlLl8J4$3cfzVr0w`R#PD$=i$DfZcV${ z%q+<=7zKRCNVn*Ok=S00eC-VN5WG{gbq^e|j~_&fhf+P5VD$m9=p8?&YwwqPZ3V>M zwH+)%s=4asoXWv=zp0(gnGY_+5_u%&o~(+umTFpwX}^6ifu1t&!<-Ta@#C!Z*bj&* z4(QvjRL-_`t+Z8&X)Cnl)Ya35$x@EnMj1%Q83gp^A61J^rkJ!$BAFIE1A^A#qW97D zg_$l(fPP~a)lSNr3^bdos8yhh&LXUqo>0K}EQ}ZqF^u!?=crY;NLh5PE%q%trlm@Y zy-QZq$v|KC{^lI#2m=hL;AftnHSNM%E{N6If&@ug!=~%*Xp_S7BRxD1GJ>cJw5N-tvv)aP?v_1t|{ZEk@CC1JhJ{4 z^WcI%E}89GcH3jN#b~kV$f&4kE~27COy5M}NdvR)C3clOZRZNO1K2h9Q&LHyyLGDd zoK-(8nrhh9^3Ev!YtxQ5Lhd5mo}mf2fw_729V6{uc(k{6^o_q$X_#)2*{WRAQ(UgX znI5uOzKI`YJhCcgMSKm%J90S3QYfb4rwN@?I%o2SWCO(91lfZG^0kJh1!<@2!T{|X z`9$vPNl9~_ovSILs#w-o)+v`DBcm%W2;dNL{CY*FG~KIA+bC^zT|FJH-))=}5p5|k zY_X7Tec8{FN0Y}LMLWx>A<*5r)Y{Ibd+ZTu%Vd@2Jvl&XYUbJw)Kw8nwRaUR+fLLB z-rXD8oqbWRv|WPrU0GwVlHg~Kmg!(Kidy83X(LGxPZ~Ha8VA8q7>`T`4N)DJ!A5LmJgVSxh8KfP}J#2OEa(Z2R>iNMwKvQ^QK0g2I&0U@SRNffx3n-{r_&!J>a8@};|4=rDnud-MoVX%pbmPv zv~BjIQR&+i&aI4J98PXddQ?n&N-K8|Mg{j|vMzI#@I8-NL*kN7=30h>)IGAdTx;tobsYA~gWIYd9)dc^JrP&6 zQMVYz_6&auZ8*W>T~gJpXquqQ6+~IeR6yTMpyvnjJQ0t}rot*E;Hf=fd5SxR00I>I zi+B+5p>owyQUhiC!#Jgmrly9T1+z_bqo``@Y!_G-UqGvEY0)@kBX&0~2qzimr?*PR zT9m4ICT5kL5}q~+2GPeP=fV4V>o0ePkGZtn!tJHwLEGZ3vDDX!9cMb-O*HgWu~nr( zWD232GJ};40oj7A4m#8J`mt3?D&0%(`gfC!`2g<6=z6rGGiA_IN;3&7USoRz;Vs@+ zco7V(a@RIuS(ryMellZOG}Lv{gr{}wCHTn%F&JW4MZ&LZZ460f2O~UW6YfV=kHZIL z+S{RfbKDJ01vsKmhO*amnhS__cxx8$C9aqgk2? zUxtgt!lJz-b;`qVc*G8^lf%x~Y=TO+<<@}sS?*n4r0vFo(-+&7MSb4grR_7NU1Zzk zo(x7vEZ>QNDm?I`9eoY@o@&+6vYBdNb^idg3-Wm2Jr$?IQ`7mPxPLP{%HaK4T=%do z8u-v%MJ+^hHI!78lh5j(nWA|ZNs+jy5-0%U_#B*d?8q9TB|MVHBRt@P{{ViouWBwG z$hYe*;?V1Zb~Z-Vmx(mBeSWWsqM7L4qBf?bij5#&K&)a}H#CgLelkG;bX8u(s)+CM5K3)U?*2T9pw} z$89EUxjWa@^#J;hzTO8M=c5c@)brp*Mq9=){<-Tpb_Sce)*9_uV(u)Kk!Uv-T@wwS z>r+!7%ST&T>a?D+g^E(L)BP!cLVjFc+KL&gs4rIf5erq;S*qftS(RA}yezAoz^(}( zatQl_C%!kXTaFlK^1vN((Cmx0foIT`-|)2294 zLrTpeMm_NeU64q_>I&`Y$+b=~kc>uh26}U()spM_aVct9 zN=ZUoi-3@j<-48r-+1*q3Nl(JH-wP963Hum?gFh6s0z$TJHGzjGmd&;q^314B1V!X zGX_axKT@{@F#N#-rmG_ARX6IrRYPRA+%ET3s-~o{U23Z!jsZ(g5C%$!<2&;c6S64R zkam_V%*U##F)fQVtc(vUxHo2&6_a>HP`FUksf=$r6NV{{Kqbm<$4?Q{48p%~3 zsK#+pinlJ~FyY63==9>$4%)2?LzU1&vcb451MxCvr5kV+dluYn%l?!ACjbp$#IQ4Vw)V_q%rC+J$oTo4fm_BCE zD^mXec=bY>fGBcEO;nZFjqo<>yf}XNlgcR_kFxSfHUZE5P5-~ukO8^Nf0Ox=QUrlYHudaHU z-9=reWuUZ84J7vaj4?CCJ1?$EOB(}^MjSQ?UEE;uV)PidPo_%B2>xI_rVW)&$|baR zJLwBj-v$qKE|F1XMMJezeG80n*R?g;a)K&a3(d~oLsO_L{To#kb;V(8jY6nzPBms8 zqhSZq0sg$Aia4T*iWnYAVU7eyrJUv6KmZmv9FdIp_vx!uSajB`vEMZAth&o@wN}x= z^9c=1Fg)n8w2Z3qBQW}sJd`1a7$Ec2S3`5Fq;ut=DK3eFv{@{~o4%|qt=h*zbtH8F zo>2b)ym?$E^Iok4iV zsUbjo0&qu0MH)l$(56B~0-^_f%m5e}C&}pr>fNU9bk!+!yWHt3T~?YZ3s$D6qI#rZ zl#P-Z7k=j5g@03G@mO27C?BZ!Bbfm0wj$GATI zdp&-aqVGw%qDzgpx$jOBb#okSwYkZ^MjxVEeJq+KPE~70H|uM^>}iE!~vycD3H& zp=!rvEyP5P2=$}@f=h9Zne_&(8(HM!6TIgG&rLTiX+<6G zZ8sgN=uNho)h%7}M1^QKS5G_<)1eX>T3}#iZ{2JP$@S&9T~12NDFhZ0e}O(nw@}k# z(l<-hCFWf{EncY=X(_wcS?5HhN>`m=Sl&bkaqG%P3D2tJ9!F6+Jyxl7HL}zbl}Wqn zuVg2gCic)9h$^3%1v+tmeZ-EuYqDprlhE; z^n^Ri#|a4f%7i7z2P=akq+pFBD-uJV3;p_Mp2w%Ft8Euo($OvE*%*3z_0G@*R7Ybj z)R~t)8HN?SXQr?^#f%QNRe7dIKj|1*_ z>8Q{_ahlCjSElM{E3FFePc_CU_tTe%AynE(A4z36@%nUK7{w>Z!s?|dBO;0lB%)$9KNG!q{{Y3u@#zdvv`)hfBJJ4D=ZtgY57!+kXxr059UY#aw3$A6{Eq|j{QB|2 zNhMh&7i@TP0Le_?w;!qgU0Z;LVWeV^47BEUJ^uh`WSJyW8Yahb2ILvZB;)VSJdf9< zaU_yO0Fev3M8qn#8-NFl`(XZk8e`g{Y>m9dl#n>!_y<31l7ELuqbyLe~V{O2Bd{JQp3K$4bp4q^o1@=i_%1Kjh{ z$l5igou)5Nz@JW5gCG$gBkh5~9Ta2|Ni3VAd5n2rpkRPF0~}{L9DDWStF@uzNiO8O zznnKk3KxwFylNm_<;Wn65KkY+qIYgI>ROmc?#dQIRPmkx{vJPGoMzks+5tvVRhbV1 zfxtf5KW>sDgb@Ul*`&b|0m09c$Bvgk@T`=jv}Uvgs!TDlnm`$+2&w_YZ7u=v=LDbQ z(gl~+GtMQ52VmhQJ6U)jU>!v}5wKYu58-`l1Ku*Lg&TkJE) z)v{1562|PpFasVokIUa4dU9V@K_s+TNfK2nwf=cS$SE)}R3MrbfzouAJ?Q91Dp!y} z93DOTs;g|ZS_wXS)|K}S2Q5oYaG;<;EpD2b)QKwTRgTt(joaaHQIzc?!4{E5LO_yT z&ZaWS8OM%K<-qs*^j#~IG07k@EEBT1Wyo{JM~*=r$M4hh^=qd#HsQuC@XT3weC(;Z zNw_~z!1Mj%8h4LH+8WmmuF~%c(dA~SqNY>wb4KUts-k2601Y>7GE+Cz3l_mCgVha5 zQ!G+JG)xwHS&~SbgUXP4-MXtt%V@UhDRlhU{+BOH$v!K5);TI z5Lb?{TSM}7lhTK2Ryj(?D|vOv!ynHbbnFJIRb+)qCBgQ_KA7m9BP$uf*C3q0Tfppj zi0ICdztid+HEFv;ENAB^zuuwr!fbKF4WQw9{)eacFC`+t@13;)(HRwS?Tq<9r&)`z zH_+1D^vy({KrdZE7{EEgtAXx(DyzX`cvjTeOxSc7Xu3V$2G4sbr@U`IB zyy{}?lWt>ZhwB?#-E9eOTAArBlWJRk_L6Eld)3UAzgP;Hk^~{9Xw>?GH6XUk4yqdX zsYb4n=Vqw8-R=5%Y3QKWR{bkeO&v=?DOyUemUd@A(ZoSsO78%ZjGYG2I<%y_6>bX# z^Uin%<_PDhG?Qkkt>L}#xp{u7@8Y`}#r6OiKoHR)= zW*#{cj9~q`Gh3{+H}2xG5=>&!R%t4w4ZG6`TSSK^@(eOQ**!Pt=UC~xe?38S1vb6A zLXEfp#i?jYuHrC0rT!y7Zm-JKI*_fk`=&RwGmTCZRtBT$h`%(}pwjw#yE=O1ttPue zrtTfJ)%F|3MxUoys^X`swAIAY!5feybTW(#`{$fvtyymG$71aI!$nrLzr2-);x0ldtapOQd{XObyPZn zf-0M=rD1_hx@M9|2pk1fX5;PE(L?av+^g=p?L`KZi%V;3UDmGceLD9>-TrFCZJ)E~ z>136vRYn}uK{P@?#9Jf`2E^<(bwQz#l{OiGI%xj@m=2HB;*#hjCPFhMj?a6Kud8v6 zcH8x3uH7Zln!Y>L*(SKjJW@S85xeif^%;FkBOfFTfOCV?Z&%-K*BGg0r-HHvr_M!F zDd73xOMQpGPL|ybf4p2SRMxs9QB`k)HT1}&JWm)@l?W;h<$QuMoad&EOQ!0r^ywXD z$cq9to*N?r-_M?|(6y;)Cxmu7B`j1W_t)>nAi9d4u7aX1?5P!140Uv=>H@|WP|8j` z9)0?4^(FaXAleQf9A75-5hfLO5sc&-8nQqo98^sBsuS$e!dZ-q7!!qz3D}c-W)&zTXsJp_W!(kubNb6--VLji}+( z*;z*Dl1zs6Zh8YMX6(f%$1ZS!Vh)r5aO_jU-nB+)Afp0YB@+e?eg)TD&L+DK4P7(nnR?mDD2UtJ;I_C1Hk?E z0R1MQ!G1E57! zK#+xsmwPhd^Hjv2KK}s6uVS9xxlf=}3~gUr@_(1ub%$61TF2J1iqw|^37Xd%eL|jq z7Dd`cGK_JKNBZ;98Eo5%eH43hn8HLCB%gEcdT?5b6%uVg(l`Z!%y55*#yC9~)l^ad zO*~`M+FC!DBO}kBzn+J(+QZJi5Zd;K0ZFHVGFXP%fN%%Cd~^|LD=66wJb{>GvacBD zI6v#2oRYSHuFw`XOpzPTPVaB$(Qi|3Z=|e#p;M3dq6&fUUA4St8xNsA*qw6#-5MJn@o0K8`jjcWvU0 z6?~NWjDURO@p~Nf{MFXbq5UH5!3WnMoP)z<2iowhxUHa`b?nZX=$*;XHcaBS#1No06$uN*s}{`V|^3}h~=n`d|$K{r_xhAs%q&X1c6&cP~Mpt zCk)7bpBckrr~NUnZI<h`pby1->y+YD7xWVP)-G}{GpUbV>_WMoUSvIV4$ha}O z0sS`lDq{jGl}(v~%D?kva-ls_on&}e)r6{c<&-`~qxkyqoAc79# z-|ZK4*9t&nNjKjZTzgaK2%~IES4NQ_r zE6Y&rB&{1UKD&(OKd0FEK6NJq39iu1PIO^-8c~w-l;lO=~hwVYRcM66~<9fS4jlV^775G6a?G@`d}dXPXv}c^_-}u4LCcBpJv;f zdv#~&dj*p9EYMc!Z`t)Rq4`QlZEnI`0>|qQf%e7;$@_HbNJ(=HPeK$yF|Ye!O(ieG zMQvkONi8jBbuUoU{L)6T!8A6yM-C2m6#_;FIQq8WdFvzGi-RO=!GfrL>T|mzInTK3 zY--yC`Ul}hw^Vlvm1S+)T)*P#Rq>3D~ zoPx}90O*j)N|(g@F$oDGYMAO`>C*Pt$6%iF?p`|1{l#owQ35D2T2^);&mZ`T2wq zci!t-WJ*9@GZn5V-Am`(NgD+m@N8b;ry z?Keuh&trsli*!{qbgA5(FEwOH^zljrw8>J^#U{xHRHz|_4hdbySuK6MxO}2g>W<7% z$t?u+E^oTZ$wL|{yMnB09YB!a?Lm@82mo~vw^itG*-@-iR(PdlLArf8>9%q1&j`l{ z_;on9SS_r-F!swn!5;N1Yl8pJcDfeyu-If_ob$(B0PWti(H0#UNqUdG{rm0S zpwci$HkhD#xvm;U=T=gxP>|Z_>6_K34+x2o@JXpd^=BgsM-?SV47T|x>LYXO#d5H< z9K?~hvqvmw$_P0e0nZ(2XV%gxib^xRv;~d0#qD^QX(UXVmE{7&C>s`MB$E2ru;3$P z_8(F9??y%18!a`@`%!T3z16iHp6w-)#WkNq-YxYNbdg*_)+w1PsG;vJ zSc0m14yaqr99K#`LjbRtYA!U;nEi5Hh^aw=faI41arJevG-q^s6KuBj#dR-gE;Sdf z*xC|dsI3})*(+)rgp$@8%XNHHw#TG&sEEfuGNT9jMtQ}T+Y|t}Ku5o_N-vfO>8O1j-UQ4ON=C#`Rv=(FBsKZFy39EU$k42%+g$Ej6)vYPEkZMQgqhnnX^H8jCC4VMdZXVj*YXX;#x`Q#tx(|xw#Ri`Upv0r9+=_JBhFEWlw zu&ce4XW)|M@rTRpq7rY zszDW0(5cw8*b1Rvc`fh9l1Eme!|S}1&N8yX$uxP|aKM5I_TcqN#XY&;xYmiRwm z+Ln2zo}METvcl6AD-tX~1OY}1FwZ#aa@sB0N4UC6QfaMYNHr~_uXx|d4aDw0H}lUV5*+6Y9T;H$`DAr48vatXl$9^WH$n*`}~ zS4o#MsO=SYR0m{U#E{L$esT1#M)8aqqXUp-&UEF`N43mfTmI2hX^zd-cKc9Y?lxP5 zb7`q+!)ZM?NWO#7LA^^;qcalEzv@s92p&B3e_gbmj_#&_Yc{^J!>DcY*9xd$tP{fY z^Ha>?Cpa-kB|^NBfO5knN$8i>8nZ^}@7mW6*J=y2RaRM1*aZJN1~Ap<FO3K zqGf2?2*Z2&s1z0@RwZliEwi|^b5UBYS88jz$x8ILKILhPow}0XpEne8K+>fw%e-#? z0EL3gGDp&`$rhudT{B)iEi|~KrXHukKh9Hl!ol&kePj75@8;!@cx{9GKdVteU zP1~9#yN{N9v=tF1$lS$%11hQXivYj_(;lAI({~msXVbb;t~-q->VxKN9m&!)^r+Ns z{{X(8G$;~gjY-DVV2lx%V;QkeL%LZ}(s3nH$|e=JSW?OF1AX?mk1G?PmrmtY;k;Je zv+d2_wRDtrX)bsDS0xn+iNUOC}vqoLw=L9#Tft2|J+ovsg-8%z{Gq-ErI)xdS#77GH&xmKUmRNcm>vR?FPy3|~ts;#HL=%tAT`Mk$r?c52n(bc|Jh0Qxc{Gg8Al!=HxR2>MEX*GRX!GFYj{SC1M0cW^!v)R{ z**b?$*2Pg`)wZ}J{i8~ev5~3O+z?`Y$0|VpoPm+lhhO(AS7=Lxo{oOfcLL{TxY2ro z^Q35&;|(K*Dq^V-Vo2Qi2WHj|xFm*Ekm)F{nzHe3)NxyDpt8xOOtsdHM_{S9-L2KF zD&`ehh|EO(?Uy03AYj45fX>zp&|aC&#wI3E>ZXFO(G33p^6GMu?`C4;X$LnEp)$gL zXKQFjGWUqiilmaoaJAW<-+uWeLjqh4JhDRR9C9)Bh=@jwl|>Jb7_b0mj-nmm>{f#A zuB+2}!nTH6Zm-hPLnIfwBc(M}eJo}1Nl_s~>P7^!YzI3GuZ(YOwd*g5m~@V~lSf{3 zW$qtZnkg-p8%6HjT@6~X+CWNbhh!ncAy?XRzup8BWob#Sdduf~lb|l~>Ww(m(KQa5 zs)i~#jYy@OO+`Gc$Iz80`F3VtKvKYN@>#+<0n>w5IdXxOF#xzWDtB1 z5ui1Xb*)|C7U!hbx^ygGv~0|<$y=C~G->uO>0J?3RGgB4A^Jc7x~~3eShYn?pTBmm zRz)2>z>l8OcghRAHB^h1dEhZhyMRSwwSu@O1wr80FkJ3dyEWUncKu7D>+}^e)Qe5e zP--fBO%&(U5&XqPYa@sX%Nszdec$Q|cngAlpLDfGe9BzX%0Y3Wlns;!1(}}2w$^y` z++Pn?RQ$pA8gp%YS|$2bDyY)5Ra>j6HY{yVHAF6vOw7(pC}0RU0J7~EE&26QT)R1= z>bsRy-TPIpWY#m&H7(9teMG*EUIGtY>ERffZLz8nbC3tP9aNfs<6A{tZ2ir%`{kTU*6PTG6vX8FiC#Z(u^PP`Oi_`07QhJF7ooG(A;J+TXJ`x~c7p zc%!%K4)99#)$p@CYw}6*g{6*9Pw3}n@gNO>o~$T;O!`cmI&{PWl%B~$hasJgfRd(T zeYit2Izfianx4=ge^&xH#+js^Y8x^wRUFpJpd>OuF$~LwAxf1ef-pzE2+j`zveSL3 z(>hwZ_kPgYQij`c)YZbe_dN_CeAJA;Sao?3R52T{2162k&sq0P{7`9*=2)sN+JasD6W0D4AOZ_zIAj6E*gOsvL0RXnZmS=G0+k*@K z(cz0ZvjPY8TVCyXMy_e(hRH`yTTHaF8c5=*q><80IT&OmNml2Bf^*MM-9OvAMw6nr zQs`|tZ?scZ*G*k4Gz%0EOFWKU%kFSVE_{G+59QWxpS>2nZDyvlYW-2AdsTY7LN1yv zzWsEO=&JoUmN$vYlw&fo77&~g26@IhN38xM>$DQuEIL!Tos!pduq8}%Haa>>#Ft6w zY3ai*+KP3SDyah`fx@Z~HtfGTFTt_P`xPf9SuH??jA zvz|=v@04v@zoSzKpsS~frV0LusNNr0BtQ=R!v#v?IVX;zb{!Q@rY*2r^sS1?YO~Tz zo|O$Ur7U6~+59LDS$8=H0G}D_C(qrhKDIh?hq`xYyE%1MN{d{Vy*ql2gHuq{M-xvR zQ~v1-Mh?f^*^kr(lcaRt5S_r2R9d@zqxH^=?)7a2vN3j&+1Z_2MO6%9SmPD4Nlyh- zQ^G@!-$bh!JcEP8iNB>-+^Rqdiu2s0C=SunW2657Ya1~S45OuZV&-Nn02VGBjqL9m zhUFwRGKzYHSt6(n9FWNvXxUv^b{z0>0ps7ElUuA+v<*ho&{`?&)NFzn5@uF0g>9rp zBf_u*FXF~C$5_u?cNa(9CZcZRcS5JKnvUIQxLYSm{?TfP#a&Ch@zC6du zB8{#cmm8NHuA}c)arK6)y<4;vxS`gzdu1&&Lav|T+f`Du6;DoBM0J(T78$f+l1SG_apfBZvS??k6csCx zSrf+*kfzyK0L*|MNmU^D_Z=HWY`RfQDynLzv4X!Z0AhavfY~acTP3sSBOW|;gS9Vn zdwF=fHl@C5&fs=WxpC4%H71b1c9v(krN*Dp-7Pe8IQ5cP$wWi7UO7%l*g%!&KI!*+ zxbRPcn_N$z$oJB{??8j&_vRQ}K3^7V4SmDGWka~QXfvjP3( z+`QoDk(^|7=q>4M6UqBP%(V#{%>%}fLmY~vGcHb4F*!S!;~qy`q|_bi?5>Zb(%QpL zT|O(cozm@7sx9pLM$4ntdT_OrtyKkOJg*>(M>5Cg$NvBn119W~lcv@l?!l$3x0}tg z;yYQ|uR2zus`W!?rO-6BLISM8X8DWK%C$j&gm+z%4Xy@8 zKqP~L2o7~n(rL;nnP;!KRMSFUqGLKo>Lx(SAVg4nagpTt>zH@niO$p7Et*%bnnwHa zfmL_Y+Jd1MROm~Vnfd#zbzJjG^fT1SFp8mJd08_Ws;G=+M%vBQ?SHpjG@YL7E~wI< z6WaF0a?=#aeS4pBG(%HR)6F6eodO%0%&w9s4Los_+R_y)2UpTRNF`BD66LAT>0V_! zfG$AUiQMYM_cXqhB7HiRh9nD+dm+Q$aNPJtcKE8PmghQMCyJstZeIu2T91>NK%N;I z=`4rT##A@fpy2RS^rPX2Ql*%7&8DTOtTnoB-*0KC=~_u6-yAzYNYgF#MxdN=^&It6 zcU!p{JGijxX!I49{SR(?W$^hvg3@}ISKR$sFLiOu@<~#XD>0D*C?2yh5-=nH2qp8i zdbvAmrt}wZ65N+_qqI#e^W>tacs^}mr1hkPI93W=Za~BlmIRD-(K=OzQew2`ifWiB z-rCwb0yOnKQqNlT)wD}cs7z4B78*o3 z4VOkBoMVh}(hB>fH8pe)G=foxYe{YT!K8ckzp z)jh)P{Z_k%E3`U3>#hF)X-1|-mUn0b)N-s*Dv&;%v49moTyov4d(+vT*IcWw*D7n4 zy_-hc)}Ft(G}^`^9x!GUtLX^hnoZ6|(1#>|TRaX+OZqb}5KOgBm=i57GXirg>IwV+ z8a{xl{Y0Urq!kj1a;aHDlulAXAc2)CQ@A#0*Wa>s#I;RyxIr15O&ug@52nrFuQ8Ux z9!?uSVmgY?eYQb)j*sW*rk$kpDq*HO%^5578O}h6J1|rSC6A8>8CSQuy4|SkeZ>Y5~;-5Y>-Z>c052}2G&-%CfFv zgp<2yT=kv1hw*D*?QXrjcK1PcI@7DQb!NA(gILdG?%mor>TdE#)M5xTNFG_<5IsZz zVngG0-NIDA(YhLs<|#mS16-D7a!3qIIJ*nN&gp_Ap%V)wDms@gHDJKE{Y~d+>Qt5( zsG14Bdg9EGv}sRKR$34lgAxH8V;p^f$5475S*ETR@uz8T5m!%FYl^9ADQP76LLNzD z5v^A-yq~*lpdhZppCAfnx0E_$cD})K<8Is-`M| zDA^4>bI8)w$;YbhR|f#v)c%lRbyGei(hg8ZXxJnT_?H@o-~>mX(=kdBm@rkw@4ni2 z@#JH#RaR?7olQxrsaasRtWMRJIc3BtxwEz0jO4ah08fu$h^?OMYrIv>Z=OL4);`Ny z)KtVjXw$Sv#(0Eo`&WOegK<~PXX(ZXq^)-j-&}iX+uEBI`rE6h^v`egTiLY?x+3*a zVUZ{Ril&~fcw|(L1$9+e>I+Fykd}F5l%AGKGac@?gu2Epqe{YY0YCi zmP?IQx|XVJRnXA2(kTVP-0zxdxXLlz9HVJc4*@Vmftyq#3*uCo-r50 zSH$ey(ARpU`|G278K*mYbyrDsjXs=;(F9ki8)P)IR#nXZ069Ct%$WLEej~IEy(mTZ@Jx;ohGfA7LF!6U6r34eI%2Nc^xOvn$x$s?ny0>Y8^XwyxHzD+b))r zua0Jd>rS8VH0!tx?-BI_Z5aVc#s^S;ioW?l*!>@;@AS95H%VPB^!gfd?PvMgtw9n~ zNJTXw`q2n~deF1g63G;3{{TrOV?6vT{8DP2NpW}hj=uKmO2x0PB2LUx%(V8JiSW#` z2$D=ZkxJ7i$8R8>#6*k%^{_Q!GPh zSK1iY9K3lL$0Mxw@s;r_UD))nTeOy^ zw5GAUSnJ-KNWHoWshy-~QkuSU`Dkh4+f#)DGs?(=I3uKg4PO=1^|U%uwZ9Ph!o_Is z)%JO1wp&_=QwxP8&hkr#%y*$JJNWCpKcqYdLK@ zMcK}wpSlzMr$VuXP%3LM79oK;*-xu$w%UlkHKw`Jb~=jNC9<^z+Q)Af8rm|g1Q5|f zJS#pNrovVib_k@Cv=7WnG@h=|TB_Sab){;AONAOqN;M6ZqLkuB3Q{JhiB?A4v=JF^ zEB^p6&KmgA__)>myVW*M+jdJ+(hXZYFiEJYEtGUOS*RqEVzAN2Pb5<2reHq{eihn6 zf^u%pg};b#tSmO}-FI(WX_}7yS{hZ9|SiINl8VdtL2`mmR9tmN?)Z`X7wbCa9!jhZomT~)zf;zNM2~^9Tv9VTXUg; zb+z8?^$=9XCWy+hm69=*2&`BsINEdLu4VjBd`tIstGxP`v!4%I?(0W#qphV&)p9{@ zo|@M@RMGsz5j?ccX`zgfB}CG*VT&SQougiSG5kbn?&VQbXe*wkmsjf^-$fO=w_Y}$ zs-~jVGQm$0R9qmGz_jVQNf-nYZ*>MhflpDeK7n*|4ysb+$wp(C2S_$AaoRR*G`09M zQaVrZ7_7==PThbZg|%Y;08t1v-+O6jZV}XI`!2B5Cr@f9t@@I~ZSD2aTAJjkfW17h zIfx@f7!_w33P{{WMsyPEts_ke+p3!91=?stg4nutwrSY3LT#!dg@cfU5)_@hgMu;F zBzv*(2j3pyccWJ5p2~Mx{{W;kK8?FvCckS6`if$-O4?zm?eSBrFL#Z^A}M8gmR;29&heeB za99qYVBG@f{UVjrAvxD9g6P>>>tY6n$9RoH(z%s*gxN})zhn>^*0BmY>)mZ*>(6nu z1UI@$`(JPM{e7*f<+LTOG&Rv`Dr!AQ39WWC%^XzG!|Gv~lt@^BSgzi#2sOo#t@n7| z*{K$`%MzN)bXsbureg7|h$B#+yd*dnT%6>22d*#QyT`9@S32!`P2CRl=x)X79Z6kF zq^YFtUD0nE>aJD_9%!5b;!`biGNbQyYvV&sg#0l&&Y*OA-CAHUj;uKw3ps;K*4-1_Sdt|o=4YrAz>Mg5#KwGNWi zRZ8P%S(Vk(b~h|%A9Hn9cPfH9G@_43_ZGV8=?15^(CEsS^+9G;KCuE61fv|gt_LRr zt{vLD(cRrucdG90v+n0~G_P%R#l|L@%R#R$P*dEcgp&=TniDo=m4bfycMX79n@vjnB z?bfh;AAYsdTxG7hQPNXKrT7ZCh1FVXT_0$Bv3I%C z!<2eU6*5uD`>^YZiK=6dkU++A4+H`T>xj1A;OZ;(q)zi{8tqkX?OukGn$v94((4NP zhrD`Gv~>2Uu{LXJok#Dcihneu~FM}3fV3c*BdsW z`G!d)tFDHiq&E1|&??NRLZMk1jEfS2zfXESDvoH9GPq@c27>q49kl0q&w8VVSgsxu;%o@F4h0eoO?$vEe(E!Fp1UQk@D zeYfqc>Ze?4_tt4us4q!VHB36P`1LuC-3)CwR-s2!OcJWWNIYcqzP=)LCZf@uj;Yqy ze%{!v*ZS%7-AJP4D5QGX8$r?AQo&6d=PH+)IsgmWC zrDY*Wv#1R$L1%V$eRP4sdSPEanqrg`3S5UEy`NmYobfslP*1aipuAr-q zmSmQ%QPVR`T~RNl)X~QzyO2kOVnNt_OeSz~2)=g`qEWi>7+H-@)Twv{8qfu#HbEYoVjU7$gp7!e7!dGbB2dLdDL#SD0n&ojd z5-LRAn3hPxGL;}W#s^&@_@B@gTi$N>)7s}sh}XG0Y38G}NerYAe+dM8bqlDWsG2w& z#ZfA_W@nKJGGP6&lbredk5ttpDOO|9U8JqMTXc z*rS>$yQ^`jmahyMyZW*qe6ul=)1)NuPa`8I&q!!{K_PyID;3bJ(;uuP{{YB-t|Iem zUBRbC`FiK{qRg=fT%v`~oDMws=;*AMda39kir-evImJ9{8y0c9JGcjo5PraQoF=5u zFc$v+?Tj<1X}I1}2> z1h52GRvE$Nijlzw>Rz(|r|mpo8l6{bnU`z1ZscC%-WVy`Hc$YpGI9y_!RV)_?90nO zbw!EQAyX8Mtgo&MWMxJu^Pf50fzO_l;mnp)&rjYSM?#UITEFc70QRF&$#1Djh+}tP z^Q2}t+EJ3NjiVXJ&qXb|b}_*aj5M_i2J=xE2*mrAVUHe9^Xn-y_IRo)O<{Ir9;C~C z)DkuZMhh%T50HJw)A{sjuVrE|7yX4&JzyJUE}@@|#FLgQyNn(&_UZKDBml}k_WtoU zUqhs+H<&^H0GIy&+KnwGD5ZjDd1<4k0b^MjwKklB4$@eHO9FiR^jxh=7t9u}wnPGF z)ROB6!TOIQc5#9H$m=uICuinrpF$lyBC9gfEP7`8nq>Aprv{{XxL;Afw?=~acL!6irjpWY=SqBQOYSg-p><>N}RqKOts@0LVY zMPkW#fPe_jbH5*ik2vYNIqcHXLd&Tv0i>66BVK9LvBBMpzvcRML&$qe2k)rtPzex_ z1YNngGQI}fmXf3qoOs9g`V|CywXUv~mZG0aX_c5w`!e&X`)yd3_M2pl3^fu*P+BE< zHbv@fA$JCD6!bFixnL8R{{Y($o`+Ed1D#LYJ#Xt4t;1L7+dXSq>a|U+D{7{R)J0w< ziZvh&(n}uXjBq~@9uHZ2;yXuES#Oq&Rc@!GrKi*}dN&BDHh#$-BBueu8G=c)ej{`36Jv!9a+;9VAT?)g_kD!Tycy12~v6` zj#I0xw8ND^k#wKxwvBG_ykea>f3MS5du9IGk;_?cs8#y9eXI!&%Ukh_Gg9hZJ*FjwJFQIbRaS+mX(%X- zMABm!C2}yi&p($;QEPn%BoWlftgTf0;UrSkEUPpu9DOn&OrvCY{EtnSDgmymt{19H zIHJ}z8!XnXTig4!(o1x<=^Aq+b(FIJ#nnkU4Z&6)QOl~VTX=nm!$X53sPsDPegyB^3fT@^Lv8~$u*-f{9VS-yr z+-kKI<4RUrwZwNTwJe6J*L8_LQ5rcB>FS}I4Y0CCRlqCska;7f*z`W8j*T?+RjxWH z(j|_vx*NQ5QUbCGW1SQXnQ^odJ+suBz8c$0*sXQ+mdh5e74yfYyQyM`Qc+&gWkLHc z=}w?35ZP3jam1fcAZ`;IHlka(x!NvP>Wc=jwIoLQr>fTv7Elp9B%HiXtQZlV2=Xv` zwVhQmok0RmW8l$r~0( zl@tTLoPT!=ZLnq5%%PSgivoVEZ^H3Aqm@{hqm%H@-~lfE&#OM#M?CMk{{U1&taWwW zFBf>OI)>>rWo=QpN@n#Wa?VSWxSa4w^NxCkYCGLs+KMNrca~_~zk4H=Vn`V|CnWLJ zv9CLEB6nY1=^Gv5-+r3Ms4FQ_ww{)FBdBQVT_0-5n~>nK)=NowFfKNCq5P}Hls zC}O`_j!^sa&=xi6x#zc4%sd z!o^ZZ`XszEI za=-@as-djZItNhHL03y9B}F{Z!>DXk-&H+*C}74ZK**9dT$FK~WHO$!S^B`~?5t`y zh~?8#xyv&JmNonL`{fdC3XK&7{?}I<(^Mv)qen^8Y>Mx1yFk$pd}Oc$ew|2rO)EB> zxkuzJ>whDUs+u4F05ho_V#OAts)*u87r1GopI|R6RM(m5qB1rCc35Rt_qItG&rxpC zC={34O~FhRl&9&Kal4K@6dGX0j#@$8$RDv?bD1L z{YEAv{r>>J&^6hWS4zwYZ%X$r^3Cjh7SFf*r{CMCh*$prPzPooMuxD^6VfSaoF8v)mHIK2k-v1%91Xz-1accb$B)aX-I~*FY6?RY4H!dD z9I?8RI4PVSefMYh^s;Le6vhy3)Uhxm$t-2bU~}}Js~^*>eAEuHLHO)sbNKsGYL!ZLy&-(uWuU~pB5zI(QQ;@6&gYVBpCZ3@%6gHYtUO;lL{ABZh8y|f1 zT>2{7Np+)jBxiD5CIEs*_jlv?annp4o+TuwXgXAR6Y>4f8BPvz7=lMd{G^IO zS9Zey!C(u)=bkwoH@=LwDP!nWf&Jnx)fngh0K#N>=|A>T(502)xX8_nh_1C6@(w^U z9y(T*2r%jj3ODtKF-a+q%NYd_W79OC=l=kb{XMbKPZdJNAlU#&$R3}{Einy>mP@nY$Bgsi2R=UCDJVLhNbo68 z1<%p}GQ)t&O->n~chyR{KKUGR_vnU#omG(1QoiGtR-{f&J^1{(OuBa5tUVKZI}Tl^ zy-MVa3=9+bdz0s-u~1UR$Ua)`QQteiXc5lUT=Fr&0QmPkAy5f%1mvF4hS!0A6m*oK zRFI)*Km-%|ap$kPc9xMMjI31mgTD`#xQ0=I&lvOL-|xp?bmA8*jUc6|C=8;n2&5K@ z3G*!s-jfFW3g1ZmKp&qe*M4n1)zj7XlKFn@2XktxB8D#9cT-SDSEjF0G`kin zZS=&el1lB0wIXMEb|7vt!BMYumuqkH=+66S`<9EpQ_RWp>r1+dV5}F_iQ@$&jGW>~ z%c;h5gVxEsTCF!|>MYlacC^*g!eWz5YM|27w&Ata9f%R~0NQ!L@_MRn`aw;PR~t}CT1+$BvE{-Tlwe2n9R;Nz}jcRkg$6xjwzBd0;Qk8(?Y z`CV#T?`kb}C#kvi=TP0dZGBlIM$kIic`7I_SxhvP_gK;>a9?m(rbTctH#d`!HH?*0 zT!5=6CR$2!D#qDR<|QqUu3wxi>r#d@d%(yoLg6J^>yMI(5XVsuStnbFg_m8e_{+ zZ)jN@X%KlS+DF7$ml1!%2hM+wzedo^%QDCrmO&@cF_Ui6eb3l*iK?n2j!H8lq;A3G zh)IQJ1C0Ig&z^@w@p`c}LQ5nfPu`_F0VY2z@zRZ82?p`HyO*sOR`&BmP^ASezMD;H zT6k^7AiJb_CB%}mAF216V}O4M+B(a16!J7@Xv?#1E1z$Eu1!a8mfzdU4RqH30FpNw zJ)Pj0@?N1BRyOAQ5LJh_;p(JODmXii^MD8I{{XK~0#zq7+AD@ZHTlK$d9Ap|@bTN- zIc>Awq_t_?cYnKIuM~QAwdi51uY#2+#YI|Eigj?XNUE(VZb1J4m#nijMN|`)joloR zxzO|0=F=LAYF^e{?3K-4boJ)pK~ZT+x;Oc1nPEV#@VO>82`8$B)BDInatIk8SIZSO z>Yi$7qojMq6Fw&5Uyw7|1ZQrCoXSr6(ku1)`7$kw? zA8Lg?D)dwX8pRHMIZxz+l zQN+ru*6JmZ$s;}pBirrP!T3O-(K>Uz_KGMi+Rs}_t9yHPqo}qGDNk1dQp}M%ys5Zh z2c!Wl$JReiv7Iyum(e=1fJb2HFX6N`g3=i{nivLs*`s`S58_8rX}e~vtF`vZ3-!8& z+U;n$UA4t5f3_&3NdT>ejboBmrvf(19iZ-y2kISUjSZ~+6*Uc#y64H_pJPdWZ_2!E0W~QdpmkmMLOWn%(aMIFIN2u!b z@dAxgq!c-m=s8$c{ajyn1KqnMTqiY6+VD7b#ny8`wvuyJ7J<86sx(yOmJQYJQz z9kh)Z+79(k+#9{4O?JmX>PydVthVTAYP*qeu39lg9CWf6LsCkUX#$=3SW$?nq5@gly4 zRLn5To&g*fH_|d)<)}3#g6@r;zqGx%tJQ+dZmiIEj@fp!(%k)Yy3?&nI>7Qff4j+@ z%Z0*8kTM5ZO66w0SfqwK)}7Qg6IQHfKzkyGYVzAY1^C8)QFi$W%U;YRPD*Z9z69Q*0eKEnLQmoFB zGJpnvF}T#&z4&MvGhU#w+$5?RgH4F3wFC-9L<<`1xFOC_!Q*!rAAi@N)7Dw_rJiq? zftEzfR~u~0``TH);Cpl7x|zusr}Y&+rhIa9$56YyhNf$bcgqye+bAdV~hiiNf|jA>4YpS08eOWe#h+?%1Y0OArlKMe5&Edo*ee>hPn#cs|8&(j{fE7 zstFcL(~*Z9fefUa1_uK?9DVwgT)xC&3^n!|_)vc`U z1dtFF1Xp`}`B|vv`+#{EAdug{{klbLu9r{LN2m1-N<1=1KVjadf2MWtB9Na9GCZH@ z&rK4gOwNlfI*+*fkF*r&bJaM^mD!q|M;6?D$J!&R_bWBbBh)f#NS7ANnn-?H{{T!d zO+3JOmx0OT`~G%)lJ!Y_qo|$*nknHTD}}Z}wrV*>G8hq(3Cf6OOl|rC%}IOKmi;MB zuc<0&Yv^vj8ua>gwB0;+g5JF~uu!|fGyK0T8!>d5)Ut=;*mfEwPicTK2Z4RIzVT<# zMB?;Q!c?=>fNhwO%Fk~0jQgy+@2j5YthBz5*L}~Iw^lt>cc7@#^%~CN*Ql*&Uq8uL z!932j4H$`)j8Di65bzhRQQ3;R9Z}laJEpX@YRGi{nv&yJueBR@U%4jdd$3d5#YGj~ z)eStY6!Se)lgBJ7`w&7fGErBaw@VhY)OE0GD?K%e*K@W>agyJ0hf|xaW!5Tq<*1rT zYEcAoL}OBSN{D1Fk_K=$b-zMsT7QO}M`FKK+_c0uO(SH~w`$7X``r?T-F%+KRd9~k zNULfz@l!PmiJlge!z8oE0A^)JHqt05Dyjs@fEL+-)0UR~xW=;%tgn{yRBT3u_tY`J z3pToIu06Z=@48n@W}nj<$GCc~rps!yM+TeKRxLwwrm3i91s1BQqN?9ly*5W6W4%gl z8EwpW2C~xa{=r{d>n#(h^ffh)w(nJ3vR8KozWHI+#<~i4E2)yUp{UlGw;pdZR(V zYAn!QTT1C2BR$Wz9mRcTtS)seb*!$T`HC8=U1c0eBMeHw%OgaI7Gv62j-<=ODW=R+ z*{NbT0sOq7`dazulQAIf zg$&CwP`x!2k#DD%pk2s80J6Cl>uL9n{bKF5jj(HLK9O$E>Us@hrrWgIi%j-2P*`d- z%}kc*r@K?#>MpU0N}5`Vg_<9if!r8aZZeQubHA}Y(_Y_q7eZYxF~<$7PU{G(Z91Cs zrfyYH*k5rH%COUwl1L;%$kB|I-@QiV>i6&8d~`Oy?JWkC)AhPOmhVq`wJX~6CvJ6Q z%_X+eOIEhnB(J@sKzeOkRIJE_*vXP`TPY%fNF_=P*V5LwZyiV2Lv*z&r;@OxcFu*I zhqHsX+VGRN`kS~N&+okr7Q4|F{_*Qu?d05Rh3iJaaHo0?NfM?;q=s5rc`4SME5zZ{ zB%4SKSgF$g029DQcGmjIs>)xY5FU+p7iP9r?OU0S1g8l z=%Zzme$|gS+9M=y!Cjc{L>7$Uq(#ja~Re_dv*x7;f}Nlhz!-D{ef zcaDlYZH_jLi8*2PgqKMr1g)7*wa0&V5dvyVx;3TUWb0x>k)zzcrthyPx&9IjW}xn{ zxzcuy+pMIZfuZiL4Nq_AZi^IiZ-$!d0IPKLYF4yEB+*9Ot$x1U3XQXH0^A* z-BBGHR6}00_X*&dVHG5knd#8_Y-Zi`k5G!=;v)5MviB>xnkPa2)zZ3N$*QeaO;Opn z?KawLU3{=v>5@CtRF?hl%TGLEW@O%QOm6BLH4)MFKI~YkJ9R~-HI}gM*KDsg&2MwP zo0nrNWwog0MJ=%^~rD}NECr}zPA0!gk5uWb%UWd5d#JKk(O2w$@uQJq9 z)6?9puWh1wnhIJtsp%z}7;5BLr}U%rofMelP#Xg~dT?QqDdY*#(#kxo!JoT$Nwvmh z3S@%KtEnu_rn+6Y@!=gF_)LD}p4-*jY*crPKW_DIptoGKJL&385hYD3(q5jH^F-@+ znh9lwvE+uCCuVnvkSZu87ED*%?P+zmYOQ5@vBP(ww&|U5sAIqOlJi+lQ3jk@u2U^U z3bdrdH9I;0UNFKo00tm#W%@V1`XMPhLs_aUz2?)0w6I-`bbY3)v(sB@O!kT1imLCKQy3QAj1a&i5TncDZZY)~wOC+o#T4uNAjnPFsyVTG11 zHC2u4wSJqavcqLMdha^a)KkZtt+BEJ4eH3x1j+#1#Qt4b7Vi7oYGKx%@3QAAR7=m{CgMKiWjbbW768``z>Y;IM z?8>&H+~c(U$GmG>AH#mH7wfghxw@ZDcBbd0HScd9yB6xYT55EzrkcL#R3U*UmgPYW zR20$#eX6XZJEY!ukz&+WO(%Y|Y7HlPB%?7=t$an=3Y&yA{%;ptnJl^w6XQcqD~TOqww_imO$d!&-8nrhUqrh?59mZ=Z{ zB$2RVf#4QXi*#l2wBD&&n~sue=7X%P3#ha#x~bu7od?uXFPU0qDI)zCm>_OABRK(6 zhthQ&}+GFRrIv5`ela!@_5Q(5#qRX1(^7yI33(OQf80(P+6|_$~Yx3Ff{f$XyPy#T3G5;%PC{Hu*M-hu(#_=wSC7)Q+9^^-K{xx zu+~Xkp>+M;RQDRgZ;FZ~ zp;FS*$t;T_M>?`YByqV-pplrnjs3E*>76~=*X$Op?WL04`$qRIqh4PxS81y2D%v=q zxkdit1a$I7l+PE?Fzdq%@>;uD-5&4&u|Q70cCOc~Y*r=Ibg!v2%(PZ&`xw4k>Z~;q zOB{x_6BIy5Fpcy-(YS`lAnpayN$c{B0S5YpW+U$Z0OTq$NmDUVQ#n8sw`K3AEiYy^ zBfP%D_``~t!>#*kqigFct(KU(ds3PcR_bj@dAZijUk%c&YGAsx%M(o-JAo9%I9JGK zk6>57g8etCuN7Uuhge=O6gqOz47wuirERvm*{QfC!r4(-Fp{R%BDFkmQ@|PuhC)^6 z3mc=$7&w2q*Ix4XcHf~BP-!h!U2)SIW$jhkp7Tqn?)A6Hu!c&9lCa6?f&#at9uPA* z{`VG_YCE&>7ux%_r_|bKwySc~nw~o)4P|ZLOKOjkhLYJxl(5DrDXSof~KZDIHI{JF6^qF579HY1~hk zt)TdV)Tcq!YWbMvSD5RU90G5!bAhuju>fuJwO% zbzOgLt~QF^Q+cEi)JqiHCv-*S3UFAhxiSpybqz&K)|xX64C`U4 zXWJa5$nbNLa=@IN#Gi@?}u*Wq0)ApLj^5mI#tkB z!%-Qkri}(=ln@hnZ~<+jo&NyYe*Px6tk!br%h1#p1gx5&s`MFkm1-#^p_WEhoR(sa z`F16X<&JaJpA^3mQ}#Nmu`Syts?j1OrmMKip(RwWqb+wzyT*(pFd9bw043 zzP2<&3rO=@4355@0Y+ymryd)wv{qvi zS8;1KZ9PxXLs2B5W0~P;7{gvl~JlcNU1EbW4 zntjamA&4ta847p+ap$W(T|4nVa<5*FZi@Tq{gTymoZA1l2jBdq6o~V1^sxwkymIvL0zUa z7OvD*IVz~{_f1J-(x0^~cE~2VQd_I3E>qS=L%lH+^8B<>hFow+@K0Sq)p|DF55pds z(bm4v_nS(^cF|E-uDa7ySoGy3{?n%|w{){8+)+kI_ppoL(!+VmZ5JtZAE{oD$a#Z+=bw#&eqxp47pL8&? ztO&BAmSPEKJ3-|2nMMgvNSB;u3e0%32Bl}}2Rm5GMSB!&PM%g4esZ^QR@ zDf=(*_f@WIZdU4qpwd<#+J5<{VWWAaOE4GxfM^S9EU8konC3V2;Q!+$V1TdA$zI*|+P&-GlD6!&J|!TUt@vwMn=Oi(e}H zp-E9u^AO0v8~zIdS7*{N02sgnt2rvCl}sc|T3H0!%r_^0OGdhv7p9X;DXM3ngeZ}( zWad%SfW+p#?7#po8$;nXIrMD$z4oTt-AzGU@mnr^$nP~plJN}nv?b_m_4JVM ziD0Ro7}+3X^&^fl>l}ppz9Xh_$RRAb99?*C3VQXCd%WAkQ^?bUr;WS;{k9?PTsg@_MmPMux z(yVEP$vX>WK*oAcSJ)2i)apvDeN)`}Hq`ezlND~DpS-fqUn!Ci3$x6WtkHoG2zdk! zo|#dHU)LZDq?u8^wySH60WA2I;YIB2bE?js}T~p>j5HEcK1|Wbgyoo zQESfpYb`-vN^jQ`Gu-t2RWnS@NTtU&Sz~SWRV)|KA;Ahk0$FD57kKP8jXP$t_g>X+ zwrM-Om#s5P2X<=}?X~j;X{Dzoomfarj-`e&WIXb6mHr#Mi%WXD>Ug`GWuw$rrmK?a zdQRnD4RvGGw4$Mmu+r{hE?BVL$dLa42P!J?z=X>)0RUVzi?+OU)4;qpQ_{R5Z7L+H zco`n{4oTL;00xb6cP2U~*lyQZ^k>4pqO?{(wbfec%``V1Mey-?yvuUB+e`^~H+wAb*lm`-h)Sz{w##mc*=(V=cV|^aO>Lta)JN$gYN~)JI~8$; zQS3T~Mevz(j*3bq?k0>|b;dpS7~;F?Ng-ntiX-*^0C1s*b{GdF9)8^%>dZP|JzT&* z0lZ~RvX2gmyHKvZy+>33~PFrKt8b9Ilw=!F< zS1XNOJgm2=nynUEyOD@`lUGzgCrWBaM)=842H~Ep8ve?6D!A7hkHkE6@-?CDbp^FH ztf(^D@#(ZhN7T?^@#&GbC&#}~*?ttwEOAgv-2EW5=H&#Y-A_k+ZH%MosS%j~-lrgE zX&ylydTwQI9;NlAZY&0^VoT|$+9TC;&jPJLUtW=x!G(Z48NqF%Z+A0HR;OXP}w(431S8Dl0c$%`Q#?@6~SbHB)@V|e#+v{#u z{_0#SEw_nQqT};=Pf^xWRUwg2tvgLpk$xnM?kvZJ=Z=t2d?eGoeG#*FELK*~NcC2T z^yYxPRM$k{DQO{!o~4=~KAp_04+GCfHm?m8sU(*y)+dgEwQE>t8V0YW*d0oedgdSo z3}1VT0_ED;4I^NDQczv>-)%JH`m0@0XwKMZi>(@8sO}#OS1mO>_0d68OIl^P%F{;E zZjPQf;)t&O`R+{o1fUS=>P6f;wo{QO>MdT$KXt zl(=94HxBz>YY1BImti%tgv3lP02`7UzT)=1;??h#t-M`(Q>J@`@gdn5J9~1ocS5d@ zwSBF&TB)gHuebimgE3ZB3`&%Sxn`(z3Wia!LXZJ44~I$nxh}pv>7<&;s=J-3>@~mH zO%+>ow$niNm3U*8wzcQa?Avr?M+6YXvRPP+ak%uxp9wl5?OzQY9=_E&n(|;U+o`F0 zQnghtC_>E|BULjbYM_(PAFq|yKZCt1V00I&_OG=id@?*qf9%{eQcRJz2(imH;yh;@ z0>kgos}Q3=RZ0}BpzD;|OABsA{kt`NGQz4q-o(WOf&!EVeerGlPWLlcX=_(% zHGg`vU6A}pO;4%QNm5Z%TdOQudWNR84J^gsV)a!Nl=m}0mBJCXe5W~YC&mX(6kiIRv9773q5j@oDHg8cAo<&lkhW4% z!HHRYNgoe|&e90al6s9J5v3JkViu=SwT<6FrH9?jN1fB05~{f~^Qp-Vdy*N3VBcro zck{np=&YpF8cf_C(|Y)(PT$)!zN^2|U#MEwrK?h=c^=>M+|&8jtUC zQFfQRde^fzx^BvLBe+^CQTGp8R@F(|EorN-!0B6k&*Y{FO-DN)-!u#hJyG53PKt`G zq>il3U+`I>G-WLHHM++AS5HrS{gW+4mrv1@f~{hXW>()yrM`(3gDKiizf88jguN$n zNm|)W-rYe%vP7Dy!KP>oKB^7DGL(*lox|y72cAgJM4GRMtSIf3+?E8Bzm@pJncXU; zrp0nBEKk*#=I=R1jCP0@e|yyzal4Ck?S_NYHYz)X`kv9IyS3fx?eZEZwRKgxog$V) zDB6%)7D$?7u~*k)kh@p{`K7y^t-F7sbk>~seD7aw^w(@Eb%jNfQR*B1vZ8|Ta;|wH zddurlPNk?QRbgmgF^%O4voF@Cr-Sh6+Ddt`aGSfAGf6aX)Y+yKG}1`oMMF=vDpM$C z!AuM{)y4?xME67C58?j+O6coF+Sj4AzKE;2)>4~)?2T7nQ&B3tA(m(=MZsi>l&psX zZ`9i|2>O*}P|lMwhHXevhFx4;&yPC|t>W!BN@(lXQHV&Gf06-H5*gk0zLpL=$c$z2 z2i+Yz-Hz_-9TBB(y}#}5g{{{0wc4*&PpCd>Jx5ap_BR@ekVu{sjxe;;vHdyNF_XrD z?4Grzrqa4Pmcj9X+WyscYR#!s)98Imts{?CY89ur$y4gpG_tGOqOF=DtqdqsQ%Jz& zn5bsAd@g8P^4yAvn?jXiLNX=raWa)|c^A)Ku`k@$ZX<}>%{HPhkmwKm$hZIw1Y z=+oY*QK6oevsI)o6uUqh!KK13S$t#>gPx#M)=|rnk^;h2q03@<-u$Ay9XrD5XQsVK zSxU4&C{aAXzJxai5t8**wz2n1xEiBXcNbCGEm~Jk)YY{Hm(ov_s({qC+jX_pB;sSt zm27~Vmm`slmudKb)6~hN?=_ztEunPXheBKBr0jNs?Bmq_%67MiMXhT-UO`eK+^9@} z+!4F?WGja|m%r&2Al12(2WGT4DTrds~J4nYJBGEq# z-MrRP&p~U`RsR4zNek3e3*UCEkA={uiW zRRoZ_hmKg?Kn@5EjNlv|JQFCQ_*m_;Y1(~L9+%QjZ<|idcBP|k@?B=TRZ_yrv&bpe zYA>YnBEHsOrPWCUfJHSSbn|4(l%_~77+S;|xVhFErRhAASw2j;GczC(w6W}Eu_tg` zo-X=E0UgNF`hx!eL8>(kJrxy?M^@YI{j}|DR@%{Qr2&T8y2BFhk~qSNCMradx!O4E zU3X8reXq9IJNexunJdT z588jQJ+0KYBSC7>G$2z_Jym5@{{UZHDe0-{%@~XN)^WHmSqeKa>i80o^#}2Fl*#X!-T;pSrkZnH!#lkyPo)m zMbipY4~Ug1U0E#mZNpgKUBM39v|~=gU#yxtxIMDebJ4|g*H;eaTdkTl$A6%yg41P5 zXNsM!wQ{b*E2)}KN)%u+yO`sx^f5?HOB!K~Hv?Rmdl^@o0Sq1`fSTa`sc9)!1grcqm2mLfTn z?~*t+g@=X!5D!vnYw70UrD`tZ>)t$>y<y z^u7GjFjdvP+q@c{^HnwG<#e_h=yZ*~dMSjp6Nu(e_0q=17}1z4LO@P&wCVolc7s!B z9?#ckiv3TjXesX6&e0B{y=q9sP3v6I#b_c5YD$%TY&ABZqNS(Q0)2blJwIC{S6xYWNfu9(x79DFC?$X_Lt$4Xvb{$&wz$7ku+SPx z?|jtPxoO&hzUljNqUR+5c^l?v=&C1`@Y2Zns;UGTT$Kz*RmrRVBP>clImzSM0n>JF zMYp};ii;JORVi{7m34rU4rWM7k^`tdx{#ji*Dn%3oTKgzq_lRIM_zR9lC|0_az%f< zJ>Hsz2q|gOSthpIB$1Rz@?#RrTQWZ5kf4!bLEHTSK~G6T9*5INAW*2&SrTbxAyomE zLNdn#cP9j&&#b-M!`q8}HSbUNF8OuQ6*AnVrl_n=-YxPusM?Z5Xr~2)w5BPeR#u1- z!ejOatM@}+WVXX>&^OsqTm2O(%VE?Mb*7?&Qrd$sTBux&#ndTMgyd|&!BRS{#^~nL zASOXowdc>eG2JYn#3*S~GL>Wjt0+2$_ZGQ4UuI^!N+Z)cI+f}Y4I8B2WkGpZ*x(pq z6^i7q;Tw4Ue?EyidrfY5zp^@HGl3A5biFe;BLK;k z1djoD$4M@>%k=bGnzK(uU0p4n!qqjEbnBI&fXcCYxaYx_!2bZ0p9|J-E~;T<5=%a( zVCTx`!Z5f^RxOHGBAF8uRI&iM^RYW$_R+ge_WQUR{(&_IZ2liDnxjlTRYfg6sGhdN zK^4TqEQuq<6yPyk!_(YU1G6K~Lex4NRrdDX6>oIAS*3erYpSXcS?jKKmO7}bqye19 z8Xu@IP&jWOAGci}_#Zo%oOEt17-mXA)i%1-pFBEcYwaFLNn4Td3z1ZSSB8wRTH zR;}(1o9*9nG(Lx*Nv)CU3Oc5_L2(s|+ku9XDbgrqs6{`au1+Yi``duZ`PUF1);3t7>R2cKStrxh8vw! zMuX{M$^)dBjy;DUO+r!67Ws~n8`h_L( zMA{j33vg5c-*EBsCNW7@LyS(RN|o7Kk{@sh5#&T#dX z^XQr@qRUv+@K#AX)0PuJkMzRJ^x%x(agK5C)6G33$u(3|=w0ezjZ{;{(gxlJ6a~vZ zSa1iDzn4=@J=)zv9J1VPS`ShOyTdG1j+$b-_s4;_gC298%p1oYN>b*kT8e^?4jv{h zuzVX3#O8Jqr7_va=KLZc!oEe{8`J{?s?6#)C_-?=pRmBs+;tR{th$F!T&ay>->ua( zQd7@wsDQ}eC2owamDg6u9!r*onom#&rXcQ? ziJ8i}@r5}YAfW)A~L^%acImi}8 zeGkft>U!EiBsDb61ziPLDU~OcbRZu-K^SKkXT6VyU)5)i-Sg zRO$Z!!)S`Sm#5x{&lc^abH?lwuBVy&ODu_&Q`qr7^&9Pdab{$UNc<&G%P?qp+fE(Z z?R|1@cl4|29^l=hju{}g-rcU2z ztQxKwS5Xz#(LGFJdP&ulgGR&h$UKA9z23~asC}|@Z&nC3RH=Mw2(&^x8v43 z?Hl4f8J0=Ryo471;cs1gjBSlQHA;6X-&0W~T}4etYvoyIsj6p|M25Yoz-Q0bh~iY| z*blc>eMVY1FiK-~@a_o&cqfms>X^_s7;bvoL)~WdBU|o(zOjwp3A^@{a|QA_`gk9Z z>hNgQ%w>)hlpVW(418dpW1hL*Bo{8A1F(;n`c*A*aUhfZqtKtkH&#>9UhP$s7fNrN zp{kTeRU5>txMEw3=WB3qz;TYMU0D^<*(Ii%Qr|9BHp?X)H4cRCD#jkKPeBZOAfc@E z&>87KR6tKE2Lz0-R|!(F)x^t{^$9U6-apGl>T3E-`#nk1HzdP21@&NyW% zau{cvdFg1Xl}fvZPY(Vb9tIl0F^SYiBJV8i_rJ3h&F5PsHT$=fS1UT(wT6<{wi~L@ z(!0-Zx+HZ8D%Vp=2@e#ksy2i4{o}3!AoTR(rL%2VwDzoBB_ke z0yxVwEF+NY&JIE0y!FBlhmOnZ7S=Zl_harFb}cQgbrqu3VV3cBo|9HVZ(5q#OPfO) z{KSbQlGHFtWstFy1rl%L$7o+YQ0)5KMS2i@tx86^2)+yQ~rDSy?~`htX|d{oJ{ zUsN?ZxFLWb4p{xqTbtsyx1GAv{{Rpdn{}&3R@y0U+IoWaZPnKaUY?=rAWDfQf;TBs z2ok)Jv~!|5vN77KKU#W&L0o}(w$EDW!g+z1ic3`In zSo7oGucxp_E4;5!fC*$xzIo}wl8jT*v?4?)ETR7Z0Ne;%dGm~WXWOaCO2Ijc#s2_c zq!1yd?QVN@p2d3_hR0kla#hDQl7{aa*IQZ%-aJ&(hTj-<3nDR4tg;Lf)Yr8Xu<8v( zEuNyX@ks^B&0kC;v&Pa%yXD!{ULZl5BFLfR@ZE6&%NLs$%CS2N)e%{f5&z zTJ_zX38(cv@~cl+?zg5|tL+x2rL)UK@zc#TQYBqjFvi}bXcu__i3_-AJ$W*wOa%bk z#0*$Caq0?4#AX-hRyM4+;hLo{$ozMm}vfLAI=>e<&c)~a1!+&_n_ z(v441r#ppJNv1E-(X2NLsl9bURY=ic1yr$Z62RZNs9+ft9CK6HtTj4p-7K@uOr>vSsMje7#|&E>t?b5RhApXa`*R+QCl;q1Sm4nZ^MW9 zhi&YY^)gg0=1Zf8k0(jgT^;TBSHYemr#R zSy3o86>A=3HsMr2Mg)UHWveG3{m>qe=p|USuW>13-iVbm7}SiMC3K22pMTzY{Q9Vv zqN+KAm)93zXR$a*4mppgREm^A!f2s%ZDFtL}wYthCk1s_XL-+TBV8ps4w^# zAdniKLO91fpy_NoQ@Qt5JGRv5h}pqzM#_l4p9}qZ_qh?D?BS>gKXrMhZQK*}B*XZ5 z>6vN@tduzqq(r1BMm0{W+$ZT9vrpZrCbL>3dz~ug-4NO7My!}X3h;flpKorT#m>;I zJxj$LW&V;Rs8z=tWM|Li)Kfv&;;qp-ZmisD)#|LY@&#IWz*aGUN7SEC^U2SirKx4~ zOkmwEgAwEqDZyW`&!T(}=bo}vXep>#d7pYm*K|rksZgMG18zb-H|;eNxHrlr$QX=N zwdTcT09^Elr?wWT@K^;x|R7qy0bSfsTk{I_62Lwhj z&+zI-^V_4hE#6I0Big+aGTf=IQK~xRkj2n)dG_b>>4ixpj#GbpB5;_2XE0h`G|3-L z#+jr!5-+JJBgo_x_WgP$O8qP%3}#G)%CKphB~(U$+LHHqs)A4% z?CfM!aKz_&u0hA?jyjs?F5qas;?mTnm(&-^YU*V{RZCFD8k9rHU|Vo?6Btj)41nwT$_vz|NI&-+Qh6R3xCeJ6pB;VDgG){~vZQH-AS;2$@_9Z# zF23p12_^GG(vdKOl`r7&o)&^8CTbdy8#0#K8vwBX01l5z>Y8WST~5xP7E#D2`F@A^ z^g*GG{=0PMCI=;bf$2hAsww`9jUT9kZ|@3Zasl__$6re1vz=p+e9o76RTT{-U+*ZU zT6%#dLJSUnPtWrE^y39xeHbZQPHP|}0lzsT#~mY%+eKCB&1;w>&%+>-2R!?E9{&K( zrwFbUv}8kHPL)uW+(TdzGIP&A=yWc>m_mmkocBbE+iSJnvlT5>Jw0*YQ&zA*atA9R zBcI5Qr54IvL2dMHd5-4wRVar{-JmLFB!UbQ76I}$kD-D5k5O7m3w7bZp{Ph@X%w1D zxddg7eyx%oJn@WYpBxUSw!5YJ+NRq*JszU9EN&M{>ailTWih%37-f9z0IQ6UGCCxq zFehKHzb^O^%Ix}H99#A!+y4M_N{wT>Q^N4oST%)fnBtfzIHaEn(Hts;jmh$V5a~T- zHAbD93RrE@TrIVh_?n{0tSMraIhd{_T6ve~kwYQFDOUhv9Y{V`N@}>xy3F%i^#h+u zO)cCym?4TCftZS0gUBRaPZ7wxo;|VCERT27Xf2!C=})l1CX&@u=`+T=xoT-Zz)!0x zV_?HMDnT6q$Uavif!E)+hO;20^yRnj49`6k;Cz)kifNy0aa!*rf4dxmh^Ar;Y6v4? zBw+NCp{nhXni_{`=@2bMmRsZst)18=7UVJKISrmVGDxf!$fAnTJw?8@IKoL~zDv6g z#_vLJAQo=~XQrwD0Bu>E(_P?_q6oqUwp`*WammWJ1dl!sxa;3K7!5rA`*@H+N;12C z@Xf1ftrsg*L_ESN?au!I+5JN_o|+x3#6ox>NjrcC-1+N~y8RJ#HR3c_-GzD=x&t^Sx_(cWG5U9;2yaxt)`A!{p{lmw<$8gv$$sm z^zqXReyj(H)H4=A1pD)dl8;$g@WU9~Sb6DOa>*(z3dhn7^slyl{{XLEO(X=7OC0M= ze+o}1cOQI^st@w$u;Lz2znl%-LTk8*@Z=*{KjIDBh63*K*R0;FAo^4&0|0USdT)}T z2E*s?J96U2l<|q z(^E$v-sftczaPh`9rl7dRMXIhl+k(-gCr+^sH}jQ0+WpWM~;kI1fI}n*InPS#bKe- zRFsr*(p#j^+Crh}WG=DCQ!SaMn+n+scg*J?@sAy6ON8>IUaB;CiSjn69^U@|%d2y^ z7Y2CZrY}_l6wuqChB}?7s6(Z zX%6mQ?iJmz>;h5rfhR4u*mXr*zxR>`zs>K#LKy;4-oLEGB;DJ}3(n9`IrRT`rx2L)IM18L(2&sb8H zEA2$GrMAr_(xytBQc_dK(n}+Ql?aLnbH{?r&{12AI{?9@ATGaCdU?9*fg( z->|MFMYls?A2YBCoE$&q~w~tu3*t3$;Xx^D1xwZ{Eki%R24O>GvL@ z#x)OaJC$QL7ra^|rIF*Y)m-74l13Y+rInc>n0-D83>$)~z=4n??Ee74_O6Z^O;NA= z$3stMy3KOa*4LI{NVP7oZgzmdI-qZtjY=zy6Ug(|A;A$thSPO8jvi&qO`If~vt5Yf zZEi88HEEkL^>aZRhi33RBV2ZKTKqx{a~_iK4v(==>A7uBO=`aBx(O(jhN_mHDOv}D zKv~Nqu?^dTCf2}gj)U<5G=H$Qj9Y`3?q#AXUC|YMM`jWSQU@GJ4gvn@&)cF~;*(EM z%TrHJPfI;5Jf4j$Y!>>~S)v<8;V`$eDq|FQ3Fb{y8kP6H1f1y$cEqBOdC&oQU<>#lOt$4yY^9#oDn2~}=f ze)AXr`8`+~j;?p@=fgEUR0@?)c4Atlr-=~~HJ6C{8k=J-Ot24;?eKpN#Sdi)eQD_sI6oPt|PO zY71}WvBx?5x@1f^D%mZ#FM-G3s^lKbah$|2F9?WUELG7~4N0e)(!J9|{_#$K1b3T2h9Y`Nz|Y~~vBwNOvJX-Pk(KyW-k{-%@_&c% z>LaN1_KkVruGEH#f@-B^GrehoNy71x5as>GLiHwGz_J3IC}>8#&Gd^pYLwLgiJ7w} z(d)8Fp|*=zp*wEkki z3Zka#CV$!c#G!k6q$3%7EE@_R_?Icj9{I_a1IJfgo~N|73r>&~KM#GVzUnpSJftX*c7rg>IL=+dGXX9|-A0#PX&M$!VWS=O3|vtby#loE*_5ImAxWG{~(1q6>j zVb`%ycA~DUhGWbX6ozEA{LDxoa({cnvhhl~0=g=N6%rgB9B@2~ zeWGf6ZKUj#wG`JoT-VE$D^^03mHOdir>77?_BsK(+t(|ys=e+(LB zH71|7_NHo$XK|piNk)-Vz-^YbSgE8f9c3-W%Vso{W%_e7$&-#)(3*nd1+5~dj)LKN z)Hks3Y5g;2Kr1Vqxn>6+yFdUeK;M_=9P zwB-73m`5AAs5KW6JdY(es2NNpnpWHwXl4h6F1CFX<%4oJEwZjX_{DW8$1y57)9I3s z3w*}u41Q6}=t(!)&MM!B%_-Y@t!~zsqlF}^^yrAELh=V~ zkpiP5IXUWS*bQ5%w90oAQAbVMd!;qLmdza6j>q1+9jb=JvrSZ@I=cIvC0e6QRYYqT z%X)9dNIh2l?z`&v`;o8Z)D``X(3cpir#xwXQ+)~6D;1K*yKo6Lv09mbrDNvBS1tTPPDE?Lg*2aeHKYp&W@yLYIYPgL3ad#D&%sH&1=?aei|qisbx&Z#vV zsM1nQ0|3!JTzOzKjsWtxqa3H()d$zQ63o!?wylF)9Je1acQXdhSs{a;iV}WYGkLH zOH0!%19MLqD5!8GLc!WJVC4-cr3w){ zg})8b)!22l%T>d7?bmO#<*I_3ms3bB6xOD%TKOfVrHj>ynU+1XvP-y)yV5YjYZ4g# zAnuUY_Z}+Amrv?SPwW+u?HAgsJw0tj(ut^2SnB7gmXFPWaumdRwiuR;z}J*0hv1@GAp+)mf*vh~td5#q}k0RVX>e;A5TFy6PKW zaW$2zR%0q?WqwKw|)HSr!uu{;ZFnSV86YhoLRCIJ@O^l^Rc`O+dP6nA^ zoWS2+Cw+8?6DYA|bY&ERXZ3Q*O_t)hQ2$s@t`{T2$(htF0PN$EB^&{{U$X zO`*hfl$Dhc(ML+p0aFk&N|J{=f;=eONDa~s}+hp)AVGirMGAbz@Fz4^L8eO3R~`?V>FA%{^@Gcf*9#_Q)-g(g9Dpn!dN@ zsir8Uo+*y>@WFAkY&~~H-D_`a^>($Jx=_K}nqJL9Ejl`bwzU$?XLq$}@hw=Znn>y9 zXwXYEQ0@!rR#YfwXk=84DuP_vx|x$vne+sGAME_16ubs>>iXH!)0p;~=Kves`!*W} zFUVdgEdge~>)Z7%kEGUAwi^3^m8m~%K~*esOrv>(dI0P@128OAevA%C9Sc?3^)`{O zw?kK{r@F1*Owe8}_0Uq+QIShhB=nX@Ya>Zva3bXx1^|qOJarZLakyKxZ*Z?u+HczP zxYz4elBv7ep}%%g-#m6o@o=FFagLT7nwh5bT1a9(BYDG+RTvf@h@D{+UCysvXQ}(c zptW?m638_@w%6Nx8!ghf(z6<=AzRezOw5fOW+jw`XxjjcGgqquO0dVv{LJ6#)0l6x zRGy2@{t2DhVOwU*tuEoXzX7K4t+YnC($jXP^`~ex{nn$ncAXWdCbvg=qnYNm!1n0n ztBxf3!vxWgkt9tb7LAJ#oVQdLZ#AVhlGeIv^{llc`5q3J&T}fYT_*$T)y5A_}u*qE1kz8vl zC5~#ZLYyS68QUDPVRjw6XrG5GmFE4b^>v%ITI;x1EmH?ga@Y z_Vk*qqxH zfQ!?-+LqOGzv*kQZ#4vsqU*Gpi%kS_Nf@PyD~)tbGk)?(3eM{DC#ZLAz`*1Shd^q& znfohQL08i;yE$;v(bx7YN}bfM_^76)zf@Ax+y1JPY!#8lE2UXCZS=~sKc~Bpoi{F)bi7V< z{I*bS52mr|Tssqyj#bqr!C-=xU92<-%mHztiw9?h{TWLY^8Wy*H1?|2_l+rRyGb1a z-eZhPVxCqJ#k|QXg;MMTGZTTF5AO%g=4feqe|FRMSoJQcy4Bq+bv50^#vZ-OUxMyOpP|7fE%M##5o-61Ql(>0x+cX=|$I6!i^7 zMJhAE8_`B*B*d|?%a?bpMgoI{C@Bvy&D!JkigD1{KkU-hv;6G#Q!T*mb~4RcdbE>Nsc9*9)wdyW!LthkfdWDJ7OEXdtEA6w(T{js}ZqO_4ipV}aEz z+shSA{{U9$n5s0TcD$ynxKgEEjjHB{)`0C3$Qn6gVq%G!P#R67#511;b=&J6jFUn3 z%e*%oW3BYR_HVJ*i$;gMUA5(cSmdv&p7JEONYbcz?r>8xzpP(Dz3^*W?n-0d~7o(;Yd`--&mDV(V1Ok2q;Q&F;U8fU(0nfi?P)wQcIgg=kK12(waw9Y3)6vbg8i3#Wm7P zu%U|V&`U`rOn)HhEqBv2s}i47!WbjDUBCgEk7)aSNnNCC^(L?Fb*k-4X1p2dE|r#Q z+pWs)ZV^-&W2dI4sVyB+)GTQnh8@0`VYHLDP+u0k%+Z>MQs`|Q5-IG+v&(OMSK67fChpllGi)8#VpCI$0Eh zm7YhH6X}ef#^4g59QA1T&q>=f)$2^!H13qAwa-}v!sNAjTS`^Y(+hjOH_B2pf=Obk zsE_x)qr}@lb^1|UZp7V|)gKO*PUCj=lT-Gx-DtB`)y^w#UCr-RP3G4$;)-UZTDp3g zMW-TKg^E4${R(9bf^pTi@iE;E2Xce9Rb9ld?T>TyO)a{*iY+199`aQ~rgZ(aK3GRI zZ$yeCndMoj%1OADrBbC;O7#sGK^R2YIb5k+FSd`uDycdvE?-BgB@*gVgDWCkA;YnE z4)(dTmTh&1WORkPzQb20tD~&btSKBEoYnGK~^s1>@CaH=_R(wLR%)rKn zC6&(AG(L)_o-J*q=d@U=Y8`c55TLTq-9BB(`IXxm)W*!91;$u2DGE+VB=pDd-QCZJ zOCF2YAKGi5!@p~6*SkGr2FZL%y-9zss#=&m39DwUk2SP`qb#(sGh^vsP=Z%6cK5s; zqO$7^3w5sT)`8LVR_#qkJy&pTTFUz+O`@38C^eMyhM*!8jFu6y9DALQ6&=G}kyEMc+KI%Kvl?hs zp;}PbNP&3w%%Fhf0py%#&xrp3iGJGOYqZ9ix@o?}>&*|R@6|QdgQmOVUv-vfmN=;( zo}!+eXi}bkmW&Tg-eDeCDLEyiKMfxgIy+0~JzJ-=J>TKawc4y}rMX-5zjFJDakXjT zXqJiy=AIh2HE%UrPZU7GxdzqU&N9U>4p^_5Fw8xm*{#c$gcP2K)PERP`_$r8kP7Tn zbR~(qS%3`P(CcxtUaZ$wHyLeK%axx{Y@VZ7U8$v}f~Goym#S)~Wo0rUF3-CoB=gpn z?;z6u0ND*9DKEXVxa$2=`!4fIOQ&kBk%gj;l4$0up=x+mTB>>El1B9%f((#{j2=$Y zcki?{eZ_*eRCd4N&f;r3l9ig5RmZ5Wm7cmubM-2#7FxQt-UyOO72X5%;QD-Htxxd* z@rT)sW82ziqt;!n?wpm~(xphDv0fAyQT8rU!E+M%E9p ziiIW;xfpEuF6Cy=&K$#fCb~R6ww#p{G+Qus0N-ntwV#Vw<4Ja3x73>Mw^Q3LS_X$u zJq0pLN2n?_bzLPb6ttO)C9=as zKBJ}+2_kig;>AqwF=d}4E}-D!7ze6b;k)8O3U z=AG&l+M-l?ry^`_!?qc?c2y*(^+pPblrkyM1EhyGW6Zwt!vx6^}eT9=-aNe(Ql^hoz1k-->u@4O-`~@vQ;xZJTj#9ZS=A` zC;9i<}j<`xR90GSR(L!C0jdMv6dDN2to2 z6$d?0y~y~4_y-}?7WwTJhqvH5_yF66Vit3!y-RG2)xR|IWjuE&W zl@XUtBvg*F(jDB<@@anKY5w5o+6^0MxkG15R-WyT!Tl{*y)`(hGD%Rk2#q^Q8Fg69 zjG+vyRPu2qZ3Ma4%4etys7bZCwY+)yMU7uZWYlA_YNjFbqynDFK^N4KyS?whoB^mi zu?C9M8oyW2)82HRnWWS8w9r-At~$Pwl4zuQc;pf!HB|-HDOi?5bA)AWxH;=r_Xuj3 z`$>GZ)Y8vST|r=@w?_3krlO`A$`aHMQ(hTql_Z%SR*48Bcn(7Wm0m|{pNK2ot<^e~ zze{%3(RZf0%}*YlO>6MqMN_Df7^!20R%WB8Xv<+rC>y|yRYwCIX$?QE=`|IuDXaTA z@o7PK)fznMc%jr3_uGb_wA9egK{PW815S|9tc1$wR4T?G+K2L`%N_3mepAWe4-fGw9*>X zS!I>?HfAe^z&Run)3<7F_l+G_sVn2PcPmWS-E`yA+O-$^7QJ0#q?Ahxw*`<-son$K6AM@QSP>`x_4j)EHM`u^P9U^fc5;xWlol**DVC}KeL$pivP z$ojgcnM*x=7nLXjn5yB6>UQ!mgEUp6^!QWCatf(|i>L@K2I%=qeB@)2|lfzL(8!FBsU9rVd>If3;Qg<+H-P)Z&Xwur+ z$9cNyy6q=zqpTjK!kU}bim4k4AeliMV_?CUOLI@{;RA~J>-5U+Up8II+UH0yh7NnAb_oF3P zrU0BkW51`93oK=76$%Db19{^F`SI1AYGxc_l|e6*T!2U({{YNebc$9qip(gKW?ZBs zlPpb804O$V=XMtvf!kp3{r8g7Q+d+2%`Iyj-p$2Sax74QYwg2C^NCZ+arU+ zHsKK0I#%&JdqDw=zp6@8UlMJ%;1QqV&@5=dl-H1cdG000M^;?C0- z9aTZ5szsCG+qhQiomQAzCCg7+?6ymFp;aiZO+Zn(@hwq zRP$g%Xm8!!6KLqMfzvvgpq!4EAR=mlog*+q0iv0n<4_AmS<`nbb&~z2uGdTL=EX^C zy~l8t>1v1OYFA{UL{(gaBDotGMskcs500-6{_0yEs)tHmbluvP>1mp#;}sgxLc7{w zB0TdJX<9(9>Mjt0fTMwdi1v=qJ3lt>I;QRx}HKM3g}dLdazWGR-UoVg}va8Sez3P{ZM)C=&iejl!N z66xEO6;7zNGTZO;@>y&V)IgQX>VE6xDi&H-CYotvR^J;JTo0&yN;CC>+Z}$ovrtQ> z2BBJuy!7*FdJCzf2VyzcC4HbS@xvTsAwJ`)D@%6oU1{-bt*iK5z2Ef}rdj5LQLlDs zZQG;{9s(eWrNb2t5;;dU@w1oifs-B(2fQXRSar!%?2 zm-ESOo;m7t>RN@&p-PbX8#Rrrooy5Au>5wT48m#EOtNLEh!WM5ay>)gS75!0*~0LG5U9h+tyfnX7`-%!t;n7-O{trf+u zea4Q0+jqQ26naPYb=FxTsfb4`GNjZ}0~su`?u?DDiZ@^blo#&MYsqLS?K*$q*GOn; zs4L{CNh}@6rK@_ya8;1{?Gp?YLxKnZ;YiC4tsdCg`?cGfY_^*I%GTW~TJ1eunyQny zHkx*lNuouOU0QM&0T{sni2AtqFVa)g9C~d^fyjn;_jCV=_n#r=35E2G+ zCTUCM0ghR6O~ZyMV`0o^N}A+-aBJyqHu7pUqSi%uo{~kUY}OgQa|<@|p?8(29Dr%sSgR@5obVNiTjHo1@a4-i|l+;!7aJrdgKQS$0<=dYxtWsh44@zWH zVp7b7fULzJ%AD&Yv1aU~Ww_0l?AwadwQ^HXT(vu0YA0$s$|SZ{*lqe6?S4yz9ZAEq zi$FoA!>R>##sGh8kj32k!*kb~in^k&=GLXkwA0$!-c)297^)8FiYk>M`8xqUTY5Zq zAGFOoTq?UQZi4v9AcI+VY}%wnhty1~K?I98(JKg$ZQYtX{=L@5hlsb~dLx&f<6=z4W#q=tk zl2tszFia$)t5_g*wume&(ijis>WT}o{ zm4c>N%T!0{%+h*bji(@R4k}*LRA}2Z_PbQ-8%<@-_id@S(`dU@s=h_4s+MWq8H&Q3 zOu{z=s{*Ar1HnC8w>tjfcLvK-r`GTA`3<@l>5{$(JDVkJ@YZo5sEyJS=$4IG2#Chg z$0TPpb&{4|*WPI^!@0i+Qfea$%SA`7dz6Z_s2x9l3;Js6!PS8(zTb<;>TN|eS?LtH z=>sTBIpckw-m!IGgyVDiM@3YLB~qoNBq+-uCsAY*a)$*cLczwSKJNAQ*{C%vml_m; z7%nynNpG}uk~Gs=DkDcpXozKBOVafAlmmum%8d1AS@kxHrO|agvZB*kj*8P)+s4#4 zT|_>99qlzNa>*h_SJZ9w4fPcQAU6VdE7fPHXs;c`zE<8P?w7*_RnDoAuC1p#n;*-? z8ppSDAdTIQ0Q#MYz{daq)9d#(-xabuOy3iK2NhFW?5SqAJleLIs_m4%l0`X=WU9z% zQ53Lb*clYy?Z-^eQ%*svT)^4gw76wkUSb@>u#9*3{v%YWBxfhIWrLX|^A6IT0ai99 z`VcP>{>XmRm$??kvQ$#r>MAHI-nO#sO*5iVVGN71H(%azg-ac(Movfoy8KD$+PJTE z5x(kr3j09)pHWX)RZ+P_>|MP{u&Ud>vl;>yBa^}CQE6}XcU5evyLVgR*)7`3Pfjh? zy=AVwI$cd^nlIiM(UpC8T?(D?mKghjK}&G9+O^ztlp1rp-wy8{nbXzPcHY@`*65N; z91FUlrK3+=$sugW%*HhUoi{{ZajWF&UdNz_{B?X*|P=i{G>c3rN_&!KW!#9lG?cK4=4Qy%KQL2+e$wz?S$vrO{iZWjST%W%9|{pb03^c6C)$@3|! z;FVp*V~iR)pcSydk(`WUJo)Oh?hUZDR+g#M7FgQD2>E{7_J-A9dnmr%8|tgAY9?bO zRH9eGo)OtHd*)>0Bt$KG& zM0EY{P{X4y)>^vbBHbw}Wr|{Ca23S6$!+0=(~KMrrWz+k>K!vdt!}r9xbJ%7Qo3EQ zGgCI(baiaGNJi83M<1wHKl2P@q#D+u{aI=3RGN>{rN2ksD>7BVX_?*%aV)Y8$OytQ zRa}9=$KR+DCzFUIB=%opyKCXMoKVWeW>sUTlO=!41cQH=<+`|=yA$?Ts~(-#yy0f=X#h(@;k&RH`Xkq@YxhRHl*t$Fa>*vmGu&|Rn375Cj` zNqD8E)~|1xmrA8ZoT8?rtdcidg;*J;mCLim^?gJ(2h;Uu8%~Y0>5ERNz3S`Kwz_Rm zZYfrjai82-B(E|oae#9*T~pDrqK*(LEPA}OEc(u_!>6XX)K%#HC#ODnGzV=ha+-K4 zX)5Je9&3n=$IndVNh>g5GTaRHu^5&cDxPAec9OsVbkgnN8#?@B1Eir@tx1@IGNd~? zva=6Vn-giPeKmb$4|ACG?iL<%Sm#$OH&d{Z>DREMo45;S67r1wSut61Z~K}B?oo& zotn2%-R-ydqPScxg6UT@+H#UujZ(rPGWu+%({Ds$={`XxIXSVrNlO=aHD0Nr)%U3F zAGLJ+6}JfN^pMhg^mKO`N|$E=LLg(6bB)-LkihfQI(1<+NfIbh%OOwQkl3DQhS5*a zN}i5Y^oEvR7bR()skSO-3Cf^AB}~TFDFkduFzef{{%B6p=nD>%)OF1j=87!WP_??X zq^2w~7xz#&W3@rXN8-n~O?vOWoq_LlExSy25Z0Y1Zn&G0O;1g5q?syGH;yL`fn)=0 zj&cAX>?W~;LF)eDTJ;smzR?xJD$Orx^kPbRS&%G=I^|qEZ-A`8s8f(hRp*s| zr?`=y*P^4VC$t*Jat4~%om{tkeX&7XPALKuoWKA%Y$Kui7q;DmvP-4)zh--N-7QgW z)7QzXY?n)XH8m8mRzd^?qmH&@3g%l9YNJ$LDr3Aycel_`B(hTpWTUF4MwU|{ zrz(M$3o#&_hdkDg1+T_2KB!JJ9bv~c6KB!cDlu~^Wju*TEU+wCv9||qW-wNy_@DTV zx_75h_U}hjXGmBLL%MV3|u}r9HOMzaIK#vsvA# zbY`Zv-8GGLbxkeGk4e;0B)g@Nu?+IDrd-X9u#6uBWkDOmxRkU#l(E6w+D_hCuXn9I zefd=dQ7h^p?8`kc2Ku5D=WaPJ^D~zrHf#qnLF~ zNuH-A-^cCX(O7ooPV+veqomh2YFodd+&vpzY-_!;)kjrsX=bj5;}mhxK!Qll=t>4| zJtr!1r*z-2+Dp5$>w9*s?r(KFkE!gJi}lu?!DD?~D5y-dj_>OlSOR>-DKR>t=NJpQ zSx!t7P~UD=t#hcWDYQL_?$*6|X_|)YUgpwV5{Bt5MJy6FeJELk@<+W<^3r3R0o9Az z`vucY!>9EX>gDkzQLBs93cWvJ)5#{DwWRWy8|7*1DNIO@9B8G`w1u8R3Yi$4o*9YA ztfWl90DP(~V8o!=`2rzuYU}|Rtz{(<(ZC7?$7GFI51T`OINsuxm`UpjctpNLq97P& z&p6Lq`1q97dap`r{WA8gcig=_ZLaQxf|S$PYByUwB^1>aRPzjQvPZ#9-%xkJARex* zOWoabZPe6M);O#+mWeNm8`*DqTDF?$S5D;+K@^`bqB*ygA)1}RQkhZ98oRl+sr!p} zrM_SO8Z}O+xX~DAq=M_Nt~7K}yg-y=1vGmaMdy}MPXi}_B&(ztMkG?2GUY2{*-+C~ zAV$KDS}<8Nrq`qtOp>4*Du_|}OFM!Hy9XXIRd-KC$9mM=?YmoS_iEeDo7Wb!gZ5o4 z)e=ihR+UCzu|^1DBt$#Ex&}DT3A9=RLD{UGlA^fw-7l3o;!7nytGi1*(mRCI=J&e?Pa>HMs z^`!FX3r&4o#)9{0o&!aAp^l*o$0bBE)S(K&B@x6nK6efiR6r>!YH0)S5X|V3arJlVKThByW8f0Rj6Ioc zQgHBsl0hKa?9Ziv-ahO#Yh(zjb~@lx%G5`9Q#m?w}=?<7B_Pg@G5<@6wP zj2T<#F(|>y4?cWYJ( zX4PPD*}ym-msA}pk?{DCQbmZ4fBL0G@O>aklVqtb`#YE-IN@Vbj$7A9C8f_fK74zB z*RKsWCYCg8AD7(n5OBnTNZ=nC$LGDyI&Jofgt zyPb^DGS};?)ss-`$1tDh=F=|mBih}Fmz_2LM4z&-8JTEk6TEIN+yey`Pbjcac=ojKf-ev-Mb z)Q+)iX=gG#k<=jl)R0Kq<7mjnHj_zDUo?E|^C#`4Re%yBU-uM>Jr!ta9%)u)Vgjzut2}f60A7|{tjQI^x+!FOcS?tfRB_6cVhBH& zBOk+|(o(}qBNdcL#c&*Pk)EDFm{v(PjTy>QX!7GhVOtHx@Y>3TJwrvQV4zJ8HKMEL zDrlsE-K(RiP+;2}fg@F~yo|3jxnYnq)Q3gbC~LJop0;{*6|vnfG}Mnt3Kx=Z zQNpSyQJuwz01qdQj#^e1^F&JYiIgh|a9GBf?=F+p8hcw->nrx4s?{d*sm0EtRF+7p z>26ITRZB-#94f0#R}(nl07k%Q$r$QkG*LsStCwhGmsI+(V=M}dOIIG?M+fPt1C#I6 z^0gqT_+RaAqkCQ6hUZ(UHI|CiS6i)P$Zs&x(LHqoHudMzZ=yZlQZz0B$51)FL2<41 zUAHau=0wKvwB9W>1nwBXKQIsRJ!7$1YE0mT8>D?$k3$@18ksOnN*Aj?FQi2!E&Drh z-dS{ljm`nV{>=_^o_VA^enX_%VnChJ*YFQW37)uuINUyVC&>G7+38rOZ+`LJ#9c~szsEjX$GE!1c{sf=r)nY&t^I!XZ;wqF9 zsu{qG<$oxVJ|pgZzjzMyx;CL>*x!e2(l`h6!v21GQ?KJwr7ki#ZR=G=%6{b3BL4t` zpXJdPb!dB$q@N+0qR()Eqp1h!ic&luIAPD__xiREtzK=a+{Jw}iB zvByUcQICA?=Z`)*Y@1RDiHdDQXNiLn1Ed>(Bx5*~WBqg10=@TEgIUzg^3{}@dfg+D z4ZK_e%;S|C+ja>c_+C8pz@M4Vx)VIYe@AVmj_0(fX?S z0dka(Igx(>9T*pS=~N%vw8kRGY>?2#P#bJA5SaI-s9P&Nf^s1+$Pd+gi}$NL{2apd)*Ec(Jb{RB0Z`z_{pstNox zG$GZLoQ7S%sUH1Cok~&yl3aV%B4QX#P8UBdN*VMzgWO_qQC)D^6275jZ&3RCZP1d( zJOT@4M;xAd`=(~P*3QJqXS|1EM3TuRA#9P7d2F0<_x!s1rgBXhd-O2~B}x`c`|gN5 zR6vt8x}ksv{upiv&y0UwmPc@wJVS7&c85RlLKBns$>|`Wl~1i~sbTNwv*k~}N+P&2 z;tP!$_ygMPJY9wEd~2f zSSjl4GtklM3pGVIq->g++9aBtn671~Z10VL1O`Kot0ZRxG*Qr6?$p~Yv(vp_tfbIZ zIfl5L0k$VOM*)ez{9jMEPtafW9Sl_V%|QfOs?~2iS#=AvRnSMdi4jeaAW&T30>e1q z40M1cijCWwd-U&y)RN?<$`LbLuXOTL!BY>-Mz~8==0!N?RWyF$$qC$(JD4`45to<@{Rf9BaWM@ZPr`#o3#A$rA&nFwBDr)JV%p- zlwoB6c;hE;I6W~>b-G(NTW*laTT31f%huE3(DT4!$n)%QdS23yAZY$vC07tf^&n9JvT>my4lm@uGFzy>2S)FHRv7J zh8vZSC(d{{;C;G5B|X037;9Zp8TXu0R6~gY9sqyua(W8iE)>NnZ%Fm$@-fFg{YIV?6RW&Up&$ZAzi5lZk)*0hvK3AXautE|gV8k` z{CYhRow?ef-@^N3{(0%Zr=}Zop=Lfl-5*0iQCccKRtB8Y#%7UFjD#Lr8Rr@H&r6ZR zz^O_O@g=ZBZB(zPsHdx|xyb_l%~+)i5|NVI#tR-XjDCF`bfA)5K`f`q)^0|BRjWk80wq6LFmO+ zhB7K(M^>k0!*5W2j30cAbownVkNAi(!OWD8NZ6Y5MBlYdU&F4JwbN29(x>6J$vBBE zuTF~y63z)Fcg*591&PQ9IKb+LJ{&@9WK1 zV~bDRHC@*2XR^T3TPS~Mu}W`7A|ohNf~8ap5rQ%2td=J-ajnXRAc1qMd(q;muDxeQRYSB8DYJG2|FLgC`w)H73l2*M0kW~Yi-b{_fMl*ru^6AR$-Rj6Y zi`qNo_MZO$svAZ3V%w@Lwpu&N!WtTRX-~?o=*q_$ENt6}IrT6|JcwqXqSab!Qq;b+ zxZEz{*YeJb5hHNOoDPoWT!vQ=0lDsrmZMm*!n zgVj}CQlw5&bqsG9yjvQop`2#taFF8Lj|knd_j19gboHr~zIzqJy*A8n?q zx3yeU5LKuB&yGi)KQq&GwJ8KuinC2d z3^E3q7uaGO4&$7FJl0`oHc5;rgf+US_93CLu(D*^D zw9(RQj?nyC_VZNs?&o-F7JYN8C@5v7sw02PL0<@JYPkY}L~J5_0rPosB?n{uZy^lBZZln?ABX!D z+RLdZd(GVXyT+Wn(cP)mF2#g_s_Eug5uP(rtjbCS#{BI#-Hx`2qN0?i>XJb^5Ie1J zW;#trNlb}}M5QE!YNIs(ruMVm*VA^1W|Gns`aeVI?IGT2dpD{3WnbNDwAI?$4)D+O z^$zxbUWVOLZM0HUN9an4QjxU6R>F zB=gtYB>DQO{Z^7fPt_$ua6l>pbBtrph~J6b5w3Ks6cE&FOWv=z_bgwdmglA@tyI-Z z9jZHGQ`12O!l}aLRzlJcLo@i{dc;jQr*ysD<$Im#b(3$B80|*>ziyVtWw=+lso5@&+ko%EKnlQYEA)jaVJLL^;!3HM~U40n;D@gD3WW?II7$ zmMvX`krOo)p5dsk)#|ccZ4kkb}9$Rl^9{{T-tJuD_c{{V;o0Hnm3 zMpT2@NB)u_JT+a&O|2fAtWwQ|$82c`Jox_r;6!wMZ`~E&5?F4LnI!tvJ9kQ~507d* zkKxh5`)I4 zuNrk{{@>h3)lc1iP+Bzth>%9u(J&#v_TrdhrMCLc>`^65m9$rNw2OUIcVF7pWr~%l z9tK%bSBWEVts5}baOG*Gkyk&260(ove%%fmW}BU+8dpv0 zfpd-~XsY)LG=X;gZ8Vb?MNASfK>d0yxho81{{ZPA4;Qo)y7j4fC7`+8zjy|isI9N= zH7#Yrn%_$+TOA;yw^JDDpr($2Qk^13B!yU3FbfjgWRiNfZed?q_NY8au*q_5rZ|XZ z3o4RM2Pf(Ny;jyJX{vR7lAkwfJGxpbQtsE9;XJcd`Xs~>Kz6ik2u-^{`bfY%Si)vK z#qFIk2_|X@XKk^Qx?^yZ{h!?2r{{Ug~Vk19{5^+&$^=IgQ@jaukQPo>} z->k2_*n_n65O*GrMz*F+6>-1TNd)xu6AN`bbU(hPR#^VFR~#z>LFnCGbM5B7)6{gj z!{WQQH!9-P&r`1Jeg<_MT8`)_VlYSZS7@n>^X-pfGjA+HC}!oiM=m!-hvECY;f`yj z_^-3c43o0Uy#C6${U1@uAfx+x{{Sj3@pipj?DVo%)flaGw8lGao}Ot1Eh~_sR#=`! z+FNe+BZ5y_tS)S-YB2i#97jaLsb$K+g3l-~z3 zP#X4uL5-xSr+a=E9=S@L{yP|Q-&GORJOdVY=L`!di-TSKqoB7;dLxcAhX? z1@by^bLA?b2z_~v#447Fm8nSy%m%jyyXG4{u{qSQ*u7bPsJv>f{(L~+wFTOqo}RAb zcN`cp~M z+OMxdtF^$Mu+&Jgwg_2C`r`~suvY6Q+pL#eTYsmt*{LSE*UJmbDPN^vfk7qRxY{$o z@sdCtK5FeyZ*p3vtDw`C*zDFCYb+MMIcYR8Bvi%sODeRE&pWfZd06D&cni{^vRan5 zEK|&WA%rTNb)*E^$6NFHydvDvm;S+NYN_kAM{|BUw1sU;Mk*?_&96+*nZ$p*0sRY# ziB(A??+gZg!8vJYJ`+q;2J3nF&D57#q-IHCq0&^6PC_hdDkYkE*s%kbB%Cjfpt@eW zSm>%I)D-a3S*`lw#dfqsQ(teVsl^ptJH+KZ(kwb}ID zmPD9a<29%&WR-CoU%soBSqKp;Hy~sHSO9*_n&~2ps2%Td>uzw$=TnMQO#v4?3k|=x z=+}$VeN)(>r>^$eyT8Yjx>rVCypu2nZJ0WZfj9r^83QfAMubgr8WkF(i?vv^P~EO_ zRa0q;WVWkiu>@kC+fK8*rZh3|`FR+ZB(eMBr>k8Kw$OHn^+hepT_X;(vsT&yM(_&h z?ez$vMiEG+NaC3R0z?4g++=iSzEGT*a}UkTckqcSn@K9E2n7Mfi(iv=nk-FAsD2yj zH6_xf=c0Zqbv=E?uVrSS)gA7%&v31g6(h{dY3ALvR3Ii+01OT>hnn40*}JBYrM6tH z{{R`)+BKqro}W)Q#67aE+7glXLW@l`Kc-SA`~zkbsN3LUJn5S)eyY?|7Hdir-6)#2 zwqRBY3RNT2sh#{rfP0_QrPo{S(x!%j)p)u`a-!1oQroOF^zuSrq=?SbGsf_JGHzyL zxr<~G_Qynu>UB?2NA&YA@9_-FsY2B|wwD^%Ut69d>lWNMe}-*9@Y`(P4qe;4$5#w+ zR!69QBqyYvq0ku%2x+NiiPU;xM`kgq;1Hu7N21hU4D>PxDgGNfl}MhkMUIE!YC@+6 zZ-Z{eFfczZqc)m-SD|f|O=CrVsnRzq-_ApBqolZ+Tcnn{nsE`R2pB)5G8tDm@B#M+ zroAy|s?|D<&11IHL}giHmg!hXiYiJ(aAl~TLU5|8+_A^EO{)`>X^Oxa@!|W#Rac;4 z;%;Qz=)s2F@p@eK4`O4|R;z{A;YVKF>@NhgS`w#Id{$~Gp{ki?VObqILr$&E?q>l zb%2B2_OR1efKYmeMLD75_(C3DM3HG3IHVFMyfHiVN_S% z%E4%dQlEo<+0)Zcagu_8&wI5@a@0IZRgyQ{cZ3)O@xbxp6z!VNRjDqv+cmZt8Z?c4 zTKkN^M-2@uW#pQwrc=fhSouE626|U|k*N($tM=%;*lo4-EvJPQe6L2Hv0qY1(ZJfw zBTz^j?Hu$eu9ms#Nox*o0WP*mr_7e6rrLH>am=;vVHT~UR`zQD0Cl9b+dd4mRdv#) ztW(%1Dm&4tu1Qf=+^A|o;7))7#xvv&IyX^w6GCb0#lqJI!biiL32UkpRWMXZeiN-k zUqr;8m{Nes90e*$fB|R5;|jKE`<|WCR*vCKtRvBv>Z-`=bPckO?>#l%;Yu1vW~_)( z{_+*w!n2fCRepM5qSH5xNp_*NTG7mxIi#Mh^?j^ZV5W%!%ROC1MD5Pi4(!atoF63g z!Ng>)l}jyS&)JCPx>%r8(4>|u*;B`Zdg&Kbw_OgJI!$?9@Oju&vaQiA(On>^)GJQ) zjE?^RE+tBmqF+ua9H}6Y`tsdv?yVK->toZpN8sDxLbkr`T}^AW+NbT+ed@O3Q7nNX zMV3m)cKzAkb~z;DJylw^syb+@H0GYxm0FKU(_TJ$j!H_(v2HaD8${EsGlh)GBf@W0 zAoGSf&rWvRL)*0F2DGZwwAy~-S5jusmaAQJe%GlqbqWn)7zvh%mS8M3+h71TK9%MG{Yp4!^)P2LS{4M+*P-z`IbcWk}yw!G1YPVeK zQU!`Qja_@n#Y};)tBg6%x$7|7thY<{q!vmknXcE$`R4h%{mK4<=1QsRs%M)l?ZlEh z9mS4G$vsQ&H8JVyjb%21)isyvJw4`{N3pITmZowmYm<*gb+PC*%~yI*P|nHr(}IDvXtlwcW|lkuD$dX6o!^{Fp3 zw#cf4mwWZnIF`RsSGuRIFWqp2;}4WOv(K;@#~oIh^2uPc-)rrfGgOUR zZL~vA6Y85x5-c?pvBaxV^z(f_v;spe#|peN47Z-3_KNz7dhjAjsSCtu3Pmi7G=YZG z$}l9b&VKukNUG3688_b0Q)dpQS(h;OwI5#S)*9d9C*mJW-C?pxt2=1(O<7P!4pj3y zcsyupug0gu^V2PTH*l<$J3SRFl~LPtw`**)%ILpPfPCB)B@}JiKCcAsCj%3{;`~bd zP3WujE}CzMO&O{$ZKtSi^-^fv4W{liG>unGwI3+cwX|+vn^+abRnfdK13YO>KcVgx z+wJpR-L(z7Oi@4fZozERR@JV#Rb3{7)=8X5@kFttVcdfJla8Uabg{!t5se;7uat_K zGSP^ZGWkzZO|0DgL2xnv_c+f{<>E+MCK5hgUi980Cl;4AGo}Tp(nxnBo`T_OSEsYsSmee-xh+T60hK;=14QBOT)5u5_y2 z>S;9nmrdMFsY{ralBgSTXr~29U`gk21Z_Ps_M^W)5cfZUQ zue5ZOQF;)(-kEQg++=cvR00Rpf%fY@={n67XLPC65Zx{|x@hFhEsCxv<&3e(a>No< zRf}M9c<8IevWH4vE?R!3zAB0fZBivY&awd$GRp*WMy#v{)v`p$9A_i}(JsDU#)PCX zXVdM<95|vrITBSdWi0xtEz0kTuZe`MN4EF>09_>{vaATz7RyYShbq|$)MRe<+(zS$ zP6-`I^%uk+cX5+sR7q7bre&;DXb&rMco zw6&_~X_rt?&8uxxQ+&-MCox)XZd?Y}`LE)VyL; z>2(gNjDkQ8Ur)ID@r?~__?GWiar=*y>{x!c&&obb-G-8fGt+qU@4iWte&8% zkn%~mM;IgOF(Q@D;MHI89o>sorPguVJGJpc#M)H-KUP{B!6Z`Bq%EncFh)K4?kM_U~}5$Oz3h4hezi)(#A5>7`w3hO1Rfhr)L zZN%#S&wN)*uck%_mQ=%-hdGq`z02+A6B~@^HcZ;|>S58q^+pXH3{{RPaZcs?{ z=54hV^)oE1D;MAze{vv~t zzWpfGbXI6C7VF)g)w5YOb&Ovs?9~+k($gc=)IwlM2jWvC4#=&N0mewjPRy&8Dh(UQ&?2?VLYAoRlqpwv<6tx;R7d%fIC&aO1@(&=bF+U}s1 zqDmR2Q6U+X5n~INXxr{M`!H#U^yT`3<)SJqX-!j89m4Ylx1n=YTT4-Ip{l4@L{3#w zB8ebyytYn!bzNGnNmDG+Rm(wht)-=>`MY&(X^gTvDn}b_AcEN2fs>5%DV$e1X-Y0R z4=^+j0WPwf;*|;sTL3KNxZ8iQhug1kHI>%WWwA|vz6u>USVZ)ihOVA!r6-o2SYLdM zv4I-k5&<~po~@02tmw2Kb?N8rZ*X-krLkCT6cN2$%U4~hD6TU}OB>WLr&AzeqDgW3 zqUVr$taarzy1p$ttL?Uvrl|FG9cj2(mvd6m)lk$eG>ro{BtB8LrPNSsyNwo|xzby)=GuBm?`e{ zl-7C#sJyz{XOSprUQLn7TJSE)VC;lt$^t_Gc|Tfr$xB^B2`kT2g3mlj=j=- zv+e!Ix7U8st5sF5nYLZ$)ek~x;d_vb$6HP!k~rOvR779u4aB8)kUC+}RXP&usyl&u z?-aLcxi1<{wywkbD#;yOmDlg2Q$-_4ujx~TcTg7!6?r^#=ce@?Wsg%)P~Y^eyHHc# zDXA?rwtY)UG!v~IW5%K4Wo0p)k`_`y9OtMN`rU7^Yb{f!sXlE*g5!6AAgxnY^pv#I zO#zZ;kByi@Jx1CI_s>R(l_L;RGBF^rS*6O+qF-=pf zrl`?vZ~dKgQ75dl^&3>msAAkQ7zM+6jp}V#PNKh3>%9e6sOq$Cn6cgTW~sGWY;}4f z-YxV^Zmf#3SBiKt!PpvgWqj_*VoA?Uwhc>t?V+L6*83%*q3;$6>#cNpr%#t!yK~JX z4KyWy`eZT79`(-whfE@T!6Ifn}~Cth7>9)K&Ti&_J^R6mjlV&H*O?ULt6| zl8P;ov`nwFAxH%oww;Fm zH!Fo@53e)RQ$@Xy60$ol3Y%nOv}E-ZrXa?Mz*RN7N$FrZSJx&`nexUo_#PlEP9aIwU)83vfaBw zs&p=mirb=eweqT-lD9~UJ@SIOiV2-wS(VkKkt8w_88S?X;>q^@U71p|2no`EwWsalhKTT4qNXxg>ZK1?~4u*#L|rWVsEXyAi*0@zh4X?|z)^tv6~xav06K2s1r-p>lJ}+vlgObDmkZf z6J+|uMp=YooE-Gi@j-ODYb_`6*Q~4If~wTmQ=Vhz}tF$uU zf;@uCc>tfN{zIYZ3q{^dS#$0!?g;5_6;_&SErO1s_SahKdMMNuo=T|{5b|yV1CXa_ zCmjR2>ne7N^EAGYm2WngB4W5Pg7Qa>3E*%3oldNgvRQ4;R8+$?3=*-CnG0@-0__Cw zFgfwaJ#p!i*H4B7r0TQuOnlFYSJlyUX)+K%>lC0!*2ima4)j)tq`lrR)9QUgQB7B6 zhMqkw0aF=J0!cb$cKrkE1f1}E^;~yReqP(#%844WW~T1_iRr2;T|GGP&JN@s`LIqh zI6r=;hE#&0qBxNwohggbqqrb|F|*0z^v?(QbpY>k!xoj&(nhe)3_ZcJ)JHUswnCZQ zoPrJk&N(AHPgPV)U-1cfhVensy0beSkQKKM?_w&BsZXh>MKUT6PZZjxQlk=ckU(U?!Td+ZT2AEk zbJN#Zq`4ZaM0e?`nH_RjV=2-53`yH@ZM4|M`*iH)k+e&zu9sWA=TgCFsJ5*>ozi-RR=xz5+aok} z$|D8^b^=VUPQ~4fWEjVBPKMI(cXviuFSHi=wD@(nU2172yL|J(9aNO!WR7$D$ro#d zRw}0w1CDrt4PUHnmDSfPP4>1c&B9o!Yi?Bar*q8`IE1)hRraHLU|@}`N4Hb{+)~>+ zm#!|9tE0c+ORoNc)Csbk`X*Yt>$>?=_VxGpw@e8?8lkPyn+kNi@## zF$KNPSC4aOG|zE9AyZ0xKhsz#!=uyMLh)?WHBWCK&mAM&zOWf#Y)LYr0>L-afjfM8u$xa0qfVvHbmGte*;3y2$$(r0A*i?QPzgAySQ33o1lh z&f(%BL6+LVx#SU!q+RZhPv5N8xHXOX_1SplO4>RO;96@TONBqLOwq{<6M9V07Km@$ zxW}dEj2N%Nt~?6HNU?4@4PqqSt+UQ)=R@vn`?>) zDjJ+fDd^#gdis*Ek%@m%i8;v~Y=~}}s#=8-XxeC@G6h-Asf~$JeC+f=9D8T^^~>4* zDf`3Sok?%B>8b$2Ks~=p9+j)LTPyEWHP(GUR>>_@G+W`KdFm0OiRyA9jbtjaNa&f% zfON0I=D+xc*IJucj`dizHHzPDvr?N49p^&+#);)Jo$jp246an*;NWc>41!+9u)J<- z)K)AK2`oq@t#IykKDUCERYX#OCg6`-_e5HRcFUI3^hKkRpyNPYG+U*vZs(pB% zrbHpzVx)12CEYF*{b5cz`ZkGQ9f74t3{14yhyvjE>8Fe77&=~-(j%nRawN-88hnaj zwTgzjxaQV)(qGtJBr0sO&!F`EK@p0HuQk*$O;bZr9BJvu(n_r)j!J>*Zrloje&d{< z8~59lp)R)VGkNYEib`7A8+`hQOY8f!3ebGrD#;tXCZQ4Y=}n1a1~62s5cvW3ycPP+ z+|Xzm`X()M)JmO9H-viqoKu7#kIk_CHpRa{jJJqg_lmlEZDMj?WprF!$VkZU^g zbJTr;?B=AoB`VU%b=KX~sIHIDMJpU-UVcUkV?H_Kob?|FOqumy%Rov}r2}K=%o^5v z{UTKEno^=wM3iSM%A{QiAQf4~jmIn5#~4f8eH%Ws)!p!tp22a{8ivzj(-LXrqnVy& zmBcAf>Wd~^`bX*vJPiBw6^}$E2WoUI)Sa!e)#@v?;-=r+8jV5Qs@bj-5l3}+WvTh- zrda8MM~p_`mR8<4RvkzCy?X8?KDBz?NfdfA{XM1_nmrMDo(NU}8VK2EhEVLSwSE1- z_U4mI#;L5KxujRUWj(&KX(qe+cdFTGoZ)>|sQSwNN*8lK<({Qe*3nVUn3E`#Txc}T zPlJmc?H?{V1^09rNF_iBm#D~vbUYb#(#?a#1Gn6h=iAR*@~EJe*;iL>kqSLC4XAVf01SZ9p99J=pX1i4 z_i0Q(1M~Y(7 zF%1XRx1GgFBcIp$9+3^6og<@-o3^GH;Qd%2kG~(!u6UagOmG~e5W^^dQ}<7}eYd~q zFYG3%tJ2VF`s%B8poW%$o^`EA_B0t45x&PpnpO^&U|93i2e=*F?#+FNw^fzh#ni7? zr1dxLZ7q6+rU>h(t7>f26%$IeF`$*VwM9W?W-3Ikq+dZS8s?>>a$;nwr;U z_>hB4-1Ng=B}UW~ZDymEo{pYSq^4qIr4P%Of?do`2FyJHM_^@827af@H!UqmL|LQLVwx3JB3Ngb zt1dDR)aRUi`RhWoSl@H|`p00RM9FmEEZ@)T!ZX!m^xJL{)K!@3DV+^HF;*sh&CfrO z=bn?>=lPnYC`kq^l_&G*eb(1YEnLj(%1q=i1apIqiKM26o>eh6SqC4O=}?s<=6z#A z@`zyyD&-E6cr^u{dP(YI zmJ6K}^zuPi)Y7b}QxhpklbDz=;m0a@_ULtX=&H#wF;#!WN9EDf6jYQIG*u8ctt55O zx23-sQ6e@nJb35=6oREY@DLSidNm{qvHC{cm{w6oc+*j8T}^e;b$X#L*4s7q@hpbl zSyf4Rq^RE+a~n_UD=W%_>)Ng4^wC`;^3zmI(gX(B)3X;F-9;6Opp1Ke!vua{^}YK8 z+Y5HF{@rQqd)azA%YDC6YWUx|wUbV3t(SUAs+WS?&kK){G5W1CPa>3k?4DR>pY0y& z3{wrpX|$TQ3op{orvY$JxdxPDtez+8T0eIzl5S|(@5O1^vQ#kCuxB6xoC<;V^VAZCB#T~XNj+W7Rc51wqFnD7qmmL1bMC*U z20E^ib0%Orq{MUrx=Fz9m3<;{shqC6?d;^owppv<-pjNd)Zs=+9&&nh)(9oix|spO zt)1j$(iB!Pp{HGfIuwn{9t1z{eFE+=eG*8L0%Q1R-p?mM2GibmPtI5!1_r3U03(b zO%*t5dLqE=D=g~Y@iX@S0Iyv(Ln25gSo%JJMr|apEWmvPN^TmmipNDQzTX5bB+zW0 zSrjt^$T&Z52leWktGY{3BM`@t(mAJ=qC(OZA;`)1)gQpeaOS1mQ?7dxWsRX{g=y+% zu3~nU1AHiPmOFFE!OxDc9-Y%Qnu5A3U9N(n%?Ios||2LKO#y7SumC4GZM z*euuTsAjxd=vFGp2dd$SCmWgb^##BUrO;zUY=C6&`nB9m&_l7ef5ddG;-%n z?T;_KVr^0I$K7o{Wk0d>hN-7PlRlQzA!RxHMIb_c`18k9wM7lvNL9u2QD3xW({h+; zwFR$rH00yyCDft!7#Tbt9d;bcM+=XtCt{$o#~X4nocQ+X1=0;SdZ35N9jk~f?oPv1v2d4pW+;&`PKN@Y_7#Jr9@A>|HBaVVp z#I!T91D{2SIUO#7y<7J;3ROQ><5UM9&;H$gzT<>(DTP@>!s=^6)H+RPsv=cleJ@b& z$R5Ku&;5Fl(OfHH5>nl5!s7z)>_*CnLGn?Dzwkc)0DhTi?D0raYgJ0KD;?3JkthBA z`jt@ES2pT2R-* zg^y3%qH24H_9h~^ie7R6-ME4dJoHqR_X|Oe+j*on_#=R$+wL$+9bFLv04tM_R0E6_ zT(6D@>1{2Z->5?yBSmtOF!MbPM2SsvMqH9mZrd#eTM; zt`_A?u~*X(yK5_r%%d!Fzfzoo$4((cpp|MkYjN*{3W|z@dc$0{`%TqeTQzZdlu+_f zSGbC(9zWrp1fOhUJf9smNp`HFW}v)6Yw614HE}VWMnNA@IUEnqqbu$9%ZT}_4P5NP zF#iB6RS1rF{EfSY7EE#D@6%`PO6Vl{OU*f|Rcx7D2;>LcXBi*YrpN?qZ&3~%0(~~~ zk0ha@to`k-c|B1lFiJ500G0>qf$!&{Ugc9rUYhF+lSWQ6A|1ybqlxFY?JvM{)41ZNH45;AdtkvCZN-_mz!N@?5P@8 zdUroBkgUyyAaZf!59ilDYdbC6b-G-sR>36g1#`l+3tIxL((uGCWb=mi>!a;#NttRb z6+~d}@SCo}->ELh9#8>-GYEniC-La~JV;`4EM`OF3%N+jzvMiCqD-~JlHRYNR z2sk+sRjC*t^{H<^4z~3lv@|VME24U=*1FXF=FBm`o5}JAK6H>s4JceWf_kkW1-RL9Zg6pVaA(+u4*7XHP^P5kzgur?|9 z0I7`%^UeuiIP=qaUmm~k!D_dlcTkcxTLt>ZOfso^tx`}W3$O%wNzJ9P(e#e3^DrRT9>GkB^z_1 z@to~rl6=$}Uh1|V?G+EmR_SZs&08(ns*=5Ap?Up1q|3CKpbP3DZ&EclC(aK{5q7V* zK9zK{_V-ysOB7|nuG6(ZGGLPX%pou^Pb3~a`ia{tn(EsfeXhf&CZ1U?2{Yd;VU2Wc z>68$;SxSI2y9OfJ_x9VWORJcfk8s*(e4olRhs5+UQul9B%5K&R z?FCBHQ(JEuYM?bOTy%6)_V;k6d6^HXOCpfX$y|(slT2xO4EK9T8{g2V1buw2(#Jo; z&ri*#MFku*n#Z-B!O~Ri@>I0i<_d}K)5JGB)Ku0}5Uo<@a^ObM?L;6(P6_tMrz$D$ zPc4MkYD+j3bJ}l^>DtOwxzVKUOe)eT(OnR*Va`BcMou%;HYrIorBguH-#@HnI!#P| z8e-BcPmTE-?-tbs-rsJmhI^eS?I?!#nuK|yY~ zPWqnSV6|N9L{zmheB4-uSs5P@vBI-#Vik`E!H(Aa)l`e z?`M*ksOjse@04=U%XP16I(Vj8(W7Z+^9n0qvyM~(M>y(+l1^2Cb$I8LREw280kk04 zbMC)%YVPlAdZR(#N_yV#*)^kUElWjDXV8PWx2vLQk3!}qsfwDGYfMz?=u||mlERA` zFgx4vVcWi-ip>hUD^*rhVQ4MLKDvoAar!UZ^{2idbvIyX^u^BS+sj^_x%WBsL{!?M zN%e*HS+7+SW@#(!5mr^YOGMLps_!BKqYMTLp0MQey&Ug!x@PsLZl$58rKKZmgk$#* z{{YDfk%yFiF9Y25uf${-l?hVx18vT}5wDv=GODkwoIywyVoThePQ1>W4K39lhV5_M zT`SxD9b(rV(4c*1aWiXf&h~=Y+)G^*My9ihYLOL|XzD0sF;Yt`4=P9|+(QwV#CSa9 zwpnLNkL?BR;g?ZYhLpoj7v=4!00MdU>qyu&muxK2=!@lD-{KDI+-)n_ zc(kRy=}R`8g56@8S}8=-)MV3%)}1A)nN_l634k2n4ydSbiy8(1tO0O7$^gLrT{VnU z%lK4Flt+hfv@?%l!eqH}sn*~)CBg8sF#JLJ1yBHlvE@kf=gI0dN;LqzYTK5Qn%xp5 z#*PZ8FEp~vvb||HEkf)9IFT1|-7zW-4myzt+vs+1k%Q!qx4HfuF=`z%MS6zsJ-$kc z3$;x$#Lr7y@k3q|;0faySNd|G@xlDMq@!98uF=-lxbcdt7P?I(Qo7RFgAV@y#8>LN z{{RvX?L_&R1K*~5l@(p#o`SB5dsd=FNv)I;dT#}EYJp5qIw%U@u2o4pzWM3^?Ka|% z>TX#GWsn@Jdx8&x_v=9}S|z<(N=AKrx#r*nyC%IAL3Cy#9PUPUsY%LDj)kH16Q zvX&u;kmDeG^rAotC5Qd6U05uk@6snkYDHHgxi&zg<-qP_*<;D@4=0c7)RRhE^$phI z$~%o}o8{>qS*bs6OL>;2FfhoJQpW2ywsNNfk@po6k_lc;?m0gFdn7L7(vmfo>ii{g zI`X7vO9mhGhLghRCkk>#amN|zkb#n#L>`1~ z8aCq_Aqw2&R2rCW%UGfX}DC z=#7fg%9})~qz6bKc}3OxD!TXZ{{XA0t@PreTmJyYJ3}OiREP@0r|RWY$r%}GfEEi z==+y@t)yz2M6uFQg9_5p)JW_knZ1TKek}Cca_rqTUB=TP_^$X(xm+(*u~x|hy6)jh z{+W?IHHQ=uZzQV$y-@f(^>Hed6KDof9gg~&#qB*biI{D}sGv3X1JSqg)*%|o%UycZ zea5<1>PRMCCwZ%anug(WEB@{-B9Eir>8E+8G|B|%AdDPv^~1epV$k`@cdSGE=z0cYjpBmXRzv6Db{%DE5gQA z=yz{)k=zgn3mNAaBv(SAPbn-N!|;f6FyZi$kdfL2Ie{a8A1I_RmWq3QNus5yin^S` z5r(EX$}2pGtUv^kc9+_JHEyg;L8oE6>JIAF*Xqg}WnPr3oZD%xl`QRZ**ZY9G;x8I zDhs|26e1tDQb+AKYeQ+M<@mbnWxa0n{{S@Jg@XS8TO`b8*cuqkGGG>2RBy*9Fb^b1 zFa5miHOshK&W`i(g{A51lTqESRrC_}4^x+=k`|g;fYR+)X7s?5B{(}yGvld$1b#Rw z*;*b|B|2+_+@mH_xYQmGr#&K|vCu466!IBnMTJ?yvymFc`?fB3;0`*tX*5@6Dl{If zdT)!Z89l0_Qrae|y-CJA8rL*&I+$|iP3+ucFQNI4lHa>`@bgD%u+`N3Y>MNm zqmrR1EZ+?msr@+PV+%i~Y9p2u^#qEIDw6wHjDT>=iV`KwDr=J8XarCo8Lk78TH}E6 z4d-Y{sjQl6=dAmuU#WGp+J3K3(Mpm5C{3(Fa%R&`a~$N-)()H=sP z?W8-KJj+!IMEZW3rHh!=R!Zr2D=6|9AW}as9bT6{+x8my+^ttdH^nXTTDh+kH8*WP zLGZV!B$A3iuH_ndr(i<*QXGZ)iZC5ES+pNuZ&odPPebuds&!3lBAV-Sqtl-Z7lag`#$W8(Qo-xph0w~a%JBW;E<*N>skP-;UPiO$djopjgxa>?)y6VHH ztaO&+rLXlD+jN?4l1qfr+dfdzT;-=%sisuqgpNkota)vPvDEhe0H$c~dgoU~cGNc8 zO+HEq1w_*v}Lx1&U$&f=&y$wq+FON3 z!*s0+?Jo%5vZyR>T^y(~9EJQmbvl09_6q+1-0e$kukUw$ZnrRCmg8#Ce-70zJ++Kb z?P;eCRhY08ZS;Z3z+=>rN` zH0O1ey<9^Lj@L^yA)C>8B$D$;qlO0{VYA00kA9MB+eV+ZShU=>%KDnB>Y5pv{{TYt zA}FX_xe%moTXes>P{p=|1%?Ug=!(bi-j;6aGi%R^n{c38f9ng_W)eEG)Fo zQj#6aRk13?glyzw4xO*vqU=47Lt8ba^5gNTXtLKzP1g5a*cv)`jXJVN8@!V3hMi>f z&_wMc?!m&7(=urpb4%El)0UcBj5kY9EfZ&;gp#EI8A-Qf8{Xfxkrj_j=?kB7q_*m5 z>(YXgwl;aBthT_e;$_n`Qbf6CjCy}E>Zj@l3{TX0uC%ojFi>}53dE9WDKtzp?(hZr znXeYbe4k)Yu*m-an;s8ZP-y=EhiyyTs#_(JKaL$~cb3Ivj^X{1(Y6UG=&739OB@Db zpvx8^See*>oALu3aT$Y6d^y_b`@e0kgX5D(R@yYxJx-{xYaJ1#pt#f0%XXkN<~W{2 zkh4i8Gj5k^7|HsH##%IMMjC_`a7Ebi-=5JE;N`0aM5jh!kiKNK&lmT!QMJ}vH7IDKO;AKi$Pp?b3`;0x_8@gBRI2#29vr*2`o*0^G>?szuE+o@viH+L#kRa> zO&@I(a%<`P}VQh*OpXW$u2dNL#d03m2Y>|$=Dww8h)$ChnZbXR^s;3!+B&nDoqP)zdmGhZ|JoS0T8^9W`m%GCx9;LHs+MdUJOjps^yJtl%prokor36cE zf=H&Go`y)`FiS0SAvueDdwpTJ4?RRRR+j89Wv!Qc)~)zk?zV)M{42EYZZu8P;v!0` z&ZDHAJqnpxjs~a}^a5RhgtKMIRmsNaXAe=s`nS95++w{H(q{B|QpCXIv)qrH`~$;y z%2jP*n@ZTFL2{1vmwKO``P-73XQ5P4PZTh!f~8y3EK3~m)XIr8vQODbukB#i| z0IRDg?3GJLS6M{5g6#809L$aNGK61dA$F_ANOjn)@Z+Y(Y^>iY@O9m5y~k13o1MYns zkbjFkJ?lop+o-hkRwj>EzNt#|)soyD{{Z(=)9m>rrwA2KtA;LEllJRwY97{hpFq^X zb=Cg>33}#jRVA*XO*y2yW$^>3wF!}BGtx~Ls68rbMMh$-6@wsPRamKBn(e)Z($CsE zUbUt80I^bPEB)OmbnSy)d{NdK)}r((C!V5dt6rVbK(yq?1Y6`NwDQ4GAn3V$H0vS#X-NsTtE-pY9+kAUg)|!1O*;>lV6s@5*%ly~cDr&P&Eqyds znpT>e%mFbOBKkJ~N`@qO>S3p@dV1yGjWtze(w2)}g}V1bI{R*$lC7%Vik)IuW2Jhj z7u4DnJwq7!LpuOS88hmdj@H)6*)HGB@Oz@6*E-56>h0P-{{Zn7e72>9YbW)o#Y?n| zchp9PV;rM*-~mqHI=gSWJGK3wz0zvUUGSaQ-65p(>@y_V>eJsE{Xs03$PzSrT|EqN zBeieLIgCdj&LfeF1N4}^QU(~Ll?Ei;w0-?}MPR3s{1SQu#IeuX0YqIy0rEfR`f~`v z8Y(W?T{LdKO;1Ux8(dEnz7E~bL#rdAwA(2W;Avi1wlmD+`hkP1DzVbk)^Dt(WE{jiL<1z><_OIlYWc@)s>$J zKMmS?Tdi!eQBZ1YA`6DZPV zlnmo9VsCAS^t7@Ik_gz@i(KZ7S+6usuI`4A)3ug+B_C?-5VfC9>1{z&(=&rYxQEiI&}UtQii3GkUgr}XvN%(|M#W_q=<&MB5}Qd*N0Idbtx zjIN2uBiyO#FWdb&Ywn#sw%2xlhTnrtI47v4k4D;inP{3jwcehlcwvI)Sg8c94K+go zu#Zc0t_Uo+C9Fb_s^w-;c5lxpzM`y5{8dFNbrgY=rC`3~WXYg0*Wygh4P zu5e7#NnbmZLS4OO`q(s%T&uPb0M)K zQ;KIN%!5RdyTC0z2~;wu(wHT(RyaLw|ZW_&UGCPVEv=14D!b$e=zRlpVE#F z0~Z^mlW(S{XH&-SKAq6t5*NPW$3>uTl37)LQq`?0Q{_|Cv%v_LX?5Es)+8|9^s4|l z$lqG~RNVV1W4Tvf2g99%xB5z|iiYiK(?1M%Lt9r{QB0D@6(wU-C9t%+)Ne(SIK!1B zxW`fM#rH$Gea6+wb=B*z`VU!Z$_k3k(RSYL*?BG(3W_MvswAtcYH6aGRcT_8V^K6k z&KRlsQQcBftUxX92Aq$K5uYRY#D$5U%qeDOxgfUJNCc7U_B`Lv+Q&^>G{<>bO+#Te z`i&)TNKGBV7A7rxx9$<VJy`}B$jh3@Q(OPsA^|Dzj?THk1 z*9w}sgtNU&#z)@Br*0EyVxw?4P`w)NZ*@EE+rH=4cG|^l>^1)Yxf5Hd^$xS{L>;F6 zoo3S-eqFIg>!VjoRIZI1J9_iJ;L(H}fVL&qxE<8gIstp%qrMlhY>o8&UsxOZjU_2crxIPuw+*~>g_Md(6}4ze$y1V` z6L0`-^5j_gfvj^rpSyNF4c-pi>q;7p6{)7t`Y%pYe#+Fpzo(jM^y*W(`e`aLkpzrU zzMzhZcAh$o>FsZ)8u#7`npCvfQt#WHNmC84Puu=hmfalf9YVnjAQ2QQ93n6Ls66$* zyD8qz`FEGNHf#2+?k0ik=WVaI_qTT5is##lZAEsctx{brRMN}?GWuyJsWfGB`(uyl za6*px{6u%#v=Y^|&%P1fZ`z|p(^mHTOxgP<2AwvMQ!Dzlmr6UQ&DA842!cfmGVggC zdL6tR#HBcTWdm*?d-}zGS{3wnDyAq)1ThIoF8!d{fehE!>`8dT^*zyBw_!r(;nIC4*lQ$9IJbeseUCc7Mq>E zil+Ums%v{Wr_FtaDr#n^mfPv9ivU?-Xk|u{6D}P|*c>Rv^xqnN>+T+q1hz_B_t472W9sc`fX0r>niP0-wj8rH7b-7?ex^L z$z`}jETJAU&hAd*BNAkh*z=rp$D;MlvOSsA-Kx_1Cii>Onv+(o{{U0n^zUe^?iKX4 zu}4nPLoHM>NF!X+$NvBlJ?r(TbqoOLUw3t<#3yU}`K0vS7sRfiz3KgbW7T&*>}7U@ z(=^pKC849Ml8gp=Rx-l!A{3Ff7g!r5vT&c_m$;qE_=D}1xUal?UUv@1tgO{Sk68S^ zfYLN{T56s_EYQ`$?L)uPcq1{i#nqNT*i)a4NAa176BH&X zDRkvX*uC?&2N&Imj2&4`tLgNQWU7DJzi`D)p42*qvUzH|Uv-^Qf7*1F5N?U-SwJj> zfM7#l@OrW&)&0lU-w|31T59bF+*x%cPPMaC)xj5SE>!SGPfXFO;YAt^ix4EprF{Vsqb12s@*l};Y&|F8bjzj@xJE${!|umwT=Pc z^|O2Ha_%Q>dyVk?whxJp>t5jQPjP51_4+pXCZ1o~HslnjD(S@qz7|MiECieX025D~ zFT7+XPw?fY>`J(CzpjtU(Mu&13c+d;iHgV{HG_iXm}b7bIKEvYEp{hf_wTg*zwWk= z(?1V7s=4*0T-6n|m;TOb6{)6UMI9qzB&2BWF@=qpAZCaLEUfIZfRtrsj@R|QmbYp1 z+1~O!!lSy?bu!VnXs=5nK_#M^HNt$R?Tsor=kNl*Znh7?rSnyHvhUnmHly#q#5FFk zw8Dl5*GD@uZ82LAJdZxCLZW&G1 zt$6}~KxFO3kM9E4I(NU?=T~S8?c?F=y7uMz;dI;DcD-uWn zR|*1v2UC3$b@-$0A9p*)d(fSk?o@H>+wEdp>ld=Mbx_R&R|>hHs;8bvkQ26{$W6?R z>XYfS07jATA8M|)+b?Z()sNx>;)>q&cMCNw1-kzL-Dy^*P|`IeU0js$(Nl<|Taaz3 zD@p>aYUJl(A$M%&vsYX-eW$vg5WU^e)t$h&y>^_v)OYH78aiFG%w@D%g-nc#>Ex-E zKzTg|^zgBgTTH|!6jF6oReGN7ecBBbbW(a#DngdD&Qd@JvJ%AE%kCYuc*V9})qFt9 z+bw-UdoA6cn7wMfJ6lN&&r29;>S2aEic0>AZ8=dqd&U9T|+e_v@+TCD4vdnHIZ$w zM3rmDGATkV$%rkuTNyM@}K<9Cf2j51b8AZ4}E$cZU! zifSGI00;oDMKmH^9FP)J9012#zWvb}bzK3#QlNz?0YM?iNzKQ)+TO!xV!!ss<5yqk zEf3r4k85>xPLR?uNVba_Nv5pPQ~F^eMwwQs7L=@QB1Q=0Jd8s=7$mItarn)m)SbH2 zx+k`pk4fr1GokHv>4P=B(}KX*kh5TlhlZ})3o}Hk^2*8ynI3Y zMCrP%Z>BFj#0dO94{{X{h#%-In*Ifrwrq}y7S*f7A(f0nY zUs)EKYPiB|ou&ZDpj9gw#4J?NzKOX!TXv zro~3pv(-~gc%ACVj!BxHK&ed{0we>ekV>1|v(KP5#i&kbt2w z*^Y1$Kn_{ZT(fG{8xeTtasC>*+U~}ik4S0#3nNq3-ZfWpt@YET3{+JyK^m+w zNC+)H&%_R0iSxUrPRVx8*Zse->dxp>TcOl?o>6V7qN6`2NvCK;a(unEo(PZ9zOSaN z6y$(&#(LEK-_Tk+N?Ek>(P_#{eec&0-0rl|%3`kD3}vQ4ERrz>UIyd4lahHR4BSp! z+%-pTZhr}lQX?F|LKdsREo!#0Dcn!cJnflxfAHJ zlFEICJo5hl-ioz;*lMsEt~h3vjLA(LY(o#6iwfI8Bb*$PKHWtv*WUQrv^AEnS-WL> z(>B{ZzN&`NK}S%RTa7Dh1}{-t3pkB-l2-?U0nc2_W>y@Kmif-T!Z_TS(M z0G}u3QFjqh7z{Eoz&RP@w=@eWR^0u7uMWo|AvYwsU%($Z0{4?^;jm|Tuq z{vz=BPt|9)eX-LTA5v+}Rc*Xpb&X0xNpjP*lwz0WXDb+Hnk7xAZtRBe*x>cBHC?Xl zsI7mqZTI_@laSOSo280H6+0J#iteXiB=SJd9C_;#_ww~+(^MV3)19I2ZI4=a7QW|b z(gMjzuIOj1YoT$r<1AT`p?L~R>J}cKBMPi?Zw}b@msRNPPo(uGrq(*&SzYS8PHo!Q z>Kol7TWBvLN(na6!A%S~-0NAH8DHrLHxCCL(%cUb!s_PD_>`qtj+Qskj-~bSzL9A~ zJqkcUMZNp*irZIrlR{|Q!L^R&cV_K>)7QA8yxZz-`KK~cvY8@u0yUK!;4sb^So5C` z5qw};t7b9N>5H7sUkJ>Rg*<0DGvoR6PjfB$@{?6+3aWMO-4(agN1%@JX47%h)W*^7 zGRY-qX&)O{25qE(IN-Ngr~5fAe|c{2Pp>qx_Zl4vmDei-vRI9sC=fvra|ws!V+Jm&Wi?v0zlIb;dB=qptTk8b>04`>dIM_u^A`lf@Y_fht z*tU+(cJhnj60=^=+-;Ygay#*JONi7ssc0>YZfMr-Zgbcc&?uh z`nS7x>+kJK`ptFSrnOW<9MsXW#Pn3kf;HNK)j;}$j!FCW6-!L)JygLZ03;1L?chGK znxyFO zgvJ={7{?gKG1oBuG4$VRp|W>2?WpU!Yc{Hy8*RHs=t^qZadoJ+tt4)5O$eD}X7wbU zS%gF?!=1$R%ih~QiN1c&)EaU*je_k#r=%b3Zj!d^ZI(zPo|-wSWQLPvK-{d76)tup zd%c0YFZ!N}$fCDW_mAPC$0SfA8rzp`Vil$=v`p->MUYEwQUZXiSYUYSCIqPpuT;ba z%1V3r--~T~#MYY`yL0v=LQHW0tm#-4*Xo+vqjF!zF?(FL%7$ zVupe@jVRtAY6_JBqJf!RbNLS)C$^;49?stMJ)64yxwGonwN=Vmis}yO#Y+^FlEVX{ zs(LPJ%f<@h=qTC2JdUd_?!|n$OQfr=SN%V%=&l+n-Eq?wZ6j`un%h0CmEN7SlCD~PB{8y(iOWk>I7V6;stM8qj9WmPH)?o;Q0dI{LLkykq`mr*Mg z;no#x>l_Oi=^E&<>B$lcjLEv0Or|Bn5bwL`XxlowxK_z7H(P{#_|O89<*q62J+!T& zxFyB3{UNi|Ls10gIEkc5WMBhj_7~mfjK!f;xU1kGT^yx)k4&yx)LQFB|D8Yw6!_Qg_J+TZCa+EZ2_m0g*k&pC2bm|w% zQ{puHM^F?YIp6dZQqijtu1AxR8!Qh3M9{Z>Vgpj|e+ zMzt29)OuRupf4I*Q|c`{SvPSgt@X7!e)%;E&rLLn%><1Lg6PIDSsN;Lj-ooVQ|mhI z5-95R&bY6phf~_F(nB_>s%^E~?&W}T$e6?(Wy+nXPA z^$n9k*WPqKk<<|xV7OkX-UA2-9SM`u^@zdFGlDUmrJoZ0q0_cL&FVY-leQCR>gp|R zrLJ0y>=h4I)|y(|eE$G7N)d_K=-1Rclwv?NNPd+#UX6lM)T)X^!7|UMEZ>{QTj-4> z`M7kMs8b~+P8^NP?B21N!t#}>R!iIUL>ZvE!NSgX1!Rd zqp!P3L0J@X)>Rn_tTPEqfV+OQl}g|y4sN{A_SP4s8hRS%pXFeZtVt6rPUbZ%RI_Ac zlgGDOb)w1-q2S%|*=Z3rT{ue1on7AD@tJP((+axPsg`)zA>U86a$Z7s4U^-NbJJz2 ze_Ey$+{z1Jvme)~W}~&z&vdLZIYo|kSclmG$Q=GhrV3hmT6%>D+qO5-LHF^|N=XU@ z?ZPyLNix~55(> z!6p^6ob5kur8RUk)ejt#N-*I@6ptMxmXew;S)x9q%M)!m9&maCEtaC@@H17OK}Z*9 z-3fN7ONC`bcdMjQ-LH|=-DDTJ;TI))y{c?Vp}?1lrZ{Z=Bab~tmO0vjjwkvtY=#)( z=ad%P-7w%}f8d2buU!cEKd@;E`!=Do-@7$S+$*Wo+I8CdQA1^`{fTL=vRa9%nQLky zm*tVv%6$ZolO6yp061#4jMCnkiY18_n)uX{2-KuN3)S|MF@o*2HoAZ}91nBk|9;T9YJdU)NN{O}HafW(|>R*}{010NPH9{cA=q9SeQRg@u`ltT@lIkCF zj8k_9x5}l_B|eiF}?mc=OZF_NcZbjyFj?vAnp-gJ!l)j6uf))3-ly z(^jv-P;y{1-E}+Q?>xkrjkkvRT&W(yxJtAMPc#EfZM7$HZ!lWyG;YIsn#+XBRti)n8=1ZQ`2BjiJ4^7ntM%xn zyI$jMH>PB8RqF=Ix~0G;WM`Eej!!?QT_n=|v(q{{*H3D(+O70-@kBjGNcKF(CoJR+ zNg(@mp2e~0RERR=7hlpebhK)m*{mY8?N@22J6mmN?Ud9Ncc~Fp;d^UEFntmhiN4KCcqz=$DcpTqY}+XGRp)@EKQV^ z4y{^IgdcH_1MUxAJsuUYG@JJiscFVfpTA6vVnS8~ zH$_h)L;%4+KEF)!M;T*=M1BeL*+2x4hNC;2l@Hqrm;jA;U=m^R|Mh(4sdulBc)2z zo5YHGiIkJX`6?kmxbKX&X1LJni)3{3DUR<+DTa8=sw52=A>(hfh(X}<^!4{lo%6TV zcHdUoJCj7!QdzY%YEf#j=!E%efB~YY1wbFXMJjSX5_!q%?xc(+eDR)Cyy-lNZX!C} zFG@NciBqO-DufxV-Jm|;+2Yw+D##V3qL|8?vJ|#?C-v!VJ$gRqu8>HKxdFoC{eM1_ z!$(yB^=K#c1js%47jOX>5ESt0y9`TL*Y*U+v**|~`M3^7X^!>zv3 zW@MJrQ1h{DvOysAKm$B3LH5b&b8fjvLdAQb7m77A~cj1CCu zBTc8-m*#A>ZC4VqvlwL}X!#tK;NzaB_M60^!)j|>+NzG6MxQ-FTq$n!3J)(4I1YB? ze(_j)22;_YIg6Y3Ywz1bOG=c3m)0Jpv(oCwqNuQ3sV?=D!YJwO?*dWY;ZLPhgiwi6 zM8O{$*)o@yG(f-r3 zTxPk=O1`XoLvOp$Ap9mk6eU0hjK+5oPES!9{YOx0K37nQ?<)$dYh6-~l_;sg<%!O4 z2LzwjrwUkHetzF>=uo0N8~fjQX{@8Bstr?Rt;-<|=tzNOP5|0SBR)T`NIz=4d#Ueq zlGG_XeP;YjJaEJxVfpp#MGR9j)mf@e6yYM8Oi7FnCq8g_=`!5QVwUYpT<88a-hWg1 z^xfISI9X-ABh|N;*;Q?+E0Md?4o*Gs(Vw)i8lLSJo-@!M&~h}~K(hw-@5T;_gs5tpWXx2Y>@GPN z{eIuCM+=NHugl(P6LRn-VVoQv*ZOo{$uv7^EtMg_`n@dYK1e=KN`Gk6P7OWUm@AQi zGA;@8&*%5YLI@qAJVYr6D;>0eEt+&cH)*I7D`dw^qbDDs2R%cz#qwcit);J|fg?(jf9RfatB4^vjR)Y6ezXR0#7o1N8L1P-hHU3aCsT5gkFDTB2w6p2eL zKSMN`KT{Fp=kw?$<;qJwzSXxGVcx@TqN~JwTww9~=KV>mS(m?V0wWyP@#_1hJ zO1APz$x^CMfI62_YHJKyvU(W%E!oQ1V$<!E@cWLU`cicL ziA)`#Q1uhCZEi^QSZD9-Iz>xSPP*dxCiQU*nvNuCB>YTK82_}qN>NBv~4|(JM|n7Gc_snH-N>aNpi^HnwbIcI;*K`sm8k0 zGoL^NvC+mskZ{B!9$4~t@IO9`)NtFbz&a~a)k45SSxqrnBU8y9FvH&msWNeO%BdZ8 zj4nH(ZXMDIxOHke;ONR7fZPj)A78{VTr{1|u@b5ZdMcP7Y#YVaA5tCcLZ3)5m4E<} zM0mzLXQ{_*b(|Uss--D(#+KAIW(KFLs?|1GYvDVdH`tJw(G~F+1+)F~Jn_^ispqRy zw@FtlP#FQJo)-x6U>+I3$Op*)j-@cRp3}5Ao_1PWY-E|<0II9!>F1Jp@^Vi@Q;DRc z^>^9gmXo$P>by^FI=RtNR%W9&eGgVbq_KKEpIKj`W zGYsZhCHbGo%v7c0FDUW(D0W@s@Tn$_CfKS%1roEhpSS{WsbHvk|kTLX@m zG)HJV$=~`)%kGNp{dL<%Y1_1P-!D;rx6wqiI)@WY^K-%KHr7T6GlL@Jk7W>iHFvJ- zujbH~-rHa4Z#IfUa~f7!>N2yyzAhD2i#N(FMB!KW*xU+^Rk39&_=i+8Z?2wQ{{TpV zN}N)fKwQNv_!Hn5T=6?VD?TiHhf|SF+`T&!mk%Pt+glbHf|bcFr*|>O{M_|d>yGNx z_b%sbyLS&l|`2$)|fc+}%fNwq9ton$X%W z`myxAsx+N1;q^e`3kAkp5JR+#zwqO{FURQi`baZ6i_{7P~mEDgDzExz&MP5@*HD*o(&l^<*m zAIGmufgJ$cyQ3hvLxJplzh1oDM)0LfiZDYD@c%?Hy79J25 zD<`BS|d5yucXR8UVC&)k#zdPJKrhE>%eM62r%O2{d-b>`)0ufJ4Uo`&LS?3T#F zD&c9_)}tGJNnS|+RaF@r@;a_%)ReLU*UdR$ueu_tRaI5gRZ>pQpe`j?WNdbxS zdb%#QJ6-aeLs>@)Rm^tMU1|2MRWVWum4C&6eX>7?9Yt>6+AD0P+Xk+$)EbY|6Hjl0 zOHm(}fMge`sg;W>9tZ>ya&mgTrJXHcB|cXT#^Ynpc-~>yg)KycOG5ts~F{na6Jd>WIG3l=CYdvj4qWfnZUH<2Fm1(VZt8L!i2K5=5 zR#@1)P{-xuD}@05K-^2DGl0m>f7D{-an_rxbrPA_J1n6f*!$1~aeKTK3qkYW4Yuq#N1_e&EtPg+Sm1 zigLu9a50n8&!?G8u$49c0MvgFMnaKLWsvF`hy9_wwL}vE5@`P4jNpcA1w@UH)=H*0 z{y)d7r?vGlU3;UYs~X6JH4~J?R zI=ipLHn;En{_65c`!7mq7;56R(o;es*!5L3)sWQGODnvaRw*My5q(7D65)65hr{J> ze64zywyh?S?egg(Pc*v1YlKxZTtr@+k}#~Qt&vF%pf>CuPn?{w3_}i`{4QkHYjgd- z#1<`wRig}9%XJL}&X2=bg4^vinyvIDvfXmC+b%cG;_7CmufN9=QB%l^NidS2O&O2T z%7EL0jBff*j<>(X5@>p@5!venrq|iJPT){#4L_>yR(%xKui7?^I~}NJKYP6*ZL7(95SUm(!f$<>o2BaDxhwD z46%)dQ4XHJST9r7>3v;3x`y*{RS_g>OEh#A>U4?)2k8x-I2q*h zv{R~AfDJDu%ORmGRPxTiihj*!o{{X_|^frx6@dHJxwYP0_j*^no zbkq+$(w@m#eYer2LQMBKVy&T=RM5>#;+co6KzR-#FUZW=msH!e4YOP8EiqB2G+nb$ zd{M`7(^XWZn#E+N6t%AmtiFj;6iYNt*rsj+fP`RmtG*LHD*G9u^u1j_aC@*c4Q)22 zt*+D>etJ8FMJ?4nP6Va-6o!UR_eYuQCYldXSW1y$N;eq>_uM|#)822_Jsqs-E>x-A zs;=N^NVUC+;Ks5@Cv;1Fai&C+M?70y9ytf&*!u|T(qfhHa#Xj?m_ED@-Yllm)FzId zD?xVzk$xN;i+%NI*FP6}>X!H0Plv5LbJzMqTWbwhbg*hGgt}&;AxdeXp`MBBsC_Fn zEQXq{q{%yp=iMBNs~lxHSzp369;aUEd_-zFbsZg(wzZn-^J}V}gf&g}mhBZp_XMh> zfZJ-rgGmIixsj71X4oD@KxuC7d`5P|y}C2Erh{B-YR=@|dzYl@>N{6g9p+0ujcB8) zj=8DoDnirG46@X~5nY-@+N!uvcFg`BW7iP3d36?#(iHVnHT~k$RPU)Se-jriA3-%l zRO;|jNp7XAfKIArGPOt6!C0uy-X2o3R;2#`r@Q*S_(Rhqs#Yi_sRgp=#M#FO+sDQz z-s8~fJx#7V+h|B_whd*dzAq>&)~F~eY7&lyvT3gr@iNTtMJU9f5V-+&2rZoe_v`FUDHQfJEL&6-D+lvDe0>2^l{YEKxiUZW~!~Bs`-N?-$AUB68rgff=^!FR(H}BrDQj%y=b*^txMrK!e zJvBhgI$;x#nN1N?di7H^oym04 zF0oyGO%zzse4V##F5)5ssc0u7+=+#gOsTu70Tr^Cv$B#>Mr%`t46T2XsR7nd!-~- z%Qe3FQ%zwtCbcrZH&Y>&8dn8#BQPk8aj+-~GAd-xpa2^%f8WX^q%CwZ>C_wyzumYm zavRD1k<|YFUnzC>U^QoKuN}&5Rjo8VO_IgkJBF3E+!~tP^mj`7NGoQgcYi_Us-uyr z8JbpjqmD%Z3~VYs$1FAu>1)pLUwguuD?#cidVMXdG>trWGf`DpTT4_UFxOB`64De) zae7+v8|s~qY;vUMj`Y?wjxA4dw@vUvrmL>~%Yve|-PqlIQFzs~^%4Br2a-u;^wk49 z3ARRnw1kvWNb24AXzq7rKePI@cM{Q6sA{3P+Gne=Qt7L8;2H=XpfL$l>c)^&Rz+0k zip4z^<8Owi)TUM=EkRv^2>d?{x8)J*#v>;fO+w02kd}245-r^K_2M*&=i(vnkKFHz zA$YH~+%D2x^j$q2Rjn$chtqhd{#qt7$nvy_0zi_;&AHtqa2Fv)p6_h5HV=gk;`YuS z?N)amU3TulO<~ow_nU3iR<4SZR8vJFh@RmkI#h~@BLbv{k)TCVp?p%^(Ya}DYpOes zb)wTWlzL-b&jfYWX0*jeER^9HX%=vvq)SlJ7n+`+H>BcUNzQy9+>70xTXrvATk15$ zJ@35GSgqE(CacqWR+5GbwW@w&S8CyUxTUi}>01>Zr_#2m8LKap zH#;KG&cur9Z$=7e)uw6lBS$BqRX1(Tf8R>^E*j6`TH_skD6+@dtq)75ZSgZ1?3Tu_ zut`m6sy@9zYS^RZXZ4sfvp6A09X$5KUTNOncel8fyM?b-(cU|iVz5J?JCmgC_F9VS z8cIulsa+IC?GwOh>Hq=V0d3T(g-Ih6uDRDX{^`x}9k2BMpPx_KwRV%!k$kOG5It2) zvDVvRnzpOuQ6Wj{9yuj(5DU4yl21sv@>PZ)B;T|35hLPc3MKpHm8@-aUs@SD&1`N$tUq=lrp=FRqAE$s( zcUK*})mke-{8RRuQR>>gTWD$?-{{M2wY2pW46us3hM%|4N^8YShZJ6wOswV*WCvp@ z1Pspm&q?tcdH7$Y);g<4_J2d!FItV^)|z(Fr0tgLs@h>&Vq0oynpq`wEj>QzRb=(l zJRwvnZAT8r>3w0TySu7}n$(&*Oi)`pP1?l1O|P_7HQ?RWXf1w?6cW@ij+$9aWmD;P zX&M|TWmZ{pi52p|;IE+YiyFDJ*Igk=ODQQNSlyk74&}x5{6%rzty!jZhj4ZNs?im1 zK9H^WSg}W@Ebf%)E}gfEssRlQqMm68bzP1`k~5E(+IR!4ecPICJ=(8>mA>iz;z3iW zzuEm&`$XR_bJ=F7was~=p{%Q-rKgW}VKvX_nB_;AUNSdrDV%TJYfiJX>)!Xv+#ORv zebsmGhg(h7=2uM8S*N$jQB`JDw$xG5GbD4sQ)ev9$*_`m>cX-2lHIC%Jy&guwU*0m z*3Y2obOxQ&wtL^8;?qkJQ`S)1u-g+COR zK{Bpn(#lX^?ii4CXS=q#9oR(gvRZzdxc>kUnqKkTU4LiMcJAKZt~I@#&`YS6E6%sO zQPoKuZRWA3F4YXn9EMz#k@1C8iX)jP#PwuWPl#Tcy1)=I>qN%m^ z+LSdx{iJE)+v(3Sm*$pAmu-MMFxsdETcP!n_Tyb#wXHUeyXtGrcA2fy7BsW!7_Ai) z4RqDlWO}ITr;0>L0HIvDz{56p>r_ogr>~J|EmLaKI*zicWy8f^)R@-`q^!g zW-?aX*ez7{VNolYW{py7gEc%bqrhLLC~BqFVd)vWT(-Y2W)}sir?2Snra>KOAgQwt z>ekQ1a1VV$L0zlSRvy!Kmh-17d!KK+>g`#lFBY$OuheqMZli|%M{KykaJQn(4MkNm!eDEFiUc(F z?Xksgr;U#j9sNQtKNPku*XqhH*HP#yEm^O%P0|Y6_3H0>f(n~FRLJcFwREct%STX& z13fLhHi~H8BKu!>XpOVtPe z6iSm(Sy>=?rJ2zcO00c8y15dnl7hB84(;soF+UKl!@eq>M_iHpz~&he3%CSjC4z?# z4T)h2J}c7AOWm4C7gg!IoxVLZza?q8+BB?i*<_lr-Qt2;)=4EYKKWlN+gScQu?r;Z zUaakQlkFAys`;vWYoM#Nf>YiowIq7eOkOLgu5w2;x;lYxiX#=iLlQ?yj9j#$W=yX= zRJ!i(WbRG;YaZhE!?#+8xU{-*x*MeQ_ExN>tP#sR)Rf7&(8!eNRx>Cl^95o`DGDTd ze^cqM-`h3cZgh8Nv~(JGRZw42Tg@kF5pKG|n%4wN6o0ZOs>O0WMZr=zrj-z+b7C>O zdeBm06!S3&(~&SUH{iDoy@<)-nARCp(n`A73vgTwKrTBvoZB{M01>M&HU9u+Q$xkv z_SJIg9WSeUiLL9Zs&AU(Uw4|xJ;vQjBrF_q44e>K( zsMOkX3Ey;1h5 z^xtAHdVf^EZf(a~U#lxAyKSMY`UaMk_jiC&2&%E@uxe=HS!P$M1OnMr3qSI#-Uq@prGHE|6Pd zc??j%r*y8rOl!C*n&!%?O%gK~Mp8$B_s-qW%|a81(P4&U))cLt;YuWBE;56-BX9#X z%wC@v`a=HzsDHBckEhpDX^S0AMcRi;jbBwqMS8wP1Yu;l34~OX)O66o?3t0?Xu_#e^#;TZFhC6xlc=OxXn*RJ+n?hEGhDm(ZZa_A(>oC z$eG_3_Dv7po!8Vxz6{(bAN^>Hk6O7PUNgxusvljY!j>jHr^ z>@WhGV(y-x?fkX6633^ly4Ob5UefPD7Nn)U>I#Z_W3h~BRZBu?oW#&$Y(`a%Rct(k zPHjPBy$jOUo>f1A?pNxB-C)cVfW15)5PO^|F&u+%CFm zC)+Dc*0W6qcOolbc++5^qKZ_knr8IwP`(t;k zu`Z+6eY&lrve|SUfi6^fH%-^iNjgy1R@&+c?erjyK}cm#T;va+;c3lRXV*2_#;?9V zur+shyMtlXvNvXXQko9wNo&!A=N_-;YMN-^`In6Bop01rV%LLiSzkV>d zUME7DS?Ci96D@nYUe^W5`J6Ep0xVB}dv)_ycU!o9*VK2-H&ASKl;7KJO{pyvhVfG^ zbQMKnq`9p`P*S0kQ<)(vCg{~u2nx4VXLMk&&3Nuzit%gK9lGoWknUC54O<2J^)-H_ z?v|rjnTwXnBWpfvxES-t?dxtZWaBl0#ZhT{t$Jww9|08awWJ@R7$pEro2EFeH@ZO zv~;K9RNQp8VPdDXcEXzVZnj*st*1fu)u<_>{hf4%1n&utF(m`H*h{DY!sGxubt4oP}1CV?uewQtB_Vw0M$^*y=h{ocY1K= z5h{)pt4(j$OGc?)>&M!c)f!Xc4^miYD>Z%JSN8^Motn!NU+LcKM{9Re7yGc0<&@LL zixVoK`n*$py46*hDvqu`%l3%nu3bTA~!!bshul@#te_!*45A!Zu>fngA)`c>;u4CJP;0K@ z&0j-R+djYcwLQ(T z>dxF*EdKxtmOjB+?^aI7S*Er_sqNQvl7gyf=W1%5+hHWnB#d(*m}Oax*U5UbQr&y` zS6|+~_gpG19gfo%14F0u)vOp~)DuaX$(3$Y%aBuQl3BQ`+VQTLxjP|$a;Rd;8(nt~dd^|Me{+h}iA zJ5@BAQiNnAQpZI+%XF?#<{EV_#FQ>cMN(AMeVr?Oi0tF=tl+wP%Q4GpdsDP@wPre9teM$rPkHpa|LE&%d02AS3$2llSjX-ht) z)4CGrsiW=7Q0kpEQ}Fv+Q>?3XFQ&lP)9RL}T6$=Ge@)N?Vye74egw?WYfVq2D&f`o zGW~GVTAxqT$t|++ZIwik6A_8j?^ahvQp#0<3=RlAUQC>cH2|9d^#j|+jz0h4kAT57#TsPBIpWa?c{b-$*YzufH>3L5H=>2Id~&s7$V7*Td6>11|d z7js}_kOx(7V(%U6tnCJ|w08dcuHv>m(@sO%N(*&cLr66b?Pw>e5K78+EN};sY%q*2 z;{5ej{8pYqrm0*7yiNUL7x7wI7>TJ;*2E+N=?c36n`6(6KD>K0H1_Q^tgM~D zyZ26MAcBU=NlRz8#c;LH6mg@&R@LcKG9k#6&Z0c*F~dx0e%WcuO~1GF_q|J9sVD8N z^67t`<4svtOHW^SuATu=Rwjvytqm-c$^@h9sFeL1fjvs~#=q6KYWj^iL#XdJy-i#JZ9rG5^nENr9M@VE#rKqJr zQBvHCfQEfkHQL*QYwsxRZ*G1gv@VW&&u;EfPMYt!kJsEA9vYMi*=Ti|I zr>ZbT90e4U5>#ht`pTJdu~Ja?BK1LUrL$>jx}Nx4t1VSqp5gLZhT(B&mbO+!WO}({ zVkzNXDWW^%3fu_xj;5;7&?P>a)*8OntyMjI)zDn!Hw(?`vN+OO`k4J+s=A?mm?*&6 z6k#Qla5km9Yin0)Ej0SR^)m>l?t)7-wu^)d5x{Fy$ek%uRy zDsh>03y~;hvpxH^<*ZZGV-oA=q|!?3078K$HH!=74B_r~Ya5*}9_{LD?{B+Jt@R$g z*IM^n#beggnrSE{(UrCs>OBZ*BaWV*=MW0Wr}fxWTp}*B`amHn0P3>%daCY}H2u-l z7yj;CG)}P8mg{|eKW}tLXd6^EpQLw@DdcKOYG?GO*zT~?1_6KK%91Ey)jb@Y!qqjg zYkuXsHxY{LO5Uap~-d0XQ0B@vW&f92&-olexAnK|$OWrTv3$vTADf zrMBDSE|aw_Wfi%;N@r9gIcYwzfJXvC|aEbGlU1Ym2?YwzO6HwB;xCDJJxhq&}o^5@s^tu)DKJ zcevT*?mc&O`_EGrqtkkCNm}&ojnfOF?izZhTUS9(z1CWLv%OMNMl8sak^dM@M zu=>I$7D{jto^Vp$=oyN&Q5PpAvkQyrHodbRz16+I_%=F%uHk0vz?Vc)TXi0y?lzHX zYDBk5N|Dx8+u};b1T{RYwBDj&q~0AL@rdlm9<||3Tir+biDUlQ7&*6 zH3;h%+!qQJA&Y=FWQdjcf<_<~lIa&saiyoZrCsw{>Q=aVjRU-H0>!$2sBQG&SeaA+ z1}%=x=-qX5vuIs=s%~@^+Nw)DlyzES#Wg)Ww#P+JajU4Lr;?w3+2)8yo29}w*W)KS z%=$w{G%ZQ4b)**RZB&#=9*)x%_?4)1eXW>}lZj64)9otE*i*Z9NjU0nYNEJbD(yB) zWjzqOPj*;s%`^@X};k~ zr6?8vCSeCKDFGo&HHDf1RZB^$E)(z5ajBMHo1IrI8CD_@cNbj! zK!zFPJy@6hQu>Gq*GB0*D^*hns<_3cA(A?mdA3MI})P2=UEw;L@y5u8vks?~@7zp=9Rf&jzNL4G0n*xIOs5KSpgSEZ? z0JLdJU13p8PSy=+VYtEbZ&@O4iYka9MO9f2^x%YJ^o8U&oBSeraMMVM*CpAzB#5F%`7fTrZs9{w_a`I(E=@>bh>+=?cjxjV(#BQcD!79a?2b#wA?y_*4!tML)IF~?_qgDz+LbknQtZ<_Yk*(qRlynZbI&w4#bhxh$4N_0 zqBtkeuOb$SQKZE3f?t412R=#Qj<0=3EVSPd8YzupmY22_G1M2>irM*=!vIKN0bj-E zZ-LcE@mi2eO`_2zde&VjaU0t|yW2hh7{}6l@*h%@>6k^IM(@%}WSvZ- z=m@{Ig+0}fOJ(kSDpEsI*9NMNS00-$?Rx}-hw`Tq4xqa-doea}5h^aaY< zrZ4vE)zZ$lt3|%4(&c62bwpCe@km0sD&#DTb`gj1k(~6jnDsSO#8V|19FEq5&Gip{wC1>in$fOw6Y5Pel|rJr!*;EvtV)*(!ZKqt z@t`V6IVay8M*Hn??e4C)Q#OUQ$7Q!ztktx%i$i0Efodvc5hN^jdUC8Wm@pLk9DoN{ zkNui=3bwkUYAs-}+hYb{EcI1VYy{*c0m&ng{{UR|gsteE4R$3mVXF!4Y6R(3aX}X2hA(3KrN$xv{+^ep;3uLLbT(lR%?w-?^J5_vjRJD*=sIBuWpe0JpOc~UM z+ClukUZySaPjd_;lEZUGE=e)!h#NTzfwic)!3W_cF#2_Jl~S_eYac1O36nQfX6xjMq&YF*ap+$~c_S+(Ve!hdv!U{zNH zC_(IVo_cLv4WgSZOPN>~a-#0%y51JHunPTH=-SZoC!}q|&;m*2-4tf3uy$9vo#N7( z@3z9k?rE4C(`M8rdqkyp1PS8fTia#{_}DYhdJusv}#R9r0wxqEIP+t+ALH; zN1(Dk^-0{jV%0i@b!*eQ~IrePMB1=O3e4L2V37U z@6sBNZ!LBmPk67k=xg<}L)i3ozNWNlT_dE8H1fEyS4S#Txj74yp`eF&CyTnL&6EibFNzY1Y6&Znv}t59ky z)j6fRYkuHdY2G0XMHS0m-R7p9M&QdNPf$`oz~F`jNZ^cTr|WNV>um3TxXEJDdY@8W zjS&9Q>uoa)!m^Oj)5T2?h`s?Hlu@bw0L;7cSdv{|NhqpNq?Hu*N?oaUqONKnm`+&+Nl#NFAoy~$|nQ{8B7w(41`FBU6(9CeOllCGjOMy4{z6d@7-7=SR@ zIojN3$2vYb)>gLKF4R_g&BB)XX1H4H7du_5YS}4kVv!{@(?t|dAc|#K8D%GEJAH`i zi|#I^le+OkPpoXVDPX75RJJOiX15wIo27zjr-T$n3Z9$F#Z>?UoMUkvJSTPgok>ka zZ>R1aw1$c*VFX^4?pAH8yI1RS&EZEN=iKD;)LMLUid^&?fQ<+N$Ywp(8gq-RSM`en zo+e2Wlu$rr0j`GNl=Bwe?-pL3udz~DJ|1P%mkLcOWv}>pmd5p$`dO)Bq%TQT1u{si z0fm9u8*m3a3}ke#Nmpt8Guy3e+v{I@bTz+F)aq#NuxeX2rLLrk8dkSc#M@dFKC|zJ zP0_Jn1BNGXP$(u+~SoKmyfRnI0^Nf@H&rrhKLXw`F0C#;E zE)Fy8_CEbLH>5Ip>5G>w!75_pSeMc{B<`0Fj$GL?fz$;kkfta~OXVj0mkn_m`n$NA zQe8h+U8uG8o9?_9tu>_KqwRe4a}iH@w-D8{I`FY1jEkHv)PEANARLeJeccT?-5d98 z==7z!o(*mCR*TN9p|s00)7qq`54jnnL`6u$03RH#Gu3&lwUqXGsWkqbfZa9S>OIs@ zw2C3O$M028f4Zs$c_YSi)n%tNteU!_uED3S_ZG6$0shi^hb(IIUn_wu)YQC;QlkYN z9(JE@Ix~yTtr@0_sc^5Y-%>AcAsTEu8LX_PRN9b~OCU3XRN$W0V&$$t8|`3BG;6<; zxM-X0MI7rrEyk{ncq&o;hKySRcY#( zsTqABRK&S-B$J$t$M_NU>g}kP2#vLZ(~aguLxOU7@t^zkkbWI6EkUYpwkBi?aifl= zog`)i%NrFtaB<4FJ!|G9M&yTLXTvH0K?lx%*SYH-jnVuzEVPXYaU4gc^dG}IOHhDV z6PtY%c&_`aRab7&@>WpQR$J=r_v$H9rjDiIl>ui~!BQAxHaI>T-=31|>dJ^MeZq(w*he(v2?_+fjDDrk_hx zYYU7NRO0NlbWKjFQ8^16uF^rye^H*NNvCzyhqT?%(Y70pU~Q>Ea@F+x&Q9W8XzM;@ zDk<$%6jKKb9aqt*se}}5t2d%ZCpgq#RC8uhOHo+@=l=ju4e5B*^iq;?sANrhW>K(v zxD9VU=;aOmvI*^%N_u+8Dln@vLk&`~4ZVJ?p#Ebg++*_Uu%&q%l@bzD90up|>#{!= z_f0FQz8)+Zj@?cy~J zXNLDtaHpm=+1@9&#T<|GD!GjqIT%uSC)=o1J8qF(S%5MC$HD5&*D=%8UZ$E!X_?Gu zT54BPj!4dOILONL*!K`ja-D67IW@|KRI0xxKFGg_gWZSC%BNNu$~ zgqFyoc?D0VOa+9DprLRBVCM~xIO&##t!H{-$ndMk5=UNm&OgtoB}FYIQpWWR7hu52 z;QqZ8Nd>YgqD7GhryyVfz+w)1a7%T$gPNn%vqrDB+vfhs+p6m5Dyde#L_I|fMMWFL zDE9M|6!2AOo3lfl;dcuHR$v?KIyNor<6Rnm7 z5{3rF5MsvYTdjlx!x4kQMulB8$#^>gFg^*CyD zc_OC~h~6rJNF!_oVY>eSPDx{o6NOx3->UbxUsbNvRV2Q&jda~3`rC=krqv)hI63@8 z{{SC7HAqv|-$301{^DOkXnx~BBdP+HC zZ%}O;qejbqT#l+O@aZRIAGBoD{{R6gLuIS~0BmDjRcfucL2sd=rJAauEA?CpNlO`$ zMsu}50CVLr*0St>VC(eVEceZ6q@=97S453&x7NmvutGwxC0K#DhW?#Bd_F?QTx+%6 zOtVtg)I4*1qR;8EtB@8##1uS_sB?^uezuxLap6|EBqxLZsXuxn`N{{W`zC7yE6 z%wuW{w4>!7u@zah97rQe1;R+iSOXZ{&);*5ewg>^&Km7gPZN*WHThx0azPn!?}7E> z-{11-`ahh=-E)iwjFulHu1Uuj8;8HKBhO!| z$|zeMV`LCU$N@e%A7B1q{d!9!$5(C{)7LN+08*ly#^r@1Su!={ywyi_0v__=U*Bw7s zBvsUYv|?jTnC67~(YOmHav3q>!99J|zfnb7EN>aOt4Am!4Qq^NBOLNi@dSD6?yhkB zQnrdwLJM9eQdZDNNleK(yM~^IDY&R>=?cw5F`6|X@ZX1#jQ;>Wm%&$0P{|d}4@td2 zx@glZgFbw7{Q4m%tEk)8pq-|R#?@@?{vY(|-jcrGR^cvi%Nq#!sHTgY{$nFOckl>x zA2A$FKpR7?zROoLJ#CI!nd66SvdKXiGQcuCpgGTurh@ZTDv#R~iFQ~cP`ArWO$BT` z5I2NXEkShm4k`E)n<2_2LZgsCu zJ<{)Od&MoC5(xE1nW$O|jRc#1k5)Lw=?MYy7y^F%8WS+O)3v?+Jt3mAEkHkki1o(V z9nspR&0YIt;f%XaOHOI46@rc)Jdk#ggS2Gx$?73jdy+{FJ?;@u(XmlG#uh}$JQIPF zxdFml0&093rnss8VN3XX9e_Uff z_v^)3-0nT;{vl?oiBrR^t7M>jspIqi09^EX*Tpap+@SQ_;0ACx=kM+9(g&uR0qW3B&ZP!XnSjwLXDCPlCtdtouC2dJ$huBrdp0$Ho8N#6g58z zrIhx0_iYdhO>>J}BAiYUOsegYFvZC~(ShkTwyH@r74~56GX*+e`9DC<^b?CO}lc zg8Xfz;L0YI^)8?)+e*hsxd;CMvH2waeMpi<{pRt!7ao7dsNK3k*WF6&q-?9FjQ~Ig z(u@e>sX`+-+!dI~A|z49h1uAg1quNqlYjupImb~d5_-U%NgjeKt7Rn51Arev5Zzd0 z-5kqVQvy>`G_4&ybHmAS17S$X>-1UBD5Yti)%lBfA!x z<&n)b?$vyK;vkX*9;QB) zZ2JyQKK*QHDNu?ul_KMnAd+5Z5v zGm3fZmLm$zV=`^s>3}ni03U80s{7g8i@lb8D^=Y6e?5|}$w_6Xw!XNnXeXeicakc0 zLoOKuyBr<}BzWpKcP;&wx55YG6yz#_?HMEa^-Y?Wr>vPhHo(YGJdUmZ0O89>05^18 z%cYYr7f6le*$;^>;r4YZ=;^OIqf=?q+pE5u($>kfWU)S%nz7-PD(GF-ML?3mt?6I` z>_#wmWt+PCgW_MeoxY{G-YWIZwxal+w#{y&Kw75BD zatYx_C9HIHPfZrclrHAWvXdFe5Yr&p!wOH#@P6bv0o^A<=qCo+N&*c-L-99 z#*J$ccU00#A@pWar<7z>#(Co&-BZ%qj8P<{7|8^cIot;xf1g?}TlVekUBRx=Iyp5q zt+>2)ic5VpZETk-tz55Yq?LoqCJDiL8|ph%LvjG>7pnVz+$}E+)?5CC)wWf!)6$!( z*IG!9kW`Y8Zggf=X&4m&3v#4zMmo!4)YUU97P)C9FRXD~NL32Sxlmg%1nYM;alY|R zq=^J?8^$E{Mj|Afsq>%d(rF@4cd2e4B=tSj-L~!qjit5L>kS2}^tC0@LMW>**2aY; zeWA>LPRHBM$J*G>9YbC?zFH{aX&zZ+CRS_(A7BVRG1XMr6QoSau*B?PwM&?jmSAEy z*z&cZ8DqJf4&%F!%lN-ej}b_Bdp6y}3NoYg=$4cugfaXq6(jIJUYs^O%PYZ^L`4!Y z1clFldTflPh=}Bsp4O4{X(-!+&Hw<8GJnsGfVGsU=(5(*#!H@Nlx-N#l6V|~KVCXf z6E^seyN{uFIBe%Q^Plz4U6A+^);5h#+4`*{^V;gKU9{9S7V7$1c#z2zHB&WZGf9l{ zM6#}Z%xBylt#Eo771PRQlcU?hE-(xYc>O}8CSXGcxOep&V~2MgQ50@$nsTO^w*LS! z8R{z;iHg?_a%OT!1;989&yntWjmszOsyf?7QlwX$Z@+&hjyGGIx7;>tiDaq^B=( z57(W&BW+31De0cNV6l}MPGSkpcrYP=y`R6I<~GPX#Z@d&+a98XR?L)NIawvHhK>?s z3I6dhU9iNga?Ia^0($)m{3(1t*!wl1>8{giOMh{7=C7cJr%-najUZ}zh*@`~H3LR4 zDAzetl4K`)azI=~-_L{nKde41Ef)ARczaiQC64!dyFm3ZLrApv7iKF9ENbkEm?s;h zs#0=EC#~`eUX#=9>B9x1PHBrb?x3fq+Z7EJG(0M(94bbb0DAyBnJPjg0+bC;r@rj~ zr9fK0BSnBy0X}5u(%8#6LCV(xw^|)WV}hcp3-XkoW2ex^KEwlpIODGV z_HXuw#kYNQ*LStfmA6G`?0hw~8ae)6VJg*C)jQC~FVrJxVT1=_s(!c-k@aV+N&f(~ zOH0?%d`D@!)xvsuyMCwbeLGN6iQG#{X=>$)MRC9i#z4a!<-XlWRElZmQJEuNEN(rv zkuwC8oIHhO|qK*I)e%aR}AdoS%AJ-Wj5NH^c zCh-XRK*y@w{zHzZQ0aOan0CcS9JMS9lfFVxS0#u5;0$Lu9^Da9WQLK=G}hRWQL(zB zlx_?F$OPw)ANJ{zGX@4V$?A_}kAC^YAW;+{R`dbRL5i*T+Ud5c z-EON?q@2eU!jQ=re?_*jQNh9So(GvzaKP2?Q~EG=MabDcvh%lE)rpNUV;E3Z9@qpA&m{EGCr8p9Ote23uq>606m>Dip@VvEsM*Su$qWzN zAAYPp+)rvycw^s-V}^){cZ)3th*3u@F$Mm{bQ&_^9bGbJmS%7!df zKdD#|hGH?tRrM*EHftu@UvYTE^pyyiF;dx!Ys24^LMt>rw$S~#yjtt%uNI5WneL6R zP&AZ@H8n*g3AQ>>-J@39BykyA3obr~;NXt7H)f-}ch|jriqoCryx#kxr6ue-YTLe- z)^*ZWTdOWnHOV2Vnw`(3E2r%i0hvxfQOHHxeCmBAbMB9GyLYGR`-fd_)l&8^O;t5s zrqJf&ReYVH2~{G~M9RL4Jxp>}Lr_AdQIj09rTAC2Xq_|M{Xn(ai$hy)dJ@5N(e$*C zTqJ3QIJ!?1u*Fcz91lw!O`faKPx$DJ;njBYhUuKz>O2~Hsnl5JxFOuMXZkFfxm_ri zCTd<+Sfu8#O0tG7mp6R}mX2Qgg;DS=p>F!l!+Y!=pKH#76ys3TX^z6pBouPg(>&D5 z^|Y|8aQcX{ZD({JLv!OfOHX_o_FKDF`t4<=zA0kTpFdn`FSaddL2tNJQdUiuk!6xf zs(C)C1f+VKoP`9l9(w5?aWqbr)LK`(7Rny%TWu@cnrEuL!Ed3mR#a3x6v~m)=2U5B zMiC@?8JU8!EKLz$!=E=#g)9B%N9Y|pCDT}G_;h8K=+`>RPlo#W<?q72nww~2jst%K=x&GR$tE}{)k)(&$f)7!qhy-Z>P|7@D z^t0l#;a9d=Yfn(>{?6EK9jVqjPMPYdTS?l|o*S8(s*;&usu{sevcHcxImqLyN3!1x zRGJ@0=^I2H^uIkD-|X6_T4?H<6{emF>xCrnRje{b@%+^~tHTnMX$vo>&pdTy{7Y2R z)@YloP|p=rJdb6B%?!doOIOb^8B_M92OpPN`fNhIc=8OYl}u;MNpz4J?azH-aU3>= zZWOs|lmH>L5z7lcnb+4Y-`zWrU)wv?hf7$Mt(V)tjv1(Erb4Maij66fTYQW|I)pxh z5a@8H9@C{t&jgaiT7_gqt(|Jn$ry@i7>u5(hW-2ozM0~w9LX2aASb82EpoZqHJ8N& zH6_~h9kqTKD{3pOw9_%7o~fs`#T?Qp$VUq#fDyHsON`^KYo|UJpuF5QnY>(klQGk} zhB{3xL12p6MJ}qhid`);*268yOcKDA5eUnxC_apc32}qnk%W9oB`Q^&Ae-pmn|Vjf zn9oILjAN+7!BEQO$g`3IUrTc_l4u%Y`fRmiQX5Ul>+Kag8BrvjmsC?!O$J6_S%m}= zG-C_A?f`SvPSFaD+m7!%hGpNTwCqmt?kW}UFy&YV0OTq18^^a@QMh&kwz_M$J-zMp zy02YcXVlj!+DFv%cgtlw6i`ydt7MgCjM2!+gi45vfreyYKtPNRBD412KwrCi@fUgR z*0IsLV@hdiTQ#-_`;*;x?lslZQe1sjs;6pd2tlQ*3mi1rMrmZuHsk>+p9`#$Af%8; zP~XRXQ0*26h{%wntT_ruXLDlepyEj3v|BhhF(V`aFF{@c;lEcVJxO)amL{mu+N$Mi zYfh4Dl`U*FGAw^JMWgL=Qp{r9Ll|nSDyBstfO#3fBMpERn` zw3?Sx0%R&UJC_IS8~Akwpt(E~L*f0I?x=h5C5Q&u}!&R-Vwhj$4%-Ez0MkZaRGG%G(r@!Ex<& zr1=;qsj$-`eDxh#(*!a`r9(ssY-a`O+S`tm)AQ8ZJF!_Vo6|N*iftJtt)z`?sILu0 zbzYsW^x_P+CNQXmS1!Q9yI2pT=L^oUq194Z>+e%k)!1xS`sg$!oT#?JS6L~Jr{CG{RkheH2N%oo>gw zzAbBSd+cvvp?=`mbxoe_bEB3TTG~B5Sd_QgEz?s=TLXkZ@%oEAEK!(mQUT!gG_rR( z$F8d>XnSv_ZaT}le?2X`NZ2OR)hSeBmKKs~x7b_#(lmp61BPO8$30Nj7q7WhQPy4F zwx(NkEYMpma&BsSH5=B{)uk0LsKkg-sw5z{)%D<Z<)8scqEr zEESfT*s)Ud%JF`>JXY@H_l~Z~QEt>%tCaLXqwSuXqiwZx{{X)# zwG(0`gc*}2Lo3onuNF&oo7A`ZTKflYH0$Zxv=o}g&uFmNsqA_>d5tu5HdyYrT3H(N zS|F53H==+mG0xM4F1@AJdM{Se-usE6E>>>e_rm+9&9hx;YXuA1DKyO)thQ0qR#{<| znzo|hd#a?SbcT3Lfts>0F%25-v#P1+?N&RLWi1^hmDSoJ!6k2OMgIUz)ZA$MKMlgF zNs>$d0M69QQ(da>3no|?USyJ3zyL_nRa#?sJgL$;v{-HB_V5R}jA%MX(MlXfgDL<@ zl8|koZU;wTJH?KJEh3WJs+QE0(`ckEJDBT!YfYq0_2fs0tVdxdAxjg_zf)}^RRN<* zMI_dUV}-qSs-~z)wWnYinpj|^wo@$AnHgFpnnMh1T4o(>)AXgF7#z7m1I6Im(eY@`maP|J8rm|@r8$`2F zM>TGzy52jXsiw8sEdG&Nnd=O-hA7|>Gk_d3G2nC0Sg+xgl+&F-+uyeT032GUqczlk zg`02Zp}5h#>l#E>(^VO5)DX<`JuO{ST9V&!H1@dZqb}0C_1Q*RMV6pRRazOOs$?-m zgamaLt*jc_<)-QFw)(5!yri)9;7g-pt-ESSJwnx2Sg7kN(w@nu;oXXG;5+AVCymA5 zs@qttJoc(u{Xt~al_^+Bnqiw{wzI!b!< zc)d%uy0h!c@5xVgvC8zf9`fAjA`%;25oQA0rRg_qc?Z%~2IS`~?8zcQ$oYk@zTNt9 zW3dhxDZ@sU)3o5@$nrLQn)<&eOe!>}px<3zqK!u9BHtYrjFpR&-Ih^XBNoo$NzdEc zr+8{Kl_Fs(^gTLHPf%;EvQX%qKiw)rWaJK_vUghLHmRRMcI!{-uJ7xM zT|Bk=zJs+|v-Td8(=bCEFvDxN#Y+Nuu+pjsTBcT0B!%!_a7b&4pNcxGRejRWchH)m z({`b$YI>_Z%e^-VJM{jfR@lthGLjvQ$*)e&5`+b%KjXQq(H~YwGB&bnh$edX<%z z(_-a9a0$%5o8Y(NTFYy{>k2Jp+I>mit#Y$bUiG#9w!RuoFKr?)v02q~ ziG@&dPgTVa#XQ}c?L~uMQ0ZtYJB8otm2%rHm3_##TqU(>%Y3p^M{sXcNg~NK-m0Kc z5Fr81V<1SJ*e+qs;9fhJZ!cu;p^W{y%Zrw=aQ6|hwSU5|#7?%-9k}e2 z+RwJSTeI3;+L7x^{+<)1{{U1=>iUlur;3UgDWW5SM6A*`?dj%J?LC^(hvoD~ZuDo)#As;)uKxg4<&O_M$PcM7`hjD&gVuISSA09PC%x-UHSs0d z&cgQA(Me4Gw9`>)xvu)6pa5E$o(5l;tZ8K|WUHJNiZ;gVgVQzs>8UK1`)_)C%cga{ zkhj5C`xD{U;o`BYt+aIBgnPwx#u);($bpUau-`L|d;!&h=LF8oQsmoD4-d>=)T;zU zw5n|^)&K`813(-4c>%S!=^DKJ758fOtR>dEy7k(6__R$75OzPd*2rt()3yeVRVdYH zV&6DaQpG^bvN0^c0fze*z#ntw)t64;_XE5-OI7PB=8C4!(`aerqot}253KRYRf!f9 z+#!o-MLS6csuQ*ytnX&4uc7ZpaG~zbqrK{RWx8o<2~F0b-)yIfH+8P4rba1{QZ%KY z1M1$a*&B%3y{6Gue%aakkKCPCTdin>wC!oM>9KB@R>x6T@HDr1T6aXOtCYPe<}k6q zw9gWfLx9RrA(RSi*CpG+B2lXWtHgS*f|`_NDpJ(8N>Y)T$7g;Zhu!0xUlRJR?NzC@ zu8FwRicz97BN5|j`0F>xf2FfpqPAEhdFmvO*QuUL zTvSs|zy^<%$xxZbKjzO{4x8ZamW?T>tF_m7CXC1>H5VN*V+kyciDh!qT-$q)&dhgb zaU|!Skw3##m_2c#)>`qasqnPWe`d7DtkJQ2vu?Wr2Gl%&JoxejbgJnz$;yD<@9%fs zDJXhLhhb_|ytkQWmtxSmL=I2OWSn4Zf z3abPnLlrWos&SFj8v5C?>AK*T1hegM{@y9^JY=Ssb7iITaL_xpj@z@@!HA67K8BaN zTI0E;ZgtwHQ&&$NvP!BV!oZajrk&xAK1A0!q26(lDdS?z$?5u<%J%9@T?Gvt6dHPy zPMB>_(uRWHNlFgMA&jXGlxZpb^+p5L%Y}^N%gwmZm#mg(=zR+7RMf?zxqj^uIFG75 zN8HIyxmT&K`edk*Hi|Mq>M^J_MAq7xYd(`mFB<;+Z;q~+ZY)xk$xj(TFBc_1pDjxW z4)oMyo_4VXiR%+OeA%-KNptV^j4+u#rFmwo?QN3Q1o@6|vsG%Vy}I>HVAJx+U#{*E z($&+_SL_s;cHbJR#eBL5^0cwW2^9242Mdxi#Detxnug0kaG|7z<6bIj;;Pg-j_E=t zxn8bQCQ`Dc0~0jP#H}R`HlRD)00&9!)E12mW@>sXjdkjKmD--=sPz?nz2~pg7ddKU zh6|N!N9uJ3MiiFtK)`7nU~qn}*LHm;r|x=}SXZBxf<>iRsqV4-uo)< zLiLsM$PcYYO)~&xmPSSub)aEC;YM-KRi2;Ix0}`OpSm5^q@t$03M3jEK-5}Y?b=e@ z@w?JW^uOPg+i%O$9J9IgB)}aNrR{fJNvY^Nk=<%adOLzxsq1@fp{l9OwyiU3V=$(u zo)*Y?35*zNo9mU|)P6YX(3H(^YU-MKWA%+_ny$Wj)q0wmsTwt?hL&c^Nm#2ZnWqHD zNe~K|V0O8gRKTG>Hs^>HsUthtMvdvLaewY*YXmjAoTYR!c;zp%{lG|#B_N~gMnamN}_at#n(IE};yUyx* zUSz3}M2OD84?-xp@sISylBDM9kn?7Nxt95k+v8qsDe)1YQeJHXBiy2T4JtFDmqDNcd z-}`&kE0c%Jn=La&q_dN*x>)WHex1|$J4vpsqKRXA>e=c_{Iw;>y>YlSFC(|9f`;Jh z8yP150Ea~v(lFTSs;cfy(@<(kYiDZTN?4`SwC1LxTxyLoE#la(G}RE&TCI@H42ZOi zSxYPrU9|7040nAv5pM7I0{;L>YVG!c(3fiIHD7Ub#1r1>t(H2P17m`+X=10e(oZhm zrfA}j%QEhgZ%v%O9YBy9mG`rPF#AOGSpySz1$lI+ZGC zNM|V+lq<;lbCLq%Q-om^LX+Z1ewTrp>-P+$>*Y^r2wwl#F`mjTHve(OLywX^^PivAYN|@zv(0=Bet2X3pj2wl*=RIm~ge^64 z)LIv`nsW0^b<*cUd`Z__DjbJtLlCY=Z(atewP<==`^W8(4D z@P3R+t)NQghEj_cz1hq68*D!O;HU1tcbYVwo4vRA_CQt@w{~KVIY=&`0UJh#JF$XC z_pzRF(N@ml>cg#}*V?w{t^0|sD5#p7P24q~XlfZOqts`2rG_eqphjR@E?18|cGpE& zs;e}$vaYJWp5IYKj&ucKS# zz-e`=s;8&5i??o761UZ4joKuZcWDSJA8M)Pn*?W@w!x^WXl}Oqt-hM1!=&|^M=Y-p zr}^KMke^jzT$NcAuLOdm4mwBiNGmP9>i9LfRaC)ULp4U5jsVfe5*Sjtn9I2(#@*qE z4abp;=cius=y`W=4`Wj#iFWDx{dn z+EI3uS{!2lrOQuIhSQ}p0-Oh6ShdM$=e;QXKc|sP*5LBMo`oSmkZpHksB3qY(^!}H zA4Xgty599}oww0m^jB~$sdlHiTO*mHt}>(UT7epplAzq5Q5hH+2Pm!mneCj5sqEUM z(XFpQX#oYszT-6mQz}meSU|gimcvC4;oX2R-bYZX%a_KEm7=%QQ6#HcP)FZuvMx!yhJ^zM7W?SH{i+D4xm*1OfwU=EK4Jgk~$SygLb& zaeCCumoZBU5>x{fgPO~C$PL>lR#TPU@Y~(nxxZ=d>)o0+^eU~j)zLvEKc}@?p)jlo z0ONk*N7$aT&Y7psmi-lJ)g9`*_iF7WHPWyBpXo1EC)3puQW|uI8Y+5uosCfwhS@xE zmfT8=Atw6NFHt6k*Q{1q-dz=PcosPK<-|L=@-i6)4;ar`3%J#>Q0Xqw($L#&mYE~c zf7&T4;kQPWm6s*D+-XGfNSO67l+l5aoG&Et)^`O#uah=Phs>dV7K-kPpW>92DVkkV z6tduucCSR-8B}5)H*S%G-c}FPX?>I(NsLbAyktUT32%khy?~G z3RReKj2@sL6p~FfHiE3Ddb0&Js_{ze@}@LK62Nxn`^S)T`Sl|@=DSpP{{Xl5gKyJT zx4Y<}sH$o7{f?fV87`Mg6I9mCAOM+Nrc&8*TO{W>$!hqMrMOgBv@6uev&tsAq{bBy z!qPv>ZYdebQII|GGtyGZ5^;)T0kOX)Q1gPPrjbe0I&{;9M^-@NzdwB89;%0KjJ`CY zAr)_LXO5kjjF_2p_LHglOA(B&?lH%YZmz8=^;KFYOGzx%8>G>e*xqH%Ks0e+E^;ye zAD2{>+Zt(cIV_|9Pjk-@;~>Fwl^RCe=0h@CSginp~= z#W~!$jZ|@-Pan&w%v32f%yv{~dR&5V@CM62PkxanmPojWZd}9rr-?yr!8WI#8E|qz z<0qmTZSY9UwF06tt^V(fZrl~aeMFuK`~Am46)Wo;hemZGHECNQf-=WE{m-9%yqkQV zE}o-?jo8HM#Cas1PqzesbJlDX4$+Qqg;d6+Kij#Z<2qKv{RjM#7*HGmcN^ z`Scj!t+-un)D#po*E`+NVv2@}pVXdaB`|%k2H;6!v;&fQ4SCxIT}ufWqh^vxC30ER zsbZ%dPH}_$I?$0wotDznG}Mtn2XnQ>qv!6|Igx-` zq}0n@O!JmnH9L}YNalS7%xSPJIW?R~8lV0>Z zqLeTNb0H8eBP>^v$@qMM&s8kYK$Du09A>7Y>Zz=XR%WPeyP24|C7V1JJe+y!+18!o zFY3m!nu1<8E%XD79D{@8@$5nBVsUITTELe`lAdIf=Kla-BIO+-!X>Cnr^BVGBmV%_ zDrr&gDOwT_a$>^PU8K6%EsdzGmDZhYqoziYbv~P`S<)2^m01;cdShW+wn!K`BaW%# zODyQ;e6p#G2-)9$!HlTEJn`?0bv4o2*HCC1ukC#<^w1TjjVo=n1d26Df?ECi^lTk-SjA7GjaMwwe#$>e|#UPLZkgF9T*bsY3Bsn0wQ7eey zNhA`_F5w!;KAbTJCvHF=_UM-+!69XzH4_Al_x%8j0tb=~PmKGHhcBj3%P--ILeXJz zNg!vy&$09O=!7d6m0V}mMU7lI1mNxjF@BleejtL!D(9;EfGH1#-#?J@AJg7M-C)4@+i&3jKDkX45sd zNE}ms)v2}V+PY|q#;4NtSqg3=XlWF-2R%INl~>Su$VQ7X{e=6Ght{JfpBc!;c>4~o zABX)#*!bbl79Qt!5`7n|?48}wI@d*8t@h(6xj54H`gD$IeHRG?tptepbs>s<#!I6z zmsEn1NC`fcijIg=3fU<_lo6Fgy_-bd>@@l`bMIB@O+}?mf9sVjZ1;WWFFimPi8iJFo2`}4bQJ&(U##_!L?A7lHA z+dkrU)~{9TN?k`yVbf(Ou6kxRqk5>OQB@rpln#|KGP2Z1IgFHWVlD%0<=uz5dR~^# z4W3GkL^A+Jj-E0i0YM-Y$B<5Z^|V@&vY~yhch~$!Z^Fd65(;IkC>AaNVYd_cjLWE~ zqf4b7J!(rDIsrD$9~ohuN1ie7)DV=8Mp*Z&M=>8)oO>Rv{^-@v)?T5nx4i97QA#$v z(d{bW<%f^E{{UX9lLSpMZTpKbXJXuw(#lJuC>YmCQR;_uNCi!*hN9P3d4hWTV64S` z6+1G?Bzs%%km-UBKfFJWj-nK@q|&s7SIX{WNV_GUfAdqkjAAcnMy0W_;tgUc-E7j>bt#2J= z)=vFeE*fV*k66uXg({jF+Kt-^By$Sbcvit>IT>cnS{hkwalnyf;<6}4jWS4WKRP~r z^Zw{RE)N}Ju_|=Qt5^qtJ|IU5#-xgTLSaguF;UvrHs6Fw834adg`wXDrXiUk0T2HG zJe9HJ44e#9{m&WduGjFP(YCo-DI%F9wUU7VMlx6_*M36amic_={+(Ji6BBisqiYBz z)bo<^z)3|H>upYOGl7bt2_DVWZ>?aGT^y_#40N*DqM2h{km5VFIM3Vu2>$>Mpwquz zf$w;OK(p~dPpS0MEe&i^vqIh&DcdfeN|ljY1&X4`GCjN=I&-neucx%^=u0>38+#q( zeP8bJ{km?rxvTB$v)}_$p%DUY&Ku;03CE26{{TLV(l0FfM@f)eIkQ3)j!1DBDd+T2 z{)bi5QcXEyqKswcp+gP;YL%XPfeSk=LX!78Tv0KoO_NnLQPRcg6Z`fjI2j`ZbJoa% zOTtWYwAZDS_#ZAuzC02={{TL+Z)c|TyZ5P~d?MA*&ifSL9K#HQkIa+&Pg~X#_AR3x<~_OVU99ReEXkqQwH4o$&2#-b9`;DvoRSF`hY^w%Rs&ky@JupyG z+$_?i^H1EaHpwH}6HsY-f*U*>OAhRn;ACLr0x)^%RdLi`wJ0d-^@W1ms^7SSTz2vZ zsi$$ZgNn!zl^#R%k_bl0@O_s&zzJ`BJ^4bR6I7d$!*471`g4k|^=d?z)z~f{w4p={ zl`%kIlxN6z@CZN9^%;`k6yd3^w8$7P1g{PW&)oF;cDK9|y;Yv&4Q)6-O!TK?ft+E~ z5r*d{$DX6_aHXn$Lg`ErQa>3O1dRKS*P$v=PGjdDM7B4-d^X%-HmE1Aq^iUap_IqC z;3yf+f2UM!H6jC&E! z=i{s+e$(2v<5x6sM-R^HiV#1}!l9IdyALQkk1ycf3n0z9H_k zQn9s&Axr}F;x=$RE9h+d^$R5CkewPp3>4!HGU(?YWt1J7+p2; zTc9UCn+a+h`~LvSxc2uwOs#g_(MIBH{-wWa77dvqS(=_E_rFNub9sx{{SaTBmgT}Kns>Xwz4t&7msdEI&-X=izU4xN~xrT{{Sw0wD$o1 zdiutK(!Im%zLIsC(P`8467c@K)>N8iU`gBz>`6aYxdW$u?)*k+Elr{CI(FB6zSON+ zF4}s!)TX6ixKLJ-1ZCZUFoJyj`cEgr zr*fB(r>I|?krnoxkB`Wl^`BM%l?4L7o0#J9oBsgi&K`6B0KKQRt;gaBvg(aCE?S0G z)E0P_rtGawX02HLL<&G)PBXzBTm7`w+8W2)4&Pt32Bx&ZV6p4lMb7OkHNs~~YI@jb zk-a#HcluE92S1;Vsp&o+yNH?2j;WNf!4TXj@NxRc5A^8_y@uE6mzP0bK_mYF4k({L zn8b&7@aPlK)f#~?FNY1hU>EvnFXB@=RZ<)=0GnIi7`whGb*7Zn_d6TeJE3sy;?q&q zPjS^%^mhmZFH>`?sY*D-b2OVGiJ}!C(Df5SLO?dO zX{2;su0)W5F(;TmpUgQ|R6_-xkt%l-k&zKRoCG*I_VLsfQEHN**tlGMQ4Op~IUIgp z$EkI0meuZw1$8a?k~iFmEsjBg03OH><;m(XE|I%IH>%OxRgv;T+hiEzA9d+XH1^Q> ze$e3P)*|e~z>mya7E86VmWq;|cB);fLo{)#Z5hrvVfX36uHgkl(#vj=p;9;-)2I$2 zej_6}1noHY&l&2Js-?QKxoWD&z{iN4agIL29Vd!w)Fq5Minap7hl+5n59CNBAJeMU zQPh*8dHy1jcSJF%lOH9Yi2TQLb#A7zXb*~QQ>ry3JvOx+y;Z`ls^|4dBLFk>r~m)}0Am0F;B_6B zRO-6StlGCzRF^y`ywniDap4c=)MZdtp-Tv22`7ESMm2w@eJ;&40VoJsmTu(s^%{;_ zY9puJ%Gdf9?V$9=htYJp+3D^2vgN4mmpy50wb9f|HBBrr29Jct1gro~FP``blZRfr;D@imOX4iF&<2W&`%HtGhuqT4*fuHNg13ojKZms_S zh98VgRq*wB)NiD8Eu!~Ds;rU4cuhxpnOdU0DOyFXmPpeqe|ahh#sF6XIp?a%ABT-` zGZQs_khUpccAK2j@YKd|A<=IE{>e_=0mqjpT zNH=oi-^wnq?t}Dm2S@U1l9R+-`}B=pslWD|d_i8JnwFN2vif?Jf|vPiH&b6CvK4HP zn5%SR7-VHW-s7r<_3`uZOL!0J_rA8>6sMSU?v1t6V17<13yweY57(%bAHz+os*1f` zsHPdii*}!Z6DR)wGqZn}Q(J$-4vlS|wA$9RvB}+Wh76yu*%135x##lhN|}s%GLSF8 zpR2{M@a~NyJle&py3tbHz9)O_d8&%GOmD|Dp06wNPUkrV@j9}<1Q@00GDmGwRrii*TWfDN`Zu7Yx@tI~ntxVksV}t=B#Z{oSwnzG91Q2l={;>7 zZF!PnE)!O?K^Cf}q2-eqBn`|-#z{EOzg<;};gh!*AvB;^%m!hEfdeami zG}89dNJNp(x`*VXsCH$`V}9lXI3vgB&rFYq>Uxl_&jthU4@;lWYGr4aEp9ubkrZ{) z*sEttt6ZiJOwmgObFwkX2MxH4kI4P{9NLb7re=bYwm5U0l1>YLdF1~9k5anJ3|Cu? z_O58^gA46kW%p$edh#kRNIn%n13uj*gGO7OBgWw8Fz zp0;U(6sbleX=IVmf~$aXaB+i=JvvuuyLGKC;*iNXt(2sqqMT(4kVY7ONAl~XKM1|5 zsMR_p=YvgKZZpq(sfG!sv@EkTA;9i>j0oM3k20hC)iWA)_jD&-isKqO(z0E|jfc zrJ9K zy8?$NJBi2}Vj73y6THgWdKmkQ15c?nE}YZXdzsO;kD3ux-f#5N%?o_8nB{6^RWc7A zR|S}xce|0<;_j_wzFG*HXy|N>6G29CBhOu+qB1jV+81nIm<6~5^UelAylknY?U_or z1ynlUMcis9F@;K4Mc(orNn9y0qP**t@yO3TV{vMlp@__G&{a2v5{pt7X$jWw+46gixISc#x=&S0KgbI!0Ec@ramewDAv=iw1&5>ur0*3EiHZ4$dMV)I1?|UP`Ubd;J349 z->h-08{rzexjGX>-gK6bwD!A6=__q+snvasiLm0xX`UF&*h*&3M4d*SL;s$ zhDJss3zO55x&wepP*PIIOE5o97uUWdE2L&}%%qoh+->X2zBfIuv=G{RfAJ}(uD`Xk zma5e~xVTXi*4oO@miwGk5JOo6bd=Qd$xsf;YJ&2}>c3e#8A01pR@YoE7x$p8)VJ!& zTXQ9!Ps26hrc|V%O;4oVX&^0;5}}AVR4cWWdEj+uXw6;l6Km65z@E?AuGCiQYk}5u zc0DztEHxJ^#MXK?y%SgSm59HyRSDnLG0R67z}mfJ9T`VR z{ig2pp`I|SqT`8UPohlRst(d~_8Is79bZvb%C`G^y!Co@>@`;U8jVX;L=frA>>oKC z337n0THjLzOoP>40eq9=q;-0J(LqJ8t+QF`H1!4iQ73ZrwF*g5HkPTSW~igSQ4pu* zEmAzPHU}yWJaN@+6=dYf%Q;2K5lcl{q{{w!iE=e0=tm!J!*LYeuA+H6H`f4;@?c&mAAdhJ&oDsDa_7zUad{EkDz>Y?k%FS7zLN0iSesEd={u&k zzuPrfNG;vo(|T6Bw|bV2rXr6u9i?NHVW|=`Ln>4ZdS_`R0662NsGTJe^Aoa%nb*61 z=ys;Am{XODfuEkFeXnhSjQgQ!>S*+r#6=}k6%-Y;U9_Z%wt}jc(~>v-(_0S4Rsg0k zoMWp;w^i}mJ6T6xUo9;)3tsgcjXdlB0KvpJ9U~*YNjSnLaz`BV)0I1F8+M?BPUp+90BUKeDcxTDY?ROYV%bi&y2|PuNkFNDtfdWbkzEsk@6$kJTEfuD^>kRW#wOzQ*BXpQSB|A$LB<^ziha9TY-OYnU zH7xeJ>#mcU$LU9=ZdVFuZWkRfJBaF~rlxZcH54;V2GtFavCGd?&F23AcE4Dqd+lv4 zMG{`Be`DxsI>=>^Ldh5r7Yq^m}tIcSomsUkJ_e{;GpwvyGDeEV+)oXW-XsIWXYWQK0 z?v4%Te1{4*D&V&6qgIV8QEB?GinHEjrdaArR0*7IP>7+`M)goI2p?A5oD()3g68lCgg>8dzr=_&q|9)uLAKX#mC^M-B2oRWHXk!zN`K(82>Q)MS-2HBz3D&2>DC9eZBFG=t)A3RX6SQir-dizfPs?c7&+;q>Kv6+J(Vc0q~%+ za50b2`*dcH*7cWqnwveso;fNOIV6f|OvdsdP^<~TC&2d}anmLL07}-?R7+h+9VC9S zCUNU+aOcV7at`78W2vr((3fi+Ep5u=w5F!AqvdHH9LOp5fgv8Mos7(c5(ajRXP%Kr zo7M(F@@eYy<(?|Y;hVgdT4xISj_*;DX*8@D-3SF%p+Io1r38$c zW4bTiU0JJjZDyF3>#lEBI!Sx0+4?w|ri-{x+YGHkOk<7_=~5SHRHUycWl0iaB0Dcz z^3&NF^^S{c_0L^iZw;wv%zekV>FQZ&Dyx1;s;SPBx4d%gwOMJZT6kWXDBfvyKdDf~ znVPd1!@>|Q3DLuObMM@8a5H$W11A>?RXSNn(7ip!yq9QqV#jF!=G~>}hVNEjRySSTx75svzTs!K8{OkjY72{79p2Hab!LbR zDsPgbGK~$R;zAuLk;=zYSc*4@+v*(bkzGqzE8Z<{cdNEZTn?Pn*PQ`itc@-hWQBWu zp&@94v6lp& zZa3M05l=qW2+qW|FoztuB2>auJ-2^;KSQQuo?53jr%H1N9USB(< zcf3lJKR?^P{C77>-l;@SBy&L}T@->(m*qhi!=qrS$j@36vNaZak99BI)b2NTZxPQ! zNw&$S@15?UdkW7~S~hBXWh%i8QNK-u)BzymuRfE12|jd`J&9zm@1k&ZRYjx{AIRUdM9@z*#z(b~Sx z)oOc&q0t@N)bhRZ<5e!A(iSfM*HKX0$s4A6NZ^L3BAEjhgl#}v?b-&>c~L*8Nm^OA zzcHu3IO$y>m;TGn{wYGCkbKCuAz|mTC6OFjbB)>|+X{@;GAnchQ!OO{?!3zVT0U zthnfkg^D=t5eKGQ?MgJYb#l8gGFPHHsZat_M>@v8P++QNCS=qjV{`WNFxN=&6?CRv zABWMFO+n7HxI%UAd$HYs-Zqtz+HBTaMV+dpt~RS>JsGW?6<(v#jZ@TMxB;7PNCO!s z9c3?wonI|Y@`JbSJ+ccz+fwOrtCFJEnrY01VS1@9Nbpg_qynTQlS*F*qhZ~vFSpB9 znzLN5_qxb!_M1H%l~)Sdhr-1Y43qhvU+HBQ0b?#PsZq8>EgNI~EO zF-Hs{dMT>s9;c}y2vba85E()$V79^dPESW`N^4=X)L$&Mms^d(%S%meo-2wPMOb8J z5-T!W>0_mYW=~#F3z*_q#tQ+~I6oLyimFK?e%9&g*jiC$f)-uu#WF_a zQVBV45l%`qp+)(z*5VwSht(>UV4poC6qaN)5LgQ|yzSC+O&F-o@mb2H_c9v?3%}HE* z4D)T-b74uEB*bPj%z(OQ=MVzJquQfdpax7w_eyItz!VI^fv#gaBLMCyNga+EPy zCBaHq@QZ`M#Yjn7f)Y3Pe;>qRCrlskWOj@Bo_wEgyh!5HdbaJQbv5R}qHo&5)uvW? zul4$Rv1YESkz$TXX()_@8Ll#JD^V(;5bZET3wWsQJ(uprtx7KYcR#nUL1&VRf-cVePUC#LH#1{)2K$ZGFGuj2d@Tv< zk6SekR2GK?&<&WD1!OVp9E5_#E6rP@_4b;nps&^XX6l7Ij6L*X>Rsmd5THra|L9TYVs^g zG|{}XBY`MgvLl^AeZHk;eBO%ub)4HM6=YB9j?ZiHmt58SJo1h#D0Ja1=lw z2j{ARdUxUPUs-KBlD7L6ow)Z`SyI;1>OD_eWU5-ksi>fxZPv>zTvDVI6wpX_OZ1gx zz$bC~Y0Wj;4R6`|M{aZ$zM!VEYASOLZf&tdP~*P41nm1RH)WLdG{NF@6ZPW-la zCfjn=*SZ_lrPUWGA5~Ku1(K^u%SvdF#aA0r;c3zN-WxJy*;NYXf^b%zs2Ylsx4L^w z_SVbW8(xq~n|_+oHXTnZ{IqdvEjL#+OI21Fi%BZV9};ER$?{kZtFf6laKn|4{rA<{tGMR373WTF8Tk088c#N?z zoG~&X1min{XD2;WO~>l6tS&^kD{{`nSYMAGJ`EYV-knzTa}Sd$ieb#8_K-ksL>F>f zP)6fzWIc@?*6qHZ?N|28RSN5#xA?e7?+t3G74g^7)>!Hz^dy<1jhAe($tx84Lr3m7 zHahDocVa#>d*!M-nPS%Vtv%iSE2kH?I*P%f>Tb5{sGy^Y8pV=I1(ryvBbBk~$cuzh z#O-*CqtV*llF4tUu~q4~?hi|;BfZ-0RX3?=X0z18DA>I7j07a z{^;E9w`#8JRofw?)0Ya19j4`YipgWNxRq8JCXyEoEAOa+GbEeN(e&*n4Y;7`EiF`( z4B4hkO~OUpfxgxw(mE$Y{{T`js*En4QCVG5)DA!iVr)Tnu-48u*u}dq#0Ow>)wYs2 zsP)^>(^JN2Ag0h)+Ln$YzfKjQEr2n{_i{KL6-n_&+54o+6`w%&Zu?O@D727Lc3$en zuaCfZaS`&Ig_aY)%AHt3^> zNmhjn8<=e%mH;=?nZ>6-_Ij?|ZnjT|tqosGwH6z+o%d*Dr2!C~#oV$wk`C4iK--)i zq^_uh{{X@yp6)xxL8|FhO(L?Uke)yX^348_yItL`e-PdH_-(i7?}yIuX&OG&>Ueb) zq}3h8(@|M16jo>|VFDOoX_`8z3qn>fggkq~3E;1RiXyEl#j+9q010FW%B&ep_hisIW*t|j=roSE*4p;_U1N@- zhPOud*6~k6Jp_h%q9(Q(m1TwgTA+l9$jTFe=cbh0yZo8c8g|^#-CQ;Pte3DtdNL#fB(RzvX5;pCsqs z9Zfr7*xupOcTc*oM{ChAX?j{qb+(~wcSvY$wVH_2Q`X{&nGi401ks~#x!yCJoLbUo z>$SSq6?Mve7ifmA)@$f3mz`Z5HEls*#v%yE1aqA5LE!a+t)s@KrF~*b!MG)df0qs4 zoN>;Q{{XeMG=^04Oqncpfhju+xd0108|%(0-9oD;-76CS1XiFQ!PPqLq$&eKrN61 z0r&h~*y>@fFZx=)y1kC7(^qTN)~4Hfs-x8w4OgdHhQ8Tys-lR=6pHGNF#5MEqO@n( z*bbu~5)!1E6GE~h#F1)x=)E&<^y8J9nKrO(fC4=x$j)-0ZA`wIQVOOEC@ukX>RE_zY}=l2%}X40dJ>W*T6(Yk*HrQ~Ob{640B9lbx&13IT)9KK)h}lUpW`(h()G zO_sN`RFhTQlH!5ZuxWiwPZUBOxpgZWF>L)ic9F>H(CtKv4`};-BNb|Ebeyd$i6XK& z6>|;;1x{3X`+p9qv71U+H|?LiQuNVFP9AsuX4lo?RY3ld2+KmOOZvMRw*bqxZ`5<{ zdic5AsT?rKvPcmO(;rb4LEOWhPl4~}^XuAFmN@Cmkk1py8c8FT1BS>2PT|4ENA>%3 zvUU2ERau*OQeoP5g1{CTz(0S!I?pjuS~-$BxrhJ~{{VW+uI(>)Y zU*X2Xu6vhpsn=5KnmtOjw)!b_q%$%kbq=OrThbXnO5#Axj2w9#bRLgk^6GGGggAMJ z#~=wj?qja>6AG7#V9J#}0HIUHdyrU4UPTM5uCWE6TRfF?6n6^$0Ft3<_+q$R zA*6X;nw^+$aT@cuD;DH_p!n*}yy#sGTcB?`^FmzpY;e$Ob40M}`Y7Ux<^n1-l!a6? zCQj^}{Yt=v>bB6gJrCS^T}`NMS8G(-dqPSpHD$W-dKR06v>ua4&c3W$nNHS^cmQuC z0y<>wN5*$yHASi_J3WWFmioI@B2!stt?C7~o}CyL0u9KlTVjI56VH${m7>9BQ{fYp zGEZ#i2qjx^b{e-AxoCF)=yghHYd$KK)IsXqGXjdVbf|VfOI#bPO(Me3mYoxHs;P$i zMXvQt`l_NB>{?4jQ$i+sbQ`3qX(wbtSAH3Hf)z3W_PA=a-9DPIcki||)d_Q=)6vpv z3mC18`tdoYjV4A20-PjBI3p#A#v21LcCWp?i@s@nb8x;#X1CJmI(V)y3+}RQHL2Vv zlmwwz*^OE@5jLZt4&XL-p;p_s$DeHK?tRj}R_SixQ&ekx1}yfAeLXEBh$K_7Op;47 z?cA-B`$z;}gOSz!JqVG5B?40{%TuyT{G^BGqQa1gvH+UA=q#0k)u}54 zEyh>Q5gGS-|uh;_5^-e z>M5c7k7@1@#3E_~^RkU(6l=6NV6sA}4hFoO+AJ3`fC=>dHi;}7k#)-FR zBk}Th=K~#b>Xc5AIcS)Y6#5Zy9A^-xsKct4Pdyn{ok16bexQqeB{DOX$dVYN&h}rc zILF)Eefoy$4P6$Jq@$&!p#8n8?{k>+zMg|?JGsCz$`=f=f(}pX)8@a`km%T`gfx=h z^@gBtOH66lrD-Z_Y8;gg+fL<-0y1;$`SqTxmYqeY^&NeRj_V}ay6-B(+`i$Yrbu-4 z8!_E&qR7vv0s5IqK7TS~(bJ}4I?0wu^C$7nH60(qWz3cFb-kHl_us#lsWuK_9kR`K z)VG_Zj@@zV zk(^9$b1UTX%m5_h<9ACemMb2Vu|;9iv|@sWnSgjQJ$dB_0hylwI~=h&@LwGb+F>-9 zia``}h{J5$%s?X;&T-G4y;)SL>&lxXeZATvV?7`^l-{WUrKH$#ZO_-!S+1@fy5F-l5dt+rTVfyoGArHa(54_AC^7(Imq=B&@$|j z0*tdJ0ByjG`Q#DDKK}rpN&bj%yt^#SvNOL8%Hxhc&CmXBtASpIDJ7BC1ru=@mKfuX z!Q5&Y8)T7c{dY=UBpY9KvYJ2${{WXX*&oxZYe=LQJqx8NYQ(D*&qz?w)D!@2j!I>T zh$F|+PoJ^s5o59n+P>!6Dc&l|s=n;rt@L*6GfPnQx_ahe*ril67msR;?k68f_m+0D zvYO}H?KKrWNuH|3Z224gBxqK83Yg`QL~^5Gr_r|=9OsX>T56<~Q)drilj$8}qzash zDRl@0A zAR$$9vA)JkoD2+j{SQ>mHy@WzorJk1 zw^r(HHuKJrTRc3ToMQ*A)!GZSuFc&|7kIr~AhcR(^#Gc> zx@o?MQ_-1F6XP4ojFEwy@r?DUZT;)*r9Pn2);dn;SS7t`YYn^`w{S1@7A;j)DX!AY z)U#L7Qy9pBCUG4!fX7rHZsMM!u=G+)uZ8Oh*yc9w1K)&TdJQg2$qOo&2Wr5x=pN1q z9v0)V<#i=xKD*Lddhy*2AKch~W5pB@_p?dp>YAu-*0VW=C~jtNP8p<$$&Na-kVrrX z;fMs}`K^(`EUTwszg^%>!YcV}j)j0H*>?f-?L3_G*IfID+%DQ(`+wb?5vF^G-pyBS zgS~XMcNxwIqdaXa>*v3w#hEBr}-sB0cu#TTuq zA*8iiy=bf6t!@tHM#9GQ&kSr=X&DZ#tTW@E%c`QCDQab`WSGMgP8tN5{Z6E|JbUmz zpISG(mG&z7I|S4wXPeV#i@&I$6KFeFF~;J4!`SoIcr^6LWCOoGi7(FQm(8+>Zf#U%5+ffZR zLhl4;CkKQ4dU0~IDc&T7luOFm#;NR8qWanj<*B2xUFWb_^=uT93*t|22-C=q105_$o9-&VEwv`b{^qDMcTgdTVJ@B zyFB&c-%)Mt?G$rKL8y#!(n}=skm5Mxg(*o=S9TcTypE@kB1?Npa-c;=s$h;V&#|5% zf4al;l6gPxXbum#>luv766;jkv5pZsJBQ`nd=%Nna22Z z{ZkS#$QWbq!u1)~v6Qf0VFESTai`A1f;}tM;w)f&xBmblI(eQ_*14K642`6Bu+M_p zT9y2t{M5`&4t|5uEojooW7OjcVv>5wh1^D0)4#^Y`c{4Y$53h1dgQB^^oq(yO+>TA zh@9G?`Oe-@us)fs(6FjDMtGqKpFT3Abc46@pX?r!bvbX5bSn|%aZ@nK=hzONv@0!F zZ}gozFy_f51)Ih_Nt4Do0~kM$>Mz>YEurkn9o9&msTso#N3Qu?57+rORg*6+Xg}Zi zjO9y;Il$SbfBAkQS=)lqcm1ObsA{d@*XhPdqJ;7=2evEClrw<^#wVB_tu{{Sw!8wrez#8+ye9zh?^sQ9u1kts*}K=qHL z{{T*BnVla_USB~50XoLz|0Ix-{Q?-``%N)3GJam7mOr}R@#~iM3Ip^D? za=lNgo|`}%Obd;msZeG=)bSEV|qvv%f#r6%y0f__y_vtjTxdoJ=RXGiw zN00F6ZfdfjV5OBgX$qE7qxcWG9XHiYUlV~9Bo2j%+v~FAay^vv;+Q7lJd(ydVLI!rt+hA z<3NA)>8YzOyYkk!QJWy_sAJEQREiW&cp&gcbxlwhvnDZG#jnazM88@U`8_ycIF&s9Irk-&%fo@-767h zG49YeEf5+id!?n;ri!VO63dAQF98|;{{Z3`TRPTMMCsIXMk zJBh35ot}nZeVzl#ujpIB>*%*gE>D-g%yOBjGY$NGh?lmTj)i|~Q`|$-)IzIm)S4n8 zJsI3db5%;ezEBZ|3L6`_UvSBIx-CUS(_QH(y#$46qtrTXjbMtWWr?oipm zBRxoHDg}f?sB9HCogH_Is6}qox+=WQX_5e+Se~3_Wi9j)xn;-qLB~;R?xLo;w2@zF zD3Y<9#M+BZ(|R!0VX?kgiNh0&z`@Q+vAr}fs>85(C zU0hXB1_ZQYVQhWD!3WRVrnk9MR+fU}0ftp=q1+r2IP>gB_2~I&YpER6+iH@j81D4b z!5&B;{{SwLipnd7Vy#uCsKNT23}>D*_v^;j_5Gp4+7`do5Z6)E)4?an$?L#K-vcoj zU$DpU>WHSRw>%6C!^BEYJ3H& zbyI@v^F#s1w?2RC(f0T5E5%~{KStLebDZ;&`JV%z{=u*M z{VTmd`fv*kqyz3qAAX5nE~Cl~H8a3$%JVTFlSoyCaw=(AK_qUYLP^iq=k9&_Lne}{ z+$H}2a4b*bHrU5G^PGLZKBaP6?^u6M^&rD39{&Ji=ikTW(m7}~5`(twKh@{=N&x); z{vQ1>Qpvk}@P|=XRvo4*)*)3IO04J9TUxQfeb&_H`3{?#OI0b7K|L&4$lnbpQ^()I z{#{I}sC5G_KWUA`a#kVFImaXN{->r%t(TT^&v%rPtN_>)6aIcWXtI>yy zbesD&ScaPEQ8E$YS&lu9bIy3ro{;4#4n!wiHC7~_d?6^)Hnli262R^y=EolS1ILf+ z(c;fwr^_*dKu%SjOyu*&o{kn81SHETYz_m+OCRBp{vQ1q`##2m7AU;rnPumWd>)fE zzGxFMTDGuQi%!P4Uz1awSbax6ImbN++-#8$#6m`XkSX(?M?8+bBEc8{Ju?7z0y*dS z`Tji!R@rIJ)m6a*1z|YAKT=+x@L2$~#<4g2vW?7m=LCQc<7;$5bGVwP|5gc zA;x(O!ATr*^?rHdrt95yrCJJxT4=#o_X03T^PVt4{yFETN_(B{q*Qt}iYXlA#UApb zz(0!_=cw+WuGCRmYur(yfgFqo7;FGY9G@h8haEhG48Y}v6rz_8c;dY;s-~)Op2>jB}r`@z0UdghUC2N=9l5@cW1uEC}I!&s8%B3MY8d5Hk}CudvJVdTvuJa>n-> zp-<^&a3K>VxZ{E`=ijcXd==ANk87&YEtOSIQ+%ox*=eg@J+kDe3>POk+ISiIan~&M zH7wMyX&7WGlF21qPogK>>$_;>f4VV`%T&rTq&>g?-;_#c(_XHPdVDNAlb&> z2m8HM`k(ttO-WGA9FvfQl?7Wk;B)*(zgDH{EqNNiweP5r&|_wyxXm_K4fs7!2=?*S zTdC@GO)WIe&>6&WejUnpV;p(+KgT^>@rG=!WfyFwHTA>y*19;?mZ;9Z&5WO#86)6qT0LEfzkb z85lU`q?$*P)n=@xrMOFK`DyFgL2LDrI7^u4onZ^TAqACc=-q*d+tffZI=#E`sVQuq z6dLmRBWmqKL7??@gHY-l9>Gs>(`Jg>KXN5$>!J`?wBKws z_Mq3a9=&sXM(e8urYmh#_{B>JTV%zm>FM20CXpg0L;x8CD8!A2tk>|#IEEoLYEcZL z{nu|M-~8Yc(PNHcwKHYS$&z6O!`VcTbsDPPBUH0-e9_We>8H6@*`m0?Rv$}N+$X}v zTS-y2WVX#%e4pJ$)YT-M1qmmS)@s*!0&N{r9Yw#_xaoS@hK}2Hnww;_vvSQvR-j@k zgd7o^I2)HB_1TSG+WK34Kg0LKUDC;XyV50Qpw+t0&D%k39K@=0;r%+*Kt zki{fzv`G6i^n%jl;j^hNE@x!0I`Z$){XCw-@C;^-YJgBuMnI=@vWQE7?krRWuKc5k zbo*psxkn4_$4fnGT4-u&Dnp|b3r-GYMNlD1@}SeZ;}^&2R^dc)Mr(iChiI&71-y@%0S`>}fa z;p&3N+)Zs|?_=7py^qqp?WNVTT&W|ZtC~BMb5%GL)es0$c2dG9$r*4|H&&A95~Fpw z{i9NxCZnqgTL9ttJ9>u}{6;;{dQV*Gd)3=VJHD&X_X}kt?)ECR zRavSaR3(c506978-|lK^TNbU-cA8xoez|_!O-)mC(f7+!MAvIsty#mz>L_x87=2Wj zWN%!I^|Q4Gx}@%hYW^`V-MH^}b1#%ueIb3T?uTXj%c0robZu;uRof^nwIO3lG*3a4 z!5OMi=&Np4a_xWj2F=**Vc$g4y01jv=I)-2_-cJqW!7_Y z$n5UXo*poFa0EKc9!lq`W9&89>8k_7Xr{z^EV=bcoh46|A%dBdR2QL1Kik8}qn1{h z^tm>lueaW5YK?R)XVbc)R2|V)(}KlDfN|~6Ue9(PvU=M_*e}|fv(`HuPkTFLH3imt z?{O+5zTK45)6Me`TWQqOq5(QNksdiCXH2H%Jy!NDE7%$y-~27dQ=lig>i+5VThLQwA!Egm~a3%w`1ODFa_-b*{98;?66r_&G zEUdt}U=l`MT(B&}UD%K^C4CanE!7&)anj$}dZnwmP+Dt*wb~x3qEIfhE$OMA(K|CU zM5KjMaB>etNp81JZq}RboN29JvJ&;GbncwGgA~z_q76r2ke4Lkm8OA99PY>-I@ulU z?a#yIlSyl7G(Fcz_SXH_tJSwmX-z>vHR9tSdZtk|rur%=-5LpGc>jp&|D$nLwa8Jp?B z>KUnZgu0q_zv`GOswpnjH1)R4DqgmhO;b{@H6*t=B=qEi)j)*HCIH3&8RM&b69W{| z#QCE7fOhcx^^Mm=dLJ&4s^*KT;1glY4H9=daM`Qsy4rDBL3ftRTc~M8Lk%}+s+~P5 zp%KP}}S8G*`W|K*I_(;Sp&!X-8ihN zl)(6XePT$=znHs-6H`(&0y;q867F7sA(f;;iDfg zDujvXovO+YD}jIp-#N#R&!-rG5+3gj08wKK8WpFil4xF6^kfmoEmA6(RHjQPC&2Of z{#_-WcBur<2oS0m>Bil^hyqCfk&(z9DyN!fnyPBWr<;2rf;ybq{Hwx+r4yF2lWxy zuI6hF+v@(=Y5h}As3FlX!)msXs?jJ#@3WLQI!bI&B`SxgTdiZnlu^Q{(yWuVIEW;f zQu%2*HvLUR(OSED+9yoKS3w=xvO4%XF=v_MFL12@I@~o)&(x97WtmIl7681FZ2{cY z)o>=c(sz4Ji@bVv?NxBpx))Z88fqJcqO7Ho*+FxPs;||mxJOAx>P$TPOww>eIvYM{ zbd_q!QK9u>Ty$lNRow1c4u?|O9=;20%ATT{j=NrJWv=LhTE?7KB(=)nwwBj=v^sA7OL0R zT~$L_Z@c$z=6+sjZ#M|YQTr+nlwVFQplo3t0)iRti%UuI83vD zZ?8~NP}cV{@lQ)27Yd^$K2p&FD2yn{aWW~+;5x`s0xK6Oa>*jvu-BIXzku2~MjJ(i z{{R*;XVa>201GImv~&Y4&u4>p?Xajm8Se92=<6)q*`}(cte{ywcQ^W~dg9Xhi8`|1 z!7=)NngAS(F5pIR0{;LDnub@5SNB5R#MjF&tppmH8C4|ZqEG&LN{(=HRgWEGzfrE$ zH1#^t)SC8Isaq8$td~kt*UPCc%NxWr&W^U#FUwKesU!|&tt+*?7B0u}EA-S_I-Y8q zZPJUj>3F57MXj}^PKBtcw$`MIjp}W+HYNZw5XFviF`Qx9mGn}SUQN5qSmGF`MJYyQ z;i^&&{c82+YkA*oBXjDG(Aw@g7TKY!TKg zubP##T@|uwQok)!+BpSbEO6UpvKZA)1_^H|j9_&unwHybrLSw6X!NvNq&K<`?EF^R zs@0Mp(UDI}ZlZ(c>PU-ZYE_k9UEfh&rc1>osFIWyw)SrLxx+tDaA|d^sF6dJd2&8- z!6QL%&22#E8gt?|ySiUZ=ql)9)K+<@>aHe(QPf&)(9c~&k%22gPY5l#u0j$t4S<{X zpTYs-XK;1o{l=`NnmPetv)Kour!>rSnNo(I3^zM+C8&N{Nj#Fo4m_>aSKj68%bc}~ z+HT`pH2o2obmfVAe{d^B6pY2Dm68y$)Jw^Eh|W$10Olb{q&teHTz1R3lC?44HqPJN zh{kb@h<^Ne_vq6$O!6iyhZ+ac6BovjjMj>o#3Zl)I4nE+$@)UO+IEuR+X$reZW>d$ zwi=|TfvxX7O)jKIBs9`*VkzBJWZ(glz{Yya_Zwx}uD;n%MN<_e6hS_64WK%pY_qA_ zcM`l~BlA6IOV@4toa!mR*&lS8Ly03;v<-PDdlg^&FTbC+zfBZ9n(t-iqTO$^_NTZs z-?V1*R^@op6*N>7zethfsi>7zA&FFmEW`|W$?2pnT#U+h1nzYAv_D6U($h;Q2}vX~ z26EfPQ%C77NvyB-tsA6hWx8K0$tfGSSSeu)OqF#qei)#MTXVa8urf|M=*EoFwm#nJ z$*ej;x*Ge1)}oTHSL%zUtiSCT<1(ksR8#F^9SXdgDX9k5s&xmIVtO8s&^A8RX?lwV zs;0+$yH;AEtJD{&#%SfeZ7h%KDw5ILmR67D>3|JcBlE_3nd%wrx^~BOy_&fAFF<_#_xTIQEXQ$4*qujH zBeDUxzWfOFK&pYs-ubcAm+8*gG z`K;+4n|k;uo}|>BT#`NBGfL5JrfI3;GS;%eGQkrlhK)YG?AgUT{xZqfY!O_s2&^a)(EJTwbhVwuX+5F&Aen(u#QLkg&RZm$4x(1Q7jx}>+qZA7>NM4kk5KChJ5`R+VxDW2Lf5;sL)(MMHmqT3-g=t1 zC8T0hYzn07omY0(+J9Z>yPluXT9aF8DXcfj4OK&??zXCVXsacj+a(QC$8oBr6C$J) zsr$DqzP5I@c&w1MP-6&{QWO+T$Tv%k`~B-3tMsFz2u>Y3eSDH9Aww&;Qd~Wmj{GhO z;$oYhPyAZxTa|SkhU;zaT|3d!2Gtt3S5n!QqHr9@(A(g)PPF4LszGuOrU=G*O={8q z02%taYWOc**0FYChKAb=R_cpBo3(1Xo22b5%<{8KPfV2lng~}L2z|%K+?&(2-PC<& zE%Q$5+6!il?na-y)kSvDOL|(Wnrb5M!o4b4&!Q_ z38gePpw^VS9)>Zi^#y|KZjCMXDUoHTp%K;8KqV~~s$G@y8!9U%A9C(T!XjE{s-;;} zEb7;N8STnCOuPb_HGO!UG~eax7nix7Gx_*v?q!Q#L*30!@daJ3&91&Xozq5F_WqLF zZMZyC?GEqvSxZLi8)X{}^(fuAan>l&8!lQN(CbA_CH9(4T~5-ZU=>ExdRbPdWV^G7 z-wOE{132S7b(WIxuj;#VRe8E;mbGh&p<65(POjrkQuJvhY`-f{EY$gh-6@(7^7M1c9T^*!~LPLh+`E|LgoSLP|X;P*zfft zCxpu7rAtO3GN4n16tFjAy~~s7ubgtv)UJ-nkuq4Kmc>a@l)?N-CHOz&!W#_-?2hJH zscP%#AoTlPsD+AxDMY0zBh;6sIyQjU_Uq%Iv7&p)RT$>jMB|U>PLioc;Q@w0~^%?N!q0L1nJBSmU-= ze5J;wlTcKxMJbY!o@NN}D!6Bf<2m2pgZeko8Fhcf5m7E#S`y&1ZVj$S)+u@tj7qbl z5|v3Ia{y2WB3++NSO)-`k)&sve{cR6bR~A8i(P4bTOE$wp(riYdYe*qUhf^crtcJy zH1o9Z(1?lkG7OGFjLG#7x#@R%`%BwxH`}_A+CJUZYCU0lxLcmm`VTU{{S%@54j|f zx1X%Kt1dDyeCMW$OD?C;RS|aT$$h4=+U%N2Yqd3_OV?G~XlzlS3m(HW6GUwr|2q!33L7Ov|)qbwl(1Icp*(j-W z1%tB{TC&b9I*x}zRW7cwTr4u%YoURsyQL^F%@VSyGRuS|N~;sdd>az!-Ok79jT396 zyG0I!(;_-6Z6&I!L`!_OT57*&3a#=iVD3heB{9lEh}lErHqp~P7jDL(wo&U^o7JX{ z=d5q=Tj8jxwN=(u+-8Dji4sbU>_Adw#^JOnW8jn12B*=M?K^F#gHhZp8jnw3WUQj} zC$^PCB|Tfy%MRHF;z16i_&!(Ls`}hh7^MoR5zFa=p=B`I=3vy8w3+(<2?Dx=lf8?xGiRoyk7zSOmP6Ig0XZEdw8&{VZLenRw6 zQV}3n<*1{Oh!-=n#RDUtP|U1Er&wO}74FNUt@N|s?Z2>WQPNtdsWj{rbg`*bRaUGF zS&%GioH+ylNGGh5Q&m^l(llYF<%hz3b%17~kMZ5{~0 za)y$(vK28}D{F2Sp2A(0I-NhN1vIrY>1LidXODVZQ*nBk^a_(L zDPv)-`)jB>8*zx$y&ITqX0kDQf~qI-8r@cT2sZ>8I@W>uOC> znsY*4XzMAUjG_f}s*pDT3~hLi+;TbcdH1DeR;!Yd(??I-eS3LJoxe-yyNI2wdQRT; z0$QtuQE;lx_+W~;RB38x+8@}VJ z7vaj9fau%R?I>-O*K6*gsi&){o**UkVF-wuz{p?TwnheV`E^ex5nAcz&tJ@P^7D+X zCOuI_fX}F?0ZYu34i-pAecIRK5SyQGDs;}i?2X$}>Ka?tvDCWS7%q=(q7?S~btDwj z@lw-9jzbd|4y@33PAl3HDVutXdH-|m&5$U)~M zMo$C5#&{hyMLKNULYZsg!=M2mBFeGP_=g(5U#d^cDIxb}t@w~K`Skg)2Rw`Du zp+N9XL6ajn3{ZHuv<5_wgg# z8&yq;(c2nm>S!w{?=s&tZP1`t>k*@lIyz$^9IC3zBQGnGzH&!S$)S5O+ItR}q1U>9 zPrjqnP`2CFuC-TP8sQK(Z|5BsuR9B@yO*l2T9!JxdMiD` z&rNF5tp&U0R_%F75X)|vy+rgKpq6=KepHzD;9~}RTk#cUi%98>3E%$!hiYWios~!^ zta`FRM}0MS3SUAw>W22D6n?wJC6+AB8IU6o%zzHXAkSAvWh$7IF2sb3kidF?FWtrC z?hn%QgQuf(;&2a;6R2~sEwA~ErSU)7n;&kqlrq`vv{cs1j5SfiZL7H@YFjHQWD(RP zGm*WiOEOCvNOy&N5%l$TR_M;qc3PWF*tNEwsGhRywKOe!eJc&ldb+qK6!jBIW^kzw z%^4#^fkXObPdOQ@^-a%G{77m$cBH!7s;#;z>3*uy6xx_j321358D6TO%`AUQOjboK z7a#=+GDbSlOYw21j+3Z|LXXXv9^Vf`ByUcX7XbWWM+4oiU*`MKl(_ zMw*JYN|>qENXbfRpr6xekjag(w)ova)XOlfQk%w_ENBY11}4#8t7ydb?af zptsXSOEpxUr9fS+E39ph0)p89an-M-elvTGp)^%aiq$u3KCGs*QHp9y-M>^v49@XN z0#q3ql6H64xZe?pn>)$hmLXRnwxFqJy-A7MluvjR+ZfWr?;WS;L>8$Zq(OhaEmaY^mMKGvS3p7dsiKCE=?%Y_lrmVMU z8!}BTI^8eV%C)A`wh9?@HEZJvO8He&!6ajY&mC6Qy-|FQCHRKbmXDXT>zFF6{i)Lw zb#lnpny4#LWeFR9=Z|?0cS*L{RQ! z`8ZgThH`*@5=aN{*FUYp<{IDUD#-!Q6Rp1c4Ws7nn_#rHT{5VvU8E(A?DqN%&h`P$ zi79P5ms4tsjk=D$D~7zTqeHHBlobW3^pyz4Xla``GUE!wWQ^nQ)|0YXESg78+4RMZ zj+%y+lhcZ(c95^nNL{y2DLFgX5`Tfmo}9FvnzHDNH6?<|RzenEhO<>cN_c^E~y2O&hntEDB_0ha<&fFElHh2Ua9OI`Mnx1K5o;g-AHMcQ( zkQO|h-(#_|syO!tsOn0xh3xGVQlze2p0JmFJwGtm)b1pPJjWDk3b1n~asrGtbIwLG ze&F=sN05JqP0J|-ggYRTqm*0T(UEo3brFBH*{Nl#r}-}KY3izZX(f1`o~5X6 z43eo+^g5l`U~)aWlxZH~#i_403(Ha4=sVFv8`9kBuayV(KXoA77CJh#K))$)^ouIa z8xp#!Wmw~(>kAca<5BlVPDfcqLw?n@mTUfurLF=fH3QN`DosfYx!9EjXFCzGy_av2 zGo7ocX7v)5wh3t`gqY`z<7nlERAaa@oH9DF@qj@d-E`b8REmlwBKGoO=ItLzVDc%e z@RX#n1tVSTKI76S9}sfc@3yTUt!+TtuD1KFU4vTa+V%9VI)1Ho%84{=+uAJpijx2X z6M_Q{s=6z!R*%-YXH?pn+D&Xh9y`8L23ZwSMUk`guPQ?W?VrC>-EV!N*4jSlO{_&s zoyF78Mf(R_#ULX4LkkSh+>{|QOpDAlS;-6OzIbk`8Pa~?58POwlFSj{3J~_usnqtd%)i>JvE&!cCV!xZMeNU?^m8I4?!pRHI z4YHUv(?>=VJ_`U`4hb1Pde)x`^FvB)dWTJ2G|q&oz3EC>strs(v*WzM6!DqqlH{>V z^3r`Q;BEckQnHC>^*E%=6I#)`rs=Zg6y`q}eQEqDZg+x+Hk5-X4q-FG& zilqRS!5fRP>Z*c%acy3MXo>+$zD_P+icfRb~{^RaT)%D zPts`ZD{ZoA`*md%6+E?RG)YMyo~58;>q{YAmfMEh$Auu|_0Mfwl`F5cZ_MtVNi|Jw z_a{5UOvD`Eaz{VMuJ-EvRidsH@ap(3wV>$ewG}NbzJp52R{HliRxH!cwNZppzt&IU zKU-shc(1B!g+FpNdsR_ZTjc)G2_=e3U91_Rjfn${?#|$S!*v#u4VO<_F(Phf52(J4 z{y9b0MX-5zWlZFzs7)%nhU8yWZb)LaB#V}HW8Do^3V0kYa zIOqOc^_#ABR=2oJ)|jg4=?bGk64xpl`)stP8;dhByYAzA9 z(W^kS4^502Wk%h!^U+k#7^GN1#Cu3n;2xQp3M7$vWYF8~bS8O9{DoR9m>vhHV_cF3Saqs(k8gF)Z)>RJ)%rs3 zr-kbCC0?JNfNt>Uj?QcSYjxFDdxg?F$8Tn( zuvXe*X)0-I;WEx)3LQtMJZmBrIol$|;1*@l9qjH;ZY%VS?#tWVN2)as_M^KO&fr~t zv^E*24T?&qvBbXc z7YW~C^nEx+S_+Lv8oAl?I&KKjP~h$TgLkIg;Qd3=Qh$#~H9U(wgHV-l{+9BK(bb)GN?>pMRuU0!zdqTUPn=Tqdjhys5maO*ejDY-EN_6{o|>#8XXG1MCDC)oSGT z_WW7?JvDZ~$~1J;;3@e{M{$6;KTu*JCy%#F`!=a2lA~6UlhnRdMzS)WrM++e05qxT zE`v`(-Kt<+%QY^zuLLZ3M-AweBisXn?bJ$yl!?!#Vei%{t7WK4s^BIMsry32X(>C$ zp=u1Cuc=2y5sL-L^(s`1llkL4ZyI@8Fl1CgBQMpNvAgY`=hr{)a-==Q?fl-ONtjSR z*ulmsB;z06KU04`x13DU0_GNp+~@xQsUJ@VAmbblJaLYz@l{PtERr;1A3=VXDKjuY zA4Z2Hx=A3<%hTbUbMt=K^UCr4diG0%-@9;W!BzT*smX5#ImhSydO(yWXOs73q~1$4 zJ-J3m{D31JI2%~n(nP{HG5Ma221!xm70z?jB4(_sNa|rSKm@{n+7$;XhJXbaSmwB@ zvHm9*_CLp=y={7eLs7Cb52x_Wnf44Ex(kPbiioOIdyCbaslwRX^1 zS3aGJ6*w3pI5;@Rljr*M<4ra8!<4m zrZ_n{832>O&mDR#%nM0Sl#YQy?2d*t1m}`5&q72gNH;L&HPT2>Y-DK}!mwF$$GO1% z9evY0^i-;)l}fogi1gG9cAdYG(bNEnC3A7Ne04$p;(}?l|$( z=Gm#V{dst=wDop7iv=P|SOZeI!7aTo3g;Le-0|(!WU1HQn{4!J8)xAK5QE3QTz?LQ zPp{yeOjE&CAU?vLF`vl(@O7@kdR2&0jI(=5-;7mN^nOJ{ts^P%jc+YAb(hnvwbZM{ zP(+PA1cG=a0EXKl9|IdfR>UB@4t#`!5!kMV*3hecYgvrOa9tr39_0TZhkYU(@ zSt?~lQm+QBqb{K09A%}hqGI$@wM-$nUps*R0AFsB8mdbD(bTV@P(aGaxaS{#`u+MD zg1UtIl+!I-AKi@QijU{^>*GBY%$Vg-6-Ee9{4n<)uU6q>UtOXQ2P>Pw6AJ1m*e2?j zaB!?aIOiXJsVlY0i8TdaT5Yi`xp>TA6>>Lzp5ytRu3DLDt#KBR{M8zNbQ}@(0Ci5@ zu5pXR(-;&a=&aC$Ag?53`xDe!kdT`OJhX{4gehh3ZQ=fc>1rS-iAU3xD;^0M_x^u= zrIgo8PE>7-1Y9rfx&EK)j-iw{D{u&2CGnO%hJV-nx|h;jt*0C)R_AjjG5r0p(#lhS zT)<6B?C~LnuGA4^bWp6vYcdm`Ilut)*bRuyy9IqQ z&-(uWKAobev99gPsLnEj<$))VN3r{LDJpHv`9xJAB$iIR;pPeS^PIP&2JT3JbNT-O zUY+URO~|YsSXU|z3?KpzKZp*0PdxO?1zw*a0eWzAfLbr8^U1&;pTAErzME`*_5xTQ zeGF&$56j0-B|w`f`9oq}QN|a={h8c0yaci4KTM`u?~DVEm8@EIoxgcZH#Q28GspGw z@6t%doN<9QHyp8O$O9+y@%(yNvFW@9X=#rDHhkk4Je&{f)52i}#Q8%d2KH!Llv;XF zRc5CvlaRF|1MV@OKd(m{HHJZ!m1O5WpRa;(#&9|F(s4;)m=8{9Sh2vw$U(@@vB~lI z^sHKJa_(f92Ewa9tCBEIJf4d>g^Il)f`XvUcr*4DrI4ysAEe-7UVlz`&yJL>f|b7o zWkMl5`gH|DoO|QPzrVjpR>NruaXf)DoW(buPt)!{fFAuCH1!Esh^v*?h6FhC_RZz;Xu>Tj#lGXH!&nEzn>ia$KO2_`wpc>$gY)KFeG}I@tl+AKHl90 ztRGL)aH~KG+*W)YzhZsI>(GB-$Q}0Fs#U=}2FD%`=y)A@-%=yV4p;*Oy`JmOr+TVz za#RzXXYYam#~$4kJ+k}*fqJWB>JosrB>Cr$)8C{20AXDlEgjOdC{hl_;P~^A$@l3r zwu{ynE!wL99ucvepMSsdJuyD(sT& zHr(zzSZ>cJ13cr;POoOU;n()HN|2Z-;Ab9j{6CrL43yc!2}l^f_!9u1Jiao zH<#@S`L~A8*b@SG-74FhWn|hh=f-~Hpnqqn&PQ{*qoh?7R!T($ifscYeB6R_ zjz8_~(gm?>-jKOLv>A;*8l1H`Bm3;5_+uVVK>6DgX9^ZZC(1%{eEZ{`iiNB#8p$Dv zOAo0Wc>W*f(aT$>V#d~|Vh5CroO|Dk&K zr*R7Z08n4KJ^|;)QSEJhxy7b$8MZ7c_Sse4ve*VQ;{<)l{vAj_WrLU28kxwrjxgBj zTv_RwI$B4GsNN0Egs^sU=3Y-MK`W9D0OJRz$mtnr-l{5iq@{_XN{IyFPWK)FW0pDg z8NfNlI*-~nuAj72Zjbk{2TkptsDaM|-}#K5rSEZ?8bfTBLn1|0^C9#;Ev6)l|q0B{u>7m@V-UQaz#daC2ADXD5%s9JScnUzriJagb2 zpC=#V)xW84`qtqpmN!b)hA^tvXrK~C!M>mbXoCaCAfL~wr&8WEB^?~5Yja3eAWDdH z_WOQcZ_lf_hzU>0sZz_HwY;1 z_8W`<(CZo>kf!x0t5C343^IyN4+D^K)@56jzPiO=thL-_vDhrPnu=>(ZOHnUUfS2l zRV1_A17)SM%FK2-7+u&rjVuP<}E5oB1t?eAZGOT zpQH>Ke(zs!^`*N;M?K3%L2A-yw~ZNHqV$AxRP%iusz1fbGg(!cE_ox ziYukw$EK0wTKZ`hol#*V`en-G&r7(k*2}jYHgQZsU?~fC+kX##XIh+F6q_uguTvRTZ{4ZD}p3AfTkAmv-855m8J`t5C)o&@nHl z5>LXQP+jTopTvCEjS+dc_Y$JrrS$frmhqsj`Y%h;+2D@sRl|ztql~N8Byvd`MJ`d6 zNe~xy)>U%@BtS7hWLHI z_X|dM2T^J&TIjoJY17v#yM-L|@y%DMD`~0aXdQiHyiDspY0++BwPG3KuL()gU#mUgjR`-?+tx5-x( zP0948kfXOvc6iF|6>=hzBxh=ejdr7`+Q6^V)$6BzEPJi1FLhnoeM=0Qg3+L4)7qZQ zmOFRNX}W0)YHxO=dUNw}8L>3*xR8y!jfkopej9!lJ9{j;mtE`KD-U_}Fp zyBlq`&lEO0mCjoG(7}!(Wu>Q}4L|PUl5bN4mFf@iZ=m!yXZ06tHMeN=#673IUZ%QI z+-w#q`DeGuH4QzunyO(kqRUKVsi>uANc|d*K);f6sH&AyQAk%QY@i<2)5l*9_}bOV zudKt9SuSzC!#mqenZuUc5_!d!L-8x|DQTh6x_?jW`a9LbMcN~JeKTyZTO_3JO_5_L zl~($nm-R%kAo}T-Y07vQ$5HK3ueDye(|TjLItN%@FWP@VflF1|#fhk-rH!gZTTcT; z8u}HmNeUEV%*tX?m;i%DSal7nRM};^TA{dGX>C=4=c@FUo@NzVI)&^;>_myTan?W+63Y~9zH+@WUv8AQI~Df#Q9)tR z7oAnQ<#>YKevVB$swk0VGE&VDZ`|Esbjqr#7TkCpRrgz^%C_BS)YtebWwdUVj=@P; zM=(0D(p)2HC~GPym>uxNTewX()T_WJ9c-}L8Ou0YZh?YewRKYkWpOH* zwqoRW>KqRZbOeBhQeB|E!!=c|-nJbu*J*#VS~8a54Z^CLx_Ttc$JPlu(L9vEll1|e zqn@8>VveTiRj627ziifAB&>>#lG^D-Y)Kf%)YS3HSVa;UTmUopbDoH_Q`9viHw&fK zdYZ~Re028stL85qGz&89q=R-}(u}i($;sNpo^jN!PnHQ!BtTPCK^nDe$sldvfsiNz z7{DMBbK}oiIS63tPO;Esgi4oZW2|{lwGSOE(8mobyt8^!zE!0xS17Cp)qVlsi11(<*b4d?RXqG{eaBQr@LSEK==rgV_B$9N-d-V_d4 zPmnH`#zoDn)RWD>#hNyt&a0ara3gw0I~$h2OB=!r0bFxU(9x!kNlW1Zf3 z&q<@AA=}hxinK8|)W8kI0uz!la!($5bc5vRsy$k$q?(?Tkv%V|>F;a|p>BBG2eHpy zN)n{F7Y=>?@Y;fqqCxK8U-R#E@>9o241$`X87bwdXl9Y54D&e8)&b-W50UOV1W0L% zIu#p(BBb~X8~$R)&$qYVrpVx5MxuD$82uO{lBO8qgA;qC2GLEeU%S}ucIm4M9VOD}DTn*%& zNgxtD6XU@1(q^h!$!3MaL_oxXCFLVcs*1QAet9`R&!sfgP=3;-T3Nj$xJnW_b!0L@ z5}l!(;|g4c#~v}!0qUM`(W6XjAu`4zc4uc98{Zi4Ip^=!u0sUCrE8VzXGb}G4EE9PHJ~8@z$?N2dEi9`nQY*avqCAa&fk_*IK6zIBxbx7Xh-^sAl@BcQ zvj}HK1O)_xpKuSi<