Преглед изворни кода

收到电机关机指令后切换波特率,方便程序升级;CDL地址为0xFA

Ye Jin пре 1 година
родитељ
комит
f2918e326d

+ 1763 - 0
MOTINOVA_CDL_App/Drivers/CMSIS/Include/core_cm3.h~RF8bddd853.TMP

@@ -0,0 +1,1763 @@
+/**************************************************************************//**
+ * @file     core_cm3.h
+ * @brief    CMSIS Cortex-M3 Core Peripheral Access Layer Header File
+ * @version  V4.30
+ * @date     20. October 2015
+ ******************************************************************************/
+/* Copyright (c) 2009 - 2015 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.
+   ---------------------------------------------------------------------------*/
+
+
+#if   defined ( __ICCARM__ )
+ #pragma system_include         /* treat file as system include file for MISRA check */
+#elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
+  #pragma clang system_header   /* treat file as system include file */
+#endif
+
+#ifndef __CORE_CM3_H_GENERIC
+#define __CORE_CM3_H_GENERIC
+
+#include <stdint.h>
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+/**
+  \page CMSIS_MISRA_Exceptions  MISRA-C:2004 Compliance Exceptions
+  CMSIS violates the following MISRA-C:2004 rules:
+
+   \li Required Rule 8.5, object/function definition in header file.<br>
+     Function definitions in header files are used to allow 'inlining'.
+
+   \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.<br>
+     Unions are used for effective representation of core registers.
+
+   \li Advisory Rule 19.7, Function-like macro defined.<br>
+     Function-like macros are used to allow more efficient code.
+ */
+
+
+/*******************************************************************************
+ *                 CMSIS definitions
+ ******************************************************************************/
+/**
+  \ingroup Cortex_M3
+  @{
+ */
+
+/*  CMSIS CM3 definitions */
+#define __CM3_CMSIS_VERSION_MAIN  (0x04U)                                      /*!< [31:16] CMSIS HAL main version */
+#define __CM3_CMSIS_VERSION_SUB   (0x1EU)                                      /*!< [15:0]  CMSIS HAL sub version */
+#define __CM3_CMSIS_VERSION       ((__CM3_CMSIS_VERSION_MAIN << 16U) | \
+                                    __CM3_CMSIS_VERSION_SUB           )        /*!< CMSIS HAL version number */
+
+#define __CORTEX_M                (0x03U)                                      /*!< Cortex-M Core */
+
+
+#if   defined ( __CC_ARM )
+  #define __ASM            __asm                                      /*!< asm keyword for ARM Compiler */
+  #define __INLINE         __inline                                   /*!< inline keyword for ARM Compiler */
+  #define __STATIC_INLINE  static __inline
+
+#elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
+  #define __ASM            __asm                                      /*!< asm keyword for ARM Compiler */
+  #define __INLINE         __inline                                   /*!< inline keyword for ARM Compiler */
+  #define __STATIC_INLINE  static __inline
+
+#elif defined ( __GNUC__ )
+  #define __ASM            __asm                                      /*!< asm keyword for GNU Compiler */
+  #define __INLINE         inline                                     /*!< inline keyword for GNU Compiler */
+  #define __STATIC_INLINE  static inline
+
+#elif defined ( __ICCARM__ )
+  #define __ASM            __asm                                      /*!< asm keyword for IAR Compiler */
+  #define __INLINE         inline                                     /*!< inline keyword for IAR Compiler. Only available in High optimization mode! */
+  #define __STATIC_INLINE  static inline
+
+#elif defined ( __TMS470__ )
+  #define __ASM            __asm                                      /*!< asm keyword for TI CCS Compiler */
+  #define __STATIC_INLINE  static inline
+
+#elif defined ( __TASKING__ )
+  #define __ASM            __asm                                      /*!< asm keyword for TASKING Compiler */
+  #define __INLINE         inline                                     /*!< inline keyword for TASKING Compiler */
+  #define __STATIC_INLINE  static inline
+
+#elif defined ( __CSMC__ )
+  #define __packed
+  #define __ASM            _asm                                      /*!< asm keyword for COSMIC Compiler */
+  #define __INLINE         inline                                    /*!< inline keyword for COSMIC Compiler. Use -pc99 on compile line */
+  #define __STATIC_INLINE  static inline
+
+#else
+  #error Unknown compiler
+#endif
+
+/** __FPU_USED indicates whether an FPU is used or not.
+    This core does not support an FPU at all
+*/
+#define __FPU_USED       0U
+
+#if defined ( __CC_ARM )
+  #if defined __TARGET_FPU_VFP
+    #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
+  #endif
+
+#elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
+  #if defined __ARM_PCS_VFP
+    #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
+  #endif
+
+#elif defined ( __GNUC__ )
+  #if defined (__VFP_FP__) && !defined(__SOFTFP__)
+    #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
+  #endif
+
+#elif defined ( __ICCARM__ )
+  #if defined __ARMVFP__
+    #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
+  #endif
+
+#elif defined ( __TMS470__ )
+  #if defined __TI_VFP_SUPPORT__
+    #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
+  #endif
+
+#elif defined ( __TASKING__ )
+  #if defined __FPU_VFP__
+    #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
+  #endif
+
+#elif defined ( __CSMC__ )
+  #if ( __CSMC__ & 0x400U)
+    #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
+  #endif
+
+#endif
+
+#include "core_cmInstr.h"                /* Core Instruction Access */
+#include "core_cmFunc.h"                 /* Core Function Access */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __CORE_CM3_H_GENERIC */
+
+#ifndef __CMSIS_GENERIC
+
+#ifndef __CORE_CM3_H_DEPENDANT
+#define __CORE_CM3_H_DEPENDANT
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+/* check device defines and use defaults */
+#if defined __CHECK_DEVICE_DEFINES
+  #ifndef __CM3_REV
+    #define __CM3_REV               0x0200U
+    #warning "__CM3_REV not defined in device header file; using default!"
+  #endif
+
+  #ifndef __MPU_PRESENT
+    #define __MPU_PRESENT             0U
+    #warning "__MPU_PRESENT not defined in device header file; using default!"
+  #endif
+
+  #ifndef __NVIC_PRIO_BITS
+    #define __NVIC_PRIO_BITS          4U
+    #warning "__NVIC_PRIO_BITS not defined in device header file; using default!"
+  #endif
+
+  #ifndef __Vendor_SysTickConfig
+    #define __Vendor_SysTickConfig    0U
+    #warning "__Vendor_SysTickConfig not defined in device header file; using default!"
+  #endif
+#endif
+
+/* IO definitions (access restrictions to peripheral registers) */
+/**
+    \defgroup CMSIS_glob_defs CMSIS Global Defines
+
+    <strong>IO Type Qualifiers</strong> are used
+    \li to specify the access to peripheral variables.
+    \li for automatic generation of peripheral register debug information.
+*/
+#ifdef __cplusplus
+  #define   __I     volatile             /*!< Defines 'read only' permissions */
+#else
+  #define   __I     volatile const       /*!< Defines 'read only' permissions */
+#endif
+#define     __O     volatile             /*!< Defines 'write only' permissions */
+#define     __IO    volatile             /*!< Defines 'read / write' permissions */
+
+/* following defines should be used for structure members */
+#define     __IM     volatile const      /*! Defines 'read only' structure member permissions */
+#define     __OM     volatile            /*! Defines 'write only' structure member permissions */
+#define     __IOM    volatile            /*! Defines 'read / write' structure member permissions */
+
+/*@} end of group Cortex_M3 */
+
+
+
+/*******************************************************************************
+ *                 Register Abstraction
+  Core Register contain:
+  - Core Register
+  - Core NVIC Register
+  - Core SCB Register
+  - Core SysTick Register
+  - Core Debug Register
+  - Core MPU Register
+ ******************************************************************************/
+/**
+  \defgroup CMSIS_core_register Defines and Type Definitions
+  \brief Type definitions and defines for Cortex-M processor based devices.
+*/
+
+/**
+  \ingroup    CMSIS_core_register
+  \defgroup   CMSIS_CORE  Status and Control Registers
+  \brief      Core Register type definitions.
+  @{
+ */
+
+/**
+  \brief  Union type to access the Application Program Status Register (APSR).
+ */
+typedef union
+{
+  struct
+  {
+    uint32_t _reserved0:27;              /*!< bit:  0..26  Reserved */
+    uint32_t Q:1;                        /*!< bit:     27  Saturation condition flag */
+    uint32_t V:1;                        /*!< bit:     28  Overflow condition code flag */
+    uint32_t C:1;                        /*!< bit:     29  Carry condition code flag */
+    uint32_t Z:1;                        /*!< bit:     30  Zero condition code flag */
+    uint32_t N:1;                        /*!< bit:     31  Negative condition code flag */
+  } b;                                   /*!< Structure used for bit  access */
+  uint32_t w;                            /*!< Type      used for word access */
+} APSR_Type;
+
+/* APSR Register Definitions */
+#define APSR_N_Pos                         31U                                            /*!< APSR: N Position */
+#define APSR_N_Msk                         (1UL << APSR_N_Pos)                            /*!< APSR: N Mask */
+
+#define APSR_Z_Pos                         30U                                            /*!< APSR: Z Position */
+#define APSR_Z_Msk                         (1UL << APSR_Z_Pos)                            /*!< APSR: Z Mask */
+
+#define APSR_C_Pos                         29U                                            /*!< APSR: C Position */
+#define APSR_C_Msk                         (1UL << APSR_C_Pos)                            /*!< APSR: C Mask */
+
+#define APSR_V_Pos                         28U                                            /*!< APSR: V Position */
+#define APSR_V_Msk                         (1UL << APSR_V_Pos)                            /*!< APSR: V Mask */
+
+#define APSR_Q_Pos                         27U                                            /*!< APSR: Q Position */
+#define APSR_Q_Msk                         (1UL << APSR_Q_Pos)                            /*!< APSR: Q Mask */
+
+
+/**
+  \brief  Union type to access the Interrupt Program Status Register (IPSR).
+ */
+typedef union
+{
+  struct
+  {
+    uint32_t ISR:9;                      /*!< bit:  0.. 8  Exception number */
+    uint32_t _reserved0:23;              /*!< bit:  9..31  Reserved */
+  } b;                                   /*!< Structure used for bit  access */
+  uint32_t w;                            /*!< Type      used for word access */
+} IPSR_Type;
+
+/* IPSR Register Definitions */
+#define IPSR_ISR_Pos                        0U                                            /*!< IPSR: ISR Position */
+#define IPSR_ISR_Msk                       (0x1FFUL /*<< IPSR_ISR_Pos*/)                  /*!< IPSR: ISR Mask */
+
+
+/**
+  \brief  Union type to access the Special-Purpose Program Status Registers (xPSR).
+ */
+typedef union
+{
+  struct
+  {
+    uint32_t ISR:9;                      /*!< bit:  0.. 8  Exception number */
+    uint32_t _reserved0:15;              /*!< bit:  9..23  Reserved */
+    uint32_t T:1;                        /*!< bit:     24  Thumb bit        (read 0) */
+    uint32_t IT:2;                       /*!< bit: 25..26  saved IT state   (read 0) */
+    uint32_t Q:1;                        /*!< bit:     27  Saturation condition flag */
+    uint32_t V:1;                        /*!< bit:     28  Overflow condition code flag */
+    uint32_t C:1;                        /*!< bit:     29  Carry condition code flag */
+    uint32_t Z:1;                        /*!< bit:     30  Zero condition code flag */
+    uint32_t N:1;                        /*!< bit:     31  Negative condition code flag */
+  } b;                                   /*!< Structure used for bit  access */
+  uint32_t w;                            /*!< Type      used for word access */
+} xPSR_Type;
+
+/* xPSR Register Definitions */
+#define xPSR_N_Pos                         31U                                            /*!< xPSR: N Position */
+#define xPSR_N_Msk                         (1UL << xPSR_N_Pos)                            /*!< xPSR: N Mask */
+
+#define xPSR_Z_Pos                         30U                                            /*!< xPSR: Z Position */
+#define xPSR_Z_Msk                         (1UL << xPSR_Z_Pos)                            /*!< xPSR: Z Mask */
+
+#define xPSR_C_Pos                         29U                                            /*!< xPSR: C Position */
+#define xPSR_C_Msk                         (1UL << xPSR_C_Pos)                            /*!< xPSR: C Mask */
+
+#define xPSR_V_Pos                         28U                                            /*!< xPSR: V Position */
+#define xPSR_V_Msk                         (1UL << xPSR_V_Pos)                            /*!< xPSR: V Mask */
+
+#define xPSR_Q_Pos                         27U                                            /*!< xPSR: Q Position */
+#define xPSR_Q_Msk                         (1UL << xPSR_Q_Pos)                            /*!< xPSR: Q Mask */
+
+#define xPSR_IT_Pos                        25U                                            /*!< xPSR: IT Position */
+#define xPSR_IT_Msk                        (3UL << xPSR_IT_Pos)                           /*!< xPSR: IT Mask */
+
+#define xPSR_T_Pos                         24U                                            /*!< xPSR: T Position */
+#define xPSR_T_Msk                         (1UL << xPSR_T_Pos)                            /*!< xPSR: T Mask */
+
+#define xPSR_ISR_Pos                        0U                                            /*!< xPSR: ISR Position */
+#define xPSR_ISR_Msk                       (0x1FFUL /*<< xPSR_ISR_Pos*/)                  /*!< xPSR: ISR Mask */
+
+
+/**
+  \brief  Union type to access the Control Registers (CONTROL).
+ */
+typedef union
+{
+  struct
+  {
+    uint32_t nPRIV:1;                    /*!< bit:      0  Execution privilege in Thread mode */
+    uint32_t SPSEL:1;                    /*!< bit:      1  Stack to be used */
+    uint32_t _reserved1:30;              /*!< bit:  2..31  Reserved */
+  } b;                                   /*!< Structure used for bit  access */
+  uint32_t w;                            /*!< Type      used for word access */
+} CONTROL_Type;
+
+/* CONTROL Register Definitions */
+#define CONTROL_SPSEL_Pos                   1U                                            /*!< CONTROL: SPSEL Position */
+#define CONTROL_SPSEL_Msk                  (1UL << CONTROL_SPSEL_Pos)                     /*!< CONTROL: SPSEL Mask */
+
+#define CONTROL_nPRIV_Pos                   0U                                            /*!< CONTROL: nPRIV Position */
+#define CONTROL_nPRIV_Msk                  (1UL /*<< CONTROL_nPRIV_Pos*/)                 /*!< CONTROL: nPRIV Mask */
+
+/*@} end of group CMSIS_CORE */
+
+
+/**
+  \ingroup    CMSIS_core_register
+  \defgroup   CMSIS_NVIC  Nested Vectored Interrupt Controller (NVIC)
+  \brief      Type definitions for the NVIC Registers
+  @{
+ */
+
+/**
+  \brief  Structure type to access the Nested Vectored Interrupt Controller (NVIC).
+ */
+typedef struct
+{
+  __IOM uint32_t ISER[8U];               /*!< Offset: 0x000 (R/W)  Interrupt Set Enable Register */
+        uint32_t RESERVED0[24U];
+  __IOM uint32_t ICER[8U];               /*!< Offset: 0x080 (R/W)  Interrupt Clear Enable Register */
+        uint32_t RSERVED1[24U];
+  __IOM uint32_t ISPR[8U];               /*!< Offset: 0x100 (R/W)  Interrupt Set Pending Register */
+        uint32_t RESERVED2[24U];
+  __IOM uint32_t ICPR[8U];               /*!< Offset: 0x180 (R/W)  Interrupt Clear Pending Register */
+        uint32_t RESERVED3[24U];
+  __IOM uint32_t IABR[8U];               /*!< Offset: 0x200 (R/W)  Interrupt Active bit Register */
+        uint32_t RESERVED4[56U];
+  __IOM uint8_t  IP[240U];               /*!< Offset: 0x300 (R/W)  Interrupt Priority Register (8Bit wide) */
+        uint32_t RESERVED5[644U];
+  __OM  uint32_t STIR;                   /*!< Offset: 0xE00 ( /W)  Software Trigger Interrupt Register */
+}  NVIC_Type;
+
+/* Software Triggered Interrupt Register Definitions */
+#define NVIC_STIR_INTID_Pos                 0U                                         /*!< STIR: INTLINESNUM Position */
+#define NVIC_STIR_INTID_Msk                (0x1FFUL /*<< NVIC_STIR_INTID_Pos*/)        /*!< STIR: INTLINESNUM Mask */
+
+/*@} end of group CMSIS_NVIC */
+
+
+/**
+  \ingroup  CMSIS_core_register
+  \defgroup CMSIS_SCB     System Control Block (SCB)
+  \brief    Type definitions for the System Control Block Registers
+  @{
+ */
+
+/**
+  \brief  Structure type to access the System Control Block (SCB).
+ */
+typedef struct
+{
+  __IM  uint32_t CPUID;                  /*!< Offset: 0x000 (R/ )  CPUID Base Register */
+  __IOM uint32_t ICSR;                   /*!< Offset: 0x004 (R/W)  Interrupt Control and State Register */
+  __IOM uint32_t VTOR;                   /*!< Offset: 0x008 (R/W)  Vector Table Offset Register */
+  __IOM uint32_t AIRCR;                  /*!< Offset: 0x00C (R/W)  Application Interrupt and Reset Control Register */
+  __IOM uint32_t SCR;                    /*!< Offset: 0x010 (R/W)  System Control Register */
+  __IOM uint32_t CCR;                    /*!< Offset: 0x014 (R/W)  Configuration Control Register */
+  __IOM uint8_t  SHP[12U];               /*!< Offset: 0x018 (R/W)  System Handlers Priority Registers (4-7, 8-11, 12-15) */
+  __IOM uint32_t SHCSR;                  /*!< Offset: 0x024 (R/W)  System Handler Control and State Register */
+  __IOM uint32_t CFSR;                   /*!< Offset: 0x028 (R/W)  Configurable Fault Status Register */
+  __IOM uint32_t HFSR;                   /*!< Offset: 0x02C (R/W)  HardFault Status Register */
+  __IOM uint32_t DFSR;                   /*!< Offset: 0x030 (R/W)  Debug Fault Status Register */
+  __IOM uint32_t MMFAR;                  /*!< Offset: 0x034 (R/W)  MemManage Fault Address Register */
+  __IOM uint32_t BFAR;                   /*!< Offset: 0x038 (R/W)  BusFault Address Register */
+  __IOM uint32_t AFSR;                   /*!< Offset: 0x03C (R/W)  Auxiliary Fault Status Register */
+  __IM  uint32_t PFR[2U];                /*!< Offset: 0x040 (R/ )  Processor Feature Register */
+  __IM  uint32_t DFR;                    /*!< Offset: 0x048 (R/ )  Debug Feature Register */
+  __IM  uint32_t ADR;                    /*!< Offset: 0x04C (R/ )  Auxiliary Feature Register */
+  __IM  uint32_t MMFR[4U];               /*!< Offset: 0x050 (R/ )  Memory Model Feature Register */
+  __IM  uint32_t ISAR[5U];               /*!< Offset: 0x060 (R/ )  Instruction Set Attributes Register */
+        uint32_t RESERVED0[5U];
+  __IOM uint32_t CPACR;                  /*!< Offset: 0x088 (R/W)  Coprocessor Access Control Register */
+} SCB_Type;
+
+/* SCB CPUID Register Definitions */
+#define SCB_CPUID_IMPLEMENTER_Pos          24U                                            /*!< SCB CPUID: IMPLEMENTER Position */
+#define SCB_CPUID_IMPLEMENTER_Msk          (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos)          /*!< SCB CPUID: IMPLEMENTER Mask */
+
+#define SCB_CPUID_VARIANT_Pos              20U                                            /*!< SCB CPUID: VARIANT Position */
+#define SCB_CPUID_VARIANT_Msk              (0xFUL << SCB_CPUID_VARIANT_Pos)               /*!< SCB CPUID: VARIANT Mask */
+
+#define SCB_CPUID_ARCHITECTURE_Pos         16U                                            /*!< SCB CPUID: ARCHITECTURE Position */
+#define SCB_CPUID_ARCHITECTURE_Msk         (0xFUL << SCB_CPUID_ARCHITECTURE_Pos)          /*!< SCB CPUID: ARCHITECTURE Mask */
+
+#define SCB_CPUID_PARTNO_Pos                4U                                            /*!< SCB CPUID: PARTNO Position */
+#define SCB_CPUID_PARTNO_Msk               (0xFFFUL << SCB_CPUID_PARTNO_Pos)              /*!< SCB CPUID: PARTNO Mask */
+
+#define SCB_CPUID_REVISION_Pos              0U                                            /*!< SCB CPUID: REVISION Position */
+#define SCB_CPUID_REVISION_Msk             (0xFUL /*<< SCB_CPUID_REVISION_Pos*/)          /*!< SCB CPUID: REVISION Mask */
+
+/* SCB Interrupt Control State Register Definitions */
+#define SCB_ICSR_NMIPENDSET_Pos            31U                                            /*!< SCB ICSR: NMIPENDSET Position */
+#define SCB_ICSR_NMIPENDSET_Msk            (1UL << SCB_ICSR_NMIPENDSET_Pos)               /*!< SCB ICSR: NMIPENDSET Mask */
+
+#define SCB_ICSR_PENDSVSET_Pos             28U                                            /*!< SCB ICSR: PENDSVSET Position */
+#define SCB_ICSR_PENDSVSET_Msk             (1UL << SCB_ICSR_PENDSVSET_Pos)                /*!< SCB ICSR: PENDSVSET Mask */
+
+#define SCB_ICSR_PENDSVCLR_Pos             27U                                            /*!< SCB ICSR: PENDSVCLR Position */
+#define SCB_ICSR_PENDSVCLR_Msk             (1UL << SCB_ICSR_PENDSVCLR_Pos)                /*!< SCB ICSR: PENDSVCLR Mask */
+
+#define SCB_ICSR_PENDSTSET_Pos             26U                                            /*!< SCB ICSR: PENDSTSET Position */
+#define SCB_ICSR_PENDSTSET_Msk             (1UL << SCB_ICSR_PENDSTSET_Pos)                /*!< SCB ICSR: PENDSTSET Mask */
+
+#define SCB_ICSR_PENDSTCLR_Pos             25U                                            /*!< SCB ICSR: PENDSTCLR Position */
+#define SCB_ICSR_PENDSTCLR_Msk             (1UL << SCB_ICSR_PENDSTCLR_Pos)                /*!< SCB ICSR: PENDSTCLR Mask */
+
+#define SCB_ICSR_ISRPREEMPT_Pos            23U                                            /*!< SCB ICSR: ISRPREEMPT Position */
+#define SCB_ICSR_ISRPREEMPT_Msk            (1UL << SCB_ICSR_ISRPREEMPT_Pos)               /*!< SCB ICSR: ISRPREEMPT Mask */
+
+#define SCB_ICSR_ISRPENDING_Pos            22U                                            /*!< SCB ICSR: ISRPENDING Position */
+#define SCB_ICSR_ISRPENDING_Msk            (1UL << SCB_ICSR_ISRPENDING_Pos)               /*!< SCB ICSR: ISRPENDING Mask */
+
+#define SCB_ICSR_VECTPENDING_Pos           12U                                            /*!< SCB ICSR: VECTPENDING Position */
+#define SCB_ICSR_VECTPENDING_Msk           (0x1FFUL << SCB_ICSR_VECTPENDING_Pos)          /*!< SCB ICSR: VECTPENDING Mask */
+
+#define SCB_ICSR_RETTOBASE_Pos             11U                                            /*!< SCB ICSR: RETTOBASE Position */
+#define SCB_ICSR_RETTOBASE_Msk             (1UL << SCB_ICSR_RETTOBASE_Pos)                /*!< SCB ICSR: RETTOBASE Mask */
+
+#define SCB_ICSR_VECTACTIVE_Pos             0U                                            /*!< SCB ICSR: VECTACTIVE Position */
+#define SCB_ICSR_VECTACTIVE_Msk            (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/)       /*!< SCB ICSR: VECTACTIVE Mask */
+
+/* SCB Vector Table Offset Register Definitions */
+#if (__CM3_REV < 0x0201U)                   /* core r2p1 */
+#define SCB_VTOR_TBLBASE_Pos               29U                                            /*!< SCB VTOR: TBLBASE Position */
+#define SCB_VTOR_TBLBASE_Msk               (1UL << SCB_VTOR_TBLBASE_Pos)                  /*!< SCB VTOR: TBLBASE Mask */
+
+#define SCB_VTOR_TBLOFF_Pos                 7U                                            /*!< SCB VTOR: TBLOFF Position */
+#define SCB_VTOR_TBLOFF_Msk                (0x3FFFFFUL << SCB_VTOR_TBLOFF_Pos)            /*!< SCB VTOR: TBLOFF Mask */
+#else
+#define SCB_VTOR_TBLOFF_Pos                 7U                                            /*!< SCB VTOR: TBLOFF Position */
+#define SCB_VTOR_TBLOFF_Msk                (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos)           /*!< SCB VTOR: TBLOFF Mask */
+#endif
+
+/* SCB Application Interrupt and Reset Control Register Definitions */
+#define SCB_AIRCR_VECTKEY_Pos              16U                                            /*!< SCB AIRCR: VECTKEY Position */
+#define SCB_AIRCR_VECTKEY_Msk              (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos)            /*!< SCB AIRCR: VECTKEY Mask */
+
+#define SCB_AIRCR_VECTKEYSTAT_Pos          16U                                            /*!< SCB AIRCR: VECTKEYSTAT Position */
+#define SCB_AIRCR_VECTKEYSTAT_Msk          (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos)        /*!< SCB AIRCR: VECTKEYSTAT Mask */
+
+#define SCB_AIRCR_ENDIANESS_Pos            15U                                            /*!< SCB AIRCR: ENDIANESS Position */
+#define SCB_AIRCR_ENDIANESS_Msk            (1UL << SCB_AIRCR_ENDIANESS_Pos)               /*!< SCB AIRCR: ENDIANESS Mask */
+
+#define SCB_AIRCR_PRIGROUP_Pos              8U                                            /*!< SCB AIRCR: PRIGROUP Position */
+#define SCB_AIRCR_PRIGROUP_Msk             (7UL << SCB_AIRCR_PRIGROUP_Pos)                /*!< SCB AIRCR: PRIGROUP Mask */
+
+#define SCB_AIRCR_SYSRESETREQ_Pos           2U                                            /*!< SCB AIRCR: SYSRESETREQ Position */
+#define SCB_AIRCR_SYSRESETREQ_Msk          (1UL << SCB_AIRCR_SYSRESETREQ_Pos)             /*!< SCB AIRCR: SYSRESETREQ Mask */
+
+#define SCB_AIRCR_VECTCLRACTIVE_Pos         1U                                            /*!< SCB AIRCR: VECTCLRACTIVE Position */
+#define SCB_AIRCR_VECTCLRACTIVE_Msk        (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos)           /*!< SCB AIRCR: VECTCLRACTIVE Mask */
+
+#define SCB_AIRCR_VECTRESET_Pos             0U                                            /*!< SCB AIRCR: VECTRESET Position */
+#define SCB_AIRCR_VECTRESET_Msk            (1UL /*<< SCB_AIRCR_VECTRESET_Pos*/)           /*!< SCB AIRCR: VECTRESET Mask */
+
+/* SCB System Control Register Definitions */
+#define SCB_SCR_SEVONPEND_Pos               4U                                            /*!< SCB SCR: SEVONPEND Position */
+#define SCB_SCR_SEVONPEND_Msk              (1UL << SCB_SCR_SEVONPEND_Pos)                 /*!< SCB SCR: SEVONPEND Mask */
+
+#define SCB_SCR_SLEEPDEEP_Pos               2U                                            /*!< SCB SCR: SLEEPDEEP Position */
+#define SCB_SCR_SLEEPDEEP_Msk              (1UL << SCB_SCR_SLEEPDEEP_Pos)                 /*!< SCB SCR: SLEEPDEEP Mask */
+
+#define SCB_SCR_SLEEPONEXIT_Pos             1U                                            /*!< SCB SCR: SLEEPONEXIT Position */
+#define SCB_SCR_SLEEPONEXIT_Msk            (1UL << SCB_SCR_SLEEPONEXIT_Pos)               /*!< SCB SCR: SLEEPONEXIT Mask */
+
+/* SCB Configuration Control Register Definitions */
+#define SCB_CCR_STKALIGN_Pos                9U                                            /*!< SCB CCR: STKALIGN Position */
+#define SCB_CCR_STKALIGN_Msk               (1UL << SCB_CCR_STKALIGN_Pos)                  /*!< SCB CCR: STKALIGN Mask */
+
+#define SCB_CCR_BFHFNMIGN_Pos               8U                                            /*!< SCB CCR: BFHFNMIGN Position */
+#define SCB_CCR_BFHFNMIGN_Msk              (1UL << SCB_CCR_BFHFNMIGN_Pos)                 /*!< SCB CCR: BFHFNMIGN Mask */
+
+#define SCB_CCR_DIV_0_TRP_Pos               4U                                            /*!< SCB CCR: DIV_0_TRP Position */
+#define SCB_CCR_DIV_0_TRP_Msk              (1UL << SCB_CCR_DIV_0_TRP_Pos)                 /*!< SCB CCR: DIV_0_TRP Mask */
+
+#define SCB_CCR_UNALIGN_TRP_Pos             3U                                            /*!< SCB CCR: UNALIGN_TRP Position */
+#define SCB_CCR_UNALIGN_TRP_Msk            (1UL << SCB_CCR_UNALIGN_TRP_Pos)               /*!< SCB CCR: UNALIGN_TRP Mask */
+
+#define SCB_CCR_USERSETMPEND_Pos            1U                                            /*!< SCB CCR: USERSETMPEND Position */
+#define SCB_CCR_USERSETMPEND_Msk           (1UL << SCB_CCR_USERSETMPEND_Pos)              /*!< SCB CCR: USERSETMPEND Mask */
+
+#define SCB_CCR_NONBASETHRDENA_Pos          0U                                            /*!< SCB CCR: NONBASETHRDENA Position */
+#define SCB_CCR_NONBASETHRDENA_Msk         (1UL /*<< SCB_CCR_NONBASETHRDENA_Pos*/)        /*!< SCB CCR: NONBASETHRDENA Mask */
+
+/* SCB System Handler Control and State Register Definitions */
+#define SCB_SHCSR_USGFAULTENA_Pos          18U                                            /*!< SCB SHCSR: USGFAULTENA Position */
+#define SCB_SHCSR_USGFAULTENA_Msk          (1UL << SCB_SHCSR_USGFAULTENA_Pos)             /*!< SCB SHCSR: USGFAULTENA Mask */
+
+#define SCB_SHCSR_BUSFAULTENA_Pos          17U                                            /*!< SCB SHCSR: BUSFAULTENA Position */
+#define SCB_SHCSR_BUSFAULTENA_Msk          (1UL << SCB_SHCSR_BUSFAULTENA_Pos)             /*!< SCB SHCSR: BUSFAULTENA Mask */
+
+#define SCB_SHCSR_MEMFAULTENA_Pos          16U                                            /*!< SCB SHCSR: MEMFAULTENA Position */
+#define SCB_SHCSR_MEMFAULTENA_Msk          (1UL << SCB_SHCSR_MEMFAULTENA_Pos)             /*!< SCB SHCSR: MEMFAULTENA Mask */
+
+#define SCB_SHCSR_SVCALLPENDED_Pos         15U                                            /*!< SCB SHCSR: SVCALLPENDED Position */
+#define SCB_SHCSR_SVCALLPENDED_Msk         (1UL << SCB_SHCSR_SVCALLPENDED_Pos)            /*!< SCB SHCSR: SVCALLPENDED Mask */
+
+#define SCB_SHCSR_BUSFAULTPENDED_Pos       14U                                            /*!< SCB SHCSR: BUSFAULTPENDED Position */
+#define SCB_SHCSR_BUSFAULTPENDED_Msk       (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos)          /*!< SCB SHCSR: BUSFAULTPENDED Mask */
+
+#define SCB_SHCSR_MEMFAULTPENDED_Pos       13U                                            /*!< SCB SHCSR: MEMFAULTPENDED Position */
+#define SCB_SHCSR_MEMFAULTPENDED_Msk       (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos)          /*!< SCB SHCSR: MEMFAULTPENDED Mask */
+
+#define SCB_SHCSR_USGFAULTPENDED_Pos       12U                                            /*!< SCB SHCSR: USGFAULTPENDED Position */
+#define SCB_SHCSR_USGFAULTPENDED_Msk       (1UL << SCB_SHCSR_USGFAULTPENDED_Pos)          /*!< SCB SHCSR: USGFAULTPENDED Mask */
+
+#define SCB_SHCSR_SYSTICKACT_Pos           11U                                            /*!< SCB SHCSR: SYSTICKACT Position */
+#define SCB_SHCSR_SYSTICKACT_Msk           (1UL << SCB_SHCSR_SYSTICKACT_Pos)              /*!< SCB SHCSR: SYSTICKACT Mask */
+
+#define SCB_SHCSR_PENDSVACT_Pos            10U                                            /*!< SCB SHCSR: PENDSVACT Position */
+#define SCB_SHCSR_PENDSVACT_Msk            (1UL << SCB_SHCSR_PENDSVACT_Pos)               /*!< SCB SHCSR: PENDSVACT Mask */
+
+#define SCB_SHCSR_MONITORACT_Pos            8U                                            /*!< SCB SHCSR: MONITORACT Position */
+#define SCB_SHCSR_MONITORACT_Msk           (1UL << SCB_SHCSR_MONITORACT_Pos)              /*!< SCB SHCSR: MONITORACT Mask */
+
+#define SCB_SHCSR_SVCALLACT_Pos             7U                                            /*!< SCB SHCSR: SVCALLACT Position */
+#define SCB_SHCSR_SVCALLACT_Msk            (1UL << SCB_SHCSR_SVCALLACT_Pos)               /*!< SCB SHCSR: SVCALLACT Mask */
+
+#define SCB_SHCSR_USGFAULTACT_Pos           3U                                            /*!< SCB SHCSR: USGFAULTACT Position */
+#define SCB_SHCSR_USGFAULTACT_Msk          (1UL << SCB_SHCSR_USGFAULTACT_Pos)             /*!< SCB SHCSR: USGFAULTACT Mask */
+
+#define SCB_SHCSR_BUSFAULTACT_Pos           1U                                            /*!< SCB SHCSR: BUSFAULTACT Position */
+#define SCB_SHCSR_BUSFAULTACT_Msk          (1UL << SCB_SHCSR_BUSFAULTACT_Pos)             /*!< SCB SHCSR: BUSFAULTACT Mask */
+
+#define SCB_SHCSR_MEMFAULTACT_Pos           0U                                            /*!< SCB SHCSR: MEMFAULTACT Position */
+#define SCB_SHCSR_MEMFAULTACT_Msk          (1UL /*<< SCB_SHCSR_MEMFAULTACT_Pos*/)         /*!< SCB SHCSR: MEMFAULTACT Mask */
+
+/* SCB Configurable Fault Status Register Definitions */
+#define SCB_CFSR_USGFAULTSR_Pos            16U                                            /*!< SCB CFSR: Usage Fault Status Register Position */
+#define SCB_CFSR_USGFAULTSR_Msk            (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos)          /*!< SCB CFSR: Usage Fault Status Register Mask */
+
+#define SCB_CFSR_BUSFAULTSR_Pos             8U                                            /*!< SCB CFSR: Bus Fault Status Register Position */
+#define SCB_CFSR_BUSFAULTSR_Msk            (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos)            /*!< SCB CFSR: Bus Fault Status Register Mask */
+
+#define SCB_CFSR_MEMFAULTSR_Pos             0U                                            /*!< SCB CFSR: Memory Manage Fault Status Register Position */
+#define SCB_CFSR_MEMFAULTSR_Msk            (0xFFUL /*<< SCB_CFSR_MEMFAULTSR_Pos*/)        /*!< SCB CFSR: Memory Manage Fault Status Register Mask */
+
+/* SCB Hard Fault Status Register Definitions */
+#define SCB_HFSR_DEBUGEVT_Pos              31U                                            /*!< SCB HFSR: DEBUGEVT Position */
+#define SCB_HFSR_DEBUGEVT_Msk              (1UL << SCB_HFSR_DEBUGEVT_Pos)                 /*!< SCB HFSR: DEBUGEVT Mask */
+
+#define SCB_HFSR_FORCED_Pos                30U                                            /*!< SCB HFSR: FORCED Position */
+#define SCB_HFSR_FORCED_Msk                (1UL << SCB_HFSR_FORCED_Pos)                   /*!< SCB HFSR: FORCED Mask */
+
+#define SCB_HFSR_VECTTBL_Pos                1U                                            /*!< SCB HFSR: VECTTBL Position */
+#define SCB_HFSR_VECTTBL_Msk               (1UL << SCB_HFSR_VECTTBL_Pos)                  /*!< SCB HFSR: VECTTBL Mask */
+
+/* SCB Debug Fault Status Register Definitions */
+#define SCB_DFSR_EXTERNAL_Pos               4U                                            /*!< SCB DFSR: EXTERNAL Position */
+#define SCB_DFSR_EXTERNAL_Msk              (1UL << SCB_DFSR_EXTERNAL_Pos)                 /*!< SCB DFSR: EXTERNAL Mask */
+
+#define SCB_DFSR_VCATCH_Pos                 3U                                            /*!< SCB DFSR: VCATCH Position */
+#define SCB_DFSR_VCATCH_Msk                (1UL << SCB_DFSR_VCATCH_Pos)                   /*!< SCB DFSR: VCATCH Mask */
+
+#define SCB_DFSR_DWTTRAP_Pos                2U                                            /*!< SCB DFSR: DWTTRAP Position */
+#define SCB_DFSR_DWTTRAP_Msk               (1UL << SCB_DFSR_DWTTRAP_Pos)                  /*!< SCB DFSR: DWTTRAP Mask */
+
+#define SCB_DFSR_BKPT_Pos                   1U                                            /*!< SCB DFSR: BKPT Position */
+#define SCB_DFSR_BKPT_Msk                  (1UL << SCB_DFSR_BKPT_Pos)                     /*!< SCB DFSR: BKPT Mask */
+
+#define SCB_DFSR_HALTED_Pos                 0U                                            /*!< SCB DFSR: HALTED Position */
+#define SCB_DFSR_HALTED_Msk                (1UL /*<< SCB_DFSR_HALTED_Pos*/)               /*!< SCB DFSR: HALTED Mask */
+
+/*@} end of group CMSIS_SCB */
+
+
+/**
+  \ingroup  CMSIS_core_register
+  \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB)
+  \brief    Type definitions for the System Control and ID Register not in the SCB
+  @{
+ */
+
+/**
+  \brief  Structure type to access the System Control and ID Register not in the SCB.
+ */
+typedef struct
+{
+        uint32_t RESERVED0[1U];
+  __IM  uint32_t ICTR;                   /*!< Offset: 0x004 (R/ )  Interrupt Controller Type Register */
+#if ((defined __CM3_REV) && (__CM3_REV >= 0x200U))
+  __IOM uint32_t ACTLR;                  /*!< Offset: 0x008 (R/W)  Auxiliary Control Register */
+#else
+        uint32_t RESERVED1[1U];
+#endif
+} SCnSCB_Type;
+
+/* Interrupt Controller Type Register Definitions */
+#define SCnSCB_ICTR_INTLINESNUM_Pos         0U                                         /*!< ICTR: INTLINESNUM Position */
+#define SCnSCB_ICTR_INTLINESNUM_Msk        (0xFUL /*<< SCnSCB_ICTR_INTLINESNUM_Pos*/)  /*!< ICTR: INTLINESNUM Mask */
+
+/* Auxiliary Control Register Definitions */
+
+#define SCnSCB_ACTLR_DISFOLD_Pos            2U                                         /*!< ACTLR: DISFOLD Position */
+#define SCnSCB_ACTLR_DISFOLD_Msk           (1UL << SCnSCB_ACTLR_DISFOLD_Pos)           /*!< ACTLR: DISFOLD Mask */
+
+#define SCnSCB_ACTLR_DISDEFWBUF_Pos         1U                                         /*!< ACTLR: DISDEFWBUF Position */
+#define SCnSCB_ACTLR_DISDEFWBUF_Msk        (1UL << SCnSCB_ACTLR_DISDEFWBUF_Pos)        /*!< ACTLR: DISDEFWBUF Mask */
+
+#define SCnSCB_ACTLR_DISMCYCINT_Pos         0U                                         /*!< ACTLR: DISMCYCINT Position */
+#define SCnSCB_ACTLR_DISMCYCINT_Msk        (1UL /*<< SCnSCB_ACTLR_DISMCYCINT_Pos*/)    /*!< ACTLR: DISMCYCINT Mask */
+
+/*@} end of group CMSIS_SCnotSCB */
+
+
+/**
+  \ingroup  CMSIS_core_register
+  \defgroup CMSIS_SysTick     System Tick Timer (SysTick)
+  \brief    Type definitions for the System Timer Registers.
+  @{
+ */
+
+/**
+  \brief  Structure type to access the System Timer (SysTick).
+ */
+typedef struct
+{
+  __IOM uint32_t CTRL;                   /*!< Offset: 0x000 (R/W)  SysTick Control and Status Register */
+  __IOM uint32_t LOAD;                   /*!< Offset: 0x004 (R/W)  SysTick Reload Value Register */
+  __IOM uint32_t VAL;                    /*!< Offset: 0x008 (R/W)  SysTick Current Value Register */
+  __IM  uint32_t CALIB;                  /*!< Offset: 0x00C (R/ )  SysTick Calibration Register */
+} SysTick_Type;
+
+/* SysTick Control / Status Register Definitions */
+#define SysTick_CTRL_COUNTFLAG_Pos         16U                                            /*!< SysTick CTRL: COUNTFLAG Position */
+#define SysTick_CTRL_COUNTFLAG_Msk         (1UL << SysTick_CTRL_COUNTFLAG_Pos)            /*!< SysTick CTRL: COUNTFLAG Mask */
+
+#define SysTick_CTRL_CLKSOURCE_Pos          2U                                            /*!< SysTick CTRL: CLKSOURCE Position */
+#define SysTick_CTRL_CLKSOURCE_Msk         (1UL << SysTick_CTRL_CLKSOURCE_Pos)            /*!< SysTick CTRL: CLKSOURCE Mask */
+
+#define SysTick_CTRL_TICKINT_Pos            1U                                            /*!< SysTick CTRL: TICKINT Position */
+#define SysTick_CTRL_TICKINT_Msk           (1UL << SysTick_CTRL_TICKINT_Pos)              /*!< SysTick CTRL: TICKINT Mask */
+
+#define SysTick_CTRL_ENABLE_Pos             0U                                            /*!< SysTick CTRL: ENABLE Position */
+#define SysTick_CTRL_ENABLE_Msk            (1UL /*<< SysTick_CTRL_ENABLE_Pos*/)           /*!< SysTick CTRL: ENABLE Mask */
+
+/* SysTick Reload Register Definitions */
+#define SysTick_LOAD_RELOAD_Pos             0U                                            /*!< SysTick LOAD: RELOAD Position */
+#define SysTick_LOAD_RELOAD_Msk            (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/)    /*!< SysTick LOAD: RELOAD Mask */
+
+/* SysTick Current Register Definitions */
+#define SysTick_VAL_CURRENT_Pos             0U                                            /*!< SysTick VAL: CURRENT Position */
+#define SysTick_VAL_CURRENT_Msk            (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/)    /*!< SysTick VAL: CURRENT Mask */
+
+/* SysTick Calibration Register Definitions */
+#define SysTick_CALIB_NOREF_Pos            31U                                            /*!< SysTick CALIB: NOREF Position */
+#define SysTick_CALIB_NOREF_Msk            (1UL << SysTick_CALIB_NOREF_Pos)               /*!< SysTick CALIB: NOREF Mask */
+
+#define SysTick_CALIB_SKEW_Pos             30U                                            /*!< SysTick CALIB: SKEW Position */
+#define SysTick_CALIB_SKEW_Msk             (1UL << SysTick_CALIB_SKEW_Pos)                /*!< SysTick CALIB: SKEW Mask */
+
+#define SysTick_CALIB_TENMS_Pos             0U                                            /*!< SysTick CALIB: TENMS Position */
+#define SysTick_CALIB_TENMS_Msk            (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/)    /*!< SysTick CALIB: TENMS Mask */
+
+/*@} end of group CMSIS_SysTick */
+
+
+/**
+  \ingroup  CMSIS_core_register
+  \defgroup CMSIS_ITM     Instrumentation Trace Macrocell (ITM)
+  \brief    Type definitions for the Instrumentation Trace Macrocell (ITM)
+  @{
+ */
+
+/**
+  \brief  Structure type to access the Instrumentation Trace Macrocell Register (ITM).
+ */
+typedef struct
+{
+  __OM  union
+  {
+    __OM  uint8_t    u8;                 /*!< Offset: 0x000 ( /W)  ITM Stimulus Port 8-bit */
+    __OM  uint16_t   u16;                /*!< Offset: 0x000 ( /W)  ITM Stimulus Port 16-bit */
+    __OM  uint32_t   u32;                /*!< Offset: 0x000 ( /W)  ITM Stimulus Port 32-bit */
+  }  PORT [32U];                         /*!< Offset: 0x000 ( /W)  ITM Stimulus Port Registers */
+        uint32_t RESERVED0[864U];
+  __IOM uint32_t TER;                    /*!< Offset: 0xE00 (R/W)  ITM Trace Enable Register */
+        uint32_t RESERVED1[15U];
+  __IOM uint32_t TPR;                    /*!< Offset: 0xE40 (R/W)  ITM Trace Privilege Register */
+        uint32_t RESERVED2[15U];
+  __IOM uint32_t TCR;                    /*!< Offset: 0xE80 (R/W)  ITM Trace Control Register */
+        uint32_t RESERVED3[29U];
+  __OM  uint32_t IWR;                    /*!< Offset: 0xEF8 ( /W)  ITM Integration Write Register */
+  __IM  uint32_t IRR;                    /*!< Offset: 0xEFC (R/ )  ITM Integration Read Register */
+  __IOM uint32_t IMCR;                   /*!< Offset: 0xF00 (R/W)  ITM Integration Mode Control Register */
+        uint32_t RESERVED4[43U];
+  __OM  uint32_t LAR;                    /*!< Offset: 0xFB0 ( /W)  ITM Lock Access Register */
+  __IM  uint32_t LSR;                    /*!< Offset: 0xFB4 (R/ )  ITM Lock Status Register */
+        uint32_t RESERVED5[6U];
+  __IM  uint32_t PID4;                   /*!< Offset: 0xFD0 (R/ )  ITM Peripheral Identification Register #4 */
+  __IM  uint32_t PID5;                   /*!< Offset: 0xFD4 (R/ )  ITM Peripheral Identification Register #5 */
+  __IM  uint32_t PID6;                   /*!< Offset: 0xFD8 (R/ )  ITM Peripheral Identification Register #6 */
+  __IM  uint32_t PID7;                   /*!< Offset: 0xFDC (R/ )  ITM Peripheral Identification Register #7 */
+  __IM  uint32_t PID0;                   /*!< Offset: 0xFE0 (R/ )  ITM Peripheral Identification Register #0 */
+  __IM  uint32_t PID1;                   /*!< Offset: 0xFE4 (R/ )  ITM Peripheral Identification Register #1 */
+  __IM  uint32_t PID2;                   /*!< Offset: 0xFE8 (R/ )  ITM Peripheral Identification Register #2 */
+  __IM  uint32_t PID3;                   /*!< Offset: 0xFEC (R/ )  ITM Peripheral Identification Register #3 */
+  __IM  uint32_t CID0;                   /*!< Offset: 0xFF0 (R/ )  ITM Component  Identification Register #0 */
+  __IM  uint32_t CID1;                   /*!< Offset: 0xFF4 (R/ )  ITM Component  Identification Register #1 */
+  __IM  uint32_t CID2;                   /*!< Offset: 0xFF8 (R/ )  ITM Component  Identification Register #2 */
+  __IM  uint32_t CID3;                   /*!< Offset: 0xFFC (R/ )  ITM Component  Identification Register #3 */
+} ITM_Type;
+
+/* ITM Trace Privilege Register Definitions */
+#define ITM_TPR_PRIVMASK_Pos                0U                                            /*!< ITM TPR: PRIVMASK Position */
+#define ITM_TPR_PRIVMASK_Msk               (0xFUL /*<< ITM_TPR_PRIVMASK_Pos*/)            /*!< ITM TPR: PRIVMASK Mask */
+
+/* ITM Trace Control Register Definitions */
+#define ITM_TCR_BUSY_Pos                   23U                                            /*!< ITM TCR: BUSY Position */
+#define ITM_TCR_BUSY_Msk                   (1UL << ITM_TCR_BUSY_Pos)                      /*!< ITM TCR: BUSY Mask */
+
+#define ITM_TCR_TraceBusID_Pos             16U                                            /*!< ITM TCR: ATBID Position */
+#define ITM_TCR_TraceBusID_Msk             (0x7FUL << ITM_TCR_TraceBusID_Pos)             /*!< ITM TCR: ATBID Mask */
+
+#define ITM_TCR_GTSFREQ_Pos                10U                                            /*!< ITM TCR: Global timestamp frequency Position */
+#define ITM_TCR_GTSFREQ_Msk                (3UL << ITM_TCR_GTSFREQ_Pos)                   /*!< ITM TCR: Global timestamp frequency Mask */
+
+#define ITM_TCR_TSPrescale_Pos              8U                                            /*!< ITM TCR: TSPrescale Position */
+#define ITM_TCR_TSPrescale_Msk             (3UL << ITM_TCR_TSPrescale_Pos)                /*!< ITM TCR: TSPrescale Mask */
+
+#define ITM_TCR_SWOENA_Pos                  4U                                            /*!< ITM TCR: SWOENA Position */
+#define ITM_TCR_SWOENA_Msk                 (1UL << ITM_TCR_SWOENA_Pos)                    /*!< ITM TCR: SWOENA Mask */
+
+#define ITM_TCR_DWTENA_Pos                  3U                                            /*!< ITM TCR: DWTENA Position */
+#define ITM_TCR_DWTENA_Msk                 (1UL << ITM_TCR_DWTENA_Pos)                    /*!< ITM TCR: DWTENA Mask */
+
+#define ITM_TCR_SYNCENA_Pos                 2U                                            /*!< ITM TCR: SYNCENA Position */
+#define ITM_TCR_SYNCENA_Msk                (1UL << ITM_TCR_SYNCENA_Pos)                   /*!< ITM TCR: SYNCENA Mask */
+
+#define ITM_TCR_TSENA_Pos                   1U                                            /*!< ITM TCR: TSENA Position */
+#define ITM_TCR_TSENA_Msk                  (1UL << ITM_TCR_TSENA_Pos)                     /*!< ITM TCR: TSENA Mask */
+
+#define ITM_TCR_ITMENA_Pos                  0U                                            /*!< ITM TCR: ITM Enable bit Position */
+#define ITM_TCR_ITMENA_Msk                 (1UL /*<< ITM_TCR_ITMENA_Pos*/)                /*!< ITM TCR: ITM Enable bit Mask */
+
+/* ITM Integration Write Register Definitions */
+#define ITM_IWR_ATVALIDM_Pos                0U                                            /*!< ITM IWR: ATVALIDM Position */
+#define ITM_IWR_ATVALIDM_Msk               (1UL /*<< ITM_IWR_ATVALIDM_Pos*/)              /*!< ITM IWR: ATVALIDM Mask */
+
+/* ITM Integration Read Register Definitions */
+#define ITM_IRR_ATREADYM_Pos                0U                                            /*!< ITM IRR: ATREADYM Position */
+#define ITM_IRR_ATREADYM_Msk               (1UL /*<< ITM_IRR_ATREADYM_Pos*/)              /*!< ITM IRR: ATREADYM Mask */
+
+/* ITM Integration Mode Control Register Definitions */
+#define ITM_IMCR_INTEGRATION_Pos            0U                                            /*!< ITM IMCR: INTEGRATION Position */
+#define ITM_IMCR_INTEGRATION_Msk           (1UL /*<< ITM_IMCR_INTEGRATION_Pos*/)          /*!< ITM IMCR: INTEGRATION Mask */
+
+/* ITM Lock Status Register Definitions */
+#define ITM_LSR_ByteAcc_Pos                 2U                                            /*!< ITM LSR: ByteAcc Position */
+#define ITM_LSR_ByteAcc_Msk                (1UL << ITM_LSR_ByteAcc_Pos)                   /*!< ITM LSR: ByteAcc Mask */
+
+#define ITM_LSR_Access_Pos                  1U                                            /*!< ITM LSR: Access Position */
+#define ITM_LSR_Access_Msk                 (1UL << ITM_LSR_Access_Pos)                    /*!< ITM LSR: Access Mask */
+
+#define ITM_LSR_Present_Pos                 0U                                            /*!< ITM LSR: Present Position */
+#define ITM_LSR_Present_Msk                (1UL /*<< ITM_LSR_Present_Pos*/)               /*!< ITM LSR: Present Mask */
+
+/*@}*/ /* end of group CMSIS_ITM */
+
+
+/**
+  \ingroup  CMSIS_core_register
+  \defgroup CMSIS_DWT     Data Watchpoint and Trace (DWT)
+  \brief    Type definitions for the Data Watchpoint and Trace (DWT)
+  @{
+ */
+
+/**
+  \brief  Structure type to access the Data Watchpoint and Trace Register (DWT).
+ */
+typedef struct
+{
+  __IOM uint32_t CTRL;                   /*!< Offset: 0x000 (R/W)  Control Register */
+  __IOM uint32_t CYCCNT;                 /*!< Offset: 0x004 (R/W)  Cycle Count Register */
+  __IOM uint32_t CPICNT;                 /*!< Offset: 0x008 (R/W)  CPI Count Register */
+  __IOM uint32_t EXCCNT;                 /*!< Offset: 0x00C (R/W)  Exception Overhead Count Register */
+  __IOM uint32_t SLEEPCNT;               /*!< Offset: 0x010 (R/W)  Sleep Count Register */
+  __IOM uint32_t LSUCNT;                 /*!< Offset: 0x014 (R/W)  LSU Count Register */
+  __IOM uint32_t FOLDCNT;                /*!< Offset: 0x018 (R/W)  Folded-instruction Count Register */
+  __IM  uint32_t PCSR;                   /*!< Offset: 0x01C (R/ )  Program Counter Sample Register */
+  __IOM uint32_t COMP0;                  /*!< Offset: 0x020 (R/W)  Comparator Register 0 */
+  __IOM uint32_t MASK0;                  /*!< Offset: 0x024 (R/W)  Mask Register 0 */
+  __IOM uint32_t FUNCTION0;              /*!< Offset: 0x028 (R/W)  Function Register 0 */
+        uint32_t RESERVED0[1U];
+  __IOM uint32_t COMP1;                  /*!< Offset: 0x030 (R/W)  Comparator Register 1 */
+  __IOM uint32_t MASK1;                  /*!< Offset: 0x034 (R/W)  Mask Register 1 */
+  __IOM uint32_t FUNCTION1;              /*!< Offset: 0x038 (R/W)  Function Register 1 */
+        uint32_t RESERVED1[1U];
+  __IOM uint32_t COMP2;                  /*!< Offset: 0x040 (R/W)  Comparator Register 2 */
+  __IOM uint32_t MASK2;                  /*!< Offset: 0x044 (R/W)  Mask Register 2 */
+  __IOM uint32_t FUNCTION2;              /*!< Offset: 0x048 (R/W)  Function Register 2 */
+        uint32_t RESERVED2[1U];
+  __IOM uint32_t COMP3;                  /*!< Offset: 0x050 (R/W)  Comparator Register 3 */
+  __IOM uint32_t MASK3;                  /*!< Offset: 0x054 (R/W)  Mask Register 3 */
+  __IOM uint32_t FUNCTION3;              /*!< Offset: 0x058 (R/W)  Function Register 3 */
+} DWT_Type;
+
+/* DWT Control Register Definitions */
+#define DWT_CTRL_NUMCOMP_Pos               28U                                         /*!< DWT CTRL: NUMCOMP Position */
+#define DWT_CTRL_NUMCOMP_Msk               (0xFUL << DWT_CTRL_NUMCOMP_Pos)             /*!< DWT CTRL: NUMCOMP Mask */
+
+#define DWT_CTRL_NOTRCPKT_Pos              27U                                         /*!< DWT CTRL: NOTRCPKT Position */
+#define DWT_CTRL_NOTRCPKT_Msk              (0x1UL << DWT_CTRL_NOTRCPKT_Pos)            /*!< DWT CTRL: NOTRCPKT Mask */
+
+#define DWT_CTRL_NOEXTTRIG_Pos             26U                                         /*!< DWT CTRL: NOEXTTRIG Position */
+#define DWT_CTRL_NOEXTTRIG_Msk             (0x1UL << DWT_CTRL_NOEXTTRIG_Pos)           /*!< DWT CTRL: NOEXTTRIG Mask */
+
+#define DWT_CTRL_NOCYCCNT_Pos              25U                                         /*!< DWT CTRL: NOCYCCNT Position */
+#define DWT_CTRL_NOCYCCNT_Msk              (0x1UL << DWT_CTRL_NOCYCCNT_Pos)            /*!< DWT CTRL: NOCYCCNT Mask */
+
+#define DWT_CTRL_NOPRFCNT_Pos              24U                                         /*!< DWT CTRL: NOPRFCNT Position */
+#define DWT_CTRL_NOPRFCNT_Msk              (0x1UL << DWT_CTRL_NOPRFCNT_Pos)            /*!< DWT CTRL: NOPRFCNT Mask */
+
+#define DWT_CTRL_CYCEVTENA_Pos             22U                                         /*!< DWT CTRL: CYCEVTENA Position */
+#define DWT_CTRL_CYCEVTENA_Msk             (0x1UL << DWT_CTRL_CYCEVTENA_Pos)           /*!< DWT CTRL: CYCEVTENA Mask */
+
+#define DWT_CTRL_FOLDEVTENA_Pos            21U                                         /*!< DWT CTRL: FOLDEVTENA Position */
+#define DWT_CTRL_FOLDEVTENA_Msk            (0x1UL << DWT_CTRL_FOLDEVTENA_Pos)          /*!< DWT CTRL: FOLDEVTENA Mask */
+
+#define DWT_CTRL_LSUEVTENA_Pos             20U                                         /*!< DWT CTRL: LSUEVTENA Position */
+#define DWT_CTRL_LSUEVTENA_Msk             (0x1UL << DWT_CTRL_LSUEVTENA_Pos)           /*!< DWT CTRL: LSUEVTENA Mask */
+
+#define DWT_CTRL_SLEEPEVTENA_Pos           19U                                         /*!< DWT CTRL: SLEEPEVTENA Position */
+#define DWT_CTRL_SLEEPEVTENA_Msk           (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos)         /*!< DWT CTRL: SLEEPEVTENA Mask */
+
+#define DWT_CTRL_EXCEVTENA_Pos             18U                                         /*!< DWT CTRL: EXCEVTENA Position */
+#define DWT_CTRL_EXCEVTENA_Msk             (0x1UL << DWT_CTRL_EXCEVTENA_Pos)           /*!< DWT CTRL: EXCEVTENA Mask */
+
+#define DWT_CTRL_CPIEVTENA_Pos             17U                                         /*!< DWT CTRL: CPIEVTENA Position */
+#define DWT_CTRL_CPIEVTENA_Msk             (0x1UL << DWT_CTRL_CPIEVTENA_Pos)           /*!< DWT CTRL: CPIEVTENA Mask */
+
+#define DWT_CTRL_EXCTRCENA_Pos             16U                                         /*!< DWT CTRL: EXCTRCENA Position */
+#define DWT_CTRL_EXCTRCENA_Msk             (0x1UL << DWT_CTRL_EXCTRCENA_Pos)           /*!< DWT CTRL: EXCTRCENA Mask */
+
+#define DWT_CTRL_PCSAMPLENA_Pos            12U                                         /*!< DWT CTRL: PCSAMPLENA Position */
+#define DWT_CTRL_PCSAMPLENA_Msk            (0x1UL << DWT_CTRL_PCSAMPLENA_Pos)          /*!< DWT CTRL: PCSAMPLENA Mask */
+
+#define DWT_CTRL_SYNCTAP_Pos               10U                                         /*!< DWT CTRL: SYNCTAP Position */
+#define DWT_CTRL_SYNCTAP_Msk               (0x3UL << DWT_CTRL_SYNCTAP_Pos)             /*!< DWT CTRL: SYNCTAP Mask */
+
+#define DWT_CTRL_CYCTAP_Pos                 9U                                         /*!< DWT CTRL: CYCTAP Position */
+#define DWT_CTRL_CYCTAP_Msk                (0x1UL << DWT_CTRL_CYCTAP_Pos)              /*!< DWT CTRL: CYCTAP Mask */
+
+#define DWT_CTRL_POSTINIT_Pos               5U                                         /*!< DWT CTRL: POSTINIT Position */
+#define DWT_CTRL_POSTINIT_Msk              (0xFUL << DWT_CTRL_POSTINIT_Pos)            /*!< DWT CTRL: POSTINIT Mask */
+
+#define DWT_CTRL_POSTPRESET_Pos             1U                                         /*!< DWT CTRL: POSTPRESET Position */
+#define DWT_CTRL_POSTPRESET_Msk            (0xFUL << DWT_CTRL_POSTPRESET_Pos)          /*!< DWT CTRL: POSTPRESET Mask */
+
+#define DWT_CTRL_CYCCNTENA_Pos              0U                                         /*!< DWT CTRL: CYCCNTENA Position */
+#define DWT_CTRL_CYCCNTENA_Msk             (0x1UL /*<< DWT_CTRL_CYCCNTENA_Pos*/)       /*!< DWT CTRL: CYCCNTENA Mask */
+
+/* DWT CPI Count Register Definitions */
+#define DWT_CPICNT_CPICNT_Pos               0U                                         /*!< DWT CPICNT: CPICNT Position */
+#define DWT_CPICNT_CPICNT_Msk              (0xFFUL /*<< DWT_CPICNT_CPICNT_Pos*/)       /*!< DWT CPICNT: CPICNT Mask */
+
+/* DWT Exception Overhead Count Register Definitions */
+#define DWT_EXCCNT_EXCCNT_Pos               0U                                         /*!< DWT EXCCNT: EXCCNT Position */
+#define DWT_EXCCNT_EXCCNT_Msk              (0xFFUL /*<< DWT_EXCCNT_EXCCNT_Pos*/)       /*!< DWT EXCCNT: EXCCNT Mask */
+
+/* DWT Sleep Count Register Definitions */
+#define DWT_SLEEPCNT_SLEEPCNT_Pos           0U                                         /*!< DWT SLEEPCNT: SLEEPCNT Position */
+#define DWT_SLEEPCNT_SLEEPCNT_Msk          (0xFFUL /*<< DWT_SLEEPCNT_SLEEPCNT_Pos*/)   /*!< DWT SLEEPCNT: SLEEPCNT Mask */
+
+/* DWT LSU Count Register Definitions */
+#define DWT_LSUCNT_LSUCNT_Pos               0U                                         /*!< DWT LSUCNT: LSUCNT Position */
+#define DWT_LSUCNT_LSUCNT_Msk              (0xFFUL /*<< DWT_LSUCNT_LSUCNT_Pos*/)       /*!< DWT LSUCNT: LSUCNT Mask */
+
+/* DWT Folded-instruction Count Register Definitions */
+#define DWT_FOLDCNT_FOLDCNT_Pos             0U                                         /*!< DWT FOLDCNT: FOLDCNT Position */
+#define DWT_FOLDCNT_FOLDCNT_Msk            (0xFFUL /*<< DWT_FOLDCNT_FOLDCNT_Pos*/)     /*!< DWT FOLDCNT: FOLDCNT Mask */
+
+/* DWT Comparator Mask Register Definitions */
+#define DWT_MASK_MASK_Pos                   0U                                         /*!< DWT MASK: MASK Position */
+#define DWT_MASK_MASK_Msk                  (0x1FUL /*<< DWT_MASK_MASK_Pos*/)           /*!< DWT MASK: MASK Mask */
+
+/* DWT Comparator Function Register Definitions */
+#define DWT_FUNCTION_MATCHED_Pos           24U                                         /*!< DWT FUNCTION: MATCHED Position */
+#define DWT_FUNCTION_MATCHED_Msk           (0x1UL << DWT_FUNCTION_MATCHED_Pos)         /*!< DWT FUNCTION: MATCHED Mask */
+
+#define DWT_FUNCTION_DATAVADDR1_Pos        16U                                         /*!< DWT FUNCTION: DATAVADDR1 Position */
+#define DWT_FUNCTION_DATAVADDR1_Msk        (0xFUL << DWT_FUNCTION_DATAVADDR1_Pos)      /*!< DWT FUNCTION: DATAVADDR1 Mask */
+
+#define DWT_FUNCTION_DATAVADDR0_Pos        12U                                         /*!< DWT FUNCTION: DATAVADDR0 Position */
+#define DWT_FUNCTION_DATAVADDR0_Msk        (0xFUL << DWT_FUNCTION_DATAVADDR0_Pos)      /*!< DWT FUNCTION: DATAVADDR0 Mask */
+
+#define DWT_FUNCTION_DATAVSIZE_Pos         10U                                         /*!< DWT FUNCTION: DATAVSIZE Position */
+#define DWT_FUNCTION_DATAVSIZE_Msk         (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos)       /*!< DWT FUNCTION: DATAVSIZE Mask */
+
+#define DWT_FUNCTION_LNK1ENA_Pos            9U                                         /*!< DWT FUNCTION: LNK1ENA Position */
+#define DWT_FUNCTION_LNK1ENA_Msk           (0x1UL << DWT_FUNCTION_LNK1ENA_Pos)         /*!< DWT FUNCTION: LNK1ENA Mask */
+
+#define DWT_FUNCTION_DATAVMATCH_Pos         8U                                         /*!< DWT FUNCTION: DATAVMATCH Position */
+#define DWT_FUNCTION_DATAVMATCH_Msk        (0x1UL << DWT_FUNCTION_DATAVMATCH_Pos)      /*!< DWT FUNCTION: DATAVMATCH Mask */
+
+#define DWT_FUNCTION_CYCMATCH_Pos           7U                                         /*!< DWT FUNCTION: CYCMATCH Position */
+#define DWT_FUNCTION_CYCMATCH_Msk          (0x1UL << DWT_FUNCTION_CYCMATCH_Pos)        /*!< DWT FUNCTION: CYCMATCH Mask */
+
+#define DWT_FUNCTION_EMITRANGE_Pos          5U                                         /*!< DWT FUNCTION: EMITRANGE Position */
+#define DWT_FUNCTION_EMITRANGE_Msk         (0x1UL << DWT_FUNCTION_EMITRANGE_Pos)       /*!< DWT FUNCTION: EMITRANGE Mask */
+
+#define DWT_FUNCTION_FUNCTION_Pos           0U                                         /*!< DWT FUNCTION: FUNCTION Position */
+#define DWT_FUNCTION_FUNCTION_Msk          (0xFUL /*<< DWT_FUNCTION_FUNCTION_Pos*/)    /*!< DWT FUNCTION: FUNCTION Mask */
+
+/*@}*/ /* end of group CMSIS_DWT */
+
+
+/**
+  \ingroup  CMSIS_core_register
+  \defgroup CMSIS_TPI     Trace Port Interface (TPI)
+  \brief    Type definitions for the Trace Port Interface (TPI)
+  @{
+ */
+
+/**
+  \brief  Structure type to access the Trace Port Interface Register (TPI).
+ */
+typedef struct
+{
+  __IOM uint32_t SSPSR;                  /*!< Offset: 0x000 (R/ )  Supported Parallel Port Size Register */
+  __IOM uint32_t CSPSR;                  /*!< Offset: 0x004 (R/W)  Current Parallel Port Size Register */
+        uint32_t RESERVED0[2U];
+  __IOM uint32_t ACPR;                   /*!< Offset: 0x010 (R/W)  Asynchronous Clock Prescaler Register */
+        uint32_t RESERVED1[55U];
+  __IOM uint32_t SPPR;                   /*!< Offset: 0x0F0 (R/W)  Selected Pin Protocol Register */
+        uint32_t RESERVED2[131U];
+  __IM  uint32_t FFSR;                   /*!< Offset: 0x300 (R/ )  Formatter and Flush Status Register */
+  __IOM uint32_t FFCR;                   /*!< Offset: 0x304 (R/W)  Formatter and Flush Control Register */
+  __IM  uint32_t FSCR;                   /*!< Offset: 0x308 (R/ )  Formatter Synchronization Counter Register */
+        uint32_t RESERVED3[759U];
+  __IM  uint32_t TRIGGER;                /*!< Offset: 0xEE8 (R/ )  TRIGGER */
+  __IM  uint32_t FIFO0;                  /*!< Offset: 0xEEC (R/ )  Integration ETM Data */
+  __IM  uint32_t ITATBCTR2;              /*!< Offset: 0xEF0 (R/ )  ITATBCTR2 */
+        uint32_t RESERVED4[1U];
+  __IM  uint32_t ITATBCTR0;              /*!< Offset: 0xEF8 (R/ )  ITATBCTR0 */
+  __IM  uint32_t FIFO1;                  /*!< Offset: 0xEFC (R/ )  Integration ITM Data */
+  __IOM uint32_t ITCTRL;                 /*!< Offset: 0xF00 (R/W)  Integration Mode Control */
+        uint32_t RESERVED5[39U];
+  __IOM uint32_t CLAIMSET;               /*!< Offset: 0xFA0 (R/W)  Claim tag set */
+  __IOM uint32_t CLAIMCLR;               /*!< Offset: 0xFA4 (R/W)  Claim tag clear */
+        uint32_t RESERVED7[8U];
+  __IM  uint32_t DEVID;                  /*!< Offset: 0xFC8 (R/ )  TPIU_DEVID */
+  __IM  uint32_t DEVTYPE;                /*!< Offset: 0xFCC (R/ )  TPIU_DEVTYPE */
+} TPI_Type;
+
+/* TPI Asynchronous Clock Prescaler Register Definitions */
+#define TPI_ACPR_PRESCALER_Pos              0U                                         /*!< TPI ACPR: PRESCALER Position */
+#define TPI_ACPR_PRESCALER_Msk             (0x1FFFUL /*<< TPI_ACPR_PRESCALER_Pos*/)    /*!< TPI ACPR: PRESCALER Mask */
+
+/* TPI Selected Pin Protocol Register Definitions */
+#define TPI_SPPR_TXMODE_Pos                 0U                                         /*!< TPI SPPR: TXMODE Position */
+#define TPI_SPPR_TXMODE_Msk                (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/)          /*!< TPI SPPR: TXMODE Mask */
+
+/* TPI Formatter and Flush Status Register Definitions */
+#define TPI_FFSR_FtNonStop_Pos              3U                                         /*!< TPI FFSR: FtNonStop Position */
+#define TPI_FFSR_FtNonStop_Msk             (0x1UL << TPI_FFSR_FtNonStop_Pos)           /*!< TPI FFSR: FtNonStop Mask */
+
+#define TPI_FFSR_TCPresent_Pos              2U                                         /*!< TPI FFSR: TCPresent Position */
+#define TPI_FFSR_TCPresent_Msk             (0x1UL << TPI_FFSR_TCPresent_Pos)           /*!< TPI FFSR: TCPresent Mask */
+
+#define TPI_FFSR_FtStopped_Pos              1U                                         /*!< TPI FFSR: FtStopped Position */
+#define TPI_FFSR_FtStopped_Msk             (0x1UL << TPI_FFSR_FtStopped_Pos)           /*!< TPI FFSR: FtStopped Mask */
+
+#define TPI_FFSR_FlInProg_Pos               0U                                         /*!< TPI FFSR: FlInProg Position */
+#define TPI_FFSR_FlInProg_Msk              (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/)        /*!< TPI FFSR: FlInProg Mask */
+
+/* TPI Formatter and Flush Control Register Definitions */
+#define TPI_FFCR_TrigIn_Pos                 8U                                         /*!< TPI FFCR: TrigIn Position */
+#define TPI_FFCR_TrigIn_Msk                (0x1UL << TPI_FFCR_TrigIn_Pos)              /*!< TPI FFCR: TrigIn Mask */
+
+#define TPI_FFCR_EnFCont_Pos                1U                                         /*!< TPI FFCR: EnFCont Position */
+#define TPI_FFCR_EnFCont_Msk               (0x1UL << TPI_FFCR_EnFCont_Pos)             /*!< TPI FFCR: EnFCont Mask */
+
+/* TPI TRIGGER Register Definitions */
+#define TPI_TRIGGER_TRIGGER_Pos             0U                                         /*!< TPI TRIGGER: TRIGGER Position */
+#define TPI_TRIGGER_TRIGGER_Msk            (0x1UL /*<< TPI_TRIGGER_TRIGGER_Pos*/)      /*!< TPI TRIGGER: TRIGGER Mask */
+
+/* TPI Integration ETM Data Register Definitions (FIFO0) */
+#define TPI_FIFO0_ITM_ATVALID_Pos          29U                                         /*!< TPI FIFO0: ITM_ATVALID Position */
+#define TPI_FIFO0_ITM_ATVALID_Msk          (0x3UL << TPI_FIFO0_ITM_ATVALID_Pos)        /*!< TPI FIFO0: ITM_ATVALID Mask */
+
+#define TPI_FIFO0_ITM_bytecount_Pos        27U                                         /*!< TPI FIFO0: ITM_bytecount Position */
+#define TPI_FIFO0_ITM_bytecount_Msk        (0x3UL << TPI_FIFO0_ITM_bytecount_Pos)      /*!< TPI FIFO0: ITM_bytecount Mask */
+
+#define TPI_FIFO0_ETM_ATVALID_Pos          26U                                         /*!< TPI FIFO0: ETM_ATVALID Position */
+#define TPI_FIFO0_ETM_ATVALID_Msk          (0x3UL << TPI_FIFO0_ETM_ATVALID_Pos)        /*!< TPI FIFO0: ETM_ATVALID Mask */
+
+#define TPI_FIFO0_ETM_bytecount_Pos        24U                                         /*!< TPI FIFO0: ETM_bytecount Position */
+#define TPI_FIFO0_ETM_bytecount_Msk        (0x3UL << TPI_FIFO0_ETM_bytecount_Pos)      /*!< TPI FIFO0: ETM_bytecount Mask */
+
+#define TPI_FIFO0_ETM2_Pos                 16U                                         /*!< TPI FIFO0: ETM2 Position */
+#define TPI_FIFO0_ETM2_Msk                 (0xFFUL << TPI_FIFO0_ETM2_Pos)              /*!< TPI FIFO0: ETM2 Mask */
+
+#define TPI_FIFO0_ETM1_Pos                  8U                                         /*!< TPI FIFO0: ETM1 Position */
+#define TPI_FIFO0_ETM1_Msk                 (0xFFUL << TPI_FIFO0_ETM1_Pos)              /*!< TPI FIFO0: ETM1 Mask */
+
+#define TPI_FIFO0_ETM0_Pos                  0U                                         /*!< TPI FIFO0: ETM0 Position */
+#define TPI_FIFO0_ETM0_Msk                 (0xFFUL /*<< TPI_FIFO0_ETM0_Pos*/)          /*!< TPI FIFO0: ETM0 Mask */
+
+/* TPI ITATBCTR2 Register Definitions */
+#define TPI_ITATBCTR2_ATREADY_Pos           0U                                         /*!< TPI ITATBCTR2: ATREADY Position */
+#define TPI_ITATBCTR2_ATREADY_Msk          (0x1UL /*<< TPI_ITATBCTR2_ATREADY_Pos*/)    /*!< TPI ITATBCTR2: ATREADY Mask */
+
+/* TPI Integration ITM Data Register Definitions (FIFO1) */
+#define TPI_FIFO1_ITM_ATVALID_Pos          29U                                         /*!< TPI FIFO1: ITM_ATVALID Position */
+#define TPI_FIFO1_ITM_ATVALID_Msk          (0x3UL << TPI_FIFO1_ITM_ATVALID_Pos)        /*!< TPI FIFO1: ITM_ATVALID Mask */
+
+#define TPI_FIFO1_ITM_bytecount_Pos        27U                                         /*!< TPI FIFO1: ITM_bytecount Position */
+#define TPI_FIFO1_ITM_bytecount_Msk        (0x3UL << TPI_FIFO1_ITM_bytecount_Pos)      /*!< TPI FIFO1: ITM_bytecount Mask */
+
+#define TPI_FIFO1_ETM_ATVALID_Pos          26U                                         /*!< TPI FIFO1: ETM_ATVALID Position */
+#define TPI_FIFO1_ETM_ATVALID_Msk          (0x3UL << TPI_FIFO1_ETM_ATVALID_Pos)        /*!< TPI FIFO1: ETM_ATVALID Mask */
+
+#define TPI_FIFO1_ETM_bytecount_Pos        24U                                         /*!< TPI FIFO1: ETM_bytecount Position */
+#define TPI_FIFO1_ETM_bytecount_Msk        (0x3UL << TPI_FIFO1_ETM_bytecount_Pos)      /*!< TPI FIFO1: ETM_bytecount Mask */
+
+#define TPI_FIFO1_ITM2_Pos                 16U                                         /*!< TPI FIFO1: ITM2 Position */
+#define TPI_FIFO1_ITM2_Msk                 (0xFFUL << TPI_FIFO1_ITM2_Pos)              /*!< TPI FIFO1: ITM2 Mask */
+
+#define TPI_FIFO1_ITM1_Pos                  8U                                         /*!< TPI FIFO1: ITM1 Position */
+#define TPI_FIFO1_ITM1_Msk                 (0xFFUL << TPI_FIFO1_ITM1_Pos)              /*!< TPI FIFO1: ITM1 Mask */
+
+#define TPI_FIFO1_ITM0_Pos                  0U                                         /*!< TPI FIFO1: ITM0 Position */
+#define TPI_FIFO1_ITM0_Msk                 (0xFFUL /*<< TPI_FIFO1_ITM0_Pos*/)          /*!< TPI FIFO1: ITM0 Mask */
+
+/* TPI ITATBCTR0 Register Definitions */
+#define TPI_ITATBCTR0_ATREADY_Pos           0U                                         /*!< TPI ITATBCTR0: ATREADY Position */
+#define TPI_ITATBCTR0_ATREADY_Msk          (0x1UL /*<< TPI_ITATBCTR0_ATREADY_Pos*/)    /*!< TPI ITATBCTR0: ATREADY Mask */
+
+/* TPI Integration Mode Control Register Definitions */
+#define TPI_ITCTRL_Mode_Pos                 0U                                         /*!< TPI ITCTRL: Mode Position */
+#define TPI_ITCTRL_Mode_Msk                (0x1UL /*<< TPI_ITCTRL_Mode_Pos*/)          /*!< TPI ITCTRL: Mode Mask */
+
+/* TPI DEVID Register Definitions */
+#define TPI_DEVID_NRZVALID_Pos             11U                                         /*!< TPI DEVID: NRZVALID Position */
+#define TPI_DEVID_NRZVALID_Msk             (0x1UL << TPI_DEVID_NRZVALID_Pos)           /*!< TPI DEVID: NRZVALID Mask */
+
+#define TPI_DEVID_MANCVALID_Pos            10U                                         /*!< TPI DEVID: MANCVALID Position */
+#define TPI_DEVID_MANCVALID_Msk            (0x1UL << TPI_DEVID_MANCVALID_Pos)          /*!< TPI DEVID: MANCVALID Mask */
+
+#define TPI_DEVID_PTINVALID_Pos             9U                                         /*!< TPI DEVID: PTINVALID Position */
+#define TPI_DEVID_PTINVALID_Msk            (0x1UL << TPI_DEVID_PTINVALID_Pos)          /*!< TPI DEVID: PTINVALID Mask */
+
+#define TPI_DEVID_MinBufSz_Pos              6U                                         /*!< TPI DEVID: MinBufSz Position */
+#define TPI_DEVID_MinBufSz_Msk             (0x7UL << TPI_DEVID_MinBufSz_Pos)           /*!< TPI DEVID: MinBufSz Mask */
+
+#define TPI_DEVID_AsynClkIn_Pos             5U                                         /*!< TPI DEVID: AsynClkIn Position */
+#define TPI_DEVID_AsynClkIn_Msk            (0x1UL << TPI_DEVID_AsynClkIn_Pos)          /*!< TPI DEVID: AsynClkIn Mask */
+
+#define TPI_DEVID_NrTraceInput_Pos          0U                                         /*!< TPI DEVID: NrTraceInput Position */
+#define TPI_DEVID_NrTraceInput_Msk         (0x1FUL /*<< TPI_DEVID_NrTraceInput_Pos*/)  /*!< TPI DEVID: NrTraceInput Mask */
+
+/* TPI DEVTYPE Register Definitions */
+#define TPI_DEVTYPE_MajorType_Pos           4U                                         /*!< TPI DEVTYPE: MajorType Position */
+#define TPI_DEVTYPE_MajorType_Msk          (0xFUL << TPI_DEVTYPE_MajorType_Pos)        /*!< TPI DEVTYPE: MajorType Mask */
+
+#define TPI_DEVTYPE_SubType_Pos             0U                                         /*!< TPI DEVTYPE: SubType Position */
+#define TPI_DEVTYPE_SubType_Msk            (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/)      /*!< TPI DEVTYPE: SubType Mask */
+
+/*@}*/ /* end of group CMSIS_TPI */
+
+
+#if (__MPU_PRESENT == 1U)
+/**
+  \ingroup  CMSIS_core_register
+  \defgroup CMSIS_MPU     Memory Protection Unit (MPU)
+  \brief    Type definitions for the Memory Protection Unit (MPU)
+  @{
+ */
+
+/**
+  \brief  Structure type to access the Memory Protection Unit (MPU).
+ */
+typedef struct
+{
+  __IM  uint32_t TYPE;                   /*!< Offset: 0x000 (R/ )  MPU Type Register */
+  __IOM uint32_t CTRL;                   /*!< Offset: 0x004 (R/W)  MPU Control Register */
+  __IOM uint32_t RNR;                    /*!< Offset: 0x008 (R/W)  MPU Region RNRber Register */
+  __IOM uint32_t RBAR;                   /*!< Offset: 0x00C (R/W)  MPU Region Base Address Register */
+  __IOM uint32_t RASR;                   /*!< Offset: 0x010 (R/W)  MPU Region Attribute and Size Register */
+  __IOM uint32_t RBAR_A1;                /*!< Offset: 0x014 (R/W)  MPU Alias 1 Region Base Address Register */
+  __IOM uint32_t RASR_A1;                /*!< Offset: 0x018 (R/W)  MPU Alias 1 Region Attribute and Size Register */
+  __IOM uint32_t RBAR_A2;                /*!< Offset: 0x01C (R/W)  MPU Alias 2 Region Base Address Register */
+  __IOM uint32_t RASR_A2;                /*!< Offset: 0x020 (R/W)  MPU Alias 2 Region Attribute and Size Register */
+  __IOM uint32_t RBAR_A3;                /*!< Offset: 0x024 (R/W)  MPU Alias 3 Region Base Address Register */
+  __IOM uint32_t RASR_A3;                /*!< Offset: 0x028 (R/W)  MPU Alias 3 Region Attribute and Size Register */
+} MPU_Type;
+
+/* MPU Type Register Definitions */
+#define MPU_TYPE_IREGION_Pos               16U                                            /*!< MPU TYPE: IREGION Position */
+#define MPU_TYPE_IREGION_Msk               (0xFFUL << MPU_TYPE_IREGION_Pos)               /*!< MPU TYPE: IREGION Mask */
+
+#define MPU_TYPE_DREGION_Pos                8U                                            /*!< MPU TYPE: DREGION Position */
+#define MPU_TYPE_DREGION_Msk               (0xFFUL << MPU_TYPE_DREGION_Pos)               /*!< MPU TYPE: DREGION Mask */
+
+#define MPU_TYPE_SEPARATE_Pos               0U                                            /*!< MPU TYPE: SEPARATE Position */
+#define MPU_TYPE_SEPARATE_Msk              (1UL /*<< MPU_TYPE_SEPARATE_Pos*/)             /*!< MPU TYPE: SEPARATE Mask */
+
+/* MPU Control Register Definitions */
+#define MPU_CTRL_PRIVDEFENA_Pos             2U                                            /*!< MPU CTRL: PRIVDEFENA Position */
+#define MPU_CTRL_PRIVDEFENA_Msk            (1UL << MPU_CTRL_PRIVDEFENA_Pos)               /*!< MPU CTRL: PRIVDEFENA Mask */
+
+#define MPU_CTRL_HFNMIENA_Pos               1U                                            /*!< MPU CTRL: HFNMIENA Position */
+#define MPU_CTRL_HFNMIENA_Msk              (1UL << MPU_CTRL_HFNMIENA_Pos)                 /*!< MPU CTRL: HFNMIENA Mask */
+
+#define MPU_CTRL_ENABLE_Pos                 0U                                            /*!< MPU CTRL: ENABLE Position */
+#define MPU_CTRL_ENABLE_Msk                (1UL /*<< MPU_CTRL_ENABLE_Pos*/)               /*!< MPU CTRL: ENABLE Mask */
+
+/* MPU Region Number Register Definitions */
+#define MPU_RNR_REGION_Pos                  0U                                            /*!< MPU RNR: REGION Position */
+#define MPU_RNR_REGION_Msk                 (0xFFUL /*<< MPU_RNR_REGION_Pos*/)             /*!< MPU RNR: REGION Mask */
+
+/* MPU Region Base Address Register Definitions */
+#define MPU_RBAR_ADDR_Pos                   5U                                            /*!< MPU RBAR: ADDR Position */
+#define MPU_RBAR_ADDR_Msk                  (0x7FFFFFFUL << MPU_RBAR_ADDR_Pos)             /*!< MPU RBAR: ADDR Mask */
+
+#define MPU_RBAR_VALID_Pos                  4U                                            /*!< MPU RBAR: VALID Position */
+#define MPU_RBAR_VALID_Msk                 (1UL << MPU_RBAR_VALID_Pos)                    /*!< MPU RBAR: VALID Mask */
+
+#define MPU_RBAR_REGION_Pos                 0U                                            /*!< MPU RBAR: REGION Position */
+#define MPU_RBAR_REGION_Msk                (0xFUL /*<< MPU_RBAR_REGION_Pos*/)             /*!< MPU RBAR: REGION Mask */
+
+/* MPU Region Attribute and Size Register Definitions */
+#define MPU_RASR_ATTRS_Pos                 16U                                            /*!< MPU RASR: MPU Region Attribute field Position */
+#define MPU_RASR_ATTRS_Msk                 (0xFFFFUL << MPU_RASR_ATTRS_Pos)               /*!< MPU RASR: MPU Region Attribute field Mask */
+
+#define MPU_RASR_XN_Pos                    28U                                            /*!< MPU RASR: ATTRS.XN Position */
+#define MPU_RASR_XN_Msk                    (1UL << MPU_RASR_XN_Pos)                       /*!< MPU RASR: ATTRS.XN Mask */
+
+#define MPU_RASR_AP_Pos                    24U                                            /*!< MPU RASR: ATTRS.AP Position */
+#define MPU_RASR_AP_Msk                    (0x7UL << MPU_RASR_AP_Pos)                     /*!< MPU RASR: ATTRS.AP Mask */
+
+#define MPU_RASR_TEX_Pos                   19U                                            /*!< MPU RASR: ATTRS.TEX Position */
+#define MPU_RASR_TEX_Msk                   (0x7UL << MPU_RASR_TEX_Pos)                    /*!< MPU RASR: ATTRS.TEX Mask */
+
+#define MPU_RASR_S_Pos                     18U                                            /*!< MPU RASR: ATTRS.S Position */
+#define MPU_RASR_S_Msk                     (1UL << MPU_RASR_S_Pos)                        /*!< MPU RASR: ATTRS.S Mask */
+
+#define MPU_RASR_C_Pos                     17U                                            /*!< MPU RASR: ATTRS.C Position */
+#define MPU_RASR_C_Msk                     (1UL << MPU_RASR_C_Pos)                        /*!< MPU RASR: ATTRS.C Mask */
+
+#define MPU_RASR_B_Pos                     16U                                            /*!< MPU RASR: ATTRS.B Position */
+#define MPU_RASR_B_Msk                     (1UL << MPU_RASR_B_Pos)                        /*!< MPU RASR: ATTRS.B Mask */
+
+#define MPU_RASR_SRD_Pos                    8U                                            /*!< MPU RASR: Sub-Region Disable Position */
+#define MPU_RASR_SRD_Msk                   (0xFFUL << MPU_RASR_SRD_Pos)                   /*!< MPU RASR: Sub-Region Disable Mask */
+
+#define MPU_RASR_SIZE_Pos                   1U                                            /*!< MPU RASR: Region Size Field Position */
+#define MPU_RASR_SIZE_Msk                  (0x1FUL << MPU_RASR_SIZE_Pos)                  /*!< MPU RASR: Region Size Field Mask */
+
+#define MPU_RASR_ENABLE_Pos                 0U                                            /*!< MPU RASR: Region enable bit Position */
+#define MPU_RASR_ENABLE_Msk                (1UL /*<< MPU_RASR_ENABLE_Pos*/)               /*!< MPU RASR: Region enable bit Disable Mask */
+
+/*@} end of group CMSIS_MPU */
+#endif
+
+
+/**
+  \ingroup  CMSIS_core_register
+  \defgroup CMSIS_CoreDebug       Core Debug Registers (CoreDebug)
+  \brief    Type definitions for the Core Debug Registers
+  @{
+ */
+
+/**
+  \brief  Structure type to access the Core Debug Register (CoreDebug).
+ */
+typedef struct
+{
+  __IOM uint32_t DHCSR;                  /*!< Offset: 0x000 (R/W)  Debug Halting Control and Status Register */
+  __OM  uint32_t DCRSR;                  /*!< Offset: 0x004 ( /W)  Debug Core Register Selector Register */
+  __IOM uint32_t DCRDR;                  /*!< Offset: 0x008 (R/W)  Debug Core Register Data Register */
+  __IOM uint32_t DEMCR;                  /*!< Offset: 0x00C (R/W)  Debug Exception and Monitor Control Register */
+} CoreDebug_Type;
+
+/* Debug Halting Control and Status Register Definitions */
+#define CoreDebug_DHCSR_DBGKEY_Pos         16U                                            /*!< CoreDebug DHCSR: DBGKEY Position */
+#define CoreDebug_DHCSR_DBGKEY_Msk         (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos)       /*!< CoreDebug DHCSR: DBGKEY Mask */
+
+#define CoreDebug_DHCSR_S_RESET_ST_Pos     25U                                            /*!< CoreDebug DHCSR: S_RESET_ST Position */
+#define CoreDebug_DHCSR_S_RESET_ST_Msk     (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos)        /*!< CoreDebug DHCSR: S_RESET_ST Mask */
+
+#define CoreDebug_DHCSR_S_RETIRE_ST_Pos    24U                                            /*!< CoreDebug DHCSR: S_RETIRE_ST Position */
+#define CoreDebug_DHCSR_S_RETIRE_ST_Msk    (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos)       /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */
+
+#define CoreDebug_DHCSR_S_LOCKUP_Pos       19U                                            /*!< CoreDebug DHCSR: S_LOCKUP Position */
+#define CoreDebug_DHCSR_S_LOCKUP_Msk       (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos)          /*!< CoreDebug DHCSR: S_LOCKUP Mask */
+
+#define CoreDebug_DHCSR_S_SLEEP_Pos        18U                                            /*!< CoreDebug DHCSR: S_SLEEP Position */
+#define CoreDebug_DHCSR_S_SLEEP_Msk        (1UL << CoreDebug_DHCSR_S_SLEEP_Pos)           /*!< CoreDebug DHCSR: S_SLEEP Mask */
+
+#define CoreDebug_DHCSR_S_HALT_Pos         17U                                            /*!< CoreDebug DHCSR: S_HALT Position */
+#define CoreDebug_DHCSR_S_HALT_Msk         (1UL << CoreDebug_DHCSR_S_HALT_Pos)            /*!< CoreDebug DHCSR: S_HALT Mask */
+
+#define CoreDebug_DHCSR_S_REGRDY_Pos       16U                                            /*!< CoreDebug DHCSR: S_REGRDY Position */
+#define CoreDebug_DHCSR_S_REGRDY_Msk       (1UL << CoreDebug_DHCSR_S_REGRDY_Pos)          /*!< CoreDebug DHCSR: S_REGRDY Mask */
+
+#define CoreDebug_DHCSR_C_SNAPSTALL_Pos     5U                                            /*!< CoreDebug DHCSR: C_SNAPSTALL Position */
+#define CoreDebug_DHCSR_C_SNAPSTALL_Msk    (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos)       /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */
+
+#define CoreDebug_DHCSR_C_MASKINTS_Pos      3U                                            /*!< CoreDebug DHCSR: C_MASKINTS Position */
+#define CoreDebug_DHCSR_C_MASKINTS_Msk     (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos)        /*!< CoreDebug DHCSR: C_MASKINTS Mask */
+
+#define CoreDebug_DHCSR_C_STEP_Pos          2U                                            /*!< CoreDebug DHCSR: C_STEP Position */
+#define CoreDebug_DHCSR_C_STEP_Msk         (1UL << CoreDebug_DHCSR_C_STEP_Pos)            /*!< CoreDebug DHCSR: C_STEP Mask */
+
+#define CoreDebug_DHCSR_C_HALT_Pos          1U                                            /*!< CoreDebug DHCSR: C_HALT Position */
+#define CoreDebug_DHCSR_C_HALT_Msk         (1UL << CoreDebug_DHCSR_C_HALT_Pos)            /*!< CoreDebug DHCSR: C_HALT Mask */
+
+#define CoreDebug_DHCSR_C_DEBUGEN_Pos       0U                                            /*!< CoreDebug DHCSR: C_DEBUGEN Position */
+#define CoreDebug_DHCSR_C_DEBUGEN_Msk      (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/)     /*!< CoreDebug DHCSR: C_DEBUGEN Mask */
+
+/* Debug Core Register Selector Register Definitions */
+#define CoreDebug_DCRSR_REGWnR_Pos         16U                                            /*!< CoreDebug DCRSR: REGWnR Position */
+#define CoreDebug_DCRSR_REGWnR_Msk         (1UL << CoreDebug_DCRSR_REGWnR_Pos)            /*!< CoreDebug DCRSR: REGWnR Mask */
+
+#define CoreDebug_DCRSR_REGSEL_Pos          0U                                            /*!< CoreDebug DCRSR: REGSEL Position */
+#define CoreDebug_DCRSR_REGSEL_Msk         (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/)     /*!< CoreDebug DCRSR: REGSEL Mask */
+
+/* Debug Exception and Monitor Control Register Definitions */
+#define CoreDebug_DEMCR_TRCENA_Pos         24U                                            /*!< CoreDebug DEMCR: TRCENA Position */
+#define CoreDebug_DEMCR_TRCENA_Msk         (1UL << CoreDebug_DEMCR_TRCENA_Pos)            /*!< CoreDebug DEMCR: TRCENA Mask */
+
+#define CoreDebug_DEMCR_MON_REQ_Pos        19U                                            /*!< CoreDebug DEMCR: MON_REQ Position */
+#define CoreDebug_DEMCR_MON_REQ_Msk        (1UL << CoreDebug_DEMCR_MON_REQ_Pos)           /*!< CoreDebug DEMCR: MON_REQ Mask */
+
+#define CoreDebug_DEMCR_MON_STEP_Pos       18U                                            /*!< CoreDebug DEMCR: MON_STEP Position */
+#define CoreDebug_DEMCR_MON_STEP_Msk       (1UL << CoreDebug_DEMCR_MON_STEP_Pos)          /*!< CoreDebug DEMCR: MON_STEP Mask */
+
+#define CoreDebug_DEMCR_MON_PEND_Pos       17U                                            /*!< CoreDebug DEMCR: MON_PEND Position */
+#define CoreDebug_DEMCR_MON_PEND_Msk       (1UL << CoreDebug_DEMCR_MON_PEND_Pos)          /*!< CoreDebug DEMCR: MON_PEND Mask */
+
+#define CoreDebug_DEMCR_MON_EN_Pos         16U                                            /*!< CoreDebug DEMCR: MON_EN Position */
+#define CoreDebug_DEMCR_MON_EN_Msk         (1UL << CoreDebug_DEMCR_MON_EN_Pos)            /*!< CoreDebug DEMCR: MON_EN Mask */
+
+#define CoreDebug_DEMCR_VC_HARDERR_Pos     10U                                            /*!< CoreDebug DEMCR: VC_HARDERR Position */
+#define CoreDebug_DEMCR_VC_HARDERR_Msk     (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos)        /*!< CoreDebug DEMCR: VC_HARDERR Mask */
+
+#define CoreDebug_DEMCR_VC_INTERR_Pos       9U                                            /*!< CoreDebug DEMCR: VC_INTERR Position */
+#define CoreDebug_DEMCR_VC_INTERR_Msk      (1UL << CoreDebug_DEMCR_VC_INTERR_Pos)         /*!< CoreDebug DEMCR: VC_INTERR Mask */
+
+#define CoreDebug_DEMCR_VC_BUSERR_Pos       8U                                            /*!< CoreDebug DEMCR: VC_BUSERR Position */
+#define CoreDebug_DEMCR_VC_BUSERR_Msk      (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos)         /*!< CoreDebug DEMCR: VC_BUSERR Mask */
+
+#define CoreDebug_DEMCR_VC_STATERR_Pos      7U                                            /*!< CoreDebug DEMCR: VC_STATERR Position */
+#define CoreDebug_DEMCR_VC_STATERR_Msk     (1UL << CoreDebug_DEMCR_VC_STATERR_Pos)        /*!< CoreDebug DEMCR: VC_STATERR Mask */
+
+#define CoreDebug_DEMCR_VC_CHKERR_Pos       6U                                            /*!< CoreDebug DEMCR: VC_CHKERR Position */
+#define CoreDebug_DEMCR_VC_CHKERR_Msk      (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos)         /*!< CoreDebug DEMCR: VC_CHKERR Mask */
+
+#define CoreDebug_DEMCR_VC_NOCPERR_Pos      5U                                            /*!< CoreDebug DEMCR: VC_NOCPERR Position */
+#define CoreDebug_DEMCR_VC_NOCPERR_Msk     (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos)        /*!< CoreDebug DEMCR: VC_NOCPERR Mask */
+
+#define CoreDebug_DEMCR_VC_MMERR_Pos        4U                                            /*!< CoreDebug DEMCR: VC_MMERR Position */
+#define CoreDebug_DEMCR_VC_MMERR_Msk       (1UL << CoreDebug_DEMCR_VC_MMERR_Pos)          /*!< CoreDebug DEMCR: VC_MMERR Mask */
+
+#define CoreDebug_DEMCR_VC_CORERESET_Pos    0U                                            /*!< CoreDebug DEMCR: VC_CORERESET Position */
+#define CoreDebug_DEMCR_VC_CORERESET_Msk   (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/)  /*!< CoreDebug DEMCR: VC_CORERESET Mask */
+
+/*@} end of group CMSIS_CoreDebug */
+
+
+/**
+  \ingroup    CMSIS_core_register
+  \defgroup   CMSIS_core_bitfield     Core register bit field macros
+  \brief      Macros for use with bit field definitions (xxx_Pos, xxx_Msk).
+  @{
+ */
+
+/**
+  \brief   Mask and shift a bit field value for use in a register bit range.
+  \param[in] field  Name of the register bit field.
+  \param[in] value  Value of the bit field.
+  \return           Masked and shifted value.
+*/
+#define _VAL2FLD(field, value)    ((value << field ## _Pos) & field ## _Msk)
+
+/**
+  \brief     Mask and shift a register value to extract a bit filed value.
+  \param[in] field  Name of the register bit field.
+  \param[in] value  Value of register.
+  \return           Masked and shifted bit field value.
+*/
+#define _FLD2VAL(field, value)    ((value & field ## _Msk) >> field ## _Pos)
+
+/*@} end of group CMSIS_core_bitfield */
+
+
+/**
+  \ingroup    CMSIS_core_register
+  \defgroup   CMSIS_core_base     Core Definitions
+  \brief      Definitions for base addresses, unions, and structures.
+  @{
+ */
+
+/* Memory mapping of Cortex-M3 Hardware */
+#define SCS_BASE            (0xE000E000UL)                            /*!< System Control Space Base Address */
+#define ITM_BASE            (0xE0000000UL)                            /*!< ITM Base Address */
+#define DWT_BASE            (0xE0001000UL)                            /*!< DWT Base Address */
+#define TPI_BASE            (0xE0040000UL)                            /*!< TPI Base Address */
+#define CoreDebug_BASE      (0xE000EDF0UL)                            /*!< Core Debug Base Address */
+#define SysTick_BASE        (SCS_BASE +  0x0010UL)                    /*!< SysTick Base Address */
+#define NVIC_BASE           (SCS_BASE +  0x0100UL)                    /*!< NVIC Base Address */
+#define SCB_BASE            (SCS_BASE +  0x0D00UL)                    /*!< System Control Block Base Address */
+
+#define SCnSCB              ((SCnSCB_Type    *)     SCS_BASE      )   /*!< System control Register not in SCB */
+#define SCB                 ((SCB_Type       *)     SCB_BASE      )   /*!< SCB configuration struct */
+#define SysTick             ((SysTick_Type   *)     SysTick_BASE  )   /*!< SysTick configuration struct */
+#define NVIC                ((NVIC_Type      *)     NVIC_BASE     )   /*!< NVIC configuration struct */
+#define ITM                 ((ITM_Type       *)     ITM_BASE      )   /*!< ITM configuration struct */
+#define DWT                 ((DWT_Type       *)     DWT_BASE      )   /*!< DWT configuration struct */
+#define TPI                 ((TPI_Type       *)     TPI_BASE      )   /*!< TPI configuration struct */
+#define CoreDebug           ((CoreDebug_Type *)     CoreDebug_BASE)   /*!< Core Debug configuration struct */
+
+#if (__MPU_PRESENT == 1U)
+  #define MPU_BASE          (SCS_BASE +  0x0D90UL)                    /*!< Memory Protection Unit */
+  #define MPU               ((MPU_Type       *)     MPU_BASE      )   /*!< Memory Protection Unit */
+#endif
+
+/*@} */
+
+
+
+/*******************************************************************************
+ *                Hardware Abstraction Layer
+  Core Function Interface contains:
+  - Core NVIC Functions
+  - Core SysTick Functions
+  - Core Debug Functions
+  - Core Register Access Functions
+ ******************************************************************************/
+/**
+  \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference
+*/
+
+
+
+/* ##########################   NVIC functions  #################################### */
+/**
+  \ingroup  CMSIS_Core_FunctionInterface
+  \defgroup CMSIS_Core_NVICFunctions NVIC Functions
+  \brief    Functions that manage interrupts and exceptions via the NVIC.
+  @{
+ */
+
+/**
+  \brief   Set Priority Grouping
+  \details Sets the priority grouping field using the required unlock sequence.
+           The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field.
+           Only values from 0..7 are used.
+           In case of a conflict between priority grouping and available
+           priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set.
+  \param [in]      PriorityGroup  Priority grouping field.
+ */
+__STATIC_INLINE void NVIC_SetPriorityGrouping(uint32_t PriorityGroup)
+{
+  uint32_t reg_value;
+  uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL);             /* only values 0..7 are used          */
+
+  reg_value  =  SCB->AIRCR;                                                   /* read old register configuration    */
+  reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change               */
+  reg_value  =  (reg_value                                   |
+                ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) |
+                (PriorityGroupTmp << 8U)                      );              /* Insert write key and priorty group */
+  SCB->AIRCR =  reg_value;
+}
+
+
+/**
+  \brief   Get Priority Grouping
+  \details Reads the priority grouping field from the NVIC Interrupt Controller.
+  \return                Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field).
+ */
+__STATIC_INLINE uint32_t NVIC_GetPriorityGrouping(void)
+{
+  return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos));
+}
+
+
+/**
+  \brief   Enable External Interrupt
+  \details Enables a device-specific interrupt in the NVIC interrupt controller.
+  \param [in]      IRQn  External interrupt number. Value cannot be negative.
+ */
+__STATIC_INLINE void NVIC_EnableIRQ(IRQn_Type IRQn)
+{
+  NVIC->ISER[(((uint32_t)(int32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL));
+}
+
+
+/**
+  \brief   Disable External Interrupt
+  \details Disables a device-specific interrupt in the NVIC interrupt controller.
+  \param [in]      IRQn  External interrupt number. Value cannot be negative.
+ */
+__STATIC_INLINE void NVIC_DisableIRQ(IRQn_Type IRQn)
+{
+  NVIC->ICER[(((uint32_t)(int32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL));
+}
+
+
+/**
+  \brief   Get Pending Interrupt
+  \details Reads the pending register in the NVIC and returns the pending bit for the specified interrupt.
+  \param [in]      IRQn  Interrupt number.
+  \return             0  Interrupt status is not pending.
+  \return             1  Interrupt status is pending.
+ */
+__STATIC_INLINE uint32_t NVIC_GetPendingIRQ(IRQn_Type IRQn)
+{
+  return((uint32_t)(((NVIC->ISPR[(((uint32_t)(int32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL));
+}
+
+
+/**
+  \brief   Set Pending Interrupt
+  \details Sets the pending bit of an external interrupt.
+  \param [in]      IRQn  Interrupt number. Value cannot be negative.
+ */
+__STATIC_INLINE void NVIC_SetPendingIRQ(IRQn_Type IRQn)
+{
+  NVIC->ISPR[(((uint32_t)(int32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL));
+}
+
+
+/**
+  \brief   Clear Pending Interrupt
+  \details Clears the pending bit of an external interrupt.
+  \param [in]      IRQn  External interrupt number. Value cannot be negative.
+ */
+__STATIC_INLINE void NVIC_ClearPendingIRQ(IRQn_Type IRQn)
+{
+  NVIC->ICPR[(((uint32_t)(int32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL));
+}
+
+
+/**
+  \brief   Get Active Interrupt
+  \details Reads the active register in NVIC and returns the active bit.
+  \param [in]      IRQn  Interrupt number.
+  \return             0  Interrupt status is not active.
+  \return             1  Interrupt status is active.
+ */
+__STATIC_INLINE uint32_t NVIC_GetActive(IRQn_Type IRQn)
+{
+  return((uint32_t)(((NVIC->IABR[(((uint32_t)(int32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL));
+}
+
+
+/**
+  \brief   Set Interrupt Priority
+  \details Sets the priority of an interrupt.
+  \note    The priority cannot be set for every core interrupt.
+  \param [in]      IRQn  Interrupt number.
+  \param [in]  priority  Priority to set.
+ */
+__STATIC_INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)
+{
+  if ((int32_t)(IRQn) < 0)
+  {
+    SCB->SHP[(((uint32_t)(int32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL);
+  }
+  else
+  {
+    NVIC->IP[((uint32_t)(int32_t)IRQn)]               = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL);
+  }
+}
+
+
+/**
+  \brief   Get Interrupt Priority
+  \details Reads the priority of an interrupt.
+           The interrupt number can be positive to specify an external (device specific) interrupt,
+           or negative to specify an internal (core) interrupt.
+  \param [in]   IRQn  Interrupt number.
+  \return             Interrupt Priority.
+                      Value is aligned automatically to the implemented priority bits of the microcontroller.
+ */
+__STATIC_INLINE uint32_t NVIC_GetPriority(IRQn_Type IRQn)
+{
+
+  if ((int32_t)(IRQn) < 0)
+  {
+    return(((uint32_t)SCB->SHP[(((uint32_t)(int32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS)));
+  }
+  else
+  {
+    return(((uint32_t)NVIC->IP[((uint32_t)(int32_t)IRQn)]               >> (8U - __NVIC_PRIO_BITS)));
+  }
+}
+
+
+/**
+  \brief   Encode Priority
+  \details Encodes the priority for an interrupt with the given priority group,
+           preemptive priority value, and subpriority value.
+           In case of a conflict between priority grouping and available
+           priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set.
+  \param [in]     PriorityGroup  Used priority group.
+  \param [in]   PreemptPriority  Preemptive priority value (starting from 0).
+  \param [in]       SubPriority  Subpriority value (starting from 0).
+  \return                        Encoded priority. Value can be used in the function \ref NVIC_SetPriority().
+ */
+__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority)
+{
+  uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL);   /* only values 0..7 are used          */
+  uint32_t PreemptPriorityBits;
+  uint32_t SubPriorityBits;
+
+  PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp);
+  SubPriorityBits     = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS));
+
+  return (
+           ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) |
+           ((SubPriority     & (uint32_t)((1UL << (SubPriorityBits    )) - 1UL)))
+         );
+}
+
+
+/**
+  \brief   Decode Priority
+  \details Decodes an interrupt priority value with a given priority group to
+           preemptive priority value and subpriority value.
+           In case of a conflict between priority grouping and available
+           priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set.
+  \param [in]         Priority   Priority value, which can be retrieved with the function \ref NVIC_GetPriority().
+  \param [in]     PriorityGroup  Used priority group.
+  \param [out] pPreemptPriority  Preemptive priority value (starting from 0).
+  \param [out]     pSubPriority  Subpriority value (starting from 0).
+ */
+__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority)
+{
+  uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL);   /* only values 0..7 are used          */
+  uint32_t PreemptPriorityBits;
+  uint32_t SubPriorityBits;
+
+  PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp);
+  SubPriorityBits     = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS));
+
+  *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL);
+  *pSubPriority     = (Priority                   ) & (uint32_t)((1UL << (SubPriorityBits    )) - 1UL);
+}
+
+
+/**
+  \brief   System Reset
+  \details Initiates a system reset request to reset the MCU.
+ */
+__STATIC_INLINE void NVIC_SystemReset(void)
+{
+  __DSB();                                                          /* Ensure all outstanding memory accesses included
+                                                                       buffered write are completed before reset */
+  SCB->AIRCR  = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos)    |
+                           (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) |
+                            SCB_AIRCR_SYSRESETREQ_Msk    );         /* Keep priority group unchanged */
+  __DSB();                                                          /* Ensure completion of memory access */
+
+  for(;;)                                                           /* wait until reset */
+  {
+    __NOP();
+  }
+}
+
+/*@} end of CMSIS_Core_NVICFunctions */
+
+
+
+/* ##################################    SysTick function  ############################################ */
+/**
+  \ingroup  CMSIS_Core_FunctionInterface
+  \defgroup CMSIS_Core_SysTickFunctions SysTick Functions
+  \brief    Functions that configure the System.
+  @{
+ */
+
+#if (__Vendor_SysTickConfig == 0U)
+
+/**
+  \brief   System Tick Configuration
+  \details Initializes the System Timer and its interrupt, and starts the System Tick Timer.
+           Counter is in free running mode to generate periodic interrupts.
+  \param [in]  ticks  Number of ticks between two interrupts.
+  \return          0  Function succeeded.
+  \return          1  Function failed.
+  \note    When the variable <b>__Vendor_SysTickConfig</b> is set to 1, then the
+           function <b>SysTick_Config</b> is not included. In this case, the file <b><i>device</i>.h</b>
+           must contain a vendor-specific implementation of this function.
+ */
+__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks)
+{
+  if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk)
+  {
+    return (1UL);                                                   /* Reload value impossible */
+  }
+
+  SysTick->LOAD  = (uint32_t)(ticks - 1UL);                         /* set reload register */
+  NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */
+  SysTick->VAL   = 0UL;                                             /* Load the SysTick Counter Value */
+  SysTick->CTRL  = SysTick_CTRL_CLKSOURCE_Msk |
+                   SysTick_CTRL_TICKINT_Msk   |
+                   SysTick_CTRL_ENABLE_Msk;                         /* Enable SysTick IRQ and SysTick Timer */
+  return (0UL);                                                     /* Function successful */
+}
+
+#endif
+
+/*@} end of CMSIS_Core_SysTickFunctions */
+
+
+
+/* ##################################### Debug In/Output function ########################################### */
+/**
+  \ingroup  CMSIS_Core_FunctionInterface
+  \defgroup CMSIS_core_DebugFunctions ITM Functions
+  \brief    Functions that access the ITM debug interface.
+  @{
+ */
+
+extern volatile int32_t ITM_RxBuffer;                    /*!< External variable to receive characters. */
+#define                 ITM_RXBUFFER_EMPTY   0x5AA55AA5U /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */
+
+
+/**
+  \brief   ITM Send Character
+  \details Transmits a character via the ITM channel 0, and
+           \li Just returns when no debugger is connected that has booked the output.
+           \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted.
+  \param [in]     ch  Character to transmit.
+  \returns            Character to transmit.
+ */
+__STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch)
+{
+  if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) &&      /* ITM enabled */
+      ((ITM->TER & 1UL               ) != 0UL)   )     /* ITM Port #0 enabled */
+  {
+    while (ITM->PORT[0U].u32 == 0UL)
+    {
+      __NOP();
+    }
+    ITM->PORT[0U].u8 = (uint8_t)ch;
+  }
+  return (ch);
+}
+
+
+/**
+  \brief   ITM Receive Character
+  \details Inputs a character via the external variable \ref ITM_RxBuffer.
+  \return             Received character.
+  \return         -1  No character pending.
+ */
+__STATIC_INLINE int32_t ITM_ReceiveChar (void)
+{
+  int32_t ch = -1;                           /* no character available */
+
+  if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY)
+  {
+    ch = ITM_RxBuffer;
+    ITM_RxBuffer = ITM_RXBUFFER_EMPTY;       /* ready for next character */
+  }
+
+  return (ch);
+}
+
+
+/**
+  \brief   ITM Check Character
+  \details Checks whether a character is pending for reading in the variable \ref ITM_RxBuffer.
+  \return          0  No character available.
+  \return          1  Character available.
+ */
+__STATIC_INLINE int32_t ITM_CheckChar (void)
+{
+
+  if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY)
+  {
+    return (0);                              /* no character available */
+  }
+  else
+  {
+    return (1);                              /*    character available */
+  }
+}
+
+/*@} end of CMSIS_core_DebugFunctions */
+
+
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __CORE_CM3_H_DEPENDANT */
+
+#endif /* __CMSIS_GENERIC */

+ 3 - 2
MOTINOVA_CDL_App/Inc/uart_process.h

@@ -15,13 +15,14 @@
 #define UARTFRAME_BEGIN (uint8_t)0x3A
 #define UARTFRAME_END1 (uint8_t)0x0D
 #define UARTFRAME_END2 (uint8_t)0x0A
-#define UARTID_MC_TO_CDL (uint8_t)0xAF
-#define UARTID_CDL_TO_MC (uint8_t)0xFA
+#define UARTADDR_CDL (uint8_t)0xFA
 #define UARTMODE_READ (uint8_t)0x11
 #define UARTMODE_WRITE (uint8_t)0x16
 #define UARTMODE_REPORT (uint8_t)0x0C
 
 extern uint8_t Power_mode;//0-default,1-off,2-on
+extern uint8_t UART1_BaudrateSwitch;
+extern uint32_t T_UART1_BaudrateSwitch;
 
 extern void Uart1_RxData_Process(USART_Buf_TypeDef* ptUartRx, uint16_t TimeOut);
 extern void Uart3_RxData_Process(USART_Buf_TypeDef* ptUartRx, uint16_t TimeOut);

+ 2 - 1
MOTINOVA_CDL_App/Inc/usart.h

@@ -70,7 +70,8 @@ typedef struct								    //
 extern void _Error_Handler(char *, int);
 
 void MX_USART3_UART_Init(void);
-void MX_USART1_UART_Init(void);
+void MX_USART1_UART_Init(uint32_t baudrate);
+void MX_USART1_Reopen(uint32_t baudrate);
 /* USER CODE BEGIN Prototypes */
 #define UART_BUFF_SIZE 1024
 

+ 1288 - 1303
MOTINOVA_CDL_App/MDK-ARM/MOTINOVA_CDL/MOTINOVA_CDL.hex

@@ -1,22 +1,22 @@
 :020000040800F2
-:10300000684B00200131000865670008F96300087B
-:10301000616700084133000879770008000000006C
-:1030200000000000000000000000000061690008CE
-:10303000773B000800000000A1670008196A00083B
+:10300000704A002001310008DD6500085D6200089B
+:10301000D965000841330008297600080000000047
+:10302000000000000000000000000000D967000858
+:10303000A33A000800000000196600089168000823
 :103040001B3100081B3100081B3100081B31000830
 :103050001B3100081B3100081B3100081B31000820
-:103060001B3100081B3100081B310008393B0008E8
+:103060001B3100081B3100081B310008653A0008BD
 :103070001B3100081B3100081B3100081B31000800
 :103080001B3100081B3100081B3100081B310008F0
-:10309000157300081B3100081B3100081B310008A4
+:10309000BD7100081B3100081B3100081B310008FE
 :1030A0001B3100081B3100081B3100081B310008D0
 :1030B0001B3100081B3100081B3100081B310008C0
 :1030C0001B3100081B3100081B3100081B310008B0
-:1030D0001B310008057200081B3100082972000826
+:1030D0001B310008AD7000081B310008D1700008DA
 :1030E0001B3100081B3100081B310008DFF80CD031
-:1030F00000F05CF800480047297A0008684B00207F
+:1030F00000F05CF800480047D9780008704A0020CA
 :103100000648804706480047FEE7FEE7FEE7FEE781
-:10311000FEE7FEE7FEE7FEE7FEE7FEE7D16A00080E
+:10311000FEE7FEE7FEE7FEE7FEE7FEE74969000897
 :10312000ED300008202A04DB203A21FA02F00021C9
 :10313000704721FA02F3D040C2F1200291400843C7
 :103140001946704740EA01039B0703D009E008C90C
@@ -27,39 +27,39 @@
 :103190000020034600E05B1C934205D2EC5CC85C57
 :1031A000201A01D1002CF6D130BD0000064C074D8D
 :1031B00006E0E06840F0010394E807009847103407
-:1031C000AC42F6D3FFF796FFE485000804860008BA
+:1031C000AC42F6D3FFF796FFEC8400080C850008AC
 :1031D00070B5044600252068806800F00100F0B159
-:1031E0002068806820F001002168886002F07AF988
-:1031F00005460EE002F076F9401B022809D9A06AC4
+:1031E0002068806820F001002168886002F054F8AF
+:1031F00005460EE002F050F8401B022809D9A06AEB
 :1032000040F01000A062E06A40F00100E06201209E
 :1032100070BD2068806800F001000028EAD100201D
 :10322000F6E770B505466C6AA06A00F05000E0B998
 :10323000A06A40F40070A0622068806800F46020FA
 :10324000B0F5602F0DD1E06858B9A06A20F4807005
 :10325000A062A06A00F4805018B9A06A40F0010092
-:10326000A062204600F0FAFE03E0206A016B2846C7
+:10326000A062204600F090FE03E0206A016B284631
 :10327000884770BD70B505466C6AA06A40F0400092
-:10328000A062E06A40F00400E062204600F0E8FE40
-:1032900070BD70B50446656A284600F0E0FE70BD5A
+:10328000A062E06A40F00400E062204600F07EFEAA
+:1032900070BD70B50446656A284600F076FE70BDC4
 :1032A00038B504460025002000902068806800F0B2
 :1032B000010080BB2068806840F0010021688860C0
 :1032C000164800681649B0FBF1F0009002E0009843
-:1032D000401E009000980028F9D102F003F905463D
-:1032E00013E002F0FFF8401B02280ED9A06A40F05C
+:1032D000401E009000980028F9D101F0DDFF05465E
+:1032E00013E001F0D9FF401B02280ED9A06A40F07C
 :1032F0001000A062E06A40F00100E06200BF002020
 :1033000084F8240000BF012038BD2068806800F0E8
 :1033100001000028E5D00020F6E7000000000020B2
-:1033200040420F0010B5044800F066FD0222034938
-:10333000014800F087FF10BDC400002004000020F9
+:1033200040420F0010B5044800F0FCFC02220349A3
+:10333000014800F01DFF10BDCC000020040000205B
 :1033400000BFFEE700B58BB000200690079001207B
 :1033500008904FF440400190002002904FF45140FB
 :1033600003904FF6FF700490002005900120099013
-:1033700001A9154801F026F820B14FF4C07113A03F
-:1033800004F0FCF90120069000200790012008902D
+:1033700001A9154800F0BCFF20B14FF4C07113A0A3
+:1033800004F054F9012006900020079001200890D5
 :103390004FF440400190002002904FF451400390C0
 :1033A0004FF6FF700490002005900120099001A9BC
-:1033B000054801F007F820B140F2951103A004F090
-:1033C000DDF90BB000BD0000882F00202E2E2F53FA
+:1033B000054800F09DFF20B140F2951103A004F0F4
+:1033C00035F90BB000BD0000902F00202E2E2F539A
 :1033D00072632F63616E2E63000000002DE9F041DF
 :1033E00004460D46002700260DB9666B00E0A66B6B
 :1033F000206800F5D87000EB0510006800F00400AC
@@ -88,7 +88,7 @@
 :103560003C00522804D0622806D072280CD107E013
 :10357000122084F83C000BE0222084F83C0007E095
 :10358000422084F83C0003E0012084F83C0000BFA6
-:1035900000BF204601F0DAF90020BDE8F08100000C
+:1035900000BF204601F070F90020BDE8F081000076
 :1035A000002037E0002100EB40021C4B23F83210D2
 :1035B0004FF4007100EB400203EBC2025180002186
 :1035C00000EB400203EBC202918000EB400203EBF0
@@ -96,1296 +96,1281 @@
 :1035E000400203EBC20291720D4901EB402100EB56
 :1035F000400203EBC202D160002100EB400203EB6A
 :10360000C2021161012100EB400203EBC2021175FD
-:10361000411CC8B21628C5DB70470000782D002079
-:10362000780100202DE9F34F83B0054628890B2847
-:103630007EDB0021284604F0FBF800907E490098CC
-:1036400008700121284604F0F3F882467A4981F88F
+:10361000411CC8B21628C5DB70470000802D002071
+:10362000800100202DE9F34F83B0054628890B283F
+:103630007EDB0021284604F053F800907E49009874
+:1036400008700121284604F04BF882467A4981F837
 :1036500001A0009855286CD1BAF1AA0FFBD1288897
-:10366000000A88702878C8700221284604F0E0F823
+:10366000000A88702878C8700221284604F038F8CB
 :10367000064671490E71112E03D0162E01D00C2E64
-:103680007ED10321284604F0D3F880466A4880F8AA
-:1036900005800521284604F0CBF8834604212846FE
-:1036A00004F0C6F80BEB00201FFA80F94FEA19204E
-:1036B0006149887181F807900521284604F0B8F81F
+:103680007ED10321284604F02BF880466A4880F852
+:1036900005800521284604F023F8834604212846A6
+:1036A00004F01EF80BEB00201FFA80F94FEA1920F6
+:1036B0006149887181F807900521284604F010F8C7
 :1036C0000446A8EB040002287DD1298908F10900ED
-:1036D000814217DA287D012804D101F003FF286117
-:1036E0000020287501F0FEFE2969411A04988142E4
-:1036F00005D9297A284604F057F80120287505B025
+:1036D000814217DA287D012804D101F0DDFD28613F
+:1036E0000020287501F0D8FD2969411A049881420B
+:1036F00005D9297A284603F0AFFF0120287505B0C7
 :10370000BDE8F08F0120287500270EE0B81DC1B27A
-:10371000284604F08DF84949C8550846C15D07F1AF
+:10371000284603F0E5FF4949C8550846C15D07F151
 :103720000800454A1154781C87B2A742EEDB01E03D
-:1037300080E07BE0A01DC1B2284604F079F84FEA92
-:10374000006BE01DC1B2284604F072F80BEB004B91
-:1037500004F10800C1B2284604F06AF80BEB002B14
-:1037600004F10900C1B2284604F062F80BEB000135
-:10377000019104F10801304800F028F9029000E0BE
+:1037300080E07BE0A01DC1B2284603F0D1FF4FEA34
+:10374000006BE01DC1B2284603F0CAFF0BEB004B33
+:1037500004F10800C1B2284603F0C2FF0BEB002BB6
+:1037600004F10900C1B2284603F0BAFF0BEB0001D7
+:10377000019104F10801304800F0BEF8029000E029
 :103780004FE0DDE90110081A41D128882B4B4A4649
-:10379000314600F0EFF9A01DC1B2284604F048F808
-:1037A00004F10801244A5054E01DC1B2284604F037
-:1037B0003FF804F10901204A5054481EC1B228467E
-:1037C00004F036F800E027E004F10A011A4A5054E8
-:1037D000481EC1B2284604F02BF804F10B01164A2A
+:10379000314600F085F9A01DC1B2284603F0A0FF14
+:1037A00004F10801244A5054E01DC1B2284603F038
+:1037B00097FF04F10901204A5054481EC1B228461F
+:1037C00003F08EFF00E027E004F10A011A4A50548A
+:1037D000481EC1B2284603F083FF04F10B01164ACC
 :1037E0005054F02104F10C001154401CC2B2124993
-:1037F000134803F085FB08F10900C1B2284603F025
-:10380000D3FF4FF400510F4801F062FE77E701212A
-:10381000284603F0C9FF0DE00121284603F0C4FF4C
-:1038200008E00121284603F0BFFF03E001212846FC
-:1038300003F0BAFF00BF62E74B4100204C4000207C
+:1037F000134803F0D9FA08F10900C1B2284603F0D2
+:103800002BFF4FF400510F4801F03CFD77E70121F9
+:10381000284603F021FF0DE00121284603F01CFF9C
+:1038200008E00121284603F017FF03E001212846A4
+:1038300003F012FF00BF62E7534100205440002014
 :1038400048000020000C014030B50A4600211CE071
 :103850000F4B5B6B14335B5C8588C468635583884E
 :103860005B1C9BB283804488A34201DB00238380DE
 :1038700003895B1C9BB203814488A34203DD438818
 :103880000381012383724B1CD9B29142E0DB30BD2E
-:10389000882F00202DE9F047824688461446002CE8
-:1038A0005DDD2046E11704EB5171C910A4EBC101A5
-:1038B0008FB237B90827E11704EB5171C1F3CF0973
-:1038C00007E02046E11704EB5171C910491C1FFAAB
-:1038D00081F92448006BC0F800A000202149096B41
-:1038E000C8602049096B886000261BE008201D493C
-:1038F000096B086100250AE0082000FB065018F853
-:1039000000101848006B14304155681C85B2082D12
-:10391000F2DB0A21134801F059F808B102F012FE57
-:10392000701C86B2A9F10100B042DFDC0D48006BCB
-:10393000076100250AE0082000FB065018F8001077
-:103940000848006B14304155681C85B2BD42F2DB5B
-:103950000A21044801F03AF808B102F0F3FDBDE88D
-:10396000F0870000882F002010B5044620684069C9
-:1039700020F001002168486194F83C00122805D12C
-:103980002068406920F40F402168486194F83C00A9
-:10399000422804D0522806D072280CD107E02220F9
-:1039A00084F83C000BE0322084F83C0007E0622001
-:1039B00084F83C0003E0012084F83C0000BF00BF15
-:1039C000204601F05BF9002010BD0000F0B5024672
-:1039D0000B460025681E00210FE0565C7040002455
-:1039E00007E0060E064F57F8265000026840661C96
-:1039F000B4B2042CF5DB4E1CB1B29942EDDBF0BD44
-:103A00002C7E0008F0B58DB006460F461546002402
-:103A100004E0305D0BA90855601CC4B2082CF8DB2B
-:103A2000002406E020460830305C09A90855601CD7
-:103A3000C4B2042CF6DB002405E0FF21201D09AAF6
-:103A40001154601CC4B2042CF7DB07AB00223946CA
-:103A50000BA803F043FF05AB0022394609A803F089
-:103A60003DFF002405E007A8005D01A90855601C82
-:103A7000C4B2082CF7DB002407E005A8015D01AA09
-:103A8000204608301154601CC4B2082CF5DB002419
-:103A90001CE001A8005D01AA211D515C4840285589
-:103AA00001A9201D085C21460831515C4840211DB8
-:103AB000685401A920460830085C21460C31515C4D
-:103AC0004840214608316854601CC4B2042CE0DB35
-:103AD0000DB0F0BD3EB5144A14491548FFF792FFEA
-:103AE000002416E0A000C01C0F49085C0106A000DD
-:103AF000801C0D4A105C01EB0041A000401C105CD2
-:103B000001EB002012F8241008444DF82400601C3A
-:103B1000C4B2032CE6DB00F02FF80C2269460548FE
-:103B200000F044F93EBD0000984600202C820008B9
-:103B30008C46002000F4000810B5024801F0F8F8A7
-:103B400010BD0000F400002030B590F84050012472
-:103B5000AC40C56B6C60046863604468102C04D191
-:103B60000468A2600468E16003E00468A16004687E
-:103B7000E26030BD7047704708B500200B4908600F
-:103B80000B4888600120C86001F0F4FA00BF3420BF
-:103B90000849C86000BF6946044801F031FA01F0E5
-:103BA00087FA642001F018FA08BD00007C46002066
-:103BB00000F40008002002400021074AD1610749B3
-:103BC000096941F00401054A11611146096941F092
-:103BD0004001116170470000A8460020002002400B
-:103BE0000021074AD1610749096941F00201054AEC
-:103BF000116111464861096941F040011161704746
-:103C0000A8460020002002400022054BDA61054A48
-:103C1000126942F00102034B1A61018070470000F3
-:103C2000A84600200020024038B5044669462046D8
-:103C300001F0E6F908B1012038BD0020FCE70000E2
-:103C4000002007490860074888600220C8600020FB
-:103C500005490860054888603420C8607047000046
-:103C6000584700200028000848470020003000087E
-:103C70002DE9F04104460E461746002501F07AFA78
-:103C800000BF0EE056F825C0624600232146022000
-:103C900001F018FA08B9241D02E00120BDE8F08106
-:103CA0006D1CBD4202D203488442EBD901F000FAF8
-:103CB0000020F3E7FBFF000800201E49C96801F05F
-:103CC000100139B11C49C96941F002011A4AD16198
-:103CD00040F010001749C96801F0040139B11649D4
-:103CE000C96941F00101144AD16140F00400114951
-:103CF000C96901F0010169B10F49C96941F00401C5
-:103D00000D4AD16100BF0B49C96921F00101094A7F
-:103D1000D16100BF00BF40F20111884206D10549C0
-:103D2000C96921F00101034AD16101E00149C8607C
-:103D300000BF704700200240A846002070B504462E
-:103D400001F0D0FB054609E0601C38B124B101F058
-:103D5000C9FB401BA04201D9032070BD1248C068B6
-:103D600000F001000028EFD10F48C06800F02000EB
-:103D700020B100BF20200C49C86000BF0A48C068BD
-:103D800000F0100048B90848C06900F0010020B9EF
-:103D90000548C06800F0040018B1FFF78DFF01204E
-:103DA000DBE70020D9E70000002002402DE9F041C8
-:103DB00004460E461746002501F0DCF900BF0FE06F
-:103DC00056F825C0624600232146022001F07AF908
-:103DD00008B9241D03E001F06BF9BDE8F0816D1C0A
-:103DE000BD4202D203488442EAD901F061F900BF22
-:103DF000F3E70000FBF70008F8B5044600260020B2
-:103E0000009000BF94F82400012801D10220F8BDE1
-:103E1000012084F8240000BF2046FFF7D9F90646A8
-:103E2000002E62D1A06A20F4885040F00200A06207
-:103E3000022001F09BFC30490968B1FBF0F0400022
-:103E4000009002E00098401E009000980028F9D1F0
-:103E50002046FFF725FA2068806840F008002168B6
-:103E6000886001F03FFB054611E001F03BFB401B81
-:103E70000A280CD9A06A20F0020040F01000A062CD
-:103E800000BF002084F8240000BF0120BFE72068A5
-:103E9000806800F008000028E7D12068806840F0C2
-:103EA00004002168886001F01DFB054611E001F067
-:103EB00019FB401B0A280CD9A06A20F0020040F030
-:103EC0001000A06200BF002084F8240000BF012081
-:103ED0009DE72068806800F004000028E7D1A06A10
-:103EE00020F0020040F00100A06200BF002084F832
-:103EF000240000BF30468AE70000002038B50246A3
-:103F000000230020009000BF92F82400012801D176
-:103F1000022038BD012082F8240000BF486807282D
-:103F200012D21068406B0C79641E04EB84051F24C8
-:103F3000AC40A0430D796D1E05EB85050C68AC40C7
-:103F400020431468606327E048680D2812D2106887
-:103F5000006B0C79E41F04EB84051F24AC40A043E4
-:103F60000D79ED1F05EB85050C68AC402043146806
-:103F7000206311E01068C06A0C790D3C04EB8405E5
-:103F80001F24AC40A0430D790D3D05EB85050C6861
-:103F9000AC4020431468E06208680A2812D3106815
-:103FA000C0680C780A3C04EB44050724AC40A043ED
-:103FB0000D780A3D05EB45058C68AC40204314683C
-:103FC000E0600FE0106800690C7804EB44050724FA
-:103FD000AC40A0430D7805EB45058C68AC40204310
-:103FE000146820610868102802D00868112827D1B9
-:103FF000174C1068A0421ED11068806800F40000C1
-:10400000F0B91068806840F400001468A060086887
-:10401000102815D10F4800680F4CB0FBF4F000EBEE
-:1040200080004000009002E00098401E0090009840
-:104030000028F9D104E0906A40F02000906201234A
-:1040400000BF002082F8240000BF184661E700008E
-:10405000002401400000002040420F0070477047DC
-:10406000704700002DE9F041044600270025002696
-:10407000A84614B90120BDE8F081A06810B16069BC
-:1040800000B100BFA06A30B90020E06284F82400CB
-:10409000204600F089F82046FFF79AF80746A06A04
-:1040A00000F01000002873D1002F71D1A06A20F415
-:1040B000885040F00200A062E16960680843E1684E
-:1040C00040EA41000643A068B0F5807F02D0A068B6
-:1040D000012802D14FF4807000E0002005436069A0
-:1040E000012811D1E06838B9A069401E4FF4006181
-:1040F00041EA4030054307E0A06A40F02000A0629A
-:10410000E06A40F00100E0622068406820F4694005
-:10411000284321684860206880682149084030436E
-:1041200021688860A068B0F5807F02D0A06801286F
-:1041300002D14FF4807000E00020B0F5807F03D101
-:10414000208A401E4FEA00582068C06A20F47000A0
-:1041500040EA08002168C862206880681149084068
-:10416000B04208D10020E062A06A20F0020040F0D6
-:104170000100A06211E0A06A20F0020040F01000EF
-:10418000A062E06A40F00100E062012705E0FFE77D
-:10419000A06A40F01000A062012738466BE70000DB
-:1041A000FDF7E1FFFE0E1FFF10B586B004461C4967
-:1041B0002068884232D100BF1A48806940F40070FC
-:1041C000184988610846806900F40070019000BFBA
-:1041D00000BF03200290039002A9134800F0E2FF01
-:1041E000124813490860002048600021104881608F
-:1041F0008021C16049000161890041612021816104
-:104200000021C16100F062FE18B17E2109A003F017
-:10421000B5FA00BF06482062446200BF06B010BD78
-:104220000024014000100240000801400800024044
-:10423000F40000202E2E2F5372632F6164632E63CF
-:10424000000000002DE9F04104460D461646002707
-:1042500057492068884203D056492068884205D1D2
-:104260005348001D006800F4702000E00020002882
-:104270007ED100BF94F82400012802D10220BDE8BD
-:10428000F081012084F8240000BF2046FFF708F8E1
-:104290000746002F6DD1A06A40F60161884340F4C3
-:1042A0008070A06243492068884209D14048001DBF
-:1042B000006800F4702008B9012002E0002000E04E
-:1042C000012078B1A06A20F48010A06220684068C4
-:1042D00000F4806000B3A06A20F4005040F48050E5
-:1042E000A06219E0A06A40F48010A0623049206802
-:1042F000884203D02F492068884205D12C48001DF0
-:10430000006800F4806000E0002028B1A06A20F47A
-:10431000005040F48050A062A06A00F4805020B1A8
-:10432000E06A20F00600E06201E00020E06200BFE9
-:10433000002084F8240000BF1F48216A88621F48BB
-:10434000216AC8621E48216A08636FF00200216872
-:1043500008602068806840F4807021688860226866
-:1043600002F14C0133462A46206A00F0E7FD01E0E5
-:104370001AE014E02068806800F46020B0F5602F37
-:1043800006D12068806840F4A000216888600CE0B5
-:104390002068806840F480102168886005E000BFD4
-:1043A000002084F8240000E00127384667E7000079
-:1043B0000024014000280140233200089332000805
-:1043C0007532000830B5024600230C7D012000FA4A
-:1043D00004F31068D0F8000220F47C5001254C6AE8
-:1043E00045EA042420431468C4F800021068D0F899
-:1043F0001C0298431468C4F81C02C869E8B9106824
-:10440000D0F80C0298431468C4F80C02888880B273
-:104410008C8940EA0444106800F510704D6940F83A
-:104420003540088880B20C8940EA0444106800F5E1
-:1044300010704D6900EBC5004460C86901281DD1AA
-:104440001068D0F80C0218431468C4F80C0288886D
-:1044500080B20C8840EA0444106800F510704D6981
-:1044600040F83540888980B20C8940EA04441068DD
-:1044700000F510704D6900EBC5004460886938B9DB
-:104480001068D0F8040298431468C4F8040206E0E7
-:104490001068D0F8040218431468C4F804020869CC
-:1044A00038B91068D0F8140298431468C4F814029C
-:1044B00006E01068D0F8140218431468C4F8140217
-:1044C000086A012806D11068D0F81C021843146845
-:1044D000C4F81C021068D0F8000220F00100146833
-:1044E000C4F80002002030BD704700002DE9F04103
-:1044F0000446002500260027A8462068C068C0F3AF
-:10450000001520684069C0F3C0062DB126B148F4FB
-:10451000007810202168C86020680069C0F3001589
-:1045200020684069C0F380162DB126B148F4806838
-:104530001020216808612068406900F0010000280F
-:104540003BD0206880687A490840884201D1012028
-:1045500000E00020054620688068764908408842CF
-:1045600001D1012000E000200646206880687249E1
-:104570000840884201D1012000E0002007460DB923
-:1045800006B9D7B120688068C0F34005206880680C
-:10459000C0F340262068806800F001070DB906B915
-:1045A0001FB12046FFF7E0F901E048F400682068F9
-:1045B000806862490843216888602068C06800F00C
-:1045C000030520684069C0F3400625B11EB10021F3
-:1045D0002046FEF703FF2068006900F0030520680D
-:1045E0004069C0F3001625B11EB101212046FEF737
-:1045F000F5FE206C40EA080020642068806900F025
-:10460000010520684069C0F3002620684069C0F3B6
-:10461000C0372DB126B11FB1206C40F001002064DD
-:1046200020688069C0F3400520684069C0F34026D7
-:1046300020684069C0F3C0372DB126B11FB1206C8E
-:1046400040F00200206420688069C0F38005206883
-:104650004069C0F3802620684069C0F3C0372DB19F
-:1046600026B11FB1206C40F00400206420688069EE
-:1046700000F0700008B9012000E000200546206825
-:104680004069C0F3C02620684069C0F3C03795BBBD
-:104690008EB387B32068806900F07005402D1BD071
-:1046A00006DC102D09D0202D0CD0302D24D10EE0A9
-:1046B000502D16D0602D1FD118E0206C40F008005E
-:1046C00020641AE0206C40F01000206415E0206C9B
-:1046D00040F02000206410E0206C40F04000206496
-:1046E0000BE0206C40F08000206406E0206C40F479
-:1046F0008070206401E007E000BF00BF206880698F
-:1047000020F0700021688861206C78B10420216855
-:104710004860012084F83C002068406948F65B71DD
-:104720008843216848612046FFF7DEFEBDE8F0813E
-:10473000010000040001000800000110090501004B
-:104740002DE9F041044600270026002514B9012078
-:10475000BDE8F08194F83C0028B9002084F83D00C1
-:10476000204600F0A5F8022084F83C00206800688C
-:1047700020F00200216808602068006840F0010015
-:104780002168086000F0AEFE06460EE000F0AAFECA
-:10479000801B0A2809D9032084F83C0000BF0020B0
-:1047A00084F83D0000BF0320D2E72068406800F095
-:1047B00001000028EAD02068406800F001000028CD
-:1047C00067D0A069012802D145F0800501E025F0FD
-:1047D0008005E069012802D145F0400501E025F09F
-:1047E0004005206A012802D145F0200501E025F0AE
-:1047F0002005606A012802D145F0100501E025F08E
-:104800001005A06A012802D145F0080501E025F055
-:104810000805E06A012802D145F0040501E025F011
-:1048200004052068006820F0FC0028432168086027
-:10483000D4E90201084321690843616908436168BA
-:10484000491E08432168C8612068006820F0010003
-:104850002168086000F046FE06460EE000F042FEC9
-:10486000801B0A2809D9032084F83C0000BF0020DF
-:1048700084F83D0000BF03206AE72068406800F02C
-:1048800001000028EAD12068406800F0010000B96A
-:104890000127012F06D100202064012084F83C006C
-:1048A000002055E7042084F83C00012050E7000078
-:1048B00010B586B004461F492068884237D100BF32
-:1048C0001D48C06940F000701B49C8610846C069B6
-:1048D00000F00070019000BF00BFC81402900020DB
-:1048E0000390049002A9154800F05CFC4FF480503E
-:1048F0000290022003900320059002A90F4800F0C7
-:1049000051FC00221146142000F0BBFE142000F0E0
-:10491000ABFE0B4820630B486063FEF713FD0A48AB
-:104920000068406940F0020007490968486106B024
-:1049300010BD00000064004000100240000801406B
-:104940003801002054010020882F002030B5044693
-:10495000606B806810B9606B006940B918480068E6
-:10496000406940F0020016490968486130BD0025E1
-:1049700019E0606B0068134931F81510884210D1B6
-:10498000606B008805EB45010F4A22F83100626B2D
-:10499000117C05EB45020C4B03EBC200FEF754FF04
-:1049A00003E0681C85B2162DE3DB00BF04480068F5
-:1049B000406940F0020002490968486100BFD5E73C
-:1049C000882F0020007C0008782D00202DE9F04180
-:1049D00004460E46042500272068806800F08060A9
-:1049E000B0F1806F0DD02068806800F00060B0F1F9
-:1049F000006F06D02068806800F08050B0F1805FC2
-:104A00007ED100BF94F83D00012802D10220BDE80C
-:104A1000F081012084F83D0000BF94F83C0022287A
-:104A200004D0322806D062280CD107E0422084F856
-:104A30003C000BE0522084F83C0007E0722084F830
-:104A40003C0003E0122084F83C0000BF00BF206857
-:104A5000806800F0806008B1002507E02068806869
-:104A600000F0006008B1012500E00225206800F593
-:104A7000C07000EB0510006800F00101206800F52F
-:104A8000C07000EB05100160206B806898B9206849
-:104A900000F5C07000EB05100068216BC968226B3F
-:104AA000128841EA42510843216801F5C07101EBC7
-:104AB0000511086015E0206800F5C07000EB0510D6
-:104AC0000068216B8968226B526841EAC201226B3F
-:104AD000D26811430143206800F5C07000EB051057
-:104AE0000160206B007C00F00F00216B08612068E2
-:104AF00000F5C07000EB0510406820F00F0100E0E9
-:104B0000B1E0206800F5C07000EB0510416020683E
-:104B100000F5C07000EB05104068216B096908437F
-:104B2000216801F5C07101EB05114860206BC07D63
-:104B30000106206B807D41EA0041206B407D41EA07
-:104B40000020216B097D0843216801F5C07101EB4C
-:104B500005118860206BC07E0106206B807E41EAD3
-:104B60000041206B407E41EA0021206B007E014322
-:104B7000206800F5C07000EB0510C160206800F5EA
-:104B8000C07000EB0510006840F00101206800F5DE
-:104B9000C07000EB0510016000F0A4FC074620E0A7
-:104BA000701CF0B126B100F09DFCC01BB04218D9BA
-:104BB000032084F83C001DB980202168886009E04A
-:104BC000012D03D1E8032168886003E04FF4000061
-:104BD0002168886000BF002084F83D0000BF0320EA
-:104BE00015E74DB92068806821490840884201D105
-:104BF000012016E0002014E0012D09D12068806812
-:104C00001C490840884201D101200AE0002008E048
-:104C10002068806818490840884201D1012000E0DE
-:104C200000200028BCD094F83C00422804D0522830
-:104C300006D072280CD107E0222084F83C000BE05B
-:104C4000322084F83C0007E0622084F83C0003E056
-:104C5000012084F83C0000BF00BF00BF002084F8A2
-:104C60003D0000BFD3E6042084F83C000120CEE6DE
-:104C7000010000040001000800000110704700005E
-:104C800070B50446002594F82100022803D00420C2
-:104C9000A063012548E02068006820F00E0021682C
-:104CA00008602068006820F00100216808601F4942
-:104CB0002068884201D1012026E01C491431206877
-:104CC000884201D110201FE018492831206888420D
-:104CD00001D1801518E015493C312068884201D186
-:104CE000801411E0114950312068884202D14FF4FC
-:104CF000803009E00D4964312068884202D14FF4C8
-:104D0000801001E04FF080700849083948600120A8
-:104D100084F8210000BF002084F8200000BF606BF1
-:104D200010B12046616B8847284670BD08000240DC
-:104D300070B50446E06B05682068066894F840107A
-:104D4000042088402840002846D006F004000028AF
-:104D500042D02068006800F0200028B92068006870
-:104D600020F004002168086057492068884201D17A
-:104D7000042027E0544914312068884201D14020A2
-:104D800020E0514928312068884201D1001519E0FE
-:104D90004D493C312068884202D14FF4804011E0F7
-:104DA000494950312068884202D14FF4802009E0FF
-:104DB000454964312068884202D14FF4800001E007
-:104DC0004FF08060404908394860E06A00287AD096
-:104DD0002046E16A884776E094F840100220884037
-:104DE0002840A0B306F0020088B32068006800F0F5
-:104DF000200040B92068006820F00A00216808609F
-:104E0000012084F8210030492068884201D1022025
-:104E100028E02D4914312068884201D1202021E06A
-:104E2000294928312068884201D140151AE02649D5
-:104E30003C312068884202D14FF4005012E02249F0
-:104E400050312068884203D14FF400300AE017E067
-:104E50001D4964312068884202D14FF4001001E0FE
-:104E60004FF0007018490839486000BF002084F8EE
-:104E7000200000BFA06A30B32046A16A884722E024
-:104E800094F84010082088402840E0B106F008005F
-:104E9000C8B12068006820F00E002168086094F80E
-:104EA000401001208840E16B48600120A06384F835
-:104EB000210000BF002084F8200000BF206B10B14B
-:104EC0002046216B884770BD080002400146002241
-:104ED00009B901207047184B0868C01A1423B0FBA9
-:104EE000F3F08000086414480838C863022081F891
-:104EF00021000868026843F6F0708243D1E901039B
-:104F00001843CB6818430B6918434B6918438B69E6
-:104F10001843CB6918430243086802600020886286
-:104F2000C862086348638863012081F8210000207B
-:104F300081F8200000BFCDE7080002402DE9F041D4
-:104F400004460D4616461F464FF0000800BF94F871
-:104F50002000012802D10220BDE8F081012084F860
-:104F6000200000BF94F8210001282CD1022084F8F1
-:104F700021000020A0632068006820F00100216863
-:104F800008603B46324629462046FEF7DDFDE06AD2
-:104F900030B12068006840F00E00216808600BE026
-:104FA0002068006820F0040021680860206800681C
-:104FB00040F00A00216808602068006840F00100A5
-:104FC0002168086006E000BF002084F8200000BFD0
-:104FD0004FF002084046BFE770B5044600F082FA81
-:104FE00006462546681C10B104480078054400BFF9
-:104FF00000F078FA801BA842FAD370BDAC00002004
-:105000002DE9F04104460E460127002500BF264841
-:10501000007E012802D10220BDE8F0810120224952
-:10502000087600BF2068022813D14CF25030FEF7FA
-:1050300085FE90BB0120FEF7BFFD4CF25030FEF71D
-:105040007DFE07461948006920F0040017490861F1
-:1050500023E04CF25030FEF771FEF0B94FF0FF3014
-:105060003060A56812E02846FEF7BAFD4CF25030D9
-:10507000FEF764FE07460D48006920F002000B4968
-:1050800008610FB1356007E005F58065D4E90210CD
-:1050900001EB8020A842E6D800BF00BF00200249F3
-:1050A000087600BF3846B7E7A84600200020024037
-:1050B0000348006940F08000014908610020704702
-:1050C000002002402DE9FE4F05468B4617469846C4
-:1050D000012600240020029000BF2448007E012801
-:1050E00002D10220BDE8FE8F01202049087600BFD2
-:1050F0004CF25030FEF722FE064686BB012D02D14F
-:105100000120029006E0022D02D10220029001E06F
-:105110000420029000241EE02201B946C2464846FF
-:105120005146FDF7FFFF80B20190022000FB04B062
-:1051300000900199FEF768FD4CF25030FEF7FEFD3D
-:1051400006460B48006920F001000949086106B1D4
-:1051500004E0601CC4B202988442DDDB00BF00BFE3
-:1051600000200249087600BF3046BBE7A846002071
-:105170000020024000200849096901F0800151B176
-:105180000649054A5160064951601146096901F016
-:10519000800101B1012070470020024023016745D2
-:1051A000AB89EFCD2DE9F847034600240020002508
-:1051B0008446002700226EE14FF0010808FA02F44D
-:1051C000D1F8008008EA0400A0427DD1DFF8D0A227
-:1051D000D1F80480A8EB0A09D0453AD014DCB8F124
-:1051E000030F50D009DCB8F1000F31D0B8F1010F36
-:1051F0001CD0B8F1020F49D120E0B8F1110F18D03E
-:10520000B8F1120F42D11EE0B9F5881F25D006DC97
-:10521000B9F5803F20D0B9F5801F37D11AE0B9F534
-:10522000001F18D0B9F5041F30D117E0D1F80CC019
-:105230002DE0D1F80C8008F1040C28E0D1F80C80A6
-:1052400008F1080C23E0D1F80C8008F10C0C1EE0EA
-:1052500000BF00BF00BF00BF00BF00BFD1F8088083
-:10526000B8F1000F02D14FF0040C0BE0D1F8088028
-:10527000B8F1010F03D14FF0080C1C6102E04FF0B0
-:10528000080C5C6103E04FF0000C00E000BF00BFC1
-:10529000FF2801D8984601E003F104084646FF289C
-:1052A00002D84FEA820803E0A2F108084FEA880812
-:1052B0004746D6F800804FF00F0909FA07F928EAA7
-:1052C00009080CFA07F900E088E048EA0908C6F87E
-:1052D0000080D1F8048008F08058B8F1805F7DD15B
-:1052E00000BFDFF8C081D8F8188048F00108DFF867
-:1052F000B491C9F81880C846D8F8188008F0010899
-:10530000CDF8008000BF00BF4FEAB9384FEA9209DC
-:1053100058F829504FEA82784FEA18794FF00F0871
-:1053200008FA09F825EA0805DFF87C81434502D12F
-:105330004FF0000816E0DFF87481434502D14FF0CA
-:1053400001080FE0DFF86881434502D14FF0020801
-:1053500008E0DFF86081434502D14FF0030801E027
-:105360004FF004084FEA82794FEA197908FA09F8F0
-:1053700048EA0505DFF840814FEA920948F82950CC
-:10538000D1F8048008F48038B8F5803F0AD1DFF8FE
-:105390002C81D8F8008048EA0008DFF82091C9F88D
-:1053A000008009E0DFF81481D8F8008028EA0008BE
-:1053B000DFF80891C9F80080D1F8048008F40038BB
-:1053C000B8F5003F10D1DFF8F48008F10408D8F8F0
-:1053D000008048EA0008DFF8E49000E05AE009F1B4
-:1053E0000409C9F800800DE0DFF8D08008F1040856
-:1053F000D8F8008028EA0008DFF8C09009F1040915
-:10540000C9F80080D1F8048008F48018B8F5801F2E
-:105410000ED1DFF8A88008F10808D8F8008048EA23
-:105420000008DFF8989009F10809C9F800800DE03C
-:10543000DFF8888008F10808D8F8008028EA00081A
-:10544000DFF8789009F10809C9F80080D1F80480E4
-:1054500008F40018B8F5001F0ED1DFF8608008F1DD
-:105460000C08D8F8008048EA0008DFF8509009F1ED
-:105470000C09C9F800800DE0DFF8408008F10C0845
-:10548000D8F8008028EA0008DFF8309009F10C090C
-:10549000C9F80080521C102AFFF48EAEBDE8F887D0
-:1054A000000011100010024000080140000C0140F3
-:1054B00000100140001401400800014000040140B8
-:1054C000024693680B400BB1012000E000207047BA
-:1054D000C2684A40C26070470AB1016101E00B0432
-:1054E000036170470148006870470000A400002075
-:1054F00070B504460CB9012070BD4CF6CC40216853
-:10550000086045F2555021680860D4E900104860F1
-:105510002168A0688860FFF7E5FF054606E0FFF711
-:10552000E1FF401B302801D90320E5E72068C0686F
-:105530000028F4D14AF6AA20216808600020DBE7A1
-:1055400001464AF6AA200A68106000207047000051
-:105550000348006803490978084401490860704716
-:10556000A4000020AC00002010B50848006840F0FE
-:10557000100006490860032000F0C2F8002000F087
-:1055800007F800F02BF8002010BD000000200240BA
-:1055900070B504460E4800784FF47A71B1FBF0F014
-:1055A0000C490968B1FBF0F5284600F07EFD08B112
-:1055B000012070BD102C07D200222146501E00F0A1
-:1055C00060F80548046001E00120F2E70020F0E700
-:1055D000AC00002000000020A800002008B500BF9B
-:1055E0001F48806940F001001D49886108468069B4
-:1055F00000F00100009000BF00BF032000F080F821
-:10560000002211466FF00B0000F03BF8002211461B
-:105610006FF00A0000F035F8002211466FF0090023
-:1056200000F02FF800221146501F00F02AF8002247
-:105630001146101F00F025F800221146901E00F0C0
-:1056400020F800221146501E00F01BF800BF05494B
-:10565000486820F0E06040F00070486000BF08BD7E
-:10566000001002400000014000BF00F01F020121B5
-:1056700091404209920002F1E022C2F8001100BFFD
-:1056800070472DE9F05F80460D461646002701F071
-:105690006BF8074639462A46334601F00700C0F149
-:1056A000070ABAF1040F02D94FF0040A01E0C0F171
-:1056B000070AD14600F1040ABAF1070F02D24FF0EF
-:1056C000000A01E0A0F1030AD4464FF0010A0AFAE9
-:1056D00009FAAAF1010A0AEA020A0AFA0CFA4FF0D8
-:1056E000010B0BFA0CFBABF1010B0BEA030B4AEAC3
-:1056F0000B042146404601F03FF8BDE8F09F000052
-:1057000000BF00F00702064B19684FF6FF0319406F
-:10571000044B0B4343EA0221014B196000BF704761
-:105720000CED00E00000FA0500BF00BF00BF00BFA5
-:1057300000BFBFF34F8F00BF00BF00BF0948006824
-:1057400000F4E06008490843001D0649086000BFF6
-:1057500000BF00BFBFF34F8F00BF00BF00BF00BF3F
-:1057600000BFFDE70CED00E00000FA052DE9F04375
-:1057700085B006463DA30FCB01AC0FC43FA0006827
-:1057800000904FF00008002500270024A146012EBC
-:1057900030D0022E58D0102E61D1394844680068AC
-:1057A00000F0807000B301A8C4F38341475C04F4A7
-:1057B000803070B132484068C0F340401DF800802E
-:1057C00004F4803040B12F48B0FBF8F000FB07F53F
-:1057D00002E02D4807FB00F52948406800F48000EE
-:1057E000B0F5800F01D1A94603E068000321B0FBAA
-:1057F000F1F935E02248046A04F44070B0F5807F86
-:1058000005D104F0020010B14FF400491BE004F48C
-:105810004070B0F5007F07D11948406A00F00200DF
-:1058200010B149F640490EE004F44070B0F5407FF5
-:1058300007D11348006800F4003010B14FF224493A
-:1058400001E04FF000090BE000F0A0F90C494968B5
-:10585000C1F38131491C4900B0FBF1F900E000BF00
-:1058600000BF484605B0BDE8F08300000203040510
-:10587000060708090A0B0C0D0E0F1010010200009C
-:105880000010024000127A0000093D00F8B50446FD
-:1058900000260025207800F0010000286BD00027AA
-:1058A0004348C06900F0805070B900BF4048C069EB
-:1058B00040F080503E49C8610846C06900F0805001
-:1058C000009000BF00BF01273A48006800F48070D4
-:1058D000B0B93848006840F4807036490860FFF776
-:1058E00001FE064606E0FFF7FDFD801B642801D996
-:1058F0000320F8BD2F48006800F480700028F2D023
-:105900002B48006A00F440752DB3A08800F4407065
-:10591000A84220D02648006A20F44075012026497C
-:105920000860002008602248056205F0010090B17F
-:10593000FFF7D8FD064608E0FFF7D4FD801B41F2D3
-:105940008831884201D90320D3E71948006A00F062
-:1059500002000028F0D01648006A20F44070616808
-:10596000084313490862012F04D10846C06920F09A
-:105970008050C86100BF207800F00200022807D1E3
-:105980000B48406820F44040A1680843084948603B
-:10599000207800F01000102807D10548406820F456
-:1059A0008000E1680843024948600020A1E7000048
-:1059B00000100240007000404004424270B50446AE
-:1059C0000D4600266248006800F00700A8420ED28B
-:1059D0005F48006820F0070028435D4908600846DA
-:1059E000006800F00700A84201D0012070BD2078B7
-:1059F00000F00200022807D15648406820F0F0006D
-:105A0000A168084353494860207800F0010000284D
-:105A10005DD06068012806D14E48006800F400306F
-:105A200090B90120E2E76068022806D14948006881
-:105A300000F0007040B90120D8E74648006800F047
-:105A4000020008B90120D1E74248406820F0030075
-:105A5000616808433F494860FFF744FD06466068B7
-:105A6000012810D108E0FFF73DFD801B41F288318D
-:105A7000884201D90320B9E73648406800F00C009D
-:105A80000428F0D123E06068022810D108E0FFF775
-:105A900029FD801B41F28831884201D90320A5E706
-:105AA0002C48406800F00C000828F0D10FE008E016
-:105AB000FFF718FD801B41F28831884201D903208D
-:105AC00094E72448406800F00C000028F0D12048FA
-:105AD000006800F00700A8420ED91D48006820F0B9
-:105AE000070028431A4908600846006800F00700CC
-:105AF000A84201D0012079E7207800F004000428B2
-:105B000007D11448406820F4E060E1680843114977
-:105B10004860207800F00800082808D10D48406847
-:105B200020F46050216940EAC1000A49486000F051
-:105B30003DF808494968C1F30311074A515CC84060
-:105B4000064908600020FFF723FD00204EE7000013
-:105B50000020024000100240E87B00080000002006
-:105B600001480068704700000000002000B5FFF702
-:105B7000F7FF04494968C1F30221034A515CC84058
-:105B800000BD000000100240F87B000800B5FFF7E0
-:105B9000E7FF04494968C1F3C221034A515CC84088
-:105BA00000BD000000100240F87B0008F0B585B091
-:105BB0000FF26C0C9CE8E01001A8A0E8E0101CA516
-:105BC0002D68009500210022002300240020194D9B
-:105BD000696801F00C05F5B1042D02D0082D19D12A
-:105BE00001E0154819E001ADC1F38346AC5D01F455
-:105BF000803555B10F4D6D68C5F340451DF8052042
-:105C00000D4D6543B5FBF2F302E00C4D04FB05F3CB
-:105C1000184602E000BF084800BF00BF05B0F0BD55
-:105C200002030405060708090A0B0C0D0E0F1010DD
-:105C3000010200000010024000127A0000093D003D
-:105C4000F8B504460025207800F00100002878D03F
-:105C5000F848406800F00C0004280CD0F548406873
-:105C600000F00C00082811D1F248406800F48030A0
-:105C7000B0F5803F0AD1EF48006800F400300028FA
-:105C80005FD0606800285CD10120F8BD00BF60686B
-:105C9000B0F5803F06D1E748006840F48030E54920
-:105CA000086028E0606858B9E248006820F4803055
-:105CB000E04908600846006820F4802008601AE087
-:105CC0006068B0F5A02F0BD1DA48006840F480205E
-:105CD000D84908600846006840F4803008600AE04F
-:105CE000D448006820F48030D24908600846006833
-:105CF00020F48020086000BF606888B1FFF7F2FBE5
-:105D0000054606E0FFF7EEFB401B642801D903209F
-:105D1000BBE7C848006800F400300028F2D010E06B
-:105D2000FFF7E0FB054606E0FFF7DCFB401B6428BD
-:105D300001D90320A9E7BF48006800F4003000281B
-:105D4000F2D1207800F00200022857D1B94840680B
-:105D500000F00C0050B1B748406800F00C00082873
-:105D600018D1B448406800F4803098B9B148006850
-:105D700000F0020020B12069012801D0012084E751
-:105D8000AC48006820F0F800616940EAC100A94908
-:105D9000086033E02069E8B10120A7490860FFF7F7
-:105DA000A1FB054606E0FFF79DFB401B022801D939
-:105DB00003206AE79F48006800F002000028F2D044
-:105DC0009C48006820F0F800616940EAC1009949E8
-:105DD000086013E0002098490860FFF783FB054640
-:105DE00006E0FFF77FFB401B022801D903204CE7A8
-:105DF0009048006800F002000028F2D1207800F0FE
-:105E0000080008282DD1A069B8B101208B4908608D
-:105E1000FFF768FB054606E0FFF764FB401B02281E
-:105E200001D9032031E78348406A00F002000028CE
-:105E3000F2D0012000F0E4FC13E000207F4908606C
-:105E4000FFF750FB054606E0FFF74CFB401B02281E
-:105E500001D9032019E77748406A00F002000028C2
-:105E6000F2D1207800F00400042873D10026714894
-:105E7000C06900F0805070B900BF6E48C06940F042
-:105E800080506C49C8610846C06900F0805000909D
-:105E900000BF00BF01266A48006800F48070B0B9F6
-:105EA0006748006840F4807065490860FFF71AFB96
-:105EB000054606E0FFF716FB401B642801D90320C6
-:105EC000E3E65F48006800F480700028F2D000BF6D
-:105ED000E068012806D15748006A40F001005549A2
-:105EE000086227E0E06858B95248006A20F00100D3
-:105EF000504908620846006A20F00400086219E070
-:105F0000E06805280BD14B48006A40F0040049497D
-:105F100008620846006A40F0010008620AE045484D
-:105F2000006A20F00100434908620846006A20F038
-:105F30000400086200BFE068A0B1FFF7D3FA05468D
-:105F400009E0FFF7CFFA401B41F28831884202D9BD
-:105F500003209AE622E03748006A00F00200002899
-:105F6000EFD012E0FFF7BEFA054608E0FFF7BAFAF5
-:105F7000401B41F28831884201D9032085E62D4833
-:105F8000006A00F002000028F0D1012E05D1294856
-:105F9000C06920F080502749C86100BFE069C8B3DC
-:105FA0002448406800F00C00082860D0E06902280E
-:105FB00048D1002020490866FFF794FA054606E01C
-:105FC000FFF790FA401B022801D903205DE619482B
-:105FD000006800F000700028F2D1206AB0F5803F20
-:105FE00007D11448406820F40030A16808431149E3
-:105FF0004860D4E9080108430E49496821F4741146
-:1060000008430C49486001200B490866FFF76AFA0B
-:10601000054607E02DE0FFF765FA401B022801D98D
-:10602000032032E60348006800F000700028F2D038
-:106030001FE0000000100240000042428004424283
-:106040000070004000200C490866FFF74BFA054637
-:1060500006E0FFF747FA401B022801D9032014E6A7
-:106060000648006800F000700028F2D101E001202D
-:106070000BE6002009E6000000004242001002404A
-:10608000042808D14FF0E021096941F004014FF0E4
-:10609000E022116107E04FF0E021096921F00401DD
-:1060A0004FF0E02211617047704770B504462546F5
-:1060B000681EB0F1807F01D301200FE0681E4FF011
-:1060C000E02148610F214FF0FF3000F055FB002028
-:1060D0004FF0E021886107200861002070BD10B5F5
-:1060E000FFF7E2FF10BD70472DE9F0470446206836
-:1060F00005682068C668206847694FF00008C146F7
-:1061000005F00F08B8F1000F0AD105F0200038B1F2
-:1061100006F0200020B1204600F09FFEBDE8F08789
-:10612000B8F1000F6DD007F0010018B906F49070B7
-:10613000002866D005F0010030B106F4807018B177
-:10614000E06B40F00100E06305F0040030B107F0BF
-:10615000010018B1E06B40F00200E06305F00200BE
-:1061600030B107F0010018B1E06B40F00400E063CB
-:1061700005F0080030B107F0010018B1E06B40F005
-:106180000800E063E06B68B305F0200028B106F07A
-:10619000200010B1204600F060FE20684069C0F386
-:1061A0008019E06B00F0080010B9B9F1000F22D09F
-:1061B000204600F0E3FD2068406900F04000B0B1E7
-:1061C0002068406920F0400021684861606B50B150
-:1061D0001748616B4863606BFEF752FD10B1606B4E
-:1061E000416B88470CE02046FFF77DFF08E0204622
-:1061F000FFF779FF04E02046FFF775FF0020E0631A
-:106200008CE705F0800030B106F0800018B1204620
-:1062100000F0C4FF82E705F0400030B106F0400016
-:1062200018B1204600F0BAFD78E700BF76E700001D
-:10623000E56C000810B504460CB9012010BDA0693A
-:1062400000B100E000BF94F8390028B9002084F8BC
-:106250003800204600F028F8242084F8390020680F
-:10626000C06820F400502168C860204600F058FE45
-:106270002068006920F49040216808612068406926
-:1062800020F02A00216848612068C06840F400506E
-:106290002168C8600020E063202084F8390084F879
-:1062A0003A000020CAE7000010B586B004464B490A
-:1062B0002068884242D100BF4948C06940F480202C
-:1062C0004749C8610846C06900F48020019000BFBA
-:1062D00000BF08150290022003900320059002A938
-:1062E0004048FEF75FFF4FF40060029000200390EB
-:1062F000049002A93B48FEF755FF002211462720D3
-:10630000FFF7BFF92720FFF7AFF937480068C068EB
-:1063100040F4807034490968C860334800684069B7
-:1063200040F001003049096848612F480068C068A2
-:1063300040F020002C490968C8604CE02B492068D7
-:10634000884248D100BF2648806940F480402449F3
-:1063500088610846806900F48040019000BF00BF5A
-:1063600000BF0846806940F00400886108468069E3
-:1063700000F00400019000BF00BF48150290022009
-:1063800003900320059002A91948FEF70BFF4FF474
-:106390008060029000200390049002A91448FEF748
-:1063A00001FF002211462520FFF76BF92520FFF79A
-:1063B0005BF92068C06840F480702168C86020687C
-:1063C000406940F00100216848612068C06840F0E1
-:1063D00020002168C86006B010BD000000480040E1
-:1063E00000100240000C0140CC3F0020003801406A
-:1063F000000801407047704700BFFEE701480249AE
-:10640000086070470030000808ED00E010B5FFF7A5
-:1064100069F840F6B83188420DD24FF480611948CE
-:10642000FFF74EF8044618480470FFF75BF8174969
-:106430000860002010BD4FF480611248FFF740F85B
-:10644000044611480078844208D111480078012898
-:1064500007D1FFF747F80D49086002E000200C491A
-:106460000870FFF73FF809490968401AB0F57A7FCC
-:1064700003D9012006490870DCE7034804700020B6
-:10648000D8E7000000080140280000202C00002070
-:106490003000002070B504460D46FFF723F8A168D0
-:1064A000401AA84206D9A1882068FFF711F8FFF723
-:1064B00019F8A06070BD00000EB51C481C490860AA
-:1064C00081151B4881600121C160002141614FF4A9
-:1064D0006021C16100201649486002211448016111
-:1064E000FDF7C0FD18B1452112A001F047F90020C9
-:1064F0000090012001900720029069460C48FDF7AA
-:10650000FDFC18B14F210BA001F038F901200090DB
-:10651000022001900720029069460548FDF7EEFC35
-:1065200018B1592103A001F029F90EBD0024014042
-:10653000C40000202E2E2F5372632F6164632E63DC
-:106540000000000010B513481349086001151348F6
-:10655000FEF7B6FF012801D1182000E030200E49D7
-:10656000486000210C488160C1604FF440310161F6
-:106570000021416181610121C1610021016241620B
-:106580008162C162FEF7DCF818B1692104A001F054
-:10659000F5F810BD00640040882F0020000801407D
-:1065A0002E2E2F5372632F63616E2E630000000046
-:1065B00008B500BF0648406940F001000449486141
-:1065C0000846406900F00100009000BF00BF08BD10
-:1065D0000010024000B585B000BF2948806940F036
-:1065E0002000274988610846806900F0200000905B
-:1065F00000BF00BF00BF0846806940F0040088610A
-:106600000846806900F00400009000BF00BF00BF92
-:106610000846806940F0080088610846806900F0FB
-:106620000800009000BF00BF002220211548FEF79F
-:1066300053FF002240211348FEF74EFF0022802125
-:106640001048FEF749FF002243F201010E48FEF711
-:1066500043FFE0200190012002900220049001A954
-:106660000848FEF79FFD43F20100019001200290CF
-:106670000220049001A90448FEF794FD05B000BD76
-:106680000010024000080140000C014010B508480D
-:10669000084908600320486040F6C411054881603D
-:1066A000FEF726FF18B13A2103A001F067F810BDEC
-:1066B00000300040B80000202E2E2F5372632F6947
-:1066C0007764672E6300000010B50C480C49086021
-:1066D0004FF416504860002109488160C160016193
-:1066E0000C21416100218161C161FFF7A3FD18B157
-:1066F0005C2104A001F042F810BD00000038014008
-:106700000C4000202E2E2F5372632F75736172740C
-:106710002E63000010B50C480C4908604FF4E130BE
-:106720004860002109488160C16001610C2141611C
-:1067300000218161C161FFF77DFD18B14A2104A0EC
-:1067400001F01CF810BD000000480040CC3F0020C4
-:106750002E2E2F5372632F75736172742E63000097
-:1067600000BFFEE77047000002480068C0F3022047
-:10677000704700000CED00E010B5002807DA0A07AA
-:10678000140E054A00F00F031B1FD45403E00A0740
-:10679000130E024A135410BD18ED00E000E400E0AF
-:1067A0007047000010B50446207801280FD1FEF78D
-:1067B00099FE11490968401AB0F57A7F1AD3002270
-:1067C00001210E48FEF788FE0020207012E020789C
-:1067D00002280FD1FEF786FE07490968401A40F6E5
-:1067E000B831884206D3002201210448FEF774FE26
-:1067F0000020207010BD000088000020000C014027
-:1068000008B508490968C9084FF47A72B1FBF2F17A
-:106810004143009100BF00BF00994A1E0092002929
-:10682000F9D108BD000000203EB5354805680024B8
-:1068300006E0E00025FA00F032490855601CC4B2B9
-:10684000042CF6DB2E48001D0568002408E0E0005B
-:1068500025FA00F0C1B2201D2A4A1154601CC4B2AE
-:10686000042CF4DB264808300568002409E0E00029
-:1068700025FA00F0C1B204F10800224A1154601C4C
-:10688000C4B2042CF3DB20480568002406E0E000D5
-:1068900025FA00F01D490855601CC4B2042CF6DB33
-:1068A0001948001D0568002408E0E00025FA00F002
-:1068B000C1B2201D154A1154601CC4B2042CF4DB73
-:1068C000114808300568002409E0E00025FA00F0CE
-:1068D000C1B204F108000D4A1154601CC4B2042C6A
-:1068E000F3DB6A460A490748FDF78CF80C22074992
-:1068F0006846FCF74BFC08B900203EBD0120FCE7D0
-:10690000E8F7FF1F8C46002000F40008984600209E
-:106910002C82000808B5FDF793F9FEF72BFC00BFA9
-:1069200034200B49C86000BF0A48FDF77DF90A20F2
-:10693000FEF752FBFEF7BCFB0748009001226946B8
-:106940000648FDF795F91420FEF746FB08BD000048
-:106950000020024058470020674523010428000812
-:1069600070472DE9F047ADF5007D81468846164613
-:106970001F46DDF820A24FF4807140A8FCF7FBFB16
-:106980004FF480716846FCF7F6FB0025FCB25520F9
-:106990008DF80001AA208DF80101300A8DF802015E
-:1069A000F0B28DF803018DF80481A01CC0B28DF8FF
-:1069B0000501380A8DF806018DF807412246514637
-:1069C00042A8FCF7BFFB04F1080240A96846FCF7A7
-:1069D000B9FB04F108016846FCF7F8FF0546280EEC
-:1069E00004F1080140AA5054C5F3074104F109001D
-:1069F0001154C5F30721401C1154401C1554F021BB
-:106A0000401C1154401CC2B240A9484600F078FA1C
-:106A10000DF5007DBDE8F08710B5FEF799FDFFF795
-:106A20005EFB10BD10B594B009200A904FF4803081
-:106A30000B9000200C9001200E90109002201190DD
-:106A4000C10312914FF4E01113910AA8FFF7F8F86F
-:106A500018B1CC211AA000F091FE0F200590022061
-:106A60000690002007904FF4806008900020099065
-:106A7000022105A8FEF7A2FF18B1DA2110A000F04C
-:106A80007DFE022001908003039001A8FEF7FEFE28
-:106A900018B1E1210AA000F071FEFFF761F84FF490
-:106AA0007A71B0FBF1F42046FFF7FFFA0420FFF7FC
-:106AB000E7FA00221146501EFEF7E3FD14B010BDA8
-:106AC0002E2E2F5372632F6D61696E2E63000000AE
-:106AD0001148006840F001000F490860084640680E
-:106AE0000E4908400C494860084600680C490840B7
-:106AF000094908600846006820F4802008600846BC
-:106B0000406820F4FE0048604FF41F008860C8030E
-:106B10000449086070470000001002400000FFF8C0
-:106B2000FFFFF6FE08ED00E07047000070B588B08A
-:106B300006460D4614462846B5F5884F59D008DC60
-:106B4000B0F5885F10D06FF40851084400287DD15B
-:106B500015E0A0F5AA401438002852D0A0F58050C6
-:106B6000EC380028F3D177E000204FF4885340F24E
-:106B7000FF720C2100904C48FFF7F3FE90E04B4869
-:106B80000078D0B9FEF7AEFC494908602078F028BB
-:106B900008D1012045490870012211464548FEF7F9
-:106BA0009BFC0AE02078F12807D102203F490870B9
-:106BB000012211463F48FEF78FFC2078F0280AD1C9
-:106BC000002240213C48FEF787FC002280213A4801
-:106BD000FEF782FC0CE02078F12809D10122402147
-:106BE0003548FEF779FC012280213348FEF774FC1A
-:106BF00056E0FFF78FFE012000F0D1FDFEF794FD77
-:106C00004EE02E482168016061684160A1688160A2
-:106C10002B48E1680160216941602A4A0146274802
-:106C2000FCF7F0FE284827490A6802604A6842607B
-:106C3000896881600F2225A10C30FCF783FA224875
-:106C400045F21B5340F2FF720C2100E027E0009058
-:106C50001548FFF786FE23E0FCF73CFF1F4801685C
-:106C6000029141680391806804901D480168059174
-:106C7000416806918068079002A846F2186340F2C6
-:106C8000FF720C2100900848FFF76BFEC820FEF74A
-:106C9000A3F9012000F083FDFEF746FD00E000BFF0
-:106CA00000BF08B070BD0000480000208400002034
-:106CB00088000020000C0140000801404A420020EA
-:106CC0008C000020564200206242002056342E30B4
-:106CD0002E315F3230323430323239008C4600206F
-:106CE0009846002070B505466C6A0020E085E08477
-:106CF0002046FFF7F8F970BD10B50A46C3889342E5
-:106D00001EDB03691B68DB6823F020030469246829
-:106D1000E360C3889B1AC38003691B68DB6843F088
-:106D2000200304692468E360114683880B4499B208
-:106D300003888B4202DC0388CB1A99B281801CE065
-:106D400003691B68DB6823F0200304692468E3609F
-:106D5000C1880023C38003691B68DB6843F02003FC
-:106D600004692468E36083880B4499B203888B42EA
-:106D700002DC0388CB1A99B2818010BD0168C96812
-:106D800021F490710268D1600168496921F0010124
-:106D900002685161202180F83A10704710B504460E
-:106DA0002068C06820F040002168C860202084F876
-:106DB00039002046FFF71FFB002010BD00BFC2882E
-:106DC00003889A42FBD002691268D26822F08002DE
-:106DD00003691B68DA60C2888AB90269126812689E
-:106DE000C2F3C0125AB10269126851600269126896
-:106DF000D26842F0800203691B68DA6070474388FA
-:106E0000C268D1544288521C92B2428003889A428E
-:106E100001D100224280C288521CC28002691268DD
-:106E2000D26842F0800203691B68DA6000BFE5E7C0
-:106E300010B502460B461946D4889C4209DB94885B
-:106E40000C44A1B214888C4204DC14880C1BA1B23F
-:106E500000E00021D468605C10BD70B5044694F871
-:106E60003A0022284AD1A068B0F5805F13D1A56A04
-:106E7000206940B920684068C0F308002880A06AF3
-:106E8000801CA06219E020684068C0B22880A06A17
-:106E9000401CA06211E0206938B920684068C1B286
-:106EA000A26A501CA062117007E02068406800F0E0
-:106EB0007F01A26A501CA0621170E08D401E80B25A
-:106EC000E085C8B92068C06820F020002168C8604B
-:106ED0002068C06820F480702168C860206840691C
-:106EE00020F0010021684861202084F83A00204603
-:106EF000FFF780FA002070BD0020FCE70220FAE7CF
-:106F0000F0B507460D461646002405E0295D3846D3
-:106F1000FFF754FF601CC4B2B442F7DBF0BD0000C1
-:106F20002DE9F041044600252068006920F4405016
-:106F3000E1680843216808612169A0680843616924
-:106F4000084305432068C06841F20C618843284328
-:106F50002168C8602068406920F44070A169084336
-:106F6000216848615F49206888425CD1FEF70EFEC7
-:106F700000EBC00101EB001061688900B0FBF1F685
-:106F8000FEF704FE00EBC00101EB00106168890010
-:106F9000B0FBF1F06421B0FBF1F000EBC00101EBBC
-:106FA0000010A6EB8000322101EB00106421B0FB41
-:106FB000F1F000F0F006FEF7E9FD00EBC00101EB97
-:106FC000001061688900B0FBF1F06421B0FBF1F0C2
-:106FD00006EB0016FEF7DAFD00EBC00101EB001036
-:106FE00061688900B0FBF1F7FEF7D0FD00EBC0014E
-:106FF00001EB001061688900B0FBF1F06421B0FB87
-:10700000F1F000EBC00101EB0010A7EB8000322192
-:1070100001EB00106421B0FBF1F000F00F003044F0
-:10702000216888605BE0FEF7A1FD00EBC00101EB89
-:10703000001061688900B0FBF1F6FEF797FD00EBE8
-:10704000C00101EB001061688900B0FBF1F0642120
-:10705000B0FBF1F000EBC00101EB0010A6EB8000EB
-:10706000322101EB00106421B0FBF1F000F0F006DA
-:10707000FEF77CFD00EBC00101EB001061688900A8
-:10708000B0FBF1F06421B0FBF1F006EB0016FEF767
-:107090006DFD00EBC00101EB001061688900B0FBE1
-:1070A000F1F7FEF763FD00EBC00101EB0010616832
-:1070B0008900B0FBF1F06421B0FBF1F000EBC001FE
-:1070C00001EB0010A7EB8000322101EB00106421DE
-:1070D000B0FBF1F000F00F00304421688860BDE89B
-:1070E000F0810000003801402DE9FF4FC1B0894612
-:1070F00092461E46DDF83CB14E9F4FF4807101A8C8
-:10710000FCF739F800250024A046381DC4B2F72C3E
-:1071100000DDF7243A208DF804008DF805908DF8F5
-:1071200006A08DF80740300A8DF80800F0B28DF8FF
-:107130000900380A8DF80A00F8B28DF80B00002516
-:1071400007E01BF8051005F1080001AA1154681C9E
-:10715000C5B2201FA842F4DC012506E001A8405D6D
-:1071600040441FFA80F8681CC5B2201D8542F5DB3B
-:1071700001AA02F800804FEA2821601D11540D2158
-:10718000A01D11540A21E01D1154401CC2B201A9D6
-:107190004198FFF7B5FE45B0BDE8F08F014691F884
-:1071A000390021282CD18868B0F5805F0FD10A6A98
-:1071B0001088C0F308000B685860086918B9086A9D
-:1071C000801C086209E0086A401C086205E00B6A3E
-:1071D000581C086218780B685860C88C401E80B232
-:1071E000C88458B90868C06820F080000B68D8606F
-:1071F0000868C06840F040000B68D8600020704705
-:107200000220FCE710B5054800F020F8044800F023
-:1072100052F80448FEF768FF10BD00005C00002033
-:10722000700000200C40002010B5054800F00EF85A
-:10723000044800F040F80448FEF756FF10BD000077
-:107240003400002048000020CC3F002008B502692F
-:1072500012681268C2F3401262B30269126852687F
-:10726000D1B20269126812680022B2B94388C268BA
-:10727000D1544288521C92B2428003889A4201DB68
-:1072800000224280C288521C92B2C28003889A4275
-:1072900003DD0288C2800122027200BF0022009238
-:1072A00002691268126800920269126852680092BC
-:1072B00000BF00BF08BD016909680968C1F3C011BA
-:1072C00039B301690968C96801F0800109B36FF039
-:1072D0008001026912681160C18891B1C188491E9C
-:1072E000C1808288C168895C0269126851608188A6
-:1072F000491C89B28180028891420ADB0021818089
-:1073000007E001690968C96821F080010269126813
-:10731000D160704710B50248FDF7E8F810BD0000D5
-:10732000882F00202DE9F34F87B0074600200590F5
-:107330000490F888082871DB00213846FFF778FDB3
-:1073400081466A4981F80090B9F13A0F67D101216D
-:107350003846FFF76DFD8046644981F80180B8F139
-:10736000AF0F7DD102213846FFF762FD06465F4927
-:107370008E70112E03D0162E01D00C2E71D1032148
-:107380003846FFF755FD04465849CC70F98804F19A
-:10739000080081421CDA56480078012806D1FEF721
-:1073A000A1F854490860002051490870FEF79AF886
-:1073B00050490968411A0898814206D9B979384676
-:1073C000FFF79AFC01204A49087009B0BDE8F08F28
-:1073D00001204749087000250DE0281DC1B238463C
-:1073E000FFF726FD444948550846415D281D3F4AA0
-:1073F0001154681C85B2A542EFDB201DC1B238468E
-:10740000FFF716FD8346601DC1B23846FFF710FD39
-:107410000BEB002080B20490012509E063E05EE000
-:107420003248415D0598084480B20590681C85B2D9
-:10743000201D8542F4DBA01DC1B23846FFF7F8FCE1
-:107440000390E01DC1B23846FFF7F2FC0290DDE97F
-:107450000401884234D103980D2831D1029801E00B
-:1074600038E032E00A282BD1234A51463046FFF754
-:107470005BFB042C18DB204840781F49097800EB9F
-:10748000012080B206901C48C0781B49897800EB27
-:1074900001201FFA80FA1848001D5346009031461B
-:1074A0001648069AFFF75DFA04F10800C1B23846A3
-:1074B000FFF722FC4FF400511148FEF709F812E0E3
-:1074C00001213846FFF718FC0DE001213846FFF78F
-:1074D00013FC08E001213846FFF70EFC03E0012110
-:1074E0003846FFF709FC00BF6FE700007C4300202F
-:1074F00098000020940000207D42002048000020D9
-:10750000000C01402DE9F34F87B08146B9F8060021
-:107510000D287BDB00214846FFF78AFC0390904949
-:107520000398087001214846FFF782FC82468C4987
-:1075300081F801A00398552869D1BAF1AA0FFBD1AF
-:1075400002214846FFF774FC8549887003214846AC
-:10755000FFF76EFC8249C8700846C078897800EB56
-:10756000012080B2069004214846FFF761FC0546E1
-:107570007B490D71112D03D0162D01D00C2D7DD11D
-:1075800005214846FFF754FC074675484771072117
-:107590004846FFF74DFC834606214846FFF748FC66
-:1075A0000BEB00201FFA80F84FEA18206C49887115
-:1075B00081F8078007214846FFF73AFC0446381B4C
-:1075C00002287DD1B9F8061007F10B0081421FDABD
-:1075D00064480078012806D1FDF784FF62490860FD
-:1075E000002060490870FDF77DFF5F490968411A76
-:1075F0000898814207D999F806104846FFF77CFBA6
-:1076000001205849087009B0BDE8F08FA5E0A0E05E
-:1076100001205449087000260FE006F10800C1B2AD
-:107620004846FFF705FC514988550846815D06F13B
-:1076300008004B4A1154701C86B2A642EDDB04F1DF
-:107640000800C1B24846FFF7F3FB4FEA006B04F1B4
-:107650000900C1B24846FFF7EBFB0BEB004B04F10E
-:107660000A00C1B24846FFF7E3FB0BEB002B04F125
-:107670000B00C1B24846FFF7DBFB00E064E00BEB18
-:107680000001049104F108013548FCF79FF90590C9
-:10769000DDE90410081A4DD1344A41462846FFF767
-:1076A00045FA221D2E49091D881EFBF74BFD04F1EA
-:1076B0000800C1B24846FFF7BBFBA11D284A00E005
-:1076C0003DE05054C81CC1B24846FFF7B1FBE11D74
-:1076D000234A5054C81CC1B24846FFF7A9FB04F125
-:1076E00008011F4A5054C81CC1B24846FFF7A0FB0E
-:1076F00004F109011A4A5054F02104F10A0011540E
-:10770000421C17490698FCF7C5F81848CDE90080D7
-:107710002A46FA211648069BFFF7E6FC07F10B0004
-:10772000C1B24846FFF7E8FA4FF400511148FDF79F
-:10773000CFFE68E701214846FFF7DEFA0DE00121A0
-:107740004846FFF7D9FA08E001214846FFF7D4FA86
-:1077500003E001214846FFF7CFFA00BF53E70000DE
-:107760007A450020A00000209C0000207B440020DF
-:1077700070000020000C014000BFFEE700BFFEE7E4
-:1077800002E008C8121F08C1002AFAD170477047EA
-:10779000002001E001C1121F002AFBD1704700F058
-:1077A000010181F31388704710B50A46038993429B
-:1077B0001EDB1E4B1B685B6923F002031B4C246815
-:1077C000636103899B1A0381184B1B685B6943F053
-:1077D0000203164C246863611146C3880B4499B2B6
-:1077E00043888B4202DC4388CB1A99B2C1801CE0EB
-:1077F0000E4B1B685B6923F002030C4C2468636129
-:10780000018900230381094B1B685B6943F0020374
-:10781000064C24686361C3880B4499B243888B4249
-:1078200002DC4388CB1A99B2C18010BD882F00209A
-:1078300010B502460B46194614899C4209DBD488D0
-:107840000C44A1B254888C4204DC54880C1BA1B2B5
-:1078500000E00021D468605C10BD00007FB50646E2
-:10786000002404E0305D18490855601CC4B2082C9F
-:10787000F8DB3823154A02A9304600F08DF90024C0
-:107880001EE0002504E002A800F046F9681CC5B21D
-:107890000F48005DA842F6DC40230E4A694602A864
-:1078A00000F07AF9002507E06846405DE1000A4AE9
-:1078B00089184855681CC5B2082DF5DB601CC4B298
-:1078C000102CDEDB7FBD0000AD000020F48200083C
-:1078D000CC8500082C830008C8460020FFB587B07F
-:1078E0000F4600250AE0785D3349495D884203D0A0
-:1078F0003846FFF7B3FF0725681CC5B2082DF2DB39
-:1079000040232E4A05A9079800F046F9012538E0E2
-:10791000002405E005A8005D03A90855601CC4B259
-:10792000082CF7DB0998002805D1681EC0002449FF
-:107930004018009005E01020401BC000204940186E
-:107940000090002406E003A9201D085C05A9085545
-:10795000601CC4B2042CF6DB01AA05A9009800F053
-:1079600033F8002409E003A8005D01A9095D48403F
-:1079700005AA211D5054601CC4B2042CF3DB681C02
-:10798000C5B2112DC4DB6846067D017E0175067601
-:10799000467D417E41754676867D817E81758676FF
-:1079A000C67DC17EC175C6764023064A05A80A99E0
-:1079B00000F0F2F80BB0F0BDAD00002034820008FA
-:1079C000C846002074820008F0B587B005460E4610
-:1079D00017464023114A05A9304600F0DDF800247F
-:1079E00011E005A8005D295D48408006800E03A9CE
-:1079F0000855A0010A49401803A9095D405C01A986
-:107A00000855601CC4B2082CEBDB2023054A39461C
-:107A100001A800F0C1F807B0F0BD00006C830008B9
-:107A2000CC830008AC830008FEF7E8FCFDF79CFD62
-:107A3000FEF7F8FFFEF7CEFDFEF7BAFDFEF73CFDC0
-:107A4000FEF780FDFEF722FEFEF73EFEFEF762FE29
-:107A5000FBF7A6FDFBF766FCC820FDF7BDFA24483E
-:107A60004088B0F57A7F04DA012220212148FDF711
-:107A700033FDFEF7D9FE2049087037E01F48FDF7B7
-:107A80005FFDC8211E48FFF74DFCC8211D48FFF7C8
-:107A900039FD1D48FEF786FE17480078C0B900245E
-:107AA00000BF09E004EB4401184A02EBC100C82101
-:107AB000FBF7B8FD601C84B2162CF3DBFA211448E6
-:107AC000FEF7E8FC4FF47A711248FEF7E3FC07E09A
-:107AD00064210F48FEF7DEFC64210E48FEF7DAFC55
-:107AE000FEF794FC012801D1FEF72CFDC6E700004B
-:107AF0000400002000080140A1000020B800002080
-:107B00005C0000203400002084000020782D00203C
-:107B100008000020180000200CB5002104E0425CA1
-:107B20006B465A544A1CD1B20829F8DB002112E0F6
-:107B3000425C5206120E425406290ADA6B464A1C6F
-:107B40009A5C80231A40802A03D1425C01231A43A5
-:107B500042544A1CD1B20729EADB6A4612788023D4
-:107B60001A40002A04D0C27810231A43C27003E0DE
-:107B7000C27810239A43C2706A46D27808231A400A
-:107B8000002A04D0827901231A43827103E08279AA
-:107B90005208520082710CBDFFB5124C002000BF8C
-:107BA00000260546401C4E550828F9DB002000BF82
-:107BB0001378521CDE10009DAD5D5E07760FA65D4A
-:107BC0003540002D07D0C5104D5D4607760FA65DE8
-:107BD0003543C6108D55451C2846039EB542E7DB4C
-:107BE000FFBD0000DC850008000000000000000070
-:107BF0000102030406070809000000000102030453
-:107C00001007120713071407150715062007210789
-:107C100023072407250730073107320734073507C4
-:107C2000350640074107420743074507000021107A
-:107C3000422063308440A550C660E77008812991D6
-:107C40004AA16BB18CC1ADD1CEE1EFF1311210027E
-:107C500073325222B5529442F772D6623993188326
-:107C60007BB35AA3BDD39CC3FFF3DEE3622443344A
-:107C700020040114E664C774A44485546AA54BB576
-:107C800028850995EEE5CFF5ACC58DD5533672261E
-:107C900011163006D776F6669556B4465BB77AA7C6
-:107CA00019973887DFF7FEE79DD7BCC7C448E5586A
-:107CB0008668A7784008611802282338CCC9EDD916
-:107CC0008EE9AFF9488969990AA92BB9F55AD44ABE
-:107CD000B77A966A711A500A333A122AFDDBDCCB66
-:107CE000BFFB9EEB799B588B3BBB1AABA66C877C8A
-:107CF000E44CC55C222C033C600C411CAEED8FFDB6
-:107D0000ECCDCDDD2AAD0BBD688D499D977EB66E5D
-:107D1000D55EF44E133E322E511E700E9FFFBEEF05
-:107D2000DDDFFCCF1BBF3AAF599F788F8891A981C7
-:107D3000CAB1EBA10CD12DC14EF16FE18010A100B1
-:107D4000C230E3200450254046706760B9839893A1
-:107D5000FBA3DAB33DC31CD37FE35EF3B102901201
-:107D6000F322D2323542145277625672EAB5CBA56D
-:107D7000A89589856EF54FE52CD50DC5E234C32451
-:107D8000A01481046674476424540544DBA7FAB741
-:107D90009987B8975FE77EF71DC73CD7D326F236A1
-:107DA0009106B01657667676154634564CD96DC98D
-:107DB0000EF92FE9C899E9898AB9ABA944586548F1
-:107DC00006782768C018E1088238A3287DCB5CDBE1
-:107DD0003FEB1EFBF98BD89BBBAB9ABB754A545A41
-:107DE000376A167AF10AD01AB32A923A2EFD0FEDAD
-:107DF0006CDD4DCDAABD8BADE89DC98D267C076C91
-:107E0000645C454CA23C832CE01CC10C1FEF3EFF80
-:107E10005DCF7CDF9BAFBABFD98FF89F176E367EE0
-:107E2000554E745E932EB23ED10EF01E000000003F
-:107E3000B71DC1046E3B8209D926430DDC760413BD
-:107E40006B6BC517B24D861A0550471EB8ED082654
-:107E50000FF0C922D6D68A2F61CB4B2B649B0C35F1
-:107E6000D386CD310AA08E3CBDBD4F3870DB114C9E
-:107E7000C7C6D0481EE09345A9FD5241ACAD155F81
-:107E80001BB0D45BC2969756758B5652C836196A8A
-:107E90007F2BD86EA60D9B6311105A6714401D7975
-:107EA000A35DDC7D7A7B9F70CD665E74E0B623981F
-:107EB00057ABE29C8E8DA191399060953CC0278B89
-:107EC0008BDDE68F52FBA582E5E66486585B2BBE10
-:107ED000EF46EABA3660A9B7817D68B3842D2FAD2D
-:107EE0003330EEA9EA16ADA45D0B6CA0906D32D4D0
-:107EF0002770F3D0FE56B0DD494B71D94C1B36C705
-:107F0000FB06F7C32220B4CE953D75CA28803AF20D
-:107F10009F9DFBF646BBB8FBF1A679FFF4F63EE168
-:107F200043EBFFE59ACDBCE82DD07DEC777086342D
-:107F3000C06D4730194B043DAE56C539AB0682279C
-:107F40001C1B4323C53D002E7220C12ACF9D8E12DB
-:107F500078804F16A1A60C1B16BBCD1F13EB8A0110
-:107F6000A4F64B057DD00808CACDC90C07AB97789D
-:107F7000B0B6567C69901571DE8DD475DBDD936BE0
-:107F80006CC0526FB5E6116202FBD066BF469F5EC1
-:107F9000085B5E5AD17D1D576660DC5363309B4D94
-:107FA000D42D5A490D0B1944BA16D84097C6A5AC22
-:107FB00020DB64A8F9FD27A54EE0E6A14BB0A1BFE8
-:107FC000FCAD60BB258B23B69296E2B22F2BAD8A17
-:107FD00098366C8E41102F83F60DEE87F35DA999CC
-:107FE0004440689D9D662B902A7BEA94E71DB4E08F
-:107FF000500075E4892636E93E3BF7ED3B6BB0F364
-:108000008C7671F7555032FAE24DF3FE5FF0BCC644
-:10801000E8ED7DC231CB3ECF86D6FFCB8386B8D587
-:10802000349B79D1EDBD3ADC5AA0FBD8EEE00C6967
-:1080300059FDCD6D80DB8E6037C64F643296087A6D
-:10804000858BC97E5CAD8A73EBB04B77560D044FC0
-:10805000E110C54B383686468F2B47428A7B005C41
-:108060003D66C158E4408255535D43519E3B1D25FA
-:108070002926DC21F0009F2C471D5E28424D193631
-:10808000F550D8322C769B3F9B6B5A3B26D6150376
-:1080900091CBD40748ED970AFFF0560EFAA01110C5
-:1080A0004DBDD014949B93192386521D0E562FF16B
-:1080B000B94BEEF5606DADF8D7706CFCD2202BE2B9
-:1080C000653DEAE6BC1BA9EB0B0668EFB6BB27D7FC
-:1080D00001A6E6D3D880A5DE6F9D64DA6ACD23C4FD
-:1080E000DDD0E2C004F6A1CDB3EB60C97E8D3EBD0C
-:1080F000C990FFB910B6BCB4A7AB7DB0A2FB3AAE35
-:1081000015E6FBAACCC0B8A77BDD79A3C660369B79
-:10811000717DF79FA85BB4921F4675961A16328838
-:10812000AD0BF38C742DB081C330718599908A5D4D
-:108130002E8D4B59F7AB085440B6C95045E68E4ECC
-:10814000F2FB4F4A2BDD0C479CC0CD43217D827B47
-:108150009660437F4F460072F85BC176FD0B8668E0
-:108160004A16476C93300461242DC565E94B9B1179
-:108170005E565A1587701918306DD81C353D9F0210
-:1081800082205E065B061D0BEC1BDC0F51A69337AD
-:10819000E6BB52333F9D113E8880D03A8DD0972464
-:1081A0003ACD5620E3EB152D54F6D4297926A9C5EE
-:1081B000CE3B68C1171D2BCCA000EAC8A550ADD698
-:1081C000124D6CD2CB6B2FDF7C76EEDBC1CBA1E303
-:1081D00076D660E7AFF023EA18EDE2EE1DBDA5F01C
-:1081E000AAA064F4738627F9C49BE6FD09FDB8894B
-:1081F000BEE0798D67C63A80D0DBFB84D58BBC9A14
-:1082000062967D9EBBB03E930CADFF97B110B0AFB0
-:10821000060D71ABDF2B32A66836F3A26D66B4BCD7
-:10822000DA7B75B8035D36B5B440F7B1214023243D
-:10823000255E262A39312921191109013B332B23C7
-:108240001B130B033D352D251D150D053F372F271E
-:108250001F170F0738302820181008003A322A223A
-:108260001A120A023C342C241C140C043E362E260E
-:108270001E160E0627072F0F37173F1F26062E0E36
-:1082800036163E1E25052D0D35153D1D24042C0CDE
-:1082900034143C1C23032B0B33133B1B22022A0AEE
-:1082A00032123A1A210129093111391920002808FE
-:1082B000301038182122232425262728292A2B2C60
-:1082C0002D2E2F303132333435363738393A3B3C66
-:1082D0003D3E3F400102030405060708090A0B0C56
-:1082E0000D0E0F101112131415161718191A1B1C46
-:1082F0001D1E1F2038302820181008003931292170
-:10830000191109013A322A221A120A023B332B238D
-:108310003E362E261E160E063D352D251D150D0545
-:108320003C342C241C140C041B130B0300000D0400
-:10833000100A1700000002091B0E051400001607A2
-:10834000120B031900000F01061A130C0000283647
-:10835000331E242E00001D2F27322C2000002B342A
-:108360003026372100002D1F2931231C00001F0457
-:108370000001020300000308040506070000070CC3
-:1083800008090A0B00000B100C0D0E0F00000F1453
-:108390001011121300001318141516170000171CE3
-:1083A00018191A1B00001B001C1D1E1F1F0E272C56
-:1083B0003C173724041E2E350C253E15050F2F1DA6
-:1083C0003F360614261C3D0D2D1607340E040D01F4
-:1083D000020F0B08030A060C05090007000F07042B
-:1083E0000E020D010A060C0B0905030804010E0814
-:1083F0000D06020B0F0C0907030A05000F0C0802FB
-:1084000004090107050B030E0A00060D0F01080EF3
-:10841000060B03040907020D0C00050A030D0407EF
-:108420000F02080E0C00010A06090B05000E070BCF
-:108430000A040D0105080C060903020F0D080A01C4
-:10844000030F04020B06070C00050E090A00090EB3
-:1084500006030F05010D0C070B0402080D070009A8
-:108460000304060A0208050E0C0B0F010D06040991
-:10847000080F03000B01020C050A0E07010A0D008C
-:1084800006090807040F0E030B05020C070D0E0367
-:108490000006090A010208050B0C040F0D080B0564
-:1084A000060F00030407020C010A0E090A06090060
-:1084B0000C0B070D0F01030E05020804030F000645
-:1084C0000A010D080904050B0C07020E020C040139
-:1084D000070A0B060805030F0D000E090E0B020C10
-:1084E00004070D0105000F0A030908060402010B29
-:1084F0000A0D07080F090C050603000E0B080C07F0
-:10850000010E020D060F00090A0405030C010A0FF3
-:1085100009020608000D03040E07050B0A0F0402EA
-:10852000070C090506010D0E000B0308090E0F05C7
-:1085300002080C030700040A010D0B060403020CD9
-:1085400009050F0A0B0E01070600080D040B020EA9
-:108550000F00080D030C0907050A06010D000B07A3
-:108560000409010A0E03050C020F080601040B0D95
-:108570000C03070E0A0F060800050902060B0D087A
-:1085800001040A070905000F0E02030C0D0208047E
-:10859000060F0B010A09030E05000C07010F0D0859
-:1085A0000A0307040C05060B000E0902070B040161
-:1085B000090C0E0200060A0D0F03050802010E0742
-:1085C000040A080D0F0C09000305060B0101020245
-:1085D0000202020201020202020202018040201095
-:1085E000080402010486000800000020B800000012
-:1085F00080770008BC860008B8000020B04A000060
-:108600009077000800A24A0400000000000C01401E
-:10861000001000000000000000000000000C0140FD
-:108620000020000000000000000000000100000029
-:108630000000000001000000000400000000000035
-:1086400000000000CC2F0020CC3F002000040000E0
-:108650000000000000000000CC330020CC3F0020D0
-:10866000000400000000000000000000CC370020E3
-:108670000C4000200004000000000000000000008A
-:10868000CC3B00200C400020000000000000000057
-:1086900000000000000000000000000001000000D9
-:1086A00000000000010100000000000010000000B8
-:0C86B000010000000000000000000000BD
+:10389000902F002010B504462068406920F00100F8
+:1038A0002168486194F83C00122805D120684069DD
+:1038B00020F40F402168486194F83C00422804D06D
+:1038C000522806D072280CD107E0222084F83C0050
+:1038D0000BE0322084F83C0007E0622084F83C00D2
+:1038E00003E0012084F83C0000BF00BF204601F047
+:1038F00003F8002010BD0000F0B502460B4600257D
+:10390000681E00210FE0565C7040002407E0060EA0
+:10391000064F57F8265000026840661CB4B2042CCB
+:10392000F5DB4E1CB1B29942EDDBF0BD347D0008F1
+:10393000F0B58DB006460F461546002404E0305D14
+:103940000BA90855601CC4B2082CF8DB002406E063
+:1039500020460830305C09A90855601CC4B2042C0C
+:10396000F6DB002405E0FF21201D09AA1154601C8C
+:10397000C4B2042CF7DB07AB002239460BA803F0D6
+:1039800005FF05AB0022394609A803F0FFFE00241D
+:1039900005E007A8005D01A90855601CC4B2082C09
+:1039A000F7DB002407E005A8015D01AA20460830E6
+:1039B0001154601CC4B2082CF5DB00241CE001A8E3
+:1039C000005D01AA211D515C4840285501A9201D18
+:1039D000085C21460831515C4840211D685401A90A
+:1039E00020460830085C21460C31515C4840214695
+:1039F00008316854601CC4B2042CE0DB0DB0F0BD8B
+:103A00003EB5144A14491548FFF792FF002416E00A
+:103A1000A000C01C0F49085C0106A000801C0D4AD4
+:103A2000105C01EB0041A000401C105C01EB002089
+:103A300012F8241008444DF82400601CC4B2032C72
+:103A4000E6DB00F02FF80C226946054800F044F947
+:103A50003EBD0000A04500203481000894450020B0
+:103A600000F4000810B5024800F0A0FF10BD0000EF
+:103A7000FC00002030B590F840500124AC40C56BEC
+:103A80006C60046863604468102C04D10468A26010
+:103A90000468E16003E00468A1600468E26030BD8E
+:103AA0007047704708B500200B4908600B488860D4
+:103AB0000120C86001F09CF900BF34200849C860AB
+:103AC00000BF6946044801F0D9F801F02FF96420DD
+:103AD00001F0C0F808BD00008445002000F4000893
+:103AE000002002400021074AD1610749096941F0DD
+:103AF0000401054A11611146096941F04001116153
+:103B000070470000B0450020002002400021074A15
+:103B1000D1610749096941F00201054A1161114665
+:103B20004861096941F0400111617047B0450020CA
+:103B3000002002400022054BDA61054A126942F07A
+:103B40000102034B1A61018070470000B04500205C
+:103B50000020024038B504466946204601F08EF840
+:103B600008B1012038BD0020FCE700000020074913
+:103B70000860074888600220C86000200549086086
+:103B8000054888603420C860704700006046002007
+:103B90000028000850460020003000082DE9F041C0
+:103BA00004460E461746002501F022F900BF0EE03C
+:103BB00056F825C0624600232146022001F0C0F8D5
+:103BC00008B9241D02E00120BDE8F0816D1CBD4252
+:103BD00002D203488442EBD901F0A8F80020F3E7B1
+:103BE000FBFF000800201E49C96801F0100139B12F
+:103BF0001C49C96941F002011A4AD16140F0100024
+:103C00001749C96801F0040139B11649C96941F081
+:103C10000101144AD16140F004001149C96901F061
+:103C2000010169B10F49C96941F004010D4AD1612F
+:103C300000BF0B49C96921F00101094AD16100BFE8
+:103C400000BF40F20111884206D10549C96921F03F
+:103C50000101034AD16101E00149C86000BF70471A
+:103C600000200240B045002070B5044601F014FB6E
+:103C7000054609E0601C38B124B101F00DFB401B82
+:103C8000A04201D9032070BD1248C06800F00100B5
+:103C90000028EFD10F48C06800F0200020B100BF1D
+:103CA00020200C49C86000BF0A48C06800F010001E
+:103CB00048B90848C06900F0010020B90548C0684B
+:103CC00000F0040018B1FFF78DFF0120DBE70020B2
+:103CD000D9E70000002002402DE9F04104460E46DD
+:103CE0001746002501F084F800BF0FE056F825C004
+:103CF000624600232146022001F022F808B9241D63
+:103D000003E001F013F8BDE8F0816D1CBD4202D262
+:103D100003488442EAD901F009F800BFF3E7000044
+:103D2000FBF70008F8B5044600260020009000BF0D
+:103D300094F82400012801D10220F8BD012084F864
+:103D4000240000BF2046FFF743FA0646002E62D14A
+:103D5000A06A20F4885040F00200A062022001F026
+:103D6000EDFB30490968B1FBF0F04000009002E043
+:103D70000098401E009000980028F9D12046FFF7D7
+:103D80008FFA2068806840F008002168886001F0A0
+:103D900083FA054611E001F07FFA401B0A280CD98E
+:103DA000A06A20F0020040F01000A06200BF0020D6
+:103DB00084F8240000BF0120BFE72068806800F07D
+:103DC00008000028E7D12068806840F004002168DE
+:103DD000886001F061FA054611E001F05DFA401BD0
+:103DE0000A280CD9A06A20F0020040F01000A0625E
+:103DF00000BF002084F8240000BF01209DE7206858
+:103E0000806800F004000028E7D1A06A20F00200DA
+:103E100040F00100A06200BF002084F8240000BF31
+:103E200030468AE70000002038B502460023002013
+:103E3000009000BF92F82400012801D1022038BD73
+:103E4000012082F8240000BF4868072812D21068B9
+:103E5000406B0C79641E04EB84051F24AC40A04326
+:103E60000D796D1E05EB85050C68AC402043146888
+:103E7000606327E048680D2812D21068006B0C7947
+:103E8000E41F04EB84051F24AC40A0430D79ED1F13
+:103E900005EB85050C68AC4020431468206311E0F5
+:103EA0001068C06A0C790D3C04EB84051F24AC40FB
+:103EB000A0430D790D3D05EB85050C68AC40204312
+:103EC0001468E06208680A2812D31068C0680C7889
+:103ED0000A3C04EB44050724AC40A0430D780A3D9E
+:103EE00005EB45058C68AC4020431468E0600FE0AA
+:103EF000106800690C7804EB44050724AC40A0432B
+:103F00000D7805EB45058C68AC40204314682061B2
+:103F10000868102802D00868112827D1174C1068AB
+:103F2000A0421ED11068806800F40000F0B910684B
+:103F3000806840F400001468A0600868102815D15B
+:103F40000F4800680F4CB0FBF4F000EB800040001D
+:103F5000009002E00098401E009000980028F9D1DF
+:103F600004E0906A40F020009062012300BF00202E
+:103F700082F8240000BF184661E7000000240140D9
+:103F80000000002040420F0070477047704700005B
+:103F90002DE9F0410446002700250026A84614B963
+:103FA0000120BDE8F081A06810B1606900B100BFD8
+:103FB000A06A30B90020E06284F82400204600F0B6
+:103FC00089F82046FFF704F90746A06A00F01000C0
+:103FD000002873D1002F71D1A06A20F4885040F0DE
+:103FE0000200A062E16960680843E16840EA4100BC
+:103FF0000643A068B0F5807F02D0A068012802D1F6
+:104000004FF4807000E0002005436069012811D161
+:10401000E06838B9A069401E4FF4006141EA4030C1
+:10402000054307E0A06A40F02000A062E06A40F08B
+:104030000100E0622068406820F46940284321685C
+:1040400048602068806821490840304321688860C2
+:10405000A068B0F5807F02D0A068012802D14FF49B
+:10406000807000E00020B0F5807F03D1208A401EE0
+:104070004FEA00582068C06A20F4700040EA080047
+:104080002168C8622068806811490840B04208D1A0
+:104090000020E062A06A20F0020040F00100A0626F
+:1040A00011E0A06A20F0020040F01000A062E06A77
+:1040B00040F00100E062012705E0FFE7A06A40F060
+:1040C0001000A062012738466BE70000FDF7E1FF12
+:1040D000FE0E1FFF10B586B004461C4920688842BA
+:1040E00032D100BF1A48806940F4007018498861D5
+:1040F0000846806900F40070019000BF00BF0320F3
+:104100000290039002A9134800F026FF12481349B9
+:104110000860002048600021104881608021C16053
+:104120004900016189004161202181610021C16153
+:1041300000F00AFD18B17E2109A003F077FA00BF54
+:1041400006482062446200BF06B010BD0024014052
+:10415000001002400008014008000240FC0000205E
+:104160002E2E2F5372632F6164632E6300000000B4
+:104170002DE9F04104460D461646002757492068B0
+:10418000884203D056492068884205D15348001D13
+:10419000006800F4702000E0002000287ED100BFFD
+:1041A00094F82400012802D10220BDE8F08101200A
+:1041B00084F8240000BF2046FFF772F80746002F5E
+:1041C0006DD1A06A40F60161884340F48070A0621E
+:1041D00043492068884209D14048001D006800F426
+:1041E000702008B9012002E0002000E0012078B131
+:1041F000A06A20F48010A0622068406800F480600B
+:1042000000B3A06A20F4005040F48050A06219E08E
+:10421000A06A40F48010A06230492068884203D030
+:104220002F492068884205D12C48001D006800F401
+:10423000806000E0002028B1A06A20F4005040F423
+:104240008050A062A06A00F4805020B1E06A20F0A3
+:104250000600E06201E00020E06200BF002084F878
+:10426000240000BF1F48216A88621F48216AC86273
+:104270001E48216A08636FF0020021680860206808
+:10428000806840F4807021688860226802F14C01E7
+:1042900033462A46206A00F08FFC01E01AE014E061
+:1042A0002068806800F46020B0F5602F06D1206897
+:1042B000806840F4A000216888600CE02068806875
+:1042C00040F480102168886005E000BF002084F879
+:1042D000240000E00127384667E700000024014081
+:1042E000002801402332000893320008753200088C
+:1042F00030B5024600230C7D012000FA04F310685B
+:10430000D0F8000220F47C5001254C6A45EA0424D0
+:1043100020431468C4F800021068D0F81C029843C7
+:104320001468C4F81C02C869E8B91068D0F80C0217
+:1043300098431468C4F80C02888880B28C8940EADB
+:104340000444106800F510704D6940F83540088845
+:1043500080B20C8940EA0444106800F510704D6981
+:1043600000EBC5004460C86901281DD11068D0F871
+:104370000C0218431468C4F80C02888880B20C88B8
+:1043800040EA0444106800F510704D6940F835406B
+:10439000888980B20C8940EA0444106800F51070E6
+:1043A0004D6900EBC5004460886938B91068D0F8E1
+:1043B000040298431468C4F8040206E01068D0F8B8
+:1043C000040218431468C4F80402086938B9106874
+:1043D000D0F8140298431468C4F8140206E0106878
+:1043E000D0F8140218431468C4F81402086A0128AB
+:1043F00006D11068D0F81C0218431468C4F81C02D7
+:104400001068D0F8000220F001001468C4F800021F
+:10441000002030BD704700002DE9F0410446002522
+:1044200000260027A8462068C068C0F30015206851
+:104430004069C0F3C0062DB126B148F400781020C1
+:104440002168C86020680069C0F3001520684069D1
+:10445000C0F380162DB126B148F480681020216881
+:1044600008612068406900F0010000283BD0206806
+:1044700080687A490840884201D1012000E000208C
+:1044800005462068806876490840884201D10120AD
+:1044900000E0002006462068806872490840884293
+:1044A00001D1012000E0002007460DB906B9D7B1BF
+:1044B00020688068C0F3400520688068C0F340260B
+:1044C0002068806800F001070DB906B91FB12046C9
+:1044D000FFF7E0F901E048F400682068806862496D
+:1044E0000843216888602068C06800F003052068E0
+:1044F0004069C0F3400625B11EB100212046FEF7F9
+:104500006DFF2068006900F0030520684069C0F372
+:10451000001625B11EB101212046FEF75FFF206C79
+:1045200040EA080020642068806900F001052068E6
+:104530004069C0F3002620684069C0F3C0372DB140
+:1045400026B11FB1206C40F0010020642068806912
+:10455000C0F3400520684069C0F3402620684069E8
+:10456000C0F3C0372DB126B11FB1206C40F002005E
+:10457000206420688069C0F3800520684069C0F32A
+:10458000802620684069C0F3C0372DB126B11FB125
+:10459000206C40F0040020642068806900F0700006
+:1045A00008B9012000E00020054620684069C0F3FA
+:1045B000C02620684069C0F3C03795BB8EB387B36F
+:1045C0002068806900F07005402D1BD006DC102D9E
+:1045D00009D0202D0CD0302D24D10EE0502D16D036
+:1045E000602D1FD118E0206C40F0080020641AE014
+:1045F000206C40F01000206415E0206C40F020009A
+:10460000206410E0206C40F0400020640BE0206C3F
+:1046100040F08000206406E0206C40F4807020644C
+:1046200001E007E000BF00BF2068806920F0700053
+:1046300021688861206C78B10420216848600120DD
+:1046400084F83C002068406948F65B718843216823
+:1046500048612046FFF7DEFEBDE8F081010000045E
+:104660000001000800000110090501002DE9F041DA
+:10467000044600270026002514B90120BDE8F0817A
+:1046800094F83C0028B9002084F83D00204600F052
+:10469000A5F8022084F83C002068006820F00200A1
+:1046A000216808602068006840F001002168086007
+:1046B00000F0F2FD06460EE000F0EEFD801B0A2839
+:1046C00009D9032084F83C0000BF002084F83D0095
+:1046D00000BF0320D2E72068406800F001000028F6
+:1046E000EAD02068406800F00100002867D0A06987
+:1046F000012802D145F0800501E025F08005E06940
+:10470000012802D145F0400501E025F04005206A6E
+:10471000012802D145F0200501E025F02005606A5E
+:10472000012802D145F0100501E025F01005A06A2E
+:10473000012802D145F0080501E025F00805E06AEE
+:10474000012802D145F0040501E025F004052068A8
+:10475000006820F0FC00284321680860D4E90201C9
+:10476000084321690843616908436168491E084399
+:104770002168C8612068006820F001002168086095
+:1047800000F08AFD06460EE000F086FD801B0A2838
+:1047900009D9032084F83C0000BF002084F83D00C4
+:1047A00000BF03206AE72068406800F0010000288D
+:1047B000EAD12068406800F0010000B90127012F0C
+:1047C00006D100202064012084F83C00002055E739
+:1047D000042084F83C00012050E7000010B586B0AA
+:1047E00004461F492068884237D100BF1D48C06970
+:1047F00040F000701B49C8610846C06900F00070B5
+:10480000019000BF00BFC8140290002003900490E4
+:1048100002A9154800F0A0FB4FF48050029002203E
+:1048200003900320059002A90F4800F095FB002299
+:104830001146142000F00DFE142000F0FDFD0B4881
+:1048400020630B486063FEF77DFD0A4800684069FD
+:1048500040F0020007490968486106B010BD000039
+:1048600000640040001002400008014040010020A8
+:104870005C010020902F002030B50446606B8068FA
+:1048800010B9606B006940B918480068406940F091
+:10489000020016490968486130BD002519E0606BC7
+:1048A0000068134931F81510884210D1606B0088F8
+:1048B00005EB45010F4A22F83100626B117C05EBD4
+:1048C00045020C4B03EBC200FEF7BEFF03E0681C81
+:1048D00085B2162DE3DB00BF04480068406940F054
+:1048E000020002490968486100BFD5E7902F002007
+:1048F000087B0008802D00207047000070B504463A
+:10490000002594F82100022803D00420A06301258B
+:1049100048E02068006820F00E00216808602068E8
+:10492000006820F00100216808601F492068884263
+:1049300001D1012026E01C4914312068884201D1B0
+:1049400010201FE0184928312068884201D18015C5
+:1049500018E015493C312068884201D1801411E0EB
+:10496000114950312068884202D14FF4803009E06B
+:104970000D4964312068884202D14FF4801001E073
+:104980004FF08070084908394860012084F8210000
+:1049900000BF002084F8200000BF606B10B12046EB
+:1049A000616B8847284670BD0800024070B5044618
+:1049B000E06B05682068066894F840100420884081
+:1049C0002840002846D006F00400002842D0206885
+:1049D000006800F0200028B92068006820F004007A
+:1049E0002168086057492068884201D1042027E0E7
+:1049F000544914312068884201D1402020E05149B7
+:104A000028312068884201D1001519E04D493C3118
+:104A10002068884202D14FF4804011E0494950316A
+:104A20002068884202D14FF4802009E04549643172
+:104A30002068884202D14FF4800001E04FF080608E
+:104A4000404908394860E06A00287AD02046E16A87
+:104A5000884776E094F84010022088402840A0B3B0
+:104A600006F0020088B32068006800F0200040B91A
+:104A70002068006820F00A0021680860012084F89E
+:104A8000210030492068884201D1022028E02D49C8
+:104A900014312068884201D1202021E029492831A1
+:104AA0002068884201D140151AE026493C3120682F
+:104AB000884202D14FF4005012E022495031206860
+:104AC000884203D14FF400300AE017E01D496431F9
+:104AD0002068884202D14FF4001001E04FF00070CE
+:104AE00018490839486000BF002084F8200000BF42
+:104AF000A06A30B32046A16A884722E094F84010AB
+:104B0000082088402840E0B106F00800C8B12068BD
+:104B1000006820F00E002168086094F84010012021
+:104B20008840E16B48600120A06384F8210000BF49
+:104B3000002084F8200000BF206B10B12046216BBC
+:104B4000884770BD080002400146002209B90120D3
+:104B50007047184B0868C01A1423B0FBF3F08000AC
+:104B6000086414480838C863022081F821000868E6
+:104B7000026843F6F0708243D1E901031843CB6821
+:104B800018430B6918434B6918438B691843CB6969
+:104B9000184302430868026000208862C862086304
+:104BA00048638863012081F82100002081F82000FB
+:104BB00000BFCDE7080002402DE9F04104460D4654
+:104BC00016461F464FF0000800BF94F82000012849
+:104BD00002D10220BDE8F081012084F8200000BF4E
+:104BE00094F8210001282CD1022084F82100002013
+:104BF000A0632068006820F00100216808603B463F
+:104C0000324629462046FEF735FFE06A30B120687B
+:104C1000006840F00E00216808600BE02068006822
+:104C200020F00400216808602068006840F00A0055
+:104C3000216808602068006840F001002168086071
+:104C400006E000BF002084F8200000BF4FF00208FB
+:104C50004046BFE770B5044600F01EFB06462546F9
+:104C6000681C10B104480078054400BF00F014FB34
+:104C7000801BA842FAD370BDB40000202DE9F0419A
+:104C800004460E460127002500BF2648007E012865
+:104C900002D10220BDE8F08101202249087600BF40
+:104CA0002068022813D14CF25030FEF7DDFF90BB94
+:104CB0000120FEF717FF4CF25030FEF7D5FF0746F4
+:104CC0001948006920F004001749086123E04CF2FC
+:104CD0005030FEF7C9FFF0B94FF0FF303060A568E3
+:104CE00012E02846FEF712FF4CF25030FEF7BCFFF0
+:104CF00007460D48006920F002000B4908610FB11A
+:104D0000356007E005F58065D4E9021001EB8020ED
+:104D1000A842E6D800BF00BF00200249087600BFC5
+:104D20003846B7E7B045002000200240034800693C
+:104D300040F08000014908610020704700200240D7
+:104D40002DE9FE4F05468B4617469846012600245E
+:104D50000020029000BF2448007E012802D10220DA
+:104D6000BDE8FE8F01202049087600BF4CF250308C
+:104D7000FEF77AFF064686BB012D02D10120029084
+:104D800006E0022D02D10220029001E004200290F0
+:104D900000241EE02201B946C24648465146FEF7AD
+:104DA000C1F980B20190022000FB04B0009001998B
+:104DB000FEF7C0FE4CF25030FEF756FF06460B4899
+:104DC000006920F001000949086106B104E0601C97
+:104DD000C4B202988442DDDB00BF00BF002002495C
+:104DE000087600BF3046BBE7B045002000200240F7
+:104DF00000200849096901F0800151B10649054ABE
+:104E00005160064951601146096901F0800101B104
+:104E1000012070470020024023016745AB89EFCD98
+:104E20002DE9F04102460B46002000210024002617
+:104E30007FE00127874007EA0301002978D0FF2996
+:104E400001D8174600E0171D3D46FF2901D887000D
+:104E500002E0A0F10807BF003E462F684FF00F0C9C
+:104E60000CFA06FC27EA0C074FF0040C0CFA06FCBF
+:104E700047EA0C072F60D7688F43D760304F4FEA5F
+:104E8000900C57F82C4087074FEA177C0F2707FA3A
+:104E90000CF73C402B4FBA4201D100270FE02A4FBC
+:104EA000BA4201D101270AE0284FBA4201D10227B4
+:104EB00005E0274FBA4201D1032700E004274FEA5B
+:104EC000807C4FEA1C7C07FA0CF7A74230D1870799
+:104ED0004FEA177C0F2707FA0CF4194F4FEA900C92
+:104EE00057F82C70A743DFF858C04FEA90084CF8E9
+:104EF0002870184F3F688F43DFF858C0CCF8007017
+:104F00000CF104073F688F430CF1040CCCF80070DF
+:104F10000CF104073F688F430CF1040CCCF80070CF
+:104F20000CF104073F688F430CF1040CCCF80070BF
+:104F3000401C23FA00F7002F7FF47BAFBDE8F0811F
+:104F40000800014000080140000C01400010014031
+:104F500000140140000401402DE9F84703460024F5
+:104F6000002000258446002700226EE14FF0010852
+:104F700008FA02F4D1F8008008EA0400A0427DD1CA
+:104F8000DFF8D0A2D1F80480A8EB0A09D0453AD0C6
+:104F900014DCB8F1030F50D009DCB8F1000F31D0A8
+:104FA000B8F1010F1CD0B8F1020F49D120E0B8F1DF
+:104FB000110F18D0B8F1120F42D11EE0B9F5881FB9
+:104FC00025D006DCB9F5803F20D0B9F5801F37D158
+:104FD0001AE0B9F5001F18D0B9F5041F30D117E059
+:104FE000D1F80CC02DE0D1F80C8008F1040C28E0B9
+:104FF000D1F80C8008F1080C23E0D1F80C8008F1FE
+:105000000C0C1EE000BF00BF00BF00BF00BF00BF10
+:10501000D1F80880B8F1000F02D14FF0040C0BE07A
+:10502000D1F80880B8F1010F03D14FF0080C1C61D2
+:1050300002E04FF0080C5C6103E04FF0000C00E070
+:1050400000BF00BFFF2801D8984601E003F1040823
+:105050004646FF2802D84FEA820803E0A2F108087A
+:105060004FEA88084746D6F800804FF00F0909FA42
+:1050700007F928EA09080CFA07F900E088E048EA8D
+:105080000908C6F80080D1F8048008F08058B8F10B
+:10509000805F7DD100BFDFF8C081D8F8188048F06C
+:1050A0000108DFF8B491C9F81880C846D8F818800C
+:1050B00008F00108CDF8008000BF00BF4FEAB93802
+:1050C0004FEA920958F829504FEA82784FEA187946
+:1050D0004FF00F0808FA09F825EA0805DFF87C8187
+:1050E000434502D14FF0000816E0DFF874814345D4
+:1050F00002D14FF001080FE0DFF86881434502D18B
+:105100004FF0020808E0DFF86081434502D14FF01C
+:10511000030801E04FF004084FEA82794FEA197959
+:1051200008FA09F848EA0505DFF840814FEA9209D4
+:1051300048F82950D1F8048008F48038B8F5803F49
+:105140000AD1DFF82C81D8F8008048EA0008DFF89F
+:105150002091C9F8008009E0DFF81481D8F80080B8
+:1051600028EA0008DFF80891C9F80080D1F8048027
+:1051700008F40038B8F5003F10D1DFF8F48008F1EA
+:105180000408D8F8008048EA0008DFF8E49000E05E
+:105190005AE009F10409C9F800800DE0DFF8D08079
+:1051A00008F10408D8F8008028EA0008DFF8C09069
+:1051B00009F10409C9F80080D1F8048008F48018C6
+:1051C000B8F5801F0ED1DFF8A88008F10808D8F8DC
+:1051D000008048EA0008DFF8989009F10809C9F84A
+:1051E00000800DE0DFF8888008F10808D8F800801A
+:1051F00028EA0008DFF8789009F10809C9F800806A
+:10520000D1F8048008F40018B8F5001F0ED1DFF8BB
+:10521000608008F10C08D8F8008048EA0008DFF840
+:10522000509009F10C09C9F800800DE0DFF84080CA
+:1052300008F10C08D8F8008028EA0008DFF8309060
+:1052400009F10C09C9F80080521C102AFFF48EAE37
+:10525000BDE8F8870000111000100240000801406E
+:10526000000C014000100140001401400800014002
+:1052700000040140024693680B400BB1012000E09E
+:1052800000207047C2684A40C26070470AB101619D
+:1052900001E00B040361704701480068704700009B
+:1052A000AC00002070B504460CB9012070BD4CF66E
+:1052B000CC402168086045F2555021680860D4E967
+:1052C000001048602168A0688860FFF7E5FF054688
+:1052D00006E0FFF7E1FF401B302801D90320E5E796
+:1052E0002068C0680028F4D14AF6AA202168086026
+:1052F0000020DBE701464AF6AA200A681060002079
+:1053000070470000034800680349097808440149D0
+:1053100008607047AC000020B400002010B50848B9
+:10532000006840F0100006490860032000F0D0F843
+:10533000002000F007F800F02BF8002010BD00005E
+:105340000020024070B504460E4800784FF47A7190
+:10535000B1FBF0F00C490968B1FBF0F5284600F00C
+:105360008CFD08B1012070BD102C07D2002221460F
+:10537000501E00F06EF80548046001E00120F2E7DD
+:105380000020F0E7B400002000000020B000002062
+:1053900008B500BF1F48806940F001001D498861C1
+:1053A0000846806900F00100009000BF00BF0320A4
+:1053B00000F08EF8002211466FF00B0000F049F863
+:1053C000002211466FF00A0000F043F80022114657
+:1053D0006FF0090000F03DF800221146501F00F068
+:1053E00038F800221146101F00F033F80022114651
+:1053F000901E00F02EF800221146501E00F029F8F1
+:1054000000BF0549486820F0E06040F00070486047
+:1054100000BF08BD001002400000014000BF00F0C6
+:105420001F0201219140034A430942F8231000BFA3
+:105430007047000080E100E000BF00F01F02012182
+:1054400091404209920002F1E022C2F8001100BF2F
+:1054500070472DE9F05F80460D461646002701F0A3
+:10546000BFF8074639462A46334601F00700C0F127
+:10547000070ABAF1040F02D94FF0040A01E0C0F1A3
+:10548000070AD14600F1040ABAF1070F02D24FF021
+:10549000000A01E0A0F1030AD4464FF0010A0AFA1B
+:1054A00009FAAAF1010A0AEA020A0AFA0CFA4FF00A
+:1054B000010B0BFA0CFBABF1010B0BEA030B4AEAF5
+:1054C0000B042146404601F093F8BDE8F09F000030
+:1054D00000BF00F00702064B19684FF6FF031940A2
+:1054E000044B0B4343EA0221014B196000BF704794
+:1054F0000CED00E00000FA0500BF00BF00BF00BFD8
+:1055000000BFBFF34F8F00BF00BF00BF0948006856
+:1055100000F4E06008490843001D0649086000BF28
+:1055200000BF00BFBFF34F8F00BF00BF00BF00BF71
+:1055300000BFFDE70CED00E00000FA052DE9F043A7
+:1055400085B006463DA30FCB01AC0FC43FA0006859
+:1055500000904FF00008002500270024A146012EEE
+:1055600030D0022E58D0102E61D1394844680068DE
+:1055700000F0807000B301A8C4F38341475C04F4D9
+:10558000803070B132484068C0F340401DF8008060
+:1055900004F4803040B12F48B0FBF8F000FB07F571
+:1055A00002E02D4807FB00F52948406800F4800020
+:1055B000B0F5800F01D1A94603E068000321B0FBDC
+:1055C000F1F935E02248046A04F44070B0F5807FB8
+:1055D00005D104F0020010B14FF400491BE004F4BF
+:1055E0004070B0F5007F07D11948406A00F0020012
+:1055F00010B149F640490EE004F44070B0F5407F28
+:1056000007D11348006800F4003010B14FF224496C
+:1056100001E04FF000090BE000F0A0F90C494968E7
+:10562000C1F38131491C4900B0FBF1F900E000BF32
+:1056300000BF484605B0BDE8F08300000203040542
+:10564000060708090A0B0C0D0E0F101001020000CE
+:105650000010024000127A0000093D00F8B504462F
+:1056600000260025207800F0010000286BD00027DC
+:105670004348C06900F0805070B900BF4048C0691D
+:1056800040F080503E49C8610846C06900F0805033
+:10569000009000BF00BF01273A48006800F4807006
+:1056A000B0B93848006840F4807036490860FFF7A8
+:1056B000F3FD064606E0FFF7EFFD801B642801D9E5
+:1056C0000320F8BD2F48006800F480700028F2D055
+:1056D0002B48006A00F440752DB3A08800F4407098
+:1056E000A84220D02648006A20F4407501202649AF
+:1056F0000860002008602248056205F0010090B1B2
+:10570000FFF7CAFD064608E0FFF7C6FD801B41F221
+:105710008831884201D90320D3E71948006A00F094
+:1057200002000028F0D01648006A20F4407061683A
+:10573000084313490862012F04D10846C06920F0CC
+:105740008050C86100BF207800F00200022807D115
+:105750000B48406820F44040A1680843084948606D
+:10576000207800F01000102807D10548406820F488
+:105770008000E1680843024948600020A1E700007A
+:1057800000100240007000404004424270B50446E0
+:105790000D4600266248006800F00700A8420ED2BD
+:1057A0005F48006820F0070028435D49086008460C
+:1057B000006800F00700A84201D0012070BD2078E9
+:1057C00000F00200022807D15648406820F0F0009F
+:1057D000A168084353494860207800F00100002880
+:1057E0005DD06068012806D14E48006800F40030A2
+:1057F00090B90120E2E76068022806D149480068B4
+:1058000000F0007040B90120D8E74648006800F079
+:10581000020008B90120D1E74248406820F00300A7
+:10582000616808433F494860FFF736FD06466068F7
+:10583000012810D108E0FFF72FFD801B41F28831CD
+:10584000884201D90320B9E73648406800F00C00CF
+:105850000428F0D123E06068022810D108E0FFF7A7
+:105860001BFD801B41F28831884201D90320A5E746
+:105870002C48406800F00C000828F0D10FE008E048
+:10588000FFF70AFD801B41F28831884201D90320CD
+:1058900094E72448406800F00C000028F0D120482C
+:1058A000006800F00700A8420ED91D48006820F0EB
+:1058B000070028431A4908600846006800F00700FE
+:1058C000A84201D0012079E7207800F004000428E4
+:1058D00007D11448406820F4E060E16808431149AA
+:1058E0004860207800F00800082808D10D4840687A
+:1058F00020F46050216940EAC1000A49486000F084
+:105900003DF808494968C1F30311074A515CC84092
+:10591000064908600020FFF715FD00204EE7000053
+:105920000020024000100240F07A00080000002031
+:1059300001480068704700000000002000B5FFF734
+:10594000F7FF04494968C1F30221034A515CC8408A
+:1059500000BD000000100240007B000800B5FFF70A
+:10596000E7FF04494968C1F3C221034A515CC840BA
+:1059700000BD000000100240007B0008F0B585B0BB
+:105980000FF26C0C9CE8E01001A8A0E8E0101CA548
+:105990002D68009500210022002300240020194DCD
+:1059A000696801F00C05F5B1042D02D0082D19D15C
+:1059B00001E0154819E001ADC1F38346AC5D01F487
+:1059C000803555B10F4D6D68C5F340451DF8052074
+:1059D0000D4D6543B5FBF2F302E00C4D04FB05F3FE
+:1059E000184602E000BF084800BF00BF05B0F0BD88
+:1059F00002030405060708090A0B0C0D0E0F101010
+:105A0000010200000010024000127A0000093D006F
+:105A1000F8B504460025207800F00100002878D071
+:105A2000F848406800F00C0004280CD0F5484068A5
+:105A300000F00C00082811D1F248406800F48030D2
+:105A4000B0F5803F0AD1EF48006800F4003000282C
+:105A50005FD0606800285CD10120F8BD00BF60689D
+:105A6000B0F5803F06D1E748006840F48030E54952
+:105A7000086028E0606858B9E248006820F4803087
+:105A8000E04908600846006820F4802008601AE0B9
+:105A90006068B0F5A02F0BD1DA48006840F4802090
+:105AA000D84908600846006840F4803008600AE081
+:105AB000D448006820F48030D24908600846006865
+:105AC00020F48020086000BF606888B1FFF7E4FB25
+:105AD000054606E0FFF7E0FB401B642801D90320E0
+:105AE000BBE7C848006800F400300028F2D010E09E
+:105AF000FFF7D2FB054606E0FFF7CEFB401B64280C
+:105B000001D90320A9E7BF48006800F4003000284D
+:105B1000F2D1207800F00200022857D1B94840683D
+:105B200000F00C0050B1B748406800F00C000828A5
+:105B300018D1B448406800F4803098B9B148006882
+:105B400000F0020020B12069012801D0012084E783
+:105B5000AC48006820F0F800616940EAC100A9493A
+:105B6000086033E02069E8B10120A7490860FFF729
+:105B700093FB054606E0FFF78FFB401B022801D987
+:105B800003206AE79F48006800F002000028F2D076
+:105B90009C48006820F0F800616940EAC10099491A
+:105BA000086013E0002098490860FFF775FB054680
+:105BB00006E0FFF771FB401B022801D903204CE7E8
+:105BC0009048006800F002000028F2D1207800F030
+:105BD000080008282DD1A069B8B101208B490860C0
+:105BE000FFF75AFB054606E0FFF756FB401B02286D
+:105BF00001D9032031E78348406A00F00200002801
+:105C0000F2D0012000F038FD13E000207F49086049
+:105C1000FFF742FB054606E0FFF73EFB401B02286C
+:105C200001D9032019E77748406A00F002000028F4
+:105C3000F2D1207800F00400042873D100267148C6
+:105C4000C06900F0805070B900BF6E48C06940F074
+:105C500080506C49C8610846C06900F080500090CF
+:105C600000BF00BF01266A48006800F48070B0B928
+:105C70006748006840F4807065490860FFF70CFBD6
+:105C8000054606E0FFF708FB401B642801D9032006
+:105C9000E3E65F48006800F480700028F2D000BF9F
+:105CA000E068012806D15748006A40F001005549D4
+:105CB000086227E0E06858B95248006A20F0010005
+:105CC000504908620846006A20F00400086219E0A2
+:105CD000E06805280BD14B48006A40F004004949B0
+:105CE00008620846006A40F0010008620AE0454880
+:105CF000006A20F00100434908620846006A20F06B
+:105D00000400086200BFE068A0B1FFF7C5FA0546CD
+:105D100009E0FFF7C1FA401B41F28831884202D9FD
+:105D200003209AE622E03748006A00F002000028CB
+:105D3000EFD012E0FFF7B0FA054608E0FFF7ACFA43
+:105D4000401B41F28831884201D9032085E62D4865
+:105D5000006A00F002000028F0D1012E05D1294888
+:105D6000C06920F080502749C86100BFE069C8B30E
+:105D70002448406800F00C00082860D0E069022840
+:105D800048D1002020490866FFF786FA054606E05C
+:105D9000FFF782FA401B022801D903205DE619486B
+:105DA000006800F000700028F2D1206AB0F5803F52
+:105DB00007D11448406820F40030A1680843114915
+:105DC0004860D4E9080108430E49496821F4741178
+:105DD00008430C49486001200B490866FFF75CFA4C
+:105DE000054607E02DE0FFF757FA401B022801D9CE
+:105DF000032032E60348006800F000700028F2D06B
+:105E00001FE00000001002400000424280044242B5
+:105E10000070004000200C490866FFF73DFA054677
+:105E200006E0FFF739FA401B022801D9032014E6E7
+:105E30000648006800F000700028F2D101E001205F
+:105E40000BE6002009E6000000004242001002407C
+:105E5000042808D14FF0E021096941F004014FF016
+:105E6000E022116107E04FF0E021096921F004010F
+:105E70004FF0E02211617047704770B50446254627
+:105E8000681EB0F1807F01D301200FE0681E4FF043
+:105E9000E02148610F214FF0FF3000F0A9FB002006
+:105EA0004FF0E021886107200861002070BD10B527
+:105EB000FFF7E2FF10BD10B504460CB9012010BD7C
+:105EC000242084F83900204600F0EEF80020E0633A
+:105ED00084F8390084F83A0000BF84F8380000BF25
+:105EE00000BFECE7704700002DE9F047044620684A
+:105EF00005682068C668206847694FF00008C146F9
+:105F000005F00F08B8F1000F0AD105F0200038B1F4
+:105F100006F0200020B1204600F0F3FEBDE8F08737
+:105F2000B8F1000F6DD007F0010018B906F49070B9
+:105F3000002866D005F0010030B106F4807018B179
+:105F4000E06B40F00100E06305F0040030B107F0C1
+:105F5000010018B1E06B40F00200E06305F00200C0
+:105F600030B107F0010018B1E06B40F00400E063CD
+:105F700005F0080030B107F0010018B1E06B40F007
+:105F80000800E063E06B68B305F0200028B106F07C
+:105F9000200010B1204600F0B4FE20684069C0F334
+:105FA0008019E06B00F0080010B9B9F1000F22D0A1
+:105FB000204600F037FE2068406900F04000B0B194
+:105FC0002068406920F0400021684861606B50B152
+:105FD0001748616B4863606BFEF790FC10B1606B13
+:105FE000416B88470CE02046FFF77CFF08E0204625
+:105FF000FFF778FF04E02046FFF774FF0020E0631E
+:106000008CE705F0800030B106F0800018B1204622
+:1060100001F018F882E705F0400030B106F04000CA
+:1060200018B1204600F00EFE78E700BF76E70000CA
+:106030008D6B000810B504460CB9012010BDA06995
+:1060400000B100E000BF94F8390028B9002084F8BE
+:106050003800204600F05AF8242084F839002068DF
+:10606000C06820F400502168C860204600F0ACFEF3
+:106070002068006920F49040216808612068406928
+:1060800020F02A00216848612068C06840F4005070
+:106090002168C8600020E063202084F8390084F87B
+:1060A0003A000020CAE7000010B5044612492068F3
+:1060B00088420ED11148C06920F480200F49C86180
+:1060C0004FF440610E48FEF7ABFE2720FFF7A6F91C
+:1060D00011E00C49206888420DD10848806920F4FD
+:1060E0008040064988614FF4C0610748FEF798FE7A
+:1060F0002520FFF793F910BD004800400010024032
+:10610000000C0140003801400008014010B586B085
+:1061100004464B492068884242D100BF4948C069C3
+:1061200040F480204749C8610846C06900F48020D7
+:10613000019000BF00BF08150290022003900320C9
+:10614000059002A94048FEF707FF4FF40060029057
+:1061500000200390049002A93B48FEF7FDFE0022B8
+:1061600011462720FFF775F92720FFF765F9374813
+:106170000068C06840F4807034490968C8603348DA
+:106180000068406940F001003049096848612F48C3
+:106190000068C06840F020002C490968C8604CE0E5
+:1061A0002B492068884248D100BF2648806940F4C6
+:1061B0008040244988610846806900F4804001904D
+:1061C00000BF00BF00BF0846806940F0040088613E
+:1061D0000846806900F00400019000BF00BF481528
+:1061E0000290022003900320059002A91948FEF7AF
+:1061F000B3FE4FF48060029000200390049002A947
+:106200001448FEF7A9FE002211462520FFF721F9C8
+:106210002520FFF711F92068C06840F480702168DC
+:10622000C8602068406940F001002168486120682A
+:10623000C06840F020002168C86006B010BD0000B2
+:106240000048004000100240000C0140D43F0020F4
+:1062500000380140000801407047704700BFFEE76A
+:1062600001480249086070470030000808ED00E06E
+:1062700010B5FFF711F840F6B83188420DD24FF44F
+:1062800080611948FEF7F6FF044618480470FFF7CE
+:1062900003F817490860002010BD4FF480611248D0
+:1062A000FEF7E8FF044611480078844208D11148FF
+:1062B0000078012807D1FEF7EFFF0D49086002E0E2
+:1062C00000200C490870FEF7E7FF09490968401AE9
+:1062D000B0F57A7F03D9012006490870DCE703484E
+:1062E00004700020D8E700000008014028000020CA
+:1062F0002C0000203000002070B504460D46FEF74B
+:10630000CBFFA168401AA84206D9A1882068FEF7F1
+:10631000B9FFFEF7C1FFA06070BD00000EB51C48BC
+:106320001C49086081151B4881600121C160002162
+:1063300041614FF46021C16100201649486002218B
+:1063400014480161FDF724FE18B1452112A001F0A7
+:106350006DF900200090012001900720029069460D
+:106360000C48FDF761FD18B14F210BA001F05EF95B
+:106370000120009002200190072002906946054804
+:10638000FDF752FD18B1592103A001F04FF90EBDE0
+:1063900000240140CC0000202E2E2F5372632F6169
+:1063A00064632E630000000010B5134813490860B1
+:1063B00001151348FEF75EFF012801D1182000E007
+:1063C00030200E49486000210C488160C1604FF4C4
+:1063D000403101610021416181610121C1610021E0
+:1063E000016241628162C162FEF740F918B1692120
+:1063F00004A001F01BF910BD00640040902F0020A4
+:10640000000801402E2E2F5372632F63616E2E639E
+:106410000000000008B500BF0648406940F00100D8
+:10642000044948610846406900F00100009000BF3F
+:1064300000BF08BD0010024000B585B000BF29486C
+:10644000806940F02000274988610846806900F093
+:106450002000009000BF00BF00BF0846806940F0E8
+:10646000040088610846806900F00400009000BFC5
+:1064700000BF00BF0846806940F0080088610846F8
+:10648000806900F00800009000BF00BF00222021BA
+:106490001548FEF7FBFE002240211348FEF7F6FEEA
+:1064A000002280211048FEF7F1FE002243F2010194
+:1064B0000E48FEF7EBFEE020019001200290022042
+:1064C000049001A90848FEF747FD43F2010001903E
+:1064D000012002900220049001A90448FEF73CFD2F
+:1064E00005B000BD0010024000080140000C014052
+:1064F00010B50848084908600320486040F6C411F8
+:1065000005488160FEF7CEFE18B13A2103A001F0E4
+:106510008DF810BD00300040C00000202E2E2F53FB
+:1065200072632F697764672E6300000010B504461C
+:106530000348FFF7C0FC204600F004F810BD00003F
+:106540001440002010B504460A480B49086008466C
+:10655000446000218160C16001610C214161002122
+:106560008161C161FFF766FD18B15C2103A001F0F4
+:106570005DF810BD00380140144000202E2E2F532E
+:1065800072632F75736172742E63000010B50C482E
+:106590000C4908604FF4E1304860002109488160EF
+:1065A000C16001610C21416100218161C161FFF77E
+:1065B00041FD18B14A2104A001F038F810BD0000D7
+:1065C00000480040D43F00202E2E2F5372632F75B9
+:1065D000736172742E63000000BFFEE77047000015
+:1065E00002480068C0F30220704700000CED00E094
+:1065F00010B5002807DA0A07140E054A00F00F0349
+:106600001B1FD45403E00A07130E024A135410BD93
+:1066100018ED00E000E400E07047000010B504460B
+:10662000207801280FD1FEF737FE11490968401A7A
+:10663000B0F57A7F1AD3002201210E48FEF726FE1C
+:106640000020207012E0207802280FD1FEF724FEEF
+:1066500007490968401A40F6B831884206D300223B
+:1066600001210448FEF712FE0020207010BD00003A
+:1066700088000020000C014008B508490968C908D5
+:106680004FF47A72B1FBF2F14143009100BF00BFB9
+:1066900000994A1E00920029F9D108BD000000208F
+:1066A0003EB535480568002406E0E00025FA00F014
+:1066B00032490855601CC4B2042CF6DB2E48001D7C
+:1066C0000568002408E0E00025FA00F0C1B2201DB2
+:1066D0002A4A1154601CC4B2042CF4DB264808304A
+:1066E0000568002409E0E00025FA00F0C1B204F1D9
+:1066F0000800224A1154601CC4B2042CF3DB204869
+:106700000568002406E0E00025FA00F01D49085560
+:10671000601CC4B2042CF6DB1948001D0568002477
+:1067200008E0E00025FA00F0C1B2201D154A11541E
+:10673000601CC4B2042CF4DB114808300568002446
+:1067400009E0E00025FA00F0C1B204F108000D4AAA
+:106750001154601CC4B2042CF3DB6A460A49074892
+:10676000FDF7E6F80C2207496846FCF70FFD08B96B
+:1067700000203EBD0120FCE7E8F7FF1F9445002004
+:1067800000F40008A04500203481000808B5FDF79A
+:10679000EDF9FEF72DFB00BF34200B49C86000BFA8
+:1067A0000A48FDF7D7F90A20FEF754FAFEF7BEFAB9
+:1067B00007480090012269460648FDF7EFF91420CA
+:1067C000FEF748FA08BD00000020024060460020A5
+:1067D000674523010428000870472DE9F047ADF50F
+:1067E000007D8146884616461F46DDF820A24FF4FC
+:1067F000807140A8FCF7BFFC4FF480716846FCF73D
+:10680000BAFC0025FCB255208DF80001AA208DF8B5
+:106810000101300A8DF80201F0B28DF803018DF804
+:106820000481A01CC0B28DF80501380A8DF806015C
+:106830008DF807412246514642A8FCF783FC04F13B
+:10684000080240A96846FCF77DFC04F1080168468F
+:10685000FDF752F80546280E04F1080140AA5054ED
+:10686000C5F3074104F109001154C5F30721401C89
+:106870001154401C1554F021401C1154401CC2B24C
+:1068800040A9484600F090FA0DF5007DBDE8F0877C
+:1068900010B5FEF737FDFFF70AFB10BD10B594B039
+:1068A00009200A904FF480300B9000200C900120BA
+:1068B0000E90109002201190C10312914FF4E0113C
+:1068C00013910AA8FFF7A4F818B1DE211AA000F06E
+:1068D000ADFE0F20059002200690002007904FF497
+:1068E0008060089000200990022105A8FEF74EFF65
+:1068F00018B1EC2110A000F099FE02200190800355
+:10690000039001A8FEF7AAFE18B1F3210AA000F037
+:106910008DFEFFF70DF84FF47A71B0FBF1F42046CD
+:10692000FFF7ABFA0420FFF793FA00221146501E3E
+:10693000FEF78FFD14B010BD2E2E2F5372632F6DF6
+:1069400061696E2E630000001148006840F001008C
+:106950000F490860084640680E4908400C494860E5
+:10696000084600680C490840094908600846006864
+:1069700020F4802008600846406820F4FE0048604B
+:106980004FF41F008860C803044908607047000086
+:10699000001002400000FFF8FFFFF6FE08ED00E0E7
+:1069A0007047000070B588B006460D46144628466C
+:1069B000B5F5884F5BD00ADCB0F5885F12D06FF474
+:1069C00008510844C8B1B0F5417F7DD157E0A0F52A
+:1069D000AA401438002860D0A0F58050EC38002878
+:1069E000F3D185E000204FF4885340F2FF720C2170
+:1069F00000905348FFF7F1FE9EE052480078D0B96E
+:106A0000FEF74AFC504908602078F02808D10120A0
+:106A10004C490870012211464C48FEF737FC0AE049
+:106A20002078F12807D1022046490870012211463A
+:106A30004648FEF72BFC2078F0280AD1002240219E
+:106A40004348FEF723FC002280214148FEF71EFC4C
+:106A50000CE02078F12809D1012240213C48FEF7C2
+:106A600015FC012280213A48FEF710FC64E0FFF794
+:106A70008DFE012000F0EBFDFEF73EFD5CE00522FF
+:106A8000214634A0FCF782FB30B9FEF705FC334900
+:106A900008600220324908704EE0324821680160E7
+:106AA00061684160A16881602F48E16801602169E7
+:106AB00041602E4A01462B48FCF73AFF2C482B49EF
+:106AC0000A6802604A6800E035E0426089688160D7
+:106AD0000F2228A10C30FCF735FB254845F21B534B
+:106AE00040F2FF720C2100901548FFF776FE23E07C
+:106AF000FCF786FF23480168029141680391806892
+:106B000004902148016805914168069180680790CA
+:106B100002A846F2186340F2FF720C210090084868
+:106B2000FFF75BFEC820FEF795F8012000F08FFD0F
+:106B3000FEF7E2FC00E000BF00BF08B070BD00003F
+:106B4000480000208400002088000020000C014044
+:106B500000080140524553455400000090000020B9
+:106B60008C00002052420020940000205E42002051
+:106B70006A42002056342E302E325F3230323430AA
+:106B80003530370094450020A045002070B50546FB
+:106B90006C6A0020E085E0842046FFF7A3F970BD11
+:106BA00010B50A46C38893421EDB03691B68DB6885
+:106BB00023F0200304692468E360C3889B1AC38020
+:106BC00003691B68DB6843F0200304692468E36001
+:106BD000114683880B4499B203888B4202DC0388F8
+:106BE000CB1A99B281801CE003691B68DB6823F033
+:106BF000200304692468E360C1880023C38003691B
+:106C00001B68DB6843F0200304692468E360838821
+:106C10000B4499B203888B4202DC0388CB1A99B2E9
+:106C2000818010BD0168C96821F490710268D1604B
+:106C30000168496921F0010102685161202180F851
+:106C40003A10704710B504462068C06820F0400034
+:106C50002168C860202084F839002046FFF7FDFA3B
+:106C6000002010BD00BFC28803889A42FBD0026991
+:106C70001268D26822F0800203691B68DA60C28859
+:106C80008AB9026912681268C2F3C0125AB1026965
+:106C90001268516002691268D26842F0800203698A
+:106CA0001B68DA6070474388C268D1544288521C1E
+:106CB00092B2428003889A4201D100224280C28867
+:106CC000521CC28002691268D26842F080020369D5
+:106CD0001B68DA6000BFE5E710B502460B461946AF
+:106CE000D4889C4209DB94880C44A1B214888C425D
+:106CF00004DC14880C1BA1B200E00021D468605CA5
+:106D000010BD70B5044694F83A0022284AD1A06814
+:106D1000B0F5805F13D1A56A206940B9206840684A
+:106D2000C0F308002880A06A801CA06219E02068D7
+:106D30004068C0B22880A06A401CA06211E02069AF
+:106D400038B920684068C1B2A26A501CA0621170B4
+:106D500007E02068406800F07F01A26A501CA06232
+:106D60001170E08D401E80B2E085C8B92068C0680F
+:106D700020F020002168C8602068C06820F480707E
+:106D80002168C8602068406920F0010021684861DE
+:106D9000202084F83A002046FFF75EFA002070BDFC
+:106DA0000020FCE70220FAE7F0B507460D4616463C
+:106DB000002405E0295D3846FFF754FF601CC4B28B
+:106DC000B442F7DBF0BD00002DE9F0410446002598
+:106DD0002068006920F44050E16808432168086198
+:106DE0002169A06808436169084305432068C068B9
+:106DF00041F20C61884328432168C86020684069DB
+:106E000020F44070A1690843216848615F49206807
+:106E100088425CD1FEF7A2FD00EBC00101EB00103F
+:106E200061688900B0FBF1F6FEF798FD00EBC00148
+:106E300001EB001061688900B0FBF1F06421B0FB48
+:106E4000F1F000EBC00101EB0010A6EB8000322155
+:106E500001EB00106421B0FBF1F000F0F006FEF74A
+:106E60007DFD00EBC00101EB001061688900B0FB03
+:106E7000F1F06421B0FBF1F006EB0016FEF76EFDB9
+:106E800000EBC00101EB001061688900B0FBF1F775
+:106E9000FEF764FD00EBC00101EB001061688900A2
+:106EA000B0FBF1F06421B0FBF1F000EBC00101EBAD
+:106EB0000010A7EB8000322101EB00106421B0FB31
+:106EC000F1F000F00F003044216888605BE0FEF7CD
+:106ED00035FD00EBC00101EB001061688900B0FBDB
+:106EE000F1F6FEF72BFD00EBC00101EB001061682D
+:106EF0008900B0FBF1F06421B0FBF1F000EBC001C0
+:106F000001EB0010A6EB8000322101EB00106421A0
+:106F1000B0FBF1F000F0F006FEF710FD00EBC00151
+:106F200001EB001061688900B0FBF1F06421B0FB57
+:106F3000F1F006EB0016FEF701FD00EBC00101EBDE
+:106F4000001061688900B0FBF1F7FEF7F7FC00EB79
+:106F5000C00101EB001061688900B0FBF1F0642111
+:106F6000B0FBF1F000EBC00101EB0010A7EB8000DB
+:106F7000322101EB00106421B0FBF1F000F00F00B2
+:106F8000304421688860BDE8F0810000003801408D
+:106F90002DE9FF4FC1B0894692461E46DDF83CB14F
+:106FA0004E9F4FF4807101A8FCF7E5F800250024FE
+:106FB000A046381DC4B2F72C00DDF7243A208DF826
+:106FC00004008DF805908DF806A08DF80740300A72
+:106FD0008DF80800F0B28DF80900380A8DF80A0023
+:106FE000F8B28DF80B00002507E01BF8051005F13D
+:106FF000080001AA1154681CC5B2201FA842F4DC85
+:10700000012506E001A8405D40441FFA80F8681C95
+:10701000C5B2201D8542F5DB01AA02F800804FEAC7
+:107020002821601D11540D21A01D11540A21E01DBD
+:107030001154401CC2B201A94198FFF7B5FE45B0FA
+:10704000BDE8F08F014691F8390021282CD18868DD
+:10705000B0F5805F0FD10A6A1088C0F308000B6892
+:107060005860086918B9086A801C086209E0086A53
+:10707000401C086205E00B6A581C086218780B680F
+:107080005860C88C401E80B2C88458B90868C0686F
+:1070900020F080000B68D8600868C06840F04000AD
+:1070A0000B68D860002070470220FCE710B5054847
+:1070B00000F020F8044800F052F80448FEF714FFEE
+:1070C00010BD00005C000020700000201440002073
+:1070D00010B5054800F00EF8044800F040F80448E8
+:1070E000FEF702FF10BD0000340000204800002021
+:1070F000D43F002008B5026912681268C2F340123A
+:1071000062B3026912685268D1B2026912681268E9
+:107110000022B2B94388C268D1544288521C92B24C
+:10712000428003889A4201DB00224280C288521CBE
+:1071300092B2C28003889A4203DD0288C280012293
+:10714000027200BF00220092026912681268009267
+:10715000026912685268009200BF00BF08BD016951
+:1071600009680968C1F3C01139B301690968C968C0
+:1071700001F0800109B36FF08001026912681160AB
+:10718000C18891B1C188491EC1808288C168895C6B
+:107190000269126851608188491C89B28180028825
+:1071A00091420ADB0021818007E001690968C96812
+:1071B00021F0800102691268D160704710B5024861
+:1071C000FDF72AF910BD0000902F00202DE9F34FA4
+:1071D00087B08046002005900490B8F80600082883
+:1071E0007EDB00214046FFF777FD8246BAF13A0F79
+:1071F00077D101214046FFF76FFD8146B9F1FA0FC3
+:1072000070D102214046FFF767FD0746112F03D0DA
+:10721000162F01D00C2F66D103214046FFF75CFDED
+:107220000446B8F8061004F1080081421DDA5E48F1
+:107230000078012806D1FEF72FF85C49086000208D
+:1072400059490870FEF728F858490968411A089802
+:10725000814207D998F806104046FFF7A1FC0120AB
+:107260005149087009B0BDE8F08F01204E490870FF
+:10727000002607E0F1B24046FFF72EFD4C49885545
+:10728000701C86B2201D8642F4DBC1B24046FFF777
+:1072900023FD8346601DC1B24046FFF71DFD0BEB89
+:1072A000002080B20490012607E04148815D0598E6
+:1072B000084480B20590701C86B2201D8642F4DB23
+:1072C000A01DC1B24046FFF707FD0390E01DC1B20B
+:1072D0004046FFF701FD0290DDE90401884203E02A
+:1072E00060E05BE055E04FE049D103980D2846D1BE
+:1072F00002980A2843D12E4A121D29463846FFF724
+:107300004FFB042C17DB2A4840792949097900EB07
+:10731000012080B206902648C0792549897900EB82
+:10732000012085B2224808302B460090394621487A
+:10733000069AFFF752FA4CF2091085420FD04CF230
+:10734000022085420BD04CF20230854207D04CF22D
+:107350000240854203D04CF20250854203D1FDF732
+:107360009BFF1549086004F10800C1B24046FFF7D1
+:1073700017FC4FF400511148FDF784FF12E0012182
+:107380004046FFF70DFC0DE001214046FFF708FCE9
+:1073900008E001214046FFF703FC03E001214046DD
+:1073A000FFF7FEFB00BF5DE7A00000209C0000206F
+:1073B000854200204800002090000020000C014081
+:1073C0002DE9F34F87B08146B9F806000D287BDB25
+:1073D00000214846FFF780FC03908D490398087010
+:1073E00001214846FFF778FC8246894981F801A0CF
+:1073F0000398552869D1BAF1AA0FFBD1022148465A
+:10740000FFF76AFC8249887003214846FFF764FC55
+:107410007F49C8700846C078897800EB012080B2A7
+:10742000069004214846FFF757FC054678490D7140
+:10743000112D03D0162D01D00C2D7DD105214846EC
+:10744000FFF74AFC07467248477107214846FFF795
+:1074500043FC834606214846FFF73EFC0BEB002029
+:107460001FFA80F84FEA18206949887181F807806F
+:1074700007214846FFF730FC0446381B02287DD11F
+:10748000B9F8061007F10B0081421FDA6148007855
+:10749000012806D1FDF700FF5F49086000205D4923
+:1074A0000870FDF7F9FE5C490968411A08988142A5
+:1074B00007D999F806104846FFF772FB0120554995
+:1074C000087009B0BDE8F08FA0E09BE001205149B1
+:1074D000087000260FE006F10800C1B24846FFF729
+:1074E000FBFB4E4988550846815D06F10800484A75
+:1074F0001154701C86B2A642EDDB04F10800C1B243
+:107500004846FFF7E9FB4FEA006B04F10900C1B2FE
+:107510004846FFF7E1FB0BEB004B04F10A00C1B258
+:107520004846FFF7D9FB0BEB002B04F10B00C1B26F
+:107530004846FFF7D1FB00E05FE00BEB0001049150
+:1075400004F108013248FCF7D7F90590DDE9041091
+:10755000081A48D1314A41462846FFF723FA221D2E
+:107560002B49091D881EFBF7EDFD04F10800C1B28F
+:107570004846FFF7B1FBA11D254A00E038E0505412
+:10758000C81CC1B24846FFF7A7FBE11D204A505472
+:10759000C81CC1B24846FFF79FFB04F108011C4A12
+:1075A0005054C81CC1B24846FFF796FB04F10901CC
+:1075B000174A5054F02104F10A0011541748CDE93C
+:1075C00000802A46FA211648069BFFF7E1FC07F1E6
+:1075D0000B00C1B24846FFF7E3FA4FF400511148DF
+:1075E000FDF750FE6DE701214846FFF7D9FA0DE09F
+:1075F00001214846FFF7D4FA08E001214846FFF789
+:10760000CFFA03E001214846FFF7CAFA00BF58E766
+:1076100083440020A8000020A40000208443002010
+:1076200070000020000C014000BFFEE700BFFEE735
+:1076300002E008C8121F08C1002AFAD1704770473B
+:10764000002001E001C1121F002AFBD1704700F0A9
+:10765000010181F31388704710B50A4603899342EC
+:107660001EDB1E4B1B685B6923F002031B4C246866
+:10767000636103899B1A0381184B1B685B6943F0A4
+:107680000203164C246863611146C3880B4499B207
+:1076900043888B4202DC4388CB1A99B2C1801CE03C
+:1076A0000E4B1B685B6923F002030C4C246863617A
+:1076B000018900230381094B1B685B6943F00203C6
+:1076C000064C24686361C3880B4499B243888B429B
+:1076D00002DC4388CB1A99B2C18010BD902F0020E4
+:1076E00010B502460B46194614899C4209DBD48822
+:1076F0000C44A1B254888C4204DC54880C1BA1B207
+:1077000000E00021D468605C10BD00007FB5064633
+:10771000002404E0305D18490855601CC4B2082CF0
+:10772000F8DB3823154A02A9304600F0B9F90024E5
+:107730001EE0002504E002A800F072F9681CC5B242
+:107740000F48005DA842F6DC40230E4A694602A8B5
+:1077500000F0A6F9002507E06846405DE1000A4A0E
+:1077600089184855681CC5B2082DF5DB601CC4B2E9
+:10777000102CDEDB7FBD0000B5000020FC8100087E
+:10778000D484000834820008D0450020FFB587B0BB
+:107790000F4600250AE0785D3349495D884203D0F1
+:1077A0003846FFF7B3FF0725681CC5B2082DF2DB8A
+:1077B00040232E4A05A9079800F072F9012538E008
+:1077C000002405E005A8005D03A90855601CC4B2AB
+:1077D000082CF7DB0998002805D1681EC000244951
+:1077E0004018009005E01020401BC00020494018C0
+:1077F0000090002406E003A9201D085C05A9085597
+:10780000601CC4B2042CF6DB01AA05A9009800F0A4
+:1078100033F8002409E003A8005D01A9095D484090
+:1078200005AA211D5054601CC4B2042CF3DB681C53
+:10783000C5B2112DC4DB6846067D017E0175067652
+:10784000467D417E41754676867D817E8175867650
+:10785000C67DC17EC175C6764023064A05A80A9931
+:1078600000F01EF90BB0F0BDB50000203C8100080F
+:10787000D04500207C810008F0B587B005460E4653
+:1078800017464023114A05A9304600F009F90024A3
+:1078900011E005A8005D295D48408006800E03A91F
+:1078A0000855A0010A49401803A9095D405C01A9D7
+:1078B0000855601CC4B2082CEBDB2023054A39466E
+:1078C00001A800F0EDF807B0F0BD000074820008D8
+:1078D000D4820008B4820008FEF7C2FCFDF71EFD4A
+:1078E000FEF7DCFFFEF7A8FDFEF794FDFEF716FDA0
+:1078F000FEF75AFDFEF7FCFD4FF41650FEF722FE90
+:10790000FEF744FEFBF74CFEFBF70CFDC820FDF72D
+:10791000A1F937484088B0F57A7F04DA01222021A6
+:107920003448FDF7B3FCFEF7BBFE334908705EE058
+:107930003248FDF7DFFCC8213148FFF747FCC8217A
+:107940003048FFF73DFD3048FEF768FE2A480078D2
+:10795000C0B9002400BF09E004EB44012B4A02EB4C
+:10796000C100C821FBF75EFE601C84B2162CF3DB5D
+:10797000FA212748FEF7C0FC4FF47A712548FEF73C
+:10798000BBFC07E064212248FEF7B6FC64212148D5
+:10799000FEF7B2FCFEF76CFC012801D1FEF704FDF6
+:1079A0001D48007802280ED1FDF776FC1B490968B6
+:1079B000401A32281BD90120174908704FF4614042
+:1079C000FEF7B4FD13E01448007801280FD1FDF74D
+:1079D00063FC12490968401A41F28831884206D98D
+:1079E00000200D4908704FF41650FEF79FFD9FE7E9
+:1079F0000400002000080140A9000020C000002071
+:107A00005C0000203400002084000020802D002035
+:107A100008000020180000208C00002090000020AA
+:107A20000CB5002104E0425C6B465A544A1CD1B2AA
+:107A30000829F8DB002112E0425C5206120E425483
+:107A400006290ADA6B464A1C9A5C80231A40802A6F
+:107A500003D1425C01231A4342544A1CD1B2072984
+:107A6000EADB6A46127880231A40002A04D0C278E2
+:107A700010231A43C27003E0C27810239A43C270E5
+:107A80006A46D27808231A40002A04D0827901235A
+:107A90001A43827103E082795208520082710CBD50
+:107AA000FFB5124C002000BF00260546401C4E5575
+:107AB0000828F9DB002000BF1378521CDE10009D5F
+:107AC000AD5D5E07760FA65D3540002D07D0C51071
+:107AD0004D5D4607760FA65D3543C6108D55451C96
+:107AE0002846039EB542E7DBFFBD0000E4840008A2
+:107AF000000000000000000001020304060708095E
+:107B00000000000001020304100712071307140706
+:107B10001507150620072107230724072507300727
+:107B2000310732073407350735064007410742075A
+:107B30004307450700002110422063308440A550D0
+:107B4000C660E770088129914AA16BB18CC1ADD1A3
+:107B5000CEE1EFF13112100273325222B55294424B
+:107B6000F772D662399318837BB35AA3BDD39CC3F3
+:107B7000FFF3DEE36224433420040114E664C77497
+:107B8000A44485546AA54BB528850995EEE5CFF543
+:107B9000ACC58DD55336722611163006D776F666EB
+:107BA0009556B4465BB77AA719973887DFF7FEE793
+:107BB0009DD7BCC7C448E5588668A77840086118B7
+:107BC00002282338CCC9EDD98EE9AFF948896999E3
+:107BD0000AA92BB9F55AD44AB77A966A711A500A8B
+:107BE000333A122AFDDBDCCBBFFB9EEB799B588B33
+:107BF0003BBB1AABA66C877CE44CC55C222C033CD7
+:107C0000600C411CAEED8FFDECCDCDDD2AAD0BBD82
+:107C1000688D499D977EB66ED55EF44E133E322E2A
+:107C2000511E700E9FFFBEEFDDDFFCCF1BBF3AAFD2
+:107C3000599F788F8891A981CAB1EBA10CD12DC130
+:107C40004EF16FE18010A100C230E32004502540C6
+:107C500046706760B9839893FBA3DAB33DC31CD326
+:107C60007FE35EF3B1029012F322D2323542145216
+:107C700077625672EAB5CBA5A89589856EF54FE572
+:107C80002CD50DC5E234C324A01481046674476466
+:107C900024540544DBA7FAB79987B8975FE77EF7C6
+:107CA0001DC73CD7D326F2369106B01657667676B6
+:107CB000154634564CD96DC90EF92FE9C899E98992
+:107CC0008AB9ABA94458654806782768C018E10806
+:107CD0008238A3287DCB5CDB3FEB1EFBF98BD89B66
+:107CE000BBAB9ABB754A545A376A167AF10AD01A56
+:107CF000B32A923A2EFD0FED6CDD4DCDAABD8BADB2
+:107D0000E89DC98D267C076C645C454CA23C832CA5
+:107D1000E01CC10C1FEF3EFF5DCF7CDF9BAFBABF05
+:107D2000D98FF89F176E367E554E745E932EB23EF5
+:107D3000D10EF01E00000000B71DC1046E3B820989
+:107D4000D926430DDC7604136B6BC517B24D861A2A
+:107D50000550471EB8ED08260FF0C922D6D68A2F47
+:107D600061CB4B2B649B0C35D386CD310AA08E3C66
+:107D7000BDBD4F3870DB114CC7C6D0481EE09345DF
+:107D8000A9FD5241ACAD155F1BB0D45BC2969756AE
+:107D9000758B5652C836196A7F2BD86EA60D9B6319
+:107DA00011105A6714401D79A35DDC7D7A7B9F70AA
+:107DB000CD665E74E0B6239857ABE29C8E8DA191A0
+:107DC000399060953CC0278B8BDDE68F52FBA582F6
+:107DD000E5E66486585B2BBEEF46EABA3660A9B783
+:107DE000817D68B3842D2FAD3330EEA9EA16ADA4A2
+:107DF0005D0B6CA0906D32D42770F3D0FE56B0DDD1
+:107E0000494B71D94C1B36C7FB06F7C32220B4CEB1
+:107E1000953D75CA28803AF29F9DFBF646BBB8FB9C
+:107E2000F1A679FFF4F63EE143EBFFE59ACDBCE81D
+:107E30002DD07DEC77708634C06D4730194B043DF2
+:107E4000AE56C539AB0682271C1B4323C53D002E09
+:107E50007220C12ACF9D8E1278804F16A1A60C1BCE
+:107E600016BBCD1F13EB8A01A4F64B057DD0080885
+:107E7000CACDC90C07AB9778B0B6567C699015711E
+:107E8000DE8DD475DBDD936B6CC0526FB5E611628D
+:107E900002FBD066BF469F5E085B5E5AD17D1D57D0
+:107EA0006660DC5363309B4DD42D5A490D0B194449
+:107EB000BA16D84097C6A5AC20DB64A8F9FD27A563
+:107EC0004EE0E6A14BB0A1BFFCAD60BB258B23B655
+:107ED0009296E2B22F2BAD8A98366C8E41102F838A
+:107EE000F60DEE87F35DA9994440689D9D662B9041
+:107EF0002A7BEA94E71DB4E0500075E4892636E950
+:107F00003E3BF7ED3B6BB0F38C7671F7555032FA90
+:107F1000E24DF3FE5FF0BCC6E8ED7DC231CB3ECF53
+:107F200086D6FFCB8386B8D5349B79D1EDBD3ADCBC
+:107F30005AA0FBD8EEE00C6959FDCD6D80DB8E6058
+:107F400037C64F643296087A858BC97E5CAD8A73DA
+:107F5000EBB04B77560D044FE110C54B38368646D3
+:107F60008F2B47428A7B005C3D66C158E4408255B6
+:107F7000535D43519E3B1D252926DC21F0009F2C9B
+:107F8000471D5E28424D1936F550D8322C769B3F5E
+:107F90009B6B5A3B26D6150391CBD40748ED970A25
+:107FA000FFF0560EFAA011104DBDD014949B9319FA
+:107FB0002386521D0E562FF1B94BEEF5606DADF8CC
+:107FC000D7706CFCD2202BE2653DEAE6BC1BA9EB26
+:107FD0000B0668EFB6BB27D701A6E6D3D880A5DE8F
+:107FE0006F9D64DA6ACD23C4DDD0E2C004F6A1CD72
+:107FF000B3EB60C97E8D3EBDC990FFB910B6BCB46D
+:10800000A7AB7DB0A2FB3AAE15E6FBAACCC0B8A7E1
+:108010007BDD79A3C660369B717DF79FA85BB49228
+:108020001F4675961A163288AD0BF38C742DB081ED
+:10803000C330718599908A5D2E8D4B59F7AB0854EA
+:1080400040B6C95045E68E4EF2FB4F4A2BDD0C4739
+:108050009CC0CD43217D827B9660437F4F4600725A
+:10806000F85BC176FD0B86684A16476C9330046155
+:10807000242DC565E94B9B115E565A15877019185A
+:10808000306DD81C353D9F0282205E065B061D0BBD
+:10809000EC1BDC0F51A69337E6BB52333F9D113EDC
+:1080A0008880D03A8DD097243ACD5620E3EB152D19
+:1080B00054F6D4297926A9C5CE3B68C1171D2BCC0F
+:1080C000A000EAC8A550ADD6124D6CD2CB6B2FDF05
+:1080D0007C76EEDBC1CBA1E376D660E7AFF023EA96
+:1080E00018EDE2EE1DBDA5F0AAA064F4738627F991
+:1080F000C49BE6FD09FDB889BEE0798D67C63A806C
+:10810000D0DBFB84D58BBC9A62967D9EBBB03E9340
+:108110000CADFF97B110B0AF060D71ABDF2B32A6DF
+:108120006836F3A26D66B4BCDA7B75B8035D36B50C
+:10813000B440F7B121402324255E262A3931292174
+:10814000191109013B332B231B130B033D352D253F
+:108150001D150D053F372F271F170F073830282013
+:10816000181008003A322A221A120A023C342C242F
+:108170001C140C043E362E261E160E0627072F0F43
+:1081800037173F1F26062E0E36163E1E25052D0DCF
+:1081900035153D1D24042C0C34143C1C23032B0BDF
+:1081A00033133B1B22022A0A32123A1A21012909EF
+:1081B00031113919200028083010381821222324C1
+:1081C00025262728292A2B2C2D2E2F3031323334E7
+:1081D00035363738393A3B3C3D3E3F4001020304D7
+:1081E00005060708090A0B0C0D0E0F1011121314C7
+:1081F00015161718191A1B1C1D1E1F203830282091
+:108200001810080039312921191109013A322A229E
+:108210001A120A023B332B233E362E261E160E065A
+:108220003D352D251D150D053C342C241C140C0446
+:108230001B130B0300000D04100A170000000209B5
+:108240001B0E051400001607120B031900000F0186
+:10825000061A130C00002836331E242E00001D2F92
+:1082600027322C2000002B343026372100002D1F10
+:108270002931231C00001F04000102030000030831
+:10828000040506070000070C08090A0B00000B1084
+:108290000C0D0E0F00000F14101112130000131814
+:1082A000141516170000171C18191A1B00001B00C4
+:1082B0001C1D1E1F1F0E272C3C173724041E2E3595
+:1082C0000C253E15050F2F1D3F360614261C3D0DAF
+:1082D0002D1607340E040D01020F0B08030A060CBD
+:1082E00005090007000F07040E020D010A060C0B1A
+:1082F0000905030804010E080D06020B0F0C0907FF
+:10830000030A05000F0C080204090107050B030E00
+:108310000A00060D0F01080E060B03040907020DE3
+:108320000C00050A030D04070F02080E0C00010AD9
+:1083300006090B05000E070B0A040D0105080C06C3
+:108340000903020F0D080A01030F04020B06070CB4
+:1083500000050E090A00090E06030F05010D0C07A2
+:108360000B0402080D0700090304060A0208050EA3
+:108370000C0B0F010D060409080F03000B01020C82
+:10838000050A0E07010A0D0006090807040F0E036F
+:108390000B05020C070D0E030006090A0102080571
+:1083A0000B0C040F0D080B05060F00030407020C4D
+:1083B000010A0E090A0609000C0B070D0F01030E36
+:1083C00005020804030F00060A010D080904050B45
+:1083D0000C07020E020C0401070A0B060805030F26
+:1083E0000D000E090E0B020C04070D0105000F0A0B
+:1083F000030908060402010B0A0D07080F090C0502
+:108400000603000E0B080C07010E020D060F0009F3
+:108410000A0405030C010A0F09020608000D0304F3
+:108420000E07050B0A0F0402070C090506010D0EC5
+:10843000000B0308090E0F0502080C030700040ACD
+:10844000010D0B060403020C09050F0A0B0E0107B0
+:108450000600080D040B020E0F00080D030C09079F
+:10846000050A06010D000B070409010A0E03050C9D
+:10847000020F080601040B0D0C03070E0A0F060875
+:1084800000050902060B0D0801040A070905000F83
+:108490000E02030C0D020804060F0B010A09030E5D
+:1084A00005000C07010F0D080A0307040C05060B55
+:1084B000000E0902070B0401090C0E0200060A0D4A
+:1084C0000F03050802010E07040A080D0F0C09002E
+:1084D0000305060B0101020202020202010202026E
+:1084E0000202020180402010080402010C850008ED
+:1084F00000000020C000000030760008CC85000895
+:10850000C0000020B04900004076000800A24A04E4
+:1085100000000000000C01400010000000000000FE
+:1085200000000000000C01400020000000000000DE
+:108530000000000001000000000000000100000039
+:10854000000400000000000000000000D42F002004
+:10855000D43F0020000400000000000000000000E4
+:10856000D4330020D43F00200004000000000000AD
+:1085700000000000D4370020144000200004000058
+:108580000000000000000000D43B00201440002048
+:1085900000000000000000000000000000000000DB
+:1085A00000000000000000000000000001000000CA
+:1085B00000000000010100000000000010000000A9
+:0C85C000010000000000000000000000AE
 :04000005080030EDD2
 :00000001FF

BIN
MOTINOVA_CDL_App/MDK-ARM/bin/MOTINOVA_CDL_APP.bin


BIN
MOTINOVA_CDL_App/MDK-ARM/bin/MOTINOVA_CDL_APP_UART_V4r0r2_20240507_57600-9600.bin


+ 5 - 5
MOTINOVA_CDL_App/MDK-ARM/startup_stm32f103xb.lst

@@ -497,11 +497,11 @@ ARM Macro Assembler    Page 8
               00000000 
 Command Line: --debug --xref --diag_suppress=9931 --cpu=Cortex-M3 --apcs=interw
 ork --depend=motinova_cdl\startup_stm32f103xb.d -omotinova_cdl\startup_stm32f10
-3xb.o -IG:\0.project\MOTINOVA_CDL_20230918\MOTINOVA_CDL_App\MDK-ARM\RTE -ID:\so
-ftware\keil\ARM\CMSIS\4.3.0\CMSIS\Include -ID:\software\keil\Keil\STM32F1xx_DFP
-\2.3.0\Device\Include --predefine="__MICROLIB SETA 1" --predefine="__UVISION_VE
-RSION SETA 515" --predefine="_RTE_ SETA 1" --predefine="STM32F10X_MD SETA 1" --
-list=startup_stm32f103xb.lst startup_stm32f103xb.s
+3xb.o -IG:\0.CDL\MOTINOVA_CDL_20231020\MOTINOVA_CDL_App\MDK-ARM\RTE -ID:\softwa
+re\keil\ARM\CMSIS\4.3.0\CMSIS\Include -ID:\software\keil\Keil\STM32F1xx_DFP\2.3
+.0\Device\Include --predefine="__MICROLIB SETA 1" --predefine="__UVISION_VERSIO
+N SETA 515" --predefine="_RTE_ SETA 1" --predefine="STM32F10X_MD SETA 1" --list
+=startup_stm32f103xb.lst startup_stm32f103xb.s
 
 
 

+ 19 - 1
MOTINOVA_CDL_App/Src/main.c

@@ -110,7 +110,7 @@ int main(void)
   MX_ADC1_Init();
   MX_CAN_Init();
   MX_IWDG_Init();
-	MX_USART1_UART_Init();
+	MX_USART1_UART_Init(9600);
   MX_USART3_UART_Init();
 	
   /* USER CODE BEGIN 2 */
@@ -171,6 +171,24 @@ int main(void)
 		{
 		  MX_CAN_Init();
 		}
+		
+		if(UART1_BaudrateSwitch == 2)
+		{
+				if((HAL_GetTick() - T_UART1_BaudrateSwitch)>50)
+				{
+						UART1_BaudrateSwitch = 1;
+						MX_USART1_Reopen(57600);
+				}
+		}
+		else if(UART1_BaudrateSwitch == 1)
+		{
+				if((HAL_GetTick() - T_UART1_BaudrateSwitch)>5000)
+				{
+						UART1_BaudrateSwitch = 0;
+						MX_USART1_Reopen(9600);
+				}
+		}
+		
   /* USER CODE BEGIN 3 */
 
   }

+ 23 - 3
MOTINOVA_CDL_App/Src/uart_process.c

@@ -10,6 +10,8 @@
 
 uint8_t Power_mode = 0;//0-default,1-off,2-on
 uint32_t T_startPowerOnOff = 0;
+uint8_t UART1_BaudrateSwitch = 0;
+uint32_t T_UART1_BaudrateSwitch = 0;
 
 void PowerOnOff(uint8_t *mode)
 {
@@ -80,6 +82,20 @@ static void UART3_DataProcess(uint8_t Mode, uint16_t Command, uint8_t* Data)
 			HAL_NVIC_SystemReset();
 			break;
 		}
+		case 0x2505:
+		{
+			if (strncmp("RESET", (char *)Data, 5) == 0)
+			{
+//				UART_TransferData(&UART_TxBuff_Struct1, UARTID_CDL_TO_MC, Mode, 0x751, Command, Data);
+//				HAL_Delay(200);
+//				
+//				__set_FAULTMASK(1);//关闭所有中断
+//				HAL_NVIC_SystemReset();
+						T_UART1_BaudrateSwitch = HAL_GetTick();
+						UART1_BaudrateSwitch = 2;
+			}
+			break;
+		}
 		//随机码和密钥进行校验
 		case 0x5514:
 		{
@@ -92,7 +108,7 @@ static void UART3_DataProcess(uint8_t Mode, uint16_t Command, uint8_t* Data)
 			memcpy(InputKey, Data + 12, 8);
 			CheckCodeCal(InputCode, InputKey, OutputCode);
 			memcpy(SendData, OutputCode, 12);
-			memcpy(SendData + 12, (uint8_t*)"V4.0.1_20240229", 15);
+			memcpy(SendData + 12, (uint8_t*)"V4.0.2_20240507", 15);
 			
 			SendCmdData(&UART_TxBuff_Struct3, MODE_REPORT, 0x07FF, 0x551B, SendData);
 			break;
@@ -212,7 +228,7 @@ void Uart1_RxData_Process(USART_Buf_TypeDef* ptUartRx, uint16_t TimeOut)
 		{
 		  Addr = UART_ReadChar(ptUartRx, 1);//读取地址ID
 
-			if(Addr == UARTID_MC_TO_CDL)
+			if(Addr == UARTADDR_CDL)
 			{
 					//读取帧模式
 				Mode = UART_ReadChar(ptUartRx, 2);
@@ -266,6 +282,10 @@ void Uart1_RxData_Process(USART_Buf_TypeDef* ptUartRx, uint16_t TimeOut)
 								SendCmdData(&UART_TxBuff_Struct3, Mode, ID, Cmd, &Data[8]);
 							}
 							
+							if((Cmd==0xC109) || (Cmd==0xC202) || (Cmd==0xC302) || (Cmd==0xC402) || (Cmd==0xC502))
+							{
+									T_UART1_BaudrateSwitch = HAL_GetTick();
+							}
 							//清除缓存
 							UART_DelChar(ptUartRx, DataLength + 8);
 							//通信指示
@@ -372,7 +392,7 @@ void Uart3_RxData_Process(USART_Buf_TypeDef* ptUartRx, uint16_t TimeOut)
 							CRC_Buf[10 + DataLength] = FRAME_END;
 							//CAN_SendData(ID, CRC_Buf, DataLength + 11);
 							
-							UART_TransferData(&UART_TxBuff_Struct1, UARTID_CDL_TO_MC, Mode, ID, Cmd, Data);
+							UART_TransferData(&UART_TxBuff_Struct1, UARTADDR_CDL, Mode, ID, Cmd, Data);
 							//清除缓存
 							UART_DelChar(ptUartRx, CmdLength + 11);
 							//通信指示

+ 9 - 0
MOTINOVA_CDL_App/Src/uart_process.c.rej

@@ -0,0 +1,9 @@
+diff a/MOTINOVA_CDL_App/Src/uart_process.c b/MOTINOVA_CDL_App/Src/uart_process.c	(rejected hunks)
+@@ -77,6 +77,7 @@
+ 		//��λ
+ 		case 0x4400:
+ 		{
++			__HAL_UART_DISABLE_IT(UART_TxBuff_Struct1.ptUartHandel,UART_IT_RXNE);//�ؽ����ж�
+ 			__HAL_UART_DISABLE_IT(UART_TxBuff_Struct3.ptUartHandel,UART_IT_RXNE);//�ؽ����ж�
+ 		  Refresh_Flag();
+ 			__set_FAULTMASK(1);//�ر������ж�

+ 10 - 2
MOTINOVA_CDL_App/Src/usart.c

@@ -76,11 +76,11 @@ void MX_USART3_UART_Init(void)
 
 }
 
-void MX_USART1_UART_Init(void)
+void MX_USART1_UART_Init(uint32_t baudrate)
 {
 
   huart1.Instance = USART1;
-  huart1.Init.BaudRate = 9600;
+  huart1.Init.BaudRate = baudrate;
   huart1.Init.WordLength = UART_WORDLENGTH_8B;
   huart1.Init.StopBits = UART_STOPBITS_1;
   huart1.Init.Parity = UART_PARITY_NONE;
@@ -94,6 +94,14 @@ void MX_USART1_UART_Init(void)
 
 }
 
+void MX_USART1_Reopen(uint32_t baudrate)
+{
+	HAL_UART_DeInit(&huart1);
+
+  MX_USART1_UART_Init(baudrate);
+}
+
+
 void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
 {