From f4887b3981ac44469b7d4da01a2c4aecad3eb91d Mon Sep 17 00:00:00 2001 From: hathach Date: Wed, 15 May 2013 13:39:28 +0700 Subject: [PATCH] adding support for keil's rtx cmsis-rtos --- demos/host/host_cmsis_rtx/.cproject | 1973 +++++ demos/host/host_cmsis_rtx/.project | 115 + demos/host/host_cmsis_rtx/app_os_prio.h | 70 + vendor/cmsis_rtos_rtx/INC/RTX_CM_lib.h | 380 + vendor/cmsis_rtos_rtx/INC/cmsis_os.h | 805 ++ vendor/cmsis_rtos_rtx/LIB/ARM/RTX_CM0.lib | Bin 0 -> 490048 bytes vendor/cmsis_rtos_rtx/LIB/ARM/RTX_CM0_B.lib | Bin 0 -> 490400 bytes vendor/cmsis_rtos_rtx/LIB/ARM/RTX_CM3.lib | Bin 0 -> 499066 bytes vendor/cmsis_rtos_rtx/LIB/ARM/RTX_CM3_B.lib | Bin 0 -> 499470 bytes vendor/cmsis_rtos_rtx/LIB/ARM/RTX_CM3_IFX.lib | Bin 0 -> 499370 bytes vendor/cmsis_rtos_rtx/LIB/ARM/RTX_CM4.lib | Bin 0 -> 513466 bytes vendor/cmsis_rtos_rtx/LIB/ARM/RTX_CM4_B.lib | Bin 0 -> 513870 bytes vendor/cmsis_rtos_rtx/LIB/ARM/RTX_CM4_IFX.lib | Bin 0 -> 513818 bytes vendor/cmsis_rtos_rtx/SRC/ARM/HAL_CM0.c | 301 + vendor/cmsis_rtos_rtx/SRC/ARM/HAL_CM3.c | 274 + vendor/cmsis_rtos_rtx/SRC/ARM/HAL_CM4.c | 309 + .../cmsis_rtos_rtx/SRC/ARM/RTX_Lib_CM.uvopt | 1596 ++++ .../cmsis_rtos_rtx/SRC/ARM/RTX_Lib_CM.uvproj | 5807 ++++++++++++++ vendor/cmsis_rtos_rtx/SRC/ARM/SVC_Table.s | 57 + vendor/cmsis_rtos_rtx/SRC/GCC/HAL_CM0.s | 370 + vendor/cmsis_rtos_rtx/SRC/GCC/HAL_CM3.s | 345 + vendor/cmsis_rtos_rtx/SRC/GCC/HAL_CM4.s | 389 + .../cmsis_rtos_rtx/SRC/GCC/RTX_Lib_CM.uvopt | 1399 ++++ .../cmsis_rtos_rtx/SRC/GCC/RTX_Lib_CM.uvproj | 3957 ++++++++++ vendor/cmsis_rtos_rtx/SRC/GCC/SVC_Table.s | 56 + vendor/cmsis_rtos_rtx/SRC/HAL_CM.c | 168 + vendor/cmsis_rtos_rtx/SRC/IAR/HAL_CM0.s | 312 + vendor/cmsis_rtos_rtx/SRC/IAR/HAL_CM3.s | 265 + vendor/cmsis_rtos_rtx/SRC/IAR/HAL_CM4.s | 297 + vendor/cmsis_rtos_rtx/SRC/IAR/RTX_Lib_CM.ewp | 6955 +++++++++++++++++ vendor/cmsis_rtos_rtx/SRC/IAR/RTX_Lib_CM.eww | 10 + vendor/cmsis_rtos_rtx/SRC/IAR/SVC_Table.s | 58 + vendor/cmsis_rtos_rtx/SRC/RTX_Config.h | 78 + vendor/cmsis_rtos_rtx/SRC/rt_CMSIS.c | 1962 +++++ vendor/cmsis_rtos_rtx/SRC/rt_Event.c | 190 + vendor/cmsis_rtos_rtx/SRC/rt_Event.h | 46 + vendor/cmsis_rtos_rtx/SRC/rt_HAL_CM.h | 284 + vendor/cmsis_rtos_rtx/SRC/rt_List.c | 320 + vendor/cmsis_rtos_rtx/SRC/rt_List.h | 67 + vendor/cmsis_rtos_rtx/SRC/rt_Mailbox.c | 292 + vendor/cmsis_rtos_rtx/SRC/rt_Mailbox.h | 48 + vendor/cmsis_rtos_rtx/SRC/rt_MemBox.c | 166 + vendor/cmsis_rtos_rtx/SRC/rt_MemBox.h | 46 + vendor/cmsis_rtos_rtx/SRC/rt_Memory.c | 140 + vendor/cmsis_rtos_rtx/SRC/rt_Memory.h | 44 + vendor/cmsis_rtos_rtx/SRC/rt_Mutex.c | 197 + vendor/cmsis_rtos_rtx/SRC/rt_Mutex.h | 44 + vendor/cmsis_rtos_rtx/SRC/rt_Robin.c | 84 + vendor/cmsis_rtos_rtx/SRC/rt_Robin.h | 45 + vendor/cmsis_rtos_rtx/SRC/rt_Semaphore.c | 183 + vendor/cmsis_rtos_rtx/SRC/rt_Semaphore.h | 46 + vendor/cmsis_rtos_rtx/SRC/rt_System.c | 312 + vendor/cmsis_rtos_rtx/SRC/rt_System.h | 52 + vendor/cmsis_rtos_rtx/SRC/rt_Task.c | 368 + vendor/cmsis_rtos_rtx/SRC/rt_Task.h | 87 + vendor/cmsis_rtos_rtx/SRC/rt_Time.c | 94 + vendor/cmsis_rtos_rtx/SRC/rt_Time.h | 47 + vendor/cmsis_rtos_rtx/SRC/rt_Timer.c | 129 + vendor/cmsis_rtos_rtx/SRC/rt_Timer.h | 46 + vendor/cmsis_rtos_rtx/SRC/rt_TypeDef.h | 166 + 60 files changed, 31851 insertions(+) create mode 100644 demos/host/host_cmsis_rtx/.cproject create mode 100644 demos/host/host_cmsis_rtx/.project create mode 100644 demos/host/host_cmsis_rtx/app_os_prio.h create mode 100644 vendor/cmsis_rtos_rtx/INC/RTX_CM_lib.h create mode 100644 vendor/cmsis_rtos_rtx/INC/cmsis_os.h create mode 100644 vendor/cmsis_rtos_rtx/LIB/ARM/RTX_CM0.lib create mode 100644 vendor/cmsis_rtos_rtx/LIB/ARM/RTX_CM0_B.lib create mode 100644 vendor/cmsis_rtos_rtx/LIB/ARM/RTX_CM3.lib create mode 100644 vendor/cmsis_rtos_rtx/LIB/ARM/RTX_CM3_B.lib create mode 100644 vendor/cmsis_rtos_rtx/LIB/ARM/RTX_CM3_IFX.lib create mode 100644 vendor/cmsis_rtos_rtx/LIB/ARM/RTX_CM4.lib create mode 100644 vendor/cmsis_rtos_rtx/LIB/ARM/RTX_CM4_B.lib create mode 100644 vendor/cmsis_rtos_rtx/LIB/ARM/RTX_CM4_IFX.lib create mode 100644 vendor/cmsis_rtos_rtx/SRC/ARM/HAL_CM0.c create mode 100644 vendor/cmsis_rtos_rtx/SRC/ARM/HAL_CM3.c create mode 100644 vendor/cmsis_rtos_rtx/SRC/ARM/HAL_CM4.c create mode 100644 vendor/cmsis_rtos_rtx/SRC/ARM/RTX_Lib_CM.uvopt create mode 100644 vendor/cmsis_rtos_rtx/SRC/ARM/RTX_Lib_CM.uvproj create mode 100644 vendor/cmsis_rtos_rtx/SRC/ARM/SVC_Table.s create mode 100644 vendor/cmsis_rtos_rtx/SRC/GCC/HAL_CM0.s create mode 100644 vendor/cmsis_rtos_rtx/SRC/GCC/HAL_CM3.s create mode 100644 vendor/cmsis_rtos_rtx/SRC/GCC/HAL_CM4.s create mode 100644 vendor/cmsis_rtos_rtx/SRC/GCC/RTX_Lib_CM.uvopt create mode 100644 vendor/cmsis_rtos_rtx/SRC/GCC/RTX_Lib_CM.uvproj create mode 100644 vendor/cmsis_rtos_rtx/SRC/GCC/SVC_Table.s create mode 100644 vendor/cmsis_rtos_rtx/SRC/HAL_CM.c create mode 100644 vendor/cmsis_rtos_rtx/SRC/IAR/HAL_CM0.s create mode 100644 vendor/cmsis_rtos_rtx/SRC/IAR/HAL_CM3.s create mode 100644 vendor/cmsis_rtos_rtx/SRC/IAR/HAL_CM4.s create mode 100644 vendor/cmsis_rtos_rtx/SRC/IAR/RTX_Lib_CM.ewp create mode 100644 vendor/cmsis_rtos_rtx/SRC/IAR/RTX_Lib_CM.eww create mode 100644 vendor/cmsis_rtos_rtx/SRC/IAR/SVC_Table.s create mode 100644 vendor/cmsis_rtos_rtx/SRC/RTX_Config.h create mode 100644 vendor/cmsis_rtos_rtx/SRC/rt_CMSIS.c create mode 100644 vendor/cmsis_rtos_rtx/SRC/rt_Event.c create mode 100644 vendor/cmsis_rtos_rtx/SRC/rt_Event.h create mode 100644 vendor/cmsis_rtos_rtx/SRC/rt_HAL_CM.h create mode 100644 vendor/cmsis_rtos_rtx/SRC/rt_List.c create mode 100644 vendor/cmsis_rtos_rtx/SRC/rt_List.h create mode 100644 vendor/cmsis_rtos_rtx/SRC/rt_Mailbox.c create mode 100644 vendor/cmsis_rtos_rtx/SRC/rt_Mailbox.h create mode 100644 vendor/cmsis_rtos_rtx/SRC/rt_MemBox.c create mode 100644 vendor/cmsis_rtos_rtx/SRC/rt_MemBox.h create mode 100644 vendor/cmsis_rtos_rtx/SRC/rt_Memory.c create mode 100644 vendor/cmsis_rtos_rtx/SRC/rt_Memory.h create mode 100644 vendor/cmsis_rtos_rtx/SRC/rt_Mutex.c create mode 100644 vendor/cmsis_rtos_rtx/SRC/rt_Mutex.h create mode 100644 vendor/cmsis_rtos_rtx/SRC/rt_Robin.c create mode 100644 vendor/cmsis_rtos_rtx/SRC/rt_Robin.h create mode 100644 vendor/cmsis_rtos_rtx/SRC/rt_Semaphore.c create mode 100644 vendor/cmsis_rtos_rtx/SRC/rt_Semaphore.h create mode 100644 vendor/cmsis_rtos_rtx/SRC/rt_System.c create mode 100644 vendor/cmsis_rtos_rtx/SRC/rt_System.h create mode 100644 vendor/cmsis_rtos_rtx/SRC/rt_Task.c create mode 100644 vendor/cmsis_rtos_rtx/SRC/rt_Task.h create mode 100644 vendor/cmsis_rtos_rtx/SRC/rt_Time.c create mode 100644 vendor/cmsis_rtos_rtx/SRC/rt_Time.h create mode 100644 vendor/cmsis_rtos_rtx/SRC/rt_Timer.c create mode 100644 vendor/cmsis_rtos_rtx/SRC/rt_Timer.h create mode 100644 vendor/cmsis_rtos_rtx/SRC/rt_TypeDef.h diff --git a/demos/host/host_cmsis_rtx/.cproject b/demos/host/host_cmsis_rtx/.cproject new file mode 100644 index 000000000..3604a6e6e --- /dev/null +++ b/demos/host/host_cmsis_rtx/.cproject @@ -0,0 +1,1973 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <?xml version="1.0" encoding="UTF-8"?> +<TargetConfig> +<Properties property_0="" property_3="NXP" property_4="LPC4330" property_count="5" version="1"/> +<infoList vendor="NXP"><info chip="LPC4330" match_id="0x0" name="LPC4330" stub="crt_emu_lpc18_43_nxp"><chip><name>LPC4330</name> +<family>LPC43xx</family> +<vendor>NXP (formerly Philips)</vendor> +<reset board="None" core="Real" sys="Real"/> +<clock changeable="TRUE" freq="20MHz" is_accurate="TRUE"/> +<memory can_program="true" id="Flash" is_ro="true" type="Flash"/> +<memory id="RAM" type="RAM"/> +<memory id="Periph" is_volatile="true" type="Peripheral"/> +<memoryInstance derived_from="RAM" id="RamLoc128" location="0x10000000" size="0x20000"/> +<memoryInstance derived_from="RAM" id="RamLoc72" location="0x10080000" size="0x12000"/> +<memoryInstance derived_from="RAM" id="RamAHB32" location="0x20000000" size="0x8000"/> +<memoryInstance derived_from="RAM" id="RamAHB16" location="0x20008000" size="0x4000"/> +<memoryInstance derived_from="RAM" id="RamAHB_ETB16" location="0x2000c000" size="0x4000"/> +<peripheralInstance derived_from="V7M_MPU" id="MPU" location="0xe000ed90"/> +<peripheralInstance derived_from="V7M_NVIC" id="NVIC" location="0xe000e000"/> +<peripheralInstance derived_from="V7M_DCR" id="DCR" location="0xe000edf0"/> +<peripheralInstance derived_from="V7M_ITM" id="ITM" location="0xe0000000"/> +<peripheralInstance derived_from="SCT" id="SCT" location="0x40000000"/> +<peripheralInstance derived_from="GPDMA" id="GPDMA" location="0x40002000"/> +<peripheralInstance derived_from="SDMMC" id="SDMMC" location="0x40004000"/> +<peripheralInstance derived_from="EMC" id="EMC" location="0x40005000"/> +<peripheralInstance derived_from="USB0" id="USB0" location="0x40006000"/> +<peripheralInstance derived_from="USB1" id="USB1" location="0x40007000"/> +<peripheralInstance derived_from="ETHERNET" id="ETHERNET" location="0x40010000"/> +<peripheralInstance derived_from="ATIMER" id="ATIMER" location="0x40040000"/> +<peripheralInstance derived_from="REGFILE" id="REGFILE" location="0x40041000"/> +<peripheralInstance derived_from="PMC" id="PMC" location="0x40042000"/> +<peripheralInstance derived_from="CREG" id="CREG" location="0x40043000"/> +<peripheralInstance derived_from="EVENTROUTER" id="EVENTROUTER" location="0x40044000"/> +<peripheralInstance derived_from="RTC" id="RTC" location="0x40046000"/> +<peripheralInstance derived_from="CGU" id="CGU" location="0x40050000"/> +<peripheralInstance derived_from="CCU1" id="CCU1" location="0x40051000"/> +<peripheralInstance derived_from="CCU2" id="CCU2" location="0x40052000"/> +<peripheralInstance derived_from="RGU" id="RGU" location="0x40053000"/> +<peripheralInstance derived_from="WWDT" id="WWDT" location="0x40080000"/> +<peripheralInstance derived_from="USART0" id="USART0" location="0x40081000"/> +<peripheralInstance derived_from="USART2" id="USART2" location="0x400c1000"/> +<peripheralInstance derived_from="USART3" id="USART3" location="0x400c2000"/> +<peripheralInstance derived_from="UART1" id="UART1" location="0x40082000"/> +<peripheralInstance derived_from="SSP0" id="SSP0" location="0x40083000"/> +<peripheralInstance derived_from="SSP1" id="SSP1" location="0x400c5000"/> +<peripheralInstance derived_from="TIMER0" id="TIMER0" location="0x40084000"/> +<peripheralInstance derived_from="TIMER1" id="TIMER1" location="0x40085000"/> +<peripheralInstance derived_from="TIMER2" id="TIMER2" location="0x400c3000"/> +<peripheralInstance derived_from="TIMER3" id="TIMER3" location="0x400c4000"/> +<peripheralInstance derived_from="SCU" id="SCU" location="0x40086000"/> +<peripheralInstance derived_from="GPIO-PIN-INT" id="GPIO-PIN-INT" location="0x40087000"/> +<peripheralInstance derived_from="GPIO-GROUP-INT0" id="GPIO-GROUP-INT0" location="0x40088000"/> +<peripheralInstance derived_from="GPIO-GROUP-INT1" id="GPIO-GROUP-INT1" location="0x40089000"/> +<peripheralInstance derived_from="MCPWM" id="MCPWM" location="0x400a0000"/> +<peripheralInstance derived_from="I2C0" id="I2C0" location="0x400a1000"/> +<peripheralInstance derived_from="I2C1" id="I2C1" location="0x400e0000"/> +<peripheralInstance derived_from="I2S0" id="I2S0" location="0x400a2000"/> +<peripheralInstance derived_from="I2S1" id="I2S1" location="0x400a3000"/> +<peripheralInstance derived_from="C-CAN1" id="C-CAN1" location="0x400a4000"/> +<peripheralInstance derived_from="RITIMER" id="RITIMER" location="0x400c0000"/> +<peripheralInstance derived_from="QEI" id="QEI" location="0x400c6000"/> +<peripheralInstance derived_from="GIMA" id="GIMA" location="0x400c7000"/> +<peripheralInstance derived_from="DAC" id="DAC" location="0x400e1000"/> +<peripheralInstance derived_from="C-CAN0" id="C-CAN0" location="0x400e2000"/> +<peripheralInstance derived_from="ADC0" id="ADC0" location="0x400e3000"/> +<peripheralInstance derived_from="ADC1" id="ADC1" location="0x400e4000"/> +<peripheralInstance derived_from="GPIO-PORT" id="GPIO-PORT" location="0x400f4000"/> +<peripheralInstance derived_from="SPI" id="SPI" location="0x40100000"/> +<peripheralInstance derived_from="SGPIO" id="SGPIO" location="0x40101000"/> +</chip> +<processor><name gcc_name="cortex-m4">Cortex-M4</name> +<family>Cortex-M</family> +</processor> +<link href="nxp_lpc43xx_peripheral.xme" show="embed" type="simple"/> +</info> +</infoList> +</TargetConfig> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/demos/host/host_cmsis_rtx/.project b/demos/host/host_cmsis_rtx/.project new file mode 100644 index 000000000..2f88a41ad --- /dev/null +++ b/demos/host/host_cmsis_rtx/.project @@ -0,0 +1,115 @@ + + + host_cmsis_rtx + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + ${workspace_loc:/host/Debug} + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + + bsp + 2 + PARENT-2-PROJECT_LOC/bsp + + + cmsis_rtos_rtx + 2 + PARENT-3-PROJECT_LOC/vendor/cmsis_rtos_rtx + + + src + 2 + PARENT-1-PROJECT_LOC/src + + + tinyusb + 2 + PARENT-3-PROJECT_LOC/tinyusb + + + + + 1368599411514 + + 26 + + org.eclipse.ui.ide.multiFilter + 1.0-name-matches-false-false-startup_keil + + + + diff --git a/demos/host/host_cmsis_rtx/app_os_prio.h b/demos/host/host_cmsis_rtx/app_os_prio.h new file mode 100644 index 000000000..25af31f6a --- /dev/null +++ b/demos/host/host_cmsis_rtx/app_os_prio.h @@ -0,0 +1,70 @@ +/**************************************************************************/ +/*! + @file app_os_prio.h + @author hathach (tinyusb.org) + + @section LICENSE + + Software License Agreement (BSD License) + + Copyright (c) 2013, hathach (tinyusb.org) + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. Neither the name of the copyright holders nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY + DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + This file is part of the tinyusb stack. +*/ +/**************************************************************************/ + +/** \file + * \brief TBD + * + * \note TBD + */ + +/** \ingroup TBD + * \defgroup TBD + * \brief TBD + * + * @{ + */ + +#ifndef _TUSB_APP_OS_PRIO_H_ +#define _TUSB_APP_OS_PRIO_H_ + + +#ifdef __cplusplus + extern "C" { +#endif + +#define KEYBOARD_APP_TASK_PRIO (TUSB_CFG_OS_TASK_PRIO-1) +#define MOUSE_APP_TASK_PRIO (KEYBOARD_APP_TASK_PRIO-1) +#define LED_BLINKING_APP_TASK_PRIO (tskIDLE_PRIORITY+1) + +#ifdef __cplusplus + } +#endif + +#endif /* _TUSB_APP_OS_PRIO_H_ */ + +/** @} */ diff --git a/vendor/cmsis_rtos_rtx/INC/RTX_CM_lib.h b/vendor/cmsis_rtos_rtx/INC/RTX_CM_lib.h new file mode 100644 index 000000000..ae6c076a0 --- /dev/null +++ b/vendor/cmsis_rtos_rtx/INC/RTX_CM_lib.h @@ -0,0 +1,380 @@ +/*---------------------------------------------------------------------------- + * RL-ARM - RTX + *---------------------------------------------------------------------------- + * Name: RTX_CM_LIB.H + * Purpose: RTX Kernel System Configuration + * Rev.: V4.70 + *---------------------------------------------------------------------------- + * + * Copyright (c) 1999-2009 KEIL, 2009-2013 ARM Germany GmbH + * All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * - Neither the name of ARM nor the names of its contributors may be used + * to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + *---------------------------------------------------------------------------*/ + +#if defined (__CC_ARM) +#pragma O3 +#define __USED __attribute__((used)) +#elif defined (__GNUC__) +#pragma GCC optimize ("O3") +#define __USED __attribute__((used)) +#elif defined (__ICCARM__) +#define __USED __root +#endif + + +/*---------------------------------------------------------------------------- + * Definitions + *---------------------------------------------------------------------------*/ + +#define _declare_box(pool,size,cnt) uint32_t pool[(((size)+3)/4)*(cnt) + 3] +#define _declare_box8(pool,size,cnt) uint64_t pool[(((size)+7)/8)*(cnt) + 2] + +#define OS_TCB_SIZE 48 +#define OS_TMR_SIZE 8 + +#if defined (__CC_ARM) && !defined (__MICROLIB) + +typedef void *OS_ID; +typedef uint32_t OS_TID; +typedef uint32_t OS_MUT[3]; +typedef uint32_t OS_RESULT; + +#define runtask_id() rt_tsk_self() +#define mutex_init(m) rt_mut_init(m) +#define mutex_wait(m) os_mut_wait(m,0xFFFF) +#define mutex_rel(m) os_mut_release(m) + +extern OS_TID rt_tsk_self (void); +extern void rt_mut_init (OS_ID mutex); +extern OS_RESULT rt_mut_release (OS_ID mutex); +extern OS_RESULT rt_mut_wait (OS_ID mutex, uint16_t timeout); + +#define os_mut_wait(mutex,timeout) _os_mut_wait((uint32_t)rt_mut_wait,mutex,timeout) +#define os_mut_release(mutex) _os_mut_release((uint32_t)rt_mut_release,mutex) + +OS_RESULT _os_mut_release (uint32_t p, OS_ID mutex) __svc_indirect(0); +OS_RESULT _os_mut_wait (uint32_t p, OS_ID mutex, uint16_t timeout) __svc_indirect(0); + +#endif + + +/*---------------------------------------------------------------------------- + * Global Variables + *---------------------------------------------------------------------------*/ + +#if (OS_TIMERS != 0) +#define OS_TASK_CNT (OS_TASKCNT + 1) +#define OS_PRIV_CNT (OS_PRIVCNT + 2) +#define OS_STACK_SZ (4*(OS_PRIVSTKSIZE+OS_MAINSTKSIZE+OS_TIMERSTKSZ)) +#else +#define OS_TASK_CNT OS_TASKCNT +#define OS_PRIV_CNT (OS_PRIVCNT + 1) +#define OS_STACK_SZ (4*(OS_PRIVSTKSIZE+OS_MAINSTKSIZE)) +#endif + +uint16_t const os_maxtaskrun = OS_TASK_CNT; +uint32_t const os_stackinfo = (OS_STKCHECK<<24)| (OS_PRIV_CNT<<16) | (OS_STKSIZE*4); +uint32_t const os_rrobin = (OS_ROBIN << 16) | OS_ROBINTOUT; +uint32_t const os_tickfreq = OS_CLOCK; +uint16_t const os_tickus_i = OS_CLOCK/1000000; +uint16_t const os_tickus_f = (((uint64_t)(OS_CLOCK-1000000*(OS_CLOCK/1000000)))<<16)/1000000; +uint32_t const os_trv = OS_TRV; +uint8_t const os_flags = OS_RUNPRIV; + +/* Export following defines to uVision debugger. */ +__USED uint32_t const os_clockrate = OS_TICK; +__USED uint32_t const os_timernum = 0; + +/* Memory pool for TCB allocation */ +_declare_box (mp_tcb, OS_TCB_SIZE, OS_TASK_CNT); +uint16_t const mp_tcb_size = sizeof(mp_tcb); + +/* Memory pool for System stack allocation (+os_idle_demon). */ +_declare_box8 (mp_stk, OS_STKSIZE*4, OS_TASK_CNT-OS_PRIV_CNT+1); +uint32_t const mp_stk_size = sizeof(mp_stk); + +/* Memory pool for user specified stack allocation (+main, +timer) */ +uint64_t os_stack_mem[2+OS_PRIV_CNT+(OS_STACK_SZ/8)]; +uint32_t const os_stack_sz = sizeof(os_stack_mem); + +#ifndef OS_FIFOSZ + #define OS_FIFOSZ 16 +#endif + +/* Fifo Queue buffer for ISR requests.*/ +uint32_t os_fifo[OS_FIFOSZ*2+1]; +uint8_t const os_fifo_size = OS_FIFOSZ; + +/* An array of Active task pointers. */ +void *os_active_TCB[OS_TASK_CNT]; + +/* User Timers Resources */ +#if (OS_TIMERS != 0) +extern void osTimerThread (void const *argument); +osThreadDef(osTimerThread, (osPriority)(OS_TIMERPRIO-3), 1, 4*OS_TIMERSTKSZ); +osThreadId osThreadId_osTimerThread; +osMessageQDef(osTimerMessageQ, OS_TIMERCBQS, void *); +osMessageQId osMessageQId_osTimerMessageQ; +#else +osThreadDef_t os_thread_def_osTimerThread = { NULL }; +osThreadId osThreadId_osTimerThread; +osMessageQDef(osTimerMessageQ, 0, void *); +osMessageQId osMessageQId_osTimerMessageQ; +#endif + +/* Legacy RTX User Timers not used */ +uint32_t os_tmr = 0; +uint32_t const *m_tmr = NULL; +uint16_t const mp_tmr_size = 0; + +#if defined (__CC_ARM) && !defined (__MICROLIB) + /* A memory space for arm standard library. */ + static uint32_t std_libspace[OS_TASK_CNT][96/4]; + static OS_MUT std_libmutex[OS_MUTEXCNT]; + static uint32_t nr_mutex; + extern void *__libspace_start; +#endif + + +/*---------------------------------------------------------------------------- + * RTX Optimizations (empty functions) + *---------------------------------------------------------------------------*/ + +#if OS_ROBIN == 0 + void rt_init_robin (void) {;} + void rt_chk_robin (void) {;} +#endif + +#if OS_STKCHECK == 0 + void rt_stk_check (void) {;} +#endif + + +/*---------------------------------------------------------------------------- + * Standard Library multithreading interface + *---------------------------------------------------------------------------*/ + +#if defined (__CC_ARM) && !defined (__MICROLIB) + +/*--------------------------- __user_perthread_libspace ---------------------*/ + +void *__user_perthread_libspace (void) { + /* Provide a separate libspace for each task. */ + uint32_t idx; + + idx = runtask_id (); + if (idx == 0) { + /* RTX not running yet. */ + return (&__libspace_start); + } + return ((void *)&std_libspace[idx-1]); +} + +/*--------------------------- _mutex_initialize -----------------------------*/ + +int _mutex_initialize (OS_ID *mutex) { + /* Allocate and initialize a system mutex. */ + + if (nr_mutex >= OS_MUTEXCNT) { + /* If you are here, you need to increase the number OS_MUTEXCNT. */ + for (;;); + } + *mutex = &std_libmutex[nr_mutex++]; + mutex_init (*mutex); + return (1); +} + + +/*--------------------------- _mutex_acquire --------------------------------*/ + +__attribute__((used)) void _mutex_acquire (OS_ID *mutex) { + /* Acquire a system mutex, lock stdlib resources. */ + if (runtask_id ()) { + /* RTX running, acquire a mutex. */ + mutex_wait (*mutex); + } +} + + +/*--------------------------- _mutex_release --------------------------------*/ + +__attribute__((used)) void _mutex_release (OS_ID *mutex) { + /* Release a system mutex, unlock stdlib resources. */ + if (runtask_id ()) { + /* RTX running, release a mutex. */ + mutex_rel (*mutex); + } +} + +#endif + + +/*---------------------------------------------------------------------------- + * RTX Startup + *---------------------------------------------------------------------------*/ + +/* Main Thread definition */ +extern int main (void); +osThreadDef_t os_thread_def_main = {(os_pthread)main, osPriorityNormal, 1, 4*OS_MAINSTKSIZE }; + + +#if defined (__CC_ARM) + +#ifdef __MICROLIB +void _main_init (void) __attribute__((section(".ARM.Collect$$$$000000FF"))); +void _main_init (void) { + osKernelInitialize(); + osThreadCreate(&os_thread_def_main, NULL); + osKernelStart(); + for (;;); +} +#else +__asm void __rt_entry (void) { + + IMPORT __user_setup_stackheap + IMPORT __rt_lib_init + IMPORT os_thread_def_main + IMPORT osKernelInitialize + IMPORT osKernelStart + IMPORT osThreadCreate + IMPORT exit + + BL __user_setup_stackheap + MOV R1,R2 + BL __rt_lib_init + BL osKernelInitialize + LDR R0,=os_thread_def_main + MOVS R1,#0 + BL osThreadCreate + BL osKernelStart + BL exit + + ALIGN +} +#endif + +#elif defined (__GNUC__) + +#ifdef __CS3__ + +/* CS3 start_c routine. + * + * Copyright (c) 2006, 2007 CodeSourcery Inc + * + * The authors hereby grant permission to use, copy, modify, distribute, + * and license this software and its documentation for any purpose, provided + * that existing copyright notices are retained in all copies and that this + * notice is included verbatim in any distributions. No written agreement, + * license, or royalty fee is required for any of the authorized uses. + * Modifications to this software may be copyrighted by their authors + * and need not follow the licensing terms described here, provided that + * the new terms are clearly indicated on the first page of each file where + * they apply. + */ + +#include "cs3.h" + +extern void __libc_init_array (void); + +__attribute ((noreturn)) void __cs3_start_c (void){ + unsigned regions = __cs3_region_num; + const struct __cs3_region *rptr = __cs3_regions; + + /* Initialize memory */ + for (regions = __cs3_region_num, rptr = __cs3_regions; regions--; rptr++) { + long long *src = (long long *)rptr->init; + long long *dst = (long long *)rptr->data; + unsigned limit = rptr->init_size; + unsigned count; + + if (src != dst) + for (count = 0; count != limit; count += sizeof (long long)) + *dst++ = *src++; + else + dst = (long long *)((char *)dst + limit); + limit = rptr->zero_size; + for (count = 0; count != limit; count += sizeof (long long)) + *dst++ = 0; + } + + /* Run initializers. */ + __libc_init_array (); + + osKernelInitialize(); + osThreadCreate(&os_thread_def_main, NULL); + osKernelStart(); + for (;;); +} + +#else + +__attribute__((naked)) void software_init_hook (void) { + __asm ( + ".syntax unified\n" + ".thumb\n" + "movs r0,#0\n" + "movs r1,#0\n" + "mov r4,r0\n" + "mov r5,r1\n" + "ldr r0,= __libc_fini_array\n" + "bl atexit\n" + "bl __libc_init_array\n" + "mov r0,r4\n" + "mov r1,r5\n" + "bl osKernelInitialize\n" + "ldr r0,=os_thread_def_main\n" + "movs r1,#0\n" + "bl osThreadCreate\n" + "bl osKernelStart\n" + "bl exit\n" + ); +} + +#endif + +#elif defined (__ICCARM__) + +extern int __low_level_init(void); +extern void __iar_data_init3(void); +extern void exit(int arg); + +__noreturn __stackless void __cmain(void) { + int a; + + if (__low_level_init() != 0) { + __iar_data_init3(); + } + osKernelInitialize(); + osThreadCreate(&os_thread_def_main, NULL); + a = osKernelStart(); + exit(a); +} + +#endif + + +/*---------------------------------------------------------------------------- + * end of file + *---------------------------------------------------------------------------*/ + diff --git a/vendor/cmsis_rtos_rtx/INC/cmsis_os.h b/vendor/cmsis_rtos_rtx/INC/cmsis_os.h new file mode 100644 index 000000000..ea4d77cb6 --- /dev/null +++ b/vendor/cmsis_rtos_rtx/INC/cmsis_os.h @@ -0,0 +1,805 @@ +/* ---------------------------------------------------------------------- + * $Date: 5. February 2013 + * $Revision: V1.02 + * + * Project: CMSIS-RTOS API + * Title: cmsis_os.h RTX header file + * + * Version 0.02 + * Initial Proposal Phase + * Version 0.03 + * osKernelStart added, optional feature: main started as thread + * osSemaphores have standard behavior + * osTimerCreate does not start the timer, added osTimerStart + * osThreadPass is renamed to osThreadYield + * Version 1.01 + * Support for C++ interface + * - const attribute removed from the osXxxxDef_t typedef's + * - const attribute added to the osXxxxDef macros + * Added: osTimerDelete, osMutexDelete, osSemaphoreDelete + * Added: osKernelInitialize + * Version 1.02 + * Control functions for short timeouts in microsecond resolution: + * Added: osKernelSysTick, osKernelSysTickFrequency, osKernelSysTickMicroSec + * Removed: osSignalGet + *---------------------------------------------------------------------------- + * + * Copyright (c) 2013 ARM LIMITED + * All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * - Neither the name of ARM nor the names of its contributors may be used + * to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + *---------------------------------------------------------------------------*/ + +/** +\page cmsis_os_h Header File Template: cmsis_os.h + +The file \b cmsis_os.h is a template header file for a CMSIS-RTOS compliant Real-Time Operating System (RTOS). +Each RTOS that is compliant with CMSIS-RTOS shall provide a specific \b cmsis_os.h header file that represents +its implementation. + +The file cmsis_os.h contains: + - CMSIS-RTOS API function definitions + - struct definitions for parameters and return types + - status and priority values used by CMSIS-RTOS API functions + - macros for defining threads and other kernel objects + + +Name conventions and header file modifications + +All definitions are prefixed with \b os to give an unique name space for CMSIS-RTOS functions. +Definitions that are prefixed \b os_ are not used in the application code but local to this header file. +All definitions and functions that belong to a module are grouped and have a common prefix, i.e. \b osThread. + +Definitions that are marked with CAN BE CHANGED can be adapted towards the needs of the actual CMSIS-RTOS implementation. +These definitions can be specific to the underlying RTOS kernel. + +Definitions that are marked with MUST REMAIN UNCHANGED cannot be altered. Otherwise the CMSIS-RTOS implementation is no longer +compliant to the standard. Note that some functions are optional and need not to be provided by every CMSIS-RTOS implementation. + + +Function calls from interrupt service routines + +The following CMSIS-RTOS functions can be called from threads and interrupt service routines (ISR): + - \ref osSignalSet + - \ref osSemaphoreRelease + - \ref osPoolAlloc, \ref osPoolCAlloc, \ref osPoolFree + - \ref osMessagePut, \ref osMessageGet + - \ref osMailAlloc, \ref osMailCAlloc, \ref osMailGet, \ref osMailPut, \ref osMailFree + +Functions that cannot be called from an ISR are verifying the interrupt status and return in case that they are called +from an ISR context the status code \b osErrorISR. In some implementations this condition might be caught using the HARD FAULT vector. + +Some CMSIS-RTOS implementations support CMSIS-RTOS function calls from multiple ISR at the same time. +If this is impossible, the CMSIS-RTOS rejects calls by nested ISR functions with the status code \b osErrorISRRecursive. + + +Define and reference object definitions + +With \#define osObjectsExternal objects are defined as external symbols. This allows to create a consistent header file +that is used throughout a project as shown below: + +Header File +\code +#include // CMSIS RTOS header file + +// Thread definition +extern void thread_sample (void const *argument); // function prototype +osThreadDef (thread_sample, osPriorityBelowNormal, 1, 100); + +// Pool definition +osPoolDef(MyPool, 10, long); +\endcode + + +This header file defines all objects when included in a C/C++ source file. When \#define osObjectsExternal is +present before the header file, the objects are defined as external symbols. A single consistent header file can therefore be +used throughout the whole project. + +Example +\code +#include "osObjects.h" // Definition of the CMSIS-RTOS objects +\endcode + +\code +#define osObjectExternal // Objects will be defined as external symbols +#include "osObjects.h" // Reference to the CMSIS-RTOS objects +\endcode + +*/ + +#ifndef _CMSIS_OS_H +#define _CMSIS_OS_H + +/// \note MUST REMAIN UNCHANGED: \b osCMSIS identifies the CMSIS-RTOS API version. +#define osCMSIS 0x10002 ///< API version (main [31:16] .sub [15:0]) + +/// \note CAN BE CHANGED: \b osCMSIS_KERNEL identifies the underlying RTOS kernel and version number. +#define osCMSIS_RTX ((4<<16)|70) ///< RTOS identification and version (main [31:16] .sub [15:0]) + +/// \note MUST REMAIN UNCHANGED: \b osKernelSystemId shall be consistent in every CMSIS-RTOS. +#define osKernelSystemId "RTX V4.70" ///< RTOS identification string + + +/// \note MUST REMAIN UNCHANGED: \b osFeature_xxx shall be consistent in every CMSIS-RTOS. +#define osFeature_MainThread 1 ///< main thread 1=main can be thread, 0=not available +#define osFeature_Pool 1 ///< Memory Pools: 1=available, 0=not available +#define osFeature_MailQ 1 ///< Mail Queues: 1=available, 0=not available +#define osFeature_MessageQ 1 ///< Message Queues: 1=available, 0=not available +#define osFeature_Signals 16 ///< maximum number of Signal Flags available per thread +#define osFeature_Semaphore 65535 ///< maximum count for \ref osSemaphoreCreate function +#define osFeature_Wait 0 ///< osWait function: 1=available, 0=not available +#define osFeature_SysTick 1 ///< osKernelSysTick functions: 1=available, 0=not available + +#if defined (__CC_ARM) +#define os_InRegs __value_in_regs // Compiler specific: force struct in registers +#else +#define os_InRegs +#endif + +#include +#include + +#ifdef __cplusplus +extern "C" +{ +#endif + + +// ==== Enumeration, structures, defines ==== + +/// Priority used for thread control. +/// \note MUST REMAIN UNCHANGED: \b osPriority shall be consistent in every CMSIS-RTOS. +typedef enum { + osPriorityIdle = -3, ///< priority: idle (lowest) + osPriorityLow = -2, ///< priority: low + osPriorityBelowNormal = -1, ///< priority: below normal + osPriorityNormal = 0, ///< priority: normal (default) + osPriorityAboveNormal = +1, ///< priority: above normal + osPriorityHigh = +2, ///< priority: high + osPriorityRealtime = +3, ///< priority: realtime (highest) + osPriorityError = 0x84 ///< system cannot determine priority or thread has illegal priority +} osPriority; + +/// Timeout value. +/// \note MUST REMAIN UNCHANGED: \b osWaitForever shall be consistent in every CMSIS-RTOS. +#define osWaitForever 0xFFFFFFFF ///< wait forever timeout value + +/// Status code values returned by CMSIS-RTOS functions. +/// \note MUST REMAIN UNCHANGED: \b osStatus shall be consistent in every CMSIS-RTOS. +typedef enum { + osOK = 0, ///< function completed; no error or event occurred. + osEventSignal = 0x08, ///< function completed; signal event occurred. + osEventMessage = 0x10, ///< function completed; message event occurred. + osEventMail = 0x20, ///< function completed; mail event occurred. + osEventTimeout = 0x40, ///< function completed; timeout occurred. + osErrorParameter = 0x80, ///< parameter error: a mandatory parameter was missing or specified an incorrect object. + osErrorResource = 0x81, ///< resource not available: a specified resource was not available. + osErrorTimeoutResource = 0xC1, ///< resource not available within given time: a specified resource was not available within the timeout period. + osErrorISR = 0x82, ///< not allowed in ISR context: the function cannot be called from interrupt service routines. + osErrorISRRecursive = 0x83, ///< function called multiple times from ISR with same object. + osErrorPriority = 0x84, ///< system cannot determine priority or thread has illegal priority. + osErrorNoMemory = 0x85, ///< system is out of memory: it was impossible to allocate or reserve memory for the operation. + osErrorValue = 0x86, ///< value of a parameter is out of range. + osErrorOS = 0xFF, ///< unspecified RTOS error: run-time error but no other error message fits. + os_status_reserved = 0x7FFFFFFF ///< prevent from enum down-size compiler optimization. +} osStatus; + + +/// Timer type value for the timer definition. +/// \note MUST REMAIN UNCHANGED: \b os_timer_type shall be consistent in every CMSIS-RTOS. +typedef enum { + osTimerOnce = 0, ///< one-shot timer + osTimerPeriodic = 1 ///< repeating timer +} os_timer_type; + +/// Entry point of a thread. +/// \note MUST REMAIN UNCHANGED: \b os_pthread shall be consistent in every CMSIS-RTOS. +typedef void (*os_pthread) (void const *argument); + +/// Entry point of a timer call back function. +/// \note MUST REMAIN UNCHANGED: \b os_ptimer shall be consistent in every CMSIS-RTOS. +typedef void (*os_ptimer) (void const *argument); + +// >>> the following data type definitions may shall adapted towards a specific RTOS + +/// Thread ID identifies the thread (pointer to a thread control block). +/// \note CAN BE CHANGED: \b os_thread_cb is implementation specific in every CMSIS-RTOS. +typedef struct os_thread_cb *osThreadId; + +/// Timer ID identifies the timer (pointer to a timer control block). +/// \note CAN BE CHANGED: \b os_timer_cb is implementation specific in every CMSIS-RTOS. +typedef struct os_timer_cb *osTimerId; + +/// Mutex ID identifies the mutex (pointer to a mutex control block). +/// \note CAN BE CHANGED: \b os_mutex_cb is implementation specific in every CMSIS-RTOS. +typedef struct os_mutex_cb *osMutexId; + +/// Semaphore ID identifies the semaphore (pointer to a semaphore control block). +/// \note CAN BE CHANGED: \b os_semaphore_cb is implementation specific in every CMSIS-RTOS. +typedef struct os_semaphore_cb *osSemaphoreId; + +/// Pool ID identifies the memory pool (pointer to a memory pool control block). +/// \note CAN BE CHANGED: \b os_pool_cb is implementation specific in every CMSIS-RTOS. +typedef struct os_pool_cb *osPoolId; + +/// Message ID identifies the message queue (pointer to a message queue control block). +/// \note CAN BE CHANGED: \b os_messageQ_cb is implementation specific in every CMSIS-RTOS. +typedef struct os_messageQ_cb *osMessageQId; + +/// Mail ID identifies the mail queue (pointer to a mail queue control block). +/// \note CAN BE CHANGED: \b os_mailQ_cb is implementation specific in every CMSIS-RTOS. +typedef struct os_mailQ_cb *osMailQId; + + +/// Thread Definition structure contains startup information of a thread. +/// \note CAN BE CHANGED: \b os_thread_def is implementation specific in every CMSIS-RTOS. +typedef struct os_thread_def { + os_pthread pthread; ///< start address of thread function + osPriority tpriority; ///< initial thread priority + uint32_t instances; ///< maximum number of instances of that thread function + uint32_t stacksize; ///< stack size requirements in bytes; 0 is default stack size +} osThreadDef_t; + +/// Timer Definition structure contains timer parameters. +/// \note CAN BE CHANGED: \b os_timer_def is implementation specific in every CMSIS-RTOS. +typedef struct os_timer_def { + os_ptimer ptimer; ///< start address of a timer function + void *timer; ///< pointer to internal data +} osTimerDef_t; + +/// Mutex Definition structure contains setup information for a mutex. +/// \note CAN BE CHANGED: \b os_mutex_def is implementation specific in every CMSIS-RTOS. +typedef struct os_mutex_def { + void *mutex; ///< pointer to internal data +} osMutexDef_t; + +/// Semaphore Definition structure contains setup information for a semaphore. +/// \note CAN BE CHANGED: \b os_semaphore_def is implementation specific in every CMSIS-RTOS. +typedef struct os_semaphore_def { + void *semaphore; ///< pointer to internal data +} osSemaphoreDef_t; + +/// Definition structure for memory block allocation. +/// \note CAN BE CHANGED: \b os_pool_def is implementation specific in every CMSIS-RTOS. +typedef struct os_pool_def { + uint32_t pool_sz; ///< number of items (elements) in the pool + uint32_t item_sz; ///< size of an item + void *pool; ///< pointer to memory for pool +} osPoolDef_t; + +/// Definition structure for message queue. +/// \note CAN BE CHANGED: \b os_messageQ_def is implementation specific in every CMSIS-RTOS. +typedef struct os_messageQ_def { + uint32_t queue_sz; ///< number of elements in the queue + void *pool; ///< memory array for messages +} osMessageQDef_t; + +/// Definition structure for mail queue. +/// \note CAN BE CHANGED: \b os_mailQ_def is implementation specific in every CMSIS-RTOS. +typedef struct os_mailQ_def { + uint32_t queue_sz; ///< number of elements in the queue + uint32_t item_sz; ///< size of an item + void *pool; ///< memory array for mail +} osMailQDef_t; + +/// Event structure contains detailed information about an event. +/// \note MUST REMAIN UNCHANGED: \b os_event shall be consistent in every CMSIS-RTOS. +/// However the struct may be extended at the end. +typedef struct { + osStatus status; ///< status code: event or error information + union { + uint32_t v; ///< message as 32-bit value + void *p; ///< message or mail as void pointer + int32_t signals; ///< signal flags + } value; ///< event value + union { + osMailQId mail_id; ///< mail id obtained by \ref osMailCreate + osMessageQId message_id; ///< message id obtained by \ref osMessageCreate + } def; ///< event definition +} osEvent; + + +// ==== Kernel Control Functions ==== + +/// Initialize the RTOS Kernel for creating objects. +/// \return status code that indicates the execution status of the function. +/// \note MUST REMAIN UNCHANGED: \b osKernelInitialize shall be consistent in every CMSIS-RTOS. +osStatus osKernelInitialize (void); + +/// Start the RTOS Kernel. +/// \return status code that indicates the execution status of the function. +/// \note MUST REMAIN UNCHANGED: \b osKernelStart shall be consistent in every CMSIS-RTOS. +osStatus osKernelStart (void); + +/// Check if the RTOS kernel is already started. +/// \note MUST REMAIN UNCHANGED: \b osKernelRunning shall be consistent in every CMSIS-RTOS. +/// \return 0 RTOS is not started, 1 RTOS is started. +int32_t osKernelRunning(void); + +#if (defined (osFeature_SysTick) && (osFeature_SysTick != 0)) // System Timer available + +extern uint32_t const os_tickfreq; +extern uint16_t const os_tickus_i; +extern uint16_t const os_tickus_f; + +/// Get the RTOS kernel system timer counter. +/// \note MUST REMAIN UNCHANGED: \b osKernelSysTick shall be consistent in every CMSIS-RTOS. +/// \return RTOS kernel system timer as 32-bit value +uint32_t osKernelSysTick (void); + +/// The RTOS kernel system timer frequency in Hz. +/// \note Reflects the system timer setting and is typically defined in a configuration file. +#define osKernelSysTickFrequency os_tickfreq + +/// Convert a microseconds value to a RTOS kernel system timer value. +/// \param microsec time value in microseconds. +/// \return time value normalized to the \ref osKernelSysTickFrequency +/* +#define osKernelSysTickMicroSec(microsec) (((uint64_t)microsec * (osKernelSysTickFrequency)) / 1000000) +*/ +#define osKernelSysTickMicroSec(microsec) ((microsec * os_tickus_i) + ((microsec * os_tickus_f) >> 16)) + +#endif // System Timer available + +// ==== Thread Management ==== + +/// Create a Thread Definition with function, priority, and stack requirements. +/// \param name name of the thread function. +/// \param priority initial priority of the thread function. +/// \param instances number of possible thread instances. +/// \param stacksz stack size (in bytes) requirements for the thread function. +/// \note CAN BE CHANGED: The parameters to \b osThreadDef shall be consistent but the +/// macro body is implementation specific in every CMSIS-RTOS. +#if defined (osObjectsExternal) // object is external +#define osThreadDef(name, priority, instances, stacksz) \ +extern const osThreadDef_t os_thread_def_##name +#else // define the object +#define osThreadDef(name, priority, instances, stacksz) \ +const osThreadDef_t os_thread_def_##name = \ +{ (name), (priority), (instances), (stacksz) } +#endif + +/// Access a Thread definition. +/// \param name name of the thread definition object. +/// \note CAN BE CHANGED: The parameter to \b osThread shall be consistent but the +/// macro body is implementation specific in every CMSIS-RTOS. +#define osThread(name) \ +&os_thread_def_##name + +/// Create a thread and add it to Active Threads and set it to state READY. +/// \param[in] thread_def thread definition referenced with \ref osThread. +/// \param[in] argument pointer that is passed to the thread function as start argument. +/// \return thread ID for reference by other functions or NULL in case of error. +/// \note MUST REMAIN UNCHANGED: \b osThreadCreate shall be consistent in every CMSIS-RTOS. +osThreadId osThreadCreate (const osThreadDef_t *thread_def, void *argument); + +/// Return the thread ID of the current running thread. +/// \return thread ID for reference by other functions or NULL in case of error. +/// \note MUST REMAIN UNCHANGED: \b osThreadGetId shall be consistent in every CMSIS-RTOS. +osThreadId osThreadGetId (void); + +/// Terminate execution of a thread and remove it from Active Threads. +/// \param[in] thread_id thread ID obtained by \ref osThreadCreate or \ref osThreadGetId. +/// \return status code that indicates the execution status of the function. +/// \note MUST REMAIN UNCHANGED: \b osThreadTerminate shall be consistent in every CMSIS-RTOS. +osStatus osThreadTerminate (osThreadId thread_id); + +/// Pass control to next thread that is in state \b READY. +/// \return status code that indicates the execution status of the function. +/// \note MUST REMAIN UNCHANGED: \b osThreadYield shall be consistent in every CMSIS-RTOS. +osStatus osThreadYield (void); + +/// Change priority of an active thread. +/// \param[in] thread_id thread ID obtained by \ref osThreadCreate or \ref osThreadGetId. +/// \param[in] priority new priority value for the thread function. +/// \return status code that indicates the execution status of the function. +/// \note MUST REMAIN UNCHANGED: \b osThreadSetPriority shall be consistent in every CMSIS-RTOS. +osStatus osThreadSetPriority (osThreadId thread_id, osPriority priority); + +/// Get current priority of an active thread. +/// \param[in] thread_id thread ID obtained by \ref osThreadCreate or \ref osThreadGetId. +/// \return current priority value of the thread function. +/// \note MUST REMAIN UNCHANGED: \b osThreadGetPriority shall be consistent in every CMSIS-RTOS. +osPriority osThreadGetPriority (osThreadId thread_id); + + +// ==== Generic Wait Functions ==== + +/// Wait for Timeout (Time Delay). +/// \param[in] millisec time delay value +/// \return status code that indicates the execution status of the function. +osStatus osDelay (uint32_t millisec); + +#if (defined (osFeature_Wait) && (osFeature_Wait != 0)) // Generic Wait available + +/// Wait for Signal, Message, Mail, or Timeout. +/// \param[in] millisec timeout value or 0 in case of no time-out +/// \return event that contains signal, message, or mail information or error code. +/// \note MUST REMAIN UNCHANGED: \b osWait shall be consistent in every CMSIS-RTOS. +os_InRegs osEvent osWait (uint32_t millisec); + +#endif // Generic Wait available + + +// ==== Timer Management Functions ==== +/// Define a Timer object. +/// \param name name of the timer object. +/// \param function name of the timer call back function. +/// \note CAN BE CHANGED: The parameter to \b osTimerDef shall be consistent but the +/// macro body is implementation specific in every CMSIS-RTOS. +#if defined (osObjectsExternal) // object is external +#define osTimerDef(name, function) \ +extern const osTimerDef_t os_timer_def_##name +#else // define the object +#define osTimerDef(name, function) \ +uint32_t os_timer_cb_##name[5]; \ +const osTimerDef_t os_timer_def_##name = \ +{ (function), (os_timer_cb_##name) } +#endif + +/// Access a Timer definition. +/// \param name name of the timer object. +/// \note CAN BE CHANGED: The parameter to \b osTimer shall be consistent but the +/// macro body is implementation specific in every CMSIS-RTOS. +#define osTimer(name) \ +&os_timer_def_##name + +/// Create a timer. +/// \param[in] timer_def timer object referenced with \ref osTimer. +/// \param[in] type osTimerOnce for one-shot or osTimerPeriodic for periodic behavior. +/// \param[in] argument argument to the timer call back function. +/// \return timer ID for reference by other functions or NULL in case of error. +/// \note MUST REMAIN UNCHANGED: \b osTimerCreate shall be consistent in every CMSIS-RTOS. +osTimerId osTimerCreate (const osTimerDef_t *timer_def, os_timer_type type, void *argument); + +/// Start or restart a timer. +/// \param[in] timer_id timer ID obtained by \ref osTimerCreate. +/// \param[in] millisec time delay value of the timer. +/// \return status code that indicates the execution status of the function. +/// \note MUST REMAIN UNCHANGED: \b osTimerStart shall be consistent in every CMSIS-RTOS. +osStatus osTimerStart (osTimerId timer_id, uint32_t millisec); + +/// Stop the timer. +/// \param[in] timer_id timer ID obtained by \ref osTimerCreate. +/// \return status code that indicates the execution status of the function. +/// \note MUST REMAIN UNCHANGED: \b osTimerStop shall be consistent in every CMSIS-RTOS. +osStatus osTimerStop (osTimerId timer_id); + +/// Delete a timer that was created by \ref osTimerCreate. +/// \param[in] timer_id timer ID obtained by \ref osTimerCreate. +/// \return status code that indicates the execution status of the function. +/// \note MUST REMAIN UNCHANGED: \b osTimerDelete shall be consistent in every CMSIS-RTOS. +osStatus osTimerDelete (osTimerId timer_id); + + +// ==== Signal Management ==== + +/// Set the specified Signal Flags of an active thread. +/// \param[in] thread_id thread ID obtained by \ref osThreadCreate or \ref osThreadGetId. +/// \param[in] signals specifies the signal flags of the thread that should be set. +/// \return previous signal flags of the specified thread or 0x80000000 in case of incorrect parameters. +/// \note MUST REMAIN UNCHANGED: \b osSignalSet shall be consistent in every CMSIS-RTOS. +int32_t osSignalSet (osThreadId thread_id, int32_t signals); + +/// Clear the specified Signal Flags of an active thread. +/// \param[in] thread_id thread ID obtained by \ref osThreadCreate or \ref osThreadGetId. +/// \param[in] signals specifies the signal flags of the thread that shall be cleared. +/// \return previous signal flags of the specified thread or 0x80000000 in case of incorrect parameters. +/// \note MUST REMAIN UNCHANGED: \b osSignalClear shall be consistent in every CMSIS-RTOS. +int32_t osSignalClear (osThreadId thread_id, int32_t signals); + +/// Wait for one or more Signal Flags to become signaled for the current \b RUNNING thread. +/// \param[in] signals wait until all specified signal flags set or 0 for any single signal flag. +/// \param[in] millisec timeout value or 0 in case of no time-out. +/// \return event flag information or error code. +/// \note MUST REMAIN UNCHANGED: \b osSignalWait shall be consistent in every CMSIS-RTOS. +os_InRegs osEvent osSignalWait (int32_t signals, uint32_t millisec); + + +// ==== Mutex Management ==== + +/// Define a Mutex. +/// \param name name of the mutex object. +/// \note CAN BE CHANGED: The parameter to \b osMutexDef shall be consistent but the +/// macro body is implementation specific in every CMSIS-RTOS. +#if defined (osObjectsExternal) // object is external +#define osMutexDef(name) \ +extern const osMutexDef_t os_mutex_def_##name +#else // define the object +#define osMutexDef(name) \ +uint32_t os_mutex_cb_##name[3]; \ +const osMutexDef_t os_mutex_def_##name = { (os_mutex_cb_##name) } +#endif + +/// Access a Mutex definition. +/// \param name name of the mutex object. +/// \note CAN BE CHANGED: The parameter to \b osMutex shall be consistent but the +/// macro body is implementation specific in every CMSIS-RTOS. +#define osMutex(name) \ +&os_mutex_def_##name + +/// Create and Initialize a Mutex object. +/// \param[in] mutex_def mutex definition referenced with \ref osMutex. +/// \return mutex ID for reference by other functions or NULL in case of error. +/// \note MUST REMAIN UNCHANGED: \b osMutexCreate shall be consistent in every CMSIS-RTOS. +osMutexId osMutexCreate (const osMutexDef_t *mutex_def); + +/// Wait until a Mutex becomes available. +/// \param[in] mutex_id mutex ID obtained by \ref osMutexCreate. +/// \param[in] millisec timeout value or 0 in case of no time-out. +/// \return status code that indicates the execution status of the function. +/// \note MUST REMAIN UNCHANGED: \b osMutexWait shall be consistent in every CMSIS-RTOS. +osStatus osMutexWait (osMutexId mutex_id, uint32_t millisec); + +/// Release a Mutex that was obtained by \ref osMutexWait. +/// \param[in] mutex_id mutex ID obtained by \ref osMutexCreate. +/// \return status code that indicates the execution status of the function. +/// \note MUST REMAIN UNCHANGED: \b osMutexRelease shall be consistent in every CMSIS-RTOS. +osStatus osMutexRelease (osMutexId mutex_id); + +/// Delete a Mutex that was created by \ref osMutexCreate. +/// \param[in] mutex_id mutex ID obtained by \ref osMutexCreate. +/// \return status code that indicates the execution status of the function. +/// \note MUST REMAIN UNCHANGED: \b osMutexDelete shall be consistent in every CMSIS-RTOS. +osStatus osMutexDelete (osMutexId mutex_id); + + +// ==== Semaphore Management Functions ==== + +#if (defined (osFeature_Semaphore) && (osFeature_Semaphore != 0)) // Semaphore available + +/// Define a Semaphore object. +/// \param name name of the semaphore object. +/// \note CAN BE CHANGED: The parameter to \b osSemaphoreDef shall be consistent but the +/// macro body is implementation specific in every CMSIS-RTOS. +#if defined (osObjectsExternal) // object is external +#define osSemaphoreDef(name) \ +extern const osSemaphoreDef_t os_semaphore_def_##name +#else // define the object +#define osSemaphoreDef(name) \ +uint32_t os_semaphore_cb_##name[2]; \ +const osSemaphoreDef_t os_semaphore_def_##name = { (os_semaphore_cb_##name) } +#endif + +/// Access a Semaphore definition. +/// \param name name of the semaphore object. +/// \note CAN BE CHANGED: The parameter to \b osSemaphore shall be consistent but the +/// macro body is implementation specific in every CMSIS-RTOS. +#define osSemaphore(name) \ +&os_semaphore_def_##name + +/// Create and Initialize a Semaphore object used for managing resources. +/// \param[in] semaphore_def semaphore definition referenced with \ref osSemaphore. +/// \param[in] count number of available resources. +/// \return semaphore ID for reference by other functions or NULL in case of error. +/// \note MUST REMAIN UNCHANGED: \b osSemaphoreCreate shall be consistent in every CMSIS-RTOS. +osSemaphoreId osSemaphoreCreate (const osSemaphoreDef_t *semaphore_def, int32_t count); + +/// Wait until a Semaphore token becomes available. +/// \param[in] semaphore_id semaphore object referenced with \ref osSemaphoreCreate. +/// \param[in] millisec timeout value or 0 in case of no time-out. +/// \return number of available tokens, or -1 in case of incorrect parameters. +/// \note MUST REMAIN UNCHANGED: \b osSemaphoreWait shall be consistent in every CMSIS-RTOS. +int32_t osSemaphoreWait (osSemaphoreId semaphore_id, uint32_t millisec); + +/// Release a Semaphore token. +/// \param[in] semaphore_id semaphore object referenced with \ref osSemaphoreCreate. +/// \return status code that indicates the execution status of the function. +/// \note MUST REMAIN UNCHANGED: \b osSemaphoreRelease shall be consistent in every CMSIS-RTOS. +osStatus osSemaphoreRelease (osSemaphoreId semaphore_id); + +/// Delete a Semaphore that was created by \ref osSemaphoreCreate. +/// \param[in] semaphore_id semaphore object referenced with \ref osSemaphoreCreate. +/// \return status code that indicates the execution status of the function. +/// \note MUST REMAIN UNCHANGED: \b osSemaphoreDelete shall be consistent in every CMSIS-RTOS. +osStatus osSemaphoreDelete (osSemaphoreId semaphore_id); + +#endif // Semaphore available + + +// ==== Memory Pool Management Functions ==== + +#if (defined (osFeature_Pool) && (osFeature_Pool != 0)) // Memory Pool Management available + +/// \brief Define a Memory Pool. +/// \param name name of the memory pool. +/// \param no maximum number of blocks (objects) in the memory pool. +/// \param type data type of a single block (object). +/// \note CAN BE CHANGED: The parameter to \b osPoolDef shall be consistent but the +/// macro body is implementation specific in every CMSIS-RTOS. +#if defined (osObjectsExternal) // object is external +#define osPoolDef(name, no, type) \ +extern const osPoolDef_t os_pool_def_##name +#else // define the object +#define osPoolDef(name, no, type) \ +uint32_t os_pool_m_##name[3+((sizeof(type)+3)/4)*(no)]; \ +const osPoolDef_t os_pool_def_##name = \ +{ (no), sizeof(type), (os_pool_m_##name) } +#endif + +/// \brief Access a Memory Pool definition. +/// \param name name of the memory pool +/// \note CAN BE CHANGED: The parameter to \b osPool shall be consistent but the +/// macro body is implementation specific in every CMSIS-RTOS. +#define osPool(name) \ +&os_pool_def_##name + +/// Create and Initialize a memory pool. +/// \param[in] pool_def memory pool definition referenced with \ref osPool. +/// \return memory pool ID for reference by other functions or NULL in case of error. +/// \note MUST REMAIN UNCHANGED: \b osPoolCreate shall be consistent in every CMSIS-RTOS. +osPoolId osPoolCreate (const osPoolDef_t *pool_def); + +/// Allocate a memory block from a memory pool. +/// \param[in] pool_id memory pool ID obtain referenced with \ref osPoolCreate. +/// \return address of the allocated memory block or NULL in case of no memory available. +/// \note MUST REMAIN UNCHANGED: \b osPoolAlloc shall be consistent in every CMSIS-RTOS. +void *osPoolAlloc (osPoolId pool_id); + +/// Allocate a memory block from a memory pool and set memory block to zero. +/// \param[in] pool_id memory pool ID obtain referenced with \ref osPoolCreate. +/// \return address of the allocated memory block or NULL in case of no memory available. +/// \note MUST REMAIN UNCHANGED: \b osPoolCAlloc shall be consistent in every CMSIS-RTOS. +void *osPoolCAlloc (osPoolId pool_id); + +/// Return an allocated memory block back to a specific memory pool. +/// \param[in] pool_id memory pool ID obtain referenced with \ref osPoolCreate. +/// \param[in] block address of the allocated memory block that is returned to the memory pool. +/// \return status code that indicates the execution status of the function. +/// \note MUST REMAIN UNCHANGED: \b osPoolFree shall be consistent in every CMSIS-RTOS. +osStatus osPoolFree (osPoolId pool_id, void *block); + +#endif // Memory Pool Management available + + +// ==== Message Queue Management Functions ==== + +#if (defined (osFeature_MessageQ) && (osFeature_MessageQ != 0)) // Message Queues available + +/// \brief Create a Message Queue Definition. +/// \param name name of the queue. +/// \param queue_sz maximum number of messages in the queue. +/// \param type data type of a single message element (for debugger). +/// \note CAN BE CHANGED: The parameter to \b osMessageQDef shall be consistent but the +/// macro body is implementation specific in every CMSIS-RTOS. +#if defined (osObjectsExternal) // object is external +#define osMessageQDef(name, queue_sz, type) \ +extern const osMessageQDef_t os_messageQ_def_##name +#else // define the object +#define osMessageQDef(name, queue_sz, type) \ +uint32_t os_messageQ_q_##name[4+(queue_sz)]; \ +const osMessageQDef_t os_messageQ_def_##name = \ +{ (queue_sz), (os_messageQ_q_##name) } +#endif + +/// \brief Access a Message Queue Definition. +/// \param name name of the queue +/// \note CAN BE CHANGED: The parameter to \b osMessageQ shall be consistent but the +/// macro body is implementation specific in every CMSIS-RTOS. +#define osMessageQ(name) \ +&os_messageQ_def_##name + +/// Create and Initialize a Message Queue. +/// \param[in] queue_def queue definition referenced with \ref osMessageQ. +/// \param[in] thread_id thread ID (obtained by \ref osThreadCreate or \ref osThreadGetId) or NULL. +/// \return message queue ID for reference by other functions or NULL in case of error. +/// \note MUST REMAIN UNCHANGED: \b osMessageCreate shall be consistent in every CMSIS-RTOS. +osMessageQId osMessageCreate (const osMessageQDef_t *queue_def, osThreadId thread_id); + +/// Put a Message to a Queue. +/// \param[in] queue_id message queue ID obtained with \ref osMessageCreate. +/// \param[in] info message information. +/// \param[in] millisec timeout value or 0 in case of no time-out. +/// \return status code that indicates the execution status of the function. +/// \note MUST REMAIN UNCHANGED: \b osMessagePut shall be consistent in every CMSIS-RTOS. +osStatus osMessagePut (osMessageQId queue_id, uint32_t info, uint32_t millisec); + +/// Get a Message or Wait for a Message from a Queue. +/// \param[in] queue_id message queue ID obtained with \ref osMessageCreate. +/// \param[in] millisec timeout value or 0 in case of no time-out. +/// \return event information that includes status code. +/// \note MUST REMAIN UNCHANGED: \b osMessageGet shall be consistent in every CMSIS-RTOS. +os_InRegs osEvent osMessageGet (osMessageQId queue_id, uint32_t millisec); + +#endif // Message Queues available + + +// ==== Mail Queue Management Functions ==== + +#if (defined (osFeature_MailQ) && (osFeature_MailQ != 0)) // Mail Queues available + +/// \brief Create a Mail Queue Definition. +/// \param name name of the queue +/// \param queue_sz maximum number of messages in queue +/// \param type data type of a single message element +/// \note CAN BE CHANGED: The parameter to \b osMailQDef shall be consistent but the +/// macro body is implementation specific in every CMSIS-RTOS. +#if defined (osObjectsExternal) // object is external +#define osMailQDef(name, queue_sz, type) \ +extern const osMailQDef_t os_mailQ_def_##name +#else // define the object +#define osMailQDef(name, queue_sz, type) \ +uint32_t os_mailQ_q_##name[4+(queue_sz)]; \ +uint32_t os_mailQ_m_##name[3+((sizeof(type)+3)/4)*(queue_sz)]; \ +void * os_mailQ_p_##name[2] = { (os_mailQ_q_##name), os_mailQ_m_##name }; \ +const osMailQDef_t os_mailQ_def_##name = \ +{ (queue_sz), sizeof(type), (os_mailQ_p_##name) } +#endif + +/// \brief Access a Mail Queue Definition. +/// \param name name of the queue +/// \note CAN BE CHANGED: The parameter to \b osMailQ shall be consistent but the +/// macro body is implementation specific in every CMSIS-RTOS. +#define osMailQ(name) \ +&os_mailQ_def_##name + +/// Create and Initialize mail queue. +/// \param[in] queue_def reference to the mail queue definition obtain with \ref osMailQ +/// \param[in] thread_id thread ID (obtained by \ref osThreadCreate or \ref osThreadGetId) or NULL. +/// \return mail queue ID for reference by other functions or NULL in case of error. +/// \note MUST REMAIN UNCHANGED: \b osMailCreate shall be consistent in every CMSIS-RTOS. +osMailQId osMailCreate (const osMailQDef_t *queue_def, osThreadId thread_id); + +/// Allocate a memory block from a mail. +/// \param[in] queue_id mail queue ID obtained with \ref osMailCreate. +/// \param[in] millisec timeout value or 0 in case of no time-out +/// \return pointer to memory block that can be filled with mail or NULL in case of error. +/// \note MUST REMAIN UNCHANGED: \b osMailAlloc shall be consistent in every CMSIS-RTOS. +void *osMailAlloc (osMailQId queue_id, uint32_t millisec); + +/// Allocate a memory block from a mail and set memory block to zero. +/// \param[in] queue_id mail queue ID obtained with \ref osMailCreate. +/// \param[in] millisec timeout value or 0 in case of no time-out +/// \return pointer to memory block that can be filled with mail or NULL in case of error. +/// \note MUST REMAIN UNCHANGED: \b osMailCAlloc shall be consistent in every CMSIS-RTOS. +void *osMailCAlloc (osMailQId queue_id, uint32_t millisec); + +/// Put a mail to a queue. +/// \param[in] queue_id mail queue ID obtained with \ref osMailCreate. +/// \param[in] mail memory block previously allocated with \ref osMailAlloc or \ref osMailCAlloc. +/// \return status code that indicates the execution status of the function. +/// \note MUST REMAIN UNCHANGED: \b osMailPut shall be consistent in every CMSIS-RTOS. +osStatus osMailPut (osMailQId queue_id, void *mail); + +/// Get a mail from a queue. +/// \param[in] queue_id mail queue ID obtained with \ref osMailCreate. +/// \param[in] millisec timeout value or 0 in case of no time-out +/// \return event that contains mail information or error code. +/// \note MUST REMAIN UNCHANGED: \b osMailGet shall be consistent in every CMSIS-RTOS. +os_InRegs osEvent osMailGet (osMailQId queue_id, uint32_t millisec); + +/// Free a memory block from a mail. +/// \param[in] queue_id mail queue ID obtained with \ref osMailCreate. +/// \param[in] mail pointer to the memory block that was obtained with \ref osMailGet. +/// \return status code that indicates the execution status of the function. +/// \note MUST REMAIN UNCHANGED: \b osMailFree shall be consistent in every CMSIS-RTOS. +osStatus osMailFree (osMailQId queue_id, void *mail); + +#endif // Mail Queues available + + +#ifdef __cplusplus +} +#endif + +#endif // _CMSIS_OS_H diff --git a/vendor/cmsis_rtos_rtx/LIB/ARM/RTX_CM0.lib b/vendor/cmsis_rtos_rtx/LIB/ARM/RTX_CM0.lib new file mode 100644 index 0000000000000000000000000000000000000000..71cacd57d7081badbd597f3bf26ca13deb2b7ff1 GIT binary patch literal 490048 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 M>(Wt8z}C3`2O>!~L;wH) literal 0 HcmV?d00001 diff --git a/vendor/cmsis_rtos_rtx/LIB/ARM/RTX_CM0_B.lib b/vendor/cmsis_rtos_rtx/LIB/ARM/RTX_CM0_B.lib new file mode 100644 index 0000000000000000000000000000000000000000..b9179814898649102a4fc65e0307e296d8295287 GIT binary patch literal 490400 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

uzvpqh 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 SkB=n=9coQv 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 literal 0 HcmV?d00001 diff --git a/vendor/cmsis_rtos_rtx/LIB/ARM/RTX_CM3.lib b/vendor/cmsis_rtos_rtx/LIB/ARM/RTX_CM3.lib new file mode 100644 index 0000000000000000000000000000000000000000..f6a697f6b6bb0defb809f9a53d4bb5d2b4ab6807 GIT binary patch literal 499066 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

V% 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 K&zwIR_x}THb}XR) literal 0 HcmV?d00001 diff --git a/vendor/cmsis_rtos_rtx/LIB/ARM/RTX_CM3_B.lib b/vendor/cmsis_rtos_rtx/LIB/ARM/RTX_CM3_B.lib new file mode 100644 index 0000000000000000000000000000000000000000..c25185f3b595d6b21358ce5cab3ee905e19b9a24 GIT binary patch literal 499470 zcmeEv3wT^rwg1_3W+szI+f34ywzOgTpd=+Nd9_U+gyuDEAWcG&mR5q(G?_F5c{Q1o zl$R}*3JMDN0KE#;>jS)AHB}U@qM%%#s6|ondhfL;f{0g&p!ne0|8K3m&pG>?nY1O8 z;P?OTfoaa#YwfkyT6^uapXZ!~>pO?LdaJU|i@2{64V3r#zmZ6JS=mZSvLnkdjQb5E z=fD5&cbaYB``10jtNEF$|6ok|_wVxzGtJL`_JHxKes^7H_$T-UvTirh{x1J-BjEkr z`*$Ot|9<@@BcT0)l|6?2yMC<^)PFy?&Inq+<5w9${4xSRnfSNm%|^zFf3aBSNPjFA zD=mo)Cu6mn+Zx(pU9rlt(pBB7S9SvtYpvf}y2>~uy0%Tm;7BYnkVqyv`w~~hy9pc~ z9T-Rq?4sLbqCY+y>y393qAuRoxfg#giVqLO`x@*_c2cXIQIfPJJBO1twr%f7d!p+K zz?(Z0ebs$^gI(&r)&&g5JCkvRi4MoD+l_HzMOj-$`7S;((zz>MYm-Y@kx4*Njwa({ z4jn;IB`ymgs1;D>2p2@)C7lT>pk;8-mXhvmDH*VeB|u5p7VqyI>Kz<*WU^E2^6V6+ zOgl-H+m_fh(AifDk%l3KgxXknd9TRYdm%!%t(FAq$5?a;z!VKsZ#L92oERKVB&iN% z8rY_!wa17169cjeB-QprypQ>iGt_qW^-+Glw~WA$ts_HL-78>l$jT&n0%AQz_H;?N z!cB@_*=d$z*$I-n11i@-0y&5>3PCO>aT3T&9EjY6Ak9xKP$^}BR;^jErGw@YK-o3w z2x2EW4DBS1shwsq)}4Vkvu}_$*nmYT?dp^$Vd(=Pwn4kX?L^%R>_o>6>?G+21lo>Z z1JV;L&{0zJ1q<1hgfoon)uMm`xEbM|j43060xSeGQ!yl#=Qx$7zMKnFhcR8t$)k@W9uau!OHr!1?CDz@ymx#LKUDho) z#Cj6LBg~zEk7H`fd|<3WvZShp;r=~VHoEOg zpfu8}f9Du1-4##liQDjqGA-ex1;B^^wxGIKx>B-E&&m?xk$At2pnJzt2(mcQz2fA} zV3{q6hQtQz+Z*FF2#`qbv1)^Etz;sNQGHOA_j3*5kM6R7u1Fv_g9l+O&*>+l+OABH zB_Q1otFDhU2WSa4Jh(H#-rCiBMa%{$qk>{x=m!S7Vmk-N3}(o8;Nm0$=t1}GM)b$~ zNkB%Zd*({_ZCh(&wS%JrNxp0E+}Rg5x_9o1^^ff0zbrQ;Bs%QHVPyLHw;FK&T4F7y2Xq1^>2TlrNZv(^2Ztj29~^q|`Tc?M%*gc{hyMJFheE$FHV!dA zc!}#ot%qcf={bxgx*Rfn- zZpuFrED}e~Eb<)*7nzUEJ(_=S=*9gvW{w#sDf?K=@V&V2#+fgE^vhkZrHem#~)k5#!4x)W+XB zvoUzgG{snV?PANnpLyZSB~IicxzpF@M7E!ZzA^Jy^UCAVqTUGG-xm!n%YE!+x-T@2 zych+%@z!Uam-QV%Jr@~Ag1!5IGZz^T`_D2Sdu8KL#{MG)S#W;!k^Bp@|J1zu?=`nR zk@KA4+wk1i@*dh0>NTG;eP1hR{oCPVFV@`nGkDU*p+7YbfgAXqpUKR@F_5wUG2fU# z3Cztf?kj1`S#0#~JQ}!ZR?RI>_@nu~d1p2(Gah^S@J%~>`w=g1nl&%6KRlkjW6pym zJ9a!+BIUej+9IQO`%$xI{}F#Qt2eXAczAu*~A^i{UqkkhC9?ZQjw=sV#^1zNwc^MlX3v9~k6`MGYp?|vJLB4C49y#8d zIdmhawk3(qr;&{&0Gk~ux5@HnV|#porMMmm%m z8v8KTk@<&|F8ei2NSbMmG@zdj3w6TAt+4S1w@qQiTv8qbL?JQ`>) zdo$nBa1=H{%P5om1^b8p$hp0d&u#k4=MDc0xiie4FDW$tb5ZY;<3*doTw8%7XC5`q zHVEJQhZak zA2{kG-&|tYbiwiY(S@5#%0=}^bt(mu<#OFh4v~cD&FXzPnoE8a6-0+tY97hyoipCj zyA9HZ#xv0h{f)uiCF41J(M~A$60zIAyZYIO7Mqf@P49=5N=zA=5)I<)9G3{AF1YCw9zTJ`iaeaQE>^EnxfJcUoa@$-ec4Jh< zz0;qm>}Qu(AB)}@oemv>&mP%mjGr-{Gd^#8cEtG2gZqy~D~UE5c;WsT=&`_?;RhZZ z|H7u6-p(SUS0I(+&C%eF&R+P@vk%P_5p!rqw1jdV-nWpWYqap0pDNo9MQ4w1diF@Y zFBe_Tn+e!-P#0&S`wo_~UI-&N&A>E4NCHv2wxi>sc%rX^it11zbTkZf z^^JDNJ30)b3(M%3F*gj1B!^e@%DHa9N4d?H3^C8=12+KwkalR>B(+5SSU0bS9o{M& zJCq#9Wp)ntcXgd>h-;?jO*1l#43Xi>Fhl-OAQTK`ghHXrP*x~ABPTSS#mcdS!(S5g zwDa)2dO6Cxa-1TMnVK%MtMjir;Cm;#noFli@G5(aymT9r)h8p*98I_G>ilaC_-`-| zo+ka4yhiOGd()o7qG}s;Tyk@)WzEE%)WZGGsKUSY_;9uz= zlkqKGrumbUN#~I_Nglc%Wu2_ez1 z;~?Eun@&TV*JV4M{cGWA)U)_B=t=#Bbv4%HUv(gOL*StQZRU-yVQdny7~(Hv#5nE- zQJJo4|=*_-JP(qC&oH(|RxNnfD1fqxVpp-I|9_xZKes5_1im*!u48u(Sgx85l( z%6|*~g59L*ORb(zc4KLVoUcr#-gP}&PJ_?u{Lr>v^O*4U9Fr){aM$m<}~=AJ~z1hG|dfk8GBBHjHlc7ll3WGj?=+o_9T5DRgrugf!8 zzt(w7cCMuJAiE^h-dh&--aK1xwdd8Idv2t5uzx6#cK^)~lh}bnk$inwl^c4!%N@c& zSUN*%Jrab;mqG6@sQRi99}MKs zvlRUN&qjX6M?f&+Wu+6-y;;}6cv-Z}gbH{{f;31dLi{;4#X4}EjP4msbQ_DpV^x0; z;$wj6ISSMB`0U_U;~ykH+yB z2CE&q!dSvS?6|Z`bI!ZS@($x$Q>(VJIDn!h*T z&wkS$=6-&P^`aPIRDD5+8~mAe(0tUW`V;zPe^#1@qg{T+w5fhJ zTSR|Ces+jh;qr?Q`6<4e_tQV$GNOMZ?AgH3D-NcMyCil4oX~8cBwS+C6zjc{O0D{i zPkh|bJ5AGKvQ(AV3G*wm!bJvk(Dbxcp7A-~Z9AgBwM;?hy@KLiWeQUETRtOt6O!2$ z(}B(tpVVzJ-H6^xXlk(3S*{SD@@Hrbc9{|VHsO1Kqtj~Z#b^DQgujLwwE1>Qqid>t zhyzL0i$Z+EpK19}+UCrJZfjCYhXeh{vKqt)ZqIi%6>~iuf=|CJJDA&}- z=R7L3>Tw~CXg;JK=5~bxCUoh|;UHD-$6R_7d%C7NK69I_`n(Wd(uTM4`Ds@?U^;hn zzFV|}P+9VtYCq(tOMdvUCO3|W+7FGpq-SbtOlJ?wd+E7ce$4<4a&GpF>S&-InP{M{ zv^J)EJSY7SgLZ&va#b&B3D?}Xmo(W}ZV=1g&%UP=W!WAzXC#8ZJBYa)_v zsLmNI^-g)Hj;8omcL@4*z}1Jn--_Gh^wY)D66@;2aD-Z(Yo4k#0$J~vn?3KCB+ZmM zHTv*u8!FSZ%sfOE#^o2sTq?`d-@G9@J%cfC0OJw4OfbRB`cxd58Y~oj+O6oH(kKeT zH?02t=IELx%%-V7rIx4uUP+_YpWl%B`->3!gLeH*7=qK+;K@TUYV^UFk zcvmM=Mhkh+jjsQEL;UnVF~%W3O(VYa%@ZxI@*)AM=jZO~`Et7Inew#*KN+>^Cm0I_ z^VQpmsCN9rl#Yw>w2&i8Y#m*d;~&m!dAI-Kcl%r4?f1!*5Y8X65+$FhUf(IBVlViX z5Wfpf!@9U!wNDI;#PO~!>tdSTAzlIZWg5N7E-VJIs#sX18zgQY8jkN#_g22gr`QK8 zsbFiZ3RQI=Bga;0INm>qH@`TmPfYA6<&4*OeF|&*6KgirZHxChtNvSv+e2p}HniI> zT;lj}K$)AVdQ}DTy0}>28Ez9PhTC>c@_HQV&o~f-SHd?Xt7B7KZzWW$GbY78z{fMP zZAIm4m`GLVBQMUNR8>P#fhWt8dxzrWg2rc0u#(J7cqQ58tyA5%@l#<{zZK%q4Bqmf zI!&`)!erh`^>zY|?~?LrPUTdx)?B6erh4yf2^C9wZ@<-b#e2V8{TowxRZUebwd$sP zoLR{FVBPW+M<4Wf^bSFnMof2djj&T?SC*_G{CjkY+h8&4bX16Yr_IA#t<)X{y$g?9 z6gd@LOr|z4zFRg zp1PJ#y0!dC8ZD=K-WMYOY4{2R%leLTB~BVZ!Y_@T`1ggNoHqoc4-(ZKiYh4nE5wHa z4)dXaFRA3IUL#&h<(#W7c5t$F?mS*ewr4C{YLcT zh{M^{K+*DPg?N5i01lIVnL+>dkwau(4d2Orhml2p-s`(rvC^*l$8{V~sZB}8WvoL3g}Ncko9HS1iAa{>lt!J4|q7Or*z+jzHB zw!?H(<%}Z6znkKiAa(tn5VvGHy2@8~Pl2{mKRzuXBUgRYCyr!dpL&9-Wg=_;$k`Tj zyLq~*b%tFCTNsKymZ^n63`PH$qS=!`Q3zZjewfK2@D++?IXM)~a^@lS+kE?_%Lvg=khdIydB|IG#nYKI zcFO(=_kG{wzV8SS@;Wrdw&G(P4Ie>|pR+-Uz)9rEml<97_X;F0B5%H$=VgGVI*#*M zm@4eWyfcf|t2W!8M&QV1Ee|kNFWwy;$2+v;8svtQKFn32)^Zi{Q0x|08``m5WsIp_ zZ(T&?R$(vW!;Y@jYx!O3GND)9RQ0gHb0YPoeEo`^D>15$2yxiaFWtn7=}xX5R^%M@ zh&3)6z0zO*RPCSfh_LE=pWhdjQDXw?f&-_Y=$8DX{Hr2Fhr#98pdjD}+HQ%_kkpHmtOxI*jT}{tg$j{TL zIn{M3$Inj-@m$snnk&TJU(n%(yh}M6)Ar)shVmmj)@l0Sr;Xk&{%QbPJthLK8Wxlp z(F(a#Un7}KbvrGiVrjkdrfi-kSV}mJ)tVPErKY9oQ+J)DPgQdxN6*wgb*kt0ycbgS zGa){ZP2&fK86l+`)q=LKbdit~b>bnBL`fyzD=A}hbOYcy50 zG@fd_G3N!V?(m84XV1Vm-jZ88DafsgEHC?3M>W;Ip1esS=)UafTe4l9?fcxF?GcG} zceW5>*Wq=HRNMTA%QhqeF2u&E9dF6`!0njd zWn-*i>z=kb%UOZr7$@}kC|=gA??4?@>UJZQcA##9FXSAA%CtZ5)k9}|#?vViDMH=OzAIuQS8=~w!dVUDo+;KTLghBx17lB{ zrbOT*IM}qMv{Epwf@b5>XjPwPI;KdWW@g z@J7we_W8sYau6#fauwNqoYYm&9FDr1!xwX0oyBp&o(;8WrDwXhUt&F-1<{b%rfh!7 z&w4p~`TKq1;hYTpvy#GoB$-Kj*$^sH-l8=bCYvRqp7HzF+(y`E^_b+KS>kIsX`b+T zqiul6`gbfFsLyG>S|fPo=-+i4!JeZ_BYZcF5vIJ~52escdc%9ofq#j$`RUDbPi;%C#Q+k40Qi2AUSOol}73Y1&7W;G9H#+JoGuJ<9+7 zl+Hy=ds?*QM!!x$%+d1KE-e+0DUWkCRIt;=5$pF&r}M1Z*Jyc=^n?}nlMmC`y+5(KGv zAPDk<&WFhSxcuS|(_JG)no4RT#TO;k9R#O(ZO}75z^3sl(=kp=*KFkIz||k7HXG-_ zNccL@GACuP_+ zar4d@v~h!mkQx@4c*3yYR5Ons=?zcb{hD{BReGw|4S163=!^w~J1m{)u(@l%Czs7q z99%`h)bKYOJw07Vr?{`op&TY&kzs2C~*`a(+vr+MGX;ggJjVcyQ}iG)4)_xdi##-^?=H z@699fU@$1ZgVo1*&PMO%&Vwuled5~sJ{Xu9hWw6Jz%<`y21TI6yf&C0FoS0V&djHq z{NS0v{NRPSosFNE9av=UC4?|Dg84on%WIiLd5g?{3ZOg_Y=bl9FCcpI+l1^eqfn73Z;NzwPpnZC>q)>3W%A3Ina#sf?7%jd8YW) z*-@BB{Xu~O<`HM}(;_(6=6CBPbZRo6WqyH>84R99is84ErG}b;0KpJLAnM=R}k1T^-e;jZRW3YNJo50j4Ui|D5XJhCJAR=OER2; z!cmgtmj@fwSS7bD>HQjM==wrGb2^u{@|{4pB|BH*wuUQL1HWs8zTl zJ6QfIW9P+b+Xucy$Dg93FVV@b<5}OK^EMszQM%~pKo`DA2WEC#ikL64%(DU!RKnZ< zmu_a0S*|46Bf)&X&%Ehcs!zW#|LhCq+b(IzST_kv8H|`o^&LDL6>tqS)9PBr*VoO)ejnudK2C*_1p`aW@0t05c|n#2 zwgv8Xk_X0p7Vc=PAcAK)lFHci3ft#(lQVFZ`7zj%MY>mtgruLcw6kHmc_byt`-iJZ zP6+%*DR4$`Hd!2^X9O=`il3_N8RjP?NoH^!Bi>^pj+w!^U_&9I069T0E094IH4k1W z&H%%=kTFDXp56YZw4Ng7%cfNKd8KY(xp})^)es5l)DUjZ(ERDf*SDV7khVW9H23?J zKh1I(P5R8HNwlem`ET4eQQg2z?e;k~30@bO4}lk~g?^gYQCAlT&VxH4#>_H@DJV{- z20Mn@4lcuwdx1F!%ILz$s8WyiNt9h_{>16GsbIt!l&LsNzEkQ`o6YwIthS#ao$K3I z$)+@p$V>hn2o|xRPUDwyPO(oNvgAzXQ&TESx%u&b7+KCTKlKkI%Z29Qe;8R-oA;kc zmdT7w&oS=`s<=U;`lWJo_6D?trRMKWq}$}iK94{*1inmXYbGg?|uEOqv1Vzj@Xq0?`G5{R~ipNX*juuE~u1P4jITK|w;Sa0@YW zCM2NIHKKn34a9f~5Xht9K1De*o6^j^Odxv(qLPywC-!$t!Zzodw}sd?C}}3fAl&g# z{10GUOCx`6?lhTx?ak)LpfiL$i{=%uupH_a1QtqlXY}`)<#-t;|+>L_G%-~soL6l+cVL?b{ zx>=|uK2o0ENyt-dJ_~u|7@X~#j|!&Jcp5=-aGK!26cPBG=4(TfC~JlJH@hrS9O`6X zOwXF-LsQ(%pu|y>3JpUv$V9)7k%ZK5GV2XH&3mSCT^GPuCJp_T(HIrY7bUQIiELMoCj=^J;1|fN)1?GiUPrQO+PU*d4RY zF{)dPrRiU4XJm#9&;$1QmG6C)?f?4CCoVG|gdRLxy^V%lL_&DfXb6@BLE3PPcoWKc74`kimR z&h6tO^LH#Kw~${BlMrYk7nyfq^)FzyA!whMA1E+e08zIn%yMqVrg<@uvMLLaj!tzZ zf-fm_7Ev9eKHt3EZO3hssFQ&CG{qs<1pgJIqzs;}lPsBZ=QAhYhh1cTC{x9_1yK1K z)?*I!)Tk=V&`9Iuh;kbkafYm?04*}i3@nB`f#oC>YHlG7Ww7MNt9O%+@m1#Ete8sy zeinDskcPUL3jAomz@Zljc9*H*=w$ko4d%_3{;#^c*E?>XZ~g$Xu~#0au>zd(d~-i~ zI~vU3GXi9I-9W)v(kKCHW3(0mPvmhYR!FRVcS_^a1?Jl!Ew8b?;c>g(yp=6?2F5<- zt+b|P9y4g6UHWSGB--U#^CjgwFgUf&bnDq?s$re-(aFTo3(Q-xR2zklVu22|dyZ%1 zQw{`FqjB{$`GGm8{xbrlbju^X$+ySz%tI)fM_Y2yNEWObAqpjz^DY%BT_-bNSYeKH zdA!GCD@vm+-W{Nl>@oY4t{JUCWjiA#Zj`^J!7YYMw`Sol>Lg{jq-MR zZ*wcm8?ydU+W&I%9Ve2dcM|P?yZKwyE}izTVgOpb)rG<}tf}2==%+3;Z_IXL0D5KK zD|9x2sQpuOp{cdAXgm3Kzs`I=%G2hOXLG=@+dVpC%=Xf^%gMC+wdTEP%1h6GO56Q5 z^SI?V7)Ri*d<#m8U(eV={DBx2G^^G;co8C(L+_DZ8VuHY2$8v5u} z=EtovNCWb?FnQf_zDMe(1~wz|@M#;QB3t-d@W+v;0$PTW>s=ly+mTU~1YAzOx$ zmquVf8rUy4Z^@xs3?gXbT+n<kMwIp*J#jL$hTzV9DP#+BxQ9BId2Ix^nv zmeJY3v)8UBbH1U~{EOxD*c?q+c%-F_iHF~BL|eE7i!Yw>>f^)gYv#wN;V-+IXL(PJ zR}Z|t{e-(MTx`CVmRV#kz@Bfa!n`R$bpHB2ZZ8?lv6qt)u zo!MyeZvh5k)5)ts+~Ox~gMQK_n~VjoZaur+e8iG12ctKZ4P~4e2vf&{&59zkhwcbr z_DM6H$!EYwSnjDJflM+e$)3%DKa(qt&{C5EHlQ4LPHF6KGCzXz3-UaV8mE1kHe4`2 z`^t2(HyJX$zfb8nEntpMXKB{a?411`lZD_p+J4Lw%kytip7j&TGo|rhmHAcFql^b= zmDCejYc!KtJ6&nMZwAd{X3;2RuG|lsO*i1I@3&57tW|G*2)x0U_P5Bzs0q-R79$~j zG-s`$Pv-1Qsd)(J0;vp|S<*%=?ibKpj1J|+%^MKDrs`4Gzmv`4rf;vsh8>Wl6$0xSf}p$5Wp< z5G4Z29Q>^6nU4FNDjm0cktWk6w{5t6lf2!5+nuRp%ukU^s|R{`Xnty*yp%keE@X?m z)I7THW_e7H9H9#ysXRZFL|C)r5V}DCXjjQiS&%1ltrm} zPR2I>zva>Ea;C@XR5z2+*RTA8@>`c)4h1`^QT?h+sXuxP+EQ6*t8iPHT7NpvIUd=i zo2VCNBfE4)2iD7W`(BBMlNR7sAXmwW<=BMWdWg}q&>BGn7_E|wqPX3Zj^~Nuuhz;m z@!UGO`jgT9{527q4QEikdJQ1FehH<+6N(9s+6vBMPVb<*o|~qZF^a zVboHGOiJSD9JG+C8DFQEj89Kho{&cyl3VxlN@cT3q_4%jw;j3dN3DXqQFdCsYsuY6t?zf+!#noYLiZ`P6Y6bsKQBfloOnLr z8OvJ1)~bHZ;plZv5!qpA&Br37ziwTorfz4Zj3uZ~P!k5Nx0+Z^Y9)Fb(`+_DdzegY zaNEXfX038h$+i(sJ!`>0tEP!{_KyB&x{@pFb^@DCrri}-^D#>h&7G|z`g^K$^Su1D zfTr_1Q4G}7dsQ)TGWyfZMwg53-F{HxsmBN?RM6aj+nUtzncwzz>fbL%etlF$exT;s zy^KzYpPu&K;}JlMx>_vn2Ctq}Ster>iVEQ7y3(c5I*N-3Kx$h*x!=0&?OmOb;my@Q zOP_Kj>2jp2({$rFYGHOhf%p5=Rkzp2Vv$AB_|8aKWu&a6v>Y`JM0>+#MwF~sTVArZ zq*SK1wb#{xyp%~8*jnG(*3jHUiEGwWl&ooFRDIn>n~d%qs)`bsnNr&t-c%oJ-`+w6 zjSkRvD&pOd1ipSt0uVtekv#vDGn)R!=1k zm?BagN=2BqebbiBHOdw$y`{A|+R#|cAKO&j7`>#qwN444GFe#3Pu8Ue zwRuZpdqYd(_VgL+nzz(6)=$j1u3>9KU48nzTbimH8#Xr8PasomI+rM4~B(1c`&b&+C`>>cgjso&dG(AWmwaG(0*mkQm_Cv>yT}zed>`?_>fZT4-~51kf1XizYwrg?FYj*hFXBL@$A8 zzfII0AMQ^KbmB{^>N?9Ne4M!9b7B1bocb|*YDQfccgs6|--W|Vy>U-bEw-re>2xWU zdJmzS40Ae_;Zgj33k16;K0FZbYp^Y$(3+l4D29?!e&ttDIi=q3B5HN4NR$p4YiXC- zMqe?-2TaxFSnbb9fiWhM4dWo01>eon2wkGtX2W~6H5!j(4i#%@73mSosdGzBSxws$ z@jkoG&#{D(1=@Aq7EiVeCkBTT$-Po&!*EEg%CddPOKKM_sAJx5If%PfZF}Im@~o@P z&T&c1F;wxt(`iyXaspm1RUI#SMdy`9Q-{)3DjJJd(KBuN9wMGFA6`7&X`2j#1timT z6hHWe3p>}ws%qqym=iTFr;Qy2#4VOTLEG8aM`*fiEA#v0xQ%IFsg*RC1z94nE>ywJ zw^|jAQ`Qlr*k!dP@oiIeIb~Umf!V0nY^U(~Ec4Mn_p3;3aqw|0=^3daJL0@VY+PTL zRcs1ut)6m`I0D-R;p-?46Suq$4YxMfMui`Gm6W<{VR&>3VNyvPHq>miL{X@>94e9pRzP9p6bZi&P!Tx7S}jin0{&dPB(m*@FNR3pijRzR z?uxrrvN=h4sYy6*;Z&tL66YXgzv~^Yio{Wy3bRObksT(g!cxnznaD0gzDO^SPjgH(LAcQv7sh)f;S@;!^9P%{a9UnZDU&m zOky!2ZEC~!U#wd&=>Sb-Y;!|XWO->B_WmvdT)Ijol$Whug`_tlsl1Gn3a={}TiqkC zB16!0VpRoWFqLhqt)@w?PNPVB`uae&k-Ac>Q>!j=Rq|>Zno`}cB0Z;S$ND&SL*9_-fJUMO)!zQ zuOW-s7C`ZA^J|?{x8<*M5b5my76+Xw!o;<3K#&koyB2g0gx}p@qg8cy@CR*t`dWFL zjX(8TdAprQ){1WDci1>(936SHjZ9NRx7f&3^GsAjw+c3@vX0l|Z*#Cp7*~V1-9e|T zuXj7>RDmY0uRBQ%ta_yjDgR{S$eFY#a2J=wxx7mJGv$HrpK2ibxJ?gErw~%^<)XO& zcZP{o{IsxE^(eG@9PTp?(xc>I(S{Yg>h|W%4Yld4^EnsZllcokVyTgWfL@8dFNsTP zH&wH>4d0h7pn97jzGeZC5sPVGw?J@Eq4JyJ5^7s%l=zmyc!c-?*|suPTR2t}!Osv! zC;`6Zq&!9`a3?3_hm-;j;uNhy#uhK;F#9-HfX#LB;!!aEF(*2lW$I5j)!{Bvf6A%p zOOTQLKS%_s;)!JVIkT96f_c!04reXsn=sYry4~+h)!zxpi?SU%69XN1n`&a9t8cVB z-eDNBYsY&akr^*y<#Um~Czzk%&pjyvJ3B3n)}B{;?zxfL!TzB{UwpVYvT{X9dF0ZX z(L`T&q^#mH9$S#O^hWdGh+LEI>g^mha2S82cW^jq`27J|iS~yAyx>g#fHq{WU@Phj zJHg84q{#dZ>@aEpsxp=|!rfwNgaA|{pb>EnL#RGL*N8%fP;E(U+rL#5MOsEx#ysOz zQ7l2unrD1iESE56&NDtIR!CT7|GGGjxyAb8og-G^E43s`gjHIaCCF+m%@(Ip@^=`L zQ0w$WTeS6hsx9F8da5mEl`N~rlJXi+>!e5_uMu@lk|krklVpn+RV7%=$Se(7niBAH z;zBLamhU1h(H5_fi@}zItfFQ~BVl6S!ubBqF;!`8lE6y%x@eEE-{Bt`-(o25n}y$O z8sE;vz_b~Q^0kOJZRj61VSu_K7Hev5L6{!EVu)B3i(L|J0CZ(f!Vpyi)iV?~1je3i z^;-dr#P=8in>7t>HHAfh6C*ndOU9yz8C$Uzq!PRBM7;OBZnLE9?zbp=W3g6dHcZTJ z7XX`E!E1PM*bsLSSkur>@J{+3`8`NztZS{`R#ON|Ao3L|M~zVVeci+HF-Aay!xrf# zos=pfh4jl7=_NWTRZlA0Z-EvjBMJ6&_Kn7iSq_>nP}wpmLTQG0+#=m{QqrRq=_My6 z{S8QK8zBG`#@pWNB$_*j(Lq(Mc3bZ0;Pn!ZynK zkNL&tEir5cQk0=#Nh@W*-heCTx~Ki(N8(Ibhc(r0^~im~qH8)w;$Y$weJCJ~T1DFo zWYIentt{G`bKS24;(siyqt)1XJ*nPNYFsY)*MBT1{%RGkF_8jrV`O?MLTdiXr-PzQ zc|mP+Q+sQ3qf*~Y@5Z%*1Ib~0K*{pQHHR|91qa5|w^YL4NUjfB91TWQRm&Z26Hr6-Q zw>H$G->yXZ=5qO+0Bd~;a}$~km5h~?qaRw6j-qW#4HJ}tU~L)#bggMpCFAw$Bc-c~ zBG-^eDMb@w@H`(lb=<)gq#6rpZJUv+bEMx8H5fQFH8wQSxFRvoml(j%0>?qx+N;|! zDO0GCWM?wbrBQUmVsu_&OB=TBOAK?&=QsD7e)B57U-oM9+0k2GO{_lYh~F?&w^c5C zJbMO!P+=t2#gnL`is2p79i= zaKe?MG>?GR`ZmOMrYH*+JrtlEwKYabLD$Y$5)}vbFZvc61=R8sAPUf94N8QsAc<}+ zhHpADomnsx>l?Vj$n!nqTkHogY(pVH-8Pg1Xr~S37Ieq^lAV0w1fpd47SAl;!2kx( zTH@@2_@4Mcazv8MDY&vTVFB|B`bT!5*hhSe=aZ~mSHyaTJNuQykpc{N;=_Az)P==d zNE+51JA8|a$Wp|gc^unDQ`(AbAa>!NuGJD==2x;h_bXc*EBRClT=;iqBB9#V*Y~UAiny< zwG|{59|jAVCC~hk*yS(!P6$l4!I|cGo#}Kr2^IS^ilsvG{1=KLf6-H!D0DO6nchNO z9*i#%qP8uIy5v!nKwcOskd;99Sym+wkfSPr?x&kiWTK*}64(d*KkzNig=GFqAsI=M z=YL9E<1hMR79?u}9P&!m&%Q;qE@0Fv;seUVeXiC-EdL0W#3C=STD(>Gi|))OZMPsL z$IH}dqoSY>?WRvwm78b5;FSXya&vPHp@2XG$xQt60(XjcpoGV%gl+AcTa6IV&%kZQ zV79;)$%T?#gybi$94{4?EzcJ#nfDjVX2}BB720AE-fr9q|~Bw%Ztvd zC|Xv?*mEQ0ml>j1XHc2KVO52P!|I~*Djg1G;IN#J_EGtI_MKc{#KuK5)`bdrO+-`6 z>fPy)z!UWE=xJjZH}@oV>HWKSNbBESB(GopZhe_tYnvI361BSC|EaNe=HpSooYwGG3&lp1#gqXp+V^gdmW63F){*M@hrO zgIHIV`3Ua9v4JawWsj*y_%!9fXul%rABy1j3m(q$>@$;=&wJwyFZrf zM*|fbB?SPBg7T1XiJn0#2?Cl2O;U0J^p`~-?=?vN5GR+*WR!#CcO&`pHnn1f^iK-3 z7F;h|`|aWpKnFpfnG-2@BSo_#QXW7G*$>yF#EyduNByeM82;fDt% zeCOg3^_{Bv_RW8+3WII`ktnNJsYaEP&mC1O&Y9?xpOul2p@T+mK zP4fCR6ScuWu7jx*hHk^V2aNEjs&o6WhjA+magB>ew+$X4^qq%a34Wzyo23m+)wS&n zTY0Ww1u)o+gAK*9bo5Q#;R>= z&i5WIF5+{3isbdHZLVgy4rLC=fRX6NA}EdVDNZ1WaJ3d$Z5>~J#FiMtp7u0x{M;PxuNfS(YMR#(4EYW@ zJAT?Er{6-B#*W?>K<5nrPZswf)Zp-5x7>%6e`d&fwMkwdxr^Q{`s4kWc*xPa@opN1 z_r(WfZS(Lwyt`#{{pJ=Uyjx&w%oo*d4Su!w)!|pq_1nU(uVfUG5l1z%z*fC&gSZkSli>rbxOwS%T`vG)mKv&K-*RIvHESb zja%B#rNpXhYwO!^nhyH`O09d?o2%z%Il~8B8Ol$Tp^WS3g96=a3m%_~HMCxgjbpB1oC=Wwo*yYJUBAAp5~6&_BBb#| zVWFF@swz^3Md+oH9E;JVB>i2KWlIxrFYM_{!+TjzU*!CV5&(RQB3R8XgAd+q6^4Ap zLuqm%<28{Xh$gdOuyTm9G&a{>WGP{}>G?d4pn=7Qr93Af!Z_!jiD(;}WFk!~NmE*@ z|EQ!rB^7O!Qeu?!F{h*xt0{9}*!4-7gMvWefMu1IO9w846|vVJU8kxKZQ;^^s;ZTg zUP?AC9Du|nW2JN);9n&Zwt~$BZDQgapSIL==Q&|19{YJg@kwnBO-x== zkCqAP?_+YrGCXN`B5E{HP=A4`Td?<0UJ|1PfCN6)FUM-@f7ckbfhLm}AQ%7}Jswc;pBdqZ@4A#5#;xzbR(P zYL4wr$UW8tyiK}**CdwY8Bfb~Xu6ZDr0yNq1)_si1bGPA(N!jIj75Nr7uVn5qg`n5 z$5RM$;)zirFzXKc#4}v5g}|b}D&5Q8SoaH`c+N#UxTj|#;`Ikj@w_Z@PZxWYVRVf2 zVzS$T>BX+$!OfIn@p8DbOfvtb(5IM~yJQwxJVg~?(J-*(dZ zCYzk91ZS6M)3m+1uC5gi04&9_Vv?GA(ef&$M_ZJ;pw`)*YN+8}n>dBdPN}Blwrbtt zel>nQrSp-n60)C~OIsGV&Ov&2-cq*cT5!6mJJHia=i<7>;+ZYdGDi3can78UD{0G* zP*;lzdQAvjRF^ot;lnusAGQa5O;n$66>85MeJ`DVJ17Q6cyp0DEsQ9!ig1&ageUB` zp)M-cugAXkHLGd7b~AA58DU=KY3PnDBC4$wD^{1_^#->BA4S+2#mX?9GLa9d(j@sd z4MUF{QQGZV8mRj&ro?yaiSmgcPJfSen^;p@c_t(Q*;nV_u|7m8i?{` zh@(EuI>Z-`_3R#v4|MH~@QkwS3M}vMHpFkdbej`h!-H+;N&4w#B;G}Bz`BntvvQAO zjiM-W?nJnrq6mhEs4G;|Ur>ZJKDML_2e3t0OluAFgmQ5Lr`S3Na3HCe7b{1uDvIEM z$Vd{!*jaE0kVNJu)zQcG#1=0mCK%>ijWG`Hii)wct~k=Y&6EI}@3n@w-n7`td=Xks zOkr$@Zx9_l-f9cngYVWS6N4B!(Q!vUn8;=XO$=+wQld*&UbfB=U*%WQ6Oh;yuF0t$kVIo9D@#hRk!^&nD$Di(t5i)k zF9V#l2bJ9z(#tnuJ>96uSfpls!O8D?9e;R4DnY`Q*^LIE*=;x zrtNvRX=!sQ)^9mL`MGkNi8>G>wRW2Z28%Rx6j!MUGjPgPUOfocrKoB#k`Cf3jH}>4 zKnkg8<6&rsanPto9xt|)K`a=J$40J7qf)<$bg|u*S{3IOTJ*Xe8dK#xR!*-zc5bOh zN(rpXmozyweQaWfsUdz%v=pXKNg*PfP#e8L_cP^5tJ78ol`7BXaNFU`LzdCXXd;FP zMUBTL0IJqbvxqHJqFJ)8C>*y|-+7hI56Iq-k2;24r%U-%+J)G6ZWr)WaJt^ZB zESur~hNjvM;}nK4UHv18k=Wpf9K`77wd}zSJz6TqHo<$;*oO9GR3RFJQya!i=75si zzzm14#>U@%Y-As5L32_)2@VlFf|;j@q&A$y8O3&FphtX<6XaHzI;|7jizjr5EH)(j z66`nLD1Ih#o1YYC=NSjELvH*`qA73#`=t0Uk&6`B#o?tH7_Z|r%dbSia&X~oI7C9^ z6FEdhxj>XB=3>~sfJm%>P9*1ngo8MftjA!TNt~c2IkkeU&5E;3+J&L|LgK~|LsDG} zsuqMaCb$Xb+UIj|R=bu&cTtHdi3vX~UKSB1WS5du-y|x6ndEWtH?g3I`U0)PHF9yv zhx>IHg6Js4U|H>TRQ2`A3a5oz0XQ(jgJhD z4tK?k?EO}f%IIJowlEENkRkhe4Qh>djSi3C5Q&lfRx8;K%Gn33q^3c+g=1vjU?pv( z=YfpugBIM}W@H}+Kqny(!08DLc_cCTmgC2d8~KN(31GR+H)9eaEyG|-9KAqyqRYq@ zM)N(>IE>Ro7FU%)9T%?Pr?9khBe;_*u+soOq+oUyz=s_et0vY(^Whf!F2)Z}i1^xQ zKD-z!4V&8<+MJ{1W+A3}=izX5iQjLQ2K;7O&~KJ!_|1xt-&~pLH&t^@`ucFBbQ`b&fYp2a;^MYKzz^X-4GmfC*m2gd%Thh^~ks-|X1~7-j zRCxgNwRYtl+`VC_BAbfXVkLu688m`hJZh#RxXH=%OZ0TC7|PUbu2guJOnwvQ{@APB zNykWO=!|kL*btXG0O~L)b6nQ8wKi4~D=q9PPGb9NYcJ)bNUD>&p-q%KF z;;{@#?xUT7Cti{nXU8B<+Kx*o>;XSa+~Oo&sS+<)`f4RiVyzZGC1$cT(n-K%<&^oo zf)+DR$l6b`mN~K}%U->>#mO>~nEvQO7e|t1kxoi`O|n~T(x_0(+@ZxNX;JRdB3V8u zMT(QT0dhY+Vqp40KQ)WNi?LU9UHw1jI5x|ipj2mW6dk&18^dE%8?r~8 zb_$KhaD2ppt%Dzum+Wb6ti5LftTs=Btu$4Ev!3mro~zC8G?LeQVy9NL7lo4;@!8!; z-n5s)|4SoctV`OHtr$+P%cB}%4h%2KMasca|CM;$9XsXCGYm^x zT;zEE${rI-JJ7zN@iLW5H#eu0OosecM)=n*Hm)~gaz2}lTke~Y`>z?{JAzVcybq3E zmdVochGhu~cITk-9twp&lp%AlgK1_G3zncASmJ&b; ze1T$vs`A>Kr1(N+_-=Q8dfTKUJ7rIm{r8z+JjTk7%CcLpz&lC4a5#ylMt;BU^I73P zhGcd*%|eYS2eeJhH!r2gOfLDytni;)+0`o^sq~jlg~7jMhyN#2me0XoH~oesd4X}S z(gLp`;BfRHJy^2trR?zU_5AXMf{yYVPHgjk%?UrRXSd%p=;n}W_Fw0OkLejx%}yn! z=DTNF_*YrV-qtdguJf)XdBIOBnT-^ii(N|jzhD*co^^km7Jkah%rOAlU+kLL091j8 zr-y&-Ws$}R#3fak-%k%e?aiEOh_rcW?_ZRxyLU$Tc(ybLtp(|pxMfLR#%H|6;+!AX zzIpMYyo`I-{eDJxUk+v8tG|>H0gc<+E$LMU8j621H@siVihW1Ce%h&Z&YLbWQcHa< zH~b6EYroJ{7yR&&ywDY@Xhb?sQ%4U&q4oZC_lLtr-Awq6g^mb^b@5rDl1@+D;cn+o z;qYIkNgLAmNEhV^i1NzBqCBCD`NE>S(4W?QFE9L8=ChXW;efkm%M*2LkvG zCgyvi^1#gS7nuu~4DP&~zBsgBP!xA%WU<$La%T8v{%LS0*7(`OmP=E56uaGIdd-L^Y(Pg{Ek1df4yWa?7B2HUedj*12kOi zFBz2w=Z627nN6=-)!rK{NR16}x4?KmZ*SB3u8SeC9YC?ZR~wZ-nH&C6_B;~O>K@$T zSk}ZYdzIc@lPC=_p#xaOZ_O?9!Y^h|LmR?7farid#3A3u9goq~z0rZS?2Lg9dGNc$ zsQmG~@cVNzTyYgXgmy#v+`%1{m}-}exvduXNEtKlco4@6d;R0Mh_zr zi5`v97%5$pFJNiC^5rwbPfg3RcXcRU>f8={{EMH&JCUnV_*{0|{7^v;w5O?$dLo-{ z)%hrV!k1=MY@LbSK&qHqM)En=Z@ z-VEF)hq4Z4#IBg09cH|^pryY%W^%3>Iq z4p57X@?E@HdLm`Xwh}Cg96bRlSRfHkw*bSKVcj~sbDbn24lgxGqdY%UGeg^42gSR$4`lVJx(O?CfdTIbgkL28+3PHUC)>z#p>y*>r>NhteM( zxShi{P^&PP5k>hZ7;2#gm(eZVoGa7tMag{Vu{+%1CU@BY9NZZ zNP>pZNH=C^eNF``=K|E&W+#Ebrdhy~D>c&%c93VYhsr87jEf~mRo!|9b0WWJqg%RZ zmuZHv{M63hIR19i&iZg69ZSIdE01~fv-Ga)98xG^5sKVqQcjHa5pd* z>+J5v&K3G$bYg?C(E$uru(i}Jk-Oq}BLtQkaZYGx2wwxjtgC4L#+t zntED-=7ri7gFx=-!Q*k=@$-8Iu}7O_Gz@^0-k{n~Z+ck^3zn9ZR4m7{rle{02*x~k ziC>ymt3p@2M+ywP<2y%p(O;LerK?KHic9e-abQkChiucJNQKhz<`FXP2%rL? z9`3KLMQI~LeR!G@<7YbY$+aN$>xz&l@gcknBaLOLGQDbYU9e)dUXkU^Fi3;FMSy#K zH=%WFc_|&T@+7-986wN;uvLubTjZzA7~+j%{tVgjI`t7U%U|7pH(sj2=#^YBMr1A+ zEBY=NW4DdlkUvlHAXw*z=E8XE+&95G9?g^Sc&{2?1nc+=g~xo9FM@SEx!gvHQz6jRyW8mU~@#R1ljJV_CPq3aJ zafk6$ia)_R9^Xe`yk&oabv)8t{0Y|a7<#z!6RhJg5_jPV*74}BTzGUxTco)Rf^~absPNqiPq2=^ zNZ}Dz`65`yH+taB9vJn^VYruz{u;O-wv4g!47;8Y~54Bo7}LE_`|2<IOc(OXmG^Dx06sl`bc?6`J%U5FxJl?p9_Y3(d#Wd z_~ZZjKU*;90Y?u2Mn0n$#DxF7g$LmG&=dSK4Il8}3I3*rN1Sk#NAMRle1->4@W(Vf z;=U_C!FOo*Ob?#m8#R2E2T$-`4WI476Wpiab3Ay0cW8Kw?_BZ`44;-4?1%bt;R&wM z@EGs8@B|}<+xc@nc!HN`_^=00@JtP#=fM+c(5!2_6*(G!2bH7{xO6&`xPHGfj{ zm7pj1S&bgLx%dOF`H_ZS<-r54c}T;r_TT~6d`81pdhmd2KB(c>c<_L0Zr1Q?J$S%1 zdo}zz4<2w$Lc_23-~rcc*YM|i@PKPJX?ToxUG@Q710Cgs`iHN%@PKR3Ms55C4<2w0 zVzj)FAHL|y54c9J{~8Y-aP(D3yhJmBijY51rI54idx z8h)b(54if>8XmTEl@GZ3ts1_;g9lu_Tf<-I!2_<|q2Vv`-~m^IhrD24#0ppWfUD8Q zY&`lB7anjm`WPGEB}_22<-_^yU; z^WXt*__Bs?_uv6<_*V^&SnJXs@P@lJ{8kSh@P=D8{3RYd;0@Pn_-!6M;0+@h9&OQ8 zKHv@g3LirKy~%?Iya77O3qiaS@EQ%?3HU4x?gAXp;BGY8=QKDD_%RLc0sKV`-UawW z8r%!m_Ft5bSaSh>@&bH0VEBLyUjY~~)rR{3&(mP&T6J852LL~%!GnOmt-(WpKdr%N zD^>5-;9%XPJsH^q1 zzoWbZfN$6EkZnD5lo#*^0e5Kd+W=Q<@Qr|%YVb{fvo-kb*tb2V!S4Y4V-3C;@V{yB zEr9LzhVtJD7&6KW@Vfx({)M);4l&5a-v+o`gQ45HIT{S#SZl{4@Ouy7UuyXG0{*53 zzYp-IH24m{C_`SzeA3-Wvzu-+a&0vK)7#{V& zkp>?Ie7^>N4lryiFO>gzz-S{jd>`Ol8vF&ojT-z#z z#D-OmY4Dc;>+(GaSoi<007e^>7v%ja;C>B$2ynXwKMZ)C27e9kA`SjJVBLO?;5>)k zKK~uC9?wv>D!70I zI?+MJ9k&@~M2(7yii!?8sEiYrQO0c;S6oK_x9ZfnsdT!Vmhb!K@8`MHeNVloPF0+$z@U_D=3fd?r5d$?u# zS>gAAKUDYwVDyQ(;2(53m_teY58!JR{s{O?g+B(KqcCF6DN^{Kz#|mK*w5*!@Ta&1 z{6S&#ZFZ}|p95penG61X0er8*SR1piQW#@5yHVkP1D~w$m%tMg{t9@1g}(;wsqiCAjV)4!^H!iP#9zNz?BMPZ94E0g;RhN3a0`et8g0dIE6a_4^cQB7$0-N zAFM4S&}T{91$dLfU4j3sFk&0gtZ;YW3l;7GT%+(Vz|$2*-;Fp(;aTTLg1;D>!{1c6A28P7q<&XmoxlFTmnuEx-tanwcLP3N;oX7r72X4QKZOSZBSv$< zpFQzd9Ahwv2LWTvNaDSKpHesue5b;Qec0s+qpyb5E4(+b_AdkYFs0uI7$0-NAB@Fe z=(8k-?+0LxC2=M&*2E+p3as;oxpu(smHq(WixnOQT&wVK;A0dX0erB+2LkK<%>u@l zG#C8M#xFl&4N2l0V66E`oD2LXh4X-ar|?MN3lts&JYV6_z(*@Q1{h`LLi=NZ(T7Ql zvAI9yToNOep;#l67;|grs|p_i{HVf*0^g`G`fBL83g-jQQ+Pb^G=&R*5wp4AUm@^r z3QxeVkN%?YMBslYJPG(Eg%1aQP~jrr>lB_0e3rsffXfv=0vH@~!JnzX=+h*I@0tA+ zJ`%s@`lG@}0l%kkG4S&Wqi^=RPhqST`(3T@4B*oho(Wu{Fvi|~$bq@wAJ)SCFlLkZ zIN)9i&%!U{ey8y9z<*Qt1mI^BJ`wmXg=Yi*R^gL?7b$!)FzT2K{=nCL(Z@+#3cR1f zWx(APo`c^T{z_r=#XfH-Tmk%~!j-_cD?AtYQiU3oCg>L~Kr10;6Qx$H;|0?)Q;ah?KqAn70v9U$5b*vAKMdSUVf5Xe+ZBEk`0on;0r)wE{|F2p%?1C~0Ama#@t=S( z$CDVj-*b+_j{#3scr9?2!jA*@SNIA1hmxNaeiHZtgdc6M? zcrT^j3>;AyV|zErc{O>8) zG#A?c6c}SDiLrL|zf0lIfiG3~3*ZF`{|opig|`7`D~z$wzmLLLdv^UsVdQ34^r5-n z&)2}1vq=o@t~V^;V8cLJ6d6k#eTU8gV3*^!swg6h{0SDCz=9`F`LBjweMpJrvcxr za3|n%6ix>&Q@As5p~78&_ffbjFl?9$?RUek1fh@3)r)`MtPibch{H+2F91OHxkX{b z)91H_?L>M->E~g6mWbZs#Z;F*q8}%Gr&lz34F2l?a&9i*eSx1)7;~+6lfr|5lj9xy z-SNK&(MRS2-WB*sg|U|QYEpOta55j@j|3*)_yRrz|F!&Ch4XhB4x`+qn5H(c#cKVY3N%*8IcKKj0k?*BYs-T&~dv+jSi z)misH&MuvG{~rk4S^0;)OxO7+0@nHM1$?C9X8?Cs_z3)uT|IsV0xwni0l?b-zQCA+ z=0g7#;}u&i24Q4JqXocC3S%uwJ5=F=@xO?5{)YmuRr(RYrz;!>K1kuiF|DzNnhWjq z1WxW}!21C&QhLOml3Wj=pMhUF)#H64@B@lJ3b;n$VZa!J=0g2!{P$?=X-Pa5KaVGS zv|jbbdWF87_>SN~z^TA52p$NW2K*<%bAYiHPP|hv)yH}|@p{3#1Ea4eUZOD8(}}+k zyf5@!ffowi6}TJl9EH)>6KTGZe|@3v0gO4xnCkBWj5*2pP+;V9BG!atJQzO{F~^g9 z%%6#fA*t_!-|zcIVT_LnA1jRcG2t!2ln>aN@S?)~fgcl0{$RXKxL+{EzZ)>kZ}Ok? zSbrwa{IL1n1Nc z9|4T@w%`_p#{yp=xBz<0)dD*{Gk^~Uo-g`?fX4x!D46=|5a20-X?|d>D1c4&m--*; zVF7Z)cnEMlFvbXDs*k=bz?@;630#2RNBT-IwU4!H{JVn59>)Io^@@-AKmJj{InYl6 zw*5i%4+p+R*((CRKyWeilY#36R{$fH@pA;zd^`deANG&>Ybr4I0LGNhX}}nRjH!L} z)%YHQy8vVC=Kmsi0B|wz7lLX09u53A!4&^=;Fkp#0b{+(e?l`t-yQ%RzEEmR{ZKv%Uhe>A?xh0k>1gbP==F#6P7VxPt|*t1aL$Ln9@GJ5A9F8r1Yzv9BrxUg${(eId;OYGBl=S%R_F6_#u^Bb4G)`iPm z7<0&6VjpWpJB&559UkGrLtJ=Q7pA$(*ASi`*i&PVcR@kiiQP)FuM<0+G`l;oGX|OR zGYAiKV!t67#~ZduRyeUcNmekAx`XU(r1dDVZg*ocVahC z`2a}5X-@0}@(1N7QaS3KClAP_t{!9}2=l((dZ>KyV z|1~6$*G;6y{N{2zo#Anv(l)-iUu-#euMvM=v5UO3UD$b@%5DD8FWkQt4{{=%NpJJl zL*l?V=JI?elBVk;zg&)Z9;9;Y_dk%F;KZIMd4klRkA}Lc4Ci^#Q5U&`bv8#Vh{TvufvnXPyBsH9-qiNk87-p zQOYOIF+5*S5xLNDcwXKp_;(_4remI}x18#u9!u2Y`HOmtQI93+vBa63*KwS^*$yzT z&%mOO9830qeU$@U_M_Up3elIVf4;6!FGn7+T(Kp^nVuIWc1G0g3mQLk|X#$!C8XO7d%4n5`&%1g87^P z`)>-qQ1ovL=6!yg6B#IYsnJJ<2)jd+@5B<}EuMmBU zVBY7^{=R~j8GU4!VBYtk-(T=mqR$k}^BneH5zO-(c#~j02LQh=_*#;{8wK;Z0QNHk zuQ2+^k%DDCi4+UI!RVbA1@pNJ_MQ`bljzqAzFF`F!M7M3*GHFj*Z{)kJF!%f*9gARi7{`r6YD|ce{f~MQ8h~|;o$QS3cS;|+6T;)V7Bo5YNTrpPm zdXgUYSi&C1tHu+TV?43Mc;bEAj;99%BTwwlW5Rn<9i6!zhm-Og=)+;-`#ebHt!+s*))()4$4oldXr|mo__;KN5JiF|h^A5%>uV1jw zPmq>NzE?>3O(L6}XcgIiK=cm_#yI8pF;3YI#wkmTQ!al^1GU_S5Uae^cb&rCp4BZvS(U{}%l> zB7ZjJk(kJCB6}J={jN9pgWs`cJCVIb4ilLr`aF?`NO_@=YTa^pzd+n95qBTT`<2pv zcwWrq*NeQ_iJn6Gdquxm@EWnZR(LHUF%CFRn~ygIzb*QAMSd*hpNVW6m(JbP9{gho z|N6T8<8t`N68`adRr$wQ`Nur?$I|UzTf63bjd^t_wTE{5kyP`U%Q2r>Vm{Z9-p*%b z=O8MF9hR`e>)Ew3ZZMy?9P1{_+ngw$rymmi(;{CN`KIXKll2ng$Gs1Yk@i@kz5aw% zdt8q8Sfag!q<6RXoRp(omwj^|f&SP+^H^%M$JGPWWnx8|`s9?r&NC&WZBR&g^AakC7F`$K7$CE6WG80Wn% zBr!j^9OHxKtxlBh>mC&SQzEf`Gye_I|1BA(sfXw3T>lFx|EgpB?~5NS;m4jXKe!xz zu!J8Cq<8!Atdzej_FohJ8zSG8@(((+Z|;LJ-#HGnKZxvKB5_?I+Q0h z+H*_W`eE*)F^+E|JFvGG$&1Av&V5{tb015b`xcXarPzB!cx$A*Mf_bSeEj^7>mlzv zj^6ALkMk|rL;Ebzew^@9v3r@6FB7@kiSqq6&V#%z*mVWx7tTjpT;~2Cc}gLBusfLK zGQl{1b2-lSjZ}WCtRME=V%HO_kG!rZyL_JjyDVXM2-Uw{@XaF8?|k2nanJQ}o@2aD z@WzgI^T`hEvV`5e311;R^e30&yv6bcCwd0y?~=H2&gXU>mvYP_##mq7{uf9)EYVH| z;kNZP!sWQ1V2SmWpHE=iupK*(Fg`io?~5M$s=J*@(hf_svk&36bt1y$*EvRFoj8;9 zcAfaM^zVz(&MTtFeG9jP^9}dE>X#yEk0sjMmoW0jejMCG@LpLcfj_cLS1 zJlBGq{Ryv-c5%*TeY41wPV`*TW4++Gu}-jmSbtf*C;ETN`tZ5b!?~61{2=AO7#YFy zWLi%m-HblcQ{-+^K1ld&ahvCD$nQ4t1O6UBvTb~r@@qwp@o^sM)%f82qTkqG+()zi z4QU5IcV)Y{A7J^Blz-aMk1xqC{9p+`h7rD8>|&kea-54n!s(h_rsa-Ld^Iqh<^&bS=oj3vg|64KjohIz^DKOyB9Z`}Ti!pF~> zx!zx;+@2#;KYSwXvqbwN2>(XL#X0hv^L&vPInfJ9f0^j75^2}#+l6tw6 zY-`s%FU7d$enh(m60a?8Q;zkB^@#gI(yO?++^$Eha&ATcaz5JHG0$PqzkjCsXeW!L z8fRRNamEtk>>|Ube`Cq#Qrzp}a;W8L98{zNR=3H%r8wP51`Ew}{03z)~u={bT1-TmH;*YV=bM z@nDCg>Ltny*a_ko@ z(NC9<-i`;=4)d`du>LJ+&tre$agO#_qP;w_hy8==<2=IU*gsfe|G1R&xXI&&H6kwxKO%8yk0shWi13w?&ubi`$GM#K zcy7Z#2eR{Nt?*i;9P^6pV_dk~;rlDZ#S-ltOzo(1AD3g^vc$Z-iu88;Vcv2)IQMZm z#-Yo;`MDRy_Y+hP_Q#QITklLc#y9IRzWL`>u+Q^L+2?YcTY22RBz)Z0b3Npd%kBNH zov;5CJrldN{b9=SyqERpk84Qp(H~r{^2L1Qi={hXs{IyepC#Hq zjIio2E=PZ{M1NgN`nx4=b$;UV=OoWKKQSNYCzk%_rwHHIU_7!!`}t&lx!A`z zApL`4SGB`@w8MJa&Ziybf%*9?+S^~+DZ!D3w8%Y1K*nLLi^HPrcYWF;Th4>hkEMb2F;j5({#sin* zxg1M8m%CBy_aNCKdEF@dO`^Bw=T@orp~%l=+Lx9{gqL_P1@EnV+k}kJrgQ z{Fp?ttzS$z?k8D~ez}?S9{s}QuS%SFj>-JLip031JmB|bjr>C9!+xs=uPO-GZ675WJwZr9Thb7v%bqDRRzGFM)_bkv~ zFH(K9a|Fq@bBQU(xsCNWm)u5roJ%-gIG1q0;kgi(KP&z5g79A!Y0s1Ih~7T8#m^hq zF3xo|q~a9`+HI?tR3L zr>&y@OyoCG->xHV{p75t_TU#wgf{kNa!pf_Jb&8G#iktVI`gou-${IoCm!!lh<&U}+zx)P zf%R`oT)0o-dhd(0dD$lV?IM3Ndi*$z`8F?+9v$*yeoqPGYc2T!e~%{Fw%(X>JP%?$ z)`3-|_gio5^GcjMxxem}daFfZK65$ZWZ5>(&F@E{pZba)(@A0-<2>M8z~#*%@jUY` z(&PNWd3#KFn?&OGPgsxf!~KSR+SN~yDO4Zru|(W6OnU~SJub(*x|_=FxP4OWy(kjn zmhFEeJdbv!N;@pk&P>ABik~>YaXEfo%M#CL?jgNB$6>u=`)H>NmA@r=JMR8%;=+BX z;kD({{QemFbv4yPyT_1J>n@jL-DQb&_g>Q5eahzZC21GWJ6Lbmvv;K4-$ibf{z!FJr8~EV2IHN9A^%!#LvnU|x2kay(C9 z9_9&4dtd*V=v9076CdrdM0>{(#=6QF>ncn1KTCK2t30qCd0^?zgKF;~X^$n^n??8< z$uHIeF2{Pw66@syq_^iiyIx{^bDVho!@Mmb?fU&m$2k8W?XpC>#}i&I?IK<-N4zW% zFOLTsuex94auv@bVwWZCo9IVUP3Twr9_6zY~9RziXuVeLR%!DwxN| z$?|(;DDNTVy-A)dzb6IB>o_FucaXf!fzS8zkOxVaqTUlC*NJ>uWD807y|2h&BKH@WNfPy6 z5xGg^>moOjMEwkrM~W;K{fi=>6S-dG29l_^yWlk<*GhR`kyAuY75!?F_lmq<^UfA|y-1v=xg7g6%XdZoVq{G0#SRuM_F`f$CiY@tFNWtjWG9B_Z7gx#V2S$+ zk||;@d2Tz-i5*1wLcR|mY4^j0POOk{of8}BDjy@|LrLB!=kiBIB92{A9%&MJok*Pb zsGRI~7MV_RffE}~@>D05E9HH(e!decAYALj@<^U3c9yl->+9klCj2bT$GOI~-&6B3 zer$O^T@JtU3B#{!S9uO$WzWWOsPGRYd7;?-oyglozASRH$oE8ITyoy-#KNARJ{*2P)^-gRo;nSQL?NfArO?IQ1W*kKActSfoJ`NEn^C-4KFn->_ zRxr9hFBB2TR1o662ZWDIza3cA^-sWH0)-NQpCw`yS%s|Cky%LL~CS z<>ex)MPgoXIr6~rZjq}+%5%yX;$;2%roGtL2B-8DIauUDA`vg~Q!u|-R+)M!X9&jm zlFM%qDea|f6fDm-QZSx~m)hObPwgXkpkTyDc}P7{?d+Rk%x<%CQ{-|J74fJ({9>rf+eqMuShx8GioSOnE2C zXQ$nbzLSiHPQ`+c6^VRO{Z0v~ce&u-i@ZnVt0FN^DG%wX2B&uwnIUqL$QdFlMJ^S2 zg-EP}Y^PbIjN|mzME|bHZ6Yxr$j{E`FP8h5dYwmz94)d!^fJynW1LVsoiX0I-koON zcfMcn^McWDv>tSk`POBE(RYz?(4|rEIU=tV`H095jqJLc$hgR%rv0um54+Bia_Q%; z3q_Chk^JilyW~e#%uB|964@d=+&5D^UEh)N?*#vBaJL=?ca!{d%Qp79p?#{?P1^6a zSor6PUi!P6jIVCbi5~qy{&Y__^}A=9^6sMqOP;%*D&<#+yjk>X1V1VA6)As9AFQTvuINSKV;ByUyW(s>vPNaC`kG6FG?5G z=QOl=R4WsThnci2WojNIOWM4aqITJpvUZuUWo>f+B^{=KEpyKRTi$U3SWUup5GhjY3z1sMfy3 zYcAH-cbtm0to=;1r5z?>ZM~j{)%A5c8TF?x;C-;XcEN(mg;+z%>K2qNo?BT`h2_7p z&M7Iu&RH_AE-^wj$Fezd>M9qHm{(W3C@~_ZWc-3GTqQMg5>-b`ZkS)0kyAniSy`$k zrgP!68Ixy>C`X0LV@5+;a!hefM)`z=M;v{4Udi;4t_tM~>Z|KZYU@W-p~8Y{QkTrH z&NySi(Zw^S7iX0e5ns1Z-%wFeIhX0DHIl9*YyPzPi{~e1&R>{al1n9;4u^`yPlZ#a zfw4p=nSbh{qvwrXbjrL@qf5^4s4)%eR^91bW8w_bmy8}=II?lpX^H7al$VV1u2E3i z$Tg0y;~Mh{i*k<7J7UtP6GnM@MLWCkX;L<|kXK!`IJdBV$|+MSOXhgAFtxhAf%%iC zF~9Ms>ayv_WRF@@JF2A0gFmyZem?Unj$!_!i4%{SSbJ)D`MhjTKK6x%$^~3ww2Ar1 z;}JH3c13_(?(Bg$eUk1t+LX$ z!lXqD%el_c3px0siYHDRdHCF!4ddsQOd%`UFKJ}*LL3jd((#9LL$iwO=TuHRrC`D- zxg8tAFsxo^I%Hxaw=ue8!fA`=&pYn4<8my$-8_<6QdYm9UGa!)NAQBOa&xjYM^ip5 zR+KfAIn^V0@2tp4G?dRVsJbGjcFrm0dwES=$(-6ofZBSy)Gw~DD#4kA4+@L3N15-= z)ap4I8Ph9IT~t}$kdcAuUsFBDA=~xyOX@3Y=GyNG9PN_d%j)ax_X=~ulp5vcXbFT< za7jHMAOuw7gg}+*D;JcUMkhJ>USGMe!hYABHp6ub7ME1ioKB>=%7&7~Wi|9Qu?Qb= zDp7xGN#(**xfoH_Rr1#bVAz)EJC5^w(nDo}wlVtN*4TnMjct|i-MUBR$r|`xUR8+` z6HHNI$%4uS^nD)On_FF1&%w>bY2PaNJ9P+1m5bZlqVM%MyGb#+jlLq-qz@I<^@*~E z@+vBygZ}3>%jmYj+BSfU*Va?Fv8Y?j0t{o=o9WTIn(Qe@lYVYZ*}QuCQcmvH(VYT7S$RYC;>wblg#|$7 zY&E%}L#x(Ko643r*tvM@aEB0}9%%>aD$6U;1~YA9P4`f8I&5Y3J}(2AH7joh?KdHo zUYVTj4DixQ2EweZ9tP}MOD4iBwjL(Tc0dNg><1nO?5@ap2(c}Cn2?>GEQHzW-4@!m ze)b{6-tV@cHzBeSW)~70ve;(Wb)2gEFXSD@ld8_A5vm^MIO1xZMx)&l$wZhv(Zj^f zj7J**T-eFss4U>XR6xfciXqJTr(+B|HJ+6RJ2{+{g`FGC)La)EAQmwwbgfS=5p=-(X`bTc52RQ1HXR4n%X-% zTeaz{i9VK&6%k&c$D5GOj~|KHvmqXjz~Lrz9hgC`(r zgxNw-u#jm?RoGl%$6s0e#K*fLY_?_LtY~7vN!niKFEIE5<9|$vjWFJV@=jT$q^@o^C?#er}|Jjyza{sf{?Tq`C z`=6@5Gy9*dzEk_3t!yVIXFbHsbY*?#_CId?f3*K;3p=&{X#>B0|1-6dGn1j^&f5kix{cs%5L(EUZ=rKDz9jTL_s^Kd=PclDAtH3i0JQ^%1Dap<%u`6#$dC8cZ z>`@h?M^->lGJWE)Gm66TvPbzpZcOgYC6bEdvyG8s$Fw~<@z7=mX~*ORX-AI^)T-yP z9orq18&r3s4HZAR=vX&zY*5|2oFHvZU^a3BvymN`jjX_I=%>>iBFY;Zl#RU6K@sJR z8W|98-pHVM^F{{6o0k_9Z(eRtym`4ny`Ps87;kc*d-Z-^R#5NfWd-FbcWh9ua>oSa zDtAm!u5w2Q84$MY&U^cRXvXL`3C>uFr zg0hh_Iw%`Cqk^)LGb$(>IU|Fzk&_n`Z%%Gtyg7mK<^;`@oa~@%WRDGsD0@s$MA@T* z`Zs%YP`ufrg5u2{85D2!$e?($^8(||4eI^uoS@#%&I!y_c3`fu0&|rWl&i5psTvcM zsWCx`8Xc6UQ9)@M8I+}wK}pIB%294migJT8loOPpY>y<^=d&L5@Dr`5t$y~#0J7$H~PHYrDk>`5tzg#2FV`VW4 zpU88)wqvg0wG$hKU*ulpc-R+2KyMFu|CEp?9m=4 z2(mxQXNr&ViFu^Y)}QASah^}Wxjymc_{5v-6)*jKbChSUjmE2O)_7){G$TFp%^J^) z8;w`aS>u^?)_CUKXuLAd8qeIb#xwgyIJo|t(zP&Iq+cyVUUL%jJ<#|0H z;~%8ujrGexp4W3RQ^)I>m}vZRkmvO*%+&FE4rVl7&%i|EmxH`q-yC>76*Ja6&(fSX z&%-opJWta`YGC=fRt5c*Ms)lN;qVEkxs6$7@<}osnMCLNp#}F&eLF zVKiRT!f3pvg=jodV>DjV!f3pvg=qY8Fw$#Um^xn5LNvZP@R}B;j@PtcO`g}h5RG3B z^1Nn-spB;@MB|r(Jg>=N>Uhl#(fH*c&ue~|I$jgRXuM{KXnb?vHAhSxue(#x_~jti z>;9DM9Eb2f1FisiuzCeX3}DbKrHSYU+61K8eOR z2VS>NTqnot_Q`0xZl6TsmxCOy+b2`U>-I@BemThTx_vTryl$UFme-D9RsPxV+A~b8Jg-ed zR9?G=RrzKk&uib1T3#E6RrzKk&uip`8=@_Hm;RsPxVdMIIPc|DX6jc+cz9!i)xUJoUV#_OSkXngbF^-#jp@p>pB z8s8*%J(MtYydFx3CJQe$Ft0AC*Kf#5z6*wFY6@A5GP?Ox>5zR14Cr+ukTg8ThF%vA5{VLUDQ2CFvM&NLIWSuW5~$$#Fb*XI}; zZEvg6xLp;z7f0jvZ^hwS`jt4Uz`hSh6-`e5F1=|V&f<+!^6m`vHY!yjZ=&*ezlMD$ z6{`YYwn1;*&~H;nVt!kdLS~o>Ihjep$t+lG#wbv`A!@N6p|-630JWv<$EPag;b}3y zg^GRU=9D+>#;SeK6q-U}EwUq3y+Vp#L&6L@blV1#qNyx&9Hr(}QL<3TtE9{uN60V_ zV7oLJ*oO3I#ygs5Z0q*hk7XgKnA?qHsP#ZjLe0l8Hp3oTe5W@?k&kLEGr(0x-V$Z0 zZT`FGfqmc841UK7@eQMG7TA(@lfb?Ws$fxdO~v@+8xb=yW)@8=nLK0s;=GLFj0qV> zWE5n~$S9teG5(;bIXTBn&C5P!YEE{>tb?XzXJ^bn$qbatK*{8Z6DQ)|<1&t!F>%JR zqcYB(G4qJRBPJL)8n9?;#!)kh#}`h_m{>4=OvdzyM~}%Uo<4ELn2d?z3nnklK~~zo zlj{GMXYHICF=Dp;4>u$D{fwS3&jCx*GAi)K$g&#VLw9OnZ5@W-@M*bDT9;1KI!Alq@3!=h>=qf6GK62?eNikWHLX*6=Pq5l zb?>oD&tARz^zFB6{{g%0zQ@2l2kjLfJY?^TefHfibLjpD3>!Y;z^rWi4*AGYqsNRr z=-_dO9C}#(_=3U-6DJ*BGPtyRPoW%XUsh2*yCm$e}Yq(GXf9$JsjvAB^L(3 ziQOZEVnfK|2E6`@eeMRQdPI7&Yo-5ZuJxui!(Lr?0h21ENsT|;Om$i2m3bZ|HGj2(cmUjxiYu;tR zSsuLOUA(ox13h??UA)b}yDFaTkFhS^7r=czczd_!Mage3|9ZN3l)nl1*h}I~#oy}D z@kSegJ@TB2zZKSwM|t;XH}wq{uLao49+j&+M=38}y!&0eZ9Y8wO&e`5mJXbOkG*WX z7o$M68yg1f#ary+6$5+4Tj}C80mt#Nmu+_%3Us^8z+U!7x_BFbz4Ah1P20oYm~+PA zV=vn-tt*O`La}<-OZn2pBU@g)Ru^w3FpVvHNxLcdTYc@?T?*`FZ;gxB4D6AY6#VV^ zcJ_Sol7hdr-Hu0j@oM+9_PkU;Pu@u`9@+A;H_^qT7`%A+8}Hh`)FL0=UM^lKa5sGH zW%Jw>1*(5jXlX}f6$z>m&DQK2Nb9{ z()t36j;XRvcER5&Y{#P*h-)v)dk+QL9<`ZnNsz*e-RI&_?mXsE7yOOWcJ>m$z45V^ zwTHi9){eIXc#I`MN=&hHUA(ox9__~JT)geT9`VLzwdZxBu|huD%eFfn1u8F{&IBf| zy)2LNrFlz%z2fNS;AJ=^W)mPhrqJ@R*VeC%a;=b=FHI#XVUSQ4b=)w+250(<#) zqKh{hI1?XxS$hR2(Csb(_R8N-7jG4?R~)YMY3HZG^Jq6h{i)lfyyW0xFYzz(0SXka z%Rpcc|L`|++Vk>#cxzp}3gDUe*ek_+iQECH+g$_fF+U=%{i7?zNXQB9z5FkG_Mty z)&X zKlHJe@SNEwAf8-3dg2SkY%i;uiURu`UwhDaF2%=QR_C&}3*{w*yJmoPk<&tZ7YA$cE$bBJ*|fP4#)mjTpo zA>tUYB^+-z%1a3Uc54i2Z(TUv?mfe`yL%~kdOz}6uXcX~yjl3z%ZIl|HxNSPc@N4- z7~b-byv^Zw0|$Z^qCW=KgygLSuLvJ|`Q&BK6c9qRyC?NU7~aZ|ysyLY22o#x=#N25 zL-IC&7h)dmH6WaSdsT(BN8>a^yK&IM#2XKpmw3p$#3?T!@;taFcp>5#JR7_a<7M!@ zA?`cnOiey(uqY?5zSXME>>;nU{=^dC3Twmki2FhyLj&c)lG+HJ8UNI%{>=%|nF z<-{ff-u4~a%gaEBltX*@#5*zpLI``Ks=(W9jY0a@8=Vi` znh-o{Geo;%wt=^0$M(je&mseN%sXf+I3e+OfSu8^H6mT|&;B5g1xlUd_gi;W`wj@X& z-o%;Eg~;EeeDFf7Ylrs)FT{8`{6p~QV=o{7iq?a$+L9oBc#|;>BAGkpO=$)vL|%?q z4qgcVrqcKe!J9T4ycT@y$zPcxO?ptvj}N z{6=s#?U;80e2Y-q_VVeE6KUNDk(b#wfw$EfgY>a?(h}%C+%fOuDsV#BE1@wO!oSi9 z;Ds2cW$}j*LLVag1pZ-`_1;Tnug7o3lW`&C* zkq2J49osuKKb(Jcv%m|Hm--sC`Sp(5Z72n2`;K{w&~6xei_vdk#_4Hs@ItH`jWqUF z;$ttL{%BkU0d;+d6MPZ?wRCoO$Z*@Te@T3S^402^_wd%XHmRGJGOWB zFmM_}@Tg513-ufHQ#js|(vZB*!tpMkF%ZJP3sb-gF+VP(IT^-YD|nO} zd->$~qD&B$S`wrmZ#8rw=H=1};FaQIFCTkLY21exFBiwbqqWFhKK3pq|7t7=(ua4+ zKe=pk-j(2%gNZ!}rkuUc0 z@$ZU!5YDtDNI%|M=r-(__gfl!vqSJc1c&;>UOw$EqrMH%Z_CJD2;P-5!3)uESEYj& zqTjAs9*%c)96ahfd-=qBHRUfve=JV{FGRe{DSxH-*vqHg<(oiQWl4}eylcp}5P7*a zWd5!VnZN7eXtxF*d-?cx9r+d_FW3DPj<CAv3CRY zFP(Ml<;PnK0>x}EAKr~cAW$s!^5Z=MLWLzk`tWWV09|Pa9_^PQ@^W(=yp=n)ck{Y% zyj!Zm@qX70Jo3?AKJor;2?!zLXdVXMQfmy-$6hn#xoO9|Tl2uVDFkmLI3e$=_BaR?mIUd?TLRsz5WFqm%-k{Wjx2CW zJMy|bjWX*4zTQE(qrS73=sNHy-nb<}`td%5Zt9MCcand7L+~bmlOKXd`3u9NI70AN zrGOVAFRR9Y7b1>Tl#?*_nnLm(0j~ldd-?RoT?0S}(e7O#{ky9P_Tu>1%dg#L5N28u zq#y5V=<;{WyPIMN5y#zCA$d22v$xrfF}h&b-40WXe^y?pX_&t)KlvDX4# zUuz7~&)z2J;vslngA=0Ndo#f++OfTR6X4{B;H?H{=8k#yQGeuz;7tIB#=gCL@^arY z5W?_ieU4jWkbd@lf-c1Ty}uN^5P80Tc}U*+kUa9QFFyA2iQ|EuAPlo4NI%{<=xA=* z%a6AbgfQ){0WWTiLHgO-3|;*{ z6+<^O1ds9@Vmv>%4ZQpv+j}SroDlIoL}NY-FJ%56qWp!h_b`Q!Pyfi}lfQ@ap{I|% z{CG_ugvj5+;T1#nIOqgY>f(a$f$C z=4Jkl?fo$UPKfdR$F<;v=#M{=e<9*nL;VqkN9%JK9`#!Y|JIa(SB#IneDb_zH3(ta zT^EwK*@s69l=y&e&YI8gU;i$nZ*p1Pe!%uSzOHS=Ka+$*!s^^S`hWHNgy4Mu4*g$W zd->RVyc-C6TN0!n??CAG4Z%AG9P-&-e)i4;VSh`4^yA$DU5I!ee+j%W?S2`K_rz}C zg~;C%1>j}iV=tdLo|p?li2OZ4VlxTr2mH-#@^H5g&0>)VqS*fwd@KWy_3UU)+g7zY@zqJ46-Ch zKi&-J_6)(Jbv(qpY`Ge|5dG1z2D}jYYoUEBOuN5?YxgN?GladT4iD$wQ}aXGy8^r+ z_}I&*Kc1p}Aw*uD+7yzv9lQ|nKD|dcdru!0l2;zG-3!4BF8oUtew19~Vn13( z??MT&53VZ%FT^^z?$VI$J_25db$lJIFCqHv*=V?SpQSx3M7z(@x*MW@pFIt{5aaLJ z8^8-O4xXiRb{Knq2X8Pw_VQV;o+EvTIG!U;h&(?xC8WKD;Dw0exhug7k(cM_oE*m9 zn<4FmTz8+RbvHzwpC1Qa93Ol6^vCnFL5N!tr0}}X_@Fr}*YjuMOFCXNG7I+uG`3UB zrwg6;P=|`>dVUH1iPJZ^tUX%Cw7r$UJ;ff4e`}BOs_kK3b|S95#2()xD&DK`%j-VM zzL&)M_v$LNxy2fTwEmF~%D>ks4(lJCcYOSNeL3tQFUiZtzfCuRQJiEY+jaZ5iOzLZ z9eJIyXOMq#t;dOon z1RSkAGXbfj}|a%lfwr1x_?o zTbiJwT-(dGOS!^#o0lz{fb%TL=oq>3_qTMs!<5>#m-WvzKR###p|8vjx|j3u?}N+2 z7rGxi@;cLgrt(@fHw5#IY59>-qC|R~%cL!Sh(h(;bSk`uB$&jr5HlQ z@o5!!%dIg;YtI$Or$0fL*^!riBg#}9pHUxlllejCV~NAPo_>}ET@ya`@@e<8)gXA> z|E5=?T(`Rs7-Ng~!NK_MlfTbep&N&fy==R#{Cz$Ugb?}rycoPjYYbBCrPF>S9lVwJ*vqz?iUQT{7xx19mAugN2A{lq(SrS)Vz!r0UcT7^ zLJ0r9MPEdgT4Rvbo@-ovNAts@e>>6nOvUlt8erSMWWy(p?2z9z0|0w^yUjl6NOz+C`@$Y-Y+lgYfmuqTcEzcFlF34XGw41yv&lSg>$X%pMl9jaAiSAET9D|UTRH#8=9a0LD$Z_)A z-V`2Z+INtemoVkbBaY?0>*6&6TYJ=&<*j$|mMUJF z;yvQx(O96?V@<(gXYD7t$&a< z-qi11ye!3|`5<{o{fCQ}4{Y1*t$44wc(Z_QynPgp)y!5Qx+PlETYf`-aidX02Ed#dkLMH8%xp=F9ZM*h-kN8t3yLfAWtv$Qm6EEAv z+X#&E=qyNkzePOqLFaEXu(dZ3-)+3KW@z3vU~A9b{{p9c;o@yqJghO+UdopCJen@a zcJ29q?7iUPk-xUxIKGR2DX#TkF6nF>v^HAat@y6um^%j8=6Q(XUGCx)0o!)%eG2(k z@8T6JUIxC~c8_=QW+~o2iZ|ZHD^)yuA4=`gSzgCcrFgWc+jgn1H7}ufnTkhirsg#Q z+x!h}D&AQx-bTgCQ#^WpsN>xX+*9&GYqD*3ri-@~xKwzf6z`Ds zym>{yHV!(|TYH%W}%#ajhz z{X1CkUU%_U16zCJ6z>TauSM}F7q(qj|IXV8oo)9}#aoW=I$qr$hbi9KF5XsP>tDX& z&3Ey(0}qh=(VVsZ9oL>$1zSn~3KWlgRsL1MR+3k!c(gWXUL4r^H$m~}Ord#MiZ`*1 z7x~)7%Lle`Oj5kRyLhvJZM%mn-Ub)1O7V&mZ;gxB2ppIEO;)_yT)Y*)h=s@L6vcC` z&sFQ8v;G~Sc&`1oYBO}{VsEPAx%;gZI%{v5;<@{68+388cckJC#dp;o)v%Rp_bA1q zGlk|2P`qNri@11k#XGu<$M2rd_A;TfaZFb{%7f;O0gg)?GZgPx7jG7@wMT22jCDf;N+JoTzw3E?z#cZFjcfx$RLso0pRm&uyRuR4I2rFf?V@bVRpob`*NSn+BCc%_QBAb^)pJUZL>wcDh4wE?_kibuBn>@_Ri zsR6vzibrd_pS>2vs}JC9RJ?`&UaR6Q3gB&1yv6=J>Z;`UJ1v0MQ}JkR@QJr3u6U;h z@Uj%|i~wG~;?Y{`*KV=mof*I@RlKtTcnQU$Gn!w!O^SC;0B@P%Q5`>f&5Cz!0B^P8 zofp7sQM~g5cpDXONdT`^@h%A9ZBx7p{du$mB*))H0lc1yw={qkSG@^9G`p_qTzajsMh4)$juL`;*;k_Qf+X~$*;r+#*cV@og zZ3^H~9M;|&0laO{!ABmaZ~F7jf~_R)uK~Ok=n`UYvp?_bEa*yw_f`OJnc}@2z|(QO zH-p<6Ayzxnf;ilJL7ymte5l#3?e{oS8;F8OD9tpPl;*C_Vh^XHvM z{@MP0KY+Iey6s}`1ApH6$VoDP9|rJXE7|Tp{CP`Cp-V`+9|iC>D&EKbybJQ7TQByu z`tvSKhi<9x{u#hq23?ErKJn*WR196I@IDRTt%fckywCi3OXJX03Ged&9%4wg`$Yh6 zD|D;G-oN~L7gM~j$?L&3f8HenplcG|zXNzH6z@xa-lb%(O6+|Vz-xle=I`qO9{FA> z_P+7w@p~#Q@7n<0YUuFcynN@+yBxNX`J*|If=@a=v+(JRkGUe3Z^ajD?|Xdr;a#Eg z_k%z0x0Jt9@$bg~UL$li&p!q5S{3g<{=8*H(5;eoe-7YLe;^jl-!J~WE0?zMBKYc; zm#gB?NxKmu`sDAb_0T0uyOF3r@9HtoNqS+ zb@S(~h(l-d(mjB;6gq3KM*y!CI{3)#?&8n8J`1{1;q_F!B79f#_xfeP>B8$Bz+0hs zeFAvRiq|)Qw@UH)1@KlY-mU?>HHz0ifY+jU0|I#K6>qly-bTgSJ%G1a@%9MdwJP4g z0Nz%`+cSW-P4NZ=@U|=7UjDorph}LHcmNM$D#;rh!0V}aLjrizSFp+Be(wNYT=6mj zc$tc~PXI4V@%9bijZwV)0(kj~M?To~stDiJyu5*My2Lv)fLE+|`v>r5Dc%7Ayi&y* z7Qm}gyx{@7gyM||;591VfdRZG#iPFQ%imJP%MRczQ@or2-U`Lb4d68^US0rimEw&I z;H_4?Q31R)iZ?od*P?i10(k2cZ)^Z>qv9PDz}u{N2M6$46>nSsZ>!=R62RN0c!vh? zwkzIY{=6HZO3ust0A9M{jSt}URJ?)!-T=ib4B*8TZ$bbsQ}HGS@Uj$dQUH&}5@P1{ z`S1Wrg_ig#Q9uSM}_O!(z* zz2Y4oz}u*JCj{^|E8d9#yjI1V9l+bFcqaw$wkh7p0le*sSK`mR39970EDhkLD_&Uu zuczY83E&M-yz&5ET=6Obc$tb<8Nka@ytx6qF^V@YfS0d$Rf)&=m$_jFnBpAFz86z{nJUZdhYAHZu;y!8RRrHc1L0B@P%y%@k- zp?EI^@R}8GLjZ4;;=LTeTdjDn1n|}<-m3w;7RB2bz@yxzOaHzWz#|)$_j&+tv*P_F zfY+*cn*w-S74MAz-ZsU1Gk~{U@&4-1yBVrvycCn&KV0+oX5=Kvdn`SDBec_yhg?QIDprrcv}N_OBL^*0la03_elV6h2ni0z-v~#&jNU>6z}r@ z-fG4BB7nC>@%|OSYf-#y0lf8!_wNASM#cLwfVWxkz6#*AD&E%tJnH*&S)acN;8Bd0 z_iX@gyW)N4&$|Vxq&=$Rv;N(JHj}*X19&|Z?}q^10LA+;fEQQ1p8|N9iua!YUY6qh z9Kai+c)tYj^4oY(eD%#=k>W)Hc*TlG2L1YDmg2<%c%_O*w*2f>DPC#-FQIs80lY@V z>lDCiQal=Ce*P_0JUUnV@s=rGmjK=h#p@ctYgW8&ibwfZ=lfe$0S_?qH`+UZ*P?j4 z2JklH=Xe+k^!z2dyFafvQ`s97z{^*>Apty!t4P}2SMgluq2^}j(uKF5;!%B-mu8)p z0~F6~uLU}5ZZf(9gMC_U>Gz?CIxRyP-UW zkGUduu6CTRdsqlbYcyTG@KL;naIbjy$*eK|SY8B4RlFaD!bFanSJzO|P*y*GMD2lb zzOr*i{$H8Z~NEJf1r;cPv!6O1qphaq6T<)HVmp5q^)EDyXTV zgEFwmzPp z`0ke{e}0_C249aRoRp2bOzYlw>%Nhy%*OKyu6(N-*U3ywniRMEqBJV|_`Ag1NrS1Z zC`wk^Y)ndtJCph);zJ^dIf+|KOG}$eTg&3-HJ{gde*FB>?Ms~aWu<=_V0@UfJeFK~+XuZk4y&t*f0q(eWn${{o@Gycnz z%*56uHG`c=nXKPua7rRlI-w{7|E?=bId4hP-jg#*Q{&M@Rng!?N@7A|=fqRYj8{dz z9v?ZUG*abkJ8JwnpG4x$6E6w(|t<%;9q8*yUmI2H8_%gWv~2g zM-6HHH0m^MZ|UVc-jnRN;!m#sbNKjelLk%dKdEU_w{5+4`QG4rc+ z@m=OTu%zmt_a+rg$}IbW$}=KGJty~SO?%S$)QK+HK7ClqgF^;ZEbUUT{H<>@Q06Sz zo^9_B%4OYVbbJgFPExEI9AAcw!p0RyBA| z5zBbvQ=g_q&fPwKcFHN|7VTxq=3LM?_Q76*x&Mmxs2WVAai?@2lC679?!UBi!P3ox zK21w&+J5ZRlm|CVij&6tyL}S8?0(9vR5IuG#xd~K5&htzbYqFUjsNm7olt!)GyX7N zx=rg;)TwGH)vFpBk0grP#z7{0Ac+**}c(7Z9) z+N&xvac)tss{F>Lf~9ZuE80a{jXSMf;=eqeFrGG+W=391F*DJ4tlP3K7e%YESZs6} zTiRyM`03N)g$EWMa6r7Uc0r=Lrm}8WeB_9%-1vzFi>hlX;yHOIIpgaV6c)yZ53f(u zR5z5=SC%(a*DkC_K}F@9Mf2jr%j3gqN6apqmRnLVadvWXV|}7>VZ|XGbQRE*Cl(!2 zSXEv{Zbc%M0rKhB)rl+NMN>5MkoZcn9 zYo~7MJ-BL||26-N8{g;5B`FugE{t9gIkAtk?%C()3E$4yrL(5J=v=omzF~h%UfQ?f zF2=cnu0=^NcgB83(mMQ8vCmA}H-!JG?R}N)qr%uukEBP_JM>w)?K7QQ`o1&%;mnh~ z<|zNDaA)idOj^VH5)1mAu_Wz+)C*HCiY>)h`roj5+y9bH9rybGg}D2wxQC7JbM_L6 zx51pIQo6L8tYH={Coe^*)ygW(z>ErH(yssyXpVO z?IvpLOB(9u)4f7$VJe>-BUDyhQBzqmv#@{^k?TbvUalA4QvZ*Aljg>eJnV%?WO8>b zm(>fg1(erfiEeBVg1mvYDq$UtZg8p+b=9?X)eWap0M1uV6&-j>=G0bjL1ebAy6nFj z3oW6}V{(L#V{r2y}t<$g%{ujcoTNTenW`K_p~Pn0#3S0(Q}IQ<#OVsyho zKn=$DrFcP zpA3NmvKgm$|Nd8VPLDL4!)}j6Zs1rj14|NR_4UbcSbuz?WMSoL{ab(J*O+jS4~IaH2wwpkl7E#}vs!6kb-RRB(}vz)53x_OJ~ zONZV}M2_bb)ULc{P##|`1}5DRMS9M}haNT*NB$LwRpQHXO7luC!xy?X{daS98?|}p zn~}&5$+1vTSyO3KWJd$jT%*CO_q}pJEjZ4)|889Csm;TljYMvX(pp%5I(BSqjLG$b z^=-Ygj^-lu&V~3q7kMojqmH@KxiCWVI!Fk9ATpFe*BWZ)95u3AFzrL;AV%MXs z)L4IZJ{6wti*FnlZ12}*d+M*Z9gE#fw)em&*bV(VC^gcz&7L_g{Hn1vGWIapgDC_) zGIj>KH`bH9O&x+XQ4{;af9MmGHR>Dm62gfmBT9{>qc9TdK~+zuI4OszX?qYgwh$&_ z{a{G@dGD`}drEAx>Ax5}JpiVskgwF4Xtp03jSs*-djqA%UOzkSfYj8!slB*+W3dNm z?xe;xo=suxhr$C=d(l^-^xRq~x61T@q)yCgfw@L3+dwd%=Nl)FAr17oO`2K6n%*Fr&AegD#Gt%bF zTI-)RYo3@rd-fjp7TD?I2J51*4I~W7rOC+4IyM?bK7%MG(n#39D?lz6m6%)V+xmFF{(X=#uSgiKur(behQT z-y7~~H73R0eSNL6{(&=yK1+2Was;|}4|w?G_s(5$Qx*KWxtnQ~=m zczXQxGX8o**d(zu$*z}tdX|<>udZW@#BKq$O6sUW*f04A+D?z>m2xknJ{gbJtjG?^ zlkN(oT<19q=N-nQkAg)%QvE5hTEJ`NhqT5~7Sr?EB~QM9uqcDN-X zwPh3}7NUg)Z7G@+D)p&|?cHs$aHQ=>`iRY)-A!$w z%!-@Chr`XG^l`g80&U>~9ia?11>0^)A1~As3w3Za?FtP-N0PtVM!X^s zV#!8|=PIyQLFOQyl?v?jhdGEV8iH@(B?4ow2$^&zaSmpZ4tblLiZNaThq6K#d7mgT z32W)riZJ#)mqc8rQsUB62yr(fA@JzlfL43ka2>>r$r%5B8ut3~ZIeUIL&KO7P$#bC~;hJY;b~@vMCR!L7OTB)o)WpWoUIXeQ{dHgeiHB4NJ;U z&O=kD`^Gfpva+GmL*p~k0I{pSx7*gVR+l)CY{?5&D4jF}I!=qEv zGpfYL`c&8~8<;qSW++RXespDVTR(6^Av#ytNu$KNL8M?U-Xl^Q(= zo2E{UBS){0QMAO$K{Co3r+ffXVx2epoE1NyC|#XR;SNL+Sr@SqHRLRtp(ST7JvXU% z0xCq566*)%F=xe}d7z{RjcG+{WBSi(B$VtwB3VkL#Cd}`>8yBt0TOKoy(Bf!q!v6n zJ%#F5C7NW9tORO>o-$Dh6wX(bKty4gs00cxvR+$&il$27Ht75d$A%(U=DZn}ktHS0 z*Uhueif`q^vM6Xzs%0m*ZBautQK-j<#$^k4B=sgz`AeuI6(z0)^Ip?gaiM^6+YL@( zs?tOsHOt1(Z^lGbCF?AkI5R#pg?51M>OlgoFxgD{N?aGr2a&?7ltNFez02@G{9`m5 zJbx;2eT$mV%m6h?Dg$amt}jtd5VFMes(Bu9KUs*l992ehFHebvUOqgLXhW_aLj`Ma zFE<~Bh98oKrgrKYQ$sW~aDT$y1`%|Y^^aj?p8Es!FUo?u0y+?-#C@~*7=MceKRLKp zp*6J4sHEgIG%#Iw51EmX_sr?F;LeAZ!{#7w6T+e=Q1ho8lFnPxF=(aby&oamdSA%MpY18bHn zSxb_csnh5}-w-V0=foNw>pO<#i`7<>NFHKEB@>QVQ&SWDqZo!1JwOk%rfB)zX3;1! zHGb-ZW0Q*@REmeX4MY$TAwS6U3s@A?XqH%}1y3oW9#ybzU z(9Cs{WVM7_I+=%Nw^{Pqn|hdqx$Ksv&Yn0=$>WV)|7@dQIK$kE`P;x)-_#JE`OcP4 zPE3qdQn6K{r&f3|v+xq@=JN7#;#O>}t=L{yv89})TfMcn7-prepmC0d`nnVi4HerP z6B=ruVVihXjr8^C{hXlJmU%VR)i#haL+k4_w)&uJa{463NSX~Ds@NoRE~`Cp zS8*PZ&L$-c20K!BGp?I(9l@1u&&svDp+J)CMBn#i%zq4nr(En5&q*l%o5CG|U@Ux? ze=jz7g#yid+g{$)-O&;5IN(LUuedP~j>VgCKTkcLiE!*NEhTJaqO;4p109ybfsSS` zev!5@5e>C_8w|6G35*)vM#J1Li0+toCw4|-MCrm0Z70SKS{ABhI&>KK<+FaIT*ox2 z0gc3WFio03BmH_oLm6n;(8zS>K_c<yIOrpBMGh5C*}t9)4v%rJ{ri&F-_x2q}dc# zU@Lr--5zw=slnU$fjiF+D!k=r-e6VnG<4funz^ab59_9ElQ>;_S^$Z24}xU5bY#pR zt^r*AxKjE;`_PG|iP>vfvPcw8lwIbrz&3v?5bP++$8p_? zi}sL=p-ViF-2Uw+BiC>lM2zJ-pER*sVHrwz`t$&oKC;p~J%VAq7Y*>()WoStgpHGf z{m0^TUqdscy{5VAqYm?X=2EV)f%r+}gQrlmQOaD)Gc;d`xk%ivQb^oQ^(Ad7S!?#v zodZYd9jK9eDb|BFe!lxF4)cnz3%_gpV?z)44P)2eI?Nw)!dQV~0Tu^j>Z$6DT_3c} zpC*APPNSJ{igUnF&hBb$*RGtTwj1sU$HI7^H5-X`(fEg#N64Y|Hiz1S7-hSHp^iY3 zWK%fS9>*p5A_B&Y&Fz5$;b5GXX#KOHnjL|fP=JQ`c)S~{o}r##TXz&c8Sy|c7>Y){ zhWQb*<1k`Gv1lIa!VSk3y5$(_o56l^p6zX^fF9@%!K{i3!~Cd??+Ueb2AZ?RsG}GU z+cAROU0oq8-DXRqk)oUzQLs?k#kWA|>_I63`7wzMWUMlBBT__f|54b*%7{ z64r6m0%`Vh_AZDBfiM=PvzK7AKS-JTl!y>Lf_0v*a7~udXs+f6pH7NUn=L{O*U@7p zem*03WD*Z|9V)Nzat&jVTo|~=TVB0;cTFQq`HTY6e4)HN8Mk+@x2C?ryGg*kXT8;A z{bwmkcL!-NA0A7id&}^ccaK*Z0KFC7-MhUtXoHWd#1OA?GEGcGJnNl=X(9?HBNr)3 zTW9c~%7kjBdw8Be6Ne{+Jy}4Q$9$eZJzON2a@t5atwsi)6xf`yXsZ+!Bc(4SQp%o9 z5d+hzFNzp62$YYjQiOI9EH!p-A*_wFEmHI-@kI4t(hR=2?DuLvbv z3bqpTiOey+sh5Yk)1>VxKi>diU#4z)-^m(%=~1PKwc( z5+O0nDEuW;`~a4tC!86k~jpfwPY&imBgA|yo*jinIo`Mp3kG1c?{OZtFT_YZjTIODX2nAV*1P|c23(G)Z}cH zn!B10;rI1PHIb0NwwNyK~h7i|PTiR*Ime28zI2Cm^lA+-=T-S{;#f7fEv)3G7! zki#Pqo-B--$+Lw~vv)@Bn_X+{{3|oRpSK}${;?1EB;D9zlHqtoY+*)*;GX3?{Q1&axYe$gl_tONoZ!bY4?oB}GlWmY{LJUJd>9ZM-vZQ%xBk$3z4GyQ} zvz*pOr_#gsa%JJR3cwuGOAmv&1ZNqr{R~hLM+GkQ_i21uwoQ zh#(>g4f#5gq7*2GLKNx@!&sEq>IwzkF9?cJt@zk7U22kjwWS8( z@a8lH3}Z(XVqU*^*W#UvEziEf@G?<0^~r3(Y)CKds^)v93?B4lEmSOBkFb<%s_9n=Lsryl6`;rA@EV1_|*uq?51`|T$eWZAakbu8l+Dyq~l4hfQ~x@$RWqIMCbAO&KAhb7PD+?o#4 zwyhgia9i)GV@-|)l>i=51XciL5JulDf&}OlK`b^YB&GR2MN}>(GA>Cs5l00fBz=M) zet#X37pV?#5D5)ZfRY)afME=~*gHlZb##0Ufcho%q){0}tXoA83js<@`o|O@Qa+*Z zBpWA%q-BBw&@riUK!tr$5c>*ugP0P;nq_3yv?8z?w1a!_sa;&6r}r2uVDOn@lg3(n z7h<;zprF&Zl8-B<(|G4!F}yvjX!vMtB@e;(OCHg>9IIC>-!0`t>vBAmOOg|<%kdk- za(-J3I*8WgFrVcwOZ`OaaugTKE2W%hU7jc9w8B7+XkCtBiQ|7xi0RuHNpjQ+%Qs0m z(RzIJ8K1rgPh6(d9rEbzu0~oA9Bcw|5=kGf5rcgMk7DP^z1@9 zYCpxh6b0ka4)OT_=|C6bKhhMAG6#sQA2fbiihiKUmw^7ZMq{`sdR(K?5sN;c(aS*} z*JunbMTayRc`s_vXngypNVPpG?6sg#M#6z!jVjUY19maZg4jWR9q9k2(O%H1Es?%; zpg*L^*Mpwa=nbIhnGZYQeW3Sh^hVIQgo7OIaItDjq<=G}Fu%~`Ye4@ zEc&8GZvp)=jou1+R-@6c7SWnMJEXS_wB6o7W1sLM@ND^Z(5N$;#<;Q2Zco5hgZ>9i zUIY41HM$n`Ga6k7`coRc1N7Y*T@QLxqfxgD_4-C%Sh!P@BfM~(Mqdwlfkvb47XGV7 zV_Ylz8;!;{f(l>MXw+5V?`iZt&>zz1{h-G*Ism#;qnkjZ41_cB;}05b+@_l`pM6WC zL!f`C(Wr}pKho#}pr6p_R?zopbQoQ(2Q-p0b~`Xlhg{XSzt}w*Mqcut*J#v5{_Pr#=Ro=Dx4{6uA4AG-H2E;-Ki23N=zBC8_l*mXXWs&n{okuqW?JnjH4z>G^{_ zc_?E$KJ3ZE7;4iI+~WMHM&AnhA&q_?=yr`B0KG_~F}Aw?Qllq8KcdliHtK?n!ol7) z(8U^k2tTQRq0z@dKdjN{+fF_GLC^)79KSWz|IlcZrS+gj-wayMKXh46P2Ppu!51|e zeZg@~qmP2t>*E-j=G&SaW25ufN1WehJD{v}e$0(j{aM$;&{)mJ;-F zre6k)wo|fI(v_gypjS(J1~h(~N+|yn|8t;Gm&N}f=}n*)fc_Ur_k+#{{r8eC1dX`n z)1cXbhBJR(P|z&s#}$qGBDq~3Qht|`OZqlNOZ-#{jW#Qsl%r0Q=x7R!F(OI6GljOt zBdHI+5lQ&9DfD7ROM9v8*opYYzo*duoI+nww1{umzyC7+cT?ncdyx3ArN}>*LVqNM zPAOkrmtu(2XP2j>Z%TeCJXc*rhJjPwd@0WP!`4ZtFe@4n5BRxp((?okE z-iIUGh>z=&ga`eojK_Y9qkiSc;zb+sUo(uS z$jAKTGvr^vhJ5m0H;jwqzhM}^Oa9Mb68Uc$#uv!{g|z=IbV;IrE$pOX`#fmc1NbEI zas2_=QE3=oBpT(+`NbTC?Hn|WPm%mq!}tjKGt#bEY4=%a_c@vW6^8K@!g&qjdGhNF zXm%2Y!9e!u3zMr+XLo8EWZI?Z6h4UZf-wlzic1!&-f9k7xr>}P0IL%Qr?JZ zCY2xB&l>VUZD7|1kn}1^Z;>>&XvE(tX?n4g^i@iFgQT}f+AHZQNw1Ui zc1f2>+Arzr$aiB~1o_9Yra=A#7H)Jt>UoUl_v1#Ne2fQ7f5I^ObR6Pyei5I2%yssW z{G*coxbz>z(h2cDC-r_OSSlhue($)vwft~9Kz#NQznO5bgK@Bf`RFg~BR`!a$M0yW9&SI- z!#?zcQuHt%df11a2+4m>>iMShzbpMelk(T*ro-(L>9CJD58N+c5Bsp^0Hud^z~zH> zz0>-&KGI`fONaX}(qSLzgegAS0n=y)?4$l-#IKh94?g!B_}uQ{bGwGm?GHY; z8~9xB@VQ>#b9wBSc7bO7uxAhHhhHcC9n!CteuMNIrN2}9*Gqqw^mj{tfc$a8_yGA+ zhH*y<|4zw2O};9>=VUp)EPV5v^kq9UReOS+gSx&G_z5QZB!(8rAJyf@@ySS{QO;*m z_~#^lmVEsFaXq4**+)9VIv(lVO*GQEP3NCU;74>m@OMf48S<6=-;?-1m;Nt>kM6+f zQh%WI%_8aJ{*URH^iiHn-z|Kqx72oZFQte4-cCN+E9XazLtm7%vIFta|EjPhtEz8i zW@@zm)XdPdQHAHdGkyK=@f8^nni?9b;!iWiCr|Z{b7nl6dmXKbwa=RJ0QsFTEwP_+u&wPU5+y&EtJ~ z>T5VQ*M0}m=7@J5tEO)|!G$D>rLVt#YUniHenwfwk4;Th$>I|HD&BNfRTB@Kpe<4H zvHr=CgW;LuL%y20*dwLIv>#a#K1!Re;@tSY4#G_Q=={f4D)}B`fP5j+U^J<@ty(*><%WL_Lc)E{#N1O(20q0 zk|o|QkOVO)AMmvICG__a#48Bmg&6rdf_N3dX3_Vt#5)bNdt-+7lZa>ghE0q8B}~&c zQR4F`B8rRhJg2*>(b0#}5c>{%)Npd>#VNxpDNqfZROHga)2NW$oHXRp&(mlSy_gi_ z(v8z7P-7FR$YpR!RiXD=(veHYl{#d970-P?6_Z z|0?=CD_=#QSIw))^Q?A`KA$?L(N}f&9Q(T(ut$K;aRMR+c+#Ikf7Zrx#K>hhM~wdi zXKAV`k%?SJbG`NukG^1JP@D)Kx#tcpIr-)p`0t{{NNROKgxA;`%ui!J@f*@u zPW<{bMl(N+y~N***r%{tBgEi@DlvGt`%6XdnapzBy0`nWw z*u;W{OfeeL*u*jF)7Zp<9cgMq2r^k)m!>v2Ms1qf5P~$d!GfAJwIKv^D}(v?zS5jp z;$=49&NOKVNn@Hsgrp&(w)!*$EaKFsDPbYmk*0`+q%KVvOG%nS7LwXDr7R>hX^L4& z{05&j6R;OGeZE*L-b{=JPS^P&zGmM+Uz0EDi-dfE>)UE-y4&iiyW482eLdH=Rag6> z;6%ZRf)fsfLil^55AP{P57+zd#3wC+2b%@i0J62s*U4XP^M#rMjlQnXp+;W>-=1pp zg#u0C(=|r&nx{?iqD+FKwN9Io>zp<%*EpG;w%0dpl2;`Jl~~tgniqD|nkIAX^-QMZ zTBcZ}qO~dCpy9(Zm41#*01L^DeM5cyqXsQhR|RXT{Pl**K555r=jXLAaA1SBV~JzA zxx!p&t}@H4^#opw>ze36J$@c6IpMD8uC8xi>j;CH=vraAOEJ<5EuH zEHHH3)1db&5PXR<{smzj_a^A_G`PP@#+fS+tuPG^&((B&4j*XBi*hPmJdaDl^?<%l zf#56L=TdM#0*z-&wo^DfKhpJC7eM=MR6-w~!zSVI{Dt-g*iPxAa@ESkxf^tmjk5Jw zcs{~7DRQj}T*HHurtDH(J756*<%?boR6YkfL9lbiv-3ts|%4N{!rgU?_L%M~p0+)lng=c|#RwW8QL%NInkX^YtZgCM* zR9+odv>TY$u8u2S0?f-f;C=*5x_a9MzRDAVydRSCqMVYY;;8JXY?RA@EA;^oQy}=6 zaMbo@a=`rzn6azlmQcU!%>hSso30_N}CP^C}ShOt@Dd+kbW3szPAAIp8WY;DX>w8%WElHvF_dL?P*v zY%^#TMsV$G__Ix7$WyWuTp8_qU!Mbx;$hE_?K0_W0U{TDBRS$eoFneb!1-_~m&v}% z0OW%E1#mg!qoabqbeLUh;R#0g~Kxs9*P_2=iZ+ z4>`Ul+{W)fS~nMG$@XI7-UKE#7w4dPc5#BgiTdsmTx1{i*krPA6Z#u}Q4bJy8SE>k z@hS)V$|KNME_IQo^vQOr@=-Ah+1qn*jxT|yvD(6XrGn8}Hmm$lcoVWXc%OM}zDG$4GDJS!5 zQaNb$ZKtv;#6|fzi7SJB+b=?P4wrJOoKwoh?*$;uIBwE?vX-uYKj$e7J=20Chr}U-d150t(aH&A>CC8=&PQJYat<%9a6mXBT3 zRy??7a1G#+?ZDiNFyg3ozpEMVYCQ>_a!Ox47z%{oezdcKiwL}cs}C3HD}pL2XY7?! zuI&MYC?AwA=^`BLpjY&ha8HBw<02fTBXPz%29$`6y&o6h@^C2}_OI)>4$?(sLpYR& zjibJx>Fc-vT9qI1l|Jm(Pr_XSy&o6pqnl=h8$npp*9p>Y2L&1q@3bZ1$R?Fv@|C_+ z9F?)cQG3gTqdX{FNfunAhAYj2Yt?W|vfz3&9JRSj_E9-0`)E#<2{)_ZmS@2|py8;D zGU>aZ;pn#|6YePuhduZ05^@gT6yYAyf9P&w_gjvJqUQ zkLFn!^mP?Mc3$FqS#TF2JBo|+ZN!y9Ulbxc-A!3=WLqOH(nn*h($|2n)()ZLz2!BP8D`YN;FE@?Qr&&*`s%NnjK3+}Rp+nxpYnuhad!CldC z)md(wH&uT7Gvi_q*|7YDQKcagWm2N8T zC}e~s9R0{DT&jIfLFSRTE)AEe?`gVVj^t}w3(nr6|3YV(yvZn7y7Tg<0Q{gO^fcUZ%vrn?_9mEU6;E;Zd&$R=@-zEKUA zs_%Kol)f4iSaq^_?Ol}t%W9$){Fw48La^o+IS6cH%%r`r|SNa0$jJ~_q z<@K4ZPH+N&yN;U6_aC78Fs>N??4?kvW5oFRrK9I444#wXjh+iTMi#8{2qfMZo@`yU z&Kxl&1HXFbo!_*tm>s*a?58gCrIFTI$20%1#k_nS@n_#yGuU+BU*a~Xb@7^WZ(P2v zvn>3^rR$ou7=QWJ>{I2&U;e+7W3BmweB*`vlfQcBkAL%_@Yg>?^pF33MEJCtrMXtu ztocmwI&(5`U@~mI*%>)^)V7Ii{ikh#H(T7TD>svE2S`(RdHZs&an#eceB_O1E`9i^ zrl((9JhE<8eY5AN_nxm2;+gwLyk)1?>_6%qc>^~6@``6<-Rg7A)koLe^VAi`h_~5) z)Z6MIBwcU35O|X;)r``Dt?m)ypDq_IXuA6c)`$^yHa&3J;WY^_O70(Ss`|onMgP`0 z^A721wMJfi#{BSoE#4Q3gp$^R=ZZ!Q%AZQF)iYwQ2_Jnvk%@_Q_4l2v%-fYFkm|7eo!M38=kH6Wuk#y#5$m`oWY0d_J(&V_;{qZY> zZ(4cRZ8G=&5j46;W1m6N;Htcmqw6OFFT9!1rxla`9XJaw?F3h-1=NrCdv(^p5+i4>&$58~wY`m#6eCQOe*i3zXh@ zpVam)blJA)>l(1__WN8PaNciy@VBzhr`dOFQ|bHfbAP~fzw?9E1JHW1)OhK?fA@PY ze;=3(_Iezi%w<`q>85+C3_8-)hh2V2_617M-sk*)bw6wy&1d7j-$XaD^VF@|=lxI6 zK`m%LdDQKod-vZ~hhv^P^tSJB5^XhxV$M?kS?f;E7q#6P@r$L-UzD4$ujQ9^ktp0N zGF^E_!!=A-o>_AQ`>B2Wiw|EGAb;PdO?;4@K0Qot33K+;WPs%YE6x-*obQ=!G_V+Z zUog#17fp9gO;dRq^q#g!>lNe}^1hVQAR%8z3aPQYm^WPJhpaWl$MiT}lvcWChj1~vYA11Z1zZ--}5n#CMd?f&zR-|j)it(nL0@a1vX;7BOP9DT>kfCR%jI5z zzm|1ZDa3aYy=)aY?rpgCB4C}}=rS$0yVPN-w0q~1_Hyg{2GU-*lu~o!FRqo8I?~3M zr_Ch^{qxG(YU`^aZ|>_T4=@~=LAF-9R?BQ5$tCV3n>cOG+3hQlx@qNc)?~RpHJ`k# zv;HUY#u+PfuXL|+mo9ZLv+gKe=E_?R8_seuug2fJ)z)3Y3=j+0k|j$~^sr+Q!xp%g zyYk%SO9-|E`B+a%tz}SJN@^*F1C=4#z|r~GYFYmmmD39APAYz?SR`S((Il+fDa=$E zDnq0p`uMwSXDh5f=eiKup_5Ht<#JKOqUM(GUW>nZGIbZVhEkUo23gig3c9Q!X60Ka z-PNEitJuAgP*8+ulkV#fuF%V3gv)|H#dP)lfG(-tw-jTC=pIf7(zyb|p?ec9VeCq$ ziNvoH4OEm#>-@_7ZB~u4uB4_e%Xgl-?s0H?Gu>WI*Z%p~Wm+GCF1x7f^*C!&|ZM}^DgfI3XH;hy=W_f^XOO4mB;&g-yVgmlnXy!dOnS5twA zdZO_XUwOSl_;kDExI@49O_eW$oYshSml|JRHzJ%<>ZkSOVT9>keHhoRl8>P6NWV?U zfUZ9VIi@YVudhd9dq9&e;_J?vM%SV=y!Sy`%VYkOD+vUCrT^ z7KKqFI-hW27+c zsu9{^fvy7~oYNNR#_3sIu~1LEy;eq&q85mvoh`A$Es?7UQZ)qIqhXxd8taU5OgbZ~ zJ$gWDfk7}!5?EzTgzVCk76iJ2t?`Dq!s=YofO89}4n;;78*A-u=YvZV{76@4OSmnR zs-z_ph;?^`XrOK3GYmzAsjN$>(3e)!-rW`pM{wS4T4{4DSZdSamtZl+zK1L0^agku6byKxAjD5pRq7{y6lV8g6~QpL>3 zsT2Kr*sg-k2s#IjMU3;CkP-rBJlY;;Yr_XJaDH1X!4}xI(BV)U9UzNbQPXLOus)n2 zOydu^#97IgL48Y`#gDTbf66c@3ilYi+wf~>FC0n!S{rdmBGmeg1Yq=$p^FkgD&+cz zlwg#Qp_e2^E>cKtA`xYVy8oX8xFi)!%A0TrNaXbuaL(Cz6=#GpD3RA^Nr!^)X`w<( z1_U1wDiG`Jj9k=p;M{AvF_JEko2LjwvwnGZA^{0wFDih2TOc7cRX>D_ooD<1>YEz?~Pz zW{MUf?lm^gxz|wl4faQ1(8l2CUc)Ws1cq84PC#go2yPE<-RccaoS4MPcT<(#9aa8X z@6G%!vA3q~7N}^xzL&=<@i!hFnmIKoIW&Ux;`vSdrG}hyZ5)bM02Sh@c;EIFaBGE>p__XO;6X{0aPIKd$ zNE9!PmlzM5o517X1#>gFsEZQgi)J~v9DK&C02iMcC^23%w}8vR@0(lKM4G}e(p8C2 zXJ;D#&zRfRbiU>=)|Z&ENK1D|Fk+OLJ!Vx|1P5EvS#u@kTGL;=zQlN)ILtU>R+kWg zccd{YGNPuq;*yJEU;)ZsHqalR!Pk4B{^yPjMj1XAHzNtNjNh7OfuoE++J-ahn6%3H zjA?vn{*q&Z6U5Zm_;EpbKn>bdA*gmnAf{BrR-%Vs7{!9c1CH>r36DnyhL>j&mBXT_g+ zpri+lX+>&d`p;@4l(aK7o ze0j=5B~UnDRRR%(Wug)&yvTZO0VY_4xn6Plq@ zwnby0xL=~0AY_T_RUFdntoURh;&N0O&AmJ&8hZKgM4}D3ehd|?!M)sk6dHa=8k*Xv zYv2o)0CIn#r#>8Xmi3RJ*J9QU8vTp1;I4oUL@9CKY(8esVd$5q8`oi6w0Ek9ehW83 zd8n%kKZgh7orha!X0%DNTEZ=z%)?LQX31-B>R}eqm&k1^MnO9R?E`?{kTDH`$yIM=k@cXWRDJt>% zZmMTj`IrPGL9X5JyE^f)+LIfCgu`eHEb@&dg|AuJq?7dPR$8CNf^TWGx46z&KFW8uR*AKu&*3N-Vr zWO-M2M+co8jcZgIiSdS(Dr%Vy9mc)ltRE@YF->YfBk>(flP1te zzh2N#1{yXrGTnKQNDN#%ne1SCcv#NtRp0laIMT0y^4AwfxZ~UFkB{*BTVig{pZ>ds zXDm}M!0e5lj#}fQQ`ldWqrQNSf*Pc~@#^mJ0;p*j3&DF3v||ubIEod=bre@0)xQt8 z$?2202cj9=p^8nQsd34nQrrh^%2-zN`H3toz7NWur4=W7hd9Mn`IXLV&~3P3O!SYAb6a>qS-X0U ztzrhCtR-7%PdM36?~=~&_z~_1$HIZO_-rKFMdL1gksr=5H#UdbgBabrf}xH;l4Mgj zhA*bY+9h8^K;PWl9ykyV#(BBYKO3sq5vU0T=%*zf$2ZdAp`Kt{cN9NW@jx&biblPL z`4O|@Fk(cpfE??>Le3Ui${FjM!5RzCOt(}(5A=s%Rz-zje$>Wyh1xm;%~@mAQH+P} z7{TtYt`L?nvnA3$qxxH2XPw7es_W7>l&oOR(7=q|ALvM2H^2nm|{$CQE5FS9636WQ(xiTB;ek&-fFV` zvlOMfgS3|qkEPMQWq8cH$14qh-U{#T-QF6s!N*l%h*vq8CMF`D^-jVx5e1W=ixj1; zGk8#CLN(JpJU^ic%M-$$EFjFEK2M+?E|N?+ZKRx5BZE&0Y))CURSJud(iajbWzVLF zf$7{AMGP7Q%EwiyL~b6x1*PbpZE4vhs}FtQ=JCCIcM!jt%CvkO7W-$bTVV88gc2?V zTM7C^<``d9*-Va;HI-*f9+0v%z!q+?&zdwo1v@)pU7cCR6n_Xk6V^Y+aExVm(vn#@ zh9E|NlhF}8>Z--*E45iVkl)|H!^yW2F{-Z`gER1aQjF^Q6sy2c!v@me7~f8c(U=k; zG0Z6ZB@?ry(eZ(D^n^1b7;Ve(TySP;Xto@Iu|Wz|Ikjt+av36B*k5s{a1#aSE4 zP>j3@UC|rEv0!UCgGUFG)Oa^x{Gi`#oUeej#dUjR7)y>7S`y-T4_kw}(YV^&Ical+ zcouIykUU4UA=hq}DEB_@eAG0rn9ER6@_`Jms$k}5oRnoslLd3HY3@4bFu!Lm6%8PM z5;H;)to89l+U9$E;sj!jGXC zo2tdwb;V)+GzrX4q|$?Tf6y}jMdb1HfXrX-^oUV>suy#6K1m5-*dUxe&*U$BJgSO8 ziFtBQ>jGzR&0;QOZE!d(pXIbRI-S-gm($wpc3S0mPOHM>w6-j8T3hp-R%LXugk_rM(lEAAJAFn$!QKK3J33s&rsdg)-FB-z`1Y(x zhu6E4S@<|cf;#q@~nYyDF+r}_jmzBWP)KVFEB)41@UllDIyrFl)M_H zxLP16xQ6%?SX*F_SGEwE!^;{M;NiLm8irT#>Iw~GogxYf78Vpj_4>tZ=7t9Ld@guY z`Wq>L<5J0UK-*>xAY0`{ET||&!pIhCa0>+~uvPG|7pD~Y*j5Tt@I7Jr0LONc)D;T6 zUl0_dTJa5|rqm?+YD*2m;f+uV7{-n&#Jqm-uEjeSTb_M|;bo$1>XX@m*^po!khsPK zOGNh~)t$*qVqKqL9au(;T?vMWh%Y52vkYTTf^h(4wKqW~Ox=$n+m|dLV~M>#!4~Ec zGmv0vO0f01DOtcuzz!zZQVE#NYf)&`XphvMLW01KvIMth@sY(hB9{jQOOdUlOvMW) z2r}#jjYJX$1&QyuQo!=;F04c4>_d&UCm2L_EQOq!QYQuQJ&tAELPeEg3xOc1s=Jo6 zCTbT^3Q`~@czDFJoLkdj+Ol@z3U2E?b*#y;pc23%ioois48rJ}MUVi!B8UZ7g`_m! zr-;hMM8+lQCgP|dgrrXp#P6>|@*>p%4kDpJ3Q#gb6u_#Ni@jsyQAZzfNn5daBZG)_ zs|aGDM2SiNm?A{VClsD!1r$80z^rWoTWto1hH+rPpb#D#!jnNf!N3y#FZI1)dSUa+wegR%4%SGdgw%d+T9_@ zY~S<=DCG11$WJo2y53(?S?zDAg(L@?`z8mb_iX3Q2xlgyjweE_`1I)Dkk=c$zPB6O z3#NOq1~fG>?XT_)OiniA$id#WiGjYc-q_HI$zEZ84bM4Lu0>w1w%sK#bs`ufUe%(oSNFoj2j}fw5D_{kG<~wi}VD#7@F(&2k^1YNncBYA=|AiIw@%)9}3# zK(sE$tS^bie30=Na7f-bvf*2xzbOxE~j}2m4{!ZPqZ$_z`^nsDJNQ&W3rMYCtBr|qM%%o=-WZl z^DcHy{n~GIiq)0`eRof*R-!duswT4Gs7yW}qV|rQivPNUi zd(l@l8dHuUdaA+>`k=e${TjU-^ihq*1fxi`eM)~N=t@n#3N+FX4sv`SZLx0O8qoh! zljHs2#eb&J_^#RFXEYk$FI!Ac4cS4T7xZ0{r1aN;9@gmfpxZTi1L!)9_JM{?!Xf@f z&{X#9KyN}7+3gwhX3%!~1YHjLc@19y+WvM7e~L06nA8^`Lt-x&d^v zMmK`i>w72YC7K-bg+jf)k+;IvHTiDPuW0lh(9dc#?tlv))98Jm@6+i0pvN>i0Q!(d zH-SbTg+uuTL8A@ZH1bmL?;0Hf{dXFTwq0;ZqYr@oyhgWz*6TM6dQ_96?-sOa^g+<5 zL*ZZ#WCiwk3>s}U|CgG)1N3Ve-3j`CU|5b2ugF2a5Bc9g5K%GG@c5tqH3Xe>6+38r z$v;Iha-h+d^HImbfxZ!U{`PnddK&b%HTe+e+ckO|H0n$^;AgRn@E;o82l|pm_kzAx zqenoajD2mA6CYBcO~|4^f0pZiN1 z4g1`B{$QWm9&d$xZo9pJhJCKT*5V%qeL=(QT%jh}2iKPN%|t|lJ)*5XfqMjsFk@>@WAG@AOxcQqP)xA>=^sr}xH_Ui`ye@l89=seKW9+Vuq ziodDJ^FjZCr2W7bfTr>wd<*D8&<|=f<>ilYv4ef&NFO`k$$gdo;*XU7ehU5B6#CH= z`r#D%ffV|7Ma%T;_AF_%Y2hS|I!K~1MkLX8f0X#@6#0e}dRa1ELgNLMmv_CGA1;x! z1GI%v1$Dyme9#zIir-(XXKxidQm>l5FY)O(?$NjN_vnU;}K^2k?!-vUnSE;oJ&Oe zWcrmdKd_7S)X8)jWjd|We&vI|i|jys){qZ+x1_5iy+_h@lHM!nEt1|R>2gW$mo&ZP zOZozmE|YYVqte+Jyi6DUlkND?2>pDRyvsKs@#l z?`9c~X~bh6@s1JyahWcDH`$JF&b5Qv6ZEkUeZ3S9`DYsAG5gRnLVU!(oBThN{6CVu zR=z%xLm&IlcMH)dA5I_T!+f+K_CJkPLXzWmfaRJVZpYBWKJ>gVMGy0#hkfX|HG>{* z|Ioue^u!5=a$*|g#6H^1apG&~b3Z{m_7U$W$x%N{BR>0xKSq32&RTr#SBTF(;`b2_ z<-jz`fqmG2g7~$v{ln*W4xig2d~R>>xjn$=`fZZs4w}mmK9>W0&JTRH4?d>@yILt7 z_+jbaApL{VZADgB7_4@tjE`cdh}q|f8XxM4g&^ps(II)(qclK%+#XkT3K z&q@Df;hX2Ak9J6M^Q%%0`_Jk6jvK~Bq9+XFQ{= zrT@0@O~fI&iQg~ww@Lq?^luVA)jRiF_-dU0tW5Wld$ z4}V03u-2V&uC!5=;L#DjI?X%$HMw}7j2L`qr}lPg5|6*ADf!2O5#`XBYzwP9ymdJ5aVP0lOqSiGslN~HF2>iQHzO%ef7i| zG0xn?F^?GM#wjKKI40$(>ea=JD+ zeZ#Fc;02#F35YEM&>wDRgJwHN`?~O&=c$SM_(&SOEG4q2Zi?jb8wN(IhuecaHI21# zy!j88TuNfQ0`P;~oI*<|)ESyMIWTandTt8(b_YbsyQjkkaOs9aixsZZf8crGova^wfTzXp?4We_9f?Rq> z8U<>EAQia`5veNl?m#+n=?_weZ01}Qcq_VjXjs%n=Ke9KLFg*xQyE%(HEd8Oav3+~ zW8_d9H?e)uxt*c~+*<@LSX+{m}n56=}zxPc5p*^Q^*@=mYPv{#5jNRi27G z&zj@t^Qkr({#2hsbIqm8CB|Gt$Ysd2hgjfq8DR;})en3w11j*U#t|czKAVU!fEc;- zQN(!HGop7pVNrDtlX4k>_3B2HcQN47?EAOrq;`BU<)eO*OFNL`oF4mK|Loe4=QBR2 z$f~ux%OO4``nw$;RP_1%*sIv{8eLRm)xs#_xim4o#`NY!@!v&z6L&v3+~r`tm-tvW z=B=?FpYJp_|6orJCV^dT_=HvueZ4C&BaBNE?HS?Dx-7!RhHOIZZeWhuhT1GK>+7=! zckIk2tjQv*+mS_B+n7yQokfTbp4s!KIr*&4RzlTjN=VHa(kR9Kif?C{q9J}`no?nY zngStyLz=Q6etnu^V1AksApVXFcGjiIH{t8jWSRK2Y1#wvYck}wI$eHguCy~P$J$l<_qA=0!Q*&NN0zNgAt!q%nv~5S4N)d7D($tESq^TAm zsZCQaLQ<2l3~Ky_cJKs#zi2&?zRf{v7Z?z*Iw@CdFoV>VHSJ|i#)#ERxty7_lqm>% z8Iwu5gvnvGd?^UIbeUKXqGihjm3Fa+Km8W4*LHorSSwzNjs{NG`69k%-$7rKFY1eg ze1YrRYHGUM>Z-fjYN~xb*SA$y`=a1P!HI$s4uwMad!rApNJkIX`|iY-e}V^_1=#?y zwawSbA5Zj!ngWf!uF#=IUj&~>YxIQzP2tlunxVY5`d?*Ol1(YEJtbDwAfP?g>R#XQ z4Ptq?Z;UJ3H)!}~i~ud)_YL*+j~etOK5xH43+nh(gUjB^ZMgIE+7~#A@ipz`=1Q~7 zxtzL+injtWSD9tjdP=1n3(TBOfoUwl%MYY( zX|g(cBO+I4Jq;w`@qBb!-Rv`EacMf4KUB?R05nReC+!z=-ZUl51 zoQ3CIjKkg$a*pTm$HPJKN9ns6BP6mCI0m3+n*L1@{JU7nL&j8T2iB0J5j9j$7;p=3*M$F7T9Y z1Q$~qARCoavJ_mA6M(Y{1V0n*9ArmvDVGU%1%Mp%754&1eOS2+`bs+~ z(v@FIeoL1CM_A=D=qo)3K$`-=&xCs=H{6mHz@-~sQtVqozqWoWxn@ zz)*1z#9P0H;l-s~CR{53UIl`m2{)1>?g8K`bI?b9i0VYSOzFN1K%)Y|&wyJ-kR0?a zBTO#1@*HuybHqh}%b{GBoz0*R`&3lk5i*vY#~$T}C?uUM7kbx1$E{iedV>OKvQ*qY z$kyk8>jP$84!C=O@#TQ~Jz%^!;Jyn?F6sU_H{5Cua5aD=#P%f+6bHrhv6TL5E zJ5z>I>SOgI;OCIv)!4t4E+5uj@QbBxc&lH-pCVj$;Q9nE8vk)wvR%pB0%P?X;Ky(& zr|gsCmBOu|c3-DJ@D)zZOKcp*G&e5WNt{&xj%MHbE1;=gl6~0QnaRHOzd%ydHhuw%48GEr z(q6Vwxuj{QjxhLIKDJW572=|Nd<>V&hmq2cwo)F>;ZiPBx~~C%J&Cqc<+lPHJ>9oJ zt90p}H$%FW#6O2ixeV!6-Uq;11%fYeCXL5hx|L6YR_T5OVbV`mN`5P!2Jaj$86me8P-!_PaBpN%EQ|YGk%er#_@K%S9`+BKIPYiOW|Hm!4chxi*RmS3iktqHGS=spjEnLlfwN;3a$=x1Q+Qeyuv+=u&(bu z(8wR-h_7(8PN?G^(Qx!Wj>1tJ({WFNR{1E!7q0j(nAFioT9D8jjj;CLGm=(pQoNw_C%NX2G>-xFuO|y&7(57TlPI zqnn^i`8ccLmS@2|q~Yi{Ba^WfO>0fe>o((xV8lpeL`)wnX@UWIHw zF2b$Bl>ygDWlQ59;nrrsQGG-tj>g|i`Y69jAN}5B!jXMSpEolu;)6`-TbBjb3z^bK zV_t@IBUH``NB1?EaKDC3^hNJtHOgL&UDj%D&;9i1kKQ5||&A2k?>mt6= zSFYh25Z2mD*KW{ieA$u(*R0{_w?(C!s*l=%(pQ-U7t?SwkItlz>P_jZ%7PozaND!s z#x$Hi3vNckRcFDS)o?XgaQA6Aywj91ztj#?e(SQ}9?@_+G#s^Ay?!6laKS9NCpBDi z7TlLLTqq0fSq;~c1@|2dM`M{&(y94)NyD{f!M&p4!dY;yYPcJ+;C`gxXfBt@zSlKe zTNd2UG+cWY+%Gg-M;6?#HC(5LOZi=hlHDtC(YO)Kf?ER_l`rAww?0FDql1vCcG{!i zQqvuStQ;5V>(y{6^&8dO^DP=KRo`QfseJTh!BP8D=?-bQ)O3FYnaanohD%MC>bD3N ziachO5bq}m!dCL2$`~v%2L%wioVzqP2aeNOV#Jo^i62ERDG3@ zP2!^bPHVVSeN-RHz8MXds_#k2ytqi;EH0G~n)6t=q>H@-@(&dSU)`I~+)~5!+=*{d zolS!?VYG%j{_ntiIu(cg5PXPS)x>r$x$4^b8h@R?#$V(0`k5pC;^nIP`g$+U8?5&W z&e8n4LTxQL);OWks==G|`{TH~xRE;}B~58iWc{sF25xK?w-cyPan~R}c`h&i2{uyP+aG-3UT=$+Qt+CSM<488=MhxPI!dwC zqBMU}?JzF?M5Nr}XkE(I-ThXi%~@$&UiY9kSY&Ho4(%(Tec4sCdsTi|_fLiH=O$aM z*20#BBhClC&oup{)-*1g>)cls1TWm{^*Uad{7I2%T{iFS`|-c6bKN`8QZB51LFW2D z>*ILaCiD*u%F0jw#XKSWKjMRVUa_l3e1Uj?T7mx^I18`G4Ge5G9A_7mEW}qz@^AuO zp5?)TlpePy&*Skd@Z@_6@(MkRC<+gk9KfH(K$dXUpuJz5rt{bjqm&f!ta>8;&gVW zVPf#ZXWWHj%n0%2!C@rKGe+pZ8aioGl6~WYA~Mmf*wBklm`6LQkE-aOJzI~M80 zF&tS+u(dJ?Y@gsC2G& z_Y>iG<-aN){A`%=al6XLz}S?X50;J$j1BcorBof>fWgUHDkGGy)g!{U+2c(6$}lMz%-Qjfv?+3Lrg^B5A~`6nfWfjutMEz)woS}smo>M<8QNdT7)^c zlDMVr4PfP2ceqROZ;8vaiV1xRlq=7@YN^Y$)MYJO0@*4TcGa5llmCy*!Rl{^y z?&Ypp>ujkCY;;+c$Gs8>thMeabuY8rM7Uh;rECGGOqP)axWIK+kldPdZ-j4JrS6q5 zOWGBihh2-T|1h|aYOOnLYh0##6{(eakIqAHo%Miex)!@vyXvevOA%N~0ZJi{^NTDY z6|Y^U&GSgZvM!ixJDZDEfl8lGJK1J^R_H5X1yQvWEFywTa9c@)QGT! z8X-Q2c8Brkqa32eKF1vxr))=yuwKKAz^liFqlYM{J2zqwO^;F95TTJez?4J_N^hQBT_|8-W`5?Fa&STQOdDE z*MSg@0gH5NALkZUOHm6%(ax3_eV_d*f*?*{3iZU>YbB6B0FL(@JEP2ypZHe7Abmha z61ZDQgzVCk76iJ2t?`Dq!s=YofMf9z8DVU!wY#0qpG@#0U7aoAwos~)mQWzp-4%-C zWzrTtA}=|IQY!SN6}5M_#ljIBM!M2;y z3qn1yPzN{DuF!#SG#0`sbe-KeV^5S*AQFt?ASke5)ox)JErkqWr1pv_x1Rj`N`<9dc#p!NR=-Z&sh{ zOa59L@v?@XIapQzO*f@Wq(Rf+S$!HeN5!**&?ZN70IWg+XeOc@4f^zKq7v6ujFV&h zLt>~KHT!!6*WkoSWrEZ642<+m8Sw3aMKBz$X`D1PV>lgownTEAE*fB*&V+zzkBi3@ z`eQgf31NaOPS1`+8;#=Arf*H88-Y8`jcX!Nyrx%TJZx?PkAoM?&EVG7fcr(W99#}Q zV^)BRw>V3T7tJl;a`5}+)-{o)aEx?SBGlR02Ea4swl$rvIdE9J8H==ZcLXCib-Kr_ zDvRLozF4>!)LPSDjPtKwCk`{tnAIgj;AJdyO-9rdS6p&Y3``gOWdrz}5WW%t^*^UW z=Ecn)6J{BmMk@r4GBuNDkyXa$)#3}rmmC|MAg0E~aWpnj9#DfeRS2rzri#i2hsI|5 z#968(Sc2KG1Si?g3{Bx(HjTNgjAyGjI-DRY%IMx!606E^@){C)$+2M#*^1j$evMC9 z=`F)OEwl~coO{a7I?BOmafG%|w!VyB)Z>U$7LE-*p#>^mc5Emwo8)_~60_H_p_0n^ zQ@GCHS{sRQc_E8tyR+hLD!)jyC1iNYaGwSYm0jNyOe3XEM0NZPqA;Yy@wORrR{Wit z;~X*y%fz>pWQmXU;X6yRz{QDXOgPHqdF9B5W&OYnh3H&mCyf&829bibkW)AW&MjuI zv*LUnRciDgY{KDj$k8ig6wZ_rK{Co3r+ffXVx2epoc}+2Zv$V|QKyfeb6=8>1PHIC z6v7P&kN~Ag2q6>-d51s1EF)KS0>hcP zx)Ug5>rP;JQt;Uc=xBC=jKR?N1Nk|yEOZqtqa{;A&%1|0MPJT@Wnh3ti^iQ>;8(#( z!hz|cQLpLh(}OzJFsl3ysHBRi;g#;Y-B8hqEY=om(il8(N~7nfo7;=?rdM@Utj^qh z*MgM>By%?QNS|oD3wth+%^*#-@h9%po*H9z7WV97EyH zu_uU}8a@Rg+ECF)vyoS_>TGEj#AU--z8f%ZK+K|oq1+w4IBRk12N~xVtB_U%9mp~@?JD;U??S46%q~JFCH`R=y#Vn_g&zjw z7jD8#h&$S&S%54%6!ME@D(Ty9!maTGQau>q&RgJB}Wq-HZw6ziRoxXF?(fsNcS@>*pHY&d?2l7LMXyggi~qv{*#w@4g@-69>gxq7=q;f8T>^_K1Ja^Krt z0VdlDZYl`pxJ$@&+S@sR?G*Qc2X)`R-lc4$r8rZIgq506R}~f(GPY>R@}f)1iWV12 z>XOLvH#^|FwiHy1&`@3$iPf;O=#q-4hEiy_SlBIDzMXxC6d3W+B9`hxop>l>Rm+?) zj`MqSiz{!%-+;!qhAPgXPa?(|qlozmVz}ub+*9l;8Iurx3L!co5%KSc(Bl!(A0b6Y zBSyv)M0jHna=twhA+NB>VJ1R`_=k!Jis?t!N0=tIN}dc+}kr_urg+=ny_VdXel zxaPq3Qp#}f9idyT`2x4vW@n>wI9+HiOP)f}y?Uk`h#C6}VQS*J)iaQl;bN6=w?kL| z;C{@Jyc@c_XrZpT?)G`6&z)n)bSS1^M2Mq0zQcPdj#W6;;5ZiBHfrajbJ#L$5^iIO zc_jFPnq;_pr50fjT(X5!vnZ;Kl-7~OJhsn5TxHVVn%Pljm{R#-CX-xE^^&AEIteuqvSG? zsRl9%Um-FzK}PxIN`^AXu%SZaEt@D}%&ZczN#xzT^__>~6nTAr0!zL&;D!WtZS_sqRM_WUxNi=D$!VCEh}fy|yK6Ex1YvoS$CFBm3h=LL0FAJ5^O zoC$i(djjt11f0~)>MxFlBKl{ep@_c0KSi{fQTs`U*u?XqT9JX}}0qN=p6il;++J2r!9 zuiIYJxV06hS9?`WOekCQdJvA3=jHx z!z7O!Wz2D#m!oEDOG_Qr@(LI89=x}62sH6>`(tGhg8O4C3s&x0F&d*p_H|{V@S_^mbk+u`Etcw?P#LNkuu_@21#63I*d8BK8CtKznnX)O zX^PgUEs+c#kIAq+RfbaOqdQzoHO*KN-JQ>od(Fc zwXiT2w{~r$w7e(+zI(zWhax4k{u9iywTapbclRdHy?A$TB@wZY5>;Dh<(WA{8Y20 zsjX#8iaDjY4reB;e^}s{%ka1%x$@#VoS;B|Nzl!BTC=>k9m}#QaulzW>Ez4N93^MX zAr*KeCPztmTp5TkQ&w^DO3Cq+m>d;x8KTpS!9V8W4zZ_iXCcmnYr8QK7PjL@&_LI4 zAp*U-80arrQc{F71$BO$X#50BiN4sNZwv5Ym5ivO2(QrG#j6l%j!8mWRqLkqrY&s^ z^;Z_kZ}_DIwS5c&Accf5X(N#vSFtqpW8|vBpwpb`;-l(qDD;nBrHWUiDXIG4x z$U@8?>Yip9);9Al(_t)I6j?>6eeXRD=H_U&xi^y6rw*B$4czr8$IB?+ZRdON8*mK8 z-UpfY8qVF#Fv_GmA?5Og!vw#zM!cATu8djOieHF8y8Yt}qN<3zK>{iI%Y>S|+h_=h z?k|G*fl#m@7z!>3g@Oyiq2QvlP_QsP6fDXJnFm^I$3{2LxnwdPPUk@g;w2FwN)Ht{ zSy^kdf_Us5p5g{G$jg0E2FcuW@Kil5HVR+FMkAOGpvi)dHljieGAa$3b|kZ8nFxc( zwj;oQX+(l283Fs*m|#>lIOkRAHE9G-StwNFQ$vc`9d9O1V=xPW>4l&lCp9{DLqPza z7tYK=lH#ntAj?sKS&Rb-D>68SS%EKB=Bc3L zL`)n>)bosxl{GOd8>;6|7Bll#idPVZ$JSrK0H}rNk#l{K1W>KQ97!mehJu3`q@Ll0j(4W@v+h#wtZ!j!UXg)deDbCj5PtbtB*Y2Wf`4slrLU;s-V%aHTZ z$*U)?njFknm)$T^wM}_!w2E9Aja;vB711b_J%UnK#YQsf(rDEBnT%K+jZhh}vJe~P zIG05u)}yV~M#ZS9m1wecu?aMm(Us9?WiBJDqLG#oeE3=&n;=RMT@#JgN)TB)7mZee z@yH$j>Xd+AZqeB7ldqh71!}ooMHz7em6?1EQGteSv_urKNr^a*83<;q$u2|ZtV54& zjz&;ynt^lVLRFVK&gDvESGQasnm8_68DyYM#esY70vS!)W??j4F-yk! z_A=2Fn6MPUD~$l!G#!M|SE(QYSF0e{#|)BXzQqVjCsS z?vx-3+Qk5i>0$sBZDH~D(Bp~T9oDvj-Ao6O>#ZsXrZJOD{k=v|CGRzOru9)F&&Pcd zfR27s12*=4C9KO{17Sc3b7s=6K_lR*wL;F|1FNM)4_@ZXg2C5LaXHuG!TuT@Ktm^R z+5cc76<>Mw6Gn!Q(U$!<{P{YLvYn3C7$hAHB95}1j@O7K9jCuI%6584r#I?!%62-; zm;CYyFff$ubTpTwSLpndAJk!9QfcpJESdIw%#vx(t(MI4xtD-AB(l8ymJIz_FB;hq z{`ai!85xD4AG5sjA>+Kt^2&pZ={d{OPvanWS^06{$l7Gd_&gzt-%N@F9^d$6&9-EW z1MCi}9RgEP9K%elqCF2#n37@rOd=EY01C|_t{5DI@ zgWPG!uw_EMCFesfvg88D=mX_o?*iO%{9j962>Az=ya@8cmRtz=ge60F##@XGep-y{ z4Aen6$d}*_=d_a0nE~E&rr&MJHIR2%@+!!%Njc#0tRT(nU&w1A-)p5WfqcM{QC?cD zC8NAFj1lFKALWJr#gb88_yJ2sdEvvBjPk;pEg9v7F=my6zG8f~=8ZSV4Umsn>98f# zYROpR4`ECy2mA`$IsVv^u}&TQs3k9j?2SL*OCV#6D+hTaZa<%~G5hJ2$X<6Ly1Q#t6v*z%r5vp@N);&CgT&vg!4aurT_jvp5X-Wiek ziTy{Je9D}kZr5@KWK2QX@7Ho8q9>5_E_Rw7;|M5@DyW-@l zjEwwrUi)YneWsk2F-Br!v{8(l7blx*171gv6xLOouvyApIlC}Va*u_bJXZ=d4=Cmu z;RDUUg_}8XF76=?V{$kBN?e5e$TDj=3OV+!BF$&}HTw@-zGu~ex9%xlnUL#Lt!4r5lWj~bg#qt}YY`Tibv5Kz z*(!Btx^nN(?yBttZFo6n1YfJYGKVaFh?ck{=ZnTImTNGESu`1iZDI~llsK^WpkewP zz^7z*KeyD7hRO?vfZ(l;_O8DD5)EREfi4N|>KW|s9NH-qqw+Z^$uju-8J^|=wchH9 zc5Xb^6KgFCk>sQD({~9Jn7*M3Kb@06g&Gc2;AcD}P+%5Nslv~YjaOk080zpdVzdrJ z-((LUs_;Vum_Wr?dc!hdjGbX=7*k(Z`N!B5mIggvu@U`DSaFT`8oJU@NO}{&DEraN zKbB53na9|JCi|GW&tx8B-p00hmR_^ZIG-n+H{Sv8XSxI4^apbInca|Mv==wi z>L|g_+=UWGcSX0`7G;cLZWD$qwwbvyj`D=?@{i?&FqusUuxvj)pyvaVeM~2W$!xlY zW&7!yxU$D~LP+6ur?K==^qOz7NbkO21c~8a0&(K&LP!V#!;%DKYcj_rAXJn1Hzp$> zzM{nQ_x3#l{bqE?xI7=!dkGp)%1%VdC*P$NoJX>{5zV43C|T~jUUX}Tc;GN;dp}u) z+0Oi2^#uM@^#uM*^#uMz?OA63JXLgTu`fha;kS52l$>qZXgJm;V`RzVYx-!Y)EwvQ zD3j}$SQ8LehW~{+OfRIvC*j+;t0B+PY4i;4E`)8|Fyw3;#u*&enqqL*LvA)8_y+f` zINT}7EZaDP!&-)|&n~!TmWlYg40PZ^BEnCGq?{U%z9|Yt>%PJ&Wq3it~pz{ zz&jw@^)PAixbFhjrghLuf(zm~Q9>@9IDNsL!1>YlWuN+9O`>lT;*G5chPL1z``9>> z7LVhz*;fn*eiB?5YqQv-ChC&l(%$P2mrnbhimFRiZpKBxJmdrS{UrKUBi`7G;Dp=p zuMCHACM_OEeYYAA{3N){tB`iW2kv*kY(G0rp3Uy^f%^h58+_n?4@`o31h9tg)d|7u zcjI3r4&!uvN8r8zK!pLpPlkIHY17Y+n>ZO5ANnS)_oBvq#ko=+c6x*nR4UmG4}}oeAHtu`ptnXwGtTIH8W9GBU(5f2{^Q?Scz{WLNxS)l*B@WjHIf8@wsLSZ1y|%s~$PpaG;oT7r*Nw1^I}VxkBaXju zjJ_)nwsH4BHaNy7!#!l-GE?B5uy9!^aHlL>b_(3{7H(n++{+ejl7(B3uvOnxte@#$ z-W!?v#^dH7tse*5kL{BTcPrAGHICyq8SXg?H#Ir#QjR~PZ(0i6A*5}xHb#7Fa_>v3&*)TS-HC`Tww}auZ1hJaB<^#^$^m`xL=Y2 zcPr91;NZBr#KOh5-zlV-e#84NUOnQ=eGX}+T=rqI`o3)Grb5Lev$9`4_KVfPs@2`s(&-rUNg_bzl!=XKw8 zvZA}QqpG{(WKQ?p9Y;ELcYJ2UzvEGHBZS2&$-Id+d9UF(U=HrdGr^8F! zr-MtdbALzm`u^^klUW@f>!|KHy1u_5ZBu&phVF}oj}G5n{c&hQp7s3^XFYpfyN6!d zIDO9X;UE2SOIqN}sdZbbKle=FcVD~hlGBssTy^G&b?Yy2p84IGe_FR?&ehfTKZ9GM zGvC_6xc?YFRei@#z>yI6#xK6^x{toJzW>peA_1})D8(Cd9?t3h;mOa{PrLc{)4`Ls z*3ZBBp4$BGQ`NWp@Rg1yI-c$fbU$%2)ESw5<a@E{8z`uj;fOvoeXq* zpyS4`7Dt>HU&WhZ!S0P6)$^T>qa7PeePPkN>qB2zf|hrmnY1b6bg=vO;aTXnS8Yy) zdh}3~2jbzJ9v2J{le)j&@ty8(%y&+%zWJ7$udmHNdQ0~=Ixp<_`f2Cr&7Fa-=5!x9 zxr*)ET?Mq;eYoRBw147!pOH=6>X@^HvF$ejK zTc*hpS}d}Jq;`$e>D6tzQ3$`bS`jcXY81LW`|SSTJ$5pUgtisx`i|8$jvwP%Jlo!@ z$T`0Gt$(P>ssc*~0ssxEE1KEMRG$=nCI`o@z4U6?{a5{OZ|xd7(63{-AMn+9sD5>8 zOU>1M{1oqw>vA*HW3F>nZohs-F9(%vQjv+ktp{+IAX@Gah6++lksiKNH2IR?xQeOfRx+(YNr=4C8%-NP<+-r-=u z4!+o+M)e_DO4vR(DB}E!b)o<76%P+w8pHrby~^06r5Zqk-9V zVek(HN&chyaW*K6_9BIy0b-)yWErBm?bUtPsK)55;4`!-ctLm;xQS4nA?b;j<|YSH zctYB2dKjQEh}KL?L+^-9=@(H%bRHuV3Q@#`vx41BTO`azZg93R7L9ovMuNu!s-H+C zq)K9;5d_ob%6U7(BNe(!`e(V1c?8#g^L}&8v{D%SJc>ipq)iJ2FfKoKUD`ZpgN3YU zcp41|r!9iO!NIY~s1RqOpF09Y-ys&~vXW#xVWEQt3~E9$RL3_6R-v)jd;X=8xvtBlRpzpvSg%A<{FDm1Y<$Z~B($ zcmzEc(z-&3sZEe>>)nlXT1{-~MaMG@-9AoG zq?wb(35ue;MdJiTa%P-&f}-et(kF0oUZYov5WG$=5b>Oai;@gI2kBb=kTVN4l8#T* zz4s`d)`;kGhlb>Pkozqq(G>&@Tjar>vNXm1cGu9TSr2Kb_tRJ-@;qga7=-mhRD{* z(rY8)!uCVs982RIOMhk@OZ?ri2?u{m;K`Z$nEb|6+!gkRs=l7#kL@wtIL8u6pn~HZ zOXD0%Z+woW%P~)InPv+PuC|YJETIwLxX!-~$5tF|IEJiw6hGqRnZUW^078-Ciq#tK zh-VWq&l(i*y&^l+y%~I$XtUFmR6OB{{-?$Unh)i~fn5_8Zm)sscsSeE81q*4&Vc$mzk+ z5ILP54UyA({S!ICL^ZdKb2$xzb_LWc<6KUpnlY>|b>m!4ieV}>$P&gGPiiD{h6X~G+x%W3kv)Fp@?Hvj22;1_s@k>TS)FnJh0ua9(;?R31T7b9aO zLGbbk1n`t?Jl-Rdba{&z>6Gnse2y#WwJZ#dvYnn5C#P%tBn5XU+jzX^Ci>*-0AMKF z>G(cBM#j6+f?uljQ6ALcVpIl$da`K?R*vn#{Vl{nW_wg>k?HuGyxfvm--VXU`pvRr z)(>&YAv5YTi7$DGgADs8y=cj>f6`AZ8TL-%y0v!f&q*tc1Y^-olP5#9pWbFSivCEQYLguqLambH-A10PsGRDnB zGj`axXq$=fltTcvXP>cTeAk%$eM`po5ZPa{*D=it}O!SFzu(tv-&Jj;W+fT5^$eH=Q7gR@vR%L3knQ^6Syb@b7QPv>cmANfDFXhT=PS~Y7VyS9 z`e zLKx?aa>)M{Tpzk2u?=^F5eWWd)KTO@$N|XJTAmF#2$}Og@hy;XZcQ%KaxG-kWisbm zrk6ubgPgAANstkq#QtacGRSEANx#rC%R^gE`l*(eLdNwcx~Carx&`td|6o7eT=|cG zTAmpvvn+9%>kD(%5$Z*~h1;svac-n0oTnm39Oov=O`!A1g^w}$UdlKZB|S&`z`uuj zQ2!&uVXl+(rP{C1+(?*1grf^`gnA$g=NIHWEemHCWU&zG!T|R^81 zVuCE(RFH)e46<-bL7uMh!Vv{|j+TYn3$k#Ep>MV`{u;c>LVq84ap{}*AxCkZy&aEf z8Goae-w&=-8;AT-Kjar5^P_M;-K=HcCH{ksQ^|aHYCWIR{v+CdLi<0|zOe)PrM;kE zeCQVrs9QA-^RvWb-Vpx;rdgKrDV_eH_Azft{I^Exm-dH#@u9zh`ES$mhqV7u(B(4z zo{{;bzmQ*i6d7~SoKvP{G07`%o~H0(T}}x@dtE#AN@mGKjslr zj&MGrJgLutXuNPdns}7IpZQV#Tj}4XaX61e&);kR+uHwu_J6K@T=%4YxORwtvGzA< zAJ=|kkBk>nF6uR)?Z4*ybH8~XF?d97_Sf@XBtKG!emxNr%`Xq45&BC5FM?lY#C}iV zC7JIU&M7~f`V<))BbsfgwWfX5#;pSzI!kw-jUMiRqK7Nnw7;UOpyj}x1I3By;p8O_ za;VgokWQ|wr~BaYn!$~4-PqN>gLH1iQML&Z(5dxx;C*uRs28VzzkHC&+Bf&U>Fs5^ zwr*|f=}cGyv$l^Mei&u!rvu31hl<61zAcj}yWB1V|+7bDzeZ9R&p~UHcDo4Gt9)Ku>Sa4vQ~NUT?u`F1ven?_+e= zz`(u%t3R}b{RejRVZ)BW0#;4>Q%G@qbZ8<4V<7~xEigSeN>U(Og?Us%6@JEXd^PM* zF-nFWi|ovM3`G^mhl$5JvMhGMNNb;oEJ4e}dCi58kO|p-r(|pg$(bLVF?Jzjc z(bdazA4>3ZHG)N>z22$w%jf9@{ia`#!_UlUcLlQexjyQ1*zl~4_4M)bkL7~oWgg49 zXEK}4;~C(m_u?u(rgP7ft-5uT=bp)I`k2}Mbh2%@-QmnXiXQh(PN%WjDRP#Vr$}6}Dpg_vhBD8fzXa~QiUbwx1-ISG6(d`P@#TrQ?HFH@ z7{8({as2DT+1Jz8Rj@Kq1tcL+4VX}#s0vJ2u`)s3Bq6~_l}p*56#?MN1Sf{fDJv6< z8A&KlFlZ!UMS@0G2?-iq65g2XgB1y88N~{?GQkw1QpyuFqfSZCjw)qEf`(Kn=aK*L z4aRclEzXSmL2R$mc)yUND>Pn|Y;fvHT&q!nUZ)XZ^p1rvp#L;V2gv5PYrA`MWsW zOOUrGz+o-gF4x@vnTK)4zG;ZC>~pbp8GWvYu(9t$aX7583fBfaamK!PL9+Ed2bpbS zoGF*>X5j)kkP8h6zA3ji4u@w`d_LwmtuJ7n1?q%AHv+~c#u?mi5YE7X=Z|y&>QAKa z4B}~@cEq{NXPimnb5IjTFgS#N%?4zp#p9kpTJ70!@=VzeuFYB)ADnk#@fi+_S(ub#`3lJ-|G4c3jqWU>-R;E}QMlvW-hp4|(_LUIT)k z1UHf6&xd`JIObnYpl`LM8^OsH_*d)$*A2{xv*TD@*_+frO+Dhu&B3#tgyS?G_atx~ zMj8Ah`lb{j?XV9V+n9ARE{VRWtjKW#f}ae>@seo##noe4GjJU^j7y?#+5-Skr*Rq= z_-90zJP1y2!@md)tuza(`yoCtWce2-??)BZ+&@Gg{;SRqYS>*=l&DImVJdC zkWD-9MmULmg+oX?fy1~Y_7!0q_-W^&O5k2L%HSJ)aqYag3~6`|!*iw{pFxaOkHu_T zmd$a$2S<{6Ebd3zVI0OKEB7S;@E(ZgOu1|atK22*+vzx1?hYJD%3V@`D&C58<4n16 z{k!x509a?^G%gS~A1r+y?*Y#-AoxaKT>FWtMD?ge9;+T@5y-3y>#-9@l6sUCBhAM+ zExQ*uUNenLQjZn1qriaRYn+>juw~zhZpa+dw2$N3*!Ks7k;j~uEBf*N@jZw$&a}(R zh%g`o$xWHTw*DNBZ8)fp_5W8Kc<0r)nkNvNg@ff%7jd-XNgOurImpaUTo8xB;T^{q z+^-=U95DvR@oej3y-a<>77p(;*|=JhpXH`oIJ_eogX6hj>Os9GUw0g?0J14J)52X5 zhg%BS)MHW#+!_lvIR&oK!cniWFTUKXEgZ*3GF-2Po0?g9(99${;|)IJ5-^e=r=k9gekNGrs_@p55uTwONOI&cujo53Xd z>UxpZfrGe5=Tq#66>r@%djv=ca}FWuc;QN`bq>!YxjLyT`&UNr7YknsS$>z&&K)ct4S>9*;aFr== zf3R>>$#D&)9XRf*Q{b{KeKjd?(=A-Bg^Qd28s;F)%#-ygaAio_fP?mJv~Y3#)^G@E zX8iFtuBlgixz{7jl)J^k#p}Dn($`|);`QBQ>1#`YdlYGfI9LzPtH!?ga-T<&nhjYCK?_U*KA@%q>wrk&02M&{$S zE{H?BjmIGt8woz|?dW(;?hV&aTu%rclygU*qU0GhPVmdOft81)x1Ex4=cBLP!h;4^>W2k>E z6ymFl_dc9cAG+xiAX2Io#uPWPm?6@Ju+*QLMS-GyYA;$^M#i=IMFuxeaF? zo7b|~dFGXyI_6Y<@$iw3n|@w><1=o=InogceHE<0#GmnFXmCBykmD4hM^>EVt= zZlU}1WrcyKrxgaDxvD;cdY$mo+ccMNsJ@6X{d)|z@9BsRrR6zHxhb#brC){IBb^y% zel)p#PUV?zPQD!cysz985xXPG?pN+PoY8-6eKB*?mu#4I+Buzl=BrgN(R#0>(mbiv zi%;Hk7jyk!=1mc{)hmy6*?k3HiY2}B&t zJ?%W)&#_QHbAj{VBhk?i)6dS4E;3$oggl-3o9UtKGp8oE=T@G1LbWY*CF_Nlc6W{} z&}}X)|Kh*A_@|R=H)MA2=yp#oRvJ#HOC3AAonJiG=0?DtotL5O_gfBP<@{_&I9iTn z?*vRtvuu*zNKDI{^_;Pjt&)^%*C(OyoK!kSlK&TCK0X$)h`!Y#-eXJ@)_6s8cB)Ej3W5Ite*Dv>(ky7z9ID9;EkZo4s0N^ zGYE;F{Kx97-6p6q#BFdD9ZP;ruCZ-?E(JfKE{7pa1biOK<;Zr{VcYRCQa^&dx4oyY zCrWcF$=&+=<~@rGCPkuT-%-ls-)!GpBMhRUGphM8zU8uh9_#TzmTWeVfBV`$xo&-y zuFzmt-!8|ctv4$390AAIs=s~j;2vkHbJ*$T=Q8^a3`u>{@unZCR1fqjnL6f^95`BM z2yLnXggRIi;)c$98{Ef|y*8MSs;qraz= zg6qF`(|QI62^k$Bxy1bKP&dS*A_{T|2va z4tB-%ndFMEn>}DhbYN4$4m|&3@|Q97UH5(0{TCqx=3Lr8sP5S)-U4|J5XfC%m*hv$6BI)nU~3&Y`=3YWG~VoSrpnTpxfaaprdW3sn4 z`2Uduck&F-;D&31Z-Z(uj80>a)(bx`sYFqO3dJ}|Yas@6q+;Q;b+C8_Bd(&wW7Wkt(Jd{c zsjyv9xz-|-o>r=4aQa$p^X!=Fvn2R))i%MjT(I4e)fb(g9-JvXx+K^&Ej%Y}mXx}h zHgWioO_mh1>`SJZj$W8n0pJ8N5A3so2u?(A2Cq#kQ80A;JQ=*G1=a9~W^y&-ayluW z(F9;$Rei-%e2z^5$_O}YZSzj&BOj5FgWI53DpD@xZBR_9#}NFW3L@mW*!=g!<*x;< zUS;AP*71?~GZNaQNK7#aVPhOcx|)e_BBEEDD79H*0ri|s#Cja*T*Sg66&?<#GEN}; zypDe!;a}=_1aW(aJH6Vfwz~HA$o%@Q9g)(CNNI7&^7)d`*05O;idS8_y!g`MQWe|U zR$Bvji9kfqOrwlkwW_RmRih-;)voto3`bFA#VRvnTN~a~*WPwzGYdM)R6>(?2wzBdQzLx7Rh*HdHlf z>+#E`rp6dHPLzrkZ>wrqU)Rbw)BMwv#R#L4+~``4+Qu6(tGa|RrKYdOxl z?Vo!RZ6kQM|6YxdA3_=tB~d+v7*mS+xiA9qG-BRuZcyc>TSMj>OPrSw^Iiin_pllj z+>0XMC357Wog+kE;ku$l%0ahaPV-g--sLWs z)7)B8j=S62+;KkAaX!*@>m_P6); zAt~@!AU_21)zE)5H@COq2lUkNO84DvsOUu2mez4T(myjkQofT@j$;Lm3S8nJv#y2q z-UR26cET)A9Sq*!PB|2CNGI00a|o+avfex8I@g_&1Jlx(u(xw~2qSdhKpzI_$8^eE zVIUhgh^Plul=C}A?e6W|gW*fMPl|&>ojb4L$IlAKC~VNQqlc=HkMd4@f`83G=MdLr zbre^r2l@_h8Hh1^``d?h?obQ!VgX|YhpsU(z+g%E!To#NhxQKO)LF0d>>V%&SS`k3 zlPD84&PUo+v}E}>AE_CSI2r#KGa51cry#-`i;(l}kqCK(Jq{snQX>$dD~L4X4{{GQ zaf>oF`Veu0QiW38JCzm&AJQ;{mE(Q$8XSB#jPH^0ovvH0`2zR-W)GKhI9+JIKAu8D zJv*;y?-|(N=S(>u3ycoF3*;lQR&U-6HPyY^P&t)+9% z_IkFlwb>XVt!Ks-&I&&3ZO5Bc5ijJp3lP7vvlrJJl@blBL5F%$%|;vzI5yzegyVSZ zn9}q~=k9sAoMyNqz|oQrxY!w6|^E5-A?$>fmyb>$bH~ zM#*I&Qw?MkzCvVbf{gOZl?-K&VMB$;TQ*TdbykVkB=YXvUY{0uW1fqo9P>kHT{w<; zuVopb99x&~>owuvJDbgD^Xp^BfZ2ZP9L_9e&NY-}?0FEGuEs3$5AF;Z;XB*+_sHv( z?%Y_))E7L;)EE3yrp`wRph(4Y_0#T5=pTIBpqlLY)&#CVUmOiZ>d!_)k$QuFiqx~s z2VTd-%m)ok4Q&lojqStDtt}iY+{P6SGeT|M<{FI1mYTYzs+g384Q-p-ap-uJ0Yi4t z=Bo7#HSJeyX{iOiu5?9JX>k^P`UQqh1yPJ8a}oq`xS#W=*6Nm!SJxTo<;ta}p@*D~ib3IL?onU$6D*U~9H%v?LdrEPo zM(qL;_cGoNt-QgHS!08Ybo(bN#ONHO~s!YTs$Gf zM|^Z_>uv5hhw3NMA#QI;LVlikv3E(s);Pji%9#sHR%mjQ995RC>i)@3)$oZ?Q! z@F|atR*@^Ck&2WQtIp9Vl|3>U95}I&jJh-$wSFceR!1XLMyyW7Mq!C68nGUqF0YM> zQBy0^uw)aPKw}wQ8I2z2P(@ddbEpR1_#CQ}yoEExp*rcH%;@SLPRtk?uXe=9xSGYt zxE{pF_>6DTAXLc-76nvT(X}>M$>*w2#+zagb?WjV04Q zKC2Q3f%X+zGVS3W0OF9&@-c8d8RbtrYGg+^W+!$V8HMAOxQSeA5eGR7a+xJVR}3fU zM93ytjK|h4FPI4A$2^t&lqF+bBl|&1o(B1LOU5^y*`9sKKOHjGRg{B_eHyZ{2IR?@ z)Ux>uPaM)Ofb8v|0vWI7Wupze^r@)QzgsfCHO=~wC0_*jQA@^`DOsPgIBFOKwWQ>)}4ofbATw}?LAw!39$iD>g1WR6uPwRhe$rnTZz9lb%{6$N?1oE(v z!7;cEa)l*hENA?eC2xl8wLkE9mXM+DGy#H)b0dbMvld&a{L#vf=Q8P!Tk;0TM=Tld zJEeQ$8~RXwbZ;KWC_l}spDI7?D^`A#pY~o$M)_%5Eg9vfp-+@Uev}{nttF%Uu-86F zFNe(eL>y$;7Dk*WSK<`^PfKov{AEk7gKW1io=t`Ld`cYjHDKNPRZA{~{D>vv+zB4E zFlsw`4wZyUUXCOkmPZ$S#g%a9qNl#NSAi$(b2|hc*&919A{D=L@FKfgFO2F)#8j zA%`L3oEQ0nkTG{mnxy6XAY=Y?K8iyeWV&PWAOB!4-A(cz|FrClUyb+rTg!V4UdwNa zlhG&2>2!>_7}-0YbUMz-nDo3jd1jo;Lhqp4m z7~FC6QT~4Vl~~ZHzfs5IT#@+eb^LM1>1Y0r>-2l@bC38JunidFF;2Q^0m|)XJmxCV zk1;Dalq34rf|HKvSA%|&KJ*GF9?mtvV+={T{Th$)E%=+YUX&~O?$`OCSGfK#b|QefB_(?&3Ky#H^ z@nQ$!#fSZiiF==xKcM{&V|r%%r!=?bgW7*g`<6bb2lR;#eFe;iaa>LRb{+po?L(h% z8R9&b^zUl_r`rFSPDg)9I_7Wjt@5OuP@ecGPqHk~%-x;Y_`V)G^hhBb1 z!aaaQh92?na-2&T|F=5-w?^ubaR5EyLyvIDBA?iY@hI__7sbc86s|~P*N-*s#gTet zJVCGc&?}sjAJH<-Gl~BMUh}1WpVj#v*M6BENAP7_z?c4jFYN_i>IYx!f-m~e?(?Y+ zzHny37Y3(cly*e< zt8IOIv5gAl{kSyf_)0td8pqj68P~7P^bcu0w?y>`hbr`n-OzUhanQFVPLFVFLeJ&4 z9y9)szskl#Pn*`$NdE?19?lD?$EUUbJ?%fMeRDpXQL>ABQR3aD+TW=CE0xdwS!0)r z`DPnsv~Sb-=f318i1JFjM@cCkc=N02m>9mOt|H9)?eYqIY?OKB{hYE{n#IPQ;3e93 zkWU@k>$kP^zkO@-6^;ER3F#osnj>=TRfLw;>_2e%o>d3lx~F_)VnR!yi~`;#L8V#o zM2;&5#HKwp8%nP%+f-lvrt*X~sRdNv8#W7N=J1xD&X%nu%B5%>X3*orWLWcgNU$5I{X|50G9m2h8SL*I+S$#79ek;h0q=De zi!+liEaBA$KUA4xAs6$wq)@!+*ijOU*(%gnq5?mINq3*Ez?>jd;pYsAS7DE~QSyZu zjz+YEH~Od|`S6RL7O?~IjX{-ZW&+m1&r~q74&DSu6@F&8kt)VCAgrDk<9IL{Uc+!O z%#mXq3ts-QoR%i@7*9!)eT+lE%WgI=8fE{R{A22TlX;9iFWJY^?e=N!^Q>oW-?&n#{C2eSCN2hdZAaIvwS&HcbAXJjw` zSk6L|*>oDq_S0)|wwoSg_EAj4rgX16M|l>S{9`%`O=i>4EZa{{+f}!Fo%u)6?Y_A? zy-V;2Le3Ql$nCs4jlTru%r_LXB^WqM5;VBX#tFC=C4R+U1WVXIv+ubGU( zJp?RsU|mQY*7Nv2z2`zYbT@n(cRl1u9!j1EPzt<&e>U!ekTaN~9oL%R0$9I_!C_re z_LXNMoyN&?6kFdTNP9^T>YuUiT@WptJWs-!tmh1_Hx?JDg!}*w<1{XSbw$yq;{zSMIXLVj1A(*xT|Ar07N{h#R9%<|&6dID!ICnL^s}{u^v39jZ236ZvYaFmpFZsla2d$9LN1(Qz-l-<>p+7 zwC6_R0uNbv5X|`x{F{Du+>{BxRQkZN9)55)0q3XOJAqq@!#G{v_HKUooRC<&-e=d&G&)(sZSioiw}J>=K+_0_Ht)d`^0qt zx6p?^JQs5EM&bf^o?`PK&AcCS4vs5u;F*kEKR7Sxc`bk--ONWZ2llJ5{5Nf@$GySL zD%8hI1`8NXK zqaO3oZ%)K0gKzZ3)nh*ApakR8{b$5m^$>`uM;+3V)FYpm<2Z~n<;K+`|6Txm)FYqv zZ8yr`8+~#0D4?#wkvR8rh_mWZa5ZEz?$;xnq#gymNK16xkE=%k``1T37R&-}4G!aU zJ+Oy#jC~8*AWz4^anHFriG2&Yk#+)yai(43?2{?OhkXl)dD$p~Z}i2r^CGq}@5PKW z^`Na*J1=6NnR?VBoTMI$(9Ygo)YNIpjjKl?ZKI9GX=@5%ve^u^Vqm^Sf! z9^*_sW+K9>NAWJmX1vrRoTMJbLrA+GhjFIdxOx=70>A?X1V2eVO72A(+uAszkLQDB zU&+&uGjMRcT#Cck_m2o8kD0GZp2a(R_aM$VqwiaYFdzh19zy#yBXA=QqmT8c%@c5F zxArLn7|(L4i{;V|-VfL~+G}tu$KW_0+qhpt?!ZBPVH^hcc7!e5x<<$qIEYKbVQ}3D z+qml?8(g}DV?G=AC}d+_W(u5L->eikyS~{eaICK>m)8tak9hn3VBz@tHVLkhWf^^w zQ{d)UIO2^y&V^RHR4#=)3kU7tcuR(>MOw4QO-+G2j;aEnvm z{$SyjB*)blyV)O0Q{b{KeZ0<@d~x-t;dn9ayetKdePwW$Sh%?Jt)>8J=6owjfm?&L z4LDej6&5buzUz@@%B`?)@#Wr%G*hmb@0l-N-#wPT%TnmOA8Ca+XdmzCleM2c{;Dlp zynP&h#=hDVIF1)n?gk4NSC3k|Kloe6*cVrBZ2{8EJha)u#p^qcG`1J(%Xu)FzB`a+ z>d|81xDF7+p zJNvPTX&0Hq&dMWJwqg}1#^C($h&4XT3%I^pD|FuB3_qNsSho!G7rCSsx~C^;HYl)( zMcJ$R`|67}WK-_$D0H6rw+$1zD^GTBo-lm4yJ-04>SI4i-w>A6LXb&GzKGKwF)USl z>yvC^9o2`c*7rZ0(_MA)i0BUSe*`>H^{y^8kJfAu=B*p6<}@6x`f3i%mOPy*Po67& zB>Mk!Kw-gU1@yx?H&%nGYj$qS;cCX5EZaDtyQX`}$$aKGod%Ao9Pn^W$#;J7c(I$8 zu1bFKcPxj_&o|Jc<)^YbHZen06!1pksA~1b<4(3rQnn>&M!UtYk-^ER*fsx`kF~9^^Y~YTgFdmnUq4A>T`R$ zxBZ+1uYpHu1VhbvDVyWZS@%8HT~013oO0?_PcutPayO#Y9Lzg+vPsEauI*|sCPoRN z6t{1M5ausQai?`#YG$nSQlB=Ky!Pj=TS*!r)@N5&Zx^=UbZO^}$}qLCH=Cv@sK|uu8Vcs@H7q=P4ISt8sAGlH@n2kb*wk?(6_#K| z)X^UkShQEwka+ZU7^~pF-U#!?`W@F|;Z1R5UU z-;p|}MJ$$|vG(nP;0Hb4B2*K+MX#+5bAxx1H|Rnbn+9XOZc>y@kS~$Wy2y+n4$y3y zorV!`HUmx@(&fBYNh8u1Bb`6fY!}PmQxS*YVq1>mHp82bqd)~?^GDfwXdm_S!k&Y$ zjbqrh6$}}IrP@M`Ekw9j#}ki}Yn*{cQv;1N@QgF?G_}>WU<=JnnxW}+WZ-!kC+8vi zo?cE@$BB54QJ%LD`Yu^xJeD3XZ$-7py-7+$VwRrAsDp3zc{ey(Nt9gY5kj=F7P$^$ zd2#0Y=29G3Hy!8K8Ryr*H-LsaBqtXGcc@eLvRBk1({sUN)HQ&Q4z0+Uxm^dl`i3<7 z$gEtBQ!UKS6_(Y&6M_6WxkBpDF7MZZp#iidkzCLSLtED_CFkY#5A+;V2-aAsp)?5dhg^^xV+{(TGOHi?KV$FB09bU{_vvbBzP z33nk}U)9(u`_|v>Hf?RhR@&IOx@Q;mmyTfjX+Eh@*FipS&LcK>FrrM&adNO;5eGX2czl`y8g}}e%rarRWx{f5d9%UKP1sak9odaEDkSOfmx3708DM^>^>>DbIY+YU& zVboQHg@ueA=hyjn^rYr{La)3*`E|-+8lSzF;aG`doL>ix0LL?lPbv5w!73bUa2&Jd zQv486-+`XPiS#d-U#Al7$#*K&;;6zg&NBnTjlVLU8NPd6i=zey-bWqhnHlGq!M(;f z&rA|VnsJ^PFbOpn<{VI+l&o1(S^@5zJIQgPJ(7hNuDwjo~dKIAxxQ;$)3PZl7;8}?+%_CreX(|hT%H72* zjazCq6>4~^X8*a2tV_it^SWEvlL7>8u}=}SJ!MTRSkn?z@E(QrRYgywvKS?OI$Bcd zYL4^Fp#SP{W}?X-c1fEB&aCRjy5uBO<2*CtJTrURxuEPh{?^!tqXEYT9IxjKW_QVN zoR7ey1TRgDeBlk&;+Ig&0$2Qk1k%lZKm1h{{o$m97z&x_D;b7x#_X3PKgfJ=%BYnv z_4}>S9p{r7=aU)dlM$+%aXuNm&oa&@^Jl;(ll@a%Rm3Sine1nc3?CPb7#VN(W&a5A z@=`B+$~GP==P@#_4}#}25<1E@9-n)}$oMW(@D&Qq?=-W&rNg{b(w;9_GRwc$l3D)k zmdx_rXUQz@I!lKBEbE(@Km7)>*B&Tr0_4XH9&#q+zp-Szp`PXGr*V)y{sYJpAzx|X z@oHFBr6uFroEW|oe1Dn6Z!pCnKfa61{7*~9_m7$XY{_`BKl2Goo&ouOOUA>G%;T1f z?-(=RVac-~@33TiQ(0gZNiI|jPD3z_*3w` z;Dj$*>GL3e(vl;P-)qTvkoQ^ge8^_((Vl$BTt^oNxd1Z1nKbeOd}8(Amb?)1X-i%N z`5Tsum+3M-W64F3dyR};3x=r`^|LZQ4adbaO3w| zOUC+a+7~UE@7H+a6?o)L+iazyyfn12a!5yc;WL(u^1|NvqRI>3V5OtHaH}PwyfDU? za=@eSL#Hgc7V<|e8SC|-t(J_j6T%o%4*6F&PVgs|ybkimEE#PX+-Avmo*JBP$yl=t z*yXQ=e4CYy`}ly}9_5g6&MAlTD=}q!$C59GY}cR9Y|)0w0bdUpbBZVPImFj2nPcr; zmRyBX{z=FfdQJ}51>k2tqUAQo(3O3kma`!TA>XOxV#u7ISRdwJ44L!O5iM6hPDA)w z9O7UfUBCRtKP~SuGVpX)#mP-^vR7Y?H*>9GN3izf(dl_{`Mv(t>9k$kd{sW`)QNeL zb72S0cg~sZlrfj>q>njg7ybE;vx9!6_BT4tTPU}o3e>b66e#r329h88Bp>pN9-Qkt zs2^ig@CJuDR?;z!1dsVZ^um|&(C2SvIjFbjhc7ijUke`u2v-I0i`a_Om_#;fbl#6)rhc%xF#)Zfq(mu{R;r;j<&DZe1wf_&= zx5^Q_p-+71i?G}eYTQS3{KvKb3C;WQw>tgrwf~RW|EcyZ{leP<{o+G^9`zs7xZ^th zg!b>iyUI+zU#CB+{in2#`9b(6EdA21&@Vpp%gD0yOFZ<85B+=_-_!qhTHklI|9zeQ z+{kjIzfg|&C?}tKKA`0fYajEK@Y8%&=l{}3J;EmfJ>o-;@Xw(CL`MIKkN#Ui{r^kn z|AO{0XGuT9m;Qn;?FwJ&2Vd-iFM7~UhKEFWc_7cGUigNuWR8{%Z;6bvKF#YffMpMz zZsHp#Bc6O4wU2s;Y{m=9EwlCQ)qErS@t8@+SJ>&-X#SIZcpSy} zL%N(>v=4pdarh?6z^}LQW;_7D%EqJojg(P-4gDLmUfgF$y*{n|?`i*8?f+c+xPD6g za9tIDsrE5HiF~E<+1@Mca{I9z9A%7yy7SLJ!Z&$i`A58Wdp-UU#zgr?ur$O7{ho1@ zfFzo4@NIjCI(Hae3bm=RMW&%QOCJ4Z$3nvq{Tv8;D{nr)*IwF-TXyf;cFj;{^A$T1 za($TPDWAJJbFFNY8=Q}JCvmgZ28;Y`t!=N?`P@>Pl`y-9BTI5R2i+Z-JHYfB$T^&4 zJNNC~i??l^Wr^5C*x$1EtK*+OgzJj0nKA?~?BGpZ(u0sC#M@MNnXZVp+qKt?+=bf@ zk4ypurk|+7Pe&zCF{X{k?Mj%@JIc+-Jr(xg8RdrLhET#DOjMD4G>zyETg6y*qqp*p zu`_H9(bQ^MvSpPjfU6IorYw>n;1sfmtOv{bfn2V#$NQYkGTtt zhB5V@$vno+lk8*ZIs44>dE$BV9`JsqJ>X5BAcvn>jya;;;PXU6rqNy{O=F`3KP(J( z`y$IIh!+g+!&pxYFaKCh43pV(0#8amy`X0%FMG5{Mme_`4P!bnOlH$pEZa|K+1A?~ z$NZz{xzXQ6j-br=OJKz)TN%9(G8M!vTtQhPvI)d5U!E9WTAnz*WL1**(XwBZB`Ub5 zud4uGQ+W3dUJaN~ny6?=NLF^qiX^I%aaJTKL56i%*+@l_uslI?tAqsYEeWLw>a7xz z6j73(JrrL=SpsGeosyt}DrI?sny8f01Xa-~3F@L!-gt}^{4pXwV}+K&`zh*49%F^~ ztHn#wKV%h0g_qMNsA!GOtnwE0d8epwu%;qwy;wUCSBC#NI!ur22XuGi;JT{8Vcng4 z(4NB@D_!6-_-Etpf{b-i&l!DKD~Z8jEl%&Url4A%tZm!+P9u4-g2;cPuNRVqb6MsZ z3uo;6h{ow87tbT~*HbFS;NBO9YlQj>bS8Q%i;ipCCX8TUC;rvqFwUgK?Pw&#-Q3vvzJ4-RX9e##C047fJ0)MyZZ=l6qwP3V=rp2)@Csw!#Qb_!RzC;4m&3?xz4W z8xZ^?xJ=r2!Uygfz;vG-mqmTI`oMh|7$5d!rvsOu+`v)9n>rzwjWtu*OB<7nosl;Jil5!^o0a$84@RQ*#L0W?T4Gc!}P|L(Ucz&3uofpO8a()MS zK67ZN%Z=xNm@)(D1qK8^8EzHQ{OIGn0=XoFVu$3gpeZYQyC)@hi_x)_(lzS;Kx;KRPz&q80JQ3l`W)8oa|V-6v&j>Nf~Ppo#H z^9RVL9_tWJQjfXpi(@#9Gv%`G2%B=}-UZo5J?5SQE`q~2qc5%=b6*A^!MKX&I>?;` zoTSDF#yU82)@Rd^Vifjm-cNRi8JS=!Od#~CPBZ&b0W+e z0&Y4Ej;l%>N$N50Mx>pVxey0DP$5w`SITn#ybgE+i<;^DdxwsGu>SvZK}ZxW;L z3WRMO`_0sY@yT%aSUA3mkqpOvGy1Yp;GVE>*(q?REZoEtxaTe0Bn!75VY|LBLpJR) zIXP|>ZED8B_G5iaedF}4Vt;htAdcfQ8SYV}b>JXwDvl($OXnbseM#K36u9e=wn5{j zr@%dB;dpOk%3X=D)h?^4BLfG^y#Plt9PKkWwqr6}frYy;1#YQ@o1FqzX5lVMfm>tY zXsfZ0*HF8@wHA)HCc`yaxCJS2Z5D1}3f$Eej@OoC{@*fh9!eSbh2+k@kj z_wWW6XWyCvq#66xShzTSYdHRlK68CzzIc6YmcFVK`q;nyIA~vug^Sns6w-`+^%gGP zKDM)IzYP|S=Ts1fc58l(%gaMXg3oIb9p@wqx9%?d#{4%XXlHOPjJ9x%??XDvGfr@L zkTle@S7-#l4-h#kmq1B*NpZ0t{cs7C4Do`d?{W&AZBA>R?AVVFzk(Y>-4l*Jd1Fg$ z&e0p!vwg*F$mn)AWZZo7jg>cl_gDW53rn-Vc=+heA@@`u4;%nr`(qS|%DCN*E&JJu ze6;)VtHw#Z6~Cmtk#^y4V^8ihO_^{5{R}rF;Bymx-eV-xk?yA4G(X!I06(P;pLXzC z{aWpq4;@45Y%rVH>&EgkXvVfFlxc>;y4(!)E#WyUx1aCwU_o zrt{~_23==%yR-HSuDddpN;vC2=ep}@YtIn&US#uXYb3QhcEd-u zyk{+cubo$WdHOl)?s45_W3N14G6qZXm9l504Bn`rOU2H70As(+)f=JfaV+(AsjXJ< zeDyaL@9j&cW=JX6+xxtNd!MUq&(rkg*p*|^^BDIQpB4yc9UI1?<4Ne49=tAX+H4ra z?Z2_F8S2$B7F|D-z0T7jqAqydwCUJ^{6cKF?(M~nBCt)jsWV$KO>bz;uyKjv5^a*r zjj>H0jK%Q{u*WyRu4~_{w|s7^YFS^`)?Qy%)wZ>zt{pG9)MG>F+Qg}C8@6t)PMoxP zYhznObK{kXQ){C!aj#v z(1qNLo!y-S4*UasgFSotx^_iWL?Ao}%C#XU6iD|{bWA9W%dHa%MH58M2>0&m+Y{kG zCzKIQjK->+Lz`PGoGAz0f;r7w5qOuoU`}%@-dUOI+%~?i_4vNlfe*D0g?yz#vlaTR1->x3|-TGjkOIm?UK9a$i^lniPC?0(M!( z45#*14}Cw7p99N6SHUt`GBxzPdni=&OQ`z8m{KpU7fuw<0DxUMY5N$Hu#?x|`dJ{os3*wXr&L_g&l9HNaij)uzzl2HH%0 zQ^P0RTTsF&mav_BO=oc5>D<1qVKh$o%WTmh?3Syva>MrU=hzdnD|PskdklF$%3Y}? ztIn2oL0mTMUN74NqpkmX_O&j=HE^^2)3+N6V_qg(Q$_=>3?c6!kbFfPYC2$UX5;1!_hsiuKZ~!0T zI?h*kA3Si7!KV=1-P^f`FV8qXg&?FCGVLJZ&thNei(%+e9DEkE49EEX!he1H3-h^M z365eMuh)9F`pwpf8=VAea4~D(FcQBtz3+th>o4ZQ2AS#d9S{>KZ~;$t$^+{m*2b{! ze=t7~3Kj%I!3CjEaA7#a=ZAF2;FP)J`{9l6hc~_--uQla!HkBPWq33>z8~J7!G3t@ zf0P*<|I~hX>8~0YKIZip84r8XUqQS)_JU8@#^Xtsq+>l%9A!Hl*9%FPCwxFq{;kG_ z2*%&@TINqMmj7c*W_jPXWM=t0OQt?vleOdicIkW{OB|GC;6nM|mW+3r(*D(w@orw4 zryqE{gO|oNR&kK=Zd}?4OU59N?pKC%yc3tU+e$|}MfWd5I^HKqTVbV7ggn=h@orlh z>YyC(c!w?gD@&dZ`3IJachbUNvE-SM@3v&rJ$#cT<6W5WeoMxCFySjL8SjvV`5uor zlz$QAJWHMf*|rb1hhDVOb0L4nlIKDGyd_5b@VE4X%k{%-hpE1ma{cKHR6_gLvg2y;zB9Lk5T^cNtYYn(Lf;srnb zCtBuyY&<`{t7Y)@@f1q`s)c9Yp-+^9K01sU@ z3la~TB_4H^c${P6SLl76@cx+W_XJt?cY>VB{E)>0$g_}g^+hqV7uy}#6Fbh^EPx~Km)P7|+FQh(J`O*%^FFx|i{#Gbo zWRx#H%Fko{KB4ntOiI1si{0?0Joti#ezT9(G~I49v@iR*Azk)!Gj{ap{iX(@`#%*C zk9gU)3h||sZ`b8NtoTE?K3#`2?pPGRBn~h8 zYypq`xR&ANqGg>!LjyfK4h(e-I?D!!24pj*!EO^8=<1Ez=EmVJP&$q~UD&d$M_B3d z1+f6+3tYbaBQM%`yG`*KT@qdnx4C_waYyUk zt%-M;8r7ar_K!xNJ094-JCP;%9z41y^oB7pJ38&^9O_KIuT#>UoOWO@0oieh8!vgE z>Hp8~xMa7=C^v#I+vC`+L>0-KX+%A274p&z^ZV)i*aqhwL24{8zn>jg;_|#Wte>00z&}aX89qO|`?P?&)D7G_^Eg|e0jk5o| z{A1}qFY{RX@Be4-T>#@c%6sv1cC`;b;`dX2WG%1lmF?KlN|xosarCwn%eErPj!g_J zS(d$uWl5G~M*%}b2&r!f5J(6Cl9E7Zb9*UGN&=ym6ay*EZGk2{T2r`x+{XonwvgV? z;+B;Bf4@2Not<6nkylD=!ez%E&3rSz`R1F)nRCvZ`MyqN%O=WO=kDS{L0Bt%4&L>f82KMBjnmgRR|B=a8F0Ha16hx3yH))<^4W zsw<w)HBBeuR{Fz~qTB~5m*R)fj@k1rNgsq8V>I|NeZUQZFM$h3-4me*lM_keaw*%=$y}nO_9)TApc^NoA>%Buj2)%HRA@9kH;|dM{ z!@9+J@C$G(9v2WoFWl3}W8LBecMTFGj%ct0e@fuRNnR$7^R`hy2)%G;k(X`UGWaPS z>*kB|3nhU$G!|!n2WcV$qM@(j&%7LP=W@jTJU3jJo~I4|7S04Nd=LNDC;+;G#e?`f^LIKS!Zvh%aC2cdN3G>hpih|GfLUMKb) z)Y?#hP+v!~98T}R92`KpIBAETFM^x%JOJeaLa1@J?q|WxWgYEVa0#T%PNmP?hd9TL z@@;@;xh(R{?L}43B2S!$eDg~H$U(mOhrll;%n%AcJrATE3piJPITmMcM4Hi#g{MJF zJDBIuj)h!zAAlDp^=9<*BDNuib}UK)_j6%}Q21rEV=>n??skY$mzHm=g1NS&+sh4;!+!+JMdc1JY8#t~>Ubu4xZkmDH zj=0&5mq1HFQeX7N#s?*6E_py3-=iEs^E!ZKYHQL zBd-dcIL=GKZARQ^@9G%nFg$T{;k|Gr29DQ?7p~I4%^wF>W#ITdLHMmi+?21;z%3mI z*J9xKeawsBJ_E=5rWdZm!14Qs7cObwA_gvFd{+-3Pv%R}IJncuW1Bf1s|{RczdVn; zu*MY|xXgObA}^+Kycc`4V-2!gesX^!{|tU>m?rJuoDhEaF6f+qMF_Vhf@SVkD(d`^ zb&YdTzXLF%7-JCT^(ano8T#?~3E?cylX!{a2Fc)t{*4j3(z1$pNqI@UBp!)4dhpI) zXvJ4lR3Lv75DJ-#e*DI#1C**aSwf^94;; zjQ-i_yUrCvtY-!q7N7oDU17~9zU528q}>a@NKRWar^7#bdq?>6U8mnw_^r{qp5aW; z?x|T#Q_uOoxo<2|1>BmMNPR2SS4aLb4ML!&~UhpMXU1h!SQ?pilg=^gzsohw+Ze66d z|JXoJZ};H($fgY?Ws#fIYknkN{$^`3y7(9fZ)N%fm|wYc@wbKh}?mMzQqLv}|lGvhTW+>bg}e}SQIe`)Gf z3irnbd6NwMk92+ehqVlbKKP}PL3ey5!|NWg?FuSb4<8%Es)dhCvec>U{R5OVxJ1V4 zmCGz+11sM4OWVFaq-E?H?53`bG7IoFEtWzhmC6XDh0Zz@*`fR4#1o0cVE538-eE0Uj&`f^`@r1bqQE*ZpBtD5rgI^PKe#|uJU6%yy6^MnL9$y|aRbzoMM82X8anT?daY+=b0xaSCRibjuZsg|q0VqL4@ z*97c&RKwT0{v1f0nt8hu@=S{F?U?>)4!>IXcI*E8k%l3|FD9lVB1kK;>=p!dDqBSn zbDhb5JxcSLOS!z>er+PJx1ZPBe}m}lFILw#ugp8(d-=H*_d4xTYWt5OWyHMkYeYnf zt94rt`nEfU%UOeqx;1G80+#2yEN`E9N6zcz=k@Z(SGk79?r`_u$*aHP&SC-`ZWguB>=tc}lCk3|jT;@ms=Oy`6*InTqvF z^L|fWFCXR`63QqGuG~#9=P)#k=LQ;S0lnjxe!RACq@f4wqDf8<%>(ot?spUJ)RrJn z>LG^<89b?Bh&ztY&HV7e?<}j}GxkJxb|0(hAAvserQQ^E_JmeLob){*+23&mp}<$1b^lr;RAN?vjuaBPBN6+h{=k?L^`smit zfW=<;P0&Z@86)MiK041xiNlQ{bOQ+W%3VLR%K~&4coFO%(>+DfwWAz5gK3U?>L~XJdjq zpCL5PCskJUc2h z^v?_4qscI|gTcGNl?OD&q5v{G4s--V_$`CRbD#e{gU0ia-yMJ8v7hR9<#)>aerDiN z-uI^ljq*N`huX?0@00mL8oYcMGsl5mjVbd@gT^zN{XT=no~~_{F9JQq$mjFxa|XQ* z@pl_E_l2tsdL`!LwV-YI253(s3~ki(deEG&kWuAVg2sGRzc+^f2g#5NN4#>#r-Mw6 z)3iGuHO;z|)B53)pxJuuAw^g5b(o*z?p-Zj^j@K>dGv456g5T28 z(>6465d<%ZH(_P-_cO3zwq26>q#hg?QFgTrg+2v^ry%!^O37u@ob>H;Y}$@c#mbiLnT*RP%kuEzBw zN6{@msZo^DlN?1={54GB32A)e2!Xqxj8*u~qSx!LHkVbWyR2-inAG)-S7c8w-I67p zy4!KjjJQXM(oJ3&W7E~pWvM}>ml=06>1ve`&(b(2!=ncL9>ADE`+rK`S{_my?Q3~J zaVdE?$*N?nHk0vuRoU6yd9X*lT5PC|Zz!p-0=4+bhVGH8c9vPesiB=ye6#I2zIncd z_9A<+U1%@&7xCR;CN|(zsn8tvRRYNub$Fgt#qb=cTsi)>=s1G{9e)QxG8Wt&h!ZPL zaClBk!#xeUNzf7IY_H^H;yQA~Jq}zmyg1><_fv@@>O(uS>fB}E{KLTA0WVH?Wa8L=j|vE( z2d?13RF*<}-~zx|XS49T#^8-;kn)-HK=@_i9s@30J2G&g^}sy;1cXrI zY`pJCoVj7j7GX>~FI+qFs|1A53wIy#B3W=>NR?r3_(|-E+&vbjzNKm2%$;6^KRlBr zPV%^CA#p^fzZrju1Z3o8;%-A;GzZ)#fyu(pz7y&0UJ&YKfASjH0FQkab^R6~)br1W zDBX0-m0Wa==QaY&F%hTRXzTtHesfO&z%dagxHcph^38o7^gMXV$G)I!S>&7hkLb>4 zkta_2R?k1FcRuH74)V?a0r-P*I z+u>KhlONm9Yuepg#NG+pO8HnXc@alBGIWGj-h(v3u^z!C5jXi!-UvMT@m?l4?%$iZ z=RnJNgvP<0HE@*6i{E(z$9e?E_M7!y04?p{exnC2O4$TAZ5&(-c~$UiFUQb}UlMtv z@Wf%i-V?`mbiflg177%TM%-w}sz%UZc;YCl7p}#?alU!s_8GW225u$dX1yH-4*U2n zzf2t4EAp`)rQS^3fPurlzb9_Qz~OshKF44eb0k;Y+IVSv0>3?77YVR7XBCfGZ?SHA@v7>V8VXKV?OeRZe&S5> zk&%vp)5(XE#Wkm&pG|Gnb2Azu3>$(glum4e(s3QQrJ=NO2Gf%r(02Wo#%al_CpwbF zBcmgC)!g&FP-95t#Rj%Vv?lF9uK%4?ORSyvj1ms|s)#k9NFJ0sb8qemFV+2@kHZKRY#>WTQtqesARQ0myRUtW_{_ z*T`ti?ccT=O3ux9EM>4j;dhyIWd&Lx|KY#4bt6UB}O;kr%PpIrV!cOKJNk@36n*UwwdkT^Vt9{AqO!qL(WVcXKw+RoBg)}q`+RF`G066>nVHmfoBR?n3}>XAdMF8isv z49(klg-}q2uCJ+n>s-?lD=g5TRg1 zB?YMm%(&8zE@akJ{5Ch0qy7FV$Xpy)q)LI=3XLMjA6$yRHkF&HGi=#x*YlI;gP8wE zhRh2BF{P-yG`I-t1Jp_OucgMa-@gyF&n;%Ef2Naid@i-A*+9Slq=Hk=n^G==UqXU9 z)S+M;v4!wd0cTVB3*-S+Lr7^pBi(;1d|2@fE^ri~oi=@X5^ak6AGD!%9at2ItJbLD zm=EHVl9k=c#!=fFzpw6Jz&0I1-Jqb6J=bY^#OY?XAiyE>-x6E}@En4n)jrQr;N~!> zA83~`;H1pIN3f_V8xHw(M zJMnU-d?TXQJ5iOLSM|=TdN(!aRlVOJs@^GW?k911Qdb)fa?bOex?H(YAX{udFcA7_ zN@G^Im~#e3o=P+*Rh0=ce~O(ql@;(2c$_WG>wD+*z4Q9sd42D^zIR^V8^0FM-@O0r z`5kudr$^zr|BelG`;6XX$m@GspSA7dJgmwSbA2a{!8!+19MxDyRd$Z`5humfvsIWP z{5|d*ZJlFp*JW_zN9o%-WzsZm=j8Rh^ZMSuA-}`Ua~}M*7K2|0e~+FxGMYjw-4!;Ta<2%x?ug2=; zMD5N?dW97f1Yq9EI)3Qjk;Ji~BfPZiZMJ<4uC_n7=VS8s^mQeU_o$;0_A(yku$QSj zTXc@~qptoFD9hO4p24AEt21qPe3^X!mO2#2We2+APQ)q#3+v^r@Alc}>;>RIbn6i9 zyUOmsHGk~0f2=B&3>e|H;E%;H`K1?VmYSp6t@q9T-Ylvrinr zC46MC|HJ^|5Dv~+Q@m|VxC5hB6|5&*Q=(0~n%bK%WFswYt&x(E5*X5^v+PxM^*d`@ z6YZ_F^}DLma#lCBI zkJB4w{DGBLX?LD*tBaq zx+NXAZCfN>Q5;$Az$2$3rIh}6S!B;Ha*rME&BA-_;oiu#5iJ1t7Du*jjl?krKQ5J_ z-1>nmB~kEHWB{T$MJg=&VHRoLUAsdXA=C6)UJWHB;QELo&p4pXmi0roK0$7fVJO8m`g9hil=c zzHQq!F};+18ta3^B_pK`5c&@tCaM=)Cb%ZNOMFI}nO@0Bb1Xp${W*nh+1=V+R+8Wn<+)~+lx$YZ$>&og zN-tVMHQ?#A5~URxbs$03Mbx26d?BqwWk!M2G9&miwsVt=;YzqAiPbiifFY*A?vWTG zy@wbXC|*}uj4K5_^kt%9)@oezRf2xMudZf$Ld~e+2=CA|VH5+KdsIeyb=!`_uHEfT z4f|uT@ziy2y`xxC9O*e6iRnAKQ;;?z6Mg-|J%?{ihhpVT@oKxVslB!_roepCHP}Q} zWBtHGENoM5=Fikx!G(xQFQ+b3?9V67VnU6bZ8XjlZ6<(dp1D>>r$NfU(cOZ|B^jn;$0<*pr zgC_s$44V8(4I1UA{JzkRO{OXD6&lP!$R9H3FzEdT4IPLnE`L@IS{>#m1~ha!rpz$# z&>0ECHjCqskGwDs4JZeCCg^7k8oDFlPa8D$8^ZS*^c>LC$x#mF=YsAu=y{-<40<+b zxBbA+2TdIVrEZA?_9`2S!Uk-(t`>_7r-P zK|@C{6cHLWhM?~iJZI4OwiA5Bps}|UJY>+=%MH5yjq-Tj3b^uu#(rerzZ-a*nFyRT zXz&lz88r9@&}WWAdGIgz2ZILxg3lT>_!o>CH24=(8FUo1+n?Z9hFR*4FX&>>cN%y+ zGy0nhdIRVw1|7kv+OHWjzJdAfFz9m7W_z&b?ZcdR9O}b!sr^-h#=fmRYS1e{Z#8K4 z?SB|F_Vui%4VwGt?)ZX#2`+&Sq_NF?u=s;;YOAJaf#&sCt?BzgL$;~t6NT>pU4Zxi zymH`2*Q5U8kET0>2A-}xgQgCSayp+ngeJW{gGQSjr|~@6r<|tQ7Uh)1BK129&A86_ z?eThs;J1?@=FTpL=)WBd_v!GUWi^pTyS7u}VVK`ySfR^r)8#R4s{A2cu2+Y5=GWwG8hn&I;IBgTld@5Tb}JiD zAJpmh>+qvcF(&`t)A^s%;n#HdZ5r6&D^^h%u`XNZ1KazB-lhcwp> z6{5dX_!*rKKFVg8@H-0IZRFDrr7wo3G!FAa@dYl%bOXOt<10-3Jt_QJ6Mqb^+oX@< z^8>>>HBRQ4^y@ct`dJUEhDatLsQ)_t0=O3T$uBLGHT@ z9y_VN#4_4FoZ#0b6&-?Y74?;ufjHDNG|-71E@m8r0iUDFz!`pz zMStpb&Dw0xmYiI3Lnz>k1`TrMG8|bLIKx8*xr|R11~P-lB9|$Y$-*3R^2lY(H4oFg z+9a)7nJm;++624OD6g+QGRWoP8{39S4TT}VBu7FxyoP}g8*T1|$WHLS635JFxBO&= zKnhQ;|E2V#I$sJ;vgcLt$#gp}e3|e$_O!cJ0H4cJ0sMq-CKFofQGs+DM9O95FnbC` zCa_Q_%VB1xO>lm?+$!-C{D+;?X8Huqpf{M?T$K!+zhg@Il8;8rMk90T3=IL8Evhz1Jt2C?isFfM!-3RFtn7$iZX14hA6NTAc<)lK z9Dhf2oI!yT_w7c=JsQDbUxCN7T*r4bx=dStUqsr&%+OBr<35MU&prV9kbn?Mz1L}+ z&a%&>@>G)Gu+O9TsYFDdg`cJg2C~0&lMzSM_gDB+2QSV8=bsBeyMPdS;f~~p!~RBA z+kra_-iQ{k4d!@Ay_vXo0f#*e*LmOqn}PU&i%PX4gI|#CJ(mOSWe?mnNEaCp4SgGb zIJd+}UIs240-!}e2)%GOA}?EeGx$wm|9$7;{HFX6n8(NBeCv=VG9Wq?`)tZ)oIrKn z7~CfThzJOw7w)UbtGYODn%@Jr6zPV1(`vDoefL;?%D$a}o56WslmqTxfr(xmH*-EP zt8&0y4NR7L?H7?gJ5_!r*8{FETj5LLd7abic`D1zOspfh*bb!4y=?Q(r~6O%EnuDP z@Zxlz+1U3qtsyVAO&%0 z$KnS-|I$Udb0pJ7W8rx5rMJC;CLS}+QDM(^}7*qk9Mq?g*;p%t`mM4}Y}f&6%XH2HBJP#)q!@WL+> z_b~DVM?PM-#|<3o@xq-kaQt2-xb29W@;wiF5j^GNJ=+U+9(j!#H{BaoUV^+1jk{tT z+&#!kYTS%*a2E{ROasT~DWe^mIzY4E*bdG&X-6iGbqa3IIJf}=$7eDxe!PZ+AFlzy ztwh|EZ`8mQj)OaG;FgSoWB*CLOUJ=IVBqi#$dxZ+9&CCTc`^^K90&I_@*3gU&upVd zd-+=6%D39UWz<{2HpJk`kD(X8666s}9G?vZm&vaZdBRWDahA&%kBSbY2|x1o;+I6; z06go(H%J$k$?q)kgx@9umnq*lY-Vcn2QrKiJckt1ZmZ%F6PR2wlh2+v=MeY@dh)&bI1zBVp^qYGror zf-$SjYH6JL)U2i}k~NJplGBn_&ArbTbWA<{m&?Did<%r}yK z$5u6_T}G!sPwG`TKR&K?b*-~}r)JE#0=J_Obm~L?a6vc_4u(VFaCl01YIs^`dYCIR zKDZkkm@*k2OAQ`dYv#V=4j6dcH+8P{>^Ez9yU9F1E~4i$im%Ct;;3^K6@;Cwpi5Wp z0KYeKKzMuiKN3(EuXB|=pk)YLY8mtxs8PM{qqbdn1+IMcBg>9ta?v`&uF#KOX4$yD zTG#!aZC6pYuH;eOX(F1+hxJ8hG_WIG>x*7G#d?cR#+BS%<9&^)ZQjQAq>!pRpq@5i zscj2v_t8k3oo0aT)TDTQ6-Mv^EBvQm%Z_&Y7J&WR7Y70=oasz7IyMrbNkT{$?aqOTOPb4(8yQRHpC)8#W>YGI>G10cOy16+~-3I->_EfTi zZLZ&2-yDJQ0SV28Vsor5?_96r%E)N`b-`%uJ5 z@CAmFIP7B;_(E=uPH~js3kp&hRF21!OmBbRkqG~QNM)u{PtY`k)zVgJ%|2;Im$vLd z4UYUKyxEGq|buQt( z(78Jm%|7YB)1H0GXVI)uXV-Ag$!=wLe)es)JsYn-c8D3rI!CAg4#jTVxM1;2~rz09P;y`4vfkoYynIMdK@XV+1lL~?LM3_34^jyW~ZT|6~A*a@TgZc^Un zT0>LA?!@lB4KzWu1|}}*TU!%5Yxb!m8l$S&y)RMS+_ZgHq7s%OD%G)Sob|TX(Uw4O z=b-xG<=8-ffA4x4=UETCJH^WC3zKe&#bQh?URPGUvAlR~Oy#bNl)c%4JsE>ReH~F}PJ;M8h}4Wk!cUQ)=Od_JflAFrO#j(PaOWcEm8SJS z(3?QJw*NryaIF3zb|aBu^AB_nI34ae-0v6xM8cg8E7WQ~#OVb^9?c9x@XreTFaq%yBn)vX05Jy zKi?A9Dx#@{muxi;%ra^R;CCH-fVP;J?)V# zmL12c1q)X@chjH`YAsWA{oZ!csJUFxWCI$NZ&EZlfkyom4h?3YAw#92ckdvH=4?^q zE=3EGLdPW#e-m<`ISRrXG)cy@>7Ebe##-Cwaqu!dT|^ogC60O5`zwb=C^<4C=9B3)u3^1 zDEuRX#-Y9NHw_wRoWq|pXq*`gKV;C5Jx2hLJ@<;{!Q>74EjpY zpE77X(*%x(n{F_0ezJfn9 zXw+BmL4!tp1+4~+?^y+$Z_1(l*rW3QwLwQfKVZ;!Zu8${(2&K?Z(_=!Jm!k;tU+UJ zeD@pl2GC}ER)C&wlFy|bH`mwiW{e?jnA^zVCntR2K z2F?A$YJ+BUa|TVG%7H%}c`BFPW*ROL2nD|tHq#JJc}deVK$8RWl+!lVAj7pRRDqvu zrVh_m%o*aUwC$)mB$3A4SLv9;%JxzvE=Q&VA7%)8nx;bxgWC2Mt|w*tY5*+E^jq+W zf;0{XDqCO%UhxB7g~L#pAnv`I{(ufY1e1#+mx= zAN-Z=HmT<*UQx)WU)#VsrE%{`;gtF~T0(xw;FZLA?Gyk3X9fpi9@^U57ssI9^2B~{d(E&QZIot1k#}F zah3NZPnOjVU4QfS_~M(*xR!c@1U^TrF%vQZW4^xTXj{a514a>VD?{l9mMl%;r~sm! z!=2U!FRNdkcD}Nk@RF}A2=#|x#_$VMu2qw)hP%`-D1$6HjDr^5HH+eYuOow81||!G zNm-OJC77gD8JC4Q_!G1&BQ~qd$v_s~vti6&m@L#3pI}!S<@Hrd2Dx0e=@T>RZrQN> z1dOm50!(rwgu`nX2(f_W9>1O7D7fV(GXzq2a{Vu*Cv_c2;Ys$qDn6NRHz$0K^PNR5 z@tQy3+t!3`5@>*QGn$->{VKC(QDg!ptHff~WaqP6elp9uTX-@TgA|_J#UQ08buma` z86~a(xeSwD2vu=&$XI>?W0td-G2WMzf}49Y5aUtqJt&3F)n?9{W^?sjp7}Q@9cPAQm!0--8}@v3!LOk+gW`7 zQ@Y$bTX4QkB)EG3h~s@&@)T6_^X<#PJ%D2FUPmg=*Q(=6brhIKL5JbRiG19*G3vEH z4Z2Q1MqVcFCFHed!R;{0AnGHpksNSe1m=#58 z$;-q&4M4Mi5PIMO1;`s6i}P(a${-qGz4LOwVSLr^W(ic+>#Ib9$be|zdF;8}Eg&P0 zds_x>$^p>WFLa&cW#ZljMASv4cx2+R|6r{gi}MALHanF*)wC;=`@du{C7neAAx545ynHR2xaSkQ~S2jIndv|}O5 zmkS7?#%0czg_X$r`B+@0ji^QIfx*7G>oh;R1}VmPEaLSx9iH=wW9re4MM>n1!i$r3 zWXyv_=K;uK)5+#|8ucy?gO>i|_32UX;-%<{)5sSm^=8b2!bbtfq5ldo4|1_hwSs+| zr5)A}k#4l3h;3lo*ng|wJ=#$eMcxR!IFEJ|JqQ53IE~Ak2P-)b$Wxr~!#=Ai-%5@z z` z_rg7nJdO$Z@wEBXZpgPG2AXmacLlr`uEfC2FmSx4On#J2_{|vy zS7qS%jZNy!39)QPv4P9v$2vtmd~} zJf^Zg#0f6LrqkAa05l2+p~7KX=UDeKD0yk4PNiiP@sjeAcu83#;@EC-{^Bb|MMXs< zQo04d1`?sm#irA?3w#*VcaNC$ChNwhW;GPhT2st=K9qcE_AT7MgSsi?+U_N|wS{Gp;*=ln|<^A}BjV(y{`YwrG@9kHL8Rp+a-JKpu;nH5&y z|625X&FQngj#&-9AOAX`M+tn)2bT2GWFr=72gLm}jaUo?cb54`-P_iz01f7ZP7 z+rDH?&0S}~W&6PSmW@`&)bmwyh`JE5#5Pnerwu1+6G}QcyHO~e`$n<~wX^$J4Q53b z$8Q3boWf!aiYu46hHA%>6Y0tD;!~73u3!`3;aaCMvEY$ufZ&pJ^crpYFL%FiQd**neQVL|+qV6cZNDXi#kI2+dx;730D9#%EuccXy@F(; z)x^xV_a7eYrXKa}x&(qBT<$ihM|8JM+rDqxBcViBw)QBb*`BwgM)5YgWvOls8oGag zL*;wU+TW8oX5YEo?TfH)$Ij*N*!JCa03*jC&;uvaSru^`D$`j_Mq>zxULZGN{0b!R z)vG|KYkbO&3K+{QR6Z@61s%;`{%~A+85~4c=gHj*UDcvZj&1dCgq1MAKRh?E)jvWb zVE(Bz2^L%pzYxAK;Ge%h83!v2*#3F273S}sJAXcMmIeazVJ|F*cwnmk6#n}CAzBl& zgY#jtQOUGVwPS)Z1^oX6(`8^ZH@J*kgKGlzyg;C&O!WddCj*gu*M3v)SN6fNY5Y)jpI8l|Q{}ft&ls8iN zx-oAo4(G~nh|8&Ec}6WvkGOJ>qT?NHhQo+gbHw18xAc~`^p>~u#_wxy2up8EWzWdw zJLFxdr!G)*DKl>00rl>*M-TTeP!le*rLEUBE4OPDS!<)|v_y|1q z0rIxs^0wgew&3!%;PSTM^0wf9>ukaC`xN)CSHj~t-aez>W@#7IJXCcFO%TbedfpZs zH1JkMBU-&s#y!etbd!a3Kz zcl-4YoHE>yYCk$gongdwZ^}ZVWv@bdYU4Cw#ML)K*2i{3*U`0uQI4cL(&vPn>%D|+ zmpO6h;E}|!p(ARGcAITq^CR2-b9=sOU033GkNUi7FLSo;)n0ydj`gFi{u3~%&Di0d z!J%QR)7=E-%Dc=y0PB>_rtg8SxZeFOLYDRN)_42tbM^x8AHuv>bE2HV0oKh zvDnFMc7E#fHo^AhZGyEW_T_DYuBkKdNLonfS887p#5&7<;KC(fY z50)U^hdw?a>gVii_P}`7jE=CY?YteZydAK-9k9F|u)H0x-yl0+Q+}vcaQt!XfKB;< z&?=49c$~Knw;1$H(0nFP4*58* z5{_t+jl(`d7&18yG!DjuernJ-Zy$2)NFg7mK|{|N`8ZP@a@&vm`JmrxNb3@An1&$DqN#z#Tt_f5AJAeDE*W zZP4If0GS;JJox*6V$k64{{w@@w-WzRgN}n?@KquBD!XJK)AYx6_(^TI>`OW{%B%LEyb4i% z0qe!QS2Xyj5PXy!udnO+zdKeA)eqpKLhxBgJ`Zd9Q5`;}?PK9ORd%v4r&NC+RPrNK z^&ymg6?q#VPw7ziuRZF}Hrma6 z`!hNp{8yU%Fuq$zqn*kw8S>X;NzkEkS#hWU!)*Cewdf#Fl9T!J-w}{)T#BJ4elozX!Z9Tj7D3#kDurs z8jeQsYv;W^2UCVLvKb7Mo}qD+T)HNU#V>iKpP+pf*EovV+Y_|WB9>6h-X{z1?su(< zNM{%3ehP=Q#6GM7kIya=GeL6Em6P%ubc)%5f&6g!COs@F0UfNdvbdk7UycBV>s=|;|#T>4R8tx|lFGc}|5L}#iLm)@rExpcQFyxH|EKY_l_ z*{+tmRFAQkRhGs6lzTh5thTnwvKY3SunjKS=JGPZRhhbdOE;*cBA&(6mXqPd>2)*a zRhGphnVM6tqm{3+EVj*Zu>Un?$~a|8%d9t;Ww2bH=I~^fI%H!-hcgxIs`2Vm+1cHB zut&W~Z>WuLD5WJvyIw$90`E4;ai74neZuz}IA0_Fn7CHZ4b0I_a9co|xCcNhbMbjCp^|5LE?yB zLHXQ$M1IsF(v@Z0R5|b#+`Ll&kJEoH?s4GS$yqy*kNsfCH=nZ1gQtAh>-CavKCa1JY_cu* z0eIvf-$L|>on>B)u>n>Ie!qklC++A!g3*q}tW(-?72+QKyqN3%J@Dc*zs!DK%(Wng zb`)aVtcWl}DE#z%k?|;8kGw4N&*q#k+ELg78hxYWVHuBh6m}qQ1YVrftJfj7-W=Pp zgzeZW%n%Ac&R;{mCG0=xXRaY0@+~<47N?OfPWWZWxAY$Y$f2K?EyCKnRG1+Yei{87 zB`@>7FSx%zy3vkkJ80==-oriG0ZXVnGoEt7FQXmNmjJmV1rzyXU6b)xH4IF)cHDz> zL%vm{!|<%92wvp79dXFu@_PW^mmWo$IFawINDvUB>$ZYL6(alKg&*6Wgr5Sh-NsXh zNWJ96dP(01Z{pZimZy9ncrV<229A8ZaE}@|*5ieH(!fnMaN7|#<$D%1=8TeW+Bmo$ zAdh{*cJLaIdNcUp2ezI2C2{z^;)&zf$ydZnUH170@ys zoFBq316L~PI6fbH;i3j^$vC+629CVF_;Ea> z9sC|DxQuZt-HJS!2Um`RYe$}p8`~)SGTZwg@}%C?1}?MSN0BG>#td90zb_j6WE~>^ zOn%QA{N(=$WAg@Id)xF24-crTV4V#Uci z#5rr=%Fkf>{8T^)1(#t%ZQEy%*O-aJ&e*Z;WBr4-=4wMN9*>tt=yI{4w)$*<6|y(@ z%)7;^cxu)Y$tOBXr@geo=TF+ny25Eomekz)tw2LKIi=Wo;olF|Jac zJVM^K$mX$f?Y6#-cFkhoIad41X>Klq{~GL?WwCX2iR)$OXR!tK|Jn9Nnu1bFUAV*z z%Vw%Xa-hGzSDAlG8Ya!gn1b3rFg&Q9O5W{^6BZY>_84~CE^+&KyGhw6+cxU6Yf{F^ zoQB=z$mTq4I}L-uE2hQlnM`|&{Xc^&XfVy4!5Y}SdGlb@?Cs?4 z_fNs!0Oj)s7dWQKhFIwp6zEn!d_J)c#@SLh#!glksZ$-}SbY2_H0)%t033cpls3M& z5y%&vtr_OG_>vQKO7V_f;Y6=iNV^4r>0)E*UyAJIPMHXzMMnJ-vC~zCf|$l_?RB+@ zLe4CwC``J2lhnYP|uOR z?n99tD1DMU0WIyVbxjQof{`q3#t~$sTw!%WZ-3vB^c1Y4I-#a%d!l|~QfL3turG)^C>~S0|TmQV*%cs8$wOMYE5$?5y9}V$D8ouhAQiIoOzSgys#Ny1xkM`3kWD zJ_4U%H^_YfymUJ>V|1hOR-dv-+^+h)5n^U}LrohCwP}WD9`{Tk+m?EV)s}VC+Zb#M ziOw^hl<0u9qIO=-Ij`rO*K^M6Ip_79e}nX#1NbKAI7iPp&?7WLtm|nsw$RdO+&Tkq z5{|D~T?4*yp3 z!@N@UT+ku(VpaPQD!CD=@~BVrW0l@AXr-Sla`eHZF6+g-7yVG_Z>8V*p0RSTA|7(9 z5&a#d*SrCb#2Y$?hX;EOo*3>PvNjA24-R)8M3|J=V0W)p+7RssYeOoH>H;RsGyEp4 z&d!6~t;ZDGL)`~Y97#CZ8{Cv^-I+KtI3Q|t6W8k4ka{+ziqO%0jwa`(@*Vptx{|Gf zTN0g_dYP#bR70wFG&whKuH7`U@0Nkq9bJivEG69MaTM{^3ryFe%Uvzg-2+W2Y4Xj< zP|{R;o4F}wiVmLn7D4SAZ?VUWgTX@HoyZ}V-ql^8v`Aiq1X5mCpJes93{^(;6P4bS zIL9uV)N~TLCf2ERbCp8JmBjSKPJ;S{_$ z&Ch-d5`;IRq5JVCi+p2nc;3x6Zkf370uO$>k#5u*z8>#p+1jxt9XIW-K^MV`6CRm3 zJa=c)?GRlSDL#D(Vp;gvOOZZXPkx$P9 z!Ob}XK(>C?{o>+&4qUr1Ln!=yg18~y+(yvT;VEAP-b22*BmF!d@&&T>OAP4&htk0FnJKz`H4!QF#AjvH~D zhf**5$&hdPdC-)fINnFRa4#9Snd9It7`RymZYAPIy_}kEz1RnG>&?VbHj$5Om&lii zV_kw`g@p9UjAmQ?&<@zJKLJtoWF@S zoJk$fDXs0h+xR<02ijU|4`8dpsl@48iSrr`a~zoPJ12E-{{a>^)9`0+VM;)wcqFL+5nM&7i6G=Bb3BQK*~ z|DS?>XC^M$*_-G(rf)2`XOxyz#7oLc;#k%rCF&mH{4Fghsi>%kM37P9q~vmMx$Z#P zz2&gg)fmR9i!&sv9z4zvK{gdB!d#LTZ)|GRvu6k+r(CCX_nLA^p^^@HN{tGo#E0^B1ZpOF&v*)V^ z=N_y%_~n~Nn|vMiGqapt`ujI+_|(l+2ce&KbJdGy<|x^igDWvoyRmlNx=3yRv4Nhf zH^K?&rO6;)MOBVL!sN2R>$5WmhdGM{sTfkb<44PQciU$>IOokK?x2m24* z$^`p>b$~w?$-L+G_o$?0)_z0XPuKMHWo?(bk6-tB+a6}Spk9_Z+1cwhO68_E>ST$C z4zSZ2EjWTRmsNIN$<}pWvF*1Rvd3NFRknxl$&;mC&A9Kfwt*{&b=`fo{X2G$vz;@` zZGp-pfbPl5Dp!P6UiUd0KW?hzQggYlf4JxHt*&?qgAN|e@zf zfP3t+%FPwgx(>g*`n!hQL$~w{cR2?^nXNF+)!B1MPXngoAzsPKXY}+_r!)cQuB`;> zQ?!nbBM%Rx;{nGjeswe69H7*#mMnEr!3vc5E1*-TG#ksHI|*&U5R@0GMz~TdF$RM3 z0{#WmvJ5i~3Xo853@n5W1jQi4v1?2KD9_S4-nx#b?AJoGdlLPWScktF{n?cq4cd*qny2t5>OlAu|JyEDb4GY z=5W8WS)m;1E*uR#I>_w;H)*)%SodJx30g-Y z=$P7DaBMy)37CRSG)Vylzo`4!wY7HWEKl zrmH~NQ%HVDCF3`(bUjGE7s*e$Xtooqkd7S&j3RcD)f?lQF*^oo2Ow=w6&~F1rnzc& zTcWI;o+lVYf=dKGqtYwzFoRN-DGLwKcofC)viDj=#9O~}s?ZmGt9qb>8(VWKiVO@JFqgbW9#cN|K zcU`3H&6d61WKcPVLq&N8ht0(sD^nce;Bb|*EsFZh;s;fQ5jQVlu#V}>QxT(C#qRgS zU&xcF`kHnpI^US8==+Z&#h9Z=`2tcnH{rg{u~Ksq#P>m@W+W1RiUd6$LH!C;YBpkK z%tnGc7eTKyXCmlL<~#(w!%T#<*ol_+vn^B;6HTh z&~Q)JQD+Mj7Ct}Wvwy5AmJIGpJ7qK3Ti5)R&;F-0aR14}Uf`|&?z4a9RC%&XS9f42 zY0W-yU|_K4$YB480mRt{a(%DPetnw*!2#31t8GV{b~Uv(Vf$~SrL7g0X$d~8(pmPZ zy84~9t%>&5+WKA9X*sK#+IJ@4b-Ggk3&Wb7)!UnD6F2T|tpmP3zNtE1U%iRfYhq7Z zeWHF}ZS$VCroHuv>e|}+wzi06zt`Ti7bV)-6SeKF&ECIeUk|a0i!J+oF21$Cd3SZ) zxFyP2;{9%k+C8nU^}E`~EmFxM_c%qG+Ui>)vDnG}-p*lsQ&lU|+G4Z|?X5>I0r>%q ztQ`+oN#ut#vL%gUWyEDzt{8q;!**S?L+VOY^B!;tR5!I=tOx5#YT3AtI0f4Fw6H1Dq6A&rn}dM&Spk`i!z#F1wl&}Pg2BtiRBmw2_b zk}WMo10Qv;IW^H`=}3&4K9#Cz{AM~ODlI%4DA~9O#QLOHT5jrlGkURPq@m#&J$$$p zZtB~%Z4=W=*{88SNL(^f+5n;d&|#u_!DWJL!n?$0q?zeu#;xTETP;ZAO~3{$oHeDS9#`mH}eu)_C$Y9p<8yhwwIM8_^=XN>#;_Zlx$YZ z$>&ogN-tVMHQ?#A5;%F5UI!9n*+3nt#23;^RAv-NEi-~YW8;3%)7KTlm2gWEt6MCA zhmOJSkr*PqhZq?sURPR-D+O)-GSPTu8y9_*px^JStJ$7VGpaZuJ9aU!xkqKRSGVm* z?AqPl)UZFMo|)G>AL5E5J%=MPz0K$pH1_h+p;&oSyxMMTYOigKDR9rBG&YgdSU>oD zG<0+Wth27TR>$$0P;6A;Yy`R-Z`*z?EA2zsaI@paj z7Cun;p5x<;@9WOj`?QA(-*c4MalPsptTX$w0G`X-4}O573RmZl9{@971(5GP!y(%( z%Gxq*)%aHxxV8Y8f1RDTSCh9_GuO7~mrwWOb7Fk1U5=AQWpgcuE@uQ=3>$#BS{Zfm zhp(I7w16k2VJS8}*-6}-O5Cn-m8m4Bcm%owThbGmbag6e`vN9hlS*(3;%ZM%!V-{5 z*bdczZ7DJ(Y86hOT$i3fVVPW&N_NC$Vs$FfU;>4Vn)D3C1j)6jWX%MLb<5CcrL&w~ zsdor`w@sz)o4J4HjcDa|CrQXgGLv#mDT0DsZ;+^BheJZ=ixGc#>-2IA&UF~Eov8$p zyXGUm3Ei`s5$KpKzzO%J1AEMI8B3GZHzL~?xb1Po`oo8S$h{@>9}!` zRf?r&=2>oo^9h{Y;VxO$JGHIE0ha=@3jm zSdQwQTDw#f6&+%P)pRprS%(8EIKp5l8lMbkSuLwaM^Wl#Cu;o$*{ccv0|r1jNBZuXwWl3yXU2Wp96Zek&lTM0uRR_e=bDi8F1x55Q%cY|IC`U3_{m5*Bu8W&%%!=RyK6x?pm&?ybN`Xi_x=fs1k({Z4e zVhCR`=w+b)!JwCe{!4>~l2+ie1|0$YF@s(K`dtQ%c^5cp&?`Z=8FUmh_o9@8JgY!M zMwdq47W~Sf*MR;zgN}iI)}V_)|Gq)51$~!6uLFI|px1-$*0c?M8O+xLU>pbfI?S@4 z8T2)v|Hz=R=k6acXzZ!^OAH!)??~ znvOX3i^Al`{8^y=z<*TJ4WM~FzgN>i&;ii5X*vuV*K?Y^B#??1L$QB^F;n)A8gVPb z`oX9|9d)oVk|$^Kj5cA@Kg4S{+p&TZYmw? zQ8D>Fq|4)aQ|%XiUmVL<^)vXY5PX%Lq~Fmr`a`9oKh~13(LOaED5pY{Q+AWyr|A#s z@P7PG8_Rt{*DL*J@KNIkJ}LwsWv>Z*6b(Kq1fTWf^Qh*7xv$0zq3U0Rs{II+ya<(C z2vvF1ccqqpkq!%WsO&)@U)h^Nh)+bSoyv}u$O-uxm=5`BbiSH*NUziBRSZ9-<$Fqp z&pDwzs>2WK@H09e{3}g<$1JO!^l?1fGDN?t@%xYtpV6V_YrUZ9vrcGVp~Iy*yjq7% zPH2u_E%`(K>logt^D!?~eUGT{a@oCtp)6&^$v9(A<5@i$WZUBsn#PjXa2OdnvX@)% ziCrh^x;C}%-+p~{Wnv3c4AU*Nq$Mx$C~?DXZu2MV`s+)FnzkP~vZ*t1B(sFM4S*uK z{CvB)lYk=LHmS6-pSDDmW=iW&=WwUB!Br;g96XjddAK`~?Cw0&J?I$C(#Oc+X%q3vIdL+G}QL}?4Xx_=N+9d-?4!MkE zh7hkqJ7n@vf?Q^wq1^de`atZ4O|k=2@z>CLReqvPH-~)OYa%uAF3Ytl?U>jIij^>T z!*GJLSjtaw1Xc0ZFoLSQw0we-H)jiHdJlW7MJ;zF*_6dLn44L?X`GT}mE&cWj+1#= zt*dP+A1ev1tCeT5Gp5pwTa{^zt*k6Np9xuSgJyhmQ??42QJ$>^W|U7dmKs$0rYr-jGRm{`x5_BX(&0`*PT2yfc5R?WqwS42ywFyCvOL-nt&8r6)fHl#Gw*Vp6kjZqwBXxm#6eFsiN)$XWs$ju-do1?qi zTB>X7qxCh_mC@Gv8!Dq|HYn7iqSvzv)_mhB(s*+5e3mhvGSx#9EL%9X?PP(os_}$; zc@5j4LTePB@9KC*P>%Znc%N|{-q-1TVf-<1hd@W*#qs$b&i;4)ffs&vAU+FToW@zb zNHB5tfo>5HLS3)@Vg~LXK?`rfrQYvn;C=#{GK&-3Um}6^iu*Ytx-OL@^?n7EiMs$2 zdljzJc{bj46%P9xboPJokBT~fBz{wRy3IYU=8NNe*8@|R1MYn};=Yv|&X0Y_Tq*Lm;@;N6qHm^$$+!XBh=3;Ab%I^V} zZQL^Iox*w>;l+8>J2ei#0RbWO!f~GFf@8hrdZ78)*kf{eBRUOx4^{+ToEPp*0L&8* zLN6TWOD?$EbHs6;=ECm}JaC^tx|S6&YucaUTEhN`>m+XtQY4P(%+ zM03Eg&J{V}{t%d=9B|mn#P18HoXDOjAFsF7DVW>F4BRaCaTc82kM!B8^0T%g&ihdn zJg>b1?e+TN14%avYjZ9(A{TINDOW|DKe`>Z9yj5);3Z_YXTeb(L%xN)CfSxMc;fpd5V*IGupBA6##N*$FdT9e`A})3BT_n!H_SC@pa{6T^{m94$SjK`|`@V)F&q=^%L z??Hlq5M5UZ95ILB@eN1um$crP5=yAQq!p7YQPcMf^vSp`2I-UAn3 zguF)hDtJCKdf_^dSEcy!btC;FgSod)mNp z{qW*<#=tEb2lt$T<9%58twh{x@AC$Z_b)HpSp&y4*$a2hz{SSFoi}jBpv%^RH0 z4M|ds1tV7I%$Mdxd=WqBd9=i5Sr>kIX3@((dsiU1~q}R%pk(^Y>c8nh!ib^NB4luAlkRg)g6pJ~{mt zufF=LFHY|$yzs3v(eq!N`O?dGpPuqk{|p~3`&}PS&Z+sp*(uGT3++`a6t{;px0zzI zk21gd>Z`Ai&yMN3hFL`AQU^<07R&zloD-_}-!j#9^!Z>9*V*qWgZUoXQhQyk;i3{a zA9kmPa0_(z^Rj62qHm)Te*p8@hH(i^13V5{C!7mHHo( zIQI_uXydc7v+oeB7cwyk{~cco45+s4HPg?b;fs82w+^*a|0-3$#tLgkeb8pe%!sP4 zB2T#I)Xa}SBQo6zl0MbUK2**zf#i?dtNo$HtNr1{g{un-;aB^omaayC|Al6BUMW(R z;NKc#EGcBLbjj+~v9H$`sAfQER0xZ(~ptFV`Yq`W(KPHOt9q6r)Z$ z$8uH#%i*|lAgG2aZ&+F^W8Vd1m(Vk^6#&MM4 z+q?5u2sBMBl1NUo`F7gau`iAjHy^~r4l%WzG5l96JDk4Zh>W?5I5hOrCRH%qls-pY=2_%q!@`LA@nRjn)bLXtx7$mrn z=4PIqcix$KXLoOQcJ`TWR_S%b4|Vnqbi4Qr_6?{1crQL9!-t@$1U|fS@j0ii&79xU z#YRl)WOLIP z10Tf{(4$*71CuDo421P{Ql57PlQsEdx>=K28#d|-)^&oRvL~{5mxdqDknFMu}b1s&1ublU9P_`k_L4`j@k>a$pR`_!~YL4y-e-24r z=Ag!@@aI(cb1M8f!nX6j$Debzae-N;Y>x|^=ZeP#p2*^l3*@T}JSjQ*9cRz209=B% zJTAdo^X3x#a<~ka;1A}*CHRN=a0xyi3CtzvvA;X#G156J#z9;=j+(dzf$QyD_;nl$ zZSLvsJU9q~KhB$OIo93THN@%E#$(6(`^kKUY1gffb@mL7boCB#miIvgdInFpZ6W6& z1&$nZNf@Z&o&8-dW@eid80hYE!En~B09Zy{ke6-O;P{~15prVqvjJOS-w~3tq0}7; zcb^y}M#*goQw=Z*->EP)0i*nOjiC$}b=a-&kw*y8oDK#16&@cqGr)Xb&o}8CVUFT= zNs3dIbHE^_m65N0^%n}gTzrljk;Oa1)sQ!*wsVS1X_DC#UbD*fPoMp;YroYh2H_d?L>AAIg?4X2l%IBueh9$mXhOWJ`54 z(pcm1VCkKAo-KWj6yAG68&8<0v&pXHxNd3D3KO!Sc)6>3 zIV(0Rl)KpGQqN5fITaqT3J+L?2TW0%Rd~SgTDHOi7Oo@D*rafVX$G>i@P;vMio{}J ztnJLG2o~sMH9=Xpj-+eT8hmEyUVs@58a_>avYY^XA+<9^UbfjipeDl>I{QMaFv5N6 zerHqd3ar69v)4rM7oi;g4SG{kr%P<6z9fXTM)+=(ds}DYGx=0}60xbwNIa1MK_&j) zF=EJ!%ueausJTTf5+{;VNiyey{ydvaO-+D1J3X42%yDnoR2*JZ8045 z@2x$Ky|xE3IE6_L&)lKaLpGh@jmp`Iy7a$DSV zaw?yD7zT{B#oC&%W|R$`W2qdPicPAaFp<=Ieiv7^wY?>_t+i#>4oC#3vDzDaySF)b zA;tnyPo@${*Tv4?$8*V<+%WbYn91Z?T8BHc*)FhQ4EJU*dKw-~rnAGk`dF3fwfSCc z|Ero>ykWVNF~7}zo11<6l?U6#ybF7mgH^Ztc4rEK2-SIpkw z>aJObFx090DKN*Rbi_>OSdC87yEOFD4_lb|6BcIvQx<0WuPw~m#Ng=>JX2*wLY=&$`gFzZRKE`+t; zL>zJ+eid^kKbf83&DglP}%%VZKjM&d9?CHm>=X5C6r7efT>X)S@t&f(VE-_=@T$LPrNfrh2Q2IY3k*RY`l0HVasU|RRei(4D6hc9 zhjf%z)nTQhyejssa!5yc(cfCw1-@iqloy?_a3k;*3*)~la@)dq7Zdrmg>fB4p0F_9 zV@16FLHU@k2>;1S#~)|-I~GP+VLLzmOT(yxcF2$SKh7-+ZveLIkG^&iRyyWLoOKrF znzY|rcsb&)SeWZ%AG7dE#Cg6ehw`Zl=dgC`_0^3wE3UUL!*z!86?Yk);+yz=)D6R} z_MYK7d*5)C-NaH@rsMphoU=;H@m|$T484sE(SBl{7>aW&j->=FIcdU_;l_K~V4Pnn z{RI<#)r4=D@J$o`(1f_ZDfw$Aylz6+Nge;dgnu*PKXm9|MKjYK*ieP&I~C#@QTfpC zD!gFAw@mmG6Yj?6N^HkogAW_rYw$^fhYdbu@T9?K3_fe{d4r|Aiw3`D(!XV})Z?sZ?LZluj$Y^XTqdXG?n>WF1$p60RCYu=4pR>8P@HsPN7z?!)xo~|!=aDO6{k2z zLgan3SgveLS{03x>CusV@=U%!3s;WktUv~3lm=!WD&+L0ctG*gmnXg3$kFzv`bJN5 z49)C}jqLCfzFAX7$T2jda!edN92;tTrpsedS)AMZT5aS&Tb?egca z=gg2L2uYhg?S?FOrLEI_VYqwnlu+D7twLuf>~^I|=L-E~vU>zjtd5#CCP7sYvzAaG zMx%-#Rx6=GdWtH7bd_I)-4WCgq$i9Hi|fvt52cFoJ#&XOZ50bKrj>tzwzM?JOf1_F zTef-EDSP1-#_E8y4h)+^--n9fBM|ZcoS|eSjQ6E+OO)vm-~4`snTgiy-#2f_g;>M%v)D$0b(3E z0rduv{7QB(K028UF?LXGWr#P^Mc=%lXN$1!BU<}ITj-VVbx{lXoEK5~+E@RtmKfuB zf4D-|D1S92So+kBs06Q{I+tRh{}w}E5jkJ8H#YZ9kI=>hM)mPYi(Ic0j}trN$@pkW zJ%!gCP!nu;{aqre&~;C$khZ5-E&_d_ zt0m-owQYWLoZ&3lHL$Rlg|eR*Ii0%=%&eNnGto#A@L=cZzu^HMa@d zsJ#xLkB@?MwU6V+g%@Yaa{h?}w!U+~m~T@0_928Wda0kM56_>ac$gFypIz>UkSo<6 z#(tu&ZWSK+vyc@h_4^qPSoOQ_Ja9cc+q)aSO#SYIojHf&Iit^Czhze;5ukp{{tkVV z6({;QPiM7v`4!-gL`bI*IbXw%)s7XHfu$Yn(=zQ?!E@Aw7boSK^GfWu;*Ssr(2jZ+ za_l>CqR-ck`nMr~c|Ok>IcE$v zioRbVZq?6yA6V+Q3-L1bb9p|y@Zv5pe-;O9xhv59x(HcmPa-ab zBKjcORYm(9fS3C{@hSK^c;mKDBEn;A2g_l(Y}ZM6TkZz%+whcQIU;u$aZ9e{Ibau_ zauIluV;|abmw;b_ryONO&R1@08`4%8xvDwjdM&w6&LNjT8tcq*dA>=xyoXu!Ykdot zcAy;JLx`Nee(xYn>c@8xBInn49ciL(r6uRrM>}WXS+4XO^ZE3}x^PVNH6SkK`t-$U zmqvK%bKynKuP=`@(YMZ$^Xof{G->aqIpkipI0;TB?C?pVQZa}y+5JCo0LXswdf~7m;G9lCEMrJ}o zZ$hQD_1e~5TivyytFCp`HC?N9wOV)G_10C;s`auzsavbHuBEoM^|JE+KIihj=Y5lK z33Te`|JfJb$vNkF&U2pUInQ~{^?lz3>pO+rT=$dU>*2A@ey_|w^g0brhNZ<5wj+^{g?HybGjd>VE#$&K+bh+!uz@pvViw~ z@F5m3@2CIF0>&L&{Rd{>hrh^z=KZbTu%N#G{CyV0ofTL$`Q83WmUZ@bJl>J&kH_QX zW%1#3yl#72LtDHnUR_bXs(bayZUEw~^*hT~v9rQ!+sX!0@#H`Rsc@YuGMwm0Cln+$oY2872_i*VTSi1EkxF&!OVruuGOo~ML}8Ak6Qd3u z#UM&T7DBOB#5z)f zC#iDVlKTca`s%>aFu0JhHX*zWE421ru+VLbC8PDDf^`{zDjKNX>{!cia&S1AraF{q zAUiItJu%#$9FSEYv34gDeS!`dLtRH-ALSQetppLXWfU=8_bM_tq%%pHhzU7T2fCzL zAu!Ia>@;myc7mktM3reFfeb_`g<>uvaT3T%oEVu2#SA;qQ6-d)>RQurErVea0NFL_ zFk&Y;1nne)sGX(>o5nztg>8^E*b$8>_3D%;jp2(C`8(BAOAxq)h1%R73*=G37(z$?m>HyuEG{EGeE&UC-bQ zJK<79pgWlw>PUC>Qex_cBtr4w#C{PwDBYb7r-X|F8c4*uq!cRFEq#QF4Rxeal!@?$ z(2jICmFVk%uWfCNx3=$!@2qcSixwfYXwiYha4I=CAlQT3izkQo4^XC|!6D7eP|D_O zIFTCZPYA9?QbUP>ZV^0~N|VP_#cJt@g^>Xf6E2#F!x@_;bqGHT_YK(KfgT%lprcO^ zPD9w<1dx)c;dtTzv;>nvF%<0T8`i;nPAYiSsRr&1(pAQXyUD4J&+J^d|`2R^m`^cDDraZ}c_j%7YBf`sa@cgBtU=PGs)phI13DW8`;sV) zHnMnA89WQAB7^g_W$7Y~l-HiEt{>Zv!aoSPI27B?>D_-V9o8 zX*49Eu)c$Fkp>2m=>xhpD5#SOHBR+GRo*XZ2!BkIMeO<{oHJ+;L|aZjDb+S*ifINZ zJgmAtk{nUZ*zjOyQdnzO@AYvzLK#&o-i3Z(uq)mPQ(R4 zG;G;&hGBHd>{YOWkYL2|mbMlOl37v^nx)jlzyW56;Rr$eZS5F<-x(Ghs&IT~VjzK} z7MNDsP8-7=)ktl!r?Rm;agEm87AHSvqve3juKrXqwPH}tmC7quRg_hgRg|rcM$NfV zd0E-2RjZ=W^3@e(Yw$N3-JA2q`o1o`8eSmmHkx&w1g#ts6%*6~^xT6j2I;Qs`4d zTL?FN(&7bMgU5Ku#m9Ulkz-cL+~Wl&LJuB(G5bz7`dC)(vG_?JJM`krJHPZ|^EhPDOw43(3!Se<69HU&%8h8!yXk%_o_aKgNp$_eJAm1)QH2 zo-;;t!T)W+ZN8J-cg^U$I?_qlqZ7r)ZIhK1ez*aMSWun#@OBe^(@b~KE)o5jPjCKj`Ih@!V3Jb2^M|+ z7vbpt{30Bax_D0M5&7SgJ4RX>rz6;j(!t^2mHZ^0mOunk*f%PH2aRYstnA ze?7~8j4jYs$QHQl(7@p~4)@@kBmcLprE+ik&SbWKPIUvlPAGTyVS?O48b5Vt!QL_7 zsBdZZ@!C5-@bVisom$I}A70=)K`^!;6bnBp>m>ZBw0Y!&oi(34RYn%?w_7izPo&Es zD(kiz$MS>~pheVHj}_$wjtAcQ<Z|P2BxM1tyX*_1jlU__Xu%(Jk1n+B`-NYWeZjFf z(KaV5Z$jNq#$R?L>Te~yvhWE$=s&#lmE)qui(foO@w>M?uk>|_yh2Iv*r8rlY#n1o z{x7pj|8#t4%i%1B_B^zuc7DOJ+$)=Z_vih0Z_0a;J-5;Kug^V}AKGg5TF?EfueI=@ zKfZYK&Q0uxsN*fozdJP~yma;z(wK?^#|~%tj`LAgBB?P}_HbS!TiDqfI5F$4w{P-4 zSrE(bZMc|$zq=mt?d6B_$7bD?oEJHqJ2q!;*`s@LOH$Lev7+6*)``QL{Ks-)*}bgf z_s9Jw=8o~+qOr(c>x8t}-FtcO+_9Xy*j?exp~J*Kr{ivKm6Y8?TF&9ikp98rn-~Ji2%2*M?mWJxr;7 zfgftfZkpEHKYy!eU~CJzCcL2Uk8n%RRQBw_&WackS5G-r})i z&$5>A*tD@_qq*dNAN|h!qLY^Is=B;#Dj|C3Ar>w>{7|td>1gi|wB=_3P?$Tmw>JcT zLOn?M(Ysi<{4SxtNvsD-n_A>(xogV z3ZE7hnhKBcQLBW;DzZk2=ZPVw1obfJhQZA=A-A9Tjzvc;Kn|fa$;IJ^97%|qX$Cib zHXR!3fR0H5zLFeOAC3&ZV|(x1IDZIy4MA$hgNNY3`7!d^ju$UR?Cfy-v1u`e{C7kPPlRHn z!aff_bo3!!6cD}6;fGiec?z;LU$O7lc34B`L@1g!wjdTbVKrp;HoTR?I@p2=lu2!h z?8DEN9gFsE{pU~r-p|4>STh#=*eWji$y2>0V-e9B1MK2su&K)k{!}l!WaF>+g38!Z z(o$mx;vPBv%cx*nj zU@5MoJ(}f83leQ~j3;w?zuX&!wX-OvU-&tT0XZ?=k@W3nv-SeD3>hdiO< z79<&Z6k|-4D>_DP)EABJPaHPq2U>o9&{q;V&V~GZ0pCwDvEo-n*~_0jS$ltMdW;nZ zkHJ%Ixo9kJY~I*x@c-y9PaduotuqjNs@kc-RnX$aB9q1Q$uXRjv9z4;p z7bD;Wk3Gw0TJWW1BIlupLNtauRUG?)@{vOi&yH;+pIBctwtP%VH)o7wA({5V2NWJ( zWzTXb@9Yy=2N7LX44(0G45gIBWI5)qY+=)4L6$B0A%EIx9>5(Co(%RnKwg(Ged)iv-_JE9}uS)iv)n)`XE$H&A zOl%JV7OTfECa=M1_|=nGUblA7o^6R_-ySMzk78j@!$4QxNOxinGIn7Z9y8{KfmC{U zMX#Lh27E->dWrFQJ|C$4rRo8jGIYJxdUz98dMHC-r*K&v!~I=d%NW0Tdj2$)#j<#o zFUtz~LxE5*lobkvvO_tc+^oFNbjI=oi}HsUeJyDC&XJFb3HUf08Z!-9W+Pl%aO)A@ zJNP)6&XpGNb3U|89Yf_);%AN_Tesln<|F>wtvfD+e2dOgK2z^a7m(J9v!E5?Azx^m zZHLC$b`Z3@wtY5sVCr4+bAEa^ZK3c2@YE@EG+JK(3mu&zJ(H*T7l20o6ls`tM8`qS zr_GtP&c=>T=Oay8B-{D$W$JqI6!m1%n5wS-kA}M+H0zkc7pjg=S3hU#yC&+F&((KT z2$^mE~(KR$Fj>e%|EmLiVr4 z7f{a93m_-;7y4>MU{k@3M}oHp?(o0ax^t>ylc*+$zmi9c<8J5mIR)%1|6ZHBo&HRv zFE{P?bnWtVeZgNMjS%!S6@8dCzZNuVQFp>WTvKq%`O>Qq^lp9!-&XKOw52KW7X}S| zQD2!g{ru%@0iE-0+os-R+de;E@mkWOdOTlw|59w;^r_@`E|kBg<%;vwk;z-pdGcn` zns=VG%)0x(@g`%YZqK)0HruTnU!9*HFnK%Qe%_?@mu5r6+f@1&QzqGFr@p>pwu`Bb z1x$Xgq!Hkg2YFn0#Ca8q_YPVuxm3U5LKJl+7cQ9zW=38tSf@}|=fXZ5gAI2(I)DvRL%afkoFYt26uNaHfPYW|b+zqTT% zr~XuhI8u!xGPDqeOXKwR>p%(|CX7$Uq?8G7}=;DT{DY36I2+xHBn(*7wMP!DKfp zij3C$mh%q>a%^FoXI6Ol{YoI6sW&a;#bYB(3TxC7;V#6@ccb1|_)ZdW_fWd4lZ79L z9kSi2^z|%qD?&KVmRXsxbRn({-{Jfn!F>JTmUzxf)PzQeJ;L9B&5t0k$>;EQ2Cacx zXg4Hr2mQv5^QH6`7oiY1(V!CkgoI4iV>fYu%c;lz<@{HE$0*f9OpaCR9J&&_6Fn>( zCZ2mchWFvY89Xz9`Z21MjF#rp+*OZ`1she$o&;Vd<)`^0T{TZ~{!HFEc=CNuVFL^D}O<6vm&v-I`6yjA zzeB(5&za!iYRAqrt|1k*6EVJseV-qde2a5K{C$2a@dy$UU!&C6%ltC@C4WC1H-7-o zjY#NjQK@Vz)I*qPxfvOcbc(Vd_cwg}BaYnOrlrw5BCkVkZhcW!IM1REnx6K`|7YgA zXK(CRLKQyXh_3EIrHXD+g^$JV@{uk`5BWsqW2P>qv)F?^YOqTIA}it__h%Umb}5T} z-PZ&7D!|qg{8Rqyft!)Qy5FLbGj2oVTszQKY0QW(nO|gh^mjSnkP6vX4sH=7~F9O8qtuO+`)u$A9u+u z=zki&nUqTn%UI2)Isd#dyp_*iJN`i98Qz)v0dEOGI9!?bW!meK9e&y18^=WLht3`D zHMSnp*#q-ldahTzrXc(_62qu95-*B-vVl54xH3JS)8<9vxgWUaR)*X{7I3Gr$H{HT zNw{+OW6VNGG&U#0etNMe)f}t8*Te)EdpGUz(jrk&nAYKIsw}Sii)bN#CQHt@#DU zya9|y;)z(6d{X&N8c_t|sSIrkWe}9nXLYu|gnVkMrV|Z65$Bh>9X|(VY+^>tD`3c52WT#&C zZQGoDan*4yKXzBo7sgc&dm_W~VRA37n(t#Q6f970JL2JC1<>$CV$N#IXjBeiX1Bb{ zf7QGEt?%;tXvl*FWl9a{M3j)}^_>bO*M_fg{_Eg0tc%N4`{Y0>fp>k0OXKtofni$6 zXT9kzEC$Kx`R*Z=xO-?gaX^JdzD(CqwPe>`t3p*B$;z`u8cy^N;>|H?^+_W;LOK0G zWK?*G$t25k+nS@~s`-DM-y6CZzMEhz5U9R74Hpm`ZtZ`71bl!_^QkJII~!a!)V>|PmVn3@#r0djzk*o3=%B_ zIip2N;wSJYlXX-oi)A$@IDc^3JiHZ4?P1Wn^q9T-rqR>}22Byf-bQb7pl48Z2xqWO zA+9Lx;~AE*QOUUB6L2q~AYMi%{3yMcNj^}j5e)aJJ2%R@2%h8hs1wI8e%Qyq7|O*Y zPWXSXTeK@j_5kPZ7Gn^S$8Pr>g_P9I(?THsQb^7N^m6Nm+{>+x0lX3TV(FPC@|o{H z^w6^A1{62*x+U9?StbvCpA@O;Y{1PIWw8OP1k1kpxe(SV37_zB;1G98= zg?f6V(Z=-~_Do4mCMKOPt#U09+fygsJ-xF0#ti%B8d)r>dECeUXBy^%6N;^|&Lp31 zRn8yCrZ!@{_}OVA8m%`aUJ8tZOVpT|w||`?Z!f^W#%J z4X^o-j~~m%KJ`RZtC6NswJ|yDvWKF_vke!Bo&Uf0Jq3qFJs%km|4w#b;7`Jv<>eus zn1|oar4-ERTq*t_i0dToOtt|%K%wJ}KXmluH4BY)j+&CAH`!T`bbj3YM@m!n0JS*7 z{i7D9=A%CT(`@vQ(l)N9_e(o2Ph*|IIF*N{Ib~@2Ikt zFsbO7Y-`|)!dkvczlme?E3TvX&7^(Im&LM%5Auy&DTQECsF z_Tw~UpsNOZG4IHs^{VamrxlzP4~^A}cTXqq4sI+DY=q&B>%)u+b(X7;hlOtdETv% zZ@UyC$UlwWOxC*=r{=#of5Mh|d{fnUXRzf7>-~G<#e7}YLVje+Ij+f`lbD{hkRN-+ z%yeBY5*7r%^bF_E<;8d6f9DwN=z7aDRpb0bGiPoJ9U z`F*jF7&8Bm^Y`Y`_`$B*@r_j@Pb9V>Cb=}(w>n}{F`1T4_mgy9@MCV-#x+oldlsTi zV5#hNJ1SqRLFiW=6AUmYuK`n zZ_XNbBJn-VS=fB+IbjMu6hYpcpHSlJ9jJSJcVHS60%$3LpUMpke3a%ziO=J=^P3bT zV8-W2y7Q&Au3x%zGR_TX)U!~Dw18*bt>am*1ssFCnH+a%7fokn@5m#6ZhSJ0hu^Nc zX^qx9gl~Y!9{QiMz^YO0geqNKXW#Yl)Q!&LJ0H!kOi`3aSHnm7v}rOJm4Dd4VoDgO zqTj9>{1V5VjT9vlWh~RYYL^0DcMuo2bke{eB@Em`zg=&}ui*7Qic*upm0@3@JBFG= zKK_|J_=*WlMPr@8RAh5F;cgC}&2x1Yr`%6RJp$;s&LYD)(9e1~d-;cb{L6V+=4UCn zd?Z<;N=49kPqZed$wY3QMU@!yjNkv&t%O6O$0X~d1ycU6dE=k(dEIq@$@(|64%Fv3 z&s7PYIr=xC37(k{9A}2x zf%bGYf8*mnoHpIwJGMvE`f+iMs3aDvRpN2+aa#nAa}ejTq?3Hv?IeGsHjvdLq<`%m zQU4fFkCXfgw3W#*g&q_&e1(6IdMjKyY2Z;x72#je_?j&bKMB6*()eaI|0x8(Y2FGzd8uFLyIrHE-9!Df8Tv~< zK)Y$orCxKv=n=w9*5!3zfG)?+-R0v)r)S~No%6M5|Zn9-g~4f3|+j-$NznLj?#t4>1*uq+Q65PNd!X;j_l%u zrd$khiEq60M4N+Fh4h0jDdzAe(|w_KZ#0K|VLGkZJKuVCT8G9O*E&w;1j&A+6a1~) zJ^XgMYovIO+X=o1sM`r9Dyo;M2I1 zitKTJqQOI-Cva!des$H<;GF6MGw3WJs>FT%QKO6(#obm7iRh$*?9c4ej#=U;mpI9F zG{Z9Lfmp)__`TUE8<$QR_&6nWegVH2k99t-z>M9GM9w@VJ2^Ivb;6;Ip3n)+! zyf|18yb{6LxcTfrk#&#&+{y|T_&CaInOb>8*53wDo&~bOneqmZ8YK=fBfP`4H0s#~aX^R4UW?&8^Be@_J@z6Lm9=LVF zALJ-t9#OVF$%Atxy}PGIugQ8=&c4^HHTn5ve3sHg~EYurZ94Md~%ZFIj5Y@D>CQ-K#lxkTjY867H2Vt*A z1s_-8cf$68Z_$ZQ(b1RaSWp7mD7YV>js_)=ssDPUxnXYT;Utdcd`+eZ&Ta2vG&jX9B|FjAM^MZmK z=oYYhi61EUS(u|O0uNs7aEdnmC!wF$lFz`U)`y`>!P0}0B_#boa622in@3y{zrVeS z_yof*ONO(8vq|G%JuA3DVEjO3&$2!yQL=;c1mLf2z)34O7i7pq6e1@OW(BgSqUOO0 z`9&c3Mp6b3&Xesw)Aba!Ua_RO&ns~Q%dLC;s)mSBr-l%`NZZq$uX#NQMcVeXz&h+# z_B6|-G}z46skN!7^)I4tqPl^Z%Jw-rHCo%O$3P3(LO)I9sH+PE=fRxdV`f>yqfA6%1d4G8JXe&9qHzxBe!e+kTcbuCL!H zo6;COFWGw_SRxp88bA2VyiFa|e2%lJO!HD{edI5OmrJdW|HbffrS;HX3@@v#M<(TE zieu9y)&oK1H)vG9SdPwKhqkcT`t_u;O?m9|703q1m#xOON2ccAYOLpoj&%{b%0P`6 z#@b`fi)UK576fwe19xK43<&?`=}82<3mp4Jzy=bZrTeZaj{7a^%~?TCOssG-F>@w3 zpwTtFe<2OT#1tTqPs4rka#k*-SqBAz>=_74PI8p*$21W0%5xrHUSZu661qW2Gcg7c z9S`~c0LHa6^4D{xDfVlBWqlYjgV{@IUI7iup?+atffSeKbu_NQ*j`jLFv!!32?!4s zLO9s++omSlM(dlhY}u#IqXBu8)K_5L6kLYlW*0!m{iI+_IvlUWz!7vaADw z5#pHw3)I91{Pa$ZpHk~t@FU0ILeB-LU@A>aBWMmz6C9`_3Y*imHZ--eR#<=(m){sA#?@L5R0d z=@Hg-Be9^?8|1puIos|$>%*{J;vWO+d8z@yz%Zkvsk3zxH5$YaqO_Sa#r#puAhU!y z=31jvw-`&)FSRpLLl*E6_xZ{8J|*=3n$9P#wH}2WVz_z_4ev1fxz>6<%NYTw`NZ=# z5L=i}yj83QkfnGAK|VPz&-B=1gY^f^?dv`cT4o&zO*YQYv|g55cTCF5)~U5?ZXFdq z&3aU>LWyzz6n*nm)>~wI4G0%}6*U+O4iH903BfhE=U_pN+Ug}p46Gm!nn@Nl6V>m0 z?X_V4QY>wVeE$6W%E zZx(XQp`IF5g&7)2yc}L`qX1ka>nT8s3^M}@!B1d0afO;&KtmZUxrx=gsr&dE>yO&! zl7pWmI%;r3T}%~j8ZZdgiv+vNBtJUEK4qizHZA|Tm6rj(eTDUH@FuMC6pa;Nlvh}X z(c95r2A>fi#hVHW&XP(AP#dGQ5LluZcVdM^^t+k%PaCYafLpP~_PYD+dh2eXxr;FN zvF@fdE$bwsg?89Z_te_uTI(fcJ5V^a&WYBuFIK}kve7B}(GAwyb5t9JjbecgwY$VK z@~H#>qS3he=7PW+RR2YRatex(-qhR2<782p-);R$wM(b{D<6PXue(r~hMwA;M?ZC?b!V>Q1JEmr zy+UUbh}u6j7n)i-i?&m5_v@_ppgdzPd6{rHcDqMsjM?4o~GT)HHFu5UMG05_a7Rpw_uu&zE&84yXlkNefqT@N3XU1 zAL>xBbyBJ*u-3X;EI!1AgPaNDwDi6uSrB-&R1Xrsz7};_=8%Q>&b0qr1H+%pXHC&h ztg>#`d*7Ep52ztEs-?v#T2&?g0KrG00DGT(@6>$KO6z`EmK9tC%Jxd5IE<#o}8=l8rb|LziZmTP;U+B8iZS|FuY^!g|J55_X`kJ>5cUxU-{We#+ zl9y6YAPwx7TW`;!AO;b%an5NzCHKeGnoFj6Tw?uE@%Ws>0^#$L8p`g-2S-n0)yCdbEYBvH0Q{uRbv>Y|Z+}H2f8&=2_mO z@#>Kbw}q>$zoBIo*$W8Emvhyd1s~_UX4`C?l50+M_KD_XwztI^^rZpxF{M&;+71w1 zli2VUUKrR__WWXsYsR~*_fMDOG%F{#n#!|g1+Wq>R)l6#(U#Rm+NTpe5L*u8iUM=7 zsxuo+{*8cuZ8~{Xj392Q8}yS7Z_*c>vu^6GuV~)#FnSZbp^S?I5$brbSy5v3P>29l zpH$Pu;tUuuD|)JEAe$6QyyptXpDikmz*3Szp}^O{_cvJ|#Q6nzo=1(-zCar;n4f)d zI_aAfIf1=rdYl%p#-CiDFKi{xkh#QbF1AFQ&zgnE?z0IiaG zLa|0O#kJFw*1KoWJZ2V+Qs&D2u-Oy!vz4boO23^|UA`_z~Kx0~rgv`<0 z`JA08w~pdmAeBKgOWLSK_!63n(V-l)vzDpxZds4edBcUY1ss?wHb-;pvv^aS!&PEf zBY4fh_E-rqnuP&qDQ!s0h9@>1!82GEZ>sULTiCnbO)=g-=CYjEP69Jm1SN;RPs!rZrs2K zYYaLawG%gJcH$3#5yY>3x$`eVy2&1~Mp7YD5&jVPwE3HWVCJ8XI6VrEOpW+M;0f|u zq#t60#5c3kL*IGh^U&FMpyAiKD7%-At%hO%sVY5X6KC%FrmCYtfj9?$=s_J%9xBJE zPvQ=&MCq@t9{Ss<((y-JM3mA&jl9MiWNUL(wdtuqaKJSLh$4vLvrUaWFbWm zf+r8jLVBdX#Gt8qL`AxWd#lDUTrv>S7N{GFE=3AunxIU_UWtlXs#YU1O~NxhNjIsS zQ2>i@d&-=OZvOw4$E<6zCR6K(3iFs$uane;U(%uM_GOk+fmD=3m1RCV^{t_v~|Vw?Vwn?zXr)#A`!DumMYWw=yB z`5H=p|B~Bq2>hAS5Wl1oN~6Ej3=p0}f7i+|DaXFt`cthUOn<4Kk<(9qYh>82LNW(R z&sMDk@04G!(2OLc*ca9G>G*7saJvM`=;lq?w2fi(WkoY&?M~9p zFRa}diX|NoaU%&a`*O=oojf#8h9WMV+1->il>SnFsw?_SUI*ccv~ILm(oF?!&@@~X z66}j;89t#1(Mgyhe$`kniXdU0wqBK;P9&c;V^4mnId|VdnaK|TF^WGElzCz666F}x zfD-L%D&>%FC-?n^>n6F**iNV(%^D|vsRm$1H6zi!sC=VtixHiqZmC|QxFNsMe2`#Y zZdo!@x8zCO_CU5kZW4S_g{ZC*A^URksalC`gNDu~X%FXL&t5efm3vmYjY1Z)o=Mkg zLSR&rEwI4WdLrpbDP}cOe@jL^xz482?uZpJAH!d98Ro2$=`}b+}Oi z`ATt-hDe*p)Qdj^_T;DXjrQJyC}A7WOT;bri>&Y*w;jLO5`Tu)lB1fRpjQ{_WF1{S`MbK$H-rlfX0Ls>^tt?wxwpymPwQsHidbvOmk)8FeZ4J#$l(=S1RoR+G0jl4; z#YUsBgH=@~GgE3?!yD@3?Ymp3ppgOk98ID-n#9*{i2*`rX>Z-!5Q}LX4N4_%ObqtK z5sg*}T$Ru_IIz#1GL#-x33%eTu1@n2U0GIHR#qW1x7W6Asc(cx!ueo5;C&)0X)5wk?VZ7y?@=(lOlcgly$04r*KL zw#HY-HLjUT6v~7a%+&U+JGO69qO0_l*5+74W4)J1tiHB=M{9k2Yi(of>gLwXiV2lT zLnS>~bso_69gXb`EseV;&bYaG$EL>m$q8?6*x9hTe&W14nra&xwlvjG!c$%28z#t8Z;rIc?m=`knQS(MnM-WIC}HK@Z1|{lbNk4`A#u+k-yM8|xRF-W+E>x%J`KtD{ff%(K z1x=|BtzV7gnB*cG=hq00;?_8Bi;UWMURsW*jurjML(40vgXt|5oVf(O*e>@mMHA}7 zOQt)d%H+TR5b-J`$-V=fi*%`gCsk(kHG9h7w6PNkNEIVKH`~!iZooA5mk>LQ+eVRJ zq$Q*%Zdr(yMI$*@=ah8}*u;JsPPe9Bp75!E~zzv<8Vx4L`mjpFN$I~IvIw+uY>cdq5`3m`=QrH(dEe00){0s z9+W81Bs0`7j^I`@sV^lW!H`=UABr+Q#YH$yQASlcpK>FV1-NBVClL}F)@0;Y%m~R* z4(V93>?RWhmL%h7SYkL-9BxWIRK!d5sUQc%VA%QA4WSg_mL;7)NHHu>^y}%7Y=~u8 zm%y5^w){3j0>|(vj_8hHZiXBU{!%f7*M!j*cuanx07Ge=E`E!cZ zW?_&s*mJaO)VlFXa#Vt0Vos%dP@Fm^l*7nmzRP<&5eGxP(U4Fs!7Xc?gmX~D%l`-= zY9kmePdNhdX?DOJJ2qpN%5Rl+#UC011l2&S!Vb+t61HE|SbPhTIfJ7rO|yQ1Y4s~PW7 zB_U1)A*EXtgp`W%s?}B1m8+_doKU48*(haAMMY)h>WZ?;Rn;r2RRn@B1RaIrH zD_57TS-G-&Rr$&hQP>dhoaA;&t9ts>^!JO@GW$EgPo`( zR~jC*)0Oz9o)6l<@hX^1+c%TOYz?4zq4QguRJZ1DbpR9T|BViKJPVW8!VykP#Ozuy zEf98hyA4*=;ep>_!zZqlH{0;Dua&phd1S4adVZ@7Q_3-cZ?l0D)X>{);CS^+Rzr7l zp;VFH7$?yUXh_Xa3uMmGv zd0_iz>xe#LNw!L|KL)}E$ z`DYj0lle0MVp)-#fLV#Y&-1J6w$=)5Gv60zkMi(v=ZuSXL0XEfz z3r9fsdm_=HEK|QPQXT3t^#>w#;u54M{}Hi3RXiCFKNch=!4Ne3;#`HrYGv>3ey^(e z{ztJQyQecbum^8WO%8PRjdUmWV8|o7cD(bEh6v(3=#!$~r_q2vd`1Fxc3Ky$yS#4M zvS{64|4_0oF45WATd zix{dc&GO&GcuBNnL}kpsoAFW^6!G1Jhtskj93WU8~cY%~U+u@n0~DzV#6#5>M6 zZ9{bX8Zw)Zfapsd~nf{TgtgGUDJsN8d=IRPaIb1u9!6 zMJbK(Cp7BTGoqf*s8^p6^_M`cYXk!j7~j!Ij57WrKxedT-@`<*>h}1Q=Ks9e}xJX109`xiFi-PNMAah9NrJ{by9LajnbhHSXSMM!%^)nOdNM$`Y6|MU_&Uep?$M+@D@!FQQR-AAs zL*X50K#3I8AftRY#rFvW0mqXI>%Px1wryt+EV;cSb-k^W^&j^0Pir=80+N-XVTmhwz}|o> z=elS7{JZ>OS%;fy+v<_~v_)^~NF_kTDf(!DpU_3y1Z2^j3Rf2G&AIO90scQ)>R2td zUC$_Yj2f4V|MedZ@;~U}4I+{O(HI53WMO>%>SuzyLRmpwb5nb3GhCIZLTh3(t{WUk z594D=+8);&&EgxB0oVjAS$vnmm4$nAR{uDQH>#o=oHj5?xdOv3^ur;3NJ}kRfhtkh z9htqbR%LgmYX-{4&4+Kh1b3nGad2L$&#sJbjc=)Ms&8$mL%&^(^zD`Mn*e%!3Ud>h z4V8_SRiYnSGZ9AHj!gog90+SCKtR_zL8>IYetoojRY~+_Vrg8_L>M%$08E{Auo@b0$rCS|w*=eg}X~$}>9)IY4KsCBKQ&(pJqP2l%4-Ejtjn zm0vc$rLBAw%YP^1i;+gb`x#$?RMbWO#~3e0Dh0(~MFm;Repj z^C{9=-v+-fFe)M?j|C`4-6mF6*wq6;jJn5nhNMYfu7wg=utiaeUZR z;8}%3@xFoUS^i@_-$Fkk!*(o$ShpR^L#)$|g$uhAed&%koj76nS=_g9W}z4iU;u3- z&Mr(GNDQP?5@k-|4IN1xnOE4K+Q;(0f@0?ruU*&2dxkrR8nGWO#Be7ud;mvXM0^2B zZ~%jJ;7MXdg=vVP5-tG)izF46|22>-E*v5;S^geCN}=cX@FJ+N2zqU45&D9_e7nEo zkEFkrwpcw26_QSF06r`17zS%Z)Q_w`^dXBt$^WB|xBE-}D=6|@#qtV!lEW#?xuwSY zFcXzwUf4A_0<#kUUm+bnlVQvHZV&{~@(TB}{3|V4!Zb^ia23nH*5Z5oC3k00rDDJm zD#QsNmj5^;Vub^V8)T4}8lWtMl7F|wJNzZzr7W$@n;M#sNs2CWIW^=jOb_AcNdA?6KIAWXIva&w~Cmtx*?0suIWwLxr*uD4e4!fg*XT5-2>~dNP~Z6DmR2;J5w0g<)`ZjUSv5C;3nN z`OW^4&*p%$HpD|-&iaLIQLS?*_4>qsvT&cPHG$;IM3PA4uMY4xaevAExg_llq~v*t zI&G8}_MzSM$*OYGEF8RH07GukTtg_JAwWD6z5M$F{H-YA2`XV%`}S5AD$4&w0A@1^ zwS6`~CY0_Xqa+=W4gDkK6`1)?1o+*^dtV;%imWQzML|zCwDKN!5+Xr1^a~)V+rDX+NUDTG-qgG+F3t+Z ztD|M3)n)R6d&YOsyZSmXJm?(6+56+r=VoEJpR#|d+Rmsv~ z0bLfY!~$WdNuYWhg;iA^3ad*luXZR@fWmTdw2#U+vv-ODqc$vRkS#YSLhB{cksx~KDHl+96P$w$pZ=Dp(AhPJQB_V zYXrc$7`Zj!58s0!NhExUf~1EJFj`PU(u=SgLhkA7*oP+hA4sIA=q04#5*{TD4-aBp zS>~g7SKnaQ^~0ja)F|XRhX+Rb6;l6D9G~-yOJ7bL>_3%fO zEnH$CV&);{l0Abei5Rr*u!Ja(UlzggZ$@70eO9;<63S$h!}8xn$)C2d6)B8Dkj~gE zkR8ng*H;j`1Al>FsPp|Y#n9vDWD4o;aT%0)`>~8TTKkPmP&)gwj5!*Mpgfdi>uVw6 zrnXkfxUH*g6c<{$T48D(B@uUN=njR@)ydu`gQSU1J80kq7vii0!Y{?W40kDR8apon zv7yv{jDe{Kzp7-hB2G<3j)Um{4syHa8hRXzgO%w-ziKA5M)o#f8|?(2ae&4j8L6Bhdu5FXE)<^At5exvjY0K9CsP+a;2Na4NbLm?F~D{TwzIT zeeGs(KD)SeM^jTn)0QawXvx*J4LBHqgWHwxpd!-HzLU<3FB1_g^x~92sR-9LZH{6# zvRp*k>bFO6AYp}wzzaulI^uE}+0h;+(<9eQWqmJ_8kxAh+u>kzZHqbI zUjy4+-wNfmt8G!uv<@|Zf~BuYc4HBg#`xj)pw6k@OTZVZ5f{yvQ@E+#k?S@Yv~wUz z7qYNQWT?Wu689?H)IJu2DoquaVAMmMX)%T>qT*>pAu4?<{zBhZz|@Dk55{SXBIc7= zx<`>nS|NsF%WDW?%r8%?=f-3z?b0(@uUpRw<+ar_*k|EqY(01P*-`LA5 zDaUPyLUzKYi*#EJ#5K671u8j0YMzWv1fpJeIix$ld`Wa3WE8lZqsNC3qoeA=9{@{U zgtZQQuE%`^Zs8+Qwe)BKjX#{x2IH3@y$h#~2fHN137hTdwElB@qJPuisIF<)TN>rN z>)A%R@ETGw(;t$11LWO^`z-uEm>L{DXz+a$`4!(;vR-YJ*M{$sck%v2KPDb>^!_d} zqwh-$$l4ae_sIU1?e*JRSY$t6LcEcTn;>5u?#;OCaf|wGXliJ0sBMhXrU3cJay|6D zY;*ngI(XsMy85PC7i4im`}R0)l`b>DKP=f^y9H}|;#r-t(fW#&wH5WX)CJIXReijE zS6$>Hk_uzen8VsdwQ|+x-j9N;|QGHkw>`REz_0kg10sVTgRf1*5 zci8x?^^MK7n@^jgigLWu&QZ6cwY474@SLuYYRYoA%z`I&TE+6%MEpQYz`RFc)}0Qs znlS%HVYav^R%6{w30Nfv-lx!TR^$u{*<2>XyI*FgZNL*sr`O=-vN{s(Ju*YvZmesx zHdLHO8=K2ThWENMRGuzFg{Y&yYFyl8(Ocz#<8ejoC=W)UJ)%WU%$Sh8mzoe zBhq-HxY&(XQxmPgBJ^U3j>YJ5;{E~3vZINp7x(l{KznIVU-XKoVgPhYqFBwYfDOK1 z7lwSLLlfjg#+#!6|BriIXEdW9HA(7@sYlAqHcVVv{#gtSYjWHL#s zNm5#?|B%EzD-msyl4F$gVW*_iiz#zp*!3})gPcI|fYwUOH3Qc|i`eUrty9&9ws6fr zP0dP5FDIQA4}jyc(Q-Nt@CivoXu&3eHZggQPiisUc}`o(7#9xdbOsm`7W-*V{z+{O zO^#kxkCqAU9~S8FWq8c+bl7O1!2XQDZo%G1Wm%jS048-OWo4^{JNc}Wqx_6HgaD7Y za+I&~lz{~8Hc*Dh@i|wHYEK5o&1n3`xaiiqiqR5o=!Lh%Zje0UfPgw@QL?PO1T6(J zf0?kc4su%T0yK|oyJ`{t@-2%{#tyUaGX>W+_E*5j<(k}62Qb{z~ z6D=luth&jJG^59Pm2|S_pc@sQ*P+#RbwhjI)?$I2>~@ifE{6Y*W8W26A6;;T3S*g| z#3&+lLo(gfYf}&dn6nrM;DJ|ckQw8EBj{w^;};v{wHXJXPuB;`_AAY?a1FTNeBCpg zf0fUY)g0fS#2zcHh%6GnVohRE{xjIjqIGBr$yHKg2bQq;9$FC;S@v{Q$N(!6>nQ7Q z_t7pi=;ILsIq}3O5&W!s$j5&n3f2HD`m55tpJ(ynX8y*}PLKrMKzT1dY12auCFYM79OvpRKqX)HrAsHGuB!M2~nT z0Ncx`v5B7vm`j_On>W|T>}LY7rL3O`pgmLZctDi-w$KI}<6Ff(8>Uf>gFQVswJ_LI zoG!)it&`3-+2~XyIJ-ofrtP(xH@D&efW=r=OjA=YSzaUX(H6z}XCwGOuk(=*Q=2WV zTRbA@;m5OgNh+xG9JLiV#WX`)J(J_qUDc^kJy*Miek-N~LFIv3Z?7tU;vnqiUa z`I0#;H_($RH>vu36IXlY=zHn>+Z}u`B{mnS)53@ns|a`L zBs^Zf3w2Soem(ZRZ(dE~wYLGLo)H$SJPqB^BEs5PwPJM{US)7M;ITwUdIT%Objn0N z)<=`%dkhFYl|*Ux8fn1pyNVLuWhUa#Ovk>2NdIdiT|R)9!hSprA)O-aXTbCU<98cC zdOC}y?e`gJScsyhld0VIB01hL(3;qng0+exZD>q%U?|0`_jByHALW*xe-3CwDTclA z1BqcV8i40IigiWz0s^;q8D&-gFBc-xa*!-H+;N%|>}N_0^h z(BbG(oqGh2vzJ7dO$O^JiDGz&xO2imhV+2a-y~ zVrA;ak|+*{q|zwH&VoaL#Ikr&9erF+eBnYOf?>{07~>#RQi`Q@MUlcbQHt1fZ(;m4 zOOuuPqO_bijxgi@L3p%yY%|=0Z`7xggBUu|aYu15QK%6(ajYpzj;>jG?K+2jm0xjB zv2o1XRKe$XawSo)d`z=qa_k`ni}tI>AvMEpKKtoONrTTygHQEyXYy)gj z1#j=wr5e0>3E-?fuGP%t}9SEW7-KK%T5!9->vi_?q<-M*mpWh&M~nMN){ z=&vpH(xvfxDp)ydXsX-8&gQ&Ue=3=Z52oZG#yqcOk4`WQU^KS*XwWq#SA}#r1kP?4 zGnE5Masx9Gxv41sFgCJ}23ydaR8NAVEq=^AEhM$!B+dx7BYOh;KShGvDpRL*4hHdr z4xz<|WM9Ja?_~UkJly;gzbyX<4ua+XkV!B(ZkGQPu4 z0-`27hQPXouv*~K2;nY{bM5m*ak^a#qz6QaDv1z3$@wchDiDQ939PRQEQ%A#6P*8% zUs6JSfzjczFi!c1ex0^@#X$w#kF)%@A;FK+3Tl8L50}yb5!s{Do~=0giK8K;U8zgB z19}?cSDfGOvr6uO)hl(P0bwzANa&X3|6CR(tK$wjIK_%0HxU&|Qbcz9_}f6_Q6ge@ zYs_CL!YrS%F)CRoU**9;?0b>t_msz}0V>>IXvdAbc8#d~-|_MLk^guQ`L!d*Q4A4G z-KYg-g-L8{!h7okoclthNxC88iRw_1%(wVaki0*O#LyK<9EA$C7tv&xLB=mcQ}~Kh z0!Okz>IFecdk?TTp3a&0b9@}j|CGi5$!E3wL&$&W0m;dwLnO+j^t4t-Uy6laqG?3i zSAjsTO&ooDl3%KX5z&V@Tl(7&&IqZN`hHQtV&u&7gE$`K$9cCNmcIl+p`dy?)`m@f zKmU@?iU>o}`?F$ToPV32&Lc!I5!LB5 zVcDbL_j&%AgQ@0iESKT0kYCPSSZ+usY?t-Ta>I5C6wY#^I!f(>&YCotrZ#Neq@r{2g4j!xr%iZp zh_)oq3v?&DST1MHADt%LI2mCLZtAxf`#5^7JJDl;I<2h;qdDrtg|R&3ieuG8T(q{) z0wP!8ZpGb(oA!AYVx?hwTSJ?3wA?DjRPS;et}gTYt@421stEe6$}GQC74lmvv;Eep z9KW?X*Kbwl`K>k6{MOp(erw$fKNqWLa>CTrNo(!2`D|?n`#DxEnwoJ074L&w>?%-7nLb%^c_LlxOn_zs;6M5WLuf_T)-1c)Xl)2}wuv0^Awcezqw zT{8I%nEPX|vXhRH($E>@>Nw-qI1$ugTIRU6ZD(D)EM8vRQ<}#1)y`V12W@GK$5*Ua zLC=@r?HrghcPEDvUFqVol4v@Lff<%B)5S|mic3n?AptQOy&;SP@#*w%vJ>+ptm+hZ z^xe>LklxouXX3F8N#@mk^Vnyxr^c1zP0#4-IbnJ$f{E215gc3!+|G82eUDyTz> z5t5?PB}KY&N`jQ8E0ru1nm`<|QyJ|b(1nmnQ=3@0Qc(`%yM^Sd^2(R4nyQGU=_*G` zicBsjIIN0x5XJ?RR}-C7>{3x8B)^@@##9lNf6HmHPzEcVq&JJCinvUIIpYCPjH84< zZy11M!b22TbNil7Yr}&9p)cg8ygvQS{!%WSG9t zt*1&9#tOVZTG2)R-~A*DVC`^s7+_(hL>+>8xD#=}?GtJ;stz#8i15uaCot8S8-<6i z+J=ZRsvWaOopuV1$8dbaiR*(Ol9udgZK%Cx0;n-h!^VmsDq!;2{xDvb>)vzG+IX!e zc4|etD3ZpI*zQj9Uzry9Um6i(UDBRx#c_IF9@UtGQ_cF}i!hyxq`@O~Nle88&Z7-s z8Xw{ywLF)tVt5Wg?8!)2j(is3FwpV}(=@$c`9&y#&a2!eVAL73N&sd9`B#f{IzS?ZsLqn9Y6fzW#PSD$2Mj&` z#5`TJ5(N&^NmMG}epDL~GN%n1R}B^M$ipL&m`-Tu9)}Xf@Ein-@)z@UU-m~HxA2q` z`seZQ+YHkgS7Qr`qMWTe>5u%UD^FXx121l1lc0Yf5c!r1UA1atpqYe0pQ51uoj~N< zt_*4|9vLQjc9*TYI~Y0PmqJLL=@-Wd)h)^oTOH-tvpdW>D$L@9UQyeFeBHkVBmeE9 zpx$^niAZnBir|q3p*2~c>*bds(;`tel^dp0uI`eRBEOau`MHaX>&=)VpH0S46VZd3 z{*V>9FDRM7`{3whnW|u+q;gYIRo-Kv$osMs+hqE-n#4vY+JRvAQ<7bwuS%1O*x+RA z4rNCkFsYceFLz4?8Nr21--?URWJlib&QEWfRJ>Ce$Zklha{VSdg2z~;%87UV3cNGq zi$u~z`M>e6`*cp^<&exSr&*{mWq`Jd7fE|`@vKbp<($axT-ntt9z~9`A@Gm6k^jk- zJLBX@|0WO^rn1uhm5dNdVbuUkg zJnbc>6hOHbg(=4*3Q!gJ(Dca9y(GL!P*lbX^PB0BXS|s`ikK{Kk#Je-9-I+5l`GXj zYeBXq-YzupPg(BTr&LnFRdD!4`448T`^}8Vp*+fdP%I_Y(kW8Bo$oM2C)|le2N+)B zW8uhQBP;eDad=hLy3RY!GpaWCTsZPmk=K5qtIardA&c^_4~e45k-8n6=wZP7BYfQ> zk;n-*5%I=C#R4Ik?8~RpJ6wK8ar3)KVPRNa7tIBXpQoZ*UME+Eec!Ce&s_M%`=teCyaGVj z$^;I+`Wv$%A21y}4G@tWfBFqVf;ePD9=#~?`DqLB0HqpZjms_1s7qaJqKW|T`)bH4n z?D6!%t|6)Lnuc}l0ghVut-fP!t#A)O zEPNA!tor+NBcIQmM@;JO!R?O0EBRD=mEK*G!kYLVKoz|;Z=V-=F?Sl;5Z(bq2kfc! zz}68GV{{c}d$5*0khKQ~ze#l?4r!*1X$IT?R{v;%bFG>nVoxChR@|ml0?Fp@3hMnfr~s51n1lS=iG8M@JnJI)!~BhgcM|B+>3S=D}3l z7CCJilFa^chm#;G=!1y6bSxBr2E^D7a=r`LCk!L0_Hcdwf zdAg1;HbVy;+L$lP((8hR99hgrqI_(Z%(6ncxs2g+|B6| z1;#GQWil{_((v9XWMK0&ygba<#S(*p^C_JIm*g_~Q#cKj8)jE$<5@cyWGt%Fs!)jw zbR;)-T5cXl7tIiCE?h1CEDGQcY5y_`;9+L^;{&xNA^@?9!vauJfPx_wYH%q9DX>hY z;c>h;6{4yD#9OXJ4AIB@;#9w6rBRo9%MFBkhwE{WU&R92N z%?vBFA+KS!)Xge)vP@j*Q)LS-A=0AiMsH#*6ZT}rHV5)C3~jhoy6K?KQlPO>6`#Lajc2dqMBrCvrD zi#e&gX6&AEHKg1klXP?|5!3k^oCq;?r4dCD+hmlnMhaM=^?6mOoDHb4?M?zkn`Qw{ zrqoOUYz5607AmV0yFxNbRo!}#phR}jMnMX+%QSe5i-a}poC9mRdXBL5T~&gTFS`_o zyLAMgd{#j)eT@tf!X6o9>{^XUW&V|pl+K`NTt$Nv*()Ow(jg<1-dTm>WvN{vh=RH) zK*b~|fbVz(#GifihZ=fsK=I00QU#IgIvK>1ZyHSW`*cK>+^_KoHb4ZaJr0ThXbfoy zNZI>kWJBJ1M22N#{%qnar6Y``SBe%qvQB99z!hu`7``FG$#LR^@at6oiWV2GS~eyJ zuAks-qd5$pc*3U9_0i?ahpvpWsl@xL;|;N0v;r;GX;%ya;Xn_bj_Xcb(KCoG+8ov} z0CakRYCpZ`Wi1p~vAVizc_o@21g%YB$b)zIP4H$_h>F)pfnax{b7UX=bunAMs;r{4 z9B&c_z$CGc_7)Hh(@vEz5|=LsXch?AIDP5%J|W^5AU$rkwqGZ7P8 z#^UQ^%QvfUk10bn{#>)gh+xFwj{7`u%My#-Fd0}l%Ld^>;8 z1J4q0OhVO_<$;Gh<%c}*Yyqcd3gngTf#-POIUabffG^hBaSp((pF9DF*HTxW2R_Xc zpYDmz@X(*(frka0&KAfk?14uF+|hr;1JC!+&-cI!JoyVe@R=U?Ob>jP2R_RKpDo}{ z{m=HmFY>@I^1$Z^xTF6$9{5}Vcj|Yp2R_e}f1U?^v4A`JyVwJtFW{@R`teOucl}=? z;4^LbB_4R8hkl_4eyM<$+4(Q^z@wi0Q4f59fIIqG;DHwjIDM5;UPT`GLJ$3g9{3^; ze31u!nFoHE2fo+?U+jS|@xYgO;Kc%tF|N9bJ@66%FV$eYJ;7Z+OFi_Ldf>}E@MRu& zsRv%_fiD+uNB_$`@D-l;<(_z%Ctfb-Q9mWGau2-16R-5(S9;)80$#1ju__OIr6;~h z;5XU$t32@40v@#Ct3B{)0bgOmt3B{F9{3s$e61(G&J$nniC^J~*LdO^Jn@a5c&#VC z$rG>h#5a55^`3al6W`*AZ}r3*gg#nqeKmOCR|nabt)e~>?#M?db9fICk+Pkgta*J#t* z%^F?foi}*mJAGFea6fzDRJn@N;uOx}vCCX>xl%>sKPuqYP*7ZZ@oTX?GJ;$wMIQd{joBzzA>zy(_p#dyxCIKY)|>biI|4YZGm#JV z0sb2UZsDwp8{f}<=z<44@BsU&3m){qgY2^|c$NpA#XjtUhdl5QyUzvB_Q12*oi2Ee z2cE+Yy5PAUcrNR6!Sg)uJhs;bpXPy2W9=^ZbPs$w+vI}J@W5xVN*6rrfrr^57d+yD zN7zgkJl_M)XMPvFzymK}FOngu%fffr-St0{{oDng<$=#)KXAckd*HL#*Ie+6Jn)Oy z=UnhP9{3#gaTk292R@hG?}E?sz~`|eF8IYB_{D6{1)uMM&u7=V;Foydm$2VZeur7rja4}1X&yWmA0co9~-bnTKqS?GZ;WWTC2;fp-*MeGR| z{4x*xGWM7YzSsj_%s%CUFY&;aun)T6#U6MuyVnIT@xV*iZ7%py4}2+0x!}t@@MSFF zf|q*WrEG@_zT5*}&Kh0t6(0Bsw!sCz+ylRy)dEibnC28db~&qb;g@;v%h*bVPh(^s z-hi~&gqF8q}q{FUsxF8C@Bd=-1l1z+ufuV(+`f>(Rs)$H$F@HHOz z8um69e60t*mK}7#*LmRUSkeVw?}4vpyIt@rJn$>nRu{a+1FvDLUGNPa_y%^F3%=0< z-^gaW;I$rjEepEfn>_GM?1frg+vH#BJn%a96Bm552fms8hYMcsf!DKtcEMvFc#M6} z1>fR9yp?^^1#k1f+t?Re@OBTp zoqfUu-{FDpVDERqcY5GE+1)Pq)gJiO>^2vCmj}L!rCjjc9{6t7ui)fwE%pWv{0*$l z$j?~^TjPp%vP)g@E*5abyV-Lan0;}UV8>nY9`;#Rd>?zCE8ffA1 zvz4xRADicj_p?*Z;v@X@0DIaMA7o#5#fR7@UGe?wU9R{r8+FA~>{?em%{IB>BW#H) zet_k<;y17tuCUbw{zlpNUGanL^RD=f?5Hb#6T96NznNXPTUGZC4l`H;6HrEwD z#QwbA!4qU#EZxFSbUMx=5^o=54(>IB(n!Z{5i0_rc zmxt$ZeyHhN#4DPD?)-y<&9^u3}+)4vhpG~FulG<}~qNYnR=-H8wL(4Ggx2bx|XUe@%3 z;EDT8Yr0Kb zrs*fdIhy{xDAn{I1pYd5{N;(&qMN3l6fsRdB|b}hn2-29E#A=d8nIf_&xpG<{j9iB z)6a>SnqDi)H2u6dM$<2do|=A9wAb`Hv13rYJ80ia;%!a8EY@iH6>+bo*NcUkepSrU z^dCi;rvD^{YkGsgW1r(MPrN45H2u2RUJ%bl`~EE6)bvKNTGMZcyEOf#Xwmdr;#^H{ z65}=f7cp4VZ;Ni4{;Tjcy;*#UucyP8C*BdSYx-}ZP1Em+J2bsTEYS3OV!Ec^7p0p1 zyU5e@R?$_{ABdk4AFd)^ABt_7{z&{$)7!)Wr0E@EuBQJjex>QJM3JVy7JW6nQ*_ky zf5bP550}xtZ^RZ&e=A0yujnH&EucxNdy>v~t_r6Sg8H4y`c$+l6 zkN1?OJ9x`Ay{~trruXyeG`+t!LDL<*;hOH`_0V)@FJ04JynhW)W779^_r2>A~I%O%L%- z)$~wrh^B{mhiQ7a7t{1H-an60+c(1dv!;*rp3wAh-kq90-n&%Oh2A-u9_fwK^e7L1 z^)LSN#AxqeO&57T_laj?zK!wzq3N;SpEP}f_n4-Oz1uWh;$5Wa6TNAgKFKT5bg6f= zrpI~sx!d^56DNB=92u8r-znY)njY`HqUlq;hc!LHyIIo{y?L50^U5`Snm0z%r+fW0 zeTLUb)04b!d#ml6?7gSyGrbozeU|s2rl)u}X!>k#wx)mOou%n=Z=|NDdPi!y!rNEV zmEPCA)b>sD-qCcG_nfAyz56sh-Md!P=XmF7y2hKV=~{23rqA_`()0|klcwvu@3PhQ z&GbId^epdHP1k#mX}ZC?UDM}zmukAvtJQRqcdDkFy`h?(?H#V^IbNEk&-cDKLT&F{ zZG@uRrZ4i&(DcRLahkrw>!s-hUI$HI>V4f)ZQo_y-!y%> z_q?WCycL?h!n;A!S9)_aeU*2%rWblen!eiWr|E0F&YHf~`>u!DzD3?vO<(7|qUr0s zM>KtdcZ;SMd-FAYqc=^{H+d&&`erXz(@VUrn!d&RIZJKdt=`9)zRi10(@VWJP2cX_ zsp&hs%QStbSF7n|_}lFw{_^mbiH2zUF0Z?$@AgtPz1-V=c)U3F$9ufDG<~o4l%{{< z-J|JNZ=t5|^XfHyzjwN(AMlRV^a?Lq(+_(4X!;@VtL|$1e(SxX>6PAEO+V~Cpy@}v z>oxtTH(S%IyeXP~%p0xg$GyIq{+-uJ({0|a!_@XY;r(6HzxQ6&^dG#3HNDzfqUk5S z3pM?eSE=czy%J5Y@p3f%jCYWxpY?v~rnc`n?;}mG^O(DeJ>I8FcEJ6h9Qy-u3`!27zZTK|XMUo`!Z_XkaH^KRGl zKfDVy{jqnpra$qH*Yu}e4^98mi)s2Z?;i)L?fKk$Mbq282Q~eLcde$s^k!=MU*0L2 z-r?nH`rlp`O@HP6=Rmdouf4x&dZ+iKrvKyJsp)ULi!}YMSFY(@-bhV<=N+Nx@4Zw_ z|KNRcfZCqj-m9Aa(fh5YfAX%=^v_Gu9;O=tMMG`)}CPSYLyFS{h#(+NLs_A<1Gq!j$?jGr&NOVhr% zfqBVv^3N14oFD2r(6X%jC-X-z4+(vmzq_-17rZ+8z5Qo3JF)mVnm)w;u~S%D z`a95nPSX?o1)47MM{9bJpQ7nw{g*nb{tEpoHQmoI(R7aALDNJ14g0I*d-{ttUE-H% zy0hOy)4ly2`>Ex}`Oj&(yML{w5Ajde^nrdaO;7N@-dFWk=JKGrYSbfG^$ z)BXG(JE;D0{MR%+)W1X1J^dM)F7f5BTZOMqerJF8KB1E1*UNua)203bO&{hTujzyR zA2ZbQ2l&rv`c!{`rbqjuHC^DRXnKVIQhU|k@&1*X?(3Im`e?tsrhE9WrK{zO{Tnsi z$v;`s+5WzoKFQzEPA%WfU#RJ>{%B2S`o5;e`)kwG@}v9(n$Gu+)ATX^?o^dO%3q`D zf&M&AXZgc5eS-gkT-f~TFl zPbYDp#&;HJT7DPtpCYyYnc@>oA0Xag9mL~6@kdP`B%Wp+^rx$MgmuvWgT)!AGu z#L28v$lpNm`KX}1L3{>@zpy@;@&}6-Sf`O5A|7Kskn~V-m!^k_>siB~{lmqDtg}fU zBWAE3P8z>Y!8#bPW5tQAgY|Ko7{)pn|Kr7xtb0=VLeZ6VP=2IHXWfVLM~SaT2K@`_ zA1&Tz9r!B}>sbf<81V$_JSsm{v})x~5VvT$SX{w+JniFFm}6GbKKU_G8BPGTL* z*HTfyI*8{uaX9Os{*%RitmQG$**``6Tp096URHPZ$BQpn2lMw-@gD1-KNG}jtc!`C zD4t~<#G_0+%KBW&KTX`jdOGRT#Z9cUNS`5ESO@cEl9NLL*HfSn+$!Gq30XA!O&HPo@8kG7q!EeY~S&Q&NFmxLmy)3 z{R~YP_gsPWzcZ{1R_cEk`W-{RZs->c{Rcy@H1s`&zS+=M8Tvv)*Bg48p-(roT!-OH z_D}AE;Y(_{4}>qNdxip5YPpYuFR7Jqik_UG@k~r)0m`^X{sskpu6bUJ{;pZ~3xaeX zR_?FKla@m#J<+6QA|lC%#6zp>`8iixRGuZRWn67|x&{B2Cs$@Et47wVUB z$#{$B&7V1*NT>F}k1z8d=J8p{{eh$q+oXG#OSl{?m0QZ?ps5@zm4h8B%ioSiB(WdTcd!ogPxpfS zpO`;`^rYwFV7-lX9qSKS&t#p!_03{^FXz{@{)RO!;;20-%%8`)9qUHcg{+%ck7C`-dMs-^ z#g6AtS@Dai&1LdWvp{pU(R|U>lW6Vx%?HZ-)4O!>%XzaMK!gz8<)p(DoOWb zeKqSW*4MD^&iY!`&$7Qotk4!}?~{ zud}};tT(Z~h4q`PZ)Lra^=+)P+22yuC$qkt^?25Iu>K>LzmxULte3G~&-&M_H?Y2o z^&#xv+ltnXo+$^5;nPh|ZY)}^dlS+C;q_px5d`hM1ruzrB`+ojU}%EwRi2l?{8Npeqf`YWvI z+zI{TJRtwD%loi?S`d#GJJ8J>Y8SQ!;Uiz` zM+f!~OaAxecws!2OCISIFIXJS!mr|fAfMs|t@-Q7{$R=9e#U%4I?X3onore<`Shst z4^46E!2ZF}c)((-L3?6?`U9)gyC2sJOZD#0al-tkI3bG(%+EfVCCm5(!M7x@;_jUBbw4_z9C=hKL(lF2TSe42NX9* z9`)mr758&O+{X4!X={CfOESu*c?TWtJK;FdyhFLSx!m8SMZMeDe!=$Noc|xTKXE#4 zMTo}~B#Ws)?Z8n%_ApLAf^C1cIh>EBNZhfUKANr8@B6vmu+;A^ez1>V{AeFRIxe|| z4@>*mxxTUL0w}tz}E|0R0W)L2-b_r3rEGv;9O`q;F@NCT+M+Bgix^ zu++XxqkTxH_Q6v7W*F^**4hVdt@ICTwoj`U*Vj}pEY*8}v7V7m^A?uoZCzqLYkqKD zPJUp?&w+lhE-|lYJt3Xe6D;kUGkt-hn&uTQsmRhi0#ETn{s%H0`z6gEbKk^uKh+0I z_2ENd+6Th=kWTf%Qhl@btnX#%AL&%D>3<842Q2yT>IdAb7=gYzBx z|6AOjzelx{^ zo?&S{HyG;~`u8I6|CF@go@Gnd6KGes?`ZXY%=N-jy@&Y0{(<;VeMqPJVDFax&P(ib zw6B4qeGTbPzRG-<>2@+sF3OZ6XW^c(5a4p?eOqtS0@t>56N z->}wxV^gDf2TS#K^Mm~Z{h{@VbebQq_sI4(`GU?3_EhHIhfat|yDMB4ND zdJy%8`xw;&Uh|v6ae^hkJ$QeGCO@#Wzs~i8al-!bu=EeVzn2#J1-6>scI+3H{NjrR znt#wV?yxlO^LXCF&(qQmG{psaW0c=Q_6tjX@#PzhCwLl9q~9vb!P35dfiE7E8vTBf z{XHWs(rF!`9PO{LTKn-i2dyJmswdmnUy)Ajho$}XLO+-{@bf&^NAnZ)eke8a>0CAI z8O!y+Qa!zleFEvUPr%YXF+Z_S(0+(<_#@Xx=R5K@OO1N4L}{F~e&O>O>K824*PG*q zc2fM1PVs}K_+4bg4;;l0>0$gd|3&N{mi!-SoYzRF`2@R6w(sJ^c}?RF|Fr)iovsVa zcww`q_QR6@K1RHdPVs`JcwLf+7tL41>t&A1+tQ-Gzex*D>&FD{2Q1Zd6yM)L(>jNx zb-ut4&T+K!0qMtVF9x033rl|b`a%CuFZCbk%Vjy(R%tKwgZ%=2)=CZTJ+>ck{y(L~ zK0((VDEDuvVZZ0}pV_8+0Y}%Z$fxU8*n>H}J6o;aJGi~D)ZTu^{6IR*4_KNXml^W| z@uhJ?yJ_D>KJC|N?>n+xC`bK){g~VNIa{qAUvWENsU7_}{_sojM>@qHmiCp){owu( z`Lxf%u91F`PWuV!r~ME72AK{Uwu{Ce`C9!r+!`bYOZ5*h<{8pyp25;QYe~$rr(`+Q zPvOI=%H`1x!u+;A>jeaZp(NO|Ra`H5aMXUJ(>#N{L#AK#Kg=`ahvP}}4CQE^!G0{uBmUt$+bK2ry-Ql;?`E4S z*8|e`VcUr)f_*J51oU`I{mw>595TXLGjn>!A&f+ z7nbVD=W#-L8YiUFIKkc_%U_e24_ZCoX+JYN`nQ?K1D5I=#QO|5+GmhX`wZ;u($AvA zJY3E7(Y^wn_7&uBlIfUlC?b6PkJdNrKRBJ@jC{Io#`u2A+z)J1c;4XBmF7=Jwg<57 z##ZYG4l^1jSn9`Mo)2i(&C)N@X+FTxe7G)g?qUj4-2TXx_9x^6rGEU4%hUA?5%Z z`Efvpw?Tx?J~VX2+R8rLmIr?|sX+?N>FEm#NPeHzVwqMmqHycDbzQw#0S! z^HO6R-jEjalCCR|zg22;UgE=EiZd+LGt&6H9_h4>VegXVml~gQg!RBuJ;)F1p?%J* zuP@gJOZAO1K373Htz+1GWPP`Dzt9g%8R`$sFQn7wSf>9z>>rl=k2d0lbc!47a_R35 zKlok%{$FJOG+&VZrqrf?3?9V`mi!kPpUWYg<^$~AvizOwAM1Fn)QHnYX;I%M&JV|b ztJEmBjV-NL%!{w2hW(!HPn_?|{U1DC?;)SgS#utt5^66jwRep1xi`{j9m7)Gm-)f> zsc7F?Sx?wrSRlejzSdqOQhQ;|_Gjc_=Q6G&P@@c(7YxRuhdSI!Z6ODS1PW8Z2J@@<% z^&mg89vr$2vYoJ0&q>C03DR%neA>_MlNrv*e~sO;C6EUcWkwIyv*%{rFNG3!8k(GIKt9=`VD_CigwXC0*x$c7pf3G z1kEd0^Bf81)2GbQbuPI7aQSc_Ns~JKydRq?#SfO+HI6^$fu`|=T`u`n{(cdSKXzjw}rFOwmyG}OF3#8M&1xxedzQp$+ z;e98KAJXZ3LOt)udceQO_G7M>#t->)UjzFs=Tp1Dr^tN*>2zHVtF`kGp69UC&Qpx_ ziga49ur$v1C$1NMFYCeje3>oHGsO3AQiG$ondi`IjteZ+H{Q4|Mmp{5uoRyMcs^mi z(|m$|nm@3#FCm}mL%-ga^`hK|Y{R(hkQ({B*zV?hA>#r*jLUu;CoMi}xV^B{-cyZz z0O_<3z|uajBKbaWm#i24Si$XBDJ{yaVoU28?WBI1;J5`A?shO^x(7Y;jnV#`m;j3)zlh zJCl)IlIeiVM;~b@YoO5Jx{t&l{xs`0OuTlErTn>wu z_%^m!ccigS$YOrex_HD3>?*d8v3;B^ewmcGHnvZ&{XN@1uwBjeNw!b1eVXkWw$HGA zmhE$F*Rp+{?F(#QWV?>-OKe|e`wH9jZ2!b|1KZcwzRvc~Y~Nt}Cfm2zZesfvwtr>2 zne97l|Hk%Rwp-Y~$M$`;e`osv+Yi}(#C99of3W?S?I&zMW&2OIpRxU%?RK_bu>F!P ze#w}|Z3o-0+3sZfAGY7H{g&-6w%@b;f$eU#KeGLa?ayole}C?=^%LKxPm%lB82){{ zA&GP2ESWwcCd#E9kVrpM>SKc6i}L%&#B8Z?{m{bp7PgPFeU>d<|A50*NBp;J50ck2 zNT=`VV6l~vKAY`aw!dMEDMu~-0gydkcb&*{l;{tsfTWlqX>-Y8ve={XNGA7QG zHlNeGB=Tp-^ieTUFKt0g%$F8^7qg}IW*YqQ%;zL{x~@Sv;yWgInm=Ls0f}^KS0T46 z*GSKc1=mSoImD6pCa&c6(RBd0`&hrm7Dp8I;{&!dFTowgal#Qp`PkaYPG(E( z-#^hFT0cd+eg-Gfo21`iF>$`MeewI6T)q#_D|`h*^8!nV?6GWH*lu9^9^3tR-t=VK z!giTDpUmq%IBk&i59FV>!1|)=MA$7d9TrDCSsXcJaTL?_>T%K{pZX1Z9;f5zp?n-6 zWNF=@-u|*bu+%SDTw;j$L8zVZm`S6IKrwtGh4zld!a+qrBnVS6LnHn!W?9=uOb zK8x*9(xRQmu%5)Wob4>mzmoNh(xQELvVM~7T4~|uRkrVP`nRlqV!dC7fa}FJS6cWx zhV>+AF%Rdky_EBR!}=k%FSC7v^V9bY{PvL+-;wlXu7RDE(P8Ab%-Zj5#rn_PX<9xH>B z)GaMY(o@XUQ{NP^csS8$+n!4YoVjx1Nr{CMPcr%>ci_a50|l*>f>t*60EqB0+UOyQ z=_yfbvA$`~r5L8^D=|#nV$>k<>fdz%gOa~n=;uBok_J$+7o`Gi46foU_FYMaXIn+DdPz|2~i zUEWaAm~&?3q~f}11?9z(S8Hf$uBxh@PWbtAWnTHT3rfmr^YezxE3GcimnkZa1{IGi zMWccWhDo5jGQaxN+KRbF=g%HeenCWuaoD#S=TV6<6J>sR-ua_)=Qfp`cY4i`^1;z1 zM%B-y5|bOLMDA&4oL4okV$>NEqFW_T_MlB;b7c+rGjcB&cK-CaO|z=YDM$O0`I(cUCphzC)LUZ*@DlsJJ zbM4&5GwV*OnK!6xaJd{vEv^&FCY6t_pEbSq94az>NFMUbXXjVWI&t=#u@mND6lDox zD9YwFR2T8+jXYK6m!C4}+|$k*c|lcW-mpDKZyJvB@@X^ksg83-Q-NuNrx#b|ju|!c z^oYQ6fw8k^O`|fW&Z5qrKc-^nDftsm$Q_+iexmfEwu{S@%);d%6`FhkRWxtH>2s>a zRS!F*DtFJ8VH(!X3I=4%T&m-=obxMBD<0E4@r-y!v~|R*q@ro2mOL<5u%1~lEx57_ zE=}oTv8tlELevhVv$HC%p?O+mplYk~>MPF;-cPG*EU&De3sK(`ZuN7TYRYjPH)w8O?_bQWc+&FVic~#v!2{l$Xm(QuF zlW!Yl;~zJwq3OKx>RIPeGJ4rqO>bv{2y2q>aXC*{dMGSqSebmEsBC8C+(aR~51S{` z<0bHZT1_>snBYn#md~u7Dc_%i=1s3{Y@*Ih$JKtALGR^&0IHsoXqJ56gljiW#<0n^ z=xn?VRkckG70uIXWO^mWpX#iTw+*51KuG8HO>)@CG|nM|4JEMCW>DNDf$OUB`Z?1n zovv}v`{~$jgPWG%8Vei-4`9;;k_+C;PD0EK4%1WBVtl5YD)Xn;Rh-i#-%OLuZIpKk z5Eav!Yv)v#myI3;6v+`iN@+_)u@BWFtEY!$l&a8 zl!fA>YYh;R^|iWCQj zV==-7pY+m$%TaH7NF4pt28XlX^q?L>(ud0_#6Ebl%?|f*Sv>hhzQ=r0iqqAIEbekS zV$?2YV|XM=7cOUFgp0kIk6{ncguR@OiU(XUjgpr?vJWoTKYR9JujaGTg1wy1iif?M z&7lMRB7)-Ja1~+1LA!d9K3pzeqJ7|!Njh-3W-=YbugIkXmrHWP!T(}a%1_$%c1eb1 z_hvm(+5g32jF;b=l^7P@%ViiA4{uuJsJYy=@Te)p_ht!)#rJCchK2WX@rK3sZsk(x z|JAZpJp^|gzi`c}4u1K94NC9rYNgV9vsA+qQ%PZ;mi3iy@1z9=R8}EFV4x;^pac zDLVQc){xG{bvEqBNeYp(Kn?4I=w&bO5v6m}KgTu*86ZS)KB zto@Bo^r+D<$gz!nL5?j}`NM3n${%WrRsK+0tn!E0VwFGG7OVV0wrJ!R*w#XRzAYO0 z`POLUS)-9_jYh6D8acLTmHTQu?p*`kqGVC!#QzO}!3 z*8b+%R!Uy3EgHGQY(2^yYU@$%5Zn0X4zcw&cd)I$xr1!|%^hUxZ*GCLzxlS&&&{)q zer}#MR=L(#c`D{cvd}Eb8IO-IqjHm;gGNR7zAS0rBnK3Bp#HNg)5wWL?ArWy8G9qG58Br%Y zWken7K}JNJDI@AAr;MmmJjh7a^Qg0%N<%=4m7 zT`CcE;075H|i{<5>e-9kddtC zQRgR>$c?zV2r`oOJSXC+LY5eoWU>!UGS`PD>GqI_D+uX-aFQiHI7y!eB{}*FlJvMB zNr&^3^fxa_e{-YyE5F|y92x5%C#r7BiHx?)859|B%8874kP{Vi%886R8&8@^D+7&tzcNP7!*W(E*6xD z`b>;-lEt7P>a(z*Ow{LKK~B_XV4RaI1_k*^V-WSJSl})4TAJb(c`;2nkyq0}PO=!} zM_y0MGWn4g)RYr>MIGcMi$Q+mH8quqyr>RxlFfts$jfRf6M0=7 zh`i3GGLaYBK~B;bL|$skGP#l0+CfgT801D?ZBv=Z%WcYuyxtCSlEol5@`{_vL|$?S zImu#>8+p-9Wg@S-gPf!>h`jEmGLaYFGAHuFn=+C`Ao9XnmWaIYri^6WkG$}fB_c1p zDI;0mBQLyViO36YnGt#6O&Q609(my{OGNaKzLOgqwJbO%X_=^HL1hL-Eepi3m-Q6SXXYoTz2NImu!$C~8>*Wule^=Om3m)UpW5L@f)-DTrDZ zoRcgD1yL&_C=<0bI44;Q3ZfQAP$p`1a89xq6hy6$piI;P338%V2A9b4=l!>}e<(#B3h`Lh^ z%0%5haZb`0MBP47nY^gmrywWl_K9QiMoB_oMbV` zi@JRZ%0%5h1vyc-Pn?r922r<9R3QiMo9X za-wdZI44;Qa-(jaf-+IJPn?r922r<9L7AxAC(cP0gQ&YFDiU?`L>W={PC-Vp{zu(8 zQHiJZIVTsH1|jqRxsiD`_+aMV%I0D(bihvyw+6>cHSq zQ71;2l{^|zXGTz}AnMTItf*5X%t{)Kf~a$YOGOLB5)sFNhj zN*ay)sI!DiMI9z#R`O^>9Vc8W>O2Xvl13vh>PQJnhD${qF=1BnXha<|Tq^3I;jE|+=fbR{(a4SZcrGZF8}<2In3Xgdxly0c zajB?}=)$a|(a4SZkd8}5eM-k!Q6JNVS;?aj^+6q%iuy<*%t{`Os1GHAQc)jDa8A-# zM13d`l!^LKBFKsQP=a%k#v$rMiJ(l>hZ3BVGzd{2N(5!1K9t~`96Zz@cyvLN`h=|b zv#{tPDsdG&8--;2saSCp&x}9%3QxmAZd}So03|dYfFhrQl}O;nvnUDpC3?A zNhR^0r4Q;yWAQ{Pes+fPG%6*9pF|b$e2ws#RFq|X*oJ)ShWa#xxTdF7DJqzz496qM zIv#~k2Xhoko1&psXK0wFPtY(`pPx!9P0vu%Q>dt|RGrcqZLWsTnL^Vz=M@8{Q!H<#(o;V^M(*zE;hCn8iI-Bu~CONm&`t`ZYfYN7e zCL>#&$Z@Iin8v}hM=svWCq~IODtlQVj57R`s1QxG-&_ab^PVQsGgc%Y5Q$X~rf7>G zd>YiK*|l|5BjZm*%+4+=9#>v6apatW?D5$}*(YU>%AS}#eoXer;iY+brrQd zn>}fGX>M-zM5Iha%0#4;j2SZq|34%9w25OTo<2DH;)!J^jXtR;kV7DgOS4azIDX{l zG1+5AjU1XiVa%yRv&T;uGjVA4n31DO=HwwN`ZKBi|7w}msDT5gguiezke<&N`S2W2 zDwbV^Cq`D((IJ;zC9<2v$Y<~b%8KfW%39&!8KO3f55<_b8_)B*>iq&w$5&;ZK4DZQjr8?Dza*}Yl23MSfJKW%=f|KW0_(C?l_A$6Ra8cv&E#`+hzRQ!; zyUpNMC*j^SxQ$7;XASOCaO!y!_TzgzBV27?Cibr|Pj(c`o?c%VTvu>W`{V}(*B=}n zlOBJC{vI~kR{$<*9ld4vYXH|d?k&;2+YEm#;D#z(*r!VkZcUPU<=+lacyY?(c1SJIQjRX!WZ1o z3xBRi;L5^EVZ-%yzrn2r7qvcaG`K#v?pEhP=x>g} z6@iP|56&{U)4>f?+84$Je-2ISM+>;9^)|rZ)__A-;;+!(AqMv{IQ4uBxm1JO3NGsW z*nt{=#;+4Iv1vrjzbytg0$g#tb%}lQRfB5*7c~#?=f|{qSAdHew^oDeiocyOJ)+(l z4enxaSrObN26q>@sC~E2;M%}N&A-<$NHTud2I-Z)pMD;N^J)rmB^SOrf?E*^*f6hD zc`vh9gPSVf@GIm@e_i)?^S2h<)X*7h=x#|5rF~V7+$u+IH#nDm6n1gz$6|0U{x&)K%f=#d@mJ%> ztpw*1=Ut9m(E)D$7K3x?$0kRvD?Su(@i)bhTkgnhbL9FQxhdrm$*y?SLU!^wSk-Dz;!s(EzaW|xh0O= zW=F0YF4kP)Qs>C60jFNSBs&*U4s)xw%#mw#wB-$F-j12~uQ?Rtb;y;H!s z_*((aC4Rdc{S{@qwQr##x51I?*vqZnGH@>aZFThbsUz3Fw_CmQ!MU7A8y)>+9qAUA zDo1XGBe&g=%fU^u%XLXJIG6dn*3ntl6I~};v0YYqY;Iib0G+`%|w`M=Gju!OyX+xJ`5tG{uZbJxJ z{H@OsVzUFcJQw%;4&0diI9P75Pbv(gse7Awy<`C!gxJg;%z|Aee z=e7>>dHIQMaanSbTl?mgx^Yv+xy`?BC%dil%u{e(;?UnJTr_QQh+pBUZtHEt1h@Ip zXQB{09O~^_<~DAHr@4(=!Rh!O)*&ua&k&;3p?xWn-1@r%+*SvF8z;N1kJdBs9gjml zR-EM)mt{D(KXqtd%h_)8x#m}H{>GQPwXbNZ+dR#xaN~A^b2;C-PIH_0nN|3n#9=)8 zRJ+ZW%;|3P;8Sob9mZ|RIc{8GjoZ8`s&(Uv&voNUXSl_0YMtA@F@7e#_j4GJnpr}u zcZgq3y<0yD8t`)k4)qqE=hnVSjc#$NYjRshQ=8q+k4dxL{FTmeo2OalyX_k(bKUmc z72uXRj9bw>x9|P7gTp0${1px%j&JpLNMv20e-E3CTMQ0ISNxTX+Xk*BP9^Fx>#eyk z`f~=8TMcfBgTK=G`p=&xYu{>c3myCwUKBlUX8X2*D|YbL|KjNTZqr{YxD^imN-qHv zc2aq3`YT=F=5HssMeq~8Lf59h1(!yDzF~43z#-J}S2BOamqmYHVftGR&Lu9zm%H_2 zlOs13li4LM+a0;NSGf60xzcTYl!0?;-&Sxg^R&-ZZtG(eIG1%%h63A6fUg&C?celN{>Z0X8){jz0ZUML~hkBQTi<+nAJlF}Y(7|89LvH=3 zapaacavL4Fl;66wZ>S?z2hJtViyZx}1?MtPH#ye3)3M$@E2HlR&3VuO&Sf5~0_QTX zQXY2mR|L*wzgq0bZ2{*pZo9#`tlz1RxXr62j@)`jZZ|lW`O@)G{rB^d?aw2?)i|v4 zR&Xx$t_J54=gr_;=2h2KZrmhCZYj6|hyHE=SLDETe9WzVBkOm zF8xSZ?Z$O=t4AU!d@pmW z)(9~+fyMJo?jdl!9JoJ&JIaCE1?~t3?$Bq1=AS5$9ms)taq&U zbH{o+KJV6#d~h!9JHyf61>ky$#LMHi=Db?wSnpa#ZW}n4aclR2TYvjGa;JcEskafF z%Y3;FT+c-KlJ3t>f^!+S_rSTdPrT^H9Rbc|KP>_0(%)I&T>5bnIG4DzIoA7*W4%9u zb2-m@uX8(p$ANR%C(j4xQtxtbF8la;a4zHarDMGZz2sK!@!+x@=JPagM>ud-f^(S% zD;)j(30x0{dbfjf=|{(x-QqkLoQuCR!MVicB5*Eox!cj-3y%J_Ir?k&id&rffXi|i zkK!cU9k>tZq?E4#mkvG2$Fopk_*qK4m;V-l^CX9K`D#ew?`*^0VsIV7OMiV7fARYd z_O~2dYddmH|D(F_PTnJ`^%ng(`aWuk!7Tx|g?&qhp}#&x`x@R%wC^xW`xbypkML)< zZ{a4l_H71NBOAuAuzfq*>*G=Qmqh!zS=u)q+|dy{_55UEr$1#=(Z|TWqv%%9cd?dRy982d*r_ zpV_{(;G*vL&GzjCC!fI)&_7RBI+$gnmYf|zi^A+2yk;F{0%YM*9NWwI2o6o zO8d-u*E-g_6I^RVy{SgMOTSFatHYIg&A6-t*R5T`VYt7T?OXpJx47&Ew=i@9x8YlJ zd|SSa9^bdo7ImGsf(ys@NJ~H3z^zJjBVMoBkE&g6=YAWwH4*;qGuqeiT_VnhSlZVD zZmC0@yLn#Z&jXw5Xfe2z5$Bc}=Mm|i_I%86JerMuEC3hoL)|U?SORWIY9cV9KQqpK z_VYw>n5oPIvmXunqu%}Y^k?>?%FMeGtpWU1S*YclvUAz=rYeYZ# z!kKkmRL5UM zRbG7FqZ`x)EOGHI#$4sfz{zyEzl432`hA0&qWF{DmaOE~8(f{j$>|kxZ3Z`A;n4Ir zcbCB}Qrai$3;iuJxFw1|*}ssRXK<|whg*a=H{Iacz;#8wjLSX>cbdU%Q2cdJxG@H| z1zZ^CeHCty!EIAGIjzHf9By#imGwnp*SP2qfl+obrD zpZACT_!4hae_IqzUO$E07K7WS)GNP_2)S1cZnxquOX1oKE@gTm&OH?F9)s%!E*#&U z3U{5s^#>Qm?+Ar!GPnYT%T~C_1~)?CdMVsUgDXIs;7S$lNQFDp;K~%PkHWPx zxGCVmd3uz>eT~gu9p7ffUtfjWYH;%vuAjoaZg4FM*I(hDGPp%b`vxf7g9g{C_{&we zn+wivS{tZz$`PrB{ z9tGgC*xyiv>tt|c;NbO@mva_#2^c&l+5- z!r}5Hz8^ejaBWJx$0^(rgIlBcJ6_=~Hn;(*Y5;{ z+iY;%z-1v#_G6;Ly<~7B6n|w3_qf58f(ys(G=*DkaPz?xB2CtNI&3%|*BRUzrQS0X z?m~mx04^NgNeWkEaGStoAx+jhS>a?EHGVt6h5a~7;pE&_x$JWj^~!t7upg$s{@_A? zXDgiPZ;ImYR|+Thezo2zaN+otTexP0n`+@&6t2R;Em62i3)iY}(=1$@!c|$gbqZH) z;WjDUbPKml;m)yeI~7jOrEq-B@kp7G7>`;Dm#J{)TDWY5n_=M!6t2#~6)D_I3s2W`%38a4iaVo`qYYaE%tORpFW}T${o*Tex)!H`~H(Qn)!5ZkxiLZ{c<- z+*}KnQkR&2^DJDZ!d+nDvK3D5waMmvfx^wVa77Atk%cQ$xQi`ZmBL+O;hGh0frV>P zxJxbE5{0|W!nG>gh18OPQ6Jf45t>Ooh9{!euMmoffV@;g(sr zB8B_4g)39IyDVIl!rg7*niX!jg=Xt%chOZZ7+K-on*2;rnFfUa)X&;HEP7qJ_(B_QZ1L z)>*hVaJ!g$$-=Fio$&Xvg)7A${0sa0iiKMTF6{4m3)kU%kDeDK=fSHMZa%oF$d}w7 zE!-AxE13I}g=?9c=*I>Nw;S97_V=2Fn?En%?{y2e6Wl`f_h$u7B2e=kDene`|+uT+YW9a@+J3A3)g(5C)P6enT0F3Dlwlww{T0qh3jLx zg-cnOh~F0$t`6K(%t-QdFc z^0kGlx;7ENofd8rxT(mOaruvhD_E4^zOisiz=iw4w-&DGx2+bo`ryf9>%v zd~E<1`uh%v$+-E~C*t?Lh1(5oD)ME2f3R>L&}g3EWcT z%l7?j;p%QoaPo)YlEo$ErbNA-gvnTuJYp7Z1GsSCNU?BbOA_^_TDW!K z!g-%&;ric_*zem}xK?oCyh^ulWw$2U*WSXdQ@9KZS8!XRefwCrmEh!Bkn^B}g-cnQ zh|9hft`1!2Z$AsS4%~RIcYh0)d3$0VbyT=wlvUSnGdNn;=tpM@H(%kpShyC2%d~Kd z6z%{Ew?yF%v~bH5?jQ@-s&HK`+)9Nz*uu3bocvqi;W{_tyhh;;wQ%bcuA7D1pm6xn z;H33#Qn>CGZi~VlZsE2mT$Y8~u5djp+)jn-Y2kJ&+z}Qo<&MOB&bDwJ6t0(r%T&1D z7OtDZ9ckgR6|Rqk>#uM}S-1j)>ucdgC|o}aSEO+LEnKO>4X|)!3OCTgO;Na`EnJnt zY%?g)i;pQt`zJ+U1xB?5eNZ|%qxFrfV*upJSxFHsO$v9Mh1;TV$6L5<3Rh_1wkzC73%66@Mp?Ms3OCxq zrQDg=|B5VJ2ZbAB;W8C&tcB~Qa3@%}Y=tYfaQzjo#KILQ+=&)$gugBn!7v;U-(SHibLW!mUxbvn<>?g_~mGHYnWL7H*Tm{mQ~^QMhsow@u-u zTDa{BS7G6HDqN+7+pTcZEL_U6#Qs-h;W{W>wS~)6xak(Io5G!A;j$I3M&XVy?#ucs z-18Q$K;d4na3d7%MGIG?aO*5wslvTv;mQ>5WeYb&;a;(DRSLJ>!qq9Tc9rf{1r+;)X~$HMJYxW8Gr-3s@vg-iK$V*lG>;W{YX zdloKJ;oi4!-4yQc7A{-iwpzIU3ipA9D^R!(E!+r&`^dr-Dcm*-SE_LTuyADx_pybW zqHv#BxGIJF)WX#%+&?W`v%-C5;pQvc=N7I-;kH}2MGE(YgD%?*NuA9RBY~ivMPCghR{JeON>pz9_EL?%Y z`4(=3!o@6Hk;0`|xKf2nwQyw$muBInC|o-WSEX?BIcLe@SEq38EnKt0WmvfR3MYT} zF91As*I(gGe=EWD;r8Vyoat|q;xAX>On+Mx ze}fdx^p|o^qQ8R`&h*y-Tt{x-P=z!7byNHeQ#jLKHn^_r?^p{rLg5N6Tp76Vd*>pB zGuyXLY2O%yGuyX8skg+!Z38!#`!P=8%zCHXn~3wt3TM_^1+GtOFi$5aoat}T0||c< z74BfPC5C_DYYDhR_X$(OLA$%^#eXQ;?IFGbAf3hf;$7=jP-L9y~ZJD}PY_5E#6sW?V9+bgbuvo@5*Q z;9uf3sgB;K7Le&9p2JVlHaxNKSkb5R##6re`MmVfg`-m5>{;WD?Kt-5Z-4qZt7c3? zO0j(R%%=^7u+KHfAE~8R!xJfD|Bd^OyJxP~yHCw!b8j5g;T=i#sTtdlH8$kasPwm= zOmFBxX};9*$7n+zV@1{hW3w8(o|O&vG)$ekeCpPzSryAK+j?2n}X%J_TTB^`LF#RmyQze7I(`m zX@B@WHT63dG+tIX?dya5jH!v(2hscG|IhkDZ0$&~XkQ}wq)*-V-SiWG?r~|E*m1b; z^|-OHu+u3!w)XTtUm(`*5}i5*W4%pm9q`W`BfF11XzYTq9maOr@$>%TjnZxhQFKy8 zpN;Fj-aqTn%9@rB9v?Nf&)6?3WM94Pj>Vly(zarXecs|v*p<@1=VMjfG8Qfw_02mX z8)>3&SIU(3#oHUi+^&y#9Lpf0a*TIeYW7aHp-<_Nr}R0wM~&#!@v%S7y=+w08{;Ul zJ!*<8DZ(|+&rSRMQg0-DUwZE0)WWQqD=LT0?ev)FA&Enad(b$FtX@;4K78vzCG8h3 z9Myeu+UE<>PT!SMy5X^`VD8iZ$HLRT#rK>m+50MoqOGDwkl$l$I{6n_vb8^F{UCq1 zFUc#Ie<`BF#&+Y{6(2<{II70WDpppCI=T%{bRF05Sl1IfFI+t8kj)33C`V*G+SdBm zJq>+omSc{0+S;e)(uPjOg*6N2E*y2hJNs*1MOMbvpR*dC30gXJuGc5!jbJ6pehB33 z*-#%d9NPs}PeXj=jGQnoYxL2h`}NBjT|cv-wywIdf7YOZIr&*8tQ7B%bTjFHP_b9YC=L)b>-}HvIb1c8c;uQ%IIePeU=+yUeAp(`4uH62?!tGT-I{QAZjSp!Z%V#(;?Q%eE-dSD5x|d$Y4}kBD-wul3 z?s&g9KIFAh_!@yXO54U~1dSWDPjT>OZ~SM6&S7PF#eZ4cKj;0@xT?N;>%LEM@ty9a z`{{d(SvrlG8e92(Z~88;%feSB-Y9+FD}UWWXRyuqH>%48EooPzUYT-LY$4{-|Jvuh z{~!5O`@J4M|F`|lgpcsmA8$r>xwu94SH>W?_DadnR;$a#<%y!<*q7wS5G?ODd-Ws7UTc_#lFZbRK7}X^d1e~#h=JKOa3Yp zy;|}A|6-fM;2nRz=hdYlzE!nN4HeDPYJv;ll{b%;%v^B(ll5p&tjrs}%s z!s}SeiztMCRbJj$-88!n!IxRy_>2J9^51Q zwkl|{s6n*L2@Up)@ztCA2nA#m6;HXmM( zNcGbC`yPBY?3K?WVxI^7NsVP346p4DM2jzyZ_N+@fJL*b}9Yl>! zMaz5R9d!)8k7VDad*wS8dr0~|6tm!9jBoc;FO&TR*J!_VZVih4PWpo@bbL_k0t|1g zqik(zPlQQU(HHGUeuIpf92<-hx|0>}QEDt5iC%0!S#+N4r;K50+MyDS&4P>A0dN#= z=gPh6_ldF1!T80{(tdD#qHL=iOjLUSD$VMO{~ZC99((iRw0^0nnW>#qsQ_OYJ1zB7CujJ=x+Ou}fs%Fd5Ti#|}YjG2MbWux78?+c)-I(B6a64np1O zU1);$jh!!B(xFRg-&k{()Psx*_~(}Ycx@8h6kWIi_; zed$4sM#!5{#6un2{_WKMeEc7~$^W$HU;`>1S&EN_2J*EwZ$Ssg?(yZ6j#}RJn8UMbxi0n|(7j=|&MDQN}PrT%fm1NbI+|R@EJ%jfhrIi=gGF{ri zoGxvYU)4unW~Ch%yeFH(=`it^S}qHzsIQ~6!H#heS#C#1B*$MJ@Ghz!DQNGlw@R;- z0TC}X7P=V!@Llax7@3W?_<#JBf_KuVwDMvQ@4Ln`@kXWx{^h%S@lPe>lcny$KR8_u zBeMr;nL1vE-DKW#X`51v$e?DQis832{umPf!Ip zL1CFXvEIdf(xp;MEyW5*|lheDYD zHAN&+-7WFfR*lg?vtzdnPmN&6H5aO5tYVB$O&+&%rsrl91G7BM&03Gp_DF3cQX?a$ zqTTyrsdRIq$1-g!l~h5k2ugOfrVh0xRMv9_WG0@a1k2PjG4$lK3T#f(RF)(#;hgcA zg{KmVb~m@B8`2tU<&uO5mx7g>YU}A}Qdw90M0Zzf9JBNeA+51!s;4_fyCpA^_bi|IH_EbF4ek6Oumad+r_E>JgE%8I~mRR<7+_Q#W{ST}06r!%F>DVk_brsJJpL#+c!#N6nqi210Q=y*(XGCS%G7QO|^g$!JTxnZlUQSA@6@zf9>_5c0`|Ah_tM zf~Ixb@jHOuxX*k>)N{$VP7k*XkKp!CE$HpugI(Elvd8cb;-Ox^HTyToaCv7(@#af- zTt#Mx;&{B&&v`tV0H*z3?%wE+@c1)<8Lpg^NF*CY`Dr7(CeZ`W9me`KiDY%X2s|i^ z4d9XYf-p9MTU#RnUlc|qxa56G7**ib*NMP$!q@~Zd4DL3&1(`(@f6A00$*2GJ7c%5 z>3YQ_Dgr4Z(c075oDhLt!`K!~bS2ZNc#8;JYZ#I8iok1vIK(((7}WtHx?@Rn8H}hY zue#`^7?|pg1P2GwbEp*&__=Vc6G1t1$b=DOOJlz)$WtMhe__%coKBBVo)CeHF4sB_ zh#8aegBmiaQcwdXRThNR&Gn~g&Qb)54A;7)L6r0G%<2Ad3v+pJ`1J7P+^mGG44&y9 z)5PlF#O!eqcpk~FAzcSgq(^4@NgAmi3SvGE(uS3qYbgh(X*Lworkq|yklUDKTnh!l zQi=$?0Fjl!Y09Pu^dV#m%K2fV0!3JXa!n+-ypUm|!&CJZm0u#+8Wa8?mB|_4MG!Md zRKO?^MExrlqA(=zmdi+as($L@I0r>(aAa&|c21Z0c)#`=!NI9hFhf=1bc0pJ?S9Dz zfoNaBlOk}VTc)tk%_$rdft%e%pQq}45mjpP0Cbu;H7NowB1a-f)2Zwwr6wr~K?3L9 zM!%=(C5qDB)fDeUB$;&?D^o+B;2cdabLsgY;&BooqXb@Z8^=9Wf9i*jUKrC#r!oCk z83~g8J4%)k3Eb#0rae`!EkL3jpqDxmwOR1k>aDqrWATp9o@oT5qRATv%$Njz_+|)LUV&;lvD;}Ltmn}j10W&HO?dM zCrS~QqpD~te2!>n_%TUn>Y%1EGYq4b?Fs7`q}LN17{@F; zw+Cupl!YoEWFSi5sLyx=H+WnT{M=$A{-Tm{Jd2t)Ai7y$z6XN?qZ2)0I+=<#A7~As zQ#QJYPB9}?TQ7`9jdVKI-NVC>$KY>`wkKmWu6f+(>}hWgRaVl>bZApmC{jfa7bN;1 ze)Le%gpi@-OSMQ;{~H8S3R9OnCdFp1P;5)GBcB>CKP7^FB)(=lJ!g)oCF8c^om1*DiHVNM0#!l#=IZX zp@aZojYGg!0|Fl-_R}U>iNYP5XI|gV zzHF6hv9I+o?pSv>Ozc3q>rg8VTQ?|HYrM6Kc`&<;ir3N9%dA=q2%5Tj(>xweH-;kf zjS+cac!2TS;CTPcFy8OZS58k&jc=i1+k%!_6~f3OM69Egm6gP;+FV<8eO=Y2N)Fu| zs=ZklTdV>aFOyJT=aA4)b$w$-LJcHrmG7mIzBT#)Cm1rrLKe}LD)4N`k}YmAIFk@| zB}bU_#pJ!9Q1}*8eN=KRHu@dOA={)eIMo%~B<=VIB4d%X6&e`I9{*EP8EY&@dI&ac zaUE!@CDP6kRy(9G-=zf}R!D7s^b(NNFs+Z?F(`|}rx!|!csc`vF1SGRIVwGHX@2Q2 zeh=Vh=`S#_Pu@B^H#~7wy9DiO$BWW~ruxf)UAgcDvQ^k42IEx?GgH9NJikx*-w^MNHmBl;_XZFhOp3csA=l&4debwP;Je6+2 z!#uTkCgQ0>G>@>EiLUO@b~IS_M>|_WxFc<4A{pxlH3(xH6X-QUjl#HI55&n-^U3;3!+j5aH{*8%kxFAIJEB?q(s2KVwrPNcT8?)JrH^QtQOJX_#?Uvdl)rgP5|%*^H2O zX5!}@sB!$Lt{4QrtRtFTx&^;6{0KpB-IdO29>jbLauugRWM97H^9EKXEJq2?o*v}V zhc11yqv+QAV1UPGrcO=6FHQ~(98c48P1zo3YZyB}>@t2}EaMs*OrJzncnB5dzdS+< z2NoIfd6j(fX{tZ7e1sNR7=85Qz)|`JYt*`liZU8Q?)r+$cvb3!`x@VD=w-eTJOA2c zyv_+@28shPIiON^iWfUS;5L3{15cfXrErRufg!vg+chi4X1npucq)#USM!NvH}!w` zScEQEZ%eGB8NFH|K#>S55{&;hm=Vv4Hv6}7Cnpl*&_;k7l zQ=YNj=JuW>ZW-xlb8{@23<=|RjLt)dk;II7sv8d+o9K~aynhbs$9c53sS0u+KL)j` zs)X@j6W<+c?~1nMjZsH29yDV#_jGs1FmIbLkw%JgUPi$zZ8tvxWzz?x1ms5)vN<2J zk&wTukO`Z_Mm$@o4A!y0PbgUD+ZISmgtK=+Mu^5SE1katTO!Srxrb$hILT$bXHC#uJ7`S~VVx2ANc=y4|su0&OX2_+2yF-=LyLQzyLX}TzAdMF) zEA6;FdqOq!RiO&*Qe&j_g-lBMvngX>SoK92gF1oANnI+5qmwtI6eIJktvglqp)DMp+_Psp z@vEs!D<`3GWWKr;N`FNP;ZiV#piShC@l~Bodz`$fJY{f)l+OTL*P&Ta z<>^x*F|>q@u|K>CUcHy!A*W&x>r4Z*{6d zVac{rYGZmVSQ*pN+3Xao8WdiKJT6y}T9?pA(G z1yxy+m_0LwRnn#e9-OVlJynifAHePM^Pu!Vg6_6*JTwh=3cpGGPU3e7Kl^xyADsrT z;!7bt5jNZSHKTavV${>|VXTJ3D-yMK*D_k*wY+_Ev__U!ithLeqj-Rq9CH4#=JzB9 zNOF0&T&|4#Jk5Ff1N=oXWO+VzuGfPGDeGLMbM6S?*5_%0%jaB(2a$O;0bw0%gVY0J ziL{Ppw3I=9l+e$p?sYDYJM8wj*Lytf4PK9XqtD~6Eb_Rk{2uqF1s)GFB|`YgdVU!` zTFVb%(jd4%z+j>D^kS?P*DnTqE&OiGoGptl$AXKnC@I-f;>Jn{Z@J<2ulFzUUgIw} z0!En+C1z&{QIug&IDk3|_Fm2q&4?%^6kC}Tr9?9{qSVR|VxcApyhsy5EY{wP?6M4t zz~vhR+wIza_;6g}_FK@)g)7MEaDn;|^N`+XfiIS3qC8ZEuv6$6d*T7EL z3x`U7J$bMwh#VKBZDbF!RawRXRZEaCvV|JlL|*c2mOLy;U4ndUT>@3GBxniLzn((s zN+mub35rpz`B)0Q#321@mk7cMQAZvjwr@ks8y4?eykoK3zqd5LT$W9}oh_LS8RmY4 zYs|1@^bk_rVP_KSh74=}a$@YvFl0nLjM!O1?9MRuqpbF1$c(D{P-J`U0i-Ok_hr~p zU1CNvOpB0Wd~#+FU?E^PXV^*zm@Rn23#*W&5|e}wtr>3b;vBbWOnOOtIROvj67 z2vY1u3yCBSND{B{$>a9#Dy>81>_v@rWEeztE<-q(QWtsfx??$8sH{@F0g)tCb@vLE zM0SxRFL_duCq&N*wx&b0MC? z;P4G*_yR|GF^AKfoVsx zWvz`a$NfDc-w*-uPq0*d8Dfce$wn^~-?7ol#G^KPxp=>gULj7{=#}E2jb0@hZ1ido zw9(fJpN+mo{1aN5z6`9Gdf7%_C;pp_4vEj&=(Xa5Ho8Jg+vs(I`fPm}SS`E9Mz0s^ zZS)3FYNI!bUo6tGskN>VKe5r3;*V`~mH48K-XuO^qc@9r8@)xOZS+>rYNNM_tv334 zvD8LK#9J5&>B|t+;%{wqjrbEAT`Qil(RJcs8@*lJWuxoGn2l}_2W@nt*kPl0&}hlL z3~_^4V54`6f5|jfl;~`FCMqiZQ>pq9T&Z5?-J{vtLVmA7S z@Y?7D;x9;1b&)=g+2}DbZKH1%du;T8SZJe1#E*-#G|GQUe91;nira1U5z%I&u?EXV zC&ZuNhOV!2*Dc}!8~q;9VWS7dA{*T!euNvizRF!w;vpM-lStXI>fhIi3DgKfQe@cZvBGU_gQiu@YfDe;<0YAcjLej+_ zm+{DLB|h9ftN0T#COf%f0x^cxXpB z$+?kS(B0%h-Z;76Li;55n?l^7!XF?P_=gk?RariYg7X0poIZ+BP4;caQv-`4k;Ry#^Gxf zjYh?EP|*=ZV;6nZ1qp145uEgbVb?$nDSIIQ|+HAMPxL z?-k<19uVSw zauIHmgK}m$a9K`Nhz}7CH0uYK^=p^kwUb`9_^20-50~RNVQm7%2mOF@&y(9Bzks9o z=pr~@&ned?uR_U#%kr9)-k={OJlv0w+ll*Kw)n6E)(0-fZ&7+6UDgA9YA-Ih7s&0x zeKeaK*bmEr%W`54IpDJ#xGX0j#P2CNXri3I?<@CD$wl}pinir9q|$-Q>9h)gu94$^ zid^tHpKw1%^g$uMN-pwqQMrGk++Qh|?voV0fLzq~LUKd6Cn|Tf;$Np+n?7rmK5$u| z{mKp?kL>__wo|yDr1ZMw2ThdTw^jPjD*h!!+vKC2ak;`}`E9CxK|e@%xE~`oDFo*q zayj3_s-6)3C57Yu417)xt}Pw3Urq-urxRE82b%2wF4tcQ^U5R-?T}rx7j|Ly?81)O zh260WyJ2^oazn~RdF)eqaX93&KD(7$r`+wzMW@Q)4a#j)?hfVNpxm9x-KE??`OeGr zetAD|z1P9NL-9{%$`4&O+rtaWJ!eSz6UzOna#^3DjJyfLzfZnjbKR!+W0`R7*X~i} zeAdA~r}*>g{)c+x{s%6nGm^n`I(MmbZq4w|D18|}n&C74PK5_Zw}&4n{GTcJm&)b) zInw3!0Jlu#m(JHByG<#V#=k`0rCd(eX;*iveBG|>75GP0I$u<-)`R1t{fTW@lC`aW zZf<65;MCmktk{P4y>tBoaIs^I^vw*9Z{w{P)6=I0Ch_$VP#NC%*yOO4=2h{QaQVFw zF~+vx9U6a+MEeWbIQ&(IokM#i**NM8J{wPc`DgO5hKg1~TO&+h) z(>vdoT=N@9lOw-*+%|jb1Q(Jlmi~c(nc>s;(ivr$K0Y(OO%<2qZ{tO0+iKF$30e}B z9v_$!Y66bRl4EE&QyK$*0$=|{`5FUu;cX`PsBL21D_m6 z($hO`t-d8SI?|JDOy8CzhI(U)2$QXxM16D1iGfo)YK~0Qrw6h`&~IE3lDo zpB%cizv*!IaGKJLMC?k*7q-C1J2-{#P4%<&Cp*S!chsjxv*6|1UczIkE##l-Jv4Br zvmtiVnf|Qu^~++!Xh?F5vH6*s#t)3%x;<5&Zg8execg;GBMmj2NbSJnji*kxcHfFJ zb4H<>&~K~}C3=tm>8{>edQL`f8ycwDq4iRgJ<&fXO<&psR(FbRL;Z98V%y-<#00+Y z6Wa#Jr11@Q`t-yC zaXLMYMa0@qOJs>XJc|!J<%U+|o|0>D<>Exe;HIVgDjFL*e=tBon3796LD4#aS+sF; zF)u-gX$mDGkxUSuzFwj=tmHQrwAxp-)6xoaxg&_ocM2e|I+)OwuN*+}r^!RZ6H}8E zmif9s5yYf?z_ENUL7yGy?-HzEGpNrI;FurQNWc1~fmUzu5)t`spI37*E!UTrt2^|9 z6=AOEwb;9(cMPL6*q#T&WH<%1;w%ERfs=?rEIf+{)yzpkA?-Yi1lfv7Kq1XIivZm> zk%&S%C#MK&yCoTgG+ZS^wMVWD-Hu5_?uL9>|7{h)t5LWl3h1D+s6g@GsXbWIze01c zNYH&a<)M&H{PH|pku_K}xI$yl5`GI?pfSpCV+dyaE3pDwzlgULMmK!w>tWj-Me+{D{SsM`V}>I z9a-B5WxNn0v1Z(AFckkCSWLmsS{OIt8I*>P<{miajX$lF(a*Wz#)ix=@A5#)GtXs# z4Yhe<*4O6=+`c1UU`?LDy6t%aYa8A~VEc#cY1HJ(U`@6fB~jJ6a-JoB+;?P2f%%PD zbmD-9TrnE5=)^JVv*^SD+q2Y$49KNzU6$J57`0hyLk4824GyTuQX4Yh^2%U7_E);B zmUx;iydz5*GNds}A~K{Qr?mPk1uWy#XDMMBvOP-?%aFP(WvoK76tWDd%~HxTq$W!- ztB{D`vt^>@q-HprYQvX_$>{02a3b6iJ`ipSC&P(YIC?{SO-)aGU3E`;O?9~UhW6^} za1xv(I7x8gu~-a$4~OxcV)9UZ_zrAo(R`pqk_{l++QVJEWm`Db6m1N5#|}1z6WDvI zF&v9F#ZT7=`<$mq@uW!qHo;Bw;O_Jv}C6$@iWZE{T$sBV&lPNWq zDJQ9DZYn$^!kDJA9$FK{+`s4_?jIP#hxhO{*KCW_3$J;ij_?&1bu4gUfwpU@YlX4W zSY@m>g6;}qF~FD(6-E&}^ff?X*JdCIO!L!p;nf7cD`f(IJj%1mfx}d{Xwe`G&h5ZG ziLiZHaQ_URHQhHsS7yQe)PY-xNTn1}U0OeSuV$4OcFDXrar8dUilZ|T@!GqC?MT01Bcg+=B3NbSuRwGh2T=a6_W1f zfonHY&D7Na@U#vT{3dXCZD(FO%!wOaAa}mhz+5;_v0S_JcDPHxJ)}W!bIBVjk?))} zG#9S4w6Jtv0qzMcEKj=U7Rog=8k#HJx<&T2XSr}o(SOq}oBGmTXF2afXYh&!!OewR zSuWQ~X=pCotH3>?K^A#CEq)3<8?g5qTAma4W#I7o*SvD!DwkxpXQ#Zgz*+mrT=L!o zj`~i0<-+wX&E6k4)BQGZ+1im4=Uf3Xg{VQ{rPC+;EOP&DS13-<(Y+4@PRynh6)(Ug`u-7waa6@u#nt`PmE zf!kL=x=#WZDgbw>KzU_YLsE#mNDf@Hquvt0&Fh;n^wjmS(c&ldU%*jTxF5EAH ztI#00xo|76_6EyZ%qthJ9=Jl}^%jV`tw7u(z=ciia_8e>fw!qM(Fa^Md%4|_k8{9jd!ahXRUhYp zo6nN&W%)p7UzY{vw3l7L{UQtQfJ46sI+vxuk#4lsE|-2Sz&(^jo>RY9fUC=bbLv-$ zhveQYIA=Kz0SD7EFKsWY9Qk+vI9<-uK&P%T^EFW#a?J~8?*z+4u)Y>lZ z0j?A{D(91V^g9pSIfUy==hs;-Ws&Ut_%|KtV!e@BzmpJ}t6W-uqn$eRrM=Gjy;NOT zxp-=@RY8%KmMIr!KCm4j?=!EFI$hc#(^`J}fLjU>l^?AI&6ST7a4&0NaJ4*VJ}PgJ zYh5)|{GkGzI^aH!XKH6_Op`-FI`M2PQ#(~lp?E5mOiaCo#culaVF4@#G05svg&=D@^U!r>Na;(q49yx8@YTVZy zxQoE;1CMZIh8p)7_^tU6opP-^;Ycryd%%Ia54cM32uJZX?luSRN#OQ@M>sqRo48T< zt?9lA9HmD%RG*1E?7;mBIGtZ|b-GTRzbk{Ic9RRY(t^VyUrt=51&2qpoVZ2{ZfPD| zn+1nQs+{tAEjT<<<;0CzaCoH3iJQ0J$X;`m%Y7Eysyw(07TjtJZa@6i`h5a8-9E0# zgS!ZvwyQOHaBl#YKseb8hWchcoar_K)TVG4`sT!)18$$fVW^rDcM&+9ZYU3~>|jRT z+B~=fa9Y2LJh%(MjUt@#OXDnEZ_fPE2Uh15E}RE<9=Kx)hoN*%d2a%z)5Q=uC$2Xs zpKD3KjTT%3{8l?S51b!7!d2zLU9jLVq&3rZ%6rU$!;mp2?gl7956dIpuxZ zg4>n{chQ2oJ`e5%3oeoecgcdQ&Vzf!f~(1cd)0!gwcyCcto8PW1-CB`?oA6Wng{nQ z3$7^-jvn%~y)@^+`7OAXJh(CoE|v$k(t>Nvg9}-3)E0HSbe3PG1=p4b7qQ^t7M!!4 zHv*^o(*t>M3E(KbIsDLN=G5!798E%-T3M2P2ldbFlcN{S2=zbwm6B( zdNja6{72)+1&*@FR~eKi`_q@kVVxr0Nz+FCQ`d)ZRoB+nMCu|nk%mwxLJaj6AA!`@ z*N1SvNMw5r^N$tZ8EbFlgC>+v1D2uX66-7#7>3Pt>{NYD%Cr;JV4T_XM)^FwRyX%asY;l*v|)?9j{ z>$-UG;u}rZiA}%y(G&Bc^8fzP_;hg_A;0^^^gg)XTkydTex2yQdHsW<2L z+h)v{KV__qPEYT5$GhGWL3M*|hkTwWIZ`{VkzmUwa>=aqm;1(bK_wYeL7~7!{Sj{E`3FwWH^*scu<&?1}fe zUJZ>#fb_GLg#PXuZ${yM&s53g@uBQ4{r!TnyPDiDiBV7dz9!ctBSd&va$neX)8Cdo z)Ag^vnIl>5w&zBTr|$VssI`n9*l?A!l|3UyDSs4BKR@azzQ#DFX|F1;GA=I}Oa6^K zQ+}hdw!AG#H60e4{eSIUx30f@+8A~J!$?mzz3 zxq}q`+|R|yk4*oG&o~xQdQe%u`Am76SnFzS9xZGC=saYu7n_Uzx@g_zeq*|MzUd$C zc74=WN)n5V4S%%nXt|dq3JzV}94M+d7M*_6B2ViYf#)~4-1ul`aB#D5om~`Ih^Mk5 zqsUd{_Ivy|+SOm=_xl(4i~S}3QvV{^SLyh4KZ-7S?>+AKyFN^I|IXwUvAm^P7+iX; zh%UL~9+LLXWJ%pG+f1W)tNO%uznc}Pfv)lvq;^`*(Tof>?ofLWaCfcWHEJG5FbV$ z;nTDdI&a}X}EK0mdaBYWqMB_4SA2_G>F7f;|L!BsWw(7F^}N)uIjJLZto+8 z@int-PfcbmUHPv6UDc0n3Uuv#&M=0k>hVqMDI9Rg6|VzFXUB(!@r5UyqbZC12p`y2 z_9FE~eU3tY*X>suz}|-qY>G~qpk~PXW>eO5F!|qg`_)Cb_gTaEq10^(=a$i$&0EZu&;Nc`?IT25;!^$Io)-+`e;K7_*F}e@80EJTB1C_1 zWtw66twthfwEn=LK9a6A_!+-2WCnO%{$0%r-N5PE^L4}c_e>_}z?V#KqCuH#u*Dk* zUS|3vqQ9#;7qiAv=et~H!PB`j8J#ugGM)WoWbb;PN1Xy)dp~U$_qi6D#xiq~4#s7> z*ARkz9=~_BOlj~#*WND}II)1Y+LvelNZoX>wH*@tT`xy!E_Chvlwo|uwUBOp=B5N( ziW(qcq_okoBJh6v^BiXb{-Q?gaWM42elg~klX4S(;pLk1u5y3I z@EKnBGOu^pQm@_h) zzVozKxPK^+_QGY9nh$^RTSciOZR|X4ELHNaG;i0qzbfbz#gQ3gYnAsJl`SN> z)VFj4r_DLLeHBtS+(n!URGhR8A}1cTn+D#UcsA2a|B$PJX6>s0^eb+xR=L>y_?58l3qc9;8B5ekA3ZQ6Go{8eUIjB;6Q$KQh5 z1Dc2a-ct4*vUzx1Nas~34%r*n&vJzn!f2 zx!B$eUr5W^cZGTx?hiti%-i@C%5b|Ma*;`qp}T!6PP6|KVqp_;}}O{BWE0xb&% zV#hl;AhP3z+Qgb?S zL?&)Bep4)+I+CD-PEF2^9iJQ?3XNgsAPq>Qx?AF{ts0|)=zPMd5$sGe7s5%L5T+R8 zQhqR`;k{pwcgz8A{S5lx5)KUZ{RWm-b@RSD8?&h|1Lt104T#|re z3aQFuMi`rF>*?TgN;CXKcUNn?J?0eB8jGfSx?|L@w(^mMvVL^dRj8DgHK?PfJrz&j zc-yR@EnPi0P%O9LmiVD~3m?6n(NwF{)5&LJ$6B(BZf?IRdqAu=73*ZH?2he^CsQ$; z3fR?yGY@4sMH9_Q9Lxna)HA44GGd=PM5wtCF!}jVVxG@n)Pw|uXA*fN6Rw~2?SP9GfO_C2 z0If-pDZB{ZIsDAL%JV?2d3_qeq^O4Q$)KQV0gM#lMDTH-2wiI;9)r&+17}>*Ll9k= z+|X!I7nynzAwWji$1DKz5r80cbHb7q-VYc{0Wh90j82>xjLtCHe4sT{i({9&h)yvB z@Biq`MYPTC9yapF;BSq#C;7bS$BoXOb{x&e=Lh33yAY1ZL`N>4D>lm1vOgo38@{kY z&|%z1y3nQPf-?~6A)2pm-n==~JT)dT5jm$&Px7G zCx_=wO)Cy{UwzoCqA%Iq+y`l#4yR@K2S@v7usgHg?7t<$<((bHR&B!LDl$V9M;=`3 z@niz1U&q@c?!M^{h)iIHD-U@~BpXHfX(PNQ(F4yN#`-mhBt8%iJSdC};F0$N&R_)> zbrJZYFeSkk$20UW>-DX$2;CWu3fGlo$eAOhb*qf2B&O?lNtFU7!QQzSSz zkecFsZU2&l1Wx#6XeZTDLTaavq*Rqp~oU2Zv8%ufAEqkd?tR{bQO~9i;Pu1J5Jb zHKZ%fZRZcprCOmN`UyxIR%))L9GsTh-AQ2;LEih4B2rnn)`g`M5qJS2D}&RNO%dor z$QG3I!$t*)umZ?Lg3AjTHaa|2Z&CRrlC3e}4^o+&0bT_AXP_Dh^&skBxe$dRfwx>n z%2V}IAICW;N`rD6KUL!6{n%2F{YFrpZLCV1Pdt{z?S9DzfoSK!lOk}VTc)tk%_$rd zft%e%pQq}45mjmu=RgE;h@uF*h#ZL^&Q_FOQfiW-5F~KkjkoqyFHw~4uBLb=BFU`F zSUk(i#qSBuO`U>*R9ilXc$`GYD1n#U#&J*8pZX!B7sj;GX-xlBMuKGjj*_KB0ylb$ zX;0N_3y>(zLl;Y(iP|i9Y<33KFN@b@H(FH*lrMi!Rs#8pbtMo{8kChl{zdLr7EpUa zC9n#6!yF*L&o?I=-4+nQk8qIPDWP)`g`DhszO29duc zkt8C};5F_xJXIG;D7QH69meAjnrWj(a2)MsTvnA`W^n4vB=))F=ITcRaWCmi@&XsU z#{Ed)WlEtp)zK~d6@k~iFq?T4+qb-ALUVMYwloIB{Sw7xWZ-2l4rKOJeWDa`IjV}b z!sm#FRz5P7v7y&V1Vsp}@EIS6gddZHrVeTv*v(S6CwjxfP0JG;7(c-SYT3Rh3spYI zK$O5ypYaF=Fu3SGh$T1T5Pq~yN5NQyT9vWRZqL`HOkMr#7T_IESr#) z-)R`-Wkpbp0xY|l1|G(cq@3sRDP(TuvqD&g6@0WoE79>CLsc65!d}`cUdj+F4;&&1U^RWr%kjHg;5CjLi`)@u14FS z?ga&ar8pmz97{QVM{=nAX!uO>xZHj$iA<^eKa!!!>^~)yDKXk@9+Bxz!{xOOw6(Oh zOWG`}14MHv9aczPMs#?t%9bo4`oKq(%BQ85O5*7Z47%U~&1X~`g-i3$H{(ZR=MC}B zXmculh{wYlyJOK7evYi{?&<8LQ^L_#R2`1SQ|T5wU{Wu^L_Bqf9_u$V(bXNo5#(Fg zAMI=jVZ^d97?~`6L z21vTd2GaN)!>=Dds{b&eOwXRgGZ2m74pwbY#zkGFd=AX-b=lvUHbnba zD-xPe4y65%g)94^EwYvU5SlKs8+uPb>yFRj2XVMOYVA=9o!Yk1t8liszQf4n0A%pE z=vyJF^EvovUV&_$)@jI#P{bX_FT1WYS5H~o)ylr)m5meWufi{*D``Z!0;Dd|m8P4f z@Vi`BwIkrD6HVoe_s?ODg-52FsvrmQ zV^FKAN*EtD@!hfZu4qf%79a zoAV(X3HiGUnXpN0#GIANU>ytmgo1UxZGp5zIC~dlglHTywE0W0CDKfpdss$D9>JVI zcf2M~X|z;xgiqQc)aHv&!*%qCf!lT>*4dJdcOR^*3ULi%wpc2-J5*V{YgbJpRQa?9 z(m18E(vI7+Csb2k71|)-p|hcC(*83PrKgjmSB{Klk-ceTJhVHc6oA~S(5_vf8ra~Y zIx)oCGMyzRBAyLRLp2!%gP_MKN_$uH0i6kLrn`B3LIak^r9OE;7(acEK)qZfxpLY_ zIju$pKQFNbWziHVHAYHb$fT4%n=%H5b6=D(s1vB1)TNR*I(ainF*4uUx>Hpj+QQMv zJ$tqjznaRlauOOx=Brzw^jD-1E(KEv+C=UcU)9;P$H|+@QwDcP`3$g?E%s@H`lsfu z&Qy0-o<1cKL(7Er&oCT)8D6vG7LG26(cffr0`IwMBWX;F=7|w$;O^vGnHbe?8-p|O zZCi}$dPf>y=x!qtY2X;&vBhX~M96eA8h_EiXlZP6uo5ld%qV)>O1uM{n;D+3glBw+ zJkwR1tE0>Y|A?7>>q@u|K>CUcHy!A*WR%i|m zY?1p_R)xk!LY0KajFpVY)41|n4LcM)Z$?(~a6HxAR;lKEZDK+j(0|Z98)qqCZgK5y z<;Rp`l_d#zl!qySA2bRWJKGjg(0lj$Fd$H4E47~7gj~H*qFU#;*~nhW8A9^Z4Oe!@bVsafjU=_j-@Vy}|2o zZ}fTGl|>$RmEYsuw7}!uTt_fW zOiM}+S0!Z{E=cSzVHoG&+HG6ubv3`0P_{kCmMh1ww?PkMt+;+MhP!J?C(H~ji(`d} zCoD=z_LR7>ip5)Qxc%#~vhEr`_L()x@M_OzX9-c1VNf`LItspj&JfLrC?ynInG~f& zGc=;q%D_p5nk4WdP2eP8?ajz8%diMszCloq0v=?|?JvRSL`%p^o~4z-?O%hyW$amq z#o{FhA{B&KQG#O;$+MDpcz!_yv08^$m*FWvBFMXj_~f~^M356)2+8r~jSKJ^S9*mA zXJ1jVSz(T-o&ajmbFkA3e7FHok zB_;`cZAjtqmy z&SeNEQ|clQw%=IJ1}Li(s|X}XRo%UUC6Qeu$xEJ;pdD%Hm4mI>quhJFsH_D4xw@5GMN^~&EAJ>FTc|zkUY?1_0dz@kqWK8QE zP+^~x#NN_fAZ8@7W;y9Ks|idRZ08nyYA2WI>D^)_6h2dKP+yDN=q}|!LGwj}p7ycH z6Is?v6bnAMZt_HE>(*%;zc|)E4&UTdx_@X0ADiG+1x9UC=~I(K!y`BxU`PfYAI6(O zyurY$lIiKO$>SL7Obkqo&mweatRLj5>1n)GpWR(wUsnU>;Pk28=Fa1wM?fd1M&@W8 z+SaXjRg44hc5lNXjoLKUb;VnI`*0VfQ44*Z4g`+fo0u9J-aRrkGdNr<;*-GB8W1|2 zZ}tW%!TQ0iwPA~6E z*YhfbGgC7sGCr1hdTeMo6l%VquLtW2X8SPtGcz?CsqVuk<1IK>u&;e;uz$QSH9Rrh z$BNf*C0TMTGxByTU7|A+&CN(~c6xjar8PV_H#RlNRWLko>Ue1DV2HFCrf=SIl`U1L zGpC$4Gi#x(T_}z?GIL;fY@F82^mQMqt?r9=B5502uDOX%4vwEf_P4gAEsGGD$}Aw< z+M<>ZD*LoLx6;kVyjzeNWNpCi18 z!_gb4tH=@Vcf|KQ!WVG(8XX-wyx8?GcE~SwgqLu5#Ef6!2ruRERx`ZR5x&q7zEIp^ zEAK@P`gU=XCEO$a8@*I~)kZH9 z583GD;x-$-LL9TvD@Ch~UM05J=+$DWjlM?w8h2KG8CXa9KW+52;!kaKP&{R$uM-z+ zbV%H3qt}WN8(kqfZ1g%&XQRX78XLV{xNP(W@%Nd|3+2C2T(Z%X;@dX5N<3<#H;H>~ z^ky+(qqm5ZjovDD+URYf!bV>&7TD;BcoUC8`Z7ed_)8mIBmT%n*NQLL=sNL$jovQi zY;?Wov(XKr#YQ)ZEjD_GSZbqh5WmK-N?(T9DPFVDyTpq&dbfDmM(+`i*yz3D9vi(+ zjN9m_IB27r_=zZ!ezRC%3vUtsPS1+!GDJ-L)JC_8i#B?{_?(Sy6ZhKaxEQn1H;Q%} zeL!4qqp@PtMt6u`W^Sgiw@&ejjqVcv12moSL06dz{Xb~xE9eTK|Nk0j3Z`GVYmqo* ziC>Nb;J4f8!{T2tGS*kQYgT;6Mh}bIZSGvfY-6w9h(WBx<8+}5o zu+d5Jml*KttK4-+T(HqI;;4-t5^HSq8Szt9cO;|Sbxb^FqmPPXHo99}YomL_kL6?( zt5EJbDL!SR2gMN^eOj!r(P{CQ@@1)tf0KB~MjsRj8{I1w+UPm)qBb_xe?)x9Mo)>j zjlNm%hs~TC<#$YcU-`)?ca4jm;r>NYZox0$@`?Xb(KO}@xQfJI*uwqdo3`*`@dt{I zFup{5O3|%Mmx}vs^g{7H@by)WynRy>a08&fYN09o_Z>9tAFD44|F|aL68)fqzRyA5 zZlNi?X$L**plN-iz6jr;3AjY>a?sTddYyyLjHPA#uVK7Lp~&ZFo0Z=Q~X_E$^9dFmQC@0lY83- zQ8|6Y|3kSRrubR89>RrBU8tN~UzhLiUEh%VL%HfP!Kma>{TE}|+fC#`-h0S}yb-v; zuQ}vAt>io@=fGXh$aM@Pm&zyjl={L2=~DAAhEdQgiVJwHKd1X`Ip0p{1_^gju1%rz zw}7VnkY1#J9l1!SkzAzHMlST%F7tQF`gGMO94Z(8g=?FlcPkpg7{5o+n-slQ(Upqc zr|1oejw%|;a{MMmhZWtdXjBe|wDks;SSkg!Cq}=1&)sx}h zLHv8WSmQ<#Yhe^|L6B^RB*=g39+FkN<^Rjy4B)HBP2%kp6SoG;LvFSrj; zyb*^U8&o{F9Pg-#2b$x-<#@-j=b=jXOUnIbHa%cZtOs0{*QfFi`cs65%W_6#f9twS z2sCl#|B-TiEvYfOkC(v9@aM^B7IMPQu;q>8hykn}IL3267<@n>7a<=J@cE$1G za{PX!KWHuoxU4@KU9CX=(Jt79J+oVGwFMWXVP4=yG8`jEeav zJhm^?`!j@t`+{=M8It~la=)rvmUAv64^<{ykIA)cu7}lq0CKo~;4=Q+3?4--Trg&? z7gV~|i{*S;$w8%@B^=`4uUy8xFN5d$)bc-&gMVL!f5s~3?hK#xK_|-k{4UM{P&nL@ zIQ{P__jTp|FXg_aT>4;%^b9I@t8!^2H}P*$F6)1nBi+xabkW(}q2!5en6up0ZyqTs zwqbq6T>k*vQSHM#x8wY1u`R=+qk640f0kkim*0{RgAeDVZ^hJ?sWu+(+huapD|wd7 z(exLu8HD+{rpZztw3@X3fHlKVAFN6SEwZ3(;^?)%ox?|uZo{NK7sQ~PNEh2MKc2=^ zdwO)Ze+Xaxs4|fUbmQ}16lD7N%=9)Je;dE<$C2OB30i-c9v_$j$)6YUx8|K$JpGYe&_Yt0fR6dXQ8| zclF-Vb256{&_K-&t(CG4b96lah#H=tE!-#ouZVaZx?DB`#>Bw94m&

4)MH}Ya_6~05gmAr$aC(?4+u3W3cOOEmR3M-FQ(s0dSTIvm&zP2HE z7+XC@DyD$p05W{nHQeh=w+b9Vr#1gX!;3Y03pb*2!B0x1Zl2Ax% z%OXKG4iZpE>&PNN_YfrF)DCJL>AYQpQ-rlSkc>jwgOZ`loT~y~M7Io&$lA!=J}xr| ztB5P93`>07ZBQl(={GLVgpx2w5(?>`FPCsdwQ0%26;`H}@LSX+-ROUtiZtV2NiFKg zS6GFP=2ndGkS^EkVu3HDhb25$Kk$Wg zsKDzQM~p(+Y$nD#7(>0|5z#vxu;{u+CJO0+t<{Yv@1Vn_(f4oDNX__i$VdHLA$Fkp zIcw~9eA_i6UrGO)Vt`&+QKN~g_xMN#;oQ>@!x^H z$)}$Jo^mkW%WTSxacinK96pWpKUkE5L11?~_Ri|1ZM!lf!n9J+91-rQ%M;kxkT1~k zG;o>NhT1$a>+ACbZr_nFuqIDn-S#|zwT<}#tMde6r!#Z>bXh*D^OaC_mJ-rqhAcwy zyb|7#rD%xXn59&hpQS*E-;kv&h+m(j7?_`>1c<*qhn{s=@=f@BV%W9lQ4BNBinqq9vmTd~C%a(5nz}{Bb z)2PXn^O{^aug;b8EcxS}ZATWRIG{0$QXJ5bMJXAOMJW!b&!Q9uY|m01G9Z__by=!| zW7KA;4jGW8Iyj&vSI)8X)n(PeF>+-*OTKwhF1#a)QYs{iRx+e9i&`?IA&Xuzq&|yg zDkP_F+p|=Pj8m7TR#ZrqYLOweS?WcG)Z{FKnuxF*FoF9Q%_q{n95i=<4&j73V}miL zWm?mm=46bVy;Pge*`_ijVNPQ*sirX5uct31p{6b~6GAj?nW3^y7V)-kQFCrL98R_2 zgXm=RbX_ z#cVn`K6%Q_tRa9FSnFqf5gx+yaQ`?@&xMCXcuquV`o4d-e_%`)MeyzuF1(Y$%XF`~ zj9d7Mi#is#%CRZ&3S*TK^i&wGT{P+L_IQ0o{sqM)r3)8{=9+Dh`fRZRE{eAjF;^Qw zcZGphL9~2ZxJo#kMfk$Pwd^u+^ifS=*OP9!j)2}1(1lk|w#%ca5=bPWRvhV~FO7TD zArG$N44%{*D%QOhCmiPa{Z%ua^^wKQ2HypToK+k8v{iOrn$Em5ZX6sd zZZrq(epMfE`1&?*e&r`e%R34`$?TbO?H1>&9s&T0p_@>`0AoUL3ASjvcsEdiXh z9cg(^+zY^6q6q5Bg}Z=m@(~S!n+sP5$xUh{MOI1(nO$9P&;& z>i0Zw^Wf=Am)}M(w4cKKtK~WHZ-?6qT!jX~)iRv&I)GbS0B#bvZ~?fF0v9R(_w@qP zeW^g)FMwNDK)NfgDXd&}6o@+t-1-92JqKJN<@`8s+48Xmwt=qJyq*URT{KRvkZUb5 zJmN8>X;&CW()BWMDe2|E+75PtV!y&wuE~C%F~=ne*9Y7*#wPmG@=6@~y$Iu@_DlMG z2)|tVy$W2V76P31I`#9z`05a@FO75Rw+p!Ebs)gnYudfahu9#*TUwX}_hW=x%lX&9 z>3p0AE>}Lvkiajp$aChyQ(0I(8iB*II`hhvk4wO9HBp)T{(&POwArM#mj{8*nGfJX zS>!qMflbW{s*fSyvW<6db?EmK;B+}ZkVn5af$J?mzqU<<>30^mhqB0X+DqAH*l8AA z+>wt);7WlbyZ;D&x}2SM+5+4;gzGC;{XP#ImZzGR#?kYs)lOftq)X4dxzc^Jz;vf^ z)4$eCHDgz=Ljh~L=YiAt{hd7NJ_6jiEb^S?yavX6T^8Ikj&yecr|so_OS;bfF9F<| zqKrUYeolKHuPe-69s`bc6w;UWI`grmK6}00?Z`(vaJpT77(#WuIrGs6T()tOGanBD z_l8yuuGa5>_QP)II@=(>L6B4iN8c@3>z5Ms14Qg(C| zOg<<+;V56f#LtR*-h!j-XxwWK+>5}qfk)*+w?mD4$$?wikx7@#P~-mCfm;Jy0z8sO zdTHE~4%|3!+FnR+jl)uGTRzTOaCo#fab#oG{5}Aj&PRy_M`dZny$l@bMf#z*O?jgZ z+)pgHg%;dl2ktfCbUyHiYsz!teqq58Ugy_|^K@q9k^SbvEw$kAsF@QNw&3t+m=jlL z!BKydE8P|g4v#=NaVZOKc^=%51-Bv(Zq9;RnFn`|1-B{>?jZ{fLvAx4`{B3R%jbck z^vGVW$%A_qxP1zTp=C~azXlFn49mMV53a5&(~juAsq4e3-#x%-d33+Yg?rW_FO&yY zn#jmon+Mkd9R71YD)QhSvf$`>AeVlx0jJwU`S8~al15TFKU(BfT5t{UTkR#>o#|gNBs1kXaa$}n3}tfS>MXb|d2qWdxUG3`Ef(Ci zJh*lX?)p5qlm!>bgX^>4s`KE6EV!CHxN!@vHV;I>hqy^`cSDMPy z+mr?8l(!VPX@paLXDv9Vyn8J2<}5g;ya#{_A)MsRTW~byapR}2F9Y|776u+C_$tR= z3tNo9=*})tfp9dAT;ND`zWx@4`$l5$4Fh z__(URzCMJr2DdlXG5=Wcow4>-J{U*IHDKXdF0r1V4glMs*0EEG=c8LiajVf<)K>P4 z_}TkJ;#ZzhQR%((n}7Sy-+cFtvVCyBSN2^73-67tpWS5~{FP^osB&E@zW;sA#dl9r zVd65{#OS{JB~|u}r&ZkVZw}o(FyDW_Z_~<4-c751y#s!MiJ! z*3+s){;PJ!+dAdkaZnjR?rrlV;D7h7c_F#5M{Yno$U8dx2A3OO$PEr|7Ou040t-bE zp1g}(MQ%UNqxAdyMSj13fxp;aQdH_+BzsJ0LvoZEU2^sw&->l?x;|`Nkvw{0&=>Xo z%}egM2eJl>mx$+o*i@2NrvEY>{j6iD76_M~z-V;#PV;Hii$?h^Qm-4|PA|XVcNL-+ z-SK`~y{L1DO1<90dNr4*Q$Y}5o^qpW8*8Ml(iy0f+Ar{vy{gA+x3a5~ZX+d%YtJtY zqqcaRCpUU^_FtSZt9UA6*ai^p5J*sxs7iDyQ znK;55_lvR@T@(%1^Z31+`Ji@57vf!7pFE>YakD{~#=IxfL@3Be_}Bn>*NS&jXE{KU<^QOm4T-+wW_@(<=ybZdNtwwg zD#vD0M=q}$E(hwL-TclRvg{`V2zwt#aCuVQeH@48XV9|jaS#Q&eaxkGhs+9kxdD1x z+%-PKx5Vpp7vpb>`?U14cNKA$_|}0{vsEntB}C8?)NV7EqD8f@OpjASOZR( zG$Rf01J_qY;qGbQdboyriEkCuBE2v$N4dV^GFs&R55a|0>wd4Pjo0w4Cb1;<*pEmxL?+kL@c-C14edWCkf)%_VM2i1cT zzQ%ng8N*ihZKx-ADL94I$mUFqKo?|*-^h6IO!e`PlR?s*(?3JZuO*LnP|q zP%ymsYhLsQ1u^(d3NviTH5Li+Xwrw_XGw9=S9Qqd4S-q@Udi#fM{F zI-bdZhjK%*$lW9TesZZEiBGQ97hb*$3;t&v(;Z9W^U+p55YL`N6)NRr4eID=PsI~Bv^8sJOIHt$tI937C4MO0 z63ZU9r;|^Kj{MH9_Q9Qy<|)Hz)~5u#J0x{#o9wSNtW6POs6%$ z@~|PehkF@nr$YP+zj^$u<9gy>i=RZi0G|ax<1M;!0%&MS7xiRP!i(^c1nZCuq(#Kj z3Sk)t*#TOF0??>KUeu-1yNE6L(L0WDbdPFOq|TKx_aC?lr%NJ1zC4D1aI}9$z%_dj z$#8jRajMXq@VJW15XJF$sWG678cz1)e=ADlay3CwWiN!f{HqbNUZgx4f`;JL$C zzb28yXL*4Kg|PuV@?O9>li=3Y;8bW~RDw(1r-V@jF233fJSU7z;F9-;IO2FsqA8vt zSzF-i>cURLz;0dB^@w? z4iJHluh1|VQBz)Z(MvHfHjFrrx|dISfu9T4IwP1l_uduMPf{G@4)WQwf)Bg*fS4Jd z#4*?xU9NS0P(vnF3TnWl%7R0~<8%G;+*Cg7eko3^pBtXRw`&&W@*odQaZGrT;aayc zNDs1#SRKSEYa;MG5?T}FW3bcw*`8pvLP2~l2Wi7N)1Gp$mU3`f9x^V4RRrn7JdP-j zxerSzBJcu4RtBf}!79*)bhn_KA2upbgcT^)M1so;Su{F4Rc}%GC6cW%;Sb`W3>eos z5$vCVYS+T+LDau;AqqnRZ@G+=r|PFZj&o3y2IXE#tfB~x_hVlr_8UQYdKnY0AfIW* zez*H29|WR(1y72=jc%F3LN}*yPy}vv8-1Rt^F>st$pg>{2gQlNi^!1(;`})2C8Z`Q z3PA$r-A2Es>LrTO-PIKDL?oGY8H;8LWQlo#b2MeZRpEn($4P{Y5_rjN9QRcHsUJdm zVN5HX#`IrhBuMt}C|OD*aHGeV_Ef#L0EyykWwF$msLg_@o72VXvKy_c1Trzdss!>E z>q;P^R8<1`7r9?qKYz&7~j9@n}uXm->C%}A5LYaZjQr|Mh9&H5YbV zk+q9x^w6$qdT#2(@T4+oyJ8UeOA<*U0u5f{Zo^Y`p@edalcQlg4xyPgY6Qp8ZpLL* z*<}W&&fo+Z)j*Lz+)Fx>yubyoaX(UcnNsLYb#x1VMc{QW%m!PE1-|7a6Plwl^Vk5$ zhQ35`85wxli$iBURi7wDT#l-ut?)Ubp_OB=FVluzClM4Ou)=4291?y^5}G=wY0M0x zykvXANi5Rq2@Z^-)nc3{+m|0|RQVtSQ36MO#v{0m;)>ws=C}H&r0h?jnHvz@tnd^- zXLWa?C&chI+I*ljgihJ$B09y45WaQC8LSvhb@%YFS(l)rt^0BC&FNw8 z&C2gIjB=jjpn!?~dFleV?|2x+QqJ>zd>S@3atnNeSwBZ!h(+H$!+gIFCXw8u%1S02 zv9PP#z!bo&;4u+{p<(%sQ|i z?~n+AldY|BNIC2*r&y$*`(8I^1^Jgrh`?FIb${AjR*PzpY@{OsA0zhDCR&NY9h+ZQ zy`6p8D%E0N>tWon?rxaafppiQRvH{`P^{K?>;K2z*T7eGlzGp&H#Z4MS`tDbe3V{7 zfEzxO5J)H#@=XHyY7!`v)|&vKHxfdc1e&&N3y76cw5X_bt(C5=TWwuSTeR-BN);tD%%6J0rC_ZsrA-9k@OVIb?{#KeK3jQu=sC=!f(mFx-XnmA+NQKV;`X)V* zQd{vp`BR}pd*rW$hwP7k5L&c1W+6SYqx#}B=z33FD0I6Y($1=)2VN(Us{hd(GiAf> zeRoN~#trOK;*@&XQ&AZ50tcPZ1Ou%@DaJu-hYsM-#tS@atDTH4;BX;%EBPf)JE3Ba z$sRD1(mhY~{Tav=6!)>!&LEYCW~OLt%|nIs_TP*#lAeaH&7UDFh?U=g=np%ROOrOKg%NwhLcp{j~mDcKpAlS?2 zaRsAx5X9v3g|fOWxR_Z*7|~nspwoo0nqjy#ldy=fJx=rfDC+Q{|IoB2{B`nim3`@=YsZBMl;+up8Os(Co7En0_Gg`*Nj z4UWC=H2Z+sOzZ;o0yXw1x?{!q{Id0qtj{kq#rpg*6HoO{zUJ7h&r9F$v)uTn*^(!Q zLkIn{;m|?f<&h5B!0QuvrlB<6MH_2I$h))wk3w8JrfY?#ie=<(S1?#zw6MIWx|}YDa2T7vgsaz9)~{~G_-~E!T$fgS>??XDTvyO)ylrbZJp3vhpbfq_H&=GI7h61&bEt2f=Mm z@Zip1A?5x7in6+qtcNytyV#z!xjT4GP-Xyj^Mgy528+-KKdll&yg9utF%fZRuor2G zC>XepP?Y+n%2lcms+(TJ$5a|*9~AkC1Hzd983L{4RT8VDrBu>F6!0N|^;AULq{uN+ zdN`U={9=k2xCMP)#GpYS)T3&pd411~sKtW8nwllD`EV_)?^(8NA^8_lorZdlMkQR;{g9cC2%xP>RguAYq{TnV>CFc5~qczN#Y91P*4dlQ}X=Fcw7$CZLI zKSyZ10>(wpRp@(t^r?#XsQe(^p=sBy5X>Cp0d3{2tHO;%iaMvcoOmGIq4|-3)Qz_;)r(Pq^ zF>R5rB_Z~?w=M98Bl_KscrK>(P4vE@9yV|aNB2-#%TDXwYjF(VFrS0eB8Ch1FpMPm z@2CBoF$XzvdDj}U3Ik1POl&zPA`q^>oIw=@;mbv!Mc+)wl6c-n(oo!@}B~kvV9_vX?W%Ea)%BSKSD^vw3dQu)sPhXZ!g!h3g z%b!Xd+>=s?xIGh}i;_(*#!{jl6b_(@g5POGl}bbu7SeQ2ijuB86e2_SVC*ub68LhZ zFg9A9Ms0&%UZh@`OyH~;oK}2Hl3;O9XDpje({VC31gdeOLBE2ZT!tl?=?D`1^yAZ+ zILRSD#wH*Fo2bHxOns6-(CK9Ir;{twL4=OU=gVNZZd~ao{N7lcG8R;RM3_ERDe38# zrDwo&?r5IPX(e3b1t6&Qr_%{zGe{7>`b>U;Vudn!Kz=q7_NNjj{VY1Ali9)#pZK!T z$aAxi6~^Y#GV=KpQk)_11wx@1g~}h(pxGAXZ$UOlJtonY2u9%5cSddcX;qy4GN zGwQ~Px>;m;3(u0M=L(4{je3dbL8Q9a^dzsVqh2eY@r|Y^A0miB&?yrA#OO)TJ54Xq@F}v4*Gzsf|}4oVrpI zonZ0HINn1=lQMR#P^qa~#&b*5FIwr8PTGVYW2?vW-n1qMz3I9f-q+U_b4$Kaa{yeY z6p$LpQ)GI*I3>Uh;*_x)6_V0?k5cB0CN(V8WK!CNB0@TZLjD_yk-SKCBR@q#o9Kj+ z>7)}769%}ri3DBfk$}uAzOBns#CoqdWo(NICi~q=5h-s~cna$wgLFM^<0r7ut4ctX zeX~%OXDo%%CzQ$KC|~_b!HsJnzk;_f;WfJB8kU0$-;!m~Sc}j9OXUeFdWicL%qmCx z(pM)v2R=PCenGu+3+Q5(|v9N~T*j%!~!zau<}hu5oM+_g>n0Uo~A4i7lOlX-Zl z9iGgd)bfvaWA<4?_p$p7-OmmfdJ?kaK5XbqSd*bIVxtYc%)ysDm#JS_kijevHdfQau5?+x z8mu}}8ig-q&qY<}C2W_Wm$PFSPbf+*4&wiQMCvq#jsc(VC#6o^W(@dzKP2^ft|zhG zQl~L-4ETKerA}iY@iB|_Ur^wP-*}5Swe?L7eZ8g=KXH>ouX5=0O-4Dw)A}#vNS~?{ zNYbPC2BB-!#rcNE0+)tN(aP5;8^zvjzW0b)k%yNB<)W=I5cUvBwBX#^j zjO!Dmj=L?_@xsaD zB=aTTDZ-y79rC1%nwve; z3%3W!?d3^((78QGZf`dB+>!C0jAsw^%I!gNd(&loKtD+FAbEYvVeGTg&M_&!E~Qc4 zOlc32+neF2U-)x-ki34;ng7-`*#l*{ljY+t?Qpzb(;)5#p4@!yt)g%{oCn_Q@FBobxFnIO*i*1>QwxgHnqh(Z8{1uwhH3H z4GTK2?dlk;x@CKbE4Qhb%>v#dyO@{?1Kta_B66hW)exhkm6xGwucJ>CKDWw--gwFhE&8Qlqx=N*o72^cSqOj7HJG) zY~%b^RA&heYceO? z&*YHybHNbO!oLKf#6JlEAqWc#UC7n=80SKu#{G+3xZQZbpOgU*zoEqU_wY@9y{dQc zet9vd_FO8Er;Q)@4atuIbTM*JxPbks=+)eK-!N#~udJNOPQ9+$3cae@3caS< z3caFs&C_2`1^t@2Afmh!ui=u64Kpy_In^-zLJM34g`0QkG)8kem>%GB0uX!+e~3<` zOOo;^q>j4*`eYeKLg9|!T*nPU&%mLa!rcoG9k&-creJKRaCg8*$DM^vX)C92G?$^{ z3ZP($#dZq!fKT95KsRtIjQrI3#~ip`;4Y^Gq*JFf=d8{t=nllw%b~)YxbFkkCT)?3 zh0Db^fhrHU&A@rFNBiq}vG<1<_Am`+=asV6f(oNHR!)_}iTe(4Zz>REEZo-vVjfsQ zW8wB=5{u^fl#7LHN%6*AMc=lbQpO--*`sf0r(AHDF0|uN@B{c3SL^}zL*Nd0z`Y0G z9uIrK{SLUb9&nB6-ngNj0It@9z5fButsMIu*U?=W;(LcOsp{E@dmgw_1%ix)`vY)e zJ>alSo+o=Nf%9VTJu&Rv?kMlaf%C#KbUEh9b6v`T>3O^C6kGt@R1dgoJ>vR2rhCYv zy<;(OwWt>a+3p1>na~<=(0GL5fgkp`0X(_$!1dCEwREZ<*w>rHt<7=2-t6{}xC6ko zDPxez-W87godb^g0p)KQj#&A712{MC8)yEW#`m;h*ilZU>&)M)z=c#G!0OcQ2eKSv zar6DXGN$4F6%q7$&b%^Ojtbynl_L*0`aYqYO4nJAr-1WPj`P3;l`%+V&smOCeE*r| zf_u_Yjyb@o_9zEFRyoRmJLF=|S&p;7c_~LKzDuojvF9vDJ8&TvoRfQGA8@K1m2t{( zKX8X#>^aL(9Q0O>2ykz>*mIWShN2X3i`^J}c$A50 z@2rNqEDr7^4Tn$hw!IZN*X!>M;Bw$c^-S-Ms=Q8I2EG^fN*vW=EZk1unkA06=&WF{sqL&H%$ zs&t+9#%j0;ad4A0+{8GzJPkJ~4sMQy!=r+oKMbEnd5bk%UL4#~4L3awu1dqrh=Z%w za5Q$S`g7*5O~Zxa;BL@x`5MmIpEm)g`aOnBJ6$JkCvd7?&DU_w{GHI!Ez)pKd#AK? z={^^$yf10?s4pp;)84DVQGHN9#U*9qocSAzNf6baacbk7_9i1x*;}UJoc5|Td*vF= zX|EnQHEvXDIH$d5Gl+>5~dop!_H_eccNn55(O<7WSl zG~i07a3q1FtaBHxcYpuIRA6^k|A3+ph;j&&x^oCDC@96gB;?xPkwakLjXddqcpeJj zp8I*$du&3(`3MWmIsM4~vMG=3VKb(lI}#~9+7T&lZ;xaieK4}SeRKO~+eg<Y9XM^x_Mi68woX^H_pYdnq#wPny`p^&&Xem>R@Fu( zMfMDSa`3M!d}k;QSPFuQw}5QD_SD#whbI5yVAH?(lFy!RTK*_-U;FL+doMq?e)5U) zE0(kQzdiF$@V{a5V-@TS%X|L(iY7MyKhK;UyuTvw6W_1C;rse8E$g*sdRM&mj4wzG z17sEV^_7{&eiV81Xm-sf_xsNsIGS7Y(Ee#vXCwDiy!oRO?Wfy)9Va45M}r;fChp#I zaDUmvgL}YtkVhfkp6KiN@SeTUsk{Zpe1mM7ZbD1?2kugU< zHu!MGfB$f0dwKh$qrRgbZr|5l@GJ}d{uT6-x|NZNc9y%Ry_U+%UFNa(MUrY}f2DoU z3SE9Cb(R0zCnGt7EcE-+ItN1z@f_H^51GfTE|!1!>90q=)BcSJ%UyExp8b1Kl6&@i zBQl}m>+S5^{yn~q%x8B;79XYhEswB#>-4V3KBO9`OFp+UvIjL<7NJ~Z)v)~Eol&{r zbHeYqhkSY8*2+pSA@uilW7qZmPHeKYt*4(;BVgTBaPG$7Q2qqb`D4>3@bF87J%N9$ z94>i+ASO_k1GOzZE|+Kj)n5Pmi8?_n!}U&5FqG(khT8%hv21uDC7?&Vcs7QTLJZ9Z zJ#NIa;Uyn)-oeJud1}&enKvHzz6$7Wkr##V7Da6XtA!pb8C3(hCwEHFv!{|9J0lK6_#xu|8~FY1wQQ3Z$1%s6hc1%zzUEK1}kV#JZ=Uo7}Q*Th?w%RepcR)=qoBEv*q0+GE8(4#O9* zEOZMYxBRGO{Ws@@poP5Mc*qtLT`JtHb99&u8kxvbFmMs`Ot&m@%a2*ue1|#yYYE{UO^B9MCs$3-j`-J;1Yf5@_a$jgOoLiink=SKyj)6kZ3+8A?@`??wq zmxH(EV?N$*FgQkL*3p^ zzSztBrfAo|O^Wx6n%AwJ2&C!LQXJM3K7Y?4oUoox^Z%ct|DE*fs!iX(zqAeCBM*Y} z?b-eOgAvS|+lxqo7kM8iFjIsoc{s-%#>6Xf7a4&ULUOyz^)E>VpNbzpInN}55r6U( zVC)#o4qOF76=Litk-Qya1O6+<1p*Mnu!7A%IJb(Qm{y2`Bmkz5l(9tgV&#BW3GXVPBZ$l@Y{$%YQlk`~9~dxqx88nTUkJ%@RoS5AqygqZD3QNPkm8>F4yB|DJ8djLGIL^7yJaMa9|(RT2~wJbE=pU_o({8~Zg z_@_Qao<~LNQ0CQJrvSgIM{(^KoGz|6hsfZWK(w(%d|5VKKv1$HPfUC z0UUPd0nTX$waNWRQt}8-C8@9^=?RMbA#9g~GqOdpN}Li+=7E%+SD&Z$^R-G0&yB=5)qx+AjmWu@>mo?MxwI?1eIXf#{&A}bTMUxNuT6^F>y(;7m1=_JsVHt2;Yh%%;%9|b%T1*lgg_-Ga! z85wHfji?3nLO>Sa=#iQRP5LxagJXnKX@pa0gj0!)a4Lb^>0J?TfkJ15Q)z@#>CcH% ziCz*`;h+}?TC;N;H%B>nM<3+$AEsVFqJj}lrRVW7?;qh*8sSt@9AAIH#fW!=ON~?M zT4bvkM-vX3TsVM38!zy-qJF`D0f!64Yl8Y2xP&;B)}Ss{<7mS%Fr;4ieEx;x{6UIh z!AuOMdE>)^V6_))=NF1IiQcoW$FUB_S{&;hXmS#Uv$9gCm>1Xp*@2@S z$3`6V8zHm5+EeHkuE)ypt@OvPJWc*QUMNoBm^bDXo2coPVGuRltXLW(B~)(aZ&BE# zcf}%ZdU80#P3ML~-1GsD#7)Rv0S-T(jz^=oe>AllhgzIIkc@CQjc_-`X0jULZX$xA zIJ8V7+)X3gO(Wb*is|Vumb>WyZkIpC9aB9O;1rJTp*P{657nJGV!YFAynt_dNL73? z1B(RC-0%D1Su(o73NNAd9(EMPn8bpvzoZIPzMBa}zK}>oJfRB3e7aD4v!1w{x+wP} z+)X3gO(Wb*oR(^YyD0+$(+GFds7su?=?>b2Ksw@Xx?R)hel!T3?vKJ*%nbKAbU(+_ z8Z_bjj_@QNu9hs*Qa00GfQQqop-*9-GW4t1UPBME zErvdowHSIXTWsjl*i=KGz(yH*9(yfa<&NraI{UGq&tP9Q^qK5oLl3b7hMv#*4Sg27 z-q2^WazmfPLWVwQljZ) z`P$iYhTh5c8hRV6HuNTzYUpd(cawE{H?n&Sy@std^p$Lep|`W&(I!9AW%)YU^M>BW z4jFnA+hpi#S+Swt$SgyzVb9S@V%z>Iw#U#rShb;VW~qk0ntfYLUULgsAd@*@=<8U$ zp|4=0485LxOH7!{_#4;<4E-jy!qC?+v7}sNILmh}`zGF;l*{s6&-NI4En8;j4aVMa zS-y?zX%!hV3#2==_E5Pj-+KEes^pgiGOGyg4`gyP4&we=C-o55eXK(2bPp!(uZ2>l zd+r!t5(`Pait7P3QR=j4ow&bJq)xYmF}@V`JDgB@^SGYMekpa4-YE7{sn6lzX+yZY zro&%3;u513kjjxxOV^bnU8^q6?M3OP?Zz*fAc^~^o8&&Rbe{Ae>34%r6mrU4;@hO} z19EXX!ZRrxl9t-1y+<14Evks?A0l~O6t{(Rly94q{Up)&`=!qD2>%G_WsH4_WIJPzO8K;uC#3w5 zlt%tgU)(+A=%E@lTv`~=Ag$r;w}C_mbZ$A{$c7c=%T!UK07N%-?}Lq14)C1a1v@Ta8y4XGRXLc4Rj zklgOolB)_j&mSbuA1=NlGQO%;!w&ijw*$%TERkGj(0RK+ew^Z0N9*m2Zu!ZPb|ASO zbSB=;(0MyUa(gwB^QxV($E2NOQhr^^(^4AwM8Da($6qGnL+9}!dHmXF{yy)PkMYtDB)79%+JVmPKyo{E(R_SP+IdRKXGmU;^a6rw)x}N7nkVYT%uociT=bT`T>_{M=sG0T%x|XM7hhz z4$|lKT`Xn3l(VJ8;Kjq|N;yx;`BGw#W2CqD+(6evU%%fcRDyeMNXV4 zHHAbtw_r=*ZHsT&JlNmU8QwtjZ3R&x2O^vk^XtHS*O|fZQe%Soqc`V z`n2|tIqcoOp$EHj^yg90czbdZ91jiZW*`v)AUy}F1&2ujq?=HmYRH6_e(WrU-YbU5 z$fJ>)*`J}vMC@*2vy99$I}C4)L@HCuLV|UvSrFGBmB7mdIJ5*}1fuv}hM=MG6KqOV zf_Kr9oR>$x*oWDScKk%zP(@C#0af&bTF;2QahOe~A}82xJbEIHrZ<$w%gr9`fWJU@ zFV%cV!OPtUIU4T$PF!CeFE7|v?SdFyMn=6U5XH;=QC`D}S1r*|(2k$T4att2$hD^; ztHz@%z)R~n3ZBrlr_vV9I?QWNMOJN0(Y-XXo^idwDgH28+%p*+oH-TnV09DQ9qop~j01>ga0C7^&sZbhJgg(WU!;{h%`mEX$#tO)-~TrLbg zrj)q!86L36rPJ_$g)WsY0$eJc2V9zLgQYH`jNl3&WPwWu79mA0Jy?bmTxzU__Tm zhR)I0-ePl2uG-Tz^v14}B#JvVD=)?L)y3pUd(Np}_eRGm|BKX8K{aK8fXum{}x zQpEN^3aZj_rW-~lJFP&Fv2gQ8iSJqp8VmPR;Al)xE*9=@)4Xw3u1{yi_x)J*vNITa zK_vGF9`S(t=w;sWx8iblZn7m>9w@mbqs{R^<I&uC?@f}AMC6>KA zfphEkPJ7=4u3Z^}jAd_j7QR<`zF!~-sS%sX)2NgIC)++!Z>wPt%O$CJQ4iSKz#GlCGa%-lvrfEDtg4y$`rtmvo)Dhk={s0e2EOimP0# zbpHdm*$M<13pWwpy}jgbDR9$0*y{jpst4R2kGRix#GQzN`y|>ILxt_m1BaoA;qx*d zKX7~J&qVfp3wUyG0_TNWHG;wxizxiRs%N`jNqhGL*XDww=QBNjuK|Zkj_0ofGFJYQ za=me@o z;JlRMP2hqq_MGL&frs1mmh33UQs7j7*%YT7^}r3fq&uV>z zUXCh9IWo~`s-JF*Q;r~TUi#@_;OTenrkkeWu5;if1Eac~DT93BN@+Ph!Fjf;bOOv8=Wa4T@G_rGU=Q|(JK2?y1m6L%K4 z5d5hh;1Mq-?k(WjB@T}=F>yCkM{$$l;GO}lOxnZJ$C&os0*BPNhj#&1pP@!cAC*0IHxV^yDN?dLn+$rD=OWZUKSAuiB zeK)}vwI`)JJr1s0!_A0;8_;kwcXb@xGa8QW^{QVv?VZqYOXJ{9X*ev!j%n|# zhFcZ~_o9ZwlIocDUea)7ad59{xbir-H#A&D9Nb$Pt}+fTsV;hbVCb^Tfy>Kiw+!Ia zIEhO>CN2*+B+ak4l^V|3ZrxhC4I0jw?tqqVlZJEJJD}NX(QrVIdobk}P*XSy!}r|$b$+8xv0tD3#{XgH_6H-PI!IOVTh!#V3^6B;2^;x=kH zr@e0ARQq;nIJ(#QaVWPJxB|_Cp6$rdGlk~Ooc0M(}OD>5AmoC7sBs8KEN`MCDrV@ zn}w#HZofO}SGySNN^Nf+^o0Uv*i^xiOZ>%2uj5_mYp2hLud17J{Cvw*Y}T7++V3u# zyz7bf-9Nv3Uxjss1>1Kg1v8(`JVy9u&u5kqtL}4m@47p6V($to*VoH(D|+|zRQ!96!E@p)xrR+8?9{to>q`37ZY#CpAJ2zJmrefW`D;hB z{5Q`8dA@@(-w(Z+y6cwS0&c6YCa0F2%Q*M!`Pa%R_rhLMO;JrIw|MfEBX?72$NezK z>+1NMneFdn8@6_nJ-^14+CcZ`^$!7@mE*!4Lf`^#^oL-WSHzu<1`f zsr3e}o!Obr-NbNBJtXb)*w-_X&Qje@IU(zoY{hB?z24cG>AOW<#s6Qt^7bpsj;7Ua zh**(XM}>uyb5zETb{0AQORLQSTXyPHf&R@aJiGj#mkkLM;Z(LS!q~LR3UY}sD>ukt zBR;vZ7Xo2=-Y&oqiwxNdLGMQp-zLEYMf1D0_j%9uQhi>^NcV1ts$l7oE_xl%h(OM+gIpA4+53Ig?W!Jb>7a(S>p?|u)&qV5 z)ZcMaCmZv=KSE8MMvg9SU!akU+_KY_^`xcBzA@6daf?=Xg>n@BJz-+W-QJC+r>3@= zlg*aqmQUgT#Vr$!tmN#rT@FI)uUg4n{eAqB6+N5~3h5{p*jiQRHhL~aVXxx2xaFad zot#}B-dF$Kvc7Glt1|U2A=*nRQz`xAMVCST2Bwu`jYDpN-y2CC~o zMk%*Y{h7RAf#l`L@fGB;o^nk5p2WXOQAQz33RN$$YJ%=J8AP;11j{*S0~7s!1rN)g zMd=WoE-x*(fN?gBcw4D`>3!O-DBgzGzF#JeSR#R)NXB5RK2ci*{$~Z}DsqOV@PQwc z?Cng{-V*;wvNsxRyjKL4*etr}C$gqFNhif0dOvmD{S z46W(ECAm<*(C}CB&Wloz89JhoEXlB(LKM%a0QS1_qaFih)PpkEL6U05r^g39KFu1E4MZZ-hr}uV+m7zJZh0aS+vz7_~GP1r3K=+o~#U#z?NLscvbl zYicCV#fysz7T0rJb=3+RM(0sfaY3PtXsx@xI^4Fdxfl6ucJS}5fMg`Hc__ob>a38?uWx`62?rl9cnLfP(ebNK39+j0UAHjtM3knK~MC7*e zmKD`);Splg5n|M!=$jXq7?r+1()BM^1<;pw{Y{koqX>Gh!h4BA@CRQLkqX2Iq6q%d zLkRkMDN>>Py_Sl2H83Ich)Bt(hfzD7TzCpAui=c+Q4saK3NMYKl+x1jOHX>-(IAbb zC9DWXA&wFL(GmX95&qE;{?X$j{G-e_jZN8#pX{?Szs0#VWnkNu&YpfYCdKki^Wh@t z?m-Z*D3GoGXHs)>xD{{9V@d+n`>dq=!|9+iX;=-Pj42y8ga>Zz#Z(p#pTE`X9Lzj#Qj7D;_|36+W2Hgv?=sESYaX=CSD;E6k*KxWb5Ow z@Kdr-(SXuz?(0O+Zb7ZEDKy2&Pm`u>=-wh`XUANLASyzBGHf8qnDxol{T4kQ^SOTU zZiqXP`@5mNWdj~5;RKITBPKfW)LUM;swTLgh*?dfw{ef)fp`n=b$xv>6xy+^Yg2Gmeh@2IkrOgaYf={Bz|uqh8;0ZXl=D#|{G(5z z;uVuwU(a^T`EZ}Dz2O1$Zaxb?=03u}r++}TJYjNyym@PQU@JQF3QHiM=yBwxP}1vp zYU2_9(GmX9OPqgnDaHv}3r6e4Xbsl^9NKt+mj|_H%LQbmxkUL#%TX6)IA|?e1rD0Z zG3!QbNOJ*ehDIye(IxX`BrFCm`pLaik)Hydr#$?}K<|FgE`R~{UAkBJh=-gU?RZ16_-Br}x45S{j?(B^4+M_WY2W=xq zA9ll7Nforum^B^#8#}tO#fu1up7UumUhb7h4a>~Ec~%$hHh)osDW%qqguTnirXnt}y`G!?jj>(y)8 zNXG+KG1tiq^gkVcE3LU~#6jy7nsMw!=Q8_%+HUFsjx1`-RTO2CxOBRlcwQ9X|te2!~gty@zaF0ZVtZfy-R>w{L~8pLSDEOT26UJ7Q> zYe9F%Kv#FCld7~JKc872vhgj|^-bkfabpxyjC<`Em8)A?svFzlMk%Ez2St>+*6J4i zn&OrpY;FtWhb6Ky9ACt&t!(u7ke^61V!0KXd@Dmc&_>L7)RltjPSVSnVYk8*{ ztSYFa!rdn#w61FnH@DQqp>wPr;X@taL#8pltEjJzZM*sq_;B*&XpF*l zjKK@=v=O6lkt0{|P{Rh&;4!{p#3*${hz>Iff864afg3};`N3Nv7;QuNRyfetIT*r; zVmO^$m_MhN%KRLmvEx--^j|C=Dy{#bRSN211E+9w4{gKIilYU`E*$1_P;|-6gMPc!kOw%ts6&Np(C8BzDu1m z^;WeI8RIu`rtZ*m8reF1`YquCj__n2PRr1QOLl~(@bJ&8V3xu< zwEPigX^WxzSf!zZGtSV#8E5F=j5G9PmSN~AY|mwO;y8Kz?TDsZSP9o?=;^H3&@&ty zpa?X=FJ~{~GEvTAquD7#&ty*;dN%u{p=Yr@hCY^c8Tu8h+0e(a5G_+>eqiYH z*b|06pABky7Rc{P4SgZ|Z*3)Imal<5W9ZA-PD5{TaB@~TI61F&aB|kN-6_%hX88(P zqoFS}_Tr)RUrpBW%h^{9y@h?i(5u*LL%*6$H}qQen}BYwkUe4Oi&(#*H?l>BUdDdM zpGbv`EMF`8vY}VAK|^1{mKb^+`@MKc;0CgMMeJ!qFJU_jy@@R{^m6uF@sUEtZ(~Od zy@qWw^rdXRp|51G;>ldOEZ+k5h@qFVPD5{Id4^uWey$=zX8EpRM+|)x+lcXvqR`wh zac;Irorb+JJ|C-=I&~xB+$@p$WUeQ%SyKNut_Rp;snZxvoSTgJrD zwBj*soA|L=T95cfMLG=wQ=reF@b`*uX=z(U`e`?dZ+~eh+)4_EKfR-p|6Y>tr*Ah? zdKvp`8U7H-KE_@qe^kP&kiLja7r2nb6-gYGlk6-b+0EDuB)7=*)?MNo5v5E0fYOBt zj^82i`$@u+r;B)xK?lVzuRq^d$>lj(>ev8iDTQZA9hJuQF;X8db@UC&moG=^mq{I) z7H~Z7Jv@A()HCs#On7`iMpZIgjto^mON2~+!ti z%?Wv&{2`5WP!4VnlH1E;ydM+plZ1!=r=|Q1$vKQ2m3F=>i;dJk=_`Y z9wbk1x=aV@@pRzN(}Db3ia%F!7b5(Ov`5!H@ZU)NZ7GfP&<=g%56RP;Avp*U zpZXp7AC~fdlJgk*JV}KAy_DaP(y)v6x3bZ!Uo2*sNZZbcdYc{e-g2iy)M zw}Z~j;~{1|gPLlFUDKU8P@T;T@N{Kz{GOC@7X~b9H_mAZ$vG_{xqU3oQ0Z(X{94H=*)09bqTv_kC^^Dymas0YK`VUL}ds4n2 z<57D+A^wlxkSX|Lj)mfdlZ9%6i{iB+5M2xM1z;eTa z&TG3m2CHt_UgAz*$tj|M_ee;oW;_vNT_4X=;p*#d-gIk6#dR(2c@h(-z}Gc!ip;$0 z7xgc?xuI*p;zi*ISCaWbMN?A}KvVs}5A8tjs!##AE#mBGtUU|vkLF3TR^$b^>> zZm5ZbI)v5|3HAqN;azkG#T1!nU$EmRa#^a#30{&adV*cRj;?kp8fN>e_z5+>ikx7} z^XQ2*yMEbwyy_{+FmKPQL6L%&nrI*C~YsT=E%EhL5e<%fmo%U=qRk>Cv+96 z$f}_!?_OG3FS_396n_}a?wPC8z6B2<;QWhc%DkkQEWx;0=)xYzM`IU;K<>X#d$CZ> z#{>SXSSc5}&>Zrs=h9@1yd;<$hg`LSpQ0QEZ_DFy6=^EKnnDW8Y5T6f%;PZKy7PDQFJbMsQ$L)oV=|J20=KXv{!2ks5%V<`dY)aiQY>YRd7VW3K4NT@I;t{ynOJ!0YR_lSGdW4Z+a zZ|Uv=4%3ykics6G#n@Q|f{cY*o92z@FqCfg=UDb~GThU})V7@m%GRsE(VV<;%AOM! zyiDvL{!X|-;PmSwmOWZ;LUYo}#lm6fhiiXv=C2+&w|?)$-4EO@l_+GabSG!J^HVOJBP0Ouv$Bf!n^knSnqf*x?M0$1gNd)QGg1^5Q!g$M5u zd?U?uv4>A&cH2K9)Q3_YiQ@|L`e`RpN-1 zzo&sap^N~hPVMVbrn?j0`n=@tao|GAh-S}jH)-#MpgYgpWsY*3of<7iZJctP2ks!k zl~Y-8mSZs2TR9#BE~tz_DtpdyoB|G?^=+qc|BMs8zq|&VYL9B5W3@*Tj2*JAMbmYb z<1lbu+T#>(YhCO)%aNBS)?z5AD#xRaa?}H-`u&PH<+uSjxBI@c9A|;^QjXN=Vr_*p zf44jGR|TA^=ejugTMOJ_Weif4*O|Z9fb){SJPa;xxY%>nGw~A6b-~p+%25lPDn}LY zN%C-xFE;?UPh}n$b?Pj~OCfLN$idnIFT8cd1!C7URTP!(I7d0!fK&aYCQdmv0k>Bf zi&KvCz&-AQbB>dT3*Gzki-@aVm&bv_qaq(CuZC3h{C%ABGWl==^-n!=zCLtWx zU4rMF6toF6Wsk~FdB&rr?ViB`C-SH9nbM(jDIcH0q2o?zI7&z14mfZx0@n^dvKPRi zaJS)Hx3_e;SgS<1WDOT_;081tieuZOc)GpEfK%nbBXUgKGa3$$$T4xJG#nm%W8z-a zaCoGRiF;MU(fh5c7iT%%(r|bLjfu-BiQ6?rXsUm7`d>q^jz$trF zKPrDEIM?g%A>inGpmZn3!9AwoCdI)$rQv8^B38Q3XgE9?#l)S^a8u&oPHDKS;^59| zxS)o^?c1oA7d2dd9NbG9ZdM%Js~T>09NZfkj^0;P{Wh9tWjPJ1Ubd#G|7=gc4Ro~nAOii3MeOPA^=R=Z`u2$hfWN6#V(=S-J) zO4WGPpy8b5*sIy2aWIxW;_X!Bz;Z$xhb6f3_pvyEdkDDy^oeu&&+p-oGzR<0L%REr z;k)UEAf3XI1dg)KUG5suUzDzJ_?Fq`MJNl}nod)l4V^)=Wp zO_@X<5W5{u(wWBu%a&sLBJL<_#^sWOD4Z+=ZiEwNd( zM_B0J&y1=qi$so&YS=ZHAK5>6up;Fr0UjEP)bujq$$FawgT0EC3ePiwJ*>TaSMQ3< zW956$r5l*UByGy=%Rw{b>D!}n>SgG2mg|c_ z#V#XVpX8SP%(C92%E&*pMrolG=ABCzdWRDJY1)y-4RXtVVOfK!j1KB6g&9&tZ_HoO zRz*6`;JDcBNaGo~<hmtzcDnx~Hct_X37(>NSBF#lpCX>13CL_RGHW-JplE_VpEuSd-iJ_yjBc1Z z8x8rxnJBk-&{Gm}#N6_mPnFC`_E<~O<#eduB>C613 zlB8IaFWu=_GDj(q42g3t>B81?Fv7Tl%EyN3BaAz%TdKoY1Y5&5krb>mvQ}!U%iAcl zt#)-og(ReL1U0O#Z>wvrU*{fL)wCL0yu~(LRkxpSZ3>m>>c;Z=x)qJpRqm!M z>#uhYs9xJv-N<>MTB=vnwYF7bpT?%u*o6`sY$BEN=E~M^T_e1atyR(lXW7xuZN{jk z=C-;9?8O&uZ7#1=IfZAqwV}MeK3v|44fNV%OdDHYy{5W8h#g~*UTafLTTL^!hs{lr zG(MfvxFUDr(4XI-vLFt+q8WP$hlY?(#1umFs;(IR91<7d!pd_T5hxv6$Y(#ykdZ5K zh-99|nU)nrrbD-An#-JngXTy_xO7IibVj&zM!0lFxO4>V%?OtccyRtd;nJaRYxI;& z-{OjJ9LLR3zTJ;->2T&8{K}i?-AA}|!cA*xf?yb!iCvtlTUx?kC*WRqWSmvev^LD2 ze8Z*K?YWe1Pe7Z)&!+u=yF2Wytq+AlUK7RZz%R{>Tf$v^H}|lt?eqzj#moK#p+Apb|znWeSJ}X@pb8g$<{0gi{8rL6|ocq&L?DLxoG17L|gk;!{K{ z(p=qGRoA!z_k2NKqHxQW1&bEtgSUjkgFAzT#BT8bMOocQkwTlh6@7_{1KYDUcL%Qt zM(ySk|49*ejXtdsLp(5LNa7PMCL-<(_9AN{3dq2YP!vvjBH^ue89?h*PynkBiu}X@ zfk*5!1X>%nq@`5SLKN^Jf%Q~G+oZ@bQhGR=Qv70y7@#%#yof=>QX!k#rFnf1amN%4 z){Jn<*z7GMoH8SvGU2WLH{o_qj^0~V;;6$>i(?Rn`JSOKNVu>o$&T=}KaT&%mCNb~ z!6l>T2T;5v+8YN^JbgzR()G7Up~@F0p%`>AQPYZCM(vHm>q)-f#p91jLXJ4Lp5zF3 z%m{bP2zSf~cgzTP4BHZ5R123pcg#;|iIH@~9rJ>w)5vb>KK73Yr`1uy`5fVXhn~do zG_NRJk|R9e(33e{tr(>l#^<&C5Le8X4Bf{bF?7Gdt>VZ0;|GoK0K3!Bli7dL4=`=_ z`rAL%bPK&jqt13rwu*GK49om*)~JZWo?E&jg=UB9-Cb?dWe12 z(DPZhrf2!;*&IWk&;C6n+CEvnO7^&+FJ?W4Ud!eidNKP=vL1gKd&1CXvpWraK5H=a zN_M58FJ|Y}vVNG&^3}308G13h%g~pxRzsi7vJJg}o#jt>B9B?VD)tFOznZN!^g1@q z&=<0wh=*%#Aj`L$-Dl`?*cwAGWMd7znw=FN4`lo$>|R4($r=oO5u-gbl*{s!vG3rq zSGg>ZF5G44MXb`$YZ#V@+Ahntlzq+Cs6I>B9fn@cPGUTvD495ji{)vl(-=uyET5M; z4Liie@+qm)m^j9l#O{^)EUpLGZmH84NL(zpKq^OEE4@mAB>g5$CvKGW4!zN#S330Q zSWD@d`|prG)q$tqJu64yT6J+Q6>9#p4za>^N;}R;55qRejpBEUX`3YH$p*&C$RBbg z$@j>Ww~CcJFG{(HB-))zvK2fd_%oLG_Tx1+28;Qp2zjfb;hXw;6+^)AH#X*!8`0nWU?1g%?X>JA+&5TKvZ=r1+DQF|KM~i+ zaCZ$?D>hIDFWYGAvvnS~kJcyr5G6KsgUM8&S`9=TY~IFgTeo)NC!q7(m_w+&`981A zJ5>lxGrntj5LyY+zl9cr5F^Ntex-A0h-pjOaoY=LjI0UWfNCc);iaKmOeD1FxSj_! zxjM{^$88gO=Naba*f{n+cC(?3yYk9ozD9Q!r z;%JRFgU1WWzH)%~LWu;ts%*sY!nmNCWI=H}*q_LTImp@Z6S*){w=3kh8qDza)TO500g$#IoO*Bg%F52NLV{}ieC73}+C@xtgs#E`%RE|d*+%mprl z2XYI(&j_PD=`De_;iU}*Z}U$n^Gzi@F3|KT!S{8_JE!hiMYd{j7jV^5nCK zpyQ6fA5%!SQ}$@CM8`b_9aA>8Q}*tFkB&PB9aCSnQ}(*yqvJB5EVWT$KRQxBF7u~? zYJpQ}k)JyMpaWMA+(b%1I(3R^UY@S<-;8)wO3}icxX%OE>;d;bz+noNacM&RVrw7~)+{zShxOu6J9ruv# zuYr5o1-Ar#s%b88PLZeH3u?1wEAdLFolN)$3yy7SV-Z+#Rr z7VhtX^OCjAgYBd!~`X&&s|3*1x} zTp8*GLAHAw3X04caFpY~@W2myd;y-^ap1i0GZf^Q_m3g%A?sL-*gCu-kQsuY?c4M_i4seHD(sh>O zG2pzE;~a2nUFRgN;?W0hk7xWg{?oaM*}dMig6aBsNSbC#oc zsyF_FO~9#g&~sL-ats3Jh5vv$ftU6u2F?rrK{Fl_(R8-6DNauaB3V{228AS z>;lg1Img)^Zvpp^ooejsvVp?rJ_hmJc3Tp9dmoTPLV?f}kp zT(DGJAA}=}!rkV;)dClUAK~yQXyfSFLbn$IE=S_%d#AE@oddTEIMu!sKNjwwhD(cs zJEGyzlfoqmHsvlJ^ zPJ6ZZj@>SC)GuS<9?@`Ex)KwYdbM~?r2J*a!Sw=Hi*UlxI1?+~r!^dwz}Pr+OQT-s zCa$id@o{je8jk8wrR%hpso^HX!R2VUiE(g24L2zcE~Mdb%eM1J_fWkb6ll1-IJi;` zH$4unOvBBHgR9kWbZ=4h=geQTh6}~Pt<`Y(8qV2I+ksR49z&s>t`j#1oa$HeHJmel z$F+2eG@R4kNiAKvf5j^AIn5sRC53a^I}aSy2labgQZ~++zf9b8Rex6ZU(%iSauBHO zsrwt@oc78zd*xcXPJ6Y$^&*_|SE=Eg_MX=4)o3`Uz2m^CcB|EJbWQnjDE9(z#0jVz zzxP3*F-gZAz(el8(|{|T!jS}yvd-PD^)Yz^Xm=Q*4B+macmoO-6_gfp+@>Z9$a#ZBxo-z9}tM={brE20XwbqKH*6!cW_I-E%-~0-5P*uC0 z*uTe0@|{iMF{4O457e@Vu6y~VSR#AxiwcUp?LH5`M0VV7qsH7Q>aqaBZMXbXE7h0k zPfbb3-DC=knngk4|2!+ z3zi3@#Jdj3WnZ+ck^sIw(=`&lsdIo?JZCya+ew}>Z8a-C-A90u^>#7yy!>;PwVXEi z-_(7p_zuErke<59MevQI<5pfExt%}xK8E8W=9Ml9a?2mJtQC~ku7Mp`Nr>ttUlkhZ z>KW+l+tJbO%&mB5yNLOv%a7dhhb*gE?B{yUSiCn7^ZvAcPDg0_CdH#ScWa&!JWv&Uk)@d?;n-QIW|NnlTIUS=f0FI?wN z*VOZ!e$>UBe$0#-n%jS!R^Jd1&4Yn zAU~QV6roSy>=qpQ?HQ_upu3tx*f&E$U=mx}pyvvSP`4lgL=&N#xCXE{!iG1Ezcbu~>R`&i@p_%9sdDVA2F+yxEKxE&h@x^{Gi+rX{(Y2mZAV{iaJ zBk0@S!@eSX2KsieQ{r@UcgIcr?59HMAL!V)g%;4WUki`EzHJ-2de|R?wh;@uxAb*@ z8!-#%$>(Xlr}{MLTYJL;8#jb$6L7Xr==}p*guaUO@W9qScAZ3S1>p-JyP(4oZPP3~ zXk!FnihW9)!U}sT3PWDtpd0)z^PnHXp^X=Kq?fyl{qg4*krH>bS2O)~FtY~v9t6NhY#4hYJTdK>eINMRE zWp!gC?RklP-1Dz1uWJiefd+|oaOX;0+nQi8c5UZM(_i|2!t|YvKCw_8|EcD-yLtO| z;J=<6#dsKq(?ihRA`2tBN?BgLf>%ig_i`gy!RB79NGVF zWdFO7{qIKhzZ=>A?$2ibyFaAR2reA$fA@P$r;**%ee6wy)AtAAe2#EG52yJ=;rx#9 zBp$B5=Fy6i-^ldnM&f5F>?JLI+VAeihVEnEHgrGx2SZO{g__P#p7EM)VHL~&MiYni zQS4t0J&k?a(9_xDhJHCaZ0H%r{$v(b!O?F;l(SG%`hH~=R*)<-!Y?!SFSD>qRFV;% z&3;7-6Q#4TI_-yseg*rAp^sw^8v1y4x1r~-n+<&eTW9DK*)l_)#HJehWR_&;SF%_5 z6M)E|g{kN782VN03x*zK4@;dymM?{E(ZaKQ#cZ~r&tSh657s<^EZ=N))X)pq&4!-K zmKpjCcDbR?X8$5yT%^4M_NbxfvMq)_lg%^qIqY>j8Y!3MD`ZCveH!aA^bnh8=yUlC zPBeZIdsHcqS-w1DKeH@s+%&@opT}NCelyM}C?;d*3yKeg*+vozwW!>*pVfAfa~ZpxBqnf_KgT0I zj)&~0aD0@xN8;}#3IC5u`3aKvV)9uTZrDLSxgAJuXA)!k2?zZ{QhtOa*3W;&Ek4S{ z<3sZJlNr04aL_*}<%dZI8GD%ITt_)j4?I33kB?73JbmaqeMp}ERK^~V@#&p}%Eu-0 z$tBX`5_n!dEP~@QTS_cuLEhLGpdGAbC2oqUmfQe2FaY0=dr>a0jIwj-TzoqZ9G^p_h+~z2B6*sK(x1 zioU^_J5Z^wayG>NkT>r_ZY?DiSz!Btx_-W^)J-d^R$pIH-+9Zr#jd+b4QrDP{iV_4 z4hQ;sC!)mObI07G#@NAWQwP?j#N5Xz=FUwUXzGYh8DX+y$d*3#76#kzG$N_KrBbfF9e|ZcvZiT5mu^8OHV{YWI{x+s}@lNc-856KOvlSuZ&CykV5w z^TsW5;yOAE{n_r(;qeE7oO)5#AGA zQsDjzT(%bx0WP({1BzU>rV#-{y8!nubSbvjr{s^mA4iVL>ytP-?7Z&EV!lxBJt?;R< zuCB)a>+)8&R=2KMly^sK+p5Y{RYEO+T3esj)Y@ELS)Es1QC^zYQhjY{UUN%zYiV9} zc}3lhBF48bu^*rm|>W!6Fu@ z+}1bHIXJgr0ZUFxX&B|pvc~wv`o>#1)&y&!HN~H6jRqJWY?y^NCN_rNvAntm0VF&< zqmrY?QFTr_y+e_sXIULb?>cxCx1D~(Ifw`B*J>Z@J?hzN< z68NbyQSc^o(gF{-L%`K~z`Y2ZTYEUu4dM!`_h7FZxJ@p&vnYgKj?=)6^?;+fMK3s- zplGGR}mDI;XHN0hg;lT9^~}f=Ar{05{cxy-65c z+|vCBGMA;rF9R+UI;IQwyaT#7A0Jjh@^auhBi9U^m;E-5k8%IKzFp7K-W$NR3Df+) zsMbo8p2uJxifMXO6<$8fr^+)L_ z+-*45al3${@>0L2d$+XR9c`?+)#J#EEE{lW9oG$KzRDYMp!L0?Z4B>>Mr^+N8R6oxA9oBGE zkFjtsXgKPZ3Ri-2y}UUyqV0yED<&?e;b{DbWiO=RFm%Pl6=*p6o}lba!?~WnQVoZx z@R+zV4M)Frh-I%sSrz zJ$6}55=%Qh8oy;PJ&NDPzs*8Pr!TAf=C1wwlFqSU@3RwXKDlpV)!$V3ewZF%v;XT% zdSuKbfBT+YsqOpsy>H(SC+^?X`>ZMz#=>K1b-r_K*67n&HEEGO75{z47fIvDiBjV#gM-lH+%|M*oAMf|`bUi3nij(r}oqLns@4w6UA&b8&y&HQqe*}9pUMn{T zC*|39?4`U7;9Ojb`tR$hJ}%rMRLaM$Xu8_(>n}{Y{0H_}%bWRV!1#Urk!T*Y->P4j zJRm9l?V9BB2Q6z6{h%5Pj4^WILlYnIsN0ZR*UK^|C5v!elGRwnHfM^2$40~^7Pl9@u@_~AMhVvF-|INaCSzr7n_6oqbf);g@WrbggJ zv&*P{Jx;p_uytL+9#^2loyBo6%TLz^xn)1HtS(jlEnVH+TIm%g!tXkwh)mlNfr@N3 z&q9gq(rQH)_GyfXvBp~ajl3F{#2V{eJPsb}=&c~ex@>+Q+$cJf{Gt2=|H5P|;LpKt z$ZyZakI4Q0)Z__)fIpd^-YL5Tefi(Z^$yY&Ml{^9eEq_Y#1o4~p zLy6^Kw*TAwNA`j2!$&EN!IeQeB_6smu)$59K9`J$yOx!m6#sMl58o~%aZKK!6hOMsSBZTNGJ{sC80@4 z`G+0ViC>I+i zUluAIZR6DcZdr5LR?Mpa$BJ|-k7oDe2|#x8-Hf*L=nZFIiumnphHJ<0G{pY_37zFN z1GI~<5tfg`5-qhV8mBmO9aCxj9CJ8#pOR8``e?Y6oqozrpQAw9=G#}qPM_~Mye^%U ze9k)jJd67p9bYD$$R}_%j>EjkLlia+2f-=YK&V?RF>x(tAsHBX8zKUZ6A*!X&*eLD z$__teho7>;Pubz8?C?`|_`hj(`1!d1EyZEuScc;iZjQ#9hPg-UGOlVIIy}_ZE%I{? zhwrm;j)nwnYYpS(oVzV6N4_01!mx49eFU!)Ig(*dTIa&nIhV%sIoYqGE(~&Po^!u| zK#FmzXNhBwvU_&rxaG4OB;QpB4-GiV51Q7`vIGoq?Vn|;eEdD=SV8A*wvac|Xgg>p z4GZU5Ldyb%?+eSSp#I7#I`=5jhCdw6Ex}Kngho-_geEuhhuw(#%=dZSj!RK)!C2j zluk_i-05@b;I|)`PDrkjOY6;jaF=iG6WK~PjK5*ggTIOE9k)GKYhS3ByEm9={1-ms zWyz(%IV5khsdh_hf6jddR?7Z7Wq+QsKTp}8r|i#vZS2o?X3E=%{6qWmc0=a9Kxc^~Q%~e1)4uSZq=Hxd0!=-S{RWKiZqG@yH=@y+;m<4`jH?aPpJa z-(koW?AJRza+cWak!Oe^k33t<_sBEF|HY?G?JRMX_^wBuBVP8%v&2b{e6{#PkDM*| z8;9D_{=Cm4=ZafB@?5dOBj@?-zvqbzPyBrG3ODB{XNd*kWskg2{JBTIM!er6FB0!n zGW#PZlp$_4;&Wg)n&Xje@fGKVQ0ABuS}q>;$c3WaBQFt4J+du+tX6HQfa(9zBNvMI zdgLWyi$`86W_#oU@g+WxDVGykDex)YbvdDH1sSNc%Yh;D43E4*oYs->Y2W^Ck9?i{ zy*eF~6Iv#2#(1QPdK|R>zCp>n25A4iRLLCkxuLM&-bn3e@9k`ZaYAVCov$O|Q|A6H z?Go98bKl#{4bJ`@+Uqt!4x#fR48PH_Q=rV}V#ZV7OcbU-#j{+Dr|kpdrHoB?QpRRJ zDI*gpWAm7lv58K~*c8aih4$cFu@5bAHWh`iIZcNjVmLB;2mPh-aEXV0KDW~Tn$OK4 z6z;uBen9yT(Z|PuKco*mTCYrx^2qe?W%>om4jZ`l6OZseQ2vMLV?XGVO3$;(|D5vw zTE%}w$=_7|dFB61`JVhyf0;jgng2p(FDT1-oOpykto#%77du?@j6bRLol^c6m0wC9 z?IC@XU;4V8^Hlw_m7lA8Y%bL08f1DT8ljKPW}a{iHW|Ju-k#5?d`~NX0)v_5llI~8 z|4hkJ&$76_0pg3XjzWKRJY4n*_LIqW;Y+|3w*%LEKU^bkuC2&VJf0BsVd%0Oe&clu z_KUYVmft=5YD>xv-*#8s&hCVk-})U3DRz%YTk(?ZI}dgr>8#$_+H+|N^PMfAk)-+B zha}03n!TpTZ-(vnzLB0DzC`omo%=?uKJ&?UY())ti8-}v7H-yeidLc8B-*V16iu2< z70x?76$I&7Z(DMyL3cDY1nFs?hF_u~T-$2RJU7KwaMMq#33Tdd)?X%{PUX#RpLE#A z2OpC-bqv_cMz;p+RkJ2YG6f@NX`gCVYKpz+rk_?X>eSQhMVZ{JI}1OB%1_C{8(Rq6 zKE2eyJAu`)JKL0&Pm;1Ef%&nUvLt~CvYtH>D1B3HwSSc+*$JvG`}$3^ye>=7evVCc zX@VY6F~#DoW?!uzQXFe*{ea?1`r#y@QMFu5=5zR!w5sOwEFJ~r^CUcJm)61)<@9Ue zJ0Y96dm)!=5PXf}bE1iR9&#lP?KJM60U}Pji#XA74AbY|@ZnxV+#DmJKK-h~>DN%c zKjQVrbz0x;2+?U6nFpL%UmfSibqB=p_Y9ldT;q9d@#V`8uHyl4v}e6H0PZ#5o(O<@ zj18eHX`K4Y_ZZe6&L+@zlaYqe<9LBE$AMPu$2|>PqI&po#dxni5g^~w!0}x~JDu-o zoal4LRbUX<8U$a*`Ek2|s|JaE~N@yaQ`g>m@saK{VAJKbsEg4h^W;GH(ncyZfL>FWos z-BB(7>UL@KmG2aAc|fpyY>Q;&`xZD}jU!0;UIs3Rjqy*h_VEi@1Lu#f$5LNC zE?|vAw{vuodeD$8(Y)baN2>kCfeTWPr-9>|k9N9z7Z6~MgY&@Y@)aU3Svy|@Zd@ya zul4!MH;lEPu>?5(IQTAbQ0Y3Y?^6gd%l8^^xa8zG;B}(Q_Y}@$8r3eeSx#g-{1|Ww zf-~?sz<}`-=G4tNUy6hJSpWNRVEM*%y~~{Par`kK;#iKmaG1CW1IK(cuGfb<0i2C6 z>O=M}ZYR!7ea{1@`y+D_+-U>Ha_M~i`pz0S=A&_}znSlO;MgB5AC|9@;y4Lu+^k7( z3xTUdJoRA;Nvdxba1#oLWz3|wv%qyI+#Cb99_MB~DwfB`3)?Xb2iwPwt2A&NZ^>{C z1`f-2E)LD*$+yM8Etmwi%fPW6b-sRm9R?1UKvG<;{5$P44m#aEc+(K9Rscb z@$5I-!1>E}#>kg(x*q;~X?v~n#c5L91p`-T;8^!C4(+nA#`%AEK`N(D*@q_XKUN6Q zlc`bh`HFbphILE~YpkrVc3L0a)d#@rG#=EJwzQ-q@NY|J*UH@7-KNXv%V9setoiZYmAwyEht9liGfm}n=)Bn-6YIWQh|+!g;_$?=;k~`qikY8GRI>dO zf70>Hc*k&I@7arK;yvRNQ5xGJp2_ z@$wEox1f1WeOi6hv1soGw9~t)v%cJMta3@m1nrF<>zF{E|MvaE&+e5uhQGpAblRu* zS-ZYao@bu3fQ|NcbVPf_(o?Tkc{7$e?fHM)oPun6nvPAd8dS+`f*rtH#3r~|UIJZ{ zSndYw9 zVGG+_Q!TO|O?T3sg{Ru;ijk^xkp<09#c01jq()TuyZBOYPo}! zz46*W;BPr)zpS4=zlD6RWZgKn={9}Svi9q`ji7FwqcmaGmD4a!^lD+A^zO<~}pMHi(A5XOwwt3SvO00Esn($XfmCdQHrw#IB4<;UhS*q~47Aj@>hM zA3r_4I+cbWwP0nPzA(L1)<$;6JP1c+S=p?t9F4p2^XcLFtW!7gh6DrbxlYw>rD`aoxpNCZu#8-5Yn?C((z7A+f5|mBlz2#Q~Z@KW!a5}Nm+KMEW59;Wp~`{ z`XsKyaUABe94}29hx1g!d%l5CPfiGwYikbXoEM{?KnRLw1Vn)DQ7mRVj~*Id&YYj3To+gjy`DQIlR4?ndx zt8ga)=A#wORht`YVmr6B)&gHwy0)scu4=8YR>xxasi#=ou9~LpZH+tXVpTOYb!~07 zu-<2F-GLNs?XjBn)+Rf;GK%S{zjF+H)b{qWQhQ|~^gw?did9%BtlxL>t#wV?s%j@q zQO*<(xG8G3x3<=8ZJ#tr1(O_ik~Fr}wc5$bgH{6aL4~ZD3|T?s2Nbf!qp>1h!E&ka zg9^6w4I8AkSXS?Zlc1`x^^IDvwz!6sd&Ei5w!1CX(%M)$No&-W$OIqqBq*CKL8#%>-E2ooHf}5h9SuHUDPZH)&1e=cZqp{abX}oc;K1>y zQ^L~!5tD4+O6}2o{Rwoh+}Cg4Y{&H$+8a08r5J-B(U~FL>fr<_k?^QJjG{S7)(Pt| zCTZGMvqe`z57V1@H53;^>*G#&CIPJ%)*lnJOEyWenpUu;C8*#N4mMB~U6oFWk<*j$ zoF=cPlcGXcA9qr45{M4!R%y9?@a<^D;_>?Wn^gDVTDX01)26iyFJYTT2T|hU@sfHJ z`V)>4*$S=_TocJt{F$z%H_fEEJZs4bX|e%WFGuW2i}O>>wyo{0+a{S)itBJ?qV&&6 zIOekIrn=@B5XFMq?d84wQY%Q-PYb%zdH&}v97(V9Yc~ryKkQz zRd;kJ;TV3JGd4Ih*0=A77mArTuB&ZlV|z_QRD$`WYpAgcFn{2Ac5L)O(O}P=OK(=^ zBZmeHjVwm*1owEat3iGN@{Kr^;x8Wr%il+(b_k9h&9>xupm3fi{9H@n6&Y#aXl5Ee zrOGywd#6*JODWE!6z5Wkb1B8S^lQVpG)4mn<;b~o(2zN^4?@;^1}S^vLH+5$hb3Nb z!{eRP8=ofQJ9LJ)Bmb6>o}5c99yug#@yKCO;*rzD$4r9>l>dE(Ob(_|kDMiTd*m77 z7LPnr6nNyT#2k-2OZ+U$Ej&s)M|{g8UoBqp$g{=M9ywb);@K!FL~r^#IqiGk$Bi6FBW%t(1sBaDYq*$!x*=gjgz=DflFlU!TyCD#^wnQuW{-vOq(5nqq! zmpgCFO!r=;PvWCKJO-b{<03h#aK}yj$~b<2;dtRbNWV;o`xH)(Gu^IVRN-fp{~hI@ zS3cMES+3Q}f1C1mD_@p#MLgerrn^b?^I8a3nk#Go7A10Ppvw%#5WS<&6R5T#URJs= zwUR)(p)oG}$4W;V_LcVD)wTa%=cVLdSTfLy1V}Nkp^Pc^mi64)*EwE$=b`nnyQssU zWGQl29DwiM&W{nX{rmc>4@4?<4>YWe^(MeO%N4*kHcNcuwsoWH4mS6dZCH0H-lX(F zk|2yeERrUoLXv6Gk#!9X4D{f$Q&H#0K*^BXLrwtkZdaKP%e^zZKH2*B+}Y* z@KDd_SR?{$f8SoNyNnDRj`2$@PkY8<{JJDhM~C3?TQ0?6sL|*9fpR`?A)>o)bhr~M zTm9xO3J*~#qiKp4}GWm3x-5l@%$GbaM1RUSMPx)ptrKuhn z=w?Hag3KIdOCd>+n}fQ@G~3*C$ETZqI^$C(p5FM>si!qQbzWY+<#_#C5x^g0@ND`i+$@fWka-CzGC(5NMe;d|t zOx)85&(fTY&)4~INvQ^BS5=AAjTEoCd*9hWoc9IJ~mEX{hEOG81!%`EfI|61R&VcN=ht>g&hxyTI32 z0OfQ&{J4Jx?ime&uW_q<En+dv?suQ%2&R2;5ZIgzSTIAm9H1LAY6f~7X~X|2XIkc zc;u^3-F{Q`IEFRXUm#vPjq`Id-itL;U5_Gwlhxw{a1U!`@U=eoI#T(rUL3FvX<5aAJ;^bHM3(6a$^C9zO-{gsUxiJ?>u;tRAO;`)LAw{(79m8v2?9 zxQMSF-vv(BgZO0ixCor4Q=wYjE;s3O)gKdB(=I1KIgRs=`;)*e$<(O0K7T#V6gVc- z8maZYiU6}eE&!*m-y0B@tR4axjB91^wLX76#(}#(0nT5KGz=Cy0q!#hGs_nN4!00_ z{c_&Y<@^6|F3X_DGjNGG9{(6P1;LpRXV_V|x9)+b^|AgB;J~fLb!V{F-vEj82J>OQ zEXQ3qOx!}Ov1=S26SZL%$@{iW6*afeOFC_n*fe&%J##pE@{5! z4IFMcE)Jh`JoRY7Hwv~J^>MuEcJbqO8901CN{Z_+aC0ZY^%}T51Gfz4W;+iXI85no zzJA=efy0!U6gOeumP~>>X5cV&x%&L$;5cx49AHXHihBw;Jq}oQ-Om1cTrl#*l;q<4 z`CbGrig@-L{bc%Vd@IxayUM`%^+kcx`t&@`bpGmi#Wf&UBC?^oaMt5lC*rM z4SlGRi}UL{1DtMWj!j)(JT_oAP~4pd?(N1zC+9{)b8MTqI(!?vhZneV8b=>E7G1i( zsd4&E%NmDw;E|!deS<-{FH0&aO3Q7!j+uAYHPy=>E>=n{w7k~KpyO;b%+9!k;i94q zZ(dh7WIuORV|DMGhFQI$_o3>vGc!B>?pXD8i)!C9@t$K7e{oOs%r6T&t0P@9Lt6DO zp3klf@%*#dFG@A)Pq;xWwK~F$Gmd?3VwjC=xF9=^r^Dx{8Y(%TqXT%0@Hw{1ZtXJK zh2wmxtc;xNwc|WJ9UYvXwBwMdp8L*w!RWYa=3Md8muhCoJp|5})~t!T>_K{R`mBi) zD2vKB%UKS(eEAO3yp%m6vL8pD=`vqjEGOb+P%Ma-uMEga-fQXK@*&HrxC&Rl{9$FM zWb)c&CoA^^eAPZzq-@S~fwKLHWmU3lUA+fXqsgM_c+f4vsv%Cd$T2xNTc2)IR?M+0 zZjfpC#E3~YvE86fB=dIJ`Zj>9kF0D~oN?{wbanj|Sntx8hL3{0jzoR)!Tk2y*QBRQ zf36de9?k^08@cvYND{cE$h$z&zF8TI73&_dm;Fk1H`DRn!Z7-rgK?fk|3(!~pKZ!; zc+#bq*l-I=F|nnX*sd@W8=v)^$Gv-T){n!zVeq=NaX8VB;%pp;cj`ufq)c-#PsK6u zDU=ZB-Ivdw3vkTGk>XfOajc~{)>0g6DUP)i$J%ci$J!Fy|9Ic!dK}lrPT@&kz3aU8~cfhTfjFX3gJEaXM|Uy);t-w3!G z6Tz_p$HO?hZL0_wF5g7VwgqE`$R0$-&Xn2L-S5o8*^gjASU4tGYr-u=PQrWd`-@29TIHa@NS=HDct8LnClhRHKjqN+|LCsnvg>C=U zIo1l%=PPj>jrYA;m*tOrUlwLH+2>I1@SU-P;rKk@yhu;r>;Mjq45A!I6!&cK`_gJ0 z{LY@@gF_>v_~43*Q+#lVne0kZd~jg=OYy;__}~l%xfCB#ds1xHj6`d4~9uN1iP{?2)e$_j=?xqTeH5E!sVDw%Fj2 zbHoyloGV_>)NLnQQ~a|>&J*8IGLz+m(#1!NcyfBhJn|wRC);ZAFBx(DIUp-~(j%9M zUXL6Rt2}a{_(8gve!h6#BQFy7dF0h%hey6%EceJI;%D5jrCd%ZBL3PV7mD|L z9nVSH<%9~v`#thPvDG7AD`t7*8^qu0#PD-M`QrCH@(Q^hT?gfaR*EVuNW8;Stb@q0 z#`QYwDCcVdJ~`32FGf4c0@ovp#A`SooNpI!{ZQsLn;#0vbDT<-5By4;&Ai#+K)VhE zXiOKvn5m?XO?S2Q5tyyQ^XS9yrh-25l6VYeDZ?m3${52Ob|EZIa(7T@p5kVL5*>ag z!LS+@cE1$!bbAvF?*L+YKad^DcUXOQ@EJaW@7@`aVp2~R6eJbKY`9* zzLKj8zU1nHFZJUCug-@nxgory4AF-X!BLg|y~>w3daSnSn!S#PZ$AA>ah zkg3OxhYv8kSaEn^aNMVGA5s33%KxJB&no{r%0I7s$>D{3C5IP$$>9ZGa(Ka)pAb*Z;b&}xhxB6n77U|{R$op*KjZauv2&Eo5l zFM%ZfsF(a(Wd};`+HmK-@zKGa*xm$uUCtXM@IhFR+}BUwgYZY0udhfFgiFMH14feM z+)iFXC80zRYT>kVtWy*vWBE$T>y?r3ZG*7@^)&( z91LvBJ|C^Yyb7mC>7yC1+(oG=_JW&! zI!sDB@$}kXr=C{h>%`M+d6|4V&2A3(fa9G>F7uo}<=d9i=BPlBn}jjIks=6RmD#dL z66Cg`E=tXiHQn*-rk~FA?k1kj#h?>U?_$uYr*$#t#M8VOWOB31rZ@)$rWNCTSsJss zHv>&0<=$9J%P(c!awALDPZnwLqH48zf=!?l&moc0b(iX6c*%wY;eCTWkluwi+8gjAb!}CL%Ofq3+Q^njb)+rQQWvSZv8l9ldsBJI_NLO3$gUfkN=hPa2x&t| z8$ufE>gw=!X9Pc4*S2F_>8+7sZm`1CcP9OD6Sr+~XR0In7ldNcs;9B@x1z+s8RQ{Q7~2=<+Jx-I;;7l3Qh zAo$5}Sy+dgNPyey>$hXTsxbg%ze>AwKDixpT8bU7AEF|s`k~R3AowNvknJ!B&)|R;3g2S zU9x=70*9YmaGl0w`|`aAoNhl}pULu_jWymNTvQKZ%{WN=odzxl7u9!{Ca%Y~QC9Q1 zOvA;9OHQ`m@=5BE2i!Q~wbSk5AJ6v#m+1cCAJ0)VT0|>@uk}5NbF+L+!12Dy{zcW@ zcK#sFWg0c^+ks2OMfCu13W75sF5=>_(OI|RoO~|qH`bre4VW5Tw-9T|ypEVJ^C6Dq z=*3~;DuL7O$9yzyrw`X+;P_0F4A)`cG7a2jpT1$>Fa%}!ST3#4k2_}ISng!F$AGI) z`tW%pDef$Al?pe@z^%u**)9w5jezB1`&~5&&Ngs!3>>d1Q(x4;VM=$)=f@QrI85nD zaTNxR*Kx9TsRT~9^ZZG0yMSvzyg5!;e}DNNGxDW9Te5tg0xqib@p(ey{QAxq`tl8& ze;k}O^hFGuUmrib>3&;b;QacsfYal?(7^fiEj0A;o13nOU!M)!Fyh&M{0yRTetpLc zeK>V-etjnpsr#+O!10<7>fKNg)?c&s{fHoGHK|MTw) zJG&$M#g_Bp`jTg7^;Vw8XT+8N{^hLt;mx0Y^@a!jY4BQPf zJAld+D=&gMN^?O4*=;x-4k+Ew$w{CT;w{1g)!Z{sje*fMMdGHc*;#X(hY;EQ_*0Lg z${}u=mM%U>X~&ywF^;K{QE@WWjt^2n%99n&O3O;m%E-#h%F3FNH8X3LQ#Z3bHgt{Q za4t$sLghAHkg+sv7OFg4#VTJ#vUHjAWk=GbrKR`bmwA-=aqfiJ^iaquPIm~QFqsG| z=Lm5c--|HLGa~msJgQKjrKn>#B_h%ed2jy#ComSn@AZrx>K_w1M|kJ3_Vf&PGvRJP zq=MapJ>z4}8PyE!i|rjyx|k`5J#k#ocHy9;)Ara$@^kLq^!JwaTbY<&JNvPm7;{?X zZlW~WZIzt6vEJv_`fj{Z32XPhk)9rrdk+)PeGA7Gt&@J+aOFJ{oD( z=eLadSS?Fbbx_gW!y@}MZ*05!Jbm`HD_uVu8PZ)kmcM3M_gm@cId*~SI60hcnLv$T zb2!VvXmsHbK9V`NSk6^pX`Tw%ySZHdj)0zKsXZeDrlQAXngaYqLwVC^Ls9oam$@j0 zv5nyyKnfNPXU$FD7#=6*S9m5Fz%mMOEWoiSJv?u|_#Nn1_1b%@gF4VW+Qg1XP76@}4oz{%PhJ4nJt2kynTB zLS74}<4L5BnVglPa#b4=C#BOMq6tP>1 z*zF1vyDh=h$7>j`jF{%%13&(R#ZbP0JMp}Gz8i<+1SwcaB!`S^QqAT~BIB62t5cL9iiV5Y&o zF;Z%&pf4b+@O@#qbOhczCkv5#6ludB4riC4Tby9zBXS>N@JSb~REgY=BV6+`tw3)= zNbtIC?uwHSL(Ch;@@;Lgy4KcMiuWzW`<9INjo+5|9f~jZt8m;?0a*@egxOh@aRE18f}TSwB1@* zpsuMxEG)!dOSq85FW872>(d!ScHSxYoeZD<1U}s+UqbJ_jEs25w-`rQ&g4n!ua?>* zNkhE;Xc)O)5$n3PdnT;q2#>Fj+Qzy3Bq*m3n1#8V7v(rl@qeKaQv6>j{;y~>#s5`Y zSSYMVEj(JZ)NQSeHMZUwEws1pNb!HQ#df9mzf$~PC9&;grFL{>lDQ(q{}t`tyFWHC zy8qXM|EmJGe(urZ{;Fd*ywAq&SI*0~jl%o+H|J=+^T~ZemgO-1CVnn-IKkZV0fz@a z*Itc@{BMoECuxZ0gC#_5xFw$v)pK?t?k{dZlb9Rnr#Qb-oL?!qDP(~KIxHXiVu0@tHeDXd6ww&$a6%CN4{EAc;wmmNmrdaTPIs&dgNU3zcbDF zx#H^{IZwRkk#oe89(kU4pGTfA4teAS;_V)Jp{VxA*NEjFd6CHS$cx1fGR*QV5nuAi z*NTS?IR_+9?H+lVnCFp8#6P6R_2q=ti4S_@HDZ@Xj*5jI`Fioce9|MA zhBR7JKnC@wM=lV%J#x8+<0}VbP-k$x zP$hRxQZF{S{vq*@Kcf6UrjJJYtnxkSA;|Rb zWqRzeq^(s5veW}#>RBwr%M3^UUspb&;`K&5NImeSo&}0~4Du7i!GDVW5+S~%e6H8B z{?bQzr4Oaj2VUx*tNg2#pQC(i(bM@4QV$;5N9beW*Au>0g=0}%)(7Q(jyU+Il|P}{ zRdSUfTymAcmwJ}P^~wI-pz4W2%J>z&cnl8N4zM55<&f#{A|}JJFn*uPSGFtik^K(; ziz@uA@@2mx{JfGS*BE5UH3naDjlq{(WAJ5u5nsM|36%MkK*<&58Z(#ZFDtE>epv(; zO7ocH6&pKp@Ni^9=jMjSy>Ak)n0}>19=k_m9wpm%9_&8SS-rEhCt)7?^Al36Z<8td z#z$`J-_mh4@$Kn- zMez?aiRr{#x(>}p<+6+zZ|fvN3DPvG_@)Z|N>3F*D0BQO%+{VFAB$!^F|;7i^$#U9Yfr`h~6`E=Ue9QpxAzH!+jMUbmLJ}`R&j_i1fu7D#MDRkQ*MUaWa zY%V1E6>x7&bEHZ-qj(GTPI0>MC7xXRanh8OiMJRFSdgbVJlVxJ*@(!P-;%D1ufCls1^*joaYEoj@Gd546)bu7#NT{sI77gWzl2 zVujODU&D#9jN_jB*B|(fm%|K{)2FvX*5{1k8cdVI(9>~#+**{QHURDja6$C_brO9p zzm&>r2G*R$6Xfg1y$d)R+i0gx{kTWacx*%MlHmrh_I6H#;3va1W8ko@wbQtp5TMT) z$F)X|E$wuiAGaI0hcyU(GTe`V+Y!zAlfD6K_)_GOpd{;n+sqbCDVTs0dI?j)K z0=Rq^71!a%eIW_%uc0`{NPix4Sje_6gl_{qwbHZK_e+G(r{mM6&9?O#>C*MJMczZO}Tn18LqR}UNO zp}HPxCaFg`aK{sr&%J(C`CbApNIfnBXD86-ju)kGA#NUt#$S=I9vgwv<7M?E^=JYv z(R_MIJ%9^T58${?tsROb-D~)3j+gSq@pk6k>SW`k0k|OiW@oU@8>D<`ST7I4Z)Qil z_kCTDzxCCl5;)z?t0t*O3vl-%UOTPN-_G9x?p_UouW|ly-?1F^NPy#*G~4+oaG1*F zb(s%8O&#~Zm%7!sx)-=a{APCnryw}PwT4PoLdh`Em|3+d0d?VG2o#%QkR}C&4W=aJ){E<%=I+ciUw$zO*QCdK_GD z==1kmC2+dmSjS}f9y9VSFmQf-$BlfW2F~ApPZ|33JjDL?>wCt~r|)lxaHoMAMtY7v zoF=VD1-?5mJ#n0Wb$$K$RsyHn51*!79BzARuOLp~b^+IJOgMV}%RyXNBAh=@BQx_i z&@_%da4foXAKK*fhn6)COH%_q14AQ6g7T%6f=&%AYPS8xd}%MSLk+&P4cHZ#{ao*} zozKoHS$ZKHvU+QKXDwR1_@V0buVmHF=oN)O18Z6KiyNO^x-i`PxmQG~)nWZ4OJu)T z-H}zC{UTFlZNMkwbD?_CTm0;?>i_ui%4bDyb_co6Eb^T#t?Ib={j6uR3azhDwrXcw zFY>L9nH|*~*U!Bns4zE{&1{facIUH|}k)E+bBZEptF?g-N zAqSW<=2>dVPt_sQ@Q#4HTE%{uCjB>1vOyakQNpv^IUoLU~M!k=?^w-#kANDnWB#`KJ9^TKy$%*`W#SjJ+6WM(Wz z=DEy#guGac1I?Js{aVO}$dhG-XGumblx2LHWho5*7-d0)No@w^ue`iG5SaZowTHtq z@Hd_13unxCXvapG=~XPy5kNvA+16}T=i!muT$JdtaPScyoLGDUAs_+IR=VW#l7wEo zoJ^`MzUM@oRD8tY;|mnr2#-jgE)GC1C)W~$a0wYe8y>Y8X;PeAXpIynSBjJC3UhMt zio|RQcMivUaF|aF5DoM9G)&C*I0$D~5^pJVaU~eUT8aGdr4gLc`JT#IhwnNm&aD*Z zR*G{g#krN@+)8n7{ibnl@ovdA*2i$D*T_uQ{+4e*my08&@F9!$LtraYr^Qy_*ggyH^hRovCXXBz zC*>VO=lGM?KV--jc41C<;8BWHI!9yv#hc;sAhn@652Zt=)@BHts=6X_m#zBuo!QK<4Q@Y&Qx z#E=o66S76IN4{2E;LTXM92k54rAM~K{T}&RY1?Pw7kT2Bif`&j_&K5Lq>ZBv%7M}6 zZY{|8e4mZ&VzCGPPnBFbrH$=YC3D#{Hxv?;O6GbAZETI~r44Nb!fD$n*Jv}9Z7f!I zrHr&P9vd~JoPkF-;;{h3^_tKEWt*7o3x}SAjE666NwJ|p+DbzHV-@}}`guaUKpzjX zUsUp0`b&KJP!6dNzSM`0*C&XB{HXFDqmR9Ce@-9zUQ)8u3w{4Y8UDX2{}&49sSgC1 z4}6(Vt|~WVS#J2U-1CL_Tc(Hqk4oQpih zNax5vf8X9q8&TWanQsxaq)A?E*SJCVgQ23?*{&f?fr7NIY6597@=KIJr&rlaL#7~I z<;#Amr8i3)u*s%1oOHR6#}pb>+gG`Raf;ol(@(QeeaWXfB&L3GYa5_njRjWey7;xF zOF|2*l0*hl)3UU>>;_eDqTN*K`b%3w*-a&|+Ip*6M+KW`O^YbCaKs0kD`*k*M|c3^ zGZ^pRbo>CmQJy(}^yB7nA8r`Ye5TV*d{_*}$iJ?%7(zbDRowL6IuXYvao1!e*0;@T~?1=t)RxrDt?*oU&W7p|A zu0V)BXXH#gbLYFLc-#_z@LJ)z)xhDkM*cwIQuyp{9_~26xTD($ToC)9r|~Y4sGZ$* zQTomS*Y2p6e|6dU-eQ)o9Pd=fT9(g-pR9b9z&(L@?X*63{Hc7u3tXb|$?IPyhQBZ` z-Y$CIcA|EP0(aaj z8wDE3W76mCSfvt1_9jHul2DUJ8_u%?T_M}i{W?`lXE-sWjXw~`wbi}DOtWm zxJL~feNtQ=-YwY%)Q3wdDefq6>^I^#4t2h4 zC$oHC1CHe<&a}JmwJ0boB96Gz@e*?;(lu2@H(Fq_nLuQVBq}y zk%o&x_Xqc<=<@k-OAH*kCMm8QI2-Y7Kl)mqf1iIlaG%f@1#tS5*9LBBuCta3@s4y? zbaBK3H>_ih79`&1-?pPB*50|dzbEKE|F!E&xywJuKL1))&e-QaTaG}dP);4vta$#T z@&_=gMn~~8?fpF?tL?Q##bx&G(rVu>Eq}YHy>U-Xb6aDZ^EcLp&8NdEq_urp+a3^7 z>}hMQ*+aW_IwyB|s@7L9aJwLrOKrdM570;ZVJQjig-H`zG=1MQWf~2r0g(yZDI<*Q#V;CiyjPvE5O$v;^)~hR%w;287*+bDO3%u1^{+_D zj`x$-d2MKy1AV;a>4?waW>|I3Fv`O10C`q3bO^t9?JP5Njt;1oboD}5@++fIXlbo$ ztBBN9RW}|kbxK@S-Bc$c-SOfVz2W$Q=|nFxePN5;bJ6X{@<%&z7FPevZjK ztvkv}_B3v-@dZ0$x^b|p|4?@i^1~ME?w);pgFQFr$6_)v#^G(Z)wNgICHZzd?@{z& z)oT1v?>qT8O~Cy?=7(#n>(cTqP9D5EB=PAS3}8_-+B-TnA{YD+QPep$Hqy8E&{)r? zu@0sIldKFT7%Im4jwl-G=~ptBCX60Lfr7a^0n^tYQ}EfwyukH2uV>=4tH8;a7U1hR zUjOF(Zp(Rx!ZB*G&q%Q>tnYnh>XfZ#4|XfF0GIE%Loqhe((}-FC$Dlt&h(-`kZmcp`3YZr{g$ZnD>o) zA#Bnh_!>vw%=hyU-jx8?+u0xM8c;VE+%-zd*1=G$xU{&!wu^ZiQGZK{i`T7NXWOO4 zr4>Q#$eM1E8K$#M`8K@|vwK#9=sji4`g$h)%*-?C4HFf30E&kGF|EA+hSUGkFJM%6nXFpec z|NFDTU%vWnxyL^L>ia^!b4U0G_k`Lq#n*GMue@>Fg^AJ6zcOd8Shnq7!)etQmsQ@r zWX`Jp`08Kv&D~qQ_j7wE?g%wn9ogz8@MO_#|6F;8wRd=PEMN% zTt~2S9n(PlDr(j>cYuq7>6?nNLxC$ z<8UjnYi_7nwaTs;8W`?N_%t_NL%NB0o>|zCbs6&3WA_?KRaR`(@rZddE6P55)EkbsrJg zdsyr}{DsKu(}>&M=WOf~yAAU`DtI1;>dz}sFJ4h}w|v^N##k?ylf@2q_B)l*vEE7@ zF4jc{*r|=9M4W_vX?rA*U?D|-+Qb7VO+(2){x5`V8;xonvy%JnJBddMl49Ls}4V}1LMIK|T#G%$X0RS)^Dk)F=6 z9+BPPT&9xX`pT7?Ga}tB__ftPGRi%AXWv+tvmex5@^Y@uzHT)Pkctm{VP*X0e*rb; z80Nqq%{eCV%kURhbb<}I?xZB!LK#h#h1bD`P+BsU!B!I1ftfH?q}kvyWwe-{k(VBx zPpir-hQZ(w=8WkJVDorQ`qd6};d~f5BGAex2w8H2Yvpvx5)S_x3>x!buE^I?t9E)i z{;y-8X=N-?W#J-LSS}q;p-Q)*j%zkk9;Wk;H_BTd)cBEVnFT=t6@LC+FaC20z!L+k9iTmX@*UPh1 zr+JwUhwrm;j)ug+q0v}p*I3`-9=S@DbGK#XWM`sij2P$~=dFL_(4feD1aCt*((;rs zV@w6H&En)Eavx&wNf)hDiCnBE0LW*Xuvme=5E8uZdpZ>m z;4FL}wwB`u*6UhZV{PqQV%v7q+agE33Edid8i= zZr&QJu#3klx}AFXE4?a^qIp@pl; z3U4ScTp5+ItL(D33v0EhpyCn@>&kr^))(GT5!X-(4Qt#VJTjB-l^NP@oNcI%s>q|Z zQLRGf6XL(4wVX#$em%Pn5*ptasvmJej4}EdCxm13W#`lxlizfN_=x=9PJkMZ|LI8a z(a4>c$jcpz{KY%S-CFq8!j zvee6vc4}f))8EWcGCLQi<|yFWc|Pc9y+`)8F=Hrg{&VtSsw0E+3gwa6*-6Y z43G5f9~n9{jB}LDxxNcYKo1ww6)?gEyjmbI$d~03PwyN4m zQ(EL-KB$m2 zlOZdJ{D4BXcr;enuEKJu@Pi7r^$i=Owpdp0gp;7EvGt8wu(r5{m3zcV(6+lR*3#No zI!SBPmdFGj@+2smEJ3O4qem^=3tH;7*2WrJZ;ck(vWFXWjc&H1B^x)ER-h;!*1*QC zo6#&@+@?)->AFI@z=7LG?Gl#$kCrbG2<-UIVW?K~idJFB18|_kz!H?+7 zkZ$#Gf|N*j)E-9BoFwan^%#>hZL8U$E1`$!&Ab|li=p*#r#zE@)(h*83ECx_Bw0-> zSkn?z@CgSSsEV#ir^LwV$#_naSJO#RA*_!(DL4s42X(8o+&=hrv|{mief>?U`*1DX zKDcSqT85XfO{0S-aq)ObJqrB^M~Q3&R|&3(=upT zVRfWuJc^V4Zk`Mmt|}?Sm4Z5dj%YlyO^RNl(GP@bt2f8wh$^)8l3f&Pj?0Mlsvu=x1MO<(t6QPnx6h8Mbw($lv6$zDV&;wOYTMb^Uegej;J$8;8oL1V2cM5d z4-|oVb?MFO9Ipw5Mi$OWpsPVX)bSp9GY;C~+=SyP9L95v`*rN{ZB@AGV^(@MA2zsb zI?{tT7Uz3)M1G%lKGho!7yK~KLc`(F17+>RUj!t07Vv!zL>8`{AyfEY1rYB(!y($O zI?f#mRy;>&ewy&|G=~9zk=$Nor8sI*95pG9niNM(ilgS&hNI?R^!6jn-?TY6XUM## z{1aq;esi29yzwEQ9QMg+GJU;HjvTz{(|vM=_@63&-c!QZb^WqY9@;ScH;)_=PkH39 zIN_1g#Ctt5h^akthIo~mu3h(&*S}%Nl+u}3b#(^kCvO#dZk@lok36_0x4^`g%s7l}0g4yyIVf{hvq1Gu99Jl$hAFGxMO3E;tk}?b+qzvOhDbH3ij0B~871!R7 zex0+iBD6+v{MhmEF~;90#9j390mg$zc?KB{e}w*0#Q_BQ0Tuob{S}I<2zs8O4FA6? z|F4w)_saL^NByLJ_)w7`T9=&L1sTaP~8&OeRGtL_LMT(LHa1K^idA! zBfZQIcAU~*sQg9Bhe3`EU!weLm5+@zG92Semakrwui6)0tHLXVTQbt^5gG zlnno%@;NV1mijTsbv^^c*D21aD%I}5eL(4X(Wm#zNovLJzyVqx#+O;YdDC7_V3^le5|MI zj=ti9TMjneQ5xI85QDCT>{jyb1NtgO4Q$ zGWrZ-&WJfkrq~9WD{Pt#Ad~+RwU_CqT6MF!lU@_?fp8II) zGWjpjgEGCY`4k6lU{*7=hJ7iEmOGQIO~41{MwYLgBxPB}WRWG4M3$CM5?PXf^UEzz ziE$s%^k{lEN}!a?X={^&mnX=F`0@l8Ay+9EA= zk*XV;N=vslm6vR9DlLiZy0NLGB+`bEHiWbxq_M894u5w>u$7^0$GXTnu_LNxORXcW zhuF{*+1A!lRZ|zKtFEeuwAS5P5%KU&$VbIw&n}qrji*TC$tCHtjQNx)ADX~s;qck% z2~Je;P4o(q*&(+H9C&P(?*{NBUjg4|w9`u=S$OX@aoqse8U!EF()}AiChlH@W~(@Q z8rP3=6ZbIW76O#h`M%=Q_g%#E{X#pf@0&i{zXFh@LGU&1?-Wi){S+rUFNW#!&--u} z5toH9?eysj3g<5IAR`?|tUkZpIG5qTHSt8bWVmMFYBdOcGTeg!abFLJy9N~slJDD- z;I3aBa^UwkJY7qQnxJQ8F`>1xwa0juL$n^;AlHthT_mT#|Plo#m za3=!beh+KF&j-L&VURwZ0LO3Gx(tl|5pd>pspI^(Yi9)G7yMJ;YJ=npTtfidTCB(I z34nVrAnr%Nne&0J@3T13=gjVAti#v|^7Z514qRRU+`)jjcL&5h5)k)^B)E_I>iaq1 zg77YGzSKy-J zW%rjajGIg%+z=G!80l97hyS7y$0i(@M&z*tzAOXgN4kvw1>%LApO|;i?Kh?G9B}Q9 zYWY{!ccZU-#xTTv2Gfq9yZohmt@8Zs8xRxL1y_j zV$kbxz`T-`uL-zG=V#R}7l9j&XPdO0d$E4a{?$&G?{Nf}6uru3w^1_OsFE-7x8ftx)EuGhd}X+EjGaRY~?{-n5L1`bn_i`$HI zvt3RAw-8~KII?l*cJbq$F>vhnWVqA7bs)YHM=p+JxM+!Uza$QyzLMg`f!l?6;y4bI z={o~lg~H971eaCnJRej7gDEblz82t!;en~k#jVG=*?z}?)8igfQc~Or1BWRoDef@? zhp8qh?kNL@sU|7z83Tu@CMoWD1IPQYZs%nGn6eH|4|g3B(8k3S?yn(r>)^tjUVA7y{O z9l-S>yb=e;rmlw{cN#ccni8k)AJoS&i&q`jT?B4X$Q9lD0k>WpKA$l$W8r5z zfY1A#Z)RrUOnf_7Jac$gU(UtQlAnL(`1z}|&oR&Y??0a@^0qv5K0`cMef60Q&#r#u z!quO<7&$fj zODn1GF{STnp;`LC7f8-G>QOmlpJATC@?f2r_T2X!pXdLG^I|lp)8A>9v))ry)b(aF z;4%}s5LTx~u?xAStwqXsXO&_5RTyR7JVX4FhOnN&!%~hgEav>AH*Edn4;IwQF!>wa z4C2`9W)Nvf8#)KOLG~sun6ELg1Pae2(YC@7unQo57K^F#_Nvy+b?t!FG{n}&G}a8I2ADF&D<-k+4cnWm?Q%1` zrFC0Rin#uw+ptlv^O@xQZgpLd?*M4V{OecdvvG=w?Nvv0(cP8{FsIKS|HjJB*>!Cnbl(yE#* z^>!JI(zj7=mjO0D=fMUL1H5&69n13=&g-k1+Uhty9=En`Z-S{9j6M6hVO(XyWD^f+ zoO>s;nKwV}%Yvf}Dc+zIZ%~RiD8(C;;tfji23-l>Al?VLewdAeYXG@8crQ%xwm76R zlkv8^(f!@rXr}M)r_kW~T_(kagn>qSB$t2Y*Mke`-*JsNOK2~lH}8XlI{XIl^>Ce@ zYw%oO=h`{viwK%vc=RBifm^W5b8BG%WKvP_LD;!Y3V=j&dEcdR3BZnEEQSS{v7Uh< zhow3L`tFx{@kdB%e-m=~Oy<+l((%hXlH<#v=NUOT2zngyU-8?p)91%=b`*ykx8(34 zNIJmedMnrexwg->57{;;jvP%m0V19hM~+LsQJ3P#A(6`@^fxJvoD@e+iX%re>iieu z$O-UVptd5%p9}8AP1bmR#&dxSx%|%s+A>4_Adh9;^u0Ic3;dqT7x=xY^98;;l!Pzv zFQ&p5`0c6i1>P49#uvzE9OrrH7YN+=5lJZb^F$>WH-aIYvInS#`aik({3*Du9QM!`wp(Ruad&HR-2@N^1Nzm zt&Nr0HBxA+Yqr5+RwM;5iP|72yTK8*x7!}QYTrOp* zfsD-8N|~Ai5*&xNOQr@>ueyUf`zWk7h7D@c<+YaJc{p2gZ zB|R+L3V+;ZUj?~*BV4|PjpFy2261sYFJ*oBlEQ~8w8Y^1>a=-N2#<|&!lfFYV_Y71Ijq8>~ ziN|D~_~W*t3%PtPiQHK46*%}klx>D_Z}MA(3)0iVD>Bl;(M*Ty>X^j56MvC1!5E2u z^8^I#l1L2w&{W#)U=uq+Gypv~g>Ue@N4?ZrJhR*LH@ z#r2iq`bu$qrMSM{(p+D>8#MI|9!T&b=`#hkTEI4yKU_WBIWpGQ*^jfqp;%{kH%KU9 zdy6NAq1d58=O?E5bFYZp-!s@lc6`wA4-fYZ?gu~iz}}($QT|qJUnj&v!}wL|(b1dN ztt&4@p#L|s_u)6R+lKay?Wk`-?9idH;X`BIAIx^QBO)Gj5CcQqJvZ+g8tLkpDH;cX zw(&!u13iOdqc>u^QR&)s#cQxnlJ%VA_ux@e{O&Z%*yH?^x3{b%>xxTPmlUrrd&2_D zpZvbT{mt+A8Flv^?!(V=+xQ{x?V~*-qkHhn0wY7C#U*>HhKFmxb+M;u2+vJ>+It3u z_c$fzwo|vhPA%SOpH$VzKn;Eue9h=^e;>E%;b#(t24(X*RqL{4H81@ka-C1$-|a0b z^8NgHuwNyw#fBbm=GN_sHKRQ#HMce5VV*xszNVIhvCVCpac1lT;xmlbWpTs5>nxED zna`$wAzh4f&gpxp#+q z5E-8jxe(`Ecc(lba-$*tJ>)*f{VJY3VU+2J{{-ak;GBCBDSuGOI{tSdlj0wqj2~9A zj_-iH9P!*!#PmA|R4yAYPE9_!#wVBip!XsZL_Iu>0SmBYg#rgP%4o8@`fJoaYZyQ9?SCc~?>M)GRy%gjp{Nkw zqKpgh9OG}mzIFP*$t~Bwac-LlJ08wqGx5Sl`##DXCg@(tI32sF`2VZ@@#A>-es;%gKi8}xicrO^ zAB=2tz6Y4D8LLz&n0ra!LqNnAx7FUz?_l@k|()+5`uLA7rc5*Oi#v8dDK3ITiD z*vMGtUiiKG49~!d%u4g)2vWYOFv&+^29V~(lu5DT$UOslV`DwzV{wYOF6R+e6yd?t zGZDp8x=TTzdukpd)mv=1X@Aq9NbJt>p^{jcpZv{OT0)B5BQizF_MHd2 zk91b=Z0$*y!daODzI(f*m)pOuzxqI=V)sD9+E{Ob9Q48#QVeWh5n_AGdT#CO9Iw6e z(E8Y22~y~lF{D`ECddct82ZmLyA)>wP4v3ev0z6zE2yiXg3)K!xrpstD3meidd%P)CrSP&zcz z6jwfv4ENOb>?`V}isa;im$as-Vmgg!q@QM68XEM9E$a~Ey1KL(rr8;~3~xeTxU&f> z5o9`1m5`)YzeGp6>8I0+I`K5SP$!>e|LNq@>^zzLm*_c}e#+fuc2&Sjj!9(i03T$& z0$z6rQUsZvkV5wXQUtk#kU}>*QUsa5%$7!yAk&rGxWG^0l8~HhY_w_4ZEpJMToO95 z?g3uTLApR)&N{j7jww!QI=Su}CJ)j%X6|N3F@2DpGSj=g#>7+Tw!n{I=-N@|#{&87 zjz7fM)!Wl`fWq+5FqTvg^3*kl#kulR#N)J~t`)zE`Gfi;Jd8f3(g&p@YPbQ9KHUgC*zI?kVOHVQPRLGU%s zpYOfEVVS~p8rP2U=yOJ%1n!uz=A+|o0uHbJuG^U9tPx_VMD7DdGTAo#-2|BiK3y$v zwmftGXnp^I6H{L|aM^%RUnLH$&n=(QHwIig;8%z@W@Y}uF&VI9*@DOOR`uz2H7`SB#a9zH7JP#cH z%l_C1KiPPB8K6YmRQ`IL$J$(Zf_(ksWyum;AG$Gs*Qfq^JOQE_?hVsUS%EmBH8g{PlPlnFgr`H?48aO*^g6Uyl>Ot=r?20e zflFEs;MiZ!t1b$IH>BiRb4JBCT1z3&3G2lH-{lH+B2@=hKV8CE_0YU8K=v#i@7{9Z4P9>2tLM zO9zX`fO|^KAq>Xjcf4X9xIOb8*fV*hb2~zK5}~9Y--U*CkG4?{MozGJ{GRQi@rf_u!s6&ko}a302?9XY_djDf4i ha}EF|ZZV!LXW?73b{aU@u`eu$B`V_(PdjcqF9zSwqnUrB-ycv!&t}28luaZ zkt0JA?8FHP1V{)+V1bxj*adc%McD+%E{0@bmtzAs5Fjk<;y^gV;gA5~_~HNe)zMwu z8u<|Mn9qN=_32U9d#_%-_v+QFqpQ1@Z0s8C>95PXGU`4mjHJ9af1}ars;bqJWM3X* z>=TR?{LlZLFS8ANpDSkPb6TC(uxX#qzKK~GPJisL*?FCh|B3mhI0F@HSjO`$>si2i ze)VH4V4T5Oo0;qE`3MW@^CP#hpn3kk5*Acv&Z=veIBWikdQ-rl&Yat%8tx{hsZI2BJ0CDX~Sf#jk$5LPmB&F2Ab?lHmKdsC`mffU889m+i@t>ne4d{ z>6WhKK>fhLaF4ofa3w|)UFn3v#6}bPa%+NEQP#FGag|7=y7ng;Y;u`aWHO;B$I^*$ zhmKNEB_Ru;R69~#DNzt5uj@)u0d2#>wv=>jODPh%SV|}h$@GSwlJm)DA{vmYY#+G@#UW3v8g{1~y3g0VQom zuoKb~bkb4M@CA+RNW&RYhm0to5~3O5nv5wUf=XzFV5VY7JlQ*th<7$@h9||-sT&!B zVK+jGxadu$M!M2H{RB+il*CnhG;u(r4#{w*uTvsKfeb9-JyHvm>Xk7LAMK@}67L;2L`1!b9(@T8 z@xJ6}N^qw{s%tPoX+I(SfLqsxIL zN+Z1nyT@Vao<#Cs!cM1@X$dDS07jG$7F5?tR|1>#LRn&*N(|Zvx^_H;QkoN8D^A`F z+H7ewBw?_DLvaCv0Lk=0T^n?%!9*IT`k*Qw6g7l@rpqFAV-mp`JP4ybXON6)yE3J; zfOI{ox<1kzNiEpuaCcI8Yft};aXUd7RVvQpT3mH@bq^$1Z}eyu` zJ7foBr&~MX6sPQT9*XH1OeIsRhUNUGvU*L$nl-CyD=>F4=QEWR0I!KgE7#VpSyx5# zntge%ZETKl&M~=>2WO?sNilZMY#$*4H3D7AminXqP5&~o^)Z|ykIabqnRTM@(dalY z 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

BFQ}ztkb8<>nH`1s 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Ðy$za6e4KJq7w19HbA=ZrQl+Ag$@^jDkk}80Xe- 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 literal 0 HcmV?d00001 diff --git a/vendor/cmsis_rtos_rtx/LIB/ARM/RTX_CM4_IFX.lib b/vendor/cmsis_rtos_rtx/LIB/ARM/RTX_CM4_IFX.lib new file mode 100644 index 0000000000000000000000000000000000000000..1809b68a6463b912ba983521882d5e642d89850a GIT binary patch literal 513818 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ξGqZNdlF%#3Q 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

j#`pJgHt&0FBuJ%oijpPyElF&PEO7f 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 0 + + MOV LR,R4 + LDMIA R0,{R0-R3,R4} ; Read R0-R3,R12 from stack + MOV R12,R4 + MOV R4,LR + BLX R12 ; Call SVC Function + + MRS R3,PSP ; Read PSP + STMIA R3!,{R0-R2} ; Store return values + + LDR R3,=__cpp(&os_tsk) + LDMIA R3!,{R1,R2} ; os_tsk.run, os_tsk.new + CMP R1,R2 + BEQ SVC_Exit ; no task switch + + SUBS R3,#8 + CMP R1,#0 ; Runtask deleted? + BEQ SVC_Next + + MRS R0,PSP ; Read PSP + SUBS R0,R0,#32 ; Adjust Start Address + STR R0,[R1,#TCB_TSTACK] ; Update os_tsk.run->tsk_stack + STMIA R0!,{R4-R7} ; Save old context (R4-R7) + MOV R4,R8 + MOV R5,R9 + MOV R6,R10 + MOV R7,R11 + STMIA R0!,{R4-R7} ; Save old context (R8-R11) + + PUSH {R2,R3} + BL rt_stk_check ; Check for Stack overflow + POP {R2,R3} + +SVC_Next + STR R2,[R3] ; os_tsk.run = os_tsk.new + + LDR R0,[R2,#TCB_TSTACK] ; os_tsk.new->tsk_stack + ADDS R0,R0,#16 ; Adjust Start Address + LDMIA R0!,{R4-R7} ; Restore new Context (R8-R11) + MOV R8,R4 + MOV R9,R5 + MOV R10,R6 + MOV R11,R7 + MSR PSP,R0 ; Write PSP + SUBS R0,R0,#32 ; Adjust Start Address + LDMIA R0!,{R4-R7} ; Restore new Context (R4-R7) + +SVC_Exit + MOVS R0,#:NOT:0xFFFFFFFD ; Set EXC_RETURN value + MVNS R0,R0 + BX R0 ; RETI to Thread Mode, use PSP + + /*------------------- User SVC ------------------------------*/ + +SVC_User + PUSH {R4,LR} ; Save Registers + LDR R2,=SVC_Count + LDR R2,[R2] + CMP R1,R2 + BHI SVC_Done ; Overflow + + LDR R4,=SVC_Table-4 + LSLS R1,R1,#2 + LDR R4,[R4,R1] ; Load SVC Function Address + MOV LR,R4 + + LDMIA R0,{R0-R3,R4} ; Read R0-R3,R12 from stack + MOV R12,R4 + BLX LR ; Call SVC Function + + MRS R4,PSP ; Read PSP + STMIA R4!,{R0-R3} ; Function return values +SVC_Done + POP {R4,PC} ; RETI + + ALIGN +} + + +/*-------------------------- PendSV_Handler ---------------------------------*/ + +__asm void PendSV_Handler (void) { + PRESERVE8 + + BL __cpp(rt_pop_req) + +Sys_Switch + LDR R3,=__cpp(&os_tsk) + LDMIA R3!,{R1,R2} ; os_tsk.run, os_tsk.new + CMP R1,R2 + BEQ Sys_Exit ; no task switch + + SUBS R3,#8 + + MRS R0,PSP ; Read PSP + SUBS R0,R0,#32 ; Adjust Start Address + STR R0,[R1,#TCB_TSTACK] ; Update os_tsk.run->tsk_stack + STMIA R0!,{R4-R7} ; Save old context (R4-R7) + MOV R4,R8 + MOV R5,R9 + MOV R6,R10 + MOV R7,R11 + STMIA R0!,{R4-R7} ; Save old context (R8-R11) + + PUSH {R2,R3} + BL rt_stk_check ; Check for Stack overflow + POP {R2,R3} + + STR R2,[R3] ; os_tsk.run = os_tsk.new + + LDR R0,[R2,#TCB_TSTACK] ; os_tsk.new->tsk_stack + ADDS R0,R0,#16 ; Adjust Start Address + LDMIA R0!,{R4-R7} ; Restore new Context (R8-R11) + MOV R8,R4 + MOV R9,R5 + MOV R10,R6 + MOV R11,R7 + MSR PSP,R0 ; Write PSP + SUBS R0,R0,#32 ; Adjust Start Address + LDMIA R0!,{R4-R7} ; Restore new Context (R4-R7) + +Sys_Exit + MOVS R0,#:NOT:0xFFFFFFFD ; Set EXC_RETURN value + MVNS R0,R0 + BX R0 ; RETI to Thread Mode, use PSP + + ALIGN +} + + +/*-------------------------- SysTick_Handler --------------------------------*/ + +__asm void SysTick_Handler (void) { + PRESERVE8 + + BL __cpp(rt_systick) + B Sys_Switch + + ALIGN +} + + +/*-------------------------- OS_Tick_Handler --------------------------------*/ + +__asm void OS_Tick_Handler (void) { + PRESERVE8 + + BL __cpp(os_tick_irqack) + BL __cpp(rt_systick) + B Sys_Switch + + ALIGN +} + + +/*---------------------------------------------------------------------------- + * end of file + *---------------------------------------------------------------------------*/ + diff --git a/vendor/cmsis_rtos_rtx/SRC/ARM/HAL_CM3.c b/vendor/cmsis_rtos_rtx/SRC/ARM/HAL_CM3.c new file mode 100644 index 000000000..5ee916850 --- /dev/null +++ b/vendor/cmsis_rtos_rtx/SRC/ARM/HAL_CM3.c @@ -0,0 +1,274 @@ +/*---------------------------------------------------------------------------- + * RL-ARM - RTX + *---------------------------------------------------------------------------- + * Name: HAL_CM3.C + * Purpose: Hardware Abstraction Layer for Cortex-M3 + * Rev.: V4.70 + *---------------------------------------------------------------------------- + * + * Copyright (c) 1999-2009 KEIL, 2009-2013 ARM Germany GmbH + * All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * - Neither the name of ARM nor the names of its contributors may be used + * to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + *---------------------------------------------------------------------------*/ + +#include "rt_TypeDef.h" +#include "RTX_Config.h" +#include "rt_System.h" +#include "rt_HAL_CM.h" +#include "rt_Task.h" +#include "rt_MemBox.h" + + +/*---------------------------------------------------------------------------- + * Functions + *---------------------------------------------------------------------------*/ + + +/*--------------------------- rt_set_PSP ------------------------------------*/ + +__asm void rt_set_PSP (U32 stack) { + MSR PSP,R0 + BX LR +} + + +/*--------------------------- rt_get_PSP ------------------------------------*/ + +__asm U32 rt_get_PSP (void) { + MRS R0,PSP + BX LR +} + + +/*--------------------------- os_set_env ------------------------------------*/ + +__asm void os_set_env (void) { + /* Switch to Unprivileged/Privileged Thread mode, use PSP. */ + MOV R0,SP ; PSP = MSP + MSR PSP,R0 + LDR R0,=__cpp(&os_flags) + LDRB R0,[R0] + LSLS R0,#31 + MOVNE R0,#0x02 ; Privileged Thread mode, use PSP + MOVEQ R0,#0x03 ; Unprivileged Thread mode, use PSP + MSR CONTROL,R0 + BX LR + + ALIGN +} + + +/*--------------------------- _alloc_box ------------------------------------*/ + +__asm void *_alloc_box (void *box_mem) { + /* Function wrapper for Unprivileged/Privileged mode. */ + LDR R12,=__cpp(rt_alloc_box) + MRS R3,IPSR + LSLS R3,#24 + BXNE R12 + MRS R3,CONTROL + LSLS R3,#31 + BXEQ R12 + SVC 0 + BX LR + + ALIGN +} + + +/*--------------------------- _free_box -------------------------------------*/ + +__asm int _free_box (void *box_mem, void *box) { + /* Function wrapper for Unprivileged/Privileged mode. */ + LDR R12,=__cpp(rt_free_box) + MRS R3,IPSR + LSLS R3,#24 + BXNE R12 + MRS R3,CONTROL + LSLS R3,#31 + BXEQ R12 + SVC 0 + BX LR + + ALIGN +} + + +/*-------------------------- SVC_Handler ------------------------------------*/ + +__asm void SVC_Handler (void) { + PRESERVE8 + + IMPORT SVC_Count + IMPORT SVC_Table + IMPORT rt_stk_check + +#ifdef IFX_XMC4XXX + EXPORT SVC_Handler_Veneer +SVC_Handler_Veneer +#endif + + MRS R0,PSP ; Read PSP + LDR R1,[R0,#24] ; Read Saved PC from Stack + LDRB R1,[R1,#-2] ; Load SVC Number + CBNZ R1,SVC_User + + LDM R0,{R0-R3,R12} ; Read R0-R3,R12 from stack + BLX R12 ; Call SVC Function + + MRS R12,PSP ; Read PSP + STM R12,{R0-R2} ; Store return values + + LDR R3,=__cpp(&os_tsk) + LDM R3,{R1,R2} ; os_tsk.run, os_tsk.new + CMP R1,R2 + BEQ SVC_Exit ; no task switch + + CBZ R1,SVC_Next ; Runtask deleted? + STMDB R12!,{R4-R11} ; Save Old context + STR R12,[R1,#TCB_TSTACK] ; Update os_tsk.run->tsk_stack + + PUSH {R2,R3} + BL rt_stk_check ; Check for Stack overflow + POP {R2,R3} + +SVC_Next + STR R2,[R3] ; os_tsk.run = os_tsk.new + + LDR R12,[R2,#TCB_TSTACK] ; os_tsk.new->tsk_stack + LDMIA R12!,{R4-R11} ; Restore New Context + MSR PSP,R12 ; Write PSP + +SVC_Exit + MVN LR,#:NOT:0xFFFFFFFD ; set EXC_RETURN value +#ifdef IFX_XMC4XXX + PUSH {LR} + POP {PC} +#else + BX LR +#endif + + /*------------------- User SVC ------------------------------*/ + +SVC_User + PUSH {R4,LR} ; Save Registers + LDR R2,=SVC_Count + LDR R2,[R2] + CMP R1,R2 + BHI SVC_Done ; Overflow + + LDR R4,=SVC_Table-4 + LDR R4,[R4,R1,LSL #2] ; Load SVC Function Address + + LDM R0,{R0-R3,R12} ; Read R0-R3,R12 from stack + BLX R4 ; Call SVC Function + + MRS R12,PSP + STM R12,{R0-R3} ; Function return values +SVC_Done + POP {R4,PC} ; RETI + + ALIGN +} + + +/*-------------------------- PendSV_Handler ---------------------------------*/ + +__asm void PendSV_Handler (void) { + PRESERVE8 + +#ifdef IFX_XMC4XXX + EXPORT PendSV_Handler_Veneer +PendSV_Handler_Veneer +#endif + + BL __cpp(rt_pop_req) + +Sys_Switch + LDR R3,=__cpp(&os_tsk) + LDM R3,{R1,R2} ; os_tsk.run, os_tsk.new + CMP R1,R2 + BEQ Sys_Exit + + MRS R12,PSP ; Read PSP + STMDB R12!,{R4-R11} ; Save Old context + STR R12,[R1,#TCB_TSTACK] ; Update os_tsk.run->tsk_stack + + PUSH {R2,R3} + BL rt_stk_check ; Check for Stack overflow + POP {R2,R3} + + STR R2,[R3] ; os_tsk.run = os_tsk.new + + LDR R12,[R2,#TCB_TSTACK] ; os_tsk.new->tsk_stack + LDMIA R12!,{R4-R11} ; Restore New Context + MSR PSP,R12 ; Write PSP + +Sys_Exit + MVN LR,#:NOT:0xFFFFFFFD ; set EXC_RETURN value +#ifdef IFX_XMC4XXX + PUSH {LR} + POP {PC} +#else + BX LR ; Return to Thread Mode +#endif + + ALIGN +} + + +/*-------------------------- SysTick_Handler --------------------------------*/ + +__asm void SysTick_Handler (void) { + PRESERVE8 + +#ifdef IFX_XMC4XXX + EXPORT SysTick_Handler_Veneer +SysTick_Handler_Veneer +#endif + + BL __cpp(rt_systick) + B Sys_Switch + + ALIGN +} + + +/*-------------------------- OS_Tick_Handler --------------------------------*/ + +__asm void OS_Tick_Handler (void) { + PRESERVE8 + + BL __cpp(os_tick_irqack) + BL __cpp(rt_systick) + B Sys_Switch + + ALIGN +} + + +/*---------------------------------------------------------------------------- + * end of file + *---------------------------------------------------------------------------*/ + diff --git a/vendor/cmsis_rtos_rtx/SRC/ARM/HAL_CM4.c b/vendor/cmsis_rtos_rtx/SRC/ARM/HAL_CM4.c new file mode 100644 index 000000000..5fb1aa9ba --- /dev/null +++ b/vendor/cmsis_rtos_rtx/SRC/ARM/HAL_CM4.c @@ -0,0 +1,309 @@ +/*---------------------------------------------------------------------------- + * RL-ARM - RTX + *---------------------------------------------------------------------------- + * Name: HAL_CM4.C + * Purpose: Hardware Abstraction Layer for Cortex-M4 + * Rev.: V4.70 + *---------------------------------------------------------------------------- + * + * Copyright (c) 1999-2009 KEIL, 2009-2013 ARM Germany GmbH + * All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * - Neither the name of ARM nor the names of its contributors may be used + * to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + *---------------------------------------------------------------------------*/ + +#include "rt_TypeDef.h" +#include "RTX_Config.h" +#include "rt_System.h" +#include "rt_HAL_CM.h" +#include "rt_Task.h" +#include "rt_MemBox.h" + + +/*---------------------------------------------------------------------------- + * Functions + *---------------------------------------------------------------------------*/ + + +/*--------------------------- rt_set_PSP ------------------------------------*/ + +__asm void rt_set_PSP (U32 stack) { + MSR PSP,R0 + BX LR +} + + +/*--------------------------- rt_get_PSP ------------------------------------*/ + +__asm U32 rt_get_PSP (void) { + MRS R0,PSP + BX LR +} + + +/*--------------------------- os_set_env ------------------------------------*/ + +__asm void os_set_env (void) { + /* Switch to Unprivileged/Privileged Thread mode, use PSP. */ + MOV R0,SP ; PSP = MSP + MSR PSP,R0 + LDR R0,=__cpp(&os_flags) + LDRB R0,[R0] + LSLS R0,#31 + MOVNE R0,#0x02 ; Privileged Thread mode, use PSP + MOVEQ R0,#0x03 ; Unprivileged Thread mode, use PSP + MSR CONTROL,R0 + BX LR + + ALIGN +} + + +/*--------------------------- _alloc_box ------------------------------------*/ + +__asm void *_alloc_box (void *box_mem) { + /* Function wrapper for Unprivileged/Privileged mode. */ + LDR R12,=__cpp(rt_alloc_box) + MRS R3,IPSR + LSLS R3,#24 + BXNE R12 + MRS R3,CONTROL + LSLS R3,#31 + BXEQ R12 + SVC 0 + BX LR + + ALIGN +} + + +/*--------------------------- _free_box -------------------------------------*/ + +__asm int _free_box (void *box_mem, void *box) { + /* Function wrapper for Unprivileged/Privileged mode. */ + LDR R12,=__cpp(rt_free_box) + MRS R3,IPSR + LSLS R3,#24 + BXNE R12 + MRS R3,CONTROL + LSLS R3,#31 + BXEQ R12 + SVC 0 + BX LR + + ALIGN +} + + +/*-------------------------- SVC_Handler ------------------------------------*/ + +__asm void SVC_Handler (void) { + PRESERVE8 + + IMPORT SVC_Count + IMPORT SVC_Table + IMPORT rt_stk_check + +#ifdef IFX_XMC4XXX + EXPORT SVC_Handler_Veneer +SVC_Handler_Veneer +#endif + + MRS R0,PSP ; Read PSP + LDR R1,[R0,#24] ; Read Saved PC from Stack + LDRB R1,[R1,#-2] ; Load SVC Number + CBNZ R1,SVC_User + + LDM R0,{R0-R3,R12} ; Read R0-R3,R12 from stack + PUSH {R4,LR} ; Save EXC_RETURN + BLX R12 ; Call SVC Function + POP {R4,LR} ; Restore EXC_RETURN + + MRS R12,PSP ; Read PSP + STM R12,{R0-R2} ; Store return values + + LDR R3,=__cpp(&os_tsk) + LDM R3,{R1,R2} ; os_tsk.run, os_tsk.new + CMP R1,R2 +#ifdef IFX_XMC4XXX + PUSHEQ {LR} + POPEQ {PC} +#else + BXEQ LR ; RETI, no task switch +#endif + + CBZ R1,SVC_Next ; Runtask deleted? + TST LR,#0x10 ; is it extended frame? + VSTMDBEQ R12!,{S16-S31} ; yes, stack also VFP hi-regs + MOVEQ R0,#0x01 ; os_tsk->stack_frame val + MOVNE R0,#0x00 + STRB R0,[R1,#TCB_STACKF] ; os_tsk.run->stack_frame = val + STMDB R12!,{R4-R11} ; Save Old context + STR R12,[R1,#TCB_TSTACK] ; Update os_tsk.run->tsk_stack + + PUSH {R2,R3} + BL rt_stk_check ; Check for Stack overflow + POP {R2,R3} + +SVC_Next + STR R2,[R3] ; os_tsk.run = os_tsk.new + + LDR R12,[R2,#TCB_TSTACK] ; os_tsk.new->tsk_stack + LDMIA R12!,{R4-R11} ; Restore New Context + LDRB R0,[R2,#TCB_STACKF] ; Stack Frame + CMP R0,#0 ; Basic/Extended Stack Frame + VLDMIANE R12!,{S16-S31} ; restore VFP hi-registers + MVNNE LR,#:NOT:0xFFFFFFED ; set EXC_RETURN value + MVNEQ LR,#:NOT:0xFFFFFFFD + MSR PSP,R12 ; Write PSP + +SVC_Exit +#ifdef IFX_XMC4XXX + PUSH {LR} + POP {PC} +#else + BX LR +#endif + + /*------------------- User SVC ------------------------------*/ + +SVC_User + PUSH {R4,LR} ; Save Registers + LDR R2,=SVC_Count + LDR R2,[R2] + CMP R1,R2 + BHI SVC_Done ; Overflow + + LDR R4,=SVC_Table-4 + LDR R4,[R4,R1,LSL #2] ; Load SVC Function Address + + LDM R0,{R0-R3,R12} ; Read R0-R3,R12 from stack + BLX R4 ; Call SVC Function + + MRS R12,PSP + STM R12,{R0-R3} ; Function return values +SVC_Done + POP {R4,PC} ; RETI + + ALIGN +} + + +/*-------------------------- PendSV_Handler ---------------------------------*/ + +__asm void PendSV_Handler (void) { + PRESERVE8 + +#ifdef IFX_XMC4XXX + EXPORT PendSV_Handler_Veneer +PendSV_Handler_Veneer +#endif + + PUSH {R4,LR} ; Save EXC_RETURN + BL __cpp(rt_pop_req) + +Sys_Switch + POP {R4,LR} ; Restore EXC_RETURN + + LDR R3,=__cpp(&os_tsk) + LDM R3,{R1,R2} ; os_tsk.run, os_tsk.new + CMP R1,R2 +#ifdef IFX_XMC4XXX + PUSHEQ {LR} + POPEQ {PC} +#else + BXEQ LR ; RETI, no task switch +#endif + + MRS R12,PSP ; Read PSP + TST LR,#0x10 ; is it extended frame? + VSTMDBEQ R12!,{S16-S31} ; yes, stack also VFP hi-regs + MOVEQ R0,#0x01 ; os_tsk->stack_frame val + MOVNE R0,#0x00 + STRB R0,[R1,#TCB_STACKF] ; os_tsk.run->stack_frame = val + STMDB R12!,{R4-R11} ; Save Old context + STR R12,[R1,#TCB_TSTACK] ; Update os_tsk.run->tsk_stack + + PUSH {R2,R3} + BL rt_stk_check ; Check for Stack overflow + POP {R2,R3} + + STR R2,[R3] ; os_tsk.run = os_tsk.new + + LDR R12,[R2,#TCB_TSTACK] ; os_tsk.new->tsk_stack + LDMIA R12!,{R4-R11} ; Restore New Context + LDRB R0,[R2,#TCB_STACKF] ; Stack Frame + CMP R0,#0 ; Basic/Extended Stack Frame + VLDMIANE R12!,{S16-S31} ; restore VFP hi-regs + MVNNE LR,#:NOT:0xFFFFFFED ; set EXC_RETURN value + MVNEQ LR,#:NOT:0xFFFFFFFD + MSR PSP,R12 ; Write PSP + +Sys_Exit +#ifdef IFX_XMC4XXX + PUSH {LR} + POP {PC} +#else + BX LR ; Return to Thread Mode +#endif + + ALIGN +} + + +/*-------------------------- SysTick_Handler --------------------------------*/ + +__asm void SysTick_Handler (void) { + PRESERVE8 + +#ifdef IFX_XMC4XXX + EXPORT SysTick_Handler_Veneer +SysTick_Handler_Veneer +#endif + + PUSH {R4,LR} ; Save EXC_RETURN + BL __cpp(rt_systick) + B Sys_Switch + + ALIGN +} + + +/*-------------------------- OS_Tick_Handler --------------------------------*/ + +__asm void OS_Tick_Handler (void) { + PRESERVE8 + + PUSH {R4,LR} ; Save EXC_RETURN + BL __cpp(os_tick_irqack) + BL __cpp(rt_systick) + B Sys_Switch + + ALIGN +} + + +/*---------------------------------------------------------------------------- + * end of file + *---------------------------------------------------------------------------*/ + diff --git a/vendor/cmsis_rtos_rtx/SRC/ARM/RTX_Lib_CM.uvopt b/vendor/cmsis_rtos_rtx/SRC/ARM/RTX_Lib_CM.uvopt new file mode 100644 index 000000000..5c107fde3 --- /dev/null +++ b/vendor/cmsis_rtos_rtx/SRC/ARM/RTX_Lib_CM.uvopt @@ -0,0 +1,1596 @@ + + + + 1.0 + +

### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + + + + 0 + 0 + + + + CM0_LE + 0x4 + ARM-ADS + + 12000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\CM0_LE\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 255 + + SARMCM3.DLL + + DARMCM1.DLL + -pCM0 + SARMCM3.DLL + + TARMCM1.DLL + -pCM0 + + + 1 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + + + + + + + + + BIN\UL2CM3.DLL + + + + 0 + UL2CM3 + -UU0101L5E -O14 -S0 -C0 -N00("ARM Cortex-M3") -D00(1BA00477) -L00(4) -FO7 -FD20000000 -FC800 -FN1 -FF0LM3S_64 -FS00 -FL010000 + + + + + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + 0 + + + + + + + + CM0_BE + 0x4 + ARM-ADS + + 12000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\CM0_BE\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 0 + + 255 + + SARMCM3.DLL + + DARMCM1.DLL + -pCM0 + SARMCM3.DLL + + TARMCM1.DLL + -pCM0 + + + 1 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + + + + + + + + + BIN\UL2CM3.DLL + + + + 0 + UL2CM3 + -UU0101L5E -O14 -S0 -C0 -N00("ARM Cortex-M3") -D00(1BA00477) -L00(4) -FO7 -FD20000000 -FC800 -FN1 -FF0LM3S_64 -FS00 -FL010000 + + + + + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + 0 + + + + + + + + CM3_LE + 0x4 + ARM-ADS + + 12000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\CM3_LE\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 0 + + 255 + + SARMCM3.DLL + + DLM.DLL + -pEMBER + SARMCM3.DLL + + TLM.DLL + -pEMBER + + + 1 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + + + + + + + + + BIN\UL2CM3.DLL + + + + 0 + UL2CM3 + -UU0101L5E -O14 -S0 -C0 -N00("ARM Cortex-M3") -D00(1BA00477) -L00(4) -FO7 -FD20000000 -FC800 -FN1 -FF0LM3S_64 -FS00 -FL010000 + + + + + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + 0 + + + + + + + + CM3_BE + 0x4 + ARM-ADS + + 12000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\CM3_BE\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 0 + + 255 + + SARMCM3.DLL + + DLM.DLL + -pEMBER + SARMCM3.DLL + + TLM.DLL + -pEMBER + + + 1 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + + + + + + + + + BIN\UL2CM3.DLL + + + + 0 + UL2CM3 + -UU0101L5E -O14 -S0 -C0 -N00("ARM Cortex-M3") -D00(1BA00477) -L00(4) -FO7 -FD20000000 -FC800 -FN1 -FF0LM3S_64 -FS00 -FL010000 + + + + + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + 0 + + + + + + + + CM3_LE_IFX + 0x4 + ARM-ADS + + 12000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\CM3_LE_IFX\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 0 + + 255 + + SARMCM3.DLL + + DLM.DLL + -pEMBER + SARMCM3.DLL + + TLM.DLL + -pEMBER + + + 1 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + + + + + + + + + BIN\UL2CM3.DLL + + + + 0 + UL2CM3 + -UU0101L5E -O14 -S0 -C0 -N00("ARM Cortex-M3") -D00(1BA00477) -L00(4) -FO7 -FD20000000 -FC800 -FN1 -FF0LM3S_64 -FS00 -FL010000 + + + + + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + 0 + + + + + + + + CM3X_LE + 0x4 + ARM-ADS + + 12000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\CM3X_LE\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 0 + + 255 + + SARMCM3.DLL + + DLM.DLL + -pEMBER + SARMCM3.DLL + + TLM.DLL + -pEMBER + + + 1 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + + + + + + + + + BIN\UL2CM3.DLL + + + + 0 + UL2CM3 + -UU0101L5E -O14 -S0 -C0 -N00("ARM Cortex-M3") -D00(1BA00477) -L00(4) -FO7 -FD20000000 -FC800 -FN1 -FF0LM3S_64 -FS00 -FL010000 + + + + + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + 0 + + + + + + + + CM4F_LE + 0x4 + ARM-ADS + + 12000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\CM4F_LE\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 0 + + 255 + + SARMCM3.DLL + + DLM.DLL + -pEMBER + SARMCM3.DLL + + TLM.DLL + -pEMBER + + + 1 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + + + + + + + + + BIN\UL2CM3.DLL + + + + 0 + UL2CM3 + -UU0101L5E -O14 -S0 -C0 -N00("ARM Cortex-M3") -D00(1BA00477) -L00(4) -FO7 -FD20000000 -FC800 -FN1 -FF0LM3S_64 -FS00 -FL010000 + + + + + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + 0 + + + + + + + + CM4F_BE + 0x4 + ARM-ADS + + 12000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\CM4F_BE\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 0 + + 255 + + SARMCM3.DLL + + DLM.DLL + -pEMBER + SARMCM3.DLL + + TLM.DLL + -pEMBER + + + 1 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + + + + + + + + + BIN\UL2CM3.DLL + + + + 0 + UL2CM3 + -UU0101L5E -O14 -S0 -C0 -N00("ARM Cortex-M3") -D00(1BA00477) -L00(4) -FO7 -FD20000000 -FC800 -FN1 -FF0LM3S_64 -FS00 -FL010000 + + + + + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + 0 + + + + + + + + CM4F_LE_IFX + 0x4 + ARM-ADS + + 12000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\CM4F_LE_IFX\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 0 + + 255 + + SARMCM3.DLL + + DLM.DLL + -pEMBER + SARMCM3.DLL + + TLM.DLL + -pEMBER + + + 1 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + + + + + + + + + BIN\UL2CM3.DLL + + + + 0 + UL2CM3 + -UU0101L5E -O14 -S0 -C0 -N00("ARM Cortex-M3") -D00(1BA00477) -L00(4) -FO7 -FD20000000 -FC800 -FN1 -FF0LM3S_64 -FS00 -FL010000 + + + + + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + 0 + + + + + + + + Kernel + 1 + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 1 + 1 + 0 + ..\rt_CMSIS.c + rt_CMSIS.c + 0 + 0 + + + 1 + 2 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\rt_Task.c + rt_Task.c + 0 + 0 + + + 1 + 3 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\rt_System.c + rt_System.c + 0 + 0 + + + 1 + 4 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\rt_Event.c + rt_Event.c + 0 + 0 + + + 1 + 5 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\rt_List.c + rt_List.c + 0 + 0 + + + 1 + 6 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\rt_Mailbox.c + rt_Mailbox.c + 0 + 0 + + + 1 + 7 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\rt_Semaphore.c + rt_Semaphore.c + 0 + 0 + + + 1 + 8 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\rt_Time.c + rt_Time.c + 0 + 0 + + + 1 + 9 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\rt_Timer.c + rt_Timer.c + 0 + 0 + + + 1 + 10 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\rt_Mutex.c + rt_Mutex.c + 0 + 0 + + + 1 + 11 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\rt_Robin.c + rt_Robin.c + 0 + 0 + + + 1 + 12 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\rt_MemBox.c + rt_MemBox.c + 0 + 0 + + + 1 + 13 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\rt_Memory.c + rt_Memory.c + 0 + 0 + + + + + HAL + 1 + 0 + 0 + 0 + + 2 + 14 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\SVC_Table.s + SVC_Table.s + 0 + 0 + + + 2 + 15 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\HAL_CM.c + HAL_CM.c + 0 + 0 + + + 2 + 16 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\HAL_CM0.c + HAL_CM0.c + 0 + 0 + + + 2 + 17 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\HAL_CM3.c + HAL_CM3.c + 0 + 0 + + + 2 + 18 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\HAL_CM4.c + HAL_CM4.c + 0 + 0 + + + + diff --git a/vendor/cmsis_rtos_rtx/SRC/ARM/RTX_Lib_CM.uvproj b/vendor/cmsis_rtos_rtx/SRC/ARM/RTX_Lib_CM.uvproj new file mode 100644 index 000000000..166f82b17 --- /dev/null +++ b/vendor/cmsis_rtos_rtx/SRC/ARM/RTX_Lib_CM.uvproj @@ -0,0 +1,5807 @@ + + + + 1.1 + +
### uVision Project, (C) Keil Software
+ + + + CM0_LE + 0x4 + ARM-ADS + + + Cortex-M0 + ARM + CLOCK(12000000) CPUTYPE("Cortex-M0") ESEL ELITTLE + + + + 4803 + + + + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\CM0_LE\ + RTX_CM0 + 0 + 1 + 0 + 1 + 0 + .\CM0_LE\ + 1 + 0 + 1 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 1 + 1 + cmd.exe /C copy ArInp.Scr CM0_LE\BuildLib.scr + cmd.exe /C copy CM0_LE\RTX_CM0.lib ..\..\LIB\ARM + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + + + SARMCM3.DLL + + DARMCM1.DLL + -pCM0 + SARMCM3.DLL + + TARMCM1.DLL + -pCM0 + + + + 1 + 0 + 0 + 0 + 16 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + + + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + + 0 + 0 + + + + + + + + + + + + + + BIN\UL2CM3.DLL + + + + + 1 + 0 + 0 + 0 + 1 + 2 + + BIN\AGDIRDI.DLL + + + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M0" + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 0 + 0 + 5 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x2000 + + + 1 + 0x0 + 0x10000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + + + + 1 + 4 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + __CORTEX_M0 __CMSIS_RTOS + + + + + + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + + + __CMSIS_RTOS + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + + + + + + + + + + + + + + Kernel + + + rt_CMSIS.c + 1 + ..\rt_CMSIS.c + + + 2 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + + + + + ..\..\INC + + + + + + + rt_Task.c + 1 + ..\rt_Task.c + + + rt_System.c + 1 + ..\rt_System.c + + + rt_Event.c + 1 + ..\rt_Event.c + + + rt_List.c + 1 + ..\rt_List.c + + + rt_Mailbox.c + 1 + ..\rt_Mailbox.c + + + rt_Semaphore.c + 1 + ..\rt_Semaphore.c + + + rt_Time.c + 1 + ..\rt_Time.c + + + rt_Timer.c + 1 + ..\rt_Timer.c + + + rt_Mutex.c + 1 + ..\rt_Mutex.c + + + rt_Robin.c + 1 + ..\rt_Robin.c + + + rt_MemBox.c + 1 + ..\rt_MemBox.c + + + rt_Memory.c + 1 + ..\rt_Memory.c + + + + + HAL + + + SVC_Table.s + 2 + .\SVC_Table.s + + + HAL_CM.c + 1 + ..\HAL_CM.c + + + HAL_CM0.c + 1 + .\HAL_CM0.c + + + 2 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + + + + + ..\ + + + + + + + HAL_CM3.c + 1 + .\HAL_CM3.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + + + + + + + + + + + + HAL_CM4.c + 1 + .\HAL_CM4.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + + + + + + + + + + + + + + + + CM0_BE + 0x4 + ARM-ADS + + + Cortex-M0 + ARM + CLOCK(12000000) CPUTYPE("Cortex-M0") ESEL ELITTLE + + + + 4803 + + + + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\CM0_BE\ + RTX_CM0_B + 0 + 1 + 0 + 1 + 0 + .\CM0_BE\ + 1 + 0 + 1 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 1 + 1 + cmd.exe /C copy ArInp.Scr CM0_BE\BuildLib.scr + cmd.exe /C copy CM0_BE\RTX_CM0_B.lib ..\..\LIB\ARM + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + + + SARMCM3.DLL + + DARMCM1.DLL + -pCM0 + SARMCM3.DLL + + TARMCM1.DLL + -pCM0 + + + + 1 + 0 + 0 + 0 + 16 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + + + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + + 0 + 0 + + + + + + + + + + + + + + BIN\UL2CM3.DLL + + + + + 1 + 0 + 0 + 0 + 1 + 2 + + BIN\AGDIRDI.DLL + + + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M0" + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 0 + 0 + 5 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x2000 + + + 1 + 0x0 + 0x10000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + + + + 1 + 4 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + __CORTEX_M0 __CMSIS_RTOS + + + + + + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + + + __CMSIS_RTOS + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + + + + + + + + + + + + + + Kernel + + + rt_CMSIS.c + 1 + ..\rt_CMSIS.c + + + 2 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + + + + + ..\..\INC + + + + + + + rt_Task.c + 1 + ..\rt_Task.c + + + rt_System.c + 1 + ..\rt_System.c + + + rt_Event.c + 1 + ..\rt_Event.c + + + rt_List.c + 1 + ..\rt_List.c + + + rt_Mailbox.c + 1 + ..\rt_Mailbox.c + + + rt_Semaphore.c + 1 + ..\rt_Semaphore.c + + + rt_Time.c + 1 + ..\rt_Time.c + + + rt_Timer.c + 1 + ..\rt_Timer.c + + + rt_Mutex.c + 1 + ..\rt_Mutex.c + + + rt_Robin.c + 1 + ..\rt_Robin.c + + + rt_MemBox.c + 1 + ..\rt_MemBox.c + + + rt_Memory.c + 1 + ..\rt_Memory.c + + + + + HAL + + + SVC_Table.s + 2 + .\SVC_Table.s + + + HAL_CM.c + 1 + ..\HAL_CM.c + + + HAL_CM0.c + 1 + .\HAL_CM0.c + + + 2 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + + + + + ..\ + + + + + + + HAL_CM3.c + 1 + .\HAL_CM3.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + + + + + + + + + + + + HAL_CM4.c + 1 + .\HAL_CM4.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + + + + + + + + + + + + + + + + CM3_LE + 0x4 + ARM-ADS + + + Cortex-M3 + ARM + CLOCK(12000000) CPUTYPE("Cortex-M3") + + + + 4349 + + + + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\CM3_LE\ + RTX_CM3 + 0 + 1 + 0 + 1 + 0 + .\CM3_LE\ + 1 + 0 + 1 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 1 + 1 + cmd.exe /C copy ArInp.Scr CM3_LE\BuildLib.scr + cmd.exe /C copy CM3_LE\RTX_CM3.lib ..\..\LIB\ARM + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + + + SARMCM3.DLL + + DLM.DLL + -pEMBER + SARMCM3.DLL + + TLM.DLL + -pEMBER + + + + 1 + 0 + 0 + 0 + 16 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + + + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + + 0 + 0 + + + + + + + + + + + + + + BIN\UL2CM3.DLL + + + + + 1 + 0 + 0 + 0 + 1 + 2 + + BIN\AGDIRDI.DLL + "" () + + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M3" + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 5 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x2000 + + + 1 + 0x0 + 0x10000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + + + + 1 + 4 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + __CORTEX_M3 __CMSIS_RTOS DBG_MSG + + + + + + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + + + __CMSIS_RTOS + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + + + + + + + + + + + + + + Kernel + + + rt_CMSIS.c + 1 + ..\rt_CMSIS.c + + + 2 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + + + + + ..\..\INC + + + + + + + rt_Task.c + 1 + ..\rt_Task.c + + + rt_System.c + 1 + ..\rt_System.c + + + rt_Event.c + 1 + ..\rt_Event.c + + + rt_List.c + 1 + ..\rt_List.c + + + rt_Mailbox.c + 1 + ..\rt_Mailbox.c + + + rt_Semaphore.c + 1 + ..\rt_Semaphore.c + + + rt_Time.c + 1 + ..\rt_Time.c + + + rt_Timer.c + 1 + ..\rt_Timer.c + + + rt_Mutex.c + 1 + ..\rt_Mutex.c + + + rt_Robin.c + 1 + ..\rt_Robin.c + + + rt_MemBox.c + 1 + ..\rt_MemBox.c + + + rt_Memory.c + 1 + ..\rt_Memory.c + + + + + HAL + + + SVC_Table.s + 2 + .\SVC_Table.s + + + HAL_CM.c + 1 + ..\HAL_CM.c + + + HAL_CM0.c + 1 + .\HAL_CM0.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + + + + + + + + + + + + HAL_CM3.c + 1 + .\HAL_CM3.c + + + 2 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + + + + + ..\ + + + + + + + HAL_CM4.c + 1 + .\HAL_CM4.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + + + + + + + + + + + + + + + + CM3_BE + 0x4 + ARM-ADS + + + Cortex-M3 + ARM + CLOCK(12000000) CPUTYPE("Cortex-M3") ESEL ELITTLE + + + + 4349 + + + + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\CM3_BE\ + RTX_CM3_B + 0 + 1 + 0 + 1 + 0 + .\CM3_BE\ + 1 + 0 + 1 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 1 + 1 + cmd.exe /C copy ArInp.Scr CM3_BE\BuildLib.scr + cmd.exe /C copy CM3_BE\RTX_CM3_B.lib ..\..\LIB\ARM + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + + + SARMCM3.DLL + + DLM.DLL + -pEMBER + SARMCM3.DLL + + TLM.DLL + -pEMBER + + + + 1 + 0 + 0 + 0 + 16 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + + + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + + 0 + 0 + + + + + + + + + + + + + + BIN\UL2CM3.DLL + + + + + 1 + 0 + 0 + 0 + 1 + 2 + + BIN\AGDIRDI.DLL + + + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M3" + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 0 + 0 + 5 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x2000 + + + 1 + 0x0 + 0x10000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + + + + 1 + 4 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + __CORTEX_M3 __CMSIS_RTOS DBG_MSG + + + + + + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + + + __CMSIS_RTOS + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + + + + + + + + + + + + + + Kernel + + + rt_CMSIS.c + 1 + ..\rt_CMSIS.c + + + 2 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + + + + + ..\..\INC + + + + + + + rt_Task.c + 1 + ..\rt_Task.c + + + rt_System.c + 1 + ..\rt_System.c + + + rt_Event.c + 1 + ..\rt_Event.c + + + rt_List.c + 1 + ..\rt_List.c + + + rt_Mailbox.c + 1 + ..\rt_Mailbox.c + + + rt_Semaphore.c + 1 + ..\rt_Semaphore.c + + + rt_Time.c + 1 + ..\rt_Time.c + + + rt_Timer.c + 1 + ..\rt_Timer.c + + + rt_Mutex.c + 1 + ..\rt_Mutex.c + + + rt_Robin.c + 1 + ..\rt_Robin.c + + + rt_MemBox.c + 1 + ..\rt_MemBox.c + + + rt_Memory.c + 1 + ..\rt_Memory.c + + + + + HAL + + + SVC_Table.s + 2 + .\SVC_Table.s + + + HAL_CM.c + 1 + ..\HAL_CM.c + + + HAL_CM0.c + 1 + .\HAL_CM0.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + + + + + + + + + + + + HAL_CM3.c + 1 + .\HAL_CM3.c + + + 2 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + + + + + ..\ + + + + + + + HAL_CM4.c + 1 + .\HAL_CM4.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + + + + + + + + + + + + + + + + CM3_LE_IFX + 0x4 + ARM-ADS + + + Cortex-M3 + ARM + CLOCK(12000000) CPUTYPE("Cortex-M3") + + + + 4349 + + + + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\CM3_LE_IFX\ + RTX_CM3_IFX + 0 + 1 + 0 + 1 + 0 + .\CM3_LE_IFX\ + 1 + 0 + 1 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 1 + 1 + cmd.exe /C copy ArInp.Scr CM3_LE_IFX\BuildLib.scr + cmd.exe /C copy CM3_LE_IFX\RTX_CM3_IFX.lib ..\..\LIB\ARM + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + + + SARMCM3.DLL + + DLM.DLL + -pEMBER + SARMCM3.DLL + + TLM.DLL + -pEMBER + + + + 1 + 0 + 0 + 0 + 16 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + + + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + + 0 + 0 + + + + + + + + + + + + + + BIN\UL2CM3.DLL + + + + + 1 + 0 + 0 + 0 + 1 + 2 + + BIN\AGDIRDI.DLL + "" () + + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M3" + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 5 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x2000 + + + 1 + 0x0 + 0x10000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + + + + 1 + 4 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + __CORTEX_M3 __CMSIS_RTOS DBG_MSG + + + + + + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + + + __CMSIS_RTOS + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + + + + + + + + + + + + + + Kernel + + + rt_CMSIS.c + 1 + ..\rt_CMSIS.c + + + 2 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + + + + + ..\..\INC + + + + + + + rt_Task.c + 1 + ..\rt_Task.c + + + rt_System.c + 1 + ..\rt_System.c + + + rt_Event.c + 1 + ..\rt_Event.c + + + rt_List.c + 1 + ..\rt_List.c + + + rt_Mailbox.c + 1 + ..\rt_Mailbox.c + + + rt_Semaphore.c + 1 + ..\rt_Semaphore.c + + + rt_Time.c + 1 + ..\rt_Time.c + + + rt_Timer.c + 1 + ..\rt_Timer.c + + + rt_Mutex.c + 1 + ..\rt_Mutex.c + + + rt_Robin.c + 1 + ..\rt_Robin.c + + + rt_MemBox.c + 1 + ..\rt_MemBox.c + + + rt_Memory.c + 1 + ..\rt_Memory.c + + + + + HAL + + + SVC_Table.s + 2 + .\SVC_Table.s + + + HAL_CM.c + 1 + ..\HAL_CM.c + + + HAL_CM0.c + 1 + .\HAL_CM0.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + + + + + + + + + + + + HAL_CM3.c + 1 + .\HAL_CM3.c + + + 2 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + + + IFX_XMC4XXX + + ..\ + + + + + + + HAL_CM4.c + 1 + .\HAL_CM4.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + + + + + + + + + + + + + + + + CM3X_LE + 0x4 + ARM-ADS + + + Cortex-M3 + ARM + CLOCK(12000000) CPUTYPE("Cortex-M3") + + + + 4349 + + + + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\CM3X_LE\ + RTX_CM3X + 0 + 1 + 0 + 1 + 0 + .\CM3X_LE\ + 1 + 0 + 1 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 1 + 1 + cmd.exe /C copy ArInp.Scr CM3X_LE\BuildLib.scr + cmd.exe /C copy CM3X_LE\RTX_CM3X.lib ..\..\LIB\ARM + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + + + SARMCM3.DLL + + DLM.DLL + -pEMBER + SARMCM3.DLL + + TLM.DLL + -pEMBER + + + + 1 + 0 + 0 + 0 + 16 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + + + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + + 0 + 0 + + + + + + + + + + + + + + BIN\UL2CM3.DLL + + + + + 1 + 0 + 0 + 0 + 1 + 2 + + BIN\AGDIRDI.DLL + "" () + + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M3" + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 5 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x2000 + + + 1 + 0x0 + 0x10000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + + + + 1 + 4 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + __CORTEX_M3 __CMSIS_RTOS DBG_MSG NO_EXCLUSIVE_ACCESS + + + + + + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + + + __CMSIS_RTOS + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + + + + + + + + + + + + + + Kernel + + + rt_CMSIS.c + 1 + ..\rt_CMSIS.c + + + 2 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + + + + + ..\..\INC + + + + + + + rt_Task.c + 1 + ..\rt_Task.c + + + rt_System.c + 1 + ..\rt_System.c + + + rt_Event.c + 1 + ..\rt_Event.c + + + rt_List.c + 1 + ..\rt_List.c + + + rt_Mailbox.c + 1 + ..\rt_Mailbox.c + + + rt_Semaphore.c + 1 + ..\rt_Semaphore.c + + + rt_Time.c + 1 + ..\rt_Time.c + + + rt_Timer.c + 1 + ..\rt_Timer.c + + + rt_Mutex.c + 1 + ..\rt_Mutex.c + + + rt_Robin.c + 1 + ..\rt_Robin.c + + + rt_MemBox.c + 1 + ..\rt_MemBox.c + + + rt_Memory.c + 1 + ..\rt_Memory.c + + + + + HAL + + + SVC_Table.s + 2 + .\SVC_Table.s + + + HAL_CM.c + 1 + ..\HAL_CM.c + + + HAL_CM0.c + 1 + .\HAL_CM0.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + + + + + + + + + + + + HAL_CM3.c + 1 + .\HAL_CM3.c + + + 2 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + + + + + ..\ + + + + + + + HAL_CM4.c + 1 + .\HAL_CM4.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + + + + + + + + + + + + + + + + CM4F_LE + 0x4 + ARM-ADS + + + Cortex-M4 + ARM + CLOCK(12000000) CPUTYPE("Cortex-M4") ESEL ELITTLE FPU2 + + + + 5125 + + + + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\CM4F_LE\ + RTX_CM4 + 0 + 1 + 0 + 1 + 0 + .\CM4F_LE\ + 1 + 0 + 1 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 1 + 1 + cmd.exe /C copy ArInp.Scr CM4F_LE\BuildLib.scr + cmd.exe /C copy CM4F_LE\RTX_CM4.lib ..\..\LIB\ARM + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + + + SARMCM3.DLL + + DLM.DLL + -pEMBER + SARMCM3.DLL + + TLM.DLL + -pEMBER + + + + 1 + 0 + 0 + 0 + 16 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + + + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + + 0 + 0 + + + + + + + + + + + + + + BIN\UL2CM3.DLL + + + + + 1 + 0 + 0 + 0 + 1 + 4097 + + BIN\AGDIRDI.DLL + "" () + + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M4" + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 5 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x2000 + + + 1 + 0x0 + 0x10000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + + + + 1 + 4 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + __CORTEX_M4F __FPU_PRESENT=1 __CMSIS_RTOS DBG_MSG + + + + + + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + + + __CMSIS_RTOS + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + + + + + + + + + + + + + + Kernel + + + rt_CMSIS.c + 1 + ..\rt_CMSIS.c + + + 2 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + + + + + ..\..\INC + + + + + + + rt_Task.c + 1 + ..\rt_Task.c + + + rt_System.c + 1 + ..\rt_System.c + + + rt_Event.c + 1 + ..\rt_Event.c + + + rt_List.c + 1 + ..\rt_List.c + + + rt_Mailbox.c + 1 + ..\rt_Mailbox.c + + + rt_Semaphore.c + 1 + ..\rt_Semaphore.c + + + rt_Time.c + 1 + ..\rt_Time.c + + + rt_Timer.c + 1 + ..\rt_Timer.c + + + rt_Mutex.c + 1 + ..\rt_Mutex.c + + + rt_Robin.c + 1 + ..\rt_Robin.c + + + rt_MemBox.c + 1 + ..\rt_MemBox.c + + + rt_Memory.c + 1 + ..\rt_Memory.c + + + + + HAL + + + SVC_Table.s + 2 + .\SVC_Table.s + + + HAL_CM.c + 1 + ..\HAL_CM.c + + + HAL_CM0.c + 1 + .\HAL_CM0.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + + + + + + + + + + + + HAL_CM3.c + 1 + .\HAL_CM3.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + + + + + + + + + + + + HAL_CM4.c + 1 + .\HAL_CM4.c + + + 2 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + + + + + ..\ + + + + + + + + + + + CM4F_BE + 0x4 + ARM-ADS + + + Cortex-M4 + ARM + CLOCK(12000000) CPUTYPE("Cortex-M4") ESEL ELITTLE FPU2 + + + + 5125 + + + + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\CM4F_BE\ + RTX_CM4_B + 0 + 1 + 0 + 1 + 0 + .\CM4F_BE\ + 1 + 0 + 1 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 1 + 1 + cmd.exe /C copy ArInp.Scr CM4F_BE\BuildLib.scr + cmd.exe /C copy CM4F_BE\RTX_CM4_B.lib ..\..\LIB\ARM + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + + + SARMCM3.DLL + + DLM.DLL + -pEMBER + SARMCM3.DLL + + TLM.DLL + -pEMBER + + + + 1 + 0 + 0 + 0 + 16 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + + + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + + 0 + 0 + + + + + + + + + + + + + + BIN\UL2CM3.DLL + + + + + 1 + 0 + 0 + 0 + 1 + 4097 + + BIN\AGDIRDI.DLL + "" () + + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M4" + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 5 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x2000 + + + 1 + 0x0 + 0x10000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + + + + 1 + 4 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + __CORTEX_M4F __FPU_PRESENT=1 __CMSIS_RTOS DBG_MSG + + + + + + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + + + __CMSIS_RTOS + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + + + + + + + + + + + + + + Kernel + + + rt_CMSIS.c + 1 + ..\rt_CMSIS.c + + + 2 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + + + + + ..\..\INC + + + + + + + rt_Task.c + 1 + ..\rt_Task.c + + + rt_System.c + 1 + ..\rt_System.c + + + rt_Event.c + 1 + ..\rt_Event.c + + + rt_List.c + 1 + ..\rt_List.c + + + rt_Mailbox.c + 1 + ..\rt_Mailbox.c + + + rt_Semaphore.c + 1 + ..\rt_Semaphore.c + + + rt_Time.c + 1 + ..\rt_Time.c + + + rt_Timer.c + 1 + ..\rt_Timer.c + + + rt_Mutex.c + 1 + ..\rt_Mutex.c + + + rt_Robin.c + 1 + ..\rt_Robin.c + + + rt_MemBox.c + 1 + ..\rt_MemBox.c + + + rt_Memory.c + 1 + ..\rt_Memory.c + + + + + HAL + + + SVC_Table.s + 2 + .\SVC_Table.s + + + HAL_CM.c + 1 + ..\HAL_CM.c + + + HAL_CM0.c + 1 + .\HAL_CM0.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + + + + + + + + + + + + HAL_CM3.c + 1 + .\HAL_CM3.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + + + + + + + + + + + + HAL_CM4.c + 1 + .\HAL_CM4.c + + + 2 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + + + + + ..\ + + + + + + + + + + + CM4F_LE_IFX + 0x4 + ARM-ADS + + + Cortex-M4 + ARM + CLOCK(12000000) CPUTYPE("Cortex-M4") ESEL ELITTLE FPU2 + + + + 5125 + + + + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\CM4F_LE_IFX\ + RTX_CM4_IFX + 0 + 1 + 0 + 1 + 0 + .\CM4F_LE_IFX\ + 1 + 0 + 1 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 1 + 1 + cmd.exe /C copy ArInp.Scr CM4F_LE_IFX\BuildLib.scr + cmd.exe /C copy CM4F_LE_IFX\RTX_CM4_IFX.lib ..\..\LIB\ARM + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + + + SARMCM3.DLL + + DLM.DLL + -pEMBER + SARMCM3.DLL + + TLM.DLL + -pEMBER + + + + 1 + 0 + 0 + 0 + 16 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + + + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + + 0 + 0 + + + + + + + + + + + + + + BIN\UL2CM3.DLL + + + + + 1 + 0 + 0 + 0 + 1 + 4097 + + BIN\AGDIRDI.DLL + "" () + + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M4" + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 5 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x2000 + + + 1 + 0x0 + 0x10000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + + + + 1 + 4 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + __CORTEX_M4F __FPU_PRESENT=1 __CMSIS_RTOS DBG_MSG + + + + + + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + + + __CMSIS_RTOS + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + + + + + + + + + + + + + + Kernel + + + rt_CMSIS.c + 1 + ..\rt_CMSIS.c + + + 2 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + + + + + ..\..\INC + + + + + + + rt_Task.c + 1 + ..\rt_Task.c + + + rt_System.c + 1 + ..\rt_System.c + + + rt_Event.c + 1 + ..\rt_Event.c + + + rt_List.c + 1 + ..\rt_List.c + + + rt_Mailbox.c + 1 + ..\rt_Mailbox.c + + + rt_Semaphore.c + 1 + ..\rt_Semaphore.c + + + rt_Time.c + 1 + ..\rt_Time.c + + + rt_Timer.c + 1 + ..\rt_Timer.c + + + rt_Mutex.c + 1 + ..\rt_Mutex.c + + + rt_Robin.c + 1 + ..\rt_Robin.c + + + rt_MemBox.c + 1 + ..\rt_MemBox.c + + + rt_Memory.c + 1 + ..\rt_Memory.c + + + + + HAL + + + SVC_Table.s + 2 + .\SVC_Table.s + + + HAL_CM.c + 1 + ..\HAL_CM.c + + + HAL_CM0.c + 1 + .\HAL_CM0.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + + + + + + + + + + + + HAL_CM3.c + 1 + .\HAL_CM3.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + + + + + + + + + + + + HAL_CM4.c + 1 + .\HAL_CM4.c + + + 2 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + + + IFX_XMC4XXX + + ..\ + + + + + + + + + + + +
diff --git a/vendor/cmsis_rtos_rtx/SRC/ARM/SVC_Table.s b/vendor/cmsis_rtos_rtx/SRC/ARM/SVC_Table.s new file mode 100644 index 000000000..96b9dedb7 --- /dev/null +++ b/vendor/cmsis_rtos_rtx/SRC/ARM/SVC_Table.s @@ -0,0 +1,57 @@ +;/*---------------------------------------------------------------------------- +; * RL-ARM - RTX +; *---------------------------------------------------------------------------- +; * Name: SVC_TABLE.S +; * Purpose: Pre-defined SVC Table for Cortex-M +; * Rev.: V4.70 +; *---------------------------------------------------------------------------- +; * +; * Copyright (c) 1999-2009 KEIL, 2009-2013 ARM Germany GmbH +; * All rights reserved. +; * Redistribution and use in source and binary forms, with or without +; * modification, are permitted provided that the following conditions are met: +; * - Redistributions of source code must retain the above copyright +; * notice, this list of conditions and the following disclaimer. +; * - Redistributions in binary form must reproduce the above copyright +; * notice, this list of conditions and the following disclaimer in the +; * documentation and/or other materials provided with the distribution. +; * - Neither the name of ARM nor the names of its contributors may be used +; * to endorse or promote products derived from this software without +; * specific prior written permission. +; * +; * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +; * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +; * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +; * ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE +; * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +; * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +; * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +; * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +; * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +; * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +; * POSSIBILITY OF SUCH DAMAGE. +; *---------------------------------------------------------------------------*/ + + + AREA SVC_TABLE, CODE, READONLY + + EXPORT SVC_Count + +SVC_Cnt EQU (SVC_End-SVC_Table)/4 +SVC_Count DCD SVC_Cnt + +; Import user SVC functions here. +; IMPORT __SVC_1 + + EXPORT SVC_Table +SVC_Table +; Insert user SVC functions here. SVC 0 used by RTL Kernel. +; DCD __SVC_1 ; user SVC function + +SVC_End + + END + +/*---------------------------------------------------------------------------- + * end of file + *---------------------------------------------------------------------------*/ diff --git a/vendor/cmsis_rtos_rtx/SRC/GCC/HAL_CM0.s b/vendor/cmsis_rtos_rtx/SRC/GCC/HAL_CM0.s new file mode 100644 index 000000000..5057ece16 --- /dev/null +++ b/vendor/cmsis_rtos_rtx/SRC/GCC/HAL_CM0.s @@ -0,0 +1,370 @@ +/*---------------------------------------------------------------------------- + * RL-ARM - RTX + *---------------------------------------------------------------------------- + * Name: HAL_CM0.S + * Purpose: Hardware Abstraction Layer for Cortex-M0 + * Rev.: V4.70 + *---------------------------------------------------------------------------- + * + * Copyright (c) 1999-2009 KEIL, 2009-2013 ARM Germany GmbH + * All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * - Neither the name of ARM nor the names of its contributors may be used + * to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + *---------------------------------------------------------------------------*/ + + .file "HAL_CM0.S" + .syntax unified + + .equ TCB_TSTACK, 36 + + +/*---------------------------------------------------------------------------- + * Functions + *---------------------------------------------------------------------------*/ + + .thumb + + .section ".text" + .align 2 + + +/*--------------------------- rt_set_PSP ------------------------------------*/ + +# void rt_set_PSP (U32 stack); + + .thumb_func + .type rt_set_PSP, %function + .global rt_set_PSP +rt_set_PSP: + .fnstart + .cantunwind + + MSR PSP,R0 + BX LR + + .fnend + .size rt_set_PSP, .-rt_set_PSP + + +/*--------------------------- rt_get_PSP ------------------------------------*/ + +# U32 rt_get_PSP (void); + + .thumb_func + .type rt_get_PSP, %function + .global rt_get_PSP +rt_get_PSP: + .fnstart + .cantunwind + + MRS R0,PSP + BX LR + + .fnend + .size rt_get_PSP, .-rt_get_PSP + + +/*--------------------------- os_set_env ------------------------------------*/ + +# void os_set_env (void); + /* Switch to Unprivileged/Privileged Thread mode, use PSP. */ + + .thumb_func + .type os_set_env, %function + .global os_set_env +os_set_env: + .fnstart + .cantunwind + + MOV R0,SP /* PSP = MSP */ + MSR PSP,R0 + LDR R0,=os_flags + LDRB R0,[R0] + LSLS R0,#31 + BNE PrivilegedE + MOVS R0,#0x03 /* Unprivileged Thread mode, use PSP */ + MSR CONTROL,R0 + BX LR +PrivilegedE: + MOVS R0,#0x02 /* Privileged Thread mode, use PSP */ + MSR CONTROL,R0 + BX LR + + .fnend + .size os_set_env, .-os_set_env + + +/*--------------------------- _alloc_box ------------------------------------*/ + +# void *_alloc_box (void *box_mem); + /* Function wrapper for Unprivileged/Privileged mode. */ + + .thumb_func + .type _alloc_box, %function + .global _alloc_box +_alloc_box: + .fnstart + .cantunwind + + LDR R3,=rt_alloc_box + MOV R12,R3 + MRS R3,IPSR + LSLS R3,#24 + BNE PrivilegedA + MRS R3,CONTROL + LSLS R3,#31 + BEQ PrivilegedA + SVC 0 + BX LR +PrivilegedA: + BX R12 + + .fnend + .size _alloc_box, .-_alloc_box + + +/*--------------------------- _free_box -------------------------------------*/ + +# int _free_box (void *box_mem, void *box); + /* Function wrapper for Unprivileged/Privileged mode. */ + + .thumb_func + .type _free_box, %function + .global _free_box +_free_box: + .fnstart + .cantunwind + + LDR R3,=rt_free_box + MOV R12,R3 + MRS R3,IPSR + LSLS R3,#24 + BNE PrivilegedF + MRS R3,CONTROL + LSLS R3,#31 + BEQ PrivilegedF + SVC 0 + BX LR +PrivilegedF: + BX R12 + + .fnend + .size _free_box, .-_free_box + + +/*-------------------------- SVC_Handler ------------------------------------*/ + +# void SVC_Handler (void); + + .thumb_func + .type SVC_Handler, %function + .global SVC_Handler +SVC_Handler: + .fnstart + .cantunwind + + MRS R0,PSP /* Read PSP */ + LDR R1,[R0,#24] /* Read Saved PC from Stack */ + SUBS R1,R1,#2 /* Point to SVC Instruction */ + LDRB R1,[R1] /* Load SVC Number */ + CMP R1,#0 + BNE SVC_User /* User SVC Number > 0 */ + + MOV LR,R4 + LDMIA R0,{R0-R3,R4} /* Read R0-R3,R12 from stack */ + MOV R12,R4 + MOV R4,LR + BLX R12 /* Call SVC Function */ + + MRS R3,PSP /* Read PSP */ + STMIA R3!,{R0-R2} /* Store return values */ + + LDR R3,=os_tsk + LDMIA R3!,{R1,R2} /* os_tsk.run, os_tsk.new */ + CMP R1,R2 + BEQ SVC_Exit /* no task switch */ + + SUBS R3,#8 + CMP R1,#0 /* Runtask deleted? */ + BEQ SVC_Next + + MRS R0,PSP /* Read PSP */ + SUBS R0,R0,#32 /* Adjust Start Address */ + STR R0,[R1,#TCB_TSTACK] /* Update os_tsk.run->tsk_stack */ + STMIA R0!,{R4-R7} /* Save old context (R4-R7) */ + MOV R4,R8 + MOV R5,R9 + MOV R6,R10 + MOV R7,R11 + STMIA R0!,{R4-R7} /* Save old context (R8-R11) */ + + PUSH {R2,R3} + BL rt_stk_check /* Check for Stack overflow */ + POP {R2,R3} + +SVC_Next: + STR R2,[R3] /* os_tsk.run = os_tsk.new */ + + LDR R0,[R2,#TCB_TSTACK] /* os_tsk.new->tsk_stack */ + ADDS R0,R0,#16 /* Adjust Start Address */ + LDMIA R0!,{R4-R7} /* Restore new Context (R8-R11) */ + MOV R8,R4 + MOV R9,R5 + MOV R10,R6 + MOV R11,R7 + MSR PSP,R0 /* Write PSP */ + SUBS R0,R0,#32 /* Adjust Start Address */ + LDMIA R0!,{R4-R7} /* Restore new Context (R4-R7) */ + +SVC_Exit: + MOVS R0,#~0xFFFFFFFD /* Set EXC_RETURN value */ + MVNS R0,R0 + BX R0 /* RETI to Thread Mode, use PSP */ + + /*------------------- User SVC ------------------------------*/ + +SVC_User: + PUSH {R4,LR} /* Save Registers */ + LDR R2,=SVC_Count + LDR R2,[R2] + CMP R1,R2 + BHI SVC_Done /* Overflow */ + + LDR R4,=SVC_Table-4 + LSLS R1,R1,#2 + LDR R4,[R4,R1] /* Load SVC Function Address */ + MOV LR,R4 + + LDMIA R0,{R0-R3,R4} /* Read R0-R3,R12 from stack */ + MOV R12,R4 + BLX LR /* Call SVC Function */ + + MRS R4,PSP /* Read PSP */ + STMIA R4!,{R0-R3} /* Function return values */ +SVC_Done: + POP {R4,PC} /* RETI */ + + .fnend + .size SVC_Handler, .-SVC_Handler + + +/*-------------------------- PendSV_Handler ---------------------------------*/ + +# void PendSV_Handler (void); + + .thumb_func + .type PendSV_Handler, %function + .global PendSV_Handler + .global Sys_Switch +PendSV_Handler: + .fnstart + .cantunwind + + BL rt_pop_req + +Sys_Switch: + LDR R3,=os_tsk + LDMIA R3!,{R1,R2} /* os_tsk.run, os_tsk.new */ + CMP R1,R2 + BEQ Sys_Exit /* no task switch */ + + SUBS R3,#8 + + MRS R0,PSP /* Read PSP */ + SUBS R0,R0,#32 /* Adjust Start Address */ + STR R0,[R1,#TCB_TSTACK] /* Update os_tsk.run->tsk_stack */ + STMIA R0!,{R4-R7} /* Save old context (R4-R7) */ + MOV R4,R8 + MOV R5,R9 + MOV R6,R10 + MOV R7,R11 + STMIA R0!,{R4-R7} /* Save old context (R8-R11) */ + + PUSH {R2,R3} + BL rt_stk_check /* Check for Stack overflow */ + POP {R2,R3} + + STR R2,[R3] /* os_tsk.run = os_tsk.new */ + + LDR R0,[R2,#TCB_TSTACK] /* os_tsk.new->tsk_stack */ + ADDS R0,R0,#16 /* Adjust Start Address */ + LDMIA R0!,{R4-R7} /* Restore new Context (R8-R11) */ + MOV R8,R4 + MOV R9,R5 + MOV R10,R6 + MOV R11,R7 + MSR PSP,R0 /* Write PSP */ + SUBS R0,R0,#32 /* Adjust Start Address */ + LDMIA R0!,{R4-R7} /* Restore new Context (R4-R7) */ + +Sys_Exit: + MOVS R0,#~0xFFFFFFFD /* Set EXC_RETURN value */ + MVNS R0,R0 + BX R0 /* RETI to Thread Mode, use PSP */ + + .fnend + .size PendSV_Handler, .-PendSV_Handler + + +/*-------------------------- SysTick_Handler --------------------------------*/ + +# void SysTick_Handler (void); + + .thumb_func + .type SysTick_Handler, %function + .global SysTick_Handler +SysTick_Handler: + .fnstart + .cantunwind + + BL rt_systick + B Sys_Switch + + .fnend + .size SysTick_Handler, .-SysTick_Handler + + +/*-------------------------- OS_Tick_Handler --------------------------------*/ + +# void OS_Tick_Handler (void); + + .thumb_func + .type OS_Tick_Handler, %function + .global OS_Tick_Handler +OS_Tick_Handler: + .fnstart + .cantunwind + + BL os_tick_irqack + BL rt_systick + B Sys_Switch + + .fnend + .size OS_Tick_Handler, .-OS_Tick_Handler + + + .end + +/*---------------------------------------------------------------------------- + * end of file + *---------------------------------------------------------------------------*/ diff --git a/vendor/cmsis_rtos_rtx/SRC/GCC/HAL_CM3.s b/vendor/cmsis_rtos_rtx/SRC/GCC/HAL_CM3.s new file mode 100644 index 000000000..19c138a3e --- /dev/null +++ b/vendor/cmsis_rtos_rtx/SRC/GCC/HAL_CM3.s @@ -0,0 +1,345 @@ +/*---------------------------------------------------------------------------- + * RL-ARM - RTX + *---------------------------------------------------------------------------- + * Name: HAL_CM3.S + * Purpose: Hardware Abstraction Layer for Cortex-M3 + * Rev.: V4.70 + *---------------------------------------------------------------------------- + * + * Copyright (c) 1999-2009 KEIL, 2009-2013 ARM Germany GmbH + * All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * - Neither the name of ARM nor the names of its contributors may be used + * to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + *---------------------------------------------------------------------------*/ + + .file "HAL_CM3.S" + .syntax unified + + .equ TCB_TSTACK, 36 + + +/*---------------------------------------------------------------------------- + * Functions + *---------------------------------------------------------------------------*/ + + .thumb + + .section ".text" + .align 2 + + +/*--------------------------- rt_set_PSP ------------------------------------*/ + +# void rt_set_PSP (U32 stack); + + .thumb_func + .type rt_set_PSP, %function + .global rt_set_PSP +rt_set_PSP: + .fnstart + .cantunwind + + MSR PSP,R0 + BX LR + + .fnend + .size rt_set_PSP, .-rt_set_PSP + + +/*--------------------------- rt_get_PSP ------------------------------------*/ + +# U32 rt_get_PSP (void); + + .thumb_func + .type rt_get_PSP, %function + .global rt_get_PSP +rt_get_PSP: + .fnstart + .cantunwind + + MRS R0,PSP + BX LR + + .fnend + .size rt_get_PSP, .-rt_get_PSP + + +/*--------------------------- os_set_env ------------------------------------*/ + +# void os_set_env (void); + /* Switch to Unprivileged/Privileged Thread mode, use PSP. */ + + .thumb_func + .type os_set_env, %function + .global os_set_env +os_set_env: + .fnstart + .cantunwind + + MOV R0,SP /* PSP = MSP */ + MSR PSP,R0 + LDR R0,=os_flags + LDRB R0,[R0] + LSLS R0,#31 + ITE NE + MOVNE R0,#0x02 /* Privileged Thread mode, use PSP */ + MOVEQ R0,#0x03 /* Unprivileged Thread mode, use PSP */ + MSR CONTROL,R0 + BX LR + + .fnend + .size os_set_env, .-os_set_env + + +/*--------------------------- _alloc_box ------------------------------------*/ + +# void *_alloc_box (void *box_mem); + /* Function wrapper for Unprivileged/Privileged mode. */ + + .thumb_func + .type _alloc_box, %function + .global _alloc_box +_alloc_box: + .fnstart + .cantunwind + + LDR R12,=rt_alloc_box + MRS R3,IPSR + LSLS R3,#24 + IT NE + BXNE R12 + MRS R3,CONTROL + LSLS R3,#31 + IT EQ + BXEQ R12 + SVC 0 + BX LR + + .fnend + .size _alloc_box, .-_alloc_box + + +/*--------------------------- _free_box -------------------------------------*/ + +# int _free_box (void *box_mem, void *box); + /* Function wrapper for Unprivileged/Privileged mode. */ + + .thumb_func + .type _free_box, %function + .global _free_box +_free_box: + .fnstart + .cantunwind + + LDR R12,=rt_free_box + MRS R3,IPSR + LSLS R3,#24 + IT NE + BXNE R12 + MRS R3,CONTROL + LSLS R3,#31 + IT EQ + BXEQ R12 + SVC 0 + BX LR + + .fnend + .size _free_box, .-_free_box + + +/*-------------------------- SVC_Handler ------------------------------------*/ + +# void SVC_Handler (void); + + .thumb_func + .type SVC_Handler, %function + .global SVC_Handler +SVC_Handler: + .ifdef IFX_XMC4XXX + .global SVC_Handler_Veneer +SVC_Handler_Veneer: + .endif + .fnstart + .cantunwind + + MRS R0,PSP /* Read PSP */ + LDR R1,[R0,#24] /* Read Saved PC from Stack */ + LDRB R1,[R1,#-2] /* Load SVC Number */ + CBNZ R1,SVC_User + + LDM R0,{R0-R3,R12} /* Read R0-R3,R12 from stack */ + BLX R12 /* Call SVC Function */ + + MRS R12,PSP /* Read PSP */ + STM R12,{R0-R2} /* Store return values */ + + LDR R3,=os_tsk + LDM R3,{R1,R2} /* os_tsk.run, os_tsk.new */ + CMP R1,R2 + BEQ SVC_Exit /* no task switch */ + + CBZ R1,SVC_Next /* Runtask deleted? */ + STMDB R12!,{R4-R11} /* Save Old context */ + STR R12,[R1,#TCB_TSTACK] /* Update os_tsk.run->tsk_stack */ + + PUSH {R2,R3} + BL rt_stk_check /* Check for Stack overflow */ + POP {R2,R3} + +SVC_Next: + STR R2,[R3] /* os_tsk.run = os_tsk.new */ + + LDR R12,[R2,#TCB_TSTACK] /* os_tsk.new->tsk_stack */ + LDMIA R12!,{R4-R11} /* Restore New Context */ + MSR PSP,R12 /* Write PSP */ + +SVC_Exit: + MVN LR,#~0xFFFFFFFD /* set EXC_RETURN value */ + .ifdef IFX_XMC4XXX + PUSH {LR} + POP {PC} + .else + BX LR + .endif + + /*------------------- User SVC ------------------------------*/ + +SVC_User: + PUSH {R4,LR} /* Save Registers */ + LDR R2,=SVC_Count + LDR R2,[R2] + CMP R1,R2 + BHI SVC_Done /* Overflow */ + + LDR R4,=SVC_Table-4 + LDR R4,[R4,R1,LSL #2] /* Load SVC Function Address */ + + LDM R0,{R0-R3,R12} /* Read R0-R3,R12 from stack */ + BLX R4 /* Call SVC Function */ + + MRS R12,PSP + STM R12,{R0-R3} /* Function return values */ +SVC_Done: + POP {R4,PC} /* RETI */ + + .fnend + .size SVC_Handler, .-SVC_Handler + + +/*-------------------------- PendSV_Handler ---------------------------------*/ + +# void PendSV_Handler (void); + + .thumb_func + .type PendSV_Handler, %function + .global PendSV_Handler + .global Sys_Switch +PendSV_Handler: + .ifdef IFX_XMC4XXX + .global PendSV_Handler_Veneer +PendSV_Handler_Veneer: + .endif + .fnstart + .cantunwind + + BL rt_pop_req + +Sys_Switch: + LDR R3,=os_tsk + LDM R3,{R1,R2} /* os_tsk.run, os_tsk.new */ + CMP R1,R2 + BEQ Sys_Exit + + MRS R12,PSP /* Read PSP */ + STMDB R12!,{R4-R11} /* Save Old context */ + STR R12,[R1,#TCB_TSTACK] /* Update os_tsk.run->tsk_stack */ + + PUSH {R2,R3} + BL rt_stk_check /* Check for Stack overflow */ + POP {R2,R3} + + STR R2,[R3] /* os_tsk.run = os_tsk.new */ + + LDR R12,[R2,#TCB_TSTACK] /* os_tsk.new->tsk_stack */ + LDMIA R12!,{R4-R11} /* Restore New Context */ + MSR PSP,R12 /* Write PSP */ + +Sys_Exit: + MVN LR,#~0xFFFFFFFD /* set EXC_RETURN value */ + .ifdef IFX_XMC4XXX + PUSH {LR} + POP {PC} + .else + BX LR /* Return to Thread Mode */ + .endif + + .fnend + .size PendSV_Handler, .-PendSV_Handler + + +/*-------------------------- SysTick_Handler --------------------------------*/ + +# void SysTick_Handler (void); + + .thumb_func + .type SysTick_Handler, %function + .global SysTick_Handler +SysTick_Handler: + .ifdef IFX_XMC4XXX + .global SysTick_Handler_Veneer +SysTick_Handler_Veneer: + .endif + .fnstart + .cantunwind + + BL rt_systick + B Sys_Switch + + .fnend + .size SysTick_Handler, .-SysTick_Handler + + +/*-------------------------- OS_Tick_Handler --------------------------------*/ + +# void OS_Tick_Handler (void); + + .thumb_func + .type OS_Tick_Handler, %function + .global OS_Tick_Handler +OS_Tick_Handler: + .fnstart + .cantunwind + + BL os_tick_irqack + BL rt_systick + B Sys_Switch + + .fnend + .size OS_Tick_Handler, .-OS_Tick_Handler + + + .end + +/*---------------------------------------------------------------------------- + * end of file + *---------------------------------------------------------------------------*/ diff --git a/vendor/cmsis_rtos_rtx/SRC/GCC/HAL_CM4.s b/vendor/cmsis_rtos_rtx/SRC/GCC/HAL_CM4.s new file mode 100644 index 000000000..0208a74a2 --- /dev/null +++ b/vendor/cmsis_rtos_rtx/SRC/GCC/HAL_CM4.s @@ -0,0 +1,389 @@ +/*---------------------------------------------------------------------------- + * RL-ARM - RTX + *---------------------------------------------------------------------------- + * Name: HAL_CM4.S + * Purpose: Hardware Abstraction Layer for Cortex-M4 + * Rev.: V4.70 + *---------------------------------------------------------------------------- + * + * Copyright (c) 1999-2009 KEIL, 2009-2013 ARM Germany GmbH + * All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * - Neither the name of ARM nor the names of its contributors may be used + * to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + *---------------------------------------------------------------------------*/ + + .file "HAL_CM4.S" + .syntax unified + + .equ TCB_STACKF, 32 + .equ TCB_TSTACK, 36 + + +/*---------------------------------------------------------------------------- + * Functions + *---------------------------------------------------------------------------*/ + + .thumb + + .section ".text" + .align 2 + + +/*--------------------------- rt_set_PSP ------------------------------------*/ + +# void rt_set_PSP (U32 stack); + + .thumb_func + .type rt_set_PSP, %function + .global rt_set_PSP +rt_set_PSP: + .fnstart + .cantunwind + + MSR PSP,R0 + BX LR + + .fnend + .size rt_set_PSP, .-rt_set_PSP + + +/*--------------------------- rt_get_PSP ------------------------------------*/ + +# U32 rt_get_PSP (void); + + .thumb_func + .type rt_get_PSP, %function + .global rt_get_PSP +rt_get_PSP: + .fnstart + .cantunwind + + MRS R0,PSP + BX LR + + .fnend + .size rt_get_PSP, .-rt_get_PSP + + +/*--------------------------- os_set_env ------------------------------------*/ + +# void os_set_env (void); + /* Switch to Unprivileged/Privileged Thread mode, use PSP. */ + + .thumb_func + .type os_set_env, %function + .global os_set_env +os_set_env: + .fnstart + .cantunwind + + MOV R0,SP /* PSP = MSP */ + MSR PSP,R0 + LDR R0,=os_flags + LDRB R0,[R0] + LSLS R0,#31 + ITE NE + MOVNE R0,#0x02 /* Privileged Thread mode, use PSP */ + MOVEQ R0,#0x03 /* Unprivileged Thread mode, use PSP */ + MSR CONTROL,R0 + BX LR + + .fnend + .size os_set_env, .-os_set_env + + +/*--------------------------- _alloc_box ------------------------------------*/ + +# void *_alloc_box (void *box_mem); + /* Function wrapper for Unprivileged/Privileged mode. */ + + .thumb_func + .type _alloc_box, %function + .global _alloc_box +_alloc_box: + .fnstart + .cantunwind + + LDR R12,=rt_alloc_box + MRS R3,IPSR + LSLS R3,#24 + IT NE + BXNE R12 + MRS R3,CONTROL + LSLS R3,#31 + IT EQ + BXEQ R12 + SVC 0 + BX LR + + .fnend + .size _alloc_box, .-_alloc_box + + +/*--------------------------- _free_box -------------------------------------*/ + +# int _free_box (void *box_mem, void *box); + /* Function wrapper for Unprivileged/Privileged mode. */ + + .thumb_func + .type _free_box, %function + .global _free_box +_free_box: + .fnstart + .cantunwind + + LDR R12,=rt_free_box + MRS R3,IPSR + LSLS R3,#24 + IT NE + BXNE R12 + MRS R3,CONTROL + LSLS R3,#31 + IT EQ + BXEQ R12 + SVC 0 + BX LR + + .fnend + .size _free_box, .-_free_box + + +/*-------------------------- SVC_Handler ------------------------------------*/ + +# void SVC_Handler (void); + + .thumb_func + .type SVC_Handler, %function + .global SVC_Handler +SVC_Handler: + .ifdef IFX_XMC4XXX + .global SVC_Handler_Veneer +SVC_Handler_Veneer: + .endif + .fnstart + .cantunwind + + MRS R0,PSP /* Read PSP */ + LDR R1,[R0,#24] /* Read Saved PC from Stack */ + LDRB R1,[R1,#-2] /* Load SVC Number */ + CBNZ R1,SVC_User + + LDM R0,{R0-R3,R12} /* Read R0-R3,R12 from stack */ + PUSH {R4,LR} /* Save EXC_RETURN */ + BLX R12 /* Call SVC Function */ + POP {R4,LR} /* Restore EXC_RETURN */ + + MRS R12,PSP /* Read PSP */ + STM R12,{R0-R2} /* Store return values */ + + LDR R3,=os_tsk + LDM R3,{R1,R2} /* os_tsk.run, os_tsk.new */ + CMP R1,R2 + .ifdef IFX_XMC4XXX + ITT EQ + PUSHEQ {LR} + POPEQ {PC} + .else + IT EQ + BXEQ LR /* RETI, no task switch */ + .endif + + CBZ R1,SVC_Next /* Runtask deleted? */ + TST LR,#0x10 /* is it extended frame? */ + ITTE EQ + VSTMDBEQ R12!,{S16-S31} /* yes, stack also VFP hi-regs */ + MOVEQ R0,#0x01 /* os_tsk->stack_frame val */ + MOVNE R0,#0x00 + STRB R0,[R1,#TCB_STACKF] /* os_tsk.run->stack_frame = val */ + STMDB R12!,{R4-R11} /* Save Old context */ + STR R12,[R1,#TCB_TSTACK] /* Update os_tsk.run->tsk_stack */ + + PUSH {R2,R3} + BL rt_stk_check /* Check for Stack overflow */ + POP {R2,R3} + +SVC_Next: + STR R2,[R3] /* os_tsk.run = os_tsk.new */ + + LDR R12,[R2,#TCB_TSTACK] /* os_tsk.new->tsk_stack */ + LDMIA R12!,{R4-R11} /* Restore New Context */ + LDRB R0,[R2,#TCB_STACKF] /* Stack Frame */ + CMP R0,#0 /* Basic/Extended Stack Frame */ + ITTE NE + VLDMIANE R12!,{S16-S31} /* restore VFP hi-registers */ + MVNNE LR,#~0xFFFFFFED /* set EXC_RETURN value */ + MVNEQ LR,#~0xFFFFFFFD + MSR PSP,R12 /* Write PSP */ + +SVC_Exit: + .ifdef IFX_XMC4XXX + PUSH {LR} + POP {PC} + .else + BX LR + .endif + + /*------------------- User SVC ------------------------------*/ + +SVC_User: + PUSH {R4,LR} /* Save Registers */ + LDR R2,=SVC_Count + LDR R2,[R2] + CMP R1,R2 + BHI SVC_Done /* Overflow */ + + LDR R4,=SVC_Table-4 + LDR R4,[R4,R1,LSL #2] /* Load SVC Function Address */ + + LDM R0,{R0-R3,R12} /* Read R0-R3,R12 from stack */ + BLX R4 /* Call SVC Function */ + + MRS R12,PSP + STM R12,{R0-R3} /* Function return values */ +SVC_Done: + POP {R4,PC} /* RETI */ + + .fnend + .size SVC_Handler, .-SVC_Handler + + +/*-------------------------- PendSV_Handler ---------------------------------*/ + +# void PendSV_Handler (void); + + .thumb_func + .type PendSV_Handler, %function + .global PendSV_Handler + .global Sys_Switch +PendSV_Handler: + .ifdef IFX_XMC4XXX + .global PendSV_Handler_Veneer +PendSV_Handler_Veneer: + .endif + .fnstart + .cantunwind + + PUSH {R4,LR} /* Save EXC_RETURN */ + BL rt_pop_req + +Sys_Switch: + POP {R4,LR} /* Restore EXC_RETURN */ + + LDR R3,=os_tsk + LDM R3,{R1,R2} /* os_tsk.run, os_tsk.new */ + CMP R1,R2 + .ifdef IFX_XMC4XXX + ITT EQ + PUSHEQ {LR} + POPEQ {PC} + .else + IT EQ + BXEQ LR /* RETI, no task switch */ + .endif + + MRS R12,PSP /* Read PSP */ + TST LR,#0x10 /* is it extended frame? */ + ITTE EQ + VSTMDBEQ R12!,{S16-S31} /* yes, stack also VFP hi-regs */ + MOVEQ R0,#0x01 /* os_tsk->stack_frame val */ + MOVNE R0,#0x00 + STRB R0,[R1,#TCB_STACKF] /* os_tsk.run->stack_frame = val */ + STMDB R12!,{R4-R11} /* Save Old context */ + STR R12,[R1,#TCB_TSTACK] /* Update os_tsk.run->tsk_stack */ + + PUSH {R2,R3} + BL rt_stk_check /* Check for Stack overflow */ + POP {R2,R3} + + STR R2,[R3] /* os_tsk.run = os_tsk.new */ + + LDR R12,[R2,#TCB_TSTACK] /* os_tsk.new->tsk_stack */ + LDMIA R12!,{R4-R11} /* Restore New Context */ + LDRB R0,[R2,#TCB_STACKF] /* Stack Frame */ + CMP R0,#0 /* Basic/Extended Stack Frame */ + ITTE NE + VLDMIANE R12!,{S16-S31} /* restore VFP hi-registers */ + MVNNE LR,#~0xFFFFFFED /* set EXC_RETURN value */ + MVNEQ LR,#~0xFFFFFFFD + MSR PSP,R12 /* Write PSP */ + +Sys_Exit: + .ifdef IFX_XMC4XXX + PUSH {LR} + POP {PC} + .else + BX LR /* Return to Thread Mode */ + .endif + + .fnend + .size PendSV_Handler, .-PendSV_Handler + + +/*-------------------------- SysTick_Handler --------------------------------*/ + +# void SysTick_Handler (void); + + .thumb_func + .type SysTick_Handler, %function + .global SysTick_Handler +SysTick_Handler: + .ifdef IFX_XMC4XXX + .global SysTick_Handler_Veneer +SysTick_Handler_Veneer: + .endif + .fnstart + .cantunwind + + PUSH {R4,LR} /* Save EXC_RETURN */ + BL rt_systick + B Sys_Switch + + .fnend + .size SysTick_Handler, .-SysTick_Handler + + +/*-------------------------- OS_Tick_Handler --------------------------------*/ + +# void OS_Tick_Handler (void); + + .thumb_func + .type OS_Tick_Handler, %function + .global OS_Tick_Handler +OS_Tick_Handler: + .fnstart + .cantunwind + + PUSH {R4,LR} /* Save EXC_RETURN */ + BL os_tick_irqack + BL rt_systick + B Sys_Switch + + .fnend + .size OS_Tick_Handler, .-OS_Tick_Handler + + + .end + +/*---------------------------------------------------------------------------- + * end of file + *---------------------------------------------------------------------------*/ diff --git a/vendor/cmsis_rtos_rtx/SRC/GCC/RTX_Lib_CM.uvopt b/vendor/cmsis_rtos_rtx/SRC/GCC/RTX_Lib_CM.uvopt new file mode 100644 index 000000000..7e1e6f803 --- /dev/null +++ b/vendor/cmsis_rtos_rtx/SRC/GCC/RTX_Lib_CM.uvopt @@ -0,0 +1,1399 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + + + + 0 + 0 + + + + CM0_LE + 0x3 + ARM-GNU + + 12000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 120 + 65 + 8 + .\CM0_LE\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 255 + + SARMCM3.DLL + + DARMCM1.DLL + -pCM0 + SARMCM3.DLL + + TARMCM1.DLL + -pCM0 + + + 1 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + -1 + + + + + + + + + + + + + + + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + 0 + + + + + + + + CM0_BE + 0x3 + ARM-GNU + + 12000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 120 + 65 + 8 + .\CM0_BE\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 0 + + 255 + + SARMCM3.DLL + + DARMCM1.DLL + -pCM0 + SARMCM3.DLL + + TARMCM1.DLL + -pCM0 + + + 1 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + -1 + + + + + + + + + + + + + + + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + 0 + + + + + + + + CM3_LE + 0x3 + ARM-GNU + + 12000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 120 + 65 + 8 + .\CM3_LE\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 0 + + 255 + + SARMCM3.DLL + + DLM.DLL + -pEMBER + SARMCM3.DLL + + TLM.DLL + -pEMBER + + + 1 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + -1 + + + + + + + + + + + + + + + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + 0 + + + + + + + + CM3_BE + 0x3 + ARM-GNU + + 12000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 120 + 65 + 8 + .\CM3_BE\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 0 + + 255 + + SARMCM3.DLL + + DLM.DLL + -pEMBER + SARMCM3.DLL + + TLM.DLL + -pEMBER + + + 1 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + -1 + + + + + + + + + + + + + + + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + 0 + + + + + + + + CM3_LE_IFX + 0x3 + ARM-GNU + + 12000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 120 + 65 + 8 + .\CM3_LE_IFX\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 0 + + 255 + + SARMCM3.DLL + + DLM.DLL + -pEMBER + SARMCM3.DLL + + TLM.DLL + -pEMBER + + + 1 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + -1 + + + + + + + + + + + + + + + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + 0 + + + + + + + + CM4F_LE + 0x3 + ARM-GNU + + 12000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 120 + 65 + 8 + .\CM4F_LE\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 0 + + 255 + + SARMCM3.DLL + + DCM.DLL + -pCM4 + SARMCM3.DLL + + TCM.DLL + -pCM4 + + + 1 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + -1 + + + + + + + + + + + + + + + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + 0 + + + + + + + + CM4F_BE + 0x3 + ARM-GNU + + 12000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 120 + 65 + 8 + .\CM4F_BE\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 0 + + 255 + + SARMCM3.DLL + + DCM.DLL + -pCM4 + SARMCM3.DLL + + TCM.DLL + -pCM4 + + + 1 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + -1 + + + + + + + + + + + + + + + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + 0 + + + + + + + + CM4F_LE_IFX + 0x3 + ARM-GNU + + 12000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 120 + 65 + 8 + .\CM4F_LE_IFX\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 0 + + 255 + + SARMCM3.DLL + + DCM.DLL + -pCM4 + SARMCM3.DLL + + TCM.DLL + -pCM4 + + + 1 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + -1 + + + + + + + + + + + + + + + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + 0 + + + + + + + + Kernel + 1 + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 1 + 1 + 0 + ../rt_CMSIS.c + rt_CMSIS.c + 0 + 0 + + + 1 + 2 + 1 + 0 + 0 + 0 + 0 + 1 + 1 + 0 + ../rt_Task.c + rt_Task.c + 0 + 0 + + + 1 + 3 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ../rt_System.c + rt_System.c + 0 + 0 + + + 1 + 4 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ../rt_Event.c + rt_Event.c + 0 + 0 + + + 1 + 5 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ../rt_List.c + rt_List.c + 0 + 0 + + + 1 + 6 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ../rt_Mailbox.c + rt_Mailbox.c + 0 + 0 + + + 1 + 7 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ../rt_Semaphore.c + rt_Semaphore.c + 0 + 0 + + + 1 + 8 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ../rt_Time.c + rt_Time.c + 0 + 0 + + + 1 + 9 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ../rt_Timer.c + rt_Timer.c + 0 + 0 + + + 1 + 10 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ../rt_Mutex.c + rt_Mutex.c + 0 + 0 + + + 1 + 11 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ../rt_Robin.c + rt_Robin.c + 0 + 0 + + + 1 + 12 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ../rt_MemBox.c + rt_MemBox.c + 0 + 0 + + + 1 + 13 + 1 + 0 + 0 + 0 + 0 + 1 + 1 + 0 + ../rt_Memory.c + rt_Memory.c + 0 + 0 + + + + + HAL + 1 + 0 + 0 + 0 + + 2 + 14 + 2 + 0 + 0 + 0 + 0 + 1 + 1 + 0 + .\SVC_Table.s + SVC_Table.s + 0 + 0 + + + 2 + 15 + 1 + 0 + 0 + 0 + 0 + 1 + 1 + 0 + ../HAL_CM.c + HAL_CM.c + 0 + 0 + + + 2 + 16 + 2 + 0 + 0 + 0 + 0 + 1 + 1 + 0 + .\HAL_CM0.s + HAL_CM0.s + 0 + 0 + + + 2 + 17 + 2 + 0 + 0 + 0 + 0 + 1 + 1 + 0 + .\HAL_CM3.s + HAL_CM3.s + 0 + 0 + + + 2 + 18 + 2 + 0 + 0 + 0 + 0 + 1 + 1 + 0 + .\HAL_CM4.s + HAL_CM4.s + 0 + 0 + + + +
diff --git a/vendor/cmsis_rtos_rtx/SRC/GCC/RTX_Lib_CM.uvproj b/vendor/cmsis_rtos_rtx/SRC/GCC/RTX_Lib_CM.uvproj new file mode 100644 index 000000000..24e961220 --- /dev/null +++ b/vendor/cmsis_rtos_rtx/SRC/GCC/RTX_Lib_CM.uvproj @@ -0,0 +1,3957 @@ + + + + 1.1 + +
### uVision Project, (C) Keil Software
+ + + + CM0_LE + 0x3 + ARM-GNU + + + Cortex-M0 + ARM + CLOCK(12000000) CPUTYPE("Cortex-M0") ESEL ELITTLE + + + + 4803 + + + + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\CM0_LE\ + RTX_CM0 + 0 + 1 + 0 + 1 + 0 + .\CM0_LE\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 1 + 0 + cmd.exe /C copy CM0_LE\libRTX_CM0.a ..\..\LIB\GCC\ + + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + + + SARMCM3.DLL + + DARMCM1.DLL + -pCM0 + SARMCM3.DLL + + TARMCM1.DLL + -pCM0 + + + + 1 + 0 + 0 + 0 + 16 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + + + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + + 0 + -1 + + + + + + + + + + + + + + + + + + + 1 + 0 + 0 + 0 + 0 + -1 + + + + + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + "Cortex-M0" + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + + + 0 + 0 + 0 + 0 + 0 + 0 + 5 + 2 + 1 + + -ffunction-sections + __CORTEX_M0 __CMSIS_RTOS + + + + + + 0 + 0 + + + __CORTEX_M0 __CMSIS_RTOS + + + + + + 1 + 1 + 1 + 0 + 0 + + + + + + + + + + + + + Kernel + + + rt_CMSIS.c + 1 + ../rt_CMSIS.c + + + 2 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 0 + 0 + 0 + 2 + + + + + ..\..\INC + + + + + + + rt_Task.c + 1 + ../rt_Task.c + + + rt_System.c + 1 + ../rt_System.c + + + rt_Event.c + 1 + ../rt_Event.c + + + rt_List.c + 1 + ../rt_List.c + + + rt_Mailbox.c + 1 + ../rt_Mailbox.c + + + rt_Semaphore.c + 1 + ../rt_Semaphore.c + + + rt_Time.c + 1 + ../rt_Time.c + + + rt_Timer.c + 1 + ../rt_Timer.c + + + rt_Mutex.c + 1 + ../rt_Mutex.c + + + rt_Robin.c + 1 + ../rt_Robin.c + + + rt_MemBox.c + 1 + ../rt_MemBox.c + + + rt_Memory.c + 1 + ../rt_Memory.c + + + + + HAL + + + SVC_Table.s + 2 + .\SVC_Table.s + + + HAL_CM.c + 1 + ../HAL_CM.c + + + HAL_CM0.s + 2 + .\HAL_CM0.s + + + HAL_CM3.s + 2 + .\HAL_CM3.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + + + + + + + + + + + + HAL_CM4.s + 2 + .\HAL_CM4.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + + + + + + + + + + + + + + + + CM0_BE + 0x3 + ARM-GNU + + + Cortex-M0 + ARM + CLOCK(12000000) CPUTYPE("Cortex-M0") ESEL ELITTLE + + + + 4803 + + + + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\CM0_BE\ + RTX_CM0_B + 0 + 1 + 0 + 1 + 0 + .\CM0_BE\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 1 + 0 + cmd.exe /C copy CM0_BE\libRTX_CM0_B.a ..\..\LIB\GCC\ + + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + + + SARMCM3.DLL + + DARMCM1.DLL + -pCM0 + SARMCM3.DLL + + TARMCM1.DLL + -pCM0 + + + + 1 + 0 + 0 + 0 + 16 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + + + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + + 0 + -1 + + + + + + + + + + + + + + + + + + + 1 + 0 + 0 + 0 + 0 + -1 + + + + + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + "Cortex-M0" + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + + + 0 + 0 + 0 + 0 + 0 + 0 + 5 + 2 + 1 + + -ffunction-sections + __CORTEX_M0 __CMSIS_RTOS + + + + + + 0 + 0 + + + __CORTEX_M0 __CMSIS_RTOS + + + + + + 1 + 1 + 1 + 0 + 0 + + + + + + + + + + + + + Kernel + + + rt_CMSIS.c + 1 + ../rt_CMSIS.c + + + 2 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 0 + 0 + 0 + 2 + + + + + ..\..\INC + + + + + + + rt_Task.c + 1 + ../rt_Task.c + + + rt_System.c + 1 + ../rt_System.c + + + rt_Event.c + 1 + ../rt_Event.c + + + rt_List.c + 1 + ../rt_List.c + + + rt_Mailbox.c + 1 + ../rt_Mailbox.c + + + rt_Semaphore.c + 1 + ../rt_Semaphore.c + + + rt_Time.c + 1 + ../rt_Time.c + + + rt_Timer.c + 1 + ../rt_Timer.c + + + rt_Mutex.c + 1 + ../rt_Mutex.c + + + rt_Robin.c + 1 + ../rt_Robin.c + + + rt_MemBox.c + 1 + ../rt_MemBox.c + + + rt_Memory.c + 1 + ../rt_Memory.c + + + + + HAL + + + SVC_Table.s + 2 + .\SVC_Table.s + + + HAL_CM.c + 1 + ../HAL_CM.c + + + HAL_CM0.s + 2 + .\HAL_CM0.s + + + HAL_CM3.s + 2 + .\HAL_CM3.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + + + + + + + + + + + + HAL_CM4.s + 2 + .\HAL_CM4.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + + + + + + + + + + + + + + + + CM3_LE + 0x3 + ARM-GNU + + + Cortex-M3 + ARM + CLOCK(12000000) CPUTYPE("Cortex-M3") + + + + 4349 + + + + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\CM3_LE\ + RTX_CM3 + 0 + 1 + 0 + 1 + 0 + .\CM3_LE\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 1 + 0 + cmd.exe /C copy CM3_LE\libRTX_CM3.a ..\..\LIB\GCC\ + + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + + + SARMCM3.DLL + + DLM.DLL + -pEMBER + SARMCM3.DLL + + TLM.DLL + -pEMBER + + + + 1 + 0 + 0 + 0 + 16 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + + + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + + 0 + -1 + + + + + + + + + + + + + + + + + + + 1 + 0 + 0 + 0 + 0 + -1 + + + + + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + "Cortex-M3" + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + + + 0 + 0 + 0 + 0 + 0 + 0 + 5 + 2 + 1 + + -ffunction-sections + __CORTEX_M3 __CMSIS_RTOS DBG_MSG + + + + + + 0 + 0 + + + __CORTEX_M3 __CMSIS_RTOS + + + + + + 1 + 1 + 1 + 0 + 0 + + + + + + + + + + + + + Kernel + + + rt_CMSIS.c + 1 + ../rt_CMSIS.c + + + 2 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 0 + 0 + 0 + 2 + + + + + ..\..\INC + + + + + + + rt_Task.c + 1 + ../rt_Task.c + + + rt_System.c + 1 + ../rt_System.c + + + rt_Event.c + 1 + ../rt_Event.c + + + rt_List.c + 1 + ../rt_List.c + + + rt_Mailbox.c + 1 + ../rt_Mailbox.c + + + rt_Semaphore.c + 1 + ../rt_Semaphore.c + + + rt_Time.c + 1 + ../rt_Time.c + + + rt_Timer.c + 1 + ../rt_Timer.c + + + rt_Mutex.c + 1 + ../rt_Mutex.c + + + rt_Robin.c + 1 + ../rt_Robin.c + + + rt_MemBox.c + 1 + ../rt_MemBox.c + + + rt_Memory.c + 1 + ../rt_Memory.c + + + + + HAL + + + SVC_Table.s + 2 + .\SVC_Table.s + + + HAL_CM.c + 1 + ../HAL_CM.c + + + HAL_CM0.s + 2 + .\HAL_CM0.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + + + + + + + + + + + + HAL_CM3.s + 2 + .\HAL_CM3.s + + + HAL_CM4.s + 2 + .\HAL_CM4.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + + + + + + + + + + + + + + + + CM3_BE + 0x3 + ARM-GNU + + + Cortex-M3 + ARM + CLOCK(12000000) CPUTYPE("Cortex-M3") + + + + 4349 + + + + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\CM3_BE\ + RTX_CM3_B + 0 + 1 + 0 + 1 + 0 + .\CM3_BE\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 1 + 0 + cmd.exe /C copy CM3_BE\libRTX_CM3_B.a ..\..\LIB\GCC\ + + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + + + SARMCM3.DLL + + DLM.DLL + -pEMBER + SARMCM3.DLL + + TLM.DLL + -pEMBER + + + + 1 + 0 + 0 + 0 + 16 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + + + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + + 0 + -1 + + + + + + + + + + + + + + + + + + + 1 + 0 + 0 + 0 + 0 + -1 + + + + + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + "Cortex-M3" + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + + + 0 + 0 + 0 + 0 + 0 + 0 + 5 + 2 + 1 + + -ffunction-sections + __CORTEX_M3 __CMSIS_RTOS DBG_MSG + + + + + + 0 + 0 + + + __CORTEX_M3 __CMSIS_RTOS + + + + + + 1 + 1 + 1 + 0 + 0 + + + + + + + + + + + + + Kernel + + + rt_CMSIS.c + 1 + ../rt_CMSIS.c + + + 2 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 0 + 0 + 0 + 2 + + + + + ..\..\INC + + + + + + + rt_Task.c + 1 + ../rt_Task.c + + + rt_System.c + 1 + ../rt_System.c + + + rt_Event.c + 1 + ../rt_Event.c + + + rt_List.c + 1 + ../rt_List.c + + + rt_Mailbox.c + 1 + ../rt_Mailbox.c + + + rt_Semaphore.c + 1 + ../rt_Semaphore.c + + + rt_Time.c + 1 + ../rt_Time.c + + + rt_Timer.c + 1 + ../rt_Timer.c + + + rt_Mutex.c + 1 + ../rt_Mutex.c + + + rt_Robin.c + 1 + ../rt_Robin.c + + + rt_MemBox.c + 1 + ../rt_MemBox.c + + + rt_Memory.c + 1 + ../rt_Memory.c + + + + + HAL + + + SVC_Table.s + 2 + .\SVC_Table.s + + + HAL_CM.c + 1 + ../HAL_CM.c + + + HAL_CM0.s + 2 + .\HAL_CM0.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + + + + + + + + + + + + HAL_CM3.s + 2 + .\HAL_CM3.s + + + HAL_CM4.s + 2 + .\HAL_CM4.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + + + + + + + + + + + + + + + + CM3_LE_IFX + 0x3 + ARM-GNU + + + Cortex-M3 + ARM + CLOCK(12000000) CPUTYPE("Cortex-M3") + + + + 4349 + + + + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\CM3_LE_IFX\ + RTX_CM3_IFX + 0 + 1 + 0 + 1 + 0 + .\CM3_LE_IFX\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 1 + 0 + cmd.exe /C copy CM3_LE_IFX\libRTX_CM3_IFX.a ..\..\LIB\GCC\ + + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + + + SARMCM3.DLL + + DLM.DLL + -pEMBER + SARMCM3.DLL + + TLM.DLL + -pEMBER + + + + 1 + 0 + 0 + 0 + 16 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + + + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + + 0 + -1 + + + + + + + + + + + + + + + + + + + 1 + 0 + 0 + 0 + 0 + -1 + + + + + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + "Cortex-M3" + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + + + 0 + 0 + 0 + 0 + 0 + 0 + 5 + 2 + 1 + + -ffunction-sections + __CORTEX_M3 __CMSIS_RTOS DBG_MSG + + + + + + 0 + 0 + + + __CORTEX_M3 __CMSIS_RTOS + + + + + + 1 + 1 + 1 + 0 + 0 + + + + + + + + + + + + + Kernel + + + rt_CMSIS.c + 1 + ../rt_CMSIS.c + + + 2 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 0 + 0 + 0 + 2 + + + + + ..\..\INC + + + + + + + rt_Task.c + 1 + ../rt_Task.c + + + rt_System.c + 1 + ../rt_System.c + + + rt_Event.c + 1 + ../rt_Event.c + + + rt_List.c + 1 + ../rt_List.c + + + rt_Mailbox.c + 1 + ../rt_Mailbox.c + + + rt_Semaphore.c + 1 + ../rt_Semaphore.c + + + rt_Time.c + 1 + ../rt_Time.c + + + rt_Timer.c + 1 + ../rt_Timer.c + + + rt_Mutex.c + 1 + ../rt_Mutex.c + + + rt_Robin.c + 1 + ../rt_Robin.c + + + rt_MemBox.c + 1 + ../rt_MemBox.c + + + rt_Memory.c + 1 + ../rt_Memory.c + + + + + HAL + + + SVC_Table.s + 2 + .\SVC_Table.s + + + HAL_CM.c + 1 + ../HAL_CM.c + + + HAL_CM0.s + 2 + .\HAL_CM0.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + + + + + + + + + + + + HAL_CM3.s + 2 + .\HAL_CM3.s + + + 2 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + + + IFX_XMC4XXX + + + + + + + + + HAL_CM4.s + 2 + .\HAL_CM4.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + + + + + + + + + + + + + + + + CM4F_LE + 0x3 + ARM-GNU + + + Cortex-M4 FPU + ARM + CLOCK(12000000) CPUTYPE("Cortex-M4") ESEL ELITTLE FPU2 + + + + 5237 + + + + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\CM4F_LE\ + RTX_CM4 + 0 + 1 + 0 + 1 + 0 + .\CM4F_LE\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 1 + 0 + cmd.exe /C copy CM4F_LE\libRTX_CM4.a ..\..\LIB\GCC\ + + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + + + SARMCM3.DLL + + DCM.DLL + -pCM4 + SARMCM3.DLL + + TCM.DLL + -pCM4 + + + + 1 + 0 + 0 + 0 + 16 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + + + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + + 0 + -1 + + + + + + + + + + + + + + + + + + + 1 + 0 + 0 + 0 + 0 + -1 + + + + + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + "Cortex-M4" + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + + + 0 + 0 + 0 + 0 + 0 + 0 + 5 + 2 + 1 + + -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -ffunction-sections + __CORTEX_M4F __FPU_PRESENT=1 __CMSIS_RTOS DBG_MSG + + + + + + 0 + 0 + + -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard + __CORTEX_M4F __CMSIS_RTOS + + + + + + 1 + 1 + 1 + 0 + 0 + + + + + + -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard + + + + + + + Kernel + + + rt_CMSIS.c + 1 + ../rt_CMSIS.c + + + 2 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 0 + 0 + 0 + 2 + + + + + ..\..\INC + + + + + + + rt_Task.c + 1 + ../rt_Task.c + + + rt_System.c + 1 + ../rt_System.c + + + rt_Event.c + 1 + ../rt_Event.c + + + rt_List.c + 1 + ../rt_List.c + + + rt_Mailbox.c + 1 + ../rt_Mailbox.c + + + rt_Semaphore.c + 1 + ../rt_Semaphore.c + + + rt_Time.c + 1 + ../rt_Time.c + + + rt_Timer.c + 1 + ../rt_Timer.c + + + rt_Mutex.c + 1 + ../rt_Mutex.c + + + rt_Robin.c + 1 + ../rt_Robin.c + + + rt_MemBox.c + 1 + ../rt_MemBox.c + + + rt_Memory.c + 1 + ../rt_Memory.c + + + + + HAL + + + SVC_Table.s + 2 + .\SVC_Table.s + + + HAL_CM.c + 1 + ../HAL_CM.c + + + HAL_CM0.s + 2 + .\HAL_CM0.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + + + + + + + + + + + + HAL_CM3.s + 2 + .\HAL_CM3.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + + + + + + + + + + + + HAL_CM4.s + 2 + .\HAL_CM4.s + + + + + + + CM4F_BE + 0x3 + ARM-GNU + + + Cortex-M4 FPU + ARM + CLOCK(12000000) CPUTYPE("Cortex-M4") ESEL ELITTLE FPU2 + + + + 5237 + + + + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\CM4F_BE\ + RTX_CM4_B + 0 + 1 + 0 + 1 + 0 + .\CM4F_BE\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 1 + 0 + cmd.exe /C copy CM4F_BE\libRTX_CM4_B.a ..\..\LIB\GCC\ + + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + + + SARMCM3.DLL + + DCM.DLL + -pCM4 + SARMCM3.DLL + + TCM.DLL + -pCM4 + + + + 1 + 0 + 0 + 0 + 16 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + + + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + + 0 + -1 + + + + + + + + + + + + + + + + + + + 1 + 0 + 0 + 0 + 0 + -1 + + + + + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + "Cortex-M4" + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + + + 0 + 0 + 0 + 0 + 0 + 0 + 5 + 2 + 1 + + -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -ffunction-sections + __CORTEX_M4F __FPU_PRESENT=1 __CMSIS_RTOS DBG_MSG + + + + + + 0 + 0 + + -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard + __CORTEX_M4F __CMSIS_RTOS + + + + + + 1 + 1 + 1 + 0 + 0 + + + + + + -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard + + + + + + + Kernel + + + rt_CMSIS.c + 1 + ../rt_CMSIS.c + + + 2 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 0 + 0 + 0 + 2 + + + + + ..\..\INC + + + + + + + rt_Task.c + 1 + ../rt_Task.c + + + rt_System.c + 1 + ../rt_System.c + + + rt_Event.c + 1 + ../rt_Event.c + + + rt_List.c + 1 + ../rt_List.c + + + rt_Mailbox.c + 1 + ../rt_Mailbox.c + + + rt_Semaphore.c + 1 + ../rt_Semaphore.c + + + rt_Time.c + 1 + ../rt_Time.c + + + rt_Timer.c + 1 + ../rt_Timer.c + + + rt_Mutex.c + 1 + ../rt_Mutex.c + + + rt_Robin.c + 1 + ../rt_Robin.c + + + rt_MemBox.c + 1 + ../rt_MemBox.c + + + rt_Memory.c + 1 + ../rt_Memory.c + + + + + HAL + + + SVC_Table.s + 2 + .\SVC_Table.s + + + HAL_CM.c + 1 + ../HAL_CM.c + + + HAL_CM0.s + 2 + .\HAL_CM0.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + + + + + + + + + + + + HAL_CM3.s + 2 + .\HAL_CM3.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + + + + + + + + + + + + HAL_CM4.s + 2 + .\HAL_CM4.s + + + + + + + CM4F_LE_IFX + 0x3 + ARM-GNU + + + Cortex-M4 FPU + ARM + CLOCK(12000000) CPUTYPE("Cortex-M4") ESEL ELITTLE FPU2 + + + + 5237 + + + + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\CM4F_LE_IFX\ + RTX_CM4_IFX + 0 + 1 + 0 + 1 + 0 + .\CM4F_LE_IFX\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 1 + 0 + cmd.exe /C copy CM4F_LE_IFX\libRTX_CM4_IFX.a ..\..\LIB\GCC\ + + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + + + SARMCM3.DLL + + DCM.DLL + -pCM4 + SARMCM3.DLL + + TCM.DLL + -pCM4 + + + + 1 + 0 + 0 + 0 + 16 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + + + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + + 0 + -1 + + + + + + + + + + + + + + + + + + + 1 + 0 + 0 + 0 + 0 + -1 + + + + + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + "Cortex-M4" + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + + + 0 + 0 + 0 + 0 + 0 + 0 + 5 + 2 + 1 + + -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -ffunction-sections + __CORTEX_M4F __FPU_PRESENT=1 __CMSIS_RTOS DBG_MSG + + + + + + 0 + 0 + + -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard + __CORTEX_M4F __CMSIS_RTOS + + + + + + 1 + 1 + 1 + 0 + 0 + + + + + + -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard + + + + + + + Kernel + + + rt_CMSIS.c + 1 + ../rt_CMSIS.c + + + 2 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 0 + 0 + 0 + 2 + + + + + ..\..\INC + + + + + + + rt_Task.c + 1 + ../rt_Task.c + + + rt_System.c + 1 + ../rt_System.c + + + rt_Event.c + 1 + ../rt_Event.c + + + rt_List.c + 1 + ../rt_List.c + + + rt_Mailbox.c + 1 + ../rt_Mailbox.c + + + rt_Semaphore.c + 1 + ../rt_Semaphore.c + + + rt_Time.c + 1 + ../rt_Time.c + + + rt_Timer.c + 1 + ../rt_Timer.c + + + rt_Mutex.c + 1 + ../rt_Mutex.c + + + rt_Robin.c + 1 + ../rt_Robin.c + + + rt_MemBox.c + 1 + ../rt_MemBox.c + + + rt_Memory.c + 1 + ../rt_Memory.c + + + + + HAL + + + SVC_Table.s + 2 + .\SVC_Table.s + + + HAL_CM.c + 1 + ../HAL_CM.c + + + HAL_CM0.s + 2 + .\HAL_CM0.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + + + + + + + + + + + + HAL_CM3.s + 2 + .\HAL_CM3.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + + + + + + + + + + + + HAL_CM4.s + 2 + .\HAL_CM4.s + + + 2 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + + + IFX_XMC4XXX + + + + + + + + + + + + + +
diff --git a/vendor/cmsis_rtos_rtx/SRC/GCC/SVC_Table.s b/vendor/cmsis_rtos_rtx/SRC/GCC/SVC_Table.s new file mode 100644 index 000000000..97425acc6 --- /dev/null +++ b/vendor/cmsis_rtos_rtx/SRC/GCC/SVC_Table.s @@ -0,0 +1,56 @@ +;/*---------------------------------------------------------------------------- +; * RL-ARM - RTX +; *---------------------------------------------------------------------------- +; * Name: SVC_TABLE.S +; * Purpose: Pre-defined SVC Table for Cortex-M +; * Rev.: V4.70 +; *---------------------------------------------------------------------------- +; * +; * Copyright (c) 1999-2009 KEIL, 2009-2013 ARM Germany GmbH +; * All rights reserved. +; * Redistribution and use in source and binary forms, with or without +; * modification, are permitted provided that the following conditions are met: +; * - Redistributions of source code must retain the above copyright +; * notice, this list of conditions and the following disclaimer. +; * - Redistributions in binary form must reproduce the above copyright +; * notice, this list of conditions and the following disclaimer in the +; * documentation and/or other materials provided with the distribution. +; * - Neither the name of ARM nor the names of its contributors may be used +; * to endorse or promote products derived from this software without +; * specific prior written permission. +; * +; * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +; * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +; * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +; * ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE +; * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +; * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +; * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +; * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +; * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +; * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +; * POSSIBILITY OF SUCH DAMAGE. +; *---------------------------------------------------------------------------*/ + + + .file "SVC_Table.S" + + + .section ".svc_table" + + .global SVC_Table +SVC_Table: +/* Insert user SVC functions here. SVC 0 used by RTL Kernel. */ +# .long __SVC_1 /* user SVC function */ +SVC_End: + + .global SVC_Count +SVC_Count: + .long (SVC_End-SVC_Table)/4 + + + .end + +/*---------------------------------------------------------------------------- + * end of file + *---------------------------------------------------------------------------*/ diff --git a/vendor/cmsis_rtos_rtx/SRC/HAL_CM.c b/vendor/cmsis_rtos_rtx/SRC/HAL_CM.c new file mode 100644 index 000000000..2b7441099 --- /dev/null +++ b/vendor/cmsis_rtos_rtx/SRC/HAL_CM.c @@ -0,0 +1,168 @@ +/*---------------------------------------------------------------------------- + * RL-ARM - RTX + *---------------------------------------------------------------------------- + * Name: HAL_CM.C + * Purpose: Hardware Abstraction Layer for Cortex-M + * Rev.: V4.70 + *---------------------------------------------------------------------------- + * + * Copyright (c) 1999-2009 KEIL, 2009-2013 ARM Germany GmbH + * All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * - Neither the name of ARM nor the names of its contributors may be used + * to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + *---------------------------------------------------------------------------*/ + +#include "rt_TypeDef.h" +#include "RTX_Config.h" +#include "rt_HAL_CM.h" + + +/*---------------------------------------------------------------------------- + * Global Variables + *---------------------------------------------------------------------------*/ + +#ifdef DBG_MSG +BIT dbg_msg; +#endif + +/*---------------------------------------------------------------------------- + * Functions + *---------------------------------------------------------------------------*/ + + +/*--------------------------- rt_init_stack ---------------------------------*/ + +void rt_init_stack (P_TCB p_TCB, FUNCP task_body) { + /* Prepare TCB and saved context for a first time start of a task. */ + U32 *stk,i,size; + + /* Prepare a complete interrupt frame for first task start */ + size = p_TCB->priv_stack >> 2; + if (size == 0) { + size = (U16)os_stackinfo >> 2; + } + + /* Write to the top of stack. */ + stk = &p_TCB->stack[size]; + + /* Auto correct to 8-byte ARM stack alignment. */ + if ((U32)stk & 0x04) { + stk--; + } + + stk -= 16; + + /* Default xPSR and initial PC */ + stk[15] = INITIAL_xPSR; + stk[14] = (U32)task_body; + + /* Clear R4-R11,R0-R3,R12,LR registers. */ + for (i = 0; i < 14; i++) { + stk[i] = 0; + } + + /* Assign a void pointer to R0. */ + stk[8] = (U32)p_TCB->msg; + + /* Initial Task stack pointer. */ + p_TCB->tsk_stack = (U32)stk; + + /* Task entry point. */ + p_TCB->ptask = task_body; + + /* Set a magic word for checking of stack overflow. */ + p_TCB->stack[0] = MAGIC_WORD; +} + + +/*--------------------------- rt_ret_val ----------------------------------*/ + +static __inline U32 *rt_ret_regs (P_TCB p_TCB) { + /* Get pointer to task return value registers (R0..R3) in Stack */ +#if (__TARGET_FPU_VFP) + if (p_TCB->stack_frame) { + /* Extended Stack Frame: R4-R11,S16-S31,R0-R3,R12,LR,PC,xPSR,S0-S15,FPSCR */ + return (U32 *)(p_TCB->tsk_stack + 8*4 + 16*4); + } else { + /* Basic Stack Frame: R4-R11,R0-R3,R12,LR,PC,xPSR */ + return (U32 *)(p_TCB->tsk_stack + 8*4); + } +#else + /* Stack Frame: R4-R11,R0-R3,R12,LR,PC,xPSR */ + return (U32 *)(p_TCB->tsk_stack + 8*4); +#endif +} + +void rt_ret_val (P_TCB p_TCB, U32 v0) { + U32 *ret; + + ret = rt_ret_regs(p_TCB); + ret[0] = v0; +} + +void rt_ret_val2(P_TCB p_TCB, U32 v0, U32 v1) { + U32 *ret; + + ret = rt_ret_regs(p_TCB); + ret[0] = v0; + ret[1] = v1; +} + + +/*--------------------------- dbg_init --------------------------------------*/ + +#ifdef DBG_MSG +void dbg_init (void) { + if ((DEMCR & DEMCR_TRCENA) && + (ITM_CONTROL & ITM_ITMENA) && + (ITM_ENABLE & (1UL << 31))) { + dbg_msg = __TRUE; + } +} +#endif + +/*--------------------------- dbg_task_notify -------------------------------*/ + +#ifdef DBG_MSG +void dbg_task_notify (P_TCB p_tcb, BOOL create) { + while (ITM_PORT31_U32 == 0); + ITM_PORT31_U32 = (U32)p_tcb->ptask; + while (ITM_PORT31_U32 == 0); + ITM_PORT31_U16 = (create << 8) | p_tcb->task_id; +} +#endif + +/*--------------------------- dbg_task_switch -------------------------------*/ + +#ifdef DBG_MSG +void dbg_task_switch (U32 task_id) { + while (ITM_PORT31_U32 == 0); + ITM_PORT31_U8 = task_id; +} +#endif + + +/*---------------------------------------------------------------------------- + * end of file + *---------------------------------------------------------------------------*/ + diff --git a/vendor/cmsis_rtos_rtx/SRC/IAR/HAL_CM0.s b/vendor/cmsis_rtos_rtx/SRC/IAR/HAL_CM0.s new file mode 100644 index 000000000..ffe7fbf2e --- /dev/null +++ b/vendor/cmsis_rtos_rtx/SRC/IAR/HAL_CM0.s @@ -0,0 +1,312 @@ +/*---------------------------------------------------------------------------- + * RL-ARM - RTX + *---------------------------------------------------------------------------- + * Name: HAL_CM0.S + * Purpose: Hardware Abstraction Layer for Cortex-M0 + * Rev.: V4.70 + *---------------------------------------------------------------------------- + * + * Copyright (c) 1999-2009 KEIL, 2009-2013 ARM Germany GmbH + * All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * - Neither the name of ARM nor the names of its contributors may be used + * to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + *---------------------------------------------------------------------------*/ + + NAME HAL_CM0.S + + #define TCB_TSTACK 36 + + EXTERN os_flags + EXTERN os_tsk + EXTERN rt_alloc_box + EXTERN rt_free_box + EXTERN rt_stk_check + EXTERN rt_pop_req + EXTERN rt_systick + EXTERN os_tick_irqack + EXTERN SVC_Table + EXTERN SVC_Count + +/*---------------------------------------------------------------------------- + * Functions + *---------------------------------------------------------------------------*/ + + SECTION .text:CODE:NOROOT(2) + THUMB + +/*--------------------------- rt_set_PSP ------------------------------------*/ + +; void rt_set_PSP (U32 stack); + + PUBLIC rt_set_PSP +rt_set_PSP: + + MSR PSP,R0 + BX LR + + +/*--------------------------- rt_get_PSP ------------------------------------*/ + +; U32 rt_get_PSP (void); + + PUBLIC rt_get_PSP +rt_get_PSP: + + MRS R0,PSP + BX LR + + +/*--------------------------- os_set_env ------------------------------------*/ + +; void os_set_env (void); + /* Switch to Unprivileged/Privileged Thread mode, use PSP. */ + + PUBLIC os_set_env +os_set_env: + + MOV R0,SP /* PSP = MSP */ + MSR PSP,R0 + LDR R0,=os_flags + LDRB R0,[R0] + LSLS R0,#31 + BNE PrivilegedE + MOVS R0,#0x03 /* Unprivileged Thread mode, use PSP */ + MSR CONTROL,R0 + BX LR +PrivilegedE: + MOVS R0,#0x02 /* Privileged Thread mode, use PSP */ + MSR CONTROL,R0 + BX LR + + +/*--------------------------- _alloc_box ------------------------------------*/ + +; void *_alloc_box (void *box_mem); + /* Function wrapper for Unprivileged/Privileged mode. */ + + PUBLIC _alloc_box +_alloc_box: + + LDR R3,=rt_alloc_box + MOV R12,R3 + MRS R3,IPSR + LSLS R3,#24 + BNE PrivilegedA + MRS R3,CONTROL + LSLS R3,#31 + BEQ PrivilegedA + SVC 0 + BX LR +PrivilegedA: + BX R12 + + +/*--------------------------- _free_box -------------------------------------*/ + +; int _free_box (void *box_mem, void *box); + /* Function wrapper for Unprivileged/Privileged mode. */ + + PUBLIC _free_box +_free_box: + + LDR R3,=rt_free_box + MOV R12,R3 + MRS R3,IPSR + LSLS R3,#24 + BNE PrivilegedF + MRS R3,CONTROL + LSLS R3,#31 + BEQ PrivilegedF + SVC 0 + BX LR +PrivilegedF: + BX R12 + + +/*-------------------------- SVC_Handler ------------------------------------*/ + +; void SVC_Handler (void); + + PUBLIC SVC_Handler +SVC_Handler: + + MRS R0,PSP /* Read PSP */ + LDR R1,[R0,#24] /* Read Saved PC from Stack */ + SUBS R1,R1,#2 /* Point to SVC Instruction */ + LDRB R1,[R1] /* Load SVC Number */ + CMP R1,#0 + BNE SVC_User /* User SVC Number > 0 */ + + MOV LR,R4 + LDMIA R0,{R0-R3,R4} /* Read R0-R3,R12 from stack */ + MOV R12,R4 + MOV R4,LR + BLX R12 /* Call SVC Function */ + + MRS R3,PSP /* Read PSP */ + STMIA R3!,{R0-R2} /* Store return values */ + + LDR R3,=os_tsk + LDMIA R3!,{R1,R2} /* os_tsk.run, os_tsk.new */ + CMP R1,R2 + BEQ SVC_Exit /* no task switch */ + + SUBS R3,#8 + CMP R1,#0 /* Runtask deleted? */ + BEQ SVC_Next + + MRS R0,PSP /* Read PSP */ + SUBS R0,R0,#32 /* Adjust Start Address */ + STR R0,[R1,#TCB_TSTACK] /* Update os_tsk.run->tsk_stack */ + STMIA R0!,{R4-R7} /* Save old context (R4-R7) */ + MOV R4,R8 + MOV R5,R9 + MOV R6,R10 + MOV R7,R11 + STMIA R0!,{R4-R7} /* Save old context (R8-R11) */ + + PUSH {R2,R3} + BL rt_stk_check /* Check for Stack overflow */ + POP {R2,R3} + +SVC_Next: + STR R2,[R3] /* os_tsk.run = os_tsk.new */ + + LDR R0,[R2,#TCB_TSTACK] /* os_tsk.new->tsk_stack */ + ADDS R0,R0,#16 /* Adjust Start Address */ + LDMIA R0!,{R4-R7} /* Restore new Context (R8-R11) */ + MOV R8,R4 + MOV R9,R5 + MOV R10,R6 + MOV R11,R7 + MSR PSP,R0 /* Write PSP */ + SUBS R0,R0,#32 /* Adjust Start Address */ + LDMIA R0!,{R4-R7} /* Restore new Context (R4-R7) */ + +SVC_Exit: + MOVS R0,#~0xFFFFFFFD /* Set EXC_RETURN value */ + MVNS R0,R0 + BX R0 /* RETI to Thread Mode, use PSP */ + + /*------------------- User SVC ------------------------------*/ + +SVC_User: + PUSH {R4,LR} /* Save Registers */ + LDR R2,=SVC_Count + LDR R2,[R2] + CMP R1,R2 + BHI SVC_Done /* Overflow */ + + LDR R4,=SVC_Table-4 + LSLS R1,R1,#2 + LDR R4,[R4,R1] /* Load SVC Function Address */ + MOV LR,R4 + + LDMIA R0,{R0-R3,R4} /* Read R0-R3,R12 from stack */ + MOV R12,R4 + BLX LR /* Call SVC Function */ + + MRS R4,PSP /* Read PSP */ + STMIA R4!,{R0-R3} /* Function return values */ +SVC_Done: + POP {R4,PC} /* RETI */ + + +/*-------------------------- PendSV_Handler ---------------------------------*/ + +; void PendSV_Handler (void); + + PUBLIC PendSV_Handler +PendSV_Handler: + + BL rt_pop_req + +Sys_Switch: + LDR R3,=os_tsk + LDMIA R3!,{R1,R2} /* os_tsk.run, os_tsk.new */ + CMP R1,R2 + BEQ Sys_Exit /* no task switch */ + + SUBS R3,#8 + + MRS R0,PSP /* Read PSP */ + SUBS R0,R0,#32 /* Adjust Start Address */ + STR R0,[R1,#TCB_TSTACK] /* Update os_tsk.run->tsk_stack */ + STMIA R0!,{R4-R7} /* Save old context (R4-R7) */ + MOV R4,R8 + MOV R5,R9 + MOV R6,R10 + MOV R7,R11 + STMIA R0!,{R4-R7} /* Save old context (R8-R11) */ + + PUSH {R2,R3} + BL rt_stk_check /* Check for Stack overflow */ + POP {R2,R3} + + STR R2,[R3] /* os_tsk.run = os_tsk.new */ + + LDR R0,[R2,#TCB_TSTACK] /* os_tsk.new->tsk_stack */ + ADDS R0,R0,#16 /* Adjust Start Address */ + LDMIA R0!,{R4-R7} /* Restore new Context (R8-R11) */ + MOV R8,R4 + MOV R9,R5 + MOV R10,R6 + MOV R11,R7 + MSR PSP,R0 /* Write PSP */ + SUBS R0,R0,#32 /* Adjust Start Address */ + LDMIA R0!,{R4-R7} /* Restore new Context (R4-R7) */ + +Sys_Exit: + MOVS R0,#~0xFFFFFFFD /* Set EXC_RETURN value */ + MVNS R0,R0 + BX R0 /* RETI to Thread Mode, use PSP */ + + +/*-------------------------- SysTick_Handler --------------------------------*/ + +; void SysTick_Handler (void); + + PUBLIC SysTick_Handler +SysTick_Handler: + + BL rt_systick + B Sys_Switch + + +/*-------------------------- OS_Tick_Handler --------------------------------*/ + +; void OS_Tick_Handler (void); + + PUBLIC OS_Tick_Handler +OS_Tick_Handler: + + BL os_tick_irqack + BL rt_systick + B Sys_Switch + + + END + +/*---------------------------------------------------------------------------- + * end of file + *---------------------------------------------------------------------------*/ diff --git a/vendor/cmsis_rtos_rtx/SRC/IAR/HAL_CM3.s b/vendor/cmsis_rtos_rtx/SRC/IAR/HAL_CM3.s new file mode 100644 index 000000000..e6fcbc513 --- /dev/null +++ b/vendor/cmsis_rtos_rtx/SRC/IAR/HAL_CM3.s @@ -0,0 +1,265 @@ +/*---------------------------------------------------------------------------- + * RL-ARM - RTX + *---------------------------------------------------------------------------- + * Name: HAL_CM3.S + * Purpose: Hardware Abstraction Layer for Cortex-M3 + * Rev.: V4.70 + *---------------------------------------------------------------------------- + * + * Copyright (c) 1999-2009 KEIL, 2009-2013 ARM Germany GmbH + * All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * - Neither the name of ARM nor the names of its contributors may be used + * to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + *---------------------------------------------------------------------------*/ + + NAME HAL_CM3.S + + #define TCB_TSTACK 36 + + EXTERN os_flags + EXTERN os_tsk + EXTERN rt_alloc_box + EXTERN rt_free_box + EXTERN rt_stk_check + EXTERN rt_pop_req + EXTERN rt_systick + EXTERN os_tick_irqack + EXTERN SVC_Table + EXTERN SVC_Count + +/*---------------------------------------------------------------------------- + * Functions + *---------------------------------------------------------------------------*/ + + SECTION .text:CODE:NOROOT(2) + THUMB + +/*--------------------------- rt_set_PSP ------------------------------------*/ + +; void rt_set_PSP (U32 stack); + + PUBLIC rt_set_PSP +rt_set_PSP: + + MSR PSP,R0 + BX LR + + +/*--------------------------- rt_get_PSP ------------------------------------*/ + +; U32 rt_get_PSP (void); + + PUBLIC rt_get_PSP +rt_get_PSP: + + MRS R0,PSP + BX LR + + +/*--------------------------- os_set_env ------------------------------------*/ + +; void os_set_env (void); + /* Switch to Unprivileged/Privileged Thread mode, use PSP. */ + + PUBLIC os_set_env +os_set_env: + + MOV R0,SP /* PSP = MSP */ + MSR PSP,R0 + LDR R0,=os_flags + LDRB R0,[R0] + LSLS R0,#31 + ITE NE + MOVNE R0,#0x02 /* Privileged Thread mode, use PSP */ + MOVEQ R0,#0x03 /* Unprivileged Thread mode, use PSP */ + MSR CONTROL,R0 + BX LR + + +/*--------------------------- _alloc_box ------------------------------------*/ + +; void *_alloc_box (void *box_mem); + /* Function wrapper for Unprivileged/Privileged mode. */ + + PUBLIC _alloc_box +_alloc_box: + + LDR R12,=rt_alloc_box + MRS R3,IPSR + LSLS R3,#24 + IT NE + BXNE R12 + MRS R3,CONTROL + LSLS R3,#31 + IT EQ + BXEQ R12 + SVC 0 + BX LR + + +/*--------------------------- _free_box -------------------------------------*/ + +; int _free_box (void *box_mem, void *box); + /* Function wrapper for Unprivileged/Privileged mode. */ + + PUBLIC _free_box +_free_box: + + LDR R12,=rt_free_box + MRS R3,IPSR + LSLS R3,#24 + IT NE + BXNE R12 + MRS R3,CONTROL + LSLS R3,#31 + IT EQ + BXEQ R12 + SVC 0 + BX LR + + +/*-------------------------- SVC_Handler ------------------------------------*/ + +; void SVC_Handler (void); + + PUBLIC SVC_Handler +SVC_Handler: + + MRS R0,PSP /* Read PSP */ + LDR R1,[R0,#24] /* Read Saved PC from Stack */ + LDRB R1,[R1,#-2] /* Load SVC Number */ + CBNZ R1,SVC_User + + LDM R0,{R0-R3,R12} /* Read R0-R3,R12 from stack */ + BLX R12 /* Call SVC Function */ + + MRS R12,PSP /* Read PSP */ + STM R12,{R0-R2} /* Store return values */ + + LDR R3,=os_tsk + LDM R3,{R1,R2} /* os_tsk.run, os_tsk.new */ + CMP R1,R2 + BEQ SVC_Exit /* no task switch */ + + CBZ R1,SVC_Next /* Runtask deleted? */ + STMDB R12!,{R4-R11} /* Save Old context */ + STR R12,[R1,#TCB_TSTACK] /* Update os_tsk.run->tsk_stack */ + + PUSH {R2,R3} + BL rt_stk_check /* Check for Stack overflow */ + POP {R2,R3} + +SVC_Next: + STR R2,[R3] /* os_tsk.run = os_tsk.new */ + + LDR R12,[R2,#TCB_TSTACK] /* os_tsk.new->tsk_stack */ + LDMIA R12!,{R4-R11} /* Restore New Context */ + MSR PSP,R12 /* Write PSP */ + +SVC_Exit: + MVN LR,#~0xFFFFFFFD /* set EXC_RETURN value */ + BX LR + + /*------------------- User SVC ------------------------------*/ + +SVC_User: + PUSH {R4,LR} /* Save Registers */ + LDR R2,=SVC_Count + LDR R2,[R2] + CMP R1,R2 + BHI SVC_Done /* Overflow */ + + LDR R4,=SVC_Table-4 + LDR R4,[R4,R1,LSL #2] /* Load SVC Function Address */ + + LDM R0,{R0-R3,R12} /* Read R0-R3,R12 from stack */ + BLX R4 /* Call SVC Function */ + + MRS R12,PSP + STM R12,{R0-R3} /* Function return values */ +SVC_Done: + POP {R4,PC} /* RETI */ + + +/*-------------------------- PendSV_Handler ---------------------------------*/ + +; void PendSV_Handler (void); + + PUBLIC PendSV_Handler +PendSV_Handler: + + BL rt_pop_req + +Sys_Switch: + LDR R3,=os_tsk + LDM R3,{R1,R2} /* os_tsk.run, os_tsk.new */ + CMP R1,R2 + BEQ Sys_Exit + + MRS R12,PSP /* Read PSP */ + STMDB R12!,{R4-R11} /* Save Old context */ + STR R12,[R1,#TCB_TSTACK] /* Update os_tsk.run->tsk_stack */ + + PUSH {R2,R3} + BL rt_stk_check /* Check for Stack overflow */ + POP {R2,R3} + + STR R2,[R3] /* os_tsk.run = os_tsk.new */ + + LDR R12,[R2,#TCB_TSTACK] /* os_tsk.new->tsk_stack */ + LDMIA R12!,{R4-R11} /* Restore New Context */ + MSR PSP,R12 /* Write PSP */ + +Sys_Exit: + MVN LR,#~0xFFFFFFFD /* set EXC_RETURN value */ + BX LR /* Return to Thread Mode */ + + +/*-------------------------- SysTick_Handler --------------------------------*/ + +; void SysTick_Handler (void); + + PUBLIC SysTick_Handler +SysTick_Handler: + + BL rt_systick + B Sys_Switch + + +/*-------------------------- OS_Tick_Handler --------------------------------*/ + +; void OS_Tick_Handler (void); + + PUBLIC OS_Tick_Handler +OS_Tick_Handler: + + BL os_tick_irqack + BL rt_systick + B Sys_Switch + + + END + +/*---------------------------------------------------------------------------- + * end of file + *---------------------------------------------------------------------------*/ diff --git a/vendor/cmsis_rtos_rtx/SRC/IAR/HAL_CM4.s b/vendor/cmsis_rtos_rtx/SRC/IAR/HAL_CM4.s new file mode 100644 index 000000000..db4ce68cf --- /dev/null +++ b/vendor/cmsis_rtos_rtx/SRC/IAR/HAL_CM4.s @@ -0,0 +1,297 @@ +/*---------------------------------------------------------------------------- + * RL-ARM - RTX + *---------------------------------------------------------------------------- + * Name: HAL_CM4.S + * Purpose: Hardware Abstraction Layer for Cortex-M4 + * Rev.: V4.70 + *---------------------------------------------------------------------------- + * + * Copyright (c) 1999-2009 KEIL, 2009-2013 ARM Germany GmbH + * All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * - Neither the name of ARM nor the names of its contributors may be used + * to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + *---------------------------------------------------------------------------*/ + + NAME HAL_CM4.S + + #define TCB_STACKF 32 + #define TCB_TSTACK 36 + + EXTERN os_flags + EXTERN os_tsk + EXTERN rt_alloc_box + EXTERN rt_free_box + EXTERN rt_stk_check + EXTERN rt_pop_req + EXTERN rt_systick + EXTERN os_tick_irqack + EXTERN SVC_Table + EXTERN SVC_Count + +/*---------------------------------------------------------------------------- + * Functions + *---------------------------------------------------------------------------*/ + + SECTION .text:CODE:NOROOT(2) + THUMB + +/*--------------------------- rt_set_PSP ------------------------------------*/ + +; void rt_set_PSP (U32 stack); + + PUBLIC rt_set_PSP +rt_set_PSP: + + MSR PSP,R0 + BX LR + + +/*--------------------------- rt_get_PSP ------------------------------------*/ + +; U32 rt_get_PSP (void); + + PUBLIC rt_get_PSP +rt_get_PSP: + + MRS R0,PSP + BX LR + + +/*--------------------------- os_set_env ------------------------------------*/ + +; void os_set_env (void); + /* Switch to Unprivileged/Privileged Thread mode, use PSP. */ + + PUBLIC os_set_env +os_set_env: + + MOV R0,SP /* PSP = MSP */ + MSR PSP,R0 + LDR R0,=os_flags + LDRB R0,[R0] + LSLS R0,#31 + ITE NE + MOVNE R0,#0x02 /* Privileged Thread mode, use PSP */ + MOVEQ R0,#0x03 /* Unprivileged Thread mode, use PSP */ + MSR CONTROL,R0 + BX LR + + +/*--------------------------- _alloc_box ------------------------------------*/ + +; void *_alloc_box (void *box_mem); + /* Function wrapper for Unprivileged/Privileged mode. */ + + PUBLIC _alloc_box +_alloc_box: + + LDR R12,=rt_alloc_box + MRS R3,IPSR + LSLS R3,#24 + IT NE + BXNE R12 + MRS R3,CONTROL + LSLS R3,#31 + IT EQ + BXEQ R12 + SVC 0 + BX LR + + +/*--------------------------- _free_box -------------------------------------*/ + +; int _free_box (void *box_mem, void *box); + /* Function wrapper for Unprivileged/Privileged mode. */ + + PUBLIC _free_box +_free_box: + + LDR R12,=rt_free_box + MRS R3,IPSR + LSLS R3,#24 + IT NE + BXNE R12 + MRS R3,CONTROL + LSLS R3,#31 + IT EQ + BXEQ R12 + SVC 0 + BX LR + + +/*-------------------------- SVC_Handler ------------------------------------*/ + +; void SVC_Handler (void); + + PUBLIC SVC_Handler +SVC_Handler: + + MRS R0,PSP /* Read PSP */ + LDR R1,[R0,#24] /* Read Saved PC from Stack */ + LDRB R1,[R1,#-2] /* Load SVC Number */ + CBNZ R1,SVC_User + + LDM R0,{R0-R3,R12} /* Read R0-R3,R12 from stack */ + PUSH {R4,LR} /* Save EXC_RETURN */ + BLX R12 /* Call SVC Function */ + POP {R4,LR} /* Restore EXC_RETURN */ + + MRS R12,PSP /* Read PSP */ + STM R12,{R0-R2} /* Store return values */ + + LDR R3,=os_tsk + LDM R3,{R1,R2} /* os_tsk.run, os_tsk.new */ + CMP R1,R2 + IT EQ + BXEQ LR /* RETI, no task switch */ + + CBZ R1,SVC_Next /* Runtask deleted? */ + TST LR,#0x10 /* is it extended frame? */ + ITTE EQ + VSTMDBEQ R12!,{S16-S31} /* yes, stack also VFP hi-regs */ + MOVEQ R0,#0x01 /* os_tsk->stack_frame val */ + MOVNE R0,#0x00 + STRB R0,[R1,#TCB_STACKF] /* os_tsk.run->stack_frame = val */ + STMDB R12!,{R4-R11} /* Save Old context */ + STR R12,[R1,#TCB_TSTACK] /* Update os_tsk.run->tsk_stack */ + + PUSH {R2,R3} + BL rt_stk_check /* Check for Stack overflow */ + POP {R2,R3} + +SVC_Next: + STR R2,[R3] /* os_tsk.run = os_tsk.new */ + + LDR R12,[R2,#TCB_TSTACK] /* os_tsk.new->tsk_stack */ + LDMIA R12!,{R4-R11} /* Restore New Context */ + LDRB R0,[R2,#TCB_STACKF] /* Stack Frame */ + CMP R0,#0 /* Basic/Extended Stack Frame */ + ITTE NE + VLDMIANE R12!,{S16-S31} /* restore VFP hi-registers */ + MVNNE LR,#~0xFFFFFFED /* set EXC_RETURN value */ + MVNEQ LR,#~0xFFFFFFFD + MSR PSP,R12 /* Write PSP */ + +SVC_Exit: + BX LR + + /*------------------- User SVC ------------------------------*/ + +SVC_User: + PUSH {R4,LR} /* Save Registers */ + LDR R2,=SVC_Count + LDR R2,[R2] + CMP R1,R2 + BHI SVC_Done /* Overflow */ + + LDR R4,=SVC_Table-4 + LDR R4,[R4,R1,LSL #2] /* Load SVC Function Address */ + + LDM R0,{R0-R3,R12} /* Read R0-R3,R12 from stack */ + BLX R4 /* Call SVC Function */ + + MRS R12,PSP + STM R12,{R0-R3} /* Function return values */ +SVC_Done: + POP {R4,PC} /* RETI */ + + +/*-------------------------- PendSV_Handler ---------------------------------*/ + +; void PendSV_Handler (void); + + PUBLIC PendSV_Handler +PendSV_Handler: + + PUSH {R4,LR} /* Save EXC_RETURN */ + BL rt_pop_req + +Sys_Switch: + POP {R4,LR} /* Restore EXC_RETURN */ + + LDR R3,=os_tsk + LDM R3,{R1,R2} /* os_tsk.run, os_tsk.new */ + CMP R1,R2 + IT EQ + BXEQ LR /* RETI, no task switch */ + + MRS R12,PSP /* Read PSP */ + TST LR,#0x10 /* is it extended frame? */ + ITTE EQ + VSTMDBEQ R12!,{S16-S31} /* yes, stack also VFP hi-regs */ + MOVEQ R0,#0x01 /* os_tsk->stack_frame val */ + MOVNE R0,#0x00 + STRB R0,[R1,#TCB_STACKF] /* os_tsk.run->stack_frame = val */ + STMDB R12!,{R4-R11} /* Save Old context */ + STR R12,[R1,#TCB_TSTACK] /* Update os_tsk.run->tsk_stack */ + + PUSH {R2,R3} + BL rt_stk_check /* Check for Stack overflow */ + POP {R2,R3} + + STR R2,[R3] /* os_tsk.run = os_tsk.new */ + + LDR R12,[R2,#TCB_TSTACK] /* os_tsk.new->tsk_stack */ + LDMIA R12!,{R4-R11} /* Restore New Context */ + LDRB R0,[R2,#TCB_STACKF] /* Stack Frame */ + CMP R0,#0 /* Basic/Extended Stack Frame */ + ITTE NE + VLDMIANE R12!,{S16-S31} /* restore VFP hi-registers */ + MVNNE LR,#~0xFFFFFFED /* set EXC_RETURN value */ + MVNEQ LR,#~0xFFFFFFFD + MSR PSP,R12 /* Write PSP */ + +Sys_Exit: + BX LR /* Return to Thread Mode */ + + +/*-------------------------- SysTick_Handler --------------------------------*/ + +; void SysTick_Handler (void); + + PUBLIC SysTick_Handler +SysTick_Handler: + + PUSH {R4,LR} /* Save EXC_RETURN */ + BL rt_systick + B Sys_Switch + + +/*-------------------------- OS_Tick_Handler --------------------------------*/ + +; void OS_Tick_Handler (void); + + PUBLIC OS_Tick_Handler +OS_Tick_Handler: + + PUSH {R4,LR} /* Save EXC_RETURN */ + BL os_tick_irqack + BL rt_systick + B Sys_Switch + + + END + +/*---------------------------------------------------------------------------- + * end of file + *---------------------------------------------------------------------------*/ diff --git a/vendor/cmsis_rtos_rtx/SRC/IAR/RTX_Lib_CM.ewp b/vendor/cmsis_rtos_rtx/SRC/IAR/RTX_Lib_CM.ewp new file mode 100644 index 000000000..4e6dc1695 --- /dev/null +++ b/vendor/cmsis_rtos_rtx/SRC/IAR/RTX_Lib_CM.ewp @@ -0,0 +1,6955 @@ + + + + 2 + + CM0_LE + + ARM + + 0 + + General + 3 + + 21 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 28 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 8 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 0 + + + + + + + + + CUSTOM + 3 + + + + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + cmd.exe /C copy "$TARGET_PATH$" "$PROJ_DIR$\..\..\LIB\IAR\RTX_CM0.a" + + + + ILINK + 0 + + 14 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 0 + + + + + + + BILINK + 0 + + + + + CM0_BE + + ARM + + 0 + + General + 3 + + 21 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 28 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 8 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 0 + + + + + + + + + CUSTOM + 3 + + + + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + cmd.exe /C copy "$TARGET_PATH$" "$PROJ_DIR$\..\..\LIB\IAR\RTX_CM0_B.a" + + + + ILINK + 0 + + 14 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 0 + + + + + + + BILINK + 0 + + + + + CM3_LE + + ARM + + 0 + + General + 3 + + 21 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 28 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 8 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 0 + + + + + + + + + CUSTOM + 3 + + + + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + cmd.exe /C copy "$TARGET_PATH$" "$PROJ_DIR$\..\..\LIB\IAR\RTX_CM3.a" + + + + ILINK + 0 + + 14 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 0 + + + + + + + BILINK + 0 + + + + + CM3_BE + + ARM + + 0 + + General + 3 + + 21 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 28 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 8 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 0 + + + + + + + + + CUSTOM + 3 + + + + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + cmd.exe /C copy "$TARGET_PATH$" "$PROJ_DIR$\..\..\LIB\IAR\RTX_CM3_B.a" + + + + ILINK + 0 + + 14 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 0 + + + + + + + BILINK + 0 + + + + + CM4F_LE + + ARM + + 0 + + General + 3 + + 21 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 28 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 8 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 0 + + + + + + + + + CUSTOM + 3 + + + + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + cmd.exe /C copy "$TARGET_PATH$" "$PROJ_DIR$\..\..\LIB\IAR\RTX_CM4.a" + + + + ILINK + 0 + + 14 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 0 + + + + + + + BILINK + 0 + + + + + CM4F_BE + + ARM + + 0 + + General + 3 + + 21 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 28 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 8 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 0 + + + + + + + + + CUSTOM + 3 + + + + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + cmd.exe /C copy "$TARGET_PATH$" "$PROJ_DIR$\..\..\LIB\IAR\RTX_CM4_B.a" + + + + ILINK + 0 + + 14 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 0 + + + + + + + BILINK + 0 + + + + + HAL + + $PROJ_DIR$\..\HAL_CM.c + + + $PROJ_DIR$\HAL_CM0.s + + CM3_LE + CM3_BE + CM4F_LE + CM4F_BE + + + + $PROJ_DIR$\HAL_CM3.s + + CM0_LE + CM0_BE + CM4F_LE + CM4F_BE + + + + $PROJ_DIR$\HAL_CM4.s + + CM0_LE + CM0_BE + CM3_LE + CM3_BE + + + + $PROJ_DIR$\SVC_Table.s + + + + Kernel + + $PROJ_DIR$\..\rt_CMSIS.c + + CM0_LE + + ICCARM + + 28 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CM0_BE + + ICCARM + + 28 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CM3_LE + + ICCARM + + 28 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CM3_BE + + ICCARM + + 28 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CM4F_LE + + ICCARM + + 28 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CM4F_BE + + ICCARM + + 28 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $PROJ_DIR$\..\rt_Event.c + + + $PROJ_DIR$\..\rt_List.c + + + $PROJ_DIR$\..\rt_Mailbox.c + + + $PROJ_DIR$\..\rt_MemBox.c + + + $PROJ_DIR$\..\rt_Memory.c + + + $PROJ_DIR$\..\rt_Mutex.c + + + $PROJ_DIR$\..\rt_Robin.c + + + $PROJ_DIR$\..\rt_Semaphore.c + + + $PROJ_DIR$\..\rt_System.c + + + $PROJ_DIR$\..\rt_Task.c + + + $PROJ_DIR$\..\rt_Time.c + + + $PROJ_DIR$\..\rt_Timer.c + + + + + diff --git a/vendor/cmsis_rtos_rtx/SRC/IAR/RTX_Lib_CM.eww b/vendor/cmsis_rtos_rtx/SRC/IAR/RTX_Lib_CM.eww new file mode 100644 index 000000000..333a73ae2 --- /dev/null +++ b/vendor/cmsis_rtos_rtx/SRC/IAR/RTX_Lib_CM.eww @@ -0,0 +1,10 @@ + + + + + $WS_DIR$\RTX_Lib_CM.ewp + + + + + diff --git a/vendor/cmsis_rtos_rtx/SRC/IAR/SVC_Table.s b/vendor/cmsis_rtos_rtx/SRC/IAR/SVC_Table.s new file mode 100644 index 000000000..0696cbd59 --- /dev/null +++ b/vendor/cmsis_rtos_rtx/SRC/IAR/SVC_Table.s @@ -0,0 +1,58 @@ +;/*---------------------------------------------------------------------------- +; * RL-ARM - RTX +; *---------------------------------------------------------------------------- +; * Name: SVC_TABLE.S +; * Purpose: Pre-defined SVC Table for Cortex-M +; * Rev.: V4.70 +; *---------------------------------------------------------------------------- +; * +; * Copyright (c) 1999-2009 KEIL, 2009-2013 ARM Germany GmbH +; * All rights reserved. +; * Redistribution and use in source and binary forms, with or without +; * modification, are permitted provided that the following conditions are met: +; * - Redistributions of source code must retain the above copyright +; * notice, this list of conditions and the following disclaimer. +; * - Redistributions in binary form must reproduce the above copyright +; * notice, this list of conditions and the following disclaimer in the +; * documentation and/or other materials provided with the distribution. +; * - Neither the name of ARM nor the names of its contributors may be used +; * to endorse or promote products derived from this software without +; * specific prior written permission. +; * +; * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +; * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +; * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +; * ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE +; * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +; * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +; * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +; * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +; * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +; * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +; * POSSIBILITY OF SUCH DAMAGE. +; *---------------------------------------------------------------------------*/ + + + NAME SVC_TABLE + SECTION .text:CONST (2) + + PUBLIC SVC_Count + +SVC_Cnt EQU (SVC_End-SVC_Table)/4 +SVC_Count DCD SVC_Cnt + +; Import user SVC functions here. +; IMPORT __SVC_1 + + PUBLIC SVC_Table +SVC_Table +; Insert user SVC functions here. SVC 0 used by RTL Kernel. +; DCD __SVC_1 ; user SVC function + +SVC_End + + END + +/*---------------------------------------------------------------------------- + * end of file + *---------------------------------------------------------------------------*/ diff --git a/vendor/cmsis_rtos_rtx/SRC/RTX_Config.h b/vendor/cmsis_rtos_rtx/SRC/RTX_Config.h new file mode 100644 index 000000000..87f4a96fb --- /dev/null +++ b/vendor/cmsis_rtos_rtx/SRC/RTX_Config.h @@ -0,0 +1,78 @@ +/*---------------------------------------------------------------------------- + * RL-ARM - RTX + *---------------------------------------------------------------------------- + * Name: RTX_CONFIG.H + * Purpose: Exported functions of RTX_Config.c + * Rev.: V4.70 + *---------------------------------------------------------------------------- + * + * Copyright (c) 1999-2009 KEIL, 2009-2013 ARM Germany GmbH + * All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * - Neither the name of ARM nor the names of its contributors may be used + * to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + *---------------------------------------------------------------------------*/ + + +/* Error Codes */ +#define OS_ERR_STK_OVF 1 +#define OS_ERR_FIFO_OVF 2 +#define OS_ERR_MBX_OVF 3 + +/* Definitions */ +#define BOX_ALIGN_8 0x80000000 +#define _declare_box(pool,size,cnt) U32 pool[(((size)+3)/4)*(cnt) + 3] +#define _declare_box8(pool,size,cnt) U64 pool[(((size)+7)/8)*(cnt) + 2] +#define _init_box8(pool,size,bsize) _init_box (pool,size,(bsize) | BOX_ALIGN_8) + +/* Variables */ +extern U32 mp_tcb[]; +extern U64 mp_stk[]; +extern U32 os_fifo[]; +extern void *os_active_TCB[]; + +/* Constants */ +extern U16 const os_maxtaskrun; +extern U32 const os_trv; +extern U8 const os_flags; +extern U32 const os_stackinfo; +extern U32 const os_rrobin; +extern U32 const os_clockrate; +extern U32 const os_timernum; +extern U16 const mp_tcb_size; +extern U32 const mp_stk_size; +extern U32 const *m_tmr; +extern U16 const mp_tmr_size; +extern U8 const os_fifo_size; + +/* Functions */ +extern void os_idle_demon (void); +extern int os_tick_init (void); +extern U32 os_tick_val (void); +extern U32 os_tick_ovf (void); +extern void os_tick_irqack (void); +extern void os_tmr_call (U16 info); +extern void os_error (U32 err_code); + +/*---------------------------------------------------------------------------- + * end of file + *---------------------------------------------------------------------------*/ diff --git a/vendor/cmsis_rtos_rtx/SRC/rt_CMSIS.c b/vendor/cmsis_rtos_rtx/SRC/rt_CMSIS.c new file mode 100644 index 000000000..070d54fd3 --- /dev/null +++ b/vendor/cmsis_rtos_rtx/SRC/rt_CMSIS.c @@ -0,0 +1,1962 @@ +/*---------------------------------------------------------------------------- + * RL-ARM - RTX + *---------------------------------------------------------------------------- + * Name: rt_CMSIS.c + * Purpose: CMSIS RTOS API + * Rev.: V4.70 + *---------------------------------------------------------------------------- + * + * Copyright (c) 1999-2009 KEIL, 2009-2013 ARM Germany GmbH + * All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * - Neither the name of ARM nor the names of its contributors may be used + * to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + *---------------------------------------------------------------------------*/ + +#define __CMSIS_GENERIC + +#if defined (__CORTEX_M4) || defined (__CORTEX_M4F) + #include "core_cm4.h" +#elif defined (__CORTEX_M3) + #include "core_cm3.h" +#elif defined (__CORTEX_M0) + #include "core_cm0.h" +#else + #error "Missing __CORTEX_Mx definition" +#endif + +#include "rt_TypeDef.h" +#include "RTX_Config.h" +#include "rt_System.h" +#include "rt_Task.h" +#include "rt_Event.h" +#include "rt_List.h" +#include "rt_Time.h" +#include "rt_Mutex.h" +#include "rt_Semaphore.h" +#include "rt_Mailbox.h" +#include "rt_MemBox.h" +#include "rt_Memory.h" +#include "rt_HAL_CM.h" + +#define os_thread_cb OS_TCB + +#include "cmsis_os.h" + +#if (osFeature_Signals != 16) +#error Invalid "osFeature_Signals" value! +#endif +#if (osFeature_Semaphore > 65535) +#error Invalid "osFeature_Semaphore" value! +#endif +#if (osFeature_Wait != 0) +#error osWait not supported! +#endif + + +// ==== Enumeration, structures, defines ==== + +// Service Calls defines + +#if defined (__CC_ARM) /* ARM Compiler */ + +#define __NO_RETURN __declspec(noreturn) + +#define osEvent_type osEvent +#define osEvent_ret_status ret +#define osEvent_ret_value ret +#define osEvent_ret_msg ret +#define osEvent_ret_mail ret + +#define osCallback_type osCallback +#define osCallback_ret ret + +#define SVC_0_1(f,t,...) \ +__svc_indirect(0) t _##f (t(*)()); \ + t f (void); \ +__attribute__((always_inline)) \ +static __inline t __##f (void) { \ + return _##f(f); \ +} + +#define SVC_1_1(f,t,t1,...) \ +__svc_indirect(0) t _##f (t(*)(t1),t1); \ + t f (t1 a1); \ +__attribute__((always_inline)) \ +static __inline t __##f (t1 a1) { \ + return _##f(f,a1); \ +} + +#define SVC_2_1(f,t,t1,t2,...) \ +__svc_indirect(0) t _##f (t(*)(t1,t2),t1,t2); \ + t f (t1 a1, t2 a2); \ +__attribute__((always_inline)) \ +static __inline t __##f (t1 a1, t2 a2) { \ + return _##f(f,a1,a2); \ +} + +#define SVC_3_1(f,t,t1,t2,t3,...) \ +__svc_indirect(0) t _##f (t(*)(t1,t2,t3),t1,t2,t3); \ + t f (t1 a1, t2 a2, t3 a3); \ +__attribute__((always_inline)) \ +static __inline t __##f (t1 a1, t2 a2, t3 a3) { \ + return _##f(f,a1,a2,a3); \ +} + +#define SVC_4_1(f,t,t1,t2,t3,t4,...) \ +__svc_indirect(0) t _##f (t(*)(t1,t2,t3,t4),t1,t2,t3,t4); \ + t f (t1 a1, t2 a2, t3 a3, t4 a4); \ +__attribute__((always_inline)) \ +static __inline t __##f (t1 a1, t2 a2, t3 a3, t4 a4) { \ + return _##f(f,a1,a2,a3,a4); \ +} + +#define SVC_1_2 SVC_1_1 +#define SVC_1_3 SVC_1_1 +#define SVC_2_3 SVC_2_1 + +#elif defined (__GNUC__) /* GNU Compiler */ + +#define __NO_RETURN __attribute__((noreturn)) + +typedef uint32_t __attribute__((vector_size(8))) ret64; +typedef uint32_t __attribute__((vector_size(16))) ret128; + +#define RET_pointer __r0 +#define RET_int32_t __r0 +#define RET_uint32_t __r0 +#define RET_osStatus __r0 +#define RET_osPriority __r0 +#define RET_osEvent {(osStatus)__r0, {(uint32_t)__r1}, {(void *)__r2}} +#define RET_osCallback {(void *)__r0, (void *)__r1} + +#define osEvent_type ret128 +#define osEvent_ret_status (ret128){ret.status} +#define osEvent_ret_value (ret128){ret.status, ret.value.v} +#define osEvent_ret_msg (ret128){ret.status, ret.value.v, (uint32_t)ret.def.message_id} +#define osEvent_ret_mail (ret128){ret.status, ret.value.v, (uint32_t)ret.def.mail_id} + +#define osCallback_type ret64 +#define osCallback_ret (ret64) {(uint32_t)ret.fp, (uint32_t)ret.arg} + +#define SVC_ArgN(n) \ + register int __r##n __asm("r"#n); + +#define SVC_ArgR(n,t,a) \ + register t __r##n __asm("r"#n) = a; + +#define SVC_Arg0() \ + SVC_ArgN(0) \ + SVC_ArgN(1) \ + SVC_ArgN(2) \ + SVC_ArgN(3) + +#define SVC_Arg1(t1) \ + SVC_ArgR(0,t1,a1) \ + SVC_ArgN(1) \ + SVC_ArgN(2) \ + SVC_ArgN(3) + +#define SVC_Arg2(t1,t2) \ + SVC_ArgR(0,t1,a1) \ + SVC_ArgR(1,t2,a2) \ + SVC_ArgN(2) \ + SVC_ArgN(3) + +#define SVC_Arg3(t1,t2,t3) \ + SVC_ArgR(0,t1,a1) \ + SVC_ArgR(1,t2,a2) \ + SVC_ArgR(2,t3,a3) \ + SVC_ArgN(3) + +#define SVC_Arg4(t1,t2,t3,t4) \ + SVC_ArgR(0,t1,a1) \ + SVC_ArgR(1,t2,a2) \ + SVC_ArgR(2,t3,a3) \ + SVC_ArgR(3,t4,a4) + +#if (defined (__CORTEX_M0)) +#define SVC_Call(f) \ + __asm volatile \ + ( \ + "ldr r7,="#f"\n\t" \ + "mov r12,r7\n\t" \ + "svc 0" \ + : "=r" (__r0), "=r" (__r1), "=r" (__r2), "=r" (__r3) \ + : "r" (__r0), "r" (__r1), "r" (__r2), "r" (__r3) \ + : "r7", "r12", "lr", "cc" \ + ); +#else +#define SVC_Call(f) \ + __asm volatile \ + ( \ + "ldr r12,="#f"\n\t" \ + "svc 0" \ + : "=r" (__r0), "=r" (__r1), "=r" (__r2), "=r" (__r3) \ + : "r" (__r0), "r" (__r1), "r" (__r2), "r" (__r3) \ + : "r12", "lr", "cc" \ + ); +#endif + +#define SVC_0_1(f,t,rv) \ +__attribute__((always_inline)) \ +static inline t __##f (void) { \ + SVC_Arg0(); \ + SVC_Call(f); \ + return (t) rv; \ +} + +#define SVC_1_1(f,t,t1,rv) \ +__attribute__((always_inline)) \ +static inline t __##f (t1 a1) { \ + SVC_Arg1(t1); \ + SVC_Call(f); \ + return (t) rv; \ +} + +#define SVC_2_1(f,t,t1,t2,rv) \ +__attribute__((always_inline)) \ +static inline t __##f (t1 a1, t2 a2) { \ + SVC_Arg2(t1,t2); \ + SVC_Call(f); \ + return (t) rv; \ +} + +#define SVC_3_1(f,t,t1,t2,t3,rv) \ +__attribute__((always_inline)) \ +static inline t __##f (t1 a1, t2 a2, t3 a3) { \ + SVC_Arg3(t1,t2,t3); \ + SVC_Call(f); \ + return (t) rv; \ +} + +#define SVC_4_1(f,t,t1,t2,t3,t4,rv) \ +__attribute__((always_inline)) \ +static inline t __##f (t1 a1, t2 a2, t3 a3, t4 a4) { \ + SVC_Arg4(t1,t2,t3,t4); \ + SVC_Call(f); \ + return (t) rv; \ +} + +#define SVC_1_2 SVC_1_1 +#define SVC_1_3 SVC_1_1 +#define SVC_2_3 SVC_2_1 + +#elif defined (__ICCARM__) /* IAR Compiler */ + +#define __NO_RETURN __noreturn + +#define RET_osEvent "=r"(ret.status), "=r"(ret.value), "=r"(ret.def) +#define RET_osCallback "=r"(ret.fp), "=r"(ret.arg) + +#define osEvent_type osEvent +#define osEvent_ret_status ret +#define osEvent_ret_value ret +#define osEvent_ret_msg ret +#define osEvent_ret_mail ret + +#define osCallback_type uint64_t +#define osCallback_ret ((uint64_t)ret.fp | ((uint64_t)ret.arg)<<32) + +#define SVC_Setup(f) \ + __asm( \ + "mov r12,%0\n" \ + :: "r"(&f): "r12" \ + ); + +#define SVC_Ret3() \ + __asm( \ + "ldr r0,[sp,#0]\n" \ + "ldr r1,[sp,#4]\n" \ + "ldr r2,[sp,#8]\n" \ + ); + +#define SVC_0_1(f,t,...) \ +t f (void); \ +_Pragma("swi_number=0") __swi t _##f (void); \ +static inline t __##f (void) { \ + SVC_Setup(f); \ + return _##f(); \ +} + +#define SVC_1_1(f,t,t1,...) \ +t f (t1 a1); \ +_Pragma("swi_number=0") __swi t _##f (t1 a1); \ +static inline t __##f (t1 a1) { \ + SVC_Setup(f); \ + return _##f(a1); \ +} + +#define SVC_2_1(f,t,t1,t2,...) \ +t f (t1 a1, t2 a2); \ +_Pragma("swi_number=0") __swi t _##f (t1 a1, t2 a2); \ +static inline t __##f (t1 a1, t2 a2) { \ + SVC_Setup(f); \ + return _##f(a1,a2); \ +} + +#define SVC_3_1(f,t,t1,t2,t3,...) \ +t f (t1 a1, t2 a2, t3 a3); \ +_Pragma("swi_number=0") __swi t _##f (t1 a1, t2 a2, t3 a3); \ +static inline t __##f (t1 a1, t2 a2, t3 a3) { \ + SVC_Setup(f); \ + return _##f(a1,a2,a3); \ +} + +#define SVC_4_1(f,t,t1,t2,t3,t4,...) \ +t f (t1 a1, t2 a2, t3 a3, t4 a4); \ +_Pragma("swi_number=0") __swi t _##f (t1 a1, t2 a2, t3 a3, t4 a4); \ +static inline t __##f (t1 a1, t2 a2, t3 a3, t4 a4) { \ + SVC_Setup(f); \ + return _##f(a1,a2,a3,a4); \ +} + +#define SVC_1_2(f,t,t1,rr) \ +uint64_t f (t1 a1); \ +_Pragma("swi_number=0") __swi uint64_t _##f (t1 a1); \ +static inline t __##f (t1 a1) { \ + t ret; \ + SVC_Setup(f); \ + _##f(a1); \ + __asm("" : rr : :); \ + return ret; \ +} + +#define SVC_1_3(f,t,t1,rr) \ +t f (t1 a1); \ +void f##_ (t1 a1) { \ + f(a1); \ + SVC_Ret3(); \ +} \ +_Pragma("swi_number=0") __swi void _##f (t1 a1); \ +static inline t __##f (t1 a1) { \ + t ret; \ + SVC_Setup(f##_); \ + _##f(a1); \ + __asm("" : rr : :); \ + return ret; \ +} + +#define SVC_2_3(f,t,t1,t2,rr) \ +t f (t1 a1, t2 a2); \ +void f##_ (t1 a1, t2 a2) { \ + f(a1,a2); \ + SVC_Ret3(); \ +} \ +_Pragma("swi_number=0") __swi void _##f (t1 a1, t2 a2); \ +static inline t __##f (t1 a1, t2 a2) { \ + t ret; \ + SVC_Setup(f##_); \ + _##f(a1,a2); \ + __asm("" : rr : :); \ + return ret; \ +} + +#endif + + +// Callback structure +typedef struct { + void *fp; // Function pointer + void *arg; // Function argument +} osCallback; + + +// OS Section definitions +#ifdef OS_SECTIONS_LINK_INFO +extern const uint32_t os_section_id$$Base; +extern const uint32_t os_section_id$$Limit; +#endif + +// OS Stack Memory for Threads definitions +extern uint64_t os_stack_mem[]; +extern const uint32_t os_stack_sz; + +// OS Timers external resources +extern const osThreadDef_t os_thread_def_osTimerThread; +extern osThreadId osThreadId_osTimerThread; +extern const osMessageQDef_t os_messageQ_def_osTimerMessageQ; +extern osMessageQId osMessageQId_osTimerMessageQ; + + +// ==== Helper Functions ==== + +/// Convert timeout in millisec to system ticks +static uint32_t rt_ms2tick (uint32_t millisec) { + uint32_t tick; + + if (millisec == osWaitForever) return 0xFFFF; // Indefinite timeout + if (millisec > 4000000) return 0xFFFE; // Max ticks supported + + tick = ((1000 * millisec) + os_clockrate - 1) / os_clockrate; + if (tick > 0xFFFE) return 0xFFFE; + + return tick; +} + +/// Convert Thread ID to TCB pointer +static P_TCB rt_tid2ptcb (osThreadId thread_id) { + P_TCB ptcb; + + if (thread_id == NULL) return NULL; + + if ((uint32_t)thread_id & 3) return NULL; + +#ifdef OS_SECTIONS_LINK_INFO + if ((os_section_id$$Base != 0) && (os_section_id$$Limit != 0)) { + if (thread_id < (osThreadId)os_section_id$$Base) return NULL; + if (thread_id >= (osThreadId)os_section_id$$Limit) return NULL; + } +#endif + + ptcb = thread_id; + + if (ptcb->cb_type != TCB) return NULL; + + return ptcb; +} + +/// Convert ID pointer to Object pointer +static void *rt_id2obj (void *id) { + + if ((uint32_t)id & 3) return NULL; + +#ifdef OS_SECTIONS_LINK_INFO + if ((os_section_id$$Base != 0) && (os_section_id$$Limit != 0)) { + if (id < (void *)os_section_id$$Base) return NULL; + if (id >= (void *)os_section_id$$Limit) return NULL; + } +#endif + + return id; +} + + +// ==== Kernel Control ==== + +uint8_t os_initialized; // Kernel Initialized flag +uint8_t os_running; // Kernel Running flag + +// Kernel Control Service Calls declarations +SVC_0_1(svcKernelInitialize, osStatus, RET_osStatus) +SVC_0_1(svcKernelStart, osStatus, RET_osStatus) +SVC_0_1(svcKernelRunning, int32_t, RET_int32_t) +SVC_0_1(svcKernelSysTick, uint32_t, RET_uint32_t) + +static void sysThreadError (osStatus status); +osThreadId svcThreadCreate (const osThreadDef_t *thread_def, void *argument); +osMessageQId svcMessageCreate (const osMessageQDef_t *queue_def, osThreadId thread_id); + +// Kernel Control Service Calls + +/// Initialize the RTOS Kernel for creating objects +osStatus svcKernelInitialize (void) { + int ret; + + if (!os_initialized) { + + // Init Thread Stack Memory (must be 8-byte aligned) + if ((uint32_t)os_stack_mem & 7) return osErrorNoMemory; + ret = rt_init_mem(os_stack_mem, os_stack_sz); + if (ret != 0) return osErrorNoMemory; + + rt_sys_init(); // RTX System Initialization + } + + os_tsk.run->prio = 255; // Highest priority + + if (!os_initialized) { + // Create OS Timers resources (Message Queue & Thread) + osMessageQId_osTimerMessageQ = svcMessageCreate (&os_messageQ_def_osTimerMessageQ, NULL); + osThreadId_osTimerThread = svcThreadCreate(&os_thread_def_osTimerThread, NULL); + } + + sysThreadError(osOK); + + os_initialized = 1; + + return osOK; +} + +/// Start the RTOS Kernel +osStatus svcKernelStart (void) { + + if (os_running) return osOK; + + rt_tsk_prio(0, 0); // Lowest priority + __set_PSP(os_tsk.run->tsk_stack + 8*4); // New context + os_tsk.run = NULL; // Force context switch + + rt_sys_start(); + + os_running = 1; + + return osOK; +} + +/// Check if the RTOS kernel is already started +int32_t svcKernelRunning (void) { + return os_running; +} + +/// Get the RTOS kernel system timer counter +uint32_t svcKernelSysTick (void) { + uint32_t tick, tick0; + + tick = os_tick_val(); + if (os_tick_ovf()) { + tick0 = os_tick_val(); + if (tick0 < tick) tick = tick0; + tick += (os_trv + 1) * (os_time + 1); + } else { + tick += (os_trv + 1) * os_time; + } + + return tick; +} + +// Kernel Control Public API + +/// Initialize the RTOS Kernel for creating objects +osStatus osKernelInitialize (void) { + if (__get_IPSR() != 0) return osErrorISR; // Not allowed in ISR + if ((__get_CONTROL() & 1) == 0) { // Privileged mode + return svcKernelInitialize(); + } else { + return __svcKernelInitialize(); + } +} + +/// Start the RTOS Kernel +osStatus osKernelStart (void) { + uint32_t stack[8]; + + if (__get_IPSR() != 0) return osErrorISR; // Not allowed in ISR + switch (__get_CONTROL() & 0x03) { + case 0x00: // Privileged Thread mode & MSP + __set_PSP((uint32_t)(stack + 8)); // Initial PSP + if (os_flags & 1) { + __set_CONTROL(0x02); // Set Privileged Thread mode & PSP + } else { + __set_CONTROL(0x03); // Set Unprivileged Thread mode & PSP + } + __DSB(); + __ISB(); + break; + case 0x01: // Unprivileged Thread mode & MSP + return osErrorOS; + case 0x02: // Privileged Thread mode & PSP + if ((os_flags & 1) == 0) { // Unprivileged Thread mode requested + __set_CONTROL(0x03); // Set Unprivileged Thread mode & PSP + __DSB(); + __ISB(); + } + break; + case 0x03: // Unprivileged Thread mode & PSP + if (os_flags & 1) return osErrorOS; // Privileged Thread mode requested + break; + } + return __svcKernelStart(); +} + +/// Check if the RTOS kernel is already started +int32_t osKernelRunning (void) { + if ((__get_IPSR() != 0) || ((__get_CONTROL() & 1) == 0)) { + // in ISR or Privileged + return os_running; + } else { + return __svcKernelRunning(); + } +} + +/// Get the RTOS kernel system timer counter +uint32_t osKernelSysTick (void) { + if (__get_IPSR() != 0) return 0; // Not allowed in ISR + return __svcKernelSysTick(); +} + + +// ==== Thread Management ==== + +/// Set Thread Error (for Create functions which return IDs) +static void sysThreadError (osStatus status) { + // To Do +} + +__NO_RETURN void osThreadExit (void); + +// Thread Service Calls declarations +SVC_2_1(svcThreadCreate, osThreadId, const osThreadDef_t *, void *, RET_pointer) +SVC_0_1(svcThreadGetId, osThreadId, RET_pointer) +SVC_1_1(svcThreadTerminate, osStatus, osThreadId, RET_osStatus) +SVC_0_1(svcThreadYield, osStatus, RET_osStatus) +SVC_2_1(svcThreadSetPriority, osStatus, osThreadId, osPriority, RET_osStatus) +SVC_1_1(svcThreadGetPriority, osPriority, osThreadId, RET_osPriority) + +// Thread Service Calls + +/// Create a thread and add it to Active Threads and set it to state READY +osThreadId svcThreadCreate (const osThreadDef_t *thread_def, void *argument) { + P_TCB ptcb; + OS_TID tsk; + void *stk; + + if ((thread_def == NULL) || + (thread_def->pthread == NULL) || + (thread_def->tpriority < osPriorityIdle) || + (thread_def->tpriority > osPriorityRealtime)) { + sysThreadError(osErrorParameter); + return NULL; + } + + if (thread_def->stacksize != 0) { // Custom stack size + stk = rt_alloc_mem( // Allocate stack + os_stack_mem, + thread_def->stacksize + ); + if (stk == NULL) { + sysThreadError(osErrorNoMemory); // Out of memory + return NULL; + } + } else { // Default stack size + stk = NULL; + } + + tsk = rt_tsk_create( // Create task + (FUNCP)thread_def->pthread, // Task function pointer + (thread_def->tpriority-osPriorityIdle+1) | // Task priority + (thread_def->stacksize << 8), // Task stack size in bytes + stk, // Pointer to task's stack + argument // Argument to the task + ); + + if (tsk == 0) { // Invalid task ID + if (stk != NULL) { + rt_free_mem(os_stack_mem, stk); // Free allocated stack + } + sysThreadError(osErrorNoMemory); // Create task failed (Out of memory) + return NULL; + } + + ptcb = (P_TCB)os_active_TCB[tsk - 1]; // TCB pointer + + *((uint32_t *)ptcb->tsk_stack + 13) = (uint32_t)osThreadExit; + + return ptcb; +} + +/// Return the thread ID of the current running thread +osThreadId svcThreadGetId (void) { + OS_TID tsk; + + tsk = rt_tsk_self(); + if (tsk == 0) return NULL; + return (P_TCB)os_active_TCB[tsk - 1]; +} + +/// Terminate execution of a thread and remove it from ActiveThreads +osStatus svcThreadTerminate (osThreadId thread_id) { + OS_RESULT res; + P_TCB ptcb; + void *stk; + + ptcb = rt_tid2ptcb(thread_id); // Get TCB pointer + if (ptcb == NULL) return osErrorParameter; + + stk = ptcb->priv_stack ? ptcb->stack : NULL; // Private stack + + res = rt_tsk_delete(ptcb->task_id); // Delete task + + if (res == OS_R_NOK) return osErrorResource; // Delete task failed + + if (stk != NULL) { + rt_free_mem(os_stack_mem, stk); // Free private stack + } + + return osOK; +} + +/// Pass control to next thread that is in state READY +osStatus svcThreadYield (void) { + rt_tsk_pass(); // Pass control to next task + return osOK; +} + +/// Change priority of an active thread +osStatus svcThreadSetPriority (osThreadId thread_id, osPriority priority) { + OS_RESULT res; + P_TCB ptcb; + + ptcb = rt_tid2ptcb(thread_id); // Get TCB pointer + if (ptcb == NULL) return osErrorParameter; + + if ((priority < osPriorityIdle) || (priority > osPriorityRealtime)) { + return osErrorValue; + } + + res = rt_tsk_prio( // Change task priority + ptcb->task_id, // Task ID + priority - osPriorityIdle + 1 // New task priority + ); + + if (res == OS_R_NOK) return osErrorResource; // Change task priority failed + + return osOK; +} + +/// Get current priority of an active thread +osPriority svcThreadGetPriority (osThreadId thread_id) { + P_TCB ptcb; + + ptcb = rt_tid2ptcb(thread_id); // Get TCB pointer + if (ptcb == NULL) return osPriorityError; + + return (osPriority)(ptcb->prio - 1 + osPriorityIdle); +} + + +// Thread Public API + +/// Create a thread and add it to Active Threads and set it to state READY +osThreadId osThreadCreate (const osThreadDef_t *thread_def, void *argument) { + if (__get_IPSR() != 0) return NULL; // Not allowed in ISR + if (((__get_CONTROL() & 1) == 0) && (os_running == 0)) { + // Privileged and not running + return svcThreadCreate(thread_def, argument); + } else { + return __svcThreadCreate(thread_def, argument); + } +} + +/// Return the thread ID of the current running thread +osThreadId osThreadGetId (void) { + if (__get_IPSR() != 0) return NULL; // Not allowed in ISR + return __svcThreadGetId(); +} + +/// Terminate execution of a thread and remove it from ActiveThreads +osStatus osThreadTerminate (osThreadId thread_id) { + if (__get_IPSR() != 0) return osErrorISR; // Not allowed in ISR + return __svcThreadTerminate(thread_id); +} + +/// Pass control to next thread that is in state READY +osStatus osThreadYield (void) { + if (__get_IPSR() != 0) return osErrorISR; // Not allowed in ISR + return __svcThreadYield(); +} + +/// Change priority of an active thread +osStatus osThreadSetPriority (osThreadId thread_id, osPriority priority) { + if (__get_IPSR() != 0) return osErrorISR; // Not allowed in ISR + return __svcThreadSetPriority(thread_id, priority); +} + +/// Get current priority of an active thread +osPriority osThreadGetPriority (osThreadId thread_id) { + if (__get_IPSR() != 0) return osPriorityError;// Not allowed in ISR + return __svcThreadGetPriority(thread_id); +} + +/// INTERNAL - Not Public +/// Auto Terminate Thread on exit (used implicitly when thread exists) +__NO_RETURN void osThreadExit (void) { + __svcThreadTerminate(__svcThreadGetId()); + for (;;); // Should never come here +} + + +// ==== Generic Wait Functions ==== + +// Generic Wait Service Calls declarations +SVC_1_1(svcDelay, osStatus, uint32_t, RET_osStatus) +#if osFeature_Wait != 0 +SVC_1_3(svcWait, os_InRegs osEvent, uint32_t, RET_osEvent) +#endif + +// Generic Wait Service Calls + +/// Wait for Timeout (Time Delay) +osStatus svcDelay (uint32_t millisec) { + if (millisec == 0) return osOK; + rt_dly_wait(rt_ms2tick(millisec)); + return osEventTimeout; +} + +/// Wait for Signal, Message, Mail, or Timeout +#if osFeature_Wait != 0 +os_InRegs osEvent_type svcWait (uint32_t millisec) { + osEvent ret; + + if (millisec == 0) { + ret.status = osOK; + return osEvent_ret_status; + } + + /* To Do: osEventSignal, osEventMessage, osEventMail */ + rt_dly_wait(rt_ms2tick(millisec)); + ret.status = osEventTimeout; + + return osEvent_ret_status; +} +#endif + + +// Generic Wait API + +/// Wait for Timeout (Time Delay) +osStatus osDelay (uint32_t millisec) { + if (__get_IPSR() != 0) return osErrorISR; // Not allowed in ISR + return __svcDelay(millisec); +} + +/// Wait for Signal, Message, Mail, or Timeout +os_InRegs osEvent osWait (uint32_t millisec) { + osEvent ret; + +#if osFeature_Wait == 0 + ret.status = osErrorOS; + return ret; +#else + if (__get_IPSR() != 0) { // Not allowed in ISR + ret.status = osErrorISR; + return ret; + } + return __svcWait(millisec); +#endif +} + + +// ==== Timer Management ==== + +// Timer definitions +#define osTimerInvalid 0 +#define osTimerStopped 1 +#define osTimerRunning 2 + +// Timer structures + +typedef struct os_timer_cb_ { // Timer Control Block + struct os_timer_cb_ *next; // Pointer to next active Timer + uint8_t state; // Timer State + uint8_t type; // Timer Type (Periodic/One-shot) + uint16_t reserved; // Reserved + uint16_t tcnt; // Timer Delay Count + uint16_t icnt; // Timer Initial Count + void *arg; // Timer Function Argument + const osTimerDef_t *timer; // Pointer to Timer definition +} os_timer_cb; + +// Timer variables +os_timer_cb *os_timer_head; // Pointer to first active Timer + + +// Timer Helper Functions + +// Insert Timer into the list sorted by time +static void rt_timer_insert (os_timer_cb *pt, uint32_t tcnt) { + os_timer_cb *p, *prev; + + prev = NULL; + p = os_timer_head; + while (p != NULL) { + if (tcnt < p->tcnt) break; + tcnt -= p->tcnt; + prev = p; + p = p->next; + } + pt->next = p; + pt->tcnt = (uint16_t)tcnt; + if (p != NULL) { + p->tcnt -= pt->tcnt; + } + if (prev != NULL) { + prev->next = pt; + } else { + os_timer_head = pt; + } +} + +// Remove Timer from the list +static int rt_timer_remove (os_timer_cb *pt) { + os_timer_cb *p, *prev; + + prev = NULL; + p = os_timer_head; + while (p != NULL) { + if (p == pt) break; + prev = p; + p = p->next; + } + if (p == NULL) return -1; + if (prev != NULL) { + prev->next = pt->next; + } else { + os_timer_head = pt->next; + } + if (pt->next != NULL) { + pt->next->tcnt += pt->tcnt; + } + + return 0; +} + + +// Timer Service Calls declarations +SVC_3_1(svcTimerCreate, osTimerId, const osTimerDef_t *, os_timer_type, void *, RET_pointer) +SVC_2_1(svcTimerStart, osStatus, osTimerId, uint32_t, RET_osStatus) +SVC_1_1(svcTimerStop, osStatus, osTimerId, RET_osStatus) +SVC_1_1(svcTimerDelete, osStatus, osTimerId, RET_osStatus) +SVC_1_2(svcTimerCall, os_InRegs osCallback, osTimerId, RET_osCallback) + +// Timer Management Service Calls + +/// Create timer +osTimerId svcTimerCreate (const osTimerDef_t *timer_def, os_timer_type type, void *argument) { + os_timer_cb *pt; + + if ((timer_def == NULL) || (timer_def->ptimer == NULL)) { + sysThreadError(osErrorParameter); + return NULL; + } + + pt = timer_def->timer; + if (pt == NULL) { + sysThreadError(osErrorParameter); + return NULL; + } + + if ((type != osTimerOnce) && (type != osTimerPeriodic)) { + sysThreadError(osErrorValue); + return NULL; + } + + if (osThreadId_osTimerThread == NULL) { + sysThreadError(osErrorResource); + return NULL; + } + + if (pt->state != osTimerInvalid){ + sysThreadError(osErrorResource); + return NULL; + } + + pt->state = osTimerStopped; + pt->type = (uint8_t)type; + pt->arg = argument; + pt->timer = timer_def; + + return (osTimerId)pt; +} + +/// Start or restart timer +osStatus svcTimerStart (osTimerId timer_id, uint32_t millisec) { + os_timer_cb *pt; + uint32_t tcnt; + + pt = rt_id2obj(timer_id); + if (pt == NULL) return osErrorParameter; + + tcnt = rt_ms2tick(millisec); + if (tcnt == 0) return osErrorValue; + + switch (pt->state) { + case osTimerRunning: + if (rt_timer_remove(pt) != 0) { + return osErrorResource; + } + break; + case osTimerStopped: + pt->state = osTimerRunning; + pt->icnt = (uint16_t)tcnt; + break; + default: + return osErrorResource; + } + + rt_timer_insert(pt, tcnt); + + return osOK; +} + +/// Stop timer +osStatus svcTimerStop (osTimerId timer_id) { + os_timer_cb *pt; + + pt = rt_id2obj(timer_id); + if (pt == NULL) return osErrorParameter; + + if (pt->state != osTimerRunning) return osErrorResource; + + pt->state = osTimerStopped; + + if (rt_timer_remove(pt) != 0) { + return osErrorResource; + } + + return osOK; +} + +/// Delete timer +osStatus svcTimerDelete (osTimerId timer_id) { + os_timer_cb *pt; + + pt = rt_id2obj(timer_id); + if (pt == NULL) return osErrorParameter; + + switch (pt->state) { + case osTimerRunning: + rt_timer_remove(pt); + break; + case osTimerStopped: + break; + default: + return osErrorResource; + } + + pt->state = osTimerInvalid; + + return osOK; +} + +/// Get timer callback parameters +os_InRegs osCallback_type svcTimerCall (osTimerId timer_id) { + os_timer_cb *pt; + osCallback ret; + + pt = rt_id2obj(timer_id); + if (pt == NULL) { + ret.fp = NULL; + ret.arg = NULL; + return osCallback_ret; + } + + ret.fp = (void *)pt->timer->ptimer; + ret.arg = pt->arg; + + return osCallback_ret; +} + +static __INLINE osStatus isrMessagePut (osMessageQId queue_id, uint32_t info, uint32_t millisec); + +/// Timer Tick (called each SysTick) +void sysTimerTick (void) { + os_timer_cb *pt, *p; + + p = os_timer_head; + if (p == NULL) return; + + p->tcnt--; + while ((p != NULL) && (p->tcnt == 0)) { + pt = p; + p = p->next; + os_timer_head = p; + isrMessagePut(osMessageQId_osTimerMessageQ, (uint32_t)pt, 0); + if (pt->type == osTimerPeriodic) { + rt_timer_insert(pt, pt->icnt); + } else { + pt->state = osTimerStopped; + } + } +} + + +// Timer Management Public API + +/// Create timer +osTimerId osTimerCreate (const osTimerDef_t *timer_def, os_timer_type type, void *argument) { + if (__get_IPSR() != 0) return NULL; // Not allowed in ISR + if (((__get_CONTROL() & 1) == 0) && (os_running == 0)) { + // Privileged and not running + return svcTimerCreate(timer_def, type, argument); + } else { + return __svcTimerCreate(timer_def, type, argument); + } +} + +/// Start or restart timer +osStatus osTimerStart (osTimerId timer_id, uint32_t millisec) { + if (__get_IPSR() != 0) return osErrorISR; // Not allowed in ISR + return __svcTimerStart(timer_id, millisec); +} + +/// Stop timer +osStatus osTimerStop (osTimerId timer_id) { + if (__get_IPSR() != 0) return osErrorISR; // Not allowed in ISR + return __svcTimerStop(timer_id); +} + +/// Delete timer +osStatus osTimerDelete (osTimerId timer_id) { + if (__get_IPSR() != 0) return osErrorISR; // Not allowed in ISR + return __svcTimerDelete(timer_id); +} + +/// INTERNAL - Not Public +/// Get timer callback parameters (used by OS Timer Thread) +os_InRegs osCallback osTimerCall (osTimerId timer_id) { + return __svcTimerCall(timer_id); +} + + +// Timer Thread +__NO_RETURN void osTimerThread (void const *argument) { + osCallback cb; + osEvent evt; + + for (;;) { + evt = osMessageGet(osMessageQId_osTimerMessageQ, osWaitForever); + if (evt.status == osEventMessage) { + cb = osTimerCall(evt.value.p); + if (cb.fp != NULL) { + (*(os_ptimer)cb.fp)(cb.arg); + } + } + } +} + + +// ==== Signal Management ==== + +// Signal Service Calls declarations +SVC_2_1(svcSignalSet, int32_t, osThreadId, int32_t, RET_int32_t) +SVC_2_1(svcSignalClear, int32_t, osThreadId, int32_t, RET_int32_t) +SVC_2_3(svcSignalWait, os_InRegs osEvent, int32_t, uint32_t, RET_osEvent) + +// Signal Service Calls + +/// Set the specified Signal Flags of an active thread +int32_t svcSignalSet (osThreadId thread_id, int32_t signals) { + P_TCB ptcb; + int32_t sig; + + ptcb = rt_tid2ptcb(thread_id); // Get TCB pointer + if (ptcb == NULL) return 0x80000000; + + if (signals & (0xFFFFFFFF << osFeature_Signals)) return 0x80000000; + + sig = ptcb->events; // Previous signal flags + + rt_evt_set(signals, ptcb->task_id); // Set event flags + + return sig; +} + +/// Clear the specified Signal Flags of an active thread +int32_t svcSignalClear (osThreadId thread_id, int32_t signals) { + P_TCB ptcb; + int32_t sig; + + ptcb = rt_tid2ptcb(thread_id); // Get TCB pointer + if (ptcb == NULL) return 0x80000000; + + if (signals & (0xFFFFFFFF << osFeature_Signals)) return 0x80000000; + + sig = ptcb->events; // Previous signal flags + + rt_evt_clr(signals, ptcb->task_id); // Clear event flags + + return sig; +} + +/// Wait for one or more Signal Flags to become signaled for the current RUNNING thread +os_InRegs osEvent_type svcSignalWait (int32_t signals, uint32_t millisec) { + OS_RESULT res; + osEvent ret; + + if (signals & (0xFFFFFFFF << osFeature_Signals)) { + ret.status = osErrorValue; + return osEvent_ret_status; + } + + if (signals != 0) { // Wait for all specified signals + res = rt_evt_wait(signals, rt_ms2tick(millisec), __TRUE); + } else { // Wait for any signal + res = rt_evt_wait(0xFFFF, rt_ms2tick(millisec), __FALSE); + } + + if (res == OS_R_EVT) { + ret.status = osEventSignal; + ret.value.signals = signals ? signals : os_tsk.run->waits; + } else { + ret.status = millisec ? osEventTimeout : osOK; + ret.value.signals = 0; + } + + return osEvent_ret_value; +} + + +// Signal ISR Calls + +/// Set the specified Signal Flags of an active thread +static __INLINE int32_t isrSignalSet (osThreadId thread_id, int32_t signals) { + P_TCB ptcb; + int32_t sig; + + ptcb = rt_tid2ptcb(thread_id); // Get TCB pointer + if (ptcb == NULL) return 0x80000000; + + if (signals & (0xFFFFFFFF << osFeature_Signals)) return 0x80000000; + + sig = ptcb->events; // Previous signal flags + + isr_evt_set(signals, ptcb->task_id); // Set event flags + + return sig; +} + + +// Signal Public API + +/// Set the specified Signal Flags of an active thread +int32_t osSignalSet (osThreadId thread_id, int32_t signals) { + if (__get_IPSR() != 0) { // in ISR + return isrSignalSet(thread_id, signals); + } else { // in Thread + return __svcSignalSet(thread_id, signals); + } +} + +/// Clear the specified Signal Flags of an active thread +int32_t osSignalClear (osThreadId thread_id, int32_t signals) { + if (__get_IPSR() != 0) return osErrorISR; // Not allowed in ISR + return __svcSignalClear(thread_id, signals); +} + +/// Wait for one or more Signal Flags to become signaled for the current RUNNING thread +os_InRegs osEvent osSignalWait (int32_t signals, uint32_t millisec) { + osEvent ret; + + if (__get_IPSR() != 0) { // Not allowed in ISR + ret.status = osErrorISR; + return ret; + } + return __svcSignalWait(signals, millisec); +} + + +// ==== Mutex Management ==== + +// Mutex Service Calls declarations +SVC_1_1(svcMutexCreate, osMutexId, const osMutexDef_t *, RET_pointer) +SVC_2_1(svcMutexWait, osStatus, osMutexId, uint32_t, RET_osStatus) +SVC_1_1(svcMutexRelease, osStatus, osMutexId, RET_osStatus) +SVC_1_1(svcMutexDelete, osStatus, osMutexId, RET_osStatus) + +// Mutex Service Calls + +/// Create and Initialize a Mutex object +osMutexId svcMutexCreate (const osMutexDef_t *mutex_def) { + OS_ID mut; + + if (mutex_def == NULL) { + sysThreadError(osErrorParameter); + return NULL; + } + + mut = mutex_def->mutex; + if (mut == NULL) { + sysThreadError(osErrorParameter); + return NULL; + } + + if (((P_MUCB)mut)->cb_type != 0) { + sysThreadError(osErrorParameter); + return NULL; + } + + rt_mut_init(mut); // Initialize Mutex + + return mut; +} + +/// Wait until a Mutex becomes available +osStatus svcMutexWait (osMutexId mutex_id, uint32_t millisec) { + OS_ID mut; + OS_RESULT res; + + mut = rt_id2obj(mutex_id); + if (mut == NULL) return osErrorParameter; + + if (((P_MUCB)mut)->cb_type != MUCB) return osErrorParameter; + + res = rt_mut_wait(mut, rt_ms2tick(millisec)); // Wait for Mutex + + if (res == OS_R_TMO) { + return (millisec ? osErrorTimeoutResource : osErrorResource); + } + + return osOK; +} + +/// Release a Mutex that was obtained with osMutexWait +osStatus svcMutexRelease (osMutexId mutex_id) { + OS_ID mut; + OS_RESULT res; + + mut = rt_id2obj(mutex_id); + if (mut == NULL) return osErrorParameter; + + if (((P_MUCB)mut)->cb_type != MUCB) return osErrorParameter; + + res = rt_mut_release(mut); // Release Mutex + + if (res == OS_R_NOK) return osErrorResource; // Thread not owner or Zero Counter + + return osOK; +} + +/// Delete a Mutex that was created by osMutexCreate +osStatus svcMutexDelete (osMutexId mutex_id) { + OS_ID mut; + + mut = rt_id2obj(mutex_id); + if (mut == NULL) return osErrorParameter; + + if (((P_MUCB)mut)->cb_type != MUCB) return osErrorParameter; + + rt_mut_delete(mut); // Release Mutex + + return osOK; +} + + +// Mutex Public API + +/// Create and Initialize a Mutex object +osMutexId osMutexCreate (const osMutexDef_t *mutex_def) { + if (__get_IPSR() != 0) return NULL; // Not allowed in ISR + if (((__get_CONTROL() & 1) == 0) && (os_running == 0)) { + // Privileged and not running + return svcMutexCreate(mutex_def); + } else { + return __svcMutexCreate(mutex_def); + } +} + +/// Wait until a Mutex becomes available +osStatus osMutexWait (osMutexId mutex_id, uint32_t millisec) { + if (__get_IPSR() != 0) return osErrorISR; // Not allowed in ISR + return __svcMutexWait(mutex_id, millisec); +} + +/// Release a Mutex that was obtained with osMutexWait +osStatus osMutexRelease (osMutexId mutex_id) { + if (__get_IPSR() != 0) return osErrorISR; // Not allowed in ISR + return __svcMutexRelease(mutex_id); +} + +/// Delete a Mutex that was created by osMutexCreate +osStatus osMutexDelete (osMutexId mutex_id) { + if (__get_IPSR() != 0) return osErrorISR; // Not allowed in ISR + return __svcMutexDelete(mutex_id); +} + + +// ==== Semaphore Management ==== + +// Semaphore Service Calls declarations +SVC_2_1(svcSemaphoreCreate, osSemaphoreId, const osSemaphoreDef_t *, int32_t, RET_pointer) +SVC_2_1(svcSemaphoreWait, int32_t, osSemaphoreId, uint32_t, RET_int32_t) +SVC_1_1(svcSemaphoreRelease, osStatus, osSemaphoreId, RET_osStatus) +SVC_1_1(svcSemaphoreDelete, osStatus, osSemaphoreId, RET_osStatus) + +// Semaphore Service Calls + +/// Create and Initialize a Semaphore object +osSemaphoreId svcSemaphoreCreate (const osSemaphoreDef_t *semaphore_def, int32_t count) { + OS_ID sem; + + if (semaphore_def == NULL) { + sysThreadError(osErrorParameter); + return NULL; + } + + sem = semaphore_def->semaphore; + if (sem == NULL) { + sysThreadError(osErrorParameter); + return NULL; + } + + if (((P_SCB)sem)->cb_type != 0) { + sysThreadError(osErrorParameter); + return NULL; + } + + if (count > osFeature_Semaphore) { + sysThreadError(osErrorValue); + return NULL; + } + + rt_sem_init(sem, count); // Initialize Semaphore + + return sem; +} + +/// Wait until a Semaphore becomes available +int32_t svcSemaphoreWait (osSemaphoreId semaphore_id, uint32_t millisec) { + OS_ID sem; + OS_RESULT res; + + sem = rt_id2obj(semaphore_id); + if (sem == NULL) return -1; + + if (((P_SCB)sem)->cb_type != SCB) return -1; + + res = rt_sem_wait(sem, rt_ms2tick(millisec)); // Wait for Semaphore + + if (res == OS_R_TMO) return 0; // Timeout + + return (((P_SCB)sem)->tokens + 1); +} + +/// Release a Semaphore +osStatus svcSemaphoreRelease (osSemaphoreId semaphore_id) { + OS_ID sem; + + sem = rt_id2obj(semaphore_id); + if (sem == NULL) return osErrorParameter; + + if (((P_SCB)sem)->cb_type != SCB) return osErrorParameter; + + if (((P_SCB)sem)->tokens == osFeature_Semaphore) return osErrorResource; + + rt_sem_send(sem); // Release Semaphore + + return osOK; +} + +/// Delete a Semaphore that was created by osSemaphoreCreate +osStatus svcSemaphoreDelete (osSemaphoreId semaphore_id) { + OS_ID sem; + + sem = rt_id2obj(semaphore_id); + if (sem == NULL) return osErrorParameter; + + if (((P_SCB)sem)->cb_type != SCB) return osErrorParameter; + + rt_sem_delete(sem); // Delete Semaphore + + return osOK; +} + + +// Semaphore ISR Calls + +/// Release a Semaphore +static __INLINE osStatus isrSemaphoreRelease (osSemaphoreId semaphore_id) { + OS_ID sem; + + sem = rt_id2obj(semaphore_id); + if (sem == NULL) return osErrorParameter; + + if (((P_SCB)sem)->cb_type != SCB) return osErrorParameter; + + if (((P_SCB)sem)->tokens == osFeature_Semaphore) return osErrorResource; + + isr_sem_send(sem); // Release Semaphore + + return osOK; +} + + +// Semaphore Public API + +/// Create and Initialize a Semaphore object +osSemaphoreId osSemaphoreCreate (const osSemaphoreDef_t *semaphore_def, int32_t count) { + if (__get_IPSR() != 0) return NULL; // Not allowed in ISR + if (((__get_CONTROL() & 1) == 0) && (os_running == 0)) { + // Privileged and not running + return svcSemaphoreCreate(semaphore_def, count); + } else { + return __svcSemaphoreCreate(semaphore_def, count); + } +} + +/// Wait until a Semaphore becomes available +int32_t osSemaphoreWait (osSemaphoreId semaphore_id, uint32_t millisec) { + if (__get_IPSR() != 0) return -1; // Not allowed in ISR + return __svcSemaphoreWait(semaphore_id, millisec); +} + +/// Release a Semaphore +osStatus osSemaphoreRelease (osSemaphoreId semaphore_id) { + if (__get_IPSR() != 0) { // in ISR + return isrSemaphoreRelease(semaphore_id); + } else { // in Thread + return __svcSemaphoreRelease(semaphore_id); + } +} + +/// Delete a Semaphore that was created by osSemaphoreCreate +osStatus osSemaphoreDelete (osSemaphoreId semaphore_id) { + if (__get_IPSR() != 0) return osErrorISR; // Not allowed in ISR + return __svcSemaphoreDelete(semaphore_id); +} + + +// ==== Memory Management Functions ==== + +// Memory Management Helper Functions + +// Clear Memory Box (Zero init) +static void rt_clr_box (void *box_mem, void *box) { + uint32_t *p, n; + + if (box) { + p = box; + for (n = ((P_BM)box_mem)->blk_size; n; n -= 4) { + *p++ = 0; + } + } +} + +// Memory Management Service Calls declarations +SVC_1_1(svcPoolCreate, osPoolId, const osPoolDef_t *, RET_pointer) +SVC_2_1(sysPoolAlloc, void *, osPoolId, uint32_t, RET_pointer) +SVC_2_1(sysPoolFree, osStatus, osPoolId, void *, RET_osStatus) + +// Memory Management Service & ISR Calls + +/// Create and Initialize memory pool +osPoolId svcPoolCreate (const osPoolDef_t *pool_def) { + uint32_t blk_sz; + + if ((pool_def == NULL) || + (pool_def->pool_sz == 0) || + (pool_def->item_sz == 0) || + (pool_def->pool == NULL)) { + sysThreadError(osErrorParameter); + return NULL; + } + + blk_sz = (pool_def->item_sz + 3) & ~3; + + _init_box(pool_def->pool, sizeof(struct OS_BM) + pool_def->pool_sz * blk_sz, blk_sz); + + return pool_def->pool; +} + +/// Allocate a memory block from a memory pool +void *sysPoolAlloc (osPoolId pool_id, uint32_t clr) { + void *ptr; + + if (pool_id == NULL) return NULL; + + ptr = rt_alloc_box(pool_id); + if (clr) { + rt_clr_box(pool_id, ptr); + } + + return ptr; +} + +/// Return an allocated memory block back to a specific memory pool +osStatus sysPoolFree (osPoolId pool_id, void *block) { + int32_t res; + + if (pool_id == NULL) return osErrorParameter; + + res = rt_free_box(pool_id, block); + if (res != 0) return osErrorValue; + + return osOK; +} + + +// Memory Management Public API + +/// Create and Initialize memory pool +osPoolId osPoolCreate (const osPoolDef_t *pool_def) { + if (__get_IPSR() != 0) return NULL; // Not allowed in ISR + if (((__get_CONTROL() & 1) == 0) && (os_running == 0)) { + // Privileged and not running + return svcPoolCreate(pool_def); + } else { + return __svcPoolCreate(pool_def); + } +} + +/// Allocate a memory block from a memory pool +void *osPoolAlloc (osPoolId pool_id) { + if ((__get_IPSR() != 0) || ((__get_CONTROL() & 1) == 0)) { // in ISR or Privileged + return sysPoolAlloc(pool_id, 0); + } else { // in Thread + return __sysPoolAlloc(pool_id, 0); + } +} + +/// Allocate a memory block from a memory pool and set memory block to zero +void *osPoolCAlloc (osPoolId pool_id) { + if ((__get_IPSR() != 0) || ((__get_CONTROL() & 1) == 0)) { // in ISR or Privileged + return sysPoolAlloc(pool_id, 1); + } else { // in Thread + return __sysPoolAlloc(pool_id, 1); + } +} + +/// Return an allocated memory block back to a specific memory pool +osStatus osPoolFree (osPoolId pool_id, void *block) { + if ((__get_IPSR() != 0) || ((__get_CONTROL() & 1) == 0)) { // in ISR or Privileged + return sysPoolFree(pool_id, block); + } else { // in Thread + return __sysPoolFree(pool_id, block); + } +} + + +// ==== Message Queue Management Functions ==== + +// Message Queue Management Service Calls declarations +SVC_2_1(svcMessageCreate, osMessageQId, const osMessageQDef_t *, osThreadId, RET_pointer) +SVC_3_1(svcMessagePut, osStatus, osMessageQId, uint32_t, uint32_t, RET_osStatus) +SVC_2_3(svcMessageGet, os_InRegs osEvent, osMessageQId, uint32_t, RET_osEvent) + +// Message Queue Service Calls + +/// Create and Initialize Message Queue +osMessageQId svcMessageCreate (const osMessageQDef_t *queue_def, osThreadId thread_id) { + + if ((queue_def == NULL) || + (queue_def->queue_sz == 0) || + (queue_def->pool == NULL)) { + sysThreadError(osErrorParameter); + return NULL; + } + + if (((P_MCB)queue_def->pool)->cb_type != 0) { + sysThreadError(osErrorParameter); + return NULL; + } + + rt_mbx_init(queue_def->pool, 4*(queue_def->queue_sz + 4)); + + return queue_def->pool; +} + +/// Put a Message to a Queue +osStatus svcMessagePut (osMessageQId queue_id, uint32_t info, uint32_t millisec) { + OS_RESULT res; + + if (queue_id == NULL) return osErrorParameter; + + if (((P_MCB)queue_id)->cb_type != MCB) return osErrorParameter; + + res = rt_mbx_send(queue_id, (void *)info, rt_ms2tick(millisec)); + + if (res == OS_R_TMO) { + return (millisec ? osErrorTimeoutResource : osErrorResource); + } + + return osOK; +} + +/// Get a Message or Wait for a Message from a Queue +os_InRegs osEvent_type svcMessageGet (osMessageQId queue_id, uint32_t millisec) { + OS_RESULT res; + osEvent ret; + + if (queue_id == NULL) { + ret.status = osErrorParameter; + return osEvent_ret_status; + } + + if (((P_MCB)queue_id)->cb_type != MCB) { + ret.status = osErrorParameter; + return osEvent_ret_status; + } + + res = rt_mbx_wait(queue_id, &ret.value.p, rt_ms2tick(millisec)); + + if (res == OS_R_TMO) { + ret.status = millisec ? osEventTimeout : osOK; + return osEvent_ret_value; + } + + ret.status = osEventMessage; + + return osEvent_ret_value; +} + + +// Message Queue ISR Calls + +/// Put a Message to a Queue +static __INLINE osStatus isrMessagePut (osMessageQId queue_id, uint32_t info, uint32_t millisec) { + + if ((queue_id == NULL) || (millisec != 0)) { + return osErrorParameter; + } + + if (((P_MCB)queue_id)->cb_type != MCB) return osErrorParameter; + + if (rt_mbx_check(queue_id) == 0) { // Check if Queue is full + return osErrorResource; + } + + isr_mbx_send(queue_id, (void *)info); + + return osOK; +} + +/// Get a Message or Wait for a Message from a Queue +static __INLINE os_InRegs osEvent isrMessageGet (osMessageQId queue_id, uint32_t millisec) { + OS_RESULT res; + osEvent ret; + + if ((queue_id == NULL) || (millisec != 0)) { + ret.status = osErrorParameter; + return ret; + } + + if (((P_MCB)queue_id)->cb_type != MCB) { + ret.status = osErrorParameter; + return ret; + } + + res = isr_mbx_receive(queue_id, &ret.value.p); + + if (res != OS_R_MBX) { + ret.status = osOK; + return ret; + } + + ret.status = osEventMessage; + + return ret; +} + + +// Message Queue Management Public API + +/// Create and Initialize Message Queue +osMessageQId osMessageCreate (const osMessageQDef_t *queue_def, osThreadId thread_id) { + if (__get_IPSR() != 0) return NULL; // Not allowed in ISR + if (((__get_CONTROL() & 1) == 0) && (os_running == 0)) { + // Privileged and not running + return svcMessageCreate(queue_def, thread_id); + } else { + return __svcMessageCreate(queue_def, thread_id); + } +} + +/// Put a Message to a Queue +osStatus osMessagePut (osMessageQId queue_id, uint32_t info, uint32_t millisec) { + if (__get_IPSR() != 0) { // in ISR + return isrMessagePut(queue_id, info, millisec); + } else { // in Thread + return __svcMessagePut(queue_id, info, millisec); + } +} + +/// Get a Message or Wait for a Message from a Queue +os_InRegs osEvent osMessageGet (osMessageQId queue_id, uint32_t millisec) { + if (__get_IPSR() != 0) { // in ISR + return isrMessageGet(queue_id, millisec); + } else { // in Thread + return __svcMessageGet(queue_id, millisec); + } +} + + +// ==== Mail Queue Management Functions ==== + +// Mail Queue Management Service Calls declarations +SVC_2_1(svcMailCreate, osMailQId, const osMailQDef_t *, osThreadId, RET_pointer) +SVC_4_1(sysMailAlloc, void *, osMailQId, uint32_t, uint32_t, uint32_t, RET_pointer) +SVC_3_1(sysMailFree, osStatus, osMailQId, void *, uint32_t, RET_osStatus) + +// Mail Queue Management Service & ISR Calls + +/// Create and Initialize mail queue +osMailQId svcMailCreate (const osMailQDef_t *queue_def, osThreadId thread_id) { + uint32_t blk_sz; + P_MCB pmcb; + void *pool; + + if ((queue_def == NULL) || + (queue_def->queue_sz == 0) || + (queue_def->item_sz == 0) || + (queue_def->pool == NULL)) { + sysThreadError(osErrorParameter); + return NULL; + } + + pmcb = *(((void **)queue_def->pool) + 0); + pool = *(((void **)queue_def->pool) + 1); + + if ((pool == NULL) || (pmcb == NULL) || (pmcb->cb_type != 0)) { + sysThreadError(osErrorParameter); + return NULL; + } + + blk_sz = (queue_def->item_sz + 3) & ~3; + + _init_box(pool, sizeof(struct OS_BM) + queue_def->queue_sz * blk_sz, blk_sz); + + rt_mbx_init(pmcb, 4*(queue_def->queue_sz + 4)); + + + return queue_def->pool; +} + +/// Allocate a memory block from a mail +void *sysMailAlloc (osMailQId queue_id, uint32_t millisec, uint32_t isr, uint32_t clr) { + P_MCB pmcb; + void *pool; + void *mem; + + if (queue_id == NULL) return NULL; + + pmcb = *(((void **)queue_id) + 0); + pool = *(((void **)queue_id) + 1); + + if ((pool == NULL) || (pmcb == NULL)) return NULL; + + if (isr && (millisec != 0)) return NULL; + + mem = rt_alloc_box(pool); + if (clr) { + rt_clr_box(pool, mem); + } + + if ((mem == NULL) && (millisec != 0)) { + // Put Task to sleep when Memory not available + if (pmcb->p_lnk != NULL) { + rt_put_prio((P_XCB)pmcb, os_tsk.run); + } else { + pmcb->p_lnk = os_tsk.run; + os_tsk.run->p_lnk = NULL; + os_tsk.run->p_rlnk = (P_TCB)pmcb; + // Task is waiting to allocate a message + pmcb->state = 3; + } + rt_block(rt_ms2tick(millisec), WAIT_MBX); + } + + return mem; +} + +/// Free a memory block from a mail +osStatus sysMailFree (osMailQId queue_id, void *mail, uint32_t isr) { + P_MCB pmcb; + P_TCB ptcb; + void *pool; + void *mem; + int32_t res; + + if (queue_id == NULL) return osErrorParameter; + + pmcb = *(((void **)queue_id) + 0); + pool = *(((void **)queue_id) + 1); + + if ((pmcb == NULL) || (pool == NULL)) return osErrorParameter; + + res = rt_free_box(pool, mail); + + if (res != 0) return osErrorValue; + + if (pmcb->state == 3) { + // Task is waiting to allocate a message + if (isr) { + rt_psq_enq (pmcb, (U32)pool); + rt_psh_req (); + } else { + mem = rt_alloc_box(pool); + if (mem != NULL) { + ptcb = rt_get_first((P_XCB)pmcb); + if (pmcb->p_lnk == NULL) { + pmcb->state = 0; + } + rt_ret_val(ptcb, (U32)mem); + rt_rmv_dly(ptcb); + rt_dispatch(ptcb); + } + } + } + + return osOK; +} + + +// Mail Queue Management Public API + +/// Create and Initialize mail queue +osMailQId osMailCreate (const osMailQDef_t *queue_def, osThreadId thread_id) { + if (__get_IPSR() != 0) return NULL; // Not allowed in ISR + if (((__get_CONTROL() & 1) == 0) && (os_running == 0)) { + // Privileged and not running + return svcMailCreate(queue_def, thread_id); + } else { + return __svcMailCreate(queue_def, thread_id); + } +} + +/// Allocate a memory block from a mail +void *osMailAlloc (osMailQId queue_id, uint32_t millisec) { + if (__get_IPSR() != 0) { // in ISR + return sysMailAlloc(queue_id, millisec, 1, 0); + } else { // in Thread + return __sysMailAlloc(queue_id, millisec, 0, 0); + } +} + +/// Allocate a memory block from a mail and set memory block to zero +void *osMailCAlloc (osMailQId queue_id, uint32_t millisec) { + if (__get_IPSR() != 0) { // in ISR + return sysMailAlloc(queue_id, millisec, 1, 1); + } else { // in Thread + return __sysMailAlloc(queue_id, millisec, 0, 1); + } +} + +/// Free a memory block from a mail +osStatus osMailFree (osMailQId queue_id, void *mail) { + if (__get_IPSR() != 0) { // in ISR + return sysMailFree(queue_id, mail, 1); + } else { // in Thread + return __sysMailFree(queue_id, mail, 0); + } +} + +/// Put a mail to a queue +osStatus osMailPut (osMailQId queue_id, void *mail) { + if (queue_id == NULL) return osErrorParameter; + if (mail == NULL) return osErrorValue; + return osMessagePut(*((void **)queue_id), (uint32_t)mail, 0); +} + +/// Get a mail from a queue +os_InRegs osEvent osMailGet (osMailQId queue_id, uint32_t millisec) { + osEvent ret; + + if (queue_id == NULL) { + ret.status = osErrorParameter; + return ret; + } + + ret = osMessageGet(*((void **)queue_id), millisec); + if (ret.status == osEventMessage) ret.status = osEventMail; + + return ret; +} diff --git a/vendor/cmsis_rtos_rtx/SRC/rt_Event.c b/vendor/cmsis_rtos_rtx/SRC/rt_Event.c new file mode 100644 index 000000000..463d5c995 --- /dev/null +++ b/vendor/cmsis_rtos_rtx/SRC/rt_Event.c @@ -0,0 +1,190 @@ +/*---------------------------------------------------------------------------- + * RL-ARM - RTX + *---------------------------------------------------------------------------- + * Name: RT_EVENT.C + * Purpose: Implements waits and wake-ups for event flags + * Rev.: V4.70 + *---------------------------------------------------------------------------- + * + * Copyright (c) 1999-2009 KEIL, 2009-2013 ARM Germany GmbH + * All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * - Neither the name of ARM nor the names of its contributors may be used + * to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + *---------------------------------------------------------------------------*/ + +#include "rt_TypeDef.h" +#include "RTX_Config.h" +#include "rt_System.h" +#include "rt_Event.h" +#include "rt_List.h" +#include "rt_Task.h" +#include "rt_HAL_CM.h" + + +/*---------------------------------------------------------------------------- + * Functions + *---------------------------------------------------------------------------*/ + + +/*--------------------------- rt_evt_wait -----------------------------------*/ + +OS_RESULT rt_evt_wait (U16 wait_flags, U16 timeout, BOOL and_wait) { + /* Wait for one or more event flags with optional time-out. */ + /* "wait_flags" identifies the flags to wait for. */ + /* "timeout" is the time-out limit in system ticks (0xffff if no time-out) */ + /* "and_wait" specifies the AND-ing of "wait_flags" as condition to be met */ + /* to complete the wait. (OR-ing if set to 0). */ + U32 block_state; + + if (and_wait) { + /* Check for AND-connected events */ + if ((os_tsk.run->events & wait_flags) == wait_flags) { + os_tsk.run->events &= ~wait_flags; + return (OS_R_EVT); + } + block_state = WAIT_AND; + } + else { + /* Check for OR-connected events */ + if (os_tsk.run->events & wait_flags) { + os_tsk.run->waits = os_tsk.run->events & wait_flags; + os_tsk.run->events &= ~wait_flags; + return (OS_R_EVT); + } + block_state = WAIT_OR; + } + /* Task has to wait */ + os_tsk.run->waits = wait_flags; + rt_block (timeout, (U8)block_state); + return (OS_R_TMO); +} + + +/*--------------------------- rt_evt_set ------------------------------------*/ + +void rt_evt_set (U16 event_flags, OS_TID task_id) { + /* Set one or more event flags of a selectable task. */ + P_TCB p_tcb; + + p_tcb = os_active_TCB[task_id-1]; + if (p_tcb == NULL) { + return; + } + p_tcb->events |= event_flags; + event_flags = p_tcb->waits; + /* If the task is not waiting for an event, it should not be put */ + /* to ready state. */ + if (p_tcb->state == WAIT_AND) { + /* Check for AND-connected events */ + if ((p_tcb->events & event_flags) == event_flags) { + goto wkup; + } + } + if (p_tcb->state == WAIT_OR) { + /* Check for OR-connected events */ + if (p_tcb->events & event_flags) { + p_tcb->waits &= p_tcb->events; +wkup: p_tcb->events &= ~event_flags; + rt_rmv_dly (p_tcb); + p_tcb->state = READY; +#ifdef __CMSIS_RTOS + rt_ret_val2(p_tcb, 0x08/*osEventSignal*/, p_tcb->waits); +#else + rt_ret_val (p_tcb, OS_R_EVT); +#endif + rt_dispatch (p_tcb); + } + } +} + + +/*--------------------------- rt_evt_clr ------------------------------------*/ + +void rt_evt_clr (U16 clear_flags, OS_TID task_id) { + /* Clear one or more event flags (identified by "clear_flags") of a */ + /* selectable task (identified by "task"). */ + P_TCB task = os_active_TCB[task_id-1]; + + if (task == NULL) { + return; + } + task->events &= ~clear_flags; +} + + +/*--------------------------- isr_evt_set -----------------------------------*/ + +void isr_evt_set (U16 event_flags, OS_TID task_id) { + /* Same function as "os_evt_set", but to be called by ISRs. */ + P_TCB p_tcb = os_active_TCB[task_id-1]; + + if (p_tcb == NULL) { + return; + } + rt_psq_enq (p_tcb, event_flags); + rt_psh_req (); +} + + +/*--------------------------- rt_evt_get ------------------------------------*/ + +U16 rt_evt_get (void) { + /* Get events of a running task after waiting for OR connected events. */ + return (os_tsk.run->waits); +} + + +/*--------------------------- rt_evt_psh ------------------------------------*/ + +void rt_evt_psh (P_TCB p_CB, U16 set_flags) { + /* Check if task has to be waken up */ + U16 event_flags; + + p_CB->events |= set_flags; + event_flags = p_CB->waits; + if (p_CB->state == WAIT_AND) { + /* Check for AND-connected events */ + if ((p_CB->events & event_flags) == event_flags) { + goto rdy; + } + } + if (p_CB->state == WAIT_OR) { + /* Check for OR-connected events */ + if (p_CB->events & event_flags) { + p_CB->waits &= p_CB->events; +rdy: p_CB->events &= ~event_flags; + rt_rmv_dly (p_CB); + p_CB->state = READY; +#ifdef __CMSIS_RTOS + rt_ret_val2(p_CB, 0x08/*osEventSignal*/, p_CB->waits); +#else + rt_ret_val (p_CB, OS_R_EVT); +#endif + rt_put_prio (&os_rdy, p_CB); + } + } +} + +/*---------------------------------------------------------------------------- + * end of file + *---------------------------------------------------------------------------*/ diff --git a/vendor/cmsis_rtos_rtx/SRC/rt_Event.h b/vendor/cmsis_rtos_rtx/SRC/rt_Event.h new file mode 100644 index 000000000..dd811825d --- /dev/null +++ b/vendor/cmsis_rtos_rtx/SRC/rt_Event.h @@ -0,0 +1,46 @@ +/*---------------------------------------------------------------------------- + * RL-ARM - RTX + *---------------------------------------------------------------------------- + * Name: RT_EVENT.H + * Purpose: Implements waits and wake-ups for event flags + * Rev.: V4.70 + *---------------------------------------------------------------------------- + * + * Copyright (c) 1999-2009 KEIL, 2009-2013 ARM Germany GmbH + * All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * - Neither the name of ARM nor the names of its contributors may be used + * to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + *---------------------------------------------------------------------------*/ + +/* Functions */ +extern OS_RESULT rt_evt_wait (U16 wait_flags, U16 timeout, BOOL and_wait); +extern void rt_evt_set (U16 event_flags, OS_TID task_id); +extern void rt_evt_clr (U16 clear_flags, OS_TID task_id); +extern void isr_evt_set (U16 event_flags, OS_TID task_id); +extern U16 rt_evt_get (void); +extern void rt_evt_psh (P_TCB p_CB, U16 set_flags); + +/*---------------------------------------------------------------------------- + * end of file + *---------------------------------------------------------------------------*/ + diff --git a/vendor/cmsis_rtos_rtx/SRC/rt_HAL_CM.h b/vendor/cmsis_rtos_rtx/SRC/rt_HAL_CM.h new file mode 100644 index 000000000..08ff0a9ff --- /dev/null +++ b/vendor/cmsis_rtos_rtx/SRC/rt_HAL_CM.h @@ -0,0 +1,284 @@ +/*---------------------------------------------------------------------------- + * RL-ARM - RTX + *---------------------------------------------------------------------------- + * Name: RT_HAL_CM.H + * Purpose: Hardware Abstraction Layer for Cortex-M definitions + * Rev.: V4.70 + *---------------------------------------------------------------------------- + * + * Copyright (c) 1999-2009 KEIL, 2009-2013 ARM Germany GmbH + * All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * - Neither the name of ARM nor the names of its contributors may be used + * to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + *---------------------------------------------------------------------------*/ + +/* Definitions */ +#define INITIAL_xPSR 0x01000000 +#define DEMCR_TRCENA 0x01000000 +#define ITM_ITMENA 0x00000001 +#define MAGIC_WORD 0xE25A2EA5 + +#if defined (__CC_ARM) /* ARM Compiler */ + +#if ((__TARGET_ARCH_7_M || __TARGET_ARCH_7E_M) && !NO_EXCLUSIVE_ACCESS) + #define __USE_EXCLUSIVE_ACCESS +#else + #undef __USE_EXCLUSIVE_ACCESS +#endif + +#elif defined (__GNUC__) /* GNU Compiler */ + +#undef __USE_EXCLUSIVE_ACCESS + +#if defined (__CORTEX_M0) +#define __TARGET_ARCH_6S_M 1 +#else +#define __TARGET_ARCH_6S_M 0 +#endif + +#if defined (__VFP_FP__) && !defined(__SOFTFP__) +#define __TARGET_FPU_VFP 1 +#else +#define __TARGET_FPU_VFP 0 +#endif + +#define __inline inline +#define __weak __attribute__((weak)) + +#ifndef __CMSIS_GENERIC + +__attribute__((always_inline)) static inline void __enable_irq(void) +{ + __asm volatile ("cpsie i"); +} + +__attribute__((always_inline)) static inline U32 __disable_irq(void) +{ + U32 result; + + __asm volatile ("mrs %0, primask" : "=r" (result)); + __asm volatile ("cpsid i"); + return(result & 1); +} + +#endif + +__attribute__(( always_inline)) static inline U8 __clz(U32 value) +{ + U8 result; + + __asm volatile ("clz %0, %1" : "=r" (result) : "r" (value)); + return(result); +} + +#elif defined (__ICCARM__) /* IAR Compiler */ + +#undef __USE_EXCLUSIVE_ACCESS + +#if (__CORE__ == __ARM6M__) +#define __TARGET_ARCH_6S_M 1 +#else +#define __TARGET_ARCH_6S_M 0 +#endif + +#if defined __ARMVFP__ +#define __TARGET_FPU_VFP 1 +#else +#define __TARGET_FPU_VFP 0 +#endif + +#define __inline inline + +#ifndef __CMSIS_GENERIC + +static inline void __enable_irq(void) +{ + __asm volatile ("cpsie i"); +} + +static inline U32 __disable_irq(void) +{ + U32 result; + + __asm volatile ("mrs %0, primask" : "=r" (result)); + __asm volatile ("cpsid i"); + return(result & 1); +} + +#endif + +static inline U8 __clz(U32 value) +{ + U8 result; + + __asm volatile ("clz %0, %1" : "=r" (result) : "r" (value)); + return(result); +} + +#endif + +/* NVIC registers */ +#define NVIC_ST_CTRL (*((volatile U32 *)0xE000E010)) +#define NVIC_ST_RELOAD (*((volatile U32 *)0xE000E014)) +#define NVIC_ST_CURRENT (*((volatile U32 *)0xE000E018)) +#define NVIC_ISER ((volatile U32 *)0xE000E100) +#define NVIC_ICER ((volatile U32 *)0xE000E180) +#if (__TARGET_ARCH_6S_M) +#define NVIC_IP ((volatile U32 *)0xE000E400) +#else +#define NVIC_IP ((volatile U8 *)0xE000E400) +#endif +#define NVIC_INT_CTRL (*((volatile U32 *)0xE000ED04)) +#define NVIC_AIR_CTRL (*((volatile U32 *)0xE000ED0C)) +#define NVIC_SYS_PRI2 (*((volatile U32 *)0xE000ED1C)) +#define NVIC_SYS_PRI3 (*((volatile U32 *)0xE000ED20)) + +#define OS_PEND_IRQ() NVIC_INT_CTRL = (1<<28) +#define OS_PENDING ((NVIC_INT_CTRL >> 26) & (1<<2 | 1)) +#define OS_UNPEND(fl) NVIC_INT_CTRL = (*fl = OS_PENDING) << 25 +#define OS_PEND(fl,p) NVIC_INT_CTRL = (fl | p<<2) << 26 +#define OS_LOCK() NVIC_ST_CTRL = 0x0005 +#define OS_UNLOCK() NVIC_ST_CTRL = 0x0007 + +#define OS_X_PENDING ((NVIC_INT_CTRL >> 28) & 1) +#define OS_X_UNPEND(fl) NVIC_INT_CTRL = (*fl = OS_X_PENDING) << 27 +#define OS_X_PEND(fl,p) NVIC_INT_CTRL = (fl | p) << 28 +#if (__TARGET_ARCH_6S_M) +#define OS_X_INIT(n) NVIC_IP[n>>2] |= 0xFF << (8*(n & 0x03)); \ + NVIC_ISER[n>>5] = 1 << (n & 0x1F) +#else +#define OS_X_INIT(n) NVIC_IP[n] = 0xFF; \ + NVIC_ISER[n>>5] = 1 << (n & 0x1F) +#endif +#define OS_X_LOCK(n) NVIC_ICER[n>>5] = 1 << (n & 0x1F) +#define OS_X_UNLOCK(n) NVIC_ISER[n>>5] = 1 << (n & 0x1F) + +/* Core Debug registers */ +#define DEMCR (*((volatile U32 *)0xE000EDFC)) + +/* ITM registers */ +#define ITM_CONTROL (*((volatile U32 *)0xE0000E80)) +#define ITM_ENABLE (*((volatile U32 *)0xE0000E00)) +#define ITM_PORT30_U32 (*((volatile U32 *)0xE0000078)) +#define ITM_PORT31_U32 (*((volatile U32 *)0xE000007C)) +#define ITM_PORT31_U16 (*((volatile U16 *)0xE000007C)) +#define ITM_PORT31_U8 (*((volatile U8 *)0xE000007C)) + +/* Variables */ +extern BIT dbg_msg; + +/* Functions */ +#ifdef __USE_EXCLUSIVE_ACCESS + #define rt_inc(p) while(__strex((__ldrex(p)+1),p)) + #define rt_dec(p) while(__strex((__ldrex(p)-1),p)) +#else + #define rt_inc(p) __disable_irq();(*p)++;__enable_irq(); + #define rt_dec(p) __disable_irq();(*p)--;__enable_irq(); +#endif + +__inline static U32 rt_inc_qi (U32 size, U8 *count, U8 *first) { + U32 cnt,c2; +#ifdef __USE_EXCLUSIVE_ACCESS + do { + if ((cnt = __ldrex(count)) == size) { + __clrex(); + return (cnt); } + } while (__strex(cnt+1, count)); + do { + c2 = (cnt = __ldrex(first)) + 1; + if (c2 == size) c2 = 0; + } while (__strex(c2, first)); +#else + __disable_irq(); + if ((cnt = *count) < size) { + *count = cnt+1; + c2 = (cnt = *first) + 1; + if (c2 == size) c2 = 0; + *first = c2; + } + __enable_irq (); +#endif + return (cnt); +} + +__inline static void rt_systick_init (void) { + NVIC_ST_RELOAD = os_trv; + NVIC_ST_CURRENT = 0; + NVIC_ST_CTRL = 0x0007; + NVIC_SYS_PRI3 |= 0xFF000000; +} + +__inline static U32 rt_systick_val (void) { + return (os_trv - NVIC_ST_CURRENT); +} + +__inline static U32 rt_systick_ovf (void) { + return ((NVIC_INT_CTRL >> 26) & 1); +} + +__inline static void rt_svc_init (void) { +#if !(__TARGET_ARCH_6S_M) + int sh,prigroup; +#endif + NVIC_SYS_PRI3 |= 0x00FF0000; +#if (__TARGET_ARCH_6S_M) + NVIC_SYS_PRI2 |= (NVIC_SYS_PRI3<<(8+1)) & 0xFC000000; +#else + sh = 8 - __clz (~((NVIC_SYS_PRI3 << 8) & 0xFF000000)); + prigroup = ((NVIC_AIR_CTRL >> 8) & 0x07); + if (prigroup >= sh) { + sh = prigroup + 1; + } + NVIC_SYS_PRI2 = ((0xFEFFFFFF << sh) & 0xFF000000) | (NVIC_SYS_PRI2 & 0x00FFFFFF); +#endif +} + +extern void rt_set_PSP (U32 stack); +extern U32 rt_get_PSP (void); +extern void os_set_env (void); +extern void *_alloc_box (void *box_mem); +extern int _free_box (void *box_mem, void *box); + +extern void rt_init_stack (P_TCB p_TCB, FUNCP task_body); +extern void rt_ret_val (P_TCB p_TCB, U32 v0); +extern void rt_ret_val2 (P_TCB p_TCB, U32 v0, U32 v1); + +extern void dbg_init (void); +extern void dbg_task_notify (P_TCB p_tcb, BOOL create); +extern void dbg_task_switch (U32 task_id); + +#ifdef DBG_MSG +#define DBG_INIT() dbg_init() +#define DBG_TASK_NOTIFY(p_tcb,create) if (dbg_msg) dbg_task_notify(p_tcb,create) +#define DBG_TASK_SWITCH(task_id) if (dbg_msg && (os_tsk.new!=os_tsk.run)) \ + dbg_task_switch(task_id) +#else +#define DBG_INIT() +#define DBG_TASK_NOTIFY(p_tcb,create) +#define DBG_TASK_SWITCH(task_id) +#endif + +/*---------------------------------------------------------------------------- + * end of file + *---------------------------------------------------------------------------*/ + diff --git a/vendor/cmsis_rtos_rtx/SRC/rt_List.c b/vendor/cmsis_rtos_rtx/SRC/rt_List.c new file mode 100644 index 000000000..93b561d14 --- /dev/null +++ b/vendor/cmsis_rtos_rtx/SRC/rt_List.c @@ -0,0 +1,320 @@ +/*---------------------------------------------------------------------------- + * RL-ARM - RTX + *---------------------------------------------------------------------------- + * Name: RT_LIST.C + * Purpose: Functions for the management of different lists + * Rev.: V4.70 + *---------------------------------------------------------------------------- + * + * Copyright (c) 1999-2009 KEIL, 2009-2013 ARM Germany GmbH + * All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * - Neither the name of ARM nor the names of its contributors may be used + * to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + *---------------------------------------------------------------------------*/ + +#include "rt_TypeDef.h" +#include "RTX_Config.h" +#include "rt_System.h" +#include "rt_List.h" +#include "rt_Task.h" +#include "rt_Time.h" +#include "rt_HAL_CM.h" + +/*---------------------------------------------------------------------------- + * Global Variables + *---------------------------------------------------------------------------*/ + +/* List head of chained ready tasks */ +struct OS_XCB os_rdy; +/* List head of chained delay tasks */ +struct OS_XCB os_dly; + + +/*---------------------------------------------------------------------------- + * Functions + *---------------------------------------------------------------------------*/ + + +/*--------------------------- rt_put_prio -----------------------------------*/ + +void rt_put_prio (P_XCB p_CB, P_TCB p_task) { + /* Put task identified with "p_task" into list ordered by priority. */ + /* "p_CB" points to head of list; list has always an element at end with */ + /* a priority less than "p_task->prio". */ + P_TCB p_CB2; + U32 prio; + BOOL sem_mbx = __FALSE; + + if (p_CB->cb_type == SCB || p_CB->cb_type == MCB || p_CB->cb_type == MUCB) { + sem_mbx = __TRUE; + } + prio = p_task->prio; + p_CB2 = p_CB->p_lnk; + /* Search for an entry in the list */ + while (p_CB2 != NULL && prio <= p_CB2->prio) { + p_CB = (P_XCB)p_CB2; + p_CB2 = p_CB2->p_lnk; + } + /* Entry found, insert the task into the list */ + p_task->p_lnk = p_CB2; + p_CB->p_lnk = p_task; + if (sem_mbx) { + if (p_CB2 != NULL) { + p_CB2->p_rlnk = p_task; + } + p_task->p_rlnk = (P_TCB)p_CB; + } + else { + p_task->p_rlnk = NULL; + } +} + + +/*--------------------------- rt_get_first ----------------------------------*/ + +P_TCB rt_get_first (P_XCB p_CB) { + /* Get task at head of list: it is the task with highest priority. */ + /* "p_CB" points to head of list. */ + P_TCB p_first; + + p_first = p_CB->p_lnk; + p_CB->p_lnk = p_first->p_lnk; + if (p_CB->cb_type == SCB || p_CB->cb_type == MCB || p_CB->cb_type == MUCB) { + if (p_first->p_lnk != NULL) { + p_first->p_lnk->p_rlnk = (P_TCB)p_CB; + p_first->p_lnk = NULL; + } + p_first->p_rlnk = NULL; + } + else { + p_first->p_lnk = NULL; + } + return (p_first); +} + + +/*--------------------------- rt_put_rdy_first ------------------------------*/ + +void rt_put_rdy_first (P_TCB p_task) { + /* Put task identified with "p_task" at the head of the ready list. The */ + /* task must have at least a priority equal to highest priority in list. */ + p_task->p_lnk = os_rdy.p_lnk; + p_task->p_rlnk = NULL; + os_rdy.p_lnk = p_task; +} + + +/*--------------------------- rt_get_same_rdy_prio --------------------------*/ + +P_TCB rt_get_same_rdy_prio (void) { + /* Remove a task of same priority from ready list if any exists. Other- */ + /* wise return NULL. */ + P_TCB p_first; + + p_first = os_rdy.p_lnk; + if (p_first->prio == os_tsk.run->prio) { + os_rdy.p_lnk = os_rdy.p_lnk->p_lnk; + return (p_first); + } + return (NULL); +} + + +/*--------------------------- rt_resort_prio --------------------------------*/ + +void rt_resort_prio (P_TCB p_task) { + /* Re-sort ordered lists after the priority of 'p_task' has changed. */ + P_TCB p_CB; + + if (p_task->p_rlnk == NULL) { + if (p_task->state == READY) { + /* Task is chained into READY list. */ + p_CB = (P_TCB)&os_rdy; + goto res; + } + } + else { + p_CB = p_task->p_rlnk; + while (p_CB->cb_type == TCB) { + /* Find a header of this task chain list. */ + p_CB = p_CB->p_rlnk; + } +res:rt_rmv_list (p_task); + rt_put_prio ((P_XCB)p_CB, p_task); + } +} + + +/*--------------------------- rt_put_dly ------------------------------------*/ + +void rt_put_dly (P_TCB p_task, U16 delay) { + /* Put a task identified with "p_task" into chained delay wait list using */ + /* a delay value of "delay". */ + P_TCB p; + U32 delta,idelay = delay; + + p = (P_TCB)&os_dly; + if (p->p_dlnk == NULL) { + /* Delay list empty */ + delta = 0; + goto last; + } + delta = os_dly.delta_time; + while (delta < idelay) { + if (p->p_dlnk == NULL) { + /* End of list found */ +last: p_task->p_dlnk = NULL; + p->p_dlnk = p_task; + p_task->p_blnk = p; + p->delta_time = (U16)(idelay - delta); + p_task->delta_time = 0; + return; + } + p = p->p_dlnk; + delta += p->delta_time; + } + /* Right place found */ + p_task->p_dlnk = p->p_dlnk; + p->p_dlnk = p_task; + p_task->p_blnk = p; + if (p_task->p_dlnk != NULL) { + p_task->p_dlnk->p_blnk = p_task; + } + p_task->delta_time = (U16)(delta - idelay); + p->delta_time -= p_task->delta_time; +} + + +/*--------------------------- rt_dec_dly ------------------------------------*/ + +void rt_dec_dly (void) { + /* Decrement delta time of list head: remove tasks having a value of zero.*/ + P_TCB p_rdy; + + if (os_dly.p_dlnk == NULL) { + return; + } + os_dly.delta_time--; + while ((os_dly.delta_time == 0) && (os_dly.p_dlnk != NULL)) { + p_rdy = os_dly.p_dlnk; + if (p_rdy->p_rlnk != NULL) { + /* Task is really enqueued, remove task from semaphore/mailbox */ + /* timeout waiting list. */ + p_rdy->p_rlnk->p_lnk = p_rdy->p_lnk; + if (p_rdy->p_lnk != NULL) { + p_rdy->p_lnk->p_rlnk = p_rdy->p_rlnk; + p_rdy->p_lnk = NULL; + } + p_rdy->p_rlnk = NULL; + } + rt_put_prio (&os_rdy, p_rdy); + os_dly.delta_time = p_rdy->delta_time; + if (p_rdy->state == WAIT_ITV) { + /* Calculate the next time for interval wait. */ + p_rdy->delta_time = p_rdy->interval_time + (U16)os_time; + } + p_rdy->state = READY; + os_dly.p_dlnk = p_rdy->p_dlnk; + if (p_rdy->p_dlnk != NULL) { + p_rdy->p_dlnk->p_blnk = (P_TCB)&os_dly; + p_rdy->p_dlnk = NULL; + } + p_rdy->p_blnk = NULL; + } +} + + +/*--------------------------- rt_rmv_list -----------------------------------*/ + +void rt_rmv_list (P_TCB p_task) { + /* Remove task identified with "p_task" from ready, semaphore or mailbox */ + /* waiting list if enqueued. */ + P_TCB p_b; + + if (p_task->p_rlnk != NULL) { + /* A task is enqueued in semaphore / mailbox waiting list. */ + p_task->p_rlnk->p_lnk = p_task->p_lnk; + if (p_task->p_lnk != NULL) { + p_task->p_lnk->p_rlnk = p_task->p_rlnk; + } + return; + } + + p_b = (P_TCB)&os_rdy; + while (p_b != NULL) { + /* Search the ready list for task "p_task" */ + if (p_b->p_lnk == p_task) { + p_b->p_lnk = p_task->p_lnk; + return; + } + p_b = p_b->p_lnk; + } +} + + +/*--------------------------- rt_rmv_dly ------------------------------------*/ + +void rt_rmv_dly (P_TCB p_task) { + /* Remove task identified with "p_task" from delay list if enqueued. */ + P_TCB p_b; + + p_b = p_task->p_blnk; + if (p_b != NULL) { + /* Task is really enqueued */ + p_b->p_dlnk = p_task->p_dlnk; + if (p_task->p_dlnk != NULL) { + /* 'p_task' is in the middle of list */ + p_b->delta_time += p_task->delta_time; + p_task->p_dlnk->p_blnk = p_b; + p_task->p_dlnk = NULL; + } + else { + /* 'p_task' is at the end of list */ + p_b->delta_time = 0; + } + p_task->p_blnk = NULL; + } +} + + +/*--------------------------- rt_psq_enq ------------------------------------*/ + +void rt_psq_enq (OS_ID entry, U32 arg) { + /* Insert post service request "entry" into ps-queue. */ + U32 idx; + + idx = rt_inc_qi (os_psq->size, &os_psq->count, &os_psq->first); + if (idx < os_psq->size) { + os_psq->q[idx].id = entry; + os_psq->q[idx].arg = arg; + } + else { + os_error (OS_ERR_FIFO_OVF); + } +} + + +/*---------------------------------------------------------------------------- + * end of file + *---------------------------------------------------------------------------*/ + diff --git a/vendor/cmsis_rtos_rtx/SRC/rt_List.h b/vendor/cmsis_rtos_rtx/SRC/rt_List.h new file mode 100644 index 000000000..9be0a980d --- /dev/null +++ b/vendor/cmsis_rtos_rtx/SRC/rt_List.h @@ -0,0 +1,67 @@ +/*---------------------------------------------------------------------------- + * RL-ARM - RTX + *---------------------------------------------------------------------------- + * Name: RT_LIST.H + * Purpose: Functions for the management of different lists + * Rev.: V4.70 + *---------------------------------------------------------------------------- + * + * Copyright (c) 1999-2009 KEIL, 2009-2013 ARM Germany GmbH + * All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * - Neither the name of ARM nor the names of its contributors may be used + * to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + *---------------------------------------------------------------------------*/ + +/* Definitions */ + +/* Values for 'cb_type' */ +#define TCB 0 +#define MCB 1 +#define SCB 2 +#define MUCB 3 +#define HCB 4 + +/* Variables */ +extern struct OS_XCB os_rdy; +extern struct OS_XCB os_dly; + +/* Functions */ +extern void rt_put_prio (P_XCB p_CB, P_TCB p_task); +extern P_TCB rt_get_first (P_XCB p_CB); +extern void rt_put_rdy_first (P_TCB p_task); +extern P_TCB rt_get_same_rdy_prio (void); +extern void rt_resort_prio (P_TCB p_task); +extern void rt_put_dly (P_TCB p_task, U16 delay); +extern void rt_dec_dly (void); +extern void rt_rmv_list (P_TCB p_task); +extern void rt_rmv_dly (P_TCB p_task); +extern void rt_psq_enq (OS_ID entry, U32 arg); + +/* This is a fast macro generating in-line code */ +#define rt_rdy_prio(void) (os_rdy.p_lnk->prio) + + +/*---------------------------------------------------------------------------- + * end of file + *---------------------------------------------------------------------------*/ + diff --git a/vendor/cmsis_rtos_rtx/SRC/rt_Mailbox.c b/vendor/cmsis_rtos_rtx/SRC/rt_Mailbox.c new file mode 100644 index 000000000..5e022dbd8 --- /dev/null +++ b/vendor/cmsis_rtos_rtx/SRC/rt_Mailbox.c @@ -0,0 +1,292 @@ +/*---------------------------------------------------------------------------- + * RL-ARM - RTX + *---------------------------------------------------------------------------- + * Name: RT_MAILBOX.C + * Purpose: Implements waits and wake-ups for mailbox messages + * Rev.: V4.70 + *---------------------------------------------------------------------------- + * + * Copyright (c) 1999-2009 KEIL, 2009-2013 ARM Germany GmbH + * All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * - Neither the name of ARM nor the names of its contributors may be used + * to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + *---------------------------------------------------------------------------*/ + +#include "rt_TypeDef.h" +#include "RTX_Config.h" +#include "rt_System.h" +#include "rt_List.h" +#include "rt_Mailbox.h" +#include "rt_MemBox.h" +#include "rt_Task.h" +#include "rt_HAL_CM.h" + + +/*---------------------------------------------------------------------------- + * Functions + *---------------------------------------------------------------------------*/ + + +/*--------------------------- rt_mbx_init -----------------------------------*/ + +void rt_mbx_init (OS_ID mailbox, U16 mbx_size) { + /* Initialize a mailbox */ + P_MCB p_MCB = mailbox; + + p_MCB->cb_type = MCB; + p_MCB->state = 0; + p_MCB->isr_st = 0; + p_MCB->p_lnk = NULL; + p_MCB->first = 0; + p_MCB->last = 0; + p_MCB->count = 0; + p_MCB->size = (mbx_size + sizeof(void *) - sizeof(struct OS_MCB)) / + (U32)sizeof (void *); +} + + +/*--------------------------- rt_mbx_send -----------------------------------*/ + +OS_RESULT rt_mbx_send (OS_ID mailbox, void *p_msg, U16 timeout) { + /* Send message to a mailbox */ + P_MCB p_MCB = mailbox; + P_TCB p_TCB; + + if ((p_MCB->p_lnk != NULL) && (p_MCB->state == 1)) { + /* A task is waiting for message */ + p_TCB = rt_get_first ((P_XCB)p_MCB); +#ifdef __CMSIS_RTOS + rt_ret_val2(p_TCB, 0x10/*osEventMessage*/, (U32)p_msg); +#else + *p_TCB->msg = p_msg; + rt_ret_val (p_TCB, OS_R_MBX); +#endif + rt_rmv_dly (p_TCB); + rt_dispatch (p_TCB); + } + else { + /* Store message in mailbox queue */ + if (p_MCB->count == p_MCB->size) { + /* No free message entry, wait for one. If message queue is full, */ + /* then no task is waiting for message. The 'p_MCB->p_lnk' list */ + /* pointer can now be reused for send message waits task list. */ + if (timeout == 0) { + return (OS_R_TMO); + } + if (p_MCB->p_lnk != NULL) { + rt_put_prio ((P_XCB)p_MCB, os_tsk.run); + } + else { + p_MCB->p_lnk = os_tsk.run; + os_tsk.run->p_lnk = NULL; + os_tsk.run->p_rlnk = (P_TCB)p_MCB; + /* Task is waiting to send a message */ + p_MCB->state = 2; + } + os_tsk.run->msg = p_msg; + rt_block (timeout, WAIT_MBX); + return (OS_R_TMO); + } + /* Yes, there is a free entry in a mailbox. */ + p_MCB->msg[p_MCB->first] = p_msg; + rt_inc (&p_MCB->count); + if (++p_MCB->first == p_MCB->size) { + p_MCB->first = 0; + } + } + return (OS_R_OK); +} + + +/*--------------------------- rt_mbx_wait -----------------------------------*/ + +OS_RESULT rt_mbx_wait (OS_ID mailbox, void **message, U16 timeout) { + /* Receive a message; possibly wait for it */ + P_MCB p_MCB = mailbox; + P_TCB p_TCB; + + /* If a message is available in the fifo buffer */ + /* remove it from the fifo buffer and return. */ + if (p_MCB->count) { + *message = p_MCB->msg[p_MCB->last]; + if (++p_MCB->last == p_MCB->size) { + p_MCB->last = 0; + } + if ((p_MCB->p_lnk != NULL) && (p_MCB->state == 2)) { + /* A task is waiting to send message */ + p_TCB = rt_get_first ((P_XCB)p_MCB); +#ifdef __CMSIS_RTOS + rt_ret_val(p_TCB, 0/*osOK*/); +#else + rt_ret_val(p_TCB, OS_R_OK); +#endif + p_MCB->msg[p_MCB->first] = p_TCB->msg; + if (++p_MCB->first == p_MCB->size) { + p_MCB->first = 0; + } + rt_rmv_dly (p_TCB); + rt_dispatch (p_TCB); + } + else { + rt_dec (&p_MCB->count); + } + return (OS_R_OK); + } + /* No message available: wait for one */ + if (timeout == 0) { + return (OS_R_TMO); + } + if (p_MCB->p_lnk != NULL) { + rt_put_prio ((P_XCB)p_MCB, os_tsk.run); + } + else { + p_MCB->p_lnk = os_tsk.run; + os_tsk.run->p_lnk = NULL; + os_tsk.run->p_rlnk = (P_TCB)p_MCB; + /* Task is waiting to receive a message */ + p_MCB->state = 1; + } + rt_block(timeout, WAIT_MBX); +#ifndef __CMSIS_RTOS + os_tsk.run->msg = message; +#endif + return (OS_R_TMO); +} + + +/*--------------------------- rt_mbx_check ----------------------------------*/ + +OS_RESULT rt_mbx_check (OS_ID mailbox) { + /* Check for free space in a mailbox. Returns the number of messages */ + /* that can be stored to a mailbox. It returns 0 when mailbox is full. */ + P_MCB p_MCB = mailbox; + + return (p_MCB->size - p_MCB->count); +} + + +/*--------------------------- isr_mbx_send ----------------------------------*/ + +void isr_mbx_send (OS_ID mailbox, void *p_msg) { + /* Same function as "os_mbx_send", but to be called by ISRs. */ + P_MCB p_MCB = mailbox; + + rt_psq_enq (p_MCB, (U32)p_msg); + rt_psh_req (); +} + + +/*--------------------------- isr_mbx_receive -------------------------------*/ + +OS_RESULT isr_mbx_receive (OS_ID mailbox, void **message) { + /* Receive a message in the interrupt function. The interrupt function */ + /* should not wait for a message since this would block the rtx os. */ + P_MCB p_MCB = mailbox; + + if (p_MCB->count) { + /* A message is available in the fifo buffer. */ + *message = p_MCB->msg[p_MCB->last]; + if (p_MCB->state == 2) { + /* A task is locked waiting to send message */ + rt_psq_enq (p_MCB, 0); + rt_psh_req (); + } + rt_dec (&p_MCB->count); + if (++p_MCB->last == p_MCB->size) { + p_MCB->last = 0; + } + return (OS_R_MBX); + } + return (OS_R_OK); +} + + +/*--------------------------- rt_mbx_psh ------------------------------------*/ + +void rt_mbx_psh (P_MCB p_CB, void *p_msg) { + /* Store the message to the mailbox queue or pass it to task directly. */ + P_TCB p_TCB; + void *mem; + + if (p_CB->p_lnk != NULL) switch (p_CB->state) { +#ifdef __CMSIS_RTOS + case 3: + /* Task is waiting to allocate memory, remove it from the waiting list */ + mem = rt_alloc_box(p_msg); + if (mem == NULL) break; + p_TCB = rt_get_first ((P_XCB)p_CB); + rt_ret_val(p_TCB, (U32)mem); + p_TCB->state = READY; + rt_rmv_dly (p_TCB); + rt_put_prio (&os_rdy, p_TCB); + break; +#endif + case 2: + /* Task is waiting to send a message, remove it from the waiting list */ + p_TCB = rt_get_first ((P_XCB)p_CB); +#ifdef __CMSIS_RTOS + rt_ret_val(p_TCB, 0/*osOK*/); +#else + rt_ret_val(p_TCB, OS_R_OK); +#endif + p_CB->msg[p_CB->first] = p_TCB->msg; + rt_inc (&p_CB->count); + if (++p_CB->first == p_CB->size) { + p_CB->first = 0; + } + p_TCB->state = READY; + rt_rmv_dly (p_TCB); + rt_put_prio (&os_rdy, p_TCB); + break; + case 1: + /* Task is waiting for a message, pass the message to the task directly */ + p_TCB = rt_get_first ((P_XCB)p_CB); +#ifdef __CMSIS_RTOS + rt_ret_val2(p_TCB, 0x10/*osEventMessage*/, (U32)p_msg); +#else + *p_TCB->msg = p_msg; + rt_ret_val (p_TCB, OS_R_MBX); +#endif + p_TCB->state = READY; + rt_rmv_dly (p_TCB); + rt_put_prio (&os_rdy, p_TCB); + break; + } else { + /* No task is waiting for a message, store it to the mailbox queue */ + if (p_CB->count < p_CB->size) { + p_CB->msg[p_CB->first] = p_msg; + rt_inc (&p_CB->count); + if (++p_CB->first == p_CB->size) { + p_CB->first = 0; + } + } + else { + os_error (OS_ERR_MBX_OVF); + } + } +} + +/*---------------------------------------------------------------------------- + * end of file + *---------------------------------------------------------------------------*/ + diff --git a/vendor/cmsis_rtos_rtx/SRC/rt_Mailbox.h b/vendor/cmsis_rtos_rtx/SRC/rt_Mailbox.h new file mode 100644 index 000000000..d30c5f0e1 --- /dev/null +++ b/vendor/cmsis_rtos_rtx/SRC/rt_Mailbox.h @@ -0,0 +1,48 @@ +/*---------------------------------------------------------------------------- + * RL-ARM - RTX + *---------------------------------------------------------------------------- + * Name: RT_MAILBOX.H + * Purpose: Implements waits and wake-ups for mailbox messages + * Rev.: V4.70 + *---------------------------------------------------------------------------- + * + * Copyright (c) 1999-2009 KEIL, 2009-2013 ARM Germany GmbH + * All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * - Neither the name of ARM nor the names of its contributors may be used + * to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + *---------------------------------------------------------------------------*/ + +/* Functions */ +extern void rt_mbx_init (OS_ID mailbox, U16 mbx_size); +extern OS_RESULT rt_mbx_send (OS_ID mailbox, void *p_msg, U16 timeout); +extern OS_RESULT rt_mbx_wait (OS_ID mailbox, void **message, U16 timeout); +extern OS_RESULT rt_mbx_check (OS_ID mailbox); +extern void isr_mbx_send (OS_ID mailbox, void *p_msg); +extern OS_RESULT isr_mbx_receive (OS_ID mailbox, void **message); +extern void rt_mbx_psh (P_MCB p_CB, void *p_msg); + + +/*---------------------------------------------------------------------------- + * end of file + *---------------------------------------------------------------------------*/ + diff --git a/vendor/cmsis_rtos_rtx/SRC/rt_MemBox.c b/vendor/cmsis_rtos_rtx/SRC/rt_MemBox.c new file mode 100644 index 000000000..a9038adda --- /dev/null +++ b/vendor/cmsis_rtos_rtx/SRC/rt_MemBox.c @@ -0,0 +1,166 @@ +/*---------------------------------------------------------------------------- + * RL-ARM - RTX + *---------------------------------------------------------------------------- + * Name: RT_MEMBOX.C + * Purpose: Interface functions for fixed memory block management system + * Rev.: V4.70 + *---------------------------------------------------------------------------- + * + * Copyright (c) 1999-2009 KEIL, 2009-2013 ARM Germany GmbH + * All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * - Neither the name of ARM nor the names of its contributors may be used + * to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + *---------------------------------------------------------------------------*/ + +#include "rt_TypeDef.h" +#include "RTX_Config.h" +#include "rt_System.h" +#include "rt_MemBox.h" +#include "rt_HAL_CM.h" + +/*---------------------------------------------------------------------------- + * Global Functions + *---------------------------------------------------------------------------*/ + + +/*--------------------------- _init_box -------------------------------------*/ + +int _init_box (void *box_mem, U32 box_size, U32 blk_size) { + /* Initialize memory block system, returns 0 if OK, 1 if fails. */ + void *end; + void *blk; + void *next; + U32 sizeof_bm; + + /* Create memory structure. */ + if (blk_size & BOX_ALIGN_8) { + /* Memory blocks 8-byte aligned. */ + blk_size = ((blk_size & ~BOX_ALIGN_8) + 7) & ~7; + sizeof_bm = (sizeof (struct OS_BM) + 7) & ~7; + } + else { + /* Memory blocks 4-byte aligned. */ + blk_size = (blk_size + 3) & ~3; + sizeof_bm = sizeof (struct OS_BM); + } + if (blk_size == 0) { + return (1); + } + if ((blk_size + sizeof_bm) > box_size) { + return (1); + } + /* Create a Memory structure. */ + blk = ((U8 *) box_mem) + sizeof_bm; + ((P_BM) box_mem)->free = blk; + end = ((U8 *) box_mem) + box_size; + ((P_BM) box_mem)->end = end; + ((P_BM) box_mem)->blk_size = blk_size; + + /* Link all free blocks using offsets. */ + end = ((U8 *) end) - blk_size; + while (1) { + next = ((U8 *) blk) + blk_size; + if (next > end) break; + *((void **)blk) = next; + blk = next; + } + /* end marker */ + *((void **)blk) = 0; + return (0); +} + +/*--------------------------- rt_alloc_box ----------------------------------*/ + +void *rt_alloc_box (void *box_mem) { + /* Allocate a memory block and return start address. */ + void **free; +#ifndef __USE_EXCLUSIVE_ACCESS + int irq_dis; + + irq_dis = __disable_irq (); + free = ((P_BM) box_mem)->free; + if (free) { + ((P_BM) box_mem)->free = *free; + } + if (!irq_dis) __enable_irq (); +#else + do { + if ((free = (void **)__ldrex(&((P_BM) box_mem)->free)) == 0) { + __clrex(); + break; + } + } while (__strex((U32)*free, &((P_BM) box_mem)->free)); +#endif + return (free); +} + + +/*--------------------------- _calloc_box -----------------------------------*/ + +void *_calloc_box (void *box_mem) { + /* Allocate a 0-initialized memory block and return start address. */ + void *free; + U32 *p; + U32 i; + + free = _alloc_box (box_mem); + if (free) { + p = free; + for (i = ((P_BM) box_mem)->blk_size; i; i -= 4) { + *p = 0; + p++; + } + } + return (free); +} + + +/*--------------------------- rt_free_box -----------------------------------*/ + +int rt_free_box (void *box_mem, void *box) { + /* Free a memory block, returns 0 if OK, 1 if box does not belong to box_mem */ +#ifndef __USE_EXCLUSIVE_ACCESS + int irq_dis; +#endif + + if (box < box_mem || box >= ((P_BM) box_mem)->end) { + return (1); + } + +#ifndef __USE_EXCLUSIVE_ACCESS + irq_dis = __disable_irq (); + *((void **)box) = ((P_BM) box_mem)->free; + ((P_BM) box_mem)->free = box; + if (!irq_dis) __enable_irq (); +#else + do { + *((void **)box) = (void *)__ldrex(&((P_BM) box_mem)->free); + } while (__strex ((U32)box, &((P_BM) box_mem)->free)); +#endif + return (0); +} + +/*---------------------------------------------------------------------------- + * end of file + *---------------------------------------------------------------------------*/ + diff --git a/vendor/cmsis_rtos_rtx/SRC/rt_MemBox.h b/vendor/cmsis_rtos_rtx/SRC/rt_MemBox.h new file mode 100644 index 000000000..5d27899a2 --- /dev/null +++ b/vendor/cmsis_rtos_rtx/SRC/rt_MemBox.h @@ -0,0 +1,46 @@ +/*---------------------------------------------------------------------------- + * RL-ARM - RTX + *---------------------------------------------------------------------------- + * Name: RT_MEMBOX.H + * Purpose: Interface functions for fixed memory block management system + * Rev.: V4.70 + *---------------------------------------------------------------------------- + * + * Copyright (c) 1999-2009 KEIL, 2009-2013 ARM Germany GmbH + * All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * - Neither the name of ARM nor the names of its contributors may be used + * to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + *---------------------------------------------------------------------------*/ + +/* Functions */ +#define rt_init_box _init_box +#define rt_calloc_box _calloc_box +extern int _init_box (void *box_mem, U32 box_size, U32 blk_size); +extern void *rt_alloc_box (void *box_mem); +extern void * _calloc_box (void *box_mem); +extern int rt_free_box (void *box_mem, void *box); + +/*---------------------------------------------------------------------------- + * end of file + *---------------------------------------------------------------------------*/ + diff --git a/vendor/cmsis_rtos_rtx/SRC/rt_Memory.c b/vendor/cmsis_rtos_rtx/SRC/rt_Memory.c new file mode 100644 index 000000000..fe3c7b735 --- /dev/null +++ b/vendor/cmsis_rtos_rtx/SRC/rt_Memory.c @@ -0,0 +1,140 @@ +/*---------------------------------------------------------------------------- + * RL-ARM - RTX + *---------------------------------------------------------------------------- + * Name: RT_MEMORY.C + * Purpose: Interface functions for Dynamic Memory Management System + * Rev.: V4.70 + *---------------------------------------------------------------------------- + * + * Copyright (c) 1999-2009 KEIL, 2009-2013 ARM Germany GmbH + * All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * - Neither the name of ARM nor the names of its contributors may be used + * to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + *---------------------------------------------------------------------------*/ + +#include "rt_TypeDef.h" +#include "rt_Memory.h" + + +/* Functions */ + +// Initialize Dynamic Memory pool +// Parameters: +// pool: Pointer to memory pool +// size: Size of memory pool in bytes +// Return: 0 - OK, 1 - Error + +int rt_init_mem (void *pool, U32 size) { + MEMP *ptr; + + if ((pool == NULL) || (size < sizeof(MEMP))) return (1); + + ptr = (MEMP *)pool; + ptr->next = (MEMP *)((U32)pool + size - sizeof(MEMP *)); + ptr->next->next = NULL; + ptr->len = 0; + + return (0); +} + +// Allocate Memory from Memory pool +// Parameters: +// pool: Pointer to memory pool +// size: Size of memory in bytes to allocate +// Return: Pointer to allocated memory + +void *rt_alloc_mem (void *pool, U32 size) { + MEMP *p, *p_search, *p_new; + U32 hole_size; + + if ((pool == NULL) || (size == 0)) return NULL; + + /* Add header offset to 'size' */ + size += sizeof(MEMP); + /* Make sure that block is 4-byte aligned */ + size = (size + 3) & ~3; + + p_search = (MEMP *)pool; + while (1) { + hole_size = (U32)p_search->next - (U32)p_search; + hole_size -= p_search->len; + /* Check if hole size is big enough */ + if (hole_size >= size) break; + p_search = p_search->next; + if (p_search->next == NULL) { + /* Failed, we are at the end of the list */ + return NULL; + } + } + + if (p_search->len == 0) { + /* No block is allocated, set the Length of the first element */ + p_search->len = size; + p = (MEMP *)(((U32)p_search) + sizeof(MEMP)); + } else { + /* Insert new list element into the memory list */ + p_new = (MEMP *)((U32)p_search + p_search->len); + p_new->next = p_search->next; + p_new->len = size; + p_search->next = p_new; + p = (MEMP *)(((U32)p_new) + sizeof(MEMP)); + } + + return (p); +} + +// Free Memory and return it to Memory pool +// Parameters: +// pool: Pointer to memory pool +// mem: Pointer to memory to free +// Return: 0 - OK, 1 - Error + +int rt_free_mem (void *pool, void *mem) { + MEMP *p_search, *p_prev, *p_return; + + if ((pool == NULL) || (mem == NULL)) return (1); + + p_return = (MEMP *)((U32)mem - sizeof(MEMP)); + + /* Set list header */ + p_prev = NULL; + p_search = (MEMP *)pool; + while (p_search != p_return) { + p_prev = p_search; + p_search = p_search->next; + if (p_search == NULL) { + /* Valid Memory block not found */ + return (1); + } + } + + if (p_prev == NULL) { + /* First block to be released, only set length to 0 */ + p_search->len = 0; + } else { + /* Discard block from chain list */ + p_prev->next = p_search->next; + } + + return (0); +} diff --git a/vendor/cmsis_rtos_rtx/SRC/rt_Memory.h b/vendor/cmsis_rtos_rtx/SRC/rt_Memory.h new file mode 100644 index 000000000..b4dce3956 --- /dev/null +++ b/vendor/cmsis_rtos_rtx/SRC/rt_Memory.h @@ -0,0 +1,44 @@ +/*---------------------------------------------------------------------------- + * RL-ARM - RTX + *---------------------------------------------------------------------------- + * Name: RT_MEMORY.H + * Purpose: Interface functions for Dynamic Memory Management System + * Rev.: V4.70 + *---------------------------------------------------------------------------- + * + * Copyright (c) 1999-2009 KEIL, 2009-2013 ARM Germany GmbH + * All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * - Neither the name of ARM nor the names of its contributors may be used + * to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + *---------------------------------------------------------------------------*/ + +/* Types */ +typedef struct mem { /* << Memory Pool management struct >> */ + struct mem *next; /* Next Memory Block in the list */ + U32 len; /* Length of data block */ +} MEMP; + +/* Functions */ +extern int rt_init_mem (void *pool, U32 size); +extern void *rt_alloc_mem (void *pool, U32 size); +extern int rt_free_mem (void *pool, void *mem); diff --git a/vendor/cmsis_rtos_rtx/SRC/rt_Mutex.c b/vendor/cmsis_rtos_rtx/SRC/rt_Mutex.c new file mode 100644 index 000000000..508da4501 --- /dev/null +++ b/vendor/cmsis_rtos_rtx/SRC/rt_Mutex.c @@ -0,0 +1,197 @@ +/*---------------------------------------------------------------------------- + * RL-ARM - RTX + *---------------------------------------------------------------------------- + * Name: RT_MUTEX.C + * Purpose: Implements mutex synchronization objects + * Rev.: V4.70 + *---------------------------------------------------------------------------- + * + * Copyright (c) 1999-2009 KEIL, 2009-2013 ARM Germany GmbH + * All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * - Neither the name of ARM nor the names of its contributors may be used + * to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + *---------------------------------------------------------------------------*/ + +#include "rt_TypeDef.h" +#include "RTX_Config.h" +#include "rt_List.h" +#include "rt_Task.h" +#include "rt_Mutex.h" +#include "rt_HAL_CM.h" + + +/*---------------------------------------------------------------------------- + * Functions + *---------------------------------------------------------------------------*/ + + +/*--------------------------- rt_mut_init -----------------------------------*/ + +void rt_mut_init (OS_ID mutex) { + /* Initialize a mutex object */ + P_MUCB p_MCB = mutex; + + p_MCB->cb_type = MUCB; + p_MCB->prio = 0; + p_MCB->level = 0; + p_MCB->p_lnk = NULL; + p_MCB->owner = NULL; +} + + +/*--------------------------- rt_mut_delete ---------------------------------*/ + +#ifdef __CMSIS_RTOS +OS_RESULT rt_mut_delete (OS_ID mutex) { + /* Delete a mutex object */ + P_MUCB p_MCB = mutex; + P_TCB p_TCB; + + /* Restore owner task's priority. */ + if (p_MCB->level != 0) { + p_MCB->owner->prio = p_MCB->prio; + if (p_MCB->owner != os_tsk.run) { + rt_resort_prio (p_MCB->owner); + } + } + + while (p_MCB->p_lnk != NULL) { + /* A task is waiting for mutex. */ + p_TCB = rt_get_first ((P_XCB)p_MCB); + rt_ret_val(p_TCB, 0/*osOK*/); + rt_rmv_dly(p_TCB); + p_TCB->state = READY; + rt_put_prio (&os_rdy, p_TCB); + } + + if (os_rdy.p_lnk && (os_rdy.p_lnk->prio > os_tsk.run->prio)) { + /* preempt running task */ + rt_put_prio (&os_rdy, os_tsk.run); + os_tsk.run->state = READY; + rt_dispatch (NULL); + } + + p_MCB->cb_type = 0; + + return (OS_R_OK); +} +#endif + + +/*--------------------------- rt_mut_release --------------------------------*/ + +OS_RESULT rt_mut_release (OS_ID mutex) { + /* Release a mutex object */ + P_MUCB p_MCB = mutex; + P_TCB p_TCB; + + if (p_MCB->level == 0 || p_MCB->owner != os_tsk.run) { + /* Unbalanced mutex release or task is not the owner */ + return (OS_R_NOK); + } + if (--p_MCB->level != 0) { + return (OS_R_OK); + } + /* Restore owner task's priority. */ + os_tsk.run->prio = p_MCB->prio; + if (p_MCB->p_lnk != NULL) { + /* A task is waiting for mutex. */ + p_TCB = rt_get_first ((P_XCB)p_MCB); +#ifdef __CMSIS_RTOS + rt_ret_val(p_TCB, 0/*osOK*/); +#else + rt_ret_val(p_TCB, OS_R_MUT); +#endif + rt_rmv_dly (p_TCB); + /* A waiting task becomes the owner of this mutex. */ + p_MCB->level = 1; + p_MCB->owner = p_TCB; + p_MCB->prio = p_TCB->prio; + /* Priority inversion, check which task continues. */ + if (os_tsk.run->prio >= rt_rdy_prio()) { + rt_dispatch (p_TCB); + } + else { + /* Ready task has higher priority than running task. */ + rt_put_prio (&os_rdy, os_tsk.run); + rt_put_prio (&os_rdy, p_TCB); + os_tsk.run->state = READY; + p_TCB->state = READY; + rt_dispatch (NULL); + } + } + else { + /* Check if own priority raised by priority inversion. */ + if (rt_rdy_prio() > os_tsk.run->prio) { + rt_put_prio (&os_rdy, os_tsk.run); + os_tsk.run->state = READY; + rt_dispatch (NULL); + } + } + return (OS_R_OK); +} + + +/*--------------------------- rt_mut_wait -----------------------------------*/ + +OS_RESULT rt_mut_wait (OS_ID mutex, U16 timeout) { + /* Wait for a mutex, continue when mutex is free. */ + P_MUCB p_MCB = mutex; + + if (p_MCB->level == 0) { + p_MCB->owner = os_tsk.run; + p_MCB->prio = os_tsk.run->prio; + goto inc; + } + if (p_MCB->owner == os_tsk.run) { + /* OK, running task is the owner of this mutex. */ +inc:p_MCB->level++; + return (OS_R_OK); + } + /* Mutex owned by another task, wait until released. */ + if (timeout == 0) { + return (OS_R_TMO); + } + /* Raise the owner task priority if lower than current priority. */ + /* This priority inversion is called priority inheritance. */ + if (p_MCB->prio < os_tsk.run->prio) { + p_MCB->owner->prio = os_tsk.run->prio; + rt_resort_prio (p_MCB->owner); + } + if (p_MCB->p_lnk != NULL) { + rt_put_prio ((P_XCB)p_MCB, os_tsk.run); + } + else { + p_MCB->p_lnk = os_tsk.run; + os_tsk.run->p_lnk = NULL; + os_tsk.run->p_rlnk = (P_TCB)p_MCB; + } + rt_block(timeout, WAIT_MUT); + return (OS_R_TMO); +} + + +/*---------------------------------------------------------------------------- + * end of file + *---------------------------------------------------------------------------*/ + diff --git a/vendor/cmsis_rtos_rtx/SRC/rt_Mutex.h b/vendor/cmsis_rtos_rtx/SRC/rt_Mutex.h new file mode 100644 index 000000000..3e3679b38 --- /dev/null +++ b/vendor/cmsis_rtos_rtx/SRC/rt_Mutex.h @@ -0,0 +1,44 @@ +/*---------------------------------------------------------------------------- + * RL-ARM - RTX + *---------------------------------------------------------------------------- + * Name: RT_MUTEX.H + * Purpose: Implements mutex synchronization objects + * Rev.: V4.70 + *---------------------------------------------------------------------------- + * + * Copyright (c) 1999-2009 KEIL, 2009-2013 ARM Germany GmbH + * All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * - Neither the name of ARM nor the names of its contributors may be used + * to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + *---------------------------------------------------------------------------*/ + +/* Functions */ +extern void rt_mut_init (OS_ID mutex); +extern OS_RESULT rt_mut_delete (OS_ID mutex); +extern OS_RESULT rt_mut_release (OS_ID mutex); +extern OS_RESULT rt_mut_wait (OS_ID mutex, U16 timeout); + +/*---------------------------------------------------------------------------- + * end of file + *---------------------------------------------------------------------------*/ + diff --git a/vendor/cmsis_rtos_rtx/SRC/rt_Robin.c b/vendor/cmsis_rtos_rtx/SRC/rt_Robin.c new file mode 100644 index 000000000..8eda6cfcc --- /dev/null +++ b/vendor/cmsis_rtos_rtx/SRC/rt_Robin.c @@ -0,0 +1,84 @@ +/*---------------------------------------------------------------------------- + * RL-ARM - RTX + *---------------------------------------------------------------------------- + * Name: RT_ROBIN.C + * Purpose: Round Robin Task switching + * Rev.: V4.70 + *---------------------------------------------------------------------------- + * + * Copyright (c) 1999-2009 KEIL, 2009-2013 ARM Germany GmbH + * All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * - Neither the name of ARM nor the names of its contributors may be used + * to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + *---------------------------------------------------------------------------*/ + +#include "rt_TypeDef.h" +#include "RTX_Config.h" +#include "rt_List.h" +#include "rt_Task.h" +#include "rt_Time.h" +#include "rt_Robin.h" +#include "rt_HAL_CM.h" + +/*---------------------------------------------------------------------------- + * Global Variables + *---------------------------------------------------------------------------*/ + +struct OS_ROBIN os_robin; + + +/*---------------------------------------------------------------------------- + * Global Functions + *---------------------------------------------------------------------------*/ + +/*--------------------------- rt_init_robin ---------------------------------*/ + +__weak void rt_init_robin (void) { + /* Initialize Round Robin variables. */ + os_robin.task = NULL; + os_robin.tout = (U16)os_rrobin; +} + +/*--------------------------- rt_chk_robin ----------------------------------*/ + +__weak void rt_chk_robin (void) { + /* Check if Round Robin timeout expired and switch to the next ready task.*/ + P_TCB p_new; + + if (os_robin.task != os_rdy.p_lnk) { + /* New task was suspended, reset Round Robin timeout. */ + os_robin.task = os_rdy.p_lnk; + os_robin.time = (U16)os_time + os_robin.tout - 1; + } + if (os_robin.time == (U16)os_time) { + /* Round Robin timeout has expired, swap Robin tasks. */ + os_robin.task = NULL; + p_new = rt_get_first (&os_rdy); + rt_put_prio ((P_XCB)&os_rdy, p_new); + } +} + +/*---------------------------------------------------------------------------- + * end of file + *---------------------------------------------------------------------------*/ + diff --git a/vendor/cmsis_rtos_rtx/SRC/rt_Robin.h b/vendor/cmsis_rtos_rtx/SRC/rt_Robin.h new file mode 100644 index 000000000..c2b1a71db --- /dev/null +++ b/vendor/cmsis_rtos_rtx/SRC/rt_Robin.h @@ -0,0 +1,45 @@ +/*---------------------------------------------------------------------------- + * RL-ARM - RTX + *---------------------------------------------------------------------------- + * Name: RT_ROBIN.H + * Purpose: Round Robin Task switching definitions + * Rev.: V4.70 + *---------------------------------------------------------------------------- + * + * Copyright (c) 1999-2009 KEIL, 2009-2013 ARM Germany GmbH + * All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * - Neither the name of ARM nor the names of its contributors may be used + * to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + *---------------------------------------------------------------------------*/ + +/* Variables */ +extern struct OS_ROBIN os_robin; + +/* Functions */ +extern void rt_init_robin (void); +extern void rt_chk_robin (void); + +/*---------------------------------------------------------------------------- + * end of file + *---------------------------------------------------------------------------*/ + diff --git a/vendor/cmsis_rtos_rtx/SRC/rt_Semaphore.c b/vendor/cmsis_rtos_rtx/SRC/rt_Semaphore.c new file mode 100644 index 000000000..1e56664b8 --- /dev/null +++ b/vendor/cmsis_rtos_rtx/SRC/rt_Semaphore.c @@ -0,0 +1,183 @@ +/*---------------------------------------------------------------------------- + * RL-ARM - RTX + *---------------------------------------------------------------------------- + * Name: RT_SEMAPHORE.C + * Purpose: Implements binary and counting semaphores + * Rev.: V4.70 + *---------------------------------------------------------------------------- + * + * Copyright (c) 1999-2009 KEIL, 2009-2013 ARM Germany GmbH + * All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * - Neither the name of ARM nor the names of its contributors may be used + * to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + *---------------------------------------------------------------------------*/ + +#include "rt_TypeDef.h" +#include "RTX_Config.h" +#include "rt_System.h" +#include "rt_List.h" +#include "rt_Task.h" +#include "rt_Semaphore.h" +#include "rt_HAL_CM.h" + + +/*---------------------------------------------------------------------------- + * Functions + *---------------------------------------------------------------------------*/ + + +/*--------------------------- rt_sem_init -----------------------------------*/ + +void rt_sem_init (OS_ID semaphore, U16 token_count) { + /* Initialize a semaphore */ + P_SCB p_SCB = semaphore; + + p_SCB->cb_type = SCB; + p_SCB->p_lnk = NULL; + p_SCB->tokens = token_count; +} + + +/*--------------------------- rt_sem_delete ---------------------------------*/ + +#ifdef __CMSIS_RTOS +OS_RESULT rt_sem_delete (OS_ID semaphore) { + /* Delete semaphore */ + P_SCB p_SCB = semaphore; + P_TCB p_TCB; + + while (p_SCB->p_lnk != NULL) { + /* A task is waiting for token */ + p_TCB = rt_get_first ((P_XCB)p_SCB); + rt_ret_val(p_TCB, 0); + rt_rmv_dly(p_TCB); + p_TCB->state = READY; + rt_put_prio (&os_rdy, p_TCB); + } + + if (os_rdy.p_lnk && (os_rdy.p_lnk->prio > os_tsk.run->prio)) { + /* preempt running task */ + rt_put_prio (&os_rdy, os_tsk.run); + os_tsk.run->state = READY; + rt_dispatch (NULL); + } + + p_SCB->cb_type = 0; + + return (OS_R_OK); +} +#endif + + +/*--------------------------- rt_sem_send -----------------------------------*/ + +OS_RESULT rt_sem_send (OS_ID semaphore) { + /* Return a token to semaphore */ + P_SCB p_SCB = semaphore; + P_TCB p_TCB; + + if (p_SCB->p_lnk != NULL) { + /* A task is waiting for token */ + p_TCB = rt_get_first ((P_XCB)p_SCB); +#ifdef __CMSIS_RTOS + rt_ret_val(p_TCB, 1); +#else + rt_ret_val(p_TCB, OS_R_SEM); +#endif + rt_rmv_dly (p_TCB); + rt_dispatch (p_TCB); + } + else { + /* Store token. */ + p_SCB->tokens++; + } + return (OS_R_OK); +} + + +/*--------------------------- rt_sem_wait -----------------------------------*/ + +OS_RESULT rt_sem_wait (OS_ID semaphore, U16 timeout) { + /* Obtain a token; possibly wait for it */ + P_SCB p_SCB = semaphore; + + if (p_SCB->tokens) { + p_SCB->tokens--; + return (OS_R_OK); + } + /* No token available: wait for one */ + if (timeout == 0) { + return (OS_R_TMO); + } + if (p_SCB->p_lnk != NULL) { + rt_put_prio ((P_XCB)p_SCB, os_tsk.run); + } + else { + p_SCB->p_lnk = os_tsk.run; + os_tsk.run->p_lnk = NULL; + os_tsk.run->p_rlnk = (P_TCB)p_SCB; + } + rt_block(timeout, WAIT_SEM); + return (OS_R_TMO); +} + + +/*--------------------------- isr_sem_send ----------------------------------*/ + +void isr_sem_send (OS_ID semaphore) { + /* Same function as "os_sem"send", but to be called by ISRs */ + P_SCB p_SCB = semaphore; + + rt_psq_enq (p_SCB, 0); + rt_psh_req (); +} + + +/*--------------------------- rt_sem_psh ------------------------------------*/ + +void rt_sem_psh (P_SCB p_CB) { + /* Check if task has to be waken up */ + P_TCB p_TCB; + + if (p_CB->p_lnk != NULL) { + /* A task is waiting for token */ + p_TCB = rt_get_first ((P_XCB)p_CB); + rt_rmv_dly (p_TCB); + p_TCB->state = READY; +#ifdef __CMSIS_RTOS + rt_ret_val(p_TCB, 1); +#else + rt_ret_val(p_TCB, OS_R_SEM); +#endif + rt_put_prio (&os_rdy, p_TCB); + } + else { + /* Store token */ + p_CB->tokens++; + } +} + +/*---------------------------------------------------------------------------- + * end of file + *---------------------------------------------------------------------------*/ + diff --git a/vendor/cmsis_rtos_rtx/SRC/rt_Semaphore.h b/vendor/cmsis_rtos_rtx/SRC/rt_Semaphore.h new file mode 100644 index 000000000..876f93819 --- /dev/null +++ b/vendor/cmsis_rtos_rtx/SRC/rt_Semaphore.h @@ -0,0 +1,46 @@ +/*---------------------------------------------------------------------------- + * RL-ARM - RTX + *---------------------------------------------------------------------------- + * Name: RT_SEMAPHORE.H + * Purpose: Implements binary and counting semaphores + * Rev.: V4.70 + *---------------------------------------------------------------------------- + * + * Copyright (c) 1999-2009 KEIL, 2009-2013 ARM Germany GmbH + * All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * - Neither the name of ARM nor the names of its contributors may be used + * to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + *---------------------------------------------------------------------------*/ + +/* Functions */ +extern void rt_sem_init (OS_ID semaphore, U16 token_count); +extern OS_RESULT rt_sem_delete(OS_ID semaphore); +extern OS_RESULT rt_sem_send (OS_ID semaphore); +extern OS_RESULT rt_sem_wait (OS_ID semaphore, U16 timeout); +extern void isr_sem_send (OS_ID semaphore); +extern void rt_sem_psh (P_SCB p_CB); + +/*---------------------------------------------------------------------------- + * end of file + *---------------------------------------------------------------------------*/ + diff --git a/vendor/cmsis_rtos_rtx/SRC/rt_System.c b/vendor/cmsis_rtos_rtx/SRC/rt_System.c new file mode 100644 index 000000000..8b3ae7085 --- /dev/null +++ b/vendor/cmsis_rtos_rtx/SRC/rt_System.c @@ -0,0 +1,312 @@ +/*---------------------------------------------------------------------------- + * RL-ARM - RTX + *---------------------------------------------------------------------------- + * Name: RT_SYSTEM.C + * Purpose: System Task Manager + * Rev.: V4.70 + *---------------------------------------------------------------------------- + * + * Copyright (c) 1999-2009 KEIL, 2009-2013 ARM Germany GmbH + * All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * - Neither the name of ARM nor the names of its contributors may be used + * to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + *---------------------------------------------------------------------------*/ + +#include "rt_TypeDef.h" +#include "RTX_Config.h" +#include "rt_Task.h" +#include "rt_System.h" +#include "rt_Event.h" +#include "rt_List.h" +#include "rt_Mailbox.h" +#include "rt_Semaphore.h" +#include "rt_Time.h" +#include "rt_Timer.h" +#include "rt_Robin.h" +#include "rt_HAL_CM.h" + +/*---------------------------------------------------------------------------- + * Global Variables + *---------------------------------------------------------------------------*/ + +int os_tick_irqn; + +/*---------------------------------------------------------------------------- + * Local Variables + *---------------------------------------------------------------------------*/ + +static volatile BIT os_lock; +static volatile BIT os_psh_flag; +static U8 pend_flags; + +/*---------------------------------------------------------------------------- + * Global Functions + *---------------------------------------------------------------------------*/ + +#if defined (__CC_ARM) +__asm void $$RTX$$version (void) { + /* Export a version number symbol for a version control. */ + + EXPORT __RL_RTX_VER + +__RL_RTX_VER EQU 0x450 +} +#endif + + +/*--------------------------- rt_suspend ------------------------------------*/ + +U32 rt_suspend (void) { + /* Suspend OS scheduler */ + U32 delta = 0xFFFF; + + rt_tsk_lock(); + + if (os_dly.p_dlnk) { + delta = os_dly.delta_time; + } +#ifndef __CMSIS_RTOS + if (os_tmr.next) { + if (os_tmr.tcnt < delta) delta = os_tmr.tcnt; + } +#endif + + return (delta); +} + + +/*--------------------------- rt_resume -------------------------------------*/ + +void rt_resume (U32 sleep_time) { + /* Resume OS scheduler after suspend */ + P_TCB next; + U32 delta; + + os_tsk.run->state = READY; + rt_put_rdy_first (os_tsk.run); + + os_robin.task = NULL; + + /* Update delays. */ + if (os_dly.p_dlnk) { + delta = sleep_time; + if (delta >= os_dly.delta_time) { + delta -= os_dly.delta_time; + os_time += os_dly.delta_time; + os_dly.delta_time = 1; + while (os_dly.p_dlnk) { + rt_dec_dly(); + if (delta == 0) break; + delta--; + os_time++; + } + } else { + os_time += delta; + os_dly.delta_time -= delta; + } + } else { + os_time += sleep_time; + } + +#ifndef __CMSIS_RTOS + /* Check the user timers. */ + if (os_tmr.next) { + delta = sleep_time; + if (delta >= os_tmr.tcnt) { + delta -= os_tmr.tcnt; + os_tmr.tcnt = 1; + while (os_tmr.next) { + rt_tmr_tick(); + if (delta == 0) break; + delta--; + } + } else { + os_tmr.tcnt -= delta; + } + } +#endif + + /* Switch back to highest ready task */ + next = rt_get_first (&os_rdy); + rt_switch_req (next); + + rt_tsk_unlock(); +} + + +/*--------------------------- rt_tsk_lock -----------------------------------*/ + +void rt_tsk_lock (void) { + /* Prevent task switching by locking out scheduler */ + if (os_tick_irqn < 0) { + OS_LOCK(); + os_lock = __TRUE; + OS_UNPEND (&pend_flags); + } else { + OS_X_LOCK(os_tick_irqn); + os_lock = __TRUE; + OS_X_UNPEND (&pend_flags); + } +} + + +/*--------------------------- rt_tsk_unlock ---------------------------------*/ + +void rt_tsk_unlock (void) { + /* Unlock scheduler and re-enable task switching */ + if (os_tick_irqn < 0) { + OS_UNLOCK(); + os_lock = __FALSE; + OS_PEND (pend_flags, os_psh_flag); + os_psh_flag = __FALSE; + } else { + OS_X_UNLOCK(os_tick_irqn); + os_lock = __FALSE; + OS_X_PEND (pend_flags, os_psh_flag); + os_psh_flag = __FALSE; + } +} + + +/*--------------------------- rt_psh_req ------------------------------------*/ + +void rt_psh_req (void) { + /* Initiate a post service handling request if required. */ + if (os_lock == __FALSE) { + OS_PEND_IRQ (); + } + else { + os_psh_flag = __TRUE; + } +} + + +/*--------------------------- rt_pop_req ------------------------------------*/ + +void rt_pop_req (void) { + /* Process an ISR post service requests. */ + struct OS_XCB *p_CB; + P_TCB next; + U32 idx; + + os_tsk.run->state = READY; + rt_put_rdy_first (os_tsk.run); + + idx = os_psq->last; + while (os_psq->count) { + p_CB = os_psq->q[idx].id; + if (p_CB->cb_type == TCB) { + /* Is of TCB type */ + rt_evt_psh ((P_TCB)p_CB, (U16)os_psq->q[idx].arg); + } + else if (p_CB->cb_type == MCB) { + /* Is of MCB type */ + rt_mbx_psh ((P_MCB)p_CB, (void *)os_psq->q[idx].arg); + } + else { + /* Must be of SCB type */ + rt_sem_psh ((P_SCB)p_CB); + } + if (++idx == os_psq->size) idx = 0; + rt_dec (&os_psq->count); + } + os_psq->last = idx; + + next = rt_get_first (&os_rdy); + rt_switch_req (next); +} + + +/*--------------------------- os_tick_init ----------------------------------*/ + +__weak int os_tick_init (void) { + /* Initialize SysTick timer as system tick timer. */ + rt_systick_init(); + return (-1); /* Return IRQ number of SysTick timer */ +} + +/*--------------------------- os_tick_val -----------------------------------*/ + +__weak U32 os_tick_val (void) { + /* Get SysTick timer current value (0 .. OS_TRV). */ + return rt_systick_val(); +} + +/*--------------------------- os_tick_ovf -----------------------------------*/ + +__weak U32 os_tick_ovf (void) { + /* Get SysTick timer overflow flag */ + return rt_systick_ovf(); +} + +/*--------------------------- os_tick_irqack --------------------------------*/ + +__weak void os_tick_irqack (void) { + /* Acknowledge timer interrupt. */ +} + + +/*--------------------------- rt_systick ------------------------------------*/ + +extern void sysTimerTick(void); + +void rt_systick (void) { + /* Check for system clock update, suspend running task. */ + P_TCB next; + + os_tsk.run->state = READY; + rt_put_rdy_first (os_tsk.run); + + /* Check Round Robin timeout. */ + rt_chk_robin (); + + /* Update delays. */ + os_time++; + rt_dec_dly (); + + /* Check the user timers. */ +#ifdef __CMSIS_RTOS + sysTimerTick(); +#else + rt_tmr_tick (); +#endif + + /* Switch back to highest ready task */ + next = rt_get_first (&os_rdy); + rt_switch_req (next); +} + +/*--------------------------- rt_stk_check ----------------------------------*/ + +__weak void rt_stk_check (void) { + /* Check for stack overflow. */ + if ((os_tsk.run->tsk_stack < (U32)os_tsk.run->stack) || + (os_tsk.run->stack[0] != MAGIC_WORD)) { + os_error (OS_ERR_STK_OVF); + } +} + +/*---------------------------------------------------------------------------- + * end of file + *---------------------------------------------------------------------------*/ + diff --git a/vendor/cmsis_rtos_rtx/SRC/rt_System.h b/vendor/cmsis_rtos_rtx/SRC/rt_System.h new file mode 100644 index 000000000..9046eff70 --- /dev/null +++ b/vendor/cmsis_rtos_rtx/SRC/rt_System.h @@ -0,0 +1,52 @@ +/*---------------------------------------------------------------------------- + * RL-ARM - RTX + *---------------------------------------------------------------------------- + * Name: RT_SYSTEM.H + * Purpose: System Task Manager definitions + * Rev.: V4.70 + *---------------------------------------------------------------------------- + * + * Copyright (c) 1999-2009 KEIL, 2009-2013 ARM Germany GmbH + * All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * - Neither the name of ARM nor the names of its contributors may be used + * to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + *---------------------------------------------------------------------------*/ + +/* Variables */ +#define os_psq ((P_PSQ)&os_fifo) +extern int os_tick_irqn; + +/* Functions */ +extern U32 rt_suspend (void); +extern void rt_resume (U32 sleep_time); +extern void rt_tsk_lock (void); +extern void rt_tsk_unlock (void); +extern void rt_psh_req (void); +extern void rt_pop_req (void); +extern void rt_systick (void); +extern void rt_stk_check (void); + +/*---------------------------------------------------------------------------- + * end of file + *---------------------------------------------------------------------------*/ + diff --git a/vendor/cmsis_rtos_rtx/SRC/rt_Task.c b/vendor/cmsis_rtos_rtx/SRC/rt_Task.c new file mode 100644 index 000000000..07cb952ed --- /dev/null +++ b/vendor/cmsis_rtos_rtx/SRC/rt_Task.c @@ -0,0 +1,368 @@ +/*---------------------------------------------------------------------------- + * RL-ARM - RTX + *---------------------------------------------------------------------------- + * Name: RT_TASK.C + * Purpose: Task functions and system start up. + * Rev.: V4.70 + *---------------------------------------------------------------------------- + * + * Copyright (c) 1999-2009 KEIL, 2009-2013 ARM Germany GmbH + * All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * - Neither the name of ARM nor the names of its contributors may be used + * to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + *---------------------------------------------------------------------------*/ + +#include "rt_TypeDef.h" +#include "RTX_Config.h" +#include "rt_System.h" +#include "rt_Task.h" +#include "rt_List.h" +#include "rt_MemBox.h" +#include "rt_Robin.h" +#include "rt_HAL_CM.h" + +/*---------------------------------------------------------------------------- + * Global Variables + *---------------------------------------------------------------------------*/ + +/* Running and next task info. */ +struct OS_TSK os_tsk; + +/* Task Control Blocks of idle demon */ +struct OS_TCB os_idle_TCB; + + +/*---------------------------------------------------------------------------- + * Local Functions + *---------------------------------------------------------------------------*/ + +static OS_TID rt_get_TID (void) { + U32 tid; + + for (tid = 1; tid <= os_maxtaskrun; tid++) { + if (os_active_TCB[tid-1] == NULL) { + return ((OS_TID)tid); + } + } + return (0); +} + + +/*--------------------------- rt_init_context -------------------------------*/ + +static void rt_init_context (P_TCB p_TCB, U8 priority, FUNCP task_body) { + /* Initialize general part of the Task Control Block. */ + p_TCB->cb_type = TCB; + p_TCB->state = READY; + p_TCB->prio = priority; + p_TCB->p_lnk = NULL; + p_TCB->p_rlnk = NULL; + p_TCB->p_dlnk = NULL; + p_TCB->p_blnk = NULL; + p_TCB->delta_time = 0; + p_TCB->interval_time = 0; + p_TCB->events = 0; + p_TCB->waits = 0; + p_TCB->stack_frame = 0; + + if (p_TCB->priv_stack == 0) { + /* Allocate the memory space for the stack. */ + p_TCB->stack = rt_alloc_box (mp_stk); + } + rt_init_stack (p_TCB, task_body); +} + + +/*--------------------------- rt_switch_req ---------------------------------*/ + +void rt_switch_req (P_TCB p_new) { + /* Switch to next task (identified by "p_new"). */ + os_tsk.new = p_new; + p_new->state = RUNNING; + DBG_TASK_SWITCH(p_new->task_id); +} + + +/*--------------------------- rt_dispatch -----------------------------------*/ + +void rt_dispatch (P_TCB next_TCB) { + /* Dispatch next task if any identified or dispatch highest ready task */ + /* "next_TCB" identifies a task to run or has value NULL (=no next task) */ + if (next_TCB == NULL) { + /* Running task was blocked: continue with highest ready task */ + next_TCB = rt_get_first (&os_rdy); + rt_switch_req (next_TCB); + } + else { + /* Check which task continues */ + if (next_TCB->prio > os_tsk.run->prio) { + /* preempt running task */ + rt_put_rdy_first (os_tsk.run); + os_tsk.run->state = READY; + rt_switch_req (next_TCB); + } + else { + /* put next task into ready list, no task switch takes place */ + next_TCB->state = READY; + rt_put_prio (&os_rdy, next_TCB); + } + } +} + + +/*--------------------------- rt_block --------------------------------------*/ + +void rt_block (U16 timeout, U8 block_state) { + /* Block running task and choose next ready task. */ + /* "timeout" sets a time-out value or is 0xffff (=no time-out). */ + /* "block_state" defines the appropriate task state */ + P_TCB next_TCB; + + if (timeout) { + if (timeout < 0xffff) { + rt_put_dly (os_tsk.run, timeout); + } + os_tsk.run->state = block_state; + next_TCB = rt_get_first (&os_rdy); + rt_switch_req (next_TCB); + } +} + + +/*--------------------------- rt_tsk_pass -----------------------------------*/ + +void rt_tsk_pass (void) { + /* Allow tasks of same priority level to run cooperatively.*/ + P_TCB p_new; + + p_new = rt_get_same_rdy_prio(); + if (p_new != NULL) { + rt_put_prio ((P_XCB)&os_rdy, os_tsk.run); + os_tsk.run->state = READY; + rt_switch_req (p_new); + } +} + + +/*--------------------------- rt_tsk_self -----------------------------------*/ + +OS_TID rt_tsk_self (void) { + /* Return own task identifier value. */ + if (os_tsk.run == NULL) { + return (0); + } + return (os_tsk.run->task_id); +} + + +/*--------------------------- rt_tsk_prio -----------------------------------*/ + +OS_RESULT rt_tsk_prio (OS_TID task_id, U8 new_prio) { + /* Change execution priority of a task to "new_prio". */ + P_TCB p_task; + + if (task_id == 0) { + /* Change execution priority of calling task. */ + os_tsk.run->prio = new_prio; +run:if (rt_rdy_prio() > new_prio) { + rt_put_prio (&os_rdy, os_tsk.run); + os_tsk.run->state = READY; + rt_dispatch (NULL); + } + return (OS_R_OK); + } + + /* Find the task in the "os_active_TCB" array. */ + if (task_id > os_maxtaskrun || os_active_TCB[task_id-1] == NULL) { + /* Task with "task_id" not found or not started. */ + return (OS_R_NOK); + } + p_task = os_active_TCB[task_id-1]; + p_task->prio = new_prio; + if (p_task == os_tsk.run) { + goto run; + } + rt_resort_prio (p_task); + if (p_task->state == READY) { + /* Task enqueued in a ready list. */ + p_task = rt_get_first (&os_rdy); + rt_dispatch (p_task); + } + return (OS_R_OK); +} + + +/*--------------------------- rt_tsk_create ---------------------------------*/ + +OS_TID rt_tsk_create (FUNCP task, U32 prio_stksz, void *stk, void *argv) { + /* Start a new task declared with "task". */ + P_TCB task_context; + U32 i; + + /* Priority 0 is reserved for idle task! */ + if ((prio_stksz & 0xFF) == 0) { + prio_stksz += 1; + } + task_context = rt_alloc_box (mp_tcb); + if (task_context == NULL) { + return (0); + } + /* If "size != 0" use a private user provided stack. */ + task_context->stack = stk; + task_context->priv_stack = prio_stksz >> 8; + /* Pass parameter 'argv' to 'rt_init_context' */ + task_context->msg = argv; + /* For 'size == 0' system allocates the user stack from the memory pool. */ + rt_init_context (task_context, prio_stksz & 0xFF, task); + + /* Find a free entry in 'os_active_TCB' table. */ + i = rt_get_TID (); + os_active_TCB[i-1] = task_context; + task_context->task_id = i; + DBG_TASK_NOTIFY(task_context, __TRUE); + rt_dispatch (task_context); + return ((OS_TID)i); +} + + +/*--------------------------- rt_tsk_delete ---------------------------------*/ + +OS_RESULT rt_tsk_delete (OS_TID task_id) { + /* Terminate the task identified with "task_id". */ + P_TCB task_context; + + if (task_id == 0 || task_id == os_tsk.run->task_id) { + /* Terminate itself. */ + os_tsk.run->state = INACTIVE; + os_tsk.run->tsk_stack = rt_get_PSP (); + rt_stk_check (); + os_active_TCB[os_tsk.run->task_id-1] = NULL; + rt_free_box (mp_stk, os_tsk.run->stack); + os_tsk.run->stack = NULL; + DBG_TASK_NOTIFY(os_tsk.run, __FALSE); + rt_free_box (mp_tcb, os_tsk.run); + os_tsk.run = NULL; + rt_dispatch (NULL); + /* The program should never come to this point. */ + } + else { + /* Find the task in the "os_active_TCB" array. */ + if (task_id > os_maxtaskrun || os_active_TCB[task_id-1] == NULL) { + /* Task with "task_id" not found or not started. */ + return (OS_R_NOK); + } + task_context = os_active_TCB[task_id-1]; + rt_rmv_list (task_context); + rt_rmv_dly (task_context); + os_active_TCB[task_id-1] = NULL; + rt_free_box (mp_stk, task_context->stack); + task_context->stack = NULL; + DBG_TASK_NOTIFY(task_context, __FALSE); + rt_free_box (mp_tcb, task_context); + } + return (OS_R_OK); +} + + +/*--------------------------- rt_sys_init -----------------------------------*/ + +#ifdef __CMSIS_RTOS +void rt_sys_init (void) { +#else +void rt_sys_init (FUNCP first_task, U32 prio_stksz, void *stk) { +#endif + /* Initialize system and start up task declared with "first_task". */ + U32 i; + + DBG_INIT(); + + /* Initialize dynamic memory and task TCB pointers to NULL. */ + for (i = 0; i < os_maxtaskrun; i++) { + os_active_TCB[i] = NULL; + } + rt_init_box (&mp_tcb, mp_tcb_size, sizeof(struct OS_TCB)); + rt_init_box (&mp_stk, mp_stk_size, BOX_ALIGN_8 | (U16)(os_stackinfo)); + rt_init_box ((U32 *)m_tmr, mp_tmr_size, sizeof(struct OS_TMR)); + + /* Set up TCB of idle demon */ + os_idle_TCB.task_id = 255; + os_idle_TCB.priv_stack = 0; + rt_init_context (&os_idle_TCB, 0, os_idle_demon); + + /* Set up ready list: initially empty */ + os_rdy.cb_type = HCB; + os_rdy.p_lnk = NULL; + /* Set up delay list: initially empty */ + os_dly.cb_type = HCB; + os_dly.p_dlnk = NULL; + os_dly.p_blnk = NULL; + os_dly.delta_time = 0; + + /* Fix SP and systemvariables to assume idle task is running */ + /* Transform main program into idle task by assuming idle TCB */ +#ifndef __CMSIS_RTOS + rt_set_PSP (os_idle_TCB.tsk_stack+32); +#endif + os_tsk.run = &os_idle_TCB; + os_tsk.run->state = RUNNING; + + /* Initialize ps queue */ + os_psq->first = 0; + os_psq->last = 0; + os_psq->size = os_fifo_size; + + rt_init_robin (); + + /* Intitialize SVC and PendSV */ + rt_svc_init (); + +#ifndef __CMSIS_RTOS + /* Intitialize and start system clock timer */ + os_tick_irqn = os_tick_init (); + if (os_tick_irqn >= 0) { + OS_X_INIT(os_tick_irqn); + } + + /* Start up first user task before entering the endless loop */ + rt_tsk_create (first_task, prio_stksz, stk, NULL); +#endif +} + + +/*--------------------------- rt_sys_start ----------------------------------*/ + +#ifdef __CMSIS_RTOS +void rt_sys_start (void) { + /* Start system */ + + /* Intitialize and start system clock timer */ + os_tick_irqn = os_tick_init (); + if (os_tick_irqn >= 0) { + OS_X_INIT(os_tick_irqn); + } +} +#endif + +/*---------------------------------------------------------------------------- + * end of file + *---------------------------------------------------------------------------*/ diff --git a/vendor/cmsis_rtos_rtx/SRC/rt_Task.h b/vendor/cmsis_rtos_rtx/SRC/rt_Task.h new file mode 100644 index 000000000..4f9aafc09 --- /dev/null +++ b/vendor/cmsis_rtos_rtx/SRC/rt_Task.h @@ -0,0 +1,87 @@ +/*---------------------------------------------------------------------------- + * RL-ARM - RTX + *---------------------------------------------------------------------------- + * Name: RT_TASK.H + * Purpose: Task functions and system start up. + * Rev.: V4.70 + *---------------------------------------------------------------------------- + * + * Copyright (c) 1999-2009 KEIL, 2009-2013 ARM Germany GmbH + * All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * - Neither the name of ARM nor the names of its contributors may be used + * to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + *---------------------------------------------------------------------------*/ + +/* Definitions */ + +/* Values for 'state' */ +#define INACTIVE 0 +#define READY 1 +#define RUNNING 2 +#define WAIT_DLY 3 +#define WAIT_ITV 4 +#define WAIT_OR 5 +#define WAIT_AND 6 +#define WAIT_SEM 7 +#define WAIT_MBX 8 +#define WAIT_MUT 9 + +/* Return codes */ +#define OS_R_TMO 0x01 +#define OS_R_EVT 0x02 +#define OS_R_SEM 0x03 +#define OS_R_MBX 0x04 +#define OS_R_MUT 0x05 + +#define OS_R_OK 0x00 +#define OS_R_NOK 0xff + +/* Variables */ +extern struct OS_TSK os_tsk; +extern struct OS_TCB os_idle_TCB; + +/* Functions */ +extern void rt_switch_req (P_TCB p_new); +extern void rt_dispatch (P_TCB next_TCB); +extern void rt_block (U16 timeout, U8 block_state); +extern void rt_tsk_pass (void); +extern OS_TID rt_tsk_self (void); +extern OS_RESULT rt_tsk_prio (OS_TID task_id, U8 new_prio); +extern OS_TID rt_tsk_create (FUNCP task, U32 prio_stksz, void *stk, void *argv); +extern OS_RESULT rt_tsk_delete (OS_TID task_id); +#ifdef __CMSIS_RTOS +extern void rt_sys_init (void); +extern void rt_sys_start (void); +#else +extern void rt_sys_init (FUNCP first_task, U32 prio_stksz, void *stk); +#endif + +/*---------------------------------------------------------------------------- + * end of file + *---------------------------------------------------------------------------*/ + + + + + + diff --git a/vendor/cmsis_rtos_rtx/SRC/rt_Time.c b/vendor/cmsis_rtos_rtx/SRC/rt_Time.c new file mode 100644 index 000000000..a45c0698c --- /dev/null +++ b/vendor/cmsis_rtos_rtx/SRC/rt_Time.c @@ -0,0 +1,94 @@ +/*---------------------------------------------------------------------------- + * RL-ARM - RTX + *---------------------------------------------------------------------------- + * Name: RT_TIME.C + * Purpose: Delay and interval wait functions + * Rev.: V4.70 + *---------------------------------------------------------------------------- + * + * Copyright (c) 1999-2009 KEIL, 2009-2013 ARM Germany GmbH + * All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * - Neither the name of ARM nor the names of its contributors may be used + * to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + *---------------------------------------------------------------------------*/ + +#include "rt_TypeDef.h" +#include "RTX_Config.h" +#include "rt_Task.h" +#include "rt_Time.h" + +/*---------------------------------------------------------------------------- + * Global Variables + *---------------------------------------------------------------------------*/ + +/* Free running system tick counter */ +U32 os_time; + + +/*---------------------------------------------------------------------------- + * Functions + *---------------------------------------------------------------------------*/ + + +/*--------------------------- rt_time_get -----------------------------------*/ + +U32 rt_time_get (void) { + /* Get system time tick */ + return (os_time); +} + + +/*--------------------------- rt_dly_wait -----------------------------------*/ + +void rt_dly_wait (U16 delay_time) { + /* Delay task by "delay_time" */ + rt_block (delay_time, WAIT_DLY); +} + + +/*--------------------------- rt_itv_set ------------------------------------*/ + +void rt_itv_set (U16 interval_time) { + /* Set interval length and define start of first interval */ + os_tsk.run->interval_time = interval_time; + os_tsk.run->delta_time = interval_time + (U16)os_time; +} + + +/*--------------------------- rt_itv_wait -----------------------------------*/ + +void rt_itv_wait (void) { + /* Wait for interval end and define start of next one */ + U16 delta; + + delta = os_tsk.run->delta_time - (U16)os_time; + os_tsk.run->delta_time += os_tsk.run->interval_time; + if ((delta & 0x8000) == 0) { + rt_block (delta, WAIT_ITV); + } +} + +/*---------------------------------------------------------------------------- + * end of file + *---------------------------------------------------------------------------*/ + diff --git a/vendor/cmsis_rtos_rtx/SRC/rt_Time.h b/vendor/cmsis_rtos_rtx/SRC/rt_Time.h new file mode 100644 index 000000000..65b6953c9 --- /dev/null +++ b/vendor/cmsis_rtos_rtx/SRC/rt_Time.h @@ -0,0 +1,47 @@ +/*---------------------------------------------------------------------------- + * RL-ARM - RTX + *---------------------------------------------------------------------------- + * Name: RT_TIME.H + * Purpose: Delay and interval wait functions definitions + * Rev.: V4.70 + *---------------------------------------------------------------------------- + * + * Copyright (c) 1999-2009 KEIL, 2009-2013 ARM Germany GmbH + * All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * - Neither the name of ARM nor the names of its contributors may be used + * to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + *---------------------------------------------------------------------------*/ + +/* Variables */ +extern U32 os_time; + +/* Functions */ +extern U32 rt_time_get (void); +extern void rt_dly_wait (U16 delay_time); +extern void rt_itv_set (U16 interval_time); +extern void rt_itv_wait (void); + +/*---------------------------------------------------------------------------- + * end of file + *---------------------------------------------------------------------------*/ + diff --git a/vendor/cmsis_rtos_rtx/SRC/rt_Timer.c b/vendor/cmsis_rtos_rtx/SRC/rt_Timer.c new file mode 100644 index 000000000..f878cbcc2 --- /dev/null +++ b/vendor/cmsis_rtos_rtx/SRC/rt_Timer.c @@ -0,0 +1,129 @@ +/*---------------------------------------------------------------------------- + * RL-ARM - RTX + *---------------------------------------------------------------------------- + * Name: RT_TIMER.C + * Purpose: User timer functions + * Rev.: V4.70 + *---------------------------------------------------------------------------- + * + * Copyright (c) 1999-2009 KEIL, 2009-2013 ARM Germany GmbH + * All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * - Neither the name of ARM nor the names of its contributors may be used + * to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + *---------------------------------------------------------------------------*/ + +#include "rt_TypeDef.h" +#include "RTX_Config.h" +#include "rt_Timer.h" +#include "rt_MemBox.h" + + +/*---------------------------------------------------------------------------- + * Global Variables + *---------------------------------------------------------------------------*/ + +/* User Timer list pointer */ +struct OS_XTMR os_tmr; + +/*---------------------------------------------------------------------------- + * Functions + *---------------------------------------------------------------------------*/ + +/*--------------------------- rt_tmr_tick -----------------------------------*/ + +void rt_tmr_tick (void) { + /* Decrement delta count of timer list head. Timers having the value of */ + /* zero are removed from the list and the callback function is called. */ + P_TMR p; + + if (os_tmr.next == NULL) { + return; + } + os_tmr.tcnt--; + while (os_tmr.tcnt == 0 && (p = os_tmr.next) != NULL) { + /* Call a user provided function to handle an elapsed timer */ + os_tmr_call (p->info); + os_tmr.tcnt = p->tcnt; + os_tmr.next = p->next; + rt_free_box ((U32 *)m_tmr, p); + } +} + +/*--------------------------- rt_tmr_create ---------------------------------*/ + +OS_ID rt_tmr_create (U16 tcnt, U16 info) { + /* Create an user timer and put it into the chained timer list using */ + /* a timeout count value of "tcnt". User parameter "info" is used as a */ + /* parameter for the user provided callback function "os_tmr_call ()". */ + P_TMR p_tmr, p; + U32 delta,itcnt = tcnt; + + if (tcnt == 0 || m_tmr == NULL) { + return (NULL); + } + p_tmr = rt_alloc_box ((U32 *)m_tmr); + if (!p_tmr) { + return (NULL); + } + p_tmr->info = info; + p = (P_TMR)&os_tmr; + delta = p->tcnt; + while (delta < itcnt && p->next != NULL) { + p = p->next; + delta += p->tcnt; + } + /* Right place found, insert timer into the list */ + p_tmr->next = p->next; + p_tmr->tcnt = (U16)(delta - itcnt); + p->next = p_tmr; + p->tcnt -= p_tmr->tcnt; + return (p_tmr); +} + +/*--------------------------- rt_tmr_kill -----------------------------------*/ + +OS_ID rt_tmr_kill (OS_ID timer) { + /* Remove user timer from the chained timer list. */ + P_TMR p, p_tmr; + + p_tmr = (P_TMR)timer; + p = (P_TMR)&os_tmr; + /* Search timer list for requested timer */ + while (p->next != p_tmr) { + if (p->next == NULL) { + /* Failed, "timer" is not in the timer list */ + return (p_tmr); + } + p = p->next; + } + /* Timer was found, remove it from the list */ + p->next = p_tmr->next; + p->tcnt += p_tmr->tcnt; + rt_free_box ((U32 *)m_tmr, p_tmr); + /* Timer killed */ + return (NULL); +} + +/*---------------------------------------------------------------------------- + * end of file + *---------------------------------------------------------------------------*/ diff --git a/vendor/cmsis_rtos_rtx/SRC/rt_Timer.h b/vendor/cmsis_rtos_rtx/SRC/rt_Timer.h new file mode 100644 index 000000000..55f5605c5 --- /dev/null +++ b/vendor/cmsis_rtos_rtx/SRC/rt_Timer.h @@ -0,0 +1,46 @@ +/*---------------------------------------------------------------------------- + * RL-ARM - RTX + *---------------------------------------------------------------------------- + * Name: RT_TIMER.H + * Purpose: User timer functions + * Rev.: V4.70 + *---------------------------------------------------------------------------- + * + * Copyright (c) 1999-2009 KEIL, 2009-2013 ARM Germany GmbH + * All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * - Neither the name of ARM nor the names of its contributors may be used + * to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + *---------------------------------------------------------------------------*/ + +/* Variables */ +extern struct OS_XTMR os_tmr; + +/* Functions */ +extern void rt_tmr_tick (void); +extern OS_ID rt_tmr_create (U16 tcnt, U16 info); +extern OS_ID rt_tmr_kill (OS_ID timer); + +/*---------------------------------------------------------------------------- + * end of file + *---------------------------------------------------------------------------*/ + diff --git a/vendor/cmsis_rtos_rtx/SRC/rt_TypeDef.h b/vendor/cmsis_rtos_rtx/SRC/rt_TypeDef.h new file mode 100644 index 000000000..086c82b95 --- /dev/null +++ b/vendor/cmsis_rtos_rtx/SRC/rt_TypeDef.h @@ -0,0 +1,166 @@ +/*---------------------------------------------------------------------------- + * RL-ARM - RTX + *---------------------------------------------------------------------------- + * Name: RT_TYPEDEF.H + * Purpose: Type Definitions + * Rev.: V4.70 + *---------------------------------------------------------------------------- + * + * Copyright (c) 1999-2009 KEIL, 2009-2013 ARM Germany GmbH + * All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * - Neither the name of ARM nor the names of its contributors may be used + * to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + *---------------------------------------------------------------------------*/ + +/* Types */ +typedef char S8; +typedef unsigned char U8; +typedef short S16; +typedef unsigned short U16; +typedef int S32; +typedef unsigned int U32; +typedef long long S64; +typedef unsigned long long U64; +typedef unsigned char BIT; +typedef unsigned int BOOL; +typedef void (*FUNCP)(void); + +typedef U32 OS_TID; +typedef void *OS_ID; +typedef U32 OS_RESULT; + +typedef struct OS_TCB { + /* General part: identical for all implementations. */ + U8 cb_type; /* Control Block Type */ + U8 state; /* Task state */ + U8 prio; /* Execution priority */ + U8 task_id; /* Task ID value for optimized TCB access */ + struct OS_TCB *p_lnk; /* Link pointer for ready/sem. wait list */ + struct OS_TCB *p_rlnk; /* Link pointer for sem./mbx lst backwards */ + struct OS_TCB *p_dlnk; /* Link pointer for delay list */ + struct OS_TCB *p_blnk; /* Link pointer for delay list backwards */ + U16 delta_time; /* Time until time out */ + U16 interval_time; /* Time interval for periodic waits */ + U16 events; /* Event flags */ + U16 waits; /* Wait flags */ + void **msg; /* Direct message passing when task waits */ + + /* Hardware dependant part: specific for CM processor */ + U8 stack_frame; /* Stack frame: 0=Basic, 1=Extended */ + U8 reserved; + U16 priv_stack; /* Private stack size, 0= system assigned */ + U32 tsk_stack; /* Current task Stack pointer (R13) */ + U32 *stack; /* Pointer to Task Stack memory block */ + + /* Task entry point used for uVision debugger */ + FUNCP ptask; /* Task entry address */ +} *P_TCB; +#define TCB_STACKF 32 /* 'stack_frame' offset */ +#define TCB_TSTACK 36 /* 'tsk_stack' offset */ + +typedef struct OS_PSFE { /* Post Service Fifo Entry */ + void *id; /* Object Identification */ + U32 arg; /* Object Argument */ +} *P_PSFE; + +typedef struct OS_PSQ { /* Post Service Queue */ + U8 first; /* FIFO Head Index */ + U8 last; /* FIFO Tail Index */ + U8 count; /* Number of stored items in FIFO */ + U8 size; /* FIFO Size */ + struct OS_PSFE q[1]; /* FIFO Content */ +} *P_PSQ; + +typedef struct OS_TSK { + P_TCB run; /* Current running task */ + P_TCB new; /* Scheduled task to run */ +} *P_TSK; + +typedef struct OS_ROBIN { /* Round Robin Control */ + P_TCB task; /* Round Robin task */ + U16 time; /* Round Robin switch time */ + U16 tout; /* Round Robin timeout */ +} *P_ROBIN; + +typedef struct OS_XCB { + U8 cb_type; /* Control Block Type */ + struct OS_TCB *p_lnk; /* Link pointer for ready/sem. wait list */ + struct OS_TCB *p_rlnk; /* Link pointer for sem./mbx lst backwards */ + struct OS_TCB *p_dlnk; /* Link pointer for delay list */ + struct OS_TCB *p_blnk; /* Link pointer for delay list backwards */ + U16 delta_time; /* Time until time out */ +} *P_XCB; + +typedef struct OS_MCB { + U8 cb_type; /* Control Block Type */ + U8 state; /* State flag variable */ + U8 isr_st; /* State flag variable for isr functions */ + struct OS_TCB *p_lnk; /* Chain of tasks waiting for message */ + U16 first; /* Index of the message list begin */ + U16 last; /* Index of the message list end */ + U16 count; /* Actual number of stored messages */ + U16 size; /* Maximum number of stored messages */ + void *msg[1]; /* FIFO for Message pointers 1st element */ +} *P_MCB; + +typedef struct OS_SCB { + U8 cb_type; /* Control Block Type */ + U8 mask; /* Semaphore token mask */ + U16 tokens; /* Semaphore tokens */ + struct OS_TCB *p_lnk; /* Chain of tasks waiting for tokens */ +} *P_SCB; + +typedef struct OS_MUCB { + U8 cb_type; /* Control Block Type */ + U8 prio; /* Owner task default priority */ + U16 level; /* Call nesting level */ + struct OS_TCB *p_lnk; /* Chain of tasks waiting for mutex */ + struct OS_TCB *owner; /* Mutex owner task */ +} *P_MUCB; + +typedef struct OS_XTMR { + struct OS_TMR *next; + U16 tcnt; +} *P_XTMR; + +typedef struct OS_TMR { + struct OS_TMR *next; /* Link pointer to Next timer */ + U16 tcnt; /* Timer delay count */ + U16 info; /* User defined call info */ +} *P_TMR; + +typedef struct OS_BM { + void *free; /* Pointer to first free memory block */ + void *end; /* Pointer to memory block end */ + U32 blk_size; /* Memory block size */ +} *P_BM; + +/* Definitions */ +#define __TRUE 1 +#define __FALSE 0 +#define NULL ((void *) 0) + +/*---------------------------------------------------------------------------- + * end of file + *---------------------------------------------------------------------------*/ +