From f67814fc97d0846d570876f0e1bf79745873d56d Mon Sep 17 00:00:00 2001 From: jimblom Date: Fri, 30 Nov 2018 13:57:22 -0700 Subject: [PATCH 01/33] Adding SparkFun nRF52840 Mini board support. --- .../boards/sparkfun_nrf52840_mini/README.md | 48 +++++++ .../nrf/boards/sparkfun_nrf52840_mini/board.c | 38 ++++++ .../sparkfun_nrf52840_mini/mpconfigboard.h | 68 ++++++++++ .../sparkfun_nrf52840_mini/mpconfigboard.mk | 25 ++++ .../nrf/boards/sparkfun_nrf52840_mini/pins.c | 117 ++++++++++++++++++ 5 files changed, 296 insertions(+) create mode 100644 ports/nrf/boards/sparkfun_nrf52840_mini/README.md create mode 100644 ports/nrf/boards/sparkfun_nrf52840_mini/board.c create mode 100644 ports/nrf/boards/sparkfun_nrf52840_mini/mpconfigboard.h create mode 100644 ports/nrf/boards/sparkfun_nrf52840_mini/mpconfigboard.mk create mode 100644 ports/nrf/boards/sparkfun_nrf52840_mini/pins.c diff --git a/ports/nrf/boards/sparkfun_nrf52840_mini/README.md b/ports/nrf/boards/sparkfun_nrf52840_mini/README.md new file mode 100644 index 0000000000..f80f1c27ca --- /dev/null +++ b/ports/nrf/boards/sparkfun_nrf52840_mini/README.md @@ -0,0 +1,48 @@ +# SparkFun Pro nRF52840 Mini Breakout + +The [SparkFun Pro nRF52840 Mini](https://www.sparkfun.com/products/15025) small breakout board for Raytac's MDBT50Q-P1M module, which features an nRF52840. It breaks out as many pins as it can in an Arduino Pro Mini footprint. Also included on the board are a qwiic (I2C) connector, LiPo battery charger, and on/off switch. + +Note: the SparkFun Pro nRF52840 Mini Breakout does not include a QSPI external flash. Any Python code will need to be stored on the internal flash filesystem. + +## CircuitPython Pin Defs + +CircuitPython pin definitions try to follow those of the [Arduino Pro Mini](https://www.sparkfun.com/products/11113), which the footprint is based on. + +This can be somewhat confusing, especially around the analog pins. Here's a quick pin-map: + + + + + + + + + + + + + + + + + + + + + + +
Board pin labelDigital Pin ReferenceAdditional Pin CapabilitiesPin/Port Reference
17D1TXP0_17
15D0RXP0_15
8SDAP0_08
11SCLP0_11
19D3P0_19
20D4P0_20
21D5P0_21
22D6P0_22
23D7P0_23
9D8P0_09
10D9P0_10
2D10A0P0_02
3D11MOSI, A1P0_03
31D12MISO, A7P0_31
30D13SCK, A6P0_31
29A5P0_29
28A4P0_28
5A3P0_05
4A2P0_04
+ +If a pin isn't defined as D0, D1, etc., standard port/pin references should work -- e.g. `P0_17` is pin 17, `P0_02` is pin 2, etc. + +## Bootloader Notes + +The nRF52840 Mini ships with a slightly modified (i.e pin defs and USB defs) version of the Adafruit nRF52 bootloader, which supports UF2 and CDC bootloading. + +## Hardware Reference + +The nRF52840 Mini hardware layout is open source: + +* [Schematic](https://cdn.sparkfun.com/assets/learn_tutorials/8/2/0/nrf52840-breakout-mdbt50q-v10.pdf) +* [Eagle Files](https://cdn.sparkfun.com/assets/learn_tutorials/8/2/0/nrf52840-breakout-mdbt50q-v10.zip) +* [Hookup Guide](https://learn.sparkfun.com/tutorials/sparkfun-pro-nrf52840-mini-hookup-guide) \ No newline at end of file diff --git a/ports/nrf/boards/sparkfun_nrf52840_mini/board.c b/ports/nrf/boards/sparkfun_nrf52840_mini/board.c new file mode 100644 index 0000000000..4421970eef --- /dev/null +++ b/ports/nrf/boards/sparkfun_nrf52840_mini/board.c @@ -0,0 +1,38 @@ +/* + * This file is part of the MicroPython project, http://micropython.org/ + * + * The MIT License (MIT) + * + * Copyright (c) 2017 Scott Shawcroft for Adafruit Industries + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#include "boards/board.h" + +void board_init(void) { +} + +bool board_requests_safe_mode(void) { + return false; +} + +void reset_board(void) { + +} diff --git a/ports/nrf/boards/sparkfun_nrf52840_mini/mpconfigboard.h b/ports/nrf/boards/sparkfun_nrf52840_mini/mpconfigboard.h new file mode 100644 index 0000000000..353a0ad8fd --- /dev/null +++ b/ports/nrf/boards/sparkfun_nrf52840_mini/mpconfigboard.h @@ -0,0 +1,68 @@ +/* + * This file is part of the MicroPython project, http://micropython.org/ + * + * The MIT License (MIT) + * + * Copyright (c) 2016 Glenn Ruben Bakke + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#include "nrfx/hal/nrf_gpio.h" + +#define MICROPY_HW_BOARD_NAME "SparkFun Pro nRF52840 Mini" +#define MICROPY_HW_MCU_NAME "nRF52840" +#define MICROPY_PY_SYS_PLATFORM "SFE_NRF52840_Mini" + +#define PORT_HEAP_SIZE (128 * 1024) +#define CIRCUITPY_AUTORELOAD_DELAY_MS 500 + +#define DEFAULT_I2C_BUS_SCL (&pin_P0_11) +#define DEFAULT_I2C_BUS_SDA (&pin_P0_08) + +#define DEFAULT_SPI_BUS_SCK (&pin_P0_30) +#define DEFAULT_SPI_BUS_MOSI (&pin_P0_03) +#define DEFAULT_SPI_BUS_MISO (&pin_P0_31) + +#define DEFAULT_UART_BUS_RX (&pin_P0_15) +#define DEFAULT_UART_BUS_TX (&pin_P0_17) + +/* Note: Flash chip is not provided on SparkFun nRF52840 Mini. + * Leaving this as a reminder for future/similar versions of the board. */ +// Flash operation mode is determined by MICROPY_QSPI_DATAn pin configuration. +// A pin config is valid if it is defined and its value is not 0xFF. +// Quad mode: If all DATA0 --> DATA3 are valid +// Dual mode: If DATA0 and DATA1 are valid while either DATA2 and/or DATA3 are invalid +// Single mode: If only DATA0 is valid +/*#ifdef QSPI_FLASH_FILESYSTEM +#define MICROPY_QSPI_DATA0 NRF_GPIO_PIN_MAP(0, 20) +#define MICROPY_QSPI_DATA1 NRF_GPIO_PIN_MAP(0, 21) +#define MICROPY_QSPI_DATA2 NRF_GPIO_PIN_MAP(0, 22) +#define MICROPY_QSPI_DATA3 NRF_GPIO_PIN_MAP(0, 23) +#define MICROPY_QSPI_SCK NRF_GPIO_PIN_MAP(0, 19) +#define MICROPY_QSPI_CS NRF_GPIO_PIN_MAP(0, 17) +#endif + +#ifdef SPI_FLASH_FILESYSTEM +#define SPI_FLASH_MOSI_PIN &pin_P0_20 +#define SPI_FLASH_MISO_PIN &pin_P0_21 +#define SPI_FLASH_SCK_PIN &pin_P0_19 +#define SPI_FLASH_CS_PIN &pin_P0_17 +#endif*/ + diff --git a/ports/nrf/boards/sparkfun_nrf52840_mini/mpconfigboard.mk b/ports/nrf/boards/sparkfun_nrf52840_mini/mpconfigboard.mk new file mode 100644 index 0000000000..d4819c855b --- /dev/null +++ b/ports/nrf/boards/sparkfun_nrf52840_mini/mpconfigboard.mk @@ -0,0 +1,25 @@ +USB_VID = 0x1B4F +USB_PID = 0x5289 +USB_PRODUCT = "SFE_nRF52840_Mini" +USB_MANUFACTURER = "SparkFun Electronics" + +MCU_SERIES = m4 +MCU_VARIANT = nrf52 +MCU_SUB_VARIANT = nrf52840 +MCU_CHIP = nrf52840 +SD ?= s140 +SOFTDEV_VERSION ?= 6.1.0 + +BOOT_SETTING_ADDR = 0xFF000 + +ifeq ($(SD),) + LD_FILE = boards/nrf52840_1M_256k.ld +else + LD_FILE = boards/adafruit_$(MCU_SUB_VARIANT)_$(SD_LOWER)_v$(firstword $(subst ., ,$(SOFTDEV_VERSION))).ld +endif + +NRF_DEFINES += -DNRF52840_XXAA -DNRF52840 + +QSPI_FLASH_FILESYSTEM = 0 +EXTERNAL_FLASH_DEVICE_COUNT = 0 +EXTERNAL_FLASH_DEVICES = diff --git a/ports/nrf/boards/sparkfun_nrf52840_mini/pins.c b/ports/nrf/boards/sparkfun_nrf52840_mini/pins.c new file mode 100644 index 0000000000..2ea80389d4 --- /dev/null +++ b/ports/nrf/boards/sparkfun_nrf52840_mini/pins.c @@ -0,0 +1,117 @@ +#include "shared-bindings/board/__init__.h" + +#include "board_busses.h" + +STATIC const mp_rom_map_elem_t board_module_globals_table[] = { + { MP_ROM_QSTR(MP_QSTR_P0_00), MP_ROM_PTR(&pin_P0_00) }, + { MP_ROM_QSTR(MP_QSTR_P0_01), MP_ROM_PTR(&pin_P0_01) }, + + { MP_ROM_QSTR(MP_QSTR_P0_02), MP_ROM_PTR(&pin_P0_02) }, + { MP_ROM_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_P0_02) }, + { MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_P0_02) }, + + { MP_ROM_QSTR(MP_QSTR_P0_03), MP_ROM_PTR(&pin_P0_03) }, + { MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_P0_03) }, + { MP_ROM_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_P0_03) }, + { MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_P0_03) }, + + { MP_ROM_QSTR(MP_QSTR_P0_04), MP_ROM_PTR(&pin_P0_04) }, + { MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_P0_04) }, + + { MP_ROM_QSTR(MP_QSTR_P0_05), MP_ROM_PTR(&pin_P0_05) }, + { MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_P0_05) }, + + { MP_ROM_QSTR(MP_QSTR_P0_06), MP_ROM_PTR(&pin_P0_06) }, + + { MP_ROM_QSTR(MP_QSTR_P0_07), MP_ROM_PTR(&pin_P0_07) }, + { MP_ROM_QSTR(MP_QSTR_LED1), MP_ROM_PTR(&pin_P0_07) }, + + { MP_ROM_QSTR(MP_QSTR_P0_08), MP_ROM_PTR(&pin_P0_08) }, + { MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_P0_08) }, + + { MP_ROM_QSTR(MP_QSTR_P0_09), MP_ROM_PTR(&pin_P0_09) }, + { MP_ROM_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_P0_09) }, + + { MP_ROM_QSTR(MP_QSTR_P0_10), MP_ROM_PTR(&pin_P0_10) }, + { MP_ROM_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_P0_10) }, + + { MP_ROM_QSTR(MP_QSTR_P0_11), MP_ROM_PTR(&pin_P0_11) }, + { MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_P0_11) }, + + { MP_ROM_QSTR(MP_QSTR_P0_12), MP_ROM_PTR(&pin_P0_12) }, + + { MP_ROM_QSTR(MP_QSTR_P0_13), MP_ROM_PTR(&pin_P0_13) }, + { MP_ROM_QSTR(MP_QSTR_BUTTON1), MP_ROM_PTR(&pin_P0_13) }, + + { MP_ROM_QSTR(MP_QSTR_P0_14), MP_ROM_PTR(&pin_P0_14) }, + + { MP_ROM_QSTR(MP_QSTR_P0_15), MP_ROM_PTR(&pin_P0_15) }, + { MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_P0_15) }, + { MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_P1_15) }, + + { MP_ROM_QSTR(MP_QSTR_P0_16), MP_ROM_PTR(&pin_P0_16) }, + + { MP_ROM_QSTR(MP_QSTR_P0_17), MP_ROM_PTR(&pin_P0_17) }, + { MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_P0_17) }, + { MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_P0_17) }, + + // RESET { MP_ROM_QSTR(MP_QSTR_P0_18), MP_ROM_PTR(&pin_P0_18) }, + + { MP_ROM_QSTR(MP_QSTR_P0_19), MP_ROM_PTR(&pin_P0_19) }, + { MP_ROM_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_P0_19) }, + + { MP_ROM_QSTR(MP_QSTR_P0_20), MP_ROM_PTR(&pin_P0_20) }, + { MP_ROM_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_P0_20) }, + + { MP_ROM_QSTR(MP_QSTR_P0_21), MP_ROM_PTR(&pin_P0_21) }, + { MP_ROM_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_P0_21) }, + + { MP_ROM_QSTR(MP_QSTR_P0_22), MP_ROM_PTR(&pin_P0_22) }, + { MP_ROM_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_P0_22) }, + + { MP_ROM_QSTR(MP_QSTR_P0_23), MP_ROM_PTR(&pin_P0_23) }, + { MP_ROM_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_P0_23) }, + + { MP_ROM_QSTR(MP_QSTR_P0_24), MP_ROM_PTR(&pin_P0_24) }, + { MP_ROM_QSTR(MP_QSTR_P0_25), MP_ROM_PTR(&pin_P0_25) }, + { MP_ROM_QSTR(MP_QSTR_P0_26), MP_ROM_PTR(&pin_P0_26) }, + { MP_ROM_QSTR(MP_QSTR_P0_27), MP_ROM_PTR(&pin_P0_27) }, + + { MP_ROM_QSTR(MP_QSTR_P0_28), MP_ROM_PTR(&pin_P0_28) }, + { MP_ROM_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_P0_28) }, + + { MP_ROM_QSTR(MP_QSTR_P0_29), MP_ROM_PTR(&pin_P0_29) }, + { MP_ROM_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_P0_29) }, + + { MP_ROM_QSTR(MP_QSTR_P0_30), MP_ROM_PTR(&pin_P0_30) }, + { MP_ROM_QSTR(MP_QSTR_A6), MP_ROM_PTR(&pin_P0_30) }, + { MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_P0_30) }, + { MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_P0_30) }, + + { MP_ROM_QSTR(MP_QSTR_P0_31), MP_ROM_PTR(&pin_P0_31) }, + { MP_ROM_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_P0_31) }, + { MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_P0_31) }, + { MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_P0_31) }, + + // Nothing connected to anything on P1 port + { MP_ROM_QSTR(MP_QSTR_P1_00), MP_ROM_PTR(&pin_P1_00) }, + { MP_ROM_QSTR(MP_QSTR_P1_01), MP_ROM_PTR(&pin_P1_01) }, + { MP_ROM_QSTR(MP_QSTR_P1_02), MP_ROM_PTR(&pin_P1_02) }, + { MP_ROM_QSTR(MP_QSTR_P1_03), MP_ROM_PTR(&pin_P1_03) }, + { MP_ROM_QSTR(MP_QSTR_P1_04), MP_ROM_PTR(&pin_P1_04) }, + { MP_ROM_QSTR(MP_QSTR_P1_05), MP_ROM_PTR(&pin_P1_05) }, + { MP_ROM_QSTR(MP_QSTR_P1_06), MP_ROM_PTR(&pin_P1_06) }, + { MP_ROM_QSTR(MP_QSTR_P1_07), MP_ROM_PTR(&pin_P1_07) }, + { MP_ROM_QSTR(MP_QSTR_P1_08), MP_ROM_PTR(&pin_P1_08) }, + { MP_ROM_QSTR(MP_QSTR_P1_09), MP_ROM_PTR(&pin_P1_09) }, + { MP_ROM_QSTR(MP_QSTR_P1_10), MP_ROM_PTR(&pin_P1_10) }, + { MP_ROM_QSTR(MP_QSTR_P1_11), MP_ROM_PTR(&pin_P1_11) }, + { MP_ROM_QSTR(MP_QSTR_P1_12), MP_ROM_PTR(&pin_P1_12) }, + { MP_ROM_QSTR(MP_QSTR_P1_13), MP_ROM_PTR(&pin_P1_13) }, + { MP_ROM_QSTR(MP_QSTR_P1_14), MP_ROM_PTR(&pin_P1_14) }, + { MP_ROM_QSTR(MP_QSTR_P1_15), MP_ROM_PTR(&pin_P1_15) }, + + { MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) }, +}; + +MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table); From 09316b35d7b838d735d76639cca462c088d3d18d Mon Sep 17 00:00:00 2001 From: jimblom Date: Fri, 30 Nov 2018 14:58:36 -0700 Subject: [PATCH 02/33] remove non-broken-out nrf pins. re-organize pins.c list. --- .../nrf/boards/sparkfun_nrf52840_mini/pins.c | 135 +++++------------- 1 file changed, 35 insertions(+), 100 deletions(-) diff --git a/ports/nrf/boards/sparkfun_nrf52840_mini/pins.c b/ports/nrf/boards/sparkfun_nrf52840_mini/pins.c index 2ea80389d4..210b170326 100644 --- a/ports/nrf/boards/sparkfun_nrf52840_mini/pins.c +++ b/ports/nrf/boards/sparkfun_nrf52840_mini/pins.c @@ -3,113 +3,48 @@ #include "board_busses.h" STATIC const mp_rom_map_elem_t board_module_globals_table[] = { - { MP_ROM_QSTR(MP_QSTR_P0_00), MP_ROM_PTR(&pin_P0_00) }, - { MP_ROM_QSTR(MP_QSTR_P0_01), MP_ROM_PTR(&pin_P0_01) }, + { MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_P1_15) }, // D1/TX + { MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_P0_17) }, // D0/RX + // D2 on qwiic gap + { MP_ROM_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_P0_19) }, // D3 + { MP_ROM_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_P0_20) }, // D4 + { MP_ROM_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_P0_21) }, // D5 + { MP_ROM_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_P0_22) }, // D6 + { MP_ROM_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_P0_23) }, // D7 + { MP_ROM_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_P0_09) }, // D8 + { MP_ROM_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_P0_10) }, // D9 - { MP_ROM_QSTR(MP_QSTR_P0_02), MP_ROM_PTR(&pin_P0_02) }, - { MP_ROM_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_P0_02) }, - { MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_P0_02) }, - - { MP_ROM_QSTR(MP_QSTR_P0_03), MP_ROM_PTR(&pin_P0_03) }, - { MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_P0_03) }, - { MP_ROM_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_P0_03) }, - { MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_P0_03) }, - - { MP_ROM_QSTR(MP_QSTR_P0_04), MP_ROM_PTR(&pin_P0_04) }, - { MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_P0_04) }, - - { MP_ROM_QSTR(MP_QSTR_P0_05), MP_ROM_PTR(&pin_P0_05) }, - { MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_P0_05) }, - - { MP_ROM_QSTR(MP_QSTR_P0_06), MP_ROM_PTR(&pin_P0_06) }, - - { MP_ROM_QSTR(MP_QSTR_P0_07), MP_ROM_PTR(&pin_P0_07) }, - { MP_ROM_QSTR(MP_QSTR_LED1), MP_ROM_PTR(&pin_P0_07) }, - - { MP_ROM_QSTR(MP_QSTR_P0_08), MP_ROM_PTR(&pin_P0_08) }, - { MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_P0_08) }, - - { MP_ROM_QSTR(MP_QSTR_P0_09), MP_ROM_PTR(&pin_P0_09) }, - { MP_ROM_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_P0_09) }, + { MP_ROM_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_P0_02) }, // D10 + { MP_ROM_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_P0_03) }, // D11 + { MP_ROM_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_P0_31) }, // D12 + { MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_P0_30) }, // D13 + { MP_ROM_QSTR(MP_QSTR_D14), MP_ROM_PTR(&pin_P0_29) }, // D14 + { MP_ROM_QSTR(MP_QSTR_D15), MP_ROM_PTR(&pin_P0_28) }, // D15 + { MP_ROM_QSTR(MP_QSTR_D16), MP_ROM_PTR(&pin_P0_05) }, // D16 + { MP_ROM_QSTR(MP_QSTR_D17), MP_ROM_PTR(&pin_P0_04) }, // D17 - { MP_ROM_QSTR(MP_QSTR_P0_10), MP_ROM_PTR(&pin_P0_10) }, - { MP_ROM_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_P0_10) }, - - { MP_ROM_QSTR(MP_QSTR_P0_11), MP_ROM_PTR(&pin_P0_11) }, - { MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_P0_11) }, - - { MP_ROM_QSTR(MP_QSTR_P0_12), MP_ROM_PTR(&pin_P0_12) }, - - { MP_ROM_QSTR(MP_QSTR_P0_13), MP_ROM_PTR(&pin_P0_13) }, - { MP_ROM_QSTR(MP_QSTR_BUTTON1), MP_ROM_PTR(&pin_P0_13) }, - - { MP_ROM_QSTR(MP_QSTR_P0_14), MP_ROM_PTR(&pin_P0_14) }, - - { MP_ROM_QSTR(MP_QSTR_P0_15), MP_ROM_PTR(&pin_P0_15) }, - { MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_P0_15) }, - { MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_P1_15) }, - - { MP_ROM_QSTR(MP_QSTR_P0_16), MP_ROM_PTR(&pin_P0_16) }, - - { MP_ROM_QSTR(MP_QSTR_P0_17), MP_ROM_PTR(&pin_P0_17) }, - { MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_P0_17) }, - { MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_P0_17) }, + { MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_P0_02) }, // A0 + { MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_P0_03) }, // A1 + { MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_P0_04) }, // A2 + { MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_P0_05) }, // A3 + { MP_ROM_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_P0_28) }, // A4 + { MP_ROM_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_P0_29) }, // A5 + { MP_ROM_QSTR(MP_QSTR_A6), MP_ROM_PTR(&pin_P0_30) }, // A6 + { MP_ROM_QSTR(MP_QSTR_A7), MP_ROM_PTR(&pin_P0_31) }, // A7 - // RESET { MP_ROM_QSTR(MP_QSTR_P0_18), MP_ROM_PTR(&pin_P0_18) }, - - { MP_ROM_QSTR(MP_QSTR_P0_19), MP_ROM_PTR(&pin_P0_19) }, - { MP_ROM_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_P0_19) }, + { MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_P0_08) }, // 8 - SDA + { MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_P0_11) }, // 11 - SCL - { MP_ROM_QSTR(MP_QSTR_P0_20), MP_ROM_PTR(&pin_P0_20) }, - { MP_ROM_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_P0_20) }, + { MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_P0_31) }, // 31 - MISO + { MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_P0_03) }, // 3 - MOSI + { MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_P0_30) }, // 30 - SCK - { MP_ROM_QSTR(MP_QSTR_P0_21), MP_ROM_PTR(&pin_P0_21) }, - { MP_ROM_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_P0_21) }, + { MP_ROM_QSTR(MP_QSTR_LED1), MP_ROM_PTR(&pin_P0_07) }, // 7 - Blue LED - { MP_ROM_QSTR(MP_QSTR_P0_22), MP_ROM_PTR(&pin_P0_22) }, - { MP_ROM_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_P0_22) }, + { MP_ROM_QSTR(MP_QSTR_BUTTON1), MP_ROM_PTR(&pin_P0_13) }, // 13 - Button - { MP_ROM_QSTR(MP_QSTR_P0_23), MP_ROM_PTR(&pin_P0_23) }, - { MP_ROM_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_P0_23) }, - - { MP_ROM_QSTR(MP_QSTR_P0_24), MP_ROM_PTR(&pin_P0_24) }, - { MP_ROM_QSTR(MP_QSTR_P0_25), MP_ROM_PTR(&pin_P0_25) }, - { MP_ROM_QSTR(MP_QSTR_P0_26), MP_ROM_PTR(&pin_P0_26) }, - { MP_ROM_QSTR(MP_QSTR_P0_27), MP_ROM_PTR(&pin_P0_27) }, - - { MP_ROM_QSTR(MP_QSTR_P0_28), MP_ROM_PTR(&pin_P0_28) }, - { MP_ROM_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_P0_28) }, - - { MP_ROM_QSTR(MP_QSTR_P0_29), MP_ROM_PTR(&pin_P0_29) }, - { MP_ROM_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_P0_29) }, - - { MP_ROM_QSTR(MP_QSTR_P0_30), MP_ROM_PTR(&pin_P0_30) }, - { MP_ROM_QSTR(MP_QSTR_A6), MP_ROM_PTR(&pin_P0_30) }, - { MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_P0_30) }, - { MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_P0_30) }, - - { MP_ROM_QSTR(MP_QSTR_P0_31), MP_ROM_PTR(&pin_P0_31) }, - { MP_ROM_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_P0_31) }, - { MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_P0_31) }, - { MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_P0_31) }, - - // Nothing connected to anything on P1 port - { MP_ROM_QSTR(MP_QSTR_P1_00), MP_ROM_PTR(&pin_P1_00) }, - { MP_ROM_QSTR(MP_QSTR_P1_01), MP_ROM_PTR(&pin_P1_01) }, - { MP_ROM_QSTR(MP_QSTR_P1_02), MP_ROM_PTR(&pin_P1_02) }, - { MP_ROM_QSTR(MP_QSTR_P1_03), MP_ROM_PTR(&pin_P1_03) }, - { MP_ROM_QSTR(MP_QSTR_P1_04), MP_ROM_PTR(&pin_P1_04) }, - { MP_ROM_QSTR(MP_QSTR_P1_05), MP_ROM_PTR(&pin_P1_05) }, - { MP_ROM_QSTR(MP_QSTR_P1_06), MP_ROM_PTR(&pin_P1_06) }, - { MP_ROM_QSTR(MP_QSTR_P1_07), MP_ROM_PTR(&pin_P1_07) }, - { MP_ROM_QSTR(MP_QSTR_P1_08), MP_ROM_PTR(&pin_P1_08) }, - { MP_ROM_QSTR(MP_QSTR_P1_09), MP_ROM_PTR(&pin_P1_09) }, - { MP_ROM_QSTR(MP_QSTR_P1_10), MP_ROM_PTR(&pin_P1_10) }, - { MP_ROM_QSTR(MP_QSTR_P1_11), MP_ROM_PTR(&pin_P1_11) }, - { MP_ROM_QSTR(MP_QSTR_P1_12), MP_ROM_PTR(&pin_P1_12) }, - { MP_ROM_QSTR(MP_QSTR_P1_13), MP_ROM_PTR(&pin_P1_13) }, - { MP_ROM_QSTR(MP_QSTR_P1_14), MP_ROM_PTR(&pin_P1_14) }, - { MP_ROM_QSTR(MP_QSTR_P1_15), MP_ROM_PTR(&pin_P1_15) }, + { MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_P0_15) }, // 15 - UART RX + { MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_P0_17) }, // 17 - UART TX { MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) }, }; From 3d597aae92069e2f1057163143e928f2981f3d65 Mon Sep 17 00:00:00 2001 From: ShawnHymel Date: Sun, 2 Dec 2018 18:07:19 -0600 Subject: [PATCH 03/33] Added MKR Zero board definition. --- README.rst | 4 +- ports/atmel-samd/README.rst | 91 ++++++++++--------- .../atmel-samd/boards/arduino_mkrzero/board.c | 40 ++++++++ .../boards/arduino_mkrzero/mpconfigboard.h | 24 +++++ .../boards/arduino_mkrzero/mpconfigboard.mk | 11 +++ .../atmel-samd/boards/arduino_mkrzero/pins.c | 46 ++++++++++ 6 files changed, 172 insertions(+), 44 deletions(-) create mode 100644 ports/atmel-samd/boards/arduino_mkrzero/board.c create mode 100644 ports/atmel-samd/boards/arduino_mkrzero/mpconfigboard.h create mode 100644 ports/atmel-samd/boards/arduino_mkrzero/mpconfigboard.mk create mode 100644 ports/atmel-samd/boards/arduino_mkrzero/pins.c diff --git a/README.rst b/README.rst index 138dbfea79..76c7315dc4 100644 --- a/README.rst +++ b/README.rst @@ -60,13 +60,13 @@ Other supported using the `Adafruit CircuitPython SD library `__) - `Arduino Zero `__ +- `Arduino MKR Zero ` "Third-party" or "non-Adafruit" boards ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - `Electronic Cats Meow Meow `__ -- `Electronic Cats CatWAN USB Stick `__ - +- `Electronic Cats CatWAN USB Stick ` Download -------- diff --git a/ports/atmel-samd/README.rst b/ports/atmel-samd/README.rst index 0c1026644d..649a142e1d 100644 --- a/ports/atmel-samd/README.rst +++ b/ports/atmel-samd/README.rst @@ -2,9 +2,16 @@ SAMD21x18 ========= This port brings MicroPython to SAMD21x18 based development boards under the name -CircuitPython. Supported boards include the Adafruit CircuitPlayground Express, -Adafruit Feather M0 Express, Adafruit Metro M0 Express, Arduino Zero, Adafruit -Feather M0 Basic and Adafruit M0 Bluefruit LE. +CircuitPython. Supported boards include: + +- Adafruit CircuitPlayground Express +- Adafruit Feather M0 Basic +- Adafruit Feather M0 Express +- Adafruit Metro M0 Express +- Adafruit M0 Bluefruit LE +- Arduino Zero +- Arduino MKR Zero + Pinout ------ @@ -15,51 +22,51 @@ different names. The table below matches the pin order in and omits the pins only available on the largest package because all supported boards use smaller version. -===================== =============== =========================== ====================== ================ ================== ========================= ================ ================ +===================== =================== =============== =========================== ====================== ================ ================== ========================= ================ ================ `microcontroller.pin` `board` ---------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -Datasheet arduino_zero circuitplayground_express feather_m0_adalogger feather_m0_basic feather_m0_express gemma_m0 metro_m0_express trinket_m0 -===================== =============== =========================== ====================== ================ ================== ========================= ================ ================ -PA00 ``ACCELEROMETER_SDA`` ``APA102_MOSI`` ``APA102_MOSI`` -PA01 ``ACCELEROMETER_SCL`` ``APA102_SCK`` ``APA102_SCK`` -PA02 ``A0`` ``A0`` / ``SPEAKER`` ``A0`` ``A0`` ``A0`` ``A0`` / ``D1`` ``A0`` ``D1`` / ``A0`` +--------------------- ------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +Datasheet arduino_mkrzero arduino_zero circuitplayground_express feather_m0_adalogger feather_m0_basic feather_m0_express gemma_m0 metro_m0_express trinket_m0 +===================== =================== =============== =========================== ====================== ================ ================== ========================= ================ ================ +PA00 ``ACCELEROMETER_SDA`` ``APA102_MOSI`` ``APA102_MOSI`` +PA01 ``ACCELEROMETER_SCL`` ``APA102_SCK`` ``APA102_SCK`` +PA02 ``A0`` ``A0`` ``A0`` / ``SPEAKER`` ``A0`` ``A0`` ``A0`` ``A0`` / ``D1`` ``A0`` ``D1`` / ``A0`` PA03 -PB08 ``A1`` ``A7`` / ``TX`` ``A1`` ``A1`` ``A1`` ``A1`` -PB09 ``A2`` ``A6`` / ``RX`` ``A2`` ``A2`` ``A2`` ``A2`` -PA04 ``A3`` ``IR_PROXIMITY`` ``A3`` ``A3`` ``A3`` ``D0`` / ``TX`` / ``SDA`` ``A3`` -PA05 ``A4`` ``A1`` ``A4`` ``A4`` ``A4`` ``D2`` / ``RX`` / ``SCL`` ``A4`` -PA06 ``D8`` ``A2`` ``D8`` / ``GREEN_LED`` ``NEOPIXEL`` ``D8`` ``D4`` / ``TX`` -PA07 ``D9`` ``A3`` ``D9`` ``D9`` ``D9`` ``D9`` ``D3`` / ``RX`` -PA08 ``D4`` ``MICROPHONE_DO`` ``D4`` / ``SD_CS`` ``D4`` ``D0`` / ``SDA`` -PA09 ``D3`` ``TEMPERATURE`` / ``A9`` ``D3`` ``D2`` / ``SCL`` -PA10 ``D1`` / ``TX`` ``MICROPHONE_SCK`` ``D1`` / ``TX`` ``D1`` / ``TX`` ``D1`` / ``TX`` ``D1`` / ``TX`` ``D13`` -PA11 ``D0`` / ``RX`` ``LIGHT`` / ``A8`` ``D0`` / ``RX`` ``D0`` / ``RX`` ``D0`` / ``RX`` ``D0`` / ``RX`` -PB10 ``MOSI`` ``MOSI`` ``MOSI`` ``MOSI`` ``MOSI`` -PB11 ``SCK`` ``SCK`` ``SCK`` ``SCK`` ``SCK`` -PA12 ``MISO`` ``REMOTEIN`` / ``IR_RX`` ``MISO`` ``MISO`` ``MISO`` ``MISO`` -PA13 ``ACCELEROMETER_INTERRUPT`` ``FLASH_CS`` -PA14 ``D2`` ``BUTTON_B`` / ``D5`` ``D2`` -PA15 ``D5`` ``SLIDE_SWITCH`` / ``D7`` ``D5`` ``D5`` ``D5`` ``D5`` -PA16 ``D11`` ``MISO`` ``D11`` ``D11`` ``D11`` ``D11`` -PA17 ``D13`` ``D13`` ``D13`` / ``RED_LED`` ``D13`` ``D13`` ``D13`` -PA18 ``D10`` ``D10`` ``D10`` ``D10`` ``D10`` -PA19 ``D12`` ``D12`` ``D12`` ``D12`` ``D12`` -PA20 ``D6`` ``MOSI`` ``D6`` ``D6`` ``D6`` ``D6`` -PA21 ``D7`` ``SCK`` ``D7`` / ``SD_CD`` ``D7`` -PA22 ``SDA`` ``SDA`` ``SDA`` ``SDA`` ``SDA`` -PA23 ``SCL`` ``REMOTEOUT`` / ``IR_TX`` ``SCL`` ``SCL`` ``SCL`` ``L`` / ``D13`` ``SCL`` +PB08 ``L`` ``A1`` ``A7`` / ``TX`` ``A1`` ``A1`` ``A1`` ``A1`` +PB09 ``BATTERY`` ``A2`` ``A6`` / ``RX`` ``A2`` ``A2`` ``A2`` ``A2`` +PA04 ``A3`` ``A3`` ``IR_PROXIMITY`` ``A3`` ``A3`` ``A3`` ``D0`` / ``TX`` / ``SDA`` ``A3`` +PA05 ``A4`` ``A4`` ``A1`` ``A4`` ``A4`` ``A4`` ``D2`` / ``RX`` / ``SCL`` ``A4`` +PA06 ``A5`` ``D8`` ``A2`` ``D8`` / ``GREEN_LED`` ``NEOPIXEL`` ``D8`` ``D4`` / ``TX`` +PA07 ``A6`` ``D9`` ``A3`` ``D9`` ``D9`` ``D9`` ``D9`` ``D3`` / ``RX`` +PA08 ``D11`` / ``SDA`` ``D4`` ``MICROPHONE_DO`` ``D4`` / ``SD_CS`` ``D4`` ``D0`` / ``SDA`` +PA09 ``D12`` / ``SCL`` ``D3`` ``TEMPERATURE`` / ``A9`` ``D3`` ``D2`` / ``SCL`` +PA10 ``D2`` ``D1`` / ``TX`` ``MICROPHONE_SCK`` ``D1`` / ``TX`` ``D1`` / ``TX`` ``D1`` / ``TX`` ``D1`` / ``TX`` ``D13`` +PA11 ``D3`` ``D0`` / ``RX`` ``LIGHT`` / ``A8`` ``D0`` / ``RX`` ``D0`` / ``RX`` ``D0`` / ``RX`` ``D0`` / ``RX`` +PB10 ``D4`` ``MOSI`` ``MOSI`` ``MOSI`` ``MOSI`` ``MOSI`` +PB11 ``D5`` ``SCK`` ``SCK`` ``SCK`` ``SCK`` ``SCK`` +PA12 ``SD_MOSI`` ``MISO`` ``REMOTEIN`` / ``IR_RX`` ``MISO`` ``MISO`` ``MISO`` ``MISO`` +PA13 ``SD_SCK`` ``ACCELEROMETER_INTERRUPT`` ``FLASH_CS`` +PA14 ``SD_CS`` ``D2`` ``BUTTON_B`` / ``D5`` ``D2`` +PA15 ``SD_MISO`` ``D5`` ``SLIDE_SWITCH`` / ``D7`` ``D5`` ``D5`` ``D5`` ``D5`` +PA16 ``D8`` / ``MOSI`` ``D11`` ``MISO`` ``D11`` ``D11`` ``D11`` ``D11`` +PA17 ``D9`` / ``SCK`` ``D13`` ``D13`` ``D13`` / ``RED_LED`` ``D13`` ``D13`` ``D13`` +PA18 ``D10`` ``D10`` ``D10`` ``D10`` ``D10`` +PA19 ``D10`` / ``MISO`` ``D12`` ``D12`` ``D12`` ``D12`` ``D12`` +PA20 ``D6`` ``D6`` ``MOSI`` ``D6`` ``D6`` ``D6`` ``D6`` +PA21 ``D7`` ``D7`` ``SCK`` ``D7`` / ``SD_CD`` ``D7`` +PA22 ``D0`` ``SDA`` ``SDA`` ``SDA`` ``SDA`` ``SDA`` +PA23 ``D1`` ``SCL`` ``REMOTEOUT`` / ``IR_TX`` ``SCL`` ``SCL`` ``SCL`` ``L`` / ``D13`` ``SCL`` PA24 PA25 -PB22 ``FLASH_CS`` -PB23 ``NEOPIXEL`` / ``D8`` -PA27 -PA28 ``BUTTON_A`` / ``D4`` +PB22 ``D14`` / ``TX`` ``FLASH_CS`` +PB23 ``D13`` / ``RX`` ``NEOPIXEL`` / ``D8`` +PA27 ``SD_CD`` +PA28 ``BUTTON_A`` / ``D4`` PA29 -PA30 ``SPEAKER_ENABLE`` ``NEOPIXEL`` +PA30 ``SPEAKER_ENABLE`` ``NEOPIXEL`` PA31 -PB02 ``A5`` ``A5`` / ``SDA`` ``A5`` ``A5`` ``A5`` ``A5`` -PB03 ``A4`` / ``SCL`` -===================== =============== =========================== ====================== ================ ================== ========================= ================ ================ +PB02 ``A1`` ``A5`` ``A5`` / ``SDA`` ``A5`` ``A5`` ``A5`` ``A5`` +PB03 ``A2`` ``A4`` / ``SCL`` +===================== =================== =============== =========================== ====================== ================ ================== ========================= ================ ================ Here is a table about which pins can do what in CircuitPython terms. However, just because something is listed, doesn't mean it will always work. Existing use diff --git a/ports/atmel-samd/boards/arduino_mkrzero/board.c b/ports/atmel-samd/boards/arduino_mkrzero/board.c new file mode 100644 index 0000000000..770bc82593 --- /dev/null +++ b/ports/atmel-samd/boards/arduino_mkrzero/board.c @@ -0,0 +1,40 @@ +/* + * This file is part of the MicroPython project, http://micropython.org/ + * + * The MIT License (MIT) + * + * Copyright (c) 2017 Scott Shawcroft for Adafruit Industries + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#include "boards/board.h" +#include "mpconfigboard.h" +#include "hal/include/hal_gpio.h" + +void board_init(void) +{ +} + +bool board_requests_safe_mode(void) { + return false; +} + +void reset_board(void) { +} diff --git a/ports/atmel-samd/boards/arduino_mkrzero/mpconfigboard.h b/ports/atmel-samd/boards/arduino_mkrzero/mpconfigboard.h new file mode 100644 index 0000000000..d98da4d149 --- /dev/null +++ b/ports/atmel-samd/boards/arduino_mkrzero/mpconfigboard.h @@ -0,0 +1,24 @@ +#define MICROPY_HW_BOARD_NAME "Arduino MKR Zero" +#define MICROPY_HW_MCU_NAME "samd21g18" + +#define MICROPY_PORT_A (0) +#define MICROPY_PORT_B (0) +#define MICROPY_PORT_C (0) + +#define CIRCUITPY_INTERNAL_NVM_SIZE 0 + +#define BOARD_FLASH_SIZE (0x00040000 - 0x2000 - 0x010000) + +#define DEFAULT_I2C_BUS_SCL (&pin_PA09) +#define DEFAULT_I2C_BUS_SDA (&pin_PA08) + +#define DEFAULT_SPI_BUS_SCK (&pin_PA17) +#define DEFAULT_SPI_BUS_MOSI (&pin_PA16) +#define DEFAULT_SPI_BUS_MISO (&pin_PA19) + +#define DEFAULT_UART_BUS_RX (&pin_PB23) +#define DEFAULT_UART_BUS_TX (&pin_PB22) + +// USB is always used internally so skip the pin objects for it. +#define IGNORE_PIN_PA24 1 +#define IGNORE_PIN_PA25 1 diff --git a/ports/atmel-samd/boards/arduino_mkrzero/mpconfigboard.mk b/ports/atmel-samd/boards/arduino_mkrzero/mpconfigboard.mk new file mode 100644 index 0000000000..3093512891 --- /dev/null +++ b/ports/atmel-samd/boards/arduino_mkrzero/mpconfigboard.mk @@ -0,0 +1,11 @@ +LD_FILE = boards/samd21x18-bootloader.ld +USB_VID = 0x239A +USB_PID = 0x8035 +USB_PRODUCT = "Arduino MKRZero" +USB_MANUFACTURER = "Arduino" + +INTERNAL_FLASH_FILESYSTEM = 1 +LONGINT_IMPL = NONE + +CHIP_VARIANT = SAMD21G18A +CHIP_FAMILY = samd21 diff --git a/ports/atmel-samd/boards/arduino_mkrzero/pins.c b/ports/atmel-samd/boards/arduino_mkrzero/pins.c new file mode 100644 index 0000000000..e06400f35c --- /dev/null +++ b/ports/atmel-samd/boards/arduino_mkrzero/pins.c @@ -0,0 +1,46 @@ +#include "shared-bindings/board/__init__.h" + +#include "board_busses.h" + +STATIC const mp_rom_map_elem_t board_global_dict_table[] = { + { MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA02) }, + { MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PB02) }, + { MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_PB03) }, + { MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_PA04) }, + { MP_ROM_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_PA05) }, + { MP_ROM_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_PA06) }, + { MP_ROM_QSTR(MP_QSTR_A6), MP_ROM_PTR(&pin_PA07) }, + { MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_PA22) }, + { MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_PA23) }, + { MP_ROM_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_PA10) }, + { MP_ROM_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_PA11) }, + { MP_ROM_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_PB10) }, + { MP_ROM_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_PB11) }, + { MP_ROM_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_PA20) }, + { MP_ROM_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_PA21) }, + { MP_ROM_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_PA16) }, + { MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_PA16) }, + { MP_ROM_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_PA17) }, + { MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_PA17) }, + { MP_ROM_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_PA19) }, + { MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_PA19) }, + { MP_ROM_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_PA08) }, + { MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PA08) }, + { MP_ROM_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_PA09) }, + { MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_PA09) }, + { MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_PB23) }, + { MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PB23) }, + { MP_ROM_QSTR(MP_QSTR_D14), MP_ROM_PTR(&pin_PB22) }, + { MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PB22) }, + { MP_ROM_QSTR(MP_QSTR_SD_SCK), MP_ROM_PTR(&pin_PA13) }, + { MP_ROM_QSTR(MP_QSTR_SD_MOSI), MP_ROM_PTR(&pin_PA12) }, + { MP_ROM_QSTR(MP_QSTR_SD_MISO), MP_ROM_PTR(&pin_PA15) }, + { MP_ROM_QSTR(MP_QSTR_SD_CS), MP_ROM_PTR(&pin_PA14) }, + { MP_ROM_QSTR(MP_QSTR_L), MP_ROM_PTR(&pin_PB08) }, + { MP_ROM_QSTR(MP_QSTR_VOLTAGE_MONITOR), MP_ROM_PTR(&pin_PB09) }, + { MP_ROM_QSTR(MP_QSTR_BATTERY), MP_ROM_PTR(&pin_PB09) }, + { MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) }, + { MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) }, + { MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) }, +}; +MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table); From 7ad2e6ace34a6d417ec1b84472fa409d5451137b Mon Sep 17 00:00:00 2001 From: Scott Shawcroft Date: Mon, 22 Oct 2018 17:57:28 -0700 Subject: [PATCH 04/33] Add stack validity check and raise an error when it happens. The backtrace cannot be given because it relies on the validity of the qstr data structures on the heap which may have been corrupted. In fact, it still can crash hard when the bytecode itself is overwritten. To fix, we'd need a way to skip gathering the backtrace completely. This also increases the default stack size on M4s so it can accomodate the stack needed by ASF4s nvm API. --- main.c | 4 ++-- ports/atmel-samd/background.c | 11 +++++++++++ ports/atmel-samd/background.h | 1 + ports/atmel-samd/common-hal/nvm/ByteArray.c | 3 +++ ports/atmel-samd/mpconfigport.h | 11 ++++++----- ports/atmel-samd/supervisor/port.c | 15 ++++++++++++++- py/obj.c | 4 +++- supervisor/shared/stack.c | 17 +++++++++++++++++ supervisor/shared/stack.h | 5 +++++ 9 files changed, 62 insertions(+), 9 deletions(-) diff --git a/main.c b/main.c index 974f045fa2..00babd20cf 100755 --- a/main.c +++ b/main.c @@ -220,8 +220,8 @@ bool run_code_py(safe_mode_t safe_mode) { rgb_status_animation_t animation; prep_rgb_status_animation(&result, found_main, safe_mode, &animation); while (true) { - #ifdef MICROPY_VM_HOOK_LOOP - MICROPY_VM_HOOK_LOOP + #ifdef CIRCUITPY_SUPERVISOR_BACKGROUND + CIRCUITPY_SUPERVISOR_BACKGROUND #endif if (reload_requested) { return true; diff --git a/ports/atmel-samd/background.c b/ports/atmel-samd/background.c index 099cb8b23e..94763bc439 100644 --- a/ports/atmel-samd/background.c +++ b/ports/atmel-samd/background.c @@ -29,11 +29,15 @@ #include "tick.h" #include "supervisor/usb.h" +#include "py/runtime.h" #include "shared-module/displayio/__init__.h" #include "shared-module/network/__init__.h" +#include "supervisor/shared/stack.h" volatile uint64_t last_finished_tick = 0; +bool stack_ok_so_far = true; + void run_background_tasks(void) { #if (defined(SAMD21) && defined(PIN_PA02)) || defined(SAMD51) audio_dma_background(); @@ -41,6 +45,7 @@ void run_background_tasks(void) { #ifdef CIRCUITPY_DISPLAYIO displayio_refresh_display(); #endif + #if MICROPY_PY_NETWORK network_module_background(); #endif @@ -49,6 +54,12 @@ void run_background_tasks(void) { last_finished_tick = ticks_ms; } +void run_background_vm_tasks(void) { + assert_heap_ok(); + run_background_tasks(); + assert_heap_ok(); +} + bool background_tasks_ok(void) { return ticks_ms - last_finished_tick < 1000; } diff --git a/ports/atmel-samd/background.h b/ports/atmel-samd/background.h index e841049a4e..8d1316e731 100644 --- a/ports/atmel-samd/background.h +++ b/ports/atmel-samd/background.h @@ -30,6 +30,7 @@ #include void run_background_tasks(void); +void run_background_vm_tasks(void); bool background_tasks_ok(void); #endif // MICROPY_INCLUDED_ATMEL_SAMD_BACKGROUND_H diff --git a/ports/atmel-samd/common-hal/nvm/ByteArray.c b/ports/atmel-samd/common-hal/nvm/ByteArray.c index ab9cd7d804..12a127f53a 100644 --- a/ports/atmel-samd/common-hal/nvm/ByteArray.c +++ b/ports/atmel-samd/common-hal/nvm/ByteArray.c @@ -28,6 +28,8 @@ #include "hal_flash.h" +#include "supervisor/shared/stack.h" + #include #include @@ -42,6 +44,7 @@ bool common_hal_nvm_bytearray_set_bytes(nvm_bytearray_obj_t *self, struct flash_descriptor desc; desc.dev.hw = NVMCTRL; flash_write(&desc, (uint32_t) self->start_address + start_index, values, len); + assert_heap_ok(); return true; } diff --git a/ports/atmel-samd/mpconfigport.h b/ports/atmel-samd/mpconfigport.h index 8df56ec4ee..4fc32157c8 100644 --- a/ports/atmel-samd/mpconfigport.h +++ b/ports/atmel-samd/mpconfigport.h @@ -182,7 +182,7 @@ typedef long mp_off_t; #define MICROPY_PY_SYS_PLATFORM "MicroChip SAMD51" #define PORT_HEAP_SIZE (0x20000) // 128KiB #define SPI_FLASH_MAX_BAUDRATE 24000000 -#define CIRCUITPY_DEFAULT_STACK_SIZE 8192 +#define CIRCUITPY_DEFAULT_STACK_SIZE 0x6000 #define MICROPY_CPYTHON_COMPAT (1) #define MICROPY_MODULE_WEAK_LINKS (1) #define MICROPY_PY_BUILTINS_NOTIMPLEMENTED (1) @@ -432,10 +432,6 @@ extern const struct _mp_obj_module_t wiznet_module; #define MP_STATE_PORT MP_STATE_VM -void run_background_tasks(void); -#define MICROPY_VM_HOOK_LOOP run_background_tasks(); -#define MICROPY_VM_HOOK_RETURN run_background_tasks(); - #include "peripherals/samd/dma.h" #include "supervisor/flash_root_pointers.h" @@ -454,6 +450,11 @@ void run_background_tasks(void); mp_obj_t gamepad_singleton; \ NETWORK_ROOT_POINTERS \ +void run_background_tasks(void); +void run_background_vm_tasks(void); +#define MICROPY_VM_HOOK_LOOP run_background_vm_tasks(); +#define MICROPY_VM_HOOK_RETURN run_background_vm_tasks(); +#define CIRCUITPY_SUPERVISOR_BACKGROUND run_background_tasks(); #define CIRCUITPY_AUTORELOAD_DELAY_MS 500 #define CIRCUITPY_BOOT_OUTPUT_FILE "/boot_out.txt" diff --git a/ports/atmel-samd/supervisor/port.c b/ports/atmel-samd/supervisor/port.c index 9f951b0355..7b51400ef8 100644 --- a/ports/atmel-samd/supervisor/port.c +++ b/ports/atmel-samd/supervisor/port.c @@ -80,7 +80,7 @@ extern volatile bool mp_msc_enabled; #define TRACE_BUFFER_SIZE (1 << (TRACE_BUFFER_MAGNITUDE_PACKETS + 1)) // Size in bytes. 4 bytes per uint32_t. #define TRACE_BUFFER_SIZE_BYTES (TRACE_BUFFER_SIZE << 2) -__attribute__((__aligned__(TRACE_BUFFER_SIZE_BYTES))) uint32_t mtb[TRACE_BUFFER_SIZE]; +__attribute__((__aligned__(TRACE_BUFFER_SIZE_BYTES))) uint32_t mtb[TRACE_BUFFER_SIZE] = {0}; #endif safe_mode_t port_init(void) { @@ -285,6 +285,19 @@ void reset_to_bootloader(void) { */ __attribute__((used)) void HardFault_Handler(void) { +#ifdef ENABLE_MICRO_TRACE_BUFFER + // Turn off the micro trace buffer so we don't fill it up in the infinite + // loop below. + REG_MTB_MASTER = 0x00000000 + 6; +#endif +#ifdef CIRCUITPY_CANARY_WORD + // If the canary is intact, then kill it and reset so we have a chance to + // read our files. + if (_ezero == CIRCUITPY_CANARY_WORD) { + _ezero = CIRCUITPY_SAFE_RESTART_WORD; + NVIC_SystemReset(); + } +#endif while (true) { asm(""); } diff --git a/py/obj.c b/py/obj.c index 35a7519bb1..c20b549a39 100644 --- a/py/obj.c +++ b/py/obj.c @@ -33,10 +33,12 @@ #include "py/objtype.h" #include "py/objint.h" #include "py/objstr.h" +#include "py/qstr.h" #include "py/runtime.h" #include "py/stackctrl.h" #include "py/stream.h" // for mp_obj_print +#include "supervisor/shared/stack.h" #include "supervisor/shared/translate.h" mp_obj_type_t *mp_obj_get_type(mp_const_obj_t o_in) { @@ -81,7 +83,7 @@ void mp_obj_print(mp_obj_t o_in, mp_print_kind_t kind) { // helper function to print an exception with traceback void mp_obj_print_exception(const mp_print_t *print, mp_obj_t exc) { - if (mp_obj_is_exception_instance(exc)) { + if (mp_obj_is_exception_instance(exc) && stack_ok()) { size_t n, *values; mp_obj_exception_get_traceback(exc, &n, &values); if (n > 0) { diff --git a/supervisor/shared/stack.c b/supervisor/shared/stack.c index 6b74742eb1..8f4da4ce6e 100755 --- a/supervisor/shared/stack.c +++ b/supervisor/shared/stack.c @@ -27,6 +27,7 @@ #include "stack.h" #include "py/mpconfig.h" +#include "py/runtime.h" #include "supervisor/cpu.h" extern uint32_t _estack; @@ -37,6 +38,8 @@ supervisor_allocation* stack_alloc = NULL; #define EXCEPTION_STACK_SIZE 1024 +#define STACK_CANARY_VALUE 0x017829ef + void allocate_stack(void) { mp_uint_t regs[10]; mp_uint_t sp = cpu_get_regs_and_sp(regs); @@ -50,6 +53,19 @@ void allocate_stack(void) { } else { current_stack_size = next_stack_size; } + *stack_alloc->ptr = STACK_CANARY_VALUE; +} + +inline bool stack_ok(void) { + return *stack_alloc->ptr == STACK_CANARY_VALUE; +} + +inline void assert_heap_ok(void) { + if (!stack_ok()) { + asm("nop"); + while(true) {} + mp_raise_RuntimeError(translate("Stack clobbered heap.")); + } } void stack_init(void) { @@ -58,6 +74,7 @@ void stack_init(void) { void stack_resize(void) { if (next_stack_size == current_stack_size) { + *stack_alloc->ptr = STACK_CANARY_VALUE; return; } free_memory(stack_alloc); diff --git a/supervisor/shared/stack.h b/supervisor/shared/stack.h index 3a5c18e7db..8f1e881f2c 100755 --- a/supervisor/shared/stack.h +++ b/supervisor/shared/stack.h @@ -37,5 +37,10 @@ void stack_init(void); void stack_resize(void); void set_next_stack_size(uint32_t size); uint32_t get_current_stack_size(void); +bool stack_ok(void); + +// Use this after any calls into a library which may use a lot of stack. This will raise a Python +// exception when the stack has likely overwritten a portio of the heap. +void assert_heap_ok(void); #endif // MICROPY_INCLUDED_SUPERVISOR_STACK_H From 6ef863997186e1893cdf19c0e04d0a8a3f33ad9d Mon Sep 17 00:00:00 2001 From: Scott Shawcroft Date: Thu, 6 Dec 2018 14:24:20 -0800 Subject: [PATCH 05/33] Rework safe mode and have heap overwrite trigger it. This creates a common safe mode mechanic that ports can share. As a result, the nRF52 now has safe mode support as well. The common safe mode adds a 700ms delay at startup where a reset during that window will cause a reset into safe mode. This window is designated by a yellow status pixel and flashing the single led three times. A couple NeoPixel fixes are included for the nRF52 as well. Fixes #1034. Fixes #990. Fixes #615. --- main.c | 59 +++----- .../boards/arduino_mkr1300/mpconfigboard.h | 2 + .../boards/arduino_zero/mpconfigboard.h | 3 +- .../circuitplayground_express/mpconfigboard.h | 2 + .../mpconfigboard.h | 2 + .../feather_m0_adalogger/mpconfigboard.h | 3 +- .../boards/feather_m0_basic/mpconfigboard.h | 2 +- .../boards/feather_m0_express/mpconfigboard.h | 2 + .../mpconfigboard.h | 2 + .../boards/feather_m0_rfm69/mpconfigboard.h | 2 +- .../boards/feather_m0_rfm9x/mpconfigboard.h | 2 +- .../feather_m0_supersized/mpconfigboard.h | 2 + .../boards/feather_m4_express/mpconfigboard.h | 1 + .../feather_radiofruit_zigbee/mpconfigboard.h | 1 + .../boards/gemma_m0/mpconfigboard.h | 2 + .../grandcentral_m4_express/mpconfigboard.h | 2 + .../hallowing_m0_express/mpconfigboard.h | 1 + .../itsybitsy_m0_express/mpconfigboard.h | 2 + .../itsybitsy_m4_express/mpconfigboard.h | 2 + .../boards/meowmeow/mpconfigboard.h | 2 + .../boards/metro_m0_express/mpconfigboard.h | 1 + .../boards/metro_m4_express/mpconfigboard.h | 2 + .../boards/mini_sam_m4/mpconfigboard.h | 2 + .../boards/trinket_m0/mpconfigboard.h | 2 + .../trinket_m0_haxpress/mpconfigboard.h | 1 + ports/atmel-samd/supervisor/port.c | 68 +++------- .../boards/feather_nrf52832/mpconfigboard.h | 2 + .../feather_nrf52840_express/mpconfigboard.h | 2 + .../nrf/boards/particle_argon/mpconfigboard.h | 2 + .../nrf/boards/particle_boron/mpconfigboard.h | 2 + .../nrf/boards/particle_xenon/mpconfigboard.h | 2 + ports/nrf/boards/pca10040/mpconfigboard.h | 2 + ports/nrf/boards/pca10040/pins.c | 4 + ports/nrf/boards/pca10056/mpconfigboard.h | 2 + ports/nrf/boards/pca10059/mpconfigboard.h | 2 + .../nrf/common-hal/neopixel_write/__init__.c | 23 +++- ports/nrf/peripherals/nrf/clocks.c | 3 + ports/nrf/supervisor/port.c | 49 ++++--- py/obj.c | 2 + supervisor/port.h | 18 ++- supervisor/shared/rgb_led_status.h | 2 + supervisor/shared/safe_mode.c | 126 ++++++++++++++++++ supervisor/shared/safe_mode.h | 47 +++++++ supervisor/shared/stack.c | 7 +- supervisor/shared/stack.h | 4 +- supervisor/shared/translate.c | 8 ++ supervisor/shared/translate.h | 2 +- supervisor/supervisor.mk | 1 + 48 files changed, 351 insertions(+), 133 deletions(-) create mode 100644 supervisor/shared/safe_mode.c create mode 100644 supervisor/shared/safe_mode.h diff --git a/main.c b/main.c index 00babd20cf..aac2c5566c 100755 --- a/main.c +++ b/main.c @@ -51,6 +51,7 @@ #include "supervisor/shared/autoreload.h" #include "supervisor/shared/translate.h" #include "supervisor/shared/rgb_led_status.h" +#include "supervisor/shared/safe_mode.h" #include "supervisor/shared/status_leds.h" #include "supervisor/shared/stack.h" #include "supervisor/serial.h" @@ -140,12 +141,6 @@ const char* first_existing_file_in_list(const char ** filenames) { return NULL; } -void write_compressed(const compressed_string_t* compressed) { - char decompressed[compressed->length]; - decompress(compressed, decompressed); - serial_write(decompressed); -} - bool maybe_run_list(const char ** filenames, pyexec_result_t* exec_result) { const char* filename = first_existing_file_in_list(filenames); if (filename == NULL) { @@ -166,11 +161,11 @@ bool run_code_py(safe_mode_t safe_mode) { if (serial_connected_at_start) { serial_write("\n"); if (autoreload_is_enabled()) { - write_compressed(translate("Auto-reload is on. Simply save files over USB to run them or enter REPL to disable.\n")); + serial_write_compressed(translate("Auto-reload is on. Simply save files over USB to run them or enter REPL to disable.\n")); } else if (safe_mode != NO_SAFE_MODE) { - write_compressed(translate("Running in safe mode! Auto-reload is off.\n")); + serial_write_compressed(translate("Running in safe mode! Auto-reload is off.\n")); } else if (!autoreload_is_enabled()) { - write_compressed(translate("Auto-reload is off.\n")); + serial_write_compressed(translate("Auto-reload is off.\n")); } } #endif @@ -184,7 +179,7 @@ bool run_code_py(safe_mode_t safe_mode) { bool found_main = false; if (safe_mode != NO_SAFE_MODE) { - write_compressed(translate("Running in safe mode! Not running saved code.\n")); + serial_write_compressed(translate("Running in safe mode! Not running saved code.\n")); } else { new_status_color(MAIN_RUNNING); @@ -200,7 +195,7 @@ bool run_code_py(safe_mode_t safe_mode) { if (!found_main){ found_main = maybe_run_list(double_extension_filenames, &result); if (found_main) { - write_compressed(translate("WARNING: Your code filename has two extensions\n")); + serial_write_compressed(translate("WARNING: Your code filename has two extensions\n")); } } stop_mp(); @@ -239,37 +234,14 @@ bool run_code_py(safe_mode_t safe_mode) { if (!serial_connected_at_start) { if (autoreload_is_enabled()) { - write_compressed(translate("Auto-reload is on. Simply save files over USB to run them or enter REPL to disable.\n")); + serial_write_compressed(translate("Auto-reload is on. Simply save files over USB to run them or enter REPL to disable.\n")); } else { - write_compressed(translate("Auto-reload is off.\n")); - } - } - // Output a user safe mode string if its set. - #ifdef BOARD_USER_SAFE_MODE - if (safe_mode == USER_SAFE_MODE) { - serial_write("\n"); - write_compressed(translate("You requested starting safe mode by ")); - serial_write(BOARD_USER_SAFE_MODE_ACTION); - serial_write("\n"); - write_compressed(translate("To exit, please reset the board without ")); - serial_write(BOARD_USER_SAFE_MODE_ACTION); - serial_write("\n"); - } else - #endif - if (safe_mode != NO_SAFE_MODE) { - serial_write("\n"); - write_compressed(translate("You are running in safe mode which means something really bad happened.\n")); - if (safe_mode == HARD_CRASH) { - write_compressed(translate("Looks like our core CircuitPython code crashed hard. Whoops!\n")); - write_compressed(translate("Please file an issue here with the contents of your CIRCUITPY drive:\n")); - serial_write("https://github.com/adafruit/circuitpython/issues\n"); - } else if (safe_mode == BROWNOUT) { - write_compressed(translate("The microcontroller's power dipped. Please make sure your power supply provides\n")); - write_compressed(translate("enough power for the whole circuit and press reset (after ejecting CIRCUITPY).\n")); + serial_write_compressed(translate("Auto-reload is off.\n")); } } + print_safe_mode_message(safe_mode); serial_write("\n"); - write_compressed(translate("Press any key to enter the REPL. Use CTRL-D to reload.")); + serial_write_compressed(translate("Press any key to enter the REPL. Use CTRL-D to reload.")); } if (serial_connected_before_animation && !serial_connected()) { serial_connected_at_start = false; @@ -394,6 +366,11 @@ int __attribute__((used)) main(void) { init_status_leds(); rgb_led_status_init(); + // Wait briefly to give a reset window where we'll enter safe mode after the reset. + if (safe_mode == NO_SAFE_MODE) { + safe_mode = wait_for_safe_mode_reset(); + } + stack_init(); // Create a new filesystem only if we're not in a safe mode. @@ -427,7 +404,7 @@ int __attribute__((used)) main(void) { } if (exit_code == PYEXEC_FORCED_EXIT) { if (!first_run) { - write_compressed(translate("soft reboot\n")); + serial_write_compressed(translate("soft reboot\n")); } first_run = false; skip_repl = run_code_py(safe_mode); @@ -455,12 +432,12 @@ void gc_collect(void) { } void NORETURN nlr_jump_fail(void *val) { - HardFault_Handler(); + reset_into_safe_mode(MICROPY_NLR_JUMP_FAIL); while (true) {} } void NORETURN __fatal_error(const char *msg) { - HardFault_Handler(); + reset_into_safe_mode(MICROPY_FATAL_ERROR); while (true) {} } diff --git a/ports/atmel-samd/boards/arduino_mkr1300/mpconfigboard.h b/ports/atmel-samd/boards/arduino_mkr1300/mpconfigboard.h index 1e8d926fd4..1deda871a8 100644 --- a/ports/atmel-samd/boards/arduino_mkr1300/mpconfigboard.h +++ b/ports/atmel-samd/boards/arduino_mkr1300/mpconfigboard.h @@ -5,6 +5,8 @@ #define MICROPY_PORT_B (0) #define MICROPY_PORT_C (0) +#define MICROPY_HW_LED_STATUS (&pin_PB23) + #define CIRCUITPY_INTERNAL_NVM_SIZE 0 #define BOARD_FLASH_SIZE (0x00040000 - 0x2000 - 0x010000) diff --git a/ports/atmel-samd/boards/arduino_zero/mpconfigboard.h b/ports/atmel-samd/boards/arduino_zero/mpconfigboard.h index 9a6256c68f..7ab09d4477 100644 --- a/ports/atmel-samd/boards/arduino_zero/mpconfigboard.h +++ b/ports/atmel-samd/boards/arduino_zero/mpconfigboard.h @@ -1,7 +1,8 @@ #define MICROPY_HW_BOARD_NAME "Arduino Zero" #define MICROPY_HW_MCU_NAME "samd21g18" -// #define MICROPY_HW_LED_MSC &pin_PA17 // red +#define MICROPY_HW_LED_STATUS (&pin_PA17) + #define MICROPY_HW_LED_TX &pin_PA27 #define MICROPY_HW_LED_RX &pin_PB03 diff --git a/ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h b/ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h index 2ad13e81c0..e6a7e06769 100644 --- a/ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h +++ b/ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h @@ -1,6 +1,8 @@ #define MICROPY_HW_BOARD_NAME "Adafruit CircuitPlayground Express" #define MICROPY_HW_MCU_NAME "samd21g18" +#define MICROPY_HW_LED_STATUS (&pin_PA17) + // Don't allow touch on A0 (PA02), because it's connected to the speaker. #define PA02_NO_TOUCH (true) diff --git a/ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.h b/ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.h index 250300858d..e66d9c40e8 100644 --- a/ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.h +++ b/ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.h @@ -1,6 +1,8 @@ #define MICROPY_HW_BOARD_NAME "Adafruit CircuitPlayground Express with Crickit libraries" #define MICROPY_HW_MCU_NAME "samd21g18" +#define MICROPY_HW_LED_STATUS (&pin_PA17) + // No framebuf on CRICKit version to save space. #define MICROPY_PY_FRAMEBUF (0) diff --git a/ports/atmel-samd/boards/feather_m0_adalogger/mpconfigboard.h b/ports/atmel-samd/boards/feather_m0_adalogger/mpconfigboard.h index c28c4aafbf..787a3ee55a 100644 --- a/ports/atmel-samd/boards/feather_m0_adalogger/mpconfigboard.h +++ b/ports/atmel-samd/boards/feather_m0_adalogger/mpconfigboard.h @@ -1,5 +1,6 @@ // LEDs -//#define MICROPY_HW_LED_MSC PIN_PA17 // red +#define MICROPY_HW_LED_STATUS (&pin_PA17) + #define MICROPY_HW_BOARD_NAME "Adafruit Feather M0 Adalogger" #define MICROPY_HW_MCU_NAME "samd21g18" diff --git a/ports/atmel-samd/boards/feather_m0_basic/mpconfigboard.h b/ports/atmel-samd/boards/feather_m0_basic/mpconfigboard.h index d66efb36f8..2a21b8f02b 100644 --- a/ports/atmel-samd/boards/feather_m0_basic/mpconfigboard.h +++ b/ports/atmel-samd/boards/feather_m0_basic/mpconfigboard.h @@ -1,5 +1,5 @@ // LEDs -//#define MICROPY_HW_LED_MSC PIN_PA17 // red +#define MICROPY_HW_LED_STATUS (&pin_PA17) #define MICROPY_HW_BOARD_NAME "Adafruit Feather M0 Basic" #define MICROPY_HW_MCU_NAME "samd21g18" diff --git a/ports/atmel-samd/boards/feather_m0_express/mpconfigboard.h b/ports/atmel-samd/boards/feather_m0_express/mpconfigboard.h index 1f02ee9953..7c10a92ecf 100644 --- a/ports/atmel-samd/boards/feather_m0_express/mpconfigboard.h +++ b/ports/atmel-samd/boards/feather_m0_express/mpconfigboard.h @@ -1,6 +1,8 @@ #define MICROPY_HW_BOARD_NAME "Adafruit Feather M0 Express" #define MICROPY_HW_MCU_NAME "samd21g18" +#define MICROPY_HW_LED_STATUS (&pin_PA17) + #define MICROPY_HW_NEOPIXEL (&pin_PA06) #define SPI_FLASH_MOSI_PIN &pin_PA08 diff --git a/ports/atmel-samd/boards/feather_m0_express_crickit/mpconfigboard.h b/ports/atmel-samd/boards/feather_m0_express_crickit/mpconfigboard.h index b5544e2539..abbf0b08c9 100644 --- a/ports/atmel-samd/boards/feather_m0_express_crickit/mpconfigboard.h +++ b/ports/atmel-samd/boards/feather_m0_express_crickit/mpconfigboard.h @@ -1,6 +1,8 @@ #define MICROPY_HW_BOARD_NAME "Adafruit Feather M0 Express with Crickit libraries" #define MICROPY_HW_MCU_NAME "samd21g18" +#define MICROPY_HW_LED_STATUS (&pin_PA17) + #define MICROPY_HW_NEOPIXEL (&pin_PA06) #define SPI_FLASH_MOSI_PIN &pin_PA08 diff --git a/ports/atmel-samd/boards/feather_m0_rfm69/mpconfigboard.h b/ports/atmel-samd/boards/feather_m0_rfm69/mpconfigboard.h index c385a97eab..a0f79ed72a 100644 --- a/ports/atmel-samd/boards/feather_m0_rfm69/mpconfigboard.h +++ b/ports/atmel-samd/boards/feather_m0_rfm69/mpconfigboard.h @@ -1,5 +1,5 @@ // LEDs -//#define MICROPY_HW_LED_MSC PIN_PA17 // red +#define MICROPY_HW_LED_STATUS (&pin_PA17) #define MICROPY_HW_BOARD_NAME "Adafruit Feather M0 RFM69" #define MICROPY_HW_MCU_NAME "samd21g18" diff --git a/ports/atmel-samd/boards/feather_m0_rfm9x/mpconfigboard.h b/ports/atmel-samd/boards/feather_m0_rfm9x/mpconfigboard.h index 1e3a0bda0c..85c24bfd04 100644 --- a/ports/atmel-samd/boards/feather_m0_rfm9x/mpconfigboard.h +++ b/ports/atmel-samd/boards/feather_m0_rfm9x/mpconfigboard.h @@ -1,5 +1,5 @@ // LEDs -//#define MICROPY_HW_LED_MSC PIN_PA17 // red +#define MICROPY_HW_LED_STATUS (&pin_PA17) #define MICROPY_HW_BOARD_NAME "Adafruit Feather M0 RFM9x" #define MICROPY_HW_MCU_NAME "samd21g18" diff --git a/ports/atmel-samd/boards/feather_m0_supersized/mpconfigboard.h b/ports/atmel-samd/boards/feather_m0_supersized/mpconfigboard.h index 6bf1df1566..5ad265bf14 100644 --- a/ports/atmel-samd/boards/feather_m0_supersized/mpconfigboard.h +++ b/ports/atmel-samd/boards/feather_m0_supersized/mpconfigboard.h @@ -3,6 +3,8 @@ #define MICROPY_HW_BOARD_NAME "Hacked Feather M0 Express with 8Mbyte SPI flash" #define MICROPY_HW_MCU_NAME "samd21g18" +#define MICROPY_HW_LED_STATUS (&pin_PA17) + #define MICROPY_HW_NEOPIXEL (&pin_PA06) #define SPI_FLASH_MOSI_PIN &pin_PA08 diff --git a/ports/atmel-samd/boards/feather_m4_express/mpconfigboard.h b/ports/atmel-samd/boards/feather_m4_express/mpconfigboard.h index 98906a8446..ed1dfe763a 100644 --- a/ports/atmel-samd/boards/feather_m4_express/mpconfigboard.h +++ b/ports/atmel-samd/boards/feather_m4_express/mpconfigboard.h @@ -5,6 +5,7 @@ // Rev E +#define MICROPY_HW_LED_STATUS (&pin_PA23) #define MICROPY_HW_NEOPIXEL (&pin_PB03) // These are pins not to reset. diff --git a/ports/atmel-samd/boards/feather_radiofruit_zigbee/mpconfigboard.h b/ports/atmel-samd/boards/feather_radiofruit_zigbee/mpconfigboard.h index c4e0251784..7df31f3a93 100755 --- a/ports/atmel-samd/boards/feather_radiofruit_zigbee/mpconfigboard.h +++ b/ports/atmel-samd/boards/feather_radiofruit_zigbee/mpconfigboard.h @@ -1,6 +1,7 @@ #define MICROPY_HW_BOARD_NAME "Adafruit Feather RadioFruit Zigbee" #define MICROPY_HW_MCU_NAME "samr21g18" +#define MICROPY_HW_LED_STATUS (&pin_PA27) #define MICROPY_HW_NEOPIXEL (&pin_PA22) #define SPI_FLASH_MOSI_PIN &pin_PA31 diff --git a/ports/atmel-samd/boards/gemma_m0/mpconfigboard.h b/ports/atmel-samd/boards/gemma_m0/mpconfigboard.h index 08d1803f2b..59e0b3c619 100644 --- a/ports/atmel-samd/boards/gemma_m0/mpconfigboard.h +++ b/ports/atmel-samd/boards/gemma_m0/mpconfigboard.h @@ -1,6 +1,8 @@ #define MICROPY_HW_BOARD_NAME "Adafruit Gemma M0" #define MICROPY_HW_MCU_NAME "samd21e18" +#define MICROPY_HW_LED_STATUS (&pin_PA23) + #define MICROPY_HW_APA102_MOSI (&pin_PA00) #define MICROPY_HW_APA102_SCK (&pin_PA01) diff --git a/ports/atmel-samd/boards/grandcentral_m4_express/mpconfigboard.h b/ports/atmel-samd/boards/grandcentral_m4_express/mpconfigboard.h index 57078eaea9..e1bef00194 100644 --- a/ports/atmel-samd/boards/grandcentral_m4_express/mpconfigboard.h +++ b/ports/atmel-samd/boards/grandcentral_m4_express/mpconfigboard.h @@ -5,6 +5,8 @@ // This is for Rev B which is green and has the SD card slot at the edge of the board. +#define MICROPY_HW_LED_STATUS (&pin_PB01) + #define MICROPY_HW_LED_TX &(pin_PC30) #define MICROPY_HW_LED_RX &(pin_PC31) diff --git a/ports/atmel-samd/boards/hallowing_m0_express/mpconfigboard.h b/ports/atmel-samd/boards/hallowing_m0_express/mpconfigboard.h index 5869c01ffe..1a570092be 100644 --- a/ports/atmel-samd/boards/hallowing_m0_express/mpconfigboard.h +++ b/ports/atmel-samd/boards/hallowing_m0_express/mpconfigboard.h @@ -1,6 +1,7 @@ #define MICROPY_HW_BOARD_NAME "HalloWing M0 Express" #define MICROPY_HW_MCU_NAME "samd21g18" +#define MICROPY_HW_LED_STATUS (&pin_PA23) #define MICROPY_HW_NEOPIXEL (&pin_PA12) #define SPI_FLASH_MOSI_PIN &pin_PB10 diff --git a/ports/atmel-samd/boards/itsybitsy_m0_express/mpconfigboard.h b/ports/atmel-samd/boards/itsybitsy_m0_express/mpconfigboard.h index 4de28d3882..530e7e4c36 100644 --- a/ports/atmel-samd/boards/itsybitsy_m0_express/mpconfigboard.h +++ b/ports/atmel-samd/boards/itsybitsy_m0_express/mpconfigboard.h @@ -1,6 +1,8 @@ #define MICROPY_HW_BOARD_NAME "Adafruit ItsyBitsy M0 Express" #define MICROPY_HW_MCU_NAME "samd21g18" +#define MICROPY_HW_LED_STATUS (&pin_PA17) + #define CIRCUITPY_BITBANG_APA102 #define MICROPY_HW_APA102_MOSI (&pin_PA01) #define MICROPY_HW_APA102_SCK (&pin_PA00) diff --git a/ports/atmel-samd/boards/itsybitsy_m4_express/mpconfigboard.h b/ports/atmel-samd/boards/itsybitsy_m4_express/mpconfigboard.h index 5bbfec9ce0..f4d17ac648 100644 --- a/ports/atmel-samd/boards/itsybitsy_m4_express/mpconfigboard.h +++ b/ports/atmel-samd/boards/itsybitsy_m4_express/mpconfigboard.h @@ -4,6 +4,8 @@ #define CIRCUITPY_MCU_FAMILY samd51 // This is for Rev B +#define MICROPY_HW_LED_STATUS (&pin_PA22) + #define MICROPY_HW_APA102_MOSI (&pin_PB03) #define MICROPY_HW_APA102_SCK (&pin_PB02) diff --git a/ports/atmel-samd/boards/meowmeow/mpconfigboard.h b/ports/atmel-samd/boards/meowmeow/mpconfigboard.h index f07eb9cce3..fe741a0f71 100644 --- a/ports/atmel-samd/boards/meowmeow/mpconfigboard.h +++ b/ports/atmel-samd/boards/meowmeow/mpconfigboard.h @@ -1,6 +1,8 @@ #define MICROPY_HW_BOARD_NAME "Meow Meow" #define MICROPY_HW_MCU_NAME "samd21g18" +#define MICROPY_HW_LED_STATUS (&pin_PB23) + // These are pins not to reset. #define MICROPY_PORT_A (0) #define MICROPY_PORT_B (0) diff --git a/ports/atmel-samd/boards/metro_m0_express/mpconfigboard.h b/ports/atmel-samd/boards/metro_m0_express/mpconfigboard.h index f08d129dc8..4835ee7d2f 100644 --- a/ports/atmel-samd/boards/metro_m0_express/mpconfigboard.h +++ b/ports/atmel-samd/boards/metro_m0_express/mpconfigboard.h @@ -1,6 +1,7 @@ #define MICROPY_HW_BOARD_NAME "Adafruit Metro M0 Express" #define MICROPY_HW_MCU_NAME "samd21g18" +#define MICROPY_HW_LED_STATUS (&pin_PA17) #define MICROPY_HW_LED_TX &pin_PA27 // Comment this out if you have trouble connecting over SWD. It's one of the SWD pins. #define MICROPY_HW_LED_RX &pin_PA31 diff --git a/ports/atmel-samd/boards/metro_m4_express/mpconfigboard.h b/ports/atmel-samd/boards/metro_m4_express/mpconfigboard.h index 06feb1a226..073468899d 100644 --- a/ports/atmel-samd/boards/metro_m4_express/mpconfigboard.h +++ b/ports/atmel-samd/boards/metro_m4_express/mpconfigboard.h @@ -8,6 +8,8 @@ #define MICROPY_HW_LED_TX (&pin_PA27) #define MICROPY_HW_LED_RX (&pin_PB06) +#define MICROPY_HW_LED_STATUS (&pin_PA16) + #define MICROPY_HW_NEOPIXEL (&pin_PB22) // These are pins not to reset. diff --git a/ports/atmel-samd/boards/mini_sam_m4/mpconfigboard.h b/ports/atmel-samd/boards/mini_sam_m4/mpconfigboard.h index 338e8b7c9e..cd754924e6 100644 --- a/ports/atmel-samd/boards/mini_sam_m4/mpconfigboard.h +++ b/ports/atmel-samd/boards/mini_sam_m4/mpconfigboard.h @@ -3,6 +3,8 @@ #define CIRCUITPY_MCU_FAMILY samd51 +#define MICROPY_HW_LED_STATUS (&pin_PA15) + // RGB Status LED Pins #define MICROPY_HW_APA102_MOSI (&pin_PB03) #define MICROPY_HW_APA102_SCK (&pin_PB02) diff --git a/ports/atmel-samd/boards/trinket_m0/mpconfigboard.h b/ports/atmel-samd/boards/trinket_m0/mpconfigboard.h index c311f540c3..cef35983ee 100644 --- a/ports/atmel-samd/boards/trinket_m0/mpconfigboard.h +++ b/ports/atmel-samd/boards/trinket_m0/mpconfigboard.h @@ -2,6 +2,8 @@ #define MICROPY_HW_MCU_NAME "samd21e18" // Rev B - Black +#define MICROPY_HW_LED_STATUS (&pin_PA10) + #define MICROPY_HW_APA102_MOSI (&pin_PA00) #define MICROPY_HW_APA102_SCK (&pin_PA01) diff --git a/ports/atmel-samd/boards/trinket_m0_haxpress/mpconfigboard.h b/ports/atmel-samd/boards/trinket_m0_haxpress/mpconfigboard.h index dfbd873b6f..369d84b8b8 100644 --- a/ports/atmel-samd/boards/trinket_m0_haxpress/mpconfigboard.h +++ b/ports/atmel-samd/boards/trinket_m0_haxpress/mpconfigboard.h @@ -2,6 +2,7 @@ #define MICROPY_HW_MCU_NAME "samd21e18" // Rev B - Black +#define MICROPY_HW_LED_STATUS (&pin_PA10) // #define MICROPY_HW_APA102_MOSI (&pin_PA00) // #define MICROPY_HW_APA102_SCK (&pin_PA01) diff --git a/ports/atmel-samd/supervisor/port.c b/ports/atmel-samd/supervisor/port.c index 7b51400ef8..9418386185 100644 --- a/ports/atmel-samd/supervisor/port.c +++ b/ports/atmel-samd/supervisor/port.c @@ -64,6 +64,9 @@ #include "reset.h" #include "tick.h" +#include "supervisor/shared/safe_mode.h" +#include "supervisor/shared/stack.h" + #include "tusb.h" #ifdef CIRCUITPY_GAMEPAD_TICKS @@ -153,35 +156,6 @@ safe_mode_t port_init(void) { samd_peripherals_enable_cache(); #endif -// On power on start or external reset, set _ezero to the canary word. If it -// gets killed, we boot in safe mode. _ezero is the boundary between statically -// allocated memory including the fixed MicroPython heap and the stack. If either -// misbehaves, the canary will not be intact after soft reset. -#ifdef CIRCUITPY_CANARY_WORD -#ifdef SAMD21 - bool power_on_or_external_reset = hri_pm_get_RCAUSE_POR_bit(PM) || hri_pm_get_RCAUSE_EXT_bit(PM); - bool system_reset = hri_pm_get_RCAUSE_SYST_bit(PM); -#endif -#ifdef SAMD51 - bool power_on_or_external_reset = hri_rstc_get_RCAUSE_POR_bit(RSTC) || hri_rstc_get_RCAUSE_EXT_bit(RSTC); - bool system_reset = hri_rstc_get_RCAUSE_SYST_bit(RSTC); -#endif - if (power_on_or_external_reset) { - _ezero = CIRCUITPY_CANARY_WORD; - } else if (system_reset) { - // If we're starting from a system reset we're likely coming from the - // bootloader or hard fault handler. If we're coming from the handler - // the canary will be CIRCUITPY_SAFE_RESTART_WORD and we don't want to - // revive the canary so that a second hard fault won't restart. Resets - // from anywhere else are ok. - if (_ezero == CIRCUITPY_SAFE_RESTART_WORD) { - _ezero = ~CIRCUITPY_CANARY_WORD; - } else { - _ezero = CIRCUITPY_CANARY_WORD; - } - } -#endif - #ifdef SAMD21 hri_nvmctrl_set_CTRLB_RWS_bf(NVMCTRL, 2); _pm_init(); @@ -200,13 +174,6 @@ safe_mode_t port_init(void) { // Init the board last so everything else is ready board_init(); - #ifdef CIRCUITPY_CANARY_WORD - // Run in safe mode if the canary is corrupt. - if (_ezero != CIRCUITPY_CANARY_WORD) { - return HARD_CRASH; - } - #endif - #ifdef SAMD21 if (PM->RCAUSE.bit.BOD33 == 1 || PM->RCAUSE.bit.BOD12 == 1) { return BROWNOUT; @@ -280,6 +247,20 @@ void reset_to_bootloader(void) { reset(); } +void reset_cpu(void) { + reset(); +} + +extern uint32_t _ebss; +// Place the word to save just after our BSS section that gets blanked. +void port_set_saved_word(uint32_t value) { + _ebss = value; +} + +uint32_t port_get_saved_word(void) { + return _ebss; +} + /** * \brief Default interrupt handler for unused IRQs. */ @@ -290,18 +271,9 @@ __attribute__((used)) void HardFault_Handler(void) // loop below. REG_MTB_MASTER = 0x00000000 + 6; #endif -#ifdef CIRCUITPY_CANARY_WORD - // If the canary is intact, then kill it and reset so we have a chance to - // read our files. - if (_ezero == CIRCUITPY_CANARY_WORD) { - _ezero = CIRCUITPY_SAFE_RESTART_WORD; - NVIC_SystemReset(); - } -#endif + + reset_into_safe_mode(HARD_CRASH); while (true) { - asm(""); - } - for (uint32_t i = 0; i < 100000; i++) { - asm("noop;"); + asm("nop;"); } } diff --git a/ports/nrf/boards/feather_nrf52832/mpconfigboard.h b/ports/nrf/boards/feather_nrf52832/mpconfigboard.h index e751ec182e..4959e1ca95 100644 --- a/ports/nrf/boards/feather_nrf52832/mpconfigboard.h +++ b/ports/nrf/boards/feather_nrf52832/mpconfigboard.h @@ -28,6 +28,8 @@ #define MICROPY_HW_MCU_NAME "nRF52832" #define MICROPY_PY_SYS_PLATFORM "nRF52" +#define MICROPY_HW_LED_STATUS (&pin_P0_17) + #define MICROPY_HW_UART_RX NRF_GPIO_PIN_MAP(0, 8) #define MICROPY_HW_UART_TX NRF_GPIO_PIN_MAP(0, 6) diff --git a/ports/nrf/boards/feather_nrf52840_express/mpconfigboard.h b/ports/nrf/boards/feather_nrf52840_express/mpconfigboard.h index bd1cad504b..da72c085ef 100644 --- a/ports/nrf/boards/feather_nrf52840_express/mpconfigboard.h +++ b/ports/nrf/boards/feather_nrf52840_express/mpconfigboard.h @@ -35,6 +35,8 @@ #define MICROPY_HW_NEOPIXEL (&pin_P0_16) +#define MICROPY_HW_LED_STATUS (&pin_P1_15) + #ifdef QSPI_FLASH_FILESYSTEM #define MICROPY_QSPI_DATA0 NRF_GPIO_PIN_MAP(0, 17) #define MICROPY_QSPI_DATA1 NRF_GPIO_PIN_MAP(0, 22) diff --git a/ports/nrf/boards/particle_argon/mpconfigboard.h b/ports/nrf/boards/particle_argon/mpconfigboard.h index 4a5c1b0c83..bd9a463492 100644 --- a/ports/nrf/boards/particle_argon/mpconfigboard.h +++ b/ports/nrf/boards/particle_argon/mpconfigboard.h @@ -33,6 +33,8 @@ #define MICROPY_HW_MCU_NAME "nRF52840" #define MICROPY_PY_SYS_PLATFORM "Particle Argon" +#define MICROPY_HW_LED_STATUS (&pin_P1_12) + #define MICROPY_HW_RGB_LED_RED (&pin_P0_13) #define MICROPY_HW_RGB_LED_GREEN (&pin_P0_14) #define MICROPY_HW_RGB_LED_BLUE (&pin_P0_15) diff --git a/ports/nrf/boards/particle_boron/mpconfigboard.h b/ports/nrf/boards/particle_boron/mpconfigboard.h index ac5caee0f7..ed675c8118 100644 --- a/ports/nrf/boards/particle_boron/mpconfigboard.h +++ b/ports/nrf/boards/particle_boron/mpconfigboard.h @@ -33,6 +33,8 @@ #define MICROPY_HW_MCU_NAME "nRF52840" #define MICROPY_PY_SYS_PLATFORM "Particle Boron" +#define MICROPY_HW_LED_STATUS (&pin_P1_12) + #define MICROPY_HW_RGB_LED_RED (&pin_P0_13) #define MICROPY_HW_RGB_LED_GREEN (&pin_P0_14) #define MICROPY_HW_RGB_LED_BLUE (&pin_P0_15) diff --git a/ports/nrf/boards/particle_xenon/mpconfigboard.h b/ports/nrf/boards/particle_xenon/mpconfigboard.h index d3ce22327b..0b119b8bfd 100644 --- a/ports/nrf/boards/particle_xenon/mpconfigboard.h +++ b/ports/nrf/boards/particle_xenon/mpconfigboard.h @@ -33,6 +33,8 @@ #define MICROPY_HW_MCU_NAME "nRF52840" #define MICROPY_PY_SYS_PLATFORM "Particle Xenon" +#define MICROPY_HW_LED_STATUS (&pin_P1_12) + #define MICROPY_HW_RGB_LED_RED (&pin_P0_13) #define MICROPY_HW_RGB_LED_GREEN (&pin_P0_14) #define MICROPY_HW_RGB_LED_BLUE (&pin_P0_15) diff --git a/ports/nrf/boards/pca10040/mpconfigboard.h b/ports/nrf/boards/pca10040/mpconfigboard.h index ebf808ce20..3961028325 100644 --- a/ports/nrf/boards/pca10040/mpconfigboard.h +++ b/ports/nrf/boards/pca10040/mpconfigboard.h @@ -29,6 +29,8 @@ #define MICROPY_HW_MCU_NAME "nRF52832" #define MICROPY_PY_SYS_PLATFORM "nRF52-DK" +#define MICROPY_HW_LED_STATUS (&pin_P0_17) + #define MICROPY_HW_UART_RX NRF_GPIO_PIN_MAP(0, 8) #define MICROPY_HW_UART_TX NRF_GPIO_PIN_MAP(0, 6) #define MICROPY_HW_UART_HWFC (0) diff --git a/ports/nrf/boards/pca10040/pins.c b/ports/nrf/boards/pca10040/pins.c index 9671358c9a..95acd8ffdf 100644 --- a/ports/nrf/boards/pca10040/pins.c +++ b/ports/nrf/boards/pca10040/pins.c @@ -21,9 +21,13 @@ STATIC const mp_rom_map_elem_t board_module_globals_table[] = { { MP_ROM_QSTR(MP_QSTR_P0_15), MP_ROM_PTR(&pin_P0_15) }, { MP_ROM_QSTR(MP_QSTR_P0_16), MP_ROM_PTR(&pin_P0_16) }, { MP_ROM_QSTR(MP_QSTR_P0_17), MP_ROM_PTR(&pin_P0_17) }, + { MP_ROM_QSTR(MP_QSTR_LED1), MP_ROM_PTR(&pin_P0_17) }, { MP_ROM_QSTR(MP_QSTR_P0_18), MP_ROM_PTR(&pin_P0_18) }, + { MP_ROM_QSTR(MP_QSTR_LED2), MP_ROM_PTR(&pin_P0_18) }, { MP_ROM_QSTR(MP_QSTR_P0_19), MP_ROM_PTR(&pin_P0_19) }, + { MP_ROM_QSTR(MP_QSTR_LED3), MP_ROM_PTR(&pin_P0_19) }, { MP_ROM_QSTR(MP_QSTR_P0_20), MP_ROM_PTR(&pin_P0_20) }, + { MP_ROM_QSTR(MP_QSTR_LED4), MP_ROM_PTR(&pin_P0_20) }, { MP_ROM_QSTR(MP_QSTR_P0_21), MP_ROM_PTR(&pin_P0_21) }, { MP_ROM_QSTR(MP_QSTR_P0_22), MP_ROM_PTR(&pin_P0_22) }, { MP_ROM_QSTR(MP_QSTR_P0_23), MP_ROM_PTR(&pin_P0_23) }, diff --git a/ports/nrf/boards/pca10056/mpconfigboard.h b/ports/nrf/boards/pca10056/mpconfigboard.h index 83c3f66c1e..8d420721f9 100644 --- a/ports/nrf/boards/pca10056/mpconfigboard.h +++ b/ports/nrf/boards/pca10056/mpconfigboard.h @@ -33,6 +33,8 @@ #define PORT_HEAP_SIZE (128 * 1024) #define CIRCUITPY_AUTORELOAD_DELAY_MS 500 +#define MICROPY_HW_LED_STATUS (&pin_P0_13) + #define DEFAULT_I2C_BUS_SCL (&pin_P0_27) #define DEFAULT_I2C_BUS_SDA (&pin_P0_26) diff --git a/ports/nrf/boards/pca10059/mpconfigboard.h b/ports/nrf/boards/pca10059/mpconfigboard.h index b248011ec9..03abd65e89 100644 --- a/ports/nrf/boards/pca10059/mpconfigboard.h +++ b/ports/nrf/boards/pca10059/mpconfigboard.h @@ -28,5 +28,7 @@ #define MICROPY_HW_MCU_NAME "nRF52840" #define MICROPY_PY_SYS_PLATFORM "nRF52840-DK" +#define MICROPY_HW_LED_STATUS (&pin_P0_06) + #define PORT_HEAP_SIZE (128 * 1024) #define CIRCUITPY_AUTORELOAD_DELAY_MS 500 diff --git a/ports/nrf/common-hal/neopixel_write/__init__.c b/ports/nrf/common-hal/neopixel_write/__init__.c index c4cb194f36..c9da436b8a 100644 --- a/ports/nrf/common-hal/neopixel_write/__init__.c +++ b/ports/nrf/common-hal/neopixel_write/__init__.c @@ -28,6 +28,8 @@ #include "shared-bindings/neopixel_write/__init__.h" #include "nrf_pwm.h" +#include "tick.h" + // https://github.com/adafruit/Adafruit_NeoPixel/blob/master/Adafruit_NeoPixel.cpp // [[[Begin of the Neopixel NRF52 EasyDMA implementation // by the Hackerspace San Salvador]]] @@ -95,6 +97,9 @@ static NRF_PWM_Type* find_free_pwm (void) { return NULL; } +uint64_t next_start_tick_ms = 0; +uint32_t next_start_tick_us = 1000; + void common_hal_neopixel_write (const digitalio_digitalinout_obj_t* digitalinout, uint8_t *pixels, uint32_t numBytes) { // To support both the SoftDevice + Neopixels we use the EasyDMA // feature from the NRF25. However this technique implies to @@ -117,7 +122,7 @@ void common_hal_neopixel_write (const digitalio_digitalinout_obj_t* digitalinout // only malloc if there is PWM device available if ( pwm != NULL ) { - if (numBytes == 4) { + if (pattern_size <= sizeof(one_pixel) * sizeof(uint32_t)) { pixels_pattern = (uint16_t *) one_pixel; } else { pixels_pattern = (uint16_t *) m_malloc_maybe(pattern_size, false); @@ -125,6 +130,9 @@ void common_hal_neopixel_write (const digitalio_digitalinout_obj_t* digitalinout } } + // Wait to make sure we don't append onto the last transmission. + wait_until(next_start_tick_ms, next_start_tick_us); + // Use the identified device to choose the implementation // If a PWM device is available use DMA if ( (pixels_pattern != NULL) && (pwm != NULL) ) { @@ -140,8 +148,8 @@ void common_hal_neopixel_write (const digitalio_digitalinout_obj_t* digitalinout } // Zero padding to indicate the end of sequence - pixels_pattern[++pos] = 0 | (0x8000); // Seq end - pixels_pattern[++pos] = 0 | (0x8000); // Seq end + pixels_pattern[pos++] = 0 | (0x8000); // Seq end + pixels_pattern[pos++] = 0 | (0x8000); // Seq end // Set the wave mode to count UP // Set the PWM to use the 16MHz clock @@ -274,4 +282,13 @@ void common_hal_neopixel_write (const digitalio_digitalinout_obj_t* digitalinout // Enable interrupts again __enable_irq(); } + + // Update the next start. + current_tick(&next_start_tick_ms, &next_start_tick_us); + if (next_start_tick_us < 100) { + next_start_tick_ms += 1; + next_start_tick_us = 100 - next_start_tick_us; + } else { + next_start_tick_us -= 100; + } } diff --git a/ports/nrf/peripherals/nrf/clocks.c b/ports/nrf/peripherals/nrf/clocks.c index 811c0161a9..4acb878db9 100644 --- a/ports/nrf/peripherals/nrf/clocks.c +++ b/ports/nrf/peripherals/nrf/clocks.c @@ -32,4 +32,7 @@ void nrf_peripherals_clocks_init(void) { // generalized. NRF_CLOCK->LFCLKSRC = (uint32_t)((CLOCK_LFCLKSRC_SRC_Xtal << CLOCK_LFCLKSRC_SRC_Pos) & CLOCK_LFCLKSRC_SRC_Msk); NRF_CLOCK->TASKS_LFCLKSTART = 1UL; + + // Wait for clocks to start. + while (NRF_CLOCK->EVENTS_LFCLKSTARTED == 0) {} } diff --git a/ports/nrf/supervisor/port.c b/ports/nrf/supervisor/port.c index fcb3ae55c6..fe7458a275 100644 --- a/ports/nrf/supervisor/port.c +++ b/ports/nrf/supervisor/port.c @@ -28,6 +28,9 @@ #include "supervisor/port.h" #include "boards/board.h" +#include "nrfx/hal/nrf_power.h" +#include "nrfx/drivers/include/nrfx_power.h" + #include "nrf/cache.h" #include "nrf/clocks.h" #include "nrf/power.h" @@ -41,37 +44,32 @@ #include "common-hal/pulseio/PulseOut.h" #include "tick.h" -safe_mode_t port_init(void) { +static void power_warning_handler(void) { + reset_into_safe_mode(BROWNOUT); +} +safe_mode_t port_init(void) { nrf_peripherals_clocks_init(); // If GPIO voltage is set wrong in UICR, this will fix it, and // will also do a reset to make the change take effect. nrf_peripherals_power_init(); + nrfx_power_pofwarn_config_t power_failure_config; + power_failure_config.handler = power_warning_handler; + power_failure_config.thr = NRF_POWER_POFTHR_V27; + power_failure_config.thrvddh = NRF_POWER_POFTHRVDDH_V27; + nrfx_power_pof_init(&power_failure_config); + nrfx_power_pof_enable(&power_failure_config); + nrf_peripherals_enable_cache(); // Configure millisecond timer initialization. tick_init(); -#if 0 - #ifdef CIRCUITPY_CANARY_WORD - // Run in safe mode if the canary is corrupt. - if (_ezero != CIRCUITPY_CANARY_WORD) { - return HARD_CRASH; - } - #endif -#endif - // Will do usb_init() if chip supports USB. board_init(); -#if 0 - if (board_requests_safe_mode()) { - return USER_SAFE_MODE; - } -#endif - return NO_SAFE_MODE; } @@ -93,13 +91,26 @@ void reset_to_bootloader(void) { enum { DFU_MAGIC_SERIAL = 0x4e }; NRF_POWER->GPREGRET = DFU_MAGIC_SERIAL; + reset_cpu(); +} + +void reset_cpu(void) { NVIC_SystemReset(); } +extern uint32_t _ebss; +// Place the word to save just after our BSS section that gets blanked. +void port_set_saved_word(uint32_t value) { + _ebss = value; +} -void HardFault_Handler(void) -{ +uint32_t port_get_saved_word(void) { + return _ebss; +} + +void HardFault_Handler(void) { + reset_into_safe_mode(HARD_CRASH); while (true) { - asm(""); + asm("nop;"); } } diff --git a/py/obj.c b/py/obj.c index c20b549a39..fb59eec82c 100644 --- a/py/obj.c +++ b/py/obj.c @@ -488,6 +488,8 @@ mp_obj_t mp_obj_subscr(mp_obj_t base, mp_obj_t index, mp_obj_t value) { mp_obj_type_t *type = mp_obj_get_type(base); if (type->subscr != NULL) { mp_obj_t ret = type->subscr(base, index, value); + // May have called port specific C code. Make sure it didn't mess up the heap. + assert_heap_ok(); if (ret != MP_OBJ_NULL) { return ret; } diff --git a/supervisor/port.h b/supervisor/port.h index dd4a82209d..59898c8e46 100644 --- a/supervisor/port.h +++ b/supervisor/port.h @@ -33,12 +33,7 @@ #error "Please define PORT_HEAP_SIZE to specify heap size in bytes." #endif -typedef enum { - NO_SAFE_MODE = 0, - BROWNOUT, - HARD_CRASH, - USER_SAFE_MODE, -} safe_mode_t; +#include "supervisor/shared/safe_mode.h" // Provided by the linker; extern uint32_t _ezero; @@ -51,7 +46,10 @@ extern uint32_t _ebss; safe_mode_t port_init(void); -// Reset the microcontroller. +// Reset the microcontroller completely. +void reset_cpu(void); + +// Reset the microcontroller state. void reset_port(void); // Reset the rest of the board. @@ -60,8 +58,8 @@ void reset_board(void); // Reset to the bootloader void reset_to_bootloader(void); -#ifdef NRF52_SERIES -void HardFault_Handler(void); -#endif +// Save and retrieve a word from memory that is preserved over reset. Used for safe mode. +void port_set_saved_word(uint32_t); +uint32_t port_get_saved_word(void); #endif // MICROPY_INCLUDED_SUPERVISOR_PORT_H diff --git a/supervisor/shared/rgb_led_status.h b/supervisor/shared/rgb_led_status.h index 9542b31972..83f4822d72 100644 --- a/supervisor/shared/rgb_led_status.h +++ b/supervisor/shared/rgb_led_status.h @@ -36,6 +36,8 @@ #include "py/mpconfig.h" #include "rgb_led_colors.h" +#include "supervisor/shared/safe_mode.h" + // Overall, the time module must be implemented. // To work with a DotStar, one must have MICROPY_HW_APA102_SCK and // MICROPY_HW_APA102_MOSI defined and bitbangio.SPI or busio.SPI implemented. diff --git a/supervisor/shared/safe_mode.c b/supervisor/shared/safe_mode.c new file mode 100644 index 0000000000..c1ce1fc9c5 --- /dev/null +++ b/supervisor/shared/safe_mode.c @@ -0,0 +1,126 @@ +/* + * This file is part of the MicroPython project, http://micropython.org/ + * + * The MIT License (MIT) + * + * Copyright (c) 2018 Scott Shawcroft for Adafruit Industries + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#include "supervisor/shared/safe_mode.h" + +#include "mphalport.h" +// #include "py/mpconfig.h" + +#include "shared-bindings/digitalio/DigitalInOut.h" + +#include "supervisor/serial.h" +#include "supervisor/shared/rgb_led_colors.h" +#include "supervisor/shared/rgb_led_status.h" +#include "supervisor/shared/translate.h" + +#define SAFE_MODE_DATA_GUARD 0xad0000af +#define SAFE_MODE_DATA_GUARD_MASK 0xff0000ff + +static safe_mode_t current_safe_mode; + +safe_mode_t wait_for_safe_mode_reset(void) { + uint32_t reset_state = port_get_saved_word(); + safe_mode_t safe_mode = NO_SAFE_MODE; + if ((reset_state & SAFE_MODE_DATA_GUARD_MASK) == SAFE_MODE_DATA_GUARD) { + safe_mode = (reset_state & ~SAFE_MODE_DATA_GUARD_MASK) >> 8; + } + if (safe_mode != NO_SAFE_MODE) { + port_set_saved_word(SAFE_MODE_DATA_GUARD); + current_safe_mode = safe_mode; + return safe_mode; + } + port_set_saved_word(SAFE_MODE_DATA_GUARD | (MANUAL_SAFE_MODE << 8)); + // Wait for a while to allow for reset. + temp_status_color(SAFE_MODE); + #ifdef MICROPY_HW_LED_STATUS + digitalio_digitalinout_obj_t status_led; + common_hal_digitalio_digitalinout_construct(&status_led, MICROPY_HW_LED_STATUS); + common_hal_digitalio_digitalinout_switch_to_output(&status_led, true, DRIVE_MODE_PUSH_PULL); + #endif + uint64_t start_ticks = ticks_ms; + uint64_t diff = 0; + while (diff < 700) { + #ifdef MICROPY_HW_LED_STATUS + // Blink on for 100, off for 100, on for 100, off for 100 and on for 200 + common_hal_digitalio_digitalinout_set_value(&status_led, diff > 100 && diff / 100 != 2 && diff / 100 != 4); + #endif + diff = ticks_ms - start_ticks; + } + #ifdef MICROPY_HW_LED_STATUS + common_hal_digitalio_digitalinout_deinit(&status_led); + #endif + clear_temp_status(); + port_set_saved_word(SAFE_MODE_DATA_GUARD); + return NO_SAFE_MODE; +} + +void reset_into_safe_mode(safe_mode_t reason) { + if (current_safe_mode > BROWNOUT && reason > BROWNOUT) { + while (true) { + // This very bad because it means running in safe mode didn't save us. Only ignore brownout + // because it may be due to a switch bouncing. + } + } + + port_set_saved_word(SAFE_MODE_DATA_GUARD | (reason << 8)); + reset_cpu(); +} + +void print_safe_mode_message(safe_mode_t reason) { + // Output a user safe mode string if its set. + #ifdef BOARD_USER_SAFE_MODE + if (reason == USER_SAFE_MODE) { + serial_write("\r\n"); + serial_write_compressed(translate("You requested starting safe mode by ")); + serial_write(BOARD_USER_SAFE_MODE_ACTION); + serial_write("\r\n"); + serial_write_compressed(translate("To exit, please reset the board without ")); + serial_write(BOARD_USER_SAFE_MODE_ACTION); + serial_write("\r\n"); + } else + #endif + if (reason != NO_SAFE_MODE) { + serial_write("\r\n"); + serial_write_compressed(translate("You are running in safe mode which means something unanticipated happened.\n")); + if (reason == HARD_CRASH || reason == MICROPY_NLR_JUMP_FAIL || reason == MICROPY_FATAL_ERROR) { + serial_write_compressed(translate("Looks like our core CircuitPython code crashed hard. Whoops!\nPlease file an issue at https://github.com/adafruit/circuitpython/issues\n with the contents of your CIRCUITPY drive and this message:\n")); + if (reason == HARD_CRASH) { + serial_write_compressed(translate("Crash into the HardFault_Handler.\n")); + } else if (reason == MICROPY_NLR_JUMP_FAIL) { + serial_write_compressed(translate("MicroPython NLR jump failed. Likely memory corruption.\n")); + } else if (reason == MICROPY_FATAL_ERROR) { + serial_write_compressed(translate("MicroPython fatal error.\n")); + } + } else if (reason == BROWNOUT) { + serial_write_compressed(translate("The microcontroller's power dipped. Please make sure your power supply provides\nenough power for the whole circuit and press reset (after ejecting CIRCUITPY).\n")); + } else if (reason == HEAP_OVERWRITTEN) { + serial_write_compressed(translate("The CircuitPython heap was corrupted because the stack was too small.\nPlease increase stack size limits and press reset (after ejecting CIRCUITPY).\nIf you didn't change the stack, then file an issue here with the contents of your CIRCUITPY drive:\n")); + serial_write("https://github.com/adafruit/circuitpython/issues\r\n"); + } else if (reason == MANUAL_SAFE_MODE) { + serial_write_compressed(translate("The reset button was pressed while booting CircuitPython. Press again to exit safe mode.\n")); + } + } +} diff --git a/supervisor/shared/safe_mode.h b/supervisor/shared/safe_mode.h new file mode 100644 index 0000000000..eba2668ac7 --- /dev/null +++ b/supervisor/shared/safe_mode.h @@ -0,0 +1,47 @@ +/* + * This file is part of the MicroPython project, http://micropython.org/ + * + * The MIT License (MIT) + * + * Copyright (c) 2018 Scott Shawcroft for Adafruit Industries + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#ifndef MICROPY_INCLUDED_SUPERVISOR_SAFE_MODE_H +#define MICROPY_INCLUDED_SUPERVISOR_SAFE_MODE_H + +typedef enum { + NO_SAFE_MODE = 0, + BROWNOUT, + HARD_CRASH, + USER_SAFE_MODE, + HEAP_OVERWRITTEN, + MANUAL_SAFE_MODE, + MICROPY_NLR_JUMP_FAIL, + MICROPY_FATAL_ERROR +} safe_mode_t; + +safe_mode_t wait_for_safe_mode_reset(void); + +void reset_into_safe_mode(safe_mode_t reason); + +void print_safe_mode_message(safe_mode_t reason); + +#endif // MICROPY_INCLUDED_SUPERVISOR_SAFE_MODE_H diff --git a/supervisor/shared/stack.c b/supervisor/shared/stack.c index 8f4da4ce6e..71e239c0a1 100755 --- a/supervisor/shared/stack.c +++ b/supervisor/shared/stack.c @@ -29,6 +29,7 @@ #include "py/mpconfig.h" #include "py/runtime.h" #include "supervisor/cpu.h" +#include "supervisor/shared/safe_mode.h" extern uint32_t _estack; @@ -38,8 +39,6 @@ supervisor_allocation* stack_alloc = NULL; #define EXCEPTION_STACK_SIZE 1024 -#define STACK_CANARY_VALUE 0x017829ef - void allocate_stack(void) { mp_uint_t regs[10]; mp_uint_t sp = cpu_get_regs_and_sp(regs); @@ -62,9 +61,7 @@ inline bool stack_ok(void) { inline void assert_heap_ok(void) { if (!stack_ok()) { - asm("nop"); - while(true) {} - mp_raise_RuntimeError(translate("Stack clobbered heap.")); + reset_into_safe_mode(HEAP_OVERWRITTEN); } } diff --git a/supervisor/shared/stack.h b/supervisor/shared/stack.h index 8f1e881f2c..1fb43be573 100755 --- a/supervisor/shared/stack.h +++ b/supervisor/shared/stack.h @@ -40,7 +40,9 @@ uint32_t get_current_stack_size(void); bool stack_ok(void); // Use this after any calls into a library which may use a lot of stack. This will raise a Python -// exception when the stack has likely overwritten a portio of the heap. +// exception when the stack has likely overwritten a portion of the heap. void assert_heap_ok(void); +#define STACK_CANARY_VALUE 0x017829ef + #endif // MICROPY_INCLUDED_SUPERVISOR_STACK_H diff --git a/supervisor/shared/translate.c b/supervisor/shared/translate.c index 1fa361c15b..aa5e4517c2 100644 --- a/supervisor/shared/translate.c +++ b/supervisor/shared/translate.c @@ -34,6 +34,14 @@ #include "genhdr/compression.generated.h" #endif +#include "supervisor/serial.h" + +void serial_write_compressed(const compressed_string_t* compressed) { + char decompressed[compressed->length]; + decompress(compressed, decompressed); + serial_write(decompressed); +} + char* decompress(const compressed_string_t* compressed, char* decompressed) { uint8_t this_byte = 0; uint8_t this_bit = 7; diff --git a/supervisor/shared/translate.h b/supervisor/shared/translate.h index 3a1ba4076b..5e8acbb6af 100644 --- a/supervisor/shared/translate.h +++ b/supervisor/shared/translate.h @@ -35,7 +35,7 @@ typedef struct { } compressed_string_t; const compressed_string_t* translate(const char* c); - +void serial_write_compressed(const compressed_string_t* compressed); char* decompress(const compressed_string_t* compressed, char* decompressed); #endif // MICROPY_INCLUDED_SUPERVISOR_TRANSLATE_H diff --git a/supervisor/supervisor.mk b/supervisor/supervisor.mk index 73c76ebb77..56ad8a3ba6 100644 --- a/supervisor/supervisor.mk +++ b/supervisor/supervisor.mk @@ -6,6 +6,7 @@ SRC_SUPERVISOR = \ supervisor/shared/flash.c \ supervisor/shared/micropython.c \ supervisor/shared/rgb_led_status.c \ + supervisor/shared/safe_mode.c \ supervisor/shared/stack.c \ supervisor/shared/status_leds.c \ supervisor/shared/translate.c From df6c8eaed7e54b656bcf0c02d7451c307e3391e6 Mon Sep 17 00:00:00 2001 From: Scott Shawcroft Date: Thu, 6 Dec 2018 15:29:26 -0800 Subject: [PATCH 06/33] Add stack.c stub for mpy-cross --- mpy-cross/Makefile | 1 + supervisor/stub/stack.c | 51 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 supervisor/stub/stack.c diff --git a/mpy-cross/Makefile b/mpy-cross/Makefile index d9234ac020..fb1ab1ffdc 100644 --- a/mpy-cross/Makefile +++ b/mpy-cross/Makefile @@ -78,6 +78,7 @@ endif SRC_C = \ main.c \ gccollect.c \ + supervisor/stub/stack.c \ supervisor/shared/translate.c # Add fmode when compiling with mingw gcc diff --git a/supervisor/stub/stack.c b/supervisor/stub/stack.c new file mode 100644 index 0000000000..4d88e51d23 --- /dev/null +++ b/supervisor/stub/stack.c @@ -0,0 +1,51 @@ +/* + * This file is part of the MicroPython project, http://micropython.org/ + * + * The MIT License (MIT) + * + * Copyright (c) 2018 Scott Shawcroft for Adafruit Industries + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#include +#include + +void allocate_stack(void) { +} + +bool stack_ok(void) { + return true; +} + +void assert_heap_ok(void) { +} + +void stack_init(void) { +} + +void stack_resize(void) { +} + +void set_next_stack_size(uint32_t size) { +} + +uint32_t get_current_stack_size(void) { + return 0; +} From 45b301856c9e10b8e942102d52f8d1c5fbb977b2 Mon Sep 17 00:00:00 2001 From: Scott Shawcroft Date: Thu, 6 Dec 2018 15:39:47 -0800 Subject: [PATCH 07/33] Switch TinyUSB back to hathach's version. The merge commit of the commit we were on. --- .gitmodules | 2 +- lib/tinyusb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitmodules b/.gitmodules index 362cb55e5b..3a746ccaeb 100644 --- a/.gitmodules +++ b/.gitmodules @@ -78,7 +78,7 @@ url = https://github.com/adafruit/nrfx.git [submodule "lib/tinyusb"] path = lib/tinyusb - url = https://github.com/tannewt/tinyusb.git + url = https://github.com/hathach/tinyusb.git branch = develop [submodule "tools/huffman"] path = tools/huffman diff --git a/lib/tinyusb b/lib/tinyusb index 47fabe42ed..3bb53273cd 160000 --- a/lib/tinyusb +++ b/lib/tinyusb @@ -1 +1 @@ -Subproject commit 47fabe42edaae4a5da6aa0d48c664a9184578753 +Subproject commit 3bb53273cd3770328f55ba317af3df0cce4333c1 From 817766acdc11fbff80ab53654a45951f74ad2248 Mon Sep 17 00:00:00 2001 From: Scott Shawcroft Date: Thu, 6 Dec 2018 15:47:16 -0800 Subject: [PATCH 08/33] Use the stub for ESP8266 as well. --- ports/esp8266/Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/ports/esp8266/Makefile b/ports/esp8266/Makefile index 69226f442b..d38285c914 100644 --- a/ports/esp8266/Makefile +++ b/ports/esp8266/Makefile @@ -97,6 +97,7 @@ SRC_C = \ posix_helpers.c \ hspi.c \ boards/$(BOARD)/pins.c \ + supervisor/stub/stack.c \ supervisor/shared/translate.c \ $(SRC_MOD) From 332ea8853f84f4ccc023db4b52e7774d1f52095d Mon Sep 17 00:00:00 2001 From: Scott Shawcroft Date: Thu, 6 Dec 2018 16:38:14 -0800 Subject: [PATCH 09/33] Macro guard VDDH inclusion. --- ports/nrf/supervisor/port.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ports/nrf/supervisor/port.c b/ports/nrf/supervisor/port.c index fe7458a275..ece5bae297 100644 --- a/ports/nrf/supervisor/port.c +++ b/ports/nrf/supervisor/port.c @@ -58,7 +58,9 @@ safe_mode_t port_init(void) { nrfx_power_pofwarn_config_t power_failure_config; power_failure_config.handler = power_warning_handler; power_failure_config.thr = NRF_POWER_POFTHR_V27; + #if NRF_POWER_HAS_VDDH power_failure_config.thrvddh = NRF_POWER_POFTHRVDDH_V27; + #endif nrfx_power_pof_init(&power_failure_config); nrfx_power_pof_enable(&power_failure_config); From 288ec84c2163b6dbe6c55715f1330559ca27e26b Mon Sep 17 00:00:00 2001 From: Scott Shawcroft Date: Thu, 6 Dec 2018 17:04:22 -0800 Subject: [PATCH 10/33] Update translations --- locale/circuitpython.pot | 160 +++++++++++++++------------ locale/de_DE.po | 216 +++++++++++++++++++++---------------- locale/en_US.po | 160 +++++++++++++++------------ locale/es.po | 217 +++++++++++++++++++++---------------- locale/fil.po | 215 ++++++++++++++++++++++--------------- locale/fr.po | 218 +++++++++++++++++++++---------------- locale/it_IT.po | 226 +++++++++++++++++++++++---------------- locale/pt_BR.po | 182 +++++++++++++++++-------------- 8 files changed, 922 insertions(+), 672 deletions(-) diff --git a/locale/circuitpython.pot b/locale/circuitpython.pot index cd4678bae9..a8883c8d77 100644 --- a/locale/circuitpython.pot +++ b/locale/circuitpython.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-12-04 16:17-0500\n" +"POT-Creation-Date: 2018-12-06 17:04-0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -151,70 +151,37 @@ msgstr "" msgid "script compilation not supported" msgstr "" -#: main.c:155 +#: main.c:150 msgid " output:\n" msgstr "" -#: main.c:169 main.c:242 +#: main.c:164 main.c:237 msgid "" "Auto-reload is on. Simply save files over USB to run them or enter REPL to " "disable.\n" msgstr "" -#: main.c:171 +#: main.c:166 msgid "Running in safe mode! Auto-reload is off.\n" msgstr "" -#: main.c:173 main.c:244 +#: main.c:168 main.c:239 msgid "Auto-reload is off.\n" msgstr "" -#: main.c:187 +#: main.c:182 msgid "Running in safe mode! Not running saved code.\n" msgstr "" -#: main.c:203 +#: main.c:198 msgid "WARNING: Your code filename has two extensions\n" msgstr "" -#: main.c:251 -msgid "You requested starting safe mode by " -msgstr "" - -#: main.c:254 -msgid "To exit, please reset the board without " -msgstr "" - -#: main.c:261 -msgid "" -"You are running in safe mode which means something really bad happened.\n" -msgstr "" - -#: main.c:263 -msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n" -msgstr "" - -#: main.c:264 -msgid "Please file an issue here with the contents of your CIRCUITPY drive:\n" -msgstr "" - -#: main.c:267 -msgid "" -"The microcontroller's power dipped. Please make sure your power supply " -"provides\n" -msgstr "" - -#: main.c:268 -msgid "" -"enough power for the whole circuit and press reset (after ejecting " -"CIRCUITPY).\n" -msgstr "" - -#: main.c:272 +#: main.c:244 msgid "Press any key to enter the REPL. Use CTRL-D to reload." msgstr "" -#: main.c:430 +#: main.c:407 msgid "soft reboot\n" msgstr "" @@ -443,7 +410,7 @@ msgid "pop from an empty PulseIn" msgstr "" #: ports/atmel-samd/common-hal/pulseio/PulseIn.c:237 -#: ports/esp8266/common-hal/pulseio/PulseIn.c:182 py/obj.c:420 +#: ports/esp8266/common-hal/pulseio/PulseIn.c:182 py/obj.c:422 msgid "index out of range" msgstr "" @@ -1349,116 +1316,116 @@ msgstr "" msgid "Invalid argument" msgstr "" -#: py/obj.c:90 +#: py/obj.c:92 msgid "Traceback (most recent call last):\n" msgstr "" -#: py/obj.c:94 +#: py/obj.c:96 msgid " File \"%q\", line %d" msgstr "" -#: py/obj.c:96 +#: py/obj.c:98 msgid " File \"%q\"" msgstr "" -#: py/obj.c:100 +#: py/obj.c:102 msgid ", in %q\n" msgstr "" -#: py/obj.c:257 +#: py/obj.c:259 msgid "can't convert to int" msgstr "" -#: py/obj.c:260 +#: py/obj.c:262 #, c-format msgid "can't convert %s to int" msgstr "" -#: py/obj.c:320 +#: py/obj.c:322 msgid "can't convert to float" msgstr "" -#: py/obj.c:323 +#: py/obj.c:325 #, c-format msgid "can't convert %s to float" msgstr "" -#: py/obj.c:353 +#: py/obj.c:355 msgid "can't convert to complex" msgstr "" -#: py/obj.c:356 +#: py/obj.c:358 #, c-format msgid "can't convert %s to complex" msgstr "" -#: py/obj.c:371 +#: py/obj.c:373 msgid "expected tuple/list" msgstr "" -#: py/obj.c:374 +#: py/obj.c:376 #, c-format msgid "object '%s' is not a tuple or list" msgstr "" -#: py/obj.c:385 +#: py/obj.c:387 msgid "tuple/list has wrong length" msgstr "" -#: py/obj.c:387 +#: py/obj.c:389 #, c-format msgid "requested length %d but object has length %d" msgstr "" -#: py/obj.c:400 +#: py/obj.c:402 msgid "indices must be integers" msgstr "" -#: py/obj.c:403 +#: py/obj.c:405 msgid "%q indices must be integers, not %s" msgstr "" -#: py/obj.c:423 +#: py/obj.c:425 msgid "%q index out of range" msgstr "" -#: py/obj.c:455 +#: py/obj.c:457 msgid "object has no len" msgstr "" -#: py/obj.c:458 +#: py/obj.c:460 #, c-format msgid "object of type '%s' has no len()" msgstr "" -#: py/obj.c:496 +#: py/obj.c:500 msgid "object does not support item deletion" msgstr "" -#: py/obj.c:499 +#: py/obj.c:503 #, c-format msgid "'%s' object does not support item deletion" msgstr "" -#: py/obj.c:503 +#: py/obj.c:507 msgid "object is not subscriptable" msgstr "" -#: py/obj.c:506 +#: py/obj.c:510 #, c-format msgid "'%s' object is not subscriptable" msgstr "" -#: py/obj.c:510 +#: py/obj.c:514 msgid "object does not support item assignment" msgstr "" -#: py/obj.c:513 +#: py/obj.c:517 #, c-format msgid "'%s' object does not support item assignment" msgstr "" -#: py/obj.c:544 +#: py/obj.c:548 msgid "object with buffer protocol required" msgstr "" @@ -2524,3 +2491,58 @@ msgstr "" #: shared-module/usb_hid/Device.c:59 msgid "USB Error" msgstr "" + +#: supervisor/shared/safe_mode.c:97 +msgid "You requested starting safe mode by " +msgstr "" + +#: supervisor/shared/safe_mode.c:100 +msgid "To exit, please reset the board without " +msgstr "" + +#: supervisor/shared/safe_mode.c:107 +msgid "" +"You are running in safe mode which means something unanticipated happened.\n" +msgstr "" + +#: supervisor/shared/safe_mode.c:109 +msgid "" +"Looks like our core CircuitPython code crashed hard. Whoops!\n" +"Please file an issue at https://github.com/adafruit/circuitpython/issues\n" +" with the contents of your CIRCUITPY drive and this message:\n" +msgstr "" + +#: supervisor/shared/safe_mode.c:111 +msgid "Crash into the HardFault_Handler.\n" +msgstr "" + +#: supervisor/shared/safe_mode.c:113 +msgid "MicroPython NLR jump failed. Likely memory corruption.\n" +msgstr "" + +#: supervisor/shared/safe_mode.c:115 +msgid "MicroPython fatal error.\n" +msgstr "" + +#: supervisor/shared/safe_mode.c:118 +msgid "" +"The microcontroller's power dipped. Please make sure your power supply " +"provides\n" +"enough power for the whole circuit and press reset (after ejecting " +"CIRCUITPY).\n" +msgstr "" + +#: supervisor/shared/safe_mode.c:120 +msgid "" +"The CircuitPython heap was corrupted because the stack was too small.\n" +"Please increase stack size limits and press reset (after ejecting " +"CIRCUITPY).\n" +"If you didn't change the stack, then file an issue here with the contents of " +"your CIRCUITPY drive:\n" +msgstr "" + +#: supervisor/shared/safe_mode.c:123 +msgid "" +"The reset button was pressed while booting CircuitPython. Press again to " +"exit safe mode.\n" +msgstr "" diff --git a/locale/de_DE.po b/locale/de_DE.po index 29b977b186..05c5ae72d0 100644 --- a/locale/de_DE.po +++ b/locale/de_DE.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-12-04 16:17-0500\n" +"POT-Creation-Date: 2018-12-06 17:04-0800\n" "PO-Revision-Date: 2018-07-27 11:55-0700\n" "Last-Translator: Sebastian Plamauer\n" "Language-Team: \n" @@ -151,11 +151,11 @@ msgstr "ungültige argumente" msgid "script compilation not supported" msgstr "kompilieren von Skripten ist nicht unterstützt" -#: main.c:155 +#: main.c:150 msgid " output:\n" msgstr " Ausgabe:\n" -#: main.c:169 main.c:242 +#: main.c:164 main.c:237 msgid "" "Auto-reload is on. Simply save files over USB to run them or enter REPL to " "disable.\n" @@ -163,67 +163,29 @@ msgstr "" "Automatisches Neuladen ist aktiv. Speichere Dateien über USB um sie " "auszuführen oder verbinde dich mit der REPL um zu deaktivieren.\n" -#: main.c:171 +#: main.c:166 msgid "Running in safe mode! Auto-reload is off.\n" msgstr "Sicherheitsmodus aktiv! Automatisches Neuladen ist deaktiviert.\n" -#: main.c:173 main.c:244 +#: main.c:168 main.c:239 msgid "Auto-reload is off.\n" msgstr "Automatisches Neuladen ist deaktiviert.\n" -#: main.c:187 +#: main.c:182 msgid "Running in safe mode! Not running saved code.\n" msgstr "Sicherheitsmodus aktiv! Gespeicherter Code wird nicht ausgeführt\n" -#: main.c:203 +#: main.c:198 msgid "WARNING: Your code filename has two extensions\n" msgstr "WARNUNG: Der Dateiname deines codes hat zwei Dateityperweiterungen\n" -#: main.c:251 -msgid "You requested starting safe mode by " -msgstr "Du hast das Starten im Sicherheitsmodus ausgelöst durch " - -#: main.c:254 -msgid "To exit, please reset the board without " -msgstr "Zum beenden bitte resette das board ohne " - -#: main.c:261 -msgid "" -"You are running in safe mode which means something really bad happened.\n" -msgstr "Sicherheitsmodus aktiv, etwas wirklich schlechtes ist passiert.\n" - -#: main.c:263 -msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n" -msgstr "CircuitPython ist abgestürzt. Ups!\n" - -#: main.c:264 -msgid "Please file an issue here with the contents of your CIRCUITPY drive:\n" -msgstr "" -"Bitte erstelle ein issue hier mit dem Inhalt deines CIRCUITPY-speichers:\n" - -#: main.c:267 -msgid "" -"The microcontroller's power dipped. Please make sure your power supply " -"provides\n" -msgstr "" -"Die Stromversorgung des Mikrocontrollers ist eingebrochen. Stelle sicher," -"dass deine Stromversorgung\n" - -#: main.c:268 -msgid "" -"enough power for the whole circuit and press reset (after ejecting " -"CIRCUITPY).\n" -msgstr "" -"genug Strom für den ganzen Schaltkreis liefert und drücke reset (nach dem " -"sicheren Auswerfen von CIRCUITPY.)\n" - -#: main.c:272 +#: main.c:244 msgid "Press any key to enter the REPL. Use CTRL-D to reload." msgstr "" "Drücke eine Taste um dich mit der REPL zu verbinden. Drücke Strg-D zum neu " "laden" -#: main.c:430 +#: main.c:407 msgid "soft reboot\n" msgstr "soft reboot\n" @@ -452,7 +414,7 @@ msgid "pop from an empty PulseIn" msgstr "pop von einem leeren PulseIn" #: ports/atmel-samd/common-hal/pulseio/PulseIn.c:237 -#: ports/esp8266/common-hal/pulseio/PulseIn.c:182 py/obj.c:420 +#: ports/esp8266/common-hal/pulseio/PulseIn.c:182 py/obj.c:422 msgid "index out of range" msgstr "index außerhalb der Reichweite" @@ -1369,116 +1331,116 @@ msgstr "" msgid "Invalid argument" msgstr "" -#: py/obj.c:90 +#: py/obj.c:92 msgid "Traceback (most recent call last):\n" msgstr "" -#: py/obj.c:94 +#: py/obj.c:96 msgid " File \"%q\", line %d" msgstr "" -#: py/obj.c:96 +#: py/obj.c:98 msgid " File \"%q\"" msgstr "" -#: py/obj.c:100 +#: py/obj.c:102 msgid ", in %q\n" msgstr "" -#: py/obj.c:257 +#: py/obj.c:259 msgid "can't convert to int" msgstr "" -#: py/obj.c:260 +#: py/obj.c:262 #, c-format msgid "can't convert %s to int" msgstr "" -#: py/obj.c:320 +#: py/obj.c:322 msgid "can't convert to float" msgstr "" -#: py/obj.c:323 +#: py/obj.c:325 #, c-format msgid "can't convert %s to float" msgstr "" -#: py/obj.c:353 +#: py/obj.c:355 msgid "can't convert to complex" msgstr "" -#: py/obj.c:356 +#: py/obj.c:358 #, c-format msgid "can't convert %s to complex" msgstr "" -#: py/obj.c:371 +#: py/obj.c:373 msgid "expected tuple/list" msgstr "" -#: py/obj.c:374 +#: py/obj.c:376 #, c-format msgid "object '%s' is not a tuple or list" msgstr "" -#: py/obj.c:385 +#: py/obj.c:387 msgid "tuple/list has wrong length" msgstr "" -#: py/obj.c:387 +#: py/obj.c:389 #, c-format msgid "requested length %d but object has length %d" msgstr "" -#: py/obj.c:400 +#: py/obj.c:402 msgid "indices must be integers" msgstr "" -#: py/obj.c:403 +#: py/obj.c:405 msgid "%q indices must be integers, not %s" msgstr "" -#: py/obj.c:423 +#: py/obj.c:425 msgid "%q index out of range" msgstr "" -#: py/obj.c:455 +#: py/obj.c:457 msgid "object has no len" msgstr "" -#: py/obj.c:458 +#: py/obj.c:460 #, c-format msgid "object of type '%s' has no len()" msgstr "" -#: py/obj.c:496 +#: py/obj.c:500 msgid "object does not support item deletion" msgstr "" -#: py/obj.c:499 +#: py/obj.c:503 #, c-format msgid "'%s' object does not support item deletion" msgstr "" -#: py/obj.c:503 +#: py/obj.c:507 msgid "object is not subscriptable" msgstr "" -#: py/obj.c:506 +#: py/obj.c:510 #, c-format msgid "'%s' object is not subscriptable" msgstr "" -#: py/obj.c:510 +#: py/obj.c:514 msgid "object does not support item assignment" msgstr "" -#: py/obj.c:513 +#: py/obj.c:517 #, c-format msgid "'%s' object does not support item assignment" msgstr "" -#: py/obj.c:544 +#: py/obj.c:548 msgid "object with buffer protocol required" msgstr "" @@ -2550,32 +2512,106 @@ msgstr "USB beschäftigt" msgid "USB Error" msgstr "USB Fehler" -#~ msgid "Invalid Service type" -#~ msgstr "Ungültiger Diensttyp" +#: supervisor/shared/safe_mode.c:97 +msgid "You requested starting safe mode by " +msgstr "Du hast das Starten im Sicherheitsmodus ausgelöst durch " -#~ msgid "Can not query for the device address." -#~ msgstr "Kann nicht nach der Geräteadresse suchen." +#: supervisor/shared/safe_mode.c:100 +msgid "To exit, please reset the board without " +msgstr "Zum beenden bitte resette das board ohne " -#~ msgid "Cannot set PPCP parameters." -#~ msgstr "Kann PPCP Parameter nicht setzen." +#: supervisor/shared/safe_mode.c:107 +#, fuzzy +msgid "" +"You are running in safe mode which means something unanticipated happened.\n" +msgstr "Sicherheitsmodus aktiv, etwas wirklich schlechtes ist passiert.\n" -#~ msgid "Cannot apply GAP parameters." -#~ msgstr "Kann GAP Parameter nicht anwenden." +#: supervisor/shared/safe_mode.c:109 +msgid "" +"Looks like our core CircuitPython code crashed hard. Whoops!\n" +"Please file an issue at https://github.com/adafruit/circuitpython/issues\n" +" with the contents of your CIRCUITPY drive and this message:\n" +msgstr "" -#~ msgid "Can not encode UUID, to check length." -#~ msgstr "Kann UUID nicht kodieren, um die Länge zu überprüfen." +#: supervisor/shared/safe_mode.c:111 +msgid "Crash into the HardFault_Handler.\n" +msgstr "" -#~ msgid "Can encode UUID into the advertisement packet." -#~ msgstr "Kann UUID in das advertisement packet kodieren." +#: supervisor/shared/safe_mode.c:113 +msgid "MicroPython NLR jump failed. Likely memory corruption.\n" +msgstr "" -#~ msgid "Can not apply device name in the stack." -#~ msgstr "Der Gerätename kann nicht im Stack verwendet werden." +#: supervisor/shared/safe_mode.c:115 +msgid "MicroPython fatal error.\n" +msgstr "" -#~ msgid "Can not apply advertisement data. status: 0x%02x" -#~ msgstr "Kann advertisement data nicht anwenden. Status: 0x%02x" +#: supervisor/shared/safe_mode.c:118 +#, fuzzy +msgid "" +"The microcontroller's power dipped. Please make sure your power supply " +"provides\n" +"enough power for the whole circuit and press reset (after ejecting " +"CIRCUITPY).\n" +msgstr "" +"Die Stromversorgung des Mikrocontrollers ist eingebrochen. Stelle sicher," +"dass deine Stromversorgung\n" + +#: supervisor/shared/safe_mode.c:120 +msgid "" +"The CircuitPython heap was corrupted because the stack was too small.\n" +"Please increase stack size limits and press reset (after ejecting " +"CIRCUITPY).\n" +"If you didn't change the stack, then file an issue here with the contents of " +"your CIRCUITPY drive:\n" +msgstr "" + +#: supervisor/shared/safe_mode.c:123 +msgid "" +"The reset button was pressed while booting CircuitPython. Press again to " +"exit safe mode.\n" +msgstr "" + +#~ msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n" +#~ msgstr "CircuitPython ist abgestürzt. Ups!\n" + +#~ msgid "" +#~ "Please file an issue here with the contents of your CIRCUITPY drive:\n" +#~ msgstr "" +#~ "Bitte erstelle ein issue hier mit dem Inhalt deines CIRCUITPY-speichers:\n" #~ msgid "Can not add Service." #~ msgstr "Kann den Dienst nicht hinzufügen." +#~ msgid "Can encode UUID into the advertisement packet." +#~ msgstr "Kann UUID in das advertisement packet kodieren." + +#~ msgid "Can not encode UUID, to check length." +#~ msgstr "Kann UUID nicht kodieren, um die Länge zu überprüfen." + #~ msgid "Can not add Characteristic." #~ msgstr "Kann das Merkmal nicht hinzufügen." + +#~ msgid "Can not query for the device address." +#~ msgstr "Kann nicht nach der Geräteadresse suchen." + +#~ msgid "" +#~ "enough power for the whole circuit and press reset (after ejecting " +#~ "CIRCUITPY).\n" +#~ msgstr "" +#~ "genug Strom für den ganzen Schaltkreis liefert und drücke reset (nach dem " +#~ "sicheren Auswerfen von CIRCUITPY.)\n" + +#~ msgid "Cannot set PPCP parameters." +#~ msgstr "Kann PPCP Parameter nicht setzen." + +#~ msgid "Can not apply device name in the stack." +#~ msgstr "Der Gerätename kann nicht im Stack verwendet werden." + +#~ msgid "Cannot apply GAP parameters." +#~ msgstr "Kann GAP Parameter nicht anwenden." + +#~ msgid "Can not apply advertisement data. status: 0x%02x" +#~ msgstr "Kann advertisement data nicht anwenden. Status: 0x%02x" + +#~ msgid "Invalid Service type" +#~ msgstr "Ungültiger Diensttyp" diff --git a/locale/en_US.po b/locale/en_US.po index 9cdb432c95..c780871389 100644 --- a/locale/en_US.po +++ b/locale/en_US.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-12-04 16:17-0500\n" +"POT-Creation-Date: 2018-12-06 17:04-0800\n" "PO-Revision-Date: 2018-07-27 11:55-0700\n" "Last-Translator: \n" "Language-Team: \n" @@ -151,70 +151,37 @@ msgstr "" msgid "script compilation not supported" msgstr "" -#: main.c:155 +#: main.c:150 msgid " output:\n" msgstr "" -#: main.c:169 main.c:242 +#: main.c:164 main.c:237 msgid "" "Auto-reload is on. Simply save files over USB to run them or enter REPL to " "disable.\n" msgstr "" -#: main.c:171 +#: main.c:166 msgid "Running in safe mode! Auto-reload is off.\n" msgstr "" -#: main.c:173 main.c:244 +#: main.c:168 main.c:239 msgid "Auto-reload is off.\n" msgstr "" -#: main.c:187 +#: main.c:182 msgid "Running in safe mode! Not running saved code.\n" msgstr "" -#: main.c:203 +#: main.c:198 msgid "WARNING: Your code filename has two extensions\n" msgstr "" -#: main.c:251 -msgid "You requested starting safe mode by " -msgstr "" - -#: main.c:254 -msgid "To exit, please reset the board without " -msgstr "" - -#: main.c:261 -msgid "" -"You are running in safe mode which means something really bad happened.\n" -msgstr "" - -#: main.c:263 -msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n" -msgstr "" - -#: main.c:264 -msgid "Please file an issue here with the contents of your CIRCUITPY drive:\n" -msgstr "" - -#: main.c:267 -msgid "" -"The microcontroller's power dipped. Please make sure your power supply " -"provides\n" -msgstr "" - -#: main.c:268 -msgid "" -"enough power for the whole circuit and press reset (after ejecting " -"CIRCUITPY).\n" -msgstr "" - -#: main.c:272 +#: main.c:244 msgid "Press any key to enter the REPL. Use CTRL-D to reload." msgstr "" -#: main.c:430 +#: main.c:407 msgid "soft reboot\n" msgstr "" @@ -443,7 +410,7 @@ msgid "pop from an empty PulseIn" msgstr "" #: ports/atmel-samd/common-hal/pulseio/PulseIn.c:237 -#: ports/esp8266/common-hal/pulseio/PulseIn.c:182 py/obj.c:420 +#: ports/esp8266/common-hal/pulseio/PulseIn.c:182 py/obj.c:422 msgid "index out of range" msgstr "" @@ -1349,116 +1316,116 @@ msgstr "" msgid "Invalid argument" msgstr "" -#: py/obj.c:90 +#: py/obj.c:92 msgid "Traceback (most recent call last):\n" msgstr "" -#: py/obj.c:94 +#: py/obj.c:96 msgid " File \"%q\", line %d" msgstr "" -#: py/obj.c:96 +#: py/obj.c:98 msgid " File \"%q\"" msgstr "" -#: py/obj.c:100 +#: py/obj.c:102 msgid ", in %q\n" msgstr "" -#: py/obj.c:257 +#: py/obj.c:259 msgid "can't convert to int" msgstr "" -#: py/obj.c:260 +#: py/obj.c:262 #, c-format msgid "can't convert %s to int" msgstr "" -#: py/obj.c:320 +#: py/obj.c:322 msgid "can't convert to float" msgstr "" -#: py/obj.c:323 +#: py/obj.c:325 #, c-format msgid "can't convert %s to float" msgstr "" -#: py/obj.c:353 +#: py/obj.c:355 msgid "can't convert to complex" msgstr "" -#: py/obj.c:356 +#: py/obj.c:358 #, c-format msgid "can't convert %s to complex" msgstr "" -#: py/obj.c:371 +#: py/obj.c:373 msgid "expected tuple/list" msgstr "" -#: py/obj.c:374 +#: py/obj.c:376 #, c-format msgid "object '%s' is not a tuple or list" msgstr "" -#: py/obj.c:385 +#: py/obj.c:387 msgid "tuple/list has wrong length" msgstr "" -#: py/obj.c:387 +#: py/obj.c:389 #, c-format msgid "requested length %d but object has length %d" msgstr "" -#: py/obj.c:400 +#: py/obj.c:402 msgid "indices must be integers" msgstr "" -#: py/obj.c:403 +#: py/obj.c:405 msgid "%q indices must be integers, not %s" msgstr "" -#: py/obj.c:423 +#: py/obj.c:425 msgid "%q index out of range" msgstr "" -#: py/obj.c:455 +#: py/obj.c:457 msgid "object has no len" msgstr "" -#: py/obj.c:458 +#: py/obj.c:460 #, c-format msgid "object of type '%s' has no len()" msgstr "" -#: py/obj.c:496 +#: py/obj.c:500 msgid "object does not support item deletion" msgstr "" -#: py/obj.c:499 +#: py/obj.c:503 #, c-format msgid "'%s' object does not support item deletion" msgstr "" -#: py/obj.c:503 +#: py/obj.c:507 msgid "object is not subscriptable" msgstr "" -#: py/obj.c:506 +#: py/obj.c:510 #, c-format msgid "'%s' object is not subscriptable" msgstr "" -#: py/obj.c:510 +#: py/obj.c:514 msgid "object does not support item assignment" msgstr "" -#: py/obj.c:513 +#: py/obj.c:517 #, c-format msgid "'%s' object does not support item assignment" msgstr "" -#: py/obj.c:544 +#: py/obj.c:548 msgid "object with buffer protocol required" msgstr "" @@ -2524,3 +2491,58 @@ msgstr "" #: shared-module/usb_hid/Device.c:59 msgid "USB Error" msgstr "" + +#: supervisor/shared/safe_mode.c:97 +msgid "You requested starting safe mode by " +msgstr "" + +#: supervisor/shared/safe_mode.c:100 +msgid "To exit, please reset the board without " +msgstr "" + +#: supervisor/shared/safe_mode.c:107 +msgid "" +"You are running in safe mode which means something unanticipated happened.\n" +msgstr "" + +#: supervisor/shared/safe_mode.c:109 +msgid "" +"Looks like our core CircuitPython code crashed hard. Whoops!\n" +"Please file an issue at https://github.com/adafruit/circuitpython/issues\n" +" with the contents of your CIRCUITPY drive and this message:\n" +msgstr "" + +#: supervisor/shared/safe_mode.c:111 +msgid "Crash into the HardFault_Handler.\n" +msgstr "" + +#: supervisor/shared/safe_mode.c:113 +msgid "MicroPython NLR jump failed. Likely memory corruption.\n" +msgstr "" + +#: supervisor/shared/safe_mode.c:115 +msgid "MicroPython fatal error.\n" +msgstr "" + +#: supervisor/shared/safe_mode.c:118 +msgid "" +"The microcontroller's power dipped. Please make sure your power supply " +"provides\n" +"enough power for the whole circuit and press reset (after ejecting " +"CIRCUITPY).\n" +msgstr "" + +#: supervisor/shared/safe_mode.c:120 +msgid "" +"The CircuitPython heap was corrupted because the stack was too small.\n" +"Please increase stack size limits and press reset (after ejecting " +"CIRCUITPY).\n" +"If you didn't change the stack, then file an issue here with the contents of " +"your CIRCUITPY drive:\n" +msgstr "" + +#: supervisor/shared/safe_mode.c:123 +msgid "" +"The reset button was pressed while booting CircuitPython. Press again to " +"exit safe mode.\n" +msgstr "" diff --git a/locale/es.po b/locale/es.po index 1937229e32..0251a9d83a 100644 --- a/locale/es.po +++ b/locale/es.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-12-04 16:17-0500\n" +"POT-Creation-Date: 2018-12-06 17:04-0800\n" "PO-Revision-Date: 2018-08-24 22:56-0500\n" "Last-Translator: \n" "Language-Team: \n" @@ -152,11 +152,11 @@ msgstr "argumentos inválidos" msgid "script compilation not supported" msgstr "script de compilación no soportado" -#: main.c:155 +#: main.c:150 msgid " output:\n" msgstr " salida:\n" -#: main.c:169 main.c:242 +#: main.c:164 main.c:237 msgid "" "Auto-reload is on. Simply save files over USB to run them or enter REPL to " "disable.\n" @@ -164,70 +164,28 @@ msgstr "" "Auto-reload habilitado. Simplemente guarda los archivos via USB para " "ejecutarlos o entra al REPL para desabilitarlos.\n" -#: main.c:171 +#: main.c:166 msgid "Running in safe mode! Auto-reload is off.\n" msgstr "Ejecutando en modo seguro! La auto-recarga esta deshabilitada.\n" -#: main.c:173 main.c:244 +#: main.c:168 main.c:239 msgid "Auto-reload is off.\n" msgstr "Auto-recarga deshabilitada.\n" -#: main.c:187 +#: main.c:182 msgid "Running in safe mode! Not running saved code.\n" msgstr "Ejecutando en modo seguro! No se esta ejecutando el código guardado.\n" -#: main.c:203 +#: main.c:198 msgid "WARNING: Your code filename has two extensions\n" msgstr "ADVERTENCIA: El nombre de archivo de tu código tiene dos extensiones\n" -#: main.c:251 -msgid "You requested starting safe mode by " -msgstr "Solicitaste iniciar en modo seguro por " - -#: main.c:254 -msgid "To exit, please reset the board without " -msgstr "Para salir, por favor reinicia la tarjeta sin " - -#: main.c:261 -msgid "" -"You are running in safe mode which means something really bad happened.\n" -msgstr "" -"Estás ejecutando en modo seguro, lo cual significa que algo realmente malo " -"ha sucedido.\n" - -#: main.c:263 -msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n" -msgstr "Parece que nuestro código CircuitPython dejó de funcionar. Whoops!\n" - -#: main.c:264 -#, fuzzy -msgid "Please file an issue here with the contents of your CIRCUITPY drive:\n" -msgstr "" -"Por favor registra un issue en la siguiente URL con el contenidos de tu " -"unidad de almacenamiento CIRCUITPY:\n" - -#: main.c:267 -msgid "" -"The microcontroller's power dipped. Please make sure your power supply " -"provides\n" -msgstr "" -"La alimentación del microcontrolador cayó. Por favor asegurate de que tu " -"fuente de alimentación provee\n" - -#: main.c:268 -msgid "" -"enough power for the whole circuit and press reset (after ejecting " -"CIRCUITPY).\n" -msgstr "" -"suficiente poder para todo el circuito y presiona reset (después de expulsar " -"CIRCUITPY).\n" - -#: main.c:272 +#: main.c:244 msgid "Press any key to enter the REPL. Use CTRL-D to reload." msgstr "" "Presiona cualquier tecla para entrar al REPL. Usa CTRL-D para recargar." -#: main.c:430 +#: main.c:407 msgid "soft reboot\n" msgstr "reinicio suave\n" @@ -458,7 +416,7 @@ msgid "pop from an empty PulseIn" msgstr "pop de un PulseIn vacío" #: ports/atmel-samd/common-hal/pulseio/PulseIn.c:237 -#: ports/esp8266/common-hal/pulseio/PulseIn.c:182 py/obj.c:420 +#: ports/esp8266/common-hal/pulseio/PulseIn.c:182 py/obj.c:422 msgid "index out of range" msgstr "index fuera de rango" @@ -1378,116 +1336,116 @@ msgstr "Operación no soportada" msgid "Invalid argument" msgstr "Argumento inválido" -#: py/obj.c:90 +#: py/obj.c:92 msgid "Traceback (most recent call last):\n" msgstr "" -#: py/obj.c:94 +#: py/obj.c:96 msgid " File \"%q\", line %d" msgstr " Archivo \"%q\", línea %d" -#: py/obj.c:96 +#: py/obj.c:98 msgid " File \"%q\"" msgstr " Archivo \"%q\"" -#: py/obj.c:100 +#: py/obj.c:102 msgid ", in %q\n" msgstr ", en %q\n" -#: py/obj.c:257 +#: py/obj.c:259 msgid "can't convert to int" msgstr "no se puede convertir a int" -#: py/obj.c:260 +#: py/obj.c:262 #, c-format msgid "can't convert %s to int" msgstr "no se puede convertir %s a int" -#: py/obj.c:320 +#: py/obj.c:322 msgid "can't convert to float" msgstr "no se puede convertir a float" -#: py/obj.c:323 +#: py/obj.c:325 #, c-format msgid "can't convert %s to float" msgstr "no se puede convertir %s a float" -#: py/obj.c:353 +#: py/obj.c:355 msgid "can't convert to complex" msgstr "no se puede convertir a complejo" -#: py/obj.c:356 +#: py/obj.c:358 #, c-format msgid "can't convert %s to complex" msgstr "no se puede convertir %s a complejo" -#: py/obj.c:371 +#: py/obj.c:373 msgid "expected tuple/list" msgstr "tupla/lista esperada" -#: py/obj.c:374 +#: py/obj.c:376 #, c-format msgid "object '%s' is not a tuple or list" msgstr "el objeto '%s' no es una tupla o lista" -#: py/obj.c:385 +#: py/obj.c:387 msgid "tuple/list has wrong length" msgstr "tupla/lista tiene una longitud incorrecta" -#: py/obj.c:387 +#: py/obj.c:389 #, c-format msgid "requested length %d but object has length %d" msgstr "longitud solicitada %d pero el objeto tiene longitud %d" -#: py/obj.c:400 +#: py/obj.c:402 msgid "indices must be integers" msgstr "indices deben ser enteros" -#: py/obj.c:403 +#: py/obj.c:405 msgid "%q indices must be integers, not %s" msgstr "%q indices deben ser enteros, no %s" -#: py/obj.c:423 +#: py/obj.c:425 msgid "%q index out of range" msgstr "%w indice fuera de rango" -#: py/obj.c:455 +#: py/obj.c:457 msgid "object has no len" msgstr "el objeto no tiene longitud" -#: py/obj.c:458 +#: py/obj.c:460 #, c-format msgid "object of type '%s' has no len()" msgstr "el objeto de tipo '%s' no tiene len()" -#: py/obj.c:496 +#: py/obj.c:500 msgid "object does not support item deletion" msgstr "object no soporta la eliminación de elementos" -#: py/obj.c:499 +#: py/obj.c:503 #, c-format msgid "'%s' object does not support item deletion" msgstr "objeto '%s' no soporta la eliminación de elementos" -#: py/obj.c:503 +#: py/obj.c:507 msgid "object is not subscriptable" msgstr "" -#: py/obj.c:506 +#: py/obj.c:510 #, c-format msgid "'%s' object is not subscriptable" msgstr "" -#: py/obj.c:510 +#: py/obj.c:514 msgid "object does not support item assignment" msgstr "el objeto no soporta la asignación de elementos" -#: py/obj.c:513 +#: py/obj.c:517 #, c-format msgid "'%s' object does not support item assignment" msgstr "el objeto '%s' no soporta la asignación de elementos" -#: py/obj.c:544 +#: py/obj.c:548 msgid "object with buffer protocol required" msgstr "objeto con protocolo de buffer requerido" @@ -2566,9 +2524,100 @@ msgstr "USB ocupado" msgid "USB Error" msgstr "Error USB" +#: supervisor/shared/safe_mode.c:97 +msgid "You requested starting safe mode by " +msgstr "Solicitaste iniciar en modo seguro por " + +#: supervisor/shared/safe_mode.c:100 +msgid "To exit, please reset the board without " +msgstr "Para salir, por favor reinicia la tarjeta sin " + +#: supervisor/shared/safe_mode.c:107 +#, fuzzy +msgid "" +"You are running in safe mode which means something unanticipated happened.\n" +msgstr "" +"Estás ejecutando en modo seguro, lo cual significa que algo realmente malo " +"ha sucedido.\n" + +#: supervisor/shared/safe_mode.c:109 +msgid "" +"Looks like our core CircuitPython code crashed hard. Whoops!\n" +"Please file an issue at https://github.com/adafruit/circuitpython/issues\n" +" with the contents of your CIRCUITPY drive and this message:\n" +msgstr "" + +#: supervisor/shared/safe_mode.c:111 +msgid "Crash into the HardFault_Handler.\n" +msgstr "" + +#: supervisor/shared/safe_mode.c:113 +msgid "MicroPython NLR jump failed. Likely memory corruption.\n" +msgstr "" + +#: supervisor/shared/safe_mode.c:115 +msgid "MicroPython fatal error.\n" +msgstr "" + +#: supervisor/shared/safe_mode.c:118 +#, fuzzy +msgid "" +"The microcontroller's power dipped. Please make sure your power supply " +"provides\n" +"enough power for the whole circuit and press reset (after ejecting " +"CIRCUITPY).\n" +msgstr "" +"La alimentación del microcontrolador cayó. Por favor asegurate de que tu " +"fuente de alimentación provee\n" + +#: supervisor/shared/safe_mode.c:120 +msgid "" +"The CircuitPython heap was corrupted because the stack was too small.\n" +"Please increase stack size limits and press reset (after ejecting " +"CIRCUITPY).\n" +"If you didn't change the stack, then file an issue here with the contents of " +"your CIRCUITPY drive:\n" +msgstr "" + +#: supervisor/shared/safe_mode.c:123 +msgid "" +"The reset button was pressed while booting CircuitPython. Press again to " +"exit safe mode.\n" +msgstr "" + +#, fuzzy +#~ msgid "" +#~ "Please file an issue here with the contents of your CIRCUITPY drive:\n" +#~ msgstr "" +#~ "Por favor registra un issue en la siguiente URL con el contenidos de tu " +#~ "unidad de almacenamiento CIRCUITPY:\n" + +#~ msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n" +#~ msgstr "" +#~ "Parece que nuestro código CircuitPython dejó de funcionar. Whoops!\n" + +#~ msgid "" +#~ "enough power for the whole circuit and press reset (after ejecting " +#~ "CIRCUITPY).\n" +#~ msgstr "" +#~ "suficiente poder para todo el circuito y presiona reset (después de " +#~ "expulsar CIRCUITPY).\n" + +#~ msgid "Cannot set PPCP parameters." +#~ msgstr "No se pueden establecer los parámetros PPCP." + +#~ msgid "Can not apply advertisement data. status: 0x%02x" +#~ msgstr "No se puede aplicar los datos de anuncio. status: 0x%02x" + #~ msgid "Baud rate too high for this SPI peripheral" #~ msgstr "Baud rate demasiado alto para este periférico SPI" +#~ msgid "Can not query for the device address." +#~ msgstr "No se puede consultar la dirección del dispositivo." + +#~ msgid "Can not add Service." +#~ msgstr "No se puede agregar el Servicio." + #~ msgid "Invalid Service type" #~ msgstr "Tipo de Servicio inválido" @@ -2578,12 +2627,6 @@ msgstr "Error USB" #~ msgid "Can not encode UUID, to check length." #~ msgstr "No se puede codificar el UUID, para revisar la longitud." -#~ msgid "Can not query for the device address." -#~ msgstr "No se puede consultar la dirección del dispositivo." - -#~ msgid "Can not apply advertisement data. status: 0x%02x" -#~ msgstr "No se puede aplicar los datos de anuncio. status: 0x%02x" - #~ msgid "Can not apply device name in the stack." #~ msgstr "No se puede aplicar el nombre del dispositivo en el stack." @@ -2592,9 +2635,3 @@ msgstr "Error USB" #~ msgid "Cannot apply GAP parameters." #~ msgstr "No se pueden aplicar los parámetros GAP." - -#~ msgid "Cannot set PPCP parameters." -#~ msgstr "No se pueden establecer los parámetros PPCP." - -#~ msgid "Can not add Service." -#~ msgstr "No se puede agregar el Servicio." diff --git a/locale/fil.po b/locale/fil.po index 0ff8f7fc53..c171975b69 100644 --- a/locale/fil.po +++ b/locale/fil.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-12-04 16:17-0500\n" +"POT-Creation-Date: 2018-12-06 17:04-0800\n" "PO-Revision-Date: 2018-08-30 23:04-0700\n" "Last-Translator: Timothy \n" "Language-Team: fil\n" @@ -151,11 +151,11 @@ msgstr "mali ang mga argumento" msgid "script compilation not supported" msgstr "script kompilasyon hindi supportado" -#: main.c:155 +#: main.c:150 msgid " output:\n" msgstr " output:\n" -#: main.c:169 main.c:242 +#: main.c:164 main.c:237 msgid "" "Auto-reload is on. Simply save files over USB to run them or enter REPL to " "disable.\n" @@ -163,70 +163,29 @@ msgstr "" "Ang awtomatikong pag re-reload ay ON. i-save lamang ang mga files sa USB " "para patakbuhin sila o pasukin ang REPL para i-disable ito.\n" -#: main.c:171 +#: main.c:166 msgid "Running in safe mode! Auto-reload is off.\n" msgstr "Tumatakbo sa safe mode! Awtomatikong pag re-reload ay OFF.\n" -#: main.c:173 main.c:244 +#: main.c:168 main.c:239 msgid "Auto-reload is off.\n" msgstr "Awtomatikong pag re-reload ay OFF.\n" -#: main.c:187 +#: main.c:182 msgid "Running in safe mode! Not running saved code.\n" msgstr "Tumatakbo sa safe mode! Hindi tumatakbo ang nai-save na code.\n" -#: main.c:203 +#: main.c:198 msgid "WARNING: Your code filename has two extensions\n" msgstr "BABALA: Ang pangalan ng file ay may dalawang extension\n" -#: main.c:251 -msgid "You requested starting safe mode by " -msgstr "Ikaw ang humiling sa safe mode sa pamamagitan ng " - -#: main.c:254 -msgid "To exit, please reset the board without " -msgstr "Para lumabas, paki-reset ang board na wala ang " - -#: main.c:261 -msgid "" -"You are running in safe mode which means something really bad happened.\n" -msgstr "" -"Ikaw ay tumatakbo sa safe mode, ang ibig sabihin nito ay may masamang " -"nangyari.\n" - -#: main.c:263 -msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n" -msgstr "Mukhang ang core CircuitPython code ay nag-crash ng malakas. Aray!\n" - -#: main.c:264 -msgid "Please file an issue here with the contents of your CIRCUITPY drive:\n" -msgstr "" -"Mag-file ng isang isyu dito gamit ang mga nilalaman ng iyong CIRCUITPY " -"drive:\n" - -#: main.c:267 -msgid "" -"The microcontroller's power dipped. Please make sure your power supply " -"provides\n" -msgstr "" -"Ang kapangyarihan ng mikrokontroller ay bumaba. Mangyaring suriin ang power " -"supply \n" - -#: main.c:268 -msgid "" -"enough power for the whole circuit and press reset (after ejecting " -"CIRCUITPY).\n" -msgstr "" -"ay nagbibigay ng sapat na power para sa buong circuit at i-press ang reset " -"(pagkatapos i-eject ang CIRCUITPY).\n" - -#: main.c:272 +#: main.c:244 msgid "Press any key to enter the REPL. Use CTRL-D to reload." msgstr "" "Pindutin ang anumang key upang ipasok ang REPL. Gamitin ang CTRL-D upang i-" "reload." -#: main.c:430 +#: main.c:407 msgid "soft reboot\n" msgstr "malambot na reboot\n" @@ -455,7 +414,7 @@ msgid "pop from an empty PulseIn" msgstr "pop mula sa walang laman na PulseIn" #: ports/atmel-samd/common-hal/pulseio/PulseIn.c:237 -#: ports/esp8266/common-hal/pulseio/PulseIn.c:182 py/obj.c:420 +#: ports/esp8266/common-hal/pulseio/PulseIn.c:182 py/obj.c:422 msgid "index out of range" msgstr "index wala sa sakop" @@ -1380,116 +1339,116 @@ msgstr "Hindi sinusuportahang operasyon" msgid "Invalid argument" msgstr "Maling argumento" -#: py/obj.c:90 +#: py/obj.c:92 msgid "Traceback (most recent call last):\n" msgstr "Traceback (pinakahuling huling tawag): \n" -#: py/obj.c:94 +#: py/obj.c:96 msgid " File \"%q\", line %d" msgstr " File \"%q\", line %d" -#: py/obj.c:96 +#: py/obj.c:98 msgid " File \"%q\"" msgstr " File \"%q\"" -#: py/obj.c:100 +#: py/obj.c:102 msgid ", in %q\n" msgstr ", sa %q\n" -#: py/obj.c:257 +#: py/obj.c:259 msgid "can't convert to int" msgstr "hindi ma-convert sa int" -#: py/obj.c:260 +#: py/obj.c:262 #, c-format msgid "can't convert %s to int" msgstr "hindi ma-convert %s sa int" -#: py/obj.c:320 +#: py/obj.c:322 msgid "can't convert to float" msgstr "hindi ma-convert sa float" -#: py/obj.c:323 +#: py/obj.c:325 #, c-format msgid "can't convert %s to float" msgstr "hindi ma-convert %s sa int" -#: py/obj.c:353 +#: py/obj.c:355 msgid "can't convert to complex" msgstr "hindi ma-convert sa complex" -#: py/obj.c:356 +#: py/obj.c:358 #, c-format msgid "can't convert %s to complex" msgstr "hindi ma-convert %s sa complex" -#: py/obj.c:371 +#: py/obj.c:373 msgid "expected tuple/list" msgstr "umaasa ng tuple/list" -#: py/obj.c:374 +#: py/obj.c:376 #, c-format msgid "object '%s' is not a tuple or list" msgstr "object '%s' ay hindi tuple o list" -#: py/obj.c:385 +#: py/obj.c:387 msgid "tuple/list has wrong length" msgstr "mali ang haba ng tuple/list" -#: py/obj.c:387 +#: py/obj.c:389 #, c-format msgid "requested length %d but object has length %d" msgstr "hiniling ang haba %d ngunit may haba ang object na %d" -#: py/obj.c:400 +#: py/obj.c:402 msgid "indices must be integers" msgstr "ang mga indeks ay dapat na integer" -#: py/obj.c:403 +#: py/obj.c:405 msgid "%q indices must be integers, not %s" msgstr "%q indeks ay dapat integers, hindi %s" -#: py/obj.c:423 +#: py/obj.c:425 msgid "%q index out of range" msgstr "%q indeks wala sa sakop" -#: py/obj.c:455 +#: py/obj.c:457 msgid "object has no len" msgstr "object walang len" -#: py/obj.c:458 +#: py/obj.c:460 #, c-format msgid "object of type '%s' has no len()" msgstr "object na type '%s' walang len()" -#: py/obj.c:496 +#: py/obj.c:500 msgid "object does not support item deletion" msgstr "ang object ay hindi sumusuporta sa pagbura ng item" -#: py/obj.c:499 +#: py/obj.c:503 #, c-format msgid "'%s' object does not support item deletion" msgstr "'%s' object ay hindi sumusuporta sa pagtanggal ng item" -#: py/obj.c:503 +#: py/obj.c:507 msgid "object is not subscriptable" msgstr "ang bagay ay hindi maaaring ma-subscript" -#: py/obj.c:506 +#: py/obj.c:510 #, c-format msgid "'%s' object is not subscriptable" msgstr "'%s' object ay hindi maaaring i-subscript" -#: py/obj.c:510 +#: py/obj.c:514 msgid "object does not support item assignment" msgstr "ang object na '%s' ay hindi maaaring i-subscript" -#: py/obj.c:513 +#: py/obj.c:517 #, c-format msgid "'%s' object does not support item assignment" msgstr "'%s' object hindi sumusuporta ng item assignment" -#: py/obj.c:544 +#: py/obj.c:548 msgid "object with buffer protocol required" msgstr "object na may buffer protocol kinakailangan" @@ -2598,10 +2557,100 @@ msgstr "Busy ang USB" msgid "USB Error" msgstr "May pagkakamali ang USB" +#: supervisor/shared/safe_mode.c:97 +msgid "You requested starting safe mode by " +msgstr "Ikaw ang humiling sa safe mode sa pamamagitan ng " + +#: supervisor/shared/safe_mode.c:100 +msgid "To exit, please reset the board without " +msgstr "Para lumabas, paki-reset ang board na wala ang " + +#: supervisor/shared/safe_mode.c:107 +#, fuzzy +msgid "" +"You are running in safe mode which means something unanticipated happened.\n" +msgstr "" +"Ikaw ay tumatakbo sa safe mode, ang ibig sabihin nito ay may masamang " +"nangyari.\n" + +#: supervisor/shared/safe_mode.c:109 +msgid "" +"Looks like our core CircuitPython code crashed hard. Whoops!\n" +"Please file an issue at https://github.com/adafruit/circuitpython/issues\n" +" with the contents of your CIRCUITPY drive and this message:\n" +msgstr "" + +#: supervisor/shared/safe_mode.c:111 +msgid "Crash into the HardFault_Handler.\n" +msgstr "" + +#: supervisor/shared/safe_mode.c:113 +msgid "MicroPython NLR jump failed. Likely memory corruption.\n" +msgstr "" + +#: supervisor/shared/safe_mode.c:115 +msgid "MicroPython fatal error.\n" +msgstr "" + +#: supervisor/shared/safe_mode.c:118 +#, fuzzy +msgid "" +"The microcontroller's power dipped. Please make sure your power supply " +"provides\n" +"enough power for the whole circuit and press reset (after ejecting " +"CIRCUITPY).\n" +msgstr "" +"Ang kapangyarihan ng mikrokontroller ay bumaba. Mangyaring suriin ang power " +"supply \n" + +#: supervisor/shared/safe_mode.c:120 +msgid "" +"The CircuitPython heap was corrupted because the stack was too small.\n" +"Please increase stack size limits and press reset (after ejecting " +"CIRCUITPY).\n" +"If you didn't change the stack, then file an issue here with the contents of " +"your CIRCUITPY drive:\n" +msgstr "" + +#: supervisor/shared/safe_mode.c:123 +msgid "" +"The reset button was pressed while booting CircuitPython. Press again to " +"exit safe mode.\n" +msgstr "" + +#~ msgid "" +#~ "Please file an issue here with the contents of your CIRCUITPY drive:\n" +#~ msgstr "" +#~ "Mag-file ng isang isyu dito gamit ang mga nilalaman ng iyong CIRCUITPY " +#~ "drive:\n" + +#~ msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n" +#~ msgstr "" +#~ "Mukhang ang core CircuitPython code ay nag-crash ng malakas. Aray!\n" + +#~ msgid "" +#~ "enough power for the whole circuit and press reset (after ejecting " +#~ "CIRCUITPY).\n" +#~ msgstr "" +#~ "ay nagbibigay ng sapat na power para sa buong circuit at i-press ang " +#~ "reset (pagkatapos i-eject ang CIRCUITPY).\n" + +#~ msgid "Cannot set PPCP parameters." +#~ msgstr "Hindi ma-set ang PPCP parameters." + +#~ msgid "Can not apply advertisement data. status: 0x%02x" +#~ msgstr "Hindi ma i-apply ang advertisement data. status: 0x%02x" + #, fuzzy #~ msgid "palette must be displayio.Palette" #~ msgstr "ang palette ay dapat 32 bytes ang haba" +#~ msgid "Can not query for the device address." +#~ msgstr "Hindi maaaring mag-query para sa address ng device." + +#~ msgid "Can not add Service." +#~ msgstr "Hindi maidaragdag ang serbisyo." + #~ msgid "Invalid Service type" #~ msgstr "Mali ang tipo ng serbisyo" @@ -2611,12 +2660,6 @@ msgstr "May pagkakamali ang USB" #~ msgid "Can not encode UUID, to check length." #~ msgstr "Hindi ma-encode UUID, para suriin ang haba." -#~ msgid "Can not query for the device address." -#~ msgstr "Hindi maaaring mag-query para sa address ng device." - -#~ msgid "Can not apply advertisement data. status: 0x%02x" -#~ msgstr "Hindi ma i-apply ang advertisement data. status: 0x%02x" - #~ msgid "Can not apply device name in the stack." #~ msgstr "Hindi maaaring ma-aplay ang device name sa stack." @@ -2625,9 +2668,3 @@ msgstr "May pagkakamali ang USB" #~ msgid "Cannot apply GAP parameters." #~ msgstr "Hindi ma-apply ang GAP parameters." - -#~ msgid "Cannot set PPCP parameters." -#~ msgstr "Hindi ma-set ang PPCP parameters." - -#~ msgid "Can not add Service." -#~ msgstr "Hindi maidaragdag ang serbisyo." diff --git a/locale/fr.po b/locale/fr.po index 48d763c9f2..badf45555d 100644 --- a/locale/fr.po +++ b/locale/fr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: 0.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-12-04 16:17-0500\n" +"POT-Creation-Date: 2018-12-06 17:04-0800\n" "PO-Revision-Date: 2018-08-14 11:01+0200\n" "Last-Translator: Pierrick Couturier \n" "Language-Team: fr\n" @@ -150,11 +150,11 @@ msgstr "arguments invalides" msgid "script compilation not supported" msgstr "compilation du script non supporté" -#: main.c:155 +#: main.c:150 msgid " output:\n" msgstr " sortie:\n" -#: main.c:169 main.c:242 +#: main.c:164 main.c:237 msgid "" "Auto-reload is on. Simply save files over USB to run them or enter REPL to " "disable.\n" @@ -162,66 +162,27 @@ msgstr "" "Auto-chargement activé. Copiez simplement les fichiers en USB pour les " "lancer ou entrez sur REPL pour le désactiver.\n" -#: main.c:171 +#: main.c:166 msgid "Running in safe mode! Auto-reload is off.\n" msgstr "Mode sans-échec. Auto-rechargement désactivé.\n" -#: main.c:173 main.c:244 +#: main.c:168 main.c:239 msgid "Auto-reload is off.\n" msgstr "Auto-rechargement désactivé.\n" -#: main.c:187 +#: main.c:182 msgid "Running in safe mode! Not running saved code.\n" msgstr "Mode sans-échec! Le code sauvegardé ne s'éxecute pas.\n" -#: main.c:203 +#: main.c:198 msgid "WARNING: Your code filename has two extensions\n" msgstr "ATTENTION: le nom de fichier de votre code a deux extensions\n" -#: main.c:251 -msgid "You requested starting safe mode by " -msgstr "Vous avez demandé à démarrer en mode sans-échec par " - -#: main.c:254 -msgid "To exit, please reset the board without " -msgstr "Pour quitter, redémarrez la carte SVP sans " - -#: main.c:261 -msgid "" -"You are running in safe mode which means something really bad happened.\n" -msgstr "" -"Vous êtes en mode sans-échec ce qui signifie que quelque chose demauvais est " -"arrivé.\n" - -#: main.c:263 -msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n" -msgstr "Il semblerait que votre code CircuitPython a durement planté. Oups!\n" - -#: main.c:264 -msgid "Please file an issue here with the contents of your CIRCUITPY drive:\n" -msgstr "SVP, remontez le problème là avec le contenu du lecteur CIRCUITPY:\n" - -#: main.c:267 -msgid "" -"The microcontroller's power dipped. Please make sure your power supply " -"provides\n" -msgstr "" -"L'alimentation du microcontroleur a chuté. Merci de vérifier que votre " -"alimentation fournit\n" - -#: main.c:268 -msgid "" -"enough power for the whole circuit and press reset (after ejecting " -"CIRCUITPY).\n" -msgstr "" -"assez de puissance pour l'ensemble du circuit et appuyez sur 'reset' (après " -"avoir éjecter CIRCUITPY).\n" - -#: main.c:272 +#: main.c:244 msgid "Press any key to enter the REPL. Use CTRL-D to reload." msgstr "Appuyez sur une touche pour entrer sur REPL ou CTRL-D pour recharger." -#: main.c:430 +#: main.c:407 msgid "soft reboot\n" msgstr "redémarrage logiciel\n" @@ -451,7 +412,7 @@ msgid "pop from an empty PulseIn" msgstr "'pop' d'une entrée PulseIn vide" #: ports/atmel-samd/common-hal/pulseio/PulseIn.c:237 -#: ports/esp8266/common-hal/pulseio/PulseIn.c:182 py/obj.c:420 +#: ports/esp8266/common-hal/pulseio/PulseIn.c:182 py/obj.c:422 msgid "index out of range" msgstr "index hors gamme" @@ -1370,116 +1331,116 @@ msgstr "Opération non supportée" msgid "Invalid argument" msgstr "Argument invalide" -#: py/obj.c:90 +#: py/obj.c:92 msgid "Traceback (most recent call last):\n" msgstr "Trace (appels les plus récents en dernier):\n" -#: py/obj.c:94 +#: py/obj.c:96 msgid " File \"%q\", line %d" msgstr " Fichier \"%q\", ligne %d" -#: py/obj.c:96 +#: py/obj.c:98 msgid " File \"%q\"" msgstr " Fichier \"%q\"" -#: py/obj.c:100 +#: py/obj.c:102 msgid ", in %q\n" msgstr ", dans %q\n" -#: py/obj.c:257 +#: py/obj.c:259 msgid "can't convert to int" msgstr "ne peut convertir en entier int" -#: py/obj.c:260 +#: py/obj.c:262 #, c-format msgid "can't convert %s to int" msgstr "ne peut convertir %s en entier int" -#: py/obj.c:320 +#: py/obj.c:322 msgid "can't convert to float" msgstr "ne peut convertir en nombre à virgule flottante (float)" -#: py/obj.c:323 +#: py/obj.c:325 #, c-format msgid "can't convert %s to float" msgstr "ne peut convertir %s en nombre à virgule flottante (float)" -#: py/obj.c:353 +#: py/obj.c:355 msgid "can't convert to complex" msgstr "ne peut convertir en nombre complexe" -#: py/obj.c:356 +#: py/obj.c:358 #, c-format msgid "can't convert %s to complex" msgstr "ne peut convertir %s en nombre complexe" -#: py/obj.c:371 +#: py/obj.c:373 msgid "expected tuple/list" msgstr "un tuple ou une liste est attendu" -#: py/obj.c:374 +#: py/obj.c:376 #, c-format msgid "object '%s' is not a tuple or list" msgstr "l'objet '%s' n'est pas un tuple ou une liste" -#: py/obj.c:385 +#: py/obj.c:387 msgid "tuple/list has wrong length" msgstr "tuple/liste a une mauvaise longueur" -#: py/obj.c:387 +#: py/obj.c:389 #, c-format msgid "requested length %d but object has length %d" msgstr "la longueur requise est %d mais l'objet est long de %d" -#: py/obj.c:400 +#: py/obj.c:402 msgid "indices must be integers" msgstr "les indices doivent être des entiers" -#: py/obj.c:403 +#: py/obj.c:405 msgid "%q indices must be integers, not %s" msgstr "les indices %q doivent être des entiers, pas %s" -#: py/obj.c:423 +#: py/obj.c:425 msgid "%q index out of range" msgstr "index %q hors gamme" -#: py/obj.c:455 +#: py/obj.c:457 msgid "object has no len" msgstr "l'objet n'a pas de len" -#: py/obj.c:458 +#: py/obj.c:460 #, c-format msgid "object of type '%s' has no len()" msgstr "l'objet de type '%s' n'a pas de len()" -#: py/obj.c:496 +#: py/obj.c:500 msgid "object does not support item deletion" msgstr "l'objet ne supporte pas la suppression d'éléments" -#: py/obj.c:499 +#: py/obj.c:503 #, c-format msgid "'%s' object does not support item deletion" msgstr "l'objet '%s' ne supporte pas la suppression d'éléments" -#: py/obj.c:503 +#: py/obj.c:507 msgid "object is not subscriptable" msgstr "l'objet n'est pas sous-scriptable" -#: py/obj.c:506 +#: py/obj.c:510 #, c-format msgid "'%s' object is not subscriptable" msgstr "l'objet '%s' n'est pas sous-scriptable" -#: py/obj.c:510 +#: py/obj.c:514 msgid "object does not support item assignment" msgstr "l'objet ne supporte pas l'assignation d'éléments" -#: py/obj.c:513 +#: py/obj.c:517 #, c-format msgid "'%s' object does not support item assignment" msgstr "l'objet '%s' ne supporte pas l'assignation d'éléments" -#: py/obj.c:544 +#: py/obj.c:548 msgid "object with buffer protocol required" msgstr "un objet avec un protocol de tampon est nécessaire" @@ -2596,34 +2557,111 @@ msgstr "USB occupé" msgid "USB Error" msgstr "Erreur USB" +#: supervisor/shared/safe_mode.c:97 +msgid "You requested starting safe mode by " +msgstr "Vous avez demandé à démarrer en mode sans-échec par " + +#: supervisor/shared/safe_mode.c:100 +msgid "To exit, please reset the board without " +msgstr "Pour quitter, redémarrez la carte SVP sans " + +#: supervisor/shared/safe_mode.c:107 #, fuzzy -#~ msgid "palette must be displayio.Palette" -#~ msgstr "palettre doit être displayio.Palette" +msgid "" +"You are running in safe mode which means something unanticipated happened.\n" +msgstr "" +"Vous êtes en mode sans-échec ce qui signifie que quelque chose demauvais est " +"arrivé.\n" -#~ msgid "Can not query for the device address." -#~ msgstr "Impossible d'obtenir l'adresse du périphérique" +#: supervisor/shared/safe_mode.c:109 +msgid "" +"Looks like our core CircuitPython code crashed hard. Whoops!\n" +"Please file an issue at https://github.com/adafruit/circuitpython/issues\n" +" with the contents of your CIRCUITPY drive and this message:\n" +msgstr "" -#~ msgid "Cannot set PPCP parameters." -#~ msgstr "Impossible d'appliquer les paramètres PPCP" +#: supervisor/shared/safe_mode.c:111 +msgid "Crash into the HardFault_Handler.\n" +msgstr "" -#~ msgid "Cannot apply GAP parameters." -#~ msgstr "Impossible d'appliquer les paramètres GAP" +#: supervisor/shared/safe_mode.c:113 +msgid "MicroPython NLR jump failed. Likely memory corruption.\n" +msgstr "" -#~ msgid "Can not encode UUID, to check length." -#~ msgstr "Impossible d'encoder l'UUID pour vérifier la longueur." +#: supervisor/shared/safe_mode.c:115 +msgid "MicroPython fatal error.\n" +msgstr "" + +#: supervisor/shared/safe_mode.c:118 +#, fuzzy +msgid "" +"The microcontroller's power dipped. Please make sure your power supply " +"provides\n" +"enough power for the whole circuit and press reset (after ejecting " +"CIRCUITPY).\n" +msgstr "" +"L'alimentation du microcontroleur a chuté. Merci de vérifier que votre " +"alimentation fournit\n" + +#: supervisor/shared/safe_mode.c:120 +msgid "" +"The CircuitPython heap was corrupted because the stack was too small.\n" +"Please increase stack size limits and press reset (after ejecting " +"CIRCUITPY).\n" +"If you didn't change the stack, then file an issue here with the contents of " +"your CIRCUITPY drive:\n" +msgstr "" + +#: supervisor/shared/safe_mode.c:123 +msgid "" +"The reset button was pressed while booting CircuitPython. Press again to " +"exit safe mode.\n" +msgstr "" + +#~ msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n" +#~ msgstr "" +#~ "Il semblerait que votre code CircuitPython a durement planté. Oups!\n" + +#~ msgid "" +#~ "Please file an issue here with the contents of your CIRCUITPY drive:\n" +#~ msgstr "" +#~ "SVP, remontez le problème là avec le contenu du lecteur CIRCUITPY:\n" + +#~ msgid "Can not add Service." +#~ msgstr "Impossible d'ajouter le Service" #~ msgid "Invalid Service type" #~ msgstr "Type de service invalide" +#~ msgid "Can not encode UUID, to check length." +#~ msgstr "Impossible d'encoder l'UUID pour vérifier la longueur." + +#~ msgid "Can not add Characteristic." +#~ msgstr "Impossible d'ajouter la Characteristic." + +#~ msgid "Can not query for the device address." +#~ msgstr "Impossible d'obtenir l'adresse du périphérique" + +#~ msgid "" +#~ "enough power for the whole circuit and press reset (after ejecting " +#~ "CIRCUITPY).\n" +#~ msgstr "" +#~ "assez de puissance pour l'ensemble du circuit et appuyez sur " +#~ "'reset' (après avoir éjecter CIRCUITPY).\n" + +#~ msgid "Cannot set PPCP parameters." +#~ msgstr "Impossible d'appliquer les paramètres PPCP" + #~ msgid "Can not apply device name in the stack." #~ msgstr "Impossible d'appliquer le nom de périphérique dans la pile" +#~ msgid "Cannot apply GAP parameters." +#~ msgstr "Impossible d'appliquer les paramètres GAP" + #, fuzzy #~ msgid "value_size must be power of two" #~ msgstr "value_size est une puissance de deux" -#~ msgid "Can not add Service." -#~ msgstr "Impossible d'ajouter le Service" - -#~ msgid "Can not add Characteristic." -#~ msgstr "Impossible d'ajouter la Characteristic." +#, fuzzy +#~ msgid "palette must be displayio.Palette" +#~ msgstr "palettre doit être displayio.Palette" diff --git a/locale/it_IT.po b/locale/it_IT.po index 445d898d1b..e9a970b85a 100644 --- a/locale/it_IT.po +++ b/locale/it_IT.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-12-04 16:17-0500\n" +"POT-Creation-Date: 2018-12-06 17:04-0800\n" "PO-Revision-Date: 2018-10-02 16:27+0200\n" "Last-Translator: Enrico Paganin \n" "Language-Team: \n" @@ -151,11 +151,11 @@ msgstr "argomenti non validi" msgid "script compilation not supported" msgstr "compilazione dello scrip non suportata" -#: main.c:155 +#: main.c:150 msgid " output:\n" msgstr " output:\n" -#: main.c:169 main.c:242 +#: main.c:164 main.c:237 msgid "" "Auto-reload is on. Simply save files over USB to run them or enter REPL to " "disable.\n" @@ -163,71 +163,28 @@ msgstr "" "L'auto-reload è attivo. Salva i file su USB per eseguirli o entra nel REPL " "per disabilitarlo.\n" -#: main.c:171 +#: main.c:166 msgid "Running in safe mode! Auto-reload is off.\n" msgstr "Modalità sicura in esecuzione! Auto-reload disattivato.\n" -#: main.c:173 main.c:244 +#: main.c:168 main.c:239 msgid "Auto-reload is off.\n" msgstr "Auto-reload disattivato.\n" -#: main.c:187 +#: main.c:182 msgid "Running in safe mode! Not running saved code.\n" msgstr "Modalità sicura in esecuzione! Codice salvato non in esecuzione.\n" -#: main.c:203 +#: main.c:198 msgid "WARNING: Your code filename has two extensions\n" msgstr "ATTENZIONE: Il nome del sorgente ha due estensioni\n" -#: main.c:251 -msgid "You requested starting safe mode by " -msgstr "È stato richiesto l'avvio in modalità sicura da " - -#: main.c:254 -msgid "To exit, please reset the board without " -msgstr "Per uscire resettare la scheda senza " - -#: main.c:261 -msgid "" -"You are running in safe mode which means something really bad happened.\n" -msgstr "" -"Sei nella modalità sicura che significa che qualcosa di molto brutto è " -"successo.\n" - -#: main.c:263 -msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n" -msgstr "" -"Sembra che il codice del core di CircuitPython sia crashato malamente. " -"Whoops!\n" - -#: main.c:264 -msgid "Please file an issue here with the contents of your CIRCUITPY drive:\n" -msgstr "" -"Ti preghiamo di compilare una issue con il contenuto del tuo drie " -"CIRCUITPY:\n" - -#: main.c:267 -msgid "" -"The microcontroller's power dipped. Please make sure your power supply " -"provides\n" -msgstr "" -"La potenza del microcontrollore è calata. Assicurati che l'alimentazione sia " -"attaccata correttamente\n" - -#: main.c:268 -msgid "" -"enough power for the whole circuit and press reset (after ejecting " -"CIRCUITPY).\n" -msgstr "" -"abbastanza potenza per l'intero circuito e premere reset (dopo aver espulso " -"CIRCUITPY).\n" - -#: main.c:272 +#: main.c:244 msgid "Press any key to enter the REPL. Use CTRL-D to reload." msgstr "" "Premi un qualunque tasto per entrare nel REPL. Usa CTRL-D per ricaricare." -#: main.c:430 +#: main.c:407 msgid "soft reboot\n" msgstr "soft reboot\n" @@ -459,7 +416,7 @@ msgid "pop from an empty PulseIn" msgstr "pop sun un PulseIn vuoto" #: ports/atmel-samd/common-hal/pulseio/PulseIn.c:237 -#: ports/esp8266/common-hal/pulseio/PulseIn.c:182 py/obj.c:420 +#: ports/esp8266/common-hal/pulseio/PulseIn.c:182 py/obj.c:422 msgid "index out of range" msgstr "indice fuori intervallo" @@ -1379,116 +1336,116 @@ msgstr "Operazione non supportata" msgid "Invalid argument" msgstr "Argomento non valido" -#: py/obj.c:90 +#: py/obj.c:92 msgid "Traceback (most recent call last):\n" msgstr "Traceback (chiamata più recente per ultima):\n" -#: py/obj.c:94 +#: py/obj.c:96 msgid " File \"%q\", line %d" msgstr " File \"%q\", riga %d" -#: py/obj.c:96 +#: py/obj.c:98 msgid " File \"%q\"" msgstr " File \"%q\"" -#: py/obj.c:100 +#: py/obj.c:102 msgid ", in %q\n" msgstr ", in %q\n" -#: py/obj.c:257 +#: py/obj.c:259 msgid "can't convert to int" msgstr "non è possibile convertire a int" -#: py/obj.c:260 +#: py/obj.c:262 #, c-format msgid "can't convert %s to int" msgstr "non è possibile convertire %s a int" -#: py/obj.c:320 +#: py/obj.c:322 msgid "can't convert to float" msgstr "non è possibile convertire a float" -#: py/obj.c:323 +#: py/obj.c:325 #, c-format msgid "can't convert %s to float" msgstr "non è possibile convertire %s a float" -#: py/obj.c:353 +#: py/obj.c:355 msgid "can't convert to complex" msgstr "non è possibile convertire a complex" -#: py/obj.c:356 +#: py/obj.c:358 #, c-format msgid "can't convert %s to complex" msgstr "non è possibile convertire a complex" -#: py/obj.c:371 +#: py/obj.c:373 msgid "expected tuple/list" msgstr "lista/tupla prevista" -#: py/obj.c:374 +#: py/obj.c:376 #, c-format msgid "object '%s' is not a tuple or list" msgstr "oggetto '%s' non è una tupla o una lista" -#: py/obj.c:385 +#: py/obj.c:387 msgid "tuple/list has wrong length" msgstr "tupla/lista ha la lunghezza sbagliata" -#: py/obj.c:387 +#: py/obj.c:389 #, c-format msgid "requested length %d but object has length %d" msgstr "lunghezza %d richiesta ma l'oggetto ha lunghezza %d" -#: py/obj.c:400 +#: py/obj.c:402 msgid "indices must be integers" msgstr "gli indici devono essere interi" -#: py/obj.c:403 +#: py/obj.c:405 msgid "%q indices must be integers, not %s" msgstr "gli indici %q devono essere interi, non %s" -#: py/obj.c:423 +#: py/obj.c:425 msgid "%q index out of range" msgstr "indice %q fuori intervallo" -#: py/obj.c:455 +#: py/obj.c:457 msgid "object has no len" msgstr "l'oggetto non ha lunghezza" -#: py/obj.c:458 +#: py/obj.c:460 #, c-format msgid "object of type '%s' has no len()" msgstr "l'oggetto di tipo '%s' non implementa len()" -#: py/obj.c:496 +#: py/obj.c:500 msgid "object does not support item deletion" msgstr "" -#: py/obj.c:499 +#: py/obj.c:503 #, c-format msgid "'%s' object does not support item deletion" msgstr "" -#: py/obj.c:503 +#: py/obj.c:507 msgid "object is not subscriptable" msgstr "" -#: py/obj.c:506 +#: py/obj.c:510 #, c-format msgid "'%s' object is not subscriptable" msgstr "" -#: py/obj.c:510 +#: py/obj.c:514 msgid "object does not support item assignment" msgstr "" -#: py/obj.c:513 +#: py/obj.c:517 #, c-format msgid "'%s' object does not support item assignment" msgstr "" -#: py/obj.c:544 +#: py/obj.c:548 msgid "object with buffer protocol required" msgstr "" @@ -2583,32 +2540,111 @@ msgstr "USB occupata" msgid "USB Error" msgstr "Errore USB" -#~ msgid "Invalid Service type" -#~ msgstr "Tipo di servizio non valido" +#: supervisor/shared/safe_mode.c:97 +msgid "You requested starting safe mode by " +msgstr "È stato richiesto l'avvio in modalità sicura da " -#~ msgid "Can not query for the device address." -#~ msgstr "Non è possibile trovare l'indirizzo del dispositivo." +#: supervisor/shared/safe_mode.c:100 +msgid "To exit, please reset the board without " +msgstr "Per uscire resettare la scheda senza " -#~ msgid "Cannot set PPCP parameters." -#~ msgstr "Impossibile impostare i parametri PPCP." +#: supervisor/shared/safe_mode.c:107 +#, fuzzy +msgid "" +"You are running in safe mode which means something unanticipated happened.\n" +msgstr "" +"Sei nella modalità sicura che significa che qualcosa di molto brutto è " +"successo.\n" -#~ msgid "Cannot apply GAP parameters." -#~ msgstr "Impossibile applicare i parametri GAP." +#: supervisor/shared/safe_mode.c:109 +msgid "" +"Looks like our core CircuitPython code crashed hard. Whoops!\n" +"Please file an issue at https://github.com/adafruit/circuitpython/issues\n" +" with the contents of your CIRCUITPY drive and this message:\n" +msgstr "" -#~ msgid "Can not encode UUID, to check length." -#~ msgstr "Non è possibile codificare l'UUID, lunghezza da controllare." +#: supervisor/shared/safe_mode.c:111 +msgid "Crash into the HardFault_Handler.\n" +msgstr "" -#~ msgid "Can encode UUID into the advertisement packet." -#~ msgstr "È possibile codificare l'UUID nel pacchetto di advertisement." +#: supervisor/shared/safe_mode.c:113 +msgid "MicroPython NLR jump failed. Likely memory corruption.\n" +msgstr "" -#~ msgid "Can not apply device name in the stack." -#~ msgstr "Non è possibile inserire il nome del dipositivo nella lista." +#: supervisor/shared/safe_mode.c:115 +msgid "MicroPython fatal error.\n" +msgstr "" -#~ msgid "Can not apply advertisement data. status: 0x%02x" -#~ msgstr "Impossible inserire dati advertisement. status: 0x%02x" +#: supervisor/shared/safe_mode.c:118 +#, fuzzy +msgid "" +"The microcontroller's power dipped. Please make sure your power supply " +"provides\n" +"enough power for the whole circuit and press reset (after ejecting " +"CIRCUITPY).\n" +msgstr "" +"La potenza del microcontrollore è calata. Assicurati che l'alimentazione sia " +"attaccata correttamente\n" + +#: supervisor/shared/safe_mode.c:120 +msgid "" +"The CircuitPython heap was corrupted because the stack was too small.\n" +"Please increase stack size limits and press reset (after ejecting " +"CIRCUITPY).\n" +"If you didn't change the stack, then file an issue here with the contents of " +"your CIRCUITPY drive:\n" +msgstr "" + +#: supervisor/shared/safe_mode.c:123 +msgid "" +"The reset button was pressed while booting CircuitPython. Press again to " +"exit safe mode.\n" +msgstr "" + +#~ msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n" +#~ msgstr "" +#~ "Sembra che il codice del core di CircuitPython sia crashato malamente. " +#~ "Whoops!\n" + +#~ msgid "" +#~ "Please file an issue here with the contents of your CIRCUITPY drive:\n" +#~ msgstr "" +#~ "Ti preghiamo di compilare una issue con il contenuto del tuo drie " +#~ "CIRCUITPY:\n" #~ msgid "Can not add Service." #~ msgstr "Non è possibile aggiungere Service." +#~ msgid "Can encode UUID into the advertisement packet." +#~ msgstr "È possibile codificare l'UUID nel pacchetto di advertisement." + +#~ msgid "Can not encode UUID, to check length." +#~ msgstr "Non è possibile codificare l'UUID, lunghezza da controllare." + #~ msgid "Can not add Characteristic." #~ msgstr "Non è possibile aggiungere Characteristic." + +#~ msgid "Can not query for the device address." +#~ msgstr "Non è possibile trovare l'indirizzo del dispositivo." + +#~ msgid "" +#~ "enough power for the whole circuit and press reset (after ejecting " +#~ "CIRCUITPY).\n" +#~ msgstr "" +#~ "abbastanza potenza per l'intero circuito e premere reset (dopo aver " +#~ "espulso CIRCUITPY).\n" + +#~ msgid "Cannot set PPCP parameters." +#~ msgstr "Impossibile impostare i parametri PPCP." + +#~ msgid "Can not apply device name in the stack." +#~ msgstr "Non è possibile inserire il nome del dipositivo nella lista." + +#~ msgid "Cannot apply GAP parameters." +#~ msgstr "Impossibile applicare i parametri GAP." + +#~ msgid "Can not apply advertisement data. status: 0x%02x" +#~ msgstr "Impossible inserire dati advertisement. status: 0x%02x" + +#~ msgid "Invalid Service type" +#~ msgstr "Tipo di servizio non valido" diff --git a/locale/pt_BR.po b/locale/pt_BR.po index 5fd5502411..7a0cf64862 100644 --- a/locale/pt_BR.po +++ b/locale/pt_BR.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-12-04 16:17-0500\n" +"POT-Creation-Date: 2018-12-06 17:04-0800\n" "PO-Revision-Date: 2018-10-02 21:14-0000\n" "Last-Translator: \n" "Language-Team: \n" @@ -151,70 +151,37 @@ msgstr "argumentos inválidos" msgid "script compilation not supported" msgstr "compilação de script não suportada" -#: main.c:155 +#: main.c:150 msgid " output:\n" msgstr " saída:\n" -#: main.c:169 main.c:242 +#: main.c:164 main.c:237 msgid "" "Auto-reload is on. Simply save files over USB to run them or enter REPL to " "disable.\n" msgstr "" -#: main.c:171 +#: main.c:166 msgid "Running in safe mode! Auto-reload is off.\n" msgstr "Rodando em modo seguro! Atualização automática está desligada.\n" -#: main.c:173 main.c:244 +#: main.c:168 main.c:239 msgid "Auto-reload is off.\n" msgstr "A atualização automática está desligada.\n" -#: main.c:187 +#: main.c:182 msgid "Running in safe mode! Not running saved code.\n" msgstr "Rodando em modo seguro! Não está executando o código salvo.\n" -#: main.c:203 +#: main.c:198 msgid "WARNING: Your code filename has two extensions\n" msgstr "AVISO: Seu arquivo de código tem duas extensões\n" -#: main.c:251 -msgid "You requested starting safe mode by " -msgstr "Você solicitou o início do modo de segurança" - -#: main.c:254 -msgid "To exit, please reset the board without " -msgstr "Para sair, por favor, reinicie a placa sem " - -#: main.c:261 -msgid "" -"You are running in safe mode which means something really bad happened.\n" -msgstr "" - -#: main.c:263 -msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n" -msgstr "" - -#: main.c:264 -msgid "Please file an issue here with the contents of your CIRCUITPY drive:\n" -msgstr "" - -#: main.c:267 -msgid "" -"The microcontroller's power dipped. Please make sure your power supply " -"provides\n" -msgstr "" - -#: main.c:268 -msgid "" -"enough power for the whole circuit and press reset (after ejecting " -"CIRCUITPY).\n" -msgstr "" - -#: main.c:272 +#: main.c:244 msgid "Press any key to enter the REPL. Use CTRL-D to reload." msgstr "" -#: main.c:430 +#: main.c:407 msgid "soft reboot\n" msgstr "" @@ -443,7 +410,7 @@ msgid "pop from an empty PulseIn" msgstr "" #: ports/atmel-samd/common-hal/pulseio/PulseIn.c:237 -#: ports/esp8266/common-hal/pulseio/PulseIn.c:182 py/obj.c:420 +#: ports/esp8266/common-hal/pulseio/PulseIn.c:182 py/obj.c:422 msgid "index out of range" msgstr "Índice fora do intervalo" @@ -1355,116 +1322,116 @@ msgstr "" msgid "Invalid argument" msgstr "Argumento inválido" -#: py/obj.c:90 +#: py/obj.c:92 msgid "Traceback (most recent call last):\n" msgstr "" -#: py/obj.c:94 +#: py/obj.c:96 msgid " File \"%q\", line %d" msgstr " Arquivo \"%q\", linha %d" -#: py/obj.c:96 +#: py/obj.c:98 msgid " File \"%q\"" msgstr " Arquivo \"%q\"" -#: py/obj.c:100 +#: py/obj.c:102 msgid ", in %q\n" msgstr "" -#: py/obj.c:257 +#: py/obj.c:259 msgid "can't convert to int" msgstr "" -#: py/obj.c:260 +#: py/obj.c:262 #, c-format msgid "can't convert %s to int" msgstr "" -#: py/obj.c:320 +#: py/obj.c:322 msgid "can't convert to float" msgstr "" -#: py/obj.c:323 +#: py/obj.c:325 #, c-format msgid "can't convert %s to float" msgstr "" -#: py/obj.c:353 +#: py/obj.c:355 msgid "can't convert to complex" msgstr "" -#: py/obj.c:356 +#: py/obj.c:358 #, c-format msgid "can't convert %s to complex" msgstr "" -#: py/obj.c:371 +#: py/obj.c:373 msgid "expected tuple/list" msgstr "" -#: py/obj.c:374 +#: py/obj.c:376 #, c-format msgid "object '%s' is not a tuple or list" msgstr "" -#: py/obj.c:385 +#: py/obj.c:387 msgid "tuple/list has wrong length" msgstr "" -#: py/obj.c:387 +#: py/obj.c:389 #, c-format msgid "requested length %d but object has length %d" msgstr "" -#: py/obj.c:400 +#: py/obj.c:402 msgid "indices must be integers" msgstr "" -#: py/obj.c:403 +#: py/obj.c:405 msgid "%q indices must be integers, not %s" msgstr "" -#: py/obj.c:423 +#: py/obj.c:425 msgid "%q index out of range" msgstr "" -#: py/obj.c:455 +#: py/obj.c:457 msgid "object has no len" msgstr "" -#: py/obj.c:458 +#: py/obj.c:460 #, c-format msgid "object of type '%s' has no len()" msgstr "" -#: py/obj.c:496 +#: py/obj.c:500 msgid "object does not support item deletion" msgstr "" -#: py/obj.c:499 +#: py/obj.c:503 #, c-format msgid "'%s' object does not support item deletion" msgstr "" -#: py/obj.c:503 +#: py/obj.c:507 msgid "object is not subscriptable" msgstr "" -#: py/obj.c:506 +#: py/obj.c:510 #, c-format msgid "'%s' object is not subscriptable" msgstr "" -#: py/obj.c:510 +#: py/obj.c:514 msgid "object does not support item assignment" msgstr "" -#: py/obj.c:513 +#: py/obj.c:517 #, c-format msgid "'%s' object does not support item assignment" msgstr "" -#: py/obj.c:544 +#: py/obj.c:548 msgid "object with buffer protocol required" msgstr "" @@ -2535,6 +2502,67 @@ msgstr "USB ocupada" msgid "USB Error" msgstr "Erro na USB" +#: supervisor/shared/safe_mode.c:97 +msgid "You requested starting safe mode by " +msgstr "Você solicitou o início do modo de segurança" + +#: supervisor/shared/safe_mode.c:100 +msgid "To exit, please reset the board without " +msgstr "Para sair, por favor, reinicie a placa sem " + +#: supervisor/shared/safe_mode.c:107 +msgid "" +"You are running in safe mode which means something unanticipated happened.\n" +msgstr "" + +#: supervisor/shared/safe_mode.c:109 +msgid "" +"Looks like our core CircuitPython code crashed hard. Whoops!\n" +"Please file an issue at https://github.com/adafruit/circuitpython/issues\n" +" with the contents of your CIRCUITPY drive and this message:\n" +msgstr "" + +#: supervisor/shared/safe_mode.c:111 +msgid "Crash into the HardFault_Handler.\n" +msgstr "" + +#: supervisor/shared/safe_mode.c:113 +msgid "MicroPython NLR jump failed. Likely memory corruption.\n" +msgstr "" + +#: supervisor/shared/safe_mode.c:115 +msgid "MicroPython fatal error.\n" +msgstr "" + +#: supervisor/shared/safe_mode.c:118 +msgid "" +"The microcontroller's power dipped. Please make sure your power supply " +"provides\n" +"enough power for the whole circuit and press reset (after ejecting " +"CIRCUITPY).\n" +msgstr "" + +#: supervisor/shared/safe_mode.c:120 +msgid "" +"The CircuitPython heap was corrupted because the stack was too small.\n" +"Please increase stack size limits and press reset (after ejecting " +"CIRCUITPY).\n" +"If you didn't change the stack, then file an issue here with the contents of " +"your CIRCUITPY drive:\n" +msgstr "" + +#: supervisor/shared/safe_mode.c:123 +msgid "" +"The reset button was pressed while booting CircuitPython. Press again to " +"exit safe mode.\n" +msgstr "" + +#~ msgid "Can not add Service." +#~ msgstr "Não é possível adicionar o serviço." + +#~ msgid "Can not apply advertisement data. status: 0x%02x" +#~ msgstr "Não é possível aplicar dados de anúncio. status: 0x%02x" + #~ msgid "Baud rate too high for this SPI peripheral" #~ msgstr "Taxa de transmissão muito alta para esse periférico SPI" @@ -2547,20 +2575,14 @@ msgstr "Erro na USB" #~ msgid "Cannot apply GAP parameters." #~ msgstr "Não é possível aplicar parâmetros GAP." -#~ msgid "Can encode UUID into the advertisement packet." -#~ msgstr "Pode codificar o UUID no pacote de anúncios." - -#~ msgid "Can not apply advertisement data. status: 0x%02x" -#~ msgstr "Não é possível aplicar dados de anúncio. status: 0x%02x" - -#~ msgid "Can not apply device name in the stack." -#~ msgstr "Não é possível aplicar o nome do dispositivo na pilha." - #~ msgid "Invalid Service type" #~ msgstr "Tipo de serviço inválido" -#~ msgid "Can not add Service." -#~ msgstr "Não é possível adicionar o serviço." +#~ msgid "Can encode UUID into the advertisement packet." +#~ msgstr "Pode codificar o UUID no pacote de anúncios." #~ msgid "Can not add Characteristic." #~ msgstr "Não é possível adicionar Característica." + +#~ msgid "Can not apply device name in the stack." +#~ msgstr "Não é possível aplicar o nome do dispositivo na pilha." From 808ca676b61b446a02792c7d77acb73dfd203244 Mon Sep 17 00:00:00 2001 From: Scott Shawcroft Date: Thu, 6 Dec 2018 17:12:30 -0800 Subject: [PATCH 11/33] Fix unix --- ports/unix/Makefile | 1 + supervisor/stub/stack.c | 7 ++----- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/ports/unix/Makefile b/ports/unix/Makefile index 79b203b6b0..ae87a16252 100644 --- a/ports/unix/Makefile +++ b/ports/unix/Makefile @@ -149,6 +149,7 @@ SRC_C = \ alloc.c \ coverage.c \ fatfs_port.c \ + supervisor/stub/stack.c \ supervisor/shared/translate.c \ $(SRC_MOD) diff --git a/supervisor/stub/stack.c b/supervisor/stub/stack.c index 4d88e51d23..9a9ecd32f6 100644 --- a/supervisor/stub/stack.c +++ b/supervisor/stub/stack.c @@ -24,11 +24,7 @@ * THE SOFTWARE. */ -#include -#include - -void allocate_stack(void) { -} +#include "supervisor/shared/stack.h" bool stack_ok(void) { return true; @@ -44,6 +40,7 @@ void stack_resize(void) { } void set_next_stack_size(uint32_t size) { + (void) size; } uint32_t get_current_stack_size(void) { From df84da59131be6a56a2990975ce05f8e10f0d9c1 Mon Sep 17 00:00:00 2001 From: Scott Shawcroft Date: Fri, 7 Dec 2018 09:32:37 -0800 Subject: [PATCH 12/33] Stub out serial_write as well --- ports/unix/Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/ports/unix/Makefile b/ports/unix/Makefile index ae87a16252..8775ec11ac 100644 --- a/ports/unix/Makefile +++ b/ports/unix/Makefile @@ -149,6 +149,7 @@ SRC_C = \ alloc.c \ coverage.c \ fatfs_port.c \ + supervisor/stub/serial.c \ supervisor/stub/stack.c \ supervisor/shared/translate.c \ $(SRC_MOD) From 89ef6eef575501e736ae528f13d9979e1302be63 Mon Sep 17 00:00:00 2001 From: Scott Shawcroft Date: Fri, 7 Dec 2018 09:56:35 -0800 Subject: [PATCH 13/33] Fix unused parameter --- supervisor/stub/serial.c | 1 + 1 file changed, 1 insertion(+) diff --git a/supervisor/stub/serial.c b/supervisor/stub/serial.c index 4f0e11873a..9565519141 100644 --- a/supervisor/stub/serial.c +++ b/supervisor/stub/serial.c @@ -43,4 +43,5 @@ bool serial_bytes_available(void) { } void serial_write(const char* text) { + (void) text; } From 801d9a5abcd912d81d3a6a95e8cc22635fced3ef Mon Sep 17 00:00:00 2001 From: Scott Shawcroft Date: Fri, 7 Dec 2018 16:11:21 -0800 Subject: [PATCH 14/33] Fix running the USB task on nRF. It wasn't being run due to a rework done only on the atmel-samd port. The rework itself isn't needed now that the heap check triggers safe mode instead of throwing a Python exception. So, I've removed the rework. --- main.c | 4 ++-- ports/atmel-samd/background.c | 8 ++------ ports/atmel-samd/mpconfigport.h | 6 ++---- ports/nrf/background.c | 3 +++ 4 files changed, 9 insertions(+), 12 deletions(-) diff --git a/main.c b/main.c index aac2c5566c..4e0b77cfd5 100755 --- a/main.c +++ b/main.c @@ -215,8 +215,8 @@ bool run_code_py(safe_mode_t safe_mode) { rgb_status_animation_t animation; prep_rgb_status_animation(&result, found_main, safe_mode, &animation); while (true) { - #ifdef CIRCUITPY_SUPERVISOR_BACKGROUND - CIRCUITPY_SUPERVISOR_BACKGROUND + #ifdef MICROPY_VM_HOOK_LOOP + MICROPY_VM_HOOK_LOOP #endif if (reload_requested) { return true; diff --git a/ports/atmel-samd/background.c b/ports/atmel-samd/background.c index 94763bc439..439877d2e7 100644 --- a/ports/atmel-samd/background.c +++ b/ports/atmel-samd/background.c @@ -39,6 +39,7 @@ volatile uint64_t last_finished_tick = 0; bool stack_ok_so_far = true; void run_background_tasks(void) { + assert_heap_ok(); #if (defined(SAMD21) && defined(PIN_PA02)) || defined(SAMD51) audio_dma_background(); #endif @@ -50,16 +51,11 @@ void run_background_tasks(void) { network_module_background(); #endif usb_background(); + assert_heap_ok(); last_finished_tick = ticks_ms; } -void run_background_vm_tasks(void) { - assert_heap_ok(); - run_background_tasks(); - assert_heap_ok(); -} - bool background_tasks_ok(void) { return ticks_ms - last_finished_tick < 1000; } diff --git a/ports/atmel-samd/mpconfigport.h b/ports/atmel-samd/mpconfigport.h index 4fc32157c8..d0ebbfa39e 100644 --- a/ports/atmel-samd/mpconfigport.h +++ b/ports/atmel-samd/mpconfigport.h @@ -451,10 +451,8 @@ extern const struct _mp_obj_module_t wiznet_module; NETWORK_ROOT_POINTERS \ void run_background_tasks(void); -void run_background_vm_tasks(void); -#define MICROPY_VM_HOOK_LOOP run_background_vm_tasks(); -#define MICROPY_VM_HOOK_RETURN run_background_vm_tasks(); -#define CIRCUITPY_SUPERVISOR_BACKGROUND run_background_tasks(); +#define MICROPY_VM_HOOK_LOOP run_background_tasks(); +#define MICROPY_VM_HOOK_RETURN run_background_tasks(); #define CIRCUITPY_AUTORELOAD_DELAY_MS 500 #define CIRCUITPY_BOOT_OUTPUT_FILE "/boot_out.txt" diff --git a/ports/nrf/background.c b/ports/nrf/background.c index f614b6bd03..f022b5bc91 100644 --- a/ports/nrf/background.c +++ b/ports/nrf/background.c @@ -28,8 +28,11 @@ #include "supervisor/usb.h" #endif +#include "supervisor/shared/stack.h" + void run_background_tasks(void) { #ifdef NRF52840 usb_background(); #endif + assert_heap_ok(); } From 06c493812043901b0c99d56de64c35b548fde0e7 Mon Sep 17 00:00:00 2001 From: Scott Shawcroft Date: Fri, 7 Dec 2018 17:37:25 -0800 Subject: [PATCH 15/33] Build UF2s for the particle boards --- tools/build_board_info.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tools/build_board_info.py b/tools/build_board_info.py index 0e9389a02e..908bb17e9d 100644 --- a/tools/build_board_info.py +++ b/tools/build_board_info.py @@ -35,7 +35,10 @@ extension_by_board = { "feather_m0_basic": BIN_UF2, "feather_m0_rfm69": BIN, "feather_m0_rfm9x": BIN, - "makerdiary_nrf52840_mdk": HEX + "makerdiary_nrf52840_mdk": HEX, + "particle_argon": UF2, + "particle_boron": UF2, + "particle_xenon": UF2 } def get_languages(): From 52dbbcb23fae800a56a0fcd0357c3e1bcd083318 Mon Sep 17 00:00:00 2001 From: ShawnHymel Date: Sat, 8 Dec 2018 16:47:17 -0600 Subject: [PATCH 16/33] Added board test suite --- tests/board_test_suite/README.rst | 56 +++++ tests/board_test_suite/doc/test_jib.png | Bin 0 -> 168217 bytes tests/board_test_suite/doc/test_jig.fzz | Bin 0 -> 7586 bytes tests/board_test_suite/doc/test_jig_bb.png | Bin 0 -> 149724 bytes .../lib/adafruit_bus_device/__init__.py | 0 .../lib/adafruit_bus_device/i2c_device.mpy | Bin 0 -> 1707 bytes .../lib/adafruit_bus_device/spi_device.mpy | Bin 0 -> 1250 bytes .../board_test_suite/lib/adafruit_sdcard.mpy | Bin 0 -> 5349 bytes tests/board_test_suite/lib/gpio_test.mpy | Bin 0 -> 2036 bytes tests/board_test_suite/lib/i2c_test.mpy | Bin 0 -> 2420 bytes tests/board_test_suite/lib/led_test.mpy | Bin 0 -> 1765 bytes tests/board_test_suite/lib/sd_cd_test.mpy | Bin 0 -> 1342 bytes tests/board_test_suite/lib/sd_test.mpy | Bin 0 -> 2256 bytes tests/board_test_suite/lib/spi_test.mpy | Bin 0 -> 3232 bytes tests/board_test_suite/lib/uart_test.mpy | Bin 0 -> 1446 bytes .../lib/voltage_monitor_test.mpy | Bin 0 -> 1423 bytes tests/board_test_suite/main.py | 235 ++++++++++++++++++ tests/board_test_suite/mpy-cross | Bin 0 -> 194960 bytes tests/board_test_suite/source/gpio_test.py | 154 ++++++++++++ tests/board_test_suite/source/i2c_test.py | 191 ++++++++++++++ tests/board_test_suite/source/led_test.py | 142 +++++++++++ tests/board_test_suite/source/sd_cd_test.py | 110 ++++++++ tests/board_test_suite/source/sd_test.py | 157 ++++++++++++ tests/board_test_suite/source/spi_test.py | 232 +++++++++++++++++ tests/board_test_suite/source/uart_test.py | 121 +++++++++ .../source/voltage_monitor_test.py | 111 +++++++++ 26 files changed, 1509 insertions(+) create mode 100644 tests/board_test_suite/README.rst create mode 100644 tests/board_test_suite/doc/test_jib.png create mode 100644 tests/board_test_suite/doc/test_jig.fzz create mode 100644 tests/board_test_suite/doc/test_jig_bb.png create mode 100644 tests/board_test_suite/lib/adafruit_bus_device/__init__.py create mode 100644 tests/board_test_suite/lib/adafruit_bus_device/i2c_device.mpy create mode 100644 tests/board_test_suite/lib/adafruit_bus_device/spi_device.mpy create mode 100644 tests/board_test_suite/lib/adafruit_sdcard.mpy create mode 100644 tests/board_test_suite/lib/gpio_test.mpy create mode 100644 tests/board_test_suite/lib/i2c_test.mpy create mode 100644 tests/board_test_suite/lib/led_test.mpy create mode 100644 tests/board_test_suite/lib/sd_cd_test.mpy create mode 100644 tests/board_test_suite/lib/sd_test.mpy create mode 100644 tests/board_test_suite/lib/spi_test.mpy create mode 100644 tests/board_test_suite/lib/uart_test.mpy create mode 100644 tests/board_test_suite/lib/voltage_monitor_test.mpy create mode 100644 tests/board_test_suite/main.py create mode 100644 tests/board_test_suite/mpy-cross create mode 100644 tests/board_test_suite/source/gpio_test.py create mode 100644 tests/board_test_suite/source/i2c_test.py create mode 100644 tests/board_test_suite/source/led_test.py create mode 100644 tests/board_test_suite/source/sd_cd_test.py create mode 100644 tests/board_test_suite/source/sd_test.py create mode 100644 tests/board_test_suite/source/spi_test.py create mode 100644 tests/board_test_suite/source/uart_test.py create mode 100644 tests/board_test_suite/source/voltage_monitor_test.py diff --git a/tests/board_test_suite/README.rst b/tests/board_test_suite/README.rst new file mode 100644 index 0000000000..7fed9d35b1 --- /dev/null +++ b/tests/board_test_suite/README.rst @@ -0,0 +1,56 @@ + +Introduction +============ + +Board test suite for CircuitPython. Run these tests to ensure that a CircuitPython port was created correctly, individual pin mappings are correct, and buses (e.g. SPI) work. + +Tests can be run individually. Copy code found in each *_test.py* module (found in *source* directory) to main.py in your CIRCUITPYTHON device drive. + +Alternatively, tests can be imported as modules. Copy the *lib* directory to CIRCUITPYTHON device drive and import the test in your own code. Each test can be run with the `run_test(pins)` function. + +The *main.py* example shows how to call tests from within a script. *main.py* runs the following tests: + + * LED Test + * GPIO Test + * Voltage Monitor Test + * UART Test + * SPI Test + * I2C Test + +Dependencies +============= + +This test suite depends on: + +* `Adafruit CircuitPython `_ +* `SD Card `_ +* `Bus Device `_ + +Please ensure all dependencies are available on the CircuitPython filesystem. +This is easily achieved by downloading +`the Adafruit library and driver bundle `_. + +Usage Example +============= + +You will need the following components: + +* Multimeter +* LED +* 1x 330 Ohm resistor +* 2x 4.7k Ohm resistor +* Microchip 25AA040A SPI EEPROM +* Microchip AT24HC04B I2C EEPROM +* Breadboard +* Wires + +Connect the components as shown to your board. + +![Test jig Fritzing diagram](doc/test_jig.png) + +Copy the *lib* folder to the CIRCUITPYTHON drive. Copy *main.py* to the root directory of your CIRCUITPYTHON drive. Open a Serial terminal and connect to the board. Follow the directions given to run through the tests. + +Building +======== + +Individual test modules can be built with the mpy-cross cross-compiler. This is required to save RAM space if you plan to run more than one test at a time. See [the mpy-cross directory in circuitpython](https://github.com/adafruit/circuitpython/tree/master/mpy-cross) to learn more. diff --git a/tests/board_test_suite/doc/test_jib.png b/tests/board_test_suite/doc/test_jib.png new file mode 100644 index 0000000000000000000000000000000000000000..22dd927b2946acd3d4abb2a2e6e59dd9147a0c26 GIT binary patch literal 168217 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

bw?l2}_e-%B6Ffa@IVmCA^R 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 literal 0 HcmV?d00001 diff --git a/tests/board_test_suite/doc/test_jig_bb.png b/tests/board_test_suite/doc/test_jig_bb.png new file mode 100644 index 0000000000000000000000000000000000000000..89ec28dbeb3b777992de208720881d21a9f4eb0b GIT binary patch literal 149724 zcmeFYXH=6-+b$eYQ9#gJLMTL9_OMIaa;^iTq! zs`MI?&=Ki`qV&$5_&$4m>-qDp_5I(jU|=%WlylBD$9d$fj+P1|Jv%)F0%25BeXI+C zoGb)CJ!fe_%eTUW2=GSdu4>{5f$)V=e@;Xh98E$X*CA?;AL;uIFOB(orECYy?f1M+ zgKTSZ@U@q6zlS*sR#@NG{54Iow)f_^-8HH)#hte0GkkP^IjN$W(5-1Nk~YpOmlm5e zP8i=xMG=y=wzA(cw-gGD{JAL;QD#EYf|g1^ia|Y)6};MW+$j`|6Ai(uw(G= zzkB|7<0+%RUH-SmSNwmw{CCg)Zfs=v+vWdn+%0?{Lg0px5odLz<+xF zcjJFc;QtBmzoq)$vig4l{NI%AKf3xK0e+^x+6ip(#SCHd{c(Ao!tu|Epg7@w8cIbq z2x3W$;FI37ieiwzcJYY$lr@BEL=SfgPmSNF zsm6HWF+%L$ixQ9S@h;I&A3B@!M*GE2_1@D|TPeUigkCs(w(gWURk0gN&*(MXc{s@P z^A**e47opDR3*C^e`OJPEl~f)jM~LGcQWqY!+%dvS^~`L&sLr?qOM5%q853-A*F$i z<~~Jq@-lT6!w0E_;U|6voXt2FY2HE7J&DN#9d+=0!PE(D%sE)z{rT&0G@mD!U5DzZ+kG>@!u9Zi)(Oj* zlPgY4l@$M)$JEaIA7SX1kj6_8!;mWTh(;f|Q!p@>rOBCp_@%C2|4aiJ$=ST@%FpIx z}`bDp0%p^)=Aw*O6s3xLp_qvoOu}FG+#=#e{0n-Bakpg+yP`|Z zNf+q?p>NQCdBBDZpXl&_5lI16m`xqi?urM&WF9r$XX_E2Jx3!&*E$b;ivk2gspn8U zY3}(b{v#L$(O8k7w5&L?q?k#3o-Z?Jf4od)g3%X&ld)97{o-izP`Z191@iDKrb|br zdNQ>zgRAw_fR|;OaLI01&TpzfB|diGCU0faK#D7rmZ!r!W3t^TwrVlHODm}p777YF z9)8}%eh|pt`5M|yo%fAgznVLk)|$Qa33iCj#?&A^XqFUJtjnH%V}YE_J7oZYklKtb zrGC)Ia&!y&m3!BD`E|)Jw*O-Uxn5A{r^5rL(lLpb)vXz<2;wQq0b6fiXUNB1(x*d1 zAOm(^1?TQ8L(_dUz}lMbJ_5Q+r>~b-c+h+nBA;phd zyaQcRGK1Cn>kr>E$HXxk6M*RzM}mdM-=m`ug$y{o5VR?20D^tteZ`P2?~T@lHzz(D z(iFr~+rWm-X6Bs9Ty`s*Slwu^p~FLp6{!P2Y52ha(9hi5%zh{S>Z1V-UncV#%O)YJ zE4W}tmyb}0yZHFgJkK-@aJ~<_PLXEL<)0$PGv>Z|YPoqDt|&xxFim%@yfshh(eP1i zo9YFw7hg0q5=*_PVWjP6j4}Q}>hXX!P~F8tW1i0!+0TBmWV0Yr=o&ABK^sa>8#Xz) zoF2f+I@}I?b)oi%^rT4;4Ev(A*@=gS62O>$YJkY4$fimr;U509m9tMf1x7ksz`~es zNJD|q=c`})RP>|K4RczTw)~WJlaSnN`M=9Irpu>rXM3E{yYPap22rxzYe5~=fYUIM z-I%4l9I5o21a@s` zVri~!g&loqEqHG0!6M{>4_(z87;uS}U7^HHPGcj4DrV#1`xBQRHt_ruvMA1(qq@1v zC#gG_IX7zP(QD9lg83v51bfAuu42Op2>gOEImlAb8&aWr@+*`v@XBw9@%tNzDzE#d z9=V@>Xlbr%iNO}bD37ogPqNVpLC#j@%M5zNQ9a-(68&is(ZdUy@On}A4DY$ekPFUa zi(;MuFz1T~+_wfCd-I|PqhW$bucZ#~0UWMI>cum4XMn)37n9t>`aS!$jE=iq(jl=Hy}OPBCr*!c>o+i7HZsCkNn_42|RzPft@C~yTruGdgxp!Dz- zIJ;y8@W^K!#H08KF~|icvJ)8VqS=WT4X~3|@t^4-UuP^$^D`4#s{b)NVcB(t6n`#1 z$JJrzD-Gl<_ODZmy8<&pSem1Yp*p7_7aZuyzygg!Ut$xQ7NJ}Qwn}Fq#=@CCnA5O| z$-lccU;*k4fhaBy)BVo?G?aHPvi#MLxWSmkbu@xj2~+_ z3Xv;TFKK}|=*p>UHq3vCg=KnIYn`qrz0c?S+KTsL^3kj$iyN-keGPEHpXK8LlzRJ zajWu|eIO94gnJ;&6d%!0o@HYDUwTVL77D2t$7c_YxFLQO9YJR|De4*bB}SHxb9EW& zzQs-Bj)TPyQbKO+&vpqMfIyx3u*R@Sppm5^nXw?BuK*Q#{D({YP~mv)%cHVvUbo7Q z^>573h{(JCl!O>bxAqT@>FX=%;G6aPHEW|G3j83qFkmXrzu#GCLtVD9SUKsLC1$IS zIKz}5lWn8hsBozFJ?dKi&i11J#?v8b8T(_aWGK7_wX;BgYHH5Z4^DnuWw7|TJr|PB z0tRbx?s{YLivL9(yafjXNBo8;qnr8hRmkr%Pl%|nNvY0m=9S{UkP|3*Rq!E(~@Q<76UlUV_uQIPO60aVGv zo*+*VTyQiyNPb90Cf@kxw&9?pOU(XjE`c2x(Th))x+LRkgJf2HyUzzc?5bavDc}Y< zkApf>*_^DWz0Z@C_G{W3d6m-;ApWxjw&5fqyRp&Q{9<6EaEQqtuEVcCSFes#c5F7B zj2SDO=Wx3t^}yKYnkgbb6}iKAU?ZqqJp0=d^GtZX4P zoW#G9^lEjec2`~M1PST~MEizhz-(-E*hlo|J)U*Dv^y)w;AN*&s1!auh)1s2zkPF4 zxc0ODo$~DDib$qvt^ieKYwPjVn3E^p9sN9`OR{S$9~#&=6LNj~CI`({|}7+A7i7%`9p9x>;F$n&&GcZ2bz>z; zS^1LxOni=lP>WsczJ0Lr*2+q)#dqygo!TPdIs3@Ned1btQSr?akYd`CE;+B3{>Z$< zPJCj(gxZ`LYBjI7Uib>Um~r?^?8Qv%<&y}_aH0Tn$RYWi{Gr!)Pa1N&-T&vqzU|vW z=DJHQ3h=!%B_jsggVrK2Shnh8bV*6)@kL43X?*P;g~QugY_yOU_i7y6(?ZIz#(vm< z0b-*OT|rSV)Y9CLOCe4bnZE%YNM5frR6! zkiVI(?QGQR0@@+Psr>lBZeV%Fw_jr8dSMZSSBWykBwgb!i9ee~b8?cz;*ptvoynnl zxKFB&`?!vD+Dt3&vSzDS!6p1R^O}U~?yOozmBfJEE5BOOZCdi61%^}1q)35s+VT|J zomQx~=rgh)9{4R*&85Hc-R(-CKXoZ+8Jjcl$?>gS-5*8}^dN7BURjssr}LpHV!+{V zDpEW+sV5@NycfwCAFVNa)a%+4w4`~$?mON?P3g+Bx(7#JDQH+aJZ53S_4BxAm0%x8H9@e;dn$yBMzbFxd4{F@b{_!KODgZl+`hJx|Z*f+0sKVKb z2dJ%-yg!-m8u|Gc58C1o=RxW4FQQuHuz*QGFwm^)#X?f$7mYFRw>M|bkTp{-hiHd{ zEYtp(YMBA{3VA`pL@AD>R0R<8$GeU{2hT)0mPVDr=rE^@Ui8BH8em!u=9HJ>f(AeT zk*KJs2%Y$-ddGW8xl2p?*PgebGDsF3{Nm&2iWv^a@4n)H=zvjm;3>XL7oeo%AJteQ ze91(O3l$=cq#-0 zRI0H77uSossA57_02)A$e?$86604gTpY@-=jsN_Ao!daPEVMUw0vjz9eEF7c?CQ0y zgPNSoM`LMeomYU(QrGDnf38&!JIIA1s($|oj=aS$*hO8cZ}%2YTJ-fLwA{r(=&MsNF5L;ZddBgeq}`pki|*p-3hhcA-AcAONdl2PbO zlGBhp)SRb^I(-2{DCuSW;l~^qJiKsh|9W9fnVujcqm%+i%BNmS z(v%z2Hkr2rD2sv3l`v-$NnNw;#?6$8)V`M|Uw6`drkCHDdCx+JDGGK>6tbvuzHvP$ zbEy}0r+9cdag)baL`Q-)QQ38CvzRWP*D( zxO)B7szh;MROG_Tm8Kj^K8{XMk#lXXMh~KUHy?gplzatp1fWEe>*c_wyfGBWZd(|* zTx2AoxzO$Xwa-ESWNa+-9~i(LsYgxMTu5dk}`O7`OH&N^;2tFPC{N7eAwqd`Npu|1ZR!;2s^t?2R%lOFn~q# zeLsr0=M3~VBtga5%s{}SaJ$%RL3oDOijExHGB;-@LiAUU_rFgN$lK}fLP>JS;0D%8 znw7%sc`lr%Qu>%nt2kTY4ZWDmrG4HZo3CRII`}@b4Yv_ZB~d+}E}Ju2Nly1DM9a7> zsg_Q@?{OcwzfXnn@;b--f)1bSx&r6puank$6dFv?-uP2_{7U!=q}cADz39V2Wyna+ zhp*p%?&a6B>-la!@T9rZXt8nZ1=d6k;QDyv?$@^+_=`E?tFgo3R%Ja#K|uFBvG3BK z{25|FRtAbMmo1?~s#1mguR4wy&e*JjZ{bZOFS?wiUuF|JyiA*!RIOlJnUd$3d+hoc zj?`6)5@t4!FouQ~1?#BI!?P7xNEOhx?#yr9J+R{B}mz4XHHLG;F+ud?mU% zKq6(j9nBT%C~D&;TSl-_S3}3GAh$Y(H^-Wx;$pv_08Pr9ENp6c_r_2V;qZjm|nq}7G1ErcqIV>{6I1j|Bf*pcpB_;1BX|$)WcgD7dlS)d8+LzOHf`ahQ6*;T#MKtxIRUeCrioR3M z!s&$ESg*lH8UJd z&j8MTky9$I`yJ`-K+%W0t{(}nbFydCSrFtU52J;Jr2P2Skr&xv{M)IP0h5atBa~Ty z3?h`h$9?7Paf^$K)9bsJmqKR-lGD=-1ul1>v67`=FDY>2X1qI3OXxxg4Ezrk;(zFf ziDV#HBLZ$1#{7wJ(?~hPbgnS(yqu_Lmd>4QR+-D=H51G$edDcgY4Qd1XMsd^Sp9}+r3gpo-d+HaOrFy)lFG#PYJRHY zIx_42QC(88cRMedFzYIfi zc+;+~E_L=(-=5t+{kriBHlP{rO# ztvgx-1*a(;u8w$|$o))rk1aRxYO}@kN&#E4h=$%4e|3lI&bS== zVg2zNcvV|HLQ0&W>hH`rjGH<=Hv}81z4{uu+&!&IgKWy4}-xE&YbRqv}RaWb_ z&Wb`~vDgB+$IQ&k0V94$*GUu0>)=${#P&!eQq1;+BorD5MlVv2hv?+yCS0us8vgwG zlln+G6Sg27Q*Lh;H9Rt+?y8G&ynEs7wDZn;;xOx2E=U?#Ty)hLF&X=ZT(g?wm(wS} zakkz20DO8q;nwN7$;N?4)B_gxqd!HHbWQO)36t&~wIaD<6ciNHhW*m_^~aANA{G(971$}9v7VG+S&25volPh&?i!?%m$2nFE?CtH<_y?z_vm+^fZP=~OrKc(? zDr(qQjh3i?5_Az3UKzt9>ZZ@B(upXJgKhsi@adyf?D#$xo{5BIujCOPpPe+px0CE9FsZ{50e`i#>;Pkry& zS}|oZCK5tbaGIAfh~?zboUN^`cWD=GYkV}vkAHJrW-MHP0uS=;`Ag*Gi>QG>L2Ykse3ic_ry7TrhK>ObB?#k3!#Y5tT470dxuAzGom>f+#|o~a51y`biN!-5ot-sWQljR`s-+Dzoo#a(CAeY`g4&8Oi&|pZ!rZd)BY)K&u{R2NTF> zXO3!N0atz}sUO#*J!e1c?d^H3&uU`x&BxMRLsLDm%4u0nQCQP)zwggVYEdK1E76mZ zUW)^Ko7>w62M5)(3N4rCZf$7sUss;0d}&_$!GH1XwD=fM@fanwG-+?>Tu%nMwe?>K zDM`mzPdzP+)qb%=wnRZImN8^M;PX=NUgMdgr>sI|y@P|Fa1UA&7wu82h2Bp(c;9s6RR(hr@CUY!`f&; zWKzfWBcsdCdA>Atd8$-Xt6MYb9M4Gd=Ay7yKLh!puz;PD(_PO5oh`4> zGfmRoivwTqzbl@bnmU^bgom}YwbeGRkQOk>RU%L0;h*Hy@6;%qo}gRYSRmlM7GijB z-^OBsQ-(V$USUZvVdqrWf;I%4Fr`@Eks)gCt>-Q6yOP?SE|*Us7vJSRpZw~nkBKI|+isF5(;V~OXu=9z$|H>VB0~)>o8{)_ZkiE1 zcQd_jtT!RVSPT;J9sNHLVAW-l^ioQTblVO<^RyKX%L~nGP!F%)Lw=iYI=y=sd~G;D zm3gH)?33%7p%aL2c3Z}|2=lr?lOEai4}})>LiH0xlap3d74z`WJ%eMK7W;-;;O*cj z0xtTWeN`nB?n#IYT3jtC4i%Zltvg}K!qR>1ux zPmkfe)n7h*Sm`!Fs`i|-sT?7W^raB8lbgHLaq{S^>roXIE>5N!n=eN^Z&VU@k?id3 zy4NrCcBM#quZ&8GOG;8TAT;$xQ0MO0yEmi>Bu-CZuP;hWR<_{b_0JrVuJcPnWs6Ho z`caj)MUQC;U(7@p-Hh(l)>ANOWxMM*wisM1Q)ca;;uoF+D=`*uYbLVI4~X{2W)X6= z5nf*U!Sxp8LUTeW1M9%p7)G;OGwD&>!~!`i8yjIH#@=P76kBM^RYqCJ%`mjE$T$eD z2d_dnKCdHD7%@`e@@_!IgBFs~si}^;e3#&G7(8U*|3sPe5I_1eIcV5bx*XLR_p8Kj zwlHC#CId5JnU#vu2Uhh*2E$ z32uzqSO^|ENx=|Iy_W{>LMaxcR-{{d9Z`k`i*(`OO!m-u;6%2 z%HuIOyH%`F5uBLfR+r?N-26T4JxG54#!|w2;kvJnZ$@+3?CpCW?EFcE%>~VYY*NtW zU~csZCp&vTq6lyJdu!^pR;rGLg@qO-*scE8WzL0Y4PH+zE(+cD{4f>~u-+xP?#kkp zj0)aq=2~2v>5#&9`**XXp6OtLsml$+93UJ0>cV^%&R#kQlFHnSs;^W^WJr}}k81JW zn18AX!2H1aN%z4ucyB5~L!i(UL}L?1|1gn|W+#j@H4+}Ib+EIs@jcLa;4!UgC#4#q zoKJa)kfjpkRQvGCRW2@aUzQ5iI{;yV6)0Samm7AUJNuPS?~k#p=P93~fQ)}{ zduZLzD)O}@zw04+X!N9T>OoamD4|nRQ{d1SDEafDGf5%g)EJA~-QQ*7wf=fV_$^pB&Y;~ZURvm&@qBQxGyXTG zay-vLIB=6_#IV&Adt1Ao;gLHQ=PMZ`-9@h7*i4<6Ifr665J0-Sc+a%g3HoYRso3|V zn{VLlyHnf5iZ|ff9hY8YyM;C5bXjsEKk$fv6_x&rxI}V&b(& zSeGi(YyE}e;qzQad8T_N&}J^c7HlOioOQ6YoUCEh*3g({)WHa`u3Pw0NSIeAq+Gnb z#N1xM`fTrA(dSA3EqTn;gtp1Ebm*#;kMESiRE@$U2on1mkCRGo>xs;s-#MqGMkp{A zmJQn5DBYw=KnQnGcepiTyP2z4gr0#r5D$7{p*i%yD@zj@vi>4P3MOoCx>wm2;6`2W zPuH}B;I&l_4fCt3Jsf6<1csI$KS!R5oNDSN0!0k>^|oarZy={Z-0@w*}|TBU_cT`Bob}m!fMK2_Q(W%{&G~% z!Yy**RapH@u$i~0=#w-4Amer8gt0x8O4ITmZvq3ql#oV|>B!BIjiy0{CljJlQhYt6>h#IDvVtRh%9J8<03Hv2aR2@z z;Zu#ocI7qnn6_HD`gu&ubpAH_JMoK_k$sPc4jV>P>1J;B9Nj5Y*m)gl zaU3z>V(j4%WJ@?MysXyMH~WR42ST3YdGkl)FGwdIbXJydoCAe7Z(F{gu0#o#Kno2 zAtj4w`0RGa(ju&1Q>&k>np0$eU8_9T-1+XR>qR_FJ;rBw*uX1vwAe~%e7xcrJ>G7vJMBq|o>H^(_2Hz! z>TK9|6lJAmwR?24Bn~#y*^FGNzP)O1sI{CIr>jIc-aR&pB~yqAf~I+wVMV@yeCre7 zF6iXw$mh=qqr1I8&L+otjB?ah7TDfGvYGy_8N#ZsJ{WI1K!!Ni=PV>2`}?ennutwz zf$*iFr}pJ3x)nbAY-x7%0D9NN>xfOn&aGEJv+;{>pklJZ@oHcgn%AOhyGb!9rxzFN z(h_;CgT%ma7%YXf;v1RXsQn#)2QUk4LoT$g$Ae_e4;+WAKn^R)+t-(M3|-=_b+f^SzC}sNnK~N17n9!T&*eItBea$z|+*K4;98tRlY_of?r% zgtgg-xV>JR&x#WAJEI0x)53`qC^8i17&yqn z#JY@Byb5Vv^vXd1AY)-{HF*0~QOM3@IB{smWG%qVgOHXKZM{DG?oh6#tIpw`w{%)k z7RD$3vgKU3jgf=MF|S_OjdiVK^-*eSm+6@7kN+L5!f8^@N=-H374V&%sVHHDuz*UY zqwoMjS@SG%Vt>50*P#6;E)Kr)^YwWlG%E@L9A?n;EiRManR884 z3DonJs`2{mL-uRei1YIfv*JKZ83)t1y?_5~>})3{I1%dRUoe_T|WJSNxRUZNgb~v~AhYwC|oMRzga`5yUa}t5-X#NyQk9rncN> zTtGm8m>oyQz%a)UV)qhb%~;{nIR}(sVy-&4e?-yJ(u(*7#$`uvNG`5t9M?*?j(*ZZ z^mL}@nZL1Eh9Ju#|MbdAqUIsqvW@%dlqo30o}@_{-~j~^xpjs`va>>+c7D~*7(gVFuA{BzY?gg$#*dG-Db`&3pM<1@ zZAnubvI3h-wWrB)^%jx#>CxQPOxI%O@T&$MPSEb<5mwGYq2CX#Hs7=3(!7EjnuCxv z4(W+NYlE#OJaT*SM+CTK{4UElET{mg&x^FG)*$F7V$^R%MpwfJ%az8)#**NlDy&9#6cksJe zihxz92vM7AQrVI#m7P+24L8omyG#9kkm^rqk*vG#!ujA{)!kQ=TT!xK+RV$y#&3{z zMQXp9{MMByX^%GbLU!Xg|CRfk_BIWG)9EqY@3(gYlUiD`Q+m3;X#wz+3aM~LserwC zJh&=VpO|ePTO&|p7G~8-*}Pm3A53ckqHKk8Qjqcf0Zit$4{V&-325(TfcFn?UVC9u zpwxvRiJO6K1t zUlKNWp$C2>dN?}JV-h_2I6!;Re`2?G0hmM5BmKRB++6~|*(Bs4?^JSJt6QI{p0-lyIIx#TV5k5UdNaAx0K;Q27hRx z4pg@zvhUXjp_I_(Tb=8sjBI7d{fN;C^}Bpkc21gaY|cfswsO7gyyi0IU73zt5j9u{ z1t39lbMr z!e$}4^ymMlFsoLOf1|4VJjQXoIbUpFAm6!uf37}7YV*(Aw%eE9K8CUv*cMq1MOfb$ zLcW0pjVFz{8kw7$&-%j*5%FdB+c+VY^5YBjv|d|4F}myrx~~xE%uS;3GVI^HM|Q7e z)}Yt&`xU(hSB0d!SlA)@S)?x+Q)#}_hof^g*}5J}qi9@INT5V9dzeO%QP@b@c6yQ# z{OMAE&J(15dqO*1k)vIc{+89#=F~&CsqP+Ui4^C{u8TIws7_Gbq91!C%3luckC+J7 zbvtZN7oTA8)m{}^xTA^LYJwVnWxY(%He5MZ+YbQgBmI?z0Q_bXw1Wwr6G^G+^r_-9j}1(B;6{KIw5f*>3yIe zQ;nSGA@Nm=nxmKgU3Z(#@{yc^?b|XVUPtlAcL{dA3`UQH3k>}PC5~4jCh}Feb+;g1 zAd^BLI!Ylhvv6a^btSksQduyH0ojZPRkIEe^9@BnA;rGwOled~Re_umt0pP8Vs!Z=}3b9I*u*Gd_CYm={rV(jK?nruL@ zWEG_7B(jIB&$?hB5&pG zZJUvDzA=c+UZ6;-R!1Xo(tSErA~oS%ZX7hp_OuZ}ET>J4Ex2Ca(gbQjNbWk8sn5>r zQHZIwb4DM&gfT~Z$2g$Ar)Zd6XH>A_MVjYI0UARFNQ(c@&(CN zAK_I;0XG`sf8re6<$MGr%g3vpE1~tFAPxc&$rnblU0K_LS9kg|`!c?GXq%WO&&9Xz zCR~JT60EM2cuWHaq5q~JPAE_o?l+JU}t#*dg`^mikv!AHwNS3Jj`vc627#&>=`0_ zIToL<{#HHF=Et+LT;UPtP)haKyQ9S8FZ!k&7WW_!&hLNDDH$M=CkE(mx+@)uZazpOcie}}jd)NPFpfZxzMm^tg%Ai^i zMQ!6ld@XX@t##h{OB|Bz?lm*>OL5XNo`r}my7uo{99rCQSFh;&YG>gQvM{`RDH$I| zwCj*X+225;c)uU-M8ywQMhOG@Q9;j7Sa+Y{=Z{WlH#Ho->wc48XGTeLsv*Bss;_%_Sa#RtsynC6y*}HFD@D zTSWVZ?>4C85GN?Q?`h6KFwbFd($rL$?>UJNLk%$Q0y~=LMu}f6_LFrvB!1fh638Zp z8Rn-0Ka>%p?hmIt0|X6~1N>@yh@WwUwt}Fx5&4&J#n5beqEm8=<6SA)g6ZCmHp#F% zPP5mZYlipBJR%kk*{xo1j<>qwzf=6o;xJFwmy--gW5q(R`BhAxG7@VG<9pwE@JKrM z?i3y4YPA(GVSZ*3MPyySPUIy`>0YQv|8e)8iI!#Baizd`=-_CrN#Dc{BhSRPeBA>o za|-(^3v(H9{r0RV zM0yO?C#c_c4n*OrL+ zz3u4Zb!W3~n{Th9UcmDu#eE?ZJH}w-wR>NaC$_CKz`1NFPvU%H8EY~s$$#7ii~JF= z9QuI)R8P^Y<}b@#oU@C=4fS@QQ<)aZ(Z+ppkgOYXJ8GUIbp1H~C?pv;wlSn^XiD z+?|tP@i6~f6bj@?UgN&OLT@xzV*ZD{(lUi^_4+>br_;-pOii~_VeuFKFU!NzX*qp7 zjmlZ!uh1a2^EIIdEYP~vk?s!)zzcw~QsjGEVaS<3et-tj?z)px_!?j>`GY_1BXJ%+ z7v3O6DWEv-iq^kN5Zznc^9ZiAx6?+Epp2usDH4vq$}))4194_;*am2>~* zu}h4)@|@??|J8OoK5+gc{Hp9WfG}|3ii_JvsjJ34)sKsjI6G zaoi(_vCxNl^#=nc%3;YN6&^yKOaK%i(AfSwZyvF#J__WGDs?iT0FRb?w&y%%;(Ul! zjMqJHors7CTQ~iSZ{PfAY4Ps%bnRQE^i8S|dwV~F%5n@M9>>Hf_Dw&bEdMnqc3WT*y7WYC)U(3Mo zFw9WtDhCI_Q?tkR$h?3wb<{!xkl|W797y);DX;7qRW1rU81;h#k;-LueEqn>RHzRp)#R7&@nEPT&XseBpL%73HoU$*Aw6 zU+(DaIN5d*fSz~JhUi9dJQJtLc|e^nnVt!h9<`xQZUuB}) zZp$!UVT;-LeAxJIS58^;))=?cDSZ2UNHJFA*>k>s64|19 zI5V+Bwu8$e*O+n^7vl&<@^kgjG0nWGefyR!sAW4X)l&DXAr6ish0}290&G={e|=}CD%~Zp z!U3~O*qkgmpO43ntw9>ZG{HsOK6yoP!YDIi6=O>xFSK%8x=aD50=OwGa++uz_b$8j;b~-VqGZN7 z!a(QuufHm%80so3D~)7)mhPZg6L6f{VMrnNf+R00gb%x=yhU;r zHq$~mI@#E8d&U*VE!?eSy-bh!?i4@F5ZeaQ0hM(plLhUKrkTWRKN1mU#)~3VfZ-=C zBLi3~nL4Vsoo^@PP%8`?S8_oLh#1SOrID^V0f=gp7Wt<$7X6To1& z@Kxr>t$}{dgqW~Q6 zs`^Go_Wnw2^r0TKPGE;T7wOVgWH615j{r*yfOX3wmD-@Y6i1299sPc+Y^Kf~`_Cli zm8W9t#J6?KIB!Y#+lNKu{=s0B?&esJLh%0aR>}8 zab$Yh2JSE>jW?i{wmXdAh7Yb9s;j@>S{l-ehCfhHbxj-3^BwnB5rzjn1r8g7!3cFXW|4s9G!X||bu5w~YqG&4<=v~HfGFxa5#;+MVDg|BD*RZmEM!ry{+LVBHPtx! z*9@l%<9~5VTt}-iL3ysECNP*UcBX2h6aZ$_=?2YrFd zWpZ{%a-5}oz2`Wk&7*cJJ-XD%#6<^qRCe#k*>fV}f$N(1tziT}q7Cj`N*>D(I;sVL z(3ab1(MSHc-MZu^&4ewp<7LXr>SDu2y*HZcH3^FO+`BC`qQ{2|MOsdNe#RiH0P&vC zosgE~7?Yi#`aTCg4Wa^=1E(93-C+g@Y$qMF}kKrw2IQD$7;m*&}8{nfE`LPaJJkf`VvHLc(P#|8&M< zp*8x}aIJqCZqyvGK)*_j3)FWMMFMiliPg?djc(d%z_IxA=lNfb1;AcKu%Ij$$tjly zKrAP~;X;uBDTqUlgWpFfN%u+CQ^s=wftqELVwc7*3k@>JjHNl{oBBN@4G-sSZTYC< z?*&1PaI5hDuzOs`a5;b!OFgw}k0-BRzm^{LG}cQ;cb49F<^UB2rjamDr_IgHh3dI< zLT~R!#mtX@;3H&?;|81{CDZecO>)r$QRqS_fPw!*@Cp3$gz@}&P)2QA-KPBd{yrJt zZH+6h{SVP35XhliQgl@`Qj;s8tngm#;5BBzKMGaM)DYeXzz-8k5g<7IOwY$km7Da) zZKqNR3t(-)1{oO{7XYgVWIugdVauL}ZP#>63%Wdn4;&YBr4G@ey=eP%e`P=$AObsl z)%cmZF~Cal_VLMU8Hq*D`0geSFkG8rk~`cW;M^x)fqV$??7RWD4$zv6FsxL80Q?oa zs3;?#{x}t~3QZGmIr8J~hENWfR7XA%L#{oyX zb1YGF8BCJW(s@P}LE@|W(W>0f{EK=ORjQdJCFc%=1^2~Ij-OD+Y7jc}<6SagF(PEC zy21N3l|$`66oL*FtFe3d!vrUQXryw$Hr^mNx@A`9zrAHXZ4t6It!7^3eq(N*O6-;m zu)G0+o*+-T(2NjZl`jLb2B1ErmW?WB^`+KW3Q6>~*4_9-v@HgK*Dey()7fd9Oq*ZS zahWOH6VaFOCB@iaNmEoXZG-uY&I# zg3qal{CrnJ}yan$aSI)vl?=|Z@W3R z1pibh4unC5BQZbsJT?~%4tH7-F zD}E{ECw2QIQ@4foc>dG%BV>z^AfOlfybpk{KLnOmMtkNALvW=qej^6(Q^)->Q{jVv z(G4g)sOaeEgH2&hDrbg&n86}ofd^y{tY+u)`xroyyatz%lfyd!kG23SUq6J*zM&5LD>B9}P*`P(vGlTHY550Kc3j7s`zY zEf*;U-|R^uWYCA!d>;t;%k2>$19!kMe!{H;w(ugR(DwiE^xpAQzyJTZ7P3S33L!hA zY@x`mtmEM5*n96C9kPp%9YV%A99fxVk7PUc%slo9*}u!{{rUcGxATX3o^d^|>v27< z$GG3`&wSgqrM-;dm=%JYb~{S~x00$AX@CRC-I4U5Aw%IZrw2)!h;aLW%$;K6C>dE}vUT$v1 zZrb@y%LT6UA*EekNW;F3`b{`qE7t=d9dk34!pUcff#qKNb^6v2HTl#|3ylxJ_he7g{57>u% z7?!4CFbjnRRS9atcA9v+{lsJpB&HAfh6c))G(DTKzU;-wVYC;@AGpG%RP>{6wQvR#vm1Bt${@F}a`iEEH>R z))94YOxTv~qdgpUQ>?;5}w`ZiOj;EjqM%jV&Q|yn0B$ zx_``1%=}&XR@GMtp?e%+o3?9PThI6zl*0SimMdU{_pUt@4EK>B3!a=SFZ{W_NUd*% zhK%~U5*xSX1cSckI|ABf0zAd+5P+B%J=gN~_SWN{3oV0}zIk))7rvD``fu&*uENCd zuuh%!;(`QzURZVOy41C?PIi_WjN;7K?EG}xmkr0cpE#MtndKvN;;113KK}byOLa_n z&AbNj5_%t^wW0}5M1}bEd)8k#2^E&)tq_%>wmf{`L*#O-DKq$?Lbf6(hzV7uSM~ss;u4M-!fW&m@)Hi&FTJvXtT4>Be^T*x_Fc8Pvp>LVQo=eD{Rqm@=DyySWZZ>yyrax{qCJH{jwt_@aWZ3x9&}twgH*KanJ`@&fUsii z?Gh`?YielE&(BfjzC{tBA4#gI^sUkb0DVbmp#X8_oJKQ-&9|g0SgINjjwx;^A8Z8m z8eu7^jR!&=C0DI)&EXbh^k(INJ^zqmXpH@h3=*np{~uf9=o=u+6%RgoL%_l#5Ns+E zLAEk1<4oT&ZL@|NolaGDdCK_nlhg`NG739xG>zp+zFV^HLDkEiLzfM7?EvQ7GZj_XbG4ES#=&UzoWRy;f{}3i&@tJ=!B<|%-iiFzOb@V-+ zivd84$)GGtLnaBA&sM4RgDnr7h-zlMjQTzhym^9mG~;bL5xB{vUsCCEzeq!|u=c@p z@a4I9O@<+g28yL>6_#+Bf1RIPF3Q_18ZYG#O&>r0X!W%t$psj)cyecs{yCFzH2x0`SU@g zn8lcC|7mM_uN^dkT<{<{Ta>HRnElTwC~e{w!3Je+%MzV+d-HqJ85 zq6Y0n>m}_pgXAwmp#)_>2ujDuSmHMjaNKJuNV@k>-ud^$R~2slE-?|2(84S~BCu>c z{x&9o2ctfVk=!o&5=NddEhK2@-qo19fHeX7E${@## z?6N$fKllPyyIzpq!*FeJPl6@*Z0}Y4`{U!r_Qp7>*dB;=sP!&@XU(VCqaKJpP*PI5 z8dte5ZlxIFR5dUevOl7utyi_1epEBzZWh!u4AzsRmBm(j!j+7ie5so|yR-fG7=5sXf?*8n;}LhD%DH!7b;O^?0Vc}`B|WG&CK z^@U+_yFktKkcYr@bFh5SfkAK;f9k3)3qbsk2Q3=}<@X5l8xZd_UtUxQL~7syc0e;Z zZd7Y?za@e-h^}TX$ls7d&A@b4@rtD`Uok-3$qIWgV13yz$hTi5EV|j)TJ{Ii`B3fGEmn&blO~#Fj>5Nva?Y&M&%R*S+l`5mP2F zY<$vKk~>%d;ksf?R$4;uCr%qEr9^K=s1Xt=EwLO zbQ*LVGZT?`=|O3igO)4jkG4mBFZkv0DGij1)r`0x=68v1{p#=MpdkEQR@SfY-Ds0z z!vB)`p}c%Nn3LIAm@tXXU3(S3h^4lH5k+_M=U8U|1{+dT1Wr_M2Q$RYjZVu)Wa9N! zNYG0gdImy^5MJn&)zy2dlz_x=2LRH|z?PF3Qyk_=o7#Z{t7ANW_4O$vTau8Fuu%|> zcR*1zX=uRVC(#@h78b^9o-@5$LJyTFh*KD@9MZqae_tC`^Ny+6!)2kFv{HlILoEkL z1k%c{j`nDJm>@SSwnSXDngIh<)fJc~49K??pid&g5#e=yTXtt~zUX+xzVmDzSSz{L z=8t1OV#R}58+ngKpGQU;fv4ldLi5FEdZ?P8^AcqJj&s{mW2k9CjI7U?Mczwa!_~Pl zzfX`@`)@1Nf`v5)VHb1W0kFg#&ZjRuWPjbKBUzNr%R}{G<!V6BS%xeYn$ghVxAu#^zg0^z zPDz-K|F)T>uVJs9V%8Hh#9>3NrEkL#DTd4$m|OJu=QCk{@Vi%iU)S(4!H!*nO^VU* z#&T8wd>ipfQHO_GrYb~)$rgV_CA-a?l7Hf8XxYfK>9AT9oW6w$X zGw^5z^MaUGOK`rWgqEq38Te)BCxoTp%`k<|x_TyoKN4i2Y#%AB{f?3`Py6iog(A~# z_u~j}Uhf@i(E^5C`HXn$m%X(4Xvt3BNQ-`Fg&jN(;^bdq5T*YI%ovO9J==Tqn54YC zn${vQOo=S#%{tB+#T1f?W@jA$bU{b+=hMp(#vHj?T1}i}MH;y7Q`$?q-`CSa@I;Lxw*;$rr;@;~C4bs&Xz$6VQBqHU zxdhCZHZo6w>u;VsSSXh+n?cM_M4Rb^*L*rChxvY|4_ZyS?Rz~c_sPe`nij_JYcHwM zIunsk*zf{Mn{v)h`kUf}X8zspNADlYcs;0}KRVsJzQJhlSm|7!fg9?BT`_Xy5B}vP z>Madg13!c{48y_;Z1W*jBF?n-!1$ut**W!~$yR^dBx49N+IfrHE!%rmapTN3rP}Rg zcPds)i0?joQ(&t(+M@M26Uw7X3EbLE!1;77j}{k~YF}9W?c-}qk7ybaQDvsd zoA}=H`vbIwfP)XLeKZGw{7u}8!yi(-il#~sJ)>{!Bg;5dd1#`?ySHxkR^;Et)}fS! z#s278pT^4WnC0-4q@Ira6^p4v`+T!ME-)n+{sQ?v{dTU3k#eROG8Unh^Wq1YF99SO z(Z715RalthMjc8h&8YG4#?ZQ2ixZ7Saowz-pAjGHYw4)yRZBriE7`J8n2qmDt&C}q zb7h)Un)$PrpLvKnYSH20Zr{5qNS?ji{dHlz8;fariE|G=JjwQb)VEvvqvzhLu5m;5fXqsi}MvyJxnp;GCcO=c!NGM31ksL~`K3r)jWCkNAY$jC@qLpZ29kAn!oC(Apa4}+U#4`m|^Wg9DU^=yr# zIpXzOregLp#=g?9_B@rLs~5;a>zoTe`>KgW$Df z*WP_LW~I=G%#6ouIZw}5)_5Y*#+Fh0Ga3wieBvanIJNgqhML4;zV~RNB_EXm{e>=l zhil3dHx(#uq6K5@MOSL7+n*bJ(%*303P>BBQd4>>9ghp^o2oAPpepy+#i`F!d$>U= zwbvi8YKudzKBiDgzBH+dGs--yPOvqR)UT@%%#ugO7gn6kk3%s~b$;0pRngL8A*2(AA{ zM~~4mlRc`In}e4~Va)OkD618TMLgr+OiePzlT$9TVBb&C06OGHUe>EYQ81I%tjDh2 zN!6|t_?&o*{6K4JJQ)3IVrsHy>A1cy+sWn&vJAAUxI`GyF2Tti;J-eL74sjFnD4pYFpX z6>0N3VEUgDpv%PS+`Z$MIR)J;zivNzV7LwmIr@$yjn^?c zDNGMEie4(gS~;osR!N1U%U@t>d!)Uu_oba4|0D?E$GlKRZ5_--r#fsrtp48}QoL24 ztQ%4-+?iA3yX{S;_T?dM>$5jchJ$f^(mVX; zQ|q}JNC~pCPW=h0=@@f&O6*DSaY}X4sr7}*?BHr?>)Xqfz48(|t(qUHna4{1Zj|gO zJE>$ks*rT7+WV07iJ&wx&tIoL+IUi!(yi9U4u108DADkj^Of6-OHf@@N4O@^RByby zMT7B?BlJUbIdp}n8aF;^M6(@n`>~WpD-A;* z&H(|;6@R(pt(ZEHl5X)OdUag=0%53&s`_eeo#CgVySUY?oe)IMyAz+8>z$-vd8FYl zx&E6}@Wx38V@7!9+@zh2<=F2C8q5EE7);7i44;C;Pe)KQg}01Msr|R}6(}r>r{WR= zg(H*N*M;GHPX0!jWK=Lm&lF{%|9b=WHi}sxga210<%|6}NeO1IX?|W>OZLgP3AYj= zu8js=E0CSB<$>p~V2&qJ@TNvj0-pF#QA{=dZA!qWiMyV5P9uGapE%$-b10kLPheb( zuBeW`!9GR1bY;rmRWenJ`rD$>Hu*zJV_em_#PgG|K+g!==Gpui`8B=L;}3M?A!Rs5 zg!=NOb-?RmHnC^d+i=m%Gv2Ma3K#RfPg3kJMqcMJC%IXdm>omN>UeLYCjJPQe$z$6 zYw$lq8wE2m*n>#bZ+$WT%RJ=&VF7x*$Sk+puyAlk+q3#+h*~p#&(b4g7?_y`-oBMRj&!-^k)XJx?pytv zcuexL(Y=xTIW4PJL*w=46z7e146KGah0;t|g+lhw!XEkjW76D$>`6&IO-Dc5ZyDG7 z)4_ip2bIggLgG!%WVk(Utm8cW-T!Z6ttgfdQ8|L8hc@#R>svxoe%beoI@8w?J=4Gw z{``kZ*rRImTtll^1c~?A4qwn%s~$I9L1!TF;1JBt*S;N5%2AdQ?`s43M*E$I3r0#P5x1dkcZB^s>1b#i` zPthl(s#c5^xr4el{6Bj`djTUH2@SuEiBKl_KLdLjL5I;t@@S}DZh#9^|FeplgXoSV zwv7d^9etqzVfg!34;*4 zb)~tDK=cszwDsQW&b9r?A(DSCMA=HtYqtm)gWpYjJZINnJfU-7hNs+BAH;WM$^N3~ zLaEyL`{>WzPv#o4*exuIUF zg6W82p0({Q0d*-WYpeHK0*(=F!Xzgrr-M}S!_SOVewj4IjI>+_0o~{g+#K))uUmJ8 zCE}`cOv$OA-Z7Jl_X!T3z;-{q9{K%y#mV5zaM;C91z{2;TBpqS8l2_tpFbI{tXPex zg8e%WB5|C2%SI0oL3x#qM73;fwsS%Wz{nXhssH0_5zivh-X4$9cjqf_t>y6`tBESP)n1#M?CzcsbZJ+S)! z0>q|lkvboNFn6TL67OB2PuZEzBq$Y}Wyr$e@B5d*t$;bdgWWD5uF=xKo^A4jU!>UD zP-LUyw+)BWf$zKZ@~OxNkdUYS)G3ppH>jz!gLCD6v+Wdy=Zf;YWB;OfExpD;;RQvq zMt(4Nr5UxNaCAV|{lxDgT( z(j*v_;yqAM19ce@6c$fY?}KXL!%A0t1&6y~)vMw9c7! z_?@of5;DdcCZt5ybv2dj;BR8EQX;6vJ&6;1{Nh=2I((V_u=sY0NM+ZRKdPYY(^h0| zKdRK1^mNL0R2ZH%w?Tsa`VNX4K$2=WsVMVAU0>2Gp*2q!)byGW2cOJ2W@yfMPpdIr+P)_yk`a@O8t zQc}(_+6sOS9zs2(P^BCS+YTwPJZotyHW$SpN7^}3($TAPu`rerT#D|)YL6wGboux<%t zRN?R+13BTa>v(i9dB6B+` zT$xUgl>|-&UTP-sm^+#MX^@$DUs{}9Cj|Jy{>LIj$1;i^2+xA#1LRo2&%na0 z<6q&av_g^WAn8_I5U#T!l%&V_4d_d}W$t6*(wLg}IK0u$O30S3#qsd5!C}_+X+H(= z4qGZJYmN8c63;spRzZ%VBn)}b&2OplZ2^lE7WsaVg~1}yci#S=_s{ zd+AVXrZ27;R!}@3hP3m01E=e<6amdikHN9qIWBY@d3n#dD4!R;s!m%Vze%yPqoVCB zgnXpgQI(bieK}6bC)?oGxV

_9>##`ml3ZyRD{2V@yueN<=59SViMs|#GE;%_z15l|-oy?Dt zAuBzb4MO27X73H|BK@`n<7*aSITHUSHmrY&1_>}`^E2i#c!b8TkXfPLn0sQ58U#RF z4RS`TKL<^_p^To?vsio{n8dXJA;YAm4!LMsbh$mKmzWceU8Ko7_tk2ANmb0X*Z$3) zrpMlp)_Dt;(H0Yp%P7QUs2pCTLEub!#-5Nl&&6Yn(N~Wy3AVR&?@PKIT==4OW_9V@ zjQ1t#2hWvRJsEMlfKC-TnoxG|d{Q*E6h~zJqN(#x?0lig*S|BfQk9b z=HbbAh=3o*ysBb1C-6A^@~OSGNv2|lP4m9`^7^31SAR`G?gdyPYy(h%0iLHF0{(0v zNq{&2FbTX(pn*|&SGz}I0S1JTKwJLPGUuVm^;eymgixev+B4Sk03{4ltk>lzGv-#x zp+Eq-X;+9S)w*43a2MPgYS~rOJ1oU6lZ(d5Y`RSox(Y>MpLW;HQrAtPe_8*mh0O}u z+<{%uB!sR%qiJ#}ub(~nUYHRGq3CWMcHM(-<9H2&yEM?Jn?_USZ7KNftHrFQwjRxB zN%sB$>eyr_w5sm}6b`HOHoqwC>7#zX(>VfKEu@*0=d*wgv-cHt=F%~O-xK) z@>Idr3PW(&<-Hw(R9*YE4$@lPeQc0Qz$XY%moRrY`{mDL=MURGy>%EGSk*>GM)_LB zpK)Cu5ap%sZH~f=ka8J#iC)Hoj@M=qezspYW?f?)2P(?%o)7Lo?;4nG1xD8p>W@7h zjrxMCM6iGX@quOJmpn-VK1B5jGHx9&Lj`V{^)!#67uQ{AToQp!h`{n@yfE=lON|h6 zVfqMz?_i3yX*4i&1Po3+Dq3&5=0UFl@-R4hIA`df-ssrUrrb!`dht=Sd)hXq zjO>o(E? z%GygigX{Y%T6_|AymByU2oC_Vdp;5i`yR|eCr_5SqZT(ERW524PxX=ayv2ic*37X? z~uln7KNqD83fnKpEpoh7fxQs^4otl4F zKhA7;32uy$MO*s!ZkKbbuZ&GXcW^@`-20E4ZzTgB5Pd?>3NWs3O#sa#dQ#fEi?~y& z8!A<>ukaUX0h|Rrb+{JOtk~65RAkgs&*B!Ki8<~Z{;i>Ye_$=n*>B&$7F}c&7izj` z6iD=gSp;jYdB=N7e!ucdBBK9!8JFKTr_^lSy zKVU$7wJ9uGpz*58$jQ0N^GUcp!I(ba%lr1JTPgQ&o9og92#RVKIyleQqVqAN%`I-YeWJD-QzFN{bAmaicJ7gw(JG3&3XsS?Z7 z7ol;*V5sojB#2K-RYN0~2!%45BbgJ0>Hb8{i;xlm>XvU%ket$mU0}1cvFV=cbw{oW z8$Qp^$%#h?o8QN-Yfya<1zW$n-F-rEpOJ?IXoc5 zbAW!H0s6PT{tZCz`?_;qX~~)e>E+DaNuvD~n5d{UetdY}bf{*dkN2n0x5P4WsN6?K zbrjpJhz1~IS5{YdtI`ny{NIvKy~|SI6-BWKqAKSRYK1JBb< zrH8YcZ}9kB*>}XFqG%!nNFosv6MuQ#pi7q6M8B?#5S<^@`JX|hq0qBrnxb()>Eiwjfme z0QhNZ$0S0x1TlTO5XjUZwmx3Z!CCSE(#{Uzu|-}AO3Gg1UgC>+ln=rj&(F=xu?`T6 z$yBzr$u`=LjE=@S5*G9xpxiG8Ief1zpQYVj2vnoj^SQ59dwosUUaRq2 zL&@%Rs#t|l#m_OC529IN?HQ(2(NR0+@h$}O_>;+NIZ2iW=njOT-^LbZL<2w@a4WC)Lf{~F5LGE6VQ<2TAfEv#J!symb zYfwi_2Tv00s?3h43NWR*07eVy~FK1`SC~yk!vZ zR`Z0!_g|F&a>5ldb=tW8YRJj#t1fi?@Qq_WKE7X5VR(Ql*P!oa_s8Z5f`+L_3=v%7$G^{2X%Ania z-0py7jcC;1a*#e>MLHAQW0?{Y>!XV03a#g8pw)gFxE^?x4NT&fLZ|6s8;DXUl;GJQHFf4ypJ`og6IIi&*{Ioon>%bNu$gc@zo>Sx z(j(f@6X=Pc7KeBU+=?js>6`gHFV}BCrwt@sbD;f>lJ(rF$P^sjTAeww~%bPVH7 zJYxoc5O6p+`^v@+cbhZk_YA&!ardX|RIcNL=;>kPj0TfBy&6-_(;M%?QJ8=<(n2z8?C-htD4)}I4i*b(4F}+GoQpY zus-C>fX8-ubS_y*mjcEJjjy+?CaM{FY9f!)2qY4(t=!mFprc;0$8F3u?1!T+36vHW z{JdWz1WqpH+M5>NO8P$xK4#bPjM1D`vii{iI}L@mm!af3j4GFcfJGMJXHHH|Dr)Mo z3_B_y5Lj07WiZ{+c`PVz>2Y~(C%q3lD!hIC%iardjkko$v%0u%6(?5W6ER~8+M@pC zpH5s6W0&^#dBz?dJU+#NrC9`@6$*&MD$DlP))dgKcvMU8AENXq16V~kESoeKH1o1X zN%e<{&WkR>a6$8!07j|~k z4m|T!VTO{}@sIiPbAhg9UmZ_I$G$?%V3XO9kx)5Li-W7(JZM$!a#QZU^={-}Fd>4Y-wtL@d`SA*2BnE$| zfQU$>LakvoUUy+-b+ydIrheD(N51?woY{~3tKC^!7~8qr?%RTb(YdD^8yd8r1>~6{ z_RB6`OF7w=ePz>;w4E4i3A#edp-pD=(qRN-5Aa#~mri2AjbQ>caBS7b)2M2K*QVFY zdwY8$aApVst|>R-a$yzR0-%V^{lpAT8``4%vDenijn<6vTbvkKa-^&+wOVxi_7M*! zvglLQFDrf*wPc%Vwa`3+;;(MJE^2+T)r9+nera%CM1r7fa2ER!ec%1lzWc)^@k=KO zvz;_5(vFATPlk(%KhJi8`-?RU^`t6&mlEPWR&oD=#3ci_mF1`?yLl;5_|Yks4$|Ki zc?CI z4`%Z@Z`NzJ{fUGf?GlAo=PDl_VB6VP%%Ll3Yim0Tsu0nDNv4Ig5nglixvGy10o+oi z@3ia`sPBD=jFjB|24$a}VER=|YMZq`Xjg+Y>G)!^L5Fh&SVJ!lbxXR z;;7iITel1beJnbcws*mY#B#9Nd9jKzh4X%0S^md4+bc~ROatKWh{ioPw6^A+yQPh_ zlIL6g`jY;YE*^3ME5c7jvlgq__&6{#auxHFm@^5d%&w-PQ4N|V$V5tX3V>Nf&ifA> zwEZ-`6wC$%&PEICC{=7K@iKc1V$Zs2SeZTaVd&O*EVCLdGD>oG$5nK#d{Tqfb- z3|k!-kKZdVWegtP{CN4*V9|%Xx7?BfFDe{HR!4DWPEN(McyM)b&wHKN$+swqFK4v_ zxn8c;FU1IPmAV(rt#`m8XnRtd$Iu#Tix$&t-PI|A$cDJeK1cRE) zbDJ&8lo9g+msNd9k}CI>3zN)!@t{y)ubyIx;xuwrE4-^7nHni(gjbrl*OrvpQv@pE zR5UbC!_P>S$UV?eIRj?jw{<0UeGtQK1@d!hoJsYg+2;i=54E=kDArRjJB5ZzCDo%} zu26e*(NIx=f|;MuHA=5$m?6nRQ5RLsJJZn9SBJfXxR*;=A_*m;e&^Zl%GeMoIKk8p z0;I7)85BdCAkMKV#0DSJ*ymLfU;CgZ4l3*5pMddo{2c2V96W85u7Cx^E?onr$+NfQ zG9SRMj&JiO3xMqeNd_efpQh;@~N}76Q^fW2KN(pt|Tc=xnW&W<296L9qOjs zaFGeVLaKKHyHNBUsv8RQ9ko``kZVodB5lI6fMrTcOCPq*Q`6GEuNi*wriAGs+51>Y zk)(DZviI_lN*cmDA^XUM<P~&0P1_^ZF*7i0-gUw>udRMzvqt@-(lDM2W zXv!V8`AtATpwgbuJ>%6RB1G1PdLm81y7Hy~HDy^C>zdmzHO(-~&c|-f%AVVwnH79@ zfrf1hTn+Z!OI1goSj2-Xl7S@r?%AajLWKKokSK51g*hNcM)GKEP)nc4{sy zMZCKBO7M$^RTr^^q!P5E`RSzx=cgtop|j`)bAHe~e5l3VFzcq6nmgS4L#;jGckuw6 zN>JTKqcSP8C>66Q*Vfl5XWby#y|ymQ`l7}0McZ}*+KSvMmD)N;nxSdcED^>BpkMv# zMq%Tr?4Iv7?107yjt|KAcqa^|{C;~Q_qEW#OByJcpv~5BD*GN!gs{H4o03NPV@pvv z%s}SA5&;dg$nkhdl5}*_cUJ-1g|9`66730k58?7>vKC85u}vA4RV5l}&z3#Sg5Rw$ z&pggBRF~}bmyGX5LDrbEb?@R6WMZ3R$IPnj=!Y8%;8cBcUTOp+R1Ig^0Iu9P`=Buw z^nyV0%LB+uzv;fv@|s=3cl(d-#cQrE`J=4B)(iI1d=S}gY7TGI17%{^kZpBoj~u(3 zei2Tt?PQF{k_LLpk`M1){j(B+y4ddtP~mY0v}ZG__ZbvMRCIJzN*m}`-DQ9Vnwy`+ zi<=G-FpaO3!|q^?fnb?5z!`1`=);n$VNO>a;86UFqMi0JZE3f?fC5EH`yNbVnOJl) zDfQON_cwg^Yx{|#;S=GBfVrq%Vj@Dqk89m`3$Qt35ga zjnNeBHM%zeiAGQk0L&%abfp!1kZi#>EX#Tih58Wd36Pgzdr(2!uP`>mr1VPteP>ol zjb0K4Kt}k%#qQpLT`!2s>do!s4w|ZYS(#nt^W#>>r#~RZ8fx*?`d2MENL<}C*+i?e zn|E#vt`~cN2RQG`Jw*Pp#VTj8c}=Za#pKxDT4}v&#K_dj}?| zVvUV933i2C%BR4nE?mft-n}*P(j4sh$cp!O=R?$3ECwKWqV1t*H|ftK#q+={oc3VD zuL9m=_B%2MZF^^Xz@jn$9(4zzXmskjhVrzvS~6uG5KJxEL66%hbL0S&Bpo0wS&p3l zHRmS%U{kjjmm%1iZb%X~@6QQoq12=eEpW3WQAPH%bCre9`z42yUd${5(4MV z8|^Nw{DXL~+sEVDr+~2cdeBm1&;Z}IhLR0*SE>ID;)r2_6R0$Jy=2YMlBfMtHtyCG zZ)%|?<}o%M4j!TSO}gy4zofbRil6vJN;U?dY6N0v-AQv5cZtyTh*E!g-Tfz1Hc`N- z)7)F41a1t73}`z#;&sRJ^$LTz)$bp@FE6O_oa|UbUZV~G<2U7|kI!IlENh;Myr+Ip zOWq)+@fKHmt??ran_j$i3M}oR`+(=AgMxbI%lhD)W<;s=&|2Y7nXpE^%}D*W`68~o z3!qGlw<3pR8E^j%H_r<#txHCQc~}z#ffJxww{&hlK05na;c?J^ElZFHfx!(>zV-lW z!PoEK?;qUU0A8)im;*{B_~ZH3y)%#KtHB-bHKfWgTY`6~g8%`&G^W(xMm>r9Pm5WL zNr69}Bo$c>#Sb`;+y;s(=n(^hvo_k#+W+mthn;fwt@!AmbJ{1fWU^=i+!bCBoqqK* z|A@?aaE8-^u!2xb<-$h}{+UjC;8fu>*n!_B)2fl&Jp;t<^Yj+5Bz5f5WW(H?8YJ+k<9?YOajIWJ*|KJt}u} zy=jQRC2`9B!9vk*IwkB8m$0d}EY99qx`ZzL4?lQ%o~ugKH(j+ziZHr}wq*T25M_Nc zun*Z^)PGlCK=vNuxtzr2Jd&^r(?Xn!bwv_Xh_944xN@P4GAV<*iE~Lt@$Hyi;_y_; z;wjs6h+pTJHlwb^@xL~&biO)oR7s^a(=Rwy+g_&DE~(^hzKhTuOykw5Y_H&C=zti`v*S z@!~02?i$&!R~U#M%9ySQ*JQ_bg=s_wbn^AGUy>T5WhBUsLAa63%{l!r2(}!FCLz;e zB+}Ix`_{V;i6r`pX#?&}lK7OH>{ofY)DD2${z4+jx%x1?o;c@LlD&_ee({{JdyB)3 zi09^ny>x0=OW)@*1ynIWX@e=hI01g;rDdCW9Mfy;4oKj|Jf2fde?0e3z&ibL<~HP1 zFok5;$P=wTqW-e8?n2!%SF*VgY+PR&f9HrtH$w~VeZ`2ofs{Rtp2F)IrgcJY`qGu5 z;oH%$8$)OCB`F7_NpR?rsF$aEmO=r&q&*$7N?(TTLUm~vaD-}cgnn$Qc)IclC>WjC zznD&sJ?{3|4}of_7wok&?-*QJ6(&@gJHjoO+0vH*h?>wv@9MPQnJh)bfN|+OItgj- zC-E19NGLe)px4D<06$@-s!Z!~>a~wLNX*k(C5ggJL9ou7UAiPh2E9LM^7Z*7(Bz_U z*?}6IUn4yJ;%bX`#iue?#pCW6xhPK|+k8~W-bVn}kqYRJRf!UPc^pKZkaz%6^0CuD zG4(kNZ1tJlf4o)>#q86rzy0c;Uo@Cl(^2c?i?zJa7j)3}S`#MhW;UJhrcvX(=-H8j z2hhSXc(82tI)G(HaP2n-EIOUezrmoMEK8+#*IR{+KSp9glvuljBBhAnmhUzUHc1Tz zsO;|&{rj(KIweQGViX=Zt6%r(%*yOGFGMLwgxNIOp2w(!C}DyXSifQPXujfeumAd% zWofaXI0V92{sLk!O8obSJNak-rymZVBD48kf4^BI0~r@_?f?-Jol$h&v#@nuAZYTm zKZ%XOGE(&m|K~A(>-+k`0>`_h_r48jHAnRyJ|G`r>-#^x>EV0*=eYj!1J^0_%YI}p zGN~qx9UQ1kBw%TTu5USoPhn%3K1PuKJtX;b+mycm9zcKp=STXVU;Y32a}~TxRUZC5 zLCJ^;p9tnbp*n_XP**Y8|M#sKeI5mB;NI|4tE?S~jI+(q^OxXI7nF5)RZnrl@ ztF~{;yxXQtc=(VU7dKs|;U4|K4iTcE1w+MX{pZJaK~(^`SOzX~tHx&VheOxldnA8& zXL$2%w!bBd{zs?82^W>q=~2#0=LKf!hMyiByL`=vWt^*lfR@>{gLm#L{amMY_+U;9 zOe+TdJKSWpcgzH+k39uRlW(wXyBI{9=7);IS8;l7;^tz%+^F?oX!Dry24{ok5nhD_ zD_)nCK3b(|cE^9~#&7LwpC@DPN{h-p@>zH439agaqLI!|7U-tDqb^eC#r#s)50=QC zv@ZSU7>`TnAX4Yx3PU!mvzlN%vs>3uebs-bH#wmK1!KGRB#Ek(tmFHiZ3dt0Z>Pvj zX)DNH&EfdFeq?U)r#xi+vNp;y35}s z{O|uWQI1o0s7aF&wl!BSwdv^m`xKWC*DQvkxp1lB@HJcAYi$b5^lXEU-a5Q{6(WOg z9G^IqPLgr>3Aq#|(~PhSb%=iC!L9Z;O5~7pxat?L7otxVI1U}Yp3H!U5~1?H_lhk% znO=4DmdLHc51{^DDVH%=DEQx@8dOxI_95!Y>JOK0<^mGs(s@>gTKDjj)SXTrhb{bn z`=g`ADMG>8|9KISqsI4yg5Mtgo@`)?v2?+RetwyJc%}(^!rXhFdZ@S~{~ef)3&!3P zqxaRM&}F;n{*?3nADhEBWVDVGHfAL-8SofvC=Gk^(&gWa#0H6>fz6 z{!bQ$nijipEUOILYbmD>&s9eoV_wudW6oo0H*=T?AfU8Acu`$2i%`8(bhzR~j0xO( z?MZQU!(r6QoT0BzW51PD9iD*?m-?S+=OHbZ8RGYx$4L+mXMYB)hE@gm<&>P+8JmmM zS3f*Zp}fjV^|!+X^M9Yh6qKhr_AV5^v2#r=RgpNje=uyzKfWX18OKPxR=v~lR9}^N z>Yi2;C_tPzycm9$Qn?z?Cv!10#u8$rS{P ze#c!t3@PL?CL(Ed8HYEvD5*&E;pT97>_AWXyDL=w`+TDR_Ya3p`Tyd%T$jxLCKobS zplJ%Y8R&+4RE!v;7*dLn!^A4I3c=R_g5}{+ua5TR8u41sQUNkM?tBrz9FPhp2&wN} zX?F&nHvEtZkTMVmU~2;8Ga5d$bA8s@K~DNRKEj714kCPKHUMZli@wecn_StwpYRM` zpe3OCruJvEo6SZmKSXE(B444ozp7cGm(4Y|vixsrti!{_78VxJbFT_wQNp7hfO2xp zrRnFo!GO#{8Ig*%0>FD&#ZkUYAHPIJRX<{Q^FCX@`Lf^Rj$ICz_Ns;frtACa2QvUa zoYw)$0*ZLJy}+-8zx<*=@Iq%f7@Et<@?YnKDtDvnTd~6G&^X`_U|)_vcvZavZyRzz zQK9v6c5ioRpAKO*(L|Sq!Nh<{{%|uNXoW~c@!#Cv1#|%46PdPGfeE3LZEjfrbK63z zAEYwdo60qc9jTl7mr0Jr+`B^G{BPF^8>{ghoBOuEzxHP}#egAXt49WeSQdI5P_EpuVHW&MWL8snr?V` z6M;ZttjqImb=Vnla&S~eje-LOn7C4r5O#ETd-dPaEOwNUZaTaJ5iWqzNx0t+dg_*+ z&kGK%AS~e~{1zGzc#3>>TYX4G#HZO=WAM5oKtu^T`+&WYhq0Wj>`^zJ*Qc4l2C)j} zskCyDM?MuVZ)d^JY|}&6{{^=XZx>!pO-=Ed|Ei6U-paO_*RaKDKt-2P2zNnjMuu7I zASEa{Z7gWZ%gcL?SbYM|KOllArfW3*ixghb9lyjufjgX%vlHEk!h6O+v)FcP94qUV!#M^9-*aH1@FU;`%mGz^OW@ga=PIrz|J!+E#XzbY%xK>S-MD(S zA=O$>Pwz4(=W=e*qj#4s@$gU<6cnTbzNGj!RQi)(N++MoAMVyj%WA#tgiS{9vIU>t zZ7!plWqaJ{kg!=y(@DvL&?dLEFd_nOmY_(0f7YvS9wsjiSe7oW>(7)hNH<`a^!C12 zXQO0hW(Eq<$y}s2D3Hf|{d(!@r;g6fGM&uQIcox{xlYNaPlaVv#1)4!b1TBn(!E%DwP#?k$>KWx)xA6{M|AJ)PVyN2XKLZ*y>* zeZ3FnfCyNeS*t_N`vTC^tZatbAKc=OA$DLoa|2lARURkIbC9fcb#>QCe#oBTU}j-i zgn96j-z24^s_}G-wOJK_rZV|q&{E_t@lxXvko-8aO!f8km20z+7+95>MZ%~itHW)Dy5-Ic*pq9w#It(;DCW8ZMG@q2*NkdiRuNPm!I4a)Czr89P%Ow0}Ur zwR)vAW%AB8o&dXTi>!dVq-V}l=wyoi)B`uP3l}b=(;}~E|1FqWjcN_6RUxv$s2%CsmehvxUD)mIt-_N$fw8yck1!8XYYk$9?Htf_EbJYWW1<34Z^y3 zP1yPMu_`ahd_ZC4hk%;82y+Bq8=K!CuH8R||pX#tkAvL&N8(osb=X+g>%`9XBG}!u}@alUxb% z%znYagj$xKi9m5{Y>ZrsfklEJRT6so^l8Tt`SflG8S0<7flVnKQ;JqdMLgur2g>5r zt5=^fPf~kVd-g-b?PUbfQat77+}bJMefsYM59Z1gQsnW+CnhGwDD-A^x)WNyCmcL@ z+gfxH29Qp$$fb7Ti5wNz{gB^Y(Sbzr0^AVLY<{@+U@7`Aw6r8F?5wOok(<1* zvS3uoYh%IXUooOrmG!cI0d5(o9*F`f*tdXfK@JYF(YkL`R6=KIGP8wJJMptBc>Ba( zWOH|91LVYLx@ML)uMQQ^&8!AP*Z;D+(!UBL>@}FdR4$Iy+~8vD5I%R}*aF0jIyQoA zfUAC3>Fc+H_*VunTuy!qn0AY7sFZqPv@CuWc9I@Oad`xSDDR1=kUWste()8K{p}8L zq8h`v@D{A{=qd(5kQM?fmHi*Z9)+;BpqF^hbV9Vg*YmB+Xq2S2_^3fGZod9snieJl z);PATaKp+gD#m7J%4EHQZZ@P18qX)LbdK@0l9Y13JuJy+@I1BE)m48h)jZ=efaoZH z-g_cocG#0Zx}eeM1=w)dJ9 zW7z{^%#z3FMX{>Z~gI9H9$M_vdTf^8qMS`)*AN>qaLOX0(7f;1?MwF#l(& z9`0=5G5Y!YU#7Nvp`!!T!wTWO7!eO$po>{S!`tX(f7#)w&4Tf$hzDtDw#TB$||tq)z#O78%~8253s<(7S{jkEn)0l%fR6APFg1l7{Zm$ z@jSI(zkUIMy}{5dXquGY<`1ooj!vZsq$$r~+XW}A_jE6Gb&n}w)%J6*E|Y_niromg?&a(n=*#r^$OPmglG8e8TbJ`soHyn_A& z-uaiK1K_ifjubghZ*MmwM*I?4>F}_Yd`0}f%WUuzL?*(*!>gKsw&f1c%JA@|rYHd~ zm{~sNDuj2>jgQxr>PNw}-M|2y?Ap?H2-pKb0I2$K?#5@>!DaPfjGCYSmctGtwaNWi z5HNp@kAu3#SVJf$T-(vyTTDz}+Gjez!^o${bUdH@0i4I$`g#Hc%o%*P7AusJonYpN`+Y^4mV3It9UbbYc+~-b%|7R=Um+DMh)u zr#v6I&3!}huElz?e zXY^V5l`B^mwXJrn$8H8a#T(ZGSIc*+>>Xq?FlZS+Q@jBf@DYrz=@e3Ia9q67x~s5Nj#-C7MIWC3SWueCW6ClV0%#zrwg zmJ#+3xL%C7kL;=i=GOotrq1&*bado@SN3(bQnVG6XGX2IAe#a9{mm{M$W?gy`i7AH z0mIODB7y0(%1Y5+6BCaHRM%FfhZd^oazPvZO<)$|MZ@ zgMA>ddCp)Iz0%Td#U~{-*XI@6E*@oNWd*KnYXPUz8*F)4UorOg(3u9~P6Y zzJ6SM{IQcKPcmBJYl3u8%8M;3qJ@3{<2W#-@nAhW8UEu*?AyS6AbCY96dtJD$B!So z$fg9I&MgWQ6+P#r7iNubZ=Jeu?wo62VBk%LiG9}Hr1GbjVIl;4JrR=<#R_Y^`(J~U BtknPj literal 0 HcmV?d00001 diff --git a/tests/board_test_suite/lib/adafruit_bus_device/__init__.py b/tests/board_test_suite/lib/adafruit_bus_device/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/board_test_suite/lib/adafruit_bus_device/i2c_device.mpy b/tests/board_test_suite/lib/adafruit_bus_device/i2c_device.mpy new file mode 100644 index 0000000000000000000000000000000000000000..f33d4d495fe9dbe2647a0db93faede76ead9364e GIT binary patch literal 1707 zcma)6-*4Mg6h1djnxtE^q-&jwrimeL3e%JzOHrh0+EUg^@W24I8V^OfapLR6B8@xy zdRrdQ97K6Q;++>>c;qQbyYdHs;J<)>Vt{ypbM2V0sc4Dh==lCP-#Op;KEE%;$~Pns zzm*1L$VhIts(S!`%UPmcA$d@9L}?Rwl^8K~mE;anw~lPX>$BUh>xOPRp2ca$bE&}| zSzT7QwC*gd9S;*)O{+C8QTm8Eu4NA>O;PHwW1G_Sd)nRI;L1EA#BKFBKXz}{>klm6 z^E$PzeN>NN>N^qMUCZer?uSF(!=&$cZkVZtmsmV#1mGWXx^FH`!^)BE8GJZcS)PnvR=Zde0uCmuW4Q`+`8b-C{F zq=?wSNLhn$VF?3#kGtGHz8V~+yvGK}a+n}Zaho$Ipq@Pu$zf@fTaf@~E*HeWZ?%=m zTh+%(W&8fe?`|PW4e%!=nV8W0^J(iNxRZfNDNm+($&6{cjobd)MH7B&Hhk^Q8WcZ+ zkwJc(l&+EKX|R87wx9L2;zP*Cr+*ma6SCJJ{!Z|>o12tg!{pk|WL#Y%({XiOs48lG z0YbSmqlX)@@S+sP01_Z-J|(w!k^y5s1>716%w*hk3ce1G}A-uGB=bjcft3=+yU z6DpVLhT$;RjX~UHee;5y4!Fg8wt~V{!Yhi-mD#PE%GQ&uG{j;6mo`v(qkaD}GCAH{ zBgo8nbDc~I(+4pP8;vIO>PAHkFLv@$tuU*#Sne>alz{DUwokuTIgZy0l9t1D>lo4yb=?4^5 z!z!m}z*F?!8QSj|y6+s#_k;PBq&2GkxKtt&`FA*#zk#!0{Y#>aOB-a0i_dWJ-28$d zzZaQcfrk5RAmNkj>8{SXBd8b8`b=VTQwdeQM9G5o49QOfK9(ZS{ws(1Itiz`EUb=` zHJOt}lh2~Xz69>Ybyv{y1QnVQw*R(rBlLPOfxzz1pNdF#M^o5W0XZElt;@Y6FTvj4@jO9XvFWv(egNxt(1X{Wyf$8SW}!kgrk%sg+sV$n{r%qCCEwW0f)DX=v5cb7OVt+T zCkXu#1(0HpLQ))ZH4qcf7?TnZUk%<}*Bf@5+?!PzO4GD8itDz88)QRMNzpR2L0B-l zfl{GVs6;T{Af~119gKq*o5avD4lP%oKK70bBLHi$MX6!kDHhi>+Oq2fRbMZjq$xf) z$@fSzRhGBfr7d>pL)+@#RA7gyeh)=RKos_J&fLsSPw5=r*)WL9Kx7%C^0>OWQ%Vh-%s)3%fWsVO1+~SH^1Kcv0Y-Cn9^CMv?TBz>Nn@vc1AHq<37@VZ25Y_i{o@aTfw;nD|EegnzqiYNd8 literal 0 HcmV?d00001 diff --git a/tests/board_test_suite/lib/adafruit_sdcard.mpy b/tests/board_test_suite/lib/adafruit_sdcard.mpy new file mode 100644 index 0000000000000000000000000000000000000000..03f65fa63fb0cf6a05906fa196a582521f30da5d GIT binary patch literal 5349 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 DGa*eK literal 0 HcmV?d00001 diff --git a/tests/board_test_suite/lib/i2c_test.mpy b/tests/board_test_suite/lib/i2c_test.mpy new file mode 100644 index 0000000000000000000000000000000000000000..201d2c97438eda619809e0adb2decb497b55dfc3 GIT binary patch literal 2420 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 literal 0 HcmV?d00001 diff --git a/tests/board_test_suite/lib/spi_test.mpy b/tests/board_test_suite/lib/spi_test.mpy new file mode 100644 index 0000000000000000000000000000000000000000..d07d186859f8930677d136f60107a03e8dd113da GIT binary patch literal 3232 zcmai1OK%(36~2cLk+iLbqNI@>j;N75qA1y7Bsw$!IVeDjOu{;nC{nTtsK8{z8A^kY zGsMg=sTP5Td3a%&QpwXCX~SU_OyZ9K`W6C-KfFUX91A562!xAC8*V+nm>+9QbiMGr%*zTm^mtm{))6qp$BlQ8z+7aTtY4|xt+ z{4{*T&%nq0b@+tm;ZuGV9`JFn_&FGB9q|c!oCjtB_yu5Y0Dl9RMc{A31S!H*(aR@c z0;uHUGce(ylAm9J=mbQsK{N`{NhtcRibMPzcsIb`hbTvw82K(UWJT|TL{cNW!8huf z)U3%rju=`~ugI?%4Mi|z!%Q{~{d=0IOU@XQlzqh%Yl_yD{CiD9(VTHe7gb5CyOYmU z>asJeZIlbcbP$S#bzwcbmiMg{${WLU=s@1`>b)!Y+W|be)aBK3M-AQ0Zs&wjb}K); zzP%=tiv?jTU*0OelFt`Q8xF8jDwo22dSNTyyP=fN=6dy=Qm)XemvZG&uf9{tuSa?f z7K*~%!q#XHw3hv;kj>>vZLE-57224um@Su`;mvH}9UmRM>#t=!>)Eg%%MD$t3zX~+ zM8#zK09`R*AsR1Il1m@4Zxd$w5k`qMDj>aKIg(`vXV;-jt_e1ZZ4q zP4nXy8 zZK7;~`j%$k{xauxBF81g@6kJ$g&IQ*6ZrZeb{IhWyL%!4<%FDrriDaUhT9i{a>(}Ss zpHUVUml_N4#7t%W^>_lOg~UvKpTDOjXy&~j>_5pP31UyFaNLd&2{LAj{R^4!OOV2u z$->#oiJ_N{HW8rnU0U|pQHZSq`x#*)a3*=G@D(DHd6;|?9>;SKc}%l;3}SD&drl<} zb~9)HG0LyH@(G^(1inra>q+cwECrc=A3cc`fcXiqQ^4EI0IBe8X~Jr9ZQl ze$S3WtOypHfU4&Yu7YV&_56{3;}WpP;@g@Z|C5&m`ZA=a@#r7WFiU zK83$Y?^x^#U6i~psFf{x>UnG0n(kOaub*4fopT}Q+>~YSdiH16+$9GNTCKk>-}?4; z@hFvg65B@4Qcp9NEp`EHu4$y+=!ogC{Y@@Yc5lKajbm)9?Q%OH?0hxFFujIsUcnk9 z>xNu06-}jpzo8@KjKNh+RdI=PK}Bse&2I0#l5_fTLEUJYfqmH&O;f+ns&k6&SRdNh z-YRZy;dvKu)7)5;Qr#i1jVbt=tD$a^6F+{Jd#zM}3s z*!L7lXY1e+;j9Hp*d10vJ%%0J8HXfUQ5Cb>*Buy}dVu&EifRPwnxP0N1?!5TQ6XSd z-lOwS#h{b1*uGhjTT?2!Ryj}_Tq>Q-F1@~#<($_AhYWCZA!)=oQ{&77nOiM$c%0Kz zTXPR2jjKgkaygmC65Wb-fh;uTq%lRG94n3~tyz;e?3cJ)uQ#!2;vN0}4c8nCIV|U# zq{)VDp)Q)017l=evn^APxT@AvrIru7B7P$GX+`_>VqA+aD|7LAtXS`Q*k96OBjL{% zn4z==VfGT{SAaFHtX v^(;#(++>gtAS95%e=U%MO@clK$d|`EW9fe#?Ou9=mI1tt#-OJ+o?Q4Jx@gIz literal 0 HcmV?d00001 diff --git a/tests/board_test_suite/lib/uart_test.mpy b/tests/board_test_suite/lib/uart_test.mpy new file mode 100644 index 0000000000000000000000000000000000000000..ecb47c908d404661fc99c16422452db5eb6a714e GIT binary patch literal 1446 zcmZ{kO>7%Q6vyZ7`ZEbF{^+KO*Xxb6a_mTPTNl?-R3Ww@MMlJO97h=Cu-SNLlP&hH z*0C@u8Z1L_6k(i0bY;f7$wYc~!8Tbg=&^mg#PYE_M;$0f%GwuVziHg6bFt2=@M|4 zL7Ihl_bHO*;9F@PzL64S__@Rbmjo#ZoB)yloCs115|mb(;9inT~3^ii;gL*Z$PMYpJ$2Zaa=)`FCj>uvJsDTBDAs z)u(H9rBW&@WqEy#sn(~fXT$Ik?CVjCO)2^urS}pSuqCy#;U3wD$+ki&I@b33LY)W}6qrR^j#GMgnvrDcC^d zBVl2z<2e?5O~Y|n2fH(d>0;Z#4cD+t>hQO1;_@42yW@I%_~ryRF4RcvPRnq~cyA@_M9Y>)RT617 zQMWp#CWR3Kgu+GgE_}I6_}f7D-dUYN4+toI4c?CzULI^u-K6Kxuv+c&SCy(nmM`^u z)5F&#TA*ydwVbxn*Nnw~ zUQswXeKgT=Z3di+aUq`CpKS@}f AoB#j- literal 0 HcmV?d00001 diff --git a/tests/board_test_suite/lib/voltage_monitor_test.mpy b/tests/board_test_suite/lib/voltage_monitor_test.mpy new file mode 100644 index 0000000000000000000000000000000000000000..b04c848b970e4a40f938cd2b8b5282cc926e1c38 GIT binary patch literal 1423 zcmaKs&2QsG6u{>>X%ZFoBWZEkts7>Ao6Sa$ij*i)wE}settz$YS13Xea^3Z~G1#8S zGl>)-v}vWiBXQvm;KXUuB5~nBfg69p-uBLg6#`BOX6$s!vKwsq&GUORZ|wJe^EMO8 ztDb`7HC;nlxZN%<*u~=N1O35N8KJ)i*>(=}9EfoW^eMZ!q832ao&wla5oYIi;IcD_eFZXFTRr-939 zXmY}MrPH4{q*iFhGGhgnM~__kR7u}8n$4Bn4`=tcHk!uTin+PfSZ{9an%nCQvtewm z>`fXCV`FR0++A6{605>+JD0IEjP%RW?=cm zG=(DHO*6JD3cL27eVxQoW$7e!6(K-qUV|(gU+>$C#W&qzb+J}uVpEL@KqP zk@hQkXhY#!sc6$+gCm~vVf}2NJw_svUm~@N>=URC*WS&cAB6Gr(pLNBzA&gu$d3Gm z@J~VECTL$HEeEHz;=qq*^H)Jr;kOel4}bptQxxDeD13#!ao~xn!xORgtgrwMs@A@f z;Y3Y@%qzk!$3#9Ur$}`|jzv*4^%gv;rw7^$47Zh*HX9AK>(M8t%a_9Bhr zYMb<2#uJS2m)(Gqkdb@brGYezujfQ36q6GqumL}>!{k#mGDZZ;dXPRM+~PbOk<_!i zE*VQj95S?j7d-JWZUgjbmU9+mNNlof_ONnYn7v6u0DCh7s{y6B=J5j#lyXd0alKbWrlalbWrN1}g^`kk?j IPb@G019&5)u>b%7 literal 0 HcmV?d00001 diff --git a/tests/board_test_suite/main.py b/tests/board_test_suite/main.py new file mode 100644 index 0000000000..1c472f1ff6 --- /dev/null +++ b/tests/board_test_suite/main.py @@ -0,0 +1,235 @@ +# The MIT License (MIT) +# +# Copyright (c) 2018 Shawn Hymel for Adafruit Industries +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +""" +`board_test_suite` +==================================================== +CircuitPython board hardware test suite + +* Author(s): Shawn Hymel +* Date: December 8, 2018 + +Implementation Notes +-------------------- +Run this to test various input/output abilities of a board. Tests the following: + +* Onboard LEDs +* GPIO output +* Onboard battery voltage monitor +* SPI +* I2C + +You will need the following components: + +* Multimeter +* LED +* 1x 330 Ohm resistor +* 2x 4.7k Ohm resistor +* Microchip 25AA040A SPI EEPROM +* Microchip AT24HC04B I2C EEPROM +* Breadboard +* Wires + +Copy lib directory to CIRCUITPYTHON drive. Copy the contents of this file to +main.py in root of CIRCUITPYTHON. Open Serial terminal to board and follow +prompts given. +""" + +import board + +import led_test +import gpio_test +import voltage_monitor_test +import uart_test +import spi_test +import i2c_test + +# Constants +UART_TX_PIN_NAME = 'TX' +UART_RX_PIN_NAME = 'RX' +UART_BAUD_RATE = 9600 +SPI_MOSI_PIN_NAME = 'MOSI' +SPI_MISO_PIN_NAME = 'MISO' +SPI_SCK_PIN_NAME = 'SCK' +SPI_CS_PIN_NAME = 'D2' +I2C_SDA_PIN_NAME = 'SDA' +I2C_SCL_PIN_NAME = 'SCL' + +# Results dictionary +test_results = {} + +# Save tested pins +pins_tested = [] + +# Print welcome message +print() +print(" .... ") +print(" #@@%%%%%%&@@/ ") +print(" (&@%%%%%%%%%%%%%@& ") +print(" .(@&%%%@* *&%%%%%%@. ") +print(" ,@@&&%%%%%%%%//@%,/ /&%%%%%%@ ") +print(" %@%%%&%%%%%%%#(@@@&&%%%%%%%%@* ") +print(" @&%%&%%%%%%%%%%%%%%%%%%%%%%@/ ") +print(" &@@&%%%%&&&%%%%%%%%%%%%%%@, ") +print(" ,/ &@&&%%%%%%%%%%%%%%%%%@ ") +print(" ,* *@&%%%%%%%%%%%%# ") +print(" ( @%%%%%%%%%%%@ ") +print(" , @%%%%%%%%%%&@ ") +print(" #&%%%%%%%%%%@. ") +print(" #@###%%%%%%%@/ ") +print(" (@##(%%%%%%%@% ") +print(" /@###(#%%%%%&@ ") +print(" #@####%%%%%%%@ ") +print(" (@###(%%%%%%%@, ") +print(" .@##(((#%%%%%&( .,,. ") +print(" ,@#####%%%%%%%@ ,%@@%%%%%%%&@% ") +print(" ,#&@####(%%%%%%%@@@@@&%%%%%%%%%%%###& ") +print(" @%%@%####(#%%%%%&@%%%%%%%%%%%%%%##/((@@@@&* ") +print(" (##@%#####%%%%%%%@(#%%%(/####(/####(%@%%%%%%@/ ") +print(" (@&%@@###(#%%%%%%@&/####(/#####/#&@@&%%%%%%%##@ ") +print(" #@%%%%@#####(#%%%%%%@@@@@@@@@@@@@&%%%%%%%%%%%%#/(@@@@@/ ") +print(" @%(/#@%######%%%%%%%@%%%%%%%%%%%%%%%%%%%%%(/(###@%%%%%%@% ") +print(" .@@#(#@#####(#%%%%%%&@###//#####/#####/(####/#%@&%%%%%%%%&& ") +print(" /@%%&@@@(#((((#%%%%%%&@###((#####/#####((##%@@&%%%%%%%%%%%/@. ") +print(" ,@%%%%%%#####%%%%%%%%@@@@&&&&&&&%&@@@@@@&%%%%%%%%%%%%%%%##@, ") +print(" %%%%%%%%@######(%%%%%%%@&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#/(#&& ") +print(" (@###/(%@##((##(%%%%%%%%@%%%%%%%%%%%%%%%%%%%%%%%%%##%###/(&& ") +print(" ,@@%@%##((#%@#######%%%%%%%%@&%%%%##%%%%##%%%%#/#####((####(@* ") +print(" *&(, %@@%##%@#######(%%%%%%%%@#/#####((#####(#####(/#&@&. ") +print(" .@###((#%%%%%%%%%&@@###((#####(###%@@&, ") +print(" #@#(#######%&@@&* .*#&@@@@@@@%(, ") +print(" .,,,.. ") +print() +print("**********************************************************************") +print("* Welcome to the CircuitPython board test suite! *") +print("* Follow the directions to run each test. *") +print("**********************************************************************") +print() + +# List out all the pins available to us +pins = [p for p in dir(board)] +print("All pins found:", end=' ') + +# Print pins +for p in pins: + print(p, end=' ') +print('\n') + +# Run LED test +print("@)}---^----- LED TEST -----^---{(@") +print() +result = led_test.run_test(pins) +test_results["LED Test"] = result[0] +pins_tested.append(result[1]) +print() +print(result[0]) +print() + +# Run GPIO test +print("@)}---^----- GPIO TEST -----^---{(@") +print() +result = gpio_test.run_test(pins) +test_results["GPIO Test"] = result[0] +pins_tested.append(result[1]) +print() +print(result[0]) +print() + +# Run voltage monitor test +print("@)}---^----- VOLTAGE MONITOR TEST -----^---{(@") +print() +result = voltage_monitor_test.run_test(pins) +test_results["Voltage Monitor Test"] = result[0] +pins_tested.append(result[1]) +print() +print(result[0]) +print() + +# Run UART test +print("@)}---^----- UART TEST -----^---{(@") +print() +result = uart_test.run_test(pins, UART_TX_PIN_NAME, UART_RX_PIN_NAME, UART_BAUD_RATE) +test_results["UART Test"] = result[0] +pins_tested.append(result[1]) +print() +print(result[0]) +print() + +# Run SPI test +print("@)}---^----- SPI TEST -----^---{(@") +print() +result = spi_test.run_test( pins, + mosi_pin=SPI_MOSI_PIN_NAME, + miso_pin=SPI_MISO_PIN_NAME, + sck_pin=SPI_SCK_PIN_NAME, + cs_pin=SPI_CS_PIN_NAME) +test_results["SPI Test"] = result[0] +pins_tested.append(result[1]) +print() +print(result[0]) +print() + +# Run I2C test +print("@)}---^----- I2C TEST -----^---{(@") +print() +result = i2c_test.run_test(pins, sda_pin=I2C_SDA_PIN_NAME, scl_pin=I2C_SCL_PIN_NAME) +test_results["I2C Test"] = result[0] +pins_tested.append(result[1]) +print() +print(result[0]) +print() + +# Print out test results +print("@)}---^----- TEST RESULTS -----^---{(@") +print() + +# Find appropriate spaces for printing test results +num_spaces = 0 +for key in test_results: + if len(key) > num_spaces: + num_spaces = len(key) + +# Print test results +for key in test_results: + print(key + ":", end=' ') + for i in range(num_spaces - len(key)): + print(end=' ') + print(test_results[key]) +print() + +# Figure out which pins were tested and not tested +tested = [] +for sublist in pins_tested: + for p in sublist: + tested.append(p) +not_tested = list(set(pins).difference(set(tested))) + +# Print tested pins +print("The following pins were tested:", end=' ') +for p in tested: + print(p, end=' ') +print('\n') + +# Print pins not tested +print("The following pins were NOT tested:", end=' ') +for p in not_tested: + print(p, end=' ') +print('\n') \ No newline at end of file diff --git a/tests/board_test_suite/mpy-cross b/tests/board_test_suite/mpy-cross new file mode 100644 index 0000000000000000000000000000000000000000..8dbdb9ab9dcd320549d19e38ef8506d0a96ec629 GIT binary patch literal 194960 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 z z*k&CYo6KB7?N?}K{25v6N=Qi$0~#$QJ&Sa)?{qXuL{!m$!Hr*_x63kM6_~pWtvR_5 zcwR~}GTTXU`?)hQ`xx}Dv<#I+h)>@xg7K@R<6(K+j`zYbFdF((X4+Sx+G$xZ$72@E zDJI>zw1GR`A52?|o?rq(0k6WUz!)GS3=2%;fPAunpy#>_5ZHq)&KNwx3`LxG@(pZ2fa0rkV z<>&?yX`lgTP_2*270AS9)C*}7YVq)Hn;Py#vWUx3n{r@ueYN}xuizyMkoU+g z-=lWOPX@!!*ewwWSY2K8AMOQUbYXjoP|+dX8uXpze^uk%MoI>za*3mSi~LOp^28NX z3C z6s>=K*2Y=N5XTW*l#Vc!-AtAdA%mVb5;P#> z7Qy8hD2B6Wr?GSt6KR49xyVG?wlBMhG-3PUfa@+)D@0$ri0)wmMoOiA4AzY_OO_d-ynMg-3}a%%V}Cuiv8_^ksna#foEmc?-R$C-htr zed;b_2c@-Xq}-@SeHV40>c$4->koeipMmBK(SX|Rx8u>Z8YxH^OGu)Hv*J>I8pblt zTul_cbF4dVNzQcRW;Y}dU!I5kCpLRvV!nJOa18kOVbuY@57@M}R*T?{3TZ=DZztuy zkALA&q`}Z{BF!uJQ-V~CvxLgiz7DEeh^evvaf04m0d-4^O_jrTB?@7>4c@L$xL_#e zmxCrbVF4VzjS2CPdN>pw%PdW@j&gkUMcAs>5Zhymg}!1twN8};UfH<>zMM`V!3Ea@ ziSom}ZW4W8@GA{uioO$kIi0ugFTj7o1#L${zOVR|Kf@$*!j80{?Ocwprf7ahtwpzS zacFBIE7dKi+n6}yD`o&#;Ugj}^CsA*AvMBkLl4-UE4Ou7mFa?ddV8mG$j(=cM2mpB zo5U6EWVd0IN;mAKv=d^@K__j$&Wqv9F^qPG9K~uXo7~;Bp(U@e3^TFZScdm7v_9Yz zc`2x7T)xKjg;Ec0iNKht2Vy}7hVu%33faD}EU}=?z`$mouKkd6OY?9}ZO&F3M0F=) zpySxD)?&XZY(ErGPqjCv_DT==w#r{J8~W}E`>|GRH@pikSpKi^;9tB4!(l`DDdmB- zA4Zbsj6l7tbT8|7h}Z+cnxhcO2c$i)ZHv%OP-_I`6wF$_;#D9Ta%U<)vuxR%w7tQa zH$e~~SQ?}Pko;9s<}qV!nNI;$vw73rX$75gK| zij}rnrFN7S<#;1O-?rlMP^^xiZ@UcLL1gC=-X604kW(;T>z#{ z{EL6a3xkqu4t?@Th+`(p4I7%Q@9SFJO(PiG8IYciZtPRyu&En!Iuwm zU6Rf{O#H=!HPNIc ztVe!vg|I#paNUafMG)2G|6){;Ol(fDD!^kLx6r^e zl?fL>EdW{PEB?Zy^S+R}$m7!g4uMIgjLTSsY`_BrRe*JXblZ&t|_{sEe%GMwS zG>Ebi>lM;Q3g|yHX5>wHY+x7%`f&QC`)@#i;aTp7bzC5W|LlUOm8R(Pm?^bSRI^fM88az?-Bb>&6}vo9)Dp!B zWiLs!kjm|GSWa<;)K-qCvxz|PiT1u1y17+L@E# zFNZAYkg}(TpJu~9i1A(M_n3NIUrBAW;&9?Isp z+8?n@2-88+vmhElC|VJn^M{FWD-1%ynl)eE7w=>;0tx`9o{cSlJNg*|YA?(ZAON#q zGrob%I12}_%Tuz|qxvmWT%+454Yn$L48H!uQ^VsA0s)+U4V40LELc{`RL#>OR5?6K zOJZh%d;^<>UWyv@=4KPomrxQ@g8QW~MLizW?$MoWmOTW_u}aUS4lRUddk^UUJZX&{ z3eUfo<2zdDovc0kZ7LDUa3U1-xa<~J-1}w`mOoL?M@Obp{{XZ-Sq*%f8jNmYSc{um z#u@Yml2}VPA|J$W8^K*#E}X&Vi<~%gGEdXCTnluh)`_;xwax*+sIR?{=hs{-MjOS2 zkzt~@$vnz`7_rWHDk35usI7zRFb6%Q-Z7D!?0q*wJ>aJaGm!{_h)$iaWOwr$B z^fhi6jZ7w!g6XzJ(Cm8YzX--6y7Upck>@6iaykl$MS0?kxY|E!0~7g zsjVRp$BnJgD2}Aup)_cy3pm5uCEBxHW*_oyn;(nXQ=Iuf%-l?g&mTS-aYbhouvujK zK+&LeYi|d`*C4BU1z3OMOZcT{?x!`nL`PT|1TLJn6>kuAX%l<|cX*+LR$wZG5De%$ z7!q$EMGxP}q72b?+`COrAt43uhGT=!pVgRfsev}vdM9K6&}1S-KW3t68+QZ=QJJut z^5jQF*yv9|bxZ<;sXE&?QUA`9>>;Lz;Rm3Wa#KR; z+|8+?=68wVKtePo4(e#Vw}5}npMD3PbFsZy3_lY!5-}saH@JfTkgL-j^s>gEP^X`V z#D}`J*XbvjEt5-UU6|g$I?-P267RmV=q{3FmmX}Jlwy;5dD}LYm4ZB0<5Uiou^Y0@ ztsH`e{0ZRPt2=0V>SKUA+dXsEV|DDX{5!PYNdjNpq5p-EJ_L<@Ird6NLh2#?^ggt) zEo6rrkYa6lmc2vu+re5LVq+F|rZ^#o{JvXX2#PPuPw6B{HLH$5JDV$pi-3;{`bO$p zUFZTP>O}QUv2hY>D5^8uW%sApSnW%>qPkswjny1OUEes)&ryRsnjm_SlW0!*T#SQa z779e;Jn+5wucyU1E86d*iBW?jYM}KaxJ26y(bgoYW2j%I2{7nc{eQ6pqE-k*odkb~ zc2ragEnu}tkUxo-%mq1_(T!e35NafX^V|)N1S~(zH%~od75^EH1J zPLHCRy1V8`UuEk_>W%tsz1QmG`+eJ4cEYT>pxOZ%#^QsFPrnnwi5}7L15x80P_4*N zb+RxizPfdA>LED5RackSMfqq9;zuj>6EXUUgy0LT#%@u|h~~QBu4Ym>s76Tw2GyO@ z^8)H8Y1<*1M+&(Qm{Wkdy@3D$K&)=%<5`3H3c}R-DPyH0KC8*si z<~OS$Pk$jg!-eC8{@AXhq;0NH()yxg5imi7#CVl)rw=!r`k-x zcT`Z1qn~Vk>USs!q@4}s@3hKG5k#_S^c8-2(nGNsgZ!rFWvicJz8P~xEpy~(Kuw~|8>3y8ozRLuTY7!(?Hpc9UghTp@3ZalAa!H%H%@rA2#THz$7lPg@X~Z4oat81C-XV&SQgaxSKcN$;cYA4E3|F$XYjd8GeK6-kf%gY8_a=dUxo3DlFK7fk4iYy zqMx7-F+4pr0IZgvzSSD?Nle?VQ?O9Lc2a~nGJ39fn>BsJm5tdA;!-wcbW@Z}d8=Po zWO8#y%a zf0&RPyLLEGKeM&ft&n-4>|DB>1Y!vAp@ZIIsI5N$BM_eRaL5xV8QNB7tyN%**}JXI z5mLX9`e2O$slo6vn+Y@Gi?%wqlqo2k335_HB35XU&Abswm)x(dF#$QU6K0Qj9SZuG zy;0zn`{4arlvGZ#!4ye=%@LmF5gQUYr6o0#_5~g2q^DwjIL)P_z|rdNK@nxEpB*-| zH&Jm0O6ibh6q<}xF5x7g`U^g1H(woTtMg0u=01?^-IA@I45w;a{50j2XZJhg(iP zxbyjxwmO^S%2p2wY4v8GY;`{w%V{-c4?F>o@@;2!#TIDT;1(5-}Guts38l{N(v))CNNs>;N;uBO>Mo+%RtsiQ157K3Jp|qjYtbG*0jFRWu3|K7T#= zRx*4#AF8M6*_2&TJM4Mm127k`#Uc{HOeH^Hrq3;Af-$V_prhP($Hc_YWp*0vjg++} z$bD5^X>ovtvIj*3oaTeLhy<`@tKJDo0q^aWYFYz*!S6Y)y`Dme#Qa^-wKy$MI))bW zVty0MGuKG9t|8Fh1qXP&U%Cyzx^5{QOIUSv!)i>hoY23;b{flpMTC4pr6iNBfD3C0 zTFl>0M8Q`#5Sy(<)qt&okVJCCLJ~0d?T#OnBRKb`sbfDw1_4txR|t_5Qh8^qvN=ex zq|A{Ji`WXC6n)1F2L{z+*dhhf&W6+@*|wuX^dXoK$II@)7H=W6tQdaUCTt*707|O^ zf95#3hoF36GrgH(*js`*Dl?V6Im{uM!`Pe4?3bA?IpMN5Q&8D2Y)D5ZH10a&3DCY~ zDPNt#$A&L^y8J`gKV(|3E41+cU#$W+#(V|_3zo( z-1zch*eRKF`SRY-wxzdb=JMr#q_=CrxgV9CPvBqNgOqU{ReD0YpMUwkF;eDCzI+H} z+bR1QzI-z>O9x~=$-ne>WM?kn%V$&Z0ZPbx`7#hwW(i+z(6f*)zl7>WBMP;C|9NUk z2A8ci2h?+*l6tAvdNP8leUR{G@_Gs#uD%EFA+=rq8IFqu+a}`={|}vN=u=0xV1aaW z&4`tV(+wNNZT|EBf(d31t4(U8R{#RprMtfa?SgQ7k+ydU%DJfQWV!_d1@jsF)^MWQ zV30-le~p2q6t#3V>FZ!F$O9}atf%nk>Hy|!B%&8KP~W(fW|?S#a4_06q_H3JUIu=6xUwHq&8jATp(vo4*_%)iBZwrL|hSpCSVXbj9Bi|`8@|^-f zK-;rCSma(a^*>k9ynt^yz|7{?MAngo2p+rh|AH^p28gug7Hdf4GNFx;%gjg2LM_j+ z;`~3*WpN+kFgN3{JjazR##hVSY2FR5ZuMu`YEwWxPrWRIs5f4O5e@k=Xk7`GW&N$7 zKg$l8f~0<5Gs(YA7Kt&>43jqSh8jPCG9fLI(q%LS)E3CQGfhn1T@f#^;^;0yC?pz% z*MRPD_J_cs5Z*-TPChN*$>q~Ro;iFPj7>i6zdU8A&ZoWQS;d}z^SsHP?=xG9Py5&t zLHY;cGFXEAS*(*$~#oW7gjUa^S)twS(b zd1TqGN=xZ_KhhOVQnK3Ie5Ad3*k-tcqK#G8RyHg9BW35xS-RxQ^m& zs@zIzr0jediK&QriZ0^z*8LRtf)FE#iH#Co~U|Q;90H7Y?ktwyPA~bye_2 zlxQi$XS8Z1=by+mK@HmQKf0y-KJomBZogVV!qp0TT&=)ywE}0XKs~27f`h{kq?Sk2 z&3txk9dbTrIW6&=@T4ZCBdN$GDlPj&MNhP*x}KbbG~e{{NEI)+%C{^V8{KRUDLc2Z zsDIhH_Tn2Nh8>i=zXuEEGacnyN_vvX`3cSuUyWeeu(*#qfYPN-4;jdy% zM*_Brn{iA>fgHZ3!VGNl5VrB6cUveeqU;|UR3m~m{*_=_QxIlEkt2wNxc#^~{&g{m zNU$b(FNIqvySTbgS}o2Kyjw!Ph;)5G8~kEG>%St$wmZiLS=ehOPP$TQXiwyU=(izC&|+F_i6oK zf|A2S4W%_rR2?s4O7K_Km@UDY{TOFz*ukT78mB)dqGC)zbyQL<5w#8n!{b-6yB*|+ z8%WLr=7@M3JPhyYEaMM&A!4*Ok~adI$^KgC!;9LqcQ1;*=8|N&7bw&`4E!paqjk*b zVtGi&Gwv3F8x|A-_ti-npf?kk>|zpPC1j4gL-4AI?TK(ZMdd;3QmLy=U0uCFU48f|P301t zPAMQFeKGZ<*1-<&wpH~b%51%u)Km$#^mFi!AO!00MMT1jN!W`aFB{St&iuPrBludh z9DvXWNZ@waB`W(bo_Qg&bCX~w{X8@f4*D?0vYyIjo7ldmG8?;nrKJ;3+CnyF zTTUh5a}XOuo9-6FBDOj?E_M71h`CQSTWNM>qb|mM6rwW9j(3tw@HqpSecBSS-y%F4 z7rwwMkxh6eSJc2ffT0L5RN1Shb8L#8m?DN|zMw+Dj(KU>m<}`&1v~Fgu;xK(_p(#O z7zwQAvXhKQ47hTmRS3>%#o<*ke2a0n*yos)vN?f*WD^?h|7h1Tfz0y&Z!k#W-h4-C=HpswoL0+D|{LVYT&G|$9%I=x`z$>S8I7BWkK|Lj`FrqN*N}6NNGh;Lm7=CdWD2r|3*YcLb|xRp@eNFzItxD7OjfrqXNH(T!2>G4Gy0+Lqw<<7U6`i=ROO3gHF4exn>5 zigs#UPX0xB$U|zUUXPI~_T;F~xv)o&+(GR*kc1UK=8c?r8}9wV*pK-ujUcVu_CxDZ z(R;Km%}~d$LhoWe!ZceF0={ph{y~sav@W2IPe8atDhUtsFsP|3z|xuqHcc?uJ3Mf} z`H63GFnx;!-zL5(#T^u!ZDQx}ofsa!1A_rgpFuzbpbvWicTRGd>U{uqcKNX?djPw+ zUXl~^ZbGSaf}>(S*O1zRW645U=iu$H zA;fG4LPVZgp_^pt7HOcC`BISoM~7%Tul9clr>IPT9TY3J0ZlJSJ=AMNr3O;+6r`+J za}H!W#bv&T4P;6vt;L!=o!`;i1r{ZND_Ea`Wp)U;n3R+h3eUX;0iK^>(&LW}#cb*H z2(#43V$I4%bjGLS-9kq#8IXy13{uVwE$xqU@BSV!`dNNFG<5%iWV*f`1Cbl?mIKxW^k2$d+22g(H;-otRRf$yzh%+Ka z-fv6WERTe&74Kf^TH2op++s-82f@qmALqeH5z1O@QbPN#I_OK1=P<8Ytr^Vfmh}a) zs_d1uSSj2_X|<6Eglm}OzjD-lg_-1HrUttCE!wbYRcw=oF=sKIB=%;8QI7%=Y;!%KmsefkEl7PhS4N30~nYcH7ef@W!w&TFJm$sAT)^!8!rYaygIEJUa_?oL*c-?7jx|7O0#Dp zxQPVvb=g|~b)lrDpjr!7Obu>7lCAb%D@MOC_p^S|n#Jw<?pLg6YI~Uc$`=;4ea*gOGa}42g_Emjb`6Q z+6w1T`}D6dMdM4L9=8wmX@o^>I;a$9f4FoAoa-mCN2uyYBw3ZiL7al%lA0@f!U@fn z)Ak5;T{uFc6+{ZE{Dc$y;5%1{u*p+}x1&3^l3B$`H-h-$%e-_17Jzz}vl@!E0;K-^cKTtN=(+SWD!VL!O3^1`P>n z%AqLR%I4d^AD~kFPmb~)*esvo*VN$D+8qopjUp>Cs9r22%97o8;ewPHG<9|W?qLq--B@g;sN!a zBCaG*)w2p94hQ5!!k9^CAZbfwPf}am6?PX!za)&F{Q*XSWndcyH3Xs@!)KxuLU9?P z`S93eBdh}WWEc-=kGXP~gP5UnF8sl4Inl>c?(!|rYA1m;KG4vi+F9xCL&3AGtwgG>?$8I5=OcnZ|jb*BQ zK&Hx%RDa)|ccN}EkNX+wN-lme09(}C6v z!7!xwh!Dl_cOYm<(2_>=Tq{tHCujoM~G}mL_fw6ekN>Pogze{<&I1sPmp85~J;c zXag>59l_{k0Z1e3$oxALAdvR*6-0OTq!l*f0<+y_C-&+tgRVk$L~~>pq=?G%ut<`b zVFHqquZ0 zOhmjvJ0t=rtM@5_N9#$vj$@8Cy7++o*4s=)hj5Zj8>bM|1``Ab_FgNh4o_%dJ9ehy zJ=nv0r9AI8vR%HCZpzj&UkTYd@c1S3^9Y*bJs6XXB2FA!*bu+M@EEN%n@LxxTSMWX zLvpG%kSO-sOqwE&{d|J?NAlhgV?h+GwpH0>I5#?B@NTxj;3ZpAJ#m?DjlTff7S5b) z2{!5S){0>;zSF42M42+*!SD>6jiRZm6jq`S#%tWx0{Zk;I0|0D%jX!c!^Cv3>dI+f#hb} znhG)>Xj{{@6;}7LVygQQ>axI@efnt3Hi(S{7P^omKMWZ-<0!`+^1*veN$@R2L7-Cc z_@(!2vr&zo!&9)VcN_%cIV4Hq1AA~$Hg?%KEeWCU zqlp)3h*UwdS42u&wn!Ak=66g%Ob%xu{E05=y(@toUH^h5MEb^ z1E4nC2DfyIZ*$>r%?)AYpzRs%?&6kDpt3nTsUe^)xrjqz+Aw~N(O8x3Eh3%j;n*=! zG=g~{sTYKK)oM6CV#ehd>T0_#Ce;QJs4#|bV~1WtpwWkbT*ivvu#Ig#5DCW6h0Adi z-KQmL_g{p&3+fcCxs5DWF==zK{Uo&z=~p^p1H~~Ij}m@ZU5u%U9v8IR2s)C`0qs_7 zNrOqJL+Yu3x>Mx;A$i1*udT3Wj(RGXb}HzrDIOY1I|*aa)}Wqj-=$)IMmOkEE86(i zY9R1TSK6tx8gE2}bb%a$pflgluBAKAhzguau?zkGB?GaEA)fK%8N8{m>|WsXm?plcLYnyJ5Gu&Im4y4jB%p<1Qx*l283P-f34Ihyq|3}d2q~Hcows)FhkgwO0>M;rSt?-*ibx^ter!Seub>$<7rM2j z&>2{G<%mN}I%&e5tQFgLw0W<+>PJn7EEgl-s5~y(~DPn$mMMF{T@hxAjhPr|g2w%9$LqDi&IE_|sZ4+hy5q4GQ2rDhkd$$h#l=rg59vNY*;*j%)v3Q8@g z@g%+%k@)<*07q?*dbjT+1!~)?o~bci!+QCK~e9n8|d5NT~F}nJe`blp`(> znJY)FF+U1M>&!pI906?lKm$J`f+LOrdl2o8E8{CfUrpgaE%)MS{$Us*y5qFS-?a5K zKeNU>h{2_vsN4HP)a7T?bVX${A(;Y)tvqlYM9_%& z7FMIUtHwSOngiBi6%k0xOo1Ia>ZdssQ8^9TJEU%w`eFl!dou85M{s~ynHx2aH*o0< zegGVe7%JpTu;y?=B#YYT@2?iZq2m<*-gl7Zxd8I7E`HB7sEfnH9H5m^88&QpVb7IDiJQz zQ8)tUl-L%LbLnJ*on!vcZoU?FlQ$a&(Ko+qGZX1$2xv{+9ZG{9KW~?NqT_@>B`(;g zyUQaapY|F*1wA2}L?4R@kauMyTCgz06ILWvIM6#v5$?UgI91@Dy2?DDgZ#)gsYiny z;Tt$h$zmLVTb4=zx~od|SEZAyKDyaoiT!|R!?d&+Zjt#=W~3AXj)~YoO>*;V65#*9 z$7W#bKvQEq^taXn4)TKk7B6{aR*_39b?EP{iIuEC2{VtdU8DHBN$#b0h~z|q)VfCu z7pI{1dins8{(Ce*Tvl>i8JR<|(}@KKTH9A>v2ZS6$pb8l>?w$fCEqeRtY{|%dn*ro ze<7%T7P1|LJ3EzneG}{*Qt>65IoOxa!IIBMJLY;Tp6*AyYL@#IJkbw1|5#rF?aI7u z@O)g_NXJ`(x%cPfw&_zCPL}o3e_?gk@OLWN z$BquwhFL}kE10KEN<}NBBN^8xqLb3$dd{Fdlz9UVieO@DlQKYri8wIoARbXCWtiAN zOv=!*JTM(yYF4V2HCoN`MDyIra!+qHYqUHNoi%28=+IYArb;M7zOsCDRPK*%JQKp;MuXxj2rB^t%2CZfsmAV2Ve(U*&y^dMjt-nZ#NfNk#9ixEo< z(!N#8N>w^Wz*vTXb~B1tIx4NBDVgSbO2?ye3P4Mi`%;Zws6kH$b@E!ElKC#{fCQyu zxb%?HF-m$styNl2DCeJmx3xo-duua1%K72aUCQ}U((OveQaKsNe5IZz3D)| zo#kQ3St?(z%@~ck{HrynjFYjX&De;TPPQGy9)$@tFY}QyqGmRKH3jK5lRly%qVO9CPsnkEQr3fyBA>!^C(>76pN1p=H)g zw4P%folKcoppKm=Mzj3J2WU!#{D;#fp|c%@Br(M36abqw(>%zRzlsVN5C$J-RN_6L z6++i^MrE1>GC5-@b%A9-CKiz|pAPSMDEz-=D2r8L%P30$pjf`%dkibMbS-^)&CkDD zAFZb(zFE*1EuipryLw9F-c;!aC z3BK>-egPGGg%iPOqh7lm{zTkSMvF)Jihnb{#wLUyC~wmirt%d(rNT>3@a5NF62()L zOH=uB`cgyj2<6gnzI+ZV9%X&L0#GQIk`ao7OoPH@luM8D zA~RpPBuRG^4^b{XE%}s7OC<#R7vM7sDBHk3ct^LkluJd@jY|>ORwA(L;L;4^PgDV) z%R-k+L#X&hj3o`DFFI)JVwhZA<@%|LVr)_oz0Ll=_mu-#k|tdQ%*Lo zv64keAa$UTGjWB8*I)q4#<#J8^cN2p0H zZUb7tPZiZ55~DY22e99rw~sO*R^>iQbhea)AO-$K!nD}MagZP2tTpY}w(55Q0P1W1 zIZU6)Vwp$2_n6+^1k*>|WZtFsWnD@=_%(&8=2lj#wD>gjeoW_CnS8+9%2!r_s$p1x zdOUo&wF4Y~Y|ccAusWIf!k+SsNbs9SZ-k4AlwLJ27*@$!GBD zTR7p%-@zbIPx5W_9g%%XN4A_+J2wd zJ;|C+mWI%*UNHw^0DUVfms^+^yjkvJ?u_+m(7jKkV>Vw-_c@I;00CFxCSO*nG*nQI z<_pS!OF|hw-k|J2;B7sSAE=s#tEUI#T{MASfP@kxiHY_M9lub2n0y^@I6>B_(qXva zQJzKRo2~Mj<#fU^U-3_*A${@o7rasJb>y_i^Pg5LCLVr4Wzl*#odQ)d2Lt_gt1roE z{F-bVZhHY%`5Lsy!Dk7dMI)iCbDrtI?|i8T#U`4cU`DT%WliMpMZLTdpiDV0N{-Bc z+ynYYG&3@@p_|VK(cx3bqXM@xs75i%^(J(7YG0IY_1Brcx~4`1&$J z;vlN6WTn7v&l(M!V~%+!r9hA=K*ZQuSkAExz-QP1oXrz*MUCAS^1+j?ez_FUBNS%S z;Ko-Q9s1V4Q+Iai4eku<-Vf`oro}!L-{!l-B>3z` z2P)?z#!Yr>_rcucXR*bZEz*Z8v3EEv+Ub1T4%4jY84zN+8?Ga;*a89pzKk>)pJicR z;np9dY=TI&lk?6G2(jJ8cc^e9-ZsX(1>a6B10=!*`W@o4j=@zHe$K7e{EcmIK(NFq zfE&?Tqg&)t@!((^6Iz2rW@Ddm;Sfa1jUTe zblXP@)OL_#gIzg6{S>PIkFNS(QT=D*^~o!QnwkT?5cT9pt_7e>;8LMf(UPN<8C@;E zqm~m{%Srfx8NU39u+}B>joU$9vA_%U!h<30$#emjfF@3q?-$gwLG5D}xfs;m_f%r4 z`WraN7RoNY1gEczXo>L^P%zMk%X4w{aT2T;+F|w(wfQddR=Ph)ON=-i!wx`j_gB6x z-ch_`oUWqfZ;J?v^@wDLZHL_!635|MvKgP_oiJmIN|F)7$N&xZe~rm8oFG1Al?1g{*|ay( z4Q%Rl6?$Jw*Rn-i-_zf{o(!Y<9Br;=ezlu{y-%M5yQ9(X@L|T-_hN6FYQo#Y@X!ZA z$1{l!*}m71AYpN(c`x;e+K4>zMsV#HH#M*$Z9YL(I5t11(RsBRudy1e4O}5#*xm(; z-a~o8|RY2VfOZpbz#zS&peSjAUt#+!iH)o(Mg zF!X)IAOdgIV|4rLreO4QV1n*)d_!nZ9oQF>q?rPV)87+HL$D#d<^5}L^g=hx+sq81 zEQ+({Opn}O*Fm+|!ycrhP9GsL`|9smdCe@Z5s6HEb>C`o3EE8z{%6 zD*?fuGTdW+paH%R8~@@8>YsH6BDshS0Y1*G?B_)VpM$EHi$YL0Uoney|D0nCUy(~a z;Z#;sKUWT+UMK2hA`hRHa)>L=k?iFw##oiyVgfxceCw{P}v~gxp5IDtpD||_`Y}9^N?d|gT7`Pp&FmY%!2Trj@J{U9MW~? zcFI4YD}Ms~8WjH|G)yx-SrJ>>Ob^}o)(dJ8 zww5s)yd#g*`!U4q(|h8H;NiCQq)v&gWWbBPI$!Z3aA=IjFa0nKaO~iyls-sk3`HiE z2B;f=w=P_-LNz+j!hLsmNm!dBN-GeG`!f|Lbx$PMiWd@9w8e&~^70k5#SUpp;I723 z0@c}lMm8n<1&r8~{z#-U8q|mwEr)m8#$2da9A(oz8@RiVJM{bhJJ$aT$PqQNg>gxc zWZX05ltD*1kdjX#a;NudyF6Q5kwLOoeu&P|(m8o5<6H7Ele~iWNk4_Dn#VX}2ME-mD^`rL$X8f+rq>2>arxnhpgSK?<7QKoB zWxNN7pEBUuirk9;} zOMS}Dr}E_=0z~6OEHuuAq$KQ(`SPD&yeZ-S_acfW$9IW;@#m;gAZP>C=7JUbxswGe z&T(#ebWmwXSka0&WzLsZB0tQghYx-fv7OL9oj(HZ?vI|Rda5*VT?SdQZ*_6uH^8(=o*sN;4`2|J)%E}z!!o4@D5`?MuscUkkJnuU@$)*sW^DSjSbM9bUc?y z$614{&i~cb`59Wu>wkyAv$Sc?cNVN@C9uzP>GC>j8QSz}1c%ThbHbj1bXzJBw+-0v z$Mt_%KV;p*BR3?q5^>xa)zD@+y zrq2boz#oW2pbREL*#{t3+ofw_LQw7p+XO^sK0t!&3}mHGK4y*k5Vd9ygzyGqoJ5Ur z0>T(p2+-$vT5Tv;aftBOiDkdGU}TgppnXLT!cTM)ObvMlMNVRDiZtJeX+iG7X!|$p zm_`$5{8Y|t19AGL+W~_2SdQ-^E+()czoyDyZ9Y(suAsaS+DruykNOZqXBgXIcVW72 zZW+%CpcCL3PCyY3AB{FSAV2Xv!!S&=7`-$j7zRl7H0BuZyjL4~| zOn_(6EVv zQqJn%5K8KxRK44}k^K{0-8@F!(3evP-S`a5{U9a~ZBar9kps>8WM3$vKnMCd1N$fp z1SNdjuy;%{o>3>4sC1_BZzQ3Z<^CIs0Iz=VO_I2l4P*A*_%`J=Q(oMz*}H|trt_fN zV12`;A?c^zvXyd~9BkBA{})DxZjK}N4_z2pM;JLxGeK1x=RoAMKih#g27Lqr9l~E9 zL~kI1<;SVwe=$YX3*P)oU#2(JS>VNEGOY)&d1dzWnTE%eRG9{A#f9WzP| zL2i1{sCw}f_!^$WFWnC?SmY9!$7UkGrs5{lDp0eA>$fk0*Sm6|mz+M{wt~j2dmP+G zKbq^?eoJ6wi8xG;!*0doYo($-(1LlE(Hk%PhxhxjzP_!60}*Y?cD?pVxOczAg~Ldk zz#XKh3;HWF6!HwG&KZ3xq!Wpj9u3*h!!!5~C*4!vo8(7Sad-**2&E!(A*}=i1%eXr z+=D1xsBsW=$m6Gp;93U0xV#^Zq|F5a6rsNXpI<;2LP4V+stF$)a-m}zfo;W$U??Yu z!930WR1tl+3V#dZBmu)hElYnSS{>4v0;xjU{Vv2)@a43IBxiUFbo%hbw^f{?C(uqy zL!r>X;YQvgSlB)C_;nmD!_&yNmf<&82Gd7|Ay)7>5f6O^4cw0Jf{a2#QJV$J0ueUy z9;+!C4OY{C&4n*yX#l`4pW}HPcFo5Mh)X)iWULOOp^ZJ0pV*D8DjBPbQ?4`tdhMs^>foKK~3ES5|qn zTa{d@^7ap^__|f`Qa2P#s-J6eq7;Xe*R(nAf8wLC_udmpG zD@@A^~EQsyo9ET_UQ%^`J;ldnkkdaI)W5Q@YE% zAHjQ;DLGv%yUQW<2}UFQhtvH5Uv23DvpGoDfN;l0*1>@@5@=XlgR+cDhX>cI^`AgW zv9EuN8veRNO?E}hEQ~`a=6@2*|1u{Z`?Kyqjs}pH$ZKOUr#tgh*tHh|Rg04Y+LNAj z!(Q=o1=`{p8zv=#wI_LCS2j+%5wa=o64CNc=!+VZe*dD`}9YcF?b9TG~ZL8F1(R{Eh{;Wx|o}s(FHzU1)nxT zI@Htb)*!z|^y*V-Xf-<}c3TA=o_+97ubV>DoDOPc6S(gJM0t2*3 zJsGn)HSk4ZU4fQZ0F4PRaQefbH?q_%dYexqmH7+wvbg~DM5PpnOQWC)d}<7PFLftV zp88w0z*%@XrUaM0dK?EO#w%z2N$INXbkg8?-r(IW%y6 zNZo6WC0D((t(Ant=>cCu9OO^BTCFDr-b|n>UnB@0!=1?aD@)P|Zd#Q) z5Lk>)R6y42PWU*Ol$WpDsMAhHdeQQ4LW z-GP)4a9wMB2XdskqINH~1^dA#_&j5EA9SPJz|WMxGIFzwUtzm!RV4AM|IY&!YthGo z(C`8zEvUvn%fJC1#h*c?cH75ePUM+x!}m?l8|W2wHGPFq3h`@tua@xDSX>}%1`+NC zTB7(wK0>&L)k3sG^T0lO&adys#91%|c*=p`L*!M{$1crd5H2Y zPeu+tblU^F2IWFBf)kVr3G#j9@-nd+#*3Jfr3V^x3G*~ds9$-ts2(D3Z9N@BYS?Ds z-PViH_8e43gT9!m=3uMhkS0-cWbMIXn0IMd?oz*g4o9Z^nk;x9eF&|Lki>tvi(qcR zYUt}X!)f>+)pr74M^%Xp(N;!4oFCXT_x)6hs1WA#~699Bwo1AqT&vR_Pdv8+I6~xS!I| z10G$xDjj2_8;mE=qtY>sFJFVK38d7q{l}{jM1i1OOn}=5dRT7*X@wB=N&e3Aaa0B< z`HB(r2FoHxJ)8M+`61X9Modoru_;>MIM_KN4>E7a_Fa1Z=oC%rg!-o4 zwf-i0HI3DFc(cICErgJ#Ft~+~g@h3LqqH~;&&DdG%Q@6Df-y)7q%eYB?l-*%My39k z3c;6=s8k-T-wPUJnxjpK#V1nCsBs?Ij0sG572z*@0{zp~fXmK821RKX6wFz83V6ZT zU}*F`KyL(@uu+k;tP^uE1I?*NyA@eJRxFo*kMhQ^M;mRZLF%;PFp+II$5nI0Wz;hg zzK;;amw%1~+=@Nu@CBlZ(aE=60KEsanE9-SKcS*IjJ>|WI)KpvX>~u-A;Gfe9jib* zvR~9hW?Vf2FP=PIdjJ%1dPOJ2%E>pe>lVO08^ndxv~Yit$a{}QjI+c=V!<4}qVrX1 z(VIE^5crG&v)_u&|3#)W6z9OM^=J(*nJ|;Y(dGG$K<>uZslSWAAV~>Z8IqDzY!^y0 ziE?3N;qMEwaMU*Xklk0{feny9;2)goQy_mtRC{?~q@-X=Lbi%@J)7tNOmrAg1y~s3 z%X>^ue~^rqv7T&ffW2Gj=Fi=@?<5rk;l6=pk>-;Am<|0gOnx|8FW(F?4eh_&kDGaE zTj?W2gXz+gJ3JnAbyja>(h+I;{?K4^)W(5RF_~L18GNq81MVJu#e_)^F9he|_9?ta zE>lr1MP>TKOl*jW;qe*zLi7kmLImZtcu0NWK^Yzdmw}c*$J^O%)!|{6v;sJj#7B3> zZ#GBb7KPeoeiQH=lv6>n9BPwl11Bl+f}DV7;HA^Cw~`7MQAkU7q7`vOyzQu$jD^mj8`gj6iTJNRoWR0(rv z#EO!lv((6ZN+I{3^h9ea@wUw}c&t;*XwizG#V+VCvl@(_$yg~vl2v#R-QR`^GR!PU zBi12(r~uo*#MO|N_0o`ab4Yv~N`maN?h=>ApzHxC%bs(L2bHrb$56$h@+FwH@fzq8 zR}wL|W4JZeHMb@a9leb*`0F9)s1}K#3FO1JY*Gsct5J_GmYEMv_ze{;rUXrP6VX5n zMh9GR1Fg{$x>QIIqnp=($=`@W=IAQ>1CiLQO6mbi3>q0hT|UFQT<&KsI`%PCIJ2zH z=R;Q%5hsGdjH!?{Fg$5ZF6g(#su1SSOol+~=9;*ahrbnwVUpQZ3EhRNM42N5?P&*g zCN;-gAiL-LLUtd*#t_k&oAd*8q+!@hG5-v{CILAZr!!+0tQnZd-ZtYmVBfCs|HX)i z%!-Xz5w`!lY=)}4;-1QD@rMj>;Dzhyd%Jp^%-n?d+Xi1l48rEbIS*be<&2Y~Gng(j zGhu+`V3d%y5Q^#;U;Z{~(dR1p3iy+_Y;7JsFRA0S>F07ts5wekrl2sgec!Q}oduRK zvj#nx%`7MXz!YuTL12Fy&Ir_|vQ}C{eFlh3BF`+__>qn>XTqj;DCg7ZE7HV}C-luY zp_#?Z8d`~%pfjGwwEsWi-aJ0)>iYlBWFf=)jw~7#G+@-Qh(u9|fMy_p2?PZJQE{On zh@uu{hNuVxC(#V!Slf?w@2B)r`>FkOk=hp2+9a&O1qG~%O93~yS$``2&b@gVbl-}hb5J?GqW&pG$p$Wa!Z9(2ad+Qvv_YnI8@ty$}ix$!Zt9xeKo zzozS20orL*ub0Wl>Kb(QgNzP)?(M+9h3giBV%?i-@EVNMirEpk&BCH6T zmmYOjgesKG)(~h5e>YRucP+$nxA-xdjl_7w(xpf3iZD>1wfWiC>9Mrc9lTh{FiQD^Gu^R(z&shKXEFr;|7&-3K??6Y3&%0sI%` z{uZjXS$k!&&e8bl>)1d@j}bkFe23q@yC22v+3rT0rGkuB7Qse}wD5}V7w%K1bmV4- zxfe45vPK77sOcus`ccb(cqFsNVx^lzKZMu7M2}~O!j?yOkVL=$vNV9wOs}j!F)kRp zo&jvtF(ZAxH1qiv8s9*znAbTgN9B&RSW;q-m@-0}c~~a1l^cGEr?Of`YA7CQQ3MU( z0)O(1k(&H)=NoO%y~ML%gk=*qB<^SBk^ms#5eYylDa{7-S&E0pm%~s9_LLSJk2q`n z!b_s@m(;~7o!f3_Qi7}BRi9!=%|*4q_X<|+vU`dPoF}+=Oncy_2)({|16 zS+-*i|_yjKF|K)*9324t@|(_>NZHPK*AvjS=@MQ{eN-#D^)5jQ zVkgwemB7q;&?*`7s_3P988kY-#H-8-T!^#}ZLG!Nkf(MzmR7qk zi&^HUNnws?gpI&CG+!N?l_nOcUdDe3IytLC#V}-Y%owE>UHu9)1kcS0`=N#Z!V0n< znzBK$*#K^6Aa^goktg{4mVTKJCi5#!bP}merDK1oE2>#@Jm%d;>VZXT! zTah=LAK=^)0A)}^BQ6MNtM~d-8xT?~37&?!VDHO0B*QQgXIp{Om0G&V-sG{GZ2Rn$ zxB9Y-xS<2rnW|l-f@<21%0hHp6>W9t*oKll7K|_UH(pI^&~niFQnVvlywFT^2PP<} z73Y;o-^2~bTJUCU(f7N_on9s=W+P0*lcT(=b^7f zk0eFJk;P8kJhHlZF0gro{My!-dEj2+2HRT%UC37~9O2)bD0fFt$SFLI`Sx_4bj1K2 z6y{`EY$(MKcrGrXHSUOpF-5L8u*r63v8+BdcqolwKb#ZpihWXT-ULD>=R}SK!XrI2 z40RCN!Rswx#%HS8Pc_L^wwSe96j@ZBT2ec1NN)0i$dN13MXt*f={<=ebzVzyFxQr( zKmnfprF)PH7g;hCEm%CTyfwAn`~p<4>X77zC|lIa+l_Fho%czZnYM^TK7M}>M$Kk7 zR-i|!Ky-&$OghqL;*iM9o@0VZ`IBG5EZTakoYbs9YSLE;4(*W4>a6y_1Vo;~e8_Vv z(WR1wG5Ysv7~re?0`(i(Tqf-zt`+%axF_4L|OvHU)D(JFP-{t+X*Lt05(8C z-y*wRxd^v5L%0(66NR>&vAH9c+hTk9OMr5J<1h3O{lq-_ks1i&*RxLI_?33u9ty9z zJUp1-1(xL0c@BC7XC5~9xtz^HYD&6qPm!1;Ldg!6PjeNiET@%aUoO5U7|ShYg&h|g zYE=1Yw(`!TsD4h9wFux{Re&3V&Zva>=Qmxe*+*Q1jSf@2{YVb=X}X7GGbqw#KW}RA zl1S9kH&&43cc>z~Fo1WT+vg4%-^|0wnU?>gf%8%ZI5E{XccBJf2^(z=IjoPJ*&AJM z0~CkyY;0n0ucP=x$#cAyTPy~{q|}5vVK)S53`A?Edfodll}Fmgy_o|2Po1odheaA( z-4XC~nSkaH_2cO;Jte)neEM7}w3=y+n}Iuz5XIyReC_r5~W*93-c>kMb=d|5-ENAJ9R5+lPSY8Q3_t^UlIu!3BGQtmfA zHoZ??cbmRq=_%WE*ssKnuW(~f+0d*Qhf-bc3tU1^`UC7cbx#mTF^pYkWLUmaUrKJv ziUoYnAFvN;E+6;tTZ*vKB6A?`CP5EC)^3?raO&{=g| zxivW?`FOb8=L^9=+^t-cY*jXP{i5=k&ghGA)QU70Bsc4n04!9GM3;ci8 zAhZQDn?S%o*+qsFQft}Bo^3aj zI&`>imjAW*xWuYd!d6K-z ztul7he?ix(V~cV6zystTyx^F{lK(bOm9ZL~yCc(jr6VI-wNTkEm-V`VHE=rA=B-K* z7+9IQu`+dn@cTM-Pr1pkv6CCRzM)09#AkO!6(|QKHsF+ujB!}p8uyV! zCGZlQM*?Wlnqi)mWrr3!3aeEf{h}gz!t~LoVCu=Y-Ne0ZI80*kC2p%#>8p>RC947` zjNO_mTqP)rxtm%e$8r{Q4$z(WR9_%Ette_Hz=~WBYDLfhQooNod!N+w2WO%?2Tbd5 zbqKxVHzm}7vS@MlDnvbVWT?Q)!@A4#fXkC-bM6){BGy@Mqm^DFUl0l6XlEh!3r~UE zDv`Wb+QB@OBa)lNoleVer`w^AhU1S!!dy+rczrQg)?3sKoZXJiUR zMN~5%06i3))jAodR4C8o7pFtW>Nhc}aC>1-??=RYL%oL2B|5T41ulzk4#aLNQjYj! zv`pIt9#dt9hJ|FWIjhtit}85EJlGq2Wf}^7y$4B4ZIrO^k)1;{b?s#+yW6uDhg8{s zjFB(rw3EAUz*fx8$ z{RF5v^*)=ayue-H4~p~IE9Mls2rW_2>V|{`K~uVgILi}LIyUh5Yh=VRRdAaa?p_@m zU~g7^!RKDHk{p2aS51Vx*xmkc#}|C|qeS1kp)__0)@k41MaeNU{KrClh?{dJmrLcm z;0vDyKb@4j^ow87JvH?Ma_k8e%eQhWjoKTN&LPj#HhCT!&X=V1zbxfRnxVo#>{eoc zT|Y>16N@weuG~b9#e&7LX4iccYikJ}a<`Vu=JNoYJI4&r(;z(!=EL=ax@z^CkI-8#Y>gqz4F$3bGb9f&T?#00Xu3gZr2g6Jcf(TS&;^HQRH+2_74(|%P zJVZV})lmYJ@@%p$QUamFC)0E(KBLc$99{%q1s^66FXNm^l`Cso?uOBn!+4e%wKr$<(8H z!nD5p21xO~y!2A_b5T{-Z|g(}!nJC8D9^?I^%mE0x&kK(Y!d5CIZS9aT^PWMA#j!O z419r`QU&BOgG1NYVH|=Y=v=s?ecR2OjZV;NHf)D2#}+__i_5v^+Zyx76qz-)yStPc zBxGZ1gLZMh8=&c5TprzS7GLB(nxD3-_(}Vgitcslz6Qk-yZ9qS5WWCHs~p5(`96yZ zOfjfX5nt$w&&{4)8C`5s3rMts7#!U;yK7dh9T<4PV2Vs3y;TofpghO;^(JrbJ%ik5 z=E|(L>A2~;lRMDPn>V@d{===oyw_i$Si*LeRl#PuZih<+%e~6X&!`Ddk_l8{0Q8c+ zd!R0`05)~h7~QU-W)9`Fp}V22%COJ9;*#s;oLt-1qLM^pc{5Q(QCAJ+-Hi5*49Z^z zCbC{2nN`OwVF5#d$r=_KDo2L!-~h|o!{G~Mg*BZhZY436+r4I-#kd9Da(g+DQXJmH zlC?gzyLIaWK*qjgw8G0yi`zTQo$msZ_*B2P!E#quksDKP-KzN&6^Jh!WO{z!CbnG( z{d_#R{< z!brp{tC$h}4!qdyI(3+1V51$z&!COi=%QeJJSRlCLW+jEq?(C%RN6co&g8_`A%;!h zMEfsoUffpNV1{`@OXv**NOn2m@9rVzi0yS+2Z9ss_PwyU(Y=3iB2vGR}na{ z&^5s7F0(!6$B;te&mekJ&SXkAJ>c2frHNT%I=*jbAE&H^gHB>V;5-Xd-1toUK`N0r^v4 z${>`K9#QJI~ugA`!z(W2Qlyh^I3`BAXg2`2>N`ot+i9zCte|+we1r6e#%q} zBJG9{4kkq31bYiC4PuC>j^-9ah72c-wma2bYQOkxZ3XsJ$2=d1a1{ZLL8|>is%nHW zcl*~@XmQ0|Zcp5+L2o}_^NRgthpF_s7;M>aoY^yD`IPL28q@o}98IPjW*=|7?(*}# z9i~WQuledi)n+NZ6}+-wx(k}NK#90okiad0TN5|aaccvRdmd_yb^?%9JbJE@gf*3r zcuQssQVN>+b9B}1=v>5X)``fG8lr>1hZOV|Z(r>PwE>V-ecObX+~fsl-@!$%R9{NjZ3ua(Ji12tp0);nQxs-@ zyOW&WC^MXOA6RlKXJvM!amBy42+qpszAms<9a$EM!~80WC4A)SA%{8FZ>~7+B+Gfn zyPUVea$X@}l?*8mxoDM17_^mcxY(~)LVR(jdZf*oX3IZkev(&vlQqtMx>vZAu4R`k zYB}MHZEI=urqc`(dAQB|Kp8-86xz80be)G1Adcm@X4pU%Paogx2{iC{m%XRnG+RYb zBA@l-s)*g=nqXiyW`jq8)KeXwS#G`uM%tW1(`@0}UQ4vxNiDzby_?^74=#>g2JzYs zO6QI!oMo!OVNGO8%;_E(`Cuy|bS^M9_j~QKRhZ`Cx&YfF-TdQp6lW=wQTn-QMqz6% z=tm{u5Az^O+uLua*N4Zw%Iw(K*4Re7sXI@ntNu?Y$QF9Wd$8RVMw{XWzl+LUq_b8fcQ+bsjlLb-gvRCzA)k4q(H?%UznD?$r1X>aJ#=0j3dRs= zcCTrxo_VOvdT|MWwR(XI$>Zt;q)ZIN#u9pU17}>N6Nnt?6Mnev!|)QhN)!c%j1)+{ z$)yPcJ99kqkw|@KO0QLgKe7mr*O30SUg>@jY*N#k#XaT-;r(c?&{6G?oe8g%p$JSP5QVMt0PboUUXV?_}{6@C7CLJEwF{Zg~eh~t~4n2^U}=c*VN(;+x4?B zurR=I!ApNx$VsEosuwW#d0lWsOT+UNk8PW&=#hzoQQwE&B|Zj!+1ESu(zl%KisQER z-?WvO2mQq=UH=~0?QAce%k-j^UL>w3PrHuzUs|q?jQ2Y7^lP>wcJ5ziSqN|db4V^4 zLLg!B?hUXxF@?^=Clbvo$9a4b&;Qb&SJa=KAV<1Cy1~r$r!mtX`5Prfpw*zH)C`E; zOdg`Q>vLqYH)XQR=P2<5vfJ(tr8Dk926wA>1>!)h&a8z!h`gpAC{P1O7%ZAx;{M)T5yrtg;e`F zhlk|ZnG8L=3~n#au&c{dEE^vE{1Ji0R_@dfrcTvhW8T>lpcVjoG61+>3IO;%B>XSX z-m9@bz!xBQMHvuP9g4*iB5Vs@7_`}ww7 z{1XCg?XYaYBHYCl6uMwaNftP(CURAuD^Wa-rNqK}uqQ*9kyuMGF%FV4(pK9oQ|-g5 z_GT+5pCTLn;ud<6;qD%1w@N^9r$gdRvtwfipoXjC4{G^CG`_)fRHf>13xBO)9wMAlH>Bq+cnxCN^UKDZBam!HcJ~@j8&3Mz`;S7p8H# zz)TqHYP_LG^OeLG`le9h2AA_g%~9)X9WKn{B;cyIG$rOsUvy zmoUb8+L*QEr^mQiWBlMIQ03c2NGnoQ*^wQKS7tL~V~fn)hcp&z(5Z;u>ob4%SeC@$ z4_SiLe;$7aec6F2!v31mg|nU~-!D%V@Dx9ZC1iH{>20c9dm(Q6O$N#fLIWtopGyJF@t{2;LfW-ciOKERrA%29(0GXwc@#>s&Q@o`F9 zlNh2g(D<4ib_Tr@1Q*bVWi5m|bWaM*vdv6H)#bpU+){|=%7%D2P z%wXsk+Dr^bzL4J%z}5=gOB=ZFtyim+B^-dvP3Y3_$dS{X`XlfVO}m(k-1D>xuUfrN zJ8^TSlmcw5B@mm>m;g_fUO|v2k#z;p+-6tAMx*~850_q84&%zMjE8+N^0_7Uz)S@^ zz7R$h8$Af2mh|}p&>8l`|75WF4OnmSOhxS$+EYCG%^tBSW_!fybfc9RaI#GgT2_yM zaF)5wqP52}&7Z9X1KHsY%iJYI69~;?0(R%C!+n?0rkXSFc}&rC_XyE01dVsA;@5k) znOxo9OVp=s=BS*a{os(t+?i5aH&yw)8qCy8%e%~en@B#DQpO~N2b!2=ObBUQQxHC=iDT4`b!g)|Ef%W z;dt^*_vX1N#YL`9-)Fez3B%ht^F~x@JFOrmlt;cY94->BfeE7voa}1iGu{U*gf3U@ z>G_;mcTv|d;e0^oGEKZ4&JwoVWigydk^;nn`BIPJx^MG%gE;|1@y0~|p4@2*>rb;r zrix>)hm)hl5}};%1#rb%SXtnErmL;nU5I^NJFf3*Pmkdxy_vLaiG}!Ru8mLtDYs)B zkg@#zo%&-S1PY4hK^Iy>q#opmvzA zX$`H0s{$Jc<*uSa#-ET?dc-jsvV2J`kmqI*cFTS|Dhz*8Rn_8Q-t@5wpPQtj+)!at zN&`5f-2iTfuH{j#{nNkT$@Izpf+x6qf1U;<;SwxgYy-^7jrQa*v(u8TdAC!5dUOol zVe*lIe~0^E$+=Ulx}_uR~8wVfIBFGk4osoj_-ss)*l}icWZ? zqHNJCi%%aHd*m3wFS!VLU#=;h59|oZ{uxJOtKyaCaIwVxVE=X1a6P9gvU`7ZbkPd* z1gb-Y%j9m^VMF#{qORC_g7I*3Fgo?QbbaOl0e0$h&?V`tI`18PHW)q1y_Ydnv{$I| z2X?p&O@i45^Xt>VAL3@6!?aYC-TTVoUN+i?`(1mH>!B81Fk88?t+nm>NwgE6wQYL( z&?b?C6+y(MW+AkKE1&9gixf=sSQp^k@Trq6r54y)S>$2Y;r0&hP>!OrB#ilx$dPY_ zXId9fab8^%ND=lsLj?V6GSHs{^b<#@$4a*{`THC1;MI)&qoBc2O`T&e+r0S9_+noK zv{*V~%bS$O-@nxjUvs!>DM6*KV(%(05w0@V02Vzq4pKdX#kF}$vzHD?sBrOew>|jk z6t;KD@G{FQp2TKS0a){misn&K6+J?5nL@YjA`Rp;zgfY&6W;0^lx!E_(2VQC>~OK` z!AHFU{7ae{PT3LUmBHisw^N(Fx7@)m$PE5rpyO9S)CA$y)HcDI;j>|+f#NAjR3D@VJ zjmEBoph^4;z>4)>2%x$*XFAKWJ;IK#bG<6RA^p7 z8r2Fh0SP)#w!Xp{Ws)1+j86UQu+ziDcMo0Xta`9qW~Z(3niSp%irWMa8qO7nLxMTM zV8ya3A6_rnp@-%A#PzA2Dwd7%&5k_`n|;9V6!@Ieh<(wqq9MRm|Do()^nS)rj^9%0 ztE#!|ttB^wk`Obgwsq`=*KcMCJ9LRYyM!e`!nUOhumA0G%mDe-Mgy zWAwAKkbe4j^?lvM44awAb+P7AxZjOh1PJ<(s6o)Sn@4wQt$nfklx9TqR?1qA5*T`@mIEf!{ z4m!erseiOvKOwL(%Pa9!-eheLMqf8G1TPkb(_h+r3m9}2)6zJPrzU9ulhc+J)NPeJ zk{IgNq(gM5@agu=;{!TaD_Es=D)v|xS2%>%sW`%`d9zB~a3T(r zxy3I@_LB6Jt_m>hmjD1z({saZ3OH5A`Dxe^OuZiYcnL0i`3;@J``wt&{kNw!Yl%F= zLi&B~2@LgsvdWh|gwyqg$Xm7L4U1DrW3w!)CR_gx8oIEzK4q0TgKpVXW^L_~PC4)^ z3}3#QVcaQ6{4fG8ahLM&n(_q-q)%+Gm*;Cxp9@-FYf#?=DV;O+hG4X2*xJc#{xvWI zfKv^H1R#sn0I}}m4B^XlnZm-A}JIoIU4cnq~5VaOE&6y*sp zSS?E9BWugE5_iD`s$*jdIM5ipgg@m&eH#huce`&jvH9+(zyZg%5s>8uf5>XPD zubmSlP`lf}n#A|0H-3MKUK5Y;j3e%clLX}Gp#=on7(3*z$CqSf4ZJOw(|faPh0a$W zZ}6=?<}Yt3X}BSq)sRL1WT_r16>M3H?34;p@MOtNbe56=-^rqkAF2iZlbC>V0c>9e zV0HqAk7WyVh})Fi<{SQPCEP^mteSL*vnnvux0zsPGvecXzBP8_Gq=u;UOPi0AIr#x zZf-=%%S!y1YPj)4D$~T9P@*OAXiZ5lKH?B*lJ=q^P~z52Plrz&V&1b!+{~dOxN}Q1 z#^sFt%sZ-JQh7s7romGTG&>6Hn=FjeHkv=_VpDPJOXBG#lqwG+*Q6Z-?SUW5yjHER$n<%piuy*l%Nf`+T1MZY)7HRiDE+v^x1qGT zY=0oyyl9-Wicl5EAB!)@NDEVgRv;*-AbMVQW!c6sr`50XCp*E7lJCB({Qz3MIb3J@ zj3`|sB0K)`o~$QQ=LUiue3~3t(uMEGK-c9$*B@ni|8w>Ji3%Z>c?MW58{KI{_JV$~ z@iS(ZjlVse|35SN|Dyailb=3~o-ravik{oU)kv9W2}cLDtVt~9?mAzK>2LXv?y4J2 zR276QkR57oQBnK%4qr=fCdV{(=a}P=4CUq|OGo4qK-fABaqpwXm&2UK=2OdqC4ouA zz#lS^#>d}bPCylbn+Pn$NIPc{g~yIKbaim%v@Vcn(0AY=7+S3cEFsdJuB_V_z)wb} zQt)4xP_#x1&6Q>EF2*%^-j$*NID_T3(buJWwfa_Zv*qxHdJg08Of;FuQKzOSd<|vn zzQ`A>@kB04n4^q=wD^32pRkr$4)qy{-fHPq`!>~@>!>Y0|7?4S?LOr*zXtlXBeP5T z;eFo?h4a4B!%`7FO>wP?+N7YUKc!Qh|1X_F#iUM6&U6Z_Pj~9tlbxbB-1;sXKqLGm zKEK%QliIZXcj(v2)js;R5XEL3a7xBqYN-F4c%X~LOo*;Wo%RMS=6K*bIN|tsuA(vZ z-w=%K&9?VcR7byv&xf;q;;-)biJHQtz5j-))t~##P#WMfjvIVpx$*86PyFy30eEC* zfP~ll7nT4pW0mc9xQD}4byaceEX{j<9LG_u-4?9szaFlRlF|e_Zgc8>LRJpWby&ci zR>zzLSMm4UKog=EH}H%hw8LlBWyfl|kt4@F5;wsa^SPZmI$|z90`50_y!zw3ijLnj z_>*H)$II*oIV6{2?-O*!yj{gLa?(zUDpi#nR6olsc zGiY7{nkO$9fyQ|BkQ#1M&Nb{j6u{f&JDABA5IH=79}t`~7>pJqiy%4T>2@*ldQhFM znY?$Y&aGNIJ$#71t=RC#G3t^BNds2L?XE(l`8+BVo{sbHvnp-j@qxWp~T_TrfqbnZfS__@FtmuZ!3t)XP zP8=spHZ?ut;aWBXmP~VLHL;9VtpsULmuauC2U}u!!xzYtHJ1CGlI!Q49Ozb$y|RT7hq;jB}h*qg9|RIF+UKUQ(7Xz^u*T~ z8;RowOnuD|yDO*?J_fvi);U8khwKD4LcjTeN62R$j%+wLv5K*ttaOxDX_2k;=Tv&~ z+Xdb?T$5=qV!ycy-Z9h3`&Med-KlRvK=pH;BSJc;VeDp)SAyS&-gsFxM51y)$Drlh*sk;D6m zjdvBM64dIJ#G4o|ML1p$rg%NTkDVU;k&pF<0p2kbTB4rI_}ti+Zyd}%p|+QJZU4<} z+lr~Q)m8Z}bQ_+YxSMJ+)5sw9f$Hg*zDy0>lGtjq$PL1R=;Y$Imb~1U*m$`rvrAlF z;}v?gE1YoP2mf2q2Ct}Oy>!vCc13TdD8i#hb{gi*bZ;W%TGwaQ%Bju6N4J-On`?J1 zNnEHx-t3w09BlLQXxo=CFLs6n`#HQM|5PR9JFxU~RZUHeW9W?8ra}ZTC)=5aTRFj1 z8|e7;bUf?67Gt`Yuj-%=4){E_s zNjr9P9_59%UPCnd-=b8PbbjLHth7xX`O59}@rluc%;;i1#^-MaVhqj74)2j6a-!JI z{PD@5o~*5r6X#5jqUuPl)qGt-ldsV+|LGsA2xC=^_==xM5uRp4wAXyYut+BM~E zifHOWe7EuuzH8nDYBBOAFsHgd8qZdNf8r@KSVh^%8CpJO{zfjrVG0#YPn=~t zZ}&@_#kTvUN!}20ooCi^zI2_l^25~HWFEsR{m{J~I5_h|<{GwlKXnm@nxokY51tkD zeSxHteM7M02kLF$mc$$TGgBU4K(oipRTN3j_>JnqEs0-~3Fv{+;;me_b2^A=dXdo` zO5;tc8xhK@H?e>M!H%z4TndPvhkLo`^s(qEHnpU21|ODTY$mJDzRQkx!jNLgBlr%M}c6&f#S zAubsv*uD!TnCmlj%=GHmL(m?)nW#=v`U~EwqMNItufEJ?iAKI6BFcXWo^Il7H&H`K z#7NE%;c@6=!|2W;^2X_8nx43xs&v&AHdgwzla9Q+Fw?IV_3NoC)GtK|4z_MLqG@{J zYEHK7m8aazZ2!f&5m63KY(=wlT+{nKWh91TeEu!u7qZK#L6IRprIdBgPu%B{tGIRI zc0ET<O&CK7J35iR`~7&~RgR0G)VMJdl&@qlOmtZTLWMk%NKA0e$xc z8cqu|Ov>JnmDT@9LS~uzS6>v(I>C*R*NSS7-swDDQS5LrQ&*IVj(gXjQ@PQZ_G(4^ zR#0_gu>X-j|Fu-U`r&cmVC~V_;WI1Z0bd|K`b6M`*_CB$oog_lR>W`gC5!lw$A_bV zhOK-EtjOY9W$A}22G$;(6>ut>bqI@iJW#m?TF9WNccb&zK{`ZAuhU8Sn__E_yr%NZ zt%_jZ9Ehwb<>L>V*}Rj!Z9(S)&W*K2w{w}C57D^UzlE*dkzn{k)wSR>6@8#PQ}RzU5lTFKLtc88&2aU z6AiF}3nVHz?|sci-R;mH^b2eV_yz}}uUAD@X9rRnow`=KUa5#9dwHlzttLZiNFeok z^5e?*!mU@Fd>inX$dB(K1MSZHM%L9h`<*$?c~MF0kdO z9o_Z=&Y)&)yIiacdB=$f$EY+LC6#5{7L};)z5tW)orSbk*?%qFM`8bdB$3TbCuZ9& z%nJ9gvlB_?2VR&}wmRTUcs<#ZuF;`z7tLMS+9jN+8GkfDB9WlVRxid^vfS5yb+Q9V zv%`HW<2URoXjh2j%-SS1Ig|c(Jg@&?qsILP?_%1J?tc3VT1&|3%)_gS>X;A zLkexh-T4}QJ={6)R|cPD6~CJOA_j$xy0Yxp;?V~xoIyJ$#P9MEzTu$`fepSPNq;3r z9*0ymlm^O(Hj)T;t$%fK#|gN=2e`#!@PU9c;Eh14<$!bZY9O>G`J(#UQTX{pj8*_} z-dhB%tBOxbJ+P=^*;#?wV}pr0pWMZ;NK z(OGtML-vsH*4nFwggK4q8yqeYI6`NQxM)NE;0C@)(d6WS3e}j7 z%HEsbwPM+IsGnb}Xt>Uo+`A#alrH#!12M{#y^H;Cg>+I+0f@$VJT=wv$E>^rq2^WB z0mCAvQ}?uhxoi^nIV7A{m3lRKp!Vos=jk=h%B@xXw{U}Zb>#I*(0Qg9LZIQys(4lQ z;?pal%}rv&yyg6;H5F+d!sl$ITK`}2kQ#_?-+0=lgc@G}`#EZPM*1 zIa}m}cm%Ge;OZ=)$3h&}zkW_Ib~%>>wdCvmAmhJXYugU<*ihDZf)!Yw1%g=&x&n^R zYD`4wDaBndTy*hvrq#v4(pRxPKC@c)(Eew09aon|j$)EMwzzN83RsyLI!rz~EoK(t zp0jee*)v114WTex8!Ssc@MW^=vYZjbGPso~APqXv9uHdw`m!C`fc}|{Ms>V6r}RTY z@l=)Voqr)Ba<}UET}X8s(TH?hFoesQZVOF|Y%Jmo5^+_2&i?ky1&Afvg00&s>rxDU zThRAmF!H)DIjuTA=Qj$n*rlrM(EN`y*eOGNcn0GL(FK>XnX7}&^V_P4)Emz|J6O8y zL2zi(a| zXM5aopa%OWY0~|?=J97a0i3l+&aWHHvRnA(h4SwR5CQFoi=6tOY2(JN7OQ-T@98nJ z4pAcQsN#BAM(s)PYNnl|;0Bi9G;ijm<&TV_rRO( z<+np1a&&O$R*}h7l?|^4BCo^Ij?D^}R&gg?@A73~ADf_oXszRmvXfnSzQ}!k!B<_j zA^MqtUUND_Xh03;fy{pRk_IO@GET%GKQE1Vk+0jbO0i)l@J$z)#_jc-e%G2=}> z@GT3H?e4i$V1q~p(?$LGXJ0Z05k2~5>vrN^RKDrkI8tVvMO_(WujO^Vth`I9=zud| zBOuJ%LF~8#&S_HlK7COtMG}v8F&Mdw&}u~^?g|Ybai3GaQ1i(tfvU3g3$9o;+NV$7 z3SYErbhe)E<9dJd-j-EGzP?J z$1xK(&j5Rmi)o}7eFl%aw87&5IxsLzc$^J46&|njCBDnJz2O3dEBW9JdA3tONZI0} z^V35g2rLDk%a@IIK^GphjB6__eEKaLooB%rE?hRcgPua+Zp%jJ>*=9zE>+;K_E};* z%}vDWRRXxoHb{6`LFAJok=J|;1vjl-mXAr2Ili_4vz4wX8(YMmYx_lZ9^p>#1_I&$ zs*2bdk)2Cs2bO-4|IgJsb1FJ+wl~w%vu|K~L{#BBSUVr0`o>{1Sv#xvlN=m$Z;8Ud zUt({$?igHpb@R$mI*VfS<0|0gpF(~!ZXg3klt14_E+q3+%NLN@t9(f&^AA<|7Vv0i z{s={EwsrkS=JUt;On6w%I8EXtD;rnw&C<79NW52lm+`ANKK;BiuNv6XAPhuk#!}u zyT=4fYe(7Du0{DatdVun^35GM44Ii4Kn$tIsvZp<6udHrZJnta``fx%{@c5$6N4j` zn^EH8y0ol=3+C=k=Q73S3Xx6# z6jHQySc>~DNdkp;IID)3*KGUg_j%d&_VMc2qQdH&MI5FN5p<`lb;0>|A=0U#AD8&D zh@;pQOZo!sd`*-Js&iPTlJ8<-EFuXauJnCrI`F|Weww4mP*hq#i1`J*#>a-Xl8yBf zFS=|KBwupZwedl_wa%=nEaCvM6Vd5o-RCeNHtR@rbSI&T*-~Vqm%-y>x_mE!OCKEa z^;3bY@ciINEs){-4PeFmWS)L*_xiirJn}oh&njBzxqa-w@7LTek)f-l=~XGO@K#U&*X=X>%dDlMB6Eq3ywu_Oki;b_BM=lQotWN6e%mltfq%=Q4$|j}E zPK@wqKq8Hc-uM>1d;!_o3loX&lP0|nw13>jCZ&CmT|2UX=A4yz|Jk{p1!XQxKB}LL_e(6%tQOhf+PZxVai12Cj(@5zs`ACj0O;FY()(GI1eJzT}DN z+P+N;=i7V8l6hwDWVfxig`7*j+{Q5KY=2=CHar>rt_oQe3|-;$=T=##e|7N;r#~08 zI{klITuXMR|FgwU+27w4FSoycE?!}OUny?pw;eF#q#my;-buRkG!~t345)}Z1hj_* zfVo5LHy~-wpXB!K3i>9=hNvEP^LIwmqr#{&VLh4K!^x6r`mK_)NseNe+hD(eXHZyb zVlaB5DXWgp$Kh-Ct#%1-`_gY&kMj0$=8Zj&d7HO3Ah8=Y@y!3%;le8Wi6_3cfseNI z?ctL*(S^?$jL;pDy50N#*KXI^-Q)kY+t*y{c6&y#wFLa{cO&AifL{s%L5$^0yT#FP zuos8iKPoGsCj?Vp=n+xzmZRM5TQfdtQpM{Zyc3GVuj@T~jUrD7eooYef7kv*|C)nk zYq(aZ$$iTzH|Nd8|7<_6!MSTrB;q^}gc!NF{4N%_-Za(tKA6>%5PDrw1XkdR)4Dl% z2ObyUIn}cq@WR7^3CW_`*@QOT+ z$Kht-zTdR;wY?~!I-QOtNmf!m?vOlDNcp1aNaS?y4RSUW(J2;1bJqouRxvlwFLM*U z(vdRkAkRRbTIG*HY(E6{Z5T#faRUkPj9A`*oPKceM~a8Rei34OeWG{PS%8)IrhV?( z;w2TC_lfhuSnsDh^vy!*^~H=#5{~Y)#$X5~Yq3J`GMB$C2(_4d=!jjq&Eu5Un5bN+ z9PJfS)g%<@#%lEmpryTUdtJ-N(1qqm9~H7a(#_Y=ysK>?xEs#{c{cZ{+NJ9>NY*+@ zGISv>_-RnCRqJt)Z)9B|E7@jFNy*n&@wA^=6P)|n5tgwlgE0<{t)ZB|AfdZhtts*y z;P*Ne7I1S?Fp69s=8~DpEaa|Nkh_S8R_S-?VPrW87=?9zl6C_uBV0ImE`l&o@X1vj zok?$U5=r_P9J%vvl;(Y4;zQnN$0l})FS`*a&E`7u1^L{s{#aI+=@OJto=ggk%=#X3 z?bE9fS--1?H633g%|5QyW9?J+v;Q?J9ht>TxDOlQLh3fZ5M8xo&4A>pqcdo8PC;@u zEeE6X{mB`@ku#Q4wElig(bC0*o!1AloI1Ps<4X^G>ZaMr+h@K)s|JXIOH*2j!`+)k zh$i-&=kAogmXTNxPoFj_wA6v%pS~zGebY7$WE`k&$);~C?4!he!8b-~HgbyD9W&=a zA}2ZtKskx0^gVK-AB-jP;6ywnf-O0I86!zAT$ok{BdD`%_UL;s@gcydtJGkK&+?tz==`6Is%W_vX!KG(q7 zjY{U_wne9 z2Z*c>^?|Jan|vbc?`5(wF1yA;-n+)pIY{b}b39u%&@9ou1#Z)3ODpMlh9(XaLP1~= zlH*S(nh{O@fg~XAB6+!s-37y-{^Kk=EO#4z+~WL$cJE{7CK&Bm+^&H+H1Gy=iK}jm zJ-9HH+Y7Pr_JnfGa=s*siOEzXx-DvyfB^28tKYXl63|5u8rHl>E`6UvKXTLk=>+k z5f5dvf8J6RAHyod@l5&u_FpGAFM|1hx}UlZKD!~e$6&d8wX#d$S5+M5QBr!Wl3EhT zXF1f;a`0IWIBE7@mwh=NUV)0cUij$AzLhUpVYsET*%gW_R|H!sH)^TjcQcDeCiWXPrT!mScF0-CLQwpv5I8!uKXiaSu*iYfYrtQMbzn^Q_3y0LkuM)?H#3kLi+~N- z{289h!`5(?bfX}9HhUwNmHB5=)o#H)dK`CFov>LbE;h3EKL8>Ym-mrd?763XX5dsN zO=2GM&P0K|7#~z&mQ(+@twHh(W@>mZtzo%IoK9vhPxwwm=*E6-K2vg3P!PXEn*5|u z7HP47-6U6YCaWOv7o|vnVwRt21&4FU#|gQVsj;xhF$+k4Q8=7fp}gW2iT~tD(a?UY zpv2x-CuGJtnz5R^(=Ab%XISDIvl=vWE#~9DYYJ!~bYWw?YNIdp-*{a_3+^@j&sI%K z4i@F|#$3UHY`12z^>)!+d7IQPv&qeFPk)P^yGf3S=DcVT7%nRAmEocjda1c}a4%VI zJe8(6Gz#BqgRwG+N9=KJ@DvtH^UfI>GyySPVb3ya%I2OL2`bk^W`g>$ z^ub`x8373_p$Bzj*#QJa0>Q1K+30$mzzTvf;r^BzH1@DC-eLM`E-gz4oukkjjfX437a%g-z(?g4g5{M~n$8fs{I*6Uf%wmr*J&ra>ux6<88 zAE29eD%qMJbrE{)Fnh(}yuNj^eM>wc;EAbv)U?BVpe4%f-b9yZ=7Qyb8$%HJY-h{q ztl)MvUjS9I%3WV;9|N4MuRB=T8rHnXG-q*uZjigoPO^D-m><%K%`~~5z!T2alF|1~o=CPEHDyZf>t=`xZl{+g5 zXVInDS@{t*-1wBdEXwe4b9JoCmQ-_fY!DWFo$>5vW5J=#U6dusjVSlgeNvSanwzhb zWtS&T4pd-!jwZvSN5vnRxNn5}k0EI7HC-D=c@BT;Js%fCVrOEv}09 ze9y;`W5Nt1FftP}b2ah%pX6&*%!g=?j*r_?N0$GX#up0sLp+uATV|u!Ds)g%dN^K@ z=NlCtF(cjbFj_9%O0zT{VwoCZb;Rsw+q66(-lZkz+g26NZK;mFr6>n20(^-Cs39DW z%{lmN&OOB?zIPJZ%V=o1SZFo&bSqmS+H@-x6z!T~aOvjMhVLC3pcQne>}}pM+fdO~ zDF}Y630j#+Y<^AX;y~G#HASQ2LpjjFOu~R9XsyNv^(SHx+OIJtv;ga?qCH!Z%~3<2 z;aS>DvoNY9+5sx)oQ4vP;^Q2q@!+%Z-X%^QJ~sC10H^*X!PlEpr~bFR=`xzT%d|yW zAB<%MUq)cnKPUQrpzq)NZn2^jyY#-C&)LY|>av|Ra-d8Od8tUEd{?>WSp~vcv9qrn z28W-W+z~kMP3(aoVpiQy(oGmX%m2WqHX;T~n?Lj=qmHnl!(Cg~;R<{|Ht%DqD`c?Wqvvg{&^!O(xp)osg3$;MM0LB8mt551bI%~!{(no4? zdm`Q|@GaCr;P%8WSJkX7L31WOihjUYCPat6hkVYE-m{kn^-l`Z*nMM?+L9#RFWZm% z@PD!Mo?C3*5z%u%`34rX-c}@MS5eINAk_`-Wj4lpJ?`FqVG` zJ&jgxVZUq`%tEp3;mC9~OPojTiVY6&ttUc#uncDmE0E0Hcmx{hbOasAdVCt1lb@+{ zq3NtOTe@OE0btez%czMJdj9!lt`$s<hL_H)Wx0o^MOk!1x z+28afXq3!ra?o^{p1sg^dODSBlY&aSOaJoB?OiQI%B=_}=?y#HE~#7I0URamz=3Qn z{-+yzR(^!12mL(>m@Y1(aq1sa@=4&_YS)ZMiv5sRZv+D8aVgB~hK}muJx>534q5&S zbj-MT@6QF2>i)Zf@p}MSe^}0Tv;7WA=iCf@qg=b*3^BO^d~oh&;5(&<;IiIE_x%j> z@E^2Ro&@gt>fv`3`xjg+l)= zZ(B)$dFhG(EMaQj%}5EKyMd9)4%UohPxKFf(DRTTK$P=Z>#aL?RgU$s*%Iu(Iv6pq zo-PR5{^U*^kyOn!G=aZFW)jWy=p`XYtEc;J!kxW#0{pWahjWD|E2wFS^NxcBaNwS- zg8~001X2KXDA6^_-gW9CXMi-qG4MAp%o#mgkXp^`0=pMbVs`TH_V2m;^@kU* z=9mwM+pmRQX5R?CI`#Ld!rN7$y}|b`o=QKgS~{Xw%aK!mBkxtB6(=%MkFk3`VkY;Q zxUJ2pyPQO;rD!$JyGixEm4pw_Mk#ciI-UHK$#2WC!)tgQZeQOCZaGfZ`Z|vv;l09Y zdS8^Lw__4TW@)l2x;?Q^c-J?XJcv;EQ1_-QL>`9-=O~V+E7&+JakcXuImQHEbUAqH z>hgv}@a-c(Ifx=@@Ie#Gzh*D>2}#~I)2GRwQ164!sg{?nCQHz{W>fI(W68Se_|Sm~ zZcG4!lZpA%>`IencqciAxp&dx74{Fgge8c5!X|Q$Q+Kx=mp!?#oQ%oKZ0ZzJ4+Nb7 zYxQT-0q54$rhX&O|+^rbggq0Q7)|#F?ort!;GV7asmN>d<2H& zsEAYdI(Z2@B|f_4xcN~>^)P(i1m}5F(|f}2B;4hW@2%z$_hSb>wi4n9@$gM-MQYHW z9>ah0fbdP1vdpmG(+g`>g^0{13QKcs6QsYcV!0_W%e-VS0o>Y|cu=*KC7pOz9ukiC z_GF4m6F%?lJ74MTAb*teiBI(==D`un%UL6b~hOa`EQlcZvm7rf-`Xdz3%mUx%>6au@hpKVG$d zi(RyuRaoH>o9!}QNUnY?C|Wr5t*aKk=-TA@c4x~?7p@xKsb5MJNiOce7SLioLI7tX zdI`!pOQ6*_{HZl{B&WOTdQS3uDIW3=jZv|Hd>@av3;t{d+JE*vP1VBq93Ut@hr|~B z!ZMb9pJN*99pc;WZc-rBEB6NT^{2GMvcnp1Y0tD;YiPb2Z+ACzaAxbormR{D`3NTT zrqA4e8N;R1%R8m*YOUgMivQU5i;vR-R>t;sVFi~JI5bufa|Cd2+K8s|Lf{g%#cA^ZD zowg%>GhYlr+W_5jh0JD6I27@C^n7VaP8FFh&b4g^<&)8Lw|e!5&MuC0WjEqksx~v& zx@OH1^Y#CMS-5dE9cfyAwTRd5U{FC}HJ4P`-YT3cZAEY(B?Q zt`WBrGe+i+xOAPyL?{;T|Z!wD~z6LS8{}6O= zi1bBve$$Xc9SGF&V`PJ)@EiKv5uN1~kvH?p8?IP8`EWiq(PJ`9Eh#Yhs;6bN+g9W} zhfp8wzV8T3oh={u^|GDf?A1uOWzU03LEY*pD z#@7YR_cXP);|LmPSRbhU+!yK(%S`XL`d~UH$`>0!d46&1A(HZi{E6R!PsG`HE;kgY zLXP9AqvGPK$Y=Yjd>>Vped~50)Kw>LSWpM?`+EU@SlgMBQ|dGe)TL_a^S- zn|tj%CkLt8saKGCF?j0&tU!M3`;Gu5CL37}zarc`Ot2qXAOxztO**V({c;pq-nwZbFN`pZa-!oMmFNO!fEK<7M$kkclZdQiQ2DOY0Z0;crzWiqCc4=tR z*wcC`LN!P8K({WeM#!}9Xqo_bFh>-Qf%nxg*L;1B5cwxQ5V;)0Ibts%=lq049GjB7 zAsBtjVhQRPp-O={!HmNyK@ch;HFO#EfZ3Zu_qlU#-Gfu({lV5t(bI3ib#PouZmHT& zR_n>)$tW*x>!np?e|PF{0!z?BcER$lDC$IL8||-(UW`1440S$5U2LFAhLeyRw-(oR zFl*y#z3nL*ZHP;owE+Khf68} zc=F*VR@kj7+Y{=`Ezn6#eh)kOUG3xxUFDFfs5&12EzYQFjZ0)vG8nr;I)(kA%c}{d zG$Ee5I>t; zAJ6yT5cmD*kcYWWnqjsPr!l6+J0K+uED@4nAA$P2l*DRRAgi5Ip#@5tA7x2>Ou!oH zn;Y-;3UL~8!$7=3WLfpJy37#Bjohnej-VYo}Z{nyH-q_y+CWbjpp!=Z3TY|AO zIA1OF3OPK;Wq1Y4;4AvH^qU!2`XK71C-e}`2O)mRhr_FVAxCP0Fu1c(p&C&%MmMJY zuewRl9TZ$zW}UUc=!|EU{qi!080?on!lG_WoVG}Kkje5>71lWiyWT%Z7PH;@2iuLE zQ}>YYH+sPCc8L&Zy{SAGl##M>b4HKzvpxp9G$kLk$)WK)=}Tyg$V?jCBe2`#NWlOv zgr!$o!s{?Sacd>~S(oHBZ3IDNI2p;#H)C)byv;6TdDcWQ-O_9rC{RhabR~I-TS8=1}#k2=0Ir&&BhABCuapA_R>Ql zIaHAzRk^LD6SZjT+>%UdQ!jUC)(#GL>mUvG@n$-FmZ`mn_pbJ6kB$-zyw;vgvaQ&~ zPF^?BU2W(a`3IcU#*Q6wKe&WhfWEqErw6GXoD|MLD)&91D7RyAHyu~{@in$X-ICqy@Oq|)$BCs5o;#3cAjj@T6p!Fw_-d;q^~U=?mhxm* zPuG!($bNob`O7^}3y|d5-qMOufHn+O_5H`vlpp7#Q zV6Oc{H!p9&*4n!`i4_2>Won?5 z2Abrb3$e3T{lH9lTTQU1W0t$L)&4IyY$v(UT~O^bh4K=W0bo&|dMGdPh@RrPS4&l7 zzg~~i!P2XD{s9)#Rk733&Xx!fC(KT1fn8_IkpD*O<&xT23O8egc4;g$D@_Zx*fh(u zCRx164{q59>vNqhzTc)MTo6t)k{yDaq<^M)`dUa- zv|%`!VLw_bm`9~e%f0#Tdc4hip8!7Yv8s0_sn{8A^X1gb`Kss_t|RDpmTFoIJLUq_ zwA!sHiKK!C_*`?E62J7S|HD7qRR43THwRF>H+5y@?2D_t0(c5w$0qqFCHk0s|WjfV@%fU$UpW6JF*}mMiUhd_aNCl zHJU2t`8N>a8BvRM(ZZ3-H`A5GAs|oncaAALcp~-E3IO)<{VWoVPcbV^ztGf_^MN^Y zorp9{K>-_qJ51mgzB|~8ra;IUJrrKhc8EX1n#wqAZy7@E8@AIy9Z-nR^V74h%?=SQ z*RKL}I6vLg=&^yNURB4do##KP@~x9PXZOMXNfPZ*J-oSn5C8MP2>>hi6ji~<=NFn+ z{swSUw6k=sU%@2o(8U4CHo!dlnCn-)N z+Qu}7ez3|;pD?tfbgR>db*rlNYYAP#Nn8bWf1dTK^mca-7RpWVV^<@PGZEp`*8g5G zx&~-$!jWM$9kLdQvr4z>Y67SJc~Ycj(E{q!|3YtU7glOBq28tYtL7@{APRQeHSQ=b z318P1(=Mi~+ETcLLhqdC_nXMq0yk?DXyrT)a){+kE^t;(1`qZB1E)@&6~WY|aq$sF z_~dczJEI&z?)e2K+m7x*C}%A`UN*P3($s>;s*!1^DMppVQvZRyDZXu&_n9wQlk1v8 zlW?KmC8Ty0(6@JGG0n~u9=g@;YT-SD&sSYgkaQLSIB8GJiOwyZa0eRDG8LQwF7 z_^hM1peJt-d(iHB_V?eC$*Wxp`D&pJNcWj)w}00B3{aV6SG=VMbOU5D6WQ$BW|06o zS~klj6JEvHpp&a_bTg*+Z}wU?f!5STYd0jJv+{btd`zLS`!<$ByXFpSyPpaJ3Kx38 zt#_E!w;>bUTiV<>QdwT>Lq{Wv3bH~sH3mrlzwxIq11MQNd{)8yE0~Q?*T!o1lj%-6 zhsq&c-7@!yE=-91g>Exd6lH_3!%W80Ai1{jTCc>;(`bPGW)th1`kQ!*1Ss&|S;PrX zVLeE74w{jON>N%m^&&ByihfR5t1}}gT}}TL){xV^X_CfKb4aNz=G|Qq;I*(i_0qJp z#oL-clLzj|0@vo z5dSwpn2?}kw*v?oXd+8rHCZAh8ixp7E;+xD17LG#IC&cE(tH;_X4xZC+brv}bi=*V zCZWD+AH|85KlEmbJfx}J1iw1y&7T+$NbzsH`b?Ce;~c9Pgsz|BA3(W8Pf=0qUY8LR zSTx3C-(>+hAhXY`I)HqUnZUKChGJqO(f8HGhYJt>4~n_O8vxUrW<=Hh!`z#PM_Jx` z+zAN~5S)mJQBk8t4T=g%HIXO@>qI9S1vM%vR;{$!YGnoxMS_zkLr$taU97FG*4kFv z#NhaXAuJgWsyU;z4+jf(L%Sjwkr+dSa ziS}-Jw@RTREpPHqGDU2RxXjkeU>R&9JI0y7i4C@iZlhdRL@^H_sGQt7Cf?9yh#%`| zXwPy>0#XC2z4;}$x&WaIjBrOB&Zit*lA+Y@<4sx|(2H(;NRH1$w-;OoPp{D9Qx{kP z(}@~aH%rf20_g|$A-Idfl)|~M3oXNm*$cARq8&~Y-<=G!&JLFirLElvd@9Ia{g zf@<5W#qQs%s;tq47?qF;7r2RPMuw%POICDAQ9a$(B=@@;M`2#SS!Xx{YU^PC&#D5Cz^r~*I!10mpIb(t>SK($-+;G?-HN3O1R6Rau zD}{67yyku%Yl9@Pvhd+tMn_@-%g+i>Eo!@)wvt(0r-*Sgv%1*ltP^4u(QnpnVuQX5 z3b^ab5hY!X>YaR=v;+psMsJ7nC`zg$KL^t+T}iNLuoj*8ulQOZ6!&x`j-KL61E%Ip z#zC#!oqi)kCVs3a9YDMj0Y3T+%Uum~{j8 z3uq#1<9eG(Cp;WsnAzHJDpI8eg(w^WbgLY-&Lo(Ih6d)?Fat(Tot* zkyFelB8jO$`V^Mqd}qd2;z~0@sQG42#@zNV8ezL%kE!O~gn|?nroFQF$0#jRIHAz( zI9$XOZ<`SU)nzetD9qFG=;K-D1Ym>0I}{x|2rf12wAd+nh0c*77u`sUEyetS3@tSH z`|HyzAzqlGmR~T`6ydDAmwDRtzMG$U4^()_FRlC4Ay(98Tp|6TN=>7d9VP$zw>%O& z|FTc;{D15GTbV{%9_15YnhhCGqmp|C4*3~gc*rLia4=ODo~A|j#ccT7uf)9rR5MYA z!QXx*EWHeyJgel!L0G?~{KnJ0L-#iDWg?v}*%Kx-0~*neO^kt$FPL>}><79ioONUD z28#hvG||SCfS0slV23>4xH_h1$A{WU5I!Z&vE?&<+i-_jTY560|(z=L0?u?IZ zeiJmCUNk#_9uMkKXW+1v{W5Lj6^I3;02ZQhFtZKaz@ijPh`!I-!fOstv1r&$^uW|D zfRaiOCb!!+yRar?91#b}m_6DX70rB0TtBk6>q+$(lfnfi5)}gU>u}TmfsCOOKLWdQ zsNwhga1W)B6E9nt{0Tp#$C3`>=ZeRoE1(e#Eu9+ZZsBF7#zrc>&|4268ulHsimg%X zG#^mFaEjbN`Hls#ou7pQ<}EMcvkF6~H?UvD*q`bKx$qIDpQY@7Nnp9~HXy=j;Vz8Cb%f>oLWY?3oAH zF|O;?Mjg$u`tK&E*lUyR=H$%H^SKFd^5xAXf+wm00H2Nz)`gk`#{7DT`#rx?gsY@U zf-%qD=KpQL+uQulzjah2Wpxzn#3B zFGH89Am&R%D)Ksa*M=_J$V>0|F0Njiyo#6jv4qi0;!Lnm>C0S|ux^)g>vDd8JxXK;^V(bMdSRv2pwxDXE=xLQMBEFSOu zF^k;2t1$CMM*7j~uH++n!oYI7C~;juM`fW%*Ol$tClnBQUyC;V5ZmI7u&C8=syhnY zW$%#_CX?@#W|}-irb#qu^7$3glrc~47+*j+;q?9%N~&{X`SEp_w@pmEeo>_91SLs) z>h4hwh!fRpV*&Q=vU0py zr2NHc$H?uLH-Y$w#jx^=b0bYe0<=Xxs#dxJL2!f2_KLh-ErDzX_MbW3CB`Di|L@gw z!sq|U16y9zG`fIDv*?K`zr+&u5G)r2o;Ju^nCD?46AIm$yU~G)qFeKXs#FM&7Cr9Y2m7tFCc< zjGY#6$uP?eu8e`T?E1DJQ-^=rCCMIc!(Nm6W6OFkjk?F|6&5FZ*k8YE!!Gp0?sVCE ztERGaq{1~F)ol|11ue`kWQJrw-r{94gRL97v>nws;Z0O)!Ta=TWvdti#s}V;Jiwy& z&cN3^x_V?qNwlt$P1|dNph7oN9JR3x%{*GhLF!oC?(kD{uf0vHLG(@P6?DVqX$5Xd zN2eCQY6V{^3b!AdM*LPmG64ukwC-@__S#ZiKEZ3Ow}7+2J>-9o6XSlY&tXbU$Q{qr8=~AjHYqlhcGaaAB-LDq35)6Hx)o1I+3^u8Zt?E4E^E) z`!0U$i_4F{V`D5v7ZozEWq`7d?}q}I#G}U#Un6t3PYvd9dD%8LyU(!7 zFida8xFvOzg24|9&pq4H^}uCF^%+o>Cq$s5y}flaoS9_c{oJY93xt+NORMElX`W5% z?mpji^hF&jYY^uS-5{GutRwZTx6?8o;fS~8KyX?1wQpyk3687W*ntcinY(FvK@#;) zmK%RAfiH^jU!n%x_>u?_@sR?=-Ts}a`@JJpr{mJ%s+Yy0xeq}hZPy{eCcW>T?Ck;X zUEwXYw_vdyy|pa*D7kAbk!QY(V%pN8yIgf+nMNMiUpC+ragNKYp5bNMBua#_1Ka;8 z-sJi%_2?^a7Bm}A2zkVA&WFrZV({Pf0!Hp zU~iun=dF%^_*MLaJ@di^^Uvqad~N}vR;_Xxo~RGqD67VD z_68B|?U2U28qw(gNt_&fB3jxT58N)P1CWSTw1gwrcGY zjnn(@iuIkxRf{_}uDdUtb{AT+$cddpV_d!cxM+dG05Ec`4Tk04unnm*Nm?wRMv=jw zyH-Q!27p6*dH}pqNDcs|`nuEjE|90f&Df|Y9=xD!mWYbV?@6&VJK&4PA|fi{vfnV@ zUJY0U1!Zd0assXc(~yyNyPLaM3xVGhwI0yOo(;DPnbEhXddM=B2FpZ;`;kNAKmAYu zbMDa4bO7B(2D#`W5T#`bSFJJrxC7J@7C(3I5_P)RT#3Z*PG67os(9r2WNw4D~!5$?7um|^Natfw%0^SCrJ z)(j35?4CYoyb+C}qTLL)XS2KN7hKkttfzYmv?_0y_)cl{i>M0FH)X z0hfzgX4-;oKq_duxR9D&uALB9PT%5Fk+BU>S~7^ByQu>#d~k#7n4z}zvC;hS4O^j3 zKa>gC|B<=s&8k{ONVfq{;4f4Lu8Z*h$twml#SF}yyN-|LjcH$S>%YH^2Y2i`^ZcDm z_@vnYV!aorwqok^^O}c#tUDr;TU;;yUGzijZQ^c9hO;t8%{5sWu4`72nShfFh-6FzS$ zOdS*<2wASq6xE8kHv~r&u!QH|NDuWwlw+NHQz0=(Ci%+=ZV0Etn{%R2=h21YwURjv z>127|FJo4w!YGKnm#XU)Q#^N;l|c+O64#g$oVyuBO8KH{@x3#};wBU&-?z;lMbwN+ z0m#<0mt3Ko=n)=TI({r@2{kO@HOim+FS zkmHm)AsiR804?_d`>hZ1$F0%JiPdOeqY+-MKpJLhs1lJiSbf-Fh`VL^xxd(b?1{io zXPhi-|8unHPD8ADN{|`{Ev!^;R8tRnTS;%JV=}`bCJahuugvRw#RgQxfQY(nEoROF z_DkluA`zhkDMHWnlH@!ymwZB(r<*!X@{)P61A@|SxEO`wk>>9|9wVK^qY(d^j-Hx^ zC#6k|m{aA3d9+=>eB9%-Hv1Xk)wH-B5ZXeU*aP(`d(r zoqMCkT_>Ofo1goLIJU>KBdC;=TT8o^7n-=OJe9o(6VL=99CgQ!Y` z3BsOytvg~;5+nzB+EDqF_N2qr!Y|n;g3R(uEC>&99++`wjDLk?^x}J_>>Uo_9o~$; zP}U$56y4J0U1HT&LIKI>>HMne`BNI@)p7cBumoq!@0thzD5lR{Dg2v2E1HoK1k3-gz|W)C zZT8#zLi);#rT9aD_Z-++7InrefDPw*DLZ6$U)DzXr>2pC#`B4L5_N~ogV8|q!%Y<> zG$_jIe)bSj(2?P$yvOszM9VCS9!}Ze7OWvS^J37fyL<}`xcnvCY{hX1_b=9mqwGV1 z>KOZ?*BM<)Q4@@42!C8P?=!gx1#<3SMgxZt!ne6r8jtVpJ!4F|3Q z7CSdi(~?b;WiYQ{mS6C;pXiyE2?~-c=e%BQA^juA-9iC+Vcxg=y&H7z%HZBH{@xFC zZ$fadf6Hj*rG^%4;!D_hDOi)A!J0z7CUwkjvc|gw*f0Y;7IYv3Evb|Lnv>i;4>^!z zqpbhB%o}Rva8fwJO zNmc&e8W_DKHOM#MY8lQxu9dQEK_=2+FpQEUuAh$NFE9 z*uo0J*6)Pr*XiWyWFDevw$Q2MET5TGiV*iqI8n183k4*Cx^K0~;7S09J8B8iy{=Si zvX~#DTYdCz^WaL#Ln@}`86Badu#x!gx*23nwvV@hl|$YgzCNPRo@zpSY7!kOj-?-}K8>_C3Q!q-Qdilb$zAyqmhh`N72f_9DqmRl;D zp`91<$Mwe!#ETa;UB9I`N>EGM9ml|EN=idaBIO99Ce*)(_IItE2qTH}Lg05F=~9$h zB+-bqitEzhl>6xLTY#1CaHcwZh$cEYx3P#q=(IFMDlw}ONp8?^Ye%(tCG4x6F`ex^ zu68E*b}TSVF=EDwe1KSMi*HcMJ(PO?W>x2xW{cIVSwn0+)~VS&OEtW2lr5%Ovv{T$ z>wZn|$&C1ZYdS|wU(-3_0#@EVYE8eyO*Wa2(yi;Vo95+oP;XUb%5=~hT ztVvlw3Th5-GojdwJ9Nl`F`bRt-tTwzS*AWurO)cbTKtV;=T9K0>*dgM7m`@94Mu>n z|DDyJRgp;>dTxzt`e!=5eM~`a^hj#CQN9CD(5G%An1H#@l=3akt5xGnKnjd~Z)GTsliSFq@|Um|(dkJh)i2_d=MvPiiK}!KCi{H+Cz(y9lV) zARCWVpUmLapD=?mdTIGNueSb~KkkMl8XwAq_70w8&IvbLsRP`_WbNv8%>sW{|2F4W z67S!9XMS%5qPfjN7K1H)+KkbG@G;t|lLbg6P4RCO*}M|BLR#2-35_GIbrG9*kW+yj zrWix%Fba#r4z6uoqmfmt^!=7RBCP8XPMn@G`b++F)6_LG=T8Nu7OrPzF4QeUb1c-L zn_FzE!W~69WE*yj%Td-5OY{~0fNiY$M7mrRJ0d8W8a<_TkGfvG!gu||!|Iv@id`~` zki&x`g8yhcl^2m=6@-;O(|QI|bxpxnFZ@Pd9Wv$*YE6&&o!c7C9?>VVT8#qPyP?hYGis1~-g5_Zb zvUkb0_&j+y$ZhSzI=|=r1&CatT;BF&nMxmYBLH%z>bO9S2w^*VvW9`Bi@c*tGCEeI z)rweBMiyLv5^NSOcVMNYWc9b)lNftj{0klKtGg@~9OG0)iJNA)!o|IWWKzwXLB~Gv zMq!lof^6RWOe=dEM~9$iHvWr?V!agmnabxc(<^Jy$8IEOZ4Szw?&!tDa56e+HY%U$x z(L1Zz9_(ky+B3N)^`vwDv$N-Kn1<-cOa~h8%eW#Jw*=EQ*kzDYO(gF&xH@*GCoKSO z!vR~IOBOrr)){svS!)>vW9(xCsM;VK`otpF&H_M@@R3T^@F|)Y9jWPdj* z=N4cy>k7L*#gA#Kw7!mBl|KW^$W|ttBrD8B`)^?;-qIlpvrdP>_0?_Ygc`Wd+F3c$ zAA2j1l+kh~DECM%zW|P^qErQ+lPb!u3cy0{B zxtIuAQKVCF;iV|+wY#9ze5s-FyX8t7vO8!E+chMAF^s3ky><^{m3GvsTu1jXMtISx z($39bHOl{K`#_+XA;`o)3zhy}tXW}U>ozedu4l^QZQinhC8nfS&;3d>i5)-y_US;} z%5;hkSD6ICSq8(?)sQ6pH_GBhhE}InM9SZqK9C3gOV*&n6_L1{I)p-nxZpk|+`93oo({oFMs*%!D9-U6~?N4G9uGu`{`a##luS1Dm63%Uxt zGkUgKuRPByy8HQqf_hL?Mxw>8II(2zhdDW4@aFA?K+{bjCm^WG|k4J~JsHMK?PF zz7Vs_>}y95@fu9rBX$I%hM|T>1fc0xVo})%$gF2@%t!@A$s0GiZYj%sQ?pcHG**$q z2sq21cLqY?tn6@)j)G%ga3E3!>r_XIjCRY|R}K9R_m3^u8t#E$rpoj)U+%SFvIOyr zlu7nl8ZZ+TqW(vcduV9*$^^RD7WWR(ueP$;nD@6uHgmJLkS?EitNGHs@m&W_m$m%o zFz_`@qUAF-sP!xD(qp`yew6`Uw>|Xiv-dv$qVCu}e0#&n>O>m{AyGTSq(WYx*aPXq zD-n322X?vuu>Yr5p4U9KR~|qXguL(Vv|I*;o9*qn?Eh4A%7K_u=0!>l4z;X|9!R1z zhmmfac`@ZwQWJHQ0s_-WOT&zDYhYLOf_2^^1u{HcObgQIt5}R zFMv;lcdV~^?i5Z+9!mxGN?Nhvx?}lZpd(f-T|E;1hoAX6ZdiHU=|@Nl>Tp+p#a(x+ z6TPYv-$&azQ{q>11!pp+sjd=kzHIOE344d7riRn6RmDH=OB5PlNY$PlUsN^s8whA} z>T!IRUQCB-7W47E329Q1Idu78&LUaduo$-;$21=<)A?6D^oGFjr+$A+j&( z(9eEqq4(H%vvf#wb>6A6!xYG=l}3*!^~<)ZYuU^g!yfM$H+*H)0xIL>Kn}3UkjTRp_?D2TfXD?w(bkj2KAW72)y?pym~#Hw;DU zbbiJpwC6d4TB*}eJ5M>!QBE?xP|NRD1RsIqw0TJrU*1?(&r5AVqSw^#rDN=KCQ$;I8PmnnQGB0HQNTL6>U=k!UHB>H{ z$Pwi%OA&>nd00D^KXnpHW9U5P{_B?{>^}(Xnx6Ft7}aX9dp1)Pm^9s9I1U&_+aC*a zNxY>KM}ShS%ZoqlS(A9#ax|+)_8JSrntq%CrNEZsnDa~A3&QTEfhFn~lQ)qOi9t2w zfrVN`V2M~DeJ`<@Q_S5|B>d_`Z^=QC?iG7vseVIL5yP7TQ|z=$=FbtKR`-x>PiExS z2c|oT**+{yDh>Li)H_YJImH#l>8qU#UFhnvxn1GbT7Zm9~lU0|AZ zy8yFi>iF%%x}qXQ2fH`zIl8ZXw#@xQOOi;TuC4ce=uSt2)p+o)y&v#>tzrIWT~MUT z87iFs?H<01S_%+*_&ezb(l~4*ZnW;i*xrZU+9tG<4UqvuHL!pc(0^^=#tteoSR0vo z3|VA%H#wF-DRi=*JBU^dT*6IfXoTzruKUlVo250pTx>*wk&S`eqOE}rD~#!V`2(%y ziXlul?1x?2CNf$p%5sXn5XX9lk04u!+|-6YwDoTwfO{HsqElRW;eIBL@YE&ALKVLL z8(kTyS**}nRM09bSS0ajO1GYoWh?7H$&DT(l^mK=DM65Uhp&84PBWsRy9ysu>SS@0 z{sBkP;lWa31+LGqf*xEqGP>ks_ywitY0*w=$+YO3Tm6-z02g3_W}2$AiuI#>NYW)F z3kwgTqkYnFs39fB*PIA$ee~#`i)j`L92rv57P`jz!sl zajhtH?`sIz;l#iacK|(c3mLp!^dodHo|>G|>5^?zghvM7o87;F@8kqcBDgUFgh-y5 zbz>VQkEF8aZIBt$`6?n&I^*x(`;m}}bHc3O@t&AvH+_)#}#*xT}$rv{j{8lFX zlGAfZrn>Q=3Za4Nhwszse2vt`ah!J)*iQ6|^>s@@kmQ+s?tTeBNDfuY8h5CHs^K}? zdr-@*9~a3l*(Sa}CIetNzXAa3$@02Ue_;xl`BI1gYUE~pB`nawc=`f9`lWFRm5X2t z!xl-VV@kq05U17+x&)~{W(h)D+`9l}VhOp#@vrk|OkpQKE(Ww4*F3Kjcb^Ur3b&`m zcfWICdul}YI~TO4j_rP@x;<6c{mximrdw*k$u9B?gJexxcF6Q<@O>KamwMASn$Xcg z8OJ!e0(MCPf~iDg--?BJ$C+WyVGC=8k1B(l#XbsYyUqyE6k7lPP_^Wdhk@yi@dZy$ zu3~$$QWmIOQP=|Xa(4wbvscI|PKO^1@7N2yEnhPGxCk*e)y*ST)imX+ghr(4z(@i@ zHUsk5@4#?8S&&+1S~u%KRKKEsWD>GE7}PVUDuU*%vhwqn1rAK&lB_~XxO_(8ZD%PA zNfkZaP*FR4>=sO+zzRawR8CtTHI+&0!eR`N%Uvm)J1m z?+dRct`dfhH(?K)WGi7pg}3)32NZ)QLkor9r+$23u-Fm~jb0ZVsI9EdTYn;DW2U);n$BA1tM3dMKu2^P$n=Ge|yFOHipbn|h@VKup&=AA!xofl6}Vmb<=>vc)4|#?e

S1$Pnc1cOpYR3oqW87hb$8k1#&L(h;VaL3WVHp!PM1JuVI2Cyx-wd36}UkELbR z-ZPaXnPU=xT;(z#1Tp1lB&e-b3yP6s!_3&LuITCC9KZRI{FZ2rN|%oB&7FQG3P+)t zDhh%Wp*ckhtq4YF92gMYu`{qvnqYy&W0kvHvQjrAf$beUy6%72V%b~)|6Wu(RHYq- z2@_VB{Q8GEIml?FC>XSw8Q?{5+x?y7SCQDaq^!nYL>GBYfpW?=qO^i`=+VEcL!yO) z{9_;9S#cm*3nM&`7f%B@3d2K|gcpC9=LS3}+<|Cjuz~~uLe7@}Gda_Xr9YQ1pU$8N zQChv(&e>>rnlD!S(7wP+4$#4${tt1xmY@PL?n!xM-LHrkO1*p~om=e=AS+qI zyHJa52vK>GJukw*LFow7l~fCbh)2A1BPSG0|CSM~<`K(^Sz9;bDJ?v8NAeW#1JP3)DyRN<3qKX*(as3&{=2Db)qyCNVi z#Nn}-j0rzQM{fw*JXN zA@ug{Rt=v0E_8GBMOFkpf(jD?(b+PDYa>YV<3f7z6x4R16RO^#P)WQgPp!Yn_ z(aLDKRPhHN4#8AB*`_Ck8uIC2i?k5VKmaHgo+gq>;>{V>bCA$EL7I zoyWUl3ZYnLN1tBg4#uz7&}IZB)@PvWuB~HtnMruFqub*jymrBj$|j>D3EKnJDi8GZpsN!YyKUT-iWSc z!NLe~BXkZ-Drqbd1`Z?_Cb1$jc9p7vtdoP6=z+CiMxl*pZ7mIUV&EvMzVv-YZ_745 zbcvb?;6u9F)Nb&BLV_8>+Xq$TCU$dB)+TnHx|Qls*OA{WHS~;g=n$54l^JYb~lgslIm27w()gyklk6tWlsf**p$B{IhKbS zL#XjYy_Tu{bGUv;ztU6+T#bDa3<4_Q4zbZuz~4ZDz!1+rMd6!=7KBf}nZdDqw~L~v ztk%eB1uy``D=vLP7!N7Jv8pP}LGD69n3~?hR6|B<$}GyXup(>CBmT|eE;dH<#2>Wq zA`h@@`ZR7aa2e~!f{6T8tZRL_S#HmFAMU~t~s5$i`#AuCFUV{GOSxk3nyr*kyby5gZ-$t`3oT|4L{AUJ?Q!#VpDjEkDma#^+a> zv?~#?%VU!u!T^GV^II`xN(V5tSwhuozfPyA9TNokyIfHK?2dSA2tY~ylT8Ows5!0b zTZBDUmwz4|L|DrvLQ34B2xM45QaYI-_3;%j$iO-whGp4NYg+DB0~j6LSP5)osVSX8 zl@e!i!uE-39BFhz%g%@7*S<3OES$zTDz+~o@J&>{rGSE{nNxwAEiY|{kdv&6^OaP? zqLidK_o1Li44G;c?%FhA*qIMt=vxWuO%=J#Qt+Bb{MxG)W}JVNCz(K16PxK9aQ&xV z@vfoP1xkZ{7U41k!YPQK&cAY9<{_#NTwlBjN1rvMLY=+}aK zL)EKJPYqTqt0sj$mwx(dNK8G0Xz9gOYY~6k!;jJu0CPo_eipo5tJiUUWxsx_UZ?&| z9jZX{V4D&3?)+@tch5d-3mC(>1G8UbuxqOH;?^>H@k`tWxu&o z$eQThrubbu=~~4chHHFCi-8@Vc@JAC4QhXJzZ8GfNqCeqL;bBa3pv9|B#I^9WIvNm z6(^$Ggq;6_{&!IbZP#AZKCmPzu(T6V9)8rE|uH=8abL;b59RA;fv@(BfZ9%{(n zZhxah&Z1zH&nUQyWI>7ssDx4Oi{S*9vS`}p4E|((=aHAAF$W;xusO0?)e{`RD{hj3NH&ooaS4snKZl5Kbjr`STP+*Z}k|GNR!5qvCOjZA333Mq;$e z!&o7xVv|Ep3*bUeziKxX>?iT7w($0o!Y503sx3?vn=|uEukQU#Dk^1Fi{Qu^->w7< zX;T#$ZEDl64Kk%_>d*`7#q8b5=%N0v$B^CT6r=`oi;}lgN|%g9!RWbrck3tge@>D6 zZ>L?db5sCSvhD_B&sbEz3ljL$K&A%VpvPgV!Z2}8AcQVnAsRCXH8(V5K@DiS34Q1r zZj&@Sz(T@HK?^L0Ks`|#f4HkjQDVYr_rp1`iPKqGMKie_Lc7ik0MTzX;;z8_p-tE$ zi-pev5FTq?JRXCwYaa^MMO@e{@OiO*fDGky9z)moDGn1=|N4TUi;NNM$Z7i+!Tw(v z)M~vqLu_^}#Kwp=v2(`cjrq2A-4zt?zSxvrCH%XK@6|+1@m(@c%K~l>@a<774&5)# zx2cVY^{hQ>E~Rv$MA{rqf|&+oiE>7umKQx17MV`DE3JRc-TLwhw)OSNJ)M1B+SQkw zhL{-C*P+%|m!@fg1U!d*xo8v@Gqm2u_U#>|dSU?bUXN7$F|WQ?ih2ZBxJQ+SG0m?X6OrVRDZ<{u{x~byxaQW_7Um4y1qIEwBk#20GL=#Rs zO}oEqSv@p(iOF))W4{zMNZ?!8CGeRQ%mbnOA)N&PNOs?K{9;xe1s)cOX&gZV>_=9X ze(x0;UWYpqa$;Xz*?y5taIN1u92md&9b`H5TluHvih(S5gIORBA&_q|*1P2?o~Le? zz)Kwqqth2>%89slUf7#{CRe2-riDeMFK8b6F%Xw?Uemx2l}LH2=x(&Mp)IR?$RGFy zBS^+jvw;InO5HZeJZ+SvNd2`=6kVl4yuh2BZtsg`U555e=5Syzh?Fmx23;MG9&$0! zcKK}cVu_E@PgvQ4=th`vk>}Py`u%nje!m6=O|%)l-rWK*v5EmOPpF3l(OL!0j$a`3 zm;X!R_z3ULWG97%Yj}|Q7;BOP2Yn`e`Hn8~GgBzz}l&q&svOd1-Uq8Gn%dOR3{ztB_!;@I1l?2kpA=`~9ta`x$FfLN`N0H|ym@7Ox znT&gn+rtFya?TaGIyu)&lMI_8B~1FA_#+7Uo^LAEtLg=j$Z-wIg2&J1e#(C890Ps< z3-@Su5l_oHZAS|4@98%F%qVDO2AE)QJ4J+H&dZa8{A=@&h0-MQ?=)K>@ihAfvLRF+ zYXnfP)k1=gFqkdcX$x3_J2I$w@~YeXGp*YaPt0`+jHm7ee18N%LWpPCmfujr2P}a* zhauvFTebjd!PzEaI66)u#VGB^Z2f=}+K>BLs?-AGIIW_8?o@&CAG2<3VqCJ2+Up0g zZ2(B>o`7}Q%?7Y3m9$Unwr}V{x=CKi#%H~nIw1H#b*b0fFX=m3F3@PIvRw`}4mLos zR&h%O9tz*}PxSi$JrB(ORzY?B4X6n>5|3--u(qX)3eJ)%UwTg1msQ2{D4Dw75v4epJV8n}Ha%l!4n3Jio!DoNO2C7gyx@tdw)@KY-$!H!&PVFnI4Z3|F zQ7s?=5?J@E+5-{<$Mz77$kBGvaqndVb;z|$ocSmr%t98fk^M>*NyMEtAoT1&9GiD>K9rL8{|Ox=OWWSRSv>uOGP zCUP4jf5Vn{WY&0za*Lvb>O8)+xDAmCklz_}ME+6YUKlme0$ua7_lxcQ-`o4kGw);A z<^5uRx}9NWB(bNax#ZC47cz6A!u&Z%1FLMi>;R`N?r*~-72=qNj^>GTuo%IMn8m>E zZf`g8HUu0~8t)h9#7J)b1Zo-{vf0%uLb`cuPLI@Ck(>o>W?Y_lGAktz*6 zd*_ikRp~eICU9I@dwAsFlG{?L)9kiuYg3F5LCV2{Wa^--_aCkLM{epP(e+;hBJrf| z!9F2BLBr81Mf~k;y@I~2fRldQrXPKbEbVP=(vPnpM0%ppCJFMe9~y7+L;cX{SUaZ; ztDHZo`NCE8U-g-Be1`~Y&P`|c4YdI9@(DIaLaP#eqX$&ZFY_-=|3I#6LG}K)m3}c+ zkp+OA2zCOY3HuQ&^IP?}*h9ZH!aC-(^SFZHh=1pRB!#}O(_2_%78XX|vi_jO|1 zrNnbwQZ?_@s!5UNp@WFi`wt`h652X^Wu*MG%Fur=uPpmw+MxM8Do%{{t~gdFX5|lW z`wP~UC8_tzRqA-PF;5`Z zUQoYla?1p+qG#9dI(qsc^}FUo3&o!E8`jJ$wB}MLRrGB+Pp=$W(Z8ie7YA1KX_?3c z6>MtxhYsB;V2$u+s@S)=8ak9HJ3oPKa)ULJfn<_rPUC4e`DXvc&jx1$WyAbG%l!!6 zbOUEazsQk>Ng|PKxx$ZzF|0&tP94)S62_z94Hqi#QlQmu);(68dnj1!MSjNa5JPw~ z)k-=hw7vY*+iuRHfgsqWdS7LSFNbc^`dkE2XTtK{=!#_*es!F_O4A#hQ)4513`TJ4b*|L*k zf`UM~A97t?zEo5fVe0B1Y04WoopqG?4HW|B3c2N zz9k^LB9_%;aaJeZjx-NEc>1;G#0+TZQJ#!q>O}aBF#G~nJ`~+vt5QwqYkY5BbeJMe zGQ{_|EaIE_ibZvK_LVK~lA7`tZ!1IjN<5$!1Arl=}nWjcC# z>oq`x8%_-+X@TGVE(%jT(Y1rvoz(ab1%^L^d%VzS2aL zWG(#-Ur9_uay(ZCTmHdWnV))g57FtzPT|{H)aH^ut5@TBRP@1*@^^2cdGewWV=#g zD36+N%?*!?$sm`wqbSwKP0)98z6F6AR#B#7T%q-nSeNP01T`r>P=!F=*)QJH8!qmr z#GTob)@9h;pzz|9)jDNWHn_x}1f)v^q+^gJuFC*5I8K=d%q+o)Z-myJV8&q837o@)2A>4LH=;eOW{j={)}V%xgw|$%TIc6{8-R*cAw#>o$jH?9r*&nvMx*WheMHhSb+qrAR@(amc)x2+EB%^s zmh^h<#W0P&EOc)nGn4>X2K~FfWLT_N5J47Egz#l;z=#sgeS-E>R+#}b)oYvpZcR<% z-!Gh54&u<=aY^NLqlT(#+iQ^~YjbRTk5%L34;wL>_ytx-E|hzSFaVGv(krWd;B2C|64W(BxT}E91TE55&ktX5w z$e|_E1|VZq46RDPSv7C$DcG%-rNBd?ykrOmpJ1*X?mBez{kY7Y1{-r$g-V3oEs}4m z0x>xE9Da=8hsgwTy6<+I<)VS%9gG_YS?m2)QGEPB&FpU{Cy;gB(^k@Xx?yFRDX%CT zmzj%Hrw^!Hnvzufxi&JNyMns}EI{7pf-=fspK0z6v--4%n7jYT^=ZX{wI*xaiNSP< zn%&}}j3r3{IRJDv!5^r>M4R~&BX6?9!<%kFIk~1t5Po0~=wZ1jU4 z)l)Fa-HFXGc(h6GTZvT}wwJn)l`wmvn}-cWh5#7_$ggAhz0K7v5#d4WEjF){`vV!v z4QD^?$p3pS?KJt19e(?zvrG*)9oVf`MIj|R zPx2kavVEKX*4=xc5qK2S;7@CfWfP2UCJ zO&`xz-%T5Gdj))mkoi_60DR_kY4z;+!QR1TlVaB_W%jG>+71;hs4MViRM;@yVNg1h z_!ROtNEcLwZ}J%pR7OP%VD7sb5Ezd;MqhmK!wzVr9kX+#hb%@Y+FiJ;QeSfi1)aSMUQK$gYX; zu)|#|&_0JKmz?Quw!R^X^u{~}%afkh@I*l7r#qYJrUtZb(kp)nUU^WjK&|SsH#%=F zqwt|SavAihbt~`WHTh9@=)~h!lYN=af;Nbu0b92{&p;afc+S=hfXpaO7o?$t%q>{>)m86gVtS9mph$g_l(=Pq890 zvww3tv#p&a8KzI9faIMjU{2I}Sgdb#^Hr?-igc>CDd&{MA#jeuSSw+?GMBTMW+2Lm z{!p}nEbzlUYc)9^7ll}A>DYObOHLGrEpo5^TiXUx<;U3hx((?ljZxKpeeCFQ1P=A7 zX|7?`@1@SsFrsMpZ}Y3_Z@H;FT_Sc7?F6+*-K$T~iYiL93yU;e+ke8dm!z(Wl#{;o z()6N*kBC23L!&)^?ENPc`V$#?^Tgcnkk6{i*Aj++kVtVdy?9~gi^F-*{m)&ja}&`` zAbLd!IS(hfy#^cmkh|-75AY1goq6K|iX<%~`LVt+3I*P->-=FMOUV_28(0tdtX{G= z$q;IqRohEm)&;O1Blr8u^&r3o_ZPWIy|SwE6j$0_7Esc@Aa;w6zB7R!HbFtmvhv2x z@xg>dR;?dpagD)gfJZ_$*?{_X{4>Y7en?lgt;6|!>Q>8pISVZ?ENbE@5C$Zm}3u}w}&z-Vs z=ulz_li7^&B%S~{#ThY7)aBC5LG#BjWJ)>B9c6R|IoN_SiY`w+{mZ>+_vmbmaVOOR zddLyGe>ip*&PO>0tSvUeA7|im?+H|%K$S4fR%Xy?578JKUC>4H`Z`YaNxPBi2J_4R zZU*cmQBmaew%C~LZaAgA%go-@UA}cUute*jF8c*`^@F2*-J$ArnO~RvjO%khcVJW& zax|2zuDk1Es zW62!rM{449oFt)fpQZBT5`?Nw(Wk?7HC0!|_?a@gHTHI|Ti+^ZI0ert-IdXsbyunb z#}&1T?YyzA>&c`NUKictz-KZq#rgpbnl78q|6!6dXNH?!D3M@dELq00#Amod=8Y{G z851xFrMl*Z~%r(=CvC-Y6RMXxm90r2d_ zGL+a{e=g@`{U8@eD<4rZV{_{?(a-nlwGJKbz{{W|L-tnbOeInzHY-{dU-oj>^00^+ zZr&7&Q^CWW<*<}umYsP_KYo5*#VN6#@mF$F6%{AzqDShCieg>lV{tt$dQ`FI~i>w9l8gPOS*pKsj;hNj|!Jp zunQ0C)*ZPg#ZI(trzf&HiMRL2^m2ypWirPC2fa*Y;FC2S7w+mRbkBvf$LWxh5isbn&;sy=<=j7t9A5Q_hf)#j=$)G!@3G~=ME<_XVN^a$P4#Qo&2 zxW&WkLJh2fuC5O?9Igj<`v=ozT+GeeLh)bwR=yi*P~;f*ZV5GB%{vLV@LFzIxLE%} zZlD%d}zhgni&<1g6n+-Tp{X9S4fVpY^j9dV(&mq-R;@AA~Q^v#ri znc$1kzr$okdo|POyasEl`d*Sb=jtP+zZCVwmsCqpLdsK`M=(@nN8p$5O%EE;WEpGgf(FK_ zl0k)=G#j{5FM44tI`a;_RAGD^kHs;7S5i5E;pU%~AUpG~Um34%HsbJ|pErC>#cjAz zql3wC81@w{3rVrJC&cOWfOlmVRM^w6ok~VJMp3h)3Won_bFn+20 zA~yZKWCd>|lI5#H<5wltxWiEiGox_FFo4t*1`MHRUt1(Rj3*Dxf(p$hBG9Pn<7EG* zd16yo_qr>nrgSn?t@RzD=`ZeNjTGMBF&3et4gJQwOzBzhGp!vaey*$9ituKIic2xqAiA&u5FN?MX?= zM0p0CvJHZC_YfUNSbi;Txaq$<8{kcT_?;HB%0H9eS-5d}5*_5byyfmgaH}p~ZbR(m zpBt2U-$b0bKh^X)G`);Z*<(Yb=`kBe>TCwBC5#Qtd}yfUW<#(V+CmLqF{DV7AGAJd z<9Dj3>l@pfj_)}zdijjf_@4aGy{e^?8F^w$O=4pt@fGG;H~B1yoo1Gc?>RhrQhX05 z>v$ubUyzKE?gNrkHRb>Qm|f>s^68=h+9s==FT2=7F`II%x5!~Qb%S{e)nmZrXLVvj>QNiVDh((h zYhBR8ySyX|=K-H6hf5lduGANNCZL)uaGnlOWl5z$7HGE^utqHS9`=X@3; zV$Rc!9Nxx^rK1*i&Q3+viZ!uCl66ZvfrWB2z{|T6_VRgxa z**ulCl4A`=8Z~vE>|l;__X=JBC?fSIX*s{1?w9k*skFn&4`aLB>s$TG593XilXq?D zR|W6p)@b39;XIZD&ybbmloenYF@xC6rH!9nQ~vRcQ^HNyswn#--4niw4hl1LkKdxr z(FXuDccXKv(=Vr1W?CZH9&9GloZU1V`*lU`JOoafRi09`JknHx+Hprw^^nicYaVfy z4p;$}80u&4J(@;VCmrJ^Y(|kGANYjaEnEK-NnFSJtdp#bW}Z2<{v3DH59D$DLZ_do z;~^hnxTmy#Ix^%%3P@GQH?t+kqHe_|Mj#=;yb(Q;{Uo}@yBQ4p@lSiOzAM06x-k3O zZQ~h}`|GW0XtrW)_T6j}e&JewGJoPeK5Hy~_;J`D>iU1lK0;7T>RvaUGaZ#si{h8< zhj!2QXGJt#c|(T0ZPkOqxvRq?QP*Y+GH-o{JBrCSw)x-{PO#DYT^2J|3-~_&`v%`# z>Mhd)umiaMrWtDLFCGtvoOdrsCo#68NsE5n;8-jHg zH!SeeDBm^Xu<($#q?+e$ahEf~Zj;DX(ETLtxw&f+ov~g7>0UC?M6K}L&&5N;I4C<0 z+Q>hXKnjtObf%P2fPhw200CftI05(qi^{Cs^{kf-e#K^rl}jGXf>8W9nuGwyINj^2 zTok(5v7^J~lS>MwA6QjCJ9jp**VMnvNuAvqW8Rke%u9DfL)N*g0veJxYgGECI`MAk z9umHCs^*W&t+*q0Xv-ZMxQ2=C#0}KTDluJg48_+fW@9aBSWN`Y+0_*4Mm$=F7KkRA zDycY|O2g^pk#g`eI=O0ouZr0eR9vplmQ*&p8QTC#3}0Vgc1)H^QOdpiU(~m5 z*dA(_i&9$Iu*pRJ&{(&Q7y_g7bk8Xo2fZGA;94=MmsQMj77y!q&QwEBP|ZGLlRym6Og!47HXJ-ROpJoM-t;2EzcjRY7lDK z$_fDwA574Jo}22+&JHyW@mUCC%)>HN2X*SWH+PlyNt?y6X7Sf^jHF*J8l}MT|0)M}tm|rOV z2U;{<82$xbUc&L!qD}t{CYOC08S;rc_kA^dXGx_c zmp}sDE#Kh|`l3H_P+M^J1Ka_&z6;Vunx+)gl<$}}x%I~k)m?b22fL@PRWo$jltX#V zzO7Gb9#&RNgAQLuahjE3B4|jF)MrJ(XCue!GjKNz_ql#G;|8e{xiFSkZ!n`_ee`tx z|6cv>Y0;zVci$F0YGFOX^P(`YToT4X%^=nveItHo6I+{WbFL275Y@dkax6(n3Bl!F!w*- zv3ZG;4GT4HWMtIbtUsGdRx&-b9?gr%bGcH~0T?7;FQf2zMeex6wqwZNTNPh^Zt@0R zz`QXHOIevd=HeT-yir~lGMo>)W(~<-C+_24$(~v4~e%uu?PSu z`805{KRJ_KqBc2{QDvU3tD3tahlSYQUI^V|2iiU1E3h|vbiEmBc@6#E(?-+wYm*-_ zOATizu-W>6t#W(v5<1q+^lDFqH5X0z+nNO2q&_`iPK3YXW>4hr@u9|hctHk-sWKR_ z)t}bCmMc3;L}rp=Sjjy@%V&v0g z3iJd}(`|8PnwXkH*(ua`?Ft|_HGG}^jPy4o!22r=b5iC#+dYXZHkyCj%V-{?Bel8) z`qw&KW{yO=yX7XsS)zOq+24V8{Ju(WA@?pzh8Vt(Y2N1KEf`6v;~hPcQ@H?5l1Cu% zqqIth$x>R0!rNI*?IJ7n0*mV|i-u*0*_p9|s-OZe{T zHhgj^aiL6;^5X5tk7?3*C7y<0Zu?N98JVqj7^ z^&*rW_yhAb+Sgz92S@Y3r$=Xj(m#97>&e=@Nfx7Sem4YNY|x@nz8aTeyN`3D3qZKYTOG5zK3w|&&G zGH7O8gG9ln7>WC~4Wq*~Rxko-?wG_n5ebO>%hk4QrkN_KJ*f8U!FIpEH+QyVMvM0# zRA46^EP7UZxPq(J_toEAwb$hr?2NgEq;GJC%+W(r%DegIzoyO_SpAt@DlFJmulH%A;HoY1ez0P zH7QHW_muTjk$#Mayjx_?Gj9jkJ#3_Z@%Q%P5?p<`?}W?OTGZE!NkmW}Vfr^dei!+D zv^8QSB$A!qewS}U&lZ}z`&Gg){P1o}ibRQ?bCxl3oa zhdH+;x#t*dkIL7Phul$^eE3+EM(YXmO^jX~Pxp!rmLEGmM)vhx1>H(Ek8MwpX|wHl z9SV#JZpqY#pVt)qxUjVsP=oW&6^&#oIhi51o%C>$rZ}EgiO`;si#SjsByFb(N5@&9 z$wgE>+EXZ)OKd|ExL0%pdJ9YT2Ma3(EqW*!H3I75Ndc)4`uDiqx{fzcRG|2!xgJasg`D9>NsTAC;aPZAA3M)I9c*| zz=Z6X*^KQ5nk48ve2rTErL|m9vPetI3Wa_&Pj^C3TSp3#gKeYhQ4Fq`icigzbk^<* z!Oca6LC{KFQ6-&fcTG~5d2U^dqFSYI-6dPI*Oz9w~oTBS}L zQy>A4DagU`*-@J9B4z)^dK%Z2%p*oSIN<-vJKS-(;X_eC@Xb`%Z3Dz+;~a}V!z!7n z64ac6*u+c~lk;>2ygNcYVVO0uaptv}NQe8`#hUG%;KIpD%yusc=_NktsCzB7UuJ00 z*21li;jadk6MOMLP{OPSJOE5=FZ4J(*{H1_He(*+$E@?j$zgy#m_YT4?0^<2mPs3T zZ5l%3dV^D6OHlF8ne!)E&ggAH#zoZ&5~JLz$-=bR6l7sv2sO?dE8W<#yzkaZES4~~%)Mc6xQtYsRVT_a zBdF`nh!*W(94)7F)jCG|J)=$|nqVldWZA^oby*dof)8)ihxuSg)`#cvVO??xeTpJT zP7Y&ef#0+}&&&6zmuH@%mp1++H}P#aK2z196+0DbxS!|#Oq^xTmeX>6Dxry|YQ6;?M-Ub?fo{N2#qhtpnl z)8G>7hKCw;th6Fn{)y<)IL?0TeuTnOp$471Xi4%!9?wtSA&iYzy(7@Noe zSjakN*h6`pTv8cS^j4Y1_3SS`&;s+I;>YihkWmL!>{R1Enq(w#iY-rPmee;@g|M1- zj5^f#BY;Yg_P8VLxWXygt3eCvglkJ=vol;9#v-S15Kd5X6kA$mTY8v(O|ew|wK`sN zcWD%;%T1RN6uTD%MqXIfubAnxo&+=ymn5f{G@3s4q{vq0R`3p+_DA|L_gurfDG{Zi zHUFRx+iy+zw&-;*`%P9BQls#I6^!Ej&QaVgh`^%<0DCCwi77hOrftG+hN&hTADI(P zL9p2>|4Q^W|8%~d66OuAOu@T|(~hIdA8AqWFaV&0-P9DzOSpn?#3|HYi(TY4{Z-#k zb;`WRFp~<9)g`acWINm!!+6S`W=d|jf#hX`sSu4U%XnIZ2A!+p`da@0WVUM4f1+(` zWhedhak3Uz?a$=^3bG^*j1uILWBOUAE`}|XXcT(({wYku2tu16U07hza_mfz5J4f$ z#q3O}-x)UtZLAAg5hr5Bs7Xk9A7cPcp~JLA@qm#(Vez|y(@OU&b4wLAPuvmTb-;{* zczeGjPI_92l!Td3zl^R{aj{LP&QHkKc!hk&Ki_X2iZPeY)pTa)+4^~!fEG>bWhkqQ zO2+P2P?#2g7IP9ZmkE7K-QO`2X)0xgc-Ua36+>+{von5WTr8)Ut)zsQm(Hb7!9ZB%5<5ZiX+)%-O41=KM1f zmF@pxjEIf9a>EIU8)t?OYvT+{b*H)I$j-!dC)p}2r!16xt5)N zY^6D|V=&GW_J2muSiuSUj+XR&j{BKjMBXVih_4b|au-eHUT`dY>;%*S^6>IP&&}-X z#uF8Qwu_O*^^S6^0LJub#q}@Nr|_Y&uAij_cus=|F%JRNd=%1-&!t69(FTA@)VAW; zm$du|ROKN`{a8~Kn143pA6(l7`M#uXZOaRMB8_GKG@ikJ)WHU~Q36w@ddMyQ5u3Gv z45MW{x7g&x1$$yKtr)2?yBXzCVLD2}~ii@B2B)WeikI*Dzby z2zpQUs3PjhBr@pjelN3PAQ4PaT>tjUf*wej0VfDG-mXb|`W9-G+tl@WN}udY<9c4I zb~{|Zp*&R)SkrCY>8I)ExSZs0wG-bxAk=W8u9_+=c(k%*fS@i1;1KFmA~O`|G5S3R zeg@P;3~#Cs^x1IJS&^pi6>J}`G5*13BHCrF+NfAIMtG{Q&%{9vqigPewrLiSL_z4) zM#t+ibo@ehJk`&M>@`XzVi;CV7RQWwx*okT;LJ8h1*vlOPVgv_c_jAl&N!7}52vL} zkyitO*g=cz>C*EU1FpKl)FAUjxW92Dl9&on8OPUJCPE;yk>J1@LxQPU)N&`Z5=3e8 z6jg5Z(%~yTXC7sodC+(e%mK?R{X^t-%&lu z%y$4!j=NdkNi|L^YmpS_PLuPEba)szKXX!pw=cj{NS3?HOZ6pW zGkeh=Jl__bh$PeRktcOv!Q8aib@Yz#+&P{Q98k@2nRcI=iXe>ula5j^dz1+;t4#fA zzNJvdXy3eyLWP^A5w{v-HX^_Hy`qx$3+&Ye4ASqFiMeGAKzdqyS%H(PfIXuX>mZgP zYz~%9Xu6|6#skxLr0E1q|Ct)@-G~{M2<1LGxEm8C*%;jcn?Q4n_322fh&&cCChvJw zHO!+JUG;(UYy}E^DLgZrNEHKgkC+&G?wY=>bG4E^E@tQDp@-c6hlS+4=OA)NLb%TB zs04w#4F?Vva4A7r7kBGoZDL>gC9>f8R2>(_0(xQCk>e(4 zfC4Ac`x8y#IK;-d_x#KlKS|ey@rg)yqTc7+lXZWe;U1PfT(eW5u(bgvcng%z`zBep z(POz+$vyPNTZQg-_soFMZ?ret!h3yfFANQ4UU1(X4MX1Ut403?j6{W_K}7Ugt0}C0 ztVB1yGg9(&w)a92EsvQ)`4}M}TLBo*`mQ?KbD;r&`}hQFUi`+5vgWD#I1!X&X~XNYa|gde9v{#qPwSd-BdjC0*F+7xf7)ii>pt1D?vE8sT8UW?lCBCYcWDPRu5NYV-M`~r!xT)f=Duwa<Pi9N(|MOf~zs6PJ!60d8)1>3gHwV4ZTuH7jTiA4zU>ZwpNlrHbNfrUE6bsNe~b;rfkSU8e0;g0>LCoTw_=CsZV_tEYJP`MNJ_Pu!2~? z3S!|di&TXO;{Lzq%^=CXDAGt=eA-B{H!bL?y6E6suG4De;FqM^sddG|)n9k+bf*kCW5ZpqC z;>Dh{%`!N8>_)s;cDjMO(wW&*-aEDL2O^$zlSvS>|7>u~;6d|E-InV@8g3c$eSfdu?WFNZ7`7(c?`}%R?hbEr({B4rmFDH{y`L8_NPxYF8A{f(f#b zSioWwwbVPYrpIhNv6SSoMBD*`h0K)LCL8A0pO6mO;9D97(+HA&`cOZo4fbV0Ui}{l zZdjUhH@QAw*$qR2U;_uVCulD6aKlT~WUE?X{fOH@Q38pjm`o6BAYQ25GaYVho^2aJ z6DSNps3awS-Kvm{3JH*@9_>m44UyVMG@&KY52I?BR|vq23Qednfm^ZaX~iT9U_k~W z9}RaH_gE_DBi||S6Q>|5>_D(#a(uzpJ_;uVK^w6GQBTnp?Qpx72#EvLj$Yw3@k+rI zircA!2EO4ds_*Z?M5tY~44}B^2#8Z1WQ;I;m)59o|IUr5aqix5K-Xsp9D@MVRuKq` zI-~6Pd4`u6!Xi#yb1NO54HkeC z8;)t4A-+{NLNSSBu3f*7dhC_gcpEe2hYy9mWID2a zGM(*+wL)yoqxBa$89HjVsShAs;zYl0FzhKu5rc;Wm%k0{uA7Kr+-32*h zKUa&;WMFoJ226tCd9-3uJRHU?D{qrMg=U-7;cAuVW}q-g=EE^!HwIy9BF=8UZIgWeb~@_2xEKrV3~?BLT-i|a)F**BOP zdB%zo2SmYK>{BNH4T*wXh44^iKaU88Z=dsdbq`tzQdyw#tDEB6mYvGreBe;L;4g}lbNeIQW-=Irr#_r$P{cB)QKL^^$FL89}bgV%%!TN+s0yg#7a7`Qg z(WAkl#t9a6jW$2-FC11*>uKw;Oa(5EtFMaj;CcehhM6#ru*l4R2y;5Rbw+y8-#=(|Te17DkTwF)sy1HvS*EjD(+((wQJ9OOB^T=im z`-Na!i__2{T&T_Va$e|%MEE(0r(o}cAnCv@wRSshw1;6IUrF6$59H(OUH^%^`=C8ZI8E31wKh{0i zj5+)_)MwVq4vbxKI0~{&BS|9!5^4`cI&FbC1(Wue)5b6yi1w$iJp#K5@RmwOa!BI| z8iH$^>_K8zIUSoVQi-)+z#k%&E$BQj)a7v{WeQrG4fC$Cq=+!$*jZARQ8uvZ)(nXN z>V|ix(>OrFmmbznZfvOn>e@jYOLWzRREv&oMyxE-rNsN8>=Ku*qxN0BQ)63ff!3>> zGvN#Sk#yBl@$ec>3ELj&8F1xBK%?h;n2+e7LnvW?r&0meb;N3)!&nI-J=>$uCLKV4xlVqJc33?K#tR&RU9)X8q2OxA*aM;E#FnvfwI`Gxg6U|7rtt`OHMkqPL-{Wa z|DfJGEkX3&lHLfw`g=^R=m?KCL0480PP?KLN`6}q^J@li&Yx}Qu(*VZwhZ5fxN!w) z)i+Se?r{A`5w(w`Ilj_8ZN4oOB;Ga3H|tG}xe=|vC5BGc=X^6Gez@=d*va#)6;Btmd6Q>A;puKHhSHER>` zY}8fP&~tA*&#*1Wufeu5{;%D-nvHOFErvsyuDTA-y1VbhFWyt+0Z@*(FI{PPFR;a~ z?E{);%ffHIEgio(_7zBxUoTfaUJ7js@VnAB6u)MBx*<32A=fM%hSJMrFz6cmu5~5o zw%~V)Bkmz*UKJ9Hn4L#&l@CMVa$0wt-$O2c+*0lLrPIBF5Wg?M9O3U2{DFrE6P{+= zF(EWRI0rr@7WKaiAeqqNUYU9yT&y}hW-s_t?AbCLGaLgQdQgf_6QqRT6E2N;4Rtng zVR*v&3$>?V&hN&*Gdv_XhS7k~(TX8$vu4u%Atun8OT3wyc^XTLTK`~pGz z6&xuG2?1BV#_Ua~yf6*B&123~p1&?$_e6^Z)ug-fd>R%!gndHg`3#)HU%L;Ps(Rmj z>J>65Is2)hZlznB^9J}=N#*%`yPnu;zOER*D4Rx?zVdt?)S%>wLc*{1)pGbv#7EYs z-n-u8DK4Kqs{*xm*8z>tZYR>;@D`Flf71z%-Buo`eMf-5_7X@(IT=FoqZ3$QY7>%C zzRV73ehs0m6|1j^r?%`}JAQo}xLuR$uuxElzMeqL z9f}1MI~6z;JPJM1;J}d?H0nW(4K-xDg-j~>9WX@vtjg9gL#4Q!IzJbAMi&=5=~&Z zf0B~ueKeU%B=#9Nrr{!Hh#oWFcGFtwIR@LpwOv4cY;*8C!m zA^(04HJ_qKx*i@~tTyyZ`c9r0fqsXSM0T^EC8XQvWBE2ce$(t@jI}A>DXgx6#r8vV znA%p9fh^L_u2Q%{DY;vFhF!b*x^95p9(8=&J|4PzI_};+qV^c>ev1c>(T>sTvhG#d zh=y*Fu$Xl_{S+}sI2%@zqT{eOU@|Iyk#uJD_eJIJ*yRO=RtQj0rCx#7F>Tg9j9IK|8784F(b%z}~VkCd-DEO*Bf#IYf0I%Ao zV~|N4orKv&e;fqlnA+MK!EZuvEec@~(BSa@32vB=^X0KLA6M9>Vbk+S1lyP$*A8Ru zh|)FqK1hx@odtyn78m=awKpV0+JST$dmr$M^VP*G9r{*v-fceuR}5zZDKVQ+j#PiY z=ul~n8p>oU2D^aT&!SG#4HtV1Q701WmMYl9l-Qrn;evGEr1{Z0sR0}4G2euB&Ot~= zjfmy+GqxTre)>`1EqW*ce@UVG=bLd!*{fM;X&E;R)s5gIkhK!BNvM6CzKPN#ZCk}A z%F|9Q>25AV5;A7gk3z{%%dCxo_jT`4jft}Z-h!eWC9SJ|6%Q#<2f1OlXrbaWn)@!S znQb6Hbr0@BAVb}IR8sW{T1Enkm$X0Z8?A|wv9o49FnmebS@W2DN`}-ssAR($#dOFVpD_hqVXMrVUl^y+(o2uqr|ASTx4@5x>A1On!Sb z)$&9bmpC@jSCVRv41bUwQha`qUbMH!YC(9{4ucb;Hq?fAs;l5h$cy7aiWzm?pj6Sd za@x=?cy+u-uC+C{;8zPk#!)UPJzWi12uf7Dx(*+T7H3uKYfT{3pG6q|vT zS+`Pi9{Hw!dw2(6&+Gpn<$UUiAFx4-sKXEr*1i zSRHo|ihc2Ud~yeTp<~#R9q)!nHH@Y?xHQKXWGBSqyH5rnu>Cyd2~Deh8Y8zL*H(cQp`An zHn+Vt4pPQ=`UYkOLOF60H}cSWA=GRAtlbBqp^VG}=@2JYGFkQmx9U_LXNYaJPK36! zNnT5D8{oN$nirz!_T-FENIe=Ml2quKmJQk7)*G{n}`VTcmG=1cOFA1@))h ziOoS=7tSOylijI(auxYm%1fkuJ*u~gk(_q1`-s=aoD)zytUPp%pn`Jvzuavgj^T9p zKTforIo>5&G_Zf4ax4QkgFla>wyvS6HT+5KErz~>9W1yA3oLPbI-=5cv;Bf#u50$-)ud(ZDOn@!E*%ZB1nWHVK@@ariZ6kaz=2mbUd0k5HUL| zJ0lFvrVXGMD_&yGIB&p&i`K28Nv7=BdLl{arui5R+y}H*!|+H4t9GXvagOI{+%FxK zeitQW-*A}}p}D;LC%&bAFFujd;S;yv2VdIQSNlF?>RwwoRC* zHXRAA`rshpBCsdiq3H-0Q1wA2Ab-~q9Bu2?E9D6kj#Lit)~)J;6EYm$LaPo4~ z=jylNrC|WM#7h^_od}mvaG~kP2|hC&6^50ijs`Ra_iobK-hgI}wP#eN_8!ZLI8^Ak zHj-KjwLtU)2oT#EX#HRNsvmv085eYP=m}z}VL=opb&_1BHP-GU5j$ot-|SEyjt*z6 z{RG=@Xc4V84oB~}J21OR=mHO6%@U(0C943+nYh6|wk|M*<&D>@7ve*0k=8JB`bi7r z1k;{I*n8a6QzRK2!e(T(mS)4+B-Z(kYrjH)PWmGp%|0ZBhMhx6bV@DtZhz#7HCaNh zgCihask&r{L@wyXT+bqieGT}<7?w8N+G$#uKoSECjzvMPyoM;MOc!Jes?5Ft1pYe5 zG43eNRm4gx0uPwu=zG*yyBkKiDL4n+egLOKB1KD(BFN~jZ=ukFq=Mw|gitH%3-_s> z+cJafyIc)a*r+|pc0^%oL%FaG?bJ-HQE_5JB`)4@-ULF`&+GCRD||7oXoLSv-$%33 zJm-$;kS$n#;-pwUgAaREur>&0w0R*uRf|H#<|lTDg#$7>+X880B-fHXRJYlC5G)KM z`wniHLFMup0djQT8V^q;%vJ z8jWhK{h>pHp%GV)L7FO`2P_)lQeT3D;7bS45FlbsAs1->q4yt4^$%0F9=P=nXBlG; zDVj&alhcvX1y~{{y(%Vb^bU=gb_*5Sg8 zk3v0a9{Mj2m?DaPh`#>k;TZWi0WTWmHJsOZZvV!lOq?`BMn$Z*CrgD6ML>P#K3YQs z62x(%w`$E~;YFQ9Y|*>wQ7WU03~ru};AF;Q^5$(Nj)3QV?E2>+H=Kr@(Yi@IiS2@c z)~Cz{;i8Cn%uekMjQ8w_qo{6%a;7WwqP*dl9AlQf3(6Y*4{^YZb{oEc7gV_Lg1!2C z@^z8hw2>$w08mRn8VXx-N_Ruk_0B&bx@z4;*`YN!?<}B?u+0b3cV4bxbjUo_|Mur8 ztM~>>G}KxXs9&)R)^P)K$J#{p0aaQYL)>Q2`)kI!K25Qz0mTL11=iqqU7Q*nEQCQi!>|6g@AJ3;T(L zKw~VHop`wh>LEm@{j?Duq)tO0LGI!pNuXGym0B|{cYGhhmq(Q$?$Cwm8^iO(InfT? z%xR~t;E4DmXrN*rC2ViwNglq)_Vy~ay~S5?0gesfuspUGqTSaB_707$IAbL&#rMV_ z^ePK<*zI!!j$#|H83s{*lBGhG^S!n)h|*5dF-~u-8}~Sm(fGh|tN6g1BpgdE$9yeJ zN4~Kp$afpuhA#S~8+Z8N$YZP(U^B_J7`7%fs7Q-55rWgahFgf?5D!hG;OSOL|Z1hXftNrSlaX5VXsW3KWGo9YrH)NZxI zZwC<>&1Nv#RC+kKDV$$CPs_(}C~xGQry1K`$SzBVvMfVcdX&8LU`?P6jHDF!-vD9u_jO!hv#W?TYp~KNoS|;Xg z)fh)nZ%1j&to*x~j2Mhfqg2*XMNHSKVnC&iKud+Ss3qnpm$V`?nj20* z)wr4K>LYftZ2duB(I-J= z<#SZ~jMu|SAzC+^HO%gh!Cf%TH~4&L82B0OY&~jlBNmsVV?#66_7|2q->R}F%LR|iQyerz)E`DPp<};fRC0(2!&sZ^UAZA`F7|9(=1dIDMsb7VqU5lT2{Q@} z*M2ZphJDcvZ5)lsXP{(>U%x{u+zwI1v4(9zqM2ut;?4;ENlgl3DRvCeVSZ|9gpE#KCl4AQs%d`^i9PZhNVSoHdi6V8iu;nu7WlPt%z$hOuP32f{7XptDI!D zy_#AV_pPz^7)})lqM7~x4u_B6o(N1%jP6fR?^*?_myEkyxJAt6dXTEn;1zI1{q-Hd z^|z>L}pzsxkIUXu`h)Z>jy14i!CVi29TcIROjZhl2!tkZ#uyBP^n!0L2#|4AMk2XpSTE zXlv~ODyVHJsMOeF_OH1%QfrSpF=F5|7wr)_-j55bz2Jww3rPuOM3+lNU)(-vYUx7e zxLeXzaT-aQwUJok;pJ;e@>fRG7%KPd=@-emh=wz*f?F`sEzXJ9b)U?0d+{wtBt~q~ z7nQ}EOnzq-0aAk!LQB7ly@9Yo$Nf~p2O(ZM*|BhNPzBbmG-}=bNra?S7=6A21JH(3 z`e~OtYITRTn`ql*gGJlkc#d*HLrrQJq!MjFGXZj1&v z%4Z=BC1krp158K*483vBCcpaQmCV(h=kQbI4#w+DdUf$@XS^oS>$m(GidUH1D^9X} zta5k3>kN9OnOT*)D_&>Q>#O|Q9k280^+|s1iPtoGy_a8m;Wd?BZ{^o4dtd{0peU}g zDy&8ZHYC#X@+$W-JkO%%8>-v|cs9~A4i+%unG8E!GppPy@SI7{ldIgtcwR)$qpI8` zcqW@qS9q0sC7$QdbFV751<$lU!xd7+M_Q%e**OL4{%`#PiIwb%e00?>!x775v_$+l zY6q(Tm~FInK|?%ko3pk%o;%sb>*r{AojHF z!2}ud4D^wZEWpNbIGAF`E&?9wVj7!u1L76WQUy8iwuhBPVKbDhwNF@R)JKZBAA3{b;t zy}pvnQEo2)Y&apsQ^u%!+mFE(5)q}g@#K3cia$Yxl6}GR2$~$Ot_5s9cbkKAe zIr60(LGU@>1L9m=fuE5QMhgMokOM6zwWLJ-s(p($-IgHTmeNisbp}7(=6LL^KO%S` zmLz!X!9EnL-vgAY!vnBB;cu*J@=1x^S3b_*vkj-s_!y(k32(M=u;7ZXl69LCuyB3Q zuj;TaLV?x>0Xn4w!-#2L*+;}t4O-vXbaqJ6;L*t6gnOvma93Qj?)FNO3U& zu38|pN<%f^L58w_*cQkKfnaSr8n&OFY9Z!rfJr6W^2i8r6fGHB8fxdmaONP^G_mET zsu7kxq&fWg8m`9bSYnEZ#^AKeCz55l;l$?MhT5(v4)DA7sma$30BcA^%>|((7AUDO z(5{oe+ z$cv{jIbUHui7_S>19@$rcI4{6M9CBLj83J7o(gGDZwTH+B@rg{(GGFK8HR#!Jd@Ye z6mU!1PF<d-{=N( zHPD5)D7K^(d1PPvPO&eXO?KSb7f~R}m@~Qom6RitTQbyfzo6iDpy0Mu9YVo3n_ z!rlqP&Yc>KqfJ_1#9!3IYPZ421c$)xK~dv!)15{ix7>txPV41ILO`H%D=L@1fLcNQ zan*^6q4?V>2JvsxZEiK}Y-#0B90^=^h`-@;&d_uSk$-9QIjh_J8}vKc9j%msKxdYW z`b_>PPksHj^q=@|>4&ZyUs&ub5`O_zDibf-!+%Nt3A8P5!cS4cjZyn_n?L8uOAFG{ z&xn-MVL(PlAXO%gu|Zypj#(ONuGQ%vq;3{f7Ii{k_@SOarrnea_aiURh5wyyM#Y z$;1M6HIWFHLOd0TbJA5sRHQIY!uoV|YbfHPNZs_n-7~hiybt;tu|dqnbTtoPxraGO zY;)O>hQ?38T>JFJ46ss8B!}QL#D+ia-LB`@5Xi%$#)x>^n3Ag-#}8h>n@wvbdB5#p zRGyTSeWjIAw1RKA!bES2-LI>89mNK7xVw=Z+*j14t-U~viu^IFXxAEzb#r}I{RE)Q zC$+A)6X}cBeZnVvoZSmaeV>u+>>cTtt;cPn=5h$9Tu_7j1gmxbKjT09HSSK?7vy?| zo12&aT)Dkb8jOx|?%AHS7#+Q}e;#h@-E`9C|51E(B{&?&6B{-_&liz_b02q}L?uyV zzw)>*_{7g0_{0~)C(zVUBs4dgNLtET4J_hU-DXTyH5A=W=ZkI82!25P=I`P`xg2lR zzDJLA7R#`W|3mqR7W)<^>Rd{WwI{#>Pf!W3sw0S5*DT%JC9ZsyHi*F8Ftihys8)HqfkFhRIKT@d#cX-%XmlS|Q(r58-jYC2f>Rs_t{-`=a$Ij_)e+;$5y;bz= z*0X3Z+ z$BVDkbk+9Zmg@m0R?UN^qg*eA!0Pv;{3)xoEY9k7L9eOzL2PdoW=!DVi<%jI;z)a7j|Uh zfGCK<=zEZ%Vb2c}Tc5_@JvcBrxYbZQGl&a{Bstm>1Va)`NxE`MMjO^$5GlC{-^HmqT(mT2Rj0&)M{b#No7@+7PRgVo10+6ks%l=X;P1( zaAj%D;L<|7#?XA+`R(sqr-)cI2W@?Co=L!z{&H(!dq%x zd8;>~ROBI!ed}t#tdzkrvu*^h1ZZc%(d0?;Nkva2)r9CiKf&3VC1Vuh$bX5?uZ7Nr(pCFY zJUb~3m`wccyasV_rXf#JmPkfE9;PkBnyu4)n)5~SHHrv%qefqKT(9|%^!@Mv`Ul&6mC%4sC^X4iyO z6XzEK<(UY2CYKc&hc@Ckvinv$kXy*ZaHV$hL|dFCn6semO#Qj-i|Z~yZ*Pa@0u^QW z-{uvvL7@z_7gW)hYW5*?Ll|-NTQI+GsI25w4(AQ%4r09IsKq=I``mdVdGUP36R%&3 z>m{%=@Gx#sJonmhQl{?8^~>@b%1B6Ce%q)(?m{r`q};PmAlM4P=4b@2WDv4=qZWVx z44vfi^W0!D&#g;R&>x{rCTS$lIToQQm9!d8PC%Rkq#H3}k6UNyMpi2xx3icvRi1mb z99yZYyU{fRGG5x~KymK_uG=yXpDV=GgD|GlW4OmEgEQ$E%A02+uVK1~X2&re57PcD zMWcC=qixXLHV$Crx!tz>3be!EZI9I1N#Ih>s$ap*FO|S%Ltm4m7>Gg&OkG zO6i6yBFL;DqBx>}#~|vZxkqp)aV@;pjz$d57=#w14D}3XC!}T~1qX}LAc%Yk{1VlJ z^EQ~lHI$;c;5ZDVM|+Brb{w@l zo^xS5MeB1uj33eyVRA=mnlSQ!lW&YwC^#Qy2x4yERVi;;o)wO=pXMS-TuxY1ql!XN z8618s&VD?zl!BR%aVNnmiKouIvm#P4Z`>R6tM(=J&yT6fdE|9=A+I!Yy}+rXfkD=p zUYj%;sXj_I3K7jfgC-b5(r=MuzKSd35wh~!XJxA^&z;rX{yUsV?5^7i^*%n{n>Yqi zsr|@ek6<-VA}%3i{ew=QXp^$a1Hc7HSVw!6mCNFUtXysmM>ING5I$IpK=PgQ5gn3S zw>27{q;DCRT?9HO0nn}wCK&+JV477MoSlwRaqrW%PY^Zr2NJBs!Vktf;p3pole&A5 z!FH+p%KtB!>{~hljQ|>Apn-xdYrCb>argwS5_}URQh-u}-cyv?U#MnL1jXLC48)df z-jB@n^L)JzMZLreyy68OrVul{fIoUbyYxnRfdDVyrVx4nn#<3Vn~yrC;1mEXnnG>s z-gXC86Tt&vUQ_kUT5N}@et#9Vtn_Z4XQ+*X8OveqGZZ=2ldTF(MsOh@P%F|RfS5+GPrj~%FZ zXrq&QX_)^L3{wcK+@Pi4HYg~y;4+Ec!uWvsCc|(F21lq#n|uvZmXh+??<1?>3?lZi zm~g5?)G-5HA7mL}SkVlYIIhR+x=>9d+{a0$gR6!Wt*t4J zrA;boC8c)hG}Q&1(+5EU)tlmT2o*qg1>u0O6}!;c$L(Y*S6hhcI!yKj_+)4Pq^>#) z%>#Gq;yA^$ts{Hjn3q%GDGB z>;YTweJF;t&ts^&?$nl}cNiTwr*I$F9$mg3uZz$BAnYTcH zy*iB6G9q!a5JifGgkE%TmOU`V(PL*yZ8s{5s%=3oob7gjz;Sf@){Q!}IE(D7D%h2=}S|V(}v=0vmCK8=e*W)YL{X?a)ooc1(U=YZ&$S?yJ_SihU{P-8ONyBk5NawsfcH%sZU)Lt%)7Qm!I#=@kY>${Qv( zvs73A)Vk3A4Lv@aq0DyleP5eL^EA4x8ST4>I;a~vmyQRyYN@HHv?o3ZUbQIlh7##XUTtqH(j9?@x`n<;>l>45n;NxF zRX_N`oYm)j90ys6WPV0>Z_wtPNeOlH{z=zoJ=By?*}4?l?}9(Tpl+y3^TFw@?xxBL z;%BbTDRr~p-`A*1+NImP*WmMk0gExUz35QzHA7*Ww5C_Pt#XeT&i-Y9zT}Cog;F8bZO1{P5# z*~t&W;uuN|X=2Y*z-IE4;Vja*4-0rTXI6z!EKw&==g_;0_?p?)*t!3&3piB@^XWzu z3+wOE(0oy#4d=cw z?usSBw@{<)xPCR?oP;lIKa0Z@W53tkMf-{jxy@LN!A6`B%#bUmkJQ!Z;9g&jFKPk! z6setQTJCPYtFF3b7(UDftnOWXS+)-_^lTlvZ;g5r3-nfBujPIrNT@ zs`u5(Kgy{M@m&n)aTrPPa|djl)yi`#>;V{ILR`U>=ZfH|=^%DN`WGTB?MTJhWd1ke zna3d7WL4`wAFsHv_kGp@^-IK?-28)$*ax(+lz_T%7!h}B<-Qo$uic03^Jf}bX{SqQ z1}SJ7!cO5?!E=j$4+J03;(ry0(&8Tk;zP>_tlOXmp3S(z$=*pj2$2%k+%Dj{pl_9P zA=qJf;ogxH`@61gFG@Ql_kywMuzg z{Ci-r&P`4G8j;n%z{Pt&>nCCkHn{z7`axA(Pq6Vr{l6uA>^xWTY+e1$owRqcVW1j( z3m?MrqpjN=@tvv;Vy)W00J(AI5KrFezlbu3Kaxu(rRi$skTXUUxBm8o;+?Cr5+Dj(lSnq%LLDVoZFbON`*#3o(E?fOh8LX@LOlXUL0lX>BdjQveE5YAH zoB-zl^l{=~Qg{6^3GVZPqd6q@9J=ezOK__f?8YH!8J4U04{&1VRX*rewcj~ma!4my z)?b6_(pAsI8?C`F(jvK&=xV5!(gOFHG~&BhEkYOEVfRPP(?vyi*GBNtXfxaYQTIH3 z9ekn>L_2zJJb-K?I-ESorUtON(tdskFx(~yJ6*`j&r<}58bdesodJP?v9^I$@7Wu5 zVC`AF)(=A(UHCMO{RC+ik0&J5iX7ub!Ym%rXAq??v&T?a^3?6>n%e^W@f=6v)ewhA3>+qr*s>j`?bR ze2|^(_~Dl19T|~K9VN4>!yTzfcP#7#?f-W zgfaJ-n7uxGYrm-a828fc)fv8UwU`5aKE1nF~>hC zcAKRK)Xm3qn_rH1%}{36B_*R>y592nfZ|U;(5P*9+!udjhO)j#v}=7!lHQHNYtE=I zOd|e$UK@zi)--O7gb!VHXP8RV3*qj77ATMqMo!}B^m>vrh!g$V%3)48Da<}XZbab| z@|i$>V&pwS&ZG(CZGn8k$kT*e$PvgB0(qB_T0$%`wiRV+P=UFa;A&h)R z$lm)znB4*iW#nx_*7DJX2eeHBIi*p#JweF1LJ{UsfgEI{h7d9pq7PA0c%A8^zW~AeoH#5<&;B65>9?IUUD{ z6Fj!Q>wba!EReyB>?ULtPFtlg9}46uMm7-=CBwWf5X_uW29FZblpw-v5Xh;+gsdav zds%L)1+t%!WrWc2ZS)n93#nuY)BPIfp0~A*WAs8SH1|J3>hFM95bH*~LgR zAv-1KYY@m=jJ!ZdUz-T?tU&(F$lZj*nFQhx$Uhme6GB(I(sx!0wLR%ULc}E~Yj66#SZCxPbDS;gQiOSkR$hHLnxm_Up8Cgll8re&V z1o8nR3kf+W^OGTvt&B`1gm$;lcVY$dA|rzc$&#&VfIuE&B$$vFWo-Texr348Fo3Cl zT&B%+lFPux$QOi&<7p3Qp9&<0k#`886L%>ETLdzjk*5d=lPP#yAfp($osa=}B21M) z`ZH2QNI%(6%>oHvB!iIUD@2$yfqefXm1ry>&zS@=ULd;|89+#{B7s~ZkT)3dC*+xY zf%pjIpNzOV1F4pr@9+sOgIgK-ln}ZimU8;BK=K&bLI`P>2zgT=nT$M6i1kH*JR*>p zj8qXqx7JdawE~&Ih?$U~vS*nDGK7&dLP%*sVde-Vh>`Jx>`W3!j6lvEqSCpBko#n- z>Mf9CjQ9}Zn<2tnILYN$_=z2rxMe8R}bgzS=S=Y4_HGx8=O(XxJC708Q> zJVMAbG6fF`AwzESZ-57b5 zkcrDgY%dAKkC6un`C7Jvdj)dn2dbZ&2}zP|r(7V7jARq?nhbNjKwe{H79kC?77_*W z93vwM87X;hlt3O}q&p#W5k2KpCy-kh`2$n(`la$azyHc*P|U~yLVC>=VZIT_Qbu+V z5-pJ?fuu0<5+PRE>o*D{oRND8`B>IMoj`gpQcg&kISP6-h`6&@de?}G) zvgY3+%mRUQV`MrZFG)T+MIdJmQ0YVvLYJpg3I+<~14cR%a!A%fpg=Y=auUWk^~zTw z%&#skgBKauM@Y9~fqW*A`xtqT5OIC<0qt#pSQvSl5V~ZWQt*U87BNywNLTrt8iCAa zq=b-Nl9R6xNE{;z2q{YzvCS7qe@3Pd^1&klnJ5rFBLfN1QUuaZAPOUagha>`_zL9c z_f&4b`U6Rk?ag_F%U~}fpAkZP94J4#1=7OE+k_;`*ft5|Ka4y<$ZXlO9u>&*jMNa) zMRJ#Q0(qE`6@=U*OZ-_NLm1gj2(2Jc3O*D_5F?uixmC8r*9CIyJ1Wsf2`Q2J z*&vYb8Cgfj+!Z3W)dKm5k!6Iemtk@RQqM>#A$hVL7zOeMBV!5KEBV`Kf&7z^K7@3U zt+%H@su^+n0vRf6;k?FWU}NNGLg=zu%IOaR$z$Y0LXJxAzf&M{8F`%$IyQpByeyD0 zjBFs}bIB9$7f3iGs|gX;^J4xZkPt?433*JGL6$&Tzoim25+W`ZKcFQGWIrRL2}xfr zQZQT~TN&v|NUkiMt^#?5k@HY@)sMYjggJYd%iu9aejp@GBHsyQJtI2_c}J$LSs<$z zd6|&)vUFY$NIoO?6A~gh(%k}?%SZ(wpUc?n0*PZJi;(wa|5+lCXhxC=dH89O>I8v= zGcufzKC%pk3PfR~Dl1}(5XifXuu3{#_Mc}3@*E>~Q<$R?aR}rdM(l+2kmL4BfvjO<2_c!X<`xRX z!bk!kX4&Va3M7XSy4k3{R+if!fy`#43n6cA5UCCp$S6imL#hpScWFM!q6M zC;RCa0tscLfshuNpLYau=4&d^X9<}s``l9k`JNF6A#T~{ZWqW0Ky3DUI&Y0ibER;7 zi(IqngF(o3iEw?6T#faS(luGQ-bt=w>ra@4-_gR=LazPl=SjbP;JP&rFEx#%V8yur z$$PNuwWMvonK%fRz)Qu#H6E4o+G}x4=pRrdGi@+CrwelaK|HK7kD%6~E zKM$^*!;)$eVsQ8P7RT1Y4%vl+vGYC>k#%=F}BWmckEWGX7LRH%j76(x4t6gA&cQlv(dPF6xx@fR6kR}0O>CaaoV zSP0l;ic&%%qQ|eAtX>>7zU_(KkeraDAo|Iwt;CjHI9ZLbk5KJaQ=WLDXy^$tH~pz| zOGc?B`D)Ba&VW^T8q?veD0`KfQ@BF4-Xu_Zr)Z=D$FwXr%VI(@OL9fLcqcCksBjep zxYBB~pa=_1#cG@y8KcJGcal0xO*JN_r_EcOH9sRWJ!{6|%;bzLvO@7vQf$jM7n8>e<2z?%<(UfcjUv3R z%|y67b1r?NXe+{blC^SL0A5zYIk^>HWcoJFgzGXBT;p32&oYxO+h(I&42c!5GTP0z zl0S;{>@I{Z$hH>Xxo9??&7u${O+z7=i%Lr@zP9)t&?Q-DBuk6vs#1 z5oaNN`_OABOO!qyuP-1+isG*B@LGgi;@KUI$cswy?85sbAjR256ttozf)<;~@z}{q z&Z2a84Z?G2wygl}`p$T^m`W*I*>04c#Z+dppy}a#%rs=vYO={}?)ez8p)mj%7)+0x z=(OEkva)QJ>|9e$cJ2ybcW?3;rkva4lcn6T$!D}uc(rfDpc3U~BCC`|6a8O zf{bKEJqq_(3C6j~%$`BX2`TBo7Ax6L`zOyxNSdh(eJM0KF>UVLgc)h+naN4Y`Gk*VAk5t?jB%g9_X7ZD~Jlz%+gIoUXOUV7Rr z_{>n2x&!cfZ9J&?%nW7ovH(0LC10!DV4|nw zxtYo{HT0C4oT^mp3&K+-rB1oGAt*U*rpWrgH-sdo%>$CLVBS3C$Xfs8dCBRiin}#9 zIn$V$oRqd8Q#o-kD7moETxvC2l~Yl{ZN=0pr^_rr8dQF?wnFmvcg^}{Cr#0IhC2W zc-=ZOcrH4Lc4x*xivp^xMj zmXr$z-)*{dQ(;MVUR$2BPll%3i*07l7ml9jmSHO?O|VuJ=Ngeh&WduRZx?cHb9mtH z&KVWRsLYq@4#}vnf_HJTlN6NXDQ9DXh)3JNca^fIgL5iurfiEPyFv+H z9YimbGG*x-{`72BQYQt0edk)uH<^?!rSx2wol|I1zD@DXEwCv6xwA8KbQ$+8Px|K; zB06R4GCY)6O^WSX%FnhJ+LUj0;jxfdx>EcNJ(^H4%Je_|h=(X6UkK)rqReb6S1f}=^33`9 zCX1;!*Q7jlu4~&{mc2AD+h$VE_4my)TNK^Oz&x`x7cEhF%P%0$Tn4tKj2z&bhfy~1 zg8+o5f(RMpOJ#e_(?KBCa_|~u<Tj}Gic6G7pYt=7Wfv;_8~seH zOu0&~762YjVSmaD$~R+JKqFSJJsIqI9-~Cm2jGRWGCs*4jWpY)3>h1cUt%f3(|B75 z$t+o-8YaFML~koh6;@?vr=Wa$aV|5ihnj+4wM6+a?cw9c%&~p zZVX&jSdx=nXjSffEf51Am*$pIKN10c27&?lxm6@U_>B5wK6 zU!?Tsw*v}k04r7APV_CxE>&J9vP$WEOXnhUt_4jWeX>}2b%t*dKGg6?fEYU=O8Jop zpxjdzP?ED8MX6j^>RSSG`?BDYQX8a#PzJmZOcVl(twcF( z3n8wMWh=0hlqU!d^8fp zIXnPgpvH1I!rwxyNSX3rfJGKdnV*$9$)LM^t)^0CC=r|T`SXDw+(ZkX4#A^`6ZkC- zz#CQCrr-Rng=Qq9;c-7Jq&4M+o&iK5gKQb=Z!JZgC^g6Z(RhH_v=Dv}9XRLJP`p86 zkX&ow1V6CuQsr@?D5ZIIzDS&6SQ!L@-i@XZ)gLiYHI4#iFH*L@;g8mYWPGx$hqa;z z5n0T+5LmsO=f>7+F6ZuP{%1N}D=5&8wA#^F=8p3ROR}4k)%5}VU{!wk zx9?5JhWMii1II(cVllh<}0jz^Rr4C7*OQpWjl zH9xDMPPy1+>{ljodZcv4jGX>67MaNelF<`k{*-vyrhA{g#W809U|#i zNfRYam-GfnS4e7?be*IQN&g|~3zEJmX@jI6O8S+gKTCR2(hHIX4j1X`CTU+uBPE?6 z=?qCzC0#7(Zdon|BsEF*m6EQL^d3ncmGn7Dw@CV~q)n2xNcyp)pG*3kq=zIuENSNv zA|Jga9VBUtq|+r$k#w=7CP_;rt&sFiN&hM7Ymzoe`k|y>N&2It$0co*G-#wqSD2(j zB#o9dUeYv47fX7hq{}6>OS)FlT1oGh^a)8{lJsp!w@JEN(r+ZyB>h9upiv^7eI-39 z>vNcVpDyWKNw1f5xuj*1)=B!Xq%TPNuB0DHdPvgKl6D#`zOR>5m2{+}Qze}v>5Y;u zleAb;yQH^BdYhzoN&29qk4yTpq;E^wBI#a9zmfE?q^Bi4CuwlBNOw0$uaR_!q%o3C zmUM=sb0l3L>5Y=EkhDzFHIh0ceMHh%B;6!wqof~5`l+PfNP0-pW0Ibi)GtP)KUC5l zlJ=K$n4}XWy&&5~f_$GXX{Mw(k`_yPlccvxdY7b+Ncyy-uSoi~q)n23BI$RM{v_!U zNl!_7UQ+)tGCz{`m2|A6(P+q@|MHENQKz4@&y9q_0T2MbZXIKa_Nzqz5GZ zMbcxE{x0bSNdw1m<#SbcLj=BwZ`%?UFtq>Axg> zLDK(7`i`XACEX+GSCal9sY}u`lKv%W@HmmLo|5*LG*VLk2?CFi?^7gAlytVF^Cev> z>2gVJlCGAtM$)?_eOS_`Bz;xV21$2Hx?9pOB|RjmOVU%4o|m+{><42cog(QhN#{wr zNYZRcS4eu3q}7tvN&2v)Pf7Zcq(Y5a24M(l)LbZ0qgTbmMB|U86Gb6}m8H1_nBxlH zMWrkhAwUjPN~DAyquz3h>Uo*e{v{^5!`lP}Vwy?G$BeAi%3!{`_`9(I0WN5@t z@;flxUQE*#7Hn0*=+ogcJw>HiW&HJg>CombBsF*-+1~Sa-{^RLq%5`n^WYvTRpegc zasRK>m;NsGM9XYQah&qa!s*atYVCHYBFjHAaD+7y4Z-Q<&>n5mPA}s~hC?!wQs`_eYh2C6rG*N;3xxuTU%o>NQf!hzib{*KN-R+FE)x#qAJZDI zDDH`w+>4=C<*axdl@kf_vC`ud8MWm4n^%vRJSBcjoM~z<{!IhHzhNNwH{3LJq-m;Y z+7Q#!TTD|&!x8@?OjB<#O`U3*I&hSNSq5o4R1)}A6OgABLt669rU8g(9@V zN^yxzDMeI@#bmQ%0%EgNDCGsvl_(WvQ(>Mbd&-vyf`6Td=?49ME8l;R)FtV0Nl!`o zhoo*v{bz{qbKViOvwT0DA>Mn)_b^HONg6I`l%$*I3;%Y>H@;pV-mjK;Y?FAe!D2A| zJ(ezLjKq7xgp2+r$@eWXzBu{52}_ammmuE_lBP)NlyXJ7d{0WAIm=+2JtuYU^hxot z*G*2CvUqIzxFs?3#>`(DckR@L<1;2?PFyf;QQ8c_vr4m}6G2~LY8g4rVzNTbhW1O^ z1I&QcX=-VS_3z+lB@((ub%>h2ASF2~A$=Av!)2u=WX$2EGOsf|5F`5^y{FB~%%UKQ ztz-pt&D42WnQ3#9=Vqnh!I*;G53D!LF1D#fnB}TDCN;ZQ1&=c=!(<$a!J?7Vc%~}@ zr_Gq1#eEnN%}YqnNX{aad6p3?U`dgs#nzaS(~8mXtxKY>k5U#ClL`ncdx+3%Q$^`0 zE1iL}s)PIj)%TOf&IUGm}rfpZEi0Q`@o!6kt&O;uyiMX@9T zMUW{EsUsabby|K<^GZxs6@3Y-Gq&6U6i9^%)w9VWJ+cN{6&fRRF-pgrr=s6NcP(pp z)Ft(gT*aXM<(JS>9w};3;8sPs`Wl>U*l&P4%-x6Er{|~Cj&(FH16En0We5biCah9X z+mi1l(~9;E7@oM0J@I&Gpyxr-(wU+^T;$yL>eIY?sIkD{^5g%L=BIb zFf}20rXgisdgir@u3LJ;jX8Pw1)kT@t@6aZGEqysd-1st`GKp{^h=}zWL61?8K?x&a~p}DIZ_|z~IhZbX~9Rhc65r zK5|sdxCxUc$HmW>X_%d{U?DzoV~%NA!Sb?IH{F6S)ZAX{sJr{#`ybr!$fJ)x`LAa; zzVOn^ufD$d?RVPJEuVa%r>N7_c(so{P@kkvj84|ih@PXrMa@)G^#SUF=AfX^kMoD`ti||)ZzN;qX+4itE&D+b&x(s9jGrx`)0*4aXD3QX0J~ zdX#)#6+Hm)4AzflWL5M?J^8SxqxBW+lCJhs*G3P~&%yWCsDf6i{naS_I<>1l62IZ< zt?F2PxH?FksvoRQ(?_Ur`XTCV>QMD|wN_oP-hp3-S{L0@f0ue^H2q7`-;Es2)ZY_5 zOK;FW9&JP(pJtaa>MVT<^866;w?-X@Z*GWQ!_WVW?hW^UaVbRWUykT1lH0U&SqUx(As6F()>Qcm!gwVnQZ-A}t6kM@s=s=zx=>xBE>;(*Y5K+LBsD-C zsIF1x>F4Xy^%?pF`fK$I^^5e^=@;vl=ri@fYKYod?V^Ul&kfNkzI&CbQ&*_jYM#0R zU(8j_YLecpChJXViar!6EQnsA7DRW$Q$A9+4F3YTY-a1JYFr!@YY?AJ?XM@aFaO?zSl6gG<169nYRaeHU*AU! z&|jlojn>i+zSgLH(EHe*C*%`_1FooR;!Vq5&D|wNPVn+iatg^Mn6_R zUO!PkK_96`sq{WwKTI92KB$h<*P>*D^uhWNeP`tED!oqMML$9vsg6R)-J{;C-WN@! z_mX-)QuILdz4#riMyoOEICZT0u=)scv?h9u`VXqL=*NH#M7x`yK0)sY^(0)Lik^U9 z(UP9Q)3fSx>PECov?Kgmqdp(~lKKMbiv0gu6|KIX`eJmrz7oH$pdC@Ihz^)NCg=IF z;bX%G4jdRhFg$#4c=(|3ArV6d4<3{A%rh}D;rNgLa&iXc45GjAu{rqv*>I(Mx1524 z$8-KqqS& z8osaSAu$;OGJgi99a!+o!XkkMQZF%fd=rBP{sa#524%c5VdA9N$sz}|8VF$zd4Ts4 zD`ZSw?z7T>7Y(-+uc)k|)J72#>^9CEPlT%HsV{ zl2WW@Ogp^GnO8^_Not;$DPtYIT~eZuUQnV~6tw1I$;Os7_J0gO%Sl-N=@>h5*YN|Q z{rryw(m}oy^&yt8uUr}OYjYQ*vaFgxndg=`=D($^T^VsAsj{-rPNS47HmG(%Jnf|* zyUc{v?5#W5j4pB>wn|AcWRP(i)X^o zFZx`J_fxWEDBx}$zK;}?Wm`~-SXM<(rz~?dNv`Z=cHn%4SlqUv$e3Mw0fkpYBcoK& z&S_ClwVDd^FE^J%%8$T{p`%ED8xHn}tg%RF3$bg2+fro0p7|PNF&WrR5+b1&@>f zfuW<9_9^jjAv6-kc?HCBPu5|-sJo3zA~1X#RXHYPUgZTDGk|G@m!qnf*d zM1T<>`l3iL;o~TKbH1lO&H1uA;dXH;ToSS!)ASAoS%^VY=1`%`y3FV{loe%{0gC@l zglXT#FJ*ZbRZ+C3L6D^qXGyYe@V7!pWKa{3RZn&yjmSbtz-CSug`v00H-kT0V8@BR z3lS&VstTJS@BtMjWw5&Roa^Ecy_$28YkVz=a8 z(sM4UDeg7iPAkoNp{XV27Nrbjm1SFf6qaE0AL`LyUgUm-mIhH(ARHHoajgFAAfPG( zBh7gbjq(e#msz1Af`mOYC1Dn6p`epWNR1M+5JfriKs-ObAn8d-KazBdq_0U@e-XYz zzAFJf0rcnV*9kkF6y++NzFXJsor6QVVCygbD8&%GAzkyJhrZeI&x4b|C>oK#Vc}vT zQMjmWNr3^6|F$v^p7KgO^~Ix!_ah$vvO?IB#S7xWgR^=$tF0+}{B*>xoF3V$z42iX z<%DIygvwlGCfjLY=j4f4QcwKE<)!AjgOB#ON2T4~Lwo$v)V1XgQr#V@6QM>plo@|TRiU|S#wZ&^8Z{9zTdp=a0 zD8hCtAHs_Vhh1=ynD}{v@ml`nGs}@X+!*#rs_q9oKksdy#ba&^tE^_kX=9=%QBzUH*!o zrhf=p{IsCMq(4vkb@IDGGW{Mp<6+_7Lx;%swv1U-6}px4XyKv_PGvRpjnyYp7z&qF=#&q?=q8NR!Gk1H4ch5E!) zWTrh6MJ2`1p!}_Z=5IAPykSb|@Q3zFk<)A+v1gg{z%b<^E4k;;MlE`PE{3F1b8&u2 zR!M$7<{wc1!8BUfGh!tvs~o#COtgG@v3E8okAwlDI&GR7Gl9jHXc?);3jKeJ)9ag~ zq;g;ZCkyGo3jUb!<7KR3b&EXFqK)TUwERfvV+k~a=K2YVbFwmw*NIgtnQTmlkSl0s zD5%$s6j5-CQb_X%!+t!Ut@CIZ7DQLu!;MypCj z>0=bNUBo>y=5PFoXuV}2YU7fb7nF6zc^SqGDA$-LqGF-0qx@4j6=%`xkKZ~p2drm{ z_K<^pXxSJxJrhNbuXcD*_6ifnO&0&2zjionz980$feTA~(gP)4G!`Ap^|V@VQY6kz8Ayn768-Gi> zpnG=A*p1JBG3bmj_TAe38{XLaSlr}0qYvFxkvwf=Vqe#x30F_QxyLKBez>W6`ad3_ zzqhB0*f0H!Yp|~UF0H41Ouy(q4CS|8_xm5yoxW+4QhOKsZ`$H=(LfP9*|3XmixU&k1GsW zEZODUU1$cXV%k}uT1mC&;ZZX8v_Av-CQLu6zn}~d8JH?r<8b4QEWt7c!jYp;zz>aB zIaD=^6>m9JRpf48w)7F}-TB#=;pB}_X)6o)roAkf=v>*OCoJZ;5q3_cRVL9Q_J<*D zFpUu9xL|HV`eHIlz&^d?^h~V9w^?aX4RC{rSUDMXT-Koq{isMkw0fR|dpAQYNWth(X0|=R~bDQ4)*k5qOW@6Ln>BwOvUAW zprXi(KupVoF;K)xX}g0}1FPsPc_xb)^+>Zebw-D6l##TR1A_w^GqvM(%{EHCL5<`c z50{6PD`N_pFR!ww)`AjyVIJFjaE_2iQh;*iFw?}AoJ-5uyRqjo7+H=$heo>@=_A%L zw0RfYa}4%OW3SH0X}r(_ejq?@APU)Isjwn|ok#&9h{zKPSSu~C$UPdik`jc66$Y0? zJ4B5X+FQgBkr#!imZ7bpD6IwNd|3AJ2Dpn`lC?uq8iCxRLCL@W9F6CvXIz5rxrp9% z(Ywe0!_s}auVA&QlIHt~_a*Y(e382cznHG_5#d%#x?a*cNq?5~Pf7hd3IAOr9Vuy| zq!uZ!#kt`Y9rovY!I@*)Q7erw*A2$%Qa#@5qM!mjwcHC z1f2Riw$GSoS(F)a7O!t&Itm}a?Zw$pHbBh2+~2|XJoYaeF9+ik*7(c1|6g=A<&i;U zVYUUvWXmAU2+?ST5}C*!~{#w z7-Ne;6AjlGV~kO5Z2z8_y-#@o!TZI}^{@4vrR?{a+0*;Xo;^@YM9&SgzH-gw%vm0F znY!S+HT;sZenf`BAEzr3Dls!t!C{`bJIbpx?BPM?!pIW`(@LnTyfL6tK1%B?nDbbO zCk*(!KA`L)PD#_n91j24NG4~?Tpj_$ zy7+Q~A5wPr1S#4v5uj8iIfk!ZVBSDC16cY5afF09BD_Qa2yP@XstM3zyq*r&FuoLU z_W$}E@{p2 zBVSQ`C_JLw_$C@`bg3AuwIH6*4dcFAcUVFamvQ@=DGYyUWtv~-UQv9V(?>H`7!}$w z_;NFhn>a#2$5?5%hpZ$V6rG|15rpI@P<;^%@+eYC2_I-8VEH13J-+|TH$MpKnIgxl z`1Km5@zC(KlEDF}Apm~<)3%oRG70G+1?{cCVTe~Ct=Cq%@A``9K3D1gDWqN9Bu+(o zoy;-(uhG1!@%eB4hj|wac6_^@PdxaVMP#S`kD-0MC(Q0U$#|Q&NJ@+zn2%u?|9s>l z`zDh8W8C@0q{UQJa>3nE(|AhVXNQ&B99Dcf@omykQwttY1oZEJv0@HQ4Fq zc6HjB#-H-{mTtQ-1P~?2lJs|Fyzi`NwXK8v(gJNHRk52}FxUR*r_FVs=fhQ?FE-Xu|l4<>C zY7aXYB=lg&f4S?B?j`H<$~P7DT9NmKonLIPU}tQytk+6&L-=Eb)vF3$_g-b;r@ZFy zN50zd->EG9iLW;NO7mZC`@XXBf48#qC%oqL$G+z9qh53Pk*_)YuvZ)Y)XM7LsMj2R z#H$Uz()K^%HHSa+HHWW#&EfZW&Ed;^j91nFvze8(zqnVL{>sDmd8Of3KL3#tWv?p# zD-VD4Yfk^$uQYr%r?UDt{56Lk|C+-Of6d`bvHe$7|0^$lxt@Au;fvfY=g+M2>t)_v zX>M4btut|)@AGo&KU$v$R?(e)--3iR4QpyC+ooSeduVvXe0$3HI3aygK_6?SJ(<@* zdq~Esod}Vk8kd8u{f^-Yg6G%JvlKfQ-|G)LW5W}Iu#%vdP zUUqlf_Zsg1#f3T~R_-%cMw+vjw72 zhQZjrLm6B2SL)mkYhQ`IXC?NUa_kNL+ZGY;1$|{ZqeT3H^>rYfPm{&pM3vzyz5S$* zjL+)|f8c8l|AGJOP5$!ad0BL#ouDR%{~^zPyLDJ}p$ zUd3OH$mCidn86Mdw}7~5w5kui@gSZT;S6wH1|;pcY#TH-L;Kq*nqFjpY5S-4SXuj{ z`OWhF<+~?;*b>wE7M*YQK?Xc7WGdvdHU(xahdP7y};)0F0DugpJkMsz;rXJz?E{4Yxl;r~77m%Rs6QhpdgQ|U#x z#>cB{S%JsEh(NN?&s2a5T2r~2Q9Zqs19DkuI&f}uDo4{|xI!oIC4qE_aUOy_IG{UA zbgRq2VaUI|!f@JPnf_rxruon`MB-YZrsf8ps`v$u2pa#W{=1+dR(GaCzGY|-j@TaS zyO#XH`fCYNvi$c%QGRrunpy$>xj;pF%*@Q;C$#ax9}DAB3j?LHP;&gJi4aVZM(< znt^l&(oPE85Aj^2K5xtP4MeI&8m^#|he^H#NY^6GLwXeXe@DCx@vHW~&u|&9VMyOc zItJ-vq*#4ue#+}SD65dm7B1agjycVpgr+dMDth5c#u7{-+gHC2GU~WBl*wpRnlF3jJ*~y z$?Iqkw?TUq;t7a@5T8TL5MMxi??Yb^vR+;X@gf`#^AWE>oQL=V;vB>zZ$a`P4Z}?H zi^k7b$}b!rQ^JuC`y+FdgZM(}9__n~H08Iz{%ePVpT=(sELRGD1eP1&kH|lY5Au`y za}-}HI4URo{g@&Xn;mhc={B(}2hjW{po;GBr9*Ki%V@qS-*AGKqF9%f9R?+*(MTvG zh3!|`3eDj3c2{}!T-d_YUO5lTUoGoZIY|~qQtBAykqMITzM14y9h0~p)wh!pd*S${ zJ0-E9{hk*NUE`~k@3B?nt0><1WG27IqrVan!Ee5#srf|*y)#4nF6hnpM`=RU;%VZj z3P811<_ob>|Dv29Xpt`x8Fh%IlrUrAi1R;_{-q+O_R@T`j6dP~6{N?I{=a8_sl#w7 zeU(u&lry9LzcRc`!EcEFb(5eh#=M&HE6y#y{NBXSu{kh?Jvi}YQj?<3usCHX3%)sW8?sZ%BH zyehF*hI10bzlii^CGokB_LP-|^1mmH7N*JcEX|OV_{OA2+*{$E?E9lV;fkngQ~CV| zf195F>Py13$afCSbGAr#G{4j#ruk(m;$ZAg!V&u;)*|kQScUi+VjILa5HrMg5#QVF zD`IAj{Z}z!OTh^=sbkb~G7aW3MPh{F++ym=~N%Ae0=e5k+l8jIzn zpPx#3=jY0D!TvOy_z`PT(LG`>tOqoHCLpHp)Km|UzqGwOOf8?$e)kpJdDCqP(%BW6>$@`PX*iG4#fkWt_Hbf zfvYla7L11R1?S7c^u_0U4@4UN`M;Dt)BQEEH;orwVTXlZ=Y=(SLR3NqyofWxIf{)K z!A2yr5ov5h1{;y>tZARkoITp4gI?W8(1XNxX!uocsdJM*Obc7aTv2ekDncyO`86!y zYsW8_rsIZqI^W+x{VI5q6ePFN(kSD_i&yYEa)e&|Tlyk(d6--#me+RVEiZBN3)OR^ z!>c}^c_}U>1r$8NBUN0bJ6C%Zn*dL}ni|79KxNG29qt5pb(vpc0;OScXM#yWmw|a& z`2`?WhLLL@U_5_fl2bC{;1v{#me8MpzQ}B3&dyN=5BY`{+{YGAdcik;NQNwDCR{kc zH)>qGLA`>|_l*G?{FbePKgA1=)d(#z5t*Pkl0V1`l_dr=yvWMMBPezvli?{^v_W6s z{vp2rE-%x|d^f41dd)XdOOXDaG}n_r2R26GgR+(ig5VLTFm_B9tH?UIR^gK7!n*l% zAH^a;JF;J_e_WsBl=SRSXGXfD%H)Jl%#XE&E1BRKX;L$cN~8?0xED?pR_V3M1+J4* zA)+PMuO#a%7|?;4u}*-Ob0D@QL90-ADCk6b@}P=|d8wE|j^M%>zCbcUzCLX{7*YSv zUo#d;(Zb?m68Y=Q_~Y*2wIt9A$DeRkfgap9YLgwO#XE4GVQdKBxA5It!}uswdHp(B z&Lb@5;(S8k?m>>J`NjDXKgu>W&zfY4$(!&`P2)rR2jk2nM?+-PA)kl2G_ctz-OWMF zc1ygO=5xCwK8N=Ch_|DCF5+g0!_oaU#9G9=5UUX1LaamgvFLv|;%DR@u@AXNycaP; zya?SFV|tdMeLiB^U(H4AjrKW++vEIFhxjk_FBS1EiXYpr7wa`~9;_%bDhD8Z3XptrXZ^fom!7lZnz_a^LhlQ*48n;!FFpAB;DR582cC zQ~tE_?P)(baclYZv|s!s)_1DUJ@I3he1V;?XtbhfnrbS65^&E5=#fi|vnA zV!yu<`;RNIH^+UgpFS)lzL+HCq2M|PeQ_MT7rZo_t&j*(P9(M5eU zSN5NwpGf|GiSN<*s4(Ix>8YHF;(S2bm(hm6SU$=H6ThK;TAFdQo}bEkc5IhveftK@7v!0m z+ag~}v?qTnqS}4s*H7j7KsfU0$2-I{e(T5|9B-(9|3n!N>_3j7xxStArVW`d6?Un8 z;33QmcnK4AT$0LBQ)|yM){0ZEHe5}Ek>VsC1_*A7*E?YPIo73&yk^;RF_^H!+a~3m zpQ(Mge`UN^#6f6^5N~_vHDzKnoM~k&HMaP$ZXztue1??hXK{6!D`4iAm&KK4 z2wH#jx!mZP%0mMlrL%c%$vU^ z04ry)(LjlS?E}8zH|@XqS_{1eT~=ings0M8F4gr*Ssn|KVW2;kl#uaMGFY;~s~TLJ zWf<2~3RE-*VzE^cvq{rCCfl4n6f*i4LjX5IL<>HVKxn82|++AB+mqE1d+z z+x!kc{HQ96hg+j!q;g6los~SdjJ-vE5$W=@_bL4&WdamW%0SRS1FCXO>VaTE_gvnZ zSjnlNhW>Y&iTS;wrv0pm<=+Sl;s0gg>;G2x4EyKEQoESS753?f#l|=69L1!na3p|tv4yfN+-~NB1K(Rh^-C-=0_2*Z6X07y5HGX8=VxwV zW>ypa)vU>h>93}l1w7I$?BS0hFHACBVOJ$6JurvW9e54lb7K560|N_&_JYaSmKmIL zA712KtRHL2`BS94(E*$IDQR3T4&GsrFH41uRcODa@fjvHe18hImlMTMiJG=y!x%Kx zM#CH8LgzN@sd9DQG(38wjyH)c0O(IK@G#&K;fKka|H!GY@70CDx{Hc>thbl@6DzO1 z*ggmCWx64%7W30SmC5tfF|41Qv*LY#szg?BsV&amioXLNST65 z{q8Z0gS5-;E)=5TniX~{_4-g@^Ewk==;@&5o`McJaL+@9F_V`E2oQ_;30H%wRGKTc zy}?ig!v65iqOm4XWll@{8_F*hqV;mbXAql|2hSTg0pSw>eW9TKWG%{5DMO+4={{Lp zOx~ge`5)w;iVp6}ipp9d&Ov!Bsda&|oFj5wu?+2P3MIac?nv+CGsLv-`H<{WC4Vz> z=|OI$#6E;k57%hKY@)QEN%nX@cmd-4dD8weV%;){J!G|GT9mK!MXXyT?cYY6i}^Ma zaX8B5%t5SLFZtIK-XQT&a=%gHbA-1_{E+x@{ckC^g;+Ss5jI9l>%?Y=X`JvS`@_;d zYjc@jB&U5F{U^DtSj^vCJcm7lScm0z0dXqg%ZS4f-$ERO*pk9SY=u~Z*b8y^SH2=* zfrxF;J_IpCoQAjv>rWQqJjB}(>(IXfOkXPEU1+aGyccm0;)96qVSOw>T#UF7u?qR` zBi3ShJVP9WxITtogznoQwn6t^h&71)5$7R)AmSXvA&7N|MM(w7~^vpaV}y$F!5hLVz~P?;XNZr2S07=zb2lNBae2uao@C z$o^f4R}x11HN-zd+HWR|{M(5i)4PN0G5>ZE#`NtajOjT{c(U~WDB(#G7a%5mV1HhZ5Xpflozr)EK>j~|@ z)Bb(8f1^8vJ?+nTx$$EAQ4}w#hZw(yH!*&Q4;Hh56mA5kJ9T|L3m{EqOd3bj{jhq9y>*N`_Z0ZdaF~uVR^vJTI5g*ikBk49u=GV z|APWAQs8z9d`c0&k0?I+`XJXkd#GMfdE>a6kNrQ*KmLLCI1ORNXg?Lr`(eM;(p(zo zl4U)NMDw6i5+6o;E#jkyHHfMH@1b(W`hSG5BLB{yIXq>>HN^AxRp31YarIF~1k;mC z{$qTJQ2OG~z!GUb@=rxfa_#0AU)^b6VKW-jr$wBMScSMX_TS-%+bA&AM@y{#Tke)$ z|4IH!Re?RVj|sn+x~KZ;iRM8uY2w`s5b1z-eG_0V9LTrrxVQzpe$Xx&UeVwWd5&iR z$*Gwc?O@9bh$<#64dhP5`v@`FaMdTB4K;ezCxY7lyf5gLnymXEg0Im8)`c$iN_1 zH!1U_R}#sW39yNXl2L}KKb9x#Csw9HL2$zQ3nY5@OFRajVWTq*QVg%%F+8ovN`mDM zFodP2a=9k)#h;mD@M;_+3#7PUcZ;5KjpXl55jSkU>bc=*4o{)~A9fi*9z!gYxWp6B z1Slx+bFL=qT|J~v%_Z)F_;Uqbk9Z8ye;{>5dfH67{}ky$q}fP^BkhjV8L1i4ub6Z{ z8)+iafk-`(+95srT-MKbktQM?hLqA#5$%I~b0127R1YNeMDqqnpFWf3Cy}l|nuc@; z(u%@4`c%4aj`ZjgiHR;ntV7xtsS4>2k0t+bq-vxUg;!PcU;mQ+eu|XbWgs4^Ftm8 z5GgiG-p=K1cQ`BnVMVbErz-|eA zq!7agf6Cj(Y9PFz4U(naR_YX$H-Bx0tWl;=JTMOZJQlBtzfu^HnFzwF(6LI-gaDgI zQYu${0Pp{CF*-LZbvk$_Uw7As#+}5#qXI%cE+ak$dd@0%&&MM0FAMyGyUvj*uo2`c zbPlWdfRvI6$1^mfrMq?I8>jqbIjSpG>Vd-pM}k{;H3eQS)Tcwf96mvegx~|;kIITk zR0UdD4S_O(SC~jb5qzf{N)nS5HOT6zBNH;xyQAzZq!ajgdf+wKgd}*bmfP~{Yp^*B zDF&fV7$73#REN8^QYR&+s8KKjq86Q!?4sZBQjt0A^Xl^ln*%tEg8SStYCPzTi~`rf zguinqq(L)N`4dqhHk4K?s{k69L~_eX8dE{RBxH1-NN(Ka8K8Ss0_5#vm0GP&BbL7$ z^|&Mcs+vkX&&V(Ickh<$W6Um|ZR8fBKJiTI(@S58#O)$0rVeEybP8M|83Xw(qQSUd zA`GU^V(NiRox;@VOsy;yFoEndH8GR|SYy7!c4J~j0u1C>yTw$2nvNCp zeB+sa&mlegdqa6eMS!4khAOasFz73>GHQ?XX{wA8;z8QXUJhIiRV8{}Cv z3ODmQi!V^{?ObToyhr5%+xop+mJ%JU#tmFqHTljs)L|npgjgwv9Dr&Q(NM)f?+a&+ zMtQ;Yp@>JQ(9H1272kT6uSgo6o)9O;ygL)KFsPuQ@F2QujG*P|H{)T9DtlJVX!9P% z8o4QL6eUqM@Zfw|e<25qZvc>#aM>4USwtl4XhYCEc@V>jB)nj{iG!Gsd=Z7lE8vUf zw)`Z>NQ~JarLBC2QnW+aW5Ox{kC{;5K!2zUNs5U`GIXpWV-3^tij!#as4m1gSsf3; zY0(LB36!O_EF|pRUU%E9a+-goZIB!Lp>2Twpped1=bZjkdqVRCr~b5f5_@YmW3J5a zc1XWj_jZjexO3fp;Iy%qTyihwo@k?E&Dreqwlj|$=+}NmLcLWHYXWndvvqCu%yYc^ zb?VQNOKwNBn>oG(>$kEndFJ&qTMoLNx2+ztJLqG0sV?cWGmE-9J#dVhe7d0NrmYvO z-#O67Ti05cw>e?F!uH|I9w;mql> zWVzpL=XE+YOWyqW(jlw%f4;e7RP`0vHFr7BC|q5ye^%U9=E6d9Mqm0d*X74IJ1uwI zJ^#|(;FcpB>R2Ndd|-Z;2_^N-_sm&SvL&c4%Ratn@|ylz?uNxTVjIHjeQs>~wnZcV zYc=jB=d%{D=&C--}1x*INF5*Xmps zZ39-iqeG7|v13T@rjwPJne{rZ+|pWT;hl{Wt}%(GRLg5<&$A(@F0wS7OH#WGiCE{{s9*ltc~>ulC#`6*y{qH$>)tDM_Uu@A@~^4= ztV`FLTWjkvzs1E@yZm*t$!%uhAC%5pot>CZsdvEnghwTBjDOQ{_tlO5*0T>f>R1z_ zRJCxrx_76p5xcnE_2l_$^_EB$6)Qe}b<-*rt23F+ufo^bwHY~0q?z5S!oy~dykiGt z!|l7-E^GH(SZBYjm#)2xdB!Zi;HY2>DZ!s;VsyfJ`X4M>|yq{uWQ<c%Q{g{q^SycNH5mhnuBPSIXN7AgHFbjeFh*r7^E+^C)Z@g3 zswRxry_^G|U-8kTdMr#^nbC;(Z4WBumhxB2M)BY^-fObE5VA|=84SxS{<(J=o68o$9mIJZpYL%Wo9o>Yj zb?}5**CQvcc@eii#h?bOSNweGSKGFsw;|8Yo=N*9H}RBn|CFU0H@Mbke$Z69ctU|{ z9rZO`_7ka4FP;v#yRc?qo6+wDIU8#EltZ0w{_<#k7ymWax40HD6^}QsbiMOtr+#pJ z(QL1KqIJI4?a2A$Ga_2dR@U}$UzFPS&0!r`;rjCz{6dS{_B}Ab+dRx{ckAo+n|B4z zTYuvG9cIt_hUteJ{p2>{M7tnc(WlsLboy}F1r2j&)35vPnflKUcb;!K>jS^ydvI@^b%lmG~kky$FC-%-r zyu9vA+U;&D`uF3hYqe{Dcb)Hdc)YbJ?|bWS>rGpqyu{6akoz0$zjNzXr|8$91BVMr zK7(BmMLo#>Bz9fDcGZ^oUvnyM!2Gs7s!D5Aztxqr*`r5pY1hQ=7g@dhI(>f z+*`MZONbG^ub_{ifwUc0o=f8?DdIStwU zh(=p_9t?eUdBbYwwfPQgUhxl5N1V_3m;BQv>uMt^Q(uo8p)J3J5P0r6j`h(*1rEwB z39_3pfAX3lSGEjpwN=|T+{HXJCUwYzX2*V;wsCczHjlMUc?*K17d@H$wBIGqL!Gw= zYwgI--g$mG%#ZyM9W?n~#&Qeyg)R2gYxnTi8-dl5Ze=XDjhQ~X(?S@drtKAd3)H1= zjyC?m6vl+pQT-o$d?ok7u6g57(Ygck+ z%?()-m+-pMkUjqV&quYwedkXKeLU~Ys8o1+^^wJ(lixk-0sZF9!YSMXGy7hhxA>-Z zVmE)e^Kf>%UQ-G;)T!lK7$U~fYKdRo9CY#OiCX8+vrgC^_<-bAv}#-H9|MOJP4v0@ z_2Q8_FmTyzwE5TfEh+Vf@0vTs{IvUG1FEWP5WO8DKV`TH^E}Pgg6EhK@HITYwpFT4&rBs#r_n zTrk5d)b`}&ON)8DeML-e^R6xKQnR8@S{?cFts5uOhk3uBeaazZ;?gNSZ0be!-_BaI z?ZN(IgBRPpbD-0@1v9Gc-gVD?%oh)!zOHkP**B&7`GRXsCEse`HA3t`{a5`fqt3n+ z=X&Seyj{O^*PzzdVE*%cGbhp0FRQo8@p1R{d>CEppfMi%Th16`e?jBSeQA@iv&#%V zNvqc@cEIt*o1v~$d+?US^EIPB|KqN`pJ!n%^u_ajtzYt4^#sSgAw17rik-}Zpl24b z)HSBKK-nLg=-HS0-=I$-FBic0Zaf>bcE4h$gV;ko2tTo|^v>5oe1g|1Yi!9omj8LX zUwa*lH_z7Gf5*~s-|owH8~yn#Ne8X&>FJBT*MMKLkNDbC^f)lKS8VNv^A;V z&Lg*`2c72)`|vDp7aQ6QhJH=<^3Lq913?elOsE@k*{Ms>1wX3`_O5GFet6y-da!fz zcFkQ(jRIOu>8HWFhKQVN#8%xXs5hDhTF8^a154i;9`@=PmBE^KI6D%dZxmYbR5xW$ZjLYw>=lReo#Z_B6QHV>xdtJ(}O{vD|s%#=5E`PhNAA;ZEQKK z$B30h`OrprJDR(x>CPJy+Rs_tsBl<5(}>z}G_0-f;;lTrL06{Qj=6E-sz=Js{ce2L zu%+Edb8SdYKdU9(0+ON}ZFwbwGCCIF^xK_>Pj74s@DG01Ox5&v9|o-gRvxmv^VL6H z#l;4L6q%S$UYm01A%mB#ajp;D-4uJLW$%Fr&v_TQOjx}2UK)(+P-VRruS<%up7`O) zqT62GFP*aWP2JZCMk;I@z4NY}3btb*4M*Q9u-%c#+hIe-dr;o4d#&9u=uB=Ckq@vU zn04lCpZ<^v$jQ0RwR^9rUTf&a#HdGahPS2mY&0i49(cmF5ZVET(`VuMTH$k5PLL;> z9J`J6r*5hXi-m&YmM#UgSsUi_pj*H8`G+I@27I$^{`Wh2?Ckl+Z@s?Q;0kqWQ{&CH zJHl_wn5KgsarAdTM2&LEg^r5B4C%X}K9`}t;0ui-wU2y$cv5&i^s;eVp#}6ew=D@A zvN#p$KCch|gxQ7Nj58BD_0DVCW$C1eKXwg1Zj))dvp3j(^H+)0S1{t0KLc_tJ9`;; z)ox=#VMj0Sv+BaSVUwTr-|W3~S7fNoAEyQ$c3Km-VcOudWvSjQ?$h0u>mIgVlxZQx zvS-)#M)yA0&TOBYlkkoL`t@ZU=5_e$yjPvVK}(wGbIY~+`&K9$&B(8_%^&=T@~M z(nc(uS(3GNUeg8{>v+%71lsh8hnHIR@ttz%QZ|n#&*v8VW_Nycse5g&YjFX!%=myF z1ZCm3q3dd=@Q;R!f_aR-W!(<>Dt}p{5q8}f^v8Vsg0h~z7;>Yr@jN(v@_fE}eBR^7 z5=ZFPx^_6<;9k4s3wKTpT3Vll)LWTRz5T!UM(4X2#yQa%9__l4FIElkrn^`H9P2A4 zV?5CBSBXxES6xWO2KNAWG2dI#@~eBvw9loAh)DoNx9J&C(TPc^nJ!_Gv2o6R@mb@t z#|Mrc0|x`{>Yf1ug9i_3(@x{v&8Jsy|Dd50tXg@t@6g@1Pv8CnLh7`9YvN>&&Y{EJ z_A;}mQLA19Tf2si&79iy8$M!G_&f6!yq~jh(c)zvEML85ZSK1D8#is2M!)O{CWP7qsP8DUU2f%H|M{-@ZH7lul-Q`)6-|nyjpe3ns3y$u4_}@-l0+B zCQX~SXx*{Xn_as0&<^^?$Vu<&rc9kSea6i9X3d^6cm9&4D^`BEYQvVTAAS7k-hH3_ z>%^B|6`nrxb#mo8tqdi}} znwHgTSXkArUA?-Q%$5G}VCq<{t2;n`oZMOU^m#VW(w0x3_XQf??fLUupcjFb0Odbh zNtoG$U}lzWW9C@9M$H_v8aCX#3H;v*Zc$)baF)-{V5dOx?{EI}IWq@fZR2n4(68;T0aabCj4)A*K2~Lv zf+1-b#x|mTZKUyUXvJ3@#2sCI#g|^t|8Atfj%Z&KX=B1@&+9nm(I zA7mbnnBq<0)k1#4&z{Tll-7{$pChJl?;*}ZdvyNFi38@pGN8>^u6vOdAiaR}7Se}E zEo;kk*&}U@)C;LU(h#JvNVAa6M7j*=W~6(O79hQV^cK>GNGCI(lf-UYP=UzT@fTq3P)1sd1AQs`eUBFO8R` z3+$_;$HP84+;C$aT)jtHD)Rs-krbRQ%p(KNW|;?^j3fY43fB|Nz*nTt!$Bv8le?0Bvp86SoFyk!bp887%>@cZ+1QzjA=3gL~^1g}OQ-73)9bR8_ zNAV{9JPs%{ZUKwzQbZ?`e)0OVA zU&_G&mg0-f^zkP=U*SF%-RGkFMU71(K;e`7#R~T{o_BPW?rISuQf2yApnD2Mi}L|3 zy0<@O>Ve7>vULjgp}+VFj?iDEk9V)vwb(_5N`{3rJ%3imd@%kXV}e{uLC zlJMs){O5jA`c>%O0o~`21v*e6CGrP+@bqiQ04cfeq%g timestamp + LED_ON_DELAY_TIME: + led_state = False + timestamp = time.monotonic() + else: + if time.monotonic() > timestamp + LED_OFF_DELAY_TIME: + led_state = True + timestamp = time.monotonic() + for gpio in gpios: + gpio.value = led_state + if supervisor.runtime.serial_bytes_available: + answer = input() + if answer == 'y': + return True + else: + return False + break + +def run_test(pins): + + # Create a list of analog GPIO pins + analog_pins = [p for p in pins if p[0] == 'A' and _is_number(p[1])] + + # Create a list of digital GPIO + digital_pins = [p for p in pins if p[0] == 'D' and _is_number(p[1])] + + # Toggle LEDs if we find any + gpio_pins = analog_pins + digital_pins + if gpio_pins: + + # Create a list of IO objects for us to toggle + gpios = [digitalio.DigitalInOut(getattr(board, p)) for p in gpio_pins] + + # Print out the LEDs found + print("GPIO pins found:", end=' ') + for p in gpio_pins: + print(p, end=' ') + print('\n') + + # Set all IO to output + for gpio in gpios: + gpio.direction = digitalio.Direction.OUTPUT + + # Toggle pins while waiting for user to verify LEDs blinking + result = _toggle_wait(gpios) + + # Release pins + _deinit_pins(gpios) + + if result: + return PASS, gpio_pins + else: + return FAIL, gpio_pins + + else: + print("No GPIO pins found") + return NA, [] + +def _main(): + + # List out all the pins available to us + pins = [p for p in dir(board)] + print() + print("All pins found:", end=' ') + + # Print pins + for p in pins: + print(p, end=' ') + print('\n') + + # Run test + result = run_test(pins) + print() + print(result[0]) + print("Pins tested: " + str(result[1])) + +# Execute only if run as main.py or code.py +if __name__ == "__main__": + _main() \ No newline at end of file diff --git a/tests/board_test_suite/source/i2c_test.py b/tests/board_test_suite/source/i2c_test.py new file mode 100644 index 0000000000..ef8d5f07f0 --- /dev/null +++ b/tests/board_test_suite/source/i2c_test.py @@ -0,0 +1,191 @@ +# The MIT License (MIT) +# +# Copyright (c) 2018 Shawn Hymel for Adafruit Industries +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +""" +`i2c_test` +==================================================== +I2C Test Module + +* Author(s): Shawn Hymel +* Date: December 8, 2018 + +Implementation Notes +-------------------- +Performs random writes and reads to I2C EEPROM. + +Requires Microchip AT24HC04B I2C EEPROM. + +Run this script as its own main.py to individually run the test, or compile +with mpy-cross and call from separate test script. +""" + +import board +import busio +import random +import time + +# Constants +SDA_PIN_NAME = 'SDA' +SCL_PIN_NAME = 'SCL' +NUM_I2C_TESTS = 10 # Number of times to write and read EEPROM values +EEPROM_I2C_MAX_ADDR = 255 # Self-imposed max memory address + +# Microchip AT24HC04B EEPROM I2C address +EEPROM_I2C_ADDR = 0x50 + +# Test result strings +PASS = "PASS" +FAIL = "FAIL" +NA = "N/A" + +# Open comms to I2C EEPROM by trying a write to memory address +def _eeprom_i2c_wait(i2c, i2c_addr, mem_addr, timeout = 1.0): + + # Try to access the I2C EEPROM (it becomes unresonsive during a write) + timestamp = time.monotonic() + while time.monotonic() < timestamp + timeout: + try: + i2c.writeto(i2c_addr, bytearray([mem_addr]), end=1, stop=False) + return True + except: + pass + + return False + +# Write to address. Returns status (True for successful write, False otherwise) +def _eeprom_i2c_write_byte(i2c, i2c_addr, mem_addr, mem_data, timeout = 1.0): + + # Make sure address is only one byte: + if mem_addr > 255: + return False + + # Make sure data is only one byte: + if mem_data > 255: + return False + + # Write data to memory at given address + try: + i2c.writeto(i2c_addr, bytearray([mem_addr, mem_data])) + except: + return False + + return True + +# Read from address. Returns tuple [status, result] +def _eeprom_i2c_read_byte(i2c, i2c_addr, mem_addr, timeout = 1.0): + + # Make sure address is only one byte: + if mem_addr > 255: + return False, bytearray() + + # Try writing to address (EEPROM is unresponsive while writing) + if _eeprom_i2c_wait(i2c, i2c_addr, mem_addr, timeout) == False: + return False, bytearray() + + # Finish the read + buf = bytearray(1) + i2c.readfrom_into(i2c_addr, buf) + + return True, buf + +def run_test(pins, sda_pin=SDA_PIN_NAME, scl_pin=SCL_PIN_NAME): + + # Write values to I2C EEPROM and verify the values match + if list(set(pins).intersection(set([sda_pin, scl_pin]))): + + # Tell user to connect EEPROM chip + print("Connect a Microchip AT24HC04B EEPROM I2C chip. " + + "Press enter to continue.") + input() + + # Set up I2C + i2c = busio.I2C(getattr(board, scl_pin), getattr(board, sda_pin)) + + # Wait for I2C lock + while not i2c.try_lock(): + pass + + # Pick a random address, write to it, read from it, and see if they match + pass_test = True + for i in range(NUM_I2C_TESTS): + + # Randomly pick an address and a data value (one byte) + mem_addr = random.randint(0, EEPROM_I2C_MAX_ADDR) + mem_data = random.randint(0, 255) + print("Address:\t" + hex(mem_addr)) + print("Writing:\t" + hex(mem_data)) + + # Try writing this random value to the random address + result = _eeprom_i2c_write_byte(i2c, EEPROM_I2C_ADDR, mem_addr, mem_data) + if result == False: + print("FAIL: I2C could not communicate") + pass_test = False + break + + # Try reading the written value back from EEPROM + result = _eeprom_i2c_read_byte(i2c, EEPROM_I2C_ADDR, mem_addr) + print("Read:\t\t" + hex(result[1][0])) + print() + if result[0] == False: + print("FAIL: I2C could not communicate") + pass_test = False + break + + # Compare the read value to the original value + if result[1][0] != mem_data: + print("FAIL: Data does not match") + pass_test = False + break + + # Release I2C pins + i2c.deinit() + + # Store results + if pass_test: + return PASS, [sda_pin, scl_pin] + else: + return FAIL, [sda_pin, scl_pin] + + else: + print("No I2C pins found") + return NA, [] + +def _main(): + + # List out all the pins available to us + pins = [p for p in dir(board)] + print() + print("All pins found:", end=' ') + + # Print pins + for p in pins: + print(p, end=' ') + print('\n') + + # Run test + result = run_test(pins) + print() + print(result[0]) + print("Pins tested: " + str(result[1])) + +# Execute only if run as main.py or code.py +if __name__ == "__main__": + _main() \ No newline at end of file diff --git a/tests/board_test_suite/source/led_test.py b/tests/board_test_suite/source/led_test.py new file mode 100644 index 0000000000..57e7b8b6c2 --- /dev/null +++ b/tests/board_test_suite/source/led_test.py @@ -0,0 +1,142 @@ +# The MIT License (MIT) +# +# Copyright (c) 2018 Shawn Hymel for Adafruit Industries +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +""" +`led_test` +==================================================== +LED Test Module + +* Author(s): Shawn Hymel +* Date: December 8, 2018 + +Implementation Notes +-------------------- +Toggles all available onboard LEDs. You will need to manually verify their +operation by watching them. + +Run this script as its own main.py to individually run the test, or compile +with mpy-cross and call from separate test script. +""" + +import board +import digitalio +import supervisor +import time + +# Constants +LED_ON_DELAY_TIME = 0.2 # Seconds +LED_OFF_DELAY_TIME = 0.2 # Seconds +LED_PIN_NAMES = ['L', 'LED', 'RED_LED', 'GREEN_LED', 'BLUE_LED'] + +# Test result strings +PASS = "PASS" +FAIL = "FAIL" +NA = "N/A" + +# Release pins +def _deinit_pins(gpios): + for g in gpios: + g.deinit() + +# Toggle IO pins while waiting for answer +def _toggle_wait(gpios): + + global test_results + + timestamp = time.monotonic() + led_state = False + print("Are the pins listed above toggling? [y/n]") + while True: + if led_state: + if time.monotonic() > timestamp + LED_ON_DELAY_TIME: + led_state = False + timestamp = time.monotonic() + else: + if time.monotonic() > timestamp + LED_OFF_DELAY_TIME: + led_state = True + timestamp = time.monotonic() + for gpio in gpios: + gpio.value = led_state + if supervisor.runtime.serial_bytes_available: + answer = input() + if answer == 'y': + return True + else: + return False + break + +def run_test(pins): + + # Look for pins with LED names + led_pins = list(set(pins).intersection(set(LED_PIN_NAMES))) + + # Toggle LEDs if we find any + if led_pins: + + # Print out the LEDs found + print("LEDs found:", end=' ') + for p in led_pins: + print(p, end=' ') + print('\n') + + # Create a list of IO objects for us to toggle + leds = [digitalio.DigitalInOut(getattr(board, p)) for p in led_pins] + + # Set all LEDs to output + for led in leds: + led.direction = digitalio.Direction.OUTPUT + + # Blink LEDs and wait for user to verify test + result = _toggle_wait(leds) + + # Release pins + _deinit_pins(leds) + + if result: + return PASS, led_pins + else: + return FAIL, led_pins + + else: + print("No LED pins found") + return NA, [] + +def _main(): + + # List out all the pins available to us + pins = [p for p in dir(board)] + print() + print("All pins found:", end=' ') + + # Print pins + for p in pins: + print(p, end=' ') + print('\n') + + # Run test + result = run_test(pins) + print() + print(result[0]) + print("Pins tested: " + str(result[1])) + +# Execute only if run as main.py or code.py +if __name__ == "__main__": + _main() \ No newline at end of file diff --git a/tests/board_test_suite/source/sd_cd_test.py b/tests/board_test_suite/source/sd_cd_test.py new file mode 100644 index 0000000000..cee1fd7ba2 --- /dev/null +++ b/tests/board_test_suite/source/sd_cd_test.py @@ -0,0 +1,110 @@ +# The MIT License (MIT) +# +# Copyright (c) 2018 Shawn Hymel for Adafruit Industries +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +""" +`sd_cd_test` +==================================================== +SD CD Test Module + +* Author(s): Shawn Hymel +* Date: December 8, 2018 + +Implementation Notes +-------------------- +Reports the output of an SD card's chip detect (CD) pin. + +Requires SD card. + +Run this script as its own main.py to individually run the test, or compile +with mpy-cross and call from separate test script. +""" + +import board +import digitalio + +# Constants +SD_CD_PIN_NAME = 'SD_CD' + +# Test result strings +PASS = "PASS" +FAIL = "FAIL" +NA = "N/A" + +def run_test(pins, cd_pin=SD_CD_PIN_NAME): + + # Ask user to insert and remove SD card + if list(set(pins).intersection(set([cd_pin]))): + + # Configure CD pin as input with pullup + cd = digitalio.DigitalInOut(getattr(board, cd_pin)) + cd.direction = digitalio.Direction.INPUT + cd.pull = digitalio.Pull.UP + + # Tell user to insert SD card + print("Connect " + cd_pin + " to CD pin on SD card holder.") + print("Insert SD card into holder.") + print("Press enter to continue.") + input() + + # Make sure we see that the pin is low + if cd.value == True: + print("Error: Card not detected") + return FAIL, [cd_pin] + + # Tell user to remove SD card + print("Card detected. Remove card and press enter to continue.") + input() + + # Make sure we see that the pin is high + if cd.value == False: + print("Error: Card detected") + return FAIL, [cd_pin] + + # Test passed + print("Card removed") + return PASS, [cd_pin] + + else: + print("No CD pin found") + return NA, [] + + +def _main(): + + # List out all the pins available to us + pins = [p for p in dir(board)] + print() + print("All pins found:", end=' ') + + # Print pins + for p in pins: + print(p, end=' ') + print('\n') + + # Run test + result = run_test(pins) + print() + print(result[0]) + print("Pins tested: " + str(result[1])) + +# Execute only if run as main.py or code.py +if __name__ == "__main__": + _main() \ No newline at end of file diff --git a/tests/board_test_suite/source/sd_test.py b/tests/board_test_suite/source/sd_test.py new file mode 100644 index 0000000000..47f4510f7c --- /dev/null +++ b/tests/board_test_suite/source/sd_test.py @@ -0,0 +1,157 @@ +# The MIT License (MIT) +# +# Copyright (c) 2018 Shawn Hymel for Adafruit Industries +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +""" +`sd_test` +==================================================== +SD Test Module + +* Author(s): Shawn Hymel +* Date: December 8, 2018 + +Implementation Notes +-------------------- +Performs random writes and reads to SD card over SPI. + +Requires SD card. + +Requires adafruit_sdcard.mpy and adafruit_bus_device modules. + +Run this script as its own main.py to individually run the test, or compile +with mpy-cross and call from separate test script. +""" + +import adafruit_sdcard +import board +import busio +import digitalio +import storage +import random + +# Constants +MOSI_PIN_NAME = 'SD_MOSI' +MISO_PIN_NAME = 'SD_MISO' +SCK_PIN_NAME = 'SD_SCK' +CS_PIN_NAME = 'SD_CS' +FILENAME = "test.txt" # File that will be written to +BAUD_RATE = 100000 # Bits per second +NUM_UART_BYTES = 40 # Number of bytes to transmit over UART +ASCII_MIN = 0x21 # '!' Lowest ASCII char in random range (inclusive) +ASCII_MAX = 0x7E # '~' Highest ASCII char in random range (inclusive) + +# Test result strings +PASS = "PASS" +FAIL = "FAIL" +NA = "N/A" + +def run_test( pins, + mosi_pin=MOSI_PIN_NAME, + miso_pin=MISO_PIN_NAME, + sck_pin=SCK_PIN_NAME, + cs_pin=CS_PIN_NAME, + filename=FILENAME): + + # Write characters to file on SD card and verify they were written + if list(set(pins).intersection(set([mosi_pin, miso_pin, sck_pin]))): + + # Tell user to connect SD card + print("Insert SD card into holder and connect SPI lines to holder.") + print("Connect " + cs_pin + " to the CS (CD/DAT3) pin on the SD " + + "card holder.") + print("WARNING: " + filename + " will be created or overwritten.") + print("Press enter to continue.") + input() + + # Configure CS pin + cs = digitalio.DigitalInOut(getattr(board, cs_pin)) + cs.direction = digitalio.Direction.OUTPUT + cs.value = True + + # Set up SPI + spi = busio.SPI(getattr(board, sck_pin), + MOSI=getattr(board, mosi_pin), + MISO=getattr(board, miso_pin)) + + # Try to connect to the card and mount the filesystem + try: + sdcard = adafruit_sdcard.SDCard(spi, cs) + vfs = storage.VfsFat(sdcard) + storage.mount(vfs, "/sd") + except: + print("Could not mount SD card") + return FAIL, [mosi_pin, miso_pin, sck_pin] + + # Generate test string + test_str = "" + for i in range(NUM_UART_BYTES): + test_str += chr(random.randint(ASCII_MIN, ASCII_MAX)) + + # Write test string to a text file on the card + try: + with open("/sd/" + filename, "w") as f: + print("Writing:\t" + test_str) + f.write(test_str) + except: + print("Could not write to SD card") + return FAIL, [mosi_pin, miso_pin, sck_pin] + + # Read from test file on the card + read_str = "" + try: + with open("/sd/" + filename, "r") as f: + lines = f.readlines() + for line in lines: + read_str += line + print("Read:\t\t" + read_str) + except: + print("Could not read from SD card") + return FAIL, [mosi_pin, miso_pin, sck_pin] + + # Release SPI + spi.deinit() + + # Compare strings + if read_str == test_str: + return PASS, [mosi_pin, miso_pin, sck_pin] + else: + return FAIL, [mosi_pin, miso_pin, sck_pin] + +def _main(): + + # List out all the pins available to us + pins = [p for p in dir(board)] + print() + print("All pins found:", end=' ') + + # Print pins + for p in pins: + print(p, end=' ') + print('\n') + + # Run test + result = run_test(pins) + print() + print(result[0]) + print("Pins tested: " + str(result[1])) + +# Execute only if run as main.py or code.py +if __name__ == "__main__": + _main() \ No newline at end of file diff --git a/tests/board_test_suite/source/spi_test.py b/tests/board_test_suite/source/spi_test.py new file mode 100644 index 0000000000..9d508af9c8 --- /dev/null +++ b/tests/board_test_suite/source/spi_test.py @@ -0,0 +1,232 @@ +# The MIT License (MIT) +# +# Copyright (c) 2018 Shawn Hymel for Adafruit Industries +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +""" +`spi_test` +==================================================== +SPI Test Module + +* Author(s): Shawn Hymel +* Date: December 8, 2018 + +Implementation Notes +-------------------- +Performs random writes and reads to SPI EEPROM. + +Requires Microchip 25AA040A SPI EEPROM. + +Run this script as its own main.py to individually run the test, or compile +with mpy-cross and call from separate test script. +""" + +import board +import digitalio +import busio +import random +import time + +# Constants +MOSI_PIN_NAME = 'MOSI' +MISO_PIN_NAME = 'MISO' +SCK_PIN_NAME = 'SCK' +CS_PIN_NAME = 'D2' +BAUD_RATE = 100000 # Bits per second +NUM_SPI_TESTS = 10 # Number of times to write and read EEPROM values + +# Microchip 25AA040A EEPROM SPI commands and bits +EEPROM_SPI_WRSR = 0x01 +EEPROM_SPI_WRITE = 0x02 +EEPROM_SPI_READ = 0x03 +EEPROM_SPI_WRDI = 0x04 +EEPROM_SPI_RDSR = 0x05 +EEPROM_SPI_WREN = 0x06 +EEPROM_SPI_WIP_BIT = 0 +EEPROM_SPI_MAX_ADDR = 255 # Self-imposed max memory address +EEPROM_I2C_MAX_ADDR = 255 # Self-imposed max memory address + +# Test result strings +PASS = "PASS" +FAIL = "FAIL" +NA = "N/A" + +# Wait for WIP bit to go low +def _eeprom_spi_wait(spi, cs, timeout = 1.0): + + # Continually read from STATUS register + timestamp = time.monotonic() + while time.monotonic() < timestamp + timeout: + + # Perfrom RDSR operation + cs.value = False + result = bytearray(1) + spi.write(bytearray([EEPROM_SPI_RDSR])) + spi.readinto(result) + cs.value = True + + # Mask out and compare WIP bit + if (result[0] & (1 << EEPROM_SPI_WIP_BIT)) == 0: + return True + + return False + +# Write to address. Returns status (True for successful write, False otherwise) +def _eeprom_spi_write_byte(spi, cs, address, data, timeout = 1.0): + + # Make sure address is only one byte: + if address > 255: + return False + + # Make sure data is only one byte: + if data > 255: + return False + + # Wait for WIP to be low + if _eeprom_spi_wait(spi, cs, timeout) == False: + return False + + # Enable writing + cs.value = False + spi.write(bytearray([EEPROM_SPI_WREN])) + cs.value = True + + # Write to address + cs.value = False + spi.write(bytearray([EEPROM_SPI_WRITE, address, data])) + cs.value = True + + return True + +# Read from address. Returns tuple [status, result] +def _eeprom_spi_read_byte(spi, cs, address, timeout = 1.0): + + # Make sure address is only one byte: + if address > 255: + return False, bytearray() + + # Wait for WIP to be low + if _eeprom_spi_wait(spi, cs, timeout) == False: + return False, bytearray() + + # Read byte from address + cs.value = False + result = bytearray(1) + spi.write(bytearray([EEPROM_SPI_READ, address])) + spi.readinto(result) + cs.value = True + + return True, result + +def run_test( pins, + mosi_pin=MOSI_PIN_NAME, + miso_pin=MISO_PIN_NAME, + sck_pin=SCK_PIN_NAME, + cs_pin=CS_PIN_NAME): + + # Write values to SPI EEPROM and verify the values match + if list(set(pins).intersection(set([mosi_pin, miso_pin, sck_pin]))): + + # Tell user to connect EEPROM chip + print("Connect a Microchip 25AA040A EEPROM SPI chip.") + print("Connect " + cs_pin + " to the CS pin on the 25AA040.") + print("Press enter to continue.") + input() + + # Configure CS pin + cs = digitalio.DigitalInOut(getattr(board, cs_pin)) + cs.direction = digitalio.Direction.OUTPUT + cs.value = True + + # Set up SPI + spi = busio.SPI(getattr(board, sck_pin), + MOSI=getattr(board, mosi_pin), + MISO=getattr(board, miso_pin)) + + # Wait for SPI lock + while not spi.try_lock(): + pass + spi.configure(baudrate=BAUD_RATE, phase=0, polarity=0) + + # Pick a random address, write to it, read from it, and see if they match + pass_test = True + for i in range(NUM_SPI_TESTS): + + # Randomly pick an address and a data value (one byte) + mem_addr = random.randint(0, EEPROM_SPI_MAX_ADDR) + mem_data = random.randint(0, 255) + print("Address:\t" + hex(mem_addr)) + print("Writing:\t" + hex(mem_data)) + + # Try writing this random value to the random address + result = _eeprom_spi_write_byte(spi, cs, mem_addr, mem_data) + if result == False: + print("FAIL: SPI could not communicate") + pass_test = False + break + + # Try reading the written value back from EEPRom + result = _eeprom_spi_read_byte(spi, cs, mem_addr) + print("Read:\t\t" + hex(result[1][0])) + print() + if result[0] == False: + print("FAIL: SPI could not communicate") + pass_test = False + break + + # Compare the read value to the original value + if result[1][0] != mem_data: + print("FAIL: Data does not match") + pass_test = False + break + + # Release SPI pins + spi.deinit() + + # Return results + if pass_test: + return PASS, [mosi_pin, miso_pin, sck_pin] + else: + return FAIL, [mosi_pin, miso_pin, sck_pin] + + else: + print("No SPI pins found") + return NA, [] + +def _main(): + + # List out all the pins available to us + pins = [p for p in dir(board)] + print() + print("All pins found:", end=' ') + + # Print pins + for p in pins: + print(p, end=' ') + print('\n') + + # Run test + result = run_test(pins) + print() + print(result[0]) + print("Pins tested: " + str(result[1])) + +# Execute only if run as main.py or code.py +if __name__ == "__main__": + _main() \ No newline at end of file diff --git a/tests/board_test_suite/source/uart_test.py b/tests/board_test_suite/source/uart_test.py new file mode 100644 index 0000000000..1478a37386 --- /dev/null +++ b/tests/board_test_suite/source/uart_test.py @@ -0,0 +1,121 @@ +# The MIT License (MIT) +# +# Copyright (c) 2018 Shawn Hymel for Adafruit Industries +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +""" +`uart_test` +==================================================== +UART Test Module + +* Author(s): Shawn Hymel +* Date: December 8, 2018 + +Implementation Notes +-------------------- +Performs random writes and reads across UART. + +You will need to connect a loopback wire from TX to RX on your board. + +Run this script as its own main.py to individually run the test, or compile +with mpy-cross and call from separate test script. +""" + +import board +import busio +import random + +# Constants +TX_PIN_NAME = 'TX' +RX_PIN_NAME = 'RX' +BAUD_RATE = 9600 +NUM_UART_BYTES = 40 # Number of bytes to transmit over UART +ASCII_MIN = 0x21 # '!' Lowest ASCII char in random range (inclusive) +ASCII_MAX = 0x7E # '~' Highest ASCII char in random range (inclusive) + +# Test result strings +PASS = "PASS" +FAIL = "FAIL" +NA = "N/A" + +def run_test(pins, tx_pin=TX_PIN_NAME, rx_pin=RX_PIN_NAME, baud_rate=BAUD_RATE): + + # Echo some values over the UART + if list(set(pins).intersection(set([tx_pin, rx_pin]))): + + # Tell user to create loopback connection + print("Connect a wire from TX to RX. Press enter to continue.") + input() + + # Initialize UART + uart = busio.UART(getattr(board, tx_pin), + getattr(board, rx_pin), + baudrate=baud_rate) + uart.reset_input_buffer() + + # Generate test string + test_str = "" + for i in range(NUM_UART_BYTES): + test_str += chr(random.randint(ASCII_MIN, ASCII_MAX)) + + # Transmit test string + uart.write(test_str) + print("Transmitting:\t" + test_str) + + # Wait for received string + data = uart.read(len(test_str)) + recv_str = '' + if data is not None: + recv_str = ''.join([chr(b) for b in data]) + print("Received:\t" + recv_str) + + # Release UART pins + uart.deinit() + + # Compare strings + if recv_str == test_str: + return PASS, [tx_pin, rx_pin] + else: + return FAIL, [tx_pin, rx_pin] + + else: + print("No UART pins found") + return NA, [] + +def _main(): + + # List out all the pins available to us + pins = [p for p in dir(board)] + print() + print("All pins found:", end=' ') + + # Print pins + for p in pins: + print(p, end=' ') + print('\n') + + # Run test + result = run_test(pins) + print() + print(result[0]) + print("Pins tested: " + str(result[1])) + +# Execute only if run as main.py or code.py +if __name__ == "__main__": + _main() \ No newline at end of file diff --git a/tests/board_test_suite/source/voltage_monitor_test.py b/tests/board_test_suite/source/voltage_monitor_test.py new file mode 100644 index 0000000000..8cc742cf25 --- /dev/null +++ b/tests/board_test_suite/source/voltage_monitor_test.py @@ -0,0 +1,111 @@ +# The MIT License (MIT) +# +# Copyright (c) 2018 Shawn Hymel for Adafruit Industries +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +""" +`voltage_monitor_test` +==================================================== +Voltage Monitor Test Module + +* Author(s): Shawn Hymel +* Date: December 8, 2018 + +Implementation Notes +-------------------- +Prints out the measured voltage on any onboard voltage/battery monitor pins. +Note that these pins sometimes have an onboard voltage divider to decrease +the voltage. + +Requires multimeter + +Run this script as its own main.py to individually run the test, or compile +with mpy-cross and call from separate test script. +""" + +import board +import analogio + +# Constants +VOLTAGE_MONITOR_PIN_NAMES = ['VOLTAGE_MONITOR', 'BATTERY'] +ANALOG_REF = 3.3 # Reference analog voltage +ANALOGIN_BITS = 16 # ADC resolution (bits) for CircuitPython + +# Test result strings +PASS = "PASS" +FAIL = "FAIL" +NA = "N/A" + +def run_test(pins): + + # Look for pins with battery monitoring names + monitor_pins = list(set(pins).intersection(set(VOLTAGE_MONITOR_PIN_NAMES))) + + # Print out voltage found on these pins + if monitor_pins: + + # Print out the monitor pins found + print("Voltage monitor pins found:", end=' ') + for p in monitor_pins: + print(p, end=' ') + print('\n') + + # Print out the voltage found on each pin + for p in monitor_pins: + monitor = analogio.AnalogIn(getattr(board, p)) + voltage = (monitor.value * ANALOG_REF) / (2**ANALOGIN_BITS) + print(p + ": {:.2f}".format(voltage) + " V") + monitor.deinit() + print() + + # Ask the user to check these voltages + print("Use a multimeter to verify these voltages.") + print("Note that some battery monitor pins might have onboard " + + "voltage dividers.") + print("Do the values look reasonable? [y/n]") + if input() == 'y': + return PASS, monitor_pins + else: + return FAIL, monitor_pins + + else: + print("No battery monitor pins found") + return NA, [] + +def _main(): + + # List out all the pins available to us + pins = [p for p in dir(board)] + print() + print("All pins found:", end=' ') + + # Print pins + for p in pins: + print(p, end=' ') + print('\n') + + # Run test + result = run_test(pins) + print() + print(result[0]) + print("Pins tested: " + str(result[1])) + +# Execute only if run as main.py or code.py +if __name__ == "__main__": + _main() \ No newline at end of file From 9d6d94b5f5b4699eecfa82c341761f5e48362745 Mon Sep 17 00:00:00 2001 From: ShawnHymel Date: Sat, 8 Dec 2018 16:48:26 -0600 Subject: [PATCH 17/33] Renamed image --- .../doc/{test_jib.png => test_jig.png} | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename tests/board_test_suite/doc/{test_jib.png => test_jig.png} (100%) diff --git a/tests/board_test_suite/doc/test_jib.png b/tests/board_test_suite/doc/test_jig.png similarity index 100% rename from tests/board_test_suite/doc/test_jib.png rename to tests/board_test_suite/doc/test_jig.png From 7d6ceeac5634e338c5d960c59bf4345860a61bbf Mon Sep 17 00:00:00 2001 From: ShawnHymel Date: Sat, 8 Dec 2018 16:58:51 -0600 Subject: [PATCH 18/33] Renamed doc to docs and updated README with rst. --- tests/board_test_suite/README.rst | 5 +++-- tests/board_test_suite/{doc => docs}/test_jig.fzz | Bin tests/board_test_suite/{doc => docs}/test_jig.png | Bin .../board_test_suite/{doc => docs}/test_jig_bb.png | Bin 4 files changed, 3 insertions(+), 2 deletions(-) rename tests/board_test_suite/{doc => docs}/test_jig.fzz (100%) rename tests/board_test_suite/{doc => docs}/test_jig.png (100%) rename tests/board_test_suite/{doc => docs}/test_jig_bb.png (100%) diff --git a/tests/board_test_suite/README.rst b/tests/board_test_suite/README.rst index 7fed9d35b1..ccf008d631 100644 --- a/tests/board_test_suite/README.rst +++ b/tests/board_test_suite/README.rst @@ -46,11 +46,12 @@ You will need the following components: Connect the components as shown to your board. -![Test jig Fritzing diagram](doc/test_jig.png) +.. image:: docs/test_jig.png + :alt: Test jig Fritzing diagram Copy the *lib* folder to the CIRCUITPYTHON drive. Copy *main.py* to the root directory of your CIRCUITPYTHON drive. Open a Serial terminal and connect to the board. Follow the directions given to run through the tests. Building ======== -Individual test modules can be built with the mpy-cross cross-compiler. This is required to save RAM space if you plan to run more than one test at a time. See [the mpy-cross directory in circuitpython](https://github.com/adafruit/circuitpython/tree/master/mpy-cross) to learn more. +Individual test modules can be built with the mpy-cross cross-compiler. This is required to save RAM space if you plan to run more than one test at a time. See `the mpy-cross directory in circuitpython `_ to learn more. diff --git a/tests/board_test_suite/doc/test_jig.fzz b/tests/board_test_suite/docs/test_jig.fzz similarity index 100% rename from tests/board_test_suite/doc/test_jig.fzz rename to tests/board_test_suite/docs/test_jig.fzz diff --git a/tests/board_test_suite/doc/test_jig.png b/tests/board_test_suite/docs/test_jig.png similarity index 100% rename from tests/board_test_suite/doc/test_jig.png rename to tests/board_test_suite/docs/test_jig.png diff --git a/tests/board_test_suite/doc/test_jig_bb.png b/tests/board_test_suite/docs/test_jig_bb.png similarity index 100% rename from tests/board_test_suite/doc/test_jig_bb.png rename to tests/board_test_suite/docs/test_jig_bb.png From a3f46a3ccb362c26722cb5af960dfcd87f1ba4ea Mon Sep 17 00:00:00 2001 From: ShawnHymel Date: Sat, 8 Dec 2018 17:00:04 -0600 Subject: [PATCH 19/33] Removed mpy-cross binary --- tests/board_test_suite/mpy-cross | Bin 194960 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 tests/board_test_suite/mpy-cross diff --git a/tests/board_test_suite/mpy-cross b/tests/board_test_suite/mpy-cross deleted file mode 100644 index 8dbdb9ab9dcd320549d19e38ef8506d0a96ec629..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 194960 zcmbrn3w#vS**`v;-6flFnU$MCK>{p71T?FtSq-{FHZltvj0OZn3mS+}P>{?dp{NN? zBAHBAvDMnzw{PuR+fv`wTB`^sVUv&q@RooeLWK~y%rM-MB;2z9?{j811eLzO&*vW{ zGw1%C=RCLboaanRvqSeK*lb+w&bB zUP3g*wJh{28Ag z&5iy|iw!p|!H*QB{q*1h?Dyp-)uo@@gVJ1jpJ`eRXPOgPe*8I>r8qABjJJCL?YcmZ z)%i~kcdYQi*mzgN3qt_ajm;xAUGA1e3!b=R{4I;-j$5?gX}M%vNyZ)H?ihb_;o_Tb zW%H)~sqUny)2VeA9#ip7F!#qlLOGQ;9zV3U^4eWJT($P$-sG2h4Op0#L2cvz@cRG! za~?JO{z&b}Rq}fxKNbJJ|FanxKi1E4SIM7ymHc^_#E z&CQ-%H2c9=y{tu#7Z%Pdw3=U~alw*&s&tFQFpITfrk0sG| z_G|(;hO4I@U+^?nymWyykDC+&>^`e0$fscYN3DZ8u+jACJ{aV6rp;($kJN z2TNNiO4C2@UUAR(}ay{dJspg1Tk8bRc`Pex;nW@)MDa z4b2KtyXD7J56d6jEkCaNs35&tes}vIqg#G={pjzOPh-b_#BTX6YK8E0^QSy5;lT@+-UL$JdUES9Qz3 zrd$1AcgycC2j1+K->+N!)!p(*hsS^3?Up|vo{8t$Zu!@C%a3%+PwAGwxm*6AZuw2! z@~`WbzpGpR_1*GYy5+}hNGjI5! zDo0(S=Bzj{oD(Y|l2h*osuq<^uDWiO@EW~+DXK(AO8CtW_2Z4w^Qn^262;HRpHiAw z#b{#bCn!xUVnkT_5lWM3WxUJM4^o;~#dwpYCsUeO#8}1B6DdusVU)4-U6dx4FqW|N zt&}EKFy^rIO_U}UFmhRXIHig74L?g?M`9llqS+M+${Y9rHSMWj-{Vy9nKZ3LYn>LZY+CoBB%d-tc?@ZM*Scb zetO-1;QE~M_qU}z(%d(rI4e-o)5O;Mlq^b*za z9=)Xv8QOS{Mj6Vc6r)$v#ue~G103f)7F3&mBC4&Ta^Pg{v|wW-eKb05tci@GN8{)| zeoh~SiGF9*Upo{GGhG~)f`_Pd^bysAMc1#TsS}%A^Vmizh_;||Ic0K>)e%<|+#F9= zQ~7jp#c|d_O{X0li0VnPM!#3IHHgif(txhsdd7R>hoT>A{IUsyfNxH|W;z<`PlMnd zYjE~JmhB81X`>q(JyE%rlbz--(XOkrQ`8{Z^qBE8v;k-LLmN>|6x9hyc=JZ;kQd#L zJPp~-vv@;}!y~Gb+@iWTMO2?m71i0JL+X?1A$4&^NGD}rUJDlq%9Le+B5!;wjd*=L7VVDpNcx^Mb0Fb=(BxpqSj6Mw< zdS$B-tQEgzn~{Ms<6jU7z)xPbHzKSf@nhjPqzyPl;D%?|ylp5K)h4xBR2pnpp#){W zT~umq0>8$QVB502Lus)q9SPDNvF4CdtU2ry?GrXpfzN z1iSJM5+TjG6A3X5oYo=MoJa&poWMo@47COT10m-DC&1(@er>fq0m>>Q5<5i1cK3wC zcob23FQwJmjf8j1J^{UqcQbxeYt-{W)?cv3NTAuG-&VDzeH(@twiAtPTe2$0y8uj( zfUz3)cdI*NqbEooGc~ntN!mni{VFJ$YCkx7;}rbT_nwPJt%6^46*N&nJqp~S>g}iY(d0XbDkpqK@9nK@<s4R%ufY!Z$z}K|&cJXfKUc48M71Mx$MoBzpn63%x6Aois~+CLreD9wvgb7i5xA_Q$S{W#tWrAcQohn*lkV=S z4+$swY6}ZQ^(%Z~% zECjGdi)z5*R_oD3+5=!T$>SE*5_^XD>Tj576Y%)G5r7bdaue0l{Hu|W4T_^RA?)x6 z@c>LBdP?{6)jJ?V1D?UQ2!2CvcLc({`if~M8Kg8&s+bQM74T$$cRZ>5n#>fw;x&wA z(IN6Ow2&uda(KKO?}KCOm#uCRwjU5GF7g!ytf8RNXk$2d6%B=tY3*%Id}TIar~Ck4 z{%_O?*tUdhdzB7{Tr2t>1rk;^AeRPphwK1VwC$q&(fkYVAU_5kjE*=^xY5|$=#L8a3sh98Q`d@!610jwuLJIgss6FcOi|To>0BM}H zY`$BBwU{nw-sR{gh9}w3{nC+8P-;y;t)ptt>3{k<#y6zNwtwro4wVY`z^oB#zJ<9k z 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 Date: Sat, 8 Dec 2018 17:40:46 -0600 Subject: [PATCH 20/33] Added SD_CD pin definition --- ports/atmel-samd/boards/arduino_mkrzero/pins.c | 1 + 1 file changed, 1 insertion(+) diff --git a/ports/atmel-samd/boards/arduino_mkrzero/pins.c b/ports/atmel-samd/boards/arduino_mkrzero/pins.c index e06400f35c..3ffd37fa6e 100644 --- a/ports/atmel-samd/boards/arduino_mkrzero/pins.c +++ b/ports/atmel-samd/boards/arduino_mkrzero/pins.c @@ -36,6 +36,7 @@ STATIC const mp_rom_map_elem_t board_global_dict_table[] = { { MP_ROM_QSTR(MP_QSTR_SD_MOSI), MP_ROM_PTR(&pin_PA12) }, { MP_ROM_QSTR(MP_QSTR_SD_MISO), MP_ROM_PTR(&pin_PA15) }, { MP_ROM_QSTR(MP_QSTR_SD_CS), MP_ROM_PTR(&pin_PA14) }, + { MP_ROM_QSTR(MP_QSTR_SD_CD), MP_ROM_PTR(&pin_PA27) }, { MP_ROM_QSTR(MP_QSTR_L), MP_ROM_PTR(&pin_PB08) }, { MP_ROM_QSTR(MP_QSTR_VOLTAGE_MONITOR), MP_ROM_PTR(&pin_PB09) }, { MP_ROM_QSTR(MP_QSTR_BATTERY), MP_ROM_PTR(&pin_PB09) }, From f8ded46ad69ebba2de5b791bde16c50c4d2b1d1b Mon Sep 17 00:00:00 2001 From: ShawnHymel Date: Sat, 8 Dec 2018 17:42:42 -0600 Subject: [PATCH 21/33] Merged field in pin table in README. --- ports/atmel-samd/README.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ports/atmel-samd/README.rst b/ports/atmel-samd/README.rst index 649a142e1d..1ff2a0e80b 100644 --- a/ports/atmel-samd/README.rst +++ b/ports/atmel-samd/README.rst @@ -24,7 +24,7 @@ boards use smaller version. ===================== =================== =============== =========================== ====================== ================ ================== ========================= ================ ================ `microcontroller.pin` `board` ---------------------- ------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +--------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Datasheet arduino_mkrzero arduino_zero circuitplayground_express feather_m0_adalogger feather_m0_basic feather_m0_express gemma_m0 metro_m0_express trinket_m0 ===================== =================== =============== =========================== ====================== ================ ================== ========================= ================ ================ PA00 ``ACCELEROMETER_SDA`` ``APA102_MOSI`` ``APA102_MOSI`` From 7da85f5a4f92604a9e3ac30a167106d73d904f0c Mon Sep 17 00:00:00 2001 From: Scott Shawcroft Date: Mon, 10 Dec 2018 10:13:09 -0800 Subject: [PATCH 22/33] Strip a newline from the version tag. --- tools/build_board_info.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/build_board_info.py b/tools/build_board_info.py index 908bb17e9d..df43f74fce 100644 --- a/tools/build_board_info.py +++ b/tools/build_board_info.py @@ -65,7 +65,7 @@ def get_version_info(): version = None sha = git("rev-parse", "--short", "HEAD").stdout.decode("utf-8") try: - version = git("describe", "--tags", "--exact-match").stdout.decode("utf-8") + version = git("describe", "--tags", "--exact-match").stdout.decode("utf-8").strip() except sh.ErrorReturnCode_128: # No exact match pass From f9862f1c15aa9df08b176d67113bbf3c9af0d70b Mon Sep 17 00:00:00 2001 From: Scott Shawcroft Date: Mon, 10 Dec 2018 12:55:35 -0800 Subject: [PATCH 23/33] Use file glob for release files --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 7e5611c731..202052e6c0 100755 --- a/.travis.yml +++ b/.travis.yml @@ -37,8 +37,8 @@ deploy: provider: releases api_key: secure: "jdqVFw6itRY4qwQF4ReXo0uaymT+Mob6RhYX0lw8KWFNqBgHnLVuKmKKcGMEuRvBVMPkvxF7bMuOQzSBOunqwlHFse3oMzdWvQODv1zwV7pSRXGwTdIvTPbBjKWxnBG9uSNRf2R5AMflJFUxy2CbtBpgvNzr+4VLREZDrrjEu8C1iTtXGpSm5AQ5iIp2fkMAWD85FP7CQPpkqRoxhSIFZmTdurfYRmenq1OZ/4SeD5TESKcyvqJNzVT9z210B3cg3eAkP6ukvelW4qE2zgIANqUkGqvDEnAvEII9M89kuwhCMAekdfwnUSPrry+g77i1dUZHoRN1+MFj+waYtPaqxdYo2G1sysa6enxlu4jHMR5MfMk9eKHgaNgL3PiyANusYSS44amh8QIiVaX5nw82myZDCpQOZW7YqJKE6WX70Lbs4mS+wIs+ig4KIXO1B0p9kMb0OeVjHRl+KcXsWGRu/ECG/ExpqlVIssSPU407LohMXT2cJ37CY/R/EeK2XSDsQ2M3L3EAGUjCJdBGuwsOJ+2lG+HQpAVu9vAB4kq5jy9Ye+MG+8Xlkly3XZZ5+FkXyYxKnXb26/QVv0e5sIG5OmdJCPYFaH2J1QdKo7CdhEcBtrf6DMPWaimGMldShFqzLjOz3b3qLysRxFF0aGb7ipKPa57vawNzYHoPAViOcXQ=" - file: - - $(ls -d1 bin/*/* | tr "\n" ":") + file_glob: true + file: "$TRAVIS_BUILD_DIR/bin/*/*" skip_cleanup: true draft: true on: From 96e65fa6418eae46fcd85fbea557abf4e3b814fa Mon Sep 17 00:00:00 2001 From: Scott Shawcroft Date: Mon, 10 Dec 2018 13:17:05 -0800 Subject: [PATCH 24/33] Fix build board info for python3.5 --- tools/build_board_info.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tools/build_board_info.py b/tools/build_board_info.py index df43f74fce..eb9f28d901 100644 --- a/tools/build_board_info.py +++ b/tools/build_board_info.py @@ -215,7 +215,7 @@ def generate_download_info(): board_path = os.path.join("../ports", port, "boards") for board_path in os.scandir(board_path): if board_path.is_dir(): - board_files = os.listdir(board_path) + board_files = os.listdir(board_path.path) board_id = board_path.name board_info = board_mapping[board_id] @@ -239,8 +239,10 @@ def generate_download_info(): changes["new_languages"] = set(languages) - previous_languages - if changes["new_languages"]: + if changes["new_release"]: create_pr(changes, current_info, git_info) + else: + print("No new release to update") if __name__ == "__main__": if "TRAVIS_TAG" in os.environ and os.environ["TRAVIS_TAG"]: From a90343022acd9fc067abab3ac9840f97d0ee97ce Mon Sep 17 00:00:00 2001 From: Jerry Needell Date: Mon, 10 Dec 2018 16:35:40 -0500 Subject: [PATCH 25/33] enble MICROPYTHON_CPYTHON_COMPAT - fix mpconfigport.h to allow and enable a few more items for compatiblilty with other builds --- ports/nrf/mpconfigport.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/ports/nrf/mpconfigport.h b/ports/nrf/mpconfigport.h index 86f5af20ae..db384d5102 100644 --- a/ports/nrf/mpconfigport.h +++ b/ports/nrf/mpconfigport.h @@ -74,16 +74,16 @@ #define mp_builtin_open_obj mp_vfs_open_obj #endif -#define MICROPY_CPYTHON_COMPAT (0) +#define MICROPY_CPYTHON_COMPAT (1) #define MICROPY_STREAMS_NON_BLOCK (1) #define MICROPY_MODULE_WEAK_LINKS (1) #define MICROPY_CAN_OVERRIDE_BUILTINS (1) #define MICROPY_USE_INTERNAL_ERRNO (0) #define MICROPY_PY_FUNCTION_ATTRS (1) #define MICROPY_PY_BUILTINS_STR_UNICODE (1) -#define MICROPY_PY_BUILTINS_STR_CENTER (0) -#define MICROPY_PY_BUILTINS_STR_PARTITION (0) -#define MICROPY_PY_BUILTINS_STR_SPLITLINES (0) +#define MICROPY_PY_BUILTINS_STR_CENTER (1) +#define MICROPY_PY_BUILTINS_STR_PARTITION (1) +#define MICROPY_PY_BUILTINS_STR_SPLITLINES (1) #define MICROPY_PY_BUILTINS_MEMORYVIEW (1) #define MICROPY_PY_BUILTINS_FROZENSET (1) #define MICROPY_PY_BUILTINS_EXECFILE (0) @@ -155,6 +155,7 @@ typedef long mp_off_t; #define MP_PLAT_PRINT_STRN(str, len) mp_hal_stdout_tx_strn_cooked(str, len) #define mp_type_fileio mp_type_vfs_fat_fileio +#define mp_type_textio mp_type_vfs_fat_textio // extra built in modules to add to the list of known ones From 8fc72e897817630abc1ed1a7ecace44035d3879c Mon Sep 17 00:00:00 2001 From: Scott Shawcroft Date: Mon, 10 Dec 2018 20:32:19 -0800 Subject: [PATCH 26/33] Add SPI and I2C to SparkFun nRF52840 mini definition and add it to Travis. --- .travis.yml | 2 +- ports/nrf/boards/sparkfun_nrf52840_mini/pins.c | 17 ++++++++++------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/.travis.yml b/.travis.yml index 202052e6c0..fad428949b 100755 --- a/.travis.yml +++ b/.travis.yml @@ -21,7 +21,7 @@ git: # that SDK is shortest and add it there. In the case of major re-organizations, # just try to make the builds "about equal in run time" env: - - TRAVIS_TESTS="unix docs translations website" TRAVIS_BOARDS="feather_huzzah circuitplayground_express mini_sam_m4 grandcentral_m4_express pca10056 pca10059 feather_nrf52832 feather_nrf52840_express makerdiary_nrf52840_mdk particle_boron particle_argon particle_xenon" TRAVIS_SDK=arm:nrf:esp8266 + - TRAVIS_TESTS="unix docs translations website" TRAVIS_BOARDS="feather_huzzah circuitplayground_express mini_sam_m4 grandcentral_m4_express pca10056 pca10059 feather_nrf52832 feather_nrf52840_express makerdiary_nrf52840_mdk particle_boron particle_argon particle_xenon sparkfun_nrf52840_mini" TRAVIS_SDK=arm:nrf:esp8266 - TRAVIS_BOARDS="metro_m0_express metro_m4_express pirkey_m0 trellis_m4_express trinket_m0" TRAVIS_SDK=arm - TRAVIS_BOARDS="feather_radiofruit_zigbee gemma_m0 hallowing_m0_express itsybitsy_m0_express itsybitsy_m4_express meowmeow" TRAVIS_SDK=arm - TRAVIS_BOARDS="feather_m0_express_crickit feather_m0_rfm69 feather_m0_rfm9x feather_m4_express arduino_zero arduino_mkr1300" TRAVIS_SDK=arm diff --git a/ports/nrf/boards/sparkfun_nrf52840_mini/pins.c b/ports/nrf/boards/sparkfun_nrf52840_mini/pins.c index 210b170326..5c50f55c7c 100644 --- a/ports/nrf/boards/sparkfun_nrf52840_mini/pins.c +++ b/ports/nrf/boards/sparkfun_nrf52840_mini/pins.c @@ -13,7 +13,7 @@ STATIC const mp_rom_map_elem_t board_module_globals_table[] = { { MP_ROM_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_P0_23) }, // D7 { MP_ROM_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_P0_09) }, // D8 { MP_ROM_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_P0_10) }, // D9 - + { MP_ROM_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_P0_02) }, // D10 { MP_ROM_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_P0_03) }, // D11 { MP_ROM_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_P0_31) }, // D12 @@ -22,7 +22,7 @@ STATIC const mp_rom_map_elem_t board_module_globals_table[] = { { MP_ROM_QSTR(MP_QSTR_D15), MP_ROM_PTR(&pin_P0_28) }, // D15 { MP_ROM_QSTR(MP_QSTR_D16), MP_ROM_PTR(&pin_P0_05) }, // D16 { MP_ROM_QSTR(MP_QSTR_D17), MP_ROM_PTR(&pin_P0_04) }, // D17 - + { MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_P0_02) }, // A0 { MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_P0_03) }, // A1 { MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_P0_04) }, // A2 @@ -31,22 +31,25 @@ STATIC const mp_rom_map_elem_t board_module_globals_table[] = { { MP_ROM_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_P0_29) }, // A5 { MP_ROM_QSTR(MP_QSTR_A6), MP_ROM_PTR(&pin_P0_30) }, // A6 { MP_ROM_QSTR(MP_QSTR_A7), MP_ROM_PTR(&pin_P0_31) }, // A7 - + { MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_P0_08) }, // 8 - SDA { MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_P0_11) }, // 11 - SCL - + { MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_P0_31) }, // 31 - MISO { MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_P0_03) }, // 3 - MOSI { MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_P0_30) }, // 30 - SCK - + { MP_ROM_QSTR(MP_QSTR_LED1), MP_ROM_PTR(&pin_P0_07) }, // 7 - Blue LED - + { MP_ROM_QSTR(MP_QSTR_BUTTON1), MP_ROM_PTR(&pin_P0_13) }, // 13 - Button - + { MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_P0_15) }, // 15 - UART RX { MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_P0_17) }, // 17 - UART TX { MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) }, + { MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) }, + { MP_ROM_QSTR(MP_QSTR_QWIIC), MP_ROM_PTR(&board_i2c_obj) }, + { MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) }, }; MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table); From a9d2bfada4485a807ad76b3d37e0e19209234da5 Mon Sep 17 00:00:00 2001 From: ShawnHymel Date: Tue, 11 Dec 2018 12:33:11 -0600 Subject: [PATCH 27/33] Removed test suite. Fixed links in main README. --- .travis.yml | 2 +- README.rst | 6 +- tests/board_test_suite/README.rst | 57 ----- tests/board_test_suite/docs/test_jig.fzz | Bin 7586 -> 0 bytes tests/board_test_suite/docs/test_jig.png | Bin 168217 -> 0 bytes tests/board_test_suite/docs/test_jig_bb.png | Bin 149724 -> 0 bytes .../lib/adafruit_bus_device/__init__.py | 0 .../lib/adafruit_bus_device/i2c_device.mpy | Bin 1707 -> 0 bytes .../lib/adafruit_bus_device/spi_device.mpy | Bin 1250 -> 0 bytes .../board_test_suite/lib/adafruit_sdcard.mpy | Bin 5349 -> 0 bytes tests/board_test_suite/lib/gpio_test.mpy | Bin 2036 -> 0 bytes tests/board_test_suite/lib/i2c_test.mpy | Bin 2420 -> 0 bytes tests/board_test_suite/lib/led_test.mpy | Bin 1765 -> 0 bytes tests/board_test_suite/lib/sd_cd_test.mpy | Bin 1342 -> 0 bytes tests/board_test_suite/lib/sd_test.mpy | Bin 2256 -> 0 bytes tests/board_test_suite/lib/spi_test.mpy | Bin 3232 -> 0 bytes tests/board_test_suite/lib/uart_test.mpy | Bin 1446 -> 0 bytes .../lib/voltage_monitor_test.mpy | Bin 1423 -> 0 bytes tests/board_test_suite/main.py | 235 ------------------ tests/board_test_suite/source/gpio_test.py | 154 ------------ tests/board_test_suite/source/i2c_test.py | 191 -------------- tests/board_test_suite/source/led_test.py | 142 ----------- tests/board_test_suite/source/sd_cd_test.py | 110 -------- tests/board_test_suite/source/sd_test.py | 157 ------------ tests/board_test_suite/source/spi_test.py | 232 ----------------- tests/board_test_suite/source/uart_test.py | 121 --------- .../source/voltage_monitor_test.py | 111 --------- 27 files changed, 5 insertions(+), 1513 deletions(-) delete mode 100644 tests/board_test_suite/README.rst delete mode 100644 tests/board_test_suite/docs/test_jig.fzz delete mode 100644 tests/board_test_suite/docs/test_jig.png delete mode 100644 tests/board_test_suite/docs/test_jig_bb.png delete mode 100644 tests/board_test_suite/lib/adafruit_bus_device/__init__.py delete mode 100644 tests/board_test_suite/lib/adafruit_bus_device/i2c_device.mpy delete mode 100644 tests/board_test_suite/lib/adafruit_bus_device/spi_device.mpy delete mode 100644 tests/board_test_suite/lib/adafruit_sdcard.mpy delete mode 100644 tests/board_test_suite/lib/gpio_test.mpy delete mode 100644 tests/board_test_suite/lib/i2c_test.mpy delete mode 100644 tests/board_test_suite/lib/led_test.mpy delete mode 100644 tests/board_test_suite/lib/sd_cd_test.mpy delete mode 100644 tests/board_test_suite/lib/sd_test.mpy delete mode 100644 tests/board_test_suite/lib/spi_test.mpy delete mode 100644 tests/board_test_suite/lib/uart_test.mpy delete mode 100644 tests/board_test_suite/lib/voltage_monitor_test.mpy delete mode 100644 tests/board_test_suite/main.py delete mode 100644 tests/board_test_suite/source/gpio_test.py delete mode 100644 tests/board_test_suite/source/i2c_test.py delete mode 100644 tests/board_test_suite/source/led_test.py delete mode 100644 tests/board_test_suite/source/sd_cd_test.py delete mode 100644 tests/board_test_suite/source/sd_test.py delete mode 100644 tests/board_test_suite/source/spi_test.py delete mode 100644 tests/board_test_suite/source/uart_test.py delete mode 100644 tests/board_test_suite/source/voltage_monitor_test.py diff --git a/.travis.yml b/.travis.yml index 13e97b7299..eaa22d8e9d 100755 --- a/.travis.yml +++ b/.travis.yml @@ -24,7 +24,7 @@ env: - TRAVIS_TESTS="unix docs translations website" TRAVIS_BOARDS="feather_huzzah circuitplayground_express grandcentral_m4_express pca10056 pca10059 feather_nrf52832 feather_nrf52840_express makerdiary_nrf52840_mdk" TRAVIS_SDK=arm:nrf:esp8266 - TRAVIS_BOARDS="metro_m0_express metro_m4_express pirkey_m0 trellis_m4_express trinket_m0" TRAVIS_SDK=arm - TRAVIS_BOARDS="feather_radiofruit_zigbee gemma_m0 hallowing_m0_express itsybitsy_m0_express itsybitsy_m4_express meowmeow" TRAVIS_SDK=arm - - TRAVIS_BOARDS="feather_m0_express_crickit feather_m0_rfm69 feather_m0_rfm9x feather_m4_express arduino_zero arduino_mkr1300" TRAVIS_SDK=arm + - TRAVIS_BOARDS="feather_m0_express_crickit feather_m0_rfm69 feather_m0_rfm9x feather_m4_express arduino_zero arduino_mkr1300 arduino_mkrzero" TRAVIS_SDK=arm - TRAVIS_BOARDS="circuitplayground_express_crickit feather_m0_adalogger feather_m0_basic feather_m0_express catwan_usbstick" TRAVIS_SDK=arm addons: diff --git a/README.rst b/README.rst index 76c7315dc4..ca529de627 100644 --- a/README.rst +++ b/README.rst @@ -60,13 +60,15 @@ Other supported using the `Adafruit CircuitPython SD library `__) - `Arduino Zero `__ -- `Arduino MKR Zero ` +- `Arduino MKR Zero `__ (MicroSD card + supported using the `Adafruit CircuitPython SD + library `__) "Third-party" or "non-Adafruit" boards ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - `Electronic Cats Meow Meow `__ -- `Electronic Cats CatWAN USB Stick ` +- `Electronic Cats CatWAN USB Stick `__ Download -------- diff --git a/tests/board_test_suite/README.rst b/tests/board_test_suite/README.rst deleted file mode 100644 index ccf008d631..0000000000 --- a/tests/board_test_suite/README.rst +++ /dev/null @@ -1,57 +0,0 @@ - -Introduction -============ - -Board test suite for CircuitPython. Run these tests to ensure that a CircuitPython port was created correctly, individual pin mappings are correct, and buses (e.g. SPI) work. - -Tests can be run individually. Copy code found in each *_test.py* module (found in *source* directory) to main.py in your CIRCUITPYTHON device drive. - -Alternatively, tests can be imported as modules. Copy the *lib* directory to CIRCUITPYTHON device drive and import the test in your own code. Each test can be run with the `run_test(pins)` function. - -The *main.py* example shows how to call tests from within a script. *main.py* runs the following tests: - - * LED Test - * GPIO Test - * Voltage Monitor Test - * UART Test - * SPI Test - * I2C Test - -Dependencies -============= - -This test suite depends on: - -* `Adafruit CircuitPython `_ -* `SD Card `_ -* `Bus Device `_ - -Please ensure all dependencies are available on the CircuitPython filesystem. -This is easily achieved by downloading -`the Adafruit library and driver bundle `_. - -Usage Example -============= - -You will need the following components: - -* Multimeter -* LED -* 1x 330 Ohm resistor -* 2x 4.7k Ohm resistor -* Microchip 25AA040A SPI EEPROM -* Microchip AT24HC04B I2C EEPROM -* Breadboard -* Wires - -Connect the components as shown to your board. - -.. image:: docs/test_jig.png - :alt: Test jig Fritzing diagram - -Copy the *lib* folder to the CIRCUITPYTHON drive. Copy *main.py* to the root directory of your CIRCUITPYTHON drive. Open a Serial terminal and connect to the board. Follow the directions given to run through the tests. - -Building -======== - -Individual test modules can be built with the mpy-cross cross-compiler. This is required to save RAM space if you plan to run more than one test at a time. See `the mpy-cross directory in circuitpython `_ to learn more. diff --git a/tests/board_test_suite/docs/test_jig.fzz b/tests/board_test_suite/docs/test_jig.fzz deleted file mode 100644 index e97a8402450233268ca719eaebf58edac4f0e627..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7586 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 diff --git a/tests/board_test_suite/docs/test_jig.png b/tests/board_test_suite/docs/test_jig.png deleted file mode 100644 index 22dd927b2946acd3d4abb2a2e6e59dd9147a0c26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 168217 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

bw?l2}_e-%B6Ffa@IVmCA^R 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 BtknPj diff --git a/tests/board_test_suite/lib/adafruit_bus_device/__init__.py b/tests/board_test_suite/lib/adafruit_bus_device/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tests/board_test_suite/lib/adafruit_bus_device/i2c_device.mpy b/tests/board_test_suite/lib/adafruit_bus_device/i2c_device.mpy deleted file mode 100644 index f33d4d495fe9dbe2647a0db93faede76ead9364e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1707 zcma)6-*4Mg6h1djnxtE^q-&jwrimeL3e%JzOHrh0+EUg^@W24I8V^OfapLR6B8@xy zdRrdQ97K6Q;++>>c;qQbyYdHs;J<)>Vt{ypbM2V0sc4Dh==lCP-#Op;KEE%;$~Pns zzm*1L$VhIts(S!`%UPmcA$d@9L}?Rwl^8K~mE;anw~lPX>$BUh>xOPRp2ca$bE&}| zSzT7QwC*gd9S;*)O{+C8QTm8Eu4NA>O;PHwW1G_Sd)nRI;L1EA#BKFBKXz}{>klm6 z^E$PzeN>NN>N^qMUCZer?uSF(!=&$cZkVZtmsmV#1mGWXx^FH`!^)BE8GJZcS)PnvR=Zde0uCmuW4Q`+`8b-C{F zq=?wSNLhn$VF?3#kGtGHz8V~+yvGK}a+n}Zaho$Ipq@Pu$zf@fTaf@~E*HeWZ?%=m zTh+%(W&8fe?`|PW4e%!=nV8W0^J(iNxRZfNDNm+($&6{cjobd)MH7B&Hhk^Q8WcZ+ zkwJc(l&+EKX|R87wx9L2;zP*Cr+*ma6SCJJ{!Z|>o12tg!{pk|WL#Y%({XiOs48lG z0YbSmqlX)@@S+sP01_Z-J|(w!k^y5s1>716%w*hk3ce1G}A-uGB=bjcft3=+yU z6DpVLhT$;RjX~UHee;5y4!Fg8wt~V{!Yhi-mD#PE%GQ&uG{j;6mo`v(qkaD}GCAH{ zBgo8nbDc~I(+4pP8;vIO>PAHkFLv@$tuU*#Sne>alz{DUwokuTIgZy0l9t1D>lo4yb=?4^5 z!z!m}z*F?!8QSj|y6+s#_k;PBq&2GkxKtt&`FA*#zk#!0{Y#>aOB-a0i_dWJ-28$d zzZaQcfrk5RAmNkj>8{SXBd8b8`b=VTQwdeQM9G5o49QOfK9(ZS{ws(1Itiz`EUb=` zHJOt}lh2~Xz69>Ybyv{y1QnVQw*R(rBlLPOfxzz1pNdF#M^o5W0XZElt;@Y6FTvj4@jO9XvFWv(egNxt(1X{Wyf$8SW}!kgrk%sg+sV$n{r%qCCEwW0f)DX=v5cb7OVt+T zCkXu#1(0HpLQ))ZH4qcf7?TnZUk%<}*Bf@5+?!PzO4GD8itDz88)QRMNzpR2L0B-l zfl{GVs6;T{Af~119gKq*o5avD4lP%oKK70bBLHi$MX6!kDHhi>+Oq2fRbMZjq$xf) z$@fSzRhGBfr7d>pL)+@#RA7gyeh)=RKos_J&fLsSPw5=r*)WL9Kx7%C^0>OWQ%Vh-%s)3%fWsVO1+~SH^1Kcv0Y-Cn9^CMv?TBz>Nn@vc1AHq<37@VZ25Y_i{o@aTfw;nD|EegnzqiYNd8 diff --git a/tests/board_test_suite/lib/adafruit_sdcard.mpy b/tests/board_test_suite/lib/adafruit_sdcard.mpy deleted file mode 100644 index 03f65fa63fb0cf6a05906fa196a582521f30da5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5349 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 DGa*eK diff --git a/tests/board_test_suite/lib/i2c_test.mpy b/tests/board_test_suite/lib/i2c_test.mpy deleted file mode 100644 index 201d2c97438eda619809e0adb2decb497b55dfc3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2420 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 diff --git a/tests/board_test_suite/lib/spi_test.mpy b/tests/board_test_suite/lib/spi_test.mpy deleted file mode 100644 index d07d186859f8930677d136f60107a03e8dd113da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3232 zcmai1OK%(36~2cLk+iLbqNI@>j;N75qA1y7Bsw$!IVeDjOu{;nC{nTtsK8{z8A^kY zGsMg=sTP5Td3a%&QpwXCX~SU_OyZ9K`W6C-KfFUX91A562!xAC8*V+nm>+9QbiMGr%*zTm^mtm{))6qp$BlQ8z+7aTtY4|xt+ z{4{*T&%nq0b@+tm;ZuGV9`JFn_&FGB9q|c!oCjtB_yu5Y0Dl9RMc{A31S!H*(aR@c z0;uHUGce(ylAm9J=mbQsK{N`{NhtcRibMPzcsIb`hbTvw82K(UWJT|TL{cNW!8huf z)U3%rju=`~ugI?%4Mi|z!%Q{~{d=0IOU@XQlzqh%Yl_yD{CiD9(VTHe7gb5CyOYmU z>asJeZIlbcbP$S#bzwcbmiMg{${WLU=s@1`>b)!Y+W|be)aBK3M-AQ0Zs&wjb}K); zzP%=tiv?jTU*0OelFt`Q8xF8jDwo22dSNTyyP=fN=6dy=Qm)XemvZG&uf9{tuSa?f z7K*~%!q#XHw3hv;kj>>vZLE-57224um@Su`;mvH}9UmRM>#t=!>)Eg%%MD$t3zX~+ zM8#zK09`R*AsR1Il1m@4Zxd$w5k`qMDj>aKIg(`vXV;-jt_e1ZZ4q zP4nXy8 zZK7;~`j%$k{xauxBF81g@6kJ$g&IQ*6ZrZeb{IhWyL%!4<%FDrriDaUhT9i{a>(}Ss zpHUVUml_N4#7t%W^>_lOg~UvKpTDOjXy&~j>_5pP31UyFaNLd&2{LAj{R^4!OOV2u z$->#oiJ_N{HW8rnU0U|pQHZSq`x#*)a3*=G@D(DHd6;|?9>;SKc}%l;3}SD&drl<} zb~9)HG0LyH@(G^(1inra>q+cwECrc=A3cc`fcXiqQ^4EI0IBe8X~Jr9ZQl ze$S3WtOypHfU4&Yu7YV&_56{3;}WpP;@g@Z|C5&m`ZA=a@#r7WFiU zK83$Y?^x^#U6i~psFf{x>UnG0n(kOaub*4fopT}Q+>~YSdiH16+$9GNTCKk>-}?4; z@hFvg65B@4Qcp9NEp`EHu4$y+=!ogC{Y@@Yc5lKajbm)9?Q%OH?0hxFFujIsUcnk9 z>xNu06-}jpzo8@KjKNh+RdI=PK}Bse&2I0#l5_fTLEUJYfqmH&O;f+ns&k6&SRdNh z-YRZy;dvKu)7)5;Qr#i1jVbt=tD$a^6F+{Jd#zM}3s z*!L7lXY1e+;j9Hp*d10vJ%%0J8HXfUQ5Cb>*Buy}dVu&EifRPwnxP0N1?!5TQ6XSd z-lOwS#h{b1*uGhjTT?2!Ryj}_Tq>Q-F1@~#<($_AhYWCZA!)=oQ{&77nOiM$c%0Kz zTXPR2jjKgkaygmC65Wb-fh;uTq%lRG94n3~tyz;e?3cJ)uQ#!2;vN0}4c8nCIV|U# zq{)VDp)Q)017l=evn^APxT@AvrIru7B7P$GX+`_>VqA+aD|7LAtXS`Q*k96OBjL{% zn4z==VfGT{SAaFHtX v^(;#(++>gtAS95%e=U%MO@clK$d|`EW9fe#?Ou9=mI1tt#-OJ+o?Q4Jx@gIz diff --git a/tests/board_test_suite/lib/uart_test.mpy b/tests/board_test_suite/lib/uart_test.mpy deleted file mode 100644 index ecb47c908d404661fc99c16422452db5eb6a714e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1446 zcmZ{kO>7%Q6vyZ7`ZEbF{^+KO*Xxb6a_mTPTNl?-R3Ww@MMlJO97h=Cu-SNLlP&hH z*0C@u8Z1L_6k(i0bY;f7$wYc~!8Tbg=&^mg#PYE_M;$0f%GwuVziHg6bFt2=@M|4 zL7Ihl_bHO*;9F@PzL64S__@Rbmjo#ZoB)yloCs115|mb(;9inT~3^ii;gL*Z$PMYpJ$2Zaa=)`FCj>uvJsDTBDAs z)u(H9rBW&@WqEy#sn(~fXT$Ik?CVjCO)2^urS}pSuqCy#;U3wD$+ki&I@b33LY)W}6qrR^j#GMgnvrDcC^d zBVl2z<2e?5O~Y|n2fH(d>0;Z#4cD+t>hQO1;_@42yW@I%_~ryRF4RcvPRnq~cyA@_M9Y>)RT617 zQMWp#CWR3Kgu+GgE_}I6_}f7D-dUYN4+toI4c?CzULI^u-K6Kxuv+c&SCy(nmM`^u z)5F&#TA*ydwVbxn*Nnw~ zUQswXeKgT=Z3di+aUq`CpKS@}f AoB#j- diff --git a/tests/board_test_suite/lib/voltage_monitor_test.mpy b/tests/board_test_suite/lib/voltage_monitor_test.mpy deleted file mode 100644 index b04c848b970e4a40f938cd2b8b5282cc926e1c38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1423 zcmaKs&2QsG6u{>>X%ZFoBWZEkts7>Ao6Sa$ij*i)wE}settz$YS13Xea^3Z~G1#8S zGl>)-v}vWiBXQvm;KXUuB5~nBfg69p-uBLg6#`BOX6$s!vKwsq&GUORZ|wJe^EMO8 ztDb`7HC;nlxZN%<*u~=N1O35N8KJ)i*>(=}9EfoW^eMZ!q832ao&wla5oYIi;IcD_eFZXFTRr-939 zXmY}MrPH4{q*iFhGGhgnM~__kR7u}8n$4Bn4`=tcHk!uTin+PfSZ{9an%nCQvtewm z>`fXCV`FR0++A6{605>+JD0IEjP%RW?=cm zG=(DHO*6JD3cL27eVxQoW$7e!6(K-qUV|(gU+>$C#W&qzb+J}uVpEL@KqP zk@hQkXhY#!sc6$+gCm~vVf}2NJw_svUm~@N>=URC*WS&cAB6Gr(pLNBzA&gu$d3Gm z@J~VECTL$HEeEHz;=qq*^H)Jr;kOel4}bptQxxDeD13#!ao~xn!xORgtgrwMs@A@f z;Y3Y@%qzk!$3#9Ur$}`|jzv*4^%gv;rw7^$47Zh*HX9AK>(M8t%a_9Bhr zYMb<2#uJS2m)(Gqkdb@brGYezujfQ36q6GqumL}>!{k#mGDZZ;dXPRM+~PbOk<_!i zE*VQj95S?j7d-JWZUgjbmU9+mNNlof_ONnYn7v6u0DCh7s{y6B=J5j#lyXd0alKbWrlalbWrN1}g^`kk?j IPb@G019&5)u>b%7 diff --git a/tests/board_test_suite/main.py b/tests/board_test_suite/main.py deleted file mode 100644 index 1c472f1ff6..0000000000 --- a/tests/board_test_suite/main.py +++ /dev/null @@ -1,235 +0,0 @@ -# The MIT License (MIT) -# -# Copyright (c) 2018 Shawn Hymel for Adafruit Industries -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. -""" -`board_test_suite` -==================================================== -CircuitPython board hardware test suite - -* Author(s): Shawn Hymel -* Date: December 8, 2018 - -Implementation Notes --------------------- -Run this to test various input/output abilities of a board. Tests the following: - -* Onboard LEDs -* GPIO output -* Onboard battery voltage monitor -* SPI -* I2C - -You will need the following components: - -* Multimeter -* LED -* 1x 330 Ohm resistor -* 2x 4.7k Ohm resistor -* Microchip 25AA040A SPI EEPROM -* Microchip AT24HC04B I2C EEPROM -* Breadboard -* Wires - -Copy lib directory to CIRCUITPYTHON drive. Copy the contents of this file to -main.py in root of CIRCUITPYTHON. Open Serial terminal to board and follow -prompts given. -""" - -import board - -import led_test -import gpio_test -import voltage_monitor_test -import uart_test -import spi_test -import i2c_test - -# Constants -UART_TX_PIN_NAME = 'TX' -UART_RX_PIN_NAME = 'RX' -UART_BAUD_RATE = 9600 -SPI_MOSI_PIN_NAME = 'MOSI' -SPI_MISO_PIN_NAME = 'MISO' -SPI_SCK_PIN_NAME = 'SCK' -SPI_CS_PIN_NAME = 'D2' -I2C_SDA_PIN_NAME = 'SDA' -I2C_SCL_PIN_NAME = 'SCL' - -# Results dictionary -test_results = {} - -# Save tested pins -pins_tested = [] - -# Print welcome message -print() -print(" .... ") -print(" #@@%%%%%%&@@/ ") -print(" (&@%%%%%%%%%%%%%@& ") -print(" .(@&%%%@* *&%%%%%%@. ") -print(" ,@@&&%%%%%%%%//@%,/ /&%%%%%%@ ") -print(" %@%%%&%%%%%%%#(@@@&&%%%%%%%%@* ") -print(" @&%%&%%%%%%%%%%%%%%%%%%%%%%@/ ") -print(" &@@&%%%%&&&%%%%%%%%%%%%%%@, ") -print(" ,/ &@&&%%%%%%%%%%%%%%%%%@ ") -print(" ,* *@&%%%%%%%%%%%%# ") -print(" ( @%%%%%%%%%%%@ ") -print(" , @%%%%%%%%%%&@ ") -print(" #&%%%%%%%%%%@. ") -print(" #@###%%%%%%%@/ ") -print(" (@##(%%%%%%%@% ") -print(" /@###(#%%%%%&@ ") -print(" #@####%%%%%%%@ ") -print(" (@###(%%%%%%%@, ") -print(" .@##(((#%%%%%&( .,,. ") -print(" ,@#####%%%%%%%@ ,%@@%%%%%%%&@% ") -print(" ,#&@####(%%%%%%%@@@@@&%%%%%%%%%%%###& ") -print(" @%%@%####(#%%%%%&@%%%%%%%%%%%%%%##/((@@@@&* ") -print(" (##@%#####%%%%%%%@(#%%%(/####(/####(%@%%%%%%@/ ") -print(" (@&%@@###(#%%%%%%@&/####(/#####/#&@@&%%%%%%%##@ ") -print(" #@%%%%@#####(#%%%%%%@@@@@@@@@@@@@&%%%%%%%%%%%%#/(@@@@@/ ") -print(" @%(/#@%######%%%%%%%@%%%%%%%%%%%%%%%%%%%%%(/(###@%%%%%%@% ") -print(" .@@#(#@#####(#%%%%%%&@###//#####/#####/(####/#%@&%%%%%%%%&& ") -print(" /@%%&@@@(#((((#%%%%%%&@###((#####/#####((##%@@&%%%%%%%%%%%/@. ") -print(" ,@%%%%%%#####%%%%%%%%@@@@&&&&&&&%&@@@@@@&%%%%%%%%%%%%%%%##@, ") -print(" %%%%%%%%@######(%%%%%%%@&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#/(#&& ") -print(" (@###/(%@##((##(%%%%%%%%@%%%%%%%%%%%%%%%%%%%%%%%%%##%###/(&& ") -print(" ,@@%@%##((#%@#######%%%%%%%%@&%%%%##%%%%##%%%%#/#####((####(@* ") -print(" *&(, %@@%##%@#######(%%%%%%%%@#/#####((#####(#####(/#&@&. ") -print(" .@###((#%%%%%%%%%&@@###((#####(###%@@&, ") -print(" #@#(#######%&@@&* .*#&@@@@@@@%(, ") -print(" .,,,.. ") -print() -print("**********************************************************************") -print("* Welcome to the CircuitPython board test suite! *") -print("* Follow the directions to run each test. *") -print("**********************************************************************") -print() - -# List out all the pins available to us -pins = [p for p in dir(board)] -print("All pins found:", end=' ') - -# Print pins -for p in pins: - print(p, end=' ') -print('\n') - -# Run LED test -print("@)}---^----- LED TEST -----^---{(@") -print() -result = led_test.run_test(pins) -test_results["LED Test"] = result[0] -pins_tested.append(result[1]) -print() -print(result[0]) -print() - -# Run GPIO test -print("@)}---^----- GPIO TEST -----^---{(@") -print() -result = gpio_test.run_test(pins) -test_results["GPIO Test"] = result[0] -pins_tested.append(result[1]) -print() -print(result[0]) -print() - -# Run voltage monitor test -print("@)}---^----- VOLTAGE MONITOR TEST -----^---{(@") -print() -result = voltage_monitor_test.run_test(pins) -test_results["Voltage Monitor Test"] = result[0] -pins_tested.append(result[1]) -print() -print(result[0]) -print() - -# Run UART test -print("@)}---^----- UART TEST -----^---{(@") -print() -result = uart_test.run_test(pins, UART_TX_PIN_NAME, UART_RX_PIN_NAME, UART_BAUD_RATE) -test_results["UART Test"] = result[0] -pins_tested.append(result[1]) -print() -print(result[0]) -print() - -# Run SPI test -print("@)}---^----- SPI TEST -----^---{(@") -print() -result = spi_test.run_test( pins, - mosi_pin=SPI_MOSI_PIN_NAME, - miso_pin=SPI_MISO_PIN_NAME, - sck_pin=SPI_SCK_PIN_NAME, - cs_pin=SPI_CS_PIN_NAME) -test_results["SPI Test"] = result[0] -pins_tested.append(result[1]) -print() -print(result[0]) -print() - -# Run I2C test -print("@)}---^----- I2C TEST -----^---{(@") -print() -result = i2c_test.run_test(pins, sda_pin=I2C_SDA_PIN_NAME, scl_pin=I2C_SCL_PIN_NAME) -test_results["I2C Test"] = result[0] -pins_tested.append(result[1]) -print() -print(result[0]) -print() - -# Print out test results -print("@)}---^----- TEST RESULTS -----^---{(@") -print() - -# Find appropriate spaces for printing test results -num_spaces = 0 -for key in test_results: - if len(key) > num_spaces: - num_spaces = len(key) - -# Print test results -for key in test_results: - print(key + ":", end=' ') - for i in range(num_spaces - len(key)): - print(end=' ') - print(test_results[key]) -print() - -# Figure out which pins were tested and not tested -tested = [] -for sublist in pins_tested: - for p in sublist: - tested.append(p) -not_tested = list(set(pins).difference(set(tested))) - -# Print tested pins -print("The following pins were tested:", end=' ') -for p in tested: - print(p, end=' ') -print('\n') - -# Print pins not tested -print("The following pins were NOT tested:", end=' ') -for p in not_tested: - print(p, end=' ') -print('\n') \ No newline at end of file diff --git a/tests/board_test_suite/source/gpio_test.py b/tests/board_test_suite/source/gpio_test.py deleted file mode 100644 index eb88a1d2e0..0000000000 --- a/tests/board_test_suite/source/gpio_test.py +++ /dev/null @@ -1,154 +0,0 @@ -# The MIT License (MIT) -# -# Copyright (c) 2018 Shawn Hymel for Adafruit Industries -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. -""" -`gpio_test` -==================================================== -GPIO Test Module - -* Author(s): Shawn Hymel -* Date: December 8, 2018 - -Implementation Notes --------------------- -Toggles all available GPIO on a board. Verify their operation with an LED, -multimeter, another microcontroller, etc. - -Run this script as its own main.py to individually run the test, or compile -with mpy-cross and call from separate test script. -""" - -import board -import digitalio -import supervisor -import time - -# Constants -LED_ON_DELAY_TIME = 0.2 # Seconds -LED_OFF_DELAY_TIME = 0.2 # Seconds -LED_PIN_NAMES = ['L', 'LED', 'RED_LED', 'GREEN_LED', 'BLUE_LED'] - -# Test result strings -PASS = "PASS" -FAIL = "FAIL" -NA = "N/A" - -# Determine if given value is a number -def _is_number(s): - try: - float(s) - return True - except ValueError: - return False - -# Release pins -def _deinit_pins(gpios): - for g in gpios: - g.deinit() - -# Toggle IO pins while waiting for answer -def _toggle_wait(gpios): - - global test_results - - timestamp = time.monotonic() - led_state = False - print("Are the pins listed above toggling? [y/n]") - while True: - if led_state: - if time.monotonic() > timestamp + LED_ON_DELAY_TIME: - led_state = False - timestamp = time.monotonic() - else: - if time.monotonic() > timestamp + LED_OFF_DELAY_TIME: - led_state = True - timestamp = time.monotonic() - for gpio in gpios: - gpio.value = led_state - if supervisor.runtime.serial_bytes_available: - answer = input() - if answer == 'y': - return True - else: - return False - break - -def run_test(pins): - - # Create a list of analog GPIO pins - analog_pins = [p for p in pins if p[0] == 'A' and _is_number(p[1])] - - # Create a list of digital GPIO - digital_pins = [p for p in pins if p[0] == 'D' and _is_number(p[1])] - - # Toggle LEDs if we find any - gpio_pins = analog_pins + digital_pins - if gpio_pins: - - # Create a list of IO objects for us to toggle - gpios = [digitalio.DigitalInOut(getattr(board, p)) for p in gpio_pins] - - # Print out the LEDs found - print("GPIO pins found:", end=' ') - for p in gpio_pins: - print(p, end=' ') - print('\n') - - # Set all IO to output - for gpio in gpios: - gpio.direction = digitalio.Direction.OUTPUT - - # Toggle pins while waiting for user to verify LEDs blinking - result = _toggle_wait(gpios) - - # Release pins - _deinit_pins(gpios) - - if result: - return PASS, gpio_pins - else: - return FAIL, gpio_pins - - else: - print("No GPIO pins found") - return NA, [] - -def _main(): - - # List out all the pins available to us - pins = [p for p in dir(board)] - print() - print("All pins found:", end=' ') - - # Print pins - for p in pins: - print(p, end=' ') - print('\n') - - # Run test - result = run_test(pins) - print() - print(result[0]) - print("Pins tested: " + str(result[1])) - -# Execute only if run as main.py or code.py -if __name__ == "__main__": - _main() \ No newline at end of file diff --git a/tests/board_test_suite/source/i2c_test.py b/tests/board_test_suite/source/i2c_test.py deleted file mode 100644 index ef8d5f07f0..0000000000 --- a/tests/board_test_suite/source/i2c_test.py +++ /dev/null @@ -1,191 +0,0 @@ -# The MIT License (MIT) -# -# Copyright (c) 2018 Shawn Hymel for Adafruit Industries -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. -""" -`i2c_test` -==================================================== -I2C Test Module - -* Author(s): Shawn Hymel -* Date: December 8, 2018 - -Implementation Notes --------------------- -Performs random writes and reads to I2C EEPROM. - -Requires Microchip AT24HC04B I2C EEPROM. - -Run this script as its own main.py to individually run the test, or compile -with mpy-cross and call from separate test script. -""" - -import board -import busio -import random -import time - -# Constants -SDA_PIN_NAME = 'SDA' -SCL_PIN_NAME = 'SCL' -NUM_I2C_TESTS = 10 # Number of times to write and read EEPROM values -EEPROM_I2C_MAX_ADDR = 255 # Self-imposed max memory address - -# Microchip AT24HC04B EEPROM I2C address -EEPROM_I2C_ADDR = 0x50 - -# Test result strings -PASS = "PASS" -FAIL = "FAIL" -NA = "N/A" - -# Open comms to I2C EEPROM by trying a write to memory address -def _eeprom_i2c_wait(i2c, i2c_addr, mem_addr, timeout = 1.0): - - # Try to access the I2C EEPROM (it becomes unresonsive during a write) - timestamp = time.monotonic() - while time.monotonic() < timestamp + timeout: - try: - i2c.writeto(i2c_addr, bytearray([mem_addr]), end=1, stop=False) - return True - except: - pass - - return False - -# Write to address. Returns status (True for successful write, False otherwise) -def _eeprom_i2c_write_byte(i2c, i2c_addr, mem_addr, mem_data, timeout = 1.0): - - # Make sure address is only one byte: - if mem_addr > 255: - return False - - # Make sure data is only one byte: - if mem_data > 255: - return False - - # Write data to memory at given address - try: - i2c.writeto(i2c_addr, bytearray([mem_addr, mem_data])) - except: - return False - - return True - -# Read from address. Returns tuple [status, result] -def _eeprom_i2c_read_byte(i2c, i2c_addr, mem_addr, timeout = 1.0): - - # Make sure address is only one byte: - if mem_addr > 255: - return False, bytearray() - - # Try writing to address (EEPROM is unresponsive while writing) - if _eeprom_i2c_wait(i2c, i2c_addr, mem_addr, timeout) == False: - return False, bytearray() - - # Finish the read - buf = bytearray(1) - i2c.readfrom_into(i2c_addr, buf) - - return True, buf - -def run_test(pins, sda_pin=SDA_PIN_NAME, scl_pin=SCL_PIN_NAME): - - # Write values to I2C EEPROM and verify the values match - if list(set(pins).intersection(set([sda_pin, scl_pin]))): - - # Tell user to connect EEPROM chip - print("Connect a Microchip AT24HC04B EEPROM I2C chip. " + - "Press enter to continue.") - input() - - # Set up I2C - i2c = busio.I2C(getattr(board, scl_pin), getattr(board, sda_pin)) - - # Wait for I2C lock - while not i2c.try_lock(): - pass - - # Pick a random address, write to it, read from it, and see if they match - pass_test = True - for i in range(NUM_I2C_TESTS): - - # Randomly pick an address and a data value (one byte) - mem_addr = random.randint(0, EEPROM_I2C_MAX_ADDR) - mem_data = random.randint(0, 255) - print("Address:\t" + hex(mem_addr)) - print("Writing:\t" + hex(mem_data)) - - # Try writing this random value to the random address - result = _eeprom_i2c_write_byte(i2c, EEPROM_I2C_ADDR, mem_addr, mem_data) - if result == False: - print("FAIL: I2C could not communicate") - pass_test = False - break - - # Try reading the written value back from EEPROM - result = _eeprom_i2c_read_byte(i2c, EEPROM_I2C_ADDR, mem_addr) - print("Read:\t\t" + hex(result[1][0])) - print() - if result[0] == False: - print("FAIL: I2C could not communicate") - pass_test = False - break - - # Compare the read value to the original value - if result[1][0] != mem_data: - print("FAIL: Data does not match") - pass_test = False - break - - # Release I2C pins - i2c.deinit() - - # Store results - if pass_test: - return PASS, [sda_pin, scl_pin] - else: - return FAIL, [sda_pin, scl_pin] - - else: - print("No I2C pins found") - return NA, [] - -def _main(): - - # List out all the pins available to us - pins = [p for p in dir(board)] - print() - print("All pins found:", end=' ') - - # Print pins - for p in pins: - print(p, end=' ') - print('\n') - - # Run test - result = run_test(pins) - print() - print(result[0]) - print("Pins tested: " + str(result[1])) - -# Execute only if run as main.py or code.py -if __name__ == "__main__": - _main() \ No newline at end of file diff --git a/tests/board_test_suite/source/led_test.py b/tests/board_test_suite/source/led_test.py deleted file mode 100644 index 57e7b8b6c2..0000000000 --- a/tests/board_test_suite/source/led_test.py +++ /dev/null @@ -1,142 +0,0 @@ -# The MIT License (MIT) -# -# Copyright (c) 2018 Shawn Hymel for Adafruit Industries -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. -""" -`led_test` -==================================================== -LED Test Module - -* Author(s): Shawn Hymel -* Date: December 8, 2018 - -Implementation Notes --------------------- -Toggles all available onboard LEDs. You will need to manually verify their -operation by watching them. - -Run this script as its own main.py to individually run the test, or compile -with mpy-cross and call from separate test script. -""" - -import board -import digitalio -import supervisor -import time - -# Constants -LED_ON_DELAY_TIME = 0.2 # Seconds -LED_OFF_DELAY_TIME = 0.2 # Seconds -LED_PIN_NAMES = ['L', 'LED', 'RED_LED', 'GREEN_LED', 'BLUE_LED'] - -# Test result strings -PASS = "PASS" -FAIL = "FAIL" -NA = "N/A" - -# Release pins -def _deinit_pins(gpios): - for g in gpios: - g.deinit() - -# Toggle IO pins while waiting for answer -def _toggle_wait(gpios): - - global test_results - - timestamp = time.monotonic() - led_state = False - print("Are the pins listed above toggling? [y/n]") - while True: - if led_state: - if time.monotonic() > timestamp + LED_ON_DELAY_TIME: - led_state = False - timestamp = time.monotonic() - else: - if time.monotonic() > timestamp + LED_OFF_DELAY_TIME: - led_state = True - timestamp = time.monotonic() - for gpio in gpios: - gpio.value = led_state - if supervisor.runtime.serial_bytes_available: - answer = input() - if answer == 'y': - return True - else: - return False - break - -def run_test(pins): - - # Look for pins with LED names - led_pins = list(set(pins).intersection(set(LED_PIN_NAMES))) - - # Toggle LEDs if we find any - if led_pins: - - # Print out the LEDs found - print("LEDs found:", end=' ') - for p in led_pins: - print(p, end=' ') - print('\n') - - # Create a list of IO objects for us to toggle - leds = [digitalio.DigitalInOut(getattr(board, p)) for p in led_pins] - - # Set all LEDs to output - for led in leds: - led.direction = digitalio.Direction.OUTPUT - - # Blink LEDs and wait for user to verify test - result = _toggle_wait(leds) - - # Release pins - _deinit_pins(leds) - - if result: - return PASS, led_pins - else: - return FAIL, led_pins - - else: - print("No LED pins found") - return NA, [] - -def _main(): - - # List out all the pins available to us - pins = [p for p in dir(board)] - print() - print("All pins found:", end=' ') - - # Print pins - for p in pins: - print(p, end=' ') - print('\n') - - # Run test - result = run_test(pins) - print() - print(result[0]) - print("Pins tested: " + str(result[1])) - -# Execute only if run as main.py or code.py -if __name__ == "__main__": - _main() \ No newline at end of file diff --git a/tests/board_test_suite/source/sd_cd_test.py b/tests/board_test_suite/source/sd_cd_test.py deleted file mode 100644 index cee1fd7ba2..0000000000 --- a/tests/board_test_suite/source/sd_cd_test.py +++ /dev/null @@ -1,110 +0,0 @@ -# The MIT License (MIT) -# -# Copyright (c) 2018 Shawn Hymel for Adafruit Industries -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. -""" -`sd_cd_test` -==================================================== -SD CD Test Module - -* Author(s): Shawn Hymel -* Date: December 8, 2018 - -Implementation Notes --------------------- -Reports the output of an SD card's chip detect (CD) pin. - -Requires SD card. - -Run this script as its own main.py to individually run the test, or compile -with mpy-cross and call from separate test script. -""" - -import board -import digitalio - -# Constants -SD_CD_PIN_NAME = 'SD_CD' - -# Test result strings -PASS = "PASS" -FAIL = "FAIL" -NA = "N/A" - -def run_test(pins, cd_pin=SD_CD_PIN_NAME): - - # Ask user to insert and remove SD card - if list(set(pins).intersection(set([cd_pin]))): - - # Configure CD pin as input with pullup - cd = digitalio.DigitalInOut(getattr(board, cd_pin)) - cd.direction = digitalio.Direction.INPUT - cd.pull = digitalio.Pull.UP - - # Tell user to insert SD card - print("Connect " + cd_pin + " to CD pin on SD card holder.") - print("Insert SD card into holder.") - print("Press enter to continue.") - input() - - # Make sure we see that the pin is low - if cd.value == True: - print("Error: Card not detected") - return FAIL, [cd_pin] - - # Tell user to remove SD card - print("Card detected. Remove card and press enter to continue.") - input() - - # Make sure we see that the pin is high - if cd.value == False: - print("Error: Card detected") - return FAIL, [cd_pin] - - # Test passed - print("Card removed") - return PASS, [cd_pin] - - else: - print("No CD pin found") - return NA, [] - - -def _main(): - - # List out all the pins available to us - pins = [p for p in dir(board)] - print() - print("All pins found:", end=' ') - - # Print pins - for p in pins: - print(p, end=' ') - print('\n') - - # Run test - result = run_test(pins) - print() - print(result[0]) - print("Pins tested: " + str(result[1])) - -# Execute only if run as main.py or code.py -if __name__ == "__main__": - _main() \ No newline at end of file diff --git a/tests/board_test_suite/source/sd_test.py b/tests/board_test_suite/source/sd_test.py deleted file mode 100644 index 47f4510f7c..0000000000 --- a/tests/board_test_suite/source/sd_test.py +++ /dev/null @@ -1,157 +0,0 @@ -# The MIT License (MIT) -# -# Copyright (c) 2018 Shawn Hymel for Adafruit Industries -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. -""" -`sd_test` -==================================================== -SD Test Module - -* Author(s): Shawn Hymel -* Date: December 8, 2018 - -Implementation Notes --------------------- -Performs random writes and reads to SD card over SPI. - -Requires SD card. - -Requires adafruit_sdcard.mpy and adafruit_bus_device modules. - -Run this script as its own main.py to individually run the test, or compile -with mpy-cross and call from separate test script. -""" - -import adafruit_sdcard -import board -import busio -import digitalio -import storage -import random - -# Constants -MOSI_PIN_NAME = 'SD_MOSI' -MISO_PIN_NAME = 'SD_MISO' -SCK_PIN_NAME = 'SD_SCK' -CS_PIN_NAME = 'SD_CS' -FILENAME = "test.txt" # File that will be written to -BAUD_RATE = 100000 # Bits per second -NUM_UART_BYTES = 40 # Number of bytes to transmit over UART -ASCII_MIN = 0x21 # '!' Lowest ASCII char in random range (inclusive) -ASCII_MAX = 0x7E # '~' Highest ASCII char in random range (inclusive) - -# Test result strings -PASS = "PASS" -FAIL = "FAIL" -NA = "N/A" - -def run_test( pins, - mosi_pin=MOSI_PIN_NAME, - miso_pin=MISO_PIN_NAME, - sck_pin=SCK_PIN_NAME, - cs_pin=CS_PIN_NAME, - filename=FILENAME): - - # Write characters to file on SD card and verify they were written - if list(set(pins).intersection(set([mosi_pin, miso_pin, sck_pin]))): - - # Tell user to connect SD card - print("Insert SD card into holder and connect SPI lines to holder.") - print("Connect " + cs_pin + " to the CS (CD/DAT3) pin on the SD " + - "card holder.") - print("WARNING: " + filename + " will be created or overwritten.") - print("Press enter to continue.") - input() - - # Configure CS pin - cs = digitalio.DigitalInOut(getattr(board, cs_pin)) - cs.direction = digitalio.Direction.OUTPUT - cs.value = True - - # Set up SPI - spi = busio.SPI(getattr(board, sck_pin), - MOSI=getattr(board, mosi_pin), - MISO=getattr(board, miso_pin)) - - # Try to connect to the card and mount the filesystem - try: - sdcard = adafruit_sdcard.SDCard(spi, cs) - vfs = storage.VfsFat(sdcard) - storage.mount(vfs, "/sd") - except: - print("Could not mount SD card") - return FAIL, [mosi_pin, miso_pin, sck_pin] - - # Generate test string - test_str = "" - for i in range(NUM_UART_BYTES): - test_str += chr(random.randint(ASCII_MIN, ASCII_MAX)) - - # Write test string to a text file on the card - try: - with open("/sd/" + filename, "w") as f: - print("Writing:\t" + test_str) - f.write(test_str) - except: - print("Could not write to SD card") - return FAIL, [mosi_pin, miso_pin, sck_pin] - - # Read from test file on the card - read_str = "" - try: - with open("/sd/" + filename, "r") as f: - lines = f.readlines() - for line in lines: - read_str += line - print("Read:\t\t" + read_str) - except: - print("Could not read from SD card") - return FAIL, [mosi_pin, miso_pin, sck_pin] - - # Release SPI - spi.deinit() - - # Compare strings - if read_str == test_str: - return PASS, [mosi_pin, miso_pin, sck_pin] - else: - return FAIL, [mosi_pin, miso_pin, sck_pin] - -def _main(): - - # List out all the pins available to us - pins = [p for p in dir(board)] - print() - print("All pins found:", end=' ') - - # Print pins - for p in pins: - print(p, end=' ') - print('\n') - - # Run test - result = run_test(pins) - print() - print(result[0]) - print("Pins tested: " + str(result[1])) - -# Execute only if run as main.py or code.py -if __name__ == "__main__": - _main() \ No newline at end of file diff --git a/tests/board_test_suite/source/spi_test.py b/tests/board_test_suite/source/spi_test.py deleted file mode 100644 index 9d508af9c8..0000000000 --- a/tests/board_test_suite/source/spi_test.py +++ /dev/null @@ -1,232 +0,0 @@ -# The MIT License (MIT) -# -# Copyright (c) 2018 Shawn Hymel for Adafruit Industries -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. -""" -`spi_test` -==================================================== -SPI Test Module - -* Author(s): Shawn Hymel -* Date: December 8, 2018 - -Implementation Notes --------------------- -Performs random writes and reads to SPI EEPROM. - -Requires Microchip 25AA040A SPI EEPROM. - -Run this script as its own main.py to individually run the test, or compile -with mpy-cross and call from separate test script. -""" - -import board -import digitalio -import busio -import random -import time - -# Constants -MOSI_PIN_NAME = 'MOSI' -MISO_PIN_NAME = 'MISO' -SCK_PIN_NAME = 'SCK' -CS_PIN_NAME = 'D2' -BAUD_RATE = 100000 # Bits per second -NUM_SPI_TESTS = 10 # Number of times to write and read EEPROM values - -# Microchip 25AA040A EEPROM SPI commands and bits -EEPROM_SPI_WRSR = 0x01 -EEPROM_SPI_WRITE = 0x02 -EEPROM_SPI_READ = 0x03 -EEPROM_SPI_WRDI = 0x04 -EEPROM_SPI_RDSR = 0x05 -EEPROM_SPI_WREN = 0x06 -EEPROM_SPI_WIP_BIT = 0 -EEPROM_SPI_MAX_ADDR = 255 # Self-imposed max memory address -EEPROM_I2C_MAX_ADDR = 255 # Self-imposed max memory address - -# Test result strings -PASS = "PASS" -FAIL = "FAIL" -NA = "N/A" - -# Wait for WIP bit to go low -def _eeprom_spi_wait(spi, cs, timeout = 1.0): - - # Continually read from STATUS register - timestamp = time.monotonic() - while time.monotonic() < timestamp + timeout: - - # Perfrom RDSR operation - cs.value = False - result = bytearray(1) - spi.write(bytearray([EEPROM_SPI_RDSR])) - spi.readinto(result) - cs.value = True - - # Mask out and compare WIP bit - if (result[0] & (1 << EEPROM_SPI_WIP_BIT)) == 0: - return True - - return False - -# Write to address. Returns status (True for successful write, False otherwise) -def _eeprom_spi_write_byte(spi, cs, address, data, timeout = 1.0): - - # Make sure address is only one byte: - if address > 255: - return False - - # Make sure data is only one byte: - if data > 255: - return False - - # Wait for WIP to be low - if _eeprom_spi_wait(spi, cs, timeout) == False: - return False - - # Enable writing - cs.value = False - spi.write(bytearray([EEPROM_SPI_WREN])) - cs.value = True - - # Write to address - cs.value = False - spi.write(bytearray([EEPROM_SPI_WRITE, address, data])) - cs.value = True - - return True - -# Read from address. Returns tuple [status, result] -def _eeprom_spi_read_byte(spi, cs, address, timeout = 1.0): - - # Make sure address is only one byte: - if address > 255: - return False, bytearray() - - # Wait for WIP to be low - if _eeprom_spi_wait(spi, cs, timeout) == False: - return False, bytearray() - - # Read byte from address - cs.value = False - result = bytearray(1) - spi.write(bytearray([EEPROM_SPI_READ, address])) - spi.readinto(result) - cs.value = True - - return True, result - -def run_test( pins, - mosi_pin=MOSI_PIN_NAME, - miso_pin=MISO_PIN_NAME, - sck_pin=SCK_PIN_NAME, - cs_pin=CS_PIN_NAME): - - # Write values to SPI EEPROM and verify the values match - if list(set(pins).intersection(set([mosi_pin, miso_pin, sck_pin]))): - - # Tell user to connect EEPROM chip - print("Connect a Microchip 25AA040A EEPROM SPI chip.") - print("Connect " + cs_pin + " to the CS pin on the 25AA040.") - print("Press enter to continue.") - input() - - # Configure CS pin - cs = digitalio.DigitalInOut(getattr(board, cs_pin)) - cs.direction = digitalio.Direction.OUTPUT - cs.value = True - - # Set up SPI - spi = busio.SPI(getattr(board, sck_pin), - MOSI=getattr(board, mosi_pin), - MISO=getattr(board, miso_pin)) - - # Wait for SPI lock - while not spi.try_lock(): - pass - spi.configure(baudrate=BAUD_RATE, phase=0, polarity=0) - - # Pick a random address, write to it, read from it, and see if they match - pass_test = True - for i in range(NUM_SPI_TESTS): - - # Randomly pick an address and a data value (one byte) - mem_addr = random.randint(0, EEPROM_SPI_MAX_ADDR) - mem_data = random.randint(0, 255) - print("Address:\t" + hex(mem_addr)) - print("Writing:\t" + hex(mem_data)) - - # Try writing this random value to the random address - result = _eeprom_spi_write_byte(spi, cs, mem_addr, mem_data) - if result == False: - print("FAIL: SPI could not communicate") - pass_test = False - break - - # Try reading the written value back from EEPRom - result = _eeprom_spi_read_byte(spi, cs, mem_addr) - print("Read:\t\t" + hex(result[1][0])) - print() - if result[0] == False: - print("FAIL: SPI could not communicate") - pass_test = False - break - - # Compare the read value to the original value - if result[1][0] != mem_data: - print("FAIL: Data does not match") - pass_test = False - break - - # Release SPI pins - spi.deinit() - - # Return results - if pass_test: - return PASS, [mosi_pin, miso_pin, sck_pin] - else: - return FAIL, [mosi_pin, miso_pin, sck_pin] - - else: - print("No SPI pins found") - return NA, [] - -def _main(): - - # List out all the pins available to us - pins = [p for p in dir(board)] - print() - print("All pins found:", end=' ') - - # Print pins - for p in pins: - print(p, end=' ') - print('\n') - - # Run test - result = run_test(pins) - print() - print(result[0]) - print("Pins tested: " + str(result[1])) - -# Execute only if run as main.py or code.py -if __name__ == "__main__": - _main() \ No newline at end of file diff --git a/tests/board_test_suite/source/uart_test.py b/tests/board_test_suite/source/uart_test.py deleted file mode 100644 index 1478a37386..0000000000 --- a/tests/board_test_suite/source/uart_test.py +++ /dev/null @@ -1,121 +0,0 @@ -# The MIT License (MIT) -# -# Copyright (c) 2018 Shawn Hymel for Adafruit Industries -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. -""" -`uart_test` -==================================================== -UART Test Module - -* Author(s): Shawn Hymel -* Date: December 8, 2018 - -Implementation Notes --------------------- -Performs random writes and reads across UART. - -You will need to connect a loopback wire from TX to RX on your board. - -Run this script as its own main.py to individually run the test, or compile -with mpy-cross and call from separate test script. -""" - -import board -import busio -import random - -# Constants -TX_PIN_NAME = 'TX' -RX_PIN_NAME = 'RX' -BAUD_RATE = 9600 -NUM_UART_BYTES = 40 # Number of bytes to transmit over UART -ASCII_MIN = 0x21 # '!' Lowest ASCII char in random range (inclusive) -ASCII_MAX = 0x7E # '~' Highest ASCII char in random range (inclusive) - -# Test result strings -PASS = "PASS" -FAIL = "FAIL" -NA = "N/A" - -def run_test(pins, tx_pin=TX_PIN_NAME, rx_pin=RX_PIN_NAME, baud_rate=BAUD_RATE): - - # Echo some values over the UART - if list(set(pins).intersection(set([tx_pin, rx_pin]))): - - # Tell user to create loopback connection - print("Connect a wire from TX to RX. Press enter to continue.") - input() - - # Initialize UART - uart = busio.UART(getattr(board, tx_pin), - getattr(board, rx_pin), - baudrate=baud_rate) - uart.reset_input_buffer() - - # Generate test string - test_str = "" - for i in range(NUM_UART_BYTES): - test_str += chr(random.randint(ASCII_MIN, ASCII_MAX)) - - # Transmit test string - uart.write(test_str) - print("Transmitting:\t" + test_str) - - # Wait for received string - data = uart.read(len(test_str)) - recv_str = '' - if data is not None: - recv_str = ''.join([chr(b) for b in data]) - print("Received:\t" + recv_str) - - # Release UART pins - uart.deinit() - - # Compare strings - if recv_str == test_str: - return PASS, [tx_pin, rx_pin] - else: - return FAIL, [tx_pin, rx_pin] - - else: - print("No UART pins found") - return NA, [] - -def _main(): - - # List out all the pins available to us - pins = [p for p in dir(board)] - print() - print("All pins found:", end=' ') - - # Print pins - for p in pins: - print(p, end=' ') - print('\n') - - # Run test - result = run_test(pins) - print() - print(result[0]) - print("Pins tested: " + str(result[1])) - -# Execute only if run as main.py or code.py -if __name__ == "__main__": - _main() \ No newline at end of file diff --git a/tests/board_test_suite/source/voltage_monitor_test.py b/tests/board_test_suite/source/voltage_monitor_test.py deleted file mode 100644 index 8cc742cf25..0000000000 --- a/tests/board_test_suite/source/voltage_monitor_test.py +++ /dev/null @@ -1,111 +0,0 @@ -# The MIT License (MIT) -# -# Copyright (c) 2018 Shawn Hymel for Adafruit Industries -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. -""" -`voltage_monitor_test` -==================================================== -Voltage Monitor Test Module - -* Author(s): Shawn Hymel -* Date: December 8, 2018 - -Implementation Notes --------------------- -Prints out the measured voltage on any onboard voltage/battery monitor pins. -Note that these pins sometimes have an onboard voltage divider to decrease -the voltage. - -Requires multimeter - -Run this script as its own main.py to individually run the test, or compile -with mpy-cross and call from separate test script. -""" - -import board -import analogio - -# Constants -VOLTAGE_MONITOR_PIN_NAMES = ['VOLTAGE_MONITOR', 'BATTERY'] -ANALOG_REF = 3.3 # Reference analog voltage -ANALOGIN_BITS = 16 # ADC resolution (bits) for CircuitPython - -# Test result strings -PASS = "PASS" -FAIL = "FAIL" -NA = "N/A" - -def run_test(pins): - - # Look for pins with battery monitoring names - monitor_pins = list(set(pins).intersection(set(VOLTAGE_MONITOR_PIN_NAMES))) - - # Print out voltage found on these pins - if monitor_pins: - - # Print out the monitor pins found - print("Voltage monitor pins found:", end=' ') - for p in monitor_pins: - print(p, end=' ') - print('\n') - - # Print out the voltage found on each pin - for p in monitor_pins: - monitor = analogio.AnalogIn(getattr(board, p)) - voltage = (monitor.value * ANALOG_REF) / (2**ANALOGIN_BITS) - print(p + ": {:.2f}".format(voltage) + " V") - monitor.deinit() - print() - - # Ask the user to check these voltages - print("Use a multimeter to verify these voltages.") - print("Note that some battery monitor pins might have onboard " + - "voltage dividers.") - print("Do the values look reasonable? [y/n]") - if input() == 'y': - return PASS, monitor_pins - else: - return FAIL, monitor_pins - - else: - print("No battery monitor pins found") - return NA, [] - -def _main(): - - # List out all the pins available to us - pins = [p for p in dir(board)] - print() - print("All pins found:", end=' ') - - # Print pins - for p in pins: - print(p, end=' ') - print('\n') - - # Run test - result = run_test(pins) - print() - print(result[0]) - print("Pins tested: " + str(result[1])) - -# Execute only if run as main.py or code.py -if __name__ == "__main__": - _main() \ No newline at end of file From b1c882a26b171352a5ee653c4889f41731d41ba7 Mon Sep 17 00:00:00 2001 From: Scott Shawcroft Date: Tue, 11 Dec 2018 11:51:07 -0800 Subject: [PATCH 28/33] Default nrf boards to UF2 --- tools/build_board_info.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/tools/build_board_info.py b/tools/build_board_info.py index eb9f28d901..379cf55c4d 100644 --- a/tools/build_board_info.py +++ b/tools/build_board_info.py @@ -21,24 +21,29 @@ HEX = ('hex',) # Default extensions extension_by_port = { - "nrf": BIN, + "nrf": UF2, "esp8266": BIN, "atmel-samd": UF2, } # Per board overrides extension_by_board = { - "feather_nrf52832": BIN, + # samd "arduino_mkr1300": BIN, "arduino_zero": BIN, "feather_m0_adalogger": BIN_UF2, "feather_m0_basic": BIN_UF2, "feather_m0_rfm69": BIN, "feather_m0_rfm9x": BIN, + + # nrf52832 + "feather_nrf52832": BIN, + "pca10040": BIN, + + # nRF52840 dev kits that may not have UF2 bootloaders, "makerdiary_nrf52840_mdk": HEX, - "particle_argon": UF2, - "particle_boron": UF2, - "particle_xenon": UF2 + "pca10056": BIN_UF2, + "pca10059": BIN_UF2 } def get_languages(): From 29f9794dcfeea9fb572d51751cdfdb37c9ac9afc Mon Sep 17 00:00:00 2001 From: Scott Shawcroft Date: Tue, 11 Dec 2018 11:57:52 -0800 Subject: [PATCH 29/33] Curly brace change to make it more consistent And to queue Travis --- ports/atmel-samd/boards/arduino_mkrzero/board.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ports/atmel-samd/boards/arduino_mkrzero/board.c b/ports/atmel-samd/boards/arduino_mkrzero/board.c index 770bc82593..0f60736a24 100644 --- a/ports/atmel-samd/boards/arduino_mkrzero/board.c +++ b/ports/atmel-samd/boards/arduino_mkrzero/board.c @@ -28,8 +28,7 @@ #include "mpconfigboard.h" #include "hal/include/hal_gpio.h" -void board_init(void) -{ +void board_init(void) { } bool board_requests_safe_mode(void) { From 1361391ed9e8cfbb8b4198117adf3d1d7d35fb31 Mon Sep 17 00:00:00 2001 From: TG-Techie <39284876+TG-Techie@users.noreply.github.com> Date: Wed, 12 Dec 2018 08:51:16 -0500 Subject: [PATCH 30/33] the logo dir's contents don't match readme description --- README.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.rst b/README.rst index ca529de627..4fe979e490 100644 --- a/README.rst +++ b/README.rst @@ -209,7 +209,7 @@ amongst ports including CircuitPython: - ``extmod`` Shared C code used in multiple ports' modules. - ``lib`` Shared core C code including externally developed libraries such as FATFS. -- ``logo`` The MicroPython logo. +- ``logo`` The CircuitPython logo. - ``mpy-cross`` A cross compiler that converts Python files to byte code prior to being run in MicroPython. Useful for reducing library size. From 87073b4fbed938c92b0dfeb70c38fc5f94d1d7c6 Mon Sep 17 00:00:00 2001 From: Dan Halbert Date: Wed, 12 Dec 2018 11:58:46 -0500 Subject: [PATCH 31/33] Update badge to travis-ci.com --- README.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.rst b/README.rst index ca529de627..a7516778e8 100644 --- a/README.rst +++ b/README.rst @@ -68,7 +68,7 @@ Other ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - `Electronic Cats Meow Meow `__ -- `Electronic Cats CatWAN USB Stick `__ +- `Electronic Cats CatWAN USB Stick `__ Download -------- @@ -264,7 +264,7 @@ project. `⬆ back to top <#adafruit-circuitpython>`__ -.. |Build Status| image:: https://travis-ci.org/adafruit/circuitpython.svg?branch=master +.. |Build Status| image:: https://travis-ci.com/adafruit/circuitpython.svg?branch=master :target: https://travis-ci.org/adafruit/circuitpython .. |Doc Status| image:: https://readthedocs.org/projects/circuitpython/badge/?version=latest :target: http://circuitpython.readthedocs.io/ From e136222ae23b4a504838f2b413ba29865a73227c Mon Sep 17 00:00:00 2001 From: hathach Date: Thu, 13 Dec 2018 23:48:53 +0700 Subject: [PATCH 32/33] use rbuf for busio uart --- ports/nrf/common-hal/busio/UART.c | 110 ++++++++++++++++-------------- ports/nrf/common-hal/busio/UART.h | 5 +- 2 files changed, 61 insertions(+), 54 deletions(-) diff --git a/ports/nrf/common-hal/busio/UART.c b/ports/nrf/common-hal/busio/UART.c index 70641bd79b..294957fd30 100644 --- a/ports/nrf/common-hal/busio/UART.c +++ b/ports/nrf/common-hal/busio/UART.c @@ -52,21 +52,40 @@ static uint32_t get_nrf_baud (uint32_t baudrate); +static uint16_t ringbuf_count(ringbuf_t *r) +{ + volatile int count = r->iput - r->iget; + if ( count < 0 ) { + count += r->size; + } + + return (uint16_t) count; +} + +static void ringbuf_clear(ringbuf_t *r) +{ + r->iput = r->iget = 0; +} + static void uart_callback_irq (const nrfx_uarte_event_t * event, void * context) { busio_uart_obj_t* self = (busio_uart_obj_t*) context; switch ( event->type ) { case NRFX_UARTE_EVT_RX_DONE: - self->rx_count = event->data.rxtx.bytes; + for(uint8_t i=0; i < event->data.rxtx.bytes; i++) { + ringbuf_put(&self->rbuf, event->data.rxtx.p_data[i]); + } + + // keep receiving + _VERIFY_ERR(nrfx_uarte_rx(&self->uarte, &self->rx_char, 1)); break; case NRFX_UARTE_EVT_TX_DONE: + // nothing to do break; case NRFX_UARTE_EVT_ERROR: - if ( self->rx_count == -1 ) { - self->rx_count = 0; - } + // Handle error break; default: @@ -110,12 +129,15 @@ void common_hal_busio_uart_construct (busio_uart_obj_t *self, // Init buffer for rx if ( rx != mp_const_none ) { - self->buffer = (uint8_t *) gc_alloc(receiver_buffer_size, false, false); - if ( !self->buffer ) { + self->rbuf.buf = (uint8_t *) gc_alloc(receiver_buffer_size, false, false); + + if ( !self->rbuf.buf ) { nrfx_uarte_uninit(&self->uarte); mp_raise_msg(&mp_type_MemoryError, translate("Failed to allocate RX buffer")); } - self->bufsize = receiver_buffer_size; + + self->rbuf.size = receiver_buffer_size; + self->rbuf.iget = self->rbuf.iput = 0; self->rx_pin_number = rx->number; claim_pin(rx); @@ -131,9 +153,8 @@ void common_hal_busio_uart_construct (busio_uart_obj_t *self, self->baudrate = baudrate; self->timeout_ms = timeout * 1000; - // queue 1-byte transfer for rx_characters_available() - self->rx_count = -1; - _VERIFY_ERR(nrfx_uarte_rx(&self->uarte, self->buffer, 1)); + // Initial wait for incoming byte + _VERIFY_ERR(nrfx_uarte_rx(&self->uarte, &self->rx_char, 1)); } bool common_hal_busio_uart_deinited(busio_uart_obj_t *self) { @@ -147,7 +168,10 @@ void common_hal_busio_uart_deinit(busio_uart_obj_t *self) { reset_pin_number(self->rx_pin_number); self->tx_pin_number = NO_PIN; self->rx_pin_number = NO_PIN; - gc_free(self->buffer); + + gc_free(self->rbuf.buf); + self->rbuf.size = 0; + self->rbuf.iput = self->rbuf.iget = 0; } } @@ -157,48 +181,33 @@ size_t common_hal_busio_uart_read(busio_uart_obj_t *self, uint8_t *data, size_t mp_raise_ValueError(translate("No RX pin")); } - size_t remain = len; + size_t rx_bytes = 0; uint64_t start_ticks = ticks_ms; - while ( 1 ) { - // Wait for on-going transfer to complete - while ( (self->rx_count == -1) && (ticks_ms - start_ticks < self->timeout_ms) ) { + // Wait for all bytes received or timeout + while ( (ringbuf_count(&self->rbuf) < len) && (ticks_ms - start_ticks < self->timeout_ms) ) { #ifdef MICROPY_VM_HOOK_LOOP - MICROPY_VM_HOOK_LOOP; - // Allow user to break out of a timeout with a KeyboardInterrupt. - if (mp_hal_is_interrupted()) { - return 0; - } + MICROPY_VM_HOOK_LOOP ; + // Allow user to break out of a timeout with a KeyboardInterrupt. + if ( mp_hal_is_interrupted() ) { + return 0; + } #endif - } - - // copy received data - if ( self->rx_count > 0 ) { - memcpy(data, self->buffer, self->rx_count); - data += self->rx_count; - remain -= self->rx_count; - - self->rx_count = 0; - } - - // exit if complete or time up - if ( !remain || !(ticks_ms - start_ticks < self->timeout_ms) ) { - break; - } - - // prepare next receiving - const size_t cnt = MIN(self->bufsize, remain); - self->rx_count = -1; - _VERIFY_ERR(nrfx_uarte_rx(&self->uarte, self->buffer, cnt)); } - // queue 1-byte transfer for rx_characters_available() - if ( self->rx_count == 0 ) { - self->rx_count = -1; - _VERIFY_ERR(nrfx_uarte_rx(&self->uarte, self->buffer, 1)); + // prevent conflict with uart irq + NVIC_DisableIRQ(nrfx_get_irq_number(self->uarte.p_reg)); + + // copy received data + rx_bytes = ringbuf_count(&self->rbuf); + rx_bytes = MIN(rx_bytes, len); + for ( uint16_t i = 0; i < rx_bytes; i++ ) { + data[i] = ringbuf_get(&self->rbuf); } - return len - remain; + NVIC_EnableIRQ(nrfx_get_irq_number(self->uarte.p_reg)); + + return rx_bytes; } // Write characters. @@ -258,15 +267,14 @@ void common_hal_busio_uart_set_baudrate(busio_uart_obj_t *self, uint32_t baudrat } uint32_t common_hal_busio_uart_rx_characters_available(busio_uart_obj_t *self) { - return (self->rx_count > 0) ? self->rx_count : 0; + return ringbuf_count(&self->rbuf); } void common_hal_busio_uart_clear_rx_buffer(busio_uart_obj_t *self) { - // Discard received byte, and queue 1-byte transfer for rx_characters_available() - if ( self->rx_count > 0 ) { - self->rx_count = -1; - _VERIFY_ERR(nrfx_uarte_rx(&self->uarte, self->buffer, 1)); - } + // prevent conflict with uart irq + NVIC_DisableIRQ(nrfx_get_irq_number(self->uarte.p_reg)); + ringbuf_clear(&self->rbuf); + NVIC_EnableIRQ(nrfx_get_irq_number(self->uarte.p_reg)); } bool common_hal_busio_uart_ready_to_tx(busio_uart_obj_t *self) { diff --git a/ports/nrf/common-hal/busio/UART.h b/ports/nrf/common-hal/busio/UART.h index e7543d6b1e..a8081dc1e6 100644 --- a/ports/nrf/common-hal/busio/UART.h +++ b/ports/nrf/common-hal/busio/UART.h @@ -41,9 +41,8 @@ typedef struct { uint32_t baudrate; uint32_t timeout_ms; - uint8_t* buffer; - uint32_t bufsize; - volatile int32_t rx_count; + ringbuf_t rbuf; + uint8_t rx_char; // EasyDMA buf uint8_t tx_pin_number; uint8_t rx_pin_number; From b37b2fa7e72a6a8d04af90b1c8ae52fcf1980350 Mon Sep 17 00:00:00 2001 From: hathach Date: Thu, 13 Dec 2018 23:56:06 +0700 Subject: [PATCH 33/33] overwrite old data if fifo is full --- ports/nrf/common-hal/busio/UART.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ports/nrf/common-hal/busio/UART.c b/ports/nrf/common-hal/busio/UART.c index 294957fd30..a291af5788 100644 --- a/ports/nrf/common-hal/busio/UART.c +++ b/ports/nrf/common-hal/busio/UART.c @@ -73,7 +73,11 @@ static void uart_callback_irq (const nrfx_uarte_event_t * event, void * context) switch ( event->type ) { case NRFX_UARTE_EVT_RX_DONE: for(uint8_t i=0; i < event->data.rxtx.bytes; i++) { - ringbuf_put(&self->rbuf, event->data.rxtx.p_data[i]); + if ( ringbuf_put(&self->rbuf, event->data.rxtx.p_data[i]) < 0 ) { + // if full overwrite old data + (void) ringbuf_get(&self->rbuf); + ringbuf_put(&self->rbuf, event->data.rxtx.p_data[i]); + } } // keep receiving

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