From 4acb2a38bd27b5583345b2eb3136837e63af6a64 Mon Sep 17 00:00:00 2001 From: richardbarry Date: Wed, 18 Apr 2012 08:40:34 +0000 Subject: [PATCH] Starting point for YRDK RX63N demo. git-svn-id: https://svn.code.sf.net/p/freertos/code/trunk@1738 1d2547de-c912-0410-9cb9-b8ca96c0e9e2 --- Demo/RX600_RX63N-RDK_Renesas/RTOSDemo.Hbp | 4 + Demo/RX600_RX63N-RDK_Renesas/RTOSDemo.hws | 49 + Demo/RX600_RX63N-RDK_Renesas/RTOSDemo.tws | 21 + .../RTOSDemo/DefaultSession.hsf | 106 + .../RTOSDemo/FreeRTOSConfig.h | 166 + .../RTOSDemo/HighFrequencyTimerTest.c | 170 + .../RTOSDemo/IntQueueTimer.c | 143 + .../RTOSDemo/ParTest.c | 183 + .../RTOSDemo/RDK_Jlink.hsf | 234 + .../RTOSDemo/RDK_Jlink.ini | 38 + .../RTOSDemo/RTOSDemo.hwp | 481 + .../RTOSDemo/RTOSDemo.nav | Bin 0 -> 343934 bytes .../RTOSDemo/RTOSDemo.tps | 33 + .../RTOSDemo/Renesas-Files/dbsct.c | 66 + .../RTOSDemo/Renesas-Files/hwsetup.c | 293 + .../RTOSDemo/Renesas-Files/intprg.c | 53 + .../RTOSDemo/Renesas-Files/lowlvl.src | 120 + .../RTOSDemo/Renesas-Files/lowsrc.c | 329 + .../Renesas-Files/original_resetprg.c | 129 + .../RTOSDemo/Renesas-Files/resetprg.c | 142 + .../RTOSDemo/Renesas-Files/sbrk.c | 28 + .../RTOSDemo/Renesas-Files/vecttbl.c | 64 + .../RTOSDemo/SimSessionRX600.hsf | 290 + .../RTOSDemo/include/IntQueueTimer.h | 62 + .../RTOSDemo/include/OLDiodefine.h | 6615 +++++++++ .../RTOSDemo/include/iodefine.h | 12074 ++++++++++++++++ .../RTOSDemo/include/lowsrc.h | 13 + .../RTOSDemo/include/rskrx63ndef.h | 107 + .../RTOSDemo/include/stacksct.h | 13 + .../RTOSDemo/include/typedefine.h | 41 + .../RTOSDemo/include/vect.h | 60 + .../RTOSDemo/main-blinky.c | 264 + .../RTOSDemo/main-full.c | 702 + .../RTOSDemo/uIP_Task.c | 345 + .../RTOSDemo/webserver/EMAC.c | 562 + .../RTOSDemo/webserver/httpd-cgi.c | 277 + .../RTOSDemo/webserver/httpd-fs/404.html | 8 + .../RTOSDemo/webserver/httpd-fs/index.html | 13 + .../RTOSDemo/webserver/httpd-fs/index.shtml | 20 + .../RTOSDemo/webserver/httpd-fs/io.shtml | 28 + .../RTOSDemo/webserver/httpd-fs/logo.jpg | Bin 0 -> 32592 bytes .../RTOSDemo/webserver/httpd-fs/runtime.shtml | 20 + .../RTOSDemo/webserver/httpd-fs/stats.shtml | 47 + .../RTOSDemo/webserver/httpd-fs/tcp.shtml | 21 + .../RTOSDemo/webserver/httpd-fsdata.c | 3871 +++++ .../RTOSDemo/webserver/makefsdata | 79 + .../RTOSDemo/webserver/phy.c | 468 + .../RTOSDemo/webserver/phy.h | 84 + .../RTOSDemo/webserver/r_ether.h | 185 + .../RTOSDemo/webserver/uip-conf.h | 167 + .../RTOSDemo/webserver/webserver.h | 47 + 51 files changed, 29335 insertions(+) create mode 100644 Demo/RX600_RX63N-RDK_Renesas/RTOSDemo.Hbp create mode 100644 Demo/RX600_RX63N-RDK_Renesas/RTOSDemo.hws create mode 100644 Demo/RX600_RX63N-RDK_Renesas/RTOSDemo.tws create mode 100644 Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/DefaultSession.hsf create mode 100644 Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/FreeRTOSConfig.h create mode 100644 Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/HighFrequencyTimerTest.c create mode 100644 Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/IntQueueTimer.c create mode 100644 Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/ParTest.c create mode 100644 Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/RDK_Jlink.hsf create mode 100644 Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/RDK_Jlink.ini create mode 100644 Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/RTOSDemo.hwp create mode 100644 Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/RTOSDemo.nav create mode 100644 Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/RTOSDemo.tps create mode 100644 Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/dbsct.c create mode 100644 Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/hwsetup.c create mode 100644 Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/intprg.c create mode 100644 Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/lowlvl.src create mode 100644 Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/lowsrc.c create mode 100644 Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/original_resetprg.c create mode 100644 Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/resetprg.c create mode 100644 Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/sbrk.c create mode 100644 Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/vecttbl.c create mode 100644 Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/SimSessionRX600.hsf create mode 100644 Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/include/IntQueueTimer.h create mode 100644 Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/include/OLDiodefine.h create mode 100644 Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/include/iodefine.h create mode 100644 Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/include/lowsrc.h create mode 100644 Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/include/rskrx63ndef.h create mode 100644 Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/include/stacksct.h create mode 100644 Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/include/typedefine.h create mode 100644 Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/include/vect.h create mode 100644 Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/main-blinky.c create mode 100644 Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/main-full.c create mode 100644 Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/uIP_Task.c create mode 100644 Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/EMAC.c create mode 100644 Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-cgi.c create mode 100644 Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/404.html create mode 100644 Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/index.html create mode 100644 Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/index.shtml create mode 100644 Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/io.shtml create mode 100644 Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/logo.jpg create mode 100644 Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/runtime.shtml create mode 100644 Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/stats.shtml create mode 100644 Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/tcp.shtml create mode 100644 Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fsdata.c create mode 100644 Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/makefsdata create mode 100644 Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/phy.c create mode 100644 Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/phy.h create mode 100644 Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/r_ether.h create mode 100644 Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/uip-conf.h create mode 100644 Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/webserver.h diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo.Hbp b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo.Hbp new file mode 100644 index 000000000..0d3910dbc --- /dev/null +++ b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo.Hbp @@ -0,0 +1,4 @@ +[Setting] +ToolChain=0 +[Section] +WindowSize=726,544 diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo.hws b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo.hws new file mode 100644 index 000000000..4ccef6ff2 --- /dev/null +++ b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo.hws @@ -0,0 +1,49 @@ +[HIMDBVersion] +2.0 +[DATABASE_VERSION] +"11.0" +[WORKSPACE_DETAILS] +"RTOSDemo" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo.hws" "RX" "Renesas RX Standard" +[SHARED_WORKSPACE_CONTROL_STATUS] +"" "" "" +"" "" "" +[PROJECTS] +"RTOSDemo" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\RTOSDemo.hwp" 0 +[INFORMATION] +"No workspace information available" +[SCRAP] +[PROJECT_DEPENDENCY] +[WORKSPACE_PROPERTIES] +[HELP_FILES] +"c:\devtools\renesas\hew\tools\renesas\rx\1_0_0\hew\stdlib.chm" "C/C++ Standard Library Help" 0 +"c:\devtools\renesas\hew\tools\renesas\rx\1_0_1\hew\stdlib.chm" "C/C++ Standard Library Help" 0 +"c:\devtools\renesas\hew\tools\renesas\rx\1_1_0\hew\stdlib.chm" "C/C++ Standard Library Help" 0 +"c:\devtools\renesas\hew\tools\renesas\rx\1_2_0\hew\stdlib.chm" "C/C++ Standard Library Help" 1 +"c:\program files\renesas\hew\tools\renesas\rx\1_0_1\hew\stdlib.chm" "C/C++ Standard Library Help" 0 +"c:\program files\renesas\hew\tools\renesas\rx\1_1_0\hew\stdlib.chm" "C/C++ Standard Library Help" 0 +"c:\program files\renesas\hew_002\tools\renesas\rx\1_0_1\hew\stdlib.chm" "C/C++ Standard Library Help" 0 +"c:\program files\renesas\hew_rx210\tools\renesas\rx\1_0_1\hew\stdlib.chm" "C/C++ Standard Library Help" 0 +"c:\program files\renesas\hewrx200\tools\renesas\rx\1_0_1\hew\stdlib.chm" "C/C++ Standard Library Help" 0 +[GENERAL_DATA_PROJECT] +[USERMENUTOOLS] +[CUSTOMPLACEHOLDERS] +[MAKEFILE_BUILD_INFO] +"$(WORKSPDIR)\make\$(PROJECTNAME)_$(CONFIGNAME).mak" "" "$(WORKSPDIR)\make" 0 0 0 +[VD_CONFIGURATION_OPTIONS] +"ACTIVE_DESKTOP" "0" +[VD_CONFIGURATIONS] +"0" "Default1" "1" +"1" "Default2" "1" +"2" "Default3" "1" +"3" "Default4" "1" +[OPTIONS_DEBUG_TAB] +0 0 0 0 0 +[VCS] +"" "" "" 0 +[VCS_PROJECT] +[MAKEFILE_ENV_STRINGS] +[MAKEFILE_ENV_FLAGS] +1 0 0 +[MAKEFILE_CLEAN_INFO] +"" +[END] diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo.tws b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo.tws new file mode 100644 index 000000000..68a6bee39 --- /dev/null +++ b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo.tws @@ -0,0 +1,21 @@ +[HIMDBVersion] +2.0 +[DATABASE_VERSION] +"1.2" +[CURRENT_PROJECT] +"RTOSDemo" +[GENERAL_DATA] +[BREAKPOINTS] +[OPEN_WORKSPACE_FILES] +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\main-blinky.c" +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\ParTest.c" +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\Renesas-Files\resetprg.c" +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\tasks.c" +[WORKSPACE_FILE_STATES] +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\ParTest.c" -4 -23 1326 643 1 3 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\Renesas-Files\resetprg.c" 0 0 1116 414 0 0 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\main-blinky.c" 22 22 1120 418 0 1 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\tasks.c" 44 44 1120 418 0 2 +[LOADED_PROJECTS] +"RTOSDemo" +[END] diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/DefaultSession.hsf b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/DefaultSession.hsf new file mode 100644 index 000000000..4a7c75e6d --- /dev/null +++ b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/DefaultSession.hsf @@ -0,0 +1,106 @@ +[HIMDBVersion] +2.0 +[DATABASE_VERSION] +"2.3" +[SESSION_DETAILS] +"" +[INFORMATION] +"" +[GENERAL_DATA] +"{287A8023-99B5-49E1-A54E-4DDCA43D7959}MapCtrlECX_MAP_FIND_SYMBOL_LIST" "" +"{287A8023-99B5-49E1-A54E-4DDCA43D7959}MapCtrlViews" "0" +"{313F4FC1-6566-11D5-8BBE-0004E2013C71}CmdLineCtrlBatchFileName" "" +"{313F4FC1-6566-11D5-8BBE-0004E2013C71}CmdLineCtrlBreakpointFlag" "-1 " +"{313F4FC1-6566-11D5-8BBE-0004E2013C71}CmdLineCtrlBreakpointStatus" "-1 " +"{313F4FC1-6566-11D5-8BBE-0004E2013C71}CmdLineCtrlBrowseDirectory" "" +"{313F4FC1-6566-11D5-8BBE-0004E2013C71}CmdLineCtrlLogFileName" "" +"{313F4FC1-6566-11D5-8BBE-0004E2013C71}CmdLineCtrlSplitterPosition" "242" +"{313F4FC1-6566-11D5-8BBE-0004E2013C71}CmdLineCtrlViews" "1" +"{313F4FC1-6566-11D5-8BBE-0004E2013C71}CmdLineCtrlWindowProperties" "17" +"{313F4FC1-6566-11D5-8BBE-0004E2013C71}CmdLineWndInstanceKey0" "{WK_00000001_CmdLine}" +"{313F4FC1-6566-11D5-8BBE-0004E2013C71}TclTkCtrlLogFileName" "" +"{6C4D5B81-FD67-46A9-A089-EA44DCDE47FD}RAMMonitorManagerCtrlBlockInfoFileDir" "" +"{6C4D5B81-FD67-46A9-A089-EA44DCDE47FD}RAMMonitorManagerCtrlBlockInfoFileName" "" +"{7943C44E-7D44-422A-9140-4CF55C88F7D3}DifferenceCtrlViews" "0" +"{CBEBB610-1516-11D4-8F2D-00409545B67B}ElfDwarf2Objects" "1" +"{CBEBB610-1516-11D4-8F2D-00409545B67B}LoadModule0OBJ_ELFDWARF2_ARRAY_EXPAND_LIMIT" "-1" +"{CBEBB610-1516-11D4-8F2D-00409545B67B}LoadModule0OBJ_ELFDWARF2_STATIC_MEM_EXPAND" "1" +[LANGUAGE] +"English" +[CONFIG_INFO_VD1] +1 +[CONFIG_INFO_VD2] +0 +[CONFIG_INFO_VD3] +0 +[CONFIG_INFO_VD4] +0 +[WINDOW_POSITION_STATE_DATA_VD1] +"Help" "TOOLBAR 0" 59419 1 5 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_00000001_OUTPUT}" "WINDOW" 59422 0 0 "1.00" 289 560 340 350 200 18 0 "36756|36757|36758|36759|<>|36746|36747|<>|39531|<>|39500|39534|<>|36687" "0.0" +"{WK_00000002_WORKSPACE}" "WINDOW" 59420 0 0 "1.00" 206 560 340 350 200 18 0 "" "0.0" +"{WK_TB00000001_STANDARD}" "TOOLBAR 0" 59419 0 2 "0.00" 0 0 0 0 0 18 0 "" "0.0" +"{WK_TB00000002_EDITOR}" "TOOLBAR 0" 59419 0 0 "0.00" 0 0 0 0 0 18 0 "" "0.0" +"{WK_TB00000003_BOOKMARKS}" "TOOLBAR 0" 59419 1 1 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_TB00000004_TEMPLATES}" "TOOLBAR 0" 59419 1 0 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_TB00000005_SEARCH}" "TOOLBAR 0" 59419 0 1 "0.00" 0 0 0 0 0 18 0 "" "0.0" +"{WK_TB00000007_DEBUG}" "TOOLBAR 0" 59419 2 0 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_TB00000008_DEBUGRUN}" "TOOLBAR 0" 59419 2 1 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_TB00000009_VERSIONCONTROL}" "TOOLBAR 0" 59419 1 3 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_TB00000012_MAP}" "TOOLBAR 0" 59419 1 4 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_TB00000018_DEFAULTWINDOW}" "TOOLBAR 0" 59419 1 2 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_TB00000025_HELPSYSTEMTOOL}" "TOOLBAR 0" 59419 2 3 "0.00" 0 0 0 0 0 18 0 "" "0.0" +"{WK_TB00000026_MACRO}" "TOOLBAR 0" 59419 1 6 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_TB00000028_RTOSDEBUG}" "TOOLBAR 0" 59419 2 2 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_TB00000029_SYSTEMTOOL}" "TOOLBAR 0" 59419 2 4 "0.00" 0 0 0 0 0 17 0 "" "0.0" +[WINDOW_POSITION_STATE_DATA_VD2] +[WINDOW_POSITION_STATE_DATA_VD3] +[WINDOW_POSITION_STATE_DATA_VD4] +[WINDOW_Z_ORDER] +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N_Renesas\RTOSDemo\RTOSDemo.c" +[TARGET_NAME] +"" "" 1229201492 +[STATUSBAR_STATEINFO_VD1] +"MasterShowState" 1 +"ApplicationShowState" 1 +"DebuggerShowState" 1 +[STATUSBAR_STATEINFO_VD2] +"MasterShowState" 1 +"ApplicationShowState" 1 +"DebuggerShowState" 1 +[STATUSBAR_STATEINFO_VD3] +"MasterShowState" 1 +"ApplicationShowState" 1 +"DebuggerShowState" 1 +[STATUSBAR_STATEINFO_VD4] +"MasterShowState" 1 +"ApplicationShowState" 1 +"DebuggerShowState" 1 +[STATUSBAR_DEBUGGER_PANESTATE_VD1] +[STATUSBAR_DEBUGGER_PANESTATE_VD2] +[STATUSBAR_DEBUGGER_PANESTATE_VD3] +[STATUSBAR_DEBUGGER_PANESTATE_VD4] +[DEBUGGER_OPTIONS] +"" +[DOWNLOAD_MODULES] +[CONNECT_ON_GO] +"FALSE" +[DOWNLOAD_MODULES_AFTER_BUILD] +"TRUE" +[REMOVE_BREAKPOINTS_ON_DOWNLOAD] +"FALSE" +[DISABLE_MEMORY_ACCESS_PRIOR_TO_COMMAND_FILE_EXECUTION] +"FALSE" +[LIMIT_DISASSEMBLY_MEMORY_ACCESS] +"FALSE" +[DISABLE_MEMORY_ACCESS_DURING_EXECUTION] +"FALSE" +[DEBUGGER_OPTIONS_PROPERTIES] +"1" +[COMMAND_FILES] +[DEFAULT_DEBUG_FORMAT] +"" +[FLASH_DETAILS] +"0.000000" 0 0 "" 0 "" 0 0 "" 1 1 0 0 0 0 0 "" "" "" "" "" +[BREAKPOINTS] +[END] diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/FreeRTOSConfig.h b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/FreeRTOSConfig.h new file mode 100644 index 000000000..86b84fb33 --- /dev/null +++ b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/FreeRTOSConfig.h @@ -0,0 +1,166 @@ +/* + FreeRTOS V7.1.0 - Copyright (C) 2011 Real Time Engineers Ltd. + + + *************************************************************************** + * * + * FreeRTOS tutorial books are available in pdf and paperback. * + * Complete, revised, and edited pdf reference manuals are also * + * available. * + * * + * Purchasing FreeRTOS documentation will not only help you, by * + * ensuring you get running as quickly as possible and with an * + * in-depth knowledge of how to use FreeRTOS, it will also help * + * the FreeRTOS project to continue with its mission of providing * + * professional grade, cross platform, de facto standard solutions * + * for microcontrollers - completely free of charge! * + * * + * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * + * * + * Thank you for using FreeRTOS, and thank you for your support! * + * * + *************************************************************************** + + + This file is part of the FreeRTOS distribution. + + FreeRTOS is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License (version 2) as published by the + Free Software Foundation AND MODIFIED BY the FreeRTOS exception. + >>>NOTE<<< The modification to the GPL is included to allow you to + distribute a combined work that includes FreeRTOS without being obliged to + provide the source code for proprietary components outside of the FreeRTOS + kernel. FreeRTOS is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. You should have received a copy of the GNU General Public + License and the FreeRTOS license exception along with FreeRTOS; if not it + can be viewed here: http://www.freertos.org/a00114.html and also obtained + by writing to Richard Barry, contact details for whom are available on the + FreeRTOS WEB site. + + 1 tab == 4 spaces! + + http://www.FreeRTOS.org - Documentation, latest information, license and + contact details. + + http://www.SafeRTOS.com - A version that is certified for use in safety + critical systems. + + http://www.OpenRTOS.com - Commercial support, development, porting, + licensing and training services. +*/ + +#ifndef FREERTOS_CONFIG_H +#define FREERTOS_CONFIG_H + +/* Board specifics. */ +#include "rskrx63ndef.h" + +/*----------------------------------------------------------- + * Application specific definitions. + * + * These definitions should be adjusted for your particular hardware and + * application requirements. + * + * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE + * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. + * + * See http://www.freertos.org/a00110.html. + *----------------------------------------------------------*/ + +#define configUSE_PREEMPTION 1 +#define configUSE_IDLE_HOOK 0 +#define configUSE_TICK_HOOK 0 +#define configCPU_CLOCK_HZ ( ICLK_FREQUENCY ) /* Set in rskrx62ndef.h. */ +#define configPERIPHERAL_CLOCK_HZ ( PCLK_FREQUENCY ) /* Set in rskrx62ndef.h. */ +#define configTICK_RATE_HZ ( ( portTickType ) 1000 ) +#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 140 ) +#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 50 * 1024 ) ) +#define configMAX_TASK_NAME_LEN ( 12 ) +#define configUSE_TRACE_FACILITY 1 +#define configUSE_16_BIT_TICKS 0 +#define configIDLE_SHOULD_YIELD 1 +#define configUSE_CO_ROUTINES 0 +#define configUSE_MUTEXES 1 +#define configGENERATE_RUN_TIME_STATS 1 +#define configCHECK_FOR_STACK_OVERFLOW 2 +#define configUSE_RECURSIVE_MUTEXES 1 +#define configQUEUE_REGISTRY_SIZE 0 +#define configUSE_MALLOC_FAILED_HOOK 1 +#define configUSE_APPLICATION_TASK_TAG 0 + +#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 7 ) +#define configMAX_CO_ROUTINE_PRIORITIES ( 2 ) + +/* Software timer definitions. */ +#define configUSE_TIMERS 1 +#define configTIMER_TASK_PRIORITY ( 3 ) +#define configTIMER_QUEUE_LENGTH 5 +#define configTIMER_TASK_STACK_DEPTH ( configMINIMAL_STACK_SIZE ) + +/* The interrupt priority used by the kernel itself for the tick interrupt and +the pended interrupt. This would normally be the lowest priority. */ +#define configKERNEL_INTERRUPT_PRIORITY 1 + +/* The maximum interrupt priority from which FreeRTOS API calls can be made. +Interrupts that use a priority above this will not be effected by anything the +kernel is doing. */ +#define configMAX_SYSCALL_INTERRUPT_PRIORITY 4 + +/* The peripheral used to generate the tick interrupt is configured as part of +the application code. This constant should be set to the vector number of the +peripheral chosen. As supplied this is CMT0. */ +#define configTICK_VECTOR _CMT0_CMI0 + +/* Set the following definitions to 1 to include the API function, or zero +to exclude the API function. */ + +#define INCLUDE_vTaskPrioritySet 1 +#define INCLUDE_uxTaskPriorityGet 1 +#define INCLUDE_vTaskDelete 1 +#define INCLUDE_vTaskCleanUpResources 0 +#define INCLUDE_vTaskSuspend 1 +#define INCLUDE_vTaskDelayUntil 1 +#define INCLUDE_vTaskDelay 1 +#define INCLUDE_uxTaskGetStackHighWaterMark 1 +#define INCLUDE_xTaskGetSchedulerState 1 + +#define configASSERT( x ) if( ( x ) == 0 ) { taskDISABLE_INTERRUPTS(); for( ;; ); } +extern volatile unsigned long ulHighFrequencyTickCount; +#define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() nop() /* Run time stats use the same timer as the high frequency timer test. */ +#define portGET_RUN_TIME_COUNTER_VALUE() ulHighFrequencyTickCount + + +/* Override some of the priorities set in the common demo tasks. This is +required to ensure flase positive timing errors are not reported. */ +#define bktPRIMARY_PRIORITY ( configMAX_PRIORITIES - 3 ) +#define bktSECONDARY_PRIORITY ( configMAX_PRIORITIES - 4 ) +#define intqHIGHER_PRIORITY ( configMAX_PRIORITIES - 3 ) + + +/*----------------------------------------------------------- + * Ethernet configuration. + *-----------------------------------------------------------*/ + +/* MAC address configuration. */ +#define configMAC_ADDR0 0x00 +#define configMAC_ADDR1 0x12 +#define configMAC_ADDR2 0x13 +#define configMAC_ADDR3 0x10 +#define configMAC_ADDR4 0x15 +#define configMAC_ADDR5 0x11 + +/* IP address configuration. */ +#define configIP_ADDR0 192 +#define configIP_ADDR1 168 +#define configIP_ADDR2 0 +#define configIP_ADDR3 200 + +/* Netmask configuration. */ +#define configNET_MASK0 255 +#define configNET_MASK1 255 +#define configNET_MASK2 255 +#define configNET_MASK3 0 + +#endif /* FREERTOS_CONFIG_H */ diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/HighFrequencyTimerTest.c b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/HighFrequencyTimerTest.c new file mode 100644 index 000000000..3900e6782 --- /dev/null +++ b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/HighFrequencyTimerTest.c @@ -0,0 +1,170 @@ +/* + FreeRTOS V7.1.0 - Copyright (C) 2011 Real Time Engineers Ltd. + + + *************************************************************************** + * * + * FreeRTOS tutorial books are available in pdf and paperback. * + * Complete, revised, and edited pdf reference manuals are also * + * available. * + * * + * Purchasing FreeRTOS documentation will not only help you, by * + * ensuring you get running as quickly as possible and with an * + * in-depth knowledge of how to use FreeRTOS, it will also help * + * the FreeRTOS project to continue with its mission of providing * + * professional grade, cross platform, de facto standard solutions * + * for microcontrollers - completely free of charge! * + * * + * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * + * * + * Thank you for using FreeRTOS, and thank you for your support! * + * * + *************************************************************************** + + + This file is part of the FreeRTOS distribution. + + FreeRTOS is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License (version 2) as published by the + Free Software Foundation AND MODIFIED BY the FreeRTOS exception. + >>>NOTE<<< The modification to the GPL is included to allow you to + distribute a combined work that includes FreeRTOS without being obliged to + provide the source code for proprietary components outside of the FreeRTOS + kernel. FreeRTOS is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. You should have received a copy of the GNU General Public + License and the FreeRTOS license exception along with FreeRTOS; if not it + can be viewed here: http://www.freertos.org/a00114.html and also obtained + by writing to Richard Barry, contact details for whom are available on the + FreeRTOS WEB site. + + 1 tab == 4 spaces! + + http://www.FreeRTOS.org - Documentation, latest information, license and + contact details. + + http://www.SafeRTOS.com - A version that is certified for use in safety + critical systems. + + http://www.OpenRTOS.com - Commercial support, development, porting, + licensing and training services. +*/ + +/* + * High frequency timer test as described in main.c. + */ + +/* Scheduler includes. */ +#include "FreeRTOS.h" + +/* Hardware specifics. */ +#include "iodefine.h" + +/* The set frequency of the interrupt. Deviations from this are measured as +the jitter. */ +#define timerINTERRUPT_FREQUENCY ( 20000UL ) + +/* The expected time between each of the timer interrupts - if the jitter was +zero. */ +#define timerEXPECTED_DIFFERENCE_VALUE ( ( unsigned short ) ( ( configPERIPHERAL_CLOCK_HZ / 8UL ) / timerINTERRUPT_FREQUENCY ) ) + +/* The highest available interrupt priority. */ +#define timerHIGHEST_PRIORITY ( 15 ) + +/* Misc defines. */ +#define timerTIMER_3_COUNT_VALUE ( *( ( unsigned short * ) 0x8801a ) ) /*( CMT3.CMCNT )*/ + +/*-----------------------------------------------------------*/ + +/* Interrupt handler in which the jitter is measured. */ +static void prvTimer2IntHandler( void ); + +/* Stores the value of the maximum recorded jitter between interrupts. This is +displayed on one of the served web pages. */ +volatile unsigned short usMaxJitter = 0; + +/* Counts the number of high frequency interrupts - used to generate the run +time stats. */ +volatile unsigned long ulHighFrequencyTickCount = 0UL; + +/*-----------------------------------------------------------*/ + +void vSetupHighFrequencyTimer( void ) +{ + /* Timer CMT2 is used to generate the interrupts, and CMT3 is used + to measure the jitter. */ + + /* Enable compare match timer 2 and 3. */ + MSTP( CMT2 ) = 0; + MSTP( CMT3 ) = 0; + + /* Interrupt on compare match. */ + CMT2.CMCR.BIT.CMIE = 1; + + /* Set the compare match value. */ + CMT2.CMCOR = ( unsigned short ) ( ( ( configPERIPHERAL_CLOCK_HZ / timerINTERRUPT_FREQUENCY ) -1 ) / 8 ); + + /* Divide the PCLK by 8. */ + CMT2.CMCR.BIT.CKS = 0; + CMT3.CMCR.BIT.CKS = 0; + + /* Enable the interrupt... */ + _IEN( _CMT2_CMI2 ) = 1; + + /* ...and set its priority to the maximum possible, this is above the priority + set by configMAX_SYSCALL_INTERRUPT_PRIORITY so will nest. */ + _IPR( _CMT2_CMI2 ) = timerHIGHEST_PRIORITY; + + /* Start the timers. */ + CMT.CMSTR1.BIT.STR2 = 1; + CMT.CMSTR1.BIT.STR3 = 1; +} +/*-----------------------------------------------------------*/ + +#pragma interrupt ( prvTimer2IntHandler( vect = _VECT( _CMT2_CMI2 ), enable ) ) +static void prvTimer2IntHandler( void ) +{ +volatile unsigned short usCurrentCount; +static unsigned short usMaxCount = 0; +static unsigned long ulErrorCount = 0UL; + + /* We use the timer 1 counter value to measure the clock cycles between + the timer 0 interrupts. First stop the clock. */ + CMT.CMSTR1.BIT.STR3 = 0; + nop(); + nop(); + usCurrentCount = timerTIMER_3_COUNT_VALUE; + + /* Is this the largest count we have measured yet? */ + if( usCurrentCount > usMaxCount ) + { + if( usCurrentCount > timerEXPECTED_DIFFERENCE_VALUE ) + { + usMaxJitter = usCurrentCount - timerEXPECTED_DIFFERENCE_VALUE; + } + else + { + /* This should not happen! */ + ulErrorCount++; + } + + usMaxCount = usCurrentCount; + } + + /* Used to generate the run time stats. */ + ulHighFrequencyTickCount++; + + /* Clear the timer. */ + timerTIMER_3_COUNT_VALUE = 0; + + /* Then start the clock again. */ + CMT.CMSTR1.BIT.STR3 = 1; +} + + + + + + + diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/IntQueueTimer.c b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/IntQueueTimer.c new file mode 100644 index 000000000..b80ff4902 --- /dev/null +++ b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/IntQueueTimer.c @@ -0,0 +1,143 @@ +/* + FreeRTOS V7.1.0 - Copyright (C) 2011 Real Time Engineers Ltd. + + + *************************************************************************** + * * + * FreeRTOS tutorial books are available in pdf and paperback. * + * Complete, revised, and edited pdf reference manuals are also * + * available. * + * * + * Purchasing FreeRTOS documentation will not only help you, by * + * ensuring you get running as quickly as possible and with an * + * in-depth knowledge of how to use FreeRTOS, it will also help * + * the FreeRTOS project to continue with its mission of providing * + * professional grade, cross platform, de facto standard solutions * + * for microcontrollers - completely free of charge! * + * * + * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * + * * + * Thank you for using FreeRTOS, and thank you for your support! * + * * + *************************************************************************** + + + This file is part of the FreeRTOS distribution. + + FreeRTOS is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License (version 2) as published by the + Free Software Foundation AND MODIFIED BY the FreeRTOS exception. + >>>NOTE<<< The modification to the GPL is included to allow you to + distribute a combined work that includes FreeRTOS without being obliged to + provide the source code for proprietary components outside of the FreeRTOS + kernel. FreeRTOS is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. You should have received a copy of the GNU General Public + License and the FreeRTOS license exception along with FreeRTOS; if not it + can be viewed here: http://www.freertos.org/a00114.html and also obtained + by writing to Richard Barry, contact details for whom are available on the + FreeRTOS WEB site. + + 1 tab == 4 spaces! + + http://www.FreeRTOS.org - Documentation, latest information, license and + contact details. + + http://www.SafeRTOS.com - A version that is certified for use in safety + critical systems. + + http://www.OpenRTOS.com - Commercial support, development, porting, + licensing and training services. +*/ + +/* + * This file contains the non-portable and therefore RX62N specific parts of + * the IntQueue standard demo task - namely the configuration of the timers + * that generate the interrupts and the interrupt entry points. + */ + +/* Scheduler includes. */ +#include "FreeRTOS.h" +#include "task.h" + +/* Demo includes. */ +#include "IntQueueTimer.h" +#include "IntQueue.h" + +/* Hardware specifics. */ +#include "iodefine.h" + +#define tmrTIMER_0_1_FREQUENCY ( 2000UL ) +#define tmrTIMER_2_3_FREQUENCY ( 2001UL ) + +void vInitialiseTimerForIntQueueTest( void ) +{ + /* Ensure interrupts do not start until full configuration is complete. */ + portENTER_CRITICAL(); + { + /* Cascade two 8bit timer channels to generate the interrupts. + 8bit timer unit 1 (TMR0 and TMR1) and 8bit timer unit 2 (TMR2 and TMR3 are + utilised for this test. */ + + /* Enable the timers. */ + SYSTEM.MSTPCRA.BIT.MSTPA5 = 0; + SYSTEM.MSTPCRA.BIT.MSTPA4 = 0; + + /* Enable compare match A interrupt request. */ + TMR0.TCR.BIT.CMIEA = 1; + TMR2.TCR.BIT.CMIEA = 1; + + /* Clear the timer on compare match A. */ + TMR0.TCR.BIT.CCLR = 1; + TMR2.TCR.BIT.CCLR = 1; + + /* Set the compare match value. */ + TMR01.TCORA = ( unsigned short ) ( ( ( configPERIPHERAL_CLOCK_HZ / tmrTIMER_0_1_FREQUENCY ) -1 ) / 8 ); + TMR23.TCORA = ( unsigned short ) ( ( ( configPERIPHERAL_CLOCK_HZ / tmrTIMER_0_1_FREQUENCY ) -1 ) / 8 ); + + /* 16 bit operation ( count from timer 1,2 ). */ + TMR0.TCCR.BIT.CSS = 3; + TMR2.TCCR.BIT.CSS = 3; + + /* Use PCLK as the input. */ + TMR1.TCCR.BIT.CSS = 1; + TMR3.TCCR.BIT.CSS = 1; + + /* Divide PCLK by 8. */ + TMR1.TCCR.BIT.CKS = 2; + TMR3.TCCR.BIT.CKS = 2; + + /* Enable TMR 0, 2 interrupts. */ + IEN( TMR0, CMIA0 ) = 1; + IEN( TMR2, CMIA2 ) = 1; + + /* Set the timer interrupts to be above the kernel. The interrupts are + assigned different priorities so they nest with each other. */ + IPR( TMR0, CMIA0 ) = configMAX_SYSCALL_INTERRUPT_PRIORITY - 1; + IPR( TMR2, CMIA2 ) = ( configMAX_SYSCALL_INTERRUPT_PRIORITY - 2 ); + } + portEXIT_CRITICAL(); + + /* Ensure the interrupts are clear as they are edge detected. */ + IR( TMR0, CMIA0 ) = 0; + IR( TMR2, CMIA2 ) = 0; +} +/*-----------------------------------------------------------*/ + +#pragma interrupt ( vT0_1InterruptHandler( vect = VECT_TMR0_CMIA0, enable ) ) +void vT0_1InterruptHandler( void ) +{ + portYIELD_FROM_ISR( xFirstTimerHandler() ); +} +/*-----------------------------------------------------------*/ + +#pragma interrupt ( vT2_3InterruptHandler( vect = VECT_TMR2_CMIA2, enable ) ) +void vT2_3InterruptHandler( void ) +{ + portYIELD_FROM_ISR( xSecondTimerHandler() ); +} + + + + diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/ParTest.c b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/ParTest.c new file mode 100644 index 000000000..f6f027e7a --- /dev/null +++ b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/ParTest.c @@ -0,0 +1,183 @@ +/* + FreeRTOS V7.1.0 - Copyright (C) 2011 Real Time Engineers Ltd. + + + *************************************************************************** + * * + * FreeRTOS tutorial books are available in pdf and paperback. * + * Complete, revised, and edited pdf reference manuals are also * + * available. * + * * + * Purchasing FreeRTOS documentation will not only help you, by * + * ensuring you get running as quickly as possible and with an * + * in-depth knowledge of how to use FreeRTOS, it will also help * + * the FreeRTOS project to continue with its mission of providing * + * professional grade, cross platform, de facto standard solutions * + * for microcontrollers - completely free of charge! * + * * + * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * + * * + * Thank you for using FreeRTOS, and thank you for your support! * + * * + *************************************************************************** + + + This file is part of the FreeRTOS distribution. + + FreeRTOS is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License (version 2) as published by the + Free Software Foundation AND MODIFIED BY the FreeRTOS exception. + >>>NOTE<<< The modification to the GPL is included to allow you to + distribute a combined work that includes FreeRTOS without being obliged to + provide the source code for proprietary components outside of the FreeRTOS + kernel. FreeRTOS is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. You should have received a copy of the GNU General Public + License and the FreeRTOS license exception along with FreeRTOS; if not it + can be viewed here: http://www.freertos.org/a00114.html and also obtained + by writing to Richard Barry, contact details for whom are available on the + FreeRTOS WEB site. + + 1 tab == 4 spaces! + + http://www.FreeRTOS.org - Documentation, latest information, license and + contact details. + + http://www.SafeRTOS.com - A version that is certified for use in safety + critical systems. + + http://www.OpenRTOS.com - Commercial support, development, porting, + licensing and training services. +*/ + +/*----------------------------------------------------------- + * Simple IO routines to control the LEDs. + *-----------------------------------------------------------*/ + +/* Scheduler includes. */ +#include "FreeRTOS.h" +#include "task.h" + +/* Demo includes. */ +#include "partest.h" + +/* Hardware specifics. */ +#include "iodefine.h" + +#define partestNUM_LEDS ( 4 ) + +long lParTestGetLEDState( unsigned long ulLED ); + +/*-----------------------------------------------------------*/ + +void vParTestInitialise( void ) +{ + /* Port pin configuration is done by the low level set up prior to this + function being called. */ +} +/*-----------------------------------------------------------*/ + +void vParTestSetLED( unsigned long ulLED, signed long xValue ) +{ + if( ulLED < partestNUM_LEDS ) + { + if( xValue != 0 ) + { + /* Turn the LED on. */ + taskENTER_CRITICAL(); + { + switch( ulLED ) + { + case 0: LED0 = LED_ON; + break; + case 1: LED1 = LED_ON; + break; + case 2: LED2 = LED_ON; + break; + case 3: LED3 = LED_ON; + break; + } + } + taskEXIT_CRITICAL(); + } + else + { + /* Turn the LED off. */ + taskENTER_CRITICAL(); + { + switch( ulLED ) + { + case 0: LED0 = LED_OFF; + break; + case 1: LED1 = LED_OFF; + break; + case 2: LED2 = LED_OFF; + break; + case 3: LED3 = LED_OFF; + break; + } + + } + taskEXIT_CRITICAL(); + } + } +} +/*-----------------------------------------------------------*/ + +void vParTestToggleLED( unsigned long ulLED ) +{ + if( ulLED < partestNUM_LEDS ) + { + taskENTER_CRITICAL(); + { + if( lParTestGetLEDState( ulLED ) != 0x00 ) + { + vParTestSetLED( ulLED, 0 ); + } + else + { + vParTestSetLED( ulLED, 1 ); + } + } + taskEXIT_CRITICAL(); + } +} +/*-----------------------------------------------------------*/ + +long lParTestGetLEDState( unsigned long ulLED ) +{ +long lReturn = pdTRUE; + + if( ulLED < partestNUM_LEDS ) + { + switch( ulLED ) + { + case 0 : if( LED0 != 0 ) + { + lReturn = pdFALSE; + } + break; + case 1 : if( LED1 != 0 ) + { + lReturn = pdFALSE; + } + break; + case 2 : if( LED2 != 0 ) + { + lReturn = pdFALSE; + } + break; + case 3 : if( LED3 != 0 ) + { + lReturn = pdFALSE; + } + break; + } + } + + return lReturn; +} +/*-----------------------------------------------------------*/ + + \ No newline at end of file diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/RDK_Jlink.hsf b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/RDK_Jlink.hsf new file mode 100644 index 000000000..79792daee --- /dev/null +++ b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/RDK_Jlink.hsf @@ -0,0 +1,234 @@ +[HIMDBVersion] +2.0 +[DATABASE_VERSION] +"2.3" +[SESSION_DETAILS] +"" +[INFORMATION] +"" +[GENERAL_DATA] +"FIRST_CONNECTION_TAG" "NO" +"RESET_CPU_AFTER_DOWNLOAD_TAG" "VARIANT_TRUE_STORE_TAG" +"{228DB593-0AB2-4EBE-A098-A2CABF094E46}RamMonitorCtrlViews" "0" +"{287A8023-99B5-49E1-A54E-4DDCA43D7959}MapCtrlECX_MAP_FIND_SYMBOL_LIST" "" +"{287A8023-99B5-49E1-A54E-4DDCA43D7959}MapCtrlViews" "0" +"{2BA6A3EE-6488-11D5-80D4-00C04F68EAD7}ECXLABEL_ADDDLG_ADDR" "" +"{2BA6A3EE-6488-11D5-80D4-00C04F68EAD7}LabelCtrlSymbolFileDir" "" +"{2BA6A3EE-6488-11D5-80D4-00C04F68EAD7}LabelCtrlSymbolFileName" "" +"{2BA6A3EE-6488-11D5-80D4-00C04F68EAD7}LabelCtrlViews" "0" +"{2BA6A3EF-6488-11D5-80D4-00C04F68EAD7}StatusCtrlViews" "0" +"{313F4FC1-6566-11D5-8BBE-0004E2013C71}CmdLineCtrlBatchFileName" "" +"{313F4FC1-6566-11D5-8BBE-0004E2013C71}CmdLineCtrlBreakpointFlag" "-1 " +"{313F4FC1-6566-11D5-8BBE-0004E2013C71}CmdLineCtrlBreakpointStatus" "-1 " +"{313F4FC1-6566-11D5-8BBE-0004E2013C71}CmdLineCtrlBrowseDirectory" "" +"{313F4FC1-6566-11D5-8BBE-0004E2013C71}CmdLineCtrlLogFileName" "" +"{313F4FC1-6566-11D5-8BBE-0004E2013C71}CmdLineCtrlSplitterPosition" "242" +"{313F4FC1-6566-11D5-8BBE-0004E2013C71}CmdLineCtrlViews" "1" +"{313F4FC1-6566-11D5-8BBE-0004E2013C71}CmdLineCtrlWindowProperties" "17" +"{313F4FC1-6566-11D5-8BBE-0004E2013C71}CmdLineWndInstanceKey0" "{WK_00000001_CmdLine}" +"{313F4FC1-6566-11D5-8BBE-0004E2013C71}TclTkCtrlLogFileName" "" +"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_COMPARE_END_ADDRESS" "" +"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_COMPARE_START_ADDRESS" "" +"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_DISPLAY_DEST_ADDRESS" "" +"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_DISPLAY_END_ADDRESS" "" +"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_DISPLAY_START_ADDRESS" "" +"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_FILL_END_ADDRESS" "" +"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_FILL_START_ADDRESS" "" +"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_MOVE_END_ADDRESS" "" +"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_MOVE_START_ADDRESS" "" +"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_SEARCH_END_ADDRESS" "" +"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_SEARCH_START_ADDRESS" "" +"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_SET_DEST_ADDRESS" "" +"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_TEST_END_ADDRESS" "" +"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_TEST_START_ADDRESS" "" +"{313F4FC2-6566-11D5-8BBE-0004E2013C71}MemoryCtrlViews" "0" +"{4F025ABC-BE66-4CB6-9CEE-06C61418278E}Trace2CtrlSaveFileDir" "" +"{4F025ABC-BE66-4CB6-9CEE-06C61418278E}Trace2CtrlSaveFileName" "" +"{4F025ABC-BE66-4CB6-9CEE-06C61418278E}Trace2CtrlViews" "0" +"{5F75FDA0-6FF0-11D5-B7CE-00E029352378}PACtrlSaveFileDir" "" +"{5F75FDA0-6FF0-11D5-B7CE-00E029352378}PACtrlSaveFileName" "" +"{5F75FDA0-6FF0-11D5-B7CE-00E029352378}PACtrlViews" "0" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_EVAL_DENORMAL_MODE" "16777216" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_EVAL_ROUND_MODE" "768" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_0" "0000000000001A20" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_1" "0000000000000000" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_10" "00000000A5A5A5A5" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_11" "00000000A5A5A5A5" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_12" "00000000A5A5A5A5" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_13" "00000000A5A5A5A5" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_14" "000000000000DE9C" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_15" "00000000A5A5A5A5" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_16" "0000000000001A20" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_17" "000000000000E42C" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_18" "0000000000030001" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_19" "00000000FFF847DC" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_2" "000000000000DD40" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_20" "00000000FFF81488" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_21" "0000000080000000" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_22" "0000000000000000" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_23" "0000000000000000" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_24" "0000000000000100" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_25" "1234567887650000" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_3" "0000000000000001" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_4" "0000000000000001" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_5" "0000000000000000" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_6" "00000000A5A5A5A5" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_7" "00000000A5A5A5A5" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_8" "00000000A5A5A5A5" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_9" "00000000A5A5A5A5" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_COUNT" "26" +"{6C4D5B81-FD67-46A9-A089-EA44DCDE47FD}RAMMonitorManagerCtrlBlockInfoFileDir" "" +"{6C4D5B81-FD67-46A9-A089-EA44DCDE47FD}RAMMonitorManagerCtrlBlockInfoFileName" "" +"{743E9BC2-6B9D-44A5-A5B6-F8C3FF2C1CAD}GraphCtrlViews" "0" +"{743E9BC2-6B9D-44A5-A5B6-F8C3FF2C1CAD}GraphWnd_Close_Count" "0" +"{743E9BC2-6B9D-44A5-A5B6-F8C3FF2C1CAD}GraphWnd_Mode" "1" +"{743E9BC2-6B9D-44A5-A5B6-F8C3FF2C1CAD}GraphWnd_Trace_Mode" "0" +"{7943C44E-7D44-422A-9140-4CF55C88F7D3}DifferenceCtrlViews" "0" +"{855C64C3-E49C-4450-9BCA-C9822566D214}OSObjectCtrlViews" "0" +"{8A898260-6F1D-11D5-8EB6-00004CC34E9D}ECX_WAVE" "00000000,00000000,0,0" +"{8A898260-6F1D-11D5-8EB6-00004CC34E9D}ECX_WAVE_ADDRESS_NAME" "" +"{8A898260-6F1D-11D5-8EB6-00004CC34E9D}ECX_WAVE_COMB_ADDRESS" ",,,," +"{8A898260-6F1D-11D5-8EB6-00004CC34E9D}ECX_WAVE_COMB_BUFFER" ",,,," +"{8A898260-6F1D-11D5-8EB6-00004CC34E9D}ECX_WAVE_SAMPLING_RATE" "1000" +"{8A898260-6F1D-11D5-8EB6-00004CC34E9D}WaveformCtrlViews" "0" +"{95A081A1-7001-11D5-B1FD-00A0C9E23A58}RegistersCtrlViews" "0" +"{AC411480-6F0A-11D5-8EB6-00004CC34E9D}ECX_IMAGE_ADDRESS_NAME" "" +"{AC411480-6F0A-11D5-8EB6-00004CC34E9D}ECX_IMAGE_BUFFER" "00000000,00000000,0,0" +"{AC411480-6F0A-11D5-8EB6-00004CC34E9D}ECX_IMAGE_COLOR" "0,0,0,0" +"{AC411480-6F0A-11D5-8EB6-00004CC34E9D}ECX_IMAGE_COMB_ADDRESS" ",,,," +"{AC411480-6F0A-11D5-8EB6-00004CC34E9D}ECX_IMAGE_COMB_PALETTE" ",,,," +"{AC411480-6F0A-11D5-8EB6-00004CC34E9D}ECX_IMAGE_PALETTE_NAME" "" +"{AC411480-6F0A-11D5-8EB6-00004CC34E9D}ECX_IMAGE_REDRAW_CONTINUOUSLY" "0,2" +"{AC411480-6F0A-11D5-8EB6-00004CC34E9D}ECX_IMAGE_SAMPLEING_RATE" "1000" +"{AC411480-6F0A-11D5-8EB6-00004CC34E9D}ECX_IMAGE_VIEW" "0,0,0,0,0,0" +"{AC411480-6F0A-11D5-8EB6-00004CC34E9D}ImageCtrlViews" "0" +"{AFC216B4-0D8D-4096-9F27-9F29115F69B2}StartStopCheckAfter" "0" +"{AFC216B4-0D8D-4096-9F27-9F29115F69B2}StartStopCheckBefore" "0" +"{AFC216B4-0D8D-4096-9F27-9F29115F69B2}StartStopExpAfter" "" +"{AFC216B4-0D8D-4096-9F27-9F29115F69B2}StartStopExpBefore" "" +"{AFC216B4-0D8D-4096-9F27-9F29115F69B2}T_SESSION_IS_SAVED" "YES" +"{B266D880-6FA1-11D5-8613-00A024591A38}WatchCtrlViews" "0" +"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWndInitial_Radix" "0" +"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWndRecentFile_WatchRecord" "" +"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWndRecentFile_WatchSave" "" +"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWndUpdate_Interval" "100" +"{B39CE26B-928D-4241-BF8F-E15980C81200}DebugConsoleCtrlDCEnable" "1" +"{B39CE26B-928D-4241-BF8F-E15980C81200}DebugConsoleCtrlLocalEchoEnable" "1" +"{B39CE26B-928D-4241-BF8F-E15980C81200}DebugConsoleCtrlLogFileName" "" +"{B39CE26B-928D-4241-BF8F-E15980C81200}DebugConsoleCtrlPortBaudIndex" "0" +"{B39CE26B-928D-4241-BF8F-E15980C81200}DebugConsoleCtrlPortName" "" +"{B39CE26B-928D-4241-BF8F-E15980C81200}DebugConsoleCtrlSendDataTimeout" "50" +"{B39CE26B-928D-4241-BF8F-E15980C81200}DebugConsoleCtrlViews" "1" +"{B39CE26B-928D-4241-BF8F-E15980C81200}DebugConsoleWndInstanceKey0" "{WK_00000001_DEBUGCONSOLE}RTOSDemoRDK_Jlink" +"{CBEBB610-1516-11D4-8F2D-00409545B67B}ElfDwarf2Objects" "1" +"{CBEBB610-1516-11D4-8F2D-00409545B67B}LoadModule0OBJ_ELFDWARF2_ARRAY_EXPAND_LIMIT" "-1" +"{CBEBB610-1516-11D4-8F2D-00409545B67B}LoadModule0OBJ_ELFDWARF2_STATIC_MEM_EXPAND" "1" +"{EEDC9300-6FBE-11D5-8613-00A024591A38}LocalsCtrlViews" "0" +"{EEDC9301-6FBE-11D5-8613-00A024591A38}StackTraceCtrlViews" "0" +"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOCtrlIOFile" "" +"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOCtrlSaveFileDir" "$(CONFIGDIR)" +"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOCtrlSaveFileName" "" +"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOCtrlViews" "0" +"{F923CED3-3318-4B43-B931-0AE76B289176}TaskTraceCtrlAnalyzeViews" "0" +"{F923CED3-3318-4B43-B931-0AE76B289176}TaskTraceCtrlFileSaveDirectory" "" +"{F923CED3-3318-4B43-B931-0AE76B289176}TaskTraceCtrlTraceViews" "0" +[LANGUAGE] +"English" +[CONFIG_INFO_VD1] +1 +[CONFIG_INFO_VD2] +0 +[CONFIG_INFO_VD3] +0 +[CONFIG_INFO_VD4] +0 +[WINDOW_POSITION_STATE_DATA_VD1] +"Help" "TOOLBAR 0" 59419 1 5 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_00000001_CmdLine}" "WINDOW" 59422 0 1 "0.15" 187 0 0 350 200 17 0 "32771|32772|32778|<>|32773|32774|<>|32820|<>|32801|32824" "0.0" +"{WK_00000001_DEBUGCONSOLE}RTOSDemoRDK_Jlink" "WINDOW" 59421 0 0 "1.00" 381 0 0 350 200 17 0 "57634|57637|57633|<>|32781|32782|<>|32780|32785|32787" "0.0" +"{WK_00000001_OUTPUT}" "WINDOW" 59422 0 0 "1.00" 187 560 340 350 200 18 0 "36756|36757|36758|36759|<>|36746|36747|<>|39531|<>|39500|39534|<>|36687" "0.0" +"{WK_00000002_WORKSPACE}" "WINDOW" 59420 0 0 "1.00" 330 560 340 350 200 18 0 "" "0.0" +"{WK_TB00000001_STANDARD}" "TOOLBAR 0" 59419 0 3 "0.00" 0 0 0 0 0 18 0 "" "0.0" +"{WK_TB00000002_EDITOR}" "TOOLBAR 0" 59419 0 0 "0.00" 0 0 0 0 0 18 0 "" "0.0" +"{WK_TB00000003_BOOKMARKS}" "TOOLBAR 0" 59419 1 1 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_TB00000004_TEMPLATES}" "TOOLBAR 0" 59419 1 0 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_TB00000005_SEARCH}" "TOOLBAR 0" 59419 0 2 "0.00" 0 0 0 0 0 18 0 "" "0.0" +"{WK_TB00000007_DEBUG}" "TOOLBAR 0" 59419 0 1 "0.00" 0 914 231 0 0 18 0 "" "0.0" +"{WK_TB00000008_DEBUGRUN}" "TOOLBAR 0" 59419 3 0 "0.00" 0 298 189 0 0 18 0 "" "0.0" +"{WK_TB00000009_VERSIONCONTROL}" "TOOLBAR 0" 59419 1 3 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_TB00000011_CPU}" "TOOLBAR 0" 59419 2 1 "0.00" 0 0 0 0 0 18 0 "" "0.0" +"{WK_TB00000012_MAP}" "TOOLBAR 0" 59419 1 4 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_TB00000013_SYMBOL}" "TOOLBAR 0" 59419 2 2 "0.00" 0 0 0 0 0 18 0 "" "0.0" +"{WK_TB00000014_CODE}" "TOOLBAR 0" 59419 3 3 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_TB00000015_PERFORMANCE}" "TOOLBAR 0" 59419 3 4 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_TB00000016_GRAPHIC}" "TOOLBAR 0" 59419 3 2 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_TB00000018_DEFAULTWINDOW}" "TOOLBAR 0" 59419 1 2 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_TB00000023_RTOS}" "TOOLBAR 0" 59419 3 5 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_TB00000025_HELPSYSTEMTOOL}" "TOOLBAR 0" 59419 0 0 "0.00" 0 788 192 0 0 5 0 "" "0.0" +"{WK_TB00000026_MACRO}" "TOOLBAR 0" 59419 1 6 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_TB00000027_EVENT}" "TOOLBAR 0" 59419 3 1 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_TB00000028_RTOSDEBUG}" "TOOLBAR 0" 59419 0 0 "0.00" 0 559 254 0 0 5 0 "" "0.0" +"{WK_TB00000029_SYSTEMTOOL}" "TOOLBAR 0" 59419 2 0 "0.00" 0 0 0 0 0 17 0 "" "0.0" +[WINDOW_POSITION_STATE_DATA_VD2] +[WINDOW_POSITION_STATE_DATA_VD3] +[WINDOW_POSITION_STATE_DATA_VD4] +[WINDOW_Z_ORDER] +"{WK_TB00000028_RTOSDEBUG} TOOLBAR 0" +"{WK_TB00000025_HELPSYSTEMTOOL} TOOLBAR 0" +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\ParTest.c" +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\main-blinky.c" +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\tasks.c" +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\Renesas-Files\resetprg.c" +[TARGET_NAME] +"RX600 Segger J-Link" "" 0 +[STATUSBAR_STATEINFO_VD1] +"MasterShowState" 1 +"ApplicationShowState" 1 +"DebuggerShowState" 1 +[STATUSBAR_STATEINFO_VD2] +"MasterShowState" 1 +"ApplicationShowState" 1 +"DebuggerShowState" 1 +[STATUSBAR_STATEINFO_VD3] +"MasterShowState" 1 +"ApplicationShowState" 1 +"DebuggerShowState" 1 +[STATUSBAR_STATEINFO_VD4] +"MasterShowState" 1 +"ApplicationShowState" 1 +"DebuggerShowState" 1 +[STATUSBAR_DEBUGGER_PANESTATE_VD1] +"SBK_TAR_EMUE100|Exception" 1 +"SBK_TAR_EMUE100|BreakCondition" 1 +"SBK_TAR_EMUE100|TaskID" 1 +"SBK_TAR_EMUE100|ExecutionTime" 1 +"SBK_TAR_EMUE100|PC" 1 +[STATUSBAR_DEBUGGER_PANESTATE_VD2] +[STATUSBAR_DEBUGGER_PANESTATE_VD3] +[STATUSBAR_DEBUGGER_PANESTATE_VD4] +[DEBUGGER_OPTIONS] +"" +[DOWNLOAD_MODULES] +"$(CONFIGDIR)\$(PROJECTNAME).abs" 0 "Elf/Dwarf2" 0 0 1 0 +[CONNECT_ON_GO] +"FALSE" +[DOWNLOAD_MODULES_AFTER_BUILD] +"TRUE" +[REMOVE_BREAKPOINTS_ON_DOWNLOAD] +"FALSE" +[DISABLE_MEMORY_ACCESS_PRIOR_TO_COMMAND_FILE_EXECUTION] +"FALSE" +[LIMIT_DISASSEMBLY_MEMORY_ACCESS] +"FALSE" +[DISABLE_MEMORY_ACCESS_DURING_EXECUTION] +"FALSE" +[DEBUGGER_OPTIONS_PROPERTIES] +"1" +[COMMAND_FILES] +[DEFAULT_DEBUG_FORMAT] +"Elf/Dwarf2" +[FLASH_DETAILS] +"" 0 0 "" 0 "" 0 0 "" 0 0 0 0 0 0 0 "" "" "" "" "" +[BREAKPOINTS] +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\renesas-files\resetprg.c" 137 -524083 1 "{00000000-0000-0000-C000-000000000046}" "" +[END] diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/RDK_Jlink.ini b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/RDK_Jlink.ini new file mode 100644 index 000000000..cccc6df80 --- /dev/null +++ b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/RDK_Jlink.ini @@ -0,0 +1,38 @@ +[Init_EmulatorSetting] +FirstStartUp=0 +FirstStartUpV10200=0 +HideNext=0 +ConnectionDlgAutoClose=1 +[Config_Property] +HideNext=0 +[Init_DeviceSetting] +DebugMode=0 +PowerOut=0 +ResetRelease=0 +EmulatorSerial= +McuGroup=RX63N Group +Device=R5F563NA +McuFileDir=RX63NGr +SupplyVoltage=-1 +[Init_CommunicationClock] +JtagClock=16.5 +JtagClockValue=10 +CommunicatonIF=0 +FineClock=2000000 +FineClockValue=2000000 +[CFG_MCU] +ProcessorMode=0 +LittleEndian=1 +OperatingMode=0 +PrevDevice=R5F563NA +EnableClockChange=0 +UseEXTAL=1 +EXTAL=12.0000 +WorkRam=1000 +[CFG_SYSTEM] +CpuReWrite=0 +PerfCounterUser=0 +TraceDebugAs=0 +DataFlashReWrite=0 +[CFG_FLASHCLEAR_R5F563NA_00] +AreaCount=0 diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/RTOSDemo.hwp b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/RTOSDemo.hwp new file mode 100644 index 000000000..77183faa6 --- /dev/null +++ b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/RTOSDemo.hwp @@ -0,0 +1,481 @@ +[HIMDBVersion] +2.0 +[DATABASE_VERSION] +"2.8" +[PROJECT_DETAILS] +"RTOSDemo" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\RTOSDemo.hwp" "RX" "Renesas RX Standard" "Application" "RX600" "Other" +[INFORMATION] +"No project information available" +[TOOL_CHAIN] +"Renesas RX Standard Toolchain" "1.2.0.0" +[CONFIGURATIONS] +"Blinky" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\Blinky" +"Debug" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\Debug" +"Debug_with_optimisation" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\Debug_with_optimisation" +[BUILD_PHASES] +"Renesas OptLinker" 1 +"Renesas RX Assembler" 1 +"Renesas RX C/C++ Compiler" 1 +"Renesas RX C/C++ Library Generator" 1 +"Renesas RX Configurator" 1 +[TOOL_ENVIRONMENT] +[EXTENSIONS] +"Absolute file" "ABS" +"Assembly include file" "INC" +"Assembly list file" "LST" +"Assembly source file" "S" +"Assembly source file" "SRC" +"Binary file" "BIN" +"C header file" "H" +"C source file" "C" +"C++ header file" "HPP" +"C++ source file" "CC" +"C++ source file" "CP" +"C++ source file" "CPP" +"CPU information file" "CPU" +"Calling information file" "CAL" +"Configuration file" "CFG" +"Debug information file" "DBG" +"Hex file" "HEX" +"Library file" "LIB" +"Library information file" "LBP" +"Linkage map file" "MAP" +"Linkage symbol file" "FSY" +"Object file" "OBJ" +"Optimize map file" "bls" +"Preprocessed C source file" "P" +"Preprocessed C++ source file" "PP" +"Relocatable file" "REL" +"Rts information file" "RTS" +"S-Record file" "MOT" +"Stack information file" "SNI" +"TD include object file" "RTI" +[FILE_GROUPS] +"Absolute file" "BIN" "NONE" "" +"Assembly include file" "TEXT" "EDITOR" "" +"Assembly list file" "TEXT" "EDITOR" "" +"Assembly source file" "TEXT" "EDITOR" "" +"Binary file" "BIN" "NONE" "" +"C header file" "TEXT" "EDITOR" "" +"C source file" "TEXT" "EDITOR" "" +"C++ header file" "TEXT" "EDITOR" "" +"C++ source file" "TEXT" "EDITOR" "" +"CPU information file" "BIN" "NONE" "" +"Calling information file" "BIN" "NONE" "" +"Configuration file" "TEXT" "EDITOR" "" +"Debug information file" "BIN" "NONE" "" +"Hex file" "TEXT" "EDITOR" "" +"Library file" "BIN" "NONE" "" +"Library information file" "TEXT" "EDITOR" "" +"Linkage map file" "TEXT" "EDITOR" "" +"Linkage symbol file" "TEXT" "EDITOR" "" +"Object file" "BIN" "NONE" "" +"Optimize map file" "BIN" "NONE" "" +"Preprocessed C source file" "TEXT" "EDITOR" "" +"Preprocessed C++ source file" "TEXT" "EDITOR" "" +"Relocatable file" "BIN" "NONE" "" +"Rts information file" "BIN" "NONE" "" +"S-Record file" "TEXT" "EDITOR" "" +"Stack information file" "BIN" "NONE" "" +"TD include object file" "BIN" "NONE" "" +[ASSOCIATED_APPLICATIONS] +[TOOLCHAIN_PHASE] +"Renesas OptLinker" +"Renesas RX Assembler" +"Renesas RX C/C++ Compiler" +"Renesas RX C/C++ Library Generator" +"Renesas RX Configurator" +[UTILITY_PHASE] +[CUSTOM_PHASES] +[CUSTOM_PHASE_INPUT_GROUP] +[CUSTOM_PHASE_OUTPUT_SYNTAX] +[BUILD_ORDER] +"Renesas RX C/C++ Library Generator" 1 +"Renesas RX C/C++ Compiler" 1 +"Renesas RX Assembler" 1 +"Renesas OptLinker" 1 +"Renesas RX Configurator" 0 +[BUILD_PHASE_DETAILS] +"Renesas OptLinker" "Object file|Library file|Relocatable file" 0 +"Renesas RX Assembler" "Assembly source file|Linkage symbol file" 1 +"Renesas RX C/C++ Compiler" "C source file|C++ source file" 1 +"Renesas RX C/C++ Library Generator" "" 0 +"Renesas RX Configurator" "Configuration file" 0 +[BUILD_FILE_ORDER_Assembly source file] +"Renesas RX Assembler" 1 +[BUILD_FILE_ORDER_C source file] +"Renesas RX C/C++ Compiler" 1 +[BUILD_FILE_ORDER_C++ source file] +"Renesas RX C/C++ Compiler" 1 +[BUILD_FILE_ORDER_Linkage symbol file] +"Renesas RX Assembler" 1 +[SCRAP] +"Project Generator Setup File" "" +[MAPPINGS] +"Assembly source file" "Renesas RX Assembler" "Renesas RX C/C++ Compiler" +"Library file" "Renesas OptLinker" "Renesas RX C/C++ Library Generator" +"Object file" "Renesas OptLinker" "Renesas RX Assembler" +"Object file" "Renesas OptLinker" "Renesas RX C/C++ Compiler" +[PROJECT_FILES] +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\BlockQ.c" "User" "C source file|Common demo tasks" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\GenQTest.c" "User" "C source file|Common demo tasks" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\IntQueue.c" "User" "C source file|Common demo tasks" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\PollQ.c" "User" "C source file|Common demo tasks" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\QPeek.c" "User" "C source file|Common demo tasks" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\blocktim.c" "User" "C source file|Common demo tasks" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\death.c" "User" "C source file|Common demo tasks" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\flash_timer.c" "User" "C source file|Common demo tasks" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\integer.c" "User" "C source file|Common demo tasks" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\recmutex.c" "User" "C source file|Common demo tasks" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\semtest.c" "User" "C source file|Common demo tasks" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\sp_flop.c" "User" "C source file|Common demo tasks" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\ethernet\FreeTCPIP\apps\httpd\http-strings.c" "User" "C source file|FreeTCP (Based on uIP)|Common" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\ethernet\FreeTCPIP\apps\httpd\httpd-fs.c" "User" "C source file|FreeTCP (Based on uIP)|Common" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\ethernet\FreeTCPIP\apps\httpd\httpd.c" "User" "C source file|FreeTCP (Based on uIP)|Common" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\ethernet\FreeTCPIP\psock.c" "User" "C source file|FreeTCP (Based on uIP)" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\ethernet\FreeTCPIP\timer.c" "User" "C source file|FreeTCP (Based on uIP)" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\ethernet\FreeTCPIP\uip.c" "User" "C source file|FreeTCP (Based on uIP)" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\ethernet\FreeTCPIP\uip_arp.c" "User" "C source file|FreeTCP (Based on uIP)" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\HighFrequencyTimerTest.c" "User" "C source file" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\IntQueueTimer.c" "User" "C source file" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\ParTest.c" "User" "C source file" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\Renesas-Files\dbsct.c" "User" "C source file|Renesas Files" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\Renesas-Files\hwsetup.c" "User" "C source file|Renesas Files" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\Renesas-Files\intprg.c" "User" "C source file|Renesas Files" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\Renesas-Files\lowlvl.src" "User" "C source file|Renesas Files" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\Renesas-Files\lowsrc.c" "User" "C source file|Renesas Files" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\Renesas-Files\resetprg.c" "User" "C source file|Renesas Files" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\Renesas-Files\sbrk.c" "User" "C source file|Renesas Files" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\Renesas-Files\vecttbl.c" "User" "C source file|Renesas Files" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\main-blinky.c" "User" "C source file" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\main-full.c" "User" "C source file" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\uIP_Task.c" "User" "C source file" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\webserver\EMAC.c" "User" "C source file|FreeTCP (Based on uIP)|Port Specific" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\webserver\httpd-cgi.c" "User" "C source file|FreeTCP (Based on uIP)|Port Specific" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\webserver\phy.c" "User" "C source file|FreeTCP (Based on uIP)|Port Specific" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\list.c" "User" "C source file|FreeRTOS" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\MemMang\heap_2.c" "User" "C source file|FreeRTOS|Portable layer" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX600\port.c" "User" "C source file|FreeRTOS|Portable layer" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX600\port_asm.src" "User" "Assembly source file" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\queue.c" "User" "C source file|FreeRTOS" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\tasks.c" "User" "C source file|FreeRTOS" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\timers.c" "User" "C source file|FreeRTOS" 2 +[FOLDER] +"Assembly source file" "Assembly source file" +"C header file" "C header file" +"C source file" "C source file" +"C source file|Common demo tasks" "" +"C source file|FreeRTOS" "" +"C source file|FreeRTOS|Portable layer" "" +"C source file|FreeTCP (Based on uIP)" "" +"C source file|FreeTCP (Based on uIP)|Common" "" +"C source file|FreeTCP (Based on uIP)|Port Specific" "" +"C source file|Renesas Files" "" +[GENERAL_DATA_PROJECT] +"FDT_AutoConnect" "0" +"FDT_BaseDevice" "" +"FDT_BaudRate" "" +"FDT_BlockLockConnect" "1" +"FDT_BlockLockDisconnect" "1" +"FDT_BootMode" "FALSE" +"FDT_CKM" "0" +"FDT_CKP" "0" +"FDT_ClockMode" "0" +"FDT_ClockSync" "00000000" +"FDT_Comments" "" +"FDT_ConnectionResetSuppression" "FFFFFFFF" +"FDT_Device" "" +"FDT_DoReadbackVerification" "" +"FDT_DoSecurityProtection" "" +"FDT_DoSecurityProtectionLevel" "" +"FDT_Frequency" "0.0000" +"FDT_Interface" "" +"FDT_InternalClock" "FALSE" +"FDT_KernelPath" "" +"FDT_KernelResident" "FALSE" +"FDT_McuId" "0" +"FDT_MessageLevel" "0" +"FDT_PinOutputs" "00000000" +"FDT_PinSettings" "00000000" +"FDT_Port" "" +"FDT_Protection" "0" +"FDT_Protocol" "" +"FDT_ReinterrogateGenericDevice" "" +"FDT_ResetOnDisconnect" "" +"FDT_ResetPinOutputs" "00000000" +"FDT_ResetPinSettings" "00000000" +"FDT_SerNumConfigString" "" +"FDT_SerNumDllFunction" "" +"FDT_SerNumDllLocation" "" +"FDT_SerNumEnabled" "FALSE" +"FDT_SerNumMemArea" "" +"FDT_UPMPinSettings" "00000000" +"FDT_UseDefaultBaudRate" "FALSE" +"FDT_UseInternalKernel" "TRUE" +"FDT_UserPinOutputs" "00000000" +"FDT_UserPinSettings" "00000000" +"MAKEGEN_GENERATE_MAKEFILE_FOR" "0" +"MAKEGEN_MAKEFILE_FORMAT" "2" +"MAKEGEN_MAKEFILE_RELATIVITY" "1" +"MAKEGEN_SCAN_DEPENDENCIES_WHILST_BUILDING_MAKEFILE" "1" +"MAKEGEN_USE_STATIC_SUBCOMMAND_FILES" "1" +"USE_CUSTOM_LINKAGE_ORDER" "0" +[ON_DEMAND_COMPONENTS_LOADED] +[SYNC_SESSION_NAMES] +[SESSIONS] +"RDK_Jlink" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\RDK_Jlink.hsf" 0 +[GENERAL_DATA_SESSION_RDK_Jlink] +[OPTIONS_Blinky_Renesas OptLinker] +"Single Shot" "0d707bf60640dc10" 5 +[OPTIONS_Blinky_Renesas RX Assembler] +"Assembly source file" "00bd89f6bf10dc10" 4 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\Renesas-Files\lowlvl.src" "00bd89f6bf10dc10" 4 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX600\port_asm.src" "00bd89f6bf10dc10" 4 +"Linkage symbol file" "00bd89f6bf10dc10" 4 +[OPTIONS_Blinky_Renesas RX C/C++ Compiler] +"C source file" "00a669f6bf10dc10" 2 +"C++ source file" "00a669f6bf10dc10" 3 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\BlockQ.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\GenQTest.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\IntQueue.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\PollQ.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\QPeek.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\blocktim.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\death.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\flash_timer.c" "0cad76d2f830dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\integer.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\recmutex.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\semtest.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\sp_flop.c" "0a14c617f440dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\ethernet\FreeTCPIP\apps\httpd\http-strings.c" "005cfa364540dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\ethernet\FreeTCPIP\apps\httpd\httpd-fs.c" "005cfa364540dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\ethernet\FreeTCPIP\apps\httpd\httpd.c" "005cfa364540dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\ethernet\FreeTCPIP\psock.c" "09a1534f3540dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\ethernet\FreeTCPIP\timer.c" "09a1534f3540dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\ethernet\FreeTCPIP\uip.c" "09a1534f3540dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\ethernet\FreeTCPIP\uip_arp.c" "09a1534f3540dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\HighFrequencyTimerTest.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\IntQueueTimer.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\ParTest.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\Renesas-Files\dbsct.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\Renesas-Files\hwsetup.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\Renesas-Files\intprg.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\Renesas-Files\lowsrc.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\Renesas-Files\resetprg.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\Renesas-Files\sbrk.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\Renesas-Files\vecttbl.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\main-blinky.c" "0ae1d1e2b530dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\main-full.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\uIP_Task.c" "0dfd884a4540dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\webserver\EMAC.c" "06576eb24540dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\webserver\httpd-cgi.c" "06576eb24540dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\webserver\phy.c" "06576eb24540dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\list.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\MemMang\heap_2.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX600\port.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\queue.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\tasks.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\timers.c" "00a669f6bf10dc10" 2 +[OPTIONS_Blinky_Renesas RX C/C++ Library Generator] +"Single Shot" "00a669f6bf10dc10" 1 +[OPTIONS_Blinky_Renesas RX Configurator] +"Single Shot" "0dfd884a4540dc10" 6 +[OPTIONS_Blinky] +"" 0 +"[V|VERSION|1] [B|COMMAND|1] [S|SPEC|UITRON4] [S|OUTPUTPATH|^"$(CONFIGDIR)^"] [S|CPU|RX600] [S|ENDIAN|LITTLE] [S|FINT_REGISTER|0]" 6 +"[V|VERSION|1] [B|SJIS|1] [B|DEBUG|1] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).obj^"] [S|CPU|RX600] [S|BASE|00000000=NONE] [B|SKIPDEPENDENCY|1] +" 4 +"[V|VERSION|1] [S|LANG|CPP] [B|SJIS|1] [S|INCLUDE|^"$(PROJDIR)\..\..\..\Source\portable\Renesas\RX600^"|^"$(PROJDIR)\..\..\..\Source\include^"|^"$(PROJDIR)\.^"|^"$(PROJDIR)\..\..\include^"|^"$(PROJDIR)\..\..\Common\include^"|^"$(PROJDIR)\.\include^"|^"$(PROJDIR)\webserver^"] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).obj^"] [B|DEBUG|1] [S|OPTIMIZE|0] [B|SIZE|1] [B|MAP|0] [I|INLINE|100] [I|LOOP|2] [S|MISRA2004_CHECK_RULE|ALL] [S|MISRA2004_RULE|1.1|3.4|4.1|5.2|5.3|5.4|5.5|5.6|5.7|6.1|6.2|6.3|6.4|6.5|7.1|8.1|8.2|8.3|8.5|8.6|8.7|8.8|8.11|8.12|9.2|9.3|10.1|10.2|10.3|10.4|10.5|10.6|11.1|11.2|11.3|11.4|11.5|12.1|12.2|12.3|12.4|12.5|12.6|12.7|12.8|12.9|12.10|12.11|12.12|12.13|13.1|13.2|13.3|13.4|13.7|14.1|14.2|14.3|14.4|14.5|14.6|14.7|14.8|14.9|14.10|15.1|15.2|15.3|15.4|15.5|16.1|16.2|16.3|16.4|16.5|16.6|16.8|16.9|17.3|17.4|17.5|17.6|18.1|18.2|18.4|19.1|20.2|20.4|20.5|20.7|20.8|20.9|20.10|20.11|20.12] [S|MISRA1998_CHECK_RULE|ALL] [S|MISRA1998_RULE|1|5|8|12|13|14|17|18|19|20|21|22|24|28|29|31|32|33|34|35|36|37|38|39|40|42|43|44|45|46|48|49|50|51|53|54|55|56|57|58|59|60|61|62|63|64|65|68|69|70|71|72|73|74|75|76|77|78|79|80|82|83|84|85|99|101|102|103|104|105|106|108|110|111|112|113|115|118|119|121|122|123|124|125|126|127] [S|MISRA_GROUP_FILE_PATH|^"$(PROJDIR)\$(PROJECTNAME).rde^"] [S|CPU|RX600] [S|BASE|00000000=NONE] [B|SKIPDEPENDENCY|1] [N|DEPENDSCAN|1] +" 3 +"[V|VERSION|1] [S|LANG|C] [B|SJIS|1] [S|INCLUDE|^"$(PROJDIR)\..\..\..\Source\portable\Renesas\RX600^"|^"$(PROJDIR)\..\..\..\Source\include^"|^"$(PROJDIR)\.^"|^"$(PROJDIR)\..\..\include^"|^"$(PROJDIR)\..\..\Common\include^"|^"$(PROJDIR)\.\include^"|^"$(PROJDIR)\webserver^"] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).obj^"] [B|DEBUG|1] [S|OPTIMIZE|0] [B|SIZE|1] [B|MAP|0] [I|INLINE|100] [I|LOOP|2] [S|MISRA2004_CHECK_RULE|ALL] [S|MISRA2004_RULE|1.1|3.4|4.1|5.2|5.3|5.4|5.5|5.6|5.7|6.1|6.2|6.3|6.4|6.5|7.1|8.1|8.2|8.3|8.5|8.6|8.7|8.8|8.11|8.12|9.2|9.3|10.1|10.2|10.3|10.4|10.5|10.6|11.1|11.2|11.3|11.4|11.5|12.1|12.2|12.3|12.4|12.5|12.6|12.7|12.8|12.9|12.10|12.11|12.12|12.13|13.1|13.2|13.3|13.4|13.7|14.1|14.2|14.3|14.4|14.5|14.6|14.7|14.8|14.9|14.10|15.1|15.2|15.3|15.4|15.5|16.1|16.2|16.3|16.4|16.5|16.6|16.8|16.9|17.3|17.4|17.5|17.6|18.1|18.2|18.4|19.1|20.2|20.4|20.5|20.7|20.8|20.9|20.10|20.11|20.12] [S|MISRA1998_CHECK_RULE|ALL] [S|MISRA1998_RULE|1|5|8|12|13|14|17|18|19|20|21|22|24|28|29|31|32|33|34|35|36|37|38|39|40|42|43|44|45|46|48|49|50|51|53|54|55|56|57|58|59|60|61|62|63|64|65|68|69|70|71|72|73|74|75|76|77|78|79|80|82|83|84|85|99|101|102|103|104|105|106|108|110|111|112|113|115|118|119|121|122|123|124|125|126|127] [S|MISRA_GROUP_FILE_PATH|^"$(PROJDIR)\$(PROJECTNAME).rde^"] [S|CPU|RX600] [S|BASE|00000000=NONE] [B|SKIPDEPENDENCY|1] [N|DEPENDSCAN|1] +" 2 +"[V|VERSION|1] [S|MODE|BUILD/CHANGED] [S|EXISTOUTPUTPATH|^"$(CONFIGDIR)\$(PROJECTNAME).lib^"] [B|RUNTIME|1] [B|STDIO|1] [B|STDLIB|1] [B|STRING|1] [B|NOFLOAT|1] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(PROJECTNAME).lib^"] [B|SIZE|1] [I|INLINE|100] [I|LOOP|2] [S|CPU|RX600] [S|BASE|00000000=NONE] [B|SKIPDEPENDENCY|1] +" 1 +"[V|VERSION|6] [S|FORM|STYPE] [S|BYTE_COUNT_VALUE|FF] [B|DEBUG|1] [S|ROM|(D,R)|(D_1,R_1)|(D_2,R_2)] [S|CRC|NONE|DEFAULT|00000000] [B|LIST|1] [S|LIST|^"$(CONFIGDIR)\$(PROJECTNAME).map^"] [S|SHOW|METHODCUSTOM|] [S|OUTPUT|^"$(CONFIGDIR)\$(PROJECTNAME).mot^"] [I|SPACE|^"FF^"] [B|OPTIMIZE|0] [S|START|B_1,R_1,B_2,R_2,B,R,SU,SI(01000)|PResetPRG(0FFF80000)|C_1,C_2,C,L*,C$*,D*,P,PIntPRG,W*(0FFF81000)|FIXEDVECT(0FFFFFFD0)] [S|MEMORY|HIGH] [B|SKIPDEPENDENCY|1] +" 5 +[EXCLUDED_FILES_Blinky] +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\ethernet\FreeTCPIP\apps\httpd\http-strings.c" +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\ethernet\FreeTCPIP\apps\httpd\httpd-fs.c" +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\ethernet\FreeTCPIP\apps\httpd\httpd.c" +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\ethernet\FreeTCPIP\psock.c" +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\ethernet\FreeTCPIP\timer.c" +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\ethernet\FreeTCPIP\uip.c" +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\ethernet\FreeTCPIP\uip_arp.c" +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\BlockQ.c" +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\blocktim.c" +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\death.c" +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\GenQTest.c" +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\integer.c" +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\IntQueue.c" +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\PollQ.c" +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\QPeek.c" +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\recmutex.c" +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\semtest.c" +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\sp_flop.c" +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\HighFrequencyTimerTest.c" +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\IntQueueTimer.c" +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\main-full.c" +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\uIP_Task.c" +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\webserver\EMAC.c" +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\webserver\httpd-cgi.c" +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\webserver\phy.c" +[LINKAGE_ORDER_Blinky] +[GENERAL_DATA_CONFIGURATION_Blinky] +[OPTIONS_Debug_Renesas OptLinker] +"Single Shot" "013a3de15540dc10" 5 +[OPTIONS_Debug_Renesas RX Assembler] +"Assembly source file" "00a669f6bf10dc10" 4 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\Renesas-Files\lowlvl.src" "00a669f6bf10dc10" 4 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX600\port_asm.src" "00a669f6bf10dc10" 4 +"Linkage symbol file" "00a669f6bf10dc10" 4 +[OPTIONS_Debug_Renesas RX C/C++ Compiler] +"C source file" "00a669f6bf10dc10" 2 +"C++ source file" "00a669f6bf10dc10" 3 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\BlockQ.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\GenQTest.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\IntQueue.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\PollQ.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\QPeek.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\blocktim.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\death.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\flash_timer.c" "0cad76d2f830dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\integer.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\recmutex.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\semtest.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\sp_flop.c" "0a14c617f440dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\ethernet\FreeTCPIP\apps\httpd\http-strings.c" "005cfa364540dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\ethernet\FreeTCPIP\apps\httpd\httpd-fs.c" "005cfa364540dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\ethernet\FreeTCPIP\apps\httpd\httpd.c" "005cfa364540dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\ethernet\FreeTCPIP\psock.c" "09a1534f3540dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\ethernet\FreeTCPIP\timer.c" "09a1534f3540dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\ethernet\FreeTCPIP\uip.c" "09a1534f3540dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\ethernet\FreeTCPIP\uip_arp.c" "09a1534f3540dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\HighFrequencyTimerTest.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\IntQueueTimer.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\ParTest.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\Renesas-Files\dbsct.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\Renesas-Files\hwsetup.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\Renesas-Files\intprg.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\Renesas-Files\lowsrc.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\Renesas-Files\resetprg.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\Renesas-Files\sbrk.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\Renesas-Files\vecttbl.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\main-blinky.c" "0ae1d1e2b530dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\main-full.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\uIP_Task.c" "0dfd884a4540dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\webserver\EMAC.c" "06576eb24540dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\webserver\httpd-cgi.c" "06576eb24540dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\webserver\phy.c" "06576eb24540dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\list.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\MemMang\heap_2.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX600\port.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\queue.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\tasks.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\timers.c" "00a669f6bf10dc10" 2 +[OPTIONS_Debug_Renesas RX C/C++ Library Generator] +"Single Shot" "00a669f6bf10dc10" 1 +[OPTIONS_Debug_Renesas RX Configurator] +"Single Shot" "0dfd884a4540dc10" 6 +[OPTIONS_Debug] +"" 0 +"[V|VERSION|1] [B|COMMAND|1] [S|SPEC|UITRON4] [S|OUTPUTPATH|^"$(CONFIGDIR)^"] [S|CPU|RX600] [S|ENDIAN|LITTLE] [S|FINT_REGISTER|0]" 6 +"[V|VERSION|1] [B|SJIS|1] [B|DEBUG|1] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).obj^"] [S|CPU|RX600] [S|BASE|00000000=NONE] +" 4 +"[V|VERSION|1] [S|LANG|C99] [B|SJIS|1] [S|INCLUDE|^"$(PROJDIR)\..\..\..\Source\portable\Renesas\RX600^"|^"$(PROJDIR)\..\..\..\Source\include^"|^"$(PROJDIR)\.^"|^"$(PROJDIR)\..\..\include^"|^"$(PROJDIR)\..\..\Common\include^"|^"$(PROJDIR)\.\include^"|^"$(PROJDIR)\..\..\Common\ethernet\FreeTCPIP^"|^"$(PROJDIR)\webserver^"] [S|CHANGE_MESSAGE|INFORMATION|] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).obj^"] [B|DEBUG|1] [S|OPTIMIZE|0] [B|SIZE|1] [B|MAP|0] [I|INLINE|100] [I|LOOP|2] [S|MISRA2004_CHECK_RULE|ALL] [S|MISRA2004_RULE|1.1|3.4|4.1|5.2|5.3|5.4|5.5|5.6|5.7|6.1|6.2|6.3|6.4|6.5|7.1|8.1|8.2|8.3|8.5|8.6|8.7|8.8|8.11|8.12|9.2|9.3|10.1|10.2|10.3|10.4|10.5|10.6|11.1|11.2|11.3|11.4|11.5|12.1|12.2|12.3|12.4|12.5|12.6|12.7|12.8|12.9|12.10|12.11|12.12|12.13|13.1|13.2|13.3|13.4|13.7|14.1|14.2|14.3|14.4|14.5|14.6|14.7|14.8|14.9|14.10|15.1|15.2|15.3|15.4|15.5|16.1|16.2|16.3|16.4|16.5|16.6|16.8|16.9|17.3|17.4|17.5|17.6|18.1|18.2|18.4|19.1|20.2|20.4|20.5|20.7|20.8|20.9|20.10|20.11|20.12] [S|MISRA1998_CHECK_RULE|ALL] [S|MISRA1998_RULE|1|5|8|12|13|14|17|18|19|20|21|22|24|28|29|31|32|33|34|35|36|37|38|39|40|42|43|44|45|46|48|49|50|51|53|54|55|56|57|58|59|60|61|62|63|64|65|68|69|70|71|72|73|74|75|76|77|78|79|80|82|83|84|85|99|101|102|103|104|105|106|108|110|111|112|113|115|118|119|121|122|123|124|125|126|127] [S|MISRA_GROUP_FILE_PATH|^"$(PROJDIR)\$(PROJECTNAME).rde^"] [S|CPU|RX600] [S|BASE|00000000=NONE] +" 2 +"[V|VERSION|1] [S|LANG|CPP] [B|SJIS|1] [S|INCLUDE|^"$(PROJDIR)\..\..\..\Source\portable\Renesas\RX600^"|^"$(PROJDIR)\..\..\..\Source\include^"|^"$(PROJDIR)\.^"|^"$(PROJDIR)\..\..\include^"|^"$(PROJDIR)\..\..\Common\include^"|^"$(PROJDIR)\.\include^"|^"$(PROJDIR)\..\..\Common\ethernet\FreeTCPIP^"|^"$(PROJDIR)\webserver^"] [S|CHANGE_MESSAGE|INFORMATION|] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).obj^"] [B|DEBUG|1] [S|OPTIMIZE|0] [B|SIZE|1] [B|MAP|0] [I|INLINE|100] [I|LOOP|2] [S|MISRA2004_CHECK_RULE|ALL] [S|MISRA2004_RULE|1.1|3.4|4.1|5.2|5.3|5.4|5.5|5.6|5.7|6.1|6.2|6.3|6.4|6.5|7.1|8.1|8.2|8.3|8.5|8.6|8.7|8.8|8.11|8.12|9.2|9.3|10.1|10.2|10.3|10.4|10.5|10.6|11.1|11.2|11.3|11.4|11.5|12.1|12.2|12.3|12.4|12.5|12.6|12.7|12.8|12.9|12.10|12.11|12.12|12.13|13.1|13.2|13.3|13.4|13.7|14.1|14.2|14.3|14.4|14.5|14.6|14.7|14.8|14.9|14.10|15.1|15.2|15.3|15.4|15.5|16.1|16.2|16.3|16.4|16.5|16.6|16.8|16.9|17.3|17.4|17.5|17.6|18.1|18.2|18.4|19.1|20.2|20.4|20.5|20.7|20.8|20.9|20.10|20.11|20.12] [S|MISRA1998_CHECK_RULE|ALL] [S|MISRA1998_RULE|1|5|8|12|13|14|17|18|19|20|21|22|24|28|29|31|32|33|34|35|36|37|38|39|40|42|43|44|45|46|48|49|50|51|53|54|55|56|57|58|59|60|61|62|63|64|65|68|69|70|71|72|73|74|75|76|77|78|79|80|82|83|84|85|99|101|102|103|104|105|106|108|110|111|112|113|115|118|119|121|122|123|124|125|126|127] [S|MISRA_GROUP_FILE_PATH|^"$(PROJDIR)\$(PROJECTNAME).rde^"] [S|CPU|RX600] [S|BASE|00000000=NONE] +" 3 +"[V|VERSION|1] [S|MODE|BUILD/CHANGED] [S|EXISTOUTPUTPATH|^"$(CONFIGDIR)\$(PROJECTNAME).lib^"] [B|RUNTIME|1] [B|MATH|1] [B|STDIO|1] [B|STDLIB|1] [B|STRING|1] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(PROJECTNAME).lib^"] [B|SIZE|1] [I|INLINE|100] [I|LOOP|2] [S|CPU|RX600] [S|BASE|00000000=NONE] +" 1 +"[V|VERSION|6] [S|PRELINK|SKIP] [S|FORM|STYPE] [S|BYTE_COUNT_VALUE|FF] [B|DEBUG|1] [S|ROM|(D,R)|(D_1,R_1)|(D_2,R_2)] [S|CRC|NONE|DEFAULT|00000000] [B|LIST|1] [S|LIST|^"$(CONFIGDIR)\$(PROJECTNAME).map^"] [S|SHOW|METHODALL|SYMBOL|REFERENCE|XREFERENCE] [S|OUTPUT|^"$(CONFIGDIR)\$(PROJECTNAME).mot^"] [I|SPACE|^"FF^"] [B|OPTIMIZE|0] [S|START|B_RX_DESC,B_TX_DESC,B_ETHERNET_BUFFERS,B_1,R_1,B_2,R_2,B,R,SU,SI(01000)|PResetPRG(0FFF80000)|C_1,C_2,C,L*,C$*,D*,P,PIntPRG,W*(0FFF81000)|FIXEDVECT(0FFFFFFD0)] [S|MEMORY|HIGH] +" 5 +[EXCLUDED_FILES_Debug] +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\main-blinky.c" +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\Renesas-Files\lowlvl.src" +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\Renesas-Files\lowsrc.c" +[LINKAGE_ORDER_Debug] +[GENERAL_DATA_CONFIGURATION_Debug] +[OPTIONS_Debug_with_optimisation_Renesas OptLinker] +"Single Shot" "05011f85f540dc10" 5 +[OPTIONS_Debug_with_optimisation_Renesas RX Assembler] +"Assembly source file" "0f42b9f6bf10dc10" 4 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\Renesas-Files\lowlvl.src" "0f42b9f6bf10dc10" 4 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX600\port_asm.src" "0f42b9f6bf10dc10" 4 +"Linkage symbol file" "0f42b9f6bf10dc10" 4 +[OPTIONS_Debug_with_optimisation_Renesas RX C/C++ Compiler] +"C source file" "0f42b9f6bf10dc10" 2 +"C++ source file" "0f42b9f6bf10dc10" 3 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\BlockQ.c" "0f42b9f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\GenQTest.c" "0f42b9f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\IntQueue.c" "0f42b9f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\PollQ.c" "0f42b9f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\QPeek.c" "0f42b9f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\blocktim.c" "0f42b9f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\death.c" "0f42b9f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\flash_timer.c" "0cad76d2f830dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\integer.c" "0f42b9f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\recmutex.c" "0f42b9f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\semtest.c" "0f42b9f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\sp_flop.c" "0a14c617f440dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\ethernet\FreeTCPIP\apps\httpd\http-strings.c" "005cfa364540dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\ethernet\FreeTCPIP\apps\httpd\httpd-fs.c" "005cfa364540dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\ethernet\FreeTCPIP\apps\httpd\httpd.c" "005cfa364540dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\ethernet\FreeTCPIP\psock.c" "09a1534f3540dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\ethernet\FreeTCPIP\timer.c" "09a1534f3540dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\ethernet\FreeTCPIP\uip.c" "09a1534f3540dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\ethernet\FreeTCPIP\uip_arp.c" "09a1534f3540dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\HighFrequencyTimerTest.c" "0f42b9f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\IntQueueTimer.c" "0f42b9f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\ParTest.c" "0f42b9f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\Renesas-Files\dbsct.c" "0f42b9f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\Renesas-Files\hwsetup.c" "0f42b9f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\Renesas-Files\intprg.c" "0f42b9f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\Renesas-Files\lowsrc.c" "0f42b9f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\Renesas-Files\resetprg.c" "0f42b9f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\Renesas-Files\sbrk.c" "0f42b9f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\Renesas-Files\vecttbl.c" "0f42b9f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\main-blinky.c" "0ae1d1e2b530dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\main-full.c" "0f42b9f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\uIP_Task.c" "0dfd884a4540dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\webserver\EMAC.c" "06576eb24540dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\webserver\httpd-cgi.c" "06576eb24540dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\webserver\phy.c" "06576eb24540dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\list.c" "0f42b9f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\MemMang\heap_2.c" "0f42b9f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX600\port.c" "0f42b9f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\queue.c" "0f42b9f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\tasks.c" "0f42b9f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\timers.c" "0f42b9f6bf10dc10" 2 +[OPTIONS_Debug_with_optimisation_Renesas RX C/C++ Library Generator] +"Single Shot" "0f42b9f6bf10dc10" 1 +[OPTIONS_Debug_with_optimisation_Renesas RX Configurator] +"Single Shot" "0dfd884a4540dc10" 6 +[OPTIONS_Debug_with_optimisation] +"" 0 +"[V|VERSION|1] [B|COMMAND|1] [S|SPEC|UITRON4] [S|OUTPUTPATH|^"$(CONFIGDIR)^"] [S|CPU|RX600] [S|ENDIAN|LITTLE] [S|FINT_REGISTER|0]" 6 +"[V|VERSION|1] [B|SJIS|1] [B|DEBUG|1] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).obj^"] [S|CPU|RX600] [S|BASE|00000000=NONE] [B|SKIPDEPENDENCY|1] +" 4 +"[V|VERSION|1] [S|LANG|CPP] [B|SJIS|1] [S|INCLUDE|^"$(PROJDIR)\..\..\..\Source\portable\Renesas\RX600^"|^"$(PROJDIR)\..\..\..\Source\include^"|^"$(PROJDIR)\.^"|^"$(PROJDIR)\..\..\include^"|^"$(PROJDIR)\..\..\Common\include^"|^"$(PROJDIR)\.\include^"|^"$(PROJDIR)\..\..\Common\ethernet\FreeTCPIP^"|^"$(PROJDIR)\webserver^"] [S|DEFINE|INCLUDE_HIGH_FREQUENCY_TIMER_TEST=1] [S|CHANGE_MESSAGE|INFORMATION|] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).obj^"] [B|DEBUG|1] [B|LISTFILE|1] [S|LISTFILEPATH|^"$(CONFIGDIR)\$(FILELEAF).lst^"] [S|SHOW|SOURCE|CONDITIONALS|DEFINITIONS|EXPANSIONS] [S|OPTIMIZE|MAX] [B|SIZE|1] [B|MAP|0] [I|INLINE|100] [I|LOOP|2] [B|FPU|0] [S|MISRA2004_CHECK_RULE|ALL] [S|MISRA2004_RULE|1.1|3.4|4.1|5.2|5.3|5.4|5.5|5.6|5.7|6.1|6.2|6.3|6.4|6.5|7.1|8.1|8.2|8.3|8.5|8.6|8.7|8.8|8.11|8.12|9.2|9.3|10.1|10.2|10.3|10.4|10.5|10.6|11.1|11.2|11.3|11.4|11.5|12.1|12.2|12.3|12.4|12.5|12.6|12.7|12.8|12.9|12.10|12.11|12.12|12.13|13.1|13.2|13.3|13.4|13.7|14.1|14.2|14.3|14.4|14.5|14.6|14.7|14.8|14.9|14.10|15.1|15.2|15.3|15.4|15.5|16.1|16.2|16.3|16.4|16.5|16.6|16.8|16.9|17.3|17.4|17.5|17.6|18.1|18.2|18.4|19.1|20.2|20.4|20.5|20.7|20.8|20.9|20.10|20.11|20.12] [S|MISRA1998_CHECK_RULE|ALL] [S|MISRA1998_RULE|1|5|8|12|13|14|17|18|19|20|21|22|24|28|29|31|32|33|34|35|36|37|38|39|40|42|43|44|45|46|48|49|50|51|53|54|55|56|57|58|59|60|61|62|63|64|65|68|69|70|71|72|73|74|75|76|77|78|79|80|82|83|84|85|99|101|102|103|104|105|106|108|110|111|112|113|115|118|119|121|122|123|124|125|126|127] [S|MISRA_GROUP_FILE_PATH|^"$(PROJDIR)\$(PROJECTNAME).rde^"] [S|CPU|RX600] [S|BASE|00000000=NONE] [I|PID|16] [B|SKIPDEPENDENCY|1] [N|DEPENDSCAN|1] +" 3 +"[V|VERSION|1] [S|LANG|C] [B|SJIS|1] [S|INCLUDE|^"$(PROJDIR)\..\..\..\Source\portable\Renesas\RX600^"|^"$(PROJDIR)\..\..\..\Source\include^"|^"$(PROJDIR)\.^"|^"$(PROJDIR)\..\..\include^"|^"$(PROJDIR)\..\..\Common\include^"|^"$(PROJDIR)\.\include^"|^"$(PROJDIR)\..\..\Common\ethernet\FreeTCPIP^"|^"$(PROJDIR)\webserver^"] [S|DEFINE|INCLUDE_HIGH_FREQUENCY_TIMER_TEST=1] [S|CHANGE_MESSAGE|INFORMATION|] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).obj^"] [B|DEBUG|1] [B|LISTFILE|1] [S|LISTFILEPATH|^"$(CONFIGDIR)\$(FILELEAF).lst^"] [S|SHOW|SOURCE|CONDITIONALS|DEFINITIONS|EXPANSIONS] [S|OPTIMIZE|MAX] [B|SIZE|1] [B|MAP|0] [I|INLINE|100] [I|LOOP|2] [B|FPU|0] [S|MISRA2004_CHECK_RULE|ALL] [S|MISRA2004_RULE|1.1|3.4|4.1|5.2|5.3|5.4|5.5|5.6|5.7|6.1|6.2|6.3|6.4|6.5|7.1|8.1|8.2|8.3|8.5|8.6|8.7|8.8|8.11|8.12|9.2|9.3|10.1|10.2|10.3|10.4|10.5|10.6|11.1|11.2|11.3|11.4|11.5|12.1|12.2|12.3|12.4|12.5|12.6|12.7|12.8|12.9|12.10|12.11|12.12|12.13|13.1|13.2|13.3|13.4|13.7|14.1|14.2|14.3|14.4|14.5|14.6|14.7|14.8|14.9|14.10|15.1|15.2|15.3|15.4|15.5|16.1|16.2|16.3|16.4|16.5|16.6|16.8|16.9|17.3|17.4|17.5|17.6|18.1|18.2|18.4|19.1|20.2|20.4|20.5|20.7|20.8|20.9|20.10|20.11|20.12] [S|MISRA1998_CHECK_RULE|ALL] [S|MISRA1998_RULE|1|5|8|12|13|14|17|18|19|20|21|22|24|28|29|31|32|33|34|35|36|37|38|39|40|42|43|44|45|46|48|49|50|51|53|54|55|56|57|58|59|60|61|62|63|64|65|68|69|70|71|72|73|74|75|76|77|78|79|80|82|83|84|85|99|101|102|103|104|105|106|108|110|111|112|113|115|118|119|121|122|123|124|125|126|127] [S|MISRA_GROUP_FILE_PATH|^"$(PROJDIR)\$(PROJECTNAME).rde^"] [S|CPU|RX600] [S|BASE|00000000=NONE] [I|PID|16] [B|SKIPDEPENDENCY|1] [N|DEPENDSCAN|1] +" 2 +"[V|VERSION|1] [S|MODE|BUILD/CHANGED] [S|EXISTOUTPUTPATH|^"$(CONFIGDIR)\$(PROJECTNAME).lib^"] [B|RUNTIME|1] [B|MATH|1] [B|STDIO|1] [B|STDLIB|1] [B|STRING|1] [B|NOFLOAT|1] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(PROJECTNAME).lib^"] [B|SIZE|1] [I|INLINE|100] [I|LOOP|2] [S|CPU|RX600] [S|BASE|00000000=NONE] [I|PID|16] [B|SKIPDEPENDENCY|1] +" 1 +"[V|VERSION|6] [S|FORM|STYPE] [S|BYTE_COUNT_VALUE|FF] [B|DEBUG|1] [S|ROM|(D,R)|(D_1,R_1)|(D_2,R_2)] [S|CRC|NONE|DEFAULT|00000000] [B|LIST|1] [S|LIST|^"$(CONFIGDIR)\$(PROJECTNAME).map^"] [S|SHOW|METHODCUSTOM|] [S|OUTPUT|^"$(CONFIGDIR)\$(PROJECTNAME).mot^"] [I|SPACE|^"FF^"] [S|OPTIMIZEITEMS|SPEED] [S|START|B_RX_DESC,B_TX_DESC,B_ETHERNET_BUFFERS,B_1,R_1,B_2,R_2,B,R,SU,SI(01000)|PResetPRG(0FFF80000)|C_1,C_2,C,C$*,D*,P,PIntPRG,W*,L(0FFF81000)|FIXEDVECT(0FFFFFFD0)] [S|MEMORY|HIGH] [B|SKIPDEPENDENCY|1] +" 5 +[EXCLUDED_FILES_Debug_with_optimisation] +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RDK_Renesas\RTOSDemo\main-blinky.c" +[LINKAGE_ORDER_Debug_with_optimisation] +[GENERAL_DATA_CONFIGURATION_Debug_with_optimisation] +[GENERAL_DATA_CONFIGURATION_SESSION_Blinky_RDK_Jlink] +[SESSION_DATA_CONFIGURATION_SESSION_Blinky_RDK_Jlink] +"MEMORY_MAPPING_OPTIONS" "" +[GENERAL_DATA_CONFIGURATION_SESSION_Debug_RDK_Jlink] +[SESSION_DATA_CONFIGURATION_SESSION_Debug_RDK_Jlink] +"MEMORY_MAPPING_OPTIONS" "" +[GENERAL_DATA_CONFIGURATION_SESSION_Debug_with_optimisation_RDK_Jlink] +[SESSION_DATA_CONFIGURATION_SESSION_Debug_with_optimisation_RDK_Jlink] +"MEMORY_MAPPING_OPTIONS" "" +[EXT_DEBUGGER_INFO] +0 "" "" "" "" +[END] diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/RTOSDemo.nav b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/RTOSDemo.nav new file mode 100644 index 0000000000000000000000000000000000000000..4e53974f7b7cce8856de33e6b9f738107b35ff98 GIT binary patch literal 343934 zcmcG12b^42b+@s))w^ujW?h-F4a|FQW_EWl#?w~&tlgRM%yr)!0i0eXhmcDt+GGXiVg(5EpfU&jj_`%ZS=c-B(`DXy7w~4uS_JYxPR( zjgl;wqf(;^194T&B^?w8g(`JIxEe7ZL>vS4skB$}%Z1{YUn(}ni`hc4+GtE`3ajcs zaNVB-1Z?lppiGeM?nYzEub?tl2`JEPdV9DBgqGSlBA-MlI#l68#o#D6f+~Z>Dzg z(g9yMjLVvb|Y{lo(^`dF$)^})`uNJfQhf55=zgQki4*FcJ zrlijhUp$qcaHQ|xK9L(Ut;*64pGVTl^bmn+3m_Mstw>a8JwncE})3IOvIOxIv( zi0{--zDcTVP_bT}D&_H=$J2fcX8c0Y45ik0FqoT(wx4IDM}K*{L9RPZewRh6LK4%TJta6#VI! zM!X}a?H)#qRf}L$%AYpX%)%YK@BDgpVxl~g%}o^1>Z>RG(%qWrC-4&`==|CZaG_kP zH*z#(tKkF9)GXLxz$#TA%uXvL51bVVPAV8UewI<`PCrkB-x(~|UVu@gsbXWISUOQ3 zFG*bY0f_qF@Jj_hpRJdxbqPu8)`}R53#72o;AbTb$OyG@@N3Lu{d!sAO7dyG(5RP{ z5zJ)8GS`9o7U$02Uz(b1)U&mdjaso@GZpA#;NIhby^O8ZvzP$Y{CkSCTD%3^!7ggt z-558W*aw5W_A7`|l4@HU`raUPQ?8bOpH%rbVKDkVt;a1^jmO8vSb3^cIH4go2O--T zGBq)Ar-ax|h*G((7?}>qVzjFb12fZcTBvP6k?C&N(yWHQIiD>h-Y=DwzB(Tm^ws^K z^mT7OkJf*}uhlWhLQ{K_R>7M0ZO-TYu{TOzFV7cD6YZmXu{t&(6>Yy-Yw^5ORe95a zSj(*)3OZ4bnaQrT*xIEaiqTmu(?V^g1=+7kCfSXz4KjG6Sgj?TFqlIy#|?wI1amzJ zwugjH)~6DUdfuN-B*SnH;ijB)B;2%<3d6a~&mD<`n|6o8a2}V#8bS+ zk$^@+#jqR(V|H#O4Cawk@9r>Il3>Yd7%WAwR4ojaCRn;21{)^W@KhLVgkU4nVX#qx zjm}6gZfo_5YHNw+$XqGcSgfaKPn8zeS$Zg4Z|hL+{r0gC(vZh3VWFHD%^A~43{E)si`}n;iexM zhD#H_^mHK%H%z$Usj+Cd>0%geg!qk2-4zWt?T6t;iQnk-NeQvjCO#~E z-Ai8)aiO{61fo2^u`jL3KCy8=BC(;b?ynE}>U~uDx(NZD_edYN=Sym|{TT_d+aT&E z{A^+_3M`kHj{?glno(ed#F;3tV&ZHR*jVD61k<)~8qbvw+7{?vU<>Db6j;t#lwew( z+xS@tq2;0ffjoC53M}WYN-!eqreKur$m8GC!Z?8bRkoX7fT3TNOa{V{HfG4qQIt8 z&x`__Nj*z~?LZ%(#{Zv_AbZ;oDCQ)xmm&glPmq8{sMC0n1TjLnK{`(MX%T_Br%OO` z07{x}JX=DL0~mpFrn8Mmu-v_oVENfdu)=*3Olv>fc#ee7+G9jM;SXmQBEfQxmtb1n zNaJ}DLd(O5eZn8fE=7XnmL-^$H`;i*KwK~} zDJwXzdv0a<%);4h4f{Ox*wghi!HTh6t6=%@BBD%VT(cxm>q<&WazwY3MHm?2Y7+ssD(NvT&MzToKB1c%#VAXX z2<`n+v5uI1?PS8l3N6+FpkqRgVL?nVnyMF16>C!xRQG)ZtyGJ}$qJcjTtXl3=#CbMeOYqFq!MvTBI+tIS9Ma|>>F4{ z-Pe)8Rkt=PvDHn2G_O~)`64Wn_b0GFX!buW-k0aAW15?_qrE9#&3{aqIPJ*Ss%oPy zsp+ll>}>=okBync3JbtIu+>#;=OtK>ZTWh2qA^o7yK?sg`?0-ba?H6Vk(ksd6!T^X z7!34FdDC54z{?BSkBg<|^s@?fGas%?ZISP3LwKk$85I_8ZwFT!_s8nSN)~V%181rx z`N9J1oo~*rpX+RL-m6vnE&S~11hy24xv3LR(4Vc{_FaYIMD{dIE75FCo`WTAr$SBD zV$1QHG^@8=9*}f-Vd75x&6-tjDonJEZ++ZczzppZlKHpL*Tg3Wes(@J@U#2rfuFtK zkUnohrsHR%k6Snm@|Du(9Yv=x?w=Ts#i{F~j@Gi+c0jOLh{dmw5Ic&lW^%0r*$xOZ zd9Z}oQX~_8R#Nm>b7^)C8@^*0?P$Bck*(LM1FV_e_!ooi&!SM(V`;6ZRj?@bk__6u zS8{4*En)$W7-01jT6Qguc@gFVH8UHs@COXOj%+P1L(MdD3wwyL;7hZZ_A0{6hWn$z zwFhlx!y>xJfM#GCj5fwI3pxwE3AuRhki566SnBKzZwf)Ft>MifD77=ZMMCX{#LmX> z)({x)0ZlpEqrj$}Z6Pq;0h)5Jhyt5-cZ9(7p72fywiP9<_$8CUW_62u@V#rx_@NRX zgVQ_44-3QT4daJPIP!UWzj#POk<_m3;#eu?G(G~LQra}`1%l( z+9|#v1f@2LZwx`Hed3!!P->g_<`9(HC4NWtS49L)Unv1~Q53_eJ&|D3yF*}lZ}>nY*!2DonBEya7y{E9 z!-pfmrVoX{^tSN6NU-U>Auzoud?W;>_k@o{f=wR{f$1ILt0TdtkB7kYe(*ICY)i3( z0LCNrq{Et5-qdWh@*Mx9yf|Jqau^l)o_-Z;$I0Skxq8~nS!np}nK|zVd8w?I%Lt@R zmCUNig6;!UMI$(0u-H!Ivygk*NSb1u&T8E)-0n7R42gO<3D#l9Azrg!wb<=K#%*KL z_j$?m7|CD?MT;tIlADQwfb_!||g4VM1`&mKnZXK_eOB1m#ZC2l{b6EVn7W-Z4`~LR9 zKr9t;I;U8B@Lt90EkRMc+t6ycT)#$w9c;sB&kXTyKVQ39t8bk+-0tfW0|sFw2kl`* z`^120+7|8#KR;Q)6f!?v{=AlE^*{SM70xHoI z0PGh18413P_+sSweF?D1&rki9G`4K=i@D#HK5nLCd9RVa?!s4iAc5b0;^x~_J+YG& z35Bx?2$x`syZRj*zoPnN;dT>_v(Brh#u8g3cHOYa#I|r)9o)7?flVg1hrt{iP#tr2 zM1f5@JHuhn&AB29Y|_~k26IU_cXt%nq`Nm92Ho5}QDBqqzQHiggq-vf|1#M1$b)R; zCw=GpVKA3q?!Sh?Jc4;YkYIbMzR`@3|CjKeD;1&_==jfz26X+OjRy4m=S#qSM#rpH z^8Tw->vPq!i^;+ z!*B?YqP$Ke5-#W59fs5C>-9*uoI4eU)9LB=M8f5~M@Pcty~jkt6}-oW;W#=wot%$= zqeS(4BjIw%*+{s2^1ev8LUJw)r*q7kk#N(gGm&sJsk0J}ySqxc*eDl$=kZZc?s*Bt zZMW+Cc^q2AsmhBHaMe?O;!*@$9sHgc1qXgl2*qK$3Z;Eg1RV5po*V%O{hX&p!GYgX zLUGtAEBfx!BH*B(`}7Dn=;uB&3J(095sJeWUD5ZR6#)nRyk|$iK|k*~QE=e*GZK#H zgJzG`_Y*&s2BRJzj^X}yBw*c7{7)#5wtaoyc~Gd11jISqpG4wV_npf^InqwD@4K5L z0js`yc_d)ncQ;8u9{a0xWL!^VtCKfMFlBDQut8I*PgV9yz@4;2A%2x=;U)=mfIv9& zPQefU;U^vlu25v8sU|d|a8Bg6u;++wI)PE%26$MBfe>D_H z!4jMXe|H2RiFST13XnLyClpAr5S%Z6Zv-HTcHbWbNF3iM0gabcp?^LcMsi;o0S2ir z34?KQ-Is;KAk=+D1Q>eYmxsYTva$Eda2SMouZ{o%w^xP1k|Z?wns69|CSMl;25zqn zgQZAl>KDRc5Sn^J1Q@uzJ`9#7q3K@?he2riO%Y(=_Qo*SFbN%gb2tn_hu<0j25xT& zgN=~Tk++4zAavyI5n$los~$qoU-X!f+fU@v^r^!{r_s4VS+o8m{oDFdU!KPiF6ohRbEca2%{iWpmMR zxqKK7X>4@9yATbRD@McR$D-j1C&F<01a~PKE>{l2=@Z)3Xt-Q045v?EPe;S$W}@Np zr=sBsrzITsGgGx(qESd-kEopZp|tAlLOP86k%Z(vfqCM8e&XLHoZ;wb+0K7NK(cJ- zKP9A*?cf^DobUXXgyUfX5Q0?`*GuNT2@o%mjuIGs!-V(}X# z&=m@l2Id9{vjZ5U3e{ur;}T>K4p=qX`CaXdHtXQuPT(e{kYtFPe$AmmD}&}r16rM{ z&#s+6(Ojn=rP-zC3$%QT?+u1zfI7EX+2SR+c-uK3AgOk3Fx3%G6V*liN+^UBPU(y?_=^=+nqu*`n_N z@1C@SD;Ad5&*JLJTHP`EyObg&U|e%~?f{H;uhxG6COIo%4w62_Qx%-*M#6QrRGTSQ z?;8k4=3fp4Esv?pSaW5jC4CQZ?wo&|AH?+jF~5quF)||G9AR!HcnyepOmh@W@25k1 z?etC7!g;*r9+kj7FAxDQ#QT7Tcd<6-oh`+$AuN(V z8`*pw$J+U3V?G$p@z^y<1Zza+_@=WHxP6%}?wu%~Ft-O-QdpxhZlB--&wS9WDY4#1 z8g(bGu1Ls3gj6@Gc6_=lq4zSHFC%6J?va4|3CQKb3XUpD$y95rT-*IJu1+XsCwFUR z9}c$IEqJP7=*VZ@lPovaf!9NZ`sl$SQBB6FeV&|~npN7D&n4?Q%|11h@+WBe-Odl5fizu*Z z_s>IMd?aYv`N0Uspc$XmRffjdMJ-ybAZ?LPqK zB>p=Lrw;@EPZ&-g2K=#v)7mL^{~Cf)hXH>Of>MV8|1AWi4g>x$1f>oG{wM^c4g>ys z2ud9W{ErZnIt=)qAt-ei@V_J!wW`ixz^_ZNy$aSo4EQe*fz#g$19C&fWwHMh5jg#i z5>OXKF`W8FB-r#{hQRb;z`uzEoBrz%7`J?H`fo#E`Y_<%M}kfNT?kAc2K;6u*z{k8 z!1Q6jZ-v10VZeWg1e^YL2uvRa{O3rp>F z7_=78X>Bb=yMe*!kg3TcsdTS~S*&(-U~6$xbc-1Y#KAD)WP%75ryUxz7B{}K*Z_j( zh9-*Hswuy9#B3i!)QvMaI;&!C__2_CyO0ybvAUURTEIPBKwOqX$2DmtX5nBlXs1Nu zO%Vy!tzi|bm-=HQ2lOj5NAA0=W%)uoNrhBm<%)v7))cVXEJmO%Y4HkqsBux{xJ~M|T zaWJjef-r}aX)@Ml=8z%|rem`p8$?RSN}AX(9l~5(tp^rDeEigKTP!I5VM6K`VrIqt*=BsLiFZ%9Bc2^=WK!=u_`kH^oR`R1|3g|&5z-c=mHMK1&_E;z+|T(Mu4D6S(4IueUF z<#ddVBBAu|CWbKFbrE~5M9RX{X<7<(w&`OpktnVFQQYGil^#YyH7|| ztQ}UP2u;_s=#LAH8NWX6mtxFW8$nD!S`c1(qwwuuEa%j}q_e!v%9azuRq;Hl8u4Dp49&sre z2ZP(H{E|enhe$fD;*%2Y!GuHD6O5JOYEy!)rY+;Hl$zNGvC4Xc2-|mAv=#alNzie^ z^R*59MqN+A-ysok!Mk@s+Hy=|vh=#1yLdaC&DIZ-iINlXS;1juB53 z@6h@k2oi7MXI|ed>9CDH<5Gm@NTH)044{pX&xS&r&xAtU-w1)=0RGR0LY(J^LfjXG zLcE`oAlp@;tND*e2xYfI_PG*3*^SQZKV5=c!BPm4ct$wJd1g4qeO5Tedv-V``^e*} zLR)9|m1S_d>(5AB6avRqe{V2iV!H69!3gY)y-q?X^V06wFN8vz*M~yfH-tjGUkrsL z-xvx>y=gF{QaO=$O(?{9?O+JTo5WW_AX_(P$Pk}}?%F3MjA{~e z^yAGEM46c&&RZo+n~n39P>B0B3DTD2dT*C7ZAsoQg+OqG;)S6Q=S31kD?^W|zA7B! zyjsF&g)39;i$fva&xb;iFA0UDUK$EXzbq6o{PIx9$SXo2qputcL6URgV-jQ&rZ!)a zChePP-t&8dzB*qX^ws_SL0`Q;81yyyl|f%qe<*$3vb?@>Zt)*Ct9hk${ULu|`)ld* z<`Qmtjp;Q`AsA;kNNYbtX0ljDQB;CfY-U5pTCi;|W6@N>-mi%UTd~V+JF5HV9F5oTd$vDk_0MtQq3HXpxUv$40F z5J~90|MO*l_N*@VuFkgBn``ToxkwS3g68$Y;KKPT0DaJPXK2dA?-2#9?1uxebm-PD% zmlSW81njOL#MIW)Y;s!VIY2PKRDp8{+$i|dH))m@b{kIw>a zA>eX%=c3qm1+8*$b!Bn!eoA^qWI zS>7kXl>ADyT$sum`S(iTz06aG+HjYu2_;#IDqts$WI|IG@CbA4sgSzuOm>~AGicMvb^F=gu|Njc_l;_oC5L&SmhN85hplMX0~+W3nK~q{c+X9 zE)uShuAP*6mcv9;`!B7o)j4oKg3Y37>=>LV(#wk9)|@RU_sFyh+-`A! zUL^iR$tdh1km|1LpCxVBDtLvrS~qDAmQ}a{sevB1o6gk7?;R|Z-=d_B-fZVt9J!e#jygKPxHB-3o&`z5O`}%srL@tAqpEO!|&gA2w5D`rA@-qOZPXMh7_(Kglf}cIS4^(Ppyjq(>w^WL)u7M!_dW}s3*bkeZDA$S_`;QX# zsN&05+_sFf)QWi$97$h``5{F>>AFZ9(&#HC^ge~Agm1;SC?WT2WJiU#1U;^x`U!H( zk|?J@@xSfQrGjeyoDR;a-1cG#s*6}E&QK|};x$PdjYiy}fYWmt{ht!=gGzToqdQZI z?2=e(ox6(nUWxBv#h0@ya0*a!{-gvyrr`WAV11ml(G(9zy6B3+6!f0%geF**2)3Jd zSI{|eReC`%uCWWxrRxg49yg~u=fMyEb$(p|6#I8Q{#4D$!faQVV&QfPv6B#7x7OpP zky&hZXi%|W)=L(I_^3Lx9yc=>3$zCyoGHLd5@=5A@xPUnB3uo5O@*n6V(d(OuQsK{ zj|^3-WM|Oa)^Gcg#O)AJ+Lz0?lAtl$I=dF1m(T}*?s5P6ZJ&~``wdn*e*HFzH&ORs zsoI9ljAN=p`kEXt3rdb94KNaCBz9DCHTJ@e*Gu-HvZ(R2tswPVeHA3Bj4c*Sq|(xC z*Xo4|2K~v|MfBrl%(n)zL*1zC;=jQ;`qwqe6vL(9;s*b z^ShD9S1jTw?4GxS-VZ1kcYYnXf3?{>-*YIugs;T%^Z4C^J>13;PYl&%ER#-~^_d0V z&+zU8-X=HMf*xXM;B6tZmbTEl8ExJQG7Az5rsS(&luAuCOA-sZk2&&0R;>f>l5DVF z@uPF)HKfA95W^ZuqiB!0wkc?P>G8TCVDJ4j7wIG~K2CG8e0hX{l<8M0mZxfXr-f5B zjpYSAy?KP-;#3I_N&90yp2?N?U&Z{@3sNWOv2T?LN*Q4$f@jG%$TX^m$YEt-b6UXy zAL;_r+`d8KoT^sGvdfT#_Dk97>CUt3CKKPHygo?DtKgm|+v}3l!$Dduk_k6iq8=QC z2cAlwmgK0?wV#mJcVuu{ud1bwmE5$SMe@jun+bB+{7KVPE$t5UK#^xws+-zkVRtij zs-)_RX`_}8cUR4u8Y_AyOY7j|Ak9%Lk)9qQa$u_S?y1gdplJb63ldMvoL zI!4z^6g5A~uUj}J=^rtbqpD#&%fz3Ze;WAN{m#J8-akv9H&-XK?eh+nW}B+jF*86| zA9qlCCqH*Sq)TRP)NKcZUn;*<shYO}})j{%-ASUQw-4wf4HIwYA~2g)d?Fu2e++ z?0j$FXZK&E&zo=)_4lQZo2&JSF*Dd&2Ey0cm>D&#uUj}7>t99Il!x_$L0_GJlfG`@ z?5iIS{OtT>;Ai);hYQtlGnl(Sl!)o8_oG2ylm9;GYwAA+eNF%8ps&OKHR$Wee-HXP z`ajawotK(SSV7BH__>E@K`pFvnuy$5f=73 zg)QM7K|#zt66sz|ig+?-!<)&WC1algcJ@*qBeC2?!C*v;xhL~9%IaZI2NVjOSyBS+ zW)N+*QLmViU`isvz$`7Hj@R&RB>)v{j#2C!|C>a-u~tLi+(fq@hAP-o3l9Z}#;Vy9 zKLUit6$^b`5KUt>r9P0rI*xeNz9*3$?IJ~d1G9e6W=|BqArWk$9Kytdq&|f|JC{qJ zx2g=porAwSy9R%EcT3+{yt`@OXK(Ys&&e$VKc}`1{G8r4@bmEYfuBcq4E#KLh4guk zY9PEF)DJs2 zexMgl)BS{m-K($^U8LA$-JBh@bhttR(GeBR^uxmJQWzv9A@wDzMcx@Ky5>ZYzK2R` z?N*$0Oy*9B)z&rKTDUN0f^k-~e5-ogIi~5Y{HZPY?w4+sJ`*_#WAc_P@;$XFJO+!K zI(co-9`D`;em&0KRGV=!T8PzKZo@}9_G>~w{Q-WydZ)wz>|GNj>_^R~*YA+1A>VC) zz44dD0qnio2T=3T_D2l_fV~++E%rO`CN{=E1Px3EnFZNeJ6*$Yyhm!8o9fv@Nh@H@ z9JeaxjOgzd@UzD`$JVj6(=WB)S0#$0MA0WN;6oC@Aw|%e7w~ckeUQ<;c>!;hz&8?D zUEioqrBbQ}8V@#TXcdK&fSFj_tjMjd>Pn(EVc%+_R7P-@LdC@bO%iAvw9Iw5mju}Y zB`h&ND#6)S9SOCm8l_zp3m=mRZespL465iA$BQUOzY>{1lvSdgM6SZL@#jb~w$<}E z@0LIL0S&OOA7ntjK4CoCA28;Zeof-AlSJSFXxcCMNGNEsRx=i~MC~=40HO)$$0csN z46sx#SB(EGc3iYdZJgq`fSlGy<2&ta;1;)4>0Eu56US8C4Jt}o!8 z*!E-^p+`KCS}frWZJt+~pw3Hzn>dG=j;52{(PgvXwBW}W-brm}=XIK{N}wo}5e1l- zIIT|I<6Vwe{H402uffki=R!pZP}D*3fJAYWwQ5t0A?KMzyy2%IAPLWw2)6S%UCdxi zmv|;avx`j_q9Fjg0v9o{BSNDMQl~}vpVd*om z_6|y4kF77Yuu_=Ja$l1zAst2?h(4)pXIW-{7X{LNaG=|m#DebYf^w&7Dx!tl+k-4u zOc2BZ?gY?;{tUND(0NAyQm#uhoKCXx30iD3q>8l5Q9lmDJ*O6-neI0%9ps(5M2Yt=m zAboxCdJ7lhwL=C7AE>Yfg0V$RwPFuNH$~n5)%e}hV_hu}(kddBlBkB5icd@wRfj=w z=XOjb7N3(SA2OH{@eyp^7Le~GF*wl8fOlMCCRNTV+*KB~&A%-1zk+F~^zrQyM)Bov zliCAo$Gl@ES;NxhI_BGt#^^L7iBry<#00OPmLAy5q2&}dxM=Aadz3_|Y^7>~a#k!a zVXtKUy0J#D6B3CsLqC%ChWUSP4%D}9l~j)!dy&L{UzbX>H61f4B9?Ivb|FobUz6B& ztF6JNs85t=R5R&mQ=N3X=SWmH*lM+@jL7Fp#NDOm)_7h*9_fPe8=1wirsh0aEiY{BIxCf8A
7n81m<4j0d9ml;#_1H}k-SIwjhUglJsH^O4VF(k) zen}$eD!aZo_1zNG)Ti1>%7?;9sCL7Py-%W1eG~gaFI;24B4N99M^<{BQmK%g6^rkY z2#$3u)Fwc%DHcB@QK&vg&F##zRrgng*l$ZzS`J_LW2m_M_>4rMi>)XyuAoYNRKjYr zc46DC;gb@L>YPl1o4awO<)}dKGsFR zSqX+>U82}Q6xkdO6CB>ErneT;of`|QjoJH2d+IyA47bU3?qn$uw2Ad9k?s zNeZ5C87y$_JaPJaN#I_^iGrXA8Wl@9-5RW2sGSU~RB*Ct!t5=)J-DJ%+$t3g>R0O3 z6WfFW?9<#-^dHq|OhWEqi?mi73#$vuvG|nsz#Y&N|8;)tVUAV2?ZG=-pO?y^RIJj& zD%^5R|6&!G8Rq;G6i4&1Lf3*V+-?$_tCq8ce705}(T28QY(LaeYBRefkdjGzj^%2h zSiN7uadqRJn|%YlKexED){MnpDS7`2(w+Gf#wA9($N|g<_2_>jPFy_VgwOLP#ec2=S|-gZ){kfyeW98{$2O~D7XZ)qZ{ z&{tVRr6OXd=ss(IEzw+Q(O{c>%s*AEeO)5Cx^YVxf+7qjbfanykH0!tdjTy0X07 zn4Mc+xX_F}LHB{y@L{Sx)rVr?Dyg~dH4K|`>okb`tJL^acT_HwYIjTB?v2c=)x=Y8 zjm3rK^T;WmU2Gt?e0gQQxz<>ko5lH{FH3{K%@TEM1?l81L;n?t{;DqewUxz%xdjxc zL84>dmS~Q4(QGW^J-xYwGYc@o?@9#Q$zL>}jYtON(S3e)eRi>lq3oHGIoa{;i!Qj9 z)Aq}kCEN0lhK&cD+4O6e{hyTND`0(`)0nf>%9yT7{Rh*c2Kto~5{~<#4sJSaVz(B@ z!(<$~j(8k-E6C%S%woPYe!pZ(ZtVeh0Yxl3%Re=VyC#vap#xHiwMt9EbMGF&Q|iv@ zPeU-C8!s^7=XGR}llvwCsv zWC-pQmZ;PdFX)P8jS$>JQSV+L*yAM_*FT1#5)$&c5>hdQug0k`x%?_g!6O~$0xGk? zzgog`kJRD&8VSdBAGmI&ua&?&FQ33Fo>Fuw(io;tcx{TF&ouqMHG**y=~_WOPMW># zrbv?_pnDKanQ#z`}y->0V z&uX#KjG1MY6<$-))LJwyN#jTZmWS2)sV7R7V2yx5h7VxRl3+Wis_@Wv=fF-(C#&v| z{K&KM<>mu4A&x{@pwzg03EH!H#@z07`&pckZJ zO9MM`wfY^BRBi`+ZwVp;n84SiipG^&0clP>9RWvE=~@IFjZ?ma>r#+#=?Mwgr6A=Z z&qz3K(5fJM>OLhwxyCCfhRC}jz%W9dlwd5FBS;kcqCn#pc?g0QGxj(|g7*70NTOlbSrYtQM|`#2t{a_$Q?X z$em2JcxuwG@098z&nsKai%WEi$u&|t*v87$%Vy`^>OHxkthE;kzoScOH58sy0*9pn z&x(IW1FZ!zcQXLCR}}9IV`)|te<}evEJNX_80C+nsP-Cxoz;n0U8OB+6_@*twe^+N zSp1!m^?4jX3&-`Qh1x*#6Qfnkpx!UB;vp8pK%<(UF8CrZauT7isaU^DLa{5+x?HJp zvEG!yiZs`slR&JInZ`a{YJqG{prF?{2I%KYIBxf}4aw{3vZOi(P1-PiI0dl)vnOpi zN$Ci#badds5>u|ZlFFEs(KJ-k(VyTnRajt&*oPTnnnl>O@yuh!MnQkwzj z*M1@axb<($uQu*mSe}pFFDcC3ANX`arMo3>vi%uKLCa$jjOVW;*o@Y(&uXaE&UyaY z4OIi^S0z063xsbqmsSv~ZAztT7k;gY!aqfVwF}P~F_~|K*w3r-pO%!RRdz2_>H7>x1B$O> zYKKiXOd`;$(X)7Zd#@%5*|V`&N1&s)JYT1TQG>e{cvOwfuT8kA{6;C+bTeIJe$$|@ z&dt)-BO4d*rb|pFn`>*cXPav?vk0m!pPh$jw6e=AMRsa@{nBdF-2HF_z#eT6ZCtE2 z=Qdhv*nr7nd7WR`SY9_3%|b&3vH>n(D{U;@*KC!~&|lZek_yM$_}cpH-1+f^v*%{8 zqtcq3ZJjqNS$gkRL=~({S_|u!Anb(1f6Fv>gkrz=FlB-F1lz@K`i#JB0>Ayl_mBoa zhO%IL8J4T%F%894Db){2z&#A4*PYNL#uC352{)Pe{Rp@^_3%f=4*I!&8VNV){#ghPk7_mYlYZi(p*V+d z&c{M=F5%pdhvIOAWYYIOA>sCM{i7$a8vG8HU&XP|zEwJabo^RGr0drsB0YafLhf(t znbnFOKCTqCUdReU9sfvFsOuk%3ibSB5>z#Q9_kuJ9C7-jWc)*1sNyL$zxt8zrzI2g zK|B78gjPz7<)`pE9r8@7AC{C*JrDz{h132=B%JcU4~Do1cB)cLd_OAE`PZmO_Xkmt z-oHgfCVvSUMZ-CN9}VYz zD;m!Gb~Ie_AEMz>|0v;ltml3`63qL{NU-ELBEeFB6$zI9W+d3~Uq^zC{7od-=-*1P zPCeo4yMJB6sqO=h2sZE=eb`e6_cQb!PNROp&n6B;1LhJ3qXF}YL(zbR#NlYbV&X_N z;8@~lDA3_jJ6A;m=A7f9K$khX*G2>8+y{pOJ?7}$7!8>7Zi)uXdpAb|7QBaq0+V>4 zz@JV&ED8|SEO|>bU@m!UG+;h?TQp!H`Or{ciVQxLdU!P8bSe=IIFoWDpz03sSWTl` z^qpiRn46Mds`2wxZ;fKnPvoKitEc=#J_@i7j>SkoaHLyG`c6kXIy$7IGZqC19i0kZQVsdj;_-51z;QX9=h64jf-tFje_;3Au~cJjAh5Eqqr(9b^<= zJD6zj4?poQ5?Coomk=Tb;3rN=)u;@1%@QpNnD76q^>1#F%pt^ zJ`j$i(2Vamm!cp^y7R?afBOL9RC!1qXijh2oMVH#r{x2f4{JQE=eb z48^5LZt83V9OR}JqTs;qTqrJ0a?_8GfP>uhViX+soe#wglicB@2sp?cUWtMOzvWQe z2+18;jevvPkyaEO_}w3h8zs4;YY}jeJGv1C2Y%}kPE8uoW1qr%3;wCZe@a720O~e zEgARu&}uP}{c%WzFu>eTA_DW5MHF3lkOWkrbiOx;lynl=SY&7}9uDQ`iQ{D5$k3c8 zLEH9JOtY6q1m-q{0y!k(W;aI!=C*_aIV9s{w?+i!wnYTyw?_mPc7y^Ek~!fgvsXj} z=5~exIWCgQ?urP^?G6Q|Nyl_{PefpDZ$w~zUqoPGe<*O6bR5neiwMkJ844UBjw9Kt zBLZ{RgaSv2<7jp$A~1JdL}32WL)l;qGTB(RrNPJBx00K1_MLq9D+Rd2yu z@jpND8xpY16Zgcjc;_=wpe)|`tORX~cN!$#`J4n)qX{sCt0w*_8qWESgxkR{8qsrf z=cEjX{cVVO%;?{AqLOvf(_x0vb9gw4wXoLY_wLrrSv4ySJVH@C1n+qx86)C6C|&z@A7{T%|OdCa7jS*s*B2Ix5^$#h!n)>chGnip3_@~Ebz`}X>`El)tgqcIvE0FE zdK9rDLH04kWbM?N>*Eqq=~r#8Z7em-{gIY_S1~)V$*!*A05mSIURfri)@RSwCC17^ zC`oIbbF|EDI2Q9=iundkNiWZvn`JDNW~Wea=7c2o@P!#VX=1j8{i+^3i zt!rgA%@pbnk+QtDUBsi6cx=qr*~*JMbdjDpgX5@Qpa(8%3r}d8gQ->-j;fro>>?9cB3q;Hjt_?T)mPK zTWz2Y)G&X$#Jo$9I$n~c+W1XveoK)nJ4$P;VLvOe*9z5V&j&pAILXHcF19N!^#XL! zhPlto8n=3}BqV0uZ?v#icKE95YuZWdGuq!4$*NcMJwv6W_ZrLc-|q!(y>cCEztSTDX^hS&!r30xR8n{v8wmPV*G`7#Y!Q91V(OhY0@*AyIb9tTS8R~gy zlL>8+s3M?h)#lDM=QkFcEt)_zO^UjO-)}_J7v|1$ODRbuIK)tYjkKt#$wzbkE(yJd z(P}bd(GRjDPog`VaWmtY%lD|`FS)&tVPnL>;YDq;QkYV@} zkzsylY-5>^rL4h4mtnBuU%+>M9lEfxFh8U&IK#DdG5Tx#3-}KIT=rW0uLpfZq4^|* zU!L%D3jYoXe_Y{L&s}OPEi5!1pebu3p@=?#GLn#A2ny*-@chZgZp$6#(qWM_+pRoSpdko@#B#~d=5lG-3@>_=JWKNvk7VcZZ zWG^jEMJ&m;4M9E6g?cNiv=E8Y>)(C31vFtJclfa;bh5rL?ct6l>$43@&MZYbX`}7(=CN#7$0*llE-ukldnNvbx^VpVZ&+Jx-@;$ToCaZck-@ppVG)l^9gVnzY#(k|dLcm=iAH zz)2J0+W4Rzoe!jIN1;_oAzv%RRwWyt;%uyn7NBC2F*=2&zpY{E7N;d}-!ebKl$p&p zckVnE%rRw4{OPtKoOD}TR~F?u-eu_cR$UF^K|`uahWioc&Nt{<9@Q|tfQ#hl_RzL3yDP;lLu>IjYED+|+Q;$>8%s-5n{6hP}cFX^kg_u|F5<|;1WJgFolB}vz^P6|D? zxPk!4^4ZD?tf}beX|cW51plW16`j-&TkM#+2@uaym23=H8iRJ(x8Fe5N-=A%u5X@ir4Q; zyu1)zIFW8C_6riTkq~C9h&nY^&Tw(r(x`DXCFD1ysHl$$HpMW*wbobGEd4$#={Fpr zUkeBOs1*~e+Y_djw>%MMz4f_Oi`i2o?Mzv@a$*iTk2=wHQdhUsbL;D?^USnK?X{#k zG0Splf-yeZntx!n)kKgGJuh*N)AW~YZS@sLHhB0xx4yEx7*l_~FuNEpZdZ7#n>?cW zS;DXBK9}%!N_eG_(tmb!6_-UWDveG_Wq61J&z)U3qbG(#?SF|;mv+n0^6XMGPV0oe zEkzHjis;N5%n1*7Q<||WAFO!Y%7U;n4BV$>Srm_=Uc4=71!2>e8htv7-e$(&HjEnn zE!_9VDX2|_uo;_LO9OSA64ilj2g0u`q{JA5mK(w@=uV4JL?5(ObiB?}yH zgVi=dTSjZ;0Sxu<2nn29S&W-L!D5kVv%sx-jr(Smo;;mEZSF96U}1j!T<5QI=UQ=k zQl+n2xAgElv(a3nA)Zv}VM#nZiO20dJXU#BYtKD<*!0otg%a1Ry1CA^%|)7gT{7}W zn+A@bJKIgvu?Oa@sw!%u-!ilszgp7b;krh*8FyyeWF$;ZI*c)Cjz30H?fBx#^4X!q zB942~QSY&p)&wr1RTcAymi`8~sHcWKR1sBXTXh6h5TC%4Ks6eMVz_rr4bP0&Sj30; z%e3sD3$nS5+WX=f#q{Yg78jw@pW-_; z@Qp!nW~gEOa`PgFCEEU_}4T8tGw6oOmuY)X6N7ywBK0M$Muy3=mr^T zRh9*YwR1EFBG+6>7zAP*@oQry5-v(FYsPFCh)w4oyVL4Tc22t_GtQD&G)1KTfUVRmLYQ% z-!K0!_~uuZR$)JAjK(uLyMC^ZWuLD3embbHS-1AFgW?Oeh9}1K9wVIBOqbxZ9^?Kr zOx*xedJ&T9!2cCfFTnH<|6edo2AERFysxHa{@l-|9Bn5Dtp&J!POJEv_}OF3+vS>C z!DV{Q`9by6)c?=?@3;!J^f_8ri)%{OwYGtq(dTFRUY0=7X|Ih8X%$@sG%G6);Pw*S z*F{^8jY?j1JR_Ru`Jn8vS3&Eb`n%QzXKkJCGQlprzNDnI(ptil|I!#bP4Wcu!!)70 zC!)KUNTpZf_dxFM^88QF{Z_Dy#2pDeUE3V>6;3*7&QoqjjB6J*DCo)me* zuN1#kuY0Uv2G`)zyW&H5{idGJ4WS>#CIn}_;IG-``5N8((wTdx(7?tT|8t?aO0!N9 ziYwjlG7#PK4x?>c?jyk}Lf;-ZDO?{n;ewY3 zz5Fm;7Q--qt~qxe)2?ZxOR;@W9&Q+_wybE2mxFxF46t{`1=BFY>cz2zGb<<|<_3z< zr**}!CUdA}Y}_7&xS{L2f9lQF60(-~vMU0`w@ZFX_hm))7-%bBt7gqtZVU1=vAg0r znnfO#D$+$6s(?R|3OH$TS-n(1AepvPl%+57yLq?h`S+^YFgMe2Dl#=PT~q!>&xH;L z8`zv6h9^-Qm|bZh0(*bGxul`0w&t=mykw8cI)q%DHRRJ_N8l5Z@P`D1s|_-=j+kmQ zD8NPhE&gN4bx#X0;KUA0mbw$SP)oU9_{-dm)oP_{N(muzGqmBOOm*APMZ%G2`iTWe zU~y1i!J`jaK>Rt9X18k1+SF?H+PZ+LYYDS>B}~t5R3#}%# zYVMudrZ>9J%&rxeR@X1ZU#bOI%`q3SU;n<9nMhstm72HJb!YnVMv|N!7AQ?d;`uB+ z*nBQnTg}AOw0hFlFyurAiQ`t?A$>B)G1yafa~!1NzepXl7vqvf?GmQ2*$`^#B=ZHN1bi+rUb_dxVb^=_1*pe6v+hPnOms2coA>`D}h>S?(b zF~wg(e3!n)&6LM#lcv#YOWF#rare)SQilOm*RO|i-BZV1jJ^2pGONoU)20X!K=ZXh z{C$bPnU9-Bif9U(ci?Dxzitu>;My|-Tnbc1at>AGnT7Rp3(GaEmlm7su%EhP@2aXp zb2XlH#Lr6oc{Zp9&5}*UHB;Py9p%fUj`GeZtOw1WPfPRLVCOcm@_L|_6;`Tml{leW>KS&S(MoF`>!Xckqo;q6%gx}f z@hxbV+R8?2t{JCw`%}5QF_AvWOW)GA{Sbck zbQ8fIvYpGxY!NeDZy_{;p+MqHijv7J&L-Mp{NKx&0zLz{UaK8paW#|w4%f33EOq>) z)y3u#vM9TjrTcZ~Z7n0sQaQ*(D&s$CZ7fEDHf}#{&i$0yxRN$MmbAIisv-z86)zxQ zPvg1XT>P-6wwC?Z^rLPsrvE`AGl8;>E!Q_%%X$sgZVhVhbai7+FPh&ju`_G)o{kf9 z$=WPASoiMsnv6SMo`BCZu{Hm|!a60$#(!0du||R5@U1iWm)8+Opxk__Q@o(SEVVnD zW}=YR@O^#2dNrhfXY+`9wa_oCrO9<#8Ea`0T-Vg-DACwLOU=d<@t^2sM*B}a4cICP zm%U?;!00)Fk&8aY)4DoZrnxCl5@zKhAg?CDEv1i1x%hds{T_XS<13R(RrxN-Kf#GE z-Y{TB11GvBJ<>98a44EurbILo>Y>}M0~7r3OJSAk0>(ML&|IAFF^o~da+J>JP+5wU zw}|94v&qQ+h^n>*wc`J-U2Wxy)m0lKklI@lQqGtSR(!mjcpt|zyM{h&g;5e94vTRf z;J9{yCG7?kR$*!8{U5z2s?}YK|5#G>CZ#H${hUNtbY(6^(y$YKab^}9qw{opEdClz zekoX~Z`I`NbJ~%lb)sMB8(4jXRFNM~eMl$7i>Olt|Ik^pqnROA+Y91F>B?&P41dJr za-Mhm^5sGi^m*QpCEWtu0-ZIWLC|u#N7m-VVETjE&~AGs;1m zk`t6mCymLEmfUm~aUZE@Y}BJPNHG)-c51dRAaN@%@f+7RZxRl(9oI1*|YJFi$uBt@F52hh{3~5 zAX5?%S1NV@b?-W|NCq?hq>h`sc~ZyVEN`kj9Fm9LZDDl*=U}*jqP@Ld*CC7M%8nV4 zl-q5`dnG&iU6qEO^`ZL0dedJp$zM)wykyGgqZEL@ds1V^|BV>w|POJ1*)6UKH(HPz$LdeiwZ+#CLv~ z1*bMW-Uq{jp|h9pe_c|pH>hvxEAcy|@>We9Gf^TF?I%Ul_A?Io^9-oAibrRRR}5TD zU$B^CNbVA{&A%iCcl~x@sj+l|UHxB`859(MqBKrbeku{>%$$m8_Z?!NCrR=|Nn|fdVzm?w5L0f5VnBbQMJxSmpJTL`j4DSf z4QNxgSGrEjFuY352N+2#&E}!SQrCbEON?NVx!x0@v{m)wADhW&MnCCZD0&PqZjKyV zs;Tju!gl1GE|ZfL+HSJ4&vl738JaD2S39-2lfT|>X#7tXIj|qUTbIbqEb zrfPr2@ux{lbi=4%2!)y3hyPXGHIrg1_@I^_?W?*NO@WK}540RB?xH&clG8Dpy0J^i zq6;3Vj$4#HTZ0$S)N%IplG+EOE(Ly|Zl$e4SE{s$BwBsU2~}x%5sW};=RUCBb*xFw z3iN(zAx+(18gDm}&ej4~4<3xv7YOv754>EO4@`7vi29;L@)V#~#dd~QyKm%Jj9&Gt zK{)!ny7W$>2K{M`QZ*OW zRaRm0XDE_RAoHO#4Ut7_;Tm4{ZEA>mT0`!|})b1Dy0Rn^DpN^V7{btSK@ zoLQ%HeCWv4ISsnKhkJ-Ex{_NB>P}q6KMLJ?dih6nan@HT z{Zx#fr3-8AOWe`Lm`ZwBDA6 zt9fBzWdjeko)2}tw$tI=k(ZCEj>7$AD`kkN?h~=hP-7@V5aoQ zXBAgZ`qlnyr(kua1^4OZV7ay-i|d+&{O<+7OcJa+bTY76 zkQNr!7M5{-02>Bf%j!-^ITc3T;})Nns?Q_33Z(O}{isaul$h#BK)14(^K@&8r5}Cm z+DHseKCqfI1&#ls)IPgfIn0k^f_-Gr1e`v_Ke9=vytR%Epk`Mzhg8HBsy$4#-g<|1 zyj(tshk!{*+N$`UNiC(zHvc!mpq5&}{f!nx_Xy&@&aaa_rJ|xpVY2~VP{Uz- zRBC?eM7X(qmgYj`jdcvu+~2Cd(H35(Qff&2@1=^aE>=+-X_gUKH6D_B554T7a`H5R z@0ShsLn@7@tGs%7tp1%h_g}2-X^n&r>$0c1Xs)MTm?1@9LKmNrYMa`#=)O}I69LuB z-76KYt5;S@LV0AkA>Uk)JzTP-+FrUq{daqnU>4EVDnVV=a{)&Z8e~Lf9mp4W25J{| z|5o_$)&=a;sH6Mzr#=Y-^v^0!z+{?Oc>->47jQA#Qnzj+aLF@toP%3fq;odB_fFo3 zAJ$7AYhjWWcv1B;tNK3tzM}bAE4P%*&sy);>fNCGEo*s`wAs--Qm=B2paj?T-NfVk48FkQu5^2bm6QON1s~3JlYEn zyL9i=YJDzfsA0Qwebyp2!+SJCYhBVux!&c8&Fc!y%UX@x98gYW(xJY#de$V*jOsdn zO@+Btj~Hw@U)T2j&7h60GYL->1Whob?7lc#bvL_p2`&Xm9}*}5aZpP(%4(!*KNW)y zXxUa5^ddcD4e()qTbFVRu`22p+QW@L>^NYmr#^Ky_%7bHffH#siALKcKh(CiLU6B& zq$p))3R2ofFOFvwYo+ zv_C>>^T_!l?N;hs@L%WGY3ls{zlbz<uj zKPH)fRMdxO=^Y)qBdj!Yil5P~&8mYphOp!T($UnGftmwqaK4IOk?y@0DzB=x<|Ofe zx*C70o=jQFUy35$?0NSTv>nt9YSE7)Z87Cnsz`al0g{=O^T;LHr6)_4N=yA1m}*;% z*p^o>L~F(IS;;cb3sqyVS-N|cfHwU(x9wvhFN>FyrM@Sr_^cj>sK4mh(Er;mrE8*Y zwF^_TEkC}Xe=)gV)mlcW-pY;+a=c4=g8>LSE_TDjBGqqlz2v!>&RN|kMxZc&z61uDNyABf@ zdn;@9D6gw#{0^y;@WW-$$+HL|rX&#;2Z+#3+_3Mb`)wQ*x95uexKcG~SB!W;uhXq& zH`UKw_VW{c-4z^1+q=;5?@4|PPPo-JCGSY}tQlUf+nu%Cs|56=BGOrvKn%=E-O)iX zGX%G{#pC;>P{e#cN&3nd9TP%0WkAHJ*F0^nfu<9-{jMbaCx;)@&#UToxZa_w_vi#0 zgpW_CHlVqvTqWJf1TQl%X^B|+%$?WQ_E?s}?NgyUSIBQ6`O1|%mEp^)=II}mIXcHg z@VVzEplBOLPt`TcigVv##Wz_MtOo;Cqi=XL{sY})ExxyQmB?6sz3YZ0RaUi3JRpUa zd*W_JFLR?^H;1Q4YTVMNHll3pSfh$ylGEZhN?P1VJgD}m>mSG|U_t-DYXMb;Pf8KJ zTL)8{ev4K3lEmb8xl#vS#IQ{kf29)DDN#*}gpL?+MytYp#usX;6t-8=8;8Y6UsMkY$JR668 zYCxmU;%dig6IYkdn{jCsfm=R5cH7YUQj0GiY2@+JMGm)r(YglxG+o=(-g5X|z5ce2 zM#h6?BDOj>M1Q2JtE#IxCu*_ywSFv2$EofxQQfx=R;l~Y^c^W(Ggp02fnVtD&WA3R z`KgH6MZMha5f?f~>$Jkop!scWjlW0b=?M*dxQDk^^#5Z~`c?D)Rf$aG-f~W&yOyiU z%RLcXTbM=CAwLD!-7g;3-M+;s7&ccGaE*Vcn{fJhIc{Q-7Qf4W@~#`5C%G9flgy+t z>CA9uBr}?E5*f$IIBv%AGEOq%q%uxA;|ynwksn(-1D&&haT>1DiR#!F?qbjBObcq18aG?PqZl1?V+W|EMY%p_BpWIB@^&Ll@N z$&WYTUX?Pb!*Od9&8GwI<>dL)w` z%?u|p!%k+{%?x{);bdkwl^I5HhBLz>nc>mQNFp=hWJcV~h?f~jW=2w(k#uGRr5(wP zjAlj?nNcS*>Sjj0%xE$*n#zo(Go!ofJG88Ndh)Wz$gh=B>}S} zfMc@(M}{NIk?F{GWIVDSnGg1JU_b{JbYMaUHgsS_2Uc`oMhA9uU`Pj+bYMycwsc@j z2iA08P6zgMU{D7Zbzo8lHg#ZB2Uc}pRtI)uU~mT(cVKb{Hg{lj2Ud4r zb_aHMV0Z_XcVK!4ws&BB2iA9Beh2n<-~b06aNq(5K5*a!2VQXC1_yp{;0OnvaNr6D zzHs0S2i|bt4hQ~l;SU%7aN!RZ{&3+B7yfYJ4;TJ$;SU%7aN!RZ_1J|!T=>IWoe|YeR2Y-0*hX;Rn@P|h|4Rtlt*KlV89CbI;-%y7`Jq~p_@P`L~c<_e@e|YeR z2Y-0*hX;Rn@P`L~c<_e@e|YeR2Y-0*hX;Rn@P`L~c<_e@e|YeR2Y-0*hX;Rn@P`L~ zc<_e@e|YeR2Y-0*hX;Rn@P`L~c<_e@e|YeR2Y-0*hX;Rn@P`L~c<_e@e|YeR2Y-0* zhX;Rn@P`L~c<_e@e|YeR2Y-0*hX;Rn@P`L~c<_e@e|Ydm68=cSA4&Kl34bKvk0kt& zgg=t-M-u)>!XHWaBME;b;g2Nzk%T{z@JABt|lJG|o{z$?f zN%$iPea(tKa%iA68=b{eI((JB>a(tKa%iA68=ci7(jynjRG_b@HhY*jRZ6l z&{#l&0sN7KKa%iA68=cSA4&Kl34bKvk0kt&gg=t-M-u)>!XHWaBME;b;g2Nzk%T{z z@JABt|lJG|o{z$?fN%$iPea(tKa%iA68=cSA4&Kl z34bKvk0kt&gg=t-M-u)>!XHWaBME;b;g2Nzk%T{z@J9;%NWmW|_#*{>q~MPf{E>n` zQt(F#{z$q~MPf{E>n`Qt(F#{z$q~MPf{E>n`Qt(F#{z$z~((p$b{z$_gY4{@zf284$H2jf(?yC3WkK*k@oeH8;(Ski%uty8_Xu%#W*rNq| zv|x`G?9qZfTChh8_GrN#E!d+4d$eGW7VOc2JzB6w3-)Ni9xd3T1$(q$j~49Ff<0QW zM+^37!5%HxqXm1kV2>8;(Ski%uty8_Xu%#W*rNq|v|x`G?9qlj+OS6(_GrT%ZP=p? zd$eJXHtf-cJ=(BG8}?|!9&Om84STd=)fKw z*rNk`bYPDT?9qWeI=)fKw*rNk`bYPDT?9qWeI=)fKw*rNk`bYPDT?9qWeIkO_5LzSQQa9<$zt0P!3oY3FUxokx&j;7YXHneGz|C4pBkPrw7gOE@N35Sr72nmaj&d3JI%_&>kq$^G2hDTh z9gt8CvN=%?NGJ!*b7CKmP!5{sL_i>+95l~~gFr$#Xr2=dfrN6l!I(eR0$HwK{hA01PSFJn-gJz1UZN@L4q7anjk?AqD_z>2N5SoC63Rg~C!z-l667HE2MKZz|APcMhyj8RLpjLi zL;@k99AtCifsjxRvN=&fNGJ!{oY){Fl!I(egb)(SK{h8&2nppNn-eXBgmRG0i5Wsd zImqTj4k4i&WOL$&;7U;rvN=&iNGJ!{oLC|xl!I(eL=h6oK{h9@2nppNn-g7xgmRG0 zi7`S#ImqTj8X=(^WOL$;kWdb?IZ;PQC>S*_;R{B$R_}P8<}RVah=^CmIR~e4zfA1Qb;HV*_?(bmFg&AO|s6NRWd#EF{Q5EEW>vARY?|auAb+gmRG4 ziOfPmImqb5XCa{+WOSmmkWdaXI@Ae$2}hJ(bK=a9P!6&=(Pl^}2icsMGbEIQ zY)<4E63Rg~C;kix(bK=sFP!6&=(P>C12icq$ zH6)aSY)+&a63Rg~CteK+Qu(V-Oew^A`p;oB;A1874YIFjp<2KBV z;%Vclg}JGvrm_A*v0RG{g_`MfgM%T?v%xs*T8l9crICk2? zI6bbq2uQU&IHZ0OAW!nFWkoMgpCrAoe0*VIn(9p-XN_HmegX=asne2$O_=IqNY%>a z3ybUV(DB^V;`rhyjfbSEY!3X#g-tDdo_1;twd(OhE>J%X1wO;Gg}D*MLa$N!Ydnm(uz_m(n5giY9t>*Ow|MOMWDJdDrqVkB;o$Tm z0k_t(Z0IktH~;2iXtb!(}kA2GbL^lkyV$&4MU`opolAB}FB8l9XvRo3ogg~$Ei z30$kjf4~ZkS)9yx%;n_^lLKZv9=Tmym;kh_o_IQs;(qBVd z8lPWSOZCI8mVj^y5zfdnoAw`VQcJ687-?Mk3W=xi{@BRVo7Qh~^&)mr)D9mX2#2O{ zK`_8jnZoUVW7~TL22}S3AO)9=#$IMa*V_e$RQCbo)0)=OI7*s6D;5e&-49@mSC>V) z4om|O{^3fj1}CGb#3n4#w@Tn-BCH%uHa_bCK4HJ!6-k_Cg8kgSR0&7#6JMr8V60R2${34&FX&g_fTS zLv@ByjOwBoT3EbBoFM^c*UjMr12d!eme%4l4X(Wdf~kD~MoyMj%_>9wdAz}i_w}i^ zPmWxG+7|_cp9#}=-UXgHMhjlrPr@Q@&{Kw6p4t!PG0)???B~V~#y!0gN%q(uP9XW} zWN>UCL{zMrE7>~mUqD*o96&K?nOa#L092u0o1vEX{DDI#L>+`e_H*i=@;;`gUK(Pk zLx8bIRXq&#I)lfm$+n03=TT2Zo_(vzNnD9sdnc#x#wV5fw5AB^=|C8BszWkb2aU<> z4mN!n9ORAjRLf_?FGD@EZcohP3-PB=EuYmCK^+E!1FQPdj2j`vXQyUo$LH3LPEU=` zk7=sN;Xz>35r8?=w>HLx#=WIVQjLxzK@Cs?;t|uVWVt3kOg$TUyqJ_#U~7x?nLd(6 zKPMWrdM=>7sH?JCXH}(DMpe>B#l=_j_LdhtSylh6+lEl+=-4HwV^D$@e_PpxlpNN_ zMg&*K0o;p~DXaO+#3Y5C&ku{Ijt8C>t6x?>9^F}vVKgedIsx!U3|@t@`cGNyrzdgl zxwDdb_{8v-Y7CfOVp3T>xtEzEnFBES3j>znB5z@FehlApq@7sN!{3b%^b8OVaIXV5 zA&H=p@0KST$NCT``eZ+pOf+Zef-J9)II7)4J5<+%?1BI0D3(Gzxm^~}1t^_$6J zYvbVR{Xm!#MV7=Oyv3%mNagt$Hf+xo#Y}n%0BLqM1zb(v2Zb9!QrN!XG4+#yDQ=Nt z!*j6{=P@9G30?>oCuH*=rCFlf~G5p@fQ z4K12Pai|=9`aBGj-V;#diPfDC1qaaR=oNiFe0*V^dU93l5;Uo55f0Ib)UD#;YkI#p zLjCy=pxOg6ri*A{!uN8M!kl^qz+9ZiO0W&{$)inEMbcE&T#nSKheLyX&fqDKr@}yL zk58^!J3ESRFwTulO^q%>e3{7{6x9y{Y()f<^NaGwtRLDGLGKELu2a)^NV1ANT?>eJv2D+h-=%tXr5GJ5^`;RXsQkuHG5At?7e8BkBhNafMSIdpKq3`cp zEs9|ho|c~cc54Y|(c2?S$m11i|DZaXIskBcqo>LBc9HGO0AwlWz((2CLC7BatcWG9 z96Z$G)FCLYshlqI)u92w)Kde1i5T>>fMDwB0OKIqV>}L!h@KG|Q9TogrWZ>3O`508PWjsR-Y0|kpyvwR-n$Y2tmdN!bVj5a)* zV2u8p(1_}}K&++hTU~Zka|}fv5zH>#sJ?oe|O1ia>&`gzp`Q*_`{!(-}0fl0DMU7d>UoE$Mg9S;eMrw;~R z2%)-nh8q<;C@`Qt5P%_O3ZLmk9S;Z&srL`mY!>|0e&CK>ZXTBFRe1VhaddiVX@0Vo zk`MJ1pt^8N<)}H8bl<>$`pE!vIfgX2hS?`H_6d)v_XZ}#ngjN1Td6Nl#puBk(Q3Ov z;dCbmoG7vFpm4g?7>-6^Pc6fA-YY1a-V<;xZuQ_1h-+-?#}=0sHcl*!;luajN34nj ztTljL{B`#l!}Z14WYn3i632noD*+u!-dB5oG_P1T@ZOu2Bn__D58=EEIj#I*%H z^R)Bq{LJ|3(fM@~de5=RMf^KkzsH0|)Q<)tovZU0i;I)!z=_Rk=Wy}Qo^9$;;jr{0 zfmN|N7uj`oaUSnLufb!@*{VGvD4gC6aN)Ikb!1TXTRj_a>rCY0Lj1c)7G;d=bB0-( zdM-+%dG961nB9|4D5pH_Q6bUP^MJ+?qjSIK>SnXIM~B5z#{iExfx7h*PWRY=VCuL4 zEw!26=ZD2p#|OX@zJdtxuz2bO;IZ)HY}rbx&VElvpBTLeH5Q;(g#AM=pA>+qSK|Ot zX2B`dw9J-dxLp*zx=t=Nfn0Qksak2NymOkd-DDhGH3i&S8kKFOH32}>T7ayq>N#U2 zKC7hZbL_sE)H;t$axm!R8ky93WU5qkO`Di(%$@1eGtDv7EHFsp7&t0(^)NR<^j!VC zY6J4_<5@0C6{KOz$JI#GDZmeMX;73Gy2P-Yo}{GeFGPh`i-3O~dUrqoVEjV!Xk?k@ zmeziLnr>$4rC7*nBamGvjmo=ZX`QF=(kfN@)M(J^G(ZQ|>Jn~v`NZ0FRP{}9@zrMF z9~X9{EQ}?rDh=}(vw1bT!~j(VRS3t7Dg$mGlgoSD7xvSx8|d}*A9%!{KJpNdc& z@4f!0UJ(0(}dD58lfW z5cyGj7Q~GcO#P^IM^`5dwKzSB;?_s)$IN3M>iFT7r=O4Vn9UWV$&V)1<8flY5q{h- zOVh`qv=Apm_#882&trl^>Z1WkzJd2lHQX-uvv9kp=JUd1>Z5=e;zUr7<3%N(8yHYO zClFxoItps|?7)EfNB|D^;G;SMYPy%FTz1#g_LL6?sLPRBGeipxx#SNaEjQrqCJYbSy8& zK@WTxCAsE#NJMabFu=o)W%#BCMFQ3b0yx6>K$Q=Og{=1na^U%g`tAp<-}8h-a>8U` zc5Grcd%i?J1z4V^Rp>lY$!V2+L!#*?1FhmZGt*yBY@`i*+t1 z5KM(di(TC;znZ9*UliKOX8F|=@{=@0F``HNWl8P7Y|Wnl)N7(atF?fp@$Ok`4rsad zq~lBngHr1NHQ`Y!H?E4MVfo~rK6yChsP!mkI(U272-$Cp>6sxGre;xClkt;&I#SOC zgHjs+#m|j<%th`{KD#jA?EHZ`1^GM1>{Ta+xNLr_QZF>ftQL`(4VeVbyJpf;lf-e{|A%avps zCwhCc{OW~u@>}!#^k(_hi;$nlfP{=~X2bp+;l&Zb)k^^G^{xb)&zx7rCVK`XDKDz9 z?9h%y6{?p4lt}n0F|(W!qB~tP6U%#Fo1#H>W^hRL9zc4Z{V5XrQq79b{=6H|E}Tc^ zSkYkU-ccy^u2{(Wd>}_qZ{?vC_0Grz=y#xi2pW3&0+@Px>=N|bP=fb-EE+lXe0*yJ zQ2iEwRy>dBcD^O|4Evko;OaL4H^>Q*bh_Jz=F}VG;_Ej6KgcYVk%~p=#&O7$=XsBvEqm?fJE#5%n4%5|iem`{wEhPHp3o`E>YH zP&hpaxVYy6tXFi@#4t*oO9%W18yzj0dCv!g-lBLVH@)s)rR_G*p* ziCqDjC$U9l8ei(FH4A<)DE7B_<9BsNaLrRw%3vYm!?(3%Q%5w(w3?C>KLqxfp;U> zU5Pb0HZHz84)|W@rOVcJsdeVU+Vi8rtK$Lhbq%Sy_UWNzJsJ~Tod9&NII6nt=Ca+1 zv5?hR9Au31b?}1a!_1DcpPP5jA27sKp_7MDh*}@L5Omkf5DHPVD1^VcE@8O*XmZNj ze6n*casg^X)B-S~=7Y$J>J-3`Z{e!BCnG<1k~~!e7DA$_MW8j%b9pY)X0{XzN^Jzx zK^{Gp<6uNnJv9uDIt@4t^kr5uHwA%Fn*qZtRSmT}|6;%kg2Jg60*<9K6wDQ!fbs#&5goGa74;>ZO42dhCO{M;_*Z`OXXgqFx3N zuLtS5CSs_UH$_mdsEZ&bIjbpxdL$bjd0bk* zx=C*J8sx4uD&;vQbi!)`fT-62q?R?HjhKhP^*PNk)VXyV!x{}OvzJ2nak+9)DT(vc zv+fw`j{!W0@+;tT_HBOLMY$w)3HoA`;Kl5g-JWKjNsc9|k4A&m7XjLf!6>UW_k8d8 z)2g}2DSER;eIzcv{%|P#l);c+RR0gf#n&GMz83>i*8fs#n}JauhzhUY4|p$4sk-*L zhe_0h(TmXULlG{wg({ae`-wGmK@3#=UZ4h9WzzA&`q4`eF0Xb9s(PQicOzhU4`H2O zzZk{vlXipsf2)}ClV*&oUK9scpAOt{-)q(f^*+jzAjPz zaLnf6mZvwNJhyZ8*4XlFpFAmZ+7JuVr=l=^u_Kn{tjA_H4z)PFgyQ(*O03plAu`X< zEDp0Yy@1mA?+Hg{~|gpg=@6lk6&0r<>G-?e#l zd_XY$e1KJ~1Nk!wbP|9*xW4Dg!Vj(=7aCC?3&e_bAYVrsBXkYF?>Nyh;jr}4!16q2 zm0tN#&ufxfABEgCP6+kB2$7jM>bb$7^m713y2gM@Gewr77ae96$7j2na@Xvi9Tra? z3B1t9?bJ!37RNLkrDF`(wAKUJ;G z&yl1y)Z*0ZP+U_PpC1*}=L7^(=LP`d2O0J21895dJb;XunO%B=+?c<$Y7XXatx}%m ze?$B-)EiMotz!UU=r=V*P;ah_ASQiFQv~%^Ak>n;t@lXv+X8^7w*#b>1fIU%s^8HZ zL%kCiB(n`Xkl;DOH$dX-UF6f}M}=4K0=!&}Z1%!|IeYo;(1_|iKon1~Ssi%`$-J_x zuZHsF!Z%i`bPR7_X1ppQxV|!!X2&&8uPS~j8nnIw&@L}kI`_AEd|X`~30PkSV6XcC z)oOHlA3%LFCc6F~pa(ezz+)scdDJJO!t0L%KIq)E4hN}o5o7Y@fN%mz_SFJ?4hnG# zB`oF8NE`eWNe(3tw!SVXoPI6f_I3)rdbKm5S8}cxwRugW?E2NnPS&kHpKkR{rK(Ch z5$g7;h~WBcfQQ$+%O7BP<#5Z>XQ4d4J?=a;`~^9f=@r8&NxvK=u_NK!rpnRAv<;f_ zvd9JKGf{wB=xNQD+*;B*6pY%wG$5Eh17Puw_^1t_nmvV;g$<|8Ol=-5`D(MC17Zam zoF~^acf~=lw{y?2&IX6nGl29IYp9mfokhJ$=e|?DJ{*=l8CZK^0k4)O*n2QHQq;P- zIrTJhdWtmE7e&{&*9L>qYXDWlLbDTV_R_2N%4$bb;jr{1usp@1#SLqgHqK3r&aUpZ zR_&R4Ibb3zo?Z<+&!-LexpES>+Ka6{vz<2{7*L-Cz#w9}nvbEBs8fJi@no~%A1d`1 zK7pne!egpMU{-w4-nE|AC*<@}6j-$puz^&q^qDw)Y7A6$8c-_^X_WVDmQKgr(@i1K z)MlX7wtA^QtX~iXR=p6gbp3O{epcR-sVAsU4}+s#1e}UprMy15K=j4ou+&R{MT%Xm zezKnG(XS6ES*Y^>)>Id>iRw3m#Zzwto*NZl>0-uxXaC8fuiq3DPQ4j$ZXuslyUOs0 z>uvEa`YppMNxc;%xe*LLZ8B8%+aiLiw*!2w6E)&fbGAl?!_)5=URmm$D9bGf_h}bD z#sM|>{Ky5UccB2cYa2c-V9W4_G~YdpQq+4;%0#qLCTfCyZ)6QeU4R0}T?-(?S!3ya zF;LZoK&6{j0qU9`HSdoGtv&!~UP=Q=`RVxhU_@~BA%F*#Xf1_Le>f_<`Uv3nsTwW0 z6H(Svu==8A`PD~}zw#;hT>07Oa`nZHA=D*+@V)n+91x=SdiBSe`23ir zUU@eV176&mU)(UUo)n;W#lh9*1D7r*d&ySL;z%N1y)$|d`W+~ushH3^-h{4xdq6P# zHh@k0_HSh*k{$%lyw3jCAr_|J5}=!UFUz3M-y9H3zX@P&XErTqsj|=N|rQ9|s~3hE^wyWQwIY-@B}Q{&KP?@mN|Nuuwa z5&dGoda4kl*-UJhnOw7OVQTDDohA8S6c$gP4!jCJE5D6NtL+V5y)Y1vegS~!q~!pH zEnlO)ja6+90HQYmvs^Gq>&Bn!Iy)$wdKKU*q~!A2 z*>3>pSBFAUuK|+Vj$a@jr#+T?T}i(-3aok^U<1r%sW-6$=Y+>p=K{0hSW&s9rFQm< zTl&4j;cC?dC?}o{WHV>)8&*l`LX^Z5&S3w)$Jv|hl^q&uYuE1&2Bkg#s0Q~QQ-14% zfq>M907OfBHM3FJPg%!Le>fzX`Uud-5B02@=_PE27c~S>9|ZtwS3M$-K3~hx&Z$0f zPc|^-d*l~KEAiuZKNh_Rbt#I--YN`a2kZX%$Agi+>JxzCV+jrT zWBEw?|AfU;mjiDy@tKmh4szo;_eZm9Rb19A9^O|BsUY!SD`36 z5->Fy$xhbrzj}COsZXOUayX*3OO7>uW>_Vu&!VK>t*cV5KfYLOI^&qak-*8rXf z_-Gcf4{%-zUXvc!s@~Tv=DA!=AyRgHVV-*FV?cKEX8Mu&>XrHY1?cumLZa!5ffoM4 zL>f7muR?!xD8=ZDP|P}C8+xh-!fL3G46`)-VU$K^Fzbv@9z|o0CO!{|`d%0mPQMRue5A;wfAf@Vu|RM^ z3{?GIpa#|C)wy7Fk4d(G$*EH%#z`i@y1BIz8|F8UvMX3F1abV_JENe@)9w1@z$WFn znxq>bG7%j{Q|e^_!Sopbb0fnB)Qmmm^qKvahNvS4iDw1`Q?CG6g)mob=2X|!XNAR6 zuLPdgtK>y`BoD*vsn@fkL915*xp%U@DLlco1z~m|UNnFX(;mL%%5k zsCqL%Yv1zXnr3fMK~Q*03{>@2pjOgiBUbP4O+X4fsw*#=Y=)t|2U8LU;98$d# zkZ#_`fPUm9?)-pY>RkYF9-qclpFkOW@GB_cEu7N- z#4bU75+#sRN&#rYHrO1}Wl><&<$&d5Y7J|fWsz;p=!zi}qCSN}C$-&OTOHCXeJ|X?_|+U)>ZzeHsWHJU1K#*0tKt#6VS_1!|xXTYh2rb3-UZU4ufh zk0Lr+9^*54s}>{k^F!o*)fZ40DR}{j=Dw-+#rS2Y|3w+SgFUWvf7#T#HWZTj5|Db2 z*16UR?)Km}Sgon}<(TN|D?kq{K$K6->xNjE`YHCXU<&yzUUuTq1sPdchkM=wHO9iUg_eSA>TSB1sXR|3!NmbRsnRQ7VJ z74ml)KQ)|k^c4a6N51rp{=Pgcp1urt#1J%5{CbaWqjH}N2&VrhKuhI?6IAXKVe$0G zffq%~SFZ;<8%d8+=K;I12x9q0ZwQO0-UvJj=&JNGv+y$$#5DpV`KG1_>dio)oy@Tg zsqj6%I8A3U-qI|;daGZ4?t@-PiynAev;6Aq$WPbcJ=@RG2z9|b8bhde0-`mz7P+I# z@{y18YiCvO@~b%ay|f+O|L(>R>OFvPg#~2C3B>QMfEpAaeV5VKwxX{)NkDpMF#lFFiO#1Mk(u!^XqH_4-qLB z=&3Iaw>*6<%Bvx@(o0cvrBeNGv;6vt$j>L9ocp(YjDr=TT74k~s{VYvwu+2=4S0eX z4y5=vxm*%DwKo~~@68{L*M#uRetQ9_k^NFJ3gN@ZrV~>LY-tVF`?v z>Pbo!OCkkvPuGs^0lz~E55lq;{}1*g2!x1txJzKtSiry8iOC9N=P z6QA@+d8qF+hEU%H1igOjT?^SUakS%m0YKFE0a8l?C>IwYxo6aYm1 zxGsq7->}P10)VKW0z_4f5TmxFPXOLnCztvea`E>m8qRF{XtVx#K$cbg0$_~}(#wFo zDHM{rxoHFK0sPB=VCq**!R!J3e*wYNuL0J3c-(<{?;GI1X_8z07P)&)pF`PhGF)cB z-x3#J{SNqzWD5?B>A2?a1A?hP0IZWZ{0=>9tjctozO_MS^~V~SnH1GO15xPnLX)XE z$1Ah*8^=ytfRHk^kbH;fM!@lL0vC=n2gi&ek>)=Q2Bm)jD7tLsb=<#_8RtI89z|3? z9%5noM<^`daeUHUh?hq9|1cJ^{y~%ulGt-peo-^NKg7cH_fQxK^I^xCw8wrdTzz+V zW$EvrEdDZ}%dEDehZ21kqin-GiMs0B5yADh03J}^%PZ4UbCcABZw{jr{SA~d1eINV z9YOd8cD#8-4np9U-_ZRU%H-!Ir6~C^Kr|@V*K+FqavUbWyLO2Zc*8JD(_2xRygm@L zKl%O-WW+5)C`4b6Lg;~*Bxv_(NsdY2XDHNH0|V;o07yrOyld#N+h^~UsILsIDE(y= z#iuJ|Qpk^5v!f>sVc>iz9=5&~*nD0`sw+Qg)jKz@@^9;U7q`Xbhn~35Xi9Q;(S;)uCB_bvg1^e9Fys z&NzfI)GjJ;MMD7fDFArbfyrf?*1fVZgt`h49zrPBf+cB?16MaiP@e{Zhb_1c#uli; zXBq;i&jO%^Eo4rh4xeibp{}V1Ve@Z4kHgQZUjVn33SrYoHw6GuHv?oPJ1z^GKtdNh z?3AaCepw@v`jtl}p^5&lMke)ZWTM3|amFgz#48bdl?bc!Z<^&-zeRp}@y4fo^Ib`O zOZ~j+cgV|cx|FI3#+GsmssAR1d=BRKVe!--fXCr{Y5ffOTXC9?%_T2k>sup&t3LwV zOS|M@m2PmiHDF8CpOBf>3#YUEIc`(#>Hj$Zi24gaYTYX6?~%U-gHpExitcUI=^vhX zcQnUPe**@E+)njylR5fF`rn68i24T#Imopoxe>=zrnU5+VQ|#HfK%7P$!lV$%bm?J z)W3n@d^aoCFL}}8KjE;{e}P3xveU@(*aQ9u@{i67(Owpgf=#}o1B=`Wbnh>Xlv8g+ zlTOTRm{`Ajd|_gm7}7sPEjE<@JLbqY-YYfM~z!qJBE$0`*Se(Zp@>? z>YI%r^fv$zM~o?zs@2y)XS#jEL!Jfee-bP`@%{P6?5O$zAZn1^=>XARY>J@%7YH80 z2b0~h`(4{Czxq6S2rNL=N+K_xmY^Y_1B`ptJ@m0nd(n~pi`&GX5mP&r$l6f z%<3=5>`U%5*-eA~ug&tS+mYXw+-Cynj{14k-|EymWf%0{o8?#kK>ib|Ebd0$GZmaY zz^eZly9D(wlu-G+S8ln?lXiDD$58(UhL`-uJthh%2J(LbfT;fh#Oo3g*F-Kbk8B%- zcvQ=PTbF>g=lfm4;HbL-ht3o^5v*?1KKEsB9<1Vz*lshdlGL_M`o>yY?iL0|-5of! zZdq_o+VkTc0m0Ng0aoh{6xU4V%e_J&se1#-S&B$Tq>0qHPJE0Li^+E3u+)8;wosl{ zzi%icbw40A8d-8G1fBI?Pe!kz@Bafhs+%iWUj)Zprv4oeOy3y*j0e8@S3ofRPk`}J z2VYX2hrhL0sDFgT(|-pZy@TGwrgC;b{VgP#z5{6dSglLnZs;CGw&qgtz<{z~bi^R6|mz--X4~w*W5$!<(K~Rlf}msec1VzFH`qCqIgN(JTt= z_mB1;Y9qnm*RhcG{{fkw=##3-54Sq^J=m;%6$4fO5~!?aOBLluab0bfqu^rQeDY)_ zdidse*!m`5uQnTnR9Ak~s(1cU2Mv;645b+Ta}*O&##P?}XGq_29zX;qR=5PECJM;}Xt*?Tm}t?r53wMGOB^B58L zYL21q4UDm>J}^E>#dQxJvwhQlyZB|O`=E?kql#-w6aBscK-B#JQfsx4=S8;<$b+gK z0CqsKGP*xK#Fk74`~5?ps2zdQhzz#||4!ks)B}Lkh}EFhSAIKUdsWhSUl zu|0rQS4N&#*syWQIBNHUP~KFe5hLC=02q%_b)SG>dOLufZ1!vyZJ^oqt?oV4;`F^x z922z8t;>m~ytZLeSN9Byr|$tgpQ{2zZhg9ssk;Y-({}^h!5(8Hr_{)fueJ>Yq_+W3 zQ+ryjzq)H!Jbf47(L&~`Z57$myv(kag~QS#z-l_q((qCJw=QK`d3z!A#^--f3{g!< zOvN;e2La4yK*i!LC&$JBoZ zW(aDX&uFW^1qRf21ZuT-VCc!)!(-~d0+ZEenP~E(mgGYBk;WI2FHrp@Cc6GJ(B&hz z4OR!LH!yf&~pHdsrIZ5;1c(~N~V7kxd8RsI0eY57JWT#llmz73SM-`qrrM>W`t|nQdL#JU^9+PTM!7k<|`$5rhJ{ ze^UgtBM@rQ^5Qjt9@;4Yh`Iwi?dc2cFzzm)5!FM0$nVuOe8H@EYVI1j0QFE5ASczD_44%Oo_n@CE2*a+76Vm1 z9H{(?O`zT;my#;HTR4hYJpx#CFfE3VVokqC4y73NC=}B>O64Hxnd#VCHHS~{wpOX- zIA79#s?1EsN5?`|j{!10IT67E*`0IuAr+(^i-IWf4%i}Vx;`!@x_Ug&dmd!45yXon zPv0j*FG4*LMVu7Y0^ABYU8$cmghJGE6cTBDT3i~RSijg?QdbP67_}#gaeja@FF{as zljlv72iH~wgVGvMb&otZolOx@97<3I*?C?s+R|Y z(oX^uYd#HX#gE*oCx*q-4~Mogfpx=6^QmP1`Y>9ZMemAI zSTPCTmdqBe9x}YL^e!liA3P4%uAV!k9vl%|?+kGMf=0NS^C(`Iy0z*-!zxKX5G8T& z7OqXHTcsWlxd6Qr3TUd^rksP?F({nAKj3&}cJANY=?aURQ9Fdi)7t|t)Da$aKU~b@ z2_lM^{HP_3X=CuR_;-WMgszW0Q)EcY2oF?u@`6ZeB#^l6^S@uhL}ox1lhOVjs4 zX>neKONIa5OPZ#I@T~4R{4(`DP^R#mj?${}6X|+%^5LYrH^HLW%VLU!Tt|Q@YOaQN)T;R{X232`pz1vltT-Qrl$TC6<*&~1Aey1!tBIm!-_uv z{-}g5nw&aS{D341#Md7uHq37xWwLbTN+L`3T(RKD@Jx06ITEn?3xI>%h~yflwANpv zL95#V9rQMyO<~;;5nTNZ;H11XKHOk0T>9@ZP}M(x+WVSB!_l05vRVH#4zAh_Bu*Tq zNIe439K)CLO>VMe|3rCYL~!*efCrX??aA`!sPO7BfcJgp)4s5=d$auNvB>XxgHxDX z{kSH%)#H&{9=R?PX$NxK`U#C8)E2+&?<@D|yy9BilO7J?i>DC50 zw)y0^_-bF^AL-*2l+}Onv~^1p(^C{&>!(BjRr>+d>tJA6O|!GrJ{b5oFmyhz<_%l| z)nh}V>D__GYM2YVnX8+%HL1r0gVK)%6rUh>sg;|flG05JV+lz@T-u|CR+N4uiehp# zT&vjqvYZ(8h+&nacSA`-&;`}QL71>cAe*)PC?=+JW0jv#Blh`WfLm|mOhJ(!#c;lZ z45Zs~dQOK%*+Yk0p57JZvGgd-k{<)wXM~Fa4w1e>H;;n`V~a}*8z+|VuW_j0Xxl@E zSC-xdWr_3V$k8Tt8{96KYQucemJ%Z1@bZ{Lr#7K z8GBQ6bP`rQU|1#TolsKXD`PaDh?hq@c8rOx?+VCMm<`w&Z?R21m(`zpGMFGA9RAB*G0!rN{4zAt~xW3Qe71o!pRYOj>cX&*F zFJO8(@nwc9eRNRWGkOvF9w@^1xyQoZX7!4ndsKIig{wFgQ&*=gL>w^=&O z^~%Tuw^As8*30xlULXcNHIR;8gj$6nvhO$sYK3KrJ>!?5_CguFss+_Ec;(lv*d?eo zN}yN11B@tpIqpP(Rb9Z+9hv~O%`Uu_$DsEfLLq7&6e5r2CyHF{Igs}`^^@aat9^mJ zuagB#49kxs^ZvG#j=Vdc=_zXk-RZz&dspBQg$iZ$ z%PzlZ(5ashy9D)2l;FiRxwRqXnw}N80CgA&@H+Wb)`HB*uft=Ysw059$KVld)FN}( z1*7&(Eb!hMcG1yFu)Jf*2ebgX%h@lyaqF%(Ec0F@ih#4j*YY0J@iUuWIC0k-mU$5Z zWS{C{*ez5eM?LjEpF4KTGPlbyR%m1PWEL*1%Q1T7?;qV}w=d20f@E|_kYWXkI) zFZy#Oqu*21+{G+;4UUXkD^z-PsUqUH?ssjy_Rq6xzP)9c&k+S%Q)4@(ANJ!8YH+Y% zKK%}>VmQ`+oqHkY{P7(zOhblb4cHm7^89`2#x2bVZ%oUnx$XR?ed%Zz(`~R@BPQ2Z z;wZ=KsnXR;hP@lnWi_JGI@vP$j6P4ZS}IdznLIy;7f9Bl-=F!>%du|q*b`|~ehkn^ zolDD};~z0)GQ}oE$&V0aS{GpT$cnR;e{FKhvRZv=2BX6%gq{+tM|L^m@^>8mTsoe_?_0y$Dt4{`2@qKMmKq+v3aaIAV)mbWtWZ zO2tQemw+eMt|QLi2XDOPt^Yt7L7I@3!7q&O`i84--sZ?H%e(@-vL@I8-maZve?h>W zx90kv7b_SqipNX%FJj72q-CLMDCSl{`{nb=+7M#*B31h`)()y>7bQQ-?Ge$fWpWrymgsfZ!G2LVOO4& ztPEZhky|M#MKrScb0?jBpDoM0Se&v#GAz!ayT5nx&(C(9UInXVwqsIZkY|8fl`DZQ z%5Uf0*4(h4|HLh}D^FhI^DEn&iEPA+s*BT6>GPYH2;a2(U*EO~vEQ`Wk_QL17ST~z zK-L<}07;z2H`&7#$o!3*VB#<|wvKKMh+D3if7EUJY;_E!t?tY%kMh9&eUDkH2 z4bOr^gFtk^t;zOjd22X-QJ?zOAqgKF)PYwhigLIe*`Zv}4tpqbW7wm!1cK~U`!XDQ z5qRLcz+8gxeMToa1m<#o__lQZn)sIp-r8tIJWeA(-mkI32r<-gt)ZDT@`%#NHFx>* zo3Nlh)fJ$~zPwbCeNC4|dM(ysJ=GasdhmNMp4qxA`V+fMM-You72TMjRKlhrcr|yQ zM&@t%`TRxK`-SyoqHY>;%dce4KKQbWiTtMhw^_aA{>jLJYtLJ@n_HkaxGN@RHcYHv zKE5z9P20xd|GWHsG3j{^V zub7T*D#>NWk(X||FA2Z2^;dO_MAl_3C};XEyZD_~oV-nJsay|1Dwja1_m=YD$7ga2 zee!nPec(TDS#QRu7pG%77AFNo)~D_ZK);Y6i#4{T1Y>#Ud7^(M>UJ&XYTGJqBxa zz-`sDG9oTr9HnpExE`M}vym8cJ+iM1Nt2f)lRH&{Y56fgrmO5&9=jQpTr?hTqZB1S z29!D2wJ5wfKk~E3UNSV*TC-}+Y@IYpe$;ARUL#L@oSm+?UZkfI-L;@f0W0eqp!&Vfj4Re08YxBA7?U8O5ui2J1hB63q*;0j ztl#uImoIq9@9wyL*$s)063}$K1zC)&W=$%}=TFthNmoAnmpEFa@ z#m%fSY&YEPFFx^_ghqBbEmqFo6fzvAzup_+NriY-v=@Fy9dCNmZ zU%*X6%8Wb|T;kI#@r9M*1lB9?EfcbM>WM5M?uvI`J4f390NwaFiLKoD^auF^D0uZOQv@2zjSy~fqh!rO7_z?WadqOmL* zRYlUQB8B(btbr0*+7V}fA9@(d05Js8~?N7c1Cs>^HaxsYI-bVfii+0+rZ!}AlX9FJ6u9|WP7Eo zoZQwRy<#bDwSdG<7EnWJL*`X>c2=~E$8c}cvy4qlO}dzrp;X#|@hv)Bop|t#%Pz+i zjW8OFOqk(lFya+Ax=fTR%O*TJ3Edq~h3NP8SnhDX(vu6tb9XKkQz}t34b7TH&wF>E ze%zKG9*uk{ob@zsTC#}g%Pu)WOPZ5u-Yjl)5m-cex}c0nuaL@30Gkx$TePP=gJ83zVT-~H#+rN6{SezQwE;a-}<;7%M;#Qc9DqCx2mYu zJm#W9&c!R2!PO7V>WB9`$wd`UyJmiRbE4au3sl~-vIspp@x?C}M$LP4Ru_`@n!L?h zw7T%$`Nfxf?yA9`qpigcgTul)1Gzn(FjzqOTnMB1U3cQsA>?k~ zw9}=@y{^V;g&cuke>+?RnW`0XnJJutAP#5)mR^nw1ta{WRy0MbPrPPi2sUrQ;h&n1 zaaejnWgOnW+8#N6^ohrU1rAHm%b6W{BY{iypv-yguwr53*&c8DUBKi=Eh2t#^Wtc7 zOE?K}ulmqMclq%3$zA3oSaGa*&bQ@U38blZd{SRCsXtq%hbo6pc2^Q#QRL^atiD_W z@Nz-R_;wym940fXubI_%xjbw3jA}7wIlia5Zf-4o;aZJ+?68H~@ot}&LsQm_jD&OK zeUJPU@v=cWC~MsG$s~2s173g0)U&oMi=;ct`G)W)gA!!S0<^1Wp?$wfY_ zTv<$QmN75GskAK*pZuOHqDGeJE-NQjUq+*8&!(#dWQBYJM4R+L6Bt$ybsaPFnHWDkuld8&fAc5Z5Ebe_I&qWHRo z%Uk*7aWdi2%j)zs2!QG{kNww8+ivxHSiMZG;8ntGjk1?SlS1UChBsGUM91^Ql*bA* zOCdqvC0rWi=kj;@*?Gxfv?zLr^bKuDRZ*WAFMJSsaemA^hav~&V#ozDMaX@3tRjyw z+jnH5zXpuu%Z5=MF3Wm>BdRCRa;xx(5!5DkL;pVwr}F7 z*L?O@H=hL!kwV@&n{Dzrk7Vbe$Drk4!oh$eSEEJ*ZCxBO?jC*em{6?0actQ1_DSzxja5gE_H+2koLo>Lql$wSB?1T%ZE z8jUEZU?xFFM8Qmt1Q*Pt+N@TKyeB_u>3qib(vHMG=@h~#I@0G-lJWD(ZVTVOl zN9(2R@jAGblp6WY$-OhHBob!owxGb}?Ked)aJ&GS9t1HNUADoRuy~C zgbWT(Ei?C1t$Zr-{GHx@{|D^7WmygNPTtVsFI4q72Ioo@D^=x!!>Kns{vlhT-ud=$ zp;(nQW7@-tzkL*>G1*dVnTDmvV0xiuz0fNz#Q-eqo;2(==kypoNaxG?GPjfvbbY4^ z-2B;oADMR+b`fYfHV2sMi;tpLG4DOtgYDHS$3x1cXA{PRQ58efOm23Ynu+%i^6nC^ zHhi}vwm2zKK~{JvlgcXnhwMDIR*R80Z%jUnRab))3liUx^6_OA&4q$|!(Rq@R)BCs zNtMjd-Bvo!c~S<~4Ru`IP{>i*E(e+`H~%LVHf&s4Hf?Z2v=1nQxJPnByNb-}X)Iv&r znk7Htq^d+03H-_=ztp>zUkPDv?&5gM3q`t|AhU3$Svd0wAEG!i|s8bBj-n1^NYg>w`!I{TC%i+QcW@0lT8*@ zW1^-_XIjIuklPICH9hB0p(FV$ovEMOm@Mx{*8IfQbphGS=?!u#3>cd7CT=QUKN?K> zSbb7SCh*8e6$8`#!xQg8K4#FY{l2TWm>7t6sk75ljH#Pa> zY_fQmJ{4lFhT>MBS7l^9JrYOOll}-H7s|m0D~4LbZEj- z@F_kGGdpF0wRx@4tWJ6z)GU*!*cT~&Rxp+nsacAQsprXMxL%a*ENYc1Z90I`riY`n z>7giXXv~@$_QM4?S{te&wTdfqy~iLY)~=(w1wVM>EpPn??srBJ!bE2C9o>a88&9B& z(0<-d&-oU*WxZM220I>>KVP}5Wn*Sbjg&J#ylpv`nTw#=LA4&!Vs_F6((Hn~`;C_0 z8)=}QF?zDM8qtf{Wsgd->GI!ZX#gc}E(}466AzHy5K85N0?Ei2h2IF}o0yT6HOlwug=Caoh9Z`g)uz<4aYXMNM%hFpxW~K!a zJJ?r~y9kOOd*fBGRK7|&tWxXiX*8NOn(R=iZgr-IPjX_zQ?gHF3)ze}##>i1?t*)@_BKI7iYX_N5m7Re>sluyGtV(f^wqS)S8Jq3 zX;!1W>slo7aEE7I1R6cBpWk%pU2a&`(|tX9q^OkS-JaDm>*m%cj|FZs{PcWS9};Mq^u{n3;Es%36*1PfY<+8q-k6ZrYU}OFc2OadK+Z zc2QZoatjl!(sKQgGRD#)P30C#!U=}SV;hm8V203J1k5dp?e$}B%Vt;8mY3W{Rlix- zL1(o^>c_|P2G6rh{dnsxc&U%LnY;byqH}+T?@>3cs+>J%3DE6$Z>Fje(V98LL4ZqZ z-BuNH*U{*QUGtUS(2=V6Qj%CMtga(&Q%DI$KzTJ0i9~+*Y9#_mTYf?s@HDA_w8PZ` z_B^@HzqnyyeKOmA^u9g*@$l=@4@EncVJ2`d_N3s|=sJO=5$S{BNF(wrGex)!SzPP2 zy$$%7RPPkHo;EbUT!nC4M%;EDen|`K%!ZF%`JQRKq%}l6K?0WWWtLwL zV^4sow!zzY&son;i$1|YHdNlETu|-ZgncV^d1>J{{)U_Pm#HWZB%a5KXKFai>~(?y z-q>yAlula{3wi1VLP@h(dJJgo>KT`6WXDy%C6|g~*=lvbnUBwX^R1Bv!H1#5-dVc4 ztOs(TlF)pX2+>f?kTG2ghX=A%pLn8(W>JJAk%s&^Uv;8cc*oqAkH)e{oJu-^3OMwl z+00UgbY<4Ijwl&U*enXQfMk$Zx@*?B1vSbAlzpF-G0RG)s(*4gtgXnz=dh}w>3Dk- zZAG)TGFDYXv+$u0KmoN@sp7{cd2Q`;v3R{6hEgKh1yNj1RK8o|va7m%T;3=%6p*`@ zXBH{m+^m5t;RlUBC&1kJ5k1}T{&jIgOgA_Iv05Es@hOfk=Imla^`J5M<1F56uNew?)10Rfx6>u~j$MwU0v zqB8lI$vq~&HMpj^`OE9SI(6inKmT<5C_;c9vJfDH!Hu>o7Xp~K7r$XByuI8xaf>)I zBq@(Q-hOQ^oSm}4F;NDN1D9fYScj&ErJw85!vev6j7w|Hrd%O9^sbL)>(RmY=H z%gLKeNL_Qldj@NrPmlPPDW%(mMr5n?NEo(S+&Vc~#tVXrQOX^O`Gi%caO~5IKYzt@ zwk&I+Ft9ty(V0-}LAhzo+_al#P(U>Dl+3XW{6&|DgtU;}(FkezFi;3WS`UMemOcqW z9Lr;4zRJbG^WnK;35G%U3PY;6Y3l`d10S22*33*Zi5G5XT|8~w(!}&s@*%17PdQ=D zZ$TCEb~3mW%Xh0}4NJLb@fpIg#sV3a<`qvjC|#?ELf6WX@hpetNVE!vVG)~IZqN~k zd0(+ut?CG+XPrICQhJWnN%>l-P_|hG)L`P(3F$T$hdwF*@lsNw8iVx4B_iuib;C=yKnfPMyq5 zB!R+#YtLJ@+x31o+RC`7?5IF(|9R1at~nXCb@OMPnJ&#tm)AATvRY>+GuptX35+b+ zfKHS5RcbubVlC6c%GH38MFpGBKfm(h|_&O4~FY8MsA@s&+6=`w)Sx1{VAe%DKggrp)y$ka_fx@;l=f1 z;wzcXM(cC)4h!M(_Tm~cq(tTNqnI4%}#VZV)2ww)y_b6y?Nc4>~1Iyu*3^4goJks2zv+!f|xg%!hMC=(RJ12#1 zs52TXW5=|iy~{oQ_hKS3Z8`?iCiGyOQIXyJ^Op)~%^R@OnSnQehwG<4h=ptfY2TXQ z=PKO%s{!@Q@`d5P0Bw0whWdG?Q~Twc!~N$~trG?hyYj5$46G+1){j|Ax2Rnnw)ong z91#3d$(d_+OTYd2H(m#V+OrwO&#Ut;mErY-h>XMQ34Bz#O*7rbZo^=|%ZF~ut^(Ge zZFozoUp6rQ8O?%f*U@T1jxrG+#9~dFVv7G^VP^T93SNj?%a?tc9Z$3Z7hxB&)p4X% zm|hZ;KwL<6(4-`gW)g_*DJITlv!@a=hsTfFcFj*OpV_)B5Jkp^xhbkKpG6MDsK~xu zi&5zxO2#+rDOj%j44ugvcrq{3x3`^l!3!@z-%>2*biT|cGkM)jhV3b~4_~VT7>+3= z=}x-oCJ#A#39@Ab7Td7r#HAmFyyMaP6Bq6ESXFr$+1K+mQ+qKfIFXE8 zjuck%sN79OL%jya#|N&2oNEuBF1g?r;)!`8^+zLXS6uktt;=eVdlpC7gle?6TIL98 zs~s@;bFImR@|sD$x<_L(Y|%Bnr$gK*vYyYBtDXfXiU{*r&R%4W24Z!|A_Ui>&#Jw; zIvixio0m7$PL5U{`+~dxitps+WLizk^_n$e#XStbqe}hU21z0DY4NB6=Qc?_UmmkGlP~<@-U)rWs#nd${%PLhJGWjT^Cr9tnGxDRli>mJn zSf71VBZt0f`#->Gi*wqD*MCIIx9$1ziNkT>YtF34(jxgWplOxUJ3H?z`fJ2ouvtHZ zVhuAYLJH0G0q%hZGb-d!NM=+X@}<3v-UU=NUuSFA%@++pFG-ZFDT7CKRuNHrf|_@)!QPui+Oan_8E=JGnYC4I2TaJ$(QU$2MhWshm$f7e0GNKACOnnbP132km+1S(!L74LP{QdjFg(7WOr`c;}EMBMb8Ut zy5yLEt&xJlhpK7V8@xufOP4Z(*4rh68PO&mbXWyNLe*L?2=Gjkt;Gtd8v$B;f|w}2 zDkG6sR8>Z^D&s906lp)Hzn1&hjZ5@sc7uYD-&STcD>HNrw<_Yuagj{4eC)M9PmaZU z_iRz%l^=G@pn~n(^GBb;?R+mUwOo$rJ)xSFeDvpyocN=|(ac_ZeKvB6^Q?BN1$B>PDJ%qW~I< zJU_x;p>mE5D#II|55!v~zJzfJnJjiLDK~kUezPty4M~3SjLa-1Ki33#bc3YVB84;%Wss+W5YY0Y2@}n8*$VIs1VA7VzG11wv`6UkLs2e_%^xck1RPu4@=I_ zEN6sxFo6%>Nq-GjBaw~T#p5je5*!a2c^pnHz3t5Q6T!ZQl@>Hh3og98nK{+thd#cM zjMmw|97rGD@bcK)bPF9+w#uZ?>NQWetXSsR0pD^^W<$pME@vi&i)R$?M~rUa_?GeK^nL6+)I#{v5sc z!YHh}tW@}pWCvYEv##P>^FjqK4WCT#yWMf`dGGd3){X3-<-02U@y}plkmfF~cxR{&!`-^SR>d?xPd`0y+gGXn1EmH&Kwpj#{K^<@;n%bc4WO`aA4q5WbShs6xLS< zIGLk{viz~+AeZct)BgpsjH{@U=d8^Yl3KzRbJY?aX2pxLS{i?Y8E;`g$q&xmXerf@ z^7~D{Tg?iYRF2J1g~=myeqqDOcm_YCSx6L7W(HF)#>lB`a$K~w$|eXrYD-(=Iv{$~ zp9EpTM^vgjNdY-qipnOv?ya&(3$ykrxSo^i>mqw)hjjsl-3T^XPvf>u;%0}nBMSQ( zwkB5#Nalw{PSNGQY6-O7eGONYHP`*gL3mO5#EQdG`Sg%fJ|PqWH>^BVVQ!$2aF;IC zVP!?>jz%JwHCF_XNT;A`t@%vcoV^1^Q1PSzZr7+QE<7DEk3;hDiYG`X zaS_wxKy7{HOC$)do5y8B4ll;VcNLr7GmgB@u>fq4IN2;LE3I#mydw)po zrO>WZ9a>ohlZFH za|=+iG!@2J?>#jcwL{XTg!<nVE_bjm3#FBeq`r zktoWQpv!SXzgmheRv@t&Pc@`)B-LHR0hD8P-3BZBvBEF2@80u{2S2b_C>Zfx!v`Mt zu0c2jO0xpxb-blaqu}~xu0nYe^Q3-bWs&Ma&LK>HT8HG4hn#ODLK!Xvk-HRgJS zA5@daZn1l1q5!38CX@*70g@W3n=jPJwfzIC0lETzxZ1gW(lC%?h69f>u1v`fI+h^X%-~ z@nTyvfl$5#5~Km_G07Pg%>v;`QJgC4RjI9`E4DikSEFhB@;QX%=Diu&?(b)O$= zGCV0#f*H5y(~=@{D`R>-%0zi?0k{QNc~&s@Ehx88v{2j3NCeeEyiXY{Bo zKI%3+EkW#Is-Bd|l$BkPT`JSv+z2SN5Ctg3{zS;g6(4xRztMn5YOsXy2Ub-*&tVlr zZ)OB$C9kr+&W&S{ysQhHwSah2Pl!ZQqm_=0ODPj`VU3Q~4>YLh6&`)^*)fx!Cu1oy z=(bGtt-oqyoA>SY2Mi0}3d)DfOa*x|msT*>Kud9z$;`Y`DTZ4k4bL}n-RUo-_h+(m zsZ4>b)H{pjl5ASd-c`&l2DT$U^0zA=dnTA%;c*5Ql$!|{!17Uv!tqA<@fPX4FRQI{Ar>_v z8-MmZNI?;~nP=`K6V-0!ZqIoPb`jIk9Y@Z&Xp-KenMOAR6lBXu3MS1Ca4j&`Io6f* zYkH5p4M|HDb}_K@t6BODf@}HHBWJ%b@u$6*xiW3Aa1zM~52Dy+7ui(g)GTrypA4BQ zp0$<`DRQlMXE|$#A~Mi&Fn|=vjdyFERxEUeQ6V*}ki>P-5;$1b$+-DE9J1$vWWAd5 zKy-5%G6gP%y&uTiu(kDY4-f8=p7fYAnDv09=!EPXy1=>hN6&@Qp`=n)Hf0lMcfzH{ zrUTd|5eyD^MbeTV#cEovBdwJ_fLO!>C_VpYKqX#e*Sn&Yw)avX0nqod=urFk!hCW# z@X&2ubPR~AI7%j0S=btNg zg(x**zQH^k4N=<2E2cC}ehg@%2`36hVeW3A-0j+Sk6)1L97?g2*U@6hiy}99?aO7- zS!!}iUXyi~LtZt*22VBp4Og|}h&Pg{;V$K8;7i6hps?6D`uJre~2}R;9EnBYMZ_;78 zdB~6S(mXU8KaoJLkma1X+2!iSEZpXl4>z@QGgzVYkynEZVi+++90IqXs{dM85v#%` zX^LqRA&lwMk@m>pdZx#z8PUzw-9)eOj|ASG&-9|KtD%IPG`=cx6J4fE=89(Ci< z%u!O0+_d&S?mB6p{3vc|*}N0Np4N4m#DXI~iUDm4b8RKOw<_A?LKNfjoDN!9>#m}B z6tac*&_8B@EKn`7+8JIk9IAGvSv!lP)upq754E#jMlXWb9ZChgnAd(1$zVh0SFeC% zFia^;ULBaM)4s}8CVN|5h9r9jG9Bed^}KZG%-$o3dc+86F4x5@Hoo`+OgwG#x`~&6 zS|&&__-5Q(K~3}=UOggV`ouqf?=@4;a=SrPK4S~V+V}4~^c;+}5L%ZW395A=faz&n zLFB}2c#(f(FSMK{>H}?M&S6WD0z@;17KQTvp^YAUWnXqq`btMy&KiRT5axa?*H;*5(=I+0jCDL^=WnoNGX3kT*^OpHr%1} zj6E%({hFT4(sAt|gTS(x=rj~S1?*v7UP|cUojwW@m(jc_}5dPk+yh+ zX=R1bfp31roLQaT(mJ@4$^&cqaM{GnhKcpbA@WDeYQ^_sh0L$71-q;hVav4BO$ zuwNlv))dp`idesL3#6@%$<19sYp3I}($JDT6lg#L-wj zzA!PJcpJO^{o)%@P#mo&yPb<1aqBVroiK%!M@S9F)|Kz>OuVJLyYaz!M#`*_AH~zh z6u}j@FXXbX$JC@C$&X@4H>V+;kw!6;aW-3LoK>y>S&zK`C{ui$QjZv&au|}K^k$sJ zE!&$ZwV;0g{3~xi9Yg)_I!4TGVD|1{hPUsHkHQ!2c(BWtLxkv$p?He4l&Ak(LO@G!?!QZC#6QjA-wKSv0dkvJ{P?|L_0RuqzJA9YZb&@D0oj;+ zE5C+jO^EqDzq$Jl_ujIsk@BZm`ST(`Fop`1sO;oTPmYFEyRv2E<>TI`ng`Pdg^vm| zDF#;jVMo66_UA$4?~!aZu(G11e7@0(Gb!t0n=_gF^!G1#E^f(t5ldyj>9(0uL*=Q* zSZb)K#J&qb;TTNYVX2{VTbW&s!6BNZ_<3&sW<1Ijh2Uza4z7ku%;gqpT78q-RmHWp zl*@h0Ztc?F`9+g2!MPoT?bU0L*J+Oa(h}iHQ{~`#(K*rF1}iI^l_{1*{d9`08Ap(2 z<@Qxpl&h#BJ23pPiEw+hP?*P;5f)S6l_@8&P&1vIyTW3Yq=-th=f+KfA>RR$(bG`A zm2Rc=zgoVnq>QsWs};x?Svxxh%9!cgVDF8AU|O@Zd4H!io64{)Wreat>smk=$t!p8 zqerP1bdMPnazo4Xw{_Yj4Z6+x(%TVTb-79lTUxkgEj)_wtXX*O-M4XQfax4jW<_hS ztIP_(P?T8_R(cModxLpsX84h7dZKhMYH`3SQh76D-2}Of0Ie}E96%!-nxpVgvT?d; zndSx&p{1=}UUr$}nO$Qo`Bt-h8>E;4_l!;7cm*S6t+9d;=_cX{t3q6}EEgOcw*_21 z5?H|1F$G-B0&efV=-{w1w=X4UpvFWVyzaB-{%RVZr}GN9$VNq#Uew={pHMk-pth zMV8`RqC&R|Tp1q`GPfqB)PSiZ5vo3Twhvdb zG4ckXhb3z2k^c{(rj9RaW}FotBjt>4Iqd>TXBB-QE9`C^KO6b`zyEd4OSU8*I}TU^ zoVbLGT6fZ_i*f&Ks3NJHCmgPrsN;xL2%Le%7YII zXXpW9Vyi|Edcup3Yx-E|{30DiCAdd*4y4PSZujfV5#TcO6-ZS*5~rczvV#t_zT>Ei zPx~EiI-Yvra zN%?*+pMk6tE^KdvaZI>wx%FAj+_5@BNLpe*Eg&HxEufX`b(M)eeL;_5*t4QWMN@ct zW~Nc1%gTPuIgZ)DM$DY8Oo4<@WS(AStiB)yG4T&WK8h%Eki@vPD$8<^^jy|(1x+q9 zTz2RbWVHK=4JTvJ`e;QhAQ^)eP?q*7sF7)kg8(EWf=;_RT`Q}`PW%v~ECf&~L|#~ubi=E$K%iM5@QT;UdbTiL<9EkmNf4SP2rrMYOyjUTLbc1;FT8QAh^yv56fCz{Z?qZxHEc?C@t34=-79(h@H zF;fEC0FFBWTJ*cKX236G@e?g>!BU}EAbwj@vA~L#*-CsmY;ceIbb!T_+;;xczH~IM z54f4lDkLXz^vq^?+v|gyEgOzoX9VO8lc2JS?9(if$t@iD(d0S~&r2DE#+Os|8i=7Ve1ddy6;TI4=q6|o5f=wha8bHB z*$!GoEG-pLH^D_*6?74t-Q7e7#YNn^>R1s}L~s$4Yu;L)zH3KDQwVY8$lZ$L_lB+ztsiHRl{Ma=}QvP>>3 zwE?T5)8y$$HH+EQlOw?e@$JiIK0T;cbaVrM5K18MN=jZJ;+&fhuiS)q=O)A{HvtIW ze(&K#ZtLKC@v+NPs#e}KY9|uXs{tFw&C?$`hEb#+$3DbJe{gc?xtmfeSI~#Jg+9a+ z^g%J*NF0cpPzY^XcMGV-`!CQ3OBdOzhtk~$qNQkI9=MZe$tBY#(@b{+cWwWQeKnb~ zYiI?vK^i4OdEJz`net{eM3G0=ugeVmnzBPBP7)&G+{VYu=)5`IQ`(ge3C`%Xu8p!_!_WhOC#F8`uMWmeWb?K*{7$F2~>KSbAx-#4*7GR%+YDojR2^SL-b`lM}8YU!vICs9dO~>?^4klRQnr4hL1i zl2M|vAakV@A_tK%G>}2bN2WTOR***6vQFU$!2czaF2yhEAYI6SK(2{hK>kH|5a8(w z)hZ?CRIn*k5(8ur{{m)4c4Uz^r)>NV+*jzkZsdtk{5HLbiT`5K#K=#r!iG38Ub*ebQu4i-{~ uOMNmu)Q=p(HWGM*ZNx8ZBLLfUqUL1zOm6eEa5pkrcrd&wX@cIcdDtJ9@bQ8G literal 0 HcmV?d00001 diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/RTOSDemo.tps b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/RTOSDemo.tps new file mode 100644 index 000000000..11ff4217f --- /dev/null +++ b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/RTOSDemo.tps @@ -0,0 +1,33 @@ +[HIMDBVersion] +2.0 +[DATABASE_VERSION] +"1.1" +[SESSIONS_] +"RDK_Jlink" +[CONFIGURATIONS] +"Blinky" +"Debug" +"Debug_with_optimisation" +[CURRENT_CONFIGURATION] +"Blinky" +[CURRENT_SESSION] +"RDK_Jlink" +[GENERAL_DATA_PROJECT] +"FDT_UserBootAreaFiles" "" +[GENERAL_DATA_CONFIGURATION_Blinky] +"PROJECT_FILES_MODIFIED_DATA_TAG" "FALSE" +[SESSIONS_Blinky] +"RDK_Jlink" +[GENERAL_DATA_CONFIGURATION_Debug] +"PROJECT_FILES_MODIFIED_DATA_TAG" "FALSE" +[SESSIONS_Debug] +"RDK_Jlink" +[GENERAL_DATA_CONFIGURATION_Debug_with_optimisation] +"PROJECT_FILES_MODIFIED_DATA_TAG" "FALSE" +[SESSIONS_Debug_with_optimisation] +"RDK_Jlink" +[GENERAL_DATA_CONFIGURATION_SESSION_Debug_with_optimisation_RDK_Jlink] +[GENERAL_DATA_SESSION_RDK_Jlink] +[GENERAL_DATA_CONFIGURATION_SESSION_Blinky_RDK_Jlink] +[GENERAL_DATA_CONFIGURATION_SESSION_Debug_RDK_Jlink] +[END] diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/dbsct.c b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/dbsct.c new file mode 100644 index 000000000..156f0b8f3 --- /dev/null +++ b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/dbsct.c @@ -0,0 +1,66 @@ +/***********************************************************************/ +/* */ +/* FILE :dbsct.c */ +/* DATE :Wed, Aug 11, 2010 */ +/* DESCRIPTION :Setting of B,R Section */ +/* CPU TYPE :Other */ +/* */ +/* This file is generated by Renesas Project Generator (Ver.4.50). */ +/* NOTE:THIS IS A TYPICAL EXAMPLE. */ +/* */ +/***********************************************************************/ + + +/********************************************************************* +* +* Device : RX +* +* File Name : dbsct.c +* +* Abstract : Setting of B,R Section. +* +* History : 1.00 (2009-08-07) +* +* NOTE : THIS IS A TYPICAL EXAMPLE. +* +* Copyright(c) 2009 Renesas Technology Corp. +* And Renesas Solutions Corp.,All Rights Reserved. +* +*********************************************************************/ + +#include "typedefine.h" + +#pragma unpack + +#pragma section C C$DSEC +extern const struct { + _UBYTE *rom_s; /* Start address of the initialized data section in ROM */ + _UBYTE *rom_e; /* End address of the initialized data section in ROM */ + _UBYTE *ram_s; /* Start address of the initialized data section in RAM */ +} _DTBL[] = { + { __sectop("D"), __secend("D"), __sectop("R") }, + { __sectop("D_2"), __secend("D_2"), __sectop("R_2") }, + { __sectop("D_1"), __secend("D_1"), __sectop("R_1") } +}; +#pragma section C C$BSEC +extern const struct { + _UBYTE *b_s; /* Start address of non-initialized data section */ + _UBYTE *b_e; /* End address of non-initialized data section */ +} _BTBL[] = { + { __sectop("B"), __secend("B") }, + { __sectop("B_2"), __secend("B_2") }, + { __sectop("B_1"), __secend("B_1") } +}; + +#pragma section + +/* +** CTBL prevents excessive output of L1100 messages when linking. +** Even if CTBL is deleted, the operation of the program does not change. +*/ +_UBYTE * const _CTBL[] = { + __sectop("C_1"), __sectop("C_2"), __sectop("C"), + __sectop("W_1"), __sectop("W_2"), __sectop("W") +}; + +#pragma packoption diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/hwsetup.c b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/hwsetup.c new file mode 100644 index 000000000..b25de3a69 --- /dev/null +++ b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/hwsetup.c @@ -0,0 +1,293 @@ +/****************************************************************************** +* DISCLAIMER + +* This software is supplied by Renesas Technology Corp. and is only +* intended for use with Renesas products. No other uses are authorized. + +* This software is owned by Renesas Technology Corp. and is protected under +* all applicable laws, including copyright laws. + +* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES +* REGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, +* INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +* PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY +* DISCLAIMED. + +* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS +* TECHNOLOGY CORP. NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE +* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES +* FOR ANY REASON RELATED TO THE THIS SOFTWARE, EVEN IF RENESAS OR ITS +* AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +* Renesas reserves the right, without notice, to make changes to this +* software and to discontinue the availability of this software. +* By using this software, you agree to the additional terms and +* conditions found by accessing the following link: +* http://www.renesas.com/disclaimer +****************************************************************************** +* Copyright (C) 2008. Renesas Technology Corp., All Rights Reserved. +******************************************************************************* +* File Name : hwsetup.c +* Version : 1.00 +* Description : Power up hardware initializations +****************************************************************************** +* History : DD.MM.YYYY Version Description +* : 15.02.2010 1.00 First Release +******************************************************************************/ + + +/****************************************************************************** +Includes , "Project Includes" +******************************************************************************/ +#include +#include "iodefine.h" +#include "r_ether.h" +#include "rskrx63ndef.h" + +/****************************************************************************** +Typedef definitions +******************************************************************************/ + +/****************************************************************************** +Macro definitions +******************************************************************************/ + +/****************************************************************************** +Imported global variables and functions (from other files) +******************************************************************************/ + +/****************************************************************************** +Exported global variables and functions (to be accessed by other files) +******************************************************************************/ + +/****************************************************************************** +Private global variables and functions +******************************************************************************/ +void io_set_cpg(void); +void ConfigurePortPins(void); +void EnablePeripheralModules(void); + +/****************************************************************************** +* Function Name: HardwareSetup +* Description : This function does initial setting for CPG port pins used in +* : the Demo including the MII pins of the Ethernet PHY connection. +* Arguments : none +* Return Value : none +******************************************************************************/ +void HardwareSetup(void) +{ + /* CPG setting */ + io_set_cpg(); + + /* Setup the port pins */ + ConfigurePortPins(); + + /* Enables peripherals */ + EnablePeripheralModules(); + +#if INCLUDE_LCD == 1 + /* Initialize display */ + InitialiseDisplay(); +#endif +} + +/****************************************************************************** +* Function Name: EnablePeripheralModules +* Description : Enables Peripheral Modules before use +* Arguments : none +* Return Value : none +******************************************************************************/ +void EnablePeripheralModules(void) +{ + /* Module standby clear */ + SYSTEM.MSTPCRB.BIT.MSTPB15 = 0; /* EtherC, EDMAC */ + SYSTEM.MSTPCRA.BIT.MSTPA15 = 0; /* CMT0 */ +} + +/****************************************************************************** +* Function Name: ConfigurePortPins +* Description : Configures port pins. +* Arguments : none +* Return Value : none +******************************************************************************/ +void ConfigurePortPins(void) +{ +/* Port pins default to inputs. To ensure safe initialisation set the pin states +before changing the data direction registers. This will avoid any unintentional +state changes on the external ports. +Many peripheral modules will override the setting of the port registers. Ensure +that the state is safe for external devices if the internal peripheral module is +disabled or powered down. */ +#if(0) /* NOTE: ETHERNET PORT IS NOT YET CONFIGURED FOR THE RX63N. */ + /* ==== MII/RMII Pins setting ==== */ + /*--------------------------------------*/ + /* Port Function Control Register */ + /*--------------------------------------*/ +#if ETH_MODE_SEL == ETH_MII_MODE + /* EE=1, PHYMODE=1, ENETE3=1, ENETE2=0, ENETE1=1, ENETE0=0 (Ethernet) */ + IOPORT.PFENET.BYTE = 0x9A; +#endif /* ETH_MODE_SEL */ +#if ETH_MODE_SEL == ETH_RMII_MODE + /* EE=1, PHYMODE=0, ENETE3=0, ENETE2=0, ENETE1=1, ENETE0=0 (Ethernet) */ + IOPORT.PFENET.BYTE = 0x82; +#endif /* ETH_MODE_SEL */ + /*-------------------------------------------*/ + /* Input Buffer Control Register (ICR) */ + /*-------------------------------------------*/ +#if ETH_MODE_SEL == ETH_MII_MODE + /* P54=1 Set ET_LINKSTA input */ + PORT5.ICR.BIT.B4 = 1; + /* P71=1 Set ET_MDIO input */ + PORT7.ICR.BIT.B1 = 1; + /* P74=1 Set ET_ERXD1 input */ + PORT7.ICR.BIT.B4 = 1; + /* P75=1 Set ET_ERXD0 input */ + PORT7.ICR.BIT.B5 = 1; + /* P76=1 Set ET_RX_CLK input */ + PORT7.ICR.BIT.B6 = 1; + /* P77=1 Set ET_RX_ER input */ + PORT7.ICR.BIT.B7 = 1; + /* P83=1 Set ET_CRS input */ + PORT8.ICR.BIT.B3 = 1; + /* PC0=1 Set ET_ERXD3 input */ + PORTC.ICR.BIT.B0 = 1; + /* PC1=1 Set ET_ERXD2 input */ + PORTC.ICR.BIT.B1 = 1; + /* PC2=1 Set ET_RX_DV input */ + PORTC.ICR.BIT.B2 = 1; + /* PC4=1 Set EX_TX_CLK input */ + PORTC.ICR.BIT.B4 = 1; + /* PC7=1 Set ET_COL input */ + PORTC.ICR.BIT.B7 = 1; +#endif /* ETH_MODE_SEL */ +#if ETH_MODE_SEL == ETH_RMII_MODE + /* P54=1 Set ET_LINKSTA input */ + PORT5.ICR.BIT.B4 = 1; + /* P71=1 Set ET_MDIO input */ + PORT7.ICR.BIT.B1 = 1; + /* P74=1 Set RMII_RXD1 input */ + PORT7.ICR.BIT.B4 = 1; + /* P75=1 Set RMII_RXD0 input */ + PORT7.ICR.BIT.B5 = 1; + /* P76=1 Set REF50CLK input */ + PORT7.ICR.BIT.B6 = 1; + /* P77=1 Set RMII_RX_ER input */ + PORT7.ICR.BIT.B7 = 1; + /* P83=1 Set RMII_CRS_DV input */ + PORT8.ICR.BIT.B3 = 1; +#endif /* ETH_MODE_SEL */ +#endif /* 0 */ + /* Configure LED 0-4 pin settings */ + PORT1.PODR.BIT.B4 = 1; + PORT1.PODR.BIT.B5 = 1; + PORT1.PODR.BIT.B6 = 1; + PORT1.PODR.BIT.B7 = 1; + + PORT1.PDR.BIT.B4 = 1; + PORT1.PDR.BIT.B5 = 1; + PORT1.PDR.BIT.B6 = 1; + PORT1.PDR.BIT.B7 = 1; + + + + +#if INCLUDE_LCD == 1 + /* Set LCD pins as outputs */ + /* LCD-RS */ + PORTJ.PDR.BIT.B1 = 1; + /* LCD-EN */ + PORTJ.PDR.BIT.B3 = 1; + /*LCD-data */ + PORTH.PDR.BYTE = 0x0F; +#endif +} + +/****************************************************************************** +* Function Name: io_set_cpg +* Description : Sets up operating speed +* Arguments : none +* Return Value : none +******************************************************************************/ +void io_set_cpg(void) +{ +unsigned long i; + + SYSTEM.PRCR.WORD = 0xA503; /* Access registers via PRCR */ + + SYSTEM.SOSCCR.BYTE = 0x00; /* Sub-clock oscillator ON */ + + SYSTEM.HOCOPCR.BYTE = 0x00; /* HOCO ON */ + + SYSTEM.MOSCWTCR.BYTE = 0x0e; /* Main Clock Oscillator Wait Control Register */ + /* 262144 states */ + + SYSTEM.PLLWTCR.BYTE = 0x0e; /* PLL Wait Control Register */ + /* 2097152 states */ + + SYSTEM.MOSCCR.BYTE = 0x00; /* EXTAL ON */ + + SYSTEM.PLLCR2.BYTE = 0x01; /* PLL OFF */ + SYSTEM.PLLCR.WORD = 0x0f00; /* x16 @PLL */ + /* Input to PLL = EXTAL */ + /* Therefore: */ + /* PLL = EXTAL */ + /* = 12 */ + /* PLL * 16 = 192MHz */ + + /* External oscillation input selection */ + SYSTEM.PLLCR2.BYTE = 0x00; /* PLL ON */ + + for(i = 0; i<2500; i++) /* Wait for stabilisation of PLL and main clock */ + { /* = 20ms */ + /* (2500 x 1/125kHz = 20ms) */ + + } + +/************************************************************************/ +/* */ +/* SYSTEM.SCKCR.BIT.PCKB = 2; ( b11: b8 ) PLL/4 = 48MHz */ +/* SYSTEM.SCKCR.BIT.PCKA = 2; ( b15:b12 ) PLL/4 = 48MHz */ +/* SYSTEM.SCKCR.BIT.BCK = 2; ( b16:b19 ) PLL/4 = 48MHz */ +/* SYSTEM.SCKCR.BIT.PSTOP0 = 1; ( b22 ) SDCLK CLK OUT Disabled */ +/* SYSTEM.SCKCR.BIT.PSTOP1 = 1; ( b23 ) BUS CLK OUT Disabled */ +/* SYSTEM.SCKCR.BIT.ICK = 1; ( b24:b27 ) PLL/2 = 96MHz */ +/* SYSTEM.SCKCR.BIT.FCK = 2; ( b31:b28 ) PLL/3 = 48MHz */ +/* */ +/* SYSTEM.SCKCR2.BIT.UCK = 2; PLL/4 = 48MHz */ +/* SYSTEM.SCKCR2.BIT.IEBCK = 3; PLL/4 = 48MHz */ +/************************************************************************/ + + SYSTEM.SCKCR.LONG = 0x21c22222; /* set these bits to the same a this bit */ +/* ||| | | */ +/* |++---------------+ | */ +/* | | */ +/* +-------------------------------------+ */ + + SYSTEM.SCKCR2.WORD = 0x0033; + + +// SYSTEM.SCKCR3.WORD = 0x0000; /* LOCO -> LOCO */ +// SYSTEM.SCKCR3.WORD = 0x0100; /* LOCO -> HOCO */ +// SYSTEM.SCKCR3.WORD = 0x0200; /* LOCO -> MAIN */ +// SYSTEM.SCKCR3.WORD = 0x0300; /* LOCO -> Sub-Clock */ + SYSTEM.SCKCR3.WORD = 0x0400; /* LOCO -> PLL */ + +#if 1 + // Configure LED - I/O pins as Outputs + // First set the Data Levels + LED0 = 1; // LED0 : OFF =1, ON = 0 + LED1 = 1; // LED1 : OFF =1, ON = 0 + LED2 = 1; // LED2 : OFF =1, ON = 0 + LED3 = 1; // LED3 : OFF =1, ON = 0 + + // Set Port Direction Registers + LED0_PDR = 1; // LED0 : 1 = output + LED1_PDR = 1; // LED1 : 1 = output + LED2_PDR = 1; // LED2 : 1 = output + LED3_PDR = 1; // LED3 : 1 = output +#endif + /* Gain access to the Port Function Select Registers */ + MPC.PWPR.BIT.B0WI = 0; + MPC.PWPR.BIT.PFSWE = 1; +} + diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/intprg.c b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/intprg.c new file mode 100644 index 000000000..b5ef3862f --- /dev/null +++ b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/intprg.c @@ -0,0 +1,53 @@ +/***********************************************************************/ +/* */ +/* FILE :intprg.c */ +/* DATE :Wed, Aug 11, 2010 */ +/* DESCRIPTION :Interrupt Program */ +/* CPU TYPE :Other */ +/* */ +/* This file is generated by Renesas Project Generator (Ver.4.50). */ +/* NOTE:THIS IS A TYPICAL EXAMPLE. */ +/* */ +/***********************************************************************/ + + + +/********************************************************************* +* +* Device : RX/RX600 +* +* File Name : intprg.c +* +* Abstract : Interrupt Program. +* +* History : 1.00 (2009-08-07) +* +* NOTE : THIS IS A TYPICAL EXAMPLE. +* +* Copyright(c) 2009 Renesas Technology Corp. +* And Renesas Solutions Corp.,All Rights Reserved. +* +*********************************************************************/ + +#include +#include "vect.h" +#pragma section IntPRG + +// Exception(Supervisor Instruction) +void Excep_SuperVisorInst(void){/* brk(); */} + +// Exception(Undefined Instruction) +void Excep_UndefinedInst(void){/* brk(); */} + +// Exception(Floating Point) +void Excep_FloatingPoint(void){/* brk(); */} + +// NMI +void NonMaskableInterrupt(void){/* brk(); */} + +// Dummy +void Dummy(void){/* brk(); */} + +// BRK +void Excep_BRK(void){ wait(); } + diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/lowlvl.src b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/lowlvl.src new file mode 100644 index 000000000..70330dadd --- /dev/null +++ b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/lowlvl.src @@ -0,0 +1,120 @@ + +; Comment out the orginal code + .IF 0 + +;------------------------------------------------------------------------ +; | +; FILE :lowlvl.src | +; DATE :Wed, Jun 16, 2010 | +; DESCRIPTION :Program of Low level | +; CPU TYPE :Other | +; | +; This file is generated by Renesas Project Generator (Ver.4.50). | +; NOTE:THIS IS A TYPICAL EXAMPLE. | +; | +;------------------------------------------------------------------------ + + + .GLB _charput + .GLB _charget + +SIM_IO .EQU 0h + + .SECTION P,CODE +;----------------------------------------------------------------------- +; _charput: +;----------------------------------------------------------------------- +_charput: + MOV.L #IO_BUF,R2 + MOV.B R1,[R2] + MOV.L #1220000h,R1 + MOV.L #PARM,R3 + MOV.L R2,[R3] + MOV.L R3,R2 + MOV.L #SIM_IO,R3 + JSR R3 + RTS + +;----------------------------------------------------------------------- +; _charget: +;----------------------------------------------------------------------- +_charget: + MOV.L #1210000h,R1 + MOV.L #IO_BUF,R2 + MOV.L #PARM,R3 + MOV.L R2,[R3] + MOV.L R3,R2 + MOV.L #SIM_IO,R3 + JSR R3 + MOV.L #IO_BUF,R2 + MOVU.B [R2],R1 + RTS + +;----------------------------------------------------------------------- +; I/O Buffer +;----------------------------------------------------------------------- + .SECTION B,DATA,ALIGN=4 +PARM: .BLKL 1 + .SECTION B_1,DATA +IO_BUF: .BLKB 1 +; .END ; Commented out for conditional assembly + +; Code below is for debug console + .ELSE + +;----------------------------------------------------------------------- +; +; FILE :lowlvl.src +; DATE :Wed, Jul 01, 2009 +; DESCRIPTION :Program of Low level +; CPU TYPE :RX +; +;----------------------------------------------------------------------- + .GLB _charput + .GLB _charget + +FC2E0 .EQU 00084080h +FE2C0 .EQU 00084090h +DBGSTAT .EQU 000840C0h +RXFL0EN .EQU 00001000h +TXFL0EN .EQU 00000100h + + .SECTION P,CODE + +;----------------------------------------------------------------------- +; _charput: +;----------------------------------------------------------------------- +_charput: + .STACK _charput = 00000000h +__C2ESTART: MOV.L #TXFL0EN,R3 + MOV.L #DBGSTAT,R4 +__TXLOOP: MOV.L [R4],R5 + AND R3,R5 + BNZ __TXLOOP +__WRITEFC2E0: MOV.L #FC2E0,R2 + MOV.L R1,[R2] +__CHARPUTEXIT: RTS + +;----------------------------------------------------------------------- +; _charget: +;----------------------------------------------------------------------- +_charget: + .STACK _charget = 00000000h +__E2CSTART: MOV.L #RXFL0EN,R3 + MOV.L #DBGSTAT,R4 +__RXLOOP: MOV.L [R4],R5 + AND R3,R5 + BZ __RXLOOP +__READFE2C0: MOV.L #FE2C0,R2 + MOV.L [R2],R1 +__CHARGETEXIT: RTS + +;----------------------------------------------------------------------- + +; End of conditional code + .ENDIF + + .END + + + diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/lowsrc.c b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/lowsrc.c new file mode 100644 index 000000000..2d02ccad9 --- /dev/null +++ b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/lowsrc.c @@ -0,0 +1,329 @@ +/***********************************************************************/ +/* */ +/* FILE :lowsrc.c */ +/* DATE :Wed, Jun 16, 2010 */ +/* DESCRIPTION :Program of I/O Stream */ +/* CPU TYPE :Other */ +/* */ +/* This file is generated by Renesas Project Generator (Ver.4.50). */ +/* NOTE:THIS IS A TYPICAL EXAMPLE. */ +/* */ +/***********************************************************************/ + + + +/********************************************************************* +* +* Device : RX +* +* File Name : lowsrc.c +* +* Abstract : Program of I/O Stream. +* +* History : 1.00 (2009-08-07) +* +* NOTE : THIS IS A TYPICAL EXAMPLE. +* +* Copyright(c) 2009 Renesas Technology Corp. +* And Renesas Solutions Corp.,All Rights Reserved. +* +*********************************************************************/ + +#include +#include +#include +#include "lowsrc.h" + +/* file number */ +#define STDIN 0 /* Standard input (console) */ +#define STDOUT 1 /* Standard output (console) */ +#define STDERR 2 /* Standard error output (console) */ + +#define FLMIN 0 /* Minimum file number */ +#define _MOPENR 0x1 +#define _MOPENW 0x2 +#define _MOPENA 0x4 +#define _MTRUNC 0x8 +#define _MCREAT 0x10 +#define _MBIN 0x20 +#define _MEXCL 0x40 +#define _MALBUF 0x40 +#define _MALFIL 0x80 +#define _MEOF 0x100 +#define _MERR 0x200 +#define _MLBF 0x400 +#define _MNBF 0x800 +#define _MREAD 0x1000 +#define _MWRITE 0x2000 +#define _MBYTE 0x4000 +#define _MWIDE 0x8000 +/* File Flags */ +#define O_RDONLY 0x0001 /* Read only */ +#define O_WRONLY 0x0002 /* Write only */ +#define O_RDWR 0x0004 /* Both read and Write */ +#define O_CREAT 0x0008 /* A file is created if it is not existed */ +#define O_TRUNC 0x0010 /* The file size is changed to 0 if it is existed. */ +#define O_APPEND 0x0020 /* The position is set for next reading/writing */ + /* 0: Top of the file 1: End of file */ + +/* Special character code */ +#define CR 0x0d /* Carriage return */ +#define LF 0x0a /* Line feed */ + +#if defined( __RX ) +const long _nfiles = IOSTREAM; /* The number of files for input/output files */ +#else +const int _nfiles = IOSTREAM; /* The number of files for input/output files */ +#endif +char flmod[IOSTREAM]; /* The location for the mode of opened file. */ + +unsigned char sml_buf[IOSTREAM]; + +#define FPATH_STDIN "C:\\stdin" +#define FPATH_STDOUT "C:\\stdout" +#define FPATH_STDERR "C:\\stderr" + +/* H8 Normal mode ,SH and RX */ +#if defined( __2000N__ ) || defined( __2600N__ ) || defined( __300HN__ ) || defined( _SH ) +/* Output one character to standard output */ +extern void charput(char); +/* Input one character from standard input */ +extern char charget(void); +/* Output one character to the file */ +extern char fcharput(char, unsigned char); +/* Input one character from the file */ +extern char fcharget(char*, unsigned char); +/* Open the file */ +extern char fileopen(char*, unsigned char, unsigned char*); +/* Close the file */ +extern char fileclose(unsigned char); +/* Move the file offset */ +extern char fpseek(unsigned char, long, unsigned char); +/* Get the file offset */ +extern char fptell(unsigned char, long*); + +/* RX */ +#elif defined( __RX ) +/* Output one character to standard output */ +extern void charput(unsigned char); +/* Input one character from standard input */ +extern unsigned char charget(void); + +/* H8 Advanced mode */ +#elif defined( __2000A__ ) || defined( __2600A__ ) || defined( __300HA__ ) || defined( __H8SXN__ ) || defined( __H8SXA__ ) || defined( __H8SXM__ ) || defined( __H8SXX__ ) +/* Output one character to standard output */ +extern void charput(char); +/* Input one character from standard input */ +extern char charget(void); +/* Output one character to the file */ +extern char fcharput(char, unsigned char); +/* Input one character from the file */ +extern char fcharget(char*, unsigned char); +/* Open the file */ +/* Specified as the number of register which stored paramter is 3 */ +extern char __regparam3 fileopen(char*, unsigned char, unsigned char*); +/* Close the file */ +extern char fileclose(unsigned char); +/* Move the file offset */ +extern char fpseek(unsigned char, long, unsigned char); +/* Get the file offset */ +extern char fptell(unsigned char, long*); + +/* H8300 and H8300L */ +#elif defined( __300__ ) || defined( __300L__ ) +/* Output one character to standard output */ +extern void charput(char); +/* Input one character from standard input */ +extern char charget(void); +/* Output one character to the file */ +extern char fcharput(char, unsigned char); +/* Input one character from the file */ +extern char fcharget(char*, unsigned char); +/* Open the file */ +/* Specified as the number of register which stored paramter is 3 */ +extern char __regparam3 fileopen(char*, unsigned char, unsigned char*); +/* Close the file */ +extern char fileclose(unsigned char); +/* Move the file offset */ +/* Move the file offset */ +extern char __regparam3 fpseek(unsigned char, long, unsigned char); +/* Get the file offset */ +extern char fptell(unsigned char, long*); +#endif + +#include +FILE *_Files[IOSTREAM]; // structure for FILE +char *env_list[] = { // Array for environment variables(**environ) + "ENV1=temp01", + "ENV2=temp02", + "ENV9=end", + '\0' // Terminal for environment variables +}; + +char **environ = env_list; + +/****************************************************************************/ +/* _INIT_IOLIB */ +/* Initialize C library Functions, if necessary. */ +/* Define USES_SIMIO on Assembler Option. */ +/****************************************************************************/ +void _INIT_IOLIB( void ) +{ + /* A file for standard input/output is opened or created. Each FILE */ + /* structure members are initialized by the library. Each _Buf member */ + /* in it is re-set the end of buffer pointer. */ + + /* Standard Input File */ + if( freopen( FPATH_STDIN, "r", stdin ) == NULL ) + stdin->_Mode = 0xffff; /* Not allow the access if it fails to open */ + stdin->_Mode = _MOPENR; /* Read only attribute */ + stdin->_Mode |= _MNBF; /* Non-buffering for data */ + stdin->_Bend = stdin->_Buf + 1; /* Re-set pointer to the end of buffer */ + + /* Standard Output File */ + if( freopen( FPATH_STDOUT, "w", stdout ) == NULL ) + stdout->_Mode = 0xffff; /* Not allow the access if it fails to open */ + stdout->_Mode |= _MNBF; /* Non-buffering for data */ + stdout->_Bend = stdout->_Buf + 1;/* Re-set pointer to the end of buffer */ + + /* Standard Error File */ + if( freopen( FPATH_STDERR, "w", stderr ) == NULL ) + stderr->_Mode = 0xffff; /* Not allow the access if it fails to open */ + stderr->_Mode |= _MNBF; /* Non-buffering for data */ + stderr->_Bend = stderr->_Buf + 1;/* Re-set pointer to the end of buffer */ +} + +/****************************************************************************/ +/* _CLOSEALL */ +/****************************************************************************/ +void _CLOSEALL( void ) +{ + long i; + + for( i=0; i < _nfiles; i++ ) + { + /* Checks if the file is opened or not */ + if( _Files[i]->_Mode & (_MOPENR | _MOPENW | _MOPENA ) ) + fclose( _Files[i] ); /* Closes the file */ + } +} + +/**************************************************************************/ +/* open:file open */ +/* Return value:File number (Pass) */ +/* -1 (Failure) */ +/**************************************************************************/ +#if defined( __RX ) +long open(const char *name, /* File name */ + long mode, /* Open mode */ + long flg) /* Open flag */ +#else +int open(char *name, /* File name */ + int mode, /* Open mode */ + int flg) /* Open flag */ +#endif +{ + + + if( strcmp( name, FPATH_STDIN ) == 0 ) /* Standard Input file? */ + { + if( ( mode & O_RDONLY ) == 0 ) return -1; + flmod[STDIN] = mode; + return STDIN; + } + else if( strcmp( name, FPATH_STDOUT ) == 0 )/* Standard Output file? */ + { + if( ( mode & O_WRONLY ) == 0 ) return -1; + flmod[STDOUT] = mode; + return STDOUT; + } + else if(strcmp(name, FPATH_STDERR ) == 0 ) /* Standard Error file? */ + { + if( ( mode & O_WRONLY ) == 0 ) return -1; + flmod[STDERR] = mode; + return STDERR; + } + else return -1; /*Others */ +} + +#if defined( __RX ) +long close( long fileno ) +#else +int close( int fileno ) +#endif +{ + return 1; +} + +/**************************************************************************/ +/* write:Data write */ +/* Return value:Number of write characters (Pass) */ +/* -1 (Failure) */ +/**************************************************************************/ +#if defined( __RX ) +long write(long fileno, /* File number */ + const unsigned char *buf, /* The address of destination buffer */ + long count) /* The number of chacter to write */ +#else +int write(int fileno, /* File number */ + char *buf, /* The address of destination buffer */ + int count) /* The number of chacter to write */ +#endif +{ + long i; /* A variable for counter */ + unsigned char c; /* An output character */ + + /* Checking the mode of file , output each character */ + /* Checking the attribute for Write-Only, Read-Only or Read-Write */ + if(flmod[fileno]&O_WRONLY || flmod[fileno]&O_RDWR) + { + if( fileno == STDIN ) return -1; /* Standard Input */ + else if( (fileno == STDOUT) || (fileno == STDERR) ) + /* Standard Error/output */ + { + for( i = count; i > 0; --i ) + { + c = *buf++; + charput(c); + } + return count; /*Return the number of written characters */ + } + else return -1; /* Incorrect file number */ + } + else return -1; /* An error */ +} + +#if defined( __RX ) +long read( long fileno, unsigned char *buf, long count ) +#else +int read( int fileno, char *buf, unsigned int count ) +#endif +{ + long i; + + /* Checking the file mode with the file number, each character is input and stored the buffer */ + + if((flmod[fileno]&_MOPENR) || (flmod[fileno]&O_RDWR)){ + for(i = count; i > 0; i--){ + *buf = charget(); + if(*buf==CR){ /* Replace the new line character */ + *buf = LF; + } + buf++; + } + return count; + } + else { + return -1; + } +} + +#if defined( __RX ) +long lseek( long fileno, long offset, long base ) +#else +long lseek( int fileno, long offset, int base ) +#endif +{ + return -1L; +} + diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/original_resetprg.c b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/original_resetprg.c new file mode 100644 index 000000000..0404ac406 --- /dev/null +++ b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/original_resetprg.c @@ -0,0 +1,129 @@ +/***********************************************************************/ +/* */ +/* FILE :resetprg.c */ +/* DATE :Wed, Aug 11, 2010 */ +/* DESCRIPTION :Reset Program */ +/* CPU TYPE :Other */ +/* */ +/* This file is generated by Renesas Project Generator (Ver.4.50). */ +/* NOTE:THIS IS A TYPICAL EXAMPLE. */ +/* */ +/***********************************************************************/ + + + +/********************************************************************* +* +* Device : RX/RX600 +* +* File Name : resetprg.c +* +* Abstract : Reset Program. +* +* History : 1.00 (2009-08-07) +* +* NOTE : THIS IS A TYPICAL EXAMPLE. +* +* Copyright(c) 2009 Renesas Technology Corp. +* And Renesas Solutions Corp.,All Rights Reserved. +* +*********************************************************************/ + +#include +#include <_h_c_lib.h> +//#include // Remove the comment when you use errno +//#include // Remove the comment when you use rand() +#include "typedefine.h" +#include "stacksct.h" + +#pragma inline_asm Change_PSW_PM_to_UserMode +static void Change_PSW_PM_to_UserMode(void); + +#ifdef __cplusplus +extern "C" { +#endif +void PowerON_Reset_PC(void); +void main(void); +#ifdef __cplusplus +} +#endif + +#ifdef __cplusplus // Use SIM I/O +extern "C" { +#endif +extern void _INIT_IOLIB(void); +extern void _CLOSEALL(void); +#ifdef __cplusplus +} +#endif + +#define PSW_init 0x00010000 +#define FPSW_init 0x00000100 + +//extern void srand(_UINT); // Remove the comment when you use rand() +//extern _SBYTE *_s1ptr; // Remove the comment when you use strtok() + +//#ifdef __cplusplus // Use Hardware Setup +//extern "C" { +//#endif +//extern void HardwareSetup(void); +//#ifdef __cplusplus +//} +//#endif + +//#ifdef __cplusplus // Remove the comment when you use global class object +//extern "C" { // Sections C$INIT and C$END will be generated +//#endif +//extern void _CALL_INIT(void); +//extern void _CALL_END(void); +//#ifdef __cplusplus +//} +//#endif + +#pragma section ResetPRG + +#pragma entry PowerON_Reset_PC + +void PowerON_Reset_PC(void) +{ + set_intb((unsigned long)__sectop("C$VECT")); + set_fpsw(FPSW_init); + + _INITSCT(); + +// _INIT_IOLIB(); // Remove the comment when you use SIM I/O + +// errno=0; // Remove the comment when you use errno +// srand((_UINT)1); // Remove the comment when you use rand() +// _s1ptr=NULL; // Remove the comment when you use strtok() + +// HardwareSetup(); // Use Hardware Setup + nop(); + +// _CALL_INIT(); // Remove the comment when you use global class object + + set_psw(PSW_init); // Set Ubit & Ibit for PSW +// Change_PSW_PM_to_UserMode(); // DO NOT CHANGE TO USER MODE IF USING FREERTOS! + ( void ) Change_PSW_PM_to_UserMode; // Just to avoid compiler warnings. + + main(); + +// _CLOSEALL(); // Use SIM I/O + +// _CALL_END(); // Remove the comment when you use global class object + + brk(); +} + +static void Change_PSW_PM_to_UserMode(void) +{ + MVFC PSW,R1 + OR #00100000h,R1 + PUSH.L R1 + MVFC PC,R1 + ADD #10,R1 + PUSH.L R1 + RTE + NOP + NOP +} diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/resetprg.c b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/resetprg.c new file mode 100644 index 000000000..9bf85976a --- /dev/null +++ b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/resetprg.c @@ -0,0 +1,142 @@ +/***********************************************************************/ +/* */ +/* FILE :resetprg.c */ +/* DATE :Wed, Aug 11, 2010 */ +/* DESCRIPTION :Reset Program */ +/* CPU TYPE :Other */ +/* */ +/* This file is generated by Renesas Project Generator (Ver.4.50). */ +/* NOTE:THIS IS A TYPICAL EXAMPLE. */ +/* */ +/***********************************************************************/ + + + +/********************************************************************* +* +* Device : RX/RX600 +* +* File Name : resetprg.c +* +* Abstract : Reset Program. +* +* History : 1.00 (2009-08-07) +* +* NOTE : THIS IS A TYPICAL EXAMPLE. +* +* Copyright(c) 2009 Renesas Technology Corp. +* And Renesas Solutions Corp.,All Rights Reserved. +* +*********************************************************************/ +/* Types used in this file. */ +#include "typedefine.h" + +/* Defines machine level functions used in this file */ +#include + +/* Defines MCU configuration functions used in this file */ +#include <_h_c_lib.h> + +/* Hardware definitions" */ +#include "iodefine.h" + +/* Defines the size of the stack which configured in this file */ +#include "stacksct.h" + +#define PSW_init 0x00010000 +#define FPSW_init 0x00000100 + +extern void HardwareSetup( void ); + +#pragma section ResetPRG +#pragma entry PowerON_Reset_PC + +/* It is ok to use stack variables here because "#pragma entry" is used, so the +stack is setup in the compiler generated prologue. */ +void PowerON_Reset_PC(void) +{ +volatile unsigned int i; + + set_intb(__sectop("C$VECT")); + set_fpsw(FPSW_init); + + /* MCU boots using the LOCO, so turn the speed up before setting up the C + run-time environment. + + Clock Description Frequency + ---------------------------------------- + Input Clock Frequency............ 12 MHz + PLL frequency (x16).............. 192 MHz + Internal Clock Frequency......... 96 MHz + Peripheral Clock Frequency....... 48 MHz + USB Clock Frequency.............. 48 MHz + External Bus Clock Frequency..... 24 MHz */ + + /* Protect off. */ + SYSTEM.PRCR.WORD = 0xA50B; + + /* Uncomment if not using sub-clock */ + //SYSTEM.SOSCCR.BYTE = 0x01; /* stop sub-clock */ + SYSTEM.SOSCCR.BYTE = 0x00; /* Enable sub-clock for RTC */ + + /* Wait 131,072 cycles * 12 MHz = 10.9 ms */ + SYSTEM.MOSCWTCR.BYTE = 0x0D; + + /* PLL wait is 4,194,304 cycles (default) * 192 MHz (12 MHz * 16) = 20.1 ms*/ + SYSTEM.PLLWTCR.BYTE = 0x04; + + /* x16 @PLL */ + SYSTEM.PLLCR.WORD = 0x0F00; + + /* EXTAL ON */ + SYSTEM.MOSCCR.BYTE = 0x00; + + /* PLL ON */ + SYSTEM.PLLCR2.BYTE = 0x00; + + for(i = 0;i< 0x168;i++) + { + /* Wait over 12ms */ + nop() ; + } + + /* Setup system clocks + SCKCR - System Clock Control Register + b31:b28 FCK[3:0] 0x02 = Flash clock: PLL/4 = (192 / 4) = 48 MHz + b27:b24 ICK[3:0] 0x01 = System clock: PLL/2 = (192 / 2) = 96 MHz + b23 PSTOP1 0x00 = BCLK pin output is enabled + b19:b16 BCK[3:0] 0x03 = BCLK: PLL/8 = 24 MHz + b11:b8 PCKB[3:0] 0x02 = Peripheral clock B: PLL/4 = 48 MHz + */ + SYSTEM.SCKCR.LONG = 0x21031222; /* ICK=PLL/2,BCK,FCK,PCK=PLL/4 */ + + /* Setup IEBUS and USB clocks + SCKCR2 - System Clock Control Register 2 + b7:b4 UCK[3:0] 0x03 = USB clock is PLL/4 = 48 MHz + b3:b0 IEBCK[3:0] 0x01 = IE Bus clock is PLL/2 = 96 MHz + */ + SYSTEM.SCKCR2.WORD = 0x0031; + + /* ICLK, PCLKB, FCLK, BCLK, IECLK, and USBCLK all come from PLL circuit */ + SYSTEM.SCKCR3.WORD = 0x0400; + + /* Protect on. */ + SYSTEM.PRCR.WORD = 0xA500; + + /* Initialize C runtime environment */ + _INITSCT(); + + /* Setup the hardware for the RSK. */ + HardwareSetup(); + nop(); + + /* Set Ubit and Ibit for PSW. */ + set_psw(PSW_init); + + /* Call the application code. */ + main(); + + /* Main should not return. */ + brk(); +} + diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/sbrk.c b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/sbrk.c new file mode 100644 index 000000000..98e5bcbeb --- /dev/null +++ b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/sbrk.c @@ -0,0 +1,28 @@ +#include +#include +#define HEAPSIZE 0x400 +signed char *sbrk( size_t size ); +union HEAP_TYPE +{ + signed long dummy; + signed char heap[HEAPSIZE]; +}; +static union HEAP_TYPE heap_area; + +/* End address allocated by sbrk */ +static signed char *brk = ( signed char * ) &heap_area; +signed char *sbrk( size_t size ) +{ + signed char *p; + if( brk + size > heap_area.heap + HEAPSIZE ) + { + p = ( signed char * ) - 1; + } + else + { + p = brk; + brk += size; + } + + return p; +} diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/vecttbl.c b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/vecttbl.c new file mode 100644 index 000000000..d2dec0b3b --- /dev/null +++ b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/vecttbl.c @@ -0,0 +1,64 @@ +/***********************************************************************/ +/* */ +/* FILE :vecttbl.c */ +/* DATE :Wed, Aug 11, 2010 */ +/* DESCRIPTION :Initialize of Vector Table */ +/* CPU TYPE :Other */ +/* */ +/* This file is generated by Renesas Project Generator (Ver.4.50). */ +/* NOTE:THIS IS A TYPICAL EXAMPLE. */ +/* */ +/***********************************************************************/ + + + +/********************************************************************* +* +* Device : RX/RX600 +* +* File Name : vecttbl.c +* +* Abstract : Initialize of Vector Table. +* +* History : 1.00 (2009-08-07) +* +* NOTE : THIS IS A TYPICAL EXAMPLE. +* +* Copyright(c) 2009 Renesas Technology Corp. +* And Renesas Solutions Corp.,All Rights Reserved. +* +*********************************************************************/ + +#include "vect.h" + +#pragma section C FIXEDVECT + +void* const Fixed_Vectors[] = { +//;0xffffffd0 Exception(Supervisor Instruction) + (void*) Excep_SuperVisorInst, +//;0xffffffd4 Reserved + Dummy, +//;0xffffffd8 Reserved + Dummy, +//;0xffffffdc Exception(Undefined Instruction) + (void*) Excep_UndefinedInst, +//;0xffffffe0 Reserved + Dummy, +//;0xffffffe4 Exception(Floating Point) + (void*) Excep_FloatingPoint, +//;0xffffffe8 Reserved + Dummy, +//;0xffffffec Reserved + Dummy, +//;0xfffffff0 Reserved + Dummy, +//;0xfffffff4 Reserved + Dummy, +//;0xfffffff8 NMI + (void*) NonMaskableInterrupt, +//;0xfffffffc RESET +//;<> +//;Power On Reset PC +PowerON_Reset_PC +//;<> +}; diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/SimSessionRX600.hsf b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/SimSessionRX600.hsf new file mode 100644 index 000000000..fc1ca0381 --- /dev/null +++ b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/SimSessionRX600.hsf @@ -0,0 +1,290 @@ +[HIMDBVersion] +2.0 +[DATABASE_VERSION] +"2.3" +[SESSION_DETAILS] +"" +[INFORMATION] +"" +[GENERAL_DATA] +"FIRST_CONNECTION_TAG" "NO" +"RESET_CPU_AFTER_DOWNLOAD_TAG" "VARIANT_FALSE_STORE_TAG" +"{287A8023-99B5-49E1-A54E-4DDCA43D7959}MapCtrlECX_MAP_FIND_SYMBOL_LIST" "" +"{287A8023-99B5-49E1-A54E-4DDCA43D7959}MapCtrlViews" "0" +"{2BA6A3EE-6488-11D5-80D4-00C04F68EAD7}ECXLABEL_ADDDLG_ADDR" "" +"{2BA6A3EE-6488-11D5-80D4-00C04F68EAD7}LabelCtrlSymbolFileDir" "" +"{2BA6A3EE-6488-11D5-80D4-00C04F68EAD7}LabelCtrlSymbolFileName" "" +"{2BA6A3EE-6488-11D5-80D4-00C04F68EAD7}LabelCtrlViews" "0" +"{2BA6A3EF-6488-11D5-80D4-00C04F68EAD7}StatusCtrlViews" "0" +"{313F4FC1-6566-11D5-8BBE-0004E2013C71}CmdLineCtrlBatchFileName" "" +"{313F4FC1-6566-11D5-8BBE-0004E2013C71}CmdLineCtrlBreakpointFlag" "-1 " +"{313F4FC1-6566-11D5-8BBE-0004E2013C71}CmdLineCtrlBreakpointStatus" "-1 " +"{313F4FC1-6566-11D5-8BBE-0004E2013C71}CmdLineCtrlBrowseDirectory" "" +"{313F4FC1-6566-11D5-8BBE-0004E2013C71}CmdLineCtrlLogFileName" "" +"{313F4FC1-6566-11D5-8BBE-0004E2013C71}CmdLineCtrlSplitterPosition" "242" +"{313F4FC1-6566-11D5-8BBE-0004E2013C71}CmdLineCtrlViews" "1" +"{313F4FC1-6566-11D5-8BBE-0004E2013C71}CmdLineCtrlWindowProperties" "17" +"{313F4FC1-6566-11D5-8BBE-0004E2013C71}CmdLineWndInstanceKey0" "{WK_00000001_CmdLine}" +"{313F4FC1-6566-11D5-8BBE-0004E2013C71}TclTkCtrlLogFileName" "" +"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_COMPARE_END_ADDRESS" "" +"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_COMPARE_START_ADDRESS" "" +"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_DISPLAY_DEST_ADDRESS" "" +"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_DISPLAY_END_ADDRESS" "" +"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_DISPLAY_START_ADDRESS" "" +"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_FILL_END_ADDRESS" "" +"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_FILL_START_ADDRESS" "" +"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_MOVE_END_ADDRESS" "" +"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_MOVE_START_ADDRESS" "" +"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_SEARCH_END_ADDRESS" "" +"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_SEARCH_START_ADDRESS" "" +"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_SET_DEST_ADDRESS" "" +"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_TEST_END_ADDRESS" "" +"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_TEST_START_ADDRESS" "" +"{313F4FC2-6566-11D5-8BBE-0004E2013C71}MemoryCtrlViews" "0" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_BREAK_BREAK_ACCESS_COUNT" "0" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_BREAK_BREAK_CYCLE_COUNT" "0" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_BREAK_BREAK_DATA_COUNT" "0" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_BREAK_BREAK_REGISTER_COUNT" "0" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_BREAK_BREAK_SEQUENCE_COUNT" "0" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_BREAK_PC_BREAK_COUNT" "0" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_BUSCYCLEOCCUR_COUNT" "0" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_CONFIG_CPU_FREQUENCY" "100000" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_CONFIG_ENDIAN" "LITTLE" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_CONFIG_PCLOCKRATE" "1" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_CONFIG_ROUND" "RM_NEAR" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_EXEC_EXEC_MODE" "STOP" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_EXEC_STEP_RATE" "40000" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_FILEIOPORT_COUNT" "0" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_FILEIOVARIALBE_COUNT" "0" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_INST_DECODE_CACHE_ENABLE_FLAG" "OFF" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_IODLL_COUNT" "0" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_MEMORY_AUTO_ALLOC_RESOURCE" "1" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_MEMORY_MAP_BUS_WIDTH" "32" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_MEMORY_MAP_MAP0" "0x00000000,0x0001FFFF,32, 1,RAM" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_MEMORY_MAP_MAP0_ENDIAN" "2" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_MEMORY_MAP_MAP0_WRITE_STATE" "1" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_MEMORY_MAP_MAP1" "0x00080000,0x000FFFFF,32, 1,I/O" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_MEMORY_MAP_MAP1_ENDIAN" "0" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_MEMORY_MAP_MAP1_WRITE_STATE" "1" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_MEMORY_MAP_MAP2" "0x00100000,0x00107FFF,32, 1,ROM" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_MEMORY_MAP_MAP2_ENDIAN" "2" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_MEMORY_MAP_MAP2_WRITE_STATE" "1" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_MEMORY_MAP_MAP3" "0x007F8000,0x007F9FFF,32, 1,RAM" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_MEMORY_MAP_MAP3_ENDIAN" "2" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_MEMORY_MAP_MAP3_WRITE_STATE" "1" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_MEMORY_MAP_MAP4" "0x007FC000,0x007FC4FF,32, 1,I/O" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_MEMORY_MAP_MAP4_ENDIAN" "0" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_MEMORY_MAP_MAP4_WRITE_STATE" "1" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_MEMORY_MAP_MAP5" "0x007FFC00,0x007FFFFF,32, 1,I/O" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_MEMORY_MAP_MAP5_ENDIAN" "0" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_MEMORY_MAP_MAP5_WRITE_STATE" "1" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_MEMORY_MAP_MAP6" "0x00E00000,0x00FFFFFF,32, 1,ROM" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_MEMORY_MAP_MAP6_ENDIAN" "2" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_MEMORY_MAP_MAP6_WRITE_STATE" "1" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_MEMORY_MAP_MAP7" "0xFEFFE000,0xFEFFFFFF,32, 1,ROM" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_MEMORY_MAP_MAP7_ENDIAN" "2" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_MEMORY_MAP_MAP7_WRITE_STATE" "1" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_MEMORY_MAP_MAP8" "0xFF7FC000,0xFF7FFFFF,32, 1,ROM" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_MEMORY_MAP_MAP8_ENDIAN" "2" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_MEMORY_MAP_MAP8_WRITE_STATE" "1" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_MEMORY_MAP_MAP9" "0xFFE00000,0xFFFFFFFF,32, 1,ROM" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_MEMORY_MAP_MAP9_ENDIAN" "2" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_MEMORY_MAP_MAP9_WRITE_STATE" "1" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_MEMORY_MAP_MEMORY_MAP_COUNT" "10" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_MEMORY_MAP_MEMORY_MODE" "0" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_MEMORY_MAP_PRG_WIDTH" "-1" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_MEMORY_RESOURCE_MEMORY_RESOURCE_COUNT" "5" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_MEMORY_RESOURCE_MEMRES0" "0x00000000,0x0001FFFF,3" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_MEMORY_RESOURCE_MEMRES1" "0x00080000,0x000FFFFF,3" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_MEMORY_RESOURCE_MEMRES2" "0x007FC000,0x007FC4FF,3" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_MEMORY_RESOURCE_MEMRES3" "0x007FFC00,0x007FFFFF,3" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_MEMORY_RESOURCE_MEMRES4" "0xFFFF8000,0xFFFFFFFF,3" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_SESSION_IS_SAVED" "YES" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_SYSTEM_CALL_Interrupt_Exception" "1" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_SYSTEM_CALL_SYSTEM_CALL_ADDRESS" "0x00000000" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_SYSTEM_CALL_SYSTEM_CALL_FLAG" "OFF" +"{3575AD59-64F7-49AB-BD50-52BB206A6DDE}T_TRACE2_TRACE2_ACQUISITION" "0,65536,0,0" +"{48FF5DA0-6FFA-11D5-B7CE-00E029352378}CoverageCtrlViews" "0" +"{48FF5DA0-6FFA-11D5-B7CE-00E029352378}CoverageCtrlViewsFromDiffFile" "0" +"{48FF5DA0-6FFA-11D5-B7CE-00E029352378}CoverageFileName" "0" +"{48FF5DA0-6FFA-11D5-B7CE-00E029352378}EcxCov_Cov_SL" "" +"{48FF5DA0-6FFA-11D5-B7CE-00E029352378}EcxCov_Open_End" "" +"{48FF5DA0-6FFA-11D5-B7CE-00E029352378}EcxCov_Open_Start" "" +"{48FF5DA0-6FFA-11D5-B7CE-00E029352378}EcxCov_Src_Open" "" +"{4F025ABC-BE66-4CB6-9CEE-06C61418278E}Trace2CtrlSaveFileDir" "" +"{4F025ABC-BE66-4CB6-9CEE-06C61418278E}Trace2CtrlSaveFileName" "" +"{4F025ABC-BE66-4CB6-9CEE-06C61418278E}Trace2CtrlViews" "0" +"{5F75FDA0-6FF0-11D5-B7CE-00E029352378}PACtrlPAState" "0" +"{5F75FDA0-6FF0-11D5-B7CE-00E029352378}PACtrlSaveFileDir" "" +"{5F75FDA0-6FF0-11D5-B7CE-00E029352378}PACtrlSaveFileName" "" +"{5F75FDA0-6FF0-11D5-B7CE-00E029352378}PACtrlViews" "0" +"{633553C0-6FE9-11D5-B7CE-00E029352378}ProfileCtrlChartMultiOpen" "0" +"{633553C0-6FE9-11D5-B7CE-00E029352378}ProfileCtrlEnable" "0" +"{633553C0-6FE9-11D5-B7CE-00E029352378}ProfileCtrlSaveListFileDir" "" +"{633553C0-6FE9-11D5-B7CE-00E029352378}ProfileCtrlSaveListFileName" "" +"{633553C0-6FE9-11D5-B7CE-00E029352378}ProfileCtrlSaveTreeFileDir" "" +"{633553C0-6FE9-11D5-B7CE-00E029352378}ProfileCtrlSaveTreeFileName" "" +"{633553C0-6FE9-11D5-B7CE-00E029352378}ProfileCtrlViews" "0" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_EVAL_DENORMAL_MODE" "0" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_EVAL_ROUND_MODE" "0" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_0" "0000000000000000" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_1" "0000000000000000" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_10" "0000000000000000" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_11" "0000000000000000" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_12" "0000000000000000" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_13" "0000000000000000" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_14" "0000000000000000" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_15" "0000000000000000" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_16" "0000000000000000" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_17" "0000000000000000" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_18" "0000000000000000" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_19" "0000000000000000" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_2" "0000000000000000" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_20" "0000000000000000" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_21" "0000000000000000" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_22" "0000000000000000" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_23" "0000000000000000" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_24" "0000000000000100" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_25" "0000000000000000" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_3" "0000000000000000" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_4" "0000000000000000" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_5" "0000000000000000" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_6" "0000000000000000" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_7" "0000000000000000" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_8" "0000000000000000" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_9" "0000000000000000" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_COUNT" "26" +"{6C4D5B81-FD67-46A9-A089-EA44DCDE47FD}RAMMonitorManagerCtrlBlockInfoFileDir" "" +"{6C4D5B81-FD67-46A9-A089-EA44DCDE47FD}RAMMonitorManagerCtrlBlockInfoFileName" "" +"{7943C44E-7D44-422A-9140-4CF55C88F7D3}DifferenceCtrlViews" "0" +"{7FA2E460-7EC0-11D5-8EB6-00004CC34E9D}SimIOCtrlViews" "0" +"{855C64C3-E49C-4450-9BCA-C9822566D214}OSObjectCtrlViews" "0" +"{85AC95E0-0CE6-11D6-8EB6-00004CC34E9D}TriggerCtrlViews" "0" +"{8A898260-6F1D-11D5-8EB6-00004CC34E9D}ECX_WAVE" "00000000,00000000,0,0" +"{8A898260-6F1D-11D5-8EB6-00004CC34E9D}ECX_WAVE_ADDRESS_NAME" "" +"{8A898260-6F1D-11D5-8EB6-00004CC34E9D}ECX_WAVE_COMB_ADDRESS" ",,,," +"{8A898260-6F1D-11D5-8EB6-00004CC34E9D}ECX_WAVE_COMB_BUFFER" ",,,," +"{8A898260-6F1D-11D5-8EB6-00004CC34E9D}ECX_WAVE_SAMPLING_RATE" "1000" +"{8A898260-6F1D-11D5-8EB6-00004CC34E9D}WaveformCtrlViews" "0" +"{95A081A1-7001-11D5-B1FD-00A0C9E23A58}RegistersCtrlViews" "0" +"{99F424FE-E727-45AE-AE1F-11E29DEF272C}ECX_GuiIO_SAMPLING_RATE" "1000" +"{99F424FE-E727-45AE-AE1F-11E29DEF272C}PDGuiIOCtrlPDGuiIOLastSaveDirectory" "" +"{99F424FE-E727-45AE-AE1F-11E29DEF272C}PDGuiIOCtrlViews" "0" +"{AC411480-6F0A-11D5-8EB6-00004CC34E9D}ECX_IMAGE_ADDRESS_NAME" "" +"{AC411480-6F0A-11D5-8EB6-00004CC34E9D}ECX_IMAGE_BUFFER" "00000000,00000000,0,0" +"{AC411480-6F0A-11D5-8EB6-00004CC34E9D}ECX_IMAGE_COLOR" "0,0,0,0" +"{AC411480-6F0A-11D5-8EB6-00004CC34E9D}ECX_IMAGE_COMB_ADDRESS" ",,,," +"{AC411480-6F0A-11D5-8EB6-00004CC34E9D}ECX_IMAGE_COMB_PALETTE" ",,,," +"{AC411480-6F0A-11D5-8EB6-00004CC34E9D}ECX_IMAGE_PALETTE_NAME" "" +"{AC411480-6F0A-11D5-8EB6-00004CC34E9D}ECX_IMAGE_REDRAW_CONTINUOUSLY" "0,2" +"{AC411480-6F0A-11D5-8EB6-00004CC34E9D}ECX_IMAGE_SAMPLEING_RATE" "1000" +"{AC411480-6F0A-11D5-8EB6-00004CC34E9D}ECX_IMAGE_VIEW" "0,0,0,0,0,0" +"{AC411480-6F0A-11D5-8EB6-00004CC34E9D}ImageCtrlViews" "0" +"{B266D880-6FA1-11D5-8613-00A024591A38}WatchCtrlViews" "0" +"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWndInitial_Radix" "0" +"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWndRecentFile_WatchRecord" "" +"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWndRecentFile_WatchSave" "" +"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWndUpdate_Interval" "100" +"{CBEBB610-1516-11D4-8F2D-00409545B67B}ElfDwarf2Objects" "1" +"{CBEBB610-1516-11D4-8F2D-00409545B67B}LoadModule0OBJ_ELFDWARF2_ARRAY_EXPAND_LIMIT" "-1" +"{CBEBB610-1516-11D4-8F2D-00409545B67B}LoadModule0OBJ_ELFDWARF2_STATIC_MEM_EXPAND" "1" +"{D595F9C0-EF22-11D5-B7DB-0000E10B3DA9}EventCtrlViews" "0" +"{EEDC9300-6FBE-11D5-8613-00A024591A38}LocalsCtrlViews" "0" +"{EEDC9301-6FBE-11D5-8613-00A024591A38}StackTraceCtrlViews" "0" +"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOCtrlIOFile" "" +"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOCtrlSaveFileDir" "$(CONFIGDIR)" +"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOCtrlSaveFileName" "" +"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOCtrlViews" "0" +"{F923CED3-3318-4B43-B931-0AE76B289176}TaskTraceCtrlAnalyzeViews" "0" +"{F923CED3-3318-4B43-B931-0AE76B289176}TaskTraceCtrlFileSaveDirectory" "" +"{F923CED3-3318-4B43-B931-0AE76B289176}TaskTraceCtrlTraceViews" "0" +[LANGUAGE] +"English" +[CONFIG_INFO_VD1] +1 +[CONFIG_INFO_VD2] +0 +[CONFIG_INFO_VD3] +0 +[CONFIG_INFO_VD4] +0 +[WINDOW_POSITION_STATE_DATA_VD1] +"Help" "TOOLBAR 0" 59419 1 5 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_00000001_CmdLine}" "WINDOW" 59422 0 1 "0.07" 228 0 0 350 200 17 0 "32771|32772|32778|<>|32773|32774|<>|32820|<>|32801|32824" "0.0" +"{WK_00000001_OUTPUT}" "WINDOW" 59422 0 0 "1.00" 228 560 340 350 200 18 0 "36756|36757|36758|36759|<>|36746|36747|<>|39531|<>|39500|39534|<>|36687" "0.0" +"{WK_00000002_WORKSPACE}" "WINDOW" 59420 0 0 "1.00" 346 560 340 350 200 18 0 "" "0.0" +"{WK_TB00000001_STANDARD}" "TOOLBAR 0" 59419 0 2 "0.00" 0 0 0 0 0 18 0 "" "0.0" +"{WK_TB00000002_EDITOR}" "TOOLBAR 0" 59419 0 0 "0.00" 0 0 0 0 0 18 0 "" "0.0" +"{WK_TB00000003_BOOKMARKS}" "TOOLBAR 0" 59419 1 1 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_TB00000004_TEMPLATES}" "TOOLBAR 0" 59419 1 0 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_TB00000005_SEARCH}" "TOOLBAR 0" 59419 0 1 "0.00" 0 0 0 0 0 18 0 "" "0.0" +"{WK_TB00000007_DEBUG}" "TOOLBAR 0" 59419 0 0 "0.00" 0 914 231 0 0 6 0 "" "0.0" +"{WK_TB00000008_DEBUGRUN}" "TOOLBAR 0" 59419 0 3 "0.00" 0 298 189 0 0 18 0 "" "0.0" +"{WK_TB00000009_VERSIONCONTROL}" "TOOLBAR 0" 59419 1 3 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_TB00000011_CPU}" "TOOLBAR 0" 59419 2 1 "0.00" 0 0 0 0 0 18 0 "" "0.0" +"{WK_TB00000012_MAP}" "TOOLBAR 0" 59419 1 4 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_TB00000013_SYMBOL}" "TOOLBAR 0" 59419 2 2 "0.00" 0 0 0 0 0 18 0 "" "0.0" +"{WK_TB00000014_CODE}" "TOOLBAR 0" 59419 2 4 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_TB00000015_PERFORMANCE}" "TOOLBAR 0" 59419 2 5 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_TB00000016_GRAPHIC}" "TOOLBAR 0" 59419 2 3 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_TB00000018_DEFAULTWINDOW}" "TOOLBAR 0" 59419 1 2 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_TB00000023_RTOS}" "TOOLBAR 0" 59419 2 6 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_TB00000025_HELPSYSTEMTOOL}" "TOOLBAR 0" 59419 0 0 "0.00" 0 788 192 0 0 5 0 "" "0.0" +"{WK_TB00000026_MACRO}" "TOOLBAR 0" 59419 1 6 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_TB00000028_RTOSDEBUG}" "TOOLBAR 0" 59419 0 0 "0.00" 0 559 254 0 0 5 0 "" "0.0" +"{WK_TB00000029_SYSTEMTOOL}" "TOOLBAR 0" 59419 2 0 "0.00" 0 0 0 0 0 17 0 "" "0.0" +[WINDOW_POSITION_STATE_DATA_VD2] +[WINDOW_POSITION_STATE_DATA_VD3] +[WINDOW_POSITION_STATE_DATA_VD4] +[WINDOW_Z_ORDER] +"{WK_TB00000007_DEBUG} TOOLBAR 0" +"{WK_TB00000028_RTOSDEBUG} TOOLBAR 0" +"{WK_TB00000025_HELPSYSTEMTOOL} TOOLBAR 0" +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\main-full.c" +[TARGET_NAME] +"RX600 Simulator" "" 0 +[STATUSBAR_STATEINFO_VD1] +"MasterShowState" 1 +"ApplicationShowState" 1 +"DebuggerShowState" 1 +[STATUSBAR_STATEINFO_VD2] +"MasterShowState" 1 +"ApplicationShowState" 1 +"DebuggerShowState" 1 +[STATUSBAR_STATEINFO_VD3] +"MasterShowState" 1 +"ApplicationShowState" 1 +"DebuggerShowState" 1 +[STATUSBAR_STATEINFO_VD4] +"MasterShowState" 1 +"ApplicationShowState" 1 +"DebuggerShowState" 1 +[STATUSBAR_DEBUGGER_PANESTATE_VD1] +[STATUSBAR_DEBUGGER_PANESTATE_VD2] +[STATUSBAR_DEBUGGER_PANESTATE_VD3] +[STATUSBAR_DEBUGGER_PANESTATE_VD4] +[DEBUGGER_OPTIONS] +"[V|VERSION|1] [S|MAP|^"0x00000000,0x0001FFFF,RAM,32,101 0x00080000,0x000FFFFF,I/O,32,101 0x00100000,0x00107FFF,ROM,32,101 0x007F8000,0x007F9FFF,RAM,32,101 0x007FC000,0x007FC4FF,I/O,32,101 0x007FFC00,0x007FFFFF,I/O,32,101 0x00E00000,0x00FFFFFF,ROM,32,101 0xFEFFE000,0xFEFFFFFF,ROM,32,101 0xFF7FC000,0xFF7FFFFF,ROM,32,101 0xFFE00000,0xFFFFFFFF,ROM,32,101^"] [S|RESOURCE|^"0x00000000,0x0001FFFF,R/W 0x00080000,0x000FFFFF,R/W 0x007FC000,0x007FC4FF,R/W 0x007FFC00,0x007FFFFF,R/W 0xFFFF8000,0xFFFFFFFF,R/W^"] [B|SIMIOF|0] [I|SIMIOADR|0x00000000] [I|BUS_MODE|0] [S|ENDIAN|^"LITTLE^"] [S|PATCH|^"OFF^"] [S|ROM_MODE|^"^"]" +[DOWNLOAD_MODULES] +"$(CONFIGDIR)\$(PROJECTNAME).abs" 0 "Elf/Dwarf2" 0 0 1 0 +[CONNECT_ON_GO] +"FALSE" +[DOWNLOAD_MODULES_AFTER_BUILD] +"TRUE" +[REMOVE_BREAKPOINTS_ON_DOWNLOAD] +"FALSE" +[DISABLE_MEMORY_ACCESS_PRIOR_TO_COMMAND_FILE_EXECUTION] +"FALSE" +[LIMIT_DISASSEMBLY_MEMORY_ACCESS] +"FALSE" +[DISABLE_MEMORY_ACCESS_DURING_EXECUTION] +"FALSE" +[DEBUGGER_OPTIONS_PROPERTIES] +"1" +[COMMAND_FILES] +[DEFAULT_DEBUG_FORMAT] +"Elf/Dwarf2" +[FLASH_DETAILS] +"0.000000" 0 0 "" 0 "" 0 0 "" 1 1 0 0 0 0 0 "" "" "" "" "" +[BREAKPOINTS] +[END] diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/include/IntQueueTimer.h b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/include/IntQueueTimer.h new file mode 100644 index 000000000..663b26f08 --- /dev/null +++ b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/include/IntQueueTimer.h @@ -0,0 +1,62 @@ +/* + FreeRTOS V7.1.0 - Copyright (C) 2011 Real Time Engineers Ltd. + + + *************************************************************************** + * * + * FreeRTOS tutorial books are available in pdf and paperback. * + * Complete, revised, and edited pdf reference manuals are also * + * available. * + * * + * Purchasing FreeRTOS documentation will not only help you, by * + * ensuring you get running as quickly as possible and with an * + * in-depth knowledge of how to use FreeRTOS, it will also help * + * the FreeRTOS project to continue with its mission of providing * + * professional grade, cross platform, de facto standard solutions * + * for microcontrollers - completely free of charge! * + * * + * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * + * * + * Thank you for using FreeRTOS, and thank you for your support! * + * * + *************************************************************************** + + + This file is part of the FreeRTOS distribution. + + FreeRTOS is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License (version 2) as published by the + Free Software Foundation AND MODIFIED BY the FreeRTOS exception. + >>>NOTE<<< The modification to the GPL is included to allow you to + distribute a combined work that includes FreeRTOS without being obliged to + provide the source code for proprietary components outside of the FreeRTOS + kernel. FreeRTOS is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. You should have received a copy of the GNU General Public + License and the FreeRTOS license exception along with FreeRTOS; if not it + can be viewed here: http://www.freertos.org/a00114.html and also obtained + by writing to Richard Barry, contact details for whom are available on the + FreeRTOS WEB site. + + 1 tab == 4 spaces! + + http://www.FreeRTOS.org - Documentation, latest information, license and + contact details. + + http://www.SafeRTOS.com - A version that is certified for use in safety + critical systems. + + http://www.OpenRTOS.com - Commercial support, development, porting, + licensing and training services. +*/ + +#ifndef INT_QUEUE_TIMER_H +#define INT_QUEUE_TIMER_H + +void vInitialiseTimerForIntQueueTest( void ); +portBASE_TYPE xTimer0Handler( void ); +portBASE_TYPE xTimer1Handler( void ); + +#endif + diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/include/OLDiodefine.h b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/include/OLDiodefine.h new file mode 100644 index 000000000..405b09000 --- /dev/null +++ b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/include/OLDiodefine.h @@ -0,0 +1,6615 @@ +/********************************************************************************/ +/* */ +/* Device : RX/RX200/RX210 */ +/* File Name : ioedfine.h */ +/* Abstract : Definition of I/O Register. */ +/* History : V0.1 (2010-10-05) [Hardware Manual Revision : 0.10] */ +/* Note : This is a typical example. */ +/* */ +/* Copyright(c) 2010 Renesas Electronics Corp. */ +/* And Renesas Solutions Corp. ,All Rights Reserved. */ +/* */ +/********************************************************************************/ +/* */ +/* DESCRIPTION : Definition of ICU Register */ +/* CPU TYPE : RX210 */ +/* */ +/* Usage : IR,DTCER,IER,IPR of ICU Register */ +/* The following IR, DTCE, IEN, IPR macro functions simplify usage. */ +/* The bit access operation is "Bit_Name(interrupt source,name)". */ +/* A part of the name can be omitted. */ +/* for example : */ +/* IR(MTU0,TGIA0) = 0; expands to : */ +/* ICU.IR[114].BIT.IR = 0; */ +/* */ +/* DTCE(ICU,IRQ0) = 1; expands to : */ +/* ICU.DTCER[64].BIT.DTCE = 1; */ +/* */ +/* IEN(CMT0,CMI0) = 1; expands to : */ +/* ICU.IER[0x03].BIT.IEN4 = 1; */ +/* */ +/* IPR(MTU0,TGIV0) = 2; expands to : */ +/* IPR(MTU0,TGI ) = 2; // TGIV0,TGIE0,TGIF0 share IPR level. */ +/* ICU.IPR[0x118].BIT.IPR = 2; */ +/* */ +/* IPR(SCI0,ERI0) = 3; expands to : */ +/* IPR(SCI0, ) = 3; // SCI0 uses single IPR for all sources. */ +/* ICU.IPR[0x214].BIT.IPR = 3; */ +/* */ +/* Usage : #pragma interrupt Function_Identifier(vect=**) */ +/* The number of vector is "(interrupt source, name)". */ +/* for example : */ +/* #pragma interrupt INT_IRQ0(vect=VECT(ICU,IRQ0)) expands to : */ +/* #pragma interrupt INT_IRQ0(vect=64) */ +/* #pragma interrupt INT_CMT0_CMI0(vect=VECT(CMT0,CMI0)) expands to : */ +/* #pragma interrupt INT_CMT0_CMI0(vect=28) */ +/* #pragma interrupt INT_MTU0_TGIA0(vect=VECT(MTU0,TGIA0)) expands to : */ +/* #pragma interrupt INT_MTU0_TGIA0(vect=114) */ +/* */ +/* Usage : MSTPCRA,MSTPCRB,MSTPCRC of SYSTEM Register */ +/* The bit access operation is "MSTP(name)". */ +/* The name that can be used is a macro name defined with "iodefine.h". */ +/* for example : */ +/* MSTP(TMR2) = 0; // TMR2,TMR3,TMR23 expands to : */ +/* SYSTEM.MSTPCRA.BIT.MSTPA4 = 0; */ +/* MSTP(SCI0) = 0; // SCI0 expands to : */ +/* SYSTEM.MSTPCRB.BIT.MSTPB31 = 0; */ +/* MSTP(MTU4) = 0; // MTU,MTU0,MTU1,MTU2,MTU3,MTU4,MTU5 expands to : */ +/* SYSTEM.MSTPCRA.BIT.MSTPA9 = 0; */ +/* MSTP(CMT3) = 0; // CMT2,CMT3 expands to : */ +/* SYSTEM.MSTPCRA.BIT.MSTPA14 = 0; */ +/* */ +/* */ +/********************************************************************************/ +#ifndef __RX210IODEFINE_HEADER__ +#define __RX210IODEFINE_HEADER__ +#pragma bit_order left +#pragma unpack +struct st_bsc { + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char STSCLR:1; + } BIT; + } BERCLR; + char wk0[3]; + union { + unsigned char BYTE; + struct { + unsigned char :6; + unsigned char TOEN:1; + unsigned char IGAEN:1; + } BIT; + } BEREN; + char wk1[3]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char MST:3; + unsigned char :2; + unsigned char TO:1; + unsigned char IA:1; + } BIT; + } BERSR1; + char wk2[1]; + union { + unsigned short WORD; + struct { + unsigned short ADDR:13; + } BIT; + } BERSR2; + char wk3[4]; + union { + unsigned short WORD; + struct { + unsigned short :2; + unsigned short BPEB:2; + unsigned short BPFB:2; + unsigned short BPHB:2; + unsigned short BPGB:2; + unsigned short BPIB:2; + unsigned short BPRO:2; + unsigned short BPRA:2; + } BIT; + } BUSPRI; + char wk4[7408]; + union { + unsigned short WORD; + struct { + unsigned short PRMOD:1; + unsigned short :5; + unsigned short PWENB:1; + unsigned short PRENB:1; + unsigned short :4; + unsigned short EWENB:1; + unsigned short :2; + unsigned short WRMOD:1; + } BIT; + } CS0MOD; + union { + unsigned long LONG; + struct { + unsigned long :3; + unsigned long CSRWAIT:5; + unsigned long :3; + unsigned long CSWWAIT:5; + unsigned long :5; + unsigned long CSPRWAIT:3; + unsigned long :5; + unsigned long CSPWWAIT:3; + } BIT; + } CS0WCR1; + union { + unsigned long LONG; + struct { + unsigned long :1; + unsigned long CSON:3; + unsigned long :1; + unsigned long WDON:3; + unsigned long :1; + unsigned long WRON:3; + unsigned long :1; + unsigned long RDON:3; + unsigned long :2; + unsigned long AWAIT:2; + unsigned long :1; + unsigned long WDOFF:3; + unsigned long :1; + unsigned long CSWOFF:3; + unsigned long :1; + unsigned long CSROFF:3; + } BIT; + } CS0WCR2; + char wk5[6]; + union { + unsigned short WORD; + struct { + unsigned short PRMOD:1; + unsigned short :5; + unsigned short PWENB:1; + unsigned short PRENB:1; + unsigned short :4; + unsigned short EWENB:1; + unsigned short :2; + unsigned short WRMOD:1; + } BIT; + } CS1MOD; + union { + unsigned long LONG; + struct { + unsigned long :3; + unsigned long CSRWAIT:5; + unsigned long :3; + unsigned long CSWWAIT:5; + unsigned long :5; + unsigned long CSPRWAIT:3; + unsigned long :5; + unsigned long CSPWWAIT:3; + } BIT; + } CS1WCR1; + union { + unsigned long LONG; + struct { + unsigned long :1; + unsigned long CSON:3; + unsigned long :1; + unsigned long WDON:3; + unsigned long :1; + unsigned long WRON:3; + unsigned long :1; + unsigned long RDON:3; + unsigned long :2; + unsigned long AWAIT:2; + unsigned long :1; + unsigned long WDOFF:3; + unsigned long :1; + unsigned long CSWOFF:3; + unsigned long :1; + unsigned long CSROFF:3; + } BIT; + } CS1WCR2; + char wk6[6]; + union { + unsigned short WORD; + struct { + unsigned short PRMOD:1; + unsigned short :5; + unsigned short PWENB:1; + unsigned short PRENB:1; + unsigned short :4; + unsigned short EWENB:1; + unsigned short :2; + unsigned short WRMOD:1; + } BIT; + } CS2MOD; + union { + unsigned long LONG; + struct { + unsigned long :3; + unsigned long CSRWAIT:5; + unsigned long :3; + unsigned long CSWWAIT:5; + unsigned long :5; + unsigned long CSPRWAIT:3; + unsigned long :5; + unsigned long CSPWWAIT:3; + } BIT; + } CS2WCR1; + union { + unsigned long LONG; + struct { + unsigned long :1; + unsigned long CSON:3; + unsigned long :1; + unsigned long WDON:3; + unsigned long :1; + unsigned long WRON:3; + unsigned long :1; + unsigned long RDON:3; + unsigned long :2; + unsigned long AWAIT:2; + unsigned long :1; + unsigned long WDOFF:3; + unsigned long :1; + unsigned long CSWOFF:3; + unsigned long :1; + unsigned long CSROFF:3; + } BIT; + } CS2WCR2; + char wk7[6]; + union { + unsigned short WORD; + struct { + unsigned short PRMOD:1; + unsigned short :5; + unsigned short PWENB:1; + unsigned short PRENB:1; + unsigned short :4; + unsigned short EWENB:1; + unsigned short :2; + unsigned short WRMOD:1; + } BIT; + } CS3MOD; + union { + unsigned long LONG; + struct { + unsigned long :3; + unsigned long CSRWAIT:5; + unsigned long :3; + unsigned long CSWWAIT:5; + unsigned long :5; + unsigned long CSPRWAIT:3; + unsigned long :5; + unsigned long CSPWWAIT:3; + } BIT; + } CS3WCR1; + union { + unsigned long LONG; + struct { + unsigned long :1; + unsigned long CSON:3; + unsigned long :1; + unsigned long WDON:3; + unsigned long :1; + unsigned long WRON:3; + unsigned long :1; + unsigned long RDON:3; + unsigned long :2; + unsigned long AWAIT:2; + unsigned long :1; + unsigned long WDOFF:3; + unsigned long :1; + unsigned long CSWOFF:3; + unsigned long :1; + unsigned long CSROFF:3; + } BIT; + } CS3WCR2; + char wk8[1990]; + union { + unsigned short WORD; + struct { + unsigned short :3; + unsigned short MPXEN:1; + unsigned short :3; + unsigned short EMODE:1; + unsigned short :2; + unsigned short BSIZE:2; + unsigned short :3; + unsigned short EXENB:1; + } BIT; + } CS0CR; + char wk9[6]; + union { + unsigned short WORD; + struct { + unsigned short :4; + unsigned short WRCV:4; + unsigned short :4; + unsigned short RRCV:4; + } BIT; + } CS0REC; + char wk10[6]; + union { + unsigned short WORD; + struct { + unsigned short :3; + unsigned short MPXEN:1; + unsigned short :3; + unsigned short EMODE:1; + unsigned short :2; + unsigned short BSIZE:2; + unsigned short :3; + unsigned short EXENB:1; + } BIT; + } CS1CR; + char wk11[6]; + union { + unsigned short WORD; + struct { + unsigned short :4; + unsigned short WRCV:4; + unsigned short :4; + unsigned short RRCV:4; + } BIT; + } CS1REC; + char wk12[6]; + union { + unsigned short WORD; + struct { + unsigned short :3; + unsigned short MPXEN:1; + unsigned short :3; + unsigned short EMODE:1; + unsigned short :2; + unsigned short BSIZE:2; + unsigned short :3; + unsigned short EXENB:1; + } BIT; + } CS2CR; + char wk13[6]; + union { + unsigned short WORD; + struct { + unsigned short :4; + unsigned short WRCV:4; + unsigned short :4; + unsigned short RRCV:4; + } BIT; + } CS2REC; + char wk14[6]; + union { + unsigned short WORD; + struct { + unsigned short :3; + unsigned short MPXEN:1; + unsigned short :3; + unsigned short EMODE:1; + unsigned short :2; + unsigned short BSIZE:2; + unsigned short :3; + unsigned short EXENB:1; + } BIT; + } CS3CR; + char wk15[6]; + union { + unsigned short WORD; + struct { + unsigned short :4; + unsigned short WRCV:4; + unsigned short :4; + unsigned short RRCV:4; + } BIT; + } CS3REC; + char wk16[68]; + union { + unsigned short WORD; + struct { + unsigned short RCVENM7:1; + unsigned short RCVENM6:1; + unsigned short RCVENM5:1; + unsigned short RCVENM4:1; + unsigned short RCVENM3:1; + unsigned short RCVENM2:1; + unsigned short RCVENM1:1; + unsigned short RCVENM0:1; + unsigned short RCVEN7:1; + unsigned short RCVEN6:1; + unsigned short RCVEN5:1; + unsigned short RCVEN4:1; + unsigned short RCVEN3:1; + unsigned short RCVEN2:1; + unsigned short RCVEN1:1; + unsigned short RCVEN0:1; + } BIT; + } CSRECEN; +}; + +struct st_cac { + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char CFME:1; + } BIT; + } CACR0; + union { + unsigned char BYTE; + struct { + unsigned char EDGES:2; + unsigned char TCSS:2; + unsigned char FMCS:3; + unsigned char CACIE:1; + } BIT; + } CACR1; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char RCDS:2; + unsigned char RSCS:3; + unsigned char RPS:1; + } BIT; + } CACR2; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char OVFFCL:1; + unsigned char MENDFCL:1; + unsigned char FERRFCL:1; + unsigned char :1; + unsigned char OVFIE:1; + unsigned char MENDIE:1; + unsigned char FERRIE:1; + } BIT; + } CAICR; + union { + unsigned char BYTE; + struct { + unsigned char :5; + unsigned char OVFF:1; + unsigned char MENDF:1; + unsigned char FERRF:1; + } BIT; + } CASTR; + char wk0[1]; + unsigned short CAULVR; + unsigned short CALLVR; + unsigned short CACNTBR; +}; + +struct st_cmpb { + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char CPB2INI:1; + unsigned char :3; + unsigned char CPB1INI:1; + } BIT; + } CPBCNT1; + char wk0[1]; + union { + unsigned char BYTE; + struct { + unsigned char CPB2OUT:1; + unsigned char :3; + unsigned char CPB1OUT:1; + } BIT; + } CPBFLG; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char CPB2INTPL:1; + unsigned char CPB2INTEG:1; + unsigned char CPB2INTEN:1; + unsigned char :1; + unsigned char CPB1INTPL:1; + unsigned char CPB1INTEG:1; + unsigned char CPB1INTEN:1; + } BIT; + } CPBINT; + union { + unsigned char BYTE; + struct { + unsigned char CPB2F:2; + unsigned char :1; + unsigned char CPB2FEN:1; + unsigned char CPB1F:2; + unsigned char :1; + unsigned char CPB1FEN:1; + } BIT; + } CPBF; +}; + +struct st_cmt { + union { + unsigned short WORD; + struct { + unsigned short :14; + unsigned short STR1:1; + unsigned short STR0:1; + } BIT; + } CMSTR0; + char wk0[14]; + union { + unsigned short WORD; + struct { + unsigned short :14; + unsigned short STR3:1; + unsigned short STR2:1; + } BIT; + } CMSTR1; +}; + +struct st_cmt0 { + union { + unsigned short WORD; + struct { + unsigned short :9; + unsigned short CMIE:1; + unsigned short :4; + unsigned short CKS:2; + } BIT; + } CMCR; + unsigned short CMCNT; + unsigned short CMCOR; +}; + +struct st_crc { + union { + unsigned char BYTE; + struct { + unsigned char DORCLR:1; + unsigned char :4; + unsigned char LMS:1; + unsigned char GPS:2; + } BIT; + } CRCCR; + unsigned char CRCDIR; + unsigned short CRCDOR; +}; + +struct st_da { + unsigned short DADR0; + unsigned short DADR1; + union { + unsigned char BYTE; + struct { + unsigned char DAOE1:1; + unsigned char DAOE0:1; + unsigned char DAE:1; + } BIT; + } DACR; + union { + unsigned char BYTE; + struct { + unsigned char DPSEL:1; + } BIT; + } DADPR; +}; + +struct st_dmac { + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char DMST:1; + } BIT; + } DMAST; +}; + +struct st_dmac0 { + unsigned long DMSAR; + unsigned long DMDAR; + unsigned long DMCRA; + unsigned short DMCRB; + char wk0[2]; + union { + unsigned short WORD; + struct { + unsigned short MD:2; + unsigned short DTS:2; + unsigned short :2; + unsigned short SZ:2; + unsigned short :6; + unsigned short DCTG:2; + } BIT; + } DMTMD; + char wk1[1]; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char DTIE:1; + unsigned char ESIE:1; + unsigned char RPTIE:1; + unsigned char SARIE:1; + unsigned char DARIE:1; + } BIT; + } DMINT; + union { + unsigned short WORD; + struct { + unsigned short SM:2; + unsigned short :1; + unsigned short SARA:5; + unsigned short DM:2; + unsigned short :1; + unsigned short DARA:5; + } BIT; + } DMAMD; + char wk2[2]; + unsigned long DMOFR; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char DTE:1; + } BIT; + } DMCNT; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char CLRS:1; + unsigned char :3; + unsigned char SWREQ:1; + } BIT; + } DMREQ; + union { + unsigned char BYTE; + struct { + unsigned char ACT:1; + unsigned char :2; + unsigned char DTIF:1; + unsigned char :3; + unsigned char ESIF:1; + } BIT; + } DMSTS; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char DISEL:1; + } BIT; + } DMCSL; +}; + +struct st_dmac1 { + unsigned long DMSAR; + unsigned long DMDAR; + unsigned long DMCRA; + unsigned short DMCRB; + char wk0[2]; + union { + unsigned short WORD; + struct { + unsigned short MD:2; + unsigned short DTS:2; + unsigned short :2; + unsigned short SZ:2; + unsigned short :6; + unsigned short DCTG:2; + } BIT; + } DMTMD; + char wk1[1]; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char DTIE:1; + unsigned char ESIE:1; + unsigned char RPTIE:1; + unsigned char SARIE:1; + unsigned char DARIE:1; + } BIT; + } DMINT; + union { + unsigned short WORD; + struct { + unsigned short SM:2; + unsigned short :1; + unsigned short SARA:5; + unsigned short DM:2; + unsigned short :1; + unsigned short DARA:5; + } BIT; + } DMAMD; + char wk2[6]; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char DTE:1; + } BIT; + } DMCNT; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char CLRS:1; + unsigned char :3; + unsigned char SWREQ:1; + } BIT; + } DMREQ; + union { + unsigned char BYTE; + struct { + unsigned char ACT:1; + unsigned char :2; + unsigned char DTIF:1; + unsigned char :3; + unsigned char ESIF:1; + } BIT; + } DMSTS; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char DISEL:1; + } BIT; + } DMCSL; +}; + +struct st_doc { + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char DOPCFCL:1; + unsigned char DOPCF:1; + unsigned char DOPCIE:1; + unsigned char :1; + unsigned char DCSEL:1; + unsigned char OMS:2; + } BIT; + } DOCR; + char wk0[1]; + unsigned short DODIR; + unsigned short DODSR; +}; + +struct st_dtc { + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char RRS:1; + } BIT; + } DTCCR; + char wk0[3]; + unsigned long DTCVBR; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char SHORT:1; + } BIT; + } DTCADMOD; + char wk1[3]; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char DTCST:1; + } BIT; + } DTCST; + char wk2[1]; + union { + unsigned short WORD; + struct { + unsigned short ACT:1; + unsigned short :7; + unsigned short VECN:8; + } BIT; + } DTCSTS; +}; + +struct st_elc { + union { + unsigned char BYTE; + struct { + unsigned char ELCON:1; + } BIT; + } ELCR; + union { + unsigned char BYTE; + struct { + unsigned char ELS:8; + } BIT; + } ELSR[30]; + union { + unsigned char BYTE; + struct { + unsigned char MTU3MD:2; + unsigned char MTU2MD:2; + unsigned char MTU1MD:2; + } BIT; + } ELOPA; + union { + unsigned char BYTE; + struct { + unsigned char :6; + unsigned char MTU4MD:2; + } BIT; + } ELOPB; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char CMT1MD:2; + } BIT; + } ELOPC; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char TMR2MD:2; + unsigned char :2; + unsigned char TMR0MD:2; + } BIT; + } ELOPD; + union { + unsigned char BYTE; + struct { + unsigned char PRG7:1; + unsigned char PRG6:1; + unsigned char PRG5:1; + unsigned char PRG4:1; + unsigned char PRG3:1; + unsigned char PRG2:1; + unsigned char PRG1:1; + unsigned char PRG0:1; + } BIT; + } PGR1; + union { + unsigned char BYTE; + struct { + unsigned char PRG7:1; + unsigned char PRG6:1; + unsigned char PRG5:1; + unsigned char PRG4:1; + unsigned char PRG3:1; + unsigned char PRG2:1; + unsigned char PRG1:1; + unsigned char PRG0:1; + } BIT; + } PGR2; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char PGCO:3; + unsigned char :1; + unsigned char PGCOVE:1; + unsigned char PGCI:2; + } BIT; + } PGC1; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char PGCO:3; + unsigned char :1; + unsigned char PGCOVE:1; + unsigned char PGCI:2; + } BIT; + } PGC2; + union { + unsigned char BYTE; + struct { + unsigned char PDBF7:1; + unsigned char PDBF6:1; + unsigned char PDBF5:1; + unsigned char PDBF4:1; + unsigned char PDBF3:1; + unsigned char PDBF2:1; + unsigned char PDBF1:1; + unsigned char PDBF0:1; + } BIT; + } PDBF1; + union { + unsigned char BYTE; + struct { + unsigned char PDBF7:1; + unsigned char PDBF6:1; + unsigned char PDBF5:1; + unsigned char PDBF4:1; + unsigned char PDBF3:1; + unsigned char PDBF2:1; + unsigned char PDBF1:1; + unsigned char PDBF0:1; + } BIT; + } PDBF2; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char PSM:2; + unsigned char PSP:2; + unsigned char PSB:3; + } BIT; + } PEL0; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char PSM:2; + unsigned char PSP:2; + unsigned char PSB:3; + } BIT; + } PEL1; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char PSM:2; + unsigned char PSP:2; + unsigned char PSB:3; + } BIT; + } PEL2; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char PSM:2; + unsigned char PSP:2; + unsigned char PSB:3; + } BIT; + } PEL3; + union { + unsigned char BYTE; + struct { + unsigned char WI:1; + unsigned char WE:1; + unsigned char :5; + unsigned char SEG:1; + } BIT; + } ELSEGR; +}; + +struct st_exsystem { + union { + unsigned long LONG; + struct { + unsigned long :29; + unsigned long MDE:3; + } BIT; + } MDEB; + char wk0[8388484]; + union { + unsigned long LONG; + struct { + unsigned long :29; + unsigned long MDE:3; + } BIT; + } MDES; + char wk1[4]; + union { + unsigned long LONG; + struct { + unsigned long :23; + unsigned long HOCOEN:1; + unsigned long :5; + unsigned long LVDAS:1; + unsigned long VDSEL:2; + } BIT; + } OFS1; + union { + unsigned long LONG; + struct { + unsigned long :3; + unsigned long WDTRSTIRQS:1; + unsigned long WDTRPSS:2; + unsigned long WDTRPES:2; + unsigned long WDTCKS:4; + unsigned long WDTTOPS:2; + unsigned long WDTSTRT:1; + unsigned long :2; + unsigned long IWDTSLCSTP:1; + unsigned long :1; + unsigned long IWDTRSTIRQS:1; + unsigned long IWDTRPSS:2; + unsigned long IWDTRPES:2; + unsigned long IWDTCKS:4; + unsigned long IWDTTOPS:2; + unsigned long IWDTSTRT:1; + } BIT; + } OFS0; +}; + +struct st_flash { + union { + unsigned char BYTE; + struct { + unsigned char :6; + unsigned char FLWE:2; + } BIT; + } FWEPROR; + char wk0[7799147]; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char FRDMD:1; + } BIT; + } FMODR; + char wk1[13]; + union { + unsigned char BYTE; + struct { + unsigned char ROMAE:1; + unsigned char :2; + unsigned char CMDLK:1; + unsigned char DFLAE:1; + unsigned char :1; + unsigned char DFLRPE:1; + unsigned char DFLWPE:1; + } BIT; + } FASTAT; + union { + unsigned char BYTE; + struct { + unsigned char ROMAEIE:1; + unsigned char :2; + unsigned char CMDLKIE:1; + unsigned char DFLAEIE:1; + unsigned char :1; + unsigned char DFLRPEIE:1; + unsigned char DFLWPEIE:1; + } BIT; + } FAEINT; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char FRDYIE:1; + } BIT; + } FRDYIE; + char wk2[45]; + union { + unsigned short WORD; + struct { + unsigned short KEY:8; + unsigned short :4; + unsigned short DBRE3:1; + unsigned short DBRE2:1; + unsigned short DBRE1:1; + unsigned short DBRE0:1; + } BIT; + } DFLRE0; + char wk3[14]; + union { + unsigned short WORD; + struct { + unsigned short KEY:8; + unsigned short :4; + unsigned short DBWE3:1; + unsigned short DBWE2:1; + unsigned short DBWE1:1; + unsigned short DBWE0:1; + } BIT; + } DFLWE0; + char wk4[2]; + union { + unsigned short WORD; + struct { + unsigned short KEY:8; + unsigned short :7; + unsigned short FCRME:1; + } BIT; + } FCURAME; + char wk5[15194]; + union { + unsigned char BYTE; + struct { + unsigned char FRDY:1; + unsigned char ILGLERR:1; + unsigned char ERSERR:1; + unsigned char PRGERR:1; + unsigned char SUSRDY:1; + unsigned char :1; + unsigned char ERSSPD:1; + unsigned char PRGSPD:1; + } BIT; + } FSTATR0; + union { + unsigned char BYTE; + struct { + unsigned char FCUERR:1; + unsigned char :2; + unsigned char FLOCKST:1; + } BIT; + } FSTATR1; + union { + unsigned short WORD; + struct { + unsigned short FEKEY:8; + unsigned short FENTRYD:1; + unsigned short :6; + unsigned short FENTRY:1; + } BIT; + } FENTRYR; + union { + unsigned short WORD; + struct { + unsigned short FPKEY:8; + unsigned short :7; + unsigned short FPROTCN:1; + } BIT; + } FPROTR; + union { + unsigned short WORD; + struct { + unsigned short FRKEY:8; + unsigned short :7; + unsigned short FRESET:1; + } BIT; + } FRESETR; + char wk6[2]; + union { + unsigned short WORD; + struct { + unsigned short CMDR:8; + unsigned short PCMDR:8; + } BIT; + } FCMDR; + char wk7[12]; + union { + unsigned short WORD; + struct { + unsigned short :15; + unsigned short ESUSPMD:1; + } BIT; + } FCPSR; + union { + unsigned short WORD; + struct { + unsigned short BCSIZE:1; + unsigned short BCMODE:2; + unsigned short :2; + unsigned short BCADR:11; + } BIT; + } DFLBCCNT; + union { + unsigned short WORD; + struct { + unsigned short :8; + unsigned short PEERRST:8; + } BIT; + } FPESTAT; + union { + unsigned short WORD; + struct { + unsigned short :15; + unsigned short BCST:1; + } BIT; + } DFLBCSTAT; + char wk8[24]; + union { + unsigned short WORD; + struct { + unsigned short :8; + unsigned short PCKA:8; + } BIT; + } PCKAR; +}; + +struct st_icu { + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char IR:1; + } BIT; + } IR[250]; + char wk0[6]; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char DTCE:1; + } BIT; + } DTCER[249]; + char wk1[7]; + union { + unsigned char BYTE; + struct { + unsigned char IEN7:1; + unsigned char IEN6:1; + unsigned char IEN5:1; + unsigned char IEN4:1; + unsigned char IEN3:1; + unsigned char IEN2:1; + unsigned char IEN1:1; + unsigned char IEN0:1; + } BIT; + } IER[32]; + char wk2[192]; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char SWINT:1; + } BIT; + } SWINTR; + char wk3[15]; + union { + unsigned short WORD; + struct { + unsigned short FIEN:1; + unsigned short :7; + unsigned short FVCT:8; + } BIT; + } FIR; + char wk4[14]; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char IPR:4; + } BIT; + } IPR[250]; + char wk5[6]; + unsigned char DMRSR0; + char wk6[3]; + unsigned char DMRSR1; + char wk7[3]; + unsigned char DMRSR2; + char wk8[3]; + unsigned char DMRSR3; + char wk9[243]; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char IRQMD:2; + } BIT; + } IRQCR[8]; + char wk10[120]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char SRAMST:1; + unsigned char LVD2ST:1; + unsigned char LVD1ST:1; + unsigned char IWDTST:1; + unsigned char WDTST:1; + unsigned char OSTST:1; + unsigned char NMIST:1; + } BIT; + } NMISR; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char SRAMEN:1; + unsigned char LVD2EN:1; + unsigned char LVD1EN:1; + unsigned char IWDTEN:1; + unsigned char WDTEN:1; + unsigned char OSTEN:1; + unsigned char NMIEN:1; + } BIT; + } NMIER; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char LVD2CLR:1; + unsigned char LVD1CLR:1; + unsigned char IWDTCLR:1; + unsigned char WDTCLR:1; + unsigned char OSTCLR:1; + unsigned char NMICLR:1; + } BIT; + } NMICLR; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char NMIMD:1; + } BIT; + } NMICR; +}; + +struct st_iwdt { + unsigned char IWDTRR; + char wk0[1]; + union { + unsigned short WORD; + struct { + unsigned short :2; + unsigned short RPSS:2; + unsigned short :2; + unsigned short RPES:2; + unsigned short CKS:4; + unsigned short :2; + unsigned short TOPS:2; + } BIT; + } IWDTCR; + union { + unsigned short WORD; + struct { + unsigned short REFEF:1; + unsigned short UNDFF:1; + unsigned short CNTVAL:14; + } BIT; + } IWDTSR; + union { + unsigned char BYTE; + struct { + unsigned char RSTIRQS:1; + } BIT; + } IWDTRCR; + char wk1[1]; + union { + unsigned char BYTE; + struct { + unsigned char SLCSTP:1; + } BIT; + } IWDTCSTPR; +}; + +struct st_mpc { + union { + unsigned char BYTE; + struct { + unsigned char B0WI:1; + unsigned char PFSWE:1; + } BIT; + } PWPR; + char wk0[35]; + union { + unsigned char BYTE; + struct { + unsigned char ASEL:1; + } BIT; + } P03PFS; + char wk1[1]; + union { + unsigned char BYTE; + struct { + unsigned char ASEL:1; + } BIT; + } P05PFS; + char wk2[1]; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char PSEL:4; + } BIT; + } P07PFS; + char wk3[2]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char ISEL:1; + unsigned char :2; + unsigned char PSEL:4; + } BIT; + } P12PFS; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char ISEL:1; + unsigned char :2; + unsigned char PSEL:4; + } BIT; + } P13PFS; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char ISEL:1; + unsigned char :2; + unsigned char PSEL:4; + } BIT; + } P14PFS; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char ISEL:1; + unsigned char :2; + unsigned char PSEL:4; + } BIT; + } P15PFS; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char ISEL:1; + unsigned char :2; + unsigned char PSEL:4; + } BIT; + } P16PFS; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char ISEL:1; + unsigned char :2; + unsigned char PSEL:4; + } BIT; + } P17PFS; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char PSEL:4; + } BIT; + } P20PFS; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char PSEL:4; + } BIT; + } P21PFS; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char PSEL:4; + } BIT; + } P22PFS; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char PSEL:4; + } BIT; + } P23PFS; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char PSEL:4; + } BIT; + } P24PFS; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char PSEL:4; + } BIT; + } P25PFS; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char PSEL:4; + } BIT; + } P26PFS; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char PSEL:4; + } BIT; + } P27PFS; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char ISEL:1; + unsigned char :2; + unsigned char PSEL:4; + } BIT; + } P30PFS; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char ISEL:1; + unsigned char :2; + unsigned char PSEL:4; + } BIT; + } P31PFS; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char ISEL:1; + unsigned char :2; + unsigned char PSEL:4; + } BIT; + } P32PFS; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char ISEL:1; + unsigned char :2; + unsigned char PSEL:4; + } BIT; + } P33PFS; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char ISEL:1; + unsigned char :2; + unsigned char PSEL:4; + } BIT; + } P34PFS; + char wk4[3]; + union { + unsigned char BYTE; + struct { + unsigned char ASEL:1; + } BIT; + } P40PFS; + union { + unsigned char BYTE; + struct { + unsigned char ASEL:1; + } BIT; + } P41PFS; + union { + unsigned char BYTE; + struct { + unsigned char ASEL:1; + } BIT; + } P42PFS; + union { + unsigned char BYTE; + struct { + unsigned char ASEL:1; + } BIT; + } P43PFS; + union { + unsigned char BYTE; + struct { + unsigned char ASEL:1; + } BIT; + } P44PFS; + union { + unsigned char BYTE; + struct { + unsigned char ASEL:1; + } BIT; + } P45PFS; + union { + unsigned char BYTE; + struct { + unsigned char ASEL:1; + } BIT; + } P46PFS; + union { + unsigned char BYTE; + struct { + unsigned char ASEL:1; + } BIT; + } P47PFS; + char wk5[4]; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char PSEL:4; + } BIT; + } P54PFS; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char PSEL:4; + } BIT; + } P55PFS; + char wk6[34]; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char PSEL:4; + } BIT; + } PA0PFS; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char PSEL:4; + } BIT; + } PA1PFS; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char PSEL:4; + } BIT; + } PA2PFS; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char ISEL:1; + unsigned char :2; + unsigned char PSEL:4; + } BIT; + } PA3PFS; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char ISEL:1; + unsigned char :2; + unsigned char PSEL:4; + } BIT; + } PA4PFS; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char PSEL:4; + } BIT; + } PA5PFS; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char PSEL:4; + } BIT; + } PA6PFS; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char PSEL:4; + } BIT; + } PA7PFS; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char PSEL:4; + } BIT; + } PB0PFS; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char ISEL:1; + unsigned char :2; + unsigned char PSEL:4; + } BIT; + } PB1PFS; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char PSEL:4; + } BIT; + } PB2PFS; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char PSEL:4; + } BIT; + } PB3PFS; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char PSEL:4; + } BIT; + } PB4PFS; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char PSEL:4; + } BIT; + } PB5PFS; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char PSEL:4; + } BIT; + } PB6PFS; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char PSEL:4; + } BIT; + } PB7PFS; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char PSEL:4; + } BIT; + } PC0PFS; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char PSEL:4; + } BIT; + } PC1PFS; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char PSEL:4; + } BIT; + } PC2PFS; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char PSEL:4; + } BIT; + } PC3PFS; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char PSEL:4; + } BIT; + } PC4PFS; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char PSEL:4; + } BIT; + } PC5PFS; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char PSEL:4; + } BIT; + } PC6PFS; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char PSEL:4; + } BIT; + } PC7PFS; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char ISEL:1; + unsigned char :2; + unsigned char PSEL:4; + } BIT; + } PD0PFS; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char ISEL:1; + unsigned char :2; + unsigned char PSEL:4; + } BIT; + } PD1PFS; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char ISEL:1; + unsigned char :2; + unsigned char PSEL:4; + } BIT; + } PD2PFS; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char ISEL:1; + unsigned char :2; + unsigned char PSEL:4; + } BIT; + } PD3PFS; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char ISEL:1; + unsigned char :2; + unsigned char PSEL:4; + } BIT; + } PD4PFS; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char ISEL:1; + unsigned char :2; + unsigned char PSEL:4; + } BIT; + } PD5PFS; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char ISEL:1; + unsigned char :2; + unsigned char PSEL:4; + } BIT; + } PD6PFS; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char ISEL:1; + unsigned char :2; + unsigned char PSEL:4; + } BIT; + } PD7PFS; + union { + unsigned char BYTE; + struct { + unsigned char ASEL:1; + unsigned char :3; + unsigned char PSEL:4; + } BIT; + } PE0PFS; + union { + unsigned char BYTE; + struct { + unsigned char ASEL:1; + unsigned char :3; + unsigned char PSEL:4; + } BIT; + } PE1PFS; + union { + unsigned char BYTE; + struct { + unsigned char ASEL:1; + unsigned char ISEL:1; + unsigned char :2; + unsigned char PSEL:4; + } BIT; + } PE2PFS; + union { + unsigned char BYTE; + struct { + unsigned char ASEL:1; + unsigned char :3; + unsigned char PSEL:4; + } BIT; + } PE3PFS; + union { + unsigned char BYTE; + struct { + unsigned char ASEL:1; + unsigned char :3; + unsigned char PSEL:4; + } BIT; + } PE4PFS; + union { + unsigned char BYTE; + struct { + unsigned char ASEL:1; + unsigned char ISEL:1; + unsigned char :2; + unsigned char PSEL:4; + } BIT; + } PE5PFS; + union { + unsigned char BYTE; + struct { + unsigned char ASEL:1; + unsigned char ISEL:1; + unsigned char :2; + unsigned char PSEL:4; + } BIT; + } PE6PFS; + union { + unsigned char BYTE; + struct { + unsigned char ASEL:1; + unsigned char ISEL:1; + unsigned char :2; + unsigned char PSEL:4; + } BIT; + } PE7PFS; + char wk7[16]; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char PSEL:4; + } BIT; + } PH0PFS; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char ISEL:1; + unsigned char :2; + unsigned char PSEL:4; + } BIT; + } PH1PFS; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char ISEL:1; + unsigned char :2; + unsigned char PSEL:4; + } BIT; + } PH2PFS; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char PSEL:4; + } BIT; + } PH3PFS; + char wk8[5]; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char PSEL:4; + } BIT; + } PJ1PFS; + char wk9[1]; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char PSEL:4; + } BIT; + } PJ3PFS; +}; + +struct st_mtu { + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char OE4D:1; + unsigned char OE4C:1; + unsigned char OE3D:1; + unsigned char OE4B:1; + unsigned char OE4A:1; + unsigned char OE3B:1; + } BIT; + } TOER; + char wk0[2]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char BDC:1; + unsigned char N:1; + unsigned char P:1; + unsigned char FB:1; + unsigned char WF:1; + unsigned char VF:1; + unsigned char UF:1; + } BIT; + } TGCR; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char PSYE:1; + unsigned char :2; + unsigned char TOCL:1; + unsigned char TOCS:1; + unsigned char OLSN:1; + unsigned char OLSP:1; + } BIT; + } TOCR1; + union { + unsigned char BYTE; + struct { + unsigned char BF:2; + unsigned char OLS3N:1; + unsigned char OLS3P:1; + unsigned char OLS2N:1; + unsigned char OLS2P:1; + unsigned char OLS1N:1; + unsigned char OLS1P:1; + } BIT; + } TOCR2; + char wk1[4]; + unsigned short TCDR; + unsigned short TDDR; + char wk2[8]; + unsigned short TCNTS; + unsigned short TCBR; + char wk3[12]; + union { + unsigned char BYTE; + struct { + unsigned char T3AEN:1; + unsigned char T3ACOR:3; + unsigned char T4VEN:1; + unsigned char T4VCOR:3; + } BIT; + } TITCR; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char T3ACNT:3; + unsigned char :1; + unsigned char T4VCNT:3; + } BIT; + } TITCNT; + union { + unsigned char BYTE; + struct { + unsigned char :6; + unsigned char BTE:2; + } BIT; + } TBTER; + char wk4[1]; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char TDER:1; + } BIT; + } TDER; + char wk5[1]; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char OLS3N:1; + unsigned char OLS3P:1; + unsigned char OLS2N:1; + unsigned char OLS2P:1; + unsigned char OLS1N:1; + unsigned char OLS1P:1; + } BIT; + } TOLBR; + char wk6[41]; + union { + unsigned char BYTE; + struct { + unsigned char CCE:1; + unsigned char :6; + unsigned char WRE:1; + } BIT; + } TWCR; + char wk7[31]; + union { + unsigned char BYTE; + struct { + unsigned char CST4:1; + unsigned char CST3:1; + unsigned char :3; + unsigned char CST2:1; + unsigned char CST1:1; + unsigned char CST0:1; + } BIT; + } TSTR; + union { + unsigned char BYTE; + struct { + unsigned char SYNC4:1; + unsigned char SYNC3:1; + unsigned char :3; + unsigned char SYNC2:1; + unsigned char SYNC1:1; + unsigned char SYNC0:1; + } BIT; + } TSYR; + char wk8[2]; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char RWE:1; + } BIT; + } TRWER; + char wk9[11]; + unsigned char NFCR0; + unsigned char NFCR1; + unsigned char NFCR2; + unsigned char NFCR3; + unsigned char NFCR4; + unsigned char NFCR5; +}; + +struct st_mtu0 { + union { + unsigned char BYTE; + struct { + unsigned char CCLR:3; + unsigned char CKEG:2; + unsigned char TPSC:3; + } BIT; + } TCR; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char BFE:1; + unsigned char BFB:1; + unsigned char BFA:1; + unsigned char MD:4; + } BIT; + } TMDR; + union { + unsigned char BYTE; + struct { + unsigned char IOB:4; + unsigned char IOA:4; + } BIT; + } TIORH; + union { + unsigned char BYTE; + struct { + unsigned char IOD:4; + unsigned char IOC:4; + } BIT; + } TIORL; + union { + unsigned char BYTE; + struct { + unsigned char TTGE:1; + unsigned char :2; + unsigned char TCIEV:1; + unsigned char TGIED:1; + unsigned char TGIEC:1; + unsigned char TGIEB:1; + unsigned char TGIEA:1; + } BIT; + } TIER; + union { + unsigned char BYTE; + struct { + unsigned char TCFD:1; + } BIT; + } TSR; + unsigned short TCNT; + unsigned short TGRA; + unsigned short TGRB; + unsigned short TGRC; + unsigned short TGRD; + char wk0[16]; + unsigned short TGRE; + unsigned short TGRF; + union { + unsigned char BYTE; + struct { + unsigned char :6; + unsigned char TGIEF:1; + unsigned char TGIEE:1; + } BIT; + } TIER2; + char wk1[1]; + union { + unsigned char BYTE; + struct { + unsigned char :5; + unsigned char TTSE:1; + unsigned char TTSB:1; + unsigned char TTSA:1; + } BIT; + } TBTM; +}; + +struct st_mtu1 { + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char CCLR:2; + unsigned char CKEG:2; + unsigned char TPSC:3; + } BIT; + } TCR; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char MD:4; + } BIT; + } TMDR; + union { + unsigned char BYTE; + struct { + unsigned char IOB:4; + unsigned char IOA:4; + } BIT; + } TIOR; + char wk0[1]; + union { + unsigned char BYTE; + struct { + unsigned char TTGE:1; + unsigned char :1; + unsigned char TCIEU:1; + unsigned char TCIEV:1; + unsigned char :2; + unsigned char TGIEB:1; + unsigned char TGIEA:1; + } BIT; + } TIER; + union { + unsigned char BYTE; + struct { + unsigned char TCFD:1; + } BIT; + } TSR; + unsigned short TCNT; + unsigned short TGRA; + unsigned short TGRB; + char wk1[4]; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char I2BE:1; + unsigned char I2AE:1; + unsigned char I1BE:1; + unsigned char I1AE:1; + } BIT; + } TICCR; +}; + +struct st_mtu2 { + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char CCLR:2; + unsigned char CKEG:2; + unsigned char TPSC:3; + } BIT; + } TCR; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char MD:4; + } BIT; + } TMDR; + union { + unsigned char BYTE; + struct { + unsigned char IOB:4; + unsigned char IOA:4; + } BIT; + } TIOR; + char wk0[1]; + union { + unsigned char BYTE; + struct { + unsigned char TTGE:1; + unsigned char :1; + unsigned char TCIEU:1; + unsigned char TCIEV:1; + unsigned char :2; + unsigned char TGIEB:1; + unsigned char TGIEA:1; + } BIT; + } TIER; + union { + unsigned char BYTE; + struct { + unsigned char TCFD:1; + } BIT; + } TSR; + unsigned short TCNT; + unsigned short TGRA; + unsigned short TGRB; +}; + +struct st_mtu3 { + union { + unsigned char BYTE; + struct { + unsigned char CCLR:3; + unsigned char CKEG:2; + unsigned char TPSC:3; + } BIT; + } TCR; + char wk0[1]; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char BFB:1; + unsigned char BFA:1; + unsigned char MD:4; + } BIT; + } TMDR; + char wk1[1]; + union { + unsigned char BYTE; + struct { + unsigned char IOB:4; + unsigned char IOA:4; + } BIT; + } TIORH; + union { + unsigned char BYTE; + struct { + unsigned char IOD:4; + unsigned char IOC:4; + } BIT; + } TIORL; + char wk2[2]; + union { + unsigned char BYTE; + struct { + unsigned char TTGE:1; + unsigned char :2; + unsigned char TCIEV:1; + unsigned char TGIED:1; + unsigned char TGIEC:1; + unsigned char TGIEB:1; + unsigned char TGIEA:1; + } BIT; + } TIER; + char wk3[7]; + unsigned short TCNT; + char wk4[6]; + unsigned short TGRA; + unsigned short TGRB; + char wk5[8]; + unsigned short TGRC; + unsigned short TGRD; + char wk6[4]; + union { + unsigned char BYTE; + struct { + unsigned char TCFD:1; + } BIT; + } TSR; + char wk7[11]; + union { + unsigned char BYTE; + struct { + unsigned char :5; + unsigned char TTSE:1; + unsigned char TTSB:1; + unsigned char TTSA:1; + } BIT; + } TBTM; +}; + +struct st_mtu4 { + char wk0[1]; + union { + unsigned char BYTE; + struct { + unsigned char CCLR:3; + unsigned char CKEG:2; + unsigned char TPSC:3; + } BIT; + } TCR; + char wk1[1]; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char BFB:1; + unsigned char BFA:1; + unsigned char MD:4; + } BIT; + } TMDR; + char wk2[2]; + union { + unsigned char BYTE; + struct { + unsigned char IOB:4; + unsigned char IOA:4; + } BIT; + } TIORH; + union { + unsigned char BYTE; + struct { + unsigned char IOD:4; + unsigned char IOC:4; + } BIT; + } TIORL; + char wk3[1]; + union { + unsigned char BYTE; + struct { + unsigned char TTGE:1; + unsigned char TTGE2:1; + unsigned char :1; + unsigned char TCIEV:1; + unsigned char TGIED:1; + unsigned char TGIEC:1; + unsigned char TGIEB:1; + unsigned char TGIEA:1; + } BIT; + } TIER; + char wk4[8]; + unsigned short TCNT; + char wk5[8]; + unsigned short TGRA; + unsigned short TGRB; + char wk6[8]; + unsigned short TGRC; + unsigned short TGRD; + char wk7[1]; + union { + unsigned char BYTE; + struct { + unsigned char TCFD:1; + } BIT; + } TSR; + char wk8[11]; + union { + unsigned char BYTE; + struct { + unsigned char :5; + unsigned char TTSE:1; + unsigned char TTSB:1; + unsigned char TTSA:1; + } BIT; + } TBTM; + char wk9[6]; + union { + unsigned short WORD; + struct { + unsigned short BF:2; + unsigned short :6; + unsigned short UT4AE:1; + unsigned short DT4AE:1; + unsigned short UT4BE:1; + unsigned short DT4BE:1; + unsigned short ITA3AE:1; + unsigned short ITA4VE:1; + unsigned short ITB3AE:1; + unsigned short ITB4VE:1; + } BIT; + } TADCR; + char wk10[2]; + unsigned short TADCORA; + unsigned short TADCORB; + unsigned short TADCOBRA; + unsigned short TADCOBRB; +}; + +struct st_mtu5 { + unsigned short TCNTU; + unsigned short TGRU; + union { + unsigned char BYTE; + struct { + unsigned char :6; + unsigned char TPSC:2; + } BIT; + } TCRU; + char wk0[1]; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char IOC:5; + } BIT; + } TIORU; + char wk1[9]; + unsigned short TCNTV; + unsigned short TGRV; + union { + unsigned char BYTE; + struct { + unsigned char :6; + unsigned char TPSC:2; + } BIT; + } TCRV; + char wk2[1]; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char IOC:5; + } BIT; + } TIORV; + char wk3[9]; + unsigned short TCNTW; + unsigned short TGRW; + union { + unsigned char BYTE; + struct { + unsigned char :6; + unsigned char TPSC:2; + } BIT; + } TCRW; + char wk4[1]; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char IOC:5; + } BIT; + } TIORW; + char wk5[11]; + union { + unsigned char BYTE; + struct { + unsigned char :5; + unsigned char TGIE5U:1; + unsigned char TGIE5V:1; + unsigned char TGIE5W:1; + } BIT; + } TIER; + char wk6[1]; + union { + unsigned char BYTE; + struct { + unsigned char :5; + unsigned char CSTU5:1; + unsigned char CSTV5:1; + unsigned char CSTW5:1; + } BIT; + } TSTR; + char wk7[1]; + union { + unsigned char BYTE; + struct { + unsigned char :5; + unsigned char CMPCLR5U:1; + unsigned char CMPCLR5V:1; + unsigned char CMPCLR5W:1; + } BIT; + } TCNTCMPCLR; +}; + +struct st_poe { + union { + unsigned short WORD; + struct { + unsigned char H; + unsigned char L; + } BYTE; + struct { + unsigned char POE3F:1; + unsigned char POE2F:1; + unsigned char POE1F:1; + unsigned char POE0F:1; + unsigned char :3; + unsigned char PIE1:1; + unsigned char POE3M:2; + unsigned char POE2M:2; + unsigned char POE1M:2; + unsigned char POE0M:2; + } BIT; + } ICSR1; + union { + unsigned short WORD; + struct { + unsigned char H; + unsigned char L; + } BYTE; + struct { + unsigned char OSF1:1; + unsigned char :5; + unsigned char OCE1:1; + unsigned char OIE1:1; + } BIT; + } OCSR1; + char wk0[4]; + union { + unsigned short WORD; + struct { + unsigned char H; + unsigned char L; + } BYTE; + struct { + unsigned char :3; + unsigned char POE8F:1; + unsigned char :2; + unsigned char POE8E:1; + unsigned char PIE2:1; + unsigned char :6; + unsigned char POE8M:2; + } BIT; + } ICSR2; + union { + unsigned char BYTE; + struct { + unsigned char :6; + unsigned char CH0HIZ:1; + unsigned char CH34HIZ:1; + } BIT; + } SPOER; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char PE3ZE:1; + unsigned char PE2ZE:1; + unsigned char PE1ZE:1; + unsigned char PE0ZE:1; + } BIT; + } POECR1; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char P1CZEA:1; + unsigned char P2CZEA:1; + unsigned char P3CZEA:1; + } BIT; + } POECR2; + char wk1[1]; + union { + unsigned short WORD; + struct { + unsigned char H; + unsigned char L; + } BYTE; + struct { + unsigned char :6; + unsigned char OSTSTE:1; + } BIT; + } ICSR3; +}; + +struct st_port { + union { + unsigned char BYTE; + struct { + unsigned char CS7E:1; + unsigned char CS6E:1; + unsigned char CS5E:1; + unsigned char CS4E:1; + unsigned char CS3E:1; + unsigned char CS2E:1; + unsigned char CS1E:1; + unsigned char CS0E:1; + } BIT; + } PFCSE; + char wk0[3]; + union { + unsigned char BYTE; + struct { + unsigned char A15E:1; + unsigned char A14E:1; + unsigned char A13E:1; + unsigned char A12E:1; + unsigned char A11E:1; + unsigned char A10E:1; + unsigned char A9E:1; + unsigned char A8E:1; + } BIT; + } PFAOE0; + union { + unsigned char BYTE; + struct { + unsigned char A23E:1; + unsigned char A22E:1; + unsigned char A21E:1; + unsigned char A20E:1; + unsigned char A19E:1; + unsigned char A18E:1; + unsigned char A17E:1; + unsigned char A16E:1; + } BIT; + } PFAOE1; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char WR1BC1E:1; + unsigned char :1; + unsigned char DHE:1; + unsigned char :3; + unsigned char ADRLE:1; + } BIT; + } PFBCR0; + union { + unsigned char BYTE; + struct { + unsigned char :5; + unsigned char ALEOE:1; + unsigned char WAITS:2; + } BIT; + } PFBCR1; +}; + +struct st_port0 { + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char :1; + unsigned char B5:1; + unsigned char :1; + unsigned char B3:1; + } BIT; + } PDR; + char wk0[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char :1; + unsigned char B5:1; + unsigned char :1; + unsigned char B3:1; + } BIT; + } PODR; + char wk1[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char :1; + unsigned char B5:1; + unsigned char :1; + unsigned char B3:1; + } BIT; + } PIDR; + char wk2[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char :1; + unsigned char B5:1; + unsigned char :1; + unsigned char B3:1; + } BIT; + } PMR; + char wk3[95]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char :1; + unsigned char B5:1; + unsigned char :1; + unsigned char B3:1; + } BIT; + } PCR; +}; + +struct st_port1 { + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + } BIT; + } PDR; + char wk0[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + } BIT; + } PODR; + char wk1[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + } BIT; + } PIDR; + char wk2[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + } BIT; + } PMR; + char wk3[32]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char B6:1; + unsigned char :1; + unsigned char B4:1; + } BIT; + } ODR0; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char B6:1; + unsigned char :1; + unsigned char B4:1; + unsigned char :1; + unsigned char B2:1; + unsigned char :1; + unsigned char B0:1; + } BIT; + } ODR1; + char wk4[61]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + } BIT; + } PCR; + char wk5[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + } BIT; + } DSCR; +}; + +struct st_port2 { + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PDR; + char wk0[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PODR; + char wk1[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PIDR; + char wk2[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PMR; + char wk3[33]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char B6:1; + unsigned char :1; + unsigned char B4:1; + unsigned char :1; + unsigned char B2:1; + unsigned char :1; + unsigned char B0:1; + } BIT; + } ODR0; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char B6:1; + unsigned char :1; + unsigned char B4:1; + unsigned char :1; + unsigned char B2:1; + unsigned char :1; + unsigned char B0:1; + } BIT; + } ODR1; + char wk4[60]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PCR; + char wk5[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } DSCR; +}; + +struct st_port3 { + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char :1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PDR; + char wk0[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PODR; + char wk1[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PIDR; + char wk2[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PMR; + char wk3[34]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char B6:1; + unsigned char :1; + unsigned char B4:1; + unsigned char :1; + unsigned char B2:1; + unsigned char :1; + unsigned char B0:1; + } BIT; + } ODR0; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char B6:1; + unsigned char :1; + unsigned char B4:1; + unsigned char :1; + unsigned char B2:1; + unsigned char :1; + unsigned char B0:1; + } BIT; + } ODR1; + char wk4[59]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PCR; + char wk5[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } DSCR; +}; + +struct st_port4 { + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PDR; + char wk0[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PODR; + char wk1[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PIDR; + char wk2[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PMR; + char wk3[95]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PCR; +}; + +struct st_port5 { + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PDR; + char wk0[31]; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PODR; + char wk1[31]; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PIDR; + char wk2[31]; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PMR; + char wk3[95]; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PCR; + char wk4[31]; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } DSCR; +}; + +struct st_porta { + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PDR; + char wk0[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PODR; + char wk1[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PIDR; + char wk2[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PMR; + char wk3[41]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char B6:1; + unsigned char :1; + unsigned char B4:1; + unsigned char :1; + unsigned char B2:1; + unsigned char :1; + unsigned char B0:1; + } BIT; + } ODR0; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char B6:1; + unsigned char :1; + unsigned char B4:1; + unsigned char :1; + unsigned char B2:1; + unsigned char :1; + unsigned char B0:1; + } BIT; + } ODR1; + char wk4[52]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PCR; + char wk5[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } DSCR; +}; + +struct st_portb { + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PDR; + char wk0[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PODR; + char wk1[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PIDR; + char wk2[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PMR; + char wk3[42]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char B6:1; + unsigned char :1; + unsigned char B4:1; + unsigned char :1; + unsigned char B2:1; + unsigned char :1; + unsigned char B0:1; + } BIT; + } ODR0; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char B6:1; + unsigned char :1; + unsigned char B4:1; + unsigned char :1; + unsigned char B2:1; + unsigned char :1; + unsigned char B0:1; + } BIT; + } ODR1; + char wk4[51]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PCR; + char wk5[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } DSCR; +}; + +struct st_portc { + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PDR; + char wk0[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PODR; + char wk1[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PIDR; + char wk2[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PMR; + char wk3[43]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char B6:1; + unsigned char :1; + unsigned char B4:1; + unsigned char :1; + unsigned char B2:1; + unsigned char :1; + unsigned char B0:1; + } BIT; + } ODR0; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char B6:1; + unsigned char :1; + unsigned char B4:1; + unsigned char :1; + unsigned char B2:1; + unsigned char :1; + unsigned char B0:1; + } BIT; + } ODR1; + char wk4[50]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PCR; + char wk5[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } DSCR; +}; + +struct st_portd { + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PDR; + char wk0[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PODR; + char wk1[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PIDR; + char wk2[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PMR; + char wk3[95]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PCR; + char wk4[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } DSCR; +}; + +struct st_porte { + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PDR; + char wk0[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PODR; + char wk1[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PIDR; + char wk2[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PMR; + char wk3[45]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char B6:1; + unsigned char :1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char :1; + unsigned char B0:1; + } BIT; + } ODR0; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char B6:1; + unsigned char :1; + unsigned char B4:1; + unsigned char :1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } ODR1; + char wk4[48]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PCR; + char wk5[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } DSCR; +}; + +struct st_porth { + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PDR; + char wk0[31]; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PODR; + char wk1[31]; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PIDR; + char wk2[31]; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PMR; + char wk3[95]; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PCR; + char wk4[31]; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } DSCR; +}; + +struct st_portj { + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char B3:1; + unsigned char :1; + unsigned char B1:1; + } BIT; + } PDR; + char wk0[31]; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char B3:1; + unsigned char :1; + unsigned char B1:1; + } BIT; + } PODR; + char wk1[31]; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char B3:1; + unsigned char :1; + unsigned char B1:1; + } BIT; + } PIDR; + char wk2[31]; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char B3:1; + unsigned char :1; + unsigned char B1:1; + } BIT; + } PMR; + char wk3[95]; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char B3:1; + unsigned char :1; + unsigned char B1:1; + } BIT; + } PCR; + char wk4[31]; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char B3:1; + unsigned char :1; + unsigned char B1:1; + } BIT; + } DSCR; +}; + +struct st_riic { + union { + unsigned char BYTE; + struct { + unsigned char ICE:1; + unsigned char IICRST:1; + unsigned char CLO:1; + unsigned char SOWP:1; + unsigned char SCLO:1; + unsigned char SDAO:1; + unsigned char SCLI:1; + unsigned char SDAI:1; + } BIT; + } ICCR1; + union { + unsigned char BYTE; + struct { + unsigned char BBSY:1; + unsigned char MST:1; + unsigned char TRS:1; + unsigned char :1; + unsigned char SP:1; + unsigned char RS:1; + unsigned char ST:1; + } BIT; + } ICCR2; + union { + unsigned char BYTE; + struct { + unsigned char MTWP:1; + unsigned char CKS:3; + unsigned char BCWP:1; + unsigned char BC:3; + } BIT; + } ICMR1; + union { + unsigned char BYTE; + struct { + unsigned char DLCS:1; + unsigned char SDDL:3; + unsigned char :1; + unsigned char TMOH:1; + unsigned char TMOL:1; + unsigned char TMOS:1; + } BIT; + } ICMR2; + union { + unsigned char BYTE; + struct { + unsigned char SMBS:1; + unsigned char WAIT:1; + unsigned char RDRFS:1; + unsigned char ACKWP:1; + unsigned char ACKBT:1; + unsigned char ACKBR:1; + unsigned char NF:2; + } BIT; + } ICMR3; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char SCLE:1; + unsigned char NFE:1; + unsigned char NACKE:1; + unsigned char SALE:1; + unsigned char NALE:1; + unsigned char MALE:1; + unsigned char TMOE:1; + } BIT; + } ICFER; + union { + unsigned char BYTE; + struct { + unsigned char HOAE:1; + unsigned char :1; + unsigned char DIDE:1; + unsigned char :1; + unsigned char GCAE:1; + unsigned char SAR2E:1; + unsigned char SAR1E:1; + unsigned char SAR0E:1; + } BIT; + } ICSER; + union { + unsigned char BYTE; + struct { + unsigned char TIE:1; + unsigned char TEIE:1; + unsigned char RIE:1; + unsigned char NAKIE:1; + unsigned char SPIE:1; + unsigned char STIE:1; + unsigned char ALIE:1; + unsigned char TMOIE:1; + } BIT; + } ICIER; + union { + unsigned char BYTE; + struct { + unsigned char HOA:1; + unsigned char :1; + unsigned char DID:1; + unsigned char :1; + unsigned char GCA:1; + unsigned char AAS2:1; + unsigned char AAS1:1; + unsigned char AAS0:1; + } BIT; + } ICSR1; + union { + unsigned char BYTE; + struct { + unsigned char TDRE:1; + unsigned char TEND:1; + unsigned char RDRF:1; + unsigned char NACKF:1; + unsigned char STOP:1; + unsigned char START:1; + unsigned char AL:1; + unsigned char TMOF:1; + } BIT; + } ICSR2; + union { + unsigned char BYTE; + struct { + unsigned char SVA:7; + unsigned char SVA0:1; + } BIT; + } SARL0; + union { + unsigned char BYTE; + struct { + unsigned char :5; + unsigned char SVA:2; + unsigned char FS:1; + } BIT; + } SARU0; + union { + unsigned char BYTE; + struct { + unsigned char SVA:7; + unsigned char SVA0:1; + } BIT; + } SARL1; + union { + unsigned char BYTE; + struct { + unsigned char :5; + unsigned char SVA:2; + unsigned char FS:1; + } BIT; + } SARU1; + union { + unsigned char BYTE; + struct { + unsigned char SVA:7; + unsigned char SVA0:1; + } BIT; + } SARL2; + union { + unsigned char BYTE; + struct { + unsigned char :5; + unsigned char SVA:2; + unsigned char FS:1; + } BIT; + } SARU2; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char BRL:5; + } BIT; + } ICBRL; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char BRH:5; + } BIT; + } ICBRH; + unsigned char ICDRT; + unsigned char ICDRR; +}; + +struct st_rspi { + union { + unsigned char BYTE; + struct { + unsigned char SPRIE:1; + unsigned char SPE:1; + unsigned char SPTIE:1; + unsigned char SPEIE:1; + unsigned char MSTR:1; + unsigned char MODFEN:1; + unsigned char TXMD:1; + unsigned char SPMS:1; + } BIT; + } SPCR; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char SSL3P:1; + unsigned char SSL2P:1; + unsigned char SSL1P:1; + unsigned char SSL0P:1; + } BIT; + } SSLP; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char MOIFE:1; + unsigned char MOIFV:1; + unsigned char :1; + unsigned char SPOM:1; + unsigned char SPLP2:1; + unsigned char SPLP:1; + } BIT; + } SPPCR; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char PERF:1; + unsigned char MODF:1; + unsigned char IDLNF:1; + unsigned char OVRF:1; + } BIT; + } SPSR; + union { + unsigned long LONG; + struct { + unsigned short H; + unsigned short L; + } WORD; + } SPDR; + union { + unsigned char BYTE; + struct { + unsigned char :5; + unsigned char SPSLN:3; + } BIT; + } SPSCR; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char SPECM:3; + unsigned char :1; + unsigned char SPCP:3; + } BIT; + } SPSSR; + union { + unsigned char BYTE; + struct { + unsigned char SPR7:1; + unsigned char SPR6:1; + unsigned char SPR5:1; + unsigned char SPR4:1; + unsigned char SPR3:1; + unsigned char SPR2:1; + unsigned char SPR1:1; + unsigned char SPR0:1; + } BIT; + } SPBR; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char SPLW:1; + unsigned char SPRDTD:1; + unsigned char SLSEL:2; + unsigned char SPFC:2; + } BIT; + } SPDCR; + union { + unsigned char BYTE; + struct { + unsigned char :5; + unsigned char SCKDL:3; + } BIT; + } SPCKD; + union { + unsigned char BYTE; + struct { + unsigned char :5; + unsigned char SLNDL:3; + } BIT; + } SSLND; + union { + unsigned char BYTE; + struct { + unsigned char :5; + unsigned char SPNDL:3; + } BIT; + } SPND; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char PTE:1; + unsigned char SPIIE:1; + unsigned char SPOE:1; + unsigned char SPPE:1; + } BIT; + } SPCR2; + union { + unsigned short WORD; + struct { + unsigned short SCKDEN:1; + unsigned short SLNDEN:1; + unsigned short SPNDEN:1; + unsigned short LSBF:1; + unsigned short SPB:4; + unsigned short SSLKP:1; + unsigned short SSLA:3; + unsigned short BRDV:2; + unsigned short CPOL:1; + unsigned short CPHA:1; + } BIT; + } SPCMD0; + union { + unsigned short WORD; + struct { + unsigned short SCKDEN:1; + unsigned short SLNDEN:1; + unsigned short SPNDEN:1; + unsigned short LSBF:1; + unsigned short SPB:4; + unsigned short SSLKP:1; + unsigned short SSLA:3; + unsigned short BRDV:2; + unsigned short CPOL:1; + unsigned short CPHA:1; + } BIT; + } SPCMD1; + union { + unsigned short WORD; + struct { + unsigned short SCKDEN:1; + unsigned short SLNDEN:1; + unsigned short SPNDEN:1; + unsigned short LSBF:1; + unsigned short SPB:4; + unsigned short SSLKP:1; + unsigned short SSLA:3; + unsigned short BRDV:2; + unsigned short CPOL:1; + unsigned short CPHA:1; + } BIT; + } SPCMD2; + union { + unsigned short WORD; + struct { + unsigned short SCKDEN:1; + unsigned short SLNDEN:1; + unsigned short SPNDEN:1; + unsigned short LSBF:1; + unsigned short SPB:4; + unsigned short SSLKP:1; + unsigned short SSLA:3; + unsigned short BRDV:2; + unsigned short CPOL:1; + unsigned short CPHA:1; + } BIT; + } SPCMD3; + union { + unsigned short WORD; + struct { + unsigned short SCKDEN:1; + unsigned short SLNDEN:1; + unsigned short SPNDEN:1; + unsigned short LSBF:1; + unsigned short SPB:4; + unsigned short SSLKP:1; + unsigned short SSLA:3; + unsigned short BRDV:2; + unsigned short CPOL:1; + unsigned short CPHA:1; + } BIT; + } SPCMD4; + union { + unsigned short WORD; + struct { + unsigned short SCKDEN:1; + unsigned short SLNDEN:1; + unsigned short SPNDEN:1; + unsigned short LSBF:1; + unsigned short SPB:4; + unsigned short SSLKP:1; + unsigned short SSLA:3; + unsigned short BRDV:2; + unsigned short CPOL:1; + unsigned short CPHA:1; + } BIT; + } SPCMD5; + union { + unsigned short WORD; + struct { + unsigned short SCKDEN:1; + unsigned short SLNDEN:1; + unsigned short SPNDEN:1; + unsigned short LSBF:1; + unsigned short SPB:4; + unsigned short SSLKP:1; + unsigned short SSLA:3; + unsigned short BRDV:2; + unsigned short CPOL:1; + unsigned short CPHA:1; + } BIT; + } SPCMD6; + union { + unsigned short WORD; + struct { + unsigned short SCKDEN:1; + unsigned short SLNDEN:1; + unsigned short SPNDEN:1; + unsigned short LSBF:1; + unsigned short SPB:4; + unsigned short SSLKP:1; + unsigned short SSLA:3; + unsigned short BRDV:2; + unsigned short CPOL:1; + unsigned short CPHA:1; + } BIT; + } SPCMD7; +}; + +struct st_rtc { + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char F1HZ:1; + unsigned char F2HZ:1; + unsigned char F4HZ:1; + unsigned char F8HZ:1; + unsigned char F16HZ:1; + unsigned char F32HZ:1; + unsigned char F64HZ:1; + } BIT; + } R64CNT; + char wk0[1]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char SEC10:3; + unsigned char SEC1:4; + } BIT; + } RSECCNT; + char wk1[1]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char MIN10:3; + unsigned char MIN1:4; + } BIT; + } RMINCNT; + char wk2[1]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char PM:1; + unsigned char HR10:2; + unsigned char HR1:4; + } BIT; + } RHRCNT; + char wk3[1]; + union { + unsigned char BYTE; + struct { + unsigned char :5; + unsigned char DAYW:3; + } BIT; + } RWKCNT; + char wk4[1]; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char DATE10:2; + unsigned char DATE1:4; + } BIT; + } RDAYCNT; + char wk5[1]; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char MON10:1; + unsigned char MON1:4; + } BIT; + } RMONCNT; + char wk6[1]; + union { + unsigned short WORD; + struct { + unsigned short :8; + unsigned short YR10:4; + unsigned short YR1:4; + } BIT; + } RYRCNT; + union { + unsigned char BYTE; + struct { + unsigned char ENB:1; + unsigned char SEC10:3; + unsigned char SEC1:4; + } BIT; + } RSECAR; + char wk7[1]; + union { + unsigned char BYTE; + struct { + unsigned char ENB:1; + unsigned char MIN10:3; + unsigned char MIN1:4; + } BIT; + } RMINAR; + char wk8[1]; + union { + unsigned char BYTE; + struct { + unsigned char ENB:1; + unsigned char PM:1; + unsigned char HR10:2; + unsigned char HR1:4; + } BIT; + } RHRAR; + char wk9[1]; + union { + unsigned char BYTE; + struct { + unsigned char ENB:1; + unsigned char :4; + unsigned char DAYW:3; + } BIT; + } RWKAR; + char wk10[1]; + union { + unsigned char BYTE; + struct { + unsigned char ENB:1; + unsigned char :1; + unsigned char DATE10:2; + unsigned char DATE1:4; + } BIT; + } RDAYAR; + char wk11[1]; + union { + unsigned char BYTE; + struct { + unsigned char ENB:1; + unsigned char :2; + unsigned char MON10:1; + unsigned char MON1:4; + } BIT; + } RMONAR; + char wk12[1]; + union { + unsigned short WORD; + struct { + unsigned short :8; + unsigned short YR10:4; + unsigned short YR1:4; + } BIT; + } RYRAR; + union { + unsigned char BYTE; + struct { + unsigned char ENB:1; + } BIT; + } RYRAREN; + char wk13[3]; + union { + unsigned char BYTE; + struct { + unsigned char PES:4; + unsigned char :1; + unsigned char PIE:1; + unsigned char CIE:1; + unsigned char AIE:1; + } BIT; + } RCR1; + char wk14[1]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char HR24:1; + unsigned char AADJP:1; + unsigned char AADJE:1; + unsigned char RTCOE:1; + unsigned char ADJ30:1; + unsigned char RESET:1; + unsigned char START:1; + } BIT; + } RCR2; + char wk15[9]; + union { + unsigned char BYTE; + struct { + unsigned char PMADJ:2; + unsigned char ADJ:6; + } BIT; + } RADJ; + char wk16[17]; + union { + unsigned char BYTE; + struct { + unsigned char TCEN:1; + unsigned char :1; + unsigned char TCNF:2; + unsigned char :1; + unsigned char TCST:1; + unsigned char TCCT:2; + } BIT; + } RTCCR0; + char wk17[1]; + union { + unsigned char BYTE; + struct { + unsigned char TCEN:1; + unsigned char :1; + unsigned char TCNF:2; + unsigned char :1; + unsigned char TCST:1; + unsigned char TCCT:2; + } BIT; + } RTCCR1; + char wk18[1]; + union { + unsigned char BYTE; + struct { + unsigned char TCEN:1; + unsigned char :1; + unsigned char TCNF:2; + unsigned char :1; + unsigned char TCST:1; + unsigned char TCCT:2; + } BIT; + } RTCCR2; + char wk19[13]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char SEC10:3; + unsigned char SEC1:4; + } BIT; + } RSECCP0; + char wk20[1]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char MIN10:3; + unsigned char MIN1:4; + } BIT; + } RMINCP0; + char wk21[1]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char PM:1; + unsigned char HR10:2; + unsigned char HR1:4; + } BIT; + } RHRCP0; + char wk22[3]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char DATE10:3; + unsigned char DATE1:4; + } BIT; + } RDAYCP0; + char wk23[1]; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char MON10:1; + unsigned char MON1:4; + } BIT; + } RMONCP0; + char wk24[5]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char SEC10:3; + unsigned char SEC1:4; + } BIT; + } RSECCP1; + char wk25[1]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char MIN10:3; + unsigned char MIN1:4; + } BIT; + } RMINCP1; + char wk26[1]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char PM:1; + unsigned char HR10:2; + unsigned char HR1:4; + } BIT; + } RHRCP1; + char wk27[3]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char DATE10:3; + unsigned char DATE1:4; + } BIT; + } RDAYCP1; + char wk28[1]; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char MON10:1; + unsigned char MON1:4; + } BIT; + } RMONCP1; + char wk29[5]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char SEC10:3; + unsigned char SEC1:4; + } BIT; + } RSECCP2; + char wk30[1]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char MIN10:3; + unsigned char MIN1:4; + } BIT; + } RMINCP2; + char wk31[1]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char PM:1; + unsigned char HR10:2; + unsigned char HR1:4; + } BIT; + } RHRCP2; + char wk32[3]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char DATE10:3; + unsigned char DATE1:4; + } BIT; + } RDAYCP2; + char wk33[1]; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char MON10:1; + unsigned char MON1:4; + } BIT; + } RMONCP2; +}; + +struct st_s12ad { + union { + unsigned short WORD; + struct { + unsigned short ADST:1; + unsigned short ADCS:2; + unsigned short ADIE:1; + unsigned short :2; + unsigned short TRGE:1; + unsigned short EXTRG:1; + unsigned short DBLE:1; + unsigned short GBADIE:1; + unsigned short :1; + unsigned short DBLANS:5; + } BIT; + } ADCSR; + char wk0[2]; + union { + unsigned short WORD; + struct { + unsigned short ANSA15:1; + unsigned short ANSA14:1; + unsigned short ANSA13:1; + unsigned short ANSA12:1; + unsigned short ANSA11:1; + unsigned short ANSA10:1; + unsigned short ANSA9:1; + unsigned short ANSA8:1; + unsigned short ANSA7:1; + unsigned short ANSA6:1; + unsigned short ANSA5:1; + unsigned short ANSA4:1; + unsigned short ANSA3:1; + unsigned short ANSA2:1; + unsigned short ANSA1:1; + unsigned short ANSA0:1; + } BIT; + } ADANSA; + char wk1[2]; + union { + unsigned short WORD; + struct { + unsigned short ADS15:1; + unsigned short ADS14:1; + unsigned short ADS13:1; + unsigned short ADS12:1; + unsigned short ADS11:1; + unsigned short ADS10:1; + unsigned short ADS9:1; + unsigned short ADS8:1; + unsigned short ADS7:1; + unsigned short ADS6:1; + unsigned short ADS5:1; + unsigned short ADS4:1; + unsigned short ADS3:1; + unsigned short ADS2:1; + unsigned short ADS1:1; + unsigned short ADS0:1; + } BIT; + } ADADS; + char wk2[2]; + union { + unsigned char BYTE; + struct { + unsigned char :6; + unsigned char ADC:2; + } BIT; + } ADADC; + char wk3[1]; + union { + unsigned short WORD; + struct { + unsigned short ADRFMT:1; + unsigned short :3; + unsigned short DIAGM:1; + unsigned short DIAGLD:1; + unsigned short DIAGVAL:2; + unsigned short :2; + unsigned short ACE:1; + } BIT; + } ADCER; + union { + unsigned short WORD; + struct { + unsigned short :4; + unsigned short TRSA:4; + unsigned short :4; + unsigned short TRSB:4; + } BIT; + } ADSTRGR; + union { + unsigned short WORD; + struct { + unsigned short :6; + unsigned short OCS:1; + unsigned short TSS:1; + unsigned short :6; + unsigned short OCSAD:1; + } BIT; + } ADEXICR; + union { + unsigned short WORD; + struct { + unsigned short ANSB15:1; + unsigned short ANSB14:1; + unsigned short ANSB13:1; + unsigned short ANSB12:1; + unsigned short ANSB11:1; + unsigned short ANSB10:1; + unsigned short ANSB9:1; + unsigned short ANSB8:1; + unsigned short ANSB7:1; + unsigned short ANSB6:1; + unsigned short ANSB5:1; + unsigned short ANSB4:1; + unsigned short ANSB3:1; + unsigned short ANSB2:1; + unsigned short ANSB1:1; + unsigned short ANSB0:1; + } BIT; + } ADANSB; + char wk4[2]; + unsigned short ADDBLDR; + unsigned short ADTSDR; + unsigned short ADOCDR; + union { + unsigned short WORD; + union { + struct { + unsigned short DIAGST:2; + unsigned short :2; + unsigned short DATA:10; + } LEFT; + struct { + unsigned short DATA:10; + unsigned short :4; + unsigned short DIAGST:2; + } RIGHT; + } BIT; + } ADRD; + unsigned short ADDR0; + unsigned short ADDR1; + unsigned short ADDR2; + unsigned short ADDR3; + unsigned short ADDR4; + unsigned short ADDR5; + unsigned short ADDR6; + unsigned short ADDR7; + unsigned short ADDR8; + unsigned short ADDR9; + unsigned short ADDR10; + unsigned short ADDR11; + unsigned short ADDR12; + unsigned short ADDR13; + unsigned short ADDR14; + unsigned short ADDR15; + char wk5[32]; + unsigned char ADSSTR0; + unsigned char ADSSTRL; + char wk6[4]; + union { + unsigned short WORD; + struct { + unsigned short :5; + unsigned short SHANS:3; + unsigned short SSTSH:8; + } BIT; + } ADSHCR; + char wk7[8]; + unsigned char ADSSTRT; + unsigned char ADSSTRO; + char wk8[1]; + unsigned char ADSSTR1; + unsigned char ADSSTR2; + unsigned char ADSSTR3; + unsigned char ADSSTR4; + unsigned char ADSSTR5; + unsigned char ADSSTR6; + unsigned char ADSSTR7; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char ADNDIS:5; + } BIT; + } ADDISCR; +}; + +struct st_sci0 { + union { + unsigned char BYTE; + struct { + unsigned char CM:1; + unsigned char CHR:1; + unsigned char PE:1; + unsigned char PM:1; + unsigned char STOP:1; + unsigned char MP:1; + unsigned char CKS:2; + } BIT; + } SMR; + unsigned char BRR; + union { + unsigned char BYTE; + struct { + unsigned char TIE:1; + unsigned char RIE:1; + unsigned char TE:1; + unsigned char RE:1; + unsigned char MPIE:1; + unsigned char TEIE:1; + unsigned char CKE:2; + } BIT; + } SCR; + unsigned char TDR; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char ORER:1; + unsigned char FER:1; + unsigned char PER:1; + unsigned char TEND:1; + unsigned char MPB:1; + unsigned char MPBT:1; + } BIT; + } SSR; + unsigned char RDR; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char SDIR:1; + unsigned char SINV:1; + unsigned char :1; + unsigned char SMIF:1; + } BIT; + } SCMR; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char NFEN:1; + unsigned char ABCS:1; + unsigned char :3; + unsigned char ACS0:1; + } BIT; + } SEMR; + union { + unsigned char BYTE; + struct { + unsigned char :5; + unsigned char NFCS:3; + } BIT; + } SNFR; + union { + unsigned char BYTE; + struct { + unsigned char IICDL:5; + unsigned char :2; + unsigned char IICM:1; + } BIT; + } SIMR1; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char IICACKT:1; + unsigned char :3; + unsigned char IICCSC:1; + unsigned char IICINTM:1; + } BIT; + } SIMR2; + union { + unsigned char BYTE; + struct { + unsigned char IICSCLS:2; + unsigned char IICSDAS:2; + unsigned char :1; + unsigned char IICSTPREQ:1; + unsigned char IICRSTAREQ:1; + unsigned char IICSTAREQ:1; + } BIT; + } SIMR3; + union { + unsigned char BYTE; + struct { + unsigned char :5; + unsigned char IICBBS:1; + unsigned char :1; + unsigned char IICACKR:1; + } BIT; + } SISR; + union { + unsigned char BYTE; + struct { + unsigned char CKPH:1; + unsigned char CKPOL:1; + unsigned char :1; + unsigned char MFF:1; + unsigned char :1; + unsigned char MSS:1; + unsigned char CTSE:1; + unsigned char SSE:1; + } BIT; + } SECR; +}; + +struct st_sci1 { + union { + unsigned char BYTE; + struct { + unsigned char CM:1; + unsigned char CHR:1; + unsigned char PE:1; + unsigned char PM:1; + unsigned char STOP:1; + unsigned char MP:1; + unsigned char CKS:2; + } BIT; + } SMR; + unsigned char BRR; + union { + unsigned char BYTE; + struct { + unsigned char TIE:1; + unsigned char RIE:1; + unsigned char TE:1; + unsigned char RE:1; + unsigned char MPIE:1; + unsigned char TEIE:1; + unsigned char CKE:2; + } BIT; + } SCR; + unsigned char TDR; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char ORER:1; + unsigned char FER:1; + unsigned char PER:1; + unsigned char TEND:1; + unsigned char MPB:1; + unsigned char MPBT:1; + } BIT; + } SSR; + unsigned char RDR; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char SDIR:1; + unsigned char SINV:1; + unsigned char :1; + unsigned char SMIF:1; + } BIT; + } SCMR; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char NFEN:1; + unsigned char ABCS:1; + unsigned char :3; + unsigned char ACS0:1; + } BIT; + } SEMR; + union { + unsigned char BYTE; + struct { + unsigned char :5; + unsigned char NFCS:3; + } BIT; + } SNFR; + union { + unsigned char BYTE; + struct { + unsigned char IICDL:5; + unsigned char :2; + unsigned char IICM:1; + } BIT; + } SIMR1; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char IICACKT:1; + unsigned char :3; + unsigned char IICCSC:1; + unsigned char IICINTM:1; + } BIT; + } SIMR2; + union { + unsigned char BYTE; + struct { + unsigned char IICSCLS:2; + unsigned char IICSDAS:2; + unsigned char :1; + unsigned char IICSTPREQ:1; + unsigned char IICRSTAREQ:1; + unsigned char IICSTAREQ:1; + } BIT; + } SIMR3; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char IICACKR:1; + } BIT; + } SISR; + union { + unsigned char BYTE; + struct { + unsigned char CKPH:1; + unsigned char CKPOL:1; + unsigned char :1; + unsigned char MFF:1; + unsigned char :1; + unsigned char MSS:1; + unsigned char CTSE:1; + unsigned char SSE:1; + } BIT; + } SECR; +}; + +struct st_sci12 { + union { + unsigned char BYTE; + struct { + unsigned char CM:1; + unsigned char CHR:1; + unsigned char PE:1; + unsigned char PM:1; + unsigned char STOP:1; + unsigned char MP:1; + unsigned char CKS:2; + } BIT; + } SMR; + unsigned char BRR; + union { + unsigned char BYTE; + struct { + unsigned char TIE:1; + unsigned char RIE:1; + unsigned char TE:1; + unsigned char RE:1; + unsigned char MPIE:1; + unsigned char TEIE:1; + unsigned char CKE:2; + } BIT; + } SCR; + unsigned char TDR; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char ORER:1; + unsigned char FER:1; + unsigned char PER:1; + unsigned char TEND:1; + unsigned char MPB:1; + unsigned char MPBT:1; + } BIT; + } SSR; + unsigned char RDR; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char SDIR:1; + unsigned char SINV:1; + unsigned char :1; + unsigned char SMIF:1; + } BIT; + } SCMR; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char NFEN:1; + unsigned char ABCS:1; + unsigned char :3; + unsigned char ACS0:1; + } BIT; + } SEMR; + union { + unsigned char BYTE; + struct { + unsigned char :5; + unsigned char NFCS:3; + } BIT; + } SNFR; + union { + unsigned char BYTE; + struct { + unsigned char IICDL:5; + unsigned char :2; + unsigned char IICM:1; + } BIT; + } SIMR1; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char IICACKT:1; + unsigned char :3; + unsigned char IICCSC:1; + unsigned char IICINTM:1; + } BIT; + } SIMR2; + union { + unsigned char BYTE; + struct { + unsigned char IICSCLS:2; + unsigned char IICSDAS:2; + unsigned char :1; + unsigned char IICSTPREQ:1; + unsigned char IICRSTAREQ:1; + unsigned char IICSTAREQ:1; + } BIT; + } SIMR3; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char IICACKR:1; + } BIT; + } SISR; + union { + unsigned char BYTE; + struct { + unsigned char CKPH:1; + unsigned char CKPOL:1; + unsigned char :1; + unsigned char MFF:1; + unsigned char :1; + unsigned char MSS:1; + unsigned char CTSE:1; + unsigned char SSE:1; + } BIT; + } SECR; + char wk0[18]; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char SCIXE:1; + } BIT; + } MER; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char BRME:1; + unsigned char RXDSF:1; + unsigned char SFSF:1; + } BIT; + } CR0; + union { + unsigned char BYTE; + struct { + unsigned char PIBS:3; + unsigned char PIBE:1; + unsigned char CF1DS:2; + unsigned char CF0RE:1; + unsigned char BFE:1; + } BIT; + } CR1; + union { + unsigned char BYTE; + struct { + unsigned char RTS:2; + unsigned char BCCS:2; + unsigned char :1; + unsigned char DFCS:3; + } BIT; + } CR2; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char SDST:1; + } BIT; + } CR3; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char SHARPS:1; + unsigned char TXPLOD:1; + unsigned char TXPHOD:1; + unsigned char RXDXPS:1; + unsigned char TXDXPS:1; + } BIT; + } PCR; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char AEDIE:1; + unsigned char BCDIE:1; + unsigned char PIBDIE:1; + unsigned char CF1MIE:1; + unsigned char CF0MIE:1; + unsigned char BFDIE:1; + } BIT; + } ICR; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char AEDF:1; + unsigned char BCDF:1; + unsigned char PIBDF:1; + unsigned char CF1MF:1; + unsigned char CF0MF:1; + unsigned char BFDF:1; + } BIT; + } STR; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char AEDCL:1; + unsigned char BCDCL:1; + unsigned char PIBDCL:1; + unsigned char CF1MCL:1; + unsigned char CF0MCL:1; + unsigned char BFDCL:1; + } BIT; + } STCR; + unsigned char CF0DR; + union { + unsigned char BYTE; + struct { + unsigned char CF0CE7:1; + unsigned char CF0CE6:1; + unsigned char CF0CE5:1; + unsigned char CF0CE4:1; + unsigned char CF0CE3:1; + unsigned char CF0CE2:1; + unsigned char CF0CE1:1; + unsigned char CF0CE0:1; + } BIT; + } CF0CR; + unsigned char CF0RR; + unsigned char PCF1DR; + unsigned char SCF1DR; + union { + unsigned char BYTE; + struct { + unsigned char CF1CE7:1; + unsigned char CF1CE6:1; + unsigned char CF1CE5:1; + unsigned char CF1CE4:1; + unsigned char CF1CE3:1; + unsigned char CF1CE2:1; + unsigned char CF1CE1:1; + unsigned char CF1CE0:1; + } BIT; + } CF1CR; + unsigned char CF1RR; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char TCST:1; + } BIT; + } TCR; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char TCSS:3; + unsigned char TWRC:1; + unsigned char :1; + unsigned char TOMS:2; + } BIT; + } TMR; + unsigned char TPRE; + unsigned char TCNT; +}; + +struct st_smci { + union { + unsigned char BYTE; + struct { + unsigned char GM:1; + unsigned char BCLK:1; + unsigned char PE:1; + unsigned char PM:1; + unsigned char BCP:2; + unsigned char CKS:2; + } BIT; + } SMR; + unsigned char BRR; + union { + unsigned char BYTE; + struct { + unsigned char TIE:1; + unsigned char RIE:1; + unsigned char TE:1; + unsigned char RE:1; + unsigned char :1; + unsigned char TEIE:1; + unsigned char CKE:2; + } BIT; + } SCR; + unsigned char TDR; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char ORER:1; + unsigned char ERS:1; + unsigned char PER:1; + unsigned char TEND:1; + } BIT; + } SSR; + unsigned char RDR; + union { + unsigned char BYTE; + struct { + unsigned char BCP2:1; + unsigned char :3; + unsigned char SDIR:1; + unsigned char SINV:1; + unsigned char :1; + unsigned char SMIF:1; + } BIT; + } SCMR; +}; + +struct st_system { + union { + unsigned short WORD; + struct { + unsigned short :15; + unsigned short MD:1; + } BIT; + } MDMONR; + union { + unsigned short WORD; + struct { + unsigned short :10; + unsigned short UBTS:1; + unsigned short BOTS:1; + unsigned short :2; + unsigned short EXB:1; + unsigned short IROM:1; + } BIT; + } MDSR; + char wk0[2]; + union { + unsigned short WORD; + struct { + unsigned short KEY:8; + unsigned short :6; + unsigned short EXBE:1; + unsigned short ROME:1; + } BIT; + } SYSCR0; + union { + unsigned short WORD; + struct { + unsigned short :15; + unsigned short RAME:1; + } BIT; + } SYSCR1; + char wk1[2]; + union { + unsigned short WORD; + struct { + unsigned short SSBY:1; + unsigned short OPE:1; + } BIT; + } SBYCR; + char wk2[2]; + union { + unsigned long LONG; + struct { + unsigned long ACSE:1; + unsigned long :2; + unsigned long MSTPA28:1; + unsigned long :8; + unsigned long MSTPA19:1; + unsigned long :1; + unsigned long MSTPA17:1; + unsigned long :1; + unsigned long MSTPA15:1; + unsigned long MSTPA14:1; + unsigned long :4; + unsigned long MSTPA9:1; + unsigned long :3; + unsigned long MSTPA5:1; + unsigned long MSTPA4:1; + } BIT; + } MSTPCRA; + union { + unsigned long LONG; + struct { + unsigned long MSTPB31:1; + unsigned long MSTPB30:1; + unsigned long :3; + unsigned long MSTPB26:1; + unsigned long MSTPB25:1; + unsigned long :1; + unsigned long MSTPB23:1; + unsigned long :1; + unsigned long MSTPB21:1; + unsigned long :3; + unsigned long MSTPB17:1; + unsigned long :6; + unsigned long MSTPB10:1; + unsigned long MSTPB9:1; + unsigned long MSTPB8:1; + unsigned long :1; + unsigned long MSTPB6:1; + unsigned long :1; + unsigned long MSTPB4:1; + } BIT; + } MSTPCRB; + union { + unsigned long LONG; + struct { + unsigned long :4; + unsigned long MSTPC27:1; + unsigned long MSTPC26:1; + unsigned long :25; + unsigned long MSTPC0:1; + } BIT; + } MSTPCRC; + char wk3[4]; + union { + unsigned long LONG; + struct { + unsigned long FCK:4; + unsigned long ICK:4; + unsigned long PSTOP1:1; + unsigned long :3; + unsigned long BCK:4; + unsigned long PCKA:4; + unsigned long PCKB:4; + unsigned long PCKC:4; + unsigned long PCKD:4; + } BIT; + } SCKCR; + char wk4[2]; + union { + unsigned short WORD; + struct { + unsigned short :5; + unsigned short CKSEL:3; + } BIT; + } SCKCR3; + union { + unsigned short WORD; + struct { + unsigned short :3; + unsigned short STC:5; + unsigned short :6; + unsigned short PLIDIV:2; + } BIT; + } PLLCR; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char PLLEN:1; + } BIT; + } PLLCR2; + char wk5[5]; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char BCLKDIV:1; + } BIT; + } BCKCR; + char wk6[1]; + union { + unsigned char BYTE; + struct { + unsigned char :6; + unsigned char MOSEL:1; + unsigned char MOSTP:1; + } BIT; + } MOSCCR; + union { + unsigned char BYTE; + struct { + unsigned char :6; + unsigned char SOSEL:1; + unsigned char SOSTP:1; + } BIT; + } SOSCCR; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char LCSTP:1; + } BIT; + } LOCOCR; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char ILCSTP:1; + } BIT; + } ILOCOCR; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char HCSTP:1; + } BIT; + } HOCOCR; + char wk7[9]; + union { + unsigned char BYTE; + struct { + unsigned char OSTDE:1; + unsigned char :6; + unsigned char OSTDIE:1; + } BIT; + } OSTDCR; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char OSTDF:1; + } BIT; + } OSTDSR; + char wk8[94]; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char LPWSTS:1; + unsigned char :1; + unsigned char LPWM:3; + } BIT; + } NMPCCR; + union { + unsigned char BYTE; + struct { + unsigned char RSTCKEN:1; + unsigned char :4; + unsigned char RSTCKSEL:3; + } BIT; + } RSTCKCR; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char MSTS:5; + } BIT; + } MOSCWTCR; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char SSTS:5; + } BIT; + } SOSCWTCR; + char wk9[2]; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char PSTS:5; + } BIT; + } PLLWTCR; + char wk10[25]; + union { + unsigned char BYTE; + struct { + unsigned char :5; + unsigned char SWRF:1; + unsigned char WDRF:1; + unsigned char IWDRF:1; + } BIT; + } RSTSR2; + char wk11[1]; + union { + unsigned short WORD; + struct { + unsigned short KEY:8; + unsigned short SWRR:8; + } BIT; + } SWRR; + char wk12[28]; + union { + unsigned char BYTE; + struct { + unsigned char :5; + unsigned char LVD1IRQSEL:1; + unsigned char LVD1IDTSEL:2; + } BIT; + } LVD1CR1; + union { + unsigned char BYTE; + struct { + unsigned char :6; + unsigned char LVD1MON:1; + unsigned char LVD1DET:1; + } BIT; + } LVD1SR; + union { + unsigned char BYTE; + struct { + unsigned char :5; + unsigned char LVD2IRQSEL:1; + unsigned char LVD2IDTSEL:2; + } BIT; + } LVD2CR1; + union { + unsigned char BYTE; + struct { + unsigned char :6; + unsigned char LVD2MON:1; + unsigned char LVD2DET:1; + } BIT; + } LVD2SR; + char wk13[794]; + union { + unsigned short WORD; + struct { + unsigned short PRKEY:8; + unsigned short PRC7:1; + unsigned short PRC6:1; + unsigned short PRC5:1; + unsigned short PRC4:1; + unsigned short PRC3:1; + unsigned short PRC2:1; + unsigned short PRC1:1; + unsigned short PRC0:1; + } BIT; + } PRCR; + char wk14[48768]; + union { + unsigned char BYTE; + struct { + unsigned char DPSBY:1; + unsigned char IOKEEP:1; + unsigned char :4; + unsigned char DEEPCUT1:1; + } BIT; + } DPSBYCR; + char wk15[1]; + union { + unsigned char BYTE; + struct { + unsigned char DIRQ7E:1; + unsigned char DIRQ6E:1; + unsigned char DIRQ5E:1; + unsigned char DIRQ4E:1; + unsigned char DIRQ3E:1; + unsigned char DIRQ2E:1; + unsigned char DIRQ1E:1; + unsigned char DIRQ0E:1; + } BIT; + } DPSIER0; + char wk16[1]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char DI2CCIE:1; + unsigned char DI2CDIE:1; + unsigned char DNMIE:1; + unsigned char DRTCAIE:1; + unsigned char DRTCIIE:1; + unsigned char DLVD2IE:1; + unsigned char DLVD1IE:1; + } BIT; + } DPSIER2; + char wk17[1]; + union { + unsigned char BYTE; + struct { + unsigned char DIRQ7F:1; + unsigned char DIRQ6F:1; + unsigned char DIRQ5F:1; + unsigned char DIRQ4F:1; + unsigned char DIRQ3F:1; + unsigned char DIRQ2F:1; + unsigned char DIRQ1F:1; + unsigned char DIRQ0F:1; + } BIT; + } DPSIFR0; + char wk18[1]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char DRIICCIF:1; + unsigned char DRIICDIF:1; + unsigned char DNMIF:1; + unsigned char DRTCAIF:1; + unsigned char DRTCIIF:1; + unsigned char DLVD2IF:1; + unsigned char DLVD1IF:1; + } BIT; + } DPSIFR2; + char wk19[1]; + union { + unsigned char BYTE; + struct { + unsigned char DIRQ7EG:1; + unsigned char DIRQ6EG:1; + unsigned char DIRQ5EG:1; + unsigned char DIRQ4EG:1; + unsigned char DIRQ3EG:1; + unsigned char DIRQ2EG:1; + unsigned char DIRQ1EG:1; + unsigned char DIRQ0EG:1; + } BIT; + } DPSIEGR0; + char wk20[1]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char DRIICCEG:1; + unsigned char DRIICDEG:1; + unsigned char DNMIEG:1; + unsigned char :2; + unsigned char DLVD2EG:1; + unsigned char DLVD1EG:1; + } BIT; + } DPSIEGR2; + char wk21[2]; + union { + unsigned char BYTE; + struct { + unsigned char :6; + unsigned char HCUT:1; + unsigned char FCUT:1; + } BIT; + } FHSSBYCR; + union { + unsigned char BYTE; + struct { + unsigned char DPSRSTF:1; + unsigned char :3; + unsigned char LVD2RF:1; + unsigned char LVD1RF:1; + unsigned char LVD0RF:1; + unsigned char PORF:1; + } BIT; + } RSTSR0; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char CWSF:1; + } BIT; + } RSTSR1; + char wk22[1]; + union { + unsigned char BYTE; + struct { + unsigned char :5; + unsigned char MOSCDRV:2; + unsigned char MOFXIN:1; + } BIT; + } MOFCR; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char HOCOPCNT:1; + } BIT; + } HOCOPCR; + char wk23[2]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char LVD2E:1; + unsigned char LVD1E:1; + unsigned char :1; + unsigned char EXVCCINP2:1; + } BIT; + } LVCMPCR; + union { + unsigned char BYTE; + struct { + unsigned char LVD2LVL:4; + unsigned char LVD1LVL:4; + } BIT; + } LVDLVLR; + char wk24[1]; + union { + unsigned char BYTE; + struct { + unsigned char LVD1RN:1; + unsigned char LVD1RI:1; + unsigned char LVD1FSAMP:2; + unsigned char :1; + unsigned char LVD1CMPE:1; + unsigned char LVD1DFDIS:1; + unsigned char LVD1RIE:1; + } BIT; + } LVD1CR0; + union { + unsigned char BYTE; + struct { + unsigned char LVD2RN:1; + unsigned char LVD2RI:1; + unsigned char LVD2FSAMP:2; + unsigned char :1; + unsigned char LVD2CMPE:1; + unsigned char LVD2DFDIS:1; + unsigned char LVD2RIE:1; + } BIT; + } LVD2CR0; + char wk25[3]; + union { + unsigned char BYTE; + struct { + unsigned char :6; + unsigned char SELICONST:2; + } BIT; + } SELICONSTCR; + unsigned char DPSBKR[32]; +}; + +struct st_temps { + union { + unsigned char BYTE; + struct { + unsigned char TSEN:1; + unsigned char PGAEN:1; + unsigned char :4; + unsigned char PGAGAIN:2; + } BIT; + } TSCR; +}; + +struct st_tmr0 { + union { + unsigned char BYTE; + struct { + unsigned char CMIEB:1; + unsigned char CMIEA:1; + unsigned char OVIE:1; + unsigned char CCLR:2; + } BIT; + } TCR; + char wk0[1]; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char OSB:2; + unsigned char OSA:2; + } BIT; + } TCSR; + char wk1[1]; + unsigned char TCORA; + char wk2[1]; + unsigned char TCORB; + char wk3[1]; + unsigned char TCNT; + char wk4[1]; + union { + unsigned char BYTE; + struct { + unsigned char TMRIS:1; + unsigned char :2; + unsigned char CSS:2; + unsigned char CKS:3; + } BIT; + } TCCR; + char wk5[1]; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char TCS:1; + } BIT; + } TCSTR; +}; + +struct st_tmr1 { + union { + unsigned char BYTE; + struct { + unsigned char CMIEB:1; + unsigned char CMIEA:1; + unsigned char OVIE:1; + unsigned char CCLR:2; + } BIT; + } TCR; + char wk0[1]; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char OSB:2; + unsigned char OSA:2; + } BIT; + } TCSR; + char wk1[1]; + unsigned char TCORA; + char wk2[1]; + unsigned char TCORB; + char wk3[1]; + unsigned char TCNT; + char wk4[1]; + union { + unsigned char BYTE; + struct { + unsigned char TMRIS:1; + unsigned char :2; + unsigned char CSS:2; + unsigned char CKS:3; + } BIT; + } TCCR; +}; + +struct st_tmr01 { + unsigned short TCORA; + unsigned short TCORB; + unsigned short TCNT; + unsigned short TCCR; +}; + +struct st_wdt { + unsigned char WDTRR; + char wk0[1]; + union { + unsigned short WORD; + struct { + unsigned short :2; + unsigned short RPSS:2; + unsigned short :2; + unsigned short RPES:2; + unsigned short CKS:4; + unsigned short :2; + unsigned short TOPS:2; + } BIT; + } WDTCR; + union { + unsigned short WORD; + struct { + unsigned short REFEF:1; + unsigned short UNDFF:1; + unsigned short CNTVAL:14; + } BIT; + } WDTSR; + union { + unsigned char BYTE; + struct { + unsigned char RSTIRQS:1; + } BIT; + } WDTRCR; +}; + +enum enum_ir { +IR_BSC_BUSERR=16,IR_FCUIF_FCUERR=21,IR_FCUIF_FRDYI=23, +IR_ICU_SWINT=27, +IR_CMT0_CMI0, +IR_CMT1_CMI1, +IR_CMT2_CMI2, +IR_CMT3_CMI3, +IR_CAC_FERRF,IR_CAC_MENDF,IR_CAC_OVFF, +IR_RSPI0_SPEI2=44,IR_RSPI0_SPRI0,IR_RSPI0_SPTI0,IR_RSPI0_SPII0, +IR_DOC_DOPCF=57, +IR_CMPB0_COMPB0, +IR_CMPB1_COMPB1, +IR_RTC_COUNTUP=63, +IR_ICU_IRQ0,IR_ICU_IRQ1,IR_ICU_IRQ2,IR_ICU_IRQ3,IR_ICU_IRQ4,IR_ICU_IRQ5,IR_ICU_IRQ6,IR_ICU_IRQ7, +IR_LVDCMPA_LVD1COMPA1=88,IR_LVDCMPA_LVD1COMPA2, +IR_RTC_ALM=92,IR_RTC_PRD, +IR_S12AD_S12ADI=102,IR_S12AD_GBADI, +IR_ELC_ELSR18I=106,IR_ELC_ELSR19I, +IR_MTU0_TGIA0=114,IR_MTU0_TGIB0,IR_MTU0_TGIC0,IR_MTU0_TGID0,IR_MTU0_TGIV0,IR_MTU0_TGIE0,IR_MTU0_TGIF0, +IR_MTU1_TGIA1,IR_MTU1_TGIB1,IR_MTU1_TGIV1,IR_MTU1_TGIU1, +IR_MTU2_TGIA2,IR_MTU2_TGIB2,IR_MTU2_TGIV2,IR_MTU2_TGIU2, +IR_MTU3_TGIA3,IR_MTU3_TGIB3,IR_MTU3_TGIC3,IR_MTU3_TGID3,IR_MTU3_TGIV3, +IR_MTU4_TGIA4,IR_MTU4_TGIB4,IR_MTU4_TGIC4,IR_MTU4_TGID4,IR_MTU4_TGIV4, +IR_MTU5_TGIU5,IR_MTU5_TGIV5,IR_MTU5_TGIW5, +IR_POE_OEI1=170,IR_POE_OEI2, +IR_TMR0_CMIA0=174,IR_TMR0_CMIB0,IR_TMR0_OVI0, +IR_TMR1_CMIA1,IR_TMR1_CMIB1,IR_TMR1_OVI1, +IR_TMR2_CMIA2,IR_TMR2_CMIB2,IR_TMR2_OVI2, +IR_TMR3_CMIA3,IR_TMR3_CMIB3,IR_TMR3_OVI3, +IR_DMAC_DMAC0I=198,IR_DMAC_DMAC1I,IR_DMAC_DMAC2I,IR_DMAC_DMAC3I, +IR_SCI0_ERI0=214,IR_SCI0_RXI0,IR_SCI0_TXI0,IR_SCI0_TEI0, +IR_SCI1_ERI1,IR_SCI1_RXI1,IR_SCI1_TXI1,IR_SCI1_TEI1, +IR_SCI5_ERI5,IR_SCI5_RXI5,IR_SCI5_TXI5,IR_SCI5_TEI5, +IR_SCI6_ERI6,IR_SCI6_RXI6,IR_SCI6_TXI6,IR_SCI6_TEI6, +IR_SCI8_ERI8,IR_SCI8_RXI8,IR_SCI8_TXI8,IR_SCI8_TEI8, +IR_SCI9_ERI9,IR_SCI9_RXI9,IR_SCI9_TXI9,IR_SCI9_TEI9, +IR_SCI12_ERI12,IR_SCI12_RXI12,IR_SCI12_TXI12,IR_SCI12_TEI12,IR_SCI12_SCIX0,IR_SCI12_SCIX1,IR_SCI12_SCIX2,IR_SCI12_SCIX3, +IR_RIIC0_EEI0,IR_RIIC0_RXI0,IR_RIIC0_TXI0,IR_RIIC0_TEI0 +}; + +enum enum_dtce { +DTCE_ICU_SWINT=27, +DTCE_CMT0_CMI0, +DTCE_CMT1_CMI1, +DTCE_CMT2_CMI2, +DTCE_CMT3_CMI3, +DTCE_RSPI0_SPRI0=45,DTCE_RSPI0_SPTI0, +DTCE_CMPB0_COMPB0=58, +DTCE_CMPB1_COMPB1, +DTCE_ICU_IRQ0=64,DTCE_ICU_IRQ1,DTCE_ICU_IRQ2,DTCE_ICU_IRQ3,DTCE_ICU_IRQ4,DTCE_ICU_IRQ5,DTCE_ICU_IRQ6,DTCE_ICU_IRQ7, +DTCE_LVDCMPA_LVD1COMPA1=88,DTCE_LVDCMPA_LVD1COMPA2, +DTCE_S12AD_S12ADI=102,DTCE_S12AD_GBADI, +DTCE_ELC_ELSR18I=106,DTCE_ELC_ELSR19I, +DTCE_MTU0_TGIA0=114,DTCE_MTU0_TGIB0,DTCE_MTU0_TGIC0,DTCE_MTU0_TGID0, +DTCE_MTU1_TGIA1=121,DTCE_MTU1_TGIB1, +DTCE_MTU2_TGIA2=125,DTCE_MTU2_TGIB2, +DTCE_MTU3_TGIA3=129,DTCE_MTU3_TGIB3,DTCE_MTU3_TGIC3,DTCE_MTU3_TGID3, +DTCE_MTU4_TGIA4=134,DTCE_MTU4_TGIB4,DTCE_MTU4_TGIC4,DTCE_MTU4_TGID4,DTCE_MTU4_TGIV4, +DTCE_MTU5_TGIU5,DTCE_MTU5_TGIV5,DTCE_MTU5_TGIW5, +DTCE_TMR0_CMIA0=174,DTCE_TMR0_CMIB0, +DTCE_TMR1_CMIA1=177,DTCE_TMR1_CMIB1, +DTCE_TMR2_CMIA2=180,DTCE_TMR2_CMIB2, +DTCE_TMR3_CMIA3=183,DTCE_TMR3_CMIB3, +DTCE_DMAC_DMAC0I=198,DTCE_DMAC_DMAC1I,DTCE_DMAC_DMAC2I,DTCE_DMAC_DMAC3I, +DTCE_SCI0_RXI0=215,DTCE_SCI0_TXI0, +DTCE_SCI1_RXI1=219,DTCE_SCI1_TXI1, +DTCE_SCI5_RXI5=223,DTCE_SCI5_TXI5, +DTCE_SCI6_RXI6=227,DTCE_SCI6_TXI6, +DTCE_SCI8_RXI8=231,DTCE_SCI8_TXI8, +DTCE_SCI9_RXI9=235,DTCE_SCI9_TXI9, +DTCE_SCI12_RXI12=239,DTCE_SCI12_TXI12, +DTCE_RIIC0_RXI0=247,DTCE_RIIC0_TXI0 +}; + +enum enum_ier { +IER_BSC_BUSERR=0x02, +IER_FCUIF_FCUERR=0x02,IER_FCUIF_FRDYI=0x02, +IER_ICU_SWINT=0x03, +IER_CMT0_CMI0=0x03, +IER_CMT1_CMI1=0x03, +IER_CMT2_CMI2=0x03, +IER_CMT3_CMI3=0x03, +IER_CAC_FERRF=0x04,IER_CAC_MENDF=0x04,IER_CAC_OVFF=0x04, +IER_RSPI0_SPEI2=0x05,IER_RSPI0_SPRI0=0x05,IER_RSPI0_SPTI0=0x05,IER_RSPI0_SPII0=0x05, +IER_DOC_DOPCF=0x07, +IER_CMPB0_COMPB0=0x07, +IER_CMPB1_COMPB1=0x07, +IER_RTC_COUNTUP=0x07, +IER_ICU_IRQ0=0x08,IER_ICU_IRQ1=0x08,IER_ICU_IRQ2=0x08,IER_ICU_IRQ3=0x08,IER_ICU_IRQ4=0x08,IER_ICU_IRQ5=0x08,IER_ICU_IRQ6=0x08,IER_ICU_IRQ7=0x08, +IER_LVDCMPA_LVD1COMPA1=0x0B,IER_LVDCMPA_LVD1COMPA2=0x0B, +IER_RTC_ALM=0x0B,IER_RTC_PRD=0x0B, +IER_S12AD_S12ADI=0x0C,IER_S12AD_GBADI=0x0C, +IER_ELC_ELSR18I=0x0D,IER_ELC_ELSR19I=0x0D, +IER_MTU0_TGIA0=0x0E,IER_MTU0_TGIB0=0x0E,IER_MTU0_TGIC0=0x0E,IER_MTU0_TGID0=0x0E,IER_MTU0_TGIV0=0x0E,IER_MTU0_TGIE0=0x0E,IER_MTU0_TGIF0=0x0F, +IER_MTU1_TGIA1=0x0F,IER_MTU1_TGIB1=0x0F,IER_MTU1_TGIV1=0x0F,IER_MTU1_TGIU1=0x0F, +IER_MTU2_TGIA2=0x0F,IER_MTU2_TGIB2=0x0F,IER_MTU2_TGIV2=0x0F,IER_MTU2_TGIU2=0x0F, +IER_MTU3_TGIA3=0x10,IER_MTU3_TGIB3=0x10,IER_MTU3_TGIC3=0x10,IER_MTU3_TGID3=0x10,IER_MTU3_TGIV3=0x10, +IER_MTU4_TGIA4=0x10,IER_MTU4_TGIB4=0x10,IER_MTU4_TGIC4=0x11,IER_MTU4_TGID4=0x11,IER_MTU4_TGIV4=0x11, +IER_MTU5_TGIU5=0x11,IER_MTU5_TGIV5=0x11,IER_MTU5_TGIW5=0x11, +IER_POE_OEI1=0x15,IER_POE_OEI2=0x15, +IER_TMR0_CMIA0=0x15,IER_TMR0_CMIB0=0x15,IER_TMR0_OVI0=0x16, +IER_TMR1_CMIA1=0x16,IER_TMR1_CMIB1=0x16,IER_TMR1_OVI1=0x16, +IER_TMR2_CMIA2=0x16,IER_TMR2_CMIB2=0x16,IER_TMR2_OVI2=0x16, +IER_TMR3_CMIA3=0x16,IER_TMR3_CMIB3=0x17,IER_TMR3_OVI3=0x17, +IER_DMAC_DMAC0I=0x18,IER_DMAC_DMAC1I=0x18,IER_DMAC_DMAC2I=0x19,IER_DMAC_DMAC3I=0x19, +IER_SCI0_ERI0=0x1A,IER_SCI0_RXI0=0x1A,IER_SCI0_TXI0=0x1B,IER_SCI0_TEI0=0x1B, +IER_SCI1_ERI1=0x1B,IER_SCI1_RXI1=0x1B,IER_SCI1_TXI1=0x1B,IER_SCI1_TEI1=0x1B, +IER_SCI5_ERI5=0x1B,IER_SCI5_RXI5=0x1B,IER_SCI5_TXI5=0x1C,IER_SCI5_TEI5=0x1C, +IER_SCI6_ERI6=0x1C,IER_SCI6_RXI6=0x1C,IER_SCI6_TXI6=0x1C,IER_SCI6_TEI6=0x1C, +IER_SCI8_ERI8=0x1C,IER_SCI8_RXI8=0x1C,IER_SCI8_TXI8=0x1D,IER_SCI8_TEI8=0x1D, +IER_SCI9_ERI9=0x1D,IER_SCI9_RXI9=0x1D,IER_SCI9_TXI9=0x1D,IER_SCI9_TEI9=0x1D, +IER_SCI12_ERI12=0x1D,IER_SCI12_RXI12=0x1D,IER_SCI12_TXI12=0x1E,IER_SCI12_TEI12=0x1E,IER_SCI12_SCIX0=0x1E,IER_SCI12_SCIX1=0x1E,IER_SCI12_SCIX2=0x1E,IER_SCI12_SCIX3=0x1E, +IER_RIIC0_EEI0=0x1E,IER_RIIC0_RXI0=0x1E,IER_RIIC0_TXI0=0x1F,IER_RIIC0_TEI0=0x1F +}; + +enum enum_ipr { +IPR_BSC_BUSERR=0x00, +IPR_FCUIF_FCUERR=0x01,IPR_FCUIF_FRDYI=0x02, +IPR_ICU_SWINT=0x03, +IPR_CMT0_CMI0=0x04, +IPR_CMT1_CMI1=0x05, +IPR_CMT2_CMI2=0x06, +IPR_CMT3_CMI3=0x07, +IPR_CAC_FERRF=0x32,IPR_CAC_MENDF=0x33,IPR_CAC_OVFF=0x34, +IPR_RSPI0_SPEI2=0x44,IPR_RSPI0_SPRI0=0x44,IPR_RSPI0_SPTI0=0x44,IPR_RSPI0_SPII0=0x44, +IPR_DOC_DOPCF=0x57, +IPR_CMPB0_COMPB0=0x58, +IPR_CMPB1_COMPB1=0x59, +IPR_RTC_COUNTUP=0x63, +IPR_ICU_IRQ0=0x64,IPR_ICU_IRQ1=0x65,IPR_ICU_IRQ2=0x66,IPR_ICU_IRQ3=0x67,IPR_ICU_IRQ4=0x68,IPR_ICU_IRQ5=0x69,IPR_ICU_IRQ6=0x70,IPR_ICU_IRQ7=0x71, +IPR_LVDCMPA_LVD1COMPA1=0x88,IPR_LVDCMPA_LVD1COMPA2=0x89, +IPR_RTC_ALM=0x92,IPR_RTC_PRD=0x93, +IPR_S12AD_S12ADI=0x102,IPR_S12AD_GBADI=0x103, +IPR_ELC_ELSR18I=0x106,IPR_ELC_ELSR19I=0x107, +IPR_MTU0_TGIA0=0x114,IPR_MTU0_TGIB0=0x114,IPR_MTU0_TGIC0=0x114,IPR_MTU0_TGID0=0x114,IPR_MTU0_TGIV0=0x118,IPR_MTU0_TGIE0=0x118,IPR_MTU0_TGIF0=0x118, +IPR_MTU1_TGIA1=0x121,IPR_MTU1_TGIB1=0x121,IPR_MTU1_TGIV1=0x123,IPR_MTU1_TGIU1=0x123, +IPR_MTU2_TGIA2=0x125,IPR_MTU2_TGIB2=0x125,IPR_MTU2_TGIV2=0x127,IPR_MTU2_TGIU2=0x127, +IPR_MTU3_TGIA3=0x129,IPR_MTU3_TGIB3=0x129,IPR_MTU3_TGIC3=0x129,IPR_MTU3_TGID3=0x129,IPR_MTU3_TGIV3=0x133, +IPR_MTU4_TGIA4=0x134,IPR_MTU4_TGIB4=0x134,IPR_MTU4_TGIC4=0x134,IPR_MTU4_TGID4=0x134,IPR_MTU4_TGIV4=0x138, +IPR_MTU5_TGIU5=0x139,IPR_MTU5_TGIV5=0x139,IPR_MTU5_TGIW5=0x139, +IPR_POE_OEI1=0x170,IPR_POE_OEI2=0x171, +IPR_TMR0_CMIA0=0x174,IPR_TMR0_CMIB0=0x174,IPR_TMR0_OVI0=0x174, +IPR_TMR1_CMIA1=0x177,IPR_TMR1_CMIB1=0x177,IPR_TMR1_OVI1=0x177, +IPR_TMR2_CMIA2=0x180,IPR_TMR2_CMIB2=0x180,IPR_TMR2_OVI2=0x180, +IPR_TMR3_CMIA3=0x183,IPR_TMR3_CMIB3=0x183,IPR_TMR3_OVI3=0x183, +IPR_DMAC_DMAC0I=0x198,IPR_DMAC_DMAC1I=0x199,IPR_DMAC_DMAC2I=0x200,IPR_DMAC_DMAC3I=0x201, +IPR_SCI0_ERI0=0x214,IPR_SCI0_RXI0=0x214,IPR_SCI0_TXI0=0x214,IPR_SCI0_TEI0=0x214, +IPR_SCI1_ERI1=0x218,IPR_SCI1_RXI1=0x218,IPR_SCI1_TXI1=0x218,IPR_SCI1_TEI1=0x218, +IPR_SCI5_ERI5=0x222,IPR_SCI5_RXI5=0x222,IPR_SCI5_TXI5=0x222,IPR_SCI5_TEI5=0x222, +IPR_SCI6_ERI6=0x226,IPR_SCI6_RXI6=0x226,IPR_SCI6_TXI6=0x226,IPR_SCI6_TEI6=0x226, +IPR_SCI8_ERI8=0x230,IPR_SCI8_RXI8=0x230,IPR_SCI8_TXI8=0x230,IPR_SCI8_TEI8=0x230, +IPR_SCI9_ERI9=0x234,IPR_SCI9_RXI9=0x234,IPR_SCI9_TXI9=0x234,IPR_SCI9_TEI9=0x234, +IPR_SCI12_ERI12=0x238,IPR_SCI12_RXI12=0x238,IPR_SCI12_TXI12=0x238,IPR_SCI12_TEI12=0x238,IPR_SCI12_SCIX0=0x242,IPR_SCI12_SCIX1=0x243,IPR_SCI12_SCIX2=0x244,IPR_SCI12_SCIX3=0x245, +IPR_RIIC0_EEI0=0x246,IPR_RIIC0_RXI0=0x247,IPR_RIIC0_TXI0=0x248,IPR_RIIC0_TEI0=0x249, +IPR_MTU0_TGI=0x118, +IPR_MTU1_TGI=0x123, +IPR_MTU2_TGI=0x127, +IPR_MTU5_=0x139, +IPR_MTU5_TGI=0x139, +IPR_TMR0_=0x174, +IPR_TMR1_=0x177, +IPR_TMR2_=0x180, +IPR_TMR3_=0x183, +IPR_SCI0_=0x214, +IPR_SCI1_=0x218, +IPR_SCI5_=0x222, +IPR_SCI6_=0x226, +IPR_SCI8_=0x230, +IPR_SCI9_=0x234 +}; + +#define IEN_BSC_BUSERR IEN0 +#define IEN_FCUIF_FCUERR IEN5 +#define IEN_FCUIF_FRDYI IEN7 +#define IEN_ICU_SWINT IEN3 +#define IEN_CMT0_CMI0 IEN4 +#define IEN_CMT1_CMI1 IEN5 +#define IEN_CMT2_CMI2 IEN6 +#define IEN_CMT3_CMI3 IEN7 +#define IEN_CAC_FERRF IEN0 +#define IEN_CAC_MENDF IEN1 +#define IEN_CAC_OVFF IEN2 +#define IEN_RSPI0_SPEI2 IEN4 +#define IEN_RSPI0_SPRI0 IEN5 +#define IEN_RSPI0_SPTI0 IEN6 +#define IEN_RSPI0_SPII0 IEN7 +#define IEN_DOC_DOPCF IEN1 +#define IEN_CMPB0_COMPB0 IEN2 +#define IEN_CMPB1_COMPB1 IEN3 +#define IEN_RTC_COUNTUP IEN7 +#define IEN_ICU_IRQ0 IEN0 +#define IEN_ICU_IRQ1 IEN1 +#define IEN_ICU_IRQ2 IEN2 +#define IEN_ICU_IRQ3 IEN3 +#define IEN_ICU_IRQ4 IEN4 +#define IEN_ICU_IRQ5 IEN5 +#define IEN_ICU_IRQ6 IEN6 +#define IEN_ICU_IRQ7 IEN7 +#define IEN_LVDCMPA_LVD1COMPA1 IEN0 +#define IEN_LVDCMPA_LVD1COMPA2 IEN1 +#define IEN_RTC_ALM IEN4 +#define IEN_RTC_PRD IEN5 +#define IEN_S12AD_S12ADI IEN6 +#define IEN_S12AD_GBADI IEN7 +#define IEN_ELC_ELSR18I IEN2 +#define IEN_ELC_ELSR19I IEN3 +#define IEN_MTU0_TGIA0 IEN2 +#define IEN_MTU0_TGIB0 IEN3 +#define IEN_MTU0_TGIC0 IEN4 +#define IEN_MTU0_TGID0 IEN5 +#define IEN_MTU0_TGIV0 IEN6 +#define IEN_MTU0_TGIE0 IEN7 +#define IEN_MTU0_TGIF0 IEN0 +#define IEN_MTU1_TGIA1 IEN1 +#define IEN_MTU1_TGIB1 IEN2 +#define IEN_MTU1_TGIV1 IEN3 +#define IEN_MTU1_TGIU1 IEN4 +#define IEN_MTU2_TGIA2 IEN1 +#define IEN_MTU2_TGIB2 IEN2 +#define IEN_MTU2_TGIV2 IEN3 +#define IEN_MTU2_TGIU2 IEN4 +#define IEN_MTU3_TGIA3 IEN1 +#define IEN_MTU3_TGIB3 IEN2 +#define IEN_MTU3_TGIC3 IEN3 +#define IEN_MTU3_TGID3 IEN4 +#define IEN_MTU3_TGIV3 IEN5 +#define IEN_MTU4_TGIA4 IEN6 +#define IEN_MTU4_TGIB4 IEN7 +#define IEN_MTU4_TGIC4 IEN0 +#define IEN_MTU4_TGID4 IEN1 +#define IEN_MTU4_TGIV4 IEN2 +#define IEN_MTU5_TGIU5 IEN3 +#define IEN_MTU5_TGIV5 IEN4 +#define IEN_MTU5_TGIW5 IEN5 +#define IEN_POE_OEI1 IEN2 +#define IEN_POE_OEI2 IEN3 +#define IEN_TMR0_CMIA0 IEN6 +#define IEN_TMR0_CMIB0 IEN7 +#define IEN_TMR0_OVI0 IEN0 +#define IEN_TMR1_CMIA1 IEN1 +#define IEN_TMR1_CMIB1 IEN2 +#define IEN_TMR1_OVI1 IEN3 +#define IEN_TMR2_CMIA2 IEN4 +#define IEN_TMR2_CMIB2 IEN5 +#define IEN_TMR2_OVI2 IEN6 +#define IEN_TMR3_CMIA3 IEN7 +#define IEN_TMR3_CMIB3 IEN0 +#define IEN_TMR3_OVI3 IEN1 +#define IEN_DMAC_DMAC0I IEN6 +#define IEN_DMAC_DMAC1I IEN7 +#define IEN_DMAC_DMAC2I IEN0 +#define IEN_DMAC_DMAC3I IEN1 +#define IEN_SCI0_ERI0 IEN6 +#define IEN_SCI0_RXI0 IEN7 +#define IEN_SCI0_TXI0 IEN0 +#define IEN_SCI0_TEI0 IEN1 +#define IEN_SCI1_ERI1 IEN2 +#define IEN_SCI1_RXI1 IEN3 +#define IEN_SCI1_TXI1 IEN4 +#define IEN_SCI1_TEI1 IEN5 +#define IEN_SCI5_ERI5 IEN6 +#define IEN_SCI5_RXI5 IEN7 +#define IEN_SCI5_TXI5 IEN0 +#define IEN_SCI5_TEI5 IEN1 +#define IEN_SCI6_ERI6 IEN2 +#define IEN_SCI6_RXI6 IEN3 +#define IEN_SCI6_TXI6 IEN4 +#define IEN_SCI6_TEI6 IEN5 +#define IEN_SCI8_ERI8 IEN6 +#define IEN_SCI8_RXI8 IEN7 +#define IEN_SCI8_TXI8 IEN0 +#define IEN_SCI8_TEI8 IEN1 +#define IEN_SCI9_ERI9 IEN2 +#define IEN_SCI9_RXI9 IEN3 +#define IEN_SCI9_TXI9 IEN4 +#define IEN_SCI9_TEI9 IEN5 +#define IEN_SCI12_ERI12 IEN6 +#define IEN_SCI12_RXI12 IEN7 +#define IEN_SCI12_TXI12 IEN0 +#define IEN_SCI12_TEI12 IEN1 +#define IEN_SCI12_SCIX0 IEN2 +#define IEN_SCI12_SCIX1 IEN3 +#define IEN_SCI12_SCIX2 IEN4 +#define IEN_SCI12_SCIX3 IEN5 +#define IEN_RIIC0_EEI0 IEN6 +#define IEN_RIIC0_RXI0 IEN7 +#define IEN_RIIC0_TXI0 IEN0 +#define IEN_RIIC0_TEI0 IEN1 + +#define VECT_BSC_BUSERR 16 +#define VECT_FCUIF_FCUERR 21 +#define VECT_FCUIF_FRDYI 23 +#define VECT_ICU_SWINT 27 +#define VECT_CMT0_CMI0 28 +#define VECT_CMT1_CMI1 29 +#define VECT_CMT2_CMI2 30 +#define VECT_CMT3_CMI3 31 +#define VECT_CAC_FERRF 32 +#define VECT_CAC_MENDF 33 +#define VECT_CAC_OVFF 34 +#define VECT_RSPI0_SPEI2 44 +#define VECT_RSPI0_SPRI0 45 +#define VECT_RSPI0_SPTI0 46 +#define VECT_RSPI0_SPII0 47 +#define VECT_DOC_DOPCF 57 +#define VECT_CMPB0_COMPB0 58 +#define VECT_CMPB1_COMPB1 59 +#define VECT_RTC_COUNTUP 63 +#define VECT_ICU_IRQ0 64 +#define VECT_ICU_IRQ1 65 +#define VECT_ICU_IRQ2 66 +#define VECT_ICU_IRQ3 67 +#define VECT_ICU_IRQ4 68 +#define VECT_ICU_IRQ5 69 +#define VECT_ICU_IRQ6 70 +#define VECT_ICU_IRQ7 71 +#define VECT_LVDCMPA_LVD1COMPA1 88 +#define VECT_LVDCMPA_LVD1COMPA2 89 +#define VECT_RTC_ALM 92 +#define VECT_RTC_PRD 93 +#define VECT_S12AD_S12ADI 102 +#define VECT_S12AD_GBADI 103 +#define VECT_ELC_ELSR18I 106 +#define VECT_ELC_ELSR19I 107 +#define VECT_MTU0_TGIA0 114 +#define VECT_MTU0_TGIB0 115 +#define VECT_MTU0_TGIC0 116 +#define VECT_MTU0_TGID0 117 +#define VECT_MTU0_TGIV0 118 +#define VECT_MTU0_TGIE0 119 +#define VECT_MTU0_TGIF0 120 +#define VECT_MTU1_TGIA1 121 +#define VECT_MTU1_TGIB1 122 +#define VECT_MTU1_TGIV1 123 +#define VECT_MTU1_TGIU1 124 +#define VECT_MTU2_TGIA2 125 +#define VECT_MTU2_TGIB2 126 +#define VECT_MTU2_TGIV2 127 +#define VECT_MTU2_TGIU2 128 +#define VECT_MTU3_TGIA3 129 +#define VECT_MTU3_TGIB3 130 +#define VECT_MTU3_TGIC3 131 +#define VECT_MTU3_TGID3 132 +#define VECT_MTU3_TGIV3 133 +#define VECT_MTU4_TGIA4 134 +#define VECT_MTU4_TGIB4 135 +#define VECT_MTU4_TGIC4 136 +#define VECT_MTU4_TGID4 137 +#define VECT_MTU4_TGIV4 138 +#define VECT_MTU5_TGIU5 139 +#define VECT_MTU5_TGIV5 140 +#define VECT_MTU5_TGIW5 141 +#define VECT_POE_OEI1 170 +#define VECT_POE_OEI2 171 +#define VECT_TMR0_CMIA0 174 +#define VECT_TMR0_CMIB0 175 +#define VECT_TMR0_OVI0 176 +#define VECT_TMR1_CMIA1 177 +#define VECT_TMR1_CMIB1 178 +#define VECT_TMR1_OVI1 179 +#define VECT_TMR2_CMIA2 180 +#define VECT_TMR2_CMIB2 181 +#define VECT_TMR2_OVI2 182 +#define VECT_TMR3_CMIA3 183 +#define VECT_TMR3_CMIB3 184 +#define VECT_TMR3_OVI3 185 +#define VECT_DMAC_DMAC0I 198 +#define VECT_DMAC_DMAC1I 199 +#define VECT_DMAC_DMAC2I 200 +#define VECT_DMAC_DMAC3I 201 +#define VECT_SCI0_ERI0 214 +#define VECT_SCI0_RXI0 215 +#define VECT_SCI0_TXI0 216 +#define VECT_SCI0_TEI0 217 +#define VECT_SCI1_ERI1 218 +#define VECT_SCI1_RXI1 219 +#define VECT_SCI1_TXI1 220 +#define VECT_SCI1_TEI1 221 +#define VECT_SCI5_ERI5 222 +#define VECT_SCI5_RXI5 223 +#define VECT_SCI5_TXI5 224 +#define VECT_SCI5_TEI5 225 +#define VECT_SCI6_ERI6 226 +#define VECT_SCI6_RXI6 227 +#define VECT_SCI6_TXI6 228 +#define VECT_SCI6_TEI6 229 +#define VECT_SCI8_ERI8 230 +#define VECT_SCI8_RXI8 231 +#define VECT_SCI8_TXI8 232 +#define VECT_SCI8_TEI8 233 +#define VECT_SCI9_ERI9 234 +#define VECT_SCI9_RXI9 235 +#define VECT_SCI9_TXI9 236 +#define VECT_SCI9_TEI9 237 +#define VECT_SCI12_ERI12 238 +#define VECT_SCI12_RXI12 239 +#define VECT_SCI12_TXI12 240 +#define VECT_SCI12_TEI12 241 +#define VECT_SCI12_SCIX0 242 +#define VECT_SCI12_SCIX1 243 +#define VECT_SCI12_SCIX2 244 +#define VECT_SCI12_SCIX3 245 +#define VECT_RIIC0_EEI0 246 +#define VECT_RIIC0_RXI0 247 +#define VECT_RIIC0_TXI0 248 +#define VECT_RIIC0_TEI0 249 + +#define MSTP_DTC SYSTEM.MSTPCRA.BIT.MSTPA28 +#define MSTP_DMAC SYSTEM.MSTPCRA.BIT.MSTPA28 +#define MSTP_DMAC0 SYSTEM.MSTPCRA.BIT.MSTPA28 +#define MSTP_DMAC1 SYSTEM.MSTPCRA.BIT.MSTPA28 +#define MSTP_DMAC2 SYSTEM.MSTPCRA.BIT.MSTPA28 +#define MSTP_DMAC3 SYSTEM.MSTPCRA.BIT.MSTPA28 +#define MSTP_DA SYSTEM.MSTPCRA.BIT.MSTPA19 +#define MSTP_S12AD SYSTEM.MSTPCRA.BIT.MSTPA17 +#define MSTP_CMT0 SYSTEM.MSTPCRA.BIT.MSTPA15 +#define MSTP_CMT1 SYSTEM.MSTPCRA.BIT.MSTPA15 +#define MSTP_CMT2 SYSTEM.MSTPCRA.BIT.MSTPA14 +#define MSTP_CMT3 SYSTEM.MSTPCRA.BIT.MSTPA14 +#define MSTP_MTU SYSTEM.MSTPCRA.BIT.MSTPA9 +#define MSTP_MTU0 SYSTEM.MSTPCRA.BIT.MSTPA9 +#define MSTP_MTU1 SYSTEM.MSTPCRA.BIT.MSTPA9 +#define MSTP_MTU2 SYSTEM.MSTPCRA.BIT.MSTPA9 +#define MSTP_MTU3 SYSTEM.MSTPCRA.BIT.MSTPA9 +#define MSTP_MTU4 SYSTEM.MSTPCRA.BIT.MSTPA9 +#define MSTP_MTU5 SYSTEM.MSTPCRA.BIT.MSTPA9 +#define MSTP_TMR0 SYSTEM.MSTPCRA.BIT.MSTPA5 +#define MSTP_TMR1 SYSTEM.MSTPCRA.BIT.MSTPA5 +#define MSTP_TMR01 SYSTEM.MSTPCRA.BIT.MSTPA5 +#define MSTP_TMR2 SYSTEM.MSTPCRA.BIT.MSTPA4 +#define MSTP_TMR3 SYSTEM.MSTPCRA.BIT.MSTPA4 +#define MSTP_TMR23 SYSTEM.MSTPCRA.BIT.MSTPA4 +#define MSTP_SCI0 SYSTEM.MSTPCRB.BIT.MSTPB31 +#define MSTP_SCI1 SYSTEM.MSTPCRB.BIT.MSTPB30 +#define MSTP_SCI5 SYSTEM.MSTPCRB.BIT.MSTPB26 +#define MSTP_SCI6 SYSTEM.MSTPCRB.BIT.MSTPB25 +#define MSTP_CRC SYSTEM.MSTPCRB.BIT.MSTPB23 +#define MSTP_RIIC0 SYSTEM.MSTPCRB.BIT.MSTPB21 +#define MSTP_RSPI0 SYSTEM.MSTPCRB.BIT.MSTPB17 +#define MSTP_CMPB SYSTEM.MSTPCRB.BIT.MSTPB10 +#define MSTP_ELC SYSTEM.MSTPCRB.BIT.MSTPB9 +#define MSTP_TEMPS SYSTEM.MSTPCRB.BIT.MSTPB8 +#define MSTP_DOC SYSTEM.MSTPCRB.BIT.MSTPB6 +#define MSTP_SCI12 SYSTEM.MSTPCRB.BIT.MSTPB4 +#define MSTP_SCI8 SYSTEM.MSTPCRC.BIT.MSTPC27 +#define MSTP_SCI9 SYSTEM.MSTPCRC.BIT.MSTPC26 +#define MSTP_RAM0 SYSTEM.MSTPCRC.BIT.MSTPC0 + +#define __IR( x ) ICU.IR[ IR ## x ].BIT.IR +#define _IR( x ) __IR( x ) +#define IR( x , y ) _IR( _ ## x ## _ ## y ) +#define __DTCE( x ) ICU.DTCER[ DTCE ## x ].BIT.DTCE +#define _DTCE( x ) __DTCE( x ) +#define DTCE( x , y ) _DTCE( _ ## x ## _ ## y ) +#define __IEN( x ) ICU.IER[ IER ## x ].BIT.IEN ## x +#define _IEN( x ) __IEN( x ) +#define IEN( x , y ) _IEN( _ ## x ## _ ## y ) +#define __IPR( x ) ICU.IPR[ IPR ## x ].BIT.IPR +#define _IPR( x ) __IPR( x ) +#define IPR( x , y ) _IPR( _ ## x ## _ ## y ) +#define __VECT( x ) VECT ## x +#define _VECT( x ) __VECT( x ) +#define VECT( x , y ) _VECT( _ ## x ## _ ## y ) +#define __MSTP( x ) MSTP ## x +#define _MSTP( x ) __MSTP( x ) +#define MSTP( x ) _MSTP( _ ## x ) + +#define BSC (*(volatile struct st_bsc __evenaccess *)0x81300) +#define CAC (*(volatile struct st_cac __evenaccess *)0x8B000) +#define CMPB (*(volatile struct st_cmpb __evenaccess *)0x8C580) +#define CMT (*(volatile struct st_cmt __evenaccess *)0x88000) +#define CMT0 (*(volatile struct st_cmt0 __evenaccess *)0x88002) +#define CMT1 (*(volatile struct st_cmt0 __evenaccess *)0x88008) +#define CMT2 (*(volatile struct st_cmt0 __evenaccess *)0x88012) +#define CMT3 (*(volatile struct st_cmt0 __evenaccess *)0x88018) +#define CRC (*(volatile struct st_crc __evenaccess *)0x88280) +#define DA (*(volatile struct st_da __evenaccess *)0x880C0) +#define DMAC (*(volatile struct st_dmac __evenaccess *)0x82200) +#define DMAC0 (*(volatile struct st_dmac0 __evenaccess *)0x82000) +#define DMAC1 (*(volatile struct st_dmac1 __evenaccess *)0x82040) +#define DMAC2 (*(volatile struct st_dmac1 __evenaccess *)0x82080) +#define DMAC3 (*(volatile struct st_dmac1 __evenaccess *)0x820C0) +#define DOC (*(volatile struct st_doc __evenaccess *)0x8B080) +#define DTC (*(volatile struct st_dtc __evenaccess *)0x82400) +#define ELC (*(volatile struct st_elc __evenaccess *)0x8B100) +#define EXSYSTEM (*(volatile struct st_exsystem __evenaccess *)0xFF7FFFF8) +#define FLASH (*(volatile struct st_flash __evenaccess *)0x8C296) +#define ICU (*(volatile struct st_icu __evenaccess *)0x87000) +#define IWDT (*(volatile struct st_iwdt __evenaccess *)0x88030) +#define MPC (*(volatile struct st_mpc __evenaccess *)0x8C11F) +#define MTU (*(volatile struct st_mtu __evenaccess *)0x8860A) +#define MTU0 (*(volatile struct st_mtu0 __evenaccess *)0x88700) +#define MTU1 (*(volatile struct st_mtu1 __evenaccess *)0x88780) +#define MTU2 (*(volatile struct st_mtu2 __evenaccess *)0x88800) +#define MTU3 (*(volatile struct st_mtu3 __evenaccess *)0x88600) +#define MTU4 (*(volatile struct st_mtu4 __evenaccess *)0x88600) +#define MTU5 (*(volatile struct st_mtu5 __evenaccess *)0x88880) +#define POE (*(volatile struct st_poe __evenaccess *)0x88900) +#define PORT (*(volatile struct st_port __evenaccess *)0x8C100) +#define PORT0 (*(volatile struct st_port0 __evenaccess *)0x8C000) +#define PORT1 (*(volatile struct st_port1 __evenaccess *)0x8C001) +#define PORT2 (*(volatile struct st_port2 __evenaccess *)0x8C002) +#define PORT3 (*(volatile struct st_port3 __evenaccess *)0x8C003) +#define PORT4 (*(volatile struct st_port4 __evenaccess *)0x8C004) +#define PORT5 (*(volatile struct st_port5 __evenaccess *)0x8C005) +#define PORTA (*(volatile struct st_porta __evenaccess *)0x8C00A) +#define PORTB (*(volatile struct st_portb __evenaccess *)0x8C00B) +#define PORTC (*(volatile struct st_portc __evenaccess *)0x8C00C) +#define PORTD (*(volatile struct st_portd __evenaccess *)0x8C00D) +#define PORTE (*(volatile struct st_porte __evenaccess *)0x8C00E) +#define PORTH (*(volatile struct st_porth __evenaccess *)0x8C011) +#define PORTJ (*(volatile struct st_portj __evenaccess *)0x8C012) +#define RIIC0 (*(volatile struct st_riic __evenaccess *)0x88300) +#define RSPI0 (*(volatile struct st_rspi __evenaccess *)0x88380) +#define RTC (*(volatile struct st_rtc __evenaccess *)0x8C400) +#define S12AD (*(volatile struct st_s12ad __evenaccess *)0x89000) +#define SCI0 (*(volatile struct st_sci0 __evenaccess *)0x8A000) +#define SCI1 (*(volatile struct st_sci1 __evenaccess *)0x8A020) +#define SCI5 (*(volatile struct st_sci1 __evenaccess *)0x8A0A0) +#define SCI6 (*(volatile struct st_sci1 __evenaccess *)0x8A0C0) +#define SCI8 (*(volatile struct st_sci1 __evenaccess *)0x8A100) +#define SCI9 (*(volatile struct st_sci1 __evenaccess *)0x8A120) +#define SCI12 (*(volatile struct st_sci12 __evenaccess *)0x8B300) +#define SMCI0 (*(volatile struct st_smci __evenaccess *)0x8A000) +#define SMCI1 (*(volatile struct st_smci __evenaccess *)0x8A020) +#define SMCI5 (*(volatile struct st_smci __evenaccess *)0x8A0A0) +#define SMCI6 (*(volatile struct st_smci __evenaccess *)0x8A0C0) +#define SMCI8 (*(volatile struct st_smci __evenaccess *)0x8A100) +#define SMCI9 (*(volatile struct st_smci __evenaccess *)0x8A120) +#define SMCI12 (*(volatile struct st_smci __evenaccess *)0x8B300) +#define SYSTEM (*(volatile struct st_system __evenaccess *)0x80000) +#define TEMPS (*(volatile struct st_temps __evenaccess *)0x8C500) +#define TMR0 (*(volatile struct st_tmr0 __evenaccess *)0x88200) +#define TMR1 (*(volatile struct st_tmr1 __evenaccess *)0x88201) +#define TMR2 (*(volatile struct st_tmr0 __evenaccess *)0x88210) +#define TMR3 (*(volatile struct st_tmr1 __evenaccess *)0x88211) +#define TMR01 (*(volatile struct st_tmr01 __evenaccess *)0x88204) +#define TMR23 (*(volatile struct st_tmr01 __evenaccess *)0x88214) +#define WDT (*(volatile struct st_wdt __evenaccess *)0x88020) +#pragma bit_order +#pragma packoption +#endif \ No newline at end of file diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/include/iodefine.h b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/include/iodefine.h new file mode 100644 index 000000000..3b8faccb6 --- /dev/null +++ b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/include/iodefine.h @@ -0,0 +1,12074 @@ +/***********************************************************************/ +/* */ +/* FILE :iodefine.h */ +/* DATE :Fri, Sep 02, 2011 */ +/* DESCRIPTION :Definition of I/O Register */ +/* CPU TYPE :RX63N */ +/* */ +/* This file is generated by Renesas Project Generator (Ver.4.52). */ +/* NOTE:THIS IS A TYPICAL EXAMPLE. */ +/* */ +/***********************************************************************/ +/************************************************************************ +* +* Device : RX/RX600/RX63N +* +* File Name : ioedfine.h +* +* Abstract : Definition of I/O Register. +* +* History : 0.50 (2011-03-28) [Hardware Manual Revision : 0.50] +* : 0.02 (2010-11-01) [Hardware Manual Revision : 0.01] +* +* NOTE : THIS IS A TYPICAL EXAMPLE. +* +* Copyright (C) 2010(2011) Renesas Electronics Corporation +* and Renesas Solutions Corp. +* +************************************************************************/ +/********************************************************************************/ +/* */ +/* DESCRIPTION : Definition of ICU Register */ +/* CPU TYPE : RX63N */ +/* */ +/* Usage : IR,DTCER,IER,IPR of ICU Register */ +/* The following IR, DTCE, IEN, IPR macro functions simplify usage. */ +/* The bit access operation is "Bit_Name(interrupt source,name)". */ +/* A part of the name can be omitted. */ +/* for example : */ +/* IR(TPU0,TGI0A) = 0; expands to : */ +/* ICU.IR[126].BIT.IR = 0; */ +/* */ +/* DTCE(ICU,IRQ0) = 1; expands to : */ +/* ICU.DTCER[64].BIT.DTCE = 1; */ +/* */ +/* IEN(CMT0,CMI0) = 1; expands to : */ +/* ICU.IER[0x03].BIT.IEN4 = 1; */ +/* */ +/* IPR(TPU0,TGI0A) = 2; expands to : */ +/* IPR(TPU0,TGI ) = 2; // TGI0A,TGI0B,TGI0C,TGI0D share IPR level. */ +/* ICU.IPR[126].BIT.IPR = 2; */ +/* */ +/* IPR(SCI0,RXI0) = 3; expands to : */ +/* IPR(SCI0, ) = 3; // SCI0 uses single IPR for all sources. */ +/* ICU.IPR[214].BIT.IPR = 3; */ +/* */ +/* Usage : #pragma interrupt Function_Identifier(vect=**) */ +/* The number of vector is "(interrupt source, name)". */ +/* for example : */ +/* #pragma interrupt INT_IRQ0(vect=VECT(ICU,IRQ0)) expands to : */ +/* #pragma interrupt INT_IRQ0(vect=64) */ +/* #pragma interrupt INT_CMT0_CMI0(vect=VECT(CMT0,CMI0)) expands to : */ +/* #pragma interrupt INT_CMT0_CMI0(vect=28) */ +/* #pragma interrupt INT_MTU0_TGIA0(vect=VECT(MTU0,TGIA0)) expands to : */ +/* #pragma interrupt INT_MTU0_TGIA0(vect=142) */ +/* #pragma interrupt INT_TPU0_TGI0A(vect=VECT(TPU0,TGI0A)) expands to : */ +/* #pragma interrupt INT_TPU0_TGI0A(vect=126) */ +/* */ +/* Usage : MSTPCRA,MSTPCRB,MSTPCRC of SYSTEM Register */ +/* The bit access operation is "MSTP(name)". */ +/* The name that can be used is a macro name defined with "iodefine.h". */ +/* for example : */ +/* MSTP(TMR2) = 0; // TMR2,TMR3,TMR23 expands to : */ +/* SYSTEM.MSTPCRA.BIT.MSTPA4 = 0; */ +/* MSTP(SCI0) = 0; // SCI0,SMCI0 expands to : */ +/* SYSTEM.MSTPCRB.BIT.MSTPB31 = 0; */ +/* MSTP(MTU4) = 0; // MTU,MTU0,MTU1,MTU2,MTU3,MTU4,MTU5 expands to : */ +/* SYSTEM.MSTPCRA.BIT.MSTPA9 = 0; */ +/* MSTP(TPU4) = 0; // TPU0,TPU1,TPU2,TPU3,TPU4,TPU5 expands to : */ +/* SYSTEM.MSTPCRA.BIT.MSTPA13 = 0; */ +/* MSTP(CMT3) = 0; // CMT2,CMT3 expands to : */ +/* SYSTEM.MSTPCRA.BIT.MSTPA14 = 0; */ +/* */ +/* */ +/********************************************************************************/ +#ifndef __RX63NIODEFINE_HEADER__ +#define __RX63NIODEFINE_HEADER__ +#pragma bit_order left +#pragma unpack +struct st_ad { + unsigned short ADDRA; + unsigned short ADDRB; + unsigned short ADDRC; + unsigned short ADDRD; + unsigned short ADDRE; + unsigned short ADDRF; + unsigned short ADDRG; + unsigned short ADDRH; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char ADIE:1; + unsigned char ADST:1; + unsigned char :2; + unsigned char CH:3; + } BIT; + } ADCSR; + union { + unsigned char BYTE; + struct { + unsigned char TRGS:3; + unsigned char :1; + unsigned char CKS:2; + unsigned char MODE:2; + } BIT; + } ADCR; + union { + unsigned char BYTE; + struct { + unsigned char DPSEL:1; + unsigned char EXOEN:1; + unsigned char EXSEL:2; + } BIT; + } ADCR2; + unsigned char ADSSTR; + char wk0[11]; + union { + unsigned char BYTE; + struct { + unsigned char :6; + unsigned char DIAG:2; + } BIT; + } ADDIAGR; +}; + +struct st_bsc { + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char STSCLR:1; + } BIT; + } BERCLR; + char wk0[3]; + union { + unsigned char BYTE; + struct { + unsigned char :6; + unsigned char TOEN:1; + unsigned char IGAEN:1; + } BIT; + } BEREN; + char wk1[3]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char MST:3; + unsigned char :2; + unsigned char TO:1; + unsigned char IA:1; + } BIT; + } BERSR1; + char wk2[1]; + union { + unsigned short WORD; + struct { + unsigned short ADDR:13; + } BIT; + } BERSR2; + char wk3[4]; + union { + unsigned short WORD; + struct { + unsigned short :2; + unsigned short BPEB:2; + unsigned short BPFB:2; + unsigned short BPHB:2; + unsigned short BPGB:2; + unsigned short BPIB:2; + unsigned short BPRO:2; + unsigned short BPRA:2; + } BIT; + } BUSPRI; + char wk4[7408]; + union { + unsigned short WORD; + struct { + unsigned short PRMOD:1; + unsigned short :5; + unsigned short PWENB:1; + unsigned short PRENB:1; + unsigned short :4; + unsigned short EWENB:1; + unsigned short :2; + unsigned short WRMOD:1; + } BIT; + } CS0MOD; + union { + unsigned long LONG; + struct { + unsigned long :3; + unsigned long CSRWAIT:5; + unsigned long :3; + unsigned long CSWWAIT:5; + unsigned long :5; + unsigned long CSPRWAIT:3; + unsigned long :5; + unsigned long CSPWWAIT:3; + } BIT; + } CS0WCR1; + union { + unsigned long LONG; + struct { + unsigned long :1; + unsigned long CSON:3; + unsigned long :1; + unsigned long WDON:3; + unsigned long :1; + unsigned long WRON:3; + unsigned long :1; + unsigned long RDON:3; + unsigned long :2; + unsigned long AWAIT:2; + unsigned long :1; + unsigned long WDOFF:3; + unsigned long :1; + unsigned long CSWOFF:3; + unsigned long :1; + unsigned long CSROFF:3; + } BIT; + } CS0WCR2; + char wk5[6]; + union { + unsigned short WORD; + struct { + unsigned short PRMOD:1; + unsigned short :5; + unsigned short PWENB:1; + unsigned short PRENB:1; + unsigned short :4; + unsigned short EWENB:1; + unsigned short :2; + unsigned short WRMOD:1; + } BIT; + } CS1MOD; + union { + unsigned long LONG; + struct { + unsigned long :3; + unsigned long CSRWAIT:5; + unsigned long :3; + unsigned long CSWWAIT:5; + unsigned long :5; + unsigned long CSPRWAIT:3; + unsigned long :5; + unsigned long CSPWWAIT:3; + } BIT; + } CS1WCR1; + union { + unsigned long LONG; + struct { + unsigned long :1; + unsigned long CSON:3; + unsigned long :1; + unsigned long WDON:3; + unsigned long :1; + unsigned long WRON:3; + unsigned long :1; + unsigned long RDON:3; + unsigned long :2; + unsigned long AWAIT:2; + unsigned long :1; + unsigned long WDOFF:3; + unsigned long :1; + unsigned long CSWOFF:3; + unsigned long :1; + unsigned long CSROFF:3; + } BIT; + } CS1WCR2; + char wk6[6]; + union { + unsigned short WORD; + struct { + unsigned short PRMOD:1; + unsigned short :5; + unsigned short PWENB:1; + unsigned short PRENB:1; + unsigned short :4; + unsigned short EWENB:1; + unsigned short :2; + unsigned short WRMOD:1; + } BIT; + } CS2MOD; + union { + unsigned long LONG; + struct { + unsigned long :3; + unsigned long CSRWAIT:5; + unsigned long :3; + unsigned long CSWWAIT:5; + unsigned long :5; + unsigned long CSPRWAIT:3; + unsigned long :5; + unsigned long CSPWWAIT:3; + } BIT; + } CS2WCR1; + union { + unsigned long LONG; + struct { + unsigned long :1; + unsigned long CSON:3; + unsigned long :1; + unsigned long WDON:3; + unsigned long :1; + unsigned long WRON:3; + unsigned long :1; + unsigned long RDON:3; + unsigned long :2; + unsigned long AWAIT:2; + unsigned long :1; + unsigned long WDOFF:3; + unsigned long :1; + unsigned long CSWOFF:3; + unsigned long :1; + unsigned long CSROFF:3; + } BIT; + } CS2WCR2; + char wk7[6]; + union { + unsigned short WORD; + struct { + unsigned short PRMOD:1; + unsigned short :5; + unsigned short PWENB:1; + unsigned short PRENB:1; + unsigned short :4; + unsigned short EWENB:1; + unsigned short :2; + unsigned short WRMOD:1; + } BIT; + } CS3MOD; + union { + unsigned long LONG; + struct { + unsigned long :3; + unsigned long CSRWAIT:5; + unsigned long :3; + unsigned long CSWWAIT:5; + unsigned long :5; + unsigned long CSPRWAIT:3; + unsigned long :5; + unsigned long CSPWWAIT:3; + } BIT; + } CS3WCR1; + union { + unsigned long LONG; + struct { + unsigned long :1; + unsigned long CSON:3; + unsigned long :1; + unsigned long WDON:3; + unsigned long :1; + unsigned long WRON:3; + unsigned long :1; + unsigned long RDON:3; + unsigned long :2; + unsigned long AWAIT:2; + unsigned long :1; + unsigned long WDOFF:3; + unsigned long :1; + unsigned long CSWOFF:3; + unsigned long :1; + unsigned long CSROFF:3; + } BIT; + } CS3WCR2; + char wk8[6]; + union { + unsigned short WORD; + struct { + unsigned short PRMOD:1; + unsigned short :5; + unsigned short PWENB:1; + unsigned short PRENB:1; + unsigned short :4; + unsigned short EWENB:1; + unsigned short :2; + unsigned short WRMOD:1; + } BIT; + } CS4MOD; + union { + unsigned long LONG; + struct { + unsigned long :3; + unsigned long CSRWAIT:5; + unsigned long :3; + unsigned long CSWWAIT:5; + unsigned long :5; + unsigned long CSPRWAIT:3; + unsigned long :5; + unsigned long CSPWWAIT:3; + } BIT; + } CS4WCR1; + union { + unsigned long LONG; + struct { + unsigned long :1; + unsigned long CSON:3; + unsigned long :1; + unsigned long WDON:3; + unsigned long :1; + unsigned long WRON:3; + unsigned long :1; + unsigned long RDON:3; + unsigned long :2; + unsigned long AWAIT:2; + unsigned long :1; + unsigned long WDOFF:3; + unsigned long :1; + unsigned long CSWOFF:3; + unsigned long :1; + unsigned long CSROFF:3; + } BIT; + } CS4WCR2; + char wk9[6]; + union { + unsigned short WORD; + struct { + unsigned short PRMOD:1; + unsigned short :5; + unsigned short PWENB:1; + unsigned short PRENB:1; + unsigned short :4; + unsigned short EWENB:1; + unsigned short :2; + unsigned short WRMOD:1; + } BIT; + } CS5MOD; + union { + unsigned long LONG; + struct { + unsigned long :3; + unsigned long CSRWAIT:5; + unsigned long :3; + unsigned long CSWWAIT:5; + unsigned long :5; + unsigned long CSPRWAIT:3; + unsigned long :5; + unsigned long CSPWWAIT:3; + } BIT; + } CS5WCR1; + union { + unsigned long LONG; + struct { + unsigned long :1; + unsigned long CSON:3; + unsigned long :1; + unsigned long WDON:3; + unsigned long :1; + unsigned long WRON:3; + unsigned long :1; + unsigned long RDON:3; + unsigned long :2; + unsigned long AWAIT:2; + unsigned long :1; + unsigned long WDOFF:3; + unsigned long :1; + unsigned long CSWOFF:3; + unsigned long :1; + unsigned long CSROFF:3; + } BIT; + } CS5WCR2; + char wk10[6]; + union { + unsigned short WORD; + struct { + unsigned short PRMOD:1; + unsigned short :5; + unsigned short PWENB:1; + unsigned short PRENB:1; + unsigned short :4; + unsigned short EWENB:1; + unsigned short :2; + unsigned short WRMOD:1; + } BIT; + } CS6MOD; + union { + unsigned long LONG; + struct { + unsigned long :3; + unsigned long CSRWAIT:5; + unsigned long :3; + unsigned long CSWWAIT:5; + unsigned long :5; + unsigned long CSPRWAIT:3; + unsigned long :5; + unsigned long CSPWWAIT:3; + } BIT; + } CS6WCR1; + union { + unsigned long LONG; + struct { + unsigned long :1; + unsigned long CSON:3; + unsigned long :1; + unsigned long WDON:3; + unsigned long :1; + unsigned long WRON:3; + unsigned long :1; + unsigned long RDON:3; + unsigned long :2; + unsigned long AWAIT:2; + unsigned long :1; + unsigned long WDOFF:3; + unsigned long :1; + unsigned long CSWOFF:3; + unsigned long :1; + unsigned long CSROFF:3; + } BIT; + } CS6WCR2; + char wk11[6]; + union { + unsigned short WORD; + struct { + unsigned short PRMOD:1; + unsigned short :5; + unsigned short PWENB:1; + unsigned short PRENB:1; + unsigned short :4; + unsigned short EWENB:1; + unsigned short :2; + unsigned short WRMOD:1; + } BIT; + } CS7MOD; + union { + unsigned long LONG; + struct { + unsigned long :3; + unsigned long CSRWAIT:5; + unsigned long :3; + unsigned long CSWWAIT:5; + unsigned long :5; + unsigned long CSPRWAIT:3; + unsigned long :5; + unsigned long CSPWWAIT:3; + } BIT; + } CS7WCR1; + union { + unsigned long LONG; + struct { + unsigned long :1; + unsigned long CSON:3; + unsigned long :1; + unsigned long WDON:3; + unsigned long :1; + unsigned long WRON:3; + unsigned long :1; + unsigned long RDON:3; + unsigned long :2; + unsigned long AWAIT:2; + unsigned long :1; + unsigned long WDOFF:3; + unsigned long :1; + unsigned long CSWOFF:3; + unsigned long :1; + unsigned long CSROFF:3; + } BIT; + } CS7WCR2; + char wk12[1926]; + union { + unsigned short WORD; + struct { + unsigned short :3; + unsigned short MPXEN:1; + unsigned short :3; + unsigned short EMODE:1; + unsigned short :2; + unsigned short BSIZE:2; + unsigned short :3; + unsigned short EXENB:1; + } BIT; + } CS0CR; + char wk13[6]; + union { + unsigned short WORD; + struct { + unsigned short :4; + unsigned short WRCV:4; + unsigned short :4; + unsigned short RRCV:4; + } BIT; + } CS0REC; + char wk14[6]; + union { + unsigned short WORD; + struct { + unsigned short :3; + unsigned short MPXEN:1; + unsigned short :3; + unsigned short EMODE:1; + unsigned short :2; + unsigned short BSIZE:2; + unsigned short :3; + unsigned short EXENB:1; + } BIT; + } CS1CR; + char wk15[6]; + union { + unsigned short WORD; + struct { + unsigned short :4; + unsigned short WRCV:4; + unsigned short :4; + unsigned short RRCV:4; + } BIT; + } CS1REC; + char wk16[6]; + union { + unsigned short WORD; + struct { + unsigned short :3; + unsigned short MPXEN:1; + unsigned short :3; + unsigned short EMODE:1; + unsigned short :2; + unsigned short BSIZE:2; + unsigned short :3; + unsigned short EXENB:1; + } BIT; + } CS2CR; + char wk17[6]; + union { + unsigned short WORD; + struct { + unsigned short :4; + unsigned short WRCV:4; + unsigned short :4; + unsigned short RRCV:4; + } BIT; + } CS2REC; + char wk18[6]; + union { + unsigned short WORD; + struct { + unsigned short :3; + unsigned short MPXEN:1; + unsigned short :3; + unsigned short EMODE:1; + unsigned short :2; + unsigned short BSIZE:2; + unsigned short :3; + unsigned short EXENB:1; + } BIT; + } CS3CR; + char wk19[6]; + union { + unsigned short WORD; + struct { + unsigned short :4; + unsigned short WRCV:4; + unsigned short :4; + unsigned short RRCV:4; + } BIT; + } CS3REC; + char wk20[6]; + union { + unsigned short WORD; + struct { + unsigned short :3; + unsigned short MPXEN:1; + unsigned short :3; + unsigned short EMODE:1; + unsigned short :2; + unsigned short BSIZE:2; + unsigned short :3; + unsigned short EXENB:1; + } BIT; + } CS4CR; + char wk21[6]; + union { + unsigned short WORD; + struct { + unsigned short :4; + unsigned short WRCV:4; + unsigned short :4; + unsigned short RRCV:4; + } BIT; + } CS4REC; + char wk22[6]; + union { + unsigned short WORD; + struct { + unsigned short :3; + unsigned short MPXEN:1; + unsigned short :3; + unsigned short EMODE:1; + unsigned short :2; + unsigned short BSIZE:2; + unsigned short :3; + unsigned short EXENB:1; + } BIT; + } CS5CR; + char wk23[6]; + union { + unsigned short WORD; + struct { + unsigned short :4; + unsigned short WRCV:4; + unsigned short :4; + unsigned short RRCV:4; + } BIT; + } CS5REC; + char wk24[6]; + union { + unsigned short WORD; + struct { + unsigned short :3; + unsigned short MPXEN:1; + unsigned short :3; + unsigned short EMODE:1; + unsigned short :2; + unsigned short BSIZE:2; + unsigned short :3; + unsigned short EXENB:1; + } BIT; + } CS6CR; + char wk25[6]; + union { + unsigned short WORD; + struct { + unsigned short :4; + unsigned short WRCV:4; + unsigned short :4; + unsigned short RRCV:4; + } BIT; + } CS6REC; + char wk26[6]; + union { + unsigned short WORD; + struct { + unsigned short :3; + unsigned short MPXEN:1; + unsigned short :3; + unsigned short EMODE:1; + unsigned short :2; + unsigned short BSIZE:2; + unsigned short :3; + unsigned short EXENB:1; + } BIT; + } CS7CR; + char wk27[6]; + union { + unsigned short WORD; + struct { + unsigned short :4; + unsigned short WRCV:4; + unsigned short :4; + unsigned short RRCV:4; + } BIT; + } CS7REC; + char wk28[4]; + union { + unsigned short WORD; + struct { + unsigned short RCVENM7:1; + unsigned short RCVENM6:1; + unsigned short RCVENM5:1; + unsigned short RCVENM4:1; + unsigned short RCVENM3:1; + unsigned short RCVENM2:1; + unsigned short RCVENM1:1; + unsigned short RCVENM0:1; + unsigned short RCVEN7:1; + unsigned short RCVEN6:1; + unsigned short RCVEN5:1; + unsigned short RCVEN4:1; + unsigned short RCVEN3:1; + unsigned short RCVEN2:1; + unsigned short RCVEN1:1; + unsigned short RCVEN0:1; + } BIT; + } CSRECEN; + char wk29[894]; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char BSIZE:2; + unsigned char :3; + unsigned char EXENB:1; + } BIT; + } SDCCR; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char EMODE:1; + } BIT; + } SDCMOD; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char BE:1; + } BIT; + } SDAMOD; + char wk30[13]; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char SFEN:1; + } BIT; + } SDSELF; + char wk31[3]; + union { + unsigned short WORD; + struct { + unsigned short REFW:4; + unsigned short RFC:12; + } BIT; + } SDRFCR; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char RFEN:1; + } BIT; + } SDRFEN; + char wk32[9]; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char INIRQ:1; + } BIT; + } SDICR; + char wk33[3]; + union { + unsigned short WORD; + struct { + unsigned short :5; + unsigned short PRC:3; + unsigned short ARFC:4; + unsigned short ARFI:4; + } BIT; + } SDIR; + char wk34[26]; + union { + unsigned char BYTE; + struct { + unsigned char :6; + unsigned char MXC:2; + } BIT; + } SDADR; + char wk35[3]; + union { + unsigned long LONG; + struct { + unsigned long :13; + unsigned long RAS:3; + unsigned long :2; + unsigned long RCD:2; + unsigned long RP:3; + unsigned long WR:1; + unsigned long :5; + unsigned long CL:3; + } BIT; + } SDTR; + union { + unsigned short WORD; + struct { + unsigned short :1; + unsigned short MR:15; + } BIT; + } SDMOD; + char wk36[6]; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char SRFST:1; + unsigned char INIST:1; + unsigned char :2; + unsigned char MRSST:1; + } BIT; + } SDSR; +}; + +struct st_can { + struct { + union { + unsigned long LONG; + struct { + unsigned short H; + unsigned short L; + } WORD; + struct { + unsigned char HH; + unsigned char HL; + unsigned char LH; + unsigned char LL; + } BYTE; + struct { + unsigned long IDE:1; + unsigned long RTR:1; + unsigned long :1; + unsigned long SID:11; + unsigned long EID:18; + } BIT; + } ID; + unsigned short DLC; + unsigned char DATA[8]; + unsigned short TS; + } MB[32]; + union { + unsigned long LONG; + struct { + unsigned short H; + unsigned short L; + } WORD; + struct { + unsigned char HH; + unsigned char HL; + unsigned char LH; + unsigned char LL; + } BYTE; + struct { + unsigned long :3; + unsigned long SID:11; + unsigned long EID:18; + } BIT; + } MKR[8]; + union { + unsigned long LONG; + struct { + unsigned short H; + unsigned short L; + } WORD; + struct { + unsigned char HH; + unsigned char HL; + unsigned char LH; + unsigned char LL; + } BYTE; + struct { + unsigned long IDE:1; + unsigned long RTR:1; + unsigned long :1; + unsigned long SID:11; + unsigned long EID:18; + } BIT; + } FIDCR0; + union { + unsigned long LONG; + struct { + unsigned short H; + unsigned short L; + } WORD; + struct { + unsigned char HH; + unsigned char HL; + unsigned char LH; + unsigned char LL; + } BYTE; + struct { + unsigned long IDE:1; + unsigned long RTR:1; + unsigned long :1; + unsigned long SID:11; + unsigned long EID:18; + } BIT; + } FIDCR1; + union { + unsigned long LONG; + struct { + unsigned short H; + unsigned short L; + } WORD; + struct { + unsigned char HH; + unsigned char HL; + unsigned char LH; + unsigned char LL; + } BYTE; + struct { + unsigned char MB31:1; + unsigned char MB30:1; + unsigned char MB29:1; + unsigned char MB28:1; + unsigned char MB27:1; + unsigned char MB26:1; + unsigned char MB25:1; + unsigned char MB24:1; + unsigned char MB23:1; + unsigned char MB22:1; + unsigned char MB21:1; + unsigned char MB20:1; + unsigned char MB19:1; + unsigned char MB18:1; + unsigned char MB17:1; + unsigned char MB16:1; + unsigned char MB15:1; + unsigned char MB14:1; + unsigned char MB13:1; + unsigned char MB12:1; + unsigned char MB11:1; + unsigned char MB10:1; + unsigned char MB9:1; + unsigned char MB8:1; + unsigned char MB7:1; + unsigned char MB6:1; + unsigned char MB5:1; + unsigned char MB4:1; + unsigned char MB3:1; + unsigned char MB2:1; + unsigned char MB1:1; + unsigned char MB0:1; + } BIT; + } MKIVLR; + union { + unsigned long LONG; + struct { + unsigned short H; + unsigned short L; + } WORD; + struct { + unsigned char HH; + unsigned char HL; + unsigned char LH; + unsigned char LL; + } BYTE; + struct { + unsigned char MB31:1; + unsigned char MB30:1; + unsigned char MB29:1; + unsigned char MB28:1; + unsigned char MB27:1; + unsigned char MB26:1; + unsigned char MB25:1; + unsigned char MB24:1; + unsigned char MB23:1; + unsigned char MB22:1; + unsigned char MB21:1; + unsigned char MB20:1; + unsigned char MB19:1; + unsigned char MB18:1; + unsigned char MB17:1; + unsigned char MB16:1; + unsigned char MB15:1; + unsigned char MB14:1; + unsigned char MB13:1; + unsigned char MB12:1; + unsigned char MB11:1; + unsigned char MB10:1; + unsigned char MB9:1; + unsigned char MB8:1; + unsigned char MB7:1; + unsigned char MB6:1; + unsigned char MB5:1; + unsigned char MB4:1; + unsigned char MB3:1; + unsigned char MB2:1; + unsigned char MB1:1; + unsigned char MB0:1; + } BIT; + } MIER; + char wk0[1008]; + union { + unsigned char BYTE; + union { + struct { + unsigned char TRMREQ:1; + unsigned char RECREQ:1; + unsigned char :1; + unsigned char ONESHOT:1; + unsigned char :1; + unsigned char TRMABT:1; + unsigned char TRMACTIVE:1; + unsigned char SENTDATA:1; + } TX; + struct { + unsigned char TRMREQ:1; + unsigned char RECREQ:1; + unsigned char :1; + unsigned char ONESHOT:1; + unsigned char :1; + unsigned char MSGLOST:1; + unsigned char INVALDATA:1; + unsigned char NEWDATA:1; + } RX; + } BIT; + } MCTL[32]; + union { + unsigned short WORD; + struct { + unsigned char H; + unsigned char L; + } BYTE; + struct { + unsigned char :2; + unsigned char RBOC:1; + unsigned char BOM:2; + unsigned char SLPM:1; + unsigned char CANM:2; + unsigned char TSPS:2; + unsigned char TSRC:1; + unsigned char TPM:1; + unsigned char MLM:1; + unsigned char IDFM:2; + unsigned char MBM:1; + } BIT; + } CTLR; + union { + unsigned short WORD; + struct { + unsigned char H; + unsigned char L; + } BYTE; + struct { + unsigned char :1; + unsigned char RECST:1; + unsigned char TRMST:1; + unsigned char BOST:1; + unsigned char EPST:1; + unsigned char SLPST:1; + unsigned char HLTST:1; + unsigned char RSTST:1; + unsigned char EST:1; + unsigned char TABST:1; + unsigned char FMLST:1; + unsigned char NMLST:1; + unsigned char TFST:1; + unsigned char RFST:1; + unsigned char SDST:1; + unsigned char NDST:1; + } BIT; + } STR; + union { + unsigned long LONG; + struct { + unsigned short H; + unsigned short L; + } WORD; + struct { + unsigned char HH; + unsigned char HL; + unsigned char LH; + unsigned char LL; + } BYTE; + struct { + unsigned long TSEG1:4; + unsigned long :2; + unsigned long BRP:10; + unsigned long :2; + unsigned long SJW:2; + unsigned long :1; + unsigned long TSEG2:3; + unsigned long :7; + unsigned long CCLKS:1; + } BIT; + } BCR; + union { + unsigned char BYTE; + struct { + unsigned char RFEST:1; + unsigned char RFWST:1; + unsigned char RFFST:1; + unsigned char RFMLF:1; + unsigned char RFUST:3; + unsigned char RFE:1; + } BIT; + } RFCR; + unsigned char RFPCR; + union { + unsigned char BYTE; + struct { + unsigned char TFEST:1; + unsigned char TFFST:1; + unsigned char :2; + unsigned char TFUST:3; + unsigned char TFE:1; + } BIT; + } TFCR; + unsigned char TFPCR; + union { + unsigned char BYTE; + struct { + unsigned char BLIE:1; + unsigned char OLIE:1; + unsigned char ORIE:1; + unsigned char BORIE:1; + unsigned char BOEIE:1; + unsigned char EPIE:1; + unsigned char EWIE:1; + unsigned char BEIE:1; + } BIT; + } EIER; + union { + unsigned char BYTE; + struct { + unsigned char BLIF:1; + unsigned char OLIF:1; + unsigned char ORIF:1; + unsigned char BORIF:1; + unsigned char BOEIF:1; + unsigned char EPIF:1; + unsigned char EWIF:1; + unsigned char BEIF:1; + } BIT; + } EIFR; + unsigned char RECR; + unsigned char TECR; + union { + unsigned char BYTE; + struct { + unsigned char EDPM:1; + unsigned char ADEF:1; + unsigned char BE0F:1; + unsigned char BE1F:1; + unsigned char CEF:1; + unsigned char AEF:1; + unsigned char FEF:1; + unsigned char SEF:1; + } BIT; + } ECSR; + unsigned char CSSR; + union { + unsigned char BYTE; + struct { + unsigned char SEST:1; + unsigned char :2; + unsigned char MBNST:5; + } BIT; + } MSSR; + union { + unsigned char BYTE; + struct { + unsigned char :6; + unsigned char MBSM:2; + } BIT; + } MSMR; + unsigned short TSR; + unsigned short AFSR; + union { + unsigned char BYTE; + struct { + unsigned char :5; + unsigned char TSTM:2; + unsigned char TSTE:1; + } BIT; + } TCR; +}; + +struct st_cmt { + union { + unsigned short WORD; + struct { + unsigned short :14; + unsigned short STR1:1; + unsigned short STR0:1; + } BIT; + } CMSTR0; + char wk0[14]; + union { + unsigned short WORD; + struct { + unsigned short :14; + unsigned short STR3:1; + unsigned short STR2:1; + } BIT; + } CMSTR1; +}; + +struct st_cmt0 { + union { + unsigned short WORD; + struct { + unsigned short :9; + unsigned short CMIE:1; + unsigned short :4; + unsigned short CKS:2; + } BIT; + } CMCR; + unsigned short CMCNT; + unsigned short CMCOR; +}; + +struct st_crc { + union { + unsigned char BYTE; + struct { + unsigned char DORCLR:1; + unsigned char :4; + unsigned char LMS:1; + unsigned char GPS:2; + } BIT; + } CRCCR; + unsigned char CRCDIR; + unsigned short CRCDOR; +}; + +struct st_da { + unsigned short DADR0; + unsigned short DADR1; + union { + unsigned char BYTE; + struct { + unsigned char DAOE1:1; + unsigned char DAOE0:1; + unsigned char DAE:1; + } BIT; + } DACR; + union { + unsigned char BYTE; + struct { + unsigned char DPSEL:1; + } BIT; + } DADPR; + union { + unsigned char BYTE; + struct { + unsigned char DAADST:1; + } BIT; + } DAADSCR; +}; + +struct st_dmac { + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char DMST:1; + } BIT; + } DMAST; +}; + +struct st_dmac0 { + unsigned long DMSAR; + unsigned long DMDAR; + unsigned long DMCRA; + unsigned short DMCRB; + char wk0[2]; + union { + unsigned short WORD; + struct { + unsigned short MD:2; + unsigned short DTS:2; + unsigned short :2; + unsigned short SZ:2; + unsigned short :6; + unsigned short DCTG:2; + } BIT; + } DMTMD; + char wk1[1]; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char DTIE:1; + unsigned char ESIE:1; + unsigned char RPTIE:1; + unsigned char SARIE:1; + unsigned char DARIE:1; + } BIT; + } DMINT; + union { + unsigned short WORD; + struct { + unsigned short SM:2; + unsigned short :1; + unsigned short SARA:5; + unsigned short DM:2; + unsigned short :1; + unsigned short DARA:5; + } BIT; + } DMAMD; + char wk2[2]; + unsigned long DMOFR; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char DTE:1; + } BIT; + } DMCNT; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char CLRS:1; + unsigned char :3; + unsigned char SWREQ:1; + } BIT; + } DMREQ; + union { + unsigned char BYTE; + struct { + unsigned char ACT:1; + unsigned char :2; + unsigned char DTIF:1; + unsigned char :3; + unsigned char ESIF:1; + } BIT; + } DMSTS; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char DISEL:1; + } BIT; + } DMCSL; +}; + +struct st_dmac1 { + unsigned long DMSAR; + unsigned long DMDAR; + unsigned long DMCRA; + unsigned short DMCRB; + char wk0[2]; + union { + unsigned short WORD; + struct { + unsigned short MD:2; + unsigned short DTS:2; + unsigned short :2; + unsigned short SZ:2; + unsigned short :6; + unsigned short DCTG:2; + } BIT; + } DMTMD; + char wk1[1]; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char DTIE:1; + unsigned char ESIE:1; + unsigned char RPTIE:1; + unsigned char SARIE:1; + unsigned char DARIE:1; + } BIT; + } DMINT; + union { + unsigned short WORD; + struct { + unsigned short SM:2; + unsigned short :1; + unsigned short SARA:5; + unsigned short DM:2; + unsigned short :1; + unsigned short DARA:5; + } BIT; + } DMAMD; + char wk2[6]; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char DTE:1; + } BIT; + } DMCNT; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char CLRS:1; + unsigned char :3; + unsigned char SWREQ:1; + } BIT; + } DMREQ; + union { + unsigned char BYTE; + struct { + unsigned char ACT:1; + unsigned char :2; + unsigned char DTIF:1; + unsigned char :3; + unsigned char ESIF:1; + } BIT; + } DMSTS; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char DISEL:1; + } BIT; + } DMCSL; +}; + +struct st_dtc { + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char RRS:1; + } BIT; + } DTCCR; + char wk0[3]; + unsigned long DTCVBR; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char SHORT:1; + } BIT; + } DTCADMOD; + char wk1[3]; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char DTCST:1; + } BIT; + } DTCST; + char wk2[1]; + union { + unsigned short WORD; + struct { + unsigned short ACT:1; + unsigned short :7; + unsigned short VECN:8; + } BIT; + } DTCSTS; +}; + +struct st_edmac { + union { + unsigned long LONG; + struct { + unsigned long :25; + unsigned long DE:1; + unsigned long DL:2; + unsigned long :3; + unsigned long SWR:1; + } BIT; + } EDMR; + char wk0[4]; + union { + unsigned long LONG; + struct { + unsigned long :31; + unsigned long TR:1; + } BIT; + } EDTRR; + char wk1[4]; + union { + unsigned long LONG; + struct { + unsigned long :31; + unsigned long RR:1; + } BIT; + } EDRRR; + char wk2[4]; + unsigned long TDLAR; + char wk3[4]; + unsigned long RDLAR; + char wk4[4]; + union { + unsigned long LONG; + struct { + unsigned long :1; + unsigned long TWB:1; + unsigned long :3; + unsigned long TABT:1; + unsigned long RABT:1; + unsigned long RFCOF:1; + unsigned long ADE:1; + unsigned long ECI:1; + unsigned long TC:1; + unsigned long TDE:1; + unsigned long TFUF:1; + unsigned long FR:1; + unsigned long RDE:1; + unsigned long RFOF:1; + unsigned long :4; + unsigned long CND:1; + unsigned long DLC:1; + unsigned long CD:1; + unsigned long TRO:1; + unsigned long RMAF:1; + unsigned long :2; + unsigned long RRF:1; + unsigned long RTLF:1; + unsigned long RTSF:1; + unsigned long PRE:1; + unsigned long CERF:1; + } BIT; + } EESR; + char wk5[4]; + union { + unsigned long LONG; + struct { + unsigned long :1; + unsigned long TWBIP:1; + unsigned long :3; + unsigned long TABTIP:1; + unsigned long RABTIP:1; + unsigned long RFCOFIP:1; + unsigned long ADEIP:1; + unsigned long ECIIP:1; + unsigned long TCIP:1; + unsigned long TDEIP:1; + unsigned long TFUFIP:1; + unsigned long FRIP:1; + unsigned long RDEIP:1; + unsigned long RFOFIP:1; + unsigned long :4; + unsigned long CNDIP:1; + unsigned long DLCIP:1; + unsigned long CDIP:1; + unsigned long TROIP:1; + unsigned long RMAFIP:1; + unsigned long :2; + unsigned long RRFIP:1; + unsigned long RTLFIP:1; + unsigned long RTSFIP:1; + unsigned long PREIP:1; + unsigned long CERFIP:1; + } BIT; + } EESIPR; + char wk6[4]; + union { + unsigned long LONG; + struct { + unsigned long :20; + unsigned long CNDCE:1; + unsigned long DLCCE:1; + unsigned long CDCE:1; + unsigned long TROCE:1; + unsigned long RMAFCE:1; + unsigned long :2; + unsigned long RRFCE:1; + unsigned long RTLFCE:1; + unsigned long RTSFCE:1; + unsigned long PRECE:1; + unsigned long CERFCE:1; + } BIT; + } TRSCER; + char wk7[4]; + union { + unsigned long LONG; + struct { + unsigned long :16; + unsigned long MFC:16; + } BIT; + } RMFCR; + char wk8[4]; + union { + unsigned long LONG; + struct { + unsigned long :21; + unsigned long TFT:11; + } BIT; + } TFTR; + char wk9[4]; + union { + unsigned long LONG; + struct { + unsigned long :19; + unsigned long TFD:5; + unsigned long :3; + unsigned long RFD:5; + } BIT; + } FDR; + char wk10[4]; + union { + unsigned long LONG; + struct { + unsigned long :30; + unsigned long RNC:1; + unsigned long RNR:1; + } BIT; + } RMCR; + char wk11[8]; + union { + unsigned long LONG; + struct { + unsigned long :16; + unsigned long UNDER:16; + } BIT; + } TFUCR; + union { + unsigned long LONG; + struct { + unsigned long :16; + unsigned long OVER:16; + } BIT; + } RFOCR; + union { + unsigned long LONG; + struct { + unsigned long :31; + unsigned long ELB:1; + } BIT; + } IOSR; + union { + unsigned long LONG; + struct { + unsigned long :13; + unsigned long RFFO:3; + unsigned long :13; + unsigned long RFDO:3; + } BIT; + } FCFTR; + char wk12[4]; + union { + unsigned long LONG; + struct { + unsigned long :14; + unsigned long PADS:2; + unsigned long :10; + unsigned long PADR:6; + } BIT; + } RPADIR; + union { + unsigned long LONG; + struct { + unsigned long :27; + unsigned long TIM:1; + unsigned long :3; + unsigned long TIS:1; + } BIT; + } TRIMD; + char wk13[72]; + unsigned long RBWAR; + unsigned long RDFAR; + char wk14[4]; + unsigned long TBRAR; + unsigned long TDFAR; +}; + +struct st_etherc { + union { + unsigned long LONG; + struct { + unsigned long :11; + unsigned long TPC:1; + unsigned long ZPE:1; + unsigned long PFR:1; + unsigned long RXF:1; + unsigned long TXF:1; + unsigned long :3; + unsigned long PRCEF:1; + unsigned long :2; + unsigned long MPDE:1; + unsigned long :2; + unsigned long RE:1; + unsigned long TE:1; + unsigned long :1; + unsigned long ILB:1; + unsigned long RTM:1; + unsigned long DM:1; + unsigned long PRM:1; + } BIT; + } ECMR; + char wk0[4]; + union { + unsigned long LONG; + struct { + unsigned long :20; + unsigned long RFL:12; + } BIT; + } RFLR; + char wk1[4]; + union { + unsigned long LONG; + struct { + unsigned long :26; + unsigned long BFR:1; + unsigned long PSRTO:1; + unsigned long :1; + unsigned long LCHNG:1; + unsigned long MPD:1; + unsigned long ICD:1; + } BIT; + } ECSR; + char wk2[4]; + union { + unsigned long LONG; + struct { + unsigned long :26; + unsigned long BFSIPR:1; + unsigned long PSRTOIP:1; + unsigned long :1; + unsigned long LCHNGIP:1; + unsigned long MPDIP:1; + unsigned long ICDIP:1; + } BIT; + } ECSIPR; + char wk3[4]; + union { + unsigned long LONG; + struct { + unsigned long :28; + unsigned long MDI:1; + unsigned long MDO:1; + unsigned long MMD:1; + unsigned long MDC:1; + } BIT; + } PIR; + char wk4[4]; + union { + unsigned long LONG; + struct { + unsigned long :31; + unsigned long LMON:1; + } BIT; + } PSR; + char wk5[20]; + union { + unsigned long LONG; + struct { + unsigned long :12; + unsigned long RMD:20; + } BIT; + } RDMLR; + char wk6[12]; + union { + unsigned long LONG; + struct { + unsigned long :27; + unsigned long IPG:5; + } BIT; + } IPGR; + union { + unsigned long LONG; + struct { + unsigned long :16; + unsigned long AP:16; + } BIT; + } APR; + union { + unsigned long LONG; + struct { + unsigned long :16; + unsigned long MP:16; + } BIT; + } MPR; + char wk7[4]; + union { + unsigned long LONG; + struct { + unsigned long :24; + unsigned long RPAUSE:8; + } BIT; + } RFCF; + union { + unsigned long LONG; + struct { + unsigned long :16; + unsigned long TPAUSE:16; + } BIT; + } TPAUSER; + union { + unsigned long LONG; + struct { + unsigned long :24; + unsigned long TXP:8; + } BIT; + } TPAUSECR; + union { + unsigned long LONG; + struct { + unsigned long :16; + unsigned long BCF:16; + } BIT; + } BCFRR; + char wk8[80]; + unsigned long MAHR; + char wk9[4]; + union { + unsigned long LONG; + struct { + unsigned long :16; + unsigned long MA:16; + } BIT; + } MALR; + char wk10[4]; + unsigned long TROCR; + unsigned long CDCR; + unsigned long LCCR; + unsigned long CNDCR; + char wk11[4]; + unsigned long CEFCR; + unsigned long FRECR; + unsigned long TSFRCR; + unsigned long TLFRCR; + unsigned long RFCR; + unsigned long MAFCR; +}; + +struct st_exdmac { + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char DMST:1; + } BIT; + } EDMAST; + char wk0[479]; + unsigned long CLSBR0; + unsigned long CLSBR1; + unsigned long CLSBR2; + unsigned long CLSBR3; + unsigned long CLSBR4; + unsigned long CLSBR5; + unsigned long CLSBR6; + unsigned long CLSBR7; +}; + +struct st_exdmac0 { + unsigned long EDMSAR; + unsigned long EDMDAR; + unsigned long EDMCRA; + unsigned short EDMCRB; + char wk0[2]; + union { + unsigned short WORD; + struct { + unsigned short MD:2; + unsigned short DTS:2; + unsigned short :2; + unsigned short SZ:2; + unsigned short :6; + unsigned short DCTG:2; + } BIT; + } EDMTMD; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char DACKS:1; + unsigned char DACKE:1; + unsigned char DACKW:1; + } BIT; + } EDMOMD; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char DTIE:1; + unsigned char ESIE:1; + unsigned char RPTIE:1; + unsigned char SARIE:1; + unsigned char DARIE:1; + } BIT; + } EDMINT; + union { + unsigned long LONG; + struct { + unsigned long :14; + unsigned long AMS:1; + unsigned long DIR:1; + unsigned long SM:2; + unsigned long :1; + unsigned long SARA:5; + unsigned long DM:2; + unsigned long :1; + unsigned long DARA:5; + } BIT; + } EDMAMD; + unsigned long EDMOFR; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char DTE:1; + } BIT; + } EDMCNT; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char CLRS:1; + unsigned char :3; + unsigned char SWREQ:1; + } BIT; + } EDMREQ; + union { + unsigned char BYTE; + struct { + unsigned char ACT:1; + unsigned char :2; + unsigned char DTIF:1; + unsigned char :3; + unsigned char ESIF:1; + } BIT; + } EDMSTS; + char wk1[1]; + union { + unsigned char BYTE; + struct { + unsigned char :6; + unsigned char DREQS:2; + } BIT; + } EDMRMD; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char EREQ:1; + } BIT; + } EDMERF; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char PREQ:1; + } BIT; + } EDMPRF; +}; + +struct st_exdmac1 { + unsigned long EDMSAR; + unsigned long EDMDAR; + unsigned long EDMCRA; + unsigned short EDMCRB; + char wk0[2]; + union { + unsigned short WORD; + struct { + unsigned short MD:2; + unsigned short DTS:2; + unsigned short :2; + unsigned short SZ:2; + unsigned short :6; + unsigned short DCTG:2; + } BIT; + } EDMTMD; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char DACKS:1; + unsigned char DACKE:1; + unsigned char DACKW:1; + } BIT; + } EDMOMD; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char DTIE:1; + unsigned char ESIE:1; + unsigned char RPTIE:1; + unsigned char SARIE:1; + unsigned char DARIE:1; + } BIT; + } EDMINT; + union { + unsigned long LONG; + struct { + unsigned long :14; + unsigned long AMS:1; + unsigned long DIR:1; + unsigned long SM:2; + unsigned long :1; + unsigned long SARA:5; + unsigned long DM:2; + unsigned long :1; + unsigned long DARA:5; + } BIT; + } EDMAMD; + char wk1[4]; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char DTE:1; + } BIT; + } EDMCNT; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char CLRS:1; + unsigned char :3; + unsigned char SWREQ:1; + } BIT; + } EDMREQ; + union { + unsigned char BYTE; + struct { + unsigned char ACT:1; + unsigned char :2; + unsigned char DTIF:1; + unsigned char :3; + unsigned char ESIF:1; + } BIT; + } EDMSTS; + char wk2[1]; + union { + unsigned char BYTE; + struct { + unsigned char :6; + unsigned char DREQS:2; + } BIT; + } EDMRMD; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char EREQ:1; + } BIT; + } EDMERF; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char PREQ:1; + } BIT; + } EDMPRF; +}; + +struct st_flash { + union { + unsigned char BYTE; + struct { + unsigned char :6; + unsigned char FLWE:2; + } BIT; + } FWEPROR; + char wk0[7799147]; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char FRDMD:1; + } BIT; + } FMODR; + char wk1[13]; + union { + unsigned char BYTE; + struct { + unsigned char ROMAE:1; + unsigned char :2; + unsigned char CMDLK:1; + unsigned char DFLAE:1; + unsigned char :1; + unsigned char DFLRPE:1; + unsigned char DFLWPE:1; + } BIT; + } FASTAT; + union { + unsigned char BYTE; + struct { + unsigned char ROMAEIE:1; + unsigned char :2; + unsigned char CMDLKIE:1; + unsigned char DFLAEIE:1; + unsigned char :1; + unsigned char DFLRPEIE:1; + unsigned char DFLWPEIE:1; + } BIT; + } FAEINT; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char FRDYIE:1; + } BIT; + } FRDYIE; + char wk2[45]; + union { + unsigned short WORD; + struct { + unsigned short KEY:8; + unsigned short DBRE07:1; + unsigned short DBRE06:1; + unsigned short DBRE05:1; + unsigned short DBRE04:1; + unsigned short DBRE03:1; + unsigned short DBRE02:1; + unsigned short DBRE01:1; + unsigned short DBRE00:1; + } BIT; + } DFLRE0; + union { + unsigned short WORD; + struct { + unsigned short KEY:8; + unsigned short DBRE15:1; + unsigned short DBRE14:1; + unsigned short DBRE13:1; + unsigned short DBRE12:1; + unsigned short DBRE11:1; + unsigned short DBRE10:1; + unsigned short DBRE09:1; + unsigned short DBRE08:1; + } BIT; + } DFLRE1; + char wk3[12]; + union { + unsigned short WORD; + struct { + unsigned short KEY:8; + unsigned short DBWE07:1; + unsigned short DBW006:1; + unsigned short DBWE05:1; + unsigned short DBWE04:1; + unsigned short DBWE03:1; + unsigned short DBWE02:1; + unsigned short DBWE01:1; + unsigned short DBWE00:1; + } BIT; + } DFLWE0; + union { + unsigned short WORD; + struct { + unsigned short KEY:8; + unsigned short DBWE15:1; + unsigned short DBWE14:1; + unsigned short DBWE13:1; + unsigned short DBWE12:1; + unsigned short DBWE11:1; + unsigned short DBWE10:1; + unsigned short DBWE09:1; + unsigned short DBWE08:1; + } BIT; + } DFLWE1; + union { + unsigned short WORD; + struct { + unsigned short KEY:8; + unsigned short :7; + unsigned short FCRME:1; + } BIT; + } FCURAME; + char wk4[15194]; + union { + unsigned char BYTE; + struct { + unsigned char FRDY:1; + unsigned char ILGLERR:1; + unsigned char ERSERR:1; + unsigned char PRGERR:1; + unsigned char SUSRDY:1; + unsigned char :1; + unsigned char ERSSPD:1; + unsigned char PRGSPD:1; + } BIT; + } FSTATR0; + union { + unsigned char BYTE; + struct { + unsigned char FCUERR:1; + unsigned char :2; + unsigned char FLOCKST:1; + } BIT; + } FSTATR1; + union { + unsigned short WORD; + struct { + unsigned short FEKEY:8; + unsigned short FENTRYD:1; + unsigned short :3; + unsigned short FENTRY3:1; + unsigned short FENTRY2:1; + unsigned short FENTRY1:1; + unsigned short FENTRY0:1; + } BIT; + } FENTRYR; + union { + unsigned short WORD; + struct { + unsigned short FPKEY:8; + unsigned short :7; + unsigned short FPROTCN:1; + } BIT; + } FPROTR; + union { + unsigned short WORD; + struct { + unsigned short FRKEY:8; + unsigned short :7; + unsigned short FRESET:1; + } BIT; + } FRESETR; + char wk5[2]; + union { + unsigned short WORD; + struct { + unsigned short CMDR:8; + unsigned short PCMDR:8; + } BIT; + } FCMDR; + char wk6[12]; + union { + unsigned short WORD; + struct { + unsigned short :15; + unsigned short ESUSPMD:1; + } BIT; + } FCPSR; + union { + unsigned short WORD; + struct { + unsigned short BCSIZE:1; + unsigned short :4; + unsigned short BCADR:11; + } BIT; + } DFLBCCNT; + union { + unsigned short WORD; + struct { + unsigned short :8; + unsigned short PEERRST:8; + } BIT; + } FPESTAT; + union { + unsigned short WORD; + struct { + unsigned short :15; + unsigned short BCST:1; + } BIT; + } DFLBCSTAT; + char wk7[24]; + union { + unsigned short WORD; + struct { + unsigned short :8; + unsigned short PCKA:8; + } BIT; + } PCKAR; +}; + +struct st_icu { + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char IR:1; + } BIT; + } IR[254]; + char wk0[2]; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char DTCE:1; + } BIT; + } DTCER[252]; + char wk1[4]; + union { + unsigned char BYTE; + struct { + unsigned char IEN7:1; + unsigned char IEN6:1; + unsigned char IEN5:1; + unsigned char IEN4:1; + unsigned char IEN3:1; + unsigned char IEN2:1; + unsigned char IEN1:1; + unsigned char IEN0:1; + } BIT; + } IER[32]; + char wk2[192]; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char SWINT:1; + } BIT; + } SWINTR; + char wk3[15]; + union { + unsigned short WORD; + struct { + unsigned short FIEN:1; + unsigned short :7; + unsigned short FVCT:8; + } BIT; + } FIR; + char wk4[14]; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char IPR:4; + } BIT; + } IPR[254]; + char wk5[2]; + union { + unsigned char BYTE; + struct { + unsigned char DMRS:8; + } BIT; + } DMRSR0; + char wk6[3]; + union { + unsigned char BYTE; + struct { + unsigned char DMRS:8; + } BIT; + } DMRSR1; + char wk7[3]; + union { + unsigned char BYTE; + struct { + unsigned char DMRS:8; + } BIT; + } DMRSR2; + char wk8[3]; + union { + unsigned char BYTE; + struct { + unsigned char DMRS:8; + } BIT; + } DMRSR3; + char wk9[243]; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char IRQMD:2; + } BIT; + } IRQCR[16]; + union { + unsigned char BYTE; + struct { + unsigned char FLTEN7:1; + unsigned char FLTEN6:1; + unsigned char FLTEN5:1; + unsigned char FLTEN4:1; + unsigned char FLTEN3:1; + unsigned char FLTEN2:1; + unsigned char FLTEN1:1; + unsigned char FLTEN0:1; + } BIT; + } IRQFLTE0; + union { + unsigned char BYTE; + struct { + unsigned char FLTEN15:1; + unsigned char FLTEN14:1; + unsigned char FLTEN13:1; + unsigned char FLTEN12:1; + unsigned char FLTEN11:1; + unsigned char FLTEN10:1; + unsigned char FLTEN9:1; + unsigned char FLTEN8:1; + } BIT; + } IRQFLTE1; + char wk10[2]; + union { + unsigned short WORD; + struct { + unsigned short FCLKSEL7:2; + unsigned short FCLKSEL6:2; + unsigned short FCLKSEL5:2; + unsigned short FCLKSEL4:2; + unsigned short FCLKSEL3:2; + unsigned short FCLKSEL2:2; + unsigned short FCLKSEL1:2; + unsigned short FCLKSEL0:2; + } BIT; + } IRQFLTC0; + union { + unsigned short WORD; + struct { + unsigned short FCLKSEL15:2; + unsigned short FCLKSEL14:2; + unsigned short FCLKSEL13:2; + unsigned short FCLKSEL12:2; + unsigned short FCLKSEL11:2; + unsigned short FCLKSEL10:2; + unsigned short FCLKSEL9:2; + unsigned short FCLKSEL8:2; + } BIT; + } IRQFLTC1; + char wk11[104]; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char LVD2ST:1; + unsigned char LVD1ST:1; + unsigned char IWDTST:1; + unsigned char WDTST:1; + unsigned char OSTST:1; + unsigned char NMIST:1; + } BIT; + } NMISR; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char LVD2EN:1; + unsigned char LVD1EN:1; + unsigned char IWDTEN:1; + unsigned char WDTEN:1; + unsigned char OSTEN:1; + unsigned char NMIEN:1; + } BIT; + } NMIER; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char LVD2CLR:1; + unsigned char LVD1CLR:1; + unsigned char IWDTCLR:1; + unsigned char WDTCLR:1; + unsigned char OSTCLR:1; + unsigned char NMICLR:1; + } BIT; + } NMICLR; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char NMIMD:1; + } BIT; + } NMICR; + char wk12[12]; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char NFLTEN:1; + } BIT; + } NMIFLTE; + char wk13[3]; + union { + unsigned char BYTE; + struct { + unsigned char :6; + unsigned char NFCLKSEL:2; + } BIT; + } NMIFLTC; + char wk14[19819]; + union { + unsigned long LONG; + struct { + unsigned long :16; + unsigned long IS15:1; + unsigned long IS14:1; + unsigned long IS13:1; + unsigned long IS12:1; + unsigned long IS11:1; + unsigned long IS10:1; + unsigned long IS9:1; + unsigned long IS8:1; + unsigned long IS7:1; + unsigned long IS6:1; + unsigned long IS5:1; + unsigned long IS4:1; + unsigned long IS3:1; + unsigned long IS2:1; + unsigned long IS1:1; + unsigned long IS0:1; + } BIT; + } GRP[13]; + char wk15[12]; + union { + unsigned long LONG; + struct { + unsigned long :16; + unsigned long EN15:1; + unsigned long EN14:1; + unsigned long EN13:1; + unsigned long EN12:1; + unsigned long EN11:1; + unsigned long EN10:1; + unsigned long EN9:1; + unsigned long EN8:1; + unsigned long EN7:1; + unsigned long EN6:1; + unsigned long EN5:1; + unsigned long EN4:1; + unsigned long EN3:1; + unsigned long EN2:1; + unsigned long EN1:1; + unsigned long EN0:1; + } BIT; + } GEN[13]; + char wk16[12]; + union { + unsigned long LONG; + struct { + unsigned long :16; + unsigned long CLR15:1; + unsigned long CLR14:1; + unsigned long CLR13:1; + unsigned long CLR12:1; + unsigned long CLR11:1; + unsigned long CLR10:1; + unsigned long CLR9:1; + unsigned long CLR8:1; + unsigned long CLR7:1; + unsigned long CLR6:1; + unsigned long CLR5:1; + unsigned long CLR4:1; + unsigned long CLR3:1; + unsigned long CLR2:1; + unsigned long CLR1:1; + unsigned long CLR0:1; + } BIT; + } GCR[13]; + char wk17[12]; + union { + unsigned long LONG; + struct { + unsigned long :26; + unsigned long CN5:1; + unsigned long CN4:1; + unsigned long CN3:1; + unsigned long CN2:1; + unsigned long CN1:1; + unsigned long CN0:1; + } BIT; + } SEL; +}; + +struct st_ieb { + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char IOL:1; + unsigned char DEE:1; + unsigned char :1; + unsigned char RE:1; + } BIT; + } IECTR; + union { + unsigned char BYTE; + struct { + unsigned char :5; + unsigned char CMD:3; + } BIT; + } IECMR; + union { + unsigned char BYTE; + struct { + unsigned char SS:1; + unsigned char RN:3; + unsigned char CTL:4; + } BIT; + } IEMCR; + union { + unsigned char BYTE; + struct { + unsigned char IARL4:4; + unsigned char IMD:2; + unsigned char :1; + unsigned char STE:1; + } BIT; + } IEAR1; + union { + unsigned char BYTE; + struct { + unsigned char IARU8:8; + } BIT; + } IEAR2; + union { + unsigned char BYTE; + struct { + unsigned char ISAL4:4; + } BIT; + } IESA1; + union { + unsigned char BYTE; + struct { + unsigned char ISAU8:8; + } BIT; + } IESA2; + union { + unsigned char BYTE; + struct { + unsigned char IBFL:8; + } BIT; + } IETBFL; + char wk0[1]; + union { + unsigned char BYTE; + struct { + unsigned char ISAL4:4; + } BIT; + } IEMA1; + union { + unsigned char BYTE; + struct { + unsigned char IMAU8:8; + } BIT; + } IEMA2; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char RCTL:4; + } BIT; + } IERCTL; + union { + unsigned char BYTE; + struct { + unsigned char RBFL:8; + } BIT; + } IERBFL; + char wk1[1]; + union { + unsigned char BYTE; + struct { + unsigned char ILAL8:8; + } BIT; + } IELA1; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char ILAU4:4; + } BIT; + } IELA2; + union { + unsigned char BYTE; + struct { + unsigned char CMX:1; + unsigned char MRQ:1; + unsigned char SRQ:1; + unsigned char SRE:1; + unsigned char LCK:1; + unsigned char :1; + unsigned char RSS:1; + unsigned char GG:1; + } BIT; + } IEFLG; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char TXS:1; + unsigned char TXF:1; + unsigned char :1; + unsigned char TXEAL:1; + unsigned char TXETTME:1; + unsigned char TXERO:1; + unsigned char TXEACK:1; + } BIT; + } IETSR; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char TXSE:1; + unsigned char TXFE:1; + unsigned char :1; + unsigned char TXEALE:1; + unsigned char TXETTMEE:1; + unsigned char TXEROE:1; + unsigned char TXEACKE:1; + } BIT; + } IEIET; + char wk2[1]; + union { + unsigned char BYTE; + struct { + unsigned char RXBSY:1; + unsigned char RXS:1; + unsigned char RXF:1; + unsigned char RXEDE:1; + unsigned char RXEOVE:1; + unsigned char RXERTME:1; + unsigned char RXEDLE:1; + unsigned char RXEPE:1; + } BIT; + } IERSR; + union { + unsigned char BYTE; + struct { + unsigned char RXBSYE:1; + unsigned char RXSE:1; + unsigned char RXFE:1; + unsigned char RXEDEE:1; + unsigned char RXEOVEE:1; + unsigned char RXERTMEE:1; + unsigned char RXEDLEE:1; + unsigned char RXEPEE:1; + } BIT; + } IEIER; + char wk3[2]; + union { + unsigned char BYTE; + struct { + unsigned char FLT:1; + unsigned char FCKS:2; + unsigned char CKS3:1; + unsigned char SRSTP:1; + unsigned char CKS:3; + } BIT; + } IECKSR; + char wk4[230]; + unsigned char IETB[33]; + char wk5[223]; + unsigned char IERB[33]; +}; + +struct st_iwdt { + unsigned char IWDTRR; + char wk0[1]; + union { + unsigned short WORD; + struct { + unsigned short :2; + unsigned short RPSS:2; + unsigned short :2; + unsigned short RPES:2; + unsigned short CKS:4; + unsigned short :2; + unsigned short TOPS:2; + } BIT; + } IWDTCR; + union { + unsigned short WORD; + struct { + unsigned short REFEF:1; + unsigned short UNDFF:1; + unsigned short CNTVAL:14; + } BIT; + } IWDTSR; + union { + unsigned char BYTE; + struct { + unsigned char RSTIRQS:1; + } BIT; + } IWDTRCR; + char wk1[1]; + union { + unsigned char BYTE; + struct { + unsigned char SLCSTP:1; + } BIT; + } IWDTCSTPR; +}; + +struct st_mpc { + union { + unsigned char BYTE; + struct { + unsigned char CS7E:1; + unsigned char CS6E:1; + unsigned char CS5E:1; + unsigned char CS4E:1; + unsigned char CS3E:1; + unsigned char CS2E:1; + unsigned char CS1E:1; + unsigned char CS0E:1; + } BIT; + } PFCSE; + char wk0[1]; + union { + unsigned char BYTE; + struct { + unsigned char CS3S:2; + unsigned char CS2S:2; + unsigned char CS1S:2; + unsigned char :1; + unsigned char CS0S:1; + } BIT; + } PFCSS0; + union { + unsigned char BYTE; + struct { + unsigned char CS7S:2; + unsigned char CS6S:2; + unsigned char CS5S:2; + unsigned char CS4S:2; + } BIT; + } PFCSS1; + union { + unsigned char BYTE; + struct { + unsigned char A15E:1; + unsigned char A14E:1; + unsigned char A13E:1; + unsigned char A12E:1; + unsigned char A11E:1; + unsigned char A10E:1; + unsigned char A9E:1; + unsigned char A8E:1; + } BIT; + } PFAOE0; + union { + unsigned char BYTE; + struct { + unsigned char A23E:1; + unsigned char A22E:1; + unsigned char A21E:1; + unsigned char A20E:1; + unsigned char A19E:1; + unsigned char A18E:1; + unsigned char A17E:1; + unsigned char A16E:1; + } BIT; + } PFAOE1; + union { + unsigned char BYTE; + struct { + unsigned char WR32BC32E:1; + unsigned char WR1BC1E:1; + unsigned char DH32E:1; + unsigned char DHE:1; + unsigned char :2; + unsigned char ADRHMS:1; + unsigned char ADRLE:1; + } BIT; + } PFBCR0; + union { + unsigned char BYTE; + struct { + unsigned char SDCLKE:1; + unsigned char DQM1E:1; + unsigned char :1; + unsigned char MDSDE:1; + unsigned char :1; + unsigned char ALEOE:1; + unsigned char WAITS:2; + } BIT; + } PFBCR1; + char wk1[6]; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char PHYMODE:1; + } BIT; + } PFENET; + char wk2[5]; + union { + unsigned char BYTE; + struct { + unsigned char :5; + unsigned char PUPHZS:1; + } BIT; + } PFUSB0; + union { + unsigned char BYTE; + struct { + unsigned char :5; + unsigned char PUPHZS:1; + } BIT; + } PFUSB1; + char wk3[9]; + union { + unsigned char BYTE; + struct { + unsigned char B0WI:1; + unsigned char PFSWE:1; + } BIT; + } PWPR; + char wk4[32]; + union { + unsigned char BYTE; + struct { + unsigned char ASEL:1; + unsigned char ISEL:1; + unsigned char :1; + unsigned char PSEL:5; + } BIT; + } P00PFS; + union { + unsigned char BYTE; + struct { + unsigned char ASEL:1; + unsigned char ISEL:1; + unsigned char :1; + unsigned char PSEL:5; + } BIT; + } P01PFS; + union { + unsigned char BYTE; + struct { + unsigned char ASEL:1; + unsigned char ISEL:1; + unsigned char :1; + unsigned char PSEL:5; + } BIT; + } P02PFS; + union { + unsigned char BYTE; + struct { + unsigned char ASEL:1; + unsigned char ISEL:1; + unsigned char :1; + unsigned char PSEL:5; + } BIT; + } P03PFS; + char wk5[1]; + union { + unsigned char BYTE; + struct { + unsigned char ASEL:1; + unsigned char ISEL:1; + unsigned char :1; + unsigned char PSEL:5; + } BIT; + } P05PFS; + char wk6[1]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char ISEL:1; + unsigned char :1; + unsigned char PSEL:5; + } BIT; + } P07PFS; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char ISEL:1; + unsigned char :1; + unsigned char PSEL:5; + } BIT; + } P10PFS; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char ISEL:1; + unsigned char :1; + unsigned char PSEL:5; + } BIT; + } P11PFS; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char ISEL:1; + unsigned char :1; + unsigned char PSEL:5; + } BIT; + } P12PFS; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char ISEL:1; + unsigned char :1; + unsigned char PSEL:5; + } BIT; + } P13PFS; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char ISEL:1; + unsigned char :1; + unsigned char PSEL:5; + } BIT; + } P14PFS; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char ISEL:1; + unsigned char :1; + unsigned char PSEL:5; + } BIT; + } P15PFS; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char ISEL:1; + unsigned char :1; + unsigned char PSEL:5; + } BIT; + } P16PFS; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char ISEL:1; + unsigned char :1; + unsigned char PSEL:5; + } BIT; + } P17PFS; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char ISEL:1; + unsigned char :1; + unsigned char PSEL:5; + } BIT; + } P20PFS; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char ISEL:1; + unsigned char :1; + unsigned char PSEL:5; + } BIT; + } P21PFS; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char PSEL:5; + } BIT; + } P22PFS; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char PSEL:5; + } BIT; + } P23PFS; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char PSEL:5; + } BIT; + } P24PFS; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char PSEL:5; + } BIT; + } P25PFS; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char PSEL:5; + } BIT; + } P26PFS; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char PSEL:5; + } BIT; + } P27PFS; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char ISEL:1; + unsigned char :1; + unsigned char PSEL:5; + } BIT; + } P30PFS; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char ISEL:1; + unsigned char :1; + unsigned char PSEL:5; + } BIT; + } P31PFS; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char ISEL:1; + unsigned char :1; + unsigned char PSEL:5; + } BIT; + } P32PFS; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char ISEL:1; + unsigned char :1; + unsigned char PSEL:5; + } BIT; + } P33PFS; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char ISEL:1; + unsigned char :1; + unsigned char PSEL:5; + } BIT; + } P34PFS; + char wk7[3]; + union { + unsigned char BYTE; + struct { + unsigned char ASEL:1; + unsigned char ISEL:1; + } BIT; + } P40PFS; + union { + unsigned char BYTE; + struct { + unsigned char ASEL:1; + unsigned char ISEL:1; + } BIT; + } P41PFS; + union { + unsigned char BYTE; + struct { + unsigned char ASEL:1; + unsigned char ISEL:1; + } BIT; + } P42PFS; + union { + unsigned char BYTE; + struct { + unsigned char ASEL:1; + unsigned char ISEL:1; + } BIT; + } P43PFS; + union { + unsigned char BYTE; + struct { + unsigned char ASEL:1; + unsigned char ISEL:1; + } BIT; + } P44PFS; + union { + unsigned char BYTE; + struct { + unsigned char ASEL:1; + unsigned char ISEL:1; + } BIT; + } P45PFS; + union { + unsigned char BYTE; + struct { + unsigned char ASEL:1; + unsigned char ISEL:1; + } BIT; + } P46PFS; + union { + unsigned char BYTE; + struct { + unsigned char ASEL:1; + unsigned char ISEL:1; + } BIT; + } P47PFS; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char PSEL:5; + } BIT; + } P50PFS; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char PSEL:5; + } BIT; + } P51PFS; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char PSEL:5; + } BIT; + } P52PFS; + char wk8[1]; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char PSEL:5; + } BIT; + } P54PFS; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char ISEL:1; + unsigned char :1; + unsigned char PSEL:5; + } BIT; + } P55PFS; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char PSEL:5; + } BIT; + } P56PFS; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char PSEL:5; + } BIT; + } P57PFS; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char PSEL:5; + } BIT; + } P60PFS; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char PSEL:5; + } BIT; + } P61PFS; + char wk9[4]; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char PSEL:5; + } BIT; + } P66PFS; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char ISEL:1; + unsigned char :1; + unsigned char PSEL:5; + } BIT; + } P67PFS; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char PSEL:5; + } BIT; + } P70PFS; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char PSEL:5; + } BIT; + } P71PFS; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char PSEL:5; + } BIT; + } P72PFS; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char PSEL:5; + } BIT; + } P73PFS; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char PSEL:5; + } BIT; + } P74PFS; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char PSEL:5; + } BIT; + } P75PFS; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char PSEL:5; + } BIT; + } P76PFS; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char PSEL:5; + } BIT; + } P77PFS; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char PSEL:5; + } BIT; + } P80PFS; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char PSEL:5; + } BIT; + } P81PFS; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char PSEL:5; + } BIT; + } P82PFS; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char PSEL:5; + } BIT; + } P83PFS; + char wk10[2]; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char PSEL:5; + } BIT; + } P86PFS; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char PSEL:5; + } BIT; + } P87PFS; + union { + unsigned char BYTE; + struct { + unsigned char ASEL:1; + unsigned char :2; + unsigned char PSEL:5; + } BIT; + } P90PFS; + union { + unsigned char BYTE; + struct { + unsigned char ASEL:1; + unsigned char :2; + unsigned char PSEL:5; + } BIT; + } P91PFS; + union { + unsigned char BYTE; + struct { + unsigned char ASEL:1; + unsigned char :2; + unsigned char PSEL:5; + } BIT; + } P92PFS; + union { + unsigned char BYTE; + struct { + unsigned char ASEL:1; + unsigned char :2; + unsigned char PSEL:5; + } BIT; + } P93PFS; + char wk11[4]; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char PSEL:5; + } BIT; + } PA0PFS; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char ISEL:1; + unsigned char :1; + unsigned char PSEL:5; + } BIT; + } PA1PFS; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char PSEL:5; + } BIT; + } PA2PFS; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char ISEL:1; + unsigned char :1; + unsigned char PSEL:5; + } BIT; + } PA3PFS; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char ISEL:1; + unsigned char :1; + unsigned char PSEL:5; + } BIT; + } PA4PFS; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char PSEL:5; + } BIT; + } PA5PFS; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char PSEL:5; + } BIT; + } PA6PFS; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char PSEL:5; + } BIT; + } PA7PFS; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char ISEL:1; + unsigned char :1; + unsigned char PSEL:5; + } BIT; + } PB0PFS; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char ISEL:1; + unsigned char :1; + unsigned char PSEL:5; + } BIT; + } PB1PFS; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char PSEL:5; + } BIT; + } PB2PFS; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char PSEL:5; + } BIT; + } PB3PFS; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char PSEL:5; + } BIT; + } PB4PFS; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char PSEL:5; + } BIT; + } PB5PFS; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char PSEL:5; + } BIT; + } PB6PFS; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char PSEL:5; + } BIT; + } PB7PFS; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char ISEL:1; + unsigned char :1; + unsigned char PSEL:5; + } BIT; + } PC0PFS; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char ISEL:1; + unsigned char :1; + unsigned char PSEL:5; + } BIT; + } PC1PFS; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char PSEL:5; + } BIT; + } PC2PFS; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char PSEL:5; + } BIT; + } PC3PFS; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char PSEL:5; + } BIT; + } PC4PFS; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char PSEL:5; + } BIT; + } PC5PFS; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char ISEL:1; + unsigned char :1; + unsigned char PSEL:5; + } BIT; + } PC6PFS; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char ISEL:1; + unsigned char :1; + unsigned char PSEL:5; + } BIT; + } PC7PFS; + union { + unsigned char BYTE; + struct { + unsigned char ASEL:1; + unsigned char ISEL:1; + unsigned char :1; + unsigned char PSEL:5; + } BIT; + } PD0PFS; + union { + unsigned char BYTE; + struct { + unsigned char ASEL:1; + unsigned char ISEL:1; + unsigned char :1; + unsigned char PSEL:5; + } BIT; + } PD1PFS; + union { + unsigned char BYTE; + struct { + unsigned char ASEL:1; + unsigned char ISEL:1; + unsigned char :1; + unsigned char PSEL:5; + } BIT; + } PD2PFS; + union { + unsigned char BYTE; + struct { + unsigned char ASEL:1; + unsigned char ISEL:1; + unsigned char :1; + unsigned char PSEL:5; + } BIT; + } PD3PFS; + union { + unsigned char BYTE; + struct { + unsigned char ASEL:1; + unsigned char ISEL:1; + unsigned char :1; + unsigned char PSEL:5; + } BIT; + } PD4PFS; + union { + unsigned char BYTE; + struct { + unsigned char ASEL:1; + unsigned char ISEL:1; + unsigned char :1; + unsigned char PSEL:5; + } BIT; + } PD5PFS; + union { + unsigned char BYTE; + struct { + unsigned char ASEL:1; + unsigned char ISEL:1; + unsigned char :1; + unsigned char PSEL:5; + } BIT; + } PD6PFS; + union { + unsigned char BYTE; + struct { + unsigned char ASEL:1; + unsigned char ISEL:1; + unsigned char :1; + unsigned char PSEL:5; + } BIT; + } PD7PFS; + union { + unsigned char BYTE; + struct { + unsigned char ASEL:1; + unsigned char :2; + unsigned char PSEL:5; + } BIT; + } PE0PFS; + union { + unsigned char BYTE; + struct { + unsigned char ASEL:1; + unsigned char :2; + unsigned char PSEL:5; + } BIT; + } PE1PFS; + union { + unsigned char BYTE; + struct { + unsigned char ASEL:1; + unsigned char ISEL:1; + unsigned char :1; + unsigned char PSEL:5; + } BIT; + } PE2PFS; + union { + unsigned char BYTE; + struct { + unsigned char ASEL:1; + unsigned char :2; + unsigned char PSEL:5; + } BIT; + } PE3PFS; + union { + unsigned char BYTE; + struct { + unsigned char ASEL:1; + unsigned char :2; + unsigned char PSEL:5; + } BIT; + } PE4PFS; + union { + unsigned char BYTE; + struct { + unsigned char ASEL:1; + unsigned char ISEL:1; + unsigned char :1; + unsigned char PSEL:5; + } BIT; + } PE5PFS; + union { + unsigned char BYTE; + struct { + unsigned char ASEL:1; + unsigned char ISEL:1; + unsigned char :1; + unsigned char PSEL:5; + } BIT; + } PE6PFS; + union { + unsigned char BYTE; + struct { + unsigned char ASEL:1; + unsigned char ISEL:1; + unsigned char :1; + unsigned char PSEL:5; + } BIT; + } PE7PFS; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char PSEL:5; + } BIT; + } PF0PFS; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char PSEL:5; + } BIT; + } PF1PFS; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char PSEL:5; + } BIT; + } PF2PFS; + char wk12[2]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char ISEL:1; + unsigned char :1; + unsigned char PSEL:5; + } BIT; + } PF5PFS; + char wk13[21]; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char PSEL:5; + } BIT; + } PJ3PFS; +}; + +struct st_mtu { + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char OE4D:1; + unsigned char OE4C:1; + unsigned char OE3D:1; + unsigned char OE4B:1; + unsigned char OE4A:1; + unsigned char OE3B:1; + } BIT; + } TOER; + char wk0[2]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char BDC:1; + unsigned char N:1; + unsigned char P:1; + unsigned char FB:1; + unsigned char WF:1; + unsigned char VF:1; + unsigned char UF:1; + } BIT; + } TGCR; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char PSYE:1; + unsigned char :2; + unsigned char TOCL:1; + unsigned char TOCS:1; + unsigned char OLSN:1; + unsigned char OLSP:1; + } BIT; + } TOCR1; + union { + unsigned char BYTE; + struct { + unsigned char BF:2; + unsigned char OLS3N:1; + unsigned char OLS3P:1; + unsigned char OLS2N:1; + unsigned char OLS2P:1; + unsigned char OLS1N:1; + unsigned char OLS1P:1; + } BIT; + } TOCR2; + char wk1[4]; + unsigned short TCDR; + unsigned short TDDR; + char wk2[8]; + unsigned short TCNTS; + unsigned short TCBR; + char wk3[12]; + union { + unsigned char BYTE; + struct { + unsigned char T3AEN:1; + unsigned char T3ACOR:3; + unsigned char T4VEN:1; + unsigned char T4VCOR:3; + } BIT; + } TITCR; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char T3ACNT:3; + unsigned char :1; + unsigned char T4VCNT:3; + } BIT; + } TITCNT; + union { + unsigned char BYTE; + struct { + unsigned char :6; + unsigned char BTE:2; + } BIT; + } TBTER; + char wk4[1]; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char TDER:1; + } BIT; + } TDER; + char wk5[1]; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char OLS3N:1; + unsigned char OLS3P:1; + unsigned char OLS2N:1; + unsigned char OLS2P:1; + unsigned char OLS1N:1; + unsigned char OLS1P:1; + } BIT; + } TOLBR; + char wk6[41]; + union { + unsigned char BYTE; + struct { + unsigned char CCE:1; + unsigned char :6; + unsigned char WRE:1; + } BIT; + } TWCR; + char wk7[31]; + union { + unsigned char BYTE; + struct { + unsigned char CST4:1; + unsigned char CST3:1; + unsigned char :3; + unsigned char CST2:1; + unsigned char CST1:1; + unsigned char CST0:1; + } BIT; + } TSTR; + union { + unsigned char BYTE; + struct { + unsigned char SYNC4:1; + unsigned char SYNC3:1; + unsigned char :3; + unsigned char SYNC2:1; + unsigned char SYNC1:1; + unsigned char SYNC0:1; + } BIT; + } TSYR; + char wk8[2]; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char RWE:1; + } BIT; + } TRWER; +}; + +struct st_mtu0 { + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char NFCS:2; + unsigned char NFDEN:1; + unsigned char NFCEN:1; + unsigned char NFBEN:1; + unsigned char NFAEN:1; + } BIT; + } NFCR; + char wk0[111]; + union { + unsigned char BYTE; + struct { + unsigned char CCLR:3; + unsigned char CKEG:2; + unsigned char TPSC:3; + } BIT; + } TCR; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char BFE:1; + unsigned char BFB:1; + unsigned char BFA:1; + unsigned char MD:4; + } BIT; + } TMDR; + union { + unsigned char BYTE; + struct { + unsigned char IOB:4; + unsigned char IOA:4; + } BIT; + } TIORH; + union { + unsigned char BYTE; + struct { + unsigned char IOD:4; + unsigned char IOC:4; + } BIT; + } TIORL; + union { + unsigned char BYTE; + struct { + unsigned char TTGE:1; + unsigned char :2; + unsigned char TCIEV:1; + unsigned char TGIED:1; + unsigned char TGIEC:1; + unsigned char TGIEB:1; + unsigned char TGIEA:1; + } BIT; + } TIER; + union { + unsigned char BYTE; + struct { + unsigned char TCFD:1; + } BIT; + } TSR; + unsigned short TCNT; + unsigned short TGRA; + unsigned short TGRB; + unsigned short TGRC; + unsigned short TGRD; + char wk1[16]; + unsigned short TGRE; + unsigned short TGRF; + union { + unsigned char BYTE; + struct { + unsigned char :6; + unsigned char TGIEF:1; + unsigned char TGIEE:1; + } BIT; + } TIER2; + char wk2[1]; + union { + unsigned char BYTE; + struct { + unsigned char :5; + unsigned char TTSE:1; + unsigned char TTSB:1; + unsigned char TTSA:1; + } BIT; + } TBTM; +}; + +struct st_mtu1 { + char wk0[1]; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char NFCS:2; + unsigned char NFDEN:1; + unsigned char NFCEN:1; + unsigned char NFBEN:1; + unsigned char NFAEN:1; + } BIT; + } NFCR; + char wk1[238]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char CCLR:2; + unsigned char CKEG:2; + unsigned char TPSC:3; + } BIT; + } TCR; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char MD:4; + } BIT; + } TMDR; + union { + unsigned char BYTE; + struct { + unsigned char IOB:4; + unsigned char IOA:4; + } BIT; + } TIOR; + char wk2[1]; + union { + unsigned char BYTE; + struct { + unsigned char TTGE:1; + unsigned char :1; + unsigned char TCIEU:1; + unsigned char TCIEV:1; + unsigned char :2; + unsigned char TGIEB:1; + unsigned char TGIEA:1; + } BIT; + } TIER; + union { + unsigned char BYTE; + struct { + unsigned char TCFD:1; + } BIT; + } TSR; + unsigned short TCNT; + unsigned short TGRA; + unsigned short TGRB; + char wk3[4]; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char I2BE:1; + unsigned char I2AE:1; + unsigned char I1BE:1; + unsigned char I1AE:1; + } BIT; + } TICCR; +}; + +struct st_mtu2 { + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char NFCS:2; + unsigned char NFDEN:1; + unsigned char NFCEN:1; + unsigned char NFBEN:1; + unsigned char NFAEN:1; + } BIT; + } NFCR; + char wk0[365]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char CCLR:2; + unsigned char CKEG:2; + unsigned char TPSC:3; + } BIT; + } TCR; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char MD:4; + } BIT; + } TMDR; + union { + unsigned char BYTE; + struct { + unsigned char IOB:4; + unsigned char IOA:4; + } BIT; + } TIOR; + char wk1[1]; + union { + unsigned char BYTE; + struct { + unsigned char TTGE:1; + unsigned char :1; + unsigned char TCIEU:1; + unsigned char TCIEV:1; + unsigned char :2; + unsigned char TGIEB:1; + unsigned char TGIEA:1; + } BIT; + } TIER; + union { + unsigned char BYTE; + struct { + unsigned char TCFD:1; + } BIT; + } TSR; + unsigned short TCNT; + unsigned short TGRA; + unsigned short TGRB; +}; + +struct st_mtu3 { + union { + unsigned char BYTE; + struct { + unsigned char CCLR:3; + unsigned char CKEG:2; + unsigned char TPSC:3; + } BIT; + } TCR; + char wk0[1]; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char BFB:1; + unsigned char BFA:1; + unsigned char MD:4; + } BIT; + } TMDR; + char wk1[1]; + union { + unsigned char BYTE; + struct { + unsigned char IOB:4; + unsigned char IOA:4; + } BIT; + } TIORH; + union { + unsigned char BYTE; + struct { + unsigned char IOD:4; + unsigned char IOC:4; + } BIT; + } TIORL; + char wk2[2]; + union { + unsigned char BYTE; + struct { + unsigned char TTGE:1; + unsigned char :2; + unsigned char TCIEV:1; + unsigned char TGIED:1; + unsigned char TGIEC:1; + unsigned char TGIEB:1; + unsigned char TGIEA:1; + } BIT; + } TIER; + char wk3[7]; + unsigned short TCNT; + char wk4[6]; + unsigned short TGRA; + unsigned short TGRB; + char wk5[8]; + unsigned short TGRC; + unsigned short TGRD; + char wk6[4]; + union { + unsigned char BYTE; + struct { + unsigned char TCFD:1; + } BIT; + } TSR; + char wk7[11]; + union { + unsigned char BYTE; + struct { + unsigned char :5; + unsigned char TTSE:1; + unsigned char TTSB:1; + unsigned char TTSA:1; + } BIT; + } TBTM; + char wk8[90]; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char NFCS:2; + unsigned char NFDEN:1; + unsigned char NFCEN:1; + unsigned char NFBEN:1; + unsigned char NFAEN:1; + } BIT; + } NFCR; +}; + +struct st_mtu4 { + char wk0[1]; + union { + unsigned char BYTE; + struct { + unsigned char CCLR:3; + unsigned char CKEG:2; + unsigned char TPSC:3; + } BIT; + } TCR; + char wk1[1]; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char BFB:1; + unsigned char BFA:1; + unsigned char MD:4; + } BIT; + } TMDR; + char wk2[2]; + union { + unsigned char BYTE; + struct { + unsigned char IOB:4; + unsigned char IOA:4; + } BIT; + } TIORH; + union { + unsigned char BYTE; + struct { + unsigned char IOD:4; + unsigned char IOC:4; + } BIT; + } TIORL; + char wk3[1]; + union { + unsigned char BYTE; + struct { + unsigned char TTGE:1; + unsigned char TTGE2:1; + unsigned char :1; + unsigned char TCIEV:1; + unsigned char TGIED:1; + unsigned char TGIEC:1; + unsigned char TGIEB:1; + unsigned char TGIEA:1; + } BIT; + } TIER; + char wk4[8]; + unsigned short TCNT; + char wk5[8]; + unsigned short TGRA; + unsigned short TGRB; + char wk6[8]; + unsigned short TGRC; + unsigned short TGRD; + char wk7[1]; + union { + unsigned char BYTE; + struct { + unsigned char TCFD:1; + } BIT; + } TSR; + char wk8[11]; + union { + unsigned char BYTE; + struct { + unsigned char :5; + unsigned char TTSE:1; + unsigned char TTSB:1; + unsigned char TTSA:1; + } BIT; + } TBTM; + char wk9[6]; + union { + unsigned short WORD; + struct { + unsigned short BF:2; + unsigned short :6; + unsigned short UT4AE:1; + unsigned short DT4AE:1; + unsigned short UT4BE:1; + unsigned short DT4BE:1; + unsigned short ITA3AE:1; + unsigned short ITA4VE:1; + unsigned short ITB3AE:1; + unsigned short ITB4VE:1; + } BIT; + } TADCR; + char wk10[2]; + unsigned short TADCORA; + unsigned short TADCORB; + unsigned short TADCOBRA; + unsigned short TADCOBRB; + char wk11[72]; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char NFCS:2; + unsigned char NFDEN:1; + unsigned char NFCEN:1; + unsigned char NFBEN:1; + unsigned char NFAEN:1; + } BIT; + } NFCR; +}; + +struct st_mtu5 { + char wk0[1]; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char NFCS:2; + unsigned char :1; + unsigned char NFWEN:1; + unsigned char NFVEN:1; + unsigned char NFUEN:1; + } BIT; + } NFCR; + char wk1[490]; + unsigned short TCNTU; + unsigned short TGRU; + union { + unsigned char BYTE; + struct { + unsigned char :6; + unsigned char TPSC:2; + } BIT; + } TCRU; + char wk2[1]; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char IOC:5; + } BIT; + } TIORU; + char wk3[9]; + unsigned short TCNTV; + unsigned short TGRV; + union { + unsigned char BYTE; + struct { + unsigned char :6; + unsigned char TPSC:2; + } BIT; + } TCRV; + char wk4[1]; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char IOC:5; + } BIT; + } TIORV; + char wk5[9]; + unsigned short TCNTW; + unsigned short TGRW; + union { + unsigned char BYTE; + struct { + unsigned char :6; + unsigned char TPSC:2; + } BIT; + } TCRW; + char wk6[1]; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char IOC:5; + } BIT; + } TIORW; + char wk7[11]; + union { + unsigned char BYTE; + struct { + unsigned char :5; + unsigned char TGIE5U:1; + unsigned char TGIE5V:1; + unsigned char TGIE5W:1; + } BIT; + } TIER; + char wk8[1]; + union { + unsigned char BYTE; + struct { + unsigned char :5; + unsigned char CSTU5:1; + unsigned char CSTV5:1; + unsigned char CSTW5:1; + } BIT; + } TSTR; + char wk9[1]; + union { + unsigned char BYTE; + struct { + unsigned char :5; + unsigned char CMPCLR5U:1; + unsigned char CMPCLR5V:1; + unsigned char CMPCLR5W:1; + } BIT; + } TCNTCMPCLR; +}; + +struct st_poe { + union { + unsigned short WORD; + struct { + unsigned short POE3F:1; + unsigned short POE2F:1; + unsigned short POE1F:1; + unsigned short POE0F:1; + unsigned short :3; + unsigned short PIE1:1; + unsigned short POE3M:2; + unsigned short POE2M:2; + unsigned short POE1M:2; + unsigned short POE0M:2; + } BIT; + } ICSR1; + union { + unsigned short WORD; + struct { + unsigned short OSF1:1; + unsigned short :5; + unsigned short OCE1:1; + unsigned short OIE1:1; + } BIT; + } OCSR1; + char wk0[4]; + union { + unsigned short WORD; + struct { + unsigned short :3; + unsigned short POE8F:1; + unsigned short :2; + unsigned short POE8E:1; + unsigned short PIE2:1; + unsigned short :6; + unsigned short POE8M:2; + } BIT; + } ICSR2; + union { + unsigned char BYTE; + struct { + unsigned char :6; + unsigned char CH0HIZ:1; + unsigned char CH34HIZ:1; + } BIT; + } SPOER; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char PE3ZE:1; + unsigned char PE2ZE:1; + unsigned char PE1ZE:1; + unsigned char PE0ZE:1; + } BIT; + } POECR1; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char P1CZEA:1; + unsigned char P2CZEA:1; + unsigned char P3CZEA:1; + } BIT; + } POECR2; + char wk1[1]; + union { + unsigned short WORD; + struct { + unsigned short :3; + unsigned short OSTSTF:1; + unsigned short :2; + unsigned short OSTSTE:1; + } BIT; + } ICSR3; +}; + +struct st_port0 { + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char :1; + unsigned char B5:1; + unsigned char :1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PDR; + char wk0[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char :1; + unsigned char B5:1; + unsigned char :1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PODR; + char wk1[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char :1; + unsigned char B5:1; + unsigned char :1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PIDR; + char wk2[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char :1; + unsigned char B5:1; + unsigned char :1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PMR; + char wk3[31]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char B6:1; + unsigned char :1; + unsigned char B4:1; + unsigned char :1; + unsigned char B2:1; + unsigned char :1; + unsigned char B0:1; + } BIT; + } ODR0; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char B6:1; + unsigned char :3; + unsigned char B2:1; + } BIT; + } ODR1; + char wk4[62]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char :1; + unsigned char B5:1; + unsigned char :1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PCR; + char wk5[31]; + union { + unsigned char BYTE; + struct { + unsigned char :5; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } DSCR; +}; + +struct st_port1 { + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PDR; + char wk0[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PODR; + char wk1[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PIDR; + char wk2[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PMR; + char wk3[32]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char B6:1; + unsigned char :1; + unsigned char B4:1; + unsigned char :1; + unsigned char B2:1; + unsigned char :1; + unsigned char B0:1; + } BIT; + } ODR0; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char B6:1; + unsigned char :1; + unsigned char B4:1; + unsigned char :1; + unsigned char B2:1; + unsigned char :1; + unsigned char B0:1; + } BIT; + } ODR1; + char wk4[61]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PCR; +}; + +struct st_port2 { + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PDR; + char wk0[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PODR; + char wk1[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PIDR; + char wk2[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PMR; + char wk3[33]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char B6:1; + unsigned char :1; + unsigned char B4:1; + unsigned char :1; + unsigned char B2:1; + unsigned char :1; + unsigned char B0:1; + } BIT; + } ODR0; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char B6:1; + unsigned char :1; + unsigned char B4:1; + unsigned char :1; + unsigned char B2:1; + unsigned char :1; + unsigned char B0:1; + } BIT; + } ODR1; + char wk4[60]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PCR; + char wk5[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + } BIT; + } DSCR; +}; + +struct st_port3 { + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char :1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PDR; + char wk0[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char :1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PODR; + char wk1[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PIDR; + char wk2[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PMR; + char wk3[34]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char B6:1; + unsigned char :1; + unsigned char B4:1; + unsigned char :1; + unsigned char B2:1; + unsigned char :1; + unsigned char B0:1; + } BIT; + } ODR0; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char B6:1; + unsigned char :1; + unsigned char B4:1; + unsigned char :1; + unsigned char B2:1; + unsigned char :1; + unsigned char B0:1; + } BIT; + } ODR1; + char wk4[59]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PCR; +}; + +struct st_port4 { + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PDR; + char wk0[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PODR; + char wk1[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PIDR; + char wk2[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PMR; + char wk3[35]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char B6:1; + unsigned char :1; + unsigned char B4:1; + unsigned char :1; + unsigned char B2:1; + unsigned char :1; + unsigned char B0:1; + } BIT; + } ODR0; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char B6:1; + unsigned char :1; + unsigned char B4:1; + unsigned char :1; + unsigned char B2:1; + unsigned char :1; + unsigned char B0:1; + } BIT; + } ODR1; + char wk4[58]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PCR; +}; + +struct st_port5 { + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PDR; + char wk0[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PODR; + char wk1[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PIDR; + char wk2[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PMR; + char wk3[36]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char B6:1; + unsigned char :1; + unsigned char B4:1; + unsigned char :1; + unsigned char B2:1; + unsigned char :1; + unsigned char B0:1; + } BIT; + } ODR0; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char B6:1; + unsigned char :1; + unsigned char B4:1; + unsigned char :1; + unsigned char B2:1; + unsigned char :1; + unsigned char B0:1; + } BIT; + } ODR1; + char wk4[57]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PCR; + char wk5[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char :3; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } DSCR; +}; + +struct st_port6 { + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PDR; + char wk0[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PODR; + char wk1[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PIDR; + char wk2[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PMR; + char wk3[37]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char B6:1; + unsigned char :1; + unsigned char B4:1; + unsigned char :1; + unsigned char B2:1; + unsigned char :1; + unsigned char B0:1; + } BIT; + } ODR0; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char B6:1; + unsigned char :1; + unsigned char B4:1; + unsigned char :1; + unsigned char B2:1; + unsigned char :1; + unsigned char B0:1; + } BIT; + } ODR1; + char wk4[56]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PCR; +}; + +struct st_port7 { + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PDR; + char wk0[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PODR; + char wk1[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PIDR; + char wk2[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PMR; + char wk3[38]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char B6:1; + unsigned char :1; + unsigned char B4:1; + unsigned char :1; + unsigned char B2:1; + unsigned char :1; + unsigned char B0:1; + } BIT; + } ODR0; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char B6:1; + unsigned char :1; + unsigned char B4:1; + unsigned char :1; + unsigned char B2:1; + unsigned char :1; + unsigned char B0:1; + } BIT; + } ODR1; + char wk4[55]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PCR; +}; + +struct st_port8 { + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PDR; + char wk0[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PODR; + char wk1[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PIDR; + char wk2[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PMR; + char wk3[39]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char B6:1; + unsigned char :1; + unsigned char B4:1; + unsigned char :1; + unsigned char B2:1; + unsigned char :1; + unsigned char B0:1; + } BIT; + } ODR0; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char B6:1; + unsigned char :1; + unsigned char B4:1; + unsigned char :1; + unsigned char B2:1; + unsigned char :1; + unsigned char B0:1; + } BIT; + } ODR1; + char wk4[54]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PCR; +}; + +struct st_port9 { + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PDR; + char wk0[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PODR; + char wk1[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PIDR; + char wk2[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PMR; + char wk3[40]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char B6:1; + unsigned char :1; + unsigned char B4:1; + unsigned char :1; + unsigned char B2:1; + unsigned char :1; + unsigned char B0:1; + } BIT; + } ODR0; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char B6:1; + unsigned char :1; + unsigned char B4:1; + unsigned char :1; + unsigned char B2:1; + unsigned char :1; + unsigned char B0:1; + } BIT; + } ODR1; + char wk4[53]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PCR; + char wk5[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } DSCR; +}; + +struct st_porta { + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PDR; + char wk0[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PODR; + char wk1[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PIDR; + char wk2[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PMR; + char wk3[41]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char B6:1; + unsigned char :1; + unsigned char B4:1; + unsigned char :1; + unsigned char B2:1; + unsigned char :1; + unsigned char B0:1; + } BIT; + } ODR0; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char B6:1; + unsigned char :1; + unsigned char B4:1; + unsigned char :1; + unsigned char B2:1; + unsigned char :1; + unsigned char B0:1; + } BIT; + } ODR1; + char wk4[52]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PCR; + char wk5[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } DSCR; +}; + +struct st_portb { + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PDR; + char wk0[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PODR; + char wk1[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PIDR; + char wk2[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PMR; + char wk3[42]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char B6:1; + unsigned char :1; + unsigned char B4:1; + unsigned char :1; + unsigned char B2:1; + unsigned char :1; + unsigned char B0:1; + } BIT; + } ODR0; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char B6:1; + unsigned char :1; + unsigned char B4:1; + unsigned char :1; + unsigned char B2:1; + unsigned char :1; + unsigned char B0:1; + } BIT; + } ODR1; + char wk4[51]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PCR; + char wk5[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } DSCR; +}; + +struct st_portc { + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PDR; + char wk0[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PODR; + char wk1[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PIDR; + char wk2[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PMR; + char wk3[43]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char B6:1; + unsigned char :1; + unsigned char B4:1; + unsigned char :1; + unsigned char B2:1; + unsigned char :1; + unsigned char B0:1; + } BIT; + } ODR0; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char B6:1; + unsigned char :1; + unsigned char B4:1; + unsigned char :1; + unsigned char B2:1; + unsigned char :1; + unsigned char B0:1; + } BIT; + } ODR1; + char wk4[50]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PCR; + char wk5[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } DSCR; +}; + +struct st_portd { + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PDR; + char wk0[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PODR; + char wk1[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PIDR; + char wk2[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PMR; + char wk3[44]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char B6:1; + unsigned char :1; + unsigned char B4:1; + unsigned char :1; + unsigned char B2:1; + unsigned char :1; + unsigned char B0:1; + } BIT; + } ODR0; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char B6:1; + unsigned char :1; + unsigned char B4:1; + unsigned char :1; + unsigned char B2:1; + unsigned char :1; + unsigned char B0:1; + } BIT; + } ODR1; + char wk4[49]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PCR; + char wk5[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } DSCR; +}; + +struct st_porte { + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PDR; + char wk0[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PODR; + char wk1[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PIDR; + char wk2[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PMR; + char wk3[45]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char B6:1; + unsigned char :1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char :1; + unsigned char B0:1; + } BIT; + } ODR0; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char B6:1; + unsigned char :1; + unsigned char B4:1; + unsigned char :1; + unsigned char B2:1; + unsigned char :1; + unsigned char B0:1; + } BIT; + } ODR1; + char wk4[48]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PCR; + char wk5[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } DSCR; +}; + +struct st_portf { + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PDR; + char wk0[31]; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PODR; + char wk1[31]; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PIDR; + char wk2[31]; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PMR; + char wk3[46]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char B6:1; + unsigned char :1; + unsigned char B4:1; + unsigned char :1; + unsigned char B2:1; + unsigned char :1; + unsigned char B0:1; + } BIT; + } ODR0; + union { + unsigned char BYTE; + struct { + unsigned char :5; + unsigned char B2:1; + unsigned char :1; + unsigned char B0:1; + } BIT; + } ODR1; + char wk4[47]; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PCR; +}; + +struct st_portg { + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PDR; + char wk0[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PODR; + char wk1[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PIDR; + char wk2[31]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PMR; + char wk3[47]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char B6:1; + unsigned char :1; + unsigned char B4:1; + unsigned char :1; + unsigned char B2:1; + unsigned char :1; + unsigned char B0:1; + } BIT; + } ODR0; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char B6:1; + unsigned char :1; + unsigned char B4:1; + unsigned char :1; + unsigned char B2:1; + unsigned char :1; + unsigned char B0:1; + } BIT; + } ODR1; + char wk4[46]; + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PCR; + char wk5[31]; + union { + unsigned char BYTE; + struct { + unsigned char :6; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } DSCR; +}; + +struct st_porth { + union { + unsigned char BYTE; + struct { + unsigned char B7:1; + unsigned char B6:1; + unsigned char B5:1; + unsigned char B4:1; + unsigned char B3:1; + unsigned char B2:1; + unsigned char B1:1; + unsigned char B0:1; + } BIT; + } PCR; +}; + +struct st_portj { + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char B5:1; + unsigned char :1; + unsigned char B3:1; + } BIT; + } PDR; + char wk0[31]; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char B5:1; + unsigned char :1; + unsigned char B3:1; + } BIT; + } PODR; + char wk1[31]; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char B5:1; + unsigned char :1; + unsigned char B3:1; + } BIT; + } PIDR; + char wk2[31]; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char B5:1; + unsigned char :1; + unsigned char B3:1; + } BIT; + } PMR; + char wk3[49]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char B6:1; + } BIT; + } ODR0; + union { + unsigned char BYTE; + struct { + unsigned char :5; + unsigned char B2:1; + } BIT; + } ODR1; + char wk4[44]; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char B5:1; + unsigned char :1; + unsigned char B3:1; + } BIT; + } PCR; +}; + +struct st_ppg0 { + union { + unsigned char BYTE; + struct { + unsigned char G3CMS:2; + unsigned char G2CMS:2; + unsigned char G1CMS:2; + unsigned char G0CMS:2; + } BIT; + } PCR; + union { + unsigned char BYTE; + struct { + unsigned char G3INV:1; + unsigned char G2INV:1; + unsigned char G1INV:1; + unsigned char G0INV:1; + unsigned char G3NOV:1; + unsigned char G2NOV:1; + unsigned char G1NOV:1; + unsigned char G0NOV:1; + } BIT; + } PMR; + union { + unsigned char BYTE; + struct { + unsigned char NDER15:1; + unsigned char NDER14:1; + unsigned char NDER13:1; + unsigned char NDER12:1; + unsigned char NDER11:1; + unsigned char NDER10:1; + unsigned char NDER9:1; + unsigned char NDER8:1; + } BIT; + } NDERH; + union { + unsigned char BYTE; + struct { + unsigned char NDER7:1; + unsigned char NDER6:1; + unsigned char NDER5:1; + unsigned char NDER4:1; + unsigned char NDER3:1; + unsigned char NDER2:1; + unsigned char NDER1:1; + unsigned char NDER0:1; + } BIT; + } NDERL; + union { + unsigned char BYTE; + struct { + unsigned char POD15:1; + unsigned char POD14:1; + unsigned char POD13:1; + unsigned char POD12:1; + unsigned char POD11:1; + unsigned char POD10:1; + unsigned char POD9:1; + unsigned char POD8:1; + } BIT; + } PODRH; + union { + unsigned char BYTE; + struct { + unsigned char POD7:1; + unsigned char POD6:1; + unsigned char POD5:1; + unsigned char POD4:1; + unsigned char POD3:1; + unsigned char POD2:1; + unsigned char POD1:1; + unsigned char POD0:1; + } BIT; + } PODRL; + union { + unsigned char BYTE; + struct { + unsigned char NDR15:1; + unsigned char NDR14:1; + unsigned char NDR13:1; + unsigned char NDR12:1; + unsigned char NDR11:1; + unsigned char NDR10:1; + unsigned char NDR9:1; + unsigned char NDR8:1; + } BIT; + } NDRH; + union { + unsigned char BYTE; + struct { + unsigned char NDR7:1; + unsigned char NDR6:1; + unsigned char NDR5:1; + unsigned char NDR4:1; + unsigned char NDR3:1; + unsigned char NDR2:1; + unsigned char NDR1:1; + unsigned char NDR0:1; + } BIT; + } NDRL; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char NDR11:1; + unsigned char NDR10:1; + unsigned char NDR9:1; + unsigned char NDR8:1; + } BIT; + } NDRH2; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char NDR3:1; + unsigned char NDR2:1; + unsigned char NDR1:1; + unsigned char NDR0:1; + } BIT; + } NDRL2; +}; + +struct st_ppg1 { + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char PTRSL:1; + } BIT; + } PTRSLR; + char wk0[5]; + union { + unsigned char BYTE; + struct { + unsigned char G3CMS:2; + unsigned char G2CMS:2; + unsigned char G1CMS:2; + unsigned char G0CMS:2; + } BIT; + } PCR; + union { + unsigned char BYTE; + struct { + unsigned char G3INV:1; + unsigned char G2INV:1; + unsigned char G1INV:1; + unsigned char G0INV:1; + unsigned char G3NOV:1; + unsigned char G2NOV:1; + unsigned char G1NOV:1; + unsigned char G0NOV:1; + } BIT; + } PMR; + union { + unsigned char BYTE; + struct { + unsigned char NDER31:1; + unsigned char NDER30:1; + unsigned char NDER29:1; + unsigned char NDER28:1; + unsigned char NDER27:1; + unsigned char NDER26:1; + unsigned char NDER25:1; + unsigned char NDER24:1; + } BIT; + } NDERH; + union { + unsigned char BYTE; + struct { + unsigned char NDER23:1; + unsigned char NDER22:1; + unsigned char NDER21:1; + unsigned char NDER20:1; + unsigned char NDER19:1; + unsigned char NDER18:1; + unsigned char NDER17:1; + unsigned char NDER16:1; + } BIT; + } NDERL; + union { + unsigned char BYTE; + struct { + unsigned char POD31:1; + unsigned char POD30:1; + unsigned char POD29:1; + unsigned char POD28:1; + unsigned char POD27:1; + unsigned char POD26:1; + unsigned char POD25:1; + unsigned char POD24:1; + } BIT; + } PODRH; + union { + unsigned char BYTE; + struct { + unsigned char POD23:1; + unsigned char POD22:1; + unsigned char POD21:1; + unsigned char POD20:1; + unsigned char POD19:1; + unsigned char POD18:1; + unsigned char POD17:1; + unsigned char POD16:1; + } BIT; + } PODRL; + union { + unsigned char BYTE; + struct { + unsigned char NDR31:1; + unsigned char NDR30:1; + unsigned char NDR29:1; + unsigned char NDR28:1; + unsigned char NDR27:1; + unsigned char NDR26:1; + unsigned char NDR25:1; + unsigned char NDR24:1; + } BIT; + } NDRH; + union { + unsigned char BYTE; + struct { + unsigned char NDR23:1; + unsigned char NDR22:1; + unsigned char NDR21:1; + unsigned char NDR20:1; + unsigned char NDR19:1; + unsigned char NDR18:1; + unsigned char NDR17:1; + unsigned char NDR16:1; + } BIT; + } NDRL; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char NDR27:1; + unsigned char NDR26:1; + unsigned char NDR25:1; + unsigned char NDR24:1; + } BIT; + } NDRH2; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char NDR19:1; + unsigned char NDR18:1; + unsigned char NDR17:1; + unsigned char NDR16:1; + } BIT; + } NDRL2; +}; + +struct st_riic0 { + union { + unsigned char BYTE; + struct { + unsigned char ICE:1; + unsigned char IICRST:1; + unsigned char CLO:1; + unsigned char SOWP:1; + unsigned char SCLO:1; + unsigned char SDAO:1; + unsigned char SCLI:1; + unsigned char SDAI:1; + } BIT; + } ICCR1; + union { + unsigned char BYTE; + struct { + unsigned char BBSY:1; + unsigned char MST:1; + unsigned char TRS:1; + unsigned char :1; + unsigned char SP:1; + unsigned char RS:1; + unsigned char ST:1; + } BIT; + } ICCR2; + union { + unsigned char BYTE; + struct { + unsigned char MTWP:1; + unsigned char CKS:3; + unsigned char BCWP:1; + unsigned char BC:3; + } BIT; + } ICMR1; + union { + unsigned char BYTE; + struct { + unsigned char DLCS:1; + unsigned char SDDL:3; + unsigned char :1; + unsigned char TMOH:1; + unsigned char TMOL:1; + unsigned char TMOS:1; + } BIT; + } ICMR2; + union { + unsigned char BYTE; + struct { + unsigned char SMBS:1; + unsigned char WAIT:1; + unsigned char RDRFS:1; + unsigned char ACKWP:1; + unsigned char ACKBT:1; + unsigned char ACKBR:1; + unsigned char NF:2; + } BIT; + } ICMR3; + union { + unsigned char BYTE; + struct { + unsigned char FMPE:1; + unsigned char SCLE:1; + unsigned char NFE:1; + unsigned char NACKE:1; + unsigned char SALE:1; + unsigned char NALE:1; + unsigned char MALE:1; + unsigned char TMOE:1; + } BIT; + } ICFER; + union { + unsigned char BYTE; + struct { + unsigned char HOAE:1; + unsigned char :1; + unsigned char DIDE:1; + unsigned char :1; + unsigned char GCAE:1; + unsigned char SAR2E:1; + unsigned char SAR1E:1; + unsigned char SAR0E:1; + } BIT; + } ICSER; + union { + unsigned char BYTE; + struct { + unsigned char TIE:1; + unsigned char TEIE:1; + unsigned char RIE:1; + unsigned char NAKIE:1; + unsigned char SPIE:1; + unsigned char STIE:1; + unsigned char ALIE:1; + unsigned char TMOIE:1; + } BIT; + } ICIER; + union { + unsigned char BYTE; + struct { + unsigned char HOA:1; + unsigned char :1; + unsigned char DID:1; + unsigned char :1; + unsigned char GCA:1; + unsigned char AAS2:1; + unsigned char AAS1:1; + unsigned char AAS0:1; + } BIT; + } ICSR1; + union { + unsigned char BYTE; + struct { + unsigned char TDRE:1; + unsigned char TEND:1; + unsigned char RDRF:1; + unsigned char NACKF:1; + unsigned char STOP:1; + unsigned char START:1; + unsigned char AL:1; + unsigned char TMOF:1; + } BIT; + } ICSR2; + union { + unsigned char BYTE; + struct { + unsigned char SVA:7; + unsigned char SVA0:1; + } BIT; + } SARL0; + union { + unsigned char BYTE; + struct { + unsigned char :5; + unsigned char SVA:2; + unsigned char FS:1; + } BIT; + } SARU0; + union { + unsigned char BYTE; + struct { + unsigned char SVA:7; + unsigned char SVA0:1; + } BIT; + } SARL1; + union { + unsigned char BYTE; + struct { + unsigned char :5; + unsigned char SVA:2; + unsigned char FS:1; + } BIT; + } SARU1; + union { + unsigned char BYTE; + struct { + unsigned char SVA:7; + unsigned char SVA0:1; + } BIT; + } SARL2; + union { + unsigned char BYTE; + struct { + unsigned char :5; + unsigned char SVA:2; + unsigned char FS:1; + } BIT; + } SARU2; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char BRL:5; + } BIT; + } ICBRL; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char BRH:5; + } BIT; + } ICBRH; + unsigned char ICDRT; + unsigned char ICDRR; +}; + +struct st_riic1 { + union { + unsigned char BYTE; + struct { + unsigned char ICE:1; + unsigned char IICRST:1; + unsigned char CLO:1; + unsigned char SOWP:1; + unsigned char SCLO:1; + unsigned char SDAO:1; + unsigned char SCLI:1; + unsigned char SDAI:1; + } BIT; + } ICCR1; + union { + unsigned char BYTE; + struct { + unsigned char BBSY:1; + unsigned char MST:1; + unsigned char TRS:1; + unsigned char :1; + unsigned char SP:1; + unsigned char RS:1; + unsigned char ST:1; + } BIT; + } ICCR2; + union { + unsigned char BYTE; + struct { + unsigned char MTWP:1; + unsigned char CKS:3; + unsigned char BCWP:1; + unsigned char BC:3; + } BIT; + } ICMR1; + union { + unsigned char BYTE; + struct { + unsigned char DLCS:1; + unsigned char SDDL:3; + unsigned char :1; + unsigned char TMOH:1; + unsigned char TMOL:1; + unsigned char TMOS:1; + } BIT; + } ICMR2; + union { + unsigned char BYTE; + struct { + unsigned char SMBS:1; + unsigned char WAIT:1; + unsigned char RDRFS:1; + unsigned char ACKWP:1; + unsigned char ACKBT:1; + unsigned char ACKBR:1; + unsigned char NF:2; + } BIT; + } ICMR3; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char SCLE:1; + unsigned char NFE:1; + unsigned char NACKE:1; + unsigned char SALE:1; + unsigned char NALE:1; + unsigned char MALE:1; + unsigned char TMOE:1; + } BIT; + } ICFER; + union { + unsigned char BYTE; + struct { + unsigned char HOAE:1; + unsigned char :1; + unsigned char DIDE:1; + unsigned char :1; + unsigned char GCAE:1; + unsigned char SAR2E:1; + unsigned char SAR1E:1; + unsigned char SAR0E:1; + } BIT; + } ICSER; + union { + unsigned char BYTE; + struct { + unsigned char TIE:1; + unsigned char TEIE:1; + unsigned char RIE:1; + unsigned char NAKIE:1; + unsigned char SPIE:1; + unsigned char STIE:1; + unsigned char ALIE:1; + unsigned char TMOIE:1; + } BIT; + } ICIER; + union { + unsigned char BYTE; + struct { + unsigned char HOA:1; + unsigned char :1; + unsigned char DID:1; + unsigned char :1; + unsigned char GCA:1; + unsigned char AAS2:1; + unsigned char AAS1:1; + unsigned char AAS0:1; + } BIT; + } ICSR1; + union { + unsigned char BYTE; + struct { + unsigned char TDRE:1; + unsigned char TEND:1; + unsigned char RDRF:1; + unsigned char NACKF:1; + unsigned char STOP:1; + unsigned char START:1; + unsigned char AL:1; + unsigned char TMOF:1; + } BIT; + } ICSR2; + union { + unsigned char BYTE; + struct { + unsigned char SVA:7; + unsigned char SVA0:1; + } BIT; + } SARL0; + union { + unsigned char BYTE; + struct { + unsigned char :5; + unsigned char SVA:2; + unsigned char FS:1; + } BIT; + } SARU0; + union { + unsigned char BYTE; + struct { + unsigned char SVA:7; + unsigned char SVA0:1; + } BIT; + } SARL1; + union { + unsigned char BYTE; + struct { + unsigned char :5; + unsigned char SVA:2; + unsigned char FS:1; + } BIT; + } SARU1; + union { + unsigned char BYTE; + struct { + unsigned char SVA:7; + unsigned char SVA0:1; + } BIT; + } SARL2; + union { + unsigned char BYTE; + struct { + unsigned char :5; + unsigned char SVA:2; + unsigned char FS:1; + } BIT; + } SARU2; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char BRL:5; + } BIT; + } ICBRL; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char BRH:5; + } BIT; + } ICBRH; + unsigned char ICDRT; + unsigned char ICDRR; +}; + +struct st_rspi { + union { + unsigned char BYTE; + struct { + unsigned char SPRIE:1; + unsigned char SPE:1; + unsigned char SPTIE:1; + unsigned char SPEIE:1; + unsigned char MSTR:1; + unsigned char MODFEN:1; + unsigned char TXMD:1; + unsigned char SPMS:1; + } BIT; + } SPCR; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char SSL3P:1; + unsigned char SSL2P:1; + unsigned char SSL1P:1; + unsigned char SSL0P:1; + } BIT; + } SSLP; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char MOIFE:1; + unsigned char MOIFV:1; + unsigned char :1; + unsigned char SPOM:1; + unsigned char SPLP2:1; + unsigned char SPLP:1; + } BIT; + } SPPCR; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char PERF:1; + unsigned char MODF:1; + unsigned char IDLNF:1; + unsigned char OVRF:1; + } BIT; + } SPSR; + unsigned long SPDR; + union { + unsigned char BYTE; + struct { + unsigned char :5; + unsigned char SPSLN:3; + } BIT; + } SPSCR; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char SPECM:3; + unsigned char :1; + unsigned char SPCP:3; + } BIT; + } SPSSR; + union { + unsigned char BYTE; + struct { + unsigned char SPR7:1; + unsigned char SPR6:1; + unsigned char SPR5:1; + unsigned char SPR4:1; + unsigned char SPR3:1; + unsigned char SPR2:1; + unsigned char SPR1:1; + unsigned char SPR0:1; + } BIT; + } SPBR; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char SPLW:1; + unsigned char SPRDTD:1; + unsigned char SLSEL:2; + unsigned char SPFC:2; + } BIT; + } SPDCR; + union { + unsigned char BYTE; + struct { + unsigned char :5; + unsigned char SCKDL:3; + } BIT; + } SPCKD; + union { + unsigned char BYTE; + struct { + unsigned char :5; + unsigned char SLNDL:3; + } BIT; + } SSLND; + union { + unsigned char BYTE; + struct { + unsigned char :5; + unsigned char SPNDL:3; + } BIT; + } SPND; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char PTE:1; + unsigned char SPIIE:1; + unsigned char SPOE:1; + unsigned char SPPE:1; + } BIT; + } SPCR2; + union { + unsigned short WORD; + struct { + unsigned short SCKDEN:1; + unsigned short SLNDEN:1; + unsigned short SPNDEN:1; + unsigned short LSBF:1; + unsigned short SPB:4; + unsigned short SSLKP:1; + unsigned short SSLA:3; + unsigned short BRDV:2; + unsigned short CPOL:1; + unsigned short CPHA:1; + } BIT; + } SPCMD0; + union { + unsigned short WORD; + struct { + unsigned short SCKDEN:1; + unsigned short SLNDEN:1; + unsigned short SPNDEN:1; + unsigned short LSBF:1; + unsigned short SPB:4; + unsigned short SSLKP:1; + unsigned short SSLA:3; + unsigned short BRDV:2; + unsigned short CPOL:1; + unsigned short CPHA:1; + } BIT; + } SPCMD1; + union { + unsigned short WORD; + struct { + unsigned short SCKDEN:1; + unsigned short SLNDEN:1; + unsigned short SPNDEN:1; + unsigned short LSBF:1; + unsigned short SPB:4; + unsigned short SSLKP:1; + unsigned short SSLA:3; + unsigned short BRDV:2; + unsigned short CPOL:1; + unsigned short CPHA:1; + } BIT; + } SPCMD2; + union { + unsigned short WORD; + struct { + unsigned short SCKDEN:1; + unsigned short SLNDEN:1; + unsigned short SPNDEN:1; + unsigned short LSBF:1; + unsigned short SPB:4; + unsigned short SSLKP:1; + unsigned short SSLA:3; + unsigned short BRDV:2; + unsigned short CPOL:1; + unsigned short CPHA:1; + } BIT; + } SPCMD3; + union { + unsigned short WORD; + struct { + unsigned short SCKDEN:1; + unsigned short SLNDEN:1; + unsigned short SPNDEN:1; + unsigned short LSBF:1; + unsigned short SPB:4; + unsigned short SSLKP:1; + unsigned short SSLA:3; + unsigned short BRDV:2; + unsigned short CPOL:1; + unsigned short CPHA:1; + } BIT; + } SPCMD4; + union { + unsigned short WORD; + struct { + unsigned short SCKDEN:1; + unsigned short SLNDEN:1; + unsigned short SPNDEN:1; + unsigned short LSBF:1; + unsigned short SPB:4; + unsigned short SSLKP:1; + unsigned short SSLA:3; + unsigned short BRDV:2; + unsigned short CPOL:1; + unsigned short CPHA:1; + } BIT; + } SPCMD5; + union { + unsigned short WORD; + struct { + unsigned short SCKDEN:1; + unsigned short SLNDEN:1; + unsigned short SPNDEN:1; + unsigned short LSBF:1; + unsigned short SPB:4; + unsigned short SSLKP:1; + unsigned short SSLA:3; + unsigned short BRDV:2; + unsigned short CPOL:1; + unsigned short CPHA:1; + } BIT; + } SPCMD6; + union { + unsigned short WORD; + struct { + unsigned short SCKDEN:1; + unsigned short SLNDEN:1; + unsigned short SPNDEN:1; + unsigned short LSBF:1; + unsigned short SPB:4; + unsigned short SSLKP:1; + unsigned short SSLA:3; + unsigned short BRDV:2; + unsigned short CPOL:1; + unsigned short CPHA:1; + } BIT; + } SPCMD7; +}; + +struct st_rtc { + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char F1HZ:1; + unsigned char F2HZ:1; + unsigned char F4HZ:1; + unsigned char F8HZ:1; + unsigned char F16HZ:1; + unsigned char F32HZ:1; + unsigned char F64HZ:1; + } BIT; + } R64CNT; + char wk0[1]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char SEC10:3; + unsigned char SEC1:4; + } BIT; + } RSECCNT; + char wk1[1]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char MIN10:3; + unsigned char MIN1:4; + } BIT; + } RMINCNT; + char wk2[1]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char PM:1; + unsigned char HR10:2; + unsigned char HR1:4; + } BIT; + } RHRCNT; + char wk3[1]; + union { + unsigned char BYTE; + struct { + unsigned char :5; + unsigned char DAYW:3; + } BIT; + } RWKCNT; + char wk4[1]; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char DATE10:2; + unsigned char DATE1:4; + } BIT; + } RDAYCNT; + char wk5[1]; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char MON10:1; + unsigned char MON1:4; + } BIT; + } RMONCNT; + char wk6[1]; + union { + unsigned short WORD; + struct { + unsigned short :8; + unsigned short YR10:4; + unsigned short YR1:4; + } BIT; + } RYRCNT; + union { + unsigned char BYTE; + struct { + unsigned char ENB:1; + unsigned char SEC10:3; + unsigned char SEC1:4; + } BIT; + } RSECAR; + char wk7[1]; + union { + unsigned char BYTE; + struct { + unsigned char ENB:1; + unsigned char MIN10:3; + unsigned char MIN1:4; + } BIT; + } RMINAR; + char wk8[1]; + union { + unsigned char BYTE; + struct { + unsigned char ENB:1; + unsigned char PM:1; + unsigned char HR10:2; + unsigned char HR1:4; + } BIT; + } RHRAR; + char wk9[1]; + union { + unsigned char BYTE; + struct { + unsigned char ENB:1; + unsigned char :4; + unsigned char DAYW:3; + } BIT; + } RWKAR; + char wk10[1]; + union { + unsigned char BYTE; + struct { + unsigned char ENB:1; + unsigned char :1; + unsigned char DATE10:2; + unsigned char DATE1:4; + } BIT; + } RDAYAR; + char wk11[1]; + union { + unsigned char BYTE; + struct { + unsigned char ENB:1; + unsigned char :2; + unsigned char MON10:1; + unsigned char MON1:4; + } BIT; + } RMONAR; + char wk12[1]; + union { + unsigned short WORD; + struct { + unsigned short :8; + unsigned short YR10:4; + unsigned short YR1:4; + } BIT; + } RYRAR; + union { + unsigned char BYTE; + struct { + unsigned char ENB:1; + } BIT; + } RYRAREN; + char wk13[3]; + union { + unsigned char BYTE; + struct { + unsigned char PES:4; + unsigned char :1; + unsigned char PIE:1; + unsigned char CIE:1; + unsigned char AIE:1; + } BIT; + } RCR1; + char wk14[1]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char HR24:1; + unsigned char AADJP:1; + unsigned char AADJE:1; + unsigned char RTCOE:1; + unsigned char ADJ30:1; + unsigned char RESET:1; + unsigned char START:1; + } BIT; + } RCR2; + char wk15[1]; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char RTCEN:1; + } BIT; + } RCR3; + char wk16[1]; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char RCKSEL:1; + } BIT; + } RCR4; + char wk17[1]; + union { + unsigned short WORD; + struct { + unsigned short :15; + unsigned short RFC:1; + } BIT; + } RFRH; + union { + unsigned short WORD; + struct { + unsigned short RFC:16; + } BIT; + } RFRL; + union { + unsigned char BYTE; + struct { + unsigned char PMADJ:2; + unsigned char ADJ:6; + } BIT; + } RADJ; + char wk18[17]; + union { + unsigned char BYTE; + struct { + unsigned char TCEN:1; + unsigned char :1; + unsigned char TCNF:2; + unsigned char :1; + unsigned char TCST:1; + unsigned char TCCT:2; + } BIT; + } RTCCR0; + char wk19[1]; + union { + unsigned char BYTE; + struct { + unsigned char TCEN:1; + unsigned char :1; + unsigned char TCNF:2; + unsigned char :1; + unsigned char TCST:1; + unsigned char TCCT:2; + } BIT; + } RTCCR1; + char wk20[1]; + union { + unsigned char BYTE; + struct { + unsigned char TCEN:1; + unsigned char :1; + unsigned char TCNF:2; + unsigned char :1; + unsigned char TCST:1; + unsigned char TCCT:2; + } BIT; + } RTCCR2; + char wk21[13]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char SEC10:3; + unsigned char SEC1:4; + } BIT; + } RSECCP0; + char wk22[1]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char MIN10:3; + unsigned char MIN1:4; + } BIT; + } RMINCP0; + char wk23[1]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char PM:1; + unsigned char HR10:2; + unsigned char HR1:4; + } BIT; + } RHRCP0; + char wk24[3]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char DATE10:3; + unsigned char DATE1:4; + } BIT; + } RDAYCP0; + char wk25[1]; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char MON10:1; + unsigned char MON1:4; + } BIT; + } RMONCP0; + char wk26[5]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char SEC10:3; + unsigned char SEC1:4; + } BIT; + } RSECCP1; + char wk27[1]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char MIN10:3; + unsigned char MIN1:4; + } BIT; + } RMINCP1; + char wk28[1]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char PM:1; + unsigned char HR10:2; + unsigned char HR1:4; + } BIT; + } RHRCP1; + char wk29[3]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char DATE10:3; + unsigned char DATE1:4; + } BIT; + } RDAYCP1; + char wk30[1]; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char MON10:1; + unsigned char MON1:4; + } BIT; + } RMONCP1; + char wk31[5]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char SEC10:3; + unsigned char SEC1:4; + } BIT; + } RSECCP2; + char wk32[1]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char MIN10:3; + unsigned char MIN1:4; + } BIT; + } RMINCP2; + char wk33[1]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char PM:1; + unsigned char HR10:2; + unsigned char HR1:4; + } BIT; + } RHRCP2; + char wk34[3]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char DATE10:3; + unsigned char DATE1:4; + } BIT; + } RDAYCP2; + char wk35[1]; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char MON10:1; + unsigned char MON1:4; + } BIT; + } RMONCP2; +}; + +struct st_s12ad { + union { + unsigned char BYTE; + struct { + unsigned char ADST:1; + unsigned char ADCS:1; + unsigned char :1; + unsigned char ADIE:1; + unsigned char CKS:2; + unsigned char TRGE:1; + unsigned char EXTRG:1; + } BIT; + } ADCSR; + char wk0[3]; + union { + unsigned short WORD; + struct { + unsigned short ANS0:16; + } BIT; + } ADANS0; + union { + unsigned short WORD; + struct { + unsigned short :11; + unsigned short ANS1:5; + } BIT; + } ADANS1; + union { + unsigned short WORD; + struct { + unsigned short ADS0:16; + } BIT; + } ADADS0; + union { + unsigned short WORD; + struct { + unsigned short :11; + unsigned short ADS1:5; + } BIT; + } ADADS1; + union { + unsigned char BYTE; + struct { + unsigned char :6; + unsigned char ADC:2; + } BIT; + } ADADC; + char wk1[1]; + union { + unsigned short WORD; + struct { + unsigned short ADRFMT:1; + unsigned short :9; + unsigned short ACE:1; + } BIT; + } ADCER; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char ADSTRS:4; + } BIT; + } ADSTRGR; + char wk2[1]; + union { + unsigned short WORD; + struct { + unsigned short :6; + unsigned short OCS:1; + unsigned short TSS:1; + unsigned short :6; + unsigned short OCSAD:1; + unsigned short TSSAD:1; + } BIT; + } ADEXICR; + char wk3[6]; + unsigned short ADTSDR; + unsigned short ADOCDR; + char wk4[2]; + unsigned short ADDR0; + unsigned short ADDR1; + unsigned short ADDR2; + unsigned short ADDR3; + unsigned short ADDR4; + unsigned short ADDR5; + unsigned short ADDR6; + unsigned short ADDR7; + unsigned short ADDR8; + unsigned short ADDR9; + unsigned short ADDR10; + unsigned short ADDR11; + unsigned short ADDR12; + unsigned short ADDR13; + unsigned short ADDR14; + unsigned short ADDR15; + unsigned short ADDR16; + unsigned short ADDR17; + unsigned short ADDR18; + unsigned short ADDR19; + unsigned short ADDR20; + char wk5[38]; + union { + unsigned short WORD; + struct { + unsigned short SST2:8; + } BIT; + } ADSSTR23; +}; + +struct st_sci0 { + union { + unsigned char BYTE; + struct { + unsigned char CM:1; + unsigned char CHR:1; + unsigned char PE:1; + unsigned char PM:1; + unsigned char STOP:1; + unsigned char MP:1; + unsigned char CKS:2; + } BIT; + } SMR; + unsigned char BRR; + union { + unsigned char BYTE; + struct { + unsigned char TIE:1; + unsigned char RIE:1; + unsigned char TE:1; + unsigned char RE:1; + unsigned char MPIE:1; + unsigned char TEIE:1; + unsigned char CKE:2; + } BIT; + } SCR; + unsigned char TDR; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char ORER:1; + unsigned char FER:1; + unsigned char PER:1; + unsigned char TEND:1; + unsigned char MPB:1; + unsigned char MPBT:1; + } BIT; + } SSR; + unsigned char RDR; + union { + unsigned char BYTE; + struct { + unsigned char BCP2:1; + unsigned char :3; + unsigned char SDIR:1; + unsigned char SINV:1; + unsigned char :1; + unsigned char SMIF:1; + } BIT; + } SCMR; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char NFEN:1; + unsigned char ABCS:1; + unsigned char :3; + unsigned char ACS0:1; + } BIT; + } SEMR; + union { + unsigned char BYTE; + struct { + unsigned char :5; + unsigned char NFCS:3; + } BIT; + } SNFR; + union { + unsigned char BYTE; + struct { + unsigned char IICDL:5; + unsigned char :2; + unsigned char IICM:1; + } BIT; + } SIMR1; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char IICACKT:1; + unsigned char :3; + unsigned char IICCSC:1; + unsigned char IICINTM:1; + } BIT; + } SIMR2; + union { + unsigned char BYTE; + struct { + unsigned char IICSCLS:2; + unsigned char IICSDAS:2; + unsigned char IICSTIF:1; + unsigned char IICSTPREQ:1; + unsigned char IICRSTAREQ:1; + unsigned char IICSTAREQ:1; + } BIT; + } SIMR3; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char IICACKR:1; + } BIT; + } SISR; + union { + unsigned char BYTE; + struct { + unsigned char CKPH:1; + unsigned char CKPOL:1; + unsigned char :1; + unsigned char MFF:1; + unsigned char :1; + unsigned char MSS:1; + unsigned char CTSE:1; + unsigned char SSE:1; + } BIT; + } SPMR; +}; + +struct st_sci7 { + union { + unsigned char BYTE; + struct { + unsigned char CM:1; + unsigned char CHR:1; + unsigned char PE:1; + unsigned char PM:1; + unsigned char STOP:1; + unsigned char MP:1; + unsigned char CKS:2; + } BIT; + } SMR; + unsigned char BRR; + union { + unsigned char BYTE; + struct { + unsigned char TIE:1; + unsigned char RIE:1; + unsigned char TE:1; + unsigned char RE:1; + unsigned char MPIE:1; + unsigned char TEIE:1; + unsigned char CKE:2; + } BIT; + } SCR; + unsigned char TDR; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char ORER:1; + unsigned char FER:1; + unsigned char PER:1; + unsigned char TEND:1; + unsigned char MPB:1; + unsigned char MPBT:1; + } BIT; + } SSR; + union { + unsigned char BYTE; + struct { + unsigned char :6; + unsigned char MPB:1; + unsigned char MPBT:1; + } BIT; + } RDR; + union { + unsigned char BYTE; + struct { + unsigned char BCP2:1; + unsigned char :3; + unsigned char SDIR:1; + unsigned char SINV:1; + unsigned char :1; + unsigned char SMIF:1; + } BIT; + } SCMR; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char NFEN:1; + unsigned char ABCS:1; + unsigned char :3; + unsigned char ACS0:1; + } BIT; + } SEMR; + union { + unsigned char BYTE; + struct { + unsigned char :5; + unsigned char NFCS:3; + } BIT; + } SNFR; + union { + unsigned char BYTE; + struct { + unsigned char IICDL:5; + unsigned char :2; + unsigned char IICM:1; + } BIT; + } SIMR1; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char IICACKT:1; + unsigned char :3; + unsigned char IICCSC:1; + unsigned char IICINTM:1; + } BIT; + } SIMR2; + union { + unsigned char BYTE; + struct { + unsigned char IICSCLS:2; + unsigned char IICSDAS:2; + unsigned char IICSTIF:1; + unsigned char IICSTPREQ:1; + unsigned char IICRSTAREQ:1; + unsigned char IICSTAREQ:1; + } BIT; + } SIMR3; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char IICACKR:1; + } BIT; + } SISR; + union { + unsigned char BYTE; + struct { + unsigned char CKPH:1; + unsigned char CKPOL:1; + unsigned char :1; + unsigned char MFF:1; + unsigned char :1; + unsigned char MSS:1; + unsigned char CTSE:1; + unsigned char SSE:1; + } BIT; + } SPMR; +}; + +struct st_sci12 { + union { + unsigned char BYTE; + struct { + unsigned char CM:1; + unsigned char CHR:1; + unsigned char PE:1; + unsigned char PM:1; + unsigned char STOP:1; + unsigned char MP:1; + unsigned char CKS:2; + } BIT; + } SMR; + unsigned char BRR; + union { + unsigned char BYTE; + struct { + unsigned char TIE:1; + unsigned char RIE:1; + unsigned char TE:1; + unsigned char RE:1; + unsigned char MPIE:1; + unsigned char TEIE:1; + unsigned char CKE:2; + } BIT; + } SCR; + unsigned char TDR; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char ORER:1; + unsigned char FER:1; + unsigned char PER:1; + unsigned char TEND:1; + unsigned char MPB:1; + unsigned char MPBT:1; + } BIT; + } SSR; + unsigned char RDR; + union { + unsigned char BYTE; + struct { + unsigned char BCP2:1; + unsigned char :3; + unsigned char SDIR:1; + unsigned char SINV:1; + unsigned char :1; + unsigned char SMIF:1; + } BIT; + } SCMR; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char NFEN:1; + unsigned char ABCS:1; + unsigned char :3; + unsigned char ACS0:1; + } BIT; + } SEMR; + union { + unsigned char BYTE; + struct { + unsigned char :5; + unsigned char NFCS:3; + } BIT; + } SNFR; + union { + unsigned char BYTE; + struct { + unsigned char IICDL:5; + unsigned char :2; + unsigned char IICM:1; + } BIT; + } SIMR1; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char IICACKT:1; + unsigned char :3; + unsigned char IICCSC:1; + unsigned char IICINTM:1; + } BIT; + } SIMR2; + union { + unsigned char BYTE; + struct { + unsigned char IICSCLS:2; + unsigned char IICSDAS:2; + unsigned char IICSTIF:1; + unsigned char IICSTPREQ:1; + unsigned char IICRSTAREQ:1; + unsigned char IICSTAREQ:1; + } BIT; + } SIMR3; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char IICACKR:1; + } BIT; + } SISR; + union { + unsigned char BYTE; + struct { + unsigned char CKPH:1; + unsigned char CKPOL:1; + unsigned char :1; + unsigned char MFF:1; + unsigned char :1; + unsigned char MSS:1; + unsigned char CTSE:1; + unsigned char SSE:1; + } BIT; + } SPMR; + char wk0[18]; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char ESME:1; + } BIT; + } ESMER; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char BRME:1; + unsigned char RXDSF:1; + unsigned char SFSF:1; + } BIT; + } CR0; + union { + unsigned char BYTE; + struct { + unsigned char PIBS:3; + unsigned char PIBE:1; + unsigned char CF1DS:2; + unsigned char CF0RE:1; + unsigned char BFE:1; + } BIT; + } CR1; + union { + unsigned char BYTE; + struct { + unsigned char RTS:2; + unsigned char BCCS:2; + unsigned char :1; + unsigned char DFCS:3; + } BIT; + } CR2; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char SDST:1; + } BIT; + } CR3; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char SHARPS:1; + unsigned char :2; + unsigned char RXDXPS:1; + unsigned char TXDXPS:1; + } BIT; + } PCR; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char AEDIE:1; + unsigned char BCDIE:1; + unsigned char PIBDIE:1; + unsigned char CF1MIE:1; + unsigned char CF0MIE:1; + unsigned char BFDIE:1; + } BIT; + } ICR; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char AEDF:1; + unsigned char BCDF:1; + unsigned char PIBDF:1; + unsigned char CF1MF:1; + unsigned char CF0MF:1; + unsigned char BFDF:1; + } BIT; + } STR; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char AEDCL:1; + unsigned char BCDCL:1; + unsigned char PIBDCL:1; + unsigned char CF1MCL:1; + unsigned char CF0MCL:1; + unsigned char BFDCL:1; + } BIT; + } STCR; + unsigned char CF0DR; + union { + unsigned char BYTE; + struct { + unsigned char CF0CE7:1; + unsigned char CF0CE6:1; + unsigned char CF0CE5:1; + unsigned char CF0CE4:1; + unsigned char CF0CE3:1; + unsigned char CF0CE2:1; + unsigned char CF0CE1:1; + unsigned char CF0CE0:1; + } BIT; + } CF0CR; + unsigned char CF0RR; + unsigned char PCF1DR; + unsigned char SCF1DR; + union { + unsigned char BYTE; + struct { + unsigned char CF1CE7:1; + unsigned char CF1CE6:1; + unsigned char CF1CE5:1; + unsigned char CF1CE4:1; + unsigned char CF1CE3:1; + unsigned char CF1CE2:1; + unsigned char CF1CE1:1; + unsigned char CF1CE0:1; + } BIT; + } CF1CR; + unsigned char CF1RR; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char TCST:1; + } BIT; + } TCR; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char TCSS:3; + unsigned char TWRC:1; + unsigned char :1; + unsigned char TOMS:2; + } BIT; + } TMR; + unsigned char TPRE; + unsigned char TCNT; +}; + +struct st_smci0 { + union { + unsigned char BYTE; + struct { + unsigned char GM:1; + unsigned char BCLK:1; + unsigned char PE:1; + unsigned char PM:1; + unsigned char BCP:2; + unsigned char CKS:2; + } BIT; + } SMR; + unsigned char BRR; + union { + unsigned char BYTE; + struct { + unsigned char TIE:1; + unsigned char RIE:1; + unsigned char TE:1; + unsigned char RE:1; + unsigned char MPIE:1; + unsigned char TEIE:1; + unsigned char CKE:2; + } BIT; + } SCR; + unsigned char TDR; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char ORER:1; + unsigned char ERS:1; + unsigned char PER:1; + unsigned char TEND:1; + unsigned char MPB:1; + unsigned char MPBT:1; + } BIT; + } SSR; + unsigned char RDR; + union { + unsigned char BYTE; + struct { + unsigned char BCP2:1; + unsigned char :3; + unsigned char SDIR:1; + unsigned char SINV:1; + unsigned char :1; + unsigned char SMIF:1; + } BIT; + } SCMR; +}; + +struct st_smci7 { + union { + unsigned char BYTE; + struct { + unsigned char GM:1; + unsigned char BCLK:1; + unsigned char PE:1; + unsigned char PM:1; + unsigned char BCP:2; + unsigned char CKS:2; + } BIT; + } SMR; + unsigned char BRR; + union { + unsigned char BYTE; + struct { + unsigned char TIE:1; + unsigned char RIE:1; + unsigned char TE:1; + unsigned char RE:1; + unsigned char MPIE:1; + unsigned char TEIE:1; + unsigned char CKE:2; + } BIT; + } SCR; + unsigned char TDR; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char ORER:1; + unsigned char ERS:1; + unsigned char PER:1; + unsigned char TEND:1; + } BIT; + } SSR; + unsigned char RDR; + union { + unsigned char BYTE; + struct { + unsigned char BCP2:1; + unsigned char :3; + unsigned char SDIR:1; + unsigned char SINV:1; + unsigned char :1; + unsigned char SMIF:1; + } BIT; + } SCMR; +}; + +struct st_system { + union { + unsigned short WORD; + struct { + unsigned short :15; + unsigned short MD:1; + } BIT; + } MDMONR; + union { + unsigned short WORD; + struct { + unsigned short :10; + unsigned short UBTS:1; + unsigned short BOTS:1; + unsigned short :2; + unsigned short EXB:1; + unsigned short IROM:1; + } BIT; + } MDSR; + char wk0[2]; + union { + unsigned short WORD; + struct { + unsigned short KEY:8; + unsigned short :6; + unsigned short EXBE:1; + unsigned short ROME:1; + } BIT; + } SYSCR0; + union { + unsigned short WORD; + struct { + unsigned short :15; + unsigned short RAME:1; + } BIT; + } SYSCR1; + char wk1[2]; + union { + unsigned short WORD; + struct { + unsigned short SSBY:1; + unsigned short OPE:1; + } BIT; + } SBYCR; + char wk2[2]; + union { + unsigned long LONG; + struct { + unsigned long ACSE:1; + unsigned long :1; + unsigned long MSTPA29:1; + unsigned long MSTPA28:1; + unsigned long MSTPA27:1; + unsigned long :2; + unsigned long MSTPA24:1; + unsigned long MSTPA23:1; + unsigned long :3; + unsigned long MSTPA19:1; + unsigned long :1; + unsigned long MSTPA17:1; + unsigned long :1; + unsigned long MSTPA15:1; + unsigned long MSTPA14:1; + unsigned long MSTPA13:1; + unsigned long MSTPA12:1; + unsigned long MSTPA11:1; + unsigned long MSTPA10:1; + unsigned long MSTPA9:1; + unsigned long :3; + unsigned long MSTPA5:1; + unsigned long MSTPA4:1; + } BIT; + } MSTPCRA; + union { + unsigned long LONG; + struct { + unsigned long MSTPB31:1; + unsigned long MSTPB30:1; + unsigned long MSTPB29:1; + unsigned long MSTPB28:1; + unsigned long MSTPB27:1; + unsigned long MSTPB26:1; + unsigned long MSTPB25:1; + unsigned long MSTPB24:1; + unsigned long MSTPB23:1; + unsigned long :1; + unsigned long MSTPB21:1; + unsigned long MSTPB20:1; + unsigned long MSTPB19:1; + unsigned long MSTPB18:1; + unsigned long MSTPB17:1; + unsigned long MSTPB16:1; + unsigned long MSTPB15:1; + unsigned long :6; + unsigned long MSTPB8:1; + unsigned long :3; + unsigned long MSTPB4:1; + unsigned long :1; + unsigned long MSTPB2:1; + unsigned long MSTPB1:1; + unsigned long MSTPB0:1; + } BIT; + } MSTPCRB; + union { + unsigned long LONG; + struct { + unsigned long :4; + unsigned long MSTPC27:1; + unsigned long MSTPC26:1; + unsigned long MSTPC25:1; + unsigned long MSTPC24:1; + unsigned long :1; + unsigned long MSTPC22:1; + unsigned long :2; + unsigned long MSTPC19:1; + unsigned long MSTPC18:1; + unsigned long MSTPC17:1; + unsigned long MSTPC16:1; + unsigned long :14; + unsigned long MSTPC1:1; + unsigned long MSTPC0:1; + } BIT; + } MSTPCRC; + char wk3[4]; + union { + unsigned long LONG; + struct { + unsigned long FCK:4; + unsigned long ICK:4; + unsigned long PSTOP1:1; + unsigned long PSTOP0:1; + unsigned long :2; + unsigned long BCK:4; + unsigned long PCKA:4; + unsigned long PCKB:4; + } BIT; + } SCKCR; + union { + unsigned short WORD; + struct { + unsigned short :8; + unsigned short UCK:4; + unsigned short IEBCK:4; + } BIT; + } SCKCR2; + union { + unsigned short WORD; + struct { + unsigned short :5; + unsigned short CKSEL:3; + } BIT; + } SCKCR3; + union { + unsigned short WORD; + struct { + unsigned short :2; + unsigned short STC:6; + unsigned short :6; + unsigned short PLIDIV:2; + } BIT; + } PLLCR; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char PLLEN:1; + } BIT; + } PLLCR2; + char wk4[5]; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char BCLKDIV:1; + } BIT; + } BCKCR; + char wk5[1]; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char MOSTP:1; + } BIT; + } MOSCCR; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char SOSTP:1; + } BIT; + } SOSCCR; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char LCSTP:1; + } BIT; + } LOCOCR; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char ILCSTP:1; + } BIT; + } ILOCOCR; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char HCSTP:1; + } BIT; + } HOCOCR; + char wk6[9]; + union { + unsigned char BYTE; + struct { + unsigned char OSTDE:1; + unsigned char :6; + unsigned char OSTDIE:1; + } BIT; + } OSTDCR; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char OSTDF:1; + } BIT; + } OSTDSR; + char wk7[94]; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char OPCMTSF:1; + unsigned char :1; + unsigned char OPCM:3; + } BIT; + } OPCCR; + union { + unsigned char BYTE; + struct { + unsigned char RSTCKEN:1; + unsigned char :4; + unsigned char RSTCKSEL:3; + } BIT; + } RSTCKCR; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char MSTS:5; + } BIT; + } MOSCWTCR; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char SSTS:5; + } BIT; + } SOSCWTCR; + char wk8[2]; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char PSTS:5; + } BIT; + } PLLWTCR; + char wk9[25]; + union { + unsigned char BYTE; + struct { + unsigned char :5; + unsigned char SWRF:1; + unsigned char WDTRF:1; + unsigned char IWTDRF:1; + } BIT; + } RSTSR2; + char wk10[1]; + unsigned short SWRR; + char wk11[28]; + union { + unsigned char BYTE; + struct { + unsigned char :6; + unsigned char LVD1IDTSEL:2; + } BIT; + } LVD1CR1; + union { + unsigned char BYTE; + struct { + unsigned char :6; + unsigned char LVD1MON:1; + unsigned char LVD1DET:1; + } BIT; + } LVD1SR; + union { + unsigned char BYTE; + struct { + unsigned char :6; + unsigned char LVD2IDTSEL:2; + } BIT; + } LVD2CR1; + union { + unsigned char BYTE; + struct { + unsigned char :6; + unsigned char LVD2MON:1; + unsigned char LVD2DET:1; + } BIT; + } LVD2SR; + char wk12[794]; + union { + unsigned short WORD; + struct { + unsigned short PRKEY:8; + unsigned short :4; + unsigned short PRC3:1; + unsigned short :1; + unsigned short PRC1:1; + unsigned short PRC0:1; + } BIT; + } PRCR; + char wk13[48768]; + union { + unsigned char BYTE; + struct { + unsigned char DPSBY:1; + unsigned char IOKEEP:1; + unsigned char :4; + unsigned char DEEPCUT:2; + } BIT; + } DPSBYCR; + char wk14[1]; + union { + unsigned char BYTE; + struct { + unsigned char DIRQ7E:1; + unsigned char DIRQ6E:1; + unsigned char DIRQ5E:1; + unsigned char DIRQ4E:1; + unsigned char DIRQ3E:1; + unsigned char DIRQ2E:1; + unsigned char DIRQ1E:1; + unsigned char DIRQ0E:1; + } BIT; + } DPSIER0; + union { + unsigned char BYTE; + struct { + unsigned char DIRQ15E:1; + unsigned char DIRQ14E:1; + unsigned char DIRQ13E:1; + unsigned char DIRQ12E:1; + unsigned char DIRQ11E:1; + unsigned char DIRQ10E:1; + unsigned char DIRQ9E:1; + unsigned char DIRQ8E:1; + } BIT; + } DPSIER1; + union { + unsigned char BYTE; + struct { + unsigned char DUSBIE:1; + unsigned char DIICCIE:1; + unsigned char DIICDIE:1; + unsigned char DNMIE:1; + unsigned char DRTCAIE:1; + unsigned char DRTCIIE:1; + unsigned char DLVD2IE:1; + unsigned char DLVD1IE:1; + } BIT; + } DPSIER2; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char DCANIE:1; + } BIT; + } DPSIER3; + union { + unsigned char BYTE; + struct { + unsigned char DIRQ7F:1; + unsigned char DIRQ6F:1; + unsigned char DIRQ5F:1; + unsigned char DIRQ4F:1; + unsigned char DIRQ3F:1; + unsigned char DIRQ2F:1; + unsigned char DIRQ1F:1; + unsigned char DIRQ0F:1; + } BIT; + } DPSIFR0; + union { + unsigned char BYTE; + struct { + unsigned char DIRQ15F:1; + unsigned char DIRQ14F:1; + unsigned char DIRQ13F:1; + unsigned char DIRQ12F:1; + unsigned char DIRQ11F:1; + unsigned char DIRQ10F:1; + unsigned char DIRQ9F:1; + unsigned char DIRQ8F:1; + } BIT; + } DPSIFR1; + union { + unsigned char BYTE; + struct { + unsigned char DUSBIF:1; + unsigned char DIICCIF:1; + unsigned char DIICDIF:1; + unsigned char DNMIF:1; + unsigned char DRTCAIF:1; + unsigned char DRTCIIF:1; + unsigned char DLVD2IF:1; + unsigned char DLVD1IF:1; + } BIT; + } DPSIFR2; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char DCANIF:1; + } BIT; + } DPSIFR3; + union { + unsigned char BYTE; + struct { + unsigned char DIRQ7EG:1; + unsigned char DIRQ6EG:1; + unsigned char DIRQ5EG:1; + unsigned char DIRQ4EG:1; + unsigned char DIRQ3EG:1; + unsigned char DIRQ2EG:1; + unsigned char DIRQ1EG:1; + unsigned char DIRQ0EG:1; + } BIT; + } DPSIEGR0; + union { + unsigned char BYTE; + struct { + unsigned char DIRQ15EG:1; + unsigned char DIRQ14EG:1; + unsigned char DIRQ13EG:1; + unsigned char DIRQ12EG:1; + unsigned char DIRQ11EG:1; + unsigned char DIRQ10EG:1; + unsigned char DIRQ9EG:1; + unsigned char DIRQ8EG:1; + } BIT; + } DPSIEGR1; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char DIICCEG:1; + unsigned char DIICDEG:1; + unsigned char DNMIEG:1; + unsigned char :2; + unsigned char DLVD2EG:1; + unsigned char DLVD1EG:1; + } BIT; + } DPSIEGR2; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char DCANIEG:1; + } BIT; + } DPSIEGR3; + char wk15[2]; + union { + unsigned char BYTE; + struct { + unsigned char DPSRSTF:1; + unsigned char :3; + unsigned char LVD2RF:1; + unsigned char LVD1RF:1; + unsigned char LVD0RF:1; + unsigned char PORF:1; + } BIT; + } RSTSR0; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char CWSF:1; + } BIT; + } RSTSR1; + char wk16[1]; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char MOFXIN:1; + } BIT; + } MOFCR; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char HOCOPCNT:1; + } BIT; + } HOCOPCR; + char wk17[2]; + union { + unsigned char BYTE; + struct { + unsigned char :1; + unsigned char LVD2E:1; + unsigned char LVD1E:1; + } BIT; + } LVCMPCR; + union { + unsigned char BYTE; + struct { + unsigned char LVD2LVL:4; + unsigned char LVD1LVL:4; + } BIT; + } LVDLVLR; + char wk18[1]; + union { + unsigned char BYTE; + struct { + unsigned char LVD1RN:1; + unsigned char LVD1RI:1; + unsigned char LVD1FSAMP:2; + unsigned char :1; + unsigned char LVD1CMPE:1; + unsigned char LVD1DFDIS:1; + unsigned char LVD1RIE:1; + } BIT; + } LVD1CR0; + union { + unsigned char BYTE; + struct { + unsigned char LVD2RN:1; + unsigned char LVD2RI:1; + unsigned char LVD2FSAMP:2; + unsigned char :1; + unsigned char LVD2CMPE:1; + unsigned char LVD2DFDIS:1; + unsigned char LVD2RIE:1; + } BIT; + } LVD2CR0; + char wk19[1]; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char VBATTMNSEL:1; + } BIT; + } VBATTMNSELR; + union { + unsigned char BYTE; + struct { + unsigned char :7; + unsigned char VBATTMON:1; + } BIT; + } VBATTMONR; + char wk20[1]; + unsigned char DPSBKR[32]; + char wk21[1472]; + union { + unsigned char BYTE; + struct { + unsigned char :6; + unsigned char SCK:2; + } BIT; + } SCK1; + char wk22[15]; + union { + unsigned char BYTE; + struct { + unsigned char :6; + unsigned char SCK:2; + } BIT; + } SCK2; +}; + +struct st_temps { + union { + unsigned char BYTE; + struct { + unsigned char TSEN:1; + unsigned char :2; + unsigned char TSOE:1; + } BIT; + } TSCR; +}; + +struct st_tmr0 { + union { + unsigned char BYTE; + struct { + unsigned char CMIEB:1; + unsigned char CMIEA:1; + unsigned char OVIE:1; + unsigned char CCLR:2; + } BIT; + } TCR; + char wk0[1]; + union { + unsigned char BYTE; + struct { + unsigned char :3; + unsigned char ADTE:1; + unsigned char OSB:2; + unsigned char OSA:2; + } BIT; + } TCSR; + char wk1[1]; + unsigned char TCORA; + char wk2[1]; + unsigned char TCORB; + char wk3[1]; + unsigned char TCNT; + char wk4[1]; + union { + unsigned char BYTE; + struct { + unsigned char TMRIS:1; + unsigned char :2; + unsigned char CSS:2; + unsigned char CKS:3; + } BIT; + } TCCR; +}; + +struct st_tmr1 { + union { + unsigned char BYTE; + struct { + unsigned char CMIEB:1; + unsigned char CMIEA:1; + unsigned char OVIE:1; + unsigned char CCLR:2; + } BIT; + } TCR; + char wk0[1]; + union { + unsigned char BYTE; + struct { + unsigned char :4; + unsigned char OSB:2; + unsigned char OSA:2; + } BIT; + } TCSR; + char wk1[1]; + unsigned char TCORA; + char wk2[1]; + unsigned char TCORB; + char wk3[1]; + unsigned char TCNT; + char wk4[1]; + union { + unsigned char BYTE; + struct { + unsigned char TMRIS:1; + unsigned char :2; + unsigned char CSS:2; + unsigned char CKS:3; + } BIT; + } TCCR; +}; + +struct st_tmr01 { + unsigned short TCORA; + unsigned short TCORB; + unsigned short TCNT; + unsigned short TCCR; +}; + +struct st_tpu0 { + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char NFCS:2; + unsigned char NFDEN:1; + unsigned char NFCEN:1; + unsigned char NFBEN:1; + unsigned char NFAEN:1; + } BIT; + } NFCR; + char wk0[7]; + union { + unsigned char BYTE; + struct { + unsigned char CCLR:3; + unsigned char CKEG:2; + unsigned char TPSC:3; + } BIT; + } TCR; + union { + unsigned char BYTE; + struct { + unsigned char ICSELD:1; + unsigned char ICSELB:1; + unsigned char BFB:1; + unsigned char BFA:1; + unsigned char MD:4; + } BIT; + } TMDR; + union { + unsigned char BYTE; + struct { + unsigned char IOB:4; + unsigned char IOA:4; + } BIT; + } TIORH; + union { + unsigned char BYTE; + struct { + unsigned char IOD:4; + unsigned char IOC:4; + } BIT; + } TIORL; + union { + unsigned char BYTE; + struct { + unsigned char TTGE:1; + unsigned char :1; + unsigned char TCIEU:1; + unsigned char TCIEV:1; + unsigned char TGIED:1; + unsigned char TGIEC:1; + unsigned char TGIEB:1; + unsigned char TGIEA:1; + } BIT; + } TIER; + union { + unsigned char BYTE; + struct { + unsigned char TCFD:1; + unsigned char :1; + unsigned char TCFU:1; + unsigned char TCFV:1; + unsigned char TGFD:1; + unsigned char TGFC:1; + unsigned char TGFB:1; + unsigned char TGFA:1; + } BIT; + } TSR; + unsigned short TCNT; + unsigned short TGRA; + unsigned short TGRB; + unsigned short TGRC; + unsigned short TGRD; +}; + +struct st_tpu1 { + char wk0[1]; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char NFCS:2; + unsigned char NFDEN:1; + unsigned char NFCEN:1; + unsigned char NFBEN:1; + unsigned char NFAEN:1; + } BIT; + } NFCR; + char wk1[22]; + union { + unsigned char BYTE; + struct { + unsigned char CCLR:3; + unsigned char CKEG:2; + unsigned char TPSC:3; + } BIT; + } TCR; + union { + unsigned char BYTE; + struct { + unsigned char ICSELD:1; + unsigned char ICSELB:1; + unsigned char BFB:1; + unsigned char BFA:1; + unsigned char MD:4; + } BIT; + } TMDR; + union { + unsigned char BYTE; + struct { + unsigned char IOB:4; + unsigned char IOA:4; + } BIT; + } TIOR; + char wk2[1]; + union { + unsigned char BYTE; + struct { + unsigned char TTGE:1; + unsigned char :1; + unsigned char TCIEU:1; + unsigned char TCIEV:1; + unsigned char TGIED:1; + unsigned char TGIEC:1; + unsigned char TGIEB:1; + unsigned char TGIEA:1; + } BIT; + } TIER; + union { + unsigned char BYTE; + struct { + unsigned char TCFD:1; + unsigned char :1; + unsigned char TCFU:1; + unsigned char TCFV:1; + unsigned char TGFD:1; + unsigned char TGFC:1; + unsigned char TGFB:1; + unsigned char TGFA:1; + } BIT; + } TSR; + unsigned short TCNT; + unsigned short TGRA; + unsigned short TGRB; +}; + +struct st_tpu2 { + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char NFCS:2; + unsigned char NFDEN:1; + unsigned char NFCEN:1; + unsigned char NFBEN:1; + unsigned char NFAEN:1; + } BIT; + } NFCR; + char wk0[37]; + union { + unsigned char BYTE; + struct { + unsigned char CCLR:3; + unsigned char CKEG:2; + unsigned char TPSC:3; + } BIT; + } TCR; + union { + unsigned char BYTE; + struct { + unsigned char ICSELD:1; + unsigned char ICSELB:1; + unsigned char BFB:1; + unsigned char BFA:1; + unsigned char MD:4; + } BIT; + } TMDR; + union { + unsigned char BYTE; + struct { + unsigned char IOB:4; + unsigned char IOA:4; + } BIT; + } TIOR; + char wk1[1]; + union { + unsigned char BYTE; + struct { + unsigned char TTGE:1; + unsigned char :1; + unsigned char TCIEU:1; + unsigned char TCIEV:1; + unsigned char TGIED:1; + unsigned char TGIEC:1; + unsigned char TGIEB:1; + unsigned char TGIEA:1; + } BIT; + } TIER; + union { + unsigned char BYTE; + struct { + unsigned char TCFD:1; + unsigned char :1; + unsigned char TCFU:1; + unsigned char TCFV:1; + unsigned char TGFD:1; + unsigned char TGFC:1; + unsigned char TGFB:1; + unsigned char TGFA:1; + } BIT; + } TSR; + unsigned short TCNT; + unsigned short TGRA; + unsigned short TGRB; +}; + +struct st_tpu3 { + char wk0[1]; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char NFCS:2; + unsigned char NFDEN:1; + unsigned char NFCEN:1; + unsigned char NFBEN:1; + unsigned char NFAEN:1; + } BIT; + } NFCR; + char wk1[52]; + union { + unsigned char BYTE; + struct { + unsigned char CCLR:3; + unsigned char CKEG:2; + unsigned char TPSC:3; + } BIT; + } TCR; + union { + unsigned char BYTE; + struct { + unsigned char ICSELD:1; + unsigned char ICSELB:1; + unsigned char BFB:1; + unsigned char BFA:1; + unsigned char MD:4; + } BIT; + } TMDR; + union { + unsigned char BYTE; + struct { + unsigned char IOB:4; + unsigned char IOA:4; + } BIT; + } TIORH; + union { + unsigned char BYTE; + struct { + unsigned char IOD:4; + unsigned char IOC:4; + } BIT; + } TIORL; + union { + unsigned char BYTE; + struct { + unsigned char TTGE:1; + unsigned char :1; + unsigned char TCIEU:1; + unsigned char TCIEV:1; + unsigned char TGIED:1; + unsigned char TGIEC:1; + unsigned char TGIEB:1; + unsigned char TGIEA:1; + } BIT; + } TIER; + union { + unsigned char BYTE; + struct { + unsigned char TCFD:1; + unsigned char :1; + unsigned char TCFU:1; + unsigned char TCFV:1; + unsigned char TGFD:1; + unsigned char TGFC:1; + unsigned char TGFB:1; + unsigned char TGFA:1; + } BIT; + } TSR; + unsigned short TCNT; + unsigned short TGRA; + unsigned short TGRB; + unsigned short TGRC; + unsigned short TGRD; +}; + +struct st_tpu4 { + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char NFCS:2; + unsigned char NFDEN:1; + unsigned char NFCEN:1; + unsigned char NFBEN:1; + unsigned char NFAEN:1; + } BIT; + } NFCR; + char wk0[67]; + union { + unsigned char BYTE; + struct { + unsigned char CCLR:3; + unsigned char CKEG:2; + unsigned char TPSC:3; + } BIT; + } TCR; + union { + unsigned char BYTE; + struct { + unsigned char ICSELD:1; + unsigned char ICSELB:1; + unsigned char BFB:1; + unsigned char BFA:1; + unsigned char MD:4; + } BIT; + } TMDR; + union { + unsigned char BYTE; + struct { + unsigned char IOB:4; + unsigned char IOA:4; + } BIT; + } TIOR; + char wk1[1]; + union { + unsigned char BYTE; + struct { + unsigned char TTGE:1; + unsigned char :1; + unsigned char TCIEU:1; + unsigned char TCIEV:1; + unsigned char TGIED:1; + unsigned char TGIEC:1; + unsigned char TGIEB:1; + unsigned char TGIEA:1; + } BIT; + } TIER; + union { + unsigned char BYTE; + struct { + unsigned char TCFD:1; + unsigned char :1; + unsigned char TCFU:1; + unsigned char TCFV:1; + unsigned char TGFD:1; + unsigned char TGFC:1; + unsigned char TGFB:1; + unsigned char TGFA:1; + } BIT; + } TSR; + unsigned short TCNT; + unsigned short TGRA; + unsigned short TGRB; +}; + +struct st_tpu5 { + char wk0[1]; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char NFCS:2; + unsigned char NFDEN:1; + unsigned char NFCEN:1; + unsigned char NFBEN:1; + unsigned char NFAEN:1; + } BIT; + } NFCR; + char wk1[82]; + union { + unsigned char BYTE; + struct { + unsigned char CCLR:3; + unsigned char CKEG:2; + unsigned char TPSC:3; + } BIT; + } TCR; + union { + unsigned char BYTE; + struct { + unsigned char ICSELD:1; + unsigned char ICSELB:1; + unsigned char BFB:1; + unsigned char BFA:1; + unsigned char MD:4; + } BIT; + } TMDR; + union { + unsigned char BYTE; + struct { + unsigned char IOB:4; + unsigned char IOA:4; + } BIT; + } TIOR; + char wk2[1]; + union { + unsigned char BYTE; + struct { + unsigned char TTGE:1; + unsigned char :1; + unsigned char TCIEU:1; + unsigned char TCIEV:1; + unsigned char TGIED:1; + unsigned char TGIEC:1; + unsigned char TGIEB:1; + unsigned char TGIEA:1; + } BIT; + } TIER; + union { + unsigned char BYTE; + struct { + unsigned char TCFD:1; + unsigned char :1; + unsigned char TCFU:1; + unsigned char TCFV:1; + unsigned char TGFD:1; + unsigned char TGFC:1; + unsigned char TGFB:1; + unsigned char TGFA:1; + } BIT; + } TSR; + unsigned short TCNT; + unsigned short TGRA; + unsigned short TGRB; +}; + +struct st_tpua { + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char CST5:1; + unsigned char CST4:1; + unsigned char CST3:1; + unsigned char CST2:1; + unsigned char CST1:1; + unsigned char CST0:1; + } BIT; + } TSTR; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char SYNC5:1; + unsigned char SYNC4:1; + unsigned char SYNC3:1; + unsigned char SYNC2:1; + unsigned char SYNC1:1; + unsigned char SYNC0:1; + } BIT; + } TSYR; +}; + +struct st_tpub { + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char CST11:1; + unsigned char CST10:1; + unsigned char CST9:1; + unsigned char CST8:1; + unsigned char CST7:1; + unsigned char CST6:1; + } BIT; + } TSTR; + union { + unsigned char BYTE; + struct { + unsigned char :2; + unsigned char SYNC11:1; + unsigned char SYNC10:1; + unsigned char SYNC9:1; + unsigned char SYNC8:1; + unsigned char SYNC7:1; + unsigned char SYNC6:1; + } BIT; + } TSYR; +}; + +struct st_usb { + union { + unsigned long LONG; + struct { + unsigned long DVSTS1:1; + unsigned long :5; + unsigned long DM1:1; + unsigned long DP1:1; + unsigned long DVBSTS0:1; + unsigned long :1; + unsigned long DOVCB0:1; + unsigned long DOVCA0:1; + unsigned long :2; + unsigned long DM0:1; + unsigned long DP0:1; + unsigned long :3; + unsigned long FIXPHY1:1; + unsigned long :3; + unsigned long SRPC1:1; + unsigned long :3; + unsigned long FIXPHY0:1; + unsigned long :3; + unsigned long SRPC0:1; + } BIT; + } DPUSR0R; + union { + unsigned long LONG; + struct { + unsigned long DVBINT1:1; + unsigned long :5; + unsigned long DMINT1:1; + unsigned long DPINT1:1; + unsigned long DVBINT0:1; + unsigned long :1; + unsigned long DOVRCRB0:1; + unsigned long DOVRCRA0:1; + unsigned long :2; + unsigned long DMINT0:1; + unsigned long DPINT0:1; + unsigned long DVBSE1:1; + unsigned long :5; + unsigned long DMINTE1:1; + unsigned long DPINTE1:1; + unsigned long DVBSE0:1; + unsigned long :1; + unsigned long DOVRCRBE0:1; + unsigned long DOVRCRAE0:1; + unsigned long :2; + unsigned long DMINTE0:1; + unsigned long DPINTE0:1; + } BIT; + } DPUSR1R; +}; + +struct st_usb0 { + union { + unsigned short WORD; + struct { + unsigned short :5; + unsigned short SCKE:1; + unsigned short :3; + unsigned short DCFM:1; + unsigned short DRPD:1; + unsigned short DPRPU:1; + unsigned short :3; + unsigned short USBE:1; + } BIT; + } SYSCFG; + char wk0[2]; + union { + unsigned short WORD; + struct { + unsigned short OVCMON:2; + unsigned short :7; + unsigned short HTACT:1; + unsigned short :3; + unsigned short IDMON:1; + unsigned short LNST:2; + } BIT; + } SYSSTS0; + char wk1[2]; + union { + unsigned short WORD; + struct { + unsigned short :4; + unsigned short HNPBTOA:1; + unsigned short EXICEN:1; + unsigned short VBUSEN:1; + unsigned short WKUP:1; + unsigned short RWUPE:1; + unsigned short USBRST:1; + unsigned short RESUME:1; + unsigned short UACT:1; + unsigned short :1; + unsigned short RHST:3; + } BIT; + } DVSTCTR0; + char wk2[10]; + unsigned short CFIFO; + char wk3[2]; + unsigned short D0FIFO; + char wk4[2]; + unsigned short D1FIFO; + char wk5[2]; + union { + unsigned short WORD; + struct { + unsigned short RCNT:1; + unsigned short REW:1; + unsigned short :3; + unsigned short MBW:1; + unsigned short :1; + unsigned short BIGEND:1; + unsigned short :2; + unsigned short ISEL:1; + unsigned short :1; + unsigned short CURPIPE:4; + } BIT; + } CFIFOSEL; + union { + unsigned short WORD; + struct { + unsigned short BVAL:1; + unsigned short BCLR:1; + unsigned short FRDY:1; + unsigned short :4; + unsigned short DTLN:9; + } BIT; + } CFIFOCTR; + char wk6[4]; + union { + unsigned short WORD; + struct { + unsigned short RCNT:1; + unsigned short REW:1; + unsigned short DCLRM:1; + unsigned short DREQE:1; + unsigned short :1; + unsigned short MBW:1; + unsigned short :1; + unsigned short BIGEND:1; + unsigned short :4; + unsigned short CURPIPE:4; + } BIT; + } D0FIFOSEL; + union { + unsigned short WORD; + struct { + unsigned short BVAL:1; + unsigned short BCLR:1; + unsigned short FRDY:1; + unsigned short :4; + unsigned short DTLN:9; + } BIT; + } D0FIFOCTR; + union { + unsigned short WORD; + struct { + unsigned short RCNT:1; + unsigned short REW:1; + unsigned short DCLRM:1; + unsigned short DREQE:1; + unsigned short :1; + unsigned short MBW:1; + unsigned short :1; + unsigned short BIGEND:1; + unsigned short :4; + unsigned short CURPIPE:4; + } BIT; + } D1FIFOSEL; + union { + unsigned short WORD; + struct { + unsigned short BVAL:1; + unsigned short BCLR:1; + unsigned short FRDY:1; + unsigned short :4; + unsigned short DTLN:9; + } BIT; + } D1FIFOCTR; + union { + unsigned short WORD; + struct { + unsigned short VBSE:1; + unsigned short RSME:1; + unsigned short SOFE:1; + unsigned short DVSE:1; + unsigned short CTRE:1; + unsigned short BEMPE:1; + unsigned short NRDYE:1; + unsigned short BRDYE:1; + } BIT; + } INTENB0; + union { + unsigned short WORD; + struct { + unsigned short OVRCRE:1; + unsigned short BCHGE:1; + unsigned short :1; + unsigned short DTCHE:1; + unsigned short ATTCHE:1; + unsigned short :4; + unsigned short EOFERRE:1; + unsigned short SIGNE:1; + unsigned short SACKE:1; + } BIT; + } INTENB1; + char wk7[2]; + union { + unsigned short WORD; + struct { + unsigned short :6; + unsigned short PIPE9BRDYE:1; + unsigned short PIPE8BRDYE:1; + unsigned short PIPE7BRDYE:1; + unsigned short PIPE6BRDYE:1; + unsigned short PIPE5BRDYE:1; + unsigned short PIPE4BRDYE:1; + unsigned short PIPE3BRDYE:1; + unsigned short PIPE2BRDYE:1; + unsigned short PIPE1BRDYE:1; + unsigned short PIPE0BRDYE:1; + } BIT; + } BRDYENB; + union { + unsigned short WORD; + struct { + unsigned short :6; + unsigned short PIPE9NRDYE:1; + unsigned short PIPE8NRDYE:1; + unsigned short PIPE7NRDYE:1; + unsigned short PIPE6NRDYE:1; + unsigned short PIPE5NRDYE:1; + unsigned short PIPE4NRDYE:1; + unsigned short PIPE3NRDYE:1; + unsigned short PIPE2NRDYE:1; + unsigned short PIPE1NRDYE:1; + unsigned short PIPE0NRDYE:1; + } BIT; + } NRDYENB; + union { + unsigned short WORD; + struct { + unsigned short :6; + unsigned short PIPE9BEMPE:1; + unsigned short PIPE8BEMPE:1; + unsigned short PIPE7BEMPE:1; + unsigned short PIPE6BEMPE:1; + unsigned short PIPE5BEMPE:1; + unsigned short PIPE4BEMPE:1; + unsigned short PIPE3BEMPE:1; + unsigned short PIPE2BEMPE:1; + unsigned short PIPE1BEMPE:1; + unsigned short PIPE0BEMPE:1; + } BIT; + } BEMPENB; + union { + unsigned short WORD; + struct { + unsigned short :7; + unsigned short TRNENSEL:1; + unsigned short :1; + unsigned short BRDYM:1; + unsigned short :1; + unsigned short EDGESTS:1; + } BIT; + } SOFCFG; + char wk8[2]; + union { + unsigned short WORD; + struct { + unsigned short VBINT:1; + unsigned short RESM:1; + unsigned short SOFR:1; + unsigned short DVST:1; + unsigned short CTRT:1; + unsigned short BEMP:1; + unsigned short NRDY:1; + unsigned short BRDY:1; + unsigned short VBSTS:1; + unsigned short DVSQ:3; + unsigned short VALID:1; + unsigned short CTSQ:3; + } BIT; + } INTSTS0; + union { + unsigned short WORD; + struct { + unsigned short OVRCR:1; + unsigned short BCHG:1; + unsigned short :1; + unsigned short DTCH:1; + unsigned short ATTCH:1; + unsigned short :4; + unsigned short EOFERR:1; + unsigned short SIGN:1; + unsigned short SACK:1; + } BIT; + } INTSTS1; + char wk9[2]; + union { + unsigned short WORD; + struct { + unsigned short :6; + unsigned short PIPE9BRDY:1; + unsigned short PIPE8BRDY:1; + unsigned short PIPE7BRDY:1; + unsigned short PIPE6BRDY:1; + unsigned short PIPE5BRDY:1; + unsigned short PIPE4BRDY:1; + unsigned short PIPE3BRDY:1; + unsigned short PIPE2BRDY:1; + unsigned short PIPE1BRDY:1; + unsigned short PIPE0BRDY:1; + } BIT; + } BRDYSTS; + union { + unsigned short WORD; + struct { + unsigned short :6; + unsigned short PIPE9NRDYE:1; + unsigned short PIPE8NRDYE:1; + unsigned short PIPE7NRDYE:1; + unsigned short PIPE6NRDYE:1; + unsigned short PIPE5NRDYE:1; + unsigned short PIPE4NRDYE:1; + unsigned short PIPE3NRDYE:1; + unsigned short PIPE2NRDYE:1; + unsigned short PIPE1NRDYE:1; + unsigned short PIPE0NRDYE:1; + } BIT; + } NRDYSTS; + union { + unsigned short WORD; + struct { + unsigned short :6; + unsigned short PIPE9BEMPE:1; + unsigned short PIPE8BEMPE:1; + unsigned short PIPE7BENP:1; + unsigned short PIPE6BENP:1; + unsigned short PIPE5BENP:1; + unsigned short PIPE4BENP:1; + unsigned short PIPE3BENP:1; + unsigned short PIPE2BENP:1; + unsigned short PIPE1BENP:1; + unsigned short PIPE0BENP:1; + } BIT; + } BEMPSTS; + union { + unsigned short WORD; + struct { + unsigned short OVRN:1; + unsigned short CRCE:1; + unsigned short :3; + unsigned short FRNM:11; + } BIT; + } FRMNUM; + union { + unsigned short WORD; + struct { + unsigned short DVCHG:1; + } BIT; + } DVCHGR; + union { + unsigned short WORD; + struct { + unsigned short :4; + unsigned short STSRECOV:4; + unsigned short :1; + unsigned short USBADDR:7; + } BIT; + } USBADDR; + char wk10[2]; + union { + unsigned short WORD; + struct { + unsigned short BREQUEST:8; + unsigned short BMREQUESTTYPE:8; + } BIT; + } USBREQ; + unsigned short USBVAL; + unsigned short USBINDX; + unsigned short USBLENG; + union { + unsigned short WORD; + struct { + unsigned short :8; + unsigned short SHTNAK:1; + unsigned short :2; + unsigned short DIR:1; + } BIT; + } DCPCFG; + union { + unsigned short WORD; + struct { + unsigned short DEVSEL:4; + unsigned short :5; + unsigned short MXPS:7; + } BIT; + } DCPMAXP; + union { + unsigned short WORD; + struct { + unsigned short BSTS:1; + unsigned short SUREQ:1; + unsigned short :2; + unsigned short SUREQCLR:1; + unsigned short :2; + unsigned short SQCLR:1; + unsigned short SQSET:1; + unsigned short SQMON:1; + unsigned short PBUSY:1; + unsigned short :2; + unsigned short CCPL:1; + unsigned short PID:2; + } BIT; + } DCPCTR; + char wk11[2]; + union { + unsigned short WORD; + struct { + unsigned short :12; + unsigned short PIPESEL:4; + } BIT; + } PIPESEL; + char wk12[2]; + union { + unsigned short WORD; + struct { + unsigned short TYPE:2; + unsigned short :3; + unsigned short BFRE:1; + unsigned short DBLB:1; + unsigned short :1; + unsigned short SHTNAK:1; + unsigned short :2; + unsigned short DIR:1; + unsigned short EPNUM:4; + } BIT; + } PIPECFG; + char wk13[2]; + union { + unsigned short WORD; + struct { + unsigned short DEVSEL:4; + unsigned short :3; + unsigned short MXPS:9; + } BIT; + } PIPEMAXP; + union { + unsigned short WORD; + struct { + unsigned short :3; + unsigned short IFIS:1; + unsigned short :9; + unsigned short IITV:3; + } BIT; + } PIPEPERI; + union { + unsigned short WORD; + struct { + unsigned short BSTS:1; + unsigned short INBUFM:1; + unsigned short :3; + unsigned short ATREPM:1; + unsigned short ACLRM:1; + unsigned short SQCLR:1; + unsigned short SQSET:1; + unsigned short SQMON:1; + unsigned short PBUSY:1; + unsigned short :3; + unsigned short PID:2; + } BIT; + } PIPE1CTR; + union { + unsigned short WORD; + struct { + unsigned short BSTS:1; + unsigned short INBUFM:1; + unsigned short :3; + unsigned short ATREPM:1; + unsigned short ACLRM:1; + unsigned short SQCLR:1; + unsigned short SQSET:1; + unsigned short SQMON:1; + unsigned short PBUSY:1; + unsigned short :3; + unsigned short PID:2; + } BIT; + } PIPE2CTR; + union { + unsigned short WORD; + struct { + unsigned short BSTS:1; + unsigned short INBUFM:1; + unsigned short :3; + unsigned short ATREPM:1; + unsigned short ACLRM:1; + unsigned short SQCLR:1; + unsigned short SQSET:1; + unsigned short SQMON:1; + unsigned short PBUSY:1; + unsigned short :3; + unsigned short PID:2; + } BIT; + } PIPE3CTR; + union { + unsigned short WORD; + struct { + unsigned short BSTS:1; + unsigned short INBUFM:1; + unsigned short :3; + unsigned short ATREPM:1; + unsigned short ACLRM:1; + unsigned short SQCLR:1; + unsigned short SQSET:1; + unsigned short SQMON:1; + unsigned short PBUSY:1; + unsigned short :3; + unsigned short PID:2; + } BIT; + } PIPE4CTR; + union { + unsigned short WORD; + struct { + unsigned short BSTS:1; + unsigned short INBUFM:1; + unsigned short :3; + unsigned short ATREPM:1; + unsigned short ACLRM:1; + unsigned short SQCLR:1; + unsigned short SQSET:1; + unsigned short SQMON:1; + unsigned short PBUSY:1; + unsigned short :3; + unsigned short PID:2; + } BIT; + } PIPE5CTR; + union { + unsigned short WORD; + struct { + unsigned short BSTS:1; + unsigned short :5; + unsigned short ACLRM:1; + unsigned short SQCLR:1; + unsigned short SQSET:1; + unsigned short SQMON:1; + unsigned short PBUSY:1; + unsigned short :3; + unsigned short PID:2; + } BIT; + } PIPE6CTR; + union { + unsigned short WORD; + struct { + unsigned short BSTS:1; + unsigned short :5; + unsigned short ACLRM:1; + unsigned short SQCLR:1; + unsigned short SQSET:1; + unsigned short SQMON:1; + unsigned short PBUSY:1; + unsigned short :3; + unsigned short PID:2; + } BIT; + } PIPE7CTR; + union { + unsigned short WORD; + struct { + unsigned short BSTS:1; + unsigned short :5; + unsigned short ACLRM:1; + unsigned short SQCLR:1; + unsigned short SQSET:1; + unsigned short SQMON:1; + unsigned short PBUSY:1; + unsigned short :3; + unsigned short PID:2; + } BIT; + } PIPE8CTR; + union { + unsigned short WORD; + struct { + unsigned short BSTS:1; + unsigned short :5; + unsigned short ACLRM:1; + unsigned short SQCLR:1; + unsigned short SQSET:1; + unsigned short SQMON:1; + unsigned short PBUSY:1; + unsigned short :3; + unsigned short PID:2; + } BIT; + } PIPE9CTR; + char wk14[14]; + union { + unsigned short WORD; + struct { + unsigned short :6; + unsigned short TRENB:1; + unsigned short TRCLR:1; + } BIT; + } PIPE1TRE; + unsigned short PIPE1TRN; + union { + unsigned short WORD; + struct { + unsigned short :6; + unsigned short TRENB:1; + unsigned short TRCLR:1; + } BIT; + } PIPE2TRE; + unsigned short PIPE2TRN; + union { + unsigned short WORD; + struct { + unsigned short :6; + unsigned short TRENB:1; + unsigned short TRCLR:1; + } BIT; + } PIPE3TRE; + unsigned short PIPE3TRN; + union { + unsigned short WORD; + struct { + unsigned short :6; + unsigned short TRENB:1; + unsigned short TRCLR:1; + } BIT; + } PIPE4TRE; + unsigned short PIPE4TRN; + union { + unsigned short WORD; + struct { + unsigned short :6; + unsigned short TRENB:1; + unsigned short TRCLR:1; + } BIT; + } PIPE5TRE; + unsigned short PIPE5TRN; + char wk15[44]; + union { + unsigned short WORD; + struct { + unsigned short :8; + unsigned short USBSPD:2; + } BIT; + } DEVADD0; + union { + unsigned short WORD; + struct { + unsigned short :8; + unsigned short USBSPD:2; + } BIT; + } DEVADD1; + union { + unsigned short WORD; + struct { + unsigned short :8; + unsigned short USBSPD:2; + } BIT; + } DEVADD2; + union { + unsigned short WORD; + struct { + unsigned short :8; + unsigned short USBSPD:2; + } BIT; + } DEVADD3; + union { + unsigned short WORD; + struct { + unsigned short :8; + unsigned short USBSPD:2; + } BIT; + } DEVADD4; + union { + unsigned short WORD; + struct { + unsigned short :8; + unsigned short USBSPD:2; + } BIT; + } DEVADD5; +}; + +struct st_usb1 { + union { + unsigned short WORD; + struct { + unsigned short :5; + unsigned short SCKE:1; + unsigned short :3; + unsigned short DCFM:1; + unsigned short DRPD:1; + unsigned short DPRPU:1; + unsigned short :3; + unsigned short USBE:1; + } BIT; + } SYSCFG; + char wk0[2]; + union { + unsigned short WORD; + struct { + unsigned short OVCMON:2; + unsigned short :7; + unsigned short HTACT:1; + unsigned short :3; + unsigned short IDMON:1; + unsigned short LNST:2; + } BIT; + } SYSSTS0; + char wk1[2]; + union { + unsigned short WORD; + struct { + unsigned short :4; + unsigned short HNPBTOA:1; + unsigned short EXICEN:1; + unsigned short VBUSEN:1; + unsigned short WKUP:1; + unsigned short RWUPE:1; + unsigned short USBRST:1; + unsigned short RESUME:1; + unsigned short UACT:1; + unsigned short :1; + unsigned short RHST:3; + } BIT; + } DVSTCTR0; + char wk2[10]; + unsigned short CFIFO; + char wk3[2]; + unsigned short D0FIFO; + char wk4[2]; + unsigned short D1FIFO; + char wk5[2]; + union { + unsigned short WORD; + struct { + unsigned short RCNT:1; + unsigned short REW:1; + unsigned short :3; + unsigned short MBW:1; + unsigned short :1; + unsigned short BIGEND:1; + unsigned short :2; + unsigned short ISEL:1; + unsigned short :1; + unsigned short CURPIPE:4; + } BIT; + } CFIFOSEL; + union { + unsigned short WORD; + struct { + unsigned short BVAL:1; + unsigned short BCLR:1; + unsigned short FRDY:1; + unsigned short :4; + unsigned short DTLN:9; + } BIT; + } CFIFOCTR; + char wk6[4]; + union { + unsigned short WORD; + struct { + unsigned short RCNT:1; + unsigned short REW:1; + unsigned short DCLRM:1; + unsigned short DREQE:1; + unsigned short :1; + unsigned short MBW:1; + unsigned short :1; + unsigned short BIGEND:1; + unsigned short :4; + unsigned short CURPIPE:4; + } BIT; + } D0FIFOSEL; + union { + unsigned short WORD; + struct { + unsigned short BVAL:1; + unsigned short BCLR:1; + unsigned short FRDY:1; + unsigned short :4; + unsigned short DTLN:9; + } BIT; + } D0FIFOCTR; + union { + unsigned short WORD; + struct { + unsigned short RCNT:1; + unsigned short REW:1; + unsigned short DCLRM:1; + unsigned short DREQE:1; + unsigned short :1; + unsigned short MBW:1; + unsigned short :1; + unsigned short BIGEND:1; + unsigned short :4; + unsigned short CURPIPE:4; + } BIT; + } D1FIFOSEL; + union { + unsigned short WORD; + struct { + unsigned short BVAL:1; + unsigned short BCLR:1; + unsigned short FRDY:1; + unsigned short :4; + unsigned short DTLN:9; + } BIT; + } D1FIFOCTR; + union { + unsigned short WORD; + struct { + unsigned short VBSE:1; + unsigned short RSME:1; + unsigned short SOFE:1; + unsigned short DVSE:1; + unsigned short CTRE:1; + unsigned short BEMPE:1; + unsigned short NRDYE:1; + unsigned short BRDYE:1; + } BIT; + } INTENB0; + char wk7[4]; + union { + unsigned short WORD; + struct { + unsigned short :6; + unsigned short PIPE9BRDYE:1; + unsigned short PIPE8BRDYE:1; + unsigned short PIPE7BRDYE:1; + unsigned short PIPE6BRDYE:1; + unsigned short PIPE5BRDYE:1; + unsigned short PIPE4BRDYE:1; + unsigned short PIPE3BRDYE:1; + unsigned short PIPE2BRDYE:1; + unsigned short PIPE1BRDYE:1; + unsigned short PIPE0BRDYE:1; + } BIT; + } BRDYENB; + union { + unsigned short WORD; + struct { + unsigned short :6; + unsigned short PIPE9NRDYE:1; + unsigned short PIPE8NRDYE:1; + unsigned short PIPE7NRDYE:1; + unsigned short PIPE6NRDYE:1; + unsigned short PIPE5NRDYE:1; + unsigned short PIPE4NRDYE:1; + unsigned short PIPE3NRDYE:1; + unsigned short PIPE2NRDYE:1; + unsigned short PIPE1NRDYE:1; + unsigned short PIPE0NRDYE:1; + } BIT; + } NRDYENB; + union { + unsigned short WORD; + struct { + unsigned short :6; + unsigned short PIPE9BEMPE:1; + unsigned short PIPE8BEMPE:1; + unsigned short PIPE7BEMPE:1; + unsigned short PIPE6BEMPE:1; + unsigned short PIPE5BEMPE:1; + unsigned short PIPE4BEMPE:1; + unsigned short PIPE3BEMPE:1; + unsigned short PIPE2BEMPE:1; + unsigned short PIPE1BEMPE:1; + unsigned short PIPE0BEMPE:1; + } BIT; + } BEMPENB; + union { + unsigned short WORD; + struct { + unsigned short :9; + unsigned short BRDYM:1; + unsigned short :1; + unsigned short EDGESTS:1; + } BIT; + } SOFCFG; + char wk8[2]; + union { + unsigned short WORD; + struct { + unsigned short VBINT:1; + unsigned short RESM:1; + unsigned short SOFR:1; + unsigned short DVST:1; + unsigned short CTRT:1; + unsigned short BEMP:1; + unsigned short NRDY:1; + unsigned short BRDY:1; + unsigned short VBSTS:1; + unsigned short DVSQ:3; + unsigned short VALID:1; + unsigned short CTSQ:3; + } BIT; + } INTSTS0; + char wk9[4]; + union { + unsigned short WORD; + struct { + unsigned short :6; + unsigned short PIPE9BRDY:1; + unsigned short PIPE8BRDY:1; + unsigned short PIPE7BRDY:1; + unsigned short PIPE6BRDY:1; + unsigned short PIPE5BRDY:1; + unsigned short PIPE4BRDY:1; + unsigned short PIPE3BRDY:1; + unsigned short PIPE2BRDY:1; + unsigned short PIPE1BRDY:1; + unsigned short PIPE0BRDY:1; + } BIT; + } BRDYSTS; + union { + unsigned short WORD; + struct { + unsigned short :6; + unsigned short PIPE9NRDYE:1; + unsigned short PIPE8NRDYE:1; + unsigned short PIPE7NRDYE:1; + unsigned short PIPE6NRDYE:1; + unsigned short PIPE5NRDYE:1; + unsigned short PIPE4NRDYE:1; + unsigned short PIPE3NRDYE:1; + unsigned short PIPE2NRDYE:1; + unsigned short PIPE1NRDYE:1; + unsigned short PIPE0NRDYE:1; + } BIT; + } NRDYSTS; + union { + unsigned short WORD; + struct { + unsigned short :6; + unsigned short PIPE9BEMPE:1; + unsigned short PIPE8BEMPE:1; + unsigned short PIPE7BENP:1; + unsigned short PIPE6BENP:1; + unsigned short PIPE5BENP:1; + unsigned short PIPE4BENP:1; + unsigned short PIPE3BENP:1; + unsigned short PIPE2BENP:1; + unsigned short PIPE1BENP:1; + unsigned short PIPE0BENP:1; + } BIT; + } BEMPSTS; + union { + unsigned short WORD; + struct { + unsigned short OVRN:1; + unsigned short CRCE:1; + unsigned short :3; + unsigned short FRNM:11; + } BIT; + } FRMNUM; + union { + unsigned short WORD; + struct { + unsigned short DVCHG:1; + } BIT; + } DVCHGR; + union { + unsigned short WORD; + struct { + unsigned short :4; + unsigned short STSRECOV:4; + unsigned short :1; + unsigned short USBADDR:7; + } BIT; + } USBADDR; + char wk10[2]; + union { + unsigned short WORD; + struct { + unsigned short BREQUEST:8; + unsigned short BMREQUESTTYPE:8; + } BIT; + } USBREQ; + unsigned short USBVAL; + unsigned short USBINDX; + unsigned short USBLENG; + union { + unsigned short WORD; + struct { + unsigned short :8; + unsigned short SHTNAK:1; + unsigned short :2; + unsigned short DIR:1; + } BIT; + } DCPCFG; + union { + unsigned short WORD; + struct { + unsigned short DEVSEL:4; + unsigned short :5; + unsigned short MXPS:7; + } BIT; + } DCPMAXP; + union { + unsigned short WORD; + struct { + unsigned short BSTS:1; + unsigned short SUREQ:1; + unsigned short :2; + unsigned short SUREQCLR:1; + unsigned short :2; + unsigned short SQCLR:1; + unsigned short SQSET:1; + unsigned short SQMON:1; + unsigned short PBUSY:1; + unsigned short :2; + unsigned short CCPL:1; + unsigned short PID:2; + } BIT; + } DCPCTR; + char wk11[2]; + union { + unsigned short WORD; + struct { + unsigned short :12; + unsigned short PIPESEL:4; + } BIT; + } PIPESEL; + char wk12[2]; + union { + unsigned short WORD; + struct { + unsigned short TYPE:2; + unsigned short :3; + unsigned short BFRE:1; + unsigned short DBLB:1; + unsigned short :1; + unsigned short SHTNAK:1; + unsigned short :2; + unsigned short DIR:1; + unsigned short EPNUM:4; + } BIT; + } PIPECFG; + char wk13[2]; + union { + unsigned short WORD; + struct { + unsigned short DEVSEL:4; + unsigned short :3; + unsigned short MXPS:9; + } BIT; + } PIPEMAXP; + union { + unsigned short WORD; + struct { + unsigned short :3; + unsigned short IFIS:1; + unsigned short :9; + unsigned short IITV:3; + } BIT; + } PIPEPERI; + union { + unsigned short WORD; + struct { + unsigned short BSTS:1; + unsigned short INBUFM:1; + unsigned short :3; + unsigned short ATREPM:1; + unsigned short ACLRM:1; + unsigned short SQCLR:1; + unsigned short SQSET:1; + unsigned short SQMON:1; + unsigned short PBUSY:1; + unsigned short :3; + unsigned short PID:2; + } BIT; + } PIPE1CTR; + union { + unsigned short WORD; + struct { + unsigned short BSTS:1; + unsigned short INBUFM:1; + unsigned short :3; + unsigned short ATREPM:1; + unsigned short ACLRM:1; + unsigned short SQCLR:1; + unsigned short SQSET:1; + unsigned short SQMON:1; + unsigned short PBUSY:1; + unsigned short :3; + unsigned short PID:2; + } BIT; + } PIPE2CTR; + union { + unsigned short WORD; + struct { + unsigned short BSTS:1; + unsigned short INBUFM:1; + unsigned short :3; + unsigned short ATREPM:1; + unsigned short ACLRM:1; + unsigned short SQCLR:1; + unsigned short SQSET:1; + unsigned short SQMON:1; + unsigned short PBUSY:1; + unsigned short :3; + unsigned short PID:2; + } BIT; + } PIPE3CTR; + union { + unsigned short WORD; + struct { + unsigned short BSTS:1; + unsigned short INBUFM:1; + unsigned short :3; + unsigned short ATREPM:1; + unsigned short ACLRM:1; + unsigned short SQCLR:1; + unsigned short SQSET:1; + unsigned short SQMON:1; + unsigned short PBUSY:1; + unsigned short :3; + unsigned short PID:2; + } BIT; + } PIPE4CTR; + union { + unsigned short WORD; + struct { + unsigned short BSTS:1; + unsigned short INBUFM:1; + unsigned short :3; + unsigned short ATREPM:1; + unsigned short ACLRM:1; + unsigned short SQCLR:1; + unsigned short SQSET:1; + unsigned short SQMON:1; + unsigned short PBUSY:1; + unsigned short :3; + unsigned short PID:2; + } BIT; + } PIPE5CTR; + union { + unsigned short WORD; + struct { + unsigned short BSTS:1; + unsigned short :5; + unsigned short ACLRM:1; + unsigned short SQCLR:1; + unsigned short SQSET:1; + unsigned short SQMON:1; + unsigned short PBUSY:1; + unsigned short :3; + unsigned short PID:2; + } BIT; + } PIPE6CTR; + union { + unsigned short WORD; + struct { + unsigned short BSTS:1; + unsigned short :5; + unsigned short ACLRM:1; + unsigned short SQCLR:1; + unsigned short SQSET:1; + unsigned short SQMON:1; + unsigned short PBUSY:1; + unsigned short :3; + unsigned short PID:2; + } BIT; + } PIPE7CTR; + union { + unsigned short WORD; + struct { + unsigned short BSTS:1; + unsigned short :5; + unsigned short ACLRM:1; + unsigned short SQCLR:1; + unsigned short SQSET:1; + unsigned short SQMON:1; + unsigned short PBUSY:1; + unsigned short :3; + unsigned short PID:2; + } BIT; + } PIPE8CTR; + union { + unsigned short WORD; + struct { + unsigned short BSTS:1; + unsigned short :5; + unsigned short ACLRM:1; + unsigned short SQCLR:1; + unsigned short SQSET:1; + unsigned short SQMON:1; + unsigned short PBUSY:1; + unsigned short :3; + unsigned short PID:2; + } BIT; + } PIPE9CTR; + char wk14[14]; + union { + unsigned short WORD; + struct { + unsigned short :6; + unsigned short TRENB:1; + unsigned short TRCLR:1; + } BIT; + } PIPE1TRE; + unsigned short PIPE1TRN; + union { + unsigned short WORD; + struct { + unsigned short :6; + unsigned short TRENB:1; + unsigned short TRCLR:1; + } BIT; + } PIPE2TRE; + unsigned short PIPE2TRN; + union { + unsigned short WORD; + struct { + unsigned short :6; + unsigned short TRENB:1; + unsigned short TRCLR:1; + } BIT; + } PIPE3TRE; + unsigned short PIPE3TRN; + union { + unsigned short WORD; + struct { + unsigned short :6; + unsigned short TRENB:1; + unsigned short TRCLR:1; + } BIT; + } PIPE4TRE; + unsigned short PIPE4TRN; + union { + unsigned short WORD; + struct { + unsigned short :6; + unsigned short TRENB:1; + unsigned short TRCLR:1; + } BIT; + } PIPE5TRE; + unsigned short PIPE5TRN; + char wk15[44]; + union { + unsigned short WORD; + struct { + unsigned short :8; + unsigned short USBSPD:2; + } BIT; + } DEVADD0; + union { + unsigned short WORD; + struct { + unsigned short :8; + unsigned short USBSPD:2; + } BIT; + } DEVADD1; + union { + unsigned short WORD; + struct { + unsigned short :8; + unsigned short USBSPD:2; + } BIT; + } DEVADD2; + union { + unsigned short WORD; + struct { + unsigned short :8; + unsigned short USBSPD:2; + } BIT; + } DEVADD3; + union { + unsigned short WORD; + struct { + unsigned short :8; + unsigned short USBSPD:2; + } BIT; + } DEVADD4; + union { + unsigned short WORD; + struct { + unsigned short :8; + unsigned short USBSPD:2; + } BIT; + } DEVADD5; +}; + +struct st_wdt { + unsigned char WDTRR; + char wk0[1]; + union { + unsigned short WORD; + struct { + unsigned short :2; + unsigned short RPSS:2; + unsigned short :2; + unsigned short RPES:2; + unsigned short CKS:4; + unsigned short :2; + unsigned short TOPS:2; + } BIT; + } WDTCR; + union { + unsigned short WORD; + struct { + unsigned short REFEF:1; + unsigned short UNDFF:1; + unsigned short CNTVAL:14; + } BIT; + } WDTSR; + union { + unsigned char BYTE; + struct { + unsigned char RSTIRQS:1; + } BIT; + } WDTRCR; +}; + +enum enum_ir { +IR_BSC_BUSERR=16,IR_FCU_FIFERR=21, +IR_ICU_SWINT=27, +IR_CMT0_CMI0, +IR_CMT1_CMI1, +IR_CMT2_CMI2, +IR_CMT3_CMI3, +IR_ETHER_EINT, +IR_USB0_D0FIFO0,IR_USB0_D1FIFO0,IR_USB0_USBI0, +IR_USB1_D0FIFO1,IR_USB1_D1FIFO1,IR_USB1_USBI1, +IR_RSPI0_SPRI0,IR_RSPI0_SPTI0,IR_RSPI0_SPII0, +IR_RSPI1_SPRI1,IR_RSPI1_SPTI1,IR_RSPI1_SPII1, +IR_RSPI2_SPRI2,IR_RSPI2_SPTI2,IR_RSPI2_SPII2, +IR_CAN0_RXF0,IR_CAN0_TXF0,IR_CAN0_RXM0,IR_CAN0_TXM0, +IR_CAN1_RXF1,IR_CAN1_TXF1,IR_CAN1_RXM1,IR_CAN1_TXM1, +IR_CAN2_RXF2,IR_CAN2_TXF2,IR_CAN2_RXM2,IR_CAN2_TXM2, +IR_RTC_COUNTUP=62, +IR_ICU_IRQ0=64,IR_ICU_IRQ1,IR_ICU_IRQ2,IR_ICU_IRQ3,IR_ICU_IRQ4,IR_ICU_IRQ5,IR_ICU_IRQ6,IR_ICU_IRQ7,IR_ICU_IRQ8,IR_ICU_IRQ9,IR_ICU_IRQ10,IR_ICU_IRQ11,IR_ICU_IRQ12,IR_ICU_IRQ13,IR_ICU_IRQ14,IR_ICU_IRQ15, +IR_USB_USBR0=90,IR_USB_USBR1, +IR_RTC_ALARM,IR_RTC_PRD, +IR_AD0_ADI0=98, +IR_S12AD0_S12ADI0=102, +IR_ICU_GROUPE0=106,IR_ICU_GROUPE1,IR_ICU_GROUPE2,IR_ICU_GROUPE3,IR_ICU_GROUPE4,IR_ICU_GROUPE5,IR_ICU_GROUPE6,IR_ICU_GROUPL0=114, +IR_SCIX_SCIX0=122,IR_SCIX_SCIX1,IR_SCIX_SCIX2,IR_SCIX_SCIX3, +IR_TPU0_TGI0A,IR_TPU0_TGI0B,IR_TPU0_TGI0C,IR_TPU0_TGI0D, +IR_TPU1_TGI1A,IR_TPU1_TGI1B, +IR_TPU2_TGI2A,IR_TPU2_TGI2B, +IR_TPU3_TGI3A,IR_TPU3_TGI3B,IR_TPU3_TGI3C,IR_TPU3_TGI3D, +IR_TPU4_TGI4A,IR_TPU4_TGI4B, +IR_TPU5_TGI5A,IR_TPU5_TGI5B, +IR_TPU6_TGI6A,IR_TPU6_TGI6B,IR_TPU6_TGI6C,IR_TPU6_TGI6D, +IR_MTU0_TGIA0=142,IR_MTU0_TGIB0,IR_MTU0_TGIC0,IR_MTU0_TGID0,IR_MTU0_TGIE0,IR_MTU0_TGIF0, +IR_TPU7_TGI7A,IR_TPU7_TGI7B, +IR_MTU1_TGIA1=148,IR_MTU1_TGIB1, +IR_TPU8_TGI8A,IR_TPU8_TGI8B, +IR_MTU2_TGIA2=150,IR_MTU2_TGIB2, +IR_TPU9_TGI9A,IR_TPU9_TGI9B,IR_TPU9_TGI9C,IR_TPU9_TGI9D, +IR_MTU3_TGIA3=152,IR_MTU3_TGIB3,IR_MTU3_TGIC3,IR_MTU3_TGID3, +IR_TPU10_TGI10A,IR_TPU10_TGI10B, +IR_MTU4_TGIA4=156,IR_MTU4_TGIB4,IR_MTU4_TGIC4,IR_MTU4_TGID4,IR_MTU4_TCIV4, +IR_MTU5_TGIU5,IR_MTU5_TGIV5,IR_MTU5_TGIW5, +IR_TPU11_TGI11A,IR_TPU11_TGI11B, +IR_POE_OEI1,IR_POE_OEI2, +IR_TMR0_CMIA0=170,IR_TMR0_CMIB0,IR_TMR0_OVI0, +IR_TMR1_CMIA1,IR_TMR1_CMIB1,IR_TMR1_OVI1, +IR_TMR2_CMIA2,IR_TMR2_CMIB2,IR_TMR2_OVI2, +IR_TMR3_CMIA3,IR_TMR3_CMIB3,IR_TMR3_OVI3, +IR_RIIC0_EEI0,IR_RIIC0_RXI0,IR_RIIC0_TXI0,IR_RIIC0_TEI0, +IR_RIIC1_EEI1,IR_RIIC1_RXI1,IR_RIIC1_TXI1,IR_RIIC1_TEI1, +IR_RIIC2_EEI2,IR_RIIC2_RXI2,IR_RIIC2_TXI2,IR_RIIC2_TEI2, +IR_RIIC3_EEI3,IR_RIIC3_RXI3,IR_RIIC3_TXI3,IR_RIIC3_TEI3, +IR_DMAC_DMAC0I,IR_DMAC_DMAC1I,IR_DMAC_DMAC2I,IR_DMAC_DMAC3I, +IR_EXDMAC_EXDMAC0I,IR_EXDMAC_EXDMAC1I, +IR_SCI0_RXI0=214,IR_SCI0_TXI0,IR_SCI0_TEI0, +IR_SCI1_RXI1,IR_SCI1_TXI1,IR_SCI1_TEI1, +IR_SCI2_RXI2,IR_SCI2_TXI2,IR_SCI2_TEI2, +IR_SCI3_RXI3,IR_SCI3_TXI3,IR_SCI3_TEI3, +IR_SCI4_RXI4,IR_SCI4_TXI4,IR_SCI4_TEI4, +IR_SCI5_RXI5,IR_SCI5_TXI5,IR_SCI5_TEI5, +IR_SCI6_RXI6,IR_SCI6_TXI6,IR_SCI6_TEI6, +IR_SCI7_RXI7,IR_SCI7_TXI7,IR_SCI7_TEI7, +IR_SCI8_RXI8,IR_SCI8_TXI8,IR_SCI8_TEI8, +IR_SCI9_RXI9,IR_SCI9_TXI9,IR_SCI9_TEI9, +IR_SCI10_RXI10,IR_SCI10_TXI10,IR_SCI10_TEI10, +IR_SCI11_RXI11,IR_SCI11_TXI11,IR_SCI11_TEI11, +IR_SCI12_RXI12,IR_SCI12_TXI12,IR_SCI12_TEI12, +IR_IEB_IEBINT +}; + +enum enum_dtce { +DTCE_ICU_SWINT=27, +DTCE_CMT0_CMI0, +DTCE_CMT1_CMI1, +DTCE_CMT2_CMI2, +DTCE_CMT3_CMI3, +DTCE_USB0_D0FIFO0=33,DTCE_USB0_D1FIFO0, +DTCE_USB1_D0FIFO1=36,DTCE_USB1_D1FIFO1, +DTCE_RSPI0_SPRI0=39,DTCE_RSPI0_SPTI0, +DTCE_RSPI1_SPRI1=42,DTCE_RSPI1_SPTI1, +DTCE_RSPI2_SPRI2=45,DTCE_RSPI2_SPTI2, +DTCE_ICU_IRQ0=64,DTCE_ICU_IRQ1,DTCE_ICU_IRQ2,DTCE_ICU_IRQ3,DTCE_ICU_IRQ4,DTCE_ICU_IRQ5,DTCE_ICU_IRQ6,DTCE_ICU_IRQ7,DTCE_ICU_IRQ8,DTCE_ICU_IRQ9,DTCE_ICU_IRQ10,DTCE_ICU_IRQ11,DTCE_ICU_IRQ12,DTCE_ICU_IRQ13,DTCE_ICU_IRQ14,DTCE_ICU_IRQ15, +DTCE_AD0_ADI0=98, +DTCE_S12AD0_S12ADI0=102, +DTCE_TPU0_TGI0A=126,DTCE_TPU0_TGI0B,DTCE_TPU0_TGI0C,DTCE_TPU0_TGI0D, +DTCE_TPU1_TGI1A,DTCE_TPU1_TGI1B, +DTCE_TPU2_TGI2A,DTCE_TPU2_TGI2B, +DTCE_TPU3_TGI3A,DTCE_TPU3_TGI3B,DTCE_TPU3_TGI3C,DTCE_TPU3_TGI3D, +DTCE_TPU4_TGI4A,DTCE_TPU4_TGI4B, +DTCE_TPU5_TGI5A,DTCE_TPU5_TGI5B, +DTCE_TPU6_TGI6A,DTCE_TPU6_TGI6B,DTCE_TPU6_TGI6C,DTCE_TPU6_TGI6D, +DTCE_MTU0_TGIA0=142,DTCE_MTU0_TGIB0,DTCE_MTU0_TGIC0,DTCE_MTU0_TGID0, +DTCE_TPU7_TGI7A=148,DTCE_TPU7_TGI7B, +DTCE_MTU1_TGIA1=148,DTCE_MTU1_TGIB1, +DTCE_TPU8_TGI8A,DTCE_TPU8_TGI8B, +DTCE_MTU2_TGIA2=150,DTCE_MTU2_TGIB2, +DTCE_TPU9_TGI9A,DTCE_TPU9_TGI9B,DTCE_TPU9_TGI9C,DTCE_TPU9_TGI9D, +DTCE_MTU3_TGIA3=152,DTCE_MTU3_TGIB3,DTCE_MTU3_TGIC3,DTCE_MTU3_TGID3, +DTCE_TPU10_TGI10A,DTCE_TPU10_TGI10B, +DTCE_MTU4_TGIA4=156,DTCE_MTU4_TGIB4,DTCE_MTU4_TGIC4,DTCE_MTU4_TGID4,DTCE_MTU4_TCIV4, +DTCE_MTU5_TGIU5,DTCE_MTU5_TGIV5,DTCE_MTU5_TGIW5, +DTCE_TPU11_TGI11A,DTCE_TPU11_TGI11B, +DTCE_TMR0_CMIA0=170,DTCE_TMR0_CMIB0, +DTCE_TMR1_CMIA1=173,DTCE_TMR1_CMIB1, +DTCE_TMR2_CMIA2=176,DTCE_TMR2_CMIB2, +DTCE_TMR3_CMIA3=179,DTCE_TMR3_CMIB3, +DTCE_RIIC0_RXI0=183,DTCE_RIIC0_TXI0, +DTCE_RIIC1_RXI1=187,DTCE_RIIC1_TXI1, +DTCE_RIIC2_RXI2=191,DTCE_RIIC2_TXI2, +DTCE_RIIC3_RXI3=195,DTCE_RIIC3_TXI3, +DTCE_DMAC_DMAC0I=198,DTCE_DMAC_DMAC1I,DTCE_DMAC_DMAC2I,DTCE_DMAC_DMAC3I, +DTCE_EXDMAC_EXDMAC0I,DTCE_EXDMAC_EXDMAC1I, +DTCE_SCI0_RXI0=214,DTCE_SCI0_TXI0, +DTCE_SCI1_RXI1=217,DTCE_SCI1_TXI1, +DTCE_SCI2_RXI2=220,DTCE_SCI2_TXI2, +DTCE_SCI3_RXI3=223,DTCE_SCI3_TXI3, +DTCE_SCI4_RXI4=226,DTCE_SCI4_TXI4, +DTCE_SCI5_RXI5=229,DTCE_SCI5_TXI5, +DTCE_SCI6_RXI6=232,DTCE_SCI6_TXI6, +DTCE_SCI7_RXI7=235,DTCE_SCI7_TXI7, +DTCE_SCI8_RXI8=238,DTCE_SCI8_TXI8, +DTCE_SCI9_RXI9=241,DTCE_SCI9_TXI9, +DTCE_SCI10_RXI10=244,DTCE_SCI10_TXI10, +DTCE_SCI11_RXI11=247,DTCE_SCI11_TXI11, +DTCE_SCI12_RXI12=250,DTCE_SCI12_TXI12 +}; + +enum enum_ier { +IER_BSC_BUSERR=0x02, +IER_FCU_FIFERR=0x02,IER_FCU_FRDYI=0x02, +IER_ICU_SWINT=0x03, +IER_CMT0_CMI0=0x03, +IER_CMT1_CMI1=0x03, +IER_CMT2_CMI2=0x03, +IER_CMT3_CMI3=0x03, +IER_ETHER_EINT=0x04, +IER_USB0_D0FIFO0=0x04,IER_USB0_D1FIFO0=0x04,IER_USB0_USBI0=0x04, +IER_USB1_D0FIFO1=0x04,IER_USB1_D1FIFO1=0x04,IER_USB1_USBI1=0x04, +IER_RSPI0_SPRI0=0x04,IER_RSPI0_SPTI0=0x05,IER_RSPI0_SPII0=0x05, +IER_RSPI1_SPRI1=0x05,IER_RSPI1_SPTI1=0x05,IER_RSPI1_SPII1=0x05, +IER_RSPI2_SPRI2=0x05,IER_RSPI2_SPTI2=0x05,IER_RSPI2_SPII2=0x05, +IER_CAN0_RXF0=0x06,IER_CAN0_TXF0=0x06,IER_CAN0_RXM0=0x06,IER_CAN0_TXM0=0x06, +IER_CAN1_RXF1=0x06,IER_CAN1_TXF1=0x06,IER_CAN1_RXM1=0x06,IER_CAN1_TXM1=0x06, +IER_CAN2_RXF2=0x07,IER_CAN2_TXF2=0x07,IER_CAN2_RXM2=0x07,IER_CAN2_TXM2=0x07, +IER_RTC_COUNTUP=0x07, +IER_ICU_IRQ0=0x08,IER_ICU_IRQ1=0x08,IER_ICU_IRQ2=0x08,IER_ICU_IRQ3=0x08,IER_ICU_IRQ4=0x08,IER_ICU_IRQ5=0x08,IER_ICU_IRQ6=0x08,IER_ICU_IRQ7=0x08,IER_ICU_IRQ8=0x09,IER_ICU_IRQ9=0x09,IER_ICU_IRQ10=0x09,IER_ICU_IRQ11=0x09,IER_ICU_IRQ12=0x09,IER_ICU_IRQ13=0x09,IER_ICU_IRQ14=0x09,IER_ICU_IRQ15=0x09, +IER_USB_USBR0=0x0B,IER_USB_USBR1=0x0B, +IER_RTC_ALARM=0x0B,IER_RTC_PRD=0x0B, +IER_AD0_ADI0=0x0C, +IER_S12AD0_S12ADI0=0x0C, +IER_ICU_GROUPE0=0x0D,IER_ICU_GROUPE1=0x0D,IER_ICU_GROUPE2=0x0D,IER_ICU_GROUPE3=0x0D,IER_ICU_GROUPE4=0x0D,IER_ICU_GROUPE5=0x0D,IER_ICU_GROUPE6=0x0E,IER_ICU_GROUPL0=0x0E, +IER_SCIX_SCIX0=0x0F,IER_SCIX_SCIX1=0x0F,IER_SCIX_SCIX2=0x0F,IER_SCIX_SCIX3=0x0F, +IER_TPU0_TGI0A=0x0F,IER_TPU0_TGI0B=0x0F,IER_TPU0_TGI0C=0x10,IER_TPU0_TGI0D=0x10, +IER_TPU1_TGI1A=0x10,IER_TPU1_TGI1B=0x10, +IER_TPU2_TGI2A=0x10,IER_TPU2_TGI2B=0x10, +IER_TPU3_TGI3A=0x10,IER_TPU3_TGI3B=0x10,IER_TPU3_TGI3C=0x11,IER_TPU3_TGI3D=0x11, +IER_TPU4_TGI4A=0x11,IER_TPU4_TGI4B=0x11, +IER_TPU5_TGI5A=0x11,IER_TPU5_TGI5B=0x11, +IER_TPU6_TGI6A=0x11,IER_TPU6_TGI6B=0x11,IER_TPU6_TGI6C=0x12,IER_TPU6_TGI6D=0x12, +IER_MTU0_TGIA0=0x11,IER_MTU0_TGIB0=0x11,IER_MTU0_TGIC0=0x12,IER_MTU0_TGID0=0x12,IER_MTU0_TGIE0=0x12,IER_MTU0_TGIF0=0x12, +IER_TPU7_TGI7A=0x12,IER_TPU7_TGI7B=0x12, +IER_MTU1_TGIA1=0x12,IER_MTU1_TGIB1=0x12, +IER_TPU8_TGI8A=0x12,IER_TPU8_TGI8B=0x12, +IER_MTU2_TGIA2=0x12,IER_MTU2_TGIB2=0x12, +IER_TPU9_TGI9A=0x13,IER_TPU9_TGI9B=0x13,IER_TPU9_TGI9C=0x13,IER_TPU9_TGI9D=0x13, +IER_MTU3_TGIA3=0x13,IER_MTU3_TGIB3=0x13,IER_MTU3_TGIC3=0x13,IER_MTU3_TGID3=0x13, +IER_TPU10_TGI10A=0x13,IER_TPU10_TGI10B=0x13, +IER_MTU4_TGIA4=0x13,IER_MTU4_TGIB4=0x13,IER_MTU4_TGIC4=0x13,IER_MTU4_TGID4=0x13,IER_MTU4_TCIV4=0x14, +IER_MTU5_TGIU5=0x14,IER_MTU5_TGIV5=0x14,IER_MTU5_TGIW5=0x14, +IER_TPU11_TGI11A=0x14,IER_TPU11_TGI11B=0x14, +IER_POE_OEI1=0x14,IER_POE_OEI2=0x14, +IER_TMR0_CMIA0=0x15,IER_TMR0_CMIB0=0x15,IER_TMR0_OVI0=0x15, +IER_TMR1_CMIA1=0x15,IER_TMR1_CMIB1=0x15,IER_TMR1_OVI1=0x15, +IER_TMR2_CMIA2=0x16,IER_TMR2_CMIB2=0x16,IER_TMR2_OVI2=0x16, +IER_TMR3_CMIA3=0x16,IER_TMR3_CMIB3=0x16,IER_TMR3_OVI3=0x16, +IER_RIIC0_EEI0=0x16,IER_RIIC0_RXI0=0x16,IER_RIIC0_TXI0=0x17,IER_RIIC0_TEI0=0x17, +IER_RIIC1_EEI1=0x17,IER_RIIC1_RXI1=0x17,IER_RIIC1_TXI1=0x17,IER_RIIC1_TEI1=0x17, +IER_RIIC2_EEI2=0x17,IER_RIIC2_RXI2=0x17,IER_RIIC2_TXI2=0x18,IER_RIIC2_TEI2=0x18, +IER_RIIC3_EEI3=0x18,IER_RIIC3_RXI3=0x18,IER_RIIC3_TXI3=0x18,IER_RIIC3_TEI3=0x18, +IER_DMAC_DMAC0I=0x18,IER_DMAC_DMAC1I=0x18,IER_DMAC_DMAC2I=0x19,IER_DMAC_DMAC3I=0x19, +IER_EXDMAC_EXDMAC0I=0x19,IER_EXDMAC_EXDMAC1I=0x19, +IER_SCI0_RXI0=0x1A,IER_SCI0_TXI0=0x1A,IER_SCI0_TEI0=0x1B, +IER_SCI1_RXI1=0x1B,IER_SCI1_TXI1=0x1B,IER_SCI1_TEI1=0x1B, +IER_SCI2_RXI2=0x1B,IER_SCI2_TXI2=0x1B,IER_SCI2_TEI2=0x1B, +IER_SCI3_RXI3=0x1B,IER_SCI3_TXI3=0x1C,IER_SCI3_TEI3=0x1C, +IER_SCI4_RXI4=0x1C,IER_SCI4_TXI4=0x1C,IER_SCI4_TEI4=0x1C, +IER_SCI5_RXI5=0x1C,IER_SCI5_TXI5=0x1C,IER_SCI5_TEI5=0x1C, +IER_SCI6_RXI6=0x1D,IER_SCI6_TXI6=0x1D,IER_SCI6_TEI6=0x1D, +IER_SCI7_RXI7=0x1D,IER_SCI7_TXI7=0x1D,IER_SCI7_TEI7=0x1D, +IER_SCI8_RXI8=0x1D,IER_SCI8_TXI8=0x1D,IER_SCI8_TEI8=0x1E, +IER_SCI9_RXI9=0x1E,IER_SCI9_TXI9=0x1E,IER_SCI9_TEI9=0x1E, +IER_SCI10_RXI10=0x1E,IER_SCI10_TXI10=0x1E,IER_SCI10_TEI10=0x1E, +IER_SCI11_RXI11=0x1E,IER_SCI11_TXI11=0x1F,IER_SCI11_TEI11=0x1F, +IER_SCI12_RXI12=0x1F,IER_SCI12_TXI12=0x1F,IER_SCI12_TEI12=0x1F, +IER_IEB_IEBINT=0x1F +}; + +enum enum_ipr { +IPR_BSC_BUSERR=0, +IPR_FCU_FIFERR=1,IPR_FCU_FRDYI=2, +IPR_ICU_SWINT=3, +IPR_CMT0_CMI0=4, +IPR_CMT1_CMI1=5, +IPR_CMT2_CMI2=6, +IPR_CMT3_CMI3=7, +IPR_ETHER_EINT=32, +IPR_USB0_D0FIFO0=33,IPR_USB0_D1FIFO0=34,IPR_USB0_USBI0=35, +IPR_USB1_D0FIFO1=36,IPR_USB1_D1FIFO1=37,IPR_USB1_USBI1=38, +IPR_RSPI0_SPRI0=39,IPR_RSPI0_SPTI0=39,IPR_RSPI0_SPII0=39, +IPR_RSPI1_SPRI1=42,IPR_RSPI1_SPTI1=42,IPR_RSPI1_SPII1=42, +IPR_RSPI2_SPRI2=45,IPR_RSPI2_SPTI2=45,IPR_RSPI2_SPII2=45, +IPR_CAN0_RXF0=48,IPR_CAN0_TXF0=48,IPR_CAN0_RXM0=48,IPR_CAN0_TXM0=48, +IPR_CAN1_RXF1=52,IPR_CAN1_TXF1=52,IPR_CAN1_RXM1=52,IPR_CAN1_TXM1=52, +IPR_CAN2_RXF2=56,IPR_CAN2_TXF2=56,IPR_CAN2_RXM2=56,IPR_CAN2_TXM2=56, +IPR_RTC_COUNTUP=62, +IPR_ICU_IRQ0=64,IPR_ICU_IRQ1=65,IPR_ICU_IRQ2=66,IPR_ICU_IRQ3=67,IPR_ICU_IRQ4=68,IPR_ICU_IRQ5=69,IPR_ICU_IRQ6=70,IPR_ICU_IRQ7=71,IPR_ICU_IRQ8=72,IPR_ICU_IRQ9=73,IPR_ICU_IRQ10=74,IPR_ICU_IRQ11=75,IPR_ICU_IRQ12=76,IPR_ICU_IRQ13=77,IPR_ICU_IRQ14=78,IPR_ICU_IRQ15=79, +IPR_USB_USBR0=90,IPR_USB_USBR1=91, +IPR_RTC_ALARM=92,IPR_RTC_PRD=93, +IPR_AD0_ADI0=98, +IPR_S12AD0_S12ADI0=102, +IPR_ICU_GROUPE0=106,IPR_ICU_GROUPE1=107,IPR_ICU_GROUPE2=108,IPR_ICU_GROUPE3=109,IPR_ICU_GROUPE4=110,IPR_ICU_GROUPE5=111,IPR_ICU_GROUPE6=112,IPR_ICU_GROUPL0=114, +IPR_SCIX_SCIX0=122,IPR_SCIX_SCIX1=122,IPR_SCIX_SCIX2=122,IPR_SCIX_SCIX3=122, +IPR_TPU0_TGI0A=126,IPR_TPU0_TGI0B=126,IPR_TPU0_TGI0C=126,IPR_TPU0_TGI0D=126, +IPR_TPU1_TGI1A=130,IPR_TPU1_TGI1B=130, +IPR_TPU2_TGI2A=132,IPR_TPU2_TGI2B=132, +IPR_TPU3_TGI3A=134,IPR_TPU3_TGI3B=134,IPR_TPU3_TGI3C=134,IPR_TPU3_TGI3D=134, +IPR_TPU4_TGI4A=138,IPR_TPU4_TGI4B=138, +IPR_TPU5_TGI5A=140,IPR_TPU5_TGI5B=140, +IPR_TPU6_TGI6A=142,IPR_TPU6_TGI6B=142,IPR_TPU6_TGI6C=142,IPR_TPU6_TGI6D=142, +IPR_MTU0_TGIA0=142,IPR_MTU0_TGIB0=142,IPR_MTU0_TGIC0=142,IPR_MTU0_TGID0=142,IPR_MTU0_TGIE0=146,IPR_MTU0_TGIF0=146, +IPR_TPU7_TGI7A=148,IPR_TPU7_TGI7B=148, +IPR_MTU1_TGIA1=148,IPR_MTU1_TGIB1=148, +IPR_TPU8_TGI8A=150,IPR_TPU8_TGI8B=150, +IPR_MTU2_TGIA2=150,IPR_MTU2_TGIB2=150, +IPR_TPU9_TGI9A=152,IPR_TPU9_TGI9B=152,IPR_TPU9_TGI9C=152,IPR_TPU9_TGI9D=152, +IPR_MTU3_TGIA3=152,IPR_MTU3_TGIB3=152,IPR_MTU3_TGIC3=152,IPR_MTU3_TGID3=152, +IPR_TPU10_TGI10A=156,IPR_TPU10_TGI10B=156, +IPR_MTU4_TGIA4=156,IPR_MTU4_TGIB4=156,IPR_MTU4_TGIC4=156,IPR_MTU4_TGID4=156,IPR_MTU4_TCIV4=160, +IPR_MTU5_TGIU5=161,IPR_MTU5_TGIV5=161,IPR_MTU5_TGIW5=161, +IPR_TPU11_TGI11A=164,IPR_TPU11_TGI11B=164, +IPR_POE_OEI1=166,IPR_POE_OEI2=166, +IPR_TMR0_CMIA0=170,IPR_TMR0_CMIB0=170,IPR_TMR0_OVI0=170, +IPR_TMR1_CMIA1=173,IPR_TMR1_CMIB1=173,IPR_TMR1_OVI1=173, +IPR_TMR2_CMIA2=176,IPR_TMR2_CMIB2=176,IPR_TMR2_OVI2=176, +IPR_TMR3_CMIA3=179,IPR_TMR3_CMIB3=179,IPR_TMR3_OVI3=179, +IPR_RIIC0_EEI0=182,IPR_RIIC0_RXI0=183,IPR_RIIC0_TXI0=184,IPR_RIIC0_TEI0=185, +IPR_RIIC1_EEI1=186,IPR_RIIC1_RXI1=187,IPR_RIIC1_TXI1=188,IPR_RIIC1_TEI1=189, +IPR_RIIC2_EEI2=190,IPR_RIIC2_RXI2=191,IPR_RIIC2_TXI2=192,IPR_RIIC2_TEI2=193, +IPR_RIIC3_EEI3=194,IPR_RIIC3_RXI3=195,IPR_RIIC3_TXI3=196,IPR_RIIC3_TEI3=197, +IPR_DMAC_DMAC0I=198,IPR_DMAC_DMAC1I=199,IPR_DMAC_DMAC2I=200,IPR_DMAC_DMAC3I=201, +IPR_EXDMAC_EXDMAC0I=202,IPR_EXDMAC_EXDMAC1I=203, +IPR_SCI0_RXI0=214,IPR_SCI0_TXI0=214,IPR_SCI0_TEI0=214, +IPR_SCI1_RXI1=217,IPR_SCI1_TXI1=217,IPR_SCI1_TEI1=217, +IPR_SCI2_RXI2=220,IPR_SCI2_TXI2=220,IPR_SCI2_TEI2=220, +IPR_SCI3_RXI3=223,IPR_SCI3_TXI3=223,IPR_SCI3_TEI3=223, +IPR_SCI4_RXI4=226,IPR_SCI4_TXI4=226,IPR_SCI4_TEI4=226, +IPR_SCI5_RXI5=229,IPR_SCI5_TXI5=229,IPR_SCI5_TEI5=229, +IPR_SCI6_RXI6=232,IPR_SCI6_TXI6=232,IPR_SCI6_TEI6=232, +IPR_SCI7_RXI7=235,IPR_SCI7_TXI7=235,IPR_SCI7_TEI7=235, +IPR_SCI8_RXI8=238,IPR_SCI8_TXI8=238,IPR_SCI8_TEI8=238, +IPR_SCI9_RXI9=241,IPR_SCI9_TXI9=241,IPR_SCI9_TEI9=241, +IPR_SCI10_RXI10=244,IPR_SCI10_TXI10=244,IPR_SCI10_TEI10=244, +IPR_SCI11_RXI11=247,IPR_SCI11_TXI11=247,IPR_SCI11_TEI11=247, +IPR_SCI12_RXI12=250,IPR_SCI12_TXI12=250,IPR_SCI12_TEI12=250, +IPR_IEB_IEBINT=253, +IPR_BSC_=0, +IPR_CMT0_=4, +IPR_CMT1_=5, +IPR_CMT2_=6, +IPR_CMT3_=7, +IPR_ETHER_=32, +IPR_RSPI0_=39, +IPR_RSPI1_=42, +IPR_RSPI2_=45, +IPR_CAN0_=48, +IPR_CAN1_=52, +IPR_CAN2_=56, +IPR_AD0_=98, +IPR_S12AD0_=102, +IPR_SCIX_=122, +IPR_SCIX_SCI=122, +IPR_TPU0_=126, +IPR_TPU0_TGI=126, +IPR_TPU1_=130, +IPR_TPU1_TGI=130, +IPR_TPU2_=132, +IPR_TPU2_TGI=132, +IPR_TPU3_=134, +IPR_TPU3_TGI=134, +IPR_TPU4_=138, +IPR_TPU4_TGI=138, +IPR_TPU5_=140, +IPR_TPU5_TGI=140, +IPR_MTU5_=161, +IPR_MTU5_TGI=161, +IPR_TPU11_=164, +IPR_TPU11_TGI=164, +IPR_POE_=166, +IPR_POE_OEI=166, +IPR_TMR0_=170, +IPR_TMR1_=173, +IPR_TMR2_=176, +IPR_TMR3_=179, +IPR_SCI0_=214, +IPR_SCI1_=217, +IPR_SCI2_=220, +IPR_SCI3_=223, +IPR_SCI4_=226, +IPR_SCI5_=229, +IPR_SCI6_=232, +IPR_SCI7_=235, +IPR_SCI8_=238, +IPR_SCI9_=241, +IPR_SCI10_=244, +IPR_SCI11_=247, +IPR_SCI12_=250, +IPR_IEB_=253 +}; + +enum enum_grp { +GRP_CAN0_ERS0=0,GRP_CAN1_ERS1=0,GRP_CAN2_ERS2=0, +GRP_MTU0_TCIV0=1,GRP_MTU1_TCIV1=1,GRP_MTU1_TCIU1=1, +GRP_MTU2_TCIV2=2,GRP_MTU2_TCIU2=2,GRP_MTU3_TCIV3=2, +GRP_TPU0_TCI0V=3,GRP_TPU1_TCI1V=3,GRP_TPU1_TCI1U=3,GRP_TPU5_TCI5V=3,GRP_TPU5_TCI5U=3, +GRP_TPU2_TCI2V=4,GRP_TPU2_TCI2U=4,GRP_TPU3_TCI3V=4,GRP_TPU4_TCI4V=4,GRP_TPU4_TCI4U=4, +GRP_TPU6_TCI6V=5,GRP_TPU7_TCI7V=5,GRP_TPU7_TCI7U=5,GRP_TPU11_TCI11V=5,GRP_TPU11_TCI11U=5, +GRP_TPU8_TCI8V=6,GRP_TPU8_TCI8U=6,GRP_TPU9_TCI9V=6,GRP_TPU10_TCI10V=6,GRP_TPU10_TCI10U=6, +GRP_SCI0_ERI0=12,GRP_SCI1_ERI1=12,GRP_SCI2_ERI2=12,GRP_SCI3_ERI3=12,GRP_SCI4_ERI4=12,GRP_SCI5_ERI5=12,GRP_SCI6_ERI6=12, +GRP_SCI7_ERI7=12,GRP_SCI8_ERI8=12,GRP_SCI9_ERI9=12,GRP_SCI10_ERI10=12,GRP_SCI11_ERI11=12,GRP_SCI12_ERI12=12, +GRP_RSPI0_SPEI0=12,GRP_RSPI1_SPEI1=12,GRP_RSPI2_SPEI2=12 +}; + +enum enum_gen { +GEN_CAN0_ERS0=0,GEN_CAN1_ERS1=0,GEN_CAN2_ERS2=0, +GEN_MTU0_TCIV0=1,GEN_MTU1_TCIV1=1,GEN_MTU1_TCIU1=1, +GEN_MTU2_TCIV2=2,GEN_MTU2_TCIU2=2,GEN_MTU3_TCIV3=2, +GEN_TPU0_TCI0V=3,GEN_TPU1_TCI1V=3,GEN_TPU1_TCI1U=3,GEN_TPU5_TCI5V=3,GEN_TPU5_TCI5U=3, +GEN_TPU2_TCI2V=4,GEN_TPU2_TCI2U=4,GEN_TPU3_TCI3V=4,GEN_TPU4_TCI4V=4,GEN_TPU4_TCI4U=4, +GEN_TPU6_TCI6V=5,GEN_TPU7_TCI7V=5,GEN_TPU7_TCI7U=5,GEN_TPU11_TCI11V=5,GEN_TPU11_TCI11U=5, +GEN_TPU8_TCI8V=6,GEN_TPU8_TCI8U=6,GEN_TPU9_TCI9V=6,GEN_TPU10_TCI10V=6,GEN_TPU10_TCI10U=6, +GEN_SCI0_ERI0=12,GEN_SCI1_ERI1=12,GEN_SCI2_ERI2=12,GEN_SCI3_ERI3=12,GEN_SCI4_ERI4=12,GEN_SCI5_ERI5=12,GEN_SCI6_ERI6=12, +GEN_SCI7_ERI7=12,GEN_SCI8_ERI8=12,GEN_SCI9_ERI9=12,GEN_SCI10_ERI10=12,GEN_SCI11_ERI11=12,GEN_SCI12_ERI12=12, +GEN_RSPI0_SPEI0=12,GEN_RSPI1_SPEI1=12,GEN_RSPI2_SPEI2=12 +}; + +enum enum_gcr { +GCR_CAN0_ERS0=0,GCR_CAN1_ERS1=0,GCR_CAN2_ERS2=0, +GCR_MTU0_TCIV0=1,GCR_MTU1_TCIV1=1,GCR_MTU1_TCIU1=1, +GCR_MTU2_TCIV2=2,GCR_MTU2_TCIU2=2,GCR_MTU3_TCIV3=2, +GCR_TPU0_TCI0V=3,GCR_TPU1_TCI1V=3,GCR_TPU1_TCI1U=3,GCR_TPU5_TCI5V=3,GCR_TPU5_TCI5U=3, +GCR_TPU2_TCI2V=4,GCR_TPU2_TCI2U=4,GCR_TPU3_TCI3V=4,GCR_TPU4_TCI4V=4,GCR_TPU4_TCI4U=4, +GCR_TPU6_TCI6V=5,GCR_TPU7_TCI7V=5,GCR_TPU7_TCI7U=5,GCR_TPU11_TCI11V=5,GCR_TPU11_TCI11U=5, +GCR_TPU8_TCI8V=6,GCR_TPU8_TCI8U=6,GCR_TPU9_TCI9V=6,GCR_TPU10_TCI10V=6,GCR_TPU10_TCI10U=6, +GCR_SCI0_ERI0=12,GCR_SCI1_ERI1=12,GCR_SCI2_ERI2=12,GCR_SCI3_ERI3=12,GCR_SCI4_ERI4=12,GCR_SCI5_ERI5=12,GCR_SCI6_ERI6=12, +GCR_SCI7_ERI7=12,GCR_SCI8_ERI8=12,GCR_SCI9_ERI9=12,GCR_SCI10_ERI10=12,GCR_SCI11_ERI11=12,GCR_SCI12_ERI12=12, +GCR_RSPI0_SPEI0=12,GCR_RSPI1_SPEI1=12,GCR_RSPI2_SPEI2=12 +}; + +#define IEN_BSC_BUSERR IEN0 +#define IEN_FCU_FIFERR IEN5 +#define IEN_FCU_FRDYI IEN7 +#define IEN_ICU_SWINT IEN3 +#define IEN_CMT0_CMI0 IEN4 +#define IEN_CMT1_CMI1 IEN5 +#define IEN_CMT2_CMI2 IEN6 +#define IEN_CMT3_CMI3 IEN7 +#define IEN_ETHER_EINT IEN0 +#define IEN_USB0_D0FIFO0 IEN1 +#define IEN_USB0_D1FIFO0 IEN2 +#define IEN_USB0_USBI0 IEN3 +#define IEN_USB1_D0FIFO1 IEN4 +#define IEN_USB1_D1FIFO1 IEN5 +#define IEN_USB1_USBI1 IEN6 +#define IEN_RSPI0_SPRI0 IEN7 +#define IEN_RSPI0_SPTI0 IEN0 +#define IEN_RSPI0_SPII0 IEN1 +#define IEN_RSPI1_SPRI1 IEN2 +#define IEN_RSPI1_SPTI1 IEN3 +#define IEN_RSPI1_SPII1 IEN4 +#define IEN_RSPI2_SPRI2 IEN5 +#define IEN_RSPI2_SPTI2 IEN6 +#define IEN_RSPI2_SPII2 IEN7 +#define IEN_CAN0_RXF0 IEN0 +#define IEN_CAN0_TXF0 IEN1 +#define IEN_CAN0_RXM0 IEN2 +#define IEN_CAN0_TXM0 IEN3 +#define IEN_CAN1_RXF1 IEN4 +#define IEN_CAN1_TXF1 IEN5 +#define IEN_CAN1_RXM1 IEN6 +#define IEN_CAN1_TXM1 IEN7 +#define IEN_CAN2_RXF2 IEN0 +#define IEN_CAN2_TXF2 IEN1 +#define IEN_CAN2_RXM2 IEN2 +#define IEN_CAN2_TXM2 IEN3 +#define IEN_RTC_COUNTUP IEN6 +#define IEN_ICU_IRQ0 IEN0 +#define IEN_ICU_IRQ1 IEN1 +#define IEN_ICU_IRQ2 IEN2 +#define IEN_ICU_IRQ3 IEN3 +#define IEN_ICU_IRQ4 IEN4 +#define IEN_ICU_IRQ5 IEN5 +#define IEN_ICU_IRQ6 IEN6 +#define IEN_ICU_IRQ7 IEN7 +#define IEN_ICU_IRQ8 IEN0 +#define IEN_ICU_IRQ9 IEN1 +#define IEN_ICU_IRQ10 IEN2 +#define IEN_ICU_IRQ11 IEN3 +#define IEN_ICU_IRQ12 IEN4 +#define IEN_ICU_IRQ13 IEN5 +#define IEN_ICU_IRQ14 IEN6 +#define IEN_ICU_IRQ15 IEN7 +#define IEN_USB_USBR0 IEN2 +#define IEN_USB_USBR1 IEN3 +#define IEN_RTC_ALARM IEN4 +#define IEN_RTC_PRD IEN5 +#define IEN_AD0_ADI0 IEN2 +#define IEN_S12AD0_S12ADI0 IEN6 +#define IEN_ICU_GROUPE0 IEN2 +#define IEN_ICU_GROUPE1 IEN3 +#define IEN_ICU_GROUPE2 IEN4 +#define IEN_ICU_GROUPE3 IEN5 +#define IEN_ICU_GROUPE4 IEN6 +#define IEN_ICU_GROUPE5 IEN7 +#define IEN_ICU_GROUPE6 IEN0 +#define IEN_ICU_GROUPL0 IEN2 +#define IEN_SCIX_SCIX0 IEN2 +#define IEN_SCIX_SCIX1 IEN3 +#define IEN_SCIX_SCIX2 IEN4 +#define IEN_SCIX_SCIX3 IEN5 +#define IEN_TPU0_TGI0A IEN6 +#define IEN_TPU0_TGI0B IEN7 +#define IEN_TPU0_TGI0C IEN0 +#define IEN_TPU0_TGI0D IEN1 +#define IEN_TPU1_TGI1A IEN2 +#define IEN_TPU1_TGI1B IEN3 +#define IEN_TPU2_TGI2A IEN4 +#define IEN_TPU2_TGI2B IEN5 +#define IEN_TPU3_TGI3A IEN6 +#define IEN_TPU3_TGI3B IEN7 +#define IEN_TPU3_TGI3C IEN0 +#define IEN_TPU3_TGI3D IEN1 +#define IEN_TPU4_TGI4A IEN2 +#define IEN_TPU4_TGI4B IEN3 +#define IEN_TPU5_TGI5A IEN4 +#define IEN_TPU5_TGI5B IEN5 +#define IEN_TPU6_TGI6A IEN6 +#define IEN_TPU6_TGI6B IEN7 +#define IEN_TPU6_TGI6C IEN0 +#define IEN_TPU6_TGI6D IEN1 +#define IEN_MTU0_TGIA0 IEN6 +#define IEN_MTU0_TGIB0 IEN7 +#define IEN_MTU0_TGIC0 IEN0 +#define IEN_MTU0_TGID0 IEN1 +#define IEN_MTU0_TGIE0 IEN2 +#define IEN_MTU0_TGIF0 IEN3 +#define IEN_TPU7_TGI7A IEN4 +#define IEN_TPU7_TGI7B IEN5 +#define IEN_MTU1_TGIA1 IEN4 +#define IEN_MTU1_TGIB1 IEN5 +#define IEN_TPU8_TGI8A IEN6 +#define IEN_TPU8_TGI8B IEN7 +#define IEN_MTU2_TGIA2 IEN6 +#define IEN_MTU2_TGIB2 IEN7 +#define IEN_TPU9_TGI9A IEN0 +#define IEN_TPU9_TGI9B IEN1 +#define IEN_TPU9_TGI9C IEN2 +#define IEN_TPU9_TGI9D IEN3 +#define IEN_MTU3_TGIA3 IEN0 +#define IEN_MTU3_TGIB3 IEN1 +#define IEN_MTU3_TGIC3 IEN2 +#define IEN_MTU3_TGID3 IEN3 +#define IEN_TPU10_TGI10A IEN4 +#define IEN_TPU10_TGI10B IEN5 +#define IEN_MTU4_TGIA4 IEN4 +#define IEN_MTU4_TGIB4 IEN5 +#define IEN_MTU4_TGIC4 IEN6 +#define IEN_MTU4_TGID4 IEN7 +#define IEN_MTU4_TCIV4 IEN0 +#define IEN_MTU5_TGIU5 IEN1 +#define IEN_MTU5_TGIV5 IEN2 +#define IEN_MTU5_TGIW5 IEN3 +#define IEN_TPU11_TGI11A IEN4 +#define IEN_TPU11_TGI11B IEN5 +#define IEN_POE_OEI1 IEN6 +#define IEN_POE_OEI2 IEN7 +#define IEN_TMR0_CMIA0 IEN2 +#define IEN_TMR0_CMIB0 IEN3 +#define IEN_TMR0_OVI0 IEN4 +#define IEN_TMR1_CMIA1 IEN5 +#define IEN_TMR1_CMIB1 IEN6 +#define IEN_TMR1_OVI1 IEN7 +#define IEN_TMR2_CMIA2 IEN0 +#define IEN_TMR2_CMIB2 IEN1 +#define IEN_TMR2_OVI2 IEN2 +#define IEN_TMR3_CMIA3 IEN3 +#define IEN_TMR3_CMIB3 IEN4 +#define IEN_TMR3_OVI3 IEN5 +#define IEN_RIIC0_EEI0 IEN6 +#define IEN_RIIC0_RXI0 IEN7 +#define IEN_RIIC0_TXI0 IEN0 +#define IEN_RIIC0_TEI0 IEN1 +#define IEN_RIIC1_EEI1 IEN2 +#define IEN_RIIC1_RXI1 IEN3 +#define IEN_RIIC1_TXI1 IEN4 +#define IEN_RIIC1_TEI1 IEN5 +#define IEN_RIIC2_EEI2 IEN6 +#define IEN_RIIC2_RXI2 IEN7 +#define IEN_RIIC2_TXI2 IEN0 +#define IEN_RIIC2_TEI2 IEN1 +#define IEN_RIIC3_EEI3 IEN2 +#define IEN_RIIC3_RXI3 IEN3 +#define IEN_RIIC3_TXI3 IEN4 +#define IEN_RIIC3_TEI3 IEN5 +#define IEN_DMAC_DMAC0I IEN6 +#define IEN_DMAC_DMAC1I IEN7 +#define IEN_DMAC_DMAC2I IEN0 +#define IEN_DMAC_DMAC3I IEN1 +#define IEN_EXDMAC_EXDMAC0I IEN2 +#define IEN_EXDMAC_EXDMAC1I IEN3 +#define IEN_SCI0_RXI0 IEN6 +#define IEN_SCI0_TXI0 IEN7 +#define IEN_SCI0_TEI0 IEN0 +#define IEN_SCI1_RXI1 IEN1 +#define IEN_SCI1_TXI1 IEN2 +#define IEN_SCI1_TEI1 IEN3 +#define IEN_SCI2_RXI2 IEN4 +#define IEN_SCI2_TXI2 IEN5 +#define IEN_SCI2_TEI2 IEN6 +#define IEN_SCI3_RXI3 IEN7 +#define IEN_SCI3_TXI3 IEN0 +#define IEN_SCI3_TEI3 IEN1 +#define IEN_SCI4_RXI4 IEN2 +#define IEN_SCI4_TXI4 IEN3 +#define IEN_SCI4_TEI4 IEN4 +#define IEN_SCI5_RXI5 IEN5 +#define IEN_SCI5_TXI5 IEN6 +#define IEN_SCI5_TEI5 IEN7 +#define IEN_SCI6_RXI6 IEN0 +#define IEN_SCI6_TXI6 IEN1 +#define IEN_SCI6_TEI6 IEN2 +#define IEN_SCI7_RXI7 IEN3 +#define IEN_SCI7_TXI7 IEN4 +#define IEN_SCI7_TEI7 IEN5 +#define IEN_SCI8_RXI8 IEN6 +#define IEN_SCI8_TXI8 IEN7 +#define IEN_SCI8_TEI8 IEN0 +#define IEN_SCI9_RXI9 IEN1 +#define IEN_SCI9_TXI9 IEN2 +#define IEN_SCI9_TEI9 IEN3 +#define IEN_SCI10_RXI10 IEN4 +#define IEN_SCI10_TXI10 IEN5 +#define IEN_SCI10_TEI10 IEN6 +#define IEN_SCI11_RXI11 IEN7 +#define IEN_SCI11_TXI11 IEN0 +#define IEN_SCI11_TEI11 IEN1 +#define IEN_SCI12_RXI12 IEN2 +#define IEN_SCI12_TXI12 IEN3 +#define IEN_SCI12_TEI12 IEN4 +#define IEN_IEB_IEBINT IEN5 + +#define VECT_BSC_BUSERR 16 +#define VECT_FCU_FIFERR 21 +#define VECT_FCU_FRDYI 23 +#define VECT_ICU_SWINT 27 +#define VECT_CMT0_CMI0 28 +#define VECT_CMT1_CMI1 29 +#define VECT_CMT2_CMI2 30 +#define VECT_CMT3_CMI3 31 +#define VECT_ETHER_EINT 32 +#define VECT_USB0_D0FIFO0 33 +#define VECT_USB0_D1FIFO0 34 +#define VECT_USB0_USBI0 35 +#define VECT_USB1_D0FIFO1 36 +#define VECT_USB1_D1FIFO1 37 +#define VECT_USB1_USBI1 38 +#define VECT_RSPI0_SPRI0 39 +#define VECT_RSPI0_SPTI0 40 +#define VECT_RSPI0_SPII0 41 +#define VECT_RSPI1_SPRI1 42 +#define VECT_RSPI1_SPTI1 43 +#define VECT_RSPI1_SPII1 44 +#define VECT_RSPI2_SPRI2 45 +#define VECT_RSPI2_SPTI2 46 +#define VECT_RSPI2_SPII2 47 +#define VECT_CAN0_RXF0 48 +#define VECT_CAN0_TXF0 49 +#define VECT_CAN0_RXM0 50 +#define VECT_CAN0_TXM0 51 +#define VECT_CAN1_RXF1 52 +#define VECT_CAN1_TXF1 53 +#define VECT_CAN1_RXM1 54 +#define VECT_CAN1_TXM1 55 +#define VECT_CAN2_RXF2 56 +#define VECT_CAN2_TXF2 57 +#define VECT_CAN2_RXM2 58 +#define VECT_CAN2_TXM2 59 +#define VECT_RTC_COUNTUP 62 +#define VECT_ICU_IRQ0 64 +#define VECT_ICU_IRQ1 65 +#define VECT_ICU_IRQ2 66 +#define VECT_ICU_IRQ3 67 +#define VECT_ICU_IRQ4 68 +#define VECT_ICU_IRQ5 69 +#define VECT_ICU_IRQ6 70 +#define VECT_ICU_IRQ7 71 +#define VECT_ICU_IRQ8 72 +#define VECT_ICU_IRQ9 73 +#define VECT_ICU_IRQ10 74 +#define VECT_ICU_IRQ11 75 +#define VECT_ICU_IRQ12 76 +#define VECT_ICU_IRQ13 77 +#define VECT_ICU_IRQ14 78 +#define VECT_ICU_IRQ15 79 +#define VECT_USB_USBR0 90 +#define VECT_USB_USBR1 91 +#define VECT_RTC_ALARM 92 +#define VECT_RTC_PRD 93 +#define VECT_AD0_ADI0 98 +#define VECT_S12AD0_S12ADI0 102 +#define VECT_ICU_GROUPE0 106 +#define VECT_ICU_GROUPE1 107 +#define VECT_ICU_GROUPE2 108 +#define VECT_ICU_GROUPE3 109 +#define VECT_ICU_GROUPE4 110 +#define VECT_ICU_GROUPE5 111 +#define VECT_ICU_GROUPE6 112 +#define VECT_ICU_GROUPL0 114 +#define VECT_SCIX_SCIX0 122 +#define VECT_SCIX_SCIX1 123 +#define VECT_SCIX_SCIX2 124 +#define VECT_SCIX_SCIX3 125 +#define VECT_TPU0_TGI0A 126 +#define VECT_TPU0_TGI0B 127 +#define VECT_TPU0_TGI0C 128 +#define VECT_TPU0_TGI0D 129 +#define VECT_TPU1_TGI1A 130 +#define VECT_TPU1_TGI1B 131 +#define VECT_TPU2_TGI2A 132 +#define VECT_TPU2_TGI2B 133 +#define VECT_TPU3_TGI3A 134 +#define VECT_TPU3_TGI3B 135 +#define VECT_TPU3_TGI3C 136 +#define VECT_TPU3_TGI3D 137 +#define VECT_TPU4_TGI4A 138 +#define VECT_TPU4_TGI4B 139 +#define VECT_TPU5_TGI5A 140 +#define VECT_TPU5_TGI5B 141 +#define VECT_TPU6_TGI6A 142 +#define VECT_TPU6_TGI6B 143 +#define VECT_TPU6_TGI6C 144 +#define VECT_TPU6_TGI6D 145 +#define VECT_MTU0_TGIA0 142 +#define VECT_MTU0_TGIB0 143 +#define VECT_MTU0_TGIC0 144 +#define VECT_MTU0_TGID0 145 +#define VECT_MTU0_TGIE0 146 +#define VECT_MTU0_TGIF0 147 +#define VECT_TPU7_TGI7A 148 +#define VECT_TPU7_TGI7B 149 +#define VECT_MTU1_TGIA1 148 +#define VECT_MTU1_TGIB1 149 +#define VECT_TPU8_TGI8A 150 +#define VECT_TPU8_TGI8B 151 +#define VECT_MTU2_TGIA2 150 +#define VECT_MTU2_TGIB2 151 +#define VECT_TPU9_TGI9A 152 +#define VECT_TPU9_TGI9B 153 +#define VECT_TPU9_TGI9C 154 +#define VECT_TPU9_TGI9D 155 +#define VECT_MTU3_TGIA3 152 +#define VECT_MTU3_TGIB3 153 +#define VECT_MTU3_TGIC3 154 +#define VECT_MTU3_TGID3 155 +#define VECT_TPU10_TGI10A 156 +#define VECT_TPU10_TGI10B 157 +#define VECT_MTU4_TGIA4 156 +#define VECT_MTU4_TGIB4 157 +#define VECT_MTU4_TGIC4 158 +#define VECT_MTU4_TGID4 159 +#define VECT_MTU4_TCIV4 160 +#define VECT_MTU5_TGIU5 161 +#define VECT_MTU5_TGIV5 162 +#define VECT_MTU5_TGIW5 163 +#define VECT_TPU11_TGI11A 164 +#define VECT_TPU11_TGI11B 165 +#define VECT_POE_OEI1 166 +#define VECT_POE_OEI2 167 +#define VECT_TMR0_CMIA0 170 +#define VECT_TMR0_CMIB0 171 +#define VECT_TMR0_OVI0 172 +#define VECT_TMR1_CMIA1 173 +#define VECT_TMR1_CMIB1 174 +#define VECT_TMR1_OVI1 175 +#define VECT_TMR2_CMIA2 176 +#define VECT_TMR2_CMIB2 177 +#define VECT_TMR2_OVI2 178 +#define VECT_TMR3_CMIA3 179 +#define VECT_TMR3_CMIB3 180 +#define VECT_TMR3_OVI3 181 +#define VECT_RIIC0_EEI0 182 +#define VECT_RIIC0_RXI0 183 +#define VECT_RIIC0_TXI0 184 +#define VECT_RIIC0_TEI0 185 +#define VECT_RIIC1_EEI1 186 +#define VECT_RIIC1_RXI1 187 +#define VECT_RIIC1_TXI1 188 +#define VECT_RIIC1_TEI1 189 +#define VECT_RIIC2_EEI2 190 +#define VECT_RIIC2_RXI2 191 +#define VECT_RIIC2_TXI2 192 +#define VECT_RIIC2_TEI2 193 +#define VECT_RIIC3_EEI3 194 +#define VECT_RIIC3_RXI3 195 +#define VECT_RIIC3_TXI3 196 +#define VECT_RIIC3_TEI3 197 +#define VECT_DMAC_DMAC0I 198 +#define VECT_DMAC_DMAC1I 199 +#define VECT_DMAC_DMAC2I 200 +#define VECT_DMAC_DMAC3I 201 +#define VECT_EXDMAC_EXDMAC0I 202 +#define VECT_EXDMAC_EXDMAC1I 203 +#define VECT_SCI0_RXI0 214 +#define VECT_SCI0_TXI0 215 +#define VECT_SCI0_TEI0 216 +#define VECT_SCI1_RXI1 217 +#define VECT_SCI1_TXI1 218 +#define VECT_SCI1_TEI1 219 +#define VECT_SCI2_RXI2 220 +#define VECT_SCI2_TXI2 221 +#define VECT_SCI2_TEI2 222 +#define VECT_SCI3_RXI3 223 +#define VECT_SCI3_TXI3 224 +#define VECT_SCI3_TEI3 225 +#define VECT_SCI4_RXI4 226 +#define VECT_SCI4_TXI4 227 +#define VECT_SCI4_TEI4 228 +#define VECT_SCI5_RXI5 229 +#define VECT_SCI5_TXI5 230 +#define VECT_SCI5_TEI5 231 +#define VECT_SCI6_RXI6 232 +#define VECT_SCI6_TXI6 233 +#define VECT_SCI6_TEI6 234 +#define VECT_SCI7_RXI7 235 +#define VECT_SCI7_TXI7 236 +#define VECT_SCI7_TEI7 237 +#define VECT_SCI8_RXI8 238 +#define VECT_SCI8_TXI8 239 +#define VECT_SCI8_TEI8 240 +#define VECT_SCI9_RXI9 241 +#define VECT_SCI9_TXI9 242 +#define VECT_SCI9_TEI9 243 +#define VECT_SCI10_RXI10 244 +#define VECT_SCI10_TXI10 245 +#define VECT_SCI10_TEI10 246 +#define VECT_SCI11_RXI11 247 +#define VECT_SCI11_TXI11 248 +#define VECT_SCI11_TEI11 249 +#define VECT_SCI12_RXI12 250 +#define VECT_SCI12_TXI12 251 +#define VECT_SCI12_TEI12 252 +#define VECT_IEB_IEBINT 253 + +#define MSTP_DMAC SYSTEM.MSTPCRA.BIT.MSTPA28 +#define MSTP_DMAC0 SYSTEM.MSTPCRA.BIT.MSTPA28 +#define MSTP_DMAC1 SYSTEM.MSTPCRA.BIT.MSTPA28 +#define MSTP_DMAC2 SYSTEM.MSTPCRA.BIT.MSTPA28 +#define MSTP_DMAC3 SYSTEM.MSTPCRA.BIT.MSTPA28 +#define MSTP_DTC SYSTEM.MSTPCRA.BIT.MSTPA28 +#define MSTP_AD SYSTEM.MSTPCRA.BIT.MSTPA23 +#define MSTP_DA SYSTEM.MSTPCRA.BIT.MSTPA19 +#define MSTP_S12AD SYSTEM.MSTPCRA.BIT.MSTPA17 +#define MSTP_CMT0 SYSTEM.MSTPCRA.BIT.MSTPA15 +#define MSTP_CMT1 SYSTEM.MSTPCRA.BIT.MSTPA15 +#define MSTP_CMT2 SYSTEM.MSTPCRA.BIT.MSTPA14 +#define MSTP_CMT3 SYSTEM.MSTPCRA.BIT.MSTPA14 +#define MSTP_TPU0 SYSTEM.MSTPCRA.BIT.MSTPA13 +#define MSTP_TPU1 SYSTEM.MSTPCRA.BIT.MSTPA13 +#define MSTP_TPU2 SYSTEM.MSTPCRA.BIT.MSTPA13 +#define MSTP_TPU3 SYSTEM.MSTPCRA.BIT.MSTPA13 +#define MSTP_TPU4 SYSTEM.MSTPCRA.BIT.MSTPA13 +#define MSTP_TPU5 SYSTEM.MSTPCRA.BIT.MSTPA13 +#define MSTP_TPU6 SYSTEM.MSTPCRA.BIT.MSTPA12 +#define MSTP_TPU7 SYSTEM.MSTPCRA.BIT.MSTPA12 +#define MSTP_TPU8 SYSTEM.MSTPCRA.BIT.MSTPA12 +#define MSTP_TPU9 SYSTEM.MSTPCRA.BIT.MSTPA12 +#define MSTP_TPU10 SYSTEM.MSTPCRA.BIT.MSTPA12 +#define MSTP_TPU11 SYSTEM.MSTPCRA.BIT.MSTPA12 +#define MSTP_PPG0 SYSTEM.MSTPCRA.BIT.MSTPA11 +#define MSTP_PPG1 SYSTEM.MSTPCRA.BIT.MSTPA10 +#define MSTP_MTU SYSTEM.MSTPCRA.BIT.MSTPA9 +#define MSTP_MTU0 SYSTEM.MSTPCRA.BIT.MSTPA9 +#define MSTP_MTU1 SYSTEM.MSTPCRA.BIT.MSTPA9 +#define MSTP_MTU2 SYSTEM.MSTPCRA.BIT.MSTPA9 +#define MSTP_MTU3 SYSTEM.MSTPCRA.BIT.MSTPA9 +#define MSTP_MTU4 SYSTEM.MSTPCRA.BIT.MSTPA9 +#define MSTP_MTU5 SYSTEM.MSTPCRA.BIT.MSTPA9 +#define MSTP_TMR0 SYSTEM.MSTPCRA.BIT.MSTPA5 +#define MSTP_TMR1 SYSTEM.MSTPCRA.BIT.MSTPA5 +#define MSTP_TMR01 SYSTEM.MSTPCRA.BIT.MSTPA5 +#define MSTP_TMR2 SYSTEM.MSTPCRA.BIT.MSTPA4 +#define MSTP_TMR3 SYSTEM.MSTPCRA.BIT.MSTPA4 +#define MSTP_TMR23 SYSTEM.MSTPCRA.BIT.MSTPA4 +#define MSTP_SCI0 SYSTEM.MSTPCRB.BIT.MSTPB31 +#define MSTP_SMCI0 SYSTEM.MSTPCRB.BIT.MSTPB31 +#define MSTP_SCI1 SYSTEM.MSTPCRB.BIT.MSTPB30 +#define MSTP_SMCI1 SYSTEM.MSTPCRB.BIT.MSTPB30 +#define MSTP_SCI2 SYSTEM.MSTPCRB.BIT.MSTPB29 +#define MSTP_SMCI2 SYSTEM.MSTPCRB.BIT.MSTPB29 +#define MSTP_SCI3 SYSTEM.MSTPCRB.BIT.MSTPB28 +#define MSTP_SMCI3 SYSTEM.MSTPCRB.BIT.MSTPB28 +#define MSTP_SCI4 SYSTEM.MSTPCRB.BIT.MSTPB27 +#define MSTP_SMCI4 SYSTEM.MSTPCRB.BIT.MSTPB27 +#define MSTP_SCI5 SYSTEM.MSTPCRB.BIT.MSTPB26 +#define MSTP_SMCI5 SYSTEM.MSTPCRB.BIT.MSTPB26 +#define MSTP_SCI6 SYSTEM.MSTPCRB.BIT.MSTPB25 +#define MSTP_SMCI6 SYSTEM.MSTPCRB.BIT.MSTPB25 +#define MSTP_SCI7 SYSTEM.MSTPCRB.BIT.MSTPB24 +#define MSTP_SMCI7 SYSTEM.MSTPCRB.BIT.MSTPB24 +#define MSTP_CRC SYSTEM.MSTPCRB.BIT.MSTPB23 +#define MSTP_RIIC0 SYSTEM.MSTPCRB.BIT.MSTPB21 +#define MSTP_RIIC1 SYSTEM.MSTPCRB.BIT.MSTPB20 +#define MSTP_USB0 SYSTEM.MSTPCRB.BIT.MSTPB19 +#define MSTP_RSPI0 SYSTEM.MSTPCRB.BIT.MSTPB17 +#define MSTP_RSPI1 SYSTEM.MSTPCRB.BIT.MSTPB16 +#define MSTP_TEMPS SYSTEM.MSTPCRB.BIT.MSTPB8 +#define MSTP_SCI12 SYSTEM.MSTPCRB.BIT.MSTPB4 +#define MSTP_SMCI12 SYSTEM.MSTPCRB.BIT.MSTPB4 +#define MSTP_CAN2 SYSTEM.MSTPCRB.BIT.MSTPB2 +#define MSTP_CAN1 SYSTEM.MSTPCRB.BIT.MSTPB1 +#define MSTP_CAN0 SYSTEM.MSTPCRB.BIT.MSTPB0 +#define MSTP_SCI8 SYSTEM.MSTPCRC.BIT.MSTPC27 +#define MSTP_SMCI8 SYSTEM.MSTPCRC.BIT.MSTPC27 +#define MSTP_SCI9 SYSTEM.MSTPCRC.BIT.MSTPC26 +#define MSTP_SMCI9 SYSTEM.MSTPCRC.BIT.MSTPC26 +#define MSTP_SCI10 SYSTEM.MSTPCRC.BIT.MSTPC25 +#define MSTP_SMCI10 SYSTEM.MSTPCRC.BIT.MSTPC25 +#define MSTP_SCI11 SYSTEM.MSTPCRC.BIT.MSTPC24 +#define MSTP_SMCI11 SYSTEM.MSTPCRC.BIT.MSTPC24 +#define MSTP_RSPI2 SYSTEM.MSTPCRC.BIT.MSTPC22 +#define MSTP_LVD SYSTEM.MSTPCRC.BIT.MSTPC20 +#define MSTP_IEB SYSTEM.MSTPCRC.BIT.MSTPC18 +#define MSTP_RIIC2 SYSTEM.MSTPCRC.BIT.MSTPC17 +#define MSTP_RIIC3 SYSTEM.MSTPCRC.BIT.MSTPC16 +#define MSTP_RAM1 SYSTEM.MSTPCRC.BIT.MSTPC1 +#define MSTP_RAM0 SYSTEM.MSTPCRC.BIT.MSTPC0 + +#define IS_CAN0_ERS0 IS0 +#define IS_CAN1_ERS1 IS1 +#define IS_CAN2_ERS2 IS2 +#define IS_MTU0_TCIV0 IS0 +#define IS_MTU1_TCIV1 IS1 +#define IS_MTU1_TCIU1 IS2 +#define IS_MTU2_TCIV2 IS0 +#define IS_MTU2_TCIU2 IS1 +#define IS_MTU3_TCIV3 IS2 +#define IS_TPU0_TCI0V IS0 +#define IS_TPU1_TCI1V IS1 +#define IS_TPU1_TCI1U IS2 +#define IS_TPU5_TCI5V IS3 +#define IS_TPU5_TCI5U IS4 +#define IS_TPU2_TCI2V IS0 +#define IS_TPU2_TCI2U IS1 +#define IS_TPU3_TCI3V IS2 +#define IS_TPU4_TCI4V IS3 +#define IS_TPU4_TCI4U IS4 +#define IS_TPU6_TCI6V IS0 +#define IS_TPU7_TCI7V IS1 +#define IS_TPU7_TCI7U IS2 +#define IS_TPU11_TCI11V IS3 +#define IS_TPU11_TCI11U IS4 +#define IS_TPU8_TCI8V IS0 +#define IS_TPU8_TCI8U IS1 +#define IS_TPU9_TCI9V IS2 +#define IS_TPU10_TCI10V IS3 +#define IS_TPU10_TCI10U IS4 +#define IS_SCI0_ERI0 IS0 +#define IS_SCI1_ERI1 IS1 +#define IS_SCI2_ERI2 IS2 +#define IS_SCI3_ERI3 IS3 +#define IS_SCI4_ERI4 IS4 +#define IS_SCI5_ERI5 IS5 +#define IS_SCI6_ERI6 IS6 +#define IS_SCI7_ERI7 IS7 +#define IS_SCI8_ERI8 IS8 +#define IS_SCI9_ERI9 IS9 +#define IS_SCI10_ERI10 IS10 +#define IS_SCI11_ERI11 IS11 +#define IS_SCI12_ERI12 IS12 +#define IS_RSPI0_SPEI0 IS13 +#define IS_RSPI1_SPEI1 IS14 +#define IS_RSPI2_SPEI2 IS15 + +#define EN_CAN0_ERS0 EN0 +#define EN_CAN1_ERS1 EN1 +#define EN_CAN2_ERS2 EN2 +#define EN_MTU0_TCIV0 EN0 +#define EN_MTU1_TCIV1 EN1 +#define EN_MTU1_TCIU1 EN2 +#define EN_MTU2_TCIV2 EN0 +#define EN_MTU2_TCIU2 EN1 +#define EN_MTU3_TCIV3 EN2 +#define EN_TPU0_TCI0V EN0 +#define EN_TPU1_TCI1V EN1 +#define EN_TPU1_TCI1U EN2 +#define EN_TPU5_TCI5V EN3 +#define EN_TPU5_TCI5U EN4 +#define EN_TPU2_TCI2V EN0 +#define EN_TPU2_TCI2U EN1 +#define EN_TPU3_TCI3V EN2 +#define EN_TPU4_TCI4V EN3 +#define EN_TPU4_TCI4U EN4 +#define EN_TPU6_TCI6V EN0 +#define EN_TPU7_TCI7V EN1 +#define EN_TPU7_TCI7U EN2 +#define EN_TPU11_TCI11V EN3 +#define EN_TPU11_TCI11U EN4 +#define EN_TPU8_TCI8V EN0 +#define EN_TPU8_TCI8U EN1 +#define EN_TPU9_TCI9V EN2 +#define EN_TPU10_TCI10V EN3 +#define EN_TPU10_TCI10U EN4 +#define EN_SCI0_ERI0 EN0 +#define EN_SCI1_ERI1 EN1 +#define EN_SCI2_ERI2 EN2 +#define EN_SCI3_ERI3 EN3 +#define EN_SCI4_ERI4 EN4 +#define EN_SCI5_ERI5 EN5 +#define EN_SCI6_ERI6 EN6 +#define EN_SCI7_ERI7 EN7 +#define EN_SCI8_ERI8 EN8 +#define EN_SCI9_ERI9 EN9 +#define EN_SCI10_ERI10 EN10 +#define EN_SCI11_ERI11 EN11 +#define EN_SCI12_ERI12 EN12 +#define EN_RSPI0_SPEI0 EN13 +#define EN_RSPI1_SPEI1 EN14 +#define EN_RSPI2_SPEI2 EN15 + +#define CLR_CAN0_ERS0 CLR0 +#define CLR_CAN1_ERS1 CLR1 +#define CLR_CAN2_ERS2 CLR2 +#define CLR_MTU0_TCIV0 CLR0 +#define CLR_MTU1_TCIV1 CLR1 +#define CLR_MTU1_TCIU1 CLR2 +#define CLR_MTU2_TCIV2 CLR0 +#define CLR_MTU2_TCIU2 CLR1 +#define CLR_MTU3_TCIV3 CLR2 +#define CLR_TPU0_TCI0V CLR0 +#define CLR_TPU1_TCI1V CLR1 +#define CLR_TPU1_TCI1U CLR2 +#define CLR_TPU5_TCI5V CLR3 +#define CLR_TPU5_TCI5U CLR4 +#define CLR_TPU2_TCI2V CLR0 +#define CLR_TPU2_TCI2U CLR1 +#define CLR_TPU3_TCI3V CLR2 +#define CLR_TPU4_TCI4V CLR3 +#define CLR_TPU4_TCI4U CLR4 +#define CLR_TPU6_TCI6V CLR0 +#define CLR_TPU7_TCI7V CLR1 +#define CLR_TPU7_TCI7U CLR2 +#define CLR_TPU11_TCI11V CLR3 +#define CLR_TPU11_TCI11U CLR4 +#define CLR_TPU8_TCI8V CLR0 +#define CLR_TPU8_TCI8U CLR1 +#define CLR_TPU9_TCI9V CLR2 +#define CLR_TPU10_TCI10V CLR3 +#define CLR_TPU10_TCI10U CLR4 +#define CLR_SCI0_ERI0 CLR0 +#define CLR_SCI1_ERI1 CLR1 +#define CLR_SCI2_ERI2 CLR2 +#define CLR_SCI3_ERI3 CLR3 +#define CLR_SCI4_ERI4 CLR4 +#define CLR_SCI5_ERI5 CLR5 +#define CLR_SCI6_ERI6 CLR6 +#define CLR_SCI7_ERI7 CLR7 +#define CLR_SCI8_ERI8 CLR8 +#define CLR_SCI9_ERI9 CLR9 +#define CLR_SCI10_ERI10 CLR10 +#define CLR_SCI11_ERI11 CLR11 +#define CLR_SCI12_ERI12 CLR12 +#define CLR_RSPI0_SPEI0 CLR13 +#define CLR_RSPI1_SPEI1 CLR14 +#define CLR_RSPI2_SPEI2 CLR15 + +#define CN_TPU6_TGI6A CN0 +#define CN_TPU6_TGI6B CN0 +#define CN_TPU6_TGI6C CN0 +#define CN_TPU6_TGI6D CN0 +#define CN_MTU0_TGIA0 CN0 +#define CN_MTU0_TGIB0 CN0 +#define CN_MTU0_TGIC0 CN0 +#define CN_MTU0_TGID0 CN0 +#define CN_MTU0_TGIE0 CN0 +#define CN_MTU0_TGIF0 CN0 +#define CN_TPU7_TGI7A CN1 +#define CN_TPU7_TGI7B CN1 +#define CN_MTU1_TGIA1 CN1 +#define CN_MTU1_TGIB1 CN1 +#define CN_TPU8_TGI8A CN2 +#define CN_TPU8_TGI8B CN2 +#define CN_MTU2_TGIA2 CN2 +#define CN_MTU2_TGIB2 CN2 +#define CN_TPU9_TGI9A CN3 +#define CN_TPU9_TGI9B CN3 +#define CN_TPU9_TGI9C CN3 +#define CN_TPU9_TGI9D CN3 +#define CN_MTU3_TGIA3 CN3 +#define CN_MTU3_TGIB3 CN3 +#define CN_MTU3_TGIC3 CN3 +#define CN_MTU3_TGID3 CN3 +#define CN_TPU10_TGI10A CN4 +#define CN_TPU10_TGI10B CN4 +#define CN_MTU4_TGIA4 CN4 +#define CN_MTU4_TGIB4 CN4 +#define CN_MTU4_TGIC4 CN4 +#define CN_MTU4_TGID4 CN4 +#define CN_MTU4_TGIV4 CN4 +#define CN_TPU11_TGI11A CN5 +#define CN_TPU11_TGI11B CN5 +#define CN_MTU5_TGIU5 CN5 +#define CN_MTU5_TGIV5 CN5 +#define CN_MTU5_TGIW5 CN5 +#define CN_TPU6_ CN0 +#define CN_MTU0_ CN0 +#define CN_TPU7_ CN1 +#define CN_MTU1_ CN1 +#define CN_TPU8_ CN2 +#define CN_MTU2_ CN2 +#define CN_TPU9_ CN3 +#define CN_MTU3_ CN3 +#define CN_TPU10_ CN4 +#define CN_MTU4_ CN4 +#define CN_TPU11_ CN5 +#define CN_MTU5_ CN5 + +#define __IR( x ) ICU.IR[ IR ## x ].BIT.IR +#define _IR( x ) __IR( x ) +#define IR( x , y ) _IR( _ ## x ## _ ## y ) +#define __DTCE( x ) ICU.DTCER[ DTCE ## x ].BIT.DTCE +#define _DTCE( x ) __DTCE( x ) +#define DTCE( x , y ) _DTCE( _ ## x ## _ ## y ) +#define __IEN( x ) ICU.IER[ IER ## x ].BIT.IEN ## x +#define _IEN( x ) __IEN( x ) +#define IEN( x , y ) _IEN( _ ## x ## _ ## y ) +#define __IPR( x ) ICU.IPR[ IPR ## x ].BIT.IPR +#define _IPR( x ) __IPR( x ) +#define IPR( x , y ) _IPR( _ ## x ## _ ## y ) +#define __VECT( x ) VECT ## x +#define _VECT( x ) __VECT( x ) +#define VECT( x , y ) _VECT( _ ## x ## _ ## y ) +#define __MSTP( x ) MSTP ## x +#define _MSTP( x ) __MSTP( x ) +#define MSTP( x ) _MSTP( _ ## x ) + +#define __IS( x ) ICU.GRP[ GRP ## x ].BIT.IS ## x +#define _IS( x ) __IS( x ) +#define IS( x , y ) _IS( _ ## x ## _ ## y ) +#define __EN( x ) ICU.GEN[ GEN ## x ].BIT.EN ## x +#define _EN( x ) __EN( x ) +#define EN( x , y ) _EN( _ ## x ## _ ## y ) +#define __CLR( x ) ICU.GCR[ GCR ## x ].BIT.CLR ## x +#define _CLR( x ) __CLR( x ) +#define CLR( x , y ) _CLR( _ ## x ## _ ## y ) +#define __CN( x ) ICU.SEL.BIT.CN ## x +#define _CN( x ) __CN( x ) +#define CN( x , y ) _CN( _ ## x ## _ ## y ) + +#define AD (*(volatile struct st_ad __evenaccess *)0x89800) +#define BSC (*(volatile struct st_bsc __evenaccess *)0x81300) +#define CAN0 (*(volatile struct st_can __evenaccess *)0x90200) +#define CAN1 (*(volatile struct st_can __evenaccess *)0x91200) +#define CAN2 (*(volatile struct st_can __evenaccess *)0x92200) +#define CMT (*(volatile struct st_cmt __evenaccess *)0x88000) +#define CMT0 (*(volatile struct st_cmt0 __evenaccess *)0x88002) +#define CMT1 (*(volatile struct st_cmt0 __evenaccess *)0x88008) +#define CMT2 (*(volatile struct st_cmt0 __evenaccess *)0x88012) +#define CMT3 (*(volatile struct st_cmt0 __evenaccess *)0x88018) +#define CRC (*(volatile struct st_crc __evenaccess *)0x88280) +#define DA (*(volatile struct st_da __evenaccess *)0x880C0) +#define DMAC (*(volatile struct st_dmac __evenaccess *)0x82200) +#define DMAC0 (*(volatile struct st_dmac0 __evenaccess *)0x82000) +#define DMAC1 (*(volatile struct st_dmac1 __evenaccess *)0x82040) +#define DMAC2 (*(volatile struct st_dmac1 __evenaccess *)0x82080) +#define DMAC3 (*(volatile struct st_dmac1 __evenaccess *)0x820C0) +#define DTC (*(volatile struct st_dtc __evenaccess *)0x82400) +#define EDMAC (*(volatile struct st_edmac __evenaccess *)0xC0000) +#define ETHERC (*(volatile struct st_etherc __evenaccess *)0xC0100) +#define EXDMAC (*(volatile struct st_exdmac __evenaccess *)0x82A00) +#define EXDMAC0 (*(volatile struct st_exdmac0 __evenaccess *)0x82800) +#define EXDMAC1 (*(volatile struct st_exdmac1 __evenaccess *)0x82840) +#define FLASH (*(volatile struct st_flash __evenaccess *)0x8C296) +#define ICU (*(volatile struct st_icu __evenaccess *)0x87000) +#define IEB (*(volatile struct st_ieb __evenaccess *)0x8A800) +#define IWDT (*(volatile struct st_iwdt __evenaccess *)0x88030) +#define MPC (*(volatile struct st_mpc __evenaccess *)0x8C100) +#define MTU (*(volatile struct st_mtu __evenaccess *)0x8860A) +#define MTU0 (*(volatile struct st_mtu0 __evenaccess *)0x88690) +#define MTU1 (*(volatile struct st_mtu1 __evenaccess *)0x88690) +#define MTU2 (*(volatile struct st_mtu2 __evenaccess *)0x88692) +#define MTU3 (*(volatile struct st_mtu3 __evenaccess *)0x88600) +#define MTU4 (*(volatile struct st_mtu4 __evenaccess *)0x88600) +#define MTU5 (*(volatile struct st_mtu5 __evenaccess *)0x88694) +#define POE (*(volatile struct st_poe __evenaccess *)0x88900) +#define PORT0 (*(volatile struct st_port0 __evenaccess *)0x8C000) +#define PORT1 (*(volatile struct st_port1 __evenaccess *)0x8C001) +#define PORT2 (*(volatile struct st_port2 __evenaccess *)0x8C002) +#define PORT3 (*(volatile struct st_port3 __evenaccess *)0x8C003) +#define PORT4 (*(volatile struct st_port4 __evenaccess *)0x8C004) +#define PORT5 (*(volatile struct st_port5 __evenaccess *)0x8C005) +#define PORT6 (*(volatile struct st_port6 __evenaccess *)0x8C006) +#define PORT7 (*(volatile struct st_port7 __evenaccess *)0x8C007) +#define PORT8 (*(volatile struct st_port8 __evenaccess *)0x8C008) +#define PORT9 (*(volatile struct st_port9 __evenaccess *)0x8C009) +#define PORTA (*(volatile struct st_porta __evenaccess *)0x8C00A) +#define PORTB (*(volatile struct st_portb __evenaccess *)0x8C00B) +#define PORTC (*(volatile struct st_portc __evenaccess *)0x8C00C) +#define PORTD (*(volatile struct st_portd __evenaccess *)0x8C00D) +#define PORTE (*(volatile struct st_porte __evenaccess *)0x8C00E) +#define PORTF (*(volatile struct st_portf __evenaccess *)0x8C00F) +#define PORTG (*(volatile struct st_portg __evenaccess *)0x8C010) +#define PORTH (*(volatile struct st_porth __evenaccess *)0x8C0D1) +#define PORTJ (*(volatile struct st_portj __evenaccess *)0x8C012) +#define PPG0 (*(volatile struct st_ppg0 __evenaccess *)0x881E6) +#define PPG1 (*(volatile struct st_ppg1 __evenaccess *)0x881F0) +#define RIIC0 (*(volatile struct st_riic0 __evenaccess *)0x88300) +#define RIIC1 (*(volatile struct st_riic1 __evenaccess *)0x88320) +#define RIIC2 (*(volatile struct st_riic1 __evenaccess *)0x88340) +#define RIIC3 (*(volatile struct st_riic1 __evenaccess *)0x88360) +#define RSPI0 (*(volatile struct st_rspi __evenaccess *)0x88380) +#define RSPI1 (*(volatile struct st_rspi __evenaccess *)0x883A0) +#define RSPI2 (*(volatile struct st_rspi __evenaccess *)0x883C0) +#define RTC (*(volatile struct st_rtc __evenaccess *)0x8C400) +#define S12AD (*(volatile struct st_s12ad __evenaccess *)0x89000) +#define SCI0 (*(volatile struct st_sci0 __evenaccess *)0x8A000) +#define SCI1 (*(volatile struct st_sci0 __evenaccess *)0x8A020) +#define SCI2 (*(volatile struct st_sci0 __evenaccess *)0x8A040) +#define SCI3 (*(volatile struct st_sci0 __evenaccess *)0x8A060) +#define SCI4 (*(volatile struct st_sci0 __evenaccess *)0x8A080) +#define SCI5 (*(volatile struct st_sci0 __evenaccess *)0x8A0A0) +#define SCI6 (*(volatile struct st_sci0 __evenaccess *)0x8A0C0) +#define SCI7 (*(volatile struct st_sci7 __evenaccess *)0x8A0E0) +#define SCI8 (*(volatile struct st_sci0 __evenaccess *)0x8A100) +#define SCI9 (*(volatile struct st_sci0 __evenaccess *)0x8A120) +#define SCI10 (*(volatile struct st_sci0 __evenaccess *)0x8A140) +#define SCI11 (*(volatile struct st_sci0 __evenaccess *)0x8A160) +#define SCI12 (*(volatile struct st_sci12 __evenaccess *)0x8B300) +#define SMCI0 (*(volatile struct st_smci0 __evenaccess *)0x8A000) +#define SMCI1 (*(volatile struct st_smci0 __evenaccess *)0x8A020) +#define SMCI2 (*(volatile struct st_smci0 __evenaccess *)0x8A040) +#define SMCI3 (*(volatile struct st_smci0 __evenaccess *)0x8A060) +#define SMCI4 (*(volatile struct st_smci0 __evenaccess *)0x8A080) +#define SMCI5 (*(volatile struct st_smci0 __evenaccess *)0x8A0A0) +#define SMCI6 (*(volatile struct st_smci0 __evenaccess *)0x8A0C0) +#define SMCI7 (*(volatile struct st_smci7 __evenaccess *)0x8A0E0) +#define SMCI8 (*(volatile struct st_smci0 __evenaccess *)0x8A100) +#define SMCI9 (*(volatile struct st_smci0 __evenaccess *)0x8A120) +#define SMCI10 (*(volatile struct st_smci0 __evenaccess *)0x8A140) +#define SMCI11 (*(volatile struct st_smci0 __evenaccess *)0x8A160) +#define SMCI12 (*(volatile struct st_smci0 __evenaccess *)0x8B300) +#define SYSTEM (*(volatile struct st_system __evenaccess *)0x80000) +#define TEMPS (*(volatile struct st_temps __evenaccess *)0x8C500) +#define TMR0 (*(volatile struct st_tmr0 __evenaccess *)0x88200) +#define TMR1 (*(volatile struct st_tmr1 __evenaccess *)0x88201) +#define TMR2 (*(volatile struct st_tmr0 __evenaccess *)0x88210) +#define TMR3 (*(volatile struct st_tmr1 __evenaccess *)0x88211) +#define TMR01 (*(volatile struct st_tmr01 __evenaccess *)0x88204) +#define TMR23 (*(volatile struct st_tmr01 __evenaccess *)0x88214) +#define TPU0 (*(volatile struct st_tpu0 __evenaccess *)0x88108) +#define TPU1 (*(volatile struct st_tpu1 __evenaccess *)0x88108) +#define TPU2 (*(volatile struct st_tpu2 __evenaccess *)0x8810A) +#define TPU3 (*(volatile struct st_tpu3 __evenaccess *)0x8810A) +#define TPU4 (*(volatile struct st_tpu4 __evenaccess *)0x8810C) +#define TPU5 (*(volatile struct st_tpu5 __evenaccess *)0x8810C) +#define TPU6 (*(volatile struct st_tpu0 __evenaccess *)0x88178) +#define TPU7 (*(volatile struct st_tpu1 __evenaccess *)0x88178) +#define TPU8 (*(volatile struct st_tpu2 __evenaccess *)0x8817A) +#define TPU9 (*(volatile struct st_tpu3 __evenaccess *)0x8817A) +#define TPU10 (*(volatile struct st_tpu4 __evenaccess *)0x8817C) +#define TPU11 (*(volatile struct st_tpu5 __evenaccess *)0x8817C) +#define TPUA (*(volatile struct st_tpua __evenaccess *)0x88100) +#define TPUB (*(volatile struct st_tpub __evenaccess *)0x88170) +#define USB (*(volatile struct st_usb __evenaccess *)0xA0400) +#define USB0 (*(volatile struct st_usb0 __evenaccess *)0xA0000) +#define USB1 (*(volatile struct st_usb1 __evenaccess *)0xA0200) +#define WDT (*(volatile struct st_wdt __evenaccess *)0x88020) +#pragma bit_order +#pragma packoption +#endif diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/include/lowsrc.h b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/include/lowsrc.h new file mode 100644 index 000000000..4d2aabfc7 --- /dev/null +++ b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/include/lowsrc.h @@ -0,0 +1,13 @@ +/***********************************************************************/ +/* */ +/* FILE :lowsrc.h */ +/* DATE :Wed, Aug 11, 2010 */ +/* DESCRIPTION :Header file of I/O Stream file */ +/* CPU TYPE :Other */ +/* */ +/* This file is generated by Renesas Project Generator (Ver.4.50). */ +/* NOTE:THIS IS A TYPICAL EXAMPLE. */ +/* */ +/***********************************************************************/ +/*Number of I/O Stream*/ +#define IOSTREAM 20 diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/include/rskrx63ndef.h b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/include/rskrx63ndef.h new file mode 100644 index 000000000..2291cb40e --- /dev/null +++ b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/include/rskrx63ndef.h @@ -0,0 +1,107 @@ + +/****************************************************************************** +* DISCLAIMER +* Please refer to http://www.renesas.com/disclaimer +****************************************************************************** + Copyright (C) 2011. Renesas Electronics Corp., All Rights Reserved. +******************************************************************************* +* File Name : rsksh7216.h +* Version : 1.00 +* Description : RSK RX63N board specific settings +****************************************************************************** +* History : DD.MM.YYYY Version Description +* : 12.09.2011 1.00 First Release +******************************************************************************/ + +#ifndef RSKRX63N_H +#define RSKRX63N_H + +/****************************************************************************** +Includes , "Project Includes" +******************************************************************************/ + +/****************************************************************************** +Typedef definitions +******************************************************************************/ + +/****************************************************************************** +Macro definitions +******************************************************************************/ + +/* System Clock Settings */ + +/* DETAIL THIS LATER !!!! */ + +#define XTAL_FREQUENCY (12000000L) +#define PLL_MUL (16) +#define PLL_INPUT_FREQ_DIV (1) +#define ICLK_DIV (2) +#define PCLK_DIV (4) +#define BCLK_DIV (4) +#define PLL_FREQUENCY (XTAL_FREQUENCY * (PLL_MUL / PLL_INPUT_FREQ_DIV)) +#define ICLK_FREQUENCY (PLL_FREQUENCY / ICLK_DIV) +#define PCLK_FREQUENCY (PLL_FREQUENCY / PCLK_DIV) +#define BCLK_FREQUENCY (PLL_FREQUENCY / BCLK_DIV) + +#define CMT0_CLK_SELECT (512) + +/* General Values */ +#define LED_ON (0) +#define LED_OFF (1) +#define SET_BIT_HIGH (1) +#define SET_BIT_LOW (0) +#define SET_BYTE_HIGH (0xFF) +#define SET_BYTE_LOW (0x00) + +/* Define switches to be polled if not available as interrupts */ +#define SW_ACTIVE FALSE +#define SW1 PORT0.DR.BIT.B0 +#define SW2 PORT0.DR.BIT.B1 +#define SW3 PORT0.DR.BIT.B7 +#define SW1_DDR PORT0.DDR.BIT.B0 +#define SW2_DDR PORT0.DDR.BIT.B1 +#define SW3_DDR PORT0.DDR.BIT.B7 +#define SW1_ICR PORT0.ICR.BIT.B0 +#define SW2_ICR PORT0.ICR.BIT.B1 +#define SW3_ICR PORT0.ICR.BIT.B7 + +/* LEDs */ +#define LED0 PORT0.PODR.BIT.B3 +#define LED1 PORT0.PODR.BIT.B5 +#define LED2 PORT1.PODR.BIT.B0 +#define LED3 PORT1.PODR.BIT.B1 +//#define LED4 PORT6.DR.BIT.B0 +//#define LED5 PORT7.DR.BIT.B3 +#define LED0_PDR PORT0.PDR.BIT.B3 +#define LED1_PDR PORT0.PDR.BIT.B5 +#define LED2_PDR PORT1.PDR.BIT.B0 +#define LED3_PDR PORT1.PDR.BIT.B1 +//#define LED4_DDR PORT6.DDR.BIT.B0 +//#define LED5_DDR PORT7.DDR.BIT.B3 + +/* 2x8 segment LCD */ +#if 0 +#define INCLUDE_LCD 1 +#define LCD_RS PORTJ.PODR.BIT.B1 +#define LCD_EN PORTJ.PODR.BIT.B3 +#define LCD_DATA PORTH.PODR.BYTE + +#define LCD_RS_DDR PORTJ.PDR.BIT.B1 +#define LCD_EN_DDR PORTJ.PDR.BIT.B3 +#define LCD_DATA_DDR PORTH.PDR.BYTE +#endif + + +/****************************************************************************** +Variable Externs +******************************************************************************/ + +/****************************************************************************** +Functions Prototypes +******************************************************************************/ + + + +/* RSKRX63N_H */ +#endif + diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/include/stacksct.h b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/include/stacksct.h new file mode 100644 index 000000000..1d5db830d --- /dev/null +++ b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/include/stacksct.h @@ -0,0 +1,13 @@ +/***********************************************************************/ +/* */ +/* FILE :stacksct.h */ +/* DATE :Wed, Aug 11, 2010 */ +/* DESCRIPTION :Setting of Stack area */ +/* CPU TYPE :Other */ +/* */ +/* This file is generated by Renesas Project Generator (Ver.4.50). */ +/* NOTE:THIS IS A TYPICAL EXAMPLE. */ +/* */ +/***********************************************************************/ +#pragma stacksize su=0x300 +#pragma stacksize si=0x100 diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/include/typedefine.h b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/include/typedefine.h new file mode 100644 index 000000000..d3ad67fec --- /dev/null +++ b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/include/typedefine.h @@ -0,0 +1,41 @@ +/***********************************************************************/ +/* */ +/* FILE :typedefine.h */ +/* DATE :Wed, Aug 11, 2010 */ +/* DESCRIPTION :Aliases of Integer Type */ +/* CPU TYPE :Other */ +/* */ +/* This file is generated by Renesas Project Generator (Ver.4.50). */ +/* NOTE:THIS IS A TYPICAL EXAMPLE. */ +/* */ +/***********************************************************************/ + + + +/********************************************************************* +* +* Device : RX +* +* File Name : typedefine.h +* +* Abstract : Aliases of Integer Type. +* +* History : 1.00 (2009-08-07) +* +* NOTE : THIS IS A TYPICAL EXAMPLE. +* +* Copyright(c) 2009 Renesas Technology Corp. +* And Renesas Solutions Corp.,All Rights Reserved. +* +*********************************************************************/ + +typedef signed char _SBYTE; +typedef unsigned char _UBYTE; +typedef signed short _SWORD; +typedef unsigned short _UWORD; +typedef signed int _SINT; +typedef unsigned int _UINT; +typedef signed long _SDWORD; +typedef unsigned long _UDWORD; +typedef signed long long _SQWORD; +typedef unsigned long long _UQWORD; diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/include/vect.h b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/include/vect.h new file mode 100644 index 000000000..a6a48946b --- /dev/null +++ b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/include/vect.h @@ -0,0 +1,60 @@ +/***********************************************************************/ +/* */ +/* FILE :vect.h */ +/* DATE :Wed, Aug 11, 2010 */ +/* DESCRIPTION :Definition of Vector */ +/* CPU TYPE :Other */ +/* */ +/* This file is generated by Renesas Project Generator (Ver.4.50). */ +/* NOTE:THIS IS A TYPICAL EXAMPLE. */ +/* */ +/***********************************************************************/ + + + +/********************************************************************* +* +* Device : RX/RX600 +* +* File Name : vect.h +* +* Abstract : Definition of Vector. +* +* History : 1.00 (2009-08-07) +* +* NOTE : THIS IS A TYPICAL EXAMPLE. +* +* Copyright(c) 2009 Renesas Technology Corp. +* And Renesas Solutions Corp.,All Rights Reserved. +* +*********************************************************************/ + +// Exception(Supervisor Instruction) +#pragma interrupt (Excep_SuperVisorInst) +void Excep_SuperVisorInst(void); + +// Exception(Undefined Instruction) +#pragma interrupt (Excep_UndefinedInst) +void Excep_UndefinedInst(void); + +// Exception(Floating Point) +#pragma interrupt (Excep_FloatingPoint) +void Excep_FloatingPoint(void); + +// NMI +#pragma interrupt (NonMaskableInterrupt) +void NonMaskableInterrupt(void); + +// Dummy +#pragma interrupt (Dummy) +void Dummy(void); + +// BRK +#pragma interrupt (Excep_BRK(vect=0)) +void Excep_BRK(void); + +//;<> +//;Power On Reset PC +extern void PowerON_Reset_PC(void); +//;<> + diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/main-blinky.c b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/main-blinky.c new file mode 100644 index 000000000..013e1452d --- /dev/null +++ b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/main-blinky.c @@ -0,0 +1,264 @@ +/* + FreeRTOS V7.1.0 - Copyright (C) 2011 Real Time Engineers Ltd. + + + *************************************************************************** + * * + * FreeRTOS tutorial books are available in pdf and paperback. * + * Complete, revised, and edited pdf reference manuals are also * + * available. * + * * + * Purchasing FreeRTOS documentation will not only help you, by * + * ensuring you get running as quickly as possible and with an * + * in-depth knowledge of how to use FreeRTOS, it will also help * + * the FreeRTOS project to continue with its mission of providing * + * professional grade, cross platform, de facto standard solutions * + * for microcontrollers - completely free of charge! * + * * + * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * + * * + * Thank you for using FreeRTOS, and thank you for your support! * + * * + *************************************************************************** + + + This file is part of the FreeRTOS distribution. + + FreeRTOS is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License (version 2) as published by the + Free Software Foundation AND MODIFIED BY the FreeRTOS exception. + >>>NOTE<<< The modification to the GPL is included to allow you to + distribute a combined work that includes FreeRTOS without being obliged to + provide the source code for proprietary components outside of the FreeRTOS + kernel. FreeRTOS is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. You should have received a copy of the GNU General Public + License and the FreeRTOS license exception along with FreeRTOS; if not it + can be viewed here: http://www.freertos.org/a00114.html and also obtained + by writing to Richard Barry, contact details for whom are available on the + FreeRTOS WEB site. + + 1 tab == 4 spaces! + + http://www.FreeRTOS.org - Documentation, latest information, license and + contact details. + + http://www.SafeRTOS.com - A version that is certified for use in safety + critical systems. + + http://www.OpenRTOS.com - Commercial support, development, porting, + licensing and training services. +*/ + +/* + * This is a very simple demo that creates two tasks, one queue, and one + * software timer. For a much more complete and complex example select either + * the Debug or Debug_with_optimisation build configurations within the HEW, + * which build main_full.c in place of this file. + * + * One task (the queue receive task) blocks on the queue to wait for data to + * arrive, toggling LED0 each time '100' is received. The other task (the + * queue send task) repeatedly blocks for a fixed period before sending '100' + * to the queue (causing the first task to toggle the LED). + * + * The software timer is configured to auto-reload. The timer callback + * function periodically toggles LED1. + */ + +/* Hardware specific includes. */ +#include "iodefine.h" + +/* Kernel includes. */ +#include "FreeRTOS.h" +#include "task.h" +#include "timers.h" +#include "queue.h" + +/* Priorities at which the tasks are created. */ +#define configQUEUE_RECEIVE_TASK_PRIORITY ( tskIDLE_PRIORITY + 1 ) +#define configQUEUE_SEND_TASK_PRIORITY ( tskIDLE_PRIORITY + 2 ) + +/* The rate at which data is sent to the queue, specified in milliseconds. */ +#define mainQUEUE_SEND_PERIOD_MS ( 500 / portTICK_RATE_MS ) + +/* The period of the software timer, specified in milliseconds. */ +#define mainSOFTWARE_TIMER_PERIOD_MS ( 150 / portTICK_RATE_MS ) + +/* The number of items the queue can hold. This is 1 as the receive task +will remove items as they are added so the send task should always find the +queue empty. */ +#define mainQUEUE_LENGTH ( 1 ) + +/* The LEDs toggle by the task and timer respectively. */ +#define mainTASK_LED ( 0 ) +#define mainTIMER_LED ( 1 ) + +/* + * The tasks as defined at the top of this file. + */ +static void prvQueueReceiveTask( void *pvParameters ); +static void prvQueueSendTask( void *pvParameters ); + +/* + * The callback function used by the software timer. + */ +static void prvBlinkyTimerCallback( xTimerHandle xTimer ); + +/* The queue used by both tasks. */ +static xQueueHandle xQueue = NULL; + +/* This variable is not used by this simple Blinky example. It is defined +purely to allow the project to link as it is used by the full project. */ +volatile unsigned long ulHighFrequencyTickCount = 0UL; +/*-----------------------------------------------------------*/ + +void main(void) +{ +xTimerHandle xTimer; + + /* Turn all LEDs off. */ + vParTestInitialise(); + + /* Create the queue. */ + xQueue = xQueueCreate( mainQUEUE_LENGTH, sizeof( unsigned long ) ); + + /* Create the software timer, as described at the top of this file. */ + xTimer = xTimerCreate( "BlinkyTimer", /* Just a text name to make debugging easier - not used by the scheduler. */ + mainSOFTWARE_TIMER_PERIOD_MS, /* The timer period. */ + pdTRUE, /* Set to pdTRUE for periodic timer, or pdFALSE for one-shot timer. */ + NULL, /* The timer ID is not required. */ + prvBlinkyTimerCallback ); /* The function executed when the timer expires. */ + + if( xTimer != NULL ) + { + /* Start the timer - it will not actually start running until the + scheduler has started. The block time is set to 0, although, because + xTimerStart() is being called before the scheduler has been started, + the any block time specified would be ignored anyway. */ + xTimerStart( xTimer, 0UL ); + } + + if( xQueue != NULL ) + { + /* Start the two tasks as described at the top of this file. */ + xTaskCreate( prvQueueReceiveTask, /* The function that implements the task. */ + "Rx", /* Just a text name to make debugging easier - not used by the scheduler. */ + configMINIMAL_STACK_SIZE, /* The size of the task stack, in words. */ + NULL, /* The task parameter is not used. */ + configQUEUE_RECEIVE_TASK_PRIORITY, /* The priority assigned to the task when it is created. */ + NULL ); /* The task handle is not used. */ + + xTaskCreate( prvQueueSendTask, "TX", configMINIMAL_STACK_SIZE, NULL, configQUEUE_SEND_TASK_PRIORITY, NULL ); + + /* Start the tasks running. */ + vTaskStartScheduler(); + } + + /* If all is well we will never reach here as the scheduler will now be + running. If we do reach here then it is likely that there was insufficient + heap available for the idle task to be created. */ + for( ;; ); +} +/*-----------------------------------------------------------*/ + +static void prvQueueSendTask( void *pvParameters ) +{ +portTickType xNextWakeTime; +const unsigned long ulValueToSend = 100UL; + + /* Initialise xNextWakeTime - this only needs to be done once. */ + xNextWakeTime = xTaskGetTickCount(); + + for( ;; ) + { + /* Place this task in the blocked state until it is time to run again. + The block state is specified in ticks, the constant used converts ticks + to ms. */ + vTaskDelayUntil( &xNextWakeTime, mainQUEUE_SEND_PERIOD_MS ); + + /* Send to the queue - causing the queue receive task to flash its LED. 0 + is used so the send does not block - it shouldn't need to as the queue + should always be empty here. */ + xQueueSend( xQueue, &ulValueToSend, 0 ); + } +} +/*-----------------------------------------------------------*/ + +static void prvQueueReceiveTask( void *pvParameters ) +{ +unsigned long ulReceivedValue; + + for( ;; ) + { + /* Wait until something arives in the queue - this will block + indefinitely provided INCLUDE_vTaskSuspend is set to 1 in + FreeRTOSConfig.h. */ + xQueueReceive( xQueue, &ulReceivedValue, portMAX_DELAY ); + + /* To get here something must have arrived, but is it the expected + value? If it is, toggle the LED. */ + if( ulReceivedValue == 100UL ) + { + vParTestToggleLED( mainTASK_LED ); + } + } +} +/*-----------------------------------------------------------*/ + +static void prvBlinkyTimerCallback( xTimerHandle xTimer ) +{ + /* The software timer does nothing but toggle an LED. */ + vParTestToggleLED( mainTIMER_LED ); +} +/*-----------------------------------------------------------*/ + +void vApplicationSetupTimerInterrupt( void ) +{ + /* Enable compare match timer 0. */ + MSTP( CMT0 ) = 0; + + /* Interrupt on compare match. */ + CMT0.CMCR.BIT.CMIE = 1; + + /* Set the compare match value. */ + CMT0.CMCOR = ( unsigned short ) ( ( ( configPERIPHERAL_CLOCK_HZ / configTICK_RATE_HZ ) -1 ) / 8 ); + + /* Divide the PCLK by 8. */ + CMT0.CMCR.BIT.CKS = 0; + + /* Enable the interrupt... */ + _IEN( _CMT0_CMI0 ) = 1; + + /* ...and set its priority to the application defined kernel priority. */ + _IPR( _CMT0_CMI0 ) = configKERNEL_INTERRUPT_PRIORITY; + + /* Start the timer. */ + CMT.CMSTR0.BIT.STR0 = 1; +} +/*-----------------------------------------------------------*/ + +/* This function is explained by the comments above its prototype at the top +of this file. */ +void vApplicationMallocFailedHook( void ) +{ + for( ;; ); +} +/*-----------------------------------------------------------*/ + +/* This function is explained by the comments above its prototype at the top +of this file. */ +void vApplicationStackOverflowHook( xTaskHandle pxTask, signed char *pcTaskName ) +{ + for( ;; ); +} +/*-----------------------------------------------------------*/ + +/* This function is explained by the comments above its prototype at the top +of this file. */ +void vApplicationIdleHook( void ) +{ + /* Just to prevent the variable getting optimised away. */ + ( void ) ulHighFrequencyTickCount; +} +/*-----------------------------------------------------------*/ diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/main-full.c b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/main-full.c new file mode 100644 index 000000000..99da36b17 --- /dev/null +++ b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/main-full.c @@ -0,0 +1,702 @@ +/* + FreeRTOS V7.1.0 - Copyright (C) 2011 Real Time Engineers Ltd. + + + *************************************************************************** + * * + * FreeRTOS tutorial books are available in pdf and paperback. * + * Complete, revised, and edited pdf reference manuals are also * + * available. * + * * + * Purchasing FreeRTOS documentation will not only help you, by * + * ensuring you get running as quickly as possible and with an * + * in-depth knowledge of how to use FreeRTOS, it will also help * + * the FreeRTOS project to continue with its mission of providing * + * professional grade, cross platform, de facto standard solutions * + * for microcontrollers - completely free of charge! * + * * + * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * + * * + * Thank you for using FreeRTOS, and thank you for your support! * + * * + *************************************************************************** + + + This file is part of the FreeRTOS distribution. + + FreeRTOS is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License (version 2) as published by the + Free Software Foundation AND MODIFIED BY the FreeRTOS exception. + >>>NOTE<<< The modification to the GPL is included to allow you to + distribute a combined work that includes FreeRTOS without being obliged to + provide the source code for proprietary components outside of the FreeRTOS + kernel. FreeRTOS is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. You should have received a copy of the GNU General Public + License and the FreeRTOS license exception along with FreeRTOS; if not it + can be viewed here: http://www.freertos.org/a00114.html and also obtained + by writing to Richard Barry, contact details for whom are available on the + FreeRTOS WEB site. + + 1 tab == 4 spaces! + + http://www.FreeRTOS.org - Documentation, latest information, license and + contact details. + + http://www.SafeRTOS.com - A version that is certified for use in safety + critical systems. + + http://www.OpenRTOS.com - Commercial support, development, porting, + licensing and training services. +*/ + +/* **************************************************************************** + * This project includes a lot of tasks and tests and is therefore complex. + * If you would prefer a much simpler project to get started with then select + * the 'Blinky' build configuration within the HEW IDE. The Blinky + * configuration builds main-blinky.c in place of this file. + * **************************************************************************** + * + * Creates all the demo application tasks, then starts the scheduler. The web + * documentation provides more details of the standard demo application tasks, + * which provide no particular functionality but do provide a good example of + * how to use the FreeRTOS API. The tasks defined in flop.c are included in the + * set of standard demo tasks to ensure the floating point unit gets some + * exercise. + * + * In addition to the standard demo tasks, the following tasks and tests are + * defined and/or created within this file: + * + * Webserver ("uIP") task - This serves a number of dynamically generated WEB + * pages to a standard WEB browser. The IP and MAC addresses are configured by + * constants defined at the bottom of FreeRTOSConfig.h. Use either a standard + * Ethernet cable to connect through a hug, or a cross over (point to point) + * cable to connect directly. Ensure the IP address used is compatible with the + * IP address of the machine running the browser - the easiest way to achieve + * this is to ensure the first three octets of the IP addresses are the same. + * + * "Reg test" tasks - These fill the registers with known values, then check + * that each register still contains its expected value. Each task uses + * different values. The tasks run with very low priority so get preempted + * very frequently. A check variable is incremented on each iteration of the + * test loop. A register containing an unexpected value is indicative of an + * error in the context switching mechanism and will result in a branch to a + * null loop - which in turn will prevent the check variable from incrementing + * any further and allow the check task (described below) to determine that an + * error has occurred. The nature of the reg test tasks necessitates that they + * are written in assembly code. + * + * "Check" timer - The check software timer period is initially set to five + * seconds. The callback function associated with the check software timer + * checks that all the standard demo tasks, and the register check tasks, are + * not only still executing, but are executing without reporting any errors. If + * the check software timer discovers that a task has either stalled, or + * reported an error, then it changes its own execution period from the initial + * five seconds, to just 200ms. The check software timer callback function + * also toggles LED3 each time it is called. This provides a visual indication + * of the system status: If LED3 toggles every five seconds, then no issues + * have been discovered. If the LED toggles every 200ms, then an issue has been + * discovered with at least one task. + * + * "High frequency timer test" - A high frequency periodic interrupt is + * generated using a timer - the interrupt is assigned a priority above + * configMAX_SYSCALL_INTERRUPT_PRIORITY so should not be effected by anything + * the kernel is doing. The frequency and priority of the interrupt, in + * combination with other standard tests executed in this demo, should result + * in interrupts nesting at least 3 and probably 4 deep. This test is only + * included in build configurations that have the optimiser switched on. In + * optimised builds the count of high frequency ticks is used as the time base + * for the run time stats. + * + * *NOTE 1* If LED3 is toggling every 5 seconds then all the demo application + * tasks are executing as expected and no errors have been reported in any + * tasks. The toggle rate increasing to 200ms indicates that at least one task + * has reported unexpected behaviour. + * + * *NOTE 2* vApplicationSetupTimerInterrupt() is called by the kernel to let + * the application set up a timer to generate the tick interrupt. In this + * example a compare match timer is used for this purpose. + * + * *NOTE 3* The CPU must be in Supervisor mode when the scheduler is started. + * The PowerON_Reset_PC() supplied in resetprg.c with this demo has + * Change_PSW_PM_to_UserMode() commented out to ensure this is the case. + * + * *NOTE 4* The IntQueue common demo tasks test interrupt nesting and make use + * of all the 8bit timers (as two cascaded 16bit units). + * + * * +*/ + +#include + +/* Hardware specific includes. */ +#include "iodefine.h" + +/* Kernel includes. */ +#include "FreeRTOS.h" +#include "task.h" +#include "timers.h" +#include "semphr.h" + +/* Standard demo includes. */ +#include "partest.h" +#include "flash_timer.h" +#include "IntQueue.h" +#include "BlockQ.h" +#include "death.h" +#include "integer.h" +#include "blocktim.h" +#include "semtest.h" +#include "PollQ.h" +#include "GenQTest.h" +#include "QPeek.h" +#include "recmutex.h" +#include "flop.h" + +/* Values that are passed into the reg test tasks using the task parameter. The +tasks check that the values are passed in correctly. */ +#define mainREG_TEST_1_PARAMETER ( 0x12121212UL ) +#define mainREG_TEST_2_PARAMETER ( 0x12345678UL ) + +/* Priorities at which the tasks are created. */ +#define mainCHECK_TASK_PRIORITY ( configMAX_PRIORITIES - 1 ) +#define mainQUEUE_POLL_PRIORITY ( tskIDLE_PRIORITY + 1 ) +#define mainSEM_TEST_PRIORITY ( tskIDLE_PRIORITY + 1 ) +#define mainBLOCK_Q_PRIORITY ( tskIDLE_PRIORITY + 2 ) +#define mainCREATOR_TASK_PRIORITY ( tskIDLE_PRIORITY + 3 ) +#define mainuIP_TASK_PRIORITY ( tskIDLE_PRIORITY + 2 ) +#define mainINTEGER_TASK_PRIORITY ( tskIDLE_PRIORITY ) +#define mainGEN_QUEUE_TASK_PRIORITY ( tskIDLE_PRIORITY ) +#define mainFLOP_TASK_PRIORITY ( tskIDLE_PRIORITY ) + +/* The WEB server uses string handling functions, which in turn use a bit more +stack than most of the other tasks. */ +#define mainuIP_STACK_SIZE ( configMINIMAL_STACK_SIZE * 3 ) + +/* The LED toggled by the check timer. */ +#define mainCHECK_LED ( 3 ) + +/* The rate at which mainCHECK_LED will toggle when all the tasks are running +without error. Controlled by the check timer as described at the top of this +file. */ +#define mainNO_ERROR_CHECK_TIMER_PERIOD_MS ( 5000 / portTICK_RATE_MS ) + +/* The rate at which mainCHECK_LED will toggle when an error has been reported +by at least one task. Controlled by the check timer as described at the top of +this file. */ +#define mainERROR_CHECK_TIMER_PERIOD_MS ( 200 / portTICK_RATE_MS ) + +/* A block time of zero simply means "don't block". */ +#define mainDONT_BLOCK ( 0UL ) + +/* A set of timers are created, each of which toggles and LED. This specifies +the number of timers to create. */ +#define mainNUMBER_OF_LEDS_TO_FLASH ( 3 ) + +/* + * vApplicationMallocFailedHook() will only be called if + * configUSE_MALLOC_FAILED_HOOK is set to 1 in FreeRTOSConfig.h. It is a hook + * function that will execute if a call to pvPortMalloc() fails. + * pvPortMalloc() is called internally by the kernel whenever a task, queue or + * semaphore is created. It is also called by various parts of the demo + * application. + */ +void vApplicationMallocFailedHook( void ); + +/* + * vApplicationIdleHook() will only be called if configUSE_IDLE_HOOK is set to 1 + * in FreeRTOSConfig.h. It is a hook function that is called on each iteration + * of the idle task. It is essential that code added to this hook function + * never attempts to block in any way (for example, call xQueueReceive() with + * a block time specified). If the application makes use of the vTaskDelete() + * API function (as this demo application does) then it is also important that + * vApplicationIdleHook() is permitted to return to its calling function because + * it is the responsibility of the idle task to clean up memory allocated by the + * kernel to any task that has since been deleted. + */ +void vApplicationIdleHook( void ); + +/* + * vApplicationStackOverflowHook() will only be called if + * configCHECK_FOR_STACK_OVERFLOW is set to a non-zero value. The handle and + * name of the offending task should be passed in the function parameters, but + * it is possible that the stack overflow will have corrupted these - in which + * case pxCurrentTCB can be inspected to find the same information. + */ +void vApplicationStackOverflowHook( xTaskHandle pxTask, signed char *pcTaskName ); + +/* + * The reg test tasks as described at the top of this file. + */ +static void prvRegTest1Task( void *pvParameters ); +static void prvRegTest2Task( void *pvParameters ); + +/* + * The actual implementation of the reg test functionality, which, because of + * the direct register access, have to be in assembly. + */ +static void prvRegTest1Implementation( void ); +static void prvRegTest2Implementation( void ); + +/* + * The check timer callback function, as described at the top of this file. + */ +static void prvCheckTimerCallback( xTimerHandle xTimer ); + +/* + * Contains the implementation of the WEB server. + */ +extern void vuIP_Task( void *pvParameters ); + +/*-----------------------------------------------------------*/ + +/* Variables that are incremented on each iteration of the reg test tasks - +provided the tasks have not reported any errors. The check task inspects these +variables to ensure they are still incrementing as expected. If a variable +stops incrementing then it is likely that its associate task has stalled. */ +unsigned long ulRegTest1CycleCount = 0UL, ulRegTest2CycleCount = 0UL; + +/* The status message that is displayed at the bottom of the "task stats" web +page, which is served by the uIP task. This will report any errors picked up +by the reg test task. */ +const char *pcStatusMessage = "All tasks executing without error."; + +/*-----------------------------------------------------------*/ + +void main(void) +{ +xTimerHandle xCheckTimer; +extern void HardwareSetup( void ); + + /* Turn all LEDs off. */ + vParTestInitialise(); + + /* Start the reg test tasks which test the context switching mechanism. */ + xTaskCreate( prvRegTest1Task, "RegTst1", configMINIMAL_STACK_SIZE, ( void * ) mainREG_TEST_1_PARAMETER, tskIDLE_PRIORITY, NULL ); + xTaskCreate( prvRegTest2Task, "RegTst2", configMINIMAL_STACK_SIZE, ( void * ) mainREG_TEST_2_PARAMETER, tskIDLE_PRIORITY, NULL ); + + /* The web server task. NOTE: COMMENTED OUT AS THE ETHERNET PORT IS NOT + YET BEING CONFIGURED IN hwsetup.c. */ + //xTaskCreate( vuIP_Task, "uIP", mainuIP_STACK_SIZE, NULL, mainuIP_TASK_PRIORITY, NULL ); + + /* Create the standard demo tasks. */ + vStartBlockingQueueTasks( mainBLOCK_Q_PRIORITY ); + vCreateBlockTimeTasks(); + vStartSemaphoreTasks( mainSEM_TEST_PRIORITY ); + vStartPolledQueueTasks( mainQUEUE_POLL_PRIORITY ); + vStartIntegerMathTasks( mainINTEGER_TASK_PRIORITY ); + vStartGenericQueueTasks( mainGEN_QUEUE_TASK_PRIORITY ); + vStartQueuePeekTasks(); + vStartRecursiveMutexTasks(); + vStartInterruptQueueTasks(); + vStartMathTasks( mainFLOP_TASK_PRIORITY ); + + /* Create the timers used to toggle the LEDs. */ + vStartLEDFlashTimers( mainNUMBER_OF_LEDS_TO_FLASH ); + + /* Create the software timer that performs the 'check' functionality, + as described at the top of this file. */ + xCheckTimer = xTimerCreate( "CheckTimer", /* A text name, purely to help debugging. */ + ( mainNO_ERROR_CHECK_TIMER_PERIOD_MS ), /* The timer period, in this case 5000ms (5s). */ + pdTRUE, /* This is an auto-reload timer, so xAutoReload is set to pdTRUE. */ + ( void * ) 0, /* The ID is not used, so can be set to anything. */ + prvCheckTimerCallback /* The callback function that inspects the status of all the other tasks. */ + ); + + if( xCheckTimer != NULL ) + { + xTimerStart( xCheckTimer, mainDONT_BLOCK ); + } + + /* The suicide tasks must be created last as they need to know how many + tasks were running prior to their creation in order to ascertain whether + or not the correct/expected number of tasks are running at any given time. */ + vCreateSuicidalTasks( mainCREATOR_TASK_PRIORITY ); + + /* Start the tasks running. */ + vTaskStartScheduler(); + + /* If all is well, the scheduler will now be running, and the following line + will never be reached. If the following line does execute, then there was + insufficient FreeRTOS heap memory available for the idle and/or timer tasks + to be created. See the memory management section on the FreeRTOS web site + for more details. */ + for( ;; ); +} +/*-----------------------------------------------------------*/ + +static void prvCheckTimerCallback( xTimerHandle xTimer ) +{ +static long lChangedTimerPeriodAlready = pdFALSE; +static unsigned long ulLastRegTest1CycleCount = 0, ulLastRegTest2CycleCount = 0; +long lErrorFound = pdFALSE; + + /* If this is being executed then the kernel has been started. Start the + high frequency timer test as described at the top of this file. This is + only included in the optimised build configuration - otherwise it takes up + too much CPU time and can disrupt other tests. */ + #ifdef INCLUDE_HIGH_FREQUENCY_TIMER_TEST + vSetupHighFrequencyTimer(); + #endif + + /* Check the standard demo tasks are running without error. */ + if( xAreGenericQueueTasksStillRunning() != pdTRUE ) + { + lErrorFound = pdTRUE; + pcStatusMessage = "Error: GenQueue"; + } + else if( xAreQueuePeekTasksStillRunning() != pdTRUE ) + { + lErrorFound = pdTRUE; + pcStatusMessage = "Error: QueuePeek"; + } + else if( xAreBlockingQueuesStillRunning() != pdTRUE ) + { + lErrorFound = pdTRUE; + pcStatusMessage = "Error: BlockQueue"; + } + else if( xAreBlockTimeTestTasksStillRunning() != pdTRUE ) + { + lErrorFound = pdTRUE; + pcStatusMessage = "Error: BlockTime"; + } + else if( xAreSemaphoreTasksStillRunning() != pdTRUE ) + { + lErrorFound = pdTRUE; + pcStatusMessage = "Error: SemTest"; + } + else if( xArePollingQueuesStillRunning() != pdTRUE ) + { + lErrorFound = pdTRUE; + pcStatusMessage = "Error: PollQueue"; + } + else if( xIsCreateTaskStillRunning() != pdTRUE ) + { + lErrorFound = pdTRUE; + pcStatusMessage = "Error: Death"; + } + else if( xAreIntegerMathsTaskStillRunning() != pdTRUE ) + { + lErrorFound = pdTRUE; + pcStatusMessage = "Error: IntMath"; + } + else if( xAreRecursiveMutexTasksStillRunning() != pdTRUE ) + { + lErrorFound = pdTRUE; + pcStatusMessage = "Error: RecMutex"; + } + else if( xAreIntQueueTasksStillRunning() != pdPASS ) + { + lErrorFound = pdTRUE; + pcStatusMessage = "Error: IntQueue"; + } + else if( xAreMathsTaskStillRunning() != pdPASS ) + { + lErrorFound = pdTRUE; + pcStatusMessage = "Error: Flop"; + } + + /* Check the reg test tasks are still cycling. They will stop incrementing + their loop counters if they encounter an error. */ + if( ulRegTest1CycleCount == ulLastRegTest1CycleCount ) + { + lErrorFound = pdTRUE; + pcStatusMessage = "Error: RegTest1"; + } + + if( ulRegTest2CycleCount == ulLastRegTest2CycleCount ) + { + lErrorFound = pdTRUE; + pcStatusMessage = "Error: RegTest2"; + } + + ulLastRegTest1CycleCount = ulRegTest1CycleCount; + ulLastRegTest2CycleCount = ulRegTest2CycleCount; + + /* Toggle the check LED to give an indication of the system status. If + the LED toggles every mainNO_ERROR_CHECK_TIMER_PERIOD_MS milliseconds then + everything is ok. A faster toggle indicates an error. */ + vParTestToggleLED( mainCHECK_LED ); + + /* Have any errors been latch in lErrorFound? If so, shorten the + period of the check timer to mainERROR_CHECK_TIMER_PERIOD_MS milliseconds. + This will result in an increase in the rate at which mainCHECK_LED + toggles. */ + if( lErrorFound != pdFALSE ) + { + if( lChangedTimerPeriodAlready == pdFALSE ) + { + lChangedTimerPeriodAlready = pdTRUE; + + /* This call to xTimerChangePeriod() uses a zero block time. + Functions called from inside of a timer callback function must + *never* attempt to block. */ + xTimerChangePeriod( xTimer, ( mainERROR_CHECK_TIMER_PERIOD_MS ), mainDONT_BLOCK ); + } + } +} +/*-----------------------------------------------------------*/ + +/* The RX port uses this callback function to configure its tick interrupt. +This allows the application to choose the tick interrupt source. */ +void vApplicationSetupTimerInterrupt( void ) +{ + /* Enable compare match timer 0. */ + MSTP( CMT0 ) = 0; + + /* Interrupt on compare match. */ + CMT0.CMCR.BIT.CMIE = 1; + + /* Set the compare match value. */ + CMT0.CMCOR = ( unsigned short ) ( ( ( configPERIPHERAL_CLOCK_HZ / configTICK_RATE_HZ ) -1 ) / 8 ); + + /* Divide the PCLK by 8. */ + CMT0.CMCR.BIT.CKS = 0; + + /* Enable the interrupt... */ + _IEN( _CMT0_CMI0 ) = 1; + + /* ...and set its priority to the application defined kernel priority. */ + _IPR( _CMT0_CMI0 ) = configKERNEL_INTERRUPT_PRIORITY; + + /* Start the timer. */ + CMT.CMSTR0.BIT.STR0 = 1; +} +/*-----------------------------------------------------------*/ + +/* This function is explained by the comments above its prototype at the top +of this file. */ +void vApplicationMallocFailedHook( void ) +{ + for( ;; ); +} +/*-----------------------------------------------------------*/ + +/* This function is explained by the comments above its prototype at the top +of this file. */ +void vApplicationStackOverflowHook( xTaskHandle pxTask, signed char *pcTaskName ) +{ + for( ;; ); +} +/*-----------------------------------------------------------*/ + +/* This function is explained by the comments above its prototype at the top +of this file. */ +void vApplicationIdleHook( void ) +{ +} +/*-----------------------------------------------------------*/ + +/* This function is explained in the comments at the top of this file. */ +static void prvRegTest1Task( void *pvParameters ) +{ + if( ( ( unsigned long ) pvParameters ) != mainREG_TEST_1_PARAMETER ) + { + /* The parameter did not contain the expected value. */ + for( ;; ) + { + /* Stop the tick interrupt so its obvious something has gone wrong. */ + taskDISABLE_INTERRUPTS(); + } + } + + /* This is an inline asm function that never returns. */ + prvRegTest1Implementation(); +} +/*-----------------------------------------------------------*/ + +/* This function is explained in the comments at the top of this file. */ +static void prvRegTest2Task( void *pvParameters ) +{ + if( ( ( unsigned long ) pvParameters ) != mainREG_TEST_2_PARAMETER ) + { + /* The parameter did not contain the expected value. */ + for( ;; ) + { + /* Stop the tick interrupt so its obvious something has gone wrong. */ + taskDISABLE_INTERRUPTS(); + } + } + + /* This is an inline asm function that never returns. */ + prvRegTest2Implementation(); +} +/*-----------------------------------------------------------*/ + +/* This function is explained in the comments at the top of this file. */ +#pragma inline_asm prvRegTest1Implementation +static void prvRegTest1Implementation( void ) +{ + ; Put a known value in each register. + MOV.L #1, R1 + MOV.L #2, R2 + MOV.L #3, R3 + MOV.L #4, R4 + MOV.L #5, R5 + MOV.L #6, R6 + MOV.L #7, R7 + MOV.L #8, R8 + MOV.L #9, R9 + MOV.L #10, R10 + MOV.L #11, R11 + MOV.L #12, R12 + MOV.L #13, R13 + MOV.L #14, R14 + MOV.L #15, R15 + + ; Loop, checking each itteration that each register still contains the + ; expected value. +TestLoop1: + + ; Push the registers that are going to get clobbered. + PUSHM R14-R15 + + ; Increment the loop counter to show this task is still getting CPU time. + MOV.L #_ulRegTest1CycleCount, R14 + MOV.L [ R14 ], R15 + ADD #1, R15 + MOV.L R15, [ R14 ] + + ; Yield to extend the text coverage. Set the bit in the ITU SWINTR register. + MOV.L #1, R14 + MOV.L #0872E0H, R15 + MOV.B R14, [R15] + NOP + NOP + + ; Restore the clobbered registers. + POPM R14-R15 + + ; Now compare each register to ensure it still contains the value that was + ; set before this loop was entered. + CMP #1, R1 + BNE RegTest1Error + CMP #2, R2 + BNE RegTest1Error + CMP #3, R3 + BNE RegTest1Error + CMP #4, R4 + BNE RegTest1Error + CMP #5, R5 + BNE RegTest1Error + CMP #6, R6 + BNE RegTest1Error + CMP #7, R7 + BNE RegTest1Error + CMP #8, R8 + BNE RegTest1Error + CMP #9, R9 + BNE RegTest1Error + CMP #10, R10 + BNE RegTest1Error + CMP #11, R11 + BNE RegTest1Error + CMP #12, R12 + BNE RegTest1Error + CMP #13, R13 + BNE RegTest1Error + CMP #14, R14 + BNE RegTest1Error + CMP #15, R15 + BNE RegTest1Error + + ; All comparisons passed, start a new itteratio of this loop. + BRA TestLoop1 + +RegTest1Error: + ; A compare failed, just loop here so the loop counter stops incrementing + ; causing the check task to indicate the error. + BRA RegTest1Error +} +/*-----------------------------------------------------------*/ + +/* This function is explained in the comments at the top of this file. */ +#pragma inline_asm prvRegTest2Implementation +static void prvRegTest2Implementation( void ) +{ + ; Put a known value in each register. + MOV.L #10, R1 + MOV.L #20, R2 + MOV.L #30, R3 + MOV.L #40, R4 + MOV.L #50, R5 + MOV.L #60, R6 + MOV.L #70, R7 + MOV.L #80, R8 + MOV.L #90, R9 + MOV.L #100, R10 + MOV.L #110, R11 + MOV.L #120, R12 + MOV.L #130, R13 + MOV.L #140, R14 + MOV.L #150, R15 + + ; Loop, checking on each itteration that each register still contains the + ; expected value. +TestLoop2: + + ; Push the registers that are going to get clobbered. + PUSHM R14-R15 + + ; Increment the loop counter to show this task is still getting CPU time. + MOV.L #_ulRegTest2CycleCount, R14 + MOV.L [ R14 ], R15 + ADD #1, R15 + MOV.L R15, [ R14 ] + + ; Restore the clobbered registers. + POPM R14-R15 + + CMP #10, R1 + BNE RegTest2Error + CMP #20, R2 + BNE RegTest2Error + CMP #30, R3 + BNE RegTest2Error + CMP #40, R4 + BNE RegTest2Error + CMP #50, R5 + BNE RegTest2Error + CMP #60, R6 + BNE RegTest2Error + CMP #70, R7 + BNE RegTest2Error + CMP #80, R8 + BNE RegTest2Error + CMP #90, R9 + BNE RegTest2Error + CMP #100, R10 + BNE RegTest2Error + CMP #110, R11 + BNE RegTest2Error + CMP #120, R12 + BNE RegTest2Error + CMP #130, R13 + BNE RegTest2Error + CMP #140, R14 + BNE RegTest2Error + CMP #150, R15 + BNE RegTest2Error + + ; All comparisons passed, start a new itteratio of this loop. + BRA TestLoop2 + +RegTest2Error: + ; A compare failed, just loop here so the loop counter stops incrementing + ; - causing the check task to indicate the error. + BRA RegTest2Error +} +/*-----------------------------------------------------------*/ + +char *pcGetTaskStatusMessage( void ) +{ + /* Not bothered about a critical section here although technically because of + the task priorities the pointer could change it will be atomic if not near + atomic and its not critical. */ + return ( char * ) pcStatusMessage; +} +/*-----------------------------------------------------------*/ + + + diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/uIP_Task.c b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/uIP_Task.c new file mode 100644 index 000000000..eb4453b13 --- /dev/null +++ b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/uIP_Task.c @@ -0,0 +1,345 @@ +/* + FreeRTOS V7.1.0 - Copyright (C) 2011 Real Time Engineers Ltd. + + + *************************************************************************** + * * + * FreeRTOS tutorial books are available in pdf and paperback. * + * Complete, revised, and edited pdf reference manuals are also * + * available. * + * * + * Purchasing FreeRTOS documentation will not only help you, by * + * ensuring you get running as quickly as possible and with an * + * in-depth knowledge of how to use FreeRTOS, it will also help * + * the FreeRTOS project to continue with its mission of providing * + * professional grade, cross platform, de facto standard solutions * + * for microcontrollers - completely free of charge! * + * * + * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * + * * + * Thank you for using FreeRTOS, and thank you for your support! * + * * + *************************************************************************** + + + This file is part of the FreeRTOS distribution. + + FreeRTOS is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License (version 2) as published by the + Free Software Foundation AND MODIFIED BY the FreeRTOS exception. + >>>NOTE<<< The modification to the GPL is included to allow you to + distribute a combined work that includes FreeRTOS without being obliged to + provide the source code for proprietary components outside of the FreeRTOS + kernel. FreeRTOS is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. You should have received a copy of the GNU General Public + License and the FreeRTOS license exception along with FreeRTOS; if not it + can be viewed here: http://www.freertos.org/a00114.html and also obtained + by writing to Richard Barry, contact details for whom are available on the + FreeRTOS WEB site. + + 1 tab == 4 spaces! + + http://www.FreeRTOS.org - Documentation, latest information, license and + contact details. + + http://www.SafeRTOS.com - A version that is certified for use in safety + critical systems. + + http://www.OpenRTOS.com - Commercial support, development, porting, + licensing and training services. +*/ + +/* Standard includes. */ +#include + +/* Scheduler includes. */ +#include "FreeRTOS.h" +#include "task.h" +#include "timers.h" +#include "queue.h" + +/* uip includes. */ +#include "net/uip.h" +#include "net/uip_arp.h" +#include "apps/httpd/httpd.h" +#include "sys/timer.h" +#include "net/clock-arch.h" +#include "r_ether.h" + +/* Demo includes. */ +#include "ParTest.h" + +/*-----------------------------------------------------------*/ + +/* How long to wait before attempting to connect the MAC again. */ +#define uipINIT_WAIT ( 100 / portTICK_RATE_MS ) + +/* Shortcut to the header within the Rx buffer. */ +#define xHeader ((struct uip_eth_hdr *) &uip_buf[ 0 ]) + +/* Standard constant. */ +#define uipTOTAL_FRAME_HEADER_SIZE 54 + +/* The ARP timer and the periodic timer share a callback function, so the +respective timer IDs are used to determine which timer actually expired. These +constants are assigned to the timer IDs. */ +#define uipARP_TIMER 0 +#define uipPERIODIC_TIMER 1 + +/* A block time of zero ticks simply means, "don't block". */ +#define uipDONT_BLOCK 0UL + +/*-----------------------------------------------------------*/ + +/* + * Setup the MAC address in the MAC itself, and in the uIP stack. + */ +static void prvSetMACAddress( void ); + +/* + * Perform any uIP initialisation necessary. + */ +static void prvInitialise_uIP( void ); + +/* + * The callback function that is assigned to both the periodic timer and the + * ARP timer. + */ +static void prvUIPTimerCallback( xTimerHandle xTimer ); + +/* + * Port functions required by the uIP stack. + */ +clock_time_t clock_time( void ); + +/*-----------------------------------------------------------*/ + +/* The queue used to send TCP/IP events to the uIP stack. */ +xQueueHandle xEMACEventQueue = NULL; + +/*-----------------------------------------------------------*/ + +clock_time_t clock_time( void ) +{ + return xTaskGetTickCount(); +} +/*-----------------------------------------------------------*/ + +void vuIP_Task( void *pvParameters ) +{ +portBASE_TYPE i; +unsigned long ulNewEvent = 0UL; +unsigned long ulUIP_Events = 0UL; + + ( void ) pvParameters; + + /* Initialise the uIP stack. */ + prvInitialise_uIP(); + + /* Initialise the MAC. */ + vInitEmac(); + + while( lEMACWaitForLink() != pdPASS ) + { + vTaskDelay( uipINIT_WAIT ); + } + + for( ;; ) + { + if( ( ulUIP_Events & uipETHERNET_RX_EVENT ) != 0UL ) + { + /* Is there received data ready to be processed? */ + uip_len = ( unsigned short ) ulEMACRead(); + + if( ( uip_len > 0 ) && ( uip_buf != NULL ) ) + { + /* Standard uIP loop taken from the uIP manual. */ + if( xHeader->type == htons( UIP_ETHTYPE_IP ) ) + { + uip_arp_ipin(); + uip_input(); + + /* If the above function invocation resulted in data that + should be sent out on the network, the global variable + uip_len is set to a value > 0. */ + if( uip_len > 0 ) + { + uip_arp_out(); + vEMACWrite(); + } + } + else if( xHeader->type == htons( UIP_ETHTYPE_ARP ) ) + { + uip_arp_arpin(); + + /* If the above function invocation resulted in data that + should be sent out on the network, the global variable + uip_len is set to a value > 0. */ + if( uip_len > 0 ) + { + vEMACWrite(); + } + } + } + else + { + ulUIP_Events &= ~uipETHERNET_RX_EVENT; + } + } + + if( ( ulUIP_Events & uipPERIODIC_TIMER_EVENT ) != 0UL ) + { + ulUIP_Events &= ~uipPERIODIC_TIMER_EVENT; + + for( i = 0; i < UIP_CONNS; i++ ) + { + uip_periodic( i ); + + /* If the above function invocation resulted in data that + should be sent out on the network, the global variable + uip_len is set to a value > 0. */ + if( uip_len > 0 ) + { + uip_arp_out(); + vEMACWrite(); + } + } + } + + /* Call the ARP timer function every 10 seconds. */ + if( ( ulUIP_Events & uipARP_TIMER_EVENT ) != 0 ) + { + ulUIP_Events &= ~uipARP_TIMER_EVENT; + uip_arp_timer(); + } + + if( ulUIP_Events == pdFALSE ) + { + xQueueReceive( xEMACEventQueue, &ulNewEvent, portMAX_DELAY ); + ulUIP_Events |= ulNewEvent; + } + } +} +/*-----------------------------------------------------------*/ + +static void prvInitialise_uIP( void ) +{ +xTimerHandle xARPTimer, xPeriodicTimer; +uip_ipaddr_t xIPAddr; +const unsigned long ul_uIPEventQueueLength = 10UL; + + /* Initialise the uIP stack. */ + uip_init(); + uip_ipaddr( &xIPAddr, configIP_ADDR0, configIP_ADDR1, configIP_ADDR2, configIP_ADDR3 ); + uip_sethostaddr( &xIPAddr ); + uip_ipaddr( &xIPAddr, configNET_MASK0, configNET_MASK1, configNET_MASK2, configNET_MASK3 ); + uip_setnetmask( &xIPAddr ); + prvSetMACAddress(); + httpd_init(); + + /* Create the queue used to sent TCP/IP events to the uIP stack. */ + xEMACEventQueue = xQueueCreate( ul_uIPEventQueueLength, sizeof( unsigned long ) ); + + /* Create and start the uIP timers. */ + xARPTimer = xTimerCreate( ( const signed char * const ) "ARPTimer", /* Just a name that is helpful for debugging, not used by the kernel. */ + ( 10000UL / portTICK_RATE_MS ), /* Timer period. */ + pdTRUE, /* Autor-reload. */ + ( void * ) uipARP_TIMER, + prvUIPTimerCallback + ); + + xPeriodicTimer = xTimerCreate( ( const signed char * const ) "PeriodicTimer", + ( 50 / portTICK_RATE_MS ), + pdTRUE, /* Autor-reload. */ + ( void * ) uipPERIODIC_TIMER, + prvUIPTimerCallback + ); + + configASSERT( xARPTimer ); + configASSERT( xPeriodicTimer ); + + xTimerStart( xARPTimer, portMAX_DELAY ); + xTimerStart( xPeriodicTimer, portMAX_DELAY ); +} +/*-----------------------------------------------------------*/ + +static void prvUIPTimerCallback( xTimerHandle xTimer ) +{ +static const unsigned long ulARPTimerExpired = uipARP_TIMER_EVENT; +static const unsigned long ulPeriodicTimerExpired = uipPERIODIC_TIMER_EVENT; + + /* This is a time callback, so calls to xQueueSend() must not attempt to + block. */ + switch( ( int ) pvTimerGetTimerID( xTimer ) ) + { + case uipARP_TIMER : xQueueSend( xEMACEventQueue, &ulARPTimerExpired, uipDONT_BLOCK ); + break; + + case uipPERIODIC_TIMER : xQueueSend( xEMACEventQueue, &ulPeriodicTimerExpired, uipDONT_BLOCK ); + break; + + default : /* Should not get here. */ + break; + } +} +/*-----------------------------------------------------------*/ + +static void prvSetMACAddress( void ) +{ +struct uip_eth_addr xAddr; + + /* Configure the MAC address in the uIP stack. */ + xAddr.addr[ 0 ] = configMAC_ADDR0; + xAddr.addr[ 1 ] = configMAC_ADDR1; + xAddr.addr[ 2 ] = configMAC_ADDR2; + xAddr.addr[ 3 ] = configMAC_ADDR3; + xAddr.addr[ 4 ] = configMAC_ADDR4; + xAddr.addr[ 5 ] = configMAC_ADDR5; + uip_setethaddr( xAddr ); +} +/*-----------------------------------------------------------*/ + +void vApplicationProcessFormInput( char *pcInputString ) +{ +char *c; + + /* Only interested in processing form input if this is the IO page. */ + c = strstr( pcInputString, "io.shtml" ); + + if( c ) + { + /* Is there a command in the string? */ + c = strstr( pcInputString, "?" ); + if( c ) + { + /* Turn the LED's on or off in accordance with the check box status. */ + if( strstr( c, "LED0=1" ) != NULL ) + { + /* Turn the LEDs on. */ + vParTestSetLED( 7, 1 ); + vParTestSetLED( 8, 1 ); + vParTestSetLED( 9, 1 ); + vParTestSetLED( 10, 1 ); + } + else + { + /* Turn the LEDs off. */ + vParTestSetLED( 7, 0 ); + vParTestSetLED( 8, 0 ); + vParTestSetLED( 9, 0 ); + vParTestSetLED( 10, 0 ); + } + } + else + { + /* Commands to turn LEDs off are not always explicit. */ + vParTestSetLED( 7, 0 ); + vParTestSetLED( 8, 0 ); + vParTestSetLED( 9, 0 ); + vParTestSetLED( 10, 0 ); + } + } +} + diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/EMAC.c b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/EMAC.c new file mode 100644 index 000000000..5fb6320e2 --- /dev/null +++ b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/EMAC.c @@ -0,0 +1,562 @@ +/* + FreeRTOS V7.1.0 - Copyright (C) 2011 Real Time Engineers Ltd. + + + *************************************************************************** + * * + * FreeRTOS tutorial books are available in pdf and paperback. * + * Complete, revised, and edited pdf reference manuals are also * + * available. * + * * + * Purchasing FreeRTOS documentation will not only help you, by * + * ensuring you get running as quickly as possible and with an * + * in-depth knowledge of how to use FreeRTOS, it will also help * + * the FreeRTOS project to continue with its mission of providing * + * professional grade, cross platform, de facto standard solutions * + * for microcontrollers - completely free of charge! * + * * + * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * + * * + * Thank you for using FreeRTOS, and thank you for your support! * + * * + *************************************************************************** + + + This file is part of the FreeRTOS distribution. + + FreeRTOS is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License (version 2) as published by the + Free Software Foundation AND MODIFIED BY the FreeRTOS exception. + >>>NOTE<<< The modification to the GPL is included to allow you to + distribute a combined work that includes FreeRTOS without being obliged to + provide the source code for proprietary components outside of the FreeRTOS + kernel. FreeRTOS is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. You should have received a copy of the GNU General Public + License and the FreeRTOS license exception along with FreeRTOS; if not it + can be viewed here: http://www.freertos.org/a00114.html and also obtained + by writing to Richard Barry, contact details for whom are available on the + FreeRTOS WEB site. + + 1 tab == 4 spaces! + + http://www.FreeRTOS.org - Documentation, latest information, license and + contact details. + + http://www.SafeRTOS.com - A version that is certified for use in safety + critical systems. + + http://www.OpenRTOS.com - Commercial support, development, porting, + licensing and training services. +*/ + +/* Hardware specific includes. */ +#include "iodefine.h" +#include "typedefine.h" +#include "r_ether.h" +#include "phy.h" + +/* FreeRTOS includes. */ +#include "FreeRTOS.h" +#include "task.h" +#include "semphr.h" + +/* uIP includes. */ +#include "net/uip.h" + +/* The time to wait between attempts to obtain a free buffer. */ +#define emacBUFFER_WAIT_DELAY_ms ( 3 / portTICK_RATE_MS ) + +/* The number of times emacBUFFER_WAIT_DELAY_ms should be waited before giving +up on attempting to obtain a free buffer all together. */ +#define emacBUFFER_WAIT_ATTEMPTS ( 30 ) + +/* The number of Rx descriptors. */ +#define emacNUM_RX_DESCRIPTORS 8 + +/* The number of Tx descriptors. When using uIP there is not point in having +more than two. */ +#define emacNUM_TX_BUFFERS 2 + +/* The total number of EMAC buffers to allocate. */ +#define emacNUM_BUFFERS ( emacNUM_RX_DESCRIPTORS + emacNUM_TX_BUFFERS ) + +/* The time to wait for the Tx descriptor to become free. */ +#define emacTX_WAIT_DELAY_ms ( 10 / portTICK_RATE_MS ) + +/* The total number of times to wait emacTX_WAIT_DELAY_ms for the Tx descriptor to +become free. */ +#define emacTX_WAIT_ATTEMPTS ( 50 ) + +/* Only Rx end and Tx end interrupts are used by this driver. */ +#define emacTX_END_INTERRUPT ( 1UL << 21UL ) +#define emacRX_END_INTERRUPT ( 1UL << 18UL ) + +/*-----------------------------------------------------------*/ + +/* The buffers and descriptors themselves. */ +#pragma section _RX_DESC + volatile ethfifo xRxDescriptors[ emacNUM_RX_DESCRIPTORS ]; +#pragma section _TX_DESC + volatile ethfifo xTxDescriptors[ emacNUM_TX_BUFFERS ]; +#pragma section _ETHERNET_BUFFERS + struct + { + unsigned long ulAlignmentVariable; + char cBuffer[ emacNUM_BUFFERS ][ UIP_BUFSIZE ]; + } xEthernetBuffers; +#pragma section + + + + +/* Used to indicate which buffers are free and which are in use. If an index +contains 0 then the corresponding buffer in xEthernetBuffers is free, otherwise +the buffer is in use or about to be used. */ +static unsigned char ucBufferInUse[ emacNUM_BUFFERS ]; + +/*-----------------------------------------------------------*/ + +/* + * Initialise both the Rx and Tx descriptors. + */ +static void prvInitialiseDescriptors( void ); + +/* + * Return a pointer to a free buffer within xEthernetBuffers. + */ +static unsigned char *prvGetNextBuffer( void ); + +/* + * Return a buffer to the list of free buffers. + */ +static void prvReturnBuffer( unsigned char *pucBuffer ); + +/* + * Examine the status of the next Rx FIFO to see if it contains new data. + */ +static unsigned long prvCheckRxFifoStatus( void ); + +/* + * Setup the microcontroller for communication with the PHY. + */ +static void prvResetMAC( void ); + +/* + * Configure the Ethernet interface peripherals. + */ +static void prvConfigureEtherCAndEDMAC( void ); + +/* + * Something has gone wrong with the descriptor usage. Reset all the buffers + * and descriptors. + */ +static void prvResetEverything( void ); + +/*-----------------------------------------------------------*/ + +/* Points to the Rx descriptor currently in use. */ +static ethfifo *pxCurrentRxDesc = NULL; + +/* The buffer used by the uIP stack to both receive and send. This points to +one of the Ethernet buffers when its actually in use. */ +unsigned char *uip_buf = NULL; + +/*-----------------------------------------------------------*/ + +void vInitEmac( void ) +{ + /* Software reset. */ + prvResetMAC(); + + /* Set the Rx and Tx descriptors into their initial state. */ + prvInitialiseDescriptors(); + + /* Set the MAC address into the ETHERC */ + ETHERC.MAHR = ( ( unsigned long ) configMAC_ADDR0 << 24UL ) | + ( ( unsigned long ) configMAC_ADDR1 << 16UL ) | + ( ( unsigned long ) configMAC_ADDR2 << 8UL ) | + ( unsigned long ) configMAC_ADDR3; + + ETHERC.MALR.BIT.MA = ( ( unsigned long ) configMAC_ADDR4 << 8UL ) | + ( unsigned long ) configMAC_ADDR5; + + /* Perform rest of interface hardware configuration. */ + prvConfigureEtherCAndEDMAC(); + + /* Nothing received yet, so uip_buf points nowhere. */ + uip_buf = NULL; + + /* Initialize the PHY */ + phy_init(); +} +/*-----------------------------------------------------------*/ + +void vEMACWrite( void ) +{ +long x; + + /* Wait until the second transmission of the last packet has completed. */ + for( x = 0; x < emacTX_WAIT_ATTEMPTS; x++ ) + { + if( ( xTxDescriptors[ 1 ].status & ACT ) != 0 ) + { + /* Descriptor is still active. */ + vTaskDelay( emacTX_WAIT_DELAY_ms ); + } + else + { + break; + } + } + + /* Is the descriptor free after waiting for it? */ + if( ( xTxDescriptors[ 1 ].status & ACT ) != 0 ) + { + /* Something has gone wrong. */ + prvResetEverything(); + } + + /* Setup both descriptors to transmit the frame. */ + xTxDescriptors[ 0 ].buf_p = ( char * ) uip_buf; + xTxDescriptors[ 0 ].bufsize = uip_len; + xTxDescriptors[ 1 ].buf_p = ( char * ) uip_buf; + xTxDescriptors[ 1 ].bufsize = uip_len; + + /* uip_buf is being sent by the Tx descriptor. Allocate a new buffer + for use by the stack. */ + uip_buf = prvGetNextBuffer(); + + /* Clear previous settings and go. */ + xTxDescriptors[0].status &= ~( FP1 | FP0 ); + xTxDescriptors[0].status |= ( FP1 | FP0 | ACT ); + xTxDescriptors[1].status &= ~( FP1 | FP0 ); + xTxDescriptors[1].status |= ( FP1 | FP0 | ACT ); + + EDMAC.EDTRR.LONG = 0x00000001; +} +/*-----------------------------------------------------------*/ + +unsigned long ulEMACRead( void ) +{ +unsigned long ulBytesReceived; + + ulBytesReceived = prvCheckRxFifoStatus(); + + if( ulBytesReceived > 0 ) + { + /* Mark the pxDescriptor buffer as free as uip_buf is going to be set to + the buffer that contains the received data. */ + prvReturnBuffer( uip_buf ); + + /* Point uip_buf to the data about ot be processed. */ + uip_buf = ( void * ) pxCurrentRxDesc->buf_p; + + /* Allocate a new buffer to the descriptor, as uip_buf is now using it's + old descriptor. */ + pxCurrentRxDesc->buf_p = prvGetNextBuffer(); + + /* Prepare the descriptor to go again. */ + pxCurrentRxDesc->status &= ~( FP1 | FP0 ); + pxCurrentRxDesc->status |= ACT; + + /* Move onto the next buffer in the ring. */ + pxCurrentRxDesc = pxCurrentRxDesc->next; + + if( EDMAC.EDRRR.LONG == 0x00000000L ) + { + /* Restart Ethernet if it has stopped */ + EDMAC.EDRRR.LONG = 0x00000001L; + } + } + + return ulBytesReceived; +} +/*-----------------------------------------------------------*/ + +long lEMACWaitForLink( void ) +{ +long lReturn; + + /* Set the link status. */ + switch( phy_set_autonegotiate() ) + { + /* Half duplex link */ + case PHY_LINK_100H: + ETHERC.ECMR.BIT.DM = 0; + ETHERC.ECMR.BIT.RTM = 1; + lReturn = pdPASS; + break; + + case PHY_LINK_10H: + ETHERC.ECMR.BIT.DM = 0; + ETHERC.ECMR.BIT.RTM = 0; + lReturn = pdPASS; + break; + + + /* Full duplex link */ + case PHY_LINK_100F: + ETHERC.ECMR.BIT.DM = 1; + ETHERC.ECMR.BIT.RTM = 1; + lReturn = pdPASS; + break; + + case PHY_LINK_10F: + ETHERC.ECMR.BIT.DM = 1; + ETHERC.ECMR.BIT.RTM = 0; + lReturn = pdPASS; + break; + + default: + lReturn = pdFAIL; + break; + } + + if( lReturn == pdPASS ) + { + /* Enable receive and transmit. */ + ETHERC.ECMR.BIT.RE = 1; + ETHERC.ECMR.BIT.TE = 1; + + /* Enable EDMAC receive */ + EDMAC.EDRRR.LONG = 0x1; + } + + return lReturn; +} +/*-----------------------------------------------------------*/ + +static void prvInitialiseDescriptors( void ) +{ +ethfifo *pxDescriptor; +long x; + + for( x = 0; x < emacNUM_BUFFERS; x++ ) + { + /* Ensure none of the buffers are shown as in use at the start. */ + ucBufferInUse[ x ] = pdFALSE; + } + + /* Initialise the Rx descriptors. */ + for( x = 0; x < emacNUM_RX_DESCRIPTORS; x++ ) + { + pxDescriptor = &( xRxDescriptors[ x ] ); + pxDescriptor->buf_p = &( xEthernetBuffers.cBuffer[ x ][ 0 ] ); + + pxDescriptor->bufsize = UIP_BUFSIZE; + pxDescriptor->size = 0; + pxDescriptor->status = ACT; + pxDescriptor->next = &xRxDescriptors[ x + 1 ]; + + /* Mark this buffer as in use. */ + ucBufferInUse[ x ] = pdTRUE; + } + + /* The last descriptor points back to the start. */ + pxDescriptor->status |= DL; + pxDescriptor->next = &xRxDescriptors[ 0 ]; + + /* Initialise the Tx descriptors. */ + for( x = 0; x < emacNUM_TX_BUFFERS; x++ ) + { + pxDescriptor = &( xTxDescriptors[ x ] ); + + /* A buffer is not allocated to the Tx descriptor until a send is + actually required. */ + pxDescriptor->buf_p = NULL; + + pxDescriptor->bufsize = UIP_BUFSIZE; + pxDescriptor->size = 0; + pxDescriptor->status = 0; + pxDescriptor->next = &xTxDescriptors[ x + 1 ]; + } + + /* The last descriptor points back to the start. */ + pxDescriptor->status |= DL; + pxDescriptor->next = &( xTxDescriptors[ 0 ] ); + + /* Use the first Rx descriptor to start with. */ + pxCurrentRxDesc = &( xRxDescriptors[ 0 ] ); +} +/*-----------------------------------------------------------*/ + +static unsigned char *prvGetNextBuffer( void ) +{ +long x; +unsigned char *pucReturn = NULL; +unsigned long ulAttempts = 0; + + while( pucReturn == NULL ) + { + /* Look through the buffers to find one that is not in use by + anything else. */ + for( x = 0; x < emacNUM_BUFFERS; x++ ) + { + if( ucBufferInUse[ x ] == pdFALSE ) + { + ucBufferInUse[ x ] = pdTRUE; + pucReturn = ( unsigned char * ) &( xEthernetBuffers.cBuffer[ x ][ 0 ] ); + break; + } + } + + /* Was a buffer found? */ + if( pucReturn == NULL ) + { + ulAttempts++; + + if( ulAttempts >= emacBUFFER_WAIT_ATTEMPTS ) + { + break; + } + + /* Wait then look again. */ + vTaskDelay( emacBUFFER_WAIT_DELAY_ms ); + } + } + + return pucReturn; +} +/*-----------------------------------------------------------*/ + +static void prvReturnBuffer( unsigned char *pucBuffer ) +{ +unsigned long ul; + + /* Return a buffer to the pool of free buffers. */ + for( ul = 0; ul < emacNUM_BUFFERS; ul++ ) + { + if( &( xEthernetBuffers.cBuffer[ ul ][ 0 ] ) == ( void * ) pucBuffer ) + { + ucBufferInUse[ ul ] = pdFALSE; + break; + } + } +} +/*-----------------------------------------------------------*/ + +static void prvResetEverything( void ) +{ + /* Temporary code just to see if this gets called. This function has not + been implemented. */ + portDISABLE_INTERRUPTS(); + for( ;; ); +} +/*-----------------------------------------------------------*/ + +static unsigned long prvCheckRxFifoStatus( void ) +{ +unsigned long ulReturn = 0; + + if( ( pxCurrentRxDesc->status & ACT ) != 0 ) + { + /* Current descriptor is still active. */ + } + else if( ( pxCurrentRxDesc->status & FE ) != 0 ) + { + /* Frame error. Clear the error. */ + pxCurrentRxDesc->status &= ~( FP1 | FP0 | FE ); + pxCurrentRxDesc->status &= ~( RMAF | RRF | RTLF | RTSF | PRE | CERF ); + pxCurrentRxDesc->status |= ACT; + pxCurrentRxDesc = pxCurrentRxDesc->next; + + if( EDMAC.EDRRR.LONG == 0x00000000UL ) + { + /* Restart Ethernet if it has stopped. */ + EDMAC.EDRRR.LONG = 0x00000001UL; + } + } + else + { + /* The descriptor contains a frame. Because of the size of the buffers + the frame should always be complete. */ + if( ( pxCurrentRxDesc->status & FP0 ) == FP0 ) + { + ulReturn = pxCurrentRxDesc->size; + } + else + { + /* Do not expect to get here. */ + prvResetEverything(); + } + } + + return ulReturn; +} +/*-----------------------------------------------------------*/ + +static void prvResetMAC( void ) +{ + /* Ensure the EtherC and EDMAC are enabled. */ + SYSTEM.MSTPCRB.BIT.MSTPB15 = 0; + vTaskDelay( 100 / portTICK_RATE_MS ); + + EDMAC.EDMR.BIT.SWR = 1; + + /* Crude wait for reset to complete. */ + vTaskDelay( 500 / portTICK_RATE_MS ); +} +/*-----------------------------------------------------------*/ + +static void prvConfigureEtherCAndEDMAC( void ) +{ + /* Initialisation code taken from Renesas example project. */ + + /* TODO: Check bit 5 */ + ETHERC.ECSR.LONG = 0x00000037; /* Clear all ETHERC statuS BFR, PSRTO, LCHNG, MPD, ICD */ + + /* Set the EDMAC interrupt priority. */ + _IPR( _ETHER_EINT ) = configKERNEL_INTERRUPT_PRIORITY; + + /* TODO: Check bit 5 */ + /* Enable interrupts of interest only. */ + EDMAC.EESIPR.LONG = emacTX_END_INTERRUPT | emacRX_END_INTERRUPT; + ETHERC.RFLR.LONG = 1518; /* Ether payload is 1500+ CRC */ + ETHERC.IPGR.LONG = 0x00000014; /* Intergap is 96-bit time */ + + /* EDMAC */ + EDMAC.EESR.LONG = 0x47FF0F9F; /* Clear all ETHERC and EDMAC status bits */ + #ifdef __LIT + EDMAC.EDMR.BIT.DE = 1; + #endif + EDMAC.RDLAR = ( void * ) pxCurrentRxDesc; /* Initialaize Rx Descriptor List Address */ + EDMAC.TDLAR = &( xTxDescriptors[ 0 ] ); /* Initialaize Tx Descriptor List Address */ + EDMAC.TRSCER.LONG = 0x00000000; /* Copy-back status is RFE & TFE only */ + EDMAC.TFTR.LONG = 0x00000000; /* Threshold of Tx_FIFO */ + EDMAC.FDR.LONG = 0x00000000; /* Transmit fifo & receive fifo is 256 bytes */ + EDMAC.RMCR.LONG = 0x00000003; /* Receive function is normal mode(continued) */ + ETHERC.ECMR.BIT.PRM = 0; /* Ensure promiscuous mode is off. */ + + /* Enable the interrupt... */ + _IEN( _ETHER_EINT ) = 1; +} +/*-----------------------------------------------------------*/ + +#pragma interrupt ( vEMAC_ISR_Handler( vect = VECT_ETHER_EINT, enable ) ) +void vEMAC_ISR_Handler( void ) +{ +unsigned long ul = EDMAC.EESR.LONG; +long lHigherPriorityTaskWoken = pdFALSE; +extern xQueueHandle xEMACEventQueue; +const unsigned long ulRxEvent = uipETHERNET_RX_EVENT; + + /* Has a Tx end occurred? */ + if( ul & emacTX_END_INTERRUPT ) + { + /* Only return the buffer to the pool once both Txes have completed. */ + prvReturnBuffer( ( void * ) xTxDescriptors[ 0 ].buf_p ); + EDMAC.EESR.LONG = emacTX_END_INTERRUPT; + } + + /* Has an Rx end occurred? */ + if( ul & emacRX_END_INTERRUPT ) + { + /* Make sure the Ethernet task is not blocked waiting for a packet. */ + xQueueSendFromISR( xEMACEventQueue, &ulRxEvent, &lHigherPriorityTaskWoken ); + portYIELD_FROM_ISR( lHigherPriorityTaskWoken ); + EDMAC.EESR.LONG = emacRX_END_INTERRUPT; + } +} + diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-cgi.c b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-cgi.c new file mode 100644 index 000000000..047332d9a --- /dev/null +++ b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-cgi.c @@ -0,0 +1,277 @@ +/** + * \addtogroup httpd + * @{ + */ + +/** + * \file + * Web server script interface + * \author + * Adam Dunkels + * + */ + +/* + * Copyright (c) 2001-2006, Adam Dunkels. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote + * products derived from this software without specific prior + * written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * This file is part of the uIP TCP/IP stack. + * + * $Id: httpd-cgi.c,v 1.2 2006/06/11 21:46:37 adam Exp $ + * + */ +#include "net/uip.h" +#include "net/psock.h" +#include "apps/httpd/httpd.h" +#include "apps/httpd/httpd-cgi.h" +#include "apps/httpd/httpd-fs.h" + +#include +#include + +#include "FreeRTOS.h" +#include "task.h" + +HTTPD_CGI_CALL( file, "file-stats", file_stats ); +HTTPD_CGI_CALL( tcp, "tcp-connections", tcp_stats ); +HTTPD_CGI_CALL( net, "net-stats", net_stats ); +HTTPD_CGI_CALL( rtos, "rtos-stats", rtos_stats ); +HTTPD_CGI_CALL( run, "run-time", run_time ); +HTTPD_CGI_CALL( io, "led-io", led_io ); + +static const struct httpd_cgi_call *calls[] = { &file, &tcp, &net, &rtos, &run, &io, NULL }; + +/*---------------------------------------------------------------------------*/ +static PT_THREAD( nullfunction ( struct httpd_state *s, char *ptr ) ) +{ + PSOCK_BEGIN( &s->sout ); + ( void ) ptr; + ( void ) PT_YIELD_FLAG; + PSOCK_END( &s->sout ); +} + +/*---------------------------------------------------------------------------*/ +httpd_cgifunction httpd_cgi( char *name ) +{ + const struct httpd_cgi_call **f; + + /* Find the matching name in the table, return the function. */ + for( f = calls; *f != NULL; ++f ) + { + if( strncmp((*f)->name, name, strlen((*f)->name)) == 0 ) + { + return( *f )->function; + } + } + + return nullfunction; +} + +/*---------------------------------------------------------------------------*/ +static unsigned short generate_file_stats( void *arg ) +{ + char *f = ( char * ) arg; + return sprintf( ( char * ) uip_appdata, "%5u", httpd_fs_count(f) ); +} + +/*---------------------------------------------------------------------------*/ +static PT_THREAD( file_stats ( struct httpd_state *s, char *ptr ) ) +{ + PSOCK_BEGIN( &s->sout ); + + ( void ) PT_YIELD_FLAG; + + PSOCK_GENERATOR_SEND( &s->sout, generate_file_stats, strchr(ptr, ' ') + 1 ); + + PSOCK_END( &s->sout ); +} + +/*---------------------------------------------------------------------------*/ +static const char closed[] = /* "CLOSED",*/ { 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0 }; +static const char syn_rcvd[] = /* "SYN-RCVD",*/ { 0x53, 0x59, 0x4e, 0x2d, 0x52, 0x43, 0x56, 0x44, 0 }; +static const char syn_sent[] = /* "SYN-SENT",*/ { 0x53, 0x59, 0x4e, 0x2d, 0x53, 0x45, 0x4e, 0x54, 0 }; +static const char established[] = /* "ESTABLISHED",*/ { 0x45, 0x53, 0x54, 0x41, 0x42, 0x4c, 0x49, 0x53, 0x48, 0x45, 0x44, 0 }; +static const char fin_wait_1[] = /* "FIN-WAIT-1",*/ { 0x46, 0x49, 0x4e, 0x2d, 0x57, 0x41, 0x49, 0x54, 0x2d, 0x31, 0 }; +static const char fin_wait_2[] = /* "FIN-WAIT-2",*/ { 0x46, 0x49, 0x4e, 0x2d, 0x57, 0x41, 0x49, 0x54, 0x2d, 0x32, 0 }; +static const char closing[] = /* "CLOSING",*/ { 0x43, 0x4c, 0x4f, 0x53, 0x49, 0x4e, 0x47, 0 }; +static const char time_wait[] = /* "TIME-WAIT,"*/ { 0x54, 0x49, 0x4d, 0x45, 0x2d, 0x57, 0x41, 0x49, 0x54, 0 }; +static const char last_ack[] = /* "LAST-ACK"*/ { 0x4c, 0x41, 0x53, 0x54, 0x2d, 0x41, 0x43, 0x4b, 0 }; + +static const char *states[] = { closed, syn_rcvd, syn_sent, established, fin_wait_1, fin_wait_2, closing, time_wait, last_ack }; + +static unsigned short generate_tcp_stats( void *arg ) +{ + struct uip_conn *conn; + struct httpd_state *s = ( struct httpd_state * ) arg; + + conn = &uip_conns[s->count]; + return sprintf( ( char * ) uip_appdata, + "%d%u.%u.%u.%u:%u%s%u%u%c %c\r\n", htons(conn->lport), + htons(conn->ripaddr.u16[0]) >> 8, htons(conn->ripaddr.u16[0]) & 0xff, htons(conn->ripaddr.u16[1]) >> 8, + htons(conn->ripaddr.u16[1]) & 0xff, htons(conn->rport), states[conn->tcpstateflags & UIP_TS_MASK], conn->nrtx, conn->timer, + (uip_outstanding(conn)) ? '*' : ' ', (uip_stopped(conn)) ? '!' : ' ' ); +} + +/*---------------------------------------------------------------------------*/ +static PT_THREAD( tcp_stats ( struct httpd_state *s, char *ptr ) ) +{ + PSOCK_BEGIN( &s->sout ); + ( void ) ptr; + ( void ) PT_YIELD_FLAG; + for( s->count = 0; s->count < UIP_CONNS; ++s->count ) + { + if( (uip_conns[s->count].tcpstateflags & UIP_TS_MASK) != UIP_CLOSED ) + { + PSOCK_GENERATOR_SEND( &s->sout, generate_tcp_stats, s ); + } + } + + PSOCK_END( &s->sout ); +} + +/*---------------------------------------------------------------------------*/ +static unsigned short generate_net_stats( void *arg ) +{ + struct httpd_state *s = ( struct httpd_state * ) arg; + return sprintf( ( char * ) uip_appdata, "%5u\n", (( uip_stats_t * ) &uip_stat)[s->count] ); +} + +static PT_THREAD( net_stats ( struct httpd_state *s, char *ptr ) ) +{ + PSOCK_BEGIN( &s->sout ); + ( void ) ptr; + ( void ) PT_YIELD_FLAG; +#if UIP_STATISTICS + for( s->count = 0; s->count < sizeof(uip_stat) / sizeof(uip_stats_t); ++s->count ) + { + PSOCK_GENERATOR_SEND( &s->sout, generate_net_stats, s ); + } + +#endif /* UIP_STATISTICS */ + + PSOCK_END( &s->sout ); +} + +/*---------------------------------------------------------------------------*/ +extern void vTaskList( signed char *pcWriteBuffer ); +extern char *pcGetTaskStatusMessage( void ); +static char cCountBuf[128]; +long lRefreshCount = 0; +static unsigned short generate_rtos_stats( void *arg ) +{ + ( void ) arg; + lRefreshCount++; + sprintf( cCountBuf, "


Refresh count = %d


%s", ( int ) lRefreshCount, pcGetTaskStatusMessage() ); + vTaskList( uip_appdata ); + strcat( uip_appdata, cCountBuf ); + + return strlen( uip_appdata ); +} + +/*---------------------------------------------------------------------------*/ +static PT_THREAD( rtos_stats ( struct httpd_state *s, char *ptr ) ) +{ + PSOCK_BEGIN( &s->sout ); + ( void ) ptr; + ( void ) PT_YIELD_FLAG; + PSOCK_GENERATOR_SEND( &s->sout, generate_rtos_stats, NULL ); + PSOCK_END( &s->sout ); +} + +/*---------------------------------------------------------------------------*/ +char *pcStatus; +unsigned long ulString; + +static unsigned short generate_io_state( void *arg ) +{ + extern long lParTestGetLEDState( unsigned long ulLED ); + ( void ) arg; + + /* Are the dynamically setable LEDs currently on or off? */ + if( lParTestGetLEDState( 3 ) ) + { + pcStatus = "checked"; + } + else + { + pcStatus = ""; + } + + sprintf( uip_appdata, "LED

", pcStatus ); + + return strlen( uip_appdata ); +} + +/*---------------------------------------------------------------------------*/ +extern void vTaskGetRunTimeStats( signed char *pcWriteBuffer ); +extern unsigned short usMaxJitter; +static char cJitterBuffer[ 200 ]; +static unsigned short generate_runtime_stats( void *arg ) +{ + ( void ) arg; + lRefreshCount++; + sprintf( cCountBuf, "


Refresh count = %d", ( int ) lRefreshCount ); + + #ifdef INCLUDE_HIGH_FREQUENCY_TIMER_TEST + { + sprintf( cJitterBuffer, "


Max high frequency timer jitter = %d peripheral clock periods.


", ( int ) usMaxJitter ); + vTaskGetRunTimeStats( uip_appdata ); + strcat( uip_appdata, cJitterBuffer ); + } + #else + { + ( void ) cJitterBuffer; + strcpy( uip_appdata, "

Run time stats are only available in the debug_with_optimisation build configuration.

" ); + } + #endif + + strcat( uip_appdata, cCountBuf ); + + return strlen( uip_appdata ); +} + +/*---------------------------------------------------------------------------*/ +static PT_THREAD( run_time ( struct httpd_state *s, char *ptr ) ) +{ + PSOCK_BEGIN( &s->sout ); + ( void ) ptr; + ( void ) PT_YIELD_FLAG; + PSOCK_GENERATOR_SEND( &s->sout, generate_runtime_stats, NULL ); + PSOCK_END( &s->sout ); +} + +/*---------------------------------------------------------------------------*/ +static PT_THREAD( led_io ( struct httpd_state *s, char *ptr ) ) +{ + PSOCK_BEGIN( &s->sout ); + ( void ) ptr; + ( void ) PT_YIELD_FLAG; + PSOCK_GENERATOR_SEND( &s->sout, generate_io_state, NULL ); + PSOCK_END( &s->sout ); +} + +/** @} */ diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/404.html b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/404.html new file mode 100644 index 000000000..43e7f4cad --- /dev/null +++ b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/404.html @@ -0,0 +1,8 @@ + + +

+

404 - file not found

+

Go here instead.

+
+ + \ No newline at end of file diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/index.html b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/index.html new file mode 100644 index 000000000..4937dc69a --- /dev/null +++ b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/index.html @@ -0,0 +1,13 @@ + + + + FreeRTOS.org uIP WEB server demo + + + +Loading index.shtml. Click here if not automatically redirected. + + + + + diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/index.shtml b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/index.shtml new file mode 100644 index 000000000..882d085ce --- /dev/null +++ b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/index.shtml @@ -0,0 +1,20 @@ + + + + FreeRTOS.org uIP WEB server demo + + + +Task Stats | Run Time Stats | TCP Stats | Connections | FreeRTOS Homepage | IO | 37K jpg +

+


+

+

Task statistics

+Page will refresh every 2 seconds.

+

Task          State  Priority  Stack	#
************************************************
+%! rtos-stats +
+
+ + + diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/io.shtml b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/io.shtml new file mode 100644 index 000000000..819e2d39b --- /dev/null +++ b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/io.shtml @@ -0,0 +1,28 @@ + + + + FreeRTOS.org uIP WEB server demo + + + +Task Stats | Run Time Stats | TCP Stats | Connections | FreeRTOS Homepage | IO | 37K jpg +

+


+LED and LCD IO
+ +

+ +Use the check box to turn on or off LED 4, then click "Update IO". + + +

+

+%! led-io +

+ +

+

+ + + + diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/logo.jpg b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..46d756892a1480937294d92a3b1e2fd53ddc46b6 GIT binary patch literal 32592 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⁢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 + + + FreeRTOS.org uIP WEB server demo + + + +Task Stats | Run Time Stats | TCP Stats | Connections | FreeRTOS Homepage | IO | 37K jpg +

+


+

+

Run-time statistics

+Page will refresh every 2 seconds.

+

Task            Abs Time      % Time
****************************************
+%! run-time +
+
+ + + diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/stats.shtml b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/stats.shtml new file mode 100644 index 000000000..f54118606 --- /dev/null +++ b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/stats.shtml @@ -0,0 +1,47 @@ + + + + FreeRTOS.org uIP WEB server demo + + + +Task Stats | Run Time Stats | TCP Stats | Connections | FreeRTOS Homepage | IO | 37K jpg +

+


+

+

Network statistics

+ +
+IP           Packets received
+             Packets sent
+             Forwaded
+             Dropped
+IP errors    IP version/header length
+             IP length, high byte
+             IP length, low byte
+             IP fragments
+             Header checksum
+             Wrong protocol
+ICMP	     Packets received
+             Packets sent
+             Packets dropped
+             Type errors
+             Checksum errors
+TCP          Packets received
+             Packets sent
+             Packets dropped
+             Checksum errors
+             Data packets without ACKs
+             Resets
+             Retransmissionsa
+             Syn to closed port
+UDP          Packets dropped
+             Packets received
+             Packets sent
+             Packets chkerr
+	     No connection avaliable
+
%! net-stats
+
+
+ + diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/tcp.shtml b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/tcp.shtml new file mode 100644 index 000000000..23dcdcae3 --- /dev/null +++ b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/tcp.shtml @@ -0,0 +1,21 @@ + + + + FreeRTOS.org uIP WEB server demo + + + +Task Stats | Run Time Stats | TCP Stats | Connections | FreeRTOS Homepage | IO | 37K jpg +

+


+
+

Network connections

+

+ + +%! tcp-connections + + + + + diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fsdata.c b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fsdata.c new file mode 100644 index 000000000..47823d100 --- /dev/null +++ b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fsdata.c @@ -0,0 +1,3871 @@ +static const char data_404_html[] = { + /* /404.html */ + 0x2f, 0x34, 0x30, 0x34, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0, + 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0xd, 0xa, 0x20, 0x20, + 0x3c, 0x62, 0x6f, 0x64, 0x79, 0x20, 0x62, 0x67, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3d, 0x22, 0x77, 0x68, 0x69, 0x74, 0x65, + 0x22, 0x3e, 0xd, 0xa, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x63, + 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3e, 0xd, 0xa, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x3c, 0x68, 0x31, 0x3e, 0x34, 0x30, + 0x34, 0x20, 0x2d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x6e, + 0x6f, 0x74, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x3c, 0x2f, + 0x68, 0x31, 0x3e, 0xd, 0xa, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3c, 0x68, 0x33, 0x3e, 0x47, 0x6f, 0x20, 0x3c, 0x61, + 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x2f, 0x22, 0x3e, + 0x68, 0x65, 0x72, 0x65, 0x3c, 0x2f, 0x61, 0x3e, 0x20, 0x69, + 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, 0x3c, 0x2f, 0x68, + 0x33, 0x3e, 0xd, 0xa, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, + 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3e, 0xd, 0xa, 0x20, + 0x20, 0x3c, 0x2f, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0xd, 0xa, + 0x3c, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0}; + +static const char data_index_html[] = { + /* /index.html */ + 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0, + 0x3c, 0x21, 0x44, 0x4f, 0x43, 0x54, 0x59, 0x50, 0x45, 0x20, + 0x48, 0x54, 0x4d, 0x4c, 0x20, 0x50, 0x55, 0x42, 0x4c, 0x49, + 0x43, 0x20, 0x22, 0x2d, 0x2f, 0x2f, 0x57, 0x33, 0x43, 0x2f, + 0x2f, 0x44, 0x54, 0x44, 0x20, 0x48, 0x54, 0x4d, 0x4c, 0x20, + 0x34, 0x2e, 0x30, 0x31, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2f, 0x2f, 0x45, + 0x4e, 0x22, 0x20, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, + 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x77, 0x33, 0x2e, 0x6f, 0x72, + 0x67, 0x2f, 0x54, 0x52, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x34, + 0x2f, 0x6c, 0x6f, 0x6f, 0x73, 0x65, 0x2e, 0x64, 0x74, 0x64, + 0x22, 0x3e, 0xd, 0xa, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x3e, + 0xd, 0xa, 0x20, 0x20, 0x3c, 0x68, 0x65, 0x61, 0x64, 0x3e, + 0xd, 0xa, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x74, 0x69, 0x74, + 0x6c, 0x65, 0x3e, 0x46, 0x72, 0x65, 0x65, 0x52, 0x54, 0x4f, + 0x53, 0x2e, 0x6f, 0x72, 0x67, 0x20, 0x75, 0x49, 0x50, 0x20, + 0x57, 0x45, 0x42, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x20, 0x64, 0x65, 0x6d, 0x6f, 0x3c, 0x2f, 0x74, 0x69, 0x74, + 0x6c, 0x65, 0x3e, 0xd, 0xa, 0x20, 0x20, 0x3c, 0x2f, 0x68, + 0x65, 0x61, 0x64, 0x3e, 0xd, 0xa, 0x20, 0x20, 0x3c, 0x42, + 0x4f, 0x44, 0x59, 0x20, 0x6f, 0x6e, 0x4c, 0x6f, 0x61, 0x64, + 0x3d, 0x22, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x73, + 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x28, + 0x26, 0x71, 0x75, 0x6f, 0x74, 0x3b, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x68, 0x72, 0x65, 0x66, 0x3d, + 0x27, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x73, 0x68, 0x74, + 0x6d, 0x6c, 0x27, 0x26, 0x71, 0x75, 0x6f, 0x74, 0x3b, 0x2c, + 0x31, 0x30, 0x30, 0x29, 0x22, 0x3e, 0xd, 0xa, 0x3c, 0x66, + 0x6f, 0x6e, 0x74, 0x20, 0x66, 0x61, 0x63, 0x65, 0x3d, 0x22, + 0x61, 0x72, 0x69, 0x61, 0x6c, 0x22, 0x3e, 0xd, 0xa, 0x4c, + 0x6f, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x2e, 0x73, 0x68, 0x74, 0x6d, 0x6c, 0x2e, 0x20, + 0x20, 0x43, 0x6c, 0x69, 0x63, 0x6b, 0x20, 0x3c, 0x61, 0x20, + 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x2e, 0x73, 0x68, 0x74, 0x6d, 0x6c, 0x22, 0x3e, 0x68, + 0x65, 0x72, 0x65, 0x3c, 0x2f, 0x61, 0x3e, 0x20, 0x69, 0x66, + 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x6d, + 0x61, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x72, + 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, 0x2e, + 0xd, 0xa, 0x3c, 0x2f, 0x66, 0x6f, 0x6e, 0x74, 0x3e, 0xd, + 0xa, 0x3c, 0x2f, 0x66, 0x6f, 0x6e, 0x74, 0x3e, 0xd, 0xa, + 0x3c, 0x2f, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0xd, 0xa, 0x3c, + 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0xd, 0xa, 0xd, 0xa, +0}; + +static const char data_index_shtml[] = { + /* /index.shtml */ + 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x73, 0x68, 0x74, 0x6d, 0x6c, 0, + 0x3c, 0x21, 0x44, 0x4f, 0x43, 0x54, 0x59, 0x50, 0x45, 0x20, + 0x48, 0x54, 0x4d, 0x4c, 0x20, 0x50, 0x55, 0x42, 0x4c, 0x49, + 0x43, 0x20, 0x22, 0x2d, 0x2f, 0x2f, 0x57, 0x33, 0x43, 0x2f, + 0x2f, 0x44, 0x54, 0x44, 0x20, 0x48, 0x54, 0x4d, 0x4c, 0x20, + 0x34, 0x2e, 0x30, 0x31, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2f, 0x2f, 0x45, + 0x4e, 0x22, 0x20, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, + 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x77, 0x33, 0x2e, 0x6f, 0x72, + 0x67, 0x2f, 0x54, 0x52, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x34, + 0x2f, 0x6c, 0x6f, 0x6f, 0x73, 0x65, 0x2e, 0x64, 0x74, 0x64, + 0x22, 0x3e, 0xd, 0xa, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x3e, + 0xd, 0xa, 0x20, 0x20, 0x3c, 0x68, 0x65, 0x61, 0x64, 0x3e, + 0xd, 0xa, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x74, 0x69, 0x74, + 0x6c, 0x65, 0x3e, 0x46, 0x72, 0x65, 0x65, 0x52, 0x54, 0x4f, + 0x53, 0x2e, 0x6f, 0x72, 0x67, 0x20, 0x75, 0x49, 0x50, 0x20, + 0x57, 0x45, 0x42, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x20, 0x64, 0x65, 0x6d, 0x6f, 0x3c, 0x2f, 0x74, 0x69, 0x74, + 0x6c, 0x65, 0x3e, 0xd, 0xa, 0x20, 0x20, 0x3c, 0x2f, 0x68, + 0x65, 0x61, 0x64, 0x3e, 0xd, 0xa, 0x20, 0x20, 0x3c, 0x42, + 0x4f, 0x44, 0x59, 0x20, 0x6f, 0x6e, 0x4c, 0x6f, 0x61, 0x64, + 0x3d, 0x22, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x73, + 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x28, + 0x26, 0x71, 0x75, 0x6f, 0x74, 0x3b, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x68, 0x72, 0x65, 0x66, 0x3d, + 0x27, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x73, 0x68, 0x74, + 0x6d, 0x6c, 0x27, 0x26, 0x71, 0x75, 0x6f, 0x74, 0x3b, 0x2c, + 0x32, 0x30, 0x30, 0x30, 0x29, 0x22, 0x3e, 0xd, 0xa, 0x3c, + 0x66, 0x6f, 0x6e, 0x74, 0x20, 0x66, 0x61, 0x63, 0x65, 0x3d, + 0x22, 0x61, 0x72, 0x69, 0x61, 0x6c, 0x22, 0x3e, 0xd, 0xa, + 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x73, 0x68, 0x74, 0x6d, 0x6c, + 0x22, 0x3e, 0x54, 0x61, 0x73, 0x6b, 0x20, 0x53, 0x74, 0x61, + 0x74, 0x73, 0x3c, 0x2f, 0x61, 0x3e, 0x20, 0x3c, 0x62, 0x3e, + 0x7c, 0x3c, 0x2f, 0x62, 0x3e, 0x20, 0x3c, 0x61, 0x20, 0x68, + 0x72, 0x65, 0x66, 0x3d, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, + 0x6d, 0x65, 0x2e, 0x73, 0x68, 0x74, 0x6d, 0x6c, 0x22, 0x3e, + 0x52, 0x75, 0x6e, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x20, 0x53, + 0x74, 0x61, 0x74, 0x73, 0x3c, 0x2f, 0x61, 0x3e, 0x20, 0x3c, + 0x62, 0x3e, 0x7c, 0x3c, 0x2f, 0x62, 0x3e, 0x20, 0x3c, 0x61, + 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x73, 0x74, 0x61, + 0x74, 0x73, 0x2e, 0x73, 0x68, 0x74, 0x6d, 0x6c, 0x22, 0x3e, + 0x54, 0x43, 0x50, 0x20, 0x53, 0x74, 0x61, 0x74, 0x73, 0x3c, + 0x2f, 0x61, 0x3e, 0x20, 0x3c, 0x62, 0x3e, 0x7c, 0x3c, 0x2f, + 0x62, 0x3e, 0x20, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, + 0x3d, 0x22, 0x74, 0x63, 0x70, 0x2e, 0x73, 0x68, 0x74, 0x6d, + 0x6c, 0x22, 0x3e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x3c, 0x2f, 0x61, 0x3e, 0x20, 0x3c, + 0x62, 0x3e, 0x7c, 0x3c, 0x2f, 0x62, 0x3e, 0x20, 0x3c, 0x61, + 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x68, 0x74, 0x74, + 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x66, 0x72, + 0x65, 0x65, 0x72, 0x74, 0x6f, 0x73, 0x2e, 0x6f, 0x72, 0x67, + 0x2f, 0x22, 0x3e, 0x46, 0x72, 0x65, 0x65, 0x52, 0x54, 0x4f, + 0x53, 0x20, 0x48, 0x6f, 0x6d, 0x65, 0x70, 0x61, 0x67, 0x65, + 0x3c, 0x2f, 0x61, 0x3e, 0x20, 0x3c, 0x62, 0x3e, 0x7c, 0x3c, + 0x2f, 0x62, 0x3e, 0x20, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, + 0x66, 0x3d, 0x22, 0x69, 0x6f, 0x2e, 0x73, 0x68, 0x74, 0x6d, + 0x6c, 0x22, 0x3e, 0x49, 0x4f, 0x3c, 0x2f, 0x61, 0x3e, 0x20, + 0x3c, 0x62, 0x3e, 0x7c, 0x3c, 0x2f, 0x62, 0x3e, 0x20, 0x3c, + 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x6c, 0x6f, + 0x67, 0x6f, 0x2e, 0x6a, 0x70, 0x67, 0x22, 0x3e, 0x33, 0x37, + 0x4b, 0x20, 0x6a, 0x70, 0x67, 0x3c, 0x2f, 0x61, 0x3e, 0xd, + 0xa, 0x3c, 0x62, 0x72, 0x3e, 0x3c, 0x70, 0x3e, 0xd, 0xa, + 0x3c, 0x68, 0x72, 0x3e, 0xd, 0xa, 0x3c, 0x62, 0x72, 0x3e, + 0x3c, 0x70, 0x3e, 0xd, 0xa, 0x3c, 0x68, 0x32, 0x3e, 0x54, + 0x61, 0x73, 0x6b, 0x20, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, + 0x74, 0x69, 0x63, 0x73, 0x3c, 0x2f, 0x68, 0x32, 0x3e, 0xd, + 0xa, 0x50, 0x61, 0x67, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x20, 0x65, + 0x76, 0x65, 0x72, 0x79, 0x20, 0x32, 0x20, 0x73, 0x65, 0x63, + 0x6f, 0x6e, 0x64, 0x73, 0x2e, 0x3c, 0x70, 0x3e, 0xd, 0xa, + 0x3c, 0x66, 0x6f, 0x6e, 0x74, 0x20, 0x66, 0x61, 0x63, 0x65, + 0x3d, 0x22, 0x63, 0x6f, 0x75, 0x72, 0x69, 0x65, 0x72, 0x22, + 0x3e, 0x3c, 0x70, 0x72, 0x65, 0x3e, 0x54, 0x61, 0x73, 0x6b, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x20, 0x20, 0x50, 0x72, 0x69, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x20, 0x53, 0x74, 0x61, + 0x63, 0x6b, 0x9, 0x23, 0x3c, 0x62, 0x72, 0x3e, 0x2a, 0x2a, + 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, + 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, + 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, + 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, + 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x3c, 0x62, 0x72, 0x3e, + 0xd, 0xa, 0x25, 0x21, 0x20, 0x72, 0x74, 0x6f, 0x73, 0x2d, + 0x73, 0x74, 0x61, 0x74, 0x73, 0xd, 0xa, 0x3c, 0x2f, 0x70, + 0x72, 0x65, 0x3e, 0x3c, 0x2f, 0x66, 0x6f, 0x6e, 0x74, 0x3e, + 0xd, 0xa, 0x3c, 0x2f, 0x66, 0x6f, 0x6e, 0x74, 0x3e, 0xd, + 0xa, 0x3c, 0x2f, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0xd, 0xa, + 0x3c, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0xd, 0xa, 0xd, + 0xa, 0}; + +static const char data_io_shtml[] = { + /* /io.shtml */ + 0x2f, 0x69, 0x6f, 0x2e, 0x73, 0x68, 0x74, 0x6d, 0x6c, 0, + 0x3c, 0x21, 0x44, 0x4f, 0x43, 0x54, 0x59, 0x50, 0x45, 0x20, + 0x48, 0x54, 0x4d, 0x4c, 0x20, 0x50, 0x55, 0x42, 0x4c, 0x49, + 0x43, 0x20, 0x22, 0x2d, 0x2f, 0x2f, 0x57, 0x33, 0x43, 0x2f, + 0x2f, 0x44, 0x54, 0x44, 0x20, 0x48, 0x54, 0x4d, 0x4c, 0x20, + 0x34, 0x2e, 0x30, 0x31, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2f, 0x2f, 0x45, + 0x4e, 0x22, 0x20, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, + 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x77, 0x33, 0x2e, 0x6f, 0x72, + 0x67, 0x2f, 0x54, 0x52, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x34, + 0x2f, 0x6c, 0x6f, 0x6f, 0x73, 0x65, 0x2e, 0x64, 0x74, 0x64, + 0x22, 0x3e, 0xd, 0xa, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x3e, + 0xd, 0xa, 0x20, 0x20, 0x3c, 0x68, 0x65, 0x61, 0x64, 0x3e, + 0xd, 0xa, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x74, 0x69, 0x74, + 0x6c, 0x65, 0x3e, 0x46, 0x72, 0x65, 0x65, 0x52, 0x54, 0x4f, + 0x53, 0x2e, 0x6f, 0x72, 0x67, 0x20, 0x75, 0x49, 0x50, 0x20, + 0x57, 0x45, 0x42, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x20, 0x64, 0x65, 0x6d, 0x6f, 0x3c, 0x2f, 0x74, 0x69, 0x74, + 0x6c, 0x65, 0x3e, 0xd, 0xa, 0x20, 0x20, 0x3c, 0x2f, 0x68, + 0x65, 0x61, 0x64, 0x3e, 0xd, 0xa, 0x20, 0x20, 0x3c, 0x42, + 0x4f, 0x44, 0x59, 0x3e, 0xd, 0xa, 0x3c, 0x66, 0x6f, 0x6e, + 0x74, 0x20, 0x66, 0x61, 0x63, 0x65, 0x3d, 0x22, 0x61, 0x72, + 0x69, 0x61, 0x6c, 0x22, 0x3e, 0xd, 0xa, 0x3c, 0x61, 0x20, + 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x2e, 0x73, 0x68, 0x74, 0x6d, 0x6c, 0x22, 0x3e, 0x54, + 0x61, 0x73, 0x6b, 0x20, 0x53, 0x74, 0x61, 0x74, 0x73, 0x3c, + 0x2f, 0x61, 0x3e, 0x20, 0x3c, 0x62, 0x3e, 0x7c, 0x3c, 0x2f, + 0x62, 0x3e, 0x20, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, + 0x3d, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, + 0x73, 0x68, 0x74, 0x6d, 0x6c, 0x22, 0x3e, 0x52, 0x75, 0x6e, + 0x20, 0x54, 0x69, 0x6d, 0x65, 0x20, 0x53, 0x74, 0x61, 0x74, + 0x73, 0x3c, 0x2f, 0x61, 0x3e, 0x20, 0x3c, 0x62, 0x3e, 0x7c, + 0x3c, 0x2f, 0x62, 0x3e, 0x20, 0x3c, 0x61, 0x20, 0x68, 0x72, + 0x65, 0x66, 0x3d, 0x22, 0x73, 0x74, 0x61, 0x74, 0x73, 0x2e, + 0x73, 0x68, 0x74, 0x6d, 0x6c, 0x22, 0x3e, 0x54, 0x43, 0x50, + 0x20, 0x53, 0x74, 0x61, 0x74, 0x73, 0x3c, 0x2f, 0x61, 0x3e, + 0x20, 0x3c, 0x62, 0x3e, 0x7c, 0x3c, 0x2f, 0x62, 0x3e, 0x20, + 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x74, + 0x63, 0x70, 0x2e, 0x73, 0x68, 0x74, 0x6d, 0x6c, 0x22, 0x3e, + 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x3c, 0x2f, 0x61, 0x3e, 0x20, 0x3c, 0x62, 0x3e, 0x7c, + 0x3c, 0x2f, 0x62, 0x3e, 0x20, 0x3c, 0x61, 0x20, 0x68, 0x72, + 0x65, 0x66, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, + 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x66, 0x72, 0x65, 0x65, 0x72, + 0x74, 0x6f, 0x73, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x22, 0x3e, + 0x46, 0x72, 0x65, 0x65, 0x52, 0x54, 0x4f, 0x53, 0x20, 0x48, + 0x6f, 0x6d, 0x65, 0x70, 0x61, 0x67, 0x65, 0x3c, 0x2f, 0x61, + 0x3e, 0x20, 0x3c, 0x62, 0x3e, 0x7c, 0x3c, 0x2f, 0x62, 0x3e, + 0x20, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, + 0x69, 0x6f, 0x2e, 0x73, 0x68, 0x74, 0x6d, 0x6c, 0x22, 0x3e, + 0x49, 0x4f, 0x3c, 0x2f, 0x61, 0x3e, 0x20, 0x3c, 0x62, 0x3e, + 0x7c, 0x3c, 0x2f, 0x62, 0x3e, 0x20, 0x3c, 0x61, 0x20, 0x68, + 0x72, 0x65, 0x66, 0x3d, 0x22, 0x6c, 0x6f, 0x67, 0x6f, 0x2e, + 0x6a, 0x70, 0x67, 0x22, 0x3e, 0x33, 0x37, 0x4b, 0x20, 0x6a, + 0x70, 0x67, 0x3c, 0x2f, 0x61, 0x3e, 0xd, 0xa, 0x3c, 0x62, + 0x72, 0x3e, 0x3c, 0x70, 0x3e, 0xd, 0xa, 0x3c, 0x68, 0x72, + 0x3e, 0xd, 0xa, 0x3c, 0x62, 0x3e, 0x4c, 0x45, 0x44, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x4c, 0x43, 0x44, 0x20, 0x49, 0x4f, + 0x3c, 0x2f, 0x62, 0x3e, 0x3c, 0x62, 0x72, 0x3e, 0xd, 0xa, + 0xd, 0xa, 0x3c, 0x70, 0x3e, 0xd, 0xa, 0xd, 0xa, 0x55, + 0x73, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x65, + 0x63, 0x6b, 0x20, 0x62, 0x6f, 0x78, 0x20, 0x74, 0x6f, 0x20, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6f, 0x6e, 0x20, 0x6f, 0x72, + 0x20, 0x6f, 0x66, 0x66, 0x20, 0x4c, 0x45, 0x44, 0x20, 0x34, + 0x2c, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x63, 0x6c, 0x69, + 0x63, 0x6b, 0x20, 0x22, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x20, 0x49, 0x4f, 0x22, 0x2e, 0xd, 0xa, 0xd, 0xa, 0xd, + 0xa, 0x3c, 0x70, 0x3e, 0xd, 0xa, 0x3c, 0x66, 0x6f, 0x72, + 0x6d, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x61, 0x46, + 0x6f, 0x72, 0x6d, 0x22, 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x3d, 0x22, 0x2f, 0x69, 0x6f, 0x2e, 0x73, 0x68, 0x74, + 0x6d, 0x6c, 0x22, 0x20, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, + 0x3d, 0x22, 0x67, 0x65, 0x74, 0x22, 0x3e, 0xd, 0xa, 0x25, + 0x21, 0x20, 0x6c, 0x65, 0x64, 0x2d, 0x69, 0x6f, 0xd, 0xa, + 0x3c, 0x70, 0x3e, 0xd, 0xa, 0x3c, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x73, 0x75, + 0x62, 0x6d, 0x69, 0x74, 0x22, 0x20, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3d, 0x22, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, + 0x49, 0x4f, 0x22, 0x3e, 0xd, 0xa, 0x3c, 0x2f, 0x66, 0x6f, + 0x72, 0x6d, 0x3e, 0xd, 0xa, 0x3c, 0x62, 0x72, 0x3e, 0x3c, + 0x70, 0x3e, 0xd, 0xa, 0x3c, 0x2f, 0x66, 0x6f, 0x6e, 0x74, + 0x3e, 0xd, 0xa, 0x3c, 0x2f, 0x62, 0x6f, 0x64, 0x79, 0x3e, + 0xd, 0xa, 0x3c, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0xd, + 0xa, 0xd, 0xa, 0}; + +static const char data_logo_jpg[] = { + /* /logo.jpg */ + 0x2f, 0x6c, 0x6f, 0x67, 0x6f, 0x2e, 0x6a, 0x70, 0x67, 0, + 0xff, 0xd8, 0xff, 0xe0, 00, 0x10, 0x4a, 0x46, 0x49, 0x46, + 00, 0x1, 0x1, 00, 00, 0x1, 00, 0x1, 00, 00, + 0xff, 0xdb, 00, 0x43, 00, 0x3, 0x2, 0x2, 0x3, 0x2, + 0x2, 0x3, 0x3, 0x3, 0x3, 0x4, 0x3, 0x3, 0x4, 0x5, + 0x8, 0x5, 0x5, 0x4, 0x4, 0x5, 0xa, 0x7, 0x7, 0x6, + 0x8, 0xc, 0xa, 0xc, 0xc, 0xb, 0xa, 0xb, 0xb, 0xd, + 0xe, 0x12, 0x10, 0xd, 0xe, 0x11, 0xe, 0xb, 0xb, 0x10, + 0x16, 0x10, 0x11, 0x13, 0x14, 0x15, 0x15, 0x15, 0xc, 0xf, + 0x17, 0x18, 0x16, 0x14, 0x18, 0x12, 0x14, 0x15, 0x14, 0xff, + 0xdb, 00, 0x43, 0x1, 0x3, 0x4, 0x4, 0x5, 0x4, 0x5, + 0x9, 0x5, 0x5, 0x9, 0x14, 0xd, 0xb, 0xd, 0x14, 0x14, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0xff, 0xc0, + 00, 0x11, 0x8, 0x1, 0x8, 0x2, 0xc2, 0x3, 0x1, 0x22, + 00, 0x2, 0x11, 0x1, 0x3, 0x11, 0x1, 0xff, 0xc4, 00, + 0x1f, 00, 00, 0x1, 0x5, 0x1, 0x1, 0x1, 0x1, 0x1, + 0x1, 00, 00, 00, 00, 00, 00, 00, 00, 0x1, + 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, + 0xff, 0xc4, 00, 0xb5, 0x10, 00, 0x2, 0x1, 0x3, 0x3, + 0x2, 0x4, 0x3, 0x5, 0x5, 0x4, 0x4, 00, 00, 0x1, + 0x7d, 0x1, 0x2, 0x3, 00, 0x4, 0x11, 0x5, 0x12, 0x21, + 0x31, 0x41, 0x6, 0x13, 0x51, 0x61, 0x7, 0x22, 0x71, 0x14, + 0x32, 0x81, 0x91, 0xa1, 0x8, 0x23, 0x42, 0xb1, 0xc1, 0x15, + 0x52, 0xd1, 0xf0, 0x24, 0x33, 0x62, 0x72, 0x82, 0x9, 0xa, + 0x16, 0x17, 0x18, 0x19, 0x1a, 0x25, 0x26, 0x27, 0x28, 0x29, + 0x2a, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x43, 0x44, + 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x53, 0x54, 0x55, 0x56, + 0x57, 0x58, 0x59, 0x5a, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, + 0x69, 0x6a, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, + 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x92, 0x93, + 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0xa2, 0xa3, 0xa4, + 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xb2, 0xb3, 0xb4, 0xb5, + 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, + 0xc7, 0xc8, 0xc9, 0xca, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, + 0xd8, 0xd9, 0xda, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, + 0xe8, 0xe9, 0xea, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, + 0xf8, 0xf9, 0xfa, 0xff, 0xc4, 00, 0x1f, 0x1, 00, 0x3, + 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 00, + 00, 00, 00, 00, 00, 0x1, 0x2, 0x3, 0x4, 0x5, + 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xff, 0xc4, 00, 0xb5, + 0x11, 00, 0x2, 0x1, 0x2, 0x4, 0x4, 0x3, 0x4, 0x7, + 0x5, 0x4, 0x4, 00, 0x1, 0x2, 0x77, 00, 0x1, 0x2, + 0x3, 0x11, 0x4, 0x5, 0x21, 0x31, 0x6, 0x12, 0x41, 0x51, + 0x7, 0x61, 0x71, 0x13, 0x22, 0x32, 0x81, 0x8, 0x14, 0x42, + 0x91, 0xa1, 0xb1, 0xc1, 0x9, 0x23, 0x33, 0x52, 0xf0, 0x15, + 0x62, 0x72, 0xd1, 0xa, 0x16, 0x24, 0x34, 0xe1, 0x25, 0xf1, + 0x17, 0x18, 0x19, 0x1a, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x35, + 0x36, 0x37, 0x38, 0x39, 0x3a, 0x43, 0x44, 0x45, 0x46, 0x47, + 0x48, 0x49, 0x4a, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, + 0x5a, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x73, + 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x82, 0x83, 0x84, + 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x92, 0x93, 0x94, 0x95, + 0x96, 0x97, 0x98, 0x99, 0x9a, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, + 0xa7, 0xa8, 0xa9, 0xaa, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + 0xb8, 0xb9, 0xba, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, + 0xc9, 0xca, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, + 0xda, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, + 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xff, + 0xda, 00, 0xc, 0x3, 0x1, 00, 0x2, 0x11, 0x3, 0x11, + 00, 0x3f, 00, 0xfd, 0x53, 0xa2, 0x8a, 0x28, 00, 0xa2, + 0x8a, 0x28, 00, 0xa2, 0x8a, 0x28, 00, 0xa2, 0x8a, 0x28, + 00, 0xaa, 0xf7, 0xfa, 0x85, 0xb6, 0x95, 0x67, 0x2d, 0xd5, + 0xe4, 0xf1, 0xdb, 0x5b, 0x44, 0xa5, 0x9e, 0x59, 0x58, 0x2a, + 0xa8, 0x1e, 0xf5, 0xc6, 0x7c, 0x4e, 0xf8, 0xb3, 0xa6, 0xfc, + 0x39, 0xb4, 0x48, 0xb0, 0xb7, 0xda, 0xd5, 0xc6, 0x5, 0xb6, + 0x9e, 0x8d, 0x86, 0x72, 0x4e, 0x37, 0x37, 0xf7, 0x57, 0xf9, + 0xf6, 0xaa, 0x16, 0x5f, 0xd, 0x9f, 0xc6, 0xd0, 0xc5, 0xa9, + 0xf8, 0xc6, 0xe1, 0xef, 0xa6, 0x99, 0x3, 0xa6, 0x9e, 0x84, + 0xad, 0xbd, 0xb6, 0x7b, 0x2a, 0xf7, 0x3e, 0xe7, 0x9a, 0xe0, + 0xa9, 0x89, 0xbc, 0xdd, 0x1a, 0xb, 0x9a, 0x6b, 0x7e, 0xcb, + 0xd5, 0xfe, 0x9b, 0x9c, 0xb2, 0xaf, 0x79, 0x3a, 0x74, 0xb5, + 0x92, 0xdf, 0xb2, 0xf5, 0xff, 00, 0x23, 0x93, 0xf1, 0xa7, + 0xed, 0x5f, 0xa1, 0x69, 0x1b, 0xa1, 0xd0, 0x2d, 0x64, 0xd6, + 0x2e, 0x1, 0xc7, 0x9b, 0x26, 0x62, 0x84, 0x7d, 0xf, 0x53, + 0xf9, 0x57, 0x91, 0x6b, 0x5f, 0xb5, 0xf, 0x8e, 0x35, 0x49, + 0x9, 0xb7, 0xba, 0xb7, 0xd3, 0x23, 0xec, 0x96, 0xd0, 0x29, + 0xfd, 0x5b, 0x26, 0xbe, 0x92, 0x7f, 0x81, 0x1e, 0xb, 0x7f, + 0xf9, 0x84, 0x46, 0x3e, 0x95, 0xb, 0xfe, 0xcf, 0xfe, 0xa, + 0x93, 0xae, 0x96, 0xa3, 0xe8, 0x6b, 0xc2, 0xaf, 0x84, 0xcd, + 0xab, 0xbb, 0xba, 0xa9, 0x2e, 0xc9, 0xb5, 0xfa, 0x5c, 0xf0, + 0xb1, 0x18, 0x4c, 0xce, 0xbb, 0xd2, 0xb2, 0x8a, 0xec, 0xb4, + 0xff, 00, 0x82, 0x7c, 0x91, 0x3f, 0xc6, 0xf, 0x19, 0x5c, + 0x48, 0x5d, 0xfc, 0x45, 0x7e, 0x58, 0xf5, 0xc4, 0xb8, 0x1f, + 0x90, 0xa7, 0x27, 0xc6, 0x5f, 0x1a, 0x46, 0xca, 0x57, 0xc4, + 0x57, 0xc0, 0xaf, 0x23, 0xf7, 0x99, 0xfe, 0x95, 0xf5, 0x73, + 0xfe, 0xce, 0x9e, 0x9, 0x7f, 0xf9, 0x87, 0x15, 0xfa, 0x35, + 0x43, 0x27, 0xec, 0xd7, 0xe0, 0xa7, 0xe9, 0x67, 0x2a, 0xfd, + 0x1e, 0xbc, 0xcf, 0xec, 0x7c, 0xc5, 0x3b, 0xa9, 0xff, 00, + 0xe4, 0xcc, 0xf3, 0x3f, 0xb1, 0xf3, 0x1d, 0xd5, 0x6f, 0xc5, + 0x9f, 0x31, 0x2f, 0xc7, 0x9f, 0x1e, 0x29, 0xcf, 0xfc, 0x24, + 0x77, 0x47, 0xea, 0x10, 0xff, 00, 0x4a, 0x9e, 0x2f, 0xda, + 0x17, 0xc7, 0xd1, 0xc, 0xf, 0x10, 0xcc, 0x7b, 0xfc, 0xd0, + 0xc6, 0x7f, 0x9a, 0xd7, 0xd1, 0xed, 0xfb, 0x31, 0xf8, 0x34, + 0xe7, 0x10, 0xce, 0x7, 0xfb, 0xff, 00, 0xfd, 0x6a, 0x81, + 0xff, 00, 0x65, 0xcf, 0x8, 0x37, 0x4f, 0xb4, 0x83, 0xfe, + 0xf0, 0xa7, 0xfd, 0x99, 0x9a, 0xad, 0xaa, 0x7f, 0xe4, 0xcc, + 0x3f, 0xb2, 0xf3, 0x45, 0xb5, 0x6f, 0xc5, 0x9f, 0x3d, 0xff, + 00, 0xc3, 0x46, 0x7c, 0x40, 0xff, 00, 0xa0, 0xfb, 0xff, + 00, 0xe0, 0x3c, 0x5f, 0xfc, 0x4d, 0x48, 0xbf, 0xb4, 0x8f, + 0x8f, 0xd4, 0xe7, 0xfb, 0x6f, 0x3e, 0xc6, 0xda, 0x2f, 0xfe, + 0x26, 0xbd, 0xe9, 0xff, 00, 0x65, 0x6f, 0x9, 0xb6, 0x71, + 0x25, 0xd0, 0xff, 00, 0x81, 0xa, 0x85, 0xff, 00, 0x64, + 0xff, 00, 0xb, 0x30, 0xe2, 0xe6, 0xed, 0x4f, 0xd4, 0x51, + 0xfd, 0x9d, 0x9b, 0x2f, 0xb6, 0xff, 00, 0xf0, 0x26, 0x1f, + 0xd9, 0xd9, 0xb2, 0xda, 0xb7, 0xfe, 0x4c, 0xcf, 0x11, 0x5f, + 0xda, 0x63, 0xc7, 0xca, 0x79, 0xd5, 0xa3, 0x6f, 0x63, 0x6b, + 0x1f, 0xf8, 0x54, 0xcb, 0xfb, 0x50, 0x78, 0xf1, 0x40, 0x1f, + 0x6f, 0xb6, 0x3e, 0xe6, 0xd5, 0x2b, 0xd8, 0x5b, 0xf6, 0x49, + 0xf0, 0xd1, 0xe9, 0x7f, 0x76, 0xbe, 0xdc, 0x54, 0xf, 0xfb, + 0x22, 0xe8, 0x24, 0x7c, 0xba, 0xa5, 0xd0, 0x3f, 0xee, 0x8a, + 0x5f, 0x52, 0xce, 0x17, 0xda, 0x7f, 0xf8, 0x17, 0xfc, 0x10, + 0xfa, 0x8e, 0x70, 0xbf, 0xe5, 0xef, 0xfe, 0x4c, 0x79, 0x7a, + 0xfe, 0xd5, 0x9e, 0x38, 0x4, 0x66, 0x4d, 0x3d, 0xb1, 0xd8, + 0xda, 0xf5, 0xfd, 0x6a, 0x55, 0xfd, 0xac, 0x7c, 0x6a, 0xbd, + 0x53, 0x4c, 0x6f, 0xad, 0xb3, 0x7f, 0xf1, 0x55, 0xe8, 0xcf, + 0xfb, 0x21, 0x68, 0xe7, 0xee, 0xea, 0xd7, 0x3, 0xea, 0xa2, + 0xa0, 0x7f, 0xd9, 0x3, 0x4e, 0x39, 0xdb, 0xac, 0x4c, 0x3e, + 0xa8, 0x29, 0xfd, 0x5b, 0x39, 0x5f, 0x69, 0xff, 00, 0xe0, + 0x48, 0x3e, 0xa9, 0x9d, 0x2f, 0xf9, 0x79, 0xf8, 0x9c, 0x18, + 0xfd, 0xad, 0x3c, 0x67, 0xff, 00, 0x3c, 0x74, 0xbf, 0xfc, + 0x7, 0x6f, 0xfe, 0x2e, 0x9e, 0x3f, 0x6b, 0x6f, 0x18, 0x77, + 0xb6, 0xd2, 0xcf, 0xfd, 0xb0, 0x7f, 0xfe, 0x2e, 0xbb, 0x37, + 0xfd, 0x8f, 0xac, 0xff, 00, 0x87, 0x5a, 0x93, 0xf1, 0x41, + 0x50, 0xbf, 0xec, 0x7b, 0x11, 0xfb, 0xba, 0xe3, 0xf, 0xac, + 0x74, 0x7b, 0x1c, 0xe9, 0x75, 0x7f, 0x7a, 0x17, 0xd5, 0xf3, + 0xb5, 0xf6, 0xff, 00, 0x14, 0x72, 0xc9, 0xfb, 0x5d, 0x78, + 0xb1, 0x4f, 0xcd, 0x63, 0xa5, 0xb0, 0xf4, 0xf2, 0x9c, 0x7f, + 0xec, 0xd5, 0x62, 0x2f, 0xda, 0xff, 00, 0xc4, 0x8a, 0xb8, + 0x7d, 0x27, 0x4d, 0x73, 0xea, 0x3, 0x8f, 0xfd, 0x9a, 0xb6, + 0x9f, 0xf6, 0x3d, 0x71, 0x8d, 0x9a, 0xd8, 0x3f, 0x58, 0xea, + 0x17, 0xfd, 0x8f, 0xee, 0x81, 0x3b, 0x75, 0x98, 0xcf, 0xa6, + 0x52, 0xa7, 0x93, 0x3a, 0x5f, 0xcd, 0xf7, 0xa0, 0xf6, 0x79, + 0xe2, 0xfb, 0x5f, 0x91, 0x4d, 0x7f, 0x6c, 0x4d, 0x6c, 0x1, + 0xbb, 0x42, 0xb0, 0x27, 0xb9, 0xe, 0xe3, 0x35, 0x3a, 0x7e, + 0xd8, 0xda, 0x98, 0x3f, 0x37, 0x87, 0x6d, 0x8, 0xf6, 0xb8, + 0x61, 0xfd, 0x29, 0xad, 0xfb, 0x21, 0x6a, 0x40, 0x71, 0xaa, + 0xc2, 0x4f, 0xa6, 0xda, 0x85, 0xff, 00, 0x64, 0x4d, 0x60, + 0x1f, 0x97, 0x53, 0x80, 0xfe, 0x14, 0xef, 0x9d, 0xae, 0xff, + 00, 0x80, 0x7f, 0xc2, 0xe2, 0xeb, 0xf9, 0x17, 0x7, 0xed, + 0x8f, 0x7b, 0xdf, 0xc3, 0x56, 0xdf, 0x85, 0xd3, 0x7f, 0xf1, + 0x35, 0x22, 0xfe, 0xd8, 0xf7, 0x3c, 0x6e, 0xf0, 0xd4, 0x3e, + 0xf8, 0xba, 0x3f, 0xfc, 0x4d, 0x64, 0x37, 0xec, 0x8f, 0xaf, + 0x1, 0xf2, 0xdf, 0xdb, 0x93, 0xe8, 0x6a, 0x16, 0xfd, 0x92, + 0xfc, 0x48, 0xf, 0xcb, 0x75, 0x6c, 0x47, 0xae, 0xea, 0x4e, + 0xae, 0x74, 0xbf, 0x9b, 0xee, 0x42, 0xe7, 0xcf, 0x17, 0xfc, + 0x32, 0x3a, 0x45, 0xfd, 0xb1, 0xf9, 0xf9, 0xbc, 0x32, 0x31, + 0xed, 0x77, 0xff, 00, 0xd8, 0xd4, 0xf1, 0xfe, 0xd8, 0xf6, + 0xd8, 0x3b, 0xfc, 0x37, 0x26, 0x7b, 0x6d, 0xba, 0x1f, 0xfc, + 0x4d, 0x71, 0x6f, 0xfb, 0x29, 0x78, 0xa9, 0x46, 0x43, 0xdb, + 0x93, 0xe9, 0xbc, 0x54, 0x2f, 0xfb, 0x2c, 0x78, 0xb5, 0x71, + 0x81, 0x9, 0xfa, 0x38, 0xa5, 0xf5, 0x9c, 0xe5, 0x74, 0x97, + 0xfe, 0x2, 0xbf, 0xc8, 0x7e, 0xdf, 0x3b, 0x5f, 0x67, 0xf0, + 0x47, 0xa2, 0x45, 0xfb, 0x62, 0xe9, 0x45, 0x7, 0x99, 0xe1, + 0xeb, 0xb0, 0xfe, 0x8b, 0x3a, 0x11, 0xfc, 0xaa, 0xc2, 0x7e, + 0xd8, 0x3a, 0x1, 0xc6, 0xfd, 0xf, 0x50, 0x5f, 0x5c, 0x3a, + 0x1f, 0xeb, 0x5e, 0x58, 0xff, 00, 0xb2, 0xff, 00, 0x8c, + 0x57, 0x38, 0x82, 0x26, 0xc7, 0xfb, 0x62, 0xa2, 0x6f, 0xd9, + 0x97, 0xc6, 0x63, 0x18, 0xb4, 0x43, 0xf4, 0x71, 0x4f, 0xeb, + 0xb9, 0xc2, 0xfb, 0x2f, 0xff, 00, 0x1, 0xff, 00, 0x80, + 0x1f, 0x5a, 0xce, 0x97, 0xd8, 0xfc, 0x11, 0xeb, 0xa3, 0xf6, + 0xbe, 0xf0, 0xd7, 0x7d, 0x23, 0x53, 0x1f, 0xf7, 0xef, 0xff, + 00, 0x8a, 0xa7, 0xaf, 0xed, 0x79, 0xe1, 0x72, 0x39, 0xd2, + 0xf5, 0x31, 0xff, 00, 0x1, 0x4f, 0xfe, 0x2a, 0xbc, 0x61, + 0xff, 00, 0x66, 0xcf, 0x1a, 0xa6, 0x71, 0xa7, 0x86, 0xc7, + 0xa3, 0x8a, 0x85, 0xff, 00, 0x67, 0x5f, 0x1b, 0xa0, 0xcf, + 0xf6, 0x53, 0x1f, 0xa3, 0xa, 0x3f, 0xb4, 0x33, 0x65, 0xf6, + 0x5f, 0xfe, 0x3, 0xff, 00, 00, 0x5f, 0x5e, 0xce, 0x56, + 0xf4, 0xff, 00, 0x3, 0xdc, 0x47, 0xed, 0x71, 0xe1, 0x42, + 0x46, 0x74, 0xfd, 0x4c, 0xf, 0xf7, 0x13, 0xff, 00, 0x8a, + 0xa9, 0xe3, 0xfd, 0xac, 0xfc, 0x1e, 0xc4, 0xee, 0xb6, 0xd4, + 0x90, 0x7f, 0xd7, 0x15, 0x3f, 0xfb, 0x35, 0x78, 0x3, 0x7e, + 0xcf, 0xfe, 0x36, 0x52, 0x47, 0xf6, 0x3c, 0x9f, 0x81, 0x15, + 0xb, 0xfc, 0x9, 0xf1, 0xa2, 0xc, 0xff, 00, 0x63, 0x4c, + 0x7e, 0x98, 0xa5, 0xfd, 0xa7, 0x9a, 0x2d, 0xe2, 0xff, 00, + 0xf0, 0x16, 0x1f, 0xda, 0x39, 0xba, 0xde, 0x9f, 0xe0, 0x7d, + 0x19, 0x1f, 0xed, 0x59, 0xe0, 0x97, 0x5c, 0xb7, 0xf6, 0x8a, + 0x1f, 0x43, 0x6c, 0xf, 0xfe, 0xcd, 0x53, 0xaf, 0xed, 0x4b, + 0xe0, 0x43, 0x8c, 0xdc, 0x5e, 0x8f, 0xad, 0xab, 0x71, 0x5f, + 0x33, 0xb7, 0xc1, 0x2f, 0x19, 0x29, 0xff, 00, 0x90, 0x2d, + 0xc7, 0xe5, 0x50, 0x37, 0xc1, 0xcf, 0x18, 0x20, 0xc9, 0xd1, + 0x2e, 0x71, 0xec, 0xb5, 0x5f, 0xda, 0xf9, 0x92, 0xde, 0x1f, + 0xf9, 0x2b, 0xf, 0xed, 0x5c, 0xd5, 0x6f, 0x4b, 0xf0, 0x7f, + 0xe6, 0x7d, 0x48, 0x3f, 0x69, 0xff, 00, 0x1, 0x1f, 0xf9, + 0x7f, 0xba, 0x1f, 0xf6, 0xe8, 0xff, 00, 0xe1, 0x4e, 0x1f, + 0xb4, 0xe7, 0x80, 0x4f, 0xfc, 0xc4, 0x6e, 0x7, 0xd6, 0xd1, + 0xff, 00, 0xc2, 0xbe, 0x54, 0x7f, 0x84, 0xde, 0x2d, 0x8f, + 0xae, 0x87, 0x77, 0xf8, 0x25, 0x40, 0xdf, 0xc, 0xfc, 0x50, + 0xa0, 0x93, 0xa3, 0x5d, 0xf1, 0xff, 00, 0x4c, 0xcd, 0x27, + 0x9d, 0x66, 0xb, 0xec, 0x2f, 0xfc, 0x5, 0xff, 00, 0x98, + 0xbf, 0xb6, 0x33, 0x35, 0xbd, 0x2f, 0xc1, 0xff, 00, 0x99, + 0xf5, 0xa8, 0xfd, 0xa5, 0xfc, 0x2, 0x46, 0x7f, 0xb5, 0x26, + 0x1f, 0x5b, 0x57, 0xff, 00, 0xa, 0x9d, 0x3f, 0x68, 0xdf, + 00, 0xb9, 0xc7, 0xf6, 0xd1, 0x5f, 0x76, 0xb7, 0x93, 0xff, + 00, 0x89, 0xaf, 0x8f, 0x9b, 0xe1, 0xe7, 0x89, 0x13, 0x19, + 0xd2, 0x2e, 0xc6, 0x7f, 0xe9, 0x99, 0xa8, 0xdb, 0xc0, 0xbe, + 0x20, 0x4c, 0xe7, 0x4a, 0xbb, 0x18, 0xeb, 0xfb, 0xb3, 0x4b, + 0xfb, 0x73, 0x1c, 0xb7, 0x82, 0xfb, 0x9f, 0xf9, 0x87, 0xf6, + 0xd6, 0x60, 0xb7, 0xa5, 0xf8, 0x3f, 0xf3, 0x3e, 0xcc, 0x8f, + 0xf6, 0x84, 0xf0, 0xc, 0x99, 0xff, 00, 0x89, 0xfc, 0x6b, + 0x8f, 0xef, 0x43, 0x20, 0xff, 00, 0xd9, 0x6a, 0x75, 0xf8, + 0xf1, 0xe0, 0x26, 0x50, 0x47, 0x88, 0xed, 0xb9, 0xf5, 0x57, + 0x1f, 0xd2, 0xbe, 0x27, 0x6f, 0x7, 0x6b, 0x8b, 0xd7, 0x4c, + 0xba, 0x1f, 0xf6, 0xcc, 0xd4, 0x6d, 0xe1, 0x6d, 0x65, 0x9, + 0x7, 0x4e, 0xba, 0x18, 0xff, 00, 0xa6, 0x66, 0x9f, 0xf6, + 0xfe, 0x2d, 0x6f, 0x5, 0xf7, 0x3f, 0xf3, 0x1f, 0xf6, 0xee, + 0x35, 0x6f, 0x47, 0xf0, 0x67, 0xdc, 0x23, 0xe3, 0x87, 0x81, + 0xf, 0xfc, 0xcc, 0xd6, 0x5f, 0x99, 0xff, 00, 0xa, 0x92, + 0x3f, 0x8d, 0x3e, 0x7, 0x90, 0x90, 0xbe, 0x26, 0xb0, 0xe3, + 0xd6, 0x4c, 0x7f, 0x4a, 0xf8, 0x54, 0xe8, 0x1a, 0xa2, 0x8c, + 0x9b, 0x1b, 0x80, 0x3f, 0xeb, 0x99, 0xa6, 0x1d, 0x1b, 0x51, + 0x5e, 0xb6, 0x93, 0x8f, 0xf8, 0x1, 0xa7, 0xfe, 0xb0, 0xe2, + 0x7f, 0x92, 0x3f, 0x8f, 0xf9, 0x87, 0xf6, 0xfe, 0x2f, 0xad, + 0x1f, 0xcc, 0xfb, 0xc9, 0x7e, 0x2f, 0x78, 0x2d, 0x86, 0x47, + 0x89, 0x74, 0xec, 0x7f, 0xd7, 0x61, 0x53, 0x47, 0xf1, 0x4f, + 0xc2, 0x12, 0x90, 0x17, 0xc4, 0x7a, 0x71, 0x27, 0xa7, 0xfa, + 0x42, 0xd7, 0xc0, 0xa7, 0x4b, 0xbe, 0x1d, 0x6d, 0xa5, 0x1f, + 0xf0, 0x3, 0x4d, 0x3a, 0x7d, 0xe2, 0xf5, 0xb7, 0x97, 0xfe, + 0xf8, 0x34, 0x7f, 0xac, 0x55, 0xfa, 0xc2, 0x3f, 0x88, 0xff, + 00, 0xd6, 0x1c, 0x42, 0xde, 0x8f, 0xe6, 0x7e, 0x82, 0xc3, + 0xf1, 0xb, 0xc3, 0x17, 0xd, 0xb6, 0x3f, 0x10, 0x69, 0xac, + 0x7a, 0xe3, 0xed, 0x28, 0x3f, 0xad, 0x5a, 0x4f, 0x17, 0xe8, + 0x52, 0x2e, 0x53, 0x59, 0xb0, 0x61, 0xea, 0x2e, 0x50, 0xff, + 00, 0x5a, 0xfc, 0xee, 0x36, 0xb7, 0x23, 0xac, 0x2e, 0x3f, + 0xe0, 0x26, 0x9a, 0x61, 0x98, 0x7f, 0xcb, 0x36, 0xfc, 0xaa, + 0xd7, 0x12, 0x54, 0xeb, 0x4d, 0x7d, 0xe5, 0x2e, 0x23, 0xab, + 0xd6, 0x8f, 0xe3, 0xff, 00, 00, 0xfd, 0x1c, 0x1a, 0xee, + 0x9a, 0x71, 0x8d, 0x42, 0xd4, 0xe7, 0xfe, 0x9b, 0x2f, 0xf8, + 0xd3, 0x86, 0xb3, 0xa7, 0x9e, 0x97, 0xd6, 0xc7, 0xfe, 0xdb, + 0x2f, 0xf8, 0xd7, 0xe7, 0x6, 0xc9, 0x47, 0xf0, 0x37, 0xe5, + 0x47, 0xef, 0x57, 0xb3, 0xa, 0xd3, 0xfd, 0x64, 0x97, 0xfc, + 0xfa, 0x5f, 0x7f, 0xfc, 0x1, 0xff, 00, 0xac, 0x92, 0xff, + 00, 0x9f, 0x3f, 0x8f, 0xfc, 0x3, 0xf4, 0x84, 0x6a, 0xb6, + 0x47, 0xa5, 0xe4, 0x7, 0xe9, 0x2a, 0xff, 00, 0x8d, 0x38, + 0x6a, 0x16, 0xad, 0x8c, 0x5c, 0xc2, 0x73, 0xe9, 0x20, 0xaf, + 0xcd, 0xc1, 0x24, 0xc3, 0xa1, 0x61, 0xf9, 0xd3, 0x85, 0xcd, + 0xc2, 0xf4, 0x77, 0x18, 0xff, 00, 0x68, 0xd3, 0x5c, 0x48, + 0xff, 00, 0xe7, 0xd7, 0xe3, 0xff, 00, 00, 0x7f, 0xeb, + 0x2f, 0x7a, 0x5f, 0x8f, 0xfc, 0x3, 0xf4, 0x95, 0x67, 0x8d, + 0xce, 0x16, 0x44, 0x63, 0xe8, 0x18, 0x1a, 0x7e, 0x47, 0xad, + 0x7e, 0x6d, 0xae, 0xa7, 0x7a, 0x87, 0x2b, 0x73, 0x32, 0x9f, + 0x51, 0x21, 0x1f, 0xd6, 0xa4, 0x1a, 0xe6, 0xa2, 0xbd, 0x2f, + 0x6e, 0x47, 0xd2, 0x66, 0xff, 00, 0x1a, 0xa5, 0xc4, 0x9d, + 0xe9, 0x7e, 0x3f, 0xf0, 0xa, 0xff, 00, 0x59, 0x63, 0xff, + 00, 0x3e, 0xbf, 0x1f, 0xf8, 0x7, 0xe9, 0x6, 0x45, 0x19, + 0xaf, 0xce, 0x31, 0xe2, 0x4d, 0x58, 0xc, 0xd, 0x4a, 0xf0, + 0xf, 0x69, 0xdf, 0xfc, 0x69, 0xc3, 0xc5, 0x3a, 0xc8, 0x3c, + 0x6a, 0x97, 0xc0, 0xff, 00, 0xd7, 0xc3, 0xff, 00, 0x8d, + 0x5f, 0xfa, 0xc7, 0x1f, 0xf9, 0xf5, 0xf8, 0xff, 00, 0xc0, + 0x1f, 0xfa, 0xcb, 0x4f, 0xfe, 0x7d, 0x3f, 0xbf, 0xfe, 0x1, + 0xfa, 0x35, 0x9a, 0x5a, 0xfc, 0xe8, 0x5f, 0x18, 0xeb, 0xb1, + 0xe4, 0x2e, 0xb1, 0x7e, 0xb9, 0xeb, 0x8b, 0x97, 0xe7, 0xf5, + 0xa9, 0x53, 0xc7, 0x7e, 0x22, 0x89, 0x76, 0xae, 0xb9, 0xa9, + 0x28, 0xf4, 0x17, 0x6f, 0xfe, 0x34, 0x7f, 0xac, 0x71, 0xff, + 00, 0x9f, 0x5f, 0x8f, 0xfc, 0x2, 0x97, 0x12, 0xd2, 0xeb, + 0x4d, 0xfd, 0xe7, 0xe8, 0x95, 0x15, 0xf9, 0xe8, 0x9f, 0x12, + 0xbc, 0x55, 0x19, 0x5, 0x7c, 0x43, 0xaa, 0x2, 0x3a, 0x7f, + 0xa5, 0xbf, 0xf8, 0xd4, 0xf1, 0xfc, 0x57, 0xf1, 0x84, 0x59, + 0xdb, 0xe2, 0x5d, 0x50, 0x67, 0xfe, 0x9e, 0x9f, 0xfc, 0x6a, + 0xd7, 0x11, 0xd3, 0xeb, 0x4d, 0xfd, 0xe8, 0xb5, 0xc4, 0x94, + 0x3a, 0xc1, 0xfe, 0x7, 0xe8, 0x25, 0x15, 0xf0, 00, 0xf8, + 0xc3, 0xe3, 0x40, 0x38, 0xf1, 0x3e, 0xa9, 0xff, 00, 0x81, + 0xd, 0x4f, 0x1f, 0x19, 0xbc, 0x6c, 0xe, 0x7f, 0xe1, 0x26, + 0xd4, 0x7f, 0xef, 0xf1, 0xaa, 0xff, 00, 0x58, 0xa8, 0xff, + 00, 0xcf, 0xb7, 0xf8, 0xf, 0xfd, 0x64, 0xc3, 0xff, 00, + 0x23, 0xfc, 0xf, 0xbf, 0x28, 0xaf, 0x82, 0x57, 0xe3, 0x8f, + 0x8e, 0x54, 0xe4, 0x78, 0x92, 0xf8, 0xfd, 0x5c, 0x7f, 0x85, + 0x4a, 0x9f, 0x1e, 0x3c, 0x74, 0x99, 0xc7, 0x88, 0xae, 0xcf, + 0xd7, 0x7, 0xfa, 0x53, 0xff, 00, 0x58, 0xa8, 0x7f, 0xcf, + 0xb9, 0x7e, 0x1f, 0xe6, 0x5a, 0xe2, 0x3c, 0x2f, 0xf2, 0xbf, + 0xc3, 0xfc, 0xcf, 0xbc, 0x68, 0xaf, 0x86, 0x23, 0xfd, 0xa1, + 0xfc, 0x7b, 0x18, 0x51, 0xfd, 0xbd, 0x23, 0x6d, 0xfe, 0xf4, + 0x48, 0x73, 0xf5, 0xe2, 0xac, 0xc7, 0xfb, 0x4a, 0xf8, 0xf6, + 0x37, 0xdd, 0xfd, 0xae, 0x8d, 0xec, 0xd6, 0xd1, 0x91, 0xfc, + 0xaa, 0xd7, 0x10, 0xe1, 0xba, 0xc2, 0x5f, 0x87, 0xf9, 0x96, + 0xb8, 0x8b, 0x9, 0xd9, 0xfd, 0xcb, 0xfc, 0xcf, 0xb7, 0xa8, + 0xaf, 0x8a, 0x17, 0xf6, 0x9f, 0xf1, 0xe8, 0x1c, 0xea, 0x36, + 0xed, 0xf5, 0xb4, 0x4f, 0xf0, 0xa7, 0x8f, 0xda, 0x8b, 0xc7, + 0x7f, 0xf3, 0xfb, 0x69, 0xff, 00, 0x80, 0xab, 0x57, 0xfe, + 0xb0, 0x61, 0x7b, 0x4b, 0xee, 0x5f, 0xe6, 0x57, 0xfa, 0xc3, + 0x83, 0xf3, 0xfb, 0xbf, 0xe0, 0x9f, 0x6a, 0x51, 0x5f, 0x17, + 0xaf, 0xed, 0x4f, 0xe3, 0x90, 0x46, 0x6e, 0x2c, 0xdb, 0xd8, + 0xdb, 0xa, 0x9e, 0x2f, 0xda, 0xb7, 0xc6, 0xb1, 0xb1, 0x2c, + 0x74, 0xf9, 0x6, 0x3a, 0x35, 0xb9, 0xfe, 0x86, 0x9f, 0xfa, + 0xc1, 0x84, 0xed, 0x2f, 0xbb, 0xfe, 0x9, 0x4b, 0x88, 0x30, + 0x5d, 0xdf, 0xdc, 0x7d, 0x93, 0x45, 0x7c, 0x7e, 0xbf, 0xb5, + 0xbf, 0x8b, 0x82, 0x80, 0x6d, 0x34, 0xb6, 0x3e, 0xbe, 0x4b, + 0xff, 00, 0xf1, 0x55, 0x3a, 0x7e, 0xd7, 0x9e, 0x29, 0xc, + 0xb, 0x69, 0xba, 0x5b, 0xe, 0xe3, 0x63, 0x8f, 0xfd, 0x9a, + 0xad, 0x67, 0xd8, 0x3f, 0x3f, 0xb8, 0xb5, 0x9f, 0x60, 0x7f, + 0x99, 0xfd, 0xc7, 0xd7, 0x34, 0x57, 0xc9, 0xab, 0xfb, 0x60, + 0xf8, 0x88, 0x67, 0x76, 0x8d, 0xa6, 0x1f, 0xa1, 0x90, 0x7f, + 0xec, 0xd4, 0xf1, 0xfb, 0x61, 0xeb, 0xdd, 0xf4, 0x3d, 0x37, + 0xfe, 0xfa, 0x93, 0xfc, 0x6a, 0xbf, 0xb7, 0x70, 0x5f, 0xcc, + 0xfe, 0xe6, 0x57, 0xf6, 0xee, 0x7, 0xf9, 0x9f, 0xdc, 0xcf, + 0xab, 0xe8, 0xaf, 0x94, 0xd7, 0xf6, 0xc4, 0xd6, 0xf8, 0xce, + 0x85, 0xa7, 0x9f, 0xa4, 0x8f, 0xfe, 0x35, 0x22, 0xfe, 0xd8, + 0x9a, 0xb6, 0x79, 0xd0, 0x2c, 0x88, 0xf6, 0x99, 0xe9, 0xff, + 00, 0x6e, 0x60, 0xbf, 0x99, 0xfd, 0xcc, 0x7f, 0xdb, 0x98, + 0x1f, 0xe7, 0xfc, 0x19, 0xf5, 0x45, 0x15, 0xf2, 0xf4, 0x7f, + 0xb6, 0x35, 0xe8, 0x5f, 0x9f, 0xc3, 0x76, 0xe5, 0xbd, 0x56, + 0xe9, 0x80, 0xff, 00, 0xd0, 0x6a, 0x65, 0xfd, 0xb2, 0x26, + 0xe3, 0x3e, 0x18, 0x8f, 0xdf, 0x17, 0x87, 0xff, 00, 0x88, + 0xaa, 0x59, 0xde, 0x7, 0xf9, 0xff, 00, 0x7, 0xfe, 0x45, + 0x2c, 0xeb, 0x2, 0xff, 00, 0xe5, 0xe7, 0xe0, 0xff, 00, + 0xc8, 0xfa, 0x6e, 0x8a, 0xf9, 0xba, 0x3f, 0xdb, 0x22, 0xc, + 0xfc, 0xfe, 0x17, 0x90, 0xf, 0xf6, 0x6f, 0x47, 0xff, 00, + 0x11, 0x5b, 0xda, 0x47, 0xed, 0x6f, 0xe1, 0x6b, 0xb8, 0xd7, + 0xed, 0xf6, 0x37, 0xf6, 0x12, 0x13, 0x82, 0x15, 0x56, 0x55, + 0x3, 0xd7, 0x20, 0x83, 0xfa, 0x56, 0xb0, 0xcd, 0xf0, 0x33, + 0x76, 0x55, 0x3f, 0x35, 0xf9, 0xa3, 0x58, 0x66, 0xd8, 0x29, + 0xbb, 0x2a, 0x8b, 0xf1, 0x5f, 0x99, 0xee, 0x74, 0x57, 0x31, + 0xe1, 0xaf, 0x89, 0x9e, 0x17, 0xf1, 0x7b, 0x4, 0xd2, 0x75, + 0xbb, 0x4b, 0xb9, 0x8f, 0x3e, 0x4e, 0xfd, 0xb2, 0x7f, 0xdf, + 0x2d, 0x83, 0xfa, 0x57, 0x4f, 0x5e, 0xac, 0x2a, 0x42, 0xa2, + 0xe6, 0x83, 0xba, 0xf2, 0x3d, 0x48, 0x4e, 0x15, 0x17, 0x34, + 0x1d, 0xd7, 0x90, 0x51, 0x45, 0x15, 0x65, 0x85, 0x14, 0x51, + 0x40, 0x5, 0x14, 0x51, 0x40, 0x5, 0x14, 0x51, 0x40, 0x5, + 0x14, 0x51, 0x40, 0x5, 0x70, 0x7f, 0x18, 0x7e, 0x28, 0xdb, + 0x7c, 0x2f, 0xf0, 0xc3, 0xdd, 0xfe, 0xee, 0x7d, 0x4e, 0x73, + 0xe5, 0xda, 0x5a, 0xbb, 0x63, 0x7b, 0x77, 0x62, 0x3a, 0xed, + 0x1d, 0x4f, 0xe0, 0x3b, 0xd7, 0x75, 0x24, 0x8b, 0x12, 0x33, + 0xbb, 0x5, 0x45, 0x4, 0x96, 0x3d, 00, 0xaf, 0x82, 0x7e, + 0x32, 0x7c, 0x40, 0x7f, 0x88, 0xde, 0x3a, 0xbd, 0xbf, 0x57, + 0x26, 0xc2, 0x13, 0xf6, 0x7b, 0x34, 0xcf, 0x2, 0x35, 0x3d, + 0x7f, 0xe0, 0x47, 0x27, 0xf1, 0xaf, 0x17, 0x35, 0xc6, 0xbc, + 0x1d, 0xf, 0x73, 0xe2, 0x96, 0x8b, 0xfc, 0xcf, 0xf, 0x37, + 0xc7, 0xfd, 0x46, 0x87, 0xb9, 0xf1, 0xcb, 0x45, 0xfe, 0x7f, + 0x23, 0xa3, 0xf8, 0x39, 0xa7, 0xea, 0x1f, 0x13, 0x7e, 0x2a, + 0xc5, 0xa9, 0x6a, 0x92, 0xbd, 0xe3, 0xac, 0x86, 0xe2, 0x79, + 0x24, 0x39, 0xfa, 0xf, 0x61, 0xe8, 0x2b, 0xed, 0x40, 0x2, + 0x80, 0x7, 00, 0x57, 0x83, 0xfe, 0xca, 0x7e, 0x10, 0xfe, + 0xcc, 0xf0, 0xd5, 0xce, 0xb1, 0x34, 0x78, 0x9a, 0xe9, 0xf6, + 0xa1, 0x23, 0xf8, 0x45, 0x7b, 0xcd, 0x63, 0x92, 0x50, 0x74, + 0xb0, 0xbe, 0xd2, 0x5b, 0xcd, 0xdf, 0xfc, 0x83, 0x27, 0xa0, + 0xe9, 0x61, 0x54, 0xa7, 0xf1, 0x4b, 0x56, 0x14, 0x51, 0x45, + 0x7d, 0x1, 0xee, 0x5, 0x14, 0x51, 0x40, 0x5, 0x14, 0x84, + 0x64, 0x70, 0x71, 0xef, 0x40, 0x18, 0x1c, 0x92, 0x7e, 0xb4, + 00, 0xb4, 0x53, 0x2, 0xed, 0x39, 0xde, 0x48, 0xf4, 0x3d, + 0x29, 0xc0, 0x83, 0xd0, 0xe6, 0x80, 0x16, 0x8a, 0x28, 0xa0, + 0x2, 0x8a, 0x28, 0xa0, 0x2, 0x8a, 0x28, 0xa0, 0x2, 0x8a, + 0x28, 0xa0, 0x2, 0x8a, 0x28, 0xa0, 0x2, 0x8a, 0x28, 0xa0, + 0x2, 0x8a, 0x28, 0xa0, 0x2, 0x8a, 0x28, 0xa0, 0x2, 0x8a, + 0x28, 0xa0, 0x2, 0x8a, 0x28, 0xa0, 0x2, 0x93, 0x2, 0x96, + 0x8a, 00, 0x4c, 0xf, 0x4a, 0x4d, 0x8a, 0x7b, 0xf, 0xca, + 0x9d, 0x45, 00, 0x37, 0xca, 0x43, 0xfc, 0xb, 0xf9, 0x53, + 0x4c, 0x11, 0x1e, 0xb1, 0xa7, 0xfd, 0xf2, 0x2a, 0x4a, 0x29, + 0x58, 0x8, 0xbe, 0xcb, 0xf, 0xfc, 0xf1, 0x8f, 0xfe, 0xf9, + 0x14, 0xd3, 0x65, 0x6e, 0x7a, 0xc1, 0x17, 0xfd, 0xf0, 0x2a, + 0x7a, 0x28, 0xb2, 0x15, 0x91, 0x59, 0xb4, 0xeb, 0x46, 0xeb, + 0x6b, 0x9, 0xfa, 0xc6, 0x29, 0x87, 0x47, 0xb1, 0x6e, 0xb6, + 0x70, 0x1f, 0xac, 0x63, 0xfc, 0x2a, 0xe5, 0x14, 0xb9, 0x63, + 0xd8, 0x2c, 0xbb, 0x19, 0xe7, 0x40, 0xd3, 0x1b, 0xad, 0x85, + 0xb1, 0xff, 00, 0xb6, 0x4b, 0xfe, 0x14, 0xc6, 0xf0, 0xce, + 0x92, 0xdd, 0x74, 0xdb, 0x53, 0xff, 00, 0x6c, 0x85, 0x69, + 0xd1, 0x4b, 0xd9, 0xc3, 0xb2, 0x17, 0x2c, 0x7b, 0x19, 0x7, + 0xc2, 0x3a, 0x2b, 0x75, 0xd2, 0xed, 0x4f, 0xfd, 0xb2, 0x15, + 0x1b, 0x78, 0x2b, 0x41, 0x73, 0x93, 0xa4, 0x59, 0x93, 0xef, + 0xa, 0xd6, 0xdd, 0x15, 0x3e, 0xca, 0x9b, 0xfb, 0x2b, 0xee, + 0x17, 0x24, 0x3b, 0x1c, 0xf3, 0x7c, 0x3f, 0xf0, 0xe3, 0x75, + 0xd1, 0xed, 0x3f, 0xef, 0xd0, 0xa8, 0x9b, 0xe1, 0xaf, 0x86, + 0x1f, 0xae, 0x8b, 0x69, 0xff, 00, 0x7e, 0xc5, 0x74, 0xd4, + 0x54, 0xfd, 0x5e, 0x8b, 0xfb, 0xb, 0xee, 0x44, 0xfb, 0x2a, + 0x6f, 0xec, 0xaf, 0xb8, 0xe4, 0xdf, 0xe1, 0x5f, 0x85, 0x5f, + 0x39, 0xd1, 0x6d, 0xb9, 0xff, 00, 0x60, 0x54, 0x2d, 0xf0, + 0x87, 0xc2, 0x4f, 0xd7, 0x45, 0xb7, 0xff, 00, 0xbe, 0x6b, + 0xb2, 0xa2, 0xa3, 0xea, 0xb4, 0x1f, 0xd8, 0x5f, 0x72, 0x17, + 0xb0, 0xa5, 0xfc, 0xab, 0xee, 0x38, 0x76, 0xf8, 0x2f, 0xe0, + 0xf7, 0xeb, 0xa3, 0x41, 0xf9, 0x54, 0x2f, 0xf0, 0x2f, 0xc1, + 0x8f, 0xff, 00, 0x30, 0x78, 0xc7, 0xd2, 0xbb, 0xea, 0x2a, + 0x5e, 0xb, 0xc, 0xf7, 0xa6, 0xbe, 0xe4, 0x4f, 0xd5, 0xa8, + 0xbf, 0xb0, 0xbe, 0xe3, 0xce, 0x9f, 0xe0, 0x17, 0x83, 0x1f, + 0xfe, 0x61, 0x6a, 0x3e, 0x86, 0xa0, 0x7f, 0xd9, 0xe3, 0xc1, + 0x8f, 0xff, 00, 0x2e, 0x4, 0x7d, 0xd, 0x7a, 0x65, 0x15, + 0xf, 0x1, 0x84, 0x7f, 0xf2, 0xe9, 0x7d, 0xc8, 0x9f, 0xaa, + 0x50, 0x7f, 0x61, 0x7d, 0xc7, 0x96, 0xbf, 0xec, 0xe1, 0xe0, + 0xd7, 0xff, 00, 0x97, 0x37, 0x1f, 0xf0, 0x2a, 0x81, 0xff, + 00, 0x66, 0x7f, 0x7, 0x37, 0xfc, 0xb0, 0x94, 0x7d, 0x1a, + 0xbd, 0x66, 0x8a, 0x9f, 0xec, 0xdc, 0x1b, 0xff, 00, 0x97, + 0x4b, 0xee, 0x23, 0xea, 0x58, 0x67, 0xff, 00, 0x2e, 0xd7, + 0xdc, 0x79, 0x3, 0xfe, 0xcb, 0xfe, 0xf, 0x7f, 0xe0, 0xb8, + 0x5f, 0xa3, 0xd4, 0xd, 0xfb, 0x2c, 0x78, 0x4c, 0xf4, 0x7b, + 0x81, 0xf8, 0x8a, 0xf6, 0x6a, 0x2a, 0x1e, 0x57, 0x82, 0x7f, + 0xf2, 0xe9, 0x12, 0xf0, 0x18, 0x57, 0xff, 00, 0x2e, 0xd7, + 0xdc, 0x78, 0x9b, 0xfe, 0xca, 0x7e, 0x16, 0x6e, 0x97, 0x17, + 0x23, 0xf1, 0x15, 0xb, 0xfe, 0xc9, 0xbe, 0x1b, 0x6f, 0xbb, + 0x79, 0x72, 0x3f, 0x2a, 0xf7, 0x2a, 0x2a, 0x7f, 0xb2, 0x70, + 0x3f, 0xf3, 0xe9, 0x12, 0xf2, 0xec, 0x23, 0xff, 00, 0x97, + 0x68, 0xf0, 0x76, 0xfd, 0x92, 0x74, 0x3, 0xd3, 0x50, 0xb9, + 0x1f, 0x80, 0xa8, 0x5b, 0xf6, 0x45, 0xd1, 0xf, 0x4d, 0x52, + 0xe0, 0x7f, 0xc0, 0x45, 0x7b, 0xf5, 0x15, 0x3f, 0xd9, 0x18, + 0x1f, 0xf9, 0xf7, 0xf9, 0x90, 0xf2, 0xbc, 0x1b, 0xff, 00, + 0x97, 0x68, 0xf9, 0xe9, 0xff, 00, 0x64, 0x2d, 0x2c, 0xfd, + 0xdd, 0x62, 0x7f, 0xc5, 0x5, 0x40, 0xff, 00, 0xb2, 0x5, + 0x97, 0xf0, 0xeb, 0x12, 0x7e, 0x28, 0x2b, 0xe8, 0xca, 0x2a, + 0x3f, 0xb1, 0xb0, 0x3f, 0xf3, 0xef, 0xf1, 0x7f, 0xe6, 0x4b, + 0xca, 0x70, 0x4f, 0xfe, 0x5d, 0xa3, 0xe6, 0xd6, 0xfd, 0x90, + 0x21, 0xfe, 0x1d, 0x65, 0xbf, 0x14, 0xa8, 0x5f, 0xf6, 0x40, + 0x3f, 0xc3, 0xac, 0x7e, 0x69, 0x5f, 0x4c, 0x51, 0x53, 0xfd, + 0x89, 0x81, 0xfe, 0x4f, 0xc5, 0x91, 0xfd, 0x91, 0x82, 0xff, + 00, 0x9f, 0x67, 0xcc, 0xf, 0xfb, 0x20, 0x4f, 0xfc, 0x3a, + 0xba, 0xfe, 0x2b, 0x50, 0xbf, 0xec, 0x83, 0x7e, 0x3e, 0xee, + 0xaf, 0x11, 0xfa, 0xad, 0x7d, 0x4b, 0x45, 0x4f, 0xf6, 0x1e, + 0x7, 0xf9, 0x5f, 0xde, 0xc9, 0x79, 0x36, 0x5, 0xfd, 0x83, + 0xe5, 0x37, 0xfd, 0x91, 0x35, 0x51, 0xd3, 0x53, 0x84, 0xfe, + 0x15, 0x3, 0xfe, 0xc9, 0x1a, 0xd8, 0xe9, 0x7d, 0xb, 0x57, + 0xd6, 0x74, 0x54, 0xbc, 0x87, 0x5, 0xd9, 0xfd, 0xec, 0x87, + 0x92, 0x60, 0x7f, 0x93, 0xf1, 0x3e, 0x46, 0x7f, 0xd9, 0x33, + 0xc4, 0x23, 0xa5, 0xd4, 0x7, 0xf1, 0xa8, 0x1f, 0xf6, 0x51, + 0xf1, 0x28, 0xfb, 0xb2, 0xc2, 0x7f, 0x1a, 0xfb, 0x2, 0x8a, + 0x8f, 0xec, 0xc, 0x1f, 0x9f, 0xde, 0x4f, 0xf6, 0x16, 0xb, + 0xf9, 0x7f, 0x13, 0xe3, 0x87, 0xfd, 0x95, 0x7c, 0x54, 0x3e, + 0xe9, 0x85, 0xbf, 0xe0, 0x42, 0xa1, 0x7f, 0xd9, 0x6f, 0xc5, + 0xeb, 0xd2, 0x38, 0x8f, 0xd1, 0xc5, 0x7d, 0x9b, 0x45, 0x4f, + 0xfa, 0xbf, 0x84, 0xee, 0xfe, 0xff, 00, 0xf8, 0x4, 0xff, + 00, 0x60, 0xe0, 0xbb, 0x3f, 0xbc, 0xf8, 0xad, 0xff, 00, + 0x66, 0x3f, 0x18, 0xaf, 0x4b, 0x64, 0x3f, 0xf0, 0x31, 0x50, + 0xbf, 0xec, 0xd7, 0xe3, 0x35, 0xff, 00, 0x97, 0x20, 0x7f, + 0xe0, 0x42, 0xbe, 0xda, 0xa2, 0xa7, 0xfd, 0x5e, 0xc3, 0x7f, + 0x34, 0xbf, 0xf, 0xf2, 0x23, 0xfd, 0x5f, 0xc1, 0xf9, 0xfd, + 0xe7, 0xc3, 0xcd, 0xfb, 0x39, 0xf8, 0xd1, 0x7f, 0xe6, 0x1a, + 0x4f, 0xfc, 0x8, 0x54, 0x2f, 0xfb, 0x3d, 0xf8, 0xd1, 0x7f, + 0xe6, 0x14, 0xe7, 0xf1, 0x15, 0xf7, 0x3d, 0x15, 0x3f, 0xea, + 0xee, 0x1f, 0xf9, 0xe5, 0xf8, 0x7f, 0x91, 0x3f, 0xea, 0xf6, + 0x13, 0xcf, 0xef, 0x3e, 0x12, 0x3f, 0x1, 0xbc, 0x6d, 0xb, + 0x6, 0x5d, 0x22, 0x60, 0xc3, 0xa3, 0x29, 0xc1, 0x15, 0xde, + 0x78, 0x43, 0xc6, 0xbf, 0x14, 0xfe, 0x15, 0x6c, 0x5d, 0x57, + 0x4c, 0xbc, 0xd7, 0x34, 0x55, 0xfb, 0xf0, 0x5d, 0x12, 0xd2, + 0xa2, 0xff, 00, 0xb1, 0x27, 0x5f, 0xc0, 0xe4, 0x7d, 0x2b, + 0xeb, 0x1a, 0x82, 0xf2, 0xde, 0x2b, 0x9b, 0x69, 0x12, 0x64, + 0x59, 0x10, 0xa9, 0xc8, 0x61, 0x5a, 0xd2, 0xc9, 0x56, 0x19, + 0xf3, 0xd0, 0xab, 0x24, 0xfe, 0x45, 0x53, 0xc8, 0xe9, 0xd0, + 0x7c, 0xf8, 0x7a, 0x92, 0x8b, 0xfe, 0xb7, 0xee, 0x73, 0xbe, + 00, 0xf8, 0x91, 0xa2, 0x7c, 0x48, 0xd2, 0x8d, 0xe6, 0x91, + 0x73, 0xba, 0x58, 0xf0, 0x2e, 0x2d, 0x24, 0xf9, 0x66, 0xb7, + 0x63, 0xfc, 0x2e, 0xbd, 0xbe, 0xbd, 0xd, 0x75, 0x35, 0xf1, + 0x7, 0xc4, 0x6d, 0x72, 0xff, 00, 0xe1, 0x4f, 0xc4, 0x43, + 0xae, 0x78, 0x66, 0x63, 0x69, 0x74, 0x24, 0xfd, 0xfc, 0x20, + 0xfe, 0xee, 0xe1, 0x1, 0xc9, 0x8d, 0xc7, 0x70, 0x7f, 0x31, + 0xda, 0xbe, 0xae, 0xf8, 0x4f, 0xf1, 0x3b, 0x4d, 0xf8, 0xb7, + 0xe0, 0xcb, 0x5d, 0x7f, 0x4d, 0x47, 0x80, 0x3b, 0x34, 0x53, + 0xda, 0xca, 0x46, 0xf8, 0x25, 0x5e, 0x19, 0xf, 0xaf, 0xa8, + 0x3d, 0xc1, 0x6, 0xbd, 0xc, 0xe, 0x35, 0x62, 0x79, 0xa9, + 0xcb, 0xe2, 0x8e, 0x8c, 0xe8, 0xc0, 0x66, 0x4a, 0xbd, 0x59, + 0x61, 0x6a, 0xe9, 0x52, 0x3f, 0x73, 0x5d, 0xd7, 0xea, 0x8e, + 0xc6, 0x8a, 0x28, 0xaf, 0x54, 0xf7, 0x42, 0x8a, 0x28, 0xa0, + 0x2, 0x8a, 0x28, 0xa0, 0x2, 0x8a, 0x28, 0xa0, 0xf, 0x37, + 0xfd, 0xa0, 0x7c, 0x6a, 0x3c, 0x17, 0xf0, 0xd7, 0x51, 0x74, + 0x72, 0x97, 0x97, 0xe3, 0xec, 0x56, 0xfb, 0x4e, 0x8, 0x67, + 0x7, 0x24, 0x7d, 0x17, 0x26, 0xbe, 0x25, 0xd0, 0xb4, 0xb9, + 0x35, 0x8d, 0x56, 0xd2, 0xca, 0x15, 0xdc, 0xf3, 0x48, 0x10, + 0x1, 0x5e, 0xd3, 0xfb, 0x5a, 0xf8, 0xcb, 0xfb, 0x5b, 0xc6, + 0x16, 0x7e, 0x1f, 0x85, 0xf3, 0x6, 0x97, 0x1f, 0x99, 0x28, + 0x7, 0x83, 0x33, 0x8c, 0xfe, 0x8b, 0x8f, 0xfb, 0xe8, 0xd6, + 0x77, 0xec, 0xc3, 0xe1, 0x1, 0xaf, 0x78, 0xd8, 0x5f, 0x4d, + 0x1e, 0xeb, 0x7b, 0x25, 0x2f, 0x93, 0xd3, 0x77, 0x6a, 0xfc, + 0xf7, 0x33, 0x93, 0xc7, 0x63, 0xd6, 0x1e, 0x3b, 0x2d, 0x3f, + 0xcc, 0xfc, 0xef, 0x1e, 0xde, 0x63, 0x9a, 0x2a, 0x11, 0xda, + 0x3a, 0x7f, 0x9f, 0xf5, 0xe4, 0x7d, 0x67, 0xe1, 0x3d, 0x12, + 0x3f, 0xe, 0xf8, 0x72, 0xc3, 0x4f, 0x8d, 0x42, 0x88, 0x22, + 0x55, 0x38, 0xf5, 0xc7, 0x35, 0xaf, 0x45, 0x15, 0xfa, 0x4, + 0x62, 0xa1, 0x15, 0x18, 0xec, 0x8f, 0xd0, 0xa2, 0x94, 0x52, + 0x48, 0x28, 0xa2, 0x8a, 0xa2, 0x82, 0x8a, 0x2b, 0xcd, 0xbf, + 0x68, 0xaf, 0x8d, 0xda, 0x47, 0xec, 0xf1, 0xf0, 0x83, 0xc4, + 0x1e, 0x39, 0xd6, 0xe, 0xe8, 0xf4, 0xf8, 0x71, 0x6d, 0x6e, + 0x3e, 0xf5, 0xc5, 0xc3, 0x7c, 0xb1, 0x44, 0x3e, 0xac, 0x46, + 0x7d, 0x6, 0x4f, 0x6a, 00, 0xe7, 0x3f, 0x69, 0x9f, 0xda, + 0xf3, 0xe1, 0xf7, 0xec, 0xaf, 0xa0, 0x47, 0x79, 0xe2, 0xcb, + 0xe7, 0x9f, 0x55, 0xba, 0x52, 0xd6, 0x3a, 0x25, 0x88, 0xf, + 0x77, 0x73, 0x8e, 0xe0, 0x67, 0xa, 0x99, 0xfe, 0x36, 0x20, + 0x7d, 0x4f, 0x15, 0xf9, 0x5d, 0xf1, 0x87, 0xfe, 0xa, 0xd5, + 0xf1, 0x9b, 0xe2, 0x5, 0xc5, 0xdd, 0xbf, 0x85, 0xe5, 0xb1, + 0xf0, 0x1e, 0x90, 0xec, 0x44, 0x4b, 0xa7, 0xc2, 0x26, 0xbb, + 0x9, 0x9e, 0x37, 0x4d, 0x26, 0x46, 0x71, 0xfd, 0xd5, 0x5a, + 0xf9, 0xb3, 0x5d, 0xd7, 0xfc, 0x7d, 0xfb, 0x57, 0x7c, 0x67, + 0x4b, 0x8b, 0xc9, 0x2e, 0x3c, 0x4b, 0xe3, 0x3f, 0x11, 0xdd, + 0xac, 0x10, 0x44, 0xf, 00, 0x93, 0xf2, 0xc6, 0x83, 0xa2, + 0x46, 0xa3, 0x3c, 0x74, 00, 0x13, 0xea, 0x6b, 0xf4, 0x67, + 0xc1, 0x1f, 0xf0, 0x48, 0xaf, 0x87, 0xff, 00, 0xf, 0x7e, + 0x1c, 0xdf, 0x78, 0x9b, 0xe2, 0xf7, 0x8b, 0x75, 0x1b, 0xeb, + 0x9d, 0x3e, 0xca, 0x4b, 0xeb, 0xe8, 0x74, 0x69, 0x56, 0xda, + 0xd6, 0xd9, 0x11, 0xb, 0xb0, 0xe, 0xca, 0x59, 0xf0, 0x1, + 0xe7, 0xe5, 0xcf, 0xa5, 0x32, 0x6e, 0xde, 0xc7, 0xe7, 0x17, + 0x88, 0x7f, 0x68, 0xbf, 0x8a, 0x7e, 0x2b, 0xb9, 0x92, 0x7d, + 0x5b, 0xe2, 0x37, 0x8a, 0x2f, 0x64, 0x90, 0xe5, 0x83, 0xea, + 0xf3, 0x85, 0x27, 0xfd, 0xd0, 0xc0, 0xf, 0xca, 0xbf, 0x5a, + 0xbf, 0xe0, 0x92, 0x3e, 0xb, 0xd6, 0xed, 0xfe, 0x3, 0xea, + 0x3e, 0x39, 0xf1, 0x6, 0xad, 0xa9, 0x6a, 0xb7, 0x9e, 0x23, + 0xbe, 0x74, 0xb3, 0x17, 0xf7, 0x52, 0x4c, 0x22, 0xb6, 0x80, + 0x94, 0x1b, 0x43, 0x13, 0x8d, 0xd2, 0x79, 0x84, 0x91, 0xd4, + 0x5, 0xaf, 0xc7, 0x4d, 0x1b, 0xc3, 0x7f, 0xf0, 0x9e, 0xfc, + 0x44, 0xb2, 0xd0, 0x7c, 0x39, 0x6f, 0x24, 0x4b, 0xac, 0x6a, + 0x89, 0x67, 0xa7, 0xc1, 0x2b, 0x6f, 0x64, 0x12, 0xca, 0x16, + 0x30, 0xcd, 0x8e, 0x70, 0x18, 0x64, 0xfb, 0x13, 0x5f, 0xd1, + 0xcf, 0x86, 0xb4, 0x4d, 0x3, 0xf6, 0x7b, 0xf8, 0x2d, 0x65, + 0xa6, 0xc6, 0x52, 0xcf, 0xc3, 0xfe, 0x13, 0xd1, 0xc0, 0x67, + 0x3c, 0x1, 0x1c, 0x31, 0xe5, 0xdc, 0xfb, 0x9c, 0x12, 0x7d, + 0xcd, 0xc, 0x48, 0xf8, 0xf, 0xc4, 0x7f, 0xf0, 0x59, 0xa9, + 0xfc, 0x25, 0xe2, 0xcd, 0x6b, 0x42, 0xd4, 0x3e, 0x14, 0xab, + 0xcd, 0xa6, 0x5e, 0xcf, 0x65, 0x24, 0x90, 0x6b, 0x7c, 0x33, + 0x47, 0x23, 0x21, 0x20, 0x18, 0x7d, 0x56, 0xbe, 0xec, 0xfd, + 0x9c, 0x3e, 0x34, 0x47, 0xfb, 0x42, 0x7c, 0x1b, 0xf0, 0xff, + 00, 0x8f, 0x62, 0xd2, 0xdf, 0x46, 0x4d, 0x59, 0x24, 0x61, + 0x64, 0xf2, 0xf9, 0xa6, 0x3d, 0xb2, 0x32, 0x7d, 0xec, 0xc, + 0xe7, 0x6e, 0x7a, 0x77, 0xaf, 0xe7, 0x2f, 0xc6, 0x7a, 0xf9, + 0xf1, 0x5f, 0x8b, 0xf5, 0xdd, 0x6d, 0x86, 0xd6, 0xd4, 0xaf, + 0xe7, 0xbd, 0x23, 0xd0, 0xc9, 0x23, 0x3f, 0xfe, 0xcd, 0x5f, + 0xd1, 0x27, 0xec, 0x91, 0xf0, 0xfe, 0x4f, 0x85, 0xff, 00, + 0xb3, 0x57, 0xc3, 0x9f, 0xd, 0xce, 0x9e, 0x5d, 0xdd, 0xae, + 0x8d, 0x3, 0xdc, 0xaf, 0xa4, 0xd2, 0x2f, 0x99, 0x27, 0xfe, + 0x3c, 0xe6, 0x81, 0xa7, 0x73, 0xd6, 0xc9, 0xc0, 0xc9, 0xe0, + 0x57, 0xce, 0xda, 0xff, 00, 0xed, 0xf, 0xae, 0x43, 0xae, + 0x5f, 0x47, 0xa6, 0xc7, 0x64, 0xda, 0x7a, 0x4a, 0xcb, 0x9, + 0x96, 0x26, 0x2c, 0x54, 0x1c, 0x64, 0x9d, 0xc3, 0xaf, 0x5f, + 0xc6, 0xbd, 0x7b, 0xe2, 0x97, 0x89, 0x47, 0x85, 0xbc, 0x11, + 0xa9, 0x5d, 0xab, 0x6d, 0x9d, 0xd3, 0xc8, 0x87, 0xfd, 0xf7, + 0xe0, 0x7e, 0x5c, 0x9f, 0xc2, 0xbe, 0x40, 0xaf, 0x86, 0xe2, + 0x2c, 0xca, 0xae, 0x1a, 0x70, 0xa3, 0x42, 0x5c, 0xaf, 0x77, + 0x6f, 0xc3, 0xf5, 0x3c, 0x9c, 0x75, 0x79, 0x53, 0x6a, 0x10, + 0x76, 0x3d, 0x5d, 0x3f, 0x69, 0xf, 0x12, 0xaf, 0xde, 0xb3, + 0xd3, 0x9b, 0xfe, 0xd9, 0xb8, 0xff, 00, 0xd9, 0xaa, 0x74, + 0xfd, 0xa5, 0x75, 0xe1, 0xf7, 0xb4, 0xdd, 0x3d, 0xbe, 0x81, + 0xc7, 0xfe, 0xcd, 0x5e, 0x43, 0x45, 0x7c, 0x82, 0xce, 0x73, + 0x5, 0xff, 00, 0x2f, 0x5f, 0xe0, 0x79, 0x9f, 0x5a, 0xad, + 0xfc, 0xc7, 0xb3, 0x47, 0xfb, 0x4c, 0xea, 0x83, 0xef, 0xe8, + 0xb6, 0x8d, 0xfe, 0xec, 0xac, 0x3f, 0xc6, 0xa7, 0x4f, 0xda, + 0x72, 0xef, 0xf8, 0xbc, 0x3f, 0x9, 0xfa, 0x5d, 0x11, 0xff, + 00, 0xb2, 0xd7, 0x89, 0x51, 0x5a, 0x2c, 0xf3, 0x31, 0x5f, + 0xf2, 0xf7, 0xf0, 0x5f, 0xe4, 0x57, 0xd7, 0x2b, 0xff, 00, + 0x31, 0xee, 0xd1, 0x7e, 0xd3, 0x83, 0xfe, 0x5a, 0x78, 0x7f, + 0x1f, 0xee, 0xdd, 0x7f, 0xf6, 0x35, 0x66, 0x3f, 0xda, 0x6e, + 0xc8, 0xfd, 0xfd, 0xa, 0x71, 0xfe, 0xec, 0xea, 0x7f, 0xa5, + 0x78, 0x5, 0x15, 0xaa, 0xe2, 0xc, 0xc5, 0x7f, 0xcb, 0xcf, + 0xc1, 0x7f, 0x91, 0x5f, 0x5d, 0xaf, 0xfc, 0xdf, 0x91, 0xf4, + 0x3c, 0x7f, 0xb4, 0xc6, 0x90, 0x7e, 0xfe, 0x91, 0x7a, 0xbf, + 0xee, 0xb2, 0x1f, 0xeb, 0x5a, 0x56, 0x7f, 0xb4, 0x5f, 0x85, + 0xee, 0x8, 0x13, 0x45, 0x7f, 0x6b, 0xee, 0xf0, 0x86, 0x1f, + 0xf8, 0xeb, 0x1a, 0xf9, 0x9a, 0x8a, 0xd6, 0x3c, 0x47, 0x8f, + 0x8e, 0xed, 0x3f, 0x97, 0xf9, 0x14, 0xb1, 0xf5, 0x97, 0x53, + 0xec, 0x4d, 0x7, 0xe2, 0x67, 0x86, 0x7c, 0x48, 0xeb, 0x1d, + 0x8e, 0xaf, 0x3, 0x4c, 0xdd, 0x22, 0x97, 0x31, 0xb9, 0xfa, + 0x6, 0xc6, 0x7f, 0xa, 0xe9, 0xeb, 0xe1, 0x4a, 0xed, 0x7c, + 0x17, 0xf1, 0x6b, 0x5f, 0xf0, 0x6c, 0xa8, 0x89, 0x72, 0xd7, + 0xd6, 00, 0xfc, 0xd6, 0x97, 0x2c, 0x59, 0x71, 0xfe, 0xc9, + 0xea, 0xbf, 0x87, 0x1e, 0xd5, 0xed, 0xe1, 0x38, 0xa1, 0x36, + 0xa3, 0x8a, 0x85, 0xbc, 0xd7, 0xf9, 0x7f, 0xc1, 0x3a, 0xe9, + 0x66, 0x37, 0x76, 0xa8, 0xbe, 0xe3, 0xeb, 0x6a, 0x2b, 0x13, + 0xc2, 0x1e, 0x2f, 0xd3, 0xfc, 0x6b, 0xa3, 0xa6, 0xa1, 0xa7, + 0xc8, 0x4a, 0x13, 0xb6, 0x48, 0xdb, 0x86, 0x8d, 0xfb, 0xa9, + 0x15, 0xb7, 0x5f, 0x75, 0x4e, 0xa4, 0x6a, 0xc5, 0x4e, 0xe, + 0xe9, 0x9e, 0xc4, 0x64, 0xa4, 0xae, 0xb6, 0xa, 0xc0, 0xf1, + 0x17, 0x8e, 0xb4, 0x2f, 0x9, 0xdc, 0x43, 0x6, 0xab, 0xa8, + 0x25, 0xa4, 0xb3, 0x29, 0x74, 0x56, 0x56, 0x39, 00, 0xe3, + 0x3c, 0x3, 0x5b, 0xf5, 0xf2, 0x87, 0xc6, 0xed, 0x74, 0x6b, + 0x9f, 0x10, 0xaf, 0xc2, 0x36, 0xe8, 0xac, 0xc2, 0xda, 0xa7, + 0xfc, 0x7, 0xef, 0x7f, 0xe3, 0xc5, 0xab, 0xc8, 0xcd, 0xf3, + 0x7, 0x97, 0x61, 0xd5, 0x48, 0x24, 0xe4, 0xdd, 0x95, 0xce, + 0x5c, 0x55, 0x77, 0x42, 0x1c, 0xcb, 0x73, 0xe8, 0x4, 0xf8, + 0xb9, 0xe0, 0xf7, 0xe9, 0xaf, 0x5b, 0xf, 0xf7, 0xb7, 0xf, + 0xe6, 0x2a, 0x74, 0xf8, 0xa1, 0xe1, 0x37, 0xe9, 0xe2, 0xb, + 0x1f, 0xc6, 0x50, 0x2b, 0xe3, 0xca, 0x2b, 0xe3, 0x97, 0x14, + 0xe2, 0x7a, 0xd3, 0x8f, 0xe3, 0xfe, 0x67, 0x97, 0xfd, 0xa3, + 0x53, 0xb2, 0x3e, 0xca, 0x8f, 0xe2, 0x17, 0x86, 0x25, 0xfb, + 0xba, 0xfe, 0x9c, 0x7f, 0xed, 0xe5, 0x3f, 0xc6, 0xad, 0x47, + 0xe3, 0xd, 0xa, 0x6f, 0xb9, 0xac, 0xd8, 0x37, 0xd2, 0xe5, + 0x3f, 0xc6, 0xbe, 0x2b, 0xa2, 0xb5, 0x5c, 0x55, 0x5b, 0xad, + 0x25, 0xf7, 0xb2, 0xbf, 0xb4, 0x67, 0xd6, 0x27, 0xdb, 0x89, + 0xaf, 0x69, 0x92, 0x7d, 0xdd, 0x46, 0xd1, 0xbe, 0x93, 0xaf, + 0xf8, 0xd4, 0xc9, 0xa9, 0x5a, 0x49, 0xf7, 0x2e, 0xa0, 0x6f, + 0xa4, 0x80, 0xff, 00, 0x5a, 0xf8, 0x76, 0x8c, 0x91, 0x5a, + 0x2e, 0x2b, 0x97, 0x5a, 0x3f, 0x8f, 0xfc, 0x2, 0xbf, 0xb4, + 0x9f, 0xf2, 0xfe, 0x27, 0xdd, 0xb, 0x2a, 0x37, 0xdd, 0x75, + 0x3f, 0x43, 0x4e, 0xdc, 0x3d, 0x45, 0x7c, 0x30, 0x25, 0x75, + 0xe8, 0xec, 0x3e, 0x86, 0xa4, 0x4b, 0xeb, 0x98, 0xfe, 0xed, + 0xc4, 0xab, 0xf4, 0x72, 0x2b, 0x45, 0xc5, 0x6b, 0xad, 0x1f, + 0xfc, 0x9b, 0xfe, 0x1, 0x5f, 0xda, 0x5f, 0xdc, 0xfc, 0x7f, + 0xe0, 0x1f, 0x72, 0x51, 0x5f, 0x10, 0xa6, 0xb9, 0xa9, 0x47, + 0xf7, 0x75, 0xb, 0xa5, 0xfa, 0x4c, 0xdf, 0xe3, 0x52, 0xaf, + 0x89, 0xb5, 0x84, 0xfb, 0xba, 0xad, 0xf2, 0xfd, 0x2e, 0x5c, + 0x7f, 0x5a, 0xd1, 0x71, 0x5d, 0x3e, 0xb4, 0x5f, 0xdf, 0xff, + 00, 00, 0x7f, 0xda, 0x4b, 0xf9, 0x7f, 0x13, 0xed, 0x9a, + 0x2b, 0xe2, 0xc4, 0xf1, 0x96, 0xbf, 0x1f, 0xdd, 0xd7, 0x35, + 0x25, 0xfa, 0x5d, 0xc9, 0xfe, 0x35, 0xda, 0x7c, 0x25, 0xf1, + 0x7, 0x88, 0x75, 0xff, 00, 0x1e, 0xe9, 0x76, 0x93, 0x6b, + 0x3a, 0x84, 0xf6, 0xc1, 0xda, 0x59, 0x52, 0x4b, 0x97, 0x65, + 0x2a, 0xaa, 0x4e, 0x8, 0x27, 0xa6, 0x70, 0x3f, 0x1a, 0xe9, + 0xa1, 0xc4, 0xb4, 0xab, 0xd5, 0x8d, 0x25, 0x49, 0xde, 0x4d, + 0x2d, 0xd7, 0x53, 0x48, 0x63, 0xe3, 0x39, 0x28, 0xa8, 0xee, + 0x7d, 0x3f, 0x45, 0x14, 0x57, 0xd9, 0x1e, 0xa8, 0x51, 0x45, + 0x14, 00, 0x51, 0x5c, 0xf7, 0x88, 0xfc, 0x7f, 0xa0, 0x78, + 0x4f, 0x8d, 0x4f, 0x52, 0x86, 0x9, 0x7f, 0xe7, 0x8a, 0xe5, + 0xe4, 0xff, 00, 0xbe, 0x57, 0x26, 0xbc, 0xef, 0x5b, 0xfd, + 0xa5, 0x74, 0xcb, 0x70, 0xcb, 0xa5, 0xe9, 0x97, 0x17, 0x6f, + 0xd9, 0xee, 0x18, 0x44, 0xbf, 0x90, 0xc9, 0xfe, 0x55, 0xe6, + 0xe2, 0x33, 0x2c, 0x26, 0x17, 0x4a, 0xb5, 0x12, 0x7d, 0xb7, + 0x7f, 0x72, 0x39, 0xe7, 0x5e, 0x95, 0x3f, 0x8a, 0x47, 0xb2, + 0xd1, 0x5f, 0x34, 0x5f, 0x7e, 0xd1, 0x9e, 0x26, 0xb8, 0x63, + 0xf6, 0x78, 0x2c, 0x2d, 0x13, 0xb6, 0x22, 0x67, 0x23, 0xf1, + 0x2d, 0x8f, 0xd2, 0xb1, 0xae, 0x3e, 0x37, 0xf8, 0xce, 0x72, + 0x7f, 0xe2, 0x6d, 0xe5, 0x3, 0xda, 0x38, 0x23, 0x18, 0xff, + 00, 0xc7, 0x6b, 0xc5, 0x9f, 0x13, 0x60, 0x63, 0xf0, 0xa9, + 0x3f, 0x97, 0xf9, 0xb4, 0x72, 0x3c, 0xc2, 0x8a, 0xda, 0xec, + 0xfa, 0xbc, 0x8c, 0xd2, 0x79, 0x63, 0xdf, 0xf3, 0x35, 0xf2, + 0x2b, 0x7c, 0x5d, 0xf1, 0x83, 0x1c, 0x9d, 0x76, 0xe4, 0x7d, + 0x2, 0x8f, 0xe9, 0x52, 0x45, 0xf1, 0x8b, 0xc6, 0x31, 0x1c, + 0x8d, 0x72, 0x63, 0xfe, 0xf4, 0x68, 0xdf, 0xcd, 0x6b, 0xf, + 0xf5, 0xa3, 0x9, 0xfc, 0x92, 0xfc, 0x3f, 0xcc, 0x9f, 0xed, + 0x1a, 0x7d, 0x99, 0xf5, 0xc5, 0x15, 0xf2, 0xb5, 0xb7, 0xc7, + 0x9f, 0x18, 0xdb, 0xfd, 0xeb, 0xf8, 0x6e, 0x3f, 0xeb, 0xad, + 0xba, 0x7f, 0x40, 0x2b, 0x7f, 0x4d, 0xfd, 0xa5, 0x75, 0xa8, + 0x58, 0xb, 0xed, 0x32, 0xce, 0xe9, 0x7b, 0xf9, 0x25, 0xa2, + 0x3f, 0xa9, 0x61, 0x5d, 0x54, 0xf8, 0x93, 0x1, 0x3f, 0x8a, + 0xeb, 0xd5, 0x7f, 0x95, 0xcd, 0x16, 0x3e, 0x8b, 0xde, 0xe8, + 0xfa, 0x2a, 0x8a, 0xf2, 0xdd, 0x17, 0xf6, 0x87, 0xf0, 0xd6, + 0xa3, 0xb5, 0x6f, 0x52, 0xeb, 0x4c, 0x90, 0xf5, 0x32, 0x26, + 0xf4, 0xfc, 0xd7, 0x27, 0xf4, 0xaf, 0x45, 0xd2, 0xb5, 0x9b, + 0x1d, 0x72, 0xd5, 0x6e, 0x74, 0xfb, 0xb8, 0x6f, 0x20, 0x6e, + 0x8f, 0xb, 0x86, 0x1f, 0x8f, 0xa5, 0x7b, 0x98, 0x7c, 0x6e, + 0x1f, 0x15, 0xfc, 0x19, 0xa9, 0x7e, 0x7f, 0x76, 0xe7, 0x64, + 0x2a, 0xd3, 0xa9, 0xf0, 0x3b, 0x97, 0x68, 0xa2, 0x8a, 0xed, + 0x35, 0xa, 0x28, 0xa2, 0x80, 0xa, 0x28, 0xa2, 0x80, 0xa, + 0x28, 0xa2, 0x80, 0xa, 0x28, 0xa6, 0xbc, 0x8b, 0x12, 0x96, + 0x76, 0x8, 0xa3, 0xa9, 0x63, 0x81, 0x40, 0xe, 0xa2, 0xb0, + 0xb5, 0xf, 0x1d, 0xf8, 0x77, 0x4b, 0x24, 0x5d, 0x6b, 0x56, + 0x30, 0xb0, 0xea, 0xa6, 0x75, 0x27, 0xf2, 0x7, 0x35, 0x8b, + 0x71, 0xf1, 0xa7, 0xc1, 0xb6, 0xe7, 0x7, 0x5a, 0x47, 0xff, + 00, 0xae, 0x70, 0xc8, 0xff, 00, 0xc9, 0x6b, 0x92, 0x78, + 0xbc, 0x35, 0x3d, 0x27, 0x52, 0x2b, 0xd5, 0xa3, 0x27, 0x56, + 0x9c, 0x77, 0x92, 0xfb, 0xce, 0xde, 0x98, 0x5d, 0xb3, 0xf7, + 0xf, 0xe6, 0x2b, 0x82, 0x3f, 0x1d, 0xfc, 0x18, 0xf, 0xfc, + 0x84, 0xe4, 0x3f, 0xf6, 0xed, 0x2f, 0xff, 00, 0x13, 0x4a, + 0xbf, 0x1d, 0x7c, 0x18, 0xc7, 0xfe, 0x42, 0x8e, 0x3e, 0xb6, + 0xb2, 0xff, 00, 0xf1, 0x35, 0x8f, 0xf6, 0x8e, 0xb, 0xfe, + 0x7f, 0x47, 0xff, 00, 0x2, 0x44, 0xfb, 0x7a, 0x5f, 0xce, + 0xbe, 0xf3, 0xbe, 0xc9, 0xc7, 0x4a, 0x4d, 0xc7, 0xfb, 0xa7, + 0xf4, 0xae, 0x3e, 0xdf, 0xe3, 0xf, 0x83, 0xae, 0x7e, 0xee, + 0xb9, 0x2, 0x7f, 0xd7, 0x45, 0x74, 0xfe, 0x60, 0x56, 0xcd, + 0x8f, 0x8c, 0xb4, 0x1d, 0x4f, 0x1f, 0x65, 0xd6, 0x2c, 0x67, + 0x27, 0xa0, 0x59, 0xd7, 0x3f, 0x96, 0x6b, 0x78, 0x62, 0xb0, + 0xf5, 0x3e, 0xa, 0x89, 0xfa, 0x34, 0x5a, 0xa9, 0x9, 0x6d, + 0x24, 0x6c, 0xd1, 0x4d, 0x47, 0x59, 0x17, 0x2a, 0xc1, 0x87, + 0xa8, 0x39, 0xa7, 0x57, 0x51, 0xa0, 0x51, 0x45, 0x30, 0x31, + 0xf3, 0x4a, 0x9e, 0x98, 0xc8, 0x34, 00, 0xfa, 0x28, 0xa2, + 0x80, 0xa, 0x82, 0xf5, 0xfc, 0xbb, 0x39, 0xdb, 0xd1, 0x9, + 0xfd, 0x2a, 0x7a, 0xa3, 0xad, 0xbf, 0x97, 0xa4, 0x5d, 0xb1, + 0x38, 0xc4, 0x66, 0xa6, 0x4e, 0xc9, 0xb1, 0x3d, 0x13, 0x3e, + 0x1c, 0xf8, 0xdf, 0x37, 0xda, 0x3c, 0x49, 0x28, 0xeb, 0x82, + 0x6b, 0x2f, 0xf6, 0x63, 0xf8, 0x99, 0x27, 0xc3, 0x6f, 0x8d, + 0x16, 0xba, 0x44, 0xf2, 0x95, 0xd1, 0x3c, 0x4a, 0x45, 0xa4, + 0x88, 0x71, 0x84, 0xb8, 0x19, 0xf2, 0x9f, 0xdb, 0xba, 0x9f, + 0xf7, 0x85, 0x49, 0xf1, 0x56, 0x7f, 0x3f, 0xc4, 0xd7, 0x3d, + 0xf0, 0x4d, 0x78, 0x7, 0xc5, 0x7b, 0x89, 0x2c, 0xb4, 0xe1, + 0x75, 0x6e, 0xed, 0x15, 0xcd, 0xbb, 0x9, 0xa2, 0x91, 0x4e, + 0xa, 0xba, 0x9c, 0xa9, 0x1f, 0x88, 0xaf, 0xce, 0x32, 0xfa, + 0xce, 0x38, 0xc9, 0x49, 0x77, 0x67, 0xe3, 0x98, 0xbc, 0x4c, + 0xb0, 0xd9, 0xac, 0x31, 0x11, 0xe9, 0x24, 0xbe, 0x4f, 0x46, + 0x7e, 0xc0, 0x51, 0x5c, 0x1f, 0x80, 0xfe, 0x28, 0xe9, 0x5e, + 0x21, 0xf0, 0x37, 0x87, 0x75, 0x59, 0x2e, 0xcb, 0x49, 0x7d, + 0xa7, 0x5b, 0x5c, 0xb1, 0x2a, 0x72, 0x4b, 0xc4, 0xac, 0x7f, + 0x9d, 0x15, 0xfa, 0x45, 0xcf, 0xd8, 0xee, 0x99, 0xde, 0x51, + 0x45, 0x14, 0xc6, 0x14, 0x51, 0x45, 00, 0x15, 0x53, 0x56, + 0xd4, 0xed, 0xf4, 0x5d, 0x2e, 0xee, 0xfe, 0xea, 0x41, 0x15, + 0xb5, 0xb4, 0x4d, 0x2c, 0x8e, 0x7b, 0x2a, 0x8c, 0x9a, 0xb7, + 0x5e, 0x2b, 0xfb, 0x55, 0x78, 0xc4, 0x68, 0x1f, 0xf, 0x86, + 0x93, 0x13, 0xe2, 0xeb, 0x58, 0x93, 0xca, 0xc0, 0xff, 00, + 0x9e, 0x4b, 0x86, 0x73, 0xff, 00, 0xa0, 0x8f, 0xc6, 0xb9, + 0xb1, 0x35, 0x96, 0x1e, 0x8c, 0xaa, 0xbe, 0x88, 0xe4, 0xc5, + 0xd7, 0x58, 0x5a, 0x13, 0xac, 0xfa, 0x2f, 0xf8, 0x63, 0xe4, + 0xcf, 0x12, 0xeb, 0x93, 0xf8, 0xa7, 0xc4, 0x7a, 0x8e, 0xad, + 0x71, 0x8f, 0x3e, 0xfa, 0xe1, 0xe6, 0x60, 0x3a, 0xc, 0x9e, + 00, 0xf6, 0x3, 0x2, 0xbe, 0xc2, 0xfd, 0x9b, 0x3c, 0x23, + 0xff, 00, 0x8, 0xe7, 0x80, 0xa3, 0xb9, 0x91, 0x36, 0xdc, + 0x5e, 0xb1, 0x90, 0xe4, 0x73, 0xb7, 0xb5, 0x7c, 0x91, 0xe0, + 0x6f, 0xf, 0xc9, 0xe2, 0x6f, 0x14, 0x69, 0xda, 0x7c, 0x6a, + 0x5b, 0xcd, 0x95, 0x41, 0xc7, 0xa6, 0x79, 0xaf, 0xd0, 0x8d, + 0x32, 0xc2, 0x2d, 0x2f, 0x4f, 0xb7, 0xb4, 0x85, 0x42, 0x47, + 0xa, 0x4, 0x50, 0x3d, 0x85, 0x7c, 0x6e, 0x43, 0x45, 0xd6, + 0xaf, 0x3c, 0x4c, 0xfa, 0x7e, 0x6c, 0xf8, 0xfe, 0x1d, 0xa0, + 0xea, 0x4e, 0x78, 0xa9, 0xef, 0xfa, 0xbd, 0xcb, 0x54, 0x51, + 0x45, 0x7d, 0xd9, 0xf7, 0x61, 0x45, 0x14, 0x50, 0x1, 0x5f, + 0x98, 0xbf, 0xf0, 0x5b, 0x2f, 0x1d, 0xdc, 0x5a, 0xf8, 0x77, + 0xe1, 0xaf, 0x83, 0x62, 0x25, 0x6d, 0xaf, 0x6e, 0x6e, 0xb5, + 0x59, 0xf0, 0x48, 0xc9, 0x89, 0x52, 0x34, 0x7, 0xd4, 0x7e, + 0xf9, 0xcf, 0xe1, 0x5f, 0xa7, 0x55, 0xf9, 0xe5, 0xff, 00, + 0x5, 0x88, 0xf8, 0x15, 0xab, 0x78, 0xf7, 0xe1, 0x97, 0x86, + 0x3c, 0x79, 0xa2, 0x59, 0xcd, 0x7f, 0x2f, 0x85, 0xa6, 0x9a, + 0x2b, 0xf8, 0x60, 0x42, 0xcc, 0x96, 0x93, 0x5, 0x26, 0x5c, + 0xe, 0x70, 0x8f, 0x1a, 0xe7, 0xd0, 0x31, 0x3d, 0xa8, 0x13, + 0xd8, 0xf8, 0x57, 0xfe, 0x9, 0xbb, 0xf1, 0x4b, 0xc1, 0xff, + 00, 0x8, 0x7f, 0x6a, 0x4d, 0x1f, 0x5d, 0xf1, 0xb5, 0xec, + 0x1a, 0x5e, 0x92, 0xf6, 0x37, 0x36, 0x91, 0xea, 0x17, 0x23, + 0xf7, 0x56, 0xd3, 0xc8, 0xa0, 0x23, 0xb1, 0xfe, 0x10, 0x40, + 0x65, 0xdd, 0xdb, 0x77, 0x3c, 0x57, 0xe8, 0x87, 0xfc, 0x15, + 0x1f, 0xf6, 0x8d, 0xd2, 0x7c, 0x31, 0xfb, 0x2e, 0x36, 0x8b, + 0xe1, 0xed, 0x62, 0xcf, 0x51, 0xbb, 0xf1, 0xb4, 0xc2, 0xc2, + 0x29, 0x6c, 0xae, 0x16, 0x55, 0xfb, 0x2a, 0xe1, 0xe7, 0x70, + 0x54, 0x91, 0x82, 0x36, 0xa7, 0xfd, 0xb4, 0xaf, 0xc4, 0xea, + 0x37, 0x12, 00, 0xc9, 0xc0, 0xe8, 0x2a, 0xac, 0x45, 0xcf, + 0xb5, 0x7f, 0xe0, 0x94, 0x9f, 0xc, 0xb4, 0xcf, 0x13, 0xfe, + 0xd0, 0x57, 0x3e, 0x35, 0xd7, 0xee, 0x6d, 0xac, 0xf4, 0x4f, + 0x5, 0x59, 0x1b, 0xe3, 0x3d, 0xe4, 0x8b, 0x1c, 0x42, 0xe6, + 0x4c, 0xa4, 0x59, 0x66, 0xc0, 0xe0, 0x79, 0x8d, 0xf5, 0x51, + 0x5e, 0xd9, 0xff, 00, 0x5, 0x2f, 0xff, 00, 0x82, 0x80, + 0xf8, 0x77, 0xc6, 0x7e, 0x11, 0xbb, 0xf8, 0x4f, 0xf0, 0xd7, + 0x53, 0x8f, 0x59, 0xb6, 0xbe, 0x64, 0x3a, 0xd6, 0xbd, 0x65, + 0x29, 0x30, 0x6c, 0x56, 0xd, 0xf6, 0x78, 0x98, 0x7d, 0xfc, + 0x90, 0x37, 0x30, 0xf9, 0x71, 0xc7, 0x39, 0x38, 0xfc, 0xc0, + 0x12, 0xba, 0xc6, 0xd1, 0x87, 0x61, 0x1b, 0x10, 0x59, 0x1, + 0xe0, 0x91, 0xd3, 0x22, 0xbd, 0x33, 0xe0, 0x1f, 0xec, 0xe5, + 0xe3, 0x9f, 0xda, 0x43, 0xc6, 0x50, 0x78, 0x7f, 0xc1, 0xba, + 0x4c, 0x97, 0x44, 0xb7, 0xfa, 0x4e, 0xa3, 0x2a, 0x95, 0xb4, + 0xb3, 0x4e, 0xed, 0x2c, 0x98, 0xc0, 0xf6, 0x1d, 0x4f, 0x60, + 0x68, 0xb, 0xf4, 0x3b, 0xbf, 0xd8, 0x3f, 0xf6, 0x70, 0x9f, + 0xf6, 0x92, 0xf8, 0xff, 00, 0xa3, 0x69, 0x33, 0xc2, 0xe7, + 0xc3, 0x7a, 0x53, 0x2e, 0xa7, 0xac, 0x4e, 0x17, 0x2a, 0x21, + 0x46, 0x5, 0x62, 0xcf, 0x4c, 0xc8, 0xd8, 0x5c, 0x7a, 0x16, + 0x3d, 0xab, 0xfa, 0xd, 0x44, 0x58, 0x91, 0x51, 0x14, 0x2a, + 0xa8, 0xc0, 0x3, 0xa0, 0x15, 0xe2, 0xff, 00, 0xb2, 0x8f, + 0xec, 0xb7, 0xe1, 0xaf, 0xd9, 0x53, 0xe1, 0xa4, 0x3e, 0x1b, + 0xd1, 0x7f, 0xd3, 0x35, 0x3b, 0x82, 0x27, 0xd5, 0x75, 0x67, + 0x5c, 0x49, 0x79, 0x3e, 0x31, 0x9f, 0x64, 0x1d, 0x15, 0x7b, + 0xf, 0x72, 0x4d, 0x7b, 0x43, 0xba, 0xc6, 0x8c, 0xec, 0x42, + 0xaa, 0x8c, 0x92, 0x7b, 0xa, 0x96, 0xcb, 0x4a, 0xc7, 0x81, + 0xfe, 0xd2, 0x9e, 0x23, 0x13, 0x5e, 0xe9, 0x9a, 0x24, 0x6f, + 0x91, 0x8, 0x37, 0x33, 0x1, 0xfd, 0xe3, 0xc2, 0x8f, 0xcb, + 0x77, 0xe7, 0x5e, 0x25, 0x5b, 0xbe, 0x39, 0xd7, 0xcf, 0x8a, + 0x3c, 0x5b, 0xaa, 0x6a, 0x79, 0x26, 0x39, 0xa6, 0x3e, 0x5e, + 0x7f, 0xb8, 0x3e, 0x55, 0xfd, 00, 0xac, 0x2a, 0xfc, 0x4b, + 0x33, 0xc4, 0xfd, 0x6f, 0x17, 0x52, 0xaf, 0x4b, 0xe9, 0xe8, + 0xb4, 0x47, 0xc9, 0x62, 0x2a, 0x7b, 0x5a, 0xb2, 0x90, 0x51, + 0x45, 0x15, 0xe6, 0x18, 0x16, 0xec, 0x74, 0x8b, 0xed, 0x50, + 0x39, 0xb3, 0xb2, 0xb8, 0xbb, 0x9, 0x8d, 0xde, 0x44, 0x4c, + 0xfb, 0x73, 0xd3, 0x38, 0x1c, 0x54, 0xd2, 0x78, 0x6f, 0x57, + 0x88, 0x65, 0xf4, 0xab, 0xd4, 0x1e, 0xad, 0x6c, 0xe3, 0xfa, + 0x57, 0xd2, 0x1f, 00, 0x74, 0xf, 0xec, 0x8f, 0x2, 0x47, + 0x74, 0xe9, 0xb6, 0x6d, 0x42, 0x56, 0x9c, 0x92, 0x39, 0xd8, + 0x3e, 0x55, 0xfd, 0x1, 0x3f, 0x8d, 0x7a, 0x55, 0x7d, 0xd6, + 0x13, 0x86, 0xa3, 0x88, 0xc3, 0xc2, 0xac, 0xea, 0x34, 0xe4, + 0xaf, 0x6b, 0x77, 0x3d, 0x8a, 0x58, 0x5, 0x38, 0x29, 0x39, + 0x5a, 0xe7, 0xc3, 0x12, 0xc1, 0x2c, 0x7, 0x12, 0xc6, 0xf1, + 0x9f, 0x47, 0x52, 0x2a, 0x3a, 0xfb, 0x96, 0xe2, 0xce, 0xde, + 0xed, 0xa, 0x4f, 0x4, 0x73, 0x21, 0xfe, 0x19, 0x10, 0x30, + 0xfd, 0x6b, 0x8c, 0xf1, 0x3f, 0xc1, 0xaf, 0xc, 0xf8, 0x8e, + 0xde, 0x40, 0x96, 0x11, 0xe9, 0xb7, 0x44, 0x1d, 0xb7, 0x16, + 0x6a, 0x10, 0x83, 0xee, 0xa3, 0x83, 0xf9, 0x54, 0xd6, 0xe1, + 0x6a, 0xb1, 0x57, 0xa3, 0x51, 0x3f, 0x26, 0xad, 0xfe, 0x62, + 0x9e, 0x5d, 0x24, 0xbd, 0xd9, 0x5c, 0xf9, 0x36, 0x8a, 0xd4, + 0xf1, 0x3f, 0x87, 0xae, 0x7c, 0x2b, 0xaf, 0x5e, 0x69, 0x57, + 0x78, 0x33, 0x5b, 0x3e, 0xd2, 0xcb, 0xd1, 0x81, 0x19, 0xc, + 0x3e, 0xa0, 0x83, 0x59, 0x75, 0xf1, 0x53, 0x84, 0xa9, 0xc9, + 0xc2, 0x4a, 0xcd, 0x68, 0x79, 0x2d, 0x34, 0xec, 0xc2, 0x8a, + 0x28, 0xa8, 0x11, 0xe9, 0xbf, 00, 0x3c, 0x49, 0x36, 0x93, + 0xe3, 0x68, 0xf4, 0xed, 0xc7, 0xec, 0xba, 0x8a, 0x32, 0x32, + 0x76, 0xe, 0xa0, 0xb2, 0x9f, 0xd0, 0x8f, 0xc6, 0xbe, 0x9e, + 0xaf, 0x92, 0xbe, 0xb, 0xda, 0x3d, 0xdf, 0xc4, 0xad, 0x1b, + 0x68, 0x24, 0x46, 0xcf, 0x23, 0x11, 0xd8, 0x4, 0x6f, 0xfe, + 0xb5, 0x7d, 0x6b, 0x5f, 0xa9, 0xf0, 0xcc, 0xe7, 0x2c, 0x13, + 0x52, 0xd9, 0x49, 0xdb, 0xee, 0x4c, 0xfa, 0x2c, 0xbd, 0xb7, + 0x49, 0xa7, 0xdc, 0xa5, 0xad, 0xea, 0x71, 0xe8, 0xda, 0x3d, + 0xed, 0xfc, 0xa7, 0x11, 0xdb, 0x42, 0xf2, 0x9c, 0xff, 00, + 0xb2, 0x9, 0xaf, 0x89, 0xae, 0xae, 0x64, 0xbd, 0xb9, 0x9a, + 0xe2, 0x56, 0xdd, 0x2c, 0xae, 0x64, 0x76, 0xf5, 0x24, 0xe4, + 0xd7, 0xda, 0x3e, 0x28, 0xf0, 0xf4, 0x3e, 0x2a, 0xd0, 0xee, + 0x74, 0xbb, 0x89, 0xa6, 0x82, 0xb, 0x80, 0x3, 0xbc, 0x4, + 0x6, 0xc0, 0x20, 0xe3, 0x90, 0x7d, 0x2b, 0xcd, 0xa4, 0xfd, + 0x9a, 0xb4, 0x16, 0xfb, 0x9a, 0x9e, 0xa0, 0xbf, 0x52, 0x87, + 0xff, 00, 0x65, 0xa8, 0xcf, 0x72, 0xfc, 0x5e, 0x61, 0x28, + 0x2a, 0x9, 0x72, 0xc6, 0xfd, 0x7a, 0xb1, 0x63, 0x28, 0x55, + 0xac, 0xd7, 0x22, 0xd1, 0x1f, 0x39, 0x51, 0x5f, 0x42, 0x49, + 0xfb, 0x33, 0x69, 0x87, 0xee, 0x6b, 0x57, 0x6b, 0xfe, 0xf4, + 0x6a, 0x6a, 0xb4, 0x9f, 0xb3, 0x1c, 0x7, 0xee, 0x6b, 0xf2, + 0xf, 0xf7, 0xad, 0x81, 0xff, 00, 0xd9, 0xab, 0xe4, 0x9f, + 0xf, 0xe6, 0x2b, 0xec, 0x7e, 0x2b, 0xfc, 0xcf, 0x33, 0xea, + 0x55, 0xfb, 0x7e, 0x27, 0x82, 0x51, 0x5e, 0x9b, 0xf1, 0x17, + 0xe0, 0xd2, 0x78, 0x3, 0x42, 0x1a, 0x8b, 0x6b, 0x3f, 0x6b, + 0x2f, 0x32, 0xc2, 0x90, 0xfd, 0x9f, 0x61, 0x62, 0x72, 0x7a, + 0xee, 0x3d, 00, 0x3d, 0xab, 0xcc, 0xab, 0xc7, 0xc4, 0xe1, + 0x6b, 0x60, 0xea, 0x7b, 0x2a, 0xca, 0xcf, 0xe4, 0xff, 00, + 0x23, 0x96, 0xa5, 0x39, 0x52, 0x97, 0x2c, 0xd6, 0xa1, 0x45, + 0x14, 0x57, 0x21, 0x98, 0x51, 0x45, 0x7a, 0x44, 0x1f, 00, + 0x7c, 0x55, 0x73, 0x6b, 0xd, 0xc4, 0x6b, 0x66, 0x56, 0x54, + 0x59, 0x2, 0x99, 0xc8, 0x20, 0x11, 0x9c, 0x1e, 0x3a, 0xd7, + 0x55, 0xc, 0x2d, 0x7c, 0x4d, 0xfd, 0x8c, 0x1c, 0xad, 0xbd, + 0x8d, 0x21, 0x4e, 0x75, 0x3e, 0x5, 0x73, 0xcd, 0xe8, 0xaf, + 0x46, 0x93, 0xe0, 0xf, 0x8c, 0x13, 0xa5, 0xa5, 0xb3, 0xff, + 00, 0xbb, 0x72, 0xb5, 0x56, 0x5f, 0x81, 0xfe, 0x32, 0x8b, + 0xa6, 0x94, 0x1f, 0xfd, 0xcb, 0x88, 0xff, 00, 0xf8, 0xaa, + 0xe8, 0x79, 0x6e, 0x35, 0x6f, 0x46, 0x5f, 0x73, 0x2f, 0xd8, + 0x55, 0x5f, 0x65, 0xfd, 0xc7, 0x7, 0x5e, 0xd3, 0xfb, 0x34, + 0x69, 0x3e, 0x6e, 0xaf, 0xab, 0xea, 0x4c, 0xbc, 0x43, 0xa, + 0xc0, 0x8d, 0xee, 0xc7, 0x27, 0xf4, 0x51, 0xf9, 0xd7, 0x12, + 0xff, 00, 0x7, 0x3c, 0x64, 0x9d, 0x74, 0x29, 0x8f, 0xfb, + 0xb2, 0x46, 0x7f, 0xf6, 0x6a, 0xf7, 0x9f, 0x82, 0x9e, 0x12, + 0xb9, 0xf0, 0x9f, 0x83, 0x84, 0x77, 0xd0, 0x1b, 0x6b, 0xeb, + 0x89, 0x9e, 0x59, 0x63, 0x6e, 0xab, 0xfc, 0x2a, 0xf, 0xe0, + 0x33, 0xf8, 0xd7, 0xb7, 0x91, 0xe0, 0x2b, 0xac, 0x74, 0x67, + 0x56, 0xd, 0x28, 0xdd, 0xea, 0x9a, 0xf2, 0xfd, 0x4e, 0xbc, + 0x1d, 0x19, 0xfb, 0x64, 0xe4, 0xad, 0x63, 0xbf, 0xa2, 0x8a, + 0xf3, 0x4f, 0x8a, 0xff, 00, 0x17, 0xa0, 0xf0, 0x54, 0x6d, + 0xa7, 0x69, 0xfb, 0x6e, 0x35, 0xa7, 0x5c, 0xf3, 0xca, 0x40, + 0xf, 0x76, 0xf5, 0x3e, 0x83, 0xf3, 0xf7, 0xfd, 0x27, 0x13, + 0x89, 0xa5, 0x84, 0xa4, 0xea, 0xd6, 0x76, 0x48, 0xf7, 0xea, + 0x54, 0x8d, 0x28, 0xf3, 0x49, 0xe8, 0x74, 0xde, 0x33, 0xf8, + 0x83, 0xa3, 0xf8, 0x1a, 0xd3, 0xcc, 0xd4, 0x2e, 0x33, 0x70, + 0xcb, 0x98, 0xad, 0x63, 0xe6, 0x59, 0x3e, 0x83, 0xb0, 0xf7, + 0x3c, 0x57, 0xcf, 0xde, 0x32, 0xf8, 0xe3, 0xaf, 0xf8, 0xa3, + 0x7c, 0x36, 0xaf, 0xfd, 0x91, 0x62, 0x4f, 0xfa, 0xbb, 0x66, + 0x3e, 0x63, 0xf, 0xf6, 0x9f, 0xaf, 0xe5, 0x8a, 0xe1, 0x35, + 0x3d, 0x4e, 0xef, 0x59, 0xbd, 0x96, 0xf2, 0xfa, 0xe2, 0x4b, + 0xab, 0x99, 0x4e, 0x5e, 0x49, 0xe, 0x49, 0xff, 00, 0x3e, + 0x95, 0x56, 0xbf, 0x2f, 0xcc, 0x33, 0xec, 0x46, 0x31, 0xb8, + 0x53, 0x7c, 0x90, 0xec, 0xb7, 0x7e, 0xac, 0xf9, 0xda, 0xf8, + 0xca, 0x95, 0x74, 0x8e, 0x88, 0x57, 0x76, 0x91, 0x8b, 0x33, + 0x16, 0x62, 0x72, 0x49, 0x39, 0x26, 0x92, 0x8a, 0x2b, 0xe6, + 0x4e, 00, 0xa2, 0x8a, 0x96, 0xde, 0xd2, 0x7b, 0xc7, 0xd9, + 0x4, 0x32, 0x4e, 0xdf, 0xdd, 0x8d, 0xb, 0x1f, 0xd2, 0x9a, + 0x4d, 0xbb, 0x20, 0x22, 0xa2, 0xb5, 0x47, 0x84, 0xb5, 0xc2, + 0x32, 0x34, 0x5d, 0x47, 0x1e, 0xbf, 0x64, 0x93, 0xfc, 0x2a, + 0x95, 0xd6, 0x9f, 0x75, 0x62, 0x71, 0x73, 0x6d, 0x35, 0xb9, + 0xf4, 0x96, 0x32, 0xbf, 0xce, 0xae, 0x54, 0xe7, 0x15, 0x79, + 0x45, 0xaf, 0x90, 0xdc, 0x5a, 0xdd, 0x15, 0xe8, 0xa2, 0x8a, + 0xcc, 0x41, 0x57, 0x34, 0xad, 0x66, 0xfb, 0x43, 0xba, 0x5b, + 0x9d, 0x3e, 0xee, 0x6b, 0x39, 0xd4, 0xe7, 0x7c, 0x2e, 0x57, + 0x3f, 0x5f, 0x5f, 0xa1, 0xaa, 0x74, 0x55, 0x46, 0x4e, 0x2f, + 0x9a, 0x2e, 0xcc, 0x13, 0x6b, 0x54, 0x7b, 0xef, 0xc3, 0xef, + 0xda, 0x9, 0x2e, 0xe5, 0x8e, 0xc7, 0xc4, 0xc1, 0x20, 0x73, + 0x85, 0x5b, 0xf8, 0xc6, 0x14, 0x9f, 0xf6, 0xc7, 0x6f, 0xa8, + 0xe3, 0xd8, 0x57, 0xb6, 0x47, 0x22, 0x4d, 0x1a, 0xc9, 0x1b, + 0x7, 0x46, 0x19, 0x56, 0x53, 0x90, 0x47, 0xa8, 0x35, 0xf0, + 0xb5, 0x7a, 0xc7, 0xc1, 0x9f, 0x8b, 0x12, 0x78, 0x76, 0xf2, + 0x1d, 0x17, 0x55, 0x98, 0xbe, 0x93, 0x2b, 0x6d, 0x8a, 0x47, + 0x3f, 0xf1, 0xee, 0xc7, 0xa7, 0x3f, 0xdd, 0x3f, 0xa7, 0xe7, + 0x5f, 0x77, 0x94, 0x67, 0xf2, 0xe6, 0x58, 0x7c, 0x63, 0xba, + 0x7b, 0x4b, 0xfc, 0xff, 00, 0xcf, 0xef, 0x3d, 0x9c, 0x2e, + 0x35, 0xdd, 0x42, 0xaf, 0xde, 0x7d, 0x27, 0x45, 0x20, 0x20, + 0x8c, 0x8e, 0x41, 0xa5, 0xaf, 0xd0, 0xcf, 0x70, 0x28, 0xa2, + 0xaa, 0xea, 0x7a, 0x9d, 0xb6, 0x8d, 0xa7, 0xcf, 0x7b, 0x79, + 0x32, 0xc1, 0x6d, 0x2, 0x17, 0x92, 0x46, 0xe8, 00, 0xa4, + 0xda, 0x8a, 0xbb, 0xd8, 0x4d, 0xdb, 0x56, 0x59, 0x66, 0x8, + 0xa5, 0x98, 0x80, 0x7, 0x24, 0x9e, 0xd5, 0xe6, 0xfe, 0x30, + 0xf8, 0xed, 0xa0, 0x78, 0x6f, 0x7c, 0x36, 0x4d, 0xfd, 0xb1, + 0x7a, 0x38, 0xd9, 0x6e, 0xd8, 0x8d, 0x4f, 0xbb, 0xf4, 0xfc, + 0xb3, 0x5e, 0x45, 0xf1, 0x27, 0xe3, 0x16, 0xa1, 0xe3, 0x29, + 0xe5, 0xb4, 0xb1, 0x79, 0x2c, 0x34, 0x60, 0x70, 0x22, 0x53, + 0x87, 0x98, 0x7a, 0xb9, 0x1d, 0xbf, 0xd9, 0xe9, 0xf5, 0xaf, + 0x3a, 0xaf, 0x80, 0xcc, 0x78, 0x95, 0xa6, 0xe9, 0xe0, 0xd7, + 0xfd, 0xbc, 0xff, 00, 0x45, 0xfe, 0x7f, 0x71, 0xe2, 0xd7, + 0xc7, 0xbb, 0xf2, 0xd2, 0xfb, 0xcf, 0x47, 0xf1, 0x7, 0xc7, + 0xbf, 0x14, 0x6b, 0x3b, 0x92, 0xda, 0x68, 0xb4, 0xa8, 0x4f, + 0xf0, 0xda, 0xaf, 0xcd, 0xff, 00, 0x7d, 0x36, 0x4f, 0xe5, + 0x8a, 0xe1, 0x6f, 0xf5, 0xad, 0x43, 0x54, 0x62, 0xd7, 0x97, + 0xd7, 0x37, 0x64, 0xf7, 0x9a, 0x56, 0x7f, 0xe6, 0x6a, 0x95, + 0x15, 0xf1, 0x75, 0xf1, 0x98, 0x8c, 0x4b, 0xbd, 0x69, 0xb7, + 0xf3, 0xfd, 0xf, 0x26, 0x75, 0x67, 0x53, 0xe2, 0x77, 0xa, + 0x28, 0xa2, 0xb8, 0xcc, 0xc2, 0x8a, 0x28, 0xa0, 0x2, 0x8a, + 0x28, 0xa0, 0xb, 0x76, 0x7a, 0xbd, 0xf6, 0x9c, 0xc1, 0xad, + 0x6f, 0x6e, 0x2d, 0x88, 0xef, 0xc, 0xac, 0x9f, 0xc8, 0xd7, + 0x5b, 0xa2, 0x7c, 0x68, 0xf1, 0x6e, 0x8a, 0x55, 0x57, 0x53, + 0x6b, 0xd8, 0xc7, 0x1e, 0x5d, 0xe2, 0x89, 0x33, 0xf8, 0xfd, + 0xef, 0xd6, 0xb8, 0x7a, 0xdb, 0xf0, 0x4e, 0x96, 0x75, 0xaf, + 0x17, 0x68, 0xf6, 0x41, 0x77, 0x9, 0x6e, 0xa3, 0xc, 0x3f, + 0xd9, 0x7, 0x2d, 0xfa, 0x3, 0x5d, 0xd8, 0x6a, 0xf8, 0x88, + 0x54, 0x8c, 0x68, 0xcd, 0xa6, 0xdd, 0xb4, 0x66, 0xb4, 0xe7, + 0x35, 0x24, 0xa0, 0xec, 0x7d, 0x8d, 0xa5, 0xcb, 0x71, 0x3e, + 0x9b, 0x6b, 0x25, 0xda, 0xaa, 0x5d, 0x3c, 0x4a, 0xd2, 0xaa, + 0xc, 00, 0xc4, 0xc, 0x81, 0xf8, 0xd5, 0x9c, 0x73, 0x9a, + 0x5a, 0x2b, 0xf7, 0x14, 0xac, 0x92, 0x3e, 0xbd, 0x5, 0x14, + 0x51, 0x4c, 0x61, 0x58, 0xfe, 0x2e, 0x97, 0xca, 0xf0, 0xed, + 0xeb, 0x74, 0xf9, 0xd, 0x6c, 0x57, 0x33, 0xf1, 0x12, 0x6f, + 0x27, 0xc2, 0xb7, 0x7d, 0xb2, 0x31, 0x58, 0xd6, 0x7c, 0xb4, + 0xe4, 0xfc, 0x8c, 0xea, 0x3b, 0x41, 0xb3, 0xe1, 0x4f, 0x88, + 0x13, 0x79, 0xde, 0x22, 0xbb, 0x6f, 0xf6, 0x8d, 0x78, 0x7, + 0xc6, 0x8b, 0x8f, 0x2f, 0x47, 0x9b, 0x9f, 0xe1, 0x35, 0xee, + 0x5e, 0x2e, 0x97, 0xcd, 0xd6, 0x6f, 0x1b, 0xfd, 0xb3, 0x5f, + 0x3c, 0x7c, 0x78, 0xb9, 0xf2, 0xb4, 0x6b, 0x9f, 0x68, 0xcf, + 0xf2, 0xaf, 0xcd, 0xb2, 0xc5, 0xcd, 0x5e, 0xfe, 0xa7, 0xe2, + 0x18, 0xbf, 0xde, 0xe3, 0xe9, 0xc7, 0xbc, 0xd7, 0xe6, 0x7e, + 0x94, 0xfc, 0xc, 0xf0, 0x98, 0x5f, 0x82, 0x7f, 0xf, 0x84, + 0x90, 0xb0, 0x90, 0x78, 0x7b, 0x4f, 0xd, 0x91, 0xce, 0x7e, + 0xcd, 0x1e, 0x68, 0xaf, 0x59, 0xf8, 0x75, 0x66, 0x2c, 0xfe, + 0x1f, 0x78, 0x62, 0xdc, 0xc6, 0x10, 0xc5, 0xa5, 0xda, 0xc7, + 0xb7, 0x1d, 0x31, 0x12, 0x8c, 0x51, 0x5f, 0xa6, 0x24, 0x7e, + 0xe0, 0xa3, 0xa1, 0xd1, 0xd1, 0x45, 0x15, 0x65, 0x85, 0x14, + 0x51, 0x40, 0x5, 0x7c, 0x4d, 0xfb, 0x4b, 0xf8, 0xc4, 0xf8, + 0xa3, 0xe2, 0x65, 0xcd, 0xac, 0x6e, 0x1a, 0xd3, 0x49, 0x51, + 0x69, 0x1e, 0x31, 0x8d, 0xfd, 0x5c, 0xe4, 0x7b, 0x9c, 0x7e, + 0x15, 0xf5, 0xdf, 0x8e, 0xfc, 0x51, 0xf, 0x82, 0xfc, 0x21, + 0xaa, 0xeb, 0x33, 0x9f, 0x96, 0xd2, 0x6, 0x75, 0x5c, 0xe3, + 0x73, 0xe3, 0xa, 0xa3, 0xdc, 0x9c, 0x57, 0xe7, 0x9b, 0xcb, + 0x3e, 0xa5, 0x7a, 0xf3, 0x4c, 0xc6, 0x5b, 0x9b, 0x89, 0xb, + 0xbb, 0x1e, 0xac, 0xcc, 0x72, 0x4f, 0xe6, 0x6b, 0xe4, 0x78, + 0x83, 0x13, 0xcb, 0x4e, 0x34, 0x17, 0x5d, 0x5f, 0xa2, 0x3e, + 0x33, 0x88, 0xf1, 0x36, 0x84, 0x30, 0xd1, 0xde, 0x5a, 0xbf, + 0x45, 0xb7, 0xe3, 0xf9, 0x1e, 0xfb, 0xfb, 0x27, 0x78, 0x3f, + 0xed, 0xba, 0xdd, 0xe6, 0xb5, 0x32, 0xe6, 0x3b, 0x65, 0xdb, + 0x1e, 0x47, 0xf1, 0x1a, 0xfa, 0xb6, 0xbc, 0xff, 00, 0xe0, + 0x77, 0x85, 0x7, 0x85, 0x7e, 0x1f, 0xe9, 0xf1, 0x32, 0x6d, + 0x9e, 0x75, 0xf3, 0xa4, 0xfa, 0x9a, 0xf4, 0xa, 0xf5, 0xf2, + 0xac, 0x3f, 0xd5, 0xb0, 0x90, 0x8b, 0xdd, 0xea, 0xfe, 0x67, + 0xd0, 0x65, 0xb8, 0x7f, 0xaa, 0xe1, 0x61, 0xe, 0xbb, 0xbf, + 0x98, 0x51, 0x45, 0x15, 0xeb, 0x9e, 0x98, 0x51, 0x45, 0x14, + 00, 0x53, 0x26, 0x86, 0x3b, 0x98, 0x64, 0x86, 0x68, 0xd6, + 0x58, 0xa4, 0x52, 0xae, 0x8e, 0x32, 0xac, 0xf, 0x4, 0x11, + 0xdc, 0x56, 0x5f, 0x8a, 0xfc, 0x5b, 0xa3, 0x78, 0x1b, 0xc3, + 0xf7, 0xba, 0xe7, 0x88, 0x35, 0x3b, 0x5d, 0x1f, 0x48, 0xb2, + 0x8c, 0xcb, 0x71, 0x7b, 0x79, 0x20, 0x8e, 0x38, 0xd4, 0x77, + 0x24, 0xd7, 0xe7, 0xf7, 0xc6, 0xdf, 0xf8, 0x2c, 0x9f, 0x82, + 0xfc, 0x31, 0x3c, 0xd6, 0x1f, 0xd, 0xbc, 0x39, 0x73, 0xe3, + 0xb, 0x84, 0x3b, 0x7f, 0xb4, 0xb5, 0x16, 0x36, 0x96, 0x9f, + 0x55, 0x5c, 0x19, 0x1f, 0xf1, 0xb, 0x40, 0x1e, 0x85, 0xf1, + 0x93, 0xfe, 0x9, 0x37, 0xf0, 0x6b, 0xe2, 0x76, 0xa3, 0x73, + 0xa9, 0xe8, 0x9f, 0xda, 0x3e, 0x3, 0xd4, 0x6e, 0x1c, 0xc9, + 0x20, 0xd2, 0x1d, 0x5e, 0xd4, 0xb1, 0xeb, 0xfb, 0x97, 0x4, + 0x2f, 0xd1, 0xa, 0x8a, 0xf0, 0xd9, 0xbf, 0xe0, 0x88, 0xb0, + 0xfd, 0xb3, 0x31, 0x7c, 0x58, 0x90, 0x5a, 0x67, 0xa3, 0xe8, + 0xa0, 0xc9, 0x8f, 0xa8, 0x9b, 0x15, 0xe2, 0x1a, 0xa7, 0xfc, + 0x16, 0xf, 0xe3, 0xc5, 0xf4, 0xcc, 0xd6, 0xd0, 0x78, 0x57, + 0x4e, 0x8c, 0xfd, 0xd4, 0x87, 0x4c, 0x76, 0xc7, 0xe2, 0xf2, + 0xb6, 0x6b, 0xed, 0xf, 0xf8, 0x26, 0xc7, 0xed, 0x35, 0xf1, + 0x77, 0xf6, 0xa3, 0x93, 0xc5, 0xba, 0xcf, 0x8e, 0x2e, 0xb4, + 0xb6, 0xf0, 0xde, 0x91, 0xe5, 0x5a, 0x5b, 0x8b, 0x1b, 0x11, + 0xb, 0xcb, 0x74, 0xff, 00, 0x33, 0x65, 0xb2, 0x78, 0x54, + 0x3, 0x81, 0xfd, 0xf1, 0x4f, 0x52, 0x74, 0x65, 0xf, 0x87, + 0x1f, 0xf0, 0x47, 0x3f, 0x84, 0x5e, 0x16, 0xb8, 0x4b, 0x8f, + 0x13, 0xeb, 0x1a, 0xef, 0x8c, 0xa4, 0x52, 0xf, 0x91, 0x2c, + 0xab, 0x67, 0x6e, 0x48, 0xf5, 0x58, 0xfe, 0x7f, 0xfc, 0x7e, + 0xbe, 0xd5, 0xf0, 0x27, 0xc3, 0xef, 0xd, 0xfc, 0x31, 0xf0, + 0xe5, 0xb6, 0x81, 0xe1, 0x4d, 0x12, 0xcb, 0x40, 0xd1, 0xed, + 0x86, 0x23, 0xb4, 0xb1, 0x88, 0x46, 0x83, 0xd4, 0x9c, 0x75, + 0x27, 0xb9, 0x39, 0x26, 0xbc, 0x43, 0xc5, 0x7f, 0xf0, 0x50, + 0xef, 0x80, 0xbe, 0x6, 0xf1, 0x76, 0xaf, 0xe1, 0x8d, 0x7b, + 0xc6, 0xaf, 0xa6, 0x6b, 0x5a, 0x55, 0xd4, 0x96, 0x77, 0x96, + 0xd2, 0xe9, 0x77, 0x67, 0xcb, 0x95, 0x1b, 0x6b, 0xd, 0xc2, + 0x22, 0xa7, 0x91, 0xd4, 0x1c, 0x1a, 0xf5, 0xbf, 0x84, 0xbf, + 0x19, 0xbc, 0x1d, 0xf1, 0xcf, 0xc2, 0xed, 0xe2, 0x2f, 0x3, + 0xeb, 0x51, 0xeb, 0xba, 0x3a, 0xdc, 0x35, 0xab, 0x5c, 0xc7, + 0x1b, 0xc6, 0x4, 0x8a, 0x1, 0x65, 0xc3, 0xa8, 0x3c, 0x6, + 0x1d, 0xbb, 0xd2, 0x19, 0xda, 0xd7, 0x11, 0xf1, 0x93, 0xc4, + 0x43, 0xc3, 0xbe, 0x1, 0xd4, 0x59, 0x5f, 0x6c, 0xf7, 0x4b, + 0xf6, 0x58, 0xb9, 0xe7, 0x2f, 0xc1, 0xfc, 0x97, 0x71, 0xae, + 0xde, 0xbe, 0x76, 0xfd, 0xa4, 0x7c, 0x43, 0xf6, 0xcd, 0x7e, + 0xc3, 0x48, 0x8d, 0xf2, 0x96, 0x91, 0x19, 0x64, 0x3, 0xfb, + 0xef, 0xd3, 0xf2, 00, 0x7e, 0x75, 0xe2, 0xe7, 0x18, 0x9f, + 0xaa, 0xe0, 0xa7, 0x35, 0xbb, 0xd1, 0x7a, 0xbf, 0xea, 0xe7, + 0x2e, 0x2a, 0xa7, 0xb3, 0xa4, 0xdf, 0xc8, 0xf1, 0xda, 0x28, + 0xa2, 0xbf, 0x19, 0x3e, 0x54, 0x2a, 0xe6, 0x8f, 0xa6, 0x49, + 0xac, 0xea, 0xd6, 0x76, 0x10, 0x82, 0x65, 0xb9, 0x99, 0x22, + 0x5c, 0x76, 0xdc, 0x40, 0xcd, 0x53, 0xaf, 0x44, 0xf8, 0x18, + 0x9a, 0x64, 0x3e, 0x33, 0xfb, 0x7e, 0xa9, 0x79, 0x6d, 0x67, + 0x15, 0x9c, 0x4c, 0xf1, 0x1b, 0x89, 0x42, 0x6, 0x90, 0xfc, + 0xa3, 0x19, 0xeb, 0x80, 0x58, 0xfe, 0x55, 0xd7, 0x84, 0xa2, + 0xb1, 0x18, 0x88, 0x52, 0x6e, 0xc9, 0xbd, 0x7d, 0x3a, 0x9a, + 0x52, 0x8f, 0x3c, 0xd4, 0x59, 0xf4, 0xfe, 0x9f, 0x63, 0x16, + 0x99, 0x61, 0x6f, 0x69, 0x2, 0xec, 0x86, 0x8, 0xd6, 0x24, + 0x51, 0xd8, 0x1, 0x81, 0x56, 0x2b, 0x2a, 0x3f, 0x16, 0x68, + 0x93, 0x7d, 0xcd, 0x5e, 0xc5, 0xff, 00, 0xdd, 0xb9, 0x43, + 0xfd, 0x6a, 0x43, 0xe2, 0x4d, 0x25, 0x46, 0x4e, 0xa9, 0x66, + 0x7, 0xaf, 0x9e, 0x9f, 0xe3, 0x5f, 0xb7, 0xc6, 0xa5, 0x24, + 0xac, 0xa4, 0xad, 0xea, 0x7d, 0x72, 0x94, 0x6d, 0xa3, 0x34, + 0x69, 0x9, 0xa, 0x9, 0x27, 00, 0x72, 0x49, 0xae, 0x5b, + 0x55, 0xf8, 0xa5, 0xe1, 0x5d, 0x1a, 0x36, 0x69, 0xf5, 0xbb, + 0x57, 0x23, 0xf8, 0x20, 0x7f, 0x35, 0xbf, 0x25, 0xcd, 0x78, + 0xf7, 0xc4, 0x9f, 0x8f, 0x12, 0x6b, 0xf6, 0xb2, 0xe9, 0x9a, + 0xa, 0x49, 0x69, 0x67, 0x20, 0x29, 0x2d, 0xd4, 0x9c, 0x49, + 0x22, 0x9e, 0xa1, 0x47, 0xf0, 0x8f, 0x7e, 0xbf, 0x4a, 0xf3, + 0x71, 0x99, 0xb6, 0x13, 0x7, 0x6, 0xe5, 0x34, 0xdf, 0x64, + 0xee, 0xcc, 0x2a, 0xe2, 0x69, 0xd2, 0x57, 0x6e, 0xec, 0xe2, + 0x3e, 0x27, 0x78, 0x82, 0x2f, 0x13, 0xf8, 0xe7, 0x55, 0xbf, + 0x80, 0x83, 0x6e, 0xd2, 0x8, 0xe3, 0x61, 0xfc, 0x4a, 0x80, + 0x28, 0x3f, 0x8e, 0x33, 0xf8, 0xd7, 0x2d, 0x45, 0x15, 0xf8, + 0xed, 0x6a, 0xb2, 0xaf, 0x52, 0x55, 0x65, 0xbc, 0x9b, 0x7f, + 0x79, 0xf2, 0xd2, 0x93, 0x9c, 0x9c, 0x9f, 0x50, 0xa2, 0x8a, + 0xe9, 0x3c, 0x7, 0xe0, 0x6b, 0xdf, 0x1e, 0x6b, 0x69, 0x65, + 0x6a, 0xc, 0x70, 0x2f, 0xcd, 0x3d, 0xc1, 0x1f, 0x2c, 0x49, + 0xfe, 0x27, 0xb0, 0xa5, 0x4a, 0x94, 0xeb, 0xcd, 0x53, 0xa6, + 0xae, 0xd8, 0x46, 0x2e, 0x6d, 0x46, 0x3b, 0x9e, 0xab, 0xfb, + 0x36, 0xf8, 0x58, 0xa4, 0x57, 0xfa, 0xfc, 0xc8, 0x41, 0x7f, + 0xf4, 0x6b, 0x72, 0x47, 0x51, 0xc1, 0x72, 0x3f, 0x1c, 0xf, + 0xc0, 0xd7, 0xb9, 0x55, 0x3d, 0x23, 0x4a, 0xb6, 0xd0, 0xf4, + 0xcb, 0x6b, 0xb, 0x38, 0xc4, 0x56, 0xd6, 0xf1, 0x88, 0xd1, + 0x47, 0xa0, 0xfe, 0xb5, 0x72, 0xbf, 0x6a, 0xcb, 0xf0, 0x8b, + 0x3, 0x86, 0x85, 0x5, 0xba, 0xdf, 0xd7, 0xa9, 0xf5, 0x94, + 0x29, 0x7b, 0x1a, 0x6a, 0x1, 0x45, 0x14, 0x57, 0xa2, 0x6e, + 0x14, 0x51, 0x45, 00, 0x7c, 0xf7, 0xfb, 0x4a, 0xeb, 0xa6, + 0x7d, 0x67, 0x4c, 0xd2, 0x11, 0xbe, 0x4b, 0x78, 0x8d, 0xc3, + 0x8f, 0xf6, 0x98, 0xe0, 0x7e, 0x41, 0x4f, 0xe7, 0x5e, 0x31, + 0x5d, 0x3f, 0xc4, 0xcd, 0x77, 0xfe, 0x12, 0x3f, 0x1c, 0xea, + 0xf7, 0x81, 0xb7, 0x45, 0xe7, 0x18, 0xa3, 0x3f, 0xec, 0x27, + 0xca, 0x3f, 0x96, 0x7f, 0x1a, 0xe6, 0x2b, 0xf1, 0x3c, 0xcf, + 0x11, 0xf5, 0x9c, 0x65, 0x4a, 0x8b, 0x6b, 0xe9, 0xe8, 0xb4, + 0x47, 0xc9, 0x62, 0x27, 0xed, 0x2a, 0xca, 0x41, 0x45, 0x14, + 0x57, 0x96, 0x73, 0x9b, 0x3e, 0xd, 0xd0, 0xcf, 0x89, 0x3c, + 0x55, 0xa5, 0xe9, 0xb8, 0xca, 0xdc, 0x4e, 0xaa, 0xff, 00, + 0xee, 0xe, 0x5b, 0xf4, 0x6, 0xbe, 0xd1, 0x55, 0xa, 0xa0, + 0x1, 0x80, 0x6, 00, 0xaf, 0x9a, 0xff, 00, 0x67, 0x4d, + 0x18, 0xdf, 0x78, 0xce, 0x7b, 0xf6, 0x5c, 0xc7, 0x63, 0x6e, + 0xc4, 0x1f, 0xf6, 0xdf, 0xe5, 0x1f, 0xa6, 0xea, 0xfa, 0x56, + 0xbf, 0x50, 0xe1, 0x8a, 0x1e, 0xcf, 0xb, 0x2a, 0xaf, 0x79, + 0x3f, 0xc1, 0x7f, 0xc1, 0xb9, 0xf4, 0x19, 0x7c, 0x2d, 0x4d, + 0xcb, 0xb8, 0x51, 0x45, 0x15, 0xf6, 0x7, 0xaa, 0x14, 0x51, + 0x55, 0xb5, 0x1d, 0x42, 0xd, 0x2a, 0xc2, 0xe2, 0xf6, 0xe5, + 0xc4, 0x76, 0xf6, 0xf1, 0xb4, 0xb2, 0x39, 0xec, 0xa0, 0x64, + 0xd2, 0x6d, 0x45, 0x5d, 0x83, 0x76, 0xd4, 0xe3, 0x3e, 0x2d, + 0x7c, 0x47, 0x4f, 0x1, 0x68, 0xaa, 0xb6, 0xfb, 0x5f, 0x55, + 0xba, 0x5, 0x60, 0x43, 0xce, 0xc1, 0xdd, 0xc8, 0xf4, 0x1d, + 0xbd, 0x4d, 0x7c, 0xab, 0x73, 0x73, 0x2d, 0xe5, 0xc4, 0xb3, + 0xcf, 0x23, 0x4b, 0x34, 0xac, 0x5d, 0xe4, 0x73, 0x92, 0xc4, + 0xf5, 0x26, 0xb6, 0x3c, 0x6d, 0xe2, 0xa9, 0xfc, 0x65, 0xe2, + 0x4b, 0xcd, 0x52, 0x72, 0x42, 0xc8, 0xdb, 0x62, 0x8c, 0xff, + 00, 0xcb, 0x38, 0xc7, 0xdd, 0x5f, 0xcb, 0xf5, 0x26, 0xb0, + 0xab, 0xf1, 0xdc, 0xdf, 0x32, 0x96, 0x61, 0x5d, 0xb4, 0xfd, + 0xc5, 0xb2, 0xfd, 0x7e, 0x67, 0xcb, 0x62, 0x6b, 0xba, 0xf3, + 0xf2, 0x5b, 0x5, 0x14, 0x51, 0x5e, 0x11, 0xc6, 0x15, 0xa7, + 0xe1, 0xdf, 0xe, 0x6a, 0x1e, 0x2a, 0xd5, 0x22, 0xb0, 0xd3, + 0x6d, 0xda, 0x79, 0xdc, 0xf6, 0xfb, 0xa8, 0x3f, 0xbc, 0xc7, + 0xb0, 0xf7, 0xa8, 0x34, 0x7d, 0x22, 0xeb, 0x5e, 0xd4, 0xed, + 0xb4, 0xfb, 0x28, 0x8c, 0xd7, 0x57, 0xe, 0x11, 0x10, 0x7a, + 0xfb, 0xfb, 0xe, 0xb5, 0xf5, 0xc7, 0xc3, 0xff, 00, 0x1, + 0xd9, 0x78, 0xb, 0x45, 0x5b, 0x4b, 0x71, 0xbe, 0xe6, 0x40, + 0x1a, 0xe6, 0xe0, 0xf5, 0x91, 0xf1, 0xfa, 0x1, 0xd8, 0x57, + 0xbf, 0x94, 0xe5, 0x52, 0xcc, 0xaa, 0x5d, 0xe9, 0x5, 0xbb, + 0xfd, 0x17, 0xf5, 0xa1, 0xdb, 0x86, 0xc3, 0x3a, 0xf2, 0xd7, + 0x64, 0x71, 0xde, 0xf, 0xfd, 0x9f, 0x34, 0x6d, 0x26, 0x28, + 0xe6, 0xd6, 0x98, 0xea, 0xd7, 0x9d, 0x4c, 0x79, 0x2b, 0xa, + 0x9f, 0x4c, 0x75, 0x6f, 0xc7, 0xf2, 0xaf, 0x50, 0xb2, 0xd3, + 0xed, 0x74, 0xd8, 0x16, 0x1b, 0x4b, 0x68, 0xad, 0xa2, 0x51, + 0x80, 0x91, 0x20, 0x50, 0x3f, 0x1, 0x56, 0x28, 0xaf, 0xd5, + 0x30, 0xd8, 0x2c, 0x3e, 0x12, 0x3c, 0xb4, 0x60, 0x97, 0xe7, + 0xf7, 0x9f, 0x45, 0x4e, 0x94, 0x29, 0x2b, 0x41, 0x58, 0x2a, + 0x2b, 0x8b, 0x58, 0x6e, 0xe2, 0x68, 0xe7, 0x89, 0x26, 0x8d, + 0x86, 0xa, 0x48, 0xa1, 0x81, 0xfc, 0xd, 0x4b, 0x45, 0x76, + 0x34, 0x9e, 0x8c, 0xd8, 0xf2, 0xef, 0x1a, 0xfc, 0x5, 0xd1, + 0x75, 0xe8, 0x65, 0x9f, 0x49, 0x51, 0xa4, 0xea, 0x7, 0x2c, + 0x2, 0x67, 0xc9, 0x73, 0xe8, 0x57, 0xb7, 0xd4, 0x7e, 0x46, + 0xbe, 0x72, 0xd6, 0x74, 0x6b, 0xcf, 0xf, 0xea, 0x73, 0xd8, + 0x5f, 0xc0, 0xd6, 0xf7, 0x50, 0xb6, 0xd7, 0x46, 0xfe, 0x63, + 0xd4, 0x1f, 0x5a, 0xfb, 0x7a, 0xbc, 0x83, 0xf6, 0x87, 0xf0, + 0x7c, 0x5a, 0x87, 0x87, 0xd3, 0x5e, 0x89, 0x31, 0x77, 0x64, + 0x55, 0x25, 0x61, 0xfc, 0x51, 0x31, 0xc7, 0x3f, 0x42, 0x47, + 0xe6, 0x6b, 0xe2, 0xf3, 0xcc, 0x9a, 0x94, 0xa8, 0xcb, 0x13, + 0x87, 0x8f, 0x2c, 0xa3, 0xab, 0x4b, 0x66, 0xba, 0xfc, 0xcf, + 0x23, 0x19, 0x85, 0x8b, 0x8b, 0xa9, 0x5, 0x66, 0x8f, 0x9c, + 0xe8, 0xa2, 0x8a, 0xfc, 0xd0, 0xf0, 0x42, 0x8a, 0x28, 0xa0, + 0xf, 0xa8, 0x7e, 0x5, 0x78, 0xd2, 0x4f, 0x14, 0x78, 0x54, + 0xd9, 0xdd, 0x3e, 0xfb, 0xcd, 0x34, 0xac, 0x25, 0x89, 0xe5, + 0xe3, 0xc7, 0xc8, 0x4f, 0xbf, 0x4, 0x7e, 0x15, 0xe9, 0x55, + 0xf2, 0xd7, 0xc0, 0x5d, 0x71, 0xf4, 0x9f, 0x88, 0x16, 0xd6, + 0xfb, 0xb1, 0xd, 0xfa, 0x34, 0xe, 0x3b, 0x67, 0x1b, 0x94, + 0xfe, 0x63, 0x1f, 0x8d, 0x7d, 0x4b, 0x5f, 0xb0, 0x64, 0x58, + 0xb7, 0x8b, 0xc1, 0x45, 0xc9, 0xeb, 0x1d, 0x1f, 0xcb, 0x6f, + 0xc0, 0xfa, 0x7c, 0x1d, 0x47, 0x52, 0x92, 0xbe, 0xeb, 0x40, + 0xaf, 0x9c, 0x7e, 0x3f, 0xf8, 0xf1, 0xf5, 0x6d, 0x67, 0xfb, + 0x2, 0xd2, 0x42, 0x2c, 0xac, 0x88, 0x33, 0xed, 0x3c, 0x49, + 0x2f, 0xa7, 0xd1, 0x7f, 0x9e, 0x7d, 0x2b, 0xe8, 0x6d, 0x42, + 0xf1, 0x34, 0xfb, 0xb, 0x9b, 0xa9, 0xe, 0x12, 0x8, 0x9a, + 0x46, 0xfa, 00, 0x4f, 0xf4, 0xaf, 0x88, 0xef, 0xef, 0x24, + 0xd4, 0x6f, 0xae, 0x2e, 0xe6, 0x39, 0x96, 0x79, 0x1a, 0x57, + 0x3e, 0xec, 0x72, 0x7f, 0x9d, 0x79, 0x9c, 0x4d, 0x8b, 0x95, + 0x1a, 0x11, 0xa1, 0x7, 0xf1, 0xef, 0xe8, 0x8e, 0x7c, 0xc2, + 0xab, 0x8c, 0x14, 0x17, 0x52, 0xa, 0x28, 0xa2, 0xbf, 0x32, + 0x3c, 00, 0xa2, 0x8a, 0x96, 0xd2, 0xdd, 0xae, 0xee, 0xa1, + 0x81, 0x8, 0xf, 0x2b, 0xac, 0x60, 0x9e, 0x99, 0x27, 0x14, + 0xd2, 0x6d, 0xd9, 0x1, 0x7f, 0x40, 0xf0, 0xc6, 0xab, 0xe2, + 0x8b, 0xaf, 0xb3, 0xe9, 0x76, 0x33, 0x5e, 0x48, 0x3e, 0xf7, + 0x96, 0xbf, 0x2a, 0xff, 00, 0xbc, 0xdd, 0x7, 0xe3, 0x5e, + 0x8d, 0xa7, 0x7e, 0xcd, 0xfe, 0x20, 0xb9, 0x40, 0xd7, 0x57, + 0xb6, 0x56, 0x79, 0xfe, 0x1d, 0xcd, 0x23, 0xf, 0xc8, 0x63, + 0xf5, 0xaf, 0x7a, 0xf0, 0xb7, 0x86, 0xac, 0xfc, 0x27, 0xa1, + 0xda, 0xe9, 0xb6, 0x51, 0x85, 0x8e, 0x25, 0x1, 0x9b, 0x1c, + 0xc8, 0xdd, 0xd8, 0xfb, 0x93, 0x5a, 0xf5, 0xfa, 0x5e, 0x13, + 0x86, 0x70, 0xf0, 0x82, 0x78, 0x96, 0xe5, 0x2f, 0xb9, 0x7f, + 0x99, 0xef, 0xd2, 0xcb, 0xe0, 0x95, 0xea, 0x6a, 0xcf, 0x2, + 0x5f, 0xd9, 0x8e, 0xeb, 0x1f, 0x36, 0xbf, 0x8, 0x3e, 0xd6, + 0xc4, 0xff, 00, 0xec, 0xd4, 0xd7, 0xfd, 0x98, 0xef, 00, + 0xf9, 0x35, 0xe8, 0x9, 0xff, 00, 0x6a, 0xd9, 0x87, 0xfe, + 0xcd, 0x5e, 0xff, 00, 0x45, 0x7a, 0x5f, 0xea, 0xfe, 0x5d, + 0xff, 00, 0x3e, 0xff, 00, 0x17, 0xfe, 0x67, 0x47, 0xd4, + 0xa8, 0x76, 0xfc, 0x59, 0xf3, 0x8d, 0xd7, 0xec, 0xd7, 0xaf, + 0x44, 0x9, 0x83, 0x51, 0xb0, 0x9f, 0xd9, 0x8b, 0xa1, 0xff, + 00, 0xd0, 0x4d, 0x73, 0x3a, 0xb7, 0xc1, 0x7f, 0x17, 0x69, + 0x21, 0x99, 0xb4, 0xa6, 0xba, 0x41, 0xfc, 0x56, 0x8e, 0x24, + 0xfd, 0x7, 0x3f, 0xa5, 0x7d, 0x69, 0x45, 0x73, 0x54, 0xe1, + 0xac, 0xc, 0xd7, 0xb9, 0x78, 0xfc, 0xff, 00, 0xcc, 0xce, + 0x59, 0x7d, 0x17, 0xb5, 0xd1, 0xf0, 0xe5, 0xee, 0x9d, 0x77, + 0xa6, 0xc9, 0xe5, 0xdd, 0xda, 0xcd, 0x6b, 0x27, 0xf7, 0x66, + 0x8c, 0xa1, 0xfc, 0x8d, 0x7a, 0x5f, 0xec, 0xed, 0xa3, 0xb, + 0xff, 00, 0x1b, 0xcb, 0x78, 0xe3, 0x2b, 0x63, 0x6e, 0xce, + 0xa7, 0xd1, 0x9b, 0xe5, 0x1f, 0xa1, 0x6a, 0xfa, 0x3e, 0xff, + 00, 0x4d, 0xb4, 0xd5, 0x6d, 0xda, 0xb, 0xcb, 0x68, 0xae, + 0xa1, 0x61, 0x83, 0x1c, 0xc8, 0x18, 0x1f, 0xc0, 0xd6, 0x4f, + 0x86, 0xfc, 0xd, 0xa3, 0x78, 0x46, 0xea, 0xf6, 0x7d, 0x26, + 0xd3, 0xec, 0x8d, 0x77, 0xb7, 0xcc, 0x55, 0x62, 0x57, 0xe5, + 0xce, 0x30, 0xf, 0x4e, 0xa7, 0xa5, 0x71, 0x61, 0xb8, 0x71, + 0xe1, 0x71, 0x74, 0xeb, 0x29, 0xa9, 0x45, 0x3b, 0xeb, 0xa3, + 0xf2, 0xfc, 0x4c, 0x69, 0xe0, 0x1d, 0x3a, 0x91, 0x95, 0xee, + 0x91, 0xbf, 0x45, 0x14, 0x57, 0xdc, 0x1e, 0xc0, 0x51, 0x45, + 0x14, 00, 0x57, 0x13, 0xf1, 0x6e, 0xe3, 0xc8, 0xf0, 0xa4, + 0xe3, 0xfb, 0xc0, 0xd7, 0x6d, 0x5e, 0x6b, 0xf1, 0xca, 0xe3, + 0xc9, 0xf0, 0xbb, 0xc, 0xe3, 0x2a, 0xd5, 0xc5, 0x8d, 0x97, + 0x2e, 0x1e, 0x6f, 0xc8, 0xe7, 0xc4, 0x3b, 0x52, 0x93, 0xf2, + 0x3e, 0x20, 0xf1, 0x4, 0xbe, 0x65, 0xfd, 0xd3, 0x7a, 0xb9, + 0xaf, 0x9e, 0xfe, 0x34, 0xc4, 0x75, 0x29, 0x6d, 0xec, 0x14, + 0xe0, 0xdd, 0x4f, 0x1c, 00, 0xff, 00, 0xbc, 0xc1, 0x7f, + 0xad, 0x7b, 0xe6, 0xae, 0xfb, 0xa5, 0x98, 0xfa, 0xb1, 0xaf, + 0x12, 0xf1, 0x1d, 0xa7, 0xf6, 0xd7, 0xc5, 0x2f, 0x6, 0xe9, + 0xa3, 0xfe, 0x5e, 0xb5, 0xdb, 0x18, 0x78, 0xf7, 0x9d, 0x5, + 0x7c, 0x1e, 0x4d, 0x1b, 0xd4, 0x47, 0xe2, 0xf4, 0xd7, 0xb4, + 0xcd, 0x28, 0xaf, 0xef, 0x1f, 0xb2, 0xba, 0x6c, 0x1f, 0x65, + 0xd3, 0xed, 0x61, 0xff, 00, 0x9e, 0x71, 0x2a, 0x7e, 0x40, + 0xa, 0x2a, 0xcd, 0x15, 0xfa, 0x49, 0xfb, 0x80, 0x51, 0x45, + 0x14, 00, 0x51, 0x45, 0x21, 0x21, 0x41, 0x24, 0xe0, 0xe, + 0x49, 0xa0, 0xf, 0x9d, 0x7f, 0x6b, 0xdf, 0x1a, 0x2d, 0xb6, + 0x93, 0xa6, 0x78, 0x5e, 0x16, 0x6, 0x5b, 0xa7, 0xfb, 0x5d, + 0xc0, 0xd, 0xc8, 0x45, 0x38, 0x50, 0x47, 0xbb, 0x64, 0xff, + 00, 0xc0, 0x6b, 0xc3, 0xbe, 0x10, 0xf8, 0x59, 0xbc, 0x59, + 0xe3, 0xad, 0x36, 0xcf, 0x69, 0x68, 0x84, 0x81, 0xdf, 0x3, + 0xb0, 0xe6, 0x9d, 0xf1, 0xa3, 0xc6, 0x63, 0xc7, 0x7f, 0x11, + 0xf5, 0x5d, 0x46, 0x27, 0xdf, 0x67, 0x1b, 0x7d, 0x9a, 0xd8, + 0x83, 0x91, 0xe5, 0xa7, 00, 0x8f, 0x62, 0x77, 0x37, 0xe3, + 0x5e, 0xd3, 0xfb, 0x25, 0xf8, 0x3f, 0xca, 0xb7, 0xbe, 0xd7, + 0x66, 0x8c, 0x65, 0x8f, 0x95, 0x13, 0x11, 0xf9, 0xd7, 0xe7, + 0x55, 0x3f, 0xe1, 0x4f, 0x33, 0x51, 0x5a, 0xc6, 0xff, 00, + 0x82, 0xff, 00, 0x3f, 0xd4, 0xfc, 0xe6, 0x2f, 0xfb, 0x53, + 0x35, 0x72, 0xde, 0x29, 0xfe, 0xb, 0xfc, 0xcf, 0xa3, 0x60, + 0x85, 0x6d, 0xe1, 0x8e, 0x24, 0x18, 0x44, 0x50, 0xa0, 0x7b, + 0xa, 0x92, 0x8a, 0x2b, 0xf4, 0x5d, 0x8f, 0xd1, 0x82, 0x8a, + 0x28, 0xa0, 0x2, 0xb3, 0x3c, 0x4d, 0xe2, 0x4d, 0x33, 0xc1, + 0xde, 0x1e, 0xd4, 0x75, 0xcd, 0x66, 0xf2, 0x2d, 0x3f, 0x4a, + 0xd3, 0xe0, 0x7b, 0x9b, 0xab, 0xa9, 0x9b, 0x6a, 0x45, 0x1a, + 0x8c, 0xb3, 0x13, 0xf4, 0x15, 0xa7, 0x5f, 0x1, 0xff, 00, + 0xc1, 0x62, 0x3e, 0x30, 0xc9, 0xe0, 0xdf, 0x81, 0x1a, 0x3f, + 0x82, 0x2c, 0xa7, 0x31, 0xde, 0x78, 0xae, 0xfb, 0xfd, 0x20, + 0x2b, 0x60, 0xfd, 0x92, 0xc, 0x3b, 0xf, 0xa1, 0x73, 0x10, + 0xfa, 0x3, 0x40, 0x1f, 0x9e, 0x9f, 0xb6, 0x97, 0xed, 0x9b, + 0xe2, 0x4f, 0xda, 0xaf, 0xc7, 0x93, 0xb7, 0x9f, 0x36, 0x9b, + 0xe0, 0x8b, 0x9, 0x5e, 0x3d, 0x2b, 0x47, 0x8e, 0x42, 0x11, + 0x90, 0x37, 0x13, 0xcc, 0x3a, 0x34, 0x8c, 00, 0x3c, 0xfd, + 0xde, 0x83, 0xb9, 0x3a, 0x7f, 0x7, 0xbf, 0xe0, 0x9b, 0x1f, + 0x1c, 0x7e, 0x32, 0x68, 0x56, 0xfa, 0xdd, 0x9e, 0x81, 0x6b, + 0xe1, 0xdd, 0x1e, 0xe6, 0x31, 0x35, 0xbd, 0xd7, 0x88, 0x2e, + 0x7e, 0xcc, 0x66, 0x43, 0xc8, 0x65, 0x8c, 0x6, 0x7c, 0x63, + 0x9c, 0x95, 00, 0xd6, 0x6f, 0xfc, 0x13, 0xbb, 0xe1, 0xbe, + 0x87, 0xf1, 0x4b, 0xf6, 0xb4, 0xf0, 0x66, 0x93, 0xe2, 0x25, + 0x82, 0x7d, 0x32, 0xdc, 0xcd, 0xa8, 0x1b, 0x4b, 0x90, 0xa, + 0x5d, 0x3c, 0x31, 0x97, 0x48, 0xf0, 0x7a, 0xfc, 0xc0, 0x36, + 0x3b, 0x85, 0x35, 0xfb, 0x39, 0xfb, 0x62, 0x7c, 0x66, 0xb7, + 0xf8, 0x5, 0xfb, 0x39, 0x78, 0xc3, 0xc5, 0x2, 0x45, 0x86, + 0xf9, 0x2c, 0xcd, 0x96, 0x9a, 0x83, 0x8d, 0xd7, 0x52, 0x8d, + 0x91, 00, 0x3d, 0x89, 0xdd, 0xf4, 0x53, 0x4c, 0x84, 0xaf, + 0xab, 0x3f, 0x9e, 0x6f, 0x16, 0x78, 0x7d, 0xbc, 0x27, 0xe2, + 0x7d, 0x5b, 0x45, 0x7b, 0xcb, 0x6d, 0x41, 0xf4, 0xeb, 0xa9, + 0x2d, 0x5a, 0xea, 0xcd, 0x8b, 0x43, 0x29, 0x46, 0x2a, 0x59, + 0x9, 00, 0x95, 0x24, 0x70, 0x70, 0x2b, 0xf7, 0xe7, 0xf6, + 0x3, 0xf8, 0x22, 0x3e, 0x5, 0x7e, 0xcc, 0x3e, 0x14, 0xd2, + 0x67, 0x8b, 0xcb, 0xd6, 0x35, 0x38, 0xbf, 0xb6, 0x35, 0x1c, + 0x8f, 0x9b, 0xce, 0x9c, 0x6, 0xda, 0x7f, 0xdd, 0x4d, 0x89, + 0xff, 00, 0x1, 0xaf, 0xc5, 0x9f, 0xd8, 0xf3, 0xe0, 0xb4, + 0xbf, 0xb4, 0xf, 0xed, 0x17, 0xe1, 0xf, 0xa, 0x3a, 0x79, + 0xb6, 0x12, 0x5d, 0xb, 0xdd, 0x49, 0x98, 0x64, 0xb, 0x58, + 0xbf, 0x79, 0x2e, 0x7f, 0xde, 00, 0x27, 0xd5, 0xc5, 0x7e, + 0xd9, 0xfe, 0xd9, 0x7f, 0xb4, 0x8e, 0x8d, 0xfb, 0x30, 0x7c, + 0xf, 0xd5, 0xf5, 0x56, 0xbb, 0x82, 0x1f, 0x11, 0x5d, 0x5b, + 0x3d, 0x9e, 0x83, 0xa7, 0xe4, 0x6f, 0x9a, 0xe0, 0xae, 0xd5, + 0x60, 0xbd, 0x76, 0x26, 0x43, 0x31, 0xec, 0x6, 0x3a, 0x91, + 0x43, 0x5, 0xdc, 0xfc, 0x4a, 0xfd, 0xb3, 0x75, 0xfb, 0x5f, + 0x13, 0x7e, 0xd5, 0x7f, 0x14, 0xf5, 0x1b, 0x26, 0x57, 0xb5, + 0x93, 0x5e, 0xb9, 0x44, 0x74, 0xe8, 0xdb, 0x1b, 0x61, 0x3f, + 0x89, 0x52, 0x6b, 0xf5, 0x7f, 0xfe, 0x9, 0x19, 0xa1, 0x49, + 0xa4, 0xfe, 0xc8, 0x36, 0x77, 0x72, 0x2e, 0xdf, 0xed, 0x3d, + 0x66, 0xf6, 0xe5, 0x33, 0xdd, 0x43, 0x2c, 0x59, 0xfc, 0xe3, + 0x6a, 0xfc, 0x50, 0xd1, 0xf4, 0x9d, 0x57, 0xc7, 0x5e, 0x2a, + 0xb3, 0xd3, 0x6c, 0xd2, 0x4d, 0x43, 0x5a, 0xd5, 0xef, 0x12, + 0x8, 0x97, 0xab, 0xcd, 0x3c, 0xaf, 0x81, 0xf8, 0x96, 0x6a, + 0xfe, 0x91, 0x3e, 0x2, 0xfc, 0x2c, 0xb5, 0xf8, 0x27, 0xf0, + 0x73, 0xc2, 0x3e, 0x8, 0xb4, 0xda, 0x53, 0x46, 0xd3, 0xe3, + 0xb7, 0x92, 0x45, 0x1c, 0x49, 0x2e, 0x37, 0x4a, 0xff, 00, + 0xf0, 0x27, 0x2c, 0x7f, 0x1a, 0x18, 0x2d, 0xee, 0x77, 0x53, + 0xcc, 0x96, 0xd0, 0xc9, 0x34, 0x8c, 0x12, 0x38, 0xd4, 0xb3, + 0x31, 0xe8, 00, 0x19, 0x26, 0xbe, 0x2c, 0xf1, 0x46, 0xb5, + 0x27, 0x88, 0xfc, 0x45, 0xa8, 0xea, 0x52, 0x12, 0x4d, 0xcc, + 0xed, 0x20, 0xcf, 0x65, 0xcf, 0xca, 0x3f, 0x1, 0x81, 0x5f, + 0x4a, 0xfc, 0x73, 0xf1, 0x11, 0xd0, 0x7c, 0x3, 0x75, 0x1c, + 0x6f, 0xb2, 0xe2, 0xf9, 0x85, 0xaa, 0x63, 0xae, 0xf, 0x2f, + 0xff, 00, 0x8e, 0x82, 0x3f, 0x1a, 0xf9, 0x5a, 0xbf, 0x38, + 0xe2, 0x8c, 0x4f, 0x35, 0x48, 0x61, 0x97, 0x4d, 0x5f, 0xcf, + 0x6f, 0xeb, 0xcc, 0xf1, 0x33, 0x1a, 0x97, 0x92, 0xa6, 0xba, + 0x5, 0x14, 0x51, 0x5f, 0xa, 0x79, 0x1, 0x45, 0x14, 0x50, + 0x1, 0x46, 0x28, 0xa2, 0x80, 0xa, 0x28, 0xa2, 0x80, 0xa, + 0x7c, 0x10, 0x49, 0x73, 0x32, 0xc5, 0xc, 0x6f, 0x2c, 0xae, + 0x70, 0xa8, 0x8a, 0x59, 0x89, 0xf6, 0x2, 0xb4, 0x3c, 0x3f, + 0xa9, 0xd9, 0xe9, 0x5a, 0x82, 0xcd, 0x7d, 0xa5, 0xc3, 0xab, + 0x5b, 0xff, 00, 0x14, 0x12, 0xc8, 0xc9, 0xf9, 0x15, 0x3d, + 0x7e, 0xb9, 0xaf, 0xa9, 0xbe, 0x1a, 0x5c, 0xf8, 0x5f, 0x58, + 0xd1, 0x56, 0xff, 00, 0xc3, 0xda, 0x7d, 0xbd, 0x90, 0xce, + 0xc9, 0x63, 0x58, 0x82, 0xc9, 0x1b, 0xe3, 0xee, 0xb1, 0xea, + 0x7e, 0xb9, 0xe6, 0xbd, 0xdc, 0xb3, 0x2c, 0x8e, 0x63, 0x2e, + 0x5f, 0x6a, 0xa2, 0xfb, 0x6b, 0x7f, 0xf2, 0xfc, 0x4e, 0xbc, + 0x3e, 0x1d, 0x57, 0x76, 0xe6, 0xb1, 0xe2, 0xbe, 0x9, 0xf8, + 0xd, 0xad, 0x78, 0x86, 0x54, 0x9b, 0x55, 0x56, 0xd1, 0xec, + 0x3a, 0x9f, 0x30, 0x7e, 0xf9, 0xc7, 0xa0, 0x5e, 0xdf, 0x53, + 0xf9, 0x1a, 0xfa, 0x1f, 0xc3, 0x5e, 0x18, 0xd3, 0xbc, 0x25, + 0xa5, 0xc7, 0x61, 0xa6, 0xc0, 0x20, 0x81, 0x79, 0x27, 0xab, + 0x39, 0xee, 0xcc, 0x7b, 0x9a, 0xd5, 0xa2, 0xbf, 0x4b, 0xc0, + 0x65, 0x58, 0x6c, 0xbd, 0x5e, 0x92, 0xbc, 0xbb, 0xbd, 0xff, + 00, 0xe0, 0x1f, 0x41, 0x47, 0xd, 0x4e, 0x87, 0xc3, 0xbf, + 0x70, 0xa2, 0x8a, 0x2b, 0xd8, 0x3a, 0x82, 0x8a, 0x28, 0xa0, + 0x2, 0xb1, 0x3c, 0x69, 0xac, 0xaf, 0x87, 0xbc, 0x27, 0xaa, + 0xea, 0x5, 0xb6, 0x98, 0x2d, 0xdc, 0xa7, 0xfb, 0xe4, 0x61, + 0x47, 0xe6, 0x45, 0x6d, 0xd7, 0x91, 0xfe, 0xd1, 0xfa, 0xd9, + 0xb2, 0xf0, 0xa5, 0x9e, 0x9c, 0x8d, 0x87, 0xbd, 0xb8, 0xcb, + 0xf, 0x54, 0x41, 0x93, 0xff, 00, 0x8f, 0x15, 0xaf, 0x3f, + 0x30, 0xaf, 0xf5, 0x5c, 0x2d, 0x4a, 0xdd, 0x97, 0xe3, 0xd3, + 0xf1, 0x30, 0xaf, 0x3f, 0x67, 0x4e, 0x52, 0x3e, 0x70, 0x24, + 0x93, 0x93, 0xc9, 0xa2, 0x8a, 0x2b, 0xf0, 0xf3, 0xe4, 0x42, + 0x8a, 0x29, 0x42, 0x96, 0x20, 0x1, 0x92, 0x78, 0x2, 0x80, + 0x3e, 0x93, 0xfd, 0x9c, 0xf4, 0x71, 0x65, 0xe0, 0xcb, 0x8b, + 0xe6, 0x5c, 0x49, 0x7b, 0x72, 0xc4, 0x1f, 0xf6, 0x13, 0xe5, + 0x1f, 0xae, 0xea, 0xf5, 0x7a, 0xc4, 0xf0, 0x5e, 0x88, 0x3c, + 0x39, 0xe1, 0x4d, 0x2f, 0x4e, 00, 0x6, 0x82, 0x5, 0xf, + 0x8e, 0xec, 0x79, 0x63, 0xf9, 0x93, 0x5b, 0x75, 0xfb, 0x8e, + 0x2, 0x87, 0xd5, 0xb0, 0xb4, 0xe9, 0x76, 0x4b, 0xef, 0xeb, + 0xf8, 0x9f, 0x5d, 0x42, 0x1e, 0xce, 0x9c, 0x62, 0x14, 0x51, + 0x45, 0x77, 0x9b, 0x85, 0x79, 0x1f, 0xed, 0x15, 0xe2, 0x86, + 0xd3, 0x3c, 0x35, 0x6d, 0xa4, 0x42, 0xfb, 0x65, 0xd4, 0x1f, + 0x32, 0x1, 0xd7, 0xca, 0x5c, 0x13, 0xf9, 0x9c, 0x7e, 0x46, + 0xbd, 0x72, 0xbe, 0x51, 0xf8, 0xdd, 0xae, 0xb6, 0xb7, 0xf1, + 0xb, 0x50, 0x4d, 0xdb, 0xa1, 0xb3, 0xc5, 0xac, 0x63, 0x3d, + 0x36, 0x8f, 0x9b, 0xff, 00, 0x1e, 0x2d, 0x5f, 0x37, 0x9f, + 0xe2, 0x9e, 0x1b, 0x5, 0x25, 0x1d, 0xe5, 0xa7, 0xf9, 0xfe, + 0x7, 0x6, 0x36, 0xa7, 0x25, 0x16, 0x97, 0x5d, 0xe, 0xa, + 0x8a, 0x28, 0xaf, 0xc8, 0xcf, 0x99, 0xa, 0x28, 0xa9, 0x2d, + 0xe0, 0x7b, 0xab, 0x88, 0xa1, 0x88, 0x6e, 0x92, 0x46, 0x8, + 0xab, 0xea, 0x49, 0xc0, 0x14, 0xd2, 0xbe, 0x88, 0xf, 0x79, + 0xfd, 0x9c, 0xfc, 0x18, 0xb1, 0x5a, 0x5c, 0x78, 0x92, 0xe1, + 0x33, 0x24, 0xa5, 0xa0, 0xb6, 0xc8, 0xe8, 0xa3, 0xef, 0x30, + 0xfa, 0x9e, 0x3f, 0x3, 0xeb, 0x5e, 0xdd, 0x59, 0xbe, 0x1b, + 0xd1, 0x62, 0xf0, 0xee, 0x83, 0x61, 0xa6, 0xc2, 00, 0x4b, + 0x68, 0x56, 0x3c, 0x8e, 0xe4, 0xe, 0x4f, 0xe2, 0x72, 0x7f, + 0x1a, 0xd2, 0xaf, 0xdb, 0xb2, 0xfc, 0x2a, 0xc1, 0x61, 0xa1, + 0x45, 0x6e, 0x96, 0xbe, 0xbd, 0x4f, 0xae, 0xa1, 0x4d, 0x52, + 0xa6, 0xa2, 0x14, 0x51, 0x45, 0x7a, 0x26, 0xe1, 0x45, 0x14, + 0x50, 0x1, 0x59, 0x1e, 0x2e, 0xd3, 0xd7, 0x56, 0xf0, 0xb6, + 0xad, 0x66, 0xe3, 0x2b, 0x35, 0xac, 0x8b, 0xf8, 0xed, 0x38, + 0xfd, 0x6b, 0x5e, 0xaa, 0x6a, 0xf2, 0x88, 0x34, 0x9b, 0xd9, + 0x1b, 0xee, 0xa4, 0xe, 0xc7, 0xf0, 0x53, 0x59, 0xd5, 0x4a, + 0x50, 0x92, 0x7b, 0x59, 0x93, 0x25, 0x78, 0xb4, 0xcf, 0x87, + 0xe8, 0xa2, 0x8a, 0xfc, 0xc, 0xf8, 0xc0, 0xa2, 0x8a, 0x28, + 0x3, 0x7b, 0xc0, 0x57, 0x26, 0xd3, 0xc6, 0xda, 0x14, 0xa0, + 0xe3, 0x17, 0xb0, 0x8f, 0xc0, 0xb8, 0x7, 0xf9, 0xd7, 0xd9, + 0xb5, 0xf1, 0x67, 0x83, 0x62, 0x33, 0x78, 0xbb, 0x44, 0x45, + 0xea, 0xd7, 0xb0, 0x8f, 0xfc, 0x7c, 0x57, 0xda, 0x75, 0xfa, + 0x47, 0xa, 0xb7, 0xec, 0x6a, 0xae, 0x97, 0x5f, 0x91, 0xee, + 0xe5, 0xbf, 0xc, 0x8c, 0x3f, 0x1c, 0x86, 0x6f, 0x5, 0xeb, + 0xa1, 0x33, 0xbb, 0xec, 0x33, 0x63, 0x1f, 0xee, 0x1a, 0xf8, + 0xc2, 0xbe, 0xe6, 0xb9, 0xb7, 0x4b, 0xbb, 0x69, 0x60, 0x90, + 0x6e, 0x8e, 0x54, 0x28, 0xc0, 0xf7, 0x4, 0x60, 0xd7, 0xc5, + 0x9e, 0x25, 0xd0, 0xa7, 0xf0, 0xd6, 0xbd, 0x7d, 0xa6, 0x5c, + 0x29, 0x59, 0x2d, 0xe5, 0x28, 0x9, 0x1f, 0x79, 0x7f, 0x85, + 0xbf, 0x11, 0x83, 0xf8, 0xd7, 0x37, 0x15, 0x52, 0x95, 0xe9, + 0x55, 0xe9, 0xaa, 0x23, 0x32, 0x8b, 0xbc, 0x64, 0x66, 0x51, + 0x45, 0x15, 0xf0, 0x7, 0x8a, 0x14, 0xaa, 0xc5, 0x18, 0x32, + 0x92, 0x18, 0x1c, 0x82, 0x3b, 0x52, 0x51, 0x40, 0x1f, 0x49, + 0xfc, 0x39, 0xf8, 0xe5, 0xa6, 0x6b, 0x16, 0x30, 0x59, 0x6b, + 0x93, 0xae, 0x9f, 0xa9, 0x46, 0xa1, 0xc, 0xf2, 0x9c, 0x45, + 0x37, 0x6c, 0xe7, 0xf8, 0x4f, 0xa8, 0x3f, 0x85, 0x7a, 0xac, + 0x53, 0x47, 0x3c, 0x6b, 0x24, 0x4e, 0xb2, 0x46, 0xc3, 0x21, + 0x90, 0xe4, 0x11, 0xf5, 0xaf, 0x85, 0xeb, 0x63, 0x43, 0xf1, + 0x86, 0xb7, 0xe1, 0xa3, 0xff, 00, 0x12, 0xcd, 0x4e, 0xe6, + 0xd1, 0x7f, 0xe7, 0x9a, 0x3e, 0x50, 0xff, 00, 0xc0, 0x4f, + 0x1f, 0xa5, 0x7d, 0xbe, 0xb, 0x89, 0xaa, 0x52, 0x8a, 0x86, + 0x26, 0x3c, 0xd6, 0xea, 0xb7, 0xff, 00, 0x83, 0xf8, 0x1e, + 0xbd, 0x2c, 0xc2, 0x51, 0x56, 0xa8, 0xae, 0x7d, 0xa7, 0x45, + 0x7c, 0xdf, 0xa0, 0xfe, 0xd1, 0xda, 0xed, 0x8e, 0xd4, 0xd4, + 0xed, 0x2d, 0xf5, 0x38, 0xc7, 0x56, 0x5f, 0xdd, 0x49, 0xf9, + 0x8c, 0x8f, 0xd2, 0xbb, 0xed, 0x13, 0xf6, 0x87, 0xf0, 0xd6, + 0xa4, 0xc1, 0x2f, 0x52, 0xe7, 0x4b, 0x73, 0xfc, 0x52, 0xa6, + 0xf4, 0xfc, 0xd7, 0x27, 0xf3, 0x15, 0xf5, 0x74, 0x33, 0xcc, + 0x5, 0x7f, 0xf9, 0x79, 0xca, 0xfc, 0xf4, 0xff, 00, 0x81, + 0xf8, 0x9e, 0x8c, 0x31, 0x94, 0x67, 0xd6, 0xde, 0xa7, 0xa9, + 0x51, 0x59, 0xba, 0x3f, 0x89, 0x34, 0xaf, 0x10, 0x45, 0xe6, + 0x69, 0xba, 0x85, 0xbd, 0xea, 0xf7, 0xf2, 0x64, 0xc, 0x47, + 0xd4, 0x75, 0x15, 0xa5, 0x5e, 0xe4, 0x65, 0x19, 0xae, 0x68, + 0xbb, 0xa3, 0xb1, 0x34, 0xd5, 0xd0, 0x51, 0x45, 0x15, 0x43, + 0xa, 0x28, 0xa2, 0x80, 0xa, 0x28, 0xa2, 0x80, 0xa, 0xf2, + 0xf, 0xda, 0x1e, 0xeb, 0xca, 0xd0, 0x36, 0xe7, 0xfe, 0x59, + 0x9a, 0xf5, 0xfa, 0xf0, 0x6f, 0xda, 0x5e, 0xf8, 0x47, 0x61, + 0xe5, 0x67, 0x91, 0x1d, 0x79, 0x19, 0xb4, 0xb9, 0x30, 0x75, + 0x1f, 0x91, 0xc1, 0x8e, 0x97, 0x2e, 0x1e, 0x4c, 0xf9, 0x7, + 0x53, 0x6f, 0x95, 0xcf, 0xb9, 0xaf, 0x34, 0xf0, 0x2d, 0x92, + 0xeb, 0x9f, 0xb5, 0x7, 0xc3, 0x3b, 0x26, 0x1b, 0x81, 0xd7, + 0xad, 0xe4, 0xc7, 0xfb, 0x84, 0xbf, 0xfe, 0xcb, 0x5e, 0x8d, + 0xaa, 0x36, 0x22, 0x63, 0xec, 0x6b, 0x94, 0xfd, 0x9b, 0xec, + 0xff, 00, 0xb6, 0x3f, 0x6c, 0xbf, 0x87, 0xf1, 0xe3, 0x70, + 0x86, 0x7b, 0x9b, 0x93, 0xed, 0xb2, 0xda, 0x53, 0x9f, 0xcf, + 0x15, 0xf2, 0xd9, 0x24, 0x7d, 0xf3, 0xf2, 0x3c, 0xb1, 0x7b, + 0x4c, 0xe2, 0x97, 0x95, 0xd9, 0xfa, 0xcf, 0x45, 0x14, 0x57, + 0xe8, 0x7, 0xed, 0x61, 0x45, 0x14, 0x50, 0x1, 0x5c, 0x3f, + 0xc6, 0x8f, 0x18, 0xf, 0x4, 0x7c, 0x37, 0xd6, 0x35, 0x5, + 0x62, 0xb7, 0xf, 0x17, 0xd9, 0xad, 0xf6, 0xf5, 0xf3, 0x1f, + 0xe5, 0x53, 0xf8, 0x64, 0x9f, 0xc2, 0xbb, 0x8a, 0xf9, 0x5f, + 0xf6, 0xbf, 0xf1, 0x87, 0xda, 0xb5, 0x6d, 0x2b, 0xc3, 0x31, + 0x1f, 0x92, 0xd9, 0x3e, 0xd9, 0x39, 0xe7, 0xef, 0x36, 0x42, + 0x8f, 0xcb, 0x27, 0xf1, 0xaf, 0x37, 0x31, 0xc4, 0x7d, 0x5b, + 0xd, 0x39, 0xf5, 0xd9, 0x7a, 0xb3, 0xca, 0xcd, 0x31, 0x3f, + 0x54, 0xc2, 0x4e, 0xa2, 0xdf, 0x65, 0xea, 0xff, 00, 0xab, + 0x9f, 0x3e, 0x58, 0x5a, 0xbd, 0xe5, 0xd4, 0x30, 0x46, 0x37, + 0x3b, 0xb0, 0x50, 0x7, 0xa9, 0xaf, 0xd0, 0x3f, 0x86, 0x9e, + 0x19, 0x8f, 0xc2, 0x7e, 0xc, 0xd3, 0x6c, 0x11, 0x2, 0xb8, + 0x88, 0x34, 0x9e, 0xec, 0x47, 0x35, 0xf2, 0x27, 0xec, 0xf7, + 0xe1, 0x13, 0xe2, 0x9f, 0x1f, 0x5a, 0x97, 0x5c, 0xdb, 0xdb, + 0x7e, 0xf5, 0xcf, 0xd3, 0xa5, 0x7d, 0xc4, 0xa0, 0x28, 00, + 0x70, 0x7, 0x15, 0xf3, 0xdc, 0x3d, 0x87, 0xd2, 0x78, 0x87, + 0xe8, 0xbf, 0x53, 0xc2, 0xe1, 0xcc, 0x37, 0x25, 0x39, 0x57, + 0x7d, 0x74, 0x42, 0xd1, 0x45, 0x15, 0xf6, 0x67, 0xd9, 0x5, + 0x14, 0x51, 0x40, 0x5, 0x7e, 0x55, 0x7f, 0xc1, 0x6d, 0x3c, + 0x2b, 0xa8, 0x36, 0xa3, 0xf0, 0xc7, 0xc4, 0x81, 0x19, 0xb4, + 0xa5, 0x8a, 0xef, 0x4f, 0x67, 0x1d, 0x12, 0x62, 0x52, 0x40, + 0xf, 0xd5, 0x43, 0x7f, 0xdf, 0x26, 0xbf, 0x52, 0xb5, 0x4d, + 0x5e, 0xc7, 0x43, 0xb3, 0x6b, 0xbd, 0x46, 0xf6, 0xde, 0xc2, + 0xd5, 0x48, 0x56, 0x9e, 0xea, 0x55, 0x8d, 0x1, 0x27, 00, + 0x16, 0x62, 0x7, 0x24, 0x81, 0x5e, 0x73, 0xf1, 0xc7, 0xe1, + 0xf, 0x82, 0xff, 00, 0x69, 0xef, 0x86, 0x1a, 0x8f, 0x83, + 0x35, 0xeb, 0x98, 0xee, 0xf4, 0xeb, 0xbd, 0xb2, 0xc5, 0x73, + 0x63, 0x3a, 0x99, 0x6d, 0xa6, 0x5e, 0x52, 0x54, 0x23, 0x3c, + 0x83, 0xdb, 0xa1, 0x4, 0x83, 0xc1, 0xa0, 0x4f, 0x53, 0xf9, + 0xcd, 0xf0, 0xaf, 0x8a, 0xb5, 0x8f, 0x3, 0xf8, 0x8b, 0x4f, + 0xd7, 0xb4, 0xd, 0x46, 0xe3, 0x49, 0xd6, 0x74, 0xf9, 0x44, + 0xf6, 0xb7, 0xb6, 0xaf, 0xb6, 0x48, 0x9c, 0x74, 0x20, 0xfe, + 0x9e, 0xe0, 0x90, 0x6b, 0xd8, 0x7e, 0x39, 0x7e, 0xda, 0xdf, + 0x14, 0xbf, 0x68, 0xbf, 0x1, 0x68, 0xfe, 0x13, 0xf1, 0xce, + 0xa9, 0x69, 0xa9, 0x58, 0x69, 0x97, 0x42, 0xf1, 0x27, 0x86, + 0xd1, 0x60, 0x9a, 0x69, 0x2, 0x32, 0x3, 0x29, 0x5c, 0x2b, + 0x60, 0x33, 0x74, 0x51, 0xc9, 0xaf, 0x44, 0xf8, 0xd9, 0xff, + 00, 0x4, 0xbf, 0xf8, 0xd9, 0xf0, 0xa2, 0xfa, 0xea, 0x5d, + 0x27, 0x44, 0x1e, 0x39, 0xd0, 0x91, 0xd8, 0xc5, 0x7d, 0xa1, + 0xb6, 0xf9, 0x76, 0x67, 0x82, 0xf0, 0x1c, 0x38, 0x6c, 0x76, + 0x50, 0xc3, 0xde, 0xbe, 0x79, 0xb8, 0xf8, 0x25, 0xf1, 0x12, + 0xd2, 0xe4, 0xdb, 0xcd, 0xe0, 0x3f, 0x12, 0xc5, 0x38, 0x38, + 0xf2, 0xdb, 0x48, 0xb8, 0xd, 0x9f, 0xa6, 0xca, 0xa2, 0x35, + 0x3a, 0x5f, 0xd9, 0xdb, 0xf6, 0x95, 0xf1, 0x47, 0xec, 0xc5, + 0xe2, 0xd, 0x5f, 0x5f, 0xf0, 0x7d, 0xa6, 0x96, 0xfa, 0xe5, + 0xfd, 0x9f, 0xd8, 0x56, 0xf7, 0x51, 0xb7, 0x33, 0x1b, 0x68, + 0xcb, 0x6, 0x6f, 0x2c, 0x6e, 0x3, 0x2c, 0x55, 0x73, 0x9c, + 0xfd, 0xd1, 0x5c, 0xdf, 0xc5, 0x9f, 0x8d, 0x1e, 0x35, 0xf8, + 0xe5, 0xe2, 0x63, 0xaf, 0xf8, 0xe3, 0xc4, 0x37, 0x7e, 0x20, + 0xd4, 0x82, 0x94, 0x8d, 0xee, 0x8, 0x9, 0xa, 0x67, 0x3b, + 0x23, 0x45, 0x1, 0x51, 0x7d, 0x94, 0xa, 0xf4, 0xdf, 0x86, + 0x7f, 0xb0, 0x3f, 0xc7, 0x6f, 0x8a, 0x97, 0x31, 0x2e, 0x99, + 0xe0, 0xd, 0x47, 0x4c, 0xb5, 0x7e, 0xb7, 0xba, 0xda, 0xfd, + 0x86, 0x15, 0x1e, 0xa7, 0xcc, 0xc3, 0x1f, 0xc1, 0x4d, 0x7e, + 0x8b, 0xfe, 0xc9, 0xff, 00, 0xf0, 0x4a, 0xf, 0xb, 0xfc, + 0x27, 0xbd, 0xb2, 0xf1, 0x37, 0xc4, 0xbb, 0xb8, 0x3c, 0x65, + 0xe2, 0x6b, 0x79, 0x16, 0x6b, 0x7d, 0x3e, 0x10, 0x46, 0x9d, + 0x6a, 0xe3, 0x90, 0x48, 0x60, 0xc, 0xcc, 0xf, 0x76, 0x1, + 0x78, 0x1f, 0x2f, 0x7a, 0x2, 0xcc, 0xf3, 0xaf, 0xf8, 0x25, + 0x8f, 0xec, 0x3b, 0x79, 0xa4, 0xdd, 0xda, 0xfc, 0x65, 0xf1, + 0xde, 0x9b, 0xf6, 0x79, 0xc, 0x64, 0xf8, 0x73, 0x4d, 0xba, + 0x8c, 0x89, 0x13, 0x3c, 0x1b, 0xb7, 0x53, 0xd3, 0x23, 0x21, + 0x7, 0x5e, 0x4b, 0x7a, 0x57, 0xea, 0x25, 0x22, 0xa8, 0x45, + 0xa, 0xa0, 0x2a, 0x81, 0x80, 00, 0xc0, 0x2, 0xa2, 0xbc, + 0xbb, 0x8e, 0xc6, 0xd2, 0x6b, 0x99, 0x9b, 0x64, 0x30, 0xa1, + 0x91, 0xd8, 0xf6, 00, 0x64, 0xd4, 0xb7, 0x6d, 0x59, 0x7b, + 0x23, 0xe7, 0x5f, 0xda, 0x33, 0xc4, 0x23, 0x50, 0xf1, 0x4d, + 0xae, 0x97, 0x1b, 0xe6, 0x3b, 0x8, 0xb2, 0xe0, 0x1e, 0x3c, + 0xc7, 0xe4, 0xff, 00, 0xe3, 0xa1, 0x7f, 0x3a, 0xf2, 0x4a, + 0xbf, 0xaf, 0x6a, 0xb2, 0x6b, 0xba, 0xd5, 0xf6, 0xa1, 0x29, + 0x26, 0x4b, 0x99, 0x9e, 0x53, 0x9e, 0xd9, 0x39, 0x3, 0xf0, + 0x1c, 0x55, 0xa, 0xfc, 0x3b, 0x1f, 0x89, 0x78, 0xbc, 0x4c, + 0xeb, 0x77, 0x7f, 0x87, 0x4f, 0xc0, 0xf9, 0x1a, 0xd5, 0x3d, + 0xad, 0x47, 0x3e, 0xe1, 0x45, 0x14, 0x57, 0x1, 0x89, 0xdd, + 0x7c, 0x28, 0xf8, 0x72, 0x9f, 0x10, 0xf5, 0x4b, 0xc8, 0xae, + 0x66, 0x96, 0xda, 0xce, 0xda, 0x20, 0xcd, 0x24, 0x20, 0x67, + 0x79, 0x3f, 0x28, 0xe4, 0x63, 0xb3, 0x7e, 0x55, 0xe8, 0xf3, + 0x7e, 0xcc, 0x96, 0x4, 0x1f, 0x27, 0x5c, 0xb9, 0x43, 0xdb, + 0x7c, 0x2a, 0xdf, 0xc8, 0x8a, 0xde, 0xf8, 0x1, 0xe1, 0xd6, + 0xd1, 0xbc, 0xe, 0x2e, 0xe5, 0x5d, 0xb3, 0x6a, 0x32, 0x99, + 0xf9, 0xeb, 0xb0, 0x70, 0xbf, 0xc8, 0x9f, 0xc6, 0xbd, 0x32, + 0xbf, 0x50, 0xcb, 0x32, 0x5c, 0x2c, 0xf0, 0x70, 0x96, 0x22, + 0x9d, 0xe4, 0xf5, 0xeb, 0xd7, 0x6f, 0xc0, 0xfa, 0x1c, 0x3e, + 0x12, 0x9b, 0xa4, 0x9c, 0xd6, 0xac, 0xf9, 0xa7, 0xc5, 0x1f, + 0xb3, 0xd6, 0xb7, 0xa2, 0x59, 0xc9, 0x75, 0xa7, 0xdc, 0xc7, + 0xab, 0xa4, 0x63, 0x2d, 0x14, 0x68, 0x52, 0x5c, 0x7b, 0x2e, + 0x48, 0x3f, 0x9e, 0x6b, 0xca, 0xd9, 0x4a, 0xb1, 0x56, 0x4, + 0x10, 0x70, 0x41, 0xea, 0x2b, 0xee, 0xaa, 0xf9, 0x77, 0xe3, + 0xd7, 0x85, 0xe2, 0xf0, 0xff, 00, 0x8d, 0x3e, 0xd3, 0x6c, + 0x81, 0x20, 0xd4, 0x63, 0xfb, 0x41, 0x51, 0xd0, 0x49, 0x92, + 0x1f, 0x1f, 0xa1, 0xfc, 0x6b, 0xc5, 0xcf, 0x32, 0x5a, 0x58, + 0x3a, 0x4b, 0x11, 0x87, 0xd1, 0x6c, 0xd6, 0xff, 00, 0x33, + 0x93, 0x17, 0x84, 0x8d, 0x28, 0xf3, 0xc3, 0x63, 0xcd, 0xa8, + 0xa2, 0x8a, 0xf8, 0x93, 0xc9, 0xa, 0xf5, 0xdf, 0xd9, 0xbf, + 0x5b, 0x7b, 0x5f, 0x14, 0xde, 0xe9, 0x85, 0xbf, 0x73, 0x77, + 0x6f, 0xe6, 0x5, 0xff, 00, 0x6d, 0xf, 0x1f, 0xa1, 0x6a, + 0xf2, 0x2a, 0xed, 0xbe, 0xc, 0x5d, 0x7d, 0x93, 0xe2, 0x5e, + 0x8a, 0x73, 0x80, 0xee, 0xf1, 0x9f, 0xc5, 0x18, 0xf, 0xd7, + 0x15, 0xea, 0x65, 0x75, 0x5d, 0x1c, 0x6d, 0x29, 0x2e, 0xe9, + 0x7d, 0xfa, 0x1d, 0x18, 0x79, 0x72, 0xd6, 0x8b, 0xf3, 0x3e, + 0xb5, 0xa2, 0x8a, 0x2b, 0xf6, 0xc3, 0xeb, 0x42, 0x8a, 0x28, + 0xa0, 0x2, 0x8a, 0x28, 0xa0, 0x2, 0xbe, 0x61, 0xfd, 0xa0, + 0xb5, 0xef, 0xed, 0x5f, 0x1d, 0x1b, 0x35, 0x6c, 0xc5, 0xa7, + 0xc2, 0xb1, 0x63, 0xfd, 0xb6, 0xf9, 0x9b, 0xf9, 0xa8, 0xfc, + 0x2b, 0xe9, 0xa9, 0xe7, 0x4b, 0x68, 0x24, 0x9a, 0x43, 0xb6, + 0x38, 0xd4, 0xbb, 0x13, 0xd8, 0x1, 0x93, 0x5f, 0x14, 0xf8, + 0x8f, 0x57, 0x6d, 0x7b, 0x5e, 0xd4, 0x35, 0x17, 0xce, 0x6e, + 0xa7, 0x79, 0x70, 0x7b, 0x2, 0x78, 0x1f, 0x96, 0x2b, 0xe3, + 0x38, 0x9f, 0x11, 0xc9, 0x86, 0x85, 0x15, 0xf6, 0x9f, 0xe0, + 0xbf, 0xe0, 0xd8, 0xf2, 0x73, 0x19, 0xda, 0xa, 0x1d, 0xcc, + 0xea, 0x28, 0xa2, 0xbf, 0x32, 0x3c, 00, 0xae, 0x8f, 0xe1, + 0xd6, 0x8c, 0x75, 0xff, 00, 0x1b, 0xe8, 0xd6, 0x7b, 0x77, + 0x23, 0x5c, 0x2b, 0xb8, 0xc7, 0xf0, 0x2f, 0xcc, 0xdf, 0xa0, + 0x35, 0xce, 0x57, 0xb0, 0x7e, 0xcd, 0x9a, 0x3f, 0xda, 0x7c, + 0x49, 0xa9, 0x6a, 0x2c, 0x32, 0xb6, 0xb6, 0xe2, 0x35, 0x3f, + 0xed, 0x39, 0xff, 00, 0x5, 0x3f, 0x9d, 0x7a, 0x59, 0x6d, + 0xf, 0xac, 0xe3, 0x29, 0xd2, 0xee, 0xff, 00, 0x5, 0xab, + 0x37, 0xa1, 0xf, 0x69, 0x56, 0x31, 0x3e, 0x8b, 0xa2, 0x8a, + 0x2b, 0xf6, 0xe3, 0xeb, 0x82, 0x8a, 0x28, 0xa0, 0x8, 0xee, + 0x26, 0x5b, 0x6b, 0x79, 0x65, 0x73, 0x84, 0x8d, 0x4b, 0x13, + 0xec, 0x6, 0x6b, 0xe2, 0x2d, 0x52, 0xf9, 0xf5, 0x3d, 0x4e, + 0xee, 0xf2, 0x43, 0x97, 0xb8, 0x95, 0xe5, 0x6f, 0xab, 0x12, + 0x7f, 0xad, 0x7d, 0x89, 0xe3, 0xa9, 0xda, 0xd7, 0xc1, 0x5a, + 0xf4, 0xa8, 0x70, 0xc9, 0x63, 0x31, 0x7, 0xdf, 0x61, 0xaf, + 0x8c, 0x6b, 0xf3, 0xce, 0x2a, 0xa8, 0xf9, 0xa9, 0x53, 0xf5, + 0x7f, 0x91, 0xe1, 0xe6, 0x52, 0xd6, 0x31, 0xa, 0x28, 0xa2, + 0xbe, 0x8, 0xf1, 0x82, 0xba, 0xbf, 0x85, 0x9a, 0x60, 0xd5, + 0xbe, 0x20, 0xe8, 0x70, 0x30, 0xca, 0x2d, 0xc0, 0x95, 0xbe, + 0x88, 0xb, 0x7f, 0xec, 0xb5, 0xca, 0x57, 0xa2, 0x7c, 0x4, + 0x50, 0x7e, 0x24, 0xd9, 0x13, 0xd4, 0x45, 0x29, 0x1f, 0xf7, + 0xc1, 0xaf, 0x43, 0x2f, 0x82, 0xa9, 0x8b, 0xa5, 0x17, 0xd6, + 0x4b, 0xf3, 0x36, 0xa2, 0xb9, 0xaa, 0xc5, 0x79, 0xa3, 0xea, + 0x7a, 0x28, 0xa2, 0xbf, 0x70, 0x3e, 0xbc, 0x28, 0xa2, 0x8a, + 00, 0x28, 0xa2, 0x8a, 00, 0x2b, 0x95, 0xf8, 0xa3, 0xaa, + 0xd, 0x1f, 0xe1, 0xfe, 0xb9, 0x71, 0x9c, 0x31, 0xb7, 0x68, + 0x97, 0xfd, 0xe7, 0xf9, 0x47, 0xf3, 0xae, 0xaa, 0xbc, 0x67, + 0xf6, 0x92, 0xf1, 0x1a, 0xdb, 0x68, 0xb6, 0x1a, 0x2a, 0x37, + 0xef, 0x6e, 0xa4, 0xf3, 0xe4, 0x1e, 0x88, 0xbd, 0x3f, 0x36, + 0x3f, 0xf8, 0xed, 0x79, 0x99, 0x9d, 0x75, 0x86, 0xc1, 0xd4, + 0xa8, 0xfb, 0x69, 0xea, 0xf4, 0x47, 0x3e, 0x22, 0x7e, 0xce, + 0x94, 0xa4, 0x7c, 0xf5, 0x45, 0x14, 0x57, 0xe2, 0x47, 0xc9, + 0x5, 0x14, 0x51, 0x40, 0x1d, 0x6f, 0xc2, 0x7b, 0x3f, 0xb7, + 0x7c, 0x45, 0xd0, 0xa3, 0xc6, 0x42, 0xdc, 0x9, 0xf, 0xfc, + 0x4, 0x16, 0xfe, 0x95, 0xf5, 0xf5, 0x7c, 0xe3, 0xfb, 0x37, + 0xe8, 0x7f, 0x6c, 0xf1, 0x45, 0xee, 0xa6, 0xcb, 0x94, 0xb2, + 0x83, 0x62, 0x9f, 0xf6, 0xdc, 0xe3, 0xf9, 0x6, 0xfc, 0xeb, + 0xe8, 0xea, 0xfd, 0x4f, 0x86, 0x68, 0xba, 0x78, 0x27, 0x37, + 0xf6, 0x9b, 0x7f, 0x76, 0x87, 0xd1, 0x65, 0xf1, 0xb5, 0x2b, + 0xf7, 0x61, 0x5e, 0x6b, 0xf1, 0x7f, 0xe1, 0x58, 0xf1, 0xbd, + 0xa2, 0xdf, 0xd8, 0x5, 0x8f, 0x58, 0xb7, 0x42, 00, 0x3c, + 0x9, 0xd7, 0xfb, 0xa4, 0xfa, 0xfa, 0x1f, 0xc3, 0xe9, 0xe9, + 0x54, 0x57, 0xd1, 0xe2, 0x70, 0xd4, 0xf1, 0x74, 0x9d, 0x1a, + 0xaa, 0xe9, 0x9d, 0xf5, 0x29, 0xc6, 0xac, 0x5c, 0x65, 0xb1, + 0xf0, 0xdd, 0xed, 0x8d, 0xc6, 0x9b, 0x75, 0x25, 0xb5, 0xd4, + 0x32, 0x5b, 0xdc, 0x46, 0x76, 0xbc, 0x52, 0x2e, 0xd6, 0x53, + 0xee, 0x2a, 0xa, 0xfb, 0x17, 0xc6, 0x3f, 0xf, 0x34, 0x4f, + 0x1c, 0x42, 0xa3, 0x52, 0xb6, 0xfd, 0xfa, 0xc, 0x25, 0xcc, + 0x47, 0x6c, 0x8b, 0xf8, 0xf7, 0x1e, 0xc7, 0x22, 0xbc, 0x3f, + 0xc5, 0x3f, 0xb3, 0xde, 0xbb, 0xa4, 0x34, 0x92, 0xe9, 0x4f, + 0x1e, 0xaf, 0x6a, 0x39, 0xa, 0xe, 0xc9, 0x80, 0xff, 00, + 0x74, 0xf0, 0x7f, 0x3, 0xf8, 0x57, 0xe6, 0x38, 0xee, 0x1f, + 0xc5, 0x61, 0x5b, 0x95, 0x25, 0xcf, 0x1f, 0x2d, 0xfe, 0x6b, + 0xfc, 0x8f, 0x9e, 0xad, 0x82, 0xa9, 0x4f, 0x58, 0xea, 0x8f, + 0x2a, 0xa2, 0xac, 0x5f, 0x69, 0xf7, 0x5a, 0x65, 0xc3, 0x41, + 0x79, 0x6f, 0x2d, 0xac, 0xcb, 0xd6, 0x39, 0x90, 0xab, 0xf, + 0xc0, 0xd5, 0x7a, 0xf9, 0x86, 0x9c, 0x5d, 0x99, 0xe7, 0xec, + 0x14, 0x51, 0x45, 0x20, 0xa, 0x28, 0xa2, 0x80, 0x25, 0xb5, + 0xbb, 0x9e, 0xc6, 0x75, 0x9a, 0xda, 0x69, 0x2d, 0xe6, 0x5e, + 0x56, 0x48, 0x9c, 0xab, 0xf, 0xa1, 0x15, 0xe9, 0x5e, 0x11, + 0xf8, 0xfb, 0xaf, 0x68, 0x6e, 0x91, 0x6a, 0x64, 0x6b, 0x36, + 0x9d, 0xf, 0x98, 0x42, 0xca, 0xbf, 0x46, 0xc7, 0x3f, 0x8e, + 0x7e, 0xb5, 0xe6, 0x14, 0x57, 0x66, 0x1b, 0x19, 0x5f, 0x9, + 0x2e, 0x6a, 0x13, 0x6b, 0xf2, 0xfb, 0xb6, 0x35, 0xa7, 0x56, + 0x74, 0x9d, 0xe0, 0xec, 0x7d, 0x8f, 0xe0, 0xdf, 0x1f, 0xe8, + 0xfe, 0x38, 0xb4, 0xf3, 0x74, 0xeb, 0x8f, 0xdf, 0x28, 0xfd, + 0xe5, 0xb4, 0xbf, 0x2c, 0xa9, 0xf5, 0x1d, 0xc7, 0xb8, 0xe2, + 0xba, 0x4a, 0xf8, 0x7b, 0x4b, 0xd5, 0x2e, 0xf4, 0x5d, 0x42, + 0xb, 0xdb, 0x19, 0xda, 0xde, 0xea, 0x16, 0xdc, 0x92, 0x27, + 0x50, 0x7f, 0xcf, 0x6a, 0xfa, 0xa3, 0xe1, 0x4f, 0xc4, 0x88, + 0xbc, 0x7d, 0xa3, 0x91, 0x36, 0x23, 0xd5, 0x6d, 0x80, 0x17, + 0x31, 0x81, 0x85, 0x6c, 0xf4, 0x75, 0xf6, 0x38, 0xfc, 0xf, + 0xe1, 0x5f, 0xa4, 0xe5, 0x19, 0xdc, 0x71, 0xcf, 0xd8, 0xd6, + 0x56, 0x9f, 0xe0, 0xff, 00, 0xe0, 0xf9, 0x1e, 0xf6, 0x17, + 0x16, 0xab, 0x7b, 0x93, 0xd1, 0xfe, 0x67, 0x73, 0x45, 0x14, + 0x57, 0xd5, 0x9e, 0x90, 0x51, 0x45, 0x14, 00, 0x57, 0xcc, + 0xff, 00, 0xb4, 0xf5, 0xdf, 0xef, 0xd9, 0x33, 0xd1, 0x71, + 0x5f, 0x4c, 0x57, 0xc9, 0xbf, 0xb4, 0xbd, 0xd1, 0x7d, 0x52, + 0x55, 0xcf, 0xf1, 0x1a, 0xf9, 0xdc, 0xf6, 0x56, 0xc1, 0xb5, + 0xdc, 0xf1, 0xb3, 0x69, 0x72, 0xe1, 0x64, 0x7c, 0xdf, 0xac, + 0x36, 0xdb, 0x77, 0x3e, 0xd5, 0x4f, 0xf6, 0x27, 0xb6, 0xfe, + 0xd1, 0xfd, 0xb2, 0xf4, 0xc7, 0x20, 0x37, 0xd9, 0x34, 0xab, + 0xe9, 0xf9, 0xed, 0x95, 0x54, 0xcf, 0xfe, 0x3f, 0x53, 0x78, + 0x81, 0xf6, 0xd9, 0xc8, 0x7f, 0xd9, 0x35, 0x77, 0xfe, 0x9, + 0xe7, 0x69, 0xf6, 0xef, 0xda, 0xbb, 0x5c, 0xb9, 0xea, 0x2d, + 0x3c, 0x3b, 0x3f, 0xe6, 0xd3, 0xc2, 0x3f, 0xa1, 0xaf, 0x27, + 0x23, 0x8e, 0xb7, 0x3f, 0x34, 0xc8, 0x23, 0xcf, 0x9b, 0xa7, + 0xd9, 0x33, 0xf4, 0xee, 0x8a, 0x28, 0xaf, 0xb8, 0x3f, 0x64, + 0xa, 0x28, 0xa2, 0x80, 0x23, 0xb9, 0xb8, 0x8e, 0xd2, 0xde, + 0x59, 0xe5, 0x60, 0x91, 0x44, 0xa5, 0xdd, 0x8f, 0x40, 00, + 0xc9, 0x35, 0xf9, 0xe1, 0xe3, 0xcf, 0x13, 0xc9, 0xe3, 0x3f, + 0x19, 0xea, 0xfa, 0xcb, 0x9c, 0x8b, 0xbb, 0x86, 0x68, 0xfd, + 0xa3, 0x1c, 0x20, 0xff, 00, 0xbe, 0x40, 0xaf, 0xaf, 0x3f, + 0x69, 0x7f, 0x18, 0x9f, 0xa, 0x7c, 0x33, 0xbb, 0x82, 0x17, + 0xdb, 0x77, 0xaa, 0xb7, 0xd8, 0xa3, 0xf5, 0xda, 0xc0, 0x97, + 0x3f, 0xf7, 0xc8, 0x3f, 0x98, 0xaf, 0x8d, 0x7c, 0x3d, 0xa5, + 0x3e, 0xb3, 0xac, 0xd9, 0xd9, 0x46, 0x9, 0x69, 0xa4, 0x54, + 00, 0x7b, 0x9a, 0xf8, 0x7e, 0x20, 0xc4, 0x39, 0x4e, 0x18, + 0x78, 0xf4, 0xd7, 0xe6, 0xf6, 0x3e, 0xb, 0x88, 0x6b, 0xba, + 0xb5, 0xa9, 0xe1, 0x21, 0xd3, 0x57, 0xea, 0xf6, 0xfe, 0xbc, + 0xcf, 0xab, 0x3f, 0x65, 0x6f, 0x8, 0x7f, 0x65, 0x78, 0x5a, + 0x6d, 0x5e, 0x58, 0xf6, 0xcd, 0x76, 0xc5, 0x54, 0x91, 0xfc, + 0x22, 0xbd, 0xd6, 0xb2, 0xbc, 0x2d, 0xa2, 0xc7, 0xe1, 0xef, + 0xf, 0xd8, 0xe9, 0xf1, 0x28, 0x55, 0x82, 0x20, 0xbc, 0xe, + 0xfd, 0xeb, 0x56, 0xbe, 0xab, 0x5, 0x87, 0x58, 0x5c, 0x3c, + 0x29, 0x76, 0x5f, 0x8f, 0x53, 0xec, 0xb0, 0x94, 0x16, 0x1e, + 0x84, 0x69, 0x2e, 0x88, 0x28, 0xa2, 0x8a, 0xee, 0x3a, 0xc2, + 0x8a, 0x28, 0xa0, 0xf, 0xcb, 0xbf, 0xf8, 0x2d, 0x1f, 0xc6, + 0x4b, 0xfb, 0x3b, 0x6f, 0x5, 0xfc, 0x31, 0xb3, 0x73, 0x15, + 0x8d, 0xea, 0x36, 0xb5, 0xa8, 0x60, 0x90, 0x65, 0xda, 0xc6, + 0x38, 0x50, 0xf6, 0x20, 0x1d, 0xed, 0xf5, 0xb, 0xe9, 0x5f, + 0x9b, 0x5f, 0xb, 0x34, 0xfd, 0x7b, 0xc5, 0x3e, 0x3e, 0xf0, + 0xe7, 0x86, 0xb4, 0x3d, 0x52, 0xf3, 0x4f, 0xbc, 0xd5, 0xf5, + 0x8, 0x2c, 0x22, 0x92, 0xda, 0x77, 0x8f, 0x61, 0x92, 0x40, + 0x9b, 0xbe, 0x52, 0x3a, 0x67, 0x3f, 0x85, 0x7e, 0x9a, 0xff, + 00, 0xc1, 0x49, 0xec, 0xfe, 0xd, 0xfe, 0xd2, 0xba, 0x1d, + 0xa6, 0xa7, 0xe1, 0xbf, 0x8a, 0xfe, 0x12, 0xb7, 0xf8, 0x87, + 0xe1, 0x7f, 0x36, 0xd9, 0x74, 0xfb, 0xbd, 0x52, 0x28, 0x56, + 0xee, 0x2d, 0xdf, 0x3c, 0x5, 0x98, 0x80, 0xae, 0xac, 0x9, + 0x5c, 0x9c, 0x64, 0xb0, 0x38, 0xce, 0x47, 0xe5, 0xa7, 0x85, + 0xfc, 0x47, 0xa8, 0x78, 0xb, 0xc5, 0xfa, 0x56, 0xb9, 0xa6, + 0xca, 0xb1, 0xea, 0x9a, 0x3d, 0xec, 0x77, 0x70, 0x48, 0xac, + 0x1d, 0x44, 0x91, 0x38, 0x65, 0xe4, 0x1c, 0x30, 0xca, 0xf6, + 0x38, 0x22, 0xa9, 0x10, 0xf7, 0x3f, 0xa6, 0x8f, 0x9, 0x78, + 0x6a, 0xd7, 0xc1, 0xde, 0x17, 0xd2, 0xb4, 0x2b, 0x22, 0xe6, + 0xd7, 0x4e, 0xb6, 0x8e, 0xd6, 0x36, 0x91, 0x8b, 0x3b, 0x4, + 0x50, 0x37, 0x31, 0x3c, 0x92, 0x71, 0x92, 0x4f, 0x52, 0x6b, + 0x5e, 0xbe, 0x30, 0xf8, 0x1b, 0xff, 00, 0x5, 0x54, 0xf8, + 0x37, 0xf1, 0x2b, 0x43, 0xb4, 0x5f, 0x15, 0xea, 0xa7, 0xc0, + 0x3e, 0x22, 0xd8, 0x5, 0xc5, 0xa6, 0xa6, 0x8c, 0xd6, 0xc5, + 0xf1, 0xc9, 0x8e, 0x75, 0x5, 0x76, 0xfa, 0x6e, 0xda, 0x7d, + 0xab, 0xd9, 0xad, 0x7f, 0x6d, 0x3f, 0x80, 0xf7, 0x87, 0x11, + 0xfc, 0x5b, 0xf0, 0x88, 0x3f, 0xf4, 0xd3, 0x55, 0x89, 0x3f, + 0xf4, 0x22, 0x2a, 0x4b, 0x3d, 0xa6, 0x8a, 0xf3, 0x1d, 0x3f, + 0xf6, 0xa0, 0xf8, 0x3d, 0xab, 0x48, 0x12, 0xcb, 0xe2, 0x97, + 0x83, 0xee, 0x9c, 0xf4, 0x58, 0xb5, 0xcb, 0x66, 0x3f, 0xfa, + 0x1d, 0x77, 0x7a, 0xf, 0x89, 0xb4, 0x8f, 0x14, 0xda, 0x35, + 0xd6, 0x8d, 0xaa, 0xd9, 0x6a, 0xd6, 0xaa, 0xdb, 0xc, 0xd6, + 0x37, 0x9, 0x32, 0x6, 0xc6, 0x70, 0x4a, 0x92, 0x33, 0x82, + 0x3f, 0x3a, 00, 0xd3, 0xaf, 0x36, 0xf8, 0xf9, 0xe2, 0x1f, + 0xec, 0x6f, 0x2, 0x4b, 0x6b, 0x1c, 0x9b, 0x27, 0xd4, 0x24, + 0x10, 00, 0xf, 0x3b, 0x3a, 0xbf, 0xe8, 0x31, 0xff, 00, + 0x2, 0xaf, 0x49, 0xaf, 0x98, 0xff, 00, 0x68, 0x3f, 0x10, + 0x7f, 0x6a, 0xf8, 0xdf, 0xec, 0x28, 0xfb, 0xa0, 0xd3, 0xe2, + 0x11, 0xe0, 0x74, 0xde, 0xdf, 0x33, 0x7f, 0xec, 0xa3, 0xf0, + 0xaf, 0x3, 0x3c, 0xc5, 0x7d, 0x57, 0x3, 0x36, 0xb7, 0x96, + 0x8b, 0xe7, 0xff, 00, 0x2, 0xe7, 0x16, 0x32, 0xa7, 0xb3, + 0xa2, 0xfc, 0xf4, 0x3c, 0xc2, 0x8a, 0x28, 0xaf, 0xc7, 0x8f, + 0x97, 0xa, 0xb7, 0xa4, 0xe9, 0xb3, 0x6b, 0x3a, 0xa5, 0xa5, + 0x8c, 00, 0xb4, 0xd7, 0x32, 0xac, 0x4a, 00, 0xee, 0x4e, + 0x2a, 0xa5, 0x7a, 0x8f, 0xec, 0xf3, 0xa0, 0x1d, 0x4f, 0xc6, + 0xad, 0x7e, 0xe9, 0x98, 0x74, 0xf8, 0x4b, 0xee, 0x23, 0x8f, + 0x31, 0xbe, 0x55, 0x1f, 0x96, 0xe3, 0xf8, 0x57, 0x6e, 0xb, + 0xe, 0xf1, 0x58, 0x98, 0x51, 0x5d, 0x5f, 0xe1, 0xd7, 0xf0, + 0x35, 0xa5, 0xf, 0x69, 0x35, 0xe, 0xe7, 0xd2, 0x3a, 0x75, + 0x8c, 0x7a, 0x66, 0x9f, 0x6d, 0x69, 0x8, 0xdb, 0x14, 0x11, + 0xac, 0x48, 0x3d, 0x80, 0xc0, 0xfe, 0x55, 0x66, 0x8a, 0x2b, + 0xf7, 0x24, 0x94, 0x55, 0x91, 0xf6, 0x9, 0x5b, 0x40, 0xaf, + 0x11, 0xfd, 0xa6, 0xec, 0x43, 0x58, 0x68, 0x57, 0x9d, 0xd2, + 0x59, 0x62, 0x3f, 0xf0, 0x20, 0xf, 0xfe, 0xcb, 0x5e, 0xdd, + 0x5e, 0x4f, 0xfb, 0x48, 0xc3, 0xe6, 0x78, 0x26, 0xce, 0x4c, + 0x7f, 0xab, 0xbe, 0x43, 0xf9, 0xa3, 0x8a, 0xf1, 0xb3, 0xa8, + 0x73, 0xe5, 0xf5, 0x57, 0x95, 0xfe, 0xe7, 0x73, 0x93, 0x16, + 0xaf, 0x42, 0x47, 0xcd, 0x94, 0x51, 0x45, 0x7e, 0x32, 0x7c, + 0xa8, 0x56, 0xc7, 0x83, 0x6f, 0x8e, 0x9b, 0xe2, 0xdd, 0x1a, + 0xe8, 0x1c, 0x79, 0x57, 0x71, 0x31, 0x3e, 0xdb, 0x86, 0x7f, + 0x4a, 0xc7, 0xa7, 0x47, 0x21, 0x86, 0x45, 0x91, 0x7e, 0xf2, + 0x90, 0xc3, 0xf0, 0xad, 0x29, 0xcf, 0xd9, 0xce, 0x33, 0x5d, + 0x1d, 0xc7, 0x17, 0x66, 0x99, 0xf7, 0x4d, 0x15, 0x5b, 0x4c, + 0xb9, 0x17, 0xba, 0x75, 0xad, 0xc0, 0xe9, 0x2c, 0x49, 0x20, + 0xfc, 0x40, 0x35, 0x66, 0xbf, 0x7b, 0x4e, 0xe9, 0x34, 0x7d, + 0x9a, 0xd4, 0x28, 0xa2, 0x8a, 0x63, 0xa, 0x28, 0xa2, 0x80, + 0x38, 0xbf, 0x8c, 0x3a, 0xc8, 0xd1, 0x3e, 0x1e, 0x6a, 0xd2, + 0x6, 0xdb, 0x24, 0xf1, 0xfd, 0x99, 0x30, 0x79, 0x25, 0xce, + 0xe, 0x3f, 0xc, 0x9f, 0xc2, 0xbe, 0x48, 0xaf, 0x75, 0xfd, + 0xa6, 0x35, 0xa3, 0x9d, 0x1f, 0x49, 0x46, 0xf9, 0x7e, 0x7b, + 0x99, 0x14, 0x7f, 0xdf, 0x2b, 0xff, 00, 0xb3, 0x57, 0x85, + 0x57, 0xe5, 0x1c, 0x47, 0x88, 0xf6, 0xd8, 0xde, 0x45, 0xb4, + 0x12, 0x5f, 0xaf, 0xea, 0x7c, 0xde, 0x3e, 0x7c, 0xd5, 0xad, + 0xd8, 0x28, 0xa2, 0x8a, 0xf9, 0x63, 0xce, 0xa, 0xfa, 0x7b, + 0xf6, 0x7d, 0xd0, 0xff, 00, 0xb2, 0xfc, 0x8, 0x2e, 0xd9, + 0x71, 0x2d, 0xfc, 0xcd, 0x2e, 0x48, 0xe7, 0x68, 0xf9, 0x57, + 0xf9, 0x13, 0xf8, 0xd7, 0xcc, 0x71, 0x44, 0xd3, 0x4a, 0x91, + 0xa0, 0x2c, 0xee, 0x42, 0xa8, 0x1d, 0xc9, 0xe9, 0x5f, 0x6b, + 0x78, 0x67, 0x49, 0x5d, 0xb, 0xc3, 0xda, 0x6e, 0x9c, 0xbf, + 0xf2, 0xed, 0x6e, 0x91, 0x1f, 0x72, 0x14, 0x64, 0xfe, 0x75, + 0xf6, 0x9c, 0x2f, 0x43, 0x9f, 0x11, 0x3a, 0xcf, 0xec, 0xaf, + 0xc5, 0xff, 00, 0xc0, 0x3d, 0x5c, 0xbe, 0x17, 0xa8, 0xe5, + 0xd8, 0xd3, 0xa2, 0x8a, 0x2b, 0xf4, 0xc3, 0xe8, 0x2, 0x8a, + 0x28, 0xa0, 0xc, 0x3f, 0x1c, 0xdb, 0xb5, 0xd7, 0x82, 0xf5, + 0xd8, 0x50, 0x65, 0xde, 0xc6, 0x65, 00, 0x7a, 0xec, 0x35, + 0xf1, 0x87, 0x5a, 0xfb, 0xa2, 0x58, 0x96, 0x78, 0x9e, 0x37, + 0x19, 0x47, 0x52, 0xa4, 0x1e, 0xe0, 0xd7, 0xc4, 0xfe, 0x21, + 0xd2, 0x5f, 0x42, 0xd7, 0x75, 0xd, 0x3a, 0x40, 0x77, 0x5b, + 0x4e, 0xf1, 0x73, 0xdc, 0x3, 0xc1, 0xfc, 0x46, 0xd, 0x7e, + 0x7d, 0xc5, 0x54, 0x9d, 0xe9, 0x55, 0xe9, 0xaa, 0xfd, 0x4f, + 0x13, 0x32, 0x8e, 0xb1, 0x91, 0x9f, 0x45, 0x14, 0x57, 0xc0, + 0x1e, 0x28, 0x57, 0x5f, 0xf0, 0x97, 0x55, 0x5d, 0x1f, 0xe2, + 0x1e, 0x8b, 0x33, 0x9c, 0x23, 0xcd, 0xe4, 0x31, 0x3f, 0xed, + 0x82, 0xa3, 0xf5, 0x22, 0xb9, 0xa, 0x74, 0x52, 0xbc, 0x32, + 0xa4, 0x91, 0xb1, 0x57, 0x42, 0x19, 0x58, 0x75, 0x4, 0x74, + 0x35, 0xbd, 0xa, 0xae, 0x85, 0x58, 0x55, 0x5f, 0x65, 0xa7, + 0xf7, 0x15, 0x9, 0x72, 0x49, 0x4b, 0xb1, 0xf7, 0x4d, 0x15, + 0xcb, 0x7c, 0x38, 0xf1, 0xb4, 0x1e, 0x39, 0xf0, 0xcd, 0xbd, + 0xea, 0xb2, 0xad, 0xda, 0xf, 0x2e, 0xe6, 0x10, 0x79, 0x47, + 0x1f, 0xd0, 0xf5, 0x1f, 0x5a, 0xea, 0x6b, 0xf7, 0x3a, 0x35, + 0x61, 0x5e, 0x9c, 0x6a, 0xd3, 0x77, 0x4f, 0x53, 0xec, 0x63, + 0x25, 0x38, 0xa9, 0x47, 0x66, 0x14, 0x51, 0x45, 0x6c, 0x50, + 0x51, 0x45, 0x23, 0x30, 0x45, 0x2c, 0xc4, 0x2a, 0x81, 0x92, + 0x4f, 0x41, 0x40, 0x11, 0xdd, 0x5d, 0x45, 0x63, 0x6d, 0x2d, + 0xc4, 0xf2, 0x2c, 0x50, 0x44, 0x85, 0xdd, 0xd8, 0xe0, 0x2a, + 0x81, 0x92, 0x4d, 0x7c, 0x79, 0xf1, 0x7, 0xc5, 0xaf, 0xe3, + 0x5f, 0x15, 0x5e, 0x6a, 0x64, 0x15, 0x85, 0x8f, 0x97, 0x2, + 0x1f, 0xe1, 0x8d, 0x78, 0x5f, 0xcf, 0xaf, 0xd4, 0x9a, 0xef, + 0xfe, 0x36, 0x7c, 0x58, 0x4d, 0x74, 0xbe, 0x83, 0xa3, 0xcd, + 0xba, 0xc1, 0x1b, 0xfd, 0x22, 0xe5, 0x1b, 0x89, 0x88, 0xfe, + 0x11, 0xfe, 0xc8, 0xf5, 0xee, 0x7d, 0xba, 0xf8, 0xed, 0x7e, + 0x63, 0xc4, 0x39, 0x9c, 0x71, 0x33, 0x58, 0x6a, 0x2e, 0xf1, + 0x8e, 0xef, 0xbb, 0xff, 00, 0x80, 0x7c, 0xf6, 0x3b, 0x10, + 0xaa, 0x3f, 0x67, 0x1d, 0x90, 0x51, 0x45, 0x15, 0xf1, 0xa7, + 0x96, 0x14, 0x51, 0x5d, 0x67, 0xc3, 0x2f, 0x6, 0x3f, 0x8d, + 0xfc, 0x57, 0x6d, 0x66, 0xca, 0xdf, 0x63, 0x8f, 0xf7, 0xd7, + 0x2e, 0x7, 0x44, 0x1d, 0xbf, 0x13, 0x81, 0xf8, 0xfb, 0x56, + 0xd4, 0x68, 0xcf, 0x11, 0x52, 0x34, 0xa9, 0xad, 0x5b, 0xb1, + 0x51, 0x8b, 0x9c, 0x94, 0x56, 0xec, 0xf7, 0xbf, 0x81, 0x7e, + 0x17, 0x6f, 0xe, 0xf8, 0x1e, 0x19, 0xa6, 0x5d, 0xb7, 0x3a, + 0x83, 0x7d, 0xa9, 0x81, 0x1c, 0x85, 0x20, 0x4, 0x1f, 0x90, + 0xcf, 0xe3, 0x5e, 0x89, 0x4d, 0x8e, 0x35, 0x8a, 0x35, 0x44, + 0x50, 0xa8, 0xa0, 0x28, 0x51, 0xd0, 0xa, 0x75, 0x7e, 0xe3, + 0x86, 0xa1, 0x1c, 0x2d, 0x18, 0x51, 0x8e, 0xd1, 0x56, 0x3e, + 0xbe, 0x9c, 0x15, 0x38, 0x28, 0x2e, 0x81, 0x45, 0x14, 0x57, + 0x49, 0xa0, 0x51, 0x45, 0x14, 0x1, 0x53, 0x51, 0xd2, 0x2c, + 0x75, 0x78, 0x4c, 0x37, 0xd6, 0x70, 0x5e, 0x44, 0x7a, 0xa4, + 0xf1, 0x87, 0x1f, 0xad, 0x79, 0xf6, 0xbf, 0xfb, 0x3f, 0xf8, + 0x63, 0x57, 0x2d, 0x25, 0xa2, 0xcf, 0xa5, 0x4a, 0x7f, 0xe7, + 0xdd, 0xf2, 0x99, 0xff, 00, 0x75, 0xb3, 0xfa, 0x11, 0x5e, + 0x99, 0x45, 0x72, 0x57, 0xc1, 0xe1, 0xf1, 0x2a, 0xd5, 0xa0, + 0xa5, 0xfd, 0x77, 0x32, 0x9d, 0x28, 0x54, 0xf8, 0xd5, 0xcf, + 0x9b, 0x3c, 0x45, 0xfb, 0x3a, 0xeb, 0xba, 0x68, 0x69, 0x34, + 0xbb, 0x88, 0x75, 0x58, 0x87, 0x44, 0xff, 00, 0x55, 0x26, + 0x3e, 0x84, 0xe0, 0xfe, 0x75, 0xe6, 0xba, 0xb6, 0x87, 0xa8, + 0x68, 0x37, 0x3f, 0x67, 0xd4, 0x6c, 0xa7, 0xb2, 0x9b, 0xfb, + 0xb3, 0x21, 0x5c, 0xfd, 0x3d, 0x7f, 0xa, 0xfb, 0x76, 0xa9, + 0xea, 0x9a, 0x45, 0x96, 0xb7, 0x68, 0xf6, 0xb7, 0xf6, 0xb1, + 0x5d, 0xdb, 0xb7, 0x58, 0xe5, 0x50, 0xc3, 0xff, 00, 0xad, + 0x5f, 0x2f, 0x8a, 0xe1, 0x8c, 0x3d, 0x4b, 0xbc, 0x3c, 0x9c, + 0x5f, 0x6d, 0xd7, 0xf9, 0x9e, 0x75, 0x4c, 0xbe, 0x12, 0xd6, + 0xe, 0xc7, 0xc4, 0x14, 0x57, 0xa5, 0x7c, 0x60, 0xf8, 0x56, + 0xbe, 0x5, 0xb8, 0x8a, 0xfb, 0x4f, 0x2f, 0x26, 0x93, 0x72, + 0xe5, 0x70, 0xfc, 0x98, 0x5f, 0xa8, 0x5c, 0xf7, 0x4, 0x67, + 0x7, 0xda, 0xbc, 0xd6, 0xbf, 0x3c, 0xc5, 0x61, 0xaa, 0xe0, + 0xea, 0xba, 0x35, 0x55, 0x9a, 0x3c, 0x4a, 0x94, 0xe5, 0x4a, + 0x4e, 0x32, 0xdc, 0x28, 0xa2, 0x8a, 0xe5, 0x33, 0xa, 0xea, + 0x7e, 0x19, 0x78, 0x96, 0x5f, 0xb, 0x78, 0xd3, 0x4d, 0xba, + 0x46, 0x22, 0x19, 0x25, 0x10, 0x4e, 0xb9, 0xe1, 0xa3, 0x62, + 0x1, 0xcf, 0xd3, 0x83, 0xf8, 0x57, 0x2d, 0x4a, 0xac, 0x55, + 0x81, 0x7, 0x4, 0x1c, 0x82, 0x2b, 0x6a, 0x35, 0x65, 0x42, + 0xac, 0x6a, 0xc7, 0x74, 0xee, 0x54, 0x24, 0xe1, 0x25, 0x25, + 0xd0, 0xfb, 0xaa, 0x8a, 0x82, 0xc5, 0xda, 0x5b, 0x2b, 0x77, + 0x6e, 0x19, 0xa3, 0x52, 0x7e, 0xb8, 0xa9, 0xeb, 0xf7, 0x94, + 0xee, 0xae, 0x7d, 0x9a, 0xd4, 0x28, 0xa2, 0x8a, 0x60, 0x21, + 0x38, 0x15, 0xf1, 0xaf, 0xed, 0xf, 0x77, 0xe7, 0x6b, 0xb2, + 0x8f, 0x57, 0x3f, 0xce, 0xbe, 0xc8, 0x94, 0xed, 0x89, 0xcf, + 0xa2, 0x93, 0x5f, 0x10, 0x7c, 0x73, 0xb9, 0xf3, 0xbc, 0x45, + 0x2f, 0xfb, 0xed, 0xfc, 0xeb, 0xe5, 0x78, 0x86, 0x56, 0xc3, + 0xc6, 0x3d, 0xd9, 0xf3, 0xb9, 0xec, 0xb9, 0x70, 0xac, 0xf1, + 0x1f, 0x14, 0xc9, 0xb2, 0xc2, 0x6f, 0xf7, 0x4d, 0x76, 0x9f, + 0xf0, 0x4c, 0x9d, 0x3c, 0x5d, 0x7c, 0x65, 0xf8, 0x91, 0xa9, + 0x11, 0x9f, 0xb3, 0xe9, 0x96, 0xd6, 0xe1, 0xb1, 0xfd, 0xf9, + 0x59, 0x8f, 0xfe, 0x81, 0x5c, 0xf, 0x8d, 0x25, 0xd9, 0xa6, + 0x4d, 0xf4, 0x35, 0xeb, 0xff, 00, 0xf0, 0x4b, 0x2b, 0xd, + 0xf7, 0x3f, 0x15, 0x35, 0x22, 0x3e, 0xfd, 0xcd, 0x95, 0xba, + 0x9f, 0xf7, 0x52, 0x46, 0x3f, 0xfa, 0x10, 0xac, 0x72, 0x38, + 0xe9, 0x73, 0xe1, 0xb8, 0x5e, 0x3c, 0xd9, 0x95, 0x49, 0x76, + 0x47, 0xdf, 0x74, 0x51, 0x45, 0x7d, 0x81, 0xfa, 0xd8, 0x51, + 0x45, 0x66, 0x78, 0x9b, 0x5d, 0x83, 0xc3, 0x1e, 0x1e, 0xd4, + 0x75, 0x6b, 0x93, 0x88, 0x6c, 0xe0, 0x79, 0xd8, 0x67, 0x19, + 0xda, 0x33, 0x8f, 0xa9, 0xe9, 0x4a, 0x4d, 0x45, 0x36, 0xfa, + 0x13, 0x29, 0x28, 0xa7, 0x27, 0xb2, 0x3e, 0x49, 0xfd, 0xaa, + 0xfc, 0x62, 0xda, 0xef, 0xc4, 0x25, 0xd1, 0xe3, 0x72, 0x6d, + 0x34, 0x88, 0x82, 0x15, 0xc8, 0x20, 0xca, 0xe0, 0x33, 0x1f, + 0xcb, 0x68, 0xfc, 0xd, 0x27, 0xec, 0xc1, 0xe1, 0xf, 0xed, + 0xcf, 0x1b, 0xad, 0xfc, 0xd1, 0xee, 0xb7, 0xb2, 0x52, 0xf9, + 0x23, 0x8d, 0xdd, 0xab, 0xc8, 0xf5, 0x6d, 0x52, 0xe3, 0x5e, + 0xd5, 0xef, 0x35, 0x1b, 0xa7, 0x32, 0x5c, 0xdd, 0xcc, 0xd3, + 0x48, 0xc7, 0xd5, 0x8e, 0x6b, 0xec, 0x9f, 0xd9, 0xaf, 0xc2, + 0x3f, 0xf0, 0x8f, 0x78, 0x12, 0x3b, 0xb9, 0x13, 0x6d, 0xc5, + 0xe3, 0x17, 0x39, 0xfe, 0xef, 0x6a, 0xfc, 0xef, 0x8, 0x9e, + 0x63, 0x99, 0x7b, 0x49, 0x6d, 0x7b, 0xfc, 0x96, 0xdf, 0xa1, + 0xf9, 0xd6, 0x5c, 0x9e, 0x63, 0x99, 0x4b, 0x11, 0x2d, 0x93, + 0xbf, 0xf9, 0x1e, 0xbb, 0x45, 0x14, 0x57, 0xe8, 0xa7, 0xe8, + 0xe1, 0x45, 0x79, 0xef, 0xed, 0x1, 0xf1, 0x6a, 0xcb, 0xe0, + 0x67, 0xc1, 0xbf, 0x15, 0xf8, 0xde, 0xf9, 0x94, 0x2e, 0x93, + 0x62, 0xf2, 0xc2, 0x8d, 0xd2, 0x59, 0xc8, 0xdb, 0xa, 0x7f, + 0xc0, 0x9c, 0xa8, 0xfc, 0x6b, 0xf2, 0x66, 0xc3, 0xfe, 0xb, + 0x29, 0xf1, 0xba, 0xdd, 0x97, 0xed, 0x5a, 0x2f, 0x83, 0xae, + 0xd0, 0x75, 0x2, 0xc2, 0xe2, 0x32, 0x7f, 0x11, 0x39, 0xfe, + 0x54, 0xa, 0xf6, 0x3f, 0x6a, 0x2b, 0xc7, 0x7f, 0x6b, 0xaf, + 0x8c, 0xf0, 0x7c, 0x4, 0xfd, 0x9e, 0xbc, 0x63, 0xe2, 0xe7, + 0x90, 0x2d, 0xe4, 0x36, 0x8d, 0x6d, 0x60, 0xb9, 0xc1, 0x7b, + 0xa9, 0x7f, 0x77, 0x10, 0x1f, 0x46, 0x6d, 0xc7, 0xd9, 0x4d, + 0x5f, 0xfd, 0x98, 0xbe, 0x21, 0x78, 0xaf, 0xe2, 0xc7, 0xc1, + 0x1f, 0xc, 0xf8, 0xc3, 0xc6, 0x5a, 0x5d, 0x96, 0x8b, 0xac, + 0x6b, 0x50, 0x7d, 0xb1, 0x6c, 0x6c, 0x43, 0xec, 0x8e, 0x6, + 0x3f, 0xba, 0x27, 0x79, 0x27, 0x2c, 0xb8, 0x6f, 0xf8, 0x10, + 0x15, 0x6f, 0xe3, 0x9f, 0xec, 0xf9, 0xe0, 0xaf, 0xda, 0x37, + 0xc3, 0x16, 0x9e, 0x1e, 0xf1, 0xd5, 0x85, 0xce, 0xa5, 0xa4, + 0xdb, 0x5c, 0x8b, 0xc8, 0xe0, 0xb7, 0xbc, 0x96, 0xdf, 0xf7, + 0xa1, 0x59, 0x43, 0x13, 0x1b, 0x2, 0x70, 0x19, 0xb8, 0x3c, + 0x73, 0x40, 0xcf, 0xe6, 0xc6, 0x59, 0x5e, 0x79, 0x5e, 0x49, + 0x18, 0xbc, 0x8e, 0x4b, 0x33, 0x31, 0xc9, 0x24, 0xf5, 0x26, + 0x9b, 0x5f, 0xba, 0x57, 0x5f, 0xf0, 0x49, 0xbf, 0xd9, 0xda, + 0xe1, 0x8, 0x8f, 0x40, 0xd6, 0x2d, 0x4f, 0xf7, 0xa2, 0xd6, + 0x67, 0x27, 0xff, 00, 0x1e, 0x26, 0xb0, 0x6f, 0x7f, 0xe0, + 0x8f, 0x3f, 0x2, 0x6e, 0x3, 0x79, 0x17, 0x5e, 0x2a, 0xb4, + 0x27, 0xa6, 0xdd, 0x4a, 0x36, 0x3, 0xf3, 0x8a, 0xaa, 0xe4, + 0x72, 0xb3, 0xf1, 0x2e, 0x8a, 0xfd, 0x8a, 0xd4, 0x7f, 0xe0, + 0x8b, 0x1f, 0xc, 0x27, 0x2c, 0x6c, 0xfc, 0x6d, 0xe2, 0xab, + 0x4f, 0x40, 0xff, 00, 0x67, 0x90, 0xf, 0xfc, 0x86, 0xd, + 0x72, 0xf7, 0xdf, 0xf0, 0x44, 0x8d, 0x5, 0xd9, 0xbe, 0xc5, + 0xf1, 0x4b, 0x51, 0x88, 0x76, 0x13, 0xe9, 0x51, 0xbf, 0xf2, + 0x91, 0x68, 0xb8, 0xb9, 0x59, 0xf9, 0x39, 0x8f, 0x6a, 0xfe, + 0x88, 0x7f, 0x62, 0xf, 0x82, 0xb1, 0xfc, 0x7, 0xfd, 0x9a, + 0xbc, 0x1f, 0xe1, 0xd6, 0x89, 0x53, 0x53, 0xb8, 0xb6, 0x1a, + 0x96, 0xa2, 0xc0, 0x60, 0xb5, 0xcc, 0xe0, 0x3b, 0x3, 0xfe, + 0xe8, 0x2a, 0x9f, 0x45, 0x15, 0xf1, 0xe7, 0x83, 0xff, 00, + 0xe0, 0x8b, 0xe9, 0xe1, 0xcf, 0x1e, 0x68, 0x3a, 0xad, 0xff, + 00, 0xc4, 0x68, 0x75, 0x8d, 0x16, 0xc6, 0xfa, 0x1b, 0x9b, + 0xab, 0x6, 0xd2, 0x8c, 0x4f, 0x71, 0x1a, 0x38, 0x63, 0x1e, + 0xef, 0x34, 0x81, 0xbb, 0x18, 0xe9, 0xde, 0xbf, 0x4e, 0x95, + 0x42, 0x28, 0x55, 0x1, 0x54, 0xc, 00, 0x3a, 0x1, 0x49, + 0x94, 0x95, 0x8a, 0x9a, 0xbe, 0xa5, 0x16, 0x8f, 0xa5, 0x5d, + 0xdf, 0x4c, 0x40, 0x8a, 0xda, 0x26, 0x95, 0x89, 0xf4, 0x3, + 0x35, 0xf1, 0x4e, 0xa5, 0xa8, 0x4d, 0xaa, 0xea, 0x17, 0x37, + 0xb7, 0xd, 0xbe, 0x7b, 0x89, 0x1a, 0x57, 0x3e, 0xe4, 0xe4, + 0xd7, 0xd6, 0x7f, 0x14, 0xf4, 0xd, 0x5f, 0xc5, 0x1e, 0x13, + 0x97, 0x4b, 0xd1, 0xcc, 0x2b, 0x2d, 0xc4, 0x8a, 0x25, 0x33, + 0x39, 0x51, 0xe5, 0x8e, 0x48, 0x1c, 0x1e, 0xa4, 0xf, 0xd6, + 0xbc, 0x32, 0x4f, 0xd9, 0xfb, 0xc5, 0xc8, 0x38, 0x82, 0xd2, + 0x4f, 0xf7, 0x6e, 0x7, 0xf5, 0xc5, 0x7c, 0x17, 0x11, 0x51, + 0xc5, 0x62, 0xaa, 0x42, 0x9d, 0x1a, 0x6d, 0xc6, 0x2a, 0xfa, + 0x2e, 0xaf, 0xfc, 0x8f, 0x23, 0x1d, 0x1a, 0x95, 0x24, 0x94, + 0x62, 0xda, 0x47, 0x9b, 0x51, 0x5d, 0xec, 0xdf, 0x3, 0x7c, + 0x67, 0xf, 0xfc, 0xc2, 0x84, 0x9f, 0xee, 0x5c, 0x46, 0x7f, + 0xf6, 0x6a, 0xa5, 0x2f, 0xc2, 0x2f, 0x18, 0x43, 0xf7, 0xb4, + 0x2b, 0x83, 0xfe, 0xe9, 0x56, 0xfe, 0x46, 0xbe, 0x2a, 0x58, + 0xc, 0x5c, 0x77, 0xa5, 0x2f, 0xb9, 0x9e, 0x4b, 0xa3, 0x55, + 0x7d, 0x97, 0xf7, 0x1c, 0x7d, 0x7d, 0x3f, 0xfb, 0x3f, 0xe8, + 0x1f, 0xd9, 0x3e, 0x4, 0x4b, 0xb7, 0x4d, 0xb3, 0x6a, 0x12, + 0xb4, 0xc4, 0x91, 0xce, 0xc1, 0xf2, 0xaf, 0xf2, 0x27, 0xf1, + 0xaf, 0x9, 0xb7, 0xf8, 0x63, 0xe2, 0x79, 0x6f, 0x60, 0xb7, + 0x93, 0x44, 0xbd, 0x84, 0x49, 0x22, 0xa1, 0x91, 0xa1, 0x3b, + 0x57, 0x27, 0x19, 0x27, 0xd0, 0x57, 0xd7, 0x3a, 0x75, 0x8c, + 0x5a, 0x5d, 0x85, 0xb5, 0x9c, 0xb, 0xb6, 0x18, 0x23, 0x58, + 0x90, 0x7a, 00, 0x30, 0x2b, 0xeb, 0x38, 0x6b, 0x5, 0x38, + 0xd7, 0x9d, 0x7a, 0xb1, 0x6b, 0x95, 0x59, 0x5d, 0x5b, 0x57, + 0xff, 00, 0x3, 0xf3, 0x3d, 0x2c, 0x5, 0x26, 0xa6, 0xe7, + 0x25, 0xb1, 0x66, 0x8a, 0x28, 0xaf, 0xd1, 0x4f, 0x74, 0x2b, + 0xcd, 0x7f, 0x68, 0x38, 0xbc, 0xcf, 0x87, 0x53, 0x36, 0x3e, + 0xe5, 0xcc, 0x4d, 0xfa, 0xe3, 0xfa, 0xd7, 0xa5, 0x57, 0x3, + 0xf1, 0xce, 0x2f, 0x37, 0xe1, 0x9e, 0xa8, 0x7f, 0xb8, 0xd1, + 0x37, 0xfe, 0x44, 0x5f, 0xf1, 0xaf, 0x37, 0x32, 0x5c, 0xd8, + 0x2a, 0xcb, 0xfb, 0xaf, 0xf2, 0x39, 0xf1, 0xa, 0xf4, 0xa5, + 0xe8, 0x7c, 0xa5, 0x45, 0x14, 0x57, 0xe2, 0x27, 0xc9, 0x5, + 0x14, 0x51, 0x40, 0x1f, 0x64, 0x7c, 0x3a, 0xba, 0xfb, 0x67, + 0x80, 0xf4, 0x9, 0x49, 0xc9, 0x36, 0x51, 0x3, 0xf5, 0xa, + 0x7, 0xf4, 0xae, 0x8e, 0xb8, 0x4f, 0x82, 0x17, 0x86, 0xf3, + 0xe1, 0xa6, 0x95, 0x93, 0x93, 0x17, 0x99, 0x11, 0xfc, 0x1d, + 0xb1, 0xfa, 0x62, 0xbb, 0xba, 0xfd, 0xd3, 0x5, 0x3f, 0x69, + 0x86, 0xa5, 0x3e, 0xf1, 0x5f, 0x91, 0xf6, 0x14, 0x5f, 0x35, + 0x38, 0xbf, 0x24, 0x14, 0x51, 0x45, 0x76, 0x1a, 0x85, 0x14, + 0x56, 0x7f, 0x88, 0x35, 0x68, 0xf4, 0x1d, 0xe, 0xff, 00, + 0x51, 0x97, 0xee, 0x5a, 0xc2, 0xf2, 0x9f, 0x7c, 0xe, 0x5, + 0x4c, 0xa4, 0xa1, 0x17, 0x29, 0x6c, 0x84, 0xdd, 0x95, 0xd9, + 0xf2, 0xbf, 0xc6, 0xd, 0x78, 0xf8, 0x83, 0xe2, 0x6, 0xa9, + 0x20, 0x6d, 0xd0, 0xdb, 0xbf, 0xd9, 0x63, 0xfa, 0x27, 0x7, + 0xff, 00, 0x1e, 0xdc, 0x7f, 0x1a, 0xe3, 0x2a, 0x4b, 0x89, + 0xde, 0xea, 0x79, 0x66, 0x90, 0xee, 0x92, 0x46, 0x2e, 0xc7, + 0xd4, 0x93, 0x93, 0x51, 0xd7, 0xe1, 0x38, 0x8a, 0xcf, 0x11, + 0x5a, 0x75, 0x65, 0xf6, 0x9b, 0x67, 0xc7, 0x4e, 0x4e, 0x72, + 0x72, 0x7d, 0x42, 0x8a, 0x28, 0xae, 0x72, 0xe, 0xb7, 0xe1, + 0x46, 0x8f, 0xfd, 0xb7, 0xf1, 0x7, 0x46, 0x81, 0x97, 0x7c, + 0x69, 0x37, 0x9e, 0xe3, 0xb6, 0x10, 0x16, 0xfe, 0x60, 0x57, + 0xd7, 0xd5, 0xf3, 0xdf, 0xec, 0xd1, 0xa3, 0xf9, 0xfa, 0xd6, + 0xad, 0xa9, 0xb2, 0xf1, 0x6f, 0xa, 0xc0, 0x87, 0xdd, 0xce, + 0x4f, 0xe8, 0xbf, 0xad, 0x7d, 0x9, 0x5f, 0xaa, 0xf0, 0xd5, + 0xf, 0x67, 0x82, 0xf6, 0x8f, 0x79, 0x36, 0xfe, 0x4b, 0x43, + 0xe8, 0xf0, 0x10, 0xe5, 0xa5, 0xcd, 0xdc, 0x28, 0xa2, 0x8a, + 0xfa, 0xb3, 0xd2, 0xa, 0x28, 0xa2, 0x80, 0xa, 0xf9, 0xdb, + 0xf6, 0x88, 0xf0, 0x69, 0xd3, 0xf5, 0x98, 0x7c, 0x41, 0x6e, + 0x9f, 0xe8, 0xf7, 0x98, 0x8e, 0x7c, 0xf, 0xbb, 0x28, 0x1c, + 0x1f, 0xc4, 0xf, 0xfc, 0x77, 0xde, 0xbe, 0x89, 0xac, 0xdf, + 0x10, 0xe8, 0x36, 0x9e, 0x27, 0xd1, 0xae, 0xb4, 0xcb, 0xd4, + 0xdf, 0x6f, 0x70, 0xbb, 0x5b, 0x1d, 0x54, 0xf5, 0x4, 0x7b, + 0x83, 0xcd, 0x79, 0x59, 0x9e, 0x9, 0x63, 0xf0, 0xd2, 0xa3, + 0xd7, 0x75, 0xeb, 0xfd, 0x68, 0x73, 0x62, 0x28, 0xfb, 0x6a, + 0x6e, 0x3d, 0x4f, 0x89, 0xa8, 0xae, 0x8b, 0xc7, 0x1e, 0x8, + 0xbf, 0xf0, 0x2e, 0xb5, 0x25, 0x95, 0xe2, 0x16, 0x88, 0x92, + 0x60, 0xb8, 0x3, 0xe5, 0x95, 0x3d, 0x47, 0xbf, 0xa8, 0xed, + 0x5c, 0xed, 0x7e, 0x33, 0x56, 0x94, 0xe8, 0xcd, 0xd3, 0xa8, + 0xac, 0xd1, 0xf2, 0xb2, 0x8b, 0x8b, 0xe5, 0x96, 0xe1, 0x45, + 0x14, 0x56, 0x44, 0x9b, 0x7e, 0x12, 0xf1, 0x86, 0xa7, 0xe0, + 0xbd, 0x51, 0x6f, 0xb4, 0xd9, 0xb6, 0x3f, 0xdd, 0x92, 0x36, + 0xe5, 0x25, 0x5f, 0x46, 0x15, 0xf4, 0x1f, 0x85, 0x3e, 0x3e, + 0x78, 0x7b, 0x5d, 0x44, 0x8f, 0x50, 0x66, 0xd1, 0xee, 0xb8, + 0x4, 0x4f, 0xcc, 0x44, 0xfb, 0x38, 0xe9, 0xf8, 0xe2, 0xbe, + 0x61, 0xa2, 0xbd, 0xac, 0x6, 0x6d, 0x89, 0xcb, 0xfd, 0xda, + 0x6e, 0xf1, 0xec, 0xf6, 0xff, 00, 0x80, 0x75, 0x51, 0xc4, + 0xd4, 0xa1, 0xa4, 0x76, 0xec, 0x7d, 0xb7, 0x69, 0xe2, 0xd, + 0x2e, 0xfd, 0x3, 0x5b, 0x6a, 0x36, 0x97, 0xa, 0x46, 0x73, + 0x1c, 0xea, 0xdf, 0xc8, 0xd4, 0xb3, 0x6a, 0xf6, 0x36, 0xeb, + 0xba, 0x5b, 0xdb, 0x78, 0x97, 0xd5, 0xe5, 0x50, 0x3f, 0x9d, + 0x7c, 0x3f, 0x8a, 0x31, 0x5f, 0x46, 0xb8, 0xae, 0x76, 0xd6, + 0x8e, 0xbe, 0xbf, 0xf0, 0xe, 0xff, 00, 0xed, 0x27, 0xfc, + 0xbf, 0x89, 0xf5, 0x9f, 0x88, 0xbe, 0x32, 0xf8, 0x5b, 0xc3, + 0xb1, 0x9c, 0xea, 0x2b, 0x7f, 0x38, 0xe9, 0xd, 0x96, 0x24, + 0x3f, 0x98, 0xe0, 0x7e, 0x26, 0xbc, 0x47, 0xe2, 0x7, 0xc6, + 0xad, 0x5b, 0xc6, 0x4b, 0x25, 0xa5, 0xa8, 0x3a, 0x66, 0x96, + 0xc0, 0xab, 0x43, 0x1b, 0x65, 0xe5, 0x1f, 0xed, 0xb7, 0xa7, + 0xb0, 0xe3, 0xeb, 0x5e, 0x75, 0x45, 0x78, 0x98, 0xdc, 0xf7, + 0x17, 0x8c, 0x8b, 0x85, 0xf9, 0x62, 0xfa, 0x2f, 0xf3, 0x39, + 0x2a, 0xe3, 0x2a, 0xd5, 0x56, 0xd9, 0x5, 0x14, 0x51, 0x5f, + 0x3a, 0x70, 0x85, 0x14, 0x55, 0x8b, 0xd, 0x3e, 0xe7, 0x55, + 0xbc, 0x86, 0xd2, 0xd2, 0x17, 0xb8, 0xb9, 0x95, 0x82, 0xa4, + 0x68, 0x32, 0x58, 0xd3, 0x49, 0xc9, 0xd9, 0x6e, 0x1b, 0x89, + 0x65, 0x65, 0x3e, 0xa3, 0x77, 0xd, 0xad, 0xb4, 0x4d, 0x35, + 0xc4, 0xcc, 0x11, 0x23, 0x41, 0x92, 0xc4, 0xf6, 0xaf, 0xad, + 0x3e, 0x18, 0xf8, 0x6, 0x2f, 00, 0xf8, 0x7d, 0x6d, 0xdb, + 0x64, 0x9a, 0x84, 0xe7, 0xcc, 0xb9, 0x99, 0x7b, 0xb7, 0x65, + 0x1e, 0xc3, 0xfc, 0x4f, 0x7a, 0xc6, 0xf8, 0x4b, 0xf0, 0x9a, + 0x2f, 0x4, 0x5b, 0xfd, 0xbf, 0x50, 0x9, 0x36, 0xb5, 0x2a, + 0xe0, 0x95, 0x39, 0x58, 0x14, 0xff, 00, 0xa, 0xfb, 0xfa, + 0x9f, 0xc3, 0xeb, 0xe9, 0x35, 0xfa, 0x86, 0x47, 0x94, 0x3c, + 0x1a, 0xfa, 0xc5, 0x75, 0xef, 0xbd, 0x97, 0x65, 0xfe, 0x67, + 0xd0, 0xe0, 0xf0, 0xbe, 0xcb, 0xdf, 0x9e, 0xff, 00, 0x90, + 0x51, 0x45, 0x23, 0x30, 0x55, 0x24, 0x9c, 0x1, 0xc9, 0x35, + 0xf5, 0xe7, 0xa8, 0x71, 0xba, 0xef, 0xc5, 0x8d, 0xf, 0xc3, + 0x5e, 0x29, 0xfe, 0xc4, 0xd4, 0x64, 0x7b, 0x77, 0xf2, 0x96, + 0x43, 0x73, 0xb7, 0x31, 0xa9, 0x39, 0xf9, 0x5b, 0x1c, 0x8e, + 0x30, 0x73, 0x8c, 0x73, 0x5d, 0x55, 0x8e, 0xa3, 0x6b, 0xaa, + 0x40, 0xb3, 0xd9, 0xdc, 0xc5, 0x75, 0xb, 0x72, 0x24, 0x85, + 0xc3, 0x29, 0xfc, 0x45, 0x7c, 0x75, 0xe3, 0x8d, 0x78, 0xf8, + 0x9b, 0xc5, 0xba, 0xa6, 0xa5, 0x9c, 0xa4, 0xd3, 0xb7, 0x97, + 0xfe, 0xe0, 0xe1, 0x7f, 0x40, 0x2a, 0x86, 0x93, 0xae, 0x6a, + 0x1a, 0xd, 0xc8, 0xb8, 0xd3, 0xaf, 0x67, 0xb2, 0x97, 0xfb, + 0xd0, 0xb9, 0x5c, 0xfd, 0x7d, 0x7f, 0x1a, 0xfc, 0xf5, 0x71, + 0x3c, 0xa9, 0xd7, 0x9c, 0x67, 0xe, 0x68, 0x5d, 0xda, 0xda, + 0x3b, 0x7e, 0xbf, 0x81, 0xe1, 0xac, 0xc1, 0xa9, 0xb4, 0xd5, + 0xd1, 0xf6, 0xed, 0x15, 0xf3, 0x26, 0x8d, 0xfb, 0x43, 0x78, + 0x9f, 0x4e, 0xda, 0xb7, 0x82, 0xd7, 0x53, 0x8c, 0x75, 0xf3, + 0x63, 0xd8, 0xe7, 0xf1, 0x5c, 0xf, 0xd2, 0xbb, 0x6d, 0x2f, + 0xf6, 0x96, 0xd2, 0xa6, 0x55, 0x1a, 0x86, 0x95, 0x77, 0x6c, + 0xdd, 0xcc, 0xc, 0xb2, 0x2f, 0xeb, 0xb4, 0xd7, 0xd0, 0x51, + 0xcf, 0xf0, 0x15, 0xb7, 0x9f, 0x2b, 0xf3, 0x5f, 0xd2, 0x3b, + 0x61, 0x8d, 0xa3, 0x2e, 0xb6, 0x3d, 0x96, 0x8a, 0xf3, 0xcb, + 0x5f, 0x8f, 0x5e, 0xe, 0xb8, 0xc6, 0xeb, 0xe9, 0xad, 0xcf, + 0xa4, 0xb6, 0xef, 0xfd, 0x1, 0xad, 0x8, 0xbe, 0x31, 0x78, + 0x3a, 0x51, 0xc6, 0xb9, 0x2, 0xff, 00, 0xbc, 0xae, 0x3f, + 0x98, 0xaf, 0x4a, 0x39, 0x86, 0xe, 0x7f, 0xd, 0x58, 0xfd, + 0xe8, 0xe8, 0x55, 0xe9, 0x3d, 0xa4, 0xbe, 0xf3, 0xb3, 0xa2, + 0xb8, 0xa9, 0xfe, 0x32, 0xf8, 0x36, 0x1, 0x93, 0xad, 0xc4, + 0xff, 00, 0xf5, 0xce, 0x37, 0x6f, 0xe4, 0x2b, 0x9b, 0xd7, + 0x7f, 0x68, 0xcd, 0x2, 0xca, 0x16, 0x1a, 0x65, 0xbd, 0xce, + 0xa3, 0x3f, 0xf0, 0xee, 0x5f, 0x2a, 0x3f, 0xc4, 0x9e, 0x7f, + 0x4a, 0x8a, 0x99, 0x9e, 0xa, 0x92, 0xbc, 0xaa, 0xc7, 0xef, + 0xbf, 0xe4, 0x29, 0x62, 0x29, 0x45, 0x5d, 0xc9, 0x16, 0xbf, + 0x68, 0x6d, 0x4a, 0xde, 0xd7, 0xc0, 0x46, 0xd6, 0x42, 0x3e, + 0xd1, 0x75, 0x71, 0x18, 0x89, 0x7b, 0xfc, 0xa7, 0x73, 0x1f, + 0xc8, 0x63, 0xf1, 0xaf, 0x98, 0xeb, 0x7b, 0xc6, 0x3e, 0x35, + 0xd4, 0xfc, 0x71, 0xaa, 0x7d, 0xb7, 0x52, 0x90, 0x12, 0xa3, + 0x6c, 0x50, 0xc6, 0x30, 0x91, 0xaf, 0xa0, 0x1f, 0xd7, 0xad, + 0x60, 0xd7, 0xe5, 0x99, 0xbe, 0x3a, 0x38, 0xfc, 0x53, 0xab, + 0x5, 0xee, 0xa5, 0x64, 0x7c, 0xe6, 0x26, 0xb2, 0xad, 0x53, + 0x99, 0x6c, 0x14, 0x51, 0x45, 0x78, 0xa7, 0x28, 0x55, 0xcd, + 0x1e, 0xc5, 0xb5, 0x3d, 0x5e, 0xca, 0xcd, 0x46, 0x5a, 0xe2, + 0x74, 0x88, 0x1, 0xfe, 0xd3, 0x1, 0xfd, 0x6a, 0x9d, 0x7a, + 0x77, 0xc0, 0x1f, 0xa, 0x9d, 0x73, 0xc6, 0x1f, 0xda, 0x12, + 0xa9, 0x36, 0xda, 0x6a, 0xf9, 0xb9, 0xec, 0x64, 0x3c, 0x20, + 0xfe, 0x67, 0xf0, 0x15, 0xdb, 0x82, 0xc3, 0xcb, 0x15, 0x88, + 0x85, 0x18, 0xf5, 0x7f, 0x87, 0x5f, 0xc0, 0xd6, 0x94, 0x1d, + 0x49, 0xa8, 0xae, 0xa7, 0xd3, 0x68, 0xa1, 0x14, 0x28, 0xe8, + 0x6, 0x29, 0xd4, 0x51, 0x5f, 0xb9, 0x9f, 0x60, 0x14, 0x51, + 0x45, 00, 0x56, 0xd4, 0x5f, 0xcb, 0xb0, 0xb8, 0x6e, 0x98, + 0x43, 0xfc, 0xab, 0xe1, 0x1f, 0x8b, 0xd7, 0x1e, 0x77, 0x88, + 0xe5, 0xef, 0xf3, 0x1f, 0xe7, 0x5f, 0x72, 0xf8, 0x92, 0x5f, + 0x27, 0x43, 0xbc, 0x6e, 0x98, 0x8c, 0xd7, 0xc1, 0x5f, 0x12, + 0xa6, 0xf3, 0xbc, 0x45, 0x3f, 0xb3, 0x1a, 0xf8, 0xce, 0x22, + 0x97, 0xbb, 0x4e, 0x3e, 0x67, 0xc9, 0xf1, 0xc, 0xad, 0x41, + 0x23, 0xc8, 0x3e, 0x20, 0x4b, 0xb3, 0x4a, 0x9b, 0xe8, 0x6b, + 0xe9, 0x1f, 0xf8, 0x25, 0xa6, 0x9e, 0x23, 0xf8, 0x57, 0xe3, + 0x5b, 0xfc, 0x7c, 0xd7, 0x5e, 0x20, 0x64, 0xcf, 0xb2, 0x41, + 0x1f, 0xff, 00, 0x14, 0x6b, 0xe6, 0x1f, 0x89, 0x93, 0x6c, + 0xd2, 0x65, 0xfa, 0x1f, 0xe5, 0x5f, 0x60, 0x7f, 0xc1, 0x32, + 0x6c, 0x3e, 0xcd, 0xfb, 0x35, 0x1b, 0xad, 0xb8, 0x37, 0xba, + 0xe5, 0xec, 0xd9, 0xf5, 00, 0xaa, 0x7f, 0xec, 0x95, 0xd9, + 0x92, 0xc6, 0xd4, 0xcf, 0x99, 0xe1, 0x18, 0xdf, 0x13, 0x5e, + 0x7e, 0x87, 0xd6, 0x74, 0x51, 0x45, 0x7d, 0x39, 0xfa, 0x90, + 0x57, 0x82, 0xfe, 0xd6, 0xde, 0x35, 0x3a, 0x3f, 0x84, 0x6d, + 0x3c, 0x3f, 0x3, 0x62, 0x7d, 0x56, 0x4d, 0xd2, 0xe0, 0xf2, + 0x22, 0x42, 0xf, 0xea, 0xd8, 0x1f, 0x81, 0xaf, 0x7a, 0xaf, + 0x85, 0xbf, 0x68, 0x3f, 0x1a, 0x1f, 0x1a, 0x7c, 0x4b, 0xd4, + 0x1a, 0x29, 0x4, 0x96, 0x5a, 0x79, 0xfb, 0x15, 0xbe, 0xd2, + 0x70, 0x42, 0x9f, 0x98, 0xfe, 0x2d, 0x9f, 0xc8, 0x57, 0x85, + 0x9c, 0xe2, 0x3d, 0x86, 0x15, 0xa5, 0xbc, 0xb4, 0xff, 00, + 0x33, 0xe7, 0xb3, 0xdc, 0x4f, 0xd5, 0xf0, 0x6e, 0x29, 0xeb, + 0x2d, 0x3f, 0xcf, 0xf0, 0x39, 0x5f, 0x2, 0xf8, 0x7e, 0x4f, + 0x12, 0xf8, 0xa3, 0x4f, 0xd3, 0xe3, 0x5d, 0xde, 0x6c, 0xaa, + 0xf, 0xd3, 0x3c, 0xd7, 0xe8, 0x46, 0x95, 0xa7, 0xc7, 0xa5, + 0x69, 0xd6, 0xf6, 0x91, 00, 0xb1, 0xc2, 0x81, 00, 0x1e, + 0xd5, 0xf2, 0xef, 0xec, 0x9d, 0xe0, 0xff, 00, 0xb6, 0x6b, + 0x77, 0x7a, 0xd4, 0xc9, 0x98, 0xed, 0xd3, 0x6c, 0x64, 0x8e, + 0x37, 0x1a, 0xfa, 0xb6, 0xb8, 0xb8, 0x7f, 0xf, 0xc9, 0x46, + 0x55, 0xde, 0xf2, 0xfc, 0x91, 0x87, 0xf, 0xe1, 0xbd, 0x8e, + 0x1b, 0xda, 0x3d, 0xe5, 0xf9, 0x5, 0x14, 0x51, 0x5f, 0x54, + 0x7d, 0x41, 0xf9, 0x87, 0xff, 00, 0x5, 0x9e, 0xf8, 0xdd, + 0x1d, 0xb6, 0x8b, 0xe1, 0x2f, 0x85, 0x76, 0x17, 0x2c, 0x2e, + 0x2e, 0x65, 0xfe, 0xda, 0xd4, 0xe3, 0x46, 0xc0, 0xf2, 0x97, + 0x72, 0x40, 0x8d, 0xeb, 0x96, 0xde, 0xd8, 0xff, 00, 0x61, + 0x4d, 0x7e, 0x72, 0xfe, 0xcf, 0x7f, 0xa, 0xe5, 0xf8, 0xdb, + 0xf1, 0xb3, 0xc1, 0xbe, 0x7, 0x89, 0xfc, 0xb5, 0xd6, 0x75, + 0x8, 0xe0, 0x99, 0xf3, 0x8d, 0xb0, 0x8c, 0xbc, 0xa4, 0x7b, + 0x88, 0xd5, 0xc8, 0xf7, 0xaf, 0x55, 0xff, 00, 0x82, 0x90, + 0x6b, 0xf7, 0x9a, 0xff, 00, 0xed, 0x9f, 0xf1, 0x1c, 0xdd, + 0xc8, 0xce, 0xb6, 0x77, 0x30, 0x59, 0x40, 0xac, 0x73, 0xb2, + 0x34, 0xb7, 0x8c, 00, 0x3d, 0xb2, 0x58, 0xff, 00, 0xc0, + 0x8d, 0x7c, 0xfb, 0xe1, 0x5f, 0x15, 0x6a, 0xfe, 0x7, 0xf1, + 0x1e, 0x9d, 0xaf, 0xe8, 0x3a, 0x84, 0xfa, 0x56, 0xb3, 0xa7, + 0xcc, 0xb7, 0x16, 0xb7, 0x96, 0xcd, 0xb6, 0x48, 0x9c, 0x74, + 0x20, 0xff, 00, 0x9c, 0xf4, 0xaa, 0x33, 0x6f, 0x53, 0xfa, + 0x71, 0x51, 0xa7, 0xf8, 0x4b, 0xc3, 0xc0, 0x7c, 0x96, 0x7a, + 0x5e, 0x99, 0x6b, 0x8f, 0x45, 0x8a, 0x18, 0xd3, 0xf9, 0x5, + 0x5f, 0xd2, 0xbf, 0xe, 0xbe, 0x24, 0x7f, 0xc1, 0x4e, 0x7e, + 0x37, 0x6a, 0x3f, 0x13, 0x7c, 0x4b, 0xa8, 0xf8, 0x57, 0xc6, + 0xd3, 0xe9, 0x9e, 0x1a, 0x9a, 0xfe, 0x66, 0xd3, 0x74, 0xe3, + 0x67, 0x6e, 0xe9, 0xd, 0xbe, 0xe2, 0x23, 0x1f, 0x34, 0x64, + 0xe7, 0x68, 0x4, 0xe4, 0x9e, 0x49, 0xa8, 0x3c, 0x61, 0xff, + 00, 0x5, 0x45, 0xf8, 0xd9, 0xe3, 0xcf, 0x86, 0xda, 0xd7, + 0x83, 0x35, 0x89, 0xf4, 0x49, 0xac, 0xf5, 0x6b, 0x17, 0xb0, + 0xb9, 0xbe, 0x86, 0xc5, 0xa2, 0xba, 0xf2, 0xdd, 0x76, 0xb1, + 0xc, 0xae, 0x14, 0x31, 0x19, 0x19, 0xdb, 0xdc, 0xd7, 0xc8, + 0xb4, 0x92, 0x1b, 0x7d, 0x8f, 0xdf, 0x7f, 0xf8, 0x27, 0x7f, + 0xc4, 0x8f, 0x88, 0xff, 00, 0x18, 0xbe, 0x1, 0x47, 0xe3, + 0x6f, 0x88, 0xfa, 0xc2, 0xea, 0xb7, 0x7a, 0xad, 0xf4, 0xa3, + 0x4f, 0x9, 0x69, 0x1d, 0xb8, 0x8e, 0xda, 0x33, 0xe5, 0xe4, + 0x84, 0x51, 0x92, 0xce, 0xae, 0x72, 0x7b, 0x1, 0x5f, 0x50, + 0xd7, 0xe3, 0xaf, 0xc3, 0xf, 0xf8, 0x2b, 0xf6, 0xa3, 0xf0, + 0xbf, 0xc0, 0xfa, 0x7, 0x85, 0x34, 0xff, 00, 0x84, 0xda, + 0x50, 0xd2, 0xb4, 0x6b, 0x38, 0xac, 0xa0, 0x58, 0x75, 0x69, + 0x23, 0x25, 0x51, 0x40, 0xc9, 0xfd, 0xd1, 0xe4, 0xf2, 0x4f, + 0xb9, 0x35, 0xe8, 0x5a, 0x7f, 0xfc, 0x16, 0xee, 0x16, 0x61, + 0xf6, 0xef, 0x84, 0xb2, 0x46, 0xbd, 0xcd, 0xbe, 0xb8, 0x1f, + 0xf9, 0xc0, 0x28, 0xb1, 0x57, 0x47, 0xea, 0x45, 0x15, 0xf9, + 0xbd, 0x65, 0xff, 00, 0x5, 0xb1, 0xf0, 0x3c, 0x85, 0x7e, + 0xd7, 0xf0, 0xe3, 0xc4, 0x10, 0xe, 0xe6, 0x1b, 0xc8, 0x24, + 0xc7, 0xe7, 0xb6, 0xba, 0xed, 0x3, 0xfe, 0xb, 0x19, 0xf0, + 0x8b, 0x5c, 0xbd, 0xb6, 0xb3, 0x3e, 0x19, 0xf1, 0x84, 0x17, + 0x57, 0x12, 0x2c, 0x51, 0xc6, 0x2d, 0x20, 0x93, 0x73, 0xb1, + 0xc0, 0x51, 0xb6, 0x6e, 0x72, 0x48, 0xed, 0x48, 0x2e, 0x8f, + 0xbc, 0xe8, 0xa8, 0xad, 0xa6, 0x37, 0x16, 0xd1, 0x4a, 0x63, + 0x78, 0x4b, 0xa0, 0x63, 0x1c, 0x98, 0xdc, 0xb9, 0x19, 0xc1, + 0xc7, 0x71, 0x59, 0x1e, 0x36, 0xf1, 0xae, 0x89, 0xf0, 0xe7, + 0xc2, 0x9a, 0x9f, 0x89, 0x7c, 0x47, 0x7f, 0x1e, 0x97, 0xa2, + 0x69, 0xb0, 0x99, 0xee, 0xee, 0xe5, 0x4, 0xac, 0x48, 0x3b, + 0xe0, 0x2, 0x4f, 0x5e, 0x80, 0x50, 0x33, 0x72, 0x8a, 0xf0, + 0x2b, 0xf, 0xdb, 0xdb, 0xf6, 0x7d, 0xd4, 0x63, 0xf, 0x1f, + 0xc5, 0x6f, 0xf, 0xc6, 0xf, 0x6b, 0x89, 0x9a, 0x23, 0xf9, + 0x32, 0x8a, 0xdc, 0xb1, 0xfd, 0xb1, 0x7e, 0x6, 0xea, 0x3f, + 0xea, 0x3e, 0x2d, 0x78, 0x40, 0xff, 00, 0xbf, 0xac, 0x42, + 0x9f, 0xfa, 0x13, 0xa, 00, 0xf6, 0x1a, 0x2b, 0x82, 0xd2, + 0x7e, 0x3e, 0x7c, 0x33, 0xd7, 0xbf, 0xe4, 0x1d, 0xf1, 0xb, + 0xc2, 0xf7, 0xdf, 0xf5, 0xc3, 0x58, 0xb7, 0x7f, 0xe4, 0xf5, + 0xd1, 0xd9, 0x78, 0xd7, 0xc3, 0xda, 0x91, 0x2, 0xd3, 0x5e, + 0xd3, 0x2e, 0x89, 0xe8, 0x21, 0xbc, 0x8d, 0xf3, 0xf9, 0x35, + 00, 0x6d, 0x51, 0x51, 0xa5, 0xc4, 0x52, 0x7d, 0xc9, 0x51, + 0xbf, 0xdd, 0x60, 0x6a, 0x4a, 00, 0x28, 0xa2, 0x8a, 00, + 0x2a, 0xbd, 0xfe, 0x9f, 0x6d, 0xaa, 0x5a, 0x49, 0x6b, 0x79, + 0x6f, 0x1d, 0xd5, 0xb4, 0x98, 0xdf, 0x14, 0xca, 0x19, 0x5b, + 0x9c, 0xf2, 0xf, 0xbd, 0x58, 0xa2, 0x93, 0x49, 0xab, 0x30, + 0x6a, 0xfa, 0x33, 0x96, 0x9b, 0xe1, 0x77, 0x84, 0xe7, 0x1f, + 0x36, 0x81, 0x62, 0x3f, 0xdc, 0x8b, 0x6f, 0xf2, 0xaa, 0x53, + 0x7c, 0x17, 0xf0, 0x6c, 0xfd, 0x74, 0x54, 0x5f, 0xf7, 0x25, + 0x91, 0x7f, 0x93, 0x57, 0x6d, 0x45, 0x72, 0x4b, 0x5, 0x85, + 0x96, 0xf4, 0xa3, 0xf7, 0x23, 0x27, 0x46, 0x9b, 0xde, 0x2b, + 0xee, 0x3c, 0xf6, 0x4f, 0x80, 0xde, 0xc, 0x7e, 0x9a, 0x74, + 0xa9, 0xfe, 0xed, 0xd4, 0x9f, 0xd5, 0xaa, 0xac, 0x9f, 0xb3, + 0xd7, 0x84, 0x9f, 0xee, 0xa5, 0xe4, 0x7f, 0xee, 0xdc, 0x7f, + 0x88, 0xaf, 0x4c, 0xa2, 0xb0, 0x79, 0x66, 0x9, 0xef, 0x46, + 0x3f, 0x72, 0x23, 0xea, 0xf4, 0x7f, 0x95, 0x18, 0x7e, 0xf, + 0xf0, 0x85, 0x97, 0x82, 0x74, 0x93, 0xa7, 0x58, 0x3c, 0xcf, + 0x6f, 0xe6, 0x34, 0xa3, 0xcf, 0x60, 0xc4, 0x13, 0x8c, 0x8c, + 0x80, 0x38, 0xe2, 0xb7, 0x28, 0xa2, 0xbb, 0xe9, 0xd3, 0x8d, + 0x28, 0xa8, 0x41, 0x59, 0x23, 0x68, 0xc5, 0x45, 0x59, 0x6c, + 0x14, 0x51, 0x45, 0x68, 0x50, 0x57, 0x25, 0xf1, 0x4b, 0xc3, + 0xfa, 0x9f, 0x8a, 0x7c, 0x1f, 0x73, 0xa5, 0xe9, 0x46, 0x21, + 0x3c, 0xee, 0x81, 0xcc, 0xce, 0x50, 0x6c, 0x7, 0x27, 0x9c, + 0x1f, 0x41, 0x5d, 0x6d, 0x15, 0x8d, 0x6a, 0x51, 0xaf, 0x4e, + 0x54, 0xa5, 0xb3, 0x56, 0x22, 0x71, 0x53, 0x8b, 0x8b, 0xea, + 0x7c, 0xb5, 0x2f, 0xc0, 0xf, 0x18, 0x47, 0xd2, 0xd6, 0xda, + 0x4f, 0xf7, 0x2e, 0x17, 0xfa, 0xe2, 0xa9, 0xcb, 0xf0, 0x47, + 0xc6, 0x71, 0xff, 00, 0xcc, 0x1f, 0x7f, 0xfb, 0xb3, 0xc7, + 0xff, 00, 0xc5, 0x57, 0xd6, 0x34, 0x57, 0xcb, 0xcb, 0x86, + 0x30, 0x4f, 0x69, 0x49, 0x7c, 0xd7, 0xf9, 0x1e, 0x7b, 0xcb, + 0xe9, 0x77, 0x67, 0xc8, 0x53, 0x7c, 0x25, 0xf1, 0x7c, 0x7, + 0xe6, 0xd0, 0x6e, 0x8f, 0xfb, 0x9b, 0x5b, 0xf9, 0x1a, 0xa3, + 0x3f, 0xc3, 0xef, 0x13, 0x5b, 0xff, 00, 0xac, 0xd0, 0x75, + 0x1, 0xf4, 0xb7, 0x63, 0xfc, 0x85, 0x7d, 0x97, 0x45, 0x61, + 0x2e, 0x16, 0xc3, 0x7d, 0x9a, 0x92, 0xfc, 0x3f, 0xc8, 0x87, + 0x97, 0x43, 0xa4, 0x99, 0xe7, 0xdf, 0x3, 0xbc, 0x37, 0x2f, + 0x87, 0x7c, 0xb, 0xf, 0xda, 0x61, 0x78, 0x2e, 0xee, 0xe5, + 0x79, 0xe4, 0x49, 0x14, 0xab, 0x2f, 0x3b, 0x54, 0x10, 0x7a, + 0x70, 0xa0, 0xfe, 0x35, 0xe8, 0x34, 0x51, 0x5f, 0x59, 0x86, + 0xa1, 0x1c, 0x35, 0x18, 0xd1, 0x8e, 0xd1, 0x56, 0x3d, 0x2a, + 0x70, 0x54, 0xe0, 0xa0, 0xba, 0x5, 0x14, 0x51, 0x5d, 0x26, + 0x81, 0x45, 0x14, 0x50, 0x1, 0x45, 0x14, 0x50, 0x6, 0x57, + 0x88, 0xfc, 0x33, 0xa6, 0xf8, 0xb3, 0x4d, 0x7b, 0x1d, 0x4e, + 0xd9, 0x6e, 0x20, 0x6e, 0x46, 0x78, 0x64, 0x3e, 0xaa, 0x7a, + 0x83, 0x5f, 0x3a, 0xf8, 0xef, 0xe0, 0x66, 0xb1, 0xe1, 0x97, + 0x96, 0xe7, 0x4d, 0x56, 0xd5, 0xb4, 0xd1, 0xc8, 0x31, 0x8c, + 0xcc, 0x83, 0xfd, 0xa5, 0x1d, 0x7e, 0xa3, 0xf2, 0x15, 0xf4, + 0xfd, 0x15, 0xe3, 0xe3, 0xf2, 0xac, 0x3e, 0x60, 0xbf, 0x78, + 0xad, 0x2e, 0xeb, 0x7f, 0xf8, 0x27, 0x2d, 0x6c, 0x34, 0x2b, + 0xfc, 0x5b, 0xf7, 0x3e, 0x15, 0x20, 0xa9, 0x20, 0x8c, 0x11, + 0xc1, 0x7, 0xb5, 0x25, 0x7d, 0x89, 0xe2, 0x7f, 0x86, 0xde, + 0x1e, 0xf1, 0x70, 0x63, 0x7f, 0xa7, 0x47, 0xe7, 0x9f, 0xf9, + 0x78, 0x87, 0xe4, 0x90, 0x7e, 0x23, 0xaf, 0xe3, 0x9a, 0xf3, + 0x2d, 0x6b, 0xf6, 0x66, 0x53, 0xb9, 0xb4, 0x9d, 0x64, 0x8f, + 0x48, 0xaf, 0x23, 0xcf, 0xfe, 0x3c, 0xbf, 0xe1, 0x5f, 0x5, + 0x89, 0xe1, 0xbc, 0x65, 0x17, 0x7a, 0x56, 0x9a, 0xfb, 0x9f, + 0xdc, 0xff, 00, 0xcc, 0xf1, 0xaa, 0x60, 0x2a, 0xc7, 0xe1, + 0xd4, 0xf0, 0x8a, 0x2b, 0xd0, 0x35, 0x3f, 0x81, 0x5e, 0x30, + 0xd3, 0xdc, 0x84, 0xb0, 0x8e, 0xf5, 0x7, 0xf1, 0xdb, 0x4c, + 0xa7, 0xf4, 0x62, 0xf, 0xe9, 0x58, 0x57, 0x3f, 0xe, 0x3c, + 0x53, 0x68, 0x71, 0x26, 0x81, 0x7f, 0xff, 00, 00, 0x81, + 0x9c, 0x7e, 0x99, 0xaf, 0xa, 0xa6, 0x7, 0x15, 0x49, 0xda, + 0x74, 0xa4, 0xbe, 0x4c, 0xe2, 0x74, 0x6a, 0x47, 0x78, 0xb3, + 0x9c, 0xa2, 0xb4, 0xe4, 0xf0, 0xc6, 0xb3, 0x11, 0xc3, 0xe9, + 0x37, 0xca, 0x7d, 0xd, 0xb3, 0xff, 00, 0x85, 0x35, 0x7c, + 0x39, 0xab, 0x31, 0xc0, 0xd2, 0xaf, 0x4f, 0xd2, 0xd9, 0xff, + 00, 0xc2, 0xb9, 0xbd, 0x95, 0x4f, 0xe5, 0x7f, 0x71, 0x1c, + 0xb2, 0xec, 0x67, 0x51, 0x5b, 0xf6, 0xfe, 00, 0xf1, 0x2d, + 0xd1, 0x1e, 0x56, 0x83, 0xa8, 0xb6, 0x7a, 0x13, 0x6c, 0xe0, + 0x7e, 0x64, 0x56, 0xe6, 0x9d, 0xf0, 0x47, 0xc6, 0x3a, 0x83, + 0xa8, 0x3a, 0x5f, 0xd9, 0x50, 0xff, 00, 0x1d, 0xc4, 0xa8, + 0xa0, 0x7e, 0x19, 0x27, 0xf4, 0xae, 0x88, 0x60, 0xb1, 0x35, + 0x3e, 0xa, 0x52, 0x7f, 0x26, 0x5a, 0xa5, 0x52, 0x5b, 0x45, + 0x9c, 0x25, 0x15, 0xee, 0x3a, 0x2f, 0xec, 0xcf, 0x2b, 0x6d, + 0x6d, 0x5b, 0x58, 0x54, 0xf5, 0x8a, 0xce, 0x3c, 0x9f, 0xfb, + 0xe9, 0xbf, 0xc2, 0xbd, 0x2f, 0xc3, 0x1f, 0xa, 0x7c, 0x35, + 0xe1, 0x4d, 0xaf, 0x6b, 0xa7, 0xac, 0xf7, 0x2b, 0xff, 00, + 0x2f, 0x17, 0x5f, 0xbc, 0x7f, 0xc3, 0x3c, 0xf, 0xc0, 0xa, + 0xf7, 0x30, 0xdc, 0x39, 0x8d, 0xac, 0xef, 0x51, 0x28, 0x2f, + 0x3d, 0x5f, 0xdc, 0xbf, 0xe0, 0x1d, 0x94, 0xf0, 0x35, 0x67, + 0xf1, 0x68, 0x7c, 0xfd, 0xe0, 0xbf, 0x83, 0x9a, 0xff, 00, + 0x8c, 0xc, 0x73, 0x18, 0x7f, 0xb3, 0xb4, 0xf6, 0x23, 0x37, + 0x37, 0x20, 0x82, 0x47, 0xaa, 0xaf, 0x56, 0xfd, 0x7, 0xbd, + 0x7d, 0xf, 0xe0, 0x9f, 0x87, 0x3a, 0x37, 0x81, 0x6d, 0xb6, + 0xd8, 0xc1, 0xe6, 0x5d, 0x32, 0xe2, 0x5b, 0xb9, 0x79, 0x91, + 0xff, 00, 0xc0, 0x7b, 0xa, 0xea, 0x68, 0xaf, 0xba, 0xc0, + 0x64, 0xd8, 0x6c, 0x7, 0xbd, 0x15, 0xcd, 0x2e, 0xef, 0xf4, + 0xec, 0x7b, 0x14, 0x30, 0xb4, 0xe8, 0xea, 0xb5, 0x7d, 0xc2, + 0x8a, 0x28, 0xaf, 0x74, 0xec, 0xa, 0xe5, 0x7e, 0x28, 0x6b, + 0xe3, 0xc3, 0x7e, 0x5, 0xd5, 0xae, 0xc3, 0x6d, 0x95, 0xa2, + 0x30, 0xc4, 0x7b, 0xef, 0x7f, 0x94, 0x7e, 0x59, 0xcf, 0xe1, + 0x5d, 0x55, 0x78, 0xc7, 0xed, 0x29, 0x71, 0x76, 0xfa, 0x46, + 0x95, 0x69, 0xd, 0xbc, 0xcf, 0x6d, 0xe6, 0xb4, 0xf3, 0x4a, + 0x88, 0x4a, 0x29, 0x3, 0xa, 0x9, 0xe9, 0xfc, 0x4d, 0xf9, + 0x57, 0x99, 0x99, 0xd7, 0x78, 0x7c, 0x1d, 0x4a, 0x91, 0xde, + 0xda, 0x7c, 0xf4, 0x39, 0xf1, 0x13, 0x70, 0xa5, 0x29, 0x23, + 0xe7, 0xba, 0x28, 0xa2, 0xbf, 0x12, 0x3e, 0x48, 0x28, 0xa2, + 0x8a, 00, 0x28, 0xa2, 0x8a, 00, 0x28, 0xa2, 0x8a, 00, + 0x28, 0xa2, 0x8a, 00, 0x28, 0xa2, 0xbb, 0x3f, 0x5, 0x7c, + 0x27, 0xd7, 0xbc, 0x69, 0x2c, 0x4f, 0x15, 0xbb, 0x59, 0x69, + 0xed, 0xc9, 0xbd, 0xb8, 0x5c, 0x2e, 0x3f, 0xd9, 0x1d, 0x5b, + 0xf0, 0xe3, 0xde, 0xb7, 0xa3, 0x42, 0xae, 0x22, 0x6a, 0x9d, + 0x18, 0xb6, 0xfc, 0x8b, 0x84, 0x25, 0x37, 0x68, 0xab, 0xb3, + 0x9c, 0xd0, 0x34, 0x1b, 0xdf, 0x13, 0x6a, 0xd6, 0xfa, 0x76, + 0x9f, 0x17, 0x9d, 0x73, 0x33, 0x60, 0xe, 0xca, 0x3b, 0xb1, + 0x3d, 0x80, 0xf5, 0xaf, 0xae, 0xbc, 0xb, 0xe0, 0xeb, 0x5f, + 0x3, 0xf8, 0x7a, 0xd, 0x3a, 0xdc, 0x6, 0x90, 0xd, 0xf3, + 0xcc, 0x6, 0xc, 0xb2, 0x1e, 0xa7, 0xfa, 0xf, 0x6a, 0x87, + 0xc0, 0xdf, 0xf, 0xb4, 0xbf, 0x1, 0x58, 0x18, 0x2c, 0x50, + 0xc9, 0x71, 0x26, 0x3c, 0xeb, 0xa9, 00, 0xdf, 0x21, 0xfe, + 0x83, 0xd8, 0x57, 0x4f, 0x5f, 0xa9, 0x64, 0xd9, 0x3a, 0xcb, + 0xe3, 0xed, 0x6a, 0xeb, 0x51, 0xfe, 0xb, 0xb7, 0xf9, 0x9f, + 0x43, 0x85, 0xc2, 0xfb, 0x5, 0xcd, 0x2f, 0x88, 0x28, 0xa2, + 0x8a, 0xfa, 0x73, 0xd1, 0xa, 0x28, 0xa2, 0x80, 0x30, 0x7c, + 0x73, 0x37, 0x91, 0xe1, 0x8b, 0xd6, 0xe9, 0xf2, 0xe2, 0xbe, + 0x8, 0xf1, 0xc4, 0xbe, 0x66, 0xbd, 0x72, 0x73, 0xfc, 0x46, + 0xbe, 0xe8, 0xf8, 0x9f, 0x37, 0x93, 0xe1, 0x2b, 0xa3, 0x9a, + 0xf8, 0x2f, 0xc5, 0xd, 0xbf, 0x55, 0xba, 0x6c, 0xff, 00, + 0x11, 0xaf, 0x84, 0xe2, 0x19, 0x7e, 0xfa, 0x9c, 0x4f, 0x88, + 0xe2, 0x49, 0x7b, 0x91, 0x47, 0x8f, 0x7c, 0x59, 0x9f, 0xcb, + 0xd2, 0x64, 0xe7, 0xb1, 0xfe, 0x55, 0xf7, 0x67, 0xfc, 0x13, + 0xa2, 0xc9, 0xad, 0x3f, 0x64, 0xaf, 0x8, 0xbb, 0xc, 0x1b, + 0x89, 0xaf, 0x67, 0xfc, 0xd, 0xd4, 0xa3, 0xfa, 0x57, 0xc0, + 0x5f, 0x19, 0xa6, 0xf2, 0xf4, 0xa9, 0x79, 0xe3, 0x69, 0xaf, + 0xd2, 0x7f, 0xd8, 0xaf, 0x4a, 0x1a, 0x3f, 0xec, 0xaf, 0xf0, + 0xda, 00, 0x41, 0xdf, 0xa5, 0x25, 0xc1, 0xc7, 0xac, 0x8c, + 0xd2, 0x7f, 0xec, 0xd5, 0xed, 0xe5, 0xa, 0xd4, 0x91, 0xe6, + 0xf0, 0x74, 0x7d, 0xda, 0xf3, 0xf3, 0x3d, 0xb2, 0x8a, 0x28, + 0xaf, 0xa0, 0x3f, 0x49, 0x39, 0x5f, 0x8a, 0x1e, 0x30, 0x4f, + 0x2, 0x78, 0x13, 0x56, 0xd6, 0x18, 0xfe, 0xf2, 0x18, 0xb6, + 0xc2, 0x3d, 0x65, 0x6f, 0x95, 0x7, 0xe6, 0x45, 0x7e, 0x7e, + 0xa7, 0x99, 0x77, 0x71, 0x96, 0x26, 0x49, 0xa5, 0x6c, 0xb3, + 0x1e, 0x4b, 0x31, 0x3c, 0x9f, 0xce, 0xbe, 0x93, 0xfd, 0xaf, + 0xfc, 0x64, 0xf, 0xf6, 0x4f, 0x85, 0xa1, 0x3c, 0xff, 00, + 0xc7, 0xf5, 0xc1, 0xf6, 0xe5, 0x50, 0x7f, 0xe8, 0x47, 0xf0, + 0x15, 0xe3, 0xbf, 0x8, 0x3c, 0x2a, 0xde, 0x2d, 0xf1, 0xd6, + 0x9b, 0x69, 0xb4, 0xb4, 0x42, 0x40, 0xf2, 0x7b, 0x28, 0xe6, + 0xbf, 0x3e, 0xce, 0xab, 0x4b, 0x13, 0x8b, 0x8e, 0x1e, 0x1d, + 0x34, 0xf9, 0xb3, 0xf3, 0xbc, 0xe2, 0xa3, 0xc6, 0xe3, 0xe3, + 0x86, 0x86, 0xd1, 0xd3, 0xe6, 0xf7, 0xfd, 0xf, 0xae, 0xfe, + 0x7, 0x78, 0x51, 0x7c, 0x2b, 0xf0, 0xff, 00, 0x4f, 0x8c, + 0xa8, 0x59, 0xe7, 0x5f, 0x36, 0x43, 0x8e, 0xe6, 0xbd, 0x2, + 0xa3, 0xb7, 0x81, 0x2d, 0xa0, 0x8e, 0x14, 0x1b, 0x51, 0x14, + 0x28, 0x3, 0xd0, 0x54, 0x95, 0xf7, 0x54, 0x29, 0x2a, 0x14, + 0xa3, 0x4a, 0x3b, 0x25, 0x63, 0xef, 0xe9, 0x53, 0x54, 0xa1, + 0x18, 0x47, 0x64, 0x14, 0x51, 0x45, 0x6e, 0x6a, 0x7e, 0x70, + 0xff, 00, 0xc1, 0x43, 0xbf, 0xe0, 0x9c, 0x3a, 0xf7, 0xc6, + 0x5f, 0x19, 0x5d, 0x7c, 0x4c, 0xf8, 0x6b, 0xf6, 0x7b, 0x8d, + 0x7a, 0xea, 0x24, 0x1a, 0xae, 0x87, 0x33, 0x88, 0x9a, 0xe9, + 0xd1, 0x42, 0xac, 0xb1, 0x39, 0xf9, 0x77, 0x95, 0x55, 0x52, + 0xad, 0x8c, 0xed, 0x4, 0x1e, 0xb5, 0xf9, 0x9d, 0xe2, 0x4f, + 0xd9, 0xa7, 0xe2, 0xcf, 0x84, 0x2e, 0xe4, 0xb6, 0xd5, 0xfe, + 0x1b, 0x78, 0xaa, 0xce, 0x54, 0xfb, 0xc4, 0xe9, 0x13, 0xba, + 0x7e, 0xe, 0xaa, 0x54, 0xfe, 0x6, 0xbf, 0xa4, 0xfa, 0xe7, + 0xbe, 0x21, 0x78, 0xca, 0xdb, 0xe1, 0xe7, 0x81, 0xb5, 0xef, + 0x13, 0x5e, 0x47, 0x24, 0xd6, 0xfa, 0x55, 0x9c, 0xb7, 0x6d, + 0x14, 0x2a, 0x59, 0xe4, 0xda, 0xa4, 0x84, 0x50, 0x39, 0x2c, + 0xc7, 00, 0x1, 0xdc, 0xd3, 0xb9, 0x2d, 0x5c, 0xfe, 0x63, + 0xef, 0xac, 0x6e, 0x74, 0xcb, 0xb9, 0x6d, 0x6f, 0x2d, 0xe5, + 0xb4, 0xba, 0x85, 0xb6, 0x49, 0x4, 0xe8, 0x51, 0xd1, 0xbd, + 0xa, 0x9e, 0x41, 0xfa, 0xd5, 0x7a, 0xeb, 0x3e, 0x21, 0x5c, + 0x78, 0x93, 0xc5, 0xbe, 0x32, 0xd7, 0x7c, 0x49, 0xae, 0x69, + 0xb7, 0xb0, 0xea, 0x1a, 0xb5, 0xf4, 0xd7, 0xf7, 0x6, 0x68, + 0x1d, 0x70, 0xf2, 0x39, 0x72, 0x39, 0x1d, 0x1, 0x38, 0xaf, + 0xd9, 0xef, 0xf8, 0x27, 0x3f, 0xec, 0xbd, 0xe1, 0xaf, 0x8, + 0x7e, 0xcb, 0x5e, 0x1e, 0xbd, 0xf1, 0x2f, 0x86, 0xf4, 0xcd, + 0x5b, 0x58, 0xf1, 0x29, 0x3a, 0xcc, 0xe7, 0x52, 0xb1, 0x49, + 0x9a, 0x38, 0xe4, 00, 0x42, 0x9f, 0x38, 0x38, 0xc4, 0x6a, + 0xa7, 0x1e, 0xac, 0x69, 0xdc, 0x9b, 0x5c, 0xfc, 0x36, 0xa2, + 0xbf, 0xa4, 0x3d, 0x67, 0xf6, 0x53, 0xf8, 0x37, 0xe2, 0x2, + 0x7f, 0xb4, 0x3e, 0x17, 0xf8, 0x52, 0xe7, 0x3e, 0xba, 0x4c, + 0x23, 0xf9, 0x28, 0xae, 0x53, 0x54, 0xfd, 0x81, 0x7f, 0x67, + 0xbd, 0x5c, 0x62, 0x6f, 0x85, 0x5a, 0xc, 0x5f, 0xf5, 0xeb, + 0x1b, 0xc1, 0xff, 00, 0xa0, 0x30, 0xa5, 0x71, 0xf2, 0x9f, + 0xcf, 0x3d, 0x7d, 0x3f, 0xff, 00, 0x4, 0xe1, 0xf8, 0x2a, + 0x7e, 0x34, 0x7e, 0xd4, 0xfe, 0x18, 0x8e, 0xe2, 0x3, 0x2e, + 0x8f, 0xe1, 0xf6, 0xfe, 0xdc, 0xbe, 0xc8, 0x3b, 0x71, 0x9, + 0x6, 0x25, 0x27, 0xde, 0x53, 0x1f, 0xe0, 0xd, 0x7e, 0xa9, + 0x6a, 0x5f, 0xf0, 0x4c, 0x4f, 0xd9, 0xc3, 0x51, 0x18, 0xff, + 00, 0x84, 00, 0xda, 0xfb, 0xdb, 0x6a, 0x97, 0x69, 0xff, + 00, 0xb5, 0x6b, 0xd0, 0x3e, 00, 0xfe, 0xc8, 0x5f, 0xc, + 0xbf, 0x66, 0x6d, 0x43, 0x59, 0xbd, 0xf0, 0xe, 0x8d, 0x71, + 0xa6, 0xdc, 0xea, 0xd1, 0xc7, 0xd, 0xd3, 0xdc, 0x5e, 0xcb, + 0x72, 0x4a, 0x21, 0x62, 0xa1, 0x7c, 0xc2, 0x76, 0x8c, 0xb1, + 0xce, 0x3a, 0xf1, 0xe9, 0x45, 0xc3, 0x94, 0xf6, 0x7a, 0xfc, + 0xf8, 0xff, 00, 0x82, 0xc6, 0xfc, 0x66, 0x3e, 0x11, 0xf8, + 0x31, 0xa1, 0x7c, 0x3f, 0xb3, 0x98, 0xa5, 0xef, 0x8a, 0x6e, + 0xfc, 0xeb, 0x90, 0xa7, 0x9f, 0xb2, 0x5b, 0x95, 0x62, 0xf, + 0xd6, 0x46, 0x8f, 0xfe, 0xf9, 0x35, 0xfa, 0xf, 0x5f, 0x23, + 0xfe, 0xd6, 0x9f, 0xf0, 0x4f, 0x2d, 0x1b, 0xf6, 0xb2, 0xf1, + 0xd5, 0xaf, 0x8a, 0x35, 0x7f, 0x1c, 0x6b, 0x1a, 0x34, 0xf6, + 0x96, 0x6b, 0x65, 0x6d, 0x65, 0x6f, 0x6f, 0x14, 0x90, 0x44, + 0x80, 0x96, 0x24, 0x3, 0x83, 0x96, 0x66, 0x24, 0xf3, 0xd8, + 0x7a, 0x52, 0x29, 0x9f, 0x83, 0xf4, 0x57, 0xea, 0x9e, 0xa5, + 0xff, 00, 0x4, 0x45, 0xb5, 0x20, 0xfd, 0x83, 0xe2, 0xc4, + 0xca, 0x7b, 0xb, 0x9d, 0x10, 0x1f, 0xd5, 0x66, 0x15, 0xcf, + 0x5d, 0xff, 00, 0xc1, 0x11, 0xbc, 0x42, 0xaa, 0x4d, 0xaf, + 0xc5, 0x6d, 0x32, 0x46, 0xec, 0x26, 0xd1, 0xe4, 0x41, 0xf9, + 0x89, 0x4f, 0xf2, 0xaa, 0xb9, 0x16, 0x67, 0xe6, 0x66, 0x7, + 0xa5, 0x49, 0x14, 0xf2, 0x42, 0x7f, 0x77, 0x23, 0xc7, 0xfe, + 0xeb, 0x11, 0x5f, 0xa2, 0x1a, 0x87, 0xfc, 0x11, 0x57, 0xe2, + 0x44, 0x8, 0x4d, 0x9f, 0x8f, 0x3c, 0x31, 0x74, 0x7b, 0x2c, + 0x91, 0xdc, 0x47, 0xff, 00, 0xb2, 0x1a, 0xe3, 0xf5, 0x4f, + 0xf8, 0x23, 0xd7, 0xc7, 0x5b, 0x32, 0xdf, 0x65, 0xb9, 0xf0, + 0xb5, 0xfa, 0x8e, 0x9e, 0x5e, 0xa4, 0xe8, 0x4f, 0xfd, 0xf5, + 0x10, 0xa2, 0xe1, 0x66, 0x7c, 0x69, 0xa6, 0xf8, 0xcf, 0xc4, + 0x1a, 0x3b, 0x87, 0xb0, 0xd7, 0x75, 0x3b, 0x17, 0x1d, 0x1a, + 0xda, 0xf2, 0x48, 0xcf, 0xe8, 0xc2, 0xba, 0x9d, 0x3f, 0xf6, + 0x87, 0xf8, 0xa7, 0xa5, 0x38, 0x6b, 0x4f, 0x89, 0x1e, 0x2c, + 0x84, 0x8e, 0x9b, 0x75, 0xab, 0x9c, 0xf, 0xc3, 0x7d, 0x7b, + 0xce, 0xa5, 0xff, 00, 0x4, 0xab, 0xfd, 0xa2, 0x74, 0xf0, + 0x4a, 0x78, 0x5b, 0x4f, 0xbd, 0x3, 0xfe, 0x7d, 0x75, 0x68, + 0xe, 0x7f, 0xef, 0xa6, 0x15, 0xc9, 0xea, 0x7f, 0xf0, 0x4e, + 0xbf, 0xda, 0x27, 0x4a, 0x4, 0xbf, 0xc3, 0x2d, 0x46, 0x75, + 0x1d, 0xed, 0xae, 0x2d, 0xe5, 0xfd, 0x16, 0x4c, 0xd0, 0x16, + 0x67, 0x33, 0x61, 0xfb, 0x69, 0x7c, 0x76, 0xd3, 0x48, 0xf2, + 0x3e, 0x2b, 0xf8, 0xa7, 0x8e, 0x82, 0x4d, 0x41, 0xe4, 0x1f, + 0xf8, 0xf6, 0x6b, 0xa1, 0xb4, 0xff, 00, 0x82, 0x86, 0xfe, + 0xd1, 0x56, 0x61, 0x44, 0x7f, 0x14, 0xb5, 0x56, 0x3, 0xfe, + 0x7a, 0xc1, 0x6f, 0x27, 0xfe, 0x85, 0x19, 0xae, 0x67, 0x53, + 0xfd, 0x8d, 0xfe, 0x39, 0x69, 0x19, 0xfb, 0x4f, 0xc2, 0x9f, + 0x15, 0xe0, 0x75, 0x31, 0x69, 0x92, 0x4b, 0xff, 00, 0xa0, + 0x3, 0x5c, 0xdd, 0xd7, 0xec, 0xf7, 0xf1, 0x4a, 0xc7, 0x3f, + 0x68, 0xf8, 0x6f, 0xe2, 0xd8, 0x71, 0xd7, 0x7e, 0x87, 0x72, + 0x3f, 0xf6, 0x4a, 0x3, 0x53, 0xda, 0x2c, 0xbf, 0xe0, 0xa7, + 0x9f, 0xb4, 0x7d, 0x96, 0x3f, 0xe2, 0xbf, 0x17, 00, 0x76, + 0x9f, 0x4a, 0xb4, 0x6c, 0xff, 00, 0xe4, 0x2a, 0xea, 0x34, + 0xff, 00, 0xf8, 0x2b, 0x87, 0xed, 0x5, 0x64, 0x81, 0x65, + 0xd4, 0x3c, 0x3f, 0x7d, 0x8e, 0xf7, 0x1a, 0x4a, 0x82, 0x7f, + 0xef, 0x96, 0x5a, 0xf9, 0x4e, 0xf7, 0xe1, 0xaf, 0x8b, 0xf4, + 0xd0, 0x4d, 0xdf, 0x85, 0x75, 0xbb, 0x50, 0x3a, 0xf9, 0xfa, + 0x74, 0xc9, 0x8f, 0xcd, 0x6b, 0xe, 0xeb, 0x4f, 0xba, 0xb2, + 0x38, 0xb8, 0xb6, 0x9a, 0x3, 0xe9, 0x2c, 0x65, 0x7f, 0x9d, + 0x1, 0x76, 0x7d, 0xe7, 0xa5, 0x7f, 0xc1, 0x66, 0x3e, 0x30, + 0xda, 0x15, 0xfb, 0x6f, 0x87, 0x7c, 0x2b, 0x7e, 0x7, 0x5f, + 0xf4, 0x79, 0xa2, 0xcf, 0xe5, 0x25, 0x75, 0x76, 0x1f, 0xf0, + 0x5b, 0x3f, 0x18, 0xc5, 0x8f, 0xb6, 0xfc, 0x33, 0xd0, 0xee, + 0x3d, 0x7c, 0x8d, 0x42, 0x68, 0xbf, 0x9a, 0xb5, 0x7e, 0x6c, + 0xe4, 0x52, 0xd1, 0x60, 0xbb, 0x3f, 0x53, 0x74, 0xef, 0xf8, + 0x2d, 0xd0, 0x38, 0xfb, 0x7f, 0xc2, 0x82, 0xbe, 0xbf, 0x66, + 0xd6, 0xb3, 0xfc, 0xe1, 0x15, 0xd2, 0xd9, 0xff, 00, 0xc1, + 0x6c, 0xfc, 0x1a, 0xe0, 0x7d, 0xaf, 0xe1, 0xae, 0xbb, 0x11, + 0xef, 0xe4, 0xdf, 0x42, 0xff, 00, 0xcc, 0x2d, 0x7e, 0x46, + 0xd1, 0x45, 0x82, 0xec, 0xfd, 0x8f, 0xb1, 0xff, 00, 0x82, + 0xd2, 0xfc, 0x29, 0x9b, 0x2, 0xe7, 0xc1, 0x9e, 0x2e, 0xb6, + 0xf5, 0x2b, 0x1d, 0xb3, 0x8f, 0xfd, 0x1c, 0x2b, 0xa4, 0xd3, + 0xbf, 0xe0, 0xb0, 0xff, 00, 0x2, 0xef, 0x31, 0xf6, 0x9b, + 0x5f, 0x14, 0xd8, 0x13, 0xff, 00, 0x3d, 0x74, 0xd4, 0x70, + 0x3f, 0xef, 0x89, 0xd, 0x7e, 0x26, 0x51, 0x45, 0x87, 0xcc, + 0xcf, 0xdd, 0xdd, 0x3f, 0xfe, 0xa, 0xad, 0xfb, 0x3a, 0x5f, + 0x85, 0xdd, 0xe2, 0xbb, 0xfb, 0x46, 0x3f, 0xc3, 0x71, 0xa3, + 0xdc, 0x8c, 0x7e, 0x21, 0x8, 0xae, 0xb7, 0x4b, 0xff, 00, + 0x82, 0x89, 0x7e, 0xce, 0xfa, 0xaa, 0x6, 0x4f, 0x89, 0xba, + 0x6d, 0xb9, 0x3f, 0xc3, 0x75, 0xc, 0xd1, 0x1f, 0xd5, 0x2b, + 0xf9, 0xf5, 0xa2, 0x8b, 0x7, 0x31, 0xfd, 0x18, 0x69, 0xdf, + 0xb6, 0x8f, 0xc0, 0x8d, 0x51, 0x41, 0x83, 0xe2, 0xcf, 0x84, + 0xf9, 0xe8, 0x25, 0xd4, 0xe3, 0x88, 0xfe, 0x4e, 0x41, 0xae, + 0xa3, 0x4a, 0xfd, 0xa0, 0xbe, 0x18, 0x6b, 0x60, 0x7d, 0x83, + 0xe2, 0x1f, 0x85, 0xee, 0xf3, 0xff, 00, 0x3c, 0xb5, 0x7b, + 0x73, 0xff, 00, 0xb3, 0xd7, 0xf3, 0x4f, 0x45, 0x2b, 0x7, + 0x31, 0xfd, 0x3c, 0xd9, 0xf8, 0xff, 00, 0xc2, 0xfa, 0x81, + 0xc5, 0xaf, 0x89, 0x34, 0x8b, 0x92, 0x7b, 0x43, 0x7d, 0x13, + 0xff, 00, 0x26, 0xad, 0x58, 0x75, 0x5b, 0x2b, 0x83, 0x88, + 0xaf, 0x2d, 0xe4, 0x3e, 0x89, 0x2a, 0x9f, 0xeb, 0x5f, 0xcb, + 0x86, 0x7, 0xa5, 0x5a, 0xb4, 0xd5, 0x2f, 0x34, 0xf6, 0x6, + 0xd6, 0xee, 0x7b, 0x62, 0x3a, 0x18, 0x65, 0x64, 0xfe, 0x46, + 0x8b, 0xf, 0x98, 0xfe, 0xa3, 0x83, 0x3, 0xd0, 0x83, 0x4b, + 0x5f, 0xcc, 0x86, 0x9f, 0xf1, 0x5b, 0xc6, 0xda, 0x49, 0x6, + 0xc7, 0xc6, 0x3a, 0xfd, 0x91, 0x1d, 0xd, 0xbe, 0xa9, 0x3c, + 0x7f, 0xc9, 0xeb, 0xa8, 0xd2, 0xff, 00, 0x6a, 0x6f, 0x8c, + 0x5a, 0x2c, 0x8a, 0xf6, 0x9f, 0x14, 0x3c, 0x5a, 0x85, 0x7a, + 0x6f, 0xd6, 0x27, 0x90, 0x7e, 0x4c, 0xc4, 0x51, 0x60, 0xe6, + 0x3f, 0xa4, 0x7a, 0x2b, 0xf9, 0xe6, 0xb3, 0xfd, 0xbf, 0x3f, + 0x68, 0x4b, 0x12, 0xbe, 0x5f, 0xc5, 0x5d, 0x71, 0xb6, 0xf4, + 0x12, 0x98, 0xe4, 0x1f, 0xf8, 0xf2, 0x1a, 0xe8, 0xec, 0x7f, + 0xe0, 0xa6, 0x9f, 0xb4, 0x7d, 0x96, 0xd1, 0xff, 00, 0xb, + 0xd, 0xee, 0x15, 0x7b, 0x4f, 0xa6, 0x5a, 0x36, 0x7e, 0xa7, + 0xca, 0xcd, 0x16, 0xe, 0x64, 0x7e, 0xfb, 0x51, 0x5f, 0x86, + 0x76, 0x3f, 0xf0, 0x56, 0xcf, 0xda, 0x12, 0xce, 0x35, 0x57, + 0xd5, 0x34, 0x2b, 0xbc, 0x7f, 0x14, 0xfa, 0x42, 0x64, 0xff, + 00, 0xdf, 0x24, 0x56, 0xdd, 0x97, 0xfc, 0x16, 0x33, 0xe3, + 0xad, 0xb6, 0x4, 0xda, 0x7f, 0x84, 0x2e, 0xfd, 0xe4, 0xd3, + 0x66, 0x53, 0xff, 00, 0x8e, 0xce, 0x28, 0xb0, 0x5d, 0x1f, + 0xb6, 0x34, 0x57, 0xe3, 0xb6, 0x9d, 0xff, 00, 0x5, 0xa8, + 0xf8, 0x9b, 0x2, 0xa8, 0xbd, 0xf0, 0x3f, 0x85, 0xee, 0xdb, + 0xb9, 0x8d, 0xae, 0x22, 0xcf, 0xfe, 0x3e, 0x6b, 0xa5, 0xd3, + 0xff, 00, 0xe0, 0xb7, 0x1a, 0xfc, 0x78, 0xfb, 0x77, 0xc2, + 0xbd, 0x36, 0x7f, 0xfa, 0xf7, 0xd5, 0xe4, 0x8f, 0xf9, 0xc4, + 0xd4, 0x58, 0x77, 0x47, 0xeb, 0x25, 0x15, 0xf9, 0x8b, 0xa5, + 0x7f, 0xc1, 0x6e, 0x34, 0x77, 0x51, 0xfd, 0xa5, 0xf0, 0xae, + 0xfa, 0x16, 0xef, 0xf6, 0x5d, 0x5d, 0x24, 0x1f, 0xf8, 0xf4, + 0x6b, 0x5d, 0xd, 0xaf, 0xfc, 0x16, 0xbf, 0xe1, 0xe3, 0x91, + 0xf6, 0x9f, 0x87, 0xbe, 0x27, 0x88, 0x7a, 0xc5, 0x35, 0xb3, + 0xff, 00, 0x37, 0x5a, 0x2, 0xe8, 0xfd, 0x19, 0xa2, 0xbe, + 0x1, 0xd3, 0x7f, 0xe0, 0xb3, 0xbf, 0x7, 0xae, 0xdc, 0xb, + 0xaf, 0xc, 0x78, 0xc2, 0xc4, 0x7f, 0x79, 0xed, 0xad, 0x9c, + 0x7f, 0xe3, 0xb3, 0x1a, 0xeb, 0x74, 0xef, 0xf8, 0x2b, 0x87, + 0xec, 0xfb, 0x79, 0x8f, 0x3b, 0x50, 0xd7, 0xac, 0x49, 0xff, + 00, 0x9e, 0xfa, 0x4b, 0x9c, 0x7f, 0xdf, 0x24, 0xd2, 0xb, + 0xa3, 0xed, 0x1a, 0x2b, 0xe5, 0x5d, 0x33, 0xfe, 0xa, 0x7d, + 0xfb, 0x39, 0xea, 0x78, 0x1f, 0xf0, 0x9d, 0x3d, 0xa1, 0x3d, + 0xae, 0xb4, 0xcb, 0x94, 0xfd, 0x7c, 0xbc, 0x57, 0x57, 0xa6, + 0xfe, 0xdf, 0x1f, 0xb3, 0xee, 0xa8, 0x7, 0x95, 0xf1, 0x4f, + 0x42, 0x8c, 0x9e, 0xd7, 0x12, 0x3c, 0x47, 0xff, 00, 0x1e, + 0x51, 0x40, 0xcf, 0x7f, 0xa2, 0xbc, 0x9b, 0x4e, 0xfd, 0xad, + 0x7e, 0xb, 0x6a, 0xc4, 0xb, 0x5f, 0x8a, 0x7e, 0x13, 0x90, + 0x9e, 0xcd, 0xab, 0xc2, 0xa7, 0xf5, 0x61, 0x5d, 0x4d, 0x87, + 0xc6, 0x4f, 00, 0xea, 0xb8, 0xfb, 0x17, 0x8d, 0xbc, 0x3b, + 0x77, 0x9e, 0x9e, 0x4e, 0xab, 0x3, 0x67, 0xf2, 0x7a, 00, + 0xec, 0x28, 0xac, 0x9b, 0x7f, 0x17, 0x68, 0x57, 0x78, 0xf2, + 0x35, 0xad, 0x3a, 0x6c, 0xff, 00, 0xcf, 0x3b, 0xa8, 0xdb, + 0xf9, 0x1a, 0xd0, 0x8a, 0xf2, 0x9, 0xff, 00, 0xd5, 0xcf, + 0x1c, 0x9f, 0xee, 0xb8, 0x34, 0x1, 0x35, 0x14, 0x51, 0x40, + 0x5, 0x14, 0x51, 0x40, 0x5, 0x14, 0x51, 0x40, 0x5, 0x14, + 0x51, 0x40, 0x5, 0x23, 0x28, 0x60, 0x41, 00, 0x83, 0xd4, + 0x1a, 0x5a, 0x28, 0x3, 0x97, 0xd5, 0xbe, 0x19, 0x78, 0x5b, + 0x5b, 0x2c, 0xd7, 0x5a, 0x25, 0xae, 0xf6, 0xeb, 0x24, 0x4b, + 0xe5, 0x31, 0xfc, 0x57, 0x15, 0xc5, 0xea, 0xff, 00, 0xb3, + 0x7e, 0x83, 0x76, 0x4b, 0x58, 0x5e, 0xdd, 0xd8, 0x1e, 0xca, + 0xc4, 0x4a, 0xbf, 0xae, 0xf, 0xeb, 0x5e, 0xb9, 0x45, 0x79, + 0xd5, 0xb2, 0xec, 0x1e, 0x23, 0xf8, 0x94, 0x93, 0xf9, 0x59, + 0xfd, 0xe8, 0xc2, 0x74, 0x29, 0x4f, 0xe2, 0x8a, 0x3e, 0x7b, + 0xbd, 0xfd, 0x99, 0xb5, 0x38, 0xf2, 0x6d, 0x35, 0x9b, 0x59, + 0x87, 0x61, 0x34, 0x4d, 0x1f, 0xf2, 0xdd, 0x58, 0x17, 0xbf, + 0xb3, 0xff, 00, 0x8b, 0xad, 0x9, 0xf2, 0xe0, 0xb5, 0xbb, + 0x3, 0xbc, 0x33, 0x8f, 0xfd, 0x9b, 0x15, 0xf5, 0x1d, 0x15, + 0xe4, 0x54, 0xe1, 0xcc, 0x4, 0xfe, 0x14, 0xd7, 0xa3, 0xff, + 00, 0x3b, 0x9c, 0xb2, 0xc0, 0x51, 0x7b, 0x68, 0x7c, 0x87, + 0x3f, 0xc2, 0x3f, 0x18, 0x5b, 0xe7, 0x76, 0x83, 0x72, 0xc3, + 0xd5, 0xa, 0xb7, 0xf2, 0x35, 0x49, 0xfe, 0x1d, 0x78, 0xa2, + 0x33, 0xcf, 0x87, 0xf5, 0x1f, 0xc2, 0xd9, 0xcf, 0xf4, 0xaf, + 0xb2, 0x68, 0xae, 0x27, 0xc2, 0xd8, 0x6e, 0x95, 0x25, 0xf8, + 0x7f, 0x91, 0x93, 0xcb, 0xa1, 0xd2, 0x4c, 0xf8, 0xd0, 0x7c, + 0x3d, 0xf1, 0x3b, 0x1e, 0x3c, 0x3f, 0xa9, 0x7f, 0xe0, 0x2b, + 0xff, 00, 0x85, 0x5c, 0xb7, 0xf8, 0x53, 0xe2, 0xeb, 0xaf, + 0xb9, 0xa0, 0x5d, 0x8f, 0xfa, 0xe8, 0x2, 0x7f, 0xe8, 0x44, + 0x57, 0xd7, 0xf4, 0x50, 0xb8, 0x5b, 0xf, 0xd6, 0xa4, 0xbf, + 0xf, 0xf2, 0x5, 0x97, 0x43, 0xac, 0x99, 0xf2, 0xe6, 0x9f, + 0xf0, 0x3, 0xc5, 0xb7, 0xa4, 0x79, 0xb0, 0x5b, 0x59, 0x2f, + 0xac, 0xf3, 0x83, 0xfa, 0x2e, 0x6b, 0xa9, 0xd2, 0xbf, 0x66, + 0x59, 0x4b, 0x2b, 0x6a, 0x5a, 0xda, 0x2a, 0xf7, 0x4b, 0x58, + 0x72, 0x7f, 0xef, 0xa6, 0x3f, 0xd2, 0xbd, 0xea, 0x8a, 0xef, + 0xa5, 0xc3, 0xb8, 0xa, 0x7a, 0xca, 0x2e, 0x5e, 0xaf, 0xfc, + 0xac, 0x6d, 0x1c, 0xd, 0x18, 0xee, 0xae, 0x71, 0x5e, 0x1e, + 0xf8, 0x3d, 0xe1, 0x6f, 0xe, 0xec, 0x78, 0xf4, 0xd5, 0xbc, + 0xb8, 0x5e, 0x7c, 0xeb, 0xc3, 0xe6, 0x1c, 0xfa, 0xe0, 0xf0, + 0x3f, 0x1, 0x5d, 0xa0, 0x1, 0x40, 00, 0x60, 0xe, 0x80, + 0x52, 0xd1, 0x5e, 0xfd, 0x1a, 0x14, 0xb0, 0xf1, 0xe5, 0xa5, + 0x15, 0x15, 0xe4, 0x8e, 0xd8, 0xc2, 0x30, 0x56, 0x8a, 0xb0, + 0x51, 0x45, 0x15, 0xb9, 0x61, 0x45, 0x14, 0x50, 0x1, 0x45, + 0x14, 0x50, 0x7, 0x1, 0xf1, 0xa6, 0xef, 0xec, 0xde, 0x11, + 0x7f, 0x73, 0x5f, 0xa, 0x6b, 0x72, 0x79, 0x97, 0x97, 0xc, + 0x7b, 0xb1, 0xaf, 0xb5, 0x7f, 0x68, 0x1b, 0x9f, 0x27, 0xc3, + 0x8, 0x9e, 0xb9, 0x35, 0xf1, 0x1e, 0xa8, 0xfb, 0xa4, 0x94, + 0xfa, 0xb1, 0xaf, 0xce, 0xf3, 0xd9, 0x73, 0x63, 0x23, 0x1e, + 0xc8, 0xfc, 0xfb, 0x89, 0x67, 0xef, 0x24, 0x78, 0x67, 0xc7, + 0x2b, 0x8d, 0x9a, 0x5c, 0xe3, 0xfd, 0x93, 0xfc, 0xab, 0xf5, + 0x97, 0xf6, 0x7f, 0xd2, 0x46, 0x85, 0xf0, 0x37, 0xc0, 0x16, + 0xb, 0x9c, 0x41, 0xa1, 0x59, 0xaf, 0x3e, 0xbe, 0x4a, 0xe6, + 0xbf, 0x22, 0xfe, 0x38, 0x39, 0x9a, 0x23, 0xa, 0xe5, 0x9a, + 0x46, 0x8, 00, 0xea, 0x49, 0xe2, 0xbf, 0x68, 0x3c, 0x33, + 0x62, 0x9a, 0x5f, 0x86, 0xf4, 0xab, 0x38, 0xc6, 0xd4, 0xb7, + 0xb4, 0x8a, 0x25, 0x7, 0xb0, 0x54, 0x3, 0xfa, 0x57, 0xd5, + 0xe5, 0x6a, 0xd4, 0x51, 0x5c, 0x1d, 0x1b, 0x61, 0x27, 0x2e, + 0xf2, 0x66, 0x9d, 0x14, 0x51, 0x5e, 0xc9, 0xf7, 0xe7, 0xe7, + 0xef, 0xc5, 0xdf, 0x13, 0x3f, 0x8b, 0x3e, 0x26, 0xf8, 0x82, + 0xf9, 0xf8, 0xb, 0x72, 0x6d, 0x90, 0x7a, 0x2c, 0x7f, 0x20, + 0xff, 00, 0xd0, 0x49, 0xfc, 0x6b, 0xdc, 0xbf, 0x64, 0xbf, + 0x8, 0xf9, 0x76, 0xd7, 0xda, 0xe4, 0xa9, 0xc9, 0x3e, 0x54, + 0x44, 0xfe, 0xb5, 0xf3, 0x7d, 0xfc, 0x6f, 0xa9, 0xf8, 0xdf, + 0x58, 0x86, 0x31, 0xba, 0x49, 0x35, 0x3b, 0x85, 00, 0x7a, + 0xf9, 0xad, 0x5f, 0x7c, 0x7c, 0x35, 0xf0, 0xd2, 0x78, 0x53, + 0xc1, 0x9a, 0x6d, 0x82, 0xa0, 0x46, 0x58, 0x83, 0x3f, 0xfb, + 0xc4, 0x57, 0xc1, 0x65, 0x94, 0x25, 0x5f, 0x30, 0x95, 0x59, + 0xfd, 0x9b, 0xbf, 0x9b, 0x3f, 0x39, 0xe1, 0xfa, 0x6f, 0x17, + 0x89, 0x9e, 0x2a, 0x7d, 0x2e, 0xfe, 0x6c, 0xea, 0x28, 0xa2, + 0x8a, 0xfb, 0xd3, 0xf4, 0x60, 0xa2, 0x8a, 0x28, 00, 0xa2, + 0x9a, 0xe8, 0x1c, 0x60, 0xe7, 0xd7, 0x83, 0x8a, 0x5c, 0x7b, + 0x9a, 00, 0xaf, 0x73, 0xa6, 0xda, 0x5e, 0x29, 0x17, 0x16, + 0xb0, 0xce, 0xf, 0x69, 0x23, 0xd, 0xfc, 0xc5, 0x4f, 0x1c, + 0x49, 0xc, 0x6b, 0x1c, 0x68, 0xb1, 0xc6, 0x80, 0x2a, 0xaa, + 0x8c, 00, 0x7, 0x40, 0x5, 0x3a, 0x8a, 00, 0x28, 0xa2, + 0x8a, 00, 0x28, 0xa2, 0x8a, 00, 0x28, 0xa2, 0x8a, 00, + 0x28, 0xa2, 0x8a, 00, 0x28, 0xa2, 0x8a, 00, 0x28, 0xa2, + 0x8a, 00, 0x28, 0xa2, 0x8a, 00, 0x46, 0x50, 0xc3, 0x4, + 0x2, 0x3d, 0xd, 0x67, 0x5e, 0x78, 0x6b, 0x48, 0xd4, 0x3f, + 0xe3, 0xeb, 0x4a, 0xb2, 0xb9, 0xff, 00, 0xae, 0xd6, 0xe8, + 0xff, 00, 0xcc, 0x56, 0x95, 0x14, 0x1, 0xc5, 0x6a, 0x9f, + 0x4, 0xfe, 0x1e, 0xeb, 0x60, 0x8d, 0x43, 0xc0, 0xde, 0x1c, + 0xbd, 0xdd, 0xd7, 0xcf, 0xd2, 0xa0, 0x7c, 0xfe, 0x6b, 0x5c, + 0xa6, 0xa7, 0xfb, 0x1f, 0x7c, 0x10, 0xd6, 0x14, 0x8b, 0xbf, + 0x85, 0x5e, 0x13, 0x70, 0x7a, 0xec, 0xd2, 0xa2, 0x4f, 0xfd, + 0x4, 0xa, 0xf6, 0xa, 0x28, 0x3, 0xe7, 0x4d, 0x57, 0xfe, + 0x9, 0xe5, 0xfb, 0x3c, 0x6a, 0xe0, 0x89, 0x7e, 0x18, 0x69, + 0x50, 0xe7, 0xfe, 0x7d, 0x64, 0x9a, 0xf, 0xfd, 0x1, 0xc5, + 0x72, 0xb7, 0x9f, 0xf0, 0x4a, 0xff, 00, 0xd9, 0xbe, 0xe8, + 0xb1, 0x5f, 0x5, 0xdd, 0xdb, 0x13, 0xff, 00, 0x3c, 0x75, + 0xab, 0xce, 0x3f, 0x3, 0x29, 0x15, 0xf5, 0xad, 0x14, 0x1, + 0xf1, 0x76, 0xa3, 0xff, 00, 0x4, 0x8e, 0xfd, 0x9f, 0x6f, + 0x50, 0xac, 0x1a, 0x7e, 0xbf, 0xa7, 0x9f, 0xef, 0x41, 0xab, + 0xbb, 0x1f, 0xfc, 0x7c, 0x35, 0x72, 0xba, 0x97, 0xfc, 0x11, + 0x97, 0xe0, 0xe5, 0xca, 0x9f, 0xb1, 0x78, 0x93, 0xc5, 0xd6, + 0x4d, 0xfe, 0xd5, 0xd5, 0xbc, 0x80, 0x7e, 0x70, 0x8a, 0xfb, + 0xee, 0x8a, 0x5, 0x64, 0x7e, 0x6d, 0xea, 0x1f, 0xf0, 0x44, + 0xdf, 0x5, 0xbc, 0x6d, 0xf6, 0x1f, 0x89, 0x1a, 0xf4, 0x2f, + 0xfc, 0x3f, 0x68, 0xb3, 0x82, 0x40, 0x3f, 0x2d, 0xb5, 0xc8, + 0xea, 0x1f, 0xf0, 0x44, 0x5b, 0x80, 0x18, 0xd8, 0xfc, 0x58, + 0x8c, 0x9f, 0xe1, 0x5b, 0x8d, 0x10, 0x8f, 0xcc, 0x89, 0xbf, + 0xa5, 0x7e, 0xa9, 0x51, 0x4c, 0x2c, 0x8f, 0xc8, 0x5b, 0xff, + 00, 0xf8, 0x22, 0x7f, 0x8e, 0xe2, 0xc, 0x6c, 0xfe, 0x22, + 0xf8, 0x7e, 0xe3, 0xfb, 0xa2, 0x6b, 0x49, 0xe3, 0xcf, 0xe5, + 0xba, 0xb9, 0x1d, 0x43, 0xfe, 0x8, 0xd9, 0xf1, 0xba, 0xd9, + 0x9b, 0xec, 0xba, 0xcf, 0x83, 0xef, 0x10, 0x74, 0xcd, 0xfc, + 0xf1, 0xb1, 0xfc, 0xc, 0x18, 0xfd, 0x6b, 0xf6, 0xa2, 0x8a, + 0x2e, 0x16, 0x47, 0xe1, 0xd5, 0xd7, 0xfc, 0x12, 0x2b, 0xf6, + 0x81, 0xb7, 0x56, 0x29, 0x69, 0xe1, 0xcb, 0x9c, 0x76, 0x8b, + 0x56, 0x19, 0x3f, 0xf7, 0xd2, 0xa, 0xe6, 0x35, 0x1f, 0xf8, + 0x25, 0xef, 0xed, 0x1b, 0x60, 0x5b, 0x6f, 0x81, 0xa2, 0xbc, + 0xb, 0xde, 0xdb, 0x55, 0xb5, 0x39, 0xfa, 0x66, 0x40, 0x6b, + 0xf7, 0xb2, 0x8a, 0x2e, 0x2e, 0x54, 0x7f, 0x3d, 0x77, 0xdf, + 0xf0, 0x4f, 0xdf, 0xda, 0x1b, 0x4f, 0x24, 0x49, 0xf0, 0xb3, + 0x59, 0x7c, 0x77, 0x80, 0xc5, 0x2f, 0xfe, 0x82, 0xe6, 0xb9, + 0x2d, 0x53, 0xf6, 0x4e, 0xf8, 0xd1, 0xa3, 0xbb, 0x25, 0xd7, + 0xc2, 0xdf, 0x16, 0x23, 0x2f, 0x5f, 0x2f, 0x48, 0x9a, 0x4f, + 0xfd, 0x5, 0x4d, 0x7f, 0x48, 0x34, 0x51, 0x70, 0xe5, 0x3f, + 0x99, 0x4d, 0x47, 0xe1, 0xf, 0x8e, 0xf4, 0x76, 0x2b, 0x7d, + 0xe0, 0xaf, 0x11, 0x59, 0xb0, 0xea, 0x27, 0xd2, 0xa7, 0x4c, + 0x7e, 0x69, 0x5c, 0xf5, 0xe6, 0x8d, 0xa8, 0x69, 0xcc, 0x56, + 0xee, 0xc6, 0xe6, 0xd4, 0x8e, 0xa2, 0x68, 0x59, 0x3f, 0x98, + 0xaf, 0xea, 0x2c, 0x80, 0x7a, 0x8a, 0xad, 0x71, 0xa5, 0x59, + 0x5d, 0xff, 00, 0xaf, 0xb3, 0xb7, 0x9b, 0xfe, 0xba, 0x44, + 0xad, 0xfc, 0xc5, 0x17, 0xe, 0x53, 0xf9, 0x70, 0xc8, 0xf5, + 0xa5, 0xaf, 0xe9, 0xe6, 0xeb, 0xe1, 0xf7, 0x85, 0xaf, 0xb3, + 0xf6, 0x9f, 0xd, 0x69, 0x17, 0x19, 0xeb, 0xe6, 0xd8, 0x44, + 0xd9, 0xfc, 0xd6, 0xb9, 0xcd, 0x4f, 0xf6, 0x78, 0xf8, 0x5b, + 0xac, 0xe7, 0xed, 0xdf, 0xe, 0xbc, 0x2d, 0x73, 0x9e, 0xbe, + 0x66, 0x91, 0x1, 0xcf, 0xfe, 0x39, 0x45, 0xc5, 0xca, 0x7f, + 0x35, 0x34, 0x57, 0xf4, 0x53, 0xa8, 0xfe, 0xc4, 0x7f, 0x1, + 0x75, 0x56, 0x2d, 0x3f, 0xc2, 0x7f, 0xb, 0x86, 0x3d, 0x4c, + 0x36, 0xb, 0x17, 0xfe, 0x83, 0x8a, 0xe5, 0xb5, 0x3f, 0xf8, + 0x26, 0xf7, 0xec, 0xeb, 0xaa, 0x67, 0x77, 0xc3, 0x8b, 0x4b, + 0x62, 0x7f, 0xe7, 0xd6, 0xee, 0xe2, 0x2f, 0xe5, 0x25, 0x17, + 0xe, 0x53, 0xf9, 0xff, 00, 0xa2, 0xbf, 0x75, 0x35, 0x5f, + 0xf8, 0x24, 0xf7, 0xec, 0xf1, 0xa8, 0xee, 0x31, 0x78, 0x7f, + 0x56, 0xd3, 0xc9, 0xef, 0x6b, 0xab, 0xcd, 0xc7, 0xe0, 0xe5, + 0xab, 0x91, 0xd4, 0x3f, 0xe0, 0x8d, 0x9f, 0x5, 0x2e, 0x77, + 0x7d, 0x9b, 0x5a, 0xf1, 0x75, 0x91, 0x3d, 0x36, 0xdf, 0x42, + 0xe0, 0x7f, 0xdf, 0x50, 0xd3, 0xb8, 0x72, 0x9f, 0x8b, 0x34, + 0x57, 0xec, 0x35, 0xd7, 0xfc, 0x11, 0x53, 0xe1, 0x9b, 0x83, + 0xf6, 0x7f, 0x1e, 0x78, 0xae, 0x13, 0xdb, 0xcc, 0x5b, 0x67, + 0x3, 0xf2, 0x8c, 0x57, 0x3f, 0xa8, 0x7f, 0xc1, 0x12, 0x7c, + 0x3a, 0xc0, 0xfd, 0x87, 0xe2, 0x8e, 0xa9, 0x19, 0xec, 0x2e, + 0x34, 0xb8, 0xdf, 0xf5, 0xe, 0x28, 0xb8, 0xac, 0xcf, 0xc9, + 0x9a, 0x2b, 0xf4, 0xeb, 0x51, 0xff, 00, 0x82, 0x23, 0x6a, + 0xe1, 0x98, 0xd8, 0x7c, 0x56, 0xb2, 0x65, 0xec, 0xb7, 0x1a, + 0x33, 0x83, 0xf9, 0x89, 0x4f, 0xf2, 0xae, 0x5b, 0x52, 0xff, + 00, 0x82, 0x2b, 0x7c, 0x4a, 0x81, 0x8f, 0xd8, 0x7c, 0x75, + 0xe1, 0x8b, 0xb5, 0x1d, 0x3c, 0xe4, 0xb8, 0x88, 0x9f, 0xc9, + 0x1a, 0x8b, 0x85, 0x99, 0xf9, 0xdd, 0x49, 0x5f, 0x73, 0xea, + 0x7f, 0xf0, 0x47, 0x7f, 0x8e, 0x76, 0x84, 0xfd, 0x92, 0xf7, + 0xc2, 0xb7, 0xeb, 0xfe, 0xce, 0xa3, 0x22, 0x1f, 0xfc, 0x7a, + 0x2a, 0xe3, 0xb5, 0x4f, 0xf8, 0x25, 0x87, 0xed, 0x1b, 0xa7, + 0x48, 0x56, 0x2f, 0x7, 0xd9, 0xea, 00, 0x7f, 0x1d, 0xae, + 0xaf, 0x6d, 0x83, 0xff, 00, 0x7d, 0xba, 0x9a, 0x2e, 0x16, + 0x67, 0xc9, 0x40, 0xed, 0x39, 0x1c, 0x1f, 0x51, 0x5a, 0xda, + 0x77, 0x8b, 0xb5, 0xdd, 0x1d, 0x81, 0xb0, 0xd6, 0xb5, 0x1b, + 0x12, 0x3a, 0x1b, 0x6b, 0xb9, 0x23, 0xc7, 0xe4, 0x45, 0x7b, + 0xe5, 0xdf, 0xfc, 0x13, 0x8f, 0xf6, 0x8e, 0xb3, 0x7d, 0xad, + 0xf0, 0xc2, 0xfe, 0x4f, 0x78, 0x6f, 0x2d, 0x5c, 0x7e, 0x92, + 0xd6, 0xe, 0xa3, 0xfb, 0xc, 0x7c, 0x7e, 0xd2, 0x89, 0x13, + 0xfc, 0x28, 0xf1, 0x23, 0x63, 0xbc, 0x16, 0xbe, 0x70, 0xfc, + 0xd0, 0x9a, 0x3, 0x53, 0x85, 0xb0, 0xf8, 0xf3, 0xf1, 0x2f, + 0x4b, 0x60, 0xd6, 0x9f, 0x10, 0x7c, 0x53, 0x6e, 0x47, 0x4d, + 0x9a, 0xcd, 0xc0, 0xc7, 0xfe, 0x3f, 0x5d, 0x4e, 0x9f, 0xfb, + 0x63, 0xfc, 0x71, 0xd2, 0xd9, 0x4d, 0xbf, 0xc5, 0x5f, 0x15, + 0x64, 0x74, 0xf3, 0x75, 0x29, 0x25, 0x1f, 0x93, 0x13, 0x58, + 0xfa, 0xaf, 0xec, 0xcb, 0xf1, 0x73, 0x44, 0x24, 0x5e, 0xfc, + 0x32, 0xf1, 0x64, 0x4, 0x7a, 0xe8, 0xd7, 0x7, 0xf9, 0x25, + 0x73, 0x1a, 0x9f, 0xc3, 0x3f, 0x18, 0x68, 0x80, 0x9d, 0x47, + 0xc2, 0x7a, 0xe5, 0x80, 0x1d, 0x4d, 0xd6, 0x9b, 0x34, 0x7f, + 0xfa, 0x12, 0x8a, 0x3, 0x53, 0xda, 0x6c, 0x7f, 0xe0, 0xa2, + 0x5f, 0xb4, 0x55, 0x86, 0xd0, 0xbf, 0x13, 0xf5, 0x39, 0x40, + 0xed, 0x3c, 0x16, 0xf2, 0x7f, 0x38, 0xeb, 0xa8, 0xd3, 0xbf, + 0xe0, 0xa9, 0xdf, 0xb4, 0x66, 0x9e, 0x81, 0x4f, 0x8c, 0x6d, + 0x2e, 0xc0, 0xff, 00, 0x9f, 0x8d, 0x22, 0xd5, 0x89, 0xfc, + 0x42, 0x3, 0x5f, 0x28, 0x4f, 0x65, 0x71, 0x6a, 0x71, 0x34, + 0x12, 0xc2, 0x7f, 0xe9, 0xa2, 0x15, 0xfe, 0x75, 0x6, 0x47, + 0xad, 0x1, 0x76, 0x7d, 0xb1, 0x67, 0xff, 00, 0x5, 0x79, + 0xf8, 0xff, 00, 0x6a, 0xa0, 0x49, 0x37, 0x86, 0xae, 0xcf, + 0xf7, 0xa6, 0xd2, 0x70, 0x4f, 0xfd, 0xf2, 0xeb, 0x5b, 0x96, + 0x3f, 0xf0, 0x59, 0x6f, 0x8d, 0x76, 0xe0, 0xb, 0x8d, 0x7, + 0xc1, 0xb7, 0x63, 0xb9, 0x36, 0x37, 0x8, 0x4f, 0xe5, 0x3d, + 0x7c, 0x19, 0x45, 0x16, 0xb, 0xb3, 0xf4, 0x7f, 0x4a, 0xff, + 00, 0x82, 0xd8, 0x78, 0xe6, 0x8, 0xf1, 0xa8, 0xfc, 0x39, + 0xd0, 0x2f, 0x1f, 0xfb, 0xd6, 0xf7, 0x93, 0x40, 0x3f, 0x22, + 0x1e, 0xba, 0x8d, 0x27, 0xfe, 0xb, 0x73, 0x37, 0xfc, 0xc4, + 0xfe, 0x14, 0x47, 0xff, 00, 0x6e, 0x9a, 0xc9, 0xff, 00, + 0xd9, 0xa1, 0xaf, 0xcb, 0x8a, 0x28, 0xb0, 0x5d, 0x9f, 0xad, + 0xfa, 0x5f, 0xfc, 0x16, 0xcf, 0xc2, 0x12, 0x11, 0xfd, 0xa3, + 0xf0, 0xd3, 0x5b, 0xb7, 0x1d, 0xcd, 0xad, 0xf4, 0x32, 0xff, + 00, 0xe8, 0x41, 0x6b, 0xa8, 0xd3, 0x3f, 0xe0, 0xb3, 0xdf, + 0x8, 0xae, 0xdc, 0xb, 0xbf, 0xa, 0xf8, 0xb6, 0xc4, 0x7f, + 0x78, 0xc1, 0x6f, 0x27, 0xf2, 0x96, 0xbf, 0x1a, 0x28, 0xa2, + 0xc1, 0xcc, 0xcf, 0xdc, 0x3b, 0x1f, 0xf8, 0x2b, 0xb7, 0xec, + 0xff, 00, 0x76, 0x47, 0x9d, 0x75, 0xe2, 0x3b, 0x2f, 0x79, + 0xb4, 0x92, 0x7f, 0xf4, 0x6, 0x6a, 0xdc, 0xb3, 0xff, 00, + 0x82, 0xaa, 0x7e, 0xce, 0x57, 0x6c, 0x14, 0xf8, 0xbe, 0xfa, + 0xdf, 0x3d, 0xe6, 0xd1, 0xae, 0x80, 0x1f, 0x94, 0x66, 0xbf, + 0x8, 0x28, 0xa2, 0xc3, 0xe6, 0x3f, 0xa0, 0xd, 0x3f, 0xfe, + 0xa, 0x47, 0xfb, 0x39, 0x6a, 0x2c, 0x15, 0x3e, 0x25, 0x5a, + 0x42, 0x4f, 0xfc, 0xfc, 0x59, 0x5d, 0x44, 0x3f, 0x36, 0x88, + 0xa, 0xea, 0x6c, 0x3f, 0x6d, 0xef, 0x80, 0x9a, 0x88, 0x5f, + 0x27, 0xe2, 0xcf, 0x85, 0x81, 0x6e, 0x82, 0x5d, 0x41, 0x63, + 0x3f, 0x93, 0x62, 0xbf, 0x9d, 0x6a, 0x29, 0x58, 0x39, 0x8f, + 0xe9, 0x53, 0x4e, 0xfd, 0xa2, 0xfe, 0x16, 0x6a, 0xca, 0xd, + 0x9f, 0xc4, 0x6f, 0xb, 0x4e, 0xf, 0x4d, 0xba, 0xc4, 0x1c, + 0xff, 00, 0xe3, 0xf5, 0xd3, 0xd8, 0x78, 0xf3, 0xc3, 0x5a, + 0xa8, 0x6, 0xcb, 0xc4, 0x3a, 0x55, 0xd8, 0x3d, 0xc, 0x17, + 0xb1, 0xbe, 0x7f, 0x26, 0xaf, 0xe6, 0x12, 0x95, 0x58, 0xa9, + 0xc8, 0x24, 0x1f, 0x6a, 0x2c, 0x1c, 0xc7, 0xf5, 0x23, 0xd, + 0xed, 0xbd, 0xc8, 0x6, 0x29, 0xe2, 0x94, 0x1f, 0xee, 0x38, + 0x3f, 0xca, 0xa6, 0xaf, 0xe5, 0xf2, 0xc7, 0xc5, 0x9a, 0xde, + 0x96, 00, 0xb3, 0xd6, 0x75, 0xb, 0x40, 0x3a, 0x79, 0x17, + 0x4e, 0x98, 0xfc, 0x8d, 0x6e, 0x5a, 0xfc, 0x66, 0xf8, 0x83, + 0x63, 0x8f, 0xb3, 0x78, 0xef, 0xc4, 0xd6, 0xf8, 0xe9, 0xe5, + 0x6b, 0x17, 0xb, 0xfc, 0x9e, 0x8b, 0xf, 0x98, 0xfe, 0x99, + 0xe8, 0xaf, 0xe6, 0xd6, 0xc7, 0xf6, 0xa0, 0xf8, 0xc1, 0xa6, + 0xe3, 0xec, 0xff, 00, 0x14, 0x3c, 0x5c, 0x98, 0xe9, 0x9d, + 0x6a, 0xe1, 0xbf, 0x9b, 0x9a, 0xe9, 0xb4, 0xef, 0xdb, 0x9f, + 0xe3, 0xf6, 0x96, 00, 0x83, 0xe2, 0xbf, 0x88, 0xc8, 0x1d, + 0xa6, 0xb9, 0x12, 0xff, 00, 0xe8, 0x60, 0xd1, 0x60, 0xe6, + 0x3f, 0xa2, 0x4a, 0x2b, 0xf0, 0x7, 0x4d, 0xff, 00, 0x82, + 0x94, 0x7e, 0xd1, 0xba, 0x6e, 0x31, 0xf1, 0x1e, 0xe2, 0xe8, + 0xe, 0xd7, 0x36, 0x36, 0xaf, 0xfa, 0xf9, 0x79, 0xae, 0xb7, + 0x4c, 0xff, 00, 0x82, 0xb2, 0x7e, 0xd0, 0xba, 0x78, 0x51, + 0x2e, 0xb5, 0xa3, 0x5f, 0x81, 0xff, 00, 0x3f, 0x3a, 0x4c, + 0x79, 0x3f, 0xf7, 0xce, 0xda, 0x2c, 0x1c, 0xc8, 0xfd, 0xd1, + 0xa2, 0xbf, 0x16, 0x74, 0xdf, 0xf8, 0x2c, 0x9f, 0xc6, 0xbb, + 0x45, 0xb, 0x75, 0xa2, 0x78, 0x46, 0xfb, 0x1d, 0x59, 0xac, + 0xa7, 0x42, 0x7f, 0xef, 0x99, 0xb1, 0xfa, 0x57, 0xeb, 0x5f, + 0xc0, 0x9f, 0x1c, 0x6a, 0x7f, 0x13, 0x3e, 0xc, 0xf8, 0x2b, + 0xc5, 0xba, 0xcd, 0xb4, 0x16, 0x5a, 0xa6, 0xb7, 0xa4, 0xdb, + 0x6a, 0x17, 0x16, 0xf6, 0xc0, 0x88, 0xe3, 0x79, 0x23, 0xe, + 0x55, 0x72, 0x49, 0xc0, 0xcf, 0x73, 0x48, 0x77, 0xb9, 0xdd, + 0xd1, 0x45, 0x14, 0xc, 0x28, 0xa2, 0x8a, 00, 0xf1, 0x4f, + 0xda, 0x4e, 0xe7, 0xcb, 0xd1, 0xa1, 0x4c, 0xff, 00, 0x9, + 0x35, 0xf1, 0xa6, 0xa0, 0xdc, 0x39, 0xf5, 0x26, 0xbe, 0xb3, + 0xfd, 0xa7, 0x6e, 0xb6, 0xc0, 0x89, 0x9e, 0x89, 0x8a, 0xf9, + 0x23, 0x51, 0x6c, 0x46, 0xdf, 0x8d, 0x7e, 0x69, 0x9b, 0x3e, + 0x7c, 0xc2, 0x5e, 0x56, 0x3f, 0x31, 0xe2, 0x59, 0xfe, 0xf4, + 0xf0, 0xdf, 0x1d, 0xc4, 0xda, 0x9f, 0x8e, 0x3c, 0x39, 0x62, + 0x83, 0x73, 0xdc, 0xea, 0xd6, 0xb0, 0x85, 0xf5, 0x2d, 0x2a, + 0xc, 0x7e, 0xb5, 0xfb, 0x56, 00, 00, 0x1, 0xd0, 0x57, + 0xe3, 0x1d, 0x9d, 0xa3, 0xeb, 0x5f, 0xb4, 0x7, 0xc3, 0x8b, + 0x18, 0xcf, 0xcf, 0x2f, 0x89, 0x6c, 0x3f, 0x49, 0xd1, 0x8f, + 0xf2, 0xaf, 0xd9, 0xda, 0xfb, 0x8c, 0xbd, 0x5a, 0x8a, 0x3d, + 0xae, 0x13, 0x8f, 0x2e, 0x5a, 0x9f, 0x76, 0xc2, 0x8a, 0x28, + 0xaf, 0x4c, 0xfb, 0x43, 0xf3, 0xa6, 0xf6, 0x59, 0x3e, 0x1f, + 0x7c, 0x74, 0xd7, 0xac, 0xb5, 0x48, 0xb6, 0xc9, 0x6d, 0xa9, + 0xc9, 0x72, 0x23, 0x27, 0x21, 0x92, 0x43, 0xe6, 0x21, 0xfc, + 0x98, 0x57, 0xd7, 0x5a, 0x47, 0xed, 0x13, 0xe1, 0xdb, 0x8b, + 0x48, 0x7c, 0xd9, 0x15, 0x1f, 0x68, 0xc8, 0xd, 0xd3, 0x8a, + 0xf0, 0x9f, 0xdb, 0xc7, 0xe1, 0x85, 0xed, 0x86, 0xa5, 0xa7, + 0x7c, 0x48, 0xd2, 0xd5, 0x9e, 0x25, 0x44, 0xb1, 0xd4, 0x63, + 0x41, 0xf7, 0x70, 0x4f, 0x97, 0x21, 0xf6, 0xe7, 0x69, 0x3f, + 0xee, 0xd7, 0xce, 0xfe, 0x1f, 0xf1, 0x7c, 0x37, 0xf1, 0x28, + 0xf3, 0x36, 0xc9, 0xdd, 0x49, 0xaf, 0x8a, 0xaf, 0xf5, 0x9c, + 0xb6, 0xac, 0xe5, 0x87, 0xd5, 0x33, 0xf2, 0x6f, 0xaf, 0xd5, + 0xe1, 0xcc, 0x55, 0x5c, 0x2b, 0x8f, 0xb8, 0xdd, 0xd3, 0xf2, + 0x67, 0xe8, 0xc4, 0x3f, 0x1c, 0x7c, 0x33, 0x2f, 0xfc, 0xbd, + 0x1, 0xff, 00, 0x2, 0x15, 0xa1, 0x7, 0xc5, 0x9f, 0xe, + 0x4f, 0xd2, 0xf5, 0x47, 0xe3, 0x5f, 0x9f, 0xb0, 0xea, 0x21, + 0xc6, 0x44, 0xa4, 0x7e, 0x35, 0x65, 0x35, 0x29, 0xd7, 0xee, + 0xdc, 0xb8, 0xfa, 0x35, 0x72, 0x2c, 0xff, 00, 0x15, 0x1f, + 0x8a, 0x8, 0xf6, 0x21, 0xc4, 0xf2, 0x7f, 0x65, 0x1f, 0xa0, + 0xd0, 0xfc, 0x44, 0xd0, 0x26, 0xc6, 0x2f, 0xe3, 0xe7, 0xde, + 0xae, 0x47, 0xe2, 0xfd, 0x1e, 0x50, 0xa, 0xdf, 0xc2, 0x73, + 0xfe, 0xd5, 0x7e, 0x7a, 0x26, 0xb9, 0x7d, 0x18, 0xf9, 0x6f, + 0x25, 0x1f, 0xf0, 0x3a, 0xb5, 0x1f, 0x8b, 0x35, 0x68, 0xbe, + 0xed, 0xfc, 0xdf, 0xf7, 0xd5, 0x6c, 0xb8, 0x8a, 0xaa, 0xf8, + 0xa9, 0xaf, 0xbc, 0xea, 0x8f, 0x12, 0xc7, 0xac, 0xf, 0xd0, + 0xa4, 0xd7, 0xf4, 0xe9, 0x3e, 0xed, 0xe4, 0x27, 0xfe, 0x5, + 0x53, 0xae, 0xa3, 0x6a, 0xdd, 0x2e, 0x22, 0x3f, 0x47, 0x15, + 0xf9, 0xf3, 0x17, 0x8f, 0xf5, 0xd8, 0x47, 0xcb, 0x7f, 0x2f, + 0xe2, 0x6a, 0xf4, 0x3f, 0x15, 0x3c, 0x45, 0xf, 0x4b, 0xe7, + 0x3f, 0x8d, 0x6e, 0xb8, 0x8d, 0x7d, 0xaa, 0x7f, 0x89, 0xd1, + 0x1e, 0x23, 0xa0, 0xf7, 0x8b, 0x3e, 0xfd, 0x59, 0xe3, 0x6e, + 0x92, 0x29, 0xfa, 0x30, 0xa7, 0xee, 0x1e, 0xa2, 0xbe, 0xf, + 0xb7, 0xf8, 0xd9, 0xe2, 0x48, 0x31, 0xfe, 0x92, 0xcd, 0xf5, + 0x35, 0xa3, 0x6f, 0xfb, 0x40, 0xf8, 0x8a, 0x12, 0x33, 0x33, + 0x1c, 0x7a, 0x35, 0x6e, 0xb8, 0x8a, 0x8f, 0x58, 0x33, 0xa2, + 0x3c, 0x41, 0x85, 0x7b, 0xdc, 0xfb, 0x82, 0x8a, 0xf8, 0xd2, + 0xdb, 0xf6, 0x97, 0xd7, 0x62, 0x18, 0x62, 0xed, 0xff, 00, + 0x2, 0xad, 0x3b, 0x6f, 0xda, 0x93, 0x54, 0x4f, 0xbe, 0xae, + 0x7f, 0x1c, 0xd6, 0xeb, 0x3f, 0xc2, 0x3d, 0xee, 0xbe, 0x46, + 0xf1, 0xcf, 0x30, 0x72, 0xfb, 0x47, 0xd7, 0x14, 0x57, 0xcb, + 0x96, 0xff, 00, 0xb5, 0x64, 0xe0, 00, 0xf1, 0x37, 0xe4, + 0x2b, 0x52, 0xd7, 0xf6, 0xab, 0x84, 0xe3, 0xcd, 0x8b, 0xf3, + 0x15, 0xbc, 0x73, 0xbc, 0x13, 0xfb, 0x5f, 0x81, 0xd1, 0x1c, + 0xdb, 0x7, 0x2f, 0xb6, 0x7d, 0x1f, 0x45, 0x78, 0x34, 0x1f, + 0xb5, 0x2e, 0x9a, 0xff, 00, 0x7a, 0x35, 0x15, 0xab, 0x6b, + 0xfb, 0x4a, 0x68, 0x72, 0x91, 0xb8, 0x28, 0xff, 00, 0x81, + 0x62, 0xb7, 0x8e, 0x6d, 0x82, 0x97, 0xfc, 0xbc, 0x47, 0x44, + 0x73, 0xc, 0x34, 0xb6, 0x9a, 0x3d, 0x92, 0x8a, 0xf2, 0xdb, + 0x7f, 0xda, 0x7, 0xc3, 0xf3, 0x11, 0xf3, 0x81, 0xff, 00, + 0x3, 0x15, 0xa7, 0x7, 0xc6, 0xaf, 0xe, 0xcc, 0x33, 0xe7, + 0x81, 0xff, 00, 0x2, 0x15, 0xd1, 0x1c, 0x7e, 0x16, 0x5b, + 0x54, 0x46, 0xcb, 0x15, 0x46, 0x5b, 0x49, 0x1d, 0xfd, 0x15, + 0xc7, 0xc1, 0xf1, 0x53, 0xc3, 0xf3, 0x8e, 0x2e, 0xc0, 0xfa, + 0x91, 0x57, 0xe2, 0xf1, 0xee, 0x89, 0x30, 0x4, 0x5e, 0xa7, + 0xe7, 0x5b, 0xac, 0x45, 0x19, 0x6d, 0x35, 0xf7, 0x9a, 0xaa, + 0xb4, 0xde, 0xd2, 0x47, 0x43, 0x45, 0x64, 0xc7, 0xe2, 0xad, + 0x2a, 0x51, 0xf2, 0xde, 0xc5, 0xff, 00, 0x7d, 0x55, 0x95, + 0xd6, 0xac, 0x1f, 0xa5, 0xdc, 0x27, 0xfe, 0x6, 0x2b, 0x55, + 0x38, 0x3d, 0x99, 0x6a, 0x51, 0x7d, 0x4b, 0xb4, 0x54, 0x9, + 0x7d, 0x6f, 0x27, 0xdd, 0x9e, 0x33, 0xf4, 0x61, 0x52, 0x9, + 0xa3, 0x3d, 0x1d, 0x4f, 0xd0, 0xd5, 0x5d, 0xe, 0xe3, 0xe8, + 0xa4, 0x4, 0x1e, 0x87, 0x34, 0xb4, 0xc6, 0x14, 0x51, 0x45, + 00, 0x14, 0x51, 0x45, 00, 0x14, 0x51, 0x45, 00, 0x14, + 0x51, 0x45, 00, 0x14, 0x51, 0x45, 00, 0x14, 0x51, 0x45, + 00, 0x14, 0x51, 0x45, 00, 0x14, 0x51, 0x45, 00, 0x14, + 0x51, 0x45, 00, 0x14, 0x51, 0x45, 00, 0x14, 0x51, 0x45, + 00, 0x14, 0x51, 0x45, 00, 0x14, 0x51, 0x45, 00, 0x14, + 0x51, 0x45, 00, 0x14, 0x51, 0x45, 00, 0x14, 0xc7, 0x89, + 0x24, 0xfb, 0xe8, 0xad, 0xfe, 0xf0, 0xcd, 0x3e, 0x8a, 00, + 0xcb, 0xbc, 0xf0, 0xbe, 0x8d, 0xa8, 0x9c, 0xdd, 0xe9, 0x16, + 0x37, 0x47, 0xd6, 0x6b, 0x64, 0x7f, 0xe6, 0x2b, 0x9a, 0xd5, + 0xfe, 0x5, 0xfc, 0x38, 0xd7, 0xc1, 0xfe, 0xd2, 0xf0, 0x17, + 0x86, 0xaf, 0xb3, 0xd7, 0xed, 0x1a, 0x4c, 0xf, 0xfc, 0xd2, + 0xbb, 0x9a, 0x28, 0x3, 0xc7, 0x6f, 0x7f, 0x63, 0x9f, 0x81, + 0x9a, 0x89, 0x26, 0x7f, 0x84, 0x9e, 0xe, 0x24, 0xf7, 0x4d, + 0x1a, 0x4, 0x3f, 0xf8, 0xea, 0x8a, 0xc5, 0xd4, 0x3f, 0x60, + 0xaf, 0xd9, 0xf7, 0x52, 0x42, 0x92, 0xfc, 0x29, 0xf0, 0xfc, + 0x60, 0xf7, 0xb7, 0x85, 0xa1, 0x3f, 0x9a, 0x30, 0xaf, 0x7c, + 0xa2, 0x80, 0x3e, 0x5a, 0xd4, 0xff, 00, 0xe0, 0x99, 0x3f, + 0xb3, 0x96, 0xa4, 0xf, 0xfc, 0x5b, 0xf1, 0x68, 0x4f, 0xf1, + 0x5b, 0x6a, 0x57, 0x49, 0xff, 00, 0xb5, 0x48, 0xae, 0x4b, + 0x52, 0xff, 00, 0x82, 0x47, 0x7e, 0xcf, 0xf7, 0xa0, 0xf9, + 0x16, 0x1a, 0xf5, 0x81, 0xf5, 0x83, 0x56, 0x76, 0xff, 00, + 0xd0, 0xc1, 0xaf, 0xb4, 0xa8, 0xa0, 0x56, 0x3e, 0x1, 0xd5, + 0x7f, 0xe0, 0x8c, 0x9f, 0x8, 0x6e, 0xb2, 0x6c, 0xbc, 0x4d, + 0xe2, 0xcb, 0x3, 0xe8, 0x67, 0x82, 0x50, 0x3f, 0x38, 0xbf, + 0xad, 0x72, 0x9a, 0x9f, 0xfc, 0x11, 0x33, 0xc2, 0x32, 0x3, + 0xfd, 0x9f, 0xf1, 0x2f, 0x5a, 0x80, 0xf6, 0x17, 0x36, 0x10, + 0xc8, 0x3f, 0x42, 0xb5, 0xfa, 0x53, 0x45, 0x1, 0x64, 0x7e, + 0x56, 0x6a, 0x1f, 0xf0, 0x44, 0x4b, 0x92, 0x49, 0xb1, 0xf8, + 0xb7, 0x10, 0x1d, 0x85, 0xc6, 0x84, 0x4f, 0xea, 0x27, 0xac, + 0x2b, 0xcf, 0xf8, 0x22, 0x57, 0x8b, 0xa3, 0x52, 0x6d, 0x7e, + 0x27, 0x68, 0xb3, 0x9e, 0xc2, 0x5d, 0x36, 0x68, 0xf3, 0xf9, + 0x3b, 0x57, 0xeb, 0x85, 0x14, 0xee, 0x16, 0x47, 0xe3, 0x4e, + 0xa7, 0xff, 00, 0x4, 0x60, 0xf8, 0xb5, 0x6e, 0x9, 0xb1, + 0xf1, 0x5f, 0x85, 0x2f, 0x71, 0xd0, 0x3c, 0xb7, 0x11, 0x67, + 0xff, 00, 0x21, 0x1a, 0xe4, 0xf5, 0xf, 0xf8, 0x24, 0x47, + 0xc7, 0xfb, 0x36, 0x22, 0xb, 0x6f, 0xe, 0x5f, 0x1, 0xde, + 0xd, 0x58, 0x2e, 0x7f, 0xef, 0xb4, 0x5a, 0xfd, 0xc2, 0xa2, + 0x8b, 0x8a, 0xc8, 0xfc, 0x14, 0xd5, 0x3f, 0xe0, 0x97, 0x9f, + 0xb4, 0x76, 0x9a, 0x7e, 0x4f, 0x3, 0x45, 0x7d, 0xef, 0x6b, + 0xaa, 0xda, 0x9f, 0xfd, 0xa, 0x41, 0x5c, 0xed, 0xe7, 0xfc, + 0x13, 0xbf, 0xf6, 0x8b, 0xb1, 0xcf, 0x99, 0xf0, 0xb7, 0x54, + 0x7c, 0x7f, 0xcf, 0x1b, 0x8b, 0x69, 0x3f, 0xf4, 0x19, 0x4d, + 0x7f, 0x41, 0xb4, 0x51, 0x70, 0xe5, 0x47, 0xf3, 0xa5, 0xa9, + 0xfe, 0xc5, 0x3f, 0x1d, 0xf4, 0x8c, 0xfd, 0xa7, 0xe1, 0x4f, + 0x89, 0xf8, 0xff, 00, 0x9e, 0x36, 0x2d, 0x2f, 0xfe, 0x81, + 0x9a, 0xe5, 0xf5, 0x1f, 0xd9, 0xd7, 0xe2, 0xa6, 0x90, 0x9, + 0xbd, 0xf8, 0x6d, 0xe2, 0xcb, 0x60, 0x3a, 0x99, 0x34, 0x5b, + 0x91, 0xff, 00, 0xb2, 0x57, 0xf4, 0xab, 0x45, 0x17, 0xe, + 0x53, 0xf9, 0x81, 0xd4, 0xfc, 0x11, 0xe2, 0x3d, 0x10, 0x13, + 0xa8, 0xe8, 0x1a, 0xa5, 0x80, 0x1d, 0x7e, 0xd5, 0x65, 0x24, + 0x78, 0xff, 00, 0xbe, 0x94, 0x56, 0x29, 0xf9, 0x4e, 0xf, + 0x7, 0xd0, 0xd7, 0xf5, 0x25, 0x3d, 0x9c, 0x17, 0x23, 0x13, + 0x41, 0x1c, 0xbf, 0xef, 0xa0, 0x3f, 0xce, 0xb2, 0xb5, 0xf, + 0x3, 0xf8, 0x73, 0x57, 0x4d, 0xb7, 0xde, 0x1f, 0xd2, 0xef, + 0x57, 0xd2, 0xe2, 0xca, 0x39, 0x7, 0xea, 0xb4, 0x5c, 0x39, + 0x4f, 0xe6, 0xa, 0x8a, 0xfe, 0x95, 0xf5, 0x2f, 0xd9, 0xe7, + 0xe1, 0x6e, 0xae, 0x85, 0x2f, 0x7e, 0x1c, 0xf8, 0x56, 0xe5, + 0x4f, 0x50, 0xfa, 0x35, 0xb9, 0xff, 00, 0xd9, 0x2b, 0x99, + 0xbc, 0xfd, 0x8b, 0xfe, 0x4, 0x5f, 0x82, 0x25, 0xf8, 0x49, + 0xe1, 0x1e, 0x7a, 0x98, 0xf4, 0x98, 0xa3, 0x3f, 0x9a, 0x81, + 0x45, 0xc5, 0xca, 0x7f, 0x3a, 0x30, 0xc0, 0xf7, 0x33, 0x47, + 0xc, 0x4a, 0x5e, 0x49, 0x18, 0x22, 0xa8, 0xea, 0x49, 0x38, + 0x2, 0xbf, 0xa7, 0xf, 0x86, 0x5e, 0x1f, 0x1e, 0x14, 0xf8, + 0x6f, 0xe1, 0x5d, 0x10, 0x74, 0xd3, 0xb4, 0xab, 0x5b, 0x4e, + 0x98, 0xfb, 0x91, 0x2a, 0xff, 00, 0x4a, 0xf2, 0x56, 0xfd, + 0x81, 0xbf, 0x67, 0xef, 0x3e, 0x29, 0xe3, 0xf8, 0x5d, 0xa3, + 0x5b, 0xcd, 0x13, 0x89, 0x12, 0x4b, 0x7f, 0x32, 0x32, 0xac, + 0xe, 0x41, 0x1b, 0x5c, 0x77, 0xaf, 0x7e, 00, 0x28, 00, + 0x70, 0x5, 0x5, 0x25, 0x61, 0x68, 0xa2, 0x8a, 0x43, 0xa, + 0x28, 0xa2, 0x80, 0x3e, 0x65, 0xfd, 0xa7, 0xae, 0xf3, 0x74, + 0xc9, 0x9e, 0x80, 0xa, 0xf9, 0x6f, 0x55, 0x6c, 0x40, 0xdf, + 0x4a, 0xfa, 0x2b, 0xf6, 0x96, 0xbb, 0xdf, 0xab, 0xca, 0xb9, + 0xe8, 0xd8, 0xaf, 0x9b, 0xf5, 0xa7, 0xdb, 0x6c, 0xe7, 0xfd, + 0x93, 0x5f, 0x97, 0x63, 0x5f, 0x3e, 0x61, 0x37, 0xe6, 0x7e, + 0x49, 0xc4, 0x93, 0xbd, 0x59, 0x1c, 0x17, 0xc1, 0x6b, 0x21, + 0xad, 0xfe, 0xd7, 0xdf, 0xc, 0x2d, 0x58, 0xf0, 0xba, 0xbf, + 0xda, 0x3f, 0x18, 0xe2, 0x79, 0x7, 0xfe, 0x81, 0x5f, 0xb0, + 0x35, 0xf9, 0x3d, 0xfb, 0x20, 0x69, 0x8b, 0xad, 0xfe, 0xd9, + 0xde, 0x16, 0x2c, 0x37, 0xb, 0x1b, 0x7b, 0xcb, 0xb1, 0xec, + 0x44, 0x25, 0x41, 0xff, 00, 0xc7, 0xeb, 0xf5, 0x86, 0xbf, + 0x44, 0xc1, 0xab, 0x52, 0x47, 0xda, 0x70, 0xdc, 0x39, 0x32, + 0xca, 0x41, 0x45, 0x14, 0x57, 0x69, 0xf4, 0xe5, 0x1d, 0x6b, + 0x45, 0xb1, 0xf1, 0x1e, 0x93, 0x75, 0xa6, 0x6a, 0x56, 0xb1, + 0xde, 0xd8, 0x5d, 0x46, 0x62, 0x9a, 0x9, 0x57, 0x2a, 0xea, + 0x7a, 0x83, 0x5f, 0x9e, 0x3f, 0x1f, 0x3f, 0x63, 0x7d, 0x73, + 0xe1, 0xc6, 0xa7, 0x73, 0xac, 0x78, 0x5c, 0x4b, 0xa8, 0xf8, + 0x71, 0x98, 0xba, 0x94, 0x3b, 0xa5, 0xb5, 0x1f, 0xdd, 0x71, + 0xdc, 0xf, 0xef, 0x7e, 0x78, 0xaf, 0xd1, 0xca, 0x42, 0x3, + 0x2, 0x8, 0xc8, 0x3d, 0x41, 0xae, 0x6a, 0xd4, 0x15, 0x65, + 0xd9, 0x9e, 0x2e, 0x67, 0x94, 0xd0, 0xcd, 0x29, 0xa8, 0xd5, + 0xd1, 0xad, 0x9a, 0xe9, 0xfe, 0x6b, 0xc8, 0xfc, 0x79, 0x4f, + 0xf8, 0x49, 0xb4, 0xae, 0x1e, 0x13, 0x22, 0x8e, 0x3a, 0x73, + 0x52, 0xf, 0x16, 0x6a, 0xb0, 0xff, 00, 0xac, 0xb4, 0x90, + 0x7f, 0xc0, 0x4d, 0x7e, 0xa5, 0x78, 0xa7, 0xe0, 0xb7, 0x84, + 0x3c, 0x5b, 0xbd, 0xaf, 0x34, 0x88, 0xa1, 0x99, 0x8e, 0x4c, + 0xd6, 0xa0, 0x46, 0xc4, 0xfa, 0x9c, 0x70, 0x7f, 0x11, 0x5e, + 0x7f, 0x7f, 0xfb, 0x1e, 0xf8, 0x4a, 0xe9, 0xcb, 0x45, 0x77, + 0x77, 0x8, 0x3d, 0x1, 0x54, 0x6c, 0x7e, 0x82, 0xbc, 0xa, + 0x99, 0x75, 0x5b, 0xfc, 0x29, 0xfe, 0x7, 0xc4, 0xcf, 0x84, + 0x9c, 0x3e, 0x1d, 0x7d, 0x1d, 0xbf, 0x3, 0xf3, 0xe5, 0x7c, + 0x79, 0x75, 0x1f, 0xdf, 0xb7, 0x71, 0xf5, 0x6, 0xa6, 0x4f, + 0x88, 0xc4, 0x70, 0xc8, 0xc3, 0xf0, 0xaf, 0xb9, 0x6e, 0xff, + 00, 0x62, 0x6d, 0x12, 0x40, 0x7c, 0x9d, 0x65, 0xd4, 0xff, + 00, 0xb7, 0x6c, 0xf, 0xfe, 0xcd, 0x58, 0x57, 0x9f, 0xb0, + 0xcc, 0x4e, 0xf, 0x93, 0xac, 0xdb, 0x39, 0xf4, 0x78, 0xa, + 0x8f, 0xeb, 0x5c, 0xaf, 0x2e, 0x9f, 0x5a, 0x5f, 0x8a, 0xff, + 00, 0x33, 0x96, 0x5c, 0x2f, 0x5e, 0x3b, 0x29, 0x7d, 0xeb, + 0xfc, 0xcf, 0x8f, 0xe3, 0xf8, 0x8f, 0x9, 0xeb, 0xb8, 0x55, + 0xa8, 0xfe, 0x22, 0x5b, 0x37, 0xf1, 0xd7, 0xd2, 0x97, 0xff, + 00, 0xb0, 0xbe, 0xa6, 0xa7, 0xf7, 0x33, 0x69, 0xd3, 0x8f, + 0x5d, 0xc5, 0x7f, 0x9a, 0xd7, 0x3f, 0x7f, 0xfb, 0xe, 0x78, + 0x89, 0xf, 0xee, 0xec, 0x6d, 0xa7, 0xf7, 0x8e, 0x64, 0x1f, + 0xcc, 0x8a, 0xe7, 0x96, 0x5f, 0xde, 0x93, 0x39, 0xa5, 0xc3, + 0xf8, 0xa8, 0xec, 0xe5, 0xf7, 0x5c, 0xf1, 0x48, 0xfc, 0x79, + 0x6a, 0xd8, 0xfd, 0xe0, 0xfc, 0x45, 0x59, 0x8f, 0xc6, 0x96, + 0x8d, 0xff, 00, 0x2d, 0x56, 0xbd, 0xe, 0xf3, 0xf6, 0x2d, + 0xf1, 0x44, 0x4c, 0x40, 0xd1, 0x25, 0x6c, 0x77, 0x49, 0x10, + 0xff, 00, 0x26, 0xac, 0x2b, 0xcf, 0xd9, 0x13, 0xc5, 0x96, + 0xec, 0x47, 0xf6, 0x16, 0xa3, 0xc7, 0xfc, 0xf3, 0x89, 0x9b, + 0xf9, 0x56, 0x2f, 0x3, 0x4f, 0xac, 0x24, 0xbe, 0x47, 0x3b, + 0xc9, 0xf1, 0x91, 0xfb, 0x4f, 0xe7, 0x16, 0x60, 0xa7, 0x8a, + 0xed, 0x1f, 0xfe, 0x5a, 0xa7, 0xe7, 0x56, 0x13, 0xc4, 0x56, + 0xcc, 0x3e, 0xfa, 0xfe, 0x75, 0x5e, 0xf7, 0xf6, 0x6c, 0xf1, + 0x2d, 0x96, 0xe2, 0xfa, 0x6e, 0xa7, 0x10, 0x1d, 0xda, 0x16, + 00, 0x7e, 0x95, 0x87, 0x71, 0xf0, 0x6f, 0x5a, 0xb5, 0x62, + 0x18, 0xdc, 0x21, 0x1d, 0x99, 0x6b, 0x9d, 0xe0, 0xa8, 0xf7, + 0x68, 0xe7, 0x78, 0xc, 0x64, 0x7e, 0xda, 0xf9, 0xa3, 0xa9, + 0x5d, 0x66, 0xdd, 0xbf, 0x88, 0x54, 0x83, 0x53, 0x80, 0xff, + 00, 0x10, 0xae, 0x16, 0x4f, 0x86, 0xfa, 0xec, 0x1f, 0x76, + 0x49, 0x4f, 0xd5, 0x6a, 0xbb, 0xf8, 0x43, 0xc4, 0x56, 0xfd, + 0x1d, 0x8f, 0xd4, 0x1a, 0xcf, 0xea, 0x34, 0x9e, 0xd3, 0x32, + 0xfa, 0xbe, 0x35, 0x7f, 0x2b, 0x3d, 0x18, 0x5f, 0x42, 0x7f, + 0x88, 0x53, 0x85, 0xd4, 0x47, 0xa3, 0xd7, 0x98, 0x9d, 0x2b, + 0xc4, 0xb0, 0xff, 00, 0xb, 0x37, 0xe3, 0x4d, 0xdf, 0xe2, + 0x38, 0x3a, 0xc0, 0xc7, 0xf1, 0xa9, 0xfe, 0xcf, 0x8b, 0xda, + 0x62, 0xf6, 0x78, 0xd5, 0xf6, 0x13, 0xf9, 0x9e, 0xa6, 0xb7, + 0x2b, 0xd9, 0xff, 00, 0x5a, 0x91, 0x6e, 0xd8, 0x74, 0x94, + 0xfe, 0x75, 0xe5, 0x3, 0x59, 0xd7, 0xa1, 0xfb, 0xd6, 0x92, + 0x1f, 0xc2, 0x9c, 0x3c, 0x59, 0xaa, 0xc5, 0xf7, 0xed, 0x24, + 0x1f, 0x81, 0xa8, 0x79, 0x6b, 0x7b, 0x34, 0x2e, 0x6c, 0x5c, + 0x77, 0xa4, 0xfe, 0xf3, 0xd6, 0xd3, 0x52, 0xb8, 0x4f, 0xbb, + 0x70, 0xe3, 0xe8, 0xd5, 0x62, 0x3d, 0x7f, 0x50, 0x8f, 0xee, + 0xdd, 0xc8, 0x3f, 0xe0, 0x55, 0xe4, 0xb, 0xe3, 0xbb, 0xb8, + 0xfe, 0xfd, 0xbb, 0x8f, 0xc0, 0xd4, 0xc9, 0xf1, 0xc, 0xaf, + 0xde, 0x8d, 0x87, 0xe7, 0x59, 0xbc, 0xba, 0xa2, 0xda, 0xc3, + 0xfa, 0xd6, 0x26, 0x1b, 0xc2, 0x48, 0xf6, 0x38, 0xbc, 0x63, + 0xac, 0x43, 0x8d, 0x97, 0xb2, 0xc, 0x7b, 0xd5, 0xb8, 0xbe, + 0x22, 0x6b, 0xb0, 0x9e, 0x2f, 0x58, 0xfd, 0x6b, 0xc6, 0x63, + 0xf8, 0x8d, 0x17, 0x7c, 0x8f, 0xc6, 0xac, 0xc7, 0xf1, 0xe, + 0xd8, 0xf5, 0x7a, 0x5f, 0x52, 0xc4, 0x47, 0x6f, 0xcc, 0xb5, + 0x99, 0xd6, 0x8e, 0xfc, 0xcb, 0xef, 0x3d, 0xb2, 0xf, 0x8b, + 0x7e, 0x21, 0x83, 0xa5, 0xd6, 0x7e, 0xb5, 0xa1, 0x6f, 0xf1, + 0xc3, 0xc4, 0x50, 0x11, 0x99, 0xb7, 0x62, 0xbc, 0x36, 0x3f, + 0x1e, 0xda, 0x37, 0xfc, 0xb5, 0x15, 0x66, 0x3f, 0x1a, 0xda, + 0x37, 0xfc, 0xb5, 0x5a, 0x7e, 0xcb, 0x17, 0x1d, 0x9b, 0xfb, + 0xd9, 0xb4, 0x73, 0xba, 0xb1, 0xfb, 0x6d, 0x1e, 0xf9, 0x6f, + 0xfb, 0x43, 0x78, 0x82, 0x10, 0x1, 0x73, 0xf9, 0xd6, 0xa5, + 0xaf, 0xed, 0x2f, 0xac, 0xc5, 0xf7, 0xb2, 0x6b, 0xe7, 0x74, + 0xf1, 0x6d, 0xa3, 0x7f, 0xcb, 0x54, 0xfc, 0xea, 0x74, 0xf1, + 0x25, 0xab, 0xff, 00, 0x1a, 0xfe, 0x75, 0x4a, 0xae, 0x3a, + 0x1b, 0x4e, 0x47, 0x4c, 0x78, 0x86, 0xaa, 0xff, 00, 0x97, + 0xa7, 0xd2, 0xd0, 0x7e, 0xd4, 0xfa, 0x82, 0xe3, 0x7a, 0xb6, + 0x3e, 0x95, 0xab, 0x6b, 0xfb, 0x55, 0xb8, 0xc7, 0x98, 0x9f, + 0x9a, 0xd7, 0xcb, 0x4b, 0xad, 0xdb, 0xb7, 0xf1, 0x8f, 0xce, + 0xa5, 0x5d, 0x56, 0x3, 0xfc, 0x43, 0xf3, 0xab, 0x58, 0xec, + 0x7c, 0x7e, 0xdb, 0x3a, 0xe3, 0xc4, 0x75, 0xff, 00, 0xe7, + 0xe2, 0x3e, 0xb4, 0xb6, 0xfd, 0xaa, 0xad, 0x9c, 0xfc, 0xe8, + 0xa3, 0xfe, 0x3, 0x5a, 0xb6, 0xdf, 0xb4, 0xfe, 0x94, 0xf8, + 0xde, 0x13, 0xf2, 0x22, 0xbe, 0x39, 0x17, 0xf0, 0xb7, 0xf1, + 0xa, 0x78, 0xbb, 0x88, 0xf4, 0x71, 0x5a, 0xac, 0xdb, 0x1f, + 0x1f, 0xb5, 0xf8, 0x1d, 0x91, 0xe2, 0x4a, 0xfd, 0xd3, 0x3e, + 0xd6, 0xb6, 0xfd, 0xa4, 0x34, 0x29, 0xb1, 0xb8, 0xa8, 0xfc, + 0x6b, 0x52, 0xf, 0x8f, 0x5e, 0x1d, 0x94, 0xc, 0xca, 0x6, + 0x7d, 0xd, 0x7c, 0x2e, 0x2e, 0x53, 0xb3, 0xfe, 0xb5, 0x22, + 0xdd, 0x63, 0xa4, 0xa7, 0xf0, 0x35, 0xaa, 0xcf, 0x31, 0xb1, + 0xde, 0xcf, 0xe4, 0x75, 0x47, 0x89, 0x6a, 0xf5, 0x8a, 0x3e, + 0xf5, 0xb7, 0xf8, 0xcb, 0xe1, 0xd9, 0xff, 00, 0xe5, 0xe3, + 0x15, 0xa1, 0x17, 0xc4, 0xed, 0x2, 0x5e, 0x97, 0x80, 0x7d, + 0x6b, 0xf3, 0xf9, 0x2f, 0x65, 0x5f, 0xbb, 0x3b, 0x8f, 0xa3, + 0x54, 0xc9, 0xab, 0xdd, 0xc7, 0xf7, 0x6e, 0xa4, 0x1f, 0xf0, + 0x23, 0x5b, 0xae, 0x20, 0xc4, 0x2d, 0xe0, 0x8e, 0x98, 0xf1, + 0x2c, 0xba, 0xc0, 0xfd, 0x7, 0x8b, 0xc7, 0x3a, 0x2c, 0xdf, + 0x76, 0xf5, 0x3f, 0x1a, 0xb4, 0x9e, 0x28, 0xd2, 0xe4, 0xfb, + 0xb7, 0xb1, 0x9f, 0xc6, 0xbf, 0x3d, 0xa3, 0xf1, 0x2e, 0xa7, + 0x1f, 0xdd, 0xbd, 0x97, 0xfe, 0xfa, 0x35, 0x6a, 0x2f, 0x1b, + 0x6b, 0x30, 0x91, 0xb6, 0xf6, 0x4e, 0x3d, 0x58, 0xd6, 0xcb, + 0x88, 0xa7, 0xd6, 0x9f, 0xe2, 0x74, 0x2e, 0x24, 0x87, 0x58, + 0x1f, 0xa1, 0x11, 0xea, 0xf6, 0x52, 0xfd, 0xdb, 0x98, 0xcf, + 0xfc, 0xa, 0xa6, 0x5b, 0xc8, 0x1b, 0xa4, 0xc8, 0x7e, 0x8c, + 0x2b, 0xf3, 0xfa, 0x1f, 0x89, 0x7a, 0xf4, 0x23, 0x8b, 0xc7, + 0xfc, 0xcd, 0x5e, 0x83, 0xe3, 0x7, 0x88, 0x20, 0xc6, 0x2e, + 0x58, 0xe3, 0xfd, 0xa3, 0x5b, 0xc7, 0x88, 0xa3, 0xd6, 0x9b, + 0x3a, 0x23, 0xc4, 0x58, 0x77, 0xba, 0x67, 0xde, 0xe2, 0x45, + 0x6e, 0x8c, 0xf, 0xd0, 0xd2, 0xe6, 0xbe, 0x18, 0x87, 0xe3, + 0xb7, 0x88, 0x22, 0xc0, 0xf3, 0xf, 0xfd, 0xf4, 0x6b, 0x4e, + 0xdf, 0xf6, 0x8a, 0xd7, 0x21, 0x23, 0x3b, 0x8e, 0x3f, 0xda, + 0x35, 0xba, 0xe2, 0x1a, 0x1d, 0x62, 0xce, 0x88, 0xe7, 0xf8, + 0x47, 0xbb, 0x3e, 0xd5, 0xa2, 0xbe, 0x3e, 0x83, 0xf6, 0x9c, + 0xd5, 0xd0, 0x8d, 0xe1, 0xb1, 0xfe, 0xf1, 0xad, 0x5b, 0x5f, + 0xda, 0x9a, 0xed, 0x71, 0xbd, 0xf, 0x15, 0xbc, 0x73, 0xec, + 0x23, 0xde, 0xeb, 0xe4, 0x74, 0x47, 0x3a, 0xc1, 0xcb, 0xed, + 0x1f, 0x56, 0x51, 0x5f, 0x33, 0xdb, 0x7e, 0xd5, 0x44, 0x91, + 0xe6, 0x20, 0x1f, 0x51, 0x5a, 0xd6, 0xff, 00, 0xb5, 0x35, + 0x91, 0x3, 0x7a, 0xa7, 0xe4, 0x6b, 0xa2, 0x39, 0xd6, 0xa, + 0x5f, 0x6c, 0xe8, 0x8e, 0x69, 0x84, 0x96, 0xd3, 0x47, 0xd0, + 0x54, 0x57, 0x88, 0xdb, 0x7e, 0xd3, 0x5a, 0x4c, 0xa4, 0x6f, + 0x11, 0x8f, 0xc4, 0xd6, 0x9c, 0x1f, 0xb4, 0x56, 0x83, 0x26, + 0x32, 0xf1, 0xe7, 0xd9, 0xeb, 0x78, 0xe6, 0xb8, 0x39, 0x6d, + 0x51, 0x1b, 0xac, 0x76, 0x1e, 0x5b, 0x4d, 0x1e, 0xb7, 0x45, + 0x79, 0xbd, 0xbf, 0xc7, 0x4f, 0xf, 0xcf, 0xff, 00, 0x2d, + 0x94, 0x7f, 0xc0, 0xeb, 0x46, 0x1f, 0x8b, 0xfe, 0x1e, 0x9b, + 0x3, 0xed, 0x40, 0x1f, 0xad, 0x74, 0x47, 0x1b, 0x86, 0x96, + 0xd5, 0x17, 0xde, 0x6c, 0xb1, 0x14, 0x5e, 0xd2, 0x47, 0x6f, + 0x45, 0x72, 0xf0, 0x7c, 0x49, 0xd0, 0x67, 0xe9, 0x7a, 0x83, + 0xea, 0x6a, 0xdc, 0x7e, 0x36, 0xd1, 0x65, 0xfb, 0xb7, 0xf1, + 0x9f, 0xc6, 0xb6, 0x55, 0xe9, 0x3d, 0xa4, 0xbe, 0xf2, 0xd5, + 0x58, 0x3d, 0xa4, 0x8d, 0xda, 0x2b, 0x32, 0x3f, 0x12, 0x69, + 0x92, 0xfd, 0xdb, 0xd8, 0xbf, 0xef, 0xaa, 0x9d, 0x35, 0x7b, + 0x29, 0x3e, 0xed, 0xd4, 0x47, 0xfe, 0x4, 0x2b, 0x45, 0x38, + 0xbd, 0x99, 0x7c, 0xd1, 0xee, 0x5c, 0xa2, 0xa1, 0x5b, 0xb8, + 0x1f, 0xee, 0xca, 0x87, 0xfe, 0x4, 0x2a, 0x41, 0x22, 0x37, + 0x46, 0x53, 0xf4, 0x35, 0x57, 0x45, 0xe, 0xa2, 0x93, 0x39, + 0xa5, 0xa6, 0x1, 0x45, 0x14, 0x50, 0x1, 0x45, 0x14, 0x50, + 0x1, 0x45, 0x14, 0x50, 0x1, 0x45, 0x14, 0x50, 0x1, 0x45, + 0x14, 0x50, 0x1, 0x45, 0x14, 0x50, 0x1, 0x45, 0x14, 0x50, + 0x1, 0x45, 0x14, 0x50, 0x1, 0x45, 0x14, 0x50, 0x1, 0x45, + 0x14, 0x50, 0x1, 0x45, 0x14, 0x50, 0x1, 0x45, 0x14, 0x50, + 0x1, 0x45, 0x14, 0x50, 0x1, 0x48, 0x78, 0x14, 0xb4, 0xc9, + 0x5b, 0x64, 0x4e, 0xde, 0x80, 0x9a, 00, 0xf8, 0xdb, 0xf6, + 0x85, 0xba, 0xf3, 0x75, 0xd9, 0x87, 0xfb, 0x67, 0xf9, 0xd7, + 0x80, 0x78, 0x89, 0xf6, 0x59, 0x4d, 0xfe, 0xe9, 0xaf, 0x68, + 0xf8, 0xe1, 0x73, 0xe6, 0xf8, 0x82, 0x50, 0x4f, 0xf1, 0x93, + 0xfa, 0xd7, 0x84, 0x78, 0xc6, 0xf0, 0x41, 0xa7, 0x4c, 0x72, + 0x7, 0xca, 0x6b, 0xf2, 0xb7, 0xfb, 0xcc, 0x6c, 0xdf, 0x99, + 0xf8, 0xb7, 0x10, 0xce, 0xf5, 0x66, 0x6f, 0x7f, 0xc1, 0x3d, + 0xac, 0x1b, 0x50, 0xfd, 0xab, 0x75, 0x8b, 0xbd, 0xb9, 0x8e, + 0xcb, 0xc3, 0xf7, 0x4, 0x9f, 0x46, 0x79, 0xa1, 0x51, 0xfa, + 0x66, 0xbf, 0x4f, 0x2b, 0xf3, 0x97, 0xfe, 0x9, 0x81, 0x68, + 0x6f, 0xfe, 0x2d, 0x7c, 0x4d, 0xd5, 0xa, 0x9d, 0xb6, 0xfa, + 0x75, 0xa5, 0xb0, 0x6c, 0x71, 0x99, 0x25, 0x91, 0x88, 0xcf, + 0xfd, 0xb3, 0x15, 0xfa, 0x35, 0x5f, 0xa5, 0xe1, 0xd5, 0xa9, + 0xa3, 0xf5, 0xc, 0x9e, 0x1e, 0xcf, 0x1, 0x4a, 0x3e, 0x48, + 0x28, 0xa2, 0x8a, 0xe9, 0x3d, 0x90, 0xa2, 0x8a, 0x28, 00, + 0xa2, 0x8a, 0x28, 00, 0xa2, 0x8a, 0x28, 00, 0xa2, 0x8a, + 0x28, 00, 0xa2, 0x8a, 0x28, 00, 0xa8, 0xe4, 0x82, 0x29, + 0x46, 0x1e, 0x34, 0x71, 0xe8, 0xca, 0xd, 0x49, 0x45, 00, + 0x50, 0x9f, 0x41, 0xd3, 0x2e, 0x46, 0x26, 0xd3, 0xad, 0x25, + 0x1e, 0x8f, 0x2, 0x9f, 0xe6, 0x2b, 0x3e, 0xe3, 0xc0, 0x1e, + 0x19, 0xbb, 0xff, 00, 0x5b, 0xa0, 0x69, 0xad, 0xff, 00, + 0x6e, 0xa8, 0x3f, 0x90, 0xad, 0xfa, 0x2a, 0x1c, 0x20, 0xf7, + 0x46, 0x6e, 0x9c, 0x25, 0xbc, 0x51, 0xc5, 0xdd, 0xfc, 0x19, + 0xf0, 0x55, 0xe9, 0xcc, 0x9e, 0x1e, 0xb4, 0x1f, 0xf5, 0xcc, + 0x14, 0xfe, 0x44, 0x56, 0x45, 0xdf, 0xec, 0xe9, 0xe0, 0x4b, + 0xbc, 0xff, 00, 0xc4, 0xa0, 0xc3, 0x9f, 0xf9, 0xe7, 0x33, + 0x71, 0xf9, 0x93, 0x5e, 0x97, 0x45, 0x62, 0xf0, 0xd4, 0x65, + 0xbc, 0x17, 0xdc, 0x63, 0x2c, 0x26, 0x1e, 0x5b, 0xd3, 0x5f, + 0x72, 0x3c, 0x66, 0xef, 0xf6, 0x51, 0xf0, 0x4d, 0xce, 0x76, + 0x8b, 0xc8, 0x73, 0xfd, 0xd9, 0x10, 0xff, 00, 0x35, 0xac, + 0x9b, 0xaf, 0xd8, 0xeb, 0xc2, 0x93, 0x3, 0xe5, 0xdf, 0x5d, + 0xc6, 0x7f, 0xda, 0x54, 0x6f, 0xe8, 0x2b, 0xdf, 0x28, 0xac, + 0x9e, 0xb, 0xe, 0xfe, 0xc2, 0x30, 0x79, 0x76, 0x11, 0xff, + 00, 0xcb, 0xb4, 0x7c, 0xd5, 0x79, 0xfb, 0x13, 0xe8, 0xd2, + 0xff, 00, 0xa9, 0xd6, 0x9d, 0x7d, 0x9e, 0xd8, 0x1f, 0xfd, + 0x9a, 0xb0, 0xaf, 0x7f, 0x61, 0xa4, 0x6c, 0xf9, 0x1a, 0xbd, + 0xb3, 0xff, 00, 0xd7, 0x48, 0x4a, 0xff, 00, 0x8d, 0x7d, + 0x65, 0x45, 0x66, 0xf2, 0xfc, 0x3b, 0xfb, 0x3f, 0x8b, 0x32, + 0x79, 0x56, 0x11, 0xfd, 0x9f, 0xc5, 0xff, 00, 0x99, 0xf1, + 0x6d, 0xef, 0xec, 0x2f, 0xa9, 0xe0, 0x98, 0xee, 0x34, 0xe9, + 0x7d, 0x83, 0x11, 0xfc, 0xd6, 0xb9, 0xeb, 0xdf, 0xd8, 0x7f, + 0xc4, 0x28, 0xe, 0xcb, 0xb, 0x79, 0x7f, 0xdc, 0x99, 0x3f, + 0xa9, 0x15, 0xf7, 0x9d, 0x15, 0x9b, 0xcb, 0x68, 0xf4, 0x6d, + 0x7c, 0xcc, 0x25, 0x93, 0x61, 0x9e, 0xd7, 0x5f, 0x33, 0xf3, + 0xb6, 0xf3, 0xf6, 0x2d, 0xf1, 0x4c, 0x4a, 0x48, 0xd0, 0xe4, + 0x3f, 0xf5, 0xce, 0x44, 0x6f, 0xe4, 0xd5, 0x87, 0x7d, 0xfb, + 0x22, 0x78, 0xae, 0xd7, 0x27, 0xfb, 0xb, 0x50, 0xff, 00, + 0x80, 0x46, 0xcd, 0xfc, 0xab, 0xf4, 0xba, 0x8a, 0x8f, 0xec, + 0xc8, 0xf4, 0x9b, 0xfc, 0xe, 0x79, 0x64, 0x54, 0x1e, 0xd2, + 0x7f, 0x87, 0xf9, 0x1f, 0x96, 0x37, 0xbf, 0xb3, 0x77, 0x88, + 0xec, 0x98, 0xac, 0x9a, 0x6e, 0xa5, 0xb, 0x7a, 0x34, 0x2c, + 0x3f, 0xa5, 0x62, 0xdd, 0x7c, 0x18, 0xd6, 0xad, 0x1b, 0x69, + 0x17, 0x31, 0x91, 0xd9, 0x97, 0x15, 0xfa, 0xd1, 0x51, 0xbd, + 0xbc, 0x52, 0xe7, 0x7c, 0x48, 0xf9, 0xfe, 0xf2, 0x83, 0x50, + 0xf2, 0xd9, 0x74, 0xa9, 0xf8, 0x7f, 0xc1, 0x39, 0x65, 0xc3, + 0xb4, 0xa5, 0xf6, 0x97, 0xfe, 0x3, 0xff, 00, 0x4, 0xfc, + 0x8c, 0x97, 0xe1, 0xa6, 0xb9, 0x7, 0xdd, 0x92, 0x5f, 0xc5, + 0x4d, 0x57, 0x7f, 0x6, 0xf8, 0x86, 0xe, 0x8e, 0xdc, 0x7a, + 0x82, 0x2b, 0xf5, 0xae, 0x7f, 0xb, 0xe8, 0xd7, 0x24, 0x99, + 0xb4, 0x9b, 0x19, 0x49, 0xea, 0x5e, 0xdd, 0xf, 0xf4, 0xac, + 0xd9, 0xbe, 0x19, 0xf8, 0x4e, 0xe0, 0x93, 0x27, 0x87, 0x74, + 0xd2, 0x4f, 0x53, 0xf6, 0x65, 0x1f, 0xd2, 0xb3, 0x79, 0x75, + 0x6e, 0x93, 0x5f, 0x71, 0xc7, 0x3e, 0x18, 0xa6, 0xff, 00, + 0x97, 0xee, 0x3f, 0x28, 0xe, 0x8f, 0xe2, 0x38, 0x3d, 0x4f, + 0xe2, 0x69, 0x9f, 0xf1, 0x51, 0xc1, 0xd6, 0x26, 0x6f, 0xc6, + 0xbf, 0x54, 0x67, 0xf8, 0x29, 0xe0, 0x8b, 0x90, 0x43, 0xf8, + 0x76, 0xd0, 0x67, 0xba, 0xee, 0x5f, 0xe4, 0x6b, 0x1e, 0xef, + 0xf6, 0x6e, 0xf0, 0xd, 0xd0, 0xe3, 0x48, 0x68, 0x4f, 0xac, + 0x73, 0xbf, 0xf5, 0x26, 0xb2, 0x79, 0x75, 0x7f, 0xee, 0xbf, + 0xeb, 0xd0, 0xe4, 0x9f, 0xa, 0x45, 0xed, 0x18, 0xfd, 0xef, + 0xfc, 0x8f, 0xcc, 0x7f, 0xed, 0x6d, 0x7a, 0x1f, 0xbd, 0x6c, + 0xe6, 0x94, 0x78, 0xa7, 0x56, 0x8b, 0xef, 0xda, 0xc9, 0xff, + 00, 0x7c, 0x9a, 0xfd, 0x1f, 0xbc, 0xfd, 0x93, 0xbc, 0xf, + 0x73, 0xfe, 0xad, 0x2f, 0x20, 0xff, 00, 0x76, 0x45, 0x3f, + 0xcd, 0x6b, 0x12, 0xf7, 0xf6, 0x35, 0xf0, 0xbc, 0xf9, 0xf2, + 0x35, 0xb, 0x98, 0xbf, 0xdf, 0x8d, 0x5b, 0xf9, 0x62, 0xb1, + 0x96, 0x5f, 0x5b, 0xf9, 0x13, 0x38, 0xe5, 0xc2, 0x8d, 0x6d, + 0x1f, 0xba, 0x47, 0xe7, 0xf0, 0xf1, 0xcd, 0xe4, 0x63, 0xe7, + 0xb7, 0x71, 0xf5, 0x6, 0xa6, 0x4f, 0x88, 0x4e, 0xbf, 0x7a, + 0x32, 0x3f, 0x3a, 0xfb, 0x82, 0xef, 0xf6, 0x24, 0xd3, 0x64, + 0x3f, 0xb9, 0xd6, 0x94, 0xf, 0xf6, 0xed, 0x7f, 0xfb, 0x2a, + 0xc5, 0xbd, 0xfd, 0x86, 0x4b, 0x67, 0xc9, 0xd5, 0xac, 0xe4, + 0xf4, 0xf3, 0x22, 0x65, 0xff, 00, 0x1a, 0xc1, 0xe0, 0x2a, + 0x75, 0xa3, 0xf8, 0xaf, 0xf3, 0x39, 0x65, 0xc3, 0x15, 0x56, + 0xd1, 0x97, 0xde, 0xbf, 0xcc, 0xf9, 0x6, 0x3f, 0x88, 0xa9, + 0xfc, 0x40, 0x8a, 0xb5, 0x1f, 0xc4, 0x4b, 0x73, 0xd5, 0xb1, + 0xf8, 0xd7, 0xd2, 0xb7, 0xbf, 0xb0, 0xae, 0xaa, 0x1, 0xf2, + 0xa7, 0xd3, 0x26, 0xff, 00, 0x81, 0x11, 0xfc, 0xd6, 0xb9, + 0xfb, 0xef, 0xd8, 0x77, 0xc4, 0x71, 0x3, 0xb2, 0xc2, 0xd6, + 0x6f, 0xfa, 0xe7, 0x32, 0xff, 00, 0x52, 0x2b, 0x9, 0x60, + 0x7b, 0xd2, 0x67, 0x3c, 0xb8, 0x7b, 0x13, 0x1d, 0x9c, 0xfe, + 0xeb, 0x9e, 0x27, 0x1f, 0x8f, 0xad, 0x5b, 0x1f, 0xbc, 0xc5, + 0x59, 0x4f, 0x1b, 0x5a, 0xb7, 0xfc, 0xb5, 0x5f, 0xc6, 0xbd, + 0xe, 0xff, 00, 0xf6, 0x31, 0xf1, 0x4d, 0xbe, 0x4f, 0xf6, + 0x1c, 0x8c, 0x3d, 0x63, 0x60, 0xdf, 0xc8, 0xd7, 0x3f, 0x7b, + 0xfb, 0x28, 0xf8, 0x9a, 0xd4, 0x9c, 0xe8, 0x5a, 0x8a, 0xfb, + 0xac, 0xe, 0x7f, 0xa5, 0x61, 0x2c, 0x15, 0x35, 0xbc, 0x1a, + 0xf9, 0x1c, 0xd2, 0xc9, 0xb1, 0x70, 0xfb, 0x6f, 0xe7, 0x16, + 0x62, 0x27, 0x8b, 0xed, 0x5b, 0xfe, 0x5a, 0xa7, 0xe7, 0x53, + 0xa7, 0x89, 0xad, 0x9f, 0xa4, 0x89, 0xf9, 0xd5, 0x7b, 0xcf, + 0xd9, 0xd7, 0xc4, 0x36, 0x79, 0x2f, 0xa7, 0xea, 0x11, 0x1, + 0xfd, 0xe8, 0x58, 0x7f, 0x4a, 0xc6, 0xb8, 0xf8, 0x3b, 0xac, + 0xdb, 0x67, 0xfe, 0x3e, 0x13, 0x1f, 0xde, 0x43, 0x58, 0x3c, + 0x1d, 0xf, 0x34, 0x60, 0xf2, 0xfc, 0x64, 0x7e, 0xda, 0xf9, + 0xa3, 0xa8, 0x5d, 0x7a, 0xdd, 0xbf, 0x8d, 0x7f, 0x3a, 0x95, + 0x75, 0x78, 0xf, 0xf1, 0xa, 0xe1, 0x24, 0xf8, 0x6f, 0xad, + 0xc3, 0x9d, 0xb2, 0xc9, 0xf8, 0xa1, 0xaa, 0xef, 0xe0, 0xfd, + 0x7e, 0xe, 0x92, 0x31, 0xfc, 0xd, 0x47, 0xd4, 0xa8, 0xbd, + 0xa4, 0x67, 0xf5, 0x5c, 0x6a, 0xeb, 0x16, 0x7a, 0x38, 0xd4, + 0xa1, 0x6f, 0xe2, 0x14, 0xe1, 0x7d, 0x9, 0xfe, 0x31, 0x5e, + 0x62, 0xda, 0x47, 0x88, 0xa0, 0xe8, 0x49, 0xfc, 0x4d, 0x34, + 0xff, 00, 0xc2, 0x43, 0x7, 0x58, 0xd9, 0xbf, 0x1a, 0x87, + 0x97, 0xc7, 0xa4, 0x89, 0xf6, 0x58, 0xe5, 0xf6, 0x13, 0xf9, + 0x9e, 0xa6, 0x2e, 0xa3, 0x3f, 0xc4, 0x29, 0xc2, 0xe1, 0x4f, + 0x47, 0xfd, 0x6b, 0xca, 0x7f, 0xb5, 0xb5, 0xd8, 0x7e, 0xf5, + 0xb4, 0x87, 0xf0, 0xa7, 0xf, 0x14, 0xea, 0xb1, 0x7d, 0xeb, + 0x69, 0x3f, 0xef, 0x9a, 0x97, 0x97, 0x3e, 0x92, 0x44, 0xff, + 00, 0xb5, 0xc7, 0x7a, 0x47, 0xab, 0x8b, 0x93, 0xda, 0x53, + 0xf9, 0xd4, 0x89, 0x7d, 0x32, 0xfd, 0xd9, 0xd8, 0x7f, 0xc0, + 0xab, 0xc9, 0xd7, 0xc7, 0x17, 0x91, 0xfd, 0xfb, 0x77, 0x1f, + 0x81, 0xa9, 0x93, 0xe2, 0x13, 0xaf, 0xde, 0x8d, 0x85, 0x64, + 0xf2, 0xd9, 0xf4, 0xb0, 0x7b, 0x7c, 0x44, 0x77, 0xa7, 0x23, + 0xd6, 0x53, 0x58, 0xbd, 0x4f, 0xbb, 0x75, 0x28, 0xff, 00, + 0x81, 0x1a, 0xb1, 0x1f, 0x89, 0xb5, 0x38, 0xbe, 0xed, 0xe4, + 0xa3, 0xfe, 0x4, 0x6b, 0xc9, 0xa3, 0xf8, 0x88, 0x9d, 0xc3, + 0xf, 0xc6, 0xac, 0xc7, 0xf1, 0xa, 0x3, 0xfc, 0x44, 0x54, + 0x7f, 0x67, 0xd6, 0x5b, 0x21, 0xac, 0xc2, 0xac, 0x77, 0x52, + 0x5f, 0x79, 0xeb, 0x71, 0xf8, 0xe3, 0x5a, 0x8b, 0xa5, 0xf4, + 0x9f, 0xf7, 0xd5, 0x5c, 0x83, 0xe2, 0x6e, 0xbd, 0x6, 0x31, + 0x74, 0xc7, 0xea, 0x4d, 0x79, 0x14, 0x7e, 0x3e, 0xb6, 0x6e, + 0xaf, 0x8a, 0xb3, 0x1f, 0x8d, 0xad, 0x5b, 0xfe, 0x5a, 0x8a, + 0x5f, 0x55, 0xc4, 0x47, 0x6b, 0xfd, 0xec, 0xd5, 0x66, 0xf3, + 0x8f, 0xdb, 0x92, 0x3d, 0x8e, 0x1f, 0x8c, 0x3e, 0x20, 0x8b, + 0x1f, 0xe9, 0x4, 0xe3, 0xdc, 0xd6, 0x8d, 0xbf, 0xc7, 0x7d, + 0x7a, 0x1c, 0x7c, 0xe4, 0xff, 00, 0xc0, 0x8d, 0x78, 0x9a, + 0x78, 0xbe, 0xd5, 0xbf, 0xe5, 0xaa, 0xfe, 0x75, 0x3a, 0x78, + 0x9e, 0xd9, 0xff, 00, 0xe5, 0xa2, 0xfe, 0x74, 0x72, 0xe2, + 0xe1, 0xb3, 0x7f, 0x7b, 0x3a, 0x23, 0x9e, 0x54, 0x5f, 0xf2, + 0xf5, 0x9e, 0xef, 0x6f, 0xfb, 0x45, 0x6b, 0x71, 0x63, 0x73, + 0x31, 0xff, 00, 0x81, 0x1a, 0xd6, 0xb6, 0xfd, 0xa6, 0xf5, + 0x48, 0xb1, 0xb8, 0x39, 0xff, 00, 0x81, 0x57, 0xcf, 0x29, + 0xaf, 0xdb, 0xb7, 0xf1, 0xaf, 0xe7, 0x52, 0xae, 0xb1, 0x3, + 0x7f, 0x10, 0xfc, 0xea, 0xd6, 0x23, 0x1b, 0xd, 0xa6, 0xce, + 0xb8, 0x71, 0x5, 0x65, 0xb5, 0x53, 0xe9, 0x4b, 0x6f, 0xda, + 0x92, 0xec, 0x7f, 0xac, 0xdd, 0x5a, 0xd6, 0xdf, 0xb5, 0x42, + 0xf1, 0xbd, 0x41, 0xfa, 0x8a, 0xf9, 0x65, 0x75, 0x38, 0x4f, + 0xf1, 0xf, 0xce, 0x9e, 0x2f, 0xa1, 0x6f, 0xe2, 0x15, 0xa2, + 0xcc, 0x71, 0xf1, 0xfb, 0x6c, 0xeb, 0x8f, 0x11, 0x62, 0x3f, + 0x9d, 0x1f, 0x5b, 0xdb, 0x7e, 0xd4, 0x56, 0x6f, 0x8f, 0x30, + 0x20, 0xfc, 0x2b, 0x56, 0xf, 0xda, 0x63, 0x49, 0x93, 0x19, + 0xf2, 0xfe, 0xb9, 0x22, 0xbe, 0x35, 0x17, 0x31, 0x1f, 0xe2, + 0x14, 0xf1, 0x3a, 0x1e, 0x8f, 0xfa, 0xd6, 0xcb, 0x38, 0xc7, + 0x47, 0xed, 0x7e, 0x7, 0x5c, 0x78, 0x8f, 0x11, 0xe4, 0xcf, + 0xb6, 0xad, 0xff, 00, 0x68, 0x6d, 0xe, 0x5c, 0x6e, 0x78, + 0xc7, 0xfc, 0xa, 0xb4, 0xa0, 0xf8, 0xe7, 0xe1, 0xf9, 0xb1, + 0x89, 0x57, 0xfe, 0xfa, 0xaf, 0x85, 0x44, 0xe3, 0xb3, 0xfe, + 0xb4, 0xf5, 0xba, 0x91, 0x7a, 0x4a, 0xc3, 0xe8, 0xd5, 0xb2, + 0xcf, 0x71, 0x8b, 0x74, 0x8e, 0xa8, 0xf1, 0x25, 0x5e, 0xb1, + 0x3e, 0xf8, 0xb7, 0xf8, 0xb9, 0xa0, 0x4c, 0x1, 0xfb, 0x48, + 0x1f, 0x8d, 0x5d, 0x8b, 0xe2, 0x4e, 0x83, 0x37, 0xdd, 0xbc, + 0x5a, 0xfc, 0xff, 00, 0x5d, 0x46, 0xe5, 0x7a, 0x5c, 0x3f, + 0xfd, 0xf5, 0x53, 0xc7, 0xae, 0xea, 0x11, 0xfd, 0xdb, 0xb9, + 0x7, 0xd1, 0xab, 0x75, 0xc4, 0x35, 0xd6, 0xf0, 0x47, 0x44, + 0x78, 0x91, 0xf5, 0x81, 0xfa, 0xd, 0x1f, 0x8d, 0x74, 0x69, + 0x7a, 0x5f, 0x46, 0x3e, 0xa6, 0xac, 0xc7, 0xe2, 0x5d, 0x32, + 0x5f, 0xbb, 0x7b, 0x11, 0xfc, 0x6b, 0xf3, 0xe5, 0x3c, 0x5b, + 0xab, 0x47, 0x8c, 0x5e, 0xcb, 0xff, 00, 0x7d, 0x55, 0xb8, + 0x7c, 0x7f, 0xad, 0xc3, 0xf7, 0x6f, 0x5f, 0xf1, 0x35, 0xb2, + 0xe2, 0x29, 0x7d, 0xaa, 0x7f, 0x89, 0xd1, 0x1e, 0x24, 0xa6, + 0xf7, 0x89, 0xfa, 0x6, 0x9a, 0xb5, 0x9b, 0xfd, 0xdb, 0xa8, + 0x8f, 0xfc, 0x8, 0x54, 0xa9, 0x79, 0x3, 0xfd, 0xd9, 0x91, + 0xbe, 0x8c, 0x2b, 0xe0, 0x48, 0x7e, 0x29, 0xeb, 0xf1, 0x1f, + 0xf8, 0xfb, 0x73, 0xf8, 0xd6, 0x84, 0x1f, 0x1a, 0x7c, 0x41, + 0x7, 0xfc, 0xb7, 0x27, 0xf1, 0xad, 0xe3, 0xc4, 0x50, 0xeb, + 0x4d, 0xfe, 0x7, 0x44, 0x78, 0x87, 0xe, 0xf7, 0x4c, 0xfb, + 0xbc, 0x3a, 0x9e, 0x8c, 0xf, 0xe3, 0x4b, 0x90, 0x7b, 0xd7, + 0xc3, 0xf6, 0xff, 00, 0x1f, 0x35, 0xc8, 0xb1, 0xba, 0x47, + 0x6f, 0xf8, 0x15, 0x6a, 0x5b, 0xfe, 0xd2, 0x1a, 0xc4, 0x3d, + 0x4b, 0xff, 00, 0xdf, 0x55, 0xd1, 0x1e, 0x21, 0xc3, 0xbd, + 0xe2, 0xd1, 0xd1, 0x1c, 0xfb, 0x8, 0xfa, 0x9f, 0x66, 0xd1, + 0x5f, 0x22, 0xdb, 0x7e, 0xd3, 0xba, 0x8a, 0xe3, 0xcc, 0x32, + 0x1f, 0x6c, 0xd6, 0xad, 0xbf, 0xed, 0x4d, 0x38, 0xc6, 0xe0, + 0xdf, 0x8e, 0x2b, 0x68, 0xe7, 0xd8, 0x37, 0xbb, 0x6b, 0xe4, + 0x6f, 0x1c, 0xe7, 0x7, 0x2f, 0xb4, 0x7d, 0x4b, 0x45, 0x7c, + 0xdf, 0x6b, 0xfb, 0x52, 0x46, 0x71, 0xe6, 0x7e, 0xa2, 0xb5, + 0x2d, 0xff, 00, 0x69, 0xfb, 0x17, 0xc0, 0x65, 0x5f, 0xa9, + 0xad, 0xe3, 0x9d, 0x60, 0xa5, 0xf6, 0xce, 0x88, 0xe6, 0x78, + 0x59, 0x6d, 0x33, 0xdf, 0x28, 0xaf, 0x18, 0xb7, 0xfd, 0xa4, + 0x74, 0x87, 0xc6, 0xf3, 0x18, 0xff, 00, 0x81, 0x56, 0x9d, + 0xbf, 0xed, 0x3, 0xa1, 0xcd, 0x8e, 0x57, 0xfe, 0xfb, 0xae, + 0x88, 0xe6, 0x78, 0x39, 0x6d, 0x51, 0x1b, 0xac, 0x6e, 0x1e, + 0x5b, 0x4d, 0x1e, 0xa9, 0x45, 0x79, 0xec, 0x1f, 0x1a, 0xf4, + 0x9, 0x40, 0xcc, 0xa0, 0x7f, 0xc0, 0x85, 0x5f, 0x83, 0xe2, + 0xc6, 0x83, 0x39, 0xe2, 0xe3, 0x1f, 0x88, 0xae, 0x85, 0x8c, + 0xc3, 0xcb, 0x69, 0xa3, 0x55, 0x88, 0xa4, 0xf6, 0x92, 0x3b, + 0x3a, 0x2b, 0x9a, 0x8f, 0xe2, 0x16, 0x87, 0x27, 0xfc, 0xbe, + 0x28, 0xfc, 0x6a, 0xdc, 0x5e, 0x32, 0xd2, 0x26, 0x3f, 0x2d, + 0xec, 0x7f, 0x9d, 0x6c, 0xab, 0x52, 0x7b, 0x49, 0x1a, 0x2a, + 0x90, 0x7d, 0x4d, 0xaa, 0x2b, 0x39, 0x3c, 0x41, 0xa7, 0x3f, + 0x4b, 0xc8, 0xbf, 0xef, 0xaa, 0x9d, 0x35, 0x4b, 0x49, 0x3e, + 0xed, 0xcc, 0x67, 0xfe, 0x4, 0x2a, 0xd4, 0xe2, 0xf6, 0x65, + 0x73, 0x27, 0xd4, 0xb5, 0x55, 0xb5, 0x27, 0xf2, 0xac, 0x2e, + 0x1b, 0xd1, 0x9, 0xfd, 0x2a, 0x41, 0x73, 0xb, 0x74, 0x95, + 0xf, 0xfc, 0x8, 0x56, 0x4f, 0x8b, 0xb5, 0x58, 0x34, 0xef, + 0xf, 0x5e, 0xcd, 0x24, 0xaa, 0x2, 0xc6, 0x7f, 0x88, 0x52, + 0x9c, 0x92, 0x8b, 0x62, 0x94, 0x92, 0x8b, 0x67, 0xc3, 0xff, + 00, 0x18, 0xef, 0x47, 0xf6, 0xe4, 0xc4, 0x9f, 0xe2, 0x3f, + 0xce, 0xbe, 0x6a, 0xf8, 0x9d, 0xe2, 0x25, 0x8a, 0xdd, 0xe2, + 0x57, 0xc1, 0xc1, 0xef, 0x5e, 0xa7, 0xf1, 0xaf, 0xc6, 0xf0, + 0x7f, 0x69, 0x5c, 0x4a, 0xae, 0x32, 0x58, 0xe0, 0x66, 0xbe, + 0x67, 0xbe, 0x87, 0x53, 0xf8, 0x83, 0xe2, 0x5b, 0x1d, 0x13, + 0x4b, 0x89, 0xee, 0x75, 0x2d, 0x4a, 0xe1, 0x6d, 0xad, 0xe2, + 0x5e, 0x4b, 0x33, 0x1c, 0xa, 0xf8, 0x3c, 0xbf, 0xc, 0xe5, + 0x39, 0x56, 0x7d, 0x5b, 0xb1, 0xf8, 0x9d, 0x78, 0x4b, 0x33, + 0xcc, 0xb9, 0x21, 0xf0, 0xa6, 0x7e, 0x80, 0x7f, 0xc1, 0x2d, + 0xbc, 0x19, 0x36, 0x97, 0xf0, 0xa3, 0xc5, 0x3e, 0x28, 0xb8, + 0x8c, 0xab, 0x6b, 0xda, 0xb6, 0xd8, 0x58, 0xff, 00, 0x14, + 0x30, 0x26, 0xc0, 0x7f, 0xef, 0xb6, 0x93, 0xf2, 0xaf, 0xb5, + 0x6b, 0x88, 0xf8, 0x27, 0xf0, 0xda, 0xdf, 0xe1, 0xf, 0xc2, + 0x9f, 0xc, 0xf8, 0x42, 0xdc, 0xab, 0x8d, 0x2e, 0xcd, 0x22, + 0x92, 0x45, 0x18, 0xf3, 0x25, 0x3f, 0x34, 0x8d, 0xf8, 0xb1, + 0x63, 0x5d, 0xbd, 0x7d, 0xec, 0x23, 0xcb, 0x14, 0x8f, 0xda, + 0x68, 0xc3, 0xd9, 0x53, 0x8c, 0x3b, 0x20, 0xa2, 0x8a, 0x2a, + 0xcd, 0x82, 0x8a, 0x28, 0xa0, 0x2, 0x8a, 0x28, 0xa0, 0x2, + 0x8a, 0x28, 0xa0, 0x2, 0x8a, 0x28, 0xa0, 0x2, 0x8a, 0x28, + 0xa0, 0x2, 0x8a, 0x28, 0xa0, 0x2, 0x8a, 0x28, 0xa0, 0x2, + 0x8a, 0x28, 0xa0, 0x2, 0x8a, 0x28, 0xa0, 0x2, 0x8a, 0x28, + 0xa0, 0x2, 0x8a, 0x28, 0xa0, 0x2, 0x8a, 0x28, 0xa0, 0x2, + 0x8a, 0x28, 0xa0, 0x2, 0x8a, 0x28, 0xa0, 0x2, 0x8a, 0x28, + 0xa0, 0x2, 0x8a, 0x28, 0xa0, 0x2, 0x8a, 0x28, 0xa0, 0x2, + 0x8a, 0x28, 0xa0, 0x2, 0x8a, 0x28, 0xa0, 0x2, 0xa3, 0x92, + 0xde, 0x29, 0x86, 0x24, 0x89, 0x1c, 0x7f, 0xb4, 0xa0, 0xd4, + 0x94, 0x51, 0xb8, 0x19, 0x97, 0x3e, 0x19, 0xd1, 0xef, 0x41, + 0x17, 0x1a, 0x55, 0x94, 0xc0, 0xf6, 0x92, 0xdd, 0xf, 0xf3, + 0x15, 0x97, 0x75, 0xf0, 0xcb, 0xc2, 0x77, 0x83, 0x12, 0xf8, + 0x7b, 0x4f, 0x3f, 0xee, 0xc0, 0xab, 0xfc, 0xb1, 0x5d, 0x3d, + 0x15, 0x9b, 0xa7, 0x9, 0x6f, 0x14, 0x64, 0xe9, 0x53, 0x97, + 0xc5, 0x14, 0xfe, 0x47, 0x5, 0x75, 0xf0, 0x2b, 0xc0, 0xd7, + 0x9f, 0x7f, 0x40, 0x85, 0x7f, 0xdc, 0x91, 0xd7, 0xf9, 0x35, + 0x64, 0xdc, 0x7e, 0xcd, 0x1e, 0x2, 0xb8, 0x24, 0xff, 00, + 0x65, 0xcb, 0x1e, 0x7b, 0x24, 0xed, 0xfd, 0x73, 0x5e, 0xa7, + 0x45, 0x62, 0xf0, 0xb4, 0x1e, 0xf0, 0x5f, 0x71, 0x83, 0xc1, + 0xe1, 0xa5, 0xbd, 0x35, 0xf7, 0x23, 0xc5, 0xae, 0x7f, 0x64, + 0xbf, 0x3, 0x5c, 0x64, 0xa8, 0xbe, 0x8b, 0x3d, 0x2, 0xca, + 0xa4, 0xf, 0xcd, 0x6b, 0x16, 0xeb, 0xf6, 0x32, 0xf0, 0xb4, + 0xa1, 0xbc, 0xad, 0x46, 0xee, 0x33, 0xdb, 0x72, 0x29, 0xff, + 00, 0xa, 0xfa, 0xe, 0x8a, 0xcd, 0xe0, 0x70, 0xef, 0xec, + 0x19, 0x3c, 0xbb, 0x8, 0xff, 00, 0xe5, 0xda, 0x3e, 0x61, + 0xbb, 0xfd, 0x88, 0xb4, 0xe7, 0x53, 0xe4, 0xeb, 0x99, 0x3d, + 0x83, 0xdb, 0x60, 0x7f, 0xe8, 0x55, 0xcf, 0xdf, 0x7e, 0xc3, + 0x77, 0x27, 0xfd, 0x46, 0xa5, 0x63, 0x2f, 0xfb, 0xe1, 0x97, + 0xff, 00, 0x65, 0x35, 0xf5, 0xf5, 0x15, 0x93, 0xcb, 0xb0, + 0xef, 0x64, 0xd7, 0xcd, 0x98, 0xbc, 0xab, 0x8, 0xfe, 0xcd, + 0xbe, 0x6c, 0xf8, 0x92, 0xf7, 0xf6, 0x18, 0xd6, 0xb9, 0xf2, + 0xdb, 0x4e, 0x97, 0xfd, 0xd9, 0x48, 0xfe, 0x6a, 0x2b, 0x6, + 0xfb, 0xf6, 0x1e, 0xf1, 0x2c, 0x64, 0xec, 0xd3, 0xad, 0xa6, + 0xf7, 0x4b, 0x84, 0xfe, 0xa4, 0x57, 0xdf, 0x34, 0x54, 0x3c, + 0xb2, 0x8f, 0x46, 0xfe, 0xf3, 0x7, 0x93, 0x61, 0x9f, 0x57, + 0xf7, 0xff, 00, 0xc0, 0x3f, 0x39, 0xaf, 0x7f, 0x63, 0x1f, + 0x15, 0xdb, 0x92, 0x3f, 0xb0, 0x65, 0x6f, 0xfa, 0xe7, 0x22, + 0xb7, 0xf2, 0x26, 0xb0, 0x2f, 0x7f, 0x65, 0xf, 0x14, 0x5a, + 0x12, 0xe, 0x83, 0xa8, 0xae, 0x3f, 0xbb, 0x13, 0x37, 0xf2, + 0x15, 0xfa, 0x71, 0x45, 0x43, 0xcb, 0x23, 0xd2, 0x6c, 0xc2, + 0x59, 0x15, 0x7, 0xb4, 0x9f, 0xe1, 0xfe, 0x47, 0xe5, 0x3d, + 0xef, 0xec, 0xfd, 0xad, 0xd9, 0x13, 0xe6, 0x59, 0x5e, 0xc3, + 0xfe, 0xfa, 0x11, 0xfc, 0xc5, 0x64, 0x4f, 0xf0, 0x8f, 0x56, + 0xb7, 0x24, 0x3, 0x32, 0xff, 00, 0xbc, 0x2b, 0xf5, 0xb8, + 0xa8, 0x3d, 0x40, 0x35, 0xc, 0x96, 0x16, 0xd3, 0xc, 0x49, + 0x6f, 0x14, 0x83, 0xfd, 0xa4, 0x6, 0xb3, 0x79, 0x6c, 0xfa, + 0x54, 0xfc, 0x3f, 0xe0, 0x9c, 0x92, 0xe1, 0xda, 0x72, 0xfb, + 0x4b, 0xff, 00, 0x1, 0xff, 00, 0x82, 0x7e, 0x45, 0xc9, + 0xf0, 0xeb, 0x5a, 0x83, 0xa4, 0x8f, 0xf8, 0xa9, 0xaa, 0xcf, + 0xe1, 0x1d, 0x7e, 0x1e, 0x8f, 0xf9, 0xe4, 0x57, 0xeb, 0x7c, + 0xfe, 0x15, 0xd1, 0x6e, 0xbf, 0xd7, 0x69, 0x16, 0x32, 0xff, + 00, 0xbf, 0x6c, 0x87, 0xfa, 0x56, 0x65, 0xcf, 0xc3, 0xf, + 0x9, 0x5d, 0xff, 00, 0xad, 0xf0, 0xee, 0x9c, 0x7d, 0xc5, + 0xba, 0xaf, 0xf2, 0xa8, 0x79, 0x75, 0x6e, 0x93, 0x4f, 0xe4, + 0x72, 0x4f, 0x86, 0x29, 0xbd, 0xb9, 0x7e, 0xe3, 0xf2, 0x7c, + 0xe9, 0x3e, 0x22, 0x83, 0xa7, 0x3f, 0xf0, 0x23, 0x4d, 0xff, + 00, 0x8a, 0x8a, 0x1f, 0xf9, 0x66, 0x5b, 0x1e, 0xf5, 0xfa, + 0x9b, 0x75, 0xf0, 0x2b, 0xc0, 0xb7, 0x79, 0xdf, 0xe1, 0xeb, + 0x75, 0xcf, 0xfc, 0xf3, 0x77, 0x5f, 0xe4, 0x6b, 0x26, 0xe7, + 0xf6, 0x67, 0xf0, 0x5, 0xc0, 0x23, 0xfb, 0x2a, 0x48, 0xb3, + 0xdd, 0x27, 0x6f, 0xeb, 0x9a, 0xc9, 0xe5, 0xf5, 0xff, 00, + 0xba, 0xff, 00, 0xaf, 0x43, 0x8e, 0x7c, 0x29, 0x17, 0xf6, + 0x63, 0xf7, 0xbf, 0xf2, 0x3f, 0x32, 0x3f, 0xb5, 0xb5, 0xc8, + 0x4f, 0xcd, 0x6e, 0xe7, 0xf0, 0xcd, 0x28, 0xf1, 0x46, 0xab, + 0x17, 0xdf, 0xb7, 0x7f, 0xfb, 0xe6, 0xbf, 0x48, 0x2e, 0xff, + 00, 0x64, 0xbf, 0x2, 0xdc, 0x8f, 0x91, 0x2f, 0x61, 0xff, + 00, 0x76, 0x55, 0x3f, 0xcd, 0x6b, 0x1e, 0xf3, 0xf6, 0x33, + 0xf0, 0xa4, 0xc3, 0xf7, 0x1a, 0x85, 0xe4, 0x47, 0xfd, 0xb5, + 0x56, 0xff, 00, 0xa, 0xc9, 0xe0, 0x2b, 0x7f, 0x22, 0x67, + 0x24, 0xb8, 0x51, 0xad, 0xa1, 0xf7, 0x48, 0xfc, 0xfa, 0x5f, + 0x1c, 0x5d, 0xc7, 0xf7, 0xe1, 0x61, 0xff, 00, 0x1, 0x35, + 0x32, 0x7c, 0x41, 0x71, 0xf7, 0x90, 0x8f, 0xce, 0xbe, 0xe2, + 0xbd, 0xfd, 0x88, 0x74, 0xc9, 0x3f, 0xe3, 0xdf, 0x5b, 0xc0, + 0xff, 00, 0xa6, 0x96, 0xdf, 0xe0, 0xd5, 0x81, 0x79, 0xfb, + 0xc, 0x4e, 0xcc, 0x7c, 0x9d, 0x52, 0xc5, 0xd7, 0xb6, 0xf5, + 0x65, 0x3f, 0xfa, 0x9, 0xac, 0x1e, 0x2, 0xa7, 0x5a, 0x5f, + 0x91, 0xcb, 0x2e, 0x17, 0xab, 0x1d, 0xa3, 0x2f, 0xbd, 0x7f, + 0x99, 0xf2, 0x24, 0x7f, 0x11, 0x13, 0xbe, 0x6a, 0xd4, 0x7f, + 0x10, 0xa0, 0x38, 0xcb, 0x11, 0x5f, 0x4a, 0x5d, 0xfe, 0xc2, + 0xfa, 0xcf, 0x3e, 0x5b, 0xe9, 0xb2, 0xe, 0xd8, 0x90, 0x8f, + 0xe6, 0xb5, 0x83, 0x79, 0xfb, 0xe, 0xf8, 0x99, 0x41, 0x29, + 0xa7, 0xdb, 0x49, 0xfe, 0xe5, 0xc2, 0xf, 0xeb, 0x58, 0x3c, + 0xf, 0x7a, 0x4c, 0xe6, 0x97, 0xe, 0xe2, 0x23, 0xb7, 0x3f, + 0xdd, 0x73, 0xc4, 0xa3, 0xf1, 0xed, 0xb3, 0x7f, 0xcb, 0x4f, + 0xd2, 0xac, 0xc7, 0xe3, 0x7b, 0x66, 0xff, 00, 0x96, 0xa2, + 0xbd, 0x16, 0xf7, 0xf6, 0x2e, 0xf1, 0x64, 0xa, 0xcd, 0xfd, + 0x83, 0x23, 0x1, 0xff, 00, 0x3c, 0xe5, 0x56, 0xfd, 0x3, + 0x57, 0x3f, 0x7d, 0xfb, 0x28, 0x78, 0xa6, 0xd0, 0x16, 0x7d, + 0x3, 0x51, 0x50, 0x3b, 0xac, 0x4c, 0x7f, 0xa5, 0x60, 0xf0, + 0x54, 0xd6, 0xf0, 0x6b, 0xe4, 0x73, 0xcb, 0x25, 0xc5, 0xc3, + 0xed, 0xc9, 0x7a, 0xa6, 0x61, 0x27, 0x8c, 0x2d, 0x5b, 0xfe, + 0x5a, 0xad, 0x58, 0x4f, 0x14, 0x5b, 0x3f, 0xfc, 0xb4, 0x5f, + 0xce, 0xaa, 0x5f, 0x7e, 0xcf, 0xda, 0xe5, 0x8e, 0x7c, 0xdb, + 0x1b, 0xf8, 0xf, 0xfb, 0x71, 0xb0, 0xfe, 0x62, 0xb2, 0x27, + 0xf8, 0x47, 0xaa, 0xdb, 0xe7, 0x99, 0xd7, 0xea, 0xb5, 0x83, + 0xc2, 0x50, 0xf4, 0x39, 0xde, 0x5f, 0x8b, 0x8f, 0xfc, 0xbc, + 0x5f, 0x34, 0x75, 0x2b, 0xaf, 0xdb, 0xb7, 0xf1, 0x8f, 0xce, + 0xa5, 0x5d, 0x62, 0x16, 0xee, 0x2b, 0x83, 0x93, 0xe1, 0xd6, + 0xb3, 0xf, 0xdd, 0x95, 0xc7, 0xd5, 0x6a, 0xbb, 0xf8, 0x3f, + 0x5e, 0x83, 0xa4, 0x9f, 0xce, 0xb3, 0xfa, 0x95, 0x17, 0xb4, + 0x88, 0xfa, 0xae, 0x35, 0x6d, 0x28, 0xb3, 0xd2, 0x6, 0xa9, + 0x9, 0xfe, 0x2a, 0x78, 0xbf, 0x84, 0xff, 00, 0x10, 0xaf, + 0x2f, 0x3a, 0x37, 0x88, 0x61, 0xe8, 0x73, 0xff, 00, 0x2, + 0xa6, 0x95, 0xf1, 0xc, 0x3d, 0x50, 0x9f, 0xa3, 0x54, 0xbc, + 0xbe, 0x1d, 0x24, 0x4f, 0xb1, 0xc7, 0x2f, 0xb2, 0x9f, 0xcc, + 0xf5, 0x51, 0x77, 0x11, 0xfe, 0x2a, 0x70, 0x9e, 0x33, 0xfc, + 0x55, 0xe5, 0x3, 0x52, 0xd7, 0xa1, 0xfb, 0xd0, 0x39, 0xa7, + 0x7f, 0xc2, 0x4d, 0xaa, 0xc5, 0xf7, 0xe0, 0x93, 0xfe, 0xf9, + 0xa9, 0x79, 0x77, 0x69, 0x12, 0xd6, 0x32, 0x3b, 0xd2, 0x3d, + 0x58, 0x4c, 0xbd, 0x9a, 0x9e, 0xb3, 0x11, 0xd2, 0x43, 0xf9, + 0xd7, 0x94, 0x2f, 0x8d, 0x6f, 0x53, 0xef, 0x42, 0xff, 00, + 0x8a, 0x9a, 0x95, 0x3e, 0x20, 0x4a, 0xbf, 0x79, 0x18, 0x7e, + 0x6, 0xb3, 0x79, 0x6c, 0xfa, 0x32, 0x7d, 0xae, 0x22, 0x3b, + 0xd2, 0x67, 0xaa, 0xad, 0xd4, 0x8b, 0xd2, 0x56, 0x1f, 0x8d, + 0x4c, 0x9a, 0xa5, 0xda, 0x7d, 0xdb, 0x89, 0x7, 0xd1, 0xab, + 0xcb, 0x23, 0xf8, 0x88, 0xbd, 0xc1, 0x15, 0x66, 0x3f, 0x88, + 0x50, 0x9e, 0xac, 0x6b, 0x37, 0x97, 0x55, 0x5d, 0x3, 0xeb, + 0xb5, 0x23, 0xbc, 0x64, 0x8f, 0x51, 0x8f, 0xc4, 0x3a, 0x8c, + 0x47, 0x2b, 0x75, 0x27, 0xfd, 0xf4, 0x6a, 0xdc, 0x5e, 0x33, + 0xd6, 0x22, 0xfb, 0xb7, 0x8e, 0x3f, 0x1a, 0xf2, 0xd8, 0xfc, + 0x7d, 0x6e, 0x7f, 0x8c, 0xd4, 0xeb, 0xe3, 0xab, 0x6c, 0x64, + 0xcb, 0x8a, 0xcf, 0xea, 0x35, 0xa3, 0xb2, 0x34, 0x59, 0xa4, + 0xa3, 0xd6, 0x4b, 0xef, 0x3d, 0x56, 0x1f, 0x88, 0x9a, 0xe4, + 0x3d, 0x2e, 0xd8, 0xfd, 0x4d, 0x5e, 0x8f, 0xe2, 0xe6, 0xbd, + 0x7, 0xfc, 0xbc, 0xd7, 0x8b, 0x5c, 0x7c, 0x42, 0xb4, 0x88, + 0x1f, 0xde, 0xd6, 0x16, 0xa7, 0xf1, 0x4e, 0xde, 0x30, 0x76, + 0x36, 0xe3, 0x5d, 0x14, 0xf0, 0x78, 0xa7, 0xb3, 0x6b, 0xe6, + 0xcd, 0x16, 0x73, 0x5f, 0x6a, 0x6e, 0x4c, 0xfa, 0x2f, 0xfe, + 0x17, 0xe6, 0xb1, 0x62, 0x32, 0xd3, 0xee, 0x23, 0xde, 0xb8, + 0x5f, 0x88, 0x3f, 0xb4, 0xad, 0xfd, 0xed, 0x94, 0xd0, 0xbd, + 0xe3, 0x7c, 0xc3, 0x5, 0x1, 0xe2, 0xbe, 0x7b, 0xd6, 0x7e, + 0x22, 0xde, 0x5f, 0x16, 0x58, 0x89, 0x55, 0x35, 0x99, 0xe1, + 0xdf, 0xb, 0xf8, 0x87, 0xe2, 0x26, 0xbb, 0x6f, 0xa5, 0xe8, + 0xd6, 0x17, 0x3a, 0xae, 0xa3, 0x70, 0xdb, 0x63, 0x82, 0x4, + 0x2c, 0x4f, 0xf8, 0x1, 0xea, 0x78, 0x15, 0xed, 0xd0, 0xc0, + 0xd4, 0x4a, 0xd5, 0x66, 0xdf, 0x95, 0xcd, 0xe3, 0x8b, 0xcc, + 0x71, 0x5e, 0xe5, 0x49, 0xf2, 0xc5, 0xf4, 0xea, 0xc8, 0x7c, + 0x53, 0xe2, 0xcb, 0x9f, 0x10, 0x5d, 0x33, 0xb3, 0x33, 0x64, + 0xf0, 0x7, 0x7a, 0xfb, 0xf3, 0xf6, 0x15, 0xfd, 0x91, 0x66, + 0xf0, 0x1a, 0x45, 0xf1, 0xf, 0xc6, 0x76, 0x5e, 0x5f, 0x88, + 0xee, 0x13, 0x3a, 0x5d, 0x94, 0x87, 0x26, 0xce, 0x26, 0x5e, + 0x64, 0x71, 0xda, 0x46, 0x7, 0xa7, 0xf0, 0x8f, 0x73, 0xc6, + 0xcf, 0xec, 0xb3, 0xfb, 0xb, 0xe9, 0xff, 00, 0xc, 0x65, + 0xb7, 0xf1, 0x37, 0x8d, 0xd2, 0xdf, 0x57, 0xf1, 0x3a, 0x10, + 0xf6, 0xd6, 0x6a, 0x7c, 0xcb, 0x7b, 0x2e, 0x3a, 0x9c, 0x8c, + 0x3c, 0x9e, 0xfd, 0x7, 0x6c, 0xf5, 0xaf, 0xae, 0xab, 0xe9, + 0xf0, 0xf8, 0x75, 0x4, 0x9b, 0x5e, 0x88, 0xfd, 0xf, 0x26, + 0xca, 0x56, 0x12, 0x2a, 0xa5, 0x45, 0x67, 0xd1, 0x7f, 0x9f, + 0x98, 0x51, 0x45, 0x15, 0xe8, 0x1f, 0x58, 0x14, 0x51, 0x45, + 00, 0x14, 0x51, 0x45, 00, 0x14, 0x51, 0x45, 00, 0x14, + 0x51, 0x45, 00, 0x14, 0x51, 0x45, 00, 0x14, 0x51, 0x45, + 00, 0x14, 0x51, 0x45, 00, 0x14, 0x51, 0x45, 00, 0x14, + 0x51, 0x45, 00, 0x14, 0x51, 0x45, 00, 0x14, 0x51, 0x45, + 00, 0x14, 0x51, 0x45, 00, 0x14, 0x51, 0x45, 00, 0x14, + 0x51, 0x45, 00, 0x14, 0x51, 0x45, 00, 0x14, 0x51, 0x45, + 00, 0x14, 0x51, 0x45, 00, 0x14, 0x51, 0x45, 00, 0x14, + 0x51, 0x45, 00, 0x14, 0x51, 0x45, 00, 0x14, 0x51, 0x45, + 00, 0x14, 0x51, 0x45, 00, 0x14, 0x51, 0x45, 00, 0x14, + 0x51, 0x45, 00, 0x14, 0x51, 0x45, 00, 0x14, 0x51, 0x45, + 00, 0x14, 0x51, 0x45, 00, 0x14, 0x51, 0x45, 00, 0x14, + 0x51, 0x45, 00, 0x14, 0x51, 0x45, 00, 0x14, 0x51, 0x45, + 00, 0x14, 0x51, 0x45, 00, 0x14, 0x51, 0x45, 00, 0x14, + 0x51, 0x45, 00, 0x21, 00, 0xf5, 0xa8, 0xa5, 0xb3, 0xb7, + 0x9b, 0xfd, 0x64, 0x11, 0xc9, 0xfe, 0xf2, 0x3, 0x45, 0x14, + 0xad, 0x71, 0x5a, 0xe5, 0x19, 0xfc, 0x2d, 0xa3, 0x5c, 0x92, + 0x66, 0xd2, 0x2c, 0x65, 0x27, 0xbb, 0xdb, 0x21, 0xfe, 0x95, + 0x9b, 0x71, 0xf0, 0xcf, 0xc2, 0x77, 0x44, 0x99, 0x7c, 0x3b, + 0xa6, 0xb1, 0x3f, 0xf4, 0xec, 0xa3, 0xf9, 0xa, 0x28, 0xa8, + 0x74, 0xe0, 0xf7, 0x8a, 0x33, 0x74, 0xa9, 0xcb, 0x78, 0xaf, + 0xb8, 0xc7, 0xbb, 0xf8, 0x13, 0xe0, 0x5b, 0xdc, 0xef, 0xf0, + 0xfd, 0xba, 0x93, 0xde, 0x36, 0x65, 0xfe, 0x46, 0xb1, 0xee, + 0xff, 00, 0x66, 0x4f, 0x1, 0x5d, 0x74, 0xd3, 0xa5, 0x87, + 0xfe, 0xb9, 0xcc, 0x7f, 0xae, 0x68, 0xa2, 0xb1, 0x78, 0x5a, + 0xf, 0x78, 0x2f, 0xb8, 0xc2, 0x58, 0x3c, 0x34, 0xb7, 0xa6, + 0xbe, 0xe4, 0x63, 0x5d, 0x7e, 0xc8, 0xbe, 0xa, 0x9f, 0xee, + 0x49, 0x7d, 0x17, 0xb0, 0x74, 0x3f, 0xfb, 0x2d, 0x64, 0x5d, + 0x7e, 0xc6, 0x1e, 0x19, 0x97, 0x3e, 0x4e, 0xa9, 0x77, 0x17, + 0xfb, 0xd1, 0xab, 0x7f, 0x85, 0x14, 0x56, 0x6f, 0x3, 0x86, + 0x7f, 0x60, 0xc5, 0xe5, 0xd8, 0x47, 0xff, 00, 0x2e, 0xd1, + 0x8b, 0x7b, 0xfb, 0x10, 0x69, 0xd2, 0x3, 0xe4, 0x6b, 0xdc, + 0xf6, 0x12, 0x5a, 0xff, 00, 0x83, 0x56, 0xd, 0xf7, 0xec, + 0x31, 0x71, 0x83, 0xf6, 0x7d, 0x5a, 0xca, 0x53, 0xd8, 0x49, + 0x1b, 0x2f, 0xf4, 0x34, 0x51, 0x59, 0xbc, 0xbb, 0xe, 0xf6, + 0x56, 0xf9, 0xb3, 0x27, 0x95, 0x61, 0x1f, 0xd9, 0xb7, 0xcd, + 0x98, 0x17, 0xdf, 0xb0, 0xce, 0xb8, 0xa0, 0xf9, 0x6d, 0xa7, + 0x4f, 0xec, 0xb2, 0x63, 0xf9, 0xa8, 0xae, 0x7e, 0xff, 00, + 0xf6, 0x24, 0xf1, 0x44, 0x59, 0xd9, 0xa5, 0xc1, 0x37, 0xbc, + 0x73, 0x47, 0xfd, 0x5a, 0x8a, 0x2b, 0x29, 0x65, 0xb4, 0xba, + 0x37, 0xf7, 0xff, 00, 0xc0, 0x39, 0xe5, 0x93, 0x61, 0xba, + 0x37, 0xf7, 0xff, 00, 0xc0, 0x30, 0x2f, 0x3f, 0x63, 0x6f, + 0x16, 0x43, 0xff, 00, 0x32, 0xfc, 0xed, 0xff, 00, 0x5c, + 0xd9, 0x5b, 0xf9, 0x1a, 0xc1, 0xbf, 0xfd, 0x94, 0x3c, 0x55, + 0x6d, 0x90, 0x7c, 0x3f, 0xa9, 0x8f, 0x75, 0x85, 0x98, 0x7e, + 0x82, 0x8a, 0x2b, 0x86, 0xa6, 0x16, 0x34, 0xf6, 0x93, 0xfe, + 0xbe, 0x47, 0x97, 0x5f, 0x2c, 0xa3, 0x4d, 0x68, 0xdf, 0xe1, + 0xfe, 0x46, 0xb, 0x7e, 0xcc, 0x1e, 0x23, 0xb9, 0x9f, 0xcb, + 0x5d, 0x1e, 0xfc, 0xbe, 0x7a, 0x1b, 0x77, 0x3f, 0xd2, 0xb4, + 0x34, 0xff, 00, 0xd8, 0x8f, 0xc7, 0x7a, 0xc4, 0xaa, 0xb0, + 0xe8, 0x57, 0x10, 0x8c, 0xfd, 0xfb, 0x8c, 0x44, 0xb8, 0xf5, + 0xf9, 0x88, 0xa2, 0x8a, 0x58, 0x7a, 0x4e, 0xa4, 0xac, 0xe4, + 0xff, 00, 0xf, 0xf2, 0x38, 0x68, 0x65, 0x54, 0x31, 0x4e, + 0xd3, 0x6d, 0x7a, 0x5b, 0xfc, 0x8f, 0x62, 0xf8, 0x79, 0xff, + 00, 0x4, 0xdc, 0x88, 0x3a, 0x5c, 0x78, 0xc3, 0x5c, 0x8, + 0xa0, 0x83, 0xf6, 0x3d, 0x34, 0x6e, 0x63, 0xec, 0x64, 0x61, + 0x81, 0xf8, 0x3, 0xf5, 0xaf, 0xae, 0x3e, 0x1d, 0xfc, 0x27, + 0xf0, 0xaf, 0xc2, 0xad, 0x29, 0x6c, 0x3c, 0x33, 0xa3, 0xdb, + 0xe9, 0xc9, 0x8c, 0x3c, 0xca, 0xbb, 0xa6, 0x97, 0xdd, 0xdc, + 0xf2, 0x68, 0xa2, 0xbe, 0x82, 0x14, 0x61, 0x4f, 0x6d, 0xcf, + 0xac, 0xc1, 0xe5, 0x98, 0x5c, 0xe, 0xb4, 0x61, 0xaf, 0x77, + 0xab, 0xfb, 0xff, 00, 0xc8, 0xeb, 0xa8, 0xa2, 0x8a, 0xd8, + 0xf5, 0x42, 0x8a, 0x28, 0xa0, 0x2, 0x8a, 0x28, 0xa0, 0xf, + 0xff, 0xd9, 0}; + +static const char data_runtime_shtml[] = { + /* /runtime.shtml */ + 0x2f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x68, 0x74, 0x6d, 0x6c, 0, + 0x3c, 0x21, 0x44, 0x4f, 0x43, 0x54, 0x59, 0x50, 0x45, 0x20, + 0x48, 0x54, 0x4d, 0x4c, 0x20, 0x50, 0x55, 0x42, 0x4c, 0x49, + 0x43, 0x20, 0x22, 0x2d, 0x2f, 0x2f, 0x57, 0x33, 0x43, 0x2f, + 0x2f, 0x44, 0x54, 0x44, 0x20, 0x48, 0x54, 0x4d, 0x4c, 0x20, + 0x34, 0x2e, 0x30, 0x31, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2f, 0x2f, 0x45, + 0x4e, 0x22, 0x20, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, + 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x77, 0x33, 0x2e, 0x6f, 0x72, + 0x67, 0x2f, 0x54, 0x52, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x34, + 0x2f, 0x6c, 0x6f, 0x6f, 0x73, 0x65, 0x2e, 0x64, 0x74, 0x64, + 0x22, 0x3e, 0xd, 0xa, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x3e, + 0xd, 0xa, 0x20, 0x20, 0x3c, 0x68, 0x65, 0x61, 0x64, 0x3e, + 0xd, 0xa, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x74, 0x69, 0x74, + 0x6c, 0x65, 0x3e, 0x46, 0x72, 0x65, 0x65, 0x52, 0x54, 0x4f, + 0x53, 0x2e, 0x6f, 0x72, 0x67, 0x20, 0x75, 0x49, 0x50, 0x20, + 0x57, 0x45, 0x42, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x20, 0x64, 0x65, 0x6d, 0x6f, 0x3c, 0x2f, 0x74, 0x69, 0x74, + 0x6c, 0x65, 0x3e, 0xd, 0xa, 0x20, 0x20, 0x3c, 0x2f, 0x68, + 0x65, 0x61, 0x64, 0x3e, 0xd, 0xa, 0x20, 0x20, 0x3c, 0x42, + 0x4f, 0x44, 0x59, 0x20, 0x6f, 0x6e, 0x4c, 0x6f, 0x61, 0x64, + 0x3d, 0x22, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x73, + 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x28, + 0x26, 0x71, 0x75, 0x6f, 0x74, 0x3b, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x68, 0x72, 0x65, 0x66, 0x3d, + 0x27, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, + 0x68, 0x74, 0x6d, 0x6c, 0x27, 0x26, 0x71, 0x75, 0x6f, 0x74, + 0x3b, 0x2c, 0x32, 0x30, 0x30, 0x30, 0x29, 0x22, 0x3e, 0xd, + 0xa, 0x3c, 0x66, 0x6f, 0x6e, 0x74, 0x20, 0x66, 0x61, 0x63, + 0x65, 0x3d, 0x22, 0x61, 0x72, 0x69, 0x61, 0x6c, 0x22, 0x3e, + 0xd, 0xa, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, + 0x22, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x73, 0x68, 0x74, + 0x6d, 0x6c, 0x22, 0x3e, 0x54, 0x61, 0x73, 0x6b, 0x20, 0x53, + 0x74, 0x61, 0x74, 0x73, 0x3c, 0x2f, 0x61, 0x3e, 0x20, 0x3c, + 0x62, 0x3e, 0x7c, 0x3c, 0x2f, 0x62, 0x3e, 0x20, 0x3c, 0x61, + 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x72, 0x75, 0x6e, + 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x68, 0x74, 0x6d, 0x6c, + 0x22, 0x3e, 0x52, 0x75, 0x6e, 0x20, 0x54, 0x69, 0x6d, 0x65, + 0x20, 0x53, 0x74, 0x61, 0x74, 0x73, 0x3c, 0x2f, 0x61, 0x3e, + 0x20, 0x3c, 0x62, 0x3e, 0x7c, 0x3c, 0x2f, 0x62, 0x3e, 0x20, + 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x73, + 0x74, 0x61, 0x74, 0x73, 0x2e, 0x73, 0x68, 0x74, 0x6d, 0x6c, + 0x22, 0x3e, 0x54, 0x43, 0x50, 0x20, 0x53, 0x74, 0x61, 0x74, + 0x73, 0x3c, 0x2f, 0x61, 0x3e, 0x20, 0x3c, 0x62, 0x3e, 0x7c, + 0x3c, 0x2f, 0x62, 0x3e, 0x20, 0x3c, 0x61, 0x20, 0x68, 0x72, + 0x65, 0x66, 0x3d, 0x22, 0x74, 0x63, 0x70, 0x2e, 0x73, 0x68, + 0x74, 0x6d, 0x6c, 0x22, 0x3e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3c, 0x2f, 0x61, 0x3e, + 0x20, 0x3c, 0x62, 0x3e, 0x7c, 0x3c, 0x2f, 0x62, 0x3e, 0x20, + 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x68, + 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, + 0x66, 0x72, 0x65, 0x65, 0x72, 0x74, 0x6f, 0x73, 0x2e, 0x6f, + 0x72, 0x67, 0x2f, 0x22, 0x3e, 0x46, 0x72, 0x65, 0x65, 0x52, + 0x54, 0x4f, 0x53, 0x20, 0x48, 0x6f, 0x6d, 0x65, 0x70, 0x61, + 0x67, 0x65, 0x3c, 0x2f, 0x61, 0x3e, 0x20, 0x3c, 0x62, 0x3e, + 0x7c, 0x3c, 0x2f, 0x62, 0x3e, 0x20, 0x3c, 0x61, 0x20, 0x68, + 0x72, 0x65, 0x66, 0x3d, 0x22, 0x69, 0x6f, 0x2e, 0x73, 0x68, + 0x74, 0x6d, 0x6c, 0x22, 0x3e, 0x49, 0x4f, 0x3c, 0x2f, 0x61, + 0x3e, 0x20, 0x3c, 0x62, 0x3e, 0x7c, 0x3c, 0x2f, 0x62, 0x3e, + 0x20, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, + 0x6c, 0x6f, 0x67, 0x6f, 0x2e, 0x6a, 0x70, 0x67, 0x22, 0x3e, + 0x33, 0x37, 0x4b, 0x20, 0x6a, 0x70, 0x67, 0x3c, 0x2f, 0x61, + 0x3e, 0xd, 0xa, 0x3c, 0x62, 0x72, 0x3e, 0x3c, 0x70, 0x3e, + 0xd, 0xa, 0x3c, 0x68, 0x72, 0x3e, 0xd, 0xa, 0x3c, 0x62, + 0x72, 0x3e, 0x3c, 0x70, 0x3e, 0xd, 0xa, 0x3c, 0x68, 0x32, + 0x3e, 0x52, 0x75, 0x6e, 0x2d, 0x74, 0x69, 0x6d, 0x65, 0x20, + 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, + 0x3c, 0x2f, 0x68, 0x32, 0x3e, 0xd, 0xa, 0x50, 0x61, 0x67, + 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x66, + 0x72, 0x65, 0x73, 0x68, 0x20, 0x65, 0x76, 0x65, 0x72, 0x79, + 0x20, 0x32, 0x20, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, + 0x2e, 0x3c, 0x70, 0x3e, 0xd, 0xa, 0x3c, 0x66, 0x6f, 0x6e, + 0x74, 0x20, 0x66, 0x61, 0x63, 0x65, 0x3d, 0x22, 0x63, 0x6f, + 0x75, 0x72, 0x69, 0x65, 0x72, 0x22, 0x3e, 0x3c, 0x70, 0x72, + 0x65, 0x3e, 0x54, 0x61, 0x73, 0x6b, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x62, + 0x73, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x25, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x3c, 0x62, + 0x72, 0x3e, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, + 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, + 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, + 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, + 0x2a, 0x2a, 0x3c, 0x62, 0x72, 0x3e, 0xd, 0xa, 0x25, 0x21, + 0x20, 0x72, 0x75, 0x6e, 0x2d, 0x74, 0x69, 0x6d, 0x65, 0xd, + 0xa, 0x3c, 0x2f, 0x70, 0x72, 0x65, 0x3e, 0x3c, 0x2f, 0x66, + 0x6f, 0x6e, 0x74, 0x3e, 0xd, 0xa, 0x3c, 0x2f, 0x66, 0x6f, + 0x6e, 0x74, 0x3e, 0xd, 0xa, 0x3c, 0x2f, 0x62, 0x6f, 0x64, + 0x79, 0x3e, 0xd, 0xa, 0x3c, 0x2f, 0x68, 0x74, 0x6d, 0x6c, + 0x3e, 0xd, 0xa, 0xd, 0xa, 0}; + +static const char data_stats_shtml[] = { + /* /stats.shtml */ + 0x2f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x73, 0x68, 0x74, 0x6d, 0x6c, 0, + 0x3c, 0x21, 0x44, 0x4f, 0x43, 0x54, 0x59, 0x50, 0x45, 0x20, + 0x48, 0x54, 0x4d, 0x4c, 0x20, 0x50, 0x55, 0x42, 0x4c, 0x49, + 0x43, 0x20, 0x22, 0x2d, 0x2f, 0x2f, 0x57, 0x33, 0x43, 0x2f, + 0x2f, 0x44, 0x54, 0x44, 0x20, 0x48, 0x54, 0x4d, 0x4c, 0x20, + 0x34, 0x2e, 0x30, 0x31, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2f, 0x2f, 0x45, + 0x4e, 0x22, 0x20, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, + 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x77, 0x33, 0x2e, 0x6f, 0x72, + 0x67, 0x2f, 0x54, 0x52, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x34, + 0x2f, 0x6c, 0x6f, 0x6f, 0x73, 0x65, 0x2e, 0x64, 0x74, 0x64, + 0x22, 0x3e, 0xd, 0xa, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x3e, + 0xd, 0xa, 0x20, 0x20, 0x3c, 0x68, 0x65, 0x61, 0x64, 0x3e, + 0xd, 0xa, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x74, 0x69, 0x74, + 0x6c, 0x65, 0x3e, 0x46, 0x72, 0x65, 0x65, 0x52, 0x54, 0x4f, + 0x53, 0x2e, 0x6f, 0x72, 0x67, 0x20, 0x75, 0x49, 0x50, 0x20, + 0x57, 0x45, 0x42, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x20, 0x64, 0x65, 0x6d, 0x6f, 0x3c, 0x2f, 0x74, 0x69, 0x74, + 0x6c, 0x65, 0x3e, 0xd, 0xa, 0x20, 0x20, 0x3c, 0x2f, 0x68, + 0x65, 0x61, 0x64, 0x3e, 0xd, 0xa, 0x20, 0x20, 0x3c, 0x42, + 0x4f, 0x44, 0x59, 0x3e, 0xd, 0xa, 0x3c, 0x66, 0x6f, 0x6e, + 0x74, 0x20, 0x66, 0x61, 0x63, 0x65, 0x3d, 0x22, 0x61, 0x72, + 0x69, 0x61, 0x6c, 0x22, 0x3e, 0xd, 0xa, 0x3c, 0x61, 0x20, + 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x2e, 0x73, 0x68, 0x74, 0x6d, 0x6c, 0x22, 0x3e, 0x54, + 0x61, 0x73, 0x6b, 0x20, 0x53, 0x74, 0x61, 0x74, 0x73, 0x3c, + 0x2f, 0x61, 0x3e, 0x20, 0x3c, 0x62, 0x3e, 0x7c, 0x3c, 0x2f, + 0x62, 0x3e, 0x20, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, + 0x3d, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, + 0x73, 0x68, 0x74, 0x6d, 0x6c, 0x22, 0x3e, 0x52, 0x75, 0x6e, + 0x20, 0x54, 0x69, 0x6d, 0x65, 0x20, 0x53, 0x74, 0x61, 0x74, + 0x73, 0x3c, 0x2f, 0x61, 0x3e, 0x20, 0x3c, 0x62, 0x3e, 0x7c, + 0x3c, 0x2f, 0x62, 0x3e, 0x20, 0x3c, 0x61, 0x20, 0x68, 0x72, + 0x65, 0x66, 0x3d, 0x22, 0x73, 0x74, 0x61, 0x74, 0x73, 0x2e, + 0x73, 0x68, 0x74, 0x6d, 0x6c, 0x22, 0x3e, 0x54, 0x43, 0x50, + 0x20, 0x53, 0x74, 0x61, 0x74, 0x73, 0x3c, 0x2f, 0x61, 0x3e, + 0x20, 0x3c, 0x62, 0x3e, 0x7c, 0x3c, 0x2f, 0x62, 0x3e, 0x20, + 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x74, + 0x63, 0x70, 0x2e, 0x73, 0x68, 0x74, 0x6d, 0x6c, 0x22, 0x3e, + 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x3c, 0x2f, 0x61, 0x3e, 0x20, 0x3c, 0x62, 0x3e, 0x7c, + 0x3c, 0x2f, 0x62, 0x3e, 0x20, 0x3c, 0x61, 0x20, 0x68, 0x72, + 0x65, 0x66, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, + 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x66, 0x72, 0x65, 0x65, 0x72, + 0x74, 0x6f, 0x73, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x22, 0x3e, + 0x46, 0x72, 0x65, 0x65, 0x52, 0x54, 0x4f, 0x53, 0x20, 0x48, + 0x6f, 0x6d, 0x65, 0x70, 0x61, 0x67, 0x65, 0x3c, 0x2f, 0x61, + 0x3e, 0x20, 0x3c, 0x62, 0x3e, 0x7c, 0x3c, 0x2f, 0x62, 0x3e, + 0x20, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, + 0x69, 0x6f, 0x2e, 0x73, 0x68, 0x74, 0x6d, 0x6c, 0x22, 0x3e, + 0x49, 0x4f, 0x3c, 0x2f, 0x61, 0x3e, 0x20, 0x3c, 0x62, 0x3e, + 0x7c, 0x3c, 0x2f, 0x62, 0x3e, 0x20, 0x3c, 0x61, 0x20, 0x68, + 0x72, 0x65, 0x66, 0x3d, 0x22, 0x6c, 0x6f, 0x67, 0x6f, 0x2e, + 0x6a, 0x70, 0x67, 0x22, 0x3e, 0x33, 0x37, 0x4b, 0x20, 0x6a, + 0x70, 0x67, 0x3c, 0x2f, 0x61, 0x3e, 0xd, 0xa, 0x3c, 0x62, + 0x72, 0x3e, 0x3c, 0x70, 0x3e, 0xd, 0xa, 0x3c, 0x68, 0x72, + 0x3e, 0xd, 0xa, 0x3c, 0x62, 0x72, 0x3e, 0x3c, 0x70, 0x3e, + 0xd, 0xa, 0x3c, 0x68, 0x32, 0x3e, 0x4e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x20, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, + 0x74, 0x69, 0x63, 0x73, 0x3c, 0x2f, 0x68, 0x32, 0x3e, 0xd, + 0xa, 0x3c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x3d, 0x22, 0x33, 0x30, 0x30, 0x22, 0x20, + 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3d, 0x22, 0x30, 0x22, + 0x3e, 0xd, 0xa, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3d, 0x22, 0x6c, 0x65, + 0x66, 0x74, 0x22, 0x3e, 0x3c, 0x66, 0x6f, 0x6e, 0x74, 0x20, + 0x66, 0x61, 0x63, 0x65, 0x3d, 0x22, 0x63, 0x6f, 0x75, 0x72, + 0x69, 0x65, 0x72, 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x65, 0x3e, + 0xd, 0xa, 0x49, 0x50, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x73, 0x20, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x64, 0xd, 0xa, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x63, 0x6b, + 0x65, 0x74, 0x73, 0x20, 0x73, 0x65, 0x6e, 0x74, 0xd, 0xa, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x64, 0x65, + 0x64, 0xd, 0xa, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x44, 0x72, 0x6f, 0x70, + 0x70, 0x65, 0x64, 0xd, 0xa, 0x49, 0x50, 0x20, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x73, 0x20, 0x20, 0x20, 0x20, 0x49, 0x50, + 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x68, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0xd, 0xa, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x50, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, 0x68, 0x69, + 0x67, 0x68, 0x20, 0x62, 0x79, 0x74, 0x65, 0xd, 0xa, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x49, 0x50, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x2c, 0x20, 0x6c, 0x6f, 0x77, 0x20, 0x62, 0x79, 0x74, + 0x65, 0xd, 0xa, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x50, 0x20, 0x66, + 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0xd, 0xa, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, + 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0xd, 0xa, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x57, 0x72, 0x6f, 0x6e, 0x67, 0x20, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0xd, 0xa, 0x49, + 0x43, 0x4d, 0x50, 0x9, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, + 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x20, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0xd, 0xa, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x20, 0x73, 0x65, + 0x6e, 0x74, 0xd, 0xa, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x73, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x70, + 0x65, 0x64, 0xd, 0xa, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x54, 0x79, 0x70, + 0x65, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0xd, 0xa, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, + 0x6d, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0xd, 0xa, + 0x54, 0x43, 0x50, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, + 0x20, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0xd, + 0xa, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x73, 0x20, 0x73, 0x65, 0x6e, 0x74, 0xd, 0xa, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x20, 0x64, + 0x72, 0x6f, 0x70, 0x70, 0x65, 0x64, 0xd, 0xa, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x20, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0xd, 0xa, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x44, 0x61, 0x74, 0x61, 0x20, 0x70, 0x61, 0x63, 0x6b, + 0x65, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, + 0x74, 0x20, 0x41, 0x43, 0x4b, 0x73, 0xd, 0xa, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x52, 0x65, 0x73, 0x65, 0x74, 0x73, 0xd, 0xa, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x52, 0x65, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x61, 0xd, 0xa, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x53, 0x79, 0x6e, 0x20, 0x74, 0x6f, 0x20, + 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x20, 0x70, 0x6f, 0x72, + 0x74, 0xd, 0xa, 0x55, 0x44, 0x50, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x63, 0x6b, + 0x65, 0x74, 0x73, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x70, 0x65, + 0x64, 0xd, 0xa, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x63, 0x6b, + 0x65, 0x74, 0x73, 0x20, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x64, 0xd, 0xa, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x73, 0x20, 0x73, 0x65, 0x6e, 0x74, 0xd, + 0xa, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x73, 0x20, 0x63, 0x68, 0x6b, 0x65, 0x72, 0x72, 0xd, 0xa, + 0x9, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x61, 0x76, 0x61, 0x6c, 0x69, 0x61, 0x62, 0x6c, 0x65, 0xd, + 0xa, 0x3c, 0x2f, 0x70, 0x72, 0x65, 0x3e, 0x3c, 0x2f, 0x66, + 0x6f, 0x6e, 0x74, 0x3e, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, + 0x74, 0x64, 0x3e, 0x3c, 0x66, 0x6f, 0x6e, 0x74, 0x20, 0x66, + 0x61, 0x63, 0x65, 0x3d, 0x22, 0x63, 0x6f, 0x75, 0x72, 0x69, + 0x65, 0x72, 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x65, 0x3e, 0x25, + 0x21, 0x20, 0x6e, 0x65, 0x74, 0x2d, 0x73, 0x74, 0x61, 0x74, + 0x73, 0xd, 0xa, 0x3c, 0x2f, 0x70, 0x72, 0x65, 0x3e, 0x3c, + 0x2f, 0x66, 0x6f, 0x6e, 0x74, 0x3e, 0x3c, 0x2f, 0x74, 0x64, + 0x3e, 0x3c, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0xd, + 0xa, 0x3c, 0x2f, 0x66, 0x6f, 0x6e, 0x74, 0x3e, 0xd, 0xa, + 0x3c, 0x2f, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0xd, 0xa, 0x3c, + 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0xd, 0xa, 0}; + +static const char data_tcp_shtml[] = { + /* /tcp.shtml */ + 0x2f, 0x74, 0x63, 0x70, 0x2e, 0x73, 0x68, 0x74, 0x6d, 0x6c, 0, + 0x3c, 0x21, 0x44, 0x4f, 0x43, 0x54, 0x59, 0x50, 0x45, 0x20, + 0x48, 0x54, 0x4d, 0x4c, 0x20, 0x50, 0x55, 0x42, 0x4c, 0x49, + 0x43, 0x20, 0x22, 0x2d, 0x2f, 0x2f, 0x57, 0x33, 0x43, 0x2f, + 0x2f, 0x44, 0x54, 0x44, 0x20, 0x48, 0x54, 0x4d, 0x4c, 0x20, + 0x34, 0x2e, 0x30, 0x31, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2f, 0x2f, 0x45, + 0x4e, 0x22, 0x20, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, + 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x77, 0x33, 0x2e, 0x6f, 0x72, + 0x67, 0x2f, 0x54, 0x52, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x34, + 0x2f, 0x6c, 0x6f, 0x6f, 0x73, 0x65, 0x2e, 0x64, 0x74, 0x64, + 0x22, 0x3e, 0xd, 0xa, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x3e, + 0xd, 0xa, 0x20, 0x20, 0x3c, 0x68, 0x65, 0x61, 0x64, 0x3e, + 0xd, 0xa, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x74, 0x69, 0x74, + 0x6c, 0x65, 0x3e, 0x46, 0x72, 0x65, 0x65, 0x52, 0x54, 0x4f, + 0x53, 0x2e, 0x6f, 0x72, 0x67, 0x20, 0x75, 0x49, 0x50, 0x20, + 0x57, 0x45, 0x42, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x20, 0x64, 0x65, 0x6d, 0x6f, 0x3c, 0x2f, 0x74, 0x69, 0x74, + 0x6c, 0x65, 0x3e, 0xd, 0xa, 0x20, 0x20, 0x3c, 0x2f, 0x68, + 0x65, 0x61, 0x64, 0x3e, 0xd, 0xa, 0x20, 0x20, 0x3c, 0x42, + 0x4f, 0x44, 0x59, 0x3e, 0xd, 0xa, 0x3c, 0x66, 0x6f, 0x6e, + 0x74, 0x20, 0x66, 0x61, 0x63, 0x65, 0x3d, 0x22, 0x61, 0x72, + 0x69, 0x61, 0x6c, 0x22, 0x3e, 0xd, 0xa, 0x3c, 0x61, 0x20, + 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x2e, 0x73, 0x68, 0x74, 0x6d, 0x6c, 0x22, 0x3e, 0x54, + 0x61, 0x73, 0x6b, 0x20, 0x53, 0x74, 0x61, 0x74, 0x73, 0x3c, + 0x2f, 0x61, 0x3e, 0x20, 0x3c, 0x62, 0x3e, 0x7c, 0x3c, 0x2f, + 0x62, 0x3e, 0x20, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, + 0x3d, 0x22, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, + 0x73, 0x68, 0x74, 0x6d, 0x6c, 0x22, 0x3e, 0x52, 0x75, 0x6e, + 0x20, 0x54, 0x69, 0x6d, 0x65, 0x20, 0x53, 0x74, 0x61, 0x74, + 0x73, 0x3c, 0x2f, 0x61, 0x3e, 0x20, 0x3c, 0x62, 0x3e, 0x7c, + 0x3c, 0x2f, 0x62, 0x3e, 0x20, 0x3c, 0x61, 0x20, 0x68, 0x72, + 0x65, 0x66, 0x3d, 0x22, 0x73, 0x74, 0x61, 0x74, 0x73, 0x2e, + 0x73, 0x68, 0x74, 0x6d, 0x6c, 0x22, 0x3e, 0x54, 0x43, 0x50, + 0x20, 0x53, 0x74, 0x61, 0x74, 0x73, 0x3c, 0x2f, 0x61, 0x3e, + 0x20, 0x3c, 0x62, 0x3e, 0x7c, 0x3c, 0x2f, 0x62, 0x3e, 0x20, + 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x74, + 0x63, 0x70, 0x2e, 0x73, 0x68, 0x74, 0x6d, 0x6c, 0x22, 0x3e, + 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x3c, 0x2f, 0x61, 0x3e, 0x20, 0x3c, 0x62, 0x3e, 0x7c, + 0x3c, 0x2f, 0x62, 0x3e, 0x20, 0x3c, 0x61, 0x20, 0x68, 0x72, + 0x65, 0x66, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, + 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x66, 0x72, 0x65, 0x65, 0x72, + 0x74, 0x6f, 0x73, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x22, 0x3e, + 0x46, 0x72, 0x65, 0x65, 0x52, 0x54, 0x4f, 0x53, 0x20, 0x48, + 0x6f, 0x6d, 0x65, 0x70, 0x61, 0x67, 0x65, 0x3c, 0x2f, 0x61, + 0x3e, 0x20, 0x3c, 0x62, 0x3e, 0x7c, 0x3c, 0x2f, 0x62, 0x3e, + 0x20, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, + 0x69, 0x6f, 0x2e, 0x73, 0x68, 0x74, 0x6d, 0x6c, 0x22, 0x3e, + 0x49, 0x4f, 0x3c, 0x2f, 0x61, 0x3e, 0x20, 0x3c, 0x62, 0x3e, + 0x7c, 0x3c, 0x2f, 0x62, 0x3e, 0x20, 0x3c, 0x61, 0x20, 0x68, + 0x72, 0x65, 0x66, 0x3d, 0x22, 0x6c, 0x6f, 0x67, 0x6f, 0x2e, + 0x6a, 0x70, 0x67, 0x22, 0x3e, 0x33, 0x37, 0x4b, 0x20, 0x6a, + 0x70, 0x67, 0x3c, 0x2f, 0x61, 0x3e, 0xd, 0xa, 0x3c, 0x62, + 0x72, 0x3e, 0x3c, 0x70, 0x3e, 0xd, 0xa, 0x3c, 0x68, 0x72, + 0x3e, 0xd, 0xa, 0x3c, 0x62, 0x72, 0x3e, 0xd, 0xa, 0x3c, + 0x68, 0x32, 0x3e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x20, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x3c, 0x2f, 0x68, 0x32, 0x3e, 0xd, 0xa, 0x3c, + 0x70, 0x3e, 0xd, 0xa, 0x3c, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x3e, 0xd, 0xa, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x68, + 0x3e, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x3c, 0x2f, 0x74, 0x68, + 0x3e, 0x3c, 0x74, 0x68, 0x3e, 0x52, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x3c, 0x2f, 0x74, 0x68, 0x3e, 0x3c, 0x74, 0x68, 0x3e, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x3c, 0x2f, 0x74, 0x68, 0x3e, + 0x3c, 0x74, 0x68, 0x3e, 0x52, 0x65, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x3c, + 0x2f, 0x74, 0x68, 0x3e, 0x3c, 0x74, 0x68, 0x3e, 0x54, 0x69, + 0x6d, 0x65, 0x72, 0x3c, 0x2f, 0x74, 0x68, 0x3e, 0x3c, 0x74, + 0x68, 0x3e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x3c, 0x2f, 0x74, + 0x68, 0x3e, 0x3c, 0x2f, 0x74, 0x72, 0x3e, 0xd, 0xa, 0x25, + 0x21, 0x20, 0x74, 0x63, 0x70, 0x2d, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0xd, 0xa, 0x3c, + 0x2f, 0x70, 0x72, 0x65, 0x3e, 0x3c, 0x2f, 0x66, 0x6f, 0x6e, + 0x74, 0x3e, 0xd, 0xa, 0x3c, 0x2f, 0x66, 0x6f, 0x6e, 0x74, + 0x3e, 0xd, 0xa, 0x3c, 0x2f, 0x62, 0x6f, 0x64, 0x79, 0x3e, + 0xd, 0xa, 0x3c, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0xd, + 0xa, 0xd, 0xa, 0}; + +const struct httpd_fsdata_file file_404_html[] = {{NULL, data_404_html, data_404_html + 10, sizeof(data_404_html) - 10}}; + +const struct httpd_fsdata_file file_index_html[] = {{file_404_html, data_index_html, data_index_html + 12, sizeof(data_index_html) - 12}}; + +const struct httpd_fsdata_file file_index_shtml[] = {{file_index_html, data_index_shtml, data_index_shtml + 13, sizeof(data_index_shtml) - 13}}; + +const struct httpd_fsdata_file file_io_shtml[] = {{file_index_shtml, data_io_shtml, data_io_shtml + 10, sizeof(data_io_shtml) - 10}}; + +const struct httpd_fsdata_file file_logo_jpg[] = {{file_io_shtml, data_logo_jpg, data_logo_jpg + 10, sizeof(data_logo_jpg) - 10}}; + +const struct httpd_fsdata_file file_runtime_shtml[] = {{file_logo_jpg, data_runtime_shtml, data_runtime_shtml + 15, sizeof(data_runtime_shtml) - 15}}; + +const struct httpd_fsdata_file file_stats_shtml[] = {{file_runtime_shtml, data_stats_shtml, data_stats_shtml + 13, sizeof(data_stats_shtml) - 13}}; + +const struct httpd_fsdata_file file_tcp_shtml[] = {{file_stats_shtml, data_tcp_shtml, data_tcp_shtml + 11, sizeof(data_tcp_shtml) - 11}}; + +#define HTTPD_FS_ROOT file_tcp_shtml + +#define HTTPD_FS_NUMFILES 8 diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/makefsdata b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/makefsdata new file mode 100644 index 000000000..a953cdd76 --- /dev/null +++ b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/makefsdata @@ -0,0 +1,79 @@ +#!/usr/bin/perl + +open(OUTPUT, "> httpd-fsdata.c"); + +chdir("httpd-fs"); + +opendir(DIR, "."); +@files = grep { !/^\./ && !/(CVS|~)/ } readdir(DIR); +closedir(DIR); + +foreach $file (@files) { + + if(-d $file && $file !~ /^\./) { + print "Processing directory $file\n"; + opendir(DIR, $file); + @newfiles = grep { !/^\./ && !/(CVS|~)/ } readdir(DIR); + closedir(DIR); + printf "Adding files @newfiles\n"; + @files = (@files, map { $_ = "$file/$_" } @newfiles); + next; + } +} + +foreach $file (@files) { + if(-f $file) { + + print "Adding file $file\n"; + + open(FILE, $file) || die "Could not open file $file\n"; + binmode FILE; + + $file =~ s-^-/-; + $fvar = $file; + $fvar =~ s-/-_-g; + $fvar =~ s-\.-_-g; + # for AVR, add PROGMEM here + print(OUTPUT "static const char data".$fvar."[] = {\n"); + print(OUTPUT "\t/* $file */\n\t"); + for($j = 0; $j < length($file); $j++) { + printf(OUTPUT "%#02x, ", unpack("C", substr($file, $j, 1))); + } + printf(OUTPUT "0,\n"); + + + $i = 0; + while(read(FILE, $data, 1)) { + if($i == 0) { + print(OUTPUT "\t"); + } + printf(OUTPUT "%#02x, ", unpack("C", $data)); + $i++; + if($i == 10) { + print(OUTPUT "\n"); + $i = 0; + } + } + print(OUTPUT "0};\n\n"); + close(FILE); + push(@fvars, $fvar); + push(@pfiles, $file); + } +} + +for($i = 0; $i < @fvars; $i++) { + $file = $pfiles[$i]; + $fvar = $fvars[$i]; + + if($i == 0) { + $prevfile = "NULL"; + } else { + $prevfile = "file" . $fvars[$i - 1]; + } + print(OUTPUT "const struct httpd_fsdata_file file".$fvar."[] = {{$prevfile, data$fvar, "); + print(OUTPUT "data$fvar + ". (length($file) + 1) .", "); + print(OUTPUT "sizeof(data$fvar) - ". (length($file) + 1) ."}};\n\n"); +} + +print(OUTPUT "#define HTTPD_FS_ROOT file$fvars[$i - 1]\n\n"); +print(OUTPUT "#define HTTPD_FS_NUMFILES $i\n"); diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/phy.c b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/phy.c new file mode 100644 index 000000000..19b900ade --- /dev/null +++ b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/phy.c @@ -0,0 +1,468 @@ +/****************************************************************************** +* DISCLAIMER + +* This software is supplied by Renesas Technology Corp. and is only +* intended for use with Renesas products. No other uses are authorized. + +* This software is owned by Renesas Technology Corp. and is protected under +* all applicable laws, including copyright laws. + +* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES +* REGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, +* INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +* PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY +* DISCLAIMED. + +* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS +* TECHNOLOGY CORP. NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE +* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES +* FOR ANY REASON RELATED TO THE THIS SOFTWARE, EVEN IF RENESAS OR ITS +* AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +* Renesas reserves the right, without notice, to make changes to this +* software and to discontinue the availability of this software. +* By using this software, you agree to the additional terms and +* conditions found by accessing the following link: +* http://www.renesas.com/disclaimer +****************************************************************************** +* Copyright (C) 2008. Renesas Technology Corp., All Rights Reserved. +******************************************************************************* +* File Name : phy.c +* Version : 1.01 +* Description : Ethernet PHY device driver +****************************************************************************** +* History : DD.MM.YYYY Version Description +* : 15.02.2010 1.00 First Release +* : 06.04.2010 1.01 RX62N changes +******************************************************************************/ + + +/****************************************************************************** +Includes , "Project Includes" +******************************************************************************/ +#include "iodefine.h" +#include "r_ether.h" +#include "phy.h" + +#include "FreeRTOS.h" +#include "task.h" +/****************************************************************************** +Typedef definitions +******************************************************************************/ + +/****************************************************************************** +Macro definitions +******************************************************************************/ + +/****************************************************************************** +Imported global variables and functions (from other files) +******************************************************************************/ + +/****************************************************************************** +Exported global variables and functions (to be accessed by other files) +******************************************************************************/ + +/****************************************************************************** +Private global variables and functions +******************************************************************************/ +uint16_t _phy_read( uint16_t reg_addr ); +void _phy_write( uint16_t reg_addr, uint16_t data ); +void _phy_preamble( void ); +void _phy_reg_set( uint16_t reg_addr, int32_t option ); +void _phy_reg_read( uint16_t *data ); +void _phy_reg_write( uint16_t data ); +void _phy_ta_z0( void ); +void _phy_ta_10( void ); +void _phy_mii_write_1( void ); +void _phy_mii_write_0( void ); + +/** + * External functions + */ + +/****************************************************************************** +* Function Name: phy_init +* Description : Resets Ethernet PHY device +* Arguments : none +* Return Value : none +******************************************************************************/ +int16_t phy_init( void ) +{ + uint16_t reg; + uint32_t count; + + /* Reset PHY */ + _phy_write(BASIC_MODE_CONTROL_REG, 0x8000); + + count = 0; + + do + { + vTaskDelay( 2 / portTICK_RATE_MS ); + reg = _phy_read(BASIC_MODE_CONTROL_REG); + count++; + } while (reg & 0x8000 && count < PHY_RESET_WAIT); + + if( count < PHY_RESET_WAIT ) + { + return R_PHY_OK; + } + + return R_PHY_ERROR; +} + +/****************************************************************************** +* Function Name: phy_set_100full +* Description : Set Ethernet PHY device to 100 Mbps full duplex +* Arguments : none +* Return Value : none +******************************************************************************/ +void phy_set_100full( void ) +{ + _phy_write(BASIC_MODE_CONTROL_REG, 0x2100); +} + +/****************************************************************************** +* Function Name: phy_set_10half +* Description : Sets Ethernet PHY device to 10 Mbps half duplexR +* Arguments : none +* Return Value : none +******************************************************************************/ +void phy_set_10half( void ) +{ + _phy_write(BASIC_MODE_CONTROL_REG, 0x0000); +} + +/****************************************************************************** +* Function Name: phy_set_autonegotiate +* Description : Starts autonegotiate and reports the other side's +* : physical capability +* Arguments : none +* Return Value : bit 8 - Full duplex 100 mbps +* : bit 7 - Half duplex 100 mbps +* : bit 6 - Full duplex 10 mbps +* : bit 5 - Half duplex 10 mbps +* : bit 4:0 - Always set to 00001 (IEEE 802.3) +* : -1 if error +******************************************************************************/ +int16_t phy_set_autonegotiate( void ) +{ + uint16_t reg; + uint32_t count; + + _phy_write(AN_ADVERTISEMENT_REG, 0x01E1); + _phy_write(BASIC_MODE_CONTROL_REG, 0x1200); + + count = 0; + + do + { + reg = _phy_read(BASIC_MODE_STATUS_REG); + count++; + vTaskDelay( 100 / portTICK_RATE_MS ); + + /* Make sure we don't break out if reg just contains 0xffff. */ + if( reg == 0xffff ) + { + reg = 0; + } + + } while (!(reg & 0x0020) && (count < PHY_AUTO_NEGOTIATON_WAIT)); + + if (count >= PHY_AUTO_NEGOTIATON_WAIT) + { + return R_PHY_ERROR; + } + else + { + /* Get the link partner response */ + reg = (int16_t)_phy_read(AN_LINK_PARTNER_ABILITY_REG); + + if (reg & ( 1 << 8 ) ) + { + return PHY_LINK_100F; + } + if (reg & ( 1 << 7 ) ) + { + return PHY_LINK_100H; + } + if (reg & ( 1 << 6 ) ) + { + return PHY_LINK_10F; + } + if (reg & 1 << 5 ) + { + return PHY_LINK_10H; + } + + return (-1); + } +} + + +/** + * Internal functions + */ + +/****************************************************************************** +* Function Name: _phy_read +* Description : Reads a PHY register +* Arguments : reg_addr - address of the PHY register +* Return Value : read value +******************************************************************************/ +uint16_t _phy_read( uint16_t reg_addr ) +{ + uint16_t data; + + _phy_preamble(); + _phy_reg_set( reg_addr, PHY_READ ); + _phy_ta_z0(); + _phy_reg_read( &data ); + _phy_ta_z0(); + + return( data ); +} + +/****************************************************************************** +* Function Name: _phy_write +* Description : Writes to a PHY register +* Arguments : reg_addr - address of the PHY register +* : data - value +* Return Value : none +******************************************************************************/ +void _phy_write( uint16_t reg_addr, uint16_t data ) +{ + _phy_preamble(); + _phy_reg_set( reg_addr, PHY_WRITE ); + _phy_ta_10(); + _phy_reg_write( data ); + _phy_ta_z0(); +} + +/****************************************************************************** +* Function Name: _phy_preamble +* Description : As preliminary preparation for access to the PHY module register, +* "1" is output via the MII management interface. +* Arguments : none +* Return Value : none +******************************************************************************/ +void _phy_preamble( void ) +{ + int16_t i; + + i = 32; + while( i > 0 ) + { + _phy_mii_write_1(); + i--; + } +} + +/****************************************************************************** +* Function Name: _phy_reg_set +* Description : Sets a PHY device to read or write mode +* Arguments : reg_addr - address of the PHY register +* : option - mode +* Return Value : none +******************************************************************************/ +void _phy_reg_set( uint16_t reg_addr, int32_t option ) +{ + int32_t i; + uint16_t data; + + data = 0; + data = (PHY_ST << 14); /* ST code */ + + if( option == PHY_READ ) + { + data |= (PHY_READ << 12); /* OP code(RD) */ + } + else + { + data |= (PHY_WRITE << 12); /* OP code(WT) */ + } + + data |= (PHY_ADDR << 7); /* PHY Address */ + data |= (reg_addr << 2); /* Reg Address */ + + i = 14; + while( i > 0 ) + { + if( (data & 0x8000) == 0 ) + { + _phy_mii_write_0(); + } + else + { + _phy_mii_write_1(); + } + data <<= 1; + i--; + } +} + +/****************************************************************************** +* Function Name: _phy_reg_read +* Description : Reads PHY register through MII interface +* Arguments : data - pointer to store the data read +* Return Value : none +******************************************************************************/ +void _phy_reg_read( uint16_t *data ) +{ + int32_t i, j; + uint16_t reg_data; + + reg_data = 0; + i = 16; + while( i > 0 ) + { + for(j = MDC_WAIT; j > 0; j--) + { + ETHERC.PIR.LONG = 0x00000000; + } + for(j = MDC_WAIT; j > 0; j--) + { + ETHERC.PIR.LONG = 0x00000001; + } + + reg_data <<= 1; + reg_data |= (uint16_t)((ETHERC.PIR.LONG & 0x00000008) >> 3); /* MDI read */ + + for(j = MDC_WAIT; j > 0; j--) + { + ETHERC.PIR.LONG = 0x00000001; + } + for(j = MDC_WAIT; j > 0; j--) + { + ETHERC.PIR.LONG = 0x00000000; + } + i--; + } + *data = reg_data; +} + +/****************************************************************************** +* Function Name: _phy_reg_write +* Description : Writes to PHY register through MII interface +* Arguments : data - value to write +* Return Value : none +******************************************************************************/ +void _phy_reg_write( uint16_t data ) +{ + int32_t i; + + i = 16; + while( i > 0 ) + { + if( (data & 0x8000) == 0 ) + { + _phy_mii_write_0(); + } + else + { + _phy_mii_write_1(); + } + i--; + data <<= 1; + } +} + +/****************************************************************************** +* Function Name: _phy_ta_z0 +* Description : Performs bus release so that PHY can drive data +* : for read operation +* Arguments : none +* Return Value : none +******************************************************************************/ +void _phy_ta_z0( void ) +{ + int32_t j; + + for(j = MDC_WAIT; j > 0; j--) + { + ETHERC.PIR.LONG = 0x00000000; + } + for(j = MDC_WAIT; j > 0; j--) + { + ETHERC.PIR.LONG = 0x00000001; + } + for(j = MDC_WAIT; j > 0; j--) + { + ETHERC.PIR.LONG = 0x00000001; + } + for(j = MDC_WAIT; j > 0; j--) + { + ETHERC.PIR.LONG = 0x00000000; + } +} + +/****************************************************************************** +* Function Name: _phy_ta_10 +* Description : Switches data bus so MII interface can drive data +* : for write operation +* Arguments : none +* Return Value : none +******************************************************************************/ +void _phy_ta_10(void) +{ + _phy_mii_write_1(); + _phy_mii_write_0(); +} + +/****************************************************************************** +* Function Name: _phy_mii_write_1 +* Description : Outputs 1 to the MII interface +* Arguments : none +* Return Value : none +******************************************************************************/ +void _phy_mii_write_1( void ) +{ + int32_t j; + + for(j = MDC_WAIT; j > 0; j--) + { + ETHERC.PIR.LONG = 0x00000006; + } + for(j = MDC_WAIT; j > 0; j--) + { + ETHERC.PIR.LONG = 0x00000007; + } + for(j = MDC_WAIT; j > 0; j--) + { + ETHERC.PIR.LONG = 0x00000007; + } + for(j = MDC_WAIT; j > 0; j--) + { + ETHERC.PIR.LONG = 0x00000006; + } +} + +/****************************************************************************** +* Function Name: _phy_mii_write_0 +* Description : Outputs 0 to the MII interface +* Arguments : none +* Return Value : none +******************************************************************************/ +void _phy_mii_write_0( void ) +{ + int32_t j; + + for(j = MDC_WAIT; j > 0; j--) + { + ETHERC.PIR.LONG = 0x00000002; + } + for(j = MDC_WAIT; j > 0; j--) + { + ETHERC.PIR.LONG = 0x00000003; + } + for(j = MDC_WAIT; j > 0; j--) + { + ETHERC.PIR.LONG = 0x00000003; + } + for(j = MDC_WAIT; j > 0; j--) + { + ETHERC.PIR.LONG = 0x00000002; + } +} + + diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/phy.h b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/phy.h new file mode 100644 index 000000000..50415a7f7 --- /dev/null +++ b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/phy.h @@ -0,0 +1,84 @@ +/****************************************************************************** +* DISCLAIMER +* Please refer to http://www.renesas.com/disclaimer +****************************************************************************** + Copyright (C) 2008. Renesas Technology Corp., All Rights Reserved. +******************************************************************************* +* File Name : phy.h +* Version : 1.02 +* Description : Ethernet PHY device driver +****************************************************************************** +* History : DD.MM.YYYY Version Description +* : 15.02.2010 1.00 First Release +* : 17.03.2010 1.01 Modification of macro definitions for access timing +* : 06.04.2010 1.02 RX62N changes +******************************************************************************/ + +#ifndef PHY_H +#define PHY_H + +/****************************************************************************** +Includes , "Project Includes" +******************************************************************************/ +#include + +/****************************************************************************** +Typedef definitions +******************************************************************************/ + +/****************************************************************************** +Macro definitions +******************************************************************************/ +/* Standard PHY Registers */ +#define BASIC_MODE_CONTROL_REG 0 +#define BASIC_MODE_STATUS_REG 1 +#define PHY_IDENTIFIER1_REG 2 +#define PHY_IDENTIFIER2_REG 3 +#define AN_ADVERTISEMENT_REG 4 +#define AN_LINK_PARTNER_ABILITY_REG 5 +#define AN_EXPANSION_REG 6 + +/* Media Independent Interface */ +#define PHY_ST 1 +#define PHY_READ 2 +#define PHY_WRITE 1 +#define PHY_ADDR 0x1F + +#define MDC_WAIT 2 + +/* PHY return definitions */ +#define R_PHY_OK 0 +#define R_PHY_ERROR -1 + +/* Auto-Negotiation Link Partner Status */ +#define PHY_AN_LINK_PARTNER_100BASE 0x0180 +#define PHY_AN_LINK_PARTNER_FULL 0x0140 +#define PHY_AN_COMPLETE ( 1 << 5 ) + +/* + * Wait counter definitions of PHY-LSI initialization + * ICLK = 96MHz +*/ +#define PHY_RESET_WAIT 0x00000020L +#define PHY_AUTO_NEGOTIATON_WAIT 75 + +#define PHY_AN_ENABLE 0x1200 +#define PHY_AN_10_100_F_H 0xde1 + +/****************************************************************************** +Variable Externs +******************************************************************************/ + +/****************************************************************************** +Functions Prototypes +******************************************************************************/ +/** + * External prototypes + **/ +int16_t phy_init( void ); +void phy_set_100full( void ); +void phy_set_10half( void ); +int16_t phy_set_autonegotiate( void ); + +#endif /* PHY_H */ + diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/r_ether.h b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/r_ether.h new file mode 100644 index 000000000..13157ab5c --- /dev/null +++ b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/r_ether.h @@ -0,0 +1,185 @@ +/****************************************************************************** +* DISCLAIMER +* Please refer to http://www.renesas.com/disclaimer +****************************************************************************** + Copyright (C) 2008. Renesas Technology Corp., All Rights Reserved. +******************************************************************************* +* File Name : r_ether.h +* Version : 1.02 +* Description : Ethernet module device driver +****************************************************************************** +* History : DD.MM.YYYY Version Description +* : 15.02.2010 1.00 First Release +* : 03.03.2010 1.01 Buffer size is aligned on the 32-byte boundary. +* : 04.06.2010 1.02 RX62N changes +******************************************************************************/ + +#ifndef R_ETHER_H +#define R_ETHER_H + +/****************************************************************************** +Includes , "Project Includes" +******************************************************************************/ +#include + +/****************************************************************************** +Typedef definitions +******************************************************************************/ +struct Descriptor +{ + __evenaccess uint32_t status; +#if __LIT +/* Little endian */ + __evenaccess uint16_t size; + __evenaccess uint16_t bufsize; +#else +/* Big endian */ + __evenaccess uint16_t bufsize; + __evenaccess uint16_t size; + +#endif + int8_t *buf_p; + struct Descriptor *next; +}; + +typedef struct Descriptor ethfifo; + +typedef enum _NETLNK +{ + PHY_NO_LINK = 0, + PHY_LINK_10H, + PHY_LINK_10F, + PHY_LINK_100H, + PHY_LINK_100F + +} NETLNK; + +/****************************************************************************** +Macro definitions +******************************************************************************/ +#define BUFSIZE 256 /* Must be 32-bit aligned */ +#define ENTRY 8 /* Number of RX and TX buffers */ + +#define ACT 0x80000000 +#define DL 0x40000000 +#define FP1 0x20000000 +#define FP0 0x10000000 +#define FE 0x08000000 + +#define RFOVER 0x00000200 +#define RAD 0x00000100 +#define RMAF 0x00000080 +#define RRF 0x00000010 +#define RTLF 0x00000008 +#define RTSF 0x00000004 +#define PRE 0x00000002 +#define CERF 0x00000001 + +#define TAD 0x00000100 +#define CND 0x00000008 +#define DLC 0x00000004 +#define CD 0x00000002 +#define TRO 0x00000001 + +/** + * Renesas Ethernet API return defines + **/ +#define R_ETHER_OK 0 +#define R_ETHER_ERROR -1 + +/* Ether Interface definitions */ +#define ETH_RMII_MODE 0 +#define ETH_MII_MODE 1 +/* Select Ether Interface Mode */ +#define ETH_MODE_SEL ETH_MII_MODE + +/****************************************************************************** +Variable Externs +******************************************************************************/ + +/****************************************************************************** +Functions Prototypes +******************************************************************************/ +/** + * Renesas Ethernet API prototypes + **/ +int32_t R_Ether_Open(uint32_t ch, uint8_t mac_addr[]); +int32_t R_Ether_Close(uint32_t ch); +int32_t R_Ether_Write(uint32_t ch, void *buf, uint32_t len); +int32_t R_Ether_Read(uint32_t ch, void *buf); + +/** + * FreeRTOS Ethernet API prototypes. + */ + +/* + * Configure all the ethernet components (MAC, DMA, PHY) ready for communication. + */ +void vInitEmac( void ); + +/* + * Auto negotiate the link, returning pass or fail depending on whether a link + * was established or not. + */ +long lEMACWaitForLink( void ); + +/* + * Check the Rx status, and return the number of bytes received if any. + */ +unsigned long ulEMACRead( void ); + +/* + * Send uip_len bytes from uip_buf to the Tx descriptors and initiate a Tx. + */ +void vEMACWrite( void ); + + + + +/****************************************************/ +/* Ethernet statistic collection data */ +struct enet_stats +{ + uint32_t rx_packets; /* total packets received */ + uint32_t tx_packets; /* total packets transmitted */ + uint32_t rx_errors; /* bad packets received */ + uint32_t tx_errors; /* packet transmit problems */ + uint32_t rx_dropped; /* no space in buffers */ + uint32_t tx_dropped; /* no space available */ + uint32_t multicast; /* multicast packets received */ + uint32_t collisions; + + /* detailed rx_errors: */ + uint32_t rx_length_errors; + uint32_t rx_over_errors; /* receiver ring buffer overflow */ + uint32_t rx_crc_errors; /* recved pkt with crc error */ + uint32_t rx_frame_errors; /* recv'd frame alignment error */ + uint32_t rx_fifo_errors; /* recv'r fifo overrun */ + uint32_t rx_missed_errors; /* receiver missed packet */ + + /* detailed tx_errors */ + uint32_t tx_aborted_errors; + uint32_t tx_carrier_errors; + uint32_t tx_fifo_errors; + uint32_t tx_heartbeat_errors; + uint32_t tx_window_errors; +}; + +struct ei_device +{ + const int8_t *name; + uint8_t open; + uint8_t Tx_act; + uint8_t Rx_act; + uint8_t txing; /* Transmit Active */ + uint8_t irqlock; /* EDMAC's interrupt disabled when '1'. */ + uint8_t dmaing; /* EDMAC Active */ + ethfifo *rxcurrent; /* current receive discripter */ + ethfifo *txcurrent; /* current transmit discripter */ + uint8_t save_irq; /* Original dev->irq value. */ + struct enet_stats stat; + uint8_t mac_addr[6]; +}; + +#endif /* R_ETHER_H */ + diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/uip-conf.h b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/uip-conf.h new file mode 100644 index 000000000..00f739647 --- /dev/null +++ b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/uip-conf.h @@ -0,0 +1,167 @@ +/** + * \addtogroup uipopt + * @{ + */ + +/** + * \name Project-specific configuration options + * @{ + * + * uIP has a number of configuration options that can be overridden + * for each project. These are kept in a project-specific uip-conf.h + * file and all configuration names have the prefix UIP_CONF. + */ + +/* + * Copyright (c) 2006, Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute 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 INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of the uIP TCP/IP stack + * + * $Id: uip-conf.h,v 1.6 2006/06/12 08:00:31 adam Exp $ + */ + +/** + * \file + * An example uIP configuration file + * \author + * Adam Dunkels + */ + +#ifndef __UIP_CONF_H__ +#define __UIP_CONF_H__ + +#define UIP_CONF_EXTERNAL_BUFFER +#define UIP_CONF_PROCESS_HTTPD_FORMS 1 + +/** + * 8 bit datatype + * + * This typedef defines the 8-bit type used throughout uIP. + * + * \hideinitializer + */ +typedef unsigned char u8_t; + +/** + * 16 bit datatype + * + * This typedef defines the 16-bit type used throughout uIP. + * + * \hideinitializer + */ +typedef unsigned short u16_t; + +typedef unsigned long u32_t; + +/** + * Statistics datatype + * + * This typedef defines the dataype used for keeping statistics in + * uIP. + * + * \hideinitializer + */ +typedef unsigned short uip_stats_t; + +/** + * Maximum number of TCP connections. + * + * \hideinitializer + */ +#define UIP_CONF_MAX_CONNECTIONS 40 + +/** + * Maximum number of listening TCP ports. + * + * \hideinitializer + */ +#define UIP_CONF_MAX_LISTENPORTS 40 + +/** + * uIP buffer size. + * + * \hideinitializer + */ +#define UIP_CONF_BUFFER_SIZE 1480 + +/** + * CPU byte order. + * + * \hideinitializer + */ +#ifdef __LIT +#define UIP_CONF_BYTE_ORDER UIP_LITTLE_ENDIAN +#else +#define UIP_CONF_BYTE_ORDER UIP_BIG_ENDIAN +#endif + +/** + * Logging on or off + * + * \hideinitializer + */ +#define UIP_CONF_LOGGING 0 + +/** + * UDP support on or off + * + * \hideinitializer + */ +#define UIP_CONF_UDP 0 + +/** + * UDP checksums on or off + * + * \hideinitializer + */ +#define UIP_CONF_UDP_CHECKSUMS 1 + +/** + * uIP statistics on or off + * + * \hideinitializer + */ +#define UIP_CONF_STATISTICS 1 + +/* Here we include the header file for the application(s) we use in + our project. */ +/*#include "smtp.h"*/ +/*#include "hello-world.h"*/ +/*#include "telnetd.h"*/ +#include "webserver.h" +/*#include "dhcpc.h"*/ +/*#include "resolv.h"*/ +/*#include "webclient.h"*/ + +#define CCIF +#define CC_REGISTER_ARG + +#endif /* __UIP_CONF_H__ */ + +/** @} */ +/** @} */ diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/webserver.h b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/webserver.h new file mode 100644 index 000000000..5267f0587 --- /dev/null +++ b/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/webserver.h @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2002, Adam Dunkels. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * 3. The name of the author may not be used to endorse or promote + * products derived from this software without specific prior + * written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * This file is part of the uIP TCP/IP stack + * + * $Id: webserver.h,v 1.2 2006/06/11 21:46:38 adam Exp $ + * + */ +#ifndef __WEBSERVER_H__ +#define __WEBSERVER_H__ + +#include "apps/httpd/httpd.h" + +typedef struct httpd_state uip_tcp_appstate_t; +/* UIP_APPCALL: the name of the application function. This function + must return void and take no arguments (i.e., C type "void + appfunc(void)"). */ +#define UIP_APPCALL httpd_appcall + + +#endif /* __WEBSERVER_H__ */ -- 2.39.5
LocalRemoteStateRetransmissionsTimerFlags